pax_global_header00006660000000000000000000000064146621113360014515gustar00rootroot0000000000000052 comment=61943691d3390bd3148a7003b4a501f0e2b7ac6e vision-0.19.1/000077500000000000000000000000001466211133600131145ustar00rootroot00000000000000vision-0.19.1/.clang-format000066400000000000000000000051131466211133600154670ustar00rootroot00000000000000--- AccessModifierOffset: -1 AlignAfterOpenBracket: AlwaysBreak AlignConsecutiveAssignments: false AlignConsecutiveDeclarations: false AlignEscapedNewlinesLeft: true AlignOperands: false AlignTrailingComments: false AllowAllParametersOfDeclarationOnNextLine: false AllowShortBlocksOnASingleLine: false AllowShortCaseLabelsOnASingleLine: false AllowShortFunctionsOnASingleLine: Empty AllowShortIfStatementsOnASingleLine: false AllowShortLoopsOnASingleLine: false AlwaysBreakAfterReturnType: None AlwaysBreakBeforeMultilineStrings: true AlwaysBreakTemplateDeclarations: true BinPackArguments: false BinPackParameters: false BraceWrapping: AfterClass: false AfterControlStatement: false AfterEnum: false AfterFunction: false AfterNamespace: false AfterObjCDeclaration: false AfterStruct: false AfterUnion: false BeforeCatch: false BeforeElse: false IndentBraces: false BreakBeforeBinaryOperators: None BreakBeforeBraces: Attach BreakBeforeTernaryOperators: true BreakConstructorInitializersBeforeComma: false BreakAfterJavaFieldAnnotations: false BreakStringLiterals: false ColumnLimit: 80 CommentPragmas: '^ IWYU pragma:' #CompactNamespaces: false ConstructorInitializerAllOnOneLineOrOnePerLine: true ConstructorInitializerIndentWidth: 4 ContinuationIndentWidth: 4 Cpp11BracedListStyle: true DerivePointerAlignment: false DisableFormat: false ForEachMacros: [ FOR_EACH_RANGE, FOR_EACH, ] IncludeCategories: - Regex: '^<.*\.h(pp)?>' Priority: 1 - Regex: '^<.*' Priority: 2 - Regex: '.*' Priority: 3 IndentCaseLabels: true IndentWidth: 2 IndentWrappedFunctionNames: false KeepEmptyLinesAtTheStartOfBlocks: false MacroBlockBegin: '' MacroBlockEnd: '' MaxEmptyLinesToKeep: 1 NamespaceIndentation: None PenaltyBreakBeforeFirstCallParameter: 1 PenaltyBreakComment: 300 PenaltyBreakFirstLessLess: 120 PenaltyBreakString: 1000 PenaltyExcessCharacter: 1000000 PenaltyReturnTypeOnItsOwnLine: 2000000 PointerAlignment: Left ReflowComments: true SortIncludes: true SpaceAfterCStyleCast: false SpaceBeforeAssignmentOperators: true SpaceBeforeParens: ControlStatements SpaceInEmptyParentheses: false SpacesBeforeTrailingComments: 1 SpacesInAngles: false SpacesInContainerLiterals: true SpacesInCStyleCastParentheses: false SpacesInParentheses: false SpacesInSquareBrackets: false Standard: Cpp11 TabWidth: 8 UseTab: Never --- Language: ObjC ColumnLimit: 120 AlignAfterOpenBracket: Align ObjCBlockIndentWidth: 2 ObjCSpaceAfterProperty: false ObjCSpaceBeforeProtocolList: false ... vision-0.19.1/.git-blame-ignore-revs000066400000000000000000000011471466211133600172170ustar00rootroot00000000000000# This file keeps git blame clean. # See https://docs.github.com/en/repositories/working-with-files/using-files/viewing-a-file#ignore-commits-in-the-blame-view # Add ufmt (usort + black) as code formatter (#4384) 5f0edb97b46e5bff71dc19dedef05c5396eeaea2 # update python syntax >=3.6 (#4585) d367a01a18a3ae6bee13d8be3b63fd6a581ea46f # Upgrade usort to 1.0.2 and black to 22.3.0 (#5106) 6ca9c76adb6daf2695d603ad623a9cf1c4f4806f # Fix unnecessary exploded black formatting (#7709) a335d916db0694770e8152f41e19195de3134523 # Renaming: `BoundingBox` -> `BoundingBoxes` (#7778) 332bff937c6711666191880fab57fa2f23ae772e vision-0.19.1/.gitattributes000066400000000000000000000001721466211133600160070ustar00rootroot00000000000000*.pkl binary # Jupyter notebook # For text count # *.ipynb text # To ignore it use below *.ipynb linguist-documentation vision-0.19.1/.github/000077500000000000000000000000001466211133600144545ustar00rootroot00000000000000vision-0.19.1/.github/ISSUE_TEMPLATE/000077500000000000000000000000001466211133600166375ustar00rootroot00000000000000vision-0.19.1/.github/ISSUE_TEMPLATE/bug-report.yml000066400000000000000000000047341466211133600214600ustar00rootroot00000000000000name: 🐛 Bug Report description: Create a report to help us reproduce and fix the bug body: - type: markdown attributes: value: > #### Before submitting a bug, please make sure the issue hasn't been already addressed by searching through [the existing and past issues](https://github.com/pytorch/vision/issues?q=is%3Aissue+sort%3Acreated-desc+). - type: textarea attributes: label: 🐛 Describe the bug description: | Please provide a clear and concise description of what the bug is. If relevant, add a minimal example so that we can reproduce the error by running the code. It is very important for the snippet to be as succinct (minimal) as possible, so please take time to trim down any irrelevant code to help us debug efficiently. We are going to copy-paste your code and we expect to get the same result as you did: avoid any external data, and include the relevant imports, etc. For example: ```python # All necessary imports at the beginning import torch import torchvision from torchvision.ops import nms # A succinct reproducing example trimmed down to the essential parts: N = 5 boxes = torch.rand(N, 4) # Note: the bug is here, we should enforce that x1 < x2 and y1 < y2! scores = torch.rand(N) nms(boxes, scores, iou_threshold=.9) ``` If the code is too long (hopefully, it isn't), feel free to put it in a public gist and link it in the issue: https://gist.github.com. Please also paste or describe the results you observe instead of the expected results. If you observe an error, please paste the error message including the **full** traceback of the exception. It may be relevant to wrap error messages in ```` ```triple quotes blocks``` ````. placeholder: | A clear and concise description of what the bug is. ```python Sample code to reproduce the problem ``` ``` The error message you got, with the full traceback. ```` validations: required: true - type: textarea attributes: label: Versions description: | Please run the following and paste the output below. ```sh wget https://raw.githubusercontent.com/pytorch/pytorch/main/torch/utils/collect_env.py # For security purposes, please check the contents of collect_env.py before running it. python collect_env.py ``` validations: required: true - type: markdown attributes: value: > Thanks for contributing 🎉! vision-0.19.1/.github/ISSUE_TEMPLATE/config.yml000066400000000000000000000002701466211133600206260ustar00rootroot00000000000000blank_issues_enabled: true contact_links: - name: Usage questions url: https://discuss.pytorch.org/ about: Ask questions and discuss with other torchvision community members vision-0.19.1/.github/ISSUE_TEMPLATE/documentation.yml000066400000000000000000000015571466211133600222430ustar00rootroot00000000000000name: 📚 Documentation description: Report an issue related to https://pytorch.org/vision/stable/index.html body: - type: textarea attributes: label: 📚 The doc issue description: > A clear and concise description of what content in https://pytorch.org/vision/stable/index.html is an issue. If this has to do with the general https://pytorch.org website, please file an issue at https://github.com/pytorch/pytorch.github.io/issues/new/choose instead. If this has to do with https://pytorch.org/tutorials, please file an issue at https://github.com/pytorch/tutorials/issues/new. validations: required: true - type: textarea attributes: label: Suggest a potential alternative/fix description: > Tell us how we could improve the documentation in this regard. - type: markdown attributes: value: > Thanks for contributing 🎉! vision-0.19.1/.github/ISSUE_TEMPLATE/feature-request.yml000066400000000000000000000017711466211133600225110ustar00rootroot00000000000000name: 🚀 Feature request description: Submit a proposal/request for a new torchvision feature body: - type: textarea attributes: label: 🚀 The feature description: > A clear and concise description of the feature proposal validations: required: true - type: textarea attributes: label: Motivation, pitch description: > Please outline the motivation for the proposal. Is your feature request related to a specific problem? e.g., *"I'm working on X and would like Y to be possible"*. If this is related to another GitHub issue, please link here too. validations: required: true - type: textarea attributes: label: Alternatives description: > A description of any alternative solutions or features you've considered, if any. - type: textarea attributes: label: Additional context description: > Add any other context or screenshots about the feature request. - type: markdown attributes: value: > Thanks for contributing 🎉! vision-0.19.1/.github/PULL_REQUEST_TEMPLATE.md000066400000000000000000000003101466211133600202470ustar00rootroot00000000000000 vision-0.19.1/.github/failed_schedule_issue_template.md000066400000000000000000000004671466211133600232100ustar00rootroot00000000000000--- title: Scheduled workflow failed labels: - bug - "module: datasets" --- Oh no, something went wrong in the scheduled workflow {{ env.WORKFLOW }}/{{ env.JOB }}. Please look into it: https://github.com/{{ env.REPO }}/actions/runs/{{ env.ID }} Feel free to close this if this was just a one-off error. vision-0.19.1/.github/process_commit.py000066400000000000000000000046461466211133600200660ustar00rootroot00000000000000""" This script finds the merger responsible for labeling a PR by a commit SHA. It is used by the workflow in '.github/workflows/pr-labels.yml'. If there exists no PR associated with the commit or the PR is properly labeled, this script is a no-op. Note: we ping the merger only, not the reviewers, as the reviewers can sometimes be external to torchvision with no labeling responsibility, so we don't want to bother them. """ import sys from typing import Any, Optional, Set, Tuple import requests # For a PR to be properly labeled it should have one primary label and one secondary label PRIMARY_LABELS = { "new feature", "bug", "code quality", "enhancement", "bc-breaking", "deprecation", "other", "prototype", } SECONDARY_LABELS = { "dependency issue", "module: c++ frontend", "module: ci", "module: datasets", "module: documentation", "module: io", "module: models.quantization", "module: models", "module: onnx", "module: ops", "module: reference scripts", "module: rocm", "module: tests", "module: transforms", "module: utils", "module: video", "Perf", "Revert(ed)", "topic: build", } def query_torchvision(cmd: str, *, accept) -> Any: response = requests.get(f"https://api.github.com/repos/pytorch/vision/{cmd}", headers=dict(Accept=accept)) return response.json() def get_pr_number(commit_hash: str) -> Optional[int]: # See https://docs.github.com/en/rest/reference/repos#list-pull-requests-associated-with-a-commit data = query_torchvision(f"commits/{commit_hash}/pulls", accept="application/vnd.github.groot-preview+json") if not data: return None return data[0]["number"] def get_pr_merger_and_labels(pr_number: int) -> Tuple[str, Set[str]]: # See https://docs.github.com/en/rest/reference/pulls#get-a-pull-request data = query_torchvision(f"pulls/{pr_number}", accept="application/vnd.github.v3+json") merger = data["merged_by"]["login"] labels = {label["name"] for label in data["labels"]} return merger, labels if __name__ == "__main__": commit_hash = sys.argv[1] pr_number = get_pr_number(commit_hash) if not pr_number: sys.exit(0) merger, labels = get_pr_merger_and_labels(pr_number) is_properly_labeled = bool(PRIMARY_LABELS.intersection(labels) and SECONDARY_LABELS.intersection(labels)) if not is_properly_labeled: print(f"@{merger}") vision-0.19.1/.github/pytorch-probot.yml000066400000000000000000000003641466211133600201750ustar00rootroot00000000000000tracking_issue: 2447 # List of workflows that will be re-run in case of failures # https://github.com/pytorch/test-infra/blob/main/torchci/lib/bot/retryBot.ts retryable_workflows: - Build Linux - Build Macos - Build M1 - Build Windows - Tests vision-0.19.1/.github/scripts/000077500000000000000000000000001466211133600161435ustar00rootroot00000000000000vision-0.19.1/.github/scripts/cmake.sh000077500000000000000000000054361466211133600175720ustar00rootroot00000000000000#!/usr/bin/env bash set -euxo pipefail ./.github/scripts/setup-env.sh # Activate conda environment set +x && eval "$($(which conda) shell.bash hook)" && conda deactivate && conda activate ci && set -x # Setup the OS_TYPE environment variable that should be used for conditions involving the OS below. case $(uname) in Linux) OS_TYPE=linux ;; Darwin) OS_TYPE=macos ;; MSYS*) OS_TYPE=windows ;; *) echo "Unknown OS type:" $(uname) exit 1 ;; esac if [[ $OS_TYPE == macos ]]; then JOBS=$(sysctl -n hw.logicalcpu) else JOBS=$(nproc) fi TORCH_PATH=$(python -c "import pathlib, torch; print(pathlib.Path(torch.__path__[0]))") if [[ $OS_TYPE == windows ]]; then PACKAGING_DIR="${PWD}/packaging" export PATH="${TORCH_PATH}/lib:${PATH}" fi Torch_DIR="${TORCH_PATH}/share/cmake/Torch" if [[ "${GPU_ARCH_TYPE}" == "cuda" ]]; then WITH_CUDA=1 else WITH_CUDA=0 fi echo '::group::Prepare CMake builds' mkdir -p cpp_build pushd examples/cpp python script_model.py mkdir -p build mv resnet18.pt fasterrcnn_resnet50_fpn.pt build popd # This was only needed for the tracing above pip uninstall -y torchvision echo '::endgroup::' echo '::group::Build and install libtorchvision' pushd cpp_build # On macOS, CMake is looking for the library (*.dylib) and the header (*.h) separately. By default, it prefers to load # the header from other packages that install the library. This easily leads to a mismatch if the library installed # from conda doesn't have the exact same version. Thus, we need to explicitly set CMAKE_FIND_FRAMEWORK=NEVER to force # it to not load anything from other installed frameworks. Resources: # https://stackoverflow.com/questions/36523911/osx-homebrew-cmake-libpng-version-mismatch-issue # https://cmake.org/cmake/help/latest/variable/CMAKE_FIND_FRAMEWORK.html cmake .. -DTorch_DIR="${Torch_DIR}" -DWITH_CUDA="${WITH_CUDA}" \ -DCMAKE_PREFIX_PATH="${CONDA_PREFIX}" \ -DCMAKE_FIND_FRAMEWORK=NEVER \ -DCMAKE_INSTALL_PREFIX="${CONDA_PREFIX}" if [[ $OS_TYPE == windows ]]; then "${PACKAGING_DIR}/windows/internal/vc_env_helper.bat" "${PACKAGING_DIR}/windows/internal/build_cmake.bat" $JOBS else make -j$JOBS make install fi popd echo '::endgroup::' echo '::group::Build and run C++ example' pushd examples/cpp/build cmake .. -DTorch_DIR="${Torch_DIR}" \ -DCMAKE_PREFIX_PATH="${CONDA_PREFIX}" \ -DCMAKE_FIND_FRAMEWORK=NEVER \ -DUSE_TORCHVISION=ON # Needed for faster-rcnn since it's using torchvision ops like NMS. if [[ $OS_TYPE == windows ]]; then "${PACKAGING_DIR}/windows/internal/vc_env_helper.bat" "${PACKAGING_DIR}/windows/internal/build_cpp_example.bat" $JOBS cd Release cp ../resnet18.pt . cp ../fasterrcnn_resnet50_fpn.pt . else make -j$JOBS fi ./run_model resnet18.pt ./run_model fasterrcnn_resnet50_fpn.pt popd echo '::endgroup::' vision-0.19.1/.github/scripts/run-clang-format.py000077500000000000000000000246561466211133600217110ustar00rootroot00000000000000#!/usr/bin/env python """ MIT License Copyright (c) 2017 Guillaume Papin 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. A wrapper script around clang-format, suitable for linting multiple files and to use for continuous integration. This is an alternative API for the clang-format command line. It runs over multiple files and directories in parallel. A diff output is produced and a sensible exit code is returned. """ import argparse import difflib import fnmatch import multiprocessing import os import signal import subprocess import sys import traceback from functools import partial try: from subprocess import DEVNULL # py3k except ImportError: DEVNULL = open(os.devnull, "wb") DEFAULT_EXTENSIONS = "c,h,C,H,cpp,hpp,cc,hh,c++,h++,cxx,hxx,cu,mm" class ExitStatus: SUCCESS = 0 DIFF = 1 TROUBLE = 2 def list_files(files, recursive=False, extensions=None, exclude=None): if extensions is None: extensions = [] if exclude is None: exclude = [] out = [] for file in files: if recursive and os.path.isdir(file): for dirpath, dnames, fnames in os.walk(file): fpaths = [os.path.join(dirpath, fname) for fname in fnames] for pattern in exclude: # os.walk() supports trimming down the dnames list # by modifying it in-place, # to avoid unnecessary directory listings. dnames[:] = [x for x in dnames if not fnmatch.fnmatch(os.path.join(dirpath, x), pattern)] fpaths = [x for x in fpaths if not fnmatch.fnmatch(x, pattern)] for f in fpaths: ext = os.path.splitext(f)[1][1:] if ext in extensions: out.append(f) else: out.append(file) return out def make_diff(file, original, reformatted): return list( difflib.unified_diff( original, reformatted, fromfile=f"{file}\t(original)", tofile=f"{file}\t(reformatted)", n=3 ) ) class DiffError(Exception): def __init__(self, message, errs=None): super().__init__(message) self.errs = errs or [] class UnexpectedError(Exception): def __init__(self, message, exc=None): super().__init__(message) self.formatted_traceback = traceback.format_exc() self.exc = exc def run_clang_format_diff_wrapper(args, file): try: ret = run_clang_format_diff(args, file) return ret except DiffError: raise except Exception as e: raise UnexpectedError(f"{file}: {e.__class__.__name__}: {e}", e) def run_clang_format_diff(args, file): try: with open(file, encoding="utf-8") as f: original = f.readlines() except OSError as exc: raise DiffError(str(exc)) invocation = [args.clang_format_executable, file] # Use of utf-8 to decode the process output. # # Hopefully, this is the correct thing to do. # # It's done due to the following assumptions (which may be incorrect): # - clang-format will returns the bytes read from the files as-is, # without conversion, and it is already assumed that the files use utf-8. # - if the diagnostics were internationalized, they would use utf-8: # > Adding Translations to Clang # > # > Not possible yet! # > Diagnostic strings should be written in UTF-8, # > the client can translate to the relevant code page if needed. # > Each translation completely replaces the format string # > for the diagnostic. # > -- http://clang.llvm.org/docs/InternalsManual.html#internals-diag-translation try: proc = subprocess.Popen( invocation, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True, encoding="utf-8" ) except OSError as exc: raise DiffError(f"Command '{subprocess.list2cmdline(invocation)}' failed to start: {exc}") proc_stdout = proc.stdout proc_stderr = proc.stderr # hopefully the stderr pipe won't get full and block the process outs = list(proc_stdout.readlines()) errs = list(proc_stderr.readlines()) proc.wait() if proc.returncode: raise DiffError( "Command '{}' returned non-zero exit status {}".format( subprocess.list2cmdline(invocation), proc.returncode ), errs, ) return make_diff(file, original, outs), errs def bold_red(s): return "\x1b[1m\x1b[31m" + s + "\x1b[0m" def colorize(diff_lines): def bold(s): return "\x1b[1m" + s + "\x1b[0m" def cyan(s): return "\x1b[36m" + s + "\x1b[0m" def green(s): return "\x1b[32m" + s + "\x1b[0m" def red(s): return "\x1b[31m" + s + "\x1b[0m" for line in diff_lines: if line[:4] in ["--- ", "+++ "]: yield bold(line) elif line.startswith("@@ "): yield cyan(line) elif line.startswith("+"): yield green(line) elif line.startswith("-"): yield red(line) else: yield line def print_diff(diff_lines, use_color): if use_color: diff_lines = colorize(diff_lines) sys.stdout.writelines(diff_lines) def print_trouble(prog, message, use_colors): error_text = "error:" if use_colors: error_text = bold_red(error_text) print(f"{prog}: {error_text} {message}", file=sys.stderr) def main(): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument( "--clang-format-executable", metavar="EXECUTABLE", help="path to the clang-format executable", default="clang-format", ) parser.add_argument( "--extensions", help=f"comma separated list of file extensions (default: {DEFAULT_EXTENSIONS})", default=DEFAULT_EXTENSIONS, ) parser.add_argument("-r", "--recursive", action="store_true", help="run recursively over directories") parser.add_argument("files", metavar="file", nargs="+") parser.add_argument("-q", "--quiet", action="store_true") parser.add_argument( "-j", metavar="N", type=int, default=0, help="run N clang-format jobs in parallel (default number of cpus + 1)", ) parser.add_argument( "--color", default="auto", choices=["auto", "always", "never"], help="show colored diff (default: auto)" ) parser.add_argument( "-e", "--exclude", metavar="PATTERN", action="append", default=[], help="exclude paths matching the given glob-like pattern(s) from recursive search", ) args = parser.parse_args() # use default signal handling, like diff return SIGINT value on ^C # https://bugs.python.org/issue14229#msg156446 signal.signal(signal.SIGINT, signal.SIG_DFL) try: signal.SIGPIPE except AttributeError: # compatibility, SIGPIPE does not exist on Windows pass else: signal.signal(signal.SIGPIPE, signal.SIG_DFL) colored_stdout = False colored_stderr = False if args.color == "always": colored_stdout = True colored_stderr = True elif args.color == "auto": colored_stdout = sys.stdout.isatty() colored_stderr = sys.stderr.isatty() version_invocation = [args.clang_format_executable, "--version"] try: subprocess.check_call(version_invocation, stdout=DEVNULL) except subprocess.CalledProcessError as e: print_trouble(parser.prog, str(e), use_colors=colored_stderr) return ExitStatus.TROUBLE except OSError as e: print_trouble( parser.prog, f"Command '{subprocess.list2cmdline(version_invocation)}' failed to start: {e}", use_colors=colored_stderr, ) return ExitStatus.TROUBLE retcode = ExitStatus.SUCCESS files = list_files( args.files, recursive=args.recursive, exclude=args.exclude, extensions=args.extensions.split(",") ) if not files: return njobs = args.j if njobs == 0: njobs = multiprocessing.cpu_count() + 1 njobs = min(len(files), njobs) if njobs == 1: # execute directly instead of in a pool, # less overhead, simpler stacktraces it = (run_clang_format_diff_wrapper(args, file) for file in files) pool = None else: pool = multiprocessing.Pool(njobs) it = pool.imap_unordered(partial(run_clang_format_diff_wrapper, args), files) while True: try: outs, errs = next(it) except StopIteration: break except DiffError as e: print_trouble(parser.prog, str(e), use_colors=colored_stderr) retcode = ExitStatus.TROUBLE sys.stderr.writelines(e.errs) except UnexpectedError as e: print_trouble(parser.prog, str(e), use_colors=colored_stderr) sys.stderr.write(e.formatted_traceback) retcode = ExitStatus.TROUBLE # stop at the first unexpected error, # something could be very wrong, # don't process all files unnecessarily if pool: pool.terminate() break else: sys.stderr.writelines(errs) if outs == []: continue if not args.quiet: print_diff(outs, use_color=colored_stdout) if retcode == ExitStatus.SUCCESS: retcode = ExitStatus.DIFF return retcode if __name__ == "__main__": sys.exit(main()) vision-0.19.1/.github/scripts/setup-env.sh000077500000000000000000000066621466211133600204420ustar00rootroot00000000000000#!/usr/bin/env bash set -euxo pipefail # Prepare conda set +x && eval "$($(which conda) shell.bash hook)" && set -x # Setup the OS_TYPE environment variable that should be used for conditions involving the OS below. case $(uname) in Linux) OS_TYPE=linux ;; Darwin) OS_TYPE=macos ;; MSYS*) OS_TYPE=windows ;; *) echo "Unknown OS type:" $(uname) exit 1 ;; esac echo '::group::Create build environment' # See https://github.com/pytorch/vision/issues/7296 for ffmpeg conda create \ --name ci \ --quiet --yes \ python="${PYTHON_VERSION}" pip \ ninja cmake \ libpng \ 'ffmpeg<4.3' conda activate ci conda install --quiet --yes libjpeg-turbo -c pytorch pip install --progress-bar=off --upgrade setuptools==72.1.0 # See https://github.com/pytorch/vision/issues/6790 if [[ "${PYTHON_VERSION}" != "3.11" ]]; then pip install --progress-bar=off av!=10.0.0 fi echo '::endgroup::' if [[ "${OS_TYPE}" == windows && "${GPU_ARCH_TYPE}" == cuda ]]; then echo '::group::Install VisualStudio CUDA extensions on Windows' if [[ "${VC_YEAR:-}" == "2022" ]]; then TARGET_DIR="/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Microsoft/VC/v170/BuildCustomizations" else TARGET_DIR="/c/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/MSBuild/Microsoft/VC/v160/BuildCustomizations" fi mkdir -p "${TARGET_DIR}" cp -r "${CUDA_HOME}/MSBuildExtensions/"* "${TARGET_DIR}" echo '::endgroup::' fi echo '::group::Install PyTorch' # TODO: Can we maybe have this as environment variable in the job template? For example, `IS_RELEASE`. if [[ (${GITHUB_EVENT_NAME} = 'pull_request' && (${GITHUB_BASE_REF} = 'release'*)) || (${GITHUB_REF} = 'refs/heads/release'*) ]]; then CHANNEL=test else CHANNEL=nightly fi case $GPU_ARCH_TYPE in cpu) GPU_ARCH_ID="cpu" ;; cuda) VERSION_WITHOUT_DOT=$(echo "${GPU_ARCH_VERSION}" | sed 's/\.//') GPU_ARCH_ID="cu${VERSION_WITHOUT_DOT}" ;; *) echo "Unknown GPU_ARCH_TYPE=${GPU_ARCH_TYPE}" exit 1 ;; esac PYTORCH_WHEEL_INDEX="https://download.pytorch.org/whl/${CHANNEL}/${GPU_ARCH_ID}" pip install --progress-bar=off --pre torch --index-url="${PYTORCH_WHEEL_INDEX}" if [[ $GPU_ARCH_TYPE == 'cuda' ]]; then python -c "import torch; exit(not torch.cuda.is_available())" fi echo '::endgroup::' echo '::group::Install third party dependencies prior to TorchVision install' # Installing with `easy_install`, e.g. `python setup.py install` or `python setup.py develop`, has some quirks when # when pulling in third-party dependencies. For example: # - On Windows, we often hit an SSL error although `pip` can install just fine. # - It happily pulls in pre-releases, which can lead to more problems down the line. # `pip` does not unless explicitly told to do so. # Thus, we use `easy_install` to extract the third-party dependencies here and install them upfront with `pip`. python setup.py egg_info # The requires.txt cannot be used with `pip install -r` directly. The requirements are listed at the top and the # optional dependencies come in non-standard syntax after a blank line. Thus, we just extract the header. sed -e '/^$/,$d' *.egg-info/requires.txt | tee requirements.txt pip install --progress-bar=off -r requirements.txt echo '::endgroup::' echo '::group::Install TorchVision' python setup.py develop echo '::endgroup::' echo '::group::Collect environment information' conda list python -m torch.utils.collect_env echo '::endgroup::' vision-0.19.1/.github/scripts/unittest.sh000077500000000000000000000012541466211133600203630ustar00rootroot00000000000000#!/usr/bin/env bash set -euo pipefail ./.github/scripts/setup-env.sh # Activate conda environment eval "$($(which conda) shell.bash hook)" && conda deactivate && conda activate ci echo '::group::Install testing utilities' # TODO: remove the <8 constraint on pytest when https://github.com/pytorch/vision/issues/8238 is closed pip install --progress-bar=off "pytest<8" pytest-mock pytest-cov expecttest!=0.2.0 requests echo '::endgroup::' python test/smoke_test.py # We explicitly ignore the video tests until we resolve https://github.com/pytorch/vision/issues/8162 pytest --ignore-glob="*test_video*" --junit-xml="${RUNNER_TEST_RESULTS_DIR}/test-results.xml" -v --durations=25 vision-0.19.1/.github/workflows/000077500000000000000000000000001466211133600165115ustar00rootroot00000000000000vision-0.19.1/.github/workflows/build-cmake.yml000066400000000000000000000043171466211133600214160ustar00rootroot00000000000000name: CMake on: pull_request: push: branches: - nightly - main - release/* workflow_dispatch: jobs: linux: strategy: matrix: include: - runner: linux.12xlarge gpu-arch-type: cpu - runner: linux.g5.4xlarge.nvidia.gpu gpu-arch-type: cuda gpu-arch-version: "11.8" fail-fast: false uses: pytorch/test-infra/.github/workflows/linux_job.yml@release/2.4 with: repository: pytorch/vision runner: ${{ matrix.runner }} gpu-arch-type: ${{ matrix.gpu-arch-type }} gpu-arch-version: ${{ matrix.gpu-arch-version }} test-infra-ref: release/2.4 script: | set -euo pipefail export PYTHON_VERSION=3.8 export GPU_ARCH_TYPE=${{ matrix.gpu-arch-type }} export GPU_ARCH_VERSION=${{ matrix.gpu-arch-version }} ./.github/scripts/cmake.sh macos: strategy: matrix: include: - runner: macos-m1-stable fail-fast: false uses: pytorch/test-infra/.github/workflows/macos_job.yml@release/2.4 with: repository: pytorch/vision runner: ${{ matrix.runner }} test-infra-ref: release/2.4 script: | set -euo pipefail export PYTHON_VERSION=3.8 export GPU_ARCH_TYPE=cpu export GPU_ARCH_VERSION='' ${CONDA_RUN} ./.github/scripts/cmake.sh windows: strategy: matrix: include: - runner: windows.4xlarge gpu-arch-type: cpu - runner: windows.g5.4xlarge.nvidia.gpu gpu-arch-type: cuda gpu-arch-version: "11.8" fail-fast: false uses: pytorch/test-infra/.github/workflows/windows_job.yml@release/2.4 with: repository: pytorch/vision runner: ${{ matrix.runner }} gpu-arch-type: ${{ matrix.gpu-arch-type }} gpu-arch-version: ${{ matrix.gpu-arch-version }} test-infra-ref: release/2.4 script: | set -euo pipefail export PYTHON_VERSION=3.8 export VC_YEAR=2022 export VSDEVCMD_ARGS="" export GPU_ARCH_TYPE=${{ matrix.gpu-arch-type }} export GPU_ARCH_VERSION=${{ matrix.gpu-arch-version }} ./.github/scripts/cmake.sh vision-0.19.1/.github/workflows/build-conda-linux.yml000066400000000000000000000032771466211133600225630ustar00rootroot00000000000000name: Build Linux Conda on: pull_request: push: branches: - nightly - main - release/* tags: # NOTE: Binary build pipelines should only get triggered on release candidate builds # Release candidate tags look like: v1.11.0-rc1 - v[0-9]+.[0-9]+.[0-9]+-rc[0-9]+ workflow_dispatch: jobs: generate-matrix: uses: pytorch/test-infra/.github/workflows/generate_binary_build_matrix.yml@release/2.4 with: package-type: conda os: linux test-infra-repository: pytorch/test-infra test-infra-ref: release/2.4 build: needs: generate-matrix strategy: fail-fast: false matrix: include: - repository: pytorch/vision pre-script: "" post-script: "" conda-package-directory: packaging/torchvision smoke-test-script: test/smoke_test.py package-name: torchvision name: ${{ matrix.repository }} uses: pytorch/test-infra/.github/workflows/build_conda_linux.yml@release/2.4 with: conda-package-directory: ${{ matrix.conda-package-directory }} repository: ${{ matrix.repository }} ref: "" test-infra-repository: pytorch/test-infra test-infra-ref: release/2.4 build-matrix: ${{ needs.generate-matrix.outputs.matrix }} pre-script: ${{ matrix.pre-script }} post-script: ${{ matrix.post-script }} package-name: ${{ matrix.package-name }} smoke-test-script: ${{ matrix.smoke-test-script }} trigger-event: ${{ github.event_name }} secrets: CONDA_PYTORCHBOT_TOKEN: ${{ secrets.CONDA_PYTORCHBOT_TOKEN }} CONDA_PYTORCHBOT_TOKEN_TEST: ${{ secrets.CONDA_PYTORCHBOT_TOKEN_TEST }} vision-0.19.1/.github/workflows/build-conda-m1.yml000066400000000000000000000033451466211133600217350ustar00rootroot00000000000000name: Build M1 Conda on: pull_request: push: branches: - nightly - main - release/* tags: # NOTE: Binary build pipelines should only get triggered on release candidate builds # Release candidate tags look like: v1.11.0-rc1 - v[0-9]+.[0-9]+.[0-9]+-rc[0-9]+ workflow_dispatch: jobs: generate-matrix: uses: pytorch/test-infra/.github/workflows/generate_binary_build_matrix.yml@release/2.4 with: package-type: conda os: macos-arm64 test-infra-repository: pytorch/test-infra test-infra-ref: release/2.4 build: needs: generate-matrix strategy: fail-fast: false matrix: include: - repository: pytorch/vision pre-script: "" post-script: "" conda-package-directory: packaging/torchvision smoke-test-script: test/smoke_test.py package-name: torchvision name: ${{ matrix.repository }} uses: pytorch/test-infra/.github/workflows/build_conda_macos.yml@release/2.4 with: conda-package-directory: ${{ matrix.conda-package-directory }} repository: ${{ matrix.repository }} ref: "" test-infra-repository: pytorch/test-infra test-infra-ref: release/2.4 build-matrix: ${{ needs.generate-matrix.outputs.matrix }} pre-script: ${{ matrix.pre-script }} post-script: ${{ matrix.post-script }} package-name: ${{ matrix.package-name }} smoke-test-script: ${{ matrix.smoke-test-script }} runner-type: macos-m1-stable trigger-event: ${{ github.event_name }} secrets: CONDA_PYTORCHBOT_TOKEN: ${{ secrets.CONDA_PYTORCHBOT_TOKEN }} CONDA_PYTORCHBOT_TOKEN_TEST: ${{ secrets.CONDA_PYTORCHBOT_TOKEN_TEST }} vision-0.19.1/.github/workflows/build-conda-windows.yml000066400000000000000000000033521466211133600231100ustar00rootroot00000000000000name: Build Windows Conda on: pull_request: push: branches: - nightly - main - release/* tags: # NOTE: Binary build pipelines should only get triggered on release candidate builds # Release candidate tags look like: v1.11.0-rc1 - v[0-9]+.[0-9]+.[0-9]+-rc[0-9]+ workflow_dispatch: jobs: generate-matrix: uses: pytorch/test-infra/.github/workflows/generate_binary_build_matrix.yml@release/2.4 with: package-type: conda os: windows test-infra-repository: pytorch/test-infra test-infra-ref: release/2.4 build: needs: generate-matrix strategy: fail-fast: false matrix: include: - repository: pytorch/vision pre-script: packaging/pre_build_script.sh env-script: packaging/windows/internal/vc_env_helper.bat post-script: "" smoke-test-script: test/smoke_test.py package-name: torchvision name: ${{ matrix.repository }} uses: pytorch/test-infra/.github/workflows/build_conda_windows.yml@release/2.4 with: conda-package-directory: ${{ matrix.conda-package-directory }} repository: ${{ matrix.repository }} ref: "" test-infra-repository: pytorch/test-infra test-infra-ref: release/2.4 build-matrix: ${{ needs.generate-matrix.outputs.matrix }} pre-script: ${{ matrix.pre-script }} post-script: ${{ matrix.post-script }} package-name: ${{ matrix.package-name }} smoke-test-script: ${{ matrix.smoke-test-script }} trigger-event: ${{ github.event_name }} secrets: CONDA_PYTORCHBOT_TOKEN: ${{ secrets.CONDA_PYTORCHBOT_TOKEN }} CONDA_PYTORCHBOT_TOKEN_TEST: ${{ secrets.CONDA_PYTORCHBOT_TOKEN_TEST }} vision-0.19.1/.github/workflows/build-wheels-aarch64-linux.yml000066400000000000000000000031541466211133600242060ustar00rootroot00000000000000name: Build Aarch64 Linux Wheels on: pull_request: push: branches: - nightly - main - release/* tags: # NOTE: Binary build pipelines should only get triggered on release candidate builds # Release candidate tags look like: v1.11.0-rc1 - v[0-9]+.[0-9]+.[0-9]+-rc[0-9]+ workflow_dispatch: permissions: id-token: write contents: read jobs: generate-matrix: uses: pytorch/test-infra/.github/workflows/generate_binary_build_matrix.yml@release/2.4 with: package-type: wheel os: linux-aarch64 test-infra-repository: pytorch/test-infra test-infra-ref: release/2.4 with-cuda: disable build: needs: generate-matrix strategy: fail-fast: false matrix: include: - repository: pytorch/vision pre-script: packaging/pre_build_script.sh post-script: packaging/post_build_script.sh smoke-test-script: test/smoke_test.py package-name: torchvision name: ${{ matrix.repository }} uses: pytorch/test-infra/.github/workflows/build_wheels_linux.yml@release/2.4 with: repository: ${{ matrix.repository }} ref: "" test-infra-repository: pytorch/test-infra test-infra-ref: release/2.4 build-matrix: ${{ needs.generate-matrix.outputs.matrix }} pre-script: ${{ matrix.pre-script }} post-script: ${{ matrix.post-script }} package-name: ${{ matrix.package-name }} smoke-test-script: ${{ matrix.smoke-test-script }} trigger-event: ${{ github.event_name }} architecture: aarch64 setup-miniconda: false vision-0.19.1/.github/workflows/build-wheels-linux.yml000066400000000000000000000030121466211133600227510ustar00rootroot00000000000000name: Build Linux Wheels on: pull_request: push: branches: - nightly - main - release/* tags: # NOTE: Binary build pipelines should only get triggered on release candidate builds # Release candidate tags look like: v1.11.0-rc1 - v[0-9]+.[0-9]+.[0-9]+-rc[0-9]+ workflow_dispatch: permissions: id-token: write contents: read jobs: generate-matrix: uses: pytorch/test-infra/.github/workflows/generate_binary_build_matrix.yml@release/2.4 with: package-type: wheel os: linux test-infra-repository: pytorch/test-infra test-infra-ref: release/2.4 build: needs: generate-matrix strategy: fail-fast: false matrix: include: - repository: pytorch/vision pre-script: packaging/pre_build_script.sh post-script: packaging/post_build_script.sh smoke-test-script: test/smoke_test.py package-name: torchvision name: ${{ matrix.repository }} uses: pytorch/test-infra/.github/workflows/build_wheels_linux.yml@release/2.4 with: repository: ${{ matrix.repository }} ref: "" test-infra-repository: pytorch/test-infra test-infra-ref: release/2.4 build-matrix: ${{ needs.generate-matrix.outputs.matrix }} pre-script: ${{ matrix.pre-script }} post-script: ${{ matrix.post-script }} package-name: ${{ matrix.package-name }} smoke-test-script: ${{ matrix.smoke-test-script }} trigger-event: ${{ github.event_name }} vision-0.19.1/.github/workflows/build-wheels-m1.yml000066400000000000000000000030601466211133600221320ustar00rootroot00000000000000name: Build M1 Wheels on: pull_request: push: branches: - nightly - main - release/* tags: # NOTE: Binary build pipelines should only get triggered on release candidate builds # Release candidate tags look like: v1.11.0-rc1 - v[0-9]+.[0-9]+.[0-9]+-rc[0-9]+ workflow_dispatch: permissions: id-token: write contents: read jobs: generate-matrix: uses: pytorch/test-infra/.github/workflows/generate_binary_build_matrix.yml@release/2.4 with: package-type: wheel os: macos-arm64 test-infra-repository: pytorch/test-infra test-infra-ref: release/2.4 build: needs: generate-matrix strategy: fail-fast: false matrix: include: - repository: pytorch/vision pre-script: packaging/pre_build_script.sh post-script: packaging/post_build_script.sh smoke-test-script: test/smoke_test.py package-name: torchvision name: ${{ matrix.repository }} uses: pytorch/test-infra/.github/workflows/build_wheels_macos.yml@release/2.4 with: repository: ${{ matrix.repository }} ref: "" test-infra-repository: pytorch/test-infra test-infra-ref: release/2.4 build-matrix: ${{ needs.generate-matrix.outputs.matrix }} pre-script: ${{ matrix.pre-script }} post-script: ${{ matrix.post-script }} package-name: ${{ matrix.package-name }} runner-type: macos-m1-stable smoke-test-script: ${{ matrix.smoke-test-script }} trigger-event: ${{ github.event_name }} vision-0.19.1/.github/workflows/build-wheels-windows.yml000066400000000000000000000032061466211133600233110ustar00rootroot00000000000000name: Build Windows Wheels on: pull_request: push: branches: - nightly - main - release/* tags: # NOTE: Binary build pipelines should only get triggered on release candidate builds # Release candidate tags look like: v1.11.0-rc1 - v[0-9]+.[0-9]+.[0-9]+-rc[0-9]+ workflow_dispatch: permissions: id-token: write contents: read jobs: generate-matrix: uses: pytorch/test-infra/.github/workflows/generate_binary_build_matrix.yml@release/2.4 with: package-type: wheel os: windows test-infra-repository: pytorch/test-infra test-infra-ref: release/2.4 build: needs: generate-matrix strategy: fail-fast: false matrix: include: - repository: pytorch/vision pre-script: packaging/pre_build_script.sh env-script: packaging/windows/internal/vc_env_helper.bat post-script: "python packaging/wheel/relocate.py" smoke-test-script: test/smoke_test.py package-name: torchvision name: ${{ matrix.repository }} uses: pytorch/test-infra/.github/workflows/build_wheels_windows.yml@release/2.4 with: repository: ${{ matrix.repository }} ref: "" test-infra-repository: pytorch/test-infra test-infra-ref: release/2.4 build-matrix: ${{ needs.generate-matrix.outputs.matrix }} pre-script: ${{ matrix.pre-script }} env-script: ${{ matrix.env-script }} post-script: ${{ matrix.post-script }} package-name: ${{ matrix.package-name }} smoke-test-script: ${{ matrix.smoke-test-script }} trigger-event: ${{ github.event_name }} vision-0.19.1/.github/workflows/docs.yml000066400000000000000000000111171466211133600201650ustar00rootroot00000000000000name: Docs on: pull_request: push: branches: - nightly - main - release/* tags: - v[0-9]+.[0-9]+.[0-9] - v[0-9]+.[0-9]+.[0-9]+-rc[0-9]+ workflow_dispatch: jobs: build: uses: pytorch/test-infra/.github/workflows/linux_job.yml@release/2.4 with: repository: pytorch/vision upload-artifact: docs test-infra-ref: release/2.4 script: | set -euo pipefail export PYTHON_VERSION=3.8 export GPU_ARCH_TYPE=cpu export GPU_ARCH_VERSION='' ./.github/scripts/setup-env.sh # Prepare conda CONDA_PATH=$(which conda) eval "$(${CONDA_PATH} shell.bash hook)" conda activate ci # FIXME: not sure why we need this. `ldd torchvision/video_reader.so` shows that it # already links against the one pulled from conda. However, at runtime it pulls from # /lib64 # Should we maybe always do this in `./.github/scripts/setup-env.sh` so that we don't # have to pay attention in all other workflows? export LD_LIBRARY_PATH="${CONDA_PREFIX}/lib:${LD_LIBRARY_PATH}" cd docs echo '::group::Install doc requirements' pip install --progress-bar=off -r requirements.txt echo '::endgroup::' if [[ ${{ github.event_name }} == push && (${{ github.ref_type }} == tag || (${{ github.ref_type }} == branch && ${{ github.ref_name }} == release/*)) ]]; then echo '::group::Enable version string sanitization' # This environment variable just has to exist and must not be empty. The actual value is arbitrary. # See docs/source/conf.py for details export TORCHVISION_SANITIZE_VERSION_STR_IN_DOCS=1 echo '::endgroup::' fi # The runner does not have sufficient memory to run with as many processes as there are # cores (`-j auto`). Thus, we limit to a single process (`-j 1`) here. sed -i -e 's/-j auto/-j 1/' Makefile make html # Below is an imperfect way for us to add "try on collab" links to all of our gallery examples. # sphinx-gallery will convert all gallery examples to .ipynb notebooks and stores them in # build/html/_downloads//.ipynb # We copy all those ipynb files in a more convenient folder so that we can more easily link to them. mkdir build/html/_generated_ipynb_notebooks for file in `find build/html/_downloads`; do if [[ $file == *.ipynb ]]; then cp $file build/html/_generated_ipynb_notebooks/ fi done cp -r build/html "${RUNNER_ARTIFACT_DIR}" # On PRs we also want to upload the docs into our S3 bucket for preview. if [[ ${{ github.event_name == 'pull_request' }} ]]; then cp -r build/html/* "${RUNNER_DOCS_DIR}" fi upload: needs: build if: github.repository == 'pytorch/vision' && github.event_name == 'push' && ((github.ref_type == 'branch' && github.ref_name == 'main') || github.ref_type == 'tag') permissions: contents: write uses: pytorch/test-infra/.github/workflows/linux_job.yml@release/2.4 with: repository: pytorch/vision download-artifact: docs ref: gh-pages test-infra-ref: release/2.4 script: | set -euo pipefail REF_TYPE=${{ github.ref_type }} REF_NAME=${{ github.ref_name }} if [[ "${REF_TYPE}" == branch ]]; then TARGET_FOLDER="${REF_NAME}" elif [[ "${REF_TYPE}" == tag ]]; then case "${REF_NAME}" in *-rc*) echo "Aborting upload since this is an RC tag: ${REF_NAME}" exit 0 ;; *) # Strip the leading "v" as well as the trailing patch version. For example: # 'v0.15.2' -> '0.15' TARGET_FOLDER=$(echo "${REF_NAME}" | sed 's/v\([0-9]\+\)\.\([0-9]\+\)\.[0-9]\+/\1.\2/') ;; esac fi echo "Target Folder: ${TARGET_FOLDER}" mkdir -p "${TARGET_FOLDER}" rm -rf "${TARGET_FOLDER}"/* mv "${RUNNER_ARTIFACT_DIR}"/html/* "${TARGET_FOLDER}" git add "${TARGET_FOLDER}" || true if [[ "${TARGET_FOLDER}" == main ]]; then mkdir -p _static rm -rf _static/* cp -r "${TARGET_FOLDER}"/_static/* _static git add _static || true fi git config user.name 'pytorchbot' git config user.email 'soumith+bot@pytorch.org' git config http.postBuffer 524288000 git commit -m "auto-generating sphinx docs" || true git push vision-0.19.1/.github/workflows/lint.yml000066400000000000000000000064431466211133600202110ustar00rootroot00000000000000name: Lint on: pull_request: push: branches: - nightly - main - release/* workflow_dispatch: jobs: python-source-and-configs: uses: pytorch/test-infra/.github/workflows/linux_job.yml@release/2.4 with: repository: pytorch/vision test-infra-ref: release/2.4 script: | set -euo pipefail echo '::group::Setup environment' CONDA_PATH=$(which conda) eval "$(${CONDA_PATH} shell.bash hook)" conda create --name ci --quiet --yes python=3.8 pip conda activate ci echo '::endgroup::' echo '::group::Install lint tools' pip install --progress-bar=off pre-commit echo '::endgroup::' set +e pre-commit run --all-files if [ $? -ne 0 ]; then git --no-pager diff exit 1 fi c-source: uses: pytorch/test-infra/.github/workflows/linux_job.yml@release/2.4 with: repository: pytorch/vision test-infra-ref: release/2.4 script: | set -euo pipefail echo '::group::Setup environment' CONDA_PATH=$(which conda) eval "$(${CONDA_PATH} shell.bash hook)" # clang-format needs some shared libraries that conflict with the system ones. Thus, we install them from conda # and prepend the libraries to linker path to prioritize them. `ncurses=5` is only available on the conda-forge # channel. Since we are not building or testing here, this is fine. conda create --name ci --quiet --yes -c conda-forge python=3.8 ncurses=5 libgcc conda activate ci export LD_LIBRARY_PATH="${CONDA_PREFIX}/lib:${LD_LIBRARY_PATH}" echo '::endgroup::' echo '::group::Install lint tools' curl https://oss-clang-format.s3.us-east-2.amazonaws.com/linux64/clang-format-linux64 -o ./clang-format chmod +x ./clang-format echo '::endgroup::' echo '::group::Lint C source' set +e ./.github/scripts/run-clang-format.py -r torchvision/csrc --clang-format-executable ./clang-format --exclude "torchvision/csrc/io/image/cpu/giflib/*" if [ $? -ne 0 ]; then git --no-pager diff exit 1 fi echo '::endgroup::' python-types: uses: pytorch/test-infra/.github/workflows/linux_job.yml@release/2.4 with: repository: pytorch/vision test-infra-ref: release/2.4 script: | set -euo pipefail export PYTHON_VERSION=3.8 export GPU_ARCH_TYPE=cpu export GPU_ARCH_VERSION='' ./.github/scripts/setup-env.sh CONDA_PATH=$(which conda) eval "$(${CONDA_PATH} shell.bash hook)" conda activate ci echo '::group::Install lint tools' pip install --progress-bar=off mypy echo '::endgroup::' echo '::group::Lint Python types' mypy --install-types --non-interactive --config-file mypy.ini echo '::endgroup::' bc: if: github.event.pull_request runs-on: ubuntu-latest steps: - name: Run BC Lint Action uses: pytorch/test-infra/.github/actions/bc-lint@release/2.4 with: repo: ${{ github.event.pull_request.head.repo.full_name }} base_sha: ${{ github.event.pull_request.base.sha }} head_sha: ${{ github.event.pull_request.head.sha }} vision-0.19.1/.github/workflows/pr-labels.yml000066400000000000000000000021151466211133600211140ustar00rootroot00000000000000name: pr-labels on: push: branches: - main jobs: is-properly-labeled: runs-on: ubuntu-latest permissions: pull-requests: write steps: - name: Set up python uses: actions/setup-python@v5 - name: Install requests run: pip install requests - name: Checkout repository uses: actions/checkout@v4 - name: Process commit and find merger responsible for labeling id: commit run: | MERGER=$(python .github/process_commit.py ${{ github.sha }}) echo "merger=${MERGER}" | tee --append $GITHUB_OUTPUT - name: Ping merger responsible for labeling if necessary if: ${{ steps.commit.outputs.merger != '' }} uses: mshick/add-pr-comment@v2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: message: | Hey ${{ steps.commit.outputs.merger }}! You merged this PR, but no labels were added. The list of valid labels is available at https://github.com/pytorch/vision/blob/main/.github/process_commit.py vision-0.19.1/.github/workflows/tests-schedule.yml000066400000000000000000000032671466211133600222000ustar00rootroot00000000000000name: tests on: pull_request: paths: - "test/test_datasets_download.py" - ".github/failed_schedule_issue_template.md" - ".github/workflows/tests-schedule.yml" schedule: - cron: "0 9 * * *" jobs: download: runs-on: ubuntu-latest steps: - name: Set up python uses: actions/setup-python@v2 with: python-version: 3.8 - name: Upgrade system packages run: python -m pip install --upgrade pip setuptools wheel - name: SSL run: python -c 'import ssl; print(ssl.OPENSSL_VERSION)' - name: Checkout repository uses: actions/checkout@v2 - name: TODO REMOVE THIS! Install non pre-release version of mpmath. run: pip install "mpmath<1.4" - name: Install torch nightly build run: pip install --pre torch -f https://download.pytorch.org/whl/nightly/cpu/torch_nightly.html - name: Install torchvision run: pip install --no-build-isolation --editable . - name: Install all optional dataset requirements run: pip install scipy pycocotools lmdb gdown - name: Install tests requirements run: pip install pytest - name: Run tests run: pytest -ra -v test/test_datasets_download.py - uses: JasonEtco/create-an-issue@v2.4.0 name: Create issue if download tests failed if: failure() && github.event_name == 'schedule' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} REPO: ${{ github.repository }} WORKFLOW: ${{ github.workflow }} JOB: ${{ github.job }} ID: ${{ github.run_id }} with: filename: .github/failed_schedule_issue_template.md vision-0.19.1/.github/workflows/tests.yml000066400000000000000000000114221466211133600203760ustar00rootroot00000000000000name: Tests on: pull_request: push: branches: - nightly - main - release/* workflow_dispatch: jobs: unittests-linux: strategy: matrix: python-version: - "3.8" - "3.9" - "3.10" - "3.11" - "3.12" runner: ["linux.12xlarge"] gpu-arch-type: ["cpu"] include: - python-version: 3.8 runner: linux.g5.4xlarge.nvidia.gpu gpu-arch-type: cuda gpu-arch-version: "11.8" fail-fast: false uses: pytorch/test-infra/.github/workflows/linux_job.yml@release/2.4 with: repository: pytorch/vision runner: ${{ matrix.runner }} gpu-arch-type: ${{ matrix.gpu-arch-type }} gpu-arch-version: ${{ matrix.gpu-arch-version }} timeout: 120 test-infra-ref: release/2.4 script: | set -euo pipefail export PYTHON_VERSION=${{ matrix.python-version }} export GPU_ARCH_TYPE=${{ matrix.gpu-arch-type }} export GPU_ARCH_VERSION=${{ matrix.gpu-arch-version }} ./.github/scripts/unittest.sh unittests-macos: strategy: matrix: python-version: - "3.8" - "3.9" - "3.10" - "3.11" - "3.12" runner: ["macos-m1-stable"] fail-fast: false uses: pytorch/test-infra/.github/workflows/macos_job.yml@release/2.4 with: repository: pytorch/vision timeout: 240 runner: ${{ matrix.runner }} test-infra-ref: release/2.4 script: | set -euo pipefail export PYTHON_VERSION=${{ matrix.python-version }} export GPU_ARCH_TYPE=cpu export GPU_ARCH_VERSION='' ${CONDA_RUN} ./.github/scripts/unittest.sh unittests-windows: strategy: matrix: python-version: - "3.8" - "3.9" - "3.10" - "3.11" - "3.12" runner: ["windows.4xlarge"] gpu-arch-type: ["cpu"] include: - python-version: "3.8" runner: windows.g5.4xlarge.nvidia.gpu gpu-arch-type: cuda gpu-arch-version: "11.8" fail-fast: false uses: pytorch/test-infra/.github/workflows/windows_job.yml@release/2.4 with: repository: pytorch/vision runner: ${{ matrix.runner }} gpu-arch-type: ${{ matrix.gpu-arch-type }} gpu-arch-version: ${{ matrix.gpu-arch-version }} timeout: 120 test-infra-ref: release/2.4 script: | set -euxo pipefail export PYTHON_VERSION=${{ matrix.python-version }} export VC_YEAR=2019 export VSDEVCMD_ARGS="" export GPU_ARCH_TYPE=${{ matrix.gpu-arch-type }} export GPU_ARCH_VERSION=${{ matrix.gpu-arch-version }} ./.github/scripts/unittest.sh onnx: uses: pytorch/test-infra/.github/workflows/linux_job.yml@release/2.4 with: repository: pytorch/vision test-infra-ref: release/2.4 script: | set -euo pipefail export PYTHON_VERSION=3.8 export GPU_ARCH_TYPE=cpu export GPU_ARCH_VERSION='' ./.github/scripts/setup-env.sh # Prepare conda CONDA_PATH=$(which conda) eval "$(${CONDA_PATH} shell.bash hook)" conda activate ci echo '::group::Install ONNX' pip install --progress-bar=off onnx onnxruntime echo '::endgroup::' echo '::group::Install testing utilities' pip install --progress-bar=off pytest echo '::endgroup::' echo '::group::Run ONNX tests' pytest --junit-xml="${RUNNER_TEST_RESULTS_DIR}/test-results.xml" -v --durations=25 test/test_onnx.py echo '::endgroup::' unittests-extended: uses: pytorch/test-infra/.github/workflows/linux_job.yml@release/2.4 with: repository: pytorch/vision test-infra-ref: release/2.4 script: | set -euo pipefail export PYTHON_VERSION=3.8 export GPU_ARCH_TYPE=cpu export GPU_ARCH_VERSION='' ./.github/scripts/setup-env.sh # Prepare conda CONDA_PATH=$(which conda) eval "$(${CONDA_PATH} shell.bash hook)" conda activate ci echo '::group::Pre-download model weights' pip install --progress-bar=off aiohttp aiofiles tqdm python scripts/download_model_urls.py echo '::endgroup::' echo '::group::Install testing utilities' # TODO: remove the <8 constraint on pytest when https://github.com/pytorch/vision/issues/8238 is closed pip install --progress-bar=off "pytest<8" echo '::endgroup::' echo '::group::Run extended unittests' export PYTORCH_TEST_WITH_EXTENDED=1 pytest --junit-xml="${RUNNER_TEST_RESULTS_DIR}/test-results.xml" -v --durations=25 test/test_extended_*.py echo '::endgroup::' vision-0.19.1/.github/workflows/update-viablestrict.yml000066400000000000000000000012261466211133600232100ustar00rootroot00000000000000name: Update viable/strict on: pull_request: paths: - .github/workflows/update-viablestrict.yml schedule: - cron: 10,40 * * * * workflow_dispatch: concurrency: group: ${{ github.workflow }} cancel-in-progress: false jobs: do_update_viablestrict: uses: pytorch/test-infra/.github/workflows/update-viablestrict.yml@release/2.4 with: repository: pytorch/vision required_checks: "Build Linux,Build M1,Build Macos,Build Windows,Tests,CMake,Lint,Docs" test-infra-ref: release/2.4 secrets: ROCKSET_API_KEY: ${{ secrets.ROCKSET_API_KEY }} GITHUB_DEPLOY_KEY : ${{ secrets.VISION_GITHUB_DEPLOY_KEY }} vision-0.19.1/.gitignore000066400000000000000000000010111466211133600150750ustar00rootroot00000000000000build/ dist/ torchvision.egg-info/ torchvision/version.py */**/__pycache__ */__pycache__ */*.pyc */**/*.pyc */**/**/*.pyc */**/*~ *~ docs/build # sphinx-gallery docs/source/auto_examples/ docs/source/gen_modules/ docs/source/generated/ docs/source/models/generated/ # pytorch-sphinx-theme gets installed here docs/src .coverage htmlcov .*.swp *.so* *.dylib* */*.so* */*.dylib* *.swp *.swo gen.yml .mypy_cache .vscode/ .idea/ *.orig *-checkpoint.ipynb *.venv ## Xcode User settings xcuserdata/ # direnv .direnv .envrc vision-0.19.1/.pre-commit-config.yaml000066400000000000000000000013351466211133600173770ustar00rootroot00000000000000repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.0.1 hooks: - id: check-docstring-first - id: check-toml - id: check-yaml exclude: packaging/.* args: - --allow-multiple-documents - id: mixed-line-ending args: [--fix=lf] - id: end-of-file-fixer - repo: https://github.com/omnilib/ufmt rev: v1.3.3 hooks: - id: ufmt additional_dependencies: - black == 22.3.0 - usort == 1.0.2 - repo: https://github.com/PyCQA/flake8 rev: 5.0.4 hooks: - id: flake8 args: [--config=setup.cfg] - repo: https://github.com/PyCQA/pydocstyle rev: 6.1.1 hooks: - id: pydocstyle vision-0.19.1/CITATION.cff000066400000000000000000000006621466211133600150120ustar00rootroot00000000000000cff-version: 1.2.0 title: "TorchVision: PyTorch's Computer Vision library" message: >- If you find TorchVision useful in your work, please consider citing the following BibTeX entry. type: software authors: - given-names: TorchVision maintainers and contributors url: "https://github.com/pytorch/vision" license: "BSD-3-Clause" date-released: "2016-11-06" journal: "GitHub repository" publisher: "GitHub" key: "torchvision2016" vision-0.19.1/CMakeLists.txt000066400000000000000000000111151466211133600156530ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.18) project(torchvision) set(CMAKE_CXX_STANDARD 17) file(STRINGS version.txt TORCHVISION_VERSION) option(WITH_CUDA "Enable CUDA support" OFF) option(WITH_MPS "Enable MPS support" OFF) option(WITH_PNG "Enable features requiring LibPNG." ON) option(WITH_JPEG "Enable features requiring LibJPEG." ON) if(WITH_CUDA) enable_language(CUDA) add_definitions(-D__CUDA_NO_HALF_OPERATORS__) add_definitions(-DWITH_CUDA) set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --expt-relaxed-constexpr") endif() if(WITH_MPS) enable_language(OBJC OBJCXX) add_definitions(-DWITH_MPS) endif() find_package(Torch REQUIRED) if (WITH_PNG) add_definitions(-DPNG_FOUND) find_package(PNG REQUIRED) endif() if (WITH_JPEG) add_definitions(-DJPEG_FOUND) find_package(JPEG REQUIRED) endif() function(CUDA_CONVERT_FLAGS EXISTING_TARGET) get_property(old_flags TARGET ${EXISTING_TARGET} PROPERTY INTERFACE_COMPILE_OPTIONS) if(NOT "${old_flags}" STREQUAL "") string(REPLACE ";" "," CUDA_flags "${old_flags}") set_property(TARGET ${EXISTING_TARGET} PROPERTY INTERFACE_COMPILE_OPTIONS "$<$>:${old_flags}>$<$>:-Xcompiler=${CUDA_flags}>" ) endif() endfunction() if(MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4819") if(WITH_CUDA) set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler=/wd4819") foreach(diag cc_clobber_ignored integer_sign_change useless_using_declaration set_but_not_used field_without_dll_interface base_class_has_different_dll_interface dll_interface_conflict_none_assumed dll_interface_conflict_dllexport_assumed implicit_return_from_non_void_function unsigned_compare_with_zero declared_but_not_referenced bad_friend_decl) string(APPEND CMAKE_CUDA_FLAGS " -Xcudafe --diag_suppress=${diag}") endforeach() CUDA_CONVERT_FLAGS(torch_cpu) if(TARGET torch_cuda) CUDA_CONVERT_FLAGS(torch_cuda) endif() if(TARGET torch_cuda_cu) CUDA_CONVERT_FLAGS(torch_cuda_cu) endif() if(TARGET torch_cuda_cpp) CUDA_CONVERT_FLAGS(torch_cuda_cpp) endif() endif() endif() include(GNUInstallDirs) include(CMakePackageConfigHelpers) set(TVCPP torchvision/csrc) list(APPEND ALLOW_LISTED ${TVCPP} ${TVCPP}/io/image ${TVCPP}/io/image/cpu ${TVCPP}/io/image/cpu/giflib ${TVCPP}/models ${TVCPP}/ops ${TVCPP}/ops/autograd ${TVCPP}/ops/cpu ${TVCPP}/io/image/cuda) if(WITH_CUDA) list(APPEND ALLOW_LISTED ${TVCPP}/ops/cuda ${TVCPP}/ops/autocast) endif() if(WITH_MPS) list(APPEND ALLOW_LISTED ${TVCPP}/ops/mps) endif() FOREACH(DIR ${ALLOW_LISTED}) file(GLOB ALL_SOURCES ${ALL_SOURCES} ${DIR}/*.*) ENDFOREACH() add_library(${PROJECT_NAME} SHARED ${ALL_SOURCES}) target_link_libraries(${PROJECT_NAME} PRIVATE ${TORCH_LIBRARIES}) if(WITH_MPS) find_library(metal NAMES Metal) find_library(foundation NAMES Foundation) target_link_libraries(${PROJECT_NAME} PRIVATE ${metal} ${foundation}) endif() if (WITH_PNG) target_link_libraries(${PROJECT_NAME} PRIVATE ${PNG_LIBRARY}) endif() if (WITH_JPEG) target_link_libraries(${PROJECT_NAME} PRIVATE ${JPEG_LIBRARIES}) endif() set_target_properties(${PROJECT_NAME} PROPERTIES EXPORT_NAME TorchVision INSTALL_RPATH ${TORCH_INSTALL_PREFIX}/lib) include_directories(torchvision/csrc) if (WITH_PNG) include_directories(${PNG_INCLUDE_DIRS}) endif() if (WITH_JPEG) include_directories(${JPEG_INCLUDE_DIRS}) endif() set(TORCHVISION_CMAKECONFIG_INSTALL_DIR "share/cmake/TorchVision" CACHE STRING "install path for TorchVisionConfig.cmake") configure_package_config_file(cmake/TorchVisionConfig.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/TorchVisionConfig.cmake" INSTALL_DESTINATION ${TORCHVISION_CMAKECONFIG_INSTALL_DIR}) write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/TorchVisionConfigVersion.cmake VERSION ${TORCHVISION_VERSION} COMPATIBILITY AnyNewerVersion) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/TorchVisionConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/TorchVisionConfigVersion.cmake DESTINATION ${TORCHVISION_CMAKECONFIG_INSTALL_DIR}) install(TARGETS ${PROJECT_NAME} EXPORT TorchVisionTargets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ) install(EXPORT TorchVisionTargets NAMESPACE TorchVision:: DESTINATION ${TORCHVISION_CMAKECONFIG_INSTALL_DIR}) FOREACH(INPUT_DIR ${ALLOW_LISTED}) string(REPLACE "${TVCPP}" "${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}" OUTPUT_DIR ${INPUT_DIR}) file(GLOB INPUT_FILES ${INPUT_DIR}/*.*) install(FILES ${INPUT_FILES} DESTINATION ${OUTPUT_DIR}) ENDFOREACH() vision-0.19.1/CODE_OF_CONDUCT.md000066400000000000000000000064171466211133600157230ustar00rootroot00000000000000# Code of Conduct ## Our Pledge In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. ## Our Standards Examples of behavior that contributes to creating a positive environment include: * Using welcoming and inclusive language * Being respectful of differing viewpoints and experiences * Gracefully accepting constructive criticism * Focusing on what is best for the community * Showing empathy towards other community members Examples of unacceptable behavior by participants include: * The use of sexualized language or imagery and unwelcome sexual attention or advances * Trolling, insulting/derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or electronic address, without explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. ## Scope This Code of Conduct applies within all project spaces, and it also applies when an individual is representing the project or its community in public spaces. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at . All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html [homepage]: https://www.contributor-covenant.org For answers to common questions about this code of conduct, see https://www.contributor-covenant.org/faq vision-0.19.1/CONTRIBUTING.md000066400000000000000000000212001466211133600153400ustar00rootroot00000000000000# Contributing to Torchvision We want to make contributing to this project as easy and transparent as possible. ## TL;DR We appreciate all contributions. If you are interested in contributing to Torchvision, there are many ways to help out. Your contributions may fall into the following categories: - It helps the project if you could - Report issues you're facing - Give a :+1: on issues that others reported and that are relevant to you - Answering queries on the issue tracker, investigating bugs are very valuable contributions to the project. - You would like to improve the documentation. This is no less important than improving the library itself! If you find a typo in the documentation, do not hesitate to submit a GitHub pull request. - If you would like to fix a bug - please pick one from the [list of open issues labelled as "help wanted"](https://github.com/pytorch/vision/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) - comment on the issue that you want to work on this issue - send a PR with your fix, see below. - If you plan to contribute new features, utility functions or extensions, please first open an issue and discuss the feature with us. ## Issues We use GitHub issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue. ## Development installation ### Dependencies Start by installing the **nightly** build of PyTorch following the [official instructions](https://pytorch.org/get-started/locally/). Note that the official instructions may ask you to install torchvision itself. If you are doing development on torchvision, you should not install prebuilt torchvision packages. **Optionally**, install `libpng` and `libjpeg-turbo` if you want to enable support for native encoding / decoding of PNG and JPEG formats in [torchvision.io](https://pytorch.org/vision/stable/io.html#image): ```bash conda install libpng libjpeg-turbo -c pytorch ``` Note: you can use the `TORCHVISION_INCLUDE` and `TORCHVISION_LIBRARY` environment variables to tell the build system where to find those libraries if they are in specific locations. Take a look at [setup.py](https://github.com/pytorch/vision/blob/main/setup.py) for more details. ### Clone and install torchvision ```bash git clone https://github.com/pytorch/vision.git cd vision python setup.py develop # use install instead of develop if you don't care about development. # or, for OSX # MACOSX_DEPLOYMENT_TARGET=10.9 CC=clang CXX=clang++ python setup.py develop # for C++ debugging, use DEBUG=1 # DEBUG=1 python setup.py develop ``` By default, GPU support is built if CUDA is found and `torch.cuda.is_available()` is true. It's possible to force building GPU support by setting `FORCE_CUDA=1` environment variable, which is useful when building a docker image. We don't officially support building from source using `pip`, but _if_ you do, you'll need to use the `--no-build-isolation` flag. #### Other development dependencies (some of these are needed to run tests): ``` pip install expecttest flake8 typing mypy pytest pytest-mock scipy requests ``` ## Development Process If you plan to modify the code or documentation, please follow the steps below: 1. Fork the repository and create your branch from `main`. 2. If you have modified the code (new feature or bug-fix), please add unit tests. 3. If you have changed APIs, update the documentation. Make sure the documentation builds. 4. Ensure the test suite passes. 5. Make sure your code passes the formatting checks (see below). For more details about pull requests, please read [GitHub's guides](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request). If you would like to contribute a new model, please see [here](#New-architecture-or-improved-model-weights). If you would like to contribute a new dataset, please see [here](#New-dataset). ### Code formatting and typing #### Formatting The torchvision code is formatted by [black](https://black.readthedocs.io/en/stable/), and checked against pep8 compliance with [flake8](https://flake8.pycqa.org/en/latest/). Instead of relying directly on `black` however, we rely on [ufmt](https://github.com/omnilib/ufmt), for compatibility reasons with Facebook internal infrastructure. To format your code, install `ufmt` with `pip install ufmt==1.3.3 black==22.3.0 usort==1.0.2` and use e.g.: ```bash ufmt format torchvision ``` For the vast majority of cases, this is all you should need to run. For the formatting to be a bit faster, you can also choose to only apply `ufmt` to the files that were edited in your PR with e.g.: ```bash ufmt format `git diff main --name-only` ``` Similarly, you can check for `flake8` errors with `flake8 torchvision`, although they should be fairly rare considering that most of the errors are automatically taken care of by `ufmt` already. ##### Pre-commit hooks For convenience and **purely optionally**, you can rely on [pre-commit hooks](https://pre-commit.com/) which will run both `ufmt` and `flake8` prior to every commit. First install the `pre-commit` package with `pip install pre-commit`, and then run `pre-commit install` at the root of the repo for the hooks to be set up - that's it. Feel free to read the [pre-commit docs](https://pre-commit.com/#usage) to learn more and improve your workflow. You'll see for example that `pre-commit run --all-files` will run both `ufmt` and `flake8` without the need for you to commit anything, and that the `--no-verify` flag can be added to `git commit` to temporarily deactivate the hooks. #### Type annotations The codebase has type annotations, please make sure to add type hints if required. We use `mypy` tool for type checking: ```bash mypy --config-file mypy.ini ``` ### Unit tests Before running tests make sure to install [test dependencies](#other-development-dependencies-some-of-these-are-needed-to-run-tests). If you have modified the code by adding a new feature or a bug-fix, please add unit tests for that. To run a specific test: ```bash pytest test/ -vvv -k # e.g. pytest test/test_transforms.py -vvv -k test_center_crop ``` If you would like to run all tests: ```bash pytest test -vvv ``` Tests that require internet access should be in `test/test_internet.py`. ### Documentation Torchvision uses [Google style](http://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html) for formatting docstrings. Length of line inside docstrings block must be limited to 120 characters. Please, follow the instructions to build and deploy the documentation locally. #### Install requirements ```bash cd docs pip install -r requirements.txt ``` #### Build ```bash cd docs make html-noplot ``` Then open `docs/build/html/index.html` in your favorite browser. The docs are also automatically built when you submit a PR. The job that builds the docs is named `build_docs`. You can access the rendered docs by clicking on that job and then going to the "Artifacts" tab. You can clean the built docs and re-start the build from scratch by doing ``make clean``. #### Building the example gallery - or not In most cases, running `make html-noplot` is enough to build the docs for your specific use-case. The `noplot` part tells sphinx **not** to build the examples in the [gallery](https://pytorch.org/vision/stable/auto_examples/index.html), which saves a lot of building time. If you need to build all the examples in the gallery, then you can use `make html`. You can also choose to only build a subset of the examples by using the ``EXAMPLES_PATTERN`` env variable, which accepts a regular expression. For example ``EXAMPLES_PATTERN="transforms" make html`` will only build the examples with "transforms" in their name. ### New architecture or improved model weights Please refer to the guidelines in [Contributing to Torchvision - Models](https://github.com/pytorch/vision/blob/main/CONTRIBUTING_MODELS.md). ### New dataset Please, do not send any PR with a new dataset without discussing it in an issue as, most likely, it will not be accepted. ### Pull Request If all previous checks (flake8, mypy, unit tests) are passing, please send a PR. Submitted PR will pass other tests on different operating systems, python versions and hardware. For more details about pull requests workflow, please read [GitHub's guides](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request). ## License By contributing to Torchvision, you agree that your contributions will be licensed under the LICENSE file in the root directory of this source tree. Contributors are also required to [sign our Contributor License Agreement](https://code.facebook.com/cla). vision-0.19.1/CONTRIBUTING_MODELS.md000066400000000000000000000131511466211133600164110ustar00rootroot00000000000000# Contributing to Torchvision - Models - [New Model Architectures - Overview](#new-model-architectures---overview) - [New Weights for Existing Model Architectures](#new-weights-for-existing-model-architectures) ## New Model Architectures - Overview For someone who would be interested in adding a model architecture, it is also expected to train the model, so here are a few important considerations: - Training big models requires lots of resources and the cost quickly adds up - Reproducing models is fun but also risky as you might not always get the results reported on the paper. It might require a huge amount of effort to close the gap - The contribution might not get merged if we significantly lack in terms of accuracy, speed etc - Including new models in TorchVision might not be the best approach, so other options such as releasing the model through to [Pytorch Hub](https://pytorch.org/hub/) should be considered So, before starting any work and submitting a PR there are a few critical things that need to be taken into account in order to make sure the planned contribution is within the context of TorchVision, and the requirements and expectations are discussed beforehand. If this step is skipped and a PR is submitted without prior discussion it will almost certainly be rejected. ### 1. Preparation work - Start by looking into this [issue](https://github.com/pytorch/vision/issues/2707) in order to have an idea of the models that are being considered, express your willingness to add a new model and discuss with the community whether this model should be included in TorchVision. It is very important at this stage to make sure that there is an agreement on the value of having this model in TorchVision and there is no one else already working on it. - If the decision is to include the new model, then please create a new ticket which will be used for all design and implementation discussions prior to the PR. One of the TorchVision maintainers will reach out at this stage and this will be your POC from this point onwards in order to provide support, guidance and regular feedback. ### 2. Implement the model Please take a look at existing models in TorchVision to get familiar with the idioms. Also, please look at recent contributions for new models. If in doubt about any design decisions you can ask for feedback on the issue created in step 1. Example of things to take into account: - The implementation should be as close as possible to the canonical implementation/paper - The PR must include the code implementation, documentation and tests - It should also extend the existing reference scripts used to train the model - The weights need to reproduce closely the results of the paper in terms of accuracy, even though the final weights to be deployed will be those trained by the TorchVision maintainers - The PR description should include commands/configuration used to train the model, so that the TorchVision maintainers can easily run them to verify the implementation and generate the final model to be released - Make sure we re-use existing components as much as possible (inheritance) - New primitives (transforms, losses, etc.) can be added if necessary, but the final location will be determined after discussion with the dedicated maintainer - Please take a look at the detailed [implementation and documentation guidelines](https://github.com/pytorch/vision/issues/5319) for a fine grain list of things not to be missed ### 3. Train the model with reference scripts To validate the new model against the common benchmark, as well as to generate pre-trained weights, you must use TorchVision’s reference scripts to train the model. Make sure all logs and a final (or best) checkpoint are saved, because it is expected that a submission shows that a model has been successfully trained and the results are in line with the original paper/repository. This will allow the reviewers to quickly check the validity of the submission, but please note that the final model to be released will be re-trained by the maintainers in order to verify reproducibility, ensure that the changes occurred during the PR review did not introduce any bugs, and to avoid moving around a large amount of data (including all checkpoints and logs). ### 4. Submit a PR Submit a PR and tag the assigned maintainer. This PR should: - Link the original ticket - Provide a link for the original paper and the original repository if available - Highlight the important test metrics and how they compare to the original paper - Highlight any design choices that deviate from the original paper/implementation and rationale for these choices ## New Weights for Existing Model Architectures The process of improving existing models, for instance improving accuracy by retraining the model with a different set of hyperparameters or augmentations, is the following: 1. Open a ticket and discuss with the community and maintainers whether this improvement should be added to TorchVision. Note that to add new weights the improvement should be significant. 2. Train the model using TorchVision reference scripts. You can add new primitives (transforms, losses, etc) when necessary, but the final location will be determined after discussion with the dedicated maintainer. 3. Open a PR with the new weights, together with the training logs and the checkpoint chosen so the reviewers can verify the submission. Details on how the model was trained, i.e., the training command using the reference scripts, should be included in the PR. 4. The PR reviewers should replicate the results on their side to verify the submission and if all goes well the new weights should be ready to be released! vision-0.19.1/LICENSE000066400000000000000000000027551466211133600141320ustar00rootroot00000000000000BSD 3-Clause License Copyright (c) Soumith Chintala 2016, All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. vision-0.19.1/MANIFEST.in000066400000000000000000000001401466211133600146450ustar00rootroot00000000000000include README.md include LICENSE recursive-exclude * __pycache__ recursive-exclude * *.py[co] vision-0.19.1/README.md000066400000000000000000000125071466211133600144000ustar00rootroot00000000000000# torchvision [![total torchvision downloads](https://pepy.tech/badge/torchvision)](https://pepy.tech/project/torchvision) [![documentation](https://img.shields.io/badge/dynamic/json.svg?label=docs&url=https%3A%2F%2Fpypi.org%2Fpypi%2Ftorchvision%2Fjson&query=%24.info.version&colorB=brightgreen&prefix=v)](https://pytorch.org/vision/stable/index.html) The torchvision package consists of popular datasets, model architectures, and common image transformations for computer vision. ## Installation Please refer to the [official instructions](https://pytorch.org/get-started/locally/) to install the stable versions of `torch` and `torchvision` on your system. To build source, refer to our [contributing page](https://github.com/pytorch/vision/blob/main/CONTRIBUTING.md#development-installation). The following is the corresponding `torchvision` versions and supported Python versions. | `torch` | `torchvision` | Python | | ------------------ | ------------------ | ------------------- | | `main` / `nightly` | `main` / `nightly` | `>=3.8`, `<=3.12` | | `2.3` | `0.18` | `>=3.8`, `<=3.12` | | `2.2` | `0.17` | `>=3.8`, `<=3.11` | | `2.1` | `0.16` | `>=3.8`, `<=3.11` | | `2.0` | `0.15` | `>=3.8`, `<=3.11` |
older versions | `torch` | `torchvision` | Python | |---------|-------------------|---------------------------| | `1.13` | `0.14` | `>=3.7.2`, `<=3.10` | | `1.12` | `0.13` | `>=3.7`, `<=3.10` | | `1.11` | `0.12` | `>=3.7`, `<=3.10` | | `1.10` | `0.11` | `>=3.6`, `<=3.9` | | `1.9` | `0.10` | `>=3.6`, `<=3.9` | | `1.8` | `0.9` | `>=3.6`, `<=3.9` | | `1.7` | `0.8` | `>=3.6`, `<=3.9` | | `1.6` | `0.7` | `>=3.6`, `<=3.8` | | `1.5` | `0.6` | `>=3.5`, `<=3.8` | | `1.4` | `0.5` | `==2.7`, `>=3.5`, `<=3.8` | | `1.3` | `0.4.2` / `0.4.3` | `==2.7`, `>=3.5`, `<=3.7` | | `1.2` | `0.4.1` | `==2.7`, `>=3.5`, `<=3.7` | | `1.1` | `0.3` | `==2.7`, `>=3.5`, `<=3.7` | | `<=1.0` | `0.2` | `==2.7`, `>=3.5`, `<=3.7` |
## Image Backends Torchvision currently supports the following image backends: - torch tensors - PIL images: - [Pillow](https://python-pillow.org/) - [Pillow-SIMD](https://github.com/uploadcare/pillow-simd) - a **much faster** drop-in replacement for Pillow with SIMD. Read more in in our [docs](https://pytorch.org/vision/stable/transforms.html). ## [UNSTABLE] Video Backend Torchvision currently supports the following video backends: - [pyav](https://github.com/PyAV-Org/PyAV) (default) - Pythonic binding for ffmpeg libraries. - video_reader - This needs ffmpeg to be installed and torchvision to be built from source. There shouldn't be any conflicting version of ffmpeg installed. Currently, this is only supported on Linux. ``` conda install -c conda-forge 'ffmpeg<4.3' python setup.py install ``` # Using the models on C++ Refer to [example/cpp](https://github.com/pytorch/vision/tree/main/examples/cpp). **DISCLAIMER**: the `libtorchvision` library includes the torchvision custom ops as well as most of the C++ torchvision APIs. Those APIs do not come with any backward-compatibility guarantees and may change from one version to the next. Only the Python APIs are stable and with backward-compatibility guarantees. So, if you need stability within a C++ environment, your best bet is to export the Python APIs via torchscript. ## Documentation You can find the API documentation on the pytorch website: ## Contributing See the [CONTRIBUTING](CONTRIBUTING.md) file for how to help out. ## Disclaimer on Datasets This is a utility library that downloads and prepares public datasets. We do not host or distribute these datasets, vouch for their quality or fairness, or claim that you have license to use the dataset. It is your responsibility to determine whether you have permission to use the dataset under the dataset's license. If you're a dataset owner and wish to update any part of it (description, citation, etc.), or do not want your dataset to be included in this library, please get in touch through a GitHub issue. Thanks for your contribution to the ML community! ## Pre-trained Model License The pre-trained models provided in this library may have their own licenses or terms and conditions derived from the dataset used for training. It is your responsibility to determine whether you have permission to use the models for your use case. More specifically, SWAG models are released under the CC-BY-NC 4.0 license. See [SWAG LICENSE](https://github.com/facebookresearch/SWAG/blob/main/LICENSE) for additional details. ## Citing TorchVision If you find TorchVision useful in your work, please consider citing the following BibTeX entry: ```bibtex @software{torchvision2016, title = {TorchVision: PyTorch's Computer Vision library}, author = {TorchVision maintainers and contributors}, year = 2016, journal = {GitHub repository}, publisher = {GitHub}, howpublished = {\url{https://github.com/pytorch/vision}} } ``` vision-0.19.1/android/000077500000000000000000000000001466211133600145345ustar00rootroot00000000000000vision-0.19.1/android/.gitignore000066400000000000000000000001051466211133600165200ustar00rootroot00000000000000local.properties **/*.iml .gradle .idea/* .externalNativeBuild build vision-0.19.1/android/README.md000066400000000000000000000001471466211133600160150ustar00rootroot00000000000000## Status The Android demo of TorchVision is currently unmaintained, untested and likely out-of-date. vision-0.19.1/android/build.gradle000066400000000000000000000017071466211133600170200ustar00rootroot00000000000000allprojects { buildscript { ext { minSdkVersion = 21 targetSdkVersion = 28 compileSdkVersion = 28 buildToolsVersion = '28.0.3' coreVersion = "1.2.0" extJUnitVersion = "1.1.1" runnerVersion = "1.2.0" rulesVersion = "1.2.0" junitVersion = "4.12" androidSupportAppCompatV7Version = "28.0.0" fbjniJavaOnlyVersion = "0.0.3" soLoaderNativeLoaderVersion = "0.10.5" pytorchAndroidVersion = "1.12" } repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:4.1.2' classpath 'com.vanniktech:gradle-maven-publish-plugin:0.14.2' } } repositories { google() mavenCentral() } } ext.deps = [ jsr305: 'com.google.code.findbugs:jsr305:3.0.1', ] vision-0.19.1/android/gradle.properties000066400000000000000000000013361466211133600201130ustar00rootroot00000000000000ABI_FILTERS=armeabi-v7a,arm64-v8a,x86,x86_64 VERSION_NAME=0.15.0-SNAPSHOT GROUP=org.pytorch MAVEN_GROUP=org.pytorch SONATYPE_STAGING_PROFILE=orgpytorch POM_URL=https://github.com/pytorch/vision/ POM_SCM_URL=https://github.com/pytorch/vision.git POM_SCM_CONNECTION=scm:git:https://github.com/pytorch/vision POM_SCM_DEV_CONNECTION=scm:git:git@github.com:pytorch/vision.git POM_LICENSE_NAME=BSD 3-Clause POM_LICENSE_URL=https://github.com/pytorch/vision/blob/main/LICENSE POM_ISSUES_URL=https://github.com/pytorch/vision/issues POM_LICENSE_DIST=repo POM_DEVELOPER_ID=pytorch POM_DEVELOPER_NAME=pytorch # Gradle internals android.useAndroidX=true android.enableJetifier=true testAppAllVariantsEnabled=false org.gradle.jvmargs=-Xmx12g vision-0.19.1/android/gradle/000077500000000000000000000000001466211133600157725ustar00rootroot00000000000000vision-0.19.1/android/gradle/wrapper/000077500000000000000000000000001466211133600174525ustar00rootroot00000000000000vision-0.19.1/android/gradle/wrapper/gradle-wrapper.jar000066400000000000000000001555611466211133600231010ustar00rootroot00000000000000PKA META-INF/PKA>zBWMETA-INF/MANIFEST.MFMLK-. K-*ϳR03-IM+I, dZ)%bµrrPKAorg/PKA org/gradle/PKAorg/gradle/wrapper/PKA"8M+6/ -org/gradle/wrapper/BootstrapMainStarter.classV[wFVbD 8@bH v.6!$C (R*\z}/}m_ZNk+/V33}3;_{~"3AFZƜ zq6sx9dr>.byY!ԁ%eʸk*C݈0e:X b)v`% d\. va2hfO1bE)e9fJi[e$SE{M(+Z!6bhy'oZ*M.2jFV-[ 2 ŖjRWb2c[Qt%t>ZE1C 9c( jQ9Ӱ-;rT䅅tJ.Q֎aK]lG$B WJ{Lt >r"+,Tg\y{y'F.+|oOG^Vd82+z>jvTy^Q[=}l!8Q[N(߉ԾgancU]~ۼ@_,-ii"36/5^WC sjq&Kܛ,^'㥮ίX\%rK8 a]HT{JN7:Z֠y8R˙Q@3nשr/B(*`l5m9M^XeȄp^39,3%զ A{xL! m/҇{7}şL(68~ ϸֲQ9 GphH1Ha?(7_$ e [M9ᡅG LUS3d!ZΠCEIbÆWhDJt ?fc$BZRD$^!?㈽mb#fHfv>YzAh|.sd4ԎI&IωÛK'1%Y<Ͽ=z;5W3 |!J+wzRc}:uI ڱcU+"&Qq`">I(f/WDd|‹xP7k3,nKz%rYhID 9jIqy=U@=gȐKNIA]>NY ^8OP0& Ǻu>J$yK6U);-yL%FsY,>- ffD%md+'[' ]K.ȻH2&WJv,62;RW? S-xyawQ71VAd2 `qɋ82'Y2[LͼI}ͫ. fz$o3lbL7c>Z]NfLWf@١ SΔ~ ֟҅ZBG,ufQ]V}C)3DSԮE]Zja:SՕkEv5- lQr5s:"3Kd TX*KRWb5qWObM5;Fm7ltjݚZ:i@.w=⥒dQ*T2WLQhжjXIUA'QGDz ٞ\ew$(VIϵGtM7beLMMXrŲʦTgaUzkPQEty[&`'4,[ZӾS?B(J99gO)s˾K)aǓ%L[i >_,)z6#yϼ;󕊾8,JX Y*!prYc0q`@P=z/_H;l'9G|V64JS9}Úm&?^Co;*5#=ŪLr,wsEpU| !5T44] U0خ%uT??Cf4~C5*n U| i>m Jj=tнi-͸V\o#vd'^:zο^b"؏c8,ddb(u)=PBq5B/5 8$S&6ISA*pXOIj ދѡQ8 K x~^In' #)TE3USW|PT‰l8 2EtfG0>B˨"*yp+~G ' *TA4%%$%-HSB#hEZkn46 M?sLa|3?OΰR>OfY|: ;pwO=hK6pSp ij 7vf ep1N948 b)C$pA̛y ٙǐE:Fb @}(Z񡟁I+i4t7/EH)xP8(CWmf!Aw=m!_iʭ謭!"o@@𘂯/SH ǿb~3Vjm@M2y+k#Z1"L3L LL%ehe4>Z/2\sZ93w~,Ǔs)ľemY{ iʨl܈i%N&Ô h/? =-u#΍iĹو!mKDs&b2N^}O~.|aܕX٘~f,-BRyMZާ"^52Qy*x% ޯ >|P}*kM`f/2"28 C!dl ͑L*iہ@Y8g,+Z ! ZT}f} ʞ9Ĩ.0k&FPKAyL1org/gradle/wrapper/DownloadProgressListener.classu @E+jDE@ۖEERI#3c[>4v9OĪ.r%J[M DŽ,]8kߟ_PU:]3aG\^&at"-EeY˛8\3K tЎBNk؁PKA)zü 3org/gradle/wrapper/ExclusiveFileAccessManager.classVsWY:vĭ:I[ɉRdqc;i䘺 I҉jWVq̭PH 6>0ig3<^wv%ǷG>{wݿwN!i8/h8@5<@gTfԳ(R-2Y V3.\TU4M`bߊr_n* 67ߌ˭X2W_íx_ j@艡sGOh^23dg93mCSMǟ4htXE@6]9.", R\zR :)>j9rZބ9mKe-Y\'FYZ27̢-3Y.K/srVKrز` +11gGGf@LqXnFoٙ'?3dڶ؟^鋲+er]œѡ¬8ҮŜJ\ Y]fe/T}虫\LCmZsGuZe" Z]r,{D!or -W i@ue"5~գjX =Is73ҟ \,VjJY%saZnE>Qo3]m!2ޖB(p<(w^^]wFiч:a^WF;k;Hղ=|_dil4VMU=ۯ{Su"wgC["8C[D5mI֥*.bToguܛ%c5ܗ'5$ƥ%7p2ƅ*wT46vt~*7.l"I(WN:x@2^uc[Y}~>aج(H}IUX+ ì9Vdы(zYVy%4gdojZ -Ň8"aq,aTDpBh8I/.68..ͻ8`,SMZx h'Kq w(gpM% )AOW1NEECxG)/KS)yha oEC.8D 5F5>KFې t'}S#|[r zS?b,ss?a>8Vg) H'!Lt9BuJ Swl߽{?BnjGLl0U1Q&l3҉Ѭ4i.ҦMg8 Lݦ{یߝ$k_X}}<(bKZN. QQ*x7z&/,woQV͋{T1[bƻU܋(OE~mx~|@.Tq?*x@^|H>b > b9&T,ƤX)܏Ly:ϪxSy|A%_VU_׽Rmyt{ש1Z.hd`UGXMk+cN}7ʔe!fX}{y&(gItOe%oc=v3Yͻ&#@O8NP0ў jOZd$:q+fO_x؁MF`msGWΈBV9E5[@ Z #YMQQȖuj7+.9IQf q OF pQ4*+e#ehe:'p%+;cZ:|+Y̲eӕ&:>lfJ1w2w1)It;#X;^З11+;Үh)*xX ^ %A(xճ۫]JG>. I>(>tGY)s1:y_PE_h?[]ѭf62Jӏ)IvVɓ5ހ \]D3{̵jlK 2ɖqfO;Tճ:ꅂƃjF[FKS2KsQ29xyص^`U3-v-K0m%p_b1Ah6zN-di6KS{@yH˴]S+RڠmSW_ę [0&=ݘߘ7Ue?In1 }+5q.ȵ&cpޓPZlJw' 7fF8-Ga5ѣyN!m7,")NWZ:'b~LNql8c(m3Cz?Ue_QU MQT5z_ }nj4dɨuR鞅 ufg&VF1iJ6bb"2dxy'⌆v56c4aةa7IY4| L+k5|ΤrixpNVy. poAw= }j;'U<i?jYQӧĕ2g kG =e\G2VrC+ǫf>v_8W Lcz"iPr##%(EY Q< @|CE4jb}<<.'Lh6[8JhQ %Fcf}<Ja Mf̒pK\a!w]QL=k|x[]oXS60 C|uJ]c-/5R_jt8&ɴ +h-]"ڔ^B+>5,h֫!XT0􋶖o{='yFW7cÙy} >$Cp`-dk 6ꭸTģ~fkYo jM3M:N#gZ[tΠBV`F_M)lXW L#fZ?KdԌ<752'fd6,3;|ƬHJ٬B0 68wRН&ץш@І-LnK,Iܔ)a[ -^;f,Q 0RljH4ᆪ^آ=< 0vˑX!̠)7Avب*ـ|yjԄ^1j4z4ftt̰mK)H GK*dE!SI K%N  ҀU!3,g)F;;8Ů(j9(i4F_#-mi!ir^PH!?8GPd5O2*cL#ZYS*ʹnTSUdD1}j$i#^C%aM?4C$H`>nVުmL*n,sYTV7p i Ճw:uC\h|;]ީ.~@Ny7L}xY[͆OXOD#8h!6e[Zq&'_j` DG(A(HKD3؈B8oFB~oE1]gM5WBlB8R8ʒ=x},U,X:?OiψHa,5$v:AFCgX.Nx H+z]w7"(Tg|@濠VbC3ggȮ/K_M&d|x+m=0!|s)!=BBH<ؠ\)\"Y[+Tc$ZpƯ:?<4h11"ܘQSQF#lűG++*Z$69RN7MwѮt~}Eh:GOC::$7'>C_1QuG6<=ަ/>}dV:9oGlFs3"ESrg!zAI}#. -S\gjmC=t E,,5! ʻP /SGlQ=y-Hy h9{P OF8F%A:sTI2]O*F#`!#+OB@/opRiHf=U#>H'_ߊӘ/K!dbia);Iw5?-U]وjG84!fƃNza٪KjHԬ!Jlj%>{篔jo}ͦ$S4W}0"RrmD5hj|"rΡsʢQ\1Αq+V=cfu> 8я/NDOt h wЀ hG8:414c0'S"5X,53BN~^a;iJ>g;唺\|>WQaqЇh=\Zi$MSll):% P9t)](^AC-+*p6|nkk0rӯpډ 6?|.X0gN-419h =)u:Q>W;u^QvQNcJjY\ϽF2|\K}4yi1|L_[v bq(,AhOgQq&ThXITA5бq$ZGh=v(Bm;J`PN!e4~M7GNB Bkt sm[i+ɡ݆Nt:Xȍ~m@MwN1ͭݣve#5 @MhԿNک#acOXguT.EIjs)QT{Zpr}bcM΢9ln#V;?w.7}:%jeKF;/ '.zĬ'3bFĐMYhF`qMd(DT*)uLäʙ)N kj^S*uY^!9ӹfmO8 pR KoY@W*!p9[:Wq]⺂VQKFAYjT\/0GA/[IJ+.3ʅkH\״RNs^sh&╢nQëk(OI'E\&Cw8 e#'1r q)^5+W{A#х&e޻5z!џ*=gi #`o!NV[3NX՝tb{7:rC9P2t*hj>i -ETY+'w)T%qg1[]Ԗz0N](%eYVj]a?{&Xu*:-Všk5Y9-fuը2Z04-mHacǝ4a>ķFڎHu/8 |{ى ~vÞ*ŶHWIAg"l4Izi@K{Bj2}))FzIx.{+^ORC5zEh*.雈kf"7K@L>@2cF*%KD>W.u G.Di_@*.JZ} 5ݻ.hەڂj s: ɬQCYbNt 'Jb\ЀbUpm> r#“՝|1O!PU́1hJ8 |>V60vLq-qDP.w=.v')VP<.m HE$hI(ClUR({_qK.̠u{ uKʭ̧@Nq嶹<(#Ãb^ H8@̸H8gdn$ ErQ>]<4:2fu^Na<<083?4dckqǐ{0#bvtUwxQ; 6m!W\5]1,)@F\s ˵w/'.Hqϰ3:NWfu-Ce"!lU#;m"x*@obw=Cj[$B# %qcI![3̔JgX&ovHIFi QV(Iؔ)r /,*ꊧP*qw(P&n_ݖ7ۛPKAi?V8org/gradle/wrapper/PathAssembler$LocalDistribution.classR[KAfոոV%ZV"}SQ!B>&']wd B(1 92}`0"<,9L6a"VY|o+MSYLXf7h$2Тݖ:&NGmT;Ale ITujR $լ.cE%L>תU4z/,#_Z[6eoɮTY}"VM1 D6 .@,h> /nDk%9P1,c3G1JƢ& ~tnDk=k;fF1SQ J\)3c1ldu5پV7=ݠpܳEm ǁ>!aY| =߰[ۉ;%PKARa&org/gradle/wrapper/PathAssembler.classViC=Fc!1Mv5[Jl)v2[Ȇi.iڴMt'm"7u;wf&0{]ޝxY܍pXo\Ǎ 2X* ]*"XHNeoFloʰ'#;O>E >/T|Qij2$ E;_]m/T B̛cTI3!}5"'4A y?0hxOjXƬ4yZSa Y^,f>k~&:?/_jk~}u/6^Q[ 3]L>w~?0F?i3t6h.5nҖcի0*8 zse17=/{' |6f:5fZŲ fDlF)*hx\mQa~Xfɚk$`o"%cYV.Ĭ;3zXsm~;<S#?>3LY[³Q6P\iM{q57GHܓ!`zvpr9@FUu Tpvf)fkSګn8ZsO~!2>FVg<{]oFjGrʪSc:OJu&+x% ޻u={Y&Jџuļ5N\qTj\Dq6s/ O̐fBOUp8=} ?vЧ(gƠ+xAtAw+I..(FTŪOyM& _D8фꐻMS6-*:rrk+{)w Iv?:>! :Z^{oOOZݘPr `S r:3r*H(Sj-c^ Rb1%f7&.HǪlOvͨL|ђಂ Kժ`ŭPS)aLQ)>S9P%R5aT| 쬭tDUFJKjll#F9g kkGI-S廕_2cdO71 m/mR>5s~XE +HD&yBUk7W4%^,71ձNnplxd3f-ן/J;CxR2#Ct923,pqo ἇ!WvAyG wK*QEϱ $_ [LQ8 e ܀:앓 t7.n줋ڇn`6)n8ao[`cxa_O\~Z7p6nC>zfau cͼ|62$=dxa%1 b *F?Ig+$[: (;5#xf &'S<5Sl忋6!^/pE )gI?COn_,PKAK-org/gradle/wrapper/WrapperConfiguration.classmOAgAEpRIxb@r)WrwO/~(M|33;3εGi\| CHHTnXN!vh{k7:vFj'p,|ʐŐ{Z4Tsr;?bMՏrsbx&َ0DK]zꙚXo;' }o6Zk6?d?=r6k,kZnv\ni}/ϖ3ܔ+pւ4*|ٸ5y~ՇC\<|B'C+if;8ëlc/0E<1KL~Z4)E#] 5 e>yէ +d* U2t'+'KBZZU\ݹ|Ѵ "& EcB5ztR'iDrYs$zZCf}in~JWaT +lŘ k}d )f,ABSdr *u৯t(;|*RFWkl-!B "}jdD@8CJyEfV(k^)e%]K+ d#K֮hmsKO NiaHs&ŜMn H8:EJqR&~ma}$6$UF*V7.o,;Ԏnd/q/q2YݗaTw=TkRPe|?q!K*H*椌1Ǐ%&zR)?1Sf) jKS^F_2ާ;b6c9T䄏O }Fԯdl7^)kYVxZ)L_oZzT9,2?Q#gN,FEE_7S>=b|fNFv y5kj&|M&+srz\IC?al%~ʺ+k>><j>\c1gkushܰvC61Dt`1Ț5Or3ҿF6vIq߁{S؅%=8?i0@e8ÖKg0`ؑ \ U!j#")4rh ¬!&rP\@,d#,g⥐t?O%2W>(kF?zpjq laN]| ! UιA,'lw⍔{λHvPXBq}0U5aqJ rXu@P,.h+m{21J 2҃B~H'#崪0r0]Ъ'b*ͻ+i $ Yu8%PJHd"2\WR2<~luuiuuiut+nM6rI~ak$uYl5N3p_k~yfWfG__PKA_#gradle-wrapper-classpath.properties+(JM.)M/JLIM**+MPKAorg/gradle/cli/PKA?<S1org/gradle/cli/AbstractCommandLineConverter.classT]oA= "~C?R*Oh4!aYm` Cߢ/42Pa9{s?PF@;:v Dc@{xY9yx\Ycfs ڑ߱Vg{m[xKH[{ʅ'&?bNӵKV-)%^{m!mQaظ|jUnl㌟R{N}f[ C -kږ=,ȍ؂ak^߫^t ֔-J_,/]ctˡ+;XrCuVQ CW uhCaoܠ1a6C2QľLK &!9a{ Q23Qu {'M~rՐ3|i153 mnDevf߆J~-CH;"d9edc DqָSX`Iw/!):Fy7_|@8_A #FVX! K`R~;x)>=NRnp؜ch⟐ϔ4=c/-ePKAqj ;org/gradle/cli/AbstractPropertiesCommandLineConverter.classVWUde $ԄDmKk(ƆMi+vYB؍ ?9D=}?ңֹ&l)~̝ܙ7[ C%bQ naI|$.|1_ݓ` Sdp Ia =|ɇ"rG" ݙg ¢2su_ΘR\W,Dmk* /j)rc)f%rt^4#.5k!TЎWKn xfW9PRE(bE/jy6gjuݪil녲E`)Mx %w0r~6N!#nQ2$5[ Fыe4?̕LJKSuX֖*%KmR]4}$EIU8&wF9cƋA*5/Itt|yyaz)\Q=pʄP,UT[cyV/Wr`gtnǀ\ܮ:q/!_׮΄#fR;:\daze1ALo#'B&cl b"ve(b_r.dX7 e82*87tWZ]3u+r"Me-&P q^yzS ;} <Hq/IߙS$ s5,\쌓 0ng8cum^.NKZ*>p7/`EkmH;%(Wnm&}u:%хq[1xR4Sm"0؏aƠK`n]@xkp(Jhn|Oغ2^~ `Q0O$cQϕ ^Ƙ{n㄂BJ"e-E~cy&e3}~&S鳧I =xRn0?k*DIu `d5@ڳB}u+mq -fn6F1@ ^ T^k~# "+}B^Tm|Gq%vB׻MRc>B?9]Khpi$D'0{ɟGm򹉫(ЅN'$FyY xq+g'? lk^ ߥ} duAJC8$J7 ?v}O ى]9Ľ8“[ Q$dÄ^:m17 iZ9 isOf/węDG EB\ 1&ȽqNg uv^, T"/E2k: _ze )ݫԐRu~!ʗ؉YZsu_PKAd(org/gradle/cli/CommandLineParser$1.classA 0EhZ v庈k^('P[\x%t|>̼F" ٜb,3M#u4ulKtse\WSƖP,rUŊBӚmsIJR/5-!GJR;}/`3ookPKA,}Q ;org/gradle/cli/CommandLineParser$AfterFirstSubCommand.classVNQN),l wĊ ETH`m۵.]݊shPIL|(BHs朙9\vf":n%"aQu` "L #"$ZJbHjz>ץ\Af J0mnJj.e=FړS C0ٹ *=dNX*mfd);eª+\fڹ =W(zH2eH缪z 2iS td5k:vMMn ES9UZ;[:<@XOa 6ΥG66ė0_" F1igJgg̉n\p….Na^S'd诗 P7Tm[Q}ljܱs] ,3*ܭe0ɲߖthL "oUtbXJTgR6+Uid( # jl0 V΍Tf]w+Y:ڻZڱr4ڼ MF~a\'J4'=`uD}m襵,lnIFˀDgo1s41BDtvГ8׉ް" W+݈b-;>En"%PKA_e)3org/gradle/cli/CommandLineParser$AfterOptions.classmOP( @ 1|Dd^\:ݭGBD?xnWGF 4=s{m<4ԐT/Ii Ij01b!Squ.%[X %׫5Wˬ8{ rĐc ۿ0>>UfHUammyC[N{Cc߱ {/}{Ʒ]!U!,oፆE93Hu~Z7 CW-7.j٢4Ő^M&1B5܌J>հՅ%V|lnkSM /Iu0Š9*2g z-[cgVEYE/4 ZD9jJƸV0sd>3̟;*Dlju^8?z?4L5ݎty`x;2 LC)z>#KiHShn|AbTGV>Gۄƶ#pyIb=1Bh^Jc/" Pr&`|xL+(:rߑ4H {>+tms!PJHRH!z9YT+R!U3lifGRZdIGC}SqߖF$T•`ۤ4 :)@sRa`x.).X4 @ PKA{& <org/gradle/cli/CommandLineParser$BeforeFirstSubCommand.classVRF=+ DdЖԡ&?08$Wq0&eQ,7y>B"iLLߢ䀉 2v{Ϟ={ 2;A%$\!⊌e| V%'r2dܐpsJX-ؐPg>Pdw,x޲骭VjzZ5^WJ0Mnv p.3\w5Wrw53↍f۷r,ἥmq(r Ue VLiZMm4tr[v]ӹA,:9eJ0\4PC{5]Sj؆YuZw& ծr:Y?u  ӽ& 0BmRK&K Ma/s'3?X/մ5WH ?1`J!u,r/%គ5CԏX[o;i=6HaS b*3$ObWut> ζBF[bI/)1:9јaP~kMA:xH $ͪD/+U[?谉=6)ωa륒UM,]=i/W1ji B0PyùvR^m7#r v[(=핻WNC#NҬDK {G3W#]|Aa/rlj(=":c/ @՞^*/?X=yy|@#Ql=dcZQw!I?1(`3]ȥ qWb>)S@  EWFW<0˸^b <ۻ2{P֍]%6|,1j'D^F^jV_4/c"|G*PKA;}RForg/gradle/cli/CommandLineParser$CaseInsensitiveStringComparator.classSMo@}|  iPZJNT )R Hz$۰ŵSWp)ę(UTRξy3o6 wK neU5[ҕ6CTcH`HW<="WR`2x%}E@n;lyG\S Vuj9%OƥX!2ڰTLr\"QΧU[c$+uJl0Qhj(:h[snڬȳ8. Xi(-# 2hCz\+w; ox oXCxQ \ݶ)̡#JEN:|F⨌pD2>2>AG9=Sfʰfi3 R1#SG(>|$ ?^3)BrКguM4ͦ.FzI<m np)*]+r eE*GǩXyR3Nkԧ x|t 5r9ɤ9i;ԣ%^U|ƴ)a`dXbm,]Fwr׌me~$*+C5H]Yt}^F~/ۤP'ju&VeR̂z&+OzH2iӂ`WLf:l ̙B K02V{B?hUνΝݹ3u.p$W0 &r~n1ق&[9fq-D-z_o$Wg.dyHѠa`{ǒiUް~tS~E93O5p*0b'V/O?PKA=org/gradle/cli/CommandLineParser$OptionAwareParserState.classUmOP~V֭+n"|1dl`J_!N4Y:+[Kn;џ/45QsK_z9szϹ_(b584!W=&ӐǤ) * *f4PTqS-xnU/.٢Qh^oZ,<1k0K dfz;pF!˦ewfeͮS lxƫM oV0Y.CɎk.Z. 2Z;A*3]-j' P&+L4!ECܕ֦mďڋ.eӢx'䍁VۢfR]RTGIg1gtưXRsŬp n -~aWXc:QNWrg?e[&xU0a- U}>b[}VjjM!ʦ;tGE_:UHd+: dsTF?lc1$2GoPKA3i7org/gradle/cli/CommandLineParser$OptionComparator.classUmOP~Q6|Aq 2@h,`2C2nfIג# _FgQ]lRLsys=_,4fGfe)02$>e+Dƪ5:CϺiC<2H%g3 TLo7{}cY855\SC3=Ρo:vi;.Cl-YqB,V]cZ256 {_ymws9(7QW+O=iEh a ʁqdha׵v]lʷwx;5jY:ZȲuіyu Un~Sԭ򯄚ii] VNӭhXG9AB)<ņg +l|Pn9)l9v0lF,/=7xgD (1܋e=,H G ]6UW%`amoYS@+NW;' oWF-cbt(!&FvCh˅)bIa=BɾaT(nB\CjQ.Ϝ ~-;Ez!ov֤3$ž0.@9֏80)u)` n2YN$e(av+d!^g7K8b:\HJk,^pi"/CmӸA$,yeI.P$i Ԉ,}r xoPKA 8org/gradle/cli/CommandLineParser$OptionParserState.classR]KA=Y&$Hl⋤6PZZHodN9}*lA"<;w={?pO>2bC&CTҜ1dW n+ Tb4 w#TqGW\K{$][& k#cD~+%t+I"rҎu#"ᐫ3ψ4P qcua!acwSQ?V5 e4Wa1Zb1Od毴U^G `i>jM87 Q'*R3;aKz3/ ԥ@hE\bؚ? Cmɭva,;- $_ R(. 6SuXKj%|3?%t&y0OxO=(y ap#PKA]3org/gradle/cli/CommandLineParser$OptionString.classSNQ=w۲eYJ-_( e)ԘLP l7eq.F'/$&>q݂`?vܙ3gf'9,wSi 9aesT-|wD]TgHƐ[rfG2t=Rω3LZZ= dů =+gַ rmQɷGMg2vB}Ma|yvPqytkAͬڦ:fů׹W%^ |j SgNpU^:}bF#n}x ȏUP^^)xOBc_$[,W H޵u7@ ŒHqY9 Yb^*Ѩt<wj:`IXIu xPu?ۊθ#؀Fۗ2-I!%aI 4N ReD!tFL(m`d.u/uiavq+/\Q~BrXL<}**n N2t#駐R1RVt>L^IlLMA?2݈CNb9y9M4&QhaF>f6.40$ЪpdPKA{֛{=org/gradle/cli/CommandLineParser$OptionStringComparator.classTOPmB`"LEB,!Y2dD.Ғ#+/{M7Dq99;_`:ӡCC^CQG`k Jk J.ˠV}afў?{yk^C8·q0dvCso͊wt,|z>Qu]˯8",­bBV40 Cw CWbnZ S rArh==b .K Y&IZ$ H3)\At#F V1fOgHvLHP_ $N)/x<,0:J|K<ZvInG$p4N03i#M% 46W,>3ig T LR1';IH@ĀK L+Ub&Ir(` HQ7a;PKA$2org/gradle/cli/CommandLineParser$ParserState.classSoPN) ssQP`lTf0H41!vu)3?&>GmdiҞ|~pF;6rɣj Z[hr/}ǯz`v¡GX;=A@'Bڞ8̏c"Ob^JOuE#%㱐C]!ͫN X|{lc쇒^O Xrn~tjYVB9faPJkOSvq;3̡P^}3ʩrhIV_ m|~FO4j7fbZ", Vuo5-ao:{p ۋV,0L_"W`n 7V i'9(^LX&3A)*LAڜehf90k F$p؄5ߛ̶Q hȇ,I[3,=Nq&2|RÊisF wYn PKAin?org/gradle/cli/CommandLineParser$UnknownOptionParserState.classUMSA}&a@ Q%""UZr6$[fl U|Tyx/,{6[!B$t{y;yVøLt*'̤0S `3Q\\G1ݲuw^fXq\#gh鹂e斝R֫:!$ECh-=u|hMl?J $ml!-6y$Ȧ ӌ>Aa;}):Ӫ_ WJJY ΒYRu히o>Z= xc0@#{X/2Uy$&^$"&;YqEB%vG|ȨqD:ҋ)H"evTTsjUp%9@Ҿb;#agˢ0E★8MU^"Y\+PKA%CQ*&org/gradle/cli/CommandLineParser.classYy`յM|l,J!BXDI`X!H83K]j֥kki5jF*־׾U}ŷuy}R w73IGs9s9{ϼp,y-;pJ5Use5&<5E$q6ē'^1L3+&K^X2,OՌ4d[%'M1'c}2N8D jfj&>).rO2D1zE(AOg/TS8JUS+<fL2ː L̕ن1|DUD 1XyaZR- YhbHfdRCDT5LY.ujt!a\TKՖ|Rnj{!kM4)0GjCrez[e]&坍lͦl+}UiʔlIZl1@`P cH1 [Evx$jve"ñ`N`k8ºP Z*mjZBvUs(XmU0l;_DPdw}pݒp@6=q^\]#-B6] HN uP*Dwbo ROQq6’M-/Aɡ澟4'Zݞf;:ܒ4SEi PyBt {׮E : lfd8rgo !4$r#d-(I, :E{PǞz1:{pbvXnؾ]-+jDȼ.(Se 'X.E2D>sʧr 47۱Xќ3%D)=38* 9 wn _P{%bVbmƐK 2EFKH'7kUsz)k7KnxXr0-Mn++-!t2Vu'Ḳrӕ [rnyK/XOOJJ YEW}ɒ~b^Wj_>D-˘ihHԒH0ԢGh׃eK",9%_-:# %8 -|ZTAV6X0suVDyQ ,o}WgI:2Gj 2 q3 $K+o g+t`59Ǘ,(TpB2 nL[@-XS>a^h =q;))VÎܦxVP.ܨ>\$O+87ܦ17ֱ-ՂYka*Lؘń}CfɌ!<}w0{zyi u+fji(Xh>y(vzz:CYe__KeG.끧漟pRs\q(1w^L򬝙Qg=^x`+t(:f2׹na6<"u |~w,lLA1,z>^Rn!\&%DnQs#s$# ^}OH&VK,ÛҊd7ޖxG^ÏM+!H mخb;{?a>2?B~D\:j5ԥzq֐I: 1sk)QϩNG?Or`y0KωnZ~QelLHg_qΑq"%=z]eK,|:"}́ >D|OcnW/ӏ8jJ'63|wIQmӉ {z+{X^T+Wæ ʼn3 r+v7T[~uqve&NW BeN*U5Kq>ԱTNO9Nvqo%'Pn)~h0>vter vOs7Go[渗|r"W=vWgxuIhlmʿ*ƣ6~ -ן4minsM"?`}KiRe vZ/wE>KC5WS觹-=;Yv/-gĪO'SCOݬops7@Q:'}<}8N!=$~ igO飚LUp=2'*d-Ȝ;vo>I=j phN1.]aj~(v=T9s-G%ɓ/h0>PCXj)c糏` fu7~/[9mHZ[oPKA, c&org/gradle/cli/ParsedCommandLine.classW_W~f/̲LP.&&,K$)ĄiC$脝,.;dwCkM[ZwMתxJM~[Psfve̼>}rvy8?Eт"j$qUbagxE؉Wj9\S|FE_Q4+*E"x=o7Ʒk\ ~ףk5^:?*~`5oV6lqΙ4w. z_63}I3BPpQgѳ>`pʥ9=1f2fz.oF9=3yksFVIæ;>J1g-)ָj\0G|nԕyݾik 쪣fִKNFN1)X)Cx& sS⛂1kFϜsX,kPBUDOR0藬mAFlniW m gS)_~UyYuHM/ Z+ LW 3r^$/<DQpt^Wb5+5SݬYI͆ExIUX1#Y;3VzX02^7++H~آ{&mӆ}|i(P"z*%陂,E/޿ p5gH>5:ir3 SL i G3AI=?ˎЋx;hx?j8 :鋂` 9'4sXh~a RXkFoWqC{ܙ9'c巕W~23/5<57y?m1;x$cnM. g1a?ⶊ;>NI뙢Wǯ.b]Xֲc)O˪xK*nkx) k]InsT,rDFsY'\*6lPV.GC$\oԗa:EvmYm{l/Mm An|b6MRttY[>hω%O3 Ncʶv 㡠5[5[?L!;&V$^AB@#)Fg*v(j ;'PGP2V񀂁pkՋ I*6T%n#ZZESSK,yK9(Th|q?͔Z}C~؍I쁍x3$QG1*\@ÇGd8FQq_ @J&S5QJ)#Nà1*&{TqF\%Cdi#z` +59bB-ޔ0ǴC8:g*]Cxh@H,spXHn{^C4ٰ{{ {5\ -#nz9 k$qfUyA0=ìȓ${;FHEqR59(i O=bJG0H\3LF*GT4!x *>J.#\YFlJObpc8*IϿz\|؈?(aOv)'n/ib5N$^_G8tci /;WZOdYG'Fāc^w{t;iq P"7ޡ.#/7(DwݭO1#{]M Jd)Aݞnj9 DGk(w&xeO2 EmLI7]x' sȺ1=fY )ԭM gW\)I湫 +.bM2&DY&J X+p-x$w^9)HkQ' 9ݳp)h%EWzWpV5=1u˘Slq?Ow^Usˋ{{8([rt,(- PKAytE,org/gradle/cli/ParsedCommandLineOption.classS]O@=ݯGePaeQ"hHV1YawRlIgN[`Y$ә{=?“4(H#b 冊$4-L%q[器+r⾊ [lpWAɶ(Ha1p#-g,C/{9*I Kxs UEJ%a:w^u"]a*s!"k~E쳟}V_*bTG;-%bXo"p(=@&_2w%^*$APPS =1D:!䉩If%ޱn05W(vbRD $"xj2Dϧxr7k> !V.p].GӱD\8"y RPKA\vB| :org/gradle/cli/ProjectPropertiesCommandLineConverter.classKO@D|?Pâu#Q+$C;1m  JW&.(1D,9vo/[@yl汕G)v }FHWkwLS!]nY7ZK:̿cJDZRysV;H+-)nkS#cruLXgh|BjFYDΏ%L%񎅎*_?ֈ:("<ڄbJՍ ؊tf^*K ߵ XUVi01k p8wZ8T0g?PaΛm=C Ss | 1\Zq-}C_JEˉjE+ w'PKA 8=|9org/gradle/cli/SystemPropertiesCommandLineConverter.classJ@ثmjE5BPąR/P~ӑ$&BJW 'iAY3͜l "lYlE <& d@HgL{:rRs:C*X4NĬQ ۴;hZ3a ѽG!]Gv7S"5eb o}ɸGtFMz9y~X{()spL`7e.KV, TXxɢfDTEGPWJmh~49AjxѰ sh gԙn85].FԒs9Q΢*s/@Ug J*ce+s+1 $p6/t-,;h-.Z >kZPKAWgradle-cli-classpath.properties+(JM.)**+MPKAbuild-receipt.properties+K-*+MJ-5343PK˾PKA META-INF/PKA>zBW)META-INF/MANIFEST.MFPKAorg/PKA org/gradle/PKAorg/gradle/wrapper/PKA"8M+6/ -org/gradle/wrapper/BootstrapMainStarter.classPKAVţ#org/gradle/wrapper/Download$1.classPKArd@4org/gradle/wrapper/Download$ProxyAuthenticator.classPKA l! org/gradle/wrapper/Download.classPKAyL1org/gradle/wrapper/DownloadProgressListener.classPKA)zü 3org/gradle/wrapper/ExclusiveFileAccessManager.classPKAz- org/gradle/wrapper/GradleUserHomeLookup.classPKA& *#org/gradle/wrapper/GradleWrapperMain.classPKA".org/gradle/wrapper/IDownload.classPKA;'<7"/org/gradle/wrapper/Install$1.classPKAel.d+ 7org/gradle/wrapper/Install.classPKA:o4Korg/gradle/wrapper/Logger.classPKAi?V8Norg/gradle/wrapper/PathAssembler$LocalDistribution.classPKARa&Porg/gradle/wrapper/PathAssembler.classPKA' 0Xorg/gradle/wrapper/SystemPropertiesHandler.classPKAK-.]org/gradle/wrapper/WrapperConfiguration.classPKAXE/ :( `org/gradle/wrapper/WrapperExecutor.classPKA_#igradle-wrapper-classpath.propertiesPKAiorg/gradle/cli/PKA?<S1 jorg/gradle/cli/AbstractCommandLineConverter.classPKAqj ;lorg/gradle/cli/AbstractPropertiesCommandLineConverter.classPKA}yGK1[qorg/gradle/cli/CommandLineArgumentException.classPKAg)rorg/gradle/cli/CommandLineConverter.classPKA &Qtorg/gradle/cli/CommandLineOption.classPKAd(zorg/gradle/cli/CommandLineParser$1.classPKA,}Q ;{org/gradle/cli/CommandLineParser$AfterFirstSubCommand.classPKA_e)37org/gradle/cli/CommandLineParser$AfterOptions.classPKA{& <,org/gradle/cli/CommandLineParser$BeforeFirstSubCommand.classPKA;}RForg/gradle/cli/CommandLineParser$CaseInsensitiveStringComparator.classPKA;/=Corg/gradle/cli/CommandLineParser$KnownOptionParserState.classPKAϤ<org/gradle/cli/CommandLineParser$MissingOptionArgState.classPKA=org/gradle/cli/CommandLineParser$OptionAwareParserState.classPKA3i7org/gradle/cli/CommandLineParser$OptionComparator.classPKA 8ՙorg/gradle/cli/CommandLineParser$OptionParserState.classPKA]3ӛorg/gradle/cli/CommandLineParser$OptionString.classPKA{֛{=Ӟorg/gradle/cli/CommandLineParser$OptionStringComparator.classPKA$2šorg/gradle/cli/CommandLineParser$ParserState.classPKAin?org/gradle/cli/CommandLineParser$UnknownOptionParserState.classPKA%CQ*&Zorg/gradle/cli/CommandLineParser.classPKA, c&Corg/gradle/cli/ParsedCommandLine.classPKAytE,org/gradle/cli/ParsedCommandLineOption.classPKA\vB| :org/gradle/cli/ProjectPropertiesCommandLineConverter.classPKA 8=|9|org/gradle/cli/SystemPropertiesCommandLineConverter.classPKAWOgradle-cli-classpath.propertiesPKA˾build-receipt.propertiesPK22_vision-0.19.1/android/gradle/wrapper/gradle-wrapper.properties000066400000000000000000000003121466211133600245000ustar00rootroot00000000000000distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists vision-0.19.1/android/gradle_scripts/000077500000000000000000000000001466211133600175415ustar00rootroot00000000000000vision-0.19.1/android/gradle_scripts/android_tasks.gradle000066400000000000000000000004421466211133600235460ustar00rootroot00000000000000afterEvaluate { project -> if (POM_PACKAGING == 'aar') { task headersJar(type: Jar) { archiveClassifier.set('headers') from("$rootDir/cxx/") { include '**/*.h' } } artifacts.add('archives', headersJar) } } vision-0.19.1/android/gradle_scripts/release.gradle000066400000000000000000000001621466211133600223400ustar00rootroot00000000000000apply from: rootProject.file('gradle_scripts/android_tasks.gradle') apply plugin: 'com.vanniktech.maven.publish' vision-0.19.1/android/gradlew000077500000000000000000000122601466211133600161100ustar00rootroot00000000000000#!/usr/bin/env sh ############################################################################## ## ## Gradle start up script for UN*X ## ############################################################################## # Attempt to set APP_HOME # Resolve links: $0 may be a link PRG="$0" # Need this for relative symlinks. while [ -h "$PRG" ] ; do ls=`ls -ld "$PRG"` link=`expr "$ls" : '.*-> \(.*\)$'` if expr "$link" : '/.*' > /dev/null; then PRG="$link" else PRG=`dirname "$PRG"`"/$link" fi done SAVED="`pwd`" cd "`dirname \"$PRG\"`/" >/dev/null APP_HOME="`pwd -P`" cd "$SAVED" >/dev/null APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS="" # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" warn () { echo "$*" } die () { echo echo "$*" echo exit 1 } # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false case "`uname`" in CYGWIN* ) cygwin=true ;; Darwin* ) darwin=true ;; MINGW* ) msys=true ;; NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables JAVACMD="$JAVA_HOME/jre/sh/java" else JAVACMD="$JAVA_HOME/bin/java" fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else JAVACMD="java" which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi # Increase the maximum file descriptors if we can. if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then MAX_FD_LIMIT=`ulimit -H -n` if [ $? -eq 0 ] ; then if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then MAX_FD="$MAX_FD_LIMIT" fi ulimit -n $MAX_FD if [ $? -ne 0 ] ; then warn "Could not set maximum file descriptor limit: $MAX_FD" fi else warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" fi fi # For Darwin, add options to specify how the application appears in the dock if $darwin; then GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" fi # For Cygwin, switch paths to Windows format before running java if $cygwin ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` SEP="" for dir in $ROOTDIRSRAW ; do ROOTDIRS="$ROOTDIRS$SEP$dir" SEP="|" done OURCYGPATTERN="(^($ROOTDIRS))" # Add a user-defined pattern to the cygpath arguments if [ "$GRADLE_CYGPATTERN" != "" ] ; then OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" fi # Now convert the arguments - kludge to limit ourselves to /bin/sh i=0 for arg in "$@" ; do CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` else eval `echo args$i`="\"$arg\"" fi i=$((i+1)) done case $i in (0) set -- ;; (1) set -- "$args0" ;; (2) set -- "$args0" "$args1" ;; (3) set -- "$args0" "$args1" "$args2" ;; (4) set -- "$args0" "$args1" "$args2" "$args3" ;; (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; esac fi # Escape application args save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } APP_ARGS=$(save "$@") # Collect all arguments for the java command, following the shell quoting and substitution rules eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" # by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then cd "$(dirname "$0")" fi exec "$JAVACMD" "$@" vision-0.19.1/android/gradlew.bat000066400000000000000000000042001466211133600166450ustar00rootroot00000000000000@if "%DEBUG%" == "" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @rem @rem ########################################################################## @rem Set local scope for the variables with windows NT shell if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. set DEFAULT_JVM_OPTS= @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if "%ERRORLEVEL%" == "0" goto init echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. echo. echo Please set the JAVA_HOME variable in your environment to match the echo location of your Java installation. goto fail :findJavaFromJavaHome set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto init echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% echo. echo Please set the JAVA_HOME variable in your environment to match the echo location of your Java installation. goto fail :init @rem Get command-line arguments, handling Windows variants if not "%OS%" == "Windows_NT" goto win9xME_args :win9xME_args @rem Slurp the command line arguments. set CMD_LINE_ARGS= set _SKIP=2 :win9xME_args_slurp if "x%~1" == "x" goto execute set CMD_LINE_ARGS=%* :execute @rem Setup the command line set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar @rem Execute Gradle "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% :end @rem End local scope for the variables with windows NT shell if "%ERRORLEVEL%"=="0" goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 exit /b 1 :mainEnd if "%OS%"=="Windows_NT" endlocal :omega vision-0.19.1/android/ops/000077500000000000000000000000001466211133600153355ustar00rootroot00000000000000vision-0.19.1/android/ops/CMakeLists.txt000066400000000000000000000022641466211133600201010ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.4.1) set(TARGET torchvision_ops) project(${TARGET} CXX) set(CMAKE_CXX_STANDARD 17) string(APPEND CMAKE_CXX_FLAGS " -DMOBILE") set(build_DIR ${CMAKE_SOURCE_DIR}/build) set(root_DIR ${CMAKE_CURRENT_LIST_DIR}/..) file(GLOB VISION_SRCS ../../torchvision/csrc/ops/cpu/*.h ../../torchvision/csrc/ops/cpu/*.cpp ../../torchvision/csrc/ops/*.h ../../torchvision/csrc/ops/*.cpp) add_library(${TARGET} SHARED ${VISION_SRCS} ) file(GLOB PYTORCH_INCLUDE_DIRS "${build_DIR}/pytorch_android*.aar/headers") file(GLOB PYTORCH_INCLUDE_DIRS_CSRC "${build_DIR}/pytorch_android*.aar/headers/torch/csrc/api/include") file(GLOB PYTORCH_LINK_DIRS "${build_DIR}/pytorch_android*.aar/jni/${ANDROID_ABI}") target_compile_options(${TARGET} PRIVATE -fexceptions ) set(BUILD_SUBDIR ${ANDROID_ABI}) find_library(PYTORCH_LIBRARY pytorch_jni PATHS ${PYTORCH_LINK_DIRS} NO_CMAKE_FIND_ROOT_PATH) find_library(FBJNI_LIBRARY fbjni PATHS ${PYTORCH_LINK_DIRS} NO_CMAKE_FIND_ROOT_PATH) target_include_directories(${TARGET} PRIVATE ${PYTORCH_INCLUDE_DIRS} ${PYTORCH_INCLUDE_DIRS_CSRC} ) target_link_libraries(${TARGET} PRIVATE ${PYTORCH_LIBRARY} ${FBJNI_LIBRARY} ) vision-0.19.1/android/ops/build.gradle000066400000000000000000000041341466211133600176160ustar00rootroot00000000000000apply plugin: 'com.android.library' apply plugin: 'maven' repositories { mavenCentral() maven { url "https://oss.sonatype.org/content/repositories/snapshots" } flatDir { dirs 'aars' } } android { configurations { extractForNativeBuild } compileSdkVersion rootProject.compileSdkVersion buildToolsVersion rootProject.buildToolsVersion defaultConfig { minSdkVersion rootProject.minSdkVersion targetSdkVersion rootProject.targetSdkVersion versionCode 0 versionName "0.1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" ndk { abiFilters ABI_FILTERS.split(",") } } buildTypes { debug { minifyEnabled false debuggable true } release { minifyEnabled false } } externalNativeBuild { cmake { path "CMakeLists.txt" } } useLibrary 'android.test.runner' useLibrary 'android.test.base' useLibrary 'android.test.mock' } dependencies { implementation 'com.android.support:appcompat-v7:' + rootProject.androidSupportAppCompatV7Version extractForNativeBuild "org.pytorch:pytorch_android:$pytorchAndroidVersion" // For testing: deps on local aar files //implementation(name: 'pytorch_android-release', ext: 'aar') //extractForNativeBuild(name: 'pytorch_android-release', ext: 'aar') //implementation 'com.facebook.fbjni:fbjni-java-only:0.0.3' } task extractAARForNativeBuild { doLast { configurations.extractForNativeBuild.files.each { def file = it.absoluteFile copy { from zipTree(file) into "$buildDir/$file.name" include "headers/**" include "jni/**" } } } } tasks.whenTaskAdded { task -> if (task.name.contains('externalNativeBuild')) { task.dependsOn(extractAARForNativeBuild) } } apply from: rootProject.file('gradle_scripts/release.gradle') task sourcesJar(type: Jar) { from android.sourceSets.main.java.srcDirs classifier = 'sources' } artifacts.add('archives', sourcesJar) vision-0.19.1/android/ops/gradle.properties000066400000000000000000000001531466211133600207100ustar00rootroot00000000000000POM_NAME=torchvision ops POM_DESCRIPTION=torchvision ops POM_ARTIFACT_ID=torchvision_ops POM_PACKAGING=aar vision-0.19.1/android/ops/src/000077500000000000000000000000001466211133600161245ustar00rootroot00000000000000vision-0.19.1/android/ops/src/main/000077500000000000000000000000001466211133600170505ustar00rootroot00000000000000vision-0.19.1/android/ops/src/main/AndroidManifest.xml000066400000000000000000000000631466211133600226400ustar00rootroot00000000000000 vision-0.19.1/android/settings.gradle000066400000000000000000000001751466211133600175570ustar00rootroot00000000000000include ':ops', ':test_app' project(':ops').projectDir = file('ops') project(':test_app').projectDir = file('test_app/app') vision-0.19.1/android/test_app/000077500000000000000000000000001466211133600163535ustar00rootroot00000000000000vision-0.19.1/android/test_app/app/000077500000000000000000000000001466211133600171335ustar00rootroot00000000000000vision-0.19.1/android/test_app/app/build.gradle000066400000000000000000000077011466211133600214170ustar00rootroot00000000000000apply plugin: 'com.android.application' repositories { mavenCentral() maven { url "https://oss.sonatype.org/content/repositories/snapshots" } flatDir { dirs 'aars' } } android { configurations { extractForNativeBuild } compileOptions { sourceCompatibility 1.8 targetCompatibility 1.8 } compileSdkVersion rootProject.compileSdkVersion buildToolsVersion rootProject.buildToolsVersion defaultConfig { applicationId "org.pytorch.testapp" minSdkVersion rootProject.minSdkVersion targetSdkVersion rootProject.targetSdkVersion versionCode 1 versionName "1.0" ndk { abiFilters ABI_FILTERS.split(",") } externalNativeBuild { cmake { abiFilters ABI_FILTERS.split(",") arguments "-DANDROID_STL=c++_shared" } } buildConfigField("String", "MODULE_ASSET_NAME", "\"frcnn_mnetv3.pt\"") buildConfigField("String", "LOGCAT_TAG", "@string/app_name") buildConfigField("long[]", "INPUT_TENSOR_SHAPE", "new long[]{3, 96, 96}") addManifestPlaceholders([APP_NAME: "@string/app_name", MAIN_ACTIVITY: "org.pytorch.testapp.MainActivity"]) } buildTypes { debug { minifyEnabled false debuggable true } release { minifyEnabled false } } flavorDimensions "model", "activity", "build" productFlavors { frcnnMnetv3 { dimension "model" applicationIdSuffix ".frcnnMnetv3" buildConfigField("String", "MODULE_ASSET_NAME", "\"frcnn_mnetv3.pt\"") addManifestPlaceholders([APP_NAME: "TV_FRCNN_MNETV3"]) buildConfigField("String", "LOGCAT_TAG", "\"pytorch-frcnn-mnetv3\"") } camera { dimension "activity" addManifestPlaceholders([APP_NAME: "TV_CAMERA_FRCNN"]) addManifestPlaceholders([MAIN_ACTIVITY: "org.pytorch.testapp.CameraActivity"]) } base { dimension "activity" } aar { dimension "build" } local { dimension "build" } } packagingOptions { doNotStrip '**.so' pickFirst '**.so' } // Filtering for CI if (!testAppAllVariantsEnabled.toBoolean()) { variantFilter { variant -> def names = variant.flavors*.name if (names.contains("aar")) { setIgnore(true) } } } } tasks.all { task -> // Disable externalNativeBuild for all but nativeBuild variant if (task.name.startsWith('externalNativeBuild') && !task.name.contains('NativeBuild')) { task.enabled = false } } dependencies { implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.facebook.soloader:nativeloader:0.8.0' localImplementation project(':ops') implementation "org.pytorch:pytorch_android:$pytorchAndroidVersion" implementation "org.pytorch:pytorch_android_torchvision:$pytorchAndroidVersion" aarImplementation(name: 'pytorch_android-release', ext: 'aar') aarImplementation(name: 'pytorch_android_torchvision-release', ext: 'aar') def camerax_version = "1.0.0-alpha05" implementation "androidx.camera:camera-core:$camerax_version" implementation "androidx.camera:camera-camera2:$camerax_version" implementation 'com.google.android.material:material:1.0.0-beta01' } task extractAARForNativeBuild { doLast { configurations.extractForNativeBuild.files.each { def file = it.absoluteFile copy { from zipTree(file) into "$buildDir/$file.name" include "headers/**" include "jni/**" } } } } tasks.whenTaskAdded { task -> if (task.name.contains('externalNativeBuild')) { task.dependsOn(extractAARForNativeBuild) } } vision-0.19.1/android/test_app/app/src/000077500000000000000000000000001466211133600177225ustar00rootroot00000000000000vision-0.19.1/android/test_app/app/src/main/000077500000000000000000000000001466211133600206465ustar00rootroot00000000000000vision-0.19.1/android/test_app/app/src/main/AndroidManifest.xml000066400000000000000000000012511466211133600244360ustar00rootroot00000000000000 vision-0.19.1/android/test_app/app/src/main/java/000077500000000000000000000000001466211133600215675ustar00rootroot00000000000000vision-0.19.1/android/test_app/app/src/main/java/org/000077500000000000000000000000001466211133600223565ustar00rootroot00000000000000vision-0.19.1/android/test_app/app/src/main/java/org/pytorch/000077500000000000000000000000001466211133600240465ustar00rootroot00000000000000vision-0.19.1/android/test_app/app/src/main/java/org/pytorch/testapp/000077500000000000000000000000001466211133600255265ustar00rootroot00000000000000vision-0.19.1/android/test_app/app/src/main/java/org/pytorch/testapp/BBox.java000066400000000000000000000007361466211133600272310ustar00rootroot00000000000000package org.pytorch.testapp; class BBox { public final float score; public final float x0; public final float y0; public final float x1; public final float y1; public BBox(float score, float x0, float y0, float x1, float y1) { this.score = score; this.x0 = x0; this.y0 = y0; this.x1 = x1; this.y1 = y1; } @Override public String toString() { return String.format("Box{score=%f x0=%f y0=%f x1=%f y1=%f", score, x0, y0, x1, y1); } } vision-0.19.1/android/test_app/app/src/main/java/org/pytorch/testapp/CameraActivity.java000066400000000000000000000362461466211133600313110ustar00rootroot00000000000000package org.pytorch.testapp; import android.Manifest; import android.content.Context; import android.content.pm.PackageManager; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; import android.os.SystemClock; import android.util.DisplayMetrics; import android.util.Log; import android.util.Size; import android.view.TextureView; import android.view.ViewStub; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import androidx.annotation.Nullable; import androidx.annotation.UiThread; import androidx.annotation.WorkerThread; import androidx.appcompat.app.AppCompatActivity; import androidx.camera.core.CameraX; import androidx.camera.core.ImageAnalysis; import androidx.camera.core.ImageAnalysisConfig; import androidx.camera.core.ImageProxy; import androidx.camera.core.Preview; import androidx.camera.core.PreviewConfig; import androidx.core.app.ActivityCompat; import com.facebook.soloader.nativeloader.NativeLoader; import com.facebook.soloader.nativeloader.SystemDelegate; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.nio.ByteBuffer; import java.nio.FloatBuffer; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.pytorch.IValue; import org.pytorch.Module; import org.pytorch.Tensor; public class CameraActivity extends AppCompatActivity { private static final float BBOX_SCORE_DRAW_THRESHOLD = 0.5f; private static final String TAG = BuildConfig.LOGCAT_TAG; private static final int TEXT_TRIM_SIZE = 4096; private static final int RGB_MAX_CHANNEL_VALUE = 262143; private static final int REQUEST_CODE_CAMERA_PERMISSION = 200; private static final String[] PERMISSIONS = {Manifest.permission.CAMERA}; static { if (!NativeLoader.isInitialized()) { NativeLoader.init(new SystemDelegate()); } NativeLoader.loadLibrary("pytorch_jni"); NativeLoader.loadLibrary("torchvision_ops"); } private Bitmap mInputTensorBitmap; private Bitmap mBitmap; private Canvas mCanvas; private long mLastAnalysisResultTime; protected HandlerThread mBackgroundThread; protected Handler mBackgroundHandler; protected Handler mUIHandler; private TextView mTextView; private ImageView mCameraOverlay; private StringBuilder mTextViewStringBuilder = new StringBuilder(); private Paint mBboxPaint; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_camera); mTextView = findViewById(R.id.text); mCameraOverlay = findViewById(R.id.camera_overlay); mUIHandler = new Handler(getMainLooper()); startBackgroundThread(); if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, PERMISSIONS, REQUEST_CODE_CAMERA_PERMISSION); } else { setupCameraX(); } mBboxPaint = new Paint(); mBboxPaint.setAntiAlias(true); mBboxPaint.setDither(true); mBboxPaint.setColor(Color.GREEN); } @Override protected void onPostCreate(@Nullable Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); startBackgroundThread(); } protected void startBackgroundThread() { mBackgroundThread = new HandlerThread("ModuleActivity"); mBackgroundThread.start(); mBackgroundHandler = new Handler(mBackgroundThread.getLooper()); } @Override protected void onDestroy() { stopBackgroundThread(); super.onDestroy(); } protected void stopBackgroundThread() { mBackgroundThread.quitSafely(); try { mBackgroundThread.join(); mBackgroundThread = null; mBackgroundHandler = null; } catch (InterruptedException e) { Log.e(TAG, "Error on stopping background thread", e); } } @Override public void onRequestPermissionsResult( int requestCode, String[] permissions, int[] grantResults) { if (requestCode == REQUEST_CODE_CAMERA_PERMISSION) { if (grantResults[0] == PackageManager.PERMISSION_DENIED) { Toast.makeText( this, "You can't use image classification example without granting CAMERA permission", Toast.LENGTH_LONG) .show(); finish(); } else { setupCameraX(); } } } private void setupCameraX() { final TextureView textureView = ((ViewStub) findViewById(R.id.camera_texture_view_stub)) .inflate() .findViewById(R.id.texture_view); final PreviewConfig previewConfig = new PreviewConfig.Builder().build(); final Preview preview = new Preview(previewConfig); preview.setOnPreviewOutputUpdateListener( new Preview.OnPreviewOutputUpdateListener() { @Override public void onUpdated(Preview.PreviewOutput output) { textureView.setSurfaceTexture(output.getSurfaceTexture()); } }); final DisplayMetrics displayMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); final ImageAnalysisConfig imageAnalysisConfig = new ImageAnalysisConfig.Builder() .setTargetResolution(new Size(displayMetrics.widthPixels, displayMetrics.heightPixels)) .setCallbackHandler(mBackgroundHandler) .setImageReaderMode(ImageAnalysis.ImageReaderMode.ACQUIRE_LATEST_IMAGE) .build(); final ImageAnalysis imageAnalysis = new ImageAnalysis(imageAnalysisConfig); imageAnalysis.setAnalyzer( new ImageAnalysis.Analyzer() { @Override public void analyze(ImageProxy image, int rotationDegrees) { if (SystemClock.elapsedRealtime() - mLastAnalysisResultTime < 500) { return; } final Result result = CameraActivity.this.analyzeImage(image, rotationDegrees); if (result != null) { mLastAnalysisResultTime = SystemClock.elapsedRealtime(); CameraActivity.this.runOnUiThread( new Runnable() { @Override public void run() { CameraActivity.this.handleResult(result); } }); } } }); CameraX.bindToLifecycle(this, preview, imageAnalysis); } private Module mModule; private FloatBuffer mInputTensorBuffer; private Tensor mInputTensor; private static int clamp0255(int x) { if (x > 255) { return 255; } return x < 0 ? 0 : x; } protected void fillInputTensorBuffer( ImageProxy image, int rotationDegrees, FloatBuffer inputTensorBuffer) { if (mInputTensorBitmap == null) { final int tensorSize = Math.min(image.getWidth(), image.getHeight()); mInputTensorBitmap = Bitmap.createBitmap(tensorSize, tensorSize, Bitmap.Config.ARGB_8888); } ImageProxy.PlaneProxy[] planes = image.getPlanes(); ImageProxy.PlaneProxy Y = planes[0]; ImageProxy.PlaneProxy U = planes[1]; ImageProxy.PlaneProxy V = planes[2]; ByteBuffer yBuffer = Y.getBuffer(); ByteBuffer uBuffer = U.getBuffer(); ByteBuffer vBuffer = V.getBuffer(); final int imageWidth = image.getWidth(); final int imageHeight = image.getHeight(); final int tensorSize = Math.min(imageWidth, imageHeight); int widthAfterRtn = imageWidth; int heightAfterRtn = imageHeight; boolean oddRotation = rotationDegrees == 90 || rotationDegrees == 270; if (oddRotation) { widthAfterRtn = imageHeight; heightAfterRtn = imageWidth; } int minSizeAfterRtn = Math.min(heightAfterRtn, widthAfterRtn); int cropWidthAfterRtn = minSizeAfterRtn; int cropHeightAfterRtn = minSizeAfterRtn; int cropWidthBeforeRtn = cropWidthAfterRtn; int cropHeightBeforeRtn = cropHeightAfterRtn; if (oddRotation) { cropWidthBeforeRtn = cropHeightAfterRtn; cropHeightBeforeRtn = cropWidthAfterRtn; } int offsetX = (int) ((imageWidth - cropWidthBeforeRtn) / 2.f); int offsetY = (int) ((imageHeight - cropHeightBeforeRtn) / 2.f); int yRowStride = Y.getRowStride(); int yPixelStride = Y.getPixelStride(); int uvRowStride = U.getRowStride(); int uvPixelStride = U.getPixelStride(); float scale = cropWidthAfterRtn / tensorSize; int yIdx, uvIdx, yi, ui, vi; final int channelSize = tensorSize * tensorSize; for (int y = 0; y < tensorSize; y++) { for (int x = 0; x < tensorSize; x++) { final int centerCropX = (int) Math.floor(x * scale); final int centerCropY = (int) Math.floor(y * scale); int srcX = centerCropX + offsetX; int srcY = centerCropY + offsetY; if (rotationDegrees == 90) { srcX = offsetX + centerCropY; srcY = offsetY + (minSizeAfterRtn - 1) - centerCropX; } else if (rotationDegrees == 180) { srcX = offsetX + (minSizeAfterRtn - 1) - centerCropX; srcY = offsetY + (minSizeAfterRtn - 1) - centerCropY; } else if (rotationDegrees == 270) { srcX = offsetX + (minSizeAfterRtn - 1) - centerCropY; srcY = offsetY + centerCropX; } yIdx = srcY * yRowStride + srcX * yPixelStride; uvIdx = (srcY >> 1) * uvRowStride + (srcX >> 1) * uvPixelStride; yi = yBuffer.get(yIdx) & 0xff; ui = uBuffer.get(uvIdx) & 0xff; vi = vBuffer.get(uvIdx) & 0xff; yi = (yi - 16) < 0 ? 0 : (yi - 16); ui -= 128; vi -= 128; int a0 = 1192 * yi; int ri = (a0 + 1634 * vi); int gi = (a0 - 833 * vi - 400 * ui); int bi = (a0 + 2066 * ui); ri = ri > RGB_MAX_CHANNEL_VALUE ? RGB_MAX_CHANNEL_VALUE : (ri < 0 ? 0 : ri); gi = gi > RGB_MAX_CHANNEL_VALUE ? RGB_MAX_CHANNEL_VALUE : (gi < 0 ? 0 : gi); bi = bi > RGB_MAX_CHANNEL_VALUE ? RGB_MAX_CHANNEL_VALUE : (bi < 0 ? 0 : bi); final int color = 0xff000000 | ((ri << 6) & 0xff0000) | ((gi >> 2) & 0xff00) | ((bi >> 10) & 0xff); mInputTensorBitmap.setPixel(x, y, color); inputTensorBuffer.put(0 * channelSize + y * tensorSize + x, clamp0255(ri >> 10) / 255.f); inputTensorBuffer.put(1 * channelSize + y * tensorSize + x, clamp0255(gi >> 10) / 255.f); inputTensorBuffer.put(2 * channelSize + y * tensorSize + x, clamp0255(bi >> 10) / 255.f); } } } public static String assetFilePath(Context context, String assetName) { File file = new File(context.getFilesDir(), assetName); if (file.exists() && file.length() > 0) { return file.getAbsolutePath(); } try (InputStream is = context.getAssets().open(assetName)) { try (OutputStream os = new FileOutputStream(file)) { byte[] buffer = new byte[4 * 1024]; int read; while ((read = is.read(buffer)) != -1) { os.write(buffer, 0, read); } os.flush(); } return file.getAbsolutePath(); } catch (IOException e) { Log.e(TAG, "Error process asset " + assetName + " to file path"); } return null; } @WorkerThread @Nullable protected Result analyzeImage(ImageProxy image, int rotationDegrees) { Log.i(TAG, String.format("analyzeImage(%s, %d)", image, rotationDegrees)); final int tensorSize = Math.min(image.getWidth(), image.getHeight()); if (mModule == null) { Log.i(TAG, "Loading module from asset '" + BuildConfig.MODULE_ASSET_NAME + "'"); mInputTensorBuffer = Tensor.allocateFloatBuffer(3 * tensorSize * tensorSize); mInputTensor = Tensor.fromBlob(mInputTensorBuffer, new long[] {3, tensorSize, tensorSize}); final String modelFileAbsoluteFilePath = new File(assetFilePath(this, BuildConfig.MODULE_ASSET_NAME)).getAbsolutePath(); mModule = Module.load(modelFileAbsoluteFilePath); } final long startTime = SystemClock.elapsedRealtime(); fillInputTensorBuffer(image, rotationDegrees, mInputTensorBuffer); final long moduleForwardStartTime = SystemClock.elapsedRealtime(); final IValue outputTuple = mModule.forward(IValue.listFrom(mInputTensor)); final IValue out1 = outputTuple.toTuple()[1]; final Map map = out1.toList()[0].toDictStringKey(); float[] boxesData = new float[] {}; float[] scoresData = new float[] {}; final List bboxes = new ArrayList<>(); if (map.containsKey("boxes")) { final Tensor boxesTensor = map.get("boxes").toTensor(); final Tensor scoresTensor = map.get("scores").toTensor(); boxesData = boxesTensor.getDataAsFloatArray(); scoresData = scoresTensor.getDataAsFloatArray(); final int n = scoresData.length; for (int i = 0; i < n; i++) { final BBox bbox = new BBox( scoresData[i], boxesData[4 * i + 0], boxesData[4 * i + 1], boxesData[4 * i + 2], boxesData[4 * i + 3]); android.util.Log.i(TAG, String.format("Forward result %d: %s", i, bbox)); bboxes.add(bbox); } } else { android.util.Log.i(TAG, "Forward result empty"); } final long moduleForwardDuration = SystemClock.elapsedRealtime() - moduleForwardStartTime; final long analysisDuration = SystemClock.elapsedRealtime() - startTime; return new Result(tensorSize, bboxes, moduleForwardDuration, analysisDuration); } @UiThread protected void handleResult(Result result) { final int W = mCameraOverlay.getMeasuredWidth(); final int H = mCameraOverlay.getMeasuredHeight(); final int size = Math.min(W, H); final int offsetX = (W - size) / 2; final int offsetY = (H - size) / 2; float scaleX = (float) size / result.tensorSize; float scaleY = (float) size / result.tensorSize; if (mBitmap == null) { mBitmap = Bitmap.createBitmap(W, H, Bitmap.Config.ARGB_8888); mCanvas = new Canvas(mBitmap); } mCanvas.drawBitmap( mInputTensorBitmap, new Rect(0, 0, result.tensorSize, result.tensorSize), new Rect(offsetX, offsetY, offsetX + size, offsetY + size), null); for (final BBox bbox : result.bboxes) { if (bbox.score < BBOX_SCORE_DRAW_THRESHOLD) { continue; } float c_x0 = offsetX + scaleX * bbox.x0; float c_y0 = offsetY + scaleY * bbox.y0; float c_x1 = offsetX + scaleX * bbox.x1; float c_y1 = offsetY + scaleY * bbox.y1; mCanvas.drawLine(c_x0, c_y0, c_x1, c_y0, mBboxPaint); mCanvas.drawLine(c_x1, c_y0, c_x1, c_y1, mBboxPaint); mCanvas.drawLine(c_x1, c_y1, c_x0, c_y1, mBboxPaint); mCanvas.drawLine(c_x0, c_y1, c_x0, c_y0, mBboxPaint); mCanvas.drawText(String.format("%.2f", bbox.score), c_x0, c_y0, mBboxPaint); } mCameraOverlay.setImageBitmap(mBitmap); String message = String.format("forwardDuration:%d", result.moduleForwardDuration); Log.i(TAG, message); mTextViewStringBuilder.insert(0, '\n').insert(0, message); if (mTextViewStringBuilder.length() > TEXT_TRIM_SIZE) { mTextViewStringBuilder.delete(TEXT_TRIM_SIZE, mTextViewStringBuilder.length()); } mTextView.setText(mTextViewStringBuilder.toString()); } } vision-0.19.1/android/test_app/app/src/main/java/org/pytorch/testapp/MainActivity.java000066400000000000000000000123511466211133600307740ustar00rootroot00000000000000package org.pytorch.testapp; import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; import android.os.SystemClock; import android.util.Log; import android.widget.TextView; import androidx.annotation.Nullable; import androidx.annotation.UiThread; import androidx.annotation.WorkerThread; import androidx.appcompat.app.AppCompatActivity; import com.facebook.soloader.nativeloader.NativeLoader; import com.facebook.soloader.nativeloader.SystemDelegate; import java.nio.FloatBuffer; import java.util.Map; import org.pytorch.IValue; import org.pytorch.Module; import org.pytorch.PyTorchAndroid; import org.pytorch.Tensor; public class MainActivity extends AppCompatActivity { static { if (!NativeLoader.isInitialized()) { NativeLoader.init(new SystemDelegate()); } NativeLoader.loadLibrary("pytorch_jni"); NativeLoader.loadLibrary("torchvision_ops"); } private static final String TAG = BuildConfig.LOGCAT_TAG; private static final int TEXT_TRIM_SIZE = 4096; private TextView mTextView; protected HandlerThread mBackgroundThread; protected Handler mBackgroundHandler; private Module mModule; private FloatBuffer mInputTensorBuffer; private Tensor mInputTensor; private StringBuilder mTextViewStringBuilder = new StringBuilder(); private final Runnable mModuleForwardRunnable = new Runnable() { @Override public void run() { final Result result = doModuleForward(); runOnUiThread( () -> { handleResult(result); if (mBackgroundHandler != null) { mBackgroundHandler.post(mModuleForwardRunnable); } }); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTextView = findViewById(R.id.text); startBackgroundThread(); mBackgroundHandler.post(mModuleForwardRunnable); } protected void startBackgroundThread() { mBackgroundThread = new HandlerThread(TAG + "_bg"); mBackgroundThread.start(); mBackgroundHandler = new Handler(mBackgroundThread.getLooper()); } @Override protected void onDestroy() { stopBackgroundThread(); super.onDestroy(); } protected void stopBackgroundThread() { mBackgroundThread.quitSafely(); try { mBackgroundThread.join(); mBackgroundThread = null; mBackgroundHandler = null; } catch (InterruptedException e) { Log.e(TAG, "Error stopping background thread", e); } } @WorkerThread @Nullable protected Result doModuleForward() { if (mModule == null) { final long[] shape = BuildConfig.INPUT_TENSOR_SHAPE; long numElements = 1; for (int i = 0; i < shape.length; i++) { numElements *= shape[i]; } mInputTensorBuffer = Tensor.allocateFloatBuffer((int) numElements); mInputTensor = Tensor.fromBlob(mInputTensorBuffer, BuildConfig.INPUT_TENSOR_SHAPE); PyTorchAndroid.setNumThreads(1); mModule = PyTorchAndroid.loadModuleFromAsset(getAssets(), BuildConfig.MODULE_ASSET_NAME); } final long startTime = SystemClock.elapsedRealtime(); final long moduleForwardStartTime = SystemClock.elapsedRealtime(); final IValue outputTuple = mModule.forward(IValue.listFrom(mInputTensor)); final IValue[] outputArray = outputTuple.toTuple(); final IValue out0 = outputArray[0]; final Map map = out0.toDictStringKey(); if (map.containsKey("boxes")) { final Tensor boxes = map.get("boxes").toTensor(); final Tensor scores = map.get("scores").toTensor(); final float[] boxesData = boxes.getDataAsFloatArray(); final float[] scoresData = scores.getDataAsFloatArray(); final int n = scoresData.length; for (int i = 0; i < n; i++) { android.util.Log.i( TAG, String.format( "Forward result %d: score %f box:(%f, %f, %f, %f)", scoresData[i], boxesData[4 * i + 0], boxesData[4 * i + 1], boxesData[4 * i + 2], boxesData[4 * i + 3])); } } else { android.util.Log.i(TAG, "Forward result empty"); } final long moduleForwardDuration = SystemClock.elapsedRealtime() - moduleForwardStartTime; final long analysisDuration = SystemClock.elapsedRealtime() - startTime; return new Result(new float[] {}, moduleForwardDuration, analysisDuration); } static class Result { private final float[] scores; private final long totalDuration; private final long moduleForwardDuration; public Result(float[] scores, long moduleForwardDuration, long totalDuration) { this.scores = scores; this.moduleForwardDuration = moduleForwardDuration; this.totalDuration = totalDuration; } } @UiThread protected void handleResult(Result result) { String message = String.format("forwardDuration:%d", result.moduleForwardDuration); mTextViewStringBuilder.insert(0, '\n').insert(0, message); if (mTextViewStringBuilder.length() > TEXT_TRIM_SIZE) { mTextViewStringBuilder.delete(TEXT_TRIM_SIZE, mTextViewStringBuilder.length()); } mTextView.setText(mTextViewStringBuilder.toString()); } } vision-0.19.1/android/test_app/app/src/main/java/org/pytorch/testapp/Result.java000066400000000000000000000007341466211133600276530ustar00rootroot00000000000000package org.pytorch.testapp; import java.util.List; class Result { public final int tensorSize; public final List bboxes; public final long totalDuration; public final long moduleForwardDuration; public Result(int tensorSize, List bboxes, long moduleForwardDuration, long totalDuration) { this.tensorSize = tensorSize; this.bboxes = bboxes; this.moduleForwardDuration = moduleForwardDuration; this.totalDuration = totalDuration; } } vision-0.19.1/android/test_app/app/src/main/res/000077500000000000000000000000001466211133600214375ustar00rootroot00000000000000vision-0.19.1/android/test_app/app/src/main/res/layout/000077500000000000000000000000001466211133600227545ustar00rootroot00000000000000vision-0.19.1/android/test_app/app/src/main/res/layout/activity_camera.xml000066400000000000000000000017511466211133600266460ustar00rootroot00000000000000 vision-0.19.1/android/test_app/app/src/main/res/layout/activity_main.xml000066400000000000000000000011301466211133600263310ustar00rootroot00000000000000 vision-0.19.1/android/test_app/app/src/main/res/layout/texture_view.xml000066400000000000000000000003351466211133600262310ustar00rootroot00000000000000 vision-0.19.1/android/test_app/app/src/main/res/mipmap-mdpi/000077500000000000000000000000001466211133600236515ustar00rootroot00000000000000vision-0.19.1/android/test_app/app/src/main/res/mipmap-mdpi/ic_launcher.png000066400000000000000000000040141466211133600266320ustar00rootroot00000000000000PNG  IHDR00WIDATxYilTU~#n0 M - `_?b)K MB@g{N;n K+K5$**;jZhA.3$Ϲo^;S/s};s ³k<_WOD1bLA}s yS{I`ե8)L7HB`YS86$yQѸ܂Ršq]2!aۮMvQ>md ]Q:Ll%nh%iW27ZB\g]a&cjP+J*YĭZ|: ^|!2̑RgEU*d1v/2md N0c#P nPp0el\W^w8@^& ^T :md 8v\Q*3XqmkP6RkS`@6es}+6LxNr5~=s.'yx3؉e`rLڤ 9,TG,Y vTzl`n?j 5M)9*3-\'Pz@;,.)şT/?T:J^kav4roI}.SgeAіbOH[@=A"۟5Co܍vykAӅSP˕/޾>5 7{BvDJm>:1+$ z* Lme" 2=ŃRVo?|0=ZKBjBSJLᐃL x <o:{l981iD20Sxz>@k b*|rUH˃0Zug;BT~rn KՐw+@Kw:Y{rcpg:w.P P= J'ap#Ty` 7:qC8Β]5hkt$oZq`L@+0A4 i0f2lka8?\m T>sM!#CGUȮ[N\+`@sʊFa' @maH!L6mz @wِQ=@>8ҩ_ \Nkfy"uY R@WT?ԧ95H=#Ӆr 26 5fX܀wso#c΀#,E^tL)u6_z}2:d$ib!$0̆fCK00Wпyxg0(3{(' U\BI0L4ޣqJCXK&#'/) )PF ?L riSJ+XN>qWbK8苙L a2\$0ODc'hMy6dԏ4:@P)HeZMt:L0+􉛒*'/yr8K6P۶!\BwKYcц]D=S6q7g͜'.d0l*0P6@ fGP6 V4Xn2v|? |Zm(<4,\#g3p{'MR`EPLi[ PgvGF) gW,ơ$\VYT̶4 v7%5<۩>xElsLܭ2yU|1{YYtXoTYBk.&ڍe\t7n :B7LzՖ:V}k!9y>hĬ̌",^XBt_d ˕mV3Y-^5lj.bnJDVxa˸<֏wrcSDSIENDB`vision-0.19.1/android/test_app/app/src/main/res/mipmap-mdpi/ic_launcher_round.png000066400000000000000000000053371466211133600300520ustar00rootroot00000000000000PNG  IHDR00W IDATxZ{PTPD $ bx8VkmDHq_1ר,, +R1>m4[k4ZGMk*L/KM냨N;ygV:ɔfkGE];R[,'եg}!4QvEDM1D"jԠÔ:vi7ˮ3"e+BMv[Zj>hXB`(vU{"mk-? * !]i*}I0JH"ԇ$0 kʅ9N~|YNmSO){peQ8O0ۥ2 <y9<K>~FuG_ `Pm"d ŲmbtZtL ]KHج ?ya?R2+M9$gbq#$YﷺIxuvmiVw_/ڼ_}DXY> #¤:&[4zPW^OfZ-7ґ꣇a'@OAXsɁ TR{};%qRo:]\ E)&u3O@̤i#!-_68՗pf'2t  #BfBd*s'#qVgVh1,1gSJ)ߵU?gIaA<sbr׻B8Fvt7h6Un Xu0sbu,ˑBbN4R>OPQO>; }ړfm L}^&rK0"gW([^h7)z8.3me'?*y Ԗq>hs}ztVV+{멨cBfq UwnCӄ0 הw K$49\@h1i/oCp:?>^ۥ0`VvYJ0(`Ƹ ^߿=%P u.+; ,rbYH-}v#v/Qb_{z4z@ $dfDCr H2K@Qu]:5^΅Oо \E 2퇛tAZC5dHf s< -o|zp u>ݷt̜✽ySEẍLO%=d92-e;7F/@NJT¸uoXJD.?=TzgdNyRU 6lu^KH uxuZYmMx:Q% q Q^YatZ^{o:@ u0F$$ɡɅ*z5䨐@b⑇!7H }4BޚS ~ve٘܌9Q_uz/\ы<PE 0sKAlz/n<#0&E9=3ۚ@@7 #008577 #00574B #D81B60 vision-0.19.1/android/test_app/app/src/main/res/values/strings.xml000066400000000000000000000001071466211133600251470ustar00rootroot00000000000000 TV_FRCNN vision-0.19.1/android/test_app/app/src/main/res/values/styles.xml000066400000000000000000000005771466211133600250140ustar00rootroot00000000000000 vision-0.19.1/android/test_app/make_assets.py000066400000000000000000000012001466211133600212150ustar00rootroot00000000000000import torch from torch.utils.mobile_optimizer import optimize_for_mobile from torchvision.models.detection import ( fasterrcnn_mobilenet_v3_large_320_fpn, FasterRCNN_MobileNet_V3_Large_320_FPN_Weights, ) print(torch.__version__) model = fasterrcnn_mobilenet_v3_large_320_fpn( weights=FasterRCNN_MobileNet_V3_Large_320_FPN_Weights.DEFAULT, box_score_thresh=0.7, rpn_post_nms_top_n_test=100, rpn_score_thresh=0.4, rpn_pre_nms_top_n_test=150, ) model.eval() script_model = torch.jit.script(model) opt_script_model = optimize_for_mobile(script_model) opt_script_model.save("app/src/main/assets/frcnn_mnetv3.pt") vision-0.19.1/benchmarks/000077500000000000000000000000001466211133600152315ustar00rootroot00000000000000vision-0.19.1/benchmarks/encoding.py000066400000000000000000000044701466211133600173760ustar00rootroot00000000000000import os import platform import statistics import torch import torch.utils.benchmark as benchmark import torchvision def print_machine_specs(): print("Processor:", platform.processor()) print("Platform:", platform.platform()) print("Logical CPUs:", os.cpu_count()) print(f"\nCUDA device: {torch.cuda.get_device_name()}") print(f"Total Memory: {torch.cuda.get_device_properties(0).total_memory / 1e9:.2f} GB") def get_data(): transform = torchvision.transforms.Compose( [ torchvision.transforms.PILToTensor(), ] ) path = os.path.join(os.getcwd(), "data") testset = torchvision.datasets.Places365( root="./data", download=not os.path.exists(path), transform=transform, split="val" ) testloader = torch.utils.data.DataLoader( testset, batch_size=1000, shuffle=False, num_workers=1, collate_fn=lambda batch: [r[0] for r in batch] ) return next(iter(testloader)) def run_benchmark(batch): results = [] for device in ["cpu", "cuda"]: batch_device = [t.to(device=device) for t in batch] for size in [1, 100, 1000]: for num_threads in [1, 12, 24]: for stmt, strat in zip( [ "[torchvision.io.encode_jpeg(img) for img in batch_input]", "torchvision.io.encode_jpeg(batch_input)", ], ["unfused", "fused"], ): batch_input = batch_device[:size] t = benchmark.Timer( stmt=stmt, setup="import torchvision", globals={"batch_input": batch_input}, label="Image Encoding", sub_label=f"{device.upper()} ({strat}): {stmt}", description=f"{size} images", num_threads=num_threads, ) results.append(t.blocked_autorange()) compare = benchmark.Compare(results) compare.print() if __name__ == "__main__": print_machine_specs() batch = get_data() mean_h, mean_w = statistics.mean(t.shape[-2] for t in batch), statistics.mean(t.shape[-1] for t in batch) print(f"\nMean image size: {int(mean_h)}x{int(mean_w)}") run_benchmark(batch) vision-0.19.1/cmake/000077500000000000000000000000001466211133600141745ustar00rootroot00000000000000vision-0.19.1/cmake/TorchVisionConfig.cmake.in000066400000000000000000000025101466211133600211760ustar00rootroot00000000000000# TorchVisionConfig.cmake # -------------------- # # Exported targets:: Vision # @PACKAGE_INIT@ set(PN TorchVision) # location of include/torchvision set(${PN}_INCLUDE_DIR "${PACKAGE_PREFIX_DIR}/@CMAKE_INSTALL_INCLUDEDIR@") set(${PN}_LIBRARY "") set(${PN}_DEFINITIONS USING_${PN}) check_required_components(${PN}) if(NOT (CMAKE_VERSION VERSION_LESS 3.0)) #----------------------------------------------------------------------------- # Don't include targets if this file is being picked up by another # project which has already built this as a subproject #----------------------------------------------------------------------------- if(NOT TARGET ${PN}::${PN}) include("${CMAKE_CURRENT_LIST_DIR}/${PN}Targets.cmake") target_include_directories(${PN}::${PN} INTERFACE "${${PN}_INCLUDE_DIR}") if(@WITH_CUDA@) target_compile_definitions(${PN}::${PN} INTERFACE WITH_CUDA) endif() find_package(Torch REQUIRED) target_link_libraries(${PN}::${PN} INTERFACE torch) if(@WITH_PNG@) find_package(PNG REQUIRED) target_link_libraries(${PN}::${PN} INTERFACE ${PNG_LIBRARY}) target_compile_definitions(${PN}::${PN} INTERFACE PNG_FOUND) endif() if(@WITH_JPEG@) find_package(JPEG REQUIRED) target_link_libraries(${PN}::${PN} INTERFACE ${JPEG_LIBRARIES}) target_compile_definitions(${PN}::${PN} INTERFACE JPEG_FOUND) endif() endif() endif() vision-0.19.1/cmake/iOS.cmake000066400000000000000000000225021466211133600156710ustar00rootroot00000000000000# This file is based off of the Platform/Darwin.cmake and Platform/UnixPaths.cmake # files which are included with CMake 2.8.4 # It has been altered for iOS development # Options: # # IOS_PLATFORM = OS (default) or SIMULATOR # This decides if SDKS will be selected from the iPhoneOS.platform or iPhoneSimulator.platform folders # OS - the default, used to build for iPhone and iPad physical devices, which have an arm arch. # SIMULATOR - used to build for the Simulator platforms, which have an x86 arch. # # CMAKE_IOS_DEVELOPER_ROOT = automatic(default) or /path/to/platform/Developer folder # By default this location is automatically chosen based on the IOS_PLATFORM value above. # If set manually, it will override the default location and force the user of a particular Developer Platform # # CMAKE_IOS_SDK_ROOT = automatic(default) or /path/to/platform/Developer/SDKs/SDK folder # By default this location is automatically chosen based on the CMAKE_IOS_DEVELOPER_ROOT value. # In this case it will always be the most up-to-date SDK found in the CMAKE_IOS_DEVELOPER_ROOT path. # If set manually, this will force the use of a specific SDK version # Macros: # # set_xcode_property (TARGET XCODE_PROPERTY XCODE_VALUE) # A convenience macro for setting xcode specific properties on targets # example: set_xcode_property (myioslib IPHONEOS_DEPLOYMENT_TARGET "3.1") # # find_host_package (PROGRAM ARGS) # A macro used to find executable programs on the host system, not within the iOS environment. # Thanks to the android-cmake project for providing the command # Standard settings set(CMAKE_SYSTEM_NAME Darwin) set(CMAKE_SYSTEM_VERSION 1) set(UNIX True) set(APPLE True) set(IOS True) # Required as of cmake 2.8.10 set(CMAKE_OSX_DEPLOYMENT_TARGET "" CACHE STRING "Force unset of the deployment target for iOS" FORCE) # Determine the cmake host system version so we know where to find the iOS SDKs find_program(CMAKE_UNAME uname /bin /usr/bin /usr/local/bin) if(CMAKE_UNAME) exec_program(uname ARGS -r OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_VERSION) string(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\1" DARWIN_MAJOR_VERSION "${CMAKE_HOST_SYSTEM_VERSION}") endif(CMAKE_UNAME) # Force the compilers to gcc for iOS set(CMAKE_C_COMPILER /usr/bin/gcc CACHE STRING "") set(CMAKE_CXX_COMPILER /usr/bin/g++ CACHE STRING "") set(CMAKE_AR ar CACHE FILEPATH "" FORCE) set(CMAKE_RANLIB ranlib CACHE FILEPATH "" FORCE) set(PKG_CONFIG_EXECUTABLE pkg-config CACHE FILEPATH "" FORCE) # Setup iOS platform unless specified manually with IOS_PLATFORM if(NOT DEFINED IOS_PLATFORM) set(IOS_PLATFORM "OS") endif(NOT DEFINED IOS_PLATFORM) set(IOS_PLATFORM ${IOS_PLATFORM} CACHE STRING "Type of iOS Platform") # Check the platform selection and setup for developer root if(${IOS_PLATFORM} STREQUAL "OS") set(IOS_PLATFORM_LOCATION "iPhoneOS.platform") set(XCODE_IOS_PLATFORM iphoneos) # This causes the installers to properly locate the output libraries set(CMAKE_XCODE_EFFECTIVE_PLATFORMS "-iphoneos") elseif(${IOS_PLATFORM} STREQUAL "SIMULATOR") set(IOS_PLATFORM_LOCATION "iPhoneSimulator.platform") set(XCODE_IOS_PLATFORM iphonesimulator) # This causes the installers to properly locate the output libraries set(CMAKE_XCODE_EFFECTIVE_PLATFORMS "-iphonesimulator") elseif(${IOS_PLATFORM} STREQUAL "WATCHOS") set(IOS_PLATFORM_LOCATION "WatchOS.platform") set(XCODE_IOS_PLATFORM watchos) # This causes the installers to properly locate the output libraries set(CMAKE_XCODE_EFFECTIVE_PLATFORMS "-watchos") else(${IOS_PLATFORM} STREQUAL "OS") message(FATAL_ERROR "Unsupported IOS_PLATFORM value selected. " "Please choose OS, SIMULATOR, or WATCHOS.") endif() # All iOS/Darwin specific settings - some may be redundant set(CMAKE_SHARED_LIBRARY_PREFIX "lib") set(CMAKE_SHARED_LIBRARY_SUFFIX ".dylib") set(CMAKE_SHARED_MODULE_PREFIX "lib") set(CMAKE_SHARED_MODULE_SUFFIX ".so") set(CMAKE_MODULE_EXISTS 1) set(CMAKE_DL_LIBS "") set(CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG "-compatibility_version ") set(CMAKE_C_OSX_CURRENT_VERSION_FLAG "-current_version ") set(CMAKE_CXX_OSX_COMPATIBILITY_VERSION_FLAG "${CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG}") set(CMAKE_CXX_OSX_CURRENT_VERSION_FLAG "${CMAKE_C_OSX_CURRENT_VERSION_FLAG}") if(IOS_DEPLOYMENT_TARGET) set(XCODE_IOS_PLATFORM_VERSION_FLAGS "-m${XCODE_IOS_PLATFORM}-version-min=${IOS_DEPLOYMENT_TARGET}") endif() # Hidden visibility is required for cxx on iOS set(CMAKE_C_FLAGS_INIT "${XCODE_IOS_PLATFORM_VERSION_FLAGS}") set(CMAKE_CXX_FLAGS_INIT "${XCODE_IOS_PLATFORM_VERSION_FLAGS} -fvisibility-inlines-hidden") set(CMAKE_C_LINK_FLAGS "${XCODE_IOS_PLATFORM_VERSION_FLAGS} -Wl,-search_paths_first ${CMAKE_C_LINK_FLAGS}") set(CMAKE_CXX_LINK_FLAGS "${XCODE_IOS_PLATFORM_VERSION_FLAGS} -Wl,-search_paths_first ${CMAKE_CXX_LINK_FLAGS}") set(CMAKE_PLATFORM_HAS_INSTALLNAME 1) set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-dynamiclib -headerpad_max_install_names") set(CMAKE_SHARED_MODULE_CREATE_C_FLAGS "-bundle -headerpad_max_install_names") set(CMAKE_SHARED_MODULE_LOADER_C_FLAG "-Wl,-bundle_loader,") set(CMAKE_SHARED_MODULE_LOADER_CXX_FLAG "-Wl,-bundle_loader,") set(CMAKE_FIND_LIBRARY_SUFFIXES ".dylib" ".so" ".a") # hack: if a new cmake (which uses CMAKE_INSTALL_NAME_TOOL) runs on an old build tree # (where install_name_tool was hardcoded) and where CMAKE_INSTALL_NAME_TOOL isn't in the cache # and still cmake didn't fail in CMakeFindBinUtils.cmake (because it isn't rerun) # hardcode CMAKE_INSTALL_NAME_TOOL here to install_name_tool, so it behaves as it did before, Alex if(NOT DEFINED CMAKE_INSTALL_NAME_TOOL) find_program(CMAKE_INSTALL_NAME_TOOL install_name_tool) endif(NOT DEFINED CMAKE_INSTALL_NAME_TOOL) # Setup iOS deployment target set(IOS_DEPLOYMENT_TARGET ${IOS_DEPLOYMENT_TARGET} CACHE STRING "Minimum iOS version") # Setup iOS developer location unless specified manually with CMAKE_IOS_DEVELOPER_ROOT # Note Xcode 4.3 changed the installation location, choose the most recent one available exec_program(/usr/bin/xcode-select ARGS -print-path OUTPUT_VARIABLE CMAKE_XCODE_DEVELOPER_DIR) set(XCODE_POST_43_ROOT "${CMAKE_XCODE_DEVELOPER_DIR}/Platforms/${IOS_PLATFORM_LOCATION}/Developer") set(XCODE_PRE_43_ROOT "/Developer/Platforms/${IOS_PLATFORM_LOCATION}/Developer") if(NOT DEFINED CMAKE_IOS_DEVELOPER_ROOT) if(EXISTS ${XCODE_POST_43_ROOT}) set(CMAKE_IOS_DEVELOPER_ROOT ${XCODE_POST_43_ROOT}) elseif(EXISTS ${XCODE_PRE_43_ROOT}) set(CMAKE_IOS_DEVELOPER_ROOT ${XCODE_PRE_43_ROOT}) endif(EXISTS ${XCODE_POST_43_ROOT}) endif(NOT DEFINED CMAKE_IOS_DEVELOPER_ROOT) set(CMAKE_IOS_DEVELOPER_ROOT ${CMAKE_IOS_DEVELOPER_ROOT} CACHE PATH "Location of iOS Platform") # Find and use the most recent iOS sdk unless specified manually with CMAKE_IOS_SDK_ROOT if(NOT DEFINED CMAKE_IOS_SDK_ROOT) file(GLOB _CMAKE_IOS_SDKS "${CMAKE_IOS_DEVELOPER_ROOT}/SDKs/*") if(_CMAKE_IOS_SDKS) list(SORT _CMAKE_IOS_SDKS) list(REVERSE _CMAKE_IOS_SDKS) list(GET _CMAKE_IOS_SDKS 0 CMAKE_IOS_SDK_ROOT) else(_CMAKE_IOS_SDKS) message(FATAL_ERROR "No iOS SDK's found in default search path ${CMAKE_IOS_DEVELOPER_ROOT}. Manually set CMAKE_IOS_SDK_ROOT or install the iOS SDK.") endif(_CMAKE_IOS_SDKS) message(STATUS "Toolchain using default iOS SDK: ${CMAKE_IOS_SDK_ROOT}") endif(NOT DEFINED CMAKE_IOS_SDK_ROOT) set(CMAKE_IOS_SDK_ROOT ${CMAKE_IOS_SDK_ROOT} CACHE PATH "Location of the selected iOS SDK") # Set the sysroot default to the most recent SDK set(CMAKE_OSX_SYSROOT ${CMAKE_IOS_SDK_ROOT} CACHE PATH "Sysroot used for iOS support") # set the architecture for iOS if(IOS_PLATFORM STREQUAL "OS") set(DEFAULT_IOS_ARCH "arm64") elseif(IOS_PLATFORM STREQUAL "SIMULATOR") set(DEFAULT_IOS_ARCH "x86_64") elseif(IOS_PLATFORM STREQUAL "WATCHOS") set(DEFAULT_IOS_ARCH "armv7k;arm64_32") endif() set(IOS_ARCH ${DEFAULT_IOS_ARCH} CACHE STRING "Build architecture for iOS") set(CMAKE_OSX_ARCHITECTURES ${IOS_ARCH} CACHE STRING "Build architecture for iOS") # Set the find root to the iOS developer roots and to user defined paths set(CMAKE_FIND_ROOT_PATH ${CMAKE_IOS_DEVELOPER_ROOT} ${CMAKE_IOS_SDK_ROOT} ${CMAKE_PREFIX_PATH} CACHE STRING "iOS find search path root") # default to searching for frameworks first set(CMAKE_FIND_FRAMEWORK FIRST) # set up the default search directories for frameworks set(CMAKE_SYSTEM_FRAMEWORK_PATH ${CMAKE_IOS_SDK_ROOT}/System/Library/Frameworks ${CMAKE_IOS_SDK_ROOT}/System/Library/PrivateFrameworks ${CMAKE_IOS_SDK_ROOT}/Developer/Library/Frameworks ) # only search the iOS sdks, not the remainder of the host filesystem set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) # This little macro lets you set any XCode specific property macro(set_xcode_property TARGET XCODE_PROPERTY XCODE_VALUE) set_property(TARGET ${TARGET} PROPERTY XCODE_ATTRIBUTE_${XCODE_PROPERTY} ${XCODE_VALUE}) endmacro(set_xcode_property) # This macro lets you find executable programs on the host system macro(find_host_package) set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER) set(IOS FALSE) find_package(${ARGN}) set(IOS TRUE) set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) endmacro(find_host_package) vision-0.19.1/docs/000077500000000000000000000000001466211133600140445ustar00rootroot00000000000000vision-0.19.1/docs/Makefile000066400000000000000000000032041466211133600155030ustar00rootroot00000000000000# Minimal makefile for Sphinx documentation # ifneq ($(EXAMPLES_PATTERN),) EXAMPLES_PATTERN_OPTS := -D sphinx_gallery_conf.filename_pattern="$(EXAMPLES_PATTERN)" endif # You can set these variables from the command line. SPHINXOPTS = -W -j auto $(EXAMPLES_PATTERN_OPTS) SPHINXBUILD = sphinx-build SPHINXPROJ = torchvision SOURCEDIR = source BUILDDIR = build # Put it first so that "make" without argument is like "make help". help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) docset: html doc2dash --name $(SPHINXPROJ) --icon $(SOURCEDIR)/_static/img/pytorch-logo-flame.png --enable-js --online-redirect-url http://pytorch.org/vision/ --force $(BUILDDIR)/html/ # Manually fix because Zeal doesn't deal well with `icon.png`-only at 2x resolution. cp $(SPHINXPROJ).docset/icon.png $(SPHINXPROJ).docset/icon@2x.png convert $(SPHINXPROJ).docset/icon@2x.png -resize 16x16 $(SPHINXPROJ).docset/icon.png html-noplot: # Avoids running the gallery examples, which may take time $(SPHINXBUILD) -D plot_gallery=0 -b html "${SOURCEDIR}" "$(BUILDDIR)"/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." clean: rm -rf $(BUILDDIR)/* rm -rf $(SOURCEDIR)/auto_examples/ # sphinx-gallery rm -rf $(SOURCEDIR)/gen_modules/ # sphinx-gallery rm -rf $(SOURCEDIR)/generated/ # autosummary rm -rf $(SOURCEDIR)/models/generated # autosummary .PHONY: help Makefile docset # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) vision-0.19.1/docs/make.bat000066400000000000000000000014171466211133600154540ustar00rootroot00000000000000@ECHO OFF pushd %~dp0 REM Command file for Sphinx documentation if "%SPHINXBUILD%" == "" ( set SPHINXBUILD=sphinx-build ) set SOURCEDIR=source set BUILDDIR=build set SPHINXPROJ=torchvision if "%1" == "" goto help %SPHINXBUILD% >NUL 2>NUL if errorlevel 9009 ( echo. echo.The 'sphinx-build' command was not found. Make sure you have Sphinx echo.installed, then set the SPHINXBUILD environment variable to point echo.to the full path of the 'sphinx-build' executable. Alternatively you echo.may add the Sphinx directory to PATH. echo. echo.If you don't have Sphinx installed, grab it from echo.http://sphinx-doc.org/ exit /b 1 ) %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% goto end :help %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% :end popd vision-0.19.1/docs/requirements.txt000066400000000000000000000002701466211133600173270ustar00rootroot00000000000000matplotlib numpy sphinx-copybutton>=0.3.1 sphinx-gallery>=0.11.1 sphinx==5.0.0 tabulate -e git+https://github.com/pytorch/pytorch_sphinx_theme.git#egg=pytorch_sphinx_theme pycocotools vision-0.19.1/docs/source/000077500000000000000000000000001466211133600153445ustar00rootroot00000000000000vision-0.19.1/docs/source/_static/000077500000000000000000000000001466211133600167725ustar00rootroot00000000000000vision-0.19.1/docs/source/_static/css/000077500000000000000000000000001466211133600175625ustar00rootroot00000000000000vision-0.19.1/docs/source/_static/css/custom_torchvision.css000066400000000000000000000024461466211133600242430ustar00rootroot00000000000000/* This rule should be removed once https://github.com/pytorch/pytorch_sphinx_theme/issues/125 is fixed. We override the rule so that the links to the notebooks aren't hidden in the gallery examples. pytorch_sphinx_theme is supposed to customize those links so that they render nicely (look at the nice links on top of the tutorials examples) but it doesn't work for repos that are not the tutorial repo, and in torchvision it just hides the links. So we have to put them back here */ article.pytorch-article .sphx-glr-download-link-note.admonition.note, article.pytorch-article .reference.download.internal, article.pytorch-article .sphx-glr-signature { display: block; } /* These 2 rules below are for the weight tables (generated in conf.py) to look * better. In particular we make their row height shorter */ .table-weights td, .table-weights th { margin-bottom: 0.2rem; padding: 0 !important; line-height: 1 !important; } .table-weights p { margin-bottom: 0.2rem !important; } /* Fix for Sphinx gallery 0.11 See https://github.com/sphinx-gallery/sphinx-gallery/issues/990 */ article.pytorch-article .sphx-glr-thumbnails .sphx-glr-thumbcontainer { width: unset; margin-right: 0; margin-left: 0; } article.pytorch-article div.section div.wy-table-responsive tbody td { width: 50%; } vision-0.19.1/docs/source/_static/img/000077500000000000000000000000001466211133600175465ustar00rootroot00000000000000vision-0.19.1/docs/source/_static/img/pytorch-logo-dark.png000066400000000000000000000661631466211133600236350ustar00rootroot00000000000000PNG  IHDRO5 pHYs.#.#x?v OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3-;'iTXtXML:com.adobe.xmp Adobe Photoshop CC 2015 (Macintosh) 2017-01-04T23:25:03-05:00 2017-01-16T15:09:50-05:00 2017-01-16T15:09:50-05:00 image/png 3 sRGB IEC61966-2.1 xmp.iid:eacdfc19-397e-4f5f-aabe-0bf5cfa68232 adobe:docid:photoshop:21886c52-1cb6-117a-bff4-aa7c7148961a xmp.did:fef6a0e1-0f89-468c-a40e-932975d64830 created xmp.iid:fef6a0e1-0f89-468c-a40e-932975d64830 2017-01-04T23:25:03-05:00 Adobe Photoshop CC 2015 (Macintosh) converted from application/vnd.adobe.photoshop to image/png saved xmp.iid:eacdfc19-397e-4f5f-aabe-0bf5cfa68232 2017-01-16T15:09:50-05:00 Adobe Photoshop CC 2015 (Macintosh) / 1 3000000/10000 3000000/10000 2 1 1024 214 , cHRMz%u0`:o_F&kIDATxuHG~0 AӬ to4 H@ThKnZtS4;#L|(d[HB݋[UGV& H(y7h_g3ICIimR@I:9@= 46?tњ]G#<h6LRȟu @1Y_3-tY@{\wI4DPRgǿ~VDTH@8GX Fa &4h4:W3Z{R ~= {>- |^z]SH3@<%}t#k>}5HrC?4᷻n*NX'\UHDu>%4 @#銖$0L([$8t.*8?spu |xM+X笹/ ?yN1ZKc61Zr  g7||^=%@Ro>,+y9W` C7~E K @m۟舖`URw6YeU> H`]E鄭H`_Rb7T5ի: OirphG<:ez4Y28vK7!iZv\PL,V9W)<!>KHP|~!>Wwz]. @y>p N$(G?s醄 ,>"+v֏A/} N%-O :6b5V^ϿytDZ'bްmf~k-4Yrn=j@>]K: Am@=·ϯo%?lj6"]G*nD3-4cBHP:cHTT\ŢJu&ٯ !p ĩ&*:΅ ԯѹvA/-aQWOS$هoUW{DS @\jVö?&s.HEI?PT&\=dDmDTSn1/mZxvo2 }G'(x,VK6DԫI69 /I(XvK}A/trB$1w`? IoR)d!!ERϹ*hs#_m& ].ncK6:{?nY{anUsd (Ry !vAo,VAm[m¯\ҟy;̻{4:cO܃/7X!c+o>E*8g-Xpo_4B7N+aUT*mNrQ7KU}l$-%}d]m?9b_p!lx2`-&FF%_oPA"dzQUQ 4pcWfA}ι,$\Y4?xI望9M!#j vC`hGmRYI7aRQkȶ1;ט%q C⍊cMNp ^ Ц%[jg!@nqmb ~;ZV }wAF6I > p%˄D@4Dҷ0n4ޛ *t㜻n`:R1bP;k .E $J^~$~5@>uAo[ׅ*枾M%M|(gp٨U iX\qUo8,P675TՉV`J]ݽK3@tBې$DNf xKA[5N>:!)J *^ <VÆ|U5Qxqn  MqбI'lvw,zNhs9Wak *z{1-&0=WW)Mq\kP˽.MxhB0Lش,p>Cv"{?k?l*{$ι0Jhuýק)@&BQN֪u}v$Y>`*1pH3tUo|DŔs$lb~UmF񼿙l2a'1Hwh]5a/H|i:KLHTéL,58t潟CQ%2(# ώGf*^Hp$@v|XLΪ_yWaʇՃץp`,X$$@v.ꜭSFZ V{Rx3HhI7"J$?F*ZG5O:$x ;6Fea|` D"QbO8Az!Ȥ ~q}P %'7L iԚOXn*@ɓƃC{kH냶jT(>e #` [ZonF *BphLi\IgPչ\(L4:Ecr%FZ넶;kc@^" <~Q{K;/4@y9 `- V0TXkzꢫW!Q8y?HWU,lU`ѡVI M9m u 63I_Bп~š+DRqo$|28m~BRm;9wi_92ѽ5f*%#MP+CIv?]i풄k?ti*,iZHlϼM UT6οn塣L`QGqΥu.OsT}&obtOueSj|ՠ?P@6JCYy#P$<F6gj3rk-ceޘbc)T)]~ }_zcIϜ& \0\qբ.7lk JR1Z{CНGpj:oR?S$zzUV*1icߧ1\m~h(6Ƨo@{eW]С[4庡」~,BFV^Ժ*{v?`W4PT@*Ͱ>|k[0M KV?$W&ئeJU N"ޏd8ICslt*3ܰmhQ_ki>%4CcVsUVIRi HNg-m:O aG1ݢ1iC03jDKVX\?D;&X'҆5i,[M[MMé}xx$$Ʋ)6hХlU藹O>e\YvevB" k1ȹXu  k7@=X[6anYe[Q )-Qk\v$2T6b\5 *>\  a ]GƀGy*Wu5.U˕NC+em_$FD MbSIgwj~hкp-C'(.յ?c>*'*M [^sOwUDZH`TIܩ/\A lU: lÑk_{. JǃDبX_SXj ,VA6`." ;Ǣ,*0fJ<FA}o\6sFh&(Sv{@u%][ 2a*u7 x1LI짢u7w*'Г,F h/FvoEh -2(5oSn8poYUR1E0w)@7i,my?{?/z nkW%ιk࿎onH5t}͜Rec^ saH?M wZu bS'@4snexx ?os[9PF\_`/E,Vm~cw㜣& kċÏ' S}ƕjL:8{KtH!T]r zVboQO<{w&H&B|[!C2*@9 0QYz\9 Ý?[t cH(!b][*;1425–@ ` K-*]cf}.c Bs_(E2-Ј@b-F.@ %>@S 1HD OXw]#>XMsU~ ()ۊk*@潟rYKis<IUUkn!3"?PES=P@ 5"$@f82T(dA}*Z V<#O] $<W9:R ? oQ |R>˭42KIsn)_/YhM"A/1:4}+:H,`%_$6V AᔦHjU V7s+B$T.YrY;޷)@pZ[:ҪL(\1YǑ7F* w:ǤoEq˂ꗔ h.TI/cviY$C4{km$UP *s}n=pET1;P. ޾R~㜫'b}H%}dw0m8,58 㩌Ijo}H@E9R2Кo[K/:ι4k&SHcsCi}3:osnB3 %%- |lݞڭIWs)xs\fKpX$]z`UECv΍%]W=c>$ΜsS` @$U`k^*lޑmF:$*uaɦgN%Kc k,yK ,}6:n'̇oyg&iN12s.q @vo]^[ˊѰhmF:sPXmd7?Mj%}$agԀ~#M"^\$?gaC$?'b.#:|лxLq,wkm&e,7&oE$\q$?%9ι9wYiH$x#@LAd_ҷ^,0wZSpgѹtU,xD,ߘ$8@ )9%*vak%Ȯ:,zfδ_+ (I:W$9:,__rF[QUL7 1MX0ba"i[b;D@w'F&>@&0$J- aėkn\6U& WCk\? oEx| h&ډRIi>]HV||<`*DśN F-c܍qϝsB|y7ιO/ӽ/"P**|TU>p ow]I 1`dFs.SڕS_:*Ǯ~)$Lp#}i >k.JAR|) <7X6I97 SHx?֏MnPI$db5x o,[$@#VPj+D,;élgĽ>{O?HPm\oC๑ι.W$@;cm j!<% `;N+ڿA]`>}^H$0Llhʍ [t1-{y1 "HUѮs*d >8﫦# J0#) @W<K$ ж)Υvpu ?'oylDH+M٭ I3DH6_ @Jf-p/ddcA\Ś(Zc>-?HP$TyX +,X$:$<o74HP$@bx\b sc`vĂ]{?ۤ{? +$i OSS=/K D5s*Ji#AigƃrId:M ́\GS`AS٥ @CP 0-Uxap9]9 Z*=I:/@'*lySd*{[tA@ʼn,$F-LlT,B @˒yXMB"`A(g 3Gm㜛p^wU,yú Z؄ېXEp`cc ^{>S5k׀Lx0`y*JY+'OTC\Í~?^EBFE"8/h74%$M$MAo(郤OGEFK)>X2`"q8 - `'.$ ~2}c1h*'}assI|Hd@7)SXblsиq΍ e@_$elWqu[lT¨G<:RpQ]2$ xIJιDER+_῝'!5?Pn$8!x˽oi /2Vqr~"6Qk$@ KJ%p;%y/_'at4 @-' vision-0.19.1/docs/source/_static/img/pytorch-logo-flame.png000066400000000000000000000017621466211133600237720ustar00rootroot00000000000000PNG  IHDR szzsBIT|d pHYs btEXtSoftwarewww.inkscape.org<oIDATX]hUg66i R661R*4PM,L6PyD@!O"S۷JfPJ[PĆDnՒ&LJθ=OsqvfU>xSGj4U`SD͇Zk٬ӵtkl  @AZ#mX1Y,Z-C73ÿgpH-C\!&}Q嵒Uxkۭ{aC1jF oΎ&T~6$`W͓ %2hu#ewQ8$[5J/ED^+=3O< D-KǴ#p=lnni`OAx(sy@~ 1 ʫL'SO N=aSmrL;-@0CuD@shug/(@U*πPiobQC5Ѧ[zF70A2lnbi]I84;8'IR~'L;-Ao:]m(5ZhD>(MQkAƒ7 > %oӉ~5tbH%W2iky@"e xcD1?̤Z+^OsM'G}g/䳟g/ V<;>4m9_>N> : <\=S^g2 >\S,u_X 3/<yz]IENDB`vision-0.19.1/docs/source/_static/img/pytorch-logo-flame.svg000066400000000000000000000027251466211133600240050ustar00rootroot00000000000000 image/svg+xml vision-0.19.1/docs/source/_templates/000077500000000000000000000000001466211133600175015ustar00rootroot00000000000000vision-0.19.1/docs/source/_templates/class.rst000066400000000000000000000002151466211133600213360ustar00rootroot00000000000000.. role:: hidden :class: hidden-section .. currentmodule:: {{ module }} {{ name | underline}} .. autoclass:: {{ name }} :members: vision-0.19.1/docs/source/_templates/class_dataset.rst000066400000000000000000000003761466211133600230530ustar00rootroot00000000000000.. role:: hidden :class: hidden-section .. currentmodule:: {{ module }} {{ name | underline}} .. autoclass:: {{ name }} :members: __getitem__, {% if "category_name" in methods %} category_name {% endif %} :special-members: vision-0.19.1/docs/source/_templates/function.rst000066400000000000000000000002021466211133600220520ustar00rootroot00000000000000.. role:: hidden :class: hidden-section .. currentmodule:: {{ module }} {{ name | underline}} .. autofunction:: {{ name }} vision-0.19.1/docs/source/_templates/layout.html000066400000000000000000000003411466211133600217020ustar00rootroot00000000000000{% extends "!layout.html" %} {% block sidebartitle %} {% include "searchbox.html" %} {% endblock %} vision-0.19.1/docs/source/beta_status.py000066400000000000000000000011101466211133600202250ustar00rootroot00000000000000from docutils import nodes from docutils.parsers.rst import Directive class BetaStatus(Directive): has_content = True text = "The {api_name} is in Beta stage, and backward compatibility is not guaranteed." node = nodes.warning def run(self): text = self.text.format(api_name=" ".join(self.content)) return [self.node("", nodes.paragraph("", "", nodes.Text(text)))] def setup(app): app.add_directive("betastatus", BetaStatus) return { "version": "0.1", "parallel_read_safe": True, "parallel_write_safe": True, } vision-0.19.1/docs/source/conf.py000066400000000000000000000454621466211133600166560ustar00rootroot00000000000000#!/usr/bin/env python3 # # PyTorch documentation build configuration file, created by # sphinx-quickstart on Fri Dec 23 13:31:47 2016. # # 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. # 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. # # import os # import sys # sys.path.insert(0, os.path.abspath('.')) import os import sys import textwrap from copy import copy from pathlib import Path import pytorch_sphinx_theme import torchvision import torchvision.models as M from sphinx_gallery.sorting import ExplicitOrder from tabulate import tabulate sys.path.append(os.path.abspath(".")) # -- General configuration ------------------------------------------------ # Required version of sphinx is set from docs/requirements.txt # 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.autosummary", "sphinx.ext.doctest", "sphinx.ext.intersphinx", "sphinx.ext.todo", "sphinx.ext.mathjax", "sphinx.ext.napoleon", "sphinx.ext.viewcode", "sphinx.ext.duration", "sphinx_gallery.gen_gallery", "sphinx_copybutton", "beta_status", ] # We override sphinx-gallery's example header to prevent sphinx-gallery from # creating a note at the top of the renderred notebook. # https://github.com/sphinx-gallery/sphinx-gallery/blob/451ccba1007cc523f39cbcc960ebc21ca39f7b75/sphinx_gallery/gen_rst.py#L1267-L1271 # This is because we also want to add a link to google collab, so we write our own note in each example. from sphinx_gallery import gen_rst gen_rst.EXAMPLE_HEADER = """ .. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "{0}" .. LINE NUMBERS ARE GIVEN BELOW. .. rst-class:: sphx-glr-example-title .. _sphx_glr_{1}: """ class CustomGalleryExampleSortKey: # See https://sphinx-gallery.github.io/stable/configuration.html#sorting-gallery-examples # and https://github.com/sphinx-gallery/sphinx-gallery/blob/master/sphinx_gallery/sorting.py def __init__(self, src_dir): self.src_dir = src_dir transforms_subsection_order = [ "plot_transforms_getting_started.py", "plot_transforms_illustrations.py", "plot_transforms_e2e.py", "plot_cutmix_mixup.py", "plot_custom_transforms.py", "plot_tv_tensors.py", "plot_custom_tv_tensors.py", ] def __call__(self, filename): if "gallery/transforms" in self.src_dir: try: return self.transforms_subsection_order.index(filename) except ValueError as e: raise ValueError( "Looks like you added an example in gallery/transforms? " "You need to specify its order in docs/source/conf.py. Look for CustomGalleryExampleSortKey." ) from e else: # For other subsections we just sort alphabetically by filename return filename sphinx_gallery_conf = { "examples_dirs": "../../gallery/", # path to your example scripts "gallery_dirs": "auto_examples", # path to where to save gallery generated output "subsection_order": ExplicitOrder(["../../gallery/transforms", "../../gallery/others"]), "backreferences_dir": "gen_modules/backreferences", "doc_module": ("torchvision",), "remove_config_comments": True, "ignore_pattern": "helpers.py", "within_subsection_order": CustomGalleryExampleSortKey, } napoleon_use_ivar = True napoleon_numpy_docstring = False napoleon_google_docstring = True # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = { ".rst": "restructuredtext", } # The master toctree document. master_doc = "index" # General information about the project. project = "Torchvision" copyright = "2017-present, Torch Contributors" author = "Torch Contributors" # 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. # version: The short X.Y version. # release: The full version, including alpha/beta/rc tags. if os.environ.get("TORCHVISION_SANITIZE_VERSION_STR_IN_DOCS", None): # Turn 1.11.0aHASH into 1.11 (major.minor only) version = release = ".".join(torchvision.__version__.split(".")[:2]) html_title = " ".join((project, version, "documentation")) else: version = f"main ({torchvision.__version__})" release = "main" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. language = "en" # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This patterns also effect to html_static_path and html_extra_path exclude_patterns = [] # The name of the Pygments (syntax highlighting) style to use. pygments_style = "sphinx" # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True # -- 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 = "pytorch_sphinx_theme" html_theme_path = [pytorch_sphinx_theme.get_html_theme_path()] # 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 = { "collapse_navigation": False, "display_version": True, "logo_only": True, "pytorch_project": "docs", "navigation_with_keys": True, "analytics_id": "GTM-T8XT4PS", } html_logo = "_static/img/pytorch-logo-dark.svg" # 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"] # TODO: remove this once https://github.com/pytorch/pytorch_sphinx_theme/issues/125 is fixed html_css_files = [ "css/custom_torchvision.css", ] # -- Options for HTMLHelp output ------------------------------------------ # Output file base name for HTML help builder. htmlhelp_basename = "PyTorchdoc" autosummary_generate = True # -- Options for LaTeX output --------------------------------------------- latex_elements = { # 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 figure (float) alignment # # 'figure_align': 'htbp', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ (master_doc, "pytorch.tex", "torchvision Documentation", "Torch Contributors", "manual"), ] # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [(master_doc, "torchvision", "torchvision Documentation", [author], 1)] # -- 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 = [ ( master_doc, "torchvision", "torchvision Documentation", author, "torchvision", "One line description of project.", "Miscellaneous", ), ] # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { "python": ("https://docs.python.org/3/", None), "torch": ("https://pytorch.org/docs/stable/", None), "numpy": ("https://numpy.org/doc/stable/", None), "PIL": ("https://pillow.readthedocs.io/en/stable/", None), "matplotlib": ("https://matplotlib.org/stable/", None), } # -- A patch that prevents Sphinx from cross-referencing ivar tags ------- # See http://stackoverflow.com/a/41184353/3343043 from docutils import nodes from sphinx import addnodes from sphinx.util.docfields import TypedField def patched_make_field(self, types, domain, items, **kw): # `kw` catches `env=None` needed for newer sphinx while maintaining # backwards compatibility when passed along further down! # type: (list, unicode, tuple) -> nodes.field # noqa: F821 def handle_item(fieldarg, content): par = nodes.paragraph() par += addnodes.literal_strong("", fieldarg) # Patch: this line added # par.extend(self.make_xrefs(self.rolename, domain, fieldarg, # addnodes.literal_strong)) if fieldarg in types: par += nodes.Text(" (") # NOTE: using .pop() here to prevent a single type node to be # inserted twice into the doctree, which leads to # inconsistencies later when references are resolved fieldtype = types.pop(fieldarg) if len(fieldtype) == 1 and isinstance(fieldtype[0], nodes.Text): typename = "".join(n.astext() for n in fieldtype) typename = typename.replace("int", "python:int") typename = typename.replace("long", "python:long") typename = typename.replace("float", "python:float") typename = typename.replace("type", "python:type") par.extend(self.make_xrefs(self.typerolename, domain, typename, addnodes.literal_emphasis, **kw)) else: par += fieldtype par += nodes.Text(")") par += nodes.Text(" -- ") par += content return par fieldname = nodes.field_name("", self.label) if len(items) == 1 and self.can_collapse: fieldarg, content = items[0] bodynode = handle_item(fieldarg, content) else: bodynode = self.list_type() for fieldarg, content in items: bodynode += nodes.list_item("", handle_item(fieldarg, content)) fieldbody = nodes.field_body("", bodynode) return nodes.field("", fieldname, fieldbody) TypedField.make_field = patched_make_field def inject_minigalleries(app, what, name, obj, options, lines): """Inject a minigallery into a docstring. This avoids having to manually write the .. minigallery directive for every item we want a minigallery for, as it would be easy to miss some. This callback is called after the .. auto directives (like ..autoclass) have been processed, and modifies the lines parameter inplace to add the .. minigallery that will show which examples are using which object. It's a bit hacky, but not *that* hacky when you consider that the recommended way is to do pretty much the same, but instead with templates using autosummary (which we don't want to use): (https://sphinx-gallery.github.io/stable/configuration.html#auto-documenting-your-api-with-links-to-examples) For docs on autodoc-process-docstring, see the autodoc docs: https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html """ if what in ("class", "function"): lines.append(f".. minigallery:: {name}") lines.append(f" :add-heading: Examples using ``{name.split('.')[-1]}``:") # avoid heading entirely to avoid warning. As a bonud it actually renders better lines.append(" :heading-level: 9") lines.append("\n") def inject_weight_metadata(app, what, name, obj, options, lines): """This hook is used to generate docs for the models weights. Objects like ResNet18_Weights are enums with fields, where each field is a Weight object. Enums aren't easily documented in Python so the solution we're going for is to: - add an autoclass directive in the model's builder docstring, e.g. ``` .. autoclass:: torchvision.models.ResNet34_Weights :members: ``` (see resnet.py for an example) - then this hook is called automatically when building the docs, and it generates the text that gets used within the autoclass directive. """ if getattr(obj, "__name__", "").endswith(("_Weights", "_QuantizedWeights")): if len(obj) == 0: lines[:] = ["There are no available pre-trained weights."] return lines[:] = [ "The model builder above accepts the following values as the ``weights`` parameter.", f"``{obj.__name__}.DEFAULT`` is equivalent to ``{obj.DEFAULT}``. You can also use strings, e.g. " f"``weights='DEFAULT'`` or ``weights='{str(list(obj)[0]).split('.')[1]}'``.", ] if obj.__doc__ != "An enumeration.": # We only show the custom enum doc if it was overridden. The default one from Python is "An enumeration" lines.append("") lines.append(obj.__doc__) lines.append("") for field in obj: meta = copy(field.meta) lines += [f"**{str(field)}**:", ""] lines += [meta.pop("_docs")] if field == obj.DEFAULT: lines += [f"Also available as ``{obj.__name__}.DEFAULT``."] lines += [""] table = [] metrics = meta.pop("_metrics") for dataset, dataset_metrics in metrics.items(): for metric_name, metric_value in dataset_metrics.items(): table.append((f"{metric_name} (on {dataset})", str(metric_value))) for k, v in meta.items(): if k in {"recipe", "license"}: v = f"`link <{v}>`__" elif k == "min_size": v = f"height={v[0]}, width={v[1]}" elif k in {"categories", "keypoint_names"} and isinstance(v, list): max_visible = 3 v_sample = ", ".join(v[:max_visible]) v = f"{v_sample}, ... ({len(v)-max_visible} omitted)" if len(v) > max_visible else v_sample elif k == "_ops": v = f"{v:.2f}" k = "GIPS" if obj.__name__.endswith("_QuantizedWeights") else "GFLOPS" elif k == "_file_size": k = "File size" v = f"{v:.1f} MB" table.append((str(k), str(v))) table = tabulate(table, tablefmt="rst") lines += [".. rst-class:: table-weights"] # Custom CSS class, see custom_torchvision.css lines += [".. table::", ""] lines += textwrap.indent(table, " " * 4).split("\n") lines.append("") lines.append( f"The inference transforms are available at ``{str(field)}.transforms`` and " f"perform the following preprocessing operations: {field.transforms().describe()}" ) lines.append("") def generate_weights_table(module, table_name, metrics, dataset, include_patterns=None, exclude_patterns=None): weights_endswith = "_QuantizedWeights" if module.__name__.split(".")[-1] == "quantization" else "_Weights" weight_enums = [getattr(module, name) for name in dir(module) if name.endswith(weights_endswith)] weights = [w for weight_enum in weight_enums for w in weight_enum] if include_patterns is not None: weights = [w for w in weights if any(p in str(w) for p in include_patterns)] if exclude_patterns is not None: weights = [w for w in weights if all(p not in str(w) for p in exclude_patterns)] ops_name = "GIPS" if "QuantizedWeights" in weights_endswith else "GFLOPS" metrics_keys, metrics_names = zip(*metrics) column_names = ["Weight"] + list(metrics_names) + ["Params"] + [ops_name, "Recipe"] # Final column order column_names = [f"**{name}**" for name in column_names] # Add bold content = [] for w in weights: row = [ f":class:`{w} <{type(w).__name__}>`", *(w.meta["_metrics"][dataset][metric] for metric in metrics_keys), f"{w.meta['num_params']/1e6:.1f}M", f"{w.meta['_ops']:.2f}", f"`link <{w.meta['recipe']}>`__", ] content.append(row) column_widths = ["110"] + ["18"] * len(metrics_names) + ["18"] * 2 + ["10"] widths_table = " ".join(column_widths) table = tabulate(content, headers=column_names, tablefmt="rst") generated_dir = Path("generated") generated_dir.mkdir(exist_ok=True) with open(generated_dir / f"{table_name}_table.rst", "w+") as table_file: table_file.write(".. rst-class:: table-weights\n") # Custom CSS class, see custom_torchvision.css table_file.write(".. table::\n") table_file.write(f" :widths: {widths_table} \n\n") table_file.write(f"{textwrap.indent(table, ' ' * 4)}\n\n") generate_weights_table( module=M, table_name="classification", metrics=[("acc@1", "Acc@1"), ("acc@5", "Acc@5")], dataset="ImageNet-1K" ) generate_weights_table( module=M.quantization, table_name="classification_quant", metrics=[("acc@1", "Acc@1"), ("acc@5", "Acc@5")], dataset="ImageNet-1K", ) generate_weights_table( module=M.detection, table_name="detection", metrics=[("box_map", "Box MAP")], exclude_patterns=["Mask", "Keypoint"], dataset="COCO-val2017", ) generate_weights_table( module=M.detection, table_name="instance_segmentation", metrics=[("box_map", "Box MAP"), ("mask_map", "Mask MAP")], dataset="COCO-val2017", include_patterns=["Mask"], ) generate_weights_table( module=M.detection, table_name="detection_keypoint", metrics=[("box_map", "Box MAP"), ("kp_map", "Keypoint MAP")], dataset="COCO-val2017", include_patterns=["Keypoint"], ) generate_weights_table( module=M.segmentation, table_name="segmentation", metrics=[("miou", "Mean IoU"), ("pixel_acc", "pixelwise Acc")], dataset="COCO-val2017-VOC-labels", ) generate_weights_table( module=M.video, table_name="video", metrics=[("acc@1", "Acc@1"), ("acc@5", "Acc@5")], dataset="Kinetics-400" ) def setup(app): app.connect("autodoc-process-docstring", inject_minigalleries) app.connect("autodoc-process-docstring", inject_weight_metadata) vision-0.19.1/docs/source/datasets.rst000066400000000000000000000065221466211133600177130ustar00rootroot00000000000000.. _datasets: Datasets ======== Torchvision provides many built-in datasets in the ``torchvision.datasets`` module, as well as utility classes for building your own datasets. Built-in datasets ----------------- All datasets are subclasses of :class:`torch.utils.data.Dataset` i.e, they have ``__getitem__`` and ``__len__`` methods implemented. Hence, they can all be passed to a :class:`torch.utils.data.DataLoader` which can load multiple samples in parallel using ``torch.multiprocessing`` workers. For example: :: imagenet_data = torchvision.datasets.ImageNet('path/to/imagenet_root/') data_loader = torch.utils.data.DataLoader(imagenet_data, batch_size=4, shuffle=True, num_workers=args.nThreads) .. currentmodule:: torchvision.datasets All the datasets have almost similar API. They all have two common arguments: ``transform`` and ``target_transform`` to transform the input and target respectively. You can also create your own datasets using the provided :ref:`base classes `. Image classification ~~~~~~~~~~~~~~~~~~~~ .. autosummary:: :toctree: generated/ :template: class_dataset.rst Caltech101 Caltech256 CelebA CIFAR10 CIFAR100 Country211 DTD EMNIST EuroSAT FakeData FashionMNIST FER2013 FGVCAircraft Flickr8k Flickr30k Flowers102 Food101 GTSRB INaturalist ImageNet Imagenette KMNIST LFWPeople LSUN MNIST Omniglot OxfordIIITPet Places365 PCAM QMNIST RenderedSST2 SEMEION SBU StanfordCars STL10 SUN397 SVHN USPS Image detection or segmentation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. autosummary:: :toctree: generated/ :template: class_dataset.rst CocoDetection CelebA Cityscapes Kitti OxfordIIITPet SBDataset VOCSegmentation VOCDetection WIDERFace Optical Flow ~~~~~~~~~~~~ .. autosummary:: :toctree: generated/ :template: class_dataset.rst FlyingChairs FlyingThings3D HD1K KittiFlow Sintel Stereo Matching ~~~~~~~~~~~~~~~ .. autosummary:: :toctree: generated/ :template: class_dataset.rst CarlaStereo Kitti2012Stereo Kitti2015Stereo CREStereo FallingThingsStereo SceneFlowStereo SintelStereo InStereo2k ETH3DStereo Middlebury2014Stereo Image pairs ~~~~~~~~~~~ .. autosummary:: :toctree: generated/ :template: class_dataset.rst LFWPairs PhotoTour Image captioning ~~~~~~~~~~~~~~~~ .. autosummary:: :toctree: generated/ :template: class_dataset.rst CocoCaptions Video classification ~~~~~~~~~~~~~~~~~~~~ .. autosummary:: :toctree: generated/ :template: class_dataset.rst HMDB51 Kinetics UCF101 Video prediction ~~~~~~~~~~~~~~~~~~~~ .. autosummary:: :toctree: generated/ :template: class_dataset.rst MovingMNIST .. _base_classes_datasets: Base classes for custom datasets -------------------------------- .. autosummary:: :toctree: generated/ :template: class.rst DatasetFolder ImageFolder VisionDataset Transforms v2 ------------- .. autosummary:: :toctree: generated/ :template: function.rst wrap_dataset_for_transforms_v2 vision-0.19.1/docs/source/docutils.conf000066400000000000000000000001551466211133600200420ustar00rootroot00000000000000# Necessary for the table generated by autosummary to look decent [html writers] table_style: colwidths-auto vision-0.19.1/docs/source/feature_extraction.rst000066400000000000000000000153571466211133600220040ustar00rootroot00000000000000Feature extraction for model inspection ======================================= .. currentmodule:: torchvision.models.feature_extraction The ``torchvision.models.feature_extraction`` package contains feature extraction utilities that let us tap into our models to access intermediate transformations of our inputs. This could be useful for a variety of applications in computer vision. Just a few examples are: - Visualizing feature maps. - Extracting features to compute image descriptors for tasks like facial recognition, copy-detection, or image retrieval. - Passing selected features to downstream sub-networks for end-to-end training with a specific task in mind. For example, passing a hierarchy of features to a Feature Pyramid Network with object detection heads. Torchvision provides :func:`create_feature_extractor` for this purpose. It works by following roughly these steps: 1. Symbolically tracing the model to get a graphical representation of how it transforms the input, step by step. 2. Setting the user-selected graph nodes as outputs. 3. Removing all redundant nodes (anything downstream of the output nodes). 4. Generating python code from the resulting graph and bundling that into a PyTorch module together with the graph itself. | The `torch.fx documentation `_ provides a more general and detailed explanation of the above procedure and the inner workings of the symbolic tracing. .. _about-node-names: **About Node Names** In order to specify which nodes should be output nodes for extracted features, one should be familiar with the node naming convention used here (which differs slightly from that used in ``torch.fx``). A node name is specified as a ``.`` separated path walking the module hierarchy from top level module down to leaf operation or leaf module. For instance ``"layer4.2.relu"`` in ResNet-50 represents the output of the ReLU of the 2nd block of the 4th layer of the ``ResNet`` module. Here are some finer points to keep in mind: - When specifying node names for :func:`create_feature_extractor`, you may provide a truncated version of a node name as a shortcut. To see how this works, try creating a ResNet-50 model and printing the node names with ``train_nodes, _ = get_graph_node_names(model) print(train_nodes)`` and observe that the last node pertaining to ``layer4`` is ``"layer4.2.relu_2"``. One may specify ``"layer4.2.relu_2"`` as the return node, or just ``"layer4"`` as this, by convention, refers to the last node (in order of execution) of ``layer4``. - If a certain module or operation is repeated more than once, node names get an additional ``_{int}`` postfix to disambiguate. For instance, maybe the addition (``+``) operation is used three times in the same ``forward`` method. Then there would be ``"path.to.module.add"``, ``"path.to.module.add_1"``, ``"path.to.module.add_2"``. The counter is maintained within the scope of the direct parent. So in ResNet-50 there is a ``"layer4.1.add"`` and a ``"layer4.2.add"``. Because the addition operations reside in different blocks, there is no need for a postfix to disambiguate. **An Example** Here is an example of how we might extract features for MaskRCNN: .. code-block:: python import torch from torchvision.models import resnet50 from torchvision.models.feature_extraction import get_graph_node_names from torchvision.models.feature_extraction import create_feature_extractor from torchvision.models.detection.mask_rcnn import MaskRCNN from torchvision.models.detection.backbone_utils import LastLevelMaxPool from torchvision.ops.feature_pyramid_network import FeaturePyramidNetwork # To assist you in designing the feature extractor you may want to print out # the available nodes for resnet50. m = resnet50() train_nodes, eval_nodes = get_graph_node_names(resnet50()) # The lists returned, are the names of all the graph nodes (in order of # execution) for the input model traced in train mode and in eval mode # respectively. You'll find that `train_nodes` and `eval_nodes` are the same # for this example. But if the model contains control flow that's dependent # on the training mode, they may be different. # To specify the nodes you want to extract, you could select the final node # that appears in each of the main layers: return_nodes = { # node_name: user-specified key for output dict 'layer1.2.relu_2': 'layer1', 'layer2.3.relu_2': 'layer2', 'layer3.5.relu_2': 'layer3', 'layer4.2.relu_2': 'layer4', } # But `create_feature_extractor` can also accept truncated node specifications # like "layer1", as it will just pick the last node that's a descendent of # of the specification. (Tip: be careful with this, especially when a layer # has multiple outputs. It's not always guaranteed that the last operation # performed is the one that corresponds to the output you desire. You should # consult the source code for the input model to confirm.) return_nodes = { 'layer1': 'layer1', 'layer2': 'layer2', 'layer3': 'layer3', 'layer4': 'layer4', } # Now you can build the feature extractor. This returns a module whose forward # method returns a dictionary like: # { # 'layer1': output of layer 1, # 'layer2': output of layer 2, # 'layer3': output of layer 3, # 'layer4': output of layer 4, # } create_feature_extractor(m, return_nodes=return_nodes) # Let's put all that together to wrap resnet50 with MaskRCNN # MaskRCNN requires a backbone with an attached FPN class Resnet50WithFPN(torch.nn.Module): def __init__(self): super(Resnet50WithFPN, self).__init__() # Get a resnet50 backbone m = resnet50() # Extract 4 main layers (note: MaskRCNN needs this particular name # mapping for return nodes) self.body = create_feature_extractor( m, return_nodes={f'layer{k}': str(v) for v, k in enumerate([1, 2, 3, 4])}) # Dry run to get number of channels for FPN inp = torch.randn(2, 3, 224, 224) with torch.no_grad(): out = self.body(inp) in_channels_list = [o.shape[1] for o in out.values()] # Build FPN self.out_channels = 256 self.fpn = FeaturePyramidNetwork( in_channels_list, out_channels=self.out_channels, extra_blocks=LastLevelMaxPool()) def forward(self, x): x = self.body(x) x = self.fpn(x) return x # Now we can build our model! model = MaskRCNN(Resnet50WithFPN(), num_classes=91).eval() API Reference ------------- .. autosummary:: :toctree: generated/ :template: function.rst create_feature_extractor get_graph_node_names vision-0.19.1/docs/source/index.rst000066400000000000000000000036351466211133600172140ustar00rootroot00000000000000torchvision =========== This library is part of the `PyTorch `_ project. PyTorch is an open source machine learning framework. Features described in this documentation are classified by release status: *Stable:* These features will be maintained long-term and there should generally be no major performance limitations or gaps in documentation. We also expect to maintain backwards compatibility (although breaking changes can happen and notice will be given one release ahead of time). *Beta:* Features are tagged as Beta because the API may change based on user feedback, because the performance needs to improve, or because coverage across operators is not yet complete. For Beta features, we are committing to seeing the feature through to the Stable classification. We are not, however, committing to backwards compatibility. *Prototype:* These features are typically not available as part of binary distributions like PyPI or Conda, except sometimes behind run-time flags, and are at an early stage for feedback and testing. The :mod:`torchvision` package consists of popular datasets, model architectures, and common image transformations for computer vision. .. toctree:: :maxdepth: 2 :caption: Package Reference transforms tv_tensors models datasets utils ops io feature_extraction .. toctree:: :maxdepth: 1 :caption: Examples and training references auto_examples/index training_references .. automodule:: torchvision :members: .. toctree:: :maxdepth: 1 :caption: PyTorch Libraries PyTorch torchaudio torchtext torchvision TorchElastic TorchServe PyTorch on XLA Devices Indices ------- * :ref:`genindex` vision-0.19.1/docs/source/io.rst000066400000000000000000000042761466211133600165160ustar00rootroot00000000000000Decoding / Encoding images and videos ===================================== .. currentmodule:: torchvision.io The :mod:`torchvision.io` package provides functions for performing IO operations. They are currently specific to reading and writing images and videos. Images ------ .. autosummary:: :toctree: generated/ :template: function.rst read_image decode_image encode_jpeg decode_jpeg write_jpeg decode_gif encode_png decode_png write_png read_file write_file .. autosummary:: :toctree: generated/ :template: class.rst ImageReadMode Video ----- .. autosummary:: :toctree: generated/ :template: function.rst read_video read_video_timestamps write_video Fine-grained video API ^^^^^^^^^^^^^^^^^^^^^^ In addition to the :mod:`read_video` function, we provide a high-performance lower-level API for more fine-grained control compared to the :mod:`read_video` function. It does all this whilst fully supporting torchscript. .. betastatus:: fine-grained video API .. autosummary:: :toctree: generated/ :template: class.rst VideoReader Example of inspecting a video: .. code:: python import torchvision video_path = "path to a test video" # Constructor allocates memory and a threaded decoder # instance per video. At the moment it takes two arguments: # path to the video file, and a wanted stream. reader = torchvision.io.VideoReader(video_path, "video") # The information about the video can be retrieved using the # `get_metadata()` method. It returns a dictionary for every stream, with # duration and other relevant metadata (often frame rate) reader_md = reader.get_metadata() # metadata is structured as a dict of dicts with following structure # {"stream_type": {"attribute": [attribute per stream]}} # # following would print out the list of frame rates for every present video stream print(reader_md["video"]["fps"]) # we explicitly select the stream we would like to operate on. In # the constructor we select a default video stream, but # in practice, we can set whichever stream we would like video.set_current_stream("video:0") vision-0.19.1/docs/source/models.rst000066400000000000000000000420641466211133600173670ustar00rootroot00000000000000.. _models: Models and pre-trained weights ############################## The ``torchvision.models`` subpackage contains definitions of models for addressing different tasks, including: image classification, pixelwise semantic segmentation, object detection, instance segmentation, person keypoint detection, video classification, and optical flow. General information on pre-trained weights ========================================== TorchVision offers pre-trained weights for every provided architecture, using the PyTorch :mod:`torch.hub`. Instancing a pre-trained model will download its weights to a cache directory. This directory can be set using the `TORCH_HOME` environment variable. See :func:`torch.hub.load_state_dict_from_url` for details. .. note:: The pre-trained models provided in this library may have their own licenses or terms and conditions derived from the dataset used for training. It is your responsibility to determine whether you have permission to use the models for your use case. .. note :: Backward compatibility is guaranteed for loading a serialized ``state_dict`` to the model created using old PyTorch version. On the contrary, loading entire saved models or serialized ``ScriptModules`` (serialized using older versions of PyTorch) may not preserve the historic behaviour. Refer to the following `documentation `_ Initializing pre-trained models ------------------------------- As of v0.13, TorchVision offers a new `Multi-weight support API `_ for loading different weights to the existing model builder methods: .. code:: python from torchvision.models import resnet50, ResNet50_Weights # Old weights with accuracy 76.130% resnet50(weights=ResNet50_Weights.IMAGENET1K_V1) # New weights with accuracy 80.858% resnet50(weights=ResNet50_Weights.IMAGENET1K_V2) # Best available weights (currently alias for IMAGENET1K_V2) # Note that these weights may change across versions resnet50(weights=ResNet50_Weights.DEFAULT) # Strings are also supported resnet50(weights="IMAGENET1K_V2") # No weights - random initialization resnet50(weights=None) Migrating to the new API is very straightforward. The following method calls between the 2 APIs are all equivalent: .. code:: python from torchvision.models import resnet50, ResNet50_Weights # Using pretrained weights: resnet50(weights=ResNet50_Weights.IMAGENET1K_V1) resnet50(weights="IMAGENET1K_V1") resnet50(pretrained=True) # deprecated resnet50(True) # deprecated # Using no weights: resnet50(weights=None) resnet50() resnet50(pretrained=False) # deprecated resnet50(False) # deprecated Note that the ``pretrained`` parameter is now deprecated, using it will emit warnings and will be removed on v0.15. Using the pre-trained models ---------------------------- Before using the pre-trained models, one must preprocess the image (resize with right resolution/interpolation, apply inference transforms, rescale the values etc). There is no standard way to do this as it depends on how a given model was trained. It can vary across model families, variants or even weight versions. Using the correct preprocessing method is critical and failing to do so may lead to decreased accuracy or incorrect outputs. All the necessary information for the inference transforms of each pre-trained model is provided on its weights documentation. To simplify inference, TorchVision bundles the necessary preprocessing transforms into each model weight. These are accessible via the ``weight.transforms`` attribute: .. code:: python # Initialize the Weight Transforms weights = ResNet50_Weights.DEFAULT preprocess = weights.transforms() # Apply it to the input image img_transformed = preprocess(img) Some models use modules which have different training and evaluation behavior, such as batch normalization. To switch between these modes, use ``model.train()`` or ``model.eval()`` as appropriate. See :meth:`~torch.nn.Module.train` or :meth:`~torch.nn.Module.eval` for details. .. code:: python # Initialize model weights = ResNet50_Weights.DEFAULT model = resnet50(weights=weights) # Set model to eval mode model.eval() Listing and retrieving available models --------------------------------------- As of v0.14, TorchVision offers a new mechanism which allows listing and retrieving models and weights by their names. Here are a few examples on how to use them: .. code:: python # List available models all_models = list_models() classification_models = list_models(module=torchvision.models) # Initialize models m1 = get_model("mobilenet_v3_large", weights=None) m2 = get_model("quantized_mobilenet_v3_large", weights="DEFAULT") # Fetch weights weights = get_weight("MobileNet_V3_Large_QuantizedWeights.DEFAULT") assert weights == MobileNet_V3_Large_QuantizedWeights.DEFAULT weights_enum = get_model_weights("quantized_mobilenet_v3_large") assert weights_enum == MobileNet_V3_Large_QuantizedWeights weights_enum2 = get_model_weights(torchvision.models.quantization.mobilenet_v3_large) assert weights_enum == weights_enum2 Here are the available public functions to retrieve models and their corresponding weights: .. currentmodule:: torchvision.models .. autosummary:: :toctree: generated/ :template: function.rst get_model get_model_weights get_weight list_models Using models from Hub --------------------- Most pre-trained models can be accessed directly via PyTorch Hub without having TorchVision installed: .. code:: python import torch # Option 1: passing weights param as string model = torch.hub.load("pytorch/vision", "resnet50", weights="IMAGENET1K_V2") # Option 2: passing weights param as enum weights = torch.hub.load("pytorch/vision", "get_weight", weights="ResNet50_Weights.IMAGENET1K_V2") model = torch.hub.load("pytorch/vision", "resnet50", weights=weights) You can also retrieve all the available weights of a specific model via PyTorch Hub by doing: .. code:: python import torch weight_enum = torch.hub.load("pytorch/vision", "get_model_weights", name="resnet50") print([weight for weight in weight_enum]) The only exception to the above are the detection models included on :mod:`torchvision.models.detection`. These models require TorchVision to be installed because they depend on custom C++ operators. Classification ============== .. currentmodule:: torchvision.models The following classification models are available, with or without pre-trained weights: .. toctree:: :maxdepth: 1 models/alexnet models/convnext models/densenet models/efficientnet models/efficientnetv2 models/googlenet models/inception models/maxvit models/mnasnet models/mobilenetv2 models/mobilenetv3 models/regnet models/resnet models/resnext models/shufflenetv2 models/squeezenet models/swin_transformer models/vgg models/vision_transformer models/wide_resnet | Here is an example of how to use the pre-trained image classification models: .. code:: python from torchvision.io import read_image from torchvision.models import resnet50, ResNet50_Weights img = read_image("test/assets/encode_jpeg/grace_hopper_517x606.jpg") # Step 1: Initialize model with the best available weights weights = ResNet50_Weights.DEFAULT model = resnet50(weights=weights) model.eval() # Step 2: Initialize the inference transforms preprocess = weights.transforms() # Step 3: Apply inference preprocessing transforms batch = preprocess(img).unsqueeze(0) # Step 4: Use the model and print the predicted category prediction = model(batch).squeeze(0).softmax(0) class_id = prediction.argmax().item() score = prediction[class_id].item() category_name = weights.meta["categories"][class_id] print(f"{category_name}: {100 * score:.1f}%") The classes of the pre-trained model outputs can be found at ``weights.meta["categories"]``. Table of all available classification weights --------------------------------------------- Accuracies are reported on ImageNet-1K using single crops: .. include:: generated/classification_table.rst Quantized models ---------------- .. currentmodule:: torchvision.models.quantization The following architectures provide support for INT8 quantized models, with or without pre-trained weights: .. toctree:: :maxdepth: 1 models/googlenet_quant models/inception_quant models/mobilenetv2_quant models/mobilenetv3_quant models/resnet_quant models/resnext_quant models/shufflenetv2_quant | Here is an example of how to use the pre-trained quantized image classification models: .. code:: python from torchvision.io import read_image from torchvision.models.quantization import resnet50, ResNet50_QuantizedWeights img = read_image("test/assets/encode_jpeg/grace_hopper_517x606.jpg") # Step 1: Initialize model with the best available weights weights = ResNet50_QuantizedWeights.DEFAULT model = resnet50(weights=weights, quantize=True) model.eval() # Step 2: Initialize the inference transforms preprocess = weights.transforms() # Step 3: Apply inference preprocessing transforms batch = preprocess(img).unsqueeze(0) # Step 4: Use the model and print the predicted category prediction = model(batch).squeeze(0).softmax(0) class_id = prediction.argmax().item() score = prediction[class_id].item() category_name = weights.meta["categories"][class_id] print(f"{category_name}: {100 * score}%") The classes of the pre-trained model outputs can be found at ``weights.meta["categories"]``. Table of all available quantized classification weights ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Accuracies are reported on ImageNet-1K using single crops: .. include:: generated/classification_quant_table.rst Semantic Segmentation ===================== .. currentmodule:: torchvision.models.segmentation .. betastatus:: segmentation module The following semantic segmentation models are available, with or without pre-trained weights: .. toctree:: :maxdepth: 1 models/deeplabv3 models/fcn models/lraspp | Here is an example of how to use the pre-trained semantic segmentation models: .. code:: python from torchvision.io.image import read_image from torchvision.models.segmentation import fcn_resnet50, FCN_ResNet50_Weights from torchvision.transforms.functional import to_pil_image img = read_image("gallery/assets/dog1.jpg") # Step 1: Initialize model with the best available weights weights = FCN_ResNet50_Weights.DEFAULT model = fcn_resnet50(weights=weights) model.eval() # Step 2: Initialize the inference transforms preprocess = weights.transforms() # Step 3: Apply inference preprocessing transforms batch = preprocess(img).unsqueeze(0) # Step 4: Use the model and visualize the prediction prediction = model(batch)["out"] normalized_masks = prediction.softmax(dim=1) class_to_idx = {cls: idx for (idx, cls) in enumerate(weights.meta["categories"])} mask = normalized_masks[0, class_to_idx["dog"]] to_pil_image(mask).show() The classes of the pre-trained model outputs can be found at ``weights.meta["categories"]``. The output format of the models is illustrated in :ref:`semantic_seg_output`. Table of all available semantic segmentation weights ---------------------------------------------------- All models are evaluated a subset of COCO val2017, on the 20 categories that are present in the Pascal VOC dataset: .. include:: generated/segmentation_table.rst .. _object_det_inst_seg_pers_keypoint_det: Object Detection, Instance Segmentation and Person Keypoint Detection ===================================================================== The pre-trained models for detection, instance segmentation and keypoint detection are initialized with the classification models in torchvision. The models expect a list of ``Tensor[C, H, W]``. Check the constructor of the models for more information. .. betastatus:: detection module Object Detection ---------------- .. currentmodule:: torchvision.models.detection The following object detection models are available, with or without pre-trained weights: .. toctree:: :maxdepth: 1 models/faster_rcnn models/fcos models/retinanet models/ssd models/ssdlite | Here is an example of how to use the pre-trained object detection models: .. code:: python from torchvision.io.image import read_image from torchvision.models.detection import fasterrcnn_resnet50_fpn_v2, FasterRCNN_ResNet50_FPN_V2_Weights from torchvision.utils import draw_bounding_boxes from torchvision.transforms.functional import to_pil_image img = read_image("test/assets/encode_jpeg/grace_hopper_517x606.jpg") # Step 1: Initialize model with the best available weights weights = FasterRCNN_ResNet50_FPN_V2_Weights.DEFAULT model = fasterrcnn_resnet50_fpn_v2(weights=weights, box_score_thresh=0.9) model.eval() # Step 2: Initialize the inference transforms preprocess = weights.transforms() # Step 3: Apply inference preprocessing transforms batch = [preprocess(img)] # Step 4: Use the model and visualize the prediction prediction = model(batch)[0] labels = [weights.meta["categories"][i] for i in prediction["labels"]] box = draw_bounding_boxes(img, boxes=prediction["boxes"], labels=labels, colors="red", width=4, font_size=30) im = to_pil_image(box.detach()) im.show() The classes of the pre-trained model outputs can be found at ``weights.meta["categories"]``. For details on how to plot the bounding boxes of the models, you may refer to :ref:`instance_seg_output`. Table of all available Object detection weights ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Box MAPs are reported on COCO val2017: .. include:: generated/detection_table.rst Instance Segmentation --------------------- .. currentmodule:: torchvision.models.detection The following instance segmentation models are available, with or without pre-trained weights: .. toctree:: :maxdepth: 1 models/mask_rcnn | For details on how to plot the masks of the models, you may refer to :ref:`instance_seg_output`. Table of all available Instance segmentation weights ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Box and Mask MAPs are reported on COCO val2017: .. include:: generated/instance_segmentation_table.rst Keypoint Detection ------------------ .. currentmodule:: torchvision.models.detection The following person keypoint detection models are available, with or without pre-trained weights: .. toctree:: :maxdepth: 1 models/keypoint_rcnn | The classes of the pre-trained model outputs can be found at ``weights.meta["keypoint_names"]``. For details on how to plot the bounding boxes of the models, you may refer to :ref:`keypoint_output`. Table of all available Keypoint detection weights ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Box and Keypoint MAPs are reported on COCO val2017: .. include:: generated/detection_keypoint_table.rst Video Classification ==================== .. currentmodule:: torchvision.models.video .. betastatus:: video module The following video classification models are available, with or without pre-trained weights: .. toctree:: :maxdepth: 1 models/video_mvit models/video_resnet models/video_s3d models/video_swin_transformer | Here is an example of how to use the pre-trained video classification models: .. code:: python from torchvision.io.video import read_video from torchvision.models.video import r3d_18, R3D_18_Weights vid, _, _ = read_video("test/assets/videos/v_SoccerJuggling_g23_c01.avi", output_format="TCHW") vid = vid[:32] # optionally shorten duration # Step 1: Initialize model with the best available weights weights = R3D_18_Weights.DEFAULT model = r3d_18(weights=weights) model.eval() # Step 2: Initialize the inference transforms preprocess = weights.transforms() # Step 3: Apply inference preprocessing transforms batch = preprocess(vid).unsqueeze(0) # Step 4: Use the model and print the predicted category prediction = model(batch).squeeze(0).softmax(0) label = prediction.argmax().item() score = prediction[label].item() category_name = weights.meta["categories"][label] print(f"{category_name}: {100 * score}%") The classes of the pre-trained model outputs can be found at ``weights.meta["categories"]``. Table of all available video classification weights --------------------------------------------------- Accuracies are reported on Kinetics-400 using single crops for clip length 16: .. include:: generated/video_table.rst Optical Flow ============ .. currentmodule:: torchvision.models.optical_flow The following Optical Flow models are available, with or without pre-trained .. toctree:: :maxdepth: 1 models/raft vision-0.19.1/docs/source/models/000077500000000000000000000000001466211133600166275ustar00rootroot00000000000000vision-0.19.1/docs/source/models/alexnet.rst000066400000000000000000000016461466211133600210300ustar00rootroot00000000000000AlexNet ======= .. currentmodule:: torchvision.models The AlexNet model was originally introduced in the `ImageNet Classification with Deep Convolutional Neural Networks `__ paper. The implemented architecture is slightly different from the original one, and is based on `One weird trick for parallelizing convolutional neural networks `__. Model builders -------------- The following model builders can be used to instantiate an AlexNet model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.alexnet.AlexNet`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst alexnet vision-0.19.1/docs/source/models/convnext.rst000066400000000000000000000012641466211133600212300ustar00rootroot00000000000000ConvNeXt ======== .. currentmodule:: torchvision.models The ConvNeXt model is based on the `A ConvNet for the 2020s `_ paper. Model builders -------------- The following model builders can be used to instantiate a ConvNeXt model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.convnext.ConvNeXt`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst convnext_tiny convnext_small convnext_base convnext_large vision-0.19.1/docs/source/models/deeplabv3.rst000066400000000000000000000015231466211133600212270ustar00rootroot00000000000000DeepLabV3 ========= .. currentmodule:: torchvision.models.segmentation The DeepLabV3 model is based on the `Rethinking Atrous Convolution for Semantic Image Segmentation `__ paper. .. betastatus:: segmentation module Model builders -------------- The following model builders can be used to instantiate a DeepLabV3 model with different backbones, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.segmentation.deeplabv3.DeepLabV3`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst deeplabv3_mobilenet_v3_large deeplabv3_resnet50 deeplabv3_resnet101 vision-0.19.1/docs/source/models/densenet.rst000066400000000000000000000013011466211133600211610ustar00rootroot00000000000000DenseNet ======== .. currentmodule:: torchvision.models The DenseNet model is based on the `Densely Connected Convolutional Networks `_ paper. Model builders -------------- The following model builders can be used to instantiate a DenseNet model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.densenet.DenseNet`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst densenet121 densenet161 densenet169 densenet201 vision-0.19.1/docs/source/models/efficientnet.rst000066400000000000000000000015371466211133600220320ustar00rootroot00000000000000EfficientNet ============ .. currentmodule:: torchvision.models The EfficientNet model is based on the `EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks `__ paper. Model builders -------------- The following model builders can be used to instantiate an EfficientNet model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.efficientnet.EfficientNet`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst efficientnet_b0 efficientnet_b1 efficientnet_b2 efficientnet_b3 efficientnet_b4 efficientnet_b5 efficientnet_b6 efficientnet_b7 vision-0.19.1/docs/source/models/efficientnetv2.rst000066400000000000000000000013631466211133600222770ustar00rootroot00000000000000EfficientNetV2 ============== .. currentmodule:: torchvision.models The EfficientNetV2 model is based on the `EfficientNetV2: Smaller Models and Faster Training `__ paper. Model builders -------------- The following model builders can be used to instantiate an EfficientNetV2 model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.efficientnet.EfficientNet`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst efficientnet_v2_s efficientnet_v2_m efficientnet_v2_l vision-0.19.1/docs/source/models/faster_rcnn.rst000066400000000000000000000016211466211133600216650ustar00rootroot00000000000000Faster R-CNN ============ .. currentmodule:: torchvision.models.detection The Faster R-CNN model is based on the `Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks `__ paper. .. betastatus:: detection module Model builders -------------- The following model builders can be used to instantiate a Faster R-CNN model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.detection.faster_rcnn.FasterRCNN`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst fasterrcnn_resnet50_fpn fasterrcnn_resnet50_fpn_v2 fasterrcnn_mobilenet_v3_large_fpn fasterrcnn_mobilenet_v3_large_320_fpn vision-0.19.1/docs/source/models/fcn.rst000066400000000000000000000013271466211133600201320ustar00rootroot00000000000000FCN === .. currentmodule:: torchvision.models.segmentation The FCN model is based on the `Fully Convolutional Networks for Semantic Segmentation `__ paper. .. betastatus:: segmentation module Model builders -------------- The following model builders can be used to instantiate a FCN model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.segmentation.FCN`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst fcn_resnet50 fcn_resnet101 vision-0.19.1/docs/source/models/fcos.rst000066400000000000000000000013141466211133600203120ustar00rootroot00000000000000FCOS ========= .. currentmodule:: torchvision.models.detection The FCOS model is based on the `FCOS: Fully Convolutional One-Stage Object Detection `__ paper. .. betastatus:: detection module Model builders -------------- The following model builders can be used to instantiate a FCOS model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.detection.fcos.FCOS`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst fcos_resnet50_fpn vision-0.19.1/docs/source/models/googlenet.rst000066400000000000000000000012141466211133600213420ustar00rootroot00000000000000GoogLeNet ========= .. currentmodule:: torchvision.models The GoogleNet model is based on the `Going Deeper with Convolutions `__ paper. Model builders -------------- The following model builders can be used to instantiate a GoogLeNet model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.googlenet.GoogLeNet`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst googlenet vision-0.19.1/docs/source/models/googlenet_quant.rst000066400000000000000000000013461466211133600225600ustar00rootroot00000000000000Quantized GoogLeNet =================== .. currentmodule:: torchvision.models.quantization The Quantized GoogleNet model is based on the `Going Deeper with Convolutions `__ paper. Model builders -------------- The following model builders can be used to instantiate a quantized GoogLeNet model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.quantization.googlenet.QuantizableGoogLeNet`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst googlenet vision-0.19.1/docs/source/models/inception.rst000066400000000000000000000012671466211133600213570ustar00rootroot00000000000000Inception V3 ============ .. currentmodule:: torchvision.models The InceptionV3 model is based on the `Rethinking the Inception Architecture for Computer Vision `__ paper. Model builders -------------- The following model builders can be used to instantiate an InceptionV3 model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.inception.Inception3`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst inception_v3 vision-0.19.1/docs/source/models/inception_quant.rst000066400000000000000000000014121466211133600225570ustar00rootroot00000000000000Quantized InceptionV3 ===================== .. currentmodule:: torchvision.models.quantization The Quantized Inception model is based on the `Rethinking the Inception Architecture for Computer Vision `__ paper. Model builders -------------- The following model builders can be used to instantiate a quantized Inception model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.quantization.inception.QuantizableInception3`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst inception_v3 vision-0.19.1/docs/source/models/keypoint_rcnn.rst000066400000000000000000000013331466211133600222430ustar00rootroot00000000000000Keypoint R-CNN ============== .. currentmodule:: torchvision.models.detection The Keypoint R-CNN model is based on the `Mask R-CNN `__ paper. .. betastatus:: detection module Model builders -------------- The following model builders can be used to instantiate a Keypoint R-CNN model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.detection.KeypointRCNN`` base class. Please refer to the `source code `__ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst keypointrcnn_resnet50_fpn vision-0.19.1/docs/source/models/lraspp.rst000066400000000000000000000013031466211133600206570ustar00rootroot00000000000000LRASPP ====== .. currentmodule:: torchvision.models.segmentation The LRASPP model is based on the `Searching for MobileNetV3 `_ paper. .. betastatus:: segmentation module Model builders -------------- The following model builders can be used to instantiate a FCN model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.segmentation.LRASPP`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst lraspp_mobilenet_v3_large vision-0.19.1/docs/source/models/mask_rcnn.rst000066400000000000000000000013451466211133600213370ustar00rootroot00000000000000Mask R-CNN ========== .. currentmodule:: torchvision.models.detection The Mask R-CNN model is based on the `Mask R-CNN `__ paper. .. betastatus:: detection module Model builders -------------- The following model builders can be used to instantiate a Mask R-CNN model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.detection.mask_rcnn.MaskRCNN`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst maskrcnn_resnet50_fpn maskrcnn_resnet50_fpn_v2 vision-0.19.1/docs/source/models/maxvit.rst000066400000000000000000000012271466211133600206730ustar00rootroot00000000000000MaxVit =============== .. currentmodule:: torchvision.models The MaxVit transformer models are based on the `MaxViT: Multi-Axis Vision Transformer `__ paper. Model builders -------------- The following model builders can be used to instantiate an MaxVit model with and without pre-trained weights. All the model builders internally rely on the ``torchvision.models.maxvit.MaxVit`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst maxvit_t vision-0.19.1/docs/source/models/mnasnet.rst000066400000000000000000000012561466211133600210320ustar00rootroot00000000000000MNASNet ======= .. currentmodule:: torchvision.models The MNASNet model is based on the `MnasNet: Platform-Aware Neural Architecture Search for Mobile `__ paper. Model builders -------------- The following model builders can be used to instantiate an MNASNet model. All the model builders internally rely on the ``torchvision.models.mnasnet.MNASNet`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst mnasnet0_5 mnasnet0_75 mnasnet1_0 mnasnet1_3 vision-0.19.1/docs/source/models/mobilenetv2.rst000066400000000000000000000012711466211133600216100ustar00rootroot00000000000000MobileNet V2 ============ .. currentmodule:: torchvision.models The MobileNet V2 model is based on the `MobileNetV2: Inverted Residuals and Linear Bottlenecks `__ paper. Model builders -------------- The following model builders can be used to instantiate a MobileNetV2 model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.mobilenetv2.MobileNetV2`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst mobilenet_v2 vision-0.19.1/docs/source/models/mobilenetv2_quant.rst000066400000000000000000000014231466211133600230170ustar00rootroot00000000000000Quantized MobileNet V2 ====================== .. currentmodule:: torchvision.models.quantization The Quantized MobileNet V2 model is based on the `MobileNetV2: Inverted Residuals and Linear Bottlenecks `__ paper. Model builders -------------- The following model builders can be used to instantiate a quantized MobileNetV2 model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.quantization.mobilenetv2.QuantizableMobileNetV2`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst mobilenet_v2 vision-0.19.1/docs/source/models/mobilenetv3.rst000066400000000000000000000012711466211133600216110ustar00rootroot00000000000000MobileNet V3 ============ .. currentmodule:: torchvision.models The MobileNet V3 model is based on the `Searching for MobileNetV3 `__ paper. Model builders -------------- The following model builders can be used to instantiate a MobileNetV3 model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.mobilenetv3.MobileNetV3`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst mobilenet_v3_large mobilenet_v3_small vision-0.19.1/docs/source/models/mobilenetv3_quant.rst000066400000000000000000000013741466211133600230250ustar00rootroot00000000000000Quantized MobileNet V3 ====================== .. currentmodule:: torchvision.models.quantization The Quantized MobileNet V3 model is based on the `Searching for MobileNetV3 `__ paper. Model builders -------------- The following model builders can be used to instantiate a quantized MobileNetV3 model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.quantization.mobilenetv3.QuantizableMobileNetV3`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst mobilenet_v3_large vision-0.19.1/docs/source/models/raft.rst000066400000000000000000000012711466211133600203160ustar00rootroot00000000000000RAFT ==== .. currentmodule:: torchvision.models.optical_flow The RAFT model is based on the `RAFT: Recurrent All-Pairs Field Transforms for Optical Flow `__ paper. Model builders -------------- The following model builders can be used to instantiate a RAFT model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.optical_flow.RAFT`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst raft_large raft_small vision-0.19.1/docs/source/models/regnet.rst000066400000000000000000000015561466211133600206540ustar00rootroot00000000000000RegNet ====== .. currentmodule:: torchvision.models The RegNet model is based on the `Designing Network Design Spaces `_ paper. Model builders -------------- The following model builders can be used to instantiate a RegNet model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.regnet.RegNet`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst regnet_y_400mf regnet_y_800mf regnet_y_1_6gf regnet_y_3_2gf regnet_y_8gf regnet_y_16gf regnet_y_32gf regnet_y_128gf regnet_x_400mf regnet_x_800mf regnet_x_1_6gf regnet_x_3_2gf regnet_x_8gf regnet_x_16gf regnet_x_32gf vision-0.19.1/docs/source/models/resnet.rst000066400000000000000000000020101466211133600206520ustar00rootroot00000000000000ResNet ====== .. currentmodule:: torchvision.models The ResNet model is based on the `Deep Residual Learning for Image Recognition `_ paper. .. note:: The bottleneck of TorchVision places the stride for downsampling to the second 3x3 convolution while the original paper places it to the first 1x1 convolution. This variant improves the accuracy and is known as `ResNet V1.5 `_. Model builders -------------- The following model builders can be used to instantiate a ResNet model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.resnet.ResNet`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst resnet18 resnet34 resnet50 resnet101 resnet152 vision-0.19.1/docs/source/models/resnet_quant.rst000066400000000000000000000013531466211133600220730ustar00rootroot00000000000000Quantized ResNet ================ .. currentmodule:: torchvision.models.quantization The Quantized ResNet model is based on the `Deep Residual Learning for Image Recognition `_ paper. Model builders -------------- The following model builders can be used to instantiate a quantized ResNet model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.quantization.resnet.QuantizableResNet`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst resnet18 resnet50 vision-0.19.1/docs/source/models/resnext.rst000066400000000000000000000013141466211133600210500ustar00rootroot00000000000000ResNeXt ======= .. currentmodule:: torchvision.models The ResNext model is based on the `Aggregated Residual Transformations for Deep Neural Networks `__ paper. Model builders -------------- The following model builders can be used to instantiate a ResNext model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.resnet.ResNet`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst resnext50_32x4d resnext101_32x8d resnext101_64x4d vision-0.19.1/docs/source/models/resnext_quant.rst000066400000000000000000000014221466211133600222600ustar00rootroot00000000000000Quantized ResNeXt ================= .. currentmodule:: torchvision.models.quantization The quantized ResNext model is based on the `Aggregated Residual Transformations for Deep Neural Networks `__ paper. Model builders -------------- The following model builders can be used to instantiate a quantized ResNeXt model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.quantization.resnet.QuantizableResNet`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst resnext101_32x8d resnext101_64x4d vision-0.19.1/docs/source/models/retinanet.rst000066400000000000000000000013761466211133600213610ustar00rootroot00000000000000RetinaNet ========= .. currentmodule:: torchvision.models.detection The RetinaNet model is based on the `Focal Loss for Dense Object Detection `__ paper. .. betastatus:: detection module Model builders -------------- The following model builders can be used to instantiate a RetinaNet model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.detection.retinanet.RetinaNet`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst retinanet_resnet50_fpn retinanet_resnet50_fpn_v2 vision-0.19.1/docs/source/models/shufflenetv2.rst000066400000000000000000000014361466211133600220000ustar00rootroot00000000000000ShuffleNet V2 ============= .. currentmodule:: torchvision.models The ShuffleNet V2 model is based on the `ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design `__ paper. Model builders -------------- The following model builders can be used to instantiate a ShuffleNetV2 model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.shufflenetv2.ShuffleNetV2`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst shufflenet_v2_x0_5 shufflenet_v2_x1_0 shufflenet_v2_x1_5 shufflenet_v2_x2_0 vision-0.19.1/docs/source/models/shufflenetv2_quant.rst000066400000000000000000000015701466211133600232070ustar00rootroot00000000000000Quantized ShuffleNet V2 ======================= .. currentmodule:: torchvision.models.quantization The Quantized ShuffleNet V2 model is based on the `ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design `__ paper. Model builders -------------- The following model builders can be used to instantiate a quantized ShuffleNetV2 model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.quantization.shufflenetv2.QuantizableShuffleNetV2`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst shufflenet_v2_x0_5 shufflenet_v2_x1_0 shufflenet_v2_x1_5 shufflenet_v2_x2_0 vision-0.19.1/docs/source/models/squeezenet.rst000066400000000000000000000013361466211133600215540ustar00rootroot00000000000000SqueezeNet ========== .. currentmodule:: torchvision.models The SqueezeNet model is based on the `SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size `__ paper. Model builders -------------- The following model builders can be used to instantiate a SqueezeNet model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.squeezenet.SqueezeNet`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst squeezenet1_0 squeezenet1_1 vision-0.19.1/docs/source/models/ssd.rst000066400000000000000000000012461466211133600201550ustar00rootroot00000000000000SSD === .. currentmodule:: torchvision.models.detection The SSD model is based on the `SSD: Single Shot MultiBox Detector `__ paper. .. betastatus:: detection module Model builders -------------- The following model builders can be used to instantiate a SSD model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.detection.SSD`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst ssd300_vgg16 vision-0.19.1/docs/source/models/ssdlite.rst000066400000000000000000000015641466211133600210360ustar00rootroot00000000000000SSDlite ======= .. currentmodule:: torchvision.models.detection The SSDLite model is based on the `SSD: Single Shot MultiBox Detector `__, `Searching for MobileNetV3 `__ and `MobileNetV2: Inverted Residuals and Linear Bottlenecks `__ papers. .. betastatus:: detection module Model builders -------------- The following model builders can be used to instantiate a SSD Lite model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.detection.ssd.SSD`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst ssdlite320_mobilenet_v3_large vision-0.19.1/docs/source/models/swin_transformer.rst000066400000000000000000000020511466211133600227610ustar00rootroot00000000000000SwinTransformer =============== .. currentmodule:: torchvision.models The SwinTransformer models are based on the `Swin Transformer: Hierarchical Vision Transformer using Shifted Windows `__ paper. SwinTransformer V2 models are based on the `Swin Transformer V2: Scaling Up Capacity and Resolution `__ paper. Model builders -------------- The following model builders can be used to instantiate an SwinTransformer model (original and V2) with and without pre-trained weights. All the model builders internally rely on the ``torchvision.models.swin_transformer.SwinTransformer`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst swin_t swin_s swin_b swin_v2_t swin_v2_s swin_v2_b vision-0.19.1/docs/source/models/vgg.rst000066400000000000000000000013231466211133600201430ustar00rootroot00000000000000VGG === .. currentmodule:: torchvision.models The VGG model is based on the `Very Deep Convolutional Networks for Large-Scale Image Recognition `_ paper. Model builders -------------- The following model builders can be used to instantiate a VGG model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.vgg.VGG`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst vgg11 vgg11_bn vgg13 vgg13_bn vgg16 vgg16_bn vgg19 vgg19_bn vision-0.19.1/docs/source/models/video_mvit.rst000066400000000000000000000014271466211133600215320ustar00rootroot00000000000000Video MViT ========== .. currentmodule:: torchvision.models.video The MViT model is based on the `MViTv2: Improved Multiscale Vision Transformers for Classification and Detection `__ and `Multiscale Vision Transformers `__ papers. Model builders -------------- The following model builders can be used to instantiate a MViT v1 or v2 model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.video.MViT`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst mvit_v1_b mvit_v2_s vision-0.19.1/docs/source/models/video_resnet.rst000066400000000000000000000014001466211133600220420ustar00rootroot00000000000000Video ResNet ============ .. currentmodule:: torchvision.models.video The VideoResNet model is based on the `A Closer Look at Spatiotemporal Convolutions for Action Recognition `__ paper. .. betastatus:: video module Model builders -------------- The following model builders can be used to instantiate a VideoResNet model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.video.resnet.VideoResNet`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst r3d_18 mc3_18 r2plus1d_18 vision-0.19.1/docs/source/models/video_s3d.rst000066400000000000000000000012671466211133600212460ustar00rootroot00000000000000Video S3D ========= .. currentmodule:: torchvision.models.video The S3D model is based on the `Rethinking Spatiotemporal Feature Learning: Speed-Accuracy Trade-offs in Video Classification `__ paper. Model builders -------------- The following model builders can be used to instantiate an S3D model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.video.S3D`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst s3d vision-0.19.1/docs/source/models/video_swin_transformer.rst000066400000000000000000000014121466211133600241470ustar00rootroot00000000000000Video SwinTransformer ===================== .. currentmodule:: torchvision.models.video The Video SwinTransformer model is based on the `Video Swin Transformer `__ paper. .. betastatus:: video module Model builders -------------- The following model builders can be used to instantiate a VideoResNet model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.video.swin_transformer.SwinTransformer3d`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst swin3d_t swin3d_s swin3d_b vision-0.19.1/docs/source/models/vision_transformer.rst000066400000000000000000000014361466211133600233160ustar00rootroot00000000000000VisionTransformer ================= .. currentmodule:: torchvision.models The VisionTransformer model is based on the `An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale `_ paper. Model builders -------------- The following model builders can be used to instantiate a VisionTransformer model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.vision_transformer.VisionTransformer`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst vit_b_16 vit_b_32 vit_l_16 vit_l_32 vit_h_14 vision-0.19.1/docs/source/models/wide_resnet.rst000066400000000000000000000012371466211133600216740ustar00rootroot00000000000000Wide ResNet =========== .. currentmodule:: torchvision.models The Wide ResNet model is based on the `Wide Residual Networks `__ paper. Model builders -------------- The following model builders can be used to instantiate a Wide ResNet model, with or without pre-trained weights. All the model builders internally rely on the ``torchvision.models.resnet.ResNet`` base class. Please refer to the `source code `_ for more details about this class. .. autosummary:: :toctree: generated/ :template: function.rst wide_resnet50_2 wide_resnet101_2 vision-0.19.1/docs/source/ops.rst000066400000000000000000000034561466211133600167070ustar00rootroot00000000000000.. _ops: Operators ========= .. currentmodule:: torchvision.ops :mod:`torchvision.ops` implements operators, losses and layers that are specific for Computer Vision. .. note:: All operators have native support for TorchScript. Detection and Segmentation Operators ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The below operators perform pre-processing as well as post-processing required in object detection and segmentation models. .. autosummary:: :toctree: generated/ :template: function.rst batched_nms masks_to_boxes nms roi_align roi_pool ps_roi_align ps_roi_pool .. autosummary:: :toctree: generated/ :template: class.rst FeaturePyramidNetwork MultiScaleRoIAlign RoIAlign RoIPool PSRoIAlign PSRoIPool Box Operators ~~~~~~~~~~~~~ These utility functions perform various operations on bounding boxes. .. autosummary:: :toctree: generated/ :template: function.rst box_area box_convert box_iou clip_boxes_to_image complete_box_iou distance_box_iou generalized_box_iou remove_small_boxes Losses ~~~~~~ The following vision-specific loss functions are implemented: .. autosummary:: :toctree: generated/ :template: function.rst complete_box_iou_loss distance_box_iou_loss generalized_box_iou_loss sigmoid_focal_loss Layers ~~~~~~ TorchVision provides commonly used building blocks as layers: .. autosummary:: :toctree: generated/ :template: class.rst Conv2dNormActivation Conv3dNormActivation DeformConv2d DropBlock2d DropBlock3d FrozenBatchNorm2d MLP Permute SqueezeExcitation StochasticDepth .. autosummary:: :toctree: generated/ :template: function.rst deform_conv2d drop_block2d drop_block3d stochastic_depth vision-0.19.1/docs/source/training_references.rst000066400000000000000000000030041466211133600221070ustar00rootroot00000000000000Training references =================== On top of the many models, datasets, and image transforms, Torchvision also provides training reference scripts. These are the scripts that we use to train the :ref:`models ` which are then available with pre-trained weights. These scripts are not part of the core package and are instead available `on GitHub `_. We currently provide references for `classification `_, `detection `_, `segmentation `_, `similarity learning `_, and `video classification `_. While these scripts are largely stable, they do not offer backward compatibility guarantees. In general, these scripts rely on the latest (not yet released) pytorch version or the latest torchvision version. This means that to use them, **you might need to install the latest pytorch and torchvision versions**, with e.g.:: conda install pytorch torchvision -c pytorch-nightly If you need to rely on an older stable version of pytorch or torchvision, e.g. torchvision 0.10, then it's safer to use the scripts from that corresponding release on GitHub, namely https://github.com/pytorch/vision/tree/v0.10.0/references. vision-0.19.1/docs/source/transforms.rst000066400000000000000000000452631466211133600203060ustar00rootroot00000000000000.. _transforms: Transforming and augmenting images ================================== .. currentmodule:: torchvision.transforms Torchvision supports common computer vision transformations in the ``torchvision.transforms`` and ``torchvision.transforms.v2`` modules. Transforms can be used to transform or augment data for training or inference of different tasks (image classification, detection, segmentation, video classification). .. code:: python # Image Classification import torch from torchvision.transforms import v2 H, W = 32, 32 img = torch.randint(0, 256, size=(3, H, W), dtype=torch.uint8) transforms = v2.Compose([ v2.RandomResizedCrop(size=(224, 224), antialias=True), v2.RandomHorizontalFlip(p=0.5), v2.ToDtype(torch.float32, scale=True), v2.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]), ]) img = transforms(img) .. code:: python # Detection (re-using imports and transforms from above) from torchvision import tv_tensors img = torch.randint(0, 256, size=(3, H, W), dtype=torch.uint8) boxes = torch.randint(0, H // 2, size=(3, 4)) boxes[:, 2:] += boxes[:, :2] boxes = tv_tensors.BoundingBoxes(boxes, format="XYXY", canvas_size=(H, W)) # The same transforms can be used! img, boxes = transforms(img, boxes) # And you can pass arbitrary input structures output_dict = transforms({"image": img, "boxes": boxes}) Transforms are typically passed as the ``transform`` or ``transforms`` argument to the :ref:`Datasets `. Start here ---------- Whether you're new to Torchvision transforms, or you're already experienced with them, we encourage you to start with :ref:`sphx_glr_auto_examples_transforms_plot_transforms_getting_started.py` in order to learn more about what can be done with the new v2 transforms. Then, browse the sections in below this page for general information and performance tips. The available transforms and functionals are listed in the :ref:`API reference `. More information and tutorials can also be found in our :ref:`example gallery `, e.g. :ref:`sphx_glr_auto_examples_transforms_plot_transforms_e2e.py` or :ref:`sphx_glr_auto_examples_transforms_plot_custom_transforms.py`. .. _conventions: Supported input types and conventions ------------------------------------- Most transformations accept both `PIL `_ images and tensor inputs. Both CPU and CUDA tensors are supported. The result of both backends (PIL or Tensors) should be very close. In general, we recommend relying on the tensor backend :ref:`for performance `. The :ref:`conversion transforms ` may be used to convert to and from PIL images, or for converting dtypes and ranges. Tensor image are expected to be of shape ``(C, H, W)``, where ``C`` is the number of channels, and ``H`` and ``W`` refer to height and width. Most transforms support batched tensor input. A batch of Tensor images is a tensor of shape ``(N, C, H, W)``, where ``N`` is a number of images in the batch. The :ref:`v2 ` transforms generally accept an arbitrary number of leading dimensions ``(..., C, H, W)`` and can handle batched images or batched videos. .. _range_and_dtype: Dtype and expected value range ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The expected range of the values of a tensor image is implicitly defined by the tensor dtype. Tensor images with a float dtype are expected to have values in ``[0, 1]``. Tensor images with an integer dtype are expected to have values in ``[0, MAX_DTYPE]`` where ``MAX_DTYPE`` is the largest value that can be represented in that dtype. Typically, images of dtype ``torch.uint8`` are expected to have values in ``[0, 255]``. Use :class:`~torchvision.transforms.v2.ToDtype` to convert both the dtype and range of the inputs. .. _v1_or_v2: V1 or V2? Which one should I use? --------------------------------- **TL;DR** We recommending using the ``torchvision.transforms.v2`` transforms instead of those in ``torchvision.transforms``. They're faster and they can do more things. Just change the import and you should be good to go. Moving forward, new features and improvements will only be considered for the v2 transforms. In Torchvision 0.15 (March 2023), we released a new set of transforms available in the ``torchvision.transforms.v2`` namespace. These transforms have a lot of advantages compared to the v1 ones (in ``torchvision.transforms``): - They can transform images **but also** bounding boxes, masks, or videos. This provides support for tasks beyond image classification: detection, segmentation, video classification, etc. See :ref:`sphx_glr_auto_examples_transforms_plot_transforms_getting_started.py` and :ref:`sphx_glr_auto_examples_transforms_plot_transforms_e2e.py`. - They support more transforms like :class:`~torchvision.transforms.v2.CutMix` and :class:`~torchvision.transforms.v2.MixUp`. See :ref:`sphx_glr_auto_examples_transforms_plot_cutmix_mixup.py`. - They're :ref:`faster `. - They support arbitrary input structures (dicts, lists, tuples, etc.). - Future improvements and features will be added to the v2 transforms only. These transforms are **fully backward compatible** with the v1 ones, so if you're already using tranforms from ``torchvision.transforms``, all you need to do to is to update the import to ``torchvision.transforms.v2``. In terms of output, there might be negligible differences due to implementation differences. .. _transforms_perf: Performance considerations -------------------------- We recommend the following guidelines to get the best performance out of the transforms: - Rely on the v2 transforms from ``torchvision.transforms.v2`` - Use tensors instead of PIL images - Use ``torch.uint8`` dtype, especially for resizing - Resize with bilinear or bicubic mode This is what a typical transform pipeline could look like: .. code:: python from torchvision.transforms import v2 transforms = v2.Compose([ v2.ToImage(), # Convert to tensor, only needed if you had a PIL image v2.ToDtype(torch.uint8, scale=True), # optional, most input are already uint8 at this point # ... v2.RandomResizedCrop(size=(224, 224), antialias=True), # Or Resize(antialias=True) # ... v2.ToDtype(torch.float32, scale=True), # Normalize expects float input v2.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]), ]) The above should give you the best performance in a typical training environment that relies on the :class:`torch.utils.data.DataLoader` with ``num_workers > 0``. Transforms tend to be sensitive to the input strides / memory format. Some transforms will be faster with channels-first images while others prefer channels-last. Like ``torch`` operators, most transforms will preserve the memory format of the input, but this may not always be respected due to implementation details. You may want to experiment a bit if you're chasing the very best performance. Using :func:`torch.compile` on individual transforms may also help factoring out the memory format variable (e.g. on :class:`~torchvision.transforms.v2.Normalize`). Note that we're talking about **memory format**, not :ref:`tensor shape `. Note that resize transforms like :class:`~torchvision.transforms.v2.Resize` and :class:`~torchvision.transforms.v2.RandomResizedCrop` typically prefer channels-last input and tend **not** to benefit from :func:`torch.compile` at this time. .. _functional_transforms: Transform classes, functionals, and kernels ------------------------------------------- Transforms are available as classes like :class:`~torchvision.transforms.v2.Resize`, but also as functionals like :func:`~torchvision.transforms.v2.functional.resize` in the ``torchvision.transforms.v2.functional`` namespace. This is very much like the :mod:`torch.nn` package which defines both classes and functional equivalents in :mod:`torch.nn.functional`. The functionals support PIL images, pure tensors, or :ref:`TVTensors `, e.g. both ``resize(image_tensor)`` and ``resize(boxes)`` are valid. .. note:: Random transforms like :class:`~torchvision.transforms.v2.RandomCrop` will randomly sample some parameter each time they're called. Their functional counterpart (:func:`~torchvision.transforms.v2.functional.crop`) does not do any kind of random sampling and thus have a slighlty different parametrization. The ``get_params()`` class method of the transforms class can be used to perform parameter sampling when using the functional APIs. The ``torchvision.transforms.v2.functional`` namespace also contains what we call the "kernels". These are the low-level functions that implement the core functionalities for specific types, e.g. ``resize_bounding_boxes`` or ```resized_crop_mask``. They are public, although not documented. Check the `code `_ to see which ones are available (note that those starting with a leading underscore are **not** public!). Kernels are only really useful if you want :ref:`torchscript support ` for types like bounding boxes or masks. .. _transforms_torchscript: Torchscript support ------------------- Most transform classes and functionals support torchscript. For composing transforms, use :class:`torch.nn.Sequential` instead of :class:`~torchvision.transforms.v2.Compose`: .. code:: python transforms = torch.nn.Sequential( CenterCrop(10), Normalize((0.485, 0.456, 0.406), (0.229, 0.224, 0.225)), ) scripted_transforms = torch.jit.script(transforms) .. warning:: v2 transforms support torchscript, but if you call ``torch.jit.script()`` on a v2 **class** transform, you'll actually end up with its (scripted) v1 equivalent. This may lead to slightly different results between the scripted and eager executions due to implementation differences between v1 and v2. If you really need torchscript support for the v2 transforms, we recommend scripting the **functionals** from the ``torchvision.transforms.v2.functional`` namespace to avoid surprises. Also note that the functionals only support torchscript for pure tensors, which are always treated as images. If you need torchscript support for other types like bounding boxes or masks, you can rely on the :ref:`low-level kernels `. For any custom transformations to be used with ``torch.jit.script``, they should be derived from ``torch.nn.Module``. See also: :ref:`sphx_glr_auto_examples_others_plot_scripted_tensor_transforms.py`. .. _v2_api_ref: V2 API reference - Recommended ------------------------------ Geometry ^^^^^^^^ Resizing """""""" .. autosummary:: :toctree: generated/ :template: class.rst v2.Resize v2.ScaleJitter v2.RandomShortestSize v2.RandomResize Functionals .. autosummary:: :toctree: generated/ :template: function.rst v2.functional.resize Cropping """""""" .. autosummary:: :toctree: generated/ :template: class.rst v2.RandomCrop v2.RandomResizedCrop v2.RandomIoUCrop v2.CenterCrop v2.FiveCrop v2.TenCrop Functionals .. autosummary:: :toctree: generated/ :template: function.rst v2.functional.crop v2.functional.resized_crop v2.functional.ten_crop v2.functional.center_crop v2.functional.five_crop Others """""" .. autosummary:: :toctree: generated/ :template: class.rst v2.RandomHorizontalFlip v2.RandomVerticalFlip v2.Pad v2.RandomZoomOut v2.RandomRotation v2.RandomAffine v2.RandomPerspective v2.ElasticTransform Functionals .. autosummary:: :toctree: generated/ :template: function.rst v2.functional.horizontal_flip v2.functional.vertical_flip v2.functional.pad v2.functional.rotate v2.functional.affine v2.functional.perspective v2.functional.elastic Color ^^^^^ .. autosummary:: :toctree: generated/ :template: class.rst v2.ColorJitter v2.RandomChannelPermutation v2.RandomPhotometricDistort v2.Grayscale v2.RGB v2.RandomGrayscale v2.GaussianBlur v2.GaussianNoise v2.RandomInvert v2.RandomPosterize v2.RandomSolarize v2.RandomAdjustSharpness v2.RandomAutocontrast v2.RandomEqualize Functionals .. autosummary:: :toctree: generated/ :template: function.rst v2.functional.permute_channels v2.functional.rgb_to_grayscale v2.functional.grayscale_to_rgb v2.functional.to_grayscale v2.functional.gaussian_blur v2.functional.gaussian_noise v2.functional.invert v2.functional.posterize v2.functional.solarize v2.functional.adjust_sharpness v2.functional.autocontrast v2.functional.adjust_contrast v2.functional.equalize v2.functional.adjust_brightness v2.functional.adjust_saturation v2.functional.adjust_hue v2.functional.adjust_gamma Composition ^^^^^^^^^^^ .. autosummary:: :toctree: generated/ :template: class.rst v2.Compose v2.RandomApply v2.RandomChoice v2.RandomOrder Miscellaneous ^^^^^^^^^^^^^ .. autosummary:: :toctree: generated/ :template: class.rst v2.LinearTransformation v2.Normalize v2.RandomErasing v2.Lambda v2.SanitizeBoundingBoxes v2.ClampBoundingBoxes v2.UniformTemporalSubsample v2.JPEG Functionals .. autosummary:: :toctree: generated/ :template: function.rst v2.functional.normalize v2.functional.erase v2.functional.sanitize_bounding_boxes v2.functional.clamp_bounding_boxes v2.functional.uniform_temporal_subsample v2.functional.jpeg .. _conversion_transforms: Conversion ^^^^^^^^^^ .. note:: Beware, some of these conversion transforms below will scale the values while performing the conversion, while some may not do any scaling. By scaling, we mean e.g. that a ``uint8`` -> ``float32`` would map the [0, 255] range into [0, 1] (and vice-versa). See :ref:`range_and_dtype`. .. autosummary:: :toctree: generated/ :template: class.rst v2.ToImage v2.ToPureTensor v2.PILToTensor v2.ToPILImage v2.ToDtype v2.ConvertBoundingBoxFormat functionals .. autosummary:: :toctree: generated/ :template: functional.rst v2.functional.to_image v2.functional.pil_to_tensor v2.functional.to_pil_image v2.functional.to_dtype v2.functional.convert_bounding_box_format Deprecated .. autosummary:: :toctree: generated/ :template: class.rst v2.ToTensor v2.functional.to_tensor v2.ConvertImageDtype v2.functional.convert_image_dtype Auto-Augmentation ^^^^^^^^^^^^^^^^^ `AutoAugment `_ is a common Data Augmentation technique that can improve the accuracy of Image Classification models. Though the data augmentation policies are directly linked to their trained dataset, empirical studies show that ImageNet policies provide significant improvements when applied to other datasets. In TorchVision we implemented 3 policies learned on the following datasets: ImageNet, CIFAR10 and SVHN. The new transform can be used standalone or mixed-and-matched with existing transforms: .. autosummary:: :toctree: generated/ :template: class.rst v2.AutoAugment v2.RandAugment v2.TrivialAugmentWide v2.AugMix CutMix - MixUp ^^^^^^^^^^^^^^ CutMix and MixUp are special transforms that are meant to be used on batches rather than on individual images, because they are combining pairs of images together. These can be used after the dataloader (once the samples are batched), or part of a collation function. See :ref:`sphx_glr_auto_examples_transforms_plot_cutmix_mixup.py` for detailed usage examples. .. autosummary:: :toctree: generated/ :template: class.rst v2.CutMix v2.MixUp Developer tools ^^^^^^^^^^^^^^^ .. autosummary:: :toctree: generated/ :template: function.rst v2.functional.register_kernel V1 API Reference ---------------- Geometry ^^^^^^^^ .. autosummary:: :toctree: generated/ :template: class.rst Resize RandomCrop RandomResizedCrop CenterCrop FiveCrop TenCrop Pad RandomRotation RandomAffine RandomPerspective ElasticTransform RandomHorizontalFlip RandomVerticalFlip Color ^^^^^ .. autosummary:: :toctree: generated/ :template: class.rst ColorJitter Grayscale RandomGrayscale GaussianBlur RandomInvert RandomPosterize RandomSolarize RandomAdjustSharpness RandomAutocontrast RandomEqualize Composition ^^^^^^^^^^^ .. autosummary:: :toctree: generated/ :template: class.rst Compose RandomApply RandomChoice RandomOrder Miscellaneous ^^^^^^^^^^^^^ .. autosummary:: :toctree: generated/ :template: class.rst LinearTransformation Normalize RandomErasing Lambda Conversion ^^^^^^^^^^ .. note:: Beware, some of these conversion transforms below will scale the values while performing the conversion, while some may not do any scaling. By scaling, we mean e.g. that a ``uint8`` -> ``float32`` would map the [0, 255] range into [0, 1] (and vice-versa). See :ref:`range_and_dtype`. .. autosummary:: :toctree: generated/ :template: class.rst ToPILImage ToTensor PILToTensor ConvertImageDtype Auto-Augmentation ^^^^^^^^^^^^^^^^^ `AutoAugment `_ is a common Data Augmentation technique that can improve the accuracy of Image Classification models. Though the data augmentation policies are directly linked to their trained dataset, empirical studies show that ImageNet policies provide significant improvements when applied to other datasets. In TorchVision we implemented 3 policies learned on the following datasets: ImageNet, CIFAR10 and SVHN. The new transform can be used standalone or mixed-and-matched with existing transforms: .. autosummary:: :toctree: generated/ :template: class.rst AutoAugmentPolicy AutoAugment RandAugment TrivialAugmentWide AugMix Functional Transforms ^^^^^^^^^^^^^^^^^^^^^ .. currentmodule:: torchvision.transforms.functional .. autosummary:: :toctree: generated/ :template: function.rst adjust_brightness adjust_contrast adjust_gamma adjust_hue adjust_saturation adjust_sharpness affine autocontrast center_crop convert_image_dtype crop equalize erase five_crop gaussian_blur get_dimensions get_image_num_channels get_image_size hflip invert normalize pad perspective pil_to_tensor posterize resize resized_crop rgb_to_grayscale rotate solarize ten_crop to_grayscale to_pil_image to_tensor vflip vision-0.19.1/docs/source/tv_tensors.rst000066400000000000000000000012751466211133600203110ustar00rootroot00000000000000.. _tv_tensors: TVTensors ========== .. currentmodule:: torchvision.tv_tensors TVTensors are :class:`torch.Tensor` subclasses which the v2 :ref:`transforms ` use under the hood to dispatch their inputs to the appropriate lower-level kernels. Most users do not need to manipulate TVTensors directly. Refer to :ref:`sphx_glr_auto_examples_transforms_plot_transforms_getting_started.py` for an introduction to TVTensors, or :ref:`sphx_glr_auto_examples_transforms_plot_tv_tensors.py` for more advanced info. .. autosummary:: :toctree: generated/ :template: class.rst Image Video BoundingBoxFormat BoundingBoxes Mask TVTensor set_return_type wrap vision-0.19.1/docs/source/utils.rst000066400000000000000000000006271466211133600172430ustar00rootroot00000000000000.. _utils: Utils ===== The ``torchvision.utils`` module contains various utilities, mostly :ref:`for visualization `. .. currentmodule:: torchvision.utils .. autosummary:: :toctree: generated/ :template: function.rst draw_bounding_boxes draw_segmentation_masks draw_keypoints flow_to_image make_grid save_image vision-0.19.1/examples/000077500000000000000000000000001466211133600147325ustar00rootroot00000000000000vision-0.19.1/examples/cpp/000077500000000000000000000000001466211133600155145ustar00rootroot00000000000000vision-0.19.1/examples/cpp/CMakeLists.txt000066400000000000000000000007061466211133600202570ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.10) project(run_model) option(USE_TORCHVISION "Whether to link to torchvision" OFF) find_package(Torch REQUIRED) if(USE_TORCHVISION) find_package(TorchVision REQUIRED) endif() add_executable(run_model run_model.cpp) target_link_libraries(run_model "${TORCH_LIBRARIES}") if(USE_TORCHVISION) target_link_libraries(run_model TorchVision::TorchVision) endif() set_property(TARGET run_model PROPERTY CXX_STANDARD 17) vision-0.19.1/examples/cpp/README.md000066400000000000000000000070201466211133600167720ustar00rootroot00000000000000Using torchvision models in C++ =============================== This is a minimal example of getting TorchVision models to work in C++ with Torchscript. The model is first scripted in Python and exported to a file, and then loaded in C++. For a similar tutorial, see [this tutorial](https://pytorch.org/tutorials/advanced/cpp_export.html). In order to successfully compile this example, make sure you have ``LibTorch`` installed. You can either: - Install PyTorch normally - Or download the LibTorch C++ distribution. In both cases refer [here](https://pytorch.org/get-started/locally/) the corresponding install or download instructions. Some torchvision models only depend on PyTorch operators, and can be used in C++ without depending on the torchvision lib. Other models rely on torchvision's C++ operators like NMS, RoiAlign (typically the detection models) and those need to be linked against the torchvision lib. We'll first see the simpler case of running a model without the torchvision lib dependency. Running a model that doesn't need torchvision lib ------------------------------------------------- Create a ``build`` directory inside the current one. ```bash mkdir build cd build ``` Then run `python ../trace_model.py` which should create a `resnet18.pt` file in the build directory. This is the scripted model that will be used in the C++ code. We can now start building with CMake. We have to tell CMake where it can find the necessary PyTorch resources. If you installed PyTorch normally, you can do: ```bash TORCH_PATH=$(python -c "import pathlib, torch; print(pathlib.Path(torch.__path__[0]))") Torch_DIR="${TORCH_PATH}/share/cmake/Torch" # there should be .cmake files in there cmake .. -DTorch_DIR=$Torch_DIR ``` If instead you downloaded the LibTorch somewhere, you can do: ```bash cmake .. -DCMAKE_PREFIX_PATH=/path/to/libtorch ``` Then `cmake --build .` and you should now be able to run ```bash ./run_model resnet18.pt ``` If you try to run the model with a model that depends on the torchvision lib, like `./run_model fasterrcnn_resnet50_fpn.pt`, you should get a runtime error. This is because the executable wasn't linked against the torchvision lib. Running a model that needs torchvision lib ------------------------------------------ First, we need to build the torchvision lib. To build the torchvision lib go to the root of the torchvision project and run: ```bash mkdir build cd build cmake .. -DCMAKE_PREFIX_PATH=/path/to/libtorch # or -DTorch_DIR= if you installed PyTorch normally, see above cmake --build . cmake --install . ``` You may want to pass `-DCMAKE_INSTALL_PREFIX=/path/to/libtorchvision` for cmake to copy/install the files to a specific location (e.g. `$CONDA_PREFIX`). **DISCLAIMER**: the `libtorchvision` library includes the torchvision custom ops as well as most of the C++ torchvision APIs. Those APIs do not come with any backward-compatibility guarantees and may change from one version to the next. Only the Python APIs are stable and with backward-compatibility guarantees. So, if you need stability within a C++ environment, your best bet is to export the Python APIs via torchscript. Now that libtorchvision is built and installed we can tell our project to use and link to it via the `-DUSE_TORCHVISION` flag. We also need to tell CMake where to find it, just like we did with LibTorch, e.g.: ```bash cmake .. -DTorch_DIR=$Torch_DIR -DTorchVision_DIR=path/to/libtorchvision -DUSE_TORCHVISION=ON cmake --build . ``` Now the `run_model` executable should be able to run the `fasterrcnn_resnet50_fpn.pt` file. vision-0.19.1/examples/cpp/run_model.cpp000066400000000000000000000037101466211133600202050ustar00rootroot00000000000000#include #include #include #include #ifdef _WIN32 #include #endif // _WIN32 int main(int argc, const char* argv[]) { if (argc != 2) { std::cout << "Usage: run_model \n"; return -1; } torch::DeviceType device_type; device_type = torch::kCPU; torch::jit::script::Module model; try { std::cout << "Loading model\n"; // Deserialize the ScriptModule from a file using torch::jit::load(). model = torch::jit::load(argv[1]); std::cout << "Model loaded\n"; } catch (const torch::Error& e) { std::cout << "error loading the model.\n"; return -1; } catch (const std::exception& e) { std::cout << "Other error: " << e.what() << "\n"; return -1; } // TorchScript models require a List[IValue] as input std::vector inputs; if (std::strstr(argv[1], "fasterrcnn") != NULL) { // Faster RCNN accepts a List[Tensor] as main input std::vector images; images.push_back(torch::rand({3, 256, 275})); images.push_back(torch::rand({3, 256, 275})); inputs.push_back(images); } else { inputs.push_back(torch::rand({1, 3, 10, 10})); } auto out = model.forward(inputs); std::cout << out << "\n"; if (torch::cuda::is_available()) { // Move model and inputs to GPU model.to(torch::kCUDA); // Add GPU inputs inputs.clear(); torch::TensorOptions options = torch::TensorOptions{torch::kCUDA}; if (std::strstr(argv[1], "fasterrcnn") != NULL) { // Faster RCNN accepts a List[Tensor] as main input std::vector images; images.push_back(torch::rand({3, 256, 275}, options)); images.push_back(torch::rand({3, 256, 275}, options)); inputs.push_back(images); } else { inputs.push_back(torch::rand({1, 3, 10, 10}, options)); } auto gpu_out = model.forward(inputs); std::cout << gpu_out << "\n"; } } vision-0.19.1/examples/cpp/script_model.py000066400000000000000000000005061466211133600205530ustar00rootroot00000000000000import torch from torchvision import models for model, name in ( (models.resnet18(weights=None), "resnet18"), (models.detection.fasterrcnn_resnet50_fpn(weights=None, weights_backbone=None), "fasterrcnn_resnet50_fpn"), ): model.eval() traced_model = torch.jit.script(model) traced_model.save(f"{name}.pt") vision-0.19.1/examples/python/000077500000000000000000000000001466211133600162535ustar00rootroot00000000000000vision-0.19.1/examples/python/README.md000066400000000000000000000002341466211133600175310ustar00rootroot00000000000000# Python examples The examples in this directory have been moved online in our [gallery page](https://pytorch.org/vision/stable/auto_examples/index.html). vision-0.19.1/gallery/000077500000000000000000000000001466211133600145535ustar00rootroot00000000000000vision-0.19.1/gallery/README.rst000066400000000000000000000000741466211133600162430ustar00rootroot00000000000000.. _gallery: Examples and tutorials ====================== vision-0.19.1/gallery/assets/000077500000000000000000000000001466211133600160555ustar00rootroot00000000000000vision-0.19.1/gallery/assets/FudanPed00054.png000066400000000000000000011517061466211133600206550ustar00rootroot00000000000000PNG  IHDR/tIME  0Wc IDATxdْ,Ir%mro `+ Kآ|a<\Ds_Ǐ?11ƺfz:v31p8Zm1#""~z}fnwD|>m{zz:///v;ND1RrB{9//t:0s/ry<>>X F}?=|RJt:=>>~ieY~ZJk0|xx|q;έrxy?#_o~Rу13O_Rz{]~^ח;sL)!_' ZB<VTJ1}߷!bS))H`6@߼DC!3c JJiz<dp!!Ƹm[e!#4ϳ.˒?ǿ\.i}^"p8>8_DZK97e[`@Tkei^(!" "#2,˶m0MS:Mp0u]|}^zZ ?曯ݓfJem';#1nt:sJǏ>Ty\.?~)ylUjo37G{aR[Ad)OTJ1y/l۶׶*"62Tmۖmy{{yxx^_eU>}oo??,Ơm[*Rc40Ry*cod]mj!eY^~;'eYff|>ضmnLffmD$2M[xz||nZ^^S}{ׯ_23x\-8սǘT,"C@DCT˗}/_芌v1TwiU@D/^ADjkpt*1DU{)&3w0#$k:!":>T͗n!*`" HJH*Cd P" !Xc`fE4DL  xE2c}|R5D@ԽJ F2 90"^uK%1sI2%ukﻃ$"2ϳ(1FDU꽫"bkVP]`]yeyyyh~f}"(!iaH|>۶GmCӧGmrLDlykx:1Gm!ZW#U@ֺ~eןOӔbZ% d551rd@tՋy|>/ =C R#0"Pk]Rb329OӔsz1Z0) ڻh@)۶|][kDc1c)<S 71,3E2m13o39|>~|>Gm:q!"*6}'yk :tlf a]ko8j˲>{vfԐBx"b6jLvG"0ؗ]D aVS34Tr/ W(IC0%"4XmÑ嶙6tY804fVվcȹמ1 *"MD^D@UB $^јehk"bf fm "P$4`ɰhhD|ѺbZL9Q4SD}77^e{]/oj=p8ΧL˯_Ôb@۶]_90K)˜___#" h)s)R4Mzv96mb$fS)PJn^ 'V1S,<it^b^PK)޽,|[[k֜&M=0}Ǹ#uYg()zr\]U#?p\& 9ÌcCE8"{UGUc1J.1H`*^?|:m !*)>cJ @c2rqOmx ouԮ?0GX_??<<m\r^oK]kwB &4 fG'd{JfFD^>4p1 !|Vk=/߾H)QT}mm;w~Dc9gUՅ KT"WZ.qӸJd10ޖ{)zs--"@0E@fF iT"14iӔR&DP˲c)&ݳv#!BLDd 10s9M!KMTۂ&?) ;vծM8HιV3. Opo_gп^eA##;.1{ϐRz凜, >1ӗ!f̶mŃc7zMMf *~qr~K<cooo~'U}1ֵ:qƯmgbpry]CR z\ݖk8t#րiԪ˲0=zaK!"b)ŷ{ǐH)1eXJ@)n&"$"G.&jNdvubLZkDFcm?">=<1hr]խ{ !B6D|B9v."Tj1$?Ć9HǹwT[k2TUm(uc*!0zT@2b`CpKmSW(b%fԻ6@F`OZJ)"ԍzfmҽ)$C8SNYbP[oK+7"&)`۾be.$cn ʀRnk|^9Oycp8ھmUUKI"MTa꾏kiު8Ho 3! bFSU7*DBJTz"\{&C{ T#$14t b(bD1D"F3V82Gb x͙%gTuoz>=<"/e]W<>>3멇K#4/#!RR 0i:8VeY]0:M }xǺܶRʾ5D|{}=d{i9.sL kf0n9O"c"{^Z@\S?wmڥ者-: PcdMDԆ;ܰ&DD2CU# 1^hrW~)f3Cspx{{w5vYk@cfz #z]dhU"$ $FD&6`wNO!l8p9u ]EƠuӶofVR ׇr@/Efhc c Z)\?qx'f pf/?%"%aDVx.3sTRJ*("Q+Cuz{|>9g` SbfѐZbdC8D&3L4X̦(TCo=sb181]AD#`F"2Ny6qN朧)_.?OGȕR~ey{{s `_VgV]y}}=d {7ܕIg>(ToB۶y WǏO?}rtRJ۶mvs$&@0Qޫ Uqk U>/ƨx8·mNzoߙcQƨu[]rL)6Ά!9z%"KfIUΡ-963GKKUk˺@){ ò,>o{c=sX{m6ZCLt^?tk㑙L㺭_>cJ.l^.eæROo~dL%ͬy `"Ǐp^D8 mkD(PuNj߮o101DP{NS'K{kq燇BDy۶iKf ƸYpb;B]@FLuIEx붵ZWBpy.ǶחWS u;Gcfz۶0RJ|l>=Ep^%x8̗ox:]DTDkmcTlZMDDDj߀,@ yJϟ}-Ӆ\6SS1zJ1t<.OϗeC$ĵ1lUeG? OS>1|y{AFԥo^돗W}x|r0 D9dD߾Sx[TBLA6Er]ovۖ8O[]noFo`@l!+0mכLr9GrigJt١OJi&BH`hbF@#рU!FCp1ݐZ}/MU6ۺ.w"vA@M?i2ޚH9/KLY4# z"w3Xyd:r߯ 92v]W*sJ>aq)(gHs)mMC {S)1^9u#"_uf5f !op < IDATkt!}]pk TrNzÐ;A6f:c ^ ` {/,"02[ّo;}!DTt9v2`c1Fk5"`/>ݼT#>qq.\+0fS55S!"Z}V#>+UDbr.cؼl)ٶɽRjA >_Ns )corL0"ZW$Ljw CN'p2ffb||NV~LJHӾuaRRl-pfH%x ^2dH1DFѤfx9?2׭h{2o-&.t`ːJ(%a')%A{3Dc@613$#2 !%[Ƅ1r4]ʔJ]j B#/u[/)yJNӟ^^G7!p}c D121PACɓŘ(Q~+>{ ˈ,ۿ]V xn <ώ1iRU3yQNOFκpZ~:,:޻@9R8tOuhkM q?졞 }>hӤeY_Okou&S@[3SJ}GW­i!22F5DJ(:Թ2܍Wo<ݞ^__}$SÏ1iw&f Q0@ )F0)웺L MN0AQU^^^)%M۶p9Dt:vs܍QsG D# :#ƘRS@}0T9Dlb֨]q^E,,NDߕ{U] 31!1G!8}N>ۏ !Ya2"!:+N09lj}I@MGFmBh@D,! ^O!RkT1FضYiz)Ĉ)Z2[D9u'ƘsrXw!HcC2"qH{RN9GUh`( CP%TS6f^['7> mI{Ot~Ffv81FbUKnڮ[iC(*0Q<'$][1d~[ӿӟ`99}M"DUIᩍ1xܷuucR`uA !1PGG4Umma ٚ98xʹ|йCQP"%1;#?PJ~\B9޻q8ԶZ ?Hrbfgͼ9Z]Uu=cqW&ǒ4kQ2LSEhXJ.Exo+]m]`%x̹̭ߔ.Bϟ?ΰ`YVm-!pCt:2ն;gS{t<'DuK)]|wCtZ/وj6<`᧟~:Oooo rN>]TWcVJ4"DD[-}0˔ KJx|}yBI?CT*ҚËMfwֆb!2ɶ"#Bwj1%ymBL)NgmO154@@IW"b)e1BknT ە{vehkmt<~]yW [k>l>>DĪZ[UU7 t"@E0b9NLJ ^nzr Zۆ1Ux;Q^JʔKJ) 92i.1[S?b ́)b1$Pc7OCdp{0K;hKČDK)L<ϥrsA"*ܖm[1D3!90UmƐdta4dJiN917a۶C!p^xUJ 10#*Cgq?+?k}1"1"oQT-}T?|8ޱ":vfϒref7`û5>lfh۶\k#նKʑ}r@PK1Fkw2|,/_)/ruwLms1$@! "+ rb:Eߏrpᦃzׯ),?̯|KB4%忔BOu}}y !h&b9ZJ*S^뾯  kDa Y} ik>L` )2E5̣V֘bJ սfZn$pc qF43!1b"?—/ٷ-p<m]7Ofkm0E5ê"|H&"pDD`4Uk)w{D?ƒ9!#m'CQ{!$CF14Gk~W;v3/~'w_#̤wEc9Dx?~Zd !231 ~ KPCzcHc!{P0;3sH2ĘSȎJc$`HT4}1 {EoOcW) җe\8X{'q1n1VoF#*`<ޚ Vh.ZBo_0tޖ-D%ѿow^VY~Ԕþ>@1fv/2PGw tvwPg\*1(hHlHf*SuNeSJzZ{-|DnEX)1Gw%h<ǔǣw{"}wQkyYx{u~A[/fC/]_A.y-yCmFp{[jڴm ϟ>!z}xx#k///ncwö7gslfXkmR "N'ѾޖZk!\c,eWsJaqḦBeY֜2_xKR1mw'ÉL)F%"^k% y}izU)2HAPD}| H DUԀyB /ǔBLRH8@J^XhC4+̭u!`|&uP_^$|>e\D-ӜV/j3&9Խ7O?{u[`"rvU}b\T[{c咾J JD>a*ѽ |x&"BK"Ȱ}ewPzkȑy]Ni\n)Nn]C鲮eYJ)>ƟI!4 161ƶ";9NDzM!NBVTKJHj6T#qTmՆ2x'*13(0P[wy>}߷}91$f~~ȽD.A9N ~Gf.%@iC 3*{vN)S*X~<".?St*qg룯"DT?fHz׮f}h`MĘb8,2x?ٝVޙ Yڐ6hP!R`?ޤɍ,I-`qg0"3f%en3%ӕ`@ J -.` Ry4#"MkOxM"r1F@}EUIB. (@=a#s\o˲,~q<OM| q@@hHS ʢPTC_<"}'H11iCr8M]1>>>R sV"JM,!9C<"0fF88JJH_l!NWDT(@??/xx"O|>߆au+?9vz1B4MDдmu38J8L)ƌ΋w]#:^(rDaoL)y0j%CJ)QJiٶiRiu9Au+D1RkSZk8橋,r1&SP c42AmVHq\^iU @\ s2HDcMu!P &""'y. }뀴-֪5x $"rCTTNl"4ABFMf{9FڛXDֽOCi5|go}xMD9$!&oj9?>@lv1!!i֪E4cQ23CڶSzbGnH^U 8Ly'w3Q֪8[Af? "˺#y;F j?֖sn|z8]_6 !ϧQ`s9"w%1QSJ3 K1E1I!usBf$@^)s)zGRb^=hֻ.㔇<Y9!m{]גCY b^0F]sa]Zik!0iqٗm]tR9)Vi][6M)8N30'K;󼔺0i`ouoe-ZҫboVr #Rۗ~ # cM޻td D! p Dl)#B 9Z cR5q`>O֤<$cT U@T@TTǼK J1$ )&}N!,]EXZk^].&jH!2cPJ)E"/+ڶeR+`j\J-jS>Oi?ov??or3G 9!io @PTS4D#60B/mYLucD,]^B$X[ 8l^[ð׿l0/_^v x8j+߾Ͽ?gY[mr8i2ޮqt`fhBF\M'o_K]A[m! ҉xzAcA")  (R sHK]j!OP+j"h һ! cy!@ۯ)LJh){A$4Otҵ0aB`3աl`ȭWDR}]dGK 1⺮d۾ަBTS^[CĔm[s)?^O|H˲v~\!N뺖}gfeL̷DRJ."qRk>IRL< DD !`kuR۾E MAźX?&C@XC<fdta75Fs4݅w"DF#zͅhj`8䘇1iPVZW3Ufðl=vb'"~݀9Sy!FQI""2S>f`Zgk]&CEwq֪̌M$]e30-{!EdG,]P{]4~[m-jjLDn БT"E^W֥v(C  1Fؕ+H`D|"jQqA~fJ)Br&b&}0st݈h߆~!o$7"*1LÜ5 !dP)/Si L-t<1Dkn*@AQ%Df ͍CޛtkˉSS{Z@_Af(0EHRE8Nֲ\cRu~zm]nEMRW3qquuK`<ȹ)].7(Va twQCDU/8f="Jq03WyR&KہF)fPطb!Mdr7.mm[[-;,[vDc!|<^__^^ξ轋0I Z`:3)9p`6s-ok=9eYC-Md7t5S/@,Z3SB􃈇o_a/xxfU&goݞ/'| Ck&KU!@[۶,C80pq8Ok?141LMzgD rCr1ap:On3)ZU"b׉7DD;8TD\+ﹺx.ޟ֚o+"RKKW@@&3!1׎s4 cY*)2]KrU[gGts/N{2l߻XkUytJlJp8̳+wB*{$M)RD{N)}moUz[)!_hoD Z)BL9xVPl3bBp &t7 IDAT|?JB}uI)8 9f=r8s 6ӷߗaN<Χ|~79GD0S5eJR\"4Nĉ9iOވ"b$`\tO۶o;>qF@&uD D1t9pܭWGzw6} E}r?@@Cx?;0ֶ #;LVKh2MSbBD_&~04&&y֥ǐwt1Z[zw >>Tdzm?"H*MFF}ݙa:6t5 WY|rz9իr;r[{,@pm@}.,]rNj[ $: I1(``U5G#X oDL h[+@pdB8)7OU ;/Sc"l^k 벷" _YWR֥;'D䀑bTt?kPUuD@!"3Sj !>6Q'vdS׵!2!]?S*ڦy矙v+uݙyb wfRk0 ʰmd&4Hm2"n;S:pLiT` ToqO1m۶M>l $TWnFEJv43kɹ>!Bd.b"WU&[5ӳj ߏ][k[28..*v?_qJD4i1 ^)p<ǟ/Z\Y8KP DNЫ>@D0Gb/灱l;}IxŠi&Vzk-ja& d # ]TC H (r]}ӵe[knXcL/O_!߿T޻P{_խխnU|Pb073{B*[vGcޥ{ <1 =Z[tm <)nPKk5!sPk4C8A08$w<5wH0Ļ!!9v]1'FZTD<\u=?Fm,ID\!4x0uZ{k`YrPS8ɝ z]n2ysYUEMǁte!1۶_m3ҝ*W%kkY= VU5B8fK)'?ޭ+|||tqԛt3cNn 7Ǐ+9]RWfIw賢n>J /{)лg?nvE4wzz}q(Mʺu)t\n.z^L >>ԙ;DxOe>g]DT//Ĩbu[AMDbDwN4U(hn}/s.C 9C(,w|'PnKb <UQ{s>@D$9J)1z)FVx(tn.wo]K4  |"=twIRJJ)uKi;HGL`wmqݥ#}|Z^1G7o0"i)HDJjuSՏ}a ބKi1WP([ҿ..~eȓ _;-k]s:)Dݽƍ~zOD>[Y;̓|~N0䡖᝾Ol[ײ!qv uY 4!|<׏Dy|8TЮ 8Q)Ę!e``1f4hŧՓAVN8tzI,Z/=1u{#G1@1* *&6Go-P [Y=sӯS޽ju'$DRsX'h,sZSD,B`U3'?j_.n{!f9&Lyֺ^y0 C"~13nʌ|#*d"a@5ÎkӘ. VbryV 9o@z #~|||9nO("y?t8.kĎ؛RmUy0 GNa=HNFKR*ȗׯ˳駟eq-,;l?K"g.s8+Е)Ѻooo9g{]Z`cS#8L}Kهa@@B4u[8P-5%<>O1!5z(Sxv@D䜙öm뺉ȗ/Ie180qʇb)FA+caj`!8q@\jЎ>d,,nt`vc򍅂q88xCʲ,ª1&Dͽ8칙 C&}+(B-50c-u]VcaYҲ< @ͣú.n ry;z1aL1p@n(RVKI1^sx9N놀ooۺǘ8gtwpKU"A{ v݂A&nizA f`@LD 3MZCR}_klǷ?7Dþ˲__^koce98WʵZ0߿CDs+-L$ַ}c&q$mݗmm]Zo8R20U"l [y\9LJ{-}qo]9%<3iܴ*3kbh9N/80Ÿl^nײtKYn7CEkDHlTxت|_Ux<ҾnL8D[JmLҺv11GjLܵi"L "Et8U۷o.[ĎOih72ʲҁֺ>7lNxL{{mppe>n˲m0MF:z]m+[D i۷aRʵv7UWn+1&>:Wm[O5i攺~t|%!8f޻D k/fr` T X)Aq۶N$|7.fRN ! Sim[5fP>⽋p`P!&, ^8@C?t8$E轗Vk齋*htV3!ܙ3^[S"U{5?f6Z/HiP!,\}|:^. &DہLdf*⑭/   f NPbڷڥ6Ď)Eba~wC䇴GoS!8f^OۚCg۶RZ:jiD%%!H@uw.4*Z )u}z]WU՟>c֭VA"I7QMkNi벯ۭ S(|<i:x9mۜR*u˲Ly0gOӡgӰmxR2{MLѓ@Et嵳LrN!\Xx5ch@1c5BU!t"s`(0^))ֶ+tg ;AoCWgyD#w}ESogDݾ nJ{//?g4xΐlVGt(y!Zޤz2Azw`'vPZ0 4m]P՗(ۺGg5*x:k/b۲J[+CZ^t=(]sw١"@{奐BK6Mdl۶jC"m[ XknVK |<7W" V<Et: "ŗaYoC u[7?#mE)g` }k= C孫a>PDDgZ{˗/,\5sƳn]pConf(2 )~<ǗZSrUPlRJe)}8͌a0Nq".8)tƱes]hRi9!&벋8cdp6@6:UHLjh+ E(wst:JKgD/c0icJlЉ4$?P9oϯ IDAT-zq"PѦXE{-1%j"mAR Y@1gq^Z}nE.| η4F^IvZkn7'AJɺnx!X7?zm߶Aԉ 8N)%_P)"~|\C?mZ STp:9\Ri$Lb|?mZ&4n~5Q퍙TsJ&]ȯsNf\"һJw-GWv}4~) _AU]}CF>>|>^yu/9'mn[1}h0,~nfKUO^Tu۶,$!ZkRJ4Ƿif֪,}&fZZrۛgq*><4"z.f\.3@z@pUfn"{݀r64[U]z:ŵZRY7J3fHXZJgx֦O"KSE$$ $<YB PȺmݺgͺUL[StG֚ TUoJo) 98z{nKN1`5v5!RtZjYcp~]8ֺyu&֦33|^)AD<<< <1&^gU afr)lf!0hޯV5 My@e9#1(u D| J;fL*wdssG<߁Q;܁ EN?vG|FeYtN}J))u]q___Է[Ji)3Ez^u>Z{?8MnOCѹK0댪*W;)4 @ύ,3i.J]zs=s,{Bu]WQ^q۶q[6!΃1F𥐄(jfmeWh1eUw:&ִ`L[uzޚ_Sk__{ogMU.z12U V9e~~xfxE@L;+B*"#|~1uoZoByTlƠ B,Xx.`лdY'C۶,4\.ȄLZZiխ=lۺkRLJaXC21((!t~p\}yPlΰQJ-510My[\[zӔ嗯߿cnZWL!غޜxf_|4kJNvYTa[4yp:1Bdyy!&i;gNܴ Wf~vS81;ַTRcke۶m+!0ښ_[i.H1Ng?9i!-""Ac1 be3wm1F#Rm)%,1*tZ8$jLw27x{EbnkUՔNEډMw|TvD2rîy[kTi4ġ ^ شRT!@`FhZ@@mbRX&JQ)2AkEkխ6醨` d>x.T C Є IDŮ` BJP{ӮM ..ora8az9ZsLC`,p!&Z!Q"Rk䁀DTT)\C]jRk3N//_Ju)vDV#0er?B<k$~||$ې3嫊ڶ4^mkmi-x(@Spqmc_}~xy}Ð *:3" qRx8D>B1q)D HG q@R6e^<SYk}&B:LGE-[4Nz8һп{ǐr6SfϷTڻ&Եlns@Mʲ](nb9֯RJaFdi]h]Z*\LhKYͫb*@m]324DBjry+Efj+bjSdkpߨcjOt:uEPbȺڪVJQk%$$h-b1f0nUֵ JI RR23'aŅuSw˗aؤ!r*0_akouň_64kNAn|}-&⯯o)iL C&&00UFV@@-8cLC fuEą LMyb ^|{DEmBf Mv4RRI-k[*#Y9DR"Nr0vCǵq _ HCش!Y^ʦ"dJ]EhiF`R[7EƠj O|t<r]VZ71B3+tS\--uN!8/1M3:; h)x !R{8GA&Va'+^BpLdӉ0^j_um;|$AU!bw4 1c )V˶m`n:MG/Fyg;ɺwZ]dgX9b}:;r'h34ÔR12Z:alӐLU0ʺӱJ%@4.eu&i TA6/K[)`JNKzn! ! /ʷ].ߗcQ&\c1|}9>,Kk9޸1wPBJx%ÐR M[Ҥfֺ[5k:e;iixB`$#Q1!8;߂X[CU<\pQU r S# U(( T7S@+ul4Uz!e^}ҐR8XvU2a[\v>9PYˍ@R5w֥&W H+! n^FH MVK]Z(ZET?ABz懲PWM:[Chn*>ne 1߽jՏA!_C3+uO[JiR*")4lLH  1 88yl&8 #sPrƚ.qWUe 1FPpcO6N15q5 cܶm٪"0.KR.}ٶ0)%20<}C >Fm>Iޙ[Zslb-~]+s5-fRƄh]n=Hx_Y?뺞/}|JUq!1-٩ޭTV*Q!em[QRjcZK]+6EH1Pd"@n뺕j ,j^lHR"";NB#bߪ)",MQ]R3[UMfVSqD]zR1XZqC*]TvWږBOc3զhMLL>7j5#.ҙ1b@h&h>ci:"v}$<}H*`[\"FhDq$";Ony|y}EM@tctz{{@8= uc.1?bp-⚸tr3Zԙq&!b("}Bn49yt g" M.6]i|L)]J ʲ #[4{pѽ+wCJ7RZم{R]73&2"1 DZ4Mc\>Dd0qVшbc_m/qJ) YU*;|{1/Oݠ,kT.Kk'}gח3p8n,:*tEGQUWؾB+u-\Giq_v3Q3s-aD|s)q8_ѩ:;_kR@CrcBd)_>&ġ5ګ[pz9 Io.~Xvm6ɉxȭWޖ0ǻ޶Tvۚa+{Esq, Gu CԷdԻh7EզRE@dp:="J̔ ZhzkYKCHf˲ À\&\w4u4.$w+~<].]#~DnYvnb V1qH8MUczWD,W}w{X1ۺ3;9xXc y޽)!0Sܹ0žumAwWk=؍hI nIT8`ČI50@1*٘F RL4M6UQf]&*}We/K#4RQP MwA4Dj״U-GպgmU^Ͻ+ֵ-uk"tϋ,Q}}?H<-mIU AXaz6g"4. VJA wETFR`PVUy]G貁I:ӄ`00!)YqVZ+GJ)8ԺnS=NPn&m:ͭ Hx۶ 8[niw_ !y0 @|v8fXJk˥C'U1f</_^/S0 /"Et:Gc(Z۲ `x:V4HP:!^.>~i9_RK ň5(]"A;w%FEU-=Ͼ/in}qCD43[0͌\o^v껣j1~4px@u]Mq&eޤf0C "A$V%zl֥FP壔Z  9(0 \kmM>/"2|<AQDZ.᫙M>I23nwKk>[ "&h: ވ 1;T&ot|xx(ycTZ 3ZZW3i2uchk"!9)"mvuV "9Kg'g7*#C8`r'ZyR *C[d!6&TLEPLx\ @I^0 &{GCw@Z)̮\v8a'ߌ^K/R2#nu%"RnfcN"UoO߾}y~|Z/ORmLx8̌dRkO!ǘUUDLP1q=!u."BLq!sͥ (" R *;0gQE5g"خ7쵰(͌6Mq Pumf{K)՟8""c:X85 GDUkm P<9g80ϳ?յm)fi8"2:xJ)p:LҵkW!ZSMZt&q( o{[ )D @!|򆙆e)۶_|篇HǏeY;i^A#b98nZ.9 @1A09< m[kBQxM{[G/n$aO2|k."M۶y4M4IxpWp8ێ;/" $zD[Q""" C.LQE硕~:rJbZamYJ)9xh|yzN!b}rW.xܶ%RE(;!ӌ32Un .!?kf0JmB$M6@ Id/g¥IUo_!whѭF66b`ZYf)$v/] 4s޻OzS2 ܾGg^ 4>'+JmP"1ZڪM㈈m>7mm: ƅn$mDĎ.B7~j%Al?WGw^ڍÐF0 ÓuI)^ ͺnkUw`>9|N7?niSݷZ6 !031^00 Sp`P`d]SL|~|/{ q]! / ]]+}!DM*"/0Thx<=|Ry !<2xO?}篵uۖtzW59ֺu=5ߎyl=>?<ڛLA a< @TUOgbO_|qD8h{z<=><\!'48lbb^[ ic{}:JZKt-T~>\c R7wuCu+{/aLiH1#cB) Vi0 ZƩ#Ze+unR QE{e+uL1)`:_/l*ժҵe^q[Kݪvۖ,9 n \:LLlۖr~/lEEqR!q,hj+k9۲~EZJ]m^m+9uRJ!O|y#B K<r7TZ?ð̳gB-pn[ )w(Lo768$vSm=(ޘx^"3i^I&}ohqE{oMLEB!Ƙ"޷RZmߠiqvf.<+!bJcrEd>/h]ޛ.54pӹc{t0붕0L1<_@m5Scf.ff,K {!F3;"n_똢2K-1.bbh]V@Ru1b}8e؅U Ba|^4'o6ϳӠȍH̓}oS׫^ѥf1Mxd;]H)"\[{{[8cd1MA4MUjvZSBLxR( Mۢ:Ž2 Z""r-1޶^CwЖ(&pPMc|:@Cm[ 4w2VeY| ĭ7CiFZ7 68XZoN9 ƐEE*).bL1O4>u ? ۋϹ6ng[3R{~ÐCdWU0bbnDDB&fUk-]\%[T L/ia<Cat 8V֢֗mix+Zo C1DQjQR2fCZ0#"!1S1ȥۡVKzobR$&gq`y]n+n1a uiSqZm;"ֲ4LT.] t:T)7]ME[*JL0)yfd!4ØʹmVLf* 9Ena|~8u cL)|?<<ˋ>>>! )hf!9D]ZOuJt:===m76/suE) ouZ[Fbv9g 0/ ❼@!i:}@^@)^y#rGݼKb`D_nbeCZr9_{뵴e^y\i |oGdiDzsg@!00\e gV!FrvUU.B{ ֪jǧ]ăOV똳BꭍyTQڋF a)U^U>!Lp:M[=eEZzo.MOL3" CH1D[<8N`TJ~, cZ˩CVzEF@+e>51LLFBٔR@-QFp12wwpWuImo{t;s7\ror5(˲8Ĕ8-eÊpeiMvIRK@!Х2sJ&,\.5W_njTH bd^2Afښ"`0֢"LF>)9sqZxhصa@*)`9@`l! f [cU!*n' W0SQxyo.^tp}ZGX{8///mK1f&pSv뺮Tq<ʨ}mr_|qK8ǥ:D5Qo' y0J[ʶs>tx8=!l LnFD(#*HA1Ős& mfg7Px=y89)yg{w޻ 9pUwᰧ")}̫ll v0YqTC3c)%D:DX^MhDڡ&ct?mt_~Z<ܟ}>ځIWU)V=*3H  }̕7] 1Rb")^Cַ(!ff } & LQվ >PxbܤºrzҚHud!j8惙Y@دݐ@$Ls$MqSD >}OMV,n%Pffb6o3Cq Xz^21!1@QLO-MOON XC%)hzqMD1iJ@C D#rK1޼1{QMUmK)]F!Df混73s}1|M9} qz}}ߊs9H!]E8EBbeŭ<#@oj9"@%_\sALUtUN .+::7So Ots'At:b?!u}5T5S`r]%9stQUsnR[khVq3tdEd!RPhmϵ.1(f1&0H'&{bMϡ+!*+o 8Ơ 4%`4 !!#Fe <:.r?!Ygopϩ>{&]B2/i1.ں)j"Jٷo߼R A}]m[SJ1D"/3SѺ*Sׂb#Bi3X};l]JRfdDӂm^__koOOO>qqLyQqG4 K)sׂYRxZα7.u1q)m̴m+m+G ȓh)Kk C΃ fIb{!pp) x9=|nl]i+[k"Xo343gjQ""]T,X6zۢ>mlfm>'0: iA~ sD7->Q@"L)yw3抈 D>^$X~&g/Fq)(*0GWPM>W5(Lz#3#݃Ž8LpgZv=ل!qz^ߩI![4"rM 4OӤq`N,`$`BH`$" 8MDnS7a3ZQJqW%̔0ƀh̡ 8vATףOOC㺖ɀZ|#tQ4P*1׾󪪗cdnZAGhn, O}~\]7Gl@#"#3u{9:?S]U;I胑̨8B0kQ怽<z^ۺ,ay0 V* dN6m̘7Pwc ϔqNlj(n1b9ಈ"A!믿ϧY(-|n"V+ #LӔR=ttcSDL biHD9gGj1D"wHSw8]&PZ%P hpNXesJ~x<̈9!?]7sU`^6֦QNUAĽn@ eڧ} I3xM]rfMfZ `Cj8ydtw$DByIYDntUD]D\S"d .q 8g)8qYn< Aƒ$e"? EZk⾂3@.<NZUC2uR[s_5hw^_&ryò,Z cjө UTzeT w2yD;2mxpmLjƟ^sG?~G "LBDIM1azfbjSTS0R1=Rf3֞vBB!qbΪ}[Jvwdk˨k_#1]5@L#sJ_TN;AҜyrL"?mZIĮwwzxxyyy}駟ڥ]@K΢}deBw*iq]Sbp*7_o^J*9 -MN4EMyzmqLf ws]U\qaȫK,m]5"JmpPk׵]SJ`_i<_.mq8TC0VL{iMD5adt~x8/믿^>{_zߣU0/֚1'"J̜K!aq*4]."C+ɇA9p})^ED;Q9g>>:9Ϧm"u)::I5 c?,žO?˴ 3Z)|,[m@P,DĪ  3DLm!4e][L)YJ8"!a5p%.3p|@JYs1C~oB0e?=j܄UquwQGe Ő<5 c AQGlCh7Kdz/__^9tVcB*P)]4§UE.w@,xy}Z.d`1+}]f3 BzG1M'x~~z\DaTS@8={#arJ>!tyY6L׿|_t9w \0>/sKN9}z~_"S2 Oumwj ];`km->ߝH8R.I`:]09ZtIyԮ*̌D_XO!;CN4 BZfӣ*cp(!8g(j]UJN4 ̹d}ͅ);-6ZKiczZ:L;汔0#22cI]UT IDAT<0h\ ‰8M]8!9pʢvsI)gNfFS&)Bzn4Ӥ sh&U##;%. &S)Cb3'Q V@}||0,I1"n1&j45k;N*ͷ%'nځ"#A.irʜKbBn&q/R0|~WN(&AB^,ű)qƵݛe4ezE\ )12<<\8]D65%hϟ_~޾|4 #ehM\l]Wmk'tbJeY/OcoO[.ݤe-SjHepʩr&Fo :ܖ;ܾFs  6f>롘;vȊxkIm-L)2 yIͳ ~zT*0 +ISw ,S"']Sf{<,53"k'Z[Y{}Q<[5 .O9g 2ÐoSp׶<===<<}TC z^J*%zBy7kn(9.1ߚq92& {w1ʁőGc/4Y1#7 1s sN{2,j+)0DDr鵮{| }`M뺶N)` AĜ3a x*qcERJ0Z<}TMֵHivl-w9v1 sGzP!UT}ePE,#bX4q,qo{c3S>Jܪ֥է Y{H `k]{uY[SS ΄`s[քhN_T׶$+c vuq<|]~0Fsϔ3'oߤnQ;%df}s@Ïq/[>B7] 857c9>2Mv뽗4{}} i0hr hDKC'cROY]U)@D11F(P㵯꺶.(T^_zmr.\׮x}y??!{)}h}>iL}jGDum!eY\0KڕeYjxx:Ӽ,?Rz_sLں18 k륤UU5c&1sB7_Fc: R)4'@ի618k2#"4? 9$4/q2:/#cuݵ8rL9$2.m ~@y>p@0 p4oB(~=>]X??)g*eꈞR)ȇDL]sLDE9DDѿ5n򍇶,)=D3<@(LɈ2凇o^`@Jļ`kKxETi'WbOl.ln!?%UZ Gpqv)3tC:3[^5DnϓT;;s8:;23SBD7wU\dL0 K΃j`n9ݞ 3sǔ( ֶ8>4h7w%O\ a&2M;:"J7U&ԖRa̹VkoM(<)4Ĕ(\00sq\$.9#rpϷ^T;atԀ;ǿq,aM>We`>>\v4M~+ 0M8_(aj6(F9zݔ__USus cH iߜER"Y>a_~e:~S>*&mid(s.eTx.03~0'Ģޛ,ƜTA~k?\Dzof,mt`#vKD~dD -(0m>BqS>V{ =6mDT/Kka::"9纮Vc{'f9+9 LHޮ*bq]c70(" +V5]X0̷]!bcP<3:kΙd/nhn!6G%X}3x*f*pN/DڨRzD v0+0U } L1y[!93cDDf h;`̢#ބ*YP@h^}w3'Jb28c[g]kJF%p_P </mikm-)1<1iU}ԛ"d !!Sܐ(#&=W@[~}=14Mvd;MAw%?^ş1iJxe_O\.E?}߾}Ə [޺:#&yHi2b@TSyӺ*o֛ /˺.r:Ue7r~RY햐/`ZyikܤiW]ZW_~e U\zui)N*޻Bϟb֤*ZE{VcFb~L^ooo0|-K9ʯ@'| S!wNg"ÄNәr. TDdQZ?~"_.XZjL&{\4}=2MF(8qdAĝHf TY` }P9H֘цCJ)8eH8u#$Ù "yY:s]!AʑhoF kH1䡶m:8@} sDRj()DQ&œB*"Zf9e7 D"v3j1u@]rh{E܂sk&š LZ[L#$#bkT8F88pJ׷>.8M8Ⲭm |SL|:o3"Jۘ|JKus 67wОP]C@M8cCvi2~z~0ЮHx'BFf3kK͜[/O) (8 D"=7]G+^O?8*?ǏU ǑjTмFʞ/m"U [@7M0+.uDT䄄X8Zצ&1au^14M0Yy^r~Hb`Ti1©!|k'zuszVBT2)ރV(fBad޸oC.;QQ\0Jik/e&R`w/e0$W&31v䭈8 iv0`z,p%=n*cEA8\N8"JwdFDFuq8>=~<㿺Av H~nDZR8`$" hS% tsUʾBoʏmu'9u{ ]h>moHşD hu8]UѝE9M]T(nt,<4Yߗp6hC}y*&KA8R"P40hfe\g[b^ ~ "֜+p:Td(M%':ƜۺNȕZk9Pt RS0Gt!ui9TjΆhOJ)sJ)싙54KS T)|^C)6) Nkha_.@<$}}}-Hp3NU/zr#} [=U^Zl{T!:$NME<&LS)uw>^׵M/u 8zԌ1>T pSSGC$ilAlft"!J7zXJ3η/1_ Id>MuK!Lp]WB燧_9_sSN9f eHT8vLXzi3aZS9N93:E֮XT`ÈtƏFS,#l;/5c&pwšx||DuY2\t{*92QD a,4Y\.20My^qYR0M!Sv&8IL bT@@8yA*@> [> L`ܓǿ|ݧ񌈷,].ú!gW!MU1+)QCK)>oꎽ_9Qk')\ku.Dh)YWbLI AhڻNck?VJ߯ᯀ0l-ot:r4r s}ĜÉ ~"><OS !rPl:]7WvܽהRJTʄ*Z8a7i.h';-RT h[7NUR޹n9S8yika#>??Uf6f9fSs?>/˺a^8y.cΙKIÐDd߈؟yn"rDuvٺmc{vKܻRJzg`~nGDF"3B0׀09gD:h]ںVf6 J7Mr7|c%H?|%xH y)n;U.f,.Ig$Bnt]۷R]֜W\%b kc1μ[Izt LJJQg6PJv(X ۍ3WT>H_z㯿c)sǢhztPE:HKBTk=G3sQq1s92P1>Ắ}g1%$tRU sutdd"3pbpC0puZMԑU\ qQ2]#02QKkmY|L\sNcnox?Sk$ͷ܉\!Z}rBwi-Ҵ-!dNM]pkep~\=Hp;x|C?<c51mwH$p0CL`]4UUA6ޫnL1{]~ߗטKGHD6 #x"vb IDAT8(:Am AU 1Q@3%l׷~gkgbu|RLGrU5ɩ//_?׺*ҺDq1#1^OOO"r-u㏏R97O6qXwb˗/#"o[os>)]5$QO6 -ItN꧝ͤ5Y N)̶̩䘕R<ΛBD4U|j9x͉04 c*"_UvK\xs%bGD*YE'ݏir;Bsǟkl# 6[tn/@Rϟ*|u] RbG@svBlj!v|H@_^^D$l `"b`S>ꬪ 0᪶6J& 9bt׿~}ۿD<}z}+eTN)uJI^lf4Z"fw-F,gS&y˗ooooTJQy  /\۲ʖ/RkuAt>Oֆ*^k w٥eYz{_[I"{iq Nw[$(vF0F`1y&AJwHX?rdT`Zk0.#yY~ұ׵rq8EBU֚J>CohQ·T`Nj%j0Lf]7۽Dw,v8ZA[SJzk\T5Jؒo߾@o(Ih:U9"6?S38x$ȈQY:fmd'OjMWߍT(0 EKz]u]#$pmͣqǻ-CZ$*D-4 At_v_&w0E 28hÇR2cǷ;w`G7R9w%31%FdRq<غ9b!!:)^.hrå!rw֪}w3c!:m3umq,@2a Ԑ|84%~_j]q:%O9gw"ԶtGwlιwEpF*_8 ~ݱ̺n9v :hQd#ö y޻?>>~^ջVK&p WMv)̸ ~.sdṠ|M{M`< '9z-jQGr4˲믏DU|oDɉM(4AI{p]Kzy:jkX߁/ˢ!#'NDx8kUT2)ę(Zt:-};ỦRW%DN.2"4@ru]nV5wTsDPE\g>/3%6puC7GD@}}}"_  +"DD5|"W]g" "7y_B;N>s>}ܷ8QGGw-)L@LMTi:*ff1|SC*rȉZn,nM9GJKHNULyFD98]A jHʐJ8m1 LAU3Ki[[ eWrS-<؟gl]X{,>ԆZ;[ӕR*pFꪽ2קRF*yߗUp.qS*)9bb"%Қi?zۺX>?Zk[9'w4uQ ' ֜0@5L0#Qk]0!%rGծ9JB \]md $W9!JtYSW#VhY%%FP !6eق8*P6CBAlڂq?E'R{GlӳƑHpbXĎ`QkQz J\Vj *"̋-1h"9&IW / "PnKڻڙ)Pi}f>9Y{h2|y%q<}P,tjBD2LJn8(GA ^Rb{MU58kQkqȟ!Q7ڶ7(u?ʃ[kԝV5EDQ%bQ)β5jLɠvfefUG`;:r (jr^{n.5}i60]+Y="\^~ @0Zb@EQ\Z3N)aJ1;&fMk?"zE%/сDheb@.͓HDR,PIFJ{Soe )jnq*z)B̓`@WG} @w<|N l  @)-J炙RYz7bOGemXG5>ﻸi vNH$7/TT8a!b׀}/w0~Q_ ZxI:\!G(Ld0FrtaTE~Q+B w0iiVq 'Afl:8Jg{itc_B]"i68}wu]$9!zd> (Hwv\U[ .˶m[z}}}=GMlFV;9?~] rIG0tHIRRڲaf/׏)r6,i]JkVD˺5~/ JGT#+PBD 9W`bcgPyaDR(s̥tx *>ST Y:?YSptv|]s%)Q6M9*ѩ65 H0t|hD1sdw5ICfӢ1 1O.aD\PYs/.y@w&C {0һ{2lFx\_9"ﶷְ-F^23c-`iQC$z3)S00yScS̆`֑4ޜo)pK܈h [nk4 rx>["n V!"EC G6rU.%?{uǏ:UkbV[W׫#Ǒa8+"t%*js>;Zd!Qٷrz.)f` !lBOalTl$N`hʹc_}Y`pRJˆ䔒CEǶv4`ZxiIK) X3Dt&${Nk)k`)gQsqptZ#XDj+R85G Bkx䒎Y@3yژPD@)%4@ё!6.ݽ@ 23pM$,ٓRG苛^<VqIRڏRִ]ߒ҂N l̄f-H{j|]֪kg'H~1ij|h0<HBD@nUMU"\{8r^>F.ȭ-9 (*I݌sTJq3)R;B1)3DAzݰ{9#HDP64Z0etn6SÀql_<IfZ5f?1HN77^M '-Y1XgG|̌O*Z+WRZ9CTD?JP5%8$r}ǣ Zk;e]RZ r^PJmK6892/Uyk?JdPUVoyk9 U" unb)g 7trvNFAV[:7?s7 K?z?9]s;8xj/KT1zhg+c%xhc*,Yfg"Ԣ":!>R0q{rhMG=\eKh2`ع;j+Oو,͇1g55z~Y{Jbs0={;wiBxNi4l67?1'q*G͒FUxk7GW9{c~'g;t~Ӝh+Ó ZSq!w7SVDDSMjGi;LMDZRYd 4KQuZ!m[J){@" vH?S`$lMBPC#E$qSUͿ}IKf)%3 @w#UյBڪ1jUt/^u|W5iCqOT#~N䎑aa;0n(DjLUkSf) 9g+5/fze0$w>zJ!wF@5mQOUͳ-Hִyp,&BLC):M{v,Y%M3Af742N03sڶ9WL$p('JB"=rAfZH(Oh;ZZ1'3G~Ǽӫp xŁ-V I/5/|G17JL e Ձ˕kVMi(?(O?YmX %f^=@ fV#%0AN #1 xM78zbIk8CC 8/?wkf䰭kA7 ݘ"Z4띄jݧF+IHBna؃~sGFr IDAT|ƧDG^Oa(BσP:GR Jt@sp#[Vxk|J˲-)j߾x}}%,)%7E#/,>8?/xӿ#Hp>JC(}Qq[ۯ_~.˲]/sd0{rw(Rt)-Dg ȑ"Q?RFpvR |g>HJLF<8~,K5#hɑ)\;cl#[f$KMbef&ZpxD_zx ̜Zxq*X(UAu|=""12jqH ݪZk,_^Z?~w"b/"VX\0ex 0_.zyLVjNyf}T.+kTSGsZNS 250UgDEO`;"'>Iӗ=ٳ5O ۞9~pηr"ɚ\Ww*t)SI˗Hg33vVQkևH $V cGe$H,6ku͋xnU`]V{I׋﷘LQt-<0'CC-kfa0'@bdD{mՖS^B,~ZMc^ۺ_?c!j?DZu[7B*G]G9u}?"_q]/ק\r=myIq pyl@;ؗ/_kӢ˺#L,jfB,/Hms8+ ^6\ O Ck j3]#0 0 "Z#Hhl ۃsm0Ǚ XXIL!NcDL;:o놀 HXrNAdn sa0!i P_t3_[n7$K B;,j"9xB1`)Rqc=>3AUprd(4#"V0$L`XdMe>__CG7751DIchyĿL@[mqcצA06vAR܀jm!NDj8bM-itSF'lL{6n#q  gi6^2∊rru=8/9Tcp1"" .!8!isFN)_B  vxLNtLC=w(juI+5D'Df$XrZb/|$/o0V_n{nkZۺm,IЩvDAU___(`Ym[S@_]) 홓4f}ͩ[Y<{s-xMpRVώ~?+qOOONx@)8u]R:d>yίA!LGX36H7ҒJDH̵T41ΉӒ28R5suaY$1E?Qd&dw zYUxRp%Ӗ< nUk@D,x_s@2JNR״\/R[C R_$*,q|%Q8ص֗cZ} $!9x "R^g:PGf,Lbp3ZZKk1*۶F^ %8B;_6 SH"y'"N)GOl@<'Gz) Q@0buYfB&bTZ6[ZM9 ;+Q|XX x 0ز,ޞ+>Ƅ WH9+'fa$WZj9JyUM:sBL$%!sDDHr^_BN`]\!D>ɲa3ִ $:X'cRR6mZ$%I :pL (>N~ҏ~)>Mt*韮?,Ov.~|zØJ$%3S#ܛ)M?Nڿ?O~6|P~B(] '4/~A^Ӳ,[kG=P$S@3B\G;3 VݽE'E1lz$`iiTTJ:ĚPfOJv^yl N 50x ;l_*$|XO1공8/| sw9&!@>{HZ#9]TvA82$U2P`@tB=G;jJ fjj,DMXHr5%:G]G=Ϯ!C'F`rGWXq󺭗mk5K)YS`$Fz|ܘ U}ecIGﻻnǾu]"zW,(ގ81K$V5jlI,B/G#'Ἥ)̂ w0vsWĈfVͬFh,6GqKCQo{$wv>A9[5=x4ps|D @k͔̀PHԣڵbk k3^ZO@P|b؇FUaP!CdC/ˊP#f}oYAZS ?q?Z1a&@`fH!b$Q )k"Z=f|u%xգyuտ.=C#IY@)G6#`\~xElBOkj5XSOrw?{N]U33N|.=Bwrvb~2$?نwͿL젔$R@|Ԟ0{r֪5Es 5=ȼ^0 Ptnfρ?0z )!xKu`]!pi7s"nF"ԱUDRs; &@۶˺[lrn9+/"sS <:S8-HWhpDB>)p%Uk1yOh)=)غ'M%zE OHN)4E*Ջn~PG>e>{ó?£ȪEG5GB`%X 72=}#݋G0u>NJ 1^ ͼ5''V(F^k+DĨD׼.Y`ϭAd { ]EDc-8Эw#;̼sp; )YhcbO柖qYDYLg9;i ap %=?hv .fբ4TUuF֜;$AfmK) 3-n4T=mC")`3:욙[5~NI %PK;}oM86|y{M)EOOF#Bb^^oDaDNRD'NW_9Zz]~Y D"lk"%V Z}h9cNlNZ3斷EZk%lQkacY41e˼itUh ~=Jg 2Ϙ?5<,vt-vtcRY㇨ż[ƍjyeYrS]W zw<n>՟.J NtEG /{iZS"Jz}_B! 9I u`HW[EDbhH Jq^T8nꝲ y2J:VN)ПG(qmJDQ 8<?G9 g_c `aHSh2@ɻ3u-kyׂm!(SE<+E mT7wu6U :C;iO3hff- 9|QrW"F^n<@6jEf/UǔqЇcAUM~w +Z"@!'JLr=Z(" "'rPډĘ;5-JJ3l=8 *!*~ys@"@Uսp3[VWQ &Gy@L\꠯ f(ܚ:<]Ph`d$ܓEc>OkG7E>a~2?)k?bE~=8 {tS8!A "$"'L !QL:to9s20fă èYpL=lZOhLB ?&Ӎߌ•iVͬim_Iܧc`+B5\Xk֦3ljn$YzBu0H@iUkFLޛ0UH9I8ʑ,IhMeYjjNiɫpp`B2uSBN8b$qkk)r]+-om`Dmc㱗]rBƜ}\~ؑgg~NQZPkmLLH1ghI OŨBEHO"-4ݱL:HQ8J4 iKCag؎l#Tp3>ڣ>U5x)Qehd'yL"joJUP SJT[%.)Unׯ̎||||MD~ׯcr8HjkU@`k{ʲm[k˗/ p[lf,DT[37Dr7m[̒t6mr& 20ΊyIfb.AJ,y]DVVaZ,LMk)8lAbH " J$halK{HD|R*4S6/'QlG CfZk)&>~V>̙ҒW"v7$f fb ڈZ@DJ~|[B,]֗QIh%}?՜DDKQ9]Wb4RV[7s" Y%3䜖e}p9uMݑv"QWjUc};"nUqww3H$$DF;ZF`؏Pg'U}N_;'r1Пc0DkC݄#nfnnbltt "[Bn-KSéq=&G! M[b*_rRfH"A`] *8]A 3BNDvnQplઈf?'áCs i |TEDXM{mw ~JVs3Q".)w z}=b-!m˺l"jq׷^_m[P@#56?zf`dȄ S3BSJ%!j KJL}cΫ#Ƥ@>ե.fl>㚭O/h}=)4\QQaOBJ#pE@E8%yK̼%sY2'=ba숐h? AkE[Dr1%j`?Q1]18epw@U2 dR@H`Gmr!eFJ)n5J;ɽ7eE<c^Ȓ;Q."@3 *{I)ĴRrROTgNJ>Ať/Щt8H{p:EwtDE@ # çOJiyW=ԩ?^B*<̳Is"r'#]H~#qep\,9pMw=hf!"\DenArٓ*\!Zge={l4UMuYPRSL4w>!"O(c?Idjfё,T3Z[Ev�^xהUnen|\"VZ{`˿\.4X)[kQha}[-eYB?*ke\M5\)E~U7&*~Kk ɽ)`EH#)l~hV 6t~nY9Gf y$=Xo7?)Ԍю5QN,8ѳj=]=nh-/{1Z]۶\צdǏ)-ZhcU=9F4@g8-E>bA|ﻙX7-SCJljF :2?8\Z >z.?' q?c7 IDATYˋAzݪV"Z(Wׁ RQ?afs;i4>2]?tSi*)QVqW יrGu^l 5*^UA-,pJН`Hk980ש {ZF|BK0%t61;TkM]0W=;G"عqBT^gUUÁӢ}O-P9%s&flxp5n̴8 I \kkÚr"Rǭ5{}@圽ZPdIfio eZMlѣ #\}ߗ@83j[sf£cGuPB;(9 'P7-Z[1'pf=6xَ5]m @Ez_EZFj ܁)磒RfMd%erQd^cHWBeafYA™UIF] =r!f.!f߿G)TCcZm Ⱥ,DZˋȜhpXhdǜ k (MOS30QE,A8 O{/ "~Ex$Ɉ9[M9/I$(zע0[}9Dk`};bmQS$HiA"#kWnx$ yZ(2|f8Ue]j-58RtH1{O]yL-1LiVMN=ubu:Sg;J#6M3?x&oۅ\ (8-I,q(]hƫ6PFO6"d,Cp%x4$:h@;Y٘O///Zq3gڃwac˱:/F[㳏p~݁?TO0kig3o[ט뫈_{lFduݶ˲vu}}2~=eV\MѲb ~Ff,k?Ȁ{ɒZDt82@* 9rg|ьm#s(cxN,KZ]r9,vꎪ Ww4>,$ӈhz9IdFy;Sд̴!#'*DdAUEHDf0 %B̘nG#b9p(i]s)8.,ksZ׌QC`XN hjfv앙cjZkJ)qK $Ĵ b68sv?E/QDCCjfpc"d[˖<Ejd1h)ckRg콜)SnC RUlDIjj(G# Ax:"|Ez#+v#B('V&x {d!=' m<WS.0@WeA}{JizB(HDo,hx<^^3\.˲q߃F86 yf5KǸ!]Cşx%mm=ªx{{;պ??ԇaؙ4 K)F_~y-ey1C Sd̀ ѡ˲xVkl<;zG80RȌfhuU"/_ɌG!l3($wJ<:h0'qWd`65$LKOZ?ɚ2s0Cb" 1}J1gCY+&ίN)`YcHQzLSm2ھ˒3MV7T~ǣaS3'j w4R .UB|SN@˲V0ke8`qz! KWfjOkBD uįZK);q^5~CAg@`?@꨼ MUR(*` ()m1HIsNs@x1*D cf9S*.Hk-&4xULY.68zd&FƔ>ÚX9g.E,]m= ?.ZACAvy.9i*Ӕ3m(ez>E$- ̣&fLȣT:4M_~lfu_m_~vu7=Yt>y0y^^0s0p #twIJCx{O<.z薻kepCaf7STw6V YRwK?̽y{P0sC ";ۋl{~^Y >&iR݁n$,q!ޮ5в,9i.vބOs(pHaxwS`7xqP'#vwGfw4zh|s,3;4#p'_t~;p/StH-c?x8au!|8qGܟQ7B) -F=O%Ղv;==T"Zyގw."Q?8uX:$uո܍%;"'};cxjН<_ֵ6۽NEWS3K___~?K'#ӜsZJ8t7yu A]<1G naH{aDD/Ҿwýń?}Rjvj %,AڛFTJQՀZs\̬4.)ads"cRR>8wHc"bĦc;O2gMh}BضJ˾^E]t`vELD>|`fjMLsfFb0N۸'zE3۶ p,m[،DBiC0bN%~u:./0zywOAȶmR}OG2O措GxjPGu G̢eX|5E=ޣf?|dfg>ʱ٧!>zh|ڷNg>^ O.Naf#NwÝqA#}%cL.=O%LDG;qSmf%?s4-:>})q}wxk{+_5LE B1NLXV/՜yLvyɛ\&j\&VqF2*Sy*Ho[^n&sk-@V\:8Ue3ܩe.m//_9 ֠Xs! eCQ:D{6{w}&Dtфd Wc%m%VĘ|cو H(~hX;ܙ 8֕6ӼG/D ba7ᷛkJZĘ9Mfp۩jP4 rMdO2%sץvÿu'&Wv0"nis]ӫZu s.u1:"u@*Xs5$%h1TFCx? 3(2;v!` [@.,K)5bSϾO2g3H082ADygяMKŋthg uy d8~q;[?^yc=~t\~c5<5sZp聪lMcI4!iʹ  Y^ieԽc$0bsrx8~`tRǺn4Mn;8{a|s^//Ǫh.f8mH `)&mϵV@׌ XrGsq s'LǢֺm5swL5$vwfrSꦛ^at% F~V74|uN9/w>a E~ÓA',YTzt% '"f53SbmҪ5dOVMЉiwMݐmt|8sý 5Ef~>֊̥۶].Z55 v[m&PC4嗗NiF_֐4ϧӬ̹r4˥nBĪΔSNy9&N05U)6rJyj@93ӗg1ČT(Oi1=sY.o[*|>01-&GĠKNDD̚4444 'C 3qSĀnJjb 折 ԄK)4V,ضp[uĉЉbnmJ,N>joח-ϟ___})oqʔ)4O3O( :Q` Zlv03Һք9Emx\[VEUkg=Z|\Dl4Q&x]Ľh{ef'14r\QLF%qm42f.pπ='H0ɩ!y Ay,+9ua=) Gߎpۑd]cg_ K*9#Qb^M`9mDA"WMʹ"28;iOL03{52?;nw" Qy TUqHK:=$]˗u]u*֐J3-eR۶mZ9zחV|OXU2$wBbDΈQ= a)gO?{4/J('tU<gd(L]xNmU՜R.RRB'W(\f8ý˰"c¨O;3R]+Ҿ|+]Q >jut ðPO (pܚv0brq0_ CRC E^u5doyV"z\yjrTkm萗t3,H nKa)M;lz*1XG7!awװʩG\"bx,|]LĶv]\xy[Y<$~׏ƽWxPxpqTq6N;vPNPC`$kVWUE\S*{ j2##2ARUqNɀ@X4 6RUD4u@#f"NNoYiVoEq-e]o7fOϧ<5zĉ٢v&f˕ReImfh1sІbVtʔ4%`rF>efwO :TIUjYLiL)2˲TijAū8Τ|Q|ƩLyAN`記D: SC#5( 3g`UwW=ꆦhB"  \T9qf3,a0~-[0ۻαs$ڙ_=Zt,;4(z41Qh_1"JK^sJl <圷^ 9؃x!">Xi0 t߉ Nh)wwԲûND ջ8;b%f@0]wO,0\> _УppaMc3 yب!S%D0LHHsI5E;f :kTc Y36)}{c|m}^^0 bc0O;@5U|J2MD=Ԛ'&@yY>}4/td:9FT&*Rf74m > ^~":N<'L|0 *9Ri<Ȭ#a8,^\bnv@RP #Zs2@0$ĮRwslԉvH{G 8uDs%r |)0M L% \53 XEiJ[kr"zJv^׷uG~#`ov#(-y攒BjĬQ&{o>^SU!$C!$Dہpkz'hf[<Ȼa\?=j=? =菣2;/ (a/ KcᐇyGegi8 3y6Eq̬pOD%8rҙDE+ "1I?s*!#TkZ)dbSvO|z)mդnsp!MLYQ\MA5lx۶RJzzz\^P {1*z\fwr] !!kݶmcܱDm^^\5L"fvs (r#CsW 6O :R:ĜF(ҁ "̻\9gF"}T^3L;9]m o S,b9MSIHfVJjH"ZL9ctǻYR{cG^,[E9sBD쫕30YD$r" [ 9mt>"TR6+R]ܺzHUAm4}fDVV6Ĉo_er//'Z/ǿL <%25)ye+śѺ s*ޘ TL̂>0XoW0JCedƒ3K9lZ{S(f>ozG.!잟ض@B3%HT[b]__.F>n̤OgpzGi{twW]E~Q7}|^xtuttWs6Wpθ%Xl(BC5nYc\`۶hq秧W)5n4M"5䜂DO)j8E ]982榃$VI*J1NKryK0Z@EN|Z& #B̯o_/7`,4 "m6Xi/ vCiYr."jdѶZ&ʦ&?|sj jfBoˏ]\Xk7[Χ49Ό9߂o$"27Ωi3$V]Ty"ΜLMTE)iMjT iVeOZKSTrIH),N<''ʬ*ޫcRZ:W=-fQZuR|hb5)KJ'v޽Sa/Y`N FZw$4D ,FtecIùrw$dNV1.6kMiJiӶu]ÇOD|U% c#B)LkuT-]Q~iJ)G` Ckӧykv70ډHSi92"45U,գJ4 i/o6wK9{L`*[n#O[ʱwGY`a9!_R=‰GI@= /;!"h OhMsT$!`1VXiQ祐F4;ec◎3?1+8Qf8aὒyS"G7'*mL&ZU "M ݐ@DD$wӉ)it4O)'@8AqcUF"! 32mZ$>qD)v2R@ .KLfys)IN-M20b([&ExGL%0SX.xQxHDD;ɞ81'im'`@iS9@VJн(I?|l<㋱Ǐ_j c0"V& oZ?njlx*M2!&&koLOT@Z0c 'iD'"4DnZ"w-D0Q; s zsӣ"2`ӭ^90D9H YT2c00$̔Im+ˌL*B$Z@#!Fz/ӝҦ$.feǖ///?`w`x:*6̣*сxf; 4q,3~Gy޴C=9~}! bKZYp3n9JԎ%%w1x eQX߽ 5:ro Ç07Pg%]a{'90 /R;G'_O*u]Z_շҚv"4MemۀD*NsQmlNV֢kat:n2#q\€":!;c,yƴR] -| riRI864SfFP%tr3m*jnN)SJ%eBCܙSKkHyɲ,\# AbDW\.~uG{`q-0 Θynj݀FɲCL63ϐKb[X5AJ)pGCx/^ D~RJi I~?nLӄ=KAT!DVcy\{iq\H#< ჈A&$*:#Bw_Gu +o 9rD>m\̬m}>s@ BDTDZrfbmFD*vE+YX-)SR4uM4*6u= ﵟDlMМp&Ā f".jUUq/xdh {Wpg {h=U [y!9s9£djC>* qv,뿍&(pK1^_;~7|0Rnzkms4i$")%G9;y"~}w TUT=1;Ggb Ed\&tjID:-321#y۶ ڲ,׷ 3RKt>;4iVm! ׺!bD!p܁p௎X|^P.UkyS}lc!9^8vcT&ڎLz} a o7uPwpt̬Yk-bI/'Th4c*qX$WGax|$֋5Δ7859'A4 LF/10酙HaaE)qx׵nRg{lopeok=d ax#E]ѾJ73Ө W(\+ސj< XvޫȃǷgo$_Ac~Qo>}0HaWk0hNOViL z)}R QvSmOOOu:D;$r쌃f.dtQ;<::zTBDF vt3?=>|x6M֦R0!53NˉD9tV,)`7_:302z۶&~.+)%.kRZ++9[k-䠻5)(""tp9EȘ-@fc6$ȱv4 +6g IDATi쇀X=XP)P1}۶ ^p";fDqCAрG{ ߵ^.`{7πV8AG%GF75%x]4wQc!RJ)*?]O ;fa>6ƜbD<0pCL9gM#pww~sϾhrR-([/CTa"CWx6D{*GA?%YKǃ ؘo3^7x8&;Nvܴ҉O|ǯ_|/?~6T|!ϿᙯU6ݘ9ψ "|bJfQ9e(m]E"ǐJD̈yMid<`0gJIzNֶ)}k[7ـa^ rStb.VE;NLӴkx,9yor9OIݚvܶӹpa8Ka9"z.ܢm]ںmR0#B*1+$$EZs&{+ÔҜu!#t7T}60ZG^2zNR} F~"5Pux0vLꉌYS! @p=rޮ'ʒrnWpPpBr6sCamJsAf&RO B" =၈N` A-j"63½MYK/(!3c" H3wNj<k ] 4!PtaDRJYJY\ZkΘsf:IDo7ӟ=??ooϟm MTv2|rZĦznfdt:XΙȺ^K%6ןO?L~o~//rl5kMkY g~]˔vrn۲,~Ǐ?,8qɭ5u9O˼KeamU3@iBǿ󳊵6i"mJEMz}|}˟OçÿO?GǏ?4gQu//e')1 *d9̙K& R̔b:y=y#Xx[SknQ[(<(2hc1Wk ` {9뺚:Un?̼ai"fV 4ZND R,<9xBf"%T& zu!OQGo+zB>ՕT,!CɌ1䢎N}<?J_dѪݜFtďu}\R٧>;P:.4"\,˜n>8G/Wg}n6b\]Ɵ-X, a_.Fxݢ .}xxxz!h)1! @ `J)%>R'2U!1`_\?9? Ӕ#E`SSM}÷Vk3n6d0Ttiud9Z-";mtsu}HfP7wᄑn_9qZinf26ca;Ti)E3*62DExb>ZƑ)#s*G( : @DSJ"2:DEO@dH̎UK+)Q#. ^!! U BPAヒS1S vI"a-`=9"s} @RPE@!Vg 8е]۴,YP bA8Gfլ>.xaL9gXt,nM&m"2w:fγH T ^@V943 \M I4"b[I'y-QH~`$$^'ю;oORzs>Y{? tZ|O}gJhjj@f4!%>iXqo߹໮Ua%$6ww/οxO'3Mg˟X,qΟ>nn m>/;p~ͷo[98P9!"2!eσuN8Ou>4]`pD$F \ٙPۭl]pRu_zuαR叁XRmc&:Ǣ!zRF++*#8$@"B`!x8f1U+PMA@2Gc=Q`(YU3O.|ty~wn:2)5.޼ySViw:51,Wgn-aD4dvH@,YpE#pHեhn4$cNDNC4@k)ZQR38 h!".$4M Ům6R jUJV1Ǜv8/^@'[w_ݾv̸peI_吆 ÎzZ5}3anvݜ-w"֘a8!ӓrXm˔u˾L$+%b{#}D4My+ڧ ~UEi!cYryr,l6*vK6t8M{BF\Y&I?PfQHĈDL E@K Aj^}N91qbpfwﯯ/4>o6]-Wg)o޽ojF~qqO3{!"9V >4LLioSN5)gi(2Gh6RLKuR>a`bI3) GRs38pҚ cfPcyf.j >G?zf[,/^sO_ſ3oZr7RڔS<v) rP䞻"֒`nj} ǎƑ?X""B~i&F839ZEEGcE Z2h}`fI*#(A o 3)@4U.,3Q5sH4*gL4$ɱ##;x"$$EmYkYzDTK|e !@T&JQP0%OEr RkBDDeet]X,y?z6Ć G&Wc5 M("fE%E5G8@ ҩnTQ%P#7GS0"l6]wx)O"cQQޣ!FҘ3-%4N83˿e~_^qz(nW[9łhVAVy ~'m|N=韸}b Ri\ __mw"=_n{&?}{CBqȈ"uڀWWWq .gλnsivylʁLJꌐ9=x綛ufRr;4*BcRXy cƢeGCc8m`~Oi 1"6Miqi m#!amZ-s%27q캶mC\.]\^\mC _XvMS2)6MӟٟiڏC׷cN1gϞ"8fe/7mĦfs2|5}% crXg...UuׂF +g?030\yLU؃!4MKĹM.B!4DlbR4My:gH ,1SZ O4.9F&$&#Pnm朏!")hHYD$'L.еM׶"tRDMTDE"V;Cm¡F!!@WgFL1GN,萷뭌jaB<[zv_~ٓ{ųg/>/_>|XMiaO?v^@00QJSr6*RVT sp0ݘmJI4%4N)eS<2nqѲ0JL1#JU71q[ur&$B5g2B@CHaN(7!Bb}hfmU@UBC-:q);b2g/n(8iۦi۶92)SIniƭeɩ:$3)x٤Ib T@P;|qV,MUTNTgWrFdC :C5l0M*Bj~a5璂i4!}>?d)1CǒQ1G9f;Q=.QOhOѤ~''r}l?Ag|8 SJip㑢eJs-*Uby#RR4Nbm{"B4 ]\vq]_ oί޼y?4aֶb4X1f6Yǔ7 ˮUS !~lR΍GEM4qY@5M q:vt:BcqTeuq8iO`m lgESokU0dYa%T;6FB97af1܀&UC _Z/i*qu]ւ`*gnXAA 8eo8a96Z+J)qPz1q+!a}˹RJWBY%ȃRjȩ "`]Q* c J4S&.6³ۤҭu$eH)Uw3Y)|$F *RDXS<H%ڛ~ pL-T& E Ց(G[ltnLyۡQΒ GE_ޫ7KRYif6 âlMdGp~[.xS5E{45\DC5p6[ hBf"@_tMX8 (o<$!x"BBf!DrTskync`7-9FoV9 Տm?zrݖ>== 0|~~q0ժ.gݷU(֑NonsDKqRL_\1Ph26n-2O[5cLz@x t9@}Wx\[3wP23ϼ{D?~0p9Uɕ ; kw%iknH4-EQ:`D\́8bfN8o23Vo{0F׾bJ?:@d-2)41]x/_<_vw!6z<dd`rE,;OaMLLr>Kb."<9G`Tr!13JP *0]Ds&؉`mیɊ|J%OR4eϡi6rC 1@*SwZh&U8wGSx| 1^||0ɃIsӥ1 LJ '&:h_o?Oof9ݽ& [tVDd@H/BN=dݭwvRRJud oEEG>!__ fynfOcoADsf[ōHkz |HJ"wuzUo']:jڴXa(TCvfIkE[L;~q[\_"dFdƐ$yGѨl `>PIS. lQR&&0h4m'F%Iާ"ؒ2X]I]ιݞwR,p w۝:$" !r?) fw{Gt'P`NOㇶߨ6w7?<_Ya8cX>44T(9LR>s>yIՈ{!0Ů闋3DyjBvvx7)^+2,Y9lk)vq1,rP5Ԡ0L ƀnNU <3[2" a 娪I1mc@A5cv}:G'LW~׿w'O߽}?Mjm_9`f&I0MS% KXIHQ 4k}ǔ1a):;!4&(~?zO>uޮ<]^7Mض^zMys֦i xqZ,!lLf0sO[\&GgߥtVUNq]NJ! Q a@>ܜY"AfċŢ`xc (ZJ3Dt|ʟ1cGlsRZf|4ՖprMQUK\x6 $$vƢs^uZ-YHQOZUZ B0.˳"m]VWк!,o޼DѤ %dq X* 2\]W0"%irQUEbh)Dɚ4B< !bާҘI`Qt!cĮ#ؓ)n> :d5Ӂ;&՟IRi7OxyO괎 '84o^pyIF NG?<:zig.8ZZR12Wt?Վ;?RW'"Y?T"03[?lg_}-&բMofO7O<~7j%Rǝkf}ReDiT$ɥ}*iITsP96)E%睋4,T&[m1}<,aɁon۟gnqWoM!FO fF>T~J ID!B"ڮ"RUZ43Yb@&s)ZF(ŦO.|KnG jf7 C4޽yfq14f54=<J CZmKΓ6;X]jΓ $MS1W@ѕRȨi6vZ,SIgږ! [ߗ>4Mǰ]G";Tvh5ZӔ/?İZc'sk'G䟧_52Ndx"Ol~$DD5J~E "Ôˬ޿_L0 O..Ьw2Uv~Y4r:f33nb7:ӧW7P %6DIe"^0QIYM9 bEFL؄q]Moc۵ xww1I!d41iewnYq* (&Fhg~b R'M@5qODEJiLAjb싗O~ϟ?<>ފHE$v?{Q #8[7\ jd[r}}h1"RȌuTPA@1KB&WHbd梥dA"ҤSTOzY@}l/bs4K)L4:d,of8YhcSRԈ(:Xil*LP8k  sU@~?UK-`13@łŢf&+O;"9ь|HȳEV Q`#fi*!_, ڭ7y_ G*4_μYǡYnwB>:˫O~_صgճgϞ|?OkRt=cUM?Z4Dt 8}-E\ԪiT1A9}}pirs/o"j|r}u8sdӰoErۧ?oާa2&J%d衄uL*E$̯짌匨st-(h#+<~(2r>{>9Xm^/=7eW_E'wè):*9ke YeR+zAL>:Cf>6#iB@q%>a$1(нvesC#O@:L) 0qq֓m|y}ޅRtio14]_,a0r?%r~J ~b%._EEEqh~/EMӮכ6 *DLvmlb Lޭ)'^ȑ ~H#2&)>zCCnل+ B Ǣ *)'m\rR픦mY$ES&B3}8s&EC:1Rp qN)TH)8"8ݔ&QQSF1Q4C1cd8$JF7]:J@BcfFFRlu- ;׵ 14Wuئ<-j\5AÇ-Id2lw݇X=fuۻ$FlHd@2Gm9ŧ/f`f0Շj:>"ec,uaƹ?6  pˋqJ[mG0~~,vpIsa6.QIҴy @AUً~zndUof~}ljϖ˧7ׁ]Ma#P4@8G~~[Pb/^\=o6ӣH^-n͹?g^үn7w&6\Fղ}{VLJIF}Gr@+:&i*ma{hXG(eejCm}k/Wn\vٳA"!;.&ι\*NIJє33&3CZ !ɐqo_|o}W~ R&rw":oޑ_{WWWOgZ#9)t~|˯~VDS31V c.IUP{48D̑<*j)e#"ֵض9b.-3+Z*ͅrҔK)E Dfy.6fք4qY?2sp׵m?pϬZDT5hij:ַ< 70L3ATT9BGHB%$>Ǫu@fU{H)g3J"@"ɗRMֻFh^>os^ܭ7¾"6Z-xv}xqqAӟŋWvQUWEQ gN"Ŕf9%L%T1feYzZ{ wsuuUuUuUw6ml`L A 4 062Vd춻ʌ~ϰx޼YU(:qw8ܽ$B@\l$!Cz=a6)뎒` ̜I[cs FkVȆh1i|prԚͧ3`^/W˗m\MNUWg۶O T5[R E*@x8)[=JhKIǷ=1ǡ ?m`K Ot E/9(:YӤϛvg|>n*zpumBU1~%REf>yDڴsnb]f:3ƌE΢6f뷗g E mU DͷƙݰwEId^_+c[v!r}Ox5?/%b &ar0(:fI#9҈ #"u},ͯV9#E!I8gk`\6&70쭭1DƏ~^o7ι`Sd2ULݺ*8FDYH0sƌAA3޽ypu=>vUdVGWYi}jF[7϶d6icLhC]klyxUU똙+f*cLlXUU!'Pb*EHb6ı{ )P*mQc]`ǑY:e,SfJ)CG=f"Xd])U`SWqi;mA8%0,8|R*Tt I "fZ[h>[z2 q1F[7*+1Ԯ!Čǟ4]8fQGs(KA眾^0x|#^; a8Zq)2v&TmڦiQڗu qY!mݣG:DD9JZZ]vƢᕾ.=˺ͶԚsSJE IeaC LD1qZsv6`l6n۶ڮַXoc>䳋d^Vj?c$PG3Q2j"y#C+BhF)uss e{fI]:]uw)sΠZ7imq6;}B!3!;vAui' 5*`m=!olQ02s&TM*!ndҎp%mu:sfB:uf2iZW7u=mۉ/}חWgMe//"ՃGi˒v\XԈNkV<8GLkqr%P^m?vV&Ƭf2 m Mw޼[[w~g>|_c4}ߕw%6 ul<cś~gJr+۶DZ}1IJYMFƶiɘۗ>p~8;ƛZk{4nB"#9gC?#bcUU"3x?KUW_@mf"2}a+#)A="ƺiZ2hzT% fVɳf'OVUYx<)b"@eΜs}p@qH/>}L74؏1t~ҶknۮVy zִݧRUUSJiT7/koԂC?vrnٳ|ŋmծ*MUB8tt3Y:;'J#2jȚ2ͤ!xdj4XQ=Q݊! $fQ*s.]R2͒axW'? 9_]_@ɿR BBcZ6q z.nhKD$h ["]:c@Ab `^ߝwcm6mgı_~yãH>i}B-X9cKW ⶬMdRd73sbjU~ݔfYC̞mm]e}?HZK6 iN10H2aJN`$qK.V!+(R$K Ճ/˛u7t҆qVuZM'Yry샱;o#@\G)|_ft]9Gu%,7TVc1"T{]ϩ4Q[puE{6KLDPkR H#sb. &P[ͥ.3ǔsuݭ6D >,jKX-rZ׮)8[b1hdz|=yk{?&a)J@Jk](#(Qx8Ҝ@.UYvݏUtьcP$ s'o>h9E;CU39o7ڗrӧqty)000kc\9&ͼghfș%"&(Af,^y3+l6cLs5IbAHXbY)kԵkΛYe]~Z77>:;]u]aޯDlz6 bFY_?zλv"M@PFS^3r"ӌN49.J}^8y5@x5)=`QGkNwR4T)'w/C˕m&WH.y{ׁqc}_7owG,?8$~|R~m;,9ř&sw{G4/m&l\Uk! zvu8QY1Z[m(LHɬQ!}YwTƑ"ܯl5̈́h@ 'Mk1D*Z \чsZ8"rL9`Jޯ~|fu>4}O>~C)5Br2 6vLXҵdҴ<2դQ ҵMs}~QY'u}־gQ [k5YHY9÷?Gش1Y!CBT! xbGD̜3d:Q"Gc gf9A(L) " )zH9?DAuM rEl5\ S{oMEp)G*@8­>~qL9aaVHk"ʜC)gQDRt.TQafVjUN@2眲* pLI1 @AbJdgb!-̙3'"_ѤH03?6ۗ7O>|nn2Z)_?;Wo/[{߆?ynz&"cYPcQPnFĤMSOr#K DIa#kA UDh1A*T,j{>F ^,H Yc}ݺsʻvf\.ۍz:x`7`75,{W'Tp2')E駼#pGStzE'\:9˿x5[rlhlqǿſ딢r[./<~[oϯϯq ~1(J1:FoA8^'7Qi3HCZ룲i gu؃NDU)A) -DRdq$ݭn>vN3>(aZݯwf-S:SEĔҾӘwR'tzqqqsb֙RL&/_bCF i511/n6W%ETZis]7䡌d Pʥ0qF1"AEE)%MY3l7ϟ<}gHͦ2tjs q+k=>d@H6`[g TU0v5f>ǜ&gg8f@3i ŖR몵}P i)esa`ZcV82Rh3Z >ŘSZvRw5 k 1ƪLfsyyX,7- Mr(BNkY%v[#Ƙ2xGg;RRa5 8`2R1Ve +Jp{g}V1gᤔ*`Tf`~jo|O֮ }%-]}O%Ôd6}y2ͮYw!c*h%3kTHYk1qT1#|1"RוP6LcR>(a1hEYZH)I/st]$ǡˤi{w///1ЇilsۃUt–h`3!HaxtL;Ufrgb1]>M3NniȼƘß8k+gz*眩H!kl5ilيsUFm۴L)iSqT Ni{>蚀/fֹJkD na!f}w\]m[a!nۦ3e1Ml6{ǙUU[vR1Ʈ|Q# kaۖYw M9GsvݥUU@ffa 0d7F[cB,tMSk"󳋶m i\]^ܬV}b1#1{Y1P/k\ʹ C7朕i&wYo7C\[qԕM~IpHɧD %YNe4RdNooﺡS%L&[2 E7LBH!bU|!cqOLd9f?~9rӧwwwEz:f3붡o7?'?'pj=YiOAA=)*UP~#q92SOH^+vzPGsɽ~_ shg~W7.> ʹKM6dSUΧn|N1d_}?ԶcT)6}Igͬm4d!Ն$'"=zt6;["n۝>rp&<ۂT%9qI;lLMfSĈcJa0΂1&&/"(cSbȘ}!tq՞YC A 6V?Bb|)еjX8|:>)g7/bB!fFL)S)K!678Z/ 2s灙z)ZkQUZ% S!5U33cLb)x\ Erz`t>&tTr sĐҮU|rnh!:FsܲQOu Z~\''ǧz ߏJS`GӾ#I)Ytx18W 09 Z[_>x轟,@.1gMuZ!fַm^|uHnm)_]T )'}?rbmefq$!tø4D *2~[9d +_EDs2 Z+(ATU9x 93H;lvٴ-OB"!z^.sŢLLn'/m Ib{*D@aDQ(*%Y 'QDD@cօ&D kZ붝 XVP+hƘ?3 5 "~ku]s[[2jjmmUU/on^ܼ`l]731d(co st)gR>hLuLIP<˟f:?_rp.qpEN;8t)p'J_F((J6]B?҂2Jm6|;{~,uZ}ȇzq0 ]|d1wl3t]w}}=.6R+]Ok?rΓ]%j^ (a JiYbΜA}`溮r8v-=03O{&CzR9'Wճl*40lvv1h;L;WٔBu>Z.\ZЛ}!rٶmR8|>L&@(1r!CF].Ir"R@9H(޸ηկ|ݸ[G)M-M&= M`FM='OW5v/.r5,j"9뗷wz8B`f@"T!fz 0s^LgdMAD,i2C Ǡ%Lg!)}J .Y~M#"1a`6[4dm=ba~v^zZͦ뺺gzf~ RY_<݁:PB40SN6{_|Ug`bQOL /9ʓ¼_[k+>yF!ԵD;C jIm+%G΂$vf6h1nUcn߼蓧۾3)CI&TZDgPҁA c!#ptrFRu]rVPFk5_6ՓY;uĻ.ļZo/|$1B8"(_~bɚ,ic]ǜd!d/B$W},@`)4=x58] IDAT _|9N?ȟF駟cW\+˥ȇa(+)0l X[RT*EY8{8 㤩ʕABay\8SBF9;ōRAkŜ1scdID6<|mi8R n*[km3*/>yN?xru?۪QH#iMq7X,BZeD>;;C"P8=YSUV2>!kE(D(Y(u9 )c EZ;>4,VFkE9 UU5MɓƵ岠ꪕ~>L;;~ɟbΒ~+"G*(""H$ `(KPJP *ATJ[;py_BDJJ)R))$I[,P#H?P)խW_\]TqP9MU9ton\u1] ݈]"( sb j:JĀB,R]}ߵm]~]ׁh%HBB>*AWYPRhlg/o?6 h(Zڶn>zj|ސS@*kv*9YWY?{\ Q((uc 1"5©o<O_9)%8N泛n7v,m֔BW*|Ta>O?giшضooik):FZ_FDԋ"Cl6!UۮQaA{Z.gy7 ׫-lm4B~Ry][1܀$v[-"CTk "ED""&RJm;LR͆HL\y@wRL68'|c1}뺇WחV:}X.1bQ^(6R̜H撨i!RcC)$(ufIqYb>[,Te~UӴs kB2c;n[W77O>ۮ1 rGw덐1 rڹcjzi~n!X9opCDթK1dtRfjKΑsu]usv;1(Uz֓ʸRk:P]__պ fPgLeRvHPMrUUMR ωsHs.CTx4Ǻ3cO:*O:1~9Qq{~#٫NǺqPGW>%ɉV e?L}ʲ,08\Umpʁ_W7/ӾIV3KH1s43(/n'ȧ }Vk ™E$hUH_J7ɟEg`JsJiGEi\ke*SQ&JFQZ[eȊgNJPPRc딒l28k h[W9g)#M10  יqi2 AD Tk??i/5?F?<1:zq,ǟJE+"g1FWU9rBVnN oVfi"sffiɴ:^\ҫnƔ18"PsTu9[ki?v p~6ۮ7 iY/.z,Jb@f}N++8?_8WɴII4mɤ:'BP9TLlBJrI }CbWW1n[Us֓T(,ld:?Q˕ֺn&cHZWUU,]ONkTFg4ĉY2ǥ "**Tf1$:;D2**qxMSJ]kT8ꪩ RCfh+_rr|a//0l7kۗ7W qN6]Z @B5,כEN*W-!)Bme]W)j= C yafa=8JI)rޗ/\Ӷ58*Ĝs?4jB&U1Kμ^sΙ#ގqwBf>𻯹wUZ)YR)EEZ۔朱iHdJQ@H5:+5Rd,D[VSrsDA#!fd^,.XhƴIk*Ľ#a~R|1H. T0C"C0PDFaؕjtƏ} ѧq!qvKx:Fqn3uC%qtn;樂݈J1 'N)>]l m5fP"0#B@RI8Tfԁ^_{!(q2+?縐ӅwzrzQZ4{ BA">UZ̦ 2W 3'Θ8N|: ާ0勷y3ma۵1z), D[窚A~2/on Re+gͧ +닪r7w}߻a2"{_z'O)8s4WWWnpq>;[֛;Hi`IHfl#+@Iyzl. wng„;?)9zUSe]G_TaAZ(cUBĪn9V53698H@ĜcNBTUSOZc1˙aaFNv{kVb2eݘr?ƹ7wf_Wr_wG>y :$u~qys󲩛Eh6z]U5.9lVdn>cRdRX5sҁurnYZeH#jPǐ%IRc?ZBѵ㇕mwq+ܣw{0r~7޶,,@)Ήsa(JV!RM]knƀHyt˹&*P&5R3˃\+V;R!TZi2VP9'q #0(XBP$sN]̆׊*S(.n>{Ο7{X,ֵ]VXƪm[0N/f{fz~Ri΍c?&)sIZ㐱vH8"bNcBFlm68}NjS(CBݮ߁RjXp8ʤ8IP!X7zs#ʰmoWuÐXx}[/_>CZ; QZ4ߴ6DQ"Ue{h~}~fx22RhιL[d)G"fvΕhr#+AR)rmO'}BE"(@X{Fc 1z4oD ջ7AlsU Fb aZbBŔ2F[nl,?<<")"Ƙ*k5I㨮8C༔j{{'|T&`6Ge әC7vڌCز,;7x|GyjXkǪjAE">*M O@<:% C@{0<"a-"$}09f?Y] {OE@`bP8B=d t#w <>)BL=v"˚uȇHg|ƹ*o̽P.( 2ƌwY4MӦ]ł2ʹj":be G,N)EReV^[Ǽ{F P/U^.lee1JmK),  oaJ0%g%!GFX1ƇNx{o+!#)~5l&(!>@JeU[snM7Yelcﺜ\[l1VsnR}aJ)0=e,nUURdgoyo@p?  iFIn9BH?MTUuuq yQƅqF`qae7Vcʲ? 3쌭52a<s!ŝ3;;Ӌ\A.JyJ)""<ǔPSeCsB<f4)gEM(u,feLloo\^,yj]uAh0Z8E=$1"GmC>"F뺦ifEϲT8:o9k'(&9QUj0E)OG;?y jFF8F44׃웡׃APʪrrogwtuc3xvvv?xȭV- t$huwٖ9NU3{_uUUeY~HYgR^#ڑ1* ;{pӧcb?ݜsdcTq4Sƺӄɲ{=g>sx˓EnGc7jY9|p*w􏻻ښ']6"r!9wr1Ru]+l6܋s~TKfS&Q7yON8bZX;Bc"@Q/;i{Pk:bFbbE *TkՍ]0ӭ\N+@J8csF)fdUVI+j0PB'HJ)(c(jnEaM[d2qAJ)`G#GI(R:g ^ji@zg#G1Q"ai0 Q61F)+i1c;Ncl=ι{9"Ɠ({$Xn/6.]N?8ٹ9<>I{yxp'AH98Ȼw.p=qFQZeY޾{Z3C1eMSE$bNxtnƛbyMACq04uW;NGF18iaA6ʛ~h{+Uydq,gY}gYvcƽ8*mOo+ 3#~a '}0L&u]m;y9vH`(k;8cg`xu0Ƨ1a9$zdB#^qE).IpmFLy}~c8&y}NӮj%{b {Gƍ.]޻~q['?_7Nܟ̦}\\yN"9BYo!K (8yo?"O(J]L8wƸQ*qG8uG,ܚgfb; IDAT8'e 1c`E' aq>:s~\R]E vP=x.( .hDB3P0 CC( (VH {ALN_|J[#Dw @8駟MNsClnΓ$)XA)XlLӺ^]\5;Gi\NLjxjY"BϺ֍˦]uu1cB)uc zuR4M,1yL #xczg4^!1~U?zgE(JI^Qc !)%4#.anvd1\czbң&#m{ﮒ)ް( L7*|YO~74UsFEQ( co;N-r!n۶,|EQUU~x߿(E]4V|fwNzO]v^a _GLiU1" _W}ч?ݿFW_mmlzgv.um<~_?S|یco4Z딣Ǯ?Ƞ//?kETyjGH#*NBlG'4`LV@O}uGICTLBޫQeN)E㘏3?3{;[Fwߦy>xeY&xD)= nj8Z0qE6w>0YA0A# G"cut }q2Ϙԟ۶( XeYf4T*Rs y!]Ep ax)ƞ9k׮YqLβ{^BϸyQEi^reoo7x_'}7^" t/ྻBD(znhxV({dc0ӓR`80Ck\/(I8\P1`f|0U"5F@v`"aXyiFH0ZD%ȁ=!b1'eoz'yIkX8"tkVJYfsQ@ 1yNesƈ1TqQTYb cE!Biak-`jB!a@;d=8  a{HdZy{Lq^VE|9]gFd쥔HP"?+J0%tuW/ݺ?)K%,QA1Fv˯y5"ʙ̧{pN)KEq"ڦo*cƉ2D7;ˋ$J2(cbs;F%Ga&F-H,"F{'GMUi2D9],]_ɪZi!fQ΀HC)7 0#f^sqi pZ\+9Z-"{oltgi+\l* NkKDZeYiR׵`"Iw?sOaNQ|.(9:l TK/ }o C<Ίrز(JGwO;yBp.q*&!1FkކQq!1ErSEeD5+ cG{8(1na|%^/M򪣀) r1Ɣʓ,IKA'|t1jM@eҸ/7η-!.X) 3 {w?O8?E,: }߻; P,c˗/2G ug$Eb_2Niw~7|SD)Zֵ+9%>59omB1yEQ4M)'')p'IrRJG΢f6{4z))BW0LDd,1!k)GAy?dqbZcPJ0}l6C;kx'[[ۿwp8y XAe<jAeZcDqeR#%$aZWI)KU6 ]QJxIYD-x 8+U{,ĜlRqTň<#/BXݬC~cDEcy~("ʂMRJu#`V{u]΁?ྈcBC-{/1F 8&1c/'k=[a]UY9:,oug֙YY{wO|r,sB4Oڵ~?7oݝoomm^?_Wʙ0s9cpc1#OFںk8KNG>~޺?_לsIt}wRJpYcv~{_~ceN$r* J=0 c!DQBCuQxxPaoo/7o~|rYn U "(!< 0#ʕ˄પW_/~qx'76f;ikm08kG?ީRCBW|v~|sByNcE:$8I2."f&3N)[) id\.J(a*qcMUVIiI2"./ (/(a"QFWt1Bqf0M"t'v@d%f\+12EI%JZJIGHD]J:4(fr©(iFuq@Wus.0jIHʂ/X;Ej{oAJ xcOlomͧb6ɳȲ4$NӄwmG޻K"{떷vggm,K$γLHr7߼}k\{x|܌C3v1 3qVVq궶V˷=w"' 7a6(4pTXdYVf9gL0D#RPtQ4*I?lnl xyr 'qܵd2\l`@`)liu0J$IU5}{Bi4"4X |^{3X6s*g, D`nYqs!0J" Ad+,a8ec9 1b"+#=зEU/bZPQmqEB;}3Ӯ973LG0~[ť wxwg7\yGjV,Ztǡ)eGk+r: LhmԄDۇ?>O?G&>O?{eY<0L6 S#BT7mm^7,IXN!FEs tcr{r:M͗^~YJ9{E_k8[qw]B==6skysŐdNQˆ\.qغJ__],_U!Y4 3(%eq1Y@)*6\k3J0}{gymi{皦r^d\Tu]WmhkF/|ױY|7ߺG=#G#wN8cJsXTxBjy7A?"͠lsj Tv!TcF:B ]`bkQ&1ʙ`"1sNWc' !' 罽Bg{׋KRQi({w`],3*#K8q,ڶǞhYRrJ$^痶6(eR("O[5ur6f;''nj"K`ZZifY0kn1gQJ "4Jr>ژgN'~r&BDQ5dZeG!sb6`.VaBa$ s8 sUHYEQ0Ƃo|dYv[@tވ.L|^??I߷iQ%cզ^4/_+sbsdij ޏJY ށwC/~_xm$I8UJq¹_?8ǟٻ|BYT뮭FiZi6+ʿw~K__FeJUejɺd2/6,^wU}gxXO|3!YRdbo??$/}ߓYWmrUc.m0@cgs醦#D10b&8<MDDC?U]}_駟|'rھv?9GGGAYuttyF^$jC[{#U:X:Qqۿۿ}֭ZU>*]tݸ9BX&"FlV~MNͷpX cͧst\T ;yOI׋K%!ps> ?#}Wժ~Pj!q&Fk-?*7K=nԁ<vh"6^Y=m&QʇA]e&fFVN2U*"Ʃq#& "uZ:m*aq^˺S`b%*WYC[nݽ}!<QtSLU\o#$"&Gc?1GHڣn|ǟAƉu;;;;;t2_y_}o}vȆ\ w⏺g{AA%* 9nPܺuZ OmGg?$OO|_>>>6㘖|u뭷DE޶mZQw^: Ci1!!%fn?Hu}a;ء^ܿwkֈ`cpyuabvHi^/;E,{ c@Aai8#^Y; 0Qm[+)j1F·#뽳xcaqR2QBvL!ciAJ!, pJ) 윱jk뼵sp(b`)L&!CP֝ƃCP2kz]c,I"ѷc*FN#lЮ[H㨽ڈFA;hog? |≧~o޺ͷqڮfE36}Q&ج5Rw{i .su]Ukvb.$I8D.bpQ)uSba<(;oVkx$;Fq%,v! PDZg,4M>iݵuߴmDQ2Wűh9gqlKo-0N:)7?j}LFɞa&ai}I0E"kwA\oC^zFĜ3ezg)cۡQeT՛x9BQqAVVkL߷ƚ~yTC]W8jDBP̔]cFZF)u6-;ښFkstth 4?OON鏫UM&zE˓d⽗Ju"3ƍuIjecF!"Ch,˵6Z+|#:Z!EQ}8!^w IDATq(.<@2QE&1!:@} sO_Bȳq躦a_Z]sZ+#gP^{j:盀q${W676XR]ߟP9p!ڮe_{كwo~_TP0MΥK7oZo由ԏWo76N~=&0&xiVjW%%駟*b<1Zꫫ_W_n3VdRA:޽㏽c>[ڻ(M4rsmT.=3G}Z(ny\N4+0fIe;w^~l(޽}jBmmmVj3<ƘB3evιiBEu]$(" fo۷_y問ԧ^{ 0;Bwb(Z; |:褥qFhN$Bλnܺ (k*bVyEA[ Bp ΙRiam)Gk1ݯOfe?;ۿOKoqc:-YJ~CP1" ]MMkyD1g C!F.欐r躦~`oQD+R[du52FBnj&Z+k{$Dt]FXh h38) !ZN"b,sRc/4,0L匣,N'xytq:T  [QVYeYf6pµr?c?MH+,Ku}Rz<˓iQc3p B`kZ(F 1$2OH QTӎ9Y4M$DUU+I(WEZRz#9%Q mt,h\#pQG݈" r M,axWT˺ڼ[J) s7P˗/iq>dxsk_{%<ɲ)"2+LYأa1< awm/Ƙm !ȟ9a >9 lj{ t+8]#<$cZLG?~}["wv,"o,~ss%oCG#Ԥ˟=88RJ,7M)5*VtqSm7pƫ{RJw!j/˲x2vvuܹze!߿y7;Xm:cC D$ :(so߶>2Z,oƗd2ϲs$ɏȏ<_׿TUU֖1>o?{[ٿa4ɳ4wxmy|b16#IC/n57:f؍kI$j09<k=L@qZdcZ;ʮ{c[QVNexj4M5V|i"q Bp0J,OE߷RJ<[m#k՛h}g?^[ላHɤƔdK%D-Ǒ@ Cȱ-  DA8)BESZEJӳV{ٞ|8a ­=9]]YRq*B S= gq`9s΁vbr `i"nyd036Qe&ڔvS( Nw" Zo!ƸRm[MlUwܙNMPJIXk]m !.|5G`䋺GY]>j2X(%n99"b6QJ$!$Ivg;{4181LqꫯlV$zʾ;1NTSd{w}&I;Vp۶EQ5uh 뛎3)иkzXRΔ;{LZntӘa%@[}u!J 8L&7^{뭷O/ŒR Hw=`X,r9wO~᧓$ |X1Ds&/P;NANs )!V_,a7Ɣey'%.1sg s"0 >}h4z<ߟf &Ҍzy'R*˲qqUUEXvhy7~XFx,_E`0HZn$ٿzm鍟_;/>׮|>w2iue%Fv:n+<1 xFG2LI$FtlWUSj HX1z $0ƀ`8faGR,J1ăkRL)5 4ޖl.R̤8g34K92T|͖RJ)9x8` m 8sUE8j[͘kcz  kCHFBK1=d`$xXIFF η<#.HJp0X.Xjj9ػz1?wEJu[cyƽkmME@SրuS^Y_w;A %`,naqB(JȪ.`:Rm@qayO+zF`Bg~sV=YV''Gm]q: Nr{~zzBHYWƓP(ۺiQu]}4"RֽmAc-85*J!-:'l[tOqzqzqqdq՘16_-wvv`JaZEUU8bz+8LzY;{zzfCFrN&QJ,$JN7}ceYMq1F lA8/k BBwF%Ѧ70€أ?JyB[S[9mV+ѽ1rdIZc:FR1ΑIh{q'g1ϥUSKȘq:ǣ$bm?+Lg[7cGnިV>|?s#=F80Fy>t0L[q4ffn˦ivg;q8i2\uoO1_7ķϏ)CybB sӽLIqDIC:=tضPI vV%Iu|]߽L#N/۝kѷzj5qm`G0pcR5x1#;Ay,cF:Gp$0k`jS2˜qwIiG #lE&#1L@[({ \aH.ܺW~`vw28=MȘ~5'- D ;p1[ YG (Ė(!U]Ɠ(;$Qi$R{b~q换,㑵,KI]7;ӝܞO ǃl!zsh[iIʹt^y)+r0LRCtBVEOf:$j vvv?1W)e>xq۴䣵ØyfY!,ƈSLTESmYrժ9?]1u` 0hM"EFsƈ`gtӑw"7}S[<}'(۾*g7MݻAX^?999in=z4Nղ8{#Ez{d1 )u0tqvJd`@)y*Ja;ݛc͚suG(bBv]lITR /.:;_ #eJ|0Lt8bs°+Ycc?SJ'-?:VQkҙf\c %(r)Qk#D0dm(~cS&L&D$*R RF0-f}X5ݝ_eBx8IdJdw8.ыfnדnۖM[a,ۂ #E[4MKAѦ/{ShDA0 IzEFƍkq,?L]!9d1LE]>6ߝL{{+[-Wr3 g[? ڵeE*ϳ 987,KJNvfnEWw5b!ocB^;<JH @0C; ca#QL{L(˜Bj/P32uӵƘ.BK4NEJp 'W RK,e !L$s"`ESRg(ߺ Ze"8$yՏ;z1# S"$u]@Ι|\ofv@uuϸ=7p49_z0ɷ,9DP(A400` {!2LrQJDoѓtX.Q~8qG1~4mu41Azpfބ,-go޼z9 K(?3`:n& 1^k cr`^k鮷GX)hH)ʲmE#Dp]3&\!< LAd!bV*?:zlcTu齭ʭG`o8BsƸضo3TN>B@|L0!7n*aEB AkFLW:: Xc$K"#m=T}\PN}on6ItM;' TN׽Ywz. †{# 4d0;iS%y V7O|G Vr<1ڟ]䕫7n2*l8v7U4uQB*AeI"Z=0afQ簵R<fcji DUz4e,'c U#$ y۶ܘ/&_[E7۟>d<8}rPag5YhQǍr3mQ-Ř`. sjL"=q(%!P9AD {0q]/WMY)!/퐡m6&."S6` qrBG._a1=ajٛf4 ln:7aKF=0S1c,6MRc2.7޸yjQuݧip8\Œ J1=@#&%mzk(===d8!A.KEQկ.UKkFBxM ӵP΅O7 [mq`:`@6޺32B]4MI4MeYq\e/<oׯz;kWFn+ӵ1\˲7Z2RSLŮGuO%W-R5 2"ۧQcq1yM)㓇mdcٛ |c#WBg8'Y ڪq9#>)Qp&Oȧ|xr<xܕv:ݛ&;D!9Bel߷mob8VR MQ9DmV(&LcIJ\u \P5u׶RAqN 5Wpz8{MRBP3 Jd4!zYo<V\>s4!m6#"THTHؔj]0Q.Y6m帉2ɒ*sqaJ>n1X#`1֛zm"<mzݹwU'yf#>#FR}QUoHY1ftQlhY` i# @uRV/˿K[8Vٝj/G˃P]Jee ; MSk'EY6fYbN*1^g`ƿ,vTzC#(1ăN` !w'oMgM̀Z4VK ORҬfv#F{d = |~1|剌 1OA6kEd5ZwmG!k K{hoj[e G<Ƹ.Mئq`va2+vu(p 1 `=on`Fq"\ٴ$ͭۖͶj W*S=Z;>2i1*%vw INflz+ۦ̷3sW\HubD̬՜s"ȶ/{u{ QqsA8Jӣv'2nh$81cRJ@hyz.T|'g?iz~r{~|FP,_9֋uImQpY6bD0:QbA9k1*oBfY`:Э+1wZx 50)c &!JӠv}e+eB{`QuRʠ(7,u2 )e8a!Ӊ=c#aݗ}|RZ^뺎8 qdEҮƃ7hzB@#D)R` 񳳳(-9X)]~K/RYh%IPh@t)}J-'`DCǨ΁aoA>zX !EM98R'|cJymڮ5f\ZR.1!`nJ!DfYDm޻wEQ\_x2xAe6LƒXܺvo,ORg'GqȧlچSץ=\m*;k_qћoy|ttmg%],ħR=GҢ^yh>|NGxҾ(h6IW *Fz-RPl@&o/~s?[յXQvJL+f?_yGͺl"{Ʊu6k )dU6_pˮ)Wue| vfѩ- ]q)T}Te,UMv's#G,p Ѧ*lB0Bqwӓ"'h`PӘ 줬 Y$ gI_wyoWS!xNSg 1B10B QgU[5M&Ediӷӎ 1C,ֺn'{}ǒdy0_lG"&z[yڒ*("4Ǒx=O1Vl6a\ubRB[) D ÊRyfl^Z_P?z1L #B㐵gզ˒41SrJiYUR?>$9G0.}2d^:]!zZ 8޺jc\4w΁`:>:ɠm;DZ=gl:{?{kݻ镗 fm`~6Ђ\ko|O}ӟ/7UcSk-<-ğٟߧi&TK HxA8@ж !$]/w;w}g=zhۭT*?~3_޽rrux!HJ=ѽq"Q8K;L'e2dED06L^{{o)*SM\P1=hgg(o撪\ 52{ -u8V/ q%>CN"s#dmOzٍ#) Mq 3Ppk\wePwuau 8db>z7ʪ]l՝4S(w 8{epJD,Bwj  Ƙj[p+Y%*RXUUgq>ekbSdcQ&]!N)4uuS*%ф2fDQT9tK#d3 d|\1#;)m״0awε}׶-&P1((v*$@0Se Ҷmô# :4v,l6qAʝȃs{D ηm1FQӠolZI0!ۙ>Ͼk-ZJ{^UHp'`-t6cvlG>iTrr߸~(6eY 8UU3eYt{qqe믿[o&I\7%B#؏K%2,,/%0c"اi:NOO?~^vvf䉔r2Sq4ݻw/DOW?OSJ Q@؃ ?daH*J6On;JHS#!m(ƿ0.[s e' ֺlCY0NjNY]~S1ҁXD7l'k{WNJKɓT ;L-Zg,W#ݙA<uD,4"Ŧ EBOt-y 5UngÝHdogks7n^|-ؙQL$ v2b{wp)V))Mq7@Qa C#Ќ Lˁt!.aQ6Eq99_)V2uF<9|ʢNZmNSm|Yf`0hժH\^Ov9{|YsW^'ݳ".g0(*F(GiPRn*d~\nu][n]ü|gw7}ݺOOO:><ߣ*G#3DjC|6"M0'J'S}vv\.oikZ8pfV"Qw`Qg&CO`\^<|>Og.Lɵ9{v?=a&id6'U^:azM\pC`'% w`>ˊ<;wڶUUfˣq6nWגGkr8)&ƨy=7FJ߅j+7kzP bGZ#3|o_l\*[T$("tei^-*Vk]e\`L}!TCa@<ϗUǦk ءiRLsM8>-n >JO8 U~JMz'&c8? (PlDF16qZh|>vǺ?;ᣇ8Rd"?iu D$B,mggGяlo#f 7_rJyM] ORF___O{жAUUЏ]nDk=6D !Ƙ,QmE=鴨ܼyzv.|/;Zg΍ZfiM<カdZcɼu.]hnpcUOx]df;zs_nl: эcdTX8L{\@TH꨼# "kg/Qjqn]腢ONWsmz׭[*͑B?r[kBPEB5Jn׎P5G| 18qVO|^/rUUŏ22gY1;8ٜ]&f}d,16LLr1j2)/~cUwܻE{z;~ߟ̦IcH8Y PLR;YYM۶;˗/a8:߼َ6( ALL!BBT8Ͽ/cP`onC7_]ǭ; euzf ~?{ e4J?oUFٳgiNX1Y۶Mӥѓ}km~DJ-f&Iعaf~aj_o~>㽽›7ol6+|Ӵ7 2!mۺ'ʬm6>rsyk_>>>w^~}qq8NF/q,:+͐@WTCf2E"F* ^$ nTxag2}-Lnfz2zqbR:6׻>;w]w0 jN7(9?7[lzE Q#Hv {=*clo7,J$Y;?qڍgeź"k^YNjr{E} 9 dySk0QD(F!K߹sb?rDmNFg9老JXnO IniD<scüaA=W8(1!1bYDS"a?y򤪪eY"O}Q%{c|>˫%F`w=z?۸Ef].u]_\^& 뺄tX.̼Zi"^\]F]כm_^^F@эdFP wҭB|@ nz}foΩj{ܻwo.ᆱ^]]mǏ?EQM :FZ0 "TDü^(,sk攛Y7;''UUwOg///'m&emw>wz2zry^E.|i4(|jtIZH(JzL#aC*2/lVUtmv +n/.\_]B DBzuNNFC0afS5.`46 iMwQiET88ʘL+3^L*j" ]]]hE8l#f7^ۿ/DdP %" Dg7_ZUmͪ?Hrq/߫Tz4eb7ܴ!f9}x޽Gt]]ڣi]53_\裏jZLdX>4{/_WUo.y/~ruWݻ(eεUd}ֱׇ 9`d1@0~LY[C}Gie!vv!߭AzHibSX.E+Q &f@1r`I ap"L+MjZan TkVe6$71 11G >ڢtNLMZߎ5MdNDkM"T)7㘶 ~[PV ݼ] m~u]w}}ZkeYc|nκ21iD?ݚ0:pdYۀV0 C^";{He7=DQ{nu];srr:cL>=J'IҀnW 44Mj=z߻L&)埞:!2nC|;0Vti888CQJ>'OvV9 "`F!ÇKD+"Ϟ}䝛?g,smڶL& |"Z["(0FཻsGgz'cL1?|2ټ\S3=..?\A֨(#cH!B^g?)(Os!0t#w}bsuLe'E=9<9$˫aXF!Alfrmg?t~Ȭ19b*JU"p@Ud3z/ZP0bv]< tC9D`8(M0L ιڶpwQ8Dpzrϻ}`v!_PF}ptzۧsp50"($@em*Ӄl7'Ӛmi`N1DcHQ+ICFBCftRgDھ'@QBE`Vʏk"0pbTjCtַMYJQYlP% ,iR`]VS&!qc Vڈܮ=|>up;Ib'Tpxy? 4ֽ $+\9b /..oy|~x_.dvR.$Qm%Bo?"R& `}5)c?|/~G?>;fNpt8D}qq޶,7I >-*R8Sz:}[]':ab\땾aQI&X,0LՐr|:av]Au!WWWHBa%W{wqՓ2˲rUe9w15dt$)E&=zCRi<=>>;{%!~_}~}Ehl#e&?aȔsxу{՛śef*tkjw|v/lK]^5Klel1a:mڢxfQ1͊zrx^kGQHXb7DDDe $m2FZrTM+XAմ.m?Eٮε!b%'2r*8oF?9gӦ5~v)Xc6+M? vMnj8/޻ӹM|7gg|B!({Ԛ(IMZkn'wVdo1?(c>mDPrrAd*Az7] ĐWenA|4jϾSW7{yrp8( CU1yq\rRWV[t1Q5*W@1l=.n6D@1E7z c3ۛiCf#Gru]%im<[Y^-`"5#:yV":xqjLֻص%/3kHYɈG}޳@w}˗/SlZn_fST m`7 ͧ+vtB "}v*iZB&+q>Q!/4'"1J 2ۖ Ĉ!;鳟6}E+iRj 5vQ/"O̾<&}IP{M7t$1)?y7gH0 !HRDfhl_9O~4N(TfC} WWWUU1z Pפ)(\֓bR]^^d6'vM]cWD\^zU]\\sA{zg[]0NvAI˽EЍ"6?}"~d1?|DUffCD<3H=999=ʌBskݻgh?::>~R1#\_eڬV߰U˗EP?kwE&d2iu7k>z4M拋ClfubyzhyjWe3{Y3nϗחg{)0("YoEiݰ֭E͛<kܚvѻ#DI-\=88mBa2gvmmC1CVlYNq糪SG!˳KvPzR.uMӶ޷G/|+w~y\ JyBCB̵DH(@*eeM72o/??<Ϻaj>|Pbʦ;H"@HH@Hc⣈*ʪ~I︜̀rj:~?˟Zg4`Rf9}?l뢨%EdzfSƨ~20=ܳkƱ)&w $rd&2j:E|qpp9ɪ"*Xh(J#^琐-!2*a`aGrч9bDhB=n. [8DTZ1AZu yq3iL̐Ԅcϼ.@4AĜ=L?z)-޹ĂAD@(i>E80YЌ4ʲ T}RJhHpdQ ڶ["Xmwn<˲T-c?6(A@Bd{<}wvYPc2" ^beZ!ȀQ)  rHHL,ѐV33;7d$D@\BrNdRU8zz,6했Rj8?miVJk5- +0 DgvdZo[TBB jBDD _=7LdEv*[ͪ8P 7]7&ӻqFE9,et^΍?{l6vsY}PM 2'= rlXFL`M̠r|VѵmEBXUe٣_bgJ(#Mn FHD'|^кwl24M׏I(b6W/2Bd/I+&?}tA?x~W/1)"Vy?㻡z;F5=4Nu(]+M}d֚noͲw}lj1tz||:Ͷ{w&Bh,v·4ڑ)tiǍVT@Xc4W#4s :3Q AC_n_˺̋ eG޲h;k( Cs3'8Oh5d&0+1P !J$$Fa|tE `o&39(A"@O`i$1MT1VYzh,ʼn93gpgUޗ>?-X0kTeVvaH% iiFl] [%AB&Q%|1F$uR*  PtRF  L~R!q%˲B<:Fʯb ÐjE03_s7Ȳ# ,s.Yixۡ#P ^o9""RVDyoox__׍1/>Xkݐ]0 AEl+CWwcZ5A),,]hKL'O c|ppp`("]74 zbҥdpMDfPEh۶mbqxxjJHKD^ah۶5szHօq(%e^$ֽ0 "1adb4f\n3[YcM&#jN_?:àB~1}O>ޮ FO(ʆ@ ( QdCi,+W;weh40/} ?{&Ț7.//־|R)uqqVt:% DQ2!ML̑oATj>4"#*#*/Y)iox, ,^)\,fD4)'ݦ~"+10eC O< C5֮V=[^BEaPtCzY~2L4bd~sw>cQ&5 BBn]O#&z:y%{E@) 1eϟc-{5`H} Zc>5@AOsnRN[r|/M# 0CdD2c {6Fit!8Q9VnK^fADOfJ݋1&Et쩹N'z|}j> 6.yN_u](fJ }If.cD$Rd2^CڮN^H75`$wݪjz 0nwz]ED$@M [Uva2,{jҞ7ns|iXF3'j|V/0tBfu/_{JV^4Z JO>!)PJok/,#19JAv&A9J@J$ VN;gS ތV* Sͪ<4YU[ A|; ~W?7ONukA2yvz3EL F` S$Dh Zl68xN?ַfRf1pܮ?'䫿EַށG"5 nV%.^`.c͠c 2)m lXSكY8w\vqtHHɼ4#Udd(_̀Dv~}H(HY"cFFfWL* J!֢RI^Pƹ#2VՂ9RAb`HEELDZJL6|/q!D Aa`kZsnHbHH[j6qSH/"0`?1λa cQ,aDnpbb`13~*yHU00\^^w}4gv~~i]___g$Trd/Q!%JkY@CTQf#i6YYvb`r|fY7M- oi {N8V 81O}0˲|k_˲,Uo~n=88{E"[m,%"v;N$ι~}ShFZkĘhBZkMH~N\)M^gY!Cwx;4]hGdl[m~_. ,LUUO<IMftRevZ(^;Ъ۱sl> ڝM޳+;JDWnqe?&h$:DDcQdRw!*MZn)'#!,.˫8zr>;͹z&At.pJ bM%@i@$ @' $S&ae 1htQ[٣G @ԙ4]e&>.f.w}:1f2x//M^mNO~?zpYݽ{k6GǛkCb؅ػ(!UA3}t y-7лNmaAIBCY6XV1H*" †P \ #h$B( bQQd죈Ѝe"kArCx뙊\LX S0yV&3We) Z 2$A(R]Maȣ)Ԓ{TD()H`oIkof'Zy޶}ߥ`GGkmħJ3U U) SOip}l t\]/WGG'EyZSI84yoc?o!8 iTQQ*,z[Ln">Bڅ[vh)4n˕IOߟK"Z,_[R9Nmj5uWeY/.LfF( !DE|!bT[n[ןgu۶GGGWoqSzN_IoɉIFkRY|5Mc=uWsek躡{dT`8]jt#*ܮuC AdxZN\`w[.s7qۺn=wWRwn^)CQ$ ! sT6 GA?>ӆ\GZmEz@<(GeUQa쯯DYo?7oܽ;[Wu3sM*̃;?D⁑cRJQ mmߏ[Duv&>8ϲu6ɰk8*@e 8,@=GF`P#GB$4**PJQ,cC%"̑HXXHC@9 D PI'p,BTqR_"A9/#ieMmuLm"PauNgN̜D.$FQU^A%Y4rI=.$mԭ |[&A,˚fKD5DD(NDd}1 VJ0wY@ʲ. ڗ/??*ςZ a[ l M=?q.xG?0&eB00 ܈0gzaupB.< ھ˲L !zo6{w?ʬ,7  Ht5aZWUG{ϟ?_,MXkyb X,R3!"t2f*w> ދ|b Oo'1 RtUUZ~5c]׈eY2IS0 &יӛ+3+kbUTْܲԖnm 0 6lkk,pk EQMD)X,VUVN/ߋÝ/t۱x|/{#10v a^nonnʱ) !x #JfFUjʚ߂frVzamfSOsM3mﺮLn]\! Cc3jڬ]8O7mEv)q%{n& īBOYh~肉w)!x\c@D mӸXEs om#0܎cc u]g,#fd$_9fNg%26!M`"C}|ǬoƝχLv/?n{3̺+T3@YAPѺ<'@̺Lmo}ͺ%>Yo7~?_/˿<_,v;F뚌cBΚǐ%Yz7usҔ 1haribgXTfs~٘E 2!.'N: X,̦œE b+$CDh r Z2@l%M"e=姀u<9 6D}!&IS;OUY7օla&CJ )&T-[ x ENOOBY)9{+ޔ$[vlTV 21F$x(?edC-ɑeC4|(_/>f!"kM|/V77r%bŹJСJZWwunyo^>Tdr)w݆TWemfHP:،>a:B<|뭷~[|>jn+TRAqg{;yI(8,#!ʘK6L//,n~{_"t777gRG9DT&ˡb:teGsfCD8XBt0BS9䔪DZZf^|Gj`M)%!tmBbYi230u_gչ}s!/jy]U.l|t@īɰ־6 e a&^Tk۶5-fo|n3J4Jخ;51AMX9kG1FÌ1NNN1EP^ ĵ9/~1'&ӇDu]UJ6Ï__*}1ΧryQO>rs}-׭TM!c;s Iģut:۵5>ŰX,ncULؚv;rdqW^า7۶9DxPUd2) lԶ31Lӓ?C_?>_z>xxbOR(ǁmۡ#F&cаqnUg\&fc)eBJD)(),!$%b 4 :2ZJBrAA1^HRBC H5KY򚴳#,%ݽ##"dUd͘lE, cC]/17CN9(R+FSvs1@MnCQn{ݳJ%^Jru]z)X.) ~O\}ߧ3{/즪7ǧ'4%4M3Y$ˈ:=LfD-}5 ?)4LDl6J@ĒE>|Xʂ NYTVբ>[6m䉢mzbqPlW 0V֑¤lۺ3h8#P- ґmdYk&"}߷NY׵@sLH˕ERq1)Ġ(ZP?Z d N3s?jysuyݶsf:Vu5z j׫aǔ0G1WUs$zZIFBv 0)d@≻})*tYf\y5v H'''̬! 1b+SCm./)6ű|m"W7dN '|ѷ j^UЍmthyf!8hc{?ztYMD f0;m]RTȞ@rK%* JJYPA(+ O:p+XQJ)SV@AEc2B)&ɨ8Ǻw]|$b4  .R ,ED7ޑHX1w*0{c?UYPUb喜Q—1n "T%*ixں1䜁vx*HBB0,뛇rv:B 9fGw{]}XSC0"0^^^~b=&9"sɕQ,XJD%UKfYDد=An;cNNI#!T#W6͛t6sD/?*Z;Su_MO.~|[n\c\Qd*U!eu%䜫*r-`\@d2 q_̳$qc/W ")U1K4uztC %I*&8OydB# r־ꅗ^ܫ?ZUSך {be0!UU&B %BNQHJ1j c1%\R9IvL! ɔ(0sJATRzPh! CC ![K(nId~s&i?zXRmjG ]-f1tr33cqARLཿ8;GYޗW'|\aecIØŭm}3Ͻ89>Ol6G1fX 镗_1 j>7!tZ4_{׋X>::jML^SAQ,4j 0W(+zzPUD* u{kRv)0M"b$ SIѮGRDi˅r{|!1^ٔ=0(JH&DTD d} 2% 6gwj[ "ufѓI{ 1ع6 Ayg3ϱЪۧcZC$CI[O)H42p}yyכ'QYq\UUO5F "! {ss;wzzƛo)fBHMZ[Lp 9gɰㄹlN2y?v fvXkf_M+4/{+clsW.E~8<2u<|t~>b97MrY=Sz/l-JŰf3v-kH Wք輋xkUEc sYr6uUHݖ0exsT+UU5r8A덯W66SnmRYPqfiǡƘ\=ͧI]Uܧ+y;]Jf11qݯ\s"2aV iwƜD$)%DvuX1j?`@$))Uj|J]cd P;sJ6w5Mu4nr|r\=s~D5[؏ø:ȯw?H6hN0#X,r_zvc?:Xx# 0'Ef.~L\Գ dki`I=metmV*uJi>_lϿ7_Wg_~>a'@e!J*B9G"]@E-a!\qNb W)%@ V (F 0UwRC5"j̲t ɻdI2 3&%"&*d&<@3-"(+;"J(B۱}"ɓǛ* lv2쳯yO golo|uz|;P IDATC{v'''ZdaDy sOog*0̘c qk4*,#aFcIG>HOo3u}muO z D]?~xs~T(VU5b@ +/>M"Y IRU6& o-798_Ngt4WL|?]7Zk!(׈8k&ki}rrZ%Vuˢem[ 41p0yb }O򢠑xqq1cNK+e"pb`Z(sRRU5JPt4Z~;n!Yϱc"}nbSNQګټqd!I9ZQq1z2SJ۸ 0 åHB|UW@[G`|Տ))@T`"g!&T%+ 35cOHTץ-`fBSlc̺^OyhwMEdP$r 4̛.Ϗ/n7uعaǡd fL9|z~ڕx6]a{<_dJ1׫&1zt 9p`:! !䘝ݶ5cNZo|G׿L~~'7s~$JKDg6Pb 96Cb06HH (mB3NV>X&ʻX–( N fN[AAl[TQa2@{[ -"bf@-M1 !((Rd9JHfC~Z10mnNj+Wi6C vUm[t:N )&kk:>~beHޥeY!x7FdJ['"zj") GQd7A%T4!4H9*2UӨ#S:ГatnѺq5#EӶɤ&]kD ѳޛ F˃䄇ꀁ'CS0B(:BzfIݐD9FuޫII$@II7I#Pd0@'ZDrҲTq "㝭|14ڝxdۿ/_~[fk8$2iizMgcHF G/4r{qs<+Z!2Ydgeݺx n̅aڸ$@:m9}_ĝU̦&|rÇ?Ong_xa}=}bc* )瑜x<(**d؉aIR:¾0}B5h-(T)f&RB(fg`Vx 4E(URd0\'U݋y`abI JHJ*G۴cITX9K,dɨAmӦ Fp%Yu:[Kr C 1­ ǟ;K> Du]WUUD,O tK(IJRvjQbSb]TD Y4clV"iևMz\rH{2cLP,P8VQ"-"><̫qW9#)t{bcjDtYCJlS._3"2)ɨӔ2bRI*Br6U EQ/mLvq2!~F5jh'*9M(.bRD@@)'=\?C70@ 43ɾLfbȐAkԀh*cef%59Yk]剈 p2ıG Ͽ{ogGܻI1j !4\e\*A Mc"1#Z"n~Ƈg~Fw^~#Mk43IU ռzrW^ַ?Z=xxM5|O_gBn[wfuZ{)䳣?__wO>^.۾gۡ]cD8@ TȠ8%slJ( G'K_޶}7no@PL)"ADc%dUMZ䏠 UnL9DYXb!'UR6Dz-({4))愗ח֙U;DTͺgo*`TyR^^oòݮz>4}Kv%w3,.0t:#”z_(1,fJ Hdcګnp]o67I+버B߷9 *CƮ9Ϛb{YXO ]qv<_oDb"jF3dfV̹Enȶ( {^rU5UH֜U54A8;+d) ZOAQ`VSBc `JƐe19F@U2al>8mog&w~=1Te+jU PZ3gPVȠ OKՅ ؘsD!hY Xpf93C: gd\)t|VM4ECJw1 DL9.߆qa$ď7uq:1Ɯwͣ>ESVcow㼚0(3f?\zn\Mʹj>1 qW1 `Pd;CČBr(e,;d栊;Dd "KT55D4c1Ŝsq\׫x[wnVK빋C8N!}O ,,oW77KZEϿz:,,/Ue>[?Y_gw>bzV{w~~^{^7vk/2oݺOilļ}뛾/N?]w[ɿƨ:crs}gŶF E0kl^/rv6BLH) 5BaӍ5nWier{?Fksay&<q6N玫5 >K?ev;ah*AI)a" $ȘDc޹6d o^߶0 jdBN9\v6* cCdz q5i7G~!~RYwrv^_eZ51& ^\ޗR2*;ccosζ `|5i5fgrl!fì͟, 7Uu)Uu]z;4DZiĝ4-~wUB1R"̡̈́p^a 2D>.idP%"dLrQA@1O( 1خ ""%.1 B.6pH\$X9e1iQA`"[$EĘY4ESJ, ;DP@CgMR$2. #WO>w ?>Bڻ2al89 O1`g}о@HP4Z'k6~W~?~_R@Onyp=哻W ze*[2ylU8l 73'j+tC̈j9JW9/g{޹{[nzx_kͶ=>ivo=Y>f.@-@ Qv@t7ɧ "Yb\nH! vU-6Փ$eC-4D9B, CU0 2";,BX2U"HJhAd>;MuhM)5q%hv4LIRJ!*$}24Փ:j %cMr EuE Bpr,'$Hld6{}"rvvvtth{kMQFQS U 2 b٩1GBCoǰ8>f9zYO|ST$%9 MSkЏjNg鼪ϼVL(NRFI@@ DKC/(vfY%rPURFs|}8RB/lB1"5clrj7]"o|CHZ猟L?1 HUqvf"*T1 (OW5(14BejncN:1ژS=iY-V%^ "r ;yO"#3m[d*lDV9'Q"2*ăiڪ9gDJIb?3{un8|*<8y碳c<G@&`c ŝY [ɹdXsPє*_^5c r5^~;UD) UT7Jo9&"<~ a~H9dL{+?~ֳ_LJ~2I{7xӣm y_YC,YVU>q6E"\>4\?dS$yx?xxuK/}u o}ʿ\_CRB?A9U#*[j6%KFD@U}(IˤR9e $Kd$h^C)$ُE@%cҧ\0)ƔR jΠcQ QZ119URŐRLlD5Pys65gx̘1а5!<Ф> gZxX\oV@ǝ\EOxss\.eWUMT[l&~]#J߮'#4ʈqLv=6EM'gGIcm3'w˜E b ;_o1lVg{۷{۸z kJ)= jvFOXfrVDҧnOS$P_Xu]񞵳lB mz ~ *m'ZPy7T3 ić#.:wC+Qȧqݦ!c?'$eÇ\\0^Oofp0??DD  f-,.1!"f(9kr"顥:SGirFѽ[.]U;EPRs`) т8PnyԢPK\@DɒRBU\ zkg,D"APE (% #u+w >`un|յ댑2n=~G'jTtHEs&H0κfũg̋}̏fr_܊`w22QzcN˲B!<_}2`u;Y$~}|rrK)oӋWxcmw=铫LXSo($Z"8}"'qecCHFUQT0HLQ2&!z@)q(I xaV^ÌX5)TۉLqU[9g Q˸B @u0䶽6&7uBHb2ahY +kg"M9g6 s% "Q$xp8\]וun2 sr*9a//m{||+/տZ`ua\3.EIGgUU[Dɭj q؎>Zmc*U07^{WHONNכhX, !CǖP(""Āhˀ:"94"J9o6Ǐ )b&Ȫ: :(Dgc"ݽ{@'|^y?czIs1"Sçwvo` t| |z!bAϊ;NOOYt6 L&EQ~Yrl6!ɗkmٔ2L2(nv)QAPAQ ?}{`wJs"sN2D})̖);ay@j)xsd7"y1b܃ड़єD9,)XS!I9jog_'?x!rEp$ Cl =V#bCc\!d,10G߼N'˷"Yt:OOo=ZE0&^>ir~:CUUㄈBsͤcóլ43f1RΏ\~Vfx'goajjв ]-"\oK^^FI $)!.0 > IDATKFE= ***3EUM9"]fv=Q02iR$PʚB,6YqFrHI!3b! NeHJ:ZFkquƨ2{"PͪYId%0@!f2iW7\1{,]̀HecDJX dMUU9>a9mȋb>{_#ElE|6], (s Ab$5'C K 1b"OUɓ'!Ŝ3e1I5h&YF"\fVT9g%,vˮKn ݹ>}?]]]=~reI]ՕC?3][q\s'n؆H ~Z!kѧ>챦=vJ n2uڟ.w7{:*/s@[U|v)%TA6ְQcUE~(sVc7pcQfș՝k)RqRˆ9ù<8>d1%fP4?|Y-u=dkA"A T0)EV8 m)#r#A !D}Δ'39y/([u o}_9!Cq&3PcNGs ["$cADcq:+󧂖_cmNzj '˓isGny{WSP LҀlM3WaBk;;ĹʙYr5"jvSǏD~;]i5?<0Nzj;6ͤjiB-,iٝf~'͢IRfq:Y'/^^a3 k7o>̓4w}4tk L@l(B% )t>5VnYDӤ5tnJC  V3^&I)dT8֚˞r!xc*eϏt87  )I;x}? 0{k%<[̙cϢe *?F2B5!H &$COfzJq rC(\.s)!2]M&Aq)jYD O}5H`Sm. O泾 I%W;y 1]1T֒Ķܻ8M&jc,e:,]W%* %&( ʮ "f!f}o-gQY3w(޹#"3}Kgo~=j0f6[Lrv2G`j xn4c@PVvGh SKm,X\Ul6a\ n#dGh5e B 3!8zɂczmdyQИ'DVA0%eBƙ¦7m)Q`ol Y1 k`Vx2DLlII 01@21Lh8sFDd,p|.$<| SOw!ՋWV!A&ۉ ̶JCl;= !4D`:PXw b\HhkfduŃ2Z{dq4>uU7EH sœU!n?n/ MMG<|އ|j//j粉ɄD>~yfCyЊ@Y%'H( D֪ kJ1J }@`Ŷsʁjn#c&Da\ +!V3hQA7uK*Q$;58RDe -l8s Zy|Φ3FSԁU>"D:*H*[ٲ1f"#V澳m2)*Q ztA XV.襔 ozbΊ9 4dp΅0LZU)*`΂I"mSvs z |ss7Ȏi*tV鬱R) qܻsNW ZI@CADqY:cHDYH@{[3(@:þ CvC!jp 9cӧebhqĒI%۾oUn?s;ܫj|R*i* xQ䝿R>Gn}j*%Q)CdrR2{$eBF*zU Kзe(vzP=[$lA9Yd4yl!3 @/+8Kdu8Ls91BԓUBJ)僺ېۿvA~ZGuv67$U((hV6<b~Z5r9lۮn6CҜի/Væ0;g?ӓI_^&"ZeB@%}X1Ilӛl>l6ij?яȘf{t>ޟpӅXFctv~y^Ϸ# 0J h6ҡSv`ҞFPl.F&h$ZRbbH'lgu9j9, !21Xc,JD%+d(H.JHo @Дed,#q mdtz唒"`г7;BF`0 à}߇1:Qn0a;2uU%aHe`ɤ!檪pΛ 9jc"4]9 )jF/]jٲOnOJ֫ibE6l7n !6U{C[lz xw}OQrΙ9c%zɒUf(&zRFD68JՁݳDWmΒ&a Ķ44]LS`>=;O*9gLoH%řvKq@Zwk}QDc>|-@No1.n#c#R_닝TadrssSbҋ]HMѯplG"12N "|RbRޡa$"1o9v3JyrΒr1(4icSU0İmܝÆr!>[j 9G R)+83$BFĔR8,f %K$EHQ ps<o߱_\`6o^.'wz7ScosC^.~ŋ {gg> }JAU+1s[-*q~_WՋgOhÏg?ɧǏܳ@2}S-ص" 4#!FƵk]OIT{v`*2],\sd!Ƙ#tu]7MYv-&M -bC^JRs=T1j{c'ֺүt2'"cml1kѿ#"=#",[R*~̌h5$Wkj&o>y;v]“/U^mwUU5MX,)1 PO'xxU]i/`ކn_NwdYfR1hk!cCd\38-On޼ 1fxfoՄ4Tv qJqW/_}ftX s1+*a1IÇ`quuqqX,:G!r[#"`'̌"R4i ðn'WϞ,/<_L޻ٳ1S*(Wy0E7O>󅐉 -3!䄒0#8R){;ɻXT9SJ־W݆vʛ[}3˚~G͎RjD\ e|y<|%#v3$v%;[UUn9GStGQ61^FM sB`cuum޽;eq3_ӓ)) 9.b&"hв8bd릋ח7=l>7Lmlݒ#: bqek@ܴ߿zyȡ<_'?yޓ6nU岮2_\ߣex:I: "dAd ATkoj158 )WC ]HL4 ϛH*`A(qTkl#lw$Kʥ?&s32);0B)J^@D,PHENNr"b6M3nq,朋ˁ XV*Y0~:]TS~*Ő8[ĜskQ"$:"zy mw_!![c #N|!!Hr8Qѫjv[4~tz:1*j}&e桪 @R%u{P4UUAי\Ja Jͮij1_.r+wO5}WD{ĕ1Ng{}OTA|2ۑ7^ p9dR7$ROfxq(BH QgH$n[ ~o 1$C}]sN>>U2M)OVĪA ݦ{n ER?i.//1Vud[ʥbSS iwm:07}`|>[,Ʒ@ov G ͹l' *tZR0蕛ӇdwĬd"$3mg/[L"rvvvMHCҬ@ 3sFNь/i;u>NK:hBecvM,L5*d' q*%3MPUWM&kf6@B(IcDHS.! Yu+.E z2_ln.ݤ"'OEeրH,""10  a3Yuh.N{"ZoS_4ͺ͈ hl`5ĭ9A aq:\"ӏ?ٓOujL'; )N&_?rw61)XSZ<\̈́l20!YEEDh&A\.N-Z5@}do*2JU P/@4*2:HDITn.7\dxrv7v2 I2* S9/gb6Y4CJYSio:s `b{|~f3tͺcr>:PJr 9 Ð$O3EMJZ&@Fg e1Y[Ud9̜z1Ƹ 3}d*OO>TUeHB˕q/EhBrS15Xbg #1ٺBغd{}u~|n"L%cգcL1fœI(&Me-׫BW4 3n۝VUm͇8HDWڮϟGO$)8Ι> o;qpK~Xȑ\7GH߼cAlI쟗UB*:ZS3>(|)co1!ɟ (a-r=v5:%UjV>0" (9We%YƤm zk!68>iPUF C3f n_]D# z,ˋZY(gKWg_|??Sz_ŰZyp6[kLUU]ׅLHy5g7`!C7~CQ݋1p~ 4m{zzX,^\\\Y @  Z dBKj6-@ք߇t4\Ϛ_?:91$&J )kEBH1R2 C"2Oqa(ϒ3PIQP!t^ih 3zoH*u+ean݈H0{;Y. [Km۫j d,:D1'-ҝ6搣( #l'qH׫W~뻖E2蘽w'je؇xYg}n1oVWVO$&g8C^VonzغkMxx 38Yj\Us-ɔ-{_/ifљ6CD'#iI%/Aj1w~e:H5)jh 1HQ-Bc@e)K6 sI $s)DDQƒ>>1%GtpY.D$%I)12Rrw]BY]]~{?&lvvFiW{ ~f~uGciU͗?_!?}gggfdA`6zkO網 P!E"zyga:ð&''K"q-XF И"()GRdMO°W_mwCoXByinB$l!qCI0bl@ kc.f5cly˭hP30 ϕo4G)[ tCfBbmҕ[ B*È"4դj2(0#f$6sI 9A n7 %6kP9g?pHAd՛7/^\ehO r 1g>tƛ"Gk3[aHWPVlNpU,{6][0ُ>|Fff وuHM2v]7 (XM'g9! !SծEek(UC-)*V'Dݕ$A뻮==U( Sw؋s.IN cVEcUu]y]׫jv+5 IDATT5iN!Z[y} ?OuƧ/ ٬tvnEYZ 9 PEc1w;ɣcƛ͒h\̵,@* E--7d/\403vH}K"B!ؘ#F8Cӷ$n b(rycfc,3,1 @իY33̧sd-b1TVWOj|>wB5!0*˛kW@$5(s}0qtRY")DeFDSNURRH *((ڜA{#b ÜE4P~TX+!44Lpm]K) 9fi]+QPy8[. YQ2b. I)bќۮ+CbItCkB}C.KǪhލH옱p XJsGnMwbMQRa,j4,Y$f $ ⠈cC:Iy " !#2fb$@$ HV;hc DRTȒ%" D9(F !ʘSJbmV% s03ٚ} f v)W?Ezqss6 F\n/_?dc7[ٴC0M<o6αg.lnWo֛kC/Og1FUd>_~e,VO&:&"}4MӈfUbeieV vɲy|:k7O$cE裟3fAsk>E+H)k@Dd ٬#4$B,DlX0#" `t2ϐ]n?cdR"%lРoxpʙ^.KDTjnoyE@ *u3NU$DZAYP4CVbhv5YB6tw'Fvݬ-fv~s,Nη~^o6vs)0u}vvvrr[̖߼zmaG}mn^apk&hMmWsWsVɹmYq^?͛7[c, Zݭvm%>/}q>3j!"j-Wޓ®v7of;wzjߧɶMMClͺu(z]c>Gг fR!^[{pz׀ /NV1z?xCxBLĘq9R Q$ )&bzu/f99qįn.殳ΰ%2$m7o^>'줋jFT$ Ƽ[ p37V ADT%pK-%=Rq[gFR-F#Wq !n(ǯo&87\Z$l 3vBSU>&SC@w!*8-$͙ 'JĚT"1ȌY^j̙}eeeA$\0,AJ|y 3RX7)jFT`:V #UFoc_ðGfPDx}s26'[B ldx>7/_7 & |lۆ~_,&sCDRXoƘʹ W':<{W_ =m̠ OhU)($n߅vH'ւAˠ̾6YARJ T!bV)J pO5z9@&LUnۮ뺒,Ъz"c[i e8!2 +囈8oPUʙ" *@ 1HM$E%ȶ%E IaHnMj+Ӕ;o̦SkV75zUS9=?M!&Y;6! >|p㇏dͧY+fLX~?lY;~*4hHغvU} q=uӶ]? '9.ׯ{6IrLB0$ !Qto|~0  D@j1vZ˗vU]jSՌ)ZT~ڣJqz.|Еllq1 DT* S||UdrΤDߺS@$µ=2 `MB0QF7[QǸNr@ 02~]CvvI "@%F6$EsPY Kl(cS&9'MIC!8dAE,Z%̂ c0SB-V_J~l 1d8xn$b|͉>(r03$P= H$eH4Vrb! YP$`l3m(mRʎ3gPR$Dvq`1hfwU>I w\6YM$1KVUCd pT).];<cNv}y O޻oF $R ]Ank(*I5G&5@4/6:ޙK}$Q.0"xlB, 9~>6(dD9d,1e$UA@db1#1ExSJ",{m:!ڊH|b7z*2.<ժUծ n,t5=sl6Lfd1;;gu}`̾o7 j3̲j\FRZ.8􆀈2Dhn ĜJU˥{VdZ;mۮk3Ġ %A1&ǂȈXIPsq{ӯ~7?({cNSFI]߼xsLڑr'''woCtcP%ΈPUqqr,[xѿJqCߑq{Tt06~2NPp;yݾOGUE9nQzoiJ80 ""!!jo-3$d c60q@Ap M<Ƞ,X B.oßTxKm^zi-:-%}M:n1sR"nY1h)aR~6SJzn " rrBNW)K=Ȓq{#;u_=],ۗɃGw/"B"h뺮݋H305;_yL&vbج^Swvޫg_,j݆(! J f;k-hZ*䜒$Q0H'IHR5]V~^! y " .=K][xҵ0RϞ?߶m5ڹC (MUK-/OcW/ˬDPpȪl "+Db,`q5uK`;%~ (?:Imbv7~9=r~:,_TʭޒThxE5VDM9"""IJkq##.i_u{Vd0FѶ ~lLD1EdY@Fb5 "ab  *1$h [4K&=,a(jn*XNёtC|O,/ӳYd[|]UϏf^D^|*>3Us]C~;O l9ufY]?~OߥfwbAQVJQaRWqg|I bԓI22ʷ.\RDz\sb$ :hek}>!gKK!:%S.UA@JZ[jTY|X0$e`%%%A?)1C_*]aNMK@a653l꺙|7fAuDdu+}qNv%Mݞahۖg|q"L7ًvqrb6[O>$~_G7?<}b>N\$-tGoV;=0sZSb)E !~и?tq~777Ͼb]o7;Ud2qnOD'`Y}qUQF֩^9B7q~ꅩl1%g'ɾ]yr)GoU$: E({^YWU-RB;: AcL=L* Re,ÀŷLdvaڏ>̘,/YN;¶3 ¨rtrB UU8?oIאHѨFD 1>u]w~~~,Lx0oĭTU}N⭢5xRшcWp81h`vn47X 2!].t#&;x;3>"-HQRO_M5"QT R'`?"" SF5*JԪjbnO9DFTc(41"21i!:/wa\zXEv\=_\^6A)9ˎd 2rn)X9_}^v<2pAᵇo; M۟_<^l۷ͪro !tMc΋ur2N|N/S) `9;ݻg8u-,Kl] ^fhQuPUK* T޵6<٣O:ge,9>:ɜ߻u;#,M! 1@XmNNoώ7mST%, Cd0EVq0Rm'ۢ\C؟3{$˾ܓ/Рvz8NmnK'k`$IwrRz25Z$y >ErNv@T * JLb*(:d<!ہ#@"JZ_Jy3f* Ɣڎpޯ%( B2 "zT\0VUAQP)a0,DB ְ51 F&!l6uQTeݽs8ˊ<P@ P#DPRmnT^|zߞE:7`.n{$>n O_^|3d uZAwXl@2Jۈ12Lyfꪲ)U -`P HA Dy0Ȏv?#:=zcfqGې7-6%PJ. "mĠQ"0J)3hO"@(rlȒng#nZR"a"KaK!Thʖ6msέ5Y04I`W"RUq1";Zc22ZD}Q%Y/>E5<(]فA{|}TW{ٔLr^&"a]Ef5DwhFdB6*H'w.'dR?{v綮cB^,CUU?YR5bm䒋(*ιy3s4gA? lQ(ozxVޯjwsx|nI^nM۬֔eouZ@FƘq'"ipvc#HZoWGJ Hܬ[3k3=IoSrl% $TDvא!!/26$%o\k1D{E1O>a]1ff%l{p/gKaLnVSfTjT ѣIDDC@d|zttkĹu=;,/șA4'"BpXzf*cB׹Y=;%k`4ED\ #ٴ ޒ#$&o׽kcpFA$$"(xEPEdE#$*{͹ IDAT-sI}U9+.BJo' ﰃQY"mE /F*x!3*3iA4ΐf(M6fDX)Dr\\ŹҨ̎O &R"+Mf]2xOfS6>jjdEn ML^чweUry^DE]_\\4]=+^EXvCވ(845yf5kCkm Gǁ AEo7NY,Ve>Nmc '=k UUU6јD ~[^}Ͳ,+r=$U󋧳-5'r:5Qk_WWдhzppKkmz23.ak$R\Uo#asR.!C.Ww`ԗUd-$~v_hް+j=\^Z6cNTjL墬bt5At y%"Lކ> $$ 1GpYA"!Lzj!@C @eZ" msUlJ(ʈLxݶu̦ݮQ!Db i7 ;!s}oǣ_ϦE1=8]D[.9+̚pX5vRYEl6t9,f*xhZunWxXkI-h ~\]MguU,li!R]J$BQeo %w3/i7io e%r̲l4mw%:M DBQ;z 3,m3!R Om _E"6\E#ӳwUPyٳgm眏hyKo2&gf?Drj2i;FD6QLEQ$@ HTT㫫y5 [#eUٲ^2`Tyh\̭e'IsaT<88pΉ@"Z,X yY|wlY]4 ~=zTy$Y.du]*vVBD(,F>)2[W%2L`gO z_,srz8yk/}vpo~x\1#Fx?dv7͉| }&"Gl VO}]~6nW~wZ`/^䵟3 vK)07;8K 3*)Df/-!+|U"!5%1#4* M+06*$1l'TDlM߷m'q\{OOO9_fK &6b|lLFn"Rd[ Mh??y۳j Im9%Pcs~=///>|8E{\^^V߿?y2[NѭO>bnMyѤ5V?;ԇ__-C&03] Nc}2* YEFDEADV5&ŗ" ~D:(;ORfeL&qS2, U4}C"N 6x˳H*q' {2 '@zes]S"#FBB4QEO?_]9%"^;pMn @L%~r*!`J) JCT/ #4˲*7Q@>|+H ]}}YT9@Q! ĜU1 ey]t=O.//w4@xMD}Y23C`Ei%c./\ɤβm>#Fw1K~_2\-A ێ-@Ie"DH(4bZUU'd#5#|4L"%ϊIXX4I"jb 8!3 S"JpAP b Rc!(-zQpwzK>|}ϊ'l+d6;4u}rtr|`2͌UzyYViX4,,UGv~x8) ³gO>^ƍʏ}Ͽ㎎ڳ߽??>kfla8x`qdZFմ.K*^bi{'>:Ljk7˕&1QŴ>8KMw4,`YPIP7Ͱ}+in*TBWUYU[Py{[Ƴ*hHF2."a$IQū|t|{4=<|y~Cla:ȶ u0>"U)F!zNհa]1|e$@Bp:{qܬ2(޻wb2HE VD<\ nn a>C|Hh}d-oůxeA&oq/ ;~ϲE$c {&xڜ?0llٻ|[t;it/Q>t-i[|>S $R yFD{D&Ƙu( ccTL)%+wU{zn?7k?t3ks @Fyщ@M*R]ŕ|3 a6o,.Xd|O޻xۧӓoG=9zto<⋶m2Ql^c$% ~~y1e\MHq;E 26`$O/nZx-Z,7JU7GB!jBp}f4s]UFc⣈A a9@%DU`BM T!IRЖ,t-A !kmQw_{sab$L[#p;_^{C~zowfeg]]hd'OM=ؼ\b<88~c Q@ÀBB˾ߗ!xC n=;nLp}c/S@8_^vk_2L ")Ap.$'@D#0Sէ~[Z̲ȤQQ@EyAFAQ)l0(H`KL; BDƔ!jw>nV"jARA-[#Kb BAD@q,ZPݤ"{DdJ1Y1!Xk삏!zbL ARUi@fR'˫fӓ勶Yk~Λﴗ_iQ+J ~/ϞB-7򪋠@yEZr$!WmB`"L#wt"asp/e)]Xf?uX$/6bYb躠3ckψD J JL8z<墰{VUن[U)%(8;7GE6#D h͖O/~~}r,l5stO,nTw~o~~g_>]Qh!bQ25 QEQ=Me9Ç9 $:Ҫr,jU> M#iA2Cs"#bd/ͮICDt ȸ ;jҸ$,ՓuMg>=e1\̝]pw[BZ2p;ϘNQ9 lpYYk7"h0}ee$:XQ5hĀ̪?<9a}oϞ|bgtb~ub9uw~/*ߏQزg⬮ y4q"7GB@ "*l&{ oؘ,>F#/ɢ 8w m]5M39&, 1fY]xjd6B4E WxɌ&< Bq[- V jfFD"x: &1Ы[[j[ISHdAT:Uu.`ȖUuέSRUֳqMDeY&N~1[)Ю,TOƪ4}!,HAvӶWJxjfLde'ϞA5UU!jMdĭ ȹͭEAGy!FѓifM۷m&w}1&la}O!Ev-%@f"LAqn^ 7Tz^[Z_9ˏ?\0@]Z>GeYfyYZ;{߭r ڷaڛ:>dfO~vn׫`B1(I `B**(|S`T$v4v]1v~8Srεm^7m>v]u]~nv5}aPXA}p%(Ȕ[Teb؟֐ )R^u־JU@-[KDb).^\z%žsΥ>W6"Nn:L7AMQww~hj>o1Ϗ˾s̆A)%Q!bD `\zКصlrfc3.,|Vǧngkrc-z IE@|M;B%Hﻲ,R2!<MWU R0"m۶mt)01| pɣϟ!b~q].NW~e~q߽sg9_<~*P]6MBwIa&fu]C<ˌi:!5WuĠLEihlttj5/F7꺎1 waԜ CTl* @Ĭ8h q4l?_t:~l:|OG+uvp, [_[ a8@6*j:wmhw߰E^Z7|<>"Dl:z睷DX>F*fO|MfʼrbbuUu0jYQ9`Rh2 Knz׬#!`,3G߇wv]̎G63ѹMCasVXgƆ(<ŨA!I^$cw,gSX.!F2̎O >O=F(kVE2qeiQ$ dT'ӕž3hbҔA`6 d̹X&˶EDfLYfS{ ιR#a۶}Ɍ@^1;L'O<~h\y>7Ms\ue)k@6+xG i).OrR[d+N\_rB K+< IDATS BE޵~CgU4!{y=>J^$DcE(@hie^bT536MLGQD"d.ܚ̯73jR![kb 2EQp]`Pnx;"lYR\.\eƀCϟYUUUUE IS}QuY|moը̍-:Ljuttޓ/ο~{}yߏؘu].WJfe>[`^M&ZV =nnĠ-JF՝w Ӟ ׌pt>۫|#U5gd9Mkm:7vYTl+*20 1HH!VtIIb繵Vbdf$h"m Zc8B`A/d`ZuHMjqq֎Q]M3Mvm{EkQ6:L?>(شM׋%оoB &E,&Ӄ١I~GwNee#[q]l(|tm۶]{ X`37A~5,b,~okﺏٗgw  *1 @ >)4!M{'VH+{\ӧ1Ɣ>U2R;/Zfv5Z@*hj'c|T E!DA&>Ȧ|9͜*DMUCH ܮ$-;KiD| .u|ecpW޿;q,b9VGzCcCla#IU1r3L󲸺0EZg5TD֫f^OY3kk./NHy'DeA7{| O>铧L''jZcSRm6-!Hq>ƨ(jέӣw0yvO鱫ż:$sݣ[HZן}~vݶmU5˲|̩F Ӹyo؆[uq 3{i௞>Ƨf?T??ÙB ^bQUE_Xл#4Hm 2 QP Kێz4*@TIMEр 6ipDI\o@17@*&LJfXrdɽ mP8QfI==>uz|2ը4E.ǫgqr:/Jb`XY`#]+}{kZOrsrtWvԷ:|TjY,_x&Y㉈s{ߵ*$H]Έk_{G6:Qo~,pټfyxT|>UMYf1l e]1cm>*Fy>*11+jj]v, S;LE ,Mӄ1:?d7,%FDieڢ(n J"U1˲i:HgC$(a7D`by2u;1AkH /o)"Pmڶ+奯*6UV2" e1d1(1pEQ2sj rkw3%Fb߬P6 Ңb/0oGq>0믵|~ `lbe>LXfjӧOsx8<<&z  xxΟ=~/?z8t%e~ Go>yZY_X zJq08~冲^ǝa [u〰GnʫG6D`Q $n s^0YSIy*I1M]:P-db} ,Q5j;d6h "(D q7506Գi:۶mE߶mEQUYeM>t]\7>w|Κ2(ڕy^ՓjTۢdr@m۬W}׸V3ꛫ~}5j7|[w~91'<_lfE0p{/ ^Vq^7M}yUZu N"4.82bG Jvh|)rl&Rb*fERApc ^U{Ƙ"3Ǡ1Jhkݨy,J۶A8x~~l^,gggݳ֎4V+VBDyQmˢw2ӮQUdORnBVi|5พ/Lְ}fH x{{|m!εYIj9wfVrn1 Ȗmnk3 W ], ^DPJ(Ld,5]ί*xOjozN#1f:޺uQ}@Ymn6="*HYEQkmUգQY1ܵ]AXwEQ,r?{'?rb,GjMB=Zl4nTej nhn*QEz u_\_(g}L*]h[Sdap*IƠqR "Hl)D@0#TыF@2,E iwQPᵻwPt*DFDb*Tx<>99999'#%CA,ό%2}sgg/f^sYn0DWŧ_ƘcMIe&lFژ|FRyeY +yG͋/>};li|0 ?ϛ̓U-~,^,VM_VWG}o=}]i<N܋!T5yS7W7݌9C^ |g}մ8| 1" ̖E KQ W01n1Rx!( rNDȩEDRM0*cH6#Td("ex"تc2c CDny~zz,˲,)TUVLp=De"/s[^.1(pTh85]jv5t뢥6l6 pVeUˇ9w|glufSN}0Cڹ#k.dOefִmlMi6>QYY¶Y7Cۺ8AnF齻\[?ͬ(aٸWJF`]$XkF( YNDDmlsy 2VU۶x<'T)( i7jO^w"}/r^M%a}y|}c ,K"D@ /~ "(E " 20bX;3;3wڶ̩c|z:OWu]*sd~ eU _@a_n,0z]P晁b-Ѐ zXy-=\l;W -oHӴ &BXWgh_Ly& 꺎8 peqE|Bx~e^7~x|Xӏ>oo^8L@0 @" DF?پyJ]q mZAJEk׊'IR"\9ωH`'O>裧OFZ;nj6Iq9J9I'd$e<ټ, u''u184̷䏿g`e2d-sF;[(*%RHknZjƤ?k?<>gü.{ {⦝"|7JEDݻA 0 [:(L9j[xn~֥Jd쀱 _@ \ qbu^7N[]*ly.*t{;\'y?TModL 0y'?~|-M%H $?6(B}:~"r D%Y>E+Q'(%P)GueYߓI#;`O<}ϟ>{ٳgDǡR!" `wwhr8XqƋ(&uqwnUMO8@A_[?o HRf.PJ`E_%-T.[{%qVT]gvw\೅e]\XιR~oy{.H(2AHIZfQy^K8 g]2"gck-;! R*PQ0#тܼsN Fo-Sa=8JfQcFٰC@%RB$eP׵Kz\5N,j!Tm(:B H^/0IO;_N4k NNfg(δyIF! ,Bk[iFB{`pr'ǣgOY)oiq48Y)fw''q $v^?+*aLɤq6VCGDžU  k9 ,|kk(xeYOvֶ$JZ[!v6a>SWX0S;08QC-w]5BɢЎA g06X" y fvMYԁF b\:k:@s=cz> q/^2˔bt%~6!f*M,~?NAǧ88IҪ Jʺ Ixs.oǴƸ( gq$K Kҳ3?g^o@?2"PJ)E>g,eY|<O1tDtXD!2 GAɩuz=SV0z":Oe*}r:ֽ''BeyI%W /Q;<DǥݕKiuۗ@*d)Km/KUEJDuE hEl] )P$Һ6#Yh V1Cz9p4;keY-X_H3 HQ^{+ I{ް?2)1C/"\kc"m_аѮvu% _ $`ƦxHExVwn09- xpݲ4?;:a\H?׷wf\[RDEi%Pħaghzvjt6bR^/̷6mK!l&GqV~ޣ'7wvä4WDkLHA 5T[k 6ghDye]m5Vb|ԌdVTG3LYX1VJY9K$HH)$wqWeJJY]$n.:]%vc\G+j~=憫( -7A7Ko1Է7Ƣ&@aH-6VhپH>:s$P"rep  \_Ha퐅(}1:ܸe kE '/Gҭ3G"ze9|6+J" X(!PJL*Գ_9{vA9'Q<:;=OlU~JFH[g`Gǧg/N/V?80DNȈJ`&Ike$U]Z9@DZ2˲X!VJ>ZV J(N2IH"R!1PQFQII祃EڄWbyں@|yQ!$N  c!P| IDAT0dDa(Qa9බ]_ B7r5XBѫk _6VN[u]BKٮ;CCvK<}].j/TRHN(n޺3XQ&Raon޸zY+ Ӫ*a]gӢ|DAxkkC(PuYifeDm9$G9+o(Md$J%ȡ#'bfhA15_7%٫_ Ȳ(^$[G6jؗ\-BK*9~|k R@*,g4M,[ aECP*!"X d^BDEnx4 EjQX\m*d4^Gޜ:c` ?`ck,g{ȢebwtOB$aA{l_W8GoܸQYwo|Wr}g>'u IJ$R|> 3UGֺyO"U~8~a#g^{_1zv6[3/=zq{7_ߕyw^}+Q B)&i$ (I# k^ eYWjgh@8m^eɄޡƫx'v$aJ6,K0 Z[8LQT҄)[p"@^ rx xrNRSpz_1]|ZA١RZ܆b:7]3b9jUy].]Ck5B|fBIX)"*! Bj@)J. L4fd MAY`r6VsYEiQRRk bff d8Z1( hљV8 bp|}9/9TR*l ֆ{E3:3ռ5Gqr6ϋ(I=^}͹~LJ''>X[Ki%v` [Bq6g81 5 Hp(^7c='o~[?ITW[i2V&59˓$  $ɧ{g|^k"N82BFib ce]i)JB)"03uZjM Nț5/DQeYQ)QƌTJA֕2pQY.A=7]R~f[\y/+߽^EA5x}G}TU-)</t|q?.3unQzϹ,㱷 *ʲ$EuU%k_~}{Z 1Pb3@d!a2iͯ50* gl]M"\c2DL쬳VcYI-J-8爄P*/7ts;[8-^_.__7Wm8Vl/VՒ:|xb郬39g,XDr @$ PP"00d0 (KӬg$J@D rk}3vnksG1. Xy-ҧ(/BQ0T*Y(AJʹZf,1΃uy cY ܼyMf$i=?<{畽#F9{Ǔ?~' }Y,Jafk! D"ABRQ'''k`^YkzaeY~g't ~XȶK?U꽊ytS??ģ`K".,IPBJ0R*JRX` 9_Z _Q0 #$߀}EtAP48dpB lȌFgDHEgu yQ !|xVya$ccs1Κ#_ $28P@EP[މ;l}o|O׮ݙd^ v+*̋O~޿ڛ'"f;u^{x_ C ,d5쬮0Jd2BHctz:"")ytÃcRֱ֝ۘ7o^{釵Fhb6ιʫ6Ul 'q,h,8_& tP K*EQBIemmI猱ik>/"Ұ8"\eXtCBv!5^@K$2ƫּX @h(WLQ83z]w!0#U2`{{[*rIE6o0b{flPqaTDD_*""HZdurZZ s"M"PyU@FR"P˺U{8{Ϟl XDgQs]FgRJ&ԶmmSqJMVc/nap9\kDk` XfD!#)A0;9/g0X`-xmkaUqFQp6gIl1?~\e]?Vқ%*R~+zZdu{W/@p{+b/_N%#%;658r@*W* 4t$IFR7vA pl8F; P@_Yg" "2Rw2@$*}T2sog=b0['-Q9HT΂bOnP̟7o8|z|T{)Žqs񋓹5#5LOeQPJk[á\[ߔãQHg"x:J-*]e]Y|8?9<smw::RA0/`=EmmmpuՋg C˂,;:P?g5xrb4ZU>-gM#"Nmfvi/զ2nݽsޝ|:y珿xtz:ݍk77lUm,W~x+zdڗ?;_~|>?==bZQU` {^Xb1%s=Pb4/gqc}Q60Ma uʛ|6_R)B>p!4sNhmkɗ0:!%W~+p-_7 ,0Iho1\-nDc^Ds_,X[gYrޝo}[g;z5\N.-BQSsPF ,a&ଷ 8{ZlBlY73,I|a/}g~*2 !<}>;yyIftԅ ![SkhQQ9EUIsGM"))-`fcօ"`ADI-0^nnn~if3Թt^L9Oc.@ /e88<~0IuY)~iw$I2\ zF ރ$ӧ{Ϗ~f 4L$/e0 w[[[$p=9\ߨ^nyS;ZEgI?,oDl@ rpHg ?~r߸uKd*RUs|,ЂYeZkߞDkqvvY/Eı+qS]!$*%OC\SU=eY?,{ݷյe$ڱ7bE.fOf;[Y" vw(&fWyֵ0@LkpЂmH NRF+̱K]ɥ_\bl]lo|/ +˟Er>3y!0nQ-]< .=Dt b%u$Wũvv(Uߺytt4Nm_vڍ'ϟJY 4@Zk^-y>|8@+23! !g6ffD%MBEwj<=_{3CcU/j)g.nlh>o"CL9fGDPB`>:@pҜA#\.._$+}n B B vXwN 6 $D봶log{ֵxx|*t8;)3#dYh4FJ{f}\y'wvww(J\UŬ][m _WON_b'gam|3&%P g*ҲuqA(*** D'TIp}M Ak1 i{t|o+(ƛ}E(Q/_lg"U l/*/]k]UUB]S_9G-&]$9cz?!y2lĂZﺮ+EY޼y+*e^} IOOFց֍/mb벲yB!W@fv_Ё3uo_L"TQ&| @oU$e"gM+*|:NUUQUUt:K*Z" ~K?׽`iK]FwKܕqQ)?zecE pGOq!3 uj L=qGLxp~akt23[9P}~7jm#tv ``ZZfRZ o+Tѳl??/p8p֡)Kd4E\UEQB IM%k=SJJ!0H((,XkmꚈ(H7o'q>um{sm= q?\ߺ?N[o 7Qo_҃tӏO~ã"ܻ_eZkceS$O[mc: FRJ!TYsX)?Z_:Î8/Zޗ@*qb2%Qۗ.^ꗳ-_]m__?(5ZVyC\$6Uۊ-K@PU 6kf5)w\K)B%VUt6{ZKw߭kuo~[2 _?x6XU2w6dw{k?|,%ff7 RT‘eG-H@RUS'A"S$tMgepGK`'V*_}ߝݫV+|&OH@֜%.6 Ţ"21"Ѿ4!Zêh_ťZ3?z IDAT o.f:ߚ.({ykm:[7QT%EwZvq-"bƘ08b$XTHLgEk(2qF'[ή l͍ף8o+n "_?\@[sKy}6?w1.-+quKY*YOռ8:ڙL&iy~mg_icWW޵5ԩ ҳJ-l112f2`k{ju9hkJW?НUg2'K] ۰u|M5-lmKMC̈ sqJ" X=A֭ + &ՎKK)Z>W`{ B5 7 dǸ5vU9F{96: ,BY`,MyշL4; a&[xJ~7,#&c5umSd2OgHg. CUQ(`]3"@jm5~p8Lo\{^ zqoNfYGY(#Ynn}_t51"=udkq{ӟ~TEKX)I$|ήbt(H;}#bJXQ1B`kmy%iOEĻp~fjEk'.o˺<Hm BxeZk3ALٱcg ;bt %C Ky/=n4fֽLK ڻ?cᖲ8 .F6c_V*u]ټ<ˋ$!"p!C UKQ @JHqEQ=\[{鳽~9>9 N,uYYcY$їaY6aTץ;O믿i#n eխD}@JeA$f?=N:V.BF`]KG{СxY=%q kRĻJN`._hsfzkkk4M&w}?{,_݄ Ljs'| S '2qRyPKzZXZxNG[t:!?')ѭ\J)?0UKztv|Bh}3td;o/a^&6sa/oD0,ONP&sp-^B|>ʝ;w|yQ{qQ(IBH ѧ.)DMDR f.׾W啥7K;Ϝg lZ^rW!Z#7B&ڨ %cf:-1+oGDZIi+&9Q#l]UlڪpU[u9 ]Y]0L<899j>IXPaf[,ݭl3X``0*3$JT[6x+{ я#q(:&"e3cc5RTR2eUPkEQl:?88_E>;ylX,W5O,zIDgLJRNOgke5PA@ync\D>>E[] /mmU 3.8;yi.n,3poZUsب˗(FRj}}}:>xgdEQ]= %'@$yDD;}ƖbSVDj/akÈh2 !4b}Y B8-=ӛ}B_b~bD ̬WK`u^U`JxrybnlKnX=Qi:Q%# ; ե1΁'QƞLEXj_{{7*?!3f32֋:Rfec6^ !j䙔sh=o[7J[ˮ;eU q:@$eYhI5f8˄d2!@ tehFRHc*m˺ޞ l6ubb:LΦl6KNJ"ugΦ,h4%q|piQaѓxRMf%Iqj'nݸ}m3'=ǣhgg~E=&̌Z2 H] |O.$H$Y "PeѾw!W;qq-^TW/YIǂlR,=U!8si6+ϱF*8ĂKKh9Bg ". kJv S,Dj?¨Һmʾ 03/B.Z^?V%" 꺶`A. !7N&E;bC'W%xKc+X{^K@y^ztwͭEiF(Z Œ`mx>X / ad , HCY IIlV]˫z]r8Nfܸ&73c;q}vhܥ}6kR*nM ![hDX7NF6˲p-Nyfed-DQ ׫ba]s8= l4q 1ܬk 3?a 69!Dd{3n1m2$u[CC ߽!ޖ)n$I'sx\o/,xBX.굑 h*%jBxן?X,SʤE;@ىxąw]  ѯb?EDoVL""ycCBDɤ( D :e,$ 2x{KN m#}y`/=Tя!X7g@Pݬzȉ ߺD`Q``_{5Dӝg )P>VnMFZ|X%.Y\/9)m:mJ.d&. C]ub<18g,/g?'O}񇹵wfSoz)l2 _x|GeYVU./7zIDfl]f-VM @$77qV/"l^UjLIVO~@dj$b"l<ϙooO+oB (jA4pD_Wkz:[,Wg=÷>/% ;3s["!}Y ",B6sΡV;%Kt޳kjT{?$slCk4U]5a \؇&x`in*LPW^]z%%2V}ȬckkmвDTUM>߾x6۷񍷾+Φŋտl:o7^'XdC srr'O?GW=yOg.//.= } XK.{QHmQ1Fl<{fsy݄$0yO4뫋{g|dο7jI# !5\{"2 =F0d KPA!i A8Lh7VC|KJ)JJ!6ҏ0C 8~*:!d2yɽ{ݻ{ۺ7>_ȷ[?gɉsj"Dd 3"@@mՐւ) v 5Wh<Y~yyY5 "# 9j")Tef/j`~5/+=rm*/@>#3nl(]=o7͛r` }]cgD7DdumsdM#~>\|]Hvefl4"VUMt*꺞NQRH1MYMmd\mNaK0HuSUlk6eYc| 3C`B4$ >ȡY`8sy]$H@v&_^sWi/Tz}r#-?|;9h( >}b<ӧWuU=Ï?^7>{rsussu}qb):l~4E #Ǻ 5f6?yvnѺdܪZ ,˨X\KWL]/jO޹羊ob}u8߼O&d&4?Daa< B, LBz_@Hvy<3ٺʖ7_Fm$ӎSQ"Bgm6x|yy9Lq^?zzg>""D󵯽UUuwFn7v,=P7"[E>d$̬6]V-ЕdhBUWI˶Y;29t<}ɧdJڤ8 Dc+f@1Ɨgu< @KQ4E K97^sw BMmO1C`o]C w:}KK4h("܋>h-R~B&NGRt!q$He.zSs7L1lB9 B F93pԂVlŷVfwPe~DHY^{IW ˦4Ʃk ([;/eZlP2*?D<e#CGY|O>go~Koݽ'f^/Ey\~G3R5r,MUUe>@;Z$w k-WuX׫dFn|`[(eΎ[}mş?;~;hGaO_r)hDu4x -) ETOzSN+J~.4~>)ܺ 2WwoOosu%`_elD(Fx>_^^Ɣa;3yL?;uS"bNG }ilҡ7sp<'Ӌ,sV)ԩ4ˊ/_׿2{>0аXkE-ȣ9^9rΰ C`Y'<;tq`_^U-=NU^<$BS|z)ٴ>~]~Zm6lfι˫<˔Xk' UUQCJ,0 M#fiBu!CD,l{fF7괇\of4M  Q)Záf ˦i"4fEQL&D3ngOύzv8ZxcC?_'ϟ?;,զ4Ƹ8" HX5ldX(ַ)"iRj_\gY>MtϦh<̳Qa<˲<{k9d3ݻ_}齷6Uaz-E;?'Xآ١$!2)UQ>.wo&e{,;|S0@]nL&__eW>lUY>R*k AiZdۦ4Oe CX,Zv-"!  jwvvss|??ޛءWn?, 戍"ýw=9ƪxF+@S#\__FdR7Θ_ƪM#>c g&Y|cDfSUf;D`mɉQdYϱhSwuT(@DD5fFvHH(XhWWncVL cmVjN\,uU2Nbf77z\.N?rm#zuu˦iƗe R Ba]flQ(Cj""2`27@&sy6-߿7NNG.јlFDhHpM]Z+ӑx<ެú\el1F Ca>n Rrxz$*OvM wh@E(m[F碢o%n/~)j) Dm/g棣#MF2\.+DOɰމ&U2w>#S|͑UJ%ڷzÇ*MWNDUӋP]7dYqu]UٙVN M*1R޾[s{ 9\&e;kx9PS^ϗ}\_+)#u] P_㫫j-:48;LAry.g/ΝsxR8?|Qڇؑ!H9/ 7MS YfY!A Ca\E Y2$+5z3"2QyƆ&S֎ksvvȇӗ/_̝;wHY{qy-"^XD Yk-H`#l38 IDAT cbr!D$s'̹,,\1z'?Y>fs2 ypӥ^GrkCus|vz҂E%"!wygW73eob]GT8i\UofI+/*_\bZyH4';hU @ 8EQUcCq"=,a~uνkw0iD?裷*3?z7uS̰+aaFRF0r"r<뺦.1gf~>8۶?\W^ k=z.k#o4r!"zRK1s) iejEF@-YZ." Ac jU;$_{5%B+nS7 F5oE@y:˲<Qe |v4ONGQ;UٌF#c x>y>]֔Unʬ]s&N=ުG{pwZD"yE!BQXc|>6sNl]W7_ͷšFEHޏC^x@'_FxN#zlkj`ƠSkfa ٤7WOaͫR73fsPc.ϳ,+˒GiՌ<ϑ0v<7@Eu] sOBB^F YǢyZ]PV ySU-#7ˊ> MmU6UуA^,lri>rzqqq~l<{'2rp~~|фz>fG43u gj"1<"Г'x]n p}|0$dh6"ךN?h5<d*+g!}q/ě7,N~dȎG08][AU4)QR;D=\stDĝRD!lݵIGJ&{v@i%$VgyZQQFD1{\8wȪz٨O4c 8g$"|0DDSe#]v r4^j#E<^tty-{}}t !l6(<4M_ѽf^>Ԇl?{ cݔ6eU])oj<10ZOZ/t` :Xv*iz\,AC! &0{ FSa}YV܅וptyy)y>:::{1y^xV.}#gU'ϟ׫eoOx6(923MY a$>s^.+ 3 c1Fm~di*߈H` `}n>f&I\ƘYs6e)AZEDӧ/Mfip}jxۼ[Wd,b>ź+4972M4זjjiM]>M$0HU5`'8?Z\_p >Di&(JsgEQ4MvDdZ͈iz8̲L'hSAݬ^{8[U Ц* Ƌ衷>28{?d7*kF=*w#9:~_UƣwDT\K:Y\^^*k4B@'DՊ#& -jmQw|Ͳ,Bt7k5\g6#Hn8=uyyG:@ܻ՚vO?=|p~iuʲ3zB>,KFp.!eٳ?LrD{= 9OWP>N vCn87hZ,V (@ƚ1dY@>.oz|> .Wd*8 XG@6jYVeAl\$hZZ"#jkQ\du(@h9@ZP6""5ǧ/?7lU]B 4eڕW#ATv^Z* eD@)&0z w 3D(2=ǞL=Px=y%g]cϸς}""U.T)՛ lLŋ-uRzs?өCDVsSOaU[U_jAB+]2:u^WuP&ۦ|Ք15b]Uws,03|l5]fi9U7Mc,2B}Q~[D sS)A=)Izӆʦ0C=31_]dl/޽Y6ͦ&ϟOٝI]<' bϼ.ڇUY5-2l˗&3-#N< (%`.#h4rQB*g" c-ax<T&@#58zd2ֈi9)HYP4,P]|xerdDc% /QX  `+i2w=Rj*#$$BCIN 3E(Q|"B̂TNH p?y&̬a@A F'ɾ*xE2鯊CwH4vw;c8e"EZ8 M_cGk1 6}}i3Gv}kax<...\ugB'#ʵZD<>|~ܹ#mQ?AlTAkl[R ygx< F|erkA 5r+.3=jtK;CRدm40 aρ#u6Gw֫4^eP7x2ٔUVUxdb:gg8UGrsuT#bI!*4+k5̦Gxvg,#bt67i(rh4-Z6<3{Hb%a]ȃB33``z]>x`NO<, p.T(nj"1ĬmZ*ꬤe~~ wڬȀ Q2 h[gm>{!9x,&4l{Wo1)f}3{i?/[ᒹ/}KUj`[aTZGul񾂍(EDT.j*?Ձ#ZN˻v %,͊ٳ'ɤ,ףQq~~B +&kltss^O3" 薕2؍P=?*IDrNYI\!,0:u)kT 虚,cFe.7nЮֵMY5h]!Al8gEgQ@-xX,өf"Qhc˝&PobEJM "ER:& 3sp{ʶ2c("AFѺ<}tX&c; Q&ln$ #(_3^c?=Hh0 ) !264fTQ E~$l T{Ad!DFACKOKʳ Я|xrr/[C <K2d$GV=b›o9LʲAD̲6d{m(%Z:pEvʈ vcT~$k3P'6aNӄ,+|<,fGe,l~QS{!f3 7nx2ˊx6^Lh:;&G8oL&$D#6Tj x477undS:[} 1˘H=xP;uo(xUUѣ//'Q }K4&&T%wKG"2fN#At]N'd@dF# " #luUbn1R{> >D0|_C9gȇ[wve`>oO|m\\s#QI]c2_)Tt~A+SW2:+CC{X:C3c456_$4M#hYV'O? 1CZW x8Fŋb6+E 3u=8#=h={Q پW:j;S<5V8Tb8==uWn6|<˽Mm23̅dqRYj67k4&؄z 1+<7jTA8>c9e&]"X ub"$-g",L]- u=:Vh=ֱ@D mX,>Z" m hzZlI3akJUJX(רZT* DH"i@ `!=@" =_70 =Xk!?g`Gs6{$SttHj!ś=ƝN]э'7>==wǏUg.K{Smm3)DG:Ngzh^ ~9j9GD4 oJ!"m*HE1Xu]}/ݟ?E"D҃V@VUVxl 7ƹwXvL|,.xg/HC}}zSn:|c2(r(1@`JfE4'''jl6ƘtZUU6*zuS1{ZZqK7 xĭ [YAcW@hZZ5#B+7@XX"nEt@ `EWlYVԾE9@DP#@ 0&0 3k  `7pV.B]2̀] 0d͓g5I#S[C@o{v!  we";ј:4 I1r0C`DD4H sĉ87j /P4\fά/`^^]]6BHQ p[!0 zPG*w{OInDMA% v[&k?tp4/q̖uIdfV5\^_DVs!2*A@++]nY3&:N?4uVL(]T2c3nKSA?sDX. PSL0`i("ܲR1Ȃ"CեhrPĂ&p@ j6d$Fުƌ " z42gh׿nl_\<8^cǦ[/]VmǗIynmQDPսQ;HA|CQ APB @ #ȚYP,Y0 0A V NOOsn\jZ, b?<ol6mWaCC4ֺxGr2Vr1; uC#Dt}U"M qvHa/*K-4Fd"ڏVD߉MoOBꠦ8c[a:@O吏:m{.6d6K[J!ۂ? Y$Jʻ&y8;K{Kq ͏u#҉n2s@ץdF,fZ 3ǥ=!FV(_@q͝ `M V=[ "cNO'YG,wDБ}ʢWl鋇>CC3hAm VeUE0pym/LljEpS#t"")Ե Ķ*3_DʲtM*Ap u[Su*2 혲c_ FoH 4Ղu2 rIaAVq٨9٬ZVɳg秧'b.fo,j&i)%0Fu`{ԈXU@ȝa8" 1)գ.{$+] 5ʱ vMV@aްN?6 NQx%/,iR:-٧?~*r C8\ Qv.bj}0NU :4ʽNz8:β vgM*oT~AvAV8&yf1ۭג/܆t 6H,C4\sO`l6w}/Σzh!bѣGo6]^^. nsamWHLW t<Cg,Aĭrobu:q W;G^lCP-AD2hA@ E4P Ycz8>Ż7޶.Z.m,3Q(,' D0|>g'˾lg=3tC38҆A QtMɉq(JGTNM&^'-KP[;sۙ8]>zn7F?bE(߸c R7뎽mT&-!C?L~[Pҙq܈Dy4M:G%;+ ཷd9 :w̢(<@@@L[k "qdQ=)DB(s) 5R#ݩ8Cecq IDAT$"Vlܹo!˲G}+_YZcGPWw6QFQFk*wC=C7d)nyGiR0 "A40 3"@,hyif[ ci\.eŨij4<"0d--"l֘M$Mm?n_t1ZoaJ)biC 8!M뛽ߕnwclj8s-aLM<r}z{T7!L䆸7wm$TDb`H1Bp NZf:S*[ۛ~1@˟|-C0wVNw‡p'B7fOrlg|>Ay6.giċ=-J[oU%ĵ:H$AL5 `/ҕ~obHUU''Gtzd[ڋ>>PD2A\[.(57V?6;w[o St[akC `0Xhm@\w`~9xy޽`\V5iFXzPcѱP̙T#8 yHGB39tԎLRzAĽ8l+A]]lrbQ$c"LMδƔZbmvLo{=:(7y=ґ]sМ<}@cEk {$CZ$$! "pjU4$=ȶljzRDjOB{=|1{5}6B/bhݖ6 mwHo<é+Ns)0DW P5ѴAnN_~s[#"s MHy3;g|v<ffb@@:Qf2e{ &|3L>{ٳ_nVkDtqS 25b4X=Rg$ #\ ?pw4(qկOTOY2bDTDlĤ=oI%}T GoL/op&Lr)ڎ(e)wB df-?,@| X` 2d@BE@FZAoaAX4 cn!Zӝ 3 s(7'QYW=e]S9}&jaE&@  `m]ToQ"!aVqW8"mNO`z4V@.>CLi7yq\f M\__NǓ,HHy6)}1~*uL;Cq= [k@ !d,ˆ]Wl6>:9կ{?яZ @BbCS?o25M )AS2; |i롻Vz=YXЮ%#].~ubhJtZ|xlNKgQ0<{@!2qe5\wصT-"BE"31yuc4䞃3uB:Ņ%*+?]^^-ny2FR{E8N#XhQckf#&UCQ`G2vby͋w3mOU婋 wi1ӷ4f5WM; e:0;wϗ'O$FqHMڜW88&ƶi)ݻ\ow#DT55j݈1خIV@BABSntxqtzzu~?gƮ 3_{79X҃Q,ƒ@"Pnw IޑABJMI2W=/}wԿТh`Kz8YVoϞ5%0 ou=qWCLMg {+ iLQpuҏ~G Egm! k,VU]ףQR/e| l6gLFY.ot6|眠H] y1͝\^?<}hx;z<ߑPc>1t)㋇E}zY=X{k-RS״Y噙 kY,cP3$2cYOiFQY1Vh jJj1| F9v϶*S8}K(J3y6iIvI"VUX,...G}4͜sEW:*"s(^<{`8=#{E{h5tP7"X,??>"ch퐄B@IgU1=l/XH4B"ZtUUBL&eSud WZN EADrր, {MF뛛׫՝ӓϹ67׆" z fGeU bh؈tRhu؋͆яZ7AG90"i <GAZC?@Z0I<5wt"B0H©* v?\;I [J?v`ȝo~;5UK90fL/_vX P Q]m`$-.ZD4TzE*3+"777\oV7Ń"FzhGKi CGJkKj]= Q,A%(F\ kEҺV{.\.QyI D϶LqȲǓ$^ xqj޹sG]Q>HYXTU5{" cZ Z[7,;>YXU_ya45X6$g}񺪥icfz"B/٬fP5T`[k=ON=kAl2^dpJG?s}jGI)[|Sq `^-vS6B$LB D[5& gmخ/m=)S+pS{djW::i%К 1ggg.2~,*abCo I Y]^oTUGO;rDO'uko<ꗾ Q4 =rؿ=w+=5lC␞j=)^WUZ\Dk-PhThbB4!r-]Bbǟ]HZejꐁ>#[V?EvǏ+#n5l];̬9wdox_!_wy\b:M30O g=CȲ'p\/>|Ht2ZڌFNڡ_,UU ɤ|G $B# ]I_@/ ǖJ$>\C[־k?أO`[a:$P/9]3`=,Xϟa;mRoSw#܂׆Zy_G" DDwrA@@Dh 4Ce0RojNu YINNΟ=shoƷ>/ڔeU,$޽ؽGP}e-׽9L=*Yk<}Sq1U,ԼUnnn)ze1:.nZmOLǩ_OT\"G!r8_MXտRF\5O2sl̾ ,Y=_Z74+K/I_l6?gokۑUU{:=wH>>&)wAVR A$+ H@lȿ! W0 $Æ$Cm˱$8Z=HlMo ߻PU+ujWsIԮa՚jժOǏ=q(2lN)ʛG{wQ$Rk/Wdv!F_~U]< h>4lijj%)JLGyF 2L(I* mCk?,"=th<<#f[s(yI@[&5??fkC }CI%KQg1. CC< cDA> vXj?ڋ;5MTzM^wWă㐠DD$Ș:)˺a;nsC]k-Ţ(,fzY}7}x<s? D iBRJn FOD  j,gٷ[T(4ˎxJH'(S҂@PJ쯼o~ߞ6ZI$2Ϟn4Q"OAȑR]gRLGZM B ` P{ ȉ`[޽s_5Bnϱ1{f}Dw$FςOo\.! )q'#;sHB,3kpw ZV,µ;xA݃:} #ٽb;_JҔχ5ulDCΠfy/Nr\FS٦֦F %d`!!ЭPIUo :.ԍM$,ˤZ7NNI:?l6WWWWWW]HABIʲ!dbÑ{q?R$,?,E\ S^,|ؗM$Y<>Z'IqK _2T9sַ?Aȏ煔@z89҄%0Ba$Y|e0Kk?,I g}=έ~"E{1 X$0D’F(H@A97:E9~goaED\O7R3l-_-^-V k޽liKеˆ/>vǣqΦ!1 ) R*Zo7v4jRL&36lD$5$4Y0hL8!BT Qk={As]`$DM...b僭OID'Mj$bF# 4udUDVk1@a-v`blScko`yvZ8VEHA:A )  I"yέ@|&jKoni HIT%B%D9`A"12\~}?2#v""4d@IJH͑(8*݂z_c3DAlؙ OZ(']o+v=@cw& ,qBh?B2z:" uM` q*G% 46m@w5yEj9}XRX"+A[$`-3pjDRH)hl3)%Ac(L>*dwޮ@_]]W租:IoE R ,DHR"\M%QLa#DJ]/棔&A R(@B*)"RR$'*Jm"R YܘmF$@к vݎYn@`%M17˟D@]~R4=Cd}'=dۉ1%^A_N)4˄w%ͮ1欵Hm8<ꟙUAsy3AK@Xe kG=9vBMt6L>֦ioK:O2`x?hLޯz,dRʢ(y<,(2GDTU %h7b`; }0WDl6i"r[q#pd`c: ȿo䟫J+;FQW豠|MG׃:V6N>-s*OzpRI:G0&yqS 1)zdWu_A;5]*/v8bڝJU:N&Im4Y;9FĸdY&\,=qe'|"4itrRA<ټ̣9,$I2'IeҳX)܃ٝi\uqR~ ~' jf IDATˠ2!<ܵoMeq-W.ADd> Jf̬'>{?]Ahj4h6uIYkHvBXAFPFZkTF0J !u*YiJk6d6b"i*A&.,At6:V*>yx|g?µ/x p_}I q/F(~B"R;bp(*>|a;X +PX9^i!H{.fb8kw B)$ Q{.h!@4H$7vDzxlS]jڮ߿vvfgggDCU\OX_=tv߹ !uJӔ?Nj,]ţ XC8ӋbnQKeOߋӗ ߾V)΁N\'D gd?=ZTKэBJ Z+IT&Hz^-n/WgIF%APIT$%О SAc .NkO\"jr7 }3i5>n1y^ggMsST+?b D庋؅ vG{,BX(fdNuG("J!4 @ki~V`c@v[(fYVU|nMEٳI:Q1KpJ(;<66 8;Ew6xl.k߭Kt`v 0)l^iZ5 "HCVQ sd"׉@\m򋬵u}Ν^x὿8k dc(Ѷ66 *)Rd !!cG}$m4AFLG*wO|b1wam"3>F1(_Vf6l;eeQ8U?iH' O9^,;uU`c(w67(} -bi?;yΖLxj]8 L+;n X@֩Lt 8EG.d;I·7=\ѣGi_^^l<.@J4T Lb׌ b-]:?$I8p!yZsu[s#ɲ1/iD~`.qA, ,Be]דd\:vMuagX~D,5U(X@@GvLiFW̒$W~Ӭ(jS76XCPX G X]i}~~~zz'>y#6OV2OK# Ƌ2E4ƂDx@2ߎ+.1N2{y;)쉟wF/צz; s 37 wwEC x z΅ G7ڠбqB\{ij6^eY@LIyKq:0ۋ]yt:%ro_د:z aD<g`um 헦_0JBf O!Q7sqνm]֗k3mBflVem,g\߾u"*5OTUCBĂ@"g_Ⳏ At#G J|ZkPu0Q1J; ?گsԝ288'+~w>\ɧ ׾KYa1Lx 'Of``'`Yn"ڼ@Z|C Z2@p{bF![eQ FFE駟E1*2z̲lYUv:qzzk>׹x|r%MU"cP1ة 1Z^izhoQBD!Cu=3!2l6l\.X.l^EX,8` B쒴 !ŎXFɖ@nz%r$f38r8 6uhF%b&6If2I6euxUUI5M(Ul2ُjqq~~^-,gz،G m닋|<"PN V" A})8d^Oh hm FM :ËWm'?׮_ow~wy&@;_|&}ah\ xʆ& tw^UU~o z\3;@ ZDc(V ۜ8.OW4޽;16IRHq#1xkD1XZ xxb9C^~r (6bPO̦aRnr x{W1^gI_!98W"7o޼x{We42UL]myC;lz;h [ڒm`|){.|;dͽZ00x-XV%rtlT/_:\UiDfu#{ $a-V+h4V<#;nvNw1Hnp4@]d0_SgH@DŽD_zc\P6$R)IJh=y\klWWTԥj@֋r:::@ 8얏-Yn֪.u=ׂ!t%BȞԏ1-1?v tL#U )w$bo7X/B  FI%gs_N~] jgM< "p_nܸx|l6)z^ DSE %6ҁm9En",?\}_z'd꺾b۲dt5q1`}'8f.Dx$1=̿v}G/>94/Gk|fVx<ȃqw];ȸq AR))1QxoxY}.~}¹ APM+02xg ~ʏ-4 m&|t>$-#dOSAv-~j`o Pb0[3eY]X_/!R@c"PJ`AZ9W7Fwz!@6 ޽kFkH|fc*E@ 8EJ ' Xv7oۇ>x;Q%3 B0,3풷sd:i CWjx;s۷os#ZkvO`+u^^q;tCMs֝ŲZ^PR2k4զ`-i"S"I,TTն1Ɛ%DbSwY=uDp#a1+»7XM<@cȬd]ABϞCQJW'ޘCT_Y/32O> :wMq};`uWC9R+=K%?XaѣG?Nw wMJKɜ^p"O*بq4v<cb](r doΧ3n<;׈"}g^ 6@uvͰ}D p`v^@@(|O?u&&k#wfغi8_2GsN%+1cVDV ֢h4k_D?'$:R$J cB))ex}D17D1Ũ__yF^,zb؋)L.a?wk'T\ZYk[Njs]ޥ-/xZ|rϻΈe~,~q. b7/.*ϓ$9>>><1rrNfi1'/rV?$ @3:ͱcAzx`uu@8T/ An\9~uspkF>U׀N[6*z &u؈ORUUٜmӪΤk@$¥q)"jS#'"n9oc҅ݝ2) H!Z(?O^}ՋE#t18^wa??eu6c}p2>K1 \$D:ؖXouX2`xv1S~qـKgij= v84o&M%V&k,ϭ'nD*Dv!綵H@D(" %Zd) Yplw*h Te9L咣 Ѥ"͋|^\%2P!ލǩcnG9j-t?C{'g](b.@t57a J!1X0"6 -ic!X;cŖ$n'o'iSHT&F*IMl:o4O?ϏZ?z|LN'x~<[q :HhE'wG09s أOd|͑)|swwc,G6ZvyƑ#qw $*To])J\xb}>'6bz&gwv4}!JD|yV+h<,f~}"$mG$ئS"v*gJv He֦I.EEQͻ,u~~?-r|훷F_GM4 Շ!h;K^Z{TWg 1,sbRjj{H@6;aM!7uyyY7}ч>L& AXfzlU1ŊDbUA4uSF#VUUQũcSJov_6~&>35OBcXh ݽUYMZThIEYWBjm^o~_C`h&0!+Ӕei*Iu$p,Ϧ wfb  X]+pf b J t 2ۺrF*&`i\_7 pn bw^Anq}]+?9?ل,}7SW:ʲlZMf$I~}'f!a~z}zvx4|;n1u]3H]2I1zȲ,/RkS]7=D*}K>O2-]cow:tMx{/\u= {ogW _~`deMMiAx r ߚ{e Hߍm^;|?>`06w`l7 5v*B"AduQB5mHBdeY޺uR//?࠮^[dgOG/ot`t|,*t5%h!^ǀOk;Wߟua5rnwaۏ...;=.zv2]J$I<$I6* !%vuv= .Ӳ$Y )s5lX_t&/|>Z `^ʲ<>>qƳӳ,$a!ڲ,q[oEma~[O W-oAb*pgf2C oAy0 d"l5 < ryI-KF|C6Ftf:2cLeoUoT,]U؍Y ƹOam ыw@Y @BRLU"[o~[ߺ{nh7[˫'ǣylA^ֽίox<D&I޸q~4`l|dQ*mj]78ONNkkutҷ43u;?_1A/ rcہןB蹳b ;ſy085 zO,f| Zx0>ë?LJ/w$ [MՐw!+͍(@J ZBH|ʽl4c^ڴN7|7?^xwyݟ+BX YyP|"ʗ+6t?ccFR bqj2?(+J+_ 8}jÈUU%dbU2BH]D$Ȳj3(?S!3O'/ |AM5'~˹W` 7Ȝ)aĠ/| 7܀Peq/Ӹ~q;ܧmS.m~nG=9u IDAT`v~~n| -&a+;upq4E`R*)iLS*qt,ٝ[7_G./q]W?@}Nvܮ,>g"@KHP18/H UNnһ(>aRO8 / Xv\}}貉8z>Gh,l6oo}޽OB?-i|2G*˃Z)~\^^*nNQP}B<znf0>'Ʋlc jǏo \\\\^^{4M*ݘlBiNTUG|_d>W6}S^<;;η"0ѣn1ڟ >qȧ>*&s4q4ju޽lfe&x2lR&Mo{纩*mʳ,ˎ? QyVt[7RˣCNs mj):[w ^A2x"羅 ^G?5b,X7L&(XSJF#g !XhтEFnۊ|`vFF׀VŢVHcYZv-GoA8oq#j9L!}ù~C8nH/XiC#`k1Υ,ۭ62Ru4MR Ry]ϟgn޼ wβtp VG(:IZ ε:ꝟYmBhtp|Z7~CS^NkN STJFgH$ RR%k㢩j(/fzzV~5=DW~N_{?1__Y -雮|ɚu|.o ݻdMpEQU|>[?˲Sqz~~΁T;X%i8(\d_"wd:N@%b6=}oovѺnِDZv,"ςA 5mUapNv ]+փy!Ѓ])p;yWU57 },cg EuYT9 6gUf4Sk^߻w^9lnlAyekH yuy壟j{.eo[IQm7O^}U4 i꺙3*ny婔ʦi,麮:T.^pO`{]6uc.t oNb9s< C:\ | >Tß{B}нlθCss>skmP|ĝ'IR@Fkկ~~o1?EPC%J cb$L;׿>`:"#ˉm^W10YqM 9kAO7k`8 B_Ӌ?6gݍ@H郈V,!|& Jeш3cu\.7 ^Wt: snׁBt=K6(aZ - I(jueLf"a]fru~yK"K~$Ih˲E R\^^*J)l6E3wi[߻y!& "QS0A [q_/*^_<N}2|!Ԡ?J!"RlLh͛z*LfdIq9MܒΧ34~~뭷t\5+bXu]OuZAV>K>xax%A`N)oۓrI ݧө7߼mzmjn@)5L)۬s\ZZk8;;{7884Cvmꁨtږ)7X֫E$`$gO?=='yitFoJ)RD~۷UL,5>??w6 g$DD>߉#f7H1`~z6{}>*:|*KZB#8>~ 5%dbq 5kYCDwi<ʺDQ['(={}]-84ZXAe2"$r6_5-j$ٳgoFUmW[=Ƅ16ÅB"Y*!(DPRpBB\0_Ȝ18Of,_i4Aۂ+p(%uѿ%>,vJIj=.F.D8Ɣeu'O>ֵ6uZmEyPplj,#TZ7R R*W#IҡYH!BYoc)Ol6wB4O GdX vu|xһwJF=NEAމu4(B`\wOOPsMu~ns9/~O +dt,Ȥ-єjiTY$5A*k(HhcP(զ*~zFSr^cyh>il=8}6JvSn/+J?[\͢SD\tvr;3%kZRBm4FX+(]`ٳZkS8QZCJ]˲lH@Bp~'k `ID܎˼BR!!1<*DA@H}9ޟ7Xm^)" H 1|jC?(R}*"ڢ0Zro{zwTL3@е?7<ϙ_LF#VkTEZ-z+$4̠B6Ow :(lϢ[SBBB%Mw??`J >P(w}wX(ؒN uNJ@\~02#D@`\=Xb.hjpʾ.L?"PYnTc̲L$U.JI<X]^XӬfԦB$Reij%Xm,Zv>8=99 K`F? Q2\F7 sH2i"H⫯mYMfcݮB]I h[n>}v~?p]-PTjaLs^zq>mM]D(ZI D`B"Gaau<}7p_qVm/xOl5ݩabG Wb ,D" NL5[ ]DɃK-^CヷɈk@'x96\p uCDwڇ:󺮭D$;̬`4m6gY HDȮ}mNԁg*B}й?g_sJ6)"ycȯ@seIZ}__lA{\ ZexMBao XO?ÏW km-l61&FUS4+TՍl+T6.[(=;//֓;yۛAuW_৸x 16#O]_5D &q%O7f !H>zUBV6YViOh4cfZ8\ylB٢(~W~%I,ˮܹ^4*#BݾdP:N?r[(Qv%bRn>ѣG'ZLƛBer6.eYآ("}ƍG22]7 ^y啟7<],ϫv7N}c=B4^wW h܇v[l%Km+pJ5*޾{9|j31ȕ}B;w\yub M; x]}vJ)74 Y( ?cO@c 329$n9۾=7!֮#*f]ԛ''oT5!_>Y4^}t}L2 K#@}t}.A> j?z\:4ϥi$Pi8rzbelDUUܿZ1٠ c%?.`A"-mChJ,?}࣏>z;c`Y:ݬ@ݧXk8>>NӴ(CӧOݻw/}KOLq+_ҫD\DPU@)K!k{9BO>ANH}m&K;(%X'!!tr58t< G= |q!A-Qe޽6סּVd}8%?]-!7?i>"J)φ=zHU‹.U@.r<k^zwy@E4RJ)ɯXI^^> ǯŇ1`8cX{ɎP,",|mMI69Cf% z~0ߨ_p!6`>FpDras23Qq2O} |]u*O.gd)>O5S~0!"6MۻB|[,n'Bn hqyy/3w}w~~.y>s3Ӆr)vo/xg~Ͽޟo.Ϯ/kWz{ r1{\.ɓ'?_ݮobg?{@îk"$`08#9ykyNh1`w`\> ֫S dn'E) 4f}| kFOxj?MOP)ETy. D{\.얟y%C< $hDt-bA0G0 z-R`Dׇ;]x!"' S9`wL\9>5`e<0b[N"n~ENk6^v.vv 5U_1F\ /_/m DZ,is瑙FGaDȸM?# ~="CDEFf"9J"Vj"n,efO?}KO9/2a3f [boۻP||{I]Y,<-)[VZq[ ^Eq^m`rM7~?nBARZ5g~X,7|_wa? }rlg>o?n7\.yVϖ캮9T,pss4M\}www9w!Gm7_'O~Wٳo?g~O?q48^_DϛͦuCtÆ#t8mMcRstfQbEJuH5)'ĬmLH]_!jب S 9j)*fvz\eHѶhi x`5/1(X,w~z\c6"0se !b3sBfh2/&8ÿ˿('m˕0;R,ԿZ+eW~X4ڱm3*C'FaSn}~?cl7] $V((oS*u{w}}=0 04T`~*д;[I3,WH|26}c Cxww#?ju}}8>z.Ex`>ҭ: )J@p`x#|-<RױտRp H#}̥cesJzv\/ QK'L}% O볩p_O2Am[R|~~0~:J9q 2s.QcI0:Z@f$]1~onnaqxwwN\"?S%aWWpQSb>zvd 7 a\oΝs!2caIĕ-4N"$9H8ιSf{ 9+eg( ti;U92HZ|+b)&x*>-|]aG2Oy6f7ѿ'`OY&S'-迖JH~M > fGC}0Wax LAPe " V$¦ei&fN2"7od  dԢهd-{hKI4e5 W``1z`S>ڎ< (Qrb qA2tk0`:IfriQӫQo-)͟ \RGc:lV۶Օ,Յ 9 5:1 ĕ'E(2DA~9|YmZת83-Ltgk`1Jc8_2]GeP T_ 9!fab62ugX+Q_y:0'HO_ODy ޯV+Ѫe8RMS|cx8 f͍Lk%^@sNf% X2[.F|JI9ql۶3{7E!n ݎW볦޼yH§⚟zߋqƦi4 Z~*#>^Ul ',]S~FNcffHsCbA.Qƈ%S kʼaA(rF;Y&i*t%d?XT#[֓S{8;abV=0[]j@OwCүkL=SØ]Z`i8fsvv_ׯ_}/KDqr7[<ß(1F4)%\I y0j|Cfg ?cgYegN0U˹z]lwV.-vxޡŠ"LQ~Fb+4Mc 8 ʏbw>f޵\\n.TM۾9Yn ض1gZ5T WH D[.x8Bubr^mχ!Bf] ѵb@ RG$0&#L.W-B>OIDP;pBaƥV۱Xd0r$_e5G>$~򺢎hid֊Y$9"RXbG/Ӏ]KBWD?Ab8ܶM|VPղPtW;;ȫ9bpLmY'QڶmJG0K`ʼnXAD. ,V"#@:f o[9QD\.i[r)!EsG &$02s$ f8$%-)J¬<}M"B $;3#2ݒZ@Ňؼu6f6t1kq,Tm#w-HO}´b'2}bbv'jLbHDq('(d}U`{ Bꭃ W,'u[Cu?(2;?L뼔BflŸheg4cmFݮi_vSB,ĦAht[JJhɋ&d:|UׯzD< s.$DQg#\+0yujs*T*䇝e_SHO y&"B_1s@:ޗZ!+t=LGr8TPڻď!4 m#=DKRN6 W!lmKDtަ%fzO:͘9ZExdgI95wѣsms>ݝ*79"4t]'qgyO5Jb0s4gmJ FŒv6 އ9"ovl~`}O9eY)Y:tpBqq4xl7ɽRr0m ]\+bEFBI*!kJB%3/I#>@I49f9ӟt_]] {/)%q4X H!F OKQj:f~4sik'S"ܛocLJ41rD\qcB( 1!&AQ񘂂q{G}ӧ'?A~$ wT8} sQ(#gg=Pr(F ֕{x`E׶Sxk R?yئf5)< lZ29pO6}r:ʜlO}-}!^!S/k5њs 09hb*o@'U{5`~՗_qD<~e{Q.xtG\KTB.iMZmaX\\\}+"jjĦ=aZfiՂ`Ao\)DZ+o9Ev䳝\~~Z0ȅcY}+ ;sE$жmG9 IbsjMDm{sssuuן|~w53kQ\'X Dԏ0ESC 0 ]eJ`j:#EʃŢ<'2KAvFv?Pt"`׫ejiQ9c&y2 NڎdE;c}S7"V1N͢eo}naXu ڦLC-s?s 7\QL GMʬj,f!iYwݟ. C첪c0ybߪauJrh[ odkxͲ[*W Z38mSy+HH1ΛD~ aDz#rCh]u]򦪝7`|4 K5\,%qRLDہ|vJc u'N ]b]L )D%E ]̺|6Տ ?"4 IDATlF#UވPszY>vyUXMHJ8!vN &so,]t?MTT *Fj QEkN|uaW_= <(IȶrH!9 bTMiRr1 (cĆs,Ec H>}zww'0@ }SL9T+! syJS;lڈh) \Udٙ P9KoE1Sp,N,"2r}+잊>xh8؃ƌi\}VS-XJk5ҵ(~{/7a0o!"1"uM#s<4~Tu&ҨSugAg_9tV]&jˉ!mZO =}sS @8rG}*Yl|v^ e23Ĵ y'9pðOSHP?@aYׯ_^!lC~_[[&5(kʴʆ5h?v6zt {E+XT}r:*ZPHR(&zryQ?<~*Dee|AQs#C8;[0R\@"ƌ,A x6N.VfeN:`F""z%;1ιmhcfγd8z? 1bDK+FDٜ.أaP/+3 ЯCmޖfF}Km #*?,ki.̠N*T nʛ[᳄)e3Ȍ1Fk9icnީH-blc$r8cϞ=ky+kf]S[WXhv)vYP[&m:+p p]F Ż5Gؑ荈 %Z"8eBECH"Zb> ~%hi땥_x?g&K Q7N9',UnovџuZ-;nHtAtM5 uAј&D =!"8 6???_,"Ş˵, vUKQNzkѠ@>n)-<<_X@QSPKQx&T5G59yS4{rD4c9Hadf"H[,8" !5m@ Ѣk.HDIeqL^$DԴε~_.MkUIjF$_FC7ҌP,W*KQxB:Ypy^VNs6/CBddJE#C @ 3Ȅ`FCD "F](cbM c(lSo9\_Uxk8M 3N噿y#ޏ0nGҵ11@ԤYb`|1#M0ʒ9"&[)C"Q@#^X,u~Fa"$QĞܘ-3pΑK*Q!lmYxh8u""%mӶk[| 8k]i^198Ϳ~O?O?o\wa qEv;5tD`0¾V«< [xH*<9| ϽKMSBũC+i 0' T(  G ;~q{?7Bi8A#zSRrB11DOc7};[--ؘ0a`Dtms޽y'Wÿ/CdߴNwѳyn=./Cj23r;[!2r@!0#sM=0d;f? gy -]u(n GډƞDѳ~G31F `ɯ!B#5" ;,K#2#3Ρ\Mc s#M#cDA|T?.G!chg̐.;BfftHL9ƀ@ٵ|M:uX)qւgRtZw;K1bX,} $CBK~A"táC5 $u]'.aquRn0AnGD (!5" ȧw.+!bX}{{qZ!"oHXSt(?"Fpab@h6:+QFA-#;pL@#2F! B LO,f`10093@F 6(9J L (@H)gZaqZ9DYח)W5&H>!Κ_/DMc~s4:DcJ2-\^\DsLAcWBX%m-~o[[Rk_E~sPlcfԶN"km۶mXvBXh"i\vi"te ʎ&|%.m=z4vW_=<ɓǏÉ" ^t ": A#KSLR l;#X=AU7u>-FR^Վ)%#l& B?яd)CQ0`IZStQvYr1cl +ObC͛rnK ,vNmn@<'=9#p8ڶ.4M8sED)+.}Kp&8NԲP+M ed8o[Rֈz0k3\CL>@&d(u Xp6̐FD.ʼnQ:q""!NK_=4MX,N(;%kDF %1 ٍADr˗^[ײ#A"`>}zqqN6a$*(mZx:s4fF7HMF|-:+:;sҭ$B>*h^p4Q/B,BsUv "ʒ @dm4N9G-*+$d"(f _ϟ>}* eL`k[ڨQ֙c=F,yI%Ѽ@ qkFCdA/ef+p ӹQYzecCJiq\_i4_1Nܣ%u]32ffF/(Kh n(řf'e:H>ĸgg0\9quݲ[JXZ @Qon"c DMbȵZ׵v v8j54\x*_u d9; hFج– B>Yţfw|ڑ}0 a8B+gf1G(3u`R8X JeA'NYIq5LhpL@HMa F5-XNcDt4@NΙeк@hYCf_!q9 n61Jߎ8GP "!B4ޡi]-JSXEV`3}r? xB2 IW^|է~]n5l6=?D!{YH9?&dFu]Oe+Z +~+eTQps[h SJjSl)1s6 J32Cdɩ7tHh$_1TAt9m vDDr%af *at5ߜO 1lS W;NbrP-?m *?{1jw2["ӗW,s;qLaɧ0|"ڒ$LaXwLmSdQE]7&-ξ p y.((2{z&Jɠ (G)kk#93knE].j/^׿&>ѣGGbȚ쯈fDQlW3LDv|xJ~P'EzJ.SN_)So+՟@ `N%%w=0eOʡ-Y=Rsε @lsXql !0@ߟm..,!Gzf 6S]qT.Y |S@iQ)8%BD`si٦1uɆ|ϝARN#sŎxm|3 rA #z pdPA| >׹4NQ1I [^?Q<>< +}hBC 4n)JIގbS;6hRM3e/v/~񋯾c拋>wߕD}0N>'h}EV~-Y2LV paPC*V7k ?#x9 8oX6w[ˬ''zbAg} _Զm}`4b~Y۶r<1QFsV N @@*M[s~Yy4&"5+,"-8&ūW 짇gy*iFןB0sb}-R/q*uf!2GKhYO3m7bm6"6#03Lv^-Sҳe_/^ gϞ{Պ<9RsYlPo]T/tFy%׿`݋bzNcKce^<00[V+%q)90*-j* Ƚ!rE ^ιG!߽z{7ɳg]Jԝrx|sl ˑ Gx O S[,]n9$Bs@qEw#3:` &?wmf+M3"?O&"< *>Fxد]NT̂єC0ka{tx3 ÎNtx2cE꞊rfιb^bއ2H V;PJаb{rj/IP/..>Cл;9߮!˺٤̬% O )zVQ֘U9ʍf] OJ0 F۱c%iia#ߣsYQA1W`mRBQq8?xw^H|Z x<gaI+g3v"ZˠaJGx AIj%/볳30#CHz}LwN>ϟw1^]]m6 VJҞJv}*v%> Lz*ⲴB[_cLRh.N 1Wfi@Y[j92K޹fwӓ]dhlŜvιKe~ٜmή<~Zd\KEn뙪(HSlҔޝ)ps2iw9!BzLuܤN[= 9cQ 䩍ö][2ã@iAT@F: ƈs!3Gd"VWl6Qt`5E{̜ry!vXr" k )+jJz!_W_~I4⳺ y}k=鈎0AB0Έh{`?dn}S߅ IDAT6"~qu]_ann_. Dv98gx^5 y9uW/"BNl[!l6b?bږ^6!XN$2]@Ap䭻%|ҳprNx%>sCd1 @^1f ű%!Rqms 1ȢтFK>Rn*@|@t>9rrVxċjsyy4Dni܀iB>c8qD/9|<- > 8/!<~lѳq8jJ"e6Qw9aQjʕ׮XBq8".lc1a$Jy9(8j"m˕&3|h$Q|fVƬ(_]ҥ鯴'2±4Mcn?웖a8εnC#"2p!a !|lo!E!+>h<0p>FfGŁ=@dQbIRI"'-{R1yg Iؖcoxʁ1%P&:jVY 9 Ow2V"("gۡ* ZJAhp nP`:}L>0q邮1&"ŃHs©9Ɛljy@rW;*kV+u(pt^ 9YY]H2HĔW %ת>\P FxsBC99 pAml~m$([?'OMa1z}8?ه>[,F]#G=$G4.cycghе98U'*5=-$7J0jSB}߯ryuueo╦/Ȼ%pnWBxNơR~SV!F-84ɮ(V#k+ B{s}0!sfquɓKDD9!J9eB4v%92q?@>)\ΐVe`"u:F"ڶ=;;:;; rsss8$lJ%f3ە1R{T0Lu>8=q$i:bε V-X8s.C۶~pX/Wpؾ_|ËmBtGL $:s ۶i/7g? !B%<$$ϲМC.η+nE#ek].ACYjꀽrO/) d%[Pⳅ]{KkQ(إ)WwABOK~rP;q3* ym(#ۄmv\/Kr8ȻcDaf 9|p~~_|n>hZIn:PG=Gޚ 0p0r)y?z6ꜣNLSu9??n\J*`IضWLv/vᅲ%Rȫ6 ~ab*̜rT&UQx2;$ç}0onD 9v{lg?{/{|??WZt9DaoVˮq]d9l65mׯ#pGAn)́)PSi/`*PWn$F0فaP`n)Cx<~Sh.dlM͕R5%x5(R<ڂV+qzPI Y= ͊cqX ry8vv\.Un[.PJfaI90l}fƩ!K*\p3*oܮRgV~'bC?SbD@bTh:twJh#-'o`G27)od"Bz\\o_~V,ݸ?Ͳ__α?wϿzM9b0{O8fumuιbyq~7m$'p`דWl)7=Wsv2M) eE\SKUv.ŢK#y{nYlkJv:"gi_Vɵ(]iLўs|NN'Uۣ3בB)/pHCWr>Mq[-KP78YBUB1u:!1#:tZ,wysn߿yv^3\^o6O_EE/?n6uvvի9Z.~+N"rD!OVHnZad67,]rV`PuZ38ݧXB3^eWJ{&%qce*wXa1Nx>fPi#g&L/GEŊH%У9q*si_Jk]3l? \6)^F; {E\h\,~z*~_-?g??qe#D$GB 9JRL \ J*.t6bYZ+e^,_y'<擇ζۭl ;(1JXY-MInDOto䪌Zw~lrblLgo,KzϽfi(a6liLzjaD%5n=\D['78YS0v;t6f@l^{hlӣdZQ9Ƕh8w*˲ iR?_u]e<X4 ͸r9t^ U`3A+JZC$jǾ2+% )K Š\")$V2;;tZ sX Fk$㡈ٚ% ij']aCHvl49\8{]咃 o6bkL˃W@v'/m>$t u mq"0poT_6h4F a&-˲̸d//ɟ_^|}T[Q۫hl`t:&EnNf/~OH_'k9fy#cVik^"s?rnڹ{z2. j)AE34}AG۬xޏt VJDW\!wKXk%š|V|>,BeY.Qٶ郏nQcdGG8g<QiA2j&d,|\߽~rD0\4}=R#$F=Pv", ӎF%7OطoiL޾w>/~~(vM@S6rgMUˇ} @ƃw. ӲM|~\ݛEnͮ+0eY^&i9wlFƍ9O׊Wqr4af-"1Y$. W"CQE 譴oBx䅢-,"G q]c7F,~U>J> 7t'CءMz^F]c\u]p<[U\e_./֋ՇO/Ήj6۬֫|5 X\wMuY@Mf[e PSl4M|6چk@M{3M+h~V_/W숨V5o/!b3N'g{":FO].OРRZ S/H3J G}ˤQ6[㘏5AɚyD@@ v7@C~jhփ0ԒJ6"㲘f Y$t6աx%~ G^V%t@YMq;}:0S0"7]~Uo<=VJH;n֮| 4.Μ7&j;$bUuaħ:wX |F#N.[eY bHxh9<GsmC#39ODҋBrjJ}H mŊo)m2zMIF#J>:}c҂D_"1%\Pww`2z zۍiv xT!^6;;=yrYm Рi324͌s6sӣ"nvr4z=N?yд|x<;gEpP(@ L' 2N`TD_:JS+ڗ릈oGf7G:~%p^REx<4HD3tjj]1n;Q*%=hra8YŎώyۛen`ܹ?_j;rxaCmTO| ` y[Ťh49KJ >̱w,U͔sH09D>&]G8ИO pl(TUe3g-nW|nRyιl2+ɨ)j5`,¼w&e1jmn`:>=/s]f2 !X4qVO %q4AE_j" !!!lM@B'x[aB1X܅a4X2ՠ%$%-  ڣ"Q [Z4in篌r033#%O|$R4 1pf׵7-s0T5d]DDijwzԋ  Y<4 Pb2  P@?Y2uVF#ƱX,>' GEfC{/Njh(pd8^""ZdȂ 2d !! b#j sP vdW\׼BT'd`'R-> n\QsiTJQ "N @Sc1Hއ@Y"A_2<ه?w۷ȺQnl#:j \(;7o~ɉܗ_gO/27]nj &kf!yO,"9PcOʗT~ !Xڋ!!m,x0 :$ a@w& IDATܕւE"O!&1Fv3Fx:)27M M~\|jB^U],(dk-"0 ޔVu ؞Pg[ELY2#JZ?Hԇ7'!x &^I[fDw'DF e]T]lfNeh(uʊ X$#bz:0i%%׈/`U`AI}jwXԩQ&ybZ0ݶj+ 2zFP@ΙnlZwj`3,-{9_N$1Zw q]7?fEQpi|-Io3B-9"KZ ! X4h }"Q;Apg "&Ur HO&(PQz$Ѩ݊*hY1';8EۤBh$F_Oe\.#\&lz5 ӧeϟE+mY'Gsyy4ͧO$Jʰi|Sè;A90T]23hϣ_P$TnAa1.cڑba1ҀTЧ:E lpZv%1$%ғfdvJ5%{TcD4?r BèSPԟ6HdJ SrJHTmXn[&8k3֔t>fSvS>7LfvUecF[F=! @@=|? {-tKn{ K"'ehZUU]^^rfjv .xDrP@ jY}SI_4b?hwf yHI7 Q~*)si^SphX+*C]2x> IW 3X@DkLlOe"nϱ+(lz>.$ˊ6@!7lo<˚NEQ<,8~gO?#S"C_yM+F:T#tw)LDW$/jYOZѣ01T$\1ɔӇ?h^ ݚL>7vM͛woUBY;2"*r:c&ɗ_~9N_|&jkE ˥UzMy~^o)CE3M!)SG\"/mYXW/-#/m'BN:#,v$MuN$Işr9Bh0 tFzrA!h *'I1atiq?n^?(tGP-[ޣ|#r(Ʋ,+6θʃa?U}D1|;_"svyuw˯ &mY#q;(dbzEP!%LGR35 rѯH#{o?xhYݫwjwqrVΦzݽxv{}^Q]C/ȸ,dwU^Fׯ7oz~fi|uzzzuu3\Cycn<s  j7t!}BC$ŁW=kB#<-A4-*Q\ JRYe:$Qh3U$#bGA/[S)Bw%\.yMdK8f+JA2L*tЂZ >]46M3dADIJD=KJP.OkZo :JD/Z,&, U)XyK2ל H%‡P{eDbwѢ'EVuͽgǸ"Ec!ٓgO˼e9:::9?-b1MvjF߽bב4T1Zcb '#dJ'EEw 0DCYq=H F =GHWщ""CJ.'muzQ a%`1I_v!t}l~:U;2,8KG);`TKo7keY&[.p/VKKN4'B{~etB""X" BI}3*z$W횭I@1ٗ{ufy,RA3c*!x>f*˗/k||S4XcL;ƃƈp$QZ=R#Ed+22BiSm@o8IjMEbQe/Tx.G#~ocP "ȝ=#Ǝ B|B1a%#"Qќz,{6_)碈}è.9?Lf[9玏{9ǏoԘ<3kJ JhlEIRcc-'&S໚":+!fc>D) S~Tb'IV4JaRL}:)D`8 d-5rPvʧ+5mtv ^Y$7YUoEQf~oӧONNN-P|?C]k jp#SSQoD%vz>L&E5N=k˯ڮFc֢?z? w[?.},оYו$ejwf>xk9>v(^<1JUfhĩ.CkM%Uڮc^/7$VZ#ϵ_9h͖h_M?\D=]%̠ve=G-k>! 1hE=Mmm& .gn5zDϞ.'G'u]?UUc=tFĪ^~}GM㭵l9 e7D~?`L8T!B](je9}}f4T.T{hUЛ64S`JMw: [!/]"VCfYGٗ/#A]IJs]׬o߾S]UOOO/.....$kr b1zHFm*-HYک@xah!5 !vZh*1v``:c)K Pzs@#=u#k>!paH.D՟LO1ɒ Hm6'?pM ""܇o_Ubq?*={vqwS崜!͎}Ÿ}M3\tr<}rvӧQQFj[@@&'b #$ #9-JBB? $3s$D=@hc4^CBhH[Rū{OC) XXk>AqЧP-'.KDSQBeeҠ0`@0GP@09M=sXDطA]:ƌdP'@Ī;"!2zW oj'')bZ}v:Evrztv~2*ncкP2'( N^9P.6&P鑜ufIDDFtyDBCDDY1Oq!eOmLxceԕwAr kSp.i5ujm%}Vj5IeՅN~^c ^oR =%GDC B5@ @#6smc mk Te޿}Ξ8s}w}Ͼ'6{׷7ų}/_~'e^/~0/>+e(tƘ ư E 4!ơ ,<8c0Ek3`-chBk-5)JdqBevb%Hg^y?mа4E= šSz t}vp-%‡ -׃@ q9+PB@m|2,l|Ex"0H`pkv<,zݮ2!4e^q :4) cxEQ[9l6kwww_6Et<.±_8皦k;vTDހ6@BrFYlL 0P ` D   j[:05AKp)gsd Pd~P0dYkMKuԡ+^à.Bo߅~-}d7pH% EHW4>Bv"1MM# a@D<x"4!PD%r`Aoa~_~eY/}]Q_~rPo7ݮF4ٳ@hB9?gt`ANy HyN @m~f$ dMA][OdM' @0E^r.vg֧#IOJ !=hHusnXh$@D Ч.b)k'/m:G*<?'8o] ZVyY$scLṮPt!0h#Ph^a1.Kc8z4>|xǏWx<~g=G_lhCѾ@wDk/ |HUT(zݨ֠d!Nz\@O1#nrU`|TpD>9"ڃ@? `}WjEL8?ZKCu2thF>`i2 rPYChXyq|O >}}F>yfsw~g; c<0.dL⊜|;A(A +@(d^~Nk qjIAx>D25Ew,*bMFښ &"`7H]\D|$5o6aO4B-B #Htqty," 5|q^8::%ȵNS7Y}4ӧO' 4MM]yNm YMJN'mn P06AwQ,RAǐbS:kVm[8.Xk<=΅@yh\ }ѱ;*uybTd/J#/]}L>'J D IDAT@`8dWi/ ۳oO_şǟ{x<%?H?I](fz~?1PUY@ĖHZYcGWy: P "ҕe"+ҋT/{/H'8H RVJMx0ׇ Hh0iYgcL"xxv9vBw~' ;j:td ᦶzvxټ{oyxx旗ϟ?g@ OEDsH"<À>ZSa@)"UQq:L eN(NM+|%0˲xC44@L[8 ǵ9v_jy>N˗/_$,ϟ>}z||se2 m8/z;jXgw_d_"K^DZ#:?rW~+"؜OIsH%.)?sݸn_/HtT]yQGD<8{-)z1OW<:,ZVMfċ曫hXu}yyy_eQu,(pn[o[clQ| Zۭ8[GQZjD-Z}OM!5:6K#((BR5+T>[Hڂ=m/EU-5xjMDG7fo.x_W+-B0eyrrbnx6}u]-nC|1i"/ l,uG،PƟZ%%S6!$DF*l4yhEu/\Y$Y?H9Q!אdv]֐R=%A9[Y#>ޯhhG_YGs7t )5Y.D|lAsMDK]u߿}ݻwMe9ʲd2v;4 {;)*MH HZ_Cp[BD }_M3eaueαMP .*HHC<9v\z֯Ia:!dt]q.-,"*2bvœ5:/V?D-k9(#Sr U`"5!"Eéٜs켋h:yEUU,K_0_}շ/xOmt0NųO2܍;3ʿ$p;7rƦa_>7DjМC)tOZ;4ȟ"#}%"hxDV/#8S?e .WR)}CMH[-BEQLS AF+ j s D N%ŗ^6j !nc:c>"@ &d c"b3:T  ZӅNhz֒PDGHd^i4"-] =B~e\nk)IAbF C e$;S#%D,O@H-K){p~%R|{EKiwƘl6Mno}^deܠ==;٬˳ӗ/_~W/jvuwf~8ZF[">-VUbRh"Kc_kpѻRS#L[Q6bTXSP6W~5@_dzC~Jߊy8B8 ɩ6N&;ςJ5pc"8=G}^3d2?&z͛jF9o yw;XG" \a< oV ]57)^wy,e_+I n$ƃzu9V/ʊR @ Sqm5Vɶ"wwtk7񚵸1f(FoP@D,ʁ7/gӣ4SYӇ__uC3,iZCM @US3WDcYNuDUnR10j $ :$dq`_TZA̡4Ӹa -yaW*Oi|eCP~ BgBB> :c7w>šGMb#ǠBOYեShԏ!N9  ^d v|2zX bw6hZy蜻޳"75wt1|ǒ>i_k@_ ]pAF<`|ĈgR˗P˚GS?H)iJơ%GjHa}C>W޾}{}}=Ϗt:]ﶼ1 ~vK3(h({w%j_.^S#%0J\S5;0O#wαD=,CNh>dZ4F#i6s}Ǒ|b?p>'~j{Zm@{CM ry=ۇz1l6 yݭ?,UݷcΖ@d9ꂆ BLadVDq LD8b}2UMliCLJ*?ETAY= ҭ~Ih 2N-[9(t0.9 @0^y@8bvieYp1{YG0DR"L7lulsqqz6xhBFԡReWfᥳi@71i z""T7zSd OH"j1)GS:>.;YXlҚq]y$KwDRmXVĠ-wz6 w"mY+ v* r|6`( p _7k`Є&x+5 ݐ <( B+*#"!@gfX4YYfիOO瓻hLHͮns |q|zѦYVX۽yz :r#_hꌾIA\ׂX`E؀C s֡m@TZg><˻L֢aQriqQBQϟOBzmE7WplTy*6Wo>MΟO?4f g5 Bg  1p5Oע!Bхnhl"$*fxmgBf,!1_6lQ.LW1^~q76t;6QtGDcO.g !`0dsW 'DpƝP.cx7.FSwթ3HeծnUUf7|suuuEQ~n:?~Un\^\ry@&H/ZXGݤ`%H9{K#VTaC_="` >Fn: 5_D+PF &6iJ`݈[HN"y,E0w/_)Ƥ?xB&kƾp=E*`=<ܿzÇ!(*9\. }D$ $`S@`^9o}d,ȴ7 c{NȘJG>`"e LQ (x}i+TUhD|Q+r{ȷ=z=1Ո[RteЍ1ƴZOXObWl l }WYy=@+5#HxQ#g:xfUU|vw?<>ͯOOOOO <a າF$)t>% t)zQQ/!ԏHzTQ]JG("aE˂h$<HbfݝL~ +8UUu͛Y?$F= 7bˏ0$h-DO\](x9J&l\IפT:&yoRfBegn^݅.//_x0 3`ҫe1$'"6pPX݃?"0(~qEa|4jsѢ) $c]{mþ]x5] HCJ4S]Xt6HՋԵ:I7S$=$qC΍ΞB(t:=>>/,˶uO: v<oW[z'rC*Y zArI_ԯʟѦ;▴Ѫ#E*oZҁrhFC(fNaHa,=D-I H̥xyCU_fшd%WH҈ktia"4و!"ZYy^?{޿}{vvք@ޣ1?ƾE('FN7]}נ1]mM?WH0;U>C?ej2E drxm|R5;:C\:(0(#t B<)54qlJLC7*/JY{`~/bTM=зq}S'n5MMLXFtj P&4S@|T3B*A<5vQ6yЗSL<3 &4.R@_Pj$rTIkF:(2d+4!ܥ~Hκe=OQ\?F(&+箣h4 &T1 !!;r,=zx j߲w['slo$̍dL> ) yD+zznѤ<RЬRF12qiE{ȄFP͟aҖSk$/"k/,X_*XDSP݋\L߷ۭsn2@LJfSF TvuȾho IDATZfYAjRfͲ嶹 t&UlrtӍh{E%Jҩ3)E<)r"ALA|9oK V4Wۨ DxՏ[>R iާ~Dkl[DzB1PY6]YexK////R#v6z68ݳH],ё`;޿?O_}ۿկ~\.UuٜN'Ӏ& 0PˮH71IGpeYXְ}j#=#"w= <2K݀hxV8 W:>z^bРzm$oBR[b8]6Rn3a$Ik:7| U}||]u9ZZR5U37@QC.%`OtԪg'KRZŵswZa_?X1%FrxSJ!_Eۥ  /;TVx{FY{nMv|ZY@ԍ_n-܀^g^/>p1|:,~x_}k {~v\3p>H6י2(^;y$U唩I`ӭ  d ?G~NymZxǞ ';A rQ&Vg5KN셧0i$V!/EOo,WRXjU-TL}oo}n/|h| |&-z3f9YE5Q FnNq5poHX p3qxhs`8j3+س]K~W``?2\F5T6'\:|,,LЅV Q1ؕ8pCr~)g~dzWxQC߾}\.o7!$pV,md;H8tz}fiR-RQG ,D.P}3ubu:|92NՒSȑJD籗F>tgV|J̩I.v&D( PbY]$|iu| N#!ʡkjx`,=~8Z(̤ '”sdgYfw(fqTvHo []9ml9؅3;.Nm*b3o{ .˰Ʀ4%M{jV3s1balimc^́Vj|~\aPbٱ^?}wOJ>IY8jκ)5|+yZ^ ™.0a֟ưᅣv |>:Zr \8.jBAó D4x3g5KnO8_Rw&a9瓙3QN-^>5<=Tb:S Qnԃ¹ lHr]`drRNL,dTHYHY0ՄEJb&s^u2!xC7 Ya"xo,mӤۮ!&z-p l_Nls?x"%V l@DTH\fn&c(\jS\$pfQϟ?}x|7|Zb;GPwXUIqaҹ `2MZ7H;4FOYl!M4]f4<7 A;n6ˏ7I_+jOj0|NuIN))9{H;V%d= R('s7JyCc"*\POR( QN< 2˔TKP=\.7?̐)ޏK- w*eK $or1} (uT-w1L Tz`U.E6cgVk~$BdJ KK-ˡ݊Sa8aw:~v͛7lWPR"'+Ϫ¬PDəy lRSP%BJ C핟~ ap"}QUTT5%$Vʢ¬LLd?YUb;@AW~A."O&"p^جu'"+j/ _;$~ux=r(o>cL7D֐_ -[ˤ+"v^La2j!`"`/4nz?_˧R勵 7}A3} :'?bPP?8 j(骺ZoGntS I%CL"f?q8~Iϋ8je5`/:?Q}D_x u j͹qe_ݮ7e=sKk+2'<@_(3$p$fϽe4~E9GPt W ;(/@. *P <'G0P*BץƉK}za8`BĢpAi8R{ DaM|vMeʣw> 95#$6/LE>???<<<==NfZUq}-T=+I(-#_uLx/ 2$DV0;<,!JKPjL9Dᒏb:S)\%M OTTf.<w˿RJno49JRm"LۓhDtY >QqvD)8 %1dʢ⣲<칵(N8'f!$h˨9~*)LS_[t<Suu\/pF`Ϫ*~ [R q~*d#us7Mr߃s뫙wv{Y_I)_ 3k^[ &z]8 >yP~$%\.EA.t@G,!gQՇXדP=$Ʊ:I$5_l 蕝CtzDy Хȇw?~_|y{{7>I 5/֔)8&4ś$e:RR>ͺKcBUbUP?Hb,şV9jzd/{cuHhzMmOH܎wPYS>iVODi,9,Ґ *paVBML L#קp)IGvX)AQ "Y,6[l Y425fAy\EYESLi7&!RQVϚ.ڧ(Z/EU$JBBIELS!pOphֿLs_fuD`YC5Ξ (upVSGˆT "?faSj)ў7X޵&S;. &0TLevߔozzizϱ#n'Pk8ppIlv73exJWrH9,F 'DD̾+HDl7S:c03fl*FWlyxRQR)6'I$/D]X(p*X0($ ƒ 3؃̒xe㇇;bZccaynp9tzkl%bfl6 $/Hx>5h&zʦf.e,5K`9 .]V"rsss<߾}{~^^khTCV Z OQ҇8D}SSV(Pïm1. i=ƽ1/n0v^[AcfR>M(g\06l(wSCݼRS)t"|b%7-FH_{VP[ pF3O*^=NOA/#}/ +tr > >θִ!U-laF<&0c9Nj*[͔OjeͽfSP\T>Ǽ쫯L[AYfo\DZ'O/ rl%먃RˇުKz ؜-;}X0 /^oxrM`*9@HdvNbmm B] l OkPY8skg-KrCg&I@[mMDшO> mzf)3 ?Xsٹ\ߕ6珞S}%,3(w?{ 5}4' <2+ԭzTDSUigzjdR^>~̔nirr7k;֫ixGfX]__5kvyq]+TMq}CcfkڱE6UֻpD 62 ff $\,{\:TXYCO>m6oZ8OTdϨABi ^B(wa^:mYΊU_t *s!VۊT֝Ux~n3K)t< uƻwJ>NUZ8n%ŊՐ9zT@-728~c0\ZaFFF^,?Uo 2lrs駟LZ9dDys+vw[-AhDf^v(p8Xk9PHSJWW7 -tw1H<1,0Iݝe5 m\SQ#{BLJZ0}=R"%f.ZUnyi"u-o6{>A>GL:zMm|Wp0zV)BI~*glkn$r[>==Bv-AD tGӥ6'a<5zaѬ7*YY\"~sa q|1_~`z߿;=CҎS-]u%HET?;{̌p/#; ?}ju{{ZO;?^]]]__ѳϟ?___[Y_ZO>y/3n{r=Y3{|tx<·݇CP{l6\9Iekh, }-Ngt#;|KkڧX@뺼JBwΨsuuǏ9/_RSB^Rw/C q $C^{X,U֨sjWr0vjãK-`r?mu^JBu١AҚ2blj̾qBjz$b :|\XFQUqHmF'SQa"Y9xPޑλQqN}]_>z3FlPSy Od i>y6|jA-XbrZEp.&nqFںAh<Nͯ[?r66ߠ/0Y~XĽ v{2H6v0sD:#9vİŋ1g?>}j?>>͸b Nq kWRpsn&]d +&@Jsyش7a 8] 8݃vBFvt\bv EF{}ƶ;QJ+L`Ű}zpPc! *m=ik|HjQx,XRk>.3ĥ/adK= R,mq^hP/ߗvM@TZv >dfSI၈^| T~~6=ND:k+~oܯx~~hݐ1n(C9J)X H[RPc隿^l:A{<wݐ-l"C:O<O` R;nͥnkwolZ^=(ʅS)*SU0Sg_NrV/gZXj*᪦ý8F3*E/|9K)x#Yu|j.z4ZrGCL &Ni.+p,P&ޕړo}13.|D]^՘XA 5``M}ڿ V Йvs#QQy/zT$Aχ2mt:m[ ŊmGjүO5-C_x;D4 ׯ{OT T0& 0 u|]j±q\ZV(uN@{xRR]۟guw߽gkv5#0nW`V2\VdnU.j=6Pscۇs~a݃_m1Z0) IDATN҅2u06״ S\SQA(~Z.PZjvm_KS] hp׭*V=YP=@   B8(h&0j"4ޒ&C>Q?Vss#QӋu7r1u}ADez@g0.BrR]p9hikG~EY[fYm׶`&K߲a( UoԪPZӷFKi\FpFP<уbp: 9ll6/^s}9o;}6c;HvrGѐ?׿u__}fqv%nb15; Nհ "E9eRգmİeY&#vV n z Ll6Rd^pn Dy9 \"s=< (s48Hw/uPPI=a=']Wz_/ C;k\:P]70n{7N38Yhr_K~?tՏdanp&w``45Փ 9m88B /OnbeD55S& .ozEXaÿݏ?XJo_"0* pˆtxT$fp >@bCd`-;z0JDP"܎c* WS~ezcC#\BYB@/a &U(;FF~ Tvnkb}Bn'^[)x5o!Eo]s Ww۸N8YO" {w c '? vAPn^ d #0B=̖wz 9uHXpDi?W "@ be% '>e +8z ۏN U|)Çf/~_Ãn6zƂ,P@Tkq rcئ_ٯH{q1(~/fA*`3<GOHQ>DFnp:M/+ٽ$|)9r.ׇa"ǭ!IBEoi;LLp*Xs*2'A^.%TA>mj㹩 |1h:? jv|0w=Wh+5INrkb"=̶?]$!U><>j[D[̩XgD|vwwwצzNBՀg2^nd{lxBܶWdj3ٻw򗿼zW՛7oJ)̤-/B.\yh @"qԲ..T&"8Á)_6V sODLsvCNle=fp"Xe ;b&Ö v: e]/oǏSJ_}8WWW ^iࢪ||{-Y[W3y0U7$@e'"R)Qn2Bs3=-YjDž7j>A+QMS+^|5mbhK) x8GR>]!*0]R+b\3H}x plL9&{XXbUylgwovNRotR,jcڝBLt (jˋrlǿOa-ǕEcc\e V֎pVp Vi9{0 2IR8js?&le:c|,\~yu@~k)#K a̵V!qsr&\3k@@VIBdl-FQf@fS^邩.C1ةFc03p|)Xر_o㵙Òvq[hs?X '!|_"`8֩8'_#Za;"r''A_;7כEa,e\VL)O&CNNug/ Nb%<^V/1ŋ~X֣DZ"ѱe0cW(aV$~JT k3>ҝj9j|_'pW۩R4,ARZ4 a3iwľIbP.߀Sf " C H^Α>Q"!%k2VæRͷZ^xa/ڕ.AJZ'.<@. Qq@.[mK8F^jɞw"n-or8j"0GO옖c.*v0ӳ4 *;~z݀7ߘʮ;V ֠NFX J1Rc|_i!1ST(y}_@\v 5{ў9 :"K☫YD/^1'5"ˉVlDVS(p;K)W 8fԸ0S|J5҆Y4TK hܹaԺRU^a}3;9ۙ&%[Ĺk83&?@*JxH]~ւĀpg|D 4 @F v#l} 5һ'%GX!N=CZvcJi=0h] `d 4¢,(L^ %4a8F]sPo^9Y xv/ܮ J 3<^7@E]a.p\[)Dr}S:xXw\:3H>~HDs^V?~wvꫯppuOU%YSBPH4_s PP0(  ,W.&> 0S.EH< w3dDn傂\KRTkea`Q"/Qq@8:``b d?3qzۭ!(J~nU yVma9>oLٷZP qN $sԅWp O]и GE|h%z!cO`J=aJ,,TJRXxXnv^8\W-)M[lBAEYJ|$s~O?ݻW^}7"r86MM^wu?F\? xk`idI$Q}BuU]H <2]e&RQ:܅EX+)%fZ[%R}VL̚TG&"$t 1 zTPj3돠m=bFa|E;v9*= V +s1 <7hf, ? @dRB;H'va@Q9 ~G ( . #Dkcv܁TUDWwxLK]l,x.,2,-G+,Bv?n6q\kL[Z)`ayC$8Z|!#鋦q:fyFޞh8f:Ww2 z}Fo6b1%P] T9L3"kAQ-:mgS<;׆咾#$LkO`g/;b>Vf#ږKcp DRǦy8erĢb ` (ݩ$O{AK` =hKb 'u{DMy،rlt7?}c\DJYltM~CGrԟUURY]٧/p0D"\="in㻴;}ľ;"H-X!' 6Ns:u͌\u'T@Bk5ኸ ]\bnUWFبQ9j{0b90IT~_.}4w[0 W޻Яw4 5ls pX-KL3CnY(صY2ai03M7;JDJʪLbIHDjJ _AV;41?c܊MV Eg˘Yj`21sf߁_ß ,K&2/ CRf*$ITO㨥/l7Ny4ir |u͘WJ=cσ-/B :(Y7—_Շ@!>uC+bGWOM ۟] punq~ɀhzq6?+ sv,0 Mv{}}lD;DiG8DDZ+DψHloC*z'ۤlqYo߾C)͛7_9JfNt!UUCiaNGcɱĖ|U','g fMZHX=hr[L23)jafK8j\YBT  k.JA Z8%eQYXjXcZ "j 0P"< b%KRVTJf"" E> xQlElKBDsڳ׶ z׌'Vo;㟥ɿ`¸$X븲C /4&%x+5ϵ9RU0 =Z8s80#}N%LvӅN:|'ѽ)sd_\qS1rywww{{+"x$J5Ł"K^}aH}Yndӛ͛/^xy:.dϢ^zvOmyTXSu*W <.59A5OB͠f96@ED4 NN.13gw7#_.MxIAǂRM?7j$@A/ؔzVY D`SVsRsQЊ|YH/~^Uzw4" CK?0 |\j\b>Ħ}I@GHK֢3 "DU=-҂|Rny:N˗o޼T>WFv\kؒ%UDq<:%Tg0vqrӟ7o޼|Fٱa0hq1A=B".A 6{' ` ċ9||E{'sm1N)):[1ΚO$ aߥ׉4mЦ7AS[ڛ'hv0Z sxWOD[jR t h_E7uOx"QAm(tzxQ(=ص׏gL$M/0@-0j%$4=z̼jd7yaK-nG*93U,Ňх }U"ߙ@IPjo6lLUzjP.i|9^˞眕/#j"T=ZVW;LpSU bҳz)EI\6~m8`XJ/,"Z;B> +w B NWC@ZW8RVcYg{Gf19ƀ_PA}MO=@CAJ 3 VՃÃ6M%o}>7"b\+UgYp铈\__O|YfmZ/כ6>|'[| "zaRl&v_z';NDVj29 ϸ3 vr%G^RaJ!KUPt ?!ÄN'RRRHVvRm#g?7?i_WsIxmNV}.ΠfVw :i|Kwl򸿿er =$))RB!?GU0  /lr\z\X- y@]NpKbћ-5iah˭ ET \\4?TT ly _S `A }o:^3phULE-֋j֥찃/_ݾ^7x] fG3=lry|;?C_4GUl()Kӟnoo&<˟Zs<Jp2|-w,X){JEm<RJ!].8y\g 7sF~R~xafu0m# {︼!{;!Py9Ol ^Wm]eƚY:rH"[,5; A~!T9ޱ{дZh'IïUnϹyVHF89ӄ^)Fdc{B?owW)ͣ~^ZH;7 z`<.n-XJ-\2le0Uu 3Ԍ#>nsq$Z|}s֊NX)N<>>Z ~W '_5j6N_k1=l̀"@mafbGNQxO r#3O. pAq\/ބ^\l\ףxM߶&/H0X+j`гNBcu[S=Cvo6r{*: Ǔv=w~04H\Z NHyG%5괄Wbw@/8ϒ8Td \t^F%>P0H:>z =luQ@Zl\[Kuŭ{'@jsgcA` |' CޔP`}*SAy1pC`0(2_c] |) vn0#,qk̸|WÏٴ?FL-߿O)ޮt#!&mEy Gv;o6;4 Y!6UoE~jDR>dѸ.qy>g6+Ã+|EP63!,1jZ˥evrh\<0ص<lDd<R9>j@g*G Ȱ_ UXѐ;vN ] bP8RAHD[ȡ@Ouh6 jv lŏZs/G {ʕ_nok;9zX,^~I nẹp%@1qPfw"^k| ;Q -*@Îŗ4r.4f PW֖UFsX:5=vP /]`~?#" 1SˣҵX5ŋ777Ff5fsi(DH2m=E`{FMEO?~oR|aʘHUXJV-Jf ï$P1 eHӔ6 LHtkPIVuvx<8}NJ)z].4;ڑj{pk,="Z'up5ʑv-DwF??Ôi~`-:BUZt퉩;5ώvC|J%<0%u@nx*} X 8[x5>*hwB n[1܎yi|{j_nm:gz@Qha,rh΁(+`AgtOMҞgtKEd*:$Z vuwr{Vǧ@us P6gĉEqAtJ5k"DZJoj1 rGKu$.‰Ee,9%JD:7PB^ MJEKziƹ '+rEci̍_y 얎A2e'muOjZlsK NijuՒĪ*H͏D/Aav9fSJk7a<W? >Ag_ٌm>m' A]tJW#`2^t/,z"8ͬ;ѻmoA(q?BD6rNk6Q HwRTqw!˗<7h8.\"F.4Ew@)+MUːx$]CpmV ZbA6R!3\ p8wrv[!OXPNc!RZ2e-n(J8S&BJEU.ZiZhaO!*L<0RQ4(P*$غ!+êXJ)VE)s)T-THHtLŰNI8)ahVՒRX5s6ǚ2fuMФjܖb0%'7{14DDէ/?=yo;!RfQkK".l\ 4zlɲUM͜=eLfXR7w@l;[R Hfw?ᚅ.ZjigRR22R5-np* +3]c\f6S̪ΗEEܺ,UpYaJDF46WQ5 / zĕqٽd$F1Qnў1ۑ69WSf"$}Q%56xXUu6/ Du%BD;foOUۮc?аP`+{p=Sr:h-+=sKUDyɈ$"fb*ňwӎꪝb` רkG ^;?AImN-~Z`˦C:E 2?>SBa{ߜwĞ"?!6^cC&f%JB2!x%3L~?\+/=(B;Cr{{{{{{Lp~ӯɄC͋yO// 3h9t+J{{=+߉eW &g?tAHBU r ft [@r _.Ӧ'GLq<jvVXԴu8 $/Fhѧݱ_RٟKpz_]rcC xF}-Aoj͖ J$ FjE{]V$ܟAzyP" \~AhQH ,~Ł#xF%T`RDHq2 78Fn-Ǥ $##+z4v¬vctRm`6)Yމ<գOF Ɓ0m3HIi~QfW1QC75x13?Sؽ5dWoA57ls8׃oSWO14ZmKmDl|D(iRŷ$0S j,o!|8<(VnV䈄Xg [|ETHfG[I 5Ր`n:Qys5vCPm(B]{ wwwN]~\%`cHk2Xt:r:'w]-z>*|<1Q!Fa23Ҥ(]{jE޶d-s^\`Z3%4o2#7m+ǔIDAT2 `X\K[I됯,jg;~m)Q!^ vɖ< C|/ Ǽ~'}5HT$g9X|H 2‰TÖGh뾡5OZ"V1dJ~.f`Pi䄯zx0QPqInc'&L^It 7AUyϟ=*n[!#~f꼁[fCVܺ,8b1䗣uoEJ3-$qy^J)RH\/ 1ϳ7W"o->aU%ch>~DDMk^0T|?fOJUmݻTU5aQf߈"cb{,NZńd0Gh{DH0g`k>x4~ 4`>{M$ 3i?vFIG?,pPs0n$X *RAragE >Fz!q ҥ^﫦1J;.VYHm[2r{l^5DQk??}O?w8sL@f.IȖ#}D6%dA ߗf!3#ӛvwk"©j``LZ.A)YpYh>P#33$!x-DdVKAnuy~>NP@-X(EiMLR>O1Z'eY ? ұ?+lZo>yT†A Ȉ`%dAI^ڱԉ4U7f@[ - +tM522@HvZDt};777̠n~*pf9iCJ Ty_?{<c/>\fڅ)n}3iz~y#HAО9 UjBftq+b&yDkye1_Ƃՙx_ˤ0RD) #ĽݤL?jń>Q1D gܫ4M< AK[>2ы5v01CCؖAe `@O2'wt&U6{A,Is Yi~DBQ~3]IP$+ƱKO"Ƹ>~?}>=up~tQ8yz[pu|dM=3{O>}/3i*4fnLF}u^">~*dhH#i Ek42"q@ߜ<̬>bfe9 ŻnǐU뒈Řkh碌ιŐ[^2# Y|D<&"ˢ߾\JnݗhL[!,mk#apc)MD7U]SS{~;DhkT4r29*>|£EL*FWWy1^D BjF~EDԘ,zqXb~=OGދ ?1#_@c:y7x[zGɞ<ߌ(e/H,QUX[+<Ͼ~:ILZ#Up Q`Ui-\t~axL>*8-~YF]ʸJ:=)5?g4ҋ7 "!R;;~ r8Ts!oᾘ? KUuO/!-"PS:hOE~ͩ7 paҶ讍#QRQA4S7FmiPWO۸vFZ!Q۷D:>|88%0tGl{)a+,'ʪ4M?g":>gr"Ff~ɘCffW,QA!Hk|6ϠסZjq m:l o0gkMh?򟞟clm~c&3 za^?4&W6< JabgJZPB#%icⷞi _^^-s]9T&2#PR'9dӋCh$fH?&h&cFuA~%֦沟Xt ͑3hPI(X?$SZi G3YE?+73.TjW@x҇/A_|7XJ _[j<{BH/~p|OvMy>RXnnvlDP9]̊Ep/'z%''{ ov:?{LWo瘤`##)ƮL`20,D6L<:RpsOuMefHܮQL&21Va& ,f(v4u%ȉleur)[uM|]GU%Z><_*amdBDDiYILEZKaW*k4. Y੿_-ox,MjD .+fD&~(?VI>yynbE؈FtkIvi:|HMs3  ؤ/F+vg4yc″ j=UӺ///g?wÇGf^6ϦCLJEYd*EXD؈LM3]vkG\-3uPg D>iƵ8 ̴V%ySSk">Z[U1 ]S.j4 (y:Z&z9Mm{۫*E \r:"S9&E YqJtѺTS5BViJve=`f‚%&ޮ:_|Ƿ[Lan% ZL,rz3GA75buY _"y&(i/ [X.FFDʤFĤDF^q޵qו.*TAJˋEN}Nͱ* /wHD(.2Ub'4Z?BZ:uf˝?vQӠ!b)b"T0VW.8ŤE5caQqw, * vD0,:̏*\ Syg'ԮdqHO?bVPa⯲2L8pUoR.( +5^boG¦.֌,V5Y]P6kذeHB[NŶmdvUU,6_Z$g6^v~Ŏ,^g_hZea:b}Gi}xm.aQXNOEmEYg1UV4I.);F=cX{l6ۦ<\y=WuV mX4 ޶N8Gxc% V3MTWqnA#6՟jrwiENUἿ@RWŊY"UU\^NvGcƶhܲi`p|L֨x[Kg)&u0ReϊOq1p!~d)8*2dZŃۃ3d1D^oeq̛*k9gfȪY] fEǻGD'awSqہWc6f TARI)'/ROl[<#Yǭ NqUTm*<1+T1o%Tq2o=̛y>U=yW{w{GgQ0|v˾( k4f*Vix6UjiUL26 ?(FΊ憡u6ߩAn7U KU\tg޻nF}TAͦ*XzDfso:(O{dYEŪtKәU\X%$>̬ RsޅHK^:Rf7bx&^L4F^mTO59K#]RVrJo3nxwﻟ#nLOSOzq ̊ nEj0*0+k,Qo4h&GGEQsfQV-Y+bV8˨¬x)_BTATYxS'u~d Y|WLo7_o4'wx@ȼ綠Õ)**U*QF筊v7 U *6UVWnb "U4TP*6{v4 /ww"o`PQEBBDd%DD"a%o2T ^*iUT{k؅*TQ߰P*8bD [BTA "Utm QѨhR'~w%dR-\~'15/0K?KHO#b`UVW!hW2 ɨ°SE(bN ʏLSG?bمLWO)U\\רaX̿FQE(nFWS|._Fŗ' }kx -!*x UUTE/K+H}}fͤv+(/U<#_+ZWtpoWQ]u0߁SE;/;WXA!|C,;jt "UHDSTSs۔YA&U ’jHR*fTa[kFR*TA4 d# *TA4 ۊl *TA4 ۊt *Wa׾ Q^(*t ͫ0*JB5ZW!"H***TASXm+ʘD%U4}Q|eVUTaTtw7&&GSV"U 2+W L*(S[EOf*:WaY : HDUXtT]HD R*TA *.Quq߳J* "Uw1D 7*0+TAԭ H~J٬PI ͪ+,W{IENDB`vision-0.19.1/gallery/assets/astronaut.jpg000066400000000000000000001166301466211133600206060ustar00rootroot00000000000000JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?)57q^SMCVxC})52J3_vHO]S\Q5>0E&%âBv+xPki_S֫BKY%I5R6[Ei&Vר9L`zW(՘h{W4c7 G:.rEcMsg."y[C,Zw @S~.Dq}Ͻs;m>zR~<2V_jϚhxFAIw6#" ӱF),@ #m^ٚxc#Ny*$xRmjE4/%;"QiBG5)m' 'I!\egd̆@(>#X񼷓lfh`oXk^2Id V2Vk*3<׷48Qm='d-K2l{5zU7lyaV.jxF+DrN$iC3.;HիKiEengSVʉ%f6fMcǁQe356O1?-ꛝx$9s܇lcW[18zMc|?ѧY8#I# Zt-dY!vF'8K|+td8v;bsқU,+;Dê*؆3)zRpқOE!cOsRR,cp 0,iIH;0JSP@ +y+2}LW@Hq;٧Tԗ,ug2;95^Q^ݞ2IKi]jQMxJomˤr硬[VM20)seg=wz, ]OlOZTr=SSvJhD@=Z Tbu̴p}ir>B: .G5\[T֚E;9t{W K:8%>SW|O_ uj[1l0fʱE!B80bilR3S7S?u8TYaL=*2NfKWSL0ÎLuI$ W3x1{$+Ymp~4D˦O 0\OҴn۹W7DM<[v0+)N褏5ӵCovHĉ>}y#$?Hך#VhȑTwHvg[9eP{Q­Ʊ4t>4L3ۊq4o 'O°$N)pʹ"mE12F]g hݦےOFeQ!Q/m2$}>@Ik2ݯd'<~tMuBmq3ꤪm@8>Mfn7z[ ,kfAKjp Pw>{e IwtWb<&Qb?Z\Iܬ »yMHD$&i7[NyLc޻'ĖzܸY\o5ݧllT$_?ʌ#}ZuY.7=ijuX&;jrwă2i@QҝR 搵+P2HsSڪ8ڕ\V<*=H^^r#\Ae ךxO0F'Jlt໑|n[F8ZuuTc8ϥyյ˥ '>es&X_;Qǚ딸OHfY[;5βn7grf1xf_^㏓88X#pAUŰH6z3>ԛ$M5l29W ̢X8 ,h9ǧzAÞ4>iI>dy#zeW#o<~cYVeq=ԴtۦS-뫈̉Ŋ Zk$ P {Zh:g٭C%KR-Bq5E{HWl$YGw^IoHXS:SQ?uF¹FB74ZnRNi(+Tx[R CRI0؀$)+N,#}n?( \Y 1a7cT"MOv'V<᫒sw5H߱"dwwO ]z#8`Vz[1=TW%gD@$(==x]v7ڴτCjR{ӵi1mwv5쇥|iuug{,з=_IG9̐F",e%ԝխa$N*E4jnRĘ tx㌊sHn5 @82u&,{px Me `=+T\t y'c&}Mg_cݼ2n̈(Ҡ$e}p+gH줋jqY60F+Q9ۆū)Y(l]H evI[%׌`H-_B`ؔym@%^&[+עv:8G"i"=[)Y' 櫸Ya4XE9j]hJ`V^}AqT$= {5 `R+ѧB42ޭ iބTsYD=ϥtĒH_V3ȃ*Esw^!h<)& <;oV6̉5rR;E3"h)) =TWMw;J{ ދOl~YuW3W9JFuW2DMI!OJȣu?S1HbgiE'*8Wә|K~pnyPפv~'WIgh ˈPF16A'LHF3u٣~*x䙾` k;=гr9>f4'23~3I{)؅pc? Y}LYWkb,m8'آHu-kiLylOި[,*H =)_/j69i>, ʖʟ5X]+.=zVkvc,>a=}GAXR̶؁<]TJxjnְdyW05Fk}!B:,VU{gnQ1 W65'bXcu\-3pBhOoc@]#ڸuvd @Z Ӡ|0c;YFg9%_<26-t @kDmXG<ң/>cv U7< ɭB%Ҧ>b[PC,φPtҽz^xV-ێ"__[zvxlz"1i1]l̓xi`4JaQ1HS)isLiy =G&+CL?5QܗvsWyϽzn}q)UIGR8zD;J׀f3nQSY:T)~@8-&v\lǽQ \EkwS6m#55%Nov: t>f+&jfyX; U'5VuQi8< ^V Nٶ$sP&l6N)m]h6Ŧ4iw$a"RsҖV"TV֯!vҶ!ASJ-lHUpOzԼ V gݥWb]ޓF<K}|1YH2ryo}Dv*RYz> sLr%ϞwMgsSON3n|LIfdl<[år^$dP`U3jט $YVI(ZN~{HXdSCucBC7ރUv֗+BŅI`{zZksdN:31JD o @םnNʽr }욾Nڃ[J 83kRU HDprONW>%t.9SvUmш:/4Dٱ6'OC]f&TnysG'W:1ORõ[38oc_}t> /$m~Z4jܰaMIR9G}kUNRGҐeyNBz/SU\ն# S/=*mV2Tv=+¥%*G ]q.m&gB0Cs\O$ץ rH<5qօHgdQN%Щ|Wx 9i,|8>ƼzmS]mS/ݪu\۫g"N9$E(9C8%h -! R`(hp(HhsL oz oNx%iz+ɯ|#="|cq>ҽ.8V15Ȝ,F 5h]\Ҝp`0C צZB t)4e$@Z[v35}վxEQQZ2ڴ^Ů.Wxj͎&}MӤ j}hZm&=[ᬞ]6{ר>L稯'x/Z%`~K9'ɃZ!kWҸxm16jRa`Bjv/ɦj wEeKe\޽츫Np20C7Zub1.~v=.GޞA"Zdsu4N-&oI+H 7Y cv;?ۉמ`jBaQM֭-iv B(PhSڜ=PӂТ0*h׊5nfBlLPRdX ASQ;6f3THJW~q\F,јpkRzԫ} m$*I42]w`c$){9ynmf [q2z~+ Dk\A++yNF8*]F=\-?]_^FM0>crǃMZqڦ}xEL,lq1]c BmK]2F9Ri JȄJ;Z[ 1 _O"eɁ;Rϧa3X`$)q3 bnfrNH5x;KHymbTȁ\+jsmF^iKJB@ `Vv 1PEhs\̋RV}iqAYE9E8.h_.N H ]!QVTL)Ew_jӗ>aHGu."j_KK}+FII5^2l^h^7`jϨ2 )r5c=k;L}hgrTV:Ӿ5a^g5豸00 0'G]?(W"ۅGҁȩHLjUS ;TTn0<*}Fm\~j˦y&lfχ4l>vҺN5zW^*67 &dF20)5A6W?{ι$3^[X5E̊MĴpŸ(ĀL82krxTV>x;s ̀-KW6IJ6gi:w*$vs>>`B~Zn*r_Ct_bbmESW{Vma˚iÓN)PjURiUES5HlI\ErxE.eh?{ps\>I[%k5?q3-{3Ud w=oi*P?gOg)_?\T,E큓l"ե$`*Z[C7 t85ֵ,Uc>G.J\k5J#՟PfEZV,G kBُ5eͩ=MzsfGBWm:|ku-NbҸ;nuy]EP"aȦ5Uw;gjwTmVpE@)ނ-X*Օ ~%H+Txs^C鯦]La9S^pps~&Q,2i:V{3e04 TR=I-=V5fU?PH 9C uyꌃVtǰYfݝňBǹipWvnr苺>vqA(SWc;ҤTTqҚ=L>SQ/O q z=k|Mh̗gˌXA[73v%GPtxMH4oV+d._kSn%sƼ*f҅$gih`5 !P^WVmfR5kv`#r]Ҳ~Tap;OҾh E |. :_@/}9,?S\۲6eӧɏ?$_zܳ$G }ݒP\mb3[V֌3~ zm+5J_2) z~1lίKUj܋ AV(a0w[Z#7}y5$>'v8^AlcV]@ʷl? [d)Q$ sQ5t]7 f~F~ޯ@vE-V:?S^ȿJF'z"ݯ҆c[S9WnGz T&B /@ %U~jj&U1b?~ѷ)}G[ W-&:!lȴyt# ſ*k[Uhgp ִ/&)Mg=\-nx̸>*ЪlSge-"5DpԳ f:-o6[l(P}ܛ]fQ-n;ޗTxrqxE1HHsc>ǝoc?GPOkZ^Mum6gJQ0\? ]udwv2rNɗ6hRWIߍ/Óm#>a$!As{YYܡc0A?s0h:Uޟit7}QQكFN^m ;IE蚅 +ԫ6o8G!3ʻx_D[xō5iYA2Okk] 3%I9ȌȡGҖ)v}D⤬ˋ>Dz^9Xe]NA( uSMnmrr] k4McVHwI5 <! ]s|`d ?PHh&Z^͇85{+4 Ccsh/odˉX>?1/Cޕbh~ ldPGa^oCMI^ݥ.ҨxAI܌9n{3~I'Ffuaƒy#ڻEI EBVVEfmסK7ozs^Nb\zR"^jDVc@njǚvTQ E$☎DekR<,8ɭ^G/'5ptSqr>p}K"fA\a[4y¿6j b2ѥ9J$ pELm-F#s:7Rni*gTvehU9~WP#!@ 5|4Wfr3kH;Hq߱%XT>C8%+hLU+nBVR-eL _~3euixNEh.J_G IokVQN6ywƓUb.-E9 wF.:3!e<{#g57Fwyw{I%a lӯJ&*H_r:uSӧz5M7UkY!*&\oc}mbO1b|SLvPO95wWn\19_j% P%8~$ϽYaI"8Tӷ{t96w:^N)i4X. A5ғҗjJyL #翥v88= M< NC@qϲ{Kкu(r7_'o mلy(QF2>tm}u.b Gf_[b RPi!1O @5b"sLFiyP@S҄Fu5,1aj"lmITHqT[VUn=(5hz]$ZMm7֡XqduzC+5 lלdl5v8xt:"dugCbkfeAi#^:JQe mJޯGSW^EK$ɜ׬>ܴC/&2:U ry2{ixئLT-&OZ ;%@X8f]Mr2_Zyyپ>́޴ͫRtfrmm~T}jdV wٸp Hc@/Ěz[0FN^|U|]e7'Xގ磃gV1T"ǯ:ѳYDsVt{BBo@mHh8I[LeIYMak&!@!H=OUCrmeE{Ҷ܏nՆ#c T<ίs{Lȭ!N~=>!܉EGAW{c]E"0|G_ΰl0[HQA+L-^eiNKȽ.v ˜n}eH8`{էk'[.FpOywxw6ǥ%a=kgk[\izAq"= p^9S+^[M5_6%\?͍w(c&y<+yIc2;ot6+oh,`E.b*zFzjMF[d ӏv?:MO;rGCU@c''犎I0SCߥ#aNǽ6LH+GjC:SxҚJbUTHwwJ:ֆt,gaï1 l.}CW4-F]>)bl:}}AXo'Id# _bMf҂(OPGcJ=L՚Wɍ>S/zW\C)5σa=Ty{^ PK/<ϟƪZZ3MhJ8aGR!4=S2|Þx&R YeS4[i@4 B ]]>LhxF!}+涺712bgwcUqrN|BUmOuYym6LH1ϟZġɴG"#c7nn~*K5Z$1d9JhilPyCq3萄qN."(*iY.gޥmV~ 8McH[}^`Ȯ>B}+ķm$2$[pѶujj̸cj~1PPsP:4j* H րUa}T#֒?KU+e[9"~[^ӳ$XQIqM/ K޵b. L* Hbp}1%֨cJKhTWDRbo\LJ|%+W5Yr-Os ]TH>" 8kҴ $[Ұ**% (}1SD@H#S+u\7l~0*9°/qֆ;)[ :J15XVB-c˓5jP˥ + G{Y@q8AX\>I:jjN_xRkF]4DK}Aӭycs5\M|4viz$+2R:T5Dne<z׳+]lϚNP6[iaDq*c+gMԒxZcOJ7YwvҮWqHz{u]QQk<G=W߷}7Z3kGEm,`fOo\]1AFQ~)+mvv$Mf-h 2к z`ӽՌ˨N.[_6Td Eb EUZr}#-֘H#Ξ hJnsMLBJv)+KOn/JBTYmQܚmF((-e:IKi$\Y9q+E˝ ƴ4;h>ۦKnwd2MAbgoG6[}Q-%bg{Mr eW{6;I%I,v9+SVU ӫR㊨E${vi sGRX"[ӵ$r;FYC)#5tkVI=h4V92FQRk >)SHƈ[B朖OTzZFC`Sg#a|9Xw}wwKKQ^U.֣r+o抭HX渿,^eÌAz=V =~K.}jXVē8+WHDDu;ΒɅ]r5(CIYI,`i]M;r?xOBn~ǿay+I,rHXb}FW۟hiTQ)ja旵7v*1*SU6bIlI8ǵ+5F[ҘDdK?/\ZZ:Okp7~5V 20Z#j#aUVr0*I[#0u?zKӵVs=k)E]RQs5O0\tɦ 0RzkʩQݞ*Jm6\)u&&q,gG^ù 0@jM$L\rrzfj哶-m kKSvs v(F|K ącTƠJ}Ƨ\0lTpx>e#swVPz\g;=T7?n .vM(pOzտܺj0Y%VW;xZ^Y=p"2}Tt쥳8olGE,p麴ΟsJ< psv+Q+ +?(b?/ΰͤO t#}+^uHxOoOOJ}ދmB9l| +@^Hnm3WO4՘j˅*LͮAKY&{)\W 4.em(.t75=ȭ#Śuͺ*7 _U?Jmjfm<].9եi$kZ@O}wO];EZދPqdmu5 i_t7q.HcA׭ۺ+S0jEG nHҎV4VL~At1Ú᾽*,uZU+sͳ/PF 1gyOvsa84a$F+w+&F;Ww5ij%>2}%ܛX *u3sux~XW XW`A%CNjv<UQEqkH2@sk'R;ĉiґv)&BR,9?S7¢ƍ? . n8di>` Lzq[ZՉ- .~r]073}׵xrۉtJ*zzǨv:鞇*DXwuoFܽ6Wĩ-#7 WjBAͱsP59"r;Բ -=?3p+/~n-]s}|.mBƼcfƍw >1+VҦuS'xf((W+yVV cڮ"Nž"Ėsxr1 Mzݮs 47C-ov~g# G{WφZRM¹y=+o_GAk&āR6g3VX^t$Wwar١F.DϞM8(l e]l@㰠#"٨sSļfϬf4+DZ# \h@ K[A)!ZjʚmiiUMu_0-"*kab*ZK)GOw6z+đ (ۘpq^DHĤnޒr?1c7,6WF? F>*2)E٣[mF `^뗋i/If_v! 7~v/ٿ2̧ ?]ٟ)Sx[ÍKX~# Ib}U[~V.ubgP5kؚoݽ vԞ*jVW~cͷ*+2Yqjڮ" 5 ժZyFt~c`p8טxo\|sײ=QED9 o?:\ wzb??:)aQda/ΘfCC,nZkn4/)B[8Z 0uvSMI>G^rۜzV\CUaohյ.$"KV }j8Hˎ+YW jƻlD`c=*q ˕GۚENvmĨ}s45F Kco@*p6ѷ܃dW,Qp7Qi\'+I%՛h*ռz…bN?JP1J5##~q`D|w$cƣ{=>y'][_npgʷָۭ2{w)#ʽ*XxSϸ.^"W}jfNZVW6Nu +PP{tq8XKٔ?Z.(ulVME7隂o jr-˨2t4'k6k̪ y8tp{V{"? ~Uȍ:3 >iuslLiufZeI+ .d?\+EXSJ{b\OL[UpgO“ֆ).cb[:HyIATաQ՘+YNa¡!շ&Υ#sj]!r+&k0I>:Tb4Sm?F1$vtMg'jX*輈,9Xu:Ь@)?v: t5m$Lvq;V ${U s '> mMzW;QkmWr/X[GOʱ/% џ$SZ؟Hf"W AZ=bM6LM}5ilk+ЧqO ۲E{xP>5'nDޕNckiOEMPAdsT5Tk'Xb zGϤp3[y^~џƸo麅p!<05W.vd}SR6m5⛄lj/S Ce.6}qZ\M3-upkkWiLsy<BEQ5s˹ ,qHV0/ٮN`3)=kV5mh&IıGrzs0@_c:oVjMhׯbHEnV nkŚP>N]sQ\Etzn[G t)p;S?S{V5Y %:*ԿbQEv&IcSLqMsGH(gIjE^#Rն- $zFӴm@|y5qWI΍q+-Ikv+HYz殮JLR&̀W Οi:gV#b9{Evb8sM3#!n 2j贗 n˷$ qxlӓVeE9)Y_r+A?uZ9Vԭg&D4fmjPOҬDAd`EW3"ỏOLO̧׵#qrg5KR\N YȆ}(ODg\H0d&2-]sRσKH V+4gaKbsE}iXR>ͧ{&Y21`oyH+{mۢ ۚ!Y)gFV8cT7V.O|u?\闱F\xn}?ӔHݴUkHgauk }nM,S⭃4te4-)ڀV+⎠U0OƴV,ئ(JwvDRCo~vJ9ЂCgajm{Wdp ?.N)dleNirq2!i- !Qx#[A*T#lh] VFr1ѳP-H> Z݁895eF# і'W@/±0WݜAR3EaE(5{pVb] i.h<7mҒR HКm9s=i+<((((((((D^n?&">C\F4lu#ORWŴl5;8t۱j"/-2(cY{yrs]"OiumW\gҞjd¥pT=r`i㌲3l:qUSMR-<3'ϜJҟA ~[Ux` ⓻:C8#=M=)7HIl}*-*fpEVltCŻiU8*@>Zvdh nGl(a?P?·/7e=XVZh+zM]?_ktv㪊ẠjZmJҠ{Qީ_n"!)E\w4O_zo8zOZ 8iX2 a/Z˱-_֦2{S8xcC=58ž&Cauգ_OTkY2wWp[#-ž$;݀ 2"4^"1DTgrMo².mczιf$"^_=Ɋe'8=ũMhMr+oXon0 1lwL83^c66\++x~KhQ$I,Xg׶kYN*eAdUGVO~'/"t Ø8(spj_B,gr_:Od#x毬WN?#Gćm0ij\hR̼N us89NaQ]k®vM1yF=k|׆|ýfӹܥyzQSSj ̨=mkRq¾N>;wR6bcqy9sO1t{g{@Un ^|FWIl?C.WKs% EK;_Q? v H-JTD@:0(Z>~B*6e8# ( 5N_- KQ|0E3&&]) z[-N+ZMWDWk}/Qv+Et".u=2TtOƹ1UqXJ( ( ( (>З5jT?t3dfߜUxџOޤoӬ+g*!k ߛC>+yA7E{0h#i7<Yn\5GIrn)1>қ`8hYSՙ$e EzA$Sc=Ep3ЋOFY9AVT\ .mϭ Pa:1QѪ ;^W'8XX2ED$CMY6VD <*Z->aPWRպuu7*ֹۀ# TtLݚgh2GG%*s+#Wqyk2qtapTPIrȚQt-^U֯#kTF;A⾮*8u/F2UekQ$lZwU10@|X^<ZPK8HvT }s9{-i#TĪc<9RH$wYrJ8nX-$2=Ř%[VYd&za%wVoYN=>pR0sՐS:}֊r;kĬnu=.϶,Xc?Q=7zvs,p^ ,Nv+U=Z'Z55 %haB"b /Fك{q=륛Usq~ܡ`j٫Y;@!6\Б_X;;ږ2J*t{{cG~ 6pU@s9[98Z׼O&w5m9$gNN+14m竗TjRy aɫv5-X{ ԝ0=%a]nV>ZBMnǥŹ5s!UVlL,㞭y`sVtKQLJUG5J'y3m5YQl!c^]Y!ӮiB uVѼ(l4a]` *;=:ӴOOdۿ O]VFZJܵi2VޠҺk;MB5S7 +]W_1yrer)z֟8Hd6")n!dYt8Qu;[Qν8eI=5sF认`Wঁr 2Wl}+)i :߄nZw o=UҬKImom $\_7|JGq&Ϧu.0h(((.[ QI1HdS)lbj$*5kn܀3ZToݰx1;cRpש3Sms"夡hIUM)QsPA:;aXޥlavƹe+Qs()13}?<c2G"9 UfYTػ8Cj|Xܡ*8?s!SM%-)=թ"I7m qwt$PE;zF|7(j,&nYyDO is\,-dnI?^}|X&bYkHJ̉0n*}*f yyMp@xDg"Vzg&ѥFWWFm5L9i:vyG B!}_YZ-J#U4o Z)kK^5`_,GЏơ5 tI'U1@G$xeEh pspz c% W:.^k]ae5ѹgj99pk_Ll5Oɡ I\LĪyscjmm/"rDgG<ԗ7w {Lyrwk)`;6{ΫĒhkF8׮ tC~\L7+ep?ߝ^]Z\º,\fs+pp=8_jwIvr#9x;%H-?cS"-n۩9U?(8'\B#-7]U,4nWfԁׯt}>S6RY\hTⰼz>R .-kU4O{,EZ3$z4mN8>WZ~kq %`8rÂzkeUL]>hص4MWWdsy[#o"yXJc/ dcg>Y:eNJDp sVMg^ic &c.?Zľ>stlǩ'k8(s#ϑ%DpQsO1MϠOWzV|NO&k(h; J'ŏnT47ާFpwThFsRՎdVRC)ڟqlw >93jr6?On^%"0y|wxoPmcM%w \CM ˎ2qӵ%SQEΟuT v,ߺ$ט'Ļ$3 q`z*iJ'~";3էsޚ^xT5vԕO@Ư^>&Wg ZQkIYAn֪(m_u 5KKkk6F,[̍=?h1яҴ<>OI |E`f d2楆sh7#7%jd=p@" w:}RV]D?%I'\Vi,nk;>У(ǜN ^፾%WUL;zg9+ЭZqVhoaյ O0VQ\T)"Tg9 yueg`tP}}JΌyv0?ZpaK=ĬZ`ܟAP^YPہ]R]t#Z66tˤیrq) fzӣEdQs+REӶx|\gӐG̠WCY5ƥjpҢĊ-Zis]Ŭi?~ JB[=U zϚQٌ,+K{1^o~~}^}؄p) ub_xzAG@g\χ_$DgJMoK'ދŊV/S翋g&"Z*Ow?chd(=k/{xGjڨZi#0$"ǩ]YL pv:Y'ee8+т*Iet`@M ( ( ( ( ( (%V! 4mk 뒩Q Lq\)ue6GUqGq^x΄8yCG|k,+5w:]WRzчJv7M#jtMsI<GSޠo F20\aAo !'P{o81cV6fmt xw5FԀ+gG]ܩ#FKNmMU6t[}>]~ߠV0ofJ|;4P5cAS&sX;f5]%)= ~m"YV5 u29 ޢhtkޥ; =Jpܒ@~{k+^W%{dc*{mxYv D2>m,꽢lOo1:evn|]|N q}x$.%Q]@e]eHPk|+/Ez*7^Nؠbamd2HꟄtVr%Qߙ^x9_QFqyi-0?i{{{~jսⅸ`Gmw/B~U>>JqKϚFt$z $wZTyV69o>+|c[]7qƢ(`yϧүjz/&XX(Br g?ؼ7M<$dX,@⢆ sTilNB# MԯR2 V}N{=NADvð c] tѭ<>4YM <3GC^%hnvo6%y%bœa܎AOa _JSkaN>j[.5kbIr?SҶ"<BXks,b0w{,+]*#SA?!yf'qp= ov!@f7QwKCֶ4CxMB%&vxNM; #㦪3;RgI3[ ߖ~yS?LWVe=#S 3kGgwI<&zLG:+zi͞yr^2sI:kL; n39ώ$pEcB<SӁ?hXTE_ pB`")v0VL⭿ Uq$thяA+]61Xzm{isp^'`Eqw/º)09+)a9a#mL q/7 LK)"K+d<)o0QK+kaeյBaThӮ'kY"<*,]X=3LȜjϟ~UiC;tX\kyi\֢$k3JsҤS&QT}z0_8L1ۓ-}1ZE]1|KwKǧJںsx*-;?uWu9QpIRjCI,W8r:59dYc-}e\٤?+ ?+YngylzIn$t?+eF y zwgU UZfu)BN?vϹ5V&9#kxKKv,ܢ$"|ɴ3Vd)ΊONi#޳y8]F }pD ,/o-{RsE~kb8ZI6D77p9zzyӧ 0YA$TUڠpd!1GҬHٸpv}jޫlTՐi{kwrI-b)jɺ jPΑ^"ίx_Y`N_My{lWsHsq)s*kXrv)Ytg] Lj9d y֝a>(5pʥu( ]r2 q\:*wk#^|5?[73\pU\mg!aF~+n 뤭^Ojsh*f043lWYH-dn?v%zZs{QAK $:_٢o=pҰD \]c9,%hU :)GCé&ȥhՈa3NI>'QֽnsW (QEOmO*I8K*Tb8kYPdǵ}VZ쮭bYθ 9f9š»Gfl&o;GxTXzGZJ~& [ocYЅ*G_pT Q@Te(-K3 ?$|Jal%zJVȝ<Უ;ZTm㯷56 sXK _NI3dq#ޚ>\օſz˂:`!-g0Lp5[]6# A r#! lqZ}8՞ öפ<.p;8r?{XBRL+|\ sZL'Z(3WC}je8?ҩ;4QEQm+q#JU9j榴>#|Hu *C/ @y횏DB?uq+ ȮU{u$ZW SLͦΘåғ<(%ԑ׬MKB vQ{p[RԜNmjDGW;[*>}?<~B|_yV0t8bť]Nt5~-c睢wٵ˦%n{ A,;Y[0\ `,Y?%F}AKٳڂ ܟJ; 5.vYʴ)F+acߞOz6\jӴJ$RboN 'j#E̖),V? y+9eq;2bN{ZF|,z-J"exrq$x:튲\rxW+V?SyJHf'S<rS`~yoO[3\gsVN`repI3 LݱSCTq-v]VQLu"@9u: tCHLW;PII_jIܡER$P2k]X@˘I?^O ?+GUc'R{Tw-9ƅ4|S[ @1\ <}Gķs\'I QLAZd%:ڷdG@iV匮xu`@20sʮpsu1W[!nzy_ScG15\&2"UO\V!# Ҁ8MA8@Hs}1Y-Ҷdp@V CcvyBcwO*H=j'O-\DNլol<$HE[9Kg5ݜĦ۽}c;y]*Sw?ʦ*lm]-ǭ&Hb*hALpUG d);Q5yسj?tȑ:c;%0?tѱZn֛;v",G5ҥ~a/ش0 ^:rJEM^Gmu;Q̃>|Wh7N&'zngokj"+׊֤!OMSZ#ѤQ.{$y#m_ǹali(; T$_29Hb4/5mHڳihX7V ثiQH1ܓSl;e(ϸPɻoBo^=b`b%H7J$ 'Җiæk2XW"!}ep%l CW+κ!q"An쵹]/TCu[MO(K.Hp?:<2E=.I2(e֫UWQ#8+9Hn"?gRU&-%{X>^DԎi\FK,OCV#,8_֬W x }{VN75IeTÞՇ-d-N6yf#1Ђ:NA/(Oϔ~ 5)w,-Gv%pZ1 @sTI#<~ vGIW'P+|`of9?sԛ+,JUl߾MӡfQqcŅ{t5|)ZxίLK&95s)grrFZᰑJ3߭}$ ewl>{}~,*Q{mRLGn~ϚX J|:Ǽm/Aȿj.#:?2.CӉ,t"8Fjd.m֒*QE __|_,=i8m i]BRb@>֮oǚE/;N߮ڨܤv0QTqzoI` ,Z2pac5;u},s* ɢ )watZV>PEs[5HQHh]-=JJd n\m_GL`h R8KSA=xC-x zOTs!Tdz}>q\ɼ5,!g;[jj U ř=b9;"6#)}zt(jp_H3-W/"DDY.cЊd(ۇZۅCPݎ U6Ԥ|Kk#TX)9cq\tֺƵ[[C#vdj΢px9S H*⹛#!7`溸p_8ɮAkdn Q"Rԧj&4<rFgrj jM&ܙ[B*+U'vwSj >_^< Hq?g\ݶWF*Gb=kH^}-4M[Gn@[q䯆MsCscSTs[f`d~3TuF>duKor&Ed;C{dvs"Nt@o; Zj,-##uR66{uI,t∕2=(\ʂc6;m X ׾tD6h/\ۧV=^_£/<3Uv* L~\v=ឤ;{UF@_t{FT ZY0 v&fčcVfaS>>#GkJO.{3I°`r+W*GV{'t.K{Iބ)9 #ȯlGNOȑPk~(i:tvk,)%fXP z1Ú^x?c?fe'sļwl;L(\#HΨh}1>%Qy& ޗ '1^B#e1!OϦxJVFB|։0W"kpwv) ÊM| pr1޼+z:h~)vI+rI-Arɨŭ{͈񷃷'ϧ/EZ[1b񏇳+'+\s^azFl=k˼a;PiaOܞkFϘer%_侔:*k6v犚ՈW^+:懡؟(wB]83նO/kZPZLݫhە&^⮅#Xkv*Kn_F:U"}rʠ^ #[hobEYy(%ac&l)eYSV# >EP <+J ䷩=QQbvgcXE8,H_rP&n"R3p`>)Ad 'T`bɔU6g8#grI8qϏmwGfyqu3Xv۰ҷw=+< *+< y `>_ֽ x/6yqvqyVo*PX뺃r95߈c[ eE$$Rr.@f,\*#֎V*Gs ke4." 9cLo_a -KeG=ՠe#2N!1׿cռfHo//w^K7;ֱV/KyarْQW_rHyÏˮ[9s>z7#84uWm¶U)ŠW;IL CRb=[#>Wjvi-$X+=u}Oqn=SLlFT㸒2?ZʯB">!ip:z|pXʥ1Ov( iOWrƠ&wVc ((((((A$ShQE ;WtV`t!3\i ?Vmy{=|7O°JJ((ͣK{?vQ|9W%'&9(uT|Xg<נOI<;fRXmcXdF czID-Όrsw׾ tk@ٯ#ޗp&"^m$~+ 2*@9#ol5!'$sۧJhgkn4f5p{0Ek^a#<緙f=$Ŵ.մt~SUVtx5d]>領`ֱұj_ӼpL[bUq. u<ҷ̩&B+^n"ѝ񨞅KȌW!koK`9UY1!9XЦ;K fo sNrZzNi}oe9 n=k^l*،U4D6ءGi <%Ʀ&*|(*R; 3Lhѻf?GD72j󻫹'yYP,rO4i4rg$5vp!ބUK6>^MnYX9A"a*1$q '#FȤk~ ZB4F;xbq+c>?u2&B~R' ɖMwi%OqsWjx w95/tam@k̼gI4v6R&89+A%ֵ7=kaQU446HW\GSܟǚ&PN9yg&ϧOQ1M760k*6yt-ȏ]ēI"ݗ Ep\?,@{ Q(ԩ2wg5w躝ҳʃr3\;v=L3[WaOY~bw  VX5UAJ)J\3(Fӹw{s,q<*cG$<ƻ_ m.yf%r}Mq:P6ռl!NrOsYSq:c~WCXeo'2qm.V$*p$3U4Y,lVCTAY߯WM?emjK՞so|83,k5腦p`^KXl hp>.Ӗ}N9rDBqhӛJPfd^@jֶՍ*)qjmYV ( ( ( ( ( (qQEQEQEQEkxoIX$d#~4ZiӝPA`9[ / nGG:]ORo*GsY ϛV5y<-f37Rk7G|HqvR½(2 ?5 ʊ+("Ӯd7|cGʩ0?vision-0.19.1/gallery/assets/basketball.mp4000066400000000000000000027417541466211133600206270ustar00rootroot00000000000000 ftypmp42mp42mp41isomavc1moovlmvhdjju0@!iodsOptrak\tkhdjj@h$edtselstmdia mdhdjju0U6hdlrvideL-SMASH Video Handlerminfvmhd$dinfdref url Jstblstsdavc1hHH AVC Coding8avcCdgd@/fSxlh,colrnclxsttsM ctts<        stss[Ysdtp(stscHstszMZ19#*?mz`s,auCfQo!%!H@d o*R{&"L'(@r)!cFp{ ;4$ 0B_Y'>\XA.&F$}`7@FAiY&,m_3 cF^K'_ /2VS Kf/BuA<r#Uw@P "^dr)4T |v9,~Dt&/d@RTwLc0XVFP$EH3*{yy1YO6gUO;$o"nK-lstco53n8G?jJSɡ1#1gn_ > /% 1 sgpdrollsbgprollM mdatEH, #x264 - core 160 r10 22fcbe1 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=11 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 stitchable=1 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=2 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=infinite keyint_min=29 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=20.0 qcomp=0.60 qpmin=5 qpmax=69 qpstep=4 vbv_maxrate=550 vbv_bufsize=600 crf_max=0.0 nal_hrd=none filler=0 ip_ratio=1.40 aq=1:1.00W(eZ2(L9a8␰jEńzȱ9ב?=׽4w23:oY>Hpc Z;'?Zp>N\ qBZ=3:4{wF?ر:цMã%NnBGuYu 2AI( v7U\R,##e.|Wo>*hvyPz&!&!jRAy jf.WLE>mBR3y>ְr'xZG|>$mIOH/kjQ_({QDt'i/QIĠZD4%@K,޽וaB>m^7Yh[k2^2a;df@of1s;'˦A r~7\6&Z"/$Jֶ#߳1#}PZUk\r'&< |4(W&8$x-8k䬹OO3,3$Zٔ'OpԐ2]IF⊨\{<9H1TnCnfq#'9l3~{ņ\uqGskKIe"|jU\{H 0*v!aP\Z}0h?ҦBls|c#n6cu`;nݷ3g2צ%zmZm^{;Cd=m:qkq7x0?L̆3|hQAy*X(N嶼i#Aϐr} ѭQ@{&S Xr][)^(P=X z-pPso1d١J@YeE9~ʕzd>#lyO!Jf4$z LY{ jO>`嗀S] gz\ZQԍ)KvْI ^&.2֕Esxߩij4N =ws{d/LW!V,&7Pk bqs _ >`}8 ?g:YޕllWmszF\ CJ6yg)%/HhTzqY@FԔVbw[%˶%5BEIxģm3-~H6C-IOlX,tB%H:(rIrY6} C@$BŒY?W=WvViTm Jgk$ /VPs3kZiXnOH~BtNvaT[O^3LM3*j tc0d|G"0T<;)YNaJ&i`J4ÀYtr0ΑU$KMG /}n#cΚs ƒ tpP E_j8RvX}]SCZ6Kpx8$zj/ bUgeT<ᲈ"W@.Azi\{Ȏf)hogB) ǹ81-aZPX Q~:@=&h3Vt̎-7nw!@@clC9`HPv8)Qd\$y~9MD҇RޑX|:G;is+[NU#*zt8Ǎw'<<lCn"!\*'`4r Ba1ֆz(]Ru&LoD rJ3C'ڸ$'CRK Xd.|݀O~ݦ|bO \i5z*m2(SfW;)Jg]9e ,FI hcUdDgЄc& @qO`Q6 iELgy҇C.mZAmz ;<G73PM^9i7$s+5"\9f0Vc96=UO71L`*+@;W-=1p0ddN(l\͝%6~]Mcl}NAl`59̮xasa ]؜S6 Zҿ> 읛 ]n _. ٚ c^T;DŽQUg¬zGe Ǯ7xBh0. 1_ȜBkni)IpY"?ԤwT*G,g睿J3|ڹn :FtT)k!k?ETtooB^>*DyPo TQGI<3NpE^=`eR~)Ər/K=:3U5ֲ~Jg]9 JQ%9{OkdTƃahaJ7G_q狽I=(o"RWBj#C!(!IZ'#nsiFC=Zӭ;&~›+gOdi6up7ə;1+o;!0T A %6;sVA ~t_# foYw;4(h&s:N#x@!7Bdg1 U{#4PVV&+fȪE׊N&x:@A'FeI8H$5٠Ve Rm/:z L_|&JG.EVd8|+k?h5A *,Q[ЄeJ2'FA6^Uhx8d_I0r6X,]o>Y,^ }ɏpz|Te:9'yYǍH3\1G#!:C^dKCo=M!#A掏$+BuKZG|W U΍˘iPU$Hh(; }.?$RenF4b1p=On9ꛪA-['nd`j!>X$*&˴߬a*ܽFc >ox#ݺmta Je& cvm)p8oj/<>$V.s=N0t(r uK y-2R#TaF[0{hUb$>$[UwRXpdC8" a $J1I&tԐpMϼFᆿV+UƐUTek17 Tj+[Q/614F[>AŪ-]EʜC3yg&}FLʔ7U U߅IN'$Lb3 {5ϱ[yvvmѕ]&ߐ%[DRt?TD\sq}cT8S0gTKǦs Qt+[Sۙ|Rzt0{=Ꞟ'FdzߓxWO8`QW}jo[|;;Iԋj3A>2_-jDPww1ݧ5F~+ĻY}< WU)x1 ];;Jvjd&jP#.6ylć̜ēroWP],JY"цUpW9Nv^#>{Q}1`gDRԊ(:rB.Z.\7/Tm(ZO+1+tK21^TMFnwg[b-ki0%7u?>5.lKq]ԟp[SlsKKz{ظuk1LwD$*cKԩ<@w [x K_PVxp:H PMUނV3i*DylSNY1A~"++ӹ;pw~Kw]^B']VDNή>i}Ŝ.}'#hl#*2bi\8VG-T/5Yynn_clRT<}ԱZ)xW11j"--LL{8@+>4@/o=Dۍvb;>a!R'i#ʣ;t_z+>z[_h2$F:Qt#xu1E3_\ 6anUs0O+H.S(2-y)b12Ro#1OY7U1 "vhg4n[[;G4 La~dОH9a1Ykĸ(;4T2WP BϰyFay(<ȆWsSR[o?HxƄmȟ>H`!e?[¼LhNpZ)gGqd@M/*N.X*^ZK^\{#F t^W{ e%t|[4Ee`X8lN%aLȺ~ -~fFRZI͡s1EÚ[s3\=NYcD|y1LtA,$$DQY5"ԪφKtSǵkXNJmȳt#xMպcĭaB߽*F a`4SޤYZ9BbQ{d1f4m+!ٔёtA(nIkRSҧ1ҦgeY+V䒀ήUq%H^{43@OB^ĥ~~ @gn>jvƔ Z0b`SK Wtnw+2jWLaI׽z=aUX\bO1Ԁ`R ֵQeo" `ֶ21v0cS": `^9q`f/&cVn~qi zH{)@:Tl?,H)OYu+u_W ǰn4d@!ɱ*M]}+aZݮpzNH-Wפj8$UW"hsVݱd 4.ͷpO sԓg&AΡ-^ߞ*;k%"lˀ[Z5}p Eғ]:A u|d؎פ3\疗Ag$}DD(q?ph,L%,v,"]l~A-u;!wV F2z)2XMv$h9<- vleZ"ŸN$-\!% (]0/f^^5 H9 FM\5W*j Z×:Cwr|x1uZ{\~,Fө#3Ո3ܼZԇ=h'p44uTХ .P:( /ƵYъVkg M[̏@υ9bӆ_[c6"K2{xi.Su KZ KG=$G]C?`L5 (؈AZ.1"@؋co?AC5ÆY/:Sc2=2Nn bnE@|Dl:PFIR|`r:+-@:em}4 ̬zkyFt_Of=Z6dh8(z-! *Xq E;Zs6o﬜t | tEkE:ې1GHk(-UB$E[v]#3Mi~SxщWQ'}** ¬MZ䜕 9 GPG?!u~`)aLǚ]3Q98qEKlO0bW@Up,WBⲘ@JaE8ٵ:M qEJOYxGzVR샍_wr(J?P'_+A+{ݴQbJw 4 匧%Ți".d\K <;x^J:$¢A\c[Yhs>9q$*_9h"0Ѡ~[kN4 %NswZ,af(Wϊ\D G\FtFB9U˰Md ɣu&!R/)6\Е:gK4ft`-׿*#ĽT!ZWk NdǪuE ѹ5l7)U`ikzG&BճiG\26|Rє A%P4WWtWtr_.?81mJ*1ں mmXխEd~?,Z.]489 2Ź?ٛ n ѽ! LدG q7=[rj|}^FP  by,C1⫰or_/@Vfbyb ?^OH ~``2l[坛 + SŬ?̊]@O~߄`i"'{=ES8xaUI״$ (K2|6V=[tХ&+ok;ӽ./]՝VdQ6"-NE옦"!G*p#Q kKy-@]7kr0O|*_%Ґ|j 7!_aM沌?UT; HHc@rhLtH{ET/E;L:zYJ Mh{8E0'?J:`川ҞL"kx67HBVgAM"G0z{fyDtpFUxQ?kX7KPn+dzW 5pj6O(rN0:O:w 6|ůRdY*P׆}-u`;csVU5DŽqoRazo -$]F@_LMOU5?@LݯeR<O5l>8gP㤶'?r:@zJgy'J^T_vy֫aMQ#8豹H_?S|yIJ9֣KYEZ=kZ *;YkyZP$4nvI=Qz?nŻ119/>:6$e#@8-52E [(;,BYfU )5$72ؽUg'~+}354GW#HOtH4d܅#"Ҥ@+"ђӍO3+\KU '4zjysW̚JPc)ڍɡVcDay{&3/9%ܴdu v bS֦G߅ֻl'Y"\93%Bse:Oo hPvq8N+Y@F;ӗt!ѱ}Qf5AM%4Є{Bԫ1,l**k%{k KC纔rM^[M?@p:#玮1ɿw(WFiṟwKA{D.[;{PmD|m4;>Z9PNVr <쪍*]o%tOA3Yoj38[dP߰]ܾq$bavz[Kseć,4_D>Ssb"oOadнi-31qK ~gŇ'6a:@rD?)Va9̰׵"j1+ss+  + u bPvH\[JH5i}s?%jA EF!'%pu~Y  {EF%7g-+%3w[%ƒ>CFi;w|S&v.G0O: ߔ=jiƪdlef3k)lHKhRWaJꨤ֚={Wb+,R&JF^7Ǔׁ'^ܙqo9WJ H{h\R^L/ /&b~YN[iǶH ~ Z7úouH7ȟ#C[3aJD:RU.*-I@ܳ@-U~M tE r#P6sBFx)>bTak(h2}1&ϒ`ŋ|;Ix_ h%@h,ɳzF, 7]UCNe!ڞ!ww4P!GqC&yYRj|YUm2an4bbl_i2P"5 (̒Eސ :\#̒H$>\.i}6Cͨj7F^W<6"w U?~7)4:'GOf-p $\9Dpʨh D+]~Qb_prL$à(` %3Z cODh FK !g/gbcvvS1K<$lkCC#?ą*.a$z4*F4{Qg{r')~H%֦M5#!BOdt @\uV(W{چcXM@p< 4$1& Ħ\FT]:k=V}⫁#`rZÂTR숉ѼTV^6bwS6& 28yەu|;BbFr&ČfOC$2FUQQ]D="l^/# ?w7޼=js9xP3Hې#bAY/}ygK {ha'hrRIME.D6z7smHsfBy"`+f"FSq(wj{75/wJ/bsgL3+!u}iM2l wUjl^XJV33ch4H!{JYN8>!x˽KW Ymِ *-qIшa{8sc 8Ģ pJ/s}h}xoKMMHHܑ 8! Y_tNwB[5ݗ4[Ip.chX|N URfKs 2*- Zvb Y I[po) Tp DWҴ*'"̉oNp~)Y>`K!CB$-v"F2&hJu3H3mSҽNm99PI: 6O'HU. {Sy7>\nMe*f':rʩW>=` Po@0KOA8x/6 #?BfFAՅf-CH@p9L Z|lhe]wj䃫)d.5vGegH4%a]5TL&>+4 Dtޒ&s|-b w|!Zo Vno~zo>%B2iu`쾗V 1'K03{u#dhIIUQH@9 L PaBS[fGoY g'_Q(AoHYu~ sU9ݩ0i:콜HחB:b8֕|jF;vDZ׺1ʏ*Y, =G]ow FURvu!pXے"3 `7[=I:. BdadIdGR!HE;aE v@̪*V{py3K!?ffL6RT:(jaz PڅU+2jڦ\UQ;ɎcP%fɫ+T (Ne4 6$}Fmz1;3 =*gd >??qLez㜞v1 }x^^ӄUBn{O)+c?b$9M^'6amdMaf\PY-)q0NiuǸjhtUj7N1R9gנּ X?jCI)@%Uy961MJCP%C"gVvvx6Kx5 /w堜VhyE˶dRb?JjQsjc%x%hmjRÀ)^؎9dx ͟42Sv=Ja5\T^U[҄61]I+!ߝ:E]%gC~:>R!-ݺ Eb3%6_:4vXQA߀=ʆc"5ͯ{RPX`K'%b jgX "ь!)1@e܏uW!>{Fyٸ?MLw;k2;mJ2qRv"GRU }NJMvk}V[H*eFOё׋{A(4H%NBv^qHzI hnvQzyfJZ` ZUj~m^mRGmsft`w ԩ?`qJN @ǿ%';AX8ѓ>ڡ<"4Hs|Q[X6"i8Cr<?-F!i%٫*}J5lޙ)ص\@bm|!x01QBj~d5=̛Omɵs>ւOK ?AJhY_o2U ?iX KetEIAl$HFÅŚcHpk[?RrRKjVYNE>Q!3ϴآM f. ^Kʹİ;6͑ (ɤrD.a}1W+תO^;uq/8U%gڜ2X1e.ONLj T(D=2.5vEc@GsR%ucS^پT,6u3v5wi.OT!w)(gMu~o:r{ȰYi⇡E?CbBV`ʺ @g'F>0"v7 #J䍄zoݝd |BW:)ِܪ\y]zb!$Y&PuFJ\"4KaPڛa٬Nr7ce1iRl~+x ' arϾi7ʺKƆY{aPyq*cSГ)Tg> hUzbASK3Zmdq(Ɔ@ùt9/bŎgm߽ZeJyru*8 ,GG{"z^9L$¾q0#"8u,Vv/m̓G%p]<-M7ȎZ Phr찛)e$ș}fA1p\ND\fXoK5M@pj[;jh5 T99l(&ģ] f{%Ȳ㊳js6Me;~ScįNӭw( p `.g{k>j$٫w'Ą,=S `'N4FW=藲n.e*o:3Y8Q2N fo+izh#$^#",Vc&9"(@&=^VL:#йA>vLCL:={0{&P*9{?x|\!HҲ`g+ ~r48YOZ,iҰa2R2nExΕtAS@EZJ=~9+YϤ1B*~N; y"x&a|RE /K^RPP:g@~DHP1Ch ,J2@_}Њ}+>yM@ }m|<#7)HfD>I](zvcU3a k1'@2Z#Y`9aPc(&Js2YoIH^fT3btrK))hC7=(]WOkB(^lDۥ󡋥,0Mk&9dH) {|g#˪z칯HC=m{pI)ͤR 1$6KgM:(|tM^ٗpQ;c0D#_e3幐Rc>!+)mʀΆ)&CN㓡y,P@/].f [d.'*t B="u 1οw?okelB=Gi{BAJwKPÁw"# Fr#;ybj-O;μB"66)f7zMҌ-w">?+A%;߷^mPUOؚC9MSkVtn,5pb};ęIԽ~޿ۮ Ee6'%1`Kws0 f6,/RbS2h"}%6VNe"W ErApQ%%O!MdO֪17O5i&ѴRٲҲ=M% !@t"5;𗸫:oB@<0EܻvNOǘE!XtMcحxE>YʍtA09p0SESH׽u2V͝Bq)e/%]@tLLLL!i'\"\+1b0r9AVg!)֊-|F!DZJs~ILhU4avq`V;&p[-lOb1$;3?FZ2ն>ه}τ7IJEt TZΚ~W5_Hmf#58K@k~DR% =~o 3 V: }-r&$Ǖ(vgZF-d:j?A;7{\(ʥIGſ2lAs,hK~, )]_.KI܆g-F;ߢ IMAO~"#K#SHmBXRH[ѡݗY(B9@f9 Ox#"+ `:vJw'5uzeHD;¨vR,m4\a#IPH[ pLEUJTQ qJ{"saԙх.H |{ UT$Q;)۲#Ng]9abWژA9ꞯw36+!х6闱S@;cED,'KQ-A -e^qq_w¡7w;'|dqZ4N@vZS rيf]VCg/P+9z KwB8]D)Ddko7 33wt5d e0m S`XXIY4o#=i.i쐢y%jjTP#^ a"O0HP_[?[)&`8Fzz'R/U>2\XHHg1κ"~eqwgY)5ޙB/a$(xܛ,i:mЭ6j*` iT) ^ycBiYnyzZB(c _ݢ26TLG^`ێ+iqcUQ&d 7:Rʙ<׿m\_4|>CFPVHVo> ) aPkE e=4x2|(mS^^ukQ&36k^S'x z fWJ[h,(sF8dAs%Q8Y.=3ώ[C{*!<;ޥo<޴Df!K>1K׮6"%?°?ǣ32U0Kk[x~@~%%{%Yu+^{Ɩ55{>HFԣ,(o@14q Z1Jj" ͥ`A+~9Fd7ρs_gZ6c L<4UxW- o Q!Cj+##"kxPu>8RRt.wA7.-9ԕ7bQ vu)-OE.{J&0ɫ^t冫UMG0qǗH7n{Fz#Ss{~+`ڞoJHKj$oե-=w}P] ,]yPPGl0۔+ ksTYmW>EMWr{`A;|9'hs4 륾i/AʦhA`X/ SJ@*whL+aJNmжs8odFv&j .&ILno @G4Ӏ@*rj1֪Qdn(J#c<2H2>l%y{SͱpU>x!hHqGܞhCrfW[@4 ucaGޓ2=`19B}DO|f[*3 6O:.Gg?{l{maրcnK 6eY)h(ujX?ƻ~54Bdl ,UsOY*и˄97>>їxQPue %#/P]aUfi?*Um?Qd8Nӵ^zOdQ[IXQ bAi6?`<t‰Ø AثF5ߐ8Ǖ"fsi U|zn M ~Ej}2 0 Z/1j0Ono8EX5P#?_Otqf5m?S4 ' 0rFU~YF1EH_39sy  \,|b|qT1kDm@ *8 0Ґ _ ;r_[c)px:-av!5O1@~Iu1F_+ bov^ TݣO*W6JEHȐ:.2/j}YC%ЖmI}cTȄ>䕚 yf=ۤdVRy;s2#b qY&H{Sel JҍUI힔/BckZ#Dͫ'LˑN#;+>fiRf-6.=BA \Hjt*e׉IW=+cNR{6a 7kIV*GQ|䙓8Pɑҩj~A2xѶ&P呫X9!lpm_2CO#QLҵP0a%hHO֑-^Rc:%pNj} d,<`kad.?OvM?^ * I5${L, rk؀.KLg7]bT QVE i?2 ub% |*FpM AVN\8ww:g D$Wi)@7j aAM4ch]zٝt,sLSTAaDv/UqlEo|$3,|SHwug+i/5/ÍK7e7*5hz rǔ.:nIU[.K쬮~xكwK. zPH̴鴃ETR/ /Xt9ibp`36K? ܫ8C(;Sk" ~li,^~*w]VUʏN7e)v:e"> Tvi:[̅h Z礟&HpE2 W=냏Yo%q2K(Gi%N_ܓס80|!BK߾'C x*]|2CF&Jp9ٯЍPng982Om@6,V,ZZ9 #-E@xb{a-IA$:%A$LUrnj1ĈANY[^AiAF 0 B;M]~,WU_=,x x 1T-s4I |L'E#tzK$놴C=F}~_ 6 : o3|: ܢ<>sl δw/'n\ ƙȷ1M 㖊H C}xĀO.7C`'Y0.;f(`eAoҧLJ.oB&y7-'rߤ]WDP3<4 -]W/ZzZcsEdġ5A"lWq/KQ!8{F5DpFFpyu~^h8R>KQ} z% Cg#D xDkE1)me\@4A~3R&C:X8+1-= $g0܊KKzVaܒ>FAw N: 꼢?jkftH +9ia3 75 ,ə|@]+[9ϒ^ȵ19U8ƽŒA罍Q8j^)76vzZXaGFy% (d߷&ڝNe?aH^ׅĕkd)A9~"/ _Ja QvH4%\`(7Apqd&jzvRT!(B!e^nW݂T2ڋ%Dj"20v8HoƭA[藢CCzYHEDR ~)H޶ү;{ͭ* 퓉81|ߊeOQalBɟPFo|8TNጃ]g6)Ќ0XC*x/$9fFI.;e*g9,Xt{=sR*j_5PȎ_2ځ>h-SL=ƶYDbʄx1\`Mpk~Z=odfsI+;u,dnї/{)ʺ?#rPflwg*Uu}SԷJ:P#!?gU`U_IuIR|n9s^k?2fzYfE Z78pE*SYdƓ=!O1hNZ2,BG'tbs:&v\>8R@`!JXAПagݻi ` 8}K]DJ,I'^+~Ucܯ0 .} pqµEKY8[d,۞G׆.Uh# -1INbQPuN{AW.G2RTM5yFw%38*NnNGڡ.'@vnB&U6l7WkK|L9 pq,l̦ ĐNsqNG^֞ l0hFL(AꋴBb}NfZkj>CFߝ :.?R9a =hc~5GNj|/2?VNjۊSJA `4!z!rWk  ї_ grз>O䂏b;]JgsYšd? G+ܩg,]" y|B)Fe1c@Zx CT1 OT:^U@vw2&<eoڷ6 z#EYt#*j KMKO/}53FI=DO$_&q(t>i{$Uv[d 7&U"hW}M; CG0wE[gHf/X; >.4(vsw$vY[OX"hCKu6J`AhE88,y6ΝwZu`Yw`'k oս?=mC{N/Y (pB&hCYd8Me!bEx)SSnkz~Q[Jgve_Ix Vl82jzkZ@&U trXΏβya|?qB5ikt2/r}*HAI(s;M-^#Q[`u(hr$]C)\t F_Ԏ70wl ʑSt=O%ғ &f-\i5 "& GC)"Ado%K,rH&ל@)\^inFČG¯;JQUxyZֹI 3(! {c!Ay7iS4ѬUNR K>1,D^u,ybԛaBc,yQw\S8e% 5(q7! Z8pyk:dzǬ+J,4FS \>:0h4\3-1]B5yS]}Uh^X5 v:?WӢ oJ*!Y'&-TdXhcKLpdS𭸂NM>QtN/memD!E{i(A%vQ41_7t^2"Vj(UܷpÇ4./hZg TzT6|r/ ~S*SX<ˡSсWI8ZD[؇q wCj.;gRS"lVz<^mrU90%-ؤ$[a\}}7)o%v6>OfOC$8/i&EJLKĀnC%¦ oo3X9&AFfqdPAdYuoN!:]/Hh{{AI"J9"#zD\93h9QJLV[jg9$%CKQL|~JeJn~QQP9L,on4#|dӴ U|*g94闆bQ= U?ld2;R=4zLyT!% V2׺8+ceyZ%4ؚ\g  ÿ́>qU;97zsՎ1l1}Du#MÚB2ӳܴ3M#`z 9A֬T`ۯ1=\ ̦O$h}C] Zy^&>c VCߡ*/` J)GZUɒJS'13L$7 (/CJ5[P ޗQrH iPɩ4a%*7?4s*LmQ EzvH᭙6w'C)a©(Sm_G5By)\WQ=;&.%#4V,f_3imzc.ewr nuxI{Vld2`iڴטNm@m c'&0clW); , L2p%4P~Vb'^[SFM7UԚ>EċeSYw׽4.jW2l#d5?) NV0M/ ԱSS20W|: Oۏ ٟ\gzF JVM$NMm2wARˀQ?D{2qbG>,kzYt՘w\Ě%r|b2m/LEܸ=-` d/E2(|rWNR/@>KmL4A 4bRV%xbdBfVt_o] ɽgH_w.y DWKqcyԅ y2mHwuBg@ ҈m!;;X S&"^W"Zѣ %XG먷U4bRJ9dş lZ@V q' EȫS&Tڑ"B97ï_)( =`aHA+Y+zA/G҇ru D%*LaQ올JIOf̤ka`Ay0kw6fjE?N`Qe3<|_l1ЉuNEw-L5MKx3iA V []((tWPa ov>9PWr`>Qg} 7YC.} ER|yL`x|N=܁:>-&/!(y=c t`!o56α{R`ƂTWr&E?uOjg{&!;?㼆+/Z ʹ#10\ZcXRSR%<0fyϪ_M5I6sDqKw+Ĺ_Dl[1߀ Ӈ fh@QL4QsNcy޻ 51Ȥk%"hGŀuYdr\K30B2}3Ż\a)Qq'69]gWV(hy}}.Fg~+H㙢e٪άfFMF`P7jkgQ^:0QC;7,UҌ9S-İ 'j8w!^恳K}-3j'3D20" ggS}03JPg P1 X ~%>z|z~O}nc^m$x%bg ]ʇYDK~0S,j\ þ32mڛȊ_loa:0aw%wN5aZ8l±#={`f3 um]Q-KpE\ QiWBmi f#TWHu+VA [y2DHCG0>'ܦ;OpPTSǖB*bj)Y+%RˈzAl$U=79E1+xߦvϨN v`4nӛ7Ӗi>#\YLpQ.[Z=`Sv-'RkHPJTpcܛiuN|413o*2&FeBTA?Ru ewM` MD'D&Co#ec6@bRO(l;V{S$ۧ@΅˜CQM *z2J7 {_"!>VT4"J+Q#B;G A5V9uŧqԺFrzT9^eRoO!Ƚ7,<|Y9䅅)5DvUb:Đe:b  njax`gZ6SC&[IH}E|E ~5KmjT3FVƤ ;]ǣ!W &^ Gn@diHCuƩfJ䰲TrU#2$=+m<=H cyS@_r&)yoȼ&7wCPռrד|2< Fn}N=Ѫ${Y7Ra^-޵(ԋ2/ӎKz'~2A( S;BYGj9_6x7|Q&WdqwYq/uqCH. {xaR0e̵.: ؍儚˷i:bxCB%|N ZSt( (-]/i:/3;Fpɒs7:Q3/l6Oa 415$Gvt;AdjSZ^f4]ed&7˯ /r|IQJ y 4Ʃ B^͂'!j  C[)=ߵe"ȆP:iJfvv'71ce@MkMƇ51$؈/B߳ʌξ:'l;shj ߈bIqu!֬V | l8̚ )$}h4.\.xd_K]]"p& $R09/ݱ~A{yyP3릗`"O,E =^ǯv;ԉ sBCQO.~8U7*'(X\!v#4@B3Lh 0V5+eo ]N#I;fIC]v iie^mg&T[Y6>au;jkS2GZQ@!,߭¹fҟ BDYHϢh2W[Fl%UpကhvUhD;F5J\$`g1݇EӤb WIgWx5WkR/mNH@rL+VB̦yLyiOgܻ ]+{8b)u:J T[}pE4CN}î؏gQA%h@B^­%e3ܱO1T\˹9DGã:|{*z_gu}37N+IJ4H>O9n)rp(uS(57m@1pUTteƢg]ԁ}j yxSׅ됅hQ3H(H!M_S6uG,cv5inZ64. Xx/8Ԁlm{ʾ|Fڭ\FIpܺOgm`°8J|vsg[! Q&Λ/Hss5y%PZ֏ZLVxa68roOJ OQJg.X2]]pnGA<&J(Ǜ}ńj_QiSR5=i;r \NAdڻ\$m>' /}˩61w*`yBy*~dA}'ȨW6A.n-#~+-᱌'I]!eM' ]3Om%/|eI ԿdBM >";7F{.ud|s݋=NaeY'PkJ`jMdҙ9Nsi!$PhGWk=gȴz"s^: }1}wa9=*g9hZb%o4>a [tfhvTm :bԍ!(<4Q߂psRq5tYsb/nU4p)v cc [¬Sb/hy䉖6ik@za4ʦHLF~`fr Ct j_Bڮq(f+Ǘ?WuxJ̣sKZxq3݇uH8壟<g֚{VTA#+m<8,G; 'leEH+ceg(}F-ִp I5nX2G.^TO]];ݱ:OnSe >T}ϊ,yQ#Br:~[\#SS$Co1|xg ]j~^cL;'.I*}]mݳ-Dt HmPo X]#%Ǡvc=q : j󷖄E5EwP9wn{?~.="=ӟ@2LJp喀;AIAhLPP1hCn揳ЮLoT/>F?=u3=پM{ۄr5DX8S<}`FQudm#E>C̻2Nֳ(s&sG T1"GB) -!XE KTWlt-)3d:^3c3GH2r~ʱeml؇׋iJ}MWCl2XL-[hh^׉nslwCplOdMIl FP-(p EN>rIHElM)xaCfjfwSmS4`%kqJuyNuٶKT DU7- `<'8blZc# Aҹ#HmIb6{,ZƊ 3*R|5\S=w!K#Fv{ EQߑ1Ӱ"?:np8M#78D{N &z+RdhI80}Ԡ%H*e %;~ GٝzB%]63}1{gN!s/=(qRND6b _iiKfz) e|Lݎs 9Д/6Ⓜ Ѳ5! ȇsFeGl7\"%!ne0ܹE7XFSlc]܉I _H@iϓEs*'$ C_}sOIy\Tv/#S"Pi]!X!yߊev 2Z )exb :+N+,8ZC -E"9)[EDԕHzJ^MC ^ K&^SH H[c%JVf>foء7;Ͳ0'a(0i< B4ѡ⨚M3ڭ#ԯI*eQFU(|L>Mb/]B.&>}&#`c |;7OqiY+ i2!dp Eo I 3*U3E2NZ݄F*+TNE$5 %p)pL <!OLׂr:IȢ7=sZ~@*ߨ9ul^iXbJƭߋ|c߹=2C73S}[<tV,5T(+Z_cp%Tylj8K=Z~ ~g 0rvxUF']@pudf1 !<#ɓrq9O* LLcd?IǒwQ8#6>"Q4tCg8 %͠;Qt:bo+rI6Æ]@K&7Ux;#G`8-t*{hWTo(J©)X=b S \ak.ǔNAW+ӸTT [.⪵cM'|t)i; ]bD993^bXZrw-OU&@T.:YT"h?GC#D(5+iKZ@0ޗM*:SX#T{E y|D s¢98Ȭ@s+sf4{M@>FrkPj&:Y6  'r6c8KgcNw@ڮHYG KvBP`D-8fAF ?Ha퐎;RW_/ }q.ZbikNm_K4;Zc񀭧ja 0Jgn'qh*oOz}yԌ{Ȩ0zs9WzL|W\;u+<14KcshU_^ kG03 }w>mwlA*+a}%UO~Ъ4xGYhOW?]*2ʹAsg2A>< -`76^AxE?jt8}ӳ&H?zlД!L;(q.m^,➽5R2m3!`.Lڌpwžۊl-=Ԭ⣦*ҟZk[<5ZMKC,9SaYT- > l ?ivf #&C4%2w 񪥯==6>>FM!crTE7a."i$3ˏ43/D8:<(ڮˉbe$*.S"׋5LF#vz"Մxem?ZYIV?SQ@)t cnbbm9^mD7O0wy~<&KVuS Hq}#/_eH ӬGQUDQ 9!TgN(PB5ʃ )wHc;%x1޵f+Ӳĉ~WAOsFə޳<8}{ׅlՆ_]0UD[FyN]zqK_&;Aޚ\-ԗ{h1Ҁb˔B}ZF˙؈o: 6aZ0w Ga Z4>w$ɐݷ[ ;No(<`-=;E݅j zQyg@щW\=Y?r9hoɵ Ң\Nϣo++ \{f?i '[X!z7yq݈C!O5Vю%KF z(EzOj W ycGE`e%a0^R Ġ]Xʎ@#,[} 4GLν]dpg Ssnӻ)ߓBr֋u.@{H@8z-!D AV_xkl&+Q@z+5.ʯzk*AE,+oY,F.L $l'2Cs  9&!lB3;d};q]t|c\;&D TUt9;*f;̬uJlrvVǕu!ܥQ^tVD0)*w}4w'lrX(Hj.0 )|0j dPG]y0DLň)")3JQ8d7 6=+dB[;}.Gvbӽ0ҒXk%P)+r4F{9S7IbvCZAa=~c5a@12|ַ7lOmhZg4cNxPExcѴL&vYFnAQ~\T;4FfȋEUڞV)%r.R2H7\{YP;|yl0eg3i Ek KJ`[jˀ^Hx6һ"7P8胣#%[&o?dYA~d]v*i: N(R*;/Vb&L)7)@[]pfndTt2|W tZ~ Xo_$,~or !7= SV8B\ZMPB-X CGy yOdfz0Wo(pj;dB+LJRŵMNj}W$Qc;P[=%tj>Zл_m6BL fvK'Z]hꜼ1ϜP.w:M8k7oɉ4/Lj9&#"Б'gnal/6-sYogșD<1)T9gnArw:2)Wr-.6F4#)olAIVsr I'L!coO,]Sc f^۪_%`cy7J?)£"4|vDڦL]pkgV`6DwKTbem8v'uY{C\9 %xJ!YƵE;=K?.4 ǶW < \ow{Ek( EF dSS<L%)QJs[7]a}&,O30;:5N,B=5jU١GpyDn/Vj9g3P^_ #MfpaVZՄ2eQS%)U$AJ-Au3zxYH}p7EQF4:0Skˊ3KGj~1%pU?ܲ>&5t)Q/@}JHz&jo&cRO/\JȤQ՘ĻyS.OؙmȉFղ..XvJoh|Z}>D  >9]*lMدK0ijMU@ 9dMֆ/ٗYΎExΧYRxa1^Y dfە)5T~",)q xK:~_Ziݳ#OՁg ^ZN$J:b4&2iN غԡ2c-m븶*ʾ߇dmcG$gܦB{F8Kmm[ʼnEA0=@l E0μ&:^DWg cw.lO_P%ۘCj35Z^a\YV}'כ-2#0-Pl7נ"v{H"|aČc2#^VuAۄd`?ae MWAblpA[1g'[KбaHW;8ڳ5dx*B@2*HXdHn .DAIAlLl#( =?ݢpZF}V{N*&sE3n3MwY݄Grae7nәc6]4mb[d|6LҹmE|>㱠h~4/r'8_IIgu0?XN=]^^HW?' 6_S!pR:C5CJū.256ю1w/o#$:Kqs!{L2E!,ngY`ON_B³@g<;Θi.a?R-@\=FB*vڵ] jA`-ȍ썍jyǟQX(ЄlIx)79`NϔӦ-уơ+R?O:@X-1-TP:)>5%{rfRֹ}b3 CxV~\(vO|D&D;ehGY5Mdp/CzA r5m\OYJhu߅QNxk1]4zݓ ؖe;Y6킋gV2t'x3żЉJIo\q3sZGy%_?4Nn6J'u02+?Xg.*32I @Er>ɨ6"0ɦ;Li2 9J?}6@>;һ6n'RH`Xw lUa{\K:OSŮ&ԜAٵ(V>fBɣ}w,5v(lDe]HtoɩrlS;T [Qs06Cc&$nL'ބ!F?Y;y.ޞBstrĹ7@){p?g=|^F?WQi$cqoK#_ڌ7XDĺuqVzAѧwE:N@dv;1jq+rsTngr3qҔVE'^anGmC~i@R`)mf\M/Pۀ6WFubKgQT>~𤰔|hF12qubn}-/vXQM&3l]OB&H9^-.-AFs&R J&4Bܶc&=#w#711N.\YP{SPٓ=SM\tn#IO'TY8U8M@ {BCyB2v`{ZJ^]S0aIiW}NұerKr9O (q=dvm顏gjhY}A *J 綠`?H!zC_2R,Ay$cL6hq- X0fȟQRE0ttIX>aFcd>ч#܊{/N,O3V>ūM]{_h pK.~O=9eC F82վshAU$~襋B薵tl7y\D+gYjBͻtCT^ZjύQ[7X1 "{oc4:lW8:#{ALv$ťE}%.n1=|')~fX8 ȭX20Ɍ$PC';[$ցhs`[8z J4q:v9#֍lՇtVJsc{FH`S!+ov][ dM d=i J(j%R0.5PFwPih狴ź!^hyRy.kh^b01?+ I*lW=Y%O[X5!١ r 4 %<.V;\شܢ4ίa]@d8Be'v<\$m^B}qmȍ%+?f~$2Bǽ!:l/37݋ OUҠfgb6tp-߸Cj)m@9!b, ,XinPD>R]\jwdE1K8 c֠W(<]A߅ Ǜi X5"Ӯci*/Y"9z GO {AO;%ȳȊ蝯'fg 괌\c^Q+LLE2pp/f^Ss!%Β]f;ۓ=sKWBԃg2^mȲ,"Ń/8_ {轈fBę:h@&U=6?{vb6AQgK dQ:/ 2|YR oQdsPZa`0Hݱ>DȰV@j8)χ dNgyV#5ꯩl7hZ W?uH`KHoEt=sݩ7?&USUS3:Z`~V՞-rzӐQܜ,pq57- V?gY 3QqEEuI=Ӧ9V}|X47@ǭGפ\ = oaR\dÙ78:\h眨B Tk;]J{JhWw8:ˮ8)2ZUspo`nAD8Zn*I  ,BНOllYL0Y^Wn$!&4;Y+'HfK92YM7]H2|ACJ 3CL!?< 2n/aR&1n;M!Yī,V=? "b )$Mj uehƅN1Sr@XRx9ׁ{ @E* ù>U.sS$&#@!3Qf@lh JNNw<>@6c"),h/ȳE 3L֟|ߤ+ + T#HYi x'rƤ(yYL$^c`/HlPox.z+#\q@j/[/,xͺf$*zaSu;sdž#ꄳG&[U5heC7M9UdduX9.C̻^s}9Oq4h TCٯfh ёߴ>S?V 0 F+HVs[o!ShH! %)R#9;5s)q R|C._tyJb&m\o/fWhTX95i5<B6L`~|xzWV5 8pŤS팎zBIi63 $AyBzƝi#;r sF%C#SK~̇$bU]OCTQk;:k#eΓ׫B^dxB[QZtv1>" l]UL9xE~xT>g"4R|H9\W+z-\/cȳ5ո-'Zn0:J)mF( W>S-vQ YſX;72߂Ó?KE biH{&Ǫf< X%G:n ӪQ_88dݲ9&Ds6,Q) U1P W׏&w|D[-[F&&iOwqtFuYӋxPlw h(d3DiR>*Pޫ9Ʒ8J 9:o]FZ{*LaB1;J\~c0PX hsr -w6C5;Oa0|aV] @1bbWG1X8Bӗ ZQ|l>lǬ9#/R!"f.Njɱw׭;ղW +aS=̓ת6H4 #dmIREnþm(MXbᇏ7"nݨ9بEɃ/eC)XؕvOm{HS1+x6)vFRw4AtU. kA/ȞSp+0SEVF+IBI<_Y-!Oq4]lUwylMixΝ/~ B&}& tMVfSlD@vm* Zd9d /sԎv\8*RXw``ާ:Wj4~鲛zVRi7<\!@BSA?5ӷy o1O*pd8w7S6+qy,y+ſ`ƮjHZVb M=5[rm)01Md/W0M ]9=O%dhA[;cŌ(`epLa!Rj&Ѷ}>ۭ‘ ?8eLǛDGe/+h^Xa"'K*w"k[0hi罊gn5SeNe.w>,TĈhtcT?N-bL`{Q|a jMeBbmPa  }";i[uof=W.X}߫P|FnMe,~4 hIc7jGCBwK>\<2fx8|2SNR8^rրT=!'H'|9wMKDQJpG(pU^)w'MeshP 4@kGpgi{ly>o۞t_VSH>xfH*giBl[efSqz[/a@T rqٺ# vG#do8,ʔ>&N ﺡEw'Wq je1 \t {OkT\\cD Kb9M |q $6ɵ#YX3ggb|Z^3\quxʻKq7jNh|(TZ˻5/m?R,D}I%Pۤa56{qŽ2хK oSy Gl0MCXh€;3ր-]%*#&+EMŞsyey ۍ|vE=0,vQ\ n/$5@/l$\Ȋxd`$RNЯ<)Qs sTv,z-/wǖ#/3?a,ҧ˪  P/ AIAlL M~p23' t{pՕ[d@i7Ě_},c4QQ kB;S1w=VUt :<yȲ4.!F,P䠩Qň^[Rn0]xkuiGk"{I4A e dcz+[o]}\~QVJ_gSLuY5zw*{:x!!ɘZpqp >;J*)b1rA"Cdպ慉/ż%> Mt.7Υû%3^ӣؐokP$c# )c;#TߺICIUo 3_r~"bK n2 SQ&d C˓ll2F^ D2-P؀:jw7c¡Ao AhT|2#U60\fl^3h#Ih|KW9ch]$1 $Or<* C8fhXWq~.*k ,]kO)9h`X-kN& (be[\>зn)LJt6x=  Fjr"0ޣ_@[a|޻GDB&PǴ\w56LajB828cso42BEv ɚ9[3-l N1e UR8[`>+ϡLEI!}Vx '^u@a$?6D@o%n\-TaaO{XHOF!FAGG>m|U[ݖP!tS -& Wv? av7Q\&E6x?\% Mg DۮWh**`7R-)T؆}= :wO^BiN>ܑ˭J0I pxq Y$Cg : _HlWON!d_/*Ĵyek4hV=uGSHx,nzP>nO,TD$~cT/eP1Q}E|?[>s6T&&#q2VU ,:À`+xRo_xDG9;R8vͮ*5zn2\ ed.z?M ^)'/lOjfbe T$9WTFDup&MMH t G>6L|\r5FU7Mb'׸u㨎.KhB4(gt2dl:>D^$,+[ _Z?F:Ƚ;]XájH?yꆐV.U:t/Z9K_:`09K1'aY <9-ڂm0WAF-MDظQѤJOp Bj~ (/*%;"97_rk!{D_ȧ^. Ò!Yt(F!w6M(UXi]>26J{۴d;Cs{đ 2 рEAvBr546nLh\z(QI+!LU+J>/$+JwE4&,7l4󪨿3 OJ^:K+~Gtz8hKXV;ŀsϬn;3S'|EpEc6QtN"Nݴ9X#|?X=Px> #Z"iSVi'xs7ʷDހ% 2YkQe7 ӮokbwL a(}g ps% G ^R\()v q.JՔ%Clȍ{[UislPd%Cù Ұ!0qb|_) ɉ_Ltt~N2 +4ox$Wdosג#=vL'0{o%Hְq n0Ο2Jă+[s3MuUЌRg0Suղb;a:zN0KPl'aq@*FS͋R"̍pR'|Ǜ#IG-I 3S!w$dLȧ7sF2ٳE_EN3JmK\wv^~ "l2y(I3vQ/zqh`JΙWZ{(oY_ZKf}MereTn֫1@Q>lv q>e+fj*=m/8DCk?7A0E-e`yBS$|70eN yPWc'ߩ$Lj(DW+cI̖ XFFiS GW?o0;XrӷJ:otI-|ڪ bȻ"b-@YMUJ>\d+p4P1T5qق-m=b؁QkJB!> E@OZ$QÈ^l=/P̲ABvOtIYH7`bC?D" d;(xSU~ PҩPhB 9t43t!Шܴ&P} y,|0Jc[G. Ϡ:WN0aq*+O\ˡ=U+:o߄Vh8-%uD.?z?U"ku|Ã1 J8{Ǐ߸kƦO3&b r(Ͷ$Bm 6q924CMGb D-[_{Oz()v^s 3dJ nn=!q=,n/\~^"%IpnjpX׿1$t.9\Čp\F}-sDHGao3/d8VH(g`w I:Ž?҅Z:Hʫh 8 t:Ipc mBB >~*hR^y=([;sˤ ={͉TqG5x~:ݐ2M.L;u5 OGwYECì4G{Ajl4p0+&) 5>bQjk%NGhpzAס|V ;VlF9a>0Fl'yĪg3jhlKS~,%POXX`S0PbjЛwk4{tRbJMӸ?`F~ZE#PkS ePoxs+w+ &z'ړ̤nK|EKƠr24,@BA@Cf*I #=93߳)9%Bo#iR /x)'2pamoj;AkR$j~4ٜM 9D eF ѫxT_avO&Y0)۞-Oqt<`+4WM- 0BљYN\FYp?Ƕ7#FV>3vUF J@գaKA a溗IB`_;Rz\[]E*v XnD2·8>t^ U1[J],27 )r!iC{r³^y0Ux Ce-CN*HI;:gHД0q!j\i"t3ҵ'}{:?]Z#B;9eٓG|L:1 f hMmDk$kHI3ʭ,||q w\`Ut)]B`=7R|&AUIAlL>Mq:6$]Q:eph&4mrSt.w/`oۘKy87&&&\p$zևMYǵi 8ඔxu]IC\?\aO٨]k+n$d`"VPQq@NW> k2e0JAkW.*BITESdD\hh/̇$7U1[aSbD 6>0bT>bca}زƢ0uQf/y b X"^n.OlBg53!Dێ6W U&W)2^y -o9%\(Ꙃ]Ps_͗ˁ)Q)0j1.ϒHz_!ҵ[5_POyPA[ENY_d(\tȿeVOSDR1kBoF6x[\L"-&A6daV HB?ڿjVvɅ|Hq7ZowK{EnϬ\o_o|L 0 k­ Rs(ۇr1V3R60Oc5{N,fB]uȅLLuֻJ[w$dBJ"(-|"e1_ARJ%8I(,B)xa vvBa3;NrTʥcE3L_L_Dlwp@뱞W,_IXoiz౫ֈUdRz:_^[Y^!v⒵0>B a % t">܂^ g $7TRܶny:OaŶ1RX=a;$ q?>J̥G(ۏF Zyc]8i.q#^ʌ6vD` Sbk3: RLْ(VYwS̀ g~}w ľjzԚtTtr-+ "@^OVث97"@MkkFmϚ,;RU/;nabWj8j9$vbՐ:-4m+ J[ hf*̊:]51~4^*U*4EᔯWpYƞhf]os40݊ySr a`Djy#q`e"[Y(ieЎ~e5̓x;\Sy2G!QޜPQGZQ!0E<~W}Y5Ke4M.$G˸i=X 2c 5s)d~Z8ݫ$3Yċ\":R^ d@)퓦3Jz=~RXUV{H.ˍz[WyRѻ8Χ7 |vEV{H.3gcyaWʛ)\q[fR(ZG+l 9 P磩T@p(Ac$cIf?dPXC=-dSREofݦ^>/Vz^෉T=HQ_'E7&O0C=պ%k% ӽ.Eo/:jNߡ{S|P=إIM%L}Yo,> v'5A.',䈠vZ7 ûpҳ,pg (@zYu57Ku`T)e+mEujs:'C8,ex0Ӱ 9_~£b8*ˤ7Cs䘓"*?;`*ZḲ4`xެ)M>J]uS FZE4U~ad2Wd>k>a"jB8islZ_j2[Z  tg[m* 5};,a*,'-FPja^}y50S 70֩R5?̡KIGcaewmR*PM@w}}E@~r[$!GYڕNV=佷bNS1g͕UHMY} dRƲ}GO"Pec5Vr ST!(zcaNzN/,:abOj"2Jsg*-꓃cM4r*HZ KۓE=AϦ"{eYf4R1SAH0Q aۖY z"*%*)TWhW(w+eSc;0e:7ĕP'a߁zPkɥrPKB􌹏~G04oj=!Y(_DuRײˍ>lAMIb[iXMλ4vED(~5.qe"nZ] ߟ˅{1(àYwiߋ6Ζ y|g. ĂF!X_3j_,'3Р{Ϙm%|_0BfR8Y AapC %iB{rQ_IśА0Edo(s; u q{ NxMg:Z\sf+Ţ}{ӬNkRmGb *? fj3>*IuGs&v ]am?@͐kOc|VVofFn1cWw#y2s{&U#.!׽"ݜlW6 ?q$`6D_a|D{_8tj({J_E`DZV27UQSl$ D+,}o 2!#sHllSºBe,op[=z^+=YZr#.gc;a6%%7;*h?€K s85M  L;dtُ}gmaA*Hd-Vy C{{졮Q\AsE,JEIM,--N;%g[,p8QZk?0^N&p}[/Dn;^phMbr?7KhKJg)+*Zj^oaXT}gF P]ál= c(o.J !_/)QMj OBؘ!舦/a&iiYRqښ]$BFb\c6%V %X'??s VRalDJ,+R|Sq=S7ٲ7nu+(.y0>)Hx﯏1un Hr'*J׆b{lh̀_UAASuxFwJ-SM^/eIs? \%ohJ[1+N؅WaX5@P+ y/+ן'` wE> Id=CXB%0aaj^o_?>AM-.Nij ظ ]`rO2t C 1O'\'w.6И}+|5Qd1e\X֩3IDTEG?cxO6f<5|5}O5aUK]x1 vS}eš$vK^0zĂ'dgw0h}+ڜnӋk7n፝/ \NB$Q GSuJ I3uЧ:KsusHFx(<'Qw|zLoj_zRF߭ƆC?X`c5׫:И)P]ܢ"|MَU.\Tn/ Z8TAq|/v8*MڗO:&(ȤfUl;jtP!`![}v@VE6::0=Ɛj7dBYgc𷇨9ߐO<_ @ # F(@C(#ؠ.?$Ê=604 7LRs6cLjF; ,R2#@͂_ve k@ܰ#<%YM:0e+\,3 -Zg|7C DHg>uRc|EԸ! 8p2^dAtM%PH>T%/꠲~Y HXsO` Bq?*2"o&"rh2mZ37ؠpmX"@!vN䝲ܽrDP]*sn$쎈H!$P0RJ '"#al!h5&'uvg[L'NH{l`+AfI{݆+wuSfm4d8 ak!E=!36n+/:/D;A :T1.ՔPNg{}_NTZ >%jDQd\==XG~ꊲ2Qi0,m赤*U!eڛ?e鲽i#J#Z|ƈ(e|*$*ŝ_ 2Ux1Ar,9:*"\~7l.t{MxW-@uWӢܞb8423d\3:]>#Og5 x2&Ҕ0z[mJH<Vxyj,tJ1q7 \ JX2%)X1=8-E? u`YI "4.bS~+m+6 RZ(S/Z}Bn4>z^-lB>i SNsy2 /OF@g=|H::`#~Y#>XMGNYJae';Ff3dr5Qh)#sݠ"tYfM4"S0)*žN.y?7˱' z SJV<g{ \bA~^&.rJs<uɇtE|WLn15}&ͦ=˄O"8MyTi0+l#eIH @D 6KwBv5N Fi$QX -Sl"*XsC ņROշIk iDrѹi7qD` އ&w {c,駊"Aa}һ6nCokcfH3o-W2$ L=@ rtuхx,[:D;`kQο9{hbɕ)<Q$ L$yTջz,|Z$RO.*oyOlG zU5Z JfB."W&7f=}9&ǟ_#ɖ_ҋau=~;R)6YfT]ar]DhHeCz+'lZc@- wCu DJs|6:xqbRc$}vezv[aS&;0i Jz%K& lJ17"H='j̼1S۝%`=%gJ|5*}! ~5U ًb0 0 O+ ӌ@!, 'ٔ'o[o KZsZS3_㐎,w6UDwnj,A¨GH΂@PkVI9(\?3nG2&~Y$~l*~T "iA4ܘOde%숺 4ʉYK`u i.0Egȵ^y: -#n'ؽADaNE(OHqmCqh8~ {6 CőF@mCKSsmǗm|x:L5 7dZodI !Ŗ^NVwa~p ]`Y'<\~t65썷A=Ort͒rt1>NN۱X JZ'5E9QE6# !lɐ^>jt2B\ۜLqme>|f |4 ;K1ٖNEbQ}Zn nbLzsCu^ɮzwlO Aq\ѳk%]+vjgX Ɇ:v?QpϹ=g[:rR$xEH[R!y(|nx#!SIˋ>ȿ@ZjcN*8p㋏A=vńyG%w,ej@FL 3DZs1-nf ^aQOýN}}S>hQ.EBhvZiGj.ip tK,LBAt|mc{Qr)J1*Ԯ]!oJ7|6nipa0tHp,I@ePh'v ) á~^w6n Iv (a B>{4"lد!jValz*QNw_:Jpf$9>ZEo 1XgT+O^I"5;o`x(Ӛ4+ǃX FhZ>[y;8lPޖXuvjZhK{]=SL^BrS6?gwkA>&Old7 paK@:[H2.v#-0xZwKRVmEWɈ)/?+$A~kL5Pz=mQD4ͪ9냠Zc+y]Fm9˹O@dM蘨HAjFt,k0LB&GQË)b3Ծҏzec} oWmqA_غq_toS[Sz8UN_.Yj)VtOwZm}+gc gVl*,)6$J9oSmp ncG6h\TMt+6[: lbGF&n\걲60qwg]lO/OU^\-ͼT,`P*tM%ZxzL#B;WA&)QP#&|Jqwyf=5{3bBNj^P~|([\"_}Z*Y1k)9G;. ͇S04Ls Mŕ2ڙGmM>{y<SLA1>R Fnxpd{5 \R cLYCDܘ8M&&N*7?[2c+VyF2S=,S%|I uv߳aŪ=2Jdߟ#,"p~4zXաF7i_\",yz]__ɚ'\jL!JaU=OjKWd*_tmƲЅ^|(/@tr?}J4.(&ԼyJr>S(EV>xY:1qJ&ҹԅ]zY{O{*'*⭶!uMIqo>\*72sDU^r`53T.2h ([,mhpaA7a_OGI1[A*+>d!f#BѸmI~*(ƹC .Ӗک_3lgn6){enph6v*@f_dFr䯟׳N]G#tCad-hHk eRwBH?.TgSD'1[I5 T*wH5z1iG i<%V*EgMlEgxFlw\-4[O;H4c([EQ0! 4yvSC£tg .;.;NLd~tzZ˧qy - 6qiW~^'2:[ <3hLC&CbHt xwim7W!Lڍqp<}U@A1vwUNlS7B:V!34FdFaG*80HiyfI|y(50w_q:%)-6scVɾ\N Dj%H՛ۊ-Y4 u"90f5J)~ahsAnؼw۷q6V+Jо|fC3Zō6݌3Rtwp ȇR"20YW.KJȠY 7\v_\^}F_xw2N.&q+!O䂘VYB\LPbCۉZ:EYUzG]I42_F$wD{Q~Wg1M4.yvˢOTM8{ 8)/E%4 kY[Qg%ġXbLKF)9{5,\=$rwSӨ'Cc8H)pA9[ÓLuaa aGem軜;F֭E϶-i,ͲMgb2VSgz%vhn[.WIYrt'iWv.*&qČǓ*р;v8X^*93.M~[rEu[_eKn+gk|}?"E-YTFdԭ}[ay]j_Ob14Mph j;snb+s(>{qc;?/Qn $a6J>RV}-0N}\9۔J3ċwCv_ J~ a;V)|,AopϖQPFvqd 'rᢇ&KHe;w]xiJ OhRoNsgtWB͙Vޖ`0Qz$#}Fj9CXF;oB~'$,əXsgN3x_kKЎ&~SfAIAlLr^'Oх *jl'3tYILE}@LtJ[UI˝,Qn&lWhu `[ NVEEWV(!O,ݤ=N, Zaj6Hm1jH<(('m3<6r8/xv:U#n]<?U[N[Ky,tMWD Ȱ;Uo6U 1lw}}Lw7LיA b-aj슁) >,:7Ǡ2r'ӱ(S:*oyhq<B}߽b77CظR ,6Y*ߪUn&@]H1TAkp-t]憎gLMZ觾r?ǔʱE"+IԖ}k'T}'y3ޓu\m튙{!:2' }a,(GEX !23{ ĎBY\vtjMvoc!ba]"Xo[^7!ꌜz7n@Wp\S 7wXyÀ{9KJs^bc9݊r?DC$Ai'Q따2{}s԰eBxt&oe,-\>=.,Z T_/_WQ{< ke9VcBt2T utm= /- 5點-hS }SS_CĎ 28% . %W;KgC(&_k/ln}e/;i`ҧ2V d r| T퉿=af@ oС^#v|4lW':cߞoc;JEOwp0 tRdJ]սU==2ijPstPB1pZvTȴCԦ:ݮJ {,p)+KsBctx9obshqO L֫rx2kR]Qہ\ݩ^ =\,?VRU2Ur޺b+mUd:2^vSmo%kDZk&Uxm}w亶|,s{*CrV͐ z1Ưyv;BNkg!GK` }1~'.9\uIE!7AP{Gخm\_蟞}ݓ+_JeSKkMm+(g[[{jiC}u){2Af8ЧOZ' ەd=(i)iL{W i܏ᐱJs’3q_'$r/ SbxޯmEK]-'W?w0b҄tj)*⪒BW<@N_5:,gg5ƋLqMJÓ;hs- ~9 ^P9}k\L7+2ylx`p(̵pww)ȘW2kOhdRfD])#;y!R%M E2TiZ%PJ@iB,5t`zRn0ult<+]'h썑 hiDŽ5K-+~x;axK ,~P8s ˒ 7smDo[5v/tߧNtx6!mNuLX>ǤVҡ8ny}t \>&p~uS֖#Ls̨(X|6 B׭ˊv `T;MʎÔ4v^04q; e*İnfߜ>U|n\S*%49<PrOww6(e69|McAmy6,H/H;mdDg88~&d)nh¦ zSصݷ)<(Z`נ; wOlH }M_O\$ٶ)< [(E}vIT~wBY6LAi^z ~b;qdTOiǪap⌜nL*lS`UXAUycZf7Ⱦ՚fb*TPНcEOp;JkWD7?x?>F}EH@l;|&kRjT0jm|(w1,J5˕ҁ-;ZoHГX|`aGVv$à)/=j:pRzbY~]'[]nAj #&Lѷ]D߰'nfTLTtvL]O>A_ف ؓΛ)Y O $ G-YLEvс;4:?]b˔'qHyw En˪W8[rs +{\vxw;٦'˒)73FS* !7zmCZ :N{HU;087Yy:{u}]Uq&8%61G#?0dQBȤp-,ߩ=ؗYHk T_!9B׻@;o\lKXբ)te!ն#>0ĩ(NMp'W;8v6zzq9ӿ)fU1PB1Oof֎Joe@_I#ܬ_%)4L ~va{zA:XQRF?{蝵C\hh/욭;1:\ Sem|ކᙪvo?ݳ62༔1P C%@g $=Kwf^7u.a&А-~e>/f> o>n^eXhDը0%t x\Pc .,Vȣp)03@fuxD^x" qam5"d/Q@X#>zӨꦟQ.>][\Hmd#Nrr0[|/TdĮ 3kI"HWSʽ6mȁ%jf, +Ѷ8Y.gaS$L|B1 BZ4Oڽ~eoٶA4/`NPOVV}Z!zDPB(0 Fd[9:Aʼ8F}h #`L!1[%j'6A2g+EA\żKwUUcWJ"a}UCPլ@Zxҿ Wfājx|]Y]y2α&+{bAuNBJjN"˦ՉyqA73T.`;A=L_MQscߔ6w/OTy >[/o2v7OH*-~)82"'zea)nmE}]\D>P0!/"s 9I\' f+"MK+ }7,SbY"n-jUv[qHrc?Sg#BP~erdoDh eZ""爕:g 3|ZYCG֌Y(}0qB3Kb6msq)v#?\4 7j]Y6zZDD' ġ(ۈx ?q35tU¯Y,QKd (/~ϳ2A(rRoXų05~}qsʼߺA0n#MjMu?eu*PEN S*kL1}vH;S[RGnFY{ .a5S->Gt WU@%ͥ=T2KڥqAE,L/ 9 o̦׎tm]ΏdM]Ŕ53-*[-o) hUIZ"ۜd{C4hj5QYb!>ET?j$i0|8k%:j؎ݮ/pD =D+Hf#UXdЊPsB5dzZ@_S&75q!5ǔ )j"e] XZ?ʰMd!$Q5*D8 &PuI|6nb/bEξJ0#p␬W&)*KewNo{ n-l)IbB#̸#9L 'uVFwC$^LZvaHm@_ЙH>΁?:"5 K{4TP-﹵bjo_[\CNǞb&ձvkږkh~ʝ:$R$䆙ڋ7yhIɂv'^72?vm2 ^UCUB[3uQCs֓Qd-V đ_Jf&[  8g#xYL8 ܂ʚ7$C7OU` Z@ mN g`~$|⤴~&.hap,QMͥXD`cٴ1a!ا%r?$_*юbj_PH|BoE*]UPD˽- 8'D趣eX/}Q!`XT!dR h]W-!g|VnYnI]6pj!ց#frg65;^ZV]J\/Ш[料GѼX^Wgk*q3&v  (JEqm\_$=zå|ci">N`=FňF4 %;ص?5^JalyE_北1yk{888Ɯk -tea TU4#22U[g#;U{ra6(i ')m&:XVșnඁU=Cሶ@Rf&(NBIJ3U@_=5otz8LRCE _$X&}פd@'WaIZVC$} @Ȱ lr{E_{V I"DFod\o&,ѣd2"]NnN~gȷ)sSeԦ@.Iݍ&+u۬Az-AIAlL ykx~l@hS J'fr31ri0m|Y g5 >c7t2C,̮9вzK}~G| .c]fc٢eM]䗇0yE}U6*8pS 0 <*#:CY1e$Lq50k,Chq gDί?eUq,OevR"{iEm}{XJPzÌdnº~7Ix6ab me$k+_v9օ|)h&cH*v~NۙkG;ǂhA^GX{O*/&ǟ"DHy9aM^w& B2dI ۙFi_*LXS[G,ctd] #zʠQ*TD:ujt? n68#֝:u,N.[2 l:(Z5!n2o)R},qJkn! ?WD1D@O~ً*u_K׺@}x[3qg(}d$EGPf𞓀M╵@*c&<@e0#J|\׹՛IߚϏѧ%̴ _bsM*NK"0 w]vmpq~vK4A< rDwFU٭L)][~څ8@1""^cݹ/P߸>Ei$ ϔWtT|HsuW-@gPyŭt ]<"T#ٓdcBO`e\j"tC <6{nWvw ~$~׷kRkȅ8 aoTF ~ Da_hBJoFŞv+ap vj8}~ڇ}'Gh3ڝCm3쳊,M]Ϡ#G9NKzZ,⺆&$5~вKINVhzXɗjY~)fA4r9 4KM# ;lWb?x7@Q/a`9+AI,ʓ^5+4+mw H:ԈJm++~XdGC3Я Fe2,A՟"{M(jIC:L nCd]oLG:X|rl@KP.TDC@M,~aySd7Дdռ=<\ӣV6wGH71Y [E'!,9YnYziKI:u6H;' X+-)+=-c .nKDN`pb7<| ]D:{5(.+e]b@Rs=1M !y06KRd=4x(ҵ򁱛pvb$; 71gx4 NU\0[ެ8klv3qn}3,ELdU@g]gx%~0JU!?*6>? ^؄o+_a&&{X_CND(<\m`xJ\;Pm!nItȝ@BX64o`yKq_ b7!|O{Q4MJxsP 2=-|v/OX,/bu> b'9H flQ9rtU횭'K-H -栮QϢc/T-ZfN,TJ쪳8UW~N}oP&`e A |Ǔ%.&9c)<|+'`XG柨fdM7X&P>C{t8w(i_k8`[K'ޓ.S|0$GbWIЖv6& e;1X h+挗?M+*=̬qIgY98_e?mzB|wWͩiBv *~rUs#]pǡ/y^‰|dcQWBB9/#wA5U*?M&B"Xq׿X<4a9':-~;0b>4&|4sj D/* (ʧY!ԐG=@@0:+#ti Y_:I*0ʻw=ݘ`>IdڇuC'N)[>7V#L掗ܚ_'SbMiwa4@ GAj)qn)>IzfeɆ;{&o@? %aʩ4x Z0Q5-|/ yY#E񄱊C&bl*u:&8| P&@UA˕*H5CJv¬joŤ7B)@:\ݶTF3bf0S;6ǡʃM8dNmA6;2p\zWZ Ij5t6j3L H1o+ l\k>鼲.~R cIs9SujS2Y\q$뙭g\`Lj7+`ĶBo&cK f('4P fH&Fۜ2LD ȇ ĵPXd ̩chY.!7GU{ˏwNBdRn=W5Ɣ ޾)F5MyN`ӕjȯf9#6ycy[n`],vڐĽ? 'zh7&~"䣞dA["I|TG2v_?ykc6)E H"׺ [WA†-G@t|fd'* %[X&uٟjeW.\?l_J@B䯈j-p*n rҿD>*ҺCA γ邨|}{2JcS !|ڛ:~KIý(PGw bGyޱn;jCbW5&9J<[WE% ʵc?(k }hn`d3>>V򋮩 Kb(i@bzJ0oeT;S#E zNK"⫝̸t2,3(ԗ>F\$qE!\˨YY)`J#!<⫠y/27 I%nd+˕}T`&mm 9e̼qX{#aoH<8jB_ĴPYE^荨 4hcI0$$)_"bDb &H٣\κȡ]x^騫?e(!%CWű5FA 4 &1?Ig7[tho #[=<ۺ݂ i7\ojڸ83{OpԻ0 S_ zyk01 Rxj^" l8ڣ֛ Ղ3}֭^ܗf+X,9$߂E S?RKu=5@RLj-M<==\MZG"FL?DQ*݉pm3`C$+4 Vջo;0C<H Y_ce =Xź\Q#U§'=efE{Kl.ؖ{ vh0 x~$3{imB`-lfΔ(p8z.|PP}Tw>7F9Ǐ1|F:"u0ģ))j% dc}˹np c W B+ 6+;l+#.o)Z#.ŊQVPr(ːgE}#{zޮ;!GKWJM^gE\&Xw4R#-:UAx)#iq+˯\o(̓t&ezGQl;YeC+/aCbKd o*9ԸϬJg >yqPcCE̳,<R W̫7Y20' d2(IiBi-`  ). GW$@ddrǻ".E[&+)sk7$0tb7= UAΈfncA(=Y!*{+1ML7UaݡbβŚ|/MA?E,Hd;i鯰IC^s K!!5ju2g zhs˂^MrYKR$-qLl&W\8^`sٻAitmʏ6׌v@4Q p(vt*!YXXdAp%?s˛gN%w/(J^6#;NE$'8$H)EOQv5Dcg;Az~ڧyf71XafrG5_qlkY;>ܴ8\vU*SA<l/oWbp;9ZQz'C nALQ瓒yd1W)W[);gY CFQ{CHPg{շ"+mS*8{gGsYsf~JKA?0!wՉGn?;zW!/>h0D0Hу玛q 7_#y5#))M{6<> ˒ŒP r)Ζ֯,7'v [eS;{#o~LkG@HI61} ~#̫K w7q=_|lPpuuP;W$o;Ld$v3Gn)Fvn283䊯?8`="S 8oϒadQPԒmDwhx5C| aPfo:1u#x m&ٴ:t1z5mOݏ &ͅ$zcv#IyQ؏3j: MmCyOGxRH# ]2B9` =53 ͧH9%#V6'o|zXQT04WF|)J^\rљ^ LZ<[R {p S3Wđ;\=}7+ܹXʞg.hmwq ƌǿc5eAUn#B![bDI)!u^\5ET$%=uȿ$H0I(@ >yW?|b 1LzKӫ{ܖL#C*s8nnKD 1Il:pmI(E'ސ`v&"v1_x5g̷iF vIhb'Xg"Y lWQq&pup_f!wsF)!ww8gS 6(rJR˘^ L mfk^t_JYFǸsWk) 雘^ԹRrHï4FkЁo'gjLA iG-"P ZkXO]Lhb`xQ:#}(2'#n\[MxħLf5  3UtHh%ȒCf{LKmnGt9ONhɇ@~Rr8[[[p`]3?q Ta3BTڮ83؞R_ƕ578/tM`)a'B tu6q@j_NY?.s/)mʚ8c~hNnMG5. %4_ϴM+VPXygAcȀOcZy/8)H 0Jن/Z֞g4SJFKSj&#KWj̦y965T #l {.rFBzjF:Pƙ-WmF+14PyO;`QtYGNX-P?F{҅xKz'OO5Z7yX|dž3%03V+џeVHGk}U-k?zt4G6RVI )LנfaW4ЃP.,AhIhkK)ҚJOLf ڇ#d ry@hWk2 蹷 蔅8yX02=b؃$ OoMmбq$.<3YPGBk4ė> _Y8w!cjEn1+S-.%8ND3S<_Dcp('UG |5M5^ ^jG؜]vAEIAlL Zq/^7^ sV 桾Yt&+–YV# 4# xy9dvjJdǜ̑9tG=rX: Ycxs4o'v&O=J6Z1*b'r:_V6vt 9#I`^'Wƌ6 86QݲܹlU7e?$ÞQ S0iw5Ѻn4yrPt_S6Bf @p:R7/ VBBǑ3_nk.p.}Vqu6!8Wt*d[3tѤƤL3N;W)>8.1~@B.Ŗ/W{zKG $5;ic$^:V7b+9YQ.Edz u-TB0# l2il,m*v ҶAI-',q-2C^cICԺ9t_lӻ|>y|:+w+u SGG >Z^쳁-Мن }Nx!x nɲ!Z6_%B{;γ|aXǙm,9BV7jP܆,]d\gV8G.Bs$_ar9Tn:crb)CEcu:}dhI({, ]\ -w̝; O8Kc&?`sϗ@Fl}zoG$f3$|UYCMBƔV 8jCz`vuFu;( P$ȧS`Xk7r9KVrA<\XKTpӪ)9%_VD3]9tneCnu-{/NUy)@eʍ_aj)_Q~J-/:`AorҒzd̛w3ks> XaT?UKLR| )D w&ڍ뎉d_ hS?t H9!*_ћBTh<( z?}z`cNdfVΤ T(w޿eă=בDZx,h$"l,.d@HXtEˈ[Ye ã! P0OMj;;bLD( v]4jڹaƸnx8޳IP΀ƲLEΏQ9 :dY$h`.n[QpIiwGrj#GLu NGB\Y̛e`oJ]=;)Av_~%jW,]d?ݠR3=9wePj~l9D*YIJR-eb:Kgcaj_8|k}IDT94PAK+f|exK3y8:֊]o@IFg{ ivJwCIZ 9 ZT6}?,jNo0 "nTm^L~y6b6QXD:~-bC nF$zŶhAɶW&8xpeѰ/PJ(hrKj]=kyZ\,> ]AC܊t9MVVp' p2_ަ6oOq [z1ŘkH}Yppb\iY Ld"z`11PcRyUw|Fw9I_ d\dÖbPeo&\Ctf/P:ݝEiC@%m2 NvPgߓcP jٗx=qؼ9Iq>|q]غy%߬ XLc,+ Uæ{o IN1sOZI8^FÇz0ci>L;lQJ锈Y@9{n%{/kdĦȷ#5ՍuX܋Sv]~r#ͩf'a/uo][N:?`ͣ2ìޢMy2Pž-$Db'Qyx; OO]#QPH]Ĕ*ׇ8U,R0bT&yy'=~ɭ=(8 nO!ƽ}hO7F πdbNX6aSgohKJ8n(t/M'jjR@ ߋu]/BP:ʣ-^)uf{$ :Agn΄ jE6;b k 97g8Ծe'=fF6+3VLB&~T:(BOWx,_2޺2c D}5 hڽGNT(f4I՟ SײjnǙ0k.*zDՅ1 ДJ|QK6@- `&a6!#v^2Oکɾ:3k eyDNu57;Òr췐8.$W46ωSa(oUoԂа2(q$Y;v<̶$uivn47F*؇y_Bw^^|M?>e^3Iz J{GN+u*eǗ֞}dr3H.].(YĿ-0qo7#ylڗ§*cGoXk+s9`M`x]z ;AV_j0zou/%+ufI]Мxi |q8cmdTTm`uڽ녿nt"Ɩ`Dl]FNS}⊛*uB{7;@MN}?#˧}!BGyڠ{ƏvY /Uw=Γh$8E"ƗcmE @x6еsۜz0XΪ*V(>tZНڸk S0O(amh/X EX{n6I^y\L_Ā3|&W )Mq~zs$܃9gU; +6.~Lv?1~i'i81#ds~\6U j̔" 0frE?#O]yD[vYnϿ!AeK}UȋЊZr WuO1FbjS~4ye,_%@3,.\:ڣlxLc`gB>ޚ`V`Mu,;*kX4j[90%$lBR=rS-:W[8{WT*yO$k`Zj뜸M7âV;bB?>]3j2Y"͗pIk<(8R3ϑɴ7+u%!ӊ*v{GIE8a(wYXw[D}VT=q icɐt Ǘ hg3I==Y\[56^ h7dnHòtB]u2}da9toSa'1V(Xy;ۏPVTI']2 'wW$zGNoh^B4M0?6#Ɇrm|J9N[K~<;mגiJ&er*+ eќMIo`Pǐ"0m{)]듽CVyv 8S`h:MқwQ6Z x0!h7tggm>E!UߖIADhpۄuHGAiTkAcE,j6ɓTdw"xmjV2K5=Y8t*:1UV>KIt2cqԟ ͢$7]ﯺ\ϭC@aZ-`6[NĕMcXg k4a*q`Kq*st)/[v::7V@dpWixU\X6 %!zbIfJGhUM]_3wI rH?¸G(# j"rv\VM;>v\]OG rگi}ǛI'áL>1jS+ JPwW6:An֕bc8ΈaD^x]zH-T&svt|m?ФrnHlO|8G=e\!x:%!*K\ `v@W/<P1z,(%4!\j7ڱY;òM9 @Kg0XtmԷzT5'MϚ$:=U'I85*Zi9A-_ ̽HSt_JV׭ >8RaG=w\73x{c)ђS5f۶$Np2#izKuxko!/f~RKJ䏖],n9GWl=KoTZރ:hgqUoe󵃭v5ԧѩ\w$4❭w^WK%ˈ oMgr"N*61yfP~J \2eV"h%j_^ jKc۔]x‡Հ`EA-#)LHӀ=G[ ʡk ikJٮR#ʃuW Q=y5|Aa-G?WKZrEKlpUR[Omf`ifpHo36 &4!?+թNVQMlt2WS!F~416<XV͑yKirȻVY@uzn'4K{-K$Xvf@Z3D׆:YʴgFD"GˍOˑ  !5,km>,R7{D.PP 486M:|H 7%\p7k!) ivq&B~(9BP(|-"'NXº?*nCt ߢ|f.OE2SyTĵSϺd( 6Yz\NSffF0+mzV jM`>O#D LbICR sK9`{'B+fApf3'(;&:%ZRF'op+^G(Y}K@mF'ke1 phbM]g(RAFls}98{"xtq\Vz-YCNݦ4 1+c3w(nz`%o j#!W64`B7}BNblh dD>n{tP;FS_pm(BVևDh:Ih&ʵÂHn~#|01l9Rvw_$_vǹ2 ""8dwIS):2i``@ cUX[<:]JLd=,wLåh[e\fnL 6Ed:?_?XS|P͵39A46Vj_ :«!zT[uf/n bT#'U ?!yzWw[60Eo_}mEp:@ҽ-_&cpxgGu{BM# zHOSBz'M&\E7ILF(S= .catϔPX9f_c'WHw!nP"\w[.ƗOu 9Yτ# +[?QԱ1?;2 ϞhERA\Ef'R~qM@.E}Mhź]gmBxϗ:>33]DhuR{_ĘI/śQ踖C4ݎ}tנ=۹lwXUg/H=taA~fႫ8>sT-#<˂}s7ϗVLzM98!.:LqFKh,fvg=9UlP?ʙ\`Pc';1 EbG@ 5Lk@->]=dk ,'o.D3 : Η(L\DUnxaI;krVrpBRnZNGͫ@K|>+(oXêYA22@,gc:\>}GUp2u&  " &M\}>+u\V%Q&c){y_d8M9';uty0u6tp|Zyl ~xÉ)YyN>n vHqH( ې;2shHv~@.>ߍhs0G3SYoMLܺt;0(]p0?N+p3]`wq燰%yO9q]p R;}t-JiYϼ8 HkL[7v8@IGIxm Ȣ߆Zrf 7b/iU{Q{́b&/nW B?͋&+pN&4we-{#A^炮/%oo!2 :775L^fQ/*4~^i: E uw}Õ GʛOSK]N UfN ! z䪭P/ cK "GiF'eZzj"@$ ؝ٍPS4PћODvShj6?/^YABN5 T=}!&6֙2~;nVsx/7@iyPˮhs[*ֲ[.Vq \^{8X7 ],PF rѻϺhF0fᰆ`yf@Z'b~mH3tv &-`G?k;DQ#Zƞ$f2F#{[IKUm1KŜPWq1"~|*۱Q{ܲoD5[~7x%'yY f6)U. ]urz>}K \[zc()V\kkhِވEDPƃ6'ZN3gU|pgt1 WasTY2T; E[ǁhUU)' PG:e%$DY: ^K"J̼ q =2(y^R=KAwblxQwHZ}ɂ[ԯBoёJudff!fld" $/8I`[ Ip}0'7@! 'x-Wn^Tq|c7 qaH>Ǻhj6]MIPh? HtQ)c%>EtM08*n-V By%-p5aT qkUC6=;Lg n .xKhk9ިpΓ X&RGo~8mYP=Sk+&N l>̹@+6\Ecڗ wH~B*pJh+AŠ^ yY=nCFU]uj]&W3Ž#:DMq\ 'yZ=%d6>-["Y?\S("~f*K,M}20U$:;P|߉zN+slMS<$E-ZEr/gFz9/!֟M*8}xq@'r xj,/5wxt(%dÖ|ڛ?Ԡ&e+:gd0[D,irHQ|i08KTDgO&(=W!5G8dD u/ywG&U?Nn[pn#nGۙbgߒ ;u(SWn[g딖&y=xE0QHoڵ5qy,6jFf?ՠfW1z\u+t{Uu+T<-G#Ny[)/9~I"aڛGԜQ y.+e}^,#Ykl\ef;n7] ̡J7{‰ fϡ!`g6 ]!{z_m{3Ru%p(( 1}0-UŁ0.@8¤߽{"-;8,iIN}EjWh6)G}LΡ@Iyz>۰~LmWrY9 ?ȃ)b:lhӓ˄W|lTЦg֍H$K3cpUQ0[ }EܟͿ *]&}zS>s*X?,h8#W>?-Ҁ@2%.Bx8+VmEkO^p(߳IRssBrf(QQ+{3"~a]IȉnUۢO4Lna48%y޹ J'7@ab$K4F)0,?%|--X()w#vNRH;ZVٍ 1H;,+ ݒ|S-7G\Ȍ pnnbsMA%ʴ\1.EW>$W0\X0iӞF zm~lRz"[ePn]@oݛ'x)06DN㮋V3bl+`MV;R(e3yjql= ./h]t'BfkNʷOrV2ƎtZumžj< ɘb,l:%ʳfUw!jDpX:rghrFKb,Ǻ%ܮ\Asik%$K rP+r1m0EATG]cqQG¡&-ƶPYa)A 4Gjp,iSEf"h UAR425DuZKw!ħ<䭀tm8M\eX]0J47a!K~ 5G)^JK:\J3[tj*HCnBܹcl QE"{K..,ˉ8/ hs"?n+jGdhM Pk0gp6a}6S?b︴r%#I)bF8~r\D;/d|*?#d18 ۸L k5rE\" <C[Q@b!nZc58"J{hM>:'ĩS>Z k8]2BHc2C"F[`Lܯr>2;KQ{0Z,qXo^a"ĝn|0 3,d 'RLjIJ6 XhbUfX- -Pb/5r dàx g_{]^bɺ Vɾ)Y%4z )eE#\HpZě!Xso y7K?:wl_KoO5m Y3kzWPw0%7A4Fo(si`OF$Iw.oR5NE_qQ!hu0cK4N$dP.i 6ِk bߛkaɗm#7 wkt-Q69{^䟋Xe\T-#hͻ솘qM d\4gἼ\p6=:9 Wq6x4X#O6К&u?\=>`(w;f&[J >O4s=%2%D'C7*GKDh;)F=T0z5 _RAݫDtTN;$/U%#&%sݨ(|diBਔ0ޑC݃[ .}*Eqmv$0c六*JNeC6=ȻlO˛rFG:ZC EZ%W?3>[^-[`atEf|&gp&j>\^"tSת'v*3>$f2WzM0qas{R`(ε G)HIJ0sۣac >$ <%4n(aX,oLّAUj O6qkbzͱUzad|<8RtL w<Y;U&oJv7z79roS)K{/>k4VDZ`r(EZ >%oEAL&m\s)!>uƶp ?rMW@@ Ӛh[g|[)#eIVPˎZ~'mxuhqxmstƦlˍt d=RBi/Vb Ov&ki}+B )Ͱ4RGٻ9TeL|!0';(nqZ\;ՕfZxiP;9hLxɱy_=kjwCՏeDr- dɔ s34^3'6E4U |v./ ps|1پ`1H*Dѳ2珆ݚUg}>a],AŘ jxwAE,L,*>8^!ⴅ3 qkQ:1q sQ_m;eKKYC gw`|[V%Vm'ǒ?*bs,'6O2-- t^B7WnA4fFgD*L&?RW*?veC#B '°3{5GX 'c|K`C V1t部KuOp>u ʅ+/"V#JzTg3 P_N%;rq[O` YK4rx;L@tL~7^chⅫ3Ȓ+ N޾V j3ZVxW j@ouPDeCdaěWZ: jU_yNmPF0xO؀ؠjSm5twqR_  T'Ej^==6E,(lvb6{ ZCg%Eu+U[DkW,oߒo;LЂhߕA2?U^>=*;ǽdR:DʸjNZ3th|FHC6;N]t9Q|'h/Ę6j#} Qq2KaB*f&K.wes:\KHZtUXIrt )O_P %~17Q0d`5hb4-axTvG 1"R0S챣Rm)Bɜ)٪ ^"gagL\b\c s) \$sZ7m5UX%Hz^S3 h ػ9A1=໇V6$ 'ޯO//?pTqr)_{NfQcSl]5W tH r܆‚yW3/P5_▆c .@Ow?ȶ-!EO_t_Otuݶk&]e3 [M(!xí6\ \DBPzǴ̓|EZUu, c{}s'KEzM(IL5[A P?-܉Ձ>+w˸w^B?^| GeqReR4;UvΘfjJ]>3%uό8O9GxïJɷY3``e $4s>P7WGR4Wê,.Ymѝ'5g-r9wn7\4V~*i(N LI"4BAdLeoO]OS>)Rcƺy0LOu QZ ]a+Sr+n;+ra &<^ }s!rv-Ctɢ7t&;5VʜoP3<VA~2u[)|&bFt`PL˻?y$_5y_@(n!y"4|0t6yI?!j_^ 4F6.5xSO䢰PhϑqTC|8<"<] _U:-0JL:u{)XwW7頂BWY8Rc"+VW6 XF+k"Qu:qגO$@vρ<^Ur*o6 k;Ey Vds |u.$@ٷ5-n5 ƃ2BoM޲PYcbpr1Ҙ:mE=8芭fԃaBzsn CxU8.Yv im}A5(Ƅe;t[5;?^,L_> ;r-H^IDܻ_!HU5Tbkz qi/ȇl QtT\O6xg"aCk17DesC*jC@WD\Q}aQV>n2FlsmOK\<#J]bg?h בUc8|) ."- $<ȿ.G.u }Fg;Ŏ/q}Ʊ (;3j_Z3;ܥGXEFzTَ6Hw' Uq<]׿GH ͪIO% *Jۓx :?VP9ʡUI„a;)prhRVxuw%4(|r 1)) |XA@q@=gs=CpFurCx"23zrxmo`z{HV]N#x~'qNM5`8j限L BQBYSfY Z+hXOZ4?4C\0ft%PMoܯ-2 G b d̙s3`!5/n9@~Aӹxña8L*JwTz% `#>m"l2\ͅ+_T!"8V?dx*k?1!1I&u{P0r*ԑ$- )5a?&@4e4ՌUZα}0"J*!D@ Im[fNS,;gۅZ,Ēo;JL'74$fa;iM;"6^r&Z c?f=Ɨ,$&)+ZQ[1X=TDi,o #WL,0x?Qʖ3BԹd<0\ K+ΚfP׽MB|I68tUm; <|Ay6P)%  Z n4qubguxN8G.:mAC'Ս0YM{1SVnP pH,*O {]rA a3ECBvnc. mr7|_I< 53t]hhTQqd{nF<\OmsXBJezk-|5q )U-ޫ-<|PCmDg5E'{Xj(!ֆڞ#B1ɹ-F'g.& !ä"5u$[1]nNUh焃E6c.xW%aE0;V:%k}y ЄÈ冁,8 w55G(kJN~41_yj'R C+fF6 6oƷ GGBg+]O<V}I.m1DڄSe۵+nun-sT}F^k"? q7˨;CdL5tAܷVpNlhux^߾jkV~.gw觃^uybJUI82|.V& 6W&qZ}',>p v9m{ppf/xKפef`CniP\H؞= 2 GU['T;QHp*/)-44fu*]y7@V٢K㽯tr`j>}~K* QV~1ugNd wMab=)_qp/(wWM-~ !@Em@:2cHc!" .7Ey89~ v%6Gq$ 5+Ɔ軄(uøJ0}8neMF-hk#u8d.`oZ` p{`c،`יuW+r.˺e yR8t]2k/\@M݈it1dsyO>g mx1:T\CIT]ue|նГ~S0lPfS9H2es3"'QB ae U~WvުC1G_ rVxx']]Ғ.(1|Ѹ#0fU,cpiMXL,+C{/dܛcFxw= pwQdW6S}H:.BJSY7΂X22wH,r[ycU`u+H *{-ve7n@,8fThr7z3n+WNeeYpɟ.تOf&Ka=$CpSk/= m\ÞU>ždH$3#w,dL<:eSIvKB/brw0CTr⑟=wTֻaa,߱M Ui9~x<&+,& Uו,/F-+aM:$1Gdn5G>uCEJx"X{ TO5eaZCt Vh"meYAxuzPHF^LFrqb:Bnບ&"CKD8eEcw"Ni)y*ifrɾ c5\RHS#q2v«u;>V1L=L$%XnDЖm,PcYf$ڢe?[C`#.wx !\TΔu-pw Ax@Tl5yqч(WH CnTO3v6AYwPo%.frٕ!F9դcA5NZN$ wK}aS0&|:9|jf(b*o(U=(+"O0 9dΰtziWZm(һ&sa75~V3(ER{֥;~[A2*LI.m.쀍ïQЂmc]!+1CJ{+@>(UY +{T\,mtJ_txtwK,F@_1v4#?'-n?)E?"~rvw!Dxsun5|9nα[w>;AMq2>$8JΖ6/51g&@'V p"._On_Τp}^u :[ ȘAn9IyRkWLS}W_/uCCM?^ouao,3تƓ<//|a WQ1` 9;c2* Q)7F(Z"}XAwhF| #[j[@D|n{INSi:cٰJ82TC~C܍; 8gL_It2]tWR|,$`lw,w¶m Xly3"%aNv? \8z({|H$/8iBiZtኊkR]SF!GKh*5d)9OU q +obvZ^۫XS8)Ջt{~YW9n;9UTCvN:ҍk fi$}~~`Wq (i^+C؍5i#'$YF<7K./6MzOf^p /BB~DŽ/ eECC hfK#\J+bXbB;O 91c 'xzkRI o4Lf0v)l\ApXl$շ"q4nx.)*g\,t}'=P 62"kcA)1H/1ul!nh *{ς#.Rur,]?c5WU X'qbi3LspmU}R ^}C=b/[Ֆ;CJv2H%\[cxNˠ@εYBP\nf.gzVcB.LŠf!ݫ2):tlG?M Y(|چi1 W +eB=^22maA{2d [Vnt#vwЛ:1\ +ӽ &lnۨ4 (|?Pî-DAE-Vp )$#iuxҥ /~3oMTo`GR)eFR^ 7,  "b9|€M}")~' !3OlWSW+bw*q9P{ˍ^O:=i˛l }" ؅{J ~m^ma@ i%PU0T:ZfJ4!A"(;O 摇Jv 7|@G* ^-7 / wY a GRwf oBek+.lsPZ7 }MW")eVi5d}+~Ilnxw3] {Q+c%x5mV8[bݦ2mծڼZlQ -sѪ+'?m>^2="X1m)aН nhK]Qba?-=? Myod\Đb;hxAu7/[ϟ#"87&SI2 aQWi}p   $<~N_W㒋o}lo%b %I&0I_;*h ymf([|p#p  $|dW Rrq20̩_we#`y ò)} iܖ5.+$C}GMGڗo]n꼚b"P߹͸ ]n 3th?.7#(mØm!ljF.]8.}"ʳxB2Rb&/SRʮ^kdK=}-]kRw&X5`i6Ђ3^<1]C^s}}g[A7saږA7wjgB!O>]^ߓq߿فgG‚Yen<fώ|=rx.p1$%%L5g!v6rn' wu^?M$_ /CpVsψiv2 -lw\aYSc~]jcOW͙,L›= ;}4 ߐΩ0,9N.9ۮnnK(1[G_Z/ qs.YXOM[w#hKtaf!6ҼDrc+%/M\b'6nJ Ϩ[S*3̐O.3v}sŲ\:~ewICǖd,fgjφ wP>>jDU>4:UaJM4Zs#R_9=ÝY8Lڒ8:] %X!8]&[xtVRQFdsVAGq54a^869sBH_Q}GaeܐAJ8ӆ1v;JM='W\c$[+';*'}rj9v@*0psuSŝ̸?ɝa"GoN"?k|Ԣ-iƐ7i[xB<2JEދ% \\O!w`W=p&!벧@BS٧Z9طA!U]ZRRcFS~e^,HLQ saM#]cW_sתv=Ebwm1EtDRRGF2giMbTIXwKO,B̫ ncɱGAÏϿ&hAb8Wo}'/ezo C S'DO3`yn u&.n{> ua хco2WXwx$מ7֎7S` 11>(ͻ OX-HrM~AIAlL g;;K\pU3|aJz% s9J޸rŷ@ cJU5%8ಈwR(аKҠ'5й`r7[[dQL&i@@3&J~Z$>/ ,iϘ_L@qk桋 o?s(Y+AYmdП(>#y3J..ֹx;=P˻fu4]<@Q$Ġ.R9 `,Reds#զK"[gpD|XŮ)OT3?x5)ܛ$=MF7*[gCySXYWʼn8SN/ W1aNQh ZTUC&,j ~f9Q97z~H5ߵS|,E}P5aaүt+(ތVY].K\ vQ_?yꩺSMi+;._2d~9Ն{#ջ X+Gij RLZn:Lc; *0"w]Yp^ \f{' }9~N"p &r_N@.2vHOmv4:9F|9(>a ?2lo<H}*|.Spghk1HeUj.t zy',o4n9kznD&\huQX:P}% ȶvd>@ :%:\x=DJWjm=@Sgʛ٥Cl1u}f69M $V = p u> JB^/! b*R&ۅ_C> 7bf9snGwԝW/=vWJ߆D XE69=NK^t3l6sdXx`[b8<ڣc~wv۹HKd2.S=mL,GgT*G ,olŦÀ ?T ){/x*̶Voz_=߆iXl[+~"*Sxl$vhopJ$$XQ2hiz0jӜl\~E^_E|a# njiDo)]/'-5 $;c6G&m–@o>/pGlc549K0AlGfjcV8rh9G;rJ(z /"t Q@^AIZFyutӗR F̥/lƿ̝ aZ@WQ xI,qo=)qF,am/d*U\_˭NH+Z"<4qDr,oLPx CaG%7}syKy-ssA>["\G{.rrEUŶ/5x(xP{ɋBLtAGķTE\oyz$.[1T! Cu}zRz%GYGә'XDLω:ļ{}!,f t@viCC}Hg'R4=^iلV}g: M>Tڒf$b"/ȕad޺ɈQA=OQC^z%#] 2TTJJϗ򈖩wi|l eȚqfY#v/QZu jt%.hPe+ "g['̦{_"n6;F>, Ϲ8c"č gi*6yw/ +с iF UHaʨ 3Y?xc~'1ki"4}2Mf{.J43KoL~)tl8[Q <ﯦURf_T&=7m慁m-5,ۅ[ J5w} s:C:1< եg.52ЌTBQ)B3 F c}{yB"84eWu8h'-`DGxq:8:t:* \K;Aަ# oQU4b1nwPNS$ ;]I* zX,<[ȪOK'A:]'~Ou*zV >/EI L7m47 7+鋳ci87 ^c9wB-(;@>¾4boHa7n/Ch4uAZм>R_gllX5Cԭ+ϖ"Ln6R2ê62tYws'u'ЗU|S4@g FVƐLROZC%=怐L?0 G\q |3ٴq;z ݉ʉa,.a"I/{ŨE5H9|Hp P{7Mt?&: T! 7I-2zi*kSANP$A :COz`/C99t~ qnx 1](Tcún' 7"JiO^CG{xŻZ17v^t9<6EȊXb=M#_$B֬<4-ESݡ4^'$e~_?C/ IDk:0jW5pٲ2 _NZqqq[qC5|󜍠o2dtXoś쓚4)m~k1 'A>6|H^Gn|p.÷Z:6uaz_D(Rhx=ς^w͍}ENۚ̕zB,) Aio{!.rKF&Ê6ɊNp[=b.xKXo.;e  #2}T̵\ŲF/8+5﬍ֿX/#svtnw$rD2) F3iE"%Q$F/t|Ӧ\Ar}_d ~&./&8yecoosUIpT<⴪(7:RH&5{r?zyҖ@7j:kl /G:[m2n5H(/nVh_y2U;=' (ztNs=v#mDyeZ&n1ԔCpG@c /u<\ ƫnH8p3OS\aL%Wgd%&U_1u@r@|{3{A;ÑΒ? ='~E*=ktOSq7"vw"_Q"1[pqL3ĐcM{ߌJw:he3nvx pHʝABhv*x[?}4KmD? {t&R˶9/8{}pމlEkBӵ>@oqq·J:ZA%CtZٹޮJF{ hjo^oWvB]N^E\lsuJ)]ȕO/ u!Ȭ#@|]JYC5oZFYTIQow;A ATF22m0A<'6T}Z*oZQ 4F/&{=,/p*V'wM美oLrdZG M+o)-u9V3+BNd.F9ɰF$Vߴb=[(**p}X0Wn_g`~ߕ_̷9:6?_mIض`Xnhe&=qCqUV:n*K<Gr#i0xabvs 9jO? <ǝNV_)BvM mHVS^HY&)Wl,} H(q䴋 r)))'@;m ^M'v\W5v lH'7ceί}6#VSشOIACuG*zGSukT I8.'e[,kG }Kbt~p*X/OUlG#K9ױ3rw~VDN5EzE)̛X  ?뫸 X#l!C^l2xpiS٩ܠJ>lOl tfA[bryxAb{d!D$ÿ{W kA#D$ ]QQCcC0# ȭ}8K8+mR(##ZL<єS Ř|a`A/E-N 7u9:ȝ\Eէ/GX]EXd$\/.c7A 4}^3~T%؆Ix4n*3*E0Xk\J/qܐNj,0p#'P=j8xJY{`M bIw9;ׅkۡ(kH%9c?s{> >xΘJH8:{R@v3n :+= $O {Nt3r҉sh^ ) ދr2_@t|D(q ߾]]Qf+ JP^`@&[@9Eb%BQ3 J܎52\[N froeX>SJxYU <{Y`܎[-w&&T;W@ZN n EJ,KnPRHDwO4DCA&۬Ge#%3rRyיH:4t?$@oW1CKmDy/gp]$-+Fݒ'Lľ﫰6%r?7j9?7}6'Öq߄&咐Z[D0Zͣ,4WxOn~" ^6vzՍ#ELcp,,R=afoJ8?!YCW5/Z~d 3bG[-E6 ៬\,$4ݝ!e[5Á`?Ŏ@7;QAU+Bf3ǜf$cA]A9]ż^o*cWTȵ(HRI[i2{o,TW!;*iS‚60+R\ܥEXG~8LzqBwwEAV-eb=:[$W83sfi-Nt_Ke#Q4=|(&zx)y,0( Jca<;)I7mA?-{ &")>фb .K?+Y|5(3} 5)DyYjD.4O;\jxbf ^FQ㣷clZx3I}_I 9tfԳ\J3.1$MWbM.VlG~W=GS~ E,Epu89e_*M&'Gλ81?3{vg"fԵuECrp-8wam~i2ܮQ o*ThPo#*peq2,<e6H|WcAOs.0cHD[뾔tx٢9j <+.!ڹ|_*yE #dzA4U?SW;L2A7Z$e`) R?x7M/.Pj_Lta|I-s&A$Hkgr*52@qَ`gyyw `'wgCЬzUm2 ^} պxd: >|E.HtUBW4 fˆƬWL|q `dkh._rm>F@}.] /1 9xcn-qV] ZP,G.R0ofxY㘾ʐ AD1 ijQ1͵)ҫruu4Eɍ$p.,>Zn{ ߱*@ٙZЂ6 } j@pƇ- Zz\N''G@v]8f@Sb_Ǟyů+X Nzq NuU'گFF>!Z# \#93Ǥ5 ռ"H>lؘE v\TmsYלs;nS8%W@;l1RyMrC?=#cW;-SK*a\~RzUH|GZ VPxw4=80=T˜ߊ|/>9B.Wfb !vqL$'lVC&xAUIAlL fL`e"Lz._+ȇ?ԭln+w7*;}Cca@(ExdDR+I3BIpA/=" (z롭?G6ͺMiF5YBpؕ}VWb /TÿSjL.+Jڽ`LB#ªLu "8PͰ$-Ra-S4-<")LfB f;#LTysE6!~o; Uځ~PD(w_5nd-b b_X GeB~[<*y H7_M< @YŽDs'wխ  sn+EW㙃W-zX+o PIni)'_*P(+]u.WIxn@Ds+C¡ZU wt\E4PSz'eW&қ8tz_m4 oB+{kN`EyJ$둈2;!m6]Z );=aE^ yoCiy& !Gx?:*$M^K$?V&,ty 9\dMJC"Z [{~ O/|O֐_:b4p~dgA %0#?K>ᚅl`ZWG]PW=~lcR' n}ryAmOFn}qA`b+kYp|+:rDDgQ:=e9.-?R?wlԾJy1pLcߺ(zĜ!%g@~ƭYY_]agݕ<SGXV.`;= U*m(P"K뽈=ۉsV)fI*,:NMbn;( MSR(SՈS0B pYr]`V;i:TϏ-*{"/BvNEr`)/ %͖DOӐ+ar&2I~;VFk>&](KPxU0>ꛭY'zwd G_oYɶOtVp?E* nESO?H (O40 4,W@4u(ey_d;:- __jpMV=pTf8|n?D(LO(qzv .iM%؟ߩMzZf4h7~)Nէ'JTx[֓—'=`4VdwLn3Ȇt@Zc U=)TA{t;2Alo]$OS#wsģQԷщ7*du;Xe0EVsvY,+>pOp[f5gWr^DpWA5F R҄W+VY6f_ |)9)*0!nԃ9Ւ$O- h5Ąu;}`^*Lkb-IR"NӤ2Zw>49RoM]8Pf:,f*:9Ÿ#Yn<Su1_dpܭUi uuhOr 7A[bZ .T`« ~ʁ/ 5 C 6)u DܵT si[V#ai}_Z8b5j[s#t34k8lLj}Q> :x1Vu_,pXGF]zw.Ufh}{(Y#4[¶a-lsZaI]IHsEtG͐btsI!G9bN"~LeeϯObȝ`~רh"뫽E^E, q,xNNwbҩ̧=/cVӡ%ߢB5ӂ_% )ڸ P~ҫ}۟odDQ{Psvl TY蓘HjX,\ 3r0#z9,6AGPQyĀ,ͧғ$(p'N#*3)bnHLANkgQAu|wH/}Qa6?j`8[@*Q}Ѫdmcbe]'%+p:r ,Al\-|!8@((g|AGqiɾeTQ݂.liUp"1/@%ob<ppECaM֏S[-ը4cyiL{v,>݅ṔN1$ڻL1q1ZqlhXgܻɑ5"]dmE\rpkg +J#mGMMKhs% w@WIZ,@}w4HL}KBB!pp;$ 8*^v@Sad+ #y# Ţ>9&r"&us{v<_Ͻ 1L,n.;꾧(* c*&+P5PIT\. j?ş٣9*=?;p`=q@;'KQu[*Kw=?5KO#(a:sou\_-f*ɖ/j2,t0!Ng$'S(lqN-QVtB V+UUjm٠L^ԈCHezYoxt,DX.$o ɑod<i8:ң"@4~Hђ2⨞=늃oiEr22uT+'=,158b+aԏ/IoV d[}brrByi+JnI % g['Xsnb0H܉YH!0-+EȄSDUQA뉥# r8`[S- z"smt\&PKFFӚ8b?:C7up&UC))91orpE/!xδ%P&(VXVor`>)J$Dp1ɏ!oG ;p4A2?g=8Av97 ;}4ٿ{tj?әk$zO1CwаhZCuDtMЕ GGVf~ ?=yy Z~mKS國6b/' #RV<#d̾`yA"1^ uIKjW\,VDst,5 f+6 VHoV&\$sƊId'8AA_wxV2WB(L5xUQ6LPHHBEmg3|@+Oyi~kk4{ȗC\T4 *Ӛ}Z6 [uct ɠ[+hA^M\૴y x>ߑXӹoTb J~u jqBKCW%֒"؂M fڵBUmwRw,#|_6 Z W{ڍ̎n,D{DAsE,:@m/QXzx"'mz~I1k iL/{+OKgdZ0]pb U)QQHҠT.y 󐌲 =I,<8E@!vzıӾЬ'",x?wP^Q_.T SCt4szpeDȏ ,KZ,/TjۊpXe( pd-Z#yChH_;ʴ+v81t^cz}uIi(6{a)A7%jqY oj _2"k!~L1IHyXjԺ^gcX[JTv#|ʽ((l6sKN{FL' lqɿxv&zEV=q!"M `#D1b]]ē ;ZA;Ҭˀ%wrH/:?'x[0lp-Ћkذv/JWkz1A,vWM3F+FKNŭ -QYHuk~HJuY^WκLA+@ת#tܵ}AhhI~K;A!)pk0ɇSCP|hm33 $%5pVuj=EMNᙫ3U! wܩlu?%}&`_k1VD+8+aH.DJR9iݠe@qVufTqazT\c~WȻĪd4D!:H=>^eLdkbeEea,GWlWCfï –I#p Q)'=19_L3rDolܠQ-^bыTP Niju@,$|J9?C|%TFxqsx ڸvG:UM tK 2оaW^zR-"Sv?ޭSaMn,:yeDQ)p<'.FY l<~z͝CO~93AD[)icaH.oFPL־!Ut$W5:ZU ʖdֲRXDQ^+gg6𿼎հ.Y=Rpuoy4v#&q- qӐ`(ᑨ;p-V{<03DڹuDy,+~"o?we uKKq EUhyYJܯǫ QP50t_P(;5vȐHXLMdM#&Yz@!+<=0y%[jI]@M@ }j)wKc2f/oKe[=v+Φ/ԚnCK">4둥l@Hd ySD1.ŃC`ԬZL(C0i!<mk 8qWMP+֎OA=}?AboT[ӅNFd;5Iti;}V6kb8\Se9x [%4ph?_X.y6WgB0nol K]c4b*&D9HrKT\h@HyT8渄 .wer2:UCR, a35Z"wnUd5n"ޅ2χoNXD ?dcWcYJ|g6b#P~֧R$aXzL'W\\L$TXN ~2R0F̵1Q-Uh8- s4ES9Ipjmyh#y=nNmM 󶉗V9MCV<܎VƤ=Xn>!j+k9ѹtm-Ni ztf@j鸦;J7#o<= 51~ 穪tB6< '?Auػ@ q$2-Gs=rr_MUCh,{eI ֢%ݨi;hO5o,WW%Yj}]Y($5N~MX͉8o=ŞYKO5:ovuB-^[FZHH@S!_M+3g^Ř"} #g0\cĐ_4eEݚ/Qn-Qo.R̜/<2DOngwiKa*((,*|67?8;`u8.B.,imniΣ+wk`=6`Wջ`#GUVz4MșInlk ب+[Ağ&_Ҷ#/sH)3_HkwW9`6g_~;@vM- s;8 y֒ Xfo-Yi4i^,Gwz}$S@V[eP/LW=eU/݁wBv#r{^Ѥ-Z[\h~*t-8䂐R϶J#/.LEsD Xɜ6ة(A8 Mv3f }ADm5X~ɸWE>ɳD6~ aL"|"U}5W+ = S:ǔg3Jm8;_WIKS1?3epחJ=0)c.Vj9hV$ǀlEtCMnYhq6 :y5ϸx(杍#R)?e? @S3r0$/1*CܺY썢H6KptGL0ŏQ;v„o4WV/pI4ʍW띊~Xn~FQn!!AIAlL6h2up<0-Q>s¬8ZP&l n3&Cq]yFQg(3"&?8sɝk{ =CEy|Gl6Dvmh6 >,6bFke+8/ի-^r0œ3g?;xt݄1TX٣M/W2κ ~|( AtI,t -U7Lͷܲx;Kd0{kO0hY} +S66w2W嚞މžyJ_:D.6M7ZlUd6!ء)^`]gs &q tJL4u\ƺXɎ\VAbq,H,?|_ qI '>W]R^zlBtꖧ,l7u(6FL(FCO~H#c-$^η $B>H G" /սvVXタ[35srYь(Oz.CpDK]VYg{Մ|h*UoS3ԅ",m>kNNXSBIpꝉ5ā6}HX`Ӏ4*hXJo֏dݵPfrp#f.jN-_R hqTTvCZp7[ٞ)+%m3RQv)k (WH2 qnc]$ 䪉D*ᄝn̦{m.ipB.o湉zffm?({һ02Vӻǽ 񆆾"-_"` UY.(VϢ. X=fYC_V9y *B\ b~܈[3JHp .,|xd>k;2mx'^` ScѦ-fTjԭ3aA\\YT9_қx{V>_D_EQ4Sx2Ӝ0fb k'%a b<͝Nja w %o1($%ҠGDpK&E,.9Ą0njC7#5.4*D"|+ؐX'$B² U9lE ~\'\<eO`\ ɝ0M/p D/h[Tp+w>@:NB!]v>㧐6@(eoy*X`UxֵbMzlY7Z I)mfd,fMLJL3j͇ÀE6wkl#";핢x øMlP ̪Ookp/^eFp_lsR!`۱N&~۴+NQY̫1hԓo~=?f#6$ϐO@puC@hr%fdzt!W:(- GC}WL,4&l2;Fbކz+ <>{LBcџT @aUn 7br)#e-yMtʽ[+(29 NGk!sɋ59re%(FGkӎ%\|C_|׳50q/zzM-m.)o3`~;fKE:>%KdV@{P[*m[@á ]Ɛ9b5$>á|g @VW{+L}DUe ,Ir2i@ <瘝oT.̈2Ԇ1IW$Y{CMU)`+23dYlԤ1ĝG)U{ {V2QrG/ރE o5(z Hy,K]$bޑj<}E7;YNKlHy'q˥EL_3F 7h#$YeIQSULfu}ӣ K{2P]YHKâhNfsww /=}(7OG 5Ѓb';W^8"|cuW;DRw\ _b<1yA c!:8U%yt1" 6F gII%=};̳|"d>q^ʃgQBkAE-wwѫ[ڋnJ f)уUz? uȯPg6`SOInO(8L/0=?X2RڽlT,VqܿfFr! ߕ;or)4y9sCٖxc* ?ZhDhZ_Tе?1` 4t2hhu`S(5&:fs\=]u3 4vC2LD Yxa&qQ}:hФzCUʪXO7 ,.3LYwx@EBGNɝHQn)łBPI |.K~ы4%'R{u%r*Թv ҄ A"PY8M8rѩqk.(A.| hjϢbp6]mP0}f a헲k ,`>< A)߇VH_`a~|S ])IxR(z53psڌTjftOD"N DskD!t9ACڰqj=ٔM0N\NGgElE<"7yB9{icfp寺m2o[($@Ϳ 24*(s\ޚ>gRm@vרxr4 0۪ #^/ٚա]xDm[pā-t^F_٩?l↪?w"a›pѧ!@U~X6Uc9"'xbc)x|L$rrQчu53,e% qpf9K~x;ް*Hiͪ|:Q_ D_tqɯzw~9hP,d;thьa h *R_ fpSPͪHl9%tl̳CZNqNd,@<%װtIpWt.EV: PH$s(ohfڇ;T8GG2Ǣ;'( 0rIpb}vXGPŹ1m(_ίqΧS"-@m_ei$1%oAA@Xb[,و eG[,)9T wOm.&239mzO UU.z)ۃp);[vTM`,aRXkZY3KgR1uw` .H2TWO~<ѥu>+ȽHVɔW Eh|: V@+ '{_E{q ÿ(@~ ?*\m 'VLKiv&tT. |t@Re<{3ͫ.iӜ=}sdU 9ܚgdFC.%KpAϮw@h5`c^L@2Ua!Z;o poaxFE9̨9.}8, sIOޛ 45;P84XhlxzB@-FRa|]-i=~yD1?+@i42-wz;RBfRkίI/C"̴e Xf'2QKR}2"XRMcYLu\%{.ztIMЌ`jlKWJLQ'NIW˅n&F^ KLiS$>mKEɻEQ&PY#7KD*v1/H;$j$,_y\YA˗/R_CC)ˎϖ_3, ždO0%$dYg0}dY U +}45.O|,?ھ\#(>+}5SE_PB,,'qp&գ*.o" KCZwB|e* x5ʧZGʜfB369 {K*[Ca96CO C=nVQjW\XM g{O * kBDu+d[t? tirw.OM(hk5-ԧXwuף2Y(0cu{T:(r'K}K_1*)XHL{1ۜs͋Af3ON5ýF?>E:^#% uVB,;Po{y ?b$e;R}jsBhW/1|~y,;gOeg].ؒF:Cvisg'!Wb=tpu=uF`9Ki*;?xu ˦s7΄&PRp[)*l6ee=$$)W4ݨ9,ՍYK"8%R%1vxY0סI3!Ǩ=j3&8bbW?(+Wp AIAlL FZZ-+NTo[cDhE-´gFIͳ> ҹ?BZ\nyL|$+l഑Mv`:x}~:VcM6~PNC%TNu@"wQİz0@l$H%Cܰ!bimcQ|J?q sg!Η s?Еy( ˦mQhI@X4OK>Pv{+]\mW9KDœVl=lfC&VG{NCKok+6ȇfFhhR*=6NYd_uy~/ fD2;3! z2Vjq-_է[b/r4My؄.9w#"tX?z 4f$R.\-+Dԟ NvBAViVp[.D+@$`x Y,sEHQڊ!_JΒ5%{jLR m!#:fdNj\pe@n5wvܐ45\I2]vTiBqX@S¿7Nԏ577Yfj&L2AjY \W~ʬkU`]0ER6>c {ZCW`5⚠,*R?QԌ|B4czJ6ZrO0FKX0S/ُ[  3-0%C/,q{C}Cêmnu>4UXhNZ^qPMϡ15*B=a2@m?o:FoJI 9n?Џ!T_`+fG\P|f :2wvRrj7H˒j-W0?^TE3b*,P3W!P `/H~J#፩ Hg䧱ʎCw.ɄVu5bO7.ϑpZz \AYU >?*w?M q\S[\XmX@ i?2B,RNv| ISV |YT,؏~>c| Nt.0īz",5zH`'$ C6dS[@Hu@ "fM90csΈ7ƃ8p—Ⱆ_ kcUR'l|ԓ.LݹQƛD+JKS"_$"WƓX/@A 8A5 !It[ZH4+*džMy17SCm{6P 8xmv&1=+l-xVu7{k2غٷXtWIPcz*]%E(bR)~:nyˡ(ܿi>\^77ӼKf"C q'Dy,z(Lb6#=EF3v VU-mVtaKv ч7[2Lw=G.[EM wkdC!8ZH<*(dSRZHg r k %t8BCiO;KȰ"FX R;pG#"b_V4*j׋SNo$5&R8L]\tpM@HȐ쳂v*lhT~ suIQj3By6!?jN |;<뀛Q)w\U^ !@4~aÙ(^Q 7eVB.]Ad#+;W6b54$> z e x]FgNW Nևy)׬̀!_4_fp_<_!&m6J<4<#T:)y1ӬY4XߑiӍʚC ƟOnXě0Aȸs9 {sBPBf` V6vtߩ~gGB!q(tfٽGGzs2|%Pe]e@7 AQ+ `.[GLtfVn B}~IGc^LG~C}tvp6.j.maֺ-GN ߪKl%eh4akJѿeǪ5>ps66#7Y5&mک>X1EDIt=4j%tߞK-VA۫cq6NoG&RL+-zCY!rp(1~]M|"`LHg_ϧU^ohu35Y2Ԇ6M o՛ma& H|DX[W;kQ-CO 4I*77*r [fY,Ĭ >sST15 H|YH PWuWbL*:)M&"K.+EA_/D”_6]6᥾w`EƾF^YeJfq˰,G*Cr߅2ժU5a ' ,2,v\v/P[G"b~⍘ Y q^V5ҶNW<4d9H_vHn"ˮ;W'δW%K%\.`S>Ow8簣 eZ{Z=vdFkswjtW. E"" )l8Z_a1'?_N^{mXm1;R r ]' w;-k.jE4ᓕr* E8xs6}Z+Gd6epgq;H4!FKSi/Ug.ЭO7eAK82|37fMY{ RGT}Ԛw=~Q$([BǷ|W ΍qS4pۉS`>_Ȃڕ{ce>1y n7j/pÒ}\(Cb7h٫_G)yBoJa 2_p~V[H<?{.#:76 ӹqT=qerFטZkZQFb6I])?!- 1q"H1CNn߄FV&Y ۽~*ofZ9łyI`J x#%ӓ`\*+U rhZj%#qEN׎4"%}zB<Հ#2z- gQ"?A18}K_Ħ%=?f* 0gŁhIN^=^RC{ꦡfSA=#-U_N> #A.ḙB2N;:7Tt<ɋn5?r&IO3*iS\+KɌQ<ϳN!)p6ʿ2GW tHGpL[r떈de>qq=:?Ԏ]x.EpR ?Wv/ z f=b?R7 o"{2BIYOE?L۾#OwV Q;9ōYlMikWn2>\l v#m~NY0څ( GH#F70y|>Sk 4-[ E?Wx\62MCMPВBq\h @)DjzlUq Sڀi+d`isgI<iyh-#lNI M8DgXr36JOI5+@zۜ<_|mU 8ڐeeYiVm>X' JteKF룞X$֌(DF/K-(ʘRgc4KʫB̟Xp$&Huuu_ ,f,{sv|U݆nR/KQT'_Dw /Ļ5d \GV tnmvkz<ЎΜ&97xiݽ֋ԕ=nC-`z&&?pzM=M`˦P1FWiZm~ϖ'bbPtWѤs" oObb;A6YъF V`}h+&)؛aHv2h덎~]iW숆d^ΩP Dߨ\r~ {q)_UW:bZLZd JS4|@X׼7җx!6a5] ]#̰Җ#bM_֚^T [ {h]X5#+ȁH#Mܥ? \ecehZWSN[-2Y|bLie~}jh<.>v2Gr@29j&/#С1;>;|JYkvc,Æ %:5Σ^\v㥫H/u\;ETYdLl"EJ *^t}יy1PwNAE-]ia'4nΌ |$(|iSHkno 6kK౑uh/5~'&A<)trDiʜm. ڣU4QUNv)Jʼng#I.3oq@mv'QI"QXk;5Ǚzrw'\TL® |y_=z HT5SĤgO ~[޼<b$rW8jb&SV k2gʌȠv:At|Ż + TԽS  j}V"NpϤf6ѡБ3qi7H4 JVUf .R:RM vMD0Fv({!E;aev쯽CjC ӳwKt˖QۡSЪOw-/I \I=7lrOlJe)I EDǟxӢ*PRv#EAڐDՇ@=.;^J?=)e$5Od3^3@`6{E?!+$ls@vj3[L!B=uu;W Kgb-VmQG۩xnBQie(9gg!.5Ԝl?15n4qφ鴧0&[WE:S*U4oLdع$GFkd9{dD01Y8trr{Io' ,)u@( 49û1ᰖG_PhHIwh(1# wS)%J MhBG}st˃6٤͠Jo2jRҷ2R%ӠzwTb e]q,4Z3}s[vͫ m7EN,lİ7YUE a75`*L۪.4!kݒ3u7V@.nrFۼɵvSB|KIHy$*Mʜ&_jWHq4Ď׃[)e{S76܆dH\AG:O[¥wZN]Pd\y A^xK\׮1i V)= s=e_{̮lVS5}'.ihn3LrPTYwsDmhSxvBZD9DxƉ4Xv] M9=ڲrFZ>AJB n\m;@אv/IT8bŨaە_ՙ?5I`;Y9G<nsj!C (. [ w%mZ.ksj ^C[Q a:D_Ӟ^9MPs-t DqmQBB@*Z5itW\qb _;A*LaH3ӑ"ԕ2Bq8r˜ +ИءY2-ݱ1ZC g4>5W@ۣv'Aw 0Y_z9928K涆,*AK./ݎ6g" N`XI%)\q;цHr*c\zc^|$\Z6FzsK, KTgU9[:vl'A6R/saS}Zv"r `@ۙe˒'*LXF7pі YqkN@{=Is$No8ҡ\ x:5KΝA}Xrur oSp$U^z:?V6 Yt*(tJ4\e׆^<Q6Ox_bU+\/{qc|VP5)Ņ$EZoʕB˓^u[ W{PuZ5 7rVyw;s=0 <&bwٖk)`q oPg߇1YZ%9NYVBJy]!5v7 =9+I*-Mل6/PFJw~s3np{ p0-e>=bqHp\ bP>u࿉a(Q!hy%ۥ%j" j](fyd855#M )H}iѬ+U綷|dI o P"Rs"=9xQdW^y&T,uf:Q~Fid~JbEnVCme#;`p9?W9"ua%H/#ȜԜ ycQh@#~*b.$)ׂ$_?.tjK1,twTH5CgC|xuhBI50zu<ۨX,oDԞV*-#K5|k!#u@@cݓ & hG} e[G..#&|cf؈L/4*P a~k6E佳U` 3>qq2Z\ Ő,\IVƥ^`H-Ġ9.oqDE(7FzOM-l{"{=RaZwl%o@ܗ8Z'`j52S*E#D@8is^VIX @VWA^8:'Y%p|һ1ϗlI9Z"g!O1*L`SPs~#`I`m"GpelSpP@^B2 k(QLEjGT}CG[$MH=in0d!s$s-:P eC&9NЦ_1;AI~n')A35Λvp4IQ%^{80f #r6-7V{"Pj@9WA=KpXRQ71NP?:h~u|tזW\UW ΣB<=@OzP tN -$" tY3L?hf֨P*by HWޛKsqs.yIɚ>apLk`J_mO9uY pd' Õ~~.Ot4Ovw)EC"NHX, cLj]|$}+[9ܪt+0t7xq_}s FoAsz{š B| a [n щF֕K!q֎ 3ϰb*y.faS<'Vɹ$@89vއ i)HL"̄*:6O1#MfPnޛ}˟HD(@rYO+zʿJ)}3fbGB{:ZCN(ݔ_(UƢ%uQhG4SV+~At_i!e=Ybh$=?ݯ76Y~B8< /ڠm:՘o*oK}Dž~Xَ)\L1̗:maBC5i(x<8 ErF7Ni`r0?j{3(3߾St7VFH3Edfάp4F9t:6nuq>R9Ffj65_sj>jGRJӁx_<s+̯խiukBlc0Nϸ34O$SO+!xP>mG];GC[(|L! =Uzɼ~uħw%h=KWptxh-b)M,9.=#A,b.Q gذրpŠGfe=(8PmBmފrh#0N9ƅ14N7>^,ɸonݫcy0FԄwqEnN%7-B,xE{@ڨ ڧI^'ñat>&xcV㙒y5M-,,G~an>kVAhSKGCU)3N܈('Q-fjTa]5LE}B[1̿3$FJK?>BNi(< ܧ$@EU"薹WPלh(T_69Ws]mLۣ̍110ZqaKM㳗fdQe^U99WC7EWt+³Pͻ/s!=68%DWһ] yHG8o8Cݢ48'WIMdс})t~ߩ:j|e軺=|..DU@O]í2)EX(^dpbtm\z86Ck}z%tϪWXJIaȹ}݈`B|0oLn1:AH>r듔Oa~#W5m}(nBd"AMmqyN o'N48MK7sߟmmaD4 &sK:b0Xc YaPW?‰2#eeH։e)ЇMǺ ld[F5y𡓋Vj%!!k6*A6??-:"-XJF^ysHefb8LYKss>f^,qu؈U%Ƥۛ?/RG:v/4GРM #ԯ۴AUN܇J0n3,h4UmPVTu Xa@ ޏ;0Kb 7c7> GBΟL;I~ :p^zUi0;4o9/ntSVi<- buaNaŻ/1'`&682L!}IBl 1i@o2և@Y$՛Pr?9ޑPn$ld ;on<.LkY">jWUn;R3Vɩ_'"F{g}WCL eB0]W` wG?3Q;JKV ~B 0GaY3kt*[uk6XA֧h±]> VEzGٓߤ[,^r+:Q̹NB@QP.KК=JzPLaȅ}YljD#ʽQBzHZ/b/[ğj*Bau[ļ͢g%bA(3!jnSJIfh- H"_`Pť"p?;. RtiQE wljWrޞVA:NUOxtpYްcA<-wN3?t=C[g`xa!jMG9Z5 +7sUm;u 4c-{VVuxG!en٨4Xb(R ڋ酎RW_l.Ĭ,gBBAuHx8kZGC/r?2 Pw rzNUzLq7 럏[uUjDO$/[#R/bK; Cu/k8wA#I Re0/)I+A~}o,]׌OCrJr;QIIqeߦ|jŵⰄwbj%@H(0>Fb3hУ -qzpPmIމ6Dی0Fn)\"ܤЬa/LV&܇H]lK56l)xP:?}ۘU¢FCb Evt 13:|nDs" |9VDjQz}qdEűP[C1X4npG͐/m<8XOyDLP7o֫D ]< l=J<)hq&lQ"|"*Attla+Ԣؗ*MNLA o)ې9JȐ}Ri>|_R0\R|Eh.?WR(b/fԱӜx<_]t_Ì\n1TA5k)_+ZeFҔ6ɩđW孈sTœXS>yG9EzqC7DKvg Lgq-~+׬UA+D1NXP&(5~K`h2dؼ6k hD-U˄FPj+615+xK}<Qܴ%Ai׊,?ΔE#e}y a_2Wk,#4^N[{@9GBVXs]5G=>GTP!ߊ:9]Eܭ%@է~ 7qRkC4׊&&F|K% ( my+֗ob{(I9T"+Tfp8ݼL՘;:AU5|ըb0Zw+<$2if|"\DdN>B TYv{R;)$Q)\}c :tFd`H3lU/[yEͳLYugjs[J!/ߣ(׭7-(hcPw5>MшWEO͏u!TPglWI9Rnq"Pȹ9oVSQ5d+VC< CS ѫ@_7'> l0L/"yHۉ0+!‚Z:oN,a8\ǢsF"fgs.c' mP "RS)0%!sO+gIK-5vcLq >Y Yf_Cj!ug%|d¼JfF6=N$Mᓐ:Z1̖\%V`KN ^ǹSZ3lۖ).4fSߨ['fx䱏:o?֐. ˀdgc=w+*=a 7H,J}p|\hr$l0mu5U>!Ljt3_;cЌSPنQXxOUp\{d7~lp=0!X MC9^g*Vb;1L_(,-q*^c!jOX.ҧ[_Vb}s{Iʓ#ie;by0$|{X8[^iZX7S,*DW~TX?4@Gpc'5b)T[f3Es/?ryʇc){mNʋ(WC3bFc箞EIcn\sPNdht"Ճ`rǥAl{׺&qow>c- Xt-xGk+QmBxgּ4u6MkeHF +_|q(r-҄%P0I )Y /}bJ]'P^Wsӊ=1.#a-L܅Sbߊr-@Ѷ )r|ݔ7Pem Jc4h@¾vAPTP^ޡGb@#j|3E #*yI_Ι,R\ _@B7(!+G{*X?V:oK"iHC[WUP:b3Lm4a#[OUvŸIY]mqS3jI}Y4 [C-E"A̗ZT>ݚdk3WYpiR8&u(s ,^"Uxz}glv'UpoTƬ(Jt?e6xүd(=U7 AAE4MVտDFZ;,E=Ѳ k*AF*$c l/a/ngno53GP"1mֲDz ě){.flX`w3zVx32YqߵUC(BM0MM/> 2aMkpdQ (1ɷpDŽ4|U,ݹ(rH}qt8:&V(Sq/r2u uw"=ܙO.|y )+/n ӴJWVBaO@/?2!4{{,JRRUP9u/V"gb557ֈt2Qh cXW҈-Y/{}K'qɪcܲ^z@9yzh'߳_S7-:8Sq9 αsQ\E1܊:1r[F f!M|C2vmQl7.M\;DP)#n4_cDl򻄎X…buoDA7;`y(uQa(p"akFOlۮו|%(B0^2z~; p1AS,45fteʚ19M^IK:<x; Y3ou^I7?T0Zb3PUQ WIU3CN2.vR 9衶zyfLaQ6dout{Rz{iIXjaKﰇD G/l.9/-m[4lU1UtQ&bC'@>\wQyLB<3M<(EE[xW2kC_5r`*Hql "Ðd3WܪpCXM!H? 9Na9I)W٦oM&WXLrŶ2`tWU̘wny?0N.ٻm`Bc HaS׸럤`5d*"?DKЛ5B|aE#b7TxFG' %4C@"ѺGT$? R 2¼Mb\'"gYO4Hdv /vAtM{fో70l~t^p-7er# RF$:҆j~F%tL$Tfv=IU4'>U4;_k4Hi g%Zqq0 YETRQ 7USiqi gVswC/9٣9+qIcOq&k+NO/ uL+T"2-B>% n,fhլP^XWwEƛ1< kUOB K$ZDXS9*7=q"0Y~j7p^ӼWơf}yI|U9F dSz+_n_تLZMH7X4̧RW`~婁-w܍,CO\Kg8聮0OdyJ4f2c/t#M\ cB-/kEĎ3LY qA[C;l<[y.,m28V27~y_{mCGīż6 ^\.I46يRsw 8 Tͮ-xR<Ӄ/Ԁ Wj IʒI{?g`8W^sjMM o-,B 2Gdw ȧ0|Hg A =ܽ{ܕbvl?/-Ha뚁v@[(EeAfIAhL"ޭG.j)~o Ő31sNd AD/pգBY9~L(H 4ҼZ+b{`3 v94 ,!D> w{eGZB%xPF`E56@>Px RX,tHboax+=<,++][y2mlI #}2;zLuQ+GY-GcРo< sQ' 2üG|0V6a:$)`S\,]3%ޘQD}ukegJIb9*&E0:s"Y2^!S"͒MMճ?}3^䨝g~$DfA\+)ڨ8hguwB8:oLa$v0:lVtFB$F6Fv߈q>ayU/@jչY.7!"!v l׹i^.s"Y ~!zş$YT78:Cs}ߠ]8^q=>#-Pn)WmeF@sGJ5zHP[ʭG[<) /P+tfYxu|9`PSQE'*].sG@zMwm٢B [78ka;lΠlSDg[,%峁<&Dy#"4)8|OU!Hsq7ݧE6@B*;?6!|LL%7kc)M]tq3q&m};TH~YFK5D^ʅ @PN(-( QԱ3N/< sV܇sMUFd c.O>`RF'!kT@C)  ^ yp\|q43,`1"Mv) &13 ?0jj`ٳq2D,NjEoLiAw~wg{Cϫz_'!Bm.٬lZ-w3`VݺHy Q\mLp/ϔ ʷ>7oitY =-Vɚ>kF넎>bd} XTnCkj&VV&e١&GjRY}d[<Xs(bp7g+3gh[[n:,X\{##M WbKNj#e0dHͦso@sTZ1&x^ᘡ=rY&#`%D/HБC:H+T=r0~d|gs6K^e 1c!WbccW8ł\Z| 0srULb 傗Q(7kY?XXF']0e7RA1 `=0Q>$j xPv Jt:{" J&Ųe鸔–bF^yySsfeX[`9:M' A/ʿ@ߓ?1X2qSqȭBCm푧 H& YhAb͝*0%df$nA՝6PwKJ''¤߳ᩌ aHHs!M %/\UR˦;xnݬv %|nMƐ\tjύrd%ٵ<(#>=[.0r]WJ [`}.q1z>~Ƈ74`OV 24-MRh3]լת =3+>E1o[du<:m|H.ObVn8Er sښ (?kKA6;PX8A ^ 8&>Wmٲj86Y“&*|AW?>*#@zD1s7~oֿ %[=GuE* (l巊l+K6ӟ|Qݤ y2G:&fvcV%Z4hP`ф 寙h5on"vDfwz7lX,S*71+*`4?7e~1[Z# 4PמPf e7bJo]VA2bXC;=O֯yXPayZ`/\:mJ jd]^I0g{efS'6E|2Czrw^η(!2ژR& Y&E(]Kq9JzrZ"l/煣p<•.KQyݯ.9wY01رqS!sXmX&9 `٣x^[ l쓔JM>ڸ)'诋~2_^7urJ+NF)+nEg# jGh,bqoJBi+%uu3թQNfk2L/%>nu6,4Ԧr$}5F$21W[[~,˟0e-nv7G ?yiz9.rW9IiVd! *ҒI!~1 :23<ώ/Yq%wvߏSRpBb ;pv9m4nDevƿ.T|aKyU&gT$j`I_ Թob?on=PG#SzBUI9nm/0}V İg_a(2Gn_tF4+ Ts!p>%>gJO|dp{|ML{_.GVH_s(v€@yT뵏{cټ'a@z9MaU``_H_=i"AE-YwmǰnB=Zו[(5RI~cUƛ<(~R܆d6/dARe#B]a6<{l[gc|QC8f|Yk_z&3$N)Q~)59,a7: x%8_muv.'}N[pZQi٪-ebOpŢk|ɍn}f_ (`󬑦`]ouo=*'E1k(#/|٩;J~Ŧܲ[7:y *2YE5~OH2-^_|8AU!:Z"0@l 6"%s~4!n ϧߍ!j? _T5Gdx$6P*X;f=+kFHn隅?eLj hePWݹSl+; e.v /dQM"M@ldkAT3ekAqehp8~)PWt6U٩XcV,R>2ؗ9\HZ5$ء2ꅫnB^2Y-1>KV&/6]u꿏l-pNk9am\&N*S%3bLZFw1:^_zWZ=̧(<!ض% wG[L^v*_|E(F`<Բ#f[dvVh 8%nAdBob&W6I>r@LLE-Gպ>EQEfV%3-)bkz Q $[%6*;v5詯%pӃM` ^Un^k9ST>J$9`!C[㮘jm's,(sFFb}> G]m  |gy'pBR}7Ķ78Ͽ}3}bS^cO3R5KxuldI=b.q =;'ڬIjT6N;< %i+uaRCzp?N[@ E{(7! *b*ذY_r<X/cƄo`?%Afv$ ݎ.k*egI!+*{bc8ljjH:~[ZBqߌSHӫtz! `] !(\:z"g.Z"h$0 S6~;0-;?GKI%.vZ0DkaRZ(&dEou~2TxRe4'ɻkn+a^uskDL BT?T8۔O<|0y,5=tN?+7NZ%](L] J= y?i}S.p{减ywa]mK?h`G]8`giRϷ EC\z=gն3fǖ0 L+x;aD;] m\P̑׿% E#vFHQT-ZП#pNp@`(M'~5+5Iݬfz/6z\6R"QԆ.˰FIzA]TV9dF]Æ*ϟs[I(v+ⳭuXpkm$zJtu=<=HϊuV=K/(uT]Ȃd~*&&S{RIGhB,|vG8r-_r˶v}Nyٕ9]8s8Et$W!|!oP8CT5oMKyaՉje K R( ˷WlDc6%vRŘW;ޛ@Qi[~aJw~4n'fhzYw5C~B B$ 7U{=CT.7U%/#:+d(6XV3AQj-ßY4:fi^;~Ă< No{4E93c#gk<q5'?<~ I%@5\-za^+K&$ġ̎w(WʜtVZEnhfP&at.G)*Z{R aa2FnD1]d4MvԻ(IG0ڨhnlj"̳@C6w4b \im x0y3GOK&sSˮoWe':]:F{[bV6vZ4DZцlܧD)%]pܨ .iqf⏉ά-L ,Nʸ_"+Fs> 6[r)V2_wro6֥mDA*90MQb>AJg-,+cy1 Qsf[S;U*[lqÜ)>C8n0swo*R 8^2L|<*M>hW4O(QJ9uGvbēկ׺+.47 5J+)_ӳ׾%]Qb\^k@b FHv'` K4?Kjʹ.9U!jzy,>m'QJqj AZEOͲ:ɯW5I6x;-Z*㢝ܛyb0Y b\wKT֓:Wl.JQ[vk8@_ V ;}ln4J$, 8{zZ,>O>{]M#<ޕ_ = v`2=9 V Q=e jn`K`EE_POS @ew1U̖)Hlp :#XxEX1[&~m*mfkQur9%T"E:fu߸Jd6#e*-{u rKgH={8(HAԹqc*% [ 9|j7A2?*sMz̶iLNgMov^wA:浥@:%~#w3@i(2+PFU< P瓫it:56mӂ KFX"'v+ AFOzS} G]:o}0I؞[|~H5[*}ulDFY* EI]eH =X2t5-G!ܖr~gH# R5rPǞ3F Jބ90d劏2YL?Fm֍nXաIqؚ`k2Ҫ5cl-qڄu#Y`͛Sn͟O2v0aLpфyZY",ѧ@ >;mޕ1N+RGTgEEV$&;8y[sO~x}:)[%,jua@H>`"c S5 g4R&%3e Fyl{|-R]=.^  զD WhcރU7|4kŲ3ehZg&3( g 1@5S cabZ N,NN:S6>FD5EP_Zmrj>ꋲD)=_J&sdH Y?K^pU :Lr 0Oﶙ2hIW\_Io5ܹ!e*Z]ΣNӾP7.958$SW`⚾lUւ/ݜ[Ipgb0op 6lTqAE2gKʹ4>E>,NZu^ENw€1 ,Bp"ʲX {XfBI8g_n-n/EC1|) ˺(bt!{O|wN&k; ]@OZP$Fyvma, .;|jnVEYy md(yl4swS SK?јDMߗM^Zq1{O7-ӳmCᥧ+_SUE R`'y,@Hj(K$=7^K9]g "8#h.=X?PXsGЃGň5n&:S#n2IKF+f-phNۂod` ιÙ4W+C$ zTAԼ8ENFH>2ľ\Nۘ j_6HU@<}ΞUQ #iB[k`Ӷ zS> |wMXF :#ݡykd( {57k3s{LCw0MJ$DPQ_Rĝn1;7kM- \ů/c Rd PqPZqY2prOu(sT 3~<J[[;y<"qj;M0D/쳂zv8&E,(eGu]rOd4r~kHAE/Q}_̒DYT@c(Tᶽ ]=j;MQz?gnGhQYɫm[F$R`FRވ,@/ܰv#:0DAhQMevHiK~EDVa!2yS^Ks'PhK YwZSIhZ%]c[]vE&H6̊Sly,<|ܻg<@_[:[j3|Z[ӃtmD_\{X3 Oڍn#\o!I*tLxю6|, .?qq& G|/E;7ொng48 w!8*+s'CQQ3y'ϐ]Swk@[u&m4H GB~ luqk-mvd,[\ם6xtWBt9HaJ_9P#.c\7躼L?0 0<Gt.϶ PD46tE3rR9SS}-YvlU.jr8*ԩT}Jqo!o-3j+2ZV}C!ʅ3P7MDP9ȄQHC G󾶏@uiA G&wqv F7NW2N_;!~LL)-YPYh ;X1!fÃt Ij*ڛz`rw{!&:(2W»[F66>͒}!{Ͱ8J=p; R zN>^kr8WDtȚ"Sk2a^,)<9E+GN'y2'J*iusV: _*Y"v!Y[r9娶[C Ryyx) z=$Nt Y mr,zGW?voVU$)5ƂPr ^%5m决RŁ}PYqJiؒǐ L)/͠1&nӕav ;2`i>talZMDS cҏ#ntHXq?jOEF~ݪVCv|km;_Q3ۺ;IEjvɟ𢢘]\Iv* %U&#fcX @ݰ~sZ Ff*?U4`@\tWO÷  2aC+6T*QO lHavמ=[}݃m$.{2X!%.0LGshbJMOk:$ _!.vKXӺ_gF֩k8 t#fR[`բ)J;i5fϬZ>y6m(Pa'3(KX׿Q4W4ቺ$DRȟ7NbVqn4" Cj-ъ+uPȜ7!d$fBFK7,7':v^ )Fk.? }#S3t8;ڙoUd_:ب״6 4GN.gw0i{iA3z0vMft6Sy}'v!)t2B R`B^V{Pd͕kauk&IY%%3oS3}?ô|Ӽ#Vna%T(9wыpP?ǂ M)inbuk.gK޲) aU#jWWVݽۇB['~bj:mv%ɕR>&PPy~Ԕ7qn껬 st&[3ECǨ//5Ҷum_+~9E#{1x5]@ fLPBO߿á(Qi'4CqN#s/@e 7ukilJo{!*20ZPv[́:"f{bkہ2K%g-J-Ƅ!Y Ns`h=w[J˥̈́Nz>xT.=: .m町z2Kq.DZc2%Ql"j1'NdbJțFwiv$?;ʱT(XZSzm>߹ߜ81oN‘rKِkXUuM/+N;b{1uBStX; ^^"0 g,'OyWY`a3$![q5'(; X?$vc hn(FJK I֍tT(.Nkr\hCjuC?ᤰEoU͸*C8b~)%7;7+;Fd \ڪ$Ƥ9Lޞ ?J _/Ը1xwN? 1gfZd4drKYKO3%H:3@;KGaj#t 1!ن'cr"e7zq#~T0 |)3t u5_`iv1@tLx)ن\4P+7D#غJ}2%S3º Iy|:CF.> ̆xS*xf9*e^p"RJl|lS$`y CP&:e yؚ(ve' e퇌Y6{|g+j`CE1rڽ#v3P!^>8̙[X@}(|8ȅ36櫝L YƣJ7^٬?4_ձ^o\j Y$ԵSe~Mv*>1/̓M*6J_ߴt}@,=vmZG4pD3!|;_ 7F"8//"ZhF)Lƒ%i;\EX>z5ͨN_u<=頦ckWB-oɓi*Eǭ5n; .r!ߋHo$kI 6shn%]c|W׷-${^Ka&-)Sʚ1E$Y:'$]7P_^i;: *, sgͪ\Xfi)v9TzdRRSX0^eYv1:mIqIvX "!X𦥌]/02a>PKhuhI`a5]ΘDY݉^}clDʦ@[̥ݤ .gs vݰ}:''&-ӠYxs"vYaET³;K]8:%J讟VSTdƸ;-et#Edg?CxbIhL56;9Ni%O3VYtL~K8QPf:P`~GaFoPJ_%+,欫զ[X23`:˖0O9/tzc*ڏ[hܲY[]$!RQouvQCw/8Τ=>rt|06^>niJ}D[)A_BzT^.ft{tβ`x5j k{cgoL> UbRWf;j^5\AB d#\-#{^t,T{kRps,E9 Ľb7eElYX@Ѳ2/јm&\rb% nhUy0mde;>z@+ɰy/](ba>x{A{YV{fwP!T]zH7LTTk'3d ]&fUj/ 7hB5oeħ0'*0W%M23tA4~coޛ78ʾQ=i_$ɱ{OJ TUY<=\݌m%+~/vGRVgJc_L =vdLr/aa)?ay}(uկ+M[/hCzw5v=%=j_] m1=E^?>͋YøS㡰<\Ffݪ0=z%4W1+35LcG9  ^i _'ƷW|Tiuv[%fpOKgrDoYqe\飮!Xy-N [pv1'> HXis7Ǡ+ c+a9%v1x ‚ %_D[XЋ rIuTO3FZoր:x-iAA麕qę'0C*9it4?2x@ &w&YF3S|2uEІM)J y[VO(GV0p `OAYA;,dX;іЙz=BI n(K$)Q@ߧLjONdK/LCߜJﺸ} ?k{6] $a#+a9bS0d12#,Y9>L̶x *D=.kiھ.|kCq6CNBAh}~1yLnp>'shsPo͌1hzRh#3ᛈBDCB5u*hveϜWs/e)1keŒjYV0ۦwtl.6y}mB$$b兠^L" 2<>4uB;MeLשɏul.$|/f:gY&1EE9=A%ehzm)֥.EM2k es|*Sx?#l uPFl;F,HpT!ӁT}O:B<4JXiSE)辒C9k:6$jkjNqSNPiu1-'RרbT+'t+$C!&*^9T. oFV\/t+*8f*c5r}00jJNTL8RE q>}( Q%?9rA E/PoG!1y{^`;Kc]LdmK蘭G:v#jg$FPjlp8׀&KunlP;)Hl.0kh${ߵ|w+#f9[TB-fX| *9h6:Z|tNkQD}h an$" z4g^MgTmwh RĽ#&' Ep5JB8.V7x:d^$qv tP,Wl(oeUSꃆJ AƸ{+}. :[\2xQ:|OsϷo1@}[>rnQ!1&_pEK* edp:SFzy_ ^( +o]N tm馧+15wx w`6^YPp>-˅eN {Wu BEXbCOkey,J8̀ £tBO2}e_xV:10rj}bM olll̸ l?w 9̌9/@0QewaR) ¼wG*&UyB4kv"sqx8EгO`=NJ&=@a ;?cKr1U?tnYQDLC3<'kY86|]!!iz~Î7gJLʀ#Wjrxwn txL !GѪ0-z8d}+pA ,mDQ.VM,OH~S/z`Ru睐'n*aȉʤP68p8[߲zTG8Ɋ!q 0/{R nYoQN>HKPWI9o*zع@#h_QU'jM͎Äw9 t޴=H{ۊSIA A-n,&> y ޿ y/][chA-Q{19bV8uGˋpWc! NǥW3COEX.&K'k,_Q߷0kwR7S!2,8a'qy$ʟ8ͤUU.9snчlf3_{a0!g(f~,bWJP1ާ3 \@?y {(C1nj],>TymW-mQ]>?&=0)SG !a.xՏUv!J'8p()%}TZd| JO1Kc('FU|`&0݋A.7rn[l9K=)`lT_u"#3N "_ Su20 IbRG2/ΎCR͊3&LT{ L>$n|0iӆIn?s P#u&z-.v/U]3y~ѿtb$ GnC NXs gů ɛN\X[ `if\E|9~%&; #'DN^@6fzeKAD7!/\W=S$A3N+1}`lk8.6+r(gAIԃ'x&g8=~\xCp'j8J)'KPh|@Ur|L2hSYJFq0'84~p5t2!BM>`CY! wCx8t#*KaNOCX]w1CrB{&IPmoHAl5OZؽh%˅=:*`kv¬v5}sV(c{ߩ-jWXtTVW:؁TU_̪@#ZY\/ 6o ӇK5k İAx\Hh5|,HSΠ_X"% 5'mнpoQ=>S~?q)ܵ.r2ۮή x552* T@Co. 9&0u1!,kTrtIQq@ֻ'0A62_9fvNN|Rl)'3[] Uct{~dhvCzjrŻ!k#cowWj .7bQDHd0S{)6.YtqVuԀ57d2>*Z|6[n&K J>/6;v0|"N4,¢uz2 a&j=MU-b2@/p9ٹO]Aix*t A#˯ iz6oJsߋfI҈PLZN)Eeo_*'H)6ǿ&._В?o EtHA+φEK3+XJ*ЉCу ^:<Z{G*nc2upbk;  Ra0YA2IAlL  1q (6UuoSٚCDj7Wo ~ZL)A@!!v?gtHέϢ%"3gXO'L8釳߻zA>yi|j\l__;< q+y˻:Ե\hhF  NL@0`} {f]7:ЎXagGwdbJkGY񯎁 hzV"y7""(2`"JQ-f;P V7>YO:->.+vn8˅]O*ȗAz?ReQْj;U‘n_(vxZ׆,"1w(/9ȯK7T]I͗v^g4OZT;S%(8T -9t[)D$M2]W)6guK8w|#vgMӓ7vWiS08棏0ڬ|HX$ VC;1"`~Zmpȷ TL( L92j[.:!n=XFq|Y'takk#5mno9`vIr7:dhk'؀E3JKm[ 6`G[ zi9sa0ˀe3vHteG[&JU~^x+Y~ w ?P(O5]K¿#;)_Y5UA@;D]"FۂhSH ^y7 0~I +Jd0 :5#G՟s<@bN%}Em"?!2W]M"1 lU^I@٫'X n >gJW;^9vdpVc #jmiܺ {Vx:/} M ?~i9J )& FZ8mW X:όn'"^dG%R ˫qJ-yqKAlG1X6AoT|\=NCB吀'_4Z pʌ5ܔ̚q` 鯱[e#Iy[+EUݜSdpKH'-p&YS͂ж4"iVG 1Tݺ`}X,_6"V^5k3dRusܡ*ۘ0oizjA^4tXWf>p6Gt8Gl³>H&[OL"e;邫=L Hi`pMGiē,T$EyY[[?L_ˈqXY^5O|&Zv 䁡(اY Ot[O0}!/n(k8a?!e䳍IA)|o ZƦc.ߋ#5\C BmrQ K ~z@Gvwcx"Yw}xmZ SVʥC%{R'@) “0{#i7VU;A9r4*5N6]Q8TCaoʒT0w,B̿nT*}i9KcQUX< hidۯo4{w`l~z)Os3끼@4WKa1([Sa`ŷTu.xr) DשV ":6x*w<C#<4ui֤G-Ff]UcPR8k+;c$貅؆IcA[/AH2Kh:S`up9u8{krZ]adgīaFS g}0C)/d0l3b*vA%*&qv>ߋ2s\n|? ml01,^|E.V!_U)3qRg &?b+OV?v }hS[Q#fGaUݱAB{2/|efɉ۪OEـ|+u`9dM0:ilr6IvAPԸ\bj WTJ| )6 LBZyH7Sc Zu/pմ+7Rw^aXN_u,NRmꮆ, zm[""P'/3~gqMwԊ#H:2dk)"I)6ښ:y| Zܧ*_+:W_oRfYhl]%P9ND1b*yA47 Z5u?_*ou*.«He%:KƒJ۳)R GeͯeHRI54b\G W׫M kY)<ͤl]Ao5vi%?ID9I4 wSS. ?}2}&'N/)jijYn"d?Qmml?Ch.`- Pv9uOFig5Jc}3@AzbW u.JG\鰋635F##⧆  o`l:\뀁Ioj 7`o1>_L)w5L I)ϟ8 cTiӑmǁ=H13D)mGP;6jzңhr%0GFMye.Hj6mϚΖ,l&l ԁNƑ-Wn6ds_0+/0{Dns`^^  O'C N_ZPPQMg?E:qмlO!~]qwER>QUՒ)y*֬.~q]^iE-/Ji`j2AmE2Օfu-E$ߘD-ˡԘ n1Pwd Ʊr\!=USm}} !Qo-!nJH6- 飻Я(Th$JcI)~nq2UhG#s4[i"WZ2SIKC6YE!+ʴ+k 츖(ϒHAĩ4hM՚n Ea}.ư:0$;3.f>:W䌲Ϻ7ϔ%Tnӄ 'S\?mEz9&=DަNO֨قTHܮ ;C0mS4%t |8Idy61D^I=nJ+l/zhRB۶b!Q5'/6[~2'EՔ+W-rlFTR_&r C yWٖ4n=a-cUv3.>w30R8dm rb^&8? @+g\K òS՗&[0AΙB-/(/"oV=xaNQ~xi*]ŻXT /siZCC.t%'|Oȷ"}> |30AAPE-Prre앎N\473D&Ldn\-tΘ=m3s2qm11>|_Ո;6k+qrfw=P vGp6P^.H:{S70g#4$)М(eS-UІ#Z}wn#Hl柚(tvĒ3?L tPw4%Μ˗ jOwOI0T-G  v2/:n%9LO&hwu{h U8 vVEtJ~R3bjw:iE}ep6FsZa7A0:!On7J^%?fu&"{gfsq[W|W08<40:\+%~h#$)&6/ƟGa322$oq) dk*Hj(xB$>zػ]$9Oe=X%%x-/*^gi,)T[g&m#[`t-؄لEKz$xlD)h,V<<6wƁ8uwzCp(wf ^;ѧRUaȸ]OqΰIYaxOGC"9w pB ٙ"&~:Fg / i]. /&"rؽI.5,WIP%D$w)o! ǪoR&5RcH+#B֍֞-4T GYV})ݥB̾ӎ"p'#Tp )Fۃ5qjWUl:y#4- oQlb?8MVS;*_mخON2BS7eG Â/˩-<_ɑafPY7(nԦ` DEC \LWv͚#ZRar;bI5gO&Gii3^i =?Wc"W+؃4J㻼N)g&#z%N~ɭ.{IуbD^f3&G :5ޓQi*jjwN5%h߂Bu_Z,XgBHOi}%VJxdQv&fOk3guW;׿YK',Lh>>_02d]r4֭G,ʒ/k̾ːъɚw>L7αQjdzhB F I" *+ha  #7Κ7Hkh.avZ,ښ&!7\P㳙򂍪¬=dPH߭sX FػB|8bkbCIZl =kь7RQieqgTÁ_-AhN5]&\Ͳ7K{L5tEݺ Hα2AHdz[s EQSQ&>{T'0eP {{|H*Qx7&I>q(%'tjuM]m{` } iaF, k߬׍7E+_O]TG~VE755R]"wCoaчR"Kq{)|_3! ,7kj-fvew d5Qٮ%C5+d~jRig*'4ֵ2~ߜKwuoPѝAVP8x6bH m{'cimR*V܅|LIr)_@xVX.t}ȇH:u$U)vn<$4^T[ǫaV[nkm)*ME0T /Gt`чE ˈ1| %L^*.Z\Z}̈́d[4ܴ_#41@Iq)$"3<6[t]4fq`BdOl"JC"/x %Т@IKGh3ǥJ.\Tg(R=d{\[qaH/ jd.5 q~y6/bt* T'Yt0jh.=vSjVoz~U0#!oo"[XNwZR?ޮJ2 ?8.j|H_u-+_Ì5Xs\&km>z\Eܿ2.No)s819JQ[1`^zdCl%_is !CWbY{?3Heed0UgF3JJjͱNo\syKѢ#B}sp#AL7ly9W.Z$<.!LYrD6&_lmp}7D \~]@eÕMϨ;On5[[e9cGHC{ м-9-@LЁ1{'\{$Feb1~5zx؝sW4WݣEO6ȽzHq¨ N@ BUGVY\*NO)aiі1nvǰRArPُzxOCdE'z51kG^c'赣̭`n/„} HOwꘝV߰ީ-` Z1=p~")BBؘJF,}@:Q|ɾC5N`(t8xyoRo$mƝr8ʓ@XB^kAr¾a@zED=<ġߒ lqB ėmC]S{T?kU$ W [=NO+/͙yM9"IuJWj.źqZL:ȁe|(KyS&@oHAX*@4$Lhy 8M/wm!ÔH $:|7ݎxQ 5<_\JYay՛u 3 AiZ4KyЧ/mѪ+6be"V q]r?mnxJj[}r  f;Z-| Uan+$}Ҽ-ko,p4Ns@T1մc@VZG'ir nglZ+EH(Ox҅<>h)g8nIY47WӠdU,@M5˃Afh!Rg&/?c$:֩ Ct.q2\1 ؓ1kH3Ӌ[P]H q;HJ@rE78+ HVrl P37BW):u+7 kZ!H0('03o`xJJV7IVrƐ 4KJm(>H"…`J^ZX-%rEߣ“GZ[gչ:&яjyU;%[_Psv9zN{[C^Ӑ+woHyT5 c͵_Ԩ)_ JYj}K(T9@(<#=/n~8]lȑǿ-"͋w*BgZɃy_tvd/=T   =e"e&q*.~`þץ]gopEߣvV))6b+]&P\@f+/XpTۮONMyHwSWJHbq,cT"欤xl@[|Vvg 5`qqGnޡ=5>5 -)2$rMbˮB_d#"n,v~jq&n 1[B̛=_5䆊il)ȉ ){0RsMfwjKԟIbޖfL!w4YQ*q=i%6T}/i= 5 ETj?2$  "D NX8iHYFu=Y0;P^"G_-+@4(55OgJr\DSٛxн[ǯV(ט^ 4zcDxЮʞdgUBɤfr]g45tJM>@=cgfcFҤW5&3sc2CsLZ[1GG}ySai6Eإgl n΂~~;T&@΂6͊\ɕF_tnjPNx ݧawzntWU+tM/Qi*"W^J"mVrBu 1[%uAfb @RȚ\XDjOY̝j2:XÈm ka# U7hst/"35_S7ysZ<ƍpu)-(Guγbm0Tc=>B($Lv#IWžһ Q86KK\WW;E0i:ضY4{>"kg"/*ܑ߈cTlw!w y?kI(sKM|:?ɢn瓭F?sA|ò+z;T:$IIu1w8 힐f!/51LH)@Lj^ \_m@[j}7q\5fR5b9ϲ 8*X4.,ZDyKGw&Ʋt Il_{% tD )hV"Q`w`Di3v\;LfJj[7le PkOhmPủOk/lKEu7w"~&!Y~Xf&*K+oՋC$fJ xx4Z":v?p`+^cOthȎ̚&` "mpcN9I/s5W-kk+ 1"GC1R58KFZ5z7悉* 2oRP<ڥ`0d3eiț/%eH'{pACY0ԾjLI{Hw*賮jDe]8 |2Ѧ (}[>v*yϧ3A@DE_.osu3OYCMIBIya@c137uRb9sQՌ QM)| FR$>)ыBbڷb!"J?D&J^aS$m}{EzQⱻn(?U1}D,k!-&>{x2 oM@)jL-9?hw"MAIAlL&ig|C3z@YP&'M46 7l8g4kRygL~ĪUO7Q&RXM5Mќ`(EqeO:`t &`FʵmS| >lA FI[O9֌@a|&t؛ˈ!C{_eڂ_?wf4?1/05<ˀWH#Ƒ^o!j^y]$t 9'swҗ7?dnlMX#p&\kqԵbP VR4Nro^X qB&~%CùU*<ۿ}ܪ#iEO[0˹-t=8_FҏŽYXς"0hp2+ᵎ{|Wɧ,Dl ISr\3њ*)r εfw(.Ĭdi8x"c|ޝE]eBLx! s|RAx$ #`v̷ݴ}_7+ܽ͏Pʞg($J}0$*M nHWB`jtڳUtph7˭V<W:,(jvoW}iUjm!kƒ乮!4ֿYd?CFП Bf@~L4Ц?&<T̙gh~aSz ِ<`\XzZm1Q`b녢:z<ȐK~T mƪh=Ϭz#zJpnsk/X T83O)DLX0ёf4 a}X$$γIAa`I7* k%QI_w4+ZWrۃ<a;g}&r|r1 RЎц$fٵ]PC͈+ pD&ӌ'M?]I`ќ+o!6[Bz!0˴N1,P/X]uPWU8A;W_WW9܁g!W'ƨI?諹;mBSԞ|fŹ4Xu\ Dg> X) Y$d`_juq`nA.)GĝnY` ;;jaEkn5@\V$\{tc8Rˇ_QXqdVtR<)"IlB4ljBWѲ &ui7{iu-h?t$3R]xAW*\*eή劁U,E9Jn1 Y~ gf2fK o|xvlPX?!~F(iC?&LW*%5/P_%N7蕞ǽ#\QE~Tf鋨x vTA@WF5%݀ ̑Ϯ1"XMx0$Cc̔^tJY8"Mx~)}qTn5MAZ~O3tMjtᱺQ \ RQ>DbVBOѽɟ`Uo\8H y"x]HFZ#*`H[eMr7Tyn@`{$X*9 /s;i|*hbqf$nU)G>~i,W{#ߨIr c9X w AU0l 0/O+s";Ws膃  h~pĨ% 1JyEtLa?I)pW~Vv  u'æAg?끃BL'uB*!J928U茱|xsjlҪ_' iΐGX] n:ո2ۗJ쩰k4q˲<Su=ﭫWK ^R!iʄ̨(5@͇kҪ9`/BS(7DU hN-ecu mS"CYsY{V!sZH9l9e.>] {'+A"nY(DloL>錏N/>:ȅ0Z 1hndT[?[>v}88ʃ0N)n[x .qIK* *Xu >.Φ~^`pb Kwmn{: sN`8[2ZjP,݀ACZuy Q pOBɒ($0c p^2 څgVS)z'$bur(c*KODAۄoFփnEW}،9nZFb[9-'f=AX:赲l3[[.kʵ{F4"þuh ցr'!Ƨ g! <K~p7vПiYKBTk$p|=fhTl%)|ٚ:)(̗~dV&MU=Z1 &B&%XtQ)L[JOZ\ڜPf+dVeo7+gR^L V1iYvRd[ϐ仩$ O!LOMb}w,zk08BX8 %DFEnp`Dѝڴ^Wϱm}(f_lL1#Ԛ%wh&3C;_xE)旘{ &Kѝlv#Y ! qٓ8]]_#-URc(kT&}WRhg_l+tCo2CЯG,+8!WȖ4JfݜxE/bZ_~cO2 _iQxZC(m\ܾ:G2%7ӌ Sh[H׺#[I'Ս #Pf]: 9GU^LltHVhV~aN|8^4z=nY`VJ7%-$^b9NߠP8l0ǰk_ i mڃ-db2Jh F[U&9%*7Ht2Ddvw4B4VO7)X&wrVYmE?sQ^0NTiO_f nC5\=͝,׭MuLq2sIC3 Cxz `Y(*:j^Xϧ,>G]n ^[2nЧ9UCSLPrs_^5!`_Aڧ#xB]w3s؉Jϋ2oř'LӪnw7auA5-v AA{UnF|TRfApLT[+ _AE-X'%AՑ%О)$DNBj-7 to:Np#Eᵼ)^=x/\Ok;^?,DẼšwd2pǝIenp/sw6tŐ>itؑ iGn,lAO]Q_e1~̦XV@/_nDױYjRR]Xc3ԃz\o!ӽ?쐀 ӡ0K\|~&}v(v-AwH_<7xt#&hGe}e% p_)La h>RVG3`H MՐ8读xoq,e.7o&ؼaj o˦ 0^G-}ybs<Ӑ'I8mG1JZnT?kD擂4ɒ)RFx5(BF#{A>,i@G~lEnU v<(hzʄy8YOv葑)VJY]@MCLJMV%)Ӭy/x=PЎe{Uƍ$N+ 0Lf$E6ǟag6q}<(}J[md rYLQewMUMʡoچi`!SOF (_n{ n6g]v7Aãxj )Bcvt!I8E)'"@3| ?$1({S 4 FӮ _tP%ՀtrZw愃c2Le78zC/6[ʮb>i$<Ԅ dӌ j!Y+XTo߱YFMW_?L vkWliL'=@%d 48tD| n=z.|ޣt'2 tZ: Mk2S;ߡD Lc+Yk?7)r: .~EaF7h b>,*g:|KOR[Jpweʧ䈞ICLK1!OӍ&Tϴ,OO"л0'0 y1ЁJ?9R5v2`6Uf~ssr4`/j:Ӱ**Zb˝[&񅸬4-V[&sbl=.''埊[[ `mx)3E` M69?&Fվ]Lד]=4$^Y[o~byc1=|s197Ewu8;Z.$"M R 6'fI<b}B?tM,7Ȗ" m~U:nl8&X{ī՞0Vj)nsь#$؈Qo3jSy|=xU*͹piv2F Cĸ_fToFdI *>/}xN0bx|Tu8($'Ԓ!Yz;ljhtYK %):h.UkD>P-ޯOshl`1ñcBUE@79? g T5f-x-_FZnֹ(;aCEԂu+2Q~=j(yEPj*rx!ӕ V*Pm/67][! :N„azܣsג]5iCdx%)r²?;MiD2F / 9 _lS lM0dO!mȍFeb GQ .eK~2ektڣ(=AG>]^kCzwE፰1f^h02 ?HE+sCt$V\:tbޔf2}_y1k+S Y1{{~0zg XHFnPZy])a"* Z0olHLBE.l<=? ɘHx Jt ,YڏR^4,L@ [wP;d(fK0_(y)I%ex9)G^gy,ܮQwttiA QWaouDb4'/zF3r;J>K7|,(u 3Lp9Fj/W :FT#BiJTɀssOs +ns=#s@?ۨr.Φon|wkGCD^ye*f"BC#9,G9׉r'3HszTPoz|Ӫ>ӝ8̭2 Ve#4EY2sw=Em=_IK%SLWrLR7\@brx 6:gJ]JТmm#TR7]lhz$V^{KSx)pR.KE X}ľ,.yh]2(YǕ(h Xi_=`[[=ayVjmɖQX[dYledh[w p^|69dݙ3OGRhHY%5LIyIR٧}Ǒt*?HJSh{GPd8L$MtdaF#\r=(OL%5K=4Ho_:3{$^ux6[z&gшAcr6h >cT!ʣYM.2lU>PZcD4ކRG}}";vǣJo\-0i5wqJ~(S].kiAG{@:<]Q89EQnnJTG&P'kZON:zl/SjU,쭇&{[Z[h:Jqښ\;NjInd 0C汒3t3{тk>PъCʆw@>E q9=cJNR{3 i Uɞ`[tp=Ũ%{rOZ2I[x~#y@|OSEsqFm@~7%ʍ9diSbS]V ?1[0& ľWT.IWzU? d[gBW :z|;ՎhEV;D(6Q:(MnܧЧN[kWW `}@w.#tUi "z?x+ϲ*j(_{F Ʀ9&wjbjQTq/5 ژIܬ[TkF jHQX)T2` ZC%#*H/sŊo-gẶ2?r/+,uMC^g27}L#;n.C[WEkƣus )xt6A99~! Ul6Cw-6#_pL]C6wȇ!PcZg( J}/yӺقDkukHny#1vD/X. {ArdZO_8kŢtm%ؠ1d#BWO'8"Cwu>9h]a}n}=ZH+p=tsqgy̶^X d_oJ"JOɰ gmYnj fKRi1 d؃L8mŬ#"raYw .صeVW44" b~"{ϰ{h-h+z?iH׏nCOJn@>S Q9#6̢4\sV4v$|qG< (㑒GP(~XCtHuTSnQVѡ<@(D^Y*YQ 9 jVcMcيZ Z%ɩ|~W^tlJX6FO$ 3$QRMbdw/$ ֍.^ TsՙeǛu #ȗTㄺ)6'օ_+&+v]b9 PiW1Hwaed ߯B\O5HWuƶE8ᵳX{v%ĿĠ ХL@9jFKP/=Ba ^N#zލ}pOo"&~$4GZΟՙ2; z ?G-ju Tbe qCȭ< ~%)>;qts$wp6b)mq7 2ݞ~m;`a箞NLAR5-bQcdN,y:G ^8X~HL VN(|wD^PK`f:\}+#!+4<";{_R"p(d"JRJ_̷T,Ø8[nxGQ [)OcO¾l]87V$c1!Jb\Fm]޲mfƣhUU7%6TN!3vD 6(IOD*QPbQ^* 7#^?}8LP8jj"ٰ'jy*ܬ/\4#' iDSK]-Mŀ 8'fsknTVsjA8c!dk*}TP}g]-4!i7+F# &bVӥxd0 u,Gp,Hz0y4XJ'x 5C&l*Ka94:PL&-vlX2Q9VE+=]Z5l-u4Z/f죙'ڝ@J#Zyd nB7o)m4-1*<ӗT ,-k qD"v:~8Wf2q35%_?/{0AochOɔhQXͥFueXs/ư]춭K1uIIx)m| (_tY6%[2c!5-"FB9Fڿh1\]gq2ۘ/'O8Smw=v?;ѠuI&xG6)~p^]T֗7DÑJSQϓwy Dd?zK`,X -ْlpZTʗymS -l 1w^ؗ޶aUqCeflYzW] ~Ȁ5@xt)`g^ /]I 1B]ү8caӯEmJLGBݓD{9u z sGٳSf;[P˳i-ĿÏrXTc|Tj|? 1KMޞ0^$ >_jK].Ք&켾}6%DM1bk9Nz9Cm_lDOe, _L m@*)=U֟`Ѐ~Gl͵+5/'}T0)x<5V^ Xzk0x/(T6JOl3y&,q&ľXHsNeg^5@#ji_nE @zƘݍ ~B5DbmŸ6"y75fAC\J{_mXnђgr^ Fg@BZ<5:go%NtMPІe0Tgy΍DKN,d<7Nl0jl#bԵ.}:eM"чO(sE,,aV !0{񄇬Àiz5&i=6 'I2<(=OEJ:?nZd}p L uc_hq`:LW-P>*$%<((F7(ЙJx*q0;j*Th}^CwLk`BSSQ3sh7Ş/GQN WE==UD |g^I~`k.2G:䅖?Miwa;f-@jꭅR`tI0Lu\Vu}c3G뤞]k`i6LPGRqm`٢*zQ.7B~f@˫6d@1+#)6dP()_' >Sۊ}]Y!B[@vV\#ܶ=b%@ş6{Nฯ3'CՂ>SӼz+.Ah/y%S]y;SBn-bd^7@"$Cq=] 6j?8R}hNlTU ROVW nHHţu%֠,٠٤ty(xQ^9;X}]7˵[̧e ~,a-{%VVY&*>\: y˥3$ٻ_YP|A/i|WhkG*4y`X3M(4:Z۸VDG/mktV:jO>)ݕˑ-0RDKĥ| !{zvf?Bc:n+(HCv}Rm/Xq-H/ UiA+ 0C7%j]a#5qSPV -%V3_UaBOX3} 5J$mV9AZiMe'<;Tkh&^%2Izt'ر'Ukȱʶ}?'/!HvS]ƯxZfV'Td&M?_ Uȏ uȫ&Eԯ't%\`ƑK%ڱ{udz-4^ (T8]`6&T@D7tPq.1/|h8kzALN0 U.Oz;{{=>Xyuwwۘ׈6O_UkPK-W9ɿR:D٩1xuSqo4JSueR\hAdl>{4t"'tնAﴬew%Ob^E| = ^kIC|3Us>Гem7̋XIs^lT`1/2)-xu7lI"j=+~VR9tP1ͦ>>\t21ړ)jG+:.Ҹ챳ƃA喩I1Hi!pf>Eb3 ih[39DN a0R)rH$,e>@WM-Ҁ7qcra0o#4|od JL05.VLj|r`~{|"{K1qf=YM&p|ً/b2Zqxa)eod^NrT9"ڤE\afȨ/ =&hxjTS9ep@lʒBm5?6`{h}YgϬԂ!£xW=%f۾C %,7MGs5k~+v E.){?Q.x>7-5t]>g>2Á~\( uB$:NwXɜKWxwqҢ'zQq~X5 ՗t1 ]fA+[,B{ّѦ8:=0qX(}ضe:HdO:`}`꽼d{Dp^Pbh'Ѷ[*Eف yR+ K !:%ԹM`Q;bSp+7QGu ,u=o3o%iPD>,'ՀzYK."tRe^Ě]3":?ߌ^s6obz[7i5-0c;tT{U@ +N_ n 0ۈT~N& P>1V0s"p^nnpAoXQغ'&sL8Bk789(}֤@ *MfNKXĥ*BS{h?FdR}HVq8vKMEpplКfO7r3&xDa1Epy{X qz!7Ŏq #APr&TAt#-v*kL!rUtfR m;֢lқoK>W}Hғ+ڂk&o 3N8-NjbmKdn_ Sx\2CUyIE!+׎&1uӾaaRMw:1UXۣ~")T=7sxC҈`Ήe ?N%\4jɫek嚯9K9>D#: & %&$VpK]Är4Nͨt&_Xۤ½-Suh۬L!Fcoq^~6|;ԛ[yA?@gOye"і[$AH%xAvĞZPe|+.VA;=<ë/!$^T¨V!͉8{ .3wTV6 uӁklGt V:PDG+Gury&ru!\ќ{- "edjQ"L+H ׹:&:wE*3FlNmǟj@ޫ?5'ѝ+D::I4`TUJ4r(X[N7$ ~&?Ju꦳ؓhMrfJ/ZwbwQS*MV]+mu}`h#:]/L΅;Z|^C.ZEGv dp:ҙi46 T9t: *A$hDco |ff]ON:*f]43+.04ź}qnaϵ|yԮR۟"g3@{"sPO)f>9*Ή@8| >տN}&HgdօP``!x'Vj:TGW+ ]265@@R5;eW,alX'KHOΙVg)c8Ke{ԩZOl^?y wa-\q'sɬsoti[%'[`)I^l4ϋ뎶kݸrݥ6L*rst/<L~0aA梢lF١ǧj-fʮ<&=Y5;Ug3@#;{ê]L)ZbDaD!֪%*1'd[_%w  Hoqʺypwueׇ.TS/`Q)i>6ݴd]) |ONf6KV6.Z_]~sY {ڌ}ثJ_<3hLĕWkp5-GkqHu^GNH@Yyuܒ!N 2$g+`Jm,, |6V3KiwX+-msb&G*bOB,q @!]#HR_p L~A.Y|[-$ AHuԩ`[hI&_{?C6 ʗj]^7vٓ`ΠXS0!!cI a`v]cuR ۍ5% kOdʅ fi7`1S&ᰘCܽUzvv$!g):vG/^~I"l[A['c kZ|(w\32sg\#]4KŴ\F*bmiǨsG;EȔDZ!A .V_OdOC((`ܬĊVO:H,M8s Grj"OeW a $ ޅE !)GHnyMB է-[ȆZ<3С(+u͉%uiLBS=q}ueKIэIFq6, A7#r;5}=O㦏4qcP;q'Co&(hHC/"9mfcPj;( h9]0PqJjbXeݓN*l]:#7i[q-Qpۺc5`BТ@#-?fǝ1LHv[Ixޢ#_kNx&ѽ AxMrqz b4y$IZa-P3|Zɫ\7!LGkV'PX7Ԗ1!a 5`1w}͕\wX m}\m P}ۂ曹\=r;wY oc l6&/ NA2(bJ_ZxL=Ŧ Z; @}z{| vJt Qֶ.&H礆H㝈^]զlu)fBu޹S^[ u_s,>[9.biЋ%, 3`/YQ@6؃vۂeV ʛ{uˁ#~*&J^z*`=k3b3"4rGف(XwŶ|9V*(C[@.I 7dXBWOA%P7pf2.:˥M_1mІ1T̼&f_"(,Eexx;Mb(}.G&p$p.=cO $oF$i&D[8s|%@ ?1z˽R<7lZ LiֱvK U1*ذ4L]^ۊk ya};9 >ɯ B5Аr w5֜ #½gJB$\$@jmw!`~nJ/ElDu؊\Oa!SdQUpZa)ʜۻav,:w G4lx3toQw-O\&Mutpͧ;I${pޅ $ځOyaؠqO XQš4̚fRm:t6?]!_wdl;i-}8`mv{}Cp!mHfH ŶX {_sv߂(ƁWZ L2I< ;is'H$|q3X7BlU[7B׃Z a ?c˚;ͩjv؍n@uǀ|AwD~Y1$o˥f71 CfC ktmSE+ sqEejϼ*&qJxI)U6'$"gbR~su6.SY Š3:ni@PJdJG ,kE&3+dvȥt r}^e$"d=x+3zBVB$APzuV5޷8n"ԽiϚCX?dp D%dɵ.ú旰HɉGn&@ &Ŋ2d.ʍd_SMr9{ц_]&)_`zdZQ}4(ra$vBC3w󩝽|s:Z4^&s{C y3 <񯋂-˜aGv?ʺSr!SxOx27Y'GXhJ |oY#ϲ`ƚ<*|+A#Lmq| L;GiP%n@_-r'jDSu+OEJfr98I*{cbjZ^PvbҬX)- tWe@C޺??Vxˁ\bN0xr"lr^[K6&Mh3_ JdY9 g#v=µt"5_ ٸ !D›ggK, ?{ÅDQOy}`c C܋[-%25芓#`~Þ'm_{KGP1 DצEZ>& ؆e]D9m(X@ֿAI3/>mhOB4(ޮv{KoRrYy옊p ,%$%~MF T-+1K$ D^%Ǿr}L 9?GV\\J]i)~KF i XHN41oڹ T @W66DDk(9=l ! `-.nD'2Ccs ;;!މ`gj\JCen`\ꑃڗ5mW-E asZ}BΔYxWnW]iҥ2L0˝Qގ(A2D<vFƛB0^ېW9a姳&|n8桦{~c' ۠UR916M^;+gI݀>/A8u XL֌)Qf8:nupPkۀSrgf#яA3b-!+Au HInj{S+$As|xC B?"|]$pQ,m.9}K_ qȻƙ:#5]:% %Wݸ~6ˡ00o `Z7V K+*< {I\~( V|I;96#UTf^u\D)Occ)?NEʕo<ݽUB:_PJ ݧM@o^6JEZp8ؓ]Iq׎A0iҙj/ ^(KD\!uV[I+B@Sh! M03 rRbf= q`Px%e]"D!:P8Wn㲩HJA -\jԒXdWҁغ4v7Z#z|4r!F}MŬN'3YQ:Vj~Rh旟JDE0q:Wvv&9ܥRUhM5/n~I֔?,RbҤ{6եzKg(qK3aPϙZP%c[%BX`zfquڍu+7OuZ_(IBd OXHNAW@V6U Co]C7>cNn UtgE2gZ]J6v?loyNWL4 q!%rJBJMʮA,[?18ї|Rq͐_{yfwFcޭۇlc\Af~ض2i;|RQ+vIR~ؙ\VRO`)6n*ʥێPZ|mB`'}K5dUvz,@1v:D;V$BEV͍h\aˑwAfz;{"+xP_ƭ-jD?m"@[Пj]y "5 h NѦkeUdv?ucZ#(|2B8gH8+!eǵ8!zV) /`+AṀSRjV_j>GgSط`AF@ X^Gl _6aIT;SÞ}pVtBZӄ E h꘧N^io}I0mxgx0* #&DFkV]"Z@WʫQu4E/fz64ηU%,E"y:c6TF蔫k&!n/T@0@ۗ@{@fl-5L^o{'Xp{f1)bS۩ |\&O# NV|W+T3KЮ eA{r] %`:K{6 l*bɆeΘ jd.:TƒuConԡ1'cr:Ȟ)~PL (e j|ʊ}r׍%.`y=8ێK~bvWᅥaq&E#2Ne_ԹлA(a8\H+i Q"טuƸQ }?kڟz݆ԇ` "Չ3'$VÈc]}Kt1ŘJ9 >Ѥڐ쑏d)ҊYcȖ4Wr MJ32HZZ2p!5iŵUV;zg׀\N4C[<\7y!L3M4"b~'uX@\6}'}E0WdH=&aa( +"Lɤڤ9v+*zj]jcns7骪;b*[Yf[GRF;쟈T!\?@\{f$n0[5~-7(& ˤ;u(ծ'AٚGh4B_%KBf2Á Ö]X5nA]:h9$dit8硍*8ܔĉ778ZKIT2"ʏ)b!I3ׂܾljb3} #&aT{L3YfI&(7R(PNɄʠ@H^z,p梐t6 UX )tMohm͏'o]J4yj"D eKo//&89>36t:+ * Оes5E?Y;zBmuԁeu0y)p>X)3p #8 ZzSUz\u0x.X \ ~e:g؉w! I"{Vx1'> x`[*P@⛵ЙQMWp*y7p107kA"-5l+CzRyƱS̳!lJ=x Єqp0l{ 6g@칩 .L/@/-%Ar/<|Y7IT( twAv]cƱpXx8}5P~ȝ@^u?" 8>t*h-! L*4ƪ)ִU}MT^ ֲ- =2ǗQ7 pҀfik#63@Ceyl UUu p]ۆ4p/Tbh>.~#s d0,) NrMMvhę$I79 Żo{aJc` lw.; ʜTsY0`,蠎{b[[`&l|^9{0AђN,ڷ*FZ,8$%^+?/|"x.ls) |0o@ O;DլEF-+latGPJG"ެ7,Ơ} \̓}//W>H19tJHotH/9윝ѢpXȐbSvƴ}i6-:jƳf5bC'1g8M_3J#azSp})SᲪ<906մgYn/R'0ϫt k|ׇJ̤ҳihwH1BU76 55I;l*Ő(j={oDq9 ƻtkusSݡ!  r})ZY@̻+NK/l+pG0.[%*gﻒQ4l:pD'ӒI<}NGd`FRk0*ct8O${ĕ.C (?TU{ ĒIԍtz>KG*5W,4f5s-8YkhQTᦧdFҦΌQTޞF~l fχ#|'TVrq_lGb)|K aB͞.>T)[yhfF)Oay|! ФHfQ' ,k^"ZFTgHraxbV#op ߾Gĥ $ |O[p~E֠9vaE+ ^IM̴ 72;z]ui1|i3xfjKӦvNmtIĜF@LnFk CPR'ղi*8c,A&Z KNr^O.V\+&,72 F6=oئ/转=Mt8*к-*Vs,?=1Y$3h jgEM;EVysMPmwO, EQkgE|Za쏧Ϋ$6n' bMw($@v U~2`g(I'Y{M9: ]`g':)zL zWMY$2 ފs(Ah3ICFYzb6Q.u%%׻Oc NQIs\fw ~;!NYoz`a:Qu|!!0!))V'Qe=$uQtdS=@["S|dÏ kT # uD{ %6F̵w,x58ȞӳЇUUۤ$2zG?<%ဵ~H\دSsL Œ]P`D[XGwfr1~D{:Eɸc;uCMCYW6w=ILrv+f&t(û& 5"s ȏUB.;^1_'zI;"^f٨(ܛπTB儊KͻF2yvb?=~A*Kaϭ)\:K *?nhF6"G<}@B٦T Ť^mHܐ١b? "֧Ae&s\ԥTIM=4aEU1FMe^[hrVc<xf4z+ d3т=^72+7@q\h#Ѧc|-d* JVmP"g?g٧Cʼnz8n AG;`|rf{RnJT#uQ39M`# >S ߏc};oʴ(1{\he:jS');V hioX}[Z@R<ۻ'f݁X}04&mܾGΦ4.)'ZlACrEU*a:3s,zpIlЉ9sB2<{Lu3/oS`-2]Ji"C'ָ˾d@2\;Ov]xE끟ewJ̔Q7ڽtUMqggKMW9gsvʉg^nG@OI-ΧZJ+}J&aKWc5j?@Q\>hW˺v*L7AyF mݥ `2UwvtդAvŽ$>c S7ӾNP[knuB`JZ[_}O߅I\*l;i'rw.f>ZA0 so7҅D Q9'EAzR#BBF)ΝaWs+ ]&\Ґq4& iBt~P|PF$||'c&j?P-:ԩae XisRH(7k׃zq/ Ee FLfێgn+V7A'XV욛by"d%G1 nV!3$)Z䐹H1U V~Xsۯ^*?Hʺ$FNJ `[yPίHclWу 00qgIZOX7 BrpDjBFS,08dRL:1>Ĩ4 潚,^dϊF|&xoi"L`v&޳~mq#73Ai!a(a7u"P"9մpcKE{I;:ε@t6A,X|xj0cJ\*hn )S$h,V~z ׿ӂQkN>pbzVyYF黵!(P:'uK`m*$Ԉ2-,\\%ᨻ(J S眧.+QrU8N7ྨ%42i]s(ԝtYEG+$S7%G#YP0Q($2]kdya*q?Ռocd,8}5g3Ms8Ml* /V.>V+a MaU,mS21Q)v#PѪr<:GzȜC)_>!%2ȓtk ÛMhAٱzOfMiD_u{LCw>q&?hhX$ns{#Y\*azKɎU1-;JfoML@-M|<`"!Rđ>T{Z>O /͏2R*-J39y- %ۺX`+z*"GEj$o'Odp*0`3STK/uC$" %׽oсޞ\L- 2S߮~N2%OYsͩxO$5:uȉN/}C`ԕQ_cΐ!HTgb5 YL2),6ӝ^*G=Y){]XV_}<5$yJLqx5!F'.3V߮-S˔JkSj8GRױhĤej9}SlioN Ǡ q"19rB)=Dڧl hUgoQ0"/?@@! ʠwmJ'RiVk$#k(uN="t1AAX4-F)C `g*$]2;PL|$`87#KFhӡlA?CH5sg]Պh丁Hxt՜kxes]uE3Ĉi@!VI&$? sN#k4eN2_y^] /K8M,AM?:14+f󒪫ZfD)G#psItEޔm%[.CB>@q5*N@--<Ԃm3趨9*'hVWVxp'K%-]p$m bVUL=˚Gj;(CeO@e⒵xxw4v~qMSu7kD65gGl- 87j߀)>Kb?^ڿ /)ϸ̞1V^FG y)]!kq ~* v{|!/ɹ8"g?W{yZ'óa}s o47ֺ1a2I<#=zv`R Fշ'n%9&#('PRO3c'vp\dWN9끟IÝM`7|㣵o٭ǽaq DtĹ<Ȏp;ȣ5u\gz7:=ĘS]@( ABy}4R ?f0;93k|x0vO >W.~ٿŏw'}7z~rFG0 BB}6[:Q3,wa\v#m *yy1zZgCu m_@cHRMœTzrJ {dF*I:=ÜB05l[٥C&89rAӯ3rZ3o!Eul~! 0&WTMϷ_MYh2o揩6ے6o+Qe })S}Wr5`OW[hRE_./̩fs'Arq#܁gM/r6f8Eaj.Aco"Q) #Vܮ g/&c@\Buե S/~$,qr }m۶(q"7rY-ۛuW Jat X 'hvŅgB_1_hhVg[D@j[/":u C ij #fK7LnO!7%51dʵq3px@Q!em/=E\M3WOcR+3`${lϯ>#9/JWgsXi;r=P]yW^sKC:_=4?7H?#ѕ4>;۴or){ot8W#¸&bY4@zҵ{R{&^9)=fw×[FoCY{zT1aDo8Yט8]J.x-8l_WS-SJ˕B6zyZ y/MPD+Zw8B˲ԧpJ UxJD ȗ$ tQWFyG-`ٴm/* ;Zy.PvQS#ye2tļ蹀Sq"ȏhO jI8C}f\34 .S| ~ɩ_[wK\W{VeoK/e&N [>*מ8%7`a&WhK96v;<8/rgؾ:]%TP`6K|=`\UG0Y2?)trНR@z$jETwNW|QCoGbr4U#ֲXd:f4iZY}dtnzw}ǮW]xé!l;P{6a3s1_Y$c;$γ@|[q[ & ş =sfe nr\FOB--hb$ɸT 7X KP?o1H Y3^@EDŽFJOK˄X2wRw{VG,MC&;G c5n)JOWiU) Ct:;,!. u#>魄U,7"R4u괽!!(0еhPXP0 =w yvؚ&NPo |g66,0nLCm;+7[N[ǹ+w0:CߒЁ!ߥ [N^D9K%AyL7SUuR fsgG;O|ZB.(>Jvڮ A0O䥳x&mtGFt@1x tbkLHOtY85sR "ŏ|mgmq)\($UxPV7q ] WO#n{gtG76 Ɏ7mZX Ӡ(!`q pe ~Ym{tnEgm?b?2Y% Kv鸈^Cj~ISdϵdB@O| wغ͘lJu  AڵG9ּ<3z {^xR6o3rqڶXBxes`7SgQz-?4}QLBa ~|TUXC.Cޢ~A1~uh71b{]VY`e^eL17U^ošPP6Z.NPJ&r)SRҕ847@(,/ߜ$E)Z(S 47YA. էo(J~SħΈ9Ԗ(Vb3L=E2ѵlҟ o{ n-h{3@&ݦL-@7D*p\KO(DM֊ ݗNU^'$x^ \Zi"߉kSR!6t@=J@^XC L2~ t 5:$M?4 \nQ^Tgz#9{#WbtrZB&%{%1pjt~%t9:U1g1pf<{;X)sM >EՎ.ž<(wMBҜݒZoC],Yq,aH_ݯ1M55sqX H&NcGdDS5؄_+66hQS :S~r@Iltg?dǘ)I%4\WEHs@f6gg4(Xhb@R RQCGSX8 LԕJ$%\]u 0Iz}UiQ@8yw`(ʲSuB(ldu h[_kz958_#h|C~o(}(,%2 0{ Apbcq~g3_l%BWj@|_\LcNޚz.Nb+Z1a+ {q*OnZs4TqB-aD rR+71F}pG2Rʲ%"(LdUӼۻ. d7zC2&wɖr'T4nr`f9;osDjxKE.:~XElΊUBOcD46膳-̋8oX)f1et6Dej) cV}Z~:#Qb]-z8.t=dzfPc^Miܕۍ6z0GHčN~s `WZ$¢3!}EGK櫇_QgeLܻMmz{5ݘ[H eHPkRf-؇1ٰK𕝁af!qajۡPCj^pqL\F8&Q12A\'2xį SrTr1 ;:L'ِ#WNeHh?~ȑZv81ӌ޲_X9/(] M`HP6rx7gez3nK\Y%lUhkܹFݏ$  bնR ۀY,Fi0 MVz IAv!4X98JS@2W@L|7AAxqQ|}1E4Ud/=&J{ŦEי QH!h!>rCbpD:BNshn̽)Gb׮SXwW5ɭ6ٟH*T?٭ҪɟME}"obk&$h*g,㱤0Ք5&lWDd+F>$xdxQċCe0bjWUeuRѩmZymD8WWZ6~[?^ŃdΫ|N#vGw-8hr7luIDp;|$MA]WfH\yfy/ntI79h)S߫ȑP;,9R߫w q0ʇv묜E_ KdK^y |r>L 60\`c};<5r{Ov`4~G"иRRYqt8O0P:@Eɨ rIh +^4wnDYzXF,/s܌cfJX-u;x^w.ۡrZa;ϱA7"._Uյ&#u4:ɧ:fh O[J&+&/xuM!A8tЦ1F~DE Pܪ@x]p{?뽗K^|0e𿤝)DivXyGm`itFt;V#Q2`sXWh]"ȅ+@HvqH30%;/T NKU𱖋XX/GI ĮIr,.vHDAt*Ad7N۩>ҿ'kϽa-5q曹|Ǔ% ƾ29̀?T7z9qҰP:'] H,|c :#@-r6cF (|KtCX} m]2^Y]ў[=&`]'sZr 6sLaWNR (%TL@镯q|DiEr QUkE 1x#򕳕$f!D~rҙK:zZ'zN^U,8FQS=-&h5]fc8o|UşPq}dIC B/lD@'".I=SQ`pT~m,Ggth 1Dd;)YY F1V\"_Sl?6m OH[}gˋ.,74t^W1,P7zu1c%az[1uS0%Ή)љm)9VerlfË( /bJ:dokA"`w)Om>,ӳI "U˭Ȋq)wem>*U^21 SN a5N[+=`Zv8)92( hH-2Mq ?&1݉f3WcyKda-njD`W1D6O|cN%! MOD7fĒwd'&dB>DLض; vqqMA_%RGmW|$\:<=^9Wq%!QV96i:'lv劺І;_~AG@DƫijdXlt:~ڪ%WtgzeUF^(48>'``iROy/0a \cVc-P]mxgH,__&s"> fmٮ-D\w+_ 6nc oM7cG4ڈ>= xM./C^d<x3MimXJ||=%݂g+lifJz 2{v x9 1>/*U|r9eSzi~:ַU].aM`b@yRLjP(flį̛'=@ ÒxfbǞnԥ&SFW"\up#hYy,qȊcߔ# شø{ GBa86Q|/~vU__>1 tј[|?>..aclɊ9iNPN9x)\$b^ ;?! )S:#tZ+ }ktI=L*Y˂z^cb׬{vj -,}m-@?MkwCH [tŶ) DO򩐜cQaC%ŐdN1yҋz_p2k9lsC$v[T\ZB>#`hAݲ{[)GΕu.@%dž#nRU&2(A7oO2ii Hd0rt1s'ʼnvmҝ7f JɼnfM(NrE#hl[Z^B`c&/UV0Au0BD0!lR=,#grM2[ ~^ۈ IL8_j'I04~ٶb!,3 ƋN6!p@]D'5S'M?8SbDX!LH}+8Ko?a3?g܉ |TyymR)< XU ke>2:34bJ*]+g z$w@ɯ%@@p Vo:ą*zmWBP] ~c@Q|WPfep9Kd4+l}9nhF밚}(_ӕF' zLx=׼E9 Mŕ;PU!c^Xj>n6~u 2E+ zUS!oQ=K^)uyI֛I>ϊ 2o˕<$N+ +:dA-OiaP4=0IGB43ܷ7 3btfq.~VW!W'naO°9Ѡ,M0PJ Y$K3:֌ܫWhR90&ֿ5s *`iu 9IBں),46 Y ?w.\O7O'OY旍 8C0!HP'C. \H8_@~^ןEW:do[FNS9G}TǍ0V ,`fxXo.ϋ7;/NMqbʋ^1D&T@Jx[{G}[p3i!!uG2'#ޙÒT~a5TGSQλfɰf&yM´SSSVnZ `vN`mԣ3wό17Y;Yv\70 jWUce#:h=hY?٪C[{(hA?5Le )԰lW!'#34OҊIލ/>smI7IhVBMSfCG{WfMe0TroaFxdYE`YzU=n{-Kh!pU񃵄-ƥ !F$s\C?`Tګ`RcT?c3n;ug7KvmQd!uMhkuN@ݎfLnŊՐl3(U3K{YT.Nc,gZיGnDRA}$&7飅}2%5W?H;GP;#E[qͯ.T1huq8Mޗ<}k9}VbZ[ $(c 8M$a@"s!bɴeЊ~8:Ü3dm}48FHb sSܯca9f N)H'oњזiL}ZXO1ccb}zcdq[c@jJ 7jrيՔaL=bI_޸rb>0-DD4UO>lv_]=}7mp}imHǾ Fm1& jG (Yᮝ:dAh OTᣙ ut<~[ؑnflXGJw߬_ԪpAIAlL &&ۘۑ@_Wz٬p ڰ38A`ʂMS$q& trFoG%T~ܗ}{= t0G J>S qA~ ɘ㿢w"|ё 1K`OmU2^]/6v1[ۣu xy^ε?uCLrZ&pRHFSVg,6Ņ k{>) |љܧ¯j+#PmCp 6=O̷-/Vrn0bymlAEV KqA6*R}sJTWey0ϼ>rt G Q瞗0Ek?v-IF, t;D"\I=yD6󺹗OSNi?%rBv'[ٰ 4)!qN= x&5XGɂh6Y/yL OpBwms$C嵷 Lo <)᮰!9*+ գ5'tᲯ#3'. y%drI]6W9Z$>3]S׾˕s1-@O]Ni!;i?TkJP(% >OD} \hzD46oxy{$yt#}ͳ 4M:ya4geþт lI w `>(yktMzثNה;W> %Dv}LgTmYtU"tRH_C.А()CzfޒBLqQ NRe0B@bՃ۱CxViޔ&r|($϶&TM~ŰtRPZ~F$_I,Nq@:tC\)Eʼn޵=n4>A_vQI">hƲ5/rh !gSOU.y$G$ '߉ YbI&Rid*|ȑiv#qn B@\Q_6RU01yv[FѼ÷޲5~ۏ^^{ #a!垄 R 1) Do͏xV&X8dJ@s)q] ?ucP?TīN g,dl>Č㓇*Umi)ZWn"ubagh*̈́1ub[ͬD6xx#TICs"' off qֺ&i#G==,+a~. Z<Jj,<񿷗IDl\t<&d Sp6Xx=5 rbJ$˔v5&ce߈8UIL>bJY3DmAOزp'3TIxw|FӒ)A\B+2W@fΜu&"WmjS'*_xMhNӖS'UEWH"LmܓyH2%jHD(8k̦+BCB&yjjGkL4"5#YZy |TjGޞ+物cۃZVn85nxc<+–G_{Rdq ( 'ÒF/Er4o}q0@eW_~ i sϡO&nx%EeV`͖5Qy9%yhJX|ANdI^~| `(о2Xw&&_x9&h[ge|A **W' o-ncR}!4MmˈnНګ~EMkfkKo2G )@[a/ݴ/txs&#밴ajk7 9bz#6my׆Ռ rcJ)A?1z .\-8A`#n/cS7i 3kÄhzԜtvmbgGS_[ LRV~׸̵| x_)?xFgHnQ_-@}$D@QsYn>)ź<7S@3E l?ԔGǤ*D\DuY7խ (k>IoT)AaK~QûfL{WO.7LO~oCVU>Ou 6rٿh4`y$.Ol| ?gP}`sGd`ZeAr4Ml +9jk6@N ЛȍG Ց^RܕKuB6>lLU&-.wiXSBջi_xRcT\i\Aov\|6 rƚh1dHˇBOck÷OhFfxD_ͦ. D)ǼuLц ܹ`3f!\mvzˤ):ik̊g Eڲ 4L="?VU%/(m; w.PF#ӆ Døl7پNHDkTqDșC N1}/1ףdoexCSFUv"g ~hJfEJ˅ hA< Bz& +Фd]oGvwG;#Z?Ld g2W9K[bu+ڊ(0+6s ZBE?aRW)33PE58e *PnaYuK^W3gQFP<1y.onzwV>0#kshѼ&{ޑD]jY?w; џŮxP}Ze.bi0rbU +Od]4\|@Mj3٥t̸'gI2ʩwyXmi-r}z7[£h|!ԖA@SBy&D2TR[3®oD^~VήC~2.aC[7`ٕnAc c?,mI͎蠗Vϩ"ST8_cW[L PdYeUw]XJxJ$On\={js,l"j̻B$iG(kБ}*5ZɞUOu8F+q\I)U>[b?*vm2Gؖw5Ky(iDOEb]ݒ\O.[crd¤!WWִil,jWWJ5yY^Xuk%R#4`{,a%,bt H:40bi}O"^,p˳ϡ> O - +1hPl&VKacїSLu漟uL 40P9^,{*u6jbi*|cEyȼֶ;{-;% P,Jb"@/EбWOWaZg yr!Z#dq%xo#m 4=j̳v玱Bw1NzgꅭD2HdƓFW.[)Fݣ\%SSR>u^=nkd{ i1QRQ3 .h^#n?ul+`-Jـ>@CĤԣ@<]ӆk^Ghy{-)5tWv='3D Qy^ϭpHjT"Nk !4bP|;~NhPmR!"xk/lgO}1QX)<ZX0ʦy&ߨxE@wt=D:\c}Ȕ(ր<*$chq%T4V#meXZ4e˕Oby7IjG >4+ZRwk( `\JîI3VO5 [Y9&;cգ9OuKD 99fu>.&%FY|)/jaT. ?u/;5<耪 ]Ui:lzp١{GͳƗ7}}{"H=,ꐍng*YM@Mӛw5\>sb߲W"r9| ?ĈE1T?$hGnCbDD_fK%QcLJM:ܳa%$at^Y HF$AdFX9wMi$DWJwj!zMH0p/8`WKߘO4h{/V yMvFM5d݆7wiִP_":Nmn }:,,p˗sf8RsZUL+Tȱ۪lp,%0åw,'}6̲hZ7Dg7ʹ-Pō5=$l .H;2]?=XZuـ_#)+pH13{Z58 R9qP?rX\A| X.;&A:l+u18:"s3!Hgtr0EF 'Y[ z(\4&ii@^ 0m 3;j* 5@cu?হjn)Oプ4_JIe* `~j_Idz]ֹWWјzT P!9~GPZIS0eR'Rz\>·v8=tAk<ڣpSr/5@FfDI)*G@D+'ଦ`Lk"]xUܰߦlڼ!7&Α;[(vyEQ9'A t)ow-u#`Q:6h#ن,Ž[u!K$M0.B˰44 <0T5ր^ Um9=%@Kͱ0*ӗj%*d]]c(eY|u)jyEs 1FI?g1!kcwĞ0>("P+ c{%B;;0o @%&3G~KG:;ȵُɞ}徥\ ,uJ7h}@"?n݅~ 2>B )sGf%]G@(1:9Fp7z}e ғd?t STMm#man2njW1)j^8!QhM>Mn {6jØ#^:p[T]nBMT)g,d}AJ(o< 3H]bC7BZ_JS5ɻZ)h_~Z tkuƴmzqu4/w}k#qZvhZ{:2@_ L,KjR:HyDW5EU<8\w&#< o{/OP9*qӁjTRgYĝ=՚m$\f@c%{+Ry.0LxA*OfM$cMPpP1iQ1 Ghy'VڂdØZQ ^(/s{D>r~ \Tn,dk$:$]dtti| %-0#pdd"AXYShGw[MnTqiybƩ/.alU!pfBS`K8x|2Ha 릑;O޼YI,qKb94#$7ySp{T EH㕵0m\H X.7\`S67"[bϥ &u9g^:9( £ǹc^nnSVA1y9U7.ZJ:H/^_3іy"9?tԸIG[#MoCN{JŴ*}ñ!uauFؗ''UEoBU]0!|^WB$2r΋Ze V#{p}s ʕ0+a^˭|]=x@|ep )S%f<+)HZ9wl4eLY~U|c.]1\m^=[-%OK;W;ODX1PeCA}M2ю+g+LW@i oi̖(3u:4X:bX>m䴤1V*|F/v9RS7ءBi>ZS6{9qLڨ%ݶT$Fd𚋯qq1Ʀ:54}+?C(3S =zl26Ȩ!phFyݮ&+<ӳaC%!B˔ "s[*JP+Ik>q}d}T4L|?1[=%c%9s!PCsݮ2Nwf>aE5yvz8F MFg.0KMCv 5~Q>ljdT-{K;yE W@*Wo>O_hŬn"Az>R;S@v #W S}~fNt}ۭ_']"hǐ 굧'hN)×C y3--i%~DOBX.vb(4Ou Uk.7qA E-H'</dY%}7h׃&+ :_rtAnq)dJV^b#?P`(cdڨ1bdMmd)rau"OnI^ w[ TafX(|DVJa"VS9X6+7b׊)_՞Oϖ[yfCע:~$V-KmҾd1v*X}Jt.~(0Ur*HZȗ)op2F)Pw+>1>YŸW%B%*%vnb9y(LG.[s6/Ծa`xסB2W|U$scvR9p&\]&v/'+8%BL9Oz^-U4>9mgCAk,6Lj~)9w'PS3?FكB9|RP.>TV\VrhFҔKc 21'bM_Q 6A#+7Kvk#^Yut!@8{T`ȮhĴ_n:-:x$@M/-@M\'Yy;rG}ae=wZ*ƗKSrIK7;Dñ_0]) rq,8aZ=U%r"e`ȀFNk|ggIZRzΣ9H9b.b;$vżqȸ PG5GhPn0/T^_ i@fJ N%fuDѣnyfK51&XUr gyL7V%@R0CpkXw4p&Ni,t!4dd{MF8'+tWTe|j$,)QCBINH֮ۙ2T)a҈ O^A KwHkg8bc~>*@G_$".pC+JyBrba'Mdڳ[0P 8kU٣C/$KUܛoRE+Tj̒܈"}:֭ڥlsܘ^Ž]deh5#t;6cZuF+{zTN_2ë؇}~R,߆չ=7,-M(j(AƬL}i5m(F@.P'0zM )@9˕h`fUkpՃ cC= YL!Xx8E' q^;IDz @)~x[ }Z`xLE5UO]pvNqZ'SWurн#o#UL;[XF˝h`mZ`v߽@"on*S0.:pyxMRWu[&՞CVp4&D+z BqqOo#%eE||ؙ x}A2׉8Ň[; ca^y꯴@/t}-ÿF]=CÈ?F'YhOJRUؑbTGS*Z ӕUh8vȓ%< (~onQAX[yPey=-1|c5zm/7WC?Rs TTEW$![4XK>Կ 5b ɻNwQ2:FTּ'qPp;>$rŒ( ~nv.;IESǡ Q 1q=LB8B ~5#UK ,E#IaO&o24ygSmԾHs'dLg.U$&qAw Le ݙC~ƽ eY% =KxN<wH3VC_cs0 XbeYeTFxc=<4t  o3ᱍ밣~yN[Lk} JEO.@n;'>\(Qٓ0gcO_Kl|b>su2HCiw4:P Q9S1გG睍m2"Z ],Y =wb}#e~6GpRD I}ы4،2ty*;+ [ť mG #WgevKx^'O]],]9jM:;m}8FnB7MgHގes^UYJ7ћI/~-Gbka+rlmcn3j:J>,r٫{W4_fSf7<枬>?|09l&XjM)-aBІt]H/h(I˵W "ʸfQBrifl5~Ih8٬;Q0KKzف~RA+bZSe4(e2;j O+זsy` G@?.V`n/Xom3x]Ӯ}Z#{Lk XN3dJo剳ŐsC|:\[<-WWAX]K_/}Z"~ Д޴D?2fbGTO 3/3^ƥw)gŪ@,uHh-LSPZRBEShkѽx(0S4B$Uz 8BVKfY(,,fL$8P 23o&Vrl?YyDc&rDeC j蝽$WYA~',;}%0 9<6p-q͍wI"3a3:!7L 4{rc01N?שFm@læ10 kcБHx>cY>I;&tۧ~ReibqnF`/4 r/)`cxC>IheDnj%{{+(<_# Rנh(#yFar2lZbA2^zfNnǔwQkJ9sQ Ri< {#GuiT9teX=f)fJiLZ qC6EP6U{ "p>wAh:B'8%\>8(EW݃4n; ~(ZqNZ}èl^rMOAE| S r}`vGP6rA*uXVTWa( bH0o.wfrm0!mSMҥ5bb5*|ĚH1BL഼H`YUtRH6%:A{l@S) nH,R*ϳ?M ]3ϘG,*.QRvO ^&P@e50H%Yɾh78H)pWξa+rg]硳rt\>,%_NЂٰ};rep7EԀR~[|bE l<%1ts(&2ƌT_~[\IFf$NܖPY\M~&b$ħ(_ T`p,۷y@L[xw!^Ԗ̙*c#>wL孴v1ΦM ]IU9,U+1( <"+R>$J'#l]ڃ4RMI) РpR3s7#W{xotT:>̺^:'&+O a*?x$|D2dE|'C/ HYE(N1_ H4J֭R݇lFK.xIy=@RR&q= Ljލ]ؽ3&363VSzl:b8ͷpNԤd+(S [ZggpJRKz *5!y^s+-4t Y pM#5C`\NUvӢce?c#|,w4(9YAnGIzc0k4S=_ om= \[\:BvɋyWh:/yk||54 U433 A@zsNS32' qUjSw#tLBE$]jL@ f{^"(xDZ`8s86&ZG>`%}dƙH0^.nQ]D\AYYFвȼh*pG)]ь0"D oA["Q/,-PEUǦLv`9yVn^QH_M5#OLot¾s[0D_=X!t5 QhPK8fXB/8jcl""ibE$`Q^N$Pc LH"eBIǭZ4m[؞+'s0zw"m"枟68+P owD!iR-BPu)ƻ0 !O$fY!QceN)vݬ!}672.\nUkP$=3Ir/ 0Mm%.|EfĴ28'X!CH6%?6PY;x6:Gd\E0Q8q$Vۺ_S ;y_/60MysohU'Gۓߔ>ےؔP-@\!.ܽ2ۧp: _pE@tuPUͫlu'Eib${OȎ).-d?Ho7z_'jk|K\Z-0C3X>65_C#УM pQz " `XOWEJCa2j` =)TѢ38:R%!j[FUX3:H;hlx (lխ8-9JdI֭ROq sœ,DY짇6v˪.I>-<3Gfn!wn'w+ޔyT -EעRR_4gsiY×|d[e1=@jH9 t=gh*Ũ()T!S(:֮<3#_,0%KbK~wZ>poW99b0ոEʃ)+lE-_5x*1Y8ÞcS9C#ՀCz=4*G~l=lD 5vH';7ftx2idUhiwC@ѶdSN [p:5wFc:1otN̈́ )rCKU$B"ɉ|&}'.!A09>^//s+mĠ%UGn 4h4Ȑ.֡ASp}q2§<ݻU5'=q,2^owU&ڣsC<7b't*="Jn!HT&qabcsiHVf٧IW!ґ9a-$!JU[hP[JAN5ML+=E׮tY1r%mnC$. "̮D !kF3eA ԕ#D9zj 7U}w^Ld2}h(XHX_i/G=6s 痭.PBpR& 4sU0ʳsp.k_-ba @x8AZ|\͓#\C[VXgVm TH\vY$kҵ͹X ʀGݥ;)0Vx7W҇.tgSz=#ߌ0wˊX[>,@ղ0eYUhCO.?2w;"0ѳλHFW. GZv#1odF: i&7I:I{ǟɨ+fQ!ιQ9LvFH0Gmjj31~^鄭 /ݺ;[2sy~Mfjв\wY}MtV^3P9Uo'V:afIxZ`[qj_CT_uihFMO(t8BJ,b컕|,^ yKM`4T|}qH@p m6ͲJ;LNcI4R 7uwt*`d ? 1`aN,HDHE^ckO7@؏iUBj+;]S [}[`JRڦh>dfW|}ٿXzeB9jڞ㾐j/Md~os3PQK߇p+\R1xff:f'k+3Fv=AD?K7u1}@:hsX1F͐&P im:NҠ$SCKt=ԻzeN;ײ3DǺ1/3] IBjk1%l4j\@I>.@8c{Z7rÂRJw=,ګ3WGɀ{X_)M\][H#s(`=V(yH n"Fz p[8EA6顐ЏM 72EEO_q(DQ]g~ )y5]*mM6}g #%m~Wlݼ &~&|̀U"l_A&> ri\f$5aZu:K2|g A3P0ACӵ)ܩxX\L Wf ^OO<$4HKbu8Jm)Dc6c6b֞Uuf-4j wEqIX\^97coT{Р+ 5 7DPצ6T+6,$O|"y6L"I#A7>f3&g/> O,Ϲ8g,XA<8GU& ȴuhIUrE EHZt8ˤΆ f?1^j-`^̧ⳝ˖*RĆPpHg?6I>'MG1eS 5{DQOfnݏY{H/7R韊 gڤI圮-q̤I:1p9maMi+rժix$ω i)FL¢qw,TtC5 4Me ʉ6#̶n?1 _c9]wd1^ӂU0ʕ Dz 1^˕ҝNOBNNhٿH, ^HKt/vٖZ|2b(E]\*C#O t?.\\H@8HCw~L];CKx~%wnJ.p0?t%@gnO k.egnXBl>"g)\(@zsu3zfr"Olt1=ܝ==O-˂]naZnYAGGF%LSﳼtkG¨@ϻ~ ~>+ ̒`QwϩTzmX>U#5pX]q'R&e~%ܲiI#^'wM#61ay(i&Fޑ1j9?IVЉS~ ۊr6d~jELa*M#~LπK0e urGрtle{5 nQ7얲k"nvךS7-1xƣX.a -¶2,~ @*NƕtPEحM&4'[^e/Q]~y*&ƥ>/R3%OQyW>ZFvWiw%_^x[ .P`@Hw>P> >) recF,^ZiؖOR>^fxKlSX ݠ3?9$j"[BVr> 94'P8+פ$kM羽 tyk\@,= hĆu L,_wqЩA҇!YpWx A80IJa}N||4Og3{J.ׄz<>iKb(= _ 8ZZ&B4,SZ7A+G=.n&#slc%S揑{uH~mo`1"YO@Щv>{B)TC8gw۝Q;c0b^ЅkPt|7E1`1ӌkU)w<40FQ"m`:%)ʏ}?T]e9WgB:p~ #ZK _)tvMJK6Cs}L~:2)a>WQ@f΋Y'7>ZJ0|2۷{HK. ~h=W-T gsÚ \$DŌӞ);Pmz@!|GRIF va1_lUTL m%4wtjVegGsX{p3- V,F5+3졹K^- অZ#ךqO{sT{L?"lv B"l̄htKlYo!{4Бmʿ-EbqB?oW )Bʺޑ:u!rHXV'R͌ߜq3pYQWRm>ET.2yN_pb616I V,sdbE0A0 K, PjZ~wsYHv'R,c_,N|S:&ಫ-,/o dHƈH-~ȥ)GyP bߖ:!U:yhz6}D  '7|"b];jeXnբ̯=cGOpi )97 L>v>c1Wwp θ< ~䒫V*]2RBPKǨd26g) `2ToAe@ua T2πyxv0dqU؛9GTNT0?t/|h,:;CY[vuoŠBZ˿+sJ%)Mg^ѓ.)gFbRE}Tͮ[s%_J_GajQ!ZB(+y<)5o[d S0 KdjtO3%} oS_HDj) 1TV͐ҢdU+WoR(0;* zfۙOvJT鿯s _eKGqW;Y%wO8_v.B썗V07pi 7v.:{13ƱfnDoA>nKܲ PI3.Z}Z@#܏ۑ;㰮8s}_FR2le4 n}!L*tqWbEOơWrK{#\O\9?L)A^yAE,G=gYd] 'xнMiB]7:|BĚ5B h;UxtzĬ#Ḟrv;0*8e}3Eǯ5t7Xkx3F&JHCo@^S8?Aa49V6/:N 0'ԲSf7d\.3͗Fyo+1M,,)Ἠg%oĔ} ulL u7:d YA^O$9*;=m_sdm۵E$)5Mj j{hӊk/DGeD-HQX,nJ-q.vcZ̼jUj8|j^lEOd}aQvp2 1~7ш-X~&VpY`mEM}p7\NMD`8XRzY̎4l/Y _c'- =-',6rMK7>h{¸.7?o93"(O$? %|AK=ā:M5[ph˄ӖU=_8VH3~ז`sT}&w/Tb ,GЊ "G:Eeh?pޑxdŌo]O+ HujR5 S71^vI#Q#߸ >CGdȀbÌD /|H='l=А/74Yo/nKnV.ԥ3t7YYP{'L ׯgI򶳼?i!KWUۨgȹt}bN8M,Hm̖oToC45\g?J82F %Aߔr81k^ S2Aj-ԩ,3-Ux#}݌iJ*΋U< 1n\Ś=Xc@N=^w Dir1df <,: څ耑!h2{(kTw+$Pf Sѐ:Q Gc tŦY(DT ޭC3ZΣ08DxWX`dɻ=zUDO ݕKfO^ z-6c=5٘nlZj,[^+1iywq '۔y^',Q8qi"џi.b muNlxP; *ՙ }fG;͑N;f RӌF?9޷ K_ 8"pV[Oӫ@v`W(Og|u}~X û'2(jPș0('t<ҾPTt$XwD=&Q,B^V'KB#؆O0Fh_̢tǐdO耵P~Jq0}@S)W@V`Mlj"p: ',@)Ҝ [ T$W?YF,wN̟g>*]4vmH%_"_+4zqleCD7 W [~ROqRaR~FbC Pzl(l]87,('{m2{ȶ+#z?["j}ʠp7qs\l2p}Kf)*4%G O9Ma:/!p)MJhDႥI%K]͜[Raąm%zl`LА-Fֶ;ҵox@ȻW˰ % =)Üтc*Z\|٧v85W+YvŖPxެyh" ]+ÍG.i5Ze?[sBJ \1Q%fn6>I ?gxϳIJ onK m}td.mgf \T"gG(T`C˺5Q|-qS%( |lܞ96KsY۹+n0UAIAlL V;9r:kX~Ӂ88jzk"BJ\R~5g< >E+zF9Ek2S9h.v=Elʡޣ:dϳ"xul^RmYmd$ WmI8D:^w񝯽yb~bUԸSD*δ_vIF\CJDv-YD_ݐΒԷaB=/PZ5D LžZr~CY%߭ hרu(A^-cXDVCtim*2 V9_܉ƐՇ%uRGF{nOJÃr%!w_WSB! $vdSv湝so|n% #`g $ 8հזCOahQ[L%HBRF^acW,ԳV, ZW-f3ԪmG҃&~Tsqd0lS@$`we=,|zٔ! c i(Adm^)Uۺ ZQ σ%ͮBu%fk%'/3(C 22c} ׹Oߣ7 $ybG'(L[K=|ȌRj ,e9CB`WA!vDO٤>`ֶ5#<|\<1dYx)~lTs|Js)uZ#ZǑ¹ܧRLq5R=4d@6(9+q_ WS l;|0ڂϭ;$Ā~̃5YTB-+BHUda=M٣@ !'hWv'D+F V)2ɌC;jOrK1JJ)BsDш" f2giwv%N\jQSR!Y" 8FXe\*eJVc@eQABMB/%jt=#9{cF$g%ҝ0֪5 2yt?uuZ+DvzMg~dB;#d=B(F zQ__stD{nU/)[w]c*BZcK?ܳgYe ^܎~ +?QDg[byܺėRfc@?90V6y&{&[&3FGߖ.~VJlд _DJ.0;r/? ~s+ӶV|$<8fFt睒eIi$זTB4jS+2e'  aIG`,PUx׫4-()-߻`[%O9Z֗kIUNG$ӂs M8, qI u)k}G#><=Jq*zRNK$UҏR1%,V8Pu_sط:K:9",~NQ?J/Ğ rՍjS e5_Arh'nH0ʞk,(PN.\J*H$|7CYan(hC?NJv6?{z IE_Fכw7`Ͳq(7\y^Hth(ꋯc}9Dp|o&M|p$[:/6 恹hߺ޽41N@L+4d}P:2'Ð3˒9cI\J ,B] %0};{މH37pv_k@O H9 1Z5]~R0V?Rǫ~'y؜\D61:h9vO hee#hէFbs2YGcI\C_-5yR<v5vFֱP}}&dC2nϭU!T145{1@ .~=SZ0徊ϣhn4 #lGWKE!RY͘n)XqH,<ʺyKBhz^vE x\h߲#̈$Psk[h|3x6f$HDHw6P5ohDp6@Cê#Pl^{k}%|dqnTV?֨k_HÔku1L 0 |[p2rhnAjt"Cs8_喙a- ڦ6{ U|Wbr( >g dm ybTu)01W`f=--Ӓj*0Dk} 7/vy"2*yg*һ`uh:aܱmpH־KNُu՗)ӂDVD;o 'NhQ%iJc Wa}lC8r N;@XC1$٧m r SLAdM~ V1)? sZߒy a:ԷlKzO+gxntP(OM_UB 1f=gfM!#cYU/Ҥ\j+|)(32@X+Iؐ"lC wA?WmQ*XxXƂ˦z&_O3cXJCއT΃SeraV_KK((7'IH a]/MOAaõaV8ei:d(:Ӡpu0$.Ve2AVeSdF_oze/o>Լ>5O9 ] H ̈f黴9=7 |tgRUp`mLucذ:otu2[*D '9A\jr8_Fֺ<˳LR <6| zu_jhـ:줂{*dѬ)JeȓkIUθ"Tq;S#6 N[| uY&.v2 ㎜Wew)3w^"ͥfUm|WA:fk8=V!o.9V XRg&ϹAKN=㚎m܊o-PS4c &6VE) eOϛ] lMvY‘D6ڋJ+xIJO'bIr*Cyd|CiKy&F}rպ{Sz%Ut*W et "*VQ> 'D!3 I*3 V].]>%"qoL΂s' n$I~`4w22mz[++zhhZM "Tq^c?` ?ΡUW|},KȈ\ F6(0݅Uj3/ͫcƯhꉲSs:xA\1pAJr cQs1saXOz=hk'}2UPv(U Zog9ʾJĹW8ezE(ԸzLځY$0̦ΝJ%gS,G~y@qݷ.eqo;qchG ꔬv]]`ݩ/]Z0*j%(@L!)s}zxhY?dV7CjPRP^(nTPUFM"RfeHJx %*qPIX=F{rS>i#CV\s?<σk^vhS8Z>쭓[k&Jc/ Ԛ2JN 9wxׁBpBM߸?t~AEgeKh.7Ј7 ']׋|}p:97ҠM{6K+J:Q؇oJ4hQ3aH@0Lx~@F-BTrW;4PBjS!uI R.N|%+<)8eq/ߗbr;:~fr"@ٚ<7nә$lbXq"gkB݅F`@oyYJ|rJ Ȉ=[#BE274Wb`CSkR䍲00{rzC8 Y \aW;sٌ8s# ;)CHj]kM!&e_:ei5tD=Tg5n@mN)?3 Օ[G]EBL'ʿ<yHW4ձ+#ؤ{R.uJo20oX@wmEWEL-OU&ak-=}VmัX9٨|K:Sk/MS;ipfjb0bsF$m#Ű`r{S=J /?S!Rn.B4"D?U< 6ްkWKPnz7Sk<.A@R[3iCNP%M#FP3VG&!$ AuE%}JLdk ;s[;˚SiiFN/S c,c?g',Ic9l:}2,)*#46C?sWQ/ny#;{SG/"^m.7RUxJRG")c8X_hh+?,@1Xbh'+x<'fC"F"/:Pe9yTgڄijk*]yΏZל0T9OL803X3Hxo4Џ_)dVM,Zs }X;.~=7a( CC"Ѩ5r1$c fYwGzfz__a1Iߜ(}Mv%zmW$ɓ ƚF|b i#@.{}؀l0tYs&{}4" xCG6|tuR܌kz0\ȶyG3(6toާ<祋C]QG@xXQuLh kq:tJ:97ȷa Nrz&۔he=`!uHfXw M!`,"1GClx )kmLľ9i^ɷ|7g fU*z3A]zM,ye)gxd=W[ǀ_w$19͒)BbB=zT\m2 V`' >]9 G3 LiH75 v qATx̴&5Q׹P;i+wҊjf`wH2Ѝsйǭt`:n2{ ˕~~;~ `YNqi[ $S0n’%Jl,2T#s<:@FXp`,% |4 vzƃHor~  TM\ Dy+dFS]e"imMJ%q+Q@:8Ci[wRr{uoKm^ӑb}sowٷ'QNYޣz٤A3rpF04r)!; 楀]9K%'c77ynR|F  w|!OBkt{ zTireqz#q\^!x2ݛ{_n z9{Șa0W).Fkd \!sճDep+۴*tA @2LQ,h:Xh'P]_E)A 3A٢d?R뼿+{"ܠ3bjGp@w%CvsX _2\O8z ښ\TZ,UXxTp]/uK1_d^uwd|aSLFR/t5M'D4o֮8 mrc*fc|1[F냡M@|ޯbmVEJrmB>6%(~y:Gy6^IaZgW;[6.#Xvة襲]2!tpD`7֠m<_b6q̽ fA>dfH@6nC8 'R˙%X* ^2t};A0̩+G@ Ccg Q[eK)ϤLr4M%%-̝;F&v0$9Cťn:9GxKH66vޱ3Q{爴AqY_ 7GJGJw.tlzN+ aZ#wMYYcUOꥺ S&(gf/A"PAIAlL so9yBr`E đ->yo[WE*+\ mu!&pcG, Ts^8Y&=ϒŋ .Wu(!~1Gx}RK6v I22"X@K+g14@5FZGww+|垷 =Qng,|jX Pw~p M RT'NqsȞRY(E:ã\f3t%7 w,_a憐qbQTG`) YKp+oJ7tñdEo9H&ơ(b|N ]ajuJL8 ;M)1] _nX O-w34Sĕa Dy2$UyrȐE˛5`=':ҟ*Q9XrZc *Zn8I[xE R YMA#r#F: ^ɮo$w!%{ tDcϽ&(YkV"`kg t6#I>oļNxvĐ|iKo!&K(`9^6̸IUh=b 0A` ƢKݾzB֟*Oݨvݳ9;I7bw:68&,+(ӊ}=˅[#IIm9E,񖍙k7rŠ:<6W* Ty =9Rٹt#N<ۑ_XE^ 'pJjB@qXzZŢeOQG{pڶQ@۪x{F~׽U BTrQ`zSڡMs+Z0*ƤJ0K\zk4<*z=xus:õ1S+ 'yy='lb_MW0g-XF&hlqem".WtτT$4d㿔KAe8Kꬊv% f Ͷg7]cѠӐů0iw;!'& `NȥI/+f-=0 $8_@vphs6 \\܋"ʙyt Nc=eʢ*D qn a]1U·2AI^}4-taAeD|`-u&mƗeFçM?"B)S (UmD :QgY,K9H 8` _k[ogce CZ.tOBRzngq:qJ+rߺp*vYn+ArԈwѡo9P+s79kHxYb Ue p*k.ᔪ&QOY]*">B׹N\Z9!< L Z`6Tew2 ў<¸ ]+y{2_<|IAFTLiud*>l׷ k,JyvEM?r^$𮧋KӗMȾU`֫ZE"C{RF@éL^D&v` qgk<K8w(k]lfZ9'a6 ;Li23W83Vdcsi8gtD|/ZiA7+:7'p8&vRT߶՘<˶~KM&+Β+mur`ȁHڧjg -AbaUض#gC E۩ ֐wN~e"_?sx?v&<6N;N!4:xeIZM Y:mrA /49o)R}YbA)bVd)WPz; *p#L6S!'E?ek kB61mbd KQTjngAopvCڲsMH9wyYGrUq͗׳]` -8!5PYuŜc&.ɢz09-6|"WlCN"~18GFѱ)ZBcBG\*^-ZxX+-=aJtJ.*aUFt20J5.%S-2)#Pa"Zu3E< Qw4gE\<~@`sM"2lAAR%sմuEt4zӚ^l$*Z +o` B8r"X8;i#8+j1)hX|xe8!s"^p/]AW½;1o ]T[宵_Wvya YK|7 7+.1\aw9 :MtG:vsC dmvhGJAIF˓r`Ě08 ԂzW>I%.U;_WA1xGǤÄbzМUy&63^r> e(}#QjuK.\ ߃Zeǝr3u P\{iU_kX{j<޼e]? QCw=}(M߆uŴiV]yXF)$vK?t)DxFH+lEAYH2B7uOe>e% s.Տ?kTpoJsU '&ZrnqVKFT/F# &Lo41Į>VISr)RxQJvěkb#O`2D}asO!{olޤIHDEVǏg!@/{w(n=۬?n)cT=4 &tQR0z"m̿@]k~&{_tdUҊv?M25ig9$rsMY~UQGz0p㨘{R h$4OCSLjϬK4gCDP1(RdA95;V!Qyˠ#B 25Mc_*/g_kg%FqqC.N@ۿ4JHi3m=K!jԦEf6 C3Q*}BdIj_{9*U ǀ@QFD#,TSkmʙݨG:n*:Z ?,-O%rE'D}Ezh=V+ɣ&{Bex"w.Pt;JA*})cnE{z OWPvZT]hA% Xbq5K s +B ڵb:@bCjѥ!l X .fR;j\ԃ:ț%Df_ !#[ܙ{7y]G)[:bD Rg@i3}''K^˅YK/V,ˆgP@ns{Ջ(!S]~'z cj_,OW+I) EJJ1By:bԉζ5 Y6 ڴQu7}g3S]WB_'y8f{ 4)M}){LGrm,ob*pnJ8O=uK:VFZ(C&3JD[Zs7۫`nGY!֜ց}YY$!?Xu1呯z*a|oqdW= ɯp,Dy%jaeIs4ؐk0D>Cw'[OFiֱ)gDߞ< N/&p8ɟ7'6cc|]w|ҍW:pPQZF94KlQ {=IjtJWfϭ/eǽ F%`QEocT4[r&''Ñ}4 n$|˦)|ĥ,UkԪr%,0'_Rڜj]J8X`;&{hlH\w{l-hkI~4ʀ! 5!ZƠǑazw͠:|m9զ"/ܦ qIѓ%h}Xi&5|9[[YR3iB5ŬiA+wloR]xƧم>İ ʠ}@E nAqX0SZ: -%z5 #[, );ƊF,jݝGRV5kBX~՟0fp$-U*|y}:CtQՎ-Ǽ~?#t(7>3OkG^p~Dr;ZܣyiYM~nVjCNY=Pqowd$ D'@T.4Gq gُ"Lʐ3ǏҷfգsKz&=c)mXlGg#`#v~"ŢG95~ϡ`&uᵢs}ȩz$륾,}?HMᏈN/@;tK7Pg.TT_6ח9F,72+mo%h}ł̔3wKp(_}K\ ;4+ Ơzž4J]YRIg կ[߶=tpCbݓA֍P|N7\|5nrU4i!|>עudʏy"ރYrdbO2Y @Mc}G*C}ŊYN^e MV!Vu+x C'j3thQ!O=OnFe \G$RDI">5wnw=ݭf{yTtiIY8imXU-h?XZj"я3Aay7;N..laRKB7s!\.ZM#psk<~6AsEܗe{pP/|D{mkxgTѱ, fjxd)Hl `U `>GveUX(-"3Hn.eQܦR˭~mJ\=lY&9/Sn;'dT+ \pQ>l̮_})6^o&'}cqr9u31@ 34HC樥ON4i}M:,8V ay" d Q|W;(D~N=j> #}`WqY(a.~`9ņ XRu I_fsZuΙ|rX8;8^G(ôa)R?Kl+W u]Wۚ}ݽ :?c~5Cr 2"y5#3$ zhZ1NPGQ"v _wWփ㑃54B k_ `-{D;)21Yj<Ԕ{DB/N-U*6~tR! [h[~HGVUÖ/Jj wK0.| "*+fbbG+iNFOjL r̕LUijF~SZx/+ڠ{x)fVwڽ언uxEnο+YC=R7Qr3 U.$:N\Em)E Q[oSuLENE3G딖&*=wv!•;bfEV;]/מ$ԙ:NJ~~ZƳp#@!5KM灋8l_57"XÖ=(%=ȁY8Q/WϚ,¥Ho+\Ez*ۻvxYs{5Ϣ!Lס:Hv `|Dd_RJ)ۚĮ_ (5JTM ~\`Dg%液8b}SӺe1ZT8@`K' Y*xe. wSIc?kiTȩܘ%TX xV߱埞8bHmz0DkA3D#V$I8,`m\de 9]ASȽI&uOaUÈ H^k?p{S&MO!F2!6fl_>]X hQ=`)@o3*mZC5GZF ok~~x}QEz.gέ)nR.xl3B$I43R[ۿcob꽠 FME!XN2kXeDs8(r+<``oP-|tͯJ̧DH+[@W`fwV'PMeM\kV׆\@hpInVX[ *KOo 1]bٛdx,Ryx#5D ±ܸbT]L j& 2SԪz%I"it)lW≩ % >M2 yj ֦Ŀ@s֨uۊ^C =48b1ɥtӓ/`(ߨ :)u]pEU"(5㎛$t'XۆG\Wߞ$8d\y2U5?M:X"iig/+l- 0J5v0YwaV=KҀf|a7\AŴ%E? q7(;Ɨ吝DR|i)c1=P2LzQǍZ$QXNx{;q)]ڞb!&?lR{/ ]/9O;C77LԱ]8"[_7t%Z P@,eh\ٗf~gR &#=IáSr֤{*LE/0aX`B[@b0~q΋pEkNd_ddFP5}7 \Q>HqȌ-[2/GNA5C9shOra몏 &7|9:1*no!*8n(U#{u٘F)#5.nOU8T t7q )*+HxJyzl #8>D9w%(N;,M k(@r8t8J4yzP.1O8[|R;1Mй1H u%f^ ?1J=Sf_,))x"1,jԕڸC3\a$)TsCddly FIűvKP ,Pv52dPkfgLqu .4(9`GO^LΤZ^Vi4UԭjjB7mJcocCe BC&(/P] AТy:@ R]q]EeLlki5݁2e۫8I(Hf+25,;KnTwf[@=|a 2k~tBZiĠOOEڔOi^\!7+p qCM4'zk({'w3ΕoNgN}5=7>qJ}`K|?"G؞g0X#PeH"IJ$P%k̂r;ߌȠ}0ދ嚯OF&U10`DI=Rrs⦧lFo)W?+T1ŠwnÇ(/9MF4#deM1ad;Eã[x3Ԡ0~Wy?'gM{A>|J) 8Ƨ$iLG3!jB[L Kpr>8;R@%zx7HkS1[ZH 2 `H$7.bvmսʆˋ% EN'?ؓ%~dqd=<"bw[aB0N(>HݻkMILfʪ<'%jX spn|Ga!uA|5Y?|AQ˹fGn}54(,~4 CNrw&H:7;7A׭t.ϵȭ[!BP,y_ƒ:o1Jg|U 9dQn*g eKn岀c&9%,iHyLE)8?WIB4<ER!3^8@[ 0XK8 (͕P Y NJ~[AsC%>}dK_"V±M-}Vx3'.Ղ|&?hďfwS+6Ԣ/VG.яB&wzW׼7H^i{ܘI!/CvyADgcpx]KA@E-?W9XkI{`bK6Ij(ChdØYi5szׄېC.gT{s~MJkWc k]WJYu_۴ș%^_!21w.B yt7hLwp&ovZ-^2({gd-ֵ; ?&n]aux%5(*N F ^'q㲇f&vkeDu5,e-nЬ(c>㾃հ!11geg E%_a{[?S ﶿWSC#ō#q#J;\(,FskOlۅn[H-:ۥH8voYL$ q %{H裊 gЙ3*۶[FbRO\)}:i}}4M ̠O\[ mI,ɬ/DL:VqrlicF@:d& f=&Ćre7Bȳd Rf* D3%/9`Nq[G%SbV+դ<ˈ.|Z :/;j6o@ ىw!}<3(jm+_K.A3LX"4~ɳJ,ۨ>tp3Zw#pUK~F{yN-|ZpR@E>Uf@LQ" R;?Luؾ~6^P]ph],юTJhB<Ȗ1 cY_ë̲''+ S\Z RIBpajIb^~f=-.' ABSsklZ,ыMO ⿲εg&hʓuZYfO\&\;ۆHFqn[C 7|a &D܆/5pry30Koa{yCPj#?=_+U7p I 26J~[$`rY8,4DA;wikO'YحWAIЉ;Ɠigd /PHRC͛ӻC\ReE?8}v€oW/²g09h͔%$Q}`F%Ǚp5A{>n0 u_FO4!ceK]+|M2@r'?7h$mYvvwu40V=l'Bb<&uv !^0jG: Rŗ_V @L(vGGժu4vϥD UϞT0#̕Ll!q"@"GO c/ {ڍ/|Yo/AV=G׮CD9焲1dC*l-Z\AU[0__@եn tp*$¸AB^8fC@QNT]A]:N_P]!0$e ߏ?! !5iِ["!?uml..)Zs7(0 + wBМuv*'GU@pMY/z~Du%*"?C|tI5 g݁yZD_?es"J=>7:U= _wG'7 !׾MǮ<_sV/I|f>>bOwSMk o-hrQEN|@{2>Ql!7 P?s Oyw/:}myK}xm K?D_6Uvʿ:~2ܫ'$уĤSg'cEEXb)osX1VOK%<2|wsˆX%/342@nE,^KL`pE ,+ًb15C$->3K%>Gpf:1*/sH:C _ 8`~tH*@2m?qUtc;эƻ&PUY3V+x|?TRZZJ̐)y`^+vud 4` do5a_3 7m=0iAD-Qg2Sv92t8tߒ'hԃ^И4Dw:|.}U1]qVNiE@>k6n1jf|eSlDDSmU 8 9WGKeI7>}( &|$\;ah/֎ 0C~dIk"?:YںGgSiJ pBb?f?y"\I^PqQT( Q<¨v%IGPQ>7Ы|v$zã}%f.Ժ=&z*:ZWRD3J3)=Ω2d/<-ټn{`c3|uJDEdJ1-ٳ#}k]&7Xi*qG5 YUE( SxBqTC{S&[0ǿZ;k 2.J):tj&o{)iRYbFb4 T!4}G]mJV*v`jr`U"tR\dhǏCG^r ލ6  3@ ׫³kpM;&b ş >AyBQĕ-nɏųBlxe%9 '&fGHI -QCjo :Xf:"<∾⠃P4` ͜Sz b@ް䈏K!Kl6!o?VZmދ)eQ蝲,.\DRhWT;nhجQ -(|/q.~ykv5,4x@' wv_C1`OrWGr9sLW}B Mio/aEc`<3E9>\xj-;j}8 xt!N4vraX#N}ЮcaEM _|8+xkE>J=vt_TA 0˩icۄEopݙ@!)1r'+8c][uv^1. ,l*Њ .dHjŇĤ*9)If Z'#@X]!0Mk}Me{q(B::;bLo3;0Qi~זӜG޾uk$uohzD#$5񫵙B+ ك-lఴmUt3ЫPFp$2J#kX{'A y9IG(=Q`՟ q U*RW6yMpdwXC?/@h]0gKHp vy"VԡT[* >6B5?B[4yu [TCs~Vug)Z\P5B'~I7Ϸ@oήtLjT79|0e ƕ4S П#zF`jԴ:C7$Ghn=%PNџez 6>ejF+sfj`8+yǹ `<[늚ksۏ3q>\)RՋT NKT.Ľ6|Ⱦ0wY? \X!dzF(V=3<ϲ' F*/e+&ENu۞U^#Fע3jL#~QSCGBG5H)řhYh4 u_\1f&{很 a(qh*N~FߩYW~!f=#dI{ z79AKch#1}!nOL<}(m5 ʢ}2"vlG9Ʊٷhz{.ޢ M Uvl+ǔB(?,Ń7y&pl*Eۤsc?"BTђhbHmGSΒZb-O~-:A%,׭yGթSP##5PP,N§ZF )G5,wMz0R!Ld؏j8cmZ{+_A#W** Kk[C {R2Oe\|3B Cjz6%VND"Ֆ|#+Nܯ H$kyHh^NLup~@ 83$4 YbEvCaL˥ͅ^$5I;kI^X {xߍN0ݜּ(w5б'ᵎRK-Sa_3xH}ntw|kFQ򊓴T)S0lc綱lAG ׉^ YgoxAP9<#b\m(AΜ'VC} ZDRr(zЩcsX w}v![=mܣ G@i6UR(;%?)aߴnqU' $7N3wR iZ}_;ޝFDfle-gYT ] g*U$D8pEw^%me2f(fӯXvO_wwj޴XC5^I<!LwQ9$.ɋ1Z'p> ۽5?š00qG_fXW͡H9S"w% ġtXy>/R6a(X%S%9Yx7Yo˨_fƞAYGרj u "dϻ[HBVJY+rS./x̀P 4dAao{|>Ȯ[ (HWu_"A5ujzo|t%ܔ0xts?lTIۮـdo|:KCb]Y0 }ODg"pPب$\DPQDl=X.TAE-vJ*_^bȝΐ( 3{α}G:~vέȒ;ПrS0,g( L&M t()q+r۫yG!03*%F<׋k#rzh:i [y#gvex/Qb: γE)A :Pܞ/o½>S_9˯@@iJD7%,Ryfx{5tsZHK Z_ցİvy݆#2@ɂ㥷I<&1\P ٤DȨщӭNk 5)ҐvAR`,%@$~ 'U5QM-_HHJ(`F <౻~J7ttL#:UFM) 4碿 s zjwϒJܪk| {]t@J3;;\nEBk+AGJwd:<½Y~e&7y &CLV颭;=ďhw 'RF6/F |QeP>-7~caN_o Ƽp]"hX/Hc0QRN՞Ϳw|B1Yg(G-WwJuROߣ`>MQrYdB2d>.u66iyߌ uͫ#&֮o\3R}ȉy .?FIt7m+ ԂL;sDUkAdss**UN " ,COeM kw/msKz6:򷞉|<W؃xK o`á8Wp|X /=XUkcfjP&JYwd |~t羆HLjM[2Կ5 l4oAs07Uk>P PԽ >;J@HƫGh0,gy"@];m=RQ+.*OI@061gꑰ{vR:*4Zٱ u?O~ ڰ5 8R&4c-~L OR[}&(@>z5&oHJ~zֶdA\@vڢM{zPoPL[{(Nʰ{STTF,"sK_Dq~$n'y_*ɳK"w=t12IF+gBnM (^rA.Ί0]A9W)ϼT.j KtNM=.;X&Tk2Kul:pNG50mW E=4]Ѧ lǖoܪ+ LvQ_|V?5եwx^"~UʗM7N#Sr) Ma3x}=ܴAvΝOjeU6%e',WUZe_\B鼷(V%|~"|ۑa>jNjֻyNBa&K+EDa{WTMFQ6K Ί%iF8?V 9Th}1\i6xsHp]sLQ6zSJ I[ze;Y2 œ+43+;O]mRdΛҤR}[9ZƎ,yK>!+alڬwc6X?Åj0b_<"-QTm}TeDԳ uw[e؀#ݳ~@Q!gjqZ#Cq_aV V,n$j*4kDuN@[ 9F,H| m 7S珟p%EՉ!.#n s6wuѡ\)uTvD u]ي11f2~=jKHS[K׉3lTfq::_>?qCLkW3hLI3u\BT9 M󭩛YvfZ ɎD"RO\e}]ξ|8, rQ/p̵1K/`j4{d?L @-n"#H7JfxŶ~EH1I4SPg&E{,;^UJC: ƿP8w+bm1oԢ,'SM; 1"qR+vԍt]eiXFlYG̗(1݊dl4{/JPGRCrTM_Ɩ4 0q,@K&BiA8Zo:\$zseZQU:="I@G!/}tW{|3n i N5耗NC%E)CvFӿ\)"8yYOitTHgRg keŅ<o˜G*y, tIﱡՇ Y^]Q\&tdn*#z4w'|қs !76ŎUˬʄ0*3H&E>AeHhI\1#ĭ3 2/ :>4Y,Tx"ßAIAlL g$Vrд`^^ebˆ}(*(VC4viD^g6ԒtL;HP򼓡鐏BK Wݴc^X pMFzO1ʶ}EƖt;•qb"mʢ؂LZM̀oTN_@w, U977-IH)x`!ҧC 0]'8e1P[1 F:9g]<7 YH? Kh"-T9FۧKJ&heba"v7\3)+I@1+yh˃hytҺ/A8P/;kg*s0*-,Zr+yJ.s=HӢ\_\aByFa& U,` wJ"[W% @|àΚ8SW~E _B$KO S C7#tDN#,7_@Peq3n$~WL_u~5.LR}C>ٻ?~uᅠKEn DMxmSj던/lJ3Ñ&@aieognGZID=J>`XāWBsa+́ ] YaǴ1gm)%Umk 3jZGv19Xɑ~:Cԩ5+؃b&lV~DQ}:-33ኵrr*(;-b6J7gʰ6Ht!'%ZѦIg[f;M7%rX ǐˋc4Udپ8eM32~pQYN'qJV WID吭׏uƹRrS D7hI%7/-I!ĒBp+6sDW݊! *SE|1dYQ$٥&?lJn2ZNfWfbD80]9+վk^12! vQ7` Hl-YCG*C~fOgQX}Rz4d LgHa5z2/:' 7xCIo%M"ʊsݨY`t-c gm}ظϖaCR_}R9Tjٮ ә #<hu5_ ߂ I,qrw!X>DA%w0 iս-0RIAEF_4(nZBB.Hhy\/,Oީ[P\;;v "ÍT`$ nh?Y`u(]Jp8R`[8uG+.2_ H)"fGJ#<5H.~:i;͸qD"{lX6lZDj .VނҶv çibm nOIr,lzobPNk!H/g#L l+vvPvKDl\$t&jKchf)2դD\4ԟJoD*>S=>: ee_ll*/<zհxZ5v+uj1)YB/2v1G~Đb Xk1#6BSk+T@L")2 &<*EW/zA%_YRO Gq뎁 G?ɃRqk4e}%85ωݺ7ּ*lFHGqmrd$})fRAeAss#^XFW+ϕjI7:;ke''HәDdG跉ʼn;Žr@E_(^Q[tstt 򮅪 A fHǝNaM)m=: hJ7܁/pUX-VXCV18ʆ$upt|-0eL`l~]7N7鴸XXCŨ9Dbֽ#P,s'1mZ&Іe(+>/p\0j%t\\r@W/>ˎN uN|Sg5 ʽ }<}Vv>s?(]! uMqDd *N=,lM0)HOUk 'e-^f1]Cju EagϞ9;$T*^}1J?߽K"7V5UbJJ̚`z1יOe|y44~ffE-ˁ 25|FAFؽ[3R:uUufwݧ/|OZ҇e 4.<7x H-b93_HGLp~kC Pdɍ\9"ʀFX$jd]z!M>b2P (GT =g*LqPUvI(3gj_߭q_stAOwc_AQHfD" ]ZLm?t&{…>>g!fEh1pUaǧh=A4(738:n8Y齵X5(gA84EqTKLѧlߣfWvШmHΧ\CB.mva.Ik,c˥:LJA\C oC v͝_ЂG/1M' `+|$[!BϽ-ّWgg)Gs"Cyd_vT?_,Hs7ӭFOHuU8 zɾ׏[mBIɀ*AE/OCHSkÕyK5[]='c|m-w,(˃iCG "UDs?p/@/65*qea׹m84\,vurhJN$~{${"QMT/АWw(CWp0[mn)*,8ɘ=H+FSPT)abu6>J0ikxF6 Up;;?-u)la >mc  fxAx4 "j~6~O沢Q _Hw2yJKyjTRne !_,)9ιNS*|ZxL̸ mXs_Ш\dBV2$7glm>Rm[3PI,44*w5s_ܜW߃z~}?DwB S|(}l]f`8 a|C+HMQtď(y.{ejHCʮW?;_#y՝,Uޓ*ěmȲ9 `hmMJ2|*Q1cݔ gfJK&n%9םґvs X 0pzeہ6vL$M%R2D&AݹC,8U$rQ.vI>ϭ^uW2iZ/۝+?)5l9k7Tio#du * twR _$ʹZS3|#0"#3JTn$/LR#z뜂@# XsC3*+IR@ojEY_4G N,Qb2ONzF*P3}9g} ^|Ӿl|tf{q'+ꐭ@Jlfs`[X7⵰S撢]4MV+)/GOSlKZH%eo!;ܵF3f;" EO)]< b +9!Qҥ`MQh 8Jh=~26 ̪~N˹&O%dS:-y)ȱtV" lV puQާWqѦè'*ыh)0%k_opieS Ųh:䱑RUhP1)A Hwa ^󀴎K?boOfIuٕ.mAsxBriNt X2q/>h3l/lovr!/Vz mרp@ep?~H01jJ/D4W\E]g?iI/H&ezA^`bv-Giwz+ VzcnTx DXZ >42!7W\d mmK6ꇌ .0-Cw]<~Oq-ʓĝens`ݵ ng3'B|ͬާ1IQ4ե?!kfLk`^e8 l0k.U4)KJUͷM 8Lgmŕݩ Kr?4v]=l`;&uݕ've44| 3з0M)ߢ.ժ _oZ'5ųq P9,.oX7,bY2K״CBA|a\#QqjK>[. (:; Վpu3ФZ9#r/I}LH;r- T, ȗI/}y+$0-lS@Pcf%rBPcNzSُm?+BgDaF}P+K:jNF">yO @6[]gq>p] RpEa{ONԀ&@bFp\cIVd&]|J HSN'["$*LrOox&I&e !0hJy,Ox.<Á}m@\㽂+;16 S c]w$ Q~ 2۠p0n8c4i?tbR (յ+OZZ4߮=y-'hxe@~ ձWxd>yTFFOѭO&i=`HRANOn-ium"}>>$&lh'ĕg^lx{DOwP'JgX0e+{Ǚij.y ;V\nV%򷴗6LUtzZ杼)u#zRsQ \ȥ_J+# v[7:mӨZ1rWa>lKg9% ;@+gjb񤝙m3S@/C4wAIAlL @t\*am{xhZ5dXiYs4K?UkjCژ睥s0拐#ntZ8}j$K^enDldN), Ʋ=Z&Q_Q,{ @!ʈ $ree-Js>(a wK0%Gv;.U7\siҾE^[p`y&h&4W,mH^oz,:e NX\#!tl9N'Z~b"! m? m%m$Wa%@0݃ia 'mE{ +hv]B~G5xQBBvV+#F[ܚ( OcGc".zHmFTzWnnʱ"Foh kf`fɮ1>T`ӿ h݄cCtS„O4f \F%4eZ]Gsx:•#bS. w"թjve*kYܝ 3'xҰo\ WiL~_ YP! DKIӱ}hژ/#w]EqsĀUL~kT~xJEZ?lK${jbxvU5إB{:vat3]]) N&GH6nq[iZ ňxr1}ki_(S09'+ڞHbp&m+bǏy><c:?B+GֆF#jut*)4#|, 0k|_o*Ò8BC/3s )?3i 9o^xrj !0*7h2NƽB!;lv,D"$j  !1y 4_8Av4e#Y.S$i #BrEZ>KP%[6o&_j*dt`򇎊ִZ̎)W=)̺1/az8#}m>ly9Der 5ݘN N[,:u !ͺc?.^y[%mIM+%V e2ջιtJ4n/8ikY.9).rF Nϐ9ҬZ;:.g\_ ܬ a[-Fa'o248ntDً?{$)g\ĠZMH:ƿd33ǹժ:bWg6E9]N-NG^DVA'Sw}F,[>+ m˒ȼ=L +RuVeB6ʩGNVrS =u. 4P[L}ICGLw}tN$! n H?T#St<][[2fS9' L݉x,"X;\.צ@4aK.m2RȸOQjf?]@]hLm.J;~+uhsJ @L_+ũx;N+7U@C)ꤣpT@; Xp4)XR4AF4ەjUK=AZb(3~c4Q&8=e(k.a(dӠVBko,ЃVV4baay; -xcxjɡhz9̀"XO!$XI4HY\5/|O;y5czWw-ȋrXI)36DѭNDO7c|<֋&~,ȇRrGq&,$BzssSh-lEߒmqwCY ?Gg3wU9 M0%4I=PShRs[*vˣMՆo6'd^;X'#To]"#1V(JZ(kIxKC9l97rOˏy5ZkPuTFg i7!>XE0_}Yr~# y XM ;R % L]\\Ng"h T?tƎN榋9K2LN܉ XMd_Ob2_Sw>^߷K]s̑@[! [v%H [au L#m1( QP"F Tŵ l2_47PVg4toe +YUꝆ (Ny4{pcثAXd)d [e'?4Vһ\Z2&Uh?=D P/|<CySyj`.)Bh;#, g:#Zr2bƵ(F@8<`r<22rehS.5G:X3h3-t`q f>ř o`4,[|J?+_ >qa7*iXr1&)&q$C5OE[/TYcQ'8b)^A>q4> KX7GLa" [&~J9Br)nTX$'΅pnFjDse֥]lɓaO S^A߫fMa_&;ŴqA^SƧw!\ ~VjdUPZ,7NU41˕sŪy3([3@Vn\SHrqbʹ?7Ce_>= ςG8ܢz@c<>tuVljУ⏜2~} >6wxТSk #~ZxwMC.~1$uWGzj)>c$ԓ/5PYT~Z!|,52Gd>*LJZK5`;W_Xޤ5Cx  ~5Bg!H `?c=g==PdF+H[XH앎==!4([>X&wغ3sBFJMh2;t*X ~?M>0F/Fm9v$E ;jJC'g꣧_S&?` i8ɓ݉ɼ#YUQfΆ" 8\g狲v:fs{t9O_wjb%Q\+۴ LYiD7&EMԓO݀#?"m8s {)d[A-sKNOLJ2zb{\,݄Uy1UU,jqC.XRئ- v. ,IBAm"I!I;50,D~ÖVǛۼڡ&_YMFcFzˠH$l2I$4E*_/@G0R TpBAܠu<Cкj+tqDzܷ( vzfrA]KCvWJ7L[xzv9e84 ԽDq b*t6/b܆ё-JugA԰),ӛBk$I.ͫ]QHW\P\Ip,k4 UpS>F1>W /\!n,_%2LϭgSf-BNj$ҝ(('k~Tw_Aw"Y>+\K`s A+@#%,N.D=RUMG]u~48]PEF1 *}t/葼;1{ObM`h#]rq+4#d AZC2KvMK&5 !AKԽ;ơ!LV om5FbLGFLk7k]J,pQ,w7NZm{T>Evd%~+WMdV^MU͍q @61]SH3OM*R6" xj2,W J*E~r%̈X [v_Q<ϓB/Qn~>tohe{>TsOڷ0,xUm=4l4T!S3?BDM f(@~l`,Q)wdlkPnٙ[CEyd<4zZ=c6x]lF1#aPrg#dmB~]KR}]qFe.>Sui(Vgo7f Y<-W4X8s(("B7j[g}b߇&sK`fW0(%{jP1}mY5PVNs1Yz9u >h$bGL<6:zFпMN)]ǽnCPt<ۺN|+wGtG9DQoqt'h4D+ وi~qel@jQp b82θ1I4iojNy]BC_?!NZnܳh4tZ/7Ъ\KAȔ6Qŝ^щMMFUT_a'*N7[\`'ͳ[گv2+uc ܇ޠUA͹PNK-AOyi#l'!|Z PUFz(?DzWYX7Q-H|J+9pZ*Y+t 栠jĺ 8 eK;kՄHdahVsݣRX_ %ıKD*q앳თqi |PtӦu$ʒ㝄O"\""o*O&Vva't1b]ΆG!= 6lk&`"6^ s%Xݟ{b`v! E] 6qV}`xQb'Q c{.MBngS (yh1?: y0|ZuGl#XM*g=tez4T .vJjc2wX]"()(\3=uU\()em6HwW ȆaL14A`$:޿*,ܒ,iqaL2j(P0Oa$9SU)2E&7c/b&L^DJ5*z^ ߮vW;C클 otVNy:Oz0[OvN2%,#Uy_ּc=4fd(!9\,TsLxd_8ܡw- x#h|TKC ?}(笶8:Q$u|PZOnwl_`ս ғy {VyPRJ0?Tq.۽DR.w Os)[Pu~Dg. Ibٴ@60uvg&LYpI 㚢NϯO=IZ<&_V?ȭeb$ --+ ֠Ĵѹյn9HR-6,+,rݨ( E/ĢGo>6ـj Z԰Rx -#=%it\pb-2ּr 1&!z3U;ӷX0fKLkj ˅V:R+XH!ziiQu5@oDb7[%Y_PR./"NL6TSn\T`; Сz-3mH:&W #'0iiĄ5O5Mj:gf\g 0lY2oՇ 0/ZBH>e"nA2IAlL A;僽 ܭ\2$E~oE(c_"Sa]%rBL.fa:#I~Y&lVэ |Z|qot<枪vlw!ɹ`NJb26y&OBZ]w+S*ґ3򣄷`y_* -0NW<'+=cT<|$lQwkڄuKUAtma<{jxs[{OG|d NvxDT+ ΁! 7 Pp b1TdHgyq_/}:^ 27~S{sk-0CKrAZ~O"Dwj|MӨ$H_?W/5nvrxcxM>U/`#)2 r_ZAޖ%6 B= 䁳>tW߆>ޘ E/zGy`'qY0 {OVBV.< ?Tȅ,{-m1qFgC4N Jfgz.?؃ YN=P;XGKҰ!qbg=~hDӞ?u>9xubE*J4w9P HhR08K1F>>'mYVq`*]B1]k90[\t0 q3+Gj9իa5#n$IZgCwhÝ;`)iPR%(mQ/ԦvGE'-Ov$FRl_)M>/U7Bhd6;M{Q\QrD3DH} vi%{,j8z䳕7ɟ ^5Z)|ST(LxNtɝV `l7XʯٚcGĪD009( Y)Σ y!ɠ*fyћ[kMkmZCv6Avb*rYHPIokƔFҟTm޷PSzYEsdF(&y9< !fu,g5a7 %M7);Ym9Ds[z(-ȜIzoAdlǑo.ZU%γ}] zXB|*SJMRܱA̡}tRQ`sуS|rN P/냁ڡ^Gj-Y\*zO+YJ+9#]]o$PQ:ki(ײQu^x#ݣ(fC*L9߁pQJ$oӱks}^a4@;1ue4)'`Gt@YJm7`U=S JA| Ce>tU,x!m@+EK /1n>AՀ`GZ&YS5W/V]z\tn ?O>?ӕ*"?0#GϷ9(O|3hSg"<Pw]lR[Be.O|`F.׬G%orgzzoA%8bgeNݾ*KEÎ3VܟhM-$HǚAeZ\.nG,>s=Z_TBA=r=Qb[y( ЯFmxq$s,;;~c& -aiy!xd?=7]ɬS@[+46Ӥo8H'RI=(<*͇lmb+fށ⺗)x =2uKD(=ҡ }rIpV] @;uDk#(i]:{E=޻:f>T5-v =־M2L G{X\u6 6 vlݶə BJ L@ )I u6INڰϽi̘ܪݽW$#Z񭵀@YI̋b =5ygu0;.R'< uҕҳu4] 0 !ϔ’$!H%#]D9RMyɣѬ:ƌ~ #\EɽWM@5be6_GmS{ ]cPWٻ̤ <;i=c,=1)\`g(W2؆N_wЎ֍á9 ,@))0t3N7C] 26/9c {^ޝCakd q@nau^0D̒49ҹlKKܤ4潾e(B8<.ZML'YkkQlz۫b(k^Ҍ}Οk7/#m x3nM㸌IP.Cp+ɢJtjM Fs08ڽ4-̑;Gk{%ث. $miǞa,0i‘jm퍧+I'ϼEdGPfm<JĪSkH EL:H/ fJ1$ DͶeԊTzoQ۩XamLDTugwˀKиAsrRmTX;3 0Z36=!43Psאģƣ@`g"eL xj EE r7gJ%)cxsxZfglNt NM:,Ik^doiiM&`{z?Jo#CJsmgz-m^P5@3Oz&"APE/cȉO}vO'v}ÑUc, "c&c*i/ܥy-v [3PcσsW㋼p he\f>T1oBh5Ǘ(hCub^IZC?Y^^~ol\1`ϮZf+|NB>3AoLϵcC*^6:⃏Ax&d~EGŶqvaߌu[i=5֎N2TW ͕nf.Edpy#ӤEw} 4qMB߆6w `xNG2^:B_N3;0?C3at?RLD"3v{+aDp"DЂL FI9WYcBf#U'Sd~=C{XiAy6s^#amiEq8֙j-fZ,f`1+1oÐ\. jB,?[X܁&;"ϣ@1}0˵J،X5"jL.s)rYy7ST£[zvqmI*/UhiAFy*V6AJvH 2jzYp4M>I2w!^P Hkl/x ΞMz'ew Xg)zj)~rm^>R[[7;'vM@+ RO{QEp'<)97.i0o yy>TG UV?˜sd*Ȫvo-YɡHlUM_ KǂCA1hkXm1)c65saeSl;VrQ@雳2acM7,k=8Gm:&LY X~߈b!3q ̕xoRCX+NBW j? f-;u(ֻ*T5FB Ov,&;TdNǯ<,k"q{ ;W_q ~Ny8&QH̊ 6֯щƍۂ? ^~]f JOUMlc Jd-=Ù?=]ـ%L^3`qy=.bݚ} =5\q4q[5'ǣUm8sيS-s/E׷8>Vhr^)4m(CK|C0|W/aotG&KGhQ_4E{x۴No{svm#?'MLB0җs5 WE8DM&}2c/F )k$}` x̓!񢁀dj [)[C$cqs}Bě֘Ud)lNr{y9)ԽIhZ/'Q /1]P{rHIW;.cWvWAYL p9ʴo:Zoе\" 01 IZ (n)?jrt)0ՌGP氷RjrC;3 )JX4l"/\rxP 2y H[-_^_8.d@DNߨ[F}BG:Њ}j$ !bHQWCpQ{YؽׯuvxrO Q*!UzlN\okXo9\6{놌ĤO>@ޫ 3X{7of.3PqΣ"y9>e-jG>>Th2>gІϊڈGrVoZL K߿`r {EO0eeyF/g&gHI0FmjtFëm :-UJw05%*:ؗ+GtF/$`JH֠ p'*Fd]S೥+lw}&N7b>쌵s38Wߖ;L״oYv-/D¿gF9ʮAi{*V*{b(Yq@;&]2zc8)HwRRNXwC6F8,i6Lr h%=&>i`G"˗ė<5Xq7LbYZ qjJ_9p$93 >}%[[!qke&_3MTM͍zN;e:+h pyMamEMd]^&`Ȕa滾? .Gǖ vww^9OG}darn 0wteu Ot@ XmhsE)CXٵ>_q*Rc0n-WyXS=U%0QVJ lEfڔ[Fe~sr%($`#:"I _@Hhvl|Y)2=Y~9O/ ئj-ǕOi2; f. ˴PpӵUivq(fVmHOvL倀:9st`BVЈvΕ&6굽Y3vC#ÀBAvIAlLl~5t%Jӧ-*n1Tq.|6bv,võê/ *Sv^/@E={{ᬭ}P"Կl4c)z)J8ab9K*@Oz]j,m@u YibtbU}L.d3%VNA ?lt 8D=n, Uo`?4wRRTzi̍ :%LFP!<c͸q(ȡfEEQ?G):k٧`-D=Ġu3XaPɀoȳ:A~SOd:N/z9*-3:=he9uXd.ڦ`O(`ײ=!Sdݑ. ґ@A."jېRPvYG% :Qɭl2>qQsWh91dq= 6Uk1rmRNiM9V *8BnO)nO XwoCB,ZZ:G)Y ̴mߌS`wB' Dīl7a[8vWߑ^~E>ASg%홢4# Br$+RNqo*P7$s+P $߷Ra`bM^}@:d)%*ׄ􇝲,92a#T[r+`?Ap}4P*/Rܜ2 A\"#zJj{adM\TQ0T9bږHMF}q0Aco:fd73UvZ4>1VXmͽUuEuܢGSulCDCu >XMrBP|g[yA94d4}z=ae[ANr@kE1E >8H5 &Ear.XY`Sm`畽c{b39~q>8|*rw-+5GGg]4f)D##jtuUfAP>]^BԾ_HKȑM%d 1hh/ wz[wb q||*N`_ B]v f39JC֜R!>!G)P%P.#M!7Eȿ?}ʕx8ITg* ?"mv\!URTKM%fYmC+U~ScXv*"ѱ>q 午ApYԝf9PL|$%u%J10 OAC'+d xɾujA@Ǽ?Tᰁ[pd"s95{ kDW}#i4$ _dTts^4T !ֻSȂ5rBZM5T B+\ЅDUBT/_ z #s7AQ>PҾM6+ڝ2Za:F'X`+=ݙ2bY-{o݇غ ~X%?6?deDl;\uR6 'Oy/$"nQ'3MRga6H݅>,'aOƁ(lo>rvK9r!u K9.HׯY۷;@Q6cؼڋMY;ƃnJ}v֋h/셙;JJޫ0]SZhͬclZiRkƚkr$;CiGTc;f-/6MA@DLډQLp ISjsck"ab3V0N,ŋ?LC _X}! t ) AMŒ[.px! :t~xPv,FO-UЀ9H\=_2n7SxCZ' /F;hƠ/^IzbqmuA" 5=R# 5_溜j=嚡ОW$7Ǚ,H(;Y;'ޑSA}͞Jv%ӶAMo!V [%UĐ[vSvbNt8(0 fw's͒T>'FDMńżGf'YF  %@Ӹ<Wt!9zbߗ .U(CӾ.QjB-6}y XQgDS`NRs:P9xˬ3L)dGtС 0^B](tRBPI3.ZGsʪ{nmPiGG*+UÑhhdžAɨ%{@-U \'?2O$@>ӷt_% Eb%A?0X |u_b;]f*)bPw< jrȡ%jx7"X/*ע8Fq~b1xBT`$Z?$zL )ވ KrJxҥ@8Kaz˜>by+lq>@U [:2u%I:X;ru F{ƶڪe34PaR+ ) %ڲl+?v1l%|b(m@DCw/,Ӛ3R>J˝8]D*IE}^ һ7|mU.&HٙQEF/jC rƛGg#_SX#.<˱^52o84f>Iۼ%FpUO\?m4p;=vu╅#1+7UZX| &EM(asxPqn%,qH v&ɢ 瀞93m-FLPhS}7yyʲ458 XPʗnZpm}%=avVuX+ޭ*ٗxeec~w=!U}[3 L:}$h%iảtK]&2c\M{!D:SGU񦷇9E|Ra`4~#<|Xy\|r17܉āO_p!B2Pq^RIzoIBDjjdx8~~h5e^}P^|٣(SfqskTb LX=5zk<ʯl[;v w%F q| !)Թ^(OpN5bo#H?)]"6Ϥq`|cl'~ևHKنV dc%$X5J?w',zӅT;U~xdimK$l^!(ji nS~ 53:{Q/v7oEC9i6/߶mAEXď'"f4W^M*١N92!ttC&bi&'D& ߺOa#E^07c@GͱXxpyTj};0 @űop>,SbGil1R}RK&ivgOzI͞Zקs#LTqMvENZP(3PI  ?5oK?6$xscdLH |+YnVdF.)JSna\卙Uv{VjԖ]*5o?ӻ8fUwO=:z%T;AIJދ d2SҥNr%~DŽz Q*lru9nY4}nP,xB%7m y:5 㯧.`O̭~ *Qz0MW>G̩VO< ]} s=No읒sf!VT ՇgEV"MZ*iQhoa`†XKׁ7(}Z' g.n$pOrq[Yaavz*<5U'2f/<=۾ff$֍s[1wG}{8-I$ b 7'M[]#0$ UyfS}0)t4DD9eىM hWmUt= ΍kdBէ i$zogƝjDxu7ެW0.}X (eA@D991OW!` fgY ARJ65/:O|O ̇sO!mtIݯ[5ɰuCV~ ʯ?`rĒŮ'c쯾=<|DEL2ȓE\7gc<(3^JK!(j ][MsNӼEn1)iUAY~kykEAU>e4 WJOr."K2E @`x.96JEIMkCO0Lzk S( nix6bT.D8)4Pz=\÷XHAe=HeFѕty,*TbZ}~ƜVOcqbtuo% }ž\"+mY+@(8GQqƘ+;\S\vH,µ lp38G&>ww٩^9JfȪgGD);.81I;ĘYҩs20P68I݈Z-͘܅??^+6.b]W.[ OU8:qK=~ AlϺҡ1zy|W# pCy<$i ҼNjA|02aK(Ԡ\FvG!+* /r؇)%q3UX3AD =G"YZ P) T]<`ܖ_H#4sD%o,g-k r6{.il.nw"sm #b#Դ gOozƏ]1&g:\t9^ R73^$f=ڏrbH\J*D8j2"܌I]NJGl],S׍;Aɐhv9 'š{|aҒu_go 'rm岞L{vc –Hbx~6tW[lXxN3t$xH*bVܡ(c:$78=ŧ^W˲ &~'lD64bpMy0$p9Ytיnݩjqk YD20K@q7_$1pD .f?3A}xZ?)R%gֶGaeḟ`m/G]D/=Lv *K;#2NY =S[)"XPʆPR1ANN3_%=KX#hZj ð7ے ir@{OMCOW}DsqTPcFȟ; *ToaocbSh\УD=a]υ1 nLA[ƒ/ݳ˯ E["L<;=;''BXejBAmD{, NSz0hsh l_>;p0ƈ̧Ɗ݌U4Xȧ~Cn0/d 1@R4v#ETdr_{@\ =BݻQ?IJ7wv )۝0GzcK޹#d?+f~ꑢg6XDjWK~*D.vTx O39vx׋= uw f9~vKlj.(]h,eANsn z{Z}.=]3zxqXO{l0ב=Z7FA)2݌Le lsxY=7/`& ޡ׮ʛ<~=haL)Vzq@%nl=tBJ!- OQI[h u<$M*~Y΁zQHu9 Eݲ89LNB8 (N3(a=nK؝h|߱VntL(t=R W|l)>ÖHn!9xT)yـBV,xZ%}duD!&4Y):v sj 4VF`bODK&콃j seFӦբ-q!ɛA2:&J2I腩w~Ҝҝ-Wc+X<d&c98{~E7K䦆]_5--Gw7nm L&ŠHǦf_:{@ӟ.ıvdaX"߬;V..ϤHsl 5`0駉xVWo$@?9 #PTÁ 9nր5S/[: UIFGHxgϸ,A G\cdA8AIAlLj=E," +T=TI*koTlв~Gc@$܀}?;+2"3l@ `[9p PYC|M1^b=6?lH0G4 (׻1&(IJ[A|F.(|v ;0B6|Ux))ӜH31GC(B >_m5ѡ5j;?WnҦo ]D.kI<+&kg"pcݶ 榽 Q:+Ot䊆 Ȫ`ƈqr>B@c`,j$O=o+UI={/NCH {yjb,W(PX=4,k#ެ釀b$soT2&nIp1 &Qwfnk/ ~>Htc $: {UHSMm}e*gy^.v)#nKkmG_*LܖM?y%Rݝp6.M'-0\Nh0ȧiE^]Wb C4fd&vrM%gGb;Yؖl, ;Td >5ՆwR]p+Ȫ*nEHnT(uݥqeL{60pCHz@(NN(%ʋEC,Hsz?KߛFH!Te/l:`G$0|Hb^MaŽ1]V%UD»J~56?s$!KӳNs+(7ȓLc٩%r߿8l^aljʖu "uS#=;V6O-|zEK !~ Vk`>|tgr7:YsR?>+`myR4ciȱk24M99UW'8P/{vS_QZHni(y|8j+Mn]⼭ Aݚ%jIDznfO# `Z9+zϪ!słtD%t}K]q~W•8T6nu[S[W1a>năhSNQQau`&a`lU )kփP=fQ˛@XfI1 9l"X];/.Ef=Ku8~:{8V%2 HtK:CyR$W+0Ѻ|)yg~OY=oa8ZpFZ1FMСtM%2s͹ZGqf8Lk$,U_ %SJ@fX;HGɡu )}zLo@^(H)ux&id #|(ZYL 3;ҲubF{ݭ hͨh>+ զ7LD0Wdl:Oрw˧|+gP8lҏ w>c'>y(~(RG拏̦ВYoNHB~ KF9IfSG$P%QZDB2K#ܦ k =b}j &!~smI Fysj"8#(rh"چ!|uzy8>ERcB6E&@.AbX0*[۝ES0;͎go..N}vfjn9:.C |=5Pxݮ}:&5)Nw _L^7?úۮ4 4>fd2"^%*)1G/3XҴ"҈8-v^B;I~K5n^Afszg+[YWYs`T98s3w:(2t@ĵ^xDZ b~3=kx|^zhMS@i quyP"yAuv҂1MP=k,|A6e8}Pzxg ]G#n`Md4*{m9QnV>: k˦ɝMNE:ɽq~-]b& ^~$E d(R|Y4<1 Ŝ>8Hf`ԉ-V6}2ޠ%,u"o$Pf >Jrf!]XJd ܆ey}Cig%^uu|3[%P_nÛh~AyEF*ۂ) %Q2c $mF R?p߱ցM @Mg 5{v> Y6gK";ck'=[Q_=GysNi82S( ~6vh=(&ZC%zY~{7f̺7@㋲xrH9+B<LۜkV=)^n"Qď~cɟǭ-ق850Ǹâ2%pY$6,)Mk[c@(Ѥ,j>|x7x>=7ouFz=ІO5TQQ7F;nZ#<d dp3"E1Sr]X>PrbxF?>WI[ !ן{MxPwu1^$qU/H 6fokWhR OE:/ T+s ~݂uYYǑ4S魳7 kCMSJD_>b2W #Tc71x;LkE SenIz,ӌ[s`Yk{ɓvKKqY s,63:AdnKTJ#z;ލM˩M';KB&`=/Q+.$&>0?f.dt,;'ۊ⠍b)A7UlM3][#,BR9:`B|PT;Y>eu=tm"224*::GcTGez@TgEݍ?Dm_P>›|R9rLKcbC) "|Þ;/xGjV}{ݝo_t8FH{ѧp*q;"ctE6:j0 @X-^:o(B"ܬq0WopǼj~ vQ 8ipdԑ /TeUf^:OEig='DVf熄E,Ew0l<ݗP.Ʈ/V="8(%Ёy=PDBs a }8w5w01_huCZd Ղo*? LU$❙_d*Xգ|2 1Ҋ{zG t$J\;މ%axQ毘:Jv)c13bi" ?iE/ʄf?`05.7H^cNCo2~r$p2ʶQ)K]N>2΀{n_BⒸ6(^sLHL>eN0,^b= @ D[<5>Ƥte&mO]##V#kYA :diٺ U}ե5<CEo"S-%sVAf눋?ѵ…uQR hu>|ݣvwImL{.::hvёņI ?jIfZQnp2+~6m ÀMRfp*q]z* e{cXGǸr1Y3pjIQ"q{|hlXfq<8s)ٜV:UW [~ RD"Ut 2^,:3s|ݮs 0JHv٬ɗb'کī4xl4BR~3$MNß)mf1c\@EظI:f2ȟge=F#ʦLܞ*Hmr0 PN􋭳T(EuN3/"]Iy4<4J.b?tHj×{u,XX46^lvx5qm[MHZxFo":'}T1e.alKh񮊘Vk\20-crΛZqQPY-[zC zY8d/+NK`aw"' ѩhof}TjiÎr> 5|kR k&?$xF}3yjgv{QFҟB,'悪9K֏/ki0;0|\[V93>l %!Ϫ8 ZCz`nc{%5|Qft$s|/x~ AR@ط n=waxhRȔ}!\q TQb8w@%{H-EeÃv}jnJƂHS yaGoc-@ FW@ UYG 0*ˡ]4xE ;. Qk:1NLV\K 4d4S@S)`"tgp̂ȅүL QEAdE]ݰzwH J)se`Չ)R%&텳`E} Xq~gxfAK*y<쬥Z!I)B빟<sK9Z&$3#D'=Qݜ翩^mYl<({KcoIƙԍ5}VA:Ĭ B('GmK v34if Ӽ _ HޠQ7w׌1.쿋nTNgL\w ^~=b~n2KƉ=*śs|(<+xzXp:z,q_VKH)ycy&/vކRx?K'f|NGmr@nآnZlp3x;'q68nȿ+بY=?cˇz;('́i#uF[Ol23XHx">q& z5WN4'tXm[q2eꟑfM݉ݑ/D*6oi?*@rze6;s;~CW*ZޤrnBdzG&R\`\-G!umTeA+1A؀ٴ>ji_}O,rڣ="6Tx;m|y` cK=!<"X.aS,'w3K'IR"c/sBu\\Bjɔ$ym /6Wڗgm:q[0 R+Ls ;XǓ ed*%_IS[jG暶B"“iYV[ o[y&ʪX1J#I3B /x p}c|.*>o?bA{Yt+%3߰7# ^C̍8-$w( Y.[YA)"~Sn*pieaq {"+8Kk%:>U>E,Xjh3ZQ8 $6z0yYPMzTfuk:fy?Y0 gvoi,nHD#x3ZcpXu3 |A?Ƨ JeΎ!&'oqd?uGFe9oao3 Bnh.}[)#x+Yq*2tP(aW,;QԎ+)   ~,N"d0 Ѩ[7ES7r+ 7?.|Ftn I0A"T00qQuJS=ǘ4K @'l"%QmTA-͢ A-hx>ui).!/U3Np HUcnV`JX#?i S&˪SZxpيN-ɷܝ*`mL7/ƍew~+Ǡ"Ԫ;̟x>{/S"4eHp:3P%~㸉PTPAwo?i`93hDŽc6/©[ZD -z*X+k"s\`< '&GA`Ww->G' ?,#C̔qEzy $yqߞX gj7>! [lYAߑ"#^T v], Um(7T?,f8`Ux?8cӽ9жՏ5SJM(#:˯|'*9Pb#ЙϬ7h6D_fԆvh)j:Ij9{hܵ$fɭϑ;0lf_oY {/# ЄL8>,$|9jz'0I;.\]6 E3cC֑k#'UI K D2و pYQώڽ%꣩ҧq IkE^mzb'/Z3-UqĴN6*bLT- t.:v>k^`P Nn~@۔^VO%`w?܊] QڤZ|Uwfh$We޼0"z+1gml&:d'?QF" ;пApYtR%Éxdzv; ^ɨȱi߀Eg--]|(E[C,M~`xJQE4e)q:\WD#mѵ=(J sPBR+3DIn%:yTCJTa?^9^Iv=Q{%Gsc1"xD=&RR a⥠I]!7W씾}8{zA\_w\G[2:S2#1cR Lϑytɳy0M2UOi.eC?͛ւ(VMMfIrԙa_ Όրux8UrrJ?eZ {TX= 1~ے c3lNܖy9b%dPD6q Lw3-kLbO}CWDP([`yF+k1NGn{oC+sY=Ϝ'0m> YWa5<}Gi޿XXX[`B\rl!6쥨8z1.mkx+KDUnT9k_%1&ヿb]`q04c6n$ -gib1Ed| S9ezde}º=aA7ٔT^\h&$SaY9oNMR<}scZU]Ր戫ߔ*冟xVA./t;v.7ʎq;PkS ) ?KN>TH-_N79$aDu#tFS~ R=Ϸf^P9T<˅Ũsq 6Z㽯l590ޣw=}Q*N/c4ƀҞ> D8c:Y\x njI6,.8'S% d1v[{$q5ƃ2 H's`8/4AIt0=ΔH& 0Ñ͖vf?zXWDz&y U*.wK&f=)\ !UQ3TG];gV^l.Uy>9 2t/9'3AE-M4x ޶,[g^8dN WzG}k| U◙ s[Re\Cp0Btj5t#-SMF%xa|q:K9CwMW=;$ :3 Na8% fg'U1/a)i/Ka(LK&e6=mK$s(86r4h2^~ֵQz-0ZU7}2HB!mfWOcWw(o\W vpJ.@ꥁkK0L%QD D @.s1U<4*~I8q4:H⛅m{ NoRJLr{$4' hO-Ls}&k*P[T6 ugD~L5¯ 2ip< GA"2U'Gsb.1|{ n V`V^Rz,|JLOu'.Z6}n#*pqi)*f_qca,% EWa`aUX FCUtTazCEc<=@cbM};Ru lATϛU#[Y9:ҎN82T۳I2%jA #T;N^s(Dī Gzrw #jg/~8ipQ5`-t3i+EYWױP)8`賧 |Qyt`ɸYiB-VHJx뀐1dTb$X_wiYR f7żR ;jI` J $4 wnb;UHT }g(+bDuT;=r6>m =kkQXj۲f5st4_.Nx4<=3aރ<:QlܒJmRVJуD%8b]zdZ +75lTGT!4 9ٷ44:nmpɹ.86$v%c7Z|nD1`Qc8#{4X!ctmƗmث8Ȋ s%(k& dˌq\g"@M&SW>p "ʯ.PQ?'B'1NK!kbH~,=f:L{o2"~Úc6Tk2_7=*l6ƠPqo]*]']O.Rw!a^B(JAq;Pj$S/\f[/XfEW_Bl>;R˦ ђ=l ~.wue厧rC8h;m=NPB_[@ζd{ԬQ ;щ^Lo+=#@@'v'Im  A&\l_0Z:Iu5+AY,_@ MٔVbJ *NǏ, 5| 2h';Jb,P*PT nъs^X,f PSHo S p'xvrP{0](a7Pw5YD.b|@Fa0 *htUswҫ5Mmc90/ߨ hߎZw5*#p4 jmQ2$e!TzG6Fs!x>]a]:2?BiO~3X%-Ȍi`߲/Q0xhnv]:}>64ڷAu^"կ`AЫ?5 @CH# e'ID)'v KB{]%<^,V 9C9m;IfPi"E:h֘!w'^̧|H~DgR<9i3 ɅLFy͚x5NQGCqk }LYP'#]5 kFDGe/@c^f@32Ao,AAj-+.nyWitKoaz-{C`- A ކul>V 7"C=yCpl3-tK+Doy\P6si"ۺ8:EVDyF. U368 tHAp*( P'qfI{qQ L/9)ⵗְg"/"Z/mp/%=t<GR7}ynD\Ww !{ 3jYŷuy*_ŎaN::Q3^1ki~+j=pO·%TeZMQlܒdedqrAt8CRΪa Z*]{ ]rƲNܐl2_rʍ@NK,|/?0fKiOtKָaN0l^!b0dg~F7=T͋tjw[o:2jn"]eVj|6}gPGC8,6xN|G@L']s||G5=aRq4M(30VE>f0[3|7(>3]cğz+ݯ9D{YZKِcCd=!`n\ѣ,Ә*&#l=:B%<_F*wVk|ȹQ׵MZ" u pHXuڣrbyǁC:+Ė?GIƒ:!W Gr])_P~ Sq=Kn*LX<$br& >ϟQM*S]G^g54$- b0}/g.}yP |> -n_Mţ;Бx@%]!,GN[O:-Y1c8 ➝K_r]Kx 4K1 ;9HpugKU;沿ʷ~pt.]2|݈?V^7_c˓{Ƌca3=V Qc %mK !=N&J93}9J A[Wfg}*6{%?=%x'M"?66'̰}d){r#~Kl9R/g3㙢yyťh/a-U@[Fk8$ P7cK,S]xdP6V&ѯ#:^2b]N!V[OXz0|Ц8b^^Ha -ӑш%\Ww")qIr6epqHE&W: n2G>cAс& /|HcDx#ʚ^BV*.FJ6ƥ׫ /Bn‘vJ4P9gU IE]~r"sacrnv`1 G+c3\~Prj|Nbtf7EoFȗ)G=mp4 V LH<|ЁKǁ쭶w%"l } m*_‹SlG?+>;,vLpW{iE^5rٱuM wZ(xp,. Iw)!w:; ~`aIPڤ4K1𭥈i;J\8ՏZ :T=oa%D t~3r6vuڵsDh30¸ėR-{^) gx#I,K*5xy 7a";+gۖIV/ wh >.Hi/}2w¹$jܦ§L^B>;q|Y !0("[wS503K:Kp28b}Ʃ&nK"XMg$՚)򫵼Ax_}a,eHdtB8 /EaSܖag 1BX#Ԙ30 Ly[ѩ6pfF;J́SbHgw,Ac=D:05123q+.L}XK֕SпINjSrx)y%(r*'@v4}$ "#B㩁$-Fu$)&A]E-j?B38vec|V#oGZ\xz $lX \{~N:5vVЬ$ſB bBF !EyqY)hknn/ ٯ_A+vPI<$ѣg E΄:i Xkp~6T"RZ>2/|c'cjg͡m*H&5s wMs*3A}s1QwAՍ(ޟٟ{hRm:S^ND 9 (2VfKORy:桿PHvp¼]8HГc]g ߣrlC#Fh Pԥ\6KC8q2 0jӄT`I(Cׄ 4-yȬ7B};hsy$ZUG F|y)@'0J1tJwѸ `qﭹ  %LHE]3FBg jF0fpL W0 B8D00v:5#B:VkV6bJc@-ar\,|OΆ;4[۰D ՈĘ wŊp!< Y]EMwKYM c)fMqjܷO Th:7z29$O׏gQu]Wїୗ2P(&Wi1g7roN0aNY. 1&D%7O9=-T|H f,)2^=ϒn=fa94CѢ}&3gOg|D֥6 IEx(Wiݕ0bD˄"Yӭf<~jIPg,MKsUpBkh$ldȀ?ia6\DGD7|^ѕĘ6TDȣ>h,h2o- @ݪ݋ p1  4p9IQ3sv,8 9Q(,WrkӅELfL`|Yң0 -ډI+Lvנo<GB=qFzw^ w f.;Ww/TOh{ ~ g vww?qugRCX1o+JYFz P}4َNz´'y:fvl0o_B![EۀRTrjf ; &c<)\4E[~|!u}_*ZZ*M' ^Nl{Cl.բ_N2+2<-5nLЧKuYI탫5^0ASʀN;T1iuOt)>r^@s bLŌeh.pT2#ɱ,j;xP&Rtqh*ϡLүIە>n")r[8^rx55J,RTbODI4)@ZflFȚ5_2tбݽKyHPvG\- ]hk%7n޴xKek?RYH_-9|x`Oԙa T ZQ_ߤ,Si 15.ϐ∛k_fOx19LA(B3@AcIAlLY mDkE~cGܭ&Kfp3.bnsZX}}!Et9._v\X 1*8C+]4oߣqXhεO2O~w+nu-["{027ph)g^ڂ}㪋0=mOL 8qJ8T؋5-A9oѳ[lbfZ#\dC]CƜOùi<2G['酘 Kyep)+00 j@7N+i;%Ge=䟁3+1h֗x),,h4mq~U搡jDŜ51MvP1:=V(I<4C騀FOkNniREl:7VT!;1ZD#h49P+۪ .ƩuoBk_7WB:^rqBv%j16̄^$Hw@?r#φ^.qˮ[Wx7V*oڟ- DPh 1KLm ͆Ҫpƈu9b 2.y)ټDPB&kqKrr<"ĚBhƯ]-H}J.(8hD $J?1;Key^<[i3\/7`S:Bz$hGڪGЖJ`Z#+rhڳ4ZBhBCf-||r[̺áo yKYSjoPa0qC}ѳV^"pK\Es;wrV#g;Z'h7vUwaF4Ca N[l^ۣZcq!NK^R@gUg͟*Z$g+g:Dw^,z Aݿs8C#V tLvGcZmtUo;`f.!ʚI]|[ǧsd dĻ Տ^pbaVO<ɏ9쉬^3ˉ~\TqjD`G^ftF^- XˈV^w˺iyMN G x ^KNJKc̩!RvY4Rm`#]n{QESQy; r5|deHW!x<ϋ;o!unv?$04~p+˔m8 X7 CAr.1" b=º0&zms`9*=̰CἫTBK JJwaȖ|3e_ C<`/~Vet$Վ Xs[DcV[BBfv>!Dx N+ g۟(C)c׃%_G+cjPqUkGNwz'|q9xS7a70J2 car"K1JaEA@VPjC`WI1ѝXQ`ic oKp"{|[is*mX$BӾ! nUz:<Kş0^& 'qhjaȦp`;!dzn$TeU t, UT <8zY슏v,c}WWthl'V ߃4e^i-6/ Tw l!›ΜKgjjsf'*V*.lxɲ%A,5iW7:IK NacZ8{΢]Zְosu  /A~9# S7bn9bz+vprIJ%Jp[֟.'F+Up)wLoidI *gjwKx4IFqgQG;Nmq,SyK)tAW žXP \p6w=YT}-|ا=KCO)]r$}m[1ƑwhG}".?n׿oIK /G Yis,Ϊ*l`ŅBD9sWPb(z*6HN^1 'ʺQҳ 5hƧR`aa$: k _욄5b}8YP6~]`5֛95zf_(tH ,vJ+X6ţD]F]M==A36S ሧa+Pg#U^ALΠدmV VcXKLh :{h/]M;T`VBىJAsjXd;7K@1(4(M(L\8sY_j)jcV)7E/k²}Cؤ DQb<bYĿ~7hf[9 C/ԑaj.8[ɄbsM7\?|y {CxӃ[ 4Sl6`+-HZ-/KAP&\eP(H!Y:麃5TqմW3l&֝u j8ko -'`b~&$3 Ԛ{"hk}jkusdw^eZ8 Ƥԟ U >D ;ɡLgvF@>jOP[J4fg ~F |U\!,r@ȣ-|le>X_@$#ҝ-_Z2@ow_˞$KcoFw&k-~gܐm ]_5}+CǞ*>=. (Ug|ez3'V7< @QVSOd8ק'3q9\z%AE6YM~ב!L&YاKQAObCb-CKR㿄t'̘^Ujnɧ/*@3ux~↜TfF% ^kce`y;*n"&D:ӕsjʶ9M#N|zR&HԹCIߠM8\yM}"/,mq<aPr'ID y[D]($N]'i\ɑ xϻ}k!HFrAE/UIE861H|+ mpj[&AxvU1v$/ɳjs-kB !-몺0Dri1ʹhom3I9فJ'U_ƛ ?GJE Bx'#;(Xx3S,QC5)cuGr^B|'2R$Pp c?- Tێ.|B&:8RǴp% PܮJ0!!sbs x\iuPF^\?6.l2q/ <paUr?/`X8 jF; %틮a3ͧsXzVW7= ~HE%L9%o"BZX\pKK~Eϻ@ծ Xav& K(}Al SKo(E=Ck'}f=>^G?M?qDve'[W "FgިYjwA C)i+4XF,G- CIM9!AqO2l(` 4gU~CjnTS+NypkQšu| ;b5b?˘96&@{$&^~y"7;_nh:XʬFFlw*BLA5dK֡783W_cN>lD=p6M70;w-_VLIgF8r'6 Ŧb{I=r+?-65ËndWjhlf|+gpmW6Ɵ~LDBpZQŎ3VM h/y@FuW9Zfw)m^MРW+D!$۞X=AVZqe)**>`L¼1[$5̒/z3}Ajvs]ξ""cq}u&`@-b&^屹}Kݫ!ݴ r;ߜ5e8Qq5fb(y$>@_##VXmNN5mrS5Px'b^@BϜ3g񏝩lRG8EwepOۯt0q=|ltII-qoKOE:Vbuӵc' u"ֿ5GcP QzɄ ithV9uч:*:E!p̈́]Ia P5ΫgܿInz+du3'읦QicHCGFUXbkmu;NÄO3kk)7,{5콓攏T)O30ꌢtK>g aiB yxޭbtWZ@|PmB5봃P'CEM`u+LVU/NP'Tu+OPY?GlnGJf}6-W/ u} nJ (EV)Y9>0 H6?yQSk>QX#3!'.T[ţ5z ִG?OQ1Y.`/~k=zW&'xC:JZh*Y\;^i\^a~}A %J} L൥/xG^A_=̐щ?0t%^N ydqfȴЎuKT+-Ho(]}z"f}+hrZBJ\DbhEgԑɓ&~7_!{ski>`M-v=DXضyx?V+GAA]/MwaVy!x0+Cէ.<:_́b #\C8w*ZF!8M˃u[Uxf7حJSFvK˩0h$q076v+{i]BAIAlLPzMq°m eMlV zo;%3V?i!J:Hi n߆0;ɭHTջƷ--/MGbMkF'i5h)]<^Mr=̟~<\ b~IWݬV/I+7m@w۷At4h't.rTCc잝1B-y, [S*x5S݌<Ybh)T-E&Udz3, /$flÚ5C&B^BΜK`)/cMW6+7yqZuNp}p ='0Գ:<:Зm*u~P%W~& ȠF|j'KX@,1&&#D`L(؄ Ɲ(qZcF]ZuX1iV&׼";UK[Ӿ݃LWG!" ./ v/ρ ym, N=Bў.2So&D?n[Yl穊Q3kC 3#ȇ}fi0 1q(gd^8C,xIaD@(Ts sl>ޕQaSu D__t`u؉v?}:>mS4੓;ɒomzkU֮Dqζ*\"4mC}O+߫' s3_oWkAi[jh[2$Jڜ3N^x1?Pt6E:'I{~io*٨"g ތ7HvKAhp~hn-FhO,Qb@.F?ew4Ri)5_Y`Kg^.0Y\%Y^E 'y`.p>]Ti6Zq˼ï>+k!r׌S-8qB4ykPBgNRD\c,M`7/TQi?YF<1]QTJ r$,ϝ,ߝ "wіi]Tocaj.Iͨ4Ti^q {bv2y`}Fh8À%K)6L}8N$Ba=1C ;\9ImJ52oS8I#M.?R~#'VSv2%f+H6fCp㻉_ >I1ABO&"靚9'ЫR6H::X$RJ [0uхtE\VG7`Eюch 浆^X\m#DO0o"Hp=2{mfĔA Nt[!0њԐn,*4 /tG%tx#J\3m}>{?Z ['-B1f) m3FDKAG*a)_GupuGй8`0< &`wf.nx&cЛEj$(F *F#l{?뷥`oI@01"cn#."Sw:[rY(1:ʈ! JCwe'Bwk9k$geM;>B(ٜ0ADg^4Pܠs&X o}t}/\9\$^(\)-ؿŮS^~)xNA]-c#e<"SRE63lؑIW="a:pQd "Nb20d xx畊Bw)NʾEaQ1 (Sͼyf(צ[BeIk-s#_ay#| HP{w'uAvd7X#2꾉'?]O^pD GC#PC!I1ަC֑E.n$i<]kyw#F'~Y(Cu81 $MR#ּՎbಥĥ|w6Hð`ETrv㸫i7ak%5Qv/9WFlMmc[v EơLΧ70qZ2({5SAiםAPuYOd`’u7K%{ϲWЖAD5j#C H}O#{*\AԳ]!Lg/z/2TPZOJҗ2 4-K( )?w9 .J>p+Ɨ";T~vbzMe1$IQD23&.f[d9qSG]>;"7خ%&^PɆ!6~_6v\dEDBCjl4)]ZP(8~Y0gL 'ȸ2+ 9sOt2!`%h9Ɋ2n8!8v&.HR6P*Z?*D߂%ʃfasE[ڛHox?M(*ꯔsǼy1պ豈-t 43p_#o)j,y-<Ft>"Mڇ+dppJ  ˅ӞYsk$@36> OӓG)ڈ#LFli)CZd9BE\iQШ=`M:T~iB _ 3冷 b;ݷ# ue@cǨ5=|$0H~idK&N|F0ߞܚ{ {a> _9zU:'ҋhٜn3\OXf$ @g#6VNV:#XAOײVK-b^ȟ7yZCΫյU'FkWL?Cb9䥢^)?zײ3: Z}u=1XyTDZ#e&VҩNid3N=~6@cj3Нc Ż|]x)IbWUĤQC=HYy,ϰ_}Q| 9?/(jt_ns?Tⱽr)]wa+8Bs:xea)]Em;}kKCUcIbIMD"x#~UIwĈ#mDZP}p9ΝS! 5~D5/${??jBEnKzSד.t`VFFF唶aM,c=cF) skDKHibړ]eLS훾_;:GSOlF ٝhg܅S-#tW9E%&:㴴BDQɺL{ږٲ'\\+2>b_3Bעl=S M/ ! R NhI”%+)Qc;s"~UeS|\u?G}jJڷ5Sva@=ҁO 4wn?Z .tc>ѣlNYpK+"7TI T:*1F%aVz( Tb?*í<ߐiwK"P;?1{nmE rO3ĮD<L؉}^(s½x!β ~\"y*9oSݦIjn%'iTOW߂PE"\!9n:(.HC0@ ?[k0mMCx5f)4^ 9UC崙6-^)Xҥ2PcmE^N!Q`'½؃'**Go"R'GGώ6q4M mZګ p@"aB~vUEp}As'0r@cԼ嵂] -6{:4B^!"1EvشCv,^ fn,>1o\yBO+xT6(IP^Ւ Oz*`,Z=E>$tI` @eFECYS*ݹ]0 b_. cf;S_ a赢CN(Z=z%ji t"4Kڲa6ﶎSt:;"S ƴ N}5 ;Awq,]R0B(2US3f ia7!MU.p 8}K G 듯ᙎXv]ѓ4,CY-(L:1a۩5 ЊD ?բDN:'>nIW 6.=Er [G\RǒFjc#4ribi%GE7sc|O5rTJh)ِ,i(Ҧv;+ FoכcbcJΐkpNs! h3pvɻD_$s 9Ԏl;&Ezt?nP+'fJc8.ɨg7kcR4,-F}{<B)F~LO:5틎`_,tےt/ mjQ a=-e*p<(mGqጼ~7] .Mn/ 1R."iPv( yfƾQ<0Y;6+6rƐK4W 6|֮v漱zkX!^s@zѲIQæȯ2HG"ܔ =CSpIۈ<#1!P_q9=jIHCɄ&FNYd50GtG̿9ɕZvyf.UgçbBm=q8k@C} 7(e(pqt8BWQLzRZG*wDTO(g!4a 6ͤbӡ/)`l eoAڳ=XYUE:8r, 9}_Zpyk'F!JL_|r|l D՜X٨}8W=31vpv [(<.m;~ Rʥ'mGe@nrM([ȝ8G nTI7V :D@ i6z%EG*(7,x؁bgȴ( G2TÑi"zo[/J;*+0&n[_$>mPն_&"r!_e)"וVqvB2ws\U'% Z 3i82jm jpP{n=v .9Rxk\-eAIAlLjgfƑ) &$xwN.Ȟ ?Yb8*sޡ ƝBFN|ooG-SMi ̆;h&_=(F'=Gɼl`,6WzF٪+0=pJpI1|=ʪuҤ_i=YUp ?tl.޼sXb aDj9=,Br;{яꀎh)4? "qT2-p͈-67u[)xYlχGu$gj^@aJZr8ȕLGs Ea &NK@kbUqL 89C pOO+Zf8 pI񐁚&@0v ^ 9K 08m~eNQot WȠ#/4אZ{Ɔެ/;+_X6X~ uVq\a.dG\\i=˼ph2"<QUM j`.Ckk 3btmH`䓆r\ 3 돔wp\\4uWOFW( ,Li4]$La1B#ԝSO=AQn+4 9(ը燓#[%ݠ`tɝgx5Arѕ>?n [[x]brϭY LʦbQ61kk3Crb֓wUCxh ޱv (8ku&G9GPZ߰sȄY5Vy8/W̳42A$!/! TX>Nn^^&hƧfkҦ".=E@tQ<\BF>C&SwC7 7_:k1 F\ |$Q@_wqB>|8 :mzqeȗL%m߲w)]ilIf@WORTq!rI18`C`Aw`vYClihX~G[jU #59eÒOa-I eV\P֎HђU+ ]CrpZS]X^>ȐO߬|_/],!+L)dĚ2Ä?͖ kIa|"Q4`P_9kJ:>ݻV󈡕M+|6ZqXk(wUt9D8*?ƒQVd_ئ !GYmo6n8 Pu~ag/sɒZϛ=\Mrl:NҁѶeeK){UptL$ td+I\E &ڛ1U; if#o=XU ٨<|b~4 G@rUey׎_Ck 8ó(Y@C^ãU`i79!L3漵Wch@5V'wqCW:2J̣[/[3R~3bl9 8-şq%S b>R.Jlƻ\f-n_9;.ZLʫxd$@įF|J!r$cK-}K] FZ21Gd@51V?5/os"4 oAS522NIcӔCO)BF`')| 4ҶoUr+ftY|7+d=4T{:<47 Ç졔Rݵx}a=cU,/Nfyvqx: q;F\%^13(<cgSy @"[/Vs2 ~:q(: ݈݊rxѬP]Y\ H},KX=R޳ӔK~owad<|Cu<'TdR4l.AU jnb=6cOz9Jc8"65ʭ+P3]W03"\A$Ux VUcC7S:$Rqͪ+lJ.uֶpҦm7K$JC#U6 ®j `5 lg50XZJVǙŬo5R߇|UNN~J cawSTS n6(~N/+#1fϗ .x(īqm4ē̑ tZ,Xw n=0$ӜތĪH%{_ǡ$  ێ:. ƠPeof2V{`uzyp<= $cYg :Ii$v.j `XT. ,D["&H;*)eW=J1V=/tsKh!um{`OhsdH*r (vOq5w!nЁsXBgHcGf,@C+_ǿO4\TX@%L֥㣎C>m{-1#R>}u->j0h/{{A"DkdLƠPA&6#czbtSiln&"0K\YZwЁ_Y.dsg-G!Ą8Oq%iG›V$ . aT` M2Iw?u"dLFݕ"hQBXH;-фC} -=dFO0!"q;PA6g)N 13z} yev,;7I9wkZʕTgEw5q}؇;#'S<ՠo/v̝:}(ELum7K64-Aj+̆q}Dmo䬦!M"`VTKC&V}JD\::A׏DPt7VTy_0gڔٝE;kzXXVq=<˸L"+)f;MPjxs6 UiGy x#.)[c Ig9BЄf2 f_A, Frfȓa:PT%PF~rK<̩=z>6G%3%O}4MRCz &Gty+DG r?wL{n})֑ 4ǘkz##|r`qiSmAƻQbH7JGEl{~oJb29Is孯*dSa,cA E-cZKp]S91 M eJOP+?>SI?o$ω5MPrA#՜Ó3d*n͚]9 ΓbGsN#܄@:";P^U,$Y.wHj,OK9thz3^8,'so~D] & (H7o':j}^{qH(Oվ}-khP]3*$Z?].^/rj5_GJ}lc13i|XP{,X@ؚ1msaCP'`6(x8X3d a 98INf~M$gcp! I{EԲ"$- l0ݺf!ÐNIR4S7؛Q(a;wKΑA;Ͷe~bH.v J$xF@ܳBse-"JsM` [ 86]{(s(`zeoq_].#9#CX~]: od?1k)HA"H!qYghQ%1} Yj oU˅CmgBT2^@ ƫU@\t?+@֗`A![e[6:y5ZPCq]瑧QS&9򏉻Nљ. ]Rl4Ku9CK;GW$]ՄF~ <4@SdrlϦi ɟt9 2}K_Dx}YJ> Df CIԫw*ψ2CaA`''ZzDT9QlOU2_W\Q [=!z fa O@4.*.CCrțѤ*L4Q! a6t4,%Ӄ&qE)Te "D]R%2  ؄ac>:FvrRE]CA5HB3=)k('2 0"-MDE`)-yj6նMX:=0(tIPD<)kG)"j;1QpP+ uO+̼ Q>C>Uaܛ1߻ vO4 ;LNɏZ6)ui.Ghon;꜈ ? u36f PK# :aHZ6E5 Vd*apj78Y͚l۴*6_Lj6KyF iYgYmkh)e٪=y7 ^~ Rv'ݷwDm:ڮ^ q%z=^wJJ<`? eê xb]Wh_z6Аz,Y,f+K6HV(^ TIY  e- Vo%~ɪ4Imci.{lۜ'VbMZ~'9eFA@/",Ay ~8 f/07Ɠ hD ܆\.;V;76Z4E*,)33dc3ZY`2 Q<~{K;hP-|cL3A=]_$-X|ƨy8@ 'S cba&41{6<Hh0eGS"k <ߠ:%Gۦ)&'X5b_( EPDjbg.bd0SU*jIf(+ AsHdC+l#j tv &·/IQx@("QnH]F+:쯀<3/] %I@V Hcl.*8ʿ2K?#GAũ}l@@]T#voBRʗi=_: hC&PbۣezAI?{Y,"}ys >\uÄE |c!?[sO[Ϋ^!{K>X6`棱-Ruw>aS "Jo46T$JʺK]كCEP(hK($AəňkX$g^_s7o̕q\ԛH%-8pa*ӯ0 s*F^{ٱ"{<:QYsj ywߥ'qI5[E11h{ .P^C#Ke6fЙ#kɄ4gCOU&j'eO]Y*BM#Î'r3u.,c (QJ4K77.͌;\kvZ+WA/IAlLL|(0)֫ fboS_m#F|R@cx[$TX)Ɏ? SAX8=ʦ>׈&=ôi8+_'S_+_[7V{UM:asa~4NɊ^:" R0 (]x#:|hĝ><Q=puXO)K#Q)fex$0F\:^L12(Ry)~5_D,mh ۉf&KE/ H l_,AkzE^Yr#Sq5L2̊^<]tru%+˅J&Ύ++ \"8B9U9$Q\eCcTQ. 7v9lmH^ˀ@?5MBt|ڐΓ_ ݣe &(Kh7bkÅj0O pXs{R: i.aab49G"" i`yIJ}!$jj'#d:Z}:=ET*({{5珴igUx?6ڽ_?M3mJ>o?[iQdp:۶nbS@ RV>[f'VԝV w:HY?to&ԭ>$;GXކ;gO1Cx'%~I[*߁mڮ~-$TT"AgמC8!*4EAPT$e2>KNk^W#kݬUT-O\C&qJeh~]5 LK3IZyE~4 gVohsp1|5WO;װDy[)rĔVWѫU @zӼ9) t ˅#IԐ6T?U#Z蚂~nRϤdHFoyz `Vw 1N4,)zSZ!юeNy&2UA*D}{yIgiyw$&ylXyD|66ve8t}`| gt7jA%ϧ<.qm[Ґ70HDVxz;4,UW;x A~"gx,My$w|06KE[;o |Wӹ۬',JxPSxhBnޜ\][#V89(5ilkÕQT !DmYw9Uu C,Hh [1`{gӈ^Cʨ_6Q# F#O_j|gzjl'X~858^0lzɏRq@XO_y%"bbJ sn[9e٭+,~Iz@S0㒷uHXE+3bs_I"~GĒZ(D?x}Lƌ!{ CHm]tI_c}09llan{OB׼٬}=?_09<:ҨG.<=kF 0ޗyw[Ssx,P$эrZgdft!ƗЧ-˟}M[;_h&(Y@d~ Q k/h]Yٸqן [)>?Q=i8׿i5tG-rjyWF7 .*^ Y:HQ*sQAYߊβh߄Rlс)/r/_LWWʌ3rE4pGjAMp(L{(R>5d9)ȞE7 vȕ4/qCEn8P6, Tٖ{is.7/\fE589c& wTl9Q2Q7h!/GZ/<)qOx N9p% bDeºbT`HJ-CC}OJʄ<䫊>gkE3~ڒFcz_OwKUCs!ݥK{7$~a;-rFh <Ä 8*״&\1$Hiڝ \z i6[/#l.(a;!@-օ^IM; v+sqU(!;#ˇU W# QNts+){y8'B6ކ&v 1F"z|3Wو4u#͙|(//k`veجlv[=u06e\pIGv"dݩ&iDwgEZISKy%ha*FUd%ײ?!KrW-Y1 gm@4cC8=Ҹm5xuLwԟSߓ,(EVɯ-Ipiզς`sA"U'ސk0cyTUMxգÝ}wf{Fjbri|V/mrm2<ć]߳[֙wXTd6-nloDtݐڊA|l-EiԂ5홈-ƲH,E[N`f5ΠPӑ}WAow".6%G!) --UZTqbJ=FnY̠H8o`BH)p#D.g$\9\ZT*7DtW}5ɡ"^%18 VM !4#?8EvTھ||&]"B4 wnM䰡k/T "ĥNn[_ #æߊ1hռˤ[TKsX4ꝿH}ESєIEh)i&U{;%GMjbA"i2Gtk/O?c߼I!;!W#3D ѦËUyt.@ AB)S#zZ*3=/@m90of|KrVbnwX.R5pH2pͯg ʇ@1"I$KsK}1'lN{OR>5p QH\A?M1 "x/?,[dBŻ7Oo'HMxH3cP::1\Z;[r &|t9.5%yi ?WGãoLm'O[?0'79ivHQJ'ZjV1-Zs3unڔ=o$ zeU}x3BO%S(LNԐ]N \th JW:Ċ:nN7E7&rW+G7nPיKo z[, /k-MF }_0yˢ ;|{_E=м~ݫK@ߑ❺_7bBП[ħ2m>T..a^W"{' ūE3V*$~W?Y 7e j9t58|6(oUB6;'r;Ț,S"XCx* eI1bR֏Q* O^G?3TE)oHؗvsEKZK]grF44gɜ-祠qfi`nlfcU|ɫSUh7(Og 5Sv)N|M J-<\rCu Jh61_ΡGJ c9-Z<R]&H. CgVv,wwTx VtN:h'X%k R?Af`9)AE9[g)^K,x#GhcP [YϢ5kH"H<_aW9a*mbm2<#X rn(su/׀ou7aJp[^)vow"AME, pYI0_ FKBUeݟt)6R;Fdul}~)նĞ5r.l3^+3McQij?;[&v&dۃC,Ⱦ,U:3瞎vrz t_x^@Vh0=ڿJ6@%Piq%1OvI$o 8=~btŪB5-E}P6VAG@B%.E̎&8hjh% eA2!mW_(lnG[z ˕I%H!N ]AG` |V OsSۤ->L,RagD@d'FۻOA}d%rۮvy @e?d'b^q.:ғ٥#YaxYF,>֕e/*L|T= uKV:Vw A>1/* b#%顟q[ƞ'&N&]RUzeyf;w,h+=5k pUb8>XC#FQɸԻ6r)D@uHw6j"i .3XER_ݐ+nAlaÚK8G/拌f5ă^g߶yx ӔuX8Xǐl"E0ߊk(I$u&@ACP@ZKX0&ͺAO6rmu\v6p͞Ӆ)0>1:AȾi&܅Q>b@~L>2 ͿɏqL][f T'>E% YEϤG=Ɖ6:o;Il`{#ϳЎAL>_h=TYG u%'VP2\/iѓ##U_Y%61"JFhR-=X5Ot@eZGy%^"XiDžs,=RdIO|Q4@r$fvn/6TE@5ltIK8Q%hNGlB2Kn_sq衣ÝCA 0yvx)Hr`r SlcF,Gmr}7GL'̤Xr$ oS0a]@VQI%x\uxDa7C㴒1V͛9*Q 䱙F8?|zA=Ak8zHN'>ׇH`B@ًX}\5Lp@}y^*7BE6襈#yOӓx"1s0j+&sqiҲ&bG0v,siK['7<}xd_?~;U$Oۿ_EoVE=N. } DQyՆdWN?u lr@#3.-# %ҦC6l2VI-L3O  2 "V2=h̒`H_$T7K1I᝜ðD~j85lг#IϚ{tWF]Mn^9ѐ=m PEmMoWt.3 kY{=B]4NAV\Fp|>A1wvI"zn nJf/]5 3>n@\_jAd?b^_ RK\L#+^!V8O92"'/ @& Em%oেϺvnM,R fZ6Voc0 N} akpxt9`Fv웁U AdjTIoԾ;,B͎4 ;̩4&`:5qϺԻ%nZM'T^peСd=AH-U1?OLe2H:EY86h ܰJǛT1n2v(N* bP5t<%1PBU7ūOܐ1jX"wg1ݚc6>Wl~[Î;/N =k/JģҼ^K[wbES+6Noks>*IFg@t̊ 짎'0ipud %VK6rto%<n`i'OD:7ZJ]Ls?R?3atoCC]KA cDdvWD?{y Qu+B2߈ Fe$^-w ;S2. ,/s[p}-t"G;Z!1S30Kma &,}n $E-uK*$]ͪ hڭru`SyWG =$ڬSJ{=G\8`QdR\p%@x6^ {gep y6E -n0B.Rldh颠#Нys:&dVU*N((z̪xoM)v!|:\nѠ4Y4ݗX1y-h ]`diEQ.y| )¨s uW_IDRm;bd}%Ȉ!kM4YUxΠ[6R(`Iӡw=Kl;5!C7-z͗n5Q%0|a剖"ޙ-.ڸ P1.k*qNDϰuNjJDM:Rܾ dgRL\VoSi6/7| &V!.\S{)Wq˛*5 #a2ԼmRqm}{yć+@[}liݗD=^@5bjYn ÀxF2QdwL J,QvypʩHsxko৏s'5Y .#_;JAmwYr .(+X..oA@ IJHEˁ2,JxH Bs GHr˓':#QaFV3+WõΣ~!6 ( 9ҍoO/47&#rXy)< yyUuEžɔNc#tߨ}T}d+~"J' {z쀝}cP K]CNiPo!yzipqJ +܀Cn# £Me'W7Jϙ:&*b$Ԉ(Q (4VYaV[8 N9#5̴' JK[-?v|k%KW?_Š[޲Dv#__(5L\J:33 sQ*hJUiEMijtH` d*`e;-(pe̐6n, @@OyDnj+V%=a]ttR@2w@y~Ÿ6.XIy]6Yw=:n9 i(:z:*x.?z ؾ@7q6=]Fb؊~tEɷ)p}97ˋPa3".M/BMoOr+KD@Ū@LaAGT Zʕ?`T$GZOnT@ञ^*,X&`@YQ#?0uqq5OFA2N_ cf5{"vef3rfCsZZDީ+1!3wrTlےǷl=a@rA; J/po#a2\Bò)zO2 dV-j>%WC;'cp_cT#\*gis\a*'TQP.C^k 3`lf9,]̉8mxWY|XIMwqTN>B422T0]|Q )Ns@tvm5-B EIFJ~XU Ԭuoz.&6O"lOL|cET^W24bQj4yI7(S: iU< dr#t;癲g[ Ph !N%ƜΑ$\rzZ!iE~+و*@^1[E=@hd4Aˆ b5QI*5u xix^RF$sFKoxe'̹2wa|MupܿKfB@p }9}%jk]2rw>gR*6@-LcH$dj{ N&!yp 4|Zy@.Nϐ#GdM'is$N3!o{ uy+HeugU<7mO`QVmd Wָ^4X2`*1oԥ #D_$%`jm*Al~tj[[*zӭ ޳KZhwY8wVCU6;ګn|]fl{S F@GL{֫X?5 \NOU Ak6lIl2 )5B/g5 `O @Z!OkSRPS0d|#]֚[r%#-SZ,K! G #CU#a(H%#8/;M:=$nthq  h$M׬3xљOUgr[2=rBmE>MZ.F`giI淊V_upFl8υ`M&Z~&! iqE L/Jg(Y۵5kzR@tILCUY~ IZK͍FֱN˜[nnE~`ᨯAaq[8'u2\TF'x3adrZ\0 =lJ=|$"~o6%_DtL:NHٽg'yEVR9LS3SݛT [ 7鵪)01 bŞDn?9["BKź4LUQ&]W^[ nc-U2`ni t"wP?q^ؿyn 6%&꿋 %e1D}i#d8wQ_G+dDņ鎋xx>Xp \Zi"{$ >mד1X˗@w#5W^a/RlR( 1#G~ ۍ R67 B- i^&$,8,8gWB+KޡNqMpU3y43? (x6'1_T]7zHU96:' `p !jIL$W{grzipoE~P~Y_*k>dy|Qtsyĵ טIlGQuiSp5'h4䀼{ob%K.H)M,6՜Kv?lX.ڢ_#o~<%&5l7NΜp3+V4a- 3^b5 1K:t޾IevGPϞ w./00Y> w]XPzSU7o/XOq% m*4 m.غy#$ <f.RЦ~![0c fIgtEA:h8ˋޖ-ކT^A ~t:&o1~/'8n0"˳AbLGgw-)VqFx_Std7ybN_urȡowR_%+>>,b;ӟ&͟9!u& ӫh;r+ ɺC=xꈪ0" l'w)Ң ]!=&-MXA,7&oj%ԫvX'i ѝct7Uiu׆J+!ǒ(53[%nDP|ܯ֢qF911"ޘGlVkԥ0pS*:_zz* yɿqQ$@#,\A3]-ip)=1dR܁ZP'ى8 v)]g7E``x3 <{l'U(d"|g Kb`z9v[pҒ2i`'GjV _labVs~38ivyE8\6o+&\ZFG!^ y՞c X 9VJ ,fe&v$[ĒOtB@`PE%X8SHJr%UDf8{Y,i4c󜓊D$wzSj҅&Y r6 qvv+1U$Q6%:PIfiH"2?XCA @åriX3D2x":h#wp f%|xMN rkj,g}3:sN` n;iDu77q>ܕ4sk.mDPgAMuNޘ(G?je$O-$/lȞb^i{g6p/C5a uܠ[Pڷo'@1م$QP\34!Ϋcs_Anrb4 yR`C]#㥺W?}}I6#]W05Pݬ {fvXF8q'&Xw1WM $g[6)y&Q%} q 8ڰ4hl6WY\>a 0zU Bdmpxi}zw㾅DI!9\>NTJiK𜑁`@&j9u kӻD7R! bUݰC#抏"}CVzdބ@F;ʇj/+9 Q"pTb5cLLLQaz' w􊖙EIs&6z 1oah(>K껒AsD@֨8HKqlH::I煀a9\Ey׮&qb o!`eS-1.T5簃a :% Bg ߈}ߔ3cUhI*|]/"ûbjJ[A1^ѕN|6ᖆB1AIˁotr6%ε.?'(=+6e#AΩ#NZ.o84+<9}atӄ2bJ.G^rD$`)9IUz?DŽ\7*0 4"kBg߹-;ICFX*lW"##$ -}1{܆M?ڴT$9* g[`";~ɣ>/uc7!Q$ 3DMU;`AzޗMkgE4T?!xy$(FCǗ(AB_/5f$87%GW+sF9 Zs$|9KǢz+k<; W;zwbmC2Nf|T~u}lGf-|;%,h aQ'm~jmYlÍD|'c$_qT>Yq{ 5;a<3bQ|40Kp{(;)O %/?Kd-FݿP;*eE뇁QarR`MRZ6F h; ) ϚIͬϢ X"kIlyO.3;RYVr|n+6G*DrkP$FCp5LNXg;'jao<|5.߷Tu1oatӬtWkz9ٔ/n3GXlQM<\^QZMfsgX=C%a H-5ߣ]1jx젚L2VY|nC[.TDj%0vnƝy+]te H𱽙@Z+K\V/K(C f 1ntC8`܇6[p^0~:t?yv%p/<Ë.DӠ?e. Rs0U^pwٞaJ̖S,kWr!Z󓡉3ybW1( ȕaڊ^&?-%9_r 4;-Փy:-4\GT+F2AWwYK^oAg{'a7Y @qqXF4.WZ,FY(:F#m;|RhrZɪz5ݹBz4R&&+% T7y.C%͹pUU{wv"dB Y­11҂6)AE-MA.2:"X5s ގ$搨l*;T1:}9y_nP/ڦ5ִfbuV&j[(d8A i e#7{PR?m.ep氞2 ܫ?Qrf+lnN5n^G&篖Phﶴ15KC6Е\dL4q&ɋF*Qx#־^^|:a#RgGki uN=m)$E"s Y)2 G!8 XT|Ad 4XzfJ^*g~U69&TXYf|qn0V}j' .q)O^mL: hwєJ&׸J3VkvT(eX3G4'J{ r|LN4-(J{x֙fY%:$QPU`LP`_; Id5{17>K/'J< 7:sЀOK/d&4c؟=۵ŠAeGf去~5(|>'4k /n\mI᥌|aAЧFwfv E?Ed?ݷ,]xEvhk"AT3x) p[ن$nBlCA(MԶ @7llA7(+s`ߵpvx:֖n_YP;7)jIeʖq5%gJhSC{fw9]?JT{i Qzg÷dOˍJmE`V2|㎴DTfs:ոzp]"|u(~9(t"!s'˖]>96xINW"-vM-bmBKJjageָ2X( ZoW-0 e]J]4qNR-ga8/QC9MBR_:"IOr%b=?8ߑbK=Nw_ QU!^Pd^zb~ksw0Lkm%쿶+S%xM}{x.Fj$PGwhQ&9Ό8KMq,Ϋe;Fk1 _~y>Rg)F(M48M O_7pF H:OΰLæ3Ҹ9lgag+;JfU5禹p|âr sUjUv@ĚȜc',ֈOg2ҥg{}Gk.!7l! q'oT| ܻwvv^R1smz+=_xU>t-= `glIС>i@ZRWcY܈-hE J>zH6jV\m&M,_dOu95*fdhx"U%rغ5R2K`s@ 40@Rj#G+UV,?Az!nN$ȕn4g S-8fZzLBIÐǬAC-xZ3TʩPg|r2`~U<`_1| Isb|z5; \:;SBqX"Ԃ6`F)ig@9o2g䕄l+']q43;okܾ-d_ ϋ|m V;I*ĚcrtZp5UmU`G:4pRTͺA]كʆi-sM_yfj GGSK~$*,<@HCm;ݢ枔ׇ\@%WQEERPj:*~K0H:UWdLm'$R_{?)sU`^$fJɶUfO][TO -ʮ^ p؍Bgqʲ"oKt }//Gޤ#Ex]QY1(h$ cҕN]UdLg~C3D^J ,n+A}o)`&/~bŵtMzd%Փ{N,Ŧ\slǠ/E#LIQÅbWE$ҘunwQu@9JA=dSZϋN H{z^{^ۖ{*؅|Zot L#1)oI yP04VoCc??w8r[tZ 咢a}7x gފi6q~pntykLT0AYTNQ*HEl6$_ s'>u"k  P 4+|%ZK  xgLsq%J;KLSl%O6(,eB5j<>3t[$G4*q.HM][%s\Sƹ->VjG]t3A:}aW`Z4ۦ{+aw*O$uwo7.ldUx EvTd[둧xLxzY =b CWɤ=b{NjD3!#2>wA1ܫxaIsش)kn-Gv̪#&&3;^슄 @Vx4A ;VT%"og MIE`|[鼄dEAGT!;5b8*2X϶xא!'|ңִw)!VxF4 5&Rv.KXl.r2UyiFuAdH"d㧹pW^T*ݠy <1֗+Ϭ [NkSydB@c؝E+6M| X?^~jS`B<>l %$gvheaCo6TS :MO [O I3X 2lU5oRNF2Q[$3<6F;)]tEh-\ [y=k;>AUoE3LrM?cJMhT u-N@ -DمgAF.(|E>y%;)7nTʞ^60r"8Z2CF™$S떝 bci`_E9?QAMmL)l.A5, EwKo(ϾyW3eѤ`8hK`O"eu=]a! o qw #YҝL/OC$*t'O$&U9śOL^q e/2DwL@)9PXI ]K͘ NsHm?r>c…μ AГ"LUx?N"TIn&@XgP+ƬZ5:,֓F+LEGa4\dcrhA[ґ!.C-!D?5f,Cc %ջ7*m=G2l ٗlsCA-.h)vEե,? I^{|sJ>oC^ל.Љņ@!E BE5Tåؼ~YQPD#7B>ׇJ 惁To-beMӣ93(2;uA(Ȉ X?L%/<6 qҠIt :\>kJCij%Hv#i9 s="]Yc1sNԧ)Uw %vDPdoۄD&}WRfd!qZ~, 6Gx6=\iAQ#E+g^SٷXu/h*UtnyUz@o5O~v|k%$=Af5WRfb>ʙz3;9A1{)Ak*>"NFjo*1Z{(r+(^71,0sr܎c3`v R¾HHsIyPAaۧ"TQ=X ,2V\xORɉ%UGbLk͖G\ߡyeH [_J bLkHh K?8ioy]AN=?k?w&z}X_ D+/ˏ_%VTh! d©7~sdp0~ԃGf(pʥQF}٥yKXI~ǟ+2Cڊ[\6޷{ -W$˗_}aOL/ 6~u'_ܞp쥆}}7f/‚o#5\Yrp}EGGD;D~MA& D#skj+PI-=Rgê( 1 _T+X`B!9(\Ht^y GND(ىJc29JlCh= 3y#dq%jn&BAE/imF눑`S:?5#6UhO :30k~x?)s[ljk%lw2vu ]ʯw" \27XS'IE\ ɳeP@ MQH)]Zjm368S~6)`z7KuoN hP A;"=7 h)/&;)aԼ=*ޡ6 cJ閫QRy 5o4,il* [Ln zA2 4R˽3fXoؓC>YzRUB匚^HOwZmXR{Y|)L΅* ŵ\8abGj蟮ɅBTs(8jI|7O :cJZq̰e*[5iBS${57o?Z ?)yԄ[%q _PYzZYq7"m/c{y)s~C>{Y dfCɎ7>.C7UK;:8a| ih̀ȯe\DbP%{MaJ܅G?ӥyw-hx| L,{Vߌm1!oL x~z5eq̭A i?/ P=8u ([j!Q BDJxFE)^=%u8iIYӊ.1ָ@ dsULYPjk3B60z[`>>fH+"!8'HoVkN{ӈ}b1~h.[eY RO656i%cB̘~%#VZ' `Isf|T: "-+/2$sԢ_^mueIDMWOGw`[gudڀרZ!hܟ&_NǚA~A{QM3ŸT 6CC/3 Y2ځ ԞZW=2n6o,!\$TXۡ׮|Szڏc ܢ6ipZf%q.+FQH&0]1U\iˆƬX@:d##CRgwqgWRɹ)sG'u܉H RO*; 2RqvxR3yb40o{xڿpxYL(/*c&rc@M==Z1&q?MA:$ʦxyU >hncEY':evcK! c/G{kQ߳<=Eul-v:q7'$&A&HB&cAn<& +boA,pCilԯL{t7 +.v?-_'bd f|'`BӃr)̾,]lx}‰X?d@y |f|B! @M>(tB}2wh?hAɩfrP9٘]פ$x.Ɣ,Řʦgn[ЄT"RԎ}J3!i_V8;||%MYQf;4]fG}9tQX;5iofƿ_@( Լ++vs?beXockKsGHjReUՅvl<ӮtIl@b_7-͏tS"L쏡MTDWzm~>@6kԌ nfrjP;huS<WpGYo[jZK^%j= 6{I& TjD-F{yRc.fWlu$TǟϕgPu 9v?x2qhaGVM.ps#~C&ӑfFC'uڸo!o,# b6 @5A>(so%JZhm kJ8Gl""='\RM/s(]p:&hn%cdGm/b)_aaOQ:}Es9Л3UF`LJA=/&(\Ϭ\ȣ!(F#c@Jc7mdզq3b. "v=@Sެ] @{7$]0GyTgnק@ M-AT`yH',@Ot ey>ΏSՄ{2p+VObӸ$xs)J}Dѥn4t^ة=}rI` LQWMѰycPsgY6͐ewvs\K1 )ULgIH}f˹#dc203MȽM8QL#+y tE}pFt |Z{ՈcY e#B^膬/uR89H /iR,t:ho7W=tW srj}bSƭY3mWxcbK. \,Ze".'»о' dl75x|n)_ FMr]3il+};Dw>)KS]~# D|͆|GSҫɾ@}x{(STgxeyq:㡂"Tr#)D?}~gb(:zDD)?cr(\ZLop:?ˬ.xq:B%gZ{4a:>_:Rm8"9?],wb~yžOCz oΥ_Ce1V:KLs,u/ P*:d S'҃2XئjP9bOQQʩ#h'Żt3Erm&"Z1/X|yϙq( b崮Wi b͘ɤhMs1,\"^_Bxʣ sl%h/H<P/.j8i`-Ү;=G~^sgs(护$Y?NS-ʱlHZpYw$0` FJxsYuq%Z65 V%'_nD$H^м5ɪA.|g!ԕ?W!+=O/ٔ{%=ڟi|*A,Kfẽ TTB* mP|V ϫ/~pigIC w][12}#d^y} y38;`- "m 6UPAיѰZ >X(IkeJ-9boSV\ d, ωO[b"Gmn HR5fNi8Ct an86K;9$޳ `IYZZcsg{ո.<7FL+_ +2rMՇXQxa{C| 'es톉լ 0o>?xed&zt Ý0ʯv{d͢UrU#x /MTƁElѷIBȍ픪伂1 +vL TYx 7%Nq Oxe<Ŝ#l$@Ǝx:U YnL3|2 L; !$B8_8RtU H䘘.FoVt\)a߻ GOX܌s xOӷzYn7gj!yI7xB'_IHboNXu>>\woDIx[qi".}#'ȉ 7k=ч7͕#_*.}ޣ5 {+){ᆂfENus}S+Sxg3IL4rfcupv_9hZX$-O߻@빪mO"a*- 'D`>좶!EӽFmXʔ_U8\iPuۤExNFn5~dP^>Ǭ1-zlt+SmJj*p9Ic7[Q|D G=ϡR jI I$@B#Hmw2[) T%>r5 A=|E1?ۢ-vn7[+@'ux (0›[&牆L _4" pF5^Vcmf˗{Zw{_:ZnUt,\Ve2A34]B6 3*~4Go}-fz&:,TpC~*BƱ2@􎮔G!a&Yoo &}NjR h3ۜ=R~U%o.jekki Ы{ (=)A6P y~`ѥj 3S3x&3i彑 S}bni=B;{ln J|VAǴf#P2z}ԥ)q~D0Tis9l!^-$2 z6euhHL0iNfթJr8te(xf6@#YE4g[zi ;R%ODJSVK |俓ő{o_ E%" _PF~[GcȆ시LiP7zSfZ,PhBћpɇ}hmҡmgJI-,EsӍ$wqµ/:zaR\( cp^6f P_"Ϛ뭄ZHÁG')%.H`Zzž.!/K>F6[I?`cvz/E[ǭn;kZ&DD.zG.] 비H?9Rg/a(L\/>B$Vym{\J ggpϕ,_ ֻhI q8?Cd<0ޚ M4^‚x9_!Ihq`iXb9Nl?wC{\ta6ZöovEA¨2q5/GZ!!7C}Qm#MNpHũ7D7\K\;pWv8B,, M0вߒ!?\BJ|nːrUW2rߖv HCoD I.g!-_ 3=AHLA#O<`ਢE}Ų TD f۾9G{ LW" ao,0h"pysYGKV#63sH-MePiIh%?'1l[=ʑb齮i)_%~?pe8q`%JQ*oQϢ]ң̞[6W]%i[ص[P8z vKΓH?N'xepL]zqcpC2B%u ]`=t6_sh~dL7vO? -S* xIP7G/3U)r'3rjl BNg9qh]ٖ3G l#r,rdydT:%&Z\T<l ~tB:>>AZrVMJ803Vj> W ѧ6B*?>D$!ij4Яͪ":%vMpQXEgE)8\j-n\x&^jq93 m5]}v w5c뜩S6+${cNuƟ kLjmڇ+$Y/R=]~Ŧ0 h -'7wcaK2QDj܃ߠ(t'f<"PE ff)IVK'f[Ϲ>D78R\q-WFRwo5^7ص%}}{bB7\6TnsY]"јpH% զhCbZe4ЂVmѐ?i~8s t]ps5#˜"Y]}{"SLX{4“0F9oN/IBR)帙X:Q̰ީv' Im86,PMmkHr ٝ9DdcusY<^'j:Qf~[ Yji!cАעbVTܨ\`-D9_J׿yUn0 :.Nuw>LvMYfKOVd}k);fY0tP O lr$X_ۂNQY9XI^;t[dȇO*ho|I7|1DN$ qX7g@bm >Yz*B‰‚ajuG +P԰_͋x M1jԉːnsį0aro J@Ut:gfͺ [ 3bΉgF'd wT5/k8ڭHLD qČgeKL;O |ϟ`\5 W$?L?v]Ka~wqF\1s35nG \SĺL8>Z !$W>TMT>Aek!UFnJ6H\+`X<)ʕGj*ւ&B`*ϯci!f"wAMw(˂]HUr$b8A=lr+y=lE wD!M'ٵCtR~)T/vWK9빇IWBOF6dOYɌ_BJd2.ej} ڑEj~%9Z.ej=ta;vYCR;7<,pM3dq R:"j)D^d6'rG\3 *~!NGD:m';W]fG.;apC ΂cIۜos"yBHxyNsZmkDE Z9tmy*XCvx|ߠjb9q8|I"ʨBzyvrb%3oqِ܊?c 5]4*ԝaߜuѻ)q%*Xi4(W k~9g䬈2fT]<2d`0O(@ՌGQޗ 2K cAuR_:TrKc'/Ⱦu^j!qH"vf*EG羍!sRյjǦqHB6.>n!/eӱwIO~c@w x%JB ӑk_b)! 9ԳQcL!,+ZjЉ) ;/Yx /$Y}t˿ BM#mTI<*S ?QWVAv="ZC,U@Jyȟ>P\ T-N0[X67 gp &#Hq 14a'.KY+to7@B+yT7z NG+ u 1)e9Hpb FhzORz=Rtf{ k_؁0%< 瘴q1 `AQ@8kvr,_d-C|aw狄2LjoVһ17d՜gSw5?IªϷ3ӣ>P3$6uK  1mZ)݌pyG풱%[ 1yU|oԅʎ_\)#>ᚚGEJ<OwaiIUuv ҠELrI5@@n]v8 ]Q#hڎ«鲹99u2^ݕ wEQ?w$.if?9~n i@nc1 j$a^԰zm?0 >kKP#X)-%f1C9ߍӃ/Z`ET+ufε<&5$H"?G1aʁ 岬-;r3WH8g|Ð6 %*w- 3,j~I"UdO>}Kd*v-:Q*QB"7|DW4qqⷤ``%Bg^_jdѠxkkt^=)82JEdk=Hj7>2 ±{or'jq~1L$)l=Spm 3OqPb.@zDMKpA;5 OUX9Iao}(gxD 8UmlUvăhԊP]0UB#[) /lm:lV]K88΁w0ըFhɩGz -l(H^_8SM|Cæ{󗹍d -\IBZh#D$Y͠amH>zѴ[ܛ6gn^s72[{7m`CT\z6=*+䡩}[r$6UU@䄝?E= A#ΡMs<M>wGA=qӗ"Zu6?ס%'?lg3h|ݓ/vΗnȮkmDظ%f6wK1E*ʼz+,V# ZDf[7n퓺!:Mp9)Jy1r9g6$Ev=l9h*I nsnW+ [(tC5MAr5^[.ukm%o62N4`3}J9dr "YJV7`LL"~>]pSgpFÍ]dE?C @<ðm=[}H8)y 0{%@>II3{^Sq t}5b\Ωo vHwtxew1͕G K@J@֗x'MUYu "k?ދb1ݫTv}|ݑve[}fRx{^` afWy E~ `luePXXK>D-IGӱnqQ_Ș"0/a{.%WXMɺ7޷5ed&?oWwj9 Pl`s@^V,SX9j8uzr 9ǵVFUKZeD{Ԙ$UBI:7g/ rPd)dpdQ`j(bC #W$1 oxJ18;bLA.טN|gwvef R~.ߙV \IDgNP 6UytpBQ* Rwݞe.nו۫.\ Cͳ[xLUvZ[1A ,E\ P^zja p[Є@[Xu.z` 둒_4vw #{Seq&,ǣLO$S͚]պm md\Kw R{Q;Ԣo:E҉\`h57@{8 ? < Mu@@y4ИK#GG"a۵a}#Tu>dpoQhƨ f{"?I^qf(@,EH(2Ywb9vՄZZJV7mh[&&* ȷ|4c!m}ϕt._E@NjwLm= S,C @>E`Bw,(O#G%eM } Jb(%uGmɂ]FAWV8K!Ϣ6Z}IZ?>Kz'B2ṯ.ECŮnq!/v ՍZ]_FvS/_Ikb)˾h&!P}Bˌv9.!$(s): { l>,J04PLhY! 9> Dkgjhb@IGP8fak!IAt@ߟqn&4Vƈ6MMҀ6Fndq.>Vk 1}Zv$J(jOI>' VE%S mJy*+* _bb`=nQQ/2%z]yV^'nρC+گ-ݚ1[t{ea,pns&}j Vud ?В y5Pf) jau1270 o$aGbH4pB+w ^lϡS3T tƠuCbtƷ!iwZA=rz a Hʖ8ZR2;t1oV]zH*PG56\܃*XH)`xYib F1Di~lΕ88ipKjA/}MrY!쇱!I}cnՒSW:ms fAк5nsDk ` *F:>8݆@Tm˻LǛ ?Ay e>CrrwXCb#Cz(kĔq(7)u#G2x$8U]yݐ q.% aYRmb)-C|2nlH.OJAһTЦ |*V3tm8LMJ#Y`hsYhͶWǘ-26(ץ^b㆟d^abX{T*v '-/1'2OKVzUWMI;B%tC;iI.RN&j]CۜAh@m܊tƖZwԟSK1jI|Ku$ RyO{a bCa3b棾MS3pa&exu# xF?U'bǒa|^`q`CRܑl!Sk2QTSL&K{>yeJtZlo%;\ 5t/U7@p;_>ȏ*˿dIe??Lq9_"/h`&p6 `BQy:r22m:b=cZҚd^̊P4{},.)^K:jY4#wn5eNPgTeMa-?;?SK}= ˩Jʎ| iM,LրLsq_p ;_Sc{ +9j/\ӶC9q4Ҳ,BB _s1!z0bhnә6îj/R*} dG!y{Q{p}éD0R3^N)Hr}9^ܖA65ޤ/HH 4 ԣ bv b?擃l:V0wK`GuK*T|hlUXDy5]%vw "gSѣ)XLFs!`16ys"2bViF+^U'mNKH,#:AJW)Ihrmw R>;ͩt>*숬T9oyD9|UBJSB|Xdf|PUe /U3RWMheٽsh]hA. K=ykL"RHSJOR.]˸{D&o.xQlGroA&CLzEo"&- bD*eܠLt Ӹj =] J2$=)_'fcn1-9_*[P= %LO5[ڎ'jӔv벞p4j;f>[T$1 f[Ic,Kj8!> !wW5j5PƠq;nx_m'P|EOrsΦ R}:$m LXV\gY zI:m^zIK]pOs,`(pǧZ.&iu^B1%_ R$eMFJ+"=2DoV!rK]Y/[e%.~HmӴ\?4Vz扽vٱ4*L#I k`<͂Brl7@]VI_0gDoJbtL)ؙWeX珽 +9rd$}R^JM?{ȈЙ;8s>A=HT|4iI?1U fB-TnO|AMsƖ<"vb`m] $\O _`Q&w_\j^Q|raTˬ=MH6O5D LT{ )x4yWDr0mW1 !e* BgXtqI7y^p6 Kf-rC.+pA fOSbp}d&Ǘ1+xO$Z'M9[)r嘴~L]MtvsdHsʎa3@~]NujSG~A񖃼OV:Rv6;@v$#2c6́v?ցyU@115_SaJiyr$`w#{$%3Ii{5 +09ꮡ'9WpHl9aId)Oϳ'Klh;)lGҬsX]>)ᴐ}TR&AD]jx Z$kW S2l^8!,$4pO0Iɗ2VBj=?{V,f=w6mKşal&@VjL*>L^4d]J`X7XQc5 3J =M&&1* pa@%P!ynJsYC{v1ĢX!B *d^T$`$vv͸TA޴g?mNBbc %Ծ&$1w^QO`8~qs9[66; 6-vEe`籫B<)Lvݫ:l^7_ݯ\@[О?&p狫, 3G)*\xʹ!SMmi Yzl P9Oj}<М]F!}A+eu9VCd59Hh@}Ml|FEdu1jIs395ңmF_]Ì7Tc`Q;hCG&2C(:Y(8A]Ge\9ٗ}Tdžn& /rnMmJcӛ.>}Q웖H<݅ JCk>vBz'&iu Jl'1~1ܯ{:"TdYNčfE~zjZ`oLFlDRO O_(ѩjdJOzb LiGsOHc^O+As?HA0Ej9SD kdgQ=?|qͭolRIdI{+ЂfB#"YL?9gj<˓2gJP{3(*KDliqeޏ'P\@[>g«p..WH8_6U9oDO]ՑY>Â1 ob(;j 6Ƹyh*a7vc^xrH!a_gWA1y6F ]r_˧8I^͹4͞6? I,x*' [ҼS%t ={oWoy$}wioDf,DJBj 16(9>poJ1{AL1>r漱,PhLID7gYrjgB3mdf +X8+"`Fi Pwdr]'\sL^u&M=&{`e1Uo6 wI}֫]bq|$;Y1\e& ^,-`j ;=&=[ Aswc.}n< GRZJ5eAѿXQ]o=7pVH;usP7l"i )zyݪzK61֊p#g>x Uf")6 A:Jd4E)MFI J]`]!"ۇYDH|%衆'pyƖ>AXKvk K7)T¼䨭^H.?SXo6w|TPW^o [5SWZՁd{F:$gMTb^0 Ogx Jjd8ᱪϲ.zft=,¸q `J/4zBb*"Ergz /jzߙ!:=j;_80,sI3넪biz/8 h5(Zi(SZT\Ai?!ՃZEpp_mۡ'#nO.!j~>I @B(S Y+ | |srqHVk9>a8O(D(B7'iKZ~c>#ц>/r~Etix!տ'Gx Fi;^#t|B ~tu5ϖˣp#z*պ@byn#W36TCHlЮ~3ݡ( $?jSҘC쮌\3B][sz} uf= MV^zl )/J߈9mDq=H/:yq>![%ڝ.ȸyfô&+tyV٣vC9\aKi %a YD,2,{}`D-~qyd W7ClUn?V.XNоXu5Pׂݮi0SVXyAdhoNY3CrkdiOJ;z6.+#e2x.:wO 1% (xXva5/="Lw|+ 荿mMT 0$AU)MXR117$f!fp4G0 6>Sk1^)x@2Jg3!#70bc-ս٦һN׌Ϭ-Ǎ@v c)37?iOKxAuНō CG>CXp|ԶT,1ZW'îܐryKhxI ÷:Y%U_Wk c3 13QK}+ ܖÈ [%UPiPHlyxkJC]y$_[0|rZRs躔+> lf &ydZAD;&6f/8 ET5q3;GWM*5ǥƪp[ÄBNE7;1]]iLMm\_SZ~Sn, +~4Xُp[O%k%S M݋Aq:¦Ks-. k|Uה0f^ZץTCKVRQ vCԠ-@OKnGkb?`Jtu>e~+S?|PK>D]=Mmo F}q-~t*ZrJ+(%bnei1XUm{bv ߙP}a Ŭ3o2>/3z #0,f8~- {%J3"km]$XRt%&vŢn(Yj%jeλ@oEH{Rc)_11":}[_Zl rɈܹZ|Z3+rFNn~jZjm(\+qFejf/Vbť2œOG;β2ۓ]k~VS@ tڶ} !.DimF4pTqD`?&{!<:O/󄓐gÒN#^=V$l"џ6aN,Sx_c9M-}uV_0:T7:ML(v:a/! V"G.qa_^"T"&0O/&hl](‘W&h+(X,fu} =4 8b # IM"[3&Z!IR?q{<:b:j+,x!,H8.n,!x r s?0,(8[JfWm%/Apn[MƁ,N~Р `a7ڦp'O"H$?]⇰XXB&cڴ+i@\ᴜ#iL Uqkzע3%G&yZ qIϧp9WN l.]|2D.6s3sy߸əm9*w5=xjkJCeFTlF8GtA{[0Iʩo+fn u<#tkRV/"%h_XSsWLJ/0([~#[{v8_CfpLs~"f}FU7vP c}vK'amzΰ{CQ}ʞ?vutjb 処Qq'Gw ou4%CtK}5m?aJW(pm(9+c(=N-,txlQv`~*_CgNދMg\ApyŬ-Eft;&)P~H0k;$ń6[BruYH[ʋBma@k|~ܱ&\@IŞ$RT RxG``qFT0mA;|\597Ș4P/4xJqt[ӞRNBxzښ1t9PU8 6pVP>S\v"j N% 7~ x:0I!k]dEUZ[ɕ=A/%m5\5q7eXbH^"2 Z'OF>M9ؼӆuV!>l9A~;̀@Kqͅv'xBhiӚW!FD- n0r2 NbLh? %676%GJ>>A%JRzcҲeX~Za[>fC#r-K mB̬( +vV}C,o \9IZG@,"I%*i*["C:p8P=  rȟ$g/Q̆.JXut JVD.'2؝ZU~Vg뒝9NO,s!ƛ`ګFஊ\4aCcizZeHz(b`VC/(\ Y`PԮb5/hI1"ЯǼtɶ gj]ZٗoSn$A=P]oGm4RY%DҧS؀%Oo|q5Rsy B5Ay+WXӚ%h@Xc 8͜Kэ̇U>tAG<漎gd&Pˆxb{/zz#^w.m-57ATsIٷբA4jm@wmݽ㣃ĥed,F# [x $ s_V @ZY]C3|}2q:= L"F+*H? l%AYxժ(3Amخ<=7gq 'xq05YK96lDi zbBNtl[ ̨ 䨋]L(;k 37ԑO#gзm4zWd =$.ۢ8IK,ksDMID2:$rwFjxgsNn&WNҽ~I"FPy8w:ɸ q@tCqgd<Kd3BŞ:KN4Ɔ *@~a*i<$+ Pښа=dLHSOmIZŵPCKfseha).=+k6Ps~xDz ' zo6ą#CaԈ8L|"SyB̰LE@ @!F?D'sW🡧WX~w_1TOεb)g8@hP{Y\} ))`{|yx>&3hp 1f'&* LH9KѤ9(3As~/lTST҄z6{S {!U mh2qu6c}W 6I7d%c TdVe3E eC5uNe k\rvٽ.t#jWA\ 3x~V;ID#@̨ ;s.,R$4ᨗs2~])/IuG~x*V NJk~)~9os-'y Knj8v~/AYGF0K;>CID{ld2`31LB]t O<$XF0(R|Jp~\h.lʀpjs vy ]. ^i`<YeM|m^/nQ%)עۭ"~9J&LxIֆsm[I~Cmk5ҟ%78 '>o{o}%L^ BҭaCrE8 y!K+UTlX>SM@siUG k\]JmZ4X)8^ʰIoW~UR5_Jt Vn ͉lnM6%3,m'N4qySbS.qɚF JoƷw!sPhdz\nZ4YX)j M7ՠQb=ܖxxɾB=d'Qs>4%<޺!e (/gݧ&Z|uD4mFuF#+DyųʀJtHi{9o@$$Z'we'@*1Nef fduT)(%WhX3Hn劔mcD ]iU7f[Ȋk2]Pav s7Qm3 -RVؓ6Rf`;LW`-.Nr!M#UNt؈tq{L {ID:QX;%XћW ZTL@-x([#X,MXKALa,@K*~Z;`9K)ֶ2Q`ԩˤŕh##47;1'Ew]ESV%vE6?<X,|nLr̲G |oPn;<[coPux}B<p۱ij!mb!1s Ə{<oK_WCoy 3YS}.@B)%bm%t|"=huHWdp +c|ǼMp'h9;%v殞@897MԘdת҈ǼSQ"@ȢiʈL7>|E#!О3~\_qUxPA*d*WFnN9-pADUcR ~l(:1N/f5ROՋxBzp';#X(NO h[(#NteUP%0E/4oByib Aؠ4SLߋ1|vqqMXGjB2'нctThfNLB}VecE b3H>֊WB6LʳѨK!2?{\jL"c`RKj]&{rw^@s${IWN2 lr_?}Yc JL1J& jт(,kR}Hi5?Ii&n#y:5qH"lmh-gBd4 և䌻| qitlcɰ3F u5h69f)K,ƷgG\Pwg'Nj>GMDHܩz/)sIy|*̌5Zs]DH[Hݼ jf?ꪌ"dŻqUkj鞑y+xVT]oU0] ps IH&>K:ΩsdN3s fy$7;o8+`z(HI+7h1t '@_ *Flk[a3L阘4O$75H*_U‡"i8KunXXAXc#JOE+l8ܰdC[DHEi)ȨNw9.p?hI&ݪva+2؈N9(NWI)oL^dpH Ț!]}҆|%! 6فpzU}9 uԶWt!Y_*HG|ӫL D(fjDفjÀܨK>|E8?j򪝆JqXfR MT篷U܈TtKF;ďۆppπ1@"l"F (o*#7$zCBE" K x6{T'])@w[`Om$:rb-!Ѱ|f%%̙yYE e,-U<"isNv 6 `[M֑rvcA1_09e= Rc戯 tB c CYj71>Ո_/$ T5S'rV/mC/wV$En/c$\e?nNbYJ't~yJl3u&bP`Hp7Y4\0E.MZPBlKlt^S=4%v?l`78ELT)e+ H ^i5jN}>NDjjN6 .rSi*> s\z"*5*5C\pn6I<3>s >q1  g<1MAa)D=[OE*FI)DR%1]6h@Lg̴sWt@Y _f ~$.eEzkT)%ZeH{5zs%}/0caBʉ2XhZÒW녟1^ހ3@@i-Fb?n@YFvlY7s qQ-pӂ;~)I!k0& n0$ǕN0NrބvJB1t{tDNZ64Xkߊ(޿Ix H e)٫-JR+'uqE5b*վi&:+ѓWDŽ$غ@Ō D'#'Oe!J\LT9gh>z%Ơ=(]M&Olh*qv+oRї)?80a4j^.t*](ݒ8ō62 xwϴO/`҉Qv(Š7 O^L$<>b2&,= .Qkeb>7] ]څo{AnE/ݸ'g"d-Oϖ\S'luS˥5;OWg΢h$=˫ a&8 , ^D2C{@`*֛kPSP V!+ui 2jC Ws#~jVP5zze@$@;-,KmuR63/A;4DOE`j_18mȳ"0(N(cAa3v DDmߩ"w&]*L~8Ϳ9 L#,wz `J Hl³N-!m083k;89q5vvel$T^SNp3oMM>KTC 0 ѫ=xlz( ǾQ`"̟ޱ/\{af“-͆fע?SP/Գ~ٔff7Т#LQsYOVJSap!lFӶzt.A-ƮL9aOuX*[Ӳ0uib]^=p:<(hHMN3jHΦ&|X0zĎJ {¬1DIKƛ52p> M5)ѧl7S)5Lљs2m:|8Nz%7WUXYB%}`Y{֌*Nn -#Trc<[V&=XpX|G2sl=`cT= 65R [)B[7}L]Y3fq. 5cAQ\Uɋbc(%I_w֚3I/lK[K&⹓ -r TZ>Ix_[bpgYE` 6!4Jtf䀔O|,(Q?,~jx1g?r7o͚xB:mLX"!"wwN [řΕ:.2:c=S/ת뾮ͮ,{B{k$whk"@u ܬޖD::ݬ Dʑ{?kѝjqde U +Yr|L75Gnuj|.wbx B6NɽTen:?3hK[E/\9 .5Ap݌A8Uk/J8Z`'̨2%tǠ,zZ34g p6v`#GE&;.wF{_@Xv`G8m2o4"ڇЉ_dKt_^p\5(k+%t#@;p"190$ء!۽(94Nc X:9H<d˞E$&Y Y_ qZ4.)evq0n#h+sqlu%X#QwH?As]`ԜdRI2CJgGB7R4W}boϾ\<PqX4$L5lw5QGN>9DO5yc 8 aK+vꭺb`:뷣N %[;n peTg4yR1uz9)!"h8l'ELkј6Z n\4o Bd4چ?h]6y^gNLʹe/#Ig"2Nvckψg8Q=lfYj?~xHve>]2xqXjLmѮ:x4/ DԱn'>Q9z>\. @^"U7.ڽ} y\h| ټ$[d(qBe]&\QQY]zF3 Iu+ ٵ|>I wwXG 1<=7_Ž24;LKQ{YY]X睥H>5ry9rl ܳ<3nwO)@Ȭ7'Lʋib-w'>+`A"a{̃޸JW4i&:r A6"Ѐ.Kx('\u:Q|cͱ#On7I^KmL`@?0kȇ>(&'RMO>5$"~~ѫ#:/iK;O6&%NVթl󟆖vy]aT=ɠ=w?^Qsz1_ wwt⯢MpN+DwBBX{rNutXZzo}9] (4kzi}ZeM[1 |"@xϿ|v6&@M&~¬CcF w92r=]n0&ީ_Y-u U-T7g*_G݉@_o1e=*`]ru)GmJ!wv$Ͽ8Pw\zEP+7]]}%T~^N F\ǠG g SdaDt"ulՏ"Y}[d`_ 3skV|䃱 k\9) THY'[=ң/ymo,4eu[GYP@b3˩v89}BP:NNJDu^KG}BqP=Nxۨ1+vR47\9k2_b|e.;J $l<>-'*&(LܾU/^/R>F\Cv'gJnZvW$,2LRшԋz@W_h{J9_>°q}Q;"ڡp'1:C)BvRhb+*}F}ezy~dvǀ'.Biggݡ$#cq`kM -I"`G<uI\$BR9MSxke گ_ C~-wo.t\OO既'z<ĺlH&\Ǝ؛NOQ p:YmQMz Fs eA}x }{ [U/o 9xMn;a5%W3;Ebr^;P@X8s@nL8voV _Sbcto]OPH1eD+MT?6\;o/+"T c "g-X~qM HSb!X?& cU\l1)( pWF\ِX+#;[:眥"pdA]ANCY7^BL~yW#D'Ok"پ!@*?zU) ōl B&==P8x }U\ca{#2P M䖗S-vmĜ >1\)l@MPYedH^˯eTa:4ѝsyJ }u:ٮF-jڙ/׭LxEe^r}JW;V]GϨu>$Jc~# VjO|M17=9\D8R1&^Wvf-d9inK$bCA[2dԤ)Sjϵ3P*+x&{5n;YFK: e3prE׿Yx5D5_ KQLՄLɂ # */]0VԋԹ{&U(K^4wca].|3 pK2srxXֱ5Z- i8F&D 4aLђA`3&vpR΃cI*E^@/IPXVo@Z_pܫ/¤f"AȓǬJ+@Bw*^/z;d:0ZsdM< &(&)s`uDQ / TBVc\Tph[L qdT#31j1׿QxYQLuf.Ц\ab^wжCxin3+Yž+6tT s(z.@kjIL2 g1t2Mx*!(4N W8ȄY8=$Bɇ*`ԍ0{MIJ}:}l-IʇLq.1ې;kw윐$Zzc !g3_]Au,rO (W8>z\pߴaɪtѢ{ΰ4/J[^Rv(PcVv色a׆(ŕJ8k& ,])=ۿ̋N8-ٔNE[hr_)m~r76liGm r ~@3fm&:WA?`6{+5S%g3JO6/ }ΓGqj-#Nb>dF&KGABzn,\ҿECjb"g )g\SXxf\ $d[aB&R){DoBpБ?)Ӯ:!(WUm"1rZ#6?:l30I SgUm_'EqI}R8 =_0gڱC_$AnFƭWKrI ރBz;>Vb&8w-_`7= N*#f}8n xYܿ j u[efr8@ulK&JI Nҧ|CY(wr]ԇ0; ̏\/ O]jo'Hs,~WіUtEƪ}z+! {G`b9]8ydE,MUU(%KN-|wRK(Fo.@MܐsONnLS< MOf6W, (r*|$BthOe˃;b@5Z¢sLS1c61 4vq ^E@΋[,'Dh6 %kL?y.?x,;FfkCvj3FVNAL7tBd /{c~nCdĶ[z,Ab. *)\oKof+:崏3.6p (2gÓmBQ_"/pCC^z~ӂ/ϤS]$Ycxm8ĚٔL} XvC4]Z4דx7 7}>G)ołu&-o IC.A # q0Yy]ABxb5!"qE?K)Śg,Z5 L-(k\!Tߎ`S§.VBC % [Nd9^pzᩛdME~&_O:I-i!]*/0qws=ѽ?s&WVS.b0$>ֲB p1l ;&BbKApit&dDwpʎNsX+hWnT36&K%@dJi9D_C@9 ?YǦL iDwV|[JB %VVq- $ &j_`p~sgR9]l?N'I9O[Fe`lo-<:W9|5.fm)L߷Wd-U5|K"Dv}AJ4lk|#+tS(AvVk<~hoKs<+FxĔ~u!ifؿϺm4PHp=2-bM?'\ >-}M3Ötpbh;p;kl)VjkEqHSߐ5=rEe̓JcW{:$/cjW[G@Fy̒`bm9剃pXwDo|K6h Ǿ?{iMQf2<0.EIډz_vbίhRk1/ AG9'7yQ5Lgcs'.cډfDf.+FtY(iֺs\rtOͩA7W !FcaI$:wSx) VdBKj6P4RMGAbϭC .A/pFFgH:u RDtvO?H^ԈFDzAB%=SGFZ_ OBG!C l2}:#CchI-J`8P}DNYw t~U?5ҥsY$NX>j6M2F*+ l}|clT5Fך\W[uYV#9-ඟrlaמAyk̾}{ôDκm'D,*5 O NTL=Pj䀨R_kBXN-ņKHZCc}~;QYw&Ǥfg!=?K2爅F]-"gbrK+hpD+raMj/{yގ6턔D {Z]gQFht 5ZgJAJd iWsr91fgIćdc_`-%h)x.2꣪DŽڭ:6I { !P$4Mapu,; MH(:#0`.s~{i)Y!e.=k9P (gi4t7`"FR* 1hݜXq3ty).'V-C L?S֓dZnɶ/'|pqj,lƺ!U+ i sיQ*1NL% Vs$ebQi]4)"Ðghb?D4h(xuN8^5Knm2߳~_:I&슺|Br#$z2-B;nwqTu]uGVӨyne Dr_Q`.P#2Wծ&qrV2P9y̮6k*[WZB-J>7 Ez*N$%_{dDtNJBagTYzHKxM(Qdͬ+2Ajn >Я [m/}}+Ҡ.UZ]1b{)ۧDk `5 A=\,jf4c .Q^d\8o/$nͻj&`z Mc&WMSW牥Iμ N~^.Y|8T M [o{0Ljrq[H(M 5;|t#ͪbKX{/%=Oegޚv-髅KA`,g\%.s~32sCn[]Q\Q?(wE,\Y\$əxTjklP:ڥ.Y% e!(7o ԊZu zJK>̵0T-5Ež9=bQK(.rw+ %w[XtE{]N2՘iVz~;]+H- L>)`,й) *~2U1bFI9س Z׸4;&ܡ{X5lgr ˪߅SDġXT3h{3#cկ\A6Q;buomJ6;QqQ˲<;ۙ|ȓd _hc2qQZ&f@* ?-Nҽ )m:p>wk HUz1DÀjWǴִ X/tГ?| 0k|gsN"Ch&mqCeyT  -c"&Od<(:L3V u׭^Ĝ 'I¥eccV.vc̓\ckI!WݡO,seDhc/XYR@!۾h43}&&JOPИHD7/\Z*27tôf:p@VdrN%HJ0K!.AB,+-iV17.$\YU2)SfIgN6;8Zb -n( hӦ%92ARQ5(SWxkv0W|η&w)^8a(ϙ Tҗz">)˅JOs^E?ǜB(>=lAI Re0/!0F1(C8UlUb>m}\xPvF6OnϲR]. ZX[wPz³HP6p^Tgޑ\r/zx![)R@"/k#eҰ9=!2r `8߿VA?ף U.vRïeIyhRS]SEO89AxϿ5V3dl6H=bw8S^b@tP{鈾`sIJr"*%B_zKiϸ]GyRޡ6gajq3sQ7*mWEB0/3eDB]Y&jhh^K6a'͇c# ylHԧb&)>dxAti\s|:= Տ|75 1ugj[5 Z`ڗ߃f2GX.\ѫtsIBz[ȿ3I7DDqAnC̪Ӆ=܄VP,)=>KkGmY -eL/V\= iTuYP DL)t6kY]tnXetGJ^%T2 =Mj0 )[!k_"O۾ >1čbS]>1 {,41Pt\(ڡγsK\*[|GDDl!/ +7l2hhcصr6,Lo*qQy&h2L&}#=-DEJ*|qw4 nV/ @%Y PӚu?`F1].H}N$D?Ӹv`<~h FWj8.ɉt7Qm-] k`KBBDs\ؔ+Jss`5u1'A٥  }.CXqi?s8,ڰARݢUKwI0ՁѸ3EVLxExzc- ;@`PR5Sotiw_lE8mjE>[SPx5M~iҵߑ?GJcEJjuL/U Z#BdomhL;0!3,.؍1d-`@kG heN .u Lh[>]zc/C|{i_CS!Pqe-_+=C] @?, UՏX[X, lF&n\!lhFln8VGwҹ8HBFgB_55jyK\o%[C$V+/qড[x@<ɻ%R947Lُ8G hWTGT~99Tx)emAf.^ۘrf{rꆹ%/rQfpG_tD PTCAFjRqw D"6L . i);Yxpa&,|b_.").Vzkcp h_@͘%&WcWi[,dLg\z'){rC<\% .6𿍐Xjʹ0yL8ׇ`Eۓ9[qooEZk%SShǒ)͇Ҫ ITLA`ͭj<rǬr^Yt|tCYf^9>ͭ<;-_w3FȺ,C>çrOܩ$?I6m }9bɖd_8*ZZ6hxު,g&NFV` mhlP&}^yl_Ɉ~hr3VZ1\=𜥥2DY̞P`K hCK~Aw9~f!{.o0yqjW·?QL9My^fPK}nԩ  *+4[|78.?` =l?44m~m"(i0K>fg)] 94=T (Lv!ˏ<wVoOn~۽r+=6~1U|AyrGBӉBgq& ZU\(g xev8 ^rŝI(>QEtv`Mb0vpS" QJ=_0UB,k;$->w,ڒjL3 J.n*ϻ|w6>>S+@$Js  GJC1[C=MO)- 3+r_|T`P<<@(Evm~El & ]jNSz1Kp[:j IQ跥9T.[sO0eu|qx!XΜf0D #|Ax3xLX9s#^qNwy!v0U$iVkR$ rs̺9]'%fbG{d`nE\9Cܔ~I E^m cTr籖NT#h06P} Q:K]M_~A(" O30Mu2>0kFm҆ۿ)|S⨇kvl>U.\}h.RPjE?Œoٞm#6"HX+!ኚwzLӲ#PEp?.Wᆉ6qd[X$*AdIu!:iٓ=j{Gj:sOV2Nd,1'$Ͼ!`m4`rrެ _iNȻ U꿛l[QF'QDU,_]8G9+'A=}Gτ_FsR2Iγ$IQs>~'ÝAg.,_i@PLmm]BVQq\VDOF!58-u!HخZ^5G;T`)$oCOVΛ76hvocFCA b +C'G[=Mv:+0{(ꇳ_Ce_mH6l3Eu 4ANer|d fۺE:2+ G> i}D!WLpI.WHcoKkG i9)mũx-y'0-W='|7kckET̏9vrVEZ7F??{r| ny[a_~`!GEco'&h ookdU'1 ג k0k.t'K$1@^weԖJ>L⚞lW=4iZs"+⺶-S0WE_AE4OOB rA٨NkM[\sP|ʷ%y1[qg+JztbF t2M"%M]*A[Ӓ鉥KBa>i-mʟ<$cqNO|FS<׍;&%΂a9œ6i.Ԗ2O^\-D'?^+*Be.%t<*~hZҚjtG'oC xE7є݂܌xCr,@ĭ˽ĥ7tzsL Y=C(I!G^7L2'MݐԦΨ$W8IkO/f.u6{M&⮎hba WL`@4gI JitTNKĶ,wWc]j?nIUyWv^ݣJ rYaL5NɄ潷duY<}' w;&÷V:'YrMy(/)L]a3⩨^qHl}/r5ei1*/967Й+{/ѧ'}[7~g =>ԃh_565`6ý$d>} >y0(Co7ruR ((X"he<>rMw @H O-+&57_t(Ȳ R4VVɌ,V~Utnl zs?.JfG;߱q*]ҨhGPMW&&1z"5`,l`V:_;KpL$б˽M` j0BޥY< e\K俳bVAuP]IҏBjSډvcg ^g\D)(\o QaXwi:q`vNQ Mn]j"K[5*)>I!/Wk`iyS#PHN!\=PQ g9l0"LQmnKk 1rNv˯qS*cI%?ucͥj<|{ W0|;3o.+*BtW60j<@r%&o/>#Ȼ lwgjXlZTiZLyIyyijkCqH3דƴgϣ5(;6Oŋ]8%$!DzeEz>9^5}ͳ_|>=55|[N)<[(\(.voM5GƀMT, A2L^UUt[@;Rt\饲ߓs&s2~ IV;]1iI!ӎ>2B}BEۨ$ɪd:gH?wMZd9io׼[#Vo3;S#Z +϶u;ƀ)12JsOWcr$W x-;6l^\ {2%hIƂq7l&a&k%n ۍI9A xi M?C,z8A%dޡQ'ܧLo2(r@ơſR^S1GηAhi'0g9Bs2b-ڃ_ -\N,T;Ua}U9z@dn+|nJ_VJW`qbaX.X+Wgg# y$&!˾ qmG'R. Dv%1V[%os?n =X]ݚ1jx}BI 1 ߬9ց;3tT>CNLS@)+w"ZAIAhL z G[x4Hf2I ?AkjXFxk)_y}p8AfR LqsDllFEˋ;)h{ccMx-EMh8ra{vbvn$΀UфT'sM6r>ޙ TbPĽvP5Zd:9Dנh{m=VpZE4#3iþ3IӚsj{ |8=;>9fo/mq6j:)LWK^ьA"S_!8bA;c絷e?n`r$XU6% m}rݨ|mh5TS yAs%Pfv~c,0)3k1*<ƓC^![iE=Ut?q%t/0uAN7rޒ kz%V)/U>|MPR)vb`, # aϵ=kOF4w ϱ|Kwd"`b9 ؆O,0*HW  I5ve@w, ߶_(&LuMĘҞ>iR˜zPs d 2b1O ~O\SIbs`"o֑V2HFj19w6N.l0H:zU "Qrn6&3;"~1T*X6qGatxp!=ÂuE\0g)8d9w/sm.9#kf=d5X?;IxxB(%pD%J!$0sBɱ}Ǜ@bz;X^̑aEC Qj,˾bVcEv[SA7BhaOۂ r_oGl\dKRpꉕ}06࢈b2qTgjDOoe[CAJ8Z1]ad0Ikz9j˥U=V~ՈQ} AbÞg YK)0vKz]QG)idRy ͽYzhE.u_kψy2c~)dg:d_p; bb#7 ߙ/Q1-(+{֣/e3V[Ԩdl̙t*CɗsԴa+=9h,轠*/rN#, iқ,ȼv4uuX=)gré/-z>8LCM`Mc\)K({vMm"Qzv-xc#J>IĈx )WMe6,DD3KYE&BONXրiE=Pͷnf4a׊}Q{5_hxq- n"2/#~mg8;ӹмx*,m|6**;7N|M\w0fEzZ4ηw.w@+f.m\Jj2SXowll$.44# bXj(x{ԋO:~G4A`tb<@cOh^EF*">{3B )m>G-J@։u~7$]Y5+q;aP֫xer$Uq*Jjxi>3,}fe|v(0 ^e]0bQ!IXvhHd7h#`,u MB ^0=@nyKpEz5E&8.QGD$,&+'GuI2;[Fզq+]Ĉi Ҭf.ʛ7cj3u;c~c{*ZRjॖ-YL}"i8p .2i">xodMӿnF )U]mVT? 0]wMɁL:,xz#l_?l_{c..SGbÈwuY5GZEOCSS\`"%QАș6Le4-p`abՏ`ݔl݁}$Px ǣM+mn? 4@yNpYt>|s:VZR{"Y@4wBr@[ q=?~:+MmV` ;|u n)BtWfާ*JE%dTuhސ;ZN;{ʴBCQ&Ԟ`Wv= xw0@K*@%֜z2Po51@8N}u~6}ffzY_bp'8$oC)5}H!(BAy˼ /0ѯ R1 q 0(UOGAE- }B p%u5͟:ݬ>FFj9&mkƒ Ȱ Bȯ`A'&\$s UǑqJF>Ϋ=y|^uT~\>5ޝ5<*'z$?&|G(SaNKKv_=gRop5qK? r!3Nk[,x;n ڜ3oLp=)$ mi!]TVwvԅ0e"ƋvMlzһ4`x>G}2ݛ^ҩq';=Ie Fi ~⇊M̸ovS`G\Ҍ"#eM0T~i:mNMZY7cLa{EgC}4rԻ,Z?X"n>Z;!&hB @W79J( |go3xnpgJ}RCfI{=~l;0PZ\igGrvu4_ Ϻs"Q(?b,_{ ![>s|XiΆ0XmO֤~%P+ $9 0.2Bzzg-eR[Yϸ9G2Tclt%.i|:2p@ک)60(OLB^QJ%X1S&ZP6yo39߄4ʞ+ _T]jkJ<^deG^ w4"\Wb=`qoVn-9w?-z tNG6g>}qL7cy\HSsQF%}ꔤ{8pN& ʤ3al$+('YOlVdWJ(IT"ZLB@OKf%? I-&c0 41 .%''.Ƌü/j~yFx>]֡0|S葜A[4OhRgoH*(# tWIoc^H6YwY_8}fN1kbw!%Sh"20Ј݂nvP/gB~#^%s'_|(sFQ sk&|f#B0&sGoPATzOfmNmJ Ri[&gF %09oM[.2ul*BǏ#F(+rzҼqZVv8xD1 KZ4원2}]8`fCk @;X Ւ2BY)\ѧΔ6'ٝ5 H:UH)HS o6c|u nԥJQwaUhލz19[ jI{#[/~SQs)%(`^N}tQsc`X}8~xOtn.#宐jrn]Z+&XUE~5L~}@Gyk&mJ[Xx17[!HVc^FGVיo0ݡ>IEz&ǸxRYҖuHlwGAIAlL(k(-]q 7jYޡɜ$&zb+&KU ;6sP"E%ON>^OF4!bJnq2F[ Z".πJ1^p5vlU cQ;a6=7~E)H:|0!p<ϟ&q#根-bm](^}UzZKjr[2eqԥ 'M|]I̱~D/'!3PJfhr5kvErh~u9H<7t!<բSrG-t"}_(2!,W{ʷ U{H*C[腀tWJ9DfMH?kگg@n ۘs^"fuxfE@l-Z0Stm ᶞ-R<`0/#KH!>ɭV\T Ǖ^1)~\wB8 $呏1IU!ijūM$Qq?V6vA(yj42Ul xn9xAq W <{rom"Z]6 lY/^J%!oƯ}kkdF DSjM aaCe%c*?=afg58c,Mv3>5ŻXV=<_pT%&]4Ij_K8f%Xt1?%Yc6Uup~[_K ʱ,tv"&z#|m4g&{_+V䨲=Hmk4Ǭ^e./S ҋ{eRPEa3_s eMg|jLeG#fČi)!6X*`K5Fp~,cn+7/$ߙ~~-~ 6*2Ǻ"A\1{˫3JU aZJI( ;1TS(E)hD.rFA͜ ځ4ޝj%oj[,t 3.S/ Ke%Q;z@}iu` |蹁ָ= d i{iοLx Wu6>ɧS)l߳\hYQܣf<֨Z$H F_6o_NyxcLEiӼir\P,xGGGpR˴s_fZ8_#,Lś9Lq2W1B|CWW|tJ)RZ'.XF;XЕdu$Q;,^OAfL}L댞A%==v>P_&mG fx_kmVRu]bl|/KVPyoq~b#D&e_>q;BU{O@6 XFUq"W h#r}[ he(fg9<Mu:Z$Yz~U豙^R<^6-m4N. ly}mcea]pB&e 9fO QbI]֖xq r\@=,x}*dlN_FlƜCU/Z wׂ uVD9)w $= e p{݆ 7S%GnBrǞfS!{֖M߈2t:F߬ou9K@Ŭ_lDN@DFBh)FKF$f #E{Cd]TPk$掠|2S}x ˢ,}*ID' Em(۬cƆ&&SDj r8+TW0D0"Pz3 fԿ~^4Z!t lD@~ -Jbon lzYm}]S4םc=.6شYp<$^ˡ+eD ~+fS,پ!AI(eQ62 Ph8un|F{*&08C24?3js{e ̷xAv~vI:nŸ v[/&ﰄ-1urK kImqt&TqOln>Fm{"|z^U\\lfMXv4EfZ-^5pc#9OOyEG=tWpl\rh1w*F9 2'ͣ|Uf%d(% Laҗ"iE@+"=(vza]o㳔sio|-:_I7e ZOr|B$J}F9f;CS# \ ޟ9xIL"  +njhe ;Ĭk \:~ AF7y(r6|u0$ka*VhP < `C6vh47:5tpP>h0Ӡxk+;8$GwZI&J|CrkY?_`u!ob.Ɓ+O9#R p.3 ;\Q[6fwSQW?\+|@Fa3*IlXif(Dv _xW:Љ>u| Nd/OƁ ]KPW-jOV)E]Nlk೫g1,|THBq:xf}A({b[ !!j˒#Nf X<ab|^bfsB1\^h?w gmOVG!N݇J $vLԺ$~Ϧ۔e 8F,0*\w 6kJB.U@4NȖ'm$[R(y&+XFDA@(gJP%wʲ̙TS\ǥ|ޫܼ, }jn"D'd9 b9΄ռO(H9ABN(Ռ34QBZ*D.wDY6D)ݧr v 04DB>lFts x ʲJӯ(E|_VMCf[}g~Fd4{l:#lRCkΠ[ŷJ,;nAll962e'6pWKfɈ<-bPPZNG[,ocP\4E3>ԙHrC]w߻5B2*h[5^l J !49?_U I D ŸrlUTj*-_T;66jF󹄜-Y\ /L9`;i%a"[DB1[*fIfE)6Ý$HlJXVҽnИrcJl顩Q Z@t&&+xmt8/<+I+dݡ&lkeGH3șZC%IN27;ϕKi׵X@[Ͽ<(RT[n!&MSt1C6Rcm56ULwb{qq9:J0y|ݨ+!Ll^(  <2+ ք;妗9!v?E(hoP ^D|ѸcIo%r̳ 3ާ^T6r7$2x4~nb't--nDE][ge&&E0;-| NO]E{A +/mKqؑ=oXej ,L1K -(8ÛPS )"@`Ȋ B %.џ`4a0G) ky۱ϲ53P~ yM@mḇ|}\6orjٮsNv,_o**˻^LKb)+9?7pӊml~Y4 wAUxmcѰĬs@*α<o[?a] $w ڧԪCKW? Ju/-^hM7(DX¿S -8Khޕ!_nSC;dA"}BF huJ ] 3:~'0Ý|L\2&0Hp/>|OnrV/Bk{ 0^mUHxnϫke==;h?%(M߫ڹok>{ghCg}K|SdZfvQSm7l~qH4\e tKT[cx,yRp19iv P3ힼOv.· +iz Ūw8ZL[~gpOA0E,L;0g.OD9ˈ96}"Wg#:\>cʱݒWSDEijuzEqGiClOOaF QRВi^ vOۂن /ɽڴ(_>jAO`.nb]@Lc&Xߤ: 1{KMPf˂pH=zgZԽ&wM7 V%"ԿO{>eO>05S7AQ㌞v(6D]^(h;@@vBDOgbi+w8Nn1>Vabne[V<}H4!JD-|fҘB{p>ݧ],Cx=I'Ea]-[1]?s,p\,`SgFM2IKFoA M!厁6vZnwr^ty|,(JV,^`5~cDԢv(`(v{h [7ks23HKCq˶)X\sVj}ұwgzGP9DfTڄ-tI7) gk|U{&X3MDeJ-߅?M?ٱM& t XF'Ѧh6vWXobCYAn oخ۴^v7l.+xKGv/XȤVF֖[^&_VbLua;.yb,SRptGu!;׶V >Q5 C)&uI(1ۊ>X6qBD;h߹bi> , dcg?zOW|%מ|.S}޴-~z1WW~̀JVZ&N&drnm[މR)&0!D(}anJߝxu]q]fU-!'plA٭P~9JfKW/:i_rcfͽ_Gb$ =)^2,k~K)EywW5uX"rJ{2@/Y:!qуW? &Ӣ 19g`It趑 Oa-GCd ΝϜ~Ln+QjW֛DS͟(+~TI~;[ 3Mr2{d],="Bank->Z^ez92z-0?‚!QI[wFgzIzSNQwoxQV Kdok!;2FqZAmLUEhV| *b \1 Bt,x`Ķlٕ_w.A# x"K'ƎqDR(.SRsyِ<{ШW"o=EOJL7,6=FDp1 dΦ:q`21Vnvp$̮:~7 /}E!64vk;WVLJ$/<dc>@Ǫ㥢`q e0fFK$H2MK DྟȳƓF{faytălTp xcUӝ k"8YJ*;(52&v@nbQt;zF@r0g-oi4u-;qۏܾ$~IپiG>PRz:@C"}A5ftA0w)|aK^A뿜O,DFZQ;hKٮ'VϜG- h%\BFfj! W&QJaUTmGS9R`eCa}<C/ 8*!Ij+:`m  e/bVa/8[8r}iS}N z$j_Jm\3J"QhDх_Zm~EM|6>?x q8^iH)h@⨔sǫ?_a}KSo,|N%DjpKtAl&aݩc WPa\Ә(ӧNڶUǯ:dDz$.9G@lHh֜s%m^P]F¢/@ ?)H"&E|ԛ~yX|?`B@/h5/&bj«nWV%b6>-A#SEΌ@YTnd8Yzl j{oe[hכ2#ct-5>kyC/TG D'CvuاY@^tꦬyk;:܄}鳫1&yc )m.@U3f9H L vaGFNS455'.m@o"a b {)UJN4qZ8N! )a,iȝ/|y(c9xPB=ՅGM2$\lݱC  {>N0& lźQ]htU]}<߭!ZOiE7gty4h_?jf2J_eM׫c.4JI&.fM7qS O:7@[vzAnr۵pH\ilgbZ +.3 j Iy2}TjqYf$`׾lfQwl l"G1io;̏lip'̍pU#_4W ;bŰ>n9Kֵ6+SJq=7{USUfD(yWrA UVڞbRqֹl]"xϯ}BfQF l5^'"GNw HCw08Kb-OdOHϔC%fu9;Srv-U/P i]pb?eb V~i.7 "?\=\rރcl[ko= 1bf) 4{8 7?qg-C0HUj*E!t5U$?zJU{۸ :a/> +Jzs')[Kw'g4cݶ$|Y?)pߓe|+[DVF Ŏ-0@<<-a,r0 2OU=ݛc|o-XX͜A]:o~FQh0I@wvbY9NU>Wl:4y7ݐ/t eëW})CvOacO5ުGޏ[`jCbU 'Pҡ+AsQů$:3&ɜ Ötd\csw@P1t*9yzD(4>7 +K=r%2aLjϘ=R[=M'Fd\37ߨG~QCwӗSfRsfq5 b@ ]?4Ƹ1 ] DÉzDx9#:g WU>PC!qj\XG>ztE<+XR;nE;wwybC}R2y Vmk,njlڰ.3e"ٝb?{{};p2cغQ( ?e,ɺf *e*fxtR(ͅB < 2T3"yނs :_mW)鄱N氡o^˳nO1lQ_{t^H .(?@P Ä!rjJ.wHi&Y/:dй,G@{˜HD:Ic(+ o+D{  ͬd`i\9]Dzqex,b#?.ᵴPK1iB^ԩڡ̕$W(88@N˭J񳀨9 8h4nRP;.eԊ|g]tn'& V:sUd34&kv̚wy̅xA^:`/K5WXOڡy 62_GL^V ?Pj $ J$ WZ Ȥ hQ^ Nc t 1\(pf_ܵqD{*H' ?\7I䱀|4\H6eN 6rYx;dMLiTDE˳Qi'ly%'39@W*;/n_!ڕ2dժQi-g79/0'W#3E3Max1*6[Gpu9b|Y7D0w*rhhW9ѝ; ~&Q PJ;.B# igEԼ=a&bWՙ< Ek~\|aTDaJP/懙&3d=j\)i<2e,i~ iƥU_;Q_%,"^S{^'7 )OK"5B WD!dU9Z3G}-`f*A6êdCU4PL`O4ȎA8L p&ҝJntZ /rY~cY6$эpX&&h >| al*@%@|8I.,g}|NRhNm4aTC5) n=f'o.BT(+b%9v?*m42B,g_>74W'St5XY+V V0$@x 5Kgu/M7pgs6̽섨'D˯ԼA.AtE-zˠkP x"&ůw.ĹB˘<$:63>hCe<""˜y:6Яt@-аP?KXmF9:\3yLn{:h_LE"Gujm!vd%qI(4.Ȕ$,VޥKL` އ*:Nh>X0r1P)f#:c/ښUSy(𱸖*-Qr%3+~3$9@hj|5^&/kTAo4qK<GξKٙ痿Bl+, ;':v],FA$xƯPtlo$,!/rzHq(c̪i:a=!ymOص &e6 C}дP#Qia@:"@c_6q 2`Q}|K;7A2:̈/!OAbCJK8{\|IQ? ADNMB&*'H!k1lӟFK.l>RϽMpy& ?̵°+ ~} Ah+$5o[B߁ $fQ/|tPA8/4y\`]tX3W[3fgIx!Al1 B#Tp~4kb?Y鞜3OsK@'#13iBbYeN,q.bBk:),QϾg,%7EHlNv v|4Nu{OQN@M֤@#R06XrC}1|UȘ=~qaһ܂6O̢lsf6#Ob("H *-uv:)1$ƙ_۪3iE]qt*Ր,L*V=nԶqRjW1 &W5oZ&u,v`MpLR)jo^3@NRj`H[^-/ 8ѦMɳ(qj&UU F!ί8Adĝt],з(N(rblR$ҐX 's$uĺ3׀+h貗qZ;L/-}~cy Y$ԐDEel|1.LDɧǹ*9'/Z\1qctv&57)eК I넋e^bd2v&!%G{qƮێVs:Q%gǯX AN'݋Rk8d8K3GSV8!I Klm9?e_*|#Y]ZCK;McV['( fRi$ *0B:,oIt 薸LF0Է 5u5qN1N# NZiQ5'5kW,Whک[FYW9zKYdjZ1\!џaaGʡj&K,fQ{wrb_bv{ eAIAlLi+=J3 1ɭ„U]aqX(4SN>Z&"1$Sj-[p )2H"q.'+^Pj}\C_>ʳTQFBfqCfLRRVSX%H,JU}ޥr [KH L\՗@odh,OZ0Tj#PNuwr g?`؉YwblƥM,>[͙fN;^OXG0y=&BA[#]ƶP X+9'. 3,0yJ1n1Oi_eZϵܦ XMo0mcu׹:.{cX[?%`!Oqvә >tYR?gewD=W@s~V'jˑsj<&bЃ;J*# ;'&A{NJ|zQe;ZB*Brs2ԨOB L??nIC_&l,{lyOBR4,D,PP*q* i۶so·ܲx -$:|U&~9|bbU*d)C>Nw>I;sQ*͉b<'{œ/i^yv,ZM sb eLwMZ,L;nM!]hskSS-úfC:rSi.qΕSo$Wd?I87[V킽ޗfVH^EG73C&y>>4?;{ NsA(ɫ-a&Bi)E~xDT,IE+^vLqKNWǻDۄТ%hzwTO#GeF*t3 ڀ Пp/\ #:ltA;4봴“AH㼟uYB=FHaTNY}=O$'Xdt &7gFB3k3v^9Pngϛvev_vݢDp½5 cGU,)=nV&ZE}j]6ZTuo7BANt!l:׽ƋꎪƝ1<+.f?Zܖz?</qR¤eF*YS3\,SuYǡtqxEC?AYlBݯon<[1WyPe5b*;󖗠9f+pn&v.rkЁ|5PItӒ֠&j- /LO t-,6ĉG .2f &7pVHf>KH}x ɿo/ȏ ˕ۍKtγT\\rg0)\q5$\`Yy/ dZCs7j )La#]6 )|pU^I1_>HiYgQNƷ헥q\@R@ %4G%g lx Wfy@b  `gw)]M<{*xHbڝ!גm0Q%=ӫɁOB*"Ͷq2 9zD).i>4Cɾ R z}If,Ƭy04N*T1.Mec`G"|IJ" wɴaɈ3XmIVfZr9o54]GSpVv鑜(]+/b%kFFk%@✜e?Fs>WZЉFU'~fz4 XoI 76-+rȒBf8=EұS~iP,!TJb(>=Y6U"Z N8I4f- x4a[4ArY3 i z]j-VsȄ z_)ĵFnQ%al`w ADF eFN* %,)W}RkQM@hq*<}D}G\vhr>l_ }}x0V8 b[_Gg!ηNν2?} R5/%m&Dd$-#v5UO& 7هV(G*RXp[cZF(nS3|ߕut==n4G>QIsrM*`ӳiGW÷|o_Xu#Su˂TUt*麣NN? +iԝ|Pye~7{q֏j@ 6(bGmIxOySLCrA4_dw$ͰHN=@E3OȦaZP&<:^ Eh{'ՁV@/,@һt]Xx[ƍE|/WjkݏR?WvTN9'/rC(o[[b,TͪKj4*Z%4PB1j#i)Sm'?4g/D)DrƇJ?njEۗs$Sb+@ l!ް;wtijծO9:\&ά ``@GqJSh\?CgE@n%KH~];&B>u1X3x]Q>{P0Nޛ4PA]$beD?BRZp 9k+/^`zBEb-[_脎:9Q&dJv,^og#Jm rU}ƫHDRy8F01<(dsVMobj1%㠼Vv٭߀S}sL @00Z6#ۭ 7!Խ3'M'X$#TSV1Nw1!h]dQRT1suAڛXJ}8>y-#V5\*;GqҴQS5V Z}tV7jM8(ņrG  ѐwbnܪAMչsP_άu]qNkU !I_2a?Sv)TeK9`͋p0k$ٙw:=pCot[r!%CfjL]qUWF:.hOؐ&F=trƪKN]*`[Pj/u5ԨEo ß{Ns-ȾP]^yi<@\3c^.ۋ+i+vto<,qeNYejZJ֫æa0Սr*0LyV)Ҥb _X@,IGmBa$ѣE? ]:|t;W'MT?3y%r9 ٦,xrAZw?;lL֎+a'{'hxw>υRTY'yJ6}B GtEIIy̘3MFDq}tŗޖ@4]h E,XpU|\%&-J~l) 9Lǂ{\̘ؓ"CP[~-JƲS*k@ފ+26E4E5^{i۽3i@p6^܀Ź>b=ʱ/[2x j5XmǜŋaC$X|zBIW|-?ߨϔA"̟ue}). v=/@<#L2ё= 0fvoܳ0Wu8!]6#Rf\6co<4!71S\!HW9;Ch!Dk1fAE/Bd{u´/ذU}-=jVECMBWl0 ЌTK[TY";e o`*ԍD-.O %/`\T5i.MR[=6]8Ywc!Y An]*tj g+9mtzIQ:$Emީ.^1O}Һz^zAV5$3]͏m=O87>X)@h6 ĮFH1DZ|S35}U=~ тky_E2\#PB]ht9**u\U`BHɈc A{OUV=b"Pv)y)rZ7%] MAOݏ1~fR vF~ $=Q9HW;=40T[s]{,$Xak=NJz-Дhg0K?pwJq2 =("JYIRI߼AIN)ufڐc] ٓfϳjb("-"iGdm*dtƍĐ]e">EZDxz%1kpObK+W> ˆ'Ԏ梮\Y2>g{ C51z͸'ak{\By9:Vę{UoӸ UQ@`מEG<1Y)7g'|P$n"}"\_|cKP)nl6` u`\@5S :ɤL- P~Kᳫ̱7Oaz">Ɩ`Vm;w U*zuƵp̲)kn> wk8]Z֭ 40ٲin1inݣhbuLnABDY9^eB5#uX=Ve#wY-Cx`6:`=M=[Z~q"u׊HL;w4zw/k}ܩ~4gl4FCɩ{, Х=0bz[@![jm=fZ*S~f\q;Yis)g*V *Q]w GX':&f/ |ΟQN.~>u!yV7,Aiykgg_%@]) u?>@/M.Is~MDBǜٕ TsE# aD]r>UȨ-b:\jD-mSes"vxyX뱖Þg:++nN}L?W׺X5>s!I=ykt \>BfȔAlhE06]Idru Z !`N:aAIAlL mzYT,uQgB > n!Gc$'7 L0Ss!piARYMϱH/}_I*U~].ͬzC=?$d@ʏ*: YXCϏL[lᡁp.~^z/QoK\-2Mq aHr'|diWUƴ5 g@܊$f$1Rֶ }c E0H"Jܡ5D&VUtQCN3?aZ|0#vʖqizXD'WcčwN̜δt0y ^|.@l˙c̆a!rt P7 {N=(yOXmr@8k܉+1~(Q20B ?0ìkU:p) Cĝ阡%$U>ì~7#lgpu[tfƙwՐ%͍Wo, BlFE]ł{Ws#}%B12wk^EB#Xp J.&Lتʙ yK/<-WX87Qv,~SƎ]R⸞(eۃQvRim'SҴQ&'uFeJZPzG<Ʋ)_#rE2ת*_LԦ DpH"$:Za6.ꦢJJU~RQe!VqVrD>"2 JyCR z39_Ɋ9;[7 5@qYgƇ,s6_1jhi^W/8$f2W M@ UzO9 e/̐ey i-`Wd&.i- ob GowVV0P4d47>8:7WI9}譱C1316\{DΨSQHA_OW!9T!wP1sc,TNet-(ԓ8++6 \mn Q,lx")iffG[=UGI[ri|?Q]MmmL쑦DLKi&Q7J f%j TJ>{i=Q1,N8$" FuTN\Wi8-jt~ƘU7K~8twߊ( EoK `4?Em\R|򤔬Q(p~ZYAKW2.mf)l`tnNsȰf-{ rI?A'e$O 5f,-F=Qg=L+ώs XytӣXqĨd6uA+:CųL!, ,%#Dj 19wZ<Ո5FT;_7ߛ :T! _|ʼnc8r:T]XfuAk-e!̏-H+6HܲDB-N"LOs'J0}BǛ%f\;b!? *!vTv ^[¥DQT0k~UM|6A_"<^x66jRmsZvkkI'83d+oLpU-H"HK᧺B`j< ͻ9Q"Q]PV =u؀Ѹ3/4rC*tX{^ƪhDM-i|̽u<噟am}~2ojI9X&I ;ۼ|BFI"cGtR5ivF}'8'a']Or@ē'bCpDLA]B K~Nwp :] KP-"r߃ T7$5sȲudǞ@%$0ҭҩ )cznc oy}C9DˑTXd]㞳i7bמeMZއqg"[mVqx.x $WmyS.}ükۆءzf~ _l0eϒ~G{;1YĕCQrp1$QH-{Z##·!U}8S Tɣagߚ#UeE^aDgL=ٛ? *Lt͙J s(;@n Ө) iu)Bf'kJJ׊j J)-NW 4[_ cY@#oVj񷢯ƨ\Qu`odeU6 nMYlQ6ΤR"TS*:;.A l:lNST7J+)z?͹^E8b\`ON.pw{S$m&\Z+yOouVĐdVW%\+Q ԐN@ LU !ȿVO%XIW<"]pVdq̭R`OCȵ].LՇWHt9;^ffN(M+8Fn;cbasÀO_cLېz- vF~yCw ϯqJ/jQr!]x1)C+\ؾ5͋BoӆO0.we㠺D#ɶnԎńh5B X e K PY_ܛh&V\5m@`SGjH!!x #ݒq2bK@{k-?Z"X:@HQ2[Kˠ5x~3 i)1L.㐊L;9@7UU WS+mͩe7}PS]P\d»E5xjWGu]E!4OXc5wV{&ɥh쑞iE!b@(AS"_[|Ԧn*ǻv59m:ŕvZEBT\kϻ,բKbslX] @a~@k2afN,^lK~i% 8L?IdpQ@sPL~Y|a9A>vKsqJp~mK+>ճ>>i҂(>E^]ro_w+2A;th@uݾ v$]tO ɱJUy˪9H&'JvZkD{JLAԖ!ӔR9\ZU-޷0{^>"?hD֮w␄&lyhfhĔFQyIA1 1L.0m*{||,y*B2}q;[l'ow359ha0ǣb22M$VAIAlL 1<ԧ͉>>M *92oI䴱-ɨБevKX~0k?<~*3y~H^F7S2v}L 4_8\}ImntDF p v,j#V"@dƍ^RcGmW(!+e|%7 x],;eQǀ sR˵b>-p7IE=)m mJ{fBiWkw[8r{rH'ܦi8$~:+b&ht^ciA'cӮ89gVf 0w{yLLp_<x"K% 3z{)z)qa sy<[>u8W`zjAz.Ӆ%!}P8Y@-g9V?*dW)-hklA~$~Bw3I^9JM%N9ֿFFdtvc0ץ'fmٸ>0pY,;=7?~ R阥ֿK (Z I FZ (m6x1hCŶ3Ng{õW46ENTo &:I~/b6vzűQ[&@v,]yy],2/0VJ {©pK8Zq 7 YԀ bذgߒ1eo{?vMJ}!l}u)xس`k=ka.,um^3l:g9AĪVéW | AYd0gɞ4[w*Bm*l>{^t~ &gȡ[n}&=UvpQ>K_Ưai?^4U*Pp&5 Jr,ۘzNYURpPX^E_E͇jsvL0IKsQksbh~RSf=aYY73іҜo:87eHv"CarA!XK+6^\ I8Vc-D_T?I-jJ2I>1{R; ]7qÂ{y8CJ>7XpetCP 8'˚G_$ 춖1B\xUiGY4v)Ka*ܰU0ͧ)EޜbCq Kc rb.;yRQc - qՆl \RX?๊q~g55;}zW}ZV"bgޤәCӶHeIJ@0 _IeB ƅw8qavfD]v6!2hFkכwl+e2o{oy:nT;袣{ 0+K+4X$'!A@Ƞp-P{vd=8&.%)h@|e<90$Χ癙\$7ۢK (oVPKSH7:}$@nPT"Gew׻Aa-T)`yT’ǞK@!Eget ͏e6:(',\PA"sfǨm R>,݈3u,lRG  n?W]:c?9TQ,іLw8K90_)xmAb{IVMK^h54Y]P:_wXZp/x#E=!sm\7༃(]6#T>( Hs(/:fPۢz!sVP"e(2$8i+V~ž <y^"Z%8!AnE% }b6Uc1ZUr&#㡤_#±_¥9Gu;Յ,[53*sxD8i: kjEq\Ig'W6&|ca.8/L?l/p!XIPu sovKMJdq)9.ä<,F'"Ki Ew" ҟ&dk\Hޤ/AH׏˯c+^6-0Y`V|݈g+/9 yqH[ Wf69VudA-Jӆc#Ȭ?NNT:g'bcw{@XR\ ߎ'0g1vL29R A_0TQX#!cj(ckX0?i8Q^2 ɤ1>&bސy덆frLCr(0+ǎ4/}\F% PucWD YPM~Uө0tFlj2_y,8_ $#]7>D}AZ1j' "~<j+jG>SQgo) 柴eqw#]qDdϗE+PTvY68IaL2pkrCiwT7hgiB&uwe/شJ 4 N]rW&oC AG\a}BPH^6ѵkt%(ގJmYRA>E-|y{LXS sw j/?HV*d 3̘ot"i:j6:a Fץ|+nVh&`v3{ Vum8SWaס_IGjPD SWnD32K07m y"ĉAO1)vibH"Ŀ;JLDL4k.b~-0%(˛l,*O2վھ^49sL0%%;K=AIA!\ h-E{:})$*u}<(r8zDlOg<k}P*IJWM#ގ1 ֽK6 rdԥ|ub]#Qp/-G_jW+\td HQ墤 `,C"sX ԚHCOV fWܘ1+g&5E23,P?N9{o=a!n:+xI yvoB"@@qJ.稵T`Ce_/^r=I~x((3 3& 6 nT Ii-^^Z@d8sq XBJr(|"Vtv\%ŀbADIAlL Oyh5n2ۚnxF8gP5Jbű]I>|i͘b;U>\珽4PTj+@4 ܆q<3tEoɅfQ|;p$GR*s+xo/V R=ycτ e$@Ѝ=ehti !VUsAQyQa]OYa_Nok'{7k h4H,=wߺWho,ԣZBZ>A=a]nG+~}0yW瞕 4Xg~L[릙; dgyE7a$kĨ\F3؜l;_cT <;&T{ mq(⿥ K`v}HNˌJa!r+_7.W ?rPgB_wR. 4y|9- 2oKB&yGu5kˣ8ښcfϦ'11f,0XL#kflb)ҁEҼpW"K#O8q/T3Zl^2 l7SS?~ձ-Xj0PGp+/_z*)/qʐ6U'Ao0hqd{w>OhYOXJiښ2ȊH%pN-!- WUW ?Q̼èdÉ/90>{[1 p'׿yX6T$j,kqUtX]0 d恖tNh0[KK3OQՐ"'\u'8F5ӚԽ<4L kEE@XU4>x(V:%/>2J&P: ;;*I0Z3[RT$mG;3(| MQHTZr'Jq^K M 1tp@!.R8cb-xx9 >( @WGlRt:kb rw9*.d76גJf4[q˓̪_F}`&oV/hhfn-Xj]!;6@/N6%OAp*NM5}c<єW7Ⱥ̽p]NIX앖YX=)Ɲ; ז{D4Vƚa)xplNiu<\H-s ȝ^aBMSKRnWj<ۡp2 s "vjp16ug_!#>d3SjY*?ܽ]3d%&BB aʊOҩT6,>n}P*3k|B![D)+:O_mMLkX3egжwu4qnK*z6R _ `NK)\4io2}JZG.ਡiX;OG\JC?ۙ"ksXC(TAn +{IV&W +]wH͡E:!KHyfGG;G˫33 ';oo[‘g=s7ސ7*k&]ANke}S싛۾NhiAvǘ#Ԣ}Mn,8/ H)!Xj'H#w;-O֌A=XCuSzZu}K9;1_2ؚ}ğ%ØbLG=xDY쌟|( 8=ʏf> "5,4\ &9U:Z$ /FiDcҡeeE'eWfRu\7pF }۵_ nz10N'8;Sdw Ug55f. cDC r\A8m]xlW  E*=éU)/=66:21<kwSJXhTܧݸ琥4 R5_NvX(n,ɉ{8Tԅ⃷[mCdlG ,]颔RS^]BDP\0-x6FfoZ?b*(V J]ZTaqDJ]M$X{˜ae-skrϊN`0 O0 Pdm5RӱHٲZcwVBfP2T&aB(? +W xW}7by^#`}k'Qٴ(?n`"#۟#-hL'~\Q>}/1}uxC|NqGc D\v G3^EfA= |^|*_Qo.l 5^N.@`K22dш|4w7zbMnYym8]Kɽ4J$`_VV[A&c/Dx/Nv ~7eon "GIg"ɣIE`QbGS^7!ER8Ϋ1gLUz5El6D,[ F/}om:(FmeAo@UiU?~z.3v 1^ԛBh,5`̅ۛ:Łu[n ?):eGeKWLϜ 믄~ εb5U4#z#+&U Nɹ~H7S u0jxpF%u_Չ]힮tսc@0S]=1#gjCr-Ҟ~2g XSe&Gn}ypIVg[Ў "L F 900яS |ᩝeBthpK(ɐ_ZN-ZZzk 9t鱧{3DfN, Fz2t۠jSG%3]K0:xIs>`RE\[0l0or4]0k Ǥ^|aN[5ۂViVwh5u!ôaGPs@{d#Rh2!:-Gtbn=46%a!yJ>9yz({{%$Jx;|NM@;fy&ݭjfY, P;K<~CU jO#_t~IpIVTX3 %ě0Mf[KCo+s6=`|>j͊4Ѓ|wD_˱"3|Bۥ݈k᥿]P|rCEnee.DpD]}'HDb{ꐒ"'kNU eEv\3^[Dhb;MF^F=G/{V"@ƝO*s0~6HYGz k7-d\#;xyi3G;*tdOiiW>eN-!r.d,/ 7<|@yϸH@E=WLטT u'З23ɦ <;+hlݮ ;d= ɐ6,<{98doPU‚)Qc#%wr)s2muHEXtW'~חgƜ %9R\f^Mnc`d5t9GR3eކv*sKxzҶydR]Cf]ϐn;NS!bq_~R2 8 vM%++ @]C'-ޘF{Sg$,xA ŚXu?YЖe*+Z)KX ͬ,,v D&nг89½A9g?40N )?$ɁHkSOۦHƾC\kv<Ԟ$qi䉆`7YLɺ&\u[7{s(}ЈrBЉ.8̉5NHЪ ŌqZvn yEеaݜn0k2Yx`/ShAL q4S4%>2r#1}XxA~?]9SdycuE,:3} *>p+g6͎ 4}0E0u8vA5X$ ' a*]toDyU@3ú X|Ӑyx4(ۅK;0))!Ӻzz[:Jo0/jiKX~-r[C!˶G1m~cȅRF&jrm6{?u7سImwYJz!YcG,`Z^F.UĢ+bҘr50jt[#p ͹wEe̯,T=ZxJa) 4hQlP+e4!, 4F %ť\vک-Y1"K Qk&(xOQlH*Ɖv±G.@p߭*ڍMԖFCTX})'6E+tWLBq͎Rn˹Șm~ogXjj>Qe-A6s"Ww}.f T!\ٟiĂfb+9 6T2zWGrTz!q nB o4 iU+],-W}S9$Vw] NuP <23N~f(qf20[G.#\v{@zV D_$ofQ"a 30҂hw׆*1U]]5jf'n:Dihx:cjQ٘3 ) }mY3pI9/T ܄G7{F@ &t%t=JEyzRwnxB7JX_ LՋ?f;)ɨZ^/jWִ}Io .9H rr=MB;ITPI]#Jmr/gCY/C&QtW(A]|X$Y1*ٚ82uyR~/%^0J߸w~ү)pLEڧ%j3MUDX gZj-{X(6uK+}$qomJLe|y nzp}oRi3xݷL*ZB#@:\(n ]j5 =X}sŦS$1-I'm7I8ɔ"6=.VrF EYlŷՅ@d& AͮZT%R#i$(&I=w.Y>]<" S!tJVY{#5J!WCÀkoNOLBDoX%,[^#R@)fl$sfIA7_m$(J^c(x?dX)iւLAIAlL|=ؒG^/SY L^6 YIg/K#Kv%=&Y}a굉wh&dIL$mB/|KK[dOHOC `3F,G^l|܈X$z<UU8Uޫ@Gt͆ Sc- gRm)5 DԪ<-1<>EL0 ؖ5JO_fa rY@: D|!-~޸k!= 3 cvC#@X ARMW]J//Spa =q"kaodivM t?㟾?b[~{;2;^~fD"rgoD-Ij'5jɯ}bzy-m ӴOMlk?/wS2NXHl[?wE-^ӘTue+K;k*#.g ilm[>ӓZqt/vG3 9Ҡ%Z tXME(8:m`M*uQ&: \ D4R0:Q i+7[P8 (jqtA);-5'T{ExjPx"{P]x3^Pj}r@7tm:jM2M+,$롎|^ڏrtݻ5@HGpM@oooȵJmY# NL +6V݄DL3B+K̆N\]Mz\Xv!U@iІ@S!T/$kg 6ɩ9W`jM!(Z"wp_m1wd[ 䰝Y 뢔.q| k$E:OA(A`*~h&lIO aB\˃8\˹0y#U}W $\ hړQАŬ7/Q)y@ Cb|}_2pmhw u ^zq 2Cn l}7?L-zCiQ}is{nY4o^gqMsi+ϘS4tZ XH[QQ`j׏T?JnHvbw %OjTPiP!,~&Ψj4 c B\,Ο @vϫ)i~w4l:(H8 6uR!=X(96}N`V6'O 4ꨑb (k! & +P+B10b{ilK{"}G|˼ ӄ{Ԣ}e%sٶ9֙`첆 *+)'#8Tx2J9]]$@ɑyV\vj|2@uCF%CBV褂e 䟶he=V26.l52j[lca"r#+TFx:["8e+}'u W3p)0\CU{X̃Agݚ[T$aUDXbSӌ>Ti3 T):=e!+)X4k[@ wZװg!ij_ՋD5U;7g;m8R@XgC@7@1Ae=2%{Q~ߏhF:3h&8&.3-8F*ͷ>~Yvb*@Lc NNgWt&}=;:O 03_uFc zgd3NPg#}!h3E⇫>2;M}/gE]zې9FsrٳpGG2TkK@D @I`NK%8v]~L v 8{lR B/Y,uRQN +zѶ-WR/Ƈyś ۦ-؍8|@)JLIsMlAlWn"~f=5+Cz$PZp爖KăMn{N1 prtՏg"I/d<-^`g$}ҾgJ8UXd--xWR\͔SXy(TGY`{=wOv- .Op Q aMAdA{0_u&Y,_^L^>o^X,V{-&f8ػ {J݃QF wUJ6"FςE(c<;QęZcܹ9,!lvc+w Rzr?1kZQڏ)}GXj J"^vhE3fZ!Q 7IƞOw1 Bk,Zȯ̪9Ք |ZIgU\OihEw|L· H@3ۤ.QO2XmP`:PR1Si`!и=O#_+pL"bXt"HVTĖyl: 'u{ nA.UK<38'ڹ=ʪ}5#x~߯{ۘC0#|oلYnV̉Gn;XAqHvCø7䨦lKRs@x~ee{&# Wª 3hڃ+EO/ABk%A,v6PUK&aU;93(j"/xd%"㴢a. F-Teu#+NPS~m|z]ܗdA1!5U&(.=:$ہp5crnV#*f=qȳ }3vr*[Q +cF{C?y{S@~D4>M;?8]4 5"z_]jh?>{*c^cA25cE8X6"6G0-=<+&Q\i>0~o9}CiLT7xgt8'A"^VePચټO=xzq#Egu@mܿ*TQ@:O2䫖]v2L\AD4EV@dU5zIn[ٚR(f"C@QMUER}Q^cApzkQ,)=W<,Q)HxcCǓk[Ȩj:ӄ Q_X$OAPc}KlR@!.ϱC:tх AE/V53 c^V6YV0^"o]H,I*s Wv-w8* "|㘇Q%bTX\-D B\E Zɳ].吅Ckɏ}ݠf2¼4B^/)#!!_eUcK>bfbuqM0nۥyeNQ2_@@^% e.vҁAE8>2E$"#P0pZоZ@/u-|}-?;DO\rQ_47yFPߔI_K19R`$.c 1PVm9GE< 4Bhd+Tj $EiG1h\{AJ9z<(KT7#589"Yd7qY`}զq3lMdF}0w4o~"=ů':K}^vͽDxQˉsCoX6^Y톯+l+OE*;Bz{P=N,З*|)u /1&2pѡf^q(*$Тxx=/MQĹB#͇KJyz5Z@wNR4V [G0+8X]}ZI$|DAah.]0y%6L'%"`fMP55WkjWm3{)+S;/+G@GK޲?|Z H(VS:RɊI3mZr\9}F{H]-xiIv:@d}c[vV寗K !i;'4J\iI`Y fZa{~6EsmH6>ͶHs J_(2U>Y)vUYldE̦Xm3n{{/C^Y[z:Sy; a=O|w$}_$orq5x770T xPxﳱԧʻſ#Rn6Gqpiل$nSߺy41M)>( W|hpAE\<(O5ezrVFRHI=nܕu)}m؈pjzMuVn*Co̓w{׸ĩf՟ah[AYDTW35i Љ6)f9l,_|Ѳ]<\GbNUW}?*jDK ;ZֳT+y$Xf@܏@'4z'EIbv2Ra5;+һN}*,ݯo]/4kar &URS!ɼ0'2$,)}+dK2A(XG7? SH=@c*d#ta}3IwIy1 }Cg}Wfjw&aVEī NQvn:^Tvh'f'VMV|&8`Oւk?zQ{$4%OKEZ "Άׅ.(Ai[Qˑ W~ h Dyt 8ݻGY faƅ;i1N#xI=PlUi{lj@up2tdv&&\7$_z ٘0ӷFƏf!ƱˀRf~ë}(=ak ޥڻms;27ʖp7U*\ ('lRͽ` gԦh,bLqk?vTXG9=6H2ov 0־lg&ЇH 4_rzEǺxj[Ճe0K$Q8YA}Q䀃0U OXf5Q9MZd*!@)(KAFt1iҡ;Ikk.Wؒ2}j(xZ ! ~7vE五ǏUkVᐊ 8gQrx-Z֩K{|?r1 >n&ն1o vOPKY'@nٽ,Y ~z3x X; u9kǦ5QPM%b5ŋS$_ozkf؃* m@U]BƁvAD䃱D!yb@?hz4 f)f<{};sZB"QUbf&.=ښsæX"@ 1bLl4]2#DZ!etdQ&i͠:5/r,[YC6D٢W?mu$6Rh' C2?.@_t;f; h+q/R˼F_OL]%eMQŞ>P"uКa fO1tn^H1XUrPL;PcXx9T耕/Gk{׶PIf_;QLfeS+Xx=0jJg]pJva˖[] #M`1TmPU xa_%kjv,V{%wӋM=|՛45Oh!2 Zk%ct/#g@"PT=LlBdk@Vm{FF37\mÑq~qK2앜*V<]KT5JkD3~pc&kD5RZXc5j{ή;¡TzĮ qQ&\R= XLvx`rNVD32w!v:I@Tg`2Eld[80$F_)\WJuGK~n ™R.]fa:o˂Z´CVt@i* k2R HL5`B"]{{ Jj]Gkt$\ͦ1ӚvttA]2oBkL&h:zT0'_ S0Ia%{ nPi̘Q7O]"@ j{-i%3:Z*fCZfb2_ 9k>mV{}Lrjt㶷NΟQ SlApήvgL{©&++G/Heӻ;ݘ3hNX:/lA_!Sn=J^y 1OZb7uBֵ7yhCOzǶ 8#?s 36hq?'GTzV߃H 66$'+GRηYs>t8P-(Ky/п9=1)`kCJjY!GhAj0Xfz 4UbՠMuBZM1q`qZp`f̡U{^93[1K3yV{8<yP.,豩$v7G;]%-?M*\YJ9"vZrЖER0s_Ft|z2I.ʹkWeحt'1A;q&*.6Y٥ۉmrEt隌8X.[YB+zMr 18Ofp 0[u]HdSѮ&}e248#{ Q{`țwgu*!Փɵ}~$B6.h0Xӳ^Z8ϭ\@r뗀9EVYCʩ Y3; ^^ 5c¡.z5oHs`Jgd,o M=05|"`>6:1jbvw^MN |#R7Nr2JitZ#vU[iEk3k`Na9V_a(!B3s`^32"AL!C8#z2)}QQƏpc fGlE{ {Å֐4o~!CwcΖZM/80j>Љ V#dFYl.p3avS\G;d؝-* Ϛ}ٽa"k3@Li[/KyX!OÕ"NzA1^ F /)+\7O?N!y `@rQ:s8Yݹ6)h,waQK] n8Dգ([\H/*3&pvU@M$fP eR70ʹJLqq +8"&ʋ C&X;P=rz4T~hVGNբCG qt1HU CIe9 0= ң˗zП#Vޠ̯9xIѠu񶥈nhy Sk}) {(Mf--DnPE0s.,m\MyD-*E(gO-j9>Xĩ ȦQ'?w]#^֥ev{+ Řҍ҈ծK!ř;)_$'G_6gvO8p%aC\5bTbn|U6C$1fׄԗ*Ilؤݺc@@@CFAن\p-2s't Co' @#47!(e!RO\3f`ŇoW-!B":G=AE/<\VN" , YUo_ހ_(pGH2 \t dݓՌLEE"=vЫP2 Gq @QuY n)aϼX8>:.<9d{C[RL2!B!|ܠ LZXpOi ҌM*zѝXWwF &Oc7r;Ls10Ts3WF_?&-'E jC0ݳP/ 4Kyq:k&m&B'2wj; nWSR1olwZjn`J5˙qF!9+Ф   C~,ݑux+81duQC{u#%{Z[Caǒ|xԆ\8(Ήs򯖓 Y1:HN0$'_6@:39q[0ĥ,0r~O qx?`.,:J 7ZK=a;ߝKWEDzANgkO rE]i4^_6O9 VY}o]_ HU@I)xȺw1)qI/dy"/L87e*,ĝ(L)LjČ[7,r{7L+™F:Vg"וP)13<=چ تS6i~C~`5͡1 SPAs> %_EW'q~"ysf|бL/u _lZ?檲W6[oax(Q^LQ!8kX_ 3~$+%ti;ʧ*`~ 3a7: RP׸RjA\Zhd=(C -3_hoN-ȼt;J.I=ӏ*8tWij1kGע^dڃW‘Ώ{j=9ū8khzrFeΉ2[< ؃yjӐ+|SZXԲËF7sm< m",FP[OSX}"F6(DhQV)⾜53TSJNhdg$WF8NN)d_{dĢ> ϵm\aDDKl͝`I\R|\TCf"4QQ7I7f-[YV0pu(Ȑ^Cx#cgu *o|X D6xB3nDsL yTm~NN(Z,42HtŖqW^V~ZMh>]ch1@˄!vm Y TB`eh?^jۆڏL)jKuZ5,cY>o5(jIo2mĆOE@ jW 3oDY ,\eVq!yincw1hOʁ^Lh΢P whfs2DD^Kg LX@c鋷LՂFKyycH t !ٔP Rkg'KY䇩|}V"{^j8X ȟ_0+҄_}c1Xt0*jKGç%3r[F#6 m`j:Z~L1HnNL ?cZ_g\ШpJH]?qV2#b?(Ny^MZd#HNk zL;p18|^[:~NN3J)KȰ5\fS4#leOC,?RMG0gɴZ"[8CғV6[YKДNQ 3_B:zUN: ݊ l3>yg;/%;U n`=Nt1d0[*+oz>ʨt:w;N-UEhWRۉN=kA*915is0̈́kH}~QT- >RC&b{&D6 bB{8ffpo#S֐ɨ:fq2?//ΆGEeo5-XP쵄:Q 7J:5 -CiGwOSis0@-Qāf +r^VVMle/7ަC/txs@%:@tx-L @ݠF%Ln-X{%Ma14_wU!H f%jax1@ox ~*& p^N6oۥ. >ȗ{~}E% ܕ[5?#%,{J8HT2 :ݽ1 =&3xBg u\#q"?*5?mlYAo5±֔`fjx,_\e m&?PAFecФnGܟgyKy!=`H`"/6\ ]dҺ*$kOFBF¼H- ۬@&֕D\ꈳoN!Վ% 쬒֧D #V%`GR^|,;zNGࣦd+WHI'\pt{9HOgiTy#bl oYOPLr>^:uR OQGx7an>zNfԠI,@ysxm鋊LYVfaDѲsX.Dfk7Bͬ)~CӤLD?h~8xҽiAtfftzPGwc@ !ZS^wWWolO SGRɀQ|!IlW1X2e0_3S\iX@&Yq8m() h3Md|`*ec~ы'ŜnA-Ո!đ)ġؘ(3ο+$A Ã)7>/̯ pL~7 % UtF t|i[:ݛ)݁Co?`Di?\ej`%EgjL٭-LRPFi,.sz7 삽xnZ5Jp9\Ӕax1nJAЄK]&K-IQnVy8:OM<}=8la;. Y=iM) 4Sœn֗?fKR ˷7#*҄5:1]S,#n梇 Dp*f۴λ,!ivՐѻw躪 Po{UYs/(mOd@в;PFwkkH)0,@ Q%JbvG:=C%R1jRf7uO~ quR Oʘo1G| @X";p;k@z/'%_ԉ> իu@ ̏!>O}:}߲[lKfϥlI%J@њKAyLVZ}N]֡[ᄲJ !`@CL@x~fgsưT{6Mcܯp9L@q.wx8n 5XÞzl*=z1#q 1Zo h1\%,=N5ys ϧY=Cd["||Ң#9P8 yH3*iPD N/w-^aե\X *) {P9[Q6ٚנnjB^$ruK_Р &a'v#H|̀BH%EVC9{ޚoRb[Y(nU79RmKj6Bzİ |$kߝH+dDOS$di?<3D/M)h0Mz|սPe92B3]{+pؐ>j!bH=yoCB05y7Ŷ] / 1Zjrs/]nA-E/K16SњeEGAGӏOrQ;[HmBHM8O̴ZIun]4Pr+T%x޳t5H=|.LEJvܑUj [&_$jp'kn@.y} }2$ٺJd,GjNc@IQBxjy,8,ē&XwО4~_Mb_C]Z RaV?EfTapNd9jc4}v LJĸ\7?Aή֏֑f;m>=ym9Ó$ Q7$͉a$;jD_@?peIuLD~ $c_ׇ`NP:Yx9ث rЪ~WV} 4QkE"{1o{4HƊZTv(aJX)?[H8ƍ+oN;6R?!H%.ŋ{@Vż"_6vUϢW.1 U5iݸ%#- Rl|A>!M"eKa5I`2ΙxEL^lQSH~Hdy U=8q|f"9,-OAsGsHW YR8ύ]#f9A2m0F{܏X0뽎\o~ ⻭:XV1;Ҭ8TTOybɵ7cfĐbx} ܂|{߇BRur 13w ǥ$ʹW-%jS)+J hD+MLKOy`ljhTKuMo°C=MjmʨLtWF4&YOnoHToeB9IFIT2~ Cb3$nIq7+od^&dFGRզSL}tpKyU\i-`i}X2.ϸʕ!0dE< 2Gzb R?ڠtu3rW y0R542H:Zꅿo$HP0'%iu~iHZJaq+oĉ{! \ 84+=ˑ-߮zv %~yݦɥlKDtFx5M6A(X=eɼt-v)|*8־[=#=(8)NjW3f?$Pxu:o FCv\kXU,@ujFqW/TGὮ~>?x1%UJw [ FW9re4ڥ_3>$k{u"QG|m<cߝ'P)7Ui;% E߾h'8t}6eaZG;0<{g/a0 LIMgDj鉰AASIAlL"2}v<ͨݜA%<+3gwp5ޓMR9G;'1%L1 IˢԬ>w׶A1\8PH l/ٳZXЍSqLM5owfڔ ']$JEV\fADZH0@' )ћPJx*궥ze=XE%?+CQQ=ԁDYYe=d:IXSAc Egެ H=$ACR#gC2e*v ߡJA.IZeLAiT>N( K =^~=}yv߳0,s)HHx?V[H=9qP#nwf=-9Hh ZiT (^,b]ׁӲZc4/N,Sy8DO<*u*0nb#Օ?V3T|~Q%PgS勷 ϹP -\Wgh%7ů>WayY>˷_yg>=Yy 3*q~ Vn.`( iDոe_]Zl5{*ۉ)Eb r: єCm?FOq95s-[c^MMRg#p(͝*`AVbTx;y wZ/&fj}pbC֐ +p##r" aᢺWGrhC2̜Ugh=ҾX` )hc֢S,yj1A}YX@%[ }ne{CrVJ@ؔULse91qUtKF-qy$/''@dh &k*elER%vXp̭ofe(~}/> KPߝl@[8&B߂F D(7m-ZgR&uȳэu$V!n~]0ETjP*)DhLLfGYt9zY`!W ʎZV'gЧyʹT*;hy^:sq?٫,ǂ|ucnDfZTG?L9)$/x>՘o#2vÎKJq5JO#HRǿ ISBp՞O"dt}6V$A[nHZ:[s-*BAuBqkONnmi/y0,u V> ~Yd^㴻 oGtiκ"qHb'pbyIO,WA2i(Uěb"IHKƅL1zZND#vNxu_j&((MEl^!iXZa eh<#Mb@3%3"^wC҂ P%(Yd${#"*ٕ:g'ȖYDaQRxW?4KQL7W6*ӳo%yti7b"|l^!bR)wrQ|[:gh4_ B{ W;`XIPljFR"瀕n;fYp\; :gP; TX(͇3cPҌEn.6fc`e%p U|Vj/)Ez9W:R*A_2yQS,U8JoPgyN਽bqhE6/z|H_SÅX4rutJ-q9ʿ]c8G$m]+晌5mH\s@{ߤ q*Cn#[sfO7|q5~d|k:N]?7ӵXpݜ3f|@%ď,3ځT<}̾7֐_>?gXƹ7Loq/EȰb_K1HMVb{p*6d^[#gT''!?I[9IcKX먗Ҥ^^%qoVmMr?rbM cgHkUj"?.h \gQ &5oyOpᛱkq>"#1ܳ{&gDlf5E` NE@N&lӌoA11vDkcݻx{`869A\ˆ@8]lD'd UQZM{ 7; ޗkQ\F&ΒI&=s/"_wZS(ۀ̦A:w%(R&$E} nA %hhʞ޻2lbqyR;g8JQA:|Ƚƞ?ѻC([z}UO ^*j08nɮ/nn56g -7n"7/Ց~ Oyo690sAN6J0og)y3LˎGlq?TRE|"KEjyw/0ؘzrYd / @m?q\\,|(*'7 ϸG'^zٷ] e-1 =E F1.k urN{y<9_*ix)݁ڤ3tLݺ? 6q6~ . )ɖ'ӨjNSi)Y2K(sh-+&͔6k[AL>3zUʅDHB-:[xCٙ6bf@C,0Z*ǍSM ӕQ [:0rq(ġT6DgKWԙ\ZDs*gT;z,ǐ"z0!7a7=9Sd P*_JNɟD/ 08Ҷh^_ ؒ,])Ao%BנqԩS9|t7|0i6W!~ }HT!}dnP4u\tWk$H΄4+!E+;Nu&neō[…`gş{f`.h#{xrOn ftj?fbUwp &쉺=,o5_^}"~y*8;95GS?9Z6vSx6zV F Yw=gx Fg5Wa(0|j\ؕ!0#IO][-W>'+j8+¼dle^k}It8qJDSTuXk|- ηKv2}Ȼ@Dܤ[PuB4qJ'[sMf9oPg <ВR6HԪ;Tɾ ؛$`SRys|1>/ʍQBycI0k{'j ި-;\?A_>E|^<H  ÅwOXNu%\IsTXӋiSa sh|*FHj|hp;쇨WusDsUkW&HLJqLk;8_KZVK[aHějk<0dGzm>hzhG9j?peS'NyC')s̘=Zl )-\O)uc~\(kcbx:8$dt<* 66L¤YJpW^@wqc^2X=61yŧd+0UmXkRb`1ymX4T:`jiC-H GW\uI%/A2q͈,mNd4-gzs_ c%`Xx)TJֆ8#StҽV2s[5;Ϙ,Ntwȯ(nQvFdo5 0QTb+ 6lqn^dT$N p=mg_&2,LO%=a@֤\R T%-APaJ /Oj;YEY*;҅tشORQ1ʝtb˒% 1ռv]m5^&I_ `Q|Wg7/u$7;r~lٽAΠ{ѣf n:6ErTW .>xTHd&qO'8ȹ' KV!HV|ݚ;Y\f  UN3 cnm@'}g?.Ks胢>z4 s+ ύaA5ԵJ-Q5~k~Nn%*2S :w=e~#=ZHy6pֺ /3꽭 WMH6^Nk$F`1#6MIArCEM7`S<7coakQm~ǡ9g(+wS5P2:#V܊ܘbhN9p qz<(2mm6'kVM qΔ ~"1S2 mV`OxX H!hif#-~!d,c "b.䌮v!Ta"zߥ[M c-~P~*|9=N3;xiheªG(=u|i ¨珯Yzylctδԝb1_4sEܲ[@zѾ;CGC% NuOce#\3ݑ.?썄8XHo6ąT\*Xyi3ooFT,ĸ\%Z[{a6k01?flFӵK&<6ckH>x۞z 9mß6DC)%gC;!;b}5U|?o#X",qgdf}T`߇`Hmc Q`lxՠ%y9nF>fj9 B9W3"t{rT%lGbIN̋5.ٍo)/CR3bJ9XG^~<;p_K?=.vg/PKޣyQoR&_g a۽&1QjWiaG9 k0JwٴmML{B<쏙h`-/ -rӛ0I /9Q̔t.}d,Nj#gdbNJm ^윚֚5: 5La+VAQ0-SuցdkԿxͩ: 9.K|7q%^G'Ӌ5\MV*J8H,"j`R?w|Br ɒ궇kJJ78H!5[ZfjF qDL72ɝwk#͝G$`䔵hxmb➍O>6I=. 5? p]2-AIAlLMƒa+Z@h7Z;:Aoн3~Eh]^"KcWљ̘F(&X'{T5SƵ*r󱥍>?Af&z+ajvDCpLDWe~СDeluFG UWQ(3.?j"ZcN49{Ks'gH %^`M;xZ݈t4_{S#Uc5Gz mʰzI+2$13ˌ$F2%BjD/ m=6xUM2rӾ浻>ƈEp D:gV S@F’BKᛝk R^-3s_>pSXJ:4ǎN"uQ0!O mta}Mq1m23bZĻ57,D5픯OyY;LN̷1G~ɭUsJS51ߣg@~JZZƎ}̰:_ ڛ潄A\pP׫xpJk0iZQc0Ugگn&[2 dž! 9,9/ODI>&BE1>ԇqH(X 4E7,Fl :Ry0r?=;gUMebi*b>M*˩(my4!.afZk{˸ӎOwc)n7!8rtEn[ET+^|-)r\k$o'T! Y7Z=U!̓-0 `AoBc Xmy 7m1PJí AfV67SFڒy|m y<Ԯ!`PYPjS'|~6ש/1W@?&}g);rBh#ƈcWyY!v h䧾uV"e6?LW3^ݭhFDu mQh"0o}D5O8~+gn8c sFܽWW*#q-E6DxghDl HJF@NPb5p8烪ߍVuvTnjoۡnoG0@hc#?f? l4. 1ۛ`Y `궪jvG-$mhR4o-!'Y!ğ_$d *B ڮ8m_Ve} 5"o*GӠ  5 gn0Fiۿ1bϣHypz %AeČqG0QJeo.thৡ;v ~Yf-B qhGOm ]}jo;fj{T#UiL=&`/Qگ^,ݲՒo?T6"d)!ez}'Hdsx0EZ)92{\1k ا}\=Vz'VQcȡpwϕ&YM[6uVv/[ƃ]ݚ2Թj&]ae,KPyZͿIpJ`4h jUy MKUſZ#v*doUDbwtr3>PTxOR^71Kqh녗d!$^n2LY eCװu':+r }K('7>]GM?Up\:fhJR&:] 4 "5!S#zz4]'H/F%Ho5 jJzcԦ3[ # ~T-[42ᯑA܅r9ÿ` lg}VkSA)TT?7.3 g r&p}\eerat!~J<>" "8,= -ʄeW2:O8ZV\mH;~1ƗwǓX*ӯ)MFgM=,Dk%' Fr+S] +pw6YI>eiE!Fl 'y8FJji U]}[]`¶sNP3RIjo#ۼ:Fl#Ft,2*F>pW(虦s!~#$K>I:}h00\m@ ANl'hڝ;cD _364\\itV7fHҍHś>ol?,$@t|{.-m`1cԺ1τIi6p@y_8˝ul.ty;ֳWZ@ͯa=>%b- tp+5E ,0,'9'P0U(-z4" f-igz{ȤY#ߴCЩe*ѷ V>ۧ1!bMJ6T(aY(oPSo#,]1 NR0,9;h/#=HaPV;#fJ63[?rCuI!;wF^t4ruI߯% W~DvyO۵Ɋ,'#cEiG&mj{gZ[}„%VV7Q4V#eoH±X{#Rnyh%3W_Tּ!:2[e,rDV+=k[yH(B e?"H\`W/W,i<lXwü 2_r"{,51i N8Ym3 K&#Ñ`*Qx&;Ւsq4@^SJ8M$o!ƸRw  9x=iuy9Lڅئ$tݏ1TdK0еӐzK@2P'G L\$HQ ':ϬK G͟^jNi3yjNV:W29&O6]СAӨl;b뫖&*[13k>\[.*=mr( eU)ebvg;MyJ\dԼ5 Ktن5ؠ,zRr1U 2@r5иMF/`PijBР8/DISe GV^w ܧȒ]VɹVd ^%aT .b[=)4{:EP/ƀhXA:&|N!Y#0>0ymppd+Dl(Ng+Dsv=d…hH:B_VN dŦN͇[ MDKUX 6@L$6E{]S X8tˮ0Q.ڹv1Ѧ X"cJ_зbo4QޤW/k38 xs N+6u+%IuXӵf*bjqm]'=,)pa]7Ue :iv$D\ȅ&dSI2z}a~7=%X7Lm39p0Տu0!n(^lĤ_$sjI:1x)mi j1,J:\p>|ґ[ z85*cx{ꊓ{ yϋ9`x˭~+j "ƲZ%@IZ,a[m~lL0'/!.&d 5qٷy:E ёԱӓp8ШԈ $Mmmb(M"sf~Ŭ~?pM.$~ a"@N!Dž X%_?}rz݃㖹g}[}E>wTkdz>d < է4VM&UmdP}Nch7b%܁/_HsVFɯ? a,Ys:L}V0WAF_kUYY@jF(Y{{9HN,Nxo Htbz0vfz&kGqG\r@6SmkG&/@J~RL '2+鏜)1*WiC|uq iSC\]GI|ݶԻ+ ܕ wKZe`p1 G呎ά2 *091+57(2h@u넨HV>y@,uqAp <#糢9IDeЪCoLFy̅/F trAe'v)ȶ%bc!Z˭2d2cKCtT/{/9},>Z]kfH#0\ {7%]HzٍOإІ. h _I=wɦoec.emOКJ %7 "nXU3 ;PżLrB1ݞ3x~OȊ}lQ0zQϱv 0]b0Di1{ n m$N'$w 7N?¹N|7+qɧ?j M}l@! nEf@3w%-W*ƫIF2:n,9ST{Rf6\jFtc+LOt?;Sݟ,IQ`Z3QJxic7qYw"9J 5LN+p$]5ʶa^'憃l9原Ϡ*aܑ P8(פbQcSSl#V5l1ʨF>c[+ UXv^pcI; }/ѫ3XqPW9n 4q_'b^7l %5lkN_Sz*vf4~rz,Ǣrs//ߏzPdsxΪ,N?\i8qQ"?%rg]c/x.p\vN8V$`G[} ΒUc+opk!}Y+3lTJ( Aֻ*BG1*SI-Uoe1$w! MQv] >hVՆMa8Rσ'i31r?.[Wmysb5\rz xa9Q01=o_4ků #q3wfLئ5M4W&a&BL9U {G ưwE,3Гϸ`V+ZM.5E/ QS4V\>᭔)3<U:1+=QV0̌Px(W~QxN[̉&6-a *tSh>a;>p$x-@cqTL4^cгe+4iQ2ʟ=j֯ՉEeW#܏bTtC~:|ܼT{j9XJBۭ wѝo3 \jddk|<2wN:͸ q!Vv[)IM@W'Wd{yDzcyHw'FL(łh7vdR(cFfB hZ8]GP;|q,O"j]rYҤ@j|JnkRƾg8-@CEIE>@q9?Gv $J+AUv؟R%?"-p,ܦ6Ռ޽G:>Moto67<,j=IđoA@ l Ex_6:q:h:Ft.%_Җ k@o|`>;»\nHlSd/ͪ΢KT9D8szȷo>Kmb^Q2-.`~KٽrVcb1&"?C@P3D^Wp{T؊O=ص^Z:ⱞLR^ .r &PɅQ(؎)?t**[ɢ$-?< ;/]~@HOGDPz*^sC82}nd#ЙzX_ hOq4)]E13[6bαݣLg$*2z5D7? eUU%*6bkz1`8mv6ߞQ,(^OC>DZ~~t8M?$qYrò h|Z8ծtFi |s&в@4͋$)բoO2϶\*x-wpŭU[n-n-fQB)r:{{>C< ,411W OBvaܪ؃w\z[ҧvI$#FE.'p#nFIpPһY@VgyU+L_;3$Ɨ#ej|%%k~,9!Xߏb4΃d?E>6޷op/藼} 9bmkJ O!<ls`'O*&} ؚ;8DRJ5-l 7! {% RYbZyJ 4w9KI.U5*xvRQ=ƸZɧ%D^hoFkK ~˔-| ʒ8<%u`gֿ bӝ:e)!A+% GbȎi$Fy.8-ąЋJ쐰m]PAnLLtcٛc+鞛x:M8-x-#${ # uȂ&8[ny=:=VćUV:mW0xjx1p$/lkK{4$dlL ukv]AE4L^[|oVZ(wc d~FN?rdURxU2e"28B% T+~ tNٮ* @޷̡I8aN6f+Ҳ 4&At&XhAAF>ƒKO3H'ICxQ%{uBҵA<h|ƵH^@NL }`/6|o H,(VT]<5 1KpHʙeRoChb276ؓ/W^=gS]?ΣDo_hWɤ9 Efw$ ڼDko ~Weqj?DN4z,aY7W+YU=3 !ٳ0>(&3ShQd5QI7p*0@0`H¡5dO9}hk,v.7z&jAb۴UmكCyó[hqȮij#G&<}Qaȃ).z$ C5?*˕-8ĔZǦG-f 휄vхt6tچGޚ:u+j:J= 3О 4]ͻjnN-_]$TmoaC軣?U $`".k3L+2Bm fn|l6 n=4H|9%R+ppo#+Wws?^ier?fsmjGD&ouES8Pyqnt(l{+C]+'?䣿iU]k{&X^1VZZ9ג {LWh{qu .fwhR_p,e6Awl/]^aH '?z2 w  bMXǏȶ/W!O|Dh_^pHZna9&괤Bh&ǹ?2jŃi2[10Dy#|^2W!7(23p16%qcގj#K[l/~f:c')cs Fݚ:D}'rڑ!5ЋZtrˣ"ՠ ~d (Z <r0Rn rs&)&k(t1YAᤥD?m\jM90ɚ}MX<-}"ǜm>bx*F͛i$30 FgoF?s}=Ej!^6ln2d{)ĹL?8AIAhLKhՒN礯 ֬l^} VCÍF*jՔkLdϯˊ<"2)``mԲʽ_;jϑ5ҹ\;wf\!2J$>X)E 슆>լcDV#gUo.@<(`L.º@ N!8l;{vAcy]Ӏ7㞮yVj*HO*&Zd*D10]›HywDTpcv?^KSQ\G!fwsY0L;D]*Sp asp~T*X9f܍?*kQNk-* e:\bp1;Cbrtσ4cxbeCҼioj:[[N2a]H+TzfVHI4̟"!Vvwg7 4K| 8& 0s(CĨYx|K8tfGgp|Yr||E4{'=߬PGs"828BHnoF>_N'Pb=s-ҡ-ܓȬ)cMَ[sXrx; Q;V'Paudn@HPE\ uwf@:EG*mR/jşpPv% xZk;fP't Jk`'s쥄cE)paT q[rBa蠨*@'ore{VфJ3~~r'N&H03K%AP$ա.1V:R4L4r6N3'zJ7!Z;"#%:YdTNHֈi˘WuVMLd[(֒T7۰`[zU!ڒz@>R!Of̟jI|;ɓ1W492}h"iuٽEd'q""J(I)N3O + 1G]=?UV@vHnY4_Tj8+I씲SHzFʔD-0pZ5]1nC REKZk*WhHqoF(w.Gug8skNi^"m'c@ ~ T abayዳ>7ϡ߾@ﺍ8TLJ5_mz b@K58*;6 XD\60L28 J\צ~-VpP{aL;n5.6lD["ڢVw3Z: }u$AJVShMb39z> ɋH:V*rPm=آwŠ;) F|{ޤ ⡏*:Zsij(hI^Uڔܱ!%sM#*X}EI>(M \QXϢD㏺M:CY9q_HWEvxW,I'MM6{>P8Jj~cF"I3=',xBc:SV%3Z kWv=s&HX:| VESXܸqt.NeX"q}-%f+^1Uct.,XQH_5d~o}}nWy4g7*/sM4ή)VCsk-d'b\[9ߵ{v~%yjn~pyuy7vFt-܆C|bBWHAK^h'9 L] M=*TߟbRhK7Q>$ej^SBrF;SU5c~bP$rc|ֈ,^lsK$ͦEzp*PqW'f :_j Ҍ#BʝְK%$3\ `3no F X^#=BcG:LD =XďؗȰߟ 潠B&h{LW_=V E`Ezߔ+QBS-HDQxdv-0 Epԝcy# '[B<1O%MuTlJ.=ڻ/.+Y>aP Uh!FP@q꼛 wɅ(Ө|cV91ϟehy2gܢx~)><:x;0|ɼ!͹ҴPĩJ4_4ro< jJ7H] `ڲu03L u@&ڄ`}& zU2g fbֹi'~O3c *WXˎԃ$(<)#!Z(y|~nÐUuj/f6g2_ha@k jMf2t/'2"&B '?uQȀk:2EsjY1B PjezTcJ; g \/ ;m (%nߙ7-C7a6|B72fw`R.!j| q-aY&:k)zXD=i k#kupuػ8^RK6IɬAfueqS8E( w *2QW䛹p}8X'%"} FWVNޗ8#WNx L\dmTZd.VPRnGaQ\˾כfGe6CxVe' ' |%6ud(~L3_DK._ލc=|kd418gf+<g6sŎk(iklAô14,et~R残PU\e)AI Re0$]\̻PNwtV]S@٠$G`DxssUͿj_]qt#`#bs%KuT3˺s֐#ΜrE:0WAY9M2aw|.﭅]dkHi.2+SE'~K7I򇨡!rpTm9<,RL`sOgyb{bыj󨩸o(#/}I-K3v/YI&f;?;FY \C:|md`8CLnͻ#1-tU ^_A@MYe2ݔk泧CdYIhIɩz8 K#%:V84IQ,*^|gotPGCzZNX`}6g]JU"ƽwFQ:PSj#iAZJyPh?  1a F?S9^e[߶Y< *k#۱5'͖'iMIbOH7){麴H. prl&Ӗݨ"ݔӊ}#ws4ӳ&VxI76d傟Pwx_m Gʬ&ڙn/Ti|UY:' Q=z2X[$7Hf5RK6( "0~N+90q)*+˙=5 3@n$syb̚O^Trxr>d袜.>N6 DDYƑ*U٢^QLO('&~V3fm=ng."-8z>N?H`uJBQÞ9dtkv+H9hؤٷ{Va8m6*<O4brv@O/~iZz+I,Dŝo 7yNQ"QS]WtdsLJatc(wX{Wn _<5~⪏鮀bJIg[,!kuwXzn0?X@Ue[fD{w[oURrVz`c Ic##PR=迦yup3`KQ*Q'+o8jm!K_HT_Dqt e)m r.7'< JEcaheHOj V { \51LJ:{qN@UUG6 ABV :ޑ@*#}#1/]2l(7Kk,1bWFuUj7 c2p*WZ^d䅚Aug0i78{MU w?NAR:B< weҽ*`Kg~X݇90' wxͼYt1VP\̀A0n:7<@lHHh~9 ɓZ%)'\VF̹in -|&*;(jQ*%R' =* d  UʡjQ.tj&c?%wHV4RCcNt( zEIf%xq 00v-w$r_*y}:MC|P*M7}X£fem4Wv|< ݿ,H@!x㳇ksUgfKJjJW} B_z غQb5/0qvkYCsq&7"E}XEɌ juP 8ޚ(!"m17avuiXɗRU<f%WRSÊ@ݼC)#X{枟t;}ozix$/}[GhN;\V[h Z1!m: /vKY6h[?q1R0fJMkezS|G b1,@,CO@ε Boku帝3p2Q5#c3S?3 *8j0su%]~$Ƀگ1AAz( ๐ƒ[@ a_\|z50+O˱CA"4#!̉)s (|BIN#hם߬xY~2baJhEZ dzW:N^L_׵9c_@6+/ċgDO}Ά؋t^*,0[q${5?IH`}\jVeIA*11#ȷ*F"5M%:{{Z@t4_"* ;w2}s5fT8og3AvW7{[qaT-A|Uڃ C߃b1}T frSm;y  Y'Ot`+h9[{\-RYָlT^]tÂrU7ZqW!,o,R)1Jr1%t,RR+PFg:_>_orĽvU.kT.z4CO(r{嚍o3W%'q&םK7}KjdNH X$ 2ևۀ5~f5\{lPp\{ sʺ.G_>Fr'HQgԌY( 'E׈NGM[4 b9%W^q}($4RXLiGi)Q*1*vu}/;^.?qDAe;.C`9\sB+o~`F4raj; c+H$YBNjV11nJ<%@MCI&-'o6"Hic" J,kON` a IfO+wť4bl E`Q]tʛ/^u+b3 opMd vW8GS* 1U&ԯj$vO0|]LHi钑MGˠq4'2Nu>".Hi(¨[y0SKnj/K CB u]7ɟt`9vopeYbW!;Aߘ/lY.ifŢYZ!K:ʔr Vgg3{zȞ,ù%[/B$r,4'{ lr_}q7c<JHio-7,[(gvjPaPX gS" nF\#>@3D0T)߁` /4nXD>k_vpoU~gRkzЮN_۩V1SB Z@«DynG۰l.Dyntdhw*Rb>R^T8Cc*]?Fg򆍸f&,F*auTv#Y:,YJٟ)\o5_c~JLk#L7"P'%6#,b" ?ե.)A7.$%nܙ%vKy@R!%ZC~Ph n4m9PQ-f UOe0/c'U1⯩8AF?Ojꀟ[ !@0*L+w'AN:+G[PoIT٥ƄG_T:ɩ$KBY\6!(sLv=)Uuaw"+m@ABPydx) IBN9wxEt!@ 4&zlp5ҫ_v~쪿0a[. .j 2y3Qb4{7(liX-RV󧍫K`?9Yuk #w#aޜDT :|1V4y9dXFsuea; %TՋ.XL]oʋ %25׵b{<=a*aGLl'DW?#baR6|znOmeD֌{gbf, RPhQD[i_i?욋Jxo"ˆ˜Q aֻ@Vf-I M\?skYkXz'J+hqbj 5@KSbtdS~Թ*k+^{g"& )"E3ZIm.Ono-^eCZA=E4Lf%hڡ^,;Y} ,1-=& 1L5%|BV ,ܙuCai^< ,jjƹS)8ZF z|z`^Ww\Gt Ix6t<0:Däx Jќ&򹎃!M(^r<b$wG UN9"[LzGnժ ~'e5X}d#0%{n?ӈ5Fk4N<~ХImt!D]*)&{?f/n!tWݶfy3p:a6hKhaTkrt \rlPw 6X]&2 с,_Bask56L$0Tq_2IK]O5 7& {udWOz\$2ED6_Y&N<[K n.T\Ui]}B lϵ\<*E&D](ғ zƦmKJ3'Rs >:PҢF]MT-51jIwT]l;C/dtIx̍;q"MC*9~(F m^qisP%CRloW]y,"[i fnDEF`yȂЭ5V!x\AXטq `Xܑ#[0kn88?1μ[1f'SiK79Os?`3 z`q"  #_8dҳ^ a##")Gw}itφ8#MM>ұb?u %%M7!3E漻B7}p-y"MPxޓ>(..xm) fXEoTb⥧TB'%PJ/t:h;(ts#B5^8xT4O’j SHoΗm Yu ܮ/E٦} ~:"TwE<Z`\tMflo$ e<dB>4R1{xrZiӾN¼\+vl ֙qloP<Ǒ"G,=4/`h7H=T+G|EdYľwH*~GoZ8}iTK-/_Ÿ D[6t$Ȝ1~a] G'5{>fPP) bZs<ٽ'rd'gC['Y[)jOh!*f~iLl,MU cr &j\(bUPizqZJ^ZiއHPDPsUXgAW6~2U$ZN5[$4 |r 0ДlE'#V2$qRZ~ >g|\3n^jM8sF;^5A9@yFlfD<,p gw'V鷯1K,Yi<'/s9x{CYΫ9߿Hp^:WmG4*Xcj:؊AҲe "zBZhRD =4!йzMgCϡ]]1B f %V/*@bacSRod1l?4䃝1O8g(\$a@pTc#YrRߘpOPTMTGR?\Vń2\q# "h6.1pP\o qxH$ZnH|lj7Sp1O`N=ecȳosLױ(<;D 5T7 I,xK rKxk]AMʪux-g7}EֿʂUs2{{u7jo+*ɶf3,j/WG4[<"D~;@!!oyoC1`K n 1M#bW᳝l*9 Y5PFOcG0R v"D[%ΨzACIAhL ?E1Zf»„;(k;-|ٹ`1)I,0R;7 !1hf$ WUe;M)O8LDed83c"Lf/ef6`&H2ܜw>H^-$6#X?P"#c=ϼt]r,Sl)mzL" dL{WJhLnT>|mBb.7NS[}F#Jm|p%{y6MvLFDA+'L3!@6ѻHl b%?apMGBA}@ Y;4Wu?x!w+34߀'71Xi}5"Hh.٤V{O<2Ss*Ӫ _GXɇ-ڌ2Fؘ5`u4"+FE,QRG'ND{ׯMD=$"EW ƱNؾv,eϤxsסGeg&ʩ/ q DO{Ғ,rv;xW4OWhYn \]#1)&ި洸@L%4C\ jTSj(i4;ewXBfg}}fU._nt<.:?^ zv:"mFV ?|j/?aڇkK\USf?36PMull82{Tr+U]o_c ' vhO{&RnOfqGx nru %&{LoK$Id;(^60CYe5v-#9ܻC m=V7#95EA'I5>A{7Dʨ{~<\N7#{'O=up:8gQQm`u̗Qys3{cH -*g ?(Ī-va1 Z)wðZ8"?P_V>DŽo],6S8P$>\gXv汕vEaw\J {K蔖C{M(t V ՁsN}|ZDewKXak{WnٲzJH fM6'z%8Ӌӏ\Ri*X (U:->R/7E Zll2lH}j'(oTysFD.KZa郮:]EoI?g`/gJd74!Ld+&kIuUl`lB70mݪ 6LěN7 q28tJ{jDmm,^=m@`Okp SYFfi=Z8/'dZAS.L{8f\,c!'%J1-B%=6c9%Umf$f3$D5h['<ա7).m&`b%y_z\m-Xhԏq1|V<NаOVjQdΉm:r>/VJXWsG0U3Mp| U w*=hp'F&Ntfօ6>嶎kȺϾo5ひ}G׏-(yc|ҮZB#W^uQ6Gmu([[;j.3a}=i^g,%oJ7˨x~`" N [\1r*;XA)7*ZxbZ-TGsjorBGޛ$Vj8Mvk58m {jqfV ԯb `< b/K<.n?h2^s;&.H>ƺHm)pJ5IK@7hb? LJ][`q=u='L0㿷Eo5͇v^\F~hڂ#Gh(a18";e{\.O@*,~%_h[5h^ɢ5-PUf !؎^Z|pHGs ިgH MYuXL{6٭Zb㈥ /clo)Q0)K ƚ8sɂqjzce_E@U?]}xb*iEt\vi)Ⱦ%y_vKLJ0V+Q3G.I>̮l jrLKu| ˇmZ-ï{/L*PBEf{E>{ kt 3b.9jovA} r9dtfkM;G^LKf 4?yR#3lo}R3b ޑo"_n*X hiGM?BȟOƢKN~6۰KT@t x6Wƹ ׹Rm@2 ЖWf;;`Jt}rw.\#~,}p/$1M{Hñs@@S+sM.qK2PY` +Uߝؔ?23GA >wv֍\2yٌ: 8P @w@Ӱ!0D*2ګC\ytj8d~Chjqp SnR)kT;KT:5`=GOA$$ TF9DaLJ݊({BgTso+Bf"S@*jCC,XuDewB{,kci%nC&></GT%CaڼN?1goK_#CIcOxXMPqyDހ pZ2MJ6d=UHh|Kd#,6^'>r sCG= ǽukWUHCpc +* Mg^(&UĻtSM?^P^ C0Y D ?<'NuƎT8qrJ/TGysJꎁ\("ɐĞ {|ϷhzbLPZ]CnNVjr|,&;uk2sj,lZ-w Rɬ  1!-;/au7B MtGos϶m88J|-sRZR~EUpjɉ';vq0 l:5oI&'>)`I ~VTYfBz2u74Jm3)w]9'B*c;zR/1:yV#dJvigVzi~Qko,֞bf_}nٝ\8,HݖK 9N?8Qk@:UJZOw̒OWۋ6X$M4==ug0ZgL)] D"?kcMS)v[`Z8kͅ @A *^lpv ɛ,mvطbƚ)c JGJƋ(1xTu km*5yu<4C~ DsIn0%m"phREjWÊ/F(k`~KՄ=UY}K+sbfDG&ZN5*"H-/< V78Nx䕄AaE,j]]t<R#]]ljܕIiܑ`끌$1ra95a)y|9{=KƼ{voViڹN7B>|ڣ =EyRȁ9oov7##kSy('D~.jnItc ɑG+ޡ\&{`ا <@btpO< nz)|f@9k̲RMo>8ѓmpR9X)HQ>̮ʹD g8W^,-ԭoe*q׿Ʈ\Z[{|~ڇ SeWUwY&ld_7V˳t\l5WAJ:'8EtK3^"DD m0t+$)'*N;)b jMv-i%g@!XF>b adb]#:5RVsv(gڅS  |\ssfZ(#?%->UN=ڴd@^#Ill֣jŦ@E=J)Gx*:u&lPpMN̡Κgr^?S_{^&&,@Ƹ o+Ba0 kSȖ(CytpNq9p3%{<]-cRAKB[ _y1) ĉ!I9ޮԫnPQZ%Y jkhC:[)RZXbRo5KHևwgsΆsxm+zjjOjUNb(Tl;څPMZȶœDLL#HUEkOJ(dDƹ!`?28v H4w+z򦼃5- |Ũ͕mggƟҸr5$/6@(^y/ vR\#U@}5Rxjbݨ̺̀xr TݩRr/,`ASUMh5P&UTxrT2>{jx_%=32~0ֆfԜQ v g훊'M-'yqۧ((^ҞYg`!~rrABYsvBQb?8Z0ƏH0Q'8jE( t9@j]VXipqS ڸ i^,<`-TGK#f3T0'{R[fzǺ\"q׫>#vW}?H1zMfsGϾT#5,q9|Hge"m_3bx9k"#qѻo 11)B~R17d5;YyVNRߥA\Ͻy@'@IB$lAG5Ӄo'{1^`,.IxIc-O>Տ8li} XM3֢I܍?+=܆<ӛ:[\^O!߯D05%DNP-Czw]y-L ;rK'.媴nOC=^ SQ_J J^CJHFy_ګ Rh[ T@%ݶ[yAHײ2`/O,CՄl*HCBHz$c #ܙH_T p3ҫ<~+$\y9U:fP3t*+Y`@Iϣ@kb;?lP^_L&Tܯ\\epFX{լlX bxb_TrFd/!VH PƺB{4L&dC78gȯ}^VӾj*.C~Mo{F,LnGa1ImgŏkUmoy(Dq%Rt>gɲCҸ)g|!;b/0qUp0#7V=p0 ʧ|%+LI-m/R&hDɇ;-mB0lcvýjy4i3.~?tfT |n}!ėl2Y"uUd+w YkO6Rn<ӿmBDOz Y0bxAr@~RaxlXұwc<'^a\x<oyYY91bȟ,@dtf&e>p:E DvG:ԱrN!r=Mɏk_Bm79 V?zkm0,}7^|ٖ%gMp0<:j'oGH\[S04NFvc=:}mꝯq1i sC;BFLT5 7GZǚTr}I:Ã:_E  ('>.XfZ5i͚ɊZ\uakoXبS* K Rj<]D:HEϼ#ud۫FU6A"cbp+h,1v a~H>KcKً,$+JrAgR2y@g;:t]`׋.y Y9/{zaAKkgD*rfDZN7/!;=/Y7'5 1Axvǣ̟s\Y2gDtd}<5kz!_|\eP\fP 9j0@|3.vFx~c?|pci{CzX}N|i׍ $?!גdS< gqaE{] ,t6T7$22!gw4Z4"k˕k!mɀ6fS`ׄ]}d\QoWAQ^=0,Ng´ 8p Lg(SVR&x#~A!ƶAJJwh7Pdh[v[)jj ޜgG&?YӡVō$\<=wEPstgAIG{FGk_zyؠuN^vCZteJs^Q66nQ3ϕn :`6FTHw:cύwti C37¿u[60sfbaŬ8.p @+9n1+j㡒:~0&ԂOoVVJ8~E2jU]ڀ4X=TTlXtKD 'mt+"ɔ<!@ɱDcȱTOŧ^ =m`6Lw+SmDXY;=?sv<~Wv*[?Hm}̜H wn+~99jfCxAr 5$Ԟz>X5%|.Gƨu}T >?[v^t$y,7E#qW\j©)T 4߈U7I(ߌ8'g ,G󺡳b> eisːТQhT!']}߅bxZ :V_,Dd%o O(̍ Ktw_BaRlQ [Գ6Ԟ^cfY܃|ֈ^'LIm!"Hgx&:E=,y~uX,'Ǵ;dS&?=ͮcq0 oMb8 9FDf 2cjF6ZLleZ'"wH $$i"*so&5-0W\ڋ^璌?d,̈d1B94qQ< ּ;New79Z*$7>ueD5VMۚx]l-&SSF4m,Svhp=Zs!&n1;}- 2]R4(m!B drWBi4j"ΕiMsbOgƾxן M9nVRi{E-QsS0̽ǸcǎUMvr hX4o ThL0@B?3+`<~:PcqDPE>˛pd[| 4S1 b_Aϗ&hBXmқ&*)9I9Bg2|[uEiCչu DSXc R+uO:@Oi{DyD~by=O 6|dԨL]ggpܾ&!\Qi<`OXb.1 zXdK-QEkԹ -/9DZqc'I@=H1&7@:|,?4)]C,͖k7YɆQ:[x#z“P!Λ$:ϑk=&fGNj[W~_fE18( ?;̢7&l>=ܮ}cqb$\,w^04#T|_HaKQr\PoVzE>.w -챺@l#Wr'Ke%+ G3o^ T3?(ݯMn$@ Jlϳѽo ^T9.L] Wi?5ݖrV2"JϞ҆AN*~;g"W4㍘mgTȣb|0r&ƮVV|nyx&'DG)Q"0uԠqP%A&Bc-xx!C x\/;2ӬmfXEPYힻBҚX^lץ`Kk8RݒS_$%f,wJ㼜Ìwdۍ|sߡPߚāܝ.w^ɔn rF!`\0"sġ&_`T<`64N2e{TuGr@۳62M3I\K 79c2`}t[i%n*g`% v%4 ,\EƋ.+&ƾÎKJz<ŠeO2 ^wԜכu?!0fJ>ؿipjQ3;Yc7 _cR?   1&?é)4!).2\YƌIfoڛu~kTTNcwQAKU/6 :8- uQ4m`wCmd(\4vl'MNpG :7ʔ>ʴՋmg٘82b S.?&Uk@κ<usc;_Ϛ46A/ rpkja&  z-un(b]ĥQ\sh5#IUpuГ{vqtt@MEBC*XȂa #yD7)qZ!`$v/ۋ*\k++";b]B!zqѲ@_a@̏ͨ&kS'B}0b&99YܦsFSK74E },~s/q }E?Gp"j~R&K{|d{ťZgn1w6Kqzi跕>L _Ή ٠PH .p]Gm0n:Y˰CxTicd!&hx$]|iAoLCF?b )+-)BQՎMZ琔"SO2r {P\dXSXpk! ZnL.M1]EV11 @:'n:-l:8 $wafjֵWy*Qu֖FC7W=RF"O4CaL.6;+oF2jZ(+A,gdLf-٤^EB\{z5>[ę4=E9nغ#"Y05P|);ݡ7wS&M֟&Z&&X0ߊB<=MdѡK l=̴aXY2SЅv^!/3>.[Ֆ7M䋏bw;ށN[zuP C}iHC:5om$g JB~dk6vxd͕9Jn05g9c˾_rUCN.]&A/Ao͵r`loUMgxq;O3*~4r3]z1Y܌^_bGw}y /$+$ AvB>>V 2b((]e5ч8Uѡh"|Ub, GtNKTjVA+a$)y^<*\4^oFWg4N y A7н0IwZG>*Mq{:LÅs)4t*XEY_l85ޝF}E2Q ?sh\x7;Rҋ$rM5b.w,f/t3 Y<vy(7j'yXT% . BBt{q"_$Jxׯ慇<hd2+ܥ3'IR|]sVcUqEc2- @9Vy&vݝ:;HEI\9 )iQD0N$Gr4_#7H'ysU5A ~37#]mGvZ3J|/$STr@|I#HO{r!ʫ bu\DŽ61QbRL Y4'X ڢqi5Fh Q1\YziIgYsFBþ\S jWЖ!@t8s<󃫃%9TI3Fi7ӠAVy« tXh2yژ6.CZR69 Ĥ%Lp{[Lur!+/2bL3Q*xF'X { *9%{ߋ)`]Rw[zq 8afud< I=Ka>FiSCꘞ#\_,0Tc*fQL:JxeZ!ob!m/?ٙԯa~[ x$D)tkmIn%.=()e`.g鮛BTxovwU".X,_^HGV%OxևKw~;}H y$ο]ΥQ6z {P.jDc-e~C?G/i~ @^٫~2C}q72v{fj(i`hyyz qބg3ubA!x@VUf@0X,v'rPAE4LCO&%3 BMO.3Ԧ9`䮔Չ].>n~vFoxͺN6Ύ),Q϶`wX\[ekļ\1tzMo<?D:\>[mJ7^~p]~]w %>w+h"@p_ͪ& \jn4x%.ly_C <-/8{b *n#SRV/Io :MIXb5 fnmP$ SO( vA g9]@kX!rhĊK$z\7+16X/"2&8ÝGA6Q*Q5ƅyR0Y ӔmY%AKh=FxZ Ol`~c@jOzRMRmB)`wˁ`)tGdC9% qdw+xحcV%cUEfXR$Ar?PԶxrT{BtMܺNG̗BgN-3(wsr[c Wm֊1|ٛĶ4UjQ[`!]zӉ eju@Rt6Po)ܮEWFH>}aϖR_dn Nx,R񠅄ֶXd>nfR_@Fu (6PÑE%H Բt`[ept&Wx4Wxf1 Bhс [pF*NaV.U%)Eg^XRl/LÚ RK|e-Î$_rUVJ6@!ff#݄'GO'xjM7?iOja$[UH: o* iљ7rF{C:$!ZA%}i*Lfµ'K҄,*M?s Kٖ 6ˁ Gb(MѲR ;=3/ v \Tp~6Ma><(sJub;!Uq7`0 >o*fG9HcbFT}+`mu'{Z*$iȿ}u]dR Jtfc L[V!/WfF o$+6r`Msub)5%C,*!AIAhL ?Lו""2YٻqdώIXFt': ~GQ&:8h*X?$e}O}} Dy<} Cװ`?ሼph;IYAP7`# [۝ii%.Yr #s%^?gEI( &9hQ f䐋vF 8( !ͺ1'mn0Tqr%3BgP-mEuR)!6d(ǫ(3]6GUKnq8#>ܣ =?ݵD]]} %z#n^tF]yQ.Zq TbI>M* mdz~u),їGxIfEZ}㽡?1#'vysQ2l $.tѪ]Ϝa q4u*U=*ڇ]=K"I@,!o\i\S"K WnQamn?oVZ:^׶9eQde#Ea9 O+8] L>,' ܉ms3vJ 3Bp]ך/^jv~DYl]32Rb=-{ȜGC/%.XrfE咶 \rxP0):[Th"sh jX MM-;#n@w&,0ga7u䧹uJYe:PM!Og,76=@ݓ'lnR 5ͭl{v]N- @^$EC}u,Wvv'}0!D oK8LI ԍzXi4;zi(g˺/ *@3)Ly1 1.wB8$HPx{TGbF1Z*h\RJ7Mu;j^k]U,ʆ! I,`C'8۴4+LiԑXaL f Fڶly9#(`FңSQ]{ol7FNaߜjϪ4Ye>𚐮?%T;#2 64 e ym)pU/_Z/r :O݃c"(NtvǔGh5e}!LR|cAd /x*:pӋ!vu& 305ݛuK IUL$xc¦LN/kim`o)+MS_&fې@.+pzޱRC=ЈlF{\`c 滢M"r$x|E[O7, >:P Ei5o~+ӫILV xf1Qd o V Z[ bR߸Q_IbP%5ژlL|@*j_iE-Q{;%չ`ȓaHZʹp`U,Tϥ4E-:03{7➾A {aBG-sq򧿫%|r|`X0d@ZMՄ<.υ0$V˫>XKyd*p vLuGtREStQV6DpΝBP >Z\vb!EOH-yVĒts[C>$wf)zXW**ѧ .Cw GE1ݮ'If/qJSyeo >ři|qVAu۾Mv/-qa<>YxLW7/l|Dᰉ6WpTGgKXʴCo &HtjӢjEә˥ˀiGM-Ĥ%|+r/`$9a9L8IaafBAmi*f[zV\bqoikxqb%bVA :׺2wȽjz>HQC/h|&ho96 zq;^56@aptA>U͘X뤮6ŊUXGJCĦYŽ:E.aBavI *JP7c^/Y_&!0)~U%=X %G#eGxs9q&vWT7KfMis QNݑ2yU%pr zB ;o=;CB[:J q<ʄHzLH ]vK3_Q8Pg&g$򴖤 M_,&0\۬25|jgLTXo,3S䍶Va=tnnmb~i8C'}-n8<^?[Sz(A*(n+1ȨJ;49TU`d2Y\Vf'= W& 5 qa85G!"}f#^Y5AuBPz@~](%tqWM4|.% 86Yu[Q3v՞iCJOC .xQ` [MfI) X&Ll[RT>ppM29g ,=z ;c04n$1QS)I ]]~rlY/{ػmB_N}HG*=Mƙ>yyhbP@ϴ斁֝]^2#VB7?tl~sa2 }azhZgXd *F"69+Pz-~+_Ax""sQEվ'Y}nQ_ >N=`stC8 m(0~3D;`W$"Ɔ, ;)Df h0{GJ` { ko_oA"O,#Y0)7녕 1+MJ e;RSڕkN1[yC4Q.0}Nl̠/d~ZU"Q`T )!WLuO=09.(ڦ+ACxϣ%ChϪpFWCR?pMfY>|@n,e p #K;Q"|Jח] ZR- V[i }F\OxHS,T4Ľpa]ʈF~B)7r4Z{v"f)D+QrA E,IE:0"en'x}..t\,5ڠU]-uKًIdf;Ӏ44gSXeur(VHH/ubϫܢ:uJ_ZָB "#Vggh01U{0oDte[?kbx{ e{) 0_뭸pi&$4:%tP\_>݌QH .wTԔ9}E DW` r&X̤{40B F suWԝ+]3YEr1r~?_])Ƽ@+e/dj$(&8Nw6T6`f'U/wEk7%D6ԉdmlX8@,TSh[:Qae0+em{W %XtV{v cћ]n,Ԫ p$q<%@dO:=!s/\cX B[`dA֔m#t6)L隬{!L.zFuvMrn{F![}pz6͆äz"/㬑V 0³M7]  *tMtac[+foۧ}FSh{ H}CUk4Z4Gi(H-JO &_6,trsl<)+v;w$kԩzjH1E W.H)/AϴUS`mC] Y/.i{# !©sVm٦P`?X6}Qfe @fUπX\F lY8߂xt|ZЙrD|쒏?4u1Űچ凨 `%ա@0PaB?C 2Ohy͌j~wGfk4$"Ԗ-+kzu,jM;EE f[+nJoXdVu PhF]?ik,kB݆T5R]YmB seXϭ-k<^d*:i+ȹ+ {SiaP!e|`≮"4֓- e#9S(+È,wV. €j2ѐBe; QJH{QءT.n6xy,RJJxz#`fl[蔟RWj>&0G ` o@s¸u2oXgg\[qYj.K]G{ȶFj\nѐT^hěo{$\>b6@Qm {09AZ" F-U[  A7ʏT!n*y?Y i67M$s@V2z0x5A1IAlL &kt) 7'${eo,7{'dHйEZiQܒOf&=4 گIخ}e(&+cX3V^M>g:0F(A1=>!_-](+ ={驲u9Cx`lrdK< k^aWoNlRCQe)Cs<9պbCY.T” <_}ldNRB0ӮBmZog:*ǖCmdZ,0\6 uwrCȨ%|i~͚BE`9GYq@ V[H ڝC!\]iƪ;c<:j J,x듼I07>*+5J0('I" ҩ!÷yg4:\$3fϦ`?g[ذ q6df\)s(\Nh)a &ݯNƻ *̃PΗvGBB1`(J#v9k5Ƨ\VcxscU y+&-ɶp%pb`k1zc̖|'$`g GewOeط" }\63ϋXRao`:NϷA%Kk,E"ҿ"K0ITt.'o`aY }kWDn -uͮ4_h 5iSf\!"<2_W6NݞonQb{?BD}PZ<=n*<ЌM$B͚55~F~o!_]?Ol4 M;[ǓP"̯m*]GkC˃F =3F|Bl#2qh}\_,v,DD|@/<."ZTB){@C/>:"_:yJ4?jc8M=Sj\ɰ|BgT~*Kta9{tqJv4:0HRgE|H9Mi]Q!:x"uAHAE?܍(:}b0T5uOɂS(sr#&W{xA1 %Q_[qM\YX6mQ.DF0aL︭Tg)ޮL؃P"Txnr]b .r ؊Grź؝x4V W-:׌4KZމVWE#KqpH< ,ìlpfKoT_K.*i|~HN-tY{߀j=0uG#t߇k&*>ⷺќ躳z`hP @1hR,Λ[.˃ 6eYE(xD*>Mߠ?8?6XWX@Cpi `F l ޲3Uo5~ _#($Zhh`2ge4`ac1SbvzF٬f$F9uFO y-O803rg7{e]%*y@{$O,% KU|`~vҝ9aj9BN^#+,CoqOLH*NggX8C?zPTq Qsa_CݗS.S$ӺhQآ9qAex= t,[K-Bs~{)g/{ ̮Odq8G3oBveyjj^6Y-SKu PFb6$e]_1vJҁfmОrQ-e7Rιzbzj9G?m>%8]u8֥ \nRfRz0T$RLts]e? 8?w8jM"s "!< TG|;)(:=!%z|,_6glCEyN2@s=, yqE'Kw2 &,kS egH>#&XѺ&lɝL>C5o`}*zT?&.}]cb7槮)bZ~b3LqL_ɇɇv=={m`v#!@%< #u|589߱iқp/8 $)sP#W9w١ekQƁs,`]恢WtcL㞿/<LR֣e\?ajvx9_ O 'ו=&JUſusL`Cʯ |<SFcC!Ǖq;rkܘ=gm\#*K{{>fUUO?ՃqYs_y0Yna!Js몧6 [ цkRĴ,0fǪ+d$L~;Ŧq>$B_a? n1%5 =0W:oB}`y^u$Z=@:TN̦ӟ9af+qK n98/ 08@^wpg9 1rï2y4u(=n6G0?6 sIX疞>!0~Teu3N^('bE >na{[6'c8;E%n ?o<`PfM&ywP>WvSW.|cTwKYic \(5o=NZ ġW8y%3nַfJOsDyVQٵuF{~/Oȵ3,kFXmjYwj#NlQ qH[fޝçopntMһ΃WT NUO5*k6͟`a~Ɓ˓矩 |K/c1M}ťxjXXa;/mIj-2E! G xZOdfMa"/j ?_?HwEJ/QѐED_ wO jw]Lo5+3Bdxn9%Q갏+p|^K+psBL4URn-B4Af2^?nXVguPt*](_z˘M3+ڊDzrk ݻ4޿ N瀜l7'@1~}nPy|8$rIнnG6B{I>Tdqe2ر V tG%{i0tB34i݌o4 1?9Ԟ@q!80%"1EZ"RIߛC(DZ?E<4}u?=[tBꛄF$G\J>Ǧ2شCe}P kHSsx6X P x(x6d@5bO˚}c2`!5U4;($8% aΎHTu,ÅD_q`_2 TFW 7D㐍y)+-&;cbZ6-~9QߔBF 2 + o]zAuIAlL 2XQ&["01Pٻ[9V=}&jXӒFE%Uce(ch`K7sg4 +Km2/*4QQYC;ũno}ծZqb9t"ݬ:@[Zbdhk㚌Od5"]i\t+&Ҡ"dmIk.),.6T IqqhӐ=a˳Wy \{0RⷤW r 9rZrH)ۑ(ٔ3@߾F|sjDx#Exvq$G7k|U>+T`dU'zGHxD<#c6_Э8fJXk_b-2U6֒xNBLF=W@ =Q6̵&@i8ECT+WrGO#DZ)74p DP}<{ up #md~?[RPM@]=ܩv Q}agZRY2ջk~bQ8Jk}\wqtenE郧ҲP#{nR ύ@wez@S3[־1!fú|Ts!wv uo,˟d@9i87i%/ F"Q߽#|( hbhÅj5-6SHDHW5HەcD/L"&b A(>,}[$;<5_.?T Nߎ*}*l %K~NTYo?4bgdX )澺gtՍB[}¤Ř@Dţh;׷,4}P1h#Nl!;;qhH}ʇ2_, LJ-$"i.?;j>^0/+ Mx<VPOvWH<qgR.gQLG~j 7 &7zv  Џ(㾯i]/t> O : ~F5II8,Sfwpeaژ?j/IZ\ps$ S!ylKZT'`cs [&ؑg-AZ bEh%Zg[^T[ZpГIoV˻mi]&Of%"Rw*?վIf=8__C݃%iry3W6+?!b> ׹M_$#VV(2/V9&jBdغlt_9%dG"RA5\XV8"iw|7rDYd#R_H'oNE9՘͹ .T ֡^qGč>S]GCPE{dq;0~ zJsXAn ;J19x5՗)@EԏXzZCմ|1HP:J80S<*͏j? xVvm{}H%}0zlul8X"jё-Q?}A'R C[N &/c!IY#xn9M"3LtRoe"iXj4 Gyi'}skFOH?X8Q_ 3^GטByы;U\)s;@iLo=&M4>0B).?R18;C Pu2^Z J]O?eI !J#ӆyl1z] +j6Ul H2:Ȉ$SIOw#QޮDԁ߷4lqtE/`Ogbifk5$? /tYэ3zu9^9VޝWT 0PO՘jDe4`j`6ƻ#B]-=mW5=;ػ XIʊ5yߐ3Z2Zv Y"&bߗt$,+P\ׁ €֘q(0n5:x}B鎻_G8D'!-:r}i?=t$z0ӗG9fgc#clu?cuσs<~JNQϦlӉ+nIJn B,[ uV:?ĉ-Py ]N=%-}=iYRؽSrw+=Y] &@^8g m"xg0V] agG{z3FG?pdf"fƢD:.Op]dG; 1rKG'˰e+fB-2MB@, lr޳"ҝ)=VvmP ujTTP׳Z;I΢F YI4on]wPMp_z Vkr5aNseZ*5{m#Zv8|/(ɐ(VP,+]AaQD~L0hwVFK˱ wGô*pg1^5ڻ3Y?ێdOF.|ר֫DG3aňbe=HM3skNU6D€ѧz||4aE e`ޝr"Q[;fdȁPWdN@kFԺ{ϠgT( @˧::CAU!}ŃK*6^@Od*<k/aIS\Xߋ*Su-hڃ֣Lj1$~GBvN9EN:)8Kn|%a&8Z ?UϟIg _]=剹Q;a5!]Ms:J0 Cv< 䦰dpc0XxiV>\ޒ4L&R: A: =N[ IUq ،*W7[>'.E'BaV:/iS]jJ9iWf rSX;%uAw y?\e}%J ,M ]DIqS eE5jn&+Gp!Z?xgY}µX~2a|&Pn(l7lc0vEѦWu(9]D9`xf/:ljxv`KG.1qΉXnO[ωT ZLf׷(;ѢmT쎟!Dl+|yn~W״ƛ^BslA:i5 EGaR9( DP,}z/Y }:p4S KQ|9T *5󲊦P!Xdm~URй]?slf}fIqx..DrwO,@!c2ՋS߭?,S>5L$6^ /ꙷ\rd3R+P*rس) l xYl@w%oU~9yf$O2|3͝A 3CbU < L腅 p̎&K(Z<8r>fF gX0Ł!AE,En-|~:{Y(K_tXH䥩202cC#XQLq#MCM%^`"HfL}/о=!GA5Rj eSCUiz{@[ȯhvo| \VbM-C>~+v"rxV# e(s !v$Ǩp %IfD˗;,JF/b9!] <"#ٚSLPֽ9vY1Z. .57T:(ic,M}Au+"OoyJR}VSnKxB?>[d_`2ٝ~b_QR^iEԔ9UCSk]W 0uV=j{*-Y.G$YzU"oy ֳEHc IA.>H g/$}N^V.$G}/inY6Ļqʬ9^v_evK @vJ 7:6=&*;89X%#*K< eIK}$:Db(cメP~' OB:Ĥ;B< 9%c rNn}t,c{$~*boFmy!ѲKP؆u0%f4x*J"3A F Wa#z"wK7~3RUNo/!Dbm|}ż=V*l^ySw"zlLyuܦuxY`'*F!-pC6IɌk>8w8_}*q,_eyiCG ]vpB-Pά2h#S윃w&Z ^v8zFbB=H&?K<ޅX2o`swK:,L=Û70]F]r30*6˫p0OrRib .J%Te n7Q QGaԛ%x [UE%m[+ooݩ(1>89oؠƆ{!Nu8IL⩳-32s]:YtbC6XTҫeD6MR*Aܲt\Wߵjɧ5kQwbt)4,p?}-#U $=rpaTXo%Ma̛98{{2U>] @GzK}^ Mfb+OAd;Kn-|&HW>=o_0FmGb y$Fxo62#+*Lv{m`]BiV#ud+噖prQ_X}DEm2-jq,V%( ލ>bj›pvL[}Ry^N N* ;o(n}(4NHFhn8zHBhh EzyȐcwt8Y+KQ}A}&XqH'a&fV8UXJʄv K.PE$r숶@I{3i:m4}:,\C 9T;Y ) _Uq Z'2I=I݆X c4Ϩ v {; @a#_+VFvw+| ApZ4-^9pr`9 TOÍUor`(M(Wd׋whG>BmZ|H^oz:Wa;4OX[+. *W?1,NC(=9HgG@ ZS%%<x \ijkTݑ֔pŜJs 3cL5ki?.5.<1;t0Z?$灒\7B؅`ģNˑ 0NUa%kv  2x2¥L.>6:rBe7p'88xX:tE(|C<~A2n@pڗ7:ݟJĖ6nć0<Vrkm^:%. #0bN@/9 YK٥ˋE64!?PQx'4I!v tʉ3g \wq{T3a 42zͫVR0b YU+c%xX8P\6=ֆ=?o* t}O^M0Ԋ1rE4D02{hп0S9rN|+rgʅ ̭}Z;8) :()Dgc{l%W;u˖]8D R酡|gC_<\3`v%\{\JlAu;ip$eg=b.˞TVLq%:/|D.q5иpqգAXoݦhJƈYMi{O saqBH~ݙZFCtݾ]F5(,F'b_ѩvECLx2M\yȟ:䙿BtRWn{:~)G |KKߵEpTn|:u~dӨ|[uIlSjbP2CJEQ"d5q[(AcN>kBv4m>`MCN45&A"h9=R8~Jd7IGIp +Gag!|Zy[;4Wzؖ{.o&:>P'7<Bxnb;ӼƸTge&7 ;<9$ߑ-g-&T["ц.y'uW dd UX0Eh.]Q!iN*7!rEqomqW"+^^Z J@G{l$eFOTk^Ϛ܁k0-UH~X SDm%6;hS!72~pE`?q c3C,Xųx#UkJb9 z{]N_8c9P#jn/״*>eNty%یU5qzmEܣڅzZ\<8Z" *FLY@-o_)g:2Q(4n)ǴEyMxuY; v=&ڻsݩ[7I0WZ 4 эfi([7LbqOF?09"GAFZuD.ِI3N"I;Y\‡d'wz?;YT)|B#īgIkKG'ʣWUm`AvO_ZD ~!%ÉX.֣iIC ;Qľי͈΅KIꜥq-~zx9 %ٯ.Q]g#$E }nf¨ FLcn uBL qDZ mÕUA%L과y&퇩 MW+$ڐ$fԲ(`AH cKv2C$Kk,Wz r)Kj;M>0oYZ n][IZ U h!#!;\sPP6,۸gQ.Ȃ;XK*r- )r5Xs,x%YO|GWav5RkL d%ae'uB.SDWQ>z[iζuif-„IH' o}KC:@솈C&r&o#ظ-j]]` iNq` +OpU̦M mU K OT^őrcZґ6pyda{ذEL&J/=5}w[,㨴 _!ʤ!Ӝ+q޽FZճQk f[b-S)McHdyMwE8Obf>2:?n(VO"T.ַ4&}#hd2<~,*$ E@T/._M)Yu!͒3I<D)Eo! 3dFkj6=`s٢Xsշ' OxwGYZ,'i_>{IjԻWaXġIVdYsxZ S6S!?[H Cq `_[tZO 'c=哪H韞Xmm!TE`ZClӎ_;nir[NOk"*)elzr_x_D3}]n]3  B6^v_fcnoT"J :ĺ&dUgV>%Nj>ҏunDb! e"fr8cPY4mKU2ق+ہ>8s9e`{, bشN:nQ $.1A4ȥtWL>=2j _3/V١DRz#~@X0{p r|%K-0X%h[#!GjR^%I^ć j,4`8Zw PfsS_,.74&Ek"lp2Hj`1Iy]&3Ym-Q /uh#]^xT#A!MUq#U{kJeLZ`3xeluv ?^UVA Ns,&| #Gh(2.W"<jIϑ9Z`ˉ7hTt$df^T+W_9\Q Fkii_~η&O&{|D/3?_b! w ʠk:/w 2cQZ0֭䠠ZQZ} :Gd46޺m mB,SA`GϽ|p5$< {s;PjSؓϭ`|O=l2*J;Dypy56Zp5Y5DIV+"jcAn>Z =.ϭ]u\ڈ8>?PG?-b!',s7B^_f!Ǜ)@1 ,:(].V|gوiz#.5`ٛ{Ckladv6O : /,Sתvcr_di$ G6dͰ!H\Qte?M┯p\7# ;e!6oufpDjaU9{4`eZG#x$l4M}O`ն|㉉ RJAuzb58YNBm 3bK5gG79`; @ 1=;R.Lxl]nD<` lY !|"ȈMo~ݦ?qs$b~"t!ro._sɳ}C%="H Kh|dHNϨi4O~<&;)m#_q fyt,?M7k[:\, LDzUIY\*.Y/Ǡ3Vnd ݫ)םt:`mʔ'<8}Ȩ1tjhJ:H=f >*{@z\G(1EqmPRo ꋞAO(힘vAoݵVѳ|b;SB# qdW1Ԕ$=?b77[~$[ac9h.uHe3GwR1=QQڛ>]_%xѓ 6X|te\%jtm~cgA,N3_|^f[&>0#_.&4S*֬_vΟU»l X3Y-rΐ"b(#Ϻ}qbfMt$54{fH5(ƉG&ox~RD3Ad~ETS#U3o$%2"8^dE>Q#mg8s勸Yʡ*@ ?9LD蕕XIN 7♝ZXgfXoZ:.^)<-kF5ckk_)õr8B9c߸!$X3Z+NeCbx tBø8-#3J,b{{{M~m5lq0 G*"଒֐e,pBFv7yhxT}[`6GdBp:$)DbC*GǶyv k}KBazVg7Cj/¸Ґرs I9vk.|ߏ =8걸/di%5磞.C['mA:ٜ$:ܺ+F`R:ouOIآIq(ŀPmS2g00Ɗ4ƫ[N|tGodv9}Ԁ qgX }l;a{^ +0zeb1sGl̉4_k>C엳ۼ`9wwiϧ]qe!=ڷxs"o0M 1xc`r팙{ܤt6yT5_.4hqp_q~-g*-EcDޕ G+hdSI=Q<4m :9oG|ua~f~E-PiCCa, S#br)5g˂ WN-qo԰c/vx@sgPH"Ϡ 7jf KCk,=06i5W v_aFmbANpdNJj{6y"r!6RN]M[}pA_ {)"1 ǵtAΊ/UCCMT@6͔o}FC(OԶtI>VOf4QoJzњ%">?&%Sy# $ʀg \,KF]?:kH5sZL}9_Bg<ۍݯ=5\, iB o"0mٙԔ\laBZ>#P5: gQfm?1Cs̽Hm ]+%jX?J*3avظ?#7)[H?Q ,JZT?-]Pܲ/.^YN2B[G8%ЧdىhF-0S3OsD&uݞL'`'1KKF* -@WaN#+kBxGT9:C0ڒ&zUG6kƧ4At}hIC,_61 *I۷~&HGI,bbu.L, g'BǾw(zpt X]gGOd{(~Fgk%/] C`@aՠŀzD'P/[wܜwDŽ7P~œ'R0Z5l?cek= QnvgJ!/BVafax8)I$=AROp[K-j6'#jdOD<(*8 HO:$ GQ6mD%y*k&B+<= QqG4 D)ik*r!YJ8RwnXzV Wƕ/N,YW9tv:4uė;rdyg2zK#C;Aɔ ڣhUNj^ i`mX *qb'xz{*P>EnhnzunKˆvj,C5|7jV7NmTNU&l /UDTԙYñu)KkF??Y*ҙj) .dž?ǼQZװcmn(μfxVvͯ j'-lPgH`OW`>iNuqa/H~f cr%xYa\bu<֝v*\ Nd[@O&5 z_fjF@@ͯꅼ(4Pq[ailߗ4pء>'K?|\auO Wv$m/r@$^۴2."($xiRJl Ni63icaIJWvQo:)3i,LVx(M£y[vϔ(Hn+ U\\Rrݏ)voa}x:TyE~Ύ=QLQdb6t4A )sh/>Ů!mCX-3q4ڝj8Gh")~x "{|-OD㏖o ~$rȼz'Kn_Pq{ۛ#AXu(Μ+陥ïNJ32\170I)C 0餷`^bV&8he㿻 ÷f*Kcicel3GpCd "G[ (pbu$%F1m MFUjiOD4>((M qRCePkj7&X`8ki;Eq^MUouc{6fqIYSMC A'&( I;@:D J[,GuGC(( b=k/lc.(ۮU P:K>('o0ɱ8?)(}&a>CxDŽenǐ1@v[8]4#-AMDrףd 6Q3Cmi >zr}x Y&,OK8гri-F8BTC)n}n  y6LdHGc=ie OJ՚)ᴋʠ3~vX.]i vTaWK J Fx;vײ_`X t`VD8/]gtqS( 9]s/V@:]@n' M ']/ᒣ@O%R"؋k4;ͥ`Ҿux,S0 ??Jfi/95 nj@n\~ep$P 1ZFsN )Qx|6 hG2-kvHCbG^I}.M%  +9XEN/¼ci,b):d2H6n7mUL̞NFYI; mèkI}>v|@AI<+ y5;}?;1wJ=h#fZj"iA`i"ڞ~9"8reCf.h#!xDdw4KWӃfۓ# ,]{Brt`>mG4Z5H!qv(˄Am o~Sxk2Z+ a1#1uuI#BsyG VPl>^_]W \?wYyaB\O%OڱIgy4&ڬKƆO= ظ=4=Nq 0!wY a>m.[t;2<~5׾cuI\&Txw<է}!vI -ٌPGl.EuV+Kym” , ZP֑šrॅRXLHğ G]q%1ҭkWuDZ$G Oho}Pig;ToırkȺdvsE3,Գ?os6V%>ED01L>֎ԗ_4Ɍ3|ϕ9T>Mz=3qÍ$!՗嘃gƍQn?=bB߶n0F P{,D+D'Jͤ)H?QtWڥ8pb 02] R˫Z 9 "=1#Z7dGv=v#F>PaB/.A<Oqَ?$,O$ە, HR;cc_&$k2 d>_X+׾,ٻ_# `+BkD ϋ//$>ݒ|n1EyOGߣF2PjyF Z:[LSQbӗi!S:9TW%犃 7(ml=hDh9Pj2p5ׅyvt!;x+C}?Wrܳ~ZyITloRQ0p;!kv'SxM3N@%cw&=dS](qwH) Kbv;DB iK;:HTm%bR5+\E6<ٲu>1tciʮ)w؜iwv1eLu ;gEN L3- ΢"OD d@B]./bc.jNUH`Ol{ N4iYZ p1% Ťi6K pB׀BQLH baf(HLKcx \#RMƙciy{xr_Xl wQ3d[0;!WBRAaٲ٧We( ,m"Йtxn6ΧxP}!>n㟏]H@Ƭ9y9?[Ƨ E:*}`}*adx8J_m7В$ΰaAaa?_ʍ ?usLh =  tP:;x:+ykADYgDr6$lU{s~bog+#9eJ4LMLz3~5I9\ %igis* 88S|\ԯDrv,j;pqEc>X1ۑqV!K6m^w[ׯJ{ xK|JF -F>N ՖYBi{T}=e2GW꟯vmK1WuXt0ϗ`kyPL.Iv$ 28)N|ڵ-3ԢV(iOaxn$)S-(anMl KYdB~YC}kJedHw2@ms=oq>Bi] !&.*,4SɟY_-o+y9p-Yef+*ɓ6rG;(K H gJ۔B޸b(QV#T&C@bOhnmL 2}x$ahP[)>bFȉ`tbRLDa%MMJy`4$bg~g.ʹnvIGnV1[٩aO nj'K?w" Ԛײjt +pÐ-PفE fp;!\i¯ύHmks"-C`Ώt:2 7Bг7cT ~[!ؐk:׺ iKbs>Oa BܱM?J4k _ ̅%I嫻wxh9k;~8Ha: fc_O-)uM@!T)dQ&aeE}; G1($$s)` e*qHOg1>O#M%WAя0<ܗ4ms% ,iPMݗ [p( ֚}l;\gZ5|e Wq-v"J_ qy3Q!Ȇty&j}у1a}QYfM?fxRď捏M7O(k $ҳg?Y4$yĒ4-Hb'zI-_DB\/eY[1j͊3A%;hǘfWie`0U!0e_>7eZ^޴-ʁ0Mї!QEclE<qf|¡{?A" k4 1~vD; z! ̄ԆtgR)6/*waFx!t`vqTGwiIɿ.{~-L>#P- qK7q%\4 Oңh؅{,A/W$ G!  #7T*S =iwZ'?v\Bm${44jFۡ go83pxKG b`_Iixt0g D9m7 Bϝlr6ƍ$d% ;(A^vzHk8IlqMB/vq]O#}F$> BOdZH暮3Tm21Pzn*(,^]Kb#]D0Ϲ@rk#$+R-) #7^+BV^̀8@:Xtڶ؆̇.uXFBM.&(cX+8't*n~Utwdw_Q˲4W]ųY@I}Ns^ʑbAuUpNF5%2FIO(bY\ymg^;@[}q.WЏ%HdzM#[ As<ӊ15Jgpg+XDA'nF;^OӦIM|7mM玏#^`_p>T3m@ X5 2vd}U I:1 #S`X5˓1?g k]5+N7f޸KBnrхvl_,iKD \&I{r40Y$!)f\25'T "sn,&n pTpm A{޷:I; 혫*BGcN0_M"*¸#~YQ_u,]Y;oM4{vK]]4|ዩyX5YBR5x`!DVklCSRټl0>r4ENf/@P-Z'#(EN!/dQfr],¬2[SH=:;G'dCzl2$Gh{`MjrYv,\N o 0L䊾Å{R}іl@r7\OHux ?X{m+^/|- ŐZǸ!4JG9+ `1 rHft$ͅ\'`u0%ymsB(9hS 4vƝaZ9wXcJ%l"ϳOoO #5h%bm/2܅0OkַfI ّ#Tw;W)EW*NK0E*"e&4s$8T}02 gؙZea0eRd&{nG^_QZʵN}ih j/B\b1н\zLEWIv;9j^;ջ 'QXw9窭#Ȳ uUK6c"ԑXHRxG7gQpтTRr")\-jY=ain+ҧ45龜aCS%SKmU M"+n_~[[*V< 9c_~?爠٦{+BNLA o5c9h ;~ .xwLeNH*{:/u"p;׼ٶ*i1h5 "Kf] bJE{rfzv!yjA۠9[ 梹#Qd8j7S\c5Qvúe#'ZnMLN[==^4dA;ԗ?tĩjtǩ:idJxG?8?{2V #)A\9!`OcZδ襱2*C#mj{o~a F.I$N/m5*b#Ɋiz7TٵXHE?BR(tEBtI*(2^{j"ua5z b\;BgO |8ONtc#Ag2⇴5xfxWP L.OMBYY\su 9#Kr]ALd*Z4ď!_vh$KꇊSE[:cEǛ%?džHo3"=sL3Z6Hh>$oO¬ÖnͷŊA5xB}|x/}%sp-(c}R'L!.ڻTĜfyYk<`Zư:(P# LGUg=aDJM(_€F~kB"g \̤Ys"֑6y\ίx} F-AsؗnݞaHA|ő%2Q'C'8'˩=ATPbSJ`-FR"W^Sw'g7a&;ɣ+ͅ$Сg3TP. \SR|<ࡿ7G~GyQ,;5TuZH(դe~)udY p*޾`A UZlAҟ\,DtiEt(uB$v@d|)(ZBQh_jntֈ5^0\s^PĩYig'QtZϨ^6_ 5AkrN`)t6䬶>#@|e -WQ tG^ 6^JCg"x̸*0Dqޔ`lwvQnt_Rv&i@s !WV389sS[|YJH <3ՕT dfب氉c̦PC7$ <ţq$Eés.o_ e {~BnϤVMCظzh`,\좶옿;g%xX#TR(-Z:k˻v,*,M/^xQ$L=,1ZM cӭ(b'nKxsj1&ա <6V\KNqTOM~1E YII1ߧKOߣbJMZܣ!iIy_7 4m  fZԶY2 co\!PjxlhžqOpH*G!qG>385K7jaGYhq/O{bڙRMӴNx]=x^T CrpUS6m_5w䓞:bo1(Z@Q>jMe=3?wbBz7EP,as#e<'tgNzO;Iq:Q9p9ى4l,,zo;) jjyX}.#WЭj5">3[=p%Gp1c=?y`ֵ7ҧ>7늵OG2h;ړV% G7EQDm} Em),w0s3 R.*Pfw!r}~YCs9g0T71U% )ydy~&Hܽ} dA l(MUcS_M~EADVO佩֎'lrdEj©Pq4N,fkatBwX9)CoF+?*!e^O$й8CȆuujc yNFrk!mv2Q$]I 㶧tEW~$/cPaڣd|ihZDRܺmS݄u기QeݤeUOcqaD.g#f^9 R"lkr1kq :.6!\_i.OWrphxtEJ̥&h] (fŎ]0U+O0|$?׉X>HXhz ϱ Ś_YwΞPZr[-W= #.v Yΰy_DYsCf)qqTXcJw~aj[*S{jSJ|ynM%asy~/s^xeQUYfMR Gx 0uCY@ie@'H&,nx-HLibQش`"(q!@U}CzԗО@{1w{%R`ܕΫܕp~uد,pA:T 1j|7%R#k]FO?{~82'[)i.YoS=L2fkKZ^i6b & %F.'hC:,v#yU6=q!]wvw܏|Q02Fh].#2.RȆ0t|AJfO,s4a8` #O6A)Z, ;BwmܴNd)bJk {kj/;0y΅Uȧp-vTXQ-v !0z6$+@R:t)8z|@[~kFShEpBT(0M DPBҴ{ǹK |aX!?`zq9X Q˅N 7F++YR^ }ĕrI~j%i ^31YcJ #9B쉅_L62oKٯTܖJm궕fw~C~ϥ/!*hLA L5,)5WU?W͹K"Z+A\ע8]%@j0,T^2NVWDP8;f4*م3vGްxp_Ա`Lfpyd iU{/g`/,Sa{~7Şcs \}K2yx_?i+4$ 'J?5| JCp?XKl`ybx7 Ogo8O[>{8L`WLRdkA{4Hn SQJmhz}E}ߝq—O~_7Ytۻ}cdt&,!5/=`n@PEO$<̻#.̏vpsJñBP޻aRf!mbѮ6:y}2k8侟|XTΫ7-wM-QcYɇ0ā8tiEa#T E!vF+԰0xPr{]̸nh͎@`KQƏe0Nb*P9m' їAM8ghc#YґiN=~)uC4LDyK@> ÿ́॰ԚnS;G?gvd^UmyPN\an$hDY˒VU\khq=nFe-4*BH^0NŵG# 8,?Wt_%e38+/y< ٗG_ :ein !9@-?i3;^7·Yg3yL`Ic?cY>HtWX4pu+~óff/_{V3H!l2r 8edt.}Xo3!kзrlM<Gc D!p?O, _lv0d):@HrJȚA7pSuxz{{ɞ @K.HӋXWe3[oѱ9]U&eIvϤr,RTG`fqp; s)P8QHfu Oď .rp eth/3<]%p `ShX'Ѕ+}t$jFbXi<4k`&^uf ]iq8~QO)Ots,%*%I"5ajvE3SLdls!goޏMN8ehR'Ave;vWae+7# ~ys? p܇c{u΂yfdӤh)Յ@9xX>wLΈi_%-= lcK6In@aqBWɟna\mDDtǶX.U#0tłW{Œ20᳼v[$g@k[FHKP-dHJuN^"/Y'pj;a-[; COA F C/8bwNƨaZ}Ҁj8S0"i㰩5/*etV'hHu얜xbʡ #:,2IBZavsB=JctbʁWyĤ4yMBČE۬|bW+\$Ɋn:I=Neer# NfB@ʍ6.Ы"daD&<]ZfP7<KXоջ* ~BI:<"CٲX+xS7!rG%{uB܈6U@xjiFHy~p'-rHqyYufel-n\V4[oi4pq|CӯTm^;fzդZ!9g_ф)EnMꑦٗG p3eَ`1Ԁuu$Wxa#򤔳.@'"(oaUf=K*ARs=wH35P*5p,p ͌l5gv?JLVкxc݁4 NQ: Oi# :d-$pJ7|5t0MN;k#3OFW%iXw]o+p|>{'deأ .Xj]I9Ha!&>„ l_ fixL8FgOKalIg1^0=4hT"ʺ)@>ϊc3,0 ņ4)'!}YknȈh>z?D[(C!PF`܉EQ39R S-qlT S*p` pD'2V#VgA+>][O0؞k#ZGDLid_i ѭW$V঻xmj߁. )=)&J 5"eWң+7!+KZ \½¸:'/Zw0~L<Sε{3iec?RjS'|J sn8\ڢe$O .M Hp{#fCt%4 Zzۊp^/HCS?qi)< LքvJYM 㖟WrDEYu!QIRJyoAecl[<%}5"Vڗ ; V툲Yi,8;yDM~>D4c'Ӿ&[^eXE79+5휷`EYK;:jz(}TOASb@w3=V`Bρ-ɥ:j7'R=r}L:MpK H5¡Mw  P)o0qGJr F#=4J3#uȿZ{=pQe'ieh%JfZNm$еSO軦W"(ȶ[IgߵJś%)}Y ZwDjŊ&gFe`?Z{͑speowY K>/!N]ҙ3tlZ@+&lz`CΪn%zvuMeZ6[[VB!6jB/z:ϯXtef/ NPͧOR$e-җ06*].OQ[$>z Apv!$VTxl#L:%ibv iuĆb=ho9^NQAh" 1Ō#+ hd:鹦cI/ޔzÆoZO۞;ï\E3.sÈw GJ\ૢQt5>@ϗ*`x S=)o.PƔqOHM獩 Ro8 Z$p1zxgf(j"(lb&`~.G_`Vɇ/Ǯ) ¿@m43QS= C Mw/`/}.ajmD h I$ghAs<w!K`(;b%掎FDM,?+I=pȭ8hD!= _)I lF^ 3*0}=)U>kCY%Xn@[1f=:cº")p_M C/Dehv=zlLFB1F/݀{;su, ӉMCG mKjMuܯLLYi=JV`K/UhOpʌEfr< 44rhe4Y8A]˹\tߓs\=ul/`v4+0/I?zIyvviA@xB)nbr*xA'ON/XLœ99ɚH(NCf-yўļA DF^9Hbj@/_ /5(c,SǪ2(oz吮k~ďwFéuZ綁j}uĠB7+n>XGU7>I#jVNTFMet& |@! b ۹?8xc7ubuVCa6z#(zBNt fޡ^A@_INr-2K8Ϯɕ$Éؓq.Dִ(4:22Ƞ(x5s.{uڸ ê?q2`XSYADVHUULjЪ:si?k@X =v݇יx Q_ Q-.ul$1cu'姣ƭԽ?Ҕ=xV٩%n5s~~ VP} K&?qvYki53􎥼,n"^&=,h IwvTT "RrۭG>YE|?ap,Y8W'FBB1eCn.Mh|u+W¿˼_8#rQqPu5FGH*ڵɺ>v &q2-drKbhs"k{=c><Ȃ>Y逷 <>8*j \;j@ 02oDpːQ!.9C7`2sQzY{k޺I\x@*0)s).X/o4w;L"(VZ6m5˷ceaɤwbeiijYѓe"k#+xPM vRt.psl& q~'|Z@:}z$Cq<[p}53>BAsh!۰~89ߵO5p y+$..}KF_!oG[O}wԁ575y)EV|} R"8;A0\ #xz"JtT e?oʓth#:ยEt9 㐎#TiB-1їrw+<} m8gq|o* :E[wa&hޙ,{ia [4,5A0{DU@NG T?Ntw:]SHH U , l)tf5#K ͻm:MK6d8ȩ[sP5nppoI ."-h pa6g4sC>^*ǸU7^ټɷ;4"#H|ҺR5CkBIcI )tWn 490Ѥ!(* B8mkKF])VQ*t/ND{.uN8 2VO'ij/q`9J8y/ދvmNfsocNh(Xױ{|b> 6e}8r "&A쨫26|Djq4GI8x2&?y|&&Ḷ1R&y nOmc0XKV3}R0uV+4F.iû gDӒ55Ly?TUY w;T*l) &+'tpeo)3RlS{߫AJy?p@F 6ZZH=EpTI96U=3HXHAJ$ۓcC<`@$ J<%ے((;䉭lROZrY:I^Qeۏ ?O:~([`Ov]ys*;QAڣw!TC1JkHQ.L`JZv}"]> rͼFd~d5S!6 &M7 xHE}zl *H|@T:xA+*ݺ,xabU-/7?EU+ w<xM~ 2ޮUm&Z__at U ?COä3}ۻCP2$xGne`&3,n}]v.Xjjގ70@O!~ >C9uJ hlD[,b ªC}όTJoQ(K.87D&.wGiwٵ:ŷydM gkj ~yzұ\?~g$dH p*OD ~R9aģϥfk{\_+6 טۻ.CHRL(qDs,:E=R:]YRQ #"Mfv ot ('=zD^ϭX(ťioycs|*o B}YrkEDrH+L&ǥyා縣㛇{`mGAFꨞ L`v#5VQyp;WA5hQ jKj`nmNO-':L Ѭ\K@QlA-8C Xy#\qONXp`G+%ނI3gJ+Uw]2 o~hqzg[:)8l#1kijg7@_U|DEg^dȫg#g]֋9y h"fT/dns>r3ͽx2(OG;VHM44eV .Ic\*Rt)Zn'*RRF`b+,F4G2r3H"j`uI|:[T~.z igGxְKf۫T.QZQUtUD46J )f"LAF=:.Z.o~{`'7'[W`-_@!U:=ܝ}[DNZyG&=BEI[9M1S{A{+{/sxKgHgXrvZNA_,O+Q9Z{JR̤cV%O'm#m)>'qM@K /U@B B ֓QyxsU]&^;Dtc^+ȉj2S#%NuYceᩐ[="f>-T/(Kwqh?V?I"#~ -LM?mu9tIӳqck@3M6WIwC?sJ?M\A茔+ X8q*xE4 NXvM \tVA{״Wg|@ 4`;泥j<,yblW.>\HY;;.^@RWӳavcwsIBi7Abw1^@ ۴o(m }a@a`hp*5-q}ĵ0W{/ͤ=W!H4 pL0+$ŰN> I_o_鰈I>_.h̄_(*ly9:ly,ˇe y$% ?<{ 6LKv ) ctW])~6zp;^X]oR\ >\,U; Psy$<Ѱp(u =lnW 4$F1i0mI WǕǒtjdlyJܵ@;4Md&[7X{_|6U;D>QM] ,IYù3U(I 5D|f8'' i̸.#YƸpsR@B{9T?x7$wy%uPctι 7w@ܮ,.lUr ҡ\ :TFEc"X+so,(妮2~#2$]sAd*Gjg6>RzSf[ ~{uڃYɂiOrRɿ[Y&EʸzJE-{IwSnxY{?`OEdYs[x@nIVDq8uHYPP Lzu: 113tH+Z؍4XD82vqSdzsjO$(]=X0ą ?3A=22%զh`1R(4 ,e MH04K(ƑJI!=`PX{H Gv֜@ȞЁ^AI;Ju ̰)ro?%9rjWYmaL;zh>b*83VXh3Rv~Yhp< -r\6_g! iI3 凘^N5*yŘW+ :yD8rh뀛2m$}`Q{e^?G2^Ю]e6prw/%6rN7DA_ 1ZSV*LbVq|Mqnb_kB'bK"da߮0/lUu&vNrsm?uErAPol㼟%(.c3/._4k?N'S5.#XUrޥf_tP 7ᣨĘ(5z!rŎejU)sd3IN?[6PA=`)P؋zSH̻~Q#xkb@`ӵ5μ{c0~mD 9I2+R9G`L{>{ Ȗ*TOJ?dx1{ĔY (FMjQ؈qe/.Q')PV>P}}ťI_#$&h'ćϕmajxW PBuZ8Ut"zڠɣ ⤬V66 _>;"0Q}7#"u ˄v4`L( yzL ~F\nCQ[ /R2vK+v栌DKJJH* v8)F|eBʴp*5p|Sn+?z y7ԅē#v*qËG0e'ye{֘UlkXnyyrIdiѼz"j(EoԊZ*_hstB`b:9bǸLjv :Q8l\(:n_Y @9*b ֥_z@LۤIu>йHg6sCf{'}QI [-kgV&>lٱNol.Yu.ƋyY޻,TIzIcd'v sccx>R|iȾ{;h-vX ߽cVR>, xN?]#ߟ|jq\"q¾2e.̥%}n5]yRc;arq;LoTM@<{[-la lF2Cx^BsuH;;\?y;t&7!pWKqz)X,uOQ^sLRٕ)^_&_WfLw9MFg%]Os z0gf&B<"5[FW{7O< W 4jYRjgJC +mCt>Xg;Ү#Vn5 D%N` =Mm;l :rGW# ,/ 偌JjsP c+ג[ |u[Y`#Fݽg`幀NB=œ|HAKe ,S~M'\0BD $|M{ [+@gJX D%J=\&Z8%#y dOHy8g?ϫ8fbq-+6cxM NhucFZEwtj۩t&(,.jYt~5q5-׌uy]` P(DC r= Rl; Md!0;h{fO:w!r3V¨dAqgC- 5B* X;^B4zʋeOϳ$10v>BBV/ܟ ў<k#\!ABxI/7T\vG rXB&ER\fofOfdUU㏇Ikk+>m3r;CGzUi'D>&c` pXJ޴n[-(tc8Lkρ ~G 둈+{tozD7[gHf.z10KXynXP2N h\[K0S2VQbnU5HxsC) cƓclv¸H=&v7* 6fc_f8ٿ -B].('OV>},tD҅64LBm ~.UBjjc .O*KՕtj2,vѧUψ| WE{,\qr&;ԁK'w`NKZQvF %rt֑b4bp4S9"k[&{cN=ю΍) ijSnF/˟$gx溶b2^\P67-|ay| bd&'I@2.@ ($Si<{%'/ۍLgbB s9 "ೞEpE3L|x!'Mqu/+ojŰRA@8{GC\T'Ws-lW?gd#i" N)#,k|>1"6,heiWb}66CIieZlKV%oχs.X~ȡ>vJ־_-{ c $ָd3݉ +;&`Y T<6/G;޷H37f*WzVčiʵ7^cL -@V{A!pDB:F.LF "atI[ Y@Һ Z'މ>1L@SwvFiw@ k'7utE%Jf6 quE㚪`h*քz%mɲߖ|卑Ԉ_Ht_hcjIeCY)) \whG(!NޭIL<< K]NfSuC%KáƘcV 0_>'i1Ok ϱPMg69Ppkg}FkZ5atͺ%@xKK Q=CڔTyϊΊ;F:fu~H[J4ÊR1HYb1)J_:\ŵxa`8?a"՛I2TA,<h253USLh'[2&WtE&8wy):`j5S=)0xxn?y8"b!Fӆ#w9X H,Gx&?FV2у(1]܅]ѓ-@PB Esck_ %P4ani^/ Ƕo""=sL@'cA:p3|/8 L Ü>, ҋk|qjh6vR7Y&C+\RFrEFo\Jc`hb&lofLI Qw%YP2 t_(J&a7AhIAhLNoww[$D^2n@"VJ_9L2FF/VXwny}vw6fIzzr?$G{G\e*A`h }Jaw~wZa+.΁@.>V+a^_SJU5[c 3,vՁ-Kb ڃ2Zȸ)oAxhToI#3LoO4R8qE g;/ϜF17/٢d7m1aê)mH h=qCVq1/%L$5G ?NKƋNgOw 4@A@-9f ek ^U2􀕸["'msaYSCEaSB8-Xwk c}EE- % UR9Ȋpˀl1l͗?i{ۼ+x$mltUƟu$c J́>6":5)npIj6r$ uAr=sy"]; iwx8SH @:Q|LKnþE$qVKjϙ'f膧d^^}- RPKѽBZ|nj9' *h숱5i yd󧻡uSe ^pJ`iN_?bџZ-BQ'n 205;61 =J Un"67H:L7O2"!XP'?5,/+TJ8އNha9XF(pX!5 jذ},d9T;X{|u 8Ywj!&bUZ*J\ZaՈ I6c)r0챶kA%capeH,nģ3sc00Ws>[3"' x?z~ EE pԄ+Is>:aįudB0wF7rcMLG]{F:,hC '8^=sٓ@ If LRiy ۞0fF:4xMmv kY e*2/ѡ܎zW@E읖9l]yYt,]XMy O85o~M7w_GS-N{Sq$J$FِձFU4UqbI8˵>Ϟ'0+(>̩z;Pc(L~[ _6gPqSŪ ;n=)5ljȤnAY~-ۧ7=>V3;Ii^Oٯ->p-/'%6p5>t*@cɂbQLC[ǩ=æx b%g6 Y׊C͊px"+b**{3׉L LQ-On? ]rC6$i!u4Y-CsLa1nl هrҩlKoᨼ x:ĵ (2Sj`!AWc{\W!RrL|J5_r ),h8| J\I~uHfs|{Hxs07!gQ$E~b~6%`?S["A! hRo*75Z,B!QYg#T%4Ź,QK?CԜ hMؒBfQApE2lvgQ)pѿq=gޓX[IDx͏nZ3un]scy㢽8HЮɩt U6zf)映U}lQ/NHhB/!W_bɋ&2U @;;}tԵa݌SJM&)rgGC;qs@@0oll+JKؾfͭL7۷pw蘠NǸxfg)n$MYa'$epLEv{.0pnB}=,ioOgLk^Tl%{OJ;ttOؿd‡}oGX*R/bL%61  zVBGu3+];3=]-/"#;dg..!c6P ZYT@N,8X:c b,>rEj501 tU`2`S 8cO[t#%#+iӭqWU\c%Ttދ \"[NB"(̌2y#{0kf‰n1:ߙf~J ڐ͓CnXe 6B FTn㧿92'\2xGgp8Jjϗd`5̒(o&꿩MZ|!ۍ`8w g W*4L27Y< hþR9s;beZб#Gp{&ifw&1\4ԯT1lAiGZRI܋Ksܮ<cQpY eA-9c)JJP|X=|l( G*'LJ]:xXjf2g!TZ(C#)s S@9ϑ .O2e %A_5d A%ߍ#z;u\]+zwk{4#T,kǴR>R BA{cjdFThpq@Γſ(q-uQ6N>i^Z/ď@XsĚ])(cn:M @LIK!#i1ag"eNDF,^ x;@UR-A7c8\,wVG #l47[6\1hĴ͏_hW} }lI(ۅi;sI"5r'Ѱ Pv}F?>[[JDFs%6/uu}%}APܣG&,% X,7]aI406Okĥ*¨)|) 2 nK m`)r&N@}MTR׃;E1ҶIg ٟL=Ӊ`ݼp.L~[N1iodAj!1}@Lǃ2 l6ҟ9 &> /-wiLi,+0RWy{Ccڷf _C)'ӔBTl+m(¾L<|.knBв8Y(a$ޘx+ A4rk WryfaR U'hB2 6a6G-/PiW 1i0ġ?ۂԏ(}:"k!xm:DRlf.nDuKڙb"#uiX; q|DAprWo3$Yj 8ɭbEIgw2Mv $]:EQeHML :*#,V3g2F_G(tLH\sŕxbfvi#kz* ȾCdNHY|m7&ȮL x\Gs [FɚDw(PP){ >(v2KZ  plMݷ4v}$1xd,U6P"LçL!)oR4 ToW9Sc8xwwdbӟu~HxuIb?CISl`2ٴCYv{쥱X#(^s C+xP~6*J9TbIfB~;Gh۟}2A7c}:( Y|GmV1g'21^O 9ӠS80)P6^`HDKy@=TR!(Hw?lP G(l2~?[/,Tjғ\sGL@+Nphx p$f"֐?y3$Q 'UD,]+;_Zœr1ؾ; Y|u9eh.8A7VJ+) @c{~9NSk eK.pg:+]~OT>+ nM=ɱr}ՃLYc+F--QםzڭO!ўXwbpV~DLƎ$>¼n+h'6~)\h ]ؾރ9 @MKs{dGI D2_qcf0`@|BnѶa524@|^iJ; <({;>Mt%X$uEeQ6($rnAkئE,h笽à(GXݼd*VAKrb M*oeFv lyS,FV#*#9]rq)ISW47 [U=&px840P{s=?x0]Τ8449`6]5#+4 !DGez#S](X)faf_O51K ѳ57~Iq%/n#t&c&A XbǦ CͿ{0AM29.׮>koE]-X+l[Io;Uy^I>T3f"*SO޹gq1[GȪA߅;BZZ=eH. ]@PLpQxɸSo#('Z* ǬapC1Uw3I;{NtBD`az(2@cj܂L` 6GМYXV}sO[Ǒˇi{B{y G8VktA=vWLj\Ձ3/p(SZl۴:j." JAfMf%[9I]8t+73bk+]e ;{ \$+?]@a"QTbS ʤ_wW{vm&]K[)[\UX!DLݧug!٤L lƛ x_ ?ã%uq[Oc A]K*)a5}Ǟ@0xB-b|A!/.xeq ^睛ɴA8(#ԞDw{3RIz.GQK| o E`JŨ ³j8vEwC\,wWh*ViQoX)#o|@4T;6}dP1Әs_C ^i»ahm`tIĝ~rE q} M$SDS嫼(.d4+QB"0BHLا``gf2hwXYv7pFwP8[s3Gtt#_f)ț.\0$oeȅ4)𛙀=I&āL? Y>y%ޘKi؏\º[O)]$ᖵ2;|%\bd[Qy݃?(mlCQ˛R5wB/`:A۩OG{2-q0~@ۮ̑ ySC)[[VtUDcQ_?fX!u0<+l k$t=CY=&  ;IP+E[bfwS즣6Ҏ]ds1ɸ9jT>[jau]PH.;rqHB=w.5wC#K aG+z4kQegd91E 6|s쮚|hzo1=kD7'%z[BoBJwϲhSQjIr#-Ҹ.Z@^#?;GB ]\1mihJPA։ܮ_ol<00t4yOrqprz2 #`R6oAk-f.<5 jkǽ', /ԜK/E GG+ZٹիyҎiE\J.@[XnS'idVϘc݁gŐViQB ׸ӶYtߘ D x<.rRU{]Up*lB5D], @6>k~tJ߹Eaf!y_ZZ@=waGU7RR8R&qHJWbyCJZoܹôxƂ1ӌ>@HAA^,=pCy3.E4 ZDMߥa(m*.S͸8|/fns-yf9ԎiIʸnK0O] or;$b'\入>/ĕm>QI0ދW7AzrC_:){)!,N NrW =keH2y3~7&qT̮rCo)Y]ep!i˟ԫX jZ2¦_,#?v=M;|ը BG' U >j,_ӓL"xx;ǠmUYZ>8p.ɋЇ69O6.n@wcɠd Q#䷁79x}I>QbqB62" !16BV"%4tj5 s)8xiU, Mu\e>MHܩUIǂsym ,D 4ٰ{"~^m9i1y=ҌY|ZvD*|U]Qytq$8qL8U@-:EX|b(볃`h-WGCDN]_Se!SG.Ayb5c5jB- gANnS#TjwWVVn>a~%$_Ζ ŧ#$HvjEg2AT*~SN^ G03xwh'P+r8oDU4ui.;y -e4si@hףx>G?jAO2gɝscs,Ģu2%6:>nWQ{1 5`f5EtZ 4afvg-0np"aa+9 T 2H O?bs5? usyWvuɮd I`tz4a 5)~EEoRZ0CCSJ^NQ[>0,*atYdҫWė, i%Ȣ!a ?tw3X۫M}<wSS?=0xC}K*tvaBdFHO + [Gi4uL YPk; ViuQ䃢m$8^dURNݷo!"xTgTC1@\Z!7Z\ъhuO4g{*`s ;^SdyXo1-nUg' S) GcW=Cq^~Dό;k5`Ft*01,6 j[:qe\#_ ї*a(qdF>'| 'S^3Zeܸ-F'#b}|ͦC W4jm'u@R@E& &`s,De;/><ߋ㐸g߄X)%^$& T|r>F,씾pmzxP%ulvOA%0SeA$+ QgEOszO-3^cV>dXzpA/'DAnq%XG5Ց➫hlevݢZ˭Tã2Li cY-S9~Y1>Y|g vHըNǷBUvԅgv 5\a&tYTA1 yhWX\ယayu+F.HI wSwp5:{qo.k,5.['Db"@:E&AG Z.ڗ !JQnŖds1Q\<]9K#*zz)M$ZӨߵ#6XórG53gRb_iPqw/I)*IƬ@c)σ|=c)1!mt-L@E~ _vZ6ultxevwH]jFA9ZF\t,0W j^*Ya5Ԃ:;ݔ?2_rm4SSXƿ{Pȯ9O鑴 C`C@W{HzrPi.ˎ.h]i|Ð\얺{r:X'R@v 7 Ll6b&yk7T 1| کtHw\q'Ta9򌥗q= pw,ɀ(H:S!"X`˘4xܙbMz67дaWsG_L ʳ#uBҨS)+ GdjL|F䵴Ls}V%AriLmjv}*f0@ ] 9*&~Ż~%*_վRI-5y Eyӛ>)Bc*  .B0dmdž͜rߐvROUӂդۗ" gm&iBߟ,?[gBI?=ىi\l^Hex HgP(*lNnƵR# ;q1J_b GLrSCᏀ-V1م-:՗`o{y `8F/OZk.mFbNqaʊ6syj'^QXf[7z^_8 :^Na #áhy^M/C]M [ ~EAX]8\U!  S9UA^P~H6g)ЍsypףP˥H[B ![>ƍf :Л۱Ö 첍flE*pmE51{ \8.Z?QޏYx^Li|WչbϪqE#2_WэpH0TF叽\7f$<3$ To$ iR7Z,9=:>(,Jp9OGlF<8|D]^H맶T]$c/ \"g Y,UkQgZ`{"'Ws%3H:icCc o}P-m1F yɂgAH39g,Ka`W߰d8^ ɨFl5$-CѶEZuWv(+DR#&1u lZ5Uy=v̗3PM~ܾ-*XRL.KrK6iߤANAE/|>mL_t>g-5!8Vu Hz:QwVT75_('auN͟DsQpZoW*yzϥkJBvSH<4[,|Z Cv~MtU*5+\):iB= bV2pz<+h. dbe\y0 잻tV /\6 IH8Xw~UDold mn)E7ii"Љ%±_G%X_k(͈}]&(l_ )dJtǥ2VJ4E*Hes1]ǯcܾC%5eVPFtӤ)qM$R%:lGۆbۂE10p)so-6[9qk+;ud%>S$-THՠwŇSvJDbc#R틂81edo'q?w ,gS&E U4P%$>md)E~'L.b܃8q7:_#tt;OU*a*e lj%*$l_4*qW<  я-k-/'wa!o>OF{HUc:WcNTh 9?y" ˠ=Wu=6FDEbP^Φh<3Cײ22|apuijF@yN*HJ_A#E.k:U@+dܘISrjBiXޓ3OC+'^:xA%,-}(}!8ÝIEl Ƕ ͡qתm݀AYk*dɑe`G;1hb ./";h NIK ɤll֍gwu[/߇8zCi{'_-]pI$iNQ2$P;/O"񭨫YnnT#X{h~>IOM*nr^d^N[X!ޢI8ALEF,O 4+t MONL&~%+PtWȎbLs5gϲ`Q e@Y>1gS< Oʬ)Oҡ҃5/+6&Y1H>:U0ul˘i.&k^5t 5ĶJ3#~xvL,CyG{]m GLd+kH:WDgh3?KۮSe!D%E#s4If)?kxY?oX9?#6$e "7)s:s&suj 4XNZ&o/ ;0t r e%?ˑ0E5QilՕ 祠mB"\[yf7øHhRH,s`霻/t_26\StJfǍzE*Q*e4[{c<܄I<ȑzrNٟXNaC`c ;'#VenN 00RA 4?,!h&fcЂ΃'DoȀoIU.,qhZy[o 59ʑupŠ'm@J|{W  jWiiZ^jN@bQ/r0oE۰bvN`ڟ\7[ZyK{нf}ůw5 MF pvD7ڿ|YP-a;$ģާιIlT[`&Y f È  AdwFO!<$HqJŲ{Ś㄀֜9R~ qmm}[l&bxc|^x{+5P\l$i_%I 1ł-SDѼ@HI^IebeCߡb_I\Z!VB6i5vm$: TE[ yAp%E'rFa!FFSkn̹!x)Il5 ӛmKRQXQP^SfP5)xGEIK # %XD*F6ɲ$ZiUoOVpZ f>źyla("=;sAIAlL^њS6$ϕPS" ވs 9C*i x9$,#)UT_]t84Yg4y]F1b9X웶~L):>x<?L+^*zOfsH3gc5Y~!7xglfUK^/ E)qR|+4T\6 V!w}N-]\W<7iN㘯%suCc(vc*H!Vg&?;nc!`/x0W;"2A=~TE`=:-&ȏNe{¾f(1!sǨdV+3~yUo{rUH-Q"F>טM UL1c7ٛIڔ^{$rTT!\t{zYxEWH\oLu 73֧P'O]_DW-X{TJwÇ6g:x-fA I~˟!.ͻn ota:gGgCOZ`s _ۖl).f}ANR_m'x/ G"TA g(UutȐ #Ks >AVu1Wa*RL u45K m}uԴ*pPTM<]S^Pk7<`(βzDJ{ q֜򡆡{m̤{P7;Rއq2g9_X^s;s NRTng=pǼhW  vz/ށIAUxoXk!{:<љSn5Srϥ#?V{|0Pc;]C *65cݗGDmi<2CE)7CjA2xS!/ "mOget"p5SѲāuhY̮&$#TZ~4v/-~Rf]Fb3W(~]ʉ&rIy $ߴ]/?c3Epb`{*n0 rߛh!7 v2p9N@7tNWB'.wR℩q>kA=xhj1h? IQ 9[%mW yIJdw:KhHI&i<뽩zXCwt)- pHh\TdΟ| [T<%׶|{Gip*\29ApƜcTF9V}/>| P-qT5*F7[0HB`GX㧗izZ-p:2nZDM *ԉ1UҶUDN#G$͇ٟ9b%+"Q]zhI<E*޻-Wq~ ]RA`8k#^{ v0Sw.~qš^jiٸ\Vro,,7W>(wJ4('~-Sל0 rRm@ q?ʕ Ȗo^:9-^R TX5Lqt0&6 4'V̷PCx0Fxq24ۓ0qnOB[8| 멝, =gƒbI4W:LX|,W{d6( HGLS T9sSᆬD0pPzІ^QQCg{ϚQ_9ǥ"?!|Wگ6 PEܮ p9;A.~Ez:Ԙ! }{uA`C䊧 YWKZT̳FZo@ߵdϢ:+aPE=e8yL .+[iv-E@'HG.[Oڃ7V=$nUන{)navw63* 9yyQM߹}ٸk[%c0N "[/+i Ӻ4v`:@AA%fJ1Ҽ4'Q*`Pū}q= F 9yق~ bB>P<`]'֘Ô0z9WY9}Lվ0yea"@@}whrzFK*R*vj"0R>>y6Ciբ#ޟ8A-Zə]DLgP9Ӳ's}~@7hl$hu_zdƥj`n& KP_HTp(#(r|A>'ĘQAoܸqReWpwǨʼz=xCd?N_B_ w)ʂ37s/؍-Hq_`Z79:Ӓ0I9:aNլsY=!2Ps26(4e[H+ʁ4D>'=B7(pak!hPeeYHJm/Ze~5agz8Я.xJ^N"{yT땲;&Nŷm*DZ1J~mUиԎ1v<7XZ)S"/"DNB﹠I^lr8uv(]B/92S駒_ƢiP_c /?a ,;r]w6*_Ki|N6R]*:/#P#'"& b@83Un s7dlWF/ɓUP!Ic3f(Ԓ9FI5=#{nW -.~_T,rdtU Ugdo|-AlgoI# YԒN L/Z_̪yvPc V⹪XZdx#;!lP? nL#i6]c'"+b++7]|O&0NtE.NZI@P[wf` +7 [/#ʪŷJ|j1%ZzN =.Oz$k TO.{mԁ;=E0  M>beLr>yp%w<:q 5LfSm!e#?౺~J:VPwu#|1$(m8ȱ U'ŠT}]Lx̎D?@LΦC>'pDNv42oYZ~]s}ɛ>q6$+NAEb~屡)^5ā0ՔG;sЖ?@G,= 4ޕ W+.4Ý! @-(H[+2IoRvvg%H!K QR(Gr "_e,k: =s.bhp{B_^q3lzҎ%F(W"7q)2B;;Mŋ}m_NciQ^oNylɠjĦwKuU2=\@DySF^9 2ȭZWbf0~r-#nWP|xzPYn㘍2Ġ^X)x#\> e`UΩEvSzg=b< xAy{(4QǶef$ XN+`k#Ww9mBk\# 1W; )S7@` C]%L'KئK45Uyܴ7)X'EqgA E/yܰslЦf&z-knd "XgY%1J%p?-N# u_ 9i#`:]3:VKɪ/#vH>cx, Վ/@nfBz (A6? !? *b,1Otտ.\:I@&DPkԿ?V1oIaMisl#hm4W!GΒa49t'ڪk%E%P3O_|}VQ%b4N%ƿc*ӄ1F IRxL Cԗ%^zy@)1ZmD2.3GUVėĎx脁Sh '6vij9ʀ3e'%\HU4zMn>eGv(hu]U⒀۹D[d (*xtCe(iT0fJw6rK%Q(EaflӁ1|VpՅ/a蠻P`#Ž;,h *>aoj{tfMm.) StPքׁDuڸ̞>L{6^Bf>OS#ƾ{V}oZG52 "s:*#QO}Byhx )V5F,CTbZ6t`;ōIWbV"2x4(=*>XQ)ge_"U #% ޓ+X)hA:iWFI0T{a2K*H_ =X:znRlhQPo,i(^Ƴe/6x&-~)C@dXccOwGföQztdFY/qa3)]Iϓ !iQտM*b_N&M/E}8D4ڜIHPWG,e4EZeVE!2ikIDd8~A3IAlL wfu۟Ȅﻅ& XOt"Dz@SPoGm'8)js<ԣ9+Q }x<ǵi`L ⣺|.PbP1aHJ` Sp4T"C2oW`F%T m&M絊 xcE$%0K1Hg4׊3.- 8=d߾- Wj/6UXڤ@%6!zQg6P@=n%Mg]j#vrpÝ%AmW-&ll]Z~zm Ե1HX9ϲvjSnn^Y@h` Rd#oq~X+h$Q[2>ғQSQ1ǸrCtrۛa3KKM՟TZb'5p4&ޖBn:,bt|$"; NV2<0IqF+>|E[ rwVa(^yI+I=B]KL-ƻ@9&$+{yIIL}#QqVҶCbs*HVpzi?^, !¸lC'8~8-+Ӱl'mF<mBcJ ^Q" Hm|7?¸.[k ?2Gb4ǎ0` FsZn:3}[S+9U~0x w+/2qo dNIA_X*gRG5+,gKDV7C/T-*@^?Cr}okRlVXzF5Yf96H| %rֲ@ɨeXk풎&dRB/?j,^{gyژ3rДV(WLڠqTpG+L%üVvk#Vv <|6"mN|ڇԶB/]\յr`=&*d`M˾nߥ}zQ16=^ټeob,U?TzcP\u=(JY)O_eQ՗|?R*(זJELr+4(mW.Abƣy>1Wl2y@}ijb\c_VW]軫NVXTmh"q;NLohKvpĿFaLe\i0$dIIfvvpW":[,!Q \ I+#o]k)1oOͅF,RbeHw~jgPzg2tN[7f᪢Ra i g%^W^PGnӄc(]N%2RdAMQ#o^JړΑHṽFTj@; Zo }0*p{`~BV Jn8->>$Ĺqj/åֻH6ҝC[m 6__^61~a'88AMK =ZG߂zpErp?dfߐ^*ow X b 4KwBJpE rVSuCfT&v }Ϙµ!r\ q' 68~Y T/_L)BtD ['WpgvX}93[=]l0$u~5+@H1ʘ%t(IgX #AGc7JQt'rK0 7CquLk5j='a蜬5J΀ZR/'fi{?%(2r <6RhE8{UčM%:tQr q\S\m6\AA<h$9ՌF?^z'ތ^jG^t8QAH[Ʋv RX?Vj~5mk]"|␤p2ͱk?%l7qM?]TrgC020Lpam:NAkMД6YӵNt&P7a2cLK;עRWnMʎrҠ4 cdw+@/<}sD 2f ;VH:X*I/|u0BQŘf1C#[/0g.86P$Kaڀ}l&l˃D0iU.©WV(b.IH@ :K5fFƕF=&d{䦗aA|j$sg# xq*%_?O?@P(hSU@˦Z2isH&#fA@/e1;޶z 9ҚN,m8(`سhKQ@(5N-ؚkǝBƉ|""H[Kt.˝'vJb*N$=bUx|2j/H 8l%0¦I@zy`gpFWdN(eNf~iO0_)/8pǻX L uUѰl?W!dM%bìp-hwԼn|W JztR>Md39H:c m-̺U+7W`TV e_CM ص\=f3`o:*H{ H8 Λ)aq0N- Ԩ6v{k(/ d#sb%He*YP2lR5:q07S^րRzȧ?בS*h,i-#(O<y015smerEf"K(owyO}CrZG׌aZr%)viݝ1;IX"W"-\4'';R5GAb LYr90>թTڡ13mrHcPy.TY+x sV ,781wNj覜fI$̰X)K *1A|HK&y0{$nѪjSG yɥD!xSvgn ROb;؉ؿYP$3>[*i@N>D,$ݱzU$p*4uv5~t&D<\˞eCkha(;d^A>_ :8^-RQ Th2ZT')z;:Pu|}nyf]PŖ㾝)&암jU: )Xn8ΐ_,7+I@Po D`{k^4wE)o1ŁRIRVVf$(w0ΣTfr_/g4cy`^Q\.^mp:Wׅ %Ϋ#q,ׂPFX}]nr 1=(xy}23r8LQLed;a7vDVm[}+^,d|'KEѣ뫖d5?ʲn`^Y3h.u 㐗2w7lFi1Y8Ig/j~E%:VE$~fd C%=bނDff\r9@#Ot2yϷ| dy{흍J8Ĥ`hإlNnőu9MT&^Ҕ6g@Opp+}Dzhy)5 ')^#I' L- w^RQw|>Ti"Gs.v8Wպ eu.eiK?@#k?U D.%y̦aUV=J[*IpBȡ, J}xb@vZ9OB:qgϿ亄q~7 T}b#ZQv3(c!di\p Vc8wJ2ͼhC8_q]@sZO} i]9 ~9B/Qr޵ߦL9:V3tb: Tim uu/Er&3:U=}\3K?u'6lMR}n~s#T&^kv-qF,Bx}zȮj^G}F7=nVRoxDN weAQE/QŶr\[:LeU02?nZZdy; ExrݟJΐ dDp囇0n^N(n'N؜\?ZRhVِdYw %ֶ79$+`gat|nMy *dq0!._G />% z(N\n' 2~>-N\Y5UHׁUG4?'1_84j_[w5AC#Ќ9s 9D2VC?}/b: Q-{\8mݰѝ&xhu5WA a%m~BZ s󃡳E6M/;: Ʃ-`(vG@(mOr34eV IP@CtuV OG'.*{ah!fa]!EBzqj;?sZG(0;XK dE @P:4i%l$1r|?t Ic~/Z1Yv&msS^D-f:Q ]'48Q5ly1&O.BӹwBR#B0P˸'B>\dNR& Ȗ3qy}(u ͂un@A!⑀]!_#bߊ$9 &JXsq|9NJ@4,`3We ˍm$pØdgz A^Q|(n>e|a,wDuP z\ٗ5&BSy 6?60 𕙥>z]s!x|G#vR$Q?q+vEmW7nKn0N ğ;oĪ`Vh+ʙ5`VcN>0^I BƇ,5FrݹϭTAB?;T%OFƩ) C{RZ~5ۖ |pZ.nG3](X0-I rdqBBh+8Cq];(sīPgL~ %3'^z`sYtI/"M.I,5-_ptWK#z hYqF06Sf #|gS$π7Zz$AaqcH$s| A6oI5,Iݚ8ް/%pvP1H#U0\ gb|0'[rTjU}ҋm-ktzp+=lЖC?5m';+/| n-00/|?&|ґvm2V.)>Ҹݷ)(PtNwaSXw?\=N}~oꡤu^%VRdyn'N}牌6;#I@܇Hy9A Aw-:@t[;vY.U_DN&Ěf!7YZZ412[6eHHDHn\clRk0!FA|4"g)'%/n b5n:s.[lor%n+`$+%Xd3oBT[}rjWQTy0ּ͑|2̚^xXXcUə){fs |=76t;Û (²Q9B,fAEs3O3\kKV&m}wtms\GS jN[P#_ ) $MM< 硁/:tvWH6:o LuPȅ[ P075\R0)T T_],"B9#qW dU[$CI8j_չN2L]|.-ac鎆޲fYc/7ۖKУdtz.*fM[}Hxx$,ıܴ~'rP2$F[j-W|z@prI= d@1ab8׳aόMQKca.]OC,Y>!f[  M^&HQ?u5: ߆+N#/|4S_AsieAozĕAvIAlLHKRmaʟ|a9E#FmTϨ^E̶v5MbQIhI$ $x4Hl*&8\\;YcC!dL@1om}O/Mqn@z]ѱj\aNJNI"i#I2&nQeË\w1R0(#YYt_D|'c2_5W{FK= 91F +A;!?F# xgY^2FhpFDAɿM!Vh gQ]/ bRJT oAf\֑UbHlyF-^bp P'`"M~y4ul}PˀU 0Q桎E6ac Pb Νq52:Jb] $;<}7vUe,jĺ2,7yd:k u3,\f"D9i9u=ǟSlN9.N"#w]/[2.&ń8x-t"W0% ,Jd}:o>%ح2gEm.]N|~ЀG5+Cmvqی)+̾xp5>L?p*:6,X9ΪMhvxrDw{x֯x߄I~! mkl:i(+D7$2:`ş|6Z;KW7nq&INBb_ p1iy:x=C g7eUU ڝ03>O8 >M0" /QAjՉV9<d.Cݜ{^A$@dzҺgC9@ͩL[Op>_G/fِ3T=lkt`@omK3+ov (A"b.Dww5MzYRē9DXd+$hMyug7{ZIi<fBxj-nqaVK ]gfDz{]\DZVI Ww1vJijISRGٹmjtoDP.t`L: W +`LȫlRљ!a~ WkXWZ #;@lMtأྙR틟.=]]P^?]F֠ˊMpW俁`%ݲX 8>VO}O=a6gUڐ:˾[eО K Wߦo,Gw2}q65)zmªWzL{MgֵL yoUBEs9%El{aag쀞,mEAt [MȀP'cȍqL98Ѕs9=f.1d< VK[]:2 tN[ᩌ&ir+NSWKQ_#LVhT秋D䍈 !3$;7γTNEiʸS `SEB;C*$Ga5H݊JPZmqt|oEe,A0I򧼑"vv7_ܼi`[C;ОXewi59/.HH B/qQtQ#LOyRZqu܊0 ߲\RdY< v@QwE6gBNBq/ꝃe%1dpE8mRvՀe[F a3ƽxRuTyR*c2ddQ-LFٓi`BK8M-)[擳QGzĹ1Yq#92cXa\!y1X$^y<(uX B:ǔ)#/=ؠI״;˶>Hˡf;+s%*K0 ;JoCDV Ŋ}ӡf0KP t-#&]e%9El@vF8fk׹UINz&N缒lӑ) erjK7C-Uˆ%,M4[:(A@HtaU4)Dz25樠Y1:㩣\GOaR*g; rXm%/ ]B;6+ iL֢.ѩ/_o?ͩ+` ( \_R4U xdU8د?݄Cno=xʉf]eaRtZ_6Z{I] ǑFO9Q#LaH<2%(1c'j5X(A7)`u^Ӯaڂ;^-uIMDGv=$ƨ8pY({[pϵ%l }h%S>x3p6Xta-/ ʑF+G+]_Fk=چĒ0+ Y->%/%O#.u 7hK2ހC,; DFJJ!X0iQ\J;nL_;~R_yYt$oj,Fn@^h 9I;HofFWZQ#@]D+8T_JDp),Z90r!WPf=h cb[.Y|'\';NoZ+}N'ʻ+Kя=5=&N0ZIr2rv<A wS'l Cl s2*w} s3Ʉw MTM\l{uZ' hh)_Oȼ\\SVzmB$'Y=ӿ'1z e0z3K^xEwjEE;GKz0?.8\\ZcOXp|kkM^MY|MS i(@ rȯ(8sb\NX/~#}DdcߴGX5ed@3A/YY2W8b9B&B]תj_F-imBcTNȣ ĔBZ~!}Mi`[y5 'J5!hQ34>ƩQ'YСyeJc\xr?P<zWlƑ)cԈdpp]b/1YQPH˚s tvlb4f.VX]W@`(\<ڇ s:i󰖡ْ]YJyvҞ(4bO n$B\}ağ Ƞ_I6dN=m=Fֵ7jʗZ4sޘ-tZr5{/z)ڵdqU|d^Zi\;U>k([Z!zeBe x7[`^ϙ91֣N+^GOSPg @j4tle`GH" ir{fzU>#*.#bnpLzgeXjr5@ݵvj٬%z[c{ ,AE-g@\uHOٍIJӶ7]U?Mlc,4J$-BDH9ONȂ@V ?y/P#~UqCw5Oumn׮W)!w#!v< \e㻱6=%  iEC1q']aErJ"Z o`|]nI.e Q\[@GL@nE(hu{CMJ}aÐLsҧS*nXw~sh0Srsȅp3S:fr_v6זvᬅuFn9ˡ݃dUh`>y4u^2v$'O4-] ǥh~\5cBZxg)+3Msy0=q?φ\nt3smXf:KIOwcS?XXhc6췬#֮̕'ZWͺbyE-[b܉@v|X@!ʼnaFg^{ꓤnao՛ة)vRBTY ٛ3T~c6ga=5 Ku!rFTjWh)2f4L&(ڭ8IcAS||ቂptU/l,0]%XKX όj{[1YBBp'mc?[[iRoh F^'0c3.uCl!,ЯP[`j9:> ?9)2 $hsn+s+VޭDЖwaX . wn@Ҿu %,2J ;*f+iO`99D̎:Š5폰EGl, ` 2)_0ޤ*@N{d>m@ϧ\ ~Aq |u1Etk!( qӯ'zW$(>R;m[P_Kmӝe@i:sw$?'Z]pw!RvV7,gu?QkuLzId8UN{-qTdCG{ NM oqp4U,6RAIAlL xp2ij'GVG&y)B/]$` 9ߙz- [}$6awV6XrZU۰L=#4ƊRjZJ>EQg]#˝|MUbYHe^bVg{L'⨚(=`^*|=51 {+)eV/ecJ!,Mk{ǜ=;Gmfҍ웰nRq`zODs+SN]h d.w΀ѲH"ŇSi:*<ߴ+\eVYʇ(.al%A@B %'D3_kE . A2R5hD>e61Ts :QU*MlI>E3`~h[u|{7>R'蚶8:!x trG\4k_=}#I_L C7 `j?ю@KRzD1 ˊ2ޥ06-"(%*䢷+sulK.ACtKJg@Y|d~wأpت}&n?eѾF)Dk-z#)$Oj I 3I|1՚0#$AI1ZAfTN{ dV'ӫA`9%ĩ*=0pA 7gJȶ"{3Ad11AHNޜdKzv۞~}9q a 2 jA{U!ZHzGZ(UÌYv r #Q#ѳWiTvB)8eݓ9sS68G(,:W)X8zl؅βпS ?>|VL}ȰkGX˺.UmMF5`?i%JoxֲfD? h|XE߀c81;D1 l  Ɖ1sϠ#~7L+}TiR.xxY88sYiFvKyeL9.9)YKɎ>sb~ӿ;%Yyb,i`|ڤDz+q#ӔP&kkTaК+-t{vmc /X>b}PFg0^["kɬ ea7;f &kHO޾.321V1zeI0N}]˲\(\T^q\8'{|C¢6Ih0j?gW ]vnOSȃpSN>g,32uHvS8u^6beSj )rrT=Xd0gnLO&fqhg{;\OqfA yAB#V ɫtoRx=xt^.z5;*N v} y'#g-]:&'(^e é:8z!*\{T؃0?fL-͉ȯA!>%Row$Nb&o~rMe۳.A_b+v h /#Ńxp 9>HL]~K= У=}dvG$3yh 2Ej`aq f?1Lvh3YnёVAUD =祈e?TU] h]BzdaaH αE2΃k♗VCHF\urCd|a>7ZB&^JdlUoP\^E sAҝ̯nA'h vTC!_?OtYCԣÙ$lLff?!zuӻgV"gc4ܲ`,Q`lݧoŚMZ7Lj.:$:]hsVToϬbiV̀:?uJϡSCG\lgVYMލ#p,pPh3c6!vAa7|4'6 -?֗[UTlhcj]b[UyaWfX,LLش' kϯ wa/tz+ImШʇQjz]8k.vř!gvՔG ExN%pv- WEYRCX&k n"Fzs=zWC"xȳ|!xN8#Gv qtT0w=Q@)*E>_/Rc$?7c&W]fjP(vLt XkbP/pbmHS&14|mU3&,-ӱ9ٰwXn܇b!ٚN -j.SݎXOޠWhlH'i0.cWEqp5m%!W?p^~O<^9$wzH(|K=7mp}N`cVo_/t5Tr-uLUY~ߵ+2;0R%#{r]֬](bOǦ V7r t*,)NEЎc3|bN㳾Ћ0 ,IIn1BmTKL5ﯲ.{6֛!'/f4,S!>r!| s+9CEu?Qׅ^IE0oխ+t=Q^Y^Ou\ ӝp^mSB%3юN EW%N_?HQԻ)n3з8ʳ *)GC#n q,j9X( {\/1-!,ܠ%ߢNH eױ-j# z-&A'3͛q?1h?MߜOR :M#hgpyS2F] yKwEB&L_`/L!dhϴT!# 0ܜe%֊x^  oHfۧD['m,*a  s!ika,ɭȇgqF yiX6\8Pb$ʲ!_7BB8T𴿼9Ի6ZNxs^>CbC|_',dPk$+Qc1 }x:~'']KDOru hpQG(6,5~]I=%q~$pIIH:sl*L/ X,D5QU`;g#_c'UP9$O WL_qLvXCIbO>|BRaaH#p"t RBИjL-\x2,o#5%,Sn4%uA8oZ hdWjØ.?,Q'R!e R(H*! Țz/d0 &K2w!D-񚥭FKh3L}tt8:u5hl= 0hBעG~P(~bJY&`8R>)7d@!1USӬOĭp1T̙%Ѫis,;ϊ8N]6%ц=+igaE(/{H*Xp:?hςz Х10'hN@#;N.x9TVyv W^RI>J,8Xzt4)ďiw3}fΟ-9DhJ!–Bukf^v(ߪ)eK~׺ r+,ʄr~6K$H\mN '߈76~E'O TF1m~Ğ?rG58xW 1C/ (>'! IK?bIL= IASjch ρJEֵpF/!#Ai D %耾 @]KR ?8=,%Zɺ존nyׂ<(Z6XhV*B풓 ͉sttý0bOT*1bZ,+>(//bBW{&A|fhyHjӹO Gf6yusF'=Mԭԁjo9=CZ$Hop2m% ?"O6T(X|L>?a.NW YOGexFAo⭾,TK ;Lmn0 ;FXj#~]~&>EҜ?<xo(H#1{a:։bFɭh^*|K<8M(f‰MM*.r=_Y?WbKenu. OfoqMN1 UW!3[AN#yggr}tDKA$r,Da'4(S1:5{--U.fwTlo¯0HIArF{a AE/^mZmojUSK[JMSSY X08確m)&hol&QB\H% fCufUFTi5*XTz>;O^i] 3hJe!X!J"*xg!}k{;Y6ic&ϒb.}hLm9s׻n>乧AgZib6ڱ:aC(<_{Ekԩ5&$s6N(XYFcoaˁ@qA_P\"<(Vj5wR- $?&C/8 5VzJa'sKVRVŵ3<4ݽ kq,pħC0*n"?@հ#;&`SmH!46u fh^䍕mkReh",F=͗bsxb2Fl^$% q41C NL dtd4~A}O hXg'4I$ƈE=KZgl>)m/П+c.7)gJij/㵘.ĩqWQ=SEalx6bt(aE)t>|Sy3BX-RΧGdd#gf' 7)`Gyݕi8w&1۱E T;SZx~*k-gx%݄f lT@$)ݳ@T2⏲D &؍Јw*K:>}xwM;L"%!L{1>M@$33?zKǍa”tN|/{Qʷ3Y1fY!$o;5U"Of;@x༠z9ItȘ 2AS}KͨSKG]{ 5gU'Dݪ1)hC2Ge5wݣG䊱gη\ӊ=IaYo$UEKje6?Ut+豼=г3d'*o+ڙ {ܑ(?Q2B) $5ρtW$SXz,h޾YyZy{ș*];`YRYM̵:$&< }$~Nլ]:qo4p&_ΔyVvG+͕B.`rd&,yGL!u*ȍ~m /+Etg-b_nnz;ȴ{`nj:eȪ[ q6_@t"(пsQ%OkX{b{o}ëtnRIAT3,xzŰLμT!˕ukH R6*.8qΣBayFǚ?'YZz#;r!AA[u_"BgFV5!7蟺PKyBjWw$,fhn"CuP-6 gW Ҩ;S3FMh2KPo'VGP|"_gK.U8eS1'Ev)#/WZx P,AϷ4W]i>l:kP})JS+zy x_e*PLAIAlLM {]xI/Tq M,}Z*ٸadꐱo&čsnʾ"`*_KaJLNi70A{\6&/@7Vđ׉(K?\ktT2ӻO _u">߲So1{q\@d i5/wS5ˌ]4t/K_/bJyTi%+x ++t$ rמɐ@4)9`s=!/Ǎ8VcwNOөÌn+lG:˭pWݦ'vmD_K ?R;۵6t$ԪI: `WaMQ1;@*Jѫyի g vʇe B*.+MX='LYQ#/ahbeCK:2VS_lZϖ,*޹)3dϚ%ف+"P3@VQd-Q5 diEh.d ۸;i #bA̗'ĎэBJn+Fg/+!vEaq)12`75^sHJEnd0PD Fwfu# -~ǧ4usb0MMOLaSHl1 WrMMkZB^y,-fu}9{pp2Y&bvL Hd?!*W-?|mbr2X^j=]9M&|$|T.&d>N%p}g]K՛^A{+Z2YRr[H7tU,$=%wنQ>h+B{ )%-@32ݙ>ܷ|ZLk mi8M,ʪOP-v9)A4gp, ` =L67Sk+.|9gWLl2bkG)6CK}Z 7В(I92%q?辡3Mcr/z6g ~*6]>l}XΒӤ$(GDˡqoo~ԴQ52SsѶt=g%nS4"uz^-0]A)c.1,?y |=C$LbDx$c0!"bBl7}4lysp^OGM$_=״[p )_8:`wHz&(haK#Nq}o'GEΘ[\566:"̪Ӥ<ӸLfs8Gp#1PWTR9y$I#ǵ R5  TĢރIRͪu`Sr eDI#,I@~[6>P6tܠ)*Zl52+ 4N(8C){*I 9RdլLf:z\hM-d/>uW 9=}?)͗CuPxs[^6 D^^OߔQ)Cg8>jr ;10\3gb#LQdmf̎% '_V"bB- kƔ)4YJ K&{Y6@%aljR& @h|HLwGgDεlB,Q ']~c4oXۄ$uij( JRZ'_W Sd!I?W783ٛ!mZZ׸!صE^rğGWngpnيQVƼ 8O<бwp̴2JU+I(IK @)|4W:~`1 x'%]fUW Y>amШb4G' H.8 BIةD rFK~ (yЦ0؋ XUskbT3gU5䖹ga("1@XmW-@4Mx h]`QO'* sꋐMe$MmWQ+8IE`f&c@w^ֿlteS"Ь.Ml5* z>:JYmpUmr2I@Ģ=TD'wؘ(z+O=ɫ4r!3NReHz/tDdKNm|ï!NrZ%"&- {p~NVtɖAq0oC6|Ucv9ōaMYHέyp<*HTol'0n q܊GarvHR^,Ȉ7dgnQ@@8.[}kjhdzM@བ-wҗ>[Hy *`^ Vp'\v$hČy (w";f2sDե^g1Wy|7ed3,GIڕAWp8~̭-"Tmu.v*;&ZȞ-CTv%>t>ŏ~S .>:U@z*>T!5hݧ=%`nxWuMlSR<2wv2K+M5|6Os^$\yӦK02`Oc99s'[ى'zz7)z2œ;6 Zkn$6s*x<,UO -ou|$6Ni/=A; cwfFQMbhHSw0S AXڍd=p%$L$͇qҷ6 Gˣx6')w฿ܩb/ӊ TC6]s@T߮[GUB 4kf\($]Fl%z;QJmTP} xTRw;,~ p8s7d^k5$X T|.3|ia/Osiz`B IKW-;?1"j{Rlr&p ˑNg:u![nDysUp>HdG6;imYxe OY]mx}aa\7e{lTˌ\s$8Z϶ՔaiO5hiE%Lx|n열l4mqja&?@wW>9_^^DQ3t4bfSndU A?=TKQ|=˞vhw]Ztk>P bLu`8e 0G?;QxOjD*S?ݸCѿ`j >b)| ݧ;;N`ztR8sL[NGp6qMY]5YTWb o :d?plZ ʟ|oѰ0PsQ*6kt>kQ*fnGZd8.x,~AȫH(`;c5QfԽ3 VԖFRb,Q6 '#`d.^ ֡dDܯzRɂKJX9P!u c@y Wb#\t"њ‘Ai9_%H`.AUY$ eX 7T@{Ӯ6l*09a~AH:UkW1FԹ2C*f ?+<Ȳoư(0P(r;,]x]0^ wCTn]:  VȠښW\M6K51m˙Qyb NUt^.p_,H'Cvʘ#*J[ܘʛ\jm=GvD71ڸ6%ὅPOKSsza'ĎlMF_FHu3){s-k:g>Sj(8+r1oN!3GK(i&DM\/G1d//Tf8nQO4̻fuQB!MOrୄlbfډI ӎm]U}rD97 xv88;q)Hzda@ij s~,W)Gʟ:/jht %v0m)SJCKD%xVC%z&Y"3)}ݫzH3HJ1 rQ_9 5ZB,ԞLvd $zCP[ nO%^(xӒg vߦM3YH-h_nV<&gW+&@I~bR /Ne2Ĭ jWgQ[Ľz;_V\K}IAb F2oCN?~RL9JYcGL3G)%1GI# d? 䢭AH85vf_e U>6ykabk/\ے`O.Wl-$R<RS)ae*W*Cv0n/`%L;HN-Rqdgrh+f.\e6:ҼAp4gKg@QR3!$V#J_laCmRFt8@c K"^]IJm֌rOBncM[\bF[683N$&lRfW䤃N ?;j\h05B[q BnM0>PT;c-?KawA 9).P/qy> sK^̹W1cw#Ge[ud`G5cLѽIX!`wi3*T2լr=O,(l+6qE(y\-?EDez/ MeK7-ۅ` LZddUEה闒:q3õb3孎+z95T|楘Ȼی : OtԶk Q>Unm]TNMyY(ixqeVoq.QƖCts1i_HΕO>R4ZE?AAI Re0?C] ov& cB(ɚ ^MX*# )TvVhckGqls~v!F2)z- S谛bZ;[HdomAQETrP 2pG"D6q" uI'x$Fs{+ ΏOYlGm͒+LBHC]Dx}ڽ.HaC"8c'o:|l\:pNAwYtY47Η,,]FS265Hix:Z^wmd&E`zоzPɽ͡>`DV-C[gΓi00篹gƁhue+\:4>rek)@9̳U/22?r?A&Ƈ'"Is: ᠘ |A:Y}2NBp"|Q%mxz8ļmۺ2uӕBa`11ʰ ͬ3;xGlm6Yٯ* K_IUڢL)51+ܻ`u zeA+WyKh0ÉC06tfZұ z  n~P~frHAs& g=/pG>'xNP1;W.ɚb `-!8'_ceYIp+jWktDը|1{G=I#iJ0&~1 狕s2,9&Wmi"`xqgL:É="?$Z?uʚ>@B VWIL+̊q3tק!}%կӌRvzl-< #a6qCѻA(wI ֵcW,+&CY'[ l jUYg5"ϸ) IhOBwgk)φ%Ďyv/":8Br(ug}'۞F-^ q08FH؇kALkurf-CR\mҪ:ZVP+a\'_E>uZ3ƩywPV^OùՋy`RmC3w9ޡ -CIb18؂t`:9#kn@鵛 /2:jc&N;$rc=fw'(;UL|b us >K[:b*־*:.zaLJ$''CbZ&NoJ.^2*vƝux%jٷ58=J9s /wYUt7җwR m|qTc[nZ6 C;m"[]{ϸ0Ճ]S푉LeGDpmԊ$r_S\:ǃ 6RϺ|?T8J+qcS|kq|mvuV`Q~tyD:c k KqWvO=Zd d[NbY 2*bUkIxPݽFsBhzK]/8" |)Mđ1AO^-f?wkHD]̧`܉.skE\`EY$IJ;b3UXHH`2B/#sT,rB]at /4,eX\p:C |?uVVrUgGjir:cg}vHhSB*X (SXف ȭ\#x:*7<āx#_!gtr;*wJ[WE?%B0<><ӧ_xeO̎*51;d%ܚbXnF``S`b.7`|Vl˲K-Ac99c[D͋9h^8iKYgnǤ[V@NPO;֊IvC_ JF+T.z\J]&Hn{\Fiǿ&e6ME8~Ch_t:͆ŐJC&B>ٰeN)٫~b`6/;S?& _)4dR;.+qv*a#GljH֩d^h`,KY${plS]d~Ұz<:bV.^øbRt:=;gPXޗbb;@! " q8 -~eB\[ c^SvB7@>褶qI1f00s,%jx(:L?>e&T;^(5t ]X)YYS1/( }齊PZ&$S%:qd_Sꫜb~(e5H-f+)S--u2ޟK' a,R!3H>|Fnh,FϚɘ?3!ugn(a9rh#MxoqBrpa;ƃ:/HF،ur1 3[u@&xU Jf6)~ l0ؗٞyE맦%J. QVQ}AG:_0]fU~ԄL)ipm|_ Ǘ?>sV قllsiN9p L;(V'N@H~=\b5n#b) 16|aHv38u[r=JD-"C9ZI1fZJ{W 3fV*uӹqkPg(Wٵ`eǹ2X".`IwM\vWEU¶k ӈF۷n*g"tQDCnPSnb䔣_0N.y"-2,V~PޢeCJߗWd$)*{S>8WQ})U9\pBsSzowR38-,S$s@uy@8 QJ"TlfIډ4o[ PKwEW6|ݧ{r2>ce6gG"Jt߾cT֥@Z)ݐ0B EXTv!SNfiN){kWw2T!\*B*DWln̰/6i2J/QM1smq}t3G6 ךɲ$(]U~ ::wLc1_"}4tĖi02Nl8[W È?eï{'~̋_ \F<)Wbnfٵ<=gC$gFHaIW)r `݀iGX!šYhbGK&b4v_kѹf؋p*,cfqaڮ:XO:j]ׄw%FC`,PZG7bU ⿑I_6Du`]D wi)eYy@ #G(|}8u5N/J,#b}酛nTp1EBGI͐Za$_jiasI}I1lC=i-s 7SXYlPG=z 9R|).ӨnՕ'~Op9t{~7Y u>7 8 a[%:t{kLt<|m8_׿'w^Ox-d^N@^WU9oi D6$T;Q}afQt ~@cԁ+,Sr+X.61z2F\MOP=Q"m57\c[5# e+N4_n9~R ?\3=ZWNzSZU 'H|9&uX/P#jX vȥn;<-|Ef֩re Ix aCҘEXy{/iv4A(݋Fd< :U?TNQ83.` Z/ڞv +Fv&lǺ_7l.5^vO?3=]Pk7jtudīvkJ e/<楅o.(^U߿*Ғ#UI?eH]{v w,G'9l#x:,ې8+Xh3¼rVKVҏM#3GOJŤPlr Y>㉱?vd,Gҵg uE4MD-ƔIa#;hE "{aiʸu1gd*!eq s#ڲm?nnHWԾ,N!yRM'ƫu6usۊ[nGarg b-%}O)b9 ٝP \h*w)yN7]76g6v ؝7 ݯjLp!_Utиoʍ~8Yn>a/݉h`lU %AԳ&`UXr <'liTKk+^ 6([;O^r\͑1j*Mfk*\^٣whh|?^Oy\onLmD 5:QUùiy+Iu~>%8ydǍFG>AIΫD4k֗myͶr?:9 \Ձ^6R zG{FfF *yuH" tVu*>]_U& q=(Ird%dx*M+ޘ 8q7}F+TZˆbб 3ST}'}4`Wnf>]jppH| ^?nɉ|'1d>T5RJai2OAm wk VIOEs`Kf~MЗ;L7;o߯W o0e`5jݗW ia֙8tcOM`*c 86'F\KW%אs&kDZZ L}u9s]ҹɏ^@PS45]< 8x1%7 "& `LOo w_U6aN{CAҼ=8ƒf0K1g+<4MUU[ab֏DBNAcj2/oΛ'gLBtܨJGarYG΃inϥT6Xo,f -9Qa W]IiC]tW:-Fz#]  '3ߌܞgM_ 8t~qH,yJmw T]MS`y;.3ut,QpͦӜZOv!tTv&WiqTMǭ;m'x3;zJWP+E=eH*b,D ^B]Gt6]æ꜄Oj;hT<_J ss٪!^h{ ȹhCk~DwJ? 6 'ݬ#\\J9;+/1*X7f@Qh 1{O kgt8$=BlǮM.dWcYڣir୍V[өʎAwuaHF{ںȄz4=Ȍl6h:JSF!CWfC\r$G~xa:SWJ&-NJM Z΁ sXL<+\lU'řisS(Pkz6\Vp*ڽ8H܁ lWCEM0N:DjkAY,zf>W;HF.B80zUģ/.0!(,z;,w1|0ퟛ5YzAM)Ä^C4]l_s% zԽn1NN \" ]CӘfH4lg+# 90-nJPyRsۅUټ[IDLkRa:*t[yvF_y~v -Ac1k]JQ5Yp1̜$n.ˣUHSi eof $g s٣ D['MJl|"]]}A=`GCܣo(EV ,^Oy^ᖐ9Cz[ݼCF90 C¨&NTpj?ƧwsOcXjǝ 43<*{!L)&s1ǺPD/_u- .}xT1#ȋ] m)/C/QJ$Acv5P&kDADIAhL d;m{Ao:$wϒ~IYq^${Yrz?<6CbE<@J{rnÁwpT yi/ PkUi-DCNMkaxG-LMfS\g7CDFXwMO!cn%L/ WvH;>IwhYlkQ|$m"] g3!X7;I󅣖c5_D-^`ƒ:EpsvנyKzB́,k5bI,LQQ4ů"jd'{W 8[ 95Gv״mrGʌKlY"K*UnBU+hܱT"-]o)yg6c3hƹwY[5R ǁ@Jǚ1% <4X9})w$FV%M<*]4Ƴr tՒMN_i3UIr3Mf‹@0zV E !'Ry@4\ djħ"?(^_b7SGdzc%ϰI\; yW99/2cc^L1xDfߣٞc{~K0GO*Ǻ|% M^G"IVѠ1`NYMrN, ?MrP#Uk}lr Il#.7B"=-Hsf^0-Wjz5We!$} ^I@dO+W;`qeB>QSώ{_^8enOv}m=2gƒn6~3d [wE 7H(YvݺpH0SߣpjX-gISy@oNkLG=ç"a+ WQF* ( .Ğ~YΜcsu&i{{WrË6rH.*̓MWthʀY){QA RuIKSF|4f8AA(b2vȱN  M畏qyz :Iwh:ߕ/6io5DzBDDg_Z^3!"v RF+ĕI05{8mEe+&l{4ϕՎS&h۵a}:Hѕո EC(4M-Bf"W1kPj7H$eծ+eQu F{R ~]h rY &znwyژ5Q]Š ??4B{N8ƴ*Q|O,q;;[,3)>黤G܌BW,b5dB}"0k^ ]i N_x1_x4>gbfzau #q- 5u\AI-X_:pqmFYGdB3C|J= *+ 3}p `bLړ<){-9yq;z ^4/9ӠKf28lwDnkswn|cM%Y]R>j^c65|QB8&-jA ߯C (TR CjA+񉐖e(~ݽW 1R{ݬaⶼ,ꁔ1$7r]XP{qd}@)Lh pg8-ľl2XVS.f"Ln =(O .m8 w F9DhEr~:N ;nX-7ӅeqBb_6 5h?X lmD#*,RB:Ct@r "fu|MϺ`yJ"5v6.e6`'l楰TH#n0 FI@ת&NԻP_/ў,pO2ޗld߻#䏱Z/MRdnTH鴰bB(#EO:Lz"4?ނ3Qsݰ)tPpm "/[ 2x1_}\C4g3ZnS฾!k:?[Sfҟ+J7k 6$%ʙLP, nҒ4Ȃ~o"̄=Y]L߿=TxQxj:bh$Nfktin93|u!L@;;゙-,h WZ-{*s//ĘT f%-=,o:WRF) ?̙ر,U= ,O!f9OpVE?qBJÛd2v~_!kMz+ .) fC}>t==6^=?xb+~;C1:M ɶ=$GL7<EwQ`@X1}/Z2&l>Y ;x|egOpZK53&ןV:;I(,?aCŶB8e*?5d_ڽe\,xF"Nؓ) hWRrBͲŕpr_~iqR^vA!NѴבIJM-u_wÐ i}SJaalX3#UvCQNtZuQw]3P#rەwht~#vN! zgfuW3?2B{znAn$_SVĬ<ڌoȹ.>SwW:`T5, KL08:\\ 1?s T\rF8hn8!M>{*giFz//nkko}VC]i7!+h@, 쾯}gK1L-vg?d p*d9>'ޢ]ŗ W^sRܬ,>Z-NpI w!Aʻ=*jYԶ+t!T'< 0Z~1ѕX dɡBeNZSr^-DT h|2h, .!#?q[rDiy[֍CJ𻫍VonـYpaXM"3LR1fn&0ضr՛i8MWƓmNwIKh<2Pl*c8S3^fྊկA;7އaɽF`tX %kn⨎A0[.4 s)&CP\g YF@@;BK5Ag}1a4'vS gզY`W ixf^B#y%+t⠛]]_TQ+ ;E[7TQwD`QOYs y ljs,./n1:OMQx.Lf93ITfr佘y d}i^6얎:2}!m&r. ?*7'N @^B7vЏԜG+L=vG =J|s7Ҽ/ɲugh044~2^0 6Ce؏yݗD5$5&21dV{`[c{2ޅ`2ch  ?0&d[L p>RQ`q)E$#6+-$Oȏ.WG]3pt LGѽN9, 0tt%#c#;i^DM'~ !f JrO5aSX(xA6mm$,k8)+apȲtngVDt~U' 6aA+2%(B-, ԝ:q}$9qiT.'vHrxf)|)IWżIh'ǿYD\1Pa5_UiW'}aXct`!CH_A)LtJ0Yh &{ӉwZP[~dcPZLi ,Z8-XQ9u){},sDtBI3(Kc#CyE&7QښH6w޴>oEjm#w~G4y'y.+zQo?\~ͥ}JUUv6U^{ OL}>E0z Ԏ!fҠtɢRF^!!X[o@(@rQyv?ě+Be1D6&rղkuH{P} v1'F0A O;pX+Oy;avA~RbJ>q:%kՉ<; ܄"oR44@Q者?L'qZ5{䘲G\e@41{nOA^%soᔾMxd'&%Kj\~q}U}-;k ~PF$۽o\٩%iLR݉E1ZV}ttħr{+kDW aekK:!ǏQcŘc]/@T9j" 8R_2xU ME$m o-*JD;ݷ#)v"^(fĽ6̓'o.2H> ʔ:dL1ZRa֟1e6¹`l'u7Hcn%٧Ƶ~&.Z#53QE5XڗǧŋƎxHtktpЌG$ ~+EF-o4X\4k)>h \D}6ev^51'4f䘚T$W=.FJlKq{dEdWb6|nLw b\< %D>mHc+$9H6'-t<^@xGz613$Liv!nO].1Vj'adl᪡萡(6}ATpK=qγ4bkڞ KS b@x A 4,콎qt->ڬU0zixDCUx "AyxqK;, Ѝg\ [Y:݅v a'W.\\˼JSmģC.ڶH(sąg_uXN7 3x Q >>̍4T6#ӣ?@'w(iIxjn'FFal53tro\NeiӒK1/\#eCQkFAbE-޵uXİRLfߩYVHL.V8*i% ͏qǚ5tq7 ⒇}~ZUod-D#bZJ(^6%*%oF*d!R=?N;?X/g#HnaB=bݑ!?EQJ;y-9DJ 82Nk2f4\'N-c]Jiojy5%YNЍ_-k \zݘctZXokml kR4B; '0 ltdm&/~=t (\`ԥqoĤVzW|4\6 I2]s_pUsl_wsU:0]}ffiT +!<}`b;#;O=Щֻ ]tT ^laR)3o$Uy:@%@F1uS)h!4d׮1.mR omJfJtoS}?i0ݾ Nxn/0Ĺ*KdLP_ً—;^, R䆅Q%dxyimQڟ?U-b$0!VG|"L<.o 'D7 I 8(#%ȣDIɩ*%Hnr^=5[m'i?_~r=n]FYXHmS`KV`Rm{e)Y2k|”%=vN';ML0`k*, @#L"憓mkeur <`S{t^d2Q ܁c TjkVY;vctş-L@"p̀/k 7KpąG›&L.>xI*|POwP*dg?ĬArX_$6j62|ѶMgjʧ`#Ϣi(wh 3rX%;c+It&' *<$Tet73SvJmߝ'rq&jl jfw&r`}eڍ[2bpA-_gF!-Ř O9/N9GnN<ДCi6\̶>g;w "1'x[ ;'Q}y}p.aMr'o>h̋ģtde1d+/a|3d0Zx$a4ufp(?N=cY_rO9]|&GYAAIAlL jkBM\K'<"`?ņL<٥- MESma)@q Zn$#8^awŬ`qvB1D[ e{'Y$din8cݬ pr1WkֻQ(֟;Q.wF 7C~ %/=%"!(@EA چ$l xd5!^."JI51wÙZ>! `Avz/j-q|C ꎬx8,M6wF0D=M9($e[(QU]r[b@lfBv"b5xˑHAP>[3gҢ%,=úH&08<] "xBJR/@ԮV@tָ"6C:&) '3";h]w6ZmW6lWKAt&VJ#&r=y1Z at$(p3$ft~Z* $Z ǐQxKCk׺Br؟,Ƹ RqDYx< JlPJ#ƺiYt] XgTC*5%$-5?vΈ{>njSn6M?84/RԶNxih^t, 66q-"ɿIoVET{Hcɕ"IX>u]= yU'֑ ҆e$7RԆYf?l`wzK)Eioi_gu$18r/[C!V'ۣENk Fovr Yj;L8W_D:!)bX:d Z>Пj9O5kW WCxUw tօ;0Ragf0_=& ?4m 8M5%[ҹdⲘz j"ꭁyt~A'W0tEqvAEJQ)3 >4N g5lr=E}44R7b U՝yQSg *aV{|`u|,AeF 15(&^84n1 A`_np1}Z 9uGTX>ja Ǿ!jƌN|M(q%,Qr W1N%  ={Fa,!#SGَ~ gΌ5ppee~xAr+Vz;K'2 įlMن?n,b,屭nQ1lTvʬ>2nWY߲(Bx\aO$Ww ,L{r2oѩg,MYOWuMzaMc+ѥef7K ʲE5\D`d]hE麬X Xm']+~*BٮW-{,X#![ϴ{k6S@6 r5*)97@xH< ?<\^e̠P,]x3v.{0#\Y~@YKT IHYP 7+ՙz}s,oYXO-j 7d'oS:m|O4J"Vyg[>/Lda9NajVtx0BrUJs@Cbʯ)MPv^"܈ؾȺӅ8 ݝH5Xq@ؼ;7-8 NZo6!|m4%%zYTPg+^aonC!8w6]Vy]u>Ptܒ Lx{ Z յ^jxMcOqjv?Y^/"^JZtϣ,]&Nhs aWCW-31\P?fȷk.| 'ue؃vl ZzKyhU.K6gR#JsvX:O#j. `kKˀ%Xkҿ"&6"IZJrQΟQd%xvPD%U2 Zbu,:\ JELA+H /C0j ʼx:l{g;#Np?\ull$I&2n? M_?OLf(!9 =ޜ$ԅK \G R6zDXYj)w0ZmhMoa%0ibs1qhlwYr?4jrfs*Ӽ6R[R*@|_TR_bI0jBQ V'َ[^Ȑ*^('] _:IAygAgk>H~A!_G "!t[-7)s1]- #&m}Bԍ>FŌ%q!Q}X(FaGS/yjO QxoSo[L)Xb<&D$ D+0U_"`bh6ףhgYH*VA*6r,c&{beE~sŔ*:%KT`,Q+˒Ȧ@Hab\G.:[u|Вյ+`2w)Ĉ[5i`Œ 0NjJxd  X=u\NJD \[s1o&͂Ђ<,p5_v=ޱ珀_fwBйO(p#Q rP=9CbDV{4*ʍ b >#A33er)ɣ`Bg$VqD\+/ߑ$准vռ75~)p‡lX'  @2dz `i/e;s i{ac MF#1 ZCT+_-JԀn 7GPfTbKO hƴǛšB$ho LoPVi`G[u-"ibbp"b'p} 0xD0y# (WLpi,}E#8|Q({ `b+Ќ8 4=gM-;=WڍNUvR>nxXrԊѪ OKCBpGMg  cu cڳz]qQ Ø>3w8ᕺ̀\߿m.6ouɝn/[ݴ U˂ϣ8Hz2[Н)[/TkImL9Y!mJ2FrWcxq7OBܮ:=*T8daPSoy:ln,G#>SF_шx<}?hi"KmEn}6wAN#OSp^H<[&"Oy#0LTli`""WLnD_}Knm`@sˊ ﴢB?@TmJ-܂BCb/B nOfw׎^4€tpY5 |DO"Y!ʻձ5a}<>BX>\eખay2e(bÐ/{C {N\u͆AzمOB;˙mA]U35ñ9ZnyOS-EǦ \lFP\fi?ȩ=p(b%꺌2*,.骄,iel(-3.ȴ g´][7@햧N.lRX/Θ24SJ_woft=hR`ER$x `JipSǖ})=l=J52E aY!}O TXTO莓Ft`ǟT~Veߵ{3A֣ܳX0_RGwKDwV8lլѴ&XWѺ}5dz{ppsNUYs k"FͷƩ]wAE/:spZKDĈ"J 0\ 4K)Fpڥ zYXkU%Oa\E*&=шIۻOD[QWv#T5VMKᔭQ C/f4ho<^UtR$U)MW$|%« nnƂT*D⾏EKk40K7N E+WD>)oϖՏqUc_͟:~C00ŴL*XLŒ>ed2o?_m]9t@('=<@(!]i.9Q ͿN;:;=yLC9iz)D4?' VV6-6/%rGTj.,rQlTZw%c;eKO eC#&3v'Ys?'guvEU'e)DiGɿ5JRέn VN5;~d_\N\1$̽ UD3O5ujV fHu2찼$Q=v{vځ^F U6 g_,i3;ahbx,/oԞ0aidQiqv5}!DBW[&Z9^ǛA@#R=ށFtC{P6g`D빸㥖&{ИH,V(޻3 Bn Kqy@8w:JLQ$fZhD8x2׍2ZǭRϿfQ?Elf';\s`+P#|0*adxAm*g$ͱ}nHg}t|Ys`@$/L6Kyy:uA@rYf9Tz*CtYZlkx)O4iB>a'1/"W|K֔ސӚ$J/ˬ'ORnm 1siKnkv/J9/4br*iŒW:ƈ;kyOvfvL<= h@1C/W6Z|4hV^U"!SM/mCG`G1WBS[}EnXiB? MӷY!(O=\Z{S7P rާC ԣfaaw)rZ*CA?Bxvr_L Q5?IuVMm:E-t9ԡxC>1D_W5 NiO8_L[X߉;qŊ[$ {y;g۬V@!"a, dnTY 80@Xxyryz|h ގ) j4ꑉ),l#|fOF]KGgc`u,FHsl=dCV&$f_ͽ7'nW5J7qƕcK${'!W-2pe]^ &x;uv]|_I®S{Sn[hNPu빹wcAإ „&dDq#-W'%Ca.-Og]_!!_~ Gw^:չ!]6׍Wɢix9lieEgPȨ؍Lw%ܺ.BcG#gCt\huT-BM1-'sh:hhb:)hn/d6"C՝b4hz*I_8\vҸuU(ב[ &P*fcr|rEݲ}GEN::G( $y`̼ Dcoߤ#G,wbez,T.HcqMG^qh4OOu޵07l2@GsluRA0> A N-ܠڗ^HrYӂev}R/\^l6팉*6B4"I:rV7#~  Hb Aޭd)X1mt&afZ# 檫 Zou/>* a+OqJl-GGRUR<Ȁl&r?F}>&0 WW\SK4&>8B25b]/x?'g??[l \ܱ MT>"y7P JT >ڹy(U0d`̭w(R 7IhoLۚA[RiəP033ZU'h T?=jθ|T|[qKuj9!:Ⱥ|*+_*Hym} er __ONf)̴װ1q\9IZ{x]4w-VD|+P._dhUd~M8 4@%=ƿ1o5A?zV7KU5_C%ASHk_ıooR>󒵖mOL]b׳Z: U8nʭ@){6 |ïÝ[^`-=ӜAȜsk}jk!gm{ڡz]v3vf6};EϷ`W%q@sxGn,f^CNBb9R9L Vc19ZQ5ÞL܇C' >Dp,'emM$=ٝ+9coչTR"QT*풵 ~mP?WMBzFL`|@ nI%OoDVWCi>x vd]! R_$d}G'ٳz쎈X͔xL.J?R<]̒j]..ZI k>Qrm7+%u:&X,Sï{aa=zdX41X$+cSԫ՟QO߷1RNtR0Vd?shH6@B"5?q%xdZ1{_zwQ^!vku% }$`5KzlǦG\?K?Jݵ^e3$sF#100,3<:`W)a0kr{,A^3!YIa7Ɠ-#C<^Љ3!(2]_x9jyh4 G*߈pK8g[._gu u}̔&NO.6DfKF,W[4F`b$ۗq _n1*#o^/!$+x?'Ҏ ɫUC~B9g]R>[HCî^%xѺ: BlwLnc7q9V.г?H?Q˾d&7qgW:"!HP*H(4nRR[!GMA]o0I:a>7cE:R hf1~UB3ԓLpktw,:B(HW.@Fb0O yXYJ b"U Ц*V~DlŞܶa vNOb2HF =4Ր75FMyٵū6VcDOBbj,vy0Lr[Ɏ$B3 8.8NڭbQ UxlK~WYЋ1(,@݁їe9LClI>SƠ3r{JC178L|hcxj-jwЎoie΂ kКExCY£!KYB@ΐ4Yf ΛlApϨ <8T}AS;#DCPuҴ%{CZtǩuhhߴNcZ4|pbKT{fȗM!UAE-V]r|u-oZC rasil2; h.gFFE2CX- Sd"0ސ/ΐ,koVk&g[jou1L8WY5(k"S擹N #ERg ͬ]b=?Zܯ%_/ 8^ lf&pM8!u׃4*plsI[(Vw|r_3V?7&-{ rR;Kjb6O*7xwr<]\pڏ\2_[^?UL>@E=~v0̵rU|&kMrQ7Y N5H9y93վZ J(HZL=ߥwE{plWsrt,-@LP C/ V2jDd88LYass7qt,SN<@ Z TxgN,L|Yxp~y 9jXx5\ipF2 Υ=675SG[KTacKɆ$f!+$@I: Z#L @6~Trrf l `LT@ˇstf$րg]ԓѓ)~8w1n?~"AZQWhP|*`{o+ yAl!Z֏ZF/"% /kT:%0bHGZt,zçX R:div0Z4va}]=SeWH qk*={I((&&%-8ƷY;=#z?VN=qZ YpBYfzoi͂{]'|ƨT\n6'"V^z-Cro&&Si="elg)X~H~l`P0X㥧>z`/1:A^5K taD S! W(~fܢ87z~BF~w/N20Gl)G@]$i:]ګ)7Qr#%}[tO'͇SGN9; xi8Mxo3F5a2foV  Gm[>h⎲WmMdX)oU 5m:ףkCuU 9dFTd4ptl?G48-YwǦn[)];R_zTM Wg?4ݤQuDZʔm=gU:kSBVš~'l1 'Pڲk _Yi`DIqIz΁?] =s#kDq|'z0BM[h#xm%`TS0K:cwU-}TLQ0S GPa2Q%[I9e5Wv҈:݅r*AW1taiRt_sU%L.J#W:A!O$]>|,6N@iI2 jWu %C662e֡t4yj=x<`&٣ 1=bmPcv1@|usx 0`:sC#Jd ~tEK3--T̍E G6YG6#xA4W4 ctnb]Z_<'׽6R%} \:q; dr"[-< &{bGJ'\?+1L.O>T%-{h6Ut0TEb""n-sҏon @[yO6GVSzo҆iS@8n'B~$vmm".'?>d56 צ;VZ.[jۆ¢JLWw߻i:R):]m͞ד{ͲMC.Y L^~Ц[ҫwܵ`JlO9 OSs^w`$Jf NE8Nx] .`K=w}ƧI5_#lm9uT!6B׷-]}>@AIAlL hg(S IձDjiOL@j\{BS(o˻L{GnB3 |{ ܝ̇r8u;@e vgrr|ro0:]‡%(u}%ƕ'o͙LxA{{h-Fݤ;Cl }J= Ӟ% ~%3WHu2-هł?imkxJ&![䪀sM&F=2>c(-JO%UEEF$ltƵ9nݥ A$3X|):R,@2hKM-J^^[nk{lBH?EA ;{ њ.NON:3Hq0jm&~-|⑆s).ߒϣnDMڔRF{Oqg9Œ,PW\+ +nO K^m"kLNcVq#AcmY@D3wjũavF$~D^YV?hxmh+E:?z|^ 1,7Vv:{xH Qi3!m@Vt.W먡rGkLK6[Op1cZ lj:ksY#y"KkyDũ%E^9E%9ZE= ôaXTTH aֱrmIX{Q[5wd 3oT!je%Oպ%2LQfJxU~ЁũGl~z^If+ Hp+弧1MVtleC mj=NF aL~AӁR3+B'ZsQ+nJPNXWgEv% RN3[z)۵:t\6~*sl>l)]EaaK$lj5nWbSD%Y 6?xJ6ft?uߧǚ[r0GO}6գ+fv*^Ùql ΄Y돶:@M zh3˯)В:yr+3ևEZ+Sk<: y^~J+83h@VZנ;[r9@‚L|xl| 3)ʐ^Dn=MJy>TɫH+P_@trL:piR%2cfwv (@?+| `F%i;QN<OH>>JE|zK{knSB; q}-qnyz7 ktB* *s(lxHtz HQHfݩ&WxR&C/9Q\sXjFx5n&3:x[~ItK\Rb aZuiM(kieR 5'\f0wX`dCx}I=7a_xx|gSD1Cxyz;_Ex>(7`Yenr(p 7n|G-LB!$Z4:!֫k:\޵Wȗ(Ó0Ncv $PR1_ )XxɕE.Sw%yR6d?w{a/hC;%Qݵnn$C_tթoBPK뿔-a zc%7J!_IH 1r|r(D+:5_plJ'chk(;*aN{WYS5 f^/>¬3D| 0PJHg S:oXxt1DHOYE@=>G'g TS*ig# H=E88Cڹe?q<Ժ1ٰIZ[`jw*f*al#m8/ vuЯyLo+r#(08;s DgE8lgz)F`WSZa KvBg`דlg-T3X7'$w qPҐ8odoEGL_ c|\.[}4 痃ήq?TYq] ۘR9JsݑS9oVkE[5PgVH3q5S[V['HRxNg 2PVO)GC6޾(>  /QUqs#4 n$%OU˟\Wkn!Q( G،RC|D?^5aubȠ&Zx닙~՞ZҊ_!\D|4}5J9Bz~ݰTpJ|HyNX!f~ntİʾQy-ldvģѱ 8%ۖ7snM[!mf5is<ȶqh-+}XQK[X( E[dZDRI!(Et+D3ikNC >w˫'gY4~R=c 6@PF̈́ޱs1d80AlYL4w|!]l3uP}N7AUP?a~(`!=0ښ*̵ܹFᖺ N 8ҳ`ݶ+d/[”!Ҍ rr-Ъ ~H-fTk tBtF"tI@M9gO;w]i3bb6]¿DxH gx1';_K xD=N_B #|"ADjX7ش ej*e4t3zBz4`=bV .Q؟ 5CjUQ3Mo @+(wxp1)8>~9YQ.3'W^]uYY]Y,0#DN!71M)Љmsbl[RA:~FPèh{]/t( KƖoJW@FĘ$ybddCT_㍓I w o:wl$!8іJ <+@"ފXvic+ 甊X*9<_`},ju+3.͉K,PJ':w3[YOkqEzZ^?1Vl@wG@ow( =| ['`Ԝv%OrX֘v_PՎć؏PN&h&7½ p~σd_H[TKi>S4TV)jк!;>>񋺄!lIrckvw$p(ue`iPhžU[ 1M4CјTfpCPK#CQ.ReBSk*fd* -u4zsɢ]A`0|GRLn ?s^Ou xW#Is XntnЎYR`3$Jgly0|vp놵ES (v0 L^M{iN^ ٔ,o7G2g$Dte;?= ^M`NWIvikT:OA3yk|ybKܘ<(>+ ,j+?JLrM`B;&Tjjbs;UVtVLXq=Si+}_cO0jGua./qY|.0{\(>NK$ #`gmW 0 ".w`Q=F1oO/~K,-Z>Z A{ϼt*ѠKH+?P;x:TP ҔwB`xg%at0Ip+6{X y7奇N{$! 2\ĸ׉PЈﷆ#\{H*gptCi>H2+udH$h@ |b'izrcQ1 to]sNj>ljJ8hqF>UY|pe (iH2o)+:؝h hz.1iՎ7!ߊW=K0kaO1!kr53Sd+[z~tgAع(NzGFۄt>ݘ|;n m" ?vK&|^ENKWHۡĹJ dkE.k%+=;6ذ]*HӇ-c:;., L&alB^uj_k gx-ȭyźCU2SɍnbbNUZiPZ RD(D44T'YA8;DB)}SpΕ܎ ZdYUɪ|t,F"yNSI+<HX #gx %*"~xKv /NsJb~'+e(s=eFd<4y(Er#sB!Q[MuLhA0Se 0XZ!8R'U.,9M[O=XLc4Z9le@]67r8R7~uu'=g|b5>|3|8=\fyt O i)߀Ϋ%xR/64j{\x {a[yz2vjFr³x0 A۷X\A[ -P.I)M%G*s>1Blw5Z4\$@%r/[dr lQmҎG{.[MowܭOry'U+oqg*/+`5X53\"'yq.Qgcuz7l{`VFvxO$\XTEoK]q'9m{j*PA'Y3Cۊm˖+.=d(RmxO$|PXlWC` c=e)G0g޶*~t0:щn-c6Fau?X1ǦYCK-dd/4;QYJ̯zcZ! B@cA.E/pa_̬=q\o¡kx}Jڕ7>19)Kz4?]@KtD7[yvwR^[jؿ`$ gjUhk}"o=Vq{~GAtr+r?d^G&t&|j,rV]ӣx>98Y'i@m;)wo΁g3j:Ɍ8-~D .tE)Q-cMrupSͅ bJMwW%eWaQٽۺu# [i,fgYI+uQrU>9F F~U']8;ˠϓO%qB6˘wW6uڂ POO${w7K}, d y_zz_ïQ6}~I'xi(^Zbӗ[E yu?|hjxxFsh [Z22: Ɯ6,K& QT"!L>ɱF+zշi_*:#'pPqJJbvWm5Rk_&3I†e+z|BJhxLɺX NR^km=(|n _j@x63[2"J<ޖ_TlI%*`hV^0oJ=} ƲݿIӜE3ϲc~m1$[/3ևUS]n|Aiwk8[n ;/T˨zwe*yLmʪR.FFPghh@$Zv_|A=ZLivQiNGQ7 L|ӡ߽[56wo 0|RQ C {n $[]y-t >] Q4k uE4ECNus-YY`/%Rۍ!ҌܯHy=1Ka}|լ9W,:ĝ9n_LbCzr42򏂇(ObB)_sR3TCzZ#JPF._ Ȇ&b[(vQMtWySB ^V:h"f S_j{rm-ld :ax2!94L΄4So/`̀BF7^ZͣqE(i+lWG.%Øb%>'"*%p^|AL,f(i4oBp^(f ?L/ȴ|f/h^j&P/10Rϕڼq_;߆z< /Q  3*hK<Јu"3^]D,H#3fgX5ms f7z|8tlCs' bYrQ7CݪҀATv BȉA:DvQ(ib)`Smd ޭ׽29`(8HOyomʷÉGK"`q_t Dy~UɫIT4ޚf9KOjWن11Z?762jTplN̅0̜2lv_:tˏyW&]~3U7" UL 8C)Ftm|d5Ί`+6ُ h]pfRZ6z<t-i%I! ͂3y/nlj@TH0wVOiԗ0 !4My/ȎT)R{V;DmJ39r>Ig?>_^(^`>xs:OQݐ3 z$)}bea\6M,ѥ/;CUdd3->2x'6•</X8ѹ R s7{f*u~CK A-R-p:WeCV}|];Ion! L?nNM/v^.^"&j5/Vֆ;o>BX<#/"ѥ5cb~+du–ʨiL KSENϝ$/sXfOukxzbкkx-$< ؋YC&'xy8֯B":$5cGJXjZodaNS&\J'6kyjl 7'&hs;,QָtjU_r \^B3L 9 tق))R^mr׺Ʉ9^0fGb\x a벥SS%ctzx߾\[ErK$\J A?XA&L8EG>Zil3P[7WQÎģD[v4o%Yʵ'>&Tm>ӣ^viSޓC/}V($8?QC>nÙO6F4)9~K7Ɣ-37oSսx콊xb/'mIc+B^: cE2f.jNn@ {!6,o%|σ*D9%)! DZ; 気9b74-"Am<S_ &'f1 |ʚid'vXFMO:V̕|J3@#mx KP+wx,ޝ%>ReʬYY "GȂ_ml"a~&e|5a_S4P"8qږ]Z"2ߛ.ʕπP,:J7cNz)*=9D+T۞AJK_@>]]c5$ڻݫM zmɸ;6M^E@/AVBM/ȃ=Mx?BG]"^Azۻ>1Vh}@2Y'RVL9A! `c{Nm,v~WK{} !HSN:ҁL'ܪdg.۩q$Tp".;ók1Ȧ.@OD)`KTԧ$.e]#s GXq0lNR1Obe-0K1h Lhj۞L`h4LhŹTy:UVÊ׾ܞ#G.yh;\8 kЋx Jf7Ǝ1Uy*[ gBX(~Gs+V|4 *X5Yr_'ؖ |J}o50Q V:uQV}Ѡ1@}UΗB {c\CزHS¯e~9?;l-Tj)b}.PS[z# ;xI¹Rm_KvkCq)v5 n ?VMݤfz2U-Bk9#^[mZQ fu3qeE4'vRvdG#v whb؎$\.9!7M)߄%AIgqsrtBx҃ K`eD-l ڻnK;ou&ƦwoƑ Ỵ"8\uC;=Kig ֆhZn ~MTqZ+df]ZLSz.Eq5IAFipkI+6:Ѣ euR `}ѤIHFբv& MON3n!|W?eXUboz?i0| IК>O֡$fNd^UWd7`1s=}L߮/w;SEoout_Nքjh\Rsνe"m5o=JB :4ZOsdzj2z9}­:sA"BkU7~=lU,<"U!{2mO3֧Fb~ !42P`[zz$?iH]2Nk؜f2$¯ Ȣ :f%Ox+Y||y.zRrM9\Q8w UA=:2~$]! 0Y1G뺨lk?S,n#1;=ζyp\1 APfH&mc} _lM+3:flGwsRf욞r_\ߩv3n1@fr!owq)dbw`\h,w_T!PcV,QңgL[T>@)]1A7X͛>LI82\Éf~E{Fl6h \3mȞP䌳!?>_nhO\1"Cⱑ&ot ۪ @P3XJqQm44SzܕZt%Aat$ELٟN?Տ:*c uEcHse;R"Vh1Zԉ-'[j9&ն|efv`"690xT*(FEW/TL"ѩ y s/ˏy&'x.&} ;=FvweRܒq=Kxؓ5ʹz|m5$S)C3742V"cW~Dx4L>w7tQצ0S]fc6InQ-eQ'юkFw?55H0X-9wd(u8cq!WY4(On#ՍtRg$^(˩pfTQ }(q0ѐhX2˶36V$.zETF]?-2]Ni6#9jf{hab6Y0GX8GDbiC|fqUxkNo= q.=-i UB4ӆaV-^?ϲ风a1r/nӬd?h`"٘_@oɘcl6*gPTwIbjh#oVp9D=K_xOY:[r3%`zw^ cY ]K|\PjZ휜e+3{lAiS>wҎr @r̷LI$'-q)ɿfՈTgNLXႦ7r}3% 3j6z#0:/?i(ywǀ7z.V[ A*>^s[]3Ξ/:|Utf&pr_ڄ'Coc~,\MZljlU^hU>q!G1=OjE^ Sb4SI6P1;@n\SNknlG] F~I˗9LAC{s$խlq_T^awkW>(eo$h6p Y2(9*AEZ-ҡ,^?DW#W[" )4KC[E7c?j9 H|w[]1'{pԄՋa]H@H1EkznTJ!aS,Kd^ (D%xi!t\c>wmBɁ 0 TIy⼬C_ ! 82BǥI8yV ɭ zwww1p|\[s増z;Vs>)|@ptY xAjJM\ -]:Ԩ8f.thšcJՏ 8 RL,{@[}yh?kkZoTC-qJߦ.kuj=R$\Fw JF,xAJҷMxK 4ƎghȆ: ņmKcB-Շ8 i%`XddArE,CF_ v@@AE}O͟AG b8Hʹ+@pj^YW뫘L`xΈͽvu_@ʻĺVn`K=}DztE \5'h8T9 pzGqR?x5a:ck]+ q!h*(p\2㖽L uM$Q݈t-ꌂ9^ON(0LoI{j(9PFΫT ՠƆGU_ɾ=!<,n>}X-S XlPFQ 0W2s Ef?PROAN%jA怛fw{KXAZ#W )+;@-2ŕ[Ҕֆfӆ16km*}-Y3̲/H(ً: F|=zN=IhF' ѥ6@(T!G| OOP2&v44Չ%+5aQJ!|TLG zAF8bq`mjBωh&LΣm;rSM!o\5z)"{SUcGtSjFFƸPڶat2*q*mrfɘꙚ=s2h]Vw&lm`C"QLP91;*w^ɬs,:R| S55CB8hb+I iB׶![?> <Ԇ碢)F֨lJk:#uu"Muh VE)JF&bro~0:W;$SAI¦ؾ\Ko]GQ3` v2J^h :d" g'ԂcA9%tw-:^Tґm, ʞfxoL1,ph6K zjp4"rHT58תZ- tըÌ7rtRԵF"[l+хho ɭielD"$DCř޻eP0¿IYyBSͼ}(`R.'FGwr> |@;Iَ8map+@6R"\3Vñ,c~+'8yƥkwF'Why< &\2X8@`uXa`׺18. FtYljD h{s뾾 iވ?˹#3E@k^=!qC^BcGt^#M-7{ŋE-egrmTuV”ZNKL孨dC)Eon u@g|}N94Z8#3`sgHka7vYA0/odfa/Zop3ՈmK6Bþq  8pŒ FߊĘr.;\pCdA62Z;"^߱ `ݠj_602=7ĩj<,8Z&mE~P:ǫ-Φ1ΊPys%50 r)c6^A{> Oȑ mdF7?5wR*]wqrݘIEU"XCXWiFaI,hyF6f@zt-pgU<:4#F K7 Qq"G&2#P3ADJ*iJg?)ʈ{ĐwZ/<8̚c齂)ZIܡ:v'>"[suS~ﵓi{MC}WȖvSL#7^ +%϶Vv;$]aP86SAXcO6']ʛ4Yjke ƾ~pJJzDfXczt% Ņw^|AIAlL 2>{uL9˖^XrzQV~nc첀w/QR3L^bI0&f9+}Kt 6sE* =Fe5pR Bˮޭ,8!SeA( abY _uڅ-uD.Q j[_!e'\a&Iyǃ y0,0nZw-b$8֛̑lWHm$?J/ϼYi:C㣒+E~Dnw b4BS@5zUdda7'|1ԓ0WGہ[Rل q1%mi"zWtҤVvg xF*5+G~KȽRX0&uD]ּcx}pd/)%:j\RExn{h|K[ bMI8"O'? 0㗈yo2&}';WM;aڝז1X'GF =`_/1tU&RO#Kp}jeO"eQ]*~#Y̾WlqgWBfFg,N </%@87lJTV2gDf,E Q/F[sxt '8CI`-iV-[b)BKc]ObM!{gnU6ܨ@ 0amuJ?d:pd\c$4\W5W1VW޶ϼ b|UFX/\yF9%)rgqU%p[^An'0:H|ߡJp%.^9,|wPM 'A ˭W=,}BCZ%*Mjmx#yP!0U$[ٵΰEn0@̢'8yeOOQ3lqD:E+8((AH$Ƽ9,FfAqY#\^NC(>xثJarzYnO#ҝ82>=;Q^o^ Ԕو~]Gnw)>H ==&/_ϼL2֨v5"1]x?S@n (8}E毰Er@ JȺ@WT PrrYpW }bBA/upW ]ݙdI_.C`u[J=G=/dn Jk+BӪ1sd͏T;#6VA) .6ļfחyW2$90FmC1n)QcLXۥnd`he(o^<7z ݫyYHzd $>_yG= 8IJ,o%+rBY=#f 9MڭVAwɷg&wfp쏊Usz|Aba̰C9=?$d' }>_[OltݗL1w8j0C؉\f0=-G;gANv/9.QYJ$&]  B'Sze5ʗˬ.OK`]AǤ>vW6RBpJkpp3ɍ!\s]"\q 8#L'uJ駯Rװ>OndEW;|>e7J8Px̻U2}EoeV1 hE~XvOQYNgaaF ~OܰKd$ﯯ Զjm$<J\ 'x~5'ٽhg8SD2J!Li X 7c { bjqƝk]ArVg%H }H_U}z'ˬw~H$FK>pp="73 'ki)I>j:Ÿ8㕲gӱ~|f^Nl#=.s}% %3Ucc -)LAhmj|aSa&Jg1bI 5D`x//e~*xWng[CKc+L`Rf*ޒGNy!8RI\u+PT7} 5 3&&̻*t9PenRn9_wl^w&rV(=Y,R(ܠPY`^wd}lv~'B{}y}%\ESdQX[]e-7ߓ J}@ygtbyH+SUb*hf ?%OÚ.V j/Nsm7w q NEQYA~"Rz`idNϡG1Wp9okJ6h~pda{zB߽+vaREIKen{\'0y+5blPl/rSF㥣lѫ{+1!s%qHԨ HA<M 25R69̻ X#/k`!{H|~"[PY ?IHd.{_*w_Ё;b@af!_AD]9'$&5'Urnrb|GGjt{$~A0=!V3P8u;E V zNTf,ߖ~ыG/>ᤎ=GdkTh'빢g ^zzh_D!OQsgҖlnڧ$Ӭ֜A>#h@bbtOn6 GbP~ѭ(Df!IX Rmi:+!S4 OCq宧}B妓?T%;J96U&оp=Zr zQz!7iJդCPWIUCהwK0GU-W.j`/milīebԞ Zm%m z\0plG =ӾðX; ^'TUۮVɺn %cd"H=xC~kDױWؕ-s TZ}G&BS K:th_= "JMvN'23IH҄喛\dɥ,#9)Pa%Fjˏlt7RᘗpP[w>3rtݬp"L5zړ[gauw~< H~\ //N$cσ;o&^ah,|{W+PiwNb,5 ' $rE#psGØY<pD{z"eItD5jClM`$0.G}[ZqW$J[[+sFϴWCɆ@'2vt6niPw6ѩP Es.hy ӥEE L;[ 1b! _BpMEbKa\XnT2bTK|@~Qÿ|,W߹hJ׭ Cހ浣{=$ Q] C_+2Znl-w Mۼ0<4Q7 6];3fW!@l|̨fK]#d ؏׭,V_X,\ u ZtS /q_VM0 ̯(y7XgQT,3LlЬ|P;$lQJN u֚bNFh>{l&OÍwd–Zl&>E{^o& 9ӀkAE,Inۘr+kh[ }1 C^" !f}TFLݙvߟ J&zmpZYRrZJ_Es/Lcn:Ol#rjy^f'G\]PwPTP]"LG֢K\ltAJ0m.,h,{놁aƪ2[*-u˩x +ⴿר 7'pLl&00 ϚR(}-8&clZcd'Be7g)l?`_- xo m#/ qP*YmQ ﻧs'C )PyiJ x@66j&7!vU .z/ί(bSe3Dmn^,*1-%4(dּqJY/phN#',@rˉזoˊ^ <ǣaؐUzan|lw$s, -=:̇W"-┺A,84'!i3Amt]?<;0ܰ+1@Qv/v!OP Г1n@MG\6\v*MOcbt!mla֙lqvOCtiEcwN:*fI +E`;I{ /~_rz8#w[*\P[:,371K;/l MAe_^jg[ZGH IYlx`vh@1- Eu΅ a ||[:ebSHR4H9Cɋ;Z? h1gܽA:(5%U1\)A(x3Efmǀ-)! ,}kqj4reVeO3o!Lb am颽sܱ? KTW&a#dVӒ'Ī jKQ%9t"s_9E\-)|$PR wK^f]K[c9S1 _P8g+h ^p>ԭ8CV];F v$I$_S..V_ R[x#!@]ߑw@cSh\xSMxspn0pA1[;9j5'ahZf" Yݴ8~"!^K9km0^"mФjz*ٌ{ĿAC[VȌ¢_J(II>x5<E$xߩr:nn1꿔 #ڇ"mBQWGKo@j\9ڄD;4[.1V8Gc71!L:xgpmW*Sc P7I TK#.ݕ΂HSmīo|.ǶgJZG+{Wv,#ஷ~uE)<[O B nR2MzKpߔސiMHLJ'9)hA *@<z#, eFB#x_eԈ]4y-4pV_ȏ \}'h[ ^EYNYT ‰@^6MQUrwp Pe pdYX($={hz=Z,`Ҝ]*v6$֛RY f}?qe++]~;3>-] 6 X9rf^ՆrEWjsTn4ҺYAhp?/>l]uOe9\IJ_85?@8g)(؜ ဍ޴Aoa1NlY4)b0e]Z0;EE(Iq4퍑7vhew!h0~T⹓WfPDlqByu|d[_ +㝄ua4E%ƿ7ݗD_JyR]m/av#瀎8Uаc(&kO#SeU;y|+)A:3#ܪG Flܧl*L3^XSx̅Vm" aW 4O{s|ߌ'W|Ht[htGMކNg0@#ڡ`pfp51Tp+xPs֛+Ԯ6#NZJǑd9F4C+FIb|n $*y`"H),l ~Ѹ"iTAhKc1S|14"O^<:cJ5~-I1`v~xB$d?@,Td18Z!ݥ`!DL2.j$!1}h-}4O?%yl}26]L8HfQZ tMEՖܷwil6TJ-4RLxgB6ƥl~ TOo!a^ө#PmX>F\5GDџ:AgZBb\8N!/C3 ~Û6`᩻¤ΰƴqײ"x3 o (Tʌ ^:sT{{+k_Iz{HC9?[h 4#In䝹jsu9@+ŢXS\6r<=.W0-}Dԙ1{k?nc"!4ŒC+*qP@b\dx%L=}o.L[_4,㐻rX.dDbqwޭK&VpȟX1>|1ӵ.~s.}!uHۭ2Q"$O!{ZG h=&Ԙ[U={a/B!\hvueT_%d`s]U ku7[#燣40YC{Ju4k06rb99F*>,a6ښ??P{==M؛}'UjDXD fc gILATöYF7؟j>M[PXh,>q")ąEHWV6}>X!:ȗm3>!ik0G{Feur.Us'iH١L c2=1 SQbChXP~9^GZ ǮD#mD(,9`g)DVICaBw2$p65Tq+~,aKbh@~E8ʧ 0')`AWA~2lm:a zzҥw%>8dpѢj8q(ԬG8T; Pe&ѯI`obwZU49߂_b. KZ _f#NW֚nKF65:DqstEc?wF>CqJ58V՝)$dJ9q%$kVT>'H]0 s^6/G2Meh 6aoƻ˭w)Y*b(La}|I'tIqN)q*EK !pG~zu=a,Rxp;C兔ADtiU:eٷ#GN3YQ% 2sp ^>+8*h Ig_VfbFO#[/hziVw0MGiX:> tH^1;Fl^Y3 IS8e%c=^}ϱ]@9ST8!)KbA$;"E'm2Xy,8O*JF?wyXvlG˶_b)DEx2zr/&DcbPj02Zi+"&Vյt"J*HZ($+q4_j ~n(^® nXgЁ0+n%XehHYЂ\ջ6q74R籉bAQ1*~u<К)!Lq9 ~@0.8)ӟZ|:EE[0TZqEUaw٨8?9HipO]uMGZf?#d2 #'' 3: h1 tAqaTUua)ȏbU0hʑM?0e8.\+: U&'ƠQ3BvN CA;+% !1ԋ`} n-@8TUS:Kcˣ בu[.f=M#Z{8URoڟkfjD٩q E Af?9{injLٵjCwUVȏhutHT`ϒN -摰)eJL^&TU2dhD,XUzT> y~,GD3Nmֽm}(Fq[OTbCm)蛈/\v' O+&cs7_Öjuܜ3@A?[&eU2vX)5ZоRvYUnN//,@Ig_[:9s6Ub\ UE!Hlgb{8v~u PD$ Ȁg9h /HSne}Cv¸Sj|w=\Ov"o^\uB},Q!u.Z~qSVwl#5O95H=@lK\2TPԑj*xVUJ|1=F>#Ĭif,$f2:/)" sS~cl*0Uč1DόձWU\A?(ޜ!Lݭ%6 r}wBgײ !֥%FL%.6<.qģ+nu {=5fANRoۍ^'va5CQּtͼ)DKGDq%T_Ҽpokt-̧cbr>-53WNoY 3K>l-y3 85y>U~2 ēxN*-1Sؗ$(o,Gs-Y, ".gP:͖zlPdLRldlB~it/8Y39ݚ&d$>PL}%j;[of !EHNzA#@ d֬b1#W!kY"8eqX{iy9)[\L'QbIC))|r}!ayxxQL;'YBϨ-x2[$-)q(KLM##0 / 0!)ʫѶ#ŝSYuKUTm7BT$:Bh%70Δ Vk,covܟ8\Cmel(ڊٲ}a^r$Q$~~oB|b4ˆQD/_& Y1H:/Z4ZX-A3GOGQ3s-f=lՃLWt%I`GCY璲SjVxUp9P973n@SRgF,s(=7zF 5HC hUxz#FVb$: %hͼ轢/TYQYl11-ʼnyXpN$I<`> NC %rڻay#FG&â)Pk}IAQ..[/ǝvHG_H۲bhyHBY]%̨"k%g5 qI&ψ*aRoX}C-4!*iK^/l IauW)G4'(s,"5^ҀX GQWؿ.U;"]7'BO!|HOcᄐKW^9=kiPH]9|tClJP)Y~{WAFpV嘌xĐ'kGuǎ|wQjOwALxrQm,*7>>>.]')_uk<]xlV_0`9qnp""i+髢֢;@b|!xW61̹uY pI"DE2lot|//(&Ղo,I ȉ sD n\R CwCc~_tp-Oj>d4O$Ļ=|9"G܀0 /}i\/ƤtZ|$K#ex#0hxa@ }Ԝ7u.,O<[ S+Ο;1&J*`)K .|5K=4#?Fkަ;m80&3g&uwpr-r=\ ƉAax_kcb}^lƬ./oײ.ŭ,TzNl 1)=$@mG?Fߙ~cb\4;%We0hAx)6dؚBr7Y\T|uNZjR- zQIk̴Ԯ9j-,^ sCBNPN@.rgD.8IzxoݕX+Bb.LV,z&ۭaSG˂|C<5׶2e(ǥiəAIAlL za[ xKlQs,~ŀPGg)4z͖χvRKex^3,k1p3ټ.QplT6alqRk{[ԇBӸ$^V(,&H(w[JyrGǃ/ﺆA/n (c Ȫ<ٽ`6hue?mEײb 9eiطL=&d} .a]lSϗN 6,W A@,=YV]jb"K#0>A*TJvKUA%{,hu+R@~\8g$Z2:"k qnY#{ 6)5i=Z,vUYHn?|9A)< FJIb=]6+cfpU(sNߺF Uōx-O߇'–žvxX<)5h &rG)N+h/kQ1]Oo'ʈybڲԫd/+ fA'<"sV&j.ips|^m$ Pַ0,ɹatfuHG=69Dn%/Ss AdR0<"t/Rh4@ٿ$ yBd*ǯnGrDNV\ Ãi\,A5{poH 6,A/ K]y\&p'x T(A*ɔFGc "dz04XnWܵѮɗUV4EƲD5Dar_)Yl 8X|ԀPx1 3>fJD9R[(I./0gr!O/~kR\VAi.|<u.Z T vFPOsP4QM 䖸v@ v9Q.%;tJ4%DhP.?v{n7nA"NʖeU A㨱 :;(쳘<.Ax6kUjj_Ld3M(KuEG+d?sCހe)Y}FAeI$OYj>x a}=b/ ǺTbC]{9PP-|}w {y,TrRnfi5UAb{w_boX޷XVvW:p`h_{MCfy$>Ԏcxc)3{ ^4Ø/n@*9fB|IgqR! sV|E꿪QK _L/o5ƘL48 XOٵ[s''P)uc+DzUC dݍqGRM'}MN~!(kš -5|{]8 e2t;1U>q"؛\%s+wsS*oL_7;f dU+1|eZg#yylq%8d> #8&)zݯx̓|F ەd.GEڬ+ܘ=W e*Bxe9nEZA4XHjdM_Ud*/斜< iKd5*]oCfpJ#K '\e@ 5?+wo4W. !%rClU;m&Scm SP2ƨ;s4]#$hwӋxz<zԜj`J D9gJa /DC4eQFZ 2jWlZm6og +NHe0\5wA\ۛ,SVyj͹766%PkRAcqߞIIC+hyp3R]]#$`ZOb|"j[iJGGZc+:/; Sjv8Z{n9Kml ,P>Lt[?y5=0gұ1R m05ӡH];c#=%&$&$r&EMDN3M2>AU4ض$*^d`sS4 斩ǓA,I, ֞QՇ{TSfT&iNz滛.+B׉,8@:f  ZpPMBD>U*]dR%pBiw:iR3jd$Pf E Ԏ4mr8-V.3n[) R%f[ByR{V6ClCAZ[=9*7vRKBtVuFv 95| ⨽t=cERH8HG[`5KPq`}]0;Թ>7v`GỘÕl< -ZQވT"2r=5)25&%1?h+Y|` QpcqDm Y']~خA7%y(iW.$ҳ͙Ojhg =jkPFxٛ}l 1lҗW[r>\ZЍ''aʬ@攢^OqY1@ 8>cM?wnZdp85-2NsI%Ҽ`{ %ރ3|d¶vpDJWy$d fo/)d#sVqqO[kY8l3\ա @XGQc.5F N+H@4<v $-/&]KY:ֵE34 'd[Lr-<&8Ԯ(z\Ց[-1HcbsAIj$c!x&Q6TcF gk 4$ŽOR+]$氌+qM4OS-?.8^7v7[G@8:]EgsgHfSV[I aNA8Kx#'![SEeyAkcHlnf}k&z,zty TfSWgO^i!^/\a9/Mr/ by Lr29S&KS MJ'g^i1MJFGxu-m|^$2H2vH赛Hmt@ `kԤMKAԨ?V|AmQn5c+, .$$c$fFf[GڌjrH+%flʐ1{EpI\Ïŝ*`OiJ78.X0Gڦk)|7JK}-C`N5܅a*@&2nni;Z_ŽdW#m4ītZͷzk AtO+琼jk~?R*+ (OjtT Rs]z_flj}jmM)6LH'43zܛX xc[i~f#pzʕx^$JqYȨ="v[ VbqmGo[$cr afh}c F@+H x49oVem*Ipj ZYZͅkŶem"?NgY[JI|?"Gtxdd ]j(NH4bI(0smv3 ڍ)^g!k 6!!3?ϭp^$ %sW̘s̻XiȖ5j;N|ʤScdR?)!0:5% VFu ωdUHb=qV޶3ZE7y=`p3XqT wm/ˇ%Z5 6:m `8kOsȫ))'BjV$HwњF"$ k<4m#$,tb ©ǨA DՒF𝖦y%9>h'Pk,1 cj{lIQS; 愇1烚zEñF%`kGA2ƒPRkvrcR: >4I-|`(Ι#&v%ƼQWf8N<-`9i(kֱ0P~QWY+Ib'"fjײ7?vj֌sZt蠿ق}^MHeێՃ0N H矩^G{"G4M+roa\׊'QwH\d\Gk}mtԮ3yXi\ۑH"l(?]  |-p[$'Qm#is#x-W jh񋓌 p+,CIg&)x"V'c*j1~;)BQxSIӻ?(zw:u:vfeWQ<]h;0^hg?ixQNNFrʤWw،-.nd ҼVu>7dZ"VB+YhǬ3^^YjH@9$ 'Iݴ<5CryJgw72Sԝ&L֒ R ?JUR֣B;B*0rU'_3 WSV0FAb %V/9woddff⯡6Hd~ѫWa2is gf'>AOҜ[gKi#J jͼ3j(dGJnXhᘓFsY;ܟhҲ*k2'XrcKddӚBP # [i9zZ(nneIA+n 3=C!vbZ6)M$$75[jR،>y6K:#~m -GLyLѱCԎ^1]V{ ٷGldo_Ct衱=JCIt Ү4i,9>fbU@+Ōf{x5%L28#SZ”c]]5[uq`|%uqpkdAb#8XzNARZw3)%նLY}35> 8HDڊ]rF+M`8&4ymYhr۰}kDJHCm7eʹʻ `WY BKu$߼g NIXO|'p= ֿ|2=ϟ##X.:sWtO*z|HӟT]284ִN%4jQaHrbRQJ)\;z.yB>#Zi$c(sh6S(.$XHV\dJ5]V6Zirv`{Wq|yذ5PJK#R+8cBIT5_YU>#c(8Ü:܊z7^*D99 h1)AEtswLBiۆV21O SEgֺ%۽MQfG)m&z)e3c)1f:t9tkh>hU>­n@5ێ  nΆ4Ű]rF6k :(xb{ Cg#E!$5MnnNi 4qNSl\K~73< xuv|'YXXMq SiZTv@73b\}tQڑi&)("cmL#<-cի輏.}1Ӈ/tyK&3(uO]cSgꋊI_cN{u%!ϲ1o~q()nW+9f)T1kΓn;CRh|Ky}#Yb$'ARCDGMF _FtGQ7Ĺ< !X1 sOp9Wߜ!@$.-ͦCwHs^1lqL: jsG,';Sͼϥk ugSztW)1mFж>ffϹTzO9S_ZrC2Ee6pN94ݰUag ֞!dM̅ʨ9l[}kw}1t 񧮔vgs l, SߕQ}MYM*!ẜ).ެXw9Q}>BBOS66=qZ2|g)% fcsTr渒7fMƤb;d`g2}VJ2^`TkEe_2yNdF0U8nbώEJ,pqQ 'kN > Qa`o 愝$l8mb-ͫ:%Usj@SہȫF{ZTfR[:)2aPQMi`V3hzKWC8>qI@h[ڹZcM3zCO8zPT7pGNԭ9Jg:0srS.mhV(͌"Eaty -&;L0*QtB$R 4(p1dK*bxAqOj5wjjH`یnA2vû5Q;܊zh-Ĝby?)t5Qlg=52ځR:9ܸ Ṕ;XZx]-;'Ҁ/yG:z\?f$7sdmUݞJ'k&T,1FhV#&

~Qnnѱ b#GrTUI>8E#bA"fX{ ! s@ʂ;Uynq"ҋanIbrdI~ Y.(B~|Bb99mZ\[y["=~$t\Mw6~@I>k;0K/poӵ9nczFO BhfY.2!tl< %~ a̫]995Y1`RʞHUfuc ;fS35Λ@b>{Qmw|{2z0aUBk#D^%pqikZd̀ 8'}+zrZbueKtF!4C&8\W2Has#~ʶ4˹gH:1r3.Wc(8*Z%\-X8J蔨`SL*mC2/BCHĈXՆ޸1{h~j*3`VN֔twXlU#;gjvKg\*1>Cc-Rh &@8=]W2,)biOA;r}zȒDPp9oRi'2z~t ;Hl_sϦjF!v `/dǗ8j7EU܅9qY7ROՁ$SDg~z7L6hX$Зq`,>ca 2zgڒHdjewHS#2*Ew*6Ż*:#E#K*RY\Ũe q;I\1cf8R8:w㊪Ϋ!o:19e?7:;x8>=KDH!̡~^>l]ziyi |ӊ?;u=`:CdF('TkQ'Zjw'aL;${դ<Ԓs U|(\=(K;O>c?aRZyVB8!>fK~%=i'&<sAB5 DITc.LUX$ {ZXQR1k6K+( rq?i( >qMn`c?@j7-5s3#*9ޝXc*H<(W= c $(~ēSasW65ܲ?ޕZ+ pRL6Ixͷ3Iй=Xk`2=I)Dڌ0yew+sǡ[`$bs9fcSyli?Z)j)G\ΖY7b9"W;wÿa)5]n (F@IÿQK9@m?I!!h;0M_KJÇ.3=v-+,-p۳)?T1r<]04',H׊fiP 9 &-itYQ6?^q-bR+@?T0Dh`R2@؋$8m ]$!XsE*=̹ۑ?@u.Zcǵʂ  ;LqQg|OMKqs6e#u*tj {ddd*yI= {?ZD I#.Zc͗Z\ܪ-3ǟ0jǖ/zO?I0%j:I/~4f78RGr=H  $~l,:I1$3l22\^}vweX 1lnsS>d?&mwazYA/3I2 { .dk?*#`[K`˟ʮ)pJ 8Na(:>,B W#?֚:H])Fjm"ysPcr*6Es~ؼbB.I+$n TcKg]nR>vlz林ԝm`HLh`^ڴXʑy.C>zʓ)\[ _0/!{W?50E qsjnYF[hҫE(@gxm5U.r~W.ܒF:{QUUV_5, ry'M.a.(IVS@-4j:}+ܨXgcVഀ I>lPhPk Umub, = )jAn:d泞ivK9cQP;Œd4F 2~>7{;NJdި1Z գMC%;|<VRXX̣Ϝ+wEyqxcD\ I3^V/_ƅՊrx\VJ'2Y-O)<G|;{Rai Sҫ݋Ы'tIqR)A_*.ZEa$FO2XM6E J9cɮ^V6}sKGju1)T}});raMVcfDWMqffOWdI6 G=1P%{Z4i"\?Z "clVK*pީؚƐfYP~⵻#!AڗU5ih労܆؆k$0Ȍ=iRJp20 L mќ;;t=Rėb_<#=]6Q?FWƦ[7cҕe 3 b}=`89+ḱnrds}jٔ2(b61gOCV#*Nr}鈝 8'}E5fFFe\E hZH$PpsUed.%G;nTot!}pר$H8QBCIi$p%xދVX $ 䈙6cT6I6*QS+bMȧ 1RB7H mr =ڒXCa'Ơim #-+A{3"Pce\]M2?IGRN8ۼ? -3IugISZlK,7KopˌlQl$`/"5(9sMgڢ߃`N؛< FU4#4ĎT1B(-&71GC@ !y iBVԝUXsy=km" XCSYXO:@9= 73RXn-lNpqi%Ydp#llsϽ-VgE=9=:kkڳ[TH3}kW+%3ϲ3 27pOyL)?4q)5%A<\Σ\\[b,m8y_>54RxV `N##}O*{U=O< nW:ۓ5mq˟3,XHم'He+JY$}j=هXWso6sU>gД,"b2J~mx%dVUI]$\c&cMᲓ ;ϥ==OcYq$fXد@w,OzAa4 Sxᶹޛ8I! @j(&b!RŶfy@ǎc Fr lnOBe1UUy!L.p?$H&-<$gY26%Vݭ\ Z(^i]0 [Vl;"ZAi"@igd-!yRI5E~zի `U#qCv-.qp6Z;y5XPcpcU#r| xd@DN= 7%+ a HcUAtl851xlL"b+FO*YCV"BHG$ܣ'9UIdeB0Rx(9jkpo@lerM+o8 kՇOLƀ(SOz5bbY#!w|GJ12 >DDsҭ&m?http://ns.adobe.com/xap/1.0/ ICC_PROFILElcms0mntrRGB XYZ  -acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBC     C     5Z`a,]ʍpHMmspL1(_7 l2Bo1KCZ¹fUP6w+HULDd3,.G:*JŒN3gMpR o5J#;_51wErLB)ΈYH"X˥%y}[" QNtg@{G &ϻ=ʠBcXdosM_N6,rk!Ŏ*o~ESPPtRc'0lHmDQ֗ EX5Ajb4BUNH d\!U!:zZR1G9{U3T78g̉PkBnΝWv!"N%0Վ2=+C+7hfHQʪ8E5U#fR&*1(:VX$ Mγ 9-ɲ"V`$t%@`(cn{s/$7G`&>tHtZv#z5SקHZT,n㥘M;١5LpZԥ%=r7tfz2b"P"dXI1h]ndMH pʍ1] izND8> ̒4zgI/-򤊈m [f 6Q3SntJ_tNBN/ RLF5mo }ЙZJ)TuI}ejtL7fǟ%n% DR-Ճ8^)QF_#8x֤5!:-k^wjDvZxl Kb'c6!&uiu&jQW0lڄI˝_55,xᨾĄ3mZxʓȶaSjbfu8&<ا⃥2W!Nʬcz*:%"!QXo0j;z-* Cclp\MyNT¦z&> Vv|n/r*:\qhj-Զz5^b(VL {2e|J#km sٍ?)RTDB%C`'^ U\r&d L1=OHIu v,lu(s3cc@ `L|ii;D.DtvCx1- xwpj'Y, >37̼\lR2fZp_$M BNaq#SEPfP[$ǒ>汹!־uJBls9 ^*Eg1HRSIնl=&S"j[EB7 R.Sp,?!\>@AѲ$`W?ܻ3:y,q3dՖNTR M/5&uuJ䖜b+HNPRT닡6&cu9Ԣh $I*8Sȫ)JRYM>U_&RSw有)Tr 72:aZ9ˌ32J/ \%d 'W,9Z@@i*mw; Je\*^FvХX(%ZHv3M2r3?K,vwOB¾fRvIR[u +yN^"(&6?UkhP<"aEpe kNU/ej3CGt^L)] zLʾkQi6lF=Sa,/ܝy HSy#s. nAPslI*כ*)U·b蕶qrjpgͭ)'[EW)/'Bp= g{7TH+#Ά!/ :0,"Pg4,5ٖIƷܺbeJ QxZ z<;lzfiVTR6l+;CTßZ)Ph^t1s@y-"l I?EOaYt,)eX5Dr -RF;ۧ5lԬӌ[m^=g/> f쌔ꇸu(K=#B*c'-ߊԁSOg>ǖr`׮2Bx;WԽoEzS׮dZ^;zAWLvG^jfJk 鲯utyI1M<^~wkq-Dz>GTwJc󞘾S?GO_u8z8eoٷ:v?aI[FƌW·>I-\U;`򖒦^8t򰭷XcCN^:]H;,al{IP)\CLJ}vѹ`^>S|5m1p_d>YNSeIa0h2> CwAֺrgzvKpU/C_;ԓ8 Ŕ MiN|2wS_.{7kxn^eÖ,`g2032r :fٕh^^}6N.`~]yR>SX.Bޏ 7 ZͧW>y:RǢUPKElumY Iˠ߁Jx Y@^sYim.U .'?AOUk$u~ǏeC HV"q/L}B { syl c%ݠ!)(,=Qw# N%rwtkYcYmi-N$)9ɷkɗ Ui/,H=<킖yWio>∼>[%x6Q2wsQşHL2컞r*_#B"{XK}!+m-r `$]ۻJŤ|'̧kG9QC&&@ՕQHQZ@g]}7^=>grem zMԬy)1HpmҢn#hpB)c6z۹n'-̝ؖ*;<,%JΦDm:!` nm{^m_em=6.ṃFk9me;R5%ŻvKtCZVjVXĆIz*qeaa+7wp'tH}m팄?'־{B'[tQ{Dva M2s6'ֵJ[jrLq!hUo0mNyʹaFDxIo$9vه3ang;k'ͥj=![]kx;Liy.'ZۛJ@cO38+5*#V4o$a9Y?5Eq({ixN!&5v"\d^JmC ΒSJ`<,.]j=vyeBL>hN]lh HFXH( ӂf:LGr[-q>eP@eeCKmkh Nǩ> gng3~j1)H~ऄOaDVf9M9C yru+ Y|xȖmSƐo2;yC_'(I{enyJKW8difL0Od?=:щLC,gNr0 $$*0LEi><=mm.Rg`VzL!8$ Lfی`&k--mqDLSt[DQ#F96Ts`=6}jfND h6щsarhyzV1#hƙJ}"~vȂ9ӌcE&5l>_)$q%脣۩$t"EFӧ@%.BBu%Rա(֓8貚fKSz:AFbA{A).^Оs \&8 O?6gIB'QM5Rs$ƉMr:P/ D:OlE3I 5!0r[B]z1id_ѠrJSy,eO1 Z@8 %gx\ {ӣj=d -=ݧjQ)C-@,`hi[I9s<ʛO,:q0*%h,>Rl1bEȴD[)G!SEA4*ݣ2v._4Em(%)``!4x!KF"'8H#$:5 cN ckyR@ν{)Iu nR56@;-,&z9PBxzk8"Q;Kѽ"u*Մɘ+#Fߜ1rkl %)C:9BF-I vt'F:l  @00 %["xy1P6$5!8A3]*4"8fЂuHz 3DREΫB|L03L (;[Z,LHκ[!N14QՁ\D)-B[s0TR.Z( @fS#ŗc)rtf8Q=o<Ԁs`"$hc^ѱBm-$Q΄:Lzf+ eQ'D]gZΙ0ؔQx!33!` 0\HQvI%QD:9!Y8+cfc4ؒ{Ya^NLaDBJ5ITiVɌφ!JkD 驘ZqHLIpVFƒhCrCԛrf%{uDZ,%%$jBY0Ndr8LyZ`u:@@)h @hIV\.^cBL$[CBclY 5hKXIsi%;J-PΔ^, !uvta2 L mh38 q2+?%13 M"n-c 8(]&UN`˛n ؘ(E%77WCP s6nem+\jwM&`OK]d$uf֭-͊O-r]skQL-W32eLNse ’VS:`6)ĺOnC[d* $XQLX=!8@h<"{nQ)rZJ΅B#G1Ȅ6I8vbFMať>Pb85t+IÓ਷"&]=fa Dx4a'<5jvbe+JSL%BEPBiUN-6u7a/?W@mi'9}<{x{ФJvQsVMeG.uΎbM_+ ,ٰ$0fm6[:Chb6՜HbL!(g?Q Te~Q)kXu2L!%ͤqOy3v]yz7gId0i^pq:"N>$$Prdԙ{֒cY;`N_N0|2QN,%p-E ׈K0,n3mqY^2O2ZJFJ/A>uӠѶ?qN$^8IND#X1kE!t5Bs@l9Rd!(5;IԔ'Ts幐,PDVO(yK\YZwfĦfev2 l/raGGnԚ`3Q$ض2 6f6`1 !5>q"D!,f 4Mŋi 5<-]|>jl),=F=LDHX^/$6VKB=- & kxZ}:ߠCg2lCS7"FïAٝNHh32Ʉ ]$edj%Ҋ~>#M2en+|%Q$c^Z)T&E–%b) w4rUY<7%/N:tuzpyUuG}G)wLG˔}`r$*)_(") w2?R#¨RwGCDѐs6DF7ŵō r-FW5o{ qe&m5‚l ;H3? &REq8+cWk//~{BO'*)u@/i˪-& ָ= Ggw~fZd 8'IJEx5ce&CJIƚ]Y3\O8<\^oyr d0t?Y:=㖓S~U'5H! ?dpqfMIC5M&A NH &ǏQ'ߋM2ܕxQO¤P@$?7L:uNe"e uu؟s~vd騛9}&%l˸fucua֨dXCe#,Xʰֿhe]*K^ڐCB +_GO:z#}/b T4^]*Q[.ϏrR#j~8/fWΆhGԓknN?" u_$]I CCG *iGt9 M=b?tr:.v8QIMLCveq Kfu젨&N1He=G廥B7*5n6*qs/N4T<7>6(g3%qN:6b ҶztR`j*X)D\<]>Zd#1ROe0ZӒ㑍O]=Fn9sY"')ɪE;2ΪjKŨ4GY~o?OY[ے/^{\ fJX qʌ5Uy)$QSUs0ީ`b1%D=|bFr!zCB 80ɴǫ xcCRsh6KRa2O6X(2\: *Mj>nQ|dL-ҴAw:Œ{*F$ G[\lc  ҵdcb(WyVT&L MC(8.s1\_\oknl_t.aS OS"@+vMr%{KWKb @j]\qe4QaTauMeFTXqSx׈YHh=J?XCZDNr(h\!~˩XdUgv ZTTr`bH\cO˨d醻޻1q68pNov$Xм$1.}T8jlHSHxϽo9S*v<*!~Xrt@&o(>Q#B$I9%1u}TK%{sC|vDyD5Bs{ɲO@8AT~UObuWa$7Əy;Z~pB:jK9b4};.;dT/yk,8Iw`Šs]Aa cf<@O58juyX{SyrxQc헑KyqѤ\) _oiV#nY)[j#ۗcNynVX!13t~ &Pnx* ]jȩT쨑]'iSrTq|tN! 4u5q86#ZF&NVprNs#ZU]z.Z "dy ը]g >E P?4*:`-f r?!Pj xq$%-{IdF|CR(#j5SIYPG1HFp"Tk)oQGP5:r+Zn-#֬ X#|mC@4W$(BCH)yr!b8ڈXR(S(lyc뗊nv6T[j-"nOL~y)6p?gɛ`31rR4k6)P2AEG͊"]/PJqtF5Ҿ1dQq;M 3]h~Fb5-wW3Pܔ,B5tG,E1&UpDJ]eG)8 jZ}I5AĎDz {9(YCjJHu/z)>Ǵtm<^Vkع= ˢj:0n@ܩS2@J$J;rKD=ldQC][pq&gni)#1Cė‡ZD8x99"q¤ܫj1 GׇP?O2 vskIxhi'W.wki?# 2Dƥ׿clY9H%/tVgJ^PhlB=ErSv$g X9 jT|Do/KPMÞXS?1nZM$A\ FP4U%~LRvfdb4k&o򙴤lF\^8?~i%= 8rCB뤣eU˴}``hxZr~[p.Vwd'MR Wqŀ.[َI+Lk 5qM/ƣƩDZW* usOt mH/EN)*>O &(@O?O& =3*%oC|I |%7'G*Gf-vSEF8\3mbV0k ЬYI:RC'TZ:UE|}q7!Wm _Nj !LMTQ!9DR9$Dًmx{!z+8Aޜc qG_6h)UA~*z_ Q|G([ax"*%r]8c|yWY#~ݏ36usId[UuTN4}$X)yc ?MD_7Ut4m[=Dpr"s#Rg7ȵ$4t$:8Wce7mgv*>E|u|Oj#b5e2%Ovm?_mS[1<ɹ"C*'[tn&rزl1o ^~Eo}`tuȖ#Q1fgkEEJ3u(3)wMJvǭ??곃d\Jdt!c#Ԣp"*(Vs-S}F3wE`L &NY J2q'P%YI=(AU4tߐu~/V.KѡJg"J:us5gEBFۙYK|%QM-DuY*u*c8TSHs\]qk B_r>.ƺd h9$&m),'ce+NkkWF JdzȮa}Z|cݯBP@ ۤ|eχ1'Z? b644Qr+f&Qe5;)3d)_l0?jW 6VqnSF<˗ыVa yMdmxi+^ZqqO;X-MLXzNȲ:O GNI;YY5 CNYcNJESL@Mťo6xWoT1jX3j"$JXT/AЗ [ !4T|PT_#"iߟ/6wDoC|: 9E(}\ I8 A_Htv` L#Nmk7[L_ok``oD 4'$Fwxtt.:un+[#븪Vf1-Uڽ/G~lx[ʞ e-b %tkzR_p.3jL|.U1z-Y9*y>+W} xXvj;&Ӧ%5l;S>F$eJڰwVf ~XN3Yev+,U}Fcz}jnq̼`i)UR@aWSB+c_n$ū]v Y>mӽU5=*Fʛxˉ1*k/fv]|g:f:[.P;U/ڥŌU2=z۟E$ۿ[O\euXWAG 1)51nm'?nWjۯlž6mf,xYPma@Q'#ڿy%0B4Bedž_cJ(+}"F]߇z xVߪc~/anNITc@*H 6kmTk ]Wz+oUhU[n;oZ}CnL]#+ _;%NђM˓"Z6J{lͿZL}SŖ1.u!_6MFM4lʜNLԛ_@HXB.^n1}C}}}#n}~z}J#n}L=]RMؚwٛ+!N2)UHn66DxE YF sco6Iv͒!Jmmn#%>8:80!‘!*$1Gϴg29hF2f> ?e! L3qO(ig_BpG+FCz`]چy:ŠcPi'yJxg"2sdM%/,i^QGM%La j,  X!,bw#lFhZ:g}diߠn㈓y -w `  9`BrFS #1+!%3#kX*`x:b(P|"i^0\~JzKq7$KiLTT42Y qPʮFquf *Ƽ3!!fΤ23I1 iKk " :חrrnI,2ԞwضAr-X㲏9uFEc E,ɂw8(&t\Rb9LfDБ ܏#*h n$U;UTH!9&$ 8ڒuHQ"QH FpKdej1.3ehgbQ1re|ҟq5qK-[~N<1u56VNYp8R>4.@sG$}q橑Kؕ&[ Ee"g#Zi!*u0KJEΤde+.zє*S 9Ă;%"oeZ 9\S#jiLjPR\T"#u8oNaLC#a-"C!vV#FLFf젊$ӮϊSdٙ&Eh\}1 qѩ)T=QoNj" c(X+%8!Q$rQ fS:p~.vW@=?ADC3rHnHH#2;ZGŀ zTe:1T1@p`Љ+ Jdi"0ɬOW?%*ܻ9j@dsBR %Q[㊭U 3 i,kf9D%r$tK$zH[,iF 2dd>*RoO[N) }bUZSV ^8._"hX|G7Vѭ8FuTgQp@Tv|~:n՜\q%lPSvNG:U@g%k2n}H()o,(ܤ8zJA 8X۾8C% AJYS[7(JDyʒB_.23sIuHw,2#-!+OTH>yk&$EG-NMY]2E=k^e%4RڢE,q"QDe89iΙG3cKGD* !찗U$ؐ% c{bŘEG!Y$G |DE,wMPu1N?>9-J|!p10t=}Ct)\l#>֌p|IGr"TձQsr$H!uEmSL"rLT#y6ElI;3D|4,I9Kt]!|k(cYh[(Br7R[FW3 b6PqP ² Eȕ=96N䑷-[} 1!3c?]bY #hg`i<QaBx`Ό 7= T\!J.U4tP|$Ҝ1`m|dH\4er@QB3 ڐ 쌣w*$H k3 A)B1x$U  s1%PWN@pF#bFYNP eԊdB9sqG+"4drb, dԻu/BEtXU1NsrJ85TCHfY53(Q Gȧ&d,SH[Q9[#ŸtqfӒ)c('Y( g!.>$T*M `9N5J2*7ߑrD%@c4"Pڥ5=X1Ζ")BijicquW7,Su~8cx(W}lqHsmx뭂brJ 3f}kiVo*T1*G,5S)1$œl^twXUAKGK/H д< Fc" IY*p:6:ƀ18NBtk .ԄeXjQ gXcX)e @#ܡ:IcZ(luցc &>:O?#%:6Զh4!>Ha/X{YB }GPOC ЧXe/-8n$5:C Y#+,}Ok 0ǡF-˹`&^XN5I,e% %L!e'Ytd mcid$ju|6@JyJxvDIIϠ΅%[!=Ѝ*z[ơ)У'#XҧLϩ-]_a}&iBJS)B[  # _71-2 &Xc6CT|C2Rfgځ c >ۍ<6 -Dl#KaZk܈=NHk2EkW*YF}|'C\h! Ҽ%afue^`;Ơ1h= Hҩ(l49m,a O 8m6ea!jrSVK(4$<1Alslǡ>mjjG60>@aۨifބ2LX:huu 'Z(EbO-N[,XF҂JpFfReΕJN?t89{AI "%:=:Ɣ , tVp>R:d?΃n4(m XO Jtz{,K4j;aƂaz۝kJ- xcHA9oƕB[#K #HF%%Paދ4eCNAfN1P]/ThPq^N9NXeY밆%-Kba{8z6ҕyoQl,C<#Z׍xO^9gIIjr߄ 5EJktif{0[7\,r׮rZWmQTG 0ha|7?N9N0j]upߏBi-[eD7 Qsl û!.W׳!l!6ṓGzS|h[)"C>-8|kl'Cd%iq9Ha6$PQ|6c8rF[a);)inwLykAz{(kW{="-;Xҵ O Xv`dt!\M\Yt]̲,ew;e,qwYe}a {+.H# L'-h,:K,,,,, ]̻,Β˹MYz{/' {,yvLw;ew;.s>u%Y{?N^Pt-CpTIeN:K,Ƨ4P5<'Pry7;X=a%,ϤzIISftHa5{ke qg cNymXc[H% k`$1(b\0ÖMe(F-F3u>]0k)-z݌0Í!τ Up8IgHY4gRvH2H݇5IFtaKCiq%̥'kPRb%ee6ZkNr}h=$$i'I JLbkҊyHAIb\ap`xl%!΀4'K yaXaYglnlOMӖ!!#)Ҳe2$hC:#-pt zFԉooqiLyIeNiw"B`79$""ᨗck YfB-<4) bvuN,C( />0& S$"tVe%!s.Ҥhm`L"^>TTeh 40ӵ[u#J|C,>SCuM@< ?A<0g0-K5G0ĻjH/ 9Hes Kᵶ,OfJ)Suxd[ԇ-K:pRNCpS9a]m#@')O ˀ<1V.,i &/ ˼L'&?jO }2<'!mMȐ22vESKz%ł r0 AgMa+6DT6 ՠ8 v`48wb))Tmdi#8`(;kiy#֖%:r0g8`iR"#Fg-d wW2<~^\-xAp%,3.II#lN^S˻BIÖE.Ġv)Jxdpq-5#22 Z-Q" ])HjhaOmC YJ0<(3#c%&؁\.yHM]ӔZS΀!5m6YyI㖆_R@0QPB-sc8@ ~dy)P ra] 4;Rhv E#e7TmTW($RXb^Ki!J2Yv  ˺@)(xEJ*9%ն CPi$r9gCI,;=h)`G).K5qn` \ ˺6A|ycƙNғ4KY;^[^ZCI0ޥoXZeCUwy.t!۴Q @<0 OyxIm)$2-RI~`)$A@l3-dsKN}N lplk^4  Fõ *w\[cMvԦkIS:a.G)0%>PjW 6r9Atr^FRaI8_řL g@me$A0Z(AKIA0dؗA2ȬiHd(їһknHg0Ǭ%)yҰGK7ƶ2!1V'..lp$-^L6] l.[YgqyӺY^CH6gOydqK)/a:AL`,iTrTBm"8yxIҵ II/h2Rv;Ca`y ZX5۔N)p5 .@5yngBmcNn]Ĕ#M9dyEG)-j ! C!&} [sf+\WtU2^79cNtl e+"˹m )MOa[[ 󤄼i Ck09pt7i',j /b^fRkٌh1Tpx|jgDŽdJ P @H=Ir-FF 'rXl4-!1 A"Q2a0qB#@Rbr?RqWd(K$0óEpXxDpje2< {!t!x]()/]&Pfa'"Ն02l,~IA!$W! /'mEp #1Ŗ'Q 1Zl NF! "PCSRO8d3a^i-Ng%[`$000q,3'FZ#LP<e6,X% 0q8hjqT`xƎɻ[ 8/$-F LLU)IC,C K88%6<+JlģF1V$f1 f0x``'6C fRQB4'!!U^14BvxJh =r0x%:5BPc hr ^-DO0mf^A7 !v1T3,>,<HcXm_c{y#PdZǨdqVh9( CRSP[[{%vO쒒x}޽ux%b} (IC-[ C9)Fkq >iwKal}IRFLK!bQShݗ_IkN36Eꛋh0!2v`Ψ?m5) bZ%;mPAldڙm!x!^6!Sb}27y_2&Z܍ =E8mz!] B5ƬwA53(},H@ mJ_N"tt8A 6Ae%R$c I;? CPlڼF}J#ga5lId//15݉0 ]D"m%K0؃G!502Hha2˾ϧgib=5$dA2}!M+'TzB }ȸkpNka:.̤ @/):FovRZd$k,;ca"t`>If~fK8E%ݖ%^hkټԼ^O7)%>vlĿȲIn/(w`F:2}XRB^( pޡ.yZ=jɧ- Zlۘےq̤@m]^u8iyӇ?^NQIſDQ\r-46o,`<muB/<#>ÿ3~܇g o3vFyrnaqÖܡ-E{noih6eߙKEpV IG)rDlsl`1Qݠr\&m$׳vۺ9A"@i6En)'IoP&/-w's'pj̈́)#r(Fo !'>ek!?)[}z6 "Mӳ:-_ _"ßn=G[C'wCya=9ktr$2)9͠z{1K6LF2m]0F`]flryJYVB)~>oɚ :9g|S& k"3ypsuX:.|vFg?G^^:9ٴ(r߰k y(e}hr%=(cǰ)m)eo8'{@BhG!!y{hG(RR)zGR#ȲbXr>KCC~̏-Z\rv8iÞT4.ը)w{NȮRbYr&Ғ꟣~/\%>a-Ё&H<oو:CAY !ɇӑxI'OelwO/2A}ڹRMĴu<)WZGm3ތ$uq9Gk~>4r~!}//Oa*jeٔh9z 19/MjRcO)tO]|hP S.eղlvE֑]I"_K`1^79W+J~ǶYwniԎS-<1W;+-qxcDJV>ȆSD{##Ui|@)蟯[>- !)r7GS9(M3 c*"&Z`RY$TJM%ˢ%4waOWJ==!Opk_yiN_Ռa` s= :yU{+I9=NXË:C(<.$fˉ#|I-k&OYC:NBCEvfιfe~I^4=]l--6}G]v.A~V- BRJz~?~D ':cf3ݾra2g=ݛZ1}K7'NNY0B? ?:#>/p Qk/W>{7vgo7[{k"}t#q1|7H:1Ʀ7ٳgn[r緺׷ggggn{{vr.H~"#)j;8;qĺ[{6峷go xVDߪ0]XƯ_ugYkҽ+ggggggovܫݻn]NۓuN[Ͻ2~l]+n[~f[r۞}g|E6Xdd؆_-ûnC?7<́˞w< 6sʙLeÞxo?2G:vvv[Fs-0}9nwVMp9oFvs;8.Njqxf(8S4Axf>)|Ofɰ=Aoupf$h Դz]%ѦZ]pmɤWuh=ݤs@PGtq-'d՚i55e#\C/tDqdĎ×pSq$KUnEq Kƿ1$J I it$5Ñ\>zK~S+07Ws 4Ĉ=kվ 5R/a֮;PcčvdzlP=HJx$5s[l"?5A lCO(VL8cbQPZFiT xC}b#6}JOw&:$u?!bLuطؿ$_N79É\'wfkꁽ8%A@V{(n_95.ͧYHhgۧӫFꁷVgB {?9{>%ʱDg(w8"y'd=Vq7Q , ("Q%jC'][z ޡf4Q)m`/{ /dcU2h'X֘Ǯ_PDҗ/ wlKWK9X|Hw!t Q oc74gNJmF1 ˨j?v'6/iGջf}HO̊?cGT |>R.;cg3I_wI*4k $a:fOL!5(kջpdDb`3I1&PGAP 7z[IcL> N'菇!Ǫ:lQբ>4n۰JA(:^&>VjGI@v{VM/BV#c~$2ܣ*abѫE u_ S8×Q?aec~d8f2ĕIj'ńM =(j)길Gć]Eq e#t "uGIRa^"IKIl8w@y8zec9>4@|,pI DnW˫R#aOI!.vfc`舲ب>GUu 8D@u HcfzNI[j8|PpiȰQݪA$uĚo@% !.$숓h?wFٌtg?aH=J >'>1"utr~7GĬ7L<@=zRۭ"1O-CDk:GFIjoM1Dq89Dz #L:"cw5tg ^gN cQ8d6LFuK-Lf?)w~m6wY/7v[!41iĩz'Hcdēz>$NipiuTD{1?":- HLunXꈰ,5H cy&7:5rY`f^#Tu}XR6DOliP>WVAj9;Ζž$q2H+)yDf:>p݈ /Ɏ0Z) GU1կod$;R=6Itg2t'bA ˗og.-nE@4cwYķ.@;5աG=աv<30?#Vŗ 3IZpJ!ĕkoNj/_O?+W|!]GuiDz垡3:YFqͿ5\ %ˆ'c𳄳}ڪ\YJew4.4k`Ĥu =2][dVkcӠT6qݧ)rݻA3hѿgT"#!jTCj;5Ԣ6tl8|wGMwx@peRP$/%Y H %=t"" 1m5,@{\0|_ݲ2 &9F]]_p(1u|,LExS }]#7h 򮼨Ō:KSqq/g| OG~謶_L{@dF1Hu<ãV]T`ԋV/Gqi¦zT A%c+yK}b2h8)DpEc6JLK`.qHUAFM[ʱba 2iQO3."1fjظpt]3*,A.gv&f{jTqIe\bs:RZ5Drs3ըqLG&x" *&Bg+Anչi+ xa4!u0ĤiS?vf(˚_iUw"L\1E 1 1E3,Dds@xؕ3ۧ.TXϩq KX(. )/2p6\φe"2(b̦ws]:h%5į"LyePh,OEclCN_{ ]u̶K ) Ka̲FeXĥyfiX標p“3 mQSp$ѭKVwaW>xW耈M:n7yrq 6s9SdZm1OPq.eELchE5uCd2y ts0T+PNyYTV-l-ͦZ,&+Wsa\Y,ԦZ.RcIA = 483J{1*x5eASe.ku:|e,6lWՏ'*#/g1 kh-~ K1Ʌэap=VFoUocls !\C"j,wH$u>^'152(h!We0=OE&,X }i{#YPf'Q5A $[24Ll' i3x U9Ӿ^bu,1@]sjD`xJ5scbKs\ďyZ&kXf+LI4w:B%75uqB^24D%nc4L㈭e(I'u5Yf9_R=7Au@4jZ#n>g<@]uiYE]&"VgJzB|'$&5(0 ѭ;."Ծ)^Hoxb*ȴo2L!.\{ Au2mqBJWSih (hQX5) 'ISD#:hY%?)D 莵,KNXL[q3M =pn"raap)'(% uW5+2 'q/ Q# [ns(9 wP2՛o/MW}K4LK^d0:) /{PN0ițܷ2TNi@_v2&W `:OaU6e =8@j}_2|J.\iZ*X{FGp-ׄj>_F85 PLaq&م7q]Υ1@Fj9-~(s+h9/^Q ^eYÙϜq\3]CbR@ۨLԻX ^5^n%f(@81YaW)|bZHn2g σˉA eܩ&"vyMb_bt]V6%,3 FaLcn.*0\)Kd8bfT<.L#]<3,OF&ZQH_k`_ど>5P4&ӉiZŇr;ZV3 sH3 :\L(*,DQT-j7-0s*0LIEH%Ywnә\rFDt\APBD !^N%R-pI0z\*8!Q+R_0erT!CM.[h8" ӈ\.UKb0{{zR:!gO x PWc.UB}יzXNS) I[4p8me P٨8 ڦWIxcgdȊY6asq[ۖgsBebm/BG+p@/ºĥDkR1/<srƷ<.z ܣAwqj#,Mx,&@-ԥ W cT {%Q!!YȍΠ>K' lJ[-QGr9"_2BH3D`/ZRrT_$ )34Lq5.'1>"*"F>2U2(LCbS1fT~j>3A"n+x}b S*!0\4 ;KsN*]%Qgľ ;0gQaJD vL\vwS,* U&ɂ%zfu@XA/;SZ\g^&+1-BplȆ~`7º08^̼%" F zZ- 3ť(/33%8qWZ(_3rae T/]C釈aPE5)hpLeG1*`lFZdc9ʳ]1n&bDJ=E12\Q{-a%Dp"6G11٫KNc._:#!5LLQoCE4GU{-akK%B Lf6e:7lbfNЦơFFP\(]Gza^F{Fmn;#M#C]!QοQon#/5\lRJu93*u(a#-ŒY-Ei:Qq ؋q1r7x!W(W3"g%,2sIU(,+ ,!K|24N< %iϟ뙋,d *sTx>0aKg ¨B% ~*V%XSE[t}K&X_RK(fыg2TuMyO3d;MΎ2\Ure1̘w񂨓5a0[1U,@W0Q DhJ]VSQ;T6u4aS t Tcژ-GvxK:3 8ZفDnȈcQ rrc5j\$-gm昔g09@+VGpʁyba7CitF˸V akE&<3* by{,sd -Q-w-[:܅2وrͱ@/$WA^wyj,$3cfX ͅ3t&@YTN~f:Sp)hn#S虱Z.YTfLLD_1,j:}G(*lW1+g⨶L3ycH1b%YX&(d5_ ^?VI׹HSHC%|Jpe q{vKX-b@UBaGQѮ|KTh2ɕFl23Q0Q u_ɻ VW7f؟~/f(2.u6 *jUkL^pl}Ns6 HX /^e&(FNۇ{0+і0t y.dF+.Is5VTe<b~p%&3JZTYe[MJܩYq3-E2pPzOh3^Zۀn=?h!T|L1VD0X XSY3 ԮSc0 f#EFj#-J.v.C;KEHW]bDou.EN MƜu!$Q*6pɛp5wMV_*V55] grv[(PPj}ɠ'2WJŔ7AzMbqPVüKpa]/M:Y![P*k ]S 3*@7O8A^/%I#Wj@'J;'i=E68,|:ܽ,e]l|F]% fkq*?G:bŰbdbݳSkPiOR.S-m]R=]Jyf;5ke5QP?؎pen)ҏ86AY%qyT~' Z؁5F`5WO᱓/,cʨ[@|UHvv<,x R[& p87Sn/aktv%l[+: {p qF1QRF{ne{Y9YX>l6bS/nt} |i\թtJI?f/&!l[ry bRיWYEj$eWc8>%,UȶV$5+͑r eg2Խ\JQybZ7^Yle(N\.&FA8 '32 W1i$fŜB:4+%2\]b]b- Zf.ۍ0(7WpVZJ Jc,՚d<mZAXOa fkU{*I,[P#zԵ[o"K*}EbFeGDX·9k0=́as: Tq5:Gǫ E{5!lLHqn`cf]h53+BG#xf 0ޡ¹ ,|LyEy̯N"t’JƙҔ`Ô(ZLlbU1)vTfOWNvA`*pAP &$~f:f>U Q lTr&>v o]Kc )x溊-Lp[?'FRHp;*Z? 1X[giAZs: y3 SZb_$f&v4_P2Jb(9u Yy@`u,!1-2ĬDK+͸#dlFi/p5p.ZP\W|fxV,иCPI[ )b,Tske1#295v;`_%πGrO!'3KK]ʊ(DGy!6I_f`@ zdF(_wm9*G8fBc dm `MٹF /O.kke#˰AZ%j a,Kmk k4d 88II dJgP y&&XMPsd_>e&#4UufG"5=.l:sȗ48&[ GJ[#bVUvAkBe7J.f1/j=ƘLYP(Og(w%iBո6 (7ms[ͼiFf_/Y/pt En%(k7%p1l_hYK qq51aU[L .,+X콐1Ȧ|"55l1L_- 0M̯ѝZw]0:Asz"ڼ~;=Kd/rхXx&&\z\PsA-JRӅu2nXq ʲoQ:|ļZ b ~j Di\ 1r)pcRiTjrrn]);BUpCnH 0H{AfeblAoliʐf+G8ƀ>!xa,QX_C; P|YMlmiKԻ` m;M2 { 1Yy nB 1^i9ۦ YSk{36) Qm S8 8io:P0Jr9@䀛pG,m yF P+$8+eȡRȨ0/_DĽH%: `CL05a >EԤİ<13$ƒX̳iKf|"2g*]ʀ` Bdc B.)K#%/Wi -X"|=ET&2TVfk t, G&88ڈTҒ80V<9U_B,Vζ>Ml TmG 鰘өC:TGkK4D=r&f4 ie{^:~e/Dh"VP$4u[u٬䍌P5-t͛,s)mr 'A6QCyePϹHSb԰#oP&U)lǙبEףs rD]טpyeB,q* Pb}DIE$XK1D(&a#FX+Ub.#F'XP"s\1x~PތD"fYfW>PFmA8/$ebZ&vl 7G/kYdw 2P-X}JA[rv:ʔ5MK(}ny<okS̖WШJYb L؋[)G/Ew/ ;U*5R, b=$GPWF|JN_ C1/r nX8]pJ3QirPN3S$Q.X()hܬqe i]˥$zI/),8%AAoG/p[@B.KF@:f_8Ñ)EGJf"N8 /J_Z+!pi]ijl_[6ġY-RaO^ղ__!O<eUf)}pکmܙǕ!4 Ha?NDk74_W;Ɋ8ԡJ 63\N+ˬ+w),Rbi_0%E=0Lۘ6)K;nl:Hdy7Hl¥ xk =34c_6G;gM{VƺN8uEOxNjI}7DgnjW9v>{D y)0=o/n`@r]Z'!1AQaq ?JoS$Clˉ7 >29~$`m-Xad}B?]Er}C&\Cd1D䣿N>/,',>}{pA'X,흇 "0L.BlBJ6[t4>!OзߖBzO9 -an nCY~&m$Hm$ Ð,pewrXnڜ<[[(C[5ϒ?K(/ >,}JuH6@~?@cnX޷]'XV /c{@?]-˶Ōw/?\L.Yt qFa c s$ٰa-} KzsXDe} м_%;aېOO-3;3I8 Y:O/y DW1G~]ϴ,XlٍE_- Bx`Y,~<9ui7<,`"$`wV!-Rԓ-C _o6e].8%=lO  <{&،J[hb `9Ac1؊mavwqs#SŋmmY`9bXIុɇQw[vvwpKq|[~7wYsl\ޚ?C kDP'IᎬ_9i卖EաySn[_0ir~qeɐ7LabȾY߭-r`jD? Z$fx;Ct/BtI_ lrA:؝vԽ^̍['dr-޾Gt/a9w7xICnn'ӑCK1'I=c.؆/~vOil9xltrmFPZqj[[H0o'2_*]>w O~JP/T>~aۥo9|lrݛ#vqqhe_=1,>*!rP;tc.rLC/`-X̽аXFmu}:aa}Q`XSE6-Wi-WgQ]<6uxCu7Gmo6ّz[ 16둇n  >ZśΤ0W)HsaK=reMm5`'uɖydnDA"2Q4.M!63srG?s| \H!KG_mpՇd]OFAX=r93,۳:ng*t={,*/N Ċ}0GB#*,6[Yf"`Ę"`c[Q9-lkfI$IYU^I]vcІ![zIkd,|XM>lض2t}]'0[^Jm仳wmq;RR;r&Gb(ݰԣ+٬i(%o/m'dk̙`'BkxnKqSb5gr`!^d ir734%]lo,~P9cp;O(A0mYtoqKV>R} ~,GvN {qfup ;YX}?@lkb},|C n1\2r)~y##YBH ݿ1z'#pgv>KafD0lz[6?]vmr߼IIT-Cdeo\Co[fJ;`A>ɳ[ӳ|B*(Mt6 $d!!,@n@}30نXm'aٛm9N>- b'mױ ߦ>~>|Klj@m -[vF+{jUXw# x r۫'GթPge>|}e%1J6 lZ@#]1 -h1uHDŽq4F_QJ7&ԸvAl另[n O쉚Wp`<.5\q4݆MY@2cOi[o~y}e2ݕeՅvtGYXr %XxF% =L#be琌O,)͍|pTF?\x'd6?l%#856ȽYĽZ5?J>,Z#ezX6Ga忛+XT!|o}(9aǶ o@ppN6lAI]d lk$}7axd2LcVؚ^v F?㌫x.,LgN˽NjEX$DcˑHx#}1% $?ͫz"I+X]ސ6`r3&eIRIp!4dc]Kmϟ+KGRg6 od|r?CCvpdedx(> r92,4|^>" :q"82;c !FZx^qmaGqa܏< g|< 5?_J[>#:X=X\\S2Dws撏KEk1w,l80 s-BX/v B֗8! &[#c&9,ѬqAb2?| <)= 7~`W 01-8OmDl7vm\?X v <|!5c3msw0~ s3:!p%i*W54_D~./-8kOcY^%Cvͪy5<` 3; |>igvuo;$0 4?);xm7S 7,پ#xjDSg)?ז=c]yg30r+ۭ!8G>gxr CGW‚q"}gY܂X[r~I!hy< >[,=a)ðiYGbXG7-K:xZ"}з|FL%9l.TN:~< ?K>,=FaIϋ9Ȑ^O؉a<`lٟ9ʜɭgN3y`Ƕ%"-ͧ2Ylh͸Eƙ6O'r*@`R5/Y~5 O䢪aˈ >d~:5&V0#Çn-W}G6w1s ko32K,&=Oa a+,;$oHlqqKlu/D4JbvX 4a!3-&vTgd [T;9żr{n? _b:6'bh0]ȣGؤ8(壒n rom[,wrAǰO.ф@hBC8ˍ{(bvp4'<ähG璼N\Ne'.x/ a՜9eE)Au`=_,! eSϓ`1Cx9.32ZO-K8L{ۭNdKvX7!P2GБÖCWɬet[On>E4%!Ao̙y 0{koF`\2Fb؆c;|{?e.q`օ!־X8{%vqlSH'n͘o7<mu79 z FPp>1 F*@2fav!؞  gdNVj/Va+eF@bddB;=~WtAbNLN;;߻|6dFn9o!*Ƚl 3,HuKx<7ge`Jktp 庋43|rɴdx=B>>(8auCOZ;hp'=l`~ l":nBՕ|dYf/,nO-;"7 ~%dsht;`NYf\Y1d7am@Mo+g-@~ykaimu'@Mquw 8ug@'=l\G''Moq)93+َwuсwϬóc^9N#1{a&޴fao^91X w!8Owwy_H>&avalm1 Ae''t,'\ MY\Uˠ|Wb ò|'`8%y3=|$,=-yu e/M$#ddtNlVzw_Mdm̿/g ČY~ `H%^2: 0$ .G9XEly*؎mjԒtY!ِr,= Y f\7~G-Y67| lB;03HόSv4;>nI|e1>rd&<&O6Ss{>1ħ 9핹6͝Ȗl;0&nISo,H#, [f!p??+siGc1VDA||w C9k<&_! n/#)4CӶ!9 ] /n,>mmXb}|IQž|a,!^|0mǖ[#X\9p߹xÐkűs,ԅ3K&=zK-j3 b>=ZdGlv8C6Bdyhp{saי/#me/'͌!~l$[SpO?ږ90;32nD&;WDylo=| Ũc/1!r-'r˙#n-u~rm2M'lv$A 6{t] knK ` e|],Z^ .J[%pF췄'۳.?ݗ~ 哶 $ݜ-D%؃Y>en yl !-Y2bzھ7g;nY߲XH~VχO$9NB]^@--w9l>.!VW,XE- 366lcikyk;!~dÆ^J~OJy.|ۤOd|v'8orcr;L?Zm&?k2 u2ͼtݷ]arN&;!ؼ`zޯy~Gܖvۇ-3y+smo9d͖UYsl@ $.`o# bY^2=y fl(mvˠ3+yvM$S>O-T:Ƕb-'JoVōD'vL=Bv#9/Kp!"9d|l{2N~ИC6 @FE;KnnRMe~>}9;{˖;' daA}7ll]Ft,KĹ]?2Wc>2wHذĭ'vcl5QݙVRYu$&0+vyi_> ,bH0Mq6۩8'1qrRؖ>lOIn,ẗ́//UͶ$[}r3 _o;؀L:[V= Kfl."с]erAv\^VݞOll@A񩮎=a*7rx, M VuknnNv]/`JYfK%|L ﶿ?g3Co˻+/2,όCOd3,6 6 -lXH\!%$GՋ`iu ;,X@Ig­[|e$>B}6K >7j#mݖwd6zb$:Փ?2ce 5MAb ˱1PYg̲X݉j.&=d\kˏm!?(`de6VHGR22}D$2VXːkya>t ~FsQ ?yl!/K#F$"e O"#h0˩ ޥגc K,!|͌ rSr$o"fٽ#aB͋׉p?^Z9e!@~άy gs#C-,g9hyzeҠn>[-6- ,ӓgTĥ o )(lנ geNz/Q`0?DžzZ14'VI]Oc_ Maj=gHvfpۭ;Ԏp~t 'c071r"9b7俍$u.håDcz, \oVB㿞;2R gN"{qy6]9oo'^8>.\ !l(WůP,C#,j= 3]'}wV=%#ya[:u '!LS!{0χ`uwNlj)a`s?/8Mb1H #_.64`Ld_>Ia,! {fz x;a!אsFkkv>ɿ;_ >#-I1 !zX,z+Rɵ@'lj߂OiUTb2CxbY0o'?gW!QZmc;b $g ;nWb㄁LH2OL{'v}v$鳣` bao~3!6.I $wC%qV[V <˾;jlCkGPnH4_S& F7z@NW^]%lw@lpt m!OukbDp;~4 Sg[vn_AIӂoG r O? $zZ7d2,q8y[)~<_凶%Yⷦ#ǎvF,ѹ{ $9m!UVf=ZY~-\>Xh&}~P粉l6UMCv澡m;M`cedJy xXfJՆH_C1{kI-2N=M{>,CW&by~2偄brǁ3ZD(WYɎ9&*vbL2'ܿ^WH%!1AQaq?v  f+B10+a ijS^a5ΓHA݌e-`PΦdpIdQRwKfd;ȊR$Ma ^P;^^HcX\J&(7_.⸮czTs([~^9$ze 3!OwNx:Ct"hxV8$f7LXQ$S#*l%8|du_!8&JpIfNg3@] ($${ řg͟5N%8$A qb54:}P=QrRMDd_6E*RSx3d\rX:duN",$U=Aq*F dӂŤq) D3JY1"P3D8 W1X :l -CՑa ^iHJuAY9n,LXT^xx9"[ 7]%<(F$s`¥7q(S:쮀gU9}Pd@% UbrJyP7DB(Hh#K;t)ծbGt(,V* v Ȉm5٠oy\\+T(p$t)t'"1@ieKg8 *eO[im$,^g6`{ c0X(@ᝍSx3ęW\4ƷFUd8({R" +"8(:*pl ]&ue(@TmLL:G,*ԙhYCȀuLUaŌ& Sw % aU; ˈ0B~Iǻ,Ah1'G,t;TK&eADWHA8|ш#OŖ "(NzX 䲊(Wf)#<ĵS'$l dCցD VџԘ\S,eI+O$aBp|uN'Z* *`Hx: PZLDPAd0xX9!r: Y!݉ ҀLKf :RWP)h!5)N%)uƈݕFV.;#qY (8xRy-h V,ƁM$&b\ s#Ӌ 9R[/v>a >sjЈ֔K#`+#n(Pv(@R;goTuVlP-0e֫+ +%AC3w&`XCG'u;Y1Yf3YG =Yc$N٦Cja` 0C4 'SΩg|&3MLMʫ;;E,:-yfqINSVM1rn!,K侬8U` uLN)d5W،btkZRԇ7ř"5ט>@lltn93-L"Ae)D "'3@jykt-35Pȸl * '䈓7K)ɫiID%yS&)|ME8I$xH@ߊǔܮwZHgV0jKN ,d!3e1A O d23Pflpjuj @|\%,;jZc,5`$ ߚ(ٰ TnS"`FZhvss@`5b:sb28$&x'54'Y"]T.GA?E- " dT .||k=@ Kjg 5(@cWmC&⳨ a/ W.zɋ &{:@9+8J#^) xݑx\S}TZ!Ps\:6P'YT"sAHO$y(0uG y=80:E Y|RhV,Sb*S%'*cΨ,(qTs"Tuz~H9:b ! ̐gbYrQXNDZiV38fV-PtI5ĕ"]4A4%Tġ%E$1-!=-dfk\ )&fl9w 1 aUxN#S$9.pQA6 av6 b (z)ɋYNƂb\7qr164`AF%5.*%k.\Nii_,Й g,!(,fɤQXa6D+_4RVA!f$jAɾ5` xZF*xHE|٣9+X2AykڢM᠁6|36U h Qu WB3x%_b!8QS0 %#`9D7M+aasI Y"7:%eQO׋  i 3"UVCL9Չ*XwQtQyR%d9Dؕe}U `fiȲq몒e2PK2R*&+a% sNS@JRƖS B9**}"U 1ToȱR@ٛF$~{ü x=ӺNKb8 UL"Tē4}Nab@rh{lF,P<:݆♩ɕ"υJ7>#q/S' Qߋ2 LcB(A+tˀhW nabXK!b`D]軚{hDM$J]Z0,dw s\G:KC Wq(b.1 %RFdV.,  MWu ZEN'+"ɓ'F'.~rg r/_arG4 Fjh#@cgufr`K : j˜-EjR$4\_ 3w}dunfh,W'aw %Ao+d$ϛ;(z܆'< CJQLRb)a E%LƬgVL);wwLWTQȦnW` ,2'3Qq 4Jk#4\3H1nR3#$x=et3%a,+LjD0I⣈!*1m I UK!_@s  ؼ0{OE,vQYX)!n d,qHt0>l0ɷŔQ  ^ lrYH Xَ*B6rBDPj& V8Hu 12j|UU|d;8`"@kde, ,e͞`brȥ7̻hrPy0lzݔXȅxue3 !(Ȫi>&T#waEiYWGv.. n&͔xE@,/'y~+fHU T3Q0HN⹙M%Z>iNb|XAՇs,Pሱ'%pRݘX>bj1N) ..,CX4㙦j%6KDEYH́jiWsVXXÊ%䊄"H$u6A&GذMaV MdH+ňn̸eU]2r %y ^gT69CgLpjNQ30zp3Van$rV^j/c1E&CI)l:) 5h9`eiV.rH&./JXnDaÚJ/$Y% )4:cBa%0u< G39qWqcnUKQP0Uy@RNqZQ7}Rz qBT1,Ԥ`Q*x>&f )a 6GBwGV1~@p+u,1pKE3@3GiΉ6: YQW&`NNz`g澉 xД1$&sRWfua6TZQ:)vXIhq) Xb&P)L;$ ťj٪bBXɆfC7"QML*RPTߛ`H0h XpO1d <2`! `4Lkڳ$(|v^+%T.T8AVl*= 4JA/!LXմ&XՙfdJfgYӋ%U(@IAGaE>."[^hdVGpmepD&"W%"z$dPo1F|]P3/ҡxRQp =Tr4H Y!:ςni"*Z)RtH8eIHȇ[ .f@|UN.,]*/+AƄk|qQ7N8E,`DYt1 d{hK_W=|;7dHĄYȂPe.R.#^FuRFK NmDLO' b ΧUxC(CJy?5%d>6Z(y*3dYi:'%I3j0E&^Y/T/Q~1>*Ң,c.b:hFGO11WwڂQD$!WP*#JSO`5wGN8#8v)]%zEzE>&@JM LY&q5mT c5ܶ =0Y/>'0sw1=͉F474BTIt~?[.ᯎLY!,#7-v5&E0is꬙Ua;$Os&eY# /( lL@W&GJ8 4cE*VaJ@~,1d8MO5?['3PI$Njk(⺣cfŖiw2 +F"O&8h즩3_H%q(YqPRcঀ"A5A@#57"ˀP0>qePsV'|8`"CD!O=U6y NbٷIAgR 5jy⤊T1d i9t$RğJtF⺫dI' J" DΊ!"TPEr؀=RrغduP#6y W@ W7r<qJ.`eKĵZ$ $f nfX! C|Y1bBfw7"tXvETt3XL?Z1 /v W yJfrG7 `X0:wY@N!S*#`@4Sz(R(7⛣1 UV0F#@Ye1@x,׏!~k0:xMWf\4AA#HAlks) pgr%dtHÇSL!/DzpvS© D}VJw84n9gHҐM=)PXhH 5fryXA,(i+9[(u5@&`%+q]&lo(Љ*:.0#˛h qɩ Q3E"w IP yi1$ 4Ƃ%@ߚd\)\D( :sTZ<`V n8kyxy!8AI0ON۲`lg 8K??5ٖSxE0#/ I+'CU9gx ZZ~|R␬Ba$@hc ]ub:3@ 4a*Rf̌^hKԖusn3< ŃՊqB kHQqdWm &ʽ&)kȒѨs0l*sc2|~hg͌nL~) 3Hx$80Kz85MX\0`W)iY! GfJ2]`Jb\K`$ Ȉe"C >>N!gO_ M(8! ~5ɟJC/N1d|~P:V%A*;6x'UP;|b 9@+PeqX[ DJudKt" =Dv](L4brC 7E2\>yˇT Br. ~h6J|fl J2y ʽf3K9排Ib^zX! >jnn(9W!J!;> ,o,+PĻ. 2٧!F*2% xYӎizSYRb!1pjFqȃVI&HKxEBd`!tz}3z<|дЙ\*Ht?_PRe0E5&yS. NXLf!;M09@PúXgNqDysfӕ$c~(KVeyP.X =rg07O bFL!FG7L;dIϽj 5LnIe*R"gDa&s epP0O\TYˋ <8%ipH1i7̏QH'1!g1FAS&*KAS5lcw"@#UT~d<،2Oc?s"RT;DGWzU@eaPF% `U3ŔX!Iɏ'J ;t~A]HĔ!z"^Ōa}AL#1#c.!fg!l@?ʢ>2vRShM"|+"Ԅ|B.PHyƫȜEgxO=,Hh,)o6̓5֮:JNuAGֱs%XG^OOڄ0!v#ʋ8 %TXsk."}ԨT[Xb !WCTc~6 ɡ$9TDOک!ҝɈqL?55}@٭r^! cxɂR#_}٬h}[Jpk1{OgQX‘6 4ѠV1MO& ~1*RqR&D'K~\H\I: 82Ff|ٺԐ$dr*E |V$9☛^ H~)HRt,* b.}&p$H1H~Rę9r2|E͐!!M8gA>pXEPq:Ph\KO 5,aaAӆqIY@G&"7L Δnd8&sUd s F I\ta " !p 9}fQ6[!>fYF*e@ OA 1a g a! s;k \sܿ6;b):ɨ݉ S(Ƨ( ΨQZ-%[WQD@NqtSHRR 'AA b Q87)Ҟ%8f ŋ;QL`ԢNqH?0::+`U3cZ5EADl `qdBfH&zyfXqYQ!&䪔R4G,3A [˙M&835 +GX$j3&؎JKgڃ&L]Oy>FCȄVXUȮ_&;O%ɣ`X|ЄId1@s$ .)u%d<'bq?5ȉ :Դ;&vf>,iL{pdic*!u}ZE!_EA'{Ma|B,vhiAAcHwȁp"|MeKj Pw51d:(ƍ"kuH(ck)XHs9ʦ"04v٘CpІf[A:89g40T[9| ", 3i7Y$bE:WeN,@zaW~n$dsb=qp:Az4=Etjgs<@!̸i8 cc4RL4&\B%Srkk(Gc2Hx!IF≀@*2Ϳ }3%#=gjQ0 B)fy8"s>(bW((Gx H D$%#q}a:dx@ĺ (CX1Ou8d9~nxPT'?w2Gf'*P}z^(֐:)# )@3`9k2V% " ̒Fq~=C1q"B6L K) k !%U`V=72#2$eS{ᡯ!12$u2 j1H"`!-d +U,ƒ;{\!AЃv)bD1@F QIL;$.2$@`bI,ZeVw9,MH: cϛ`gn:0%HHG eTT>Q:8ˊbE qH0$$T2q*f֬>NJl5bҌbQ-( %Ji G2Qj FVdsOCc:"uNR#((ԿPG28ǺfjY YG93# $T`a@_" <e:c84+,яB Jj:cw3pD+HH iTQ x' MzV ! 1nxj8W q\4" 3')e*A0-8gY GRwU0|T7*HlYsp'9U Yt7AB@A'uZ*oQ :)%y@l[Zf,DpΘd`B's˸D@!'QS"nC x{şB_㞕Ȳfoctƌ2@3T 1'g)\TU%%E3+:4r0TL @f@CupFSDH|]cf$|*,$j3B#hQ8[d4\.=Sif7|1>k;z!ǎ}XFb%;}(`qtY#qQD?_y`2DYd8x˔y38Mz,V4/ғpSY]hLib~H2c4CT 5]IQՕ v͒3eC'<ԢKY. $V0Ǻےih @,a.)ua5 JN *<pfs>,B.u^&TQ*rtQ=*"&5_L8˅$K9G8eBDki:483$=$a"9x hH ͒aLy01YK#Fpe"H@a3r^*+0gWuy'\|y!  ʭXa݅X.Hi4 Ҿ}kLLf0"Yxo &BkQ繡lu2:acJ 23@92U1J[W'76o0ᗈ9b#Oc#)hrC`8P- کd*+168e͝qlPfBNMë6Ԙ%{ Д8k yǁcˊ!_U) ]Ŗ-)b8c5 X[N+MVL$Z,U g?8}d"B`IV Ś4%Ġ[|;$~窘'kɖ@"|$gK7H#D&d*Ws͛ZL.d>2zLƷ+!Sl);4f!6 ~q-RjAj" qqL(NqZhQo1&R"%ۜED4@C8b7Աɚ@\s?k03b wHZAKZP:iH.Ij2lX5p*cAh87%؏SQ/-m6z.iNa&ѵX:33"Ak_(0v"CH5ibFQ/w4BfR28a`65e4#`@#Q $NAƿa^2tklJVpCO.B1"P#Z +!ٻYY"7rhqzlֳ< "2ɩ V 0$3W2T=4A=LRw??K? AcoD-yXgu) oPPDV qI1:@!r4R:$RG?ȭDY*0dKẂ^j L1dpѴZLn6-xXtV;i9.2"+x;U+3iY ,)\01'6}*KĀw #AB2ReأXeՂ2%L7,:fےs`&$3D&~`4 O ao'4SO.k23E/MF )i()ˆF؅ :/+ M#~v+b "Nf+N.K= 6hgaZp pamN,l2# ɶ?(0N4#Ԛ}n⯗'iYyTL~&Nfyf04qg&|r6~iS@V1#3 {p'Pa}y`yj` f˸`Yl ezj;ȿ4ZD(DLZ*¢,+ude<HE{QK!~zuFZ(xJN'W:X όjNl;:1Aq>Z $%ūZ4L,Ӻ`$=Xh'M/\GTP&?5ĬD6W)cFh' 3ߚ$cBBs0A$iCUeclF^.V:0bZh'Hq:.M>+{aEG/s%fV(` Vq0QVBd|,уZ@d1z@QqFMR$7:Kl LgwT%)pbmŕ2St"}La[wR7U f FjݖC偬ORMoD DSOgS.sTI"gRRƪ uqbsP%!vision-0.19.1/gallery/assets/dog2.jpg000066400000000000000000002612541466211133600174240ustar00rootroot00000000000000JFIFHH1ExifII*bj(1 r2iHHGIMP 2.10.222021:05:10 13:44:47 0JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?.K"*iGSV!FcW9s3ysLX< 6찣7P-̐]$ޘNڑdUG #P9 ى(dz{W>$v%ZXƶH0*Hoj0كndR;}9^Ew{Ud2Vf؞{\VpƅNZo:G{u5eckNZPw*ˌբfy |AQe8幼-tkաo0u9 ⹝AV\+HșF;i%T<]U\VL6{<{V:kG$f'o1ơ!9b?*ʗ$u;cYkغÚOѓ{UADQS4K gm\[d 9;@&F`Y97|;R(R #0qOut;iX;d`ڵT(+G1緵fxgJIc !0ku 'Ҥ)?Y.f`ၩo%bbBGz#swhVŭɞp~`1")ht VR)0bJ9xWvNpkn Zvϓmݹե= v9D˱nثJ"f<kve8EYY*GZ;D)8iZs啁E;i&SR ҧыJK(KrYRp94yEF=M[z5W .=֘q m \k]#XgP%[۩@9 XC{7z6άGf6QB#Q|jXY|#ҡ[Ht6}۱H+.;5إuu9"[5Z5dG 5…qE#c1+kIp9&/Le=Mm Uz\ʆdS@z+i]dڞ(R cְwg5XY|OJO(qSBNTlkE)=J !+[6`GJ!ˮl@Š1fV4ڕz#AghPnP]qk0cj0<)\v8< 2n,V#/r9⺨-! f!@ǥ^蝙ŋowVma #!Oz>ȐBY0[_P8=!LGɩ (;@,{<,{թ|&qyn\Ԧ4dEު"M|yp:Ӗryj-DZ{#0֮ȱ(Qa4^V9mG Juȳozգ9HM*8) OF@"ڴQ#MG B֛"Gj4S謙=ks+ɝm`pk~uʌy=[g̀L5HΔj2̟|FKG<[׵a !\[1GkQ1r7=*'W;րa#i?;{/޸XqҪ Ik5r19*݌a!jCdjC>ο+H$5OZ-QT\"AP5ϴqI|:0e$;-yHv,jߜSCȒ2^E1YW '~5*|\iOH 3ڛ*%Svm4wsVwL'&3'Qwˊ03ZpMRӠi>[6и.rƨ̇}*-I>EsN#8+ 㠬0bHӜih˺R3V-fܯt,D\-6(,#K8W]Eǚ>A9ȑRMzo$w1V5[J4+O;\AM]~ujǿفYl>:tJ:Ijzц5CjacqO١sr}fd#w5kқk J~POI0(2{6GHTԊҋo&~?*t}XͧlnhX/=vWO]Jd嶎 C{%bc ؃֎et(;3 VҴƩ g\ŤKxZDg*[ky.KH,jbNoK&<0pWۂ\]xA&{UI&I"Q2WwivDk9&ME߉pJ+~`PCz !cEY;AXRwgam'xGGV9DR>Φ Vw9]Oq~ bŤ->t2, U*_SҨCr5 U/ULP.3'֣Rym&w:o>_=VJ#?15iݶɝTnoO!n:un!{Oj-G6|qUo)^]S\Zi=Nx+\F@sU-"o^kisbk]JEHeGֳzE{ޓةz$`H5%C.Vmڡ|Ux9'c<)oEJ㊳(l;'vTJ`VM qkL'I<+ {;՝˳0`W t Z$,QYWYYUӎoTlEsaOFp[81n VTɭy2hnGJ |*)g&:M@;s|1;lr".T[Sf3AFԳ:P2?#Ig 3jg`N0qQrd=;Si) g=jԴ ̸ ޺+6 JFWlc$Jƛ.R $oڱH[浯\Ƅܣt\!Jd*(y^᷒*<מzzr ] N"~z56Y''8>acASxjERR~PzjI1:-rmUll!).PcqMybU$z1kJ ]QdF֮[Nx'?I*zOEa}tnAj׈nɬd.\VCN Q/bqt0D\"l2j5t[,+ܛ/5F3>Ա+w⧍,s\+on~oϽHTr֠ݔUpL< ԸjrJPj*Ásv4,k_h;U d дKo$j>Pgh@i%rJdz im@UWۡS眎^(R DesIq5"n()Ж6򄛁=ifHߚJB]Nq. n*zW"8V99榏1I(Vsڜ[Z]N;d94Qֽ_fTs4aH_J3ᢗk6A* m@|dWSwsovxۧ)_[x{om5$&+M"Yhԓ֟(|D_6ʧ 8`z[+CVA =As] ?OPoRܧ(7cN#ыbmFHW/5HO .UK՘?tt!C*xS5P\⥌8>e$0ZmR 2GQR "9F>0l5̹Wabۈ^j`ɝFRz2Lm4lv( rO1Mtv`6٭)dgo͌V;܀ }EIi 8G2NG|C\[G16W g O_E!B6Oyx1S ~)^iqעzVdgZ0=+B+ }KeoS`2E)E$☶V۞2940(ï]@U2A Ԗ),2ʥH2ŒAW?qa:zlҲJ qF+ïQ+=^2HG?z廖K`AǦj ˑnWT=+ʍo_opAfP k)G$Ez+o\ 22#ɯ2p$%wmn+CG[ 1{Wx3Pkmqps+s7VL36}MmY^&4ٶtFj}_OԾO'3m%]zhh&gwùqI폽3M]/TSŒw?]MSUp̤z615Y#=X,U8QоI[,2AɘX9Jtss`${7+-JEDZe$ ( 45t44_Fp(rVz0Q( }Ѹi0̨@Y;±#m3QIGVˀ=if[U8-޴]`6WoK;=*e_`G< m|Χ -`Ȋ7ݎA*p jC:T*Yee']w0Դc+yΥz@Kdt!qqzcD`Ogu"@j ٮ4vgRBѫ{{}oN#j^bAX חI1/ r}Mj[eR)I(&ˌqZBGRA9mRIET<AX ^/74}"3Y!`U*"5$ojslJi!\zu5k$}q/eB:sq'kWl;a- <{ei1}ц%\bABq:qWjG)sNJ(ڀNzHTV/#$U $;ZXMΙ CwVm("fH! ^ Rpʎ5 q׃Z$Cz%f'9ĺ萰E~kP eUg 7(dX.jwی>ޟOʺa$f&+ezl:nc8!R;9?ʹ47l[޽6ÍiGo%H1է TV>URЉB7;Aٕm (5dDRUz}:KC9'zZ9 q $ YıHIA #-ǐNkK}f#y -Qʫ8#GQNTtbR (y0Zd 9l~4O#\OZ̑hׁTs*i?w':Ѡi4/"'i,DS{{ xd zQ<|Cqc4aB< ,w#,yG\t⺦IN?D&<.rht2FX|GN~dhd2E9FnG~ΆA**0q:"_aaئk%<- 9^5yh!6l v$vit]+ͷ#S*iBgF*mVXggj FRF0:a}OGRCqQp#Q{@ XnuX3+LG%C*3QM$q=זB:ǐFF}xV솦r6hxتd n:ڭAEZnnv#x%0N:U;mVm ' GJ?Nl˕F0yroxSH$0%08#R#OnlvpqHY%Xd!kBV[y|A XeJXȣnN1Ki]iM 9z~{8A{g%Cei*٤hpOn|b9UC*y~nQ`EG2I,E7Ь$q 1 Џ?>;2T_:ߛ<@Xi4g3}#http://ns.adobe.com/xap/1.0/ ICC_PROFILElcms0mntrRGB XYZ  -acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBC     C    r}5fn!e҃Y0٧,؀ځ=+4JE;mi5bBǏ*) Aputs.'K[Ȓ|$b9ؘ(XYdscIS5-Ҍ1'9HT=O/ݬ%{1ehjgiځ(N:-RhL)5ԞҺB1@ 2Rbe4 NӪA V1$Q0!Q*JVb  YIy0t01bb`od>JyzC&Rsp)F-gAYj V")h'%"F b!B".+ `і2i8Z 'Jgd,I@±tjPsO1EWAnUQ80tG5|r[1eP3mVK1> &-bQR(^ٓRa&bd!-=<ɒ89LTYi^M>5Ϥbܳd"Þf9YCE bɩoHv/tZg6oU[3+6p`ي&o֬92\l1 &~.m%pkmdr5N荛LѲOm) zjb!hA\^Ɲ v0m4IZG,xP8Ӑi҂h]ݬk:(̽ 4LŁ%ؚ Ƴ;9*N`,tc3 :y Nփ AT y$mx( k1}xl ȷs( k694$w`XP. 3 ~ida u``=c*bEp * X$\4`w!FLͲ6Go 'j2o$cS:8;8۪tnId;:|dhjŚd86FLD+n+3ddN4ϧl"V[^VBТJBjAߏ5|/UL0Q4'z5zI|Y1>C݆& =3݈%άH̲ i!+Ь[it,NjEV_7A]>3LJ F%1*ci (<^e{q$!ZKiHOÃJ}0~?Bk)=ףӛ-yD ݹϻo `gst 6A-$2BbD!#3 'aQqಉôcFr|!_g,7fNr/X.9F #OC̒db @r(%"s NN{ %XºLj ^$ia*F&{!ҌׁFɄYH"U쁙h,{7-dr*Ǔi({Vh=鿔 iݼD."`&/JKhŅ<Gb,Xqցf3F "!hak7܄䔐V3rr ^}$^T\MT(ܞ/D&/#1u#Zµ(QH[؟O锆*R$bj1 IL?7Fy:9ImK]|^踄ZMmKI;Hm %Ȃp>;T<{9 4(g?H!Pߛr ^aЧXbf:5Fo()ۭ8Ѿnz`%>MS{F/P^S1ǝSO[u%5 n>޿_FCm*BNr( !L -{ axm.Ɠ:cǗ3q I??:<:汇GD<%p:QFޏztr+bh(R!ɩ7ֶ`rʘrTf0"mOYǶfA qu2kŧi;0*7w`4=7Q&0Οts5MsdVmp bمU[8=̅xfLJG؄P>!mXۈ@zO[G u֓ ;OkKDn?HU{xru813DV[Ih~`ذE~)3i, .^Ab$)XSLYZ9Rb\$94 m)(}Ke뗧o/V֖&~ܢ֓ۇ =-+dT^^K\KU( ɨmfm6KrΑ= ypoNt=4FŴQ~jޕ,1ѵ#$V,3%>'XƱ+h_aXbF!90%ւX {@]oJw@e,q퇤X%lM&Y h Zleao'N9juĐ$۞̣_<ϣ+:IZN @,0S \P>ˣ4*ȟԆb$A /`[̢;;U&-@VvDHItp֑wd{Uxvsk,mOp]J8u' NVq\]wnmV -,LcnZdfL ri5a Cx;V֮z4Jfu^(;hߜ^ b-ʉ;|CsZQz $,ǥI w }y 5N!cȢ6Y<=59۔d% C[1ihhJCGG.ؑ26yySdDj1T;xkݾw֍:X+:xJPz'f=}NHՐOyHłIഭJ"L3!&O@HHOX6T+]\qΩ };xzl\3J#%DH*V2FCGo["1/rf:/;mZ<TN> BĂ7.u0r4M'Q1/.5PbB0l2r14h:+h%[tlRO垏ep<Rp#NREiJ=Ț`3.~Puyg<8 ciK@ZiBs='ԇC{zNYaxn5Cgkķԕ3T/B_Dz,FrNHV=̶*Ѫ(''N篵pMB%5|{gv\$75G^z`KixŁx^7z%:*EOY=l9^*ƏһP<_=4x,,%\ߒ::{9@86VZCvῡWI־a#zo<6ʃJJ"XiJ*OYF # vfPQJ69K^n/hC{r]@W;&t$-sKJAF[:h%p&q gnbno<7-uryxF8O?_!FTz,p$DZ 9Ii$oE(<Ď9\tJRb/$(EOW!1<>k6JWђ=(=#NMF+'wH#m(َ 19^zlS־[g-"YN&%-.@\vyvw6kVSy}~PaW˫Hd 3Sqh j6Åu>(DFK!YhPd> y?$v-TIzywsI65ty]9pj}.fXprҘß+U^aʧe.h)'T~PUC,JHzys'ZɺdPl.b{T dZmIEi)zD7N4iio$"THG* J oE*l^e;O8_&"ӽl|!SS&gNpwyϦYT 8YC,'m|f;~yͶ?I=ZkΐHz?!Tеu`Jw^cOߣ當8?d6̂'Oف1D9ƞIMy C}a'="#P) 2:$$dU$*VH'%Q4Aĩ؝=wIK 4f'/,d"e1)$'{wYУBcng4%`tẢ= e b+0aɊKIc %^,D)-,!"12#A3$4BCej9ȝ$U'~ iDؚ~V\V*UZqVG{l1<t\f|6H1W7&;/JA'XjT/JæySטw*Ȍx29%/7~q52݌[%˙j/j >4et_$C/%$v8p/BS>T#G{ QeK*7$w֗+ |l}c+ 0:(#˕ԗ+\JAxj(ҳ\d$8ҝGjQ-Y7c)XOgf?+3%Fʸ<"| \__hBM@%rpF7b_X=yrc|*ً̗KI ;GoHqxĞO1fGjv?U*֪Ix%QܔՐqU ȈR[- @>TXTPd$.VRcqU{@wG•:Ty2WrNVPGb[~,(yŵbq/|Ս_^D*n86mvHG/) 6/1K,L@kX)5`CX 㣒\OXpsXhxuG7ſ\x=o^L' 8Wtv1ET՟4\c |_cU7{T(ZA͏/Ep/b>x܀x6̾)čA˕(Ґ/*HU.:uRӃ!p_:# j5~G%d1^!ˤ`mqFaJ\l*1|$I:AʌH,j];Wz7F9(0w~2Ǫec6o@!zPZCXC"o⫯BJ5rE*ޚR֞g+j&i+ƒ^D"݄5d~2Ga*\ȽVBb>l@:w1r,qFy\EFN? x_x%)wqƧ]Ni_h k([HM+J.[N_;U-_5+a&[/Bg=wy\˺'rr~u]{qTؤwwwu/|/{›eAS{\5D7K/-*-UVPrԉ;BMQ[JC=LH~8J-(!+_xwSοCrC=nB(Ea wZq.m@?^bzjUiՏWQvHF,c^ %v )) rGFP#Y'- F 5兓(RYBtW*œ6W bK(i{ow"(݊m޻/Op | {>e}ɞ>[ '{T{z?l<\.DggeQyb[.C;h(}]_x֬D!/$ T䖐֤/ li)~kʙxN8֫DYu Bdsc8~.Y^͋v5ŧrj(-!.9Xbi*^95@|h˪n友x'M:nӎ//CY]G6q^qŎrO+ 1>ВhA;ISTEfKT.7Z,ؚlw4|Q;죫"jv9 FjIUVLsf]|#d!Ns>K&]韯Yf z%198;sbf9aBNՖ:KT]-\Yyגa RRu`'Ujoo'BOc<؛c-^Iq@svQD" o8"ݒq`Ed“ɻ"2"8_EkwC*L]^>8T4 U+_2NOxq,fo b#em㻢c hXJřO7dԙA)r#:s/N~ 0Ӑ czB\ϷoI$}L}…;,^p_"c7-wtmU@ʐq󼨒/螙H$un:֩A,:uB_k9 Iǎ);M Rֹefȷe_?^ Fnmu4UO2? WMn^("}T#TCP#^K~N vy؁+Fz%j呬at(99k tlB{D$8Ȋ5*nAs0'M}|?֣7zΔ#~\WvID=x\{/\07넫D5b,M{,~͟Ll`OEcC6ΫUʇ낪t.GWWڨrg%DžIbƎ5( =2 |Ay"g)={I:Xs~2s. ycRI'E˜^jWt4udɬ8Պ>L>"pG`TƼVX<1v!O_n10H$ie 9@7 !/p0Nd$l 5ˍj"1ϫbt9w?_óxcDĸ ʹ݁rrZ=ŚXxJ[ԜO۰- w3T5[u<79kdqD-!|dw6"FΊHsdW{` }9T]M00-?Уnyk!×Χ=S t~q08Ǒyz 7 /`I(E6//)%ެrr \&xY7_?ҁcM&J3PSEDĝ8,ZɁH׮K|0 oEaf #ZUKΉn/ 򾽛upQ7#KtV$<Rfķ)7l)b, x ,tQG`N,xӠ/3`p[RaQL`m)".?_xEb|5BHr}Ld&26SaS ,{켵xY u t.q'yqdH\q!9ČP$j}~h\YyvCY%RP:dYy* QN#$g _u$ QYqe,Kp`09\˜)JF#qguWN"LKT1\mSyr*';ݝyʄ}V /O7< Mr{춄z'[&?hE1ABc\[1=3Gic2_e6.X]eTq8丄c8f 2EmjCx3xz߬Ifu~8| UG\tSi/tJ< ޸= r~G62qHInY_?j Ň7 `)BNPr?W'N\F(GK90\dćI$C:7 2Ƽ c #Jsn9g)H)ʼ{4NL;%ڏ?s(OerӓE2!ɕp_̞ .Haی\y}c ,|WX ITV(cgGu>MS1N\Oz^FD-W{{߆W?lO's8,icsq#Vb؂oqƲz TI#T˄!0 !(P7f)!WG,a-ύ"hⵯtjVZOC|C"Bߗecq7gɠ$%e[WqLQxOBC*0,{Ǽ\ɱT2)1eB $ *b2,`,~>,T J%1ޟ|[.c#*p62M37(C}W\rB2t轓$"Ӄl1Ӎp_+ 1GD{!J3!_5cTr3P;Z|5kY9%,&QB`J@›uvDl=[<}c~Q8Ѭ?ƺLy]xka%.D=O7}wFr1.$˓i(Gɭ$L}ѡ\c{L I5Ɍ}E)N9q"Y "n*H Xp9a4KA~ JW +QtE$G#\IcXbrSH/IusLR j yZxNlD_^t]x&rfd8""4֛慛d#ǞLrJx*Dž༸.l#B2;.EF-\\.G"k|Lb.ۜBF}?q9Hb+)HQN5 ?k?'G ?Hwبc1tl"Iy1RP0sdLÂg~!',QcǙir 43?CT cHطHJCZHP[6/DC˘ʸ@1G ,#.I20}F9!#9 쯥6JOiF_p' E(guV\ef;P^Gr7-!#DH<,dW+$bћ䖤oo ] LtaXM.6+zlQJ +u96ζFBif6qY0\)rnDޠ#.\GێDpe$NWw 3Hb}9e,%bcKbIFh]6#Pưr\@GU$X뀡E?S˪A0pGgÒRJƎ=쑢#Esro/"[tRS 65h6 iL PFj*+NnGccuNAT ;Nx?xy=ԡpl/0uZ[@o~@3eYg]>z# "V(V ;n #򅶄3qoN^_?K)=*'$XLb ('P{KHbOc `Պ;=vlF@.'qe}%1~(rrQi˘X?fI)FT"Cpr!+LE%ÌagrHŔb&<NQ.2I?YEX柘 `⟧%H1^2yQ4\^n'42#}\hY#{ϗ1d\5Y)LD8Rɕ@%JlQH2d8lϜ\P w!GɆэo>3 IIHt/| 1rphG8#,D3^$c7)gX1$B~f٧`Js 7pL0REPdK̲=efɍf0`J;c6ċ߹#ZSpa{C;L "D2HR!%b0Jr8(K ŖcpØf",1N"q6\"%)c_FyRKI8BN8ҫȋɓOE& 0$.X b'y?2X6=CA@$(zӋ1Hl\[iNdRc 8ϝl)jE̼,rA)#2YB^G+!aF7V(1{$|'DF*37C)O(lrC6v=V|duLn?z0I>n$D8 с`Pk'6oDDZ=R{,Ŗ!KHF/5ࣱd8=JY#ţ%88Ƴ&z1,p2AHibpBe189NNK} Xdu"`GRRXEQ+2w=B:tj9%,Q``I2Xz$I fzŬ 4Ck!!'%݅ux$5ЖlXd#⒄E:6 ^Am&МĆ9Hk1c})@R{#eDZHHH4u P#:51J2XkȠj#K '+eMuYQfXp`'6!( X܂] &Z'lb#JSţT Li)PhGRϤ;OA(iF$))CbzqÔŮ #5R+''%JkHeO Sп. :ZMXz@ğ `d}I҆6oF{Ov("K :ܱkPS،#) 1b}Fѣ?S(ӳ]O?O㹵GGgF6̢zjQFN ~PfF- %%8PG#IoEdzƬcckSlsro8{jzy&i aCG9x; ~2tGB0XJboHd-hC#ց oIOٶҘ۷&Zb>'`1OcuBthSoŧP|a?mRԿAU-JPճѳ>$*l֌e$Af:m;?阰y\Di>4GQb-݅LukVapQu-ʘ 8,`ͧ R8'@iӻ1g1_qV<+FݽR[tH8磻$!YC-w=d/!񔑨c+9@=yx$kN֒ؤjֹM4Ix( /}?/]`WI2bI6!܇  KL[ʞz:g*рlVenH6:#ԆA#Fu " dFcVS7E[-C9LԉۗF0wyȶXctWs/ -AL_1TPkD⵴xRP7h%&B Z}@4$4igk[c BXJ)|3xv3S -re1!;?1MީTZOz4HȍZ:STzS@|J%$ |]Qt`L_Qo6/TKDOa~S2<8Ջ,~I3H,s~^dZo4Z0|IѴC>MP_ 07gmoZ,3rTnynzO;h:uXnit$21BQOXlTCOq8mOű LЦ5yYF >4R [i8ǀa?Bq >vO@9JpO)?L8dĠpJPa'#Œ9(ٮNxN! NNA2 Sd=s&B vϙIJ)K(9!F*Ų~Gh2@ߴy8~,b9'x|'!Շ+N5H b<baa@aF3t-4<5(߿)vo+/]f#%8SEO?Wvڶ~ݪʛH -S>Kd>> QJ?L]ݺ j%Ews׼䤥>Q5Gv}=7-+;U4VNN,_`4kjZ h]q?) t -g;Gk}?0nL@lSd5ߴ(ym5koՏv5 !N'FOlQǀoogF[bڗkc $1Ie eP Kf 2Ʈվ3߃c?, bGS 1/lm֮|#`4ޖл[es-e!HhG3%?Re:[R1^т]rv,I5R|YNc&̧FYAuuxMuy`xiZjǮ( 1%! M8ɨ 6?P:cKoPav -=2ڼuT4àI /lǂ8۵+^c )J [/l& B,eނq WjOO&YgԻ{|Cl#~O0S- %!(f5/>Cėzl΍{c >)YE]ɬzihܞscN Ц hjH^M/yXhK/Xeg0 kl)zv ^J|rAjeVzG^)jBPZS0yɖq$mTέz^2u>>d:3ӱR~5~Pڵ,]R< cHAM]zAJpSx##rp^HD6⡫ .e/ܗlכ'Abűv#Mycb2_s[3- ~hg7'%)݋۳Bq4CaCK-cp6F4e;aF/Rqx(`qc,Y{cCzRֺ٣B񻥚V,nF0[Xh;ږPҖa'FtdzF-Am3oRN޷}KZ&lc?lk:Q]WcwmĢӋ6(C)aoݪҳbCdvD'AմF3=3(cD2%5*jFR[rWꍶKNzdك`ڗm)gw1 ;{ۛ_}.:'0ɮiqgQ(! a֥'D>RaK:V)ں)uOi:1!hum{jc #`4(j;cG?)Jj;AGR:!1AQ"a 20qBR@#3bPrC?q {D;tXp)6)EA<`)8 ]|PU>F8X)"!^zɺ)@Ahe<uhOjO'ʟ.aOj8rLV*`*U>d kW^ 5uc 񢯓NbuT@9N7.v*8g| >C5ƪ=TUm Rn{wiƸ)<*SBO Gv pQUN<|'ȝ)Gcxӳ>]dv#<ʩTRxWO"lyЩ*;OW \{tCؓƜOiɝW/#ȢȞG=qyRQ2U7d|1ʂ 6[yro*QPh|JsFs=Tq.c_wPA aCEvwn xcvg+ic0iYuuV+b01CxӱN<1XV(pbXV+2ӍYoyڊUswVK,ysYm݆?@TlJ7+q SXɹZVMQd&Tv̎15MgYA#Cs ܑqMYV$jj5ȵR.j 36K VfQtU/ E18%b%Lj )a|Q]eč5By[R֫r}ҳ2Ӧ~3@RY}|L~q{|CE^novxycޮ&\ +20*迢V1BSͪ>C%'TS]ntpb=S0PQmS˹ ƃRT0Fꭢ8\cK cac* J@łnʕRpD VnBOցL S:** u*1FVBuSm<K ":&5U!n:'fY5Dt\n-Z*S3.z (\iޣʏ4- 4  UJ}UT2V`YjXsEX sxau^).s,`"g {꺔9jU&t mT@Qa|^~:O TaR bW$7\٭.;/(NcVSȮc;!eO–'0;7 c:QuP3,ӄsُ&Ç(>OEк.0ThwWeK?o5r-3 kU<2{)z̶5z ƉԠxwqe[Zhl2ƌ7-4B (+b BÆ 9 QMA^% &}`TwT\گ,yB 8;#K<,+?UOT[ WU=xiNalUt *y N5ROb W**%sȑF.Ԩcn:Dft `GY %E/b7^6hgH |;P.C+<gg4f4 7uwxN)Qێ$ܳhUQ0k강Dӄ!.DhEGJbE.qLp`}v+ "Qܡ\P߻i%7#c[m)׷^\,#TKXH rB U4u+ErɞBh>\aL56.%<2kHcE2 }r-i[b%9l#ܮιvt)8UUr+営FjW-wsHU)]w*(b\?wE&fCw'-T']k7+A1]nf弬ƞi a0 @W&*ʯӰQ2GRi qmxs-QupMQԠ.'z⭏4{AhOs:6A5Y,i7:Q8u*Jrʯp++腯!Mʑ:QUQ tEJvኍ'~tw$*`⩍'Ɍ'ucq8!^QU1ngR` lV`.:Ss-%ĢC{D-xaU.h@ˡ}bvD6T⹀i8f=%Bj4#Es]=8c }^6]8GP+ xj{ݲV1,{%c"ݕa~NU73=~X7,UV`?T GT;d\:+TО[;CE1tkS C{rObPU'pRExUS4kemchXhvʽvՌDyDUBG11vf vO5e7(ɨd}*r88pml? #i?._U^~/vpSc6}8a%YR6ctr̄לHPcԪtTP0u9U)#|8sqT&q"GtLNUl(Rl n&Z9Sbw>l:"Ӏtm-hKr7}Jk&`e.wr+&VUDv^|1ւ$N}ChG^SFBO*>ZbT+,EI  @*tFȜ|2(uBqAZSlB¨RXBVu/ʼZԭeOwjWFXD\{M6*֔*7N氶:[e1 wV洽wZ$04uQq!;J1XL=Eq!˂2tj5x/=_$7s~7+-t4 r$ZeE2UvS6R:]آ~!lxR'=̀YuS[ɍ" yF鄍f_\920Zꫬkq? "v)wfvnX5E&-:##u66דYn/v vlj):UeegfmKhߗyYZS3Y\v2=pkQw(]x Qx`7cxY,Qcwr'TVʭ.W[PiLBN@wD:bhyNa|2٨NhP-p蜮UwlQEV+_斁J Q[D\0-LvgiUHYAneE:u7; T; cTHf4 ?uFbf9s畺'@yЉOelV^f  EPجh *,VCv }% Ք t*STEkgTp- g*tģiE{(&8:2,'&RFPAY+4VPhhzbJuԣPH`s #b|&`Q8I-:[$`aT݂!+7MQ.AV&F; :N ʂOu8Ѫ5YyM~_7:޽VoZ"T>I9k3#@WWU7 M-)Y OixqvG쥠T',yQ)nT0_qYvQ %sZ\^-\uM*LхݗD*"gŲnpTȱH?`}MyHE6; Te8dT숱@F@![Bֆaj&'އ)!t%sxm=UX@(GOz)ItY5z/Ӣ&f'2fd<Ӣc6uLʶd D֨ͮ+.s^.Tװzf hՊ ۖ4 ߹˷4@4{NmtW9C"8HNnG?:ᆜvۉ)@},.W.8@GEp?CpvLsH8 Mih<F@srVb[ CqT'k ֊DHzD+Zm8RP# 1(Ŷ#7s3dX '^ DZss CVcr^!̴|Hk164YyO%h`xL:`9qNʷI=eed {? b@'N%2 9-si{,N &n2\S`im'p'C9F!1(-4NuOE$[p@hNnPc8#LS<“e*\%4hb'@>:=&2w` 4.DW Q S4l u0c@cNkf'E-ʏkT *6jЮ'4,"/;58Cv04'!1AQaq ?!)BJmq7`ݾ9O1@^:ELM=uQKӹv+FqU;GԿBV\ R&TnQ8ZT DySLV;9e)gR "4*%G *#UC! NU3XQ%B^Yw2{.qTjg"Uae,PyQU/EKuMelL Ո3́Ka1l7z=G`lA +ԩ⚐G\D܌2A WXZEHGR`b6G, "V@p .J~q&i^ IXf;8v.c4cjn^b 죗dń# w@y*Jdĸ!SC/5(1R["R;k^aW,fqbQ0w-CńZ7#.q7cS] "A-@е6ूfڙdS @a ˁ;VzD.+\1MF\MUhjT|R%jZTiwEQ97ֵ5.pb'BV`@Q %%4P@"T( ]e^g<[2K`H&aAb e4ǶhLc-K̳$1."Y7A,gRTf% 1B;épGm /\1˔ar\0Crk/8C+hYEèqR-S|eHq.QȚ;4̸ IJ*L4qԸ'ڟDre+zD"E_2jXK-1w2sÅ]g~HpH3k1%U,RcDdwe)W)HZ\ª'FW(>"TA_Y'=fgzs%B!Ƥ.,wϧFV%b 522cƢܽOn#)a8yLs\uc8"ge,w(qp20KQSj7+3K MZw}G֭1s7B̥S+T(XLAf@LFBe*V#! Tnq Bf1t?4F=)L1CqWQ!o%µgm.[L⠕`%-Pq,iu&G ľh訡K8L͎RhX'"YDH5Ok#P1hYt)&|FIT"c3$rqQ, n7jUyB\8Pù\@R ւ1 +ɉNmfQ-ĭAq%gKe*B* `)OL IXǠən&N}iI\ƒ2byLQ6/ZfgL [*QHn8Hj/))Ffe dÀ6XG^ e#!r:D˟E&3 ȕs10HSk1{U”䱔c)t( CT!.ĵik^,@3/%[̸x!ĩ"%SɄ1/Kn:K p1 'IQ.`d#TcG8ivƙ0Q Tcuz3x дcH7x6Bl5Ϧz[ x\\8J$"rt. qUDĬEXe>lzK\|N#p&CIsY1x8dVeR1ehzEQ=FKSvİ=iT/!0 K'l^*g& FafZ+c H10*q.ZBW`G"L%)AQʄ\L)W43|-)L% T0CMMCQa+*Ch#` wf0ǜFEh` Z71@̥@g +3mD]M ^Mnͣ54M MaHEB aG2Byf,Y^DRn:a )\Jzs(J%VNSd1PmXb>ؿn$J Rnqq>|QUgܧ{_3'7mTȚn1m#.*2W$0JuIybTPcaU 2 Y]CN3 3R3& qJ $m W􏛖W8;9Wix"Zb#fq3.kEX2lJ:P(jtcbg8ezg,ZtHfbк@z? [" ^&ڗOQ]SPPEt aSDL7\2.5)&EOU?8 i8]9\ ]!d=7W3MT==eYt[CPq,9-1l b$2V d \*İj& fTTN! FE2d%fZ>kxhO-Ōb *UZpm75Ca~3vJD\Qn:K֍5,4}K]DĠcODm{e=QT!AN%Gj٨Z3pM 鑹3b (A K3|ֺR.u_2_+Ꮦ,[仾%5c'8*AM֜V2't[Ĺl!.[ԡn3 ԬDdFF$@Hug9qNKrbie,9IEGPJ5Y.ey DecA;)>L>CpRו\%%]+ O #qFTeus:ҙfCu}??Ɏ`̺fpR8d,үAi%C-*2=m4@]գTF3B[jg,|fcmo oQ5J%_Nj+2`Th%ؗ#;L-4C8BiϦQ@z\S0)rPX5LvN!g# @IG4($WV*>%#ıH^9(kųdi+906CP|\90􏌙Q ɐR GS&`T1 s370P~W/)e*eo̭x1jQ)[G% y4u2?ޡGtwD/#ı2f.^N# hBo@f}ݛ ;lC琎(pbLqhp*!R)TH[=G\a,Tnh@Y"!+7qoDA 4:{cՊs=gaZWeunGPJcc:1c]_mزk "ཱJiEGi4D+PHf1@%l2#rH.vD/5 .ߚAG)s&1iSGe<Fl̯\?1dt[-%5[ ƘUE3l+9l@yT<36T-7r7ƭ5(L](KHBȪ*,2HEb%|JгS  FxJ3lήh1+&q3 Q^]ODv83 "UU$5˺e th? 2%ѱ)[4qΎќC۠:L쨤kj:\8QOQn!5Y@s/N 3G2bs P2=SWP̣FZ %2cǬ>*⹧ z_Op@ T a-I gJTS&\`q2_sf7_ &ɿ&T̚+ᾬ;u*VU37)\vIV] ` (J"o+TNKe#J`# bf A>di!9sk:Nywqlz$s}{ac\K|GU>glϙK17,.vRõ yٺ~`t 'Ľ[h/ӝԩb,~֓qXR-Rf1kzTA}5zwA%p8`tMroi0jzڿeg)^ -Lpan[9Ĩ2Ռ;Uf@Zae FDpMI`@1E CE716.X삤x XPl6|~s<-h|plA+ЉWPDs?ܥ[c݋g%|j:&]G7)tF%Bs29SG]ANDpnbtT9R>TETTĤLhb;v%;A\n5 -QD0N%|Nsu*Nx`K#Wn {}fe >~_倵̾hМ.[t""PAAR e7=?̠IZq3˦Trit~ҬpaGx鉼@" >/ 2,@\e Ls(*Uʔc]h6*р:!bt*6XyйR-pj `K]L߹V)վa4Vj"xo%luXq#\p!UAx5b[c6jesEHfq|t:ʅ$1W룋A FU65pS 7O]ZM&klrfjf:07=SeXj_4s Ph؊Pi-vQG1Y)F~& \>8`~[S(/iGu˫>m_guLP.8;^P  \1>1p[&Vڢ858u!\GXK*10#ig0_XҦSZk\}B>ʹ_ķvQ& g 6jU˽ q)A/9cSCoԩGp%(D7d-nG-9fpވ;zb G>7%*696Â5\|| 5](Uٲ\2\Ys*UqL,rGLXSŊÃ(̏PBp tn 40J 9/WcALb'(208 9~h9L+=WHSUPP4gREZɡ}D y_,:3DZ9]rd*A2aW~`t@\?.hu$6͊lZER?S93ԸQj :_sKLȋJ^ ~s;V@TƊG CrA ~w>W4Dxb;eQWeh_ʴZLP7RԚhm|#gd@|@0WSq0>tYĭp?-tu4o212ܚRCE3Z0RGfc+RYކe| e V92ٝq/0aa"J[6,γ0ӋJ8%5* AJ,VdnQL@$"dM7f!tpr<nU5nu4\C̃5?L^D&=},:8#Mg_¯cY \.U^Ԫxr?׈#4n-B e%㍳8"uF_Z~`*9j:WO3=i0jviѯFD;s;} }*yv1xnZlB233l>wx{\F*ղR2FbՔO#;XL_1"f7Xܣ$;yg2*)-awz_WP7pZΌAe3~.[3x6-\Ci׏(+<ӸYkYr/a,500+˜㫞VXIRo)уlfh<ŲNF"Fk7p@H>qr^HZh{!30d|#DVVa KZ[쾦-n.LK럗B/sUHƑVo\>;7cwanB"^P>*P%OwJr=EpZ.AĀkDلsB/qPh4L\6DW(@Pޕ> hu J}V>8#`F\m&9.\ ^>0VgtA( gFL I<|W chuVn Bp1Ru-hizIॗS8*.flPԏ,ڕobnᗊ?pSGec .˔W []ٲ|iBP-?̽쏶xGR}U[ 5g16F"$ȱUg7eP^Pg<aEGùYi)U.-D^o}qj~euM$ \@י?1*nVm&E˹t7y W0ygtHN)Wf&` ugx?=z_RjmY`U۬r@ %0so=A*t|7[_EтhMԵ\U)~ELኅ|3´IAt2W0{rEuhG'&)@DU r{LgyFBvK]i/>@، q ↀUq3ZˇHlQ-/hӊךneVL2jҏ40Lؾ r4.QA6JŐń`Ҁb:U0&X`lwVbrˌ kOBnw# V .eV^b(#(c]Zܫٽ2~gnd.,ugrj00egbi?{xe%ZwTÖ#6nc0g/1`M/Ow;fˈ .851ʋs%l%kKyQdtAzAL\!DKehhE b;fԪsU@kj)ċ|ΠZ %;r$nⰧ%]+Svsf=@_?$;8'/c$g1NH%j̱7uO`^5Jkh₞9"ZhӨÍP='hN6n&Z}Sh4 Spm >O`:_v&^ P컘wFuiɷٶi lK&$[^Rwf ʽ)VgUKPg_2|"Ɣ]]QCkwgv[K$+-.soz dfXti&FZSQT1joth8Y_+8!)4؈ 'I|]CƹuIq.s%Yp;՗@Y:Xp*(7hME:UW#SFڃbpf,. %v<4Ai&^uLHҝ=Vù3."#ZLӡzɟaU3V`s=6l6W56HąG>]ꫤY1F>J(89PW#/1([e/О #1Οiwů؉e'8< 9R\r]?]|tZ㮗Yb)l1]zE%]m`YY6 dLH@ jի-n!! Xa3: H@%ӕ ~ K,# 9$&QF2 s7l?,4eZ*: B`_E#]4n5cû 60Y*؏)GD|\:ӽe#NkF ~uw' s1H,)!{zJ.puFLL+@(uTD2 >5G#Aa*O.m3w G+ʷE60#4)ȿ:Wũ WTqW$;UNaNCpؠ_A N:kn]߉e%lyl 7zĥ.[>˗_=B/!Oٰ`Ú]pKmK-$>obɏad7 6#g~?R;{d{C/-p$-sYrە;g!3l-߆&'%#FqHʞ50Kv>(cÇz_6r_c(\|/,ːs- ,{M؆npk!ρϢZKїmSߧG2.ÓmlNw8Ó!#lF{ ;O -9i~u̥!e9tZ d;'3#{}N .%؂!Kf|h ܰB]>y.Iy`OrNN|dO06ݲCGg]|OI"IXdwHO>aq{/"!c|`=HI1cqY&[>Gn~&LRÐK ,D!`6$Zx/߂B/ koCy0mċ_)b[ix|\"}+!dЃb8DDLI%>Xfd 9w/,ar{/˛ ,2Ͳg~we9yfl6~q.+u58" > a\O YW0t1og'm`a1Mٻ"AL? |.CdYROoy(=5{[,5[>+e G D?.{&E;2O?,=d L0Kc{uzlugm_-m, "[߶JanQ: ٿ">l56pA.Zjx.owQ'>{>cĶ$(mmDAn2݆{1d۱$a1)=XFJsb\l/zD=??LC |ؙY9g`aכwX6MDo[}<rb6[b0vRa?Aω>}g~װ>~^[ v!d@"k2̲ 2>I&ɑ /e1-K ;K%.+ClNž;˓tGi PI(Л;6Iv%0Yn]&H!$[o,ȇm/Ķc`ɏB{$1 L?~ W%GoNϓsfyĭbIa)33IzO5cq:&2&^ڵ#:9&OX\ɲόϯlfvRf^+!A \kDڇ&HA?"joM &vH1 !#-X:o,2hCl- ߿% c?3`"G=l|~%ݑ[ :cq|GJ"dPC9eY{O+)[+dd{>NAmw.IoZ@jH,Y0'>0pM-}/ɏ,.P|ُ#VA&9iˏ[8"dٓ#7كmø vcϋg,u/Ȓ yHL.`2<Qpr-d %~]_\^+r]& !fς  $B" 7\%, J`B2|L$(ۏ!l{|n $$k#dYfK2jyϦ,yg ~RclM, @693~pKާ0N gaz|fY051ec],gH^/CzGJLX'{gb 162˙r2zN/άȢl{c FN$Il~uY"%.\^~|؏ C&rSɋB Մdre~IlOa ɟ{``~Ai2*d [oրIk%8Hݻ̰Y .??95Nϰ| Ƿ)Y<>5v ->Y$[FN8$^L7lpxI-6c`sGk.GI/ϙٿ]YeOI۹ =%,oZ!(H|mDɭL wdc4hܜoPay6t'eox->kÓK|eLK.Yʯl1LL&w㸤r,-,Pi/A1Ðob3o_3qG`˖>$g͎Y/ԮWdv<ĄF+xŧ3,a>vS?r\yw]|sg;d}{mGPg݌cE]Hxs%u03f9.HaZu \7FLBCXy~Γ _ȶyo(Xoov2?S#{#';#ܳ㲶>Mݻ^^t0cX^<ÚYurc ~ڱxxfL \T[XvN$0G-2t>`v lpe?#,f˻b]gpK0YY8͇Y&XX"0yN6^NGB ?N[uzH>Q\ob4fπ!=zB7Ŏ~`˒#LSr|MmsA$7R5`eMe_ c2 WD=^& f ;&?ě?P*Ӱ&.$+ ]% kp#Ζ6P%GǷuPeeJ}y`^IYy9pgЕan $I+*#y̚Aο0ş{yGlu~; d#MGoqo0X?jՅG9uK) $goD80;dYr0'Si.{h/oyă?#'\4ȸabOK-o!a1u rNɱzv]9cpKy."xvHq0G`!V$bl>:}O,am&xm ǐ#ݗ @feZ-,̿{zGƵoo#% $Ƴg7e9rTd[kcˬ xkȇHveGVio/ݲ0d\f$6tI_N0rw,/> i>K2d!-'hˉ,/YIZol|`Y hc %؎v˗3^/@A>޺6B(ZdGag e2_]aM~$y2$ܹ8?[m " 8V];^ <@xg,Ni&MrGد3 $]g_N0Qq6>Ho# z8cGՅS;/KI6W(gٻ)0,ѷ-a)y3 ! 6᷻P D'Ss3;O-m]`Is5A.XlF?+^]쐏I޾dBLB=_!I4W/R='eL}f{8 4r4@=O q !/;gE®{udc@6Ȟ='[?Wx~j z$< ]Ί? yxsڮHv\v8aŏ,3bY86z6ȡ鬨_L8Mjn3ݛ>잠y/6'\EKeE6;p1&܈D/N7-r o$!1AQ aq?9| ^#/ ױynM"{.D6J2..>7X&#.7g̈́c2B+DI NX{&&J߅ m/%ƭ[kP\_/߃ɲCg߯>ܶ;`Y|6_-V[!*>GD?#I},u} `d/~_2t~Yd>23/䌀Cω1,OHl7Vw2S6Cv\I-/ϪQ$|lɒY6ϛ Kcv\l~s\ȼ|>\Rb,#D^$~/}Va.[b|3>l7q*R?rqτ32mHef_.K29eqmtG/sw ^?a'adnK`>cyؒ#\coτyeoǿJ :\| Gd&e߇>6.Xv;,;Cd#@yieOGw;luv{x,XX `wn_p~$ N~.C=gͰ2n& lShKc oq;|ϓ+Sn%m6˲σρ 0k0me>2PI;y,{.dz;߁} m-!;ge߆?y2fmm^gPlrE w/v],>V.&-rpl϶_v%*_K6[KY^%eG-?pWcm&:{mB~m2C'Y~,beon"zFx4UJOb/_ xZ^O<9:RO XXo|C>$uȴb\~wY[$LY;;,m}op4ĴZR|ݲ{)vf ? Z>M ]&{&ɖl2Y ,$s~:aJi h2RcL9 qysl1,M.v>=^<,=^K۶l>sg 1=d_j0ދIĽ]u$KK$\X )ڇ$s#ݼIB5s >1$Ce'KZr=-l!2(\vRXdAٛXdf(%RϘа>ou9sߒA`˻!R Iϙe $|d3V\|dL]"]{ &`~Ow<!|gu!o FtdܼO#%| <_G2?d2m{ 0 2gOf>\/]ϳ໳[߄Qen$p$[+ʀO߂N-.-J19r~<Ső,=Gm @16ݺ-ş;бD[۟YLb>n]IF|aZ#̗>|h?'xS2ۅ^TrwCK|!.' dGv->%KՁj# !\gGU0teEfY_=sm$; Ljlcϑ>BHs&ΠŶ ,1=wV\[J6xw)|C OsB'7.; ,<$-uD?ɺ 3[9 ?~RF ;g-~0[l 1#Νd~~Hl^ܲA2Kcb._/3d"iV=\/|;dk~{䝗Cn!PK Kw !2HᓰYZZKQݹhȘȶ|6e|o${ˠLy)M$;o䤌'ɿ 08.#V>O/Yr=.}|tClla\mr/2GyS42Va2IdW増x2KL[k>AuɉvvnOb-~̲zA,EQWV[ig"U8 q3C=r34 %- (H_,=K+>|M;䭚߂ jĸF< z2d& f{վ[a]؇GݎmՉk9Yz%_a qm,N!c{H 9q"yk)sbq |cޮ8l;d|x%X^ɉ؝M_˓;7{aH-fC.‘!-nl ,-0j2vtPcqA[h7<]5fd:t,}e*d&rs۶zl˶ NŖA^IyDDKCm?[3mr k<6[_ovlÕ {,N&.n;dLG^gyk-gXXr/RpNY{āE0/V >OKx>IL$9I<񃘧qNn^ z#FHw ItYGNNaK`& oy ,ӳ]Y [.Z<ŐzUz.?oٛc묈ݧE>vڲ6,iMbM@7=iL$gKna3cl~L$o0/VѣlpfمK3XB$C{.]{o>[DcNwC߈m`Yj=e7/$ļLudc+)"9v#)촳=ag1cuÒl߂1 to`l~W\ ڸؙe-Y=Ob(Z˥~ޗ037˛?b7JoʓfeaKc!;>y Vmbͱ'O"ſrxw-aa,Zϼ4 6 t̲f sq' P8m!K_ɮZM/FJ|c䮲rۑ%>a܏8'{d{/G c&MXgƝ훑ΘRΠui=- K:K)[MO1D6!!1W`[|VIזٍ ,uig=6[_q+8a,Anco/NμnؽFGl8 |F;ya2V a?" 4˞m3K5~{zu %Nbf{, X{d|M2K Րtξ]O|ޯ|'oupŴ  ra5y$IJGg7'.f5A{?Vm&A7t=HiUD!u@p~,?r+.%#KM,f݀fDe|y+gj=;CK"X6vPӃ-I&$KuInw#z@^rT?b 1ӿ%쟳6r|bYO':lG{qڱ & qNLH4D=;7l8rΘFV&)-kl91^!$(iosdr6n~Cdl\[$dO_!~At e- ͂ݺ̈́!;ݴ-3GaDutNOe*""`@yw/? a(qBo!JZ?1ٯ'ĝ}<˿XxHKnvdloQ~z[ДYq<G!IYxT,Na߁#r~ y''XC 7JC=bp*r^[to@\Ȃyl-~H6fn Kxl{vG؞\jU-17YuN^Ƞz^ܲߥ@6 U@f׮I\_Of6iё_O8 A/ dKl$D9#yӳ8!nĖ |$DR$G ?WaHa&!1AQaq?BEe#lij9st;waϚ@A \"+@230@EB,ɭԏl=9Wud.@v{rT uY) 8#bDj;z4a `fz-ćufnn&w*NW#ZY}^?x%WSc$S*orZS.^i MD^QVaUWud݉3J}Xܛ2X+4FD\Su9`[,) hLbY&\^A5hЬ\lg:))nÈk59EPOtٹ-r#X7P3S(ڡ"$swu *s&{ #H Ӡ{ju UU rPԑv@F܈eWWuQ`kUXn,Pdk/5c9e|Pٰ̒A9:EL,-b973eXEY%yJ>v"9Pu f($Cˊx 1w5TjttAbbh M0|ߐ )_ TJPGPڋ /OUsusӔhQDbo 6&ƫK'Vh1b|U/4\QIيb ȕ8$4.#2qsf0)B岳6 iJ%)M0Y4SdiGXgEzn@d4116c$b=QS.SUP,|j N`I|/2MY=Y.9Iaz<И@IH\rPȏ515E;@M,ji6 }SmZ,Q#NQ6E#1YRŋS-"idf6QbbibDn\tjN+m(S<hawO6LBl6 VNqI݉@[v4Ϻ"wMR^R\"'6".vW/8&EJ~[moh$X7͐,8 ƫd1V5lFz oA~@s *Ȫ_e0UBJN͍Sc XXTs |=*%01b$("rY $Dv`7 Mcr@1DT$%*%7 re4 5u_f,>7YR!gzfQ"Ek6Rz'Q2XHb*WZp\uJX"rkz|N1E2*࡫5IP8J`8ũ`NNM࿊@ѽ*DTcC81f M(&0B,?u/o\HqYU]W&&淗HIJc3@ 6"%k]1fǸuXy3C\a\ e{RIn@F(f0)FN YcX{Q3qF,BpVk$S)`~* Ʀj3 $s 9)Ř1*m@dIrRψ1ŅDuH)x:H1Q2lIi!L=McvGULl.Fkdi`2Q ),O$΀ׅ40`4 bl$ fvwbBVIӞbyd%ra whZ0Cw{;T: $uLD 30a17aV1g y*wF$b v8J262^+FR6s5Y >)p l7*qΫx@tM$'2T̈pkq4F7)Ss͒lGheXN%4J2Qv9yyFU0KhqJ )" *x  9(?E_3sȓsYB `Z@́E@!$D9.mňcc)4, 2C^-6bXxc!ZaUpJbؒ 4"Oxx4PRx$ gzua T=RsF1AqD$y!J.,8)'a|WˌrPU"xQq@0uA*UɨBc{>,`z2>QgL)D֨(Qji:#!&,N֜u䭂;eq^W} rw_Fzj&i\G5S9uLŋê JL] O48),LT7IC6f  ₸E),ny$BLG=K wIYS@D\!ʉXWpT5?uC KxU`QD2@En3Fk "^.&[3T\S 7`A,㩪.V%WqrpffJ p\SR6Mv+S!شr>%BaŁĨLoR\tP8eK 7t7ˋӘ⽆,8t"ƸEB*!MP$J`s/fʗ*&)2E(B4RH.0ș(*|?yJw831U9zv@kWOTVo}&Mӗ<w*U+KEsFy2`fYR1*c.r`w,sNwv &gb'bɀ:q͕H0}R.wHXh,L/U#D,^*, T{4+@.L3X˪ ≖Nb',e&0i Y9 B%ŕCk4lnXGVFXK{Ȫ$ًDM.)#8)" 4Ubg `y &+"Aɢ^q1e9(\,ÈM}1(TI\.izu*WS-rq5Ցt26@7u N@NLXC͋t1Ȟ+ؼrع+⁊o|M)l3bϛ9qa|橁`1 bϚFl?I<ѝ/bK$A3& "ccTGv43zjK$O5#"&?T  NxF&tK1?rP`p&V{(Tϳ5LLy(pb;$pMy^9Z7EODɖ`8~l $<7P0{A|A !cn(dLSbP3' @eaqc.`b뜔/Κ%}Yh5%.l]R)L !j\<x5#3+PiV.?vi!IJO2|`iP1~> ;`?Bx2ƬHl^Y#@:TFGE-IΎ<4aL. uG UA&IQb]Lo6dfub}]Hg-ᢹ YIA$wre|Ye,rhbwZ2DxrR˽˷;c]H̔@ɇ Rf@U?h"w.?EP!>8f7}Q hL?şz`6B)8k,fF&'I\FTB ?PEFzKƪMXMo)dhTLSqgI2r()#531f8 a:(aS3juW;v,' g)Gx {{Jsk! Rfa#& f;lc=ME 1ϋ ^'P|?pB1, rnj\`l`"*'_1?i5<=pRRd_(!Fg╋86n0y" *:і1\$eb] v\acJ*PmDX{F {MS2' L x,kQd?ϯ5$%Ȁ_a +<9iQ\+چ P$h櫆4T3`,F (9MfbA1,TaO, L3+S^1,)fW~ja;k6;CM܁0SE&l&LVX&Yjfh )\AAdvMP+,"3 `M g rDy,C%~5C O뫖b|8'!&gaAt2a2rl|A8S/H-l2AeueNr3\yS1T[FI<` 'O4)5g::3MNKږcg. I?ނ箩xu$FV=؊qF\dn <"P$, |?5LRVYɉ1ID'j{‰|~Zw?1,:/{#,4X9+Hٵ"Xv$2MvZ g͎.ذ#\v),Ն4 KT\Kz3V판3#/?nň=ퟥ0CLYȭWP??^ }8)'eN& 2G3/Ն)Gk&?9Ehcki/{IeZAxy_!LPgґ!2X& 5e|_bQݕ4`T@ff|q!' 1nP \42X8(_-f'bjA"xh6\#&I N*ޫ )l( (}#$dCMsfK)=uB%?Q()z(%LrgZ LH'Vwr9z"<;d(I/e9i}`lw/xH95xU=*Ls㒻 ? [؍^zZp; %d.S`R`KU7<ڤagMf|Lb*^ֆ7aqS{ߒjciJAQ=]5}, YWI uJ -FXV!łR;T($'ARy xRY0bHUD!DёɀD~iـFag> )^&}hIGtէI{4dFX)&㈰>Cř 261$\]Q)><1xc !7e߲~A$!xrXƬcПpLQpHN'朐 DN iE:+gΩ,diUzs|Cf y5\PG9Fk 934>3N0N,dzʈV!np8적G~ < Y1 RUfHҒ\qE(iL'`œ^& i'q͂χ /zsx!'ƾ G14fYynq".) Zqq4",}1Di'D`V+NҊRr NZ`MT<$,flDTwGUԲy0@c\L1QI &$Xۛp1@SrZ͒ՓЄL0I88D":WT S88\Vh% BfF;b[=& :/ #L qqu>蒃RcOt5ф['3:K^񩮗z#^[ʒhEpAPX=t9100OS?7l`Ȑ(08c_u`E@m k4 ΂09u_n`GOt8W$FqeF/E|^saC>ȳLXǍQ%d0vLE)ى1Ň@veQwv=ѻ 131埚9c;fc ~5[,Q226\b_G\X:5; 萈?\2;C=1$AΟ)ONj[ufh˧ΏE0Jb&ؑ&(5#6! 5/rՙAbY[P dQm2ܗ3X!aylCIcxgW0+ՌUT,jDfpDž 3 L$Pu,Yg`T~ ֨͜^ #7p@SKDA^}8o$E/R"x]łE1 @"KYcT_4 P3t$ +w315XS1*HO 83fAr>[2H؁ RK5`9`߰!#yNqlN`0wdLG05jXS&shfJcR2A1T)2"Bs#F)NReUuPw[K8 p1E~ :a_1J1 2#2|Q`Jו?TlKq{c`,? C§Y9ܩRODj|o#91<֬iBH`3Y/.sQ'=QĒ #Pk}؅aC c ,m\Vc칠8Y)'WI7s m3_BG0K,y$3z"g t8(TdF+&RȴAYZ"Վ1^挃QBd);ɺ1B./ J`3a&\aI(3:tLJ k :T pHiG#)29u.sZ\ʼn6j`s`_/HXϫ8p+.$;?0 ֨{qC6}`EdGfEL10" fg'dGXBu*XL)]p`fFE. ˹ljXF['3x]ʺ)1ٜCOjPl{ !ŠD<+4i{w$j=e^(t26~RF0L4q&h}fcgv*$K]B]}}%s&tf;glu0¼{L:w1 wn@=q7b9]_TW]Ooxݟc2wS3^'=ŗ.!BRˆO =Vݭ_H@ D>Gb -V-NE(% Fq` ՂD,=ghv\$FMk-.UE<zqG% VcO%qjN IeTYb#7P nkx=ӣ]7:8e>ʃ-9A z4by'4'IroטT}#P80{$c*ϓ rA$6&(D$]"1O~8|+{Y Ñ\;(LucQ0⡘6) M x0hZePHNN%9͇pO[<3̲!6 #CN~x7P($|+@Ld~rSjO9>$qߧ7"T 98~߲#%G䙰pYl& X'DD)vVĄwqY$Blh.#ll81O0%M\nV̤M6 bbi*%!1H&4+t#8|HGBٜFAݏ# ̂52w*9i@^%fx)l,Rl'VQbfDAi8 5=Q|HG͊4 ѝ{+V1tj5A;$BPo P)TM܈3d`8Mzä\e(4 9SԈk1#4uQ!,Hq:[#%x$R'N0˩;zHϊȑ4Y}+%O4[e1d$Ϻ39xB$u31 Q=5aH;S,H/XFiԍ'% 3)e~lLjI) 4eb %z/m 2 RXVFbEUЪ.!]“M&I:MCXf#hLN0MTQ zb'];9|<І#O&c2DrJ,9 4iAo9EVl279!t2AQ' ܣueCO"T9X cZ-m# JXq+4212 {] ?Vzj5"G hFD?^9%1 1$gSK8h.W%\Q2`Xz'y0Mߣ]sDeCTt!$3ijgeDܸCN)TL4m)Pd7J$ ̞D:܁0I%$c ^&!̢c~svID{s !SMM<\iYBSɁƒͰ{wD+5  < |V&9沩s 8Př)PB<\ [(|2P9ieSX3nVP&G`ȞXhJBI0c <޲by'@S2gXGl|rarԈ^xH*8u&Lm.a#f(3$qLܮ'wT1ȏ?W`/ȳnyP"ΝbDЄ.tԔ[3BQG '܌j<6!m*5E@'ɛD fydl .Blr %#3eɘN?tB4.(OcqCU !!rn#"KAsλF"B'VK@|ގJ;d(C9TTa634L=dI=s<;Mjj #wt%f \S0 觛9AIBkj82}Պ*@ 4L0=LJ Oq %Yo ぢp;TɁx|~dP{JgVW$V"LdNAqsߪWOQpLb"H%C>g53#5P@gq  pP\a5VZi| cnrYAb>`pLT"<>x1DL7X,1DfY@ pbhNCCu$Mŕ}(Щ,4DLF Z:Nʫ( H_5 1UdiêH, rig GɐeN雙*KZ8iK9ߥHQG;9)( ݙ5s1rd`yNN'kR֯0UO_A"U-0~p$'CX|R#|.INP'Ov"٠lxd4`%Viy:UP7p3 \yʽ"[7[(ʻ' 5X,2ӳ0ta /I,XZ,9% }`ʚh&b+UPJ盚+MvL[N# CDqS'NC|6Q݌CjA Z|t G"'%6k>)-d*\HT%jU$Qm*`IhX1UR0n6`dUDf|?٦kas3!< ,|Ц=!((+F 0:}RrɞУFNdU ee{NSm(4/TsJo7%w2U D?Z4f ,IjNΙ@&brܞF@,YC`TH_*ʆsq@b T\ = {H+CKاUS%_D,auj\2G@q0'U`KsgEő T&@" y~(&.|87Oq`D/$k6!q ? # K-. Ce)/jL@'e?@$n)rQ7B`c,A NJH%9&v۝TA7?=Q nD\g-KИZv׸d'CFӐLa P5e5 3Z2,CtkLSrI| a0wRB3П0OǺA1`q2-I2iylعxƎLֈS>OmaM?8YXtXseO!h\~*jTLGVQÍjϊ8#YA34 y@!MJBp.6g_"˃$kTćVFx`5!k$E% YFA%VePB46`zw5Zq | Kl{ct`|`#1!e=5vDg`l*&ۋĒwR$12gSr7@c2Qr3΅Vc>EԵ a1<\9lQ9D 8NN~h0꾗$N&l1)r"bz|c*:{8U|n$`/D5 #Q4nFHmc +џ-@Fw|\,oGTA r{TSL!T%(韛,̉;p}P";teHXLjR?bvlkYm1VA:3;Nőf0 iI*3A긡A;2L'PjaTInlI#p X22J@cr*5{X$eHnZL khml~Kaf;I "W.`ua3& h梂 UnO5\tqqd1,c!Xq!$"?ZAg,>2 #q%Bs6Cw^RJc!6VȚuh@5B jQ\∡U`KKq r7̓ 5s&1$HÓ~\ N|M# HbcƬlll$&Wu8<G(̞ Ղ:1QATLrk]PH Ԧs+9_{@P OM7 B1"Y3r:|qsBS#ӨRGHHZ)`&"}qr,cԆq`a: )L͛Pv$貃 H.qrIP 'Uf/tGrq@U؁1 s!_T@=(}A8y\)) x#>sbpĆWZq ʔx`nHd\tR%;* M5BCY O%eVp%eFe#.ZLJĦσ3pfot8&Z2A1 Y@e#he28Qcʜ00uĘ@ǚ)T K"0cPtX:9T.'4d؀pBB3s0Dhc5bX(!*|(dhLJ#[B &uӚDŁB8?&( hf rذ`Ǡ,Ms,62D6WuIe!$)03.&U CҊ%8\op`c7zאRnSj .="?,y D7BwTf5|M/5Xf:P }wL>77f F<RnS#933l !$ q?ˌ!Lt% 0Ƭq<0p2|X #NؖMq_x "uT6A. o+,!&K4T e?gx$sX I&LgFHшpx +I!x K!o)|pAqe18⪇(VNsf Vs.  ==|D 9cXpC.c^{ $ɇ4N &Y#3fpr*c8 "KO"56&dM;R)F$t 9!z ىڶ^;3:cre3)<] wX !,kW9q&&([0s4Al˝mTBXYC@9O!y'*TʇuS.?zƇksg"lPxhHI6R(AU <Վ5펢2B#ǻIʱDuL $+.= ?;b3$P ,GftI ^=9 n0#X\ |A15CAi2cD]Oɥ#2( !Q)"N6HDWK! '(:UQm!a\g?Wjru;`/N'5`tA>pؼ\ O8$рBs CJsSN"m9>k!29&"hAH1a. Oۗ/:\^*\˃L@ƬTϗ1 -fl9,d=($vje#JH*醉Jîe#=X@܅^H WI<&}0ʆރ"$J!A )P# GZ65P12^ QpƯ3Ȍ\>4H3ݎ l)gfy10XW#xlF"ck)͒7#-C ` (lFeLHęh(5PYKPUe @!q E5EԵ d;^C0s)Kߵ6U R& `}X8W23vԧֵH$F=fKIDGP a(qZkЈ²LG*jBF g ?]`ȹSwSɔG85g< ;$wD,+aHmf3dYFTf[N3TYQ}S$V?)DLxa uc.(c%f0}EВKZb@ %ϡel(&k,h8>.rM^I3 u9 Hy#٨3 @$&*(@ \/VT@G`NJ8Ki(>HŖFdV2IBs%'uB' '\dDDHkD<bBrx;oHaeRLY LXfsvision-0.19.1/gallery/assets/imagenet_class_index.json000066400000000000000000001050441466211133600231210ustar00rootroot00000000000000{"0": ["n01440764", "tench"], "1": ["n01443537", "goldfish"], "2": ["n01484850", "great_white_shark"], "3": ["n01491361", "tiger_shark"], "4": ["n01494475", "hammerhead"], "5": ["n01496331", "electric_ray"], "6": ["n01498041", "stingray"], "7": ["n01514668", "cock"], "8": ["n01514859", "hen"], "9": ["n01518878", "ostrich"], "10": ["n01530575", "brambling"], "11": ["n01531178", "goldfinch"], "12": ["n01532829", "house_finch"], "13": ["n01534433", "junco"], "14": ["n01537544", "indigo_bunting"], "15": ["n01558993", "robin"], "16": ["n01560419", "bulbul"], "17": ["n01580077", "jay"], "18": ["n01582220", "magpie"], "19": ["n01592084", "chickadee"], "20": ["n01601694", "water_ouzel"], "21": ["n01608432", "kite"], "22": ["n01614925", "bald_eagle"], "23": ["n01616318", "vulture"], "24": ["n01622779", "great_grey_owl"], "25": ["n01629819", "European_fire_salamander"], "26": ["n01630670", "common_newt"], "27": ["n01631663", "eft"], "28": ["n01632458", "spotted_salamander"], "29": ["n01632777", "axolotl"], "30": ["n01641577", "bullfrog"], "31": ["n01644373", "tree_frog"], "32": ["n01644900", "tailed_frog"], "33": ["n01664065", "loggerhead"], "34": ["n01665541", "leatherback_turtle"], "35": ["n01667114", "mud_turtle"], "36": ["n01667778", "terrapin"], "37": ["n01669191", "box_turtle"], "38": ["n01675722", "banded_gecko"], "39": ["n01677366", "common_iguana"], "40": ["n01682714", "American_chameleon"], "41": ["n01685808", "whiptail"], "42": ["n01687978", "agama"], "43": ["n01688243", "frilled_lizard"], "44": ["n01689811", "alligator_lizard"], "45": ["n01692333", "Gila_monster"], "46": ["n01693334", "green_lizard"], "47": ["n01694178", "African_chameleon"], "48": ["n01695060", "Komodo_dragon"], "49": ["n01697457", "African_crocodile"], "50": ["n01698640", "American_alligator"], "51": ["n01704323", "triceratops"], "52": ["n01728572", "thunder_snake"], "53": ["n01728920", "ringneck_snake"], "54": ["n01729322", "hognose_snake"], "55": ["n01729977", "green_snake"], "56": ["n01734418", "king_snake"], "57": ["n01735189", "garter_snake"], "58": ["n01737021", "water_snake"], "59": ["n01739381", "vine_snake"], "60": ["n01740131", "night_snake"], "61": ["n01742172", "boa_constrictor"], "62": ["n01744401", "rock_python"], "63": ["n01748264", "Indian_cobra"], "64": ["n01749939", "green_mamba"], "65": ["n01751748", "sea_snake"], "66": ["n01753488", "horned_viper"], "67": ["n01755581", "diamondback"], "68": ["n01756291", "sidewinder"], "69": ["n01768244", "trilobite"], "70": ["n01770081", "harvestman"], "71": ["n01770393", "scorpion"], "72": ["n01773157", "black_and_gold_garden_spider"], "73": ["n01773549", "barn_spider"], "74": ["n01773797", "garden_spider"], "75": ["n01774384", "black_widow"], "76": ["n01774750", "tarantula"], "77": ["n01775062", "wolf_spider"], "78": ["n01776313", "tick"], "79": ["n01784675", "centipede"], "80": ["n01795545", "black_grouse"], "81": ["n01796340", "ptarmigan"], "82": ["n01797886", "ruffed_grouse"], "83": ["n01798484", "prairie_chicken"], "84": ["n01806143", "peacock"], "85": ["n01806567", "quail"], "86": ["n01807496", "partridge"], "87": ["n01817953", "African_grey"], "88": ["n01818515", "macaw"], "89": ["n01819313", "sulphur-crested_cockatoo"], "90": ["n01820546", "lorikeet"], "91": ["n01824575", "coucal"], "92": ["n01828970", "bee_eater"], "93": ["n01829413", "hornbill"], "94": ["n01833805", "hummingbird"], "95": ["n01843065", "jacamar"], "96": ["n01843383", "toucan"], "97": ["n01847000", "drake"], "98": ["n01855032", "red-breasted_merganser"], "99": ["n01855672", "goose"], "100": ["n01860187", "black_swan"], "101": ["n01871265", "tusker"], "102": ["n01872401", "echidna"], "103": ["n01873310", "platypus"], "104": ["n01877812", "wallaby"], "105": ["n01882714", "koala"], "106": ["n01883070", "wombat"], "107": ["n01910747", "jellyfish"], "108": ["n01914609", "sea_anemone"], "109": ["n01917289", "brain_coral"], "110": ["n01924916", "flatworm"], "111": ["n01930112", "nematode"], "112": ["n01943899", "conch"], "113": ["n01944390", "snail"], "114": ["n01945685", "slug"], "115": ["n01950731", "sea_slug"], "116": ["n01955084", "chiton"], "117": ["n01968897", "chambered_nautilus"], "118": ["n01978287", "Dungeness_crab"], "119": ["n01978455", "rock_crab"], "120": ["n01980166", "fiddler_crab"], "121": ["n01981276", "king_crab"], "122": ["n01983481", "American_lobster"], "123": ["n01984695", "spiny_lobster"], "124": ["n01985128", "crayfish"], "125": ["n01986214", "hermit_crab"], "126": ["n01990800", "isopod"], "127": ["n02002556", "white_stork"], "128": ["n02002724", "black_stork"], "129": ["n02006656", "spoonbill"], "130": ["n02007558", "flamingo"], "131": ["n02009229", "little_blue_heron"], "132": ["n02009912", "American_egret"], "133": ["n02011460", "bittern"], "134": ["n02012849", "crane"], "135": ["n02013706", "limpkin"], "136": ["n02017213", "European_gallinule"], "137": ["n02018207", "American_coot"], "138": ["n02018795", "bustard"], "139": ["n02025239", "ruddy_turnstone"], "140": ["n02027492", "red-backed_sandpiper"], "141": ["n02028035", "redshank"], "142": ["n02033041", "dowitcher"], "143": ["n02037110", "oystercatcher"], "144": ["n02051845", "pelican"], "145": ["n02056570", "king_penguin"], "146": ["n02058221", "albatross"], "147": ["n02066245", "grey_whale"], "148": ["n02071294", "killer_whale"], "149": ["n02074367", "dugong"], "150": ["n02077923", "sea_lion"], "151": ["n02085620", "Chihuahua"], "152": ["n02085782", "Japanese_spaniel"], "153": ["n02085936", "Maltese_dog"], "154": ["n02086079", "Pekinese"], "155": ["n02086240", "Shih-Tzu"], "156": ["n02086646", "Blenheim_spaniel"], "157": ["n02086910", "papillon"], "158": ["n02087046", "toy_terrier"], "159": ["n02087394", "Rhodesian_ridgeback"], "160": ["n02088094", "Afghan_hound"], "161": ["n02088238", "basset"], "162": ["n02088364", "beagle"], "163": ["n02088466", "bloodhound"], "164": ["n02088632", "bluetick"], "165": ["n02089078", "black-and-tan_coonhound"], "166": ["n02089867", "Walker_hound"], "167": ["n02089973", "English_foxhound"], "168": ["n02090379", "redbone"], "169": ["n02090622", "borzoi"], "170": ["n02090721", "Irish_wolfhound"], "171": ["n02091032", "Italian_greyhound"], "172": ["n02091134", "whippet"], "173": ["n02091244", "Ibizan_hound"], "174": ["n02091467", "Norwegian_elkhound"], "175": ["n02091635", "otterhound"], "176": ["n02091831", "Saluki"], "177": ["n02092002", "Scottish_deerhound"], "178": ["n02092339", "Weimaraner"], "179": ["n02093256", "Staffordshire_bullterrier"], "180": ["n02093428", "American_Staffordshire_terrier"], "181": ["n02093647", "Bedlington_terrier"], "182": ["n02093754", "Border_terrier"], "183": ["n02093859", "Kerry_blue_terrier"], "184": ["n02093991", "Irish_terrier"], "185": ["n02094114", "Norfolk_terrier"], "186": ["n02094258", "Norwich_terrier"], "187": ["n02094433", "Yorkshire_terrier"], "188": ["n02095314", "wire-haired_fox_terrier"], "189": ["n02095570", "Lakeland_terrier"], "190": ["n02095889", "Sealyham_terrier"], "191": ["n02096051", "Airedale"], "192": ["n02096177", "cairn"], "193": ["n02096294", "Australian_terrier"], "194": ["n02096437", "Dandie_Dinmont"], "195": ["n02096585", "Boston_bull"], "196": ["n02097047", "miniature_schnauzer"], "197": ["n02097130", "giant_schnauzer"], "198": ["n02097209", "standard_schnauzer"], "199": ["n02097298", "Scotch_terrier"], "200": ["n02097474", "Tibetan_terrier"], "201": ["n02097658", "silky_terrier"], "202": ["n02098105", "soft-coated_wheaten_terrier"], "203": ["n02098286", "West_Highland_white_terrier"], "204": ["n02098413", "Lhasa"], "205": ["n02099267", "flat-coated_retriever"], "206": ["n02099429", "curly-coated_retriever"], "207": ["n02099601", "golden_retriever"], "208": ["n02099712", "Labrador_retriever"], "209": ["n02099849", "Chesapeake_Bay_retriever"], "210": ["n02100236", "German_short-haired_pointer"], "211": ["n02100583", "vizsla"], "212": ["n02100735", "English_setter"], "213": ["n02100877", "Irish_setter"], "214": ["n02101006", "Gordon_setter"], "215": ["n02101388", "Brittany_spaniel"], "216": ["n02101556", "clumber"], "217": ["n02102040", "English_springer"], "218": ["n02102177", "Welsh_springer_spaniel"], "219": ["n02102318", "cocker_spaniel"], "220": ["n02102480", "Sussex_spaniel"], "221": ["n02102973", "Irish_water_spaniel"], "222": ["n02104029", "kuvasz"], "223": ["n02104365", "schipperke"], "224": ["n02105056", "groenendael"], "225": ["n02105162", "malinois"], "226": ["n02105251", "briard"], "227": ["n02105412", "kelpie"], "228": ["n02105505", "komondor"], "229": ["n02105641", "Old_English_sheepdog"], "230": ["n02105855", "Shetland_sheepdog"], "231": ["n02106030", "collie"], "232": ["n02106166", "Border_collie"], "233": ["n02106382", "Bouvier_des_Flandres"], "234": ["n02106550", "Rottweiler"], "235": ["n02106662", "German_shepherd"], "236": ["n02107142", "Doberman"], "237": ["n02107312", "miniature_pinscher"], "238": ["n02107574", "Greater_Swiss_Mountain_dog"], "239": ["n02107683", "Bernese_mountain_dog"], "240": ["n02107908", "Appenzeller"], "241": ["n02108000", "EntleBucher"], "242": ["n02108089", "boxer"], "243": ["n02108422", "bull_mastiff"], "244": ["n02108551", "Tibetan_mastiff"], "245": ["n02108915", "French_bulldog"], "246": ["n02109047", "Great_Dane"], "247": ["n02109525", "Saint_Bernard"], "248": ["n02109961", "Eskimo_dog"], "249": ["n02110063", "malamute"], "250": ["n02110185", "Siberian_husky"], "251": ["n02110341", "dalmatian"], "252": ["n02110627", "affenpinscher"], "253": ["n02110806", "basenji"], "254": ["n02110958", "pug"], "255": ["n02111129", "Leonberg"], "256": ["n02111277", "Newfoundland"], "257": ["n02111500", "Great_Pyrenees"], "258": ["n02111889", "Samoyed"], "259": ["n02112018", "Pomeranian"], "260": ["n02112137", "chow"], "261": ["n02112350", "keeshond"], "262": ["n02112706", "Brabancon_griffon"], "263": ["n02113023", "Pembroke"], "264": ["n02113186", "Cardigan"], "265": ["n02113624", "toy_poodle"], "266": ["n02113712", "miniature_poodle"], "267": ["n02113799", "standard_poodle"], "268": ["n02113978", "Mexican_hairless"], "269": ["n02114367", "timber_wolf"], "270": ["n02114548", "white_wolf"], "271": ["n02114712", "red_wolf"], "272": ["n02114855", "coyote"], "273": ["n02115641", "dingo"], "274": ["n02115913", "dhole"], "275": ["n02116738", "African_hunting_dog"], "276": ["n02117135", "hyena"], "277": ["n02119022", "red_fox"], "278": ["n02119789", "kit_fox"], "279": ["n02120079", "Arctic_fox"], "280": ["n02120505", "grey_fox"], "281": ["n02123045", "tabby"], "282": ["n02123159", "tiger_cat"], "283": ["n02123394", "Persian_cat"], "284": ["n02123597", "Siamese_cat"], "285": ["n02124075", "Egyptian_cat"], "286": ["n02125311", "cougar"], "287": ["n02127052", "lynx"], "288": ["n02128385", "leopard"], "289": ["n02128757", "snow_leopard"], "290": ["n02128925", "jaguar"], "291": ["n02129165", "lion"], "292": ["n02129604", "tiger"], "293": ["n02130308", "cheetah"], "294": ["n02132136", "brown_bear"], "295": ["n02133161", "American_black_bear"], "296": ["n02134084", "ice_bear"], "297": ["n02134418", "sloth_bear"], "298": ["n02137549", "mongoose"], "299": ["n02138441", "meerkat"], "300": ["n02165105", "tiger_beetle"], "301": ["n02165456", "ladybug"], "302": ["n02167151", "ground_beetle"], "303": ["n02168699", "long-horned_beetle"], "304": ["n02169497", "leaf_beetle"], "305": ["n02172182", "dung_beetle"], "306": ["n02174001", "rhinoceros_beetle"], "307": ["n02177972", "weevil"], "308": ["n02190166", "fly"], "309": ["n02206856", "bee"], "310": ["n02219486", "ant"], "311": ["n02226429", "grasshopper"], "312": ["n02229544", "cricket"], "313": ["n02231487", "walking_stick"], "314": ["n02233338", "cockroach"], "315": ["n02236044", "mantis"], "316": ["n02256656", "cicada"], "317": ["n02259212", "leafhopper"], "318": ["n02264363", "lacewing"], "319": ["n02268443", "dragonfly"], "320": ["n02268853", "damselfly"], "321": ["n02276258", "admiral"], "322": ["n02277742", "ringlet"], "323": ["n02279972", "monarch"], "324": ["n02280649", "cabbage_butterfly"], "325": ["n02281406", "sulphur_butterfly"], "326": ["n02281787", "lycaenid"], "327": ["n02317335", "starfish"], "328": ["n02319095", "sea_urchin"], "329": ["n02321529", "sea_cucumber"], "330": ["n02325366", "wood_rabbit"], "331": ["n02326432", "hare"], "332": ["n02328150", "Angora"], "333": ["n02342885", "hamster"], "334": ["n02346627", "porcupine"], "335": ["n02356798", "fox_squirrel"], "336": ["n02361337", "marmot"], "337": ["n02363005", "beaver"], "338": ["n02364673", "guinea_pig"], "339": ["n02389026", "sorrel"], "340": ["n02391049", "zebra"], "341": ["n02395406", "hog"], "342": ["n02396427", "wild_boar"], "343": ["n02397096", "warthog"], "344": ["n02398521", "hippopotamus"], "345": ["n02403003", "ox"], "346": ["n02408429", "water_buffalo"], "347": ["n02410509", "bison"], "348": ["n02412080", "ram"], "349": ["n02415577", "bighorn"], "350": ["n02417914", "ibex"], "351": ["n02422106", "hartebeest"], "352": ["n02422699", "impala"], "353": ["n02423022", "gazelle"], "354": ["n02437312", "Arabian_camel"], "355": ["n02437616", "llama"], "356": ["n02441942", "weasel"], "357": ["n02442845", "mink"], "358": ["n02443114", "polecat"], "359": ["n02443484", "black-footed_ferret"], "360": ["n02444819", "otter"], "361": ["n02445715", "skunk"], "362": ["n02447366", "badger"], "363": ["n02454379", "armadillo"], "364": ["n02457408", "three-toed_sloth"], "365": ["n02480495", "orangutan"], "366": ["n02480855", "gorilla"], "367": ["n02481823", "chimpanzee"], "368": ["n02483362", "gibbon"], "369": ["n02483708", "siamang"], "370": ["n02484975", "guenon"], "371": ["n02486261", "patas"], "372": ["n02486410", "baboon"], "373": ["n02487347", "macaque"], "374": ["n02488291", "langur"], "375": ["n02488702", "colobus"], "376": ["n02489166", "proboscis_monkey"], "377": ["n02490219", "marmoset"], "378": ["n02492035", "capuchin"], "379": ["n02492660", "howler_monkey"], "380": ["n02493509", "titi"], "381": ["n02493793", "spider_monkey"], "382": ["n02494079", "squirrel_monkey"], "383": ["n02497673", "Madagascar_cat"], "384": ["n02500267", "indri"], "385": ["n02504013", "Indian_elephant"], "386": ["n02504458", "African_elephant"], "387": ["n02509815", "lesser_panda"], "388": ["n02510455", "giant_panda"], "389": ["n02514041", "barracouta"], "390": ["n02526121", "eel"], "391": ["n02536864", "coho"], "392": ["n02606052", "rock_beauty"], "393": ["n02607072", "anemone_fish"], "394": ["n02640242", "sturgeon"], "395": ["n02641379", "gar"], "396": ["n02643566", "lionfish"], "397": ["n02655020", "puffer"], "398": ["n02666196", "abacus"], "399": ["n02667093", "abaya"], "400": ["n02669723", "academic_gown"], "401": ["n02672831", "accordion"], "402": ["n02676566", "acoustic_guitar"], "403": ["n02687172", "aircraft_carrier"], "404": ["n02690373", "airliner"], "405": ["n02692877", "airship"], "406": ["n02699494", "altar"], "407": ["n02701002", "ambulance"], "408": ["n02704792", "amphibian"], "409": ["n02708093", "analog_clock"], "410": ["n02727426", "apiary"], "411": ["n02730930", "apron"], "412": ["n02747177", "ashcan"], "413": ["n02749479", "assault_rifle"], "414": ["n02769748", "backpack"], "415": ["n02776631", "bakery"], "416": ["n02777292", "balance_beam"], "417": ["n02782093", "balloon"], "418": ["n02783161", "ballpoint"], "419": ["n02786058", "Band_Aid"], "420": ["n02787622", "banjo"], "421": ["n02788148", "bannister"], "422": ["n02790996", "barbell"], "423": ["n02791124", "barber_chair"], "424": ["n02791270", "barbershop"], "425": ["n02793495", "barn"], "426": ["n02794156", "barometer"], "427": ["n02795169", "barrel"], "428": ["n02797295", "barrow"], "429": ["n02799071", "baseball"], "430": ["n02802426", "basketball"], "431": ["n02804414", "bassinet"], "432": ["n02804610", "bassoon"], "433": ["n02807133", "bathing_cap"], "434": ["n02808304", "bath_towel"], "435": ["n02808440", "bathtub"], "436": ["n02814533", "beach_wagon"], "437": ["n02814860", "beacon"], "438": ["n02815834", "beaker"], "439": ["n02817516", "bearskin"], "440": ["n02823428", "beer_bottle"], "441": ["n02823750", "beer_glass"], "442": ["n02825657", "bell_cote"], "443": ["n02834397", "bib"], "444": ["n02835271", "bicycle-built-for-two"], "445": ["n02837789", "bikini"], "446": ["n02840245", "binder"], "447": ["n02841315", "binoculars"], "448": ["n02843684", "birdhouse"], "449": ["n02859443", "boathouse"], "450": ["n02860847", "bobsled"], "451": ["n02865351", "bolo_tie"], "452": ["n02869837", "bonnet"], "453": ["n02870880", "bookcase"], "454": ["n02871525", "bookshop"], "455": ["n02877765", "bottlecap"], "456": ["n02879718", "bow"], "457": ["n02883205", "bow_tie"], "458": ["n02892201", "brass"], "459": ["n02892767", "brassiere"], "460": ["n02894605", "breakwater"], "461": ["n02895154", "breastplate"], "462": ["n02906734", "broom"], "463": ["n02909870", "bucket"], "464": ["n02910353", "buckle"], "465": ["n02916936", "bulletproof_vest"], "466": ["n02917067", "bullet_train"], "467": ["n02927161", "butcher_shop"], "468": ["n02930766", "cab"], "469": ["n02939185", "caldron"], "470": ["n02948072", "candle"], "471": ["n02950826", "cannon"], "472": ["n02951358", "canoe"], "473": ["n02951585", "can_opener"], "474": ["n02963159", "cardigan"], "475": ["n02965783", "car_mirror"], "476": ["n02966193", "carousel"], "477": ["n02966687", "carpenter's_kit"], "478": ["n02971356", "carton"], "479": ["n02974003", "car_wheel"], "480": ["n02977058", "cash_machine"], "481": ["n02978881", "cassette"], "482": ["n02979186", "cassette_player"], "483": ["n02980441", "castle"], "484": ["n02981792", "catamaran"], "485": ["n02988304", "CD_player"], "486": ["n02992211", "cello"], "487": ["n02992529", "cellular_telephone"], "488": ["n02999410", "chain"], "489": ["n03000134", "chainlink_fence"], "490": ["n03000247", "chain_mail"], "491": ["n03000684", "chain_saw"], "492": ["n03014705", "chest"], "493": ["n03016953", "chiffonier"], "494": ["n03017168", "chime"], "495": ["n03018349", "china_cabinet"], "496": ["n03026506", "Christmas_stocking"], "497": ["n03028079", "church"], "498": ["n03032252", "cinema"], "499": ["n03041632", "cleaver"], "500": ["n03042490", "cliff_dwelling"], "501": ["n03045698", "cloak"], "502": ["n03047690", "clog"], "503": ["n03062245", "cocktail_shaker"], "504": ["n03063599", "coffee_mug"], "505": ["n03063689", "coffeepot"], "506": ["n03065424", "coil"], "507": ["n03075370", "combination_lock"], "508": ["n03085013", "computer_keyboard"], "509": ["n03089624", "confectionery"], "510": ["n03095699", "container_ship"], "511": ["n03100240", "convertible"], "512": ["n03109150", "corkscrew"], "513": ["n03110669", "cornet"], "514": ["n03124043", "cowboy_boot"], "515": ["n03124170", "cowboy_hat"], "516": ["n03125729", "cradle"], "517": ["n03126707", "crane"], "518": ["n03127747", "crash_helmet"], "519": ["n03127925", "crate"], "520": ["n03131574", "crib"], "521": ["n03133878", "Crock_Pot"], "522": ["n03134739", "croquet_ball"], "523": ["n03141823", "crutch"], "524": ["n03146219", "cuirass"], "525": ["n03160309", "dam"], "526": ["n03179701", "desk"], "527": ["n03180011", "desktop_computer"], "528": ["n03187595", "dial_telephone"], "529": ["n03188531", "diaper"], "530": ["n03196217", "digital_clock"], "531": ["n03197337", "digital_watch"], "532": ["n03201208", "dining_table"], "533": ["n03207743", "dishrag"], "534": ["n03207941", "dishwasher"], "535": ["n03208938", "disk_brake"], "536": ["n03216828", "dock"], "537": ["n03218198", "dogsled"], "538": ["n03220513", "dome"], "539": ["n03223299", "doormat"], "540": ["n03240683", "drilling_platform"], "541": ["n03249569", "drum"], "542": ["n03250847", "drumstick"], "543": ["n03255030", "dumbbell"], "544": ["n03259280", "Dutch_oven"], "545": ["n03271574", "electric_fan"], "546": ["n03272010", "electric_guitar"], "547": ["n03272562", "electric_locomotive"], "548": ["n03290653", "entertainment_center"], "549": ["n03291819", "envelope"], "550": ["n03297495", "espresso_maker"], "551": ["n03314780", "face_powder"], "552": ["n03325584", "feather_boa"], "553": ["n03337140", "file"], "554": ["n03344393", "fireboat"], "555": ["n03345487", "fire_engine"], "556": ["n03347037", "fire_screen"], "557": ["n03355925", "flagpole"], "558": ["n03372029", "flute"], "559": ["n03376595", "folding_chair"], "560": ["n03379051", "football_helmet"], "561": ["n03384352", "forklift"], "562": ["n03388043", "fountain"], "563": ["n03388183", "fountain_pen"], "564": ["n03388549", "four-poster"], "565": ["n03393912", "freight_car"], "566": ["n03394916", "French_horn"], "567": ["n03400231", "frying_pan"], "568": ["n03404251", "fur_coat"], "569": ["n03417042", "garbage_truck"], "570": ["n03424325", "gasmask"], "571": ["n03425413", "gas_pump"], "572": ["n03443371", "goblet"], "573": ["n03444034", "go-kart"], "574": ["n03445777", "golf_ball"], "575": ["n03445924", "golfcart"], "576": ["n03447447", "gondola"], "577": ["n03447721", "gong"], "578": ["n03450230", "gown"], "579": ["n03452741", "grand_piano"], "580": ["n03457902", "greenhouse"], "581": ["n03459775", "grille"], "582": ["n03461385", "grocery_store"], "583": ["n03467068", "guillotine"], "584": ["n03476684", "hair_slide"], "585": ["n03476991", "hair_spray"], "586": ["n03478589", "half_track"], "587": ["n03481172", "hammer"], "588": ["n03482405", "hamper"], "589": ["n03483316", "hand_blower"], "590": ["n03485407", "hand-held_computer"], "591": ["n03485794", "handkerchief"], "592": ["n03492542", "hard_disc"], "593": ["n03494278", "harmonica"], "594": ["n03495258", "harp"], "595": ["n03496892", "harvester"], "596": ["n03498962", "hatchet"], "597": ["n03527444", "holster"], "598": ["n03529860", "home_theater"], "599": ["n03530642", "honeycomb"], "600": ["n03532672", "hook"], "601": ["n03534580", "hoopskirt"], "602": ["n03535780", "horizontal_bar"], "603": ["n03538406", "horse_cart"], "604": ["n03544143", "hourglass"], "605": ["n03584254", "iPod"], "606": ["n03584829", "iron"], "607": ["n03590841", "jack-o'-lantern"], "608": ["n03594734", "jean"], "609": ["n03594945", "jeep"], "610": ["n03595614", "jersey"], "611": ["n03598930", "jigsaw_puzzle"], "612": ["n03599486", "jinrikisha"], "613": ["n03602883", "joystick"], "614": ["n03617480", "kimono"], "615": ["n03623198", "knee_pad"], "616": ["n03627232", "knot"], "617": ["n03630383", "lab_coat"], "618": ["n03633091", "ladle"], "619": ["n03637318", "lampshade"], "620": ["n03642806", "laptop"], "621": ["n03649909", "lawn_mower"], "622": ["n03657121", "lens_cap"], "623": ["n03658185", "letter_opener"], "624": ["n03661043", "library"], "625": ["n03662601", "lifeboat"], "626": ["n03666591", "lighter"], "627": ["n03670208", "limousine"], "628": ["n03673027", "liner"], "629": ["n03676483", "lipstick"], "630": ["n03680355", "Loafer"], "631": ["n03690938", "lotion"], "632": ["n03691459", "loudspeaker"], "633": ["n03692522", "loupe"], "634": ["n03697007", "lumbermill"], "635": ["n03706229", "magnetic_compass"], "636": ["n03709823", "mailbag"], "637": ["n03710193", "mailbox"], "638": ["n03710637", "maillot"], "639": ["n03710721", "maillot"], "640": ["n03717622", "manhole_cover"], "641": ["n03720891", "maraca"], "642": ["n03721384", "marimba"], "643": ["n03724870", "mask"], "644": ["n03729826", "matchstick"], "645": ["n03733131", "maypole"], "646": ["n03733281", "maze"], "647": ["n03733805", "measuring_cup"], "648": ["n03742115", "medicine_chest"], "649": ["n03743016", "megalith"], "650": ["n03759954", "microphone"], "651": ["n03761084", "microwave"], "652": ["n03763968", "military_uniform"], "653": ["n03764736", "milk_can"], "654": ["n03769881", "minibus"], "655": ["n03770439", "miniskirt"], "656": ["n03770679", "minivan"], "657": ["n03773504", "missile"], "658": ["n03775071", "mitten"], "659": ["n03775546", "mixing_bowl"], "660": ["n03776460", "mobile_home"], "661": ["n03777568", "Model_T"], "662": ["n03777754", "modem"], "663": ["n03781244", "monastery"], "664": ["n03782006", "monitor"], "665": ["n03785016", "moped"], "666": ["n03786901", "mortar"], "667": ["n03787032", "mortarboard"], "668": ["n03788195", "mosque"], "669": ["n03788365", "mosquito_net"], "670": ["n03791053", "motor_scooter"], "671": ["n03792782", "mountain_bike"], "672": ["n03792972", "mountain_tent"], "673": ["n03793489", "mouse"], "674": ["n03794056", "mousetrap"], "675": ["n03796401", "moving_van"], "676": ["n03803284", "muzzle"], "677": ["n03804744", "nail"], "678": ["n03814639", "neck_brace"], "679": ["n03814906", "necklace"], "680": ["n03825788", "nipple"], "681": ["n03832673", "notebook"], "682": ["n03837869", "obelisk"], "683": ["n03838899", "oboe"], "684": ["n03840681", "ocarina"], "685": ["n03841143", "odometer"], "686": ["n03843555", "oil_filter"], "687": ["n03854065", "organ"], "688": ["n03857828", "oscilloscope"], "689": ["n03866082", "overskirt"], "690": ["n03868242", "oxcart"], "691": ["n03868863", "oxygen_mask"], "692": ["n03871628", "packet"], "693": ["n03873416", "paddle"], "694": ["n03874293", "paddlewheel"], "695": ["n03874599", "padlock"], "696": ["n03876231", "paintbrush"], "697": ["n03877472", "pajama"], "698": ["n03877845", "palace"], "699": ["n03884397", "panpipe"], "700": ["n03887697", "paper_towel"], "701": ["n03888257", "parachute"], "702": ["n03888605", "parallel_bars"], "703": ["n03891251", "park_bench"], "704": ["n03891332", "parking_meter"], "705": ["n03895866", "passenger_car"], "706": ["n03899768", "patio"], "707": ["n03902125", "pay-phone"], "708": ["n03903868", "pedestal"], "709": ["n03908618", "pencil_box"], "710": ["n03908714", "pencil_sharpener"], "711": ["n03916031", "perfume"], "712": ["n03920288", "Petri_dish"], "713": ["n03924679", "photocopier"], "714": ["n03929660", "pick"], "715": ["n03929855", "pickelhaube"], "716": ["n03930313", "picket_fence"], "717": ["n03930630", "pickup"], "718": ["n03933933", "pier"], "719": ["n03935335", "piggy_bank"], "720": ["n03937543", "pill_bottle"], "721": ["n03938244", "pillow"], "722": ["n03942813", "ping-pong_ball"], "723": ["n03944341", "pinwheel"], "724": ["n03947888", "pirate"], "725": ["n03950228", "pitcher"], "726": ["n03954731", "plane"], "727": ["n03956157", "planetarium"], "728": ["n03958227", "plastic_bag"], "729": ["n03961711", "plate_rack"], "730": ["n03967562", "plow"], "731": ["n03970156", "plunger"], "732": ["n03976467", "Polaroid_camera"], "733": ["n03976657", "pole"], "734": ["n03977966", "police_van"], "735": ["n03980874", "poncho"], "736": ["n03982430", "pool_table"], "737": ["n03983396", "pop_bottle"], "738": ["n03991062", "pot"], "739": ["n03992509", "potter's_wheel"], "740": ["n03995372", "power_drill"], "741": ["n03998194", "prayer_rug"], "742": ["n04004767", "printer"], "743": ["n04005630", "prison"], "744": ["n04008634", "projectile"], "745": ["n04009552", "projector"], "746": ["n04019541", "puck"], "747": ["n04023962", "punching_bag"], "748": ["n04026417", "purse"], "749": ["n04033901", "quill"], "750": ["n04033995", "quilt"], "751": ["n04037443", "racer"], "752": ["n04039381", "racket"], "753": ["n04040759", "radiator"], "754": ["n04041544", "radio"], "755": ["n04044716", "radio_telescope"], "756": ["n04049303", "rain_barrel"], "757": ["n04065272", "recreational_vehicle"], "758": ["n04067472", "reel"], "759": ["n04069434", "reflex_camera"], "760": ["n04070727", "refrigerator"], "761": ["n04074963", "remote_control"], "762": ["n04081281", "restaurant"], "763": ["n04086273", "revolver"], "764": ["n04090263", "rifle"], "765": ["n04099969", "rocking_chair"], "766": ["n04111531", "rotisserie"], "767": ["n04116512", "rubber_eraser"], "768": ["n04118538", "rugby_ball"], "769": ["n04118776", "rule"], "770": ["n04120489", "running_shoe"], "771": ["n04125021", "safe"], "772": ["n04127249", "safety_pin"], "773": ["n04131690", "saltshaker"], "774": ["n04133789", "sandal"], "775": ["n04136333", "sarong"], "776": ["n04141076", "sax"], "777": ["n04141327", "scabbard"], "778": ["n04141975", "scale"], "779": ["n04146614", "school_bus"], "780": ["n04147183", "schooner"], "781": ["n04149813", "scoreboard"], "782": ["n04152593", "screen"], "783": ["n04153751", "screw"], "784": ["n04154565", "screwdriver"], "785": ["n04162706", "seat_belt"], "786": ["n04179913", "sewing_machine"], "787": ["n04192698", "shield"], "788": ["n04200800", "shoe_shop"], "789": ["n04201297", "shoji"], "790": ["n04204238", "shopping_basket"], "791": ["n04204347", "shopping_cart"], "792": ["n04208210", "shovel"], "793": ["n04209133", "shower_cap"], "794": ["n04209239", "shower_curtain"], "795": ["n04228054", "ski"], "796": ["n04229816", "ski_mask"], "797": ["n04235860", "sleeping_bag"], "798": ["n04238763", "slide_rule"], "799": ["n04239074", "sliding_door"], "800": ["n04243546", "slot"], "801": ["n04251144", "snorkel"], "802": ["n04252077", "snowmobile"], "803": ["n04252225", "snowplow"], "804": ["n04254120", "soap_dispenser"], "805": ["n04254680", "soccer_ball"], "806": ["n04254777", "sock"], "807": ["n04258138", "solar_dish"], "808": ["n04259630", "sombrero"], "809": ["n04263257", "soup_bowl"], "810": ["n04264628", "space_bar"], "811": ["n04265275", "space_heater"], "812": ["n04266014", "space_shuttle"], "813": ["n04270147", "spatula"], "814": ["n04273569", "speedboat"], "815": ["n04275548", "spider_web"], "816": ["n04277352", "spindle"], "817": ["n04285008", "sports_car"], "818": ["n04286575", "spotlight"], "819": ["n04296562", "stage"], "820": ["n04310018", "steam_locomotive"], "821": ["n04311004", "steel_arch_bridge"], "822": ["n04311174", "steel_drum"], "823": ["n04317175", "stethoscope"], "824": ["n04325704", "stole"], "825": ["n04326547", "stone_wall"], "826": ["n04328186", "stopwatch"], "827": ["n04330267", "stove"], "828": ["n04332243", "strainer"], "829": ["n04335435", "streetcar"], "830": ["n04336792", "stretcher"], "831": ["n04344873", "studio_couch"], "832": ["n04346328", "stupa"], "833": ["n04347754", "submarine"], "834": ["n04350905", "suit"], "835": ["n04355338", "sundial"], "836": ["n04355933", "sunglass"], "837": ["n04356056", "sunglasses"], "838": ["n04357314", "sunscreen"], "839": ["n04366367", "suspension_bridge"], "840": ["n04367480", "swab"], "841": ["n04370456", "sweatshirt"], "842": ["n04371430", "swimming_trunks"], "843": ["n04371774", "swing"], "844": ["n04372370", "switch"], "845": ["n04376876", "syringe"], "846": ["n04380533", "table_lamp"], "847": ["n04389033", "tank"], "848": ["n04392985", "tape_player"], "849": ["n04398044", "teapot"], "850": ["n04399382", "teddy"], "851": ["n04404412", "television"], "852": ["n04409515", "tennis_ball"], "853": ["n04417672", "thatch"], "854": ["n04418357", "theater_curtain"], "855": ["n04423845", "thimble"], "856": ["n04428191", "thresher"], "857": ["n04429376", "throne"], "858": ["n04435653", "tile_roof"], "859": ["n04442312", "toaster"], "860": ["n04443257", "tobacco_shop"], "861": ["n04447861", "toilet_seat"], "862": ["n04456115", "torch"], "863": ["n04458633", "totem_pole"], "864": ["n04461696", "tow_truck"], "865": ["n04462240", "toyshop"], "866": ["n04465501", "tractor"], "867": ["n04467665", "trailer_truck"], "868": ["n04476259", "tray"], "869": ["n04479046", "trench_coat"], "870": ["n04482393", "tricycle"], "871": ["n04483307", "trimaran"], "872": ["n04485082", "tripod"], "873": ["n04486054", "triumphal_arch"], "874": ["n04487081", "trolleybus"], "875": ["n04487394", "trombone"], "876": ["n04493381", "tub"], "877": ["n04501370", "turnstile"], "878": ["n04505470", "typewriter_keyboard"], "879": ["n04507155", "umbrella"], "880": ["n04509417", "unicycle"], "881": ["n04515003", "upright"], "882": ["n04517823", "vacuum"], "883": ["n04522168", "vase"], "884": ["n04523525", "vault"], "885": ["n04525038", "velvet"], "886": ["n04525305", "vending_machine"], "887": ["n04532106", "vestment"], "888": ["n04532670", "viaduct"], "889": ["n04536866", "violin"], "890": ["n04540053", "volleyball"], "891": ["n04542943", "waffle_iron"], "892": ["n04548280", "wall_clock"], "893": ["n04548362", "wallet"], "894": ["n04550184", "wardrobe"], "895": ["n04552348", "warplane"], "896": ["n04553703", "washbasin"], "897": ["n04554684", "washer"], "898": ["n04557648", "water_bottle"], "899": ["n04560804", "water_jug"], "900": ["n04562935", "water_tower"], "901": ["n04579145", "whiskey_jug"], "902": ["n04579432", "whistle"], "903": ["n04584207", "wig"], "904": ["n04589890", "window_screen"], "905": ["n04590129", "window_shade"], "906": ["n04591157", "Windsor_tie"], "907": ["n04591713", "wine_bottle"], "908": ["n04592741", "wing"], "909": ["n04596742", "wok"], "910": ["n04597913", "wooden_spoon"], "911": ["n04599235", "wool"], "912": ["n04604644", "worm_fence"], "913": ["n04606251", "wreck"], "914": ["n04612504", "yawl"], "915": ["n04613696", "yurt"], "916": ["n06359193", "web_site"], "917": ["n06596364", "comic_book"], "918": ["n06785654", "crossword_puzzle"], "919": ["n06794110", "street_sign"], "920": ["n06874185", "traffic_light"], "921": ["n07248320", "book_jacket"], "922": ["n07565083", "menu"], "923": ["n07579787", "plate"], "924": ["n07583066", "guacamole"], "925": ["n07584110", "consomme"], "926": ["n07590611", "hot_pot"], "927": ["n07613480", "trifle"], "928": ["n07614500", "ice_cream"], "929": ["n07615774", "ice_lolly"], "930": ["n07684084", "French_loaf"], "931": ["n07693725", "bagel"], "932": ["n07695742", "pretzel"], "933": ["n07697313", "cheeseburger"], "934": ["n07697537", "hotdog"], "935": ["n07711569", "mashed_potato"], "936": ["n07714571", "head_cabbage"], "937": ["n07714990", "broccoli"], "938": ["n07715103", "cauliflower"], "939": ["n07716358", "zucchini"], "940": ["n07716906", "spaghetti_squash"], "941": ["n07717410", "acorn_squash"], "942": ["n07717556", "butternut_squash"], "943": ["n07718472", "cucumber"], "944": ["n07718747", "artichoke"], "945": ["n07720875", "bell_pepper"], "946": ["n07730033", "cardoon"], "947": ["n07734744", "mushroom"], "948": ["n07742313", "Granny_Smith"], "949": ["n07745940", "strawberry"], "950": ["n07747607", "orange"], "951": ["n07749582", "lemon"], "952": ["n07753113", "fig"], "953": ["n07753275", "pineapple"], "954": ["n07753592", "banana"], "955": ["n07754684", "jackfruit"], "956": ["n07760859", "custard_apple"], "957": ["n07768694", "pomegranate"], "958": ["n07802026", "hay"], "959": ["n07831146", "carbonara"], "960": ["n07836838", "chocolate_sauce"], "961": ["n07860988", "dough"], "962": ["n07871810", "meat_loaf"], "963": ["n07873807", "pizza"], "964": ["n07875152", "potpie"], "965": ["n07880968", "burrito"], "966": ["n07892512", "red_wine"], "967": ["n07920052", "espresso"], "968": ["n07930864", "cup"], "969": ["n07932039", "eggnog"], "970": ["n09193705", "alp"], "971": ["n09229709", "bubble"], "972": ["n09246464", "cliff"], "973": ["n09256479", "coral_reef"], "974": ["n09288635", "geyser"], "975": ["n09332890", "lakeside"], "976": ["n09399592", "promontory"], "977": ["n09421951", "sandbar"], "978": ["n09428293", "seashore"], "979": ["n09468604", "valley"], "980": ["n09472597", "volcano"], "981": ["n09835506", "ballplayer"], "982": ["n10148035", "groom"], "983": ["n10565667", "scuba_diver"], "984": ["n11879895", "rapeseed"], "985": ["n11939491", "daisy"], "986": ["n12057211", "yellow_lady's_slipper"], "987": ["n12144580", "corn"], "988": ["n12267677", "acorn"], "989": ["n12620546", "hip"], "990": ["n12768682", "buckeye"], "991": ["n12985857", "coral_fungus"], "992": ["n12998815", "agaric"], "993": ["n13037406", "gyromitra"], "994": ["n13040303", "stinkhorn"], "995": ["n13044778", "earthstar"], "996": ["n13052670", "hen-of-the-woods"], "997": ["n13054560", "bolete"], "998": ["n13133613", "ear"], "999": ["n15075141", "toilet_tissue"]} vision-0.19.1/gallery/assets/person1.jpg000066400000000000000000002107561466211133600201610ustar00rootroot00000000000000bExifMM*;2NiTIan Muttoo ian@muttoo.on.ca2012Photoshop 3.08BIMeZ%GChttps://flickr.com/e/lz6nlIc0zyzU2huACospM87PDsdhSDYBSoN9yuVQy8M%3DJFIFC     C    Z !1AQa"2q#BRr3b$C %4Sc5s&DTt6dv9!1AQ"aq2BR#b$3C ?Vfҫk:)ꙝPI(XxV`8,[ҬXljR1T$ 'K0fO~[XmXߦH>=L3n'ƽ~\_YVx6u<, jլhV1}cf;j.?(@{3nѢb #BwG͝"tf<=xxKɺ-IU;E O,h<=XÊ In'o|ȌMUMKVWex"4´53i@4f!&"HŒ *xzn U֣j-2V`$[Hc&ې[ljebuG/)<+}""I(B@YQE<hTPrrlb , Єu#jb&CfLa^,7WW!n7_/Xha[& C~R*7Q#-)F%i)R^^}2-ś!"i^=^Y-0Rv]4@_Xz$ETzQ12%Kh)(n`Uj)ɩ|gDyI*YDKKQ4dZ"P;1`NBQǖ@X;Lw2ҥEq~.k x|Yoh<[O*CzM{< Ro1.~^V}y3N( 5M*oZ"kjJNY $rCk"Y8S0se@xhzDaP_EbiGdh|#Dأꗩ)~) {$1(u)\k~ DZ&t^UMfXڦviVm[@`=&Xbz4[N+[Dk%KaǤ{gi`D ʴb֤DZA<=ËCU%Y(0ӳ;J?>ѶgN”s> 7Vw&b#;@a$AŕM,}A*?]H7$14HBBFE;^\WrSBvR]JYKĒh⼙Z$qRBb7;&b@U@܋Z>ZM!`#H:`E:Mo$h9fOתyE6bz)eP2Qo8mmìQ]*ZDVLn&[1Y:U-KQ \=5'vmܲqV-p{ T0AoxTuw(2l+?()hfLQ"ؤP_}^lcKY^:bjzؠݦtApjt@^Ax(7i>0xJl͸Eu״#{0DlgO^KV5*7 +\ضv%XmqѪ h V0*9Į:tPDgEZd9!vNsbY47}🝣݇M+lQX]c8^L?dWNڌZA݃͟5ګN6(b8ĵb<1#+7bBX˴}ƤpRs{wl^&  4irjUHRi֪+{QUo,>qpqrVlDVH7JK)5*T|C_X!fֆRJUߦ'6m* )yYSp__"p *x&PY a } R)Jw,}n~$A(e-R`"2agq tzV]uiu;Ŵ҄%"F5toT, aC 1v5t2Itd[HޙGͪ?:~r԰;!n7ja3j bI%Ӿq˼Iv|Q YX"$@7uz$,/(̟9#1vҔPd ~<ԪJ-[p<)g^"FMe#Sp"ߘD+qg*R/x Kr?uܢTFGe0[lY)~ g[- 0V{0zqr$r TZHuf4ϊ]p%** 05%*7j>EUSҌ]Nҡ#R.T&W#ص`Ρ\Ru-4)&S◩@iFL,>O7X|w6H#p4%-LQ`PkFjL63UYv5(f3WS >:=BDNk4=3VÝե{`;4l$\VV1uwYW^p" LGAL h=x]42hx 4$u&,lY)RUUFiҋuq;oB؆'9Y@!H7IKIuf4P)@$$jLAĵU&MAG0+C S ^R/eJ]^#P;0.f| 1=ч:a:NGhYBM /;7h2N%ųwIx۬w6hOL0/m]3#U|YWg5´1I٣v)QAm} +GulQJ!03N~-ش\_X &Ub9*`Zy4}7_h Tiwb~8te5]Ա]aբ* ~ҿ&L.m2 ny20,ǒ.U1(>F ӕU4! 6FX .dW8DXe(}6N'8|"_8uҥHI p*JS70V.%KM!"gg_0va.wk-(㤬RL'S!*;ٝO}WOE>Q n/ҧPM>Qns0FV{.q\Q*Ɓ',T2Aʯڥ>|>m`(.jnį%XʰfP HUZiKuGb9ئҤ^T7*qWWA$OCPqCIJXFK^y꒒J6eXont 9IQAqny-(hIzXQH*"Vfqc͖/^91Ds5:hM杳iĦ^0&Qw1%H(5iW"& Ή`3t0zJuB&JK7%*[JG1Segg#,$h9ϞrfRJZ4"6RI m=c^= a-g*R.Ls]ZeE6BDfk&$w.O(]ztʴNR8lQO^@xB/} Xŵ̓}ѕ{#”Nt{ak  8@+YTkwIHOӝS|W|4Iv,lY FRAL;3g1*WJYH7IKI+x3<*wduN<9#JQQ7Y{zS5WM}{*C Sr ͸5>KY/ F#Uu0ľv ӂ/~ R6'A)Xf!'ݣDt֎?1q>ǀDx!$@5FV)A%̀iyTdz}xCLx (1$<>\LJX~gq~PxD`~.)V86| ,E|4j Զe^=.^VV obV)k}.z(v@컘Z&^n16R`< /VVdrbS - ڧ$Se3{5$I^rM%1'&K(%M N& ,șq6q{'z&+az}r"U`cM.2/^ Ąa{mDؠܟaj,X:VM*MK'+D|4*WEhra 6,B"F]o8`3z rX%kQ` -/ftRè)5ZR^l- I *Y`VWٶNZ)X`'ʠܓq_gb&PK+]IpnωA#XAZw mDuaU.>Y6e6E~peKH6q\RHQi9H脀(-08% >cR8U2f;_oRyO ` n qMX0%>"^ohFzi.=fc'H FL)Ez@Sb|)`nxϖ̄HF`?詳4;DYfE+GoO.Ufi>LfFW%~q6Jzz'ӱq|n ?XT}$Zxe}E΂-_\ؠ4{xȋDF$c*Ɛ WmkKfT6G؂”#?4&e0Zn4h*#UV]]^EBIvPr_2b/haHPn1CZAdY׀%/תVRnO!ʯRhCM5bq'30FH;=\nA9PD&(qZƙUtR`(js;FLMd m4"VnE^+s %&)e:sOTY~C\_H\OWnFOgdABOr4e/&Fi-% mP7M[u0Fh8 bbRZX9mZtOglTirR$X2yVc/:c76ׂ8BU jA zf#D߉ T[Uvl>o 1*òۃS;(4;Ta[ī"ӂY6l $&ʳF[^Uf´$μ@j7ttٲOTrߴrI?`ȔfDYGr4TYfi #nOd&&euDjydMgƱλ/66O@#4}!Iś$$*lNT&i?C&*WD-9(rb~B5i&HX@ʇzxES 56VQ̟r Lgz( E(2F fDJ6´mɲG'Im*1BY;J[R.I&;d݄8#K}b<">zY6CB#}e2-!lkts,닝 LU* ɭ|gDv\Υ,F%U醑(oDZ,UseWίAATyUT3get"H "qSʔ 4J"pU)ԕvF!dZ5 Lf$\H#jl5 i9qݥ)KI@@Sd`mZuT$VAH|8kMT5Wdm}ٰT凉EY+di,JpA`s8Yki7Gx6ƪu-Ɖ*JFhJyILJSlq13V9OZX^4^+lti^#"3na:6}|Z1B W;wiCj  Q FglH7$cWd$ $hmE)[/dTi [7@7Z4Pda253KS>-]T$ec*R58KqP$|*3S/Wj )"Xx^iRYC@jRTR`~FIR8-j)۬_,*stP*n0>(He$Fv8 8f#"ȍ8nGֆl-+Q{tveROx}(,XizHP"鱍GEC-}*]vgfSOXMy۸=뚋4%TXm ZՕ)Ԙ"Z9;4"ULQsQ_ $XQ,YH!睬T31Qʁ|4%1"!Q&(+anŒҹSv>rEG*gQhSSLJUD=Xo%Th޸+3J#Pn#Bs)wJ,]z?5CmÙGwvCCKK*ki eH["D0SL*PD(d]T,I77Z3h2"Yز@u џR2Qn7f-"oWzJY#:MBM|lXXdJrmRyd_|iv'Tn.dG7JCI33Abu,)16Sv=dQ{!"2[0%4@T.cRi/tUXiJª3ؠOc4/FLV4`QɓaZ}uAY{y>I @z馱hB,:^ol`RB4Z  SisaC'ۙ\@W]GD]7^)K K+[ۤîȩ59mq5Wf^E z:q@7QA.#7ݐmD~Q-<bg,]:4i\um^1($w$UJ sG=եxS"3T R3*{TY\Ѹb!G+hʧE$s״󃡍G I[<͐;0G ]f݀.>w2l([]cLLFoP'i->^kZ@I<"dxؤ!>#+ZN}c%ѡ4B*~(D8e7J|Fj”ǐдox@VMk`*ʽpWF8^t%em%)2i-H<˔h(+lF^]nVUTe%&ώ|}n;7j3U\sx}-5ٗ Mqj:rGc#]V)Fu63[/%Xk& Ҕ<1$ƅOֶ+1qG{y?pch4AUŵ tlL#Cگ< 3Ș<5}ѓ,ҽFD&v(7b-]. ֍ؚtmנ"ʫgr$Qc>O %%(H4 x":VE.QJ.(dչWNQ_D(i1JڥQn(madPWGyRDg^6AT4ko&w.O(aK!qUm%P[gO*j)Q\tg_*җ#,[m$_S{lcZaRUNJo@9-@,_Xn#* ׄ^KiR@)jO d&2&$ s"PXu-4R/g9Rmji7EL{CHגJqd^Q'ܬE1E GPYUпH9\f ;;vfie6&#ٜ0^b ErNNmpa<ͩR,Lu})8Ű'O%G|n㍚i>ΩukBԦ}!XB}!QXSWWPeg^iKhJ,46@l #tRʂꅒ#+zkͨ'2Z3L]زR,#L(iU"(TAW/b(2r$GvV]9t4މHXAtp9hbR,dCʯ鲨ejy[SSh[!"PV1j.Ԋr)ҡ Uq-6@՜dEI6BGڭ8r)E~s7 zE#?1'd#j6V6L:{s؛I++͗ﻶ؝jcȿ:b˧H!$fV5,v:b&MmmvvHUXQY=5Q2 /j"*jz FΧh9Pyo sW5{*#ȉxνrxo*VDea _cɰPa LH߄DΛC>FԉsOg+^a֔RF:a2;cjL4 FɆyW~2(҉3s*oC<~+粃jss+D zI"<_heɖ:vI\f\R Z?Qw5cų˧GZ]퇦'Ei Č&j|ĕ$r6&\YHFObe՛%"k-U͐CfPi%{0}xnԵ%"6n^t%1/uЩb* yb<-In$$jLCU%$s1WKtuEM^4e%+*>e>Xk-(};x1`1EOVꌣ gk&Å(dlk&6^o+F n%! ÆyI7-hP%(plJu#+TNL/MJA1dNnQz?}T .GQb.91|-&]{+~nNrb]gh2nXυW6,RAy,Y_XʍQrzhu-Y"1|,44%xSP֥>|Qs0WW;Vܭjek5I!)e-6JEkLb8Bf1UA>)|8枞.;t5?LHJlcKɓݞJ_&0TV)M[g0'ڢާ6EsbSn":JK!!)Z7|Cb*g}(O 92]Mot^ X6baڼJ Syp{yzoZGQUDJ V&ewSOupRLu:)Ƹ.۩yi[\ۣ0ns?[K)NItXs'pL76ԗ[dtgS1,^vH%[9#IV/xzr{P&8_oMĴIAʫRT7pc[7[8\=뜦@漾$u=[RRXtq_tg<\/ ֎rmtJU65m3Og{av5eu'iO"BUnہaE!;zG[,dF+K쌢)ek O3'Q#. : ο\*pB0t"*53D8S)JK HJiC}G@IQ@#;j.z)i#ŽGm6z "Y8R.aEU <ǙO^gM[>-٦|b ԳuB3]%e).H ӌ_ XA 4e wDjMr>ns-Q%*Z@R,#hFb (T,W*6Q/j?EEڥ;TLq]0lw-7_w;arf$bT1 Eɭ㲌 7~jYc# 6=Zx?VWU-)E)e$ y+0tǬ*IL2Kθ£[_[x83]fMgT٦+p4.vZUZ}_J>oNx,c^|0qoI&d9X=w?tET`McQTfM LJ|u6~&3Xu+VMBgdH6q1* &6|AKT{0l8/LA8ͻYڦ0&{(- *2ve8Z%&A 4TTEsj(ʼ#G,[ Q28~O/u[eO*6ͅxB3joj6| BinPje-ū*.osm}(ӌ4Ҕ|9;r^}¥/2Ij$GAC^5iG?e6P>z<86ݻLI\cIHc{$ aK-8G;uʶ:8:F)iVR!*\'J 3ޜ5yn8B*|X 5&%|OY3%(>$s1*07Os_ALxlyn)k6Ju!0W=KM*H_F%Iƀ:eS6JF(ͫW*Mc Fz .II=4s RL֋+q']-0]ne)zzzjθQ#ݏ'Geʴ+OO>hyi8#]W22M^ɰ@qˡicޮeJߖSJh|͸,ommh^UV6ȰfY6e4늝KffPeZdE#X[Sc3nQb)XfEsyQJev|_yqOAy9aʜPTMzPI>o yXi$ Xi;JG6Ԏyt],Cz?/%m{{[՝\xqN9&;Ox3v%ˍO]Ke@|l #=fs|I+Z>~xtGJn1ڲҐ@H*"FZ{Ģnnr/L2V`[HԚJI4B>QSe]!FW!K-]d$i^C*IU8|DfOv?s-\gB.%YKM!"4ʩRE2UN $s1(J˽[TuB"_%e$Zm9RQtPڡPn*VuM)M6vou)gSDZIJ7#,[jG%A{nB]O8lx{-LWAV*R#3ѩre[xĘD)A3ӎ;E+:JI1V1|}R4#6җ4TA;喻4A&Scf<@(8oH36V |"FO_ѥU-<#xX3 Ap)Z^[.Uê*#f.z)rF4eW0 M"JUN7u0IUU9FjrȒCH8!7:iV(tH$unQ%KhJEQ $ +dcV,Qde\,u@9c+WT!,! *# KAѦ-J=$ۀqS 2L%Tw[P A(P#/JyFJwMv*)`.EAVN }?McO)1O=)$ Ѷ%DnH6zu_xq21bZp٥IC"Q0m$sב9+rqI/v)JʬBN"c Hi='H>UDŽTUBeҎ'G`|jBXsu^1 R, U%$q9.KAhg+YVg^2JlF$[u6pK %jni5!#@Ǣ8bH!2M-]bwh= x2zɁ!5)8E-&I0ESW+e7sV8r*۔/ۑtGU2:AG59fLM5`.u"jVD!G _yu'"|bivG4*زre[W>b8W{y:@`,A]AUoT<ƣ4Y!YP5BHQ']n0Z*vUuz 7pyG,p uǃqG$iDJbMR%&IleQܣQ$kZ×Yo|-=N'3L #]s޳qVuat EٯŴ.9Ư"BG|Ud{#-aJ-/׏j̳&/s([8#:OU!7.8!Vt)i#[x3< ժIʩdgDIv>/nrq˴V H x">TM2PKte>Qu*Y][J[BP0Xضlƶ C:JVJ+* ;y-NZnԥ1iBpfm/.8|%aͬU4vVϳ8ԄČ:̹(}b 靈49.Z(/&˳+edJHV.N)يv-Cb]y$d M{juG,9]XabWf \ݪҝUIFˡŧ% 8G3{x'>X8;.q-FR٘eu&\B"K{/ٷg,_ﱾ_ƕ:*UIcJQsT,R!2G5GoqOk޾_f`.ʒBl. KB?$M"J]NoBoV'*%K<S',T2y)RC:EU:9[zPJ7'|/蒗C-%# oTJ՛9[KiGRJuwIaAe&qM*xb&{Tj;%%1nԡLBjy7R]8%S6JDdP*jTdzM94DjX!΢FYN ÙU%)z?,KvԓRB_(Rw+&[پ73VgICs*~]-;,򶲨eI.8ڏM.9~fC.1/S;%XeOwiieiԨ8‰(Ttm=}yx~_ϣ9/>/ӨJ7;*Y|<A([Q9>_83'+MxʢO4K46Ivt]q㬮>̏jڊZu*u}t2VRVJyȱ;α =7>/|~Şٷq`OeJ&}VVƍ|a -G&7Zf]Xb~M•էjg$,^ Ntw};q^?_xR~6/˛8nFN9NOиh|%JRiVD4>|N|!]*ʶ{0R>Wkc82j5zy,:Gbo²*lx>DNRkHĵ5uxCu) AD; _%A$&a%ь,}.V|=Zg[F5MThf9$X 2.mA*bҨ7QVdӻm*N *&Yx<8f:5>@b '(.t|ANTBg"?dbU{{\DZҦkSI2pSOzx8s<&'&'li'vAvuڝFi=")4n^qk}J9Аsro2) ]~]5@L˿+%:q K@6~w߄s^_˿7W;& 0ș}8?qo=ޟK~;Uk>ƩmM{7ٮT@YOM16ޣs^?MWj*d 6F9n[qֻGJ{C̵OKr*pi@QNI}L|}>uaN^-evB[sn.m2 -\MbAYe_k7="bq+xյY?XD7DBHpAkYB O֋2ǤJaj0Ho'SVٴi7J*$8yi>Amb,9*[LJI>"8O8m3.|<:&TQZ5K[P\猫XޤΖ';q<3QaU9'/P Ř굍Byyy75.>mwY9DK0!9CIog;f{;P%nHKGR'&2>8G. #L@|#ZMGR r5ru7Ld/mcYi2ު<ԅT \KkK b\6پ%L{-ie!7z*0ϭV󳟒)Ԫ ɩ|[:T9Yb,Ggj%XDlY)B:UCՋlUi7Q]J[@JE4/`xlB*wk}p2T}w&2^i隼Rr_p$p #\<<'&Ssn\ٝeiu[;2ơ-):Jm5&VU´YR%*:Yh}(5tOQ)| %l3#s% *& oG9ܩ7m&v lZXפ]"c5,YR/$PjUgl.J͒9ZZ)2)%lh Jo" /URΧ䌖ŶEɲRnWS-EMԱEJm * -0H,(jPO oG駥I^_f%rzmO)ԂD'SɼR'iL@:ue*}86ly oLlp~ʿ͚G&fwg6TFg_v&c*Aߙ'CtRә*?UH۹9=K($ݧdPmjPU 0їJ&P0 zf9O5+n3_?պvB=XeĪfϲc6U$˟2xG2tXEf= KN%[ZwY+<^,.OɎ_EM͢JYO9?V,\q*QW|tT2ycQ 1CyH˩Ց~!42ԵO!{.rRK-7i OsjAU8˴nʔn-.6bHƂgS&A:%=b* Rlw7-Q3R2 6aB97˚c^==mǒ'i*ФGۨqpLf=+,+L(T QNa}nxaθ㴩QPXaE@lcpa'ϖL[ ]ԣǿY@TˮdoX[vh.a{[Id~وvJq pe?V+}۫A u 4X}Wy"K9gky)H6.Wʧ-Jr=`-W$Ƽ&C-[H C*LHKYō9UVBWI˟nJg{( aU4V azI}=|b7jܠ.Pq8?X^N|u޼ާ)[Z$UHCyHR 3vIIAIxzZ9Veq.,%(;<^Õ*g1Ӄ 7R~Eݣ}5+rU% X/Pujᇗ=eI ;&oc,gks.&Z2kKx!ۀg\P洍S7&dV!YnvIey B8MU%&2?/LW˧ɩ@[TxZ ʩgl~QЫ:7crS]W 9BH7<(i^=En v˾K’FfjM<]tWIJAp72XѰV0[U\RSHCZc-u!;G眞X|WG$~李*U PaJ&qb­VO[[uf]@|V;?JJ&\H| 1|o'Q]>ɲ.acY|/'Sણ,<JQ><<=5U3㚦:~VgD̐Cv/O u#dTqѝKtK=zG<>[2ұʪ+eee#p=x)jT]GΡ5Jxb-ۥVX2{1N츹1gaH|{=AK鲈7b\v􇛥;(ՕXtcϗö9x9&S*qwzkM^UMaN+A39ӋYew.LumxƹeS[%4@j'NcdbS2wGȏޢ wsFb4Epѻn>aAFF2Gм5KrF(Qlfw)%NGi4彜en) sէI$#OnH&(zh'zAU,#U笫MOK e- Y)O'T>ߚI(΀_uy~o|9~j/ ,5Ԑ)Pw~ c6_o_#1&@mL;ijJq[XR '[.87{qaiYpsM mcs ~;;,%$(q!J)U 6xs|}WF=\׌Wk9 妒. ұc~+znOKG'_cՅV1\SP}ƀp+A.7ZIx]%#@"~Q`Ue6o< j!b{ȹ$XZ@"lIceiYd:%_|Ss=#kkNW3 ,Ԙ,󺏵 ̶ bPUR_u[E ГǷޣ-E*~d47ВbYesXlicN݇4,VeRP/@9E𱜶%DDF,-X$Gt۳߄ugC%9z)`"|6y1GXR1)7lvh]A /ǖǦ[+Nii=[Kk#P8)2W]Ո*l"tϏ-ޑh\KLbrvA6>ӎ騒h "0XE 8-%1*&is@!ЛFo􏲺yl)6Ŝ Pcs E*XYm^bm^4LۣƯ(<U9l;.Ŋfd%r${KhRj7sŗ&18qߺ E#!I#[+S>,p>[2OAvj,q蔅jLAس-[Yu9QS$G Sc<~\2iuܯ(Nc([P^'pmt`SmTKhvp2ٲN?f1L0MZJ#$Y/n<%Af~I)R?;_\''u:!¯C-vP1,tc)z^,ͅ%i#;\ԲAsqǞj]8#Hoe`۪Y@)+8FғV LxJj >v_FNx+dSao/7?77>~ӥ2b]׏&G϶ۺUkeݬcQI :jG&̑rt,Mj#@)|"(k;჎y|,im-(Ӈ7D 6 uJ xƐR3isU6."hbji;Ǥ4z_2vɾ+Q%,}.iBo(,?b=oV,.•saJ6neARȭ>~Fwڵ\u:UfQ1X+٬P dZ]f8NdBxTta+s-Xa9P iNIJ9Lwܾ tZZa)ɰ a{$dnhc3>X{`Z(ҋl,fwjGNL:^x^;Bfh-rYRXI{?62wbT%Im@:lz><1vYguaTN'37|G/U2\~Z+*o .д]3vۊoǓ,y9;ֿ;aT J-K#X~M\_7˒ُ&^KL#+)6JSǬ{dֺE4SغX P$!Ds(clNAʻq%{HjθJZ^тb~|˲lO1UMS%Fu6_eUyncBwHbDXa[o H7..FÔKtH٢깱6Wwл;1TX\yI<+.aM-b}|S?rö]{@N<ۇQ1"9dࡨ1xD䏓TqV2r卸i8n .=Leđ5?UY,N')Y3&tOeuIk.G<.uU(T%b be+#}/c (ցVYmN,)1O;RH&૝"@HʤH Bsh+[ASZw2 kZ͒}љYޜ|չLfp/QvB&{`MtXn^Lys>x*3aҮ)UZA9&}] hZU9X`m%59'g\x^&[JNKK;l?&V`5x_KV(ػyJ'rCu&V]9 ) ynxp/w>;9nZ,S8@jzo}8χW ~gZL44C?:?9$ҫݟMh6S̓ή-]^ˎvպ\IBs ?y >Ƥw^U3Jbd֟ݕKNL BvkUf33ixeM=R^J:‘RtSk[aL3u,=3,fgUe2Ռ1?En'mA4쉟2F%@qԎ]_\=i1ZT&UȰjmRw Il+un^*3)Y|%X^Smhrx=NUեTılw(M*~:uD^, HWYXzgݔh,%~"`tGԒc>=K^?Cax,~ sO! Shğ2%b5'[ * ]}z\FBx1bthi؞ʀoL﹚=ReLO^q&!IbԿ `Xp-Kޤ';Rs]E3u2|ezte˭,G-/loo  x-cBZ%@fA?W:d!U(9DM!Ea|u Lsr2l IG c'VX 㡏>xOhAs/}:S2l^$Bg)Fb9Ij%^Qh႒\E(vY4~ lj#ASW9S1d=alV%Sh*1Opͺ>0UPBJlMBQrMUʟ%Ӳoml.ہ>}PEyz3goZzKL3T2H9Ӈ$[*JxZQ-'rmEKR z;mD4%I˺b)sNLR`7Z;a9{]‘/E²F=4]eylu>!v/ㄝqn)&-IJkZtq*Y(Δ`:s&rO7̾+3(JIz5ƽnMLnHl;(8jowS,:2?޷\r/v9K qWø{g媸bl6]umnKO# rU*41T3E F3ĀkhOH1)S;>Íjig̨eyga)ؙrJLH9M^SͥFG7q^4購{JK~->8 ",)aڒVfHޤy/?$ ~;>^{9O vn950ڀ"Zi)9sz1G}77H;XD>]1.vO*~ђQWWiݿP#^7sc?O:8fU=}+i82GDNLYd<pwz]|3/S?[G'W̢ȏ؊sc4 J'ZP m;T6&:0aR,~Q?Q&<)㭣NM (ܣՆ2G+jP)l- Q66*)^KEG~T}Vy2)I!3Iaݢ]Dgn+B[F\N GGl'5 Q8 !MMSQ~{c+W.*jq J \lVAuR6 x}G r\9'J\4zGy~ٞ6eMi2hZ ~gf d%M\_³ZDwTXJe:FlQ J "HaLm}&/hce3$ȸqdn6{FVꉦJ]^AvWI(6t" F\%FDө9G&1q^N%eRSiِTw c}y9~qv)9لS+Ytu # ?W1Ǐܮ}[pKr^nSS+{ $[,kS~0Wj5)iSr.;0Īܚrd%$" jra8\ﱆYe>Sv2&FRGGkE8`l,4/=xgsazIw;޳C>K%p#XBLwa?$^egQq 8cYa,}il[ IluK<<+N`?aD_˦mxwJr5*j_8t[~1_?>+▬U-BmZji8zoNQ[CS4&iSJN anS$x}ӫ^x9{붖u$Tw)9Ood/* LfLx'>$:B?uDFz^|eoө2'nU뇱[dLo,|O߿hx JJ{*43jSGǦ>?GYk1&=~HIStcwOoG:qd˵UJN4ˊJv˰<>/UzޣOΑQ(QSչp-% h6KIOznM3O1ӷ6dJS`&`?׆J?[1toގv-M wQe \ܼ*T6[o=[/%,˧kYY{2ֽi zs ԒfhE2Po2g]A h&Yp{_e2}} رyX]ҟHK]D$ SRP' 8,FapUտz<OxiY3P҆OH<aN<Z)Aʤ,u :^v<£QeJkd$HܧPuy}#igf}xVU([mެ.9BF&TfDkڧ9%HD "Rzui,6,%IRUCPDt˃rOg.^9˅ƕ}RVخ=f[aLC䝐DHH.ۀ3(me0/Z[P#*ROۅqEF4gU,H '@}xG \3^ի)&2t5m+ec9U:-/}\a._K%;" O`moyyo蹽O9jkmLe̕'b'~' o&Z滬^Wv:BJ˴\Y@L~sszN&~osqzL&YT;you]I-mc̥ D"ae% mWzygI2ꏝ_ ]U|M*}vEqc1~T?dbToDuSҦ[ƽTAq$ B7%sgaTd5e"an(?FOy'H#˕jiPv#P91q1)֎3F |ae!|5J&UbCIln"3rSqJ]Aݼpz^?%*vŷ=x㧞qc3 A'X$rbѳ2ʼnJJbApJuK SPdGəjx:j[ni0R{F8:nTQ5;(JMqIx4dֆb(KU8>İ@9 lƥsu5N*PIa8S+/N $)jv])T,oFBӥ[:QIyꄼp%{#{3#K~raI IC׻ͦ7Oɩ[͙Utu RP)>I ^1mƕtf Cl*]م%i$^'[q1K;x/vCPU['CaoGn?]pīνD L18O=Y]m]¬%ywVTH (&6cÏ'G'Tzräe):k23.R$GxrǵFNbPR\ )Jn|<=yFw:eV8yM+.s^PBUMٺqӏ=suz0?o?Ү [QbFYm7MG$؇W[0HKG}w .oz/YDĕ-WzBL[UQ?~ol0ײGSm %*|,}b@c.NMI?WW8[ڢt*8 Zre.-ùRcT}f;>?7[=0=?MH J 8嬒$#0FL"o1,q}ֻ`:A1(z/=h)t.f'S,$w͟jXW+rma4)۠Wm*oQ)셛o*5>!D yE_=ɾI-IfrasMȼyrUHaJJwXlpQZ1ӻ;߰OJ uCړ <jCT)??8(j㈉jWj'Z|y3o\_DVlHIA6㩋~rኂ~Qe!@DR*}kis*P!ޔ%PEx{3(:ltAsKwF>r9N@u>/a&*<%ԵhI.P]JorBc6jFT%/ f3&XLpOiN=,jk!M^N]|_S36;iқZLK&ü>p5Ɏ8[ԟ/x˧L^OJ=)NSD@(lVȒRIʓ?'OI.s̗kz{sg0b: -pd8c?_g~I+r^a"֕r#f\'Ƙj&?RfReXB@@}~OJhpTp%oLOԩM>֕ *sk\}Srg]&:CgG%^Hy꠸^7]txˆ9^Ky,hU&W:VZ PL5y;s;6]̴b_],XNEXbL䝶ro?;2P>qu9{GROr{_KOv/RrHI!6 6pvA:+:kf srՕ8hd% ^&S7y:sMOkaofm.4lԲޓjXFh*P*єxy}c긻g7$ǵP?/j.uO{tvv^vXyU_RQo)eޮ$_rxvN3WnŲ%_e&{V"'3kɐ~6ܤT֫*Զʦ鮲69bR@&{{#;(ռRiW¹TS٠͞[

  • }Mؕ?GGGGGG?GD#?GGGGGB?GGXGGGGjzGAGB? G !z\7?3ӭcC}k/C?KJe3?$[DiLdIjGaV6' ҝsM24֚{x2 ʤqH~VtUX[֪c? c ? cҪc` 94֝?*? sUX9}sU~csU{gl,xN,* hup m3ҪcsҮHW  Qq Qq\v? SX??@? ?I X[~? WX@?`?,  S U c SLv?֮ ? P?GGGUaG11??GGhGG0??!???GGGGLG#GZbY_QaGGGGGGG#GGGG#XGGGG? GGGqY2 ?G #G??HG GGGGaq vG?GB?T#GGGGGGGGGG G ӠG##aGGGGaG(ǥ"[l%GGGn#GGGGGGGt#GGGGG?! #??b??[?QG ӠGr*COCF?^??KV9g#H+d+Z V 렏E5ӭi꛱-|=Z)[߳JNZ%\zT9%'Թ ,J 州k>k%IB~&}|YsVݟO>T ˟y elO~ r{!͟Ov>CX]UE?rG45il٥՟EB1&aؽ؏7`Ywgox?#Ysyً_0t'Աgßep 63sYs_;?Oّevision-0.19.1/test/assets/damaged_jpeg/corrupt34_4.jpg000066400000000000000000000117441466211133600225650ustar00rootroot00000000000000JFIF,,    $.' "+"(6(+/1343&8<82<.231  1!!11111111111111111111111111111111111111111111111111  }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?M 34Ս%OZB[?Z9#$ҶDi[?G?UЗQ ?զ%Z- ?HGG?GpTٙ4iIgִzGhG $#GGGj? ! K?G G ѥq+T# Ө G G G G G  G GGG??GG??G!#]5"Qh#Gn#imGGGGq? Ө#GGGG?GGGGGGGGGGAl#GGG?GGGGGGGGAGGGAZ-!GGGG?GGGGG?GGGGG#G?GB?IE? ш HG נ?{!aGGG?GG?ZGAGGGGGG?GZ?GG Ө A GaG# GGGGG#(Q2%>}Mؕ?GGGGGG?GD#?GGGGGB?GGXGGGGjzGAGB? G !z\7?3ӭcC}k/C?KJe3?$[DiLdIjGaV6' ҝsM24֚{x2 ʤqH~VtUX[֪c? c ? cҪc` 94֝?*? sUX9}sU~csU{gl,xN,* hup m3ҪcsҮHW  Qq Qq\v? SX??@? ?I X[~? WX@?`?,  S U c SLv?֮ ? P?GGGUaG11??GGhGG0??!???GGGGLG#GZbY_QaGGGGGGG#GGGG#XGGGG? GGGqY2 ?G #G??HG GGGGaq vG?GB?T#GGGGGGGGGG G ӠG##aGGGGaG(ǥ"[l%GGGn#GGGGGGGt#GGGGG?! #??b??[?QG ӠGr*vision-0.19.1/test/assets/damaged_png/000077500000000000000000000000001466211133600176235ustar00rootroot00000000000000vision-0.19.1/test/assets/damaged_png/sigsegv.png000066400000000000000000000042721466211133600220050ustar00rootroot00000000000000PNG  IHDR n<gAMA1_bKGD ) bKGD )UIDATxŗ_h[cHuRGT(8B-P.%4BiKaw]HɐXf%$zmiJWGc9w~t5O>>`eaX=`Ԃ±8G?]e _^X.wGO3wd3 gZú|'fef[Z!p&ކuh`c:oȇtri^g)X]UVZ l-5C`T$u!Z??p߅Cgj@dƱt-YY˅ae}';Ȁ~B@3 x'͌B ^SA#nr2r:QfGR`fAdv <@_"AÃևðqXZ3S:܀{Ճ< ';B 1/s,ZYߣ` `pg=U<@#Ʉ ? @= !e/sVVCpA5AhΠ.Ak%,JވaKGa뿃נ/`6,њ̀U]轏@`7&kc{ ? %:4o6?%!V[?hv@[/  !~Q`ZJQV@ס, \Z-tVKuVai *(a0ס  =i0Vކ.a{hQf\5 |ee8 l9QF aNXC9wnA D`6_Bh^SygLgv]~dA_ lwSR; I[VF&;5l :F$g 8h=ox yot| 'Q2 ,44c94O!1DӲͷ+3߲M:$m+?=*|~5{Wb zC`W݄辥< Cu㰈"j Q}8p|$;>.;/؏a 4/@ н[/E})x6훏m^=t)y#!ËGT/So SMO]]#7*gǏl!qXkdQa59G2 5e5$l (+畸2ۥ_$`Wb?@0 9E{Bk80/ƲVRZYxYf\ Nv{k By_@SaJcKjT𔥞cVE^>[v]7R>܉\i@)]SBBy$Ғh('eϭia;cҹ; МkX]HM%I%ŎUz]„Xj"22CO+h ɴ )oF\ܼ27 h+' wCQRY\-4-dA.Hax4,@ᜲ$o{ dJ;v,& C˧T$3ӔgVWsϓ<yhB# FP!v Vޔl X$p]y]\._s=,l7GZ){&TLK(}Z)h+V %@{gd"iiqૢ]Z^<y wPb+ЮB;  s%/ڟ gU<=DPw?({!l7d̀t:9-xIb z 4thFk2*<#~WQ\ 4eύpNf.J,OAdžN 6lf-ȌcGR3*%dE((\0){n$KJ3`38`ek+-w53&7yiIqιn}97TVRm=ƪ<{}U$k=#(&d90D~cS)iWڃm5b}ou߷[JX}OdXg7zYeW=mk-o&nsmӇM~hk*mv9Nk~SWԺ<_PTl={'|)%euU1%"opE$d)_7]{Ko{=7=k?Ҧi-0.OO= ۝?V3HZFEV8sx:>.ߡo5v6NcTs>?G߷u1́=ӺFVmy| koNzWWM::wIvqǹ ]ݹQ`ތU{Gګf7)'+ᨐ9_v5sY[ D-{V~dmu,@6{Hճ3K3du",`UGSzNic0qh>ʴ^*ZdYg}5oO̳lm[ZOmZY]z^?c 2Ŏuau&Zc6z'}gՏ l4N{C/P4WUUcmi&'X.<x՞쬋2,׺^OawjEzjF}eլWk`sC\}r4lrrZmz9|HGzƵf_zlޱk1_eg}Qf9e-ϯXpzό`*}k]wݑ5ac?NZ׾Yc8Cvi.k+1 F"ҢKnkmNuz`6z^N۽hWnM3`.{;ֻ)׻ߓ1ub%r΋hXT zZ=VmH*٨^r72HҢ??Uǯ׺3+8Q]US^\k>1MK1ht~p^4zX+ǏL ȣk6J]Uo=m{qH3[Yxn{Ռ q>HmU_a%!&ZTXtc"[Y˦=%ՇFH1ߧ;]O `3wYNE95Y}mqTeno/غ5+~Mhw6l{}Tԛ1[U͹4<7 w4sGbG#3{v,OjخBm,S]svm|LdnkFq" 3F1P_+jO˪xe{]vk۽C9Ä_$L"e.!Dow^[r0k2I':Ϣdml.=RcLuֿF`}_R'+Y.cc]cm?;?駈H  kYb!) hã-|wdYz`to{N20Yk7j.1a` ߪO=fy%)nO (!*$jXze0qr5[UW0 1w>=;}Ḽͤ{i CGeuk=O[ٱeg_Z)ճŻ f?DX Wo+W3u]fEuu{!02zPY %;sk@O7\6Y)gol@cHn̑zw;3~ݕe6Dz|[@7!ZXRm\>7Snmy}+ÿ~ 9MŻ'oV]hgѸSIk_l<̪Q[4aq.bac1ZC%_q~[?]koIkYo*:9}o u&IoockѶ.{;g~4zSK˱SN8rwf9ڬw%[ 3@B/R[mW6^aXZ{Gu !eSdzvnZ|T* ;i1tL_V[_ZAk\ǀ<kpKn}P/7pk4~f}~V1 < bvԯ1KGG;}/yܮd[_m걍ѫĤ_Epcmss\;v3˛‘$U- ِ|uG.+˺VEX{=^^wF:xxA.~}c>Z%h~mM%< עq21`6?SvY[3}tPkmW:%O}Mhvƹ׵.!{^\9I$˜.`}e[쯵VS18{}/k&5&!4AXn>ipp~uzrrik݉f犝ncݺMgjwPb96^xVikm7gJ^ߣ/>/Mvy=7"YKc{U11+ͽ[ak7{U :$ ~p SoM_R/V˲@&C%ρU8MGɛldc*#ᢛnmsP ST4"UcxC#t!r]ߜRhӧG7ݳ)ęl>)A;O(̊=c>kDNH64!w.oh(EV'ݞϣ9?X:Kmq6\mc5?,E #(Z/rq ˌUK#;.WYnkZ^G*.qrE se9))'8BIM!Version compatibility infoUAdobe PhotoshopAdobe Photoshop 6.08BIM JPEG QualityAdobed              ^"!!1AQ"aq2BRbr#т3CSc$s4D%&Td!1AQaq"2BRrb#3c4႒$Ss%C5 ?hQ((\S D*Q?cF*e c7Hw P4ڥIJ" ̝J]Trm-/̄44RBR^8 O+GVzD\&ܺT sD#̘. *G1\,Ϙ*IRQIAǐ$!qW(tVef'obcY'ˊAc wR9H0 4S{HWA/,}p(D!9cBo4o/i;Ԯu{Mi~uÈkq9(QS>:\eτᤖB3WjʷH붭ܝ4'aIq)<d#qTYQDGKjzj1}S)Ļ׼=n]XSv1gE1"XmSWIUs,n{Xsa{DpS gS!@,25^ H!i-9!Uk)4se4.Ωޚ=;? i^E j@ۊʇ9'._#=/>Uz٧zW4s1ow]k^V}E` }J6_ouLTqi rDW4ҰQ<֥JU!&'ڋM_k-.eUB,vMNiR܀8RA7S- (iU(~W.rh\kN/&Vwj @U$$; H퇂]߈\5dJF e9$Tj )D҈B-$L'#(`@tT8b<LIC1 0:T> Zj!CQ-) " &'T!9 `ּ>bIY]Z,? @CIӥݚ.JÚje#2 IgPL{.C,׸CGjB#xa -AJ Հ2;Lyk3 !EBK#su#%2#b @c'Q# 5* B= g Q8C2QPՈ$8BpcHo.T'OtLBfG Wg)##lH|*d dAJBpMN gaT@G`\4Y/u** DI=@ DIa+!@` 8]9@ 3h yd%))HwNGñ쓊jq\jp (4U{*Kq(qDa )??¨Skx ,vgEB9D)1;C]bB| > 텸iz,i'N%S8oQ>P?aI)&@NKut@ry' 9:ײHW0_ycDTJIw*Ď#q ̀ ߈f57U)aZ`1 kf(]H J܂+,r1^Vi5$#&a% %QVM+|JA6%!>lJ8cÌd+K!<>`@!U /u"@BU!TX/őBqQx(qT MJ@9$I$j+ObBgfYbpB@EDU8)>c O,1S8 ZL*<" s%ǤzMe+ e:2?MWՕ}QN-HeL6F03cqwA>mv柅U\92O6Z⿻=/n=^jdc -ҡuS#1ݷnje W9.72XUМ$KS1jnhĵ{uDJ?;Yhm aYJ _v- dVeQ!Y P $H$Ghz,Sw! k\Hc]Zq5ʄ@dq? U:] l{t7Lwװ|ٌei=r8R<uj83FCIC؆;Bm=y]UGsoYߨ&E`=hOVӭuGq{\S$XuZl5qoCr)9Rãkt52S雪PWT3 v<\U$8Rs1í5YmmYM=A*vRw<ϼ]nW{M:mPWӭ|lm['UzQ.hQ b:խ3Uzh9f*$Q]Tj 9ܪA/f׹n ^܁V 1h/w/Q,xux[i_BSBG5Ti.ģIƉ :U;v}RQ VJF_k+\mwul/h:-j.vs@PriF>WGF9p쟉mpp N3. ,JE*.vO0z,uRL?+Û(2~jOqd7Š WxAw18&#v-n]mPTj+όJKfH*$<#\ZjfiѪ> TjjR yw(I!o4 Oj$AA Ctتr,LN -',W:CԘv d1"IA0d駔 D Y- 3# 48} 샊Ȯ/l1'$ R"H#Brjq43_PJ& J}HD4.D"$]ް j! 椒L; ~,24B(J eqE!.(2$0L`:Jf*uxwqRSD g@!}HdF8x $T$9{bC4j˜j Fgl\&=K!\152Rg`bBLpW/LVa`+"OtDH疑M:Ap% ZLa !BW"pL(504)MBjO1qr,pdWM3BqLc#fe?tuo|IvYWJ0t@av <{r]S*qS:2$`F}14jY1Vr ÄfSq+5ȯD$RDZjsR8!*FAd1K HDM3)A&@b!aˊDT&Ȳ;0H{Bpp^ɪ$5Xj^$㗌Usz8N8ot.QAe>;I~ҋm~aIԙb@̘AL",pX5@&M(pU 7J/oc"Ũq:$=1DVIR>1"H3!8$vΈtQj :8B~z>?J<z8w\ W`8!cnd}qtx\PC@(y.9q؅O>ʎ߬= P @B6e1GjLRPX.Si(T{U˯ɹ %c:o1Ƃ~(8IT8.y/JiI.{}XNӪa cW}aro6z:njWI}j'ƨzRۙ^ōc]]8 4r*=oʿXڶ[}\Thm'[}M? 8K}tȾ)GoMإ t'~Ws}yc[ߺb,.]Aim4=ͣR9i?CuQ1FA|Ꝿ^g7QTK}:o-3,v:f+nTkw:SiWbkgW/$FqcJCesMpoYٺ޵ mG Zh`5TyKOk *2sm鲱 41VsGziio4\Z\Ӵ+[]W`ʬ(AkKfjk7զM_>ѵn7oamQ+>AMik1ө56^ыTߒkpyzVt=o'~KSjn3^h}K ~594WCʟcՋWP-*;-ՕphԧhڏGO'Tz&*R-]?>"%IBtFyݕNF\4ΨC#CڸߴXhuMMJcM#6,}QW_2߳bISg3Hv=_RW;-*5_[n‹noVCj5BQOo;OaM . SMҊ.m]K[n1gN+QAİh}3ritWͨ56>jإԿuk.<⺔bZ4Fb F)9wcV{}_^R}a?FtR|MTq85)(iFDPdTE2&~ \9dI ph*J 8TM$a($D@^,)y `3n q9gQ$W8y,r(T!2 p2nHdrRyHT*sdh:Tt K # "L2A^?05 iiD01@H2B$< He @Be]JLK(D3_b$0!91)d"ド:B<`)tUfRFD%%*_ht1I8q&dCPa>)a(:b@O U(9 LrrqBƣFC^BȆ gaQRDd2E2=#B \/J)d ԛP.-'NI0E U?CI9BqD?f^i@Uz>(2ꌝuezd:wUgA/}zdмk41SoA2p(1vGm˩:qu56^ ^ۥ]#RKkK 1o|%T%%QbiqSnbzm7qoBե+|qQ w3PAL.qִ gHK湨J6eqNɞG"S wE J)_ya ]),p33R;'AKM-CJjȿA6>?J_%p_7@IYFs@`*}ͭi_^dSQGvìcWyQZXT1,{cs\dƵ'T ;qс,՚\u&)q?Im5/5Se)p qid@4T:(,)>VӶo՝Mnz5QE+.kKԙG#閞ԕy2_إS*n!'NbmAWW#XYmvvzvT(1jFPPa^i.97)*ס'B8iP[QRUԭmJs^!zMss2=>ۖim=EiOMZ4965 rgɜ*wѦ5j%1:k+jśmk_QڽjsVM76 QΘNP8<"D;-@y EBŗ\J1n% &tʹ{7m޶[ .N? TUSV../>VFަcsc3ҥsMz$TI>]1O7%\[RիH6֦zզYQKԭϧiEtOm-6S*8sXM#t7o6cUj'bS{gMnTjHݥS' odcצiSsԢ]ƸxT8ͽ)hdG)M0$v -@8=)LiMFkb 4z /<8GcoQvga\q̅2g(-lokFsGvt=+u[5oWרtD'ю da"T}ѕ 7HwC lHb;lm}aq?zi-ˆkVQX:rZAjƚ ) ^Fo!,~|.Zs N'|Ҷ]InT[pVծ²4?6~>F;Fd)XPj#o$M\Tj:zkwn46< 8yi1̩Xp`pFZGwYLzQ[6n7'iJEM:Z* %1Y]iBG;.[ruC*ӨuT[O~syթyڕEGSP׸w9ė=LW*]s;SnwQd/ߖi5zͅwYvˍ{MVZ vLJlӧ_qw={K2hK[uGg+3l:;jޙYU[ѫQZ׾J54uiUf3зbÄa kk3˵iOU P* eݵQn-U3gK\~7CA$cdp )P9@cCQS=1=O wR,ŵ=*z@3 ~HҶݮj:具ac\p'Nkj5J4!tCcf}gMm(fѧMB/ln-tn/A+YT9㫮RmJW$/qƍ*1Ywۮ5ksQwIZn<Nm.n۷;;sRe>`)s厢.3Ӥ|+nYI%oR&z|D:X1Zܚ[h6֝-/k|Mϣ]Zp{^0ʃMS+) uZTw?\lZQo :XA1-CM={0^v`?NK+Nu< ?FڝiU08UMybZj(HC-' %J0⊑w%@}Qk][Ώm+K:wׅ+*H~Y)qtthwtKh݀Ihھ2_fO=yn6uҁpƴJM5q: n5^+EzҎ mri$:EnkmwU=6]4P4yVLm`}CYyl.6Z/66g#=k[괮9 ;7 4Yv _H}g|M'eG.;{&WcR8a[=@6-'rUoާuj$ F* 6*.m:TQr[=HHEpc>sVmf2ىipͨI5']/*oDdۚ#8%S(j@Ǻ$I;pHQtLEdH@dD0%W,i.0N$A*&&eyżD+PeE;Ch { @*{xCH$\H!30I W;0DKq|! 0%؃+.*LiĪL! NV_ $@ JH&DG d>0#f\s)AI0B%I bA0̤i3 <Bf;s; E L=Ah D@ )SBFyBN; GfXPU4b%^PQ-I)4hVv4GH*G]Gһ7~ƜJX8\ZeNdnoL:{G4r7 6CUJKnNէYpwl=ջ hS\Vmv|)d/;u)6_8/- ݳVe@=1Q`;9UyZګWy{ܸO(1~V85:t 3zeR~GI~mS ţu#[OiғYY؄+=L>ӬX{pcSHȀP/nf\?e]J^M"c$c'hi[ލFƮN*\S0\J<=8=ɧ+x4:ǣl)6+Ӣt@ .Qu'ROUyr P4=:M ccLS ;ျWò)FX|N{w1uL^=&VZ;;޿IYޕMg鬪2ZVj7W؎3({'(FepCi^?U~͆8֨UU‡w.ڴVn8,.*6}NK[zoUNe٪+(v]-jA۽kpp֓inu(۲)z՞NH~m3{vREݸ\V!u\@/[˫mr62K~6Tے4ќ3I*`Σ,:ctmgVNJ|˛4Cy=Douv-u1^Ew䵾gu'T.wqӶmTh\tPUW\#yeW`H:}ƻPV.}G5ZiEw-ߋmE*Z ӧ:vi@u/Ujֱhzco/mw->շH5k6:Yy],˦mFClY|h7]vʔ6kjUrLÃojvkWIiR;WqݮAi\C)ɱ)mBMZ.5>`X^3ph5 M1W6p7wpmhZVcZm_IطһkzgԖomJ/'צ;Jl4W=A{m49)7AǭN3s?tljimEu.'Qݟ=v`6~6 Dϙ޲5і74q&JE\]|Rc`ڎm6ZC}G7^nwk?On5 F-iG1Ե8jQKgD[KӢʎm GӨ:tLlQ?tzꙥGhCTD;{Ҭ7K>/;ڶ-H9]hsjjvV39Pꯘ׫w[kxZJu<I;LJ*I)WHEOڲ1lw-Li}n5M-Zy-cjuQqDgne^wm+_NqS y\Z71菛m(7kToi~)\3N<ܕXشlyc}=wDs(ѿj65j LHn[VuVyz`\_0$!d+6oj]z.rn[mPHA3COt4V\8Ʒ[m7pujGҪ&oFIY4J>FjqRY5S(!92BHTĐ4O:P(b(+Q8aA$Des+-YBH 32 (@0+HB&I>DjB{f PTVRdBsШ%Tp )J@.rb, 8"c5A$#ҠLChID,̤ԉJcW AQH) UV 2pA"UV)(S+2e$Ye2[ieD fwt"HSy Cȟ Lʎl( ~n-hϏ ; "{tT R+]S>|sEQ["u=Ōcu/B Ln*?AՔ _{\ޕII3=<"fj- L3aܐ娠&cTI{b~ibm*MR6]B!ОC-.n1>R94ZDR$sz`kOHH;~Jk?U c|׫| #Al:u : DŽVzd꽆mڍRF-8v7)U'r<࠸*N]QKZOpoѸV֠M:AmR(IĂLv|"@'*54̢/,c˩P.\r9 1KsʧbꝖ[J{JU,~~Uheo?GEߺC:H_ϵvQ~^TkFQ* Mhr]$!e9EJMB5u{/h*3@$g%\cu_Y/wCuBHY#{1Xs\D5Le@TZYfI=33Q@|ǻL '!\OSl **g~PDI$IL9@!C$xWQKG0/d&^܁〆!gdqCdU!q>@i*`8s wLEJw Jv9PJj@c\PG@9l; 8*9TᒙB33vIpRQ_]1 ;$~o(CPa't6 PvA51>Hqu)HDMg!&#' Ġ.ab5WD \bF[#cꕬCj'mW;%>W x1k@Q=+FLU;cƍ5{%AA"O|[{=?}ci+xǘh.9Wج[^4_CgK? hid逺\tLizs7Μ{iZ5vO/.>>% E\1+ӵAES}ԛJڑR Y|[\9%">G?S N:uM71O+!1eOME*_חi_:QjpuL.+s$x$! sDqitL"(F$8 ˲F!RKFTEQ O,B 2IE8C6G9y䠔^}N 0(*03#`D s_d8Hv($9CI U"` T# y%A$\_悎@Tl&fFg $fLO咑3PfLN`e C!8e,!CUO )H DnW `Vjd~ h IqHp!dI$ELC'j ajt k)oq&"(X@P2pJFXa9y 2HF*F9MP PL @^PM|qH@bHL{]!H,;J)]bH*T&4ܞod+P18iAh$D  =H?8\,B({6."q:Vv ^ȧTÁ4I#Ke9OK$++3髇20XoI\3=JMG g iOOa>E|?f0HOcPA#vf^Ў ;Er'ƴys@Z#Z'Ǡ:{*Ao1@7j} ~bxh1:)5 v߃9~ ,"cbc?qnڦva0@)`!ԓ:' EJ92^0A*=+l*{8D-,+?(']H4i>f"8VK 9vGe??R`#Pt=f4́P? Rxv!B@Bx0 M&1 FU&!r13LJJF.* Jyw!gSOgGN i ]8Aq 0BS5PP9qOP&gb(g>8v@ bHp^#fB9s B)3sP'_0˜ "q8,FI^RUA%TϚ}l,9*$3.'%Bx "5h$&8`3W*k‡$(!@ns_K6M:5-[: Z-H%1,mN-'$9XntCޡ۩ cՐmwqy8#XUgS (;4upLz]6\J$EgmԳ~%6 Jx~+!qPX.yu2 WJDI~)~4钪Z>/icZtMW kRd+U+ q(HsT~_X_Omwf gjLRJf pHjtjL1E^h|NE0T_Ria}WT9=Z+ď.?Rh:%X[Pma͡Ծ.h)mU*7.iծ涓9_O+56{I@83IJ6}K➟N0DR4[QN6r;1woI,:6lB6;Fgh42l8tnEL) n]X daL:d@"c4-Wq\%)FKhZS3Äe2rj".|af#BQDq,sҹ CڄCS팆ah-=RC,vi@u˃@sZ%0KH9UJ kDPe@ƻH@qP|r ( Qm]52p3ZUI ÿHE .ZtSip*<(5{6M8. /2(0^tMI"UqHU.A Gt*F&9]\}P.kKCB]Ot JQ5: .{sdqXu)$Fm[7rsL (4 Υ^ zq Ǿ ܛYNUt0 v^Xts$m5:\Ij"Q.{M΁P(sfͯuIAȐ":nN߸ѭJ0nRituK#V$([L z %ujOBQ'}R$#]ִ)hiY8 Ն zu)V=4s U }bZUu:K jS?tIc˻ocdZ7V4bZtڈ1G_s9.{uA xs͎N+u}=y&[+f(dCPhI @B , @ & 2Ps Yqݚ3/i (EJP8BP,?'v~hS,p L5HYPJvA%Ia#pikٜ5ʊdf W,a'Gs ™ 8wCUDS$L:@p\ba55P @% T!8T ZH$-$i88|4R쐑"OsP:Derp ص& \I`PѨ|iu9=ycGunvۄ,io4(fw67[.4 _˝VbT9GtcHєgt6W_;ZEsS6ΗO<Q垧.MǪbAݽnUHΑ3hSR־^PtiYm:wZB\$(I6D P{]8*mFm:yInǦ' ^Q(9U<#.cG;u3W,`Tv,[olm ]ǶjOR!ȷc9ǩ Aֈ4K!T$Mc:;nG.z ><PCLXUĝSTR+V=x+Y8 یCp*ќxAwbԃFMHV2ьS>S8'dHR8V%2pNA$HDT\B㥮$ @e%v<"X :5ygz̨ͼR(i(D{Ur榍-JHE'G#}=7&k;h5OqҞ83+4QTQwFm?˳OԹgDW'z^mEJhQ}Bqu/3ГP.(t5 :ZREԭ0Rd|9BqQZ*قQmK ZNzeXi %ueFޱE[RNQEScfj!)nx}s3mD\@ib})rښCc( 60LdS7vSqkhh+y[]ʏ9 F.w SJwM 7mU5 ,RmvT#@'fpIbKt] ٩!#>εz\kPRB-f*3)޵AhD`8+'p/t s.eV`c T)\T(L6.* D4zLbOj@^ƙco퇻C[#]dup$jxF D5*`kK57vUM@L\FB'tl.AK4;Ȥ0H6Iy7 4O\Ɲ%QI[r}S'<@EO|;p7W4ˇ.MC!{իz,.DF.X%V9mID7rh}J.zy8q~Ҍc\$ikUéM%ħ`팖oZ@gUbϓ,^jԵML6?L@Fף\п9axO$qզ {t:f(C*5Ɠbsܻu uP=iXfG1+2LCXզT|%,S˯hݾ4F23^},GuQYW;nﶲֵ2Zni2U\nY6ڧSwwJF F)EZOv9kQժOq1:ڪ 2Vi#6ڛbҥRKYWIp\m 5"JL\ ˼w FgQӚ {p q%D`*4DCdVk*Vd$AȤ@Ihw*@ $)K0Ӌ$nөd%4NX,5!PL ZUEIӓ;s.0?ҹm4>ͥJT6 /67b!LRqI -'tzq7:CJ=T"Ȱ;rxF[:Ajb;eV "C/U_VpeZxPjj. 1ps:ֻzyG#ǻj[8{/85.N JNaNzG_N;;2g q8o^ 6N03QcFCrV@8en6Jpo:`m)[Z`Z0ƣwim5;z,. 3Ԯ=?Un:U `E"K옢v1 k8Rw[_q%k9iX B`@ėicEHvZGzIEdp%ySoV6 sN(3V\ ^؍"f;rۮ6kx#qhDӠZ(,w ;mzCƱ\dD1rngloM}66JfxrʕvVOTVRxw6 nJW5HWP0aF9wkw. 3!{'OjRut -ϸԎRt-9 k|Z+GhiS$ >̍~U, p-cyOyboK֬. ~m_TJJU451[[]\2 Zuuc*jD^Eu6*J ,[ɹLkK}:`Z4j6o]*05tІ\\]_iqM6f ) Ld< V7+nhc Jo3nrhPqmͺ.>E'.ʄUwlXXBP }G_j+ە U)h_Y4sfʅ*O`kߥ?-y\-ժ5[ ESv]QF:Fų&!Äl__ fpPic6]ožUwBғml.rmʤ\-a_ٷ)Vy\|tZ=?Erjڢ͗By&P|me]ƛiZAU8'S13Q W!q먺XSQ0!cb7pyJΦjaƘ_I}ɥպS6;ӖѳlzWlA}XUmBaa޺h.i<QOQR\Ɲ'թJƹƧ!-ilp"ޮ?"pb+V:]Wf 8ӎ6TYPILt}:2T^m"bvECFͰmKjc-pŏhD"2ܜjiҗ%U%ꥋiUmV*f24"DP%1Xe*-@fcI;1کqN,bɌ[J,)f{>nh%•)KNΥgH#Pr$ ڳXb93 C%*n4Uew]Um<4>' jTMQR-՚wtXoTs{[h* NNNqBTΣ5FtnmȾ(1Hc9X/W=Zy 齭/}TdkqΘ\ Qs&S:hYPOa`TmhrRJyZ$ݨ7{7vu6^{[TKE%*]QJk[4HebScWWg-0:zLm7^m5ϫV24/mOŶK7X‹Zt'?rǐ4"ٷ"ZLȮѷﭮ]wup[NZG3.mI&oAmyꝓvkԭJ[d=WνTirԮg/4Ei]L!)S(#qDn7;aZ:`>ܮp:Ӈ݌-6mCUBkF-BaԎҭj:45޽t xlM:$"LcMn_eѦ[e(Ԫ1jvTN]˷VmZu.TYH kPQdo/ߋpXGMGg(µCW6+ijI]LZe5UԪr}_6)ZqYғ@$ 1SnֿKyxvkg*sO^\Iٚ,C9軔|!e)}Oj8,qE=):9HqJrPKg:&>H~1?#-8\g3\xe 9H\5 dxN$Uahx'0eS (S'1`x:syAAJ@(L9p*sDw9P c&@ǃ @($CIr!)%NL IjA&GR7?`S4<)}0TҀ">jj?eLF+.uMA*:d`t,qr %kQU4Si* sdno|WqTBJ@ yMh0XR@3RLYj#h0!9f;'Zvu醖I4f$ӫq@ %JnoU(кˤ\λjqIx&q띧yNv`þ<ߺ擵S&F'ƫnwMkmOzZKՉǂݵ$?6*X ت^ l]1'cKD+DYqRuMS6sCQS7 "c&5YrtS&U:WːII*(>a!D a'{hYYr42^UܚjeESR ]alm>q,coںfiJj4%A#0֮)5л狌Y Ԯ^>0/|'p]ճjT$#&s۫^R%ZK\gO,hme_F\F'"{;qw^mAi5)Դݥu25Fˊr̔uD#W* rTVzu% .qR^O[EՀDfHZMCobcNkzT$5>PvA }'p6=56 !.ÌX.\q6ic{Z,#PuBfjKTߩqcPP, tmȕNVJ%i\QǥT@li"ǨXN#0Ke6_mL:Doh=^eN[Q]!^Y:Ӹ{ܠtP-]Ue6ӕrJ} u\7nPֹL"\1lR}zsK)g0ű TRSUz{n[mU=.q0#ҢԵFuC# gffgwnMK !ZVk;2n36SL6#4M *{sOiԤ4)̃X۰Vk4yq 2Pca_j.E ͨJ'ڊ9KƋ*Y `K "4jn R5) kʫ}2ם%BjFS*-M8#k>ҡ^մ Ei[*:N"M0 مΆTQ{ZpIYcCAyҨMI-\[L]=YQ *]yD7m\Z疺E Vޫ V-dLFޥ zL#oIvjl?NJ4C0L-%q' 4b@$8w$``xA {=QaHC0$sZ$,2Ki30'4$&\" x =3-N#LE& RJ@*}H pY{xqBw"fqih.HczP a B '`37H%!tO ܲ'*@!yJL ` $&g EYs^p:Te(O(`*:rB5f3H{ RS\<9pCB44O)\VZ #{[ Q! 2PAe#UIB':\Rk.9$̝M YP.bH, .pSjl=ҵ UJP$Bc L̬dTܣ,n8E 'Η ˰C)0u"#\d3V)X,`N!YD\t'4E9w|QB V HcT%2qX9ĶK0p(Yl"7hk1sTw}lʖUMd{`D%#DMѬ'VNv]ɮ{{q-P$ $%siD"nj$Ab£զ օPT /?,@]@#Q'OlsV~{ Xo4&NPoԡu$ZL3M="*Fã6=i?k9H*O8gVůno&KѶtuZFfShQ=(TESsF'Hؾޥf! xwt8ʤ!*q:e:Giib1EKҹiu[A}j5^I,9KR1}\v\| ÖdER TEkwҩQ鰆WsBIf5Q W[Ţj•0-5UMPO14=5,i,{Jk$p,v.s"L]Q4Ej!}@7(@e*4g4 :!٪OQiTVԹpcTv'q|i$4Q[ xrZEQk۪r~fPOR*5O84Ќ(b*VX.J_&+ qjfm+:c)%튯TeZMZ4̢j< @2J|MRIu5b[TO^I,*K(s;|}t7[-=oj8f9I*șba-iLdcb4$ĈsEfܪn-*n HPf]ǰJ;l+JUJs76&SVp{\48qVQddmCӪ5 AێWiujO :?i>HoJTި j_c. Ol )$(I\\PQ2S> ~#R7|E怨+S.`Ƣ5pRHq ? 'nIsQE]GlsB.2)hҎOHv1QIY%"kƚ,Ar梄"O>33%r{"wEE[HP"uGk[ !p#C I_Fx~NP)VGAVdU tģ rT/z>13/n6ڞ }T 4>tu\)uFvx;su픑hծr %qy\ 昑g]ӥXS= ٌZt=BʌF e9 4sUcpr/;W|ٰrm$;! UIÂwN=!A.|H@$CN ya_nb xS,3*JPiP}8BbL*2]8?!{bI,pdq0AOĘ `*J}fABtөF"BIdq; d|%%)݄i& %vC5L  \{7Lis& QP4T]VoAj5R;I=gN=K!KgR(:x8)碐w[;AD8Sf:VS".u:m .fD`GcKxք/#PѿfV G3ӤִvzVU+ݜ 0?N@MT{scKQ{T5us1cp{&h 0e[ kѭI$.e(VGv7}&&߲~̽uT9͸dij+Ч.u4FidyԖZ9`NgѩHԠ\zM[ ĥYi%L5d̙Fnxcv<11N*274y\i/wϢƶ.p{ZI'9F͕\*RcCۄjQ_uoI08ġqݧv(EZu1aX̻gx*ѮOf)Ohu Wڎ7M6(!É ۹29j29D@7z;D*.@#4GUO[[n,{]3H6nB3 ?d3- a/+m&Y ViCx1Ftv8̢ĵnKɫH2O;D28b1Юbfj\,GkKԮҨ8NJA7T%f#/u&ΨXE2;[@I3CՍٰ84IBu]q_M:kgޅ'D̷I*%Ip ^p^cUIz*(˲'!mPMϨƙ41}tc 81&g9?g~<׭ۤ^3ӁbA5@]T' Q%Rg9"()`H!e.Ք.S3L$Jc+ r~r20K#HzbARDa)2|10P&b?O)~w-#+@#KNܾ %( FWNeXӮaQ'5[iU2[: O`ZAIwq\C6'>0ͯy^^mJUe^#&Zʓ᎛^|߇Np8IA%-o4p 'dc.KZCfisf5yKfZD&6lKB[R!$D>-PL"jvVuGr'W*jROn0}03Yo1֠ ND;ͽ&Um" ш빲p]$9P'{s\N҃hk? [Uر,vRmzRkT{]P'Q%L:ۯ+vTe,{e~;  {[ڏA껈JM,Gny)\cf鵺"ctD;oꆅe*LWknvıtl"ikoMRRKީ)k1\ͷWc)/ *Em]qQUrIJ(Ʃ`j,i=P2P8P\~:-` X&ݴkm&>?wQuGR#w9ptΚnOKP3ހJhhQ;hsJWTpbJԖȺJ9cRzlI޾8q_ۚ=SFvy !"_k+@W:\{Bj0~4eJ*2i Ata[lu7|vfK~U(R{@Kj=⥍Gu78HIVQu[(`:,8Ef?@vJFm ij eP{:ӁS,D %+jM<UX;cvp3QF6WA-v |p嗄TQIF9(Eֱ4;]l}GsPkI16*{} Ӧ)Lp?-~U8`$>^-t#Sfi)K sDB|dҠa8̢zeQ[`zBoWI"kʸ*j[{[wUK]R %O,6tq=~eS|ݙr!#$f; ωBTQd s.GP$S_(P邝V5#AefX2j[Vv=pˋͻr}J4), s+J/.zx<|}"P0NP"'c>ԟKX\x ;J❘a\fm:jvFFdvΥlKl6H# LRBoTa.^pM2EnmK,YCZWJAg"BpLB`#&CH"|dte Bq%qHT&1e2eD`"q 10p5]_q8*+K.s>ǕztQ ORل$]2ף蹺i9*ovzKxQ-i4^'euJmi9Dhhųm=[(eg=(}D*H/?OjF%.4I8JC~h\ #qnT>ӧh"VXD+ͥx.k5C' zU\^$AŎܪX9rLUJEM`9FzB..+*^pYn ?`/(SUuJEgx WQ~uuJ9* ?{7 zTi70}y'*lA(⃵c"֮K>uԾqeR2& )hh҇.[ۍMqIFV~:u;mǽo[ EY9 JҏLL˞e y^y\QR꫶FOi3,QKnHּP*6d`eTyLZcauI3WVrV5*Me,M"m.XhAQ5##9H_21еg5c t&:TO4&ң]oYHs֗A=.>d:c6Ӣ,J8lnӻcZTiQS kEVZSdD:oҤ3 pmݞZ,{ڮ! !kl ;;F "J B?x%izR֫^PL1FGLjkINfvfI$Qc킛[J'KhKyy\Mi!*E7#mmpp($9(Ĺx4A]#yH1(ҦРW>¨,p-*˂Mig\jg#5]G 2<.}KWEh%qcEvWv8? ufiIiB;f*~ #~/{ڵ!ǒ ܳFʁ}W8 g6~_hŽN'7o[֐no/96xa!*+8$*(| pXR$!Giv@*8/gL/FSHA1([< Q0Pht&b0;p,BJĎ;9\&d% HզcTAPpQ?l&rQPLR}dH0Ih;g !9 _a`t ';HdS3iĨS+`P`Ry&0& BpLs˾$ x10_PnQ~ͿWQҧH_,qo[-Ʀmpw5^j$6j7W]J[T*UdS7dD®i"=|R~ʖܸ^)TW{-yi $a(!tT f2>x$L^8c9p4, @Tbbn M9Q ʆZVܮ:k`⑁&} b/mn{fʴ\/ȸg+R فvNEz73eRXJp2ĕN=+ۡ^ 8IY S8+MDqHd95Q=bXdb+&\3i9*^R~e6s1%7U(sH[e7rY*sH($Jݜm:f~MvT:I(f{XCBO3 j*\Y(U`]?P-xVg+}#2kkT:-dXJn`-ό_nuӅ̱mhs II)jN J~`tbѵsn*mG)c$Q5$*8:2/RZB L+k-5T#;i9uG̫ýlI,Uer ߪm 02hL}]uiMD466qI AѦz WĠ$T,!/dO-C.%"8D aA$\)S1 2[FȀ{231RTfZT]4noZn\Y46֦u7It{kfUV%e mG5lv8qra]+IJJ-I$n YOVCҼ@}+ݕ<ٝR,kLcnRo8a~,s)ɭ~OBztfƍ;]m^_pPGg"wT]SVP65j"XzANRDGLk_%TiXd&YogfᵃRJ\yU0p3 X,qj42<{TWxG`B12!J-8]u-  brEƣ; 1.EA- r4.̸ŕO \_x)Wih1sTkk/֚EyH8jeR)H8ԡ]#*FSPjE$ڢXuv{8Sm4(5^`)8{-G3~Ѥ4c~(ɭqOIk RquؤLnfAC/b-sY5yPF +7ԢFE9l`_%eB XBaoFR*5O0 ,_l:Ua']hW8j^}]P$ldﻍ=jշE6][5\\N1mBmʜ<=G"n Q4 '" bGePp2EIg ԙHbx H !@# +x F$C8_+a r܆ CT}}pr8 ICI\!p^2㌡ĖYl:cQ~Fd ȘJL]I} ~ q "IM9*U8C1' k)b%P).4) gJ̢](N%rc ,0H Y!Jh10,OdӞ->aCZgx ?zZ\bfIH{fw6%(e43IvLrl$@(2*beP%fdG'#ؑ:Ho"{"6؜F'@dhCLCF@F@"n%HR(ڵ!B+U+K&E| }TP5+1<h_;nT92m[uY0v`檒퍝Wͤ8E?/֘\p9ա 9N]kҪ@)đW~{=<;t*&p<(݋V-V[~-Eܛbk:F]I7CTqϴj}|;wCow6eFR&EӤZ=/ֶqBߚ-}WSNOuJtݮj*L`42nGq+pbJ7ԟ_*F/eo-JsO,SkVnjZ\),+MZ_z.xu oPLi@{mխx,saDQnY4U:Ι>\cei݅ͭűqhRrzku{oP5rĐ/O$%ZbpHM{b6ݷW Bө]A\YSDwWX4=Wi@ ?hr[CԽa%_W LQޛT5qa){<#?b`5zNDJ㉋?-5GiSc6!X̚O9ȩS]U+xMsJNֵqp0?xyٹtgO4Xk'M:]9\J$}af$(:Ң= 7$}]s^q$hIks~-yq27=ݾI}n|#ReIE˥>$[oU>g8t:lܮ cX>ċY]nI$lshhֽ>w3m% oޚgWD=c龕ܺ=95Wt b 6&:ZI퍅OIyRqSk-)5>J\Ϊ1&8/*C._icI9}c'ϫ7>B.@t#{dkFe=E6޿McU[B婀1]PӲz. {Lt= BG"w}֥:L5)*R;&O~T]. ~QS22~I].Ƕ o= k\Xv :F*vK5. ~ڠBzO7/m+kӖ"@Tri׃TJh h4$f0`#[9aU g7G+¸~c_OKG2 in8R}G+ͱi4,AO.X]X֤aPfti}ULӨCW"qG.hP `1Hƨge:SΠq:rC.(񸯷YQd 8F93USU1̓՘lk 2O|eؗB|SJ{J6 M0[+z sMK!;іգ?fۚl($/բ5rW?l>ƗMEj#;#fE$ac= AhRdŮKZ%a"gݾit1&QPuMEs`3YhH=լ!3ʚ_NTlnmMк_km m u@Kӊ>NyVq5co mڵmd}W2L! bC]ЉYb&qU0;0@"$suvKaWҨP9ZTi干u^ Z(6@G#:M~v8F HRc]5#/q92qw-Fkz5_1@t<; 4^:3rf<ȔRzf}EyHaz2A#&j(z@M7Ujmr_.'q_q:A2p1|߼qa6eÙp9D 1:q b]GuJ7 ꥊ$Y{!YC^ !3Î0SU| GT@DE^_Pn$comhl[g.w쫞iSRL)+K̒I?T4T\Hſkzֹ~G޹q4U0nW[ܯTntEiC=6H!xe8G2UW.!WDb'YI˽ p"Adx$"&ZA%\}(HȐe>1"S A&+i8S!sA%2X|sQ eg w#ZqM@K|_p~Pj>IjSh.Ln{=S͸/wLӨyA{b7"zړ%YX^zuhV\zCȹn5b@Wg,s݊:aSO5?ˬϹP _sAZ@u&O%%vOGCǫh+5@n9rEvp1q/h p\)S$ӧu}7!Ĩr PB4]Oi!yw՛P[\b5 5jzhV@{O\9 E@Ф^ڌ=HʉPMkh5H`qcHD3rNXKE.iUiESꊜ褌4[.L -USȻ<"J}F&̫`Q eQA&$O捭jF"g%#Fr5*}JMj=o6n[z4U77;VɨEn]pEڕ- -`Idf{qOk#PFAgg}NhOn-ܟxEmI-4{瘀VcdI!0I$iP$"EbR;2IAD O!9?!qi*( )4 d;5H;L$D1%2k+mS $jO¬ዮͪI'fi8dJ@%B"_ den^dwmu۷z~qN@.kO;1^ldt$YQԪ 5]2Zᖠ(m}}׍Έ)Jv_pźMmA|fSSfqvO#I^ͽ~]? ͨv7 p a15,SqŬ̄`˾ W!9!c&CBMSwihBsp$K0ES$Dp |L1 TL* '/a" ()b#@".YHNj;U;OU#F)0 TɒR'L}AqI;2 2`€KÄ(!$Ov}GPu"XqQ '4IQьp  )gfr,%\վQ!C-r_:0-N( :)7R~_^?A {Gsflm5j "5tcM.Ң-o -Hrʆ6{sHwsBT 9sb4*~.}"~FM|s?\1*hsaڂRuo B0T1qZ=d9D ;* dm9#-_"q:!OW)#=9A8KS()} $$r0GaO V^ BEABx ~*6.6@O()LFmhU%}SxLV4H^Qy#sX[,0Tҙs 2 V$ <6ć9ĐTeX)$s,:I* a_V{KRj #suZϲSqR׸)zkx$WtEi:ѭMuۛXiu;vdz^!oIB4+F΂+;{|[% 3Vr9Wdx,浥L?XP7v|}sVqڇ&3=Ct;7EnmxeG6 Xa?<@$)^# , 8jI]] 1._0 'ˀ JA`p8?Č&aP4s3YZM 3Es^Ԇ)f8$ GMp' OlIA҉I>(!HUT Hߋ44ҮlT\ KCf&IKQ\{#uVҴs5Rbpo4Y A81(T%jck7-?6֡ju9`n30әi#WyAhh(]˸TW.=-ε*EZ/kǎsˀTAa8("mJN-FJ]^uMtսe[×N ekʧ^ 5AT$aT6ϘUӅ=ޥGcQMj_i1mZ^ޣkRpi=æ3b)'B8DfG{IXP2 D2j+B$Dn9G LBG|P8xH bVped!@3y+h =F2"fGiH5t7:M<1'(}}A_gt?i}:,7&7u* iZ@ߵEnUY6vܕzQ.kΒx!Q7t4 .U9mW jI WƎT}zCnr#If UARzMMDSH̦ꦓDSAP5J\*I%%7M1RYQyIO4ZR#Cb 2 FŮjZ T$uaLfzCG4n7{;Ujz2)\HZ=Nv ɪdn&oN{Yޝ\kB:; ܆D41ϗw.=C-.A-2~㨲XFbr9Ukdc!XL}a%7Oe7U!{т8^5zVN3J48"}Ѹ{庻 s:jZ;%vTj HId ((H۔8- R؋DaUrN! ,PȑM0 0洹 y}58H &)030X$fk(bK;A"Q"ięC׵N dgYuI&a9qDXcsBH4 W yWbHI'\И,%9L*b\`s> /C%@ KP$)Y&CdFW$"dJpG)*@K,VB̩G*PVݹn;EQuܾ! cԯPw4kMA8Kl8.jW?6VnmrMCk3\Oo1ksKPEvkp7#ÐLϳ6[_P=QZi<+=ΤsNu3K}f{dي SnGqK*PM:nL?̚&a}UXNAFJ5) гuGwn-kL&cl*n.hSSsuOgLTՕ=M`OORy.t{Q4IѥQBI'ڈF8s{~%䨿O5ZgBEP3sZF7Hiy?R1u_ lUNR:nyU$tPRIWZƉI;@(8O(r!H$a1,aP$HL @8T#J*gAoqSЦh 3XLI0 @T8p)@!P Bb(ǸB#5TH_(5I{8q{!|FRP ,#'G a/0")RHgvN RI5| I!I0 (F !p?iOn'a*|JiT AHx&@U2WYz+w.߸(h -`D5'I |apkmH? -(8F)צLSxr Zj+4,2 PlfJ .7#³}B#8Pvv p ]Lǃkc )3*Ϛ,][woԚn/l4V .F kjm?mo\jS UxՠG6\k{bu̱(ҹe הI5d>FEGƝ r#&鵽yi%ir# a٭s^섑؛ô6~ӧaDeNm3Q›asZִ O{yYK=OCMmv!ރSQ[;|q:mtaVd,j FOގѽqkOE7a*6]toDf%(AmO6"3` Ls#?='Vґw9":UBxG>r ޺ۼ:kj I u9DN<29ω"% JC0B IDőLdOM$Vg/+I!RkK|#uCr_4jk ecocst)2SOI::d+IOnJ@gT* -bLJ*WReM,ڇHB J0dOf0*FpZ@SI& ⧼j%F"hOrCZJ)/GNDs_ՓBT$*\D3(`*]$ tRpl%PvAQP j`) H8w),0A, HݦXi-PC)@ paA!H=,e $x0J).(| ~\d 5'!,1# Й`L)\ L&#{o՚($<+:WW,{n7³jڗU\f?æ43/)&6}T72F@8|QﻮkZQ$ 4갫jRrs1ѯe3_Z M{ਪz]򁶻GT^tA?|v&/YS%(.V&A,!9sR2RJwa8i{9X(sI1T= i9= h$j}\SIV`A JjPOHPUGC ,!M& %HO-CF2 ġP p) *TRQ%(2J(>>? PD7awC$|8E.ЀyB8D3 )$";!`Z3 F KJ,ї2 [Bg!yI?ndq wy<~e?ƮwkJ( N!C&cQѫLT?Һ"1p233cW\93sr-LV8gS؛ ֡ʊPqxMdOn-Ā -̧UAI/&Xr.-@A 9@}*E P58y*d(J@$ʸLڧI%)Eq)H%JYHgr(b $B&4y–5H?L)AȄ$ Ǿf4BTlp.z@ CfOvp93q2qfD!D8\0@=p |!,O@ARg8k 턄L 81LR Lt/c* pUBL ,%N=d3Fx wUlT758'4%>l;MwH-xc`6{mG~ QGV%KRe;U.4mi]?Kӷs泬~zw:[OⷠmS%?W@HIUW8\sHF wZ@^>&^ąrd`bNvRd  f$i-C?dJIq'I(&*O) <09" NH)Cv(C&]O^EZm\4H-7jwgRVEj HaS"[Yi%3,A-xB1$!( b'Z }p5t[<8v _Bz\FA*pN IH%sd1<2RHq=0*>r&!F$`g #LЉ!4&D I>a;V!1=? s=G;&;! 42!ۜdh' t@#BOxsB;4]VGB.pTNqvGedBKO@1tЌQS>* $9S<@ r?t<RSN(\H=rYIBd`(j3E%ްfr"EmHkIð0 JXx=èC+0ҁqI4鈰jIc/n,ሊy\X 48嚒)vǺdMhꁪhw[~I~ԟ (~\~9?9\7?+5Կu|sg/[|Ӻu(?dd sZgkt+t|%vИGWH+w#ȩw%i6-xt?yKY)'焉)~p '' OzD )< @ D(SPs<ħ~p>%A A|`kKZeڰĂN3tȞ8y`rP\r2I!K rBBINBwg ,0`, %z L!0 JB TffNpH jLdџl\QNPNTR&<{M?npPҠ)2LR{a8iJxCtG09K'b4\p wb792Ì0Yj # BGIh iDf]8e!!1\CЂ45S 8Ȣȵ ]z7+u-?#sUT(n4Nxa]48R_Pj!!x.pU JJ$q@ECf0DjE˾$ c(GH=@!4v@ .fp$J$ftPAYO q@I MQx*R$(&S?c cf" #kU3ö%kKB9F}\PQh;g'yB)wLAVt`z\ڏiPg j-mY{@7{.wvӷ%>U4߷-[ml"-d41jHAWԜBg0qnwꞝ7WS#KK>caݵLoOmgeIVЦV7UbHTU9\xSWJɍ()RH5"I*xĭHPFk5(!rka0tfp" B D*THL&"6`*!^I8&0FTMSR=BH!x5Q|RLM0Jj*0K*TI#ѫ C)0Ԝϵ A?nhbväcC'HLq2 arO4FS_{8cꇗI 0f&8a CNS.9/AĢh)04ٓҥe UA2h=&9&(]aJJEI $4p RfnO*̪]D#!)j ij 0> (%9I^`}H7:iB< '3\ `",d$0@ROn)DF䖢9&a~Q8P\$%.la@AB*չM):v&ũi$gcSDPDq;wqpЂg&Q'<зՅrRV8iklBƮ2`"@j3DN8FFdIY&@qf>.)# /e U% <@Y@faU$Vxg HhSql\#n`v-evZ΅hYSiUt9thlVe@~+0ѾT]hyBS@`YGmW{ͭ+{Jf\Qj7?R@s):^Y\'ݸĊ :$qՈ <#/JƑ(@(=]rv¡K]<ԶeC&֥aNH<)PZ ޭjgԪSf5վQueXN@Z,HUPB(D ʈP% źY`wU ?^ y+չm[>ұhsX 6_0-hbIL&^k3qE^2BqL8$ *IT /tLbO這 eI^PHBwو`$"(MCBT*}qIH;&fS g$4l6kLhʬE7[ j1靯C0Qqib Eq>^ ]UzXYI;ClPR7M}11>P$Z`_i pe ey[=Nu w,JweT̔#VgoOBwp(PuB l65mD%|̹za*Y`ժqBC* aR5|Y%WB OS $'JMg?yF&hG8Ffjᙂ3sHPT(DN6QdU˜nraLNV5.=:VM[VӤh}OEYnu+}m4ROc[NuJoek9=hsaSWX4??SrS{jJ>3kN6O)Z9i:)zQKq5rQʟL*A[]ٰ= Ahm[KKF붗f28%HqQO=ӨvV*y`ӶmHz-5Rgu_XYӸoFn֊h kB+ %AQڷ鱔^KU?Whc6&F_n UUl=4xnMZj0>RVTk^R>>>3ioc(}UԮ{h<*U{> H1ϧ^eFҘp&aGHk1gt>.mjSZ:jK0NfZur7zfHXXF?ˣpս7;t,PP֗D7U21mǨ^8MzUpjOL2[JjqR9jKi[7Cr2"[AvU)*z抎-`ӧM/-Oͧ뇹 gv{L c!)Q/A z@2W5/&@}n*5¯-+mWj[u [A(I~%Wga`in! fp Ј3 0NHEv(%yLqp.P5$h$XkW$π].Vujӽ=[VY^61ŵW5KtyH/XJt;~avIC Ѩ"d8evޠ6꿩Cq]κc(UtӧT-g7jew iUoJB, ;#|uZ7i4fJDm~lZ:aKeG1tu vn)U~kiwZ+5*Q@SvT:[UƍqefUeM̾FGu1,rn+y{3qN>ncQ&jlRS 1 IqyєʖcZ6tV-:YbN]mJֆը᮵KN!˷;r G;闹7L%%i]ǣ9.0C>iñl '[v6J}o]RZVZO~7$<|-~Vˀ$ij ᎒(]Q#؛mK2Z9O9.gGo;f-o.-Qk)T-(O.h,_Pg˶em^5'8N))Ay:Z͞> À@I HCzI!pI(R{!Ht$r$q !$@E) a{Pn:<'a@׶9Yxè,G!b⋐G3C~k\rmV`gU}i|θw6~݁FE{ϵHjBK: ϿƻtAH'JL*h {sr_rʇiʌ @2Oaqv]E1(6Vh= &J  *%A%02 mdUO3"Z0J*7u+x̧C?KK_GSs*S"ʙt:{:F-d6OT TQqg\tLhHG-"pU%1>gm>;&4Bpvtlmc+Gr"xhN L?dn=+OryJW4)8ֺT. 剏3ѐewmj%Ԫ[t=K^525PgwS 꺣)[l(7 & ekVPnGv(ࠪp>,oXk9Cj63: m]ا1\.*Q{ ;a6+2!J r$D+p[2Ypg9`%i-3t' \ZS.86G^KȇQ-`x<"4T.DPs!8Cu@˂#niNV6}m>J=j98?lr rw+mߟlQ @{ ܛ}sRQMdtKfM]vmZjs3AL\VivOr.y:C],k~mF 7^DsIkRP[TM!~U{:b=PF2B!K˳a"pbe#-(0 2.i$CP7VH8b$(H%ą$ "K ң |-s&j0P5ȓ(N M$dtS =#Y)IQ g mjW< Y2R{+vmDVֽX|)0mvJ'1sk6Ќ&_#OtK Mt15#?ȵP6=s\yUmլ-7J7 [6卨UQKЌ'u][[e:UdF5+JϫRp&Vp$zziX) PB''ɔg(Q`}KLz8ܔa=y~X:or4pe{JjR}jFzcmTo7-m*TP!V~u^iUvmʩY,GF757TmVޥ7eJiR/Q[9c̜;.q}qmi9bn_-Ux[OVPor.❦)I\nW\c__1M 7kEQ{ڍe!ouR}6ӳ}[zYOI6--:w.˃u[U`mV7K鱼ߎ5}aRn @7ߙĴśf_u[ɗ[Ti+Q꽴X^Qro6T5}_6IڅKZ 6=2״{ Tƕ.Z\\{ <.RTkvT%-ұ5B}g[Ԓȷg(ʥ2j7XէY_ӦdN:̬G˪` 4,t ᡪu5uڹ-47x؟욌-.mbQwV՝QXj9Ñ^9R:u-.֧NG!RrH`\PzV.M\VE o+w%5 zեg+1uTDlЦSUPÁ1q&,Dr4Hp e2r>J'gd6@I +4$vS8aWSD R]t? &sABtDд 'G=B@SW/{fAk=d#CN֕TL)6xzmkS#Bdh%YF{xnUI7uYRP`>G%܎eYY =Ђa0h' 'LHJsN3'B4JG!xN% *'@k=KKC\a%-\ l  p\J$ (@L?P<;A\)|Ә_aґ,5BW̎A5 IúY8iP  ΄c_RI'TT[۩Ԥ(RRՅ_Sou]u?RVjtȥifk|ST AH8Z"rut.$aBQB엌(Ѵ޵ܱڀ2ȞUqƟ1p38E[78swqnQsV6&i선qsAlť%N q8qq@'A9|"K6GN2S޽]iP48cX+5\  ڍw;^ꧡIPpS0?.C M1!ꚏ'88. bOxlDŽ:|02<E ;j0CdzA {CI˛P;J'EU"D%)/2{8uF֒A3'K@2JxADpI8ĖBr<2s C D^c H2 c@s(pϺ pR# B&Y ;ĤO2l \Dy 9$LV\1p(0gj%̨^h(!؂c8ZZ&L!$50r0S邀9 dЩJ8)= %3&pI*d,a Y` JH&sRqt'FHq)-Nb0UEކ "NRgQ$0tP" B(?i+%D>TXn=KDY!e "IEbCH,5`.0 HG82$&ri89{; )!ԳJkrX8L!  H.S%!; RQ.R!A} GK ܀"dy H*B@0D9)NҰf'J#$P,MaR'] {'QLA {PK*8@ !5Ȩ=\Lʒ>q!JS)'=BRG;t 6xa.g +1`a $ (rQi )9`  (WkI(%r\r+5P3 ҆TäF-H$+I)@  i\w0 TPZA@N( ga̕F=p ! =(HRNH |8g dR8 5όjn@B{%}D2+@(B$EMWA(ӑ̑,@&NYa-E3"8L*+08':!$p(} 1>*10@G !8D0g%e @9pRUp<?{Nd!c9($C_0ԓ$3G@b=DH˼@ Nn3$$IOb( 1x/jB$ &D\!HG|Q8g*Ì)qsRL9A{HBS))!A%&vv\{< hXxc&1R B$`T2 R;;5%1 d$*jR g$).+v}+J03!MRJFP Ot0fτ\4I(U@rD 2,ı@3ό @J 0&\1 PP ĜsxR" .aGCl*nSlϓ\^1js]Q~۪%9|1U'n۹%ٯ:K˴QOdRQ}W%=_wT`_m{XvlAZJ:u ziN҅sBNZ MixZr4624_gޟB-osnMTyic4ki;G7*#Rx(-Ih bcim.ڷQBU _/2;i Gdu-N*QIUANtPPR_L0Ye4#f,>xA d f1!p #$Q\Z* tY@59 YCB aspBUDTpY U@>&H(B˼v H TB"A:A 9LLO5T~  Z ^Fw>ۿۦC>ߩhp)i'Xf1W=bMp$}`q\O| m<d(S8p2+Ma8c rs Fa<&$X * 39BB;2`a!d o(G (F]2^ SPL*" oi Pԋ0T2Eٔ'ːq0h $9#B $4] P|:s#a! (-^#5Opzs_vF-gbGcr+礉9SX}N֜+,W5 r LqC[Q rʎ-4xb-%|}s4ƚi#kM\Nlu.^tiB&1&TT2i,[r7 NY%WCu&XRlmݶ*eFiUܔ֛^:jZ'}ԽG:MϦ)гwFJaW6ӨO67}xwX[|%4pOl$χNEd0JC9 b$D4I!Z8hp 퇠 &L HXiN%?:k(vision-0.19.1/test/assets/encode_jpeg/jpeg_write/000077500000000000000000000000001466211133600217765ustar00rootroot00000000000000vision-0.19.1/test/assets/encode_jpeg/jpeg_write/grace_hopper_517x606_pil.jpg000066400000000000000000001651421466211133600270330ustar00rootroot00000000000000JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222^" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?<`dPLN0*Qc듌Uyr+ٛL\9$`c涥֮dz? o?ְb¶H8;-L1gM' GvZ e.܁׾1*,Yj`a?(q*6y?xrIɩȇ F8B-@}T,g9殟&58=AO0Yt͒DAy\}=']=b Q/'8Q=-"ZXICA^`_ WnOeP^u(_3y_G TpKqX[DD)xLams_Mxٕ|M8 [yFʲ ׽{ݏ}i{2E~nG_AzPXl-rm>?ʻki7=smQp\g 1G+|m&̸bpExy7NWfнn̊\ iRH@@IvJ6X2$ZR^/? <î۩Gpu\5;=ǃdr@@  ^CY6l|CYvS&FRSKK[\q"OνSmef$qxGPADbT z8``i!-G&ۓJy:ZBHÜHg\x#rzsړo#9$ x'KaTu89oݜg'G O( rqOl  F:g;{~=Rx'\Ƿ  FOLShF#ka 8 [9߽,y' 6Oi\c߅J! |p8N[FW OJt.aB ^p@d(EhȢ`aqNxU);Ԍb˷6:MTgמk=$2 NyZqv%^G'Qh Vs=R5,3ChZr:Y9\sI2Ts}I\ssS9@xҴbGu9CBQ2!H=«HD93a\vSVf_0Y,rsV*I''O|tySd1JI==X-XVDR 1?t\%HpM:2we{qm[y1Hx*35Zɬi~$N}q9VwPv]ebösL !}ZiЌdǟRwL=Ojj¬J8z ~ReFhJ̠pfҍ")+yvOEx݌{״x鼏:#|* xN0I+ȗ+};xO`iɝ$~z/jѢAzymk#ݻ$`Յ$`H`spkؖ3wZ3T>K&2>4^wzk,s,1rq]'ixjBFd8ו(on_ćcԚh /Ҿr.~ϩ)Ql5ơ &n5Epgʾg.52)bi D&p=eVJq8G4GiP{W %3,^0p{X4Vmt 7]1#]lX.g[ wlFp09[RX0{`XMolI7'u{gՙ=]Wviu$l wf,'`r $R2 r\MdE{S`uc=h<q(#{Qi昃8 0G39O4q4uv#J@{8F=Ҏ(67q=qrz aA{҆8=98apjhpqCPn'`Jz9R`@B)ÐNx$K HE H87y?LĐtQO9#sǷU>bj8$uUxq\5w譇ÀN;Sr[.c-9K; rzԫ; t~1A֨E==*lDD D$q#&#1xvǟ=ƱFzW<>$g3 +C&16ߋɉ[,3JI iq>35Kң8?*'Yg~]<.Tl԰ge8+OAzu>C{ =wc qs]Ưaa[bbb:q⳺zjZ_ ?j6:]43(p~/Mӊ 6x<`&K`F{ulx&ǣv=(8 JWHl=4R7S6pHbb7 6$'<`k_ҪHME92jΈB6nygBIxWQ^GLVc2?նr|׀<{WڶiO nY!Wwk2Bd~Z%x ucsѭVTFJgS=rzsWh)+^vZDݰV* մ&Hi1UU0 d$ d=Vcs]Gmhd zV%I9'RN{ioUbU qW 1xۑ\Tb ':d Z}TY9u>"O<ެL|ڪ1Va2#]9kaI/GB}j=le8 g8i719s^"A 'Bq {*OſT=2zeO~/?Cu j]wbf@+ǭ?SU|O5c{]>kbI]9+Gr ǜVks"<) u+c'A~>yQ"Ӏ?z2qNezņ1Y6Hr x5|%\YZJ2!\q#_|jg^`]#۽lE&Ә[NR[n {gVь$Q(UQhft2M""If +ur%Wз:Gґ̃e[o,˲0̬A<|s WuZ&M?(Xnzks,=hYs_ ԵiZ{liQ`c̾@ǵypG g<'ϊy* p9XSi'sGM[I٫in mU#АHo\x.ohT7X:3Ķ"œsҳnt;fo[&#Sp8$q~y#kZڠ!Kr;9'$käZ]5*i]jlwedhCloR= Qx"fi7qH&Lz;:BSMfo*(riVjM9 c/o xj-"{Dy%g'_xXK_?;ywιR#rν|*ϣ>jO}^k>𖪋Q,F zh2-GKmX珰q_|8WE2]խ܏1G/ǟz[R:NfSf>o`S!RT*}1MQ:潯 ybUQwʼv{ mn1O p1aPFFqT+'P›'8Jˁ9AWu%@83ڐed0䌚 s@$)GqFr6sA7v  g 8o=NA^ݸc'=sޛs`.2q(x)@nc< ' @ Ϩ)bpCFnOaqP1pv(wn$c 7|?Qќc'#dUԷW+Y"R5.yQv㧧}1¯}h OrGoq^?WZdt4qQ;KSS b<$ 'oJ4%(9QP~ =SŖҀѰlէ2%+2=GP{u 1'΁YPD,GpO;SSJK4ӳ$2@OSڽἋfʟ9k2xGzfV몍+Hz?s= g˯_ =ьc?׭WR 0'&xk$7i TӦ?<ҽ>GOW|DŽ$/4Do߂+B# uZx3PW5GI|¶$lnY&1ȖL|:߁ץw?"i.0̻N+#3o([ C׿kAF/Z"׉miko{#9)Hr>חxp+6vdN q[`$י>+Qk#9&IlOJHIo1Ry;{N]dZJ5w.'k sGRY rH`#:ΡSR>sY$:g7vҼMRdxH30a{ЧJJ*0I՞~ 2{Qwi $|M݁ؠG}?j/: t=U _&O\m%zay#%8ҷ25 a$xml!c4eZ;lck:+H[Uȸ =kf7VViז%3'+U%tj֜P1֖WU,no`Xf H|I -ֳsq|Ѳ @;NrOSm`6^ƄVU$b$U{KⴲYsEok.U8<VQ@OOʺ߉K:'im# Hһ(+'KƷ^KbȞceGw/a}k-wKGsv?}?܌0C'5o&:ͬkomYA9 9מkh3819B8IZ҄т"Y_-.PC+iފ3όdkP0<+z燶l\\~'lzuz,QfKK/.Mc>ҡέ/s.^3v=ýp8u-?N3{h2u>}GQ[]r9@y={,둚饈Qjp1$_&89ӑ޷)( y;'R mF][=ֹNUE*3OL81Yyv6KάAPW1|K𖥢jqD'ufuǸȮ^>iIx3z~,dQٺwXUK} i:ڜ]Ρ}&ZF;Oᯆt K44$\I T23-u=Jğ5,g˅a,X99 :v&>:@]:ioPDq >INwIS)}KGcy{})[`|<=zw> Ou}kًѶ0B7}\t``޻\c8u77ZOKO/-,u\HH$ @ quP\,dGSݻxb'c9`?OB?}3%ba-`Jt½'7e^|4@ ,3H4%c}:da!>g"NcxS 8kך0Qq%@2O\jڬqj3LPG=YL:(b*jRjJ=Kqh 1OZnzrִ8zWΔ\ef #H:3JD>J'n qL@Na7vi c$dq@ʑ#8$h$񻁂~An''(<Z33J^eӈ?ZP1q@$N@);t4y8N㑻 @97g`~U.~\ B9g1@O=zRz۞*@09=)0q昆q_$Ey\Hds5-t֡ 1sSEqּد? =]#r19$^` 1_,@h[ gsAsPsBQOLz;`MNLcD lc!c}:W|$f_JD$r+NzWb+$j*[ɲq#% 5?Cewčx:?gd?+9tT"sXE4r@ )B qȐܣMIe={V}62He^L33$ƜǕ9';Ś+ҽÚݨ6# drx'8U,d}zn-L!Mqբjshobk1N3\1^ki#&h^+n"țt9*}k*kOX ק|.~xvGy3\Km8+,$W|(bMO,0H;FvS~y~+'$ہXBK|Ğ·{*6yq\ϘdzWVЗky9M@998=(v&OVmȵ.ӏ]drHd Xdcg 6gҐw`g9h' zq(BN@89dp Vr2pMFz[=3KOrqKZ['3 B26<Urˁ8Ssw >bIlW5,2܂8)6H'q@n2~d@j'%Gazar«c 8ZU rOsU1`pHgr^q@\7e4帐 :On*IYJ6DsG)M?.x$I8&6e}:{UuNKD 9穦 \:+{ :j.KRebqʕxݍ D׼/O Mе՝ܡRdw c-k>GLnae jl:A\)Jjfu(4]6fѵkfvc}Ag#i#3Y?o7zZE[LT2;LNO[.[KR\.]W74^G$XLO>TY鞼cv{SZ+"NI#y4"I31{B:oLWRw؃5䑃WV %q_?sנ|.rBJ2t sElDx7|D[(|I|SЌ&-]f%1FG8)l㞕8G|-%N+ py:Qcs׸q sSH8$؏sl`9223]@aTO9!O(C?A^oҀ0zz*rOQ@J=Rrztl`‧}b~5a #Z\GGJ \rI2'#H4[AH k ;C0 v܃N;] 䏩cd5>z=Aǵ4dqC>OUB 䓌4ΙbxHtzM] ^ 9&N)rS32dc_YzZzrLr+UmS:tuV8#T):dң]:Fkh6$!xzdBc$0;}j8\1*۞v5'+yXNqVVN:`Vp{6HGLT(h e˂yڸ cs)jxF`@u\n84KRH[/w`"рz`SvSH"AP+ܪsN"3ǥ7r(\rO;0n#ڋ" kuv^b˵Pt:e]d1+F%s1爲P881-Ҩ@6 (x´l6 $ P;H%$ lRY4r7Ji,y;X@2*YW,:ƅG0Fȉ;?/PjztF ]Q^ix9쏙 GsF[ 䓀>}dfqF885:Jq˻9m' "09*:q^-$4:(Iop3DL& RW=*sRZ]J|BŬb c_Gf$|fAM]DvO[H'^ku=Rqx<p< p%N@w>c(䷭.oAPyv=q@#>1'8ךFx=ɧshN2xӊN9 3cI(Gtx#9q#i6}iNz{`0r 'ߖia_/Vr18 3<+L-$¹ϋ&[{Kg+$2W\LD* ~ωKSėc(վ:o.эM'Nk־V<+2^K8`_B$A~xri}O bh\8;>k>0x<&ipDs* ?ҹ -յ]!$qnٮWRTA㊄ӥz#Dv ea9!}kum ”9tqPO5/ĜdsT7.0FTpsj:s#'Zʋ[gkI1PI#SYrXV$ ܮWa>F\p?Z=ʅ3ޠnKjM'* aEa:\["o,zeq݇-9YwprA)*vW#VF07gEoSTsҬHys6 ,rsՒ$(23`I#>FDǽ=*8#w#O-%yzpO,Ԯ6ڗW9C횥5ɐ¹bI1h\6"7Pz5\n*w){`;ˢsV$ڕxw$uP1Sssad< 5k k2NR#-.c|}ǯZ/]FqiI&|I$w۞Z{'1Zok,D$A_P=`r@^X|]i}A:*+9~(5okxG{ǨG"H 9&|ylGc?qFkݎ! H`r:/kWS㶕#DC{ⅇwA,Dwj0K Ѻq'>˲|p {bJ6$ zu?V!u$$I)T?ӧ]N窓Z<'UzHQc3"VX#L 1c#9K0X(q-wN<\RT䌶;vv@bg#.Cr98j9(^@Rtgߚvs"QI!a#O6mn\c|\>hT.dMў8"!;P(}#÷+#Ao_Ed64Bd_H!Ԭ)C.A"n*tq{.#`@nFsYM{6#$-_)1>t+.WkIIN)z2ފw:=9N1Y1AwjKTz#{{ImQÓȨFF>1<NGU`pN9M]" qږ>uN1b.$ 0qw9}kZ&:Wku#t+GV%W`U0:kΝP)` 1]OI}4\d'{U*H"\'G5VAW^^߆tN=1Z̍[#W#ghB2ls5҄BC~^+A#nӢ%ˍsԫWhep\+9'jP=ԱlBنI/8rX7؜NdRp~Fύ5dxqn9W?:]>~$3ź@.uM=6 {dL+54ǧ4vȼ;&Yʥ8JBZlh$Hg85 !E ."27$  /An\#?rQ/9Ci&dm=@(rhӍ7sXWƖ ?h *|íxHڷ2(\BGAN-ɔM#$C*d}5>*FAve *')INg93mb'_ R=GOЯ쯢GxJ+ ?OJn34CTo_" %)۴"jN7GLi֛;,V)E'$j2qs uU)Tr=}h ^"1vHFRݛͬg3&PJ5jŔVap[MZeI4c\#ac %u2o L¥Y=Lvߊu{+L%؂qE|1E%ޠxcb3)C;֖\ڑyx!rB =p;ING Wٹ]Z댝Ge0J4-Y'iX[Ge(#j9ʗ'1hKܶ-ELOYD}ۗg SEjgKc'&'(da~w ?:U ʦ>&FV_¼GFfB"J=k^Sk aN Λr6OGFcxD;bjWVybNr3sG#1Y>FKRf<҆VFlpOT_ZCogH+'tukG{?Vv͊t_6~`+OTҥ B<3#}cYCo2\ȅB2#۶ v.*?*chhY6K̿@Ÿ$?.zgWU,Ds29ִ[N9Ty|(:U F;+ Ujcxzv&"na)sE|Ozp<PǮ3RC dwggqLRךbJǵ3V0OcUrl0$i鞝Ng`ѳG4A=d9zg:S8@8&#!AGl23)B{(Г@ rOZc ts99 qJOv dq@ O7ƽ⻻}C5k:2cw$;y’W ]n?i-K2Ф1܍jń Q@['n|LAC}XuRm#) N9'i* 2b@29IE>y=*6%nz M>Ⱥ> H\%VCf`FqVxZLǨэ?M.-rA":<ԧvz=(N>4 (`@8:u춳$Ipw]pZ S׮kZG@`O~k gwCz~E8mSGZT~^ $?HxG ׁ4&Uۻ{)뱧i踽63Z^GCjd|6GsXm>Xp wMIꊴlf%]#gq'}*ƛy$b(rֺk9eswuDqmq8 BδU]L$gK ̑c!溦R9;l v.|5`یpq{ lV1[#;"#1! [QRˡB=Q[osE5hI v2*I`DQ`Vum쬋#w(upzn%Q"USE$ UItf[}4+ch2 6>Q+ld+,2L  繭c'} %iFU/Vv8f bGżn' ׷ wL2sT]A$d՞i't)BT`ُIqnkR0ĐПJ f[*y^OYJrqJ2X?8ivM#!5qdj6gqLc1叐1(R9B{UPV[ሑ.cL`SL{@=]qP\0qCZDDÔd$I^svo bJ>zUxCyAe+O?2zdWnY'"3hm_@vL4: (ʀW$`\#8u=094~aAsGcqqH' (O O x8؞O_NmPX`"NxMcg =zҌ9\gg8Ȥ#?)$sހ:p9u9#{Ӈ # />9 7y {2q9I׸LTm ]PT^=@ۃ?(nr8yqք &0a]E֖[q?^S6/o,WiPA튗_ޒrCs|G8FRFJezX|-|`$>O I+yݶ{(Μ9ebZrJƤ,FKߟdqC(qÞ]DS1 BL!`F/r2Ogm$ƜSfb Bh{ ㎧ZzGw;;ƲIi2y(rY217C= Jڜ#8]~#7^ #bc$5d}qGrwXz`?ªXG!T$WCrFuVaIw\:7sssc>2}! 2`qJ PiH%4@旎rssx)T뎄bN8#v @">(shz(`c<J(Ï H<]܀v).{^Sӡ"G'OLgvɸ#J?t]Jg$A׌jFxڥ}s\б+x92yDmdӊ8 Bه:❀+.Ns#':+j%?(*Ls뚯'$0G'=*2n:YU3H`u$g=p7~MSӊnS%=8P`$@'Rq׷&pA>88W"D888vdd!  rVOi$`WxO wr|:WI}^k;0ig ә@+ӣE#0J#X$U,FEo&4=`$jϭ2 Cc)+T[ق3޺9=r$+?ҡڀ޸$3ЊΤU;TTOX=V,yٓi$FqJGcBzr:Z$z+ [`C.zc#~\!C 7RF{]kb@tu4鞜n>bwM='xŎO)%p9wrFx"nx#{ې9 = 0ҮwtQsWkQUNY?;1\9kgGN1{$$3$v >f/Fbqٸ'bn^;T?h Is4aNѝǎ=ѭ7o ЩҹF@ň}v^iz"\c՘ldy܆=~J)^pOv[J NOJ*JEi.s#'52>9JaҦlٹ99C]nIId7 F1O]K{_ݪ`z"@iG8H\RdsKcրs14s xxJqnqL@ QJFI܀@~1$ЛmJ&+"P6I ʴc?ξX}ƒ W3?+cjzXJ ?Η<%3U2bAq+wd{{c#\{r;{Wrݜ-dE-ǡd)jǙb40SNI]l۲ \l9힦 q׊HZ& Uvqߨ:W]Ћ[@|+Tr:tS㷨'4ۯ*1p=i;ӱzwsۢz~gMuk巴B1Ok%0 =BbOnQ9XSve x>A.Xr+aۜ};ӓG4:oҳ@1uw_Jxq\:ߣ;)HsIjă۸_sqG|€`#Z{V\[cK֡ w',XOMC# udX!݋Br\v5cu#FU?ֶ*o_SaqXBKФb-T*QRGX<񕶑53#Ʌ _A6Z=vmn$;;kpb csW`ḍi15Ө.7h.; 0sH)<)s]hhx2z]y0:o< T7>$ҕLOSTwQ%q$H;sNt)JO3QSgsSSגOHwdZ7_i|&H=1Ԍ Lp:n#?ȠC' P2*H=2yg=(rޙ#8L=ZC+0{U'*~9#ך_sӰ&sw@zQu2$$H< >c=2I9=84>8zBNAE01==h:xG+ۃNV`r#0 gzH)1Ӟ}M (1$)PNTB9X8#5?5c@ê5kWϩiveJqyaq݌ %ykc'3ntcr^*KD2"f`L<%]ZVSnk")+ b@ 3ZN̗uzd{nMh*'8?p)ѤgyKNJ}a9sy>lv2 O"!MJ5dp7t^fpC(אxvgp(${GVbv@ψVΪM"S>xI+HU˹=+/>bHs0`K@λN,,BAkMdt]oj7(zva(imr;n=[X%.!c\Rjffҏbϋ JN9ȨU걞_LKo-3&[7JB[q]ȓ0\ey|eU>k_kBeB0γF ǖx9 =j,vU !'#ط^8dbm38$UsK*?JiXyeAМ~ú{DRvpQIMxrJ(0OZ%m''m h,B))kdî g)E=jױﶙrO?ofbq\MO0ܭU: 8oh5o,@5 JWDng8?Tp6A6aF@@7Oz#/9l>McEsy2Kw y5]w 2( Kę`?K69'sћ[2^b9$UFwuR^#V$e{bʼn@:cڪȆM<y'+OWmO7UF})`n@'=E/=3G'7 (8$(N{JO>##F(pW>.pr9,_TM?]HWm_ŪIĎd%Ijں)_ţBJ8nHg=^% jUAT/>GPK3,|c ̈тkzslxX<le$sڥS~ '?JF֨vţsօˏyqfPaךќrJJ˝8ś㻩niy =C& 2Zv"QB Qi+f/en_iŌr+a1c&ִ L*_[tkJ9U_Ʈ^QzqeF 5j# c q38 GjqCahp}x=*ܖAgU9=]>Qq/#Rl5Zyѱ2uSF8&|o0@AT3whARG<,r=#5BOX[N \l+6pCH'#5%GL3rIҢ~Ki7+I+rpMmuaz%+Ԃy銐5 rRiw>`>DԣsSڨ.3Sm"OC~|mH=sZVrH >KE5#]zPE?VL-ŶDgm(2bXaUݖ҈hv|Ѱ9/ƪju,k,%;{i!]ZŻƒyd,*8UfYTw=>) ǭS.9'f۱ao]`Nw.qg}gP9ȭA !Eal.x 𮸮gR] YzboY$h(X88N)p~X,?qu}@#9F}w;NӐzޡCϧAS(8,8T\zzҖnqM|s猎(98VSONבPJ@>5jR@T:⒴2f[oW#={S,Ƃ^Zh@SWC 1eL;#q -="O1-ynJ99+EʆfTݵ;WV_6$|ɻ®ry"ef%?^߅V#0H)md;Ձ '>1Ь\1iJS:(Gʤ;f%4 V-dy͠$H)edgN7K{;W (t`| zTe áԩqq%דƜya4iq"(T2 F<ӟj|* g׏YEH*K\׵]mA(T SZ]=%?1GLVl3=T\$|rFp3j98PqM1dSG$x8XOKhۧVfMPy$Vu؉DenG$T4nfE3"Ub#@,y?8#jQQˆS:èx!8 sB-#J&VQ‘Ge%*2UP\!#Ug]SCѬsgaD`~a3]hR*]1Rjhb/x x[FҩRILG 9e+C2I ]9W)CAy$r{pNG8<Ӱ z 8GZO:X1qގݎ(>g P43sINϰcB99H m,1鞹[nL2{4NSbH8 x=<12O gv;bu,s'\ڕC6pN>nQϧRM)Q('PFA I'nH^y#Id +1(sT)qkN}j-1/rCqc.mQ&kxl$H+$q9z|KB@\dҫخӝu?,jkq?1,y>f L<1qi.$^҂ܯk`x̱F@&0@8I#5/&ll6"#aNT䁭jy/Zi6[L۱4/=HkQᨴڼ-ΰ Bq996W˨]Ak<,(B@^~<)k GKo 5У"|V`HI~?ZgI|(}FO\5oص{5YWT<ȯ6OSn[ O//🽎JW%8=p3+,T&AַWv}{u$WK1;4z] 7`0:Tkvh,a " OBQxPղpka+*r^%Y.|Πz~5֖PC8zԒy`jx|A q2kOq4އߢ/'!ʯe={Չ5ay0xaߥy'UUXNzQsÔ^[8=qҚ÷/Mnze’x#);q\4!l@V\O 1#o|6z,jzϸ?tKjSI #xǿjI,xw?y]m,Kr֍󓹥"kH[L3!E}R|&q_jmTgn 㧵qۂpmzsPWj49 xi-${E8dw_s^kqou${ׅ09 [7n+9'[rI>4#M59$3JG'Sҵ;=^;97r7Fܒ:\<I4ֶrL3H23<4#v O@2pFq; HdbUAQԇ<='Ar`G8K9ך`n=(;6zR\8hg zz(߃@PI rC029=\`=c3Mq*BP0xjE8ӭF'ֺ? V3'An򝪽IlD{Kך<Yh -IyԈk#kvGM6b"pszS2IGO+՟7\e[I?J0x_ [8\9jNݎX k@kZC ~f+X<NÑj-GW[L;\9]63ZZ a`9 bϲ=[Fr<~A\d>6k OG|<tW=jڽٸ_vUp+ۖwO0+uh4lIa#?^;,坎X$^O=zPמ8T)э2"gysh.#v&/Lr~[W|hHGK=A P7X?WKK Nn3үܼ3Dr}>u`I+#T sY df6& 0`1۵yR,=x;1E3F?RK`TZ߼P#a+>=>l+dcjL|04Ě,,_2x=9rXr'oS"!s3\>ae88V4sԤǝ;{`[036)m<WZjI2+ ջ{7Ԑڷ 9AZV在^1NcZt.6ĒH V̰**3G4vIP}0*9e1@+Oݝ񊊲ͼv*'WPn+@85cZ҆6,w+9{gͻp>S+n_=c!\4*~^}-no~ 8g~|~f;.vyʗ|@wzA8A94z7qzhizr/,~es}yTߌ,|B#`wauQgpzA5G*zt3N3GX?xi6A95u z1b@ypG@{=qE.Z)d嘞=1Ex?*Ϸ40*Ha8xSyOH==ޤ''@ 0tYTt^ !°F|yZmoDUcּ"/$yJoW.kTncv'W}])~:WuwZ[UM"kshvqE4xɁqҪ'=4t˦IԢ3f2`gk%$9##'Ҕq}ю(^ȨdQ\ Њy\9#ص#kC˝jJz_S1Yģ+ >< zB)y|9 3Bi5\cTn~"M-h[!Z璿I4I$#~MKSǯթ>ex]FW^>8gց8U/'|{V #P$H `Òp2GNfdl $V@\ *#=령v=9j+0,`Z&Ge@>Ry3(#8s]QIh[GߠPMh;0:c"[#R1]xAG?Z ; _3jKψ1>k 8:"UIv<#<HF1 9F܁nt#Qdz1I”1ϡA9CgN9L\9<@K,/t7[pQһ]';y-^:c\0i `p>NZpؙS֧i>@$)PpG*h33^ 4R!ggtd=+}n5%8g\1IKCxvwn8'.H'{sX?ko"~+qY NҚqkF4#zK H~Qܷځ/BG~LƤg>{pih^gi:Ƃ  C=A h8r=f9cҁW-::HyI4pܑ3ۚV8Ờ(i#ފNH ϶>x^V@CFJz:czֻO4qw2ǯ'3<+*VEi}3^ǽyg#ֽR.vA-uCEGh@፽=T ֥7VpI-ĥ/(@E89mc ǚJjZ_1,Y`@:cx*'5xℚ+C<_~8ޮTSO1*\ЗWs a:'q,sjOFprA 4Z~) ϯ@zӿ=0q47o4g8TsßgH$ӰC ӨB}q(A>SmʞW=h-@'8RE)y7CFX {R 9 FGǩsn=zJ[ B+N={ Hܜ8\IgYFvȤr5.6NXkvE9f\cHq<6qVf̖!F7őOZt-Yu 41@kܮml zHXr1|q_x/œiwA3,pb)uGl JÊ378ǭ_.;Q8 $3\;6llb]~F9k^#2 +hș?{+@il!rێs_ˁEycg#$K@rIZ#p .T㊹'b6T8L⥴8HDf\vNO]!#9 /Gq9Zm'9h$w_L9P+qdQss5V< ~ |WgQokl:NWpV1:ʽ^*`8_[zT6劌Wn}淊p:wCK\15}"fUR#uFr޴f;Bys|9}jUm9{SBdI$N}k&51AF![W^57=z7Ӝ'u8}:0Tn}+V` /p?A]OᕲmޢLcobxO JjԝsIKtӓ+$ќ{}ם$Ҍ9Q?tA=Mtnۃ|Ҟx<4pNJ0u=~PsiHfb'8zRaTtM8*A~#@w3G `g.ь'ԓCdqzPdHz )~;P6=q4ߨ=zQm<ހ8ڜ=׾)'9sȠTdpvN:R9'tdI1)$@_%H#8)[q$x7$1uz4{e{e `y Z#Y+w =b?ԨcmP1,|Yk4yh'AGZ!Vʅgߚs{jp#|k|.[q 9 ^gޤ1#v~c? [TJ>T\0$rX 9 RJe,$`>FD SssZtLorcp6@mثGf8$blp{q[ZU d$p=dfdj&*w+l$ש>!lI5)2H91/><Ŏ(}VpH:{ר*(:Wm6Wg݉]bқ*1U087N<bz5֎ ?'3^ZnB|w|| cVNJuCRԛ˞d1 :} ($8&@敗ڜF >i03s2 8G~f: w&YpNFs׿JzH⛓Fq*I`y=pJ@ =F=1coRy)̮@=A<[؞1N&SpGZcTg#/C'={9HrIٷ8N?5u) 3]s8g|"^ ye+5ܼg6 y?f64Vu,%Fq ?NfnKX%6m'h$4p1O (jv \:x=yZA%rGrz#w)S۽)3L_nfO8Nz'8Rz ?v! 3:u3?J(`cfwq<zGJOQqG9^`NQu&Hsq7`؞4^89^iiFq89  :f`?i3ރmH>O'H&_j~,)@ f3ׁ\99^F0*hNbn+ ƛبϳm)X1lAQ\w5OOazL\Խ-X5xmiIH Y j)ԕ9sD*g; I1h\''8z.s~u$7N@Q/?|gdH|ЂqyR=u(Hek)€˚KdBp[pg"OG@\$2+ J.ZჵϧU5Q,e;8[tO0F!,9'x'T6nW>HnӐ>)h~cxYƢk(:Ԑp1ڽ_7Ѽk2}G>N$Ў?+z8nW#e8)iSK]g!^g> 3QoՏ^!ϥ|ăZ񉵁[2jsǯ&Cy:~?p=t 3נCFi1$󊔀T&x84>#O8 1 W=pg2p8&=G&#'ӽAMg#"ᘱ'4O:M(4r\ @x#s aGv\w8ɤ'kps~ ƌ8*2FIucAz^HZNNW$98'AR@z4a'*%݈du=tpH'HI߭ ;9y?{j\5A8叮 5}H9!NŒ`R3c :[W3Q?z^Al~UVWjvשJ w~#UtRXu r W >x߸pP0; Q]L:8GKVKfٵ8銷}UG|fA;l}5C QcU,yk޼sCxm7*7 g85e$( k59ctҕ4B ,pRHr *;IԊ敗0s›œ<Aa$wROlqA=jƒ#g=x玔L7<c?M 3cJ@.Fzd21(g=N~c@8F(n4Og#npGCHG /8{Jqazҗ{:I\QҎ `($d)HX`vpvׁJ{@xqx_NiS F>+Y,G̠y^.?#_6|mPpQA1$S[~4gPy u qzn!_>0ǡ6ƊSL-Gnqt99IƒBQp\[qճWlګ/^G8+o>)xw6!# av7YVU"EB~x1Xwp<Ӝ^hs2E  jޓZ\d+OH4n9^03EsO_,qy''4zCHCV=OaLǷ>iFq v鎄T33҅$`_j:cHpxC'hQQJ~9Au鞕C"nz`Js4 s<چvh{8gXm3؛ fC*>X 52+".۫qkZmRKqvps@3s\ L Fx搎2~z+Hy\qIo^AcJrs809֘$# <8H q4 9$=~>!?7^SY )@ wM9 H Q0:`փ7@89Fxހw@gsАqтs ϡ$8NG\u\RzJP9 LӎXd4@3FF뜎dý)L7N):`S{c2hSAK-.$popHt 4{%5`W gz\_|sө ǒqҝ6;/M>1^G4?O@8<7;9X#=!39>Ɣs8=i:gFv6'h 00:ԊCyҡ9oSR) N Ұ ~R3N;A xI@88p>xZ̗%xsĀ)e?wk'<#?0=`i0b{˗'#xI:G6UʸI48e @9Gp@=7oR;FsK3ҔǧӊFrH'קjvsߏjbNԘ$Ƕ(9\8;dL[aGCKFpG{sAH:M ͻ\ 1&|:c"TʘH9c='ͅ^3RrI:EwϷ4; xz(,7çn(b hj<3#0`s@t FOϴ;@y}1FϐmĊGthea2JzdpzHU'> 2Q@=gtss67`ژdӺ}C@ުFGhomR-Yl١lrE{qҒy4zI'q 5d8{YO'ke+|ڼ1+{hb^_s^G"M}v[9?j֒ɨI^y<8g@s8;CژAl9 G$F2r@u s~v鞂OCgGNu<eInG)~0 *r}FO4I˞O$ xcF1Hq댞Ԁ8G"q@ 9$񎸤83 ?3OS7o90=NR`zTn(Coc :zb :*8}iq@#l[(5HJ26$8A@2ݲx҅88OAzJp OzCg׽s8B@rc8^>9 zP!6sMz98}@jN}C(>'h'^3֨c c{ːISކ!˓dޕ=N2r 9A m${E cnNxB|h^}rÞG?hQ=qHbQӸN8r(P[d i pO͜h1qN@ڸ#&@䌎CЎ9@ Ӂnrך^YQ t'40r{uIӃ׮A'߮)~ڤb-799y)Aװ0G Ec򢀹+TsXv8*yH^UT_9γNY:_BL-L_92]Xu9/D#ziۺ1#x<I4y9ҺNAOsi?8f9h\cgN4 g$*`瞹ɠcp󃎔qand|9EyidVU$1LT<|O#zhY;E\d80GW'&>Q0=)@Ad}'&~3fF$ۼΧ5I 8p˽ Nnwu(LJUK^"p@b`8tTvCm~>\aPrɶ3Ӛw=P ׬]?Λdq+F1dᗋ 7#\FxwSҵ "mY-e*+c#Ţ1ړy|qz1 Or9'&8s)[$1O|@Vs4H\cQ9H2:Pp|rqqP pN1bMi#CHYYWG<_L{#GLWR둃W|= j>nlѤ$ _%i{V#IWr9|g5/]Ij*ZH< Myo|N҆P{X<1 gp!s@ޭˮjz>:@0큁[0e1e/ ?\m tyvTih!$:{PS3?0u@>FcшQM$gisJ@''NGM?:LcI1Ǧ{Ԁ0A,88悤9&^$)1䞀Pz38?L8@ pǁIܞ>}17iw'+Zo 60-;|O^_Wai8ZW[F&U#sJ>U=ܞ Ո'o93J<1Tg['}hE}J3cn52g?Ƌ k:nݘK &6_5H0N0GCϵ;S Vэ? x{A?ʼo$6 9EZ78.AF)9=TlsJvcns O8"9ӽ+8 Nڐ<1#h#ԋD9y 4ڞ)"ʎI rN?;-^8<1ĒW_$7Al.pp]sup)2Mۺz{`q= 68֑BgE TqJ1{\I8SAo-ĢP'KV8EVDg9^x㊎B|b+Ծ|$7Z#v!Nh4#Qt'%sH99^E9#koFWlv'Z<3|Mմimg8~ ãGc޳m­ʓIhqG%7&T;;JUo$rUät'3t#ZC;{‘i7o+4I>!l rڷt+{9lڳ18$&*6O; Uqj|wx= j ''ʵt xz}6M[XKI mlp}WU*ʤQӋɫ{Ydyp =7⽫ Ɠ}+k%sq/(H~Z5;;uuhc rUU1kF5R;;R ֍);sJ=G8{Q^z[  S$v#=1IԨs@1ך0-=i@L8=qMO}dvL~tP`J^vi-T37X=^GCykVR??ƼpuǛHm ۨIc\Bp ڽ jѱvS'{sH#ސ隳!8993F @'|v0/Vۜ8RC1U 9$s}EK+ux#Pp,T@q܌w\8~;Rgg;ÖKKLq[prkMk3z][`u)w_\"I1bPp3浓Ǟ [o&ˉy'cf$֓k N1ЌIŽx$jD u)W2܎E `֜y4r おUb'zdJd)C֔9'؃Q8-dg=5ꅾg n A?i>Ll~xSpc 5+'Um8u=7],ڒ]qrIGdtR=qKừN!kl d˴z;s^YqtWr\>K18 t–3L29E5er+J{Ü9'p8}iXoq*p1/M.! $gIRnGJ7'# M 1i Խ!۞s>ׇ5}& ֹg,U!~yL0'HTInGTv8#Aau~K[-`O@O8 qL'47O)i[,xӞ*VSFPYP+➣}P}>[{;9|Fـ N r:Hԣ{[7 ]GacTaӓ]\Dx/$lxiO Jtla6 evs\dRɦ2ȊAUqU`HPF5,I'5EumkBxwr  ՘UE=VQb$Upe:$WV,6.NFWJ55a㊤z3,`RKONF>^%PV}ow7Rʉ'$s׊t|'ʶoMR:kCyns٧gzZoA1N9h'42xZSajo0h=8'91_$qໆ8EIEPDVO#ך! pr}I˼y *O^y6=<3Ɠ (shT=OGhN1ސ4ǵ0SYRҍ.2GqZPnG2B*1:;xN%C/nRyx^!${⌈@A\瑓\b @r8.A{g;r&~3 VPZ-yPe #II-b?/§{W<7OvʼnI9(i45&S{Lt++QVsrI1i $؞R|KS]P[@6_:[Ϡ)rmIYwwfLj渖贲]hsӷZuD~~ b):N{uңñұҲs_QCOrdGRnJ6ðvh7qcsdoY-B`aœʲA} y:=9 砦*NU%7v񎆜qG9B#&O#QM L96܎T1"ۉN\qA<_;Ӹ ,B{%x㞤Իbc֩l d}y>ϗv30s4'1S @O8ʜTX8=;Җ = p3;A> qq\Q'4=~o!cF:犌8:zr2g,ۥU@z8')SsJss@$w㩥$z `黷@h==r)9vO\}h'91K߆ϠIzҳnI$2z1@Ö\:vpe@c=24 0A/=hpW\t8w 8郜 r@`w&4dO2!ޘ dxo͐qsRpt4rrAƀ0wgFZC=8q1@ (Vp?:V's֓=iqLF zZOfsFI}4]<Ѐr׏"l mxN7@& N2'ށ f;vIǭ0w Nrd^@sy{c'"'ғsۥ/'IߊOggzw91SӞi8rN7\: Ё@SINh㌟RԘ}Ϯ;ێjش<ּjGBo#sMǏj~ 77#w<($vFўHx4&?=z[;Ҷ[)$BO˜ `"8$`HpqSsd}ӿJLr?4ʹg' :xP`zp~4Lq|tݎtRޙq'~q\@$r:䃚 @iCJx@aOQ##8ݒB^higws8ryG9#11Sa^sHFqAyROQ0lcޔL8M֗09(dGО=3Pڃ0ݨ O^\ zPAzqtִ$HK \4 I QS:GAIѯ.jDBdvxϵP;g5ːRXʓlJJ;!:@; ;1;sV?O,[m["u&&rF3s{qi5\pjR0+TsG^թi-j xǿe-ZM]u8ABj])O"/9*O\P0q=FO##dQp y#ѻ=zў?@%GN3q9mLfgPA?!2O^q9w d~T7ӓ@ z֕(,FpE8="ZSdzox=┶'^s4G'pҼٝ,ʼnPS Z7H#3Criq9O >ؤ&OLA<_L␹i R11@!='#%8q:i0w1@ IfGAR^02 7$cA4 }*HUPQ߁`AHO ޘ:0AsI'${<#=Gך^t8y8@$g_OqKs;{Rnlh=N?4׎2iFqzS rLAl'Ӛ g~4u N0{㨠' 'wd=Ȧ18<;ҮAG_H`>q1PzztPK('jwxZF8l4bys )˒G^hpK`N:PBLdzR` qA#(ȮWopF *X\}խ28 :dAzn'F{5NWy&mr˅bO<=ppIjƻ>?6g$V^G#AFUc\y{k2ꖒMcEa Pd$6JGNaO[\e=lBpnmssq\C]Q6̖.Nn;JܓTyڼ/8`y3;ٚ=>w[v,1fBHϩF'v{ץHr 9L3ׁMM; 8frOLwtN[<@Bu<ޟ@#㩧g֓ (#ߵ{ 4vision-0.19.1/test/assets/expected_flow.pt000066400000000000000000000737531466211133600206110ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch ByteStorage qX0qXcpuqM0utqQKKKdKdqM'KdKqccollections OrderedDict q)Rq tq Rq .PK0:PK%archive/data/0FB!ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ  "$&(*,.259=@DGKNRUX\_behknqsvy|~ !#%')+-/147;?BFIMPTW[^adgjmpsvy{~ "$&(*,.02469=ADHLOSVY]`cgjmprux{~  "%')+-/13579;?CFJNQUX\_bfiloruxz}  #%'*,.02468:<>AEILPSWZ^aehknqtwz} !#%(*,/13579;=?ACGKNRUY\`cgjmpsvy|!#&(*-/1468:<>@BDFIMPTW[^beilpsvy|!#&(+-02479;=?ACEGIKORVZ]adhknrux{~!#&(+-02579<>@BDFHJLNQTX\_cfjmqtwz} #&(+-0257:<>ACEGIKMOQSVZ^aehlosvy} #%(+-0258:ADGILOQTVY[]`bdfhjlnpsw{~&),/258;>ACFILNQTVY[^`begikmoqsuy}(+.147:=@CFIKNQSVY[^`cehjlnprtvx{*-0369ADGJMPSVX[^`cehkmortvxz|~.147:=@CFILORUX[]`cehkmprtwy{}0369ADGJMPSVY\_behjmpruwz|36:=@CFILORUX[^adgjmoruwz|58;?BEHKNQTWZ]`cfilortwz|6:=@CGJMPSVY\_behknqtwz|8;?BEHKORUX[^adgjmpsvy|:=@CGJMPTWZ]`cfilorux{~;>BEHKORUX\_behknqtwz}<@CFJMPSWZ]`dgjmpsvy|>ADHKNRUX\_beilorux{~?BFILPSVZ]`dgjmqtwz}@CGJNQTX[^behloruy|AEHKORVY\`cfjmptwz}BFIMPSWZ^adhkorux|CGJNQUX[_bfilpswz}DHKORVY\`cgjnqtx{EILPSWZ^adhkorvy|FIMPTW[^beilpswz~GJNQUX\_cfjmqtx{GKNRUY]`dgknruy|HKOSVZ]adhkorvz}HLPSWZ^aeilpswz~ILPTW[^beimptw{~IMPTX[_bfjmqtx{JMQTX\_cfjnqux|JMQUX\_cgjnquy|JNQUX\`cgjnruy|JNQUY\`cgknruy}JNQUY\`cgknruy}JNQUY\`cgknruy}JNQUX\`cgjnruy|JMQUX\_cgjnquy|JMQTX\_cfjnqux|IMPTX[_bfjmqtx{ILPTW[^beimptw{~HLPSWZ^aeilpswz~HKOSVZ]adhkorvz}GKNRUY]`dgknruy|GJNQUX\_cfjmqtx{FIMPTW[^beilpswz~EILPSWZ^adhkorvy|DHKORVY\`cgjnqtx{CGJNQUX[_bfilpswz}BFIMPSWZ^adhkorux|AEHKORVY\`cfjmptwz}@CGJNQTX[^behloruy|?BFILPSVZ]`dgjmqtwz}>ADHKNRUX\_beilorux{~<@CFJMPSWZ]`dgjmpsvy|;>BEHKORUX\_behknqtwz}:=@CGJMPTWZ]`cfilorux{~8;?BEHKORUX[^adgjmpsvy|6:=@CGJMPSVY\_behknqtw|58;?BEHKNQTWZ]`cfilorw}36:=@CFILORUX[^adgjmsy258;>ADGJMPSVY\_behntz0369ADGJMPSV[agmsy*-0369ACGMTZ`fkqw}$'*-0369<>CIOU[agmsy~"%(+.1479>EKQW]chntz #&),/14:@FLRX^djpu{!$'*,/6?@ABCDEFGGHHIIJJJJJJJJJIIHHGGFEDCBA@?><;:865320.,*(&$"  88888888888877766554433568:;=>@ABCEFGHIIJKKLLMMMNNNNNMMMLLKKJIIHGFECBA@>=;:86531/-+)'%#! <<<<<<<<<<<<<;;;::998878:;=?@BCDFGHIJKLMNNOPPPQQQQQQQQQPPPONNMLKJIHGFDCB@?=;:86420.,*(&$" @@@@@@@@@@@@@@???>>==<;;=?@BCEFHIJKMNOPPQRSSTTTUUUUUUUTTTSSRQPPONMKJIHFECB@?=;97531/-+)'%"  DDDDDDDDDDDDDDDCCCBBAA@?@BCEGHJKLNOPQRSTUUVWWXXXXYYYXXXXWWVUUTSRQPONLKJHGECB@><:86420.,*'%#  HHHHHHIIIHHHHHHHGGGFFEDDCEGHJKMNPQRSUVWWXYZZ[[\\\\\\\\\[[ZZYXWWVUSRQPNMKJHGECA?=;97531/,*(%#!LLLLLLMMMMMLLLLLLKKKJJIHHHJKMOPRSTVWXYZ[\]]^^___`````___^^]]\[ZYXWVTSRPOMKJHFDB@><:8641/-*(&#!PPPPPPQQQQQQPPPPPPOOONMMLLMOPRSUVXYZ[\^^_`aabbcccccccccbbaa`_^^\[ZYXVUSRPOMKIGECA?=;97420-+(&#!TTTTTTTUUUUUUUTTTTTSSRRQQPPRTUWXZ[\^_`abcddeeffgggggggffeeddcba`_^\[ZXWUTRPNLJHFDB@><97520-+(&#!WXXXXXXYYYYYYYYXXXXXWWVVUUTUWXZ\]^`abcdefghiijjjjkkkjjjjiihgfedcba`^]\ZXWUSQOMKIGECA><:7520-+(&# [[\\\\\\]]]]]]]]\\\\\[[ZZYYXZ\]_`bcdfghijkklmmnnnnnnnnnmmlkkjihgfdcb`_]\ZXVTRPNLJHFCA?<:8520-+(%# ___``````aaaaaaaaa````__^^]\]_`bdefhijklmnoppqqqrrrrrqqqpponmlkjihfedb`_][YWUSQOMKIFDB?=:8520-*(%"ccccdddddeeeeeeeeeeddddccbba`bdeghjklnopqrrsttuuuuuuuuuttsrrqponlkjhgedb`^\ZXVTRPNKIGDB?=:8520-*'%"fgggghhhhhiiiiiiiiiihhhhggffeegijlmopqrstuvwwxxyyyyyyyxxwwvutsrqpomljigeca_][YWUSPNLIGDB?=:752/,*'$!jjkkkklllllmmmmmmmmmmllllkkjiijlmoprstvwxyzz{{|||}}}|||{{zzyxwvtsrpomljhfdb`^\ZXVSQNLIGDB?<:741/,)&#nnnooopppppqqqqqqqqqqqppppoonmmoqrtuwxyz{|}~~~~}|{zyxwutrqomkigeca_][XVSQOLIGDB?<9741.+(%qrrrssstttttuuuuuuuuuuutttssrrqrtuwxz{|~~|{zxwutrpnljhfdb`][YVTQOLIGDA><9630-*'uuvvvwwwxxxxxyyyyyyyyyyyxxxwwvvuwyz|}}|zywusqomkigeb`^[YVTQNLIFCA>;852/,)yyyzzz{{{|||||}}}}}}}}}}}|||{{zzz|}}|zxvtrpnljhec`^[YVSQNKIFC@=:741.+|}}}~~~~}}{ywusqomjhec`^[YVSPNKHEB?<9630-~|zxvtromkhec`^[XVSPMJGDA>;852/}{ywtrpmkhec`][XUROLIFC@=:741~|zwurpmkheb`]ZWTQNKHEB?<963|zwurpmjheb_\YVSPMJGDA>;85|zwuromjgda^[XUROLIFC@=:6|zwtrolifc`]ZWTQNKHEB?;8|zwtqnkheb_\YVSPMJGC@=:|yvspmjgda^[XUROKHEB?;~{xurolifc`]ZWTPMJGC@=}zwtqnkheb_\XUROKHEB>|yvspmjgd`]ZWSPMJFC@~{xurolieb_\XURNKHDA}zwtqmjgd`]ZVSPLIFB|yurolheb^[XTQNJGC}zwtpmjfc`\YVROKHE|xurokhda^ZWSPMIF}zwsplifb_[XUQNJG{xtqnjgc`\YVROKH|yvrokhda^ZWSPLI~zwsplieb^[WTPMI{xtqmjfc_\XUQNJ¿|yurnkgd`]YURNK}zvrokhda]ZVSOK~zwspliea^ZWSPL~{wtpmieb^[WTPL¿{xtqmjfb_[XTPM|xuqnjfc_\XTQM|yuqnjgc_\XUQM|yurnjgc`\XUQN}yurnkgc`\YUQN}yurnkgc`\YUQN{wtpmieb^[WSP}yvrokgd`]YURÿ{xtpmifb^[WT}yvrokgd`]YU¿{wtpmifb^[W}yvrnkgd`\Y~{wsplieb^[¾|xuqnjgc`\ÿ}zvsolhea^{xtqmjfb_|yurnkgd`~zwsplieb¿{xtqmjfc¿|yurnkhdÿ}zvsplie~{wtqmjf|xurnkg}yvrolh}zwspmi~{wtqmj|xurnk|yvrol}zvspl}zwtpm~{xtqn{xurn|yuro|yvsp}zvsp}zwtq~zwtq~{xuq~{xur{xur|yvs¿|yvs¿|yvs¿|yvs}zwt}zwt}zwt}zwt}zwt}zxu}{xu}{xu¿~{xu~{xu~{xu¿¿¿¿¿¿~{|yv¿}zwtq}yurnkgc`\YUQN}yurnkgc`\YUQN|yurnjgc`\XUQN|yuqnjgc_\XUQM|xuqnjfc_\XTQM¿{xtqmjfb_[XTPM~{wtpmieb^[WTPL~zwspliea^ZWSPL}zvrokhda]ZVSOK¿|yurnkgd`]YURNK{xtqmjfc_\XUQNJ~zwsplieb^[WTPMI|yvrokhda^ZWSPLI{xtqnjgc`\YVROKH}zwsplifb_[XUQNJG|xurokhda^ZWSPMIF}zwtpmjfc`\YVROKHE|yurolheb^[XTQNJGC}zwtqmjgd`]ZVSPLIFB~{xurolieb_\XURNKHDA|yvspmjgd`]ZWSPMJFC@}zwtqnkheb_\XUROKHEB>~{xurolifc`]ZWTPMJGC@=|yvspmjgda^[XUROKHEB?;}{yz||zwtqnkheb_\YVSPMJGC@=:}{ywustwz||zwtrolifc`]ZWTQNKHEB?;8}{ywusqomoruwz||zwuromjgda^[XUROLIFC@=:6}{ywusqomkihjmpruwz||zwurpmjheb_\YVSPMJGDA>;85}{ywusqomkigecbehkmpruwz|~~|zwurpmkheb`]ZWTQNKHEB?<963{ywusqomkigeca_]]`cehkmprtwy{}}{ywtrpmkhec`][XUROLIFC@=:741sqomkigeca_][YWX[^`cehkmortvxz|~~|zxvtromkhec`^[XVSPMJGDA>;852/kigeca_][YWUSQSVY[^`cehjmoqsuwy{}}{ywusqomjhec`^[YVSPNKHEB?<9630-ca_][YWUSQOMKNQSVY[^`cehjlnprtvxz|}}|zxvtrpnljhec`^[YVSQNKIFC@=:741.+[YWUSQOMKIGFILNQTVY[^`begikmoqsuwyz|}}|zywusqomkigeb`^[YVTQNLIFCA>;852/,)SQOMKIGECAADGILOQTVY[]`bdfhjlnprtuwxz{|~~|{zxwutrpnljhfdb`][YVTQOLIGDA><9630-*'KIGECA?=;ACEGIKMOQSUWXZ\]^`abcdefghiijjjjkkkjjjjiihgfedcba`^]\ZXWUSQOMKIGECA><:7520-+(&# !#&(+-02579<>@BDFHJLNPRTUWXZ[\^_`abcddeeffgggggggffeeddcba`_^\[ZXWUTRPNLJHFDB@><97520-+(&#!!#&(+-02479;=?ACEGIKMOPRSUVXYZ[\^^_`aabbcccccccccbbaa`_^^\[ZYXVUSRPOMKIGECA?=;97420-+(&#!!#&(*-/1468:<>@BDFHJKMOPRSTVWXYZ[\]]^^___`````___^^]]\[ZYXWVTSRPOMKJHFDB@><:8641/-*(&#! !#%(*,/13579;=?ACEGHJKMNPQRSUVWWXYZZ[[\\\\\\\\\[[ZZYXWWVUSRQPNMKJHGECA?=;97531/,*(%#!  #%'*,.02468:<>@BCEGHJKLNOPQRSTUUVWWXXXXYYYXXXXWWVUUTSRQPONLKJHGECB@><:86420.,*'%#    "%')+-/13579;=?@BCEFHIJKMNOPPQRSSTTTUUUUUUUTTTSSRQPPONMKJIHFECB@?=;97531/-+)'%"   "$&(*,.02468:;=?@BCDFGHIJKLMNNOPPPQQQQQQQQQPPPONNMLKJIHGFDCB@?=;:86420.,*(&$"  !#%')+-/13568:;=>@ABCEFGHIIJKKLLMMMNNNNNMMMLLKKJIIHGFECBA@>=;:86531/-+)'%#! PK]0u0uPKarchive/versionFBZZZZZZZZZZZZZZZ3 PKўgUPK0:archive/data.pklPK]0u0uarchive/data/0PKўgUvarchive/versionPK,-vPKwPKvvision-0.19.1/test/assets/fakedata/000077500000000000000000000000001466211133600171355ustar00rootroot00000000000000vision-0.19.1/test/assets/fakedata/draw_boxes_util.png000066400000000000000000000015271466211133600230420ustar00rootroot00000000000000PNG  IHDRddIDATxܿKqңApŖ( .B "TMեd:ɦ %.RHI`V(Mr6'^ע ]rXo,YvZ~cHO[{qr70a=C;|s<:/Jk#ڑ{ v2Տi6Z&bcƎ_ v,3c i- ct\ ''DBx{+U*ojWt!i~P(x1<}ϚYte347tLow ۰X"(AEP,bX"(AEP,bX"(AEP,bX"(AEP,bX"(AEP,bX"(AE Ç_4-J: EP,T`IENDB`vision-0.19.1/test/assets/fakedata/draw_boxes_vanilla.png000066400000000000000000000005501466211133600235060ustar00rootroot00000000000000PNG  IHDRdd/IDATxQ0@r i,kJǶm;1~.g"V V V V Vp^;XYXXXXX|t0%LC,vcbbbbOV^gܚYm3:”0eebbbbǞ:ygPlz6 #xinebbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb~BWVV V V V V tS!IENDB`vision-0.19.1/test/assets/fakedata/draw_keypoint_vanilla.png000066400000000000000000000004541466211133600242330ustar00rootroot00000000000000PNG  IHDRddIDATxA0Eogfhc<j ON]ٕpgYOHF+z][sj]jZR-\-pujx}Y%I^0Ji< 8ء+U/Ў:k9<M~Ϻ5X9/bͷyk}\5{nf}|zuiz9zucﻝα2dτ; B*kIENDB`vision-0.19.1/test/assets/fakedata/draw_keypoints_visibility.png000066400000000000000000000004331466211133600251540ustar00rootroot00000000000000PNG  IHDRddIDATx0@)uȫ9+$niCme1}zUkLs(ZueU"G^{Q~lTy?;ͬslш^֢+biU pAY=R?7c%>un~aRJUU5MC>x6^,>hl1?G}~nkx<}a8( 1}o߾~nChy||fUUu=c̏r8˗/_|l6}cyaX,eY}/+|<mcW}oflv;cJlֶmݝ0l1@߾7?sf\/ >l1oQ_ϻ˗/w `z14#l5`c!F}fxxvğ8Bi@`q:BcτR|e[X.TAEa5`cy ^awfyxx l6e^onn*˲*>l1_mBqr^Vi%8|cޢ0mK]Ģ ?Yϟj"]U3c[n6mk6TZKӧOXi5`cy ^|߶mq(ju{{_.|@t1(֣fCշoP߶m5ri,oooonnYV14vvuWY37www>}jh} c^m2~(տpwwwsssYV_aqv:IUWd]ב߭j\b^VeY2҇c#}FWXjY.c`~g}<#M|eF]> 1Ƽ|o6"χÁ#^!777 u1`y {E/_waWu]7M%L٩_c,Ƙ7ou/a`'|5Us<8|/|sQ~QWT>Sx~],}^V|gc,t6iOT_9ÁvX,^S_[_,S_̳~V0v}xx}˗{%'^l\U&;2 p|Q3*:jwۙNR,= F֗_2L_.x_DQ_٬*ڍ>Zl=_c, mL\GYc`*`gL+Ŷ>zyݳzyeNDA gͮ?pUQ78D;z4#GϷM4M1`[6j(T$Wc4Xs$Y-Oyhi^Q+ѹfzz_~Y8eYXE=zg|d}D]H%W1m}?b(k2?izdBjF35yDx> qGމMu*Q+Mbrfjeaaf[ů(Y_̈́'̀Z+N2O0 ͆+(jۖc>WϟIu흃XO6h0%ѳf{8#"_,Pu՝Ƹ4˲ĸfIbd}۷_?>꺎 &^t|6l~<,VF}Ww6+,㋣J`Կl[Ev ѿKwԗW)7%Лfۗ%ajpwww9lؼ/+*e:ax||^3'rLW^9ڳ6+.^f9YTw)yfFUʱXQi97tgL_&g=+&O'o7"0l6`$PķLz^u$o5lX$ݕ2/L9Bun{xx=/Ĩ9|>'& y1Ɛeyi(bߏضf\/VeYan( ?#eY}C 6lr6xq\޶m]Jq?mUU\c(58zGfwʔ͈lNEKO-J'MәيE/.ItE6T-SJmf;9,i4Z.Qhp]}߳w2˺il yϡzJy6U8VG^k12 p|qχ)l`md7[ MdF-|#MǎfY0 >=`6!kXh/뺮vu3ò(몪$lFkjVv r*yC aT/帮k$'SʖNMkO]5{x_m:65i5vKpSJ+nooF!|0}>w\*pb 6`W ,ѕ륺d4A)%.eIjjʲ$IqyBR0ROmyj]O@g&0sʼS=ܚOIBu]c^ztwwwwww{{\.V2p ec\K+|)ƥ Q9ZTrp}#^W<^:pXm)`,暈$H)$t7de\, JDqXCR"JWuUY(lyÝp`vef>krϟ?S -A/$[8%ͧpV#(g,Bqy$ˋs#,WLr @DGR믿scXeYj64K`c6QMDV341_83IebeSQwjBz:lQ}?Ct}n=#5(i&:τlmۦiH0/I\ e1UuDt/&XK}cWlPW`Ŝe];xv}xxl%'jAH0ui t|>.+mš;c,OJ"]׫srTPiř` oT@@A:h].T]$&L,Kq h8kD6@5QUj+fmDiFnl6 -jUjXTUɩH g4X}Wg,WU*iB)g&'ǡT RlzfG@ 0BN֖5FV3Yc^!   U ðbg7G{Eŕ].jVY6*D}9vwLKpr,T>U"@ޗLLvX͟DWVrMlV7ZJ ;+Urݍ()l12ꆏ><5ml,K&GJw8J)4x%4 oPL\OdsO[bE >x_W-l544*j:҂aٕ H`[^#P^Q~E7ݑFf_1l~UW8" CЦnUUeo|hul^)uyWR{X5.ƗGW[x?v$Jo&'YͶfzjl6L8) :c,WjDmE7Bh(Dy8k2oRg $4 ϟ>}B5lWKj1R"(kK+QUUJ;z%lF 4Wzu_a4|5C,ltfW\oV%_jdY|/wru]3J3|MK^/Jj\⢾\1"ڎڔW_,]P& IW;|cPs%U.*E5kaK(¢k0Ϫfi1kR_]m{S̙Ә$ W{-Wk)t1kR_\ym`G 2p\㋠y唋g8]$%X/ʔpfvjh3gz%i5?z9IZ_Z4٧1+ReJ?2ߊ!a>I^S&?o6o߾}Uˍ !h$4|87d̓32ƗdқmP5?P(Ӕ8ah EoGWi6meUAbθ^_o i@nA'qw 媯FmpWNߔ|>,Ic,mQޗgMb,˻;mpo~բ-:Q_rhR8`j|Gh /5 "\{<Z,C핧ۛ`n}&_FNc\՜gbz塚%rCzke4N!cK(cѸ+^<Ԕ"_Hf3 ޗ/MG$o۶{ZbuF_: y_^h*7;R/=D/V\J_c=ܘ߉%".劦LbWߠA8 5_Ս8.p\ Mr9쭾74+K}ׯ_P@ L@zzgIc,k/'&^QE͓&<9;(#^1F+ЬVO>P$1K1;4JutTuS|FN2L0 (q1K"]2scǔE\X#N_}rҕΙI3>S?ݱK~^tahԳ6zN_&Sԯ m~tm=bJI䍛>_"Sxvj,jlwr_z=ꫲgbΨpmł#rH>es ^lv<FzjRh%s_/ ͽOb:ZcBah%_"yƥMl?a~e\PłoQq]J_j̐ RR6'A{r,8BziO?T;)u_9Wb%`ρ"bfꦔ(.% ܠ_n񵜖|&B39KiXu/c|8W&[C6|52̓tB ;`+H IDAT=j[3 h*gF*{\lh&o)%`2p>ngx$ȼ۶;B" ֐fRJgK|_E0uB̙c>hivcS:q}9]Q|%]?i R{`-AWΨԗ+وj9"ϴ2jRE Չj^%Ĝ 9]qT`~G \cEn]O3?Nl:b Wzf$ez!..4qScUXWYZ%`~m=-}۶MGժi꟫@!FFkt9+ʵ< h0"—(~ƑXz͏o\vtT4 T* #"Lj 'Qt.jjA3o =ᅦ/lrZRU"R_bV돴 p (ҖN|N.6oRߧʞQSE4M\.˲T9ͧ$amX4ݔZS"MC-n@&6MCbU~EXJUo .-WR_/u/_ʞEWW_Ԛj~_z>WX1sg?p||G ׵URcAgu]G"X,7Z4{p=]ƗN-}M!Xz qyJ}zu~%@WO5ٓ_ԩ:EAcB|tzPB0}ߛ9J hR(l[9r#`c,WZꪪXS+*K5nͺ~3En H0F}rs*бԙBSVfVUCH;՚#˲|F5Ux%`X1vU/٫UHvվ6 Ē4XߧƫPJԯǴc|}8`lq%ZV_3U_M*LJZ9>|w`E;T3q\`c,WzqH2S﫡WvFHMTSG2):'=٘+QϠ|#'Xi?Ѳ#y_m\aV+&^*H6gcb]?S&ͤI/WKfqߢJR_mA(X .gjZ8#f#'l6DYH9jKo:M^r~PMbUwWGMg #!nfqDޗ`=~d*\Jqlۖ)^b8 UVL)Nl 6|XD2+h>2vNuMWs ] Uטk!J:82 $v'9=BQv-kZ~ >K uz:,?c|8]ELWWq$ё((ZVϬR֚"bLXY Pbx }o[x ɷo}-uY}_S k4 0w7^x_M۠O}[]ה_iV-ǑX[U%c#H?JR'>zZ_v0h+QY=\UՏ'R^Y5(tJ{1v.D#fnm){fZެHMiEc> U p f%*uG9G\eD|޷j3g͛$ BZTLG)ğ_UHX߉s][, S! fH`|(- Vd|W6.|'dctVo}4|L1 <Ţ.%-- "Լn7*4fx_I+3:|/)dLRc1k H- 箅~fn:,K=V[_⏫o !q>Lcz &+)c&v;Cڍ('΍]}#1$jUW|Uҫ}pXMUh10$B|}{g\yzu ;` VX8ʰ[_ID\e 5` {O꫚8oRdӞ%Slzl_K}7M5EU%=]/})*K96U;bW5B<&{>,L,Z秞'WAc~g&4es]ӻk2K88E#S]zxeMPMJY'k31nM0}QrFz)>WZTQc]XV?q Sc]i0&x\Rlre'I4ҊB \/%9Dz̛O\vW̛|ɿKXG©GYlXM i=p۶\i}rK&1UEZ¡~ߺ ;k೺~T,LşB;ah0 ~/ѕ>?c;Ӱ3#% |XoyJy|S+9`c_^o6nM0HJtW̳m[ksOtH \/+1PVz'GxI-uGƜE|<_@uz1l)̩:.&Xݮ,˶m)rKҏn:]լ!;VZ%}Lb+񧆌r3L(n'4Xߛ fs9(z||l6fah%+FJHgesr*ZŐX^ Za(WOTFU?KP2̭`c]`EQ(n'6%Ҩqn*We&uo ݒq> ;+LC*xB(D3)1i8V(HZ N1D7Т84#{ 9g|IEÓQ -r\"Z:8gvVgs. 5&zicV~SERCz?f28nPұ.0Xw9a'V0~W]-"A CUu p_T;qZ7pKc, hJX E/T*OnL妰(&tͻd8Fc(H+{UU<2}PPΗ#>(ES)X3\˲l&& #0#00.m}qc`1ѹfer+#yz/[\EU=*,UV\vQٿ:Pl pQHHUU: R(LUHChˢ%O)U]S%7"%VPZ?Vl)@Xj~Z@<Աw8gQ֌X3X4Mz(χ{ ǛM̊.צGwQw%>]Ӂ҂+۳#%U'dy 5EE+UTzϴc&QmL:Ԁܛ.)lWX=36.bNuUq&suJv]x ~|읜.\2NUmגhs S֑glCpu[We eﴲ0q>eYz ɒh+3E,-. qncN| u I]Gv^Z2X4iu%MRMٜNF1O DjKO_ q Ml|>??qeg՝D<ĈdbΪ$kDToQNCUNP3!M 8Qc~Ϩ+!=2uzf\$D/fgmz"xoR~W]T*L[lAkS+Ȭ%a *]wtLOMpdchp'K'RϒSzG3|kgf+<#|8iW\=95Z5RY}W>^BR(Q2f¬qɻ88%:`^_i垾lbv2.De( U+KOexZ$kXD7b1o#dd ȭ {FxKtJJ_"0S4Ss^>hoҩ Nkn F0lݶmcwb@Id*|=3Ӭ9'^ɡlDMuW"*KVq])Wr &t%z"/++!ܘ}Aט2/zus6_c,KdhfSHwƤgQ]bbę sTBjBV~U/ώÇ͇ߨ)T|Ud^3$5V9ZNQqhgeL80 s}8|**nTOMG[(aZ\h bm,Į뺮cRt\goby6%n4S&5ˋ!((,N9ZH!sT.8DoP"y1``$iAԼdi@M?oQ1Y~cMD3ƙf߫TwvBqCpdCLj$WAcWLUa\GʲeO@O0ωG -?,TӱVl#ߨ"WfNJKnbLe::J  %N 9 CY86Muks /,’N%99򆳭!KDcTN_{pL'hfe#*1},-$\U,f%3ZT~o]p,RWֹ-Wf Bz:QٳSN?mgK`]48-eYPU=1_{ycEwY+~)؃jT*;ҤOcV8?UUiPe^IGuedMi>m=\\顚v-Vs1lZ¼U==+\G :st{D-}UU4% Uc6gP]R;5-i~?0Sc(&8Sv]\.Z?`c,ɫ6=jݽ| PH[WuUeؼBʏJOO2{&tMK[۶Mh5ؘ*c.V,/]m4QEy1l!)NY] qL'rc6(ZX,a)>iec6kcQUU}۶lA.UUayLWx߶mB(G 14Xiຮ>[ն~gۇs ɘKGmAp8t]ˮ&hF4 뷪*WC0i1`c@t4 -,n8` 1`cjBfO2뺔c۶?M86X1ogXmFb9zlFKBhPjF4j5 &P)%hX"j,c,Ƙ(X mI$6l &x\4Mu`4x~a`c,Ƙ`|0ьx||Xtulnm[Bc,Ƙ7B5heV!}v;/avCc,ƘWdJFCSJzu:>XaFc,ƘWC5pzjafQa4:XcިL,ж|>BV`k1`cMl6LGڂ۶Ma#2̣5 1PNta5ƗǔcłjҧOvzLkc^b1p8P ݶ-if\X1#)T5Iu]faRJ]QwG1)d1`c̫5*!|N8IѼsNL5 12PY"bljRbЕB#w]RǑ'EwH@c6Ƽ:ө Cڂ G+1lye֨ 0v:a#hʵ< 1\dkX}ߧ LXWeYLHmEG_QC]1:WsrRhc,Ƙ!8EtN?6lyZN,ө& }X1oO^HqBVQ~qS%$'>M`c,ƘWR4o۔)I0biT9,k1`c̫5X5#Y-ј$n5C<.˲묞c6O,f32kOJD2KX1}3Onvz G1zRU*]mR VOQl1b|{f86̱7UUQX1/Y'rqd4Ӳi,kr'9m" y8&Q% z4eYVUp1`c̋@hSDS]f!ܶڂMҒD,Xc,Ƙ\&#'o6z(b0}}^auSEͺ+y޷ca(bݢEQmN=HmR =VrYuaڋ]e^fSDc Hl]HEUYޤZp8t]WUUu]/Kz 1v_P3Mg~48 6 !UU1cU$QairY8eYbjsfJ@Np8dw;wl6:ʯm[: üi!7LpVr\D%5`W'O~i1ӦfыŢmۢ(C}yԴ,ERD]UU4EQ4Mϡ2l0X^+SǪlcm5c-Ƙ|N~Ǒ 7u]Pe|cXG/ m=7m]i yQԼbh 12@tYu]#eYv]p Ji=u]c`+E{!P]{="[CN쀍1_r%}T01+,Ęi)V__*v"Qӧ؞d6ƼO2L,aVV VWҙd=mK۶ndC}(`c̫4DDL'(mM)1%s41j| _uu_:vmvߓ@}pPlXW3TJnS5bD2ám|3E^qtz*K7mduߣЈ,ZD=9X#|> kڶUYZ4sqԗrbpRuE7dM4MRqPܵ1҈4Ĝ)!HY5cp9:ls Q,Wҫ2W}G ]V777j\:l% sHcoJRJJ|51@Ge[Q_J1gܟɦVU5Y^Wj{ |k6*7/j#V?2AZUqMHo…'"PkhS-j,f9; RJ|p}%ҋP[car\j-Kv0*44$$zCܨ%-ƿ%ImvKDb~z&\r~dXɿGdVťb %ty{h%Sh'u~); Kd^.777k?D`ca]A1j9\K2b QXaj B~*CwVo~#ꭖ'*M8Zo{l}Hf).XEMOQ)%$9,:o)1zŨql]:ojhV 8|.|R-Ϩ/lKN3 1p4IjL"=ږ !QG֊Z|ZÕFn/jHcn:y]s%s@L777DfY1-p^`]USU^B4?QGk՜Jv jwdv]acK]scC e4v#qM8ڔ4SL!h];-ƘKX\ĩfM+[BXZs8)riVXS8=NqI41D,q홖%K}cִ0*+T>S=Ao+gqꀧ2741C!Zʗj]V.x[1Wo]0HyL)X: g#+,^4)}zf,J<9?3NgE1T|E< ^I>|1 1]q,x +.M8+&RV:G:He]=ҧv/ێʚ}gMkʚXO)u}<GEz%qoI|Z1\3O,Iul1z=NlȈGX a0uvڥ7*z:)EhFyV_}OQ 1棈qy )*"viť't'M2%iiqp&&}t:mK0I?Bv~? B4np8,X,X `IY00 0l6~w])ij߮8ժEiC|<I/_,=,>j@3: a]LG,Aޅo焒ϿdK>"}zu(p_^,XBS e/M `A1yԾ% faι7;4B7M)aKon49/}/RmӜŏm(pF]fodKLg6k9}D>==QF\ 3"ǜ `+`QOǹyޫb&Vi3rVB,=ܑ@ɛavxEfw8%ofc0>,B%h,=0od a]׭\|L:8 {X2Mq7M_)[<^(UO\a$q=+{y[}uQ>s yq~&}y4eT=W2HVc==J[_ZfգG{g-H _N gQnLw]Hf97&i4Xgt7"I4?g/XnR -ω^3 DŽ]%#5"}IltUWƴ-YK2xre dk~i6Ǎ22[^h2]F\l0Ծ}_- ׋ OHV} $_,OW`K2W_U(nd=*ui!KY"Uh~=J3\,_.O,}2%2mĒ;b̲siʑ >z!g~2 fU7ZdKR֟i~^(Us~.}ˋYN3%:R2ϚT.;#51GRf7vUB0Sݔ `go0u2GlMs.}Ծ,>c&L^NMWRu.ӌI9ߜsnQ9zï8MBg ݝ`>Sܫz8 92eۍzYp=>$o%ҭ0˅Doww4ej&s*i!LItHq.f77"sa+U2[#^e3onq1:vh˜btZ Y|f͹}/_:?K),>#89OpZIoNe r1CB,].DKtꋏ(}vU\.e?Nsz +MUBB4yVk۶(7>dQB7ItD/- `4?3W\;XJI3MXժszIJ=r1{,tKȽ !Nx@-sGnDh,ݢӄFX?i~~.Swt^O|`,It[/.(Ku/~W;\|3Ep"e7%Xs.>J%&Ϥ]|&tS4p^p'X2C2u>}IJm&?w]}]ڷL<*tBʭ HdKUt>l|,^ $}0N#40Fג,݊zRGuՇWuM,c)8:t _$X0 \mB6EK|;雒7/ m&S8V,It+oNW/W\>'y/2odK7TKʍ l/ǍX|ZM12{1B} `#emTٖi{5jͻ7w"f~%X7qeYyfFnꏐza/-2ayI2[) `>9`Vnɳ4^p֜/DudK_;~3o#~$}omTX lÒ `#_J^6YfE7ɍ a'9LHV`>#F_1+8:K7X>֡[_?c4n X2K M`ndUv㰶Mwnb6pB$>J^Ƚ̞/W*4p &,>LzaNs j~3|#q"LtSZ=NҚgf> c `z26/aqL3KD1|G }o9C)]I_> i~p)]zߗY7xe\'n9e ,}dHڗT(|7[ٓt`LO$X`J;~嗭U"X? `v؄Gt`q_fEML7=/IKTjwp=+_U oF_q%@Ƚ}Y~3sZT#XcCUE|%F `=dNp۶T@9C9\K;?/)-ʹ:pV0 `f*`ΗMђ `mq~3~8mۦ*/˹\ĉaNn#aҖ¼%ћ߫Yyl6A `m~dt$$.>*_dۘ_^ogj HR_Ib~#u~%tȴ@WJRI2}%Xzs9僜4Q6>/o˗/ϛ&{Tłoۖ<_-ypG?&UO亜(AʹdKna >9}Tl2qv/yWNjٶmt (uMv]GLSs :K5 ?HZ% `m_җg:$V^VO|28NNbSֽ_۶0]$q<|:M|=<C,n[Znsot`~upfwvMo6z|+D#N#L|18f3~wSf%j"MfT@cIM3|r\;ɹ4!gL$eZg.7o{^P/K%XzfCd==vp.ItKƜY|rD8ǖaX$r$˗zvr"Ldk*,jF6g՚NvWM-C/Q4#(s^uԾ/ R]GKRrznƩRg00 fNt-LNO+VtܙNlW_LǬO1I2_`J@*`JCv>gUb16!~+Nekoșz͎l)a[|Te+3r炙= a]_|<˴>Oc_pJ˷$X*EazX| 򃫊%}3UEE^ !( Tҋb1̪/=tdKߔ_z8 ZrC[7QT믿xmV'kU*tV+áYyfP<9J;R]v]b5iUSWN28Wu(O]ץ;oǜ{ XJz琅*dKz>}37Qpƫϋ~I `N38%L9/]xG`*`3#$S IDATV`W%Xe32v#QAu]n}G[S|>7MCׇ%}֧@V&oMs_gEwe X*{sB&N'n=bUxG.UOMXtAg8o -R$#)9W/ϯfy R'n)]9 `gzR~}C:t:2|}d M//>b$%/' *t.Ыɢ' X2e{ǑWl3{ɍ 9zo)UGt.iP`,=Z^o۴_^ ˧K2/XsJPLW3l'*cMbf.o6*ӝ|^6&\,v]֣Y؍qLdW?_/‘r$+`փʵu3|nv9 `>e{GOD1LgN%zcEpnԗ1>}3sa'rߟ) 8C@M/Od_fbbHgazj8dlȲv% 󕪗j7j2%+`=\b)W/y^gϨ_^ zewRQMqœ -ʴw Ғ `=DBW/9zTJu \.鈶CJU]w%> `zaP H`LXjХ- 8",_+'Ծ(9K2c>;+`e,Yq\?sRmۖ}[\8xq`* Ns+N'On6WToTukKoRW˴ MS,x`Ž <}}gID苻S X(./F_v;җHȡ߮)m)ya}$Xw 0|NFK^\ew!37ik,zp8$fٓTޯVIo~ݬT[K諤o9WaoWԻusWdӗ[`fOr0 3_w9Yyde3/̽̓++`돨.+`CEt>s`sFXmZKsz x @Q/>g 8Ny%esMb+` X\e$WlXjf>S0O/ n/+2]@T[KVqASi3雩U*`~|Y]V+YNqV+gO^p=`+`֝/*tnjXV+i}}R'b `ݹ8fa2.+Zp%Xw^փ')r2 Rth㽼s{Ana^_߷YDooC>ǐVuYK39DArWWsE!ܕ>;گ`Zw`9W _ޞʼn4L_C鴛~ Em&[0'՜d%%YN*_7}i+Ve|^կ@̓]ӷ^?}I_-"˴Z4Yu#]В{ g Q'ek_o]e9?K-)aH78}6?i5*]7;6I=`]m)2-22lQ |E>]>7O'Y|_֟I_ы<ϩg/qˡ#O53c7`/'XgW$qcK2LhL$}s01|>O^4a҇pX2w"#7ye=f 2}%XSg͙gߟڷ{?Ctu7V7vh7.R~ou<:X_iyK@s/d|$Xl:rw6. ``Y$Pnk_]^O[Jix<ZX&}]~oG6Lv݊E `}Sx-DĀ|kڶ4Rxi`֧G{-V\2~en ,At>\TEDn'.SײY`i:[>coh*q{fR } `._qz T4Rv]VpK>wwIm_00ߔ{Oe{e6:DAw}n뺮>OyAj_~CG0aa|Psw7n6/!Mobwq=G%'h>ghqћMz.AKwiDύSVMzBdKS97rLV*,%~/l[܋Ţ`W2%]! L~ΰ|$tDdKZ{ncL WUuu$XUJ)ܓX,!1*t4Bx~pn_fLXVtILȜ8F= Z{ttoő_vOSiȏnK+;WdKzΏ_郸,=+no%Izdv` `sr(\.yϖ~?˟~[qA>& >d|>y˃<^Eo>rٜr z?UUmT<[~6|WT2^&Pe9ϗiZ*•jxf,v]yˢy<2Py\p]en6vVy|В,Mܞy/˲,˲eYHt'hF R'.\l۲q1e<(cK/dKo<y..2MٜZt>êyR(8=yRvyg~eEݵm4]4|@] f4 T2 _^RuyiZ 1yӐE^\ylxOu]d^վ/|<59J|o iHy u]uݶm]e<Cz~8n\.8.2 C^~i"nWA[nV~ߎ3%zN$wW纮z߷m۶muYND^Mz^VqgJ绹刌׭+ݲ|d*n]vnﻫ6%+` _z8N4H8۽/OVױeP8n/ MӰ(՗R;wHX͒*8yAZ3~8vH@M]$YK?^H[eiTT+=3e4{bxOeu~y2;ټȠ;lR~o˗/˲m4MYӮ!\ `' ߬6G@KI2tnaZH(;lq˧J?sy:o$q `:Tev ZA'yq:f-v4Ml ` ߜ)"iJ|>qۮζmsi-[~*oj*6.stf^YH#2nמiﺮiiwg5,R,<#Z]BLA۶0o ]WU<^ݬP~Uqo'bBiX'y-B3W/O8MK}7M}N+mS7n5,Z)Kx<NV>E˗/esv|?ӒV!*s0ilB$˲pxF6J 7ab~mY{/X0Kaև}̦/=4%uqsm򜳰f{2ǂ=җEiԪrVtlQ]םN'bm窪lJ& 8kdY2җl`?OI>UV[orU~''Yf3eo3G3EsmYN.u]ξimkp͑ANا j"MWZ2a7+T// G,;Jp( ԾI'*^59SP.yXtbD~܇R ??zۣ%XﺼK/+Ϗfi-AljD)_dGh]יD ,O.!ZYdǑ0fM"My˟ MIp|HK>@RHqoߨYys^vGm&ˋ[O `?˜[9xWK)4mܪm `s޷ٗ}7CYvfD%~2+Xd0}RO*;p\XpD].JbxR|SǗq9TH#-z__;{<YvjVIY6}HrߧO:#;h].UDn,MW׻ʂuuC".($1'nW*<-'Q;mg rK !y\yRAJrwfqB) rZY<癓 g ԭsH(i)5v|I·,dǍxxBS-NpӜE,ʀW]i"k> `DIsRoro%rL猾bpNVYUUq' ozwtJ3b s+b `+Jy{>g5۬}s}i Eg8DQ2DgA&W+ v]^O(bW%Xœ\ZGSӾ0olhߌ #yj=myyf??U1innh:WԾ,udV9E;6UŭR PUU9Lt6-МٞNoNrtfaH7&- pj̔9EJy8#)*mJ ^'\y֬Ho tf&Kg]22׌7D:if͌0J&a)ݎl̰֔0R81s,c N+osO"THpk3llLpb'8frnۜ8ɚG"XzhP'BieM]Z!g28˹i^Te)LЦCJlJ^?ZR1,nNeTPPOVg2VNsJU+l3Il.GwEr%s{f(f)8TLr}WJ[?YWeYo?) `>6?W[婀Ӱs;O9yLJ\f^~reyw5"LwAkJTV{rn>Lѣ咁}'-GW-P1 G$2Wn$}9djeYx]©߾}yCNpoِ[+%+`t+52CF77H_އk̊1qKUn_`<)/>/~$XVOy*B__Ӟ `җgvs_yW[S9HFra77 {u~_^}5z$Xܴ@t eq&?F^LĎ8Rg}_֟)Gyc+ L̓GlWڿ$y~||&` v 7O]B:iKn./cL4YYxg76e$ , 4 Uo)wo d] Vf0r>?_TdFe ̛̍F};R򃇤SzH2urHYLtW0l ՗/_H_ONYO2uʱϙȱF"Ӊk3ꙕᐷtg `—GMuL( UsyQ˴gw1SVNސ `n'<.tp07 —SFL'YsKK.雕 `ݨ>ǩr6)?} )|y9eDm66w{8Xs9$W{ `.j!}y8&X5g֖iQqfo6xޟM_^dGY K2us(’(]]#Ol|=K^7dǗ7g|i~يڗ_/qKov|Tt9$_R*\Xyd֔5?Lf:tT)Ysf77+<$k۶/U~eG9Soyvc)%XXϙ 8a\iTn4[eSFu]S n$}6#SV[’[s p" zKFi۽̴bߗޫB3c,;SuG}V>UUᩀOKn.{ˉW!d—_f͹l".[ߊ4Dzu"Ϲd+સw[]Ըel3\jD֦ߊ_V+t;2^##)g~D/H_&o~kKx^ܔ?̌r>,֭(;a.eK/(-יά9N ՚3+^Pue4W b+`w"HQ.T8N4=<<|ΈBܩtɲ U\]KSW}TV.I-rw/̺4%x3ՙz_pyT. X2uѻzXdKdeٙs3-WI_KB9C[ɄLsT>ؿP_eJn]ewA>>>< $ -y8mRr$EVyC.R~,G@'T[;\o.5QVTlr/_g*LpM_ yO͔If_ܬy߾}/)/K[˲sf՟ĮՋtfYJnu;Zv+&Yv*Ծ<G*cLunۖF̘mToϹtr,-+Sҍҷa\dwGp((|s7񖡼|XN- X2usfʴlr~To>1/gH_POmXseeS-4fy>Ϭ+y0dX|>ԲOxi*G\|3BUϾӘ0ΉvV,3X2u[7u0eqj_q6_5/͜5lgQU tWeU]MӼ1QN8{C `P'X)#ivY1B9ea!Pfp* W\2Zt:].qSK7:zWs`Zͭ%X(Мv4mK0 œY*G }H.~x~6D͗/mbzr͠N)-pf\L}֪. pX1.1|鉣̙J{Fw IDATf!eSuTUEd>===>>ri.B tN. e,e3nuKڶ-'v}mH:Igz%z_E0S癹Wf4Tikԯ'8`*+Z݌KKŐ r>g{iu~7+˚rkc,}["*n\.9W& >i;@| W*:XMidKz"8[ހ\n,4雓W9U]ן\Ò `IWUsՄ,^.~Wյge),[[Y];^$^-}YfVگyY>i,5^w^%>i,w+Bi M~U&7N’>d}yqqr*OdKz%z [a+>Ǎaz8eyrX2%Ljۖ"IudKzpN?/2M4MtdKz60; `:U/ `IBt&B<3E0/W5IB[_Qm༵ `IlM7V۶_ڡ9lKP7MC320dKz"8۶Mљ1MF `Iin۶m\@҄u:a %X01:HI3,hþ|Cb񹜇Ex<qRrr `I)8(q:}>\@,8"5M0 ]o5v/~IvK4瑦ik P p``sr14M0mH82X%V lI`?\Vx>y<_s(~T˲t]7cu]םNfSHur!zYjgR2%#-˲qvi٤\budK"iyӍ*tu= L29p:vYvDK_mw]}u7-дLa%>[)>MD(Oa0 x<`9 `I"}"8cr<8=ϞdKE,)s*{ڬXǂ T,1ϖ˥mۮncǗg|&OdKuLb3x4MsH `IS nۖ`!q8+/Jq̂&{$X`2yХ#ڧH2%  J$I7ǍI `I `IdKdK$X$X$$$$$$I$I$I2%I2%I,I,I `I `I `IdKdK$X$X$$$$$$I$I$I2%I2%I,I,I `I `I `IdKdK$X$X$$$$$$I$I$I2%I2%I,I,I `I `I `IdKdK$X$X$$$$$$I$I$I2%I2%I,I,I `I `I `IdKdK$X$X$$$$$)$$$I$I$I2%I2%I,I,I `I `I `IdKdK$X$X$$$$$$I$I$I2%I2%I,I,I `I `I `IdKdK$X$X$$_} 'R0IENDB`vision-0.19.1/test/assets/fakedata/imagefolder/b/000077500000000000000000000000001466211133600216345ustar00rootroot00000000000000vision-0.19.1/test/assets/fakedata/imagefolder/b/b1.png000066400000000000000000000316071466211133600226530ustar00rootroot00000000000000PNG  IHDRFr pHYs  tIME .iTXtCommentCreated with GIMPd.e IDATxzZm'*U;m$v'˕J:}}lk_֗@DDDQEDDDQEDDDQEDDDQEDDDQEDD`QEDD`QEDD`QEDD`QEDD`XDDD`XDDD`XDDD`XDDD`XDDDXDDDXDDDXDDDXDDDQEDDDQEDDDQEDDDQEDDDQEDD`QEDD`QEDD`QEDD`QEDD`XDDD`XDDD`XDDD`XDDD/ozf "ȯZaXD~^eXDnfn("`.rYrgxvnǪ,"|y]u]+w7Mï("H, \JA}c ,"˲80 ˲ M\.07K'O4 0 뺞ng("0 F}iDZ^׵moEDW/ 8fwDD7^ו_0s " f<3bUtZx I:`|>c|i:n6cv;vȃ52LV4MD,"^@,Kr(7RjE`y=߈^mq E("V3N4`)" <HO" n&2&.˒#'W_4XDc+H2XL] `5XD05g}mp ,"oU_.CXu4QEs6S|.z?("2f2+o2|D`y f _}D`yur;5fgc "?K `$գi6Et"0gԗZJ0dMD7X?3v]GG"҉("z??9Mʥjw,"P_o. ey+/m`O("<9=nWJAq#n("Fn{\}UE> !2qg4`vT_f=f?/,"$3FqQEM~1 Ho4$_:XD< `%|#0G|D`y%2Egfa,"o+vPD_[gXD^OƯiǑgmfL,`K8=`n'_WD,"oU_e!k)gx҉("&FqaqO`("!0Rz%uB}D>-!<3 oP,"rieYX `gF7WD_or`("o^L>A()A,VK$aod !|D`y%9|D<_.m[ƞCn"U}y>Bl("_0 Ӎ\JFU_QE^O}v+Ÿ+uHDjyMU0˅+s ,WDD,zR Gnv{WOD`א NS}zfp8xzAD`@yY1W ?ѶxL("T_.ɽkEDy\=; 4].w]}("P߬e7_/}GF)>;," + ;4("'wa(A/r>_/=`"RgP,Ry,{\h{R rtHDFQ|eo.\nW]@wț/,tf0_WDDygh80p("'w0eahbi".,zAz_.," +;|>Beb*WT_QE^o$?gW\C_vo{^K)@})>+" [0yOSﺮx4/|B`KGIX=)"K8dOR.K :G֯("wYfAX䕠0!,vbizHD`/gfl6>~XM0 #. vEGq I?/#HTsQ+":`7oZqx_+" [o3{Eye(ٓz"<޷Bsr(AX7\_#R'~+pK?K=>vg<@}1I3ԟwMzgQED.#P_Ưb_QE`Y7o\JI+rWOD`_nM7ӯzJX8>3G$^1~4 3Yt"&|#'iK'" 2^8`("oUB7G8\>:|("o4M0, ?,z}")>o6l%{2Ͼz"+lHo_QEުf!x\.Dwж-G_QE^zEnY=x]("t ,sz_QEޤ@%GbV!|: gQEϴ~a`q}+/,E0px]ff_y8{_ylRSIWuyYYb XD`y"[?Fhv~DI7r[Jrg(\қelfnU>.b.(\Kߗ ,*|IzY=bZXJ'K7 *n~)ry_yfj= `DDS_4,UeYln3r{|0bs})%9GO"93 amWbWD`y ڌ#c_L'8Ɨ3'nG)*GF"s (D<'(RPMesjH/O ;," < <〇a8N<)&nj=g(R>҈R0tY$RJT3`,4GQ.]Es0EiQ`e au?,FcvxX_=(o9@hQ>Cۘ]S:nv&Lpw-t)>L_"so&yb^J#!?'9+AZԇshY0yQC%d8Li寎gR:z2~NӺVED`$.i&<SNQ΀tdGd8qpv}#Tu]k N%N͌+"֟ED'`Əm 1gGr#YE)#cq>186M+ j!II lΓ7\X~3)ַ~#8|Ƽ.˂"(+I{8gaqtQߍ}0?,kKuM8Y6bF)D׷{ VptG }wQyN`&2WXT_Js8W~G+Ci-S[fTg8LӔ&r)ibzyyR4eXD`yjZ'Ss!i6dV-,KrAqt3t=#r-ORED`.B4\F |:y @07 (IBXg,Fg2E*1yL=0r8_!jv2%Lb\R~,0Vr`v3cEo8u q+ ,efu])%h6kH̶-" |R?0+ȴ b9kKPo^וh~*Qy}e!hXD`2*nn& :ԙwD1f*pu%4٪REDŷGYU"骬HG9G~_şL&/9XDeY'rqa`f_pu=N9C^HoF4g&, ='K)As遺4#Wrwʈx0@yOhEDO-30=0#mcSUF9t wQbTr!QSPK'HBe4Ces68iN0?KHVpܟHe()d8yh꺮Á1 6(q)aiu8W O1hbQ峀d9PeY6 I]d~ >8JB)e'gt:9kEDOA62s=χ$#K)Zg12Mxh0 bEPߦL]k (ɺe h۶T۶_~x<֥dIrȥR Mb.#] WFzԞ#Q p5tY.ec?8Qda &1iJE'=&cQdz1%VEDVE8 ۷˅>1w!4)u][_JKDy0L"uL՝1gLx]׾y|V z:Z<⌙F)e3,nIe$*hJSE; Nu-1R$Np)gm 6j\;i4خ,Hbf+1ԜY,ΪR*h0N͕n7 CJo.K۶9Yˊ("OJjUHg~+4q,J|vaH9;Q4Eg ]ywE`'`q@^oo7Ni:r=< C]+?*ίAw7WQEQ#lOEq7\z4Ͳ,DQ"]FGyg#K:C" pB(^4k1^%z]-dxGj%N]܎FRXvʱe:ꔈ("M}yNp7kXd 1,m{:3I]Pt83BD`ga(OdSlcB0ȗ"]am얰,ԇ#w%Xpr88OsuߦX,!{iz!kE.Ǒ%t:}0'_J]aQE~"=rJ_ v0m|Jv]BG}c˭]QE~ Q"x۴Aq̮fAwSs]q3Ęj,{8u2Ó"ng 䍸$UTuIvxjS iX'rd7Ӽ^}߫" ȯbqif)POA0jn+]ES땧," ȯp9J\P@^G4y1/.=QE~[r0C93PM&by^o֫2;("?:,dyFUk$8 C)<;9DxQQE~&Xn]my|eTm vas^©۟Cq(J) Eo6qw]۶0$yD` ?I7yj G^ގ>xǦin+ZD`n E}Ǜ< ^צi?˲pa]W~j]ibrKDy%w fB?ۣܶ-W>3˲L4Mm۶m{>͈QE=`>Yn{X4J{|p&0\Ojo Y": :?/]^d&>^4 4 ]`߅S58Uu]s/ f 0h}@F4%5n,c=Rʲ,o Eru]ױ@ơjQ{I` Z+ ʴQn#:㣾imK'ŭN8oYDD,]SWryG?̷I|0b2X< NzXDr0אjCK|1dh }u]0F("TPziSpg(_K)YWED^;}Md> LŤpRo$("ln Z|$^z{f[QE^SIDATVENԜQF*ÿ5 }w8]p9QE^#/Bks=`Sb|C(n<$!L>77ͺVTO6SΒt)ж -DNPfHٹo<\n%Ic;QE~RH ',мu;<kR("?1K8g)қyאD`hp}'aX)-y#RWJUk)G$|doT7>}~!R2[-x Iޱt(AApQq"w-쬫;ݤϦuA>Ջ6Et"ߥqrl52uϩE+, 3x\z{_$E`s˲RԌ[I9m1J_+WD.Mf I$$yR]r{'Ǿ~0g:BiMk͡QE~߉k%}B\uZuDD_-#8r](gs{}nQE};^m}Φo}()i!("JtU(t} MA{7#" ȿ8Im|ɣ2gsvod"Q_#YaQE(!>z\yЫr6RD`Qq(6O̎8]~M|άlX5 ^%O/˲+"m4M ~G("SPMd}||ޝ7iZEy:`XD% <`^fCmnkZ" ț4x[Q$\ZeYyS|_X5w]91Xg aIŢ`~G("?RV-P\Ee<#B0w ":`pu}ղ,S] PA}!W`=`s("'ǀ`d8ωJIY~Ո̩mK,v &atً Ii8Nt(%yGE`_j]ZQvG qwMq=/-aWٓNVX" H"ǺHlв }ϦoҾ'7%j;Nyh|\b1R u]4zjah\n1a(~Eo|8+DOԶ-MSVi2eRyǑ)3Rd* EwX-y3b48IT:F:!Dkp8o7κ;zw[Ӊ\@*!iE`k{S58Z =<0Nty.:, Xkvy(8(L un7oG`Xg~Oo , fr"]B׃W/&;@^QE~:dPP>hpJ&$UnPygXDE+SRv@%g~R믿fi]ޏx}FD`wm}KV42HH 'kFne3W,}F#Wn("cr q|#`NJ`|n~" ȯ`48F2 Bev#4" ;{%6#l"1jFkx'%>E`߯(L2{G#%>ǯt9p안,[_JX z*2{efmኁNX)4`4\5H8S`zՔӮ7O3Sߪ,[og r$N`Gim~+>S*_#M[" $sXb6;Ϡ| ؐR +WuzXk0N1 ;Y_^w9TuHDyobaS"#e}iD_+*֨xKuWX|E`5U"mg2O\J'֯,&x2t<SHx]:[~gLpuys("e)I1hZq䇿̘qĘu{ʘ|?;bK fw]u8}x^Y%3ԕR_ W)n ltGwE`D|8e:90 #ZY/:󕠻s("O}->("+~g<Ϩײ,$; ieoǑ0柉mDn,]yX鈦m,KBΕR8y\~U!)>g$%ɶmAXv` }v;MSى~No~/66dYUE`w3t<:\f)+^&1w|ml]W)>g#Xݘ`4xDAe9NVHu'o/_L3WU4JDy|8f /5r;ek0U߇Uu$%𓼑#D`D,. M4Y]..8E0'd]n 0>nԟRDQEޓ ڌ 2O)JO;+*Dqq/c,ȝ`0O 1xi B%.XG`z\dJ_.n("Tz"l"7  g0q9f("3]}т,K*cC)$ȷh!_Z`˃_X}(Y|7Es.W_үr+u݂("Um-?l:3~@p^vi6S΁& q۶1%hWD >8CΥ?)=N da1Ʒ6ͱ?*40or?곃Xv" m懙np:HXa>h&[)>8qfpH("g*]^>f-) 34ub$PbB˺kYD>),I{lH2%R'Y~K?X=:Nf,5&n۶X^r7_~LZ1(k3Q."ux_=)|pR:FSE; )*lKE3HOtt:Ul,)|fi6Xv; m4; C8OA_:q|yya&y./qID`gts\${>F2YRv]7Mr;f*29ٓIy\D`K)MӔR~Z42<#[nZ dv;8D;'N4}\(;g)[Lq8^a," ;`1ҋ6MC81VQOzДY=b*$P!|F dPzZ4DeIG@ֹ ?=I)[QE>ЙR aQvy{nR˗/ "" g;;MڶmqL:90\YB}RquUE`OJj8m2u`s<&Y:7cںux_XDJu8z#Jdҋ:o6$?("ƛ2,K۶w7}I"##H~ D>6KeMӗ h/ɔ|&&m%FotN#,"pEo&?]qQE_p}832tEcU_XD~L^՟Np|pQE5rۻl߃DD:cCKG|pdX+Oz,"","","","",""("""("""("""("""(""" (""" (""" (""" (""" ,""" ,""" ,""" ,"""54鱺IENDB`vision-0.19.1/test/assets/fakedata/imagefolder/b/b2.png000066400000000000000000000214441466211133600226520ustar00rootroot00000000000000PNG  IHDRFr pHYs  tIME . GFiTXtCommentCreated with GIMPd.e IDATxzbG-,*/q\/h#q4Sr^X /` ` `     @0 @0 @0`@0`@ ` `     0 @0 @0`@6x \z0<"zÀGDz\.bQ+ 3oEoM^חa `SBwis0 2 X,iaZ-˾00C=t:MӔqDŽb a7+q'skmiR W YNCx\n6b\.aw*>~W_ri |>Ox<㱵Z^^^VUҷ'9 X,],D_ת[kt:Dgtu[uppTAhyD΃onXp^+Pנּ\Kjߤo} T0 a 8g|S0R>Y1M p-)k 8a 8ðZw/a}uw%AUvo]ϐuWR}6  P'S¸ 8{0g\1\,Z KJ0 a 8A{WVQ]՜|Y`gop5^?OA ̣*_ _ї}P^ @ PÇڲJ*`FO v+|:0L0UЯ6g0 0:[t zn,kU9kC}GժJ:1u0 87p|^OS}/0 ;+?~~cy@sV]8tAU5xo\#'#6S U :z/pUA3js@׻u7M *`ʜ*?-WAL ,0JڷrZy y*qw(xUe0`` 8A[]n3c `-+qk6 ` a65^7(3p)y@-4M9 ܟNV1 bs_ Don=w; M SEpnb}jUUoF%;\n9W4pUI ` nf0 U׃< `M8H\. 0U,DWV՛ vE P&}㙿Q_@lo]DXH// anʄq@Rz@ R* UDz `H9I\0gЀ3Qah `3}+wk:A;j>%;irCns=ޥ82_j ~W뗝>bw*|Bf8J5Ut`^a$/ aMsV{5]Ѐ>TD `q}[7 &z s6uկ3gG0 a &?g8+ `/ aҶ!'jr0*[wjߺ3 awup>% 3~Qeq?*Ur@ a"8xp?+/'z8jZ.9}$ |u:qT0 u KԾө.( ?E0̠///up>Y$,/ r7닮Ծ.0Yfr-RWk a650g]YN[ :d0[j'8[upW,>קG`gqWz>mǷoT+}0Ve *$@lp_w+? ~ r,>q g߷ު/Đ/nyUoy[1 >UaYoo8 /H) `lpUIǻ. ,/WЭt:+?甿jf.A'kva[w2_X,YxL1\]-Aqc7qt"`0 awUe0`<pݵt:}vgqv]V}k4Mp8Tq,},|8BY Okt( eddb51__97ֲڜ*xJjuƷctX-简mT+PfIJ'Ԝm2Jf79ZUr*|>Sd  O_=~aR vq___r݄hԡTHDx6@V2uvJM +jº\.i?ζnpDoNzMlhdsUmB7|H=Ib3#oјJ\)CA֢[krv)6ɝdMVXWUpep]v*bw]7p)ժz0`x dp?92kDZuPukB7o b1c_l^vG?E#|>WBf/k!kj*mmUq8_nTuGp zx<"`x ݻul6vl^__unn ߊz⵾0d$H=ߥ 0zg`xLf:SCo)Ua}#7`jcWU>r737ꯁ~!u1CB0̓TV uUp߇Mov_Hjև*`x 8C-ݺqǟA55U's>,PT KAܨ]Hܦ-Jv0`x ?V?f6֟TSg&VE+`xƫԗt>3 'ٖ>DMPAsp&r}ֲ윐{|UwXq'dV5 ] OsZp<2j7onLg ݾ~lwpA]vTrLJaӀ_ĪkjoyVzp ZY|^h?VOW-j9!W1V+ϵt:t]QqθXA?Zu`Su`-G?ςt:ZV88&-Ag~t]./GSݮ(SJ TW+VXͻaϭo ;χ!yTyl0<2/nk>,kg3n8za 3 Q'hm_Ajc{n5:[t W'ϪMG]?&XT}XMȃG0SWUlɔsxSf毀S tL> PrP^,94 ÃoH0̖UY.˺bt x<ziT^pvnߟN~H8V? [Uwsq(w]p7lj)Рg:+w6?/>:w^'}W0| W?ޫVWNzNf8> 6O{Unj qqnI_e q_~{^Q ̾o*qke{{'9ϞvnS}*`A:w^wUs~mT𙣷? A.*~rw<'ۭTi?co-Nvfp{=JnGTic}oZ.,A/o@-UQnVUMs}NsmԾu` xzD~M+uux\_ a0V2Ns5^*,}A V?lW02]եuBj\[ >ju+]wk7?~4%k߫9Oo,ߙ[ɛ6MO\s%Qj߼B1Ϲv0MXJg9"j_W W윞**p.|{{&~e;->/ZgeߪϙQ7͕G}3*~. 3Kson>oV*gr7m ðZy8w9ڴcە /ץ Iߚ:K} _N&۹*#5$?o~S9W:w>k _~ Z|NAL8ҷUSán!LUo߾ _΃yg#rt7B.,bj٤*ېDyŢ~u8 Y4vv{89שU=snvwٓspr+r(+ϩ}/`rpՄ\Ե>Iy>WUIMTgp8dՏ?{:*WUzk/`\˿.cHr.lhzw'3#m * t6]>8ݤK7)) k7]O$}s(g5^/]]V)LsBe38Ü/ȯr:rc&InED`]Ddo2N*"pr<O L&٬*",p8!ͷd2Nggڶ=No,##r{8~x&A :ͦi۶m. t۶|VD`xDwaqaD_ po۶]}X,Z"|\xvnvnQ֋tu(rw໾" t"ݻwfvݢx䀧 d!|.aWQEi"gr0za//)J]t۶ٌ2Bq۶@,"Mmҗ3ҋnq)覼Vcav=ŮUE`?7az^7 ҋK/\kwhv>S M{]I" x8aX׻%d2k314pvdݢ'QEtK80 _~%**vX;̏b8N0#7<Ϗǣ" ȟvl^ m}bASb^+dq͹inu]E.("MaDgjr\v]G:"Z|>'KE4elV,M,Avta#yrZq"DD iHm^,|J2طCDo&MRxtWSu KZ*:n >٬VYw]R(XC6͙nG/=뺧/_`TA?lg'I*Fj2` ,G_ Q?:1zzz" u] ~bA310$mgLxlV,|~i%Ll6뺎h]#?6,k6'Θ rhXCpJn#P4t:;V+h Fm|6? M':sqšjBAi@5R CQ,07 &+2\JX 0z0cR- \9`G3E~ Vŭ"gJʸmRu= a*Yې,/p$35[QE>uY8#'=H:N!~umQe$\w%QŴX?3YXF=MUS*!Ui?K3q`42C- Bsn>b_o/&ȧx- AbO<#2yX> So{:,Xs_V,Kn:-\}-)/.).;+"OQ_+Lpj?}1L{~t#S-"܁д!hXSA#,)]FY5HmJ85ϱ|ȟ!h#/uΔ=g$[W[= P;RD,/_J3ҋn>_%\i=;RD,9/ױ` opES}ME>z〣YPG_]K}_1uίs"[ P_+c7np&}Et"?3vc•vE>dB/gLM/Z]" $W*8`1~{aXq?("P} R(t:%\kR|u("lh ;I&|;MQ]eXDTyn6I9758ຑA"VAT>zF >_eϸ~/eX p70 0`]s:%HjEt"F1#m[0EXޢ$bdX#&o0|cQ>4^xq r("X}>JR4 m[ekS[EW+'cZ>ğc  nڏ{1m,Qpv- "fZ|36jy`XC_gn$ܫ~۫nQh?so]>8vf5|WN/|m>5,GYK?RfO2|%1v#Z "_b|KnCQ_(*h! f9[)`;8|K37- @c5|L$<)0ddZp823|;l8IV-":`$>I)ՊM7Ř|0gn[fO(t:e3&9\a:`XCrfdL~NMrai@QE>0MY>H̓vHr-:`X_OyWotkpV50ړ`Xèo}5 0 $19LŠE|zL2*9w}"̱fR2-H I'̛8߳)Oa$o۶NhJZD`Džpp8`/x_~Wd1M0sZmQEd sWΌd/$n/@&rn("I}Q\jLb+?v/BHrsN LwVD|.a[7@VT=_lFmQE>3" AIpnW3=H6 M$("tU\N&W{>p O " ȣ_ $L-˯rJ6\H&E`〩|f'd뺾S[ 8_ c}[E`GWߋXYv]|g J9fw>IXNQE,ݎp f{n_: HжmSFCQE כ3љ{-GN=KY}!| sJ13wu&`tAkE`GL/ʼn?e2"wGAy4} YϠ("ɪM >w)))BAQE>)^$YRg_E8&|yyd.WDߍ%B|ƚ:RDyhJRlInbN=c7RN:_-QETmf 2ܜxp3H]pќ'WgGb9"QEZ3#M Hwl9y y4t"a(".ѳq 7MC3Y{/U㬐 ƲT+| M~OM{}+j6ϵ)C" R*H]-Nvx;ʱ j+D``8WHr:yIk٫L"~"H}k",R2FA"-QEXÁ wL+os9Ccp" ȃ ps!,h3C YeX" pʯf!4G*$(+Y l,8h. H54rc.ijsbX0y_Jr{t+CzkOUJߌ6,<740g.g ed Rs$.("Ev eG>79=4"Eﲈ,8=w1qt"嶮\X" /njfE7ez)dgXAuSӄL+p]pw\_QEN'6RQx_;=SB.5VDQETSi*`):k>jpǑ 94TˮQEZ-(cSh4=y/x9dD` H᩟fc48ű i$MYt8vn#͜Zk2c9E~xXԳ&X`!§ө[{(.WaG 0*84vnz4@7urxc țlΙ`DN.35MM){$p8",]." H{m6_n6i:,|\.jJ:|l9|@4|>Oay-m,r7Y):`t1A9;U2NB)aozn DGlu]7#@Dض)&`]}ρ:ZDnΥX z\k)Ƒ&,=M-J?#2^7 [ivǾ_GuM?[9c3OWr> !iܴEnǑOӌ[{~5:`-̯pSܜǕQ\[pl6q(y4)ub(SW֠~%ūa9% i8L&~2$+={zzbq82iI$TZuնmuUԷ.m}& 3bV "cMۅkp^:R!"۔ s4jһ][j- 3_OkViSk=b5͆aL.t kR/|^U$3DdҜkt܄<#lz5}o\uIY9P3/狉'Onל+H u~frGȒi y&$Λ2R;x}U" |ܔd'J*gan|v;$ d_]rYMќnve fu0 ]:kV g$Gv˱OgQEC# :" FWn+[ ^^^^88ѷGj(qv"5MBzѰ N6'ORp >o6N36ϟN'|SkD` a{upeҨ`?(F)hE[N+T_h7 _viXjJV{>cqØq#oIɧ` ?I;`O5QE~Dy&Rh0ZDJ0 Qۅ*Έe|)s*cmۦI)C6un+0Se0˝< Ɨx>'_(&б~t?u' ! EtI_eV&n ;"C%@]}cBラZ,%doO> DYoFg\M+D`bT۶hH8}OI>8}}-}A$3J4Feq^svXl6^aϰtJQ4v˼q儁NaT6z\5sKDpِxj\.~" |f NgjͪƱaFǷ. }- k*RqQ]S|w#rM'8u.o۶fF}9ohR>+yYxBpuFLaixd`z~~~^Ts ;/KgQEމD_D}F l$kuV 1)E/e4~JKV+5\kȋ *zl}T{_%.0N'|/^= ] i>F$K7c ǟ* }8Kʙf}O 675҄yXNb@}ԭf_1z (&kxj4,-n@Yͷ91)m)aA/_D'}kNoz5jO4~3%^/bEo LnjCs!ѾҰ,HRSGԈGpɉS|Xn$L,fc'EI?1Y>){ [{jpzʼeEA^T,#ٌXiXГ234:G>==뗗+QE_ -0v;U& Hlub~/2xkykVZEiۖ2j#/ѬWsp4)Y\ds] ӕTۓ7z7V̉("7!_4l^បwB)9d]G5]׺UCYks-~~όi^ɋD˛2yb!uCCW`G7$< k2vE1٪9MSNnʤ[pba:)"s ,@0m90UdpksԗM|&3ný6&l專,&2gJo&&@Io6_Ofq1Nq޹0,~\wf|?UI&}4v;7 lƘr΀N~Fs&!ff,$ lD&,.^vZ{3 o쪏x)N9v03Q"ې#t`1dl6n}аn6RcpD_fsU-fӅ3 " {`c\.䍴2::*^e:b7 0=ed,rf,3h>䉙ǔWB<Ǐ.5DS})HKQE$3 BXax~~{B1l\ɬF./˴֥~og}\#8D`{0%i:J3 i&ݜV*mKs{ګ\ޗ')9Cdi`Xˈ ij03t:cmE2g*ޗ̓w꫙|;ȑlM2gWDgAp`CCXmٌo{Z[e bڗ_^^2mcAgXn9TqɧRf|۶/LQ\{|oDȳN̯l#VE`;(.}N'LtJwSiQ== 9}\~]("Y1.1pw)N,{uƎs#ӷ^D'QD2X͆*#,b:1ͩ7W+.?}QE5Ȓ"]T O&d0F3豶wH}@^L ˛KU}?("p8,Dql6NSBiڶ% y0hx8yj,(/2f%:#؍[Ս~˪vWUa u " Ñd0!\jvM0v F6ʚnV+9;zF(,! cQE eE6 G1UNb"4qt]4fW >ci=JG" Ck0M&|Jj)ΪʷP@DKMoOOOYiX>-fd4͑Hr]:ŵe$fnk7Tw]>`WD, u1Cj^ғ{ /iimjE%6)~6,y8ؾ@W7MCU|dڣjhs:˫Tbvz`ԗe/`_p":`ǒlBqj/F͹V+mH2?8uFv\˚_Dʦ;9Q_0kYDy,p ; ׯ_aʞrٜWP_)*Ҍ{u_$ 4W?("zkQ1Knu2r9h!Jifɰ 7xLx|P Ic_kD`GH/1g\fx<2mۗSfSdf^g^td-!("Ll~#w91d`•vK DDOH*J;DR;N @,f].w@}39s vF})uXł5pt:呑DCَ@rv ֢%^X.J9oM~-Ps]_2Ӧ2^הPQ< 8lP1Lge8:fOgX7hzmꧪ +9=w~mJBl+"\Fxq93ڶ>3oj9[~zz믿Hv蕈,;MY,FenSǒFA1,B/Jn~ksQ9g!:n59v$OV_ ("oaTH-Mm5 iRn- &-ܜxn3`;Y$)ΕAp:g" țԗ(J/ ZGM#Inj}j*2$t4 nq\ +\8<3r !OUWY &" /WMbSj8 Z5ޒ"_] KV)hp8}MuW_lj+\|pѰKCN-ª5LD!t2ZKŬ}Sͷ \8F'`֍""2]2gG)eU}g.uTۋy^}WDVrUan$ȪUscu3XDDcc"JDDDQEDDDQEDDDQEDDDQEDDDQEDD`QEDD`QEDD`QEDD`QEDD`XDDD`XDDD`XDDD`XDDD`XDDDXDDDXDDDXDDDXDDDQEDDDQEDDDQEDDDQEDDDQEDD`QEDD`QEDD`QEDD`QEDD`XDDD`XDDD`XDDD`XDDD`XDDDXDDDXDDDXDDDXDDDQEDDDQEDDDQEDDDQEDDDQEDD`_XDDDXDDDXDDCqB\3DIENDB`vision-0.19.1/test/assets/fakedata/imagefolder/b/b4.png000066400000000000000000000463521466211133600226610ustar00rootroot00000000000000PNG  IHDRFr pHYs  tIME .!aiTXtCommentCreated with GIMPd.e IDATxYwݒDC ݯ{d *~ؗcAeYZ2eGEt*"""̽""" ,""" ,""" ,""" ,""" ,"","","","",""("""("""\!K/t:Nr6壈("GDB}l6SE`y3pq|Xfb3^:XD~^zx<t:MēXr\,p8,K5XD~8ixD#_C͹ib4M۶mۦ(m9ZDqii`Ǩ/&4Mu]ٮJ)" ||p@}dxߣ =ϻ[. mۖ,,"2a@}av04;M|>?^vmq䜘I z\z,bpw4Mvi sg4Mi^,}H/ϧ)ZD`ٌiiZ,< QE? vl[}9eVRJxgQ~G8=Yu("wd齢ӧOT}K)վy|||xx@}y>ӊE4M`Jv8,+TE`;RWt}}KF(q3ǽ8QCJtcQVE`%Xպ9Oo><<}I[xXp^;dp)%TJ!ڿ#X`4HcjBtzfPrv-ܠœu+!ԙW7`:hFTs l;,r#GBk!Kj~j0XY&~N }?MO3y&XD5]&}ILg2sG]*Nv'z}rdLpXVl0L2%6RDn˔O[|'3i:WԟOO;ts$o:9 QEnA1(67 }ӄ=5JGw]^9 &6 [ kE`+{/(1AT^9 NsFnMf۶iW$("W/);????==+Rs&iMp48X "#i2)iF_%" GwYf_j0列ft>g:^FN^V`AF40W)\ Ixzz*z\qK!:Ab|d0=bp7M3&XDn ~9 \Ji ƪ}O3G4d M8:sPzд`!\1iafA޺ [5C3yp2/i$Js9D`k5aD3*|0Ȱ| >NM{4a00睙`MU܂4bh hw;1Ѭĝ`$"ED2 c)}9נ M3niHfd=|p,A|}M Ym`Zş z Β%@Cey<ɐ0 12%":`&)"!>N˦,T>C O7Va \ Y>*t/z *mDpݚ4Md_GX@8LP̀ U=٬f΀`E^#I" 8s3-j#I" 8`꽉݈#wP߼0Qir9ꗷ\\Df8`)Oѓ\ןᨕ?hlIDjf+|PsFw)fp8p,~/X0*t^n[.l*d("Tn6 %f4der^^=Ip^!YẂq6C0("3ٌCl4M)%W s L7Ӎ "- `)Nn'߿ |<D!: w/~vc("#f0dW9h8M Ð5pr9-|\LEn)Ӑ&8(Gۅqip(""'K)xʘ`ڲ"?n;v4KDXE4эX,hšΤ+X΢/,-r[_fxr۶-Tr7P$O'z ϩBmG,Q7u|KgV2nX_8[}4M弦pba0׿tX"fX05[ `nR9g"X` N'E`?/H K>B#F i`b5_q!D`{'Wl=WPʄ% NH&SI"Mr&9D`?<Á. aOrW~W^D#W^Jvz4/K!^)!" e}qӁ'emfoyI+dcъU;$1'$O+g1`cbT1,b1M0MևܦL0MdCf$β-F}3}I04Mu`RC`Ƃ8e(G-7L% Ne#H [P7llI ,Ng[\;iB՘-&SmۮV~^ iȧ4" oft' "fYTGQ~7UwD?<<`y"#9YuUЎM'B I<hu" BT'HNb Mk|UH`Ɉs)ؘפ QERu-ѕJQ*qZa(cYȁG$\%xA \wc]3I@e)Jq-Sj3#NIn#s&zW/5xOVEoI)a Vg>˻NZܰ?H"  @f$^yXb0ڈN uw("?cnl~ ; 4MmۖRO1ķׅD م̱7'IȺMP" S_L8ӧOyp*o)oo1憃lA:YQE~eͦp)ix:#}pnE)j<#b37XI("?@ $L#O04ǟxxD:g4MfO>Q9MX)A#$tdO=v׿/Ά5D wbE}'3`ެgXW58݈9>8^Vn > }9X#-W9!1RMm[i:aX'X0hIyZ}0  t]vB}}9_Ea6[#ou]6?("?t+1Pw CaN_4 e@Gn/b;߿r>~V2>搛;az`0?c`X@Ee]ב4IU۶@|-B5¹lu=#eX"tȯ5X~_Js0mOӔZt*ҙ8Z.,XVgnYD%1bu]}o[ڬ'Pj~||DڶE\.޺X`^Z8INsd8fj`~^kQ^SlX䵤}B:8&hŢfZJ)MӼ,_K+x6kCur c>[J'"P✕m_1vuvESze/uODk/X䍩71IpA.ˇڶ%d" #òT۟]bVDyW6گ[N3u]cLmTMrvm>==UE`Z7B\.dc!7wB45燇z6?D:,܈G2T>҇R7-|<OX4OMӔRqdD8DWV`XFLpJF/Q(_ϯqK)IJ4\.a@z3T,rSe ܖ>f%nnfC 7ߝ,r7=iʧ24ڃ 5cH!fD:43mD,r2F_QZQ?Gl ^鈞fWBc= QEXzk-65B?ݙLm9!\$dU4MSv*IDb[{SE0]Q=hmۮV^8L8fKR۶!Y("1'? N *~%*װ?C(G:ݧ9-\N $0 (ւʂ0|q XMx4ge2x.K/ Y_,rM-sF)45>iizxxyUn6v;)}/." uo)%ӷt<)cӓmeuy1diZ,UMӰ0("W0Hx\JG4}qi"+F|GjXhXj7Bho4`Rqv3*` IDAT??m&+n37X]o}D ߙIygoy۶9~:〩W'2>B,r\JU7:wp۶%kG*҇Á~O.G|pr9{D`j#a:œB`8`NF#ƬKʶ |hwiI:r<:v#G6VmlsC@!zӐŚ~E`탑`CG9^.i*2ߗB]I]j|:a #cHE`b*Bԕs<B)>]gr@@faOC}sT,A7YN t{c?)&c%aL%A,|PNF}clbS'&I0w 8v2,|8.C4dN'`3\#C JF4&8PFw]۶:[QE> yV/!- z >ODCVy͌$1`:`XH{bt )m Q:K Ftqd]3h " Gazb V s ~|zǑ[T[8cjѼb!ZD $ o%L,iY`Y]0H^#)" Gcoگ1pm RIx}GxJ2$/QEF:RU3}4$#B.4Mae" ȟp)M#~T9'E+O!K{Ǐk~fD("R} z5=Tz\ШlJ!e$IA7g wlX䒺 bv3\?Pˠ/=8V+΀#im/.,UZUn*$PiHG8 sK0o[F8 KDc=Ab3S ي,({^a68c8`ϲKDz aCӊyaGbH͆*[D`7GKup3{qҺ"xI8mD#Ë3؈|^R+>|QL0coN|멤(ARJUh72֜9vXp*I.HRmsS[+rƿePp8 q93w*p)бwr0.+rE6}.:iэ MT͉[а8ોfM$FS`,xZ}ߟn,5Xa ZVj7.rnoξ4gq\dj*' [J!aq&XDI e䷮BkJ)JUHYwf@U ɔ@!w M+V &" kye93Kw ٥urZ4`Xo52#/r)a"v ^V|rqr("?Qyq0m&jj7#T!XsL2%n8D("ߗޘZG\>f.[jD31pƂth>$V,X\+qv"s3_yNt,o=tKȵ ND% @0&PX'շ&BYs[v~KzM4a}^\ t7&y$XUԎj6ֺ[_*uՍmg&\g@wKQE^14ae Rmp/xT%sŖ$*҉4KDUx\p°jmN2T58ɔT酦zݟLlXr aT63CEAHVT> `X[{0Y;#( WdkP61\u҄`Cfkl2,-bv!0A:YpݕIU۶8GY̐c`D`/SOe@ ˜ҫEvz) ;C1)u" ȫp]8Z oV s#[f`M,]I4Ժ.n, 1KJK*V8_؟.X8RgR.&߶&%N8%:I:`X *BIC9\JI"t mܩdS" 7Rs$[#ݍvM?#Iu/4 `L" 09)"Dž$9 u} Gm",* I(+30x>gT("fYEz]GNs.t)L'nº/tR:Xn'QE.03s 4\ܷZ߃QDbe^+Y&r("_49`|>3YT{X;ng=0q$%XXx逳]"j)O]%#=k0#Iy9X 8{<B\ ]#e;!Ȱ" pfU/:gYJg ݍc ޥ> <0IND.]ZjH3=J ѿw<׍4Ye&^:2J4MuUK2vy׃bۗz9RK- SIɨXT An̡od+#?I+h/WE`N\?#ɬ|Dl2w}?Bc8 =QEÕ*=#Higӱ{'1X_p.˨ov".fQEJ\Z :7{uU ]`o8#ѹe9tA!|R0j"MGTRCIp۶J ("_rUyL%Ԣ{W1X\'r&ru0ˑD`d3ڐ }> NG9߭ &#| òKDe/*tBX4ʤ@sx݊JaX fxXD)'#$eԗjFW!{v ߸Ȥ,bPD̽mY~NqOSzmFw}Pw-0hD`r[mD\Y7aEjBN3ܕsF" ܻ7 rK'~GJbse˘I$dՄ" ?saQg"yw/܄sA}u" ?;tDtARhr狋UQ wyD`k\^Pe7M%r;eQJar9ȚBM,N 4WNyS&gҊu}X" W%9s2x&E}L°Re9R\ |F]&zh&&ZK)_lePEފ@nсrYSH9HXaDD,SsQ{ K8 .h,runybOdz"u_UhX]q/oZ8kc9Vk 澄`./m(,_B+O!2y>u4" ;?INU]|^nױbq:`Xv>Os)Eat9_:),M%_mQpR'|AG} p-I>,Xtip љa05ոa/ڶayXI,wuF ֧&P~&[!=K)9,wR{RE@9jKRN.GW 8ot"Qr)TQaXI7UM"t42^(r8Z[*2'~* 'rq/z+#Kr5^:zU0g1vo:`΀q8VM,=: xʼ4aRȔ(@Oi]8Wu(r>=hF,9ImlV`pzCHN"(r8)QGp5>ؓe+,y)53 ^4XuP$gpʹDuw}nt4JXD;r>}2 {md wsy3H"oېoGw`H@w({ םI/IIbO`܅q T>ng&k sA?yx?^EyGگ^,'Ev+/5>/WLDqviannU&p&!zIDdBw#0p .aE?zsrJC]r4u0fn8`ǖ#B&8IX9bCRE`Mq7f!O4N$MB~B}\xD`M_o/bE0rKbe|O9ytAJ5","?@@^43` iLu8`~u\XD,7{qxIқgT\r>VD8`>Etrzs=xxgj\_PFvԢcH~|4M:7ՙ_qqh$Vzpq4?E5;.iB=<XD,U xk+||#of1^^ܬ'K?5=JU~BM{q:ˍ0+4MHS.jOpnkfh߫" ܅ 7gRNipR}<͕;,]r\,]ץB^R 0rhԥK%" ݶm4]-˾уg70&^EGow)+7C,w9NF6+,ipPGAk:_zWLDe̞m\.1#N9 C9eR{x1 ZD`qL sd3%@=B]?ņ mr(rG2\.۶ETMqd3 Rr,.zERvL4&+!Wb`9}X%N+V(DcK)ѥ?/L]8`EtrGdf>VieVT ՗۝l!#Mr7EQ~^b}uxR s'շx,`MDsk 3<0 8n/&j5\._vZe#!˦`XKs \n7c9gUj_t]L"Q|qNܽh" ͏9XΑd97_L0њ4~\љ3g[DFP, NqV|爷ʠW>/MQ\ZNeV ???SV_smqJ9ˑe+,w8E H-(+K)_/h{_ymX<_O"Ezu"Ar.-ҋfAa f*vMǖtJ\gqEtr.TTJqlFlo\z)q(XDsi3Y9i;Z6quVh&+&}_EJ7_peUu[^D4U:`<&l6k{ 7$Bhs{˝:1èB0:^n9K1̓T]?KD;u&vhtBz,o"AD`w\8$8C'Ix~}%waX @ziIxv;dXJڦ:Q.0 _NXJ0lvK-v*qfYssP䧱 ZR%#^.d`u]Ή>jp9zr,wK)ɕ3bAFGvVC~.-+Xӆm3XJ#m[)1^/^/m." ܣj} HIDAT.Uu9 |:8v0`59_qhE~Krn{FzyiVUul N+8MkYD; m}ω/B}VU"af~>OӴnQߌ-ՙR΅zC}$QN j X,GB3L(eb8%h5VķG"Nm-Υ*_ZV|>G3?363M\.w]apv'DE`GK; _5χa(t]FnlԗgLfBw.B.Z3"쏢,(M}?# Y\.q m۴bfn0gO5r↹)(r\.[׈D۶z~xx rt:h,>4a^q {PH/W,5gut" )%/뺾I*Pi&\xL0V{IY/C QMpڕS`u]tAض-Ǚ4]hRк7 Ns29X (r_.ZE62\.6`O5z|l^zr/ay- Md E`; N% V /cE,+"LJB(l6u e^q\:qHz؟FXQXP.69&! ʄ\޼N 3ө4s忮=ADc<-9^mT,\KQQfM~|:x>ofB0,8aEQR |>nL۶ }? C<}ĕ&XD\gfl` ZZ, +L5mYW*K\_.bJϒ,TEzжvvrTl6BF#Ş^ޠ+<CJU/9Ym0Ku8}]S:osvzID``$]41fX,v9YXa<1ui14 _Qte9NN8SGD%^+4M6Xn,#UGglZ+&,~6^0 KDyc+|q*˜`&QJ~_ר/cQt!׷#_X-xk^y]Yr`x&Fس4ch=a0 od@+۶Ma@QE~ v:y$Ak4Izm GsI@i:!y֟E`uRfEi*"E)"zݶ4MHěp61vNQ7/>XX..il6Ԩah& a5 7e8skHCmBQE>uS=+,vauYhضjBZ[Tʋ `?" o'K0E469@0 Nǫ~ĉD@SvEm("Dt1hp|nL.a+9iijmf ӻb^dJ E&S.T鋦:72nH3Bw]w0#~Q}y1ǦN`E`?>ev;vRf|{91X@VׯL'#i+i,!"]h0G20$Y|G2Yu9JsZ8`^0 I:{QE>.}i!fֈr4>8>&QH,:f g.:^/Lt6F,|\" ,]JAPacԥ#4K# )ͯ9H$B$;S|gE`+pÈk27qG4M)b& ,VU>]Ӝe>f0گHMλNWD2F)Qil6qdr2Dp44W'ʣ{N8hp}BSi-mb.Nr7IDaڤ } ,R^ZhSY7.D;$^O3n6M2~UWiYD>iҞ aNZOsp}j[oP#ޛR7_V("WL;rJE1_MiQOE,YQ1[/lEw44l-9!?u,r P'p8t]iZל8G($̓c`R^*(:|2~RD5%R:h&:΢(((((((((I0AO[pvR8^y;o/c_^vο7US^oiMn$+aqz(v$0l#?Wn-?u{E|j0ˍc"ƛ r@,y$RkPθ`[ 2N?Z@H?֊.g{(߉yP6=wrO[Ȍmq>t=ataVRώ_$si4ѣk&Զnݻ1]qdurpqv9##c*H8TT((((((+ |0K;OQ WB@%`G$+Fޟú:[n~~XU9ȧ^oiMn$+aqFF[ GQMe <zuto~Iܚ+Sf6O\Iª ;('$xkɯZy,zGzy且!?Ȩ*:+oG?}۰}fݻ7۱Z9dڗwC8;+OZ4pP0OVxgҊ¢(((_|=5\$FUfsJխ W'5=xt}"La ԩ#9xx$E*qWG" #dl`A\Q_ כW+EQEQEQEQE{gE_θX,lUxJU0t lVI*stWcSC䴿i@؅]8և#gUd$ ȫ:>Ñh*(((+yeqGHLF@#`yUcqW4]ZPdUO*{5/{Q˚+WPH/9 ;y.PQK2@wʰ[3V5,@+qA'WuEQEQEQEQ]Oï/sj;sV` N0IIMԡk:ڧI!?.pJ+WNUo F]J2 kH%I],4n>V4W/Kunc ?u׾ g9,. Ocpkh:QEaz(('GҬ]KИmIeo0瓸cw u^iaֶ4B 0޴V?SFzHQJĤ4 ` RFD"[H$I90qcަg6wHqw>WV QEQEQEQEQEZx?Y˸z}ӹ"PO1' 7uSK"rx?}v4ʖpÄo_j+|I3z$Fo'̬ar ra[=wA=Ҋ=guR}k4,J_+DѮ~QCo8NNx<'(l\)'3ҳ%ќJz7+3ſ?nRzMk_4o jꗗj>rْKp22[ INia\(9ɫT0{8Ğ#<)Myv HӼݧX 4oC}O'Uw?\7iyHYaFqX+P{8 QW;upS1AE`j((((((|f-᰹Tt$pNd@8 `(V'xT`+=]P#>m#߄/%_iyǍ?E)=N QҶ=!;rK.F}9+B=^pќsQZsi 6H̓!avr =L"I#lnE/jQC7^צG?!UК*((+<#z00W;}ztZkFȊpd?zߐ'ukf7mP*zףA];h}k18|י -F?!n#8ҫEQEz1=^ 9;aŽ}O鎛\-t;#qpwHB S䚞u_=tQ@*og?͸7~V|5s6܎]cKFԥ'o(u==r*QEjsLmjrAL3^4 bK`('zW:֧-˳vF:OQEz_u-Moi=GG5?{}U֍mNCkh+qnytKo5bIG[?'/*#aeTql~j+袊[NxkBp vКt6WEWoԆ$k =ֶ> A$WEp= 6QEiv.Cלq뚽LYh_eVa560j(x6-ȿ-rvCYvZDaksp$͍N'J#9Vw͏Mtz7tsq)I($s߿LZ6/wvc^\w5Ϋ6{0ۻ1!tIQEQ]&MGI- ujj ߗ\01]e{ =mM˟@W$p:U0u;\c%s<'?ɸ!w[ո!m~9ZÒ5/MԧA;a8 w|×f}t0B!%?qk8IENDB`vision-0.19.1/test/assets/fakedata/logos/palette_pytorch.png000066400000000000000000000021771466211133600242030ustar00rootroot00000000000000PNG  IHDRddG>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~ tRNS0Ѐ@` Pp'IDATx0J$þӪ (9N)E"H$x8  "8  "d<} C)醝61-N{q|BjiBRx ʜ?8 2VZO'E<QEQEv-ѯ/mƱ I?kgEDl, 09-Ec|8E!l) CI/r\+AͅyU?Ȣ\_aEW|QE67?57vyg= 4m82\xNHs r3?57w gg=ˆ) m#@⼬#mSE,QEQEjsSFmtI\pq^yk˙ 1@#> Dm Z=m~[yX0=a_?A#=7?s}J[9NQuFS5k62!S{I *yWwjRНZ2R#!8^֦,/0IQ [kؽxusאk:֧-n@ĄQ&BX[/ǯO75}?( ( ( (:Mƚ[ՍG8.`b?h{Vۖ.>It/a)Mݫ?#ت EJ 2x@HٖHE#bF@t$.0s:+8Qwz1sVMGWީtnogi . E֒Je'&'vŠ( ((((((((vision-0.19.1/test/assets/fakedata/logos/rgb_pytorch.png000066400000000000000000000010771466211133600233150ustar00rootroot00000000000000PNG  IHDRddIDATxu0 Cَ9:J(3S+b1/1o(,)c1c126Y&B1Ug(SWzS ?1q7WJʪ:1c1c!.FŒIENDB`vision-0.19.1/test/assets/fakedata/logos/rgb_pytorch16.png000066400000000000000000002102761466211133600234670ustar00rootroot00000000000000PNG  IHDRdd@zTXtRaw profile type exifxݚYvE1 }3tw7D&iQ%Y~I9 BCw^G<7ݿ;~j~wD%^^7xLޕn n_/I3x(}9Ku__aW_;qR7S|M '49!}wN}38f~?%%qǁ<O7tO9ϑ=cv3\ i}/c);N\<=U?|wGnR~Fm!fp6SkDXO-w);XliCbڤ7q4~%<KyMdG p,6cNyr9W\iUV]m5ܔλn=O<vgp)o(5KXf݆ϬJdJ'Ϭqiko3C)uʙ(Y%e bfK\ŏ9?9&s/v6'dHmDq3)RhK* ets~mTɶJ 2:Svu1RԔ:f ִ_UXid ~f2#`#>}LyKĽVQmZvB9?­<xWW/xNOZd)ֶ/E}Yi@nwR9ԵPQr:no9vZzmѾm̚Rvt;Nx]itjf z&#.)Y ("o=޾H<[a}bb".pSAXzu௽aL}վ'p5s!(m`s4Tai<F*XG7u{:WZ]#i{l[x:A03--h{qct ZѿUR}/#w xLRTf1$*9J!~b'ӹw,m$j){VȃAit m# F{j;dBsChWP icsVNiW3$:Gp-V*1JCYCޚm;^賺$z`w.[D"UHI p؉ hȬS)\Ww9_ +My&eJetAEx'*%=(\"mn)Й"؆\Qk:ih\Xs Zy{8 or}b';z/,w2)x qP_Lp owf9H_VI$_Z ԾR~ABjc2eC^a9,&5oZb 4(W+@`,y#`_hCj.Z@)rh# B("7^>]%FDggQ3b=/ j!67&I覆W<s1#Hlk`}hϥR@O="5xyO@(qMʧ~w_<(9󮈯9f dG g<~v m l>8-h5#Z) |QP6pca!& >G>&peak+R ru2K zG aoꏻ5(TϏ0u~xJa)=׎8aerC` FN`btVx"x-sG*_z Gz,8<{>:PPxy4;~fKmLh[ d1v!ȧ '?z1!EmLxx@xGP{L͍A),M`E32&R^ ~{TR"Mu?=GݳY/h/ dR^ k@5,># H \D-.U N6y|1vl euS?beWeNڠAv PT[4oew!KSN+%~V,'z!tpIZQ-m aVR2|G[1x#Sh4OQv?7dk&"o;[hP!mypDR0f 14]ZeʺLwذ,X"]NK-{yNt-t:QPGh{r SPe'/@uX#"^$Ǘg f7hx5Lg2&m3ǭa0XăXul*LJd"_"6}m^gU>543z|P#$nGֺFc`CL2yq5UX$#I7/n jQzXN"/)W D TC$jzRpJG.“?'9P{L(᜵sԆ"a$J/CI ڸDn=zJ#PUdW0.msLŎ=MuG]/&R~(8{]ic#g_Z$6.dR&KhiGDKSS xe+ ތ {"=ggſ=w_ϗ`N:Ӂ4p1^) wB:?1@X λԆ7yLD< \{UΆwq+!vS:r˜$=PQ[!t`G)/Ⱥ{^ Vr{".:9?MP(xO#tҠc<fUF:NזEQVy?,=WMņ4_ MYQִ}m13s XDZw_ad$u6-k#A}] čz``20LV?iVw$|QrD50DdmmJ24$R+1v%'p`U!G$J Lrѯ7kd#g)y|$}৘"/jĀ0qNmEɯIllhf@e uKT_jb[=%Օq(n:-]ÑguRہƓ\r]kCfʐc )aNgF(p#sOӔ{6=x  k n)*OL cYRkzb 걫;(f5^׳9NeCšvuAmn%O=bljPL9C&U B[6A^mMo,2[@\J-?2a4ͰR.-BhW5<-1"(R$/wk"ȯ`L+=d|9n+qHdqB2{ ڮƕ r׀HX62re}Ht g鿐7FbQ[^Ba64/jҞZǶD9=N62p#,$|3mii8X$7z@JNM =S(*Ȯѱ4]FɎ%r|zz@4Pq>YLP i ;xPR'züSv ID8TvT@꼶iNO_ĕsˢ'b+(xk}tcQ`g&m0<iCCPICC profilex}=H@_SE)+8dNDE EjVL.& IZpc⬫ ~9)HK -b<8ǻ{wP/346Sɮ]!> (3˘$|=|,s5g1 2ô77m>qex̤ ?r]segFtj8B,XicV45)⨪/d Vv pHYs  tIME 5> IDATx~(@ IDATLL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,, IDATLL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,ؙ IDATLL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,rGM IDATiZLL,,LL,,LL,,LL,,LL,,LL,,a IDATLL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,,LL,, IDATLL,,LL,,LL,,2 IDATCBN\IENDB`vision-0.19.1/test/assets/fakedata/logos/rgbalpha_pytorch.png000066400000000000000000000055251466211133600243250ustar00rootroot00000000000000PNG  IHDRddpT IDATxmT<ޙeubS-.(d )J֦FX6i4Z#FE[/F01Q`c^$jI\cqamR vwv~]}ff>·9׹?D6s (rS!C]M #zd #g w㫘|;snϘ$T:\T%]1|ĝVtҗrȆ|+=e ֜C8E1|%uK Xw0 uGAW9Lt7K\8diQ#̈́՝M {sTiZ\t(RLs,uߙ]UYPsu=Y)JTGa"0&W BDPT4.{E8h\jQD6]=q"D"<3jD gkwCAH٨nUbH]"!!䪨 2 O^v7V>c]Hx>0HiQ; 5õ]jb^wy.ɧ]z  $ȉkiW?*1<4cLSԞ\ kiN9lcKU[*Y9U ݢeWyѬ"!l;`QTXnٱ$1GxiXc]ꦨU=U,i{}f/r(΄o8'o)ٮ]?U]mק#*-}"|6U|gBZw?Lg3PcN9D;|&ǾBib+G&$DaM ^p`C%*-G)=2?Ĺ[}uQ4 75wʉ1vDǴΪF}0Vu*gxIFGCw?we33Sy+eϡ h>к.biі#V6חc:߾ힻU.+|z͹Idƈ-GguD*}1Ѥ3;'{b[ڷ\kG>.?2D0Fm{[]_ݚ6|dR_w+*h;zX5 9)2O+=E5+Z=4xKU6u\y|+z ťPPB/Qx bT٬S+Y /FJOj\&ڎеm虴17DN!OPyBR*eR+cExd.Y 06 2V0~]jBKUS#(XG[^ Qg+ڮ1uQ7&DX]M[vV$$Ԅx4'oӹ.ŌȋQy: 6EjF8:.= ̳EAN|Ta~(ҳO-`s4X[?ʀ`Ua2 *MD! _>3ŭKr< ~SAd<Ϸ@Xڎ4 G ڣ]}yk߁jdB&2$ViUH9 J#aW^;TTHBp#5IENDB`vision-0.19.1/test/assets/fakedata/logos/rgbalpha_pytorch16.png000066400000000000000000002606011466211133600244720ustar00rootroot00000000000000PNG  IHDRdd rIazTXtRaw profile type exifxݚYrIE}Ѭws SbRYJ"%>pz.[m=8x~Wϻ"O%V<>x= ~j /CҊ~z!㽕[~+ wߕmcI!y~_ H\z~\pڈm~74k] Bi:(m⬮IQS_Ȧ879=99grQI@LRsF0:$X,%]VwN/ٍiEIL*& S=fN,sL!\RP_@q;,jQ٩4*Bִ+x+!>@{466$'@u&6`n x%#"{f{,,V,tس qao,ID*L.@I)э"k(xDB ʼn(f hQX8fIgO-b7V\oLP(6\dOȫlP1|CQ(r1 I2DSCQOT-rr?0JbEt:Tߕ:filrQW ʴs&:"]ɁaMd6j ݨ@WBgo5tvs]@ॆ2*"1WڠUJs TQN%HPJA'*vu1X\PZA0 5@MXĊ)=Z@42j &wP5ڨ),Gu?IJOiij'51ڦl \ 0i0G[ĒYu8bǧ/4E! )\0h%`ڮ":܂y8vcҎHSSBA)x<| :E[0u+, B =@ \ijN)tJp\ Fn(!MߚD 云}5e%`J(Tu*LJ_INBB71f'$ȍ1Ӯ=/=)r59cI側x'  ? jN &~>:T(9Az V` ܧDItܮ ,q ;ydߥ3xVrGN3u6h\]p8 0)% oaI&w 0 t}p:ޚ8LjE"AM̜JD^ F鳄IG@퉥bO(ꭗ'Ew#~ ἑ'%pВĊ$:E;W"x(l?] { q0HEzX<, @fy&1<0 3-?Lz3\K EM]ywtcso-@oF@0 jV92νX+<tF$Au?"M)9rC>):T"j2#~^g]wk@ByN [A3FݞܷNAF`<'Ut3y♪4PSPX 4lt& \Cjҋ-GE+Ø풱J͒ @*3l:ګ.;9JXExG^tS5:<`v]-FJ?_М 빩=4,臖+-ؕOCr 0X_ݚ:1PBý@M9c&)WN$:.&QŃ{orN=O[XKٔ4HQL*1"t}(eӗS)fwэ-pbdIEDTD:Yf$C)Dj2RFU"p(5h0I2U}DU9FF:?7CdԠ4ܗ>jU++u@ U$DPGlP}SLqDϏgI77D*?L0M1_S4P] R2'S<@Wc1ZVڅMB.&yJ_ҘP1VDV72Q:8I/nsE)wxwC*U<uf{u ޤIߋk,aG2 QF`),ddt=IT Rnno, ldB8 0zXo}ٷ6ŰNzP;CuwbЭ dY݅Ȁ1ޭaKt|!P1܈n@̾$BѣO5PQӚ1CG45}"sJϩ}"IT`@Yt {&E[ ŜP&xy! UzaB7(J;*Ly56!I 6mlqLFKwX6Q`4hMa!DAM@fRfϴEt9Zifso}{߯6J'炤M O5a?$*ٗ0g>6eILJiCCPICC profilex}=H@_SE)+8dNDE EjVL.& IZpc⬫ ~9)HK -b<8ǻ{wP/346Sɮ]!> (3˘$|=|,s5g1 2ô77m>qex̤ ?r]segFtj8B,XicV45)⨪/d VbKGD pHYs  tIME 0!( IDATxI IDATEE.. HH$$EE.. LL&& 11LL&&  ;;LL&& >>LL&& >>LL&& 6 IDAT>>LL&& >>LL&& >>LL&& >>LL&& >>LL&& >> ""LL&& >>}}JJ**00TTLL&& >>}}MM**`` QQLL&& >>}}HH++## ++LL&& >>}}GG  ??))LL&& >>}}  "r IDATLL&& >>}}LL&& >>}} ** LL&& >>}}LL33 xxVVխLL&& >>}}?? UU**>>}}JJ,,\\ EE.. >>}}KK,,yy EE..  FF}}LL,,xx EELL,,mmaa}}LL,,xxaaLL,,mmLL--22 }}????// uu>>UU** }}// ;; UU**B(g IDATIaa ;;|| ;;aaKK--yy tt&&ss yyKK--aa gggg aaEE.. hhvvvvggEE.. EE%%33Ө33Ө&&EEZZZZLL&&@@2222@@LL&&5555====3333S IDATUU88 ####UU88     ....886B=` IDAT8822GG((GG((22 EEEE ____>>LL,,88LL,,88>>zzzzJJKK**NNKK**NNJJLL&&LL&& $$ $$XXnnKK++nnKK++XX~~KK,,ss=ę IDATKK,,ss~~ooLL,,KK++ooKK,,}} qqHH00 [[ ~~փ  [[ LL++MMLL++MM  [[ KK-- 88MM--88ttRR JJKK//00 MM,,BB]]DD MMHH--88--8855 UUFF**QQ dd???? ||yyMM**BB11tt־NN'' kkoo b;o IDATR8HH--ff__PP(( LLWW99LL**99<<11  OO//'IDATf:_ut}IENDB`vision-0.19.1/test/assets/gaussian_blur_opencv_results.pt000066400000000000000000001377571466211133600237570ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZ}q(X10_12_3__3_3_0.8q]q(cnumpy.core.multiarray scalar qcnumpy dtype qXu1qqRq(KX|qNNNJJKtq bc_codecs encode q Xq Xlatin1q q RqqRqhhh Xqh qRqqRqhhh Xqh qRqqRqhhhqRqhhhqRqhhh Xqh q Rq!q"Rq#hhh Xq$h q%Rq&q'Rq(hhh Xq)h q*Rq+q,Rq-hhh Xq.h q/Rq0q1Rq2hhh Xq3h q4Rq5q6Rq7hhh Xq8h q9Rq:q;RqRq?q@RqAhhh XqBh qCRqDqERqFhhh XqGh qHRqIqJRqKhhh XqLh qMRqNqORqPhhh X qQh qRRqSqTRqUhhh X!qVh qWRqXqYRqZhhh X"q[h q\Rq]q^Rq_hhh X#q`h qaRqbqcRqdhhh X$qeh qfRqgqhRqihhh X%qjh qkRqlqmRqnhhh X&qoh qpRqqqrRqshhh X'qth quRqvqwRqxhhh X(qyh qzRq{q|Rq}hhh X)q~h qRqqRqhhh X*qh qRqqRqhhh X+qh qRqqRqhhh X,qh qRqqRqhhh X-qh qRqqRqhhh X.qh qRqqRqhhh X/qh qRqqRqhhh X0qh qRqqRqhhh X1qh qRqqRqhhhqRqhhh X2qh qRqqRqhhh X3qh qRqqRqhhhlqRqhhhqqRqhhhvqRqhhhvqRqhhh{qRqhhhqRqhhhqRqhhhqRqhhhqRqhhhqRqhhhqRqhhhqRqhhhqRqhhhqRqhhhqRqhhhqRqhhh X4qh qRqنqRqhhh X5qh qRqކqRqhhh X6qh qRqqRqhhh X7qh qRqqRqhhh X8qh qRqqRqhhh X9qh qRqqRqhhh X:qh qRqqRqhhh X;qh qRqqRqhhh Xr h r Rr r Rr hhh X?rh rRrrRrhhh X@rh rRrrRrhhh XArh rRrrRrhhh XBrh rRrr Rr!hhh XCr"h r#Rr$r%Rr&hhh XDr'h r(Rr)r*Rr+hhj)r,Rr-hhh XEr.h r/Rr0r1Rr2hhh XFr3h r4Rr5r6Rr7hhh XIr8h r9Rr:r;Rr<hhh XJr=h r>Rr?r@RrAhhh XKrBh rCRrDrERrFhhjDrGRrHhhh XLrIh rJRrKrLRrMhhh XMrNh rORrPrQRrRhhh XNrSh rTRrUrVRrWhhh XOrXh rYRrZr[Rr\hhh XPr]h r^Rr_r`Rrahhh XQrbh rcRrdreRrfhhh XRrgh rhRrirjRrkhhh XSrlh rmRrnroRrphhh XTrqh rrRrsrtRruhhh XUrvh rwRrxryRrzhhh XVr{h r|Rr}r~Rrhhh XWrh rRrrRrhhh XXrh rRrrRrhhh XYrh rRrrRrhhh XZrh rRrrRrhhh X[rh rRrrRrhhh X\rh rRrrRrhhh X]rh rRrrRrhhh X^rh rRrrRrhhh X_rh rRrrRrhhh X`rh rRrrRrhhh Xarh rRrrRrhhh Xbrh rRrrRrhhh Xcrh rRrrRrhhh Xdrh rRrrRrhhh Xerh rRrrRrhhh Xfrh rRrrRrhhh Xgrh rRrrRrhhh Xhrh rRrrRrhhjrRrhhh Xirh rRrrRrhhh Xjrh rRrrRrhhh Xmrh rRrrRrhhh Xnrh rRrrRrhhh Xorh rRrrRrhhjrRrhhh Xprh rRrrRrhhh Xqrh rRrrRrhhh Xrrh rRrrRrhhh Xsrh rRrr Rr hhh Xtr h r Rr rRrhhh Xurh rRrrRrhhh Xvrh rRrrRrhhh Xwrh rRrrRrhhh Xxrh r Rr!r"Rr#hhh Xyr$h r%Rr&r'Rr(hhh Xzr)h r*Rr+r,Rr-hhh X{r.h r/Rr0r1Rr2hhh hh r3Rr4r5Rr6hhh X}r7h r8Rr9r:Rr;hhh X~r<h r=Rr>r?Rr@hhh XrAh rBRrCrDRrEhhh X€rFh rGRrHrIRrJhhh XrKh rLRrMrNRrOhhh X‚rPh rQRrRrSRrThhh XƒrUh rVRrWrXRrYhhh X„rZh r[Rr\r]Rr^hhh X…r_h r`RrarbRrchhh X†rdh reRrfrgRrhhhh X‡rih rjRrkrlRrmhhh Xˆrnh roRrprqRrrhhh X‰rsh rtRrurvRrwhhh XŠrxh ryRrzr{Rr|hhh X‹r}h r~RrrRrhhh XŒrh rRrrRrhhjrRrhhh Xrh rRrrRrhhh XŽrh rRrrRrhhh X‘rh rRrrRrhhh X’rh rRrrRrhhh X“rh rRrrRrhhjrRrhhh X”rh rRrrRrhhh X•rh rRrrRrhhh X–rh rRrrRrhhh X—rh rRrrRrhhh X˜rh rRrrRrhhh X™rh rRrrRrhhh Xšrh rRrrRrhhh X›rh rRrrRrhhh Xœrh rRrrRrhhh Xrh rRrrRrhhh Xžrh rRrrRrhhh XŸrh rRrrRrhhh X rh rRrrRrhhh X¡rh rRrrRrhhh X¢rh rRrrRrhhh X£rh rRrrRrhhh X¤rh rRrrRrhhh X¥rh rRrrRrhhh X¦rh rRrrRrhhh X§rh rRrrRrhhh X¨rh r Rr r Rr hhh X©r h rRrrRrhhh Xªrh rRrrRrhhh X«rh rRrrRrhhh X¬rh rRrrRr hhh X­r!h r"Rr#r$Rr%hhh X®r&h r'Rr(r)Rr*hhh X¯r+h r,Rr-r.Rr/hhh X°r0h r1Rr2r3Rr4hhj2r5Rr6hhh X±r7h r8Rr9r:Rr;hhh X²r<h r=Rr>r?Rr@hhh XµrAh rBRrCrDRrEhhh X¶rFh rGRrHrIRrJhhh X·rKh rLRrMrNRrOhhjMrPRrQhhh X¸rRh rSRrTrURrVhhh X¹rWh rXRrYrZRr[hhh Xºr\h r]Rr^r_Rr`hhh X»rah rbRrcrdRrehhh X¼rfh rgRrhriRrjhhh X½rkh rlRrmrnRrohhh X¾rph rqRrrrsRrthhh X¿ruh rvRrwrxRryhhh XÀrzh r{Rr|r}Rr~hhh XÁrh rRrrRrhhh XÂrh rRrrRrhhh XÃrh rRrrRrhhh XÄrh rRrrRrhhh XÅrh rRrrRrhhh XÆrh rRrrRrhhh XÇrh rRrrRrhhh XÈrh rRrrRrhhh XÉrh rRrrRrhhh XÊrh rRrrRrhhh XËrh rRrrRrhhh XÌrh rRrrRrhhh XÍrh rRrrRrhhh XÎrh rRrrRrhhh XÏrh rRrrRrhhh XÐrh rRrrRrhhh XÑrh rRrrRrhhh XÒrh rRrrRrhhh XÓrh rRrrRrhhh XÔrh rRrrRrhhjrRrhhh XÕrh rRrrRrhhh XÖrh rRrrRrhhh XÙrh rRrrRrhhjmrRrhhjrrRrhhjrRrhhj(rRrhhj-rRrhhj2rRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRr hhjr Rr hhj r Rr hhjrRrhhjrRrhhjrRrhhjrRrhhj#rRrhhj(rRrhhj-rRrhhj2rRrhhj9rRrhhj>r Rr!hhh X³r"h r#Rr$r%Rr&hhh X´r'h r(Rr)r*Rr+hhjCr,Rr-hhjHr.Rr/hhjMr0Rr1hhjTr2Rr3hhjYr4Rr5hhj^r6Rr7hhjcr8Rr9hhjcr:Rr;hhjhr<Rr=hhjmr>Rr?hhj|r@RrAhhjRrBRrChhjWrDRrEhhjrFRrGhhjrHRrIhhjrJRrKhhjrLRrMhhjrNRrOhhjrPRrQhhjrRRrShhj$rTRrUhhj)rVRrWhhj0rXRrYhhj5rZRr[hhh XGr\h r]Rr^r_Rr`hhh XHrah rbRrcrdRrehhj:rfRrghhj?rhRrihhjDrjRrkhhjKrlRrmhhjPrnRrohhjUrpRrqhhjZrrRrshhj_rtRruhhjdrvRrwhhjirxRryhhjnrzRr{hhjsr|Rr}hhjxr~Rrhhj}rRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhj$rRrhhjdrRrhhhrRrhhhنrRrhhhކrRrhhhvrRrhhh{rRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhنrRrhhhކrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhjrRrhhjrRrhhj rRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhhنrRrhhhކrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhjrRrhhjrRrhhj rRrhhjrRrhhjrRrhhjrRrhhjrRrhhj$rRrhhj)rRrhhj0rRrhhj5rRrhhj^rRrhhjcrRrhhj:rRrhhj?rRrhhjDrRrhhjKrRr hhjPr Rr hhjUr Rr hhjZrRrhhj_rRrhhjdrRrhhjirRrhhjnrRrhhjirRrhhjnrRrhhjsrRreX10_12_3__3_3_0.5r]r(hhh Xr h r!Rr"r#Rr$hhh X r%h r&Rr'r(Rr)hhh X r*h r+Rr,r-Rr.hhh X r/h r0Rr1r2Rr3hhh X r4h r5Rr6r7Rr8hhh X r9h r:Rr;r<Rr=hhh Xr>h r?Rr@rARrBhhh XrCh rDRrErFRrGhhh XrHh rIRrJrKRrLhhh XrMh rNRrOrPRrQhhh XrRh rSRrTrURrVhhhrWRrXhhhrYRrZhhhr[Rr\hhh!r]Rr^hhh&r_Rr`hhh+raRrbhhh0rcRrdhhh5reRrfhhh:rgRrhhhh?riRrjhhhDrkRrlhhhIrmRrnhhhNroRrphhhSrqRrrhhhXrsRrthhh]ruRrvhhhbrwRrxhhhgryRrzhhhlr{Rr|hhhqr}Rr~hhhvrRrhhh{rRrhhh{rRrhhhrRrhhhrRrhhhlrRrhhhqrRrhhhvrRrhhhvrRrhhh{rRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhنrRrhhhކrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhjrRrhhjrRrhhj rRrhhjrRrhhjrRrhhjrRrhhjrRrhhj$rRrhhj)rRrhhj)rRrhhj0rRrhhj5rRrhhj:rRrhhj?rRrhhjDrRrhhjDrRrhhjKrRrhhjPrRrhhjUrRrhhjZrRrhhj_rRrhhjdrRrhhjirRrhhjnrRrhhjsrRrhhjxrRrhhj}rRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjr Rr hhjr Rr hhjr RrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRr hhjr!Rr"hhjr#Rr$hhjr%Rr&hhjr'Rr(hhj r)Rr*hhjr+Rr,hhjr-Rr.hhjr/Rr0hhj!r1Rr2hhj&r3Rr4hhj+r5Rr6hhj0r7Rr8hhj4r9Rr:hhj9r;Rr<hhj>r=Rr>hhjCr?Rr@hhjHrARrBhhjMrCRrDhhjRrERrFhhjWrGRrHhhj\rIRrJhhjarKRrLhhjfrMRrNhhjkrORrPhhjprQRrRhhjurSRrThhjzrURrVhhjrWRrXhhjrYRrZhhjr[Rr\hhjr]Rr^hhjr_Rr`hhjraRrbhhjrcRrdhhjreRrfhhjrgRrhhhjriRrjhhjrkRrlhhjrmRrnhhjroRrphhjrqRrrhhjrsRrthhjruRrvhhjrwRrxhhjryRrzhhjr{Rr|hhjr}Rr~hhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhj rRrhhjrRrhhjrRrhhjrRrhhjrRrhhj#rRrhhj(rRrhhj-rRrhhj2rRrhhj2rRrhhj9rRrhhj>rRrhhjCrRrhhjHrRrhhjMrRrhhjMrRrhhjTrRrhhjYrRrhhj^rRrhhjcrRrhhjhrRrhhjmrRrhhjrrRrhhjwrRrhhj|rRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhh XØrh rRrrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRr hhjr Rr hhjr Rr hhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjr Rr!hhjr"Rr#hhjr$Rr%hhjr&Rr'hhh X×r(h r)Rr*r+Rr,hhjr-Rr.hhjr/Rr0hhh XÚr1h r2Rr3r4Rr5hhh XÛr6h r7Rr8r9Rr:hhh XÜr;h r<Rr=r>Rr?hhh XÝr@h rARrBrCRrDhhjBrERrFhhh XÞrGh rHRrIrJRrKhhh XßrLh rMRrNrORrPhhh XârQh rRRrSrTRrUhhjTrVRrWhhjYrXRrYhhjrZRr[hhhr\Rr]hhhr^Rr_hhhr`RrahhhIrbRrchhhNrdRrehhhSrfRrghhhXrhRrihhh]rjRrkhhhbrlRrmhhhgrnRrohhhlrpRrqhhhqrrRrshhhvrtRruhhh{rvRrwhhhrxRryhhhrzRr{hhhr|Rr}hhhr~RrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhنrRrhhhކrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhjrRrhhhrRrhhhrRrhhhrRrhhhvrRrhhh{rRrhhhrRrhhhvrRrhhh{rRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhنrRrhhhކrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhjrRrhhjrRrhhj rRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhj rRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhj$rRrhhj)rRrhhj0rRrhhj5rRrhhj^rRrhhjcrRrhhj:rRrhhj?rRrhhjDrRrhhjKrRrhhjPrRrhhjUrRr hhjZr Rr hhj_r Rr hhjdrRrhhjirRrhhjnrRrhhjsrRrhhjxrRrhhj}rRrhhjrRrhhjrRrhhjrRrhhjr Rr!hhjr"Rr#hhjr$Rr%hhjr&Rr'hhjr(Rr)hhjr*Rr+eX10_12_3__3_5_0.8r,]r-(hhhr.Rr/hhh!r0Rr1hhh&r2Rr3hhh&r4Rr5hhh+r6Rr7hhh0r8Rr9hhh5r:Rr;hhh:r<Rr=hhh?r>Rr?hhhDr@RrAhhhIrBRrChhhNrDRrEhhhSrFRrGhhhXrHRrIhhh]rJRrKhhhbrLRrMhhhgrNRrOhhhlrPRrQhhhqrRRrShhhvrTRrUhhh{rVRrWhhhrXRrYhhhrZRr[hhhr\Rr]hhhr^Rr_hhhr`RrahhhrbRrchhhrdRrehhhrfRrghhhrhRrihhhrjRrkhhhrlRrmhhhنrnRrohhhrpRrqhhhنrrRrshhhކrtRruhhhvrvRrwhhh{rxRryhhhrzRr{hhhr|Rr}hhhr~RrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhنrRrhhhކrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhjrRrhhjrRrhhj rRrhhjrRrhhjrRrhhjrRrhhjrRrhhj$rRrhhj)rRrhhj0rRrhhj5rRrhhj0rRrhhj5rRrhhj^rRrhhj:rRrhhj?rRrhhjDrRrhhjDrRrhhjKrRrhhjPrRrhhjUrRrhhjZrRrhhj_rRrhhjdrRrhhjirRrhhjnrRrhhjsrRrhhjxrRrhhj}rRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhj r Rr hhjr Rr hhjr Rr hhjr Rr hhj!r Rr hhj&r Rr! hhj+r" Rr# hhj0r$ Rr% hhj4r& Rr' hhj9r( Rr) hhj>r* Rr+ hhjCr, Rr- hhjHr. Rr/ hhjMr0 Rr1 hhjRr2 Rr3 hhjWr4 Rr5 hhj\r6 Rr7 hhjar8 Rr9 hhjfr: Rr; hhjkr< Rr= hhjpr> Rr? hhjur@ RrA hhjzrB RrC hhjrD RrE hhjrF RrG hhjrH RrI hhjrJ RrK hhjrL RrM hhjrN RrO hhjrP RrQ hhjrR RrS hhjrT RrU hhjrV RrW hhjrX RrY hhjrZ Rr[ hhjr\ Rr] hhjr^ Rr_ hhjr` Rra hhjrb Rrc hhjrd Rre hhjrf Rrg hhjrh Rri hhjrj Rrk hhjrl Rrm hhjrn Rro hhjrp Rrq hhjrr Rrs hhjrt Rru hhjrv Rrw hhjrx Rry hhjrz Rr{ hhjr| Rr} hhj r~ Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhj#r Rr hhj(r Rr hhj-r Rr hhj2r Rr hhj2r Rr hhj9r Rr hhj>r Rr hhjCr Rr hhj)r Rr hhjCr Rr hhjHr Rr hhj$r Rr hhj)r Rr hhjCr Rr hhjCr Rr hhjHr Rr hhjMr Rr hhjTr Rr hhjYr Rr hhj^r Rr hhjcr Rr hhjhr Rr hhjmr Rr hhjrr Rr hhjwr Rr hhj|r Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjYr Rr hhj^r Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhj r Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhj#r Rr hhj(r Rr hhj-r Rr hhj2r Rr hhj9r Rr hhj>r Rr hhj$r Rr hhj)r Rr hhjCr Rr hhjHr Rr hhjMr Rr hhjTr Rr hhjTr Rr! hhjYr" Rr# hhj^r$ Rr% hhjmr& Rr' hhjMr( Rr) hhjRr* Rr+ hhjr, Rr- hhjr. Rr/ hhjr0 Rr1 hhjr2 Rr3 hhj$r4 Rr5 hhj)r6 Rr7 hhj0r8 Rr9 hhj5r: Rr; hhj^r< Rr= hhjcr> Rr? hhj:r@ RrA hhj?rB RrC hhjDrD RrE hhjKrF RrG hhjPrH RrI hhjUrJ RrK hhjZrL RrM hhj_rN RrO hhjdrP RrQ hhjirR RrS hhjnrT RrU hhjsrV RrW hhjxrX RrY hhj}rZ Rr[ hhjr\ Rr] hhjr^ Rr_ hhjr` Rra hhjrb Rrc hhjrd Rre hhjrf Rrg hhjrh Rri hhjrj Rrk hhjrl Rrm hhjrn Rro hhj0rp Rrq hhj5rr Rrs hhjnrt Rru hhhrv Rrw hhhrx Rry hhhrz Rr{ hhhr| Rr} hhhr~ Rr hhhr Rr hhhr Rr hhhr Rr hhhr Rr hhhr Rr hhhr Rr hhhr Rr hhhنr Rr hhhކr Rr hhhr Rr hhhr Rr hhhr Rr hhhr Rr hhhr Rr hhhr Rr hhjr Rr hhjr Rr hhj r Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhj$r Rr hhj)r Rr hhj)r Rr hhj0r Rr hhj5r Rr hhj r Rr hhhr Rr hhhr Rr hhjr Rr hhhr Rr hhhr Rr hhhr Rr hhhr Rr hhhr Rr hhhr Rr hhhr Rr hhhr Rr hhjr Rr hhjr Rr hhj r Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhj$r Rr hhj)r Rr hhj0r Rr hhj5r Rr hhj^r Rr hhjcr Rr hhj:r Rr hhj?r Rr hhjDr Rr hhjKr Rr hhjPr Rr hhjUr Rr hhjZr Rr hhj_r Rr hhj_r Rr hhjdr Rr hhjir Rr eX10_12_3__3_5_0.5r ]r (hhj"r Rr hhj'r Rr hhj,r Rr hhj1r Rr hhj6r Rr hhj;r Rr hhj@r Rr hhjEr Rr hhjJr Rr hhjOr Rr hhjTr Rr hhhr Rr hhhr Rr hhhr Rr hhh!r Rr hhh&r Rr hhh+r Rr! hhh0r" Rr# hhh5r$ Rr% hhh:r& Rr' hhh?r( Rr) hhhDr* Rr+ hhhIr, Rr- hhhNr. Rr/ hhhSr0 Rr1 hhhXr2 Rr3 hhh]r4 Rr5 hhhbr6 Rr7 hhhgr8 Rr9 hhhlr: Rr; hhhqr< Rr= hhhvr> Rr? hhh{r@ RrA hhh{rB RrC hhhrD RrE hhhrF RrG hhhlrH RrI hhhqrJ RrK hhhvrL RrM hhhvrN RrO hhh{rP RrQ hhhrR RrS hhhrT RrU hhhrV RrW hhhrX RrY hhhrZ Rr[ hhhr\ Rr] hhhr^ Rr_ hhhr` Rra hhhrb Rrc hhhrd Rre hhhrf Rrg hhhنrh Rri hhhކrj Rrk hhhrl Rrm hhhrn Rro hhhrp Rrq hhhrr Rrs hhhrt Rru hhhrv Rrw hhjrx Rry hhjrz Rr{ hhj r| Rr} hhjr~ Rr hhjr Rr hhjr Rr hhjr Rr hhj$r Rr hhj)r Rr hhj)r Rr hhj0r Rr hhj5r Rr hhj:r Rr hhj?r Rr hhjDr Rr hhjDr Rr hhjKr Rr hhjPr Rr hhjUr Rr hhjZr Rr hhj_r Rr hhjdr Rr hhjir Rr hhjnr Rr hhjsr Rr hhjxr Rr hhj}r Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhj r Rr hhjr Rr hhjr Rr hhjr Rr hhj!r Rr hhj&r Rr hhj+r Rr hhj0r Rr hhj4r Rr hhj9r Rr hhj>r Rr hhjCr Rr hhjHr Rr hhjMr Rr hhjRr Rr hhjWr Rr hhj\r Rr hhjar Rr hhjfr Rr hhjkr Rr hhjpr Rr hhjur Rr hhjzr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr! hhjr" Rr# hhjr$ Rr% hhjr& Rr' hhjr( Rr) hhjr* Rr+ hhjr, Rr- hhjr. Rr/ hhjr0 Rr1 hhjr2 Rr3 hhjr4 Rr5 hhjr6 Rr7 hhjr8 Rr9 hhjr: Rr; hhjr< Rr= hhjr> Rr? hhjr@ RrA hhjrB RrC hhjrD RrE hhjrF RrG hhjrH RrI hhjrJ RrK hhjrL RrM hhjrN RrO hhj rP RrQ hhjrR RrS hhjrT RrU hhjrV RrW hhjrX RrY hhj#rZ Rr[ hhj(r\ Rr] hhj-r^ Rr_ hhj2r` Rra hhj2rb Rrc hhj9rd Rre hhj>rf Rrg hhjCrh Rri hhjHrj Rrk hhjMrl Rrm hhjMrn Rro hhjTrp Rrq hhjYrr Rrs hhj^rt Rru hhjcrv Rrw hhjhrx Rry hhjmrz Rr{ hhjrr| Rr} hhjwr~ Rr hhj|r Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhj*r Rr hhjr Rr hhjr Rr hhj3r Rr hhj8r Rr hhj=r Rr hhjBr Rr hhjBr Rr hhjIr Rr hhjNr Rr hhjSr Rr hhjTr Rr hhjYr Rr hhjr Rr hhhr Rr hhhr Rr hhhr Rr hhhIr Rr hhhNr Rr hhhSr Rr hhhXr Rr hhh]r Rr hhhbr Rr hhhgr Rr hhhlr Rr hhhqr Rr hhhvr Rr hhh{r Rr hhhr Rr hhhr Rr hhhr Rr! hhhr" Rr# hhhr$ Rr% hhhr& Rr' hhhr( Rr) hhhr* Rr+ hhhr, Rr- hhhr. Rr/ hhhr0 Rr1 hhhنr2 Rr3 hhhކr4 Rr5 hhhr6 Rr7 hhhr8 Rr9 hhhr: Rr; hhhr< Rr= hhhr> Rr? hhjr@ RrA hhhrB RrC hhhrD RrE hhhrF RrG hhhvrH RrI hhh{rJ RrK hhhrL RrM hhhvrN RrO hhh{rP RrQ hhhrR RrS hhhrT RrU hhhrV RrW hhhrX RrY hhhrZ Rr[ hhhr\ Rr] hhhr^ Rr_ hhhr` Rra hhhrb Rrc hhhrd Rre hhhrf Rrg hhhنrh Rri hhhކrj Rrk hhhrl Rrm hhhrn Rro hhhrp Rrq hhhrr Rrs hhhrt Rru hhhrv Rrw hhjrx Rry hhjrz Rr{ hhj r| Rr} hhjr~ Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhj r Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhj$r Rr hhj)r Rr hhj0r Rr hhj5r Rr hhj^r Rr hhjcr Rr hhj:r Rr hhj?r Rr hhjDr Rr hhjKr Rr hhjPr Rr hhjUr Rr hhjZr Rr hhj_r Rr hhjdr Rr hhjir Rr hhjnr Rr hhjsr Rr hhjxr Rr hhj}r Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr hhjr Rr eX26_28_1__23_23_1.7r ]r (hhhqr Rr hhhqr Rr hhhvr Rr hhh{r Rr hhhr Rr hhhr Rr hhhr Rr hhhr Rr hhhr Rr hhhr Rr hhhr Rr hhhr Rr hhhr Rr hhhr Rr hhhr Rr hhhنr Rr hhhކr Rr hhhr Rr hhhr Rr hhhr Rr hhhr Rr hhhr Rr hhhr Rr hhjrRrhhjrRrhhj rRrhhj rRrhhj rRr hhhr Rr hhhr Rr hhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhrRrhhhنrRrhhhކrRrhhhr Rr!hhhr"Rr#hhhr$Rr%hhhr&Rr'hhhr(Rr)hhhr*Rr+hhjr,Rr-hhjr.Rr/hhj r0Rr1hhjr2Rr3hhjr4Rr5hhjr6Rr7hhjr8Rr9hhj$r:Rr;hhj)r<Rr=hhj0r>Rr?hhj0r@RrAhhj rBRrChhjrDRrEhhjrFRrGhhjrHRrIhhjrJRrKhhjrLRrMhhj$rNRrOhhj)rPRrQhhj0rRRrShhj5rTRrUhhj^rVRrWhhjcrXRrYhhj:rZRr[hhj?r\Rr]hhjDr^Rr_hhjKr`RrahhjPrbRrchhjUrdRrehhjZrfRrghhj_rhRrihhjdrjRrkhhjirlRrmhhjnrnRrohhjsrpRrqhhjxrrRrshhj}rtRruhhj}rvRrwhhjrxRryhhjrzRr{hhjr|Rr}hhjr~RrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhh Xkrh rRrrRrhhh Xlrh rRrrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhj rRrhhj rRrhhjrRrhhjrRrhhjrRrhhj!rRrhhj&rRrhhj+rRrhhj0rRrhhj4rRrhhj9rRrhhj>rRrhhjCrRrhhjHrRrhhjMrRrhhjRrRrhhjWrRrhhj\rRrhhjarRrhhjfrRrhhjkrRrhhjprRrhhjurRrhhjurRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhh Xrh rRrrRrhhh Xrh rRrrRr hhjr Rr hhjr Rr hhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjr Rr!hhjr"Rr#hhjr$Rr%hhjr&Rr'hhjr(Rr)hhjr*Rr+hhjr,Rr-hhjr.Rr/hhjr0Rr1hhjr2Rr3hhjr4Rr5hhjr6Rr7hhjr8Rr9hhjr:Rr;hhjr<Rr=hhjr>Rr?hhjr@RrAhhjrBRrChhjrDRrEhhjrFRrGhhjrHRrIhhjrJRrKhhjrLRrMhhjrNRrOhhj rPRrQhhjrRRrShhjrTRrUhhjrVRrWhhjrXRrYhhj#rZRr[hhj(r\Rr]hhj-r^Rr_hhj2r`Rrahhj2rbRrchhj9rdRrehhj$rfRrghhj>rhRrihhj2rjRrkhhjrlRrmhhjrnRrohhjrpRrqhhjrrRrshhjrtRruhhjrvRrwhhjrxRryhhjrzRr{hhjr|Rr}hhjr~RrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhj rRrhhjrRrhhjrRrhhjrRrhhjrRrhhj#rRrhhj(rRrhhj(rRrhhj-rRrhhj2rRrhhj-rRrhhjrRrhhjrRrhhjrRrhhjrRrhhjkrRrhhjfrRrhhjfrRrhhjkrRrhhjprRrhhjurRrhhjzrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjfrRrhhj&rRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhj rRrhhjrRrhhjrRrhhjrRr hhjr Rr hhj!r Rr hhj&rRrhhj!rRrhhjrRrhhjrRrhhjrRrhhjxrRrhhj_rRrhhjZrRrhhjZrRrhhj_r Rr!hhjdr"Rr#hhjir$Rr%hhjnr&Rr'hhjsr(Rr)hhjxr*Rr+hhj}r,Rr-hhjr.Rr/hhjr0Rr1hhjr2Rr3hhjr4Rr5hhjr6Rr7hhjr8Rr9hhjr:Rr;hhjr<Rr=hhjr>Rr?hhjr@RrAhhjrBRrChhjrDRrEhhjrFRrGhhjrHRrIhhjrJRrKhhjrLRrMhhjsrNRrOhhj_rPRrQhhjPrRRrShhjPrTRrUhhjPrVRrWhhjUrXRrYhhjZrZRr[hhj_r\Rr]hhjdr^Rr_hhjir`RrahhjnrbRrchhjsrdRrehhjxrfRrghhj}rhRrihhjrjRrkhhjrlRrmhhjrnRrohhjrpRrqhhjrrRrshhjrtRruhhjrvRrwhhjrxRryhhjrzRr{hhjr|Rr}hhjr~RrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhj rRrhhj rRrhhjrRrhhjrRrhhjrRrhhj!rRrhhj&rRrhhj+rRrhhj0rRrhhj4rRrhhj9rRrhhj>rRrhhjCrRrhhjHrRrhhjMrRrhhjRrRrhhjWrRrhhj\rRrhhjarRrhhjarRrhhjfrRrhhjurRrhhjurRrhhjzrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRr hhjr Rr hhjr Rr hhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjr Rr!hhjr"Rr#hhjr$Rr%hhjr&Rr'hhjr(Rr)hhjr*Rr+hhjr,Rr-hhjr.Rr/hhjr0Rr1hhjr2Rr3hhjr4Rr5hhjr6Rr7hhjr8Rr9hhjr:Rr;hhjr<Rr=hhjr>Rr?hhjr@RrAhhjrBRrChhjrDRrEhhjrFRrGhhjrHRrIhhjrJRrKhhjrLRrMhhjrNRrOhhj rPRrQhhjrRRrShhjrTRrUhhjrVRrWhhjrXRrYhhjrZRr[hhj#r\Rr]hhj2r^Rr_hhj9r`Rrahhj9rbRrchhj>rdRrehhj>rfRrghhj>rhRrihhj-rjRrkhhjrlRrmhhjrnRrohhjrpRrqhhjrrRrshhjrtRruhhjrvRrwhhjrxRryhhjrzRr{hhjr|Rr}hhjr~RrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhj rRrhhjrRrhhjrRrhhjrRrhhjrRrhhj(rRrhhj-rRrhhj-rRrhhj2rRrhhj2rRrhhj-rRrhhjrRrhhjrRrhhjrRrhhjrRrhhjkrRrhhjfrRrhhjfrRrhhjkrRrhhjprRrhhjurRrhhjzrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjfrRrhhj&rRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhj rRrhhjrRrhhj!rRr hhj!r Rr hhj&r Rr hhj&rRrhhj!rRrhhjrRrhhjrRrhhjrRrhhjxrRrhhj_rRrhhjZrRrhhjZrRrhhj_r Rr!hhjdr"Rr#hhjir$Rr%hhjnr&Rr'hhjsr(Rr)hhjxr*Rr+hhj}r,Rr-hhjr.Rr/hhjr0Rr1hhjr2Rr3hhjr4Rr5hhjr6Rr7hhjr8Rr9hhjr:Rr;hhjr<Rr=hhjr>Rr?hhjr@RrAhhjrBRrChhjrDRrEhhjrFRrGhhjrHRrIhhjrJRrKhhjrLRrMhhjsrNRrOhhj_rPRrQhhjPrRRrShhjPrTRrUhhjPrVRrWhhjUrXRrYhhjZrZRr[hhj_r\Rr]hhjdr^Rr_hhjir`RrahhjnrbRrchhjsrdRrehhjxrfRrghhj}rhRrihhjrjRrkhhjrlRrmhhjrnRrohhjrpRrqhhjrrRrshhjrtRruhhjrvRrwhhjrxRryhhjrzRr{hhjr|Rr}hhjr~RrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhj rRrhhjrRrhhjrRrhhjrRrhhj!rRrhhj&rRrhhj+rRrhhj0rRrhhj4rRrhhj9rRrhhj>rRrhhjCrRrhhjHrRrhhjMrRrhhjMrRrhhjMrRrhhjMrRrhhjRrRrhhjRrRrhhjWrRrhhj\rRrhhjarRrhhjfrRrhhjkrRrhhjkrRrhhjprRrhhjurRrhhjzrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRr hhjr Rr hhjr Rr hhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjrRrhhjr Rr!hhjr"Rr#hhjr$Rr%hhjr&Rr'hhjr(Rr)hhjr*Rr+hhjr,Rr-hhjr.Rr/hhjr0Rr1hhjr2Rr3hhjr4Rr5hhjr6Rr7hhjr8Rr9hhjr:Rr;hhjr<Rr=hhjr>Rr?hhjr@RrAhhjrBRrChhjrDRrEhhjrFRrGhhjrHRrIhhjrJRrKhhj rLRrMhhjrNRrOhhjrPRrQhhjrRRrShhjrTRrUhhjrVRrWhhjrXRrYhhjrZRr[hhjr\Rr]hhjr^Rr_hhjr`RrahhjrbRrchhjrdRrehhjrfRrghhjrhRrihhjrjRrkhhjrlRrmhhjrnRrohhjrpRrqhhjrrRrshhjrtRruhhjrvRrwhhj rxRryhhjrzRr{hhjr|Rr}hhjr~RrhhjrRrhhj#rRrhhj(rRrhhj-rRrhhj2rRrhhj9rRrhhj9rRreu.PKKWyyPK archive/versionFBZZZZZZ3 PKўgUPKKWyyarchive/data.pklPKўgUɾarchive/versionPK,-{PKPK{vision-0.19.1/test/assets/interlaced_png/000077500000000000000000000000001466211133600203535ustar00rootroot00000000000000vision-0.19.1/test/assets/interlaced_png/wizard_low-interlaced.png000066400000000000000000005264761466211133600253760ustar00rootroot00000000000000PNG  IHDRb\`*orNTϢwIDATxwчߞ/N3H$3"099M20cA @rΗ4?NHHB'0S=>{3]*!Ho3!i!]gDLSEo$X-`s-|km'eM/y .,AY7HsR.Yĭ B# o.z}t.v!8%G!c,?\kxyPzz,%%S}Hu8B:㻄^)y>x .;7t*Q\WN%75Ba(@ӧzb>)=h;X`n rXvQLviKZ,>*I}N\ERnxHto" $X(yk%C C2e2}~= Bijh4-C: XR"wRB81-%D%w i)%G3Ri0obLqjkhcӂO9戾h~r3H@D akH[E:FcdG?"1dp;`44 J|6NֲŋfpG;Tpn#K/&G{)®ꟍEͥOE>t#GO=_].#{)rv='5ߜΨ"Y@dIƗQģ'q͏w칈wk A[[}H)ZٙnJf6 =MM1()%X5R!M`JBEh_#QT'tMZ>/޽LKĒ`ZWeK1z)dY=kEwڮ-BXqRb Yƙ?ÇBQė ;=v0=y< T8ңRZ6j%fٌ@ϚX`\g.?b:KN֛B&S4@"颾m{&ιx6O=uUѯ\t-'k׻=CYVzUd-v< iY,b.e,’XA{G pvfX}[LW{ w  NCzS^v8AoKpztIC&N)Ï gQTiq駝-P^.󛋇P:hmy8D6&nG#Ȯױ lƅzt eo2/;ʰyp;²,K UE |s.|PyyhlYx!|f9[_ FXdluU˙ʛ?٦MӄoδeYohg1M62`XVEU4BcBT@jڵl RJ,^D&m|JCܾ^͕>?\lZ*d4FV=Uuec6F* FÌ#ko޶ՠKYl6 k%;A7 p޼X ?~?K"22Yl 3ª+8sdҤysP\\AKk+׮O/dd"}Mfz) ۃ瘣/tu* .@}|=Lx5bwki[?q?&cX|-][28mD7-z/FQ `eg 46PT\{Y0`pzTK(02:l,GbI 3I֗yEQK7j"n7&tb #GH3MsSV|tIN9ǦM/aWXXlzUL4ځ"쨪&hu-JyBçУ|t .\A6Bl^@(.?d"Lu;͸]XBp8N/'}#nWò$wbT=I&dd3#ֱ9$+9SvxlVGќ;V1ot{Gh{#k0+i2#!gp-ioy&bMG" j6U*e:^x=K4}k3, 'YN2ePX!M曯ptCHx*JKd2mu0hzW*cJ&tU9YBf8) 4e71巉FZ4y29kV,cAZCa/*Ai[~ WNV7MeGӥ ]jB}Ǐa=|WgYrtd@e}P'Ȭ_t~67Lܾ"L CW_%|Ϛ9k6(}ٿ~`wl_8x_Mqqv6,uʿTն틇PveacY8|QtM* / Ic4`3Cn]1i/b~p(Mֽ" |c>BrчSTZs3PKXRګӸv^s)}9ck P$!:̻新bN>G.`殴Ro[v`ҤɔʠhNêR&a׾Nge9 ö F:3t{ }PGZHps_P:I<݅?sR\֛ fcY1j\6#:ve;`Tmx8q=S5TG\p>D2ů5\D~wu<\}xJ.EOb1A<¦E?#*]Em]RudH1m-b#\Mu zs%p%o,ƌi#D"Iޟ>OpGRZ ! {a'.z Fn:Kk\h9 @f!)G 0r[V+ْ |V;u}+c3X)'U9paXVk{C)@1bEn{N˯-.#MR0`s/3M0LlUUY) ~a ڥw}m$7"X8`|wѻfbY-k޴n3<`S|`_|ʭw71j&ġg\x,Bmm=U1j,?i_i᫡ۧnwoؘѺUsZ|I#+x6n:ޕ3ͱt^oA 4h ;ӵpp"iCIlç23icX_嫶SXnal +-R*B2)%O? M_6>OkHLF5JB3^yLit>`߯1h UMi:]WHM ^o0]Gx( kYKsP_N2mq̱GmjY}&SϝZ~v4ec\ h: 4){ &J{|Wasף+X$wr: U\UHS0CUZSZSS|1ډ#tV`kz:"?_8y7)WB2.Zf(;Nj1^>%%iX <`dFqu/e2f*zO?1D)tS˗!;kŒ(2>?!YrɤE*%nas ,a!r:wa)%D gRUeaF{3OD&#:l"?Q$8oXCAa)ibVaz1&0jsnE]gXAYDF#Qb& f2o UbFt ,9ha,_0 ɮiJ,$MhC/qSۊDfCNsZgSP8px~` ?ő"*wt:W RJPXE䌬gy{,b454q̱lK]K; LUd ޕM i87 HPP+nY&fIhRķS, E Kys2 \B&X.Y { _ 6c'rѶp]׹n#vBj;;eXQRFLOZ6Rfޓ)ra"Mieחresn2?f*D4V]z?nz UiSw&\z!M $%IbE+mTER\RWt]H 8fSQlBA$(2KutRZ8n°G]i0IӲظn-Gv(#FxBNz"/eXtU9cwpן_A(. 3VH:ӌvJKQM"~KHw!<⚫fago݂KZNĎ<3s 6͏toQX2OJqQ_11z _p8=*J 4{lN>4VZ=ẃO?SQUնF΂c OchhͰmvD$㋘0./ҲX 2iXKye{3msL&E4_O?qMd>feXm'mv8x$OGSKM}4bwxu4а`a/x$-^y%?,PUdRQKXb} 䝷_'@;5s&c .ji%B,AOCFz*z{qOM+CCCI%֠XߘXƌ#PNikkc O ~4]\" !?Xt&S! k!\n?>(2^w梨`$j'IĽ[A*h$C+}o~s.[Rn?;'nG>Dht$)a~~(67h > g$b1;tgH;(0@4L)iw^7=8hA_#R F&Ҷxba?Cn=1MCp;uFqjqwxBgڍEP5fZf>0hieע!_TAyl9GfGQw[c"vW;dXJIGGxs|˨Z97v o =l0 L&LۻIt,%el(BA[Slo-om>3O?[#_:%g#ulV>r|gY۽n o,Ӕ=v{ҲuH$,aWXBN!!v^Htv .1,  R;Ҋ^\}/w]ڔd2oXd~ ^sx|D ^v (S$ 1??DEi/v>kW'W]|m^u.͔Rn*l+)=IBZSʥ?;KZ(K+"Ke̘ 52<n_@^Q9eC1hP]ӟ.8 m}SnSs~6~yaU:aY=vzρчzofSlKڰmx*_륨p0D ^F ׁ,/<룢 KE}o_ XaȥGnꞦ=4IE.O>/\UσTp`~_Q=\sGQQQA^ٰ~%T9Ob2R`XKI0t`=@Au uUbdkol)af̻<{d-[ݥWٛ~|L.^L{K)ԩ햧E3( Y0悹$KU] MjnkcNלp44/ӽx eB!0YeF=Hل1j+9#ӇeԢgs R8fQ(u-5d:TBon8IL3J[Vld}E.LVwp*-v~ɻ @4jHiY|H7~n ſL !Lչm]%H5ԩ swr*񌍇zV,m|/f}AZ`:5an|p'TBƁ i9fYbC6Vt0jJ.HϪص"PI.=]@LS>aX=Y4nΤm#X\s0s8"t:s !r+D.Cl*(o m~ҁtzn{ݮ e;0=ٳ]ݞ*T<{/m\{կۯ~op+NRW|0dr9z<J,#:Qt%ъs.q NQ[I: 1-0p8 Ed4 0zQqBh]Ls|T+K?7cqlͅ?9S'xY/cES/s7bw8Q{g}N RJt=@"-wyW*'QφT`I}I#hN@)7ӷ@{,X Vв.Z6ka;0zX=Lٝu  E-;\U wT4L%ֆ5BȜҔ9 i\M9wz73C]Lr~vr(%ֱt(D>JaI\ P|yO6ki(.c*L{v#Gև?&x{wgnb^̕`LӵƖӲ$GDga >B&).BE "#TPd(zJ&_0f$Tc90EϠC;YUU=k.?s2EQǣ m6Y&_>3xf&L$ksn1|̡\ۏLFԜ-%WTiP['3<$f0 OC}w?Ϗc {ԃ#iJ5Ыɸ=}vf*`(|8U/3@  GCĀP}թ Ky~_N[ɡBpCo1c'2Ŷ|-#NޟN>}꣔_&MP 0#݁,ѱ k4 %*RhF&YG2JqdfL  FPַ/ȸqb !TMMY=[ToZYpť?3>ؗ=U8λѲ,.]4^:jw S0c AQ_2 Exp:4'D>g{dM/htE3AU(XTHL^u/>?P:#P˲-,a<н$b1[[Ţk kVFgSlvݒ&M/`)2hAoA;M^gЄ-i_*mUl\ ULU4Ugh^cCQ{_&1E>ܙݝ5Lt rELg%1dnd3|t4{ۗ&$B*oJA9D#Hi[2O><KÄV`N?j[>Eњݸ\ {,s` Ze:RQȦs>c:8L 0W,['7~yq`0Qۅݓrt4?0NŲ: 2Y$at=)WGQ/ ޱe G4Qס[ ._Bav?Xai1E'mdlgׇ!4kVqwcbrk4 8N.(BaĨlܰ9f3g|fW\}]qdYNg-BJP +pJ-@d;6ŇÝ?Лt*:%G)d4M$ ͦP&,y+jY8:JˏƲ8(wk/ .iK_S\ڃe˖ЯFG1Xt 4ևdbLdEs[9GQXЃ|pG?fܸ_*~zӱi*KbwӼVEK3@Q}Hד.#nͨqcY2zG|R'#JˊųKvL>h-efDAsS#8 9ÏeSu5y@R.]L&{/F(ryimme,5Hg x?&BY Ü9~mnWxP`R!5IH*F&BuHE@nWE#In/S&OfƌQm*մ *nnZ[c0fr[A>T]Es45C8|J{L5jiiYHkqT?:ц]5nHȦqT45V 9x1*BAZH#ĢT'u.B`Æ5 1ں~?t?xCC* Y0o>/<C`q,_Py+obD*CɦR(̚=ʕ BNsvj&M!Lܪ_O/<=٬Ae>x߱ݗw}'RZyt8ISU=*zxy`LE7L,B58nd‰#Kqrb㚷F}qamO4ɤi̘t զbX&n CΟ> 욆z>`u5u[nOleev\.?^_.GT3d o̞)anH#C~hF!-Ť~&H={)҂F)ەUU3bNLPS͔F114y;d?.hhj!4 wb<4Ebw}~yv$Wo՛B+ FL";v !C ghjtcͦH.y{--8/ &LJo_TÌ/EU 63e.ɦSd,6Uv>̩6bk:|"V$%4[>=u@J֭]ú/nbbqc#0խX蔔4dP0la?mᅌZv;I+mPovl01-̐N7a>>2O8P__, .ķA;tڢ)…oQ3]˗2s 8^y+.>(EBDQH&&و7؟)Ha#m~MxH M6eB:!Cݛ,z֠(uj,^|zISb}Xo^d9Yj6.)n,\e8/-MYj-3?)hb4t d[v"$>̟q?y#db u]GX,A*$[ cw'gƒ;*gA_]o M1 ϥO,_/a\gypϋǂdRF QzrDcI'ZXԓiI&8㿖wÉi(@)iY5 I'({}c [kwm9q2h$*--I;mkV~7k4W.sxehH$JGGTF6<ǷtKCC.Cu67vv$K@wf}]B{S1|#{JS W+J)Lv{w@Sm)]ia=3U{Hal^ ނIJ}oA{' pwƮXK?:xBmS{%ݛ=L?CaE3Z4L*<4TAC2;mٝNNM&\aSLX}^w)s- юKҳ|5Kbu|# o䗿7Mmr.eW#cIE|s .;6޽ʙzHD\vo!KOL1"PqlR2PQ976.d6 u;ip?x&sѿoO|7p1'n(f.2ZtNm]ko*>dul&Nd8]M:+:/voRT\F}u-q:i2@A~5Uk@V-*Yj@{v_Ү ɏO9z 'z+D&c rTs/\pYll}b֬^a#(..&QCAAKRRbp#m!< @7t_ct)M8,L۞?Ȱae#*W?$L07pT E`x6yR0vPZ+QAp#um,=H F#MlyJe,aeꉶmⶻZS1>\\ʁ.ko}¨}&nr)mXK,KCN$tCN5dre*H"d œdwv}Kvⷱ\Dz$m \#4#{<A"c>jmn-_ fgPVփ 6U"eg@ p:\#:al6lF QMt"iHY2A.({BC(wWsٯ*Ϲơd FpdR (I&"fӒ7pv3*&]~ q~yZƆM4} (_)=? # nuaEjdOL~_s:ys?G&mKX1hCyG$Nhj#v,,?:HivJ]3ⴓ劫.bŲE\@8;+HH2d2NB[THD/&Sή]P7_51}40K׭gCsЏoc}ikhb}F&BFj,t=LR ~8O4ttV<Htși"{P*Qܩw{DK)ٸTKYxyޟ1^SNEyo>yT◰0M)6adQE 3ɓ2Ȣf;=WnHI\wy]{0aD<nTfݟ^6sߛy1iʡ[>"@2mT'X6lEqoink |!9b95|}&IlXO8dRrRٯ-tdMGutgyF#\f4:I ʭII$pGp+YZBtcJ9+ .f:!\G!N$V4.-{pKk SelaGQ4Ei+T*DN\_| B8;ώ/0= 'VrRʴi=ӝOQX^$ S&0Uֲx֭xVr UkW79p-]ϸî"dwlwLeظq9_[,NٓJsR*/% Dg)i ާw-tv3J{"Ur v_;W/,=B03Oأb̰R뗱f~|Iq,/N{X$pnl{i:2sҥs~Cȕ\H-`^\4{r7σwM^~)-&M>wq7ħs֢*i!`1tL.!hhhE XQˍa2u\.Or|--#)-?8mK1$_?F28.Z25L0+Mr/ۄb9b}O?9+jXehڗ-$dG#D#Q ¦px#:@V 6-~v ~6 B1<>sq8b뛹AޞϮD,ACces'֐XHզjjkɤ39\m˲yӒX0@B6 NǨZ>ӭݪ"N?״EtyqV,?># h6McͲY:h,Kϧ?غFAa)g>o<ч7U(0r)sə^:BiKIƓv;qi*bGWR)XR9MKߙ~< 2/ȧ_J֯[ŀCWimE:'܀J,݌ IH>WNmU%$:r6ՉMTY_3Lo?g1dоBC׳D>K a 2 wSW98mrL8T6GJmkubZ]~L42J`ZtSz\pe}qG| ?I;ŤR ؝m-HVOaWXB$J 9a~1=Hkn3[ p=cH!DgK2vci%I$h6;"me| >u {YʜM*ib_J4_xY[ѳo:\x^kqm|9R$gHdťSi.֯y E5H%CVbB8p2ho$ ɨb:Z"HC0.KNĩx<^$L**9S!Ԝ䚹B)}:d$-:)։RJ&?g˴aINTDl#_?2qzS-jQwFsw7l{W,U_ISJ!‹trJv\[&2W()'w8 qs΢җ`C̙q?aԘ1Ցd0\m:<ҙvTEqAcKR_ }OE:cåyy\vyɓL7!-dWy\.Z|1y;/(olsOo.j!Eq\Hi lRH '}LSc. WaY-\v !X4u $# ֕88]%xvcS4tx;p?L3ˊeAVe[Nmm{E!D"˒mX<"nR!엝q[<{!qh.=tV,ۈM@KmT&CeM}G/f9q㋹OY՛~%y&#=Ӟ3cpсFM0I"&L1 @ܞivke\˲xWx9s駪CnzmE|sYQ\aB7@,Ve1Bq\DUBUq{L o,XGߗ |Qar Be1 :ôhmh1eI0B٤Ift"Ke̘dN;B&l47djn~{0Υ_, wIwIwFx 7>wv=LcR$MæhkSfr$‹?U鮤@\רT #1M"rEz vT;k-apФ1lڰҷVLlֹSM)b,b.>;T!@9Ow b)H%1$!*`޼-PFijDMhJ1 b,z'e[˲]$*b("JSdPP7":U$U^w܀aGw,D$HKv;TbےCג5t.?i u޶I"+Y fՀG!aXF"%M@{#Ņ{Ꜵ^a!MIɻ^]U!'a`W?N Trvu,>#ʻ}.O!epWM!,G7t6T+?D 82}Lxx)ˈ6qBUQ/06ښp&\ rPE:W+7ܭ/4ֱ] [(N=( 4hizM^d(vg RuR]= M8ݽq:A\JvHgb,G('}Nd&F$<n&Lޤ=+_\N&fu45Ч҉R vflQ6_J"J(Ée$'k$)/? {S6"EQnGK)vkUًצƆ [Bښ=Be;Ų,$- ;:¶eƫ6wJC]=<6FqAm-;zQ٫n\͢E^c'=C}wR'$R-T/qJ"@ŀ)*?~`L*L>r9"б,L*Eaa1/<$d @aq%g8A̬N:"f d uYbb)Ǧhi MB 2`0[PzKA;_Yb!ǟp>uaS-Dk#^E~18@Vb k_,XD,&qSD0LG"ކןGAA² \>ds'/.~&L!vnQRJ }=S,EwV3b~1˂L&E"^d 3#hRđ҆I*فرYGL6 yH'9[f~#O>8-yy~̀R-]E8E28#F CUsL&C[{;˖.zsL`Q]h$`!NsK@)%uC&mg1~>|>Պb󓈭ǦHEWNt q8N-h&\v7ˍPL,$%cDRny&x|DZsɧb46§q읥-0Mj6ү_?~u躱t؝j.Ͳpzٳ[^|b,Nu$kuinniwu*K~q?IEϣijx)-|4[NG tg.`tIS PM7߼ի1c\8_+%%02b$SO9/l /?>Ӄe1By(fw n|-MuesAI* k(BlF6S\4t$bM(81M*Ie3g X-f'e$IEWb¼ yakM":#=l# `a 83>-<>t6 "G]N"#N$ځF_ׁkY={&Oo cX!2ˇODdt"ښ`JX(T o&iI bz P0"¦eȦ۰)=UEcN iI;t|Q\.nM:%;t:f⢢-w~:mvj @9^_ "him¦91LxD!mHK* qD3AX4-l:a8t)dIM#P6!f3A=H~^ݏ#SK܌&JR[SEV`fo?h-yrkij JPȤ,Hd ˁ! `^]eŢ_ShT`d'c99AhTRX%;> GѴ/'2qx@.^BQ2 q T|>V7Z.0 .Bo@1).;LnDȤ:v͍jSqJijXͩڜXF 4 4pyJIeb8?lO791][[Z0MU^3 N<+͙;!%Ё|+-"* qU?C"Hf_G`ZqZ}AschEUd%vG LLDgvT5.GnWHTTRk .Ǯ{[۰vN6"PUAkk=o(dXѣGh OeN-zϧ!@՜."6EhGJd_VC:HI"^K^(TE627avoC1 0z7O TTft:1 [[dB&B[sG ePlJ׿/-al#}\XY!CqgӷdnF[ա 6aFKii]L{45|H TP[]Kuh\|O.W> e܀VNolEXE^~176l|HJ+93vɤS)n/x+~w2LpU2|0RI$6[nI7IG(97 ͞ńzS5X /@XxS@E,5;t]2M, sDTL /Hf<}#ԑ9(,,#TTߜI2YV[ôiw9|c8p%ťu'T5De@Nw1(<3[+B(V'R4lXGCޥeL$S BJG6\|2OH$3Dk8d .z+ PPR#LUJg#T}r)^Esd4Ud δ!1 08` ^$M,4z_/݇5AZfeRP] 杌~;I42|KJՆ4e<2x;^12A[F^~=|>h K1Xl|!h,Uio]B*S?(t Msɴ F?D R]g'bGLw C<]DKB9vGqz MpXo]Kyh(.=S=7xX,fk6M&v&!H=9Qx}^0aD_c~_+"ܮY=BS\4G) !pqr}œr9]\nh.je[gt]r^rYF \Q>hDz cIsy;ݖ̨cp~TiS@&]Cqh"+_`c=?3twI-Erg;g/ݠcE$Sx{&oeY6VSUco@uvdȅ5$|tudO8|>ⰼj>7'd._;ՙNTTѻ_kEs_O=Aqsw[(EQ8'@iY^!Td7\{[v9[(|sF:MPPϳh݌n^;6I$FIIh.]9Wbv.Nt ˲Xz9ʐͤ8 <!]~+pANid2C2d{JxwUi3ݤg| ÙkZ6[h@UT,`{JxwU K ˗-eC¬wO Py{ioo~ÞLs64ڸۯV.v3 W_b2^AmkM-,˒{}^.A{ AEmYo^w%2lgZ~Orݥ>~uKoB : ?t?hmwAP[#{?Ү>,m]C,~PK{hZ;z^>xwm}>M{{O<{7v}c!{a/}7MM^m'L{ qC.t{͔}לL+;t;K?@ڕ34:඗w[0WWh}fj/}?־Oj/}hU5!Ii|+Hgy6W$bKd>یR_\x#䴓;' 33R*7d&o.%"̠.&OAYi1%شά(2WZQ Ş~􍅸{>\z!R 7O?s POFAX+fUh FD)eNdBrXO{BG4i2r,ʙ BLm98i]f~^|p Jk|@A1SƮP^@(dlXsnw6mP?OcujgnZ:H`q왿p9y8=嘤)(g;p0?bccҲ KU~BNcԽg Bnc/y/||"]2-:;8/&6P_ijM V̤ɕ]pyJV Z)oX:mիD,$ iin$_sYx#FBUy %mmp}wLT;͎tG4Us#,aP:R>[pؽy5/G{{S8\. mo ,)iKdrGpQGKD\5䲫{͚H۳B5z-x~;CIģXfAFVj(4wGr(*Jz `L.¢K:I]2˲Xl)3G(6inlWD:TW&'rFgNi=>^Mdڵ<dVjklF.|.}L0o&T͉"kx__o_0uECXY~N3hؾTWLBBvfsQ[SEEe%jR[8'?CQTBZsEb!Ha!:睏.*93(emzӎfwrB0jk4U?JcH6ߗ}gqa֑/ n(Bs`Y1.Y"޾Cg ^^}cVeY̙=eGۙ9=+py})`Y hiKjr͘14) BlzO RQ8;`aC-=`K!ވ )kU6 $ҭEX R#-;JypǝNpmx|6VA]x4_|y:<PBn@0/9H',Z0d2}ơj.TUur"8E gsԩ̝?:@ؕ.-.$.np BIK!:*>KՆgd'(+OkBht6arɧ՟'/*hvAaHNy(BuĢa\./-- ,^8aÆn5^W7t)@D"a~=J8A@xONЀNz=IK.=5!=a4~J~0 %)דXQ #L^@lt!E|<^/zզ3g0kg۴嗣/^ȑCӻ?>4o]V !$7vE ȒHlRWJs +ãibq<i`XMdd^4&P:M"-'Aq";{7lW%Ėe3[A)]Ip\v7Mv(k7Ky826bՁjsKVQ7 Kfɘu`w). ѵ7͖W_A<.dv۹,HI!2{|146Ԣ`ѧW '|B$(6MŴ,Fl**b,Bu:imsr:$MWuLfavF&9-xi/5s)9!0BޅzX44q's˰@<z- Äot{(Êr* SPR._r/WoGW/zS5}! Af 884i' u4RW{U x$4clHLYZwauD[I$BiXbS,lUz! E ;k h뺞=%˲Xn7lmnW>OR!M`Idd6/?q)ux$5KoX!ه?_EJAa@m|WRʚ&>_MY~ /O>ǟ”znDb i 0,Rɢn$ ai PP/ :z.5ז #S H , {DZEr"*$HpFE;?EFCN[< H֢iAjg|h-(S]B\|odY6V1){5p_sƄDYf#,\K-_('FUm#E%8jjj?ᚋRRc'k9cYq-nվDM2 viZj(y @( 6k$y \kA+ݶ.& "蘦"rmvoB ]>?:NZ>V]{ܕap Bw{s F!!$( ==].GU407/zK=kֻ־&[Ѵ(7>{[E7W-JddA{5ĮP">JBH$(;zi_~uI< %~%T|?`Ӧ̜9- ݝ-e5z7_ '&/dY(H&Yms'| 0R7 bvtc.FږU!M0<#_hG~$M [W7̧>I<N; zvGA] qo\|9}BPTt C|nUMbld!nܱ|5!nV 6=e s;lܲM"qO&#H&BƉDN,GUU@(쯳c,{w헯 G^%~ zc΂'2y"P@hz˶Q]Ruih\@!#yqpH02-c#oW||s9/"38Ux'8M0ɡ-G?n͝u^Gxqԑ| Kij,'hğA5،D(~`cqmBE6o@_oTcSO;cŽwB7T+ 7zOXڈ"bEA6fx2W$mh(ʹOE߆inMS]όx;ۏ䍧;nc;}{!3?%\@b', N{46Xf5MiN;+${e_xzvRnz&ϓ\ː gF v$ľO1R![zCy4Rbh*RXa P!$JA A{W L]|̘?3,hjzg10rQpx_3|!HHt8e,]HybUKr̝;Y ,ulccm"~DZMC+7x~(QwE @C{i: QƧ?%:;'3o|>;?Pv8CWĻ~ղ{7lSۊP}B1bX1"@Su4-LHR\ϡ*!=I ز}O4U3^ep,MA!Љ7R/F!ōȵW(]uk6m:BQ)(Of,CZEtr,Dux, 2cl' H&}FDz4wv=~!|mYH_ֈ+%NH>Bh|?\.%}sd.B%oz>6^C$A[ہNE%[XŪn\&4w+3|Z44GP8hafd`=M*>S N oVle~yan&x|s'fuAP(&?aŃW3PO_- LS@!%,k-A<jt̝/ -dv @EQtªF\& }vcۨD T)Eܒ@Ț|/_Kf,˝-}#ZaxhBE?&x"}An]/_ra$J =x& ,t#ET1bf@taͭ#Dh!ԐECKp8fI'hhI#apտ?_\}w“ r-3\ Pe#_H.R0&`W @*јcT]p,#v<>:j *hn¯|}ms.v\6 rNCl2֫[ R܂ >7vfq㿯E"dDy;? \?g!>Y~pRZ!ݰ&ˮ"@5R R FFR@8Eɢ%K~=dd2!ba|$7ʧ!C8̞%8b:\8Iz`;S ÌDd{e-xs]пl[ q?w6J41Y1*%t:D(:%7׾EHDչZl])-vK9~JgYO\[owFcH)  h>,QCC%%Zyr.blYŵ) $P8pJq=*bmu46O4֌hA?H6CQ"skP9R SB}|r1Y`9B]mdC4N>0ү*`\U?ΝBݖһ fA8bxdH4&Ļ.<~s bȃ(zTb6h;egaBj|n3&Z{:YsX8vM@<5ϒ/"]TA)1yL<EWv0 F9OW]9HӴ/|T!KQ,9BTqR*i A>a/5Jd-/j_-3lIVih  %x3g9S7Wpιg Wv(by; lpݵtttYw(dK&~t5n r1ϓO<ơRpv&1<ԇ2 ۂ]@ >DDٌfI*H+dF@&ߥjQDb~3]Ɏl&38 l``*4dƜ}Y`0/ IHzZ0I7 a(rU*dZpHbB\ 4*>~esO>0Bw?\1dwDı\X4"L8ɧp$#=x>~-ZCdž:LꚊVY1oykN7>X ôe; v]ŒVn} ҷэv:&3 0}}4bƺ2 %QPﻏ[*Wq}"GPʯbxȍL'2jIդ}\tg~RcZYaؕ2BU8?t n 'cf|pLoؒ9GRe$љ1#[Å7fQōI'%)VTK [<K9oyX "Ym_ c;N;h >_W~4u q'r,ϖBOVI,Sgh/zϖU/ ^kގct0uZ'+Dbdz(TBI^a[t-nD10f$HƦE !=FCI?K$!*;TK6|u X1\bZ"y[S06MkNƇb΢8SrA^RA CR*˦x00DG}4mMnkh7\w3_RVL`̜&+O_"K?_MTj"ѭNPkN>Y8j}nJV~K~]RJ6RJ[zhij[rQ§.:!qqIfn*mD"i!4,*(H&fy%|a\P$]tnؓnòƧ -д^ (e(STc4'ji04p7Ffng濲jJ[Cxj^F.Vd2JB.k٬Z'W;u1 p(ď~MT%D<!:B  18Zu]@όj'91H|,G9. j&_~Xn 2h aaJ͡jP,dTP4I0ATj& 'ZuhXI(N1CKT=Bi$*::%b1_X>EHL^J8e:y"f'i.잌nxBn^|wP}AV{_mJvEҠ!4U73'F:eTʎ#ئ (8a(\_G^=|AȀޞ^FXd2cc|hwCю"jB:TI4L*ل2#=f4%(63&3ɦ71yFRX'W!մҷD"I|#M18|?]'x$!SűrX鄢&-U*7] ¢ԘTPJ4ŗAs`{ue;VI!4l6G8}ؕKYVwzx!vp?kW@u~qe/m gf 6R-۬_06:o|B12crLvCM䊫C)T|U`SP5AD$lH25 `P];52/K?fP)U\jylol5ihֶo8^w=믽t#cC2#\ok׮Xj}|bH__Ag}pf['p-կSelt9ݏQq$IϠb` tq, ~Jcm! p ! ;)u*N\v5K=dG<<:+]-aM8N酰,Ρ(:@cX P0X ]0ks%F Fw[y?wGڧ."O{/ف orm0-j݇O\f} CG-ͭ\wߙ6u _߯Yw' 3 [|֮YŔ3dœ'\G2g7P 9¡$>jMDSHYb`m8~يQT)U$&+iiZD E 6ÃH9)W7Rm@JMVˤ=h &-G%d8v@I%g$ؘfGqR5cyu1>2PUps?$g-f*6eOK1~(;i"(|eYQ."`xp Oe_Ox5\.Ǫ+6}}}yΛ&Ɏ׫VA8M qcgQUz%msaJOC6[fL$\L4gW˸O<f-ޛ"ɕ\\ ե=57dʌYhj-Q"fJvABk$j<: Y*u5Z]_q?' nJ:罃7R?ЏèlJ6'Q'OhcJxD87HmpH5,&H()E:: rDzG |ln%#ݴ2B؇oji~Tz&pLf5>?{خ>x}۳lյcV.5e mtCCKGg7O{|}7? 뺨ZKXVYpWͻR?nPl]g _ތ&סdR*PG < !Hohj+4

    oߘOjv|}x'т9Dq9~}Ơz4eIo?~KLbV/f.|?A-|;5:w VoJqݡ5Q2j0:JL:80}׽\A("<ƴ.v$Q њn IR<:uc >%wdgBiO1K_JnK~E^7@ /'FXilV'CZW?tP0 " .1ߌlN CB Q UCz'd8*6 ח  ϱo.[0ChL7ۧ_CWvۇ9 =%tė;!_jϚ'^>#גtɫ3+Aa}T )),i( >_"V;?x zj*bkOSlึIj;!̬KLoLfQq;-`}aRiTJ(7Ĩ I*J/aZ0sXv \.׏]Zږ 㕿ŝT@DVq@ @qƴu[R;Jߝ&U:˸\E =EX5F @ vc`Ζ)쏋_T=18O [4dW#8fF{*!CEKIi}E'CGYsT/!QIҞ|2Ko?5 D&hb=@ſwBe*)J;6^2^Z#ue"do {] v[Pz6Zv^JLYeƣ M|>3۫Cw"wCj˭s>bشf(E@)K+cRpsIf2\} "+pG"da܍ZNj X8b_Oz GdVuhvayz@:HKKP$=q[KJo,!"(͑smlB\G=bAȕUpH«;3'K/(dJR!/!";]a>" ngUV %7lF>M3':#g}K#͸֊Ԧ%|ikY{3yU~=%;,x^:0-k9Mg%r6W^];^Ά<\qd:tfӃc2UbZjov B7rm[ ۄ:5sxƈw6^ o7!*!6Ə6R $Sc z Lt;}uk, }CfpE+N9#"8uW5snzbj y=^bȺJ<ͽݤlt No{7B= ߜ#g|i܉mgt}ݯn!V]ke"< X<\I9*Ľ-{{Ro0e"C\0v@>G>>I@I3ul +t?WOkPvϐK4* [gߕ2\tO<1Dcn 2I*wTV^g8_˼| 8u,i_9E:%2O.*Mf)Ҁzv[fh\R8E6_YnMw ǐ uY#"Iyr5U AJ(+[v" )9Dg,`3G)5O%ߐeR$-p@%QrO%qvQ3$G^W1YM"` x(VO[zؚrr]I41`[ =ؕDr۪ cLc3)z\9$e|.=gGktRVy!6'd+,Sގ:E cqYpHbptK@6 Dn[zi!YL~5Ä`YQ݁ Qw9ReuU"]6jO6ՏIoudØp ˓PibGwYAM(f' LA:UV;)kD\h?{d]r-olzVJj5 s;.!X~P(,qXWB)30 ]DuHMTJEmpʠ$oMXo 0A l=m-LVު@ze+Ga1ؔa^߸ikz tMrt\]笁/a?ĬUTez(  83fp'D0T4:$A֔CN2yԘIuvM}SÕ@^ byrPQJ1h] /b(7)0PȬZ%~ 48B(PD4 A@L/WҮ\JBNuuV4$Ұu=/;޾{vq$B{JB`&4nx.RNbsZijvc)É4u6睜O6x|kБclj+ C_É C-,}>r^RVJwl}[.^8&S8饭w?^jD?k\Z-p$RER%‚,%%a UW"bGF;zWakِDߗ?\K5Mnc@!% +Yo)ꐈгh=jA Nw"D8-'$8fٛ*d~Ӹij=cb&U܈ b2wK^:U=77{,POv#qnЄꔽDjIs_()ܴj1BS Y<蘊yŀ # 4d>ҥCP`u"8^{}/ܒYW%6ͫ<*cSW1z2YXM&ퟒiଽy4mP؀MZOy|z=uɧ>#+(xL|Lyu!'P.DΒ_9^o 56?BҠLi0;5IPC;:9CHbHi[E1ߔvB?L4HKޜrTRrʕk!2|^2'q|[GJ6(=&}jduZ@"0F a@YH  H*A{^J?W?{_VެB#@wTj߯X}ekxt|~g&~m?4(# A(P, L_9^Qr[^Hd.T{ ͅCeT={' lŶtdnn:=eo`P_E*$%zTPL>A;iDT|ҳRτ`U7y.e34rぉo@ #l*]v]<^DAwE& /r$}fc{·b]Q~b9R3]h oTYXǬOx(a>a7Zb[GzF7UZ}d+ܓaئ667 pj۔Fi@z LD-%b;?]XF߃'{UMp>!(2OU2-1\?yq\_6l $Bz1j(}"238x賸 0 ҮY1\(d] fnM`Fϐr6X !r7گz'$w1y;v8v?)9{)P}eTe]8Nh]bN`RXsv Ea9[pVon(O70rc \ /NrJޱȝv5JxىF+/sQBѮ,i\'Km"趁YAQ'4yhaD2!d #ѿ[wY}KG7[NY@ror ЖPohhF,Ds T8"""ĥ3[P%C"D ʪ ,^OjVc攄@ 9<)N$&QX9ڐjqIγ T6N4rN|rPu~} Zhޯ5lT= O_neܻ v1 pHrkKmjwN)e&/c&^=T쥀v3u38%7tʵ}` C\6D֏ bKI)TDH,p>GA(GJ{9[RT"#;:4& /RVx'm N(K1}NʠҶȎB>N?u6CL`nە6k9=rF`;adMaRQ|M43F*Ex5nE;4L)%xA0iͨ2` ջ*&$~Iq+@>jޟB=ׯQ\\stߪػ,*eNQh L-)X_oɥ̈tk"X ?z^6: b}[Q{c~[PId 16'da[Sg马2ЎXԶҋs"!c{zwrk\@_V?1w- H̫ĽBG* ;w:)EPs_ r{wbGUcfy@J~t~6gABKs+\kϪk|)ôγ wd(4i[?N WW;Ch*q ˋ\mhb66zhɥΌf揹P؛v&n˩2HICz?p?' =n?0=B_vɞqr,JvuZ= *ba[<~ eѦZ%JALF_ݑA~NZ] SG}4o^zo&S(Oі]ͯm>^f +.;YA"'c,əԃC PVZsHƿ% .G'lH-Y.(9s=x"$o㦖d5%97N8翐M<"c $o>KߚRiVu(^_J,W,?(iPʪe{('?ԎD+:{T_XMfZ.CS,47 4(lr/ЂzѸ 7^ g~et&_!{+Y͙DrIP!wO_='!gtLq3= 4[}r om*x9yƆ:vYnt-^ Ѫg:m 7HD%h&8"=+>= wCP^_f*M=_i6/p2ATf/O/.𒮖iP},[c](ϚN9] ^>"CShEI]#_\ - YGNy"ؙ6X\kͽ uѮ^pEiVRwx"|^Uoű>mW v띔 ܐ?0PYgt"`[bK3*$-$,|7pwAIֹOiK%UUȝHSמVY7i$ j*o(66%vT2R^4X~1dV;pWI#jZ#I^;츓oc$CO}_AT)mV "aQlчc0@Huf]nH3`voMff{ ]ƘTKgk-w*U[Hg!|~K,҉tҳdJYLo Jnܜ1ݧ35A[Y nѢ8Bfh)S"d8zBF)`;? U3JQѷWvV~? ?g¾c8M&VpSXjƲGpG8 `?rT{{HxY a~:m7&}"QXfвCDo8YKYưB=Z?u0 @UK8GQ@ eFfT姑fKk22*E@ W bKW;DIV(]͐SIu+oVq]3 6ětQF'vyQ@Ba s\^8:FY75Z' 4$̥nゝ"'i*׻+7pWb sb-'} vK88+OJ葹xE4DwBC϶ >삇\siVǩY*vЛn׬a/#]$+II7 l7{|ˋMt9Fv+$҅g- 0dGF=kJ5z`O(KmVup AcKCS:?URIlGQSn0bM7^_U -AGg KN~5NB;*(*7[\ v1W7BLh꽬V@džӬd bXҧQg^o,V{j2&Hp#Fnު{į:'*># "4MCZ4=/հMw v3ϹrqlJJ㬇m9Ef[Ʈ_G383‚JI? "h·q$ D<;*xe i{Df#L7h.sFs#7Oɒ^]hiNE%?К6gqeVp6?=ST9в<=JFJsPg@f w'y3hV3[5hF!I|0V*'%CxZ?n3MNh!^";2e9Ɗt^GI]ܺG?*/Rr{2`:N:*{Xt5*jS8. C6734t(MT}XOjɾ6IXMNm+ l9{-7uV(>nMͯfP|i5)|»wd{0b٘&7 &*# y2TI\F3kq xr,ʘ}:J=֩PmU7LxJ7-J@,R!gTQrA.kq#O΂T&h5Sֺ, }x9!oKLĂ4pIYlkΑN2q! |tKTp1`cQt(yd+QXMgXγ]q/ۡ6 osy68uDIFmۇlwO"]VZovh "SX;m)K9i\sbp.(|(J nŎ{oTJVZtkrq?-Rf%QEXç- Fu!|"˨Vq9hg]q(Go{>Q.A'P^(Gprea '"~^JS #V^T8h&CCJE{8lO|īEw8tΒ[9csL)@_@©v?Onlq# GoĹ*]?,-0@NܰGuZY ҟX 0JAsʐJ4=Kݥ5JE|'T=\fj0X N=B$}!xuzՑ}[޳YEVfVfL86({<6f: Ux\C/1b'%hnX v}(@6 都?Du\aw!RJC++y$aL9;Ǣ/Uݴ { J rZ򿚺V\E2)YꝁLm*G/v ڧï87%=kΝNuxQIGw~tv4XyX^ Wף[ƛ[Rah?spaaƀKNvy~uEq+-5 ]$ Æ NmNg̑w2t1 pP']~ZJ$T(+ @,$!EPL/$uY/z⨔\@\9d ڤgbE3M^nn,'F:bxI!w7 /&/m hkN}!((yg9zSjm y8ƹ֩+ixszvcᴳE!_==n8%mD~x/`f {wRy}_6WmNmQ߮[VL3@nfS_O<ʗK%EsMgtV;&V @ˠۼ`g94~k!  |U?!VvCA({Bu|¦[g2eSՂ+ip3KG_ir{]`8R # PZ7KSYwu] t#EȁsfRkVA@Ey2قFBfXgXC/#A;/_|lf>G,ӗ[vS`O).?YA6\HEDvQjuv۱{IR* ȼs !!qA%.c ) ⑩h({2%Om.SZYIAP# w.sp Z)^!1M߶YxwVp86TuCmr8RY'.| 9]=j%V'V 2 !+u6i"K%RH\NØr?fK y›;LpCoMp iƳ6% RSV\b8{nc8i:n]o6UǷsW} \]:3*TI>ez.y FO4Bn-,І|.8"WVIp<.ff:ë~x37 b1[jg]~!cP|ґ8W] M5^_M884R;m|F+c@nk>Y&/ZpW: ƌ݆Ÿm=6w 5!RhPlˊzy pso~Fe?Vl]w"36wߍk \Zl~ƾCњúPK34¾-l]'j/x$>5Ӵ,2R 3MxwA U%_6^n #+abnI̭8橜y2k| XʓG+!>^qKg[[sX܍DZFX]L3.W?$K1߭@h* o- 67 N]M ` " 7X?r18ƃA{_zDz0d1W M9xueX$O)vOw`pjMa;,6*XSFo ܼ; k s.<ʝLA̯3)}@&(GSu&x#mɨŸڂ6 R {lwAS~u.{Uz/.9z>Hoy_SN! >D{_lP8KP?x_OeIkhWOzuqQPyUy)7[PƘQR`8K7QKV|PSlvU!Himn,R@a4ý8⻍kJ#$<ƃ(nU^(:E1?бRSKM{ao*:Xut>Շ~IQ}hI4KEpp7@<$h.%v^kk$ Xj}V=UG`:60#_%&^֛ۡ¤|^Q[ >]K?1^M҆)j<о]"]5KuܫKX2zW6ΰBΧҥf@CMV:p_?D@v'[؎xpXE0mAv4m_:97HvmȠ} \KMz?.bARp׍cN|$2Ӳ+QU[Hr ;Y37?Pi1Fuj23& Gfɴjз1t4-;0`gKzdH;E@7H{k3zӪ_p2V!2d6RԤAd~!R.kXC2G N\zqIC>ݯ)λtzYuDzjnlyݑZM!W1-*zqۚ9g !ww~5%5m%("IܒHlyva'jUDKiB ēY [" _Ak ֖ UrL~l3g|Xo`sΆONL9󡰩 t>ݠ-Rv@X%Y,Yʬ]] 0"K R|͎64f7x0p:)u2h虽"QT^J ,,}0tફ|7ǯ(W^<҇q4DBH<8(< 9۩9uBFĩhV* Y}뉤pU5$Q%7qV4qi(r|KBTRݥR(f|t zYhCN_B3>ޭ `wT}gHpXh& P$# .Z*ĕ*I/wЙrOїU}=^ۺnmTmfogd QNɻi(Rm\r߇o60?_:念 ~}6삉+*p[%r5$l|0iO(b?CPHE/f0tW: ʭ_"0F c(P,9G\_Iޕ.US-R[eב/z_w=#S*?W=^QѣEIzUWsrzq7hg=Kh{?mf ~tmW!i }=<ĝ}ڧ[_d8n:h%.&H6adDzy{FjcDua'vqSݣ7jG'{R=K1ig:+NkMh NcqƟ;8Q@a#ѕ8l'z&b@HW nb|ťKُjgpb %D,?Sݫ b/#QӘ2n ;~Q2^(IVRp ML<ջ\gERdz&9:/AX1Fa8Ot̠f, 0* ŀ ADf k&u.^Tn4>7Q??O9~lpwcsyCznfݩN&Q/>HNM~otDYO {K=ܵn{A߷JM/%5F3U DAI&SD~i֋+f?ʈ6:K0*t*?iRd3OXT)S-U VhrIkTdKKuؚGiG0,\W‰xNuB@aJc]sX< FR:?}`d)E{Yo*k3=3 ;+.1P"b ̇[jd! ʥ띑oںnAGNPv04y#FQ`Jk'#L3s]Xbz^V2|N] xM{ LF7|{gkykto yQiRRwwfYwW $h4jJ\<Hp3} 0|S!{]p>!~|JP#v+ LUyølxL&B![ g+h <ރ@y<>Q*g pR;bnURb`pϮ9: f_jGX $V/My}q^Q L4L#;IFH[!:#+33,llBzqࢤܰv&OD1o2]aNY 7 VWړMǵVˤtD uX~ |2 tIjFKuQT|eS{BO:ޭ"u.6{RN|Rb%[tz7PO!P񇿨7V71PL+/ti0bqk6Z,iӘFx1Gxđޘ"m@amN້Ztĸ;gb-p#)˭rȅA 1#O yg:|\_<g"&DY#Mupw]`v4e\b PïU Iݸ)hx^FVc㉽`eoo=1}vq6v89ÎH5O̼I'ZV\ tĿtM)/\L> UR IHbkxwewWIχ}qu*ˉ{ 17 ι=DOpgNk7\J-fIYݏÚG+2M-ViА RWX:5 ]5"R n"dk۸yݿLrH:!çHOK! Щ6ӹX7t߹ (_̢=QWJ']| <`eH[ vR ]i7~9}O׻B5p~!sH/ĤLFX8 m4i2̃9^u ,|b2wU._ YxpvCj; h]rhh.( bp"ϣY,i|-Șg@CF56;gH}>ᅣGHEhߧ,95ɹHV}12#5V )AS T(yd{b)߂Dt32/PЬrYώgxR Q^رV=^^s[2fSP*ѝ̦ve4KöTU~+yGIMλ@̫""0MBsŝ wu~z ccBx:V!h%p hjPdɎ©H'T'" / (T$i.'O ҰN_yh ep ֽ&[NE 㐂2v4<++k([Aux*y5erjL;8l1@u??Q,,! awb w'pxqell4"`̙'B&0* c Hb! D$ BAkX\%k$$˪h}Hr:ڿ{2XHgx{>U~?9H:g'<ӌ_|q_w xҾKaK>|.L͞0,_npN}1~čIMQt{}<&)Hysamc48OǸ"4+@l BBH&BAD/}UԩWYv$ʙ*$qwe9yi~<={[/NN;䶾Cz_RghE3Go ?+>&dmz.)̯CE%%Ud'5KPpžUݕ ~Q:#ݛһAd7jBո hPe <#VpE;zru1AѬGUMe`6q0,M;`\x BH?/)ٯ%QG/౗MTm r`.@wn( B4R磵5@T;[[= v[j'FqdwLc2[`۳ V\iMM NlOg}94WEkolas2\XmW6ER 5A/ho# N:v=[]YeSV#uH'd/U|gC|3\I9ZsD5d..vuCQ0RSpWT›Y{lDPպRxOLfov1`>G?l L0zSu9*62~FLd4SB.XǤؑyӀ7 $55kdߏ]ڟ2ӽypD T 3dX$fэbo?xh!2s n8X@m;j f:$†Je`{\gQsO^ȣh4c+5˪k'rlE\8_^ 5KR9l 5BP$S#0LOVMi%泊BL 鉺Z2~h쯿n=^SO$37E7Y'nq|9^uFؑ|m4syG?Ivuy9fuX=Kd(Z ף/YwJ}_-Ǹ AI&SALv<؅͕˷*U[f]=`He3'xUl(`f U31wمap; ͻIq΢NgJZu1_s[{';o@Ҩi~:\锣mS"q`nYE6,>zIKvRuJ*?tvMP/-[/ +2W2'S E7,%} fZڛx@,‹D'7LR+[m>=bSNo]7}% pA5Ag^Z);O:/JxnCZOLP#dS)T7cSpI, Őg,B 2:rZܖ32R&xpJr|-l}zMc[6#ra&N"YF*ɝjB|С J=n\d 9o"/jSOu:8wq%V#1eOopzj/*ظꍛz[M-y LPn=P,\5~۾%/qPKS,znTgH(IFz}7sAP0Ʃ:460,mesN_ͯܒY9kY2L窈|biTt2ϣ%Tf:]謀F0P] lHiB2NNcDCG"r:4)%8]vliGQRx*X)lJG$^E<ǭx! 5[ux1铊!3U|.\"b5IW 3iG*a]:vdb %i-sm/ 68Ä :OXXV5VV'5Gχ+rlts:{>S^4L5{Bl,+fPz.c}xZ3f|6l]\eT C5GZrC{aNb5d}vP%8g@7ZZ2.tmףMLt?[UxHCa) WL QUJhwVڥYz(<ŒnDM}Q}@?v8j_4t!.-y-ZڃW$\AG%uQVHom 3o{F,fdl7 ZR#? HvGW9uY{8&onBZ[pEJݿxp:3i;Og,3jy14H(!xme(Gӈ#`6t4a!&s \=jnde ^B!^X톘N $mtt};;Uw6=jLG rz {;p- 8m̪F_"Q(4i L k\Gy+>0th]GƐX{*f3n! E*B ]6lΧaiًy7PyjBtufN*&EPzXn10_ȔpByLoΠ x9/$k_љ8y7Ok浧ނY~pV󼺖qFI{1/SY<<+ C˔r;? mF} m7Ѝ638z{||b`ჹ U{- o&\ R|r+T%O!4mE.)gvUe6L&q?AT hY)$G.$7A )o}}EH΁DF>eN." C.(xARI W-J5tyskK(!6iUHri'3ӝhڀw2ADTw)"[FM<\o qG6UIYH- 4 ŀP,$A$! BAL/ֻ]i2&E]Q{x|Eus(ѷ(IrfSki)A&1!"AoZs~z{vߩsAnמY&^=ې߅ ɾ 4r~C={*;WP3wRk(&) rbvֽ z?O>H$,TjB.~~kMY&Ѱ-e1#%IE mmݶӰM-="UgW"dO)>ATez2=7.irt&Γt9N)OxTfJ^Ls+Ft}%i6D\,VxB"_n^Ժ3.=CfZ$bF+ndgggm5'<5cL jwyb(S[4QTz2%(>x" %|pgwQy'_mQ3i+h'!s,lŞp1%ӝ Ĥq; 7hf yf} ̖/V/ m7d%:LgnCu"PJ~$æuԒYi ɴ?vc/u ! )9E1.u`ȷ5FRTƌ{p zw O&$#ߏq1[Qg4&f]י2lqS TGloO޴pG!4<K䚞rؒU0 fW͖4ۚGuO:F>sc2O_ ETxi88㿹GsVb _=6p(f}ia$D{f=ڈmPT.m8#ʸ >j%~ ~SegUbeuXcĶG1b%wr&P02̵Yހ}vb$8 NVz {짠 c/ к4\0$0Va X(6 !D$ Ba{ȄfԫZn}Gs7T<߮g߳VKZMo+m\9UoUݢGPj|i-@ w>~ztǩVM {W:i0>32U g^J{"Ƕ)Y?EV3,~о>gcEhҫ# 4(A0JBB0f̯;̹nKJαfkK_AZ&gVS]j; x t:0?&k_c{ 8@?lxr97V/?_7 /]ݴANM,Nߟ#)Iۂ('bԲ^yyZroD0ܸ0[$c_pϙ-Z/+vpsBۏg(v@x3\95˶..ǝOˁ=g'Ӂ5{$00趯d{ FF+&zNd15-N"|0PzH%zylح<sl˺iҪ1Jn3 n+|hV21ѺV~|b?⃶J瞛5K@l\/?ަ(qVWfa3tİ3yIZȺ|'. 9#n;1;f6T¨b9Χ,աFq׃XwPi<~PIm՘E8=nPwh?2ǀyPl`ݫiXgCFTb0HVǮ7`EJ4 N-kPKB|ͺbLJG?q7+B4Lݎ( (!ɢDamГIG>Q vPNw%>۠0=Q8l~''7Ă6sb-H'.|P9W$yb7i~^lSFu&`z;G6MY2Ao8_w8gXU)ki@Ъ=DjyB=-cDZ/,rZ%*dmȄ(t6T4پHo/ɇlp@`|pj_@0}m9; $FE[jKr3dڈ"n^;+t dp根O>g#b޺ p[>}it JFaW:|Pq$xHz}΁@FFɚ=DKzMjHH?'II[40'Xeu\#1MqRPs]̐i}7P2< ʄy˅eSo0- 7q|rɚ]!tE _F-l$䯬_kPgT-[cnJw .d Vlyޗ=gtZFMZixm0Ԓ&Jѯ84iPS"_A0hpuWjmD"{&'!5"9yMEvOY? 5s2梇湸(z3G|rmI*D>Xp8nnk7mG}·B#Ҩ `Y,:.ʺ':B$ъUT5ZҔۇL3 Jx]avȄrx9O.W <k(:3D~: 6B$E:Yۖ.sUNHG!Qp2)8$Z7k::Qu %O)w#T88-jM)wd^^`$&l%]ֲm7GT.\WPie ME|FboH?I+ 2&866\ҨJ<1{nz PǀDa 'TO2ju(VkZ3]_BdB(P".T= :/ ,+/*6c8H4p3t0?Q?ĉؒ*}^QU!;jrx,s a l3dkr{bH>pِBy;}V*ha.6/#!~^C"ӛ>]!-Z#Y#uw.y U|ix]Yٜ"±VHX$SULfbm̗ I#0RV= HE}=95_%N,7F"u>rݲ ݺѷHf0bGLYkd׭YX ?])^ߡ[U[OVߵe~Wowш9835(Xj*|zfs$EV _aC`j"06<`X( "HbB R.$nᴟ_|޷'hy%6Zedm~vCvTULP$3~79'b4׫K}0_q[c58~M{K6m볻GTtnw@#Y?:o6BxԦi(HѴ|&9pt jBFmUJ9] 㑎]ǖzANQgYfPPX֜ *ڲBM>qtֱtX^>n" b^wh~kdTC&X%wWrá1 օqM9y^{[Ew%& Z1mf+۸r,P^d  +(agz_; !2 tԗ ]}z}BUJ=Pos{RgPQO[\SiRN 9`iMH&C$wR-:/U%@њuŘ{@g鳰\bFY3DHO[Cv?s<,٨FSNtk#Ph8KW(F"@<ypr׻ ;B o7J}T?Hua x+#[ǭZ@Nπ 0 `X(R !0]ܑZիYp.Fe֪\_{s>vK~zUjTkeG_ 6 [Щ rU@@@>%0ONx9yHwy&2V?))QE7bv9O[¸kFK)EUBP‰ƥ']mn#o$y"0 @L)ID/zޖmⳉWU*U|^>oSӯF9EԷW ze$HoR뙄Y皟u?rnyg$ *3A'?zFԘ} )y+Ys0PѾA)l!{ǁRki+.m̳j9uZ**{*)U캶_]A~ {)16$sdO80|?MQ%iM/7|0?yOU# tr$mY6gN3o-H2W6HKClyYRg|{Dk N] Lz?Ҳ6)y'x_vbNrT̵[Qϩi"?+Y‚`9bQ_yvоLcEIfwxn*Y\ j@o\'՚׉2!J!M&nm`3Kc)_/2O%rx#y<)YyA$} Y%lŠ&5^Yi Y6,X6̑= #ĭ䯳 $NshǞ ~.GFi9dcǃ8ܲ ;Ԣ&N]]~ZgTv7%$Q#Lht$ `fjy§@_s ŷ- =&)9ZC(_!zqm즭+.1qu{rZֿxJPJj\d sW][޳WT ]BX^"1Vp']+0>y,JmjK Sbwuv4po&f}nqAԭ,`ڧ]c̼OB&% ifފƊ6[2]ֽ)Vlg"^ۼr6Do !yG Pyc >rK&q,0xihs-y0w-n=M잊EG"eϥt:&O(ap>j0 .toju u ƝmlZ(ݹ L6@˭Ǟo39tWF Bk|4xˮeS0AUS%VvLxO\h~#%jnN3dvjBt Z l|D+t`d ;M7,ХYC j6ӭ|vJ۰eik}`2rz1G΄GCeMaJ fK;A=_]Yǹ(`]b۳ߟۼݥA3VQfQtYڲPk`V@{{`c|k_O)Ewgާ%`6.)g@JF !ϨnGN5>?.V";; t{T5RFaWT%ة`lqYc-~jJ, %{ol. cu䃺(h@oz7 wߌYTo <| z yÊx^|3߄qՍ_!fsZPHj{R^Yi 3y"3(Ks3-e4q|vmwǩ[uX@V{3J?*EOFH+(A'9[O1|-N+@ ~7]LL Xj3Y|pLJ,\lgO[MN-дz-Bbypclfg=Eӊ4ߏz/Zl_ NHU1 )^ؔ&¬eX˪e" RLO0?g^A+.,@v6()sԒ>f6X޲ǿWo8A@ 2PEY~4=O:!N$<5re-wgAgp(`->_z&s\zS(\0Jԝe;+M(+.F#!HνxR0;O 1yO)T+)ٍpsc lVvC-TeCI3^js^(~):Ni j p27d dsX+#lG?Z yx^C$Flb$J_8C7/ C鍌] w+gRkW OF^,oȽ.74^ב% lC0ǞMnwCP[Î d)E6T]B,}7%xSИ#w! ppNjxxѳů8{MVir#Ϯ@rNbގŐ ~:ިaںє,$Q25Ϙ~HJ5n"'Y)g&h{㤶> ~S!6eZs zP&俓͂'v_v sFNC)?,jB쒄aսlOϳU0HXHlV)0 &8.*@?ڳuTp7Є 0RxֵЩhw3WΙjbFSy vUct X|wm' ȝ @.so#c) uCW{fP%V}9r+<.Yx ؎l *SrgC ]`]&HV7l~:,qs=QZNٟYx9jm6mISu՞y ZT&_ݧ PNoznbqPfr$[b9~lܫDi W)iԆ^lk w,LZ7ӱ8XBOߜ^9i# %wU Rr2r5V17?=B$P6ѢT^ZZ 'G7UbC iCl?j݌ }z~B+g;Y%Yy~RYqZ5U>XZ;5m&,(DD$ BD0ޱrdEIIYTt>_~5}{E}ce>!mVFMݙR- =EA\>?| dAF \>/c7z?~zu=߶x@[]?qB+$Tr䎉4;8zS`]@}ep4€."D$!!{^Q&U\7'_ӭ&?Mͮ>=}xPWh٫SauSخ7# Dv?ڸϲẏh{o\l=eow='okq}(ޜ IF? Jt XOs}ŷSO!ẈuO_q A.I&S3\0C+d/#ydփ[<=!FfX>}(Õ.zz'VA:}U8*hS8 =<5*˼mX{m9^(86ֲe)k>hA1}FmJ=f4;EBj p:\[p-EFRwmߺ!RQy-m,"-}T8KfoM5zolc"kPL'i YnQ!7nvqDʣj2 =09cḃDjC6%;P\.ob^ҖA"j/E#&:e٤c3o.ԳulΐO\#%T\LTbVeDRkcne}_vq7st,G߈!ק#(ۣZMdR”Ll묜ھy8`ٕb& ub%J][i m4H:1*um%zEi:Dj `.ǮzӗBy>Ԟ6vtGяyG Dz?)oO,Ѡu瘄 >:Ui:֘/"I湷0x\5:kDj"N5.!0{ /&5Q5qdcvOOtxޜ)H7l%1\h~ѕ > >76l1 61馟 IHpY]+C-Y}H,;=.Cr])eT52S&r*FKYZ ,Þ07b IGVeW^#34/8xMBZm.OtV#i1gp˰ĥ:1?_Il*w\lQu AO"{ 8Zfm {B&=IU19b5V{. o$GicD) VbPRYKzfZ.̉Vi#Ϝ\T@{^JWICtp =}[co w<`fuU_؄x!W%jTvRфb\1Иh" A-CCRY} _Kq$ά Pj11.G1"| &_XU{:kՊYV>؂jn=M, T`&t^d˳6j'0Mu\_$0kɳϷ0^M_'ڃ٬f, nofoyWkx-O:մr9{;MnOZ |꒮/{[b8i=ׇ˿z׻4)m۲1#sS?2ͽ]KfX 䮖A *s4@PM7[?]u+i S =d #kR'{` rIߡ}YTdUTӇ_gT풘H 7,6Czqwq<*(>C,BۭA4(cJAm`EakwJp2mHВ&7SvZ*,Ѧ˞‹#H_It-!vHTE.L/LKɩ7k(wˏRJp'] GR.bzaB&& Ԭn,O68n.HGd߷BMmBGqv!*" R4BH)2%r#ޱ*r^)7{тd.i7`V&voA[@tu ]`FI^gݵ洣"k#`3W.@2ěyƾ]Ԕ飵E~B["Zr7;DJ2D Y1 Wy(^ƑR sx&IԶRf & ҢqX^_ b .u62§69eV%|OCb\xxdiݓ9Փ& x^?ϰ>Jyy)^Xf4̐ӉS3Kuj $Y#CۗvHC3~O'_iZЀd݃0 `XH# HF ! _ljwMFiVRftx>g&w|~{{=݅KݑMٲ6ЭCܫ`^{EyGx_Fh|ּsqT8揄|],&x*Eڷ|z#> kP@iJ;tvRA2,API&S&0LXKвJv#_CK1 s|~yZ1=팡_Y!~@ܜiZ/2 1ZOQU& 3/nadزGe-`DB>u-EQ+2ez·/I9Η'&ΥG[3Yִ4m8opmjO=/kXa:50tqEAx&>sA1&-r-PCS2 j mTq<z_|$3sA#[[M#0-2#EzeHOF#PބJdbj:Z$M%(AyEX$XƢ VP19"XP@vZ*Ӿʃ[J!u.CO|UPtn~/m=Q.(.ĵ~20pkS/ Zޤ.Oe;[4A΁l-:C1໢|Jw$a^)CD°@ԺYme"D2EWoR͆ Kxڴy;'Ӈ5g{3ךY/Y@vo2f]cEY5YOE%RG Ј9r|w <'MOtࣼ$ e{}.<s0s>5-kINSC<:kHykB<ܶ?fb諒 D2fIjb]js[Y._R5|NU @';BN(ϩ僙wMJXR@,ƹ+Np{a|N`Qh),G\wmGk)aʑZimIgT-{awWuiO-v>AɆ&uu[=\UM%GSHފB&j6LC-WW2oʔ-Zl޳Za"%%s1pbHȄ9z:q1LuRGgbDJtLD5†9^H%a4FC~ yQ7Ɓ=a"&S(Ǽv!xG@7eSyۚԜęRqİF. YdBE<^ãEg+ΝSybjB&Pds2U?׼*d-CΈcƂ*LRW &Ŷ@8SЉ![ {Y5$*L IWd$pʠ]{8Q^2>VbwCt%9'oPؼ &pV_X B 4b5>9[ƔDBl(Tb~eAIɛ7%By 4`-Nt"9 ]EGW<[D@_˘1.w3_,$ԧۯYeS=hB2߶/Zg[]S\߳YBt~x/p$ mm#SU:5nXYI'hzs ?ycbv`:=+l>cϋ5VEu\Zv $r"S=rP{ڷ洑AL.URC"C [vcٍVc p"b)=ߣ$_=9@vZ|aYQLiXz!u!#dǚq(}tDrٺ$$j"Ij3&èZcM+x Dބ]˂c,; u4,UdP}{6q%ߒo~_d3$?CdK1^%;"G>azE4.[onm5d('x@v gQ~"'l[™Ln{_Y*OG?oJs}-J@M@"06J‚PPd E0L"""0fMg_wuuy5UxJyʼnwVo6l^vn~.пgLa?Wԟ:@Gv|z|l~>;}vu^9˅Eira$vo/'W=Tv ] qVxCݡBiuw-QhÀvojG̪Vb.xg.(zok'~AӷE `N@!lf0ks[8)OiV[z-cI,@4gz[h{DzH=iw[,2ba.glp"lq?wJ3iLYкXw|Df֙a8z[HtKts7UE~0k Cډ,sa~1H xa$4Խ,&fPuk ha80!g@$ ]Mc;D3.ϼ18GۣieT/VLH^tBH B-cckpb/L 9/`!f MIՀH>l]Qa{wDqsŠ1"ME[:)'X]lXA${'kOEPf0w10:G,Cie+ X\L(KXLz,5o' wevrz AY73NQŋhl ZֹӍS"i=IY\*J8 @DeArI&SXBUtjqcaT)-xWr]K)IAk۹0x ؆ܪs \jmlȝU8ԳY_!Hv"i[Ht+VN\{(L%%Q~3>'Q!|7̻Gmԑ9eI|"uK`#L DG|RP`Q2SoBw]y)4P3;ȢGG#h޼/$g_ɷvY6>W)G`O%[N ajֺlsf͙}W6$l9B'`AR#i* 0:A58:x2!g4g9YD9zsX%y-p= ln+ >\gnO:\6r q!H$KX 눿-4P9y±llF +0I?ws̞[;/rB H{ɻTȤym_(/$x۵б`w\T k/%7P| Vf o(2RۮIm'D==RBt>t:13[ t Djۊ[ ςlˁT-q DQ0bKT+̆ag/7|Tժ\ ?Ng<f}NM!U-cKF'#7"S㓴A'z*.(٨ka͂qJ1buWI7-g]tq܍U3m]Q"$[8@z vBaToM>O~ iL:7=a60kw{>YEImN?'X(TPljcCҼSg.A9f5''QiS,p/v! +uS;UpE|睆z?tI0)F޻g*K Ew76Z MOfK3U2K\LGƖk(,[!iړc0M9O 0zyܯHznCd1 -Jo_7т 7 +m@Gu'G_q_}zgL'TL,s<-r.}S%a=.8@(܊J>%'j%DT.ΆQbk :dEza.e pw+L“je[6a\Y_7罋[18 yU_wm8Aό!)˃I]Gt$]IK+FmΪeC b#>4 IN hI&ݧRT#(?j'`LL:.r7!G J 3쳟, m$4F~=*=bވ੅Iw7dV3^?/1Z+6T C\5[@$ y,zq*u} .&sFC!Մ0AD[ gk;+A ]?aIJXε.y^ o:0ԗʗk$_QYat;2AFeOORBOto1֚\3D.<7P7A 4:mDBEi1.4踌1,~r֒&tqCoo-GؿQ_/.bdN "pRd0-Q~@K~xJN\ߑ_lnyTrzFP7yU"'Z t'S.&<Oig''[;<2PVa|?=6*s7e6\]VQ$k]WkhpR89C jYzc8).U 0֕>wiFvC7ݨ=eTU<8 ,odldy3!F+M͑ Ň. ϊ>Xn"t"EltAhp"2 d;z )W͘mjA.̯/t$B{m֫@*RF F6_) 06 `h2! L" ^y]DKJ&l=L?bIw>^1]SiտOZms}^Н@wxy==.nzs=c$=8T,OI?q|p9gdܜ&"l8`IܭЬc]":HoA(Szq Z+8ڍ_@p(.A0 " H" \s<߭bY]䲭{Wp5[2^OXuE_?\Oʮ?zvkA;G4At^']-+٣EzݾMy5|xA)ٜ[N;g<ζӒZW*< m,-EAT*<Տ^ϡ AI&SgڗBn[=Y瀭m5eWN(sm,udX֯&m/BbQtF|jN᳆-6TG/SdeU!S&^V<ܥY["}$:JPyMJC_B<N.}\ vk~)3Zew@)jH_;Kƈv%ѿK8ĝj!:dz];eO[ľx*!ߵҮzɚ0L9߁ʛ\]|׿|j&X~mp~_]E8 ^"ŠZ[3;mTD'+~1P<3}Fzoe :蕵WЏa00HN2LXbW[IM_A5mސz(5eI%Oqp ^ jVȸϯ~K HmMc[,a?5N6*էs~tprp2+ث(r4Ueƣ<Z1Sf94ѻVqzP[AOB<6 #mE3f#Ǎ"gA+Ux莸^6TQK82Զ x3 nE#Y0 >-wKN`{Tw3-np4q+%\P N|m\6Pkp1c÷,e3Rp=9Ǩ'A*~QњP>am>㿖=(֭H9`~r3 -+56-[(GrYsW^6 xt6RKs@#>QP^ $%L 7".'fGIʇ[F צ2KxZXsErK;k2R'./Hu"ķhnP$0eűwǭ)lh"c%uKHZq9gUq\c,aZ frVmO#]$tpX>CGcM#rt+ |fZ& 4e·Z$`OfHyr%Բ`Y=KNCt@z?H ׮ &?i50LhxX)}pv g[!~mB'/$Ez57}I+MfmBZ"q$'i\ēg)ZFE l w>= RaܱyYWm,!(#8d }zuTDx!"tqOF؀g:>",ꉰيm}XXq<65ޗpg+{_pPQ)Qxd2\q󂝁&\~z ZX[Wq@ͲI$ *wc1i'=v}Nܵ*8~r8V 3ldcYV >OL|C,>kUD֭4Zix;Hb;H*xQT-SO+ A!Y7&ُ9XxԊr Ų%d? /2#fEҰGtU;8claeŘUJ*|2GN+ =ژijO#M2FL~dg%Bg,Lb'l^l7ر)If=d[o';<]ֲH d =q -),;T*!!eoto` kqov`v:M:S؀f/Q?O{y6vV7eGwNg)yMmЊSK5Z˘EupܗV(әcl_g+d"6W}ә4Uܛ#'e_tVS>jU-{qr\H%{=,Ϛv 6@KZ@*1XQ÷Li<˚9]q <:ە3%" 8ϺEGyfrr澦;36˓u\]`0g+e~tr ,pѲCtY`܄ImIg%yU%~&_ytJIf1E#}iwQKq zmIW!*!硿,!/ˑ񷬘\+y.mV_nn'-K* *=\30V&)jw \+oR5l"\-)?MzHcѨ#!tRȲb1OrE` "M9j'&:cW'.S7%"VCjm}q>SVll!1fǮH/U?؎ y\R 5U >)MS4b͓z\ 1@O'53i.%2kN4Qa0x [ɲ#TJT66Q ։w,+OgsR[]k|Mb{mk#9=0nY;?&fdal2DyEpLPEg.asWsV9ߌ%By);U$, `,ABa H""az%*DJ.)/1ih~TNĽ }uNvc}1v>7 :wm`? ]GL'l<~~t|}_?3do+nf if)Mat wzX~ʞ344HӴ ҏP7X\ai>jGdnbo'/^zs&7 \8cNSVK-}Gb޽ "$[i3"9w ֑ge;݀VW5<C>ƻl:ku |{˄نsRA4ցZs8p?h/~nՙw%: 5P#/4kqrدSYn8ȿMv@x*/N|TM;i(a-}3`<0 OLct/-x'͹{M­Np&%yUƶQ%!\_8+)cU[>DpR3+5a&oZBzMznn?SGbm$'X`C{@ \DWÉWDSW9E2aL246B)wiTamM&TonÖV~8]` =ȯR8 蕨eyre*_75<_F(<NI3[m2^_E J^ &.梳3C˛SF"VX.e)Y,0 `X(& P$#!!L/|+Y"dq*՟Cy15{??,yv/9Ů/E^r>\.~+$o E+B9Q)_m֯-`({9s]9%- *A;F:$&aYG{*VdGAI&S^3hvm_axPPš(MSNOkpəZ! mטN3C5"5tdvEU! [ l U^%E)RMp|ynh 'H3 ?8rJt 1|1KƛYL޾3 V4ls%NDjѰV!0S/ʚqoGKlƓky YK4t \w!hvmy ]y}_DUUk4NhN Jh?xJ%Ȃ O89۵&xㅕ5ڴyW6~ߞ#-\na+PX/PҕaSVE|BBxu:۬.,~ rNý}NSwz#~C>P/$C.QgHG]7F&ON$00;$_v4#W\pXcc@䵼$_`2ja{{?-f+Zғ4=`^3C-q:#ļxW Vtr)!n@x@0+$O26񯘮!ru]^;֫E$_N6!Xh6Ł/yfvYA?؊=?i}sxR>ik`}ρ~bMoI6(L-E8@5(2)i 5#h dsiy;!։M{˜W"S/vMΤuS+$_ xU}lWCE?Z4{i?g505}pHOnvvC_ʳ4amN]bB̎]txԺqiYl=ZzⱮLO_8LP&㩓P,}G֩I_:ʭ͌ɌlZ8ɐnN-@dGv:%o=>uyfV^8Y.J˱k 28;&ձ6s# h,L)>Z &! (.{ST9ʹrvgi.N{iHn]N 'y '# jB58h"t;<1nĸ~QG+hN;;BNYdu~aܾ0}Du_ _n6E,V 5: ӊCi_C-ZD' i ,| M"mU2 gLJ$H#q1 uaH,=h ^z0t鰂4 cX!A# \{gh#t}J%ymaKaXCu]gʭiscqR6}m[{L S/q#IWRJDЉD-N,LHL`5(\(rjO%zkl=n>w4ŏo &L4s>"ڤbgUiS5m-cܭ9B4bQy^IMQC /]0o;xȃ6Xid K9vtLutIbFp-c#IZ<OFa9.*$H֘NPf3]=V[7氞SuҾ@><$QUO9=pXZb ۞.n^Id9J"9Ad1sE#}<&)Ksjl>Ҷk2pxe.P#o0y4ȝ~DqG԰;-HQB+b 2xt4+\?jN<ȑrK46.l Q@('XFu25IByM\MQ$ސ5t+xt)f?hWTXJF*.DGT.D_gIW+'RN$U9c1 a. ?QD9ʡe)kqns^1 .dSKNPFrt D䐋wuԦ\v~?枸x9dqkZJ*p`7>*4a0j~\H`;plsc#'ʪusڵT'f1bn^5H84\ >*J^>\$h}1Kze0?sRtp-Յ:B(WݧaET\‰z ' r20G Rzfơsǁ@YJEhIWh\ˆ}kV9Z}rFcs5'*-"-) Dr/cGw}@fщhk[*I>jKJPug =DZX ^M8(- 6͈JާlEH [77E@V ޼ѳlY -nS3N=JP_=TeP|!h@UgJtRmf-iP}KhѝՏÆqKhcXhgpґf-Cgdi~##eb׺b6_T`W !3]#;@uʛ)F/AMR_LXO3#'wx \pޤS513M/M&?8E=f]GAbiut_,L?UYߍ~x]=< d0"tCPrC9Z_yJdSR`eE<^&F;-|,ްWp3r{Vb.ՈԷ޸5VQ5'?Me\=r#TC~r:~G1~";wVʹW 7LUWRmRN]M;AV]lPwdEz_jVF {e1Iv~f,_xaغGuh"v iܜ\IfhYzG+,3u/# {=D$&#'/g tZAcUU捻I .wjRhxi*JKV!T T:>Z/1/Z[[au5{oMDX>D=1D;!GEԂ&Qpl׫KJ`8>,eRߚZ!onU[*: n9&i.&[|.1ђLͽl,mC$_ pz?AsbqXs?;Kzy//x%~OE7D^o넂_z0 `PDc! /f\UY et4|Q?/嗿_n떯%ե<0^ҿc0ϏOg<[ :Y">;_NfF2$Kʓ}|,2fۻXلtjǷxM+4gf(B ݞxq AI&S<ߨ=ClgC5.ևo1w2pMjv-= $ `ubL^_vMaF3ab7H|Y(u.i̾>0Ae*r7?fઇ[[*`)O-phة(ё'|6˖7Au/&>ҿh$ϾW,~|幕nf@5IXdǯ|hbR yC*ԟ%&+c'2JpmD 5u4;,5*%۶Ut)EAwEc3:} vۥҚw-dWӱ ǯ y|WGIA(vskݱ( Z&cW쇰 e"1;_AnJub8-r^j)}8˦Sl!(|X1fP59m_uF5]Nq¨eߵxfoԋ#&X\q?E Chyq>H9L\sqjGLH8 %[PsH ٝܶH9 TLqS*G"R7P.mX~/lˠt#}Z kՇDI9Rӡ=1v_WɆZ+}nD$["0 թh )(G (ʱ}.'hF3{ٚȳOYteX3"vdl2Y~)[ݐemyMqVxJ&dFO mPu? .贿J}EMt@bʥ0gnji{E}C[J<ھTUF[ hS <)z 0As׸Xy!lizX@=zZڹqtgWa^&FȠAٞx.r2`]\ȯ[EH5q6ߛŸgԪt;dqeuv>'NX .Pl~+HE>_)B\͊2Hp a2b Ž=-WF_31J u"}ΞfKÔl\D2tuݔ?,'`b,uK0O EUAPd5ea,8k&OI>8ASQI9je~$YWEG/Um ]%gP*RгKĜq#5@B0lzP?i t)aF ߑ'Q!GfM[{ l"]{lxy)sو6I ?Rs ~3 = d [..g̳P[k{`,SZCb=QsNTyϙxI*>i9T'mkYJξ;.+Es(.}X| GERT^ !@"Jw[F\F3JTBy#|d V. 2xy̼8qdu dAyǗiJb!kʛ130<9aԽu&oZ{hZ&pqwE)wX 5m\H%mɢp&D-KE=-[L. k2lL{'Sd=e@E};86ž$((Ɖ%ʾY2yq 1{93!O}3O)<3pO[faϯ 4 jd`a%ɔĄ#oTi%lv/+R)’JQ# cDԒ5եQkhF,uB;j[`P%^_~M .$\шW|%NΉח0sAA,9}|dg#b]J͊\)D/l)R9U~X\Ƥ{]eALNSvq{Ž3YI8 faFOVwWp$Ie="qu {}(R-k4Bk8E sΖ@{݊u<.߻D| E;=̿h8߀'L&OX8&_9?}[ӹm>fA;M!K[ ?) )񯇴LG: %N\#=/[@hylBDjD$\u[ʎQ:ށӀAH6»原26b9?@IPP^B@tv]|Z:ÂX2#A6k.Þ ܸ wnlΥhn]mJ)5Eསt/1J\$=r.>J!.(O2hIs>vyqx^^mah)l.oWCZzmQ,L-)݈ޗPǏt>RTs8۠߬&A&?7~ Mڰ;A.6}'c92¦e(^|CKpvim:"S XdFġLy7 ,-A$!Awۼ\MK"\p>Эzazp>YU1mÕ |W;oyՅ~Ю Z$k'ǟgv/? ȯo&]~GL%0v9OOlk#93P4Ovu+nۊrRjG/ ny 9cѦ0 x?Dl Ţ1KyXa¨eVcWhT~xpBdnOƠtcR~[E&"%>,~ܛcn +R$ SPwZ}cge88%FeމY+ ڿ QD8pVpwacu7Y= TN]'^{^$oVlaZ>*/O Ķȟ^ VGFs&H>'@} PiX6d75[! ~,"6& < l?*ȎXXj@)z/x%S}@BI&m1=8鰅ʠL.:\c?/dFNDD^sO!IC|!aĺ<%a`e/K []|˔SmE6P(. pP, $#Hb""zWQZ]ކ}.~xt{x{?iȀ;]=hO~)IpN:P4;sbaqȢ|nɸ˽)Mz)@ΗRc0Β|%%PV}B0~gYS AI&Sy=C;OVs5MLHexRTa5b̏>|k3@PӃq'̯{*Uy["!Z]7 8|̮t_27٬XhL5"?EF'NwIH+ E)K]>vQ#gD.R)k9Ath_&D~ls,KÄT!Gz33t=^9PJo8ub!Sգև7jHq"kBђV2)?.٨9V8?XO~t^"6`p-c8pWguW-.9|l'ulL:׸}hru"ߢ՛DdMA yc:I^0:?N V #!22UiP)5 W;?*j;,! I|w/u'cΙ&LN|]׌rF>&8DUP>67 HR紁hֿ=i50&_M Ec߸81{{t`1J8=഻BC9d8$xۼ3kG_ЙGG 0%TJn@2T&"& .L8GSD? 5wȖV"FnMGNIY q!{cx R:J1EAEb_&.~K\ߚ۞38﫤7 'DczU$@0?爸j Rec&`v3q4Ngj<%b^o]ᏼ3|f\0SyTFS45 odU%;|G.uR8_!dϜ2PlXB'odR __%߬ h.xa_$H8,Y$f_6` AR̛Dž1=Fx/)xtEi6H/yn aȎGo z /}&|Dd鱷XEC=^B􀗶aOpRB+UsB睊%mZ-U3޷O!17֤WVƮ(s[ <8("Q/--M[ AWtlAѐMrv>Ҋ8f] (IZe{k1YV~twۣ[DluRn&-F(Į/sV'`lOՌmlP\Ư[RΨnd؆*xZo?//}'gyO+k/b沠~6*oCRQ-9"y5n|n52)znKp[| M!G &0F"@ $BAݮ;Uĕql\JJeS>j|?pIڿ&W\i*1m?[|H;P&]OQ}ʽwslΖڕO4) [)桗< *8Zg+ 킧AEP$х&~<ˣ ׯp 06Z PP$ B0P$!JubY]UFړ>Cg7YvSMt󿷪.ZNtˡ鿪:"kf>[mgv>oV3cǨ}?џAQVgz[{Se &MBFn 0LsvՊK-/])ONjG/[!sOU7򶨺S@\}˽7UݦĚI1 HïRl-=7- oML t()$!pylYk*e[G{] \ɔn HtM]mVy#q R@AzkH%eTGdZF{͇.Emuȯէ*%x@{MwS_D#ƪҘ\]"`)`Ђz1YYm'DMz¡8v͏J~.&Mb=ҐfD-LtSX>VS;6X(&gi;ҍ+c@000 ^!N40KC<ƍuoKiQSB:JYOg\\ÂXp06 v __oڽ4S)# NZxun~,SwA<ukZA+is0_ QUz&w# =\MW/YJ"Ek03|b8 K", @ A@$A "|"Ui*FUJIT/ _Nw|yWr'a?KU~2APqqYyϻ:}.6}?HgޤFd)ifJ |@J-lP2J{VgBj潱؇*n֛gT X[{d^L~>pAKC ŁdSLzj,تi*q€ߒѪa:5{4ۚ/٬sڷ Ee>?Ӱg u_lݎ&wE[] !~SIc{Ud?9xxH Tf}3aJb7&? ֫17'.ˉJ}tsyBB@([~#I ):6RWߣ&qMAѷV$[BO?sT}inH0Nzb//# T,OC?ɨMS2\S2LLڱ]^C-G_N_,I!CJwltQR %( mx.6\\J8ˠ ؋}~m%)sL1/GpVko&oV?RyVчI0#"+11b.۸#SpEdF]ZI`-.5W$'ZA(.vflO낳r7D}B #}eД$y(#r7<Ğxƥ!e;w^JйlZ  jLE?@^VV߱ ~#6S4ˋgR+fcrpxB0!oGgӁ>1WGo^>MK^mj+\8C^nгVg# o{ fЫFo0`5'k]&%yh8;+a-zIxE+aza1S=~Va6gZ?zE IҼT^B?X}vMW͸oL] Kkcp wYqhAF+VJ? w]A `\e%]dt^iGtՠMw[|mi:ﲥl%H-劐 ]+2aV&|P( kCem c{`:>3EVQM )c/nlN ߂FV@N7>0BNO[_Cf.wܿ`|=9V\kBjwnUms  [R 0ߵ 2b^{҃^+zYC MЭ2vN/>v:qfF 8+0;?B5ʩ cI  c |\+Z=G!]Cܣ'S޴D]7c K}x@4^E ?32=$XV&τ@0 ;\L ل :;QJMWxQҥeK_vs*_L524d#-W4.tbo *; q9Vf$?ϣ_gKO*Ⅰ+eB$]I9qg!v^rџTY Pg}TRf&@"$dY0PxFW{(k݋)"{;U^Ig}&ޱKicTRәH>lX_TIu^ȏ ʄ'-";1E)ha ^bWj!*wˣgUЂnae9##ėĮ̚bL qT=Cdb(2=.)2/OXk$Ǹ[J} `;vWKZ(o*T gZV5 n&ߩ[]7 ^ܖDd8Rc*:em' gp+X?JB^~C/I9k§Gt(&̥$2|V pqw>#T["5W<lՒxWK:sKNCRV;AaC|8 Z_C1.QMgfJeHRx'}ӏ|ysɐW2MiϠ|a:n( Y20PE@ڰr2*.>Cۃ=4վe9v{ uV5T^=8 ͖f );{!g u,xⷊ,s;jvu~l- {Ry+YfF<o  aݶwx?T Zi0) YxP4xMw^V^LO TK&2lHRvHs߁4$$aV^w&Dm .UDb |DڐTtKn'0 Aɕ/}Nwxfa5x":ΫH?˭1Q>qgIG%' :fWW.H*6*]kD*W˞5?V|xUU0W3 +RH;)SuIq|0H@s1~uBBjEv{y$,ԮP႕UqTk?>ډƣ#L/H@RǙs[lt?qH¿8=U&+E(,+ T2!ci /~h\pԡa##pJdMW@ PχpCQe=5a¯(,-H}o7Hb7T4QRSe2&_U":Iw _%bXV'=aŊ_a0X¯buL 좰ԇ1C*uL#p:I2ϛG_+PәAgC/O{p׊%F{}= ש".GQ6ϣJaXglv_HAP;ou_]f=u. wVa.8<$o/q nYnPD<+jTWzTn]9I"+3@M nۮ"%(V\۳12Qj'&i8 Ԡ?bޫQ7,<>4cF [BV~~{Xyj&&VSp Pc^ީ1X15sH{(lZ Q&FD4B8E RqpiB2maހ)(PF ŬWwf;AQ %c; ~g'ֹk^\ PWe横 ܔ^qʷfQ~%b8뉺"mD~k]>Uc4+Q~^Es%$2/#ZemsRf''|vjD3~R+Ej`]J8+x~)e8"/Z/vkfo A)`sk6Zd TTyRȨG TѯV_>G8n}2 ,/l9g.ZԀ"> E@h@.>_j]j3Q>l0F_2A'XiV?*ƚ 4_0Uъl[Sj.Zr:V>;}C2y0j%`~b~6cUg黕R6X_&?U27M-K~oP|袘$N /x ]2av+~2> zhQ Lc,š gPq NL9DU9( &<9g)~2ܯ)i!OHlZs0>Xw;]WSfO/-8zlvJx&QwiLqiHڰB/aUc)Z"mui= .@&Ǟ8k  |;y4+H2E+N{-wz׆E>rUxC2NYf9;?iav4_iT Q<cSoI8ts?D*t^Gƕa-8f2) d4򊁬, *eܵ$r3*x_ ]VJGMᵿ^ظkj |x=I)~)$##u^G Z6"x}M38Fp}\1f3hq$r U `c5~b~Fގw}ށÐ{E(7ˍE$YY ܨ)-S*-,Icxw\W҂^w>i ;@-.G) J3 hm !}NZZvVM)*8n\Swba?[R,7ň/B\| ۫e&ƐB7|n+iU~IJ,J+KV"S“/] IR`1rjݬn'Ù9쬏Ҭ`wXLȰL& hjL|L$;^Ky7,0OH9T%V6pAD!|ݱrTaAA`Y1MA1RsE;1`}(SVe{ ڄ\{7 _—:^cG;VA@w{=NwPIJNk3ERbZgOYb^>_E'Lډ e<`Xsjc,,q[{Fo _2(ӝhv o7hx{)H!*Hx1Xi`y:9JT\VwK3zk ym׵ٯMVx3^+M 11ؙjSD4Kn!^j%lUiQ#AGMjQFBN pQVhiꦵ`'q^UD,Wiס\?4Cl OM5?=H ^DT+.KuUK::X &Ydz7ciee֋QfuuTSIj{=DS!m$, a@XH6 B@H HA_*U_εYe.c[hhߒưѶ}?wU@2‰m1?_v}?2Akj|+l)'\oՎ9r6|I,K=,qm~ [[E] \mxLڬ n_x,^;~ A>I&S'yxB|EӁ0 Y}#6j`(=k^X$[aI>j?wrsf"٧9GqhO(rOuд巠YeXӷh[ћWaj] ܍d`?V;l:!9[y `=7" g]ҚJP -nĠUu$vElaӽ~?aw})_|j*:Bu.)Bw-+-XX`KKkZЧr$@ H#iq]֝1h ]= CnqdyW?F ƋΛ $h۝X(QuUA۷ 86)EwiZzSѿAJA0(GݔpAb/GTD%$ Iih"vvZ`SÆû$no23p7:Fap)Fsp'"`gb;Z2p¥zbrLP sH>GiQFeU cPy=iL:5&p o_xEHN\TzJړ#KMcVa0MUELXPٯQ=fl>wB >@UfՐ:v4$*2>wr3k(¥35./l@Xhe*M)E o.!(R|%U)&(lK*a ^x PϭhFWmLT;5- RHxqHpHb75g呙.B="lO/aB@2R/ǛMS7q]w}~sx5̍JƈM/[@&92*1`A5vՈgi0?9p`S $|޷W|;nOphey+dlX\ar%Hzs@ix5ʴI(7Q!R2 i-f@9rF=0(o0-;ƌ t2Ԑ7n$)uP;gJ,YEa#`S50uعx}NΕ^(fꫡ@5ĚvA/2v;e0. yefU=-4kW/YD>@A5=- ɔT~%;QJ%F"|uUMtl.x.z;,&~^g B\dq?(*a)a*N/4gᖨPlb/9u&woS6Ȓ\ξ%6&|M:xGYF044УV%SOy_Hq:Jo`fvqﺁD"7Uw8]`;eJOS6ڕJFs@Ë^Z-qL֊xnWsm&0& `Xh6 BPȢBaoԺy-Z*r'C@PoS}4~G]17xM#, /i:vQ9ZޕO2xq;+K;yx;C|.#ѕt|7lu k߁URˁOk-;k|T`u{;W{n,d/nu 8"06J` b2ߺ8/8&k5EJ/ {}:ۗV Oq;~/!eDŽ1W} _!W?Ag '+ֻM~~o!bCP-аLGGrLwCs)]:^B.Jr#/[(+d#p#t]jGڴ`gxW=:ށ¢VH_YqQ&ߠ L1a"l^ WB%iw~:ሇ P{r=m%{Yݐ]ưcyHGWaQ3xPQbڳ3 6yk~bqzbg>x|cõ˖m`%ϱ]QVt+_2#W `БyODN 4,85tcˈX$JmGt(&Y؃Ƚ[~>C+p lcEZgin6-Uh5THPPILtKy41V3 \t9t}HЀ݋fmebjZ"0& bXHPHB"0VeK&KQk|ÙovSp{tYu{-{UrPѨa^Ъ{kTfN! gй1hŏ/0^O*].VƉ&70@x|{w3 č[] @4ˍ-0H!NF"%>YyVƏxnoƔ0ˋ顾s}BR;+eDNu)pN`Wfy}@ BKKI :d?|KB)3BV82xŇm{%p-(0#|&/U#9iؒ"\[Ή3:OzKt&('PLtN'}Ǻv G෡_X!qgo ysd]9jfXl@f|4hBkKL%H%/soTxқO :of7ث:> 4*\ZI\* 5bW5RB`q;{ Ċ6M^ǥlSB8jDegvj}י-wm|piuhI ^[yH^;Q`b9 ]}u{:1U vw-G9Ǭ8rÞWkDLkmO$~aa5MgJ/0w;,G.~apluB!_{>-UiPI$0Țe3%*. veNQla8Ra/hք h$c?QigeG ty(8ɷRB] dl`=}{&ȑ{W_{L&P}܃61&\bA bJȲ&E";ϏU-Uk4¸.8!C;gzaZuy=߽LcY4wsezqeApO !1Ka#^ia`@O58 D&ZF讲Cfm%z^3&RNu Wf癇imX9"s0}ǁW3A]cP'aNj/_`_dϩ =+!HRlV3acHG k5hV1oT6V 1o/_FLJ) ? ߒ ZmrcU ϣ\ eVuqbV=CZ\9!IPN!ˊJb^r\ju، CL݅&Z)MJC0TGUM-;d ÛBM_`VRDЈ%nCi+9 Ղ=ŃOjlfEĴW{L#˂]|bS/2Q% !lPc׾T&쩼+"v-il 9>YQ<ˍxSaH*K[&t79N'q;Õ3uD[H0ră<J>%h?9!bM׎WG] zUag)~-ep\;/V*K HF.D~Yc _:M?EIJ鵞,^$ƜbeVq tlke{ms"%8\@.t!I wt3-mvVRZEXX#C|>#2Z}G -x*Z?N cЉP&THE#wP(Ak&AUeAkWᖢ.٫ =)d3 w77czUAf#?}!]X#/!6d ^Ìwy`xzW *ygWUہ`]"eBq4<'XE!|4N&H5h|'F9H~Ny5i:9[lP(RK;ߜ@M\yP,LJ3kVqu]R,R%x\.l:EtU5c (񰣤A$4r*9#iyz/mw~_kVlE+I<8#=>6Z!~VǶ?fĞ8r~1t!WǑ"t@v3:Ì[xLE |OgZ†^?*VEVWټ4ۛo>罙%_˼ ]Z/oEHYRD-e5LĪ`0)IXkaYȌk&7UMVW/ESbTڒ>pTيNH(&?wJgGu5d\8yJ'^1J:`d4KX7kP| ȚIt]%w;۴RHfay.~+:z>hNQ*k+:4 nIĚ:ZelkX?4Y3IbkJ[ԅE4Z,:f2|HAaPcwb3{aDy,[DiJ @uSK`2pL! u 5mw2ފ#pQ۱\ͳ%T(w)Ҹ_:Whb#gŹAÇc5 kc3\r7(u'l9 A]..tڄ0N}* m歴hOTDQg dA:)D\f¥}? qz9f=M]k-=0Oq>@xrowT1pϣ*6@lzMtml('E݌`ٮ;՛1k$Ku6̣.-O(  Tm^}p$P6e L* BCF $2hP^J]&]wpr?py6ѳl=8ZndžѹJUPK4l#5] 7O ?#ex~?y0ޖlE;oi eyLJD`Z { U<z1 AΗY$ްrR{CGfjG!dupy)_9Npv-z嬎+_awpT -#]j]ۘ1 9 @,kǀnDec ucUm'"ѭ[n`MAŸ|J?F聖B2Vdb !Ӫc H'ɩc-^Lтs5DWLSȦ؁gBV{hT2j[(DfN}3JC2pW/a!c^Mt&=܊w $5|Oɴ7RU& 6Cdž<Ju)slbω]4eKzF]!ΧTof d@i5$. cȨa H".2s^F~dߵƗ>"yu{x[?/]3F/_ >8֢!>KPN+g3}{l:;amvG.A.?|mv'p2v uȲ=CggD`G&Ą#wMå Nd 7AbI&S<Ȩ $Ƅ̤#WeEH60NqZ*teYQ1U" GX]#U ^q:d_\ L̅M?5J*쨋m͵L-^e?kRHrOL|yWϡk[sB^JsP+!zN'ĠHBԚ0!]GbR+mU4b c1IVt'2{4uR 5 1O6.X@;gK.$`xXcT36h/$9 Hx:c/ pU@=cr(8 ^2Q#oqߌ _9/Ǧ;USI"o~_CmK/bHb^b-ҙ1Uqڴ'jSB 6y^YW48$Hn ڴf,aLUJ`hžB{U4ʇz|?ķ zpUG˾v F/|xiXIֻ6>ݘw{tؾvw <}TXuWknUnj0Yd̯jEyn03^9]aay3ElZ-I^z{Idv}yYc9-Blۤt `X}vC}B򵶂 4$ztNט!J^2'zJ9%9j VP_GS٢+vנ2!2Cmc9M`^"Fg^b|G<3$tN_LpA?YZ`>~#}0 'D ֝XMUNiUgFKw쾃x q$B*dVktD[qq QLb(oo\L2w;bZZx(>~Ʀ5H."[y0f1JDL׆=T@1ќe92y{!O-1%ggi!Hn-uUI5=j 'u4ȋe͌J.s KwiL`\6w:W sjxj/jhq./\]E,̽g/YcF Q Vq'9~zTO. j+ NG3mʨI$Z%7RAB*Z9:hOmX/*zu$TZqVu]3fEGص<3{0&]0|dO$uqK) :WGr &NHIAuFzrМA|qVA za|u2Ú{,:'کT~?\R1jfA{rD-phS^lډꂋK}蔊R 3,~#0c|Jyo*?Tc'Xg&?Y P_l flM9//7"BMdGJhbOkjF(v\&yg|ݾr ,O U)ŝ/c ,>W`BB=)z*p߹吤|"J/UiZxϞNk c'̹ JI'3xyC:ذQ;)Vmc1bBGr;&&H60ȁS@u8"bfÆJTԸ. J:1}k1~mXb 3[-g8.XwaA`t$dc2R39RcP1Z%rn)֧y5g@#8S 'x{J ( g!p㿭:[1k-q=&#xg%cpo}{6 r+gx Dt ‘ 'W)N{3P1ּwoX[MG}ncwՠe?xQgKN"o18VN6P0F7%O'oq76(Avo^n0b4 JÀ xTh#m["yyNP r'SWEg)2㊐KNRٚQg3^ğfD~u,s&r rgplZ '֤ U.L^4K3(("{u#KF|$,8 (! I! D*SU2H%EBy=37A]PS2пѿ%Ft"+"z`з_}}<#||R?dEvbxcSYFz>=`bŢah-_Mݜmb\pzv)C1̛FWVjG=^0˗Jy8A」,cLZG]V'ck|u"T-&x8-Fߣ\^Ǵ  g!m&6pFn>&Vb<^T>,:H1 ݯo1 4s}{LXؒ(M$Wx* n(yy9SNȻem FjCafwxd7V3iϷVqA;L( G:RY.o% %O nxG@D_t nRbT20ڡ usS]L%2u?F=dz{ә&0&aXH ! H""gi2%N3굹%ZfQHo]~}/ÕW3^ï.?#^ox-g>F 5ry}ͧϗَZQZͳwzU.?]XˍC27@)ԕ4K5THI][?xAI&S<̺ P6_2WC Wg/2a[FT3Y8NG?|QͶeebRwR T8H tʝT"X Y#8Hc఼y:^U8z+lh~+'xcH~F7+ ,T4QmMksq:wh`(2ȧM@4\"r]\2I{D5Wrz?Lԙ`D 3.-=tP FuGȜ0i^#VusJp5AC YӞ׏sIt8Bc;jgk46w~ʓ,PfJIC9| p'inPRȏjY ɝKS!9cPa"%U6T|g;RQOFLrv[,Fu5|$X? b':k=U2 TT\磲!>B.{ްO{US"Yf4b<PHu|/{Oz_ !?4 &oK_Eifeϒ%+ˡ$ dT@:=3xjN[$گ'fXIȆJ%[0Xqv/LeQ}Q!' TQ /Þn0g[_K=FNoյl#"{ieצ3{45C|??hx#xao>'K˸'0Ljw7n@q E*'_8R/jVuӁ8-ָa:@h/h ~(#o:m6̍Uk $>%`l. 1>[Lid,gR}PQᩬi??96$*_-*f_1s_Wm,U 6,0)# 0 :{oBܚigGz:Vtgz"ep*qV>]0 G_FTS*;` 87 =rӁȕ?w5sMR9U$yz F5~1۶GCIN֡<=HJ*z2XO51Ybt1~&3wʊy/3<ɳ2x@dQ):89 c2}O `.syBGtST "qn:*LeOGk QZe60muSD}&2b@pyv/$hb2= ߴ9_ِoc]KKV/_>L}tG{|қȏY5aǾUI\B0eD7 !Eu-#.ijԼuSp(Zz|ˈXMǹ]5dP9@nuĻ=U5bEe,@m5γܪz(L(R-Aswh行\K%ǔ4փI@B̨isL[Ttٶ;ZvCO%lĨE>FwW&`4נ!,ojd/k-d~Rg$j%!(y"빷B)9zȗO.F(\桡w1g$G/>߀GTksu'oG5C,r@&5Bv7èc{Gޛ%)$Vȿw Sj*(&úsϩ, VtxO2%U;, LKƐ~`pB}6jj>bd~փ\"bGvW][mdi//6GY*c 7 HZ#$ u BΪj\It澔a3f="GJPSj2!%3QdZ0M֖#慚T JgˈG\xA^GI;K>RYk {4Y_x͕/dc(:G*fp\m :is|6rs]nXKF+S-om|t%CVemVN'|`^֡l^#/)fDUy֧:@2*?ys'j =2t]iե qKFHK?ʴ ATz-u*)cDI h'Įv[]QtبSbk:_0 $LuE3sAߙ9t2M 4T#"sΓRQ,{y8;7]܀YBW%x)*[}-8' ^aCT: yZ헆zOsO$ijCd>!_v~H?9hu6i·2%Y?t,Qe[{7_5νGrtx3o*K<&}>4[ ˺rRrSegƃYpf1DjH#Pr`@\Ae0Ks޾>uny V="]p+Ӈ, i<{U1܁\-L[cN2b `X6iJ!WD$<@QB8F}?Q)_61 0ĶQ,t0<%I ^s *1^%,Q*W='-M"I^R۽v-αAdCbd>Ȋ|Y>N"ҮH>O[0v'NτrQ#$Eт^\$9 ! UP6A0QD1!NA.]jQ*TDڢˍO{}+O><{JUU+&i>;b sh\lҸG4rRUVH}94fȏ)+я̲>Tb10ֈk'‡I~8"" ~&>ϣ++cP5})~~6hQze,1[4Pߩ~VF[%憖HJ3ZҖ)S Gf7ؔ_rxS 7$ڃbs \8AKC#@0bkrKT9pDa݊_CXʘ * #H@7`³t=t0t$m7fQfvSwrTEфxDymE.hYá1"iDpXM2A":G =tt=# xXr;M2%"bE<4H+OonrZZkCԱ#]Hx%MUϼa%@X ^=ɝøAd,jd/&kY6M[K=ib'LB¼i >&j0M̒PlziQ1XK;E&'U0oHⵚC!U߷Btc=T2561"x2?B?/RDߑ"L8~ k47љeENKYXUW,Ƹj?ۣxXy)IFVh(g.T7Z?2ckճx*)QϷ '/^t䠙ɂ :k%pp}rLCꆊk?c룟]Tx,Ur*6!۩8%آXW~cr 9' jC/)TT݈t+?}#R+ce?xj3@ +h ۙljtdHƤULZKsYai _,BBcL,Yغֈ8X 'e;t?v2$~vOǀj) FCFo5|>r#i ktNT5;hlRM’Sv=zW=jA"K;3U=mT/떿O[r>dvT4`@SאD^`G>nhSaiJP[&wK %Ayv!`%4f^UD;YlDZVev*vN !ҒD+rwIGkA ]no슞ғ=/|ȏc rCcwl.^P o.WXh~I;2M9Jt{ݿ+m+\ MGc[u5MyS8EnS\g!nT-|H,Ȃ-#26zڜ+*'z:3 Y<\8wa|4  ?UBi?+M[ras߯aiV*$S Jcgwhu`# gS^އeǞfҐ Jײ̎8vGe\Y®twRc>m4>L)9Vcq!`nux,VQPOgsAɜ!V?mNh}[lxJyO>o7;]={&'] ϊ}i@!0 ᵠql,`pm*h!EqqT&|m`ez fa΃j!=̻(ǫA4ϗqB^Gu7'3JŋH1$$bW9_)')X7IEA>oYPVbȮ;QU136)!v\s Y3 =1n7FNg#3ײ'?Iԋ҉h7 1ǿiq!LRkX{̞p`$7[2 urf}G0J值qE掼)@]Es0$g9}1X1OQ1"3 j8 *7Պ_i+`L6czN$35-ěߧ{O%ȼ5tV)?4݉^jԦ`93C>⥐E&(J2=cFZJ|-v<J'$p4̓EBT՜PY8!ȺXi OF$ T~qCw[JL3!!.ze*}edbnj -kZtGlh1ǘl_4PvF\|x| gM#eN>!$TiiE#[ ]mEab$Q Ojz_o8ZƵF/ަ< ]@\Sy!Β̚Cm\V3E1nS2<u^Y(' \eh["Lk$>]Wg݉Ca8T):^5!.'HXR1#aƗeeLm1p`{ ZR4y p&(V $ALI!kCSW[#*6لGXSAa"k'aIB$Ր0& a(b){V*\*PlP63?|ݺ>ҧMW7L:Xk 5>%n~zq +tژOr]x~LMZ{Km+gƫ+&5{j!v-;FU%Ŗ5B}ȫ==3ovjG m6듙ZH햖`G)m6|Ч5u7N~ieH/m@M"P&j ! H""zu9$WU{"[c_}Ğ՟zshڶ{rj.~~;<~&~ @GSSPt~5p{fdEt:!=q_R \pKHVdK~IÿˌGB}A3,9!owTs3ЋL`CF \%/yg+gTiޔPNc /0-!mow4I$g gR+ N7…DE0>nI6xn%pI˧S# ;DB3zQ1v&kx¼{Db[ bh-x;3-b~iШŃoޖ]m֜:mŠb`[ Ԃkj)b#BR%Ǹ0N?m4nᗤCfz=SԀ0FCsޭPEJ <&h_kGZ**fC%\;f&m#PʇL4\Wǻat[6$vg $syS+ ~ wJuבgg&!7x7'+$ʴb G'Xv^f Nrӗ{4+˹ p^mvq_'e;.1q*2hJ\ s10s*$w<ˆuLCض æ7E.q$;n Asg-Ah_]?eFIu)̙q{T0/3~e38]~EҦSNRL=Ujq*,:q L=9!/_Sxp" 4vM^쾡icI̍ #:@VB!!.2/#avψ82:]54*AHBUq#U8@X62A_Z g_+䋇0{2/…L,0q 8l흾M0͸]ƬXhwX~*B] #u+}dw 0E6CԌz%§[J)o?[t#z4}h*&br,Y+C3m܉~M^. 4n?Erۨ֞FT8×+1 蒅j_ ʤ¤㑮!N% [)bONkfkQ9%ڲr׍ _^ pTHh͓HQiuk"d\l+ნoHȢQ0u%*񵡠8&~ `\w#S*+ο搓1:FC}>3%")cUypͤ sB]!*հz0E*DX {H`\dMܵ"i@djq[6{ Ĕ_P'̢e=`W4۱+h"M"O7㗹@J p.0+*X $h) 2KG[OJLM~N$eϖMBJV[iX-W5 $Ń*fp`/ N 4˅q [Һ` "*˟i9]J' %+/Uk<}V>K<=qԥпcydeuHS XuHCB斱{}Ԣ[py"#`Z_?7 Gn\ґ,09Vӓܫ"~ϡ;Q?yI'd<_^g LNX &Rgo/Z1biV4pƧ p+uu8<Ӻw<ZkW:#V $a+,\o?]S>?`]^̛M~ՇmQPL6=86R:Sws դdJ3MA"p&R (($!L/vYؕ!&1sdϸݟ:Ozw~Bn5Ou{;ѱ~Q-6O| t\wawoU_S02Hya%^pg0jq+_˟n[$+AF3?$*%;jGԎ 7/C:hk~! @|Huj T O)JoRG9etje!hq^1i!c5<=I)Ca/_\E&:FF3nReC6~X1%F ])oh.;Up3wkӜӽ?q~CmMrTZ`iiW$CB0+kfX@ab\E}_ajiEz*?X}C62}!Go74h6ٯ3F^|,SxR%&9+p=7:<9ZS5fX| Ad"+\5BWQK뮦I_r.L3K!*"q_&, p* AA$ LA٥Zޚ]o[) K̻zO폖J<{*>x0kn/PW|b]?"unãY<8uA~jdkXP}#;9~T jt',X{I> ̸opzSףMNAI&Sjs0QPNMuYuE.w^ dG#W+ľ0F2:`_3*ͦgtQ$O 2qx"!+\@ӯng)aPF~lMTHFH{Ԣxފ@OTdxQ>ӕBjcY3D%NP?t;E#| +Ծx\=yp-/t Jm ċ̀H:%,5H*ٿ,Zo[E,\R5+4r^Hv?ePr3*Ft}+VHUMP#6ћgrz BNU_Ҵ 5LGYjUٗ1,A(6w's~&KGk_ v<A=KӁg)h{CRLj yZtv<é? ؅Mw$#T FsJ7/dËAKWo X~ Vy͉ 3Od-.XU6C4J2JYsRGSyeU2k|J~͵q EqRitirOvaZo/#3`O%.pq0t2ćk4r#~8EE) A-&rN{;Nb Nfc 9PU3 険sKJ!cr Qom6tH? xXYsGWq!PbXgUN{) :Du {ָt/R@JAĉ`8)j"Y&(_9w+9#96[e# $Q3Fw!a}HB5)pRɸ9KM63P]L"4Ld[I?ȡD.vd{,2 .C$3zLt›l~"[[33#MÇ`0_6{ uRv`u)r 1xr>ӑsA!rG: @Zx$Cg&sz~cz3mJ ]g܍^ أz{ GgT6vQP~eH%F `+[]q"x7 zhA 3e]iנȔ: g v*AYI6<ߐJRtkXC{ 5, bBρ3=Zvf PZF4/(ZxOȾW1SO(ؼ?Nk#I?:_fU7^{LC<@o|crs ڣ{sJ0ؙn7:氄,/Cs5t= XLo&·ouj- pȾ~N>Gy]L%G^g(~Ky*7fdMN`U\9TjLS"?Ah+$إ^R,MBg1xWKre*:}$·74B^[z>?WCwr?Z;OzG2Tl$@,訏9Prió)SBxAHrNP+Gړ X~47B)ts6D~eU8A"-}SxE8]<wI(_sBLrwF1?Sm2Ԥ'kkL>H C:UO!U ԃt/@R`_z^M@E.  ^&#HTD3HSc.5bn@F^L[!kOe|"[c) }/&"v%$i%JojgX L60÷ w+-IG_N]rB7%O+nU2Ț r[2Rv aE n vYN,Fÿ9iQZ 4S(3ldtR2%< +鴎 `##rRv$HX(+'Zu8=?)__fc>XR&(OR(<609-sIgVi2iЧH˦hc\X:^q! 06j H!!_3~ՙuj/5E|9r W|lO)~lZ{y?.vѼ%?=_[% z߳WDA;=vsҢ@o|| n+;rY=؞ P,q݅QkGmhd):EW$,@"  H DA;d^LDU˩U\Sko]~O'MQ~k׃1I.Wo pG u֤;N]Gt )$h"|iT鸶:]q =(7F]ٖ&QAr)pxIRRX$ɊBRx jGCDI"Bz h9"NsZ^&RLoҁ\f'胆Dbu?ڔG]q"Fbre,R`3l wy|U'P[v6zQ;sIDy=H48[0,U87&-Ê1@A\ǔ`{י|U8uIwE y~GP?N++4Ɓ+e1!xVD9ebg"S }xB5enF#X0ҙ}QO$hZ[`-Yy*1T±dC!a fLhƇ{D05)d#1r/x /G44VΓC#ZxAV֓&&*;RG9iZeܸf%%OuAXܠrjܖ wH5PeDRe&RW[7:!&fahA:>dhZ=oyO'G'"WЄ.1e< 'r0{n{cmt<|G`X)D y#_#6(7x Ύቢo{DU*ae3ϙ5m zrkw2c[ZY=meR!T *ۃnǔ%;Xk1yV&F_ ;q{/<3D%:}Ѐ<nq4sI6pk#ۖȿ74&$jgbHǼ(+ C@zL b;z}l@e.jĎGosxj}{\/рJTe)ZP!5` bx~CiR߀!i0yI:?Dv"'5Tl:xW6Ig;^*w1^Ԇ"1fi3li!R҇0*̙tJx)?4.p&fs4G[ԠpƄT.omSyч}>$?mNOgUZ$D;rvij u+p}1}" ۜL9mg܏fjRBMQL mwxg*+ q]MFY-%T DT* IA*I.xF7-U%,8yWY9Ͽp6EIy_HHh=Ԋ0fMz]+#,P:_gJm yxy,Dt"RW`_Lz qQ !0F*3.Ώc>AXDs.J,G]tCebu3]X |)x=Ёw_#Ͷ @Z'$'3meUai pQߧiv$Ϡ3yu)1ajjMVooWljHɗB ]/ kӒl2!%ahdNk$t{ oyicAaHk}X(WNthRћ-N@4%O ,P)dKq d8viM98|0PU ->5*/'¼T:G x/!'**@=аR2%[1#]&dd^|wU[(qЊTw{SUZS%~͑]qN k ϥ -eٍ"v'>^,Wy˟Q5id~ˎ^ |[3X@N|KQ^EH!ֳWxcu "R  ,[f&ujTVx"@bd ]MQ.='Hkw)c@ U> Ƹ >?= q+YP /fo4 ua:ڢP{&b/ 򶏈V!ڢou넴&\6G tq0@macW[ d]y#G{I{\~pԋJne6(P#_^5R!ypۄX,P_N槂ΞfYQs u?ln /^3ָee*6a0|LT~=3R2e$ئ7A`]&<-=;{P%ؤioy<# d 퇰\5/ 9u O@J2>#O\Deyw$txsFY&L1j!$߳cꡚ,K/h,L<nfϘ!ybIB57a)`r.ҩb}ُ+Pa)on\ȟ0<h\:l#Fͦ?g,6}(]rj~2ieutG51S -~kZ>ӓ!n<\㪽 FE|m6,~>\ϼ_j6%iFP*JX}ғ/fC;|`fn4 Ox>Wvd}>d4v :F&) !6D'(apY<ڍ`8",(@Q BAP""ߝr*K]E\L+5:~~,Z sϻ }кx7\|'C1cր0/_5%ҀaloxfwR6Wrndp-բ]wt`/eJƢ*laruȖ1AJG4 /P8+jGވ%pĝşK O||08 ˮ)1ޞ.1hp Xc*%RegE.yG%+aTBa57DTW u),M_':#O¯S>_I^/KCr@J hmեx5v-4h%,Cdfۨjή0#i2Vep*/Wa`w-_Y?nnb.׺ܝSm|NFe1QcW5ǥ+ih(^z|Hb8toC0\5~-zˡ(kƑ{{+`Wu-t^ &L HiWRZնRJJ{r0/m.]ɫVǥm]RV&,( @Pd"1D z*DU-&ne/v7eקxG]ER*n 9k9(_4ZXP^=qO4خFPtq12{ۤѐ#Tt?{5ڥj8w` g#e AvTaR0L gA.KCTpꦇb8KJx>[_t"Рi 'EtS~Yge![M8׹,!(K1tXZy CXªKOԑ(*Ejx)L9|5:x}S0 JjH1 &G,(Pұ}J2Fş|"k7>kc%Ym'd@jr0!^@IGS L[h.0BO*(*GˢC6Vdl+5w@yji $GhSPd~Lȣ RRX#*QrQ^ I}9d7iq;jaN gtma0vS^ &k (yujLZ[W^Q>'20L\q gf}HqbUgu2k~S`n8YujT8<8Uf:O_&HJrG=ޔ̲>-w( ;ͰD_7O~\?MEf]Fzzl\O ?o:21A ȡx%BեHBrI٧nycPEZ~]~ WܡDtYfS1,V>H':_&kUL0cT3(HқL)X4 k =&P|z,egŒJ +\AA'볆=S=]deƆ!!TYKk$r7?)L;LxPRX~TQSsf+UB<C[O36%ЈJ{.ׯ=DKs}g欄y.sows|3ȰdסIXךVD9`+_Rt#5c:! BެrïtϝLvйp)˘49Q ya܄<1 :%[q-xqǭy}u{i-6HvPm}g̔ayz$j7$jXP^SLJ EEHFTZXfzA] ~IP*J`ݥ}ɐ%f؝HQξyc2WYgf൭MˍmLdjYRœA(c6C5LJ Mki PCD-e2AѿG}.cV9_q' j%(fE7jdp- 9}E'I|@5ӫ#*Ï=,pESۋ5-,BjH;9qN\}dvzxϡ/w5pud Nڲ\yM"GX~%7w|bum9 YWPU̞e.xvmDj|:6qCftΟ",3$ ԥ9*@K5BƻSݎRv UK?#.#$0vaekh_i3;033.]PˡǮ ݰ\ۖp>M|S/# s< PHJ>lg<WY1M8׿.(L ,#f9niNm@l _}Tvb(.C~#ygo(8.3i5y~\R*)}hfVNu3Sx䞥 O,M זz:,}2L츝ƞ{X`XCfg @L&}$pV#XL͑0Re0ͪ4i`\Z*4z2hwݕW{YI3RuBT0V}΂Pt] mBqٔuO!OgstH9JHbE!.PkҀJZ G x3b V09bf'$Yy zo+gSo!Nـ$C1 :e JbxtׂU&0FPPl "L"aD$ ߯uU2UQlɳν]Yf>}//.UVQu 37_eN(W{ T}٣ӗӟ^xPfr~#"ҤDxTK͓W`A%EWhX?mp*06ZB@$!!" "W]"%MnrZ?C:fGskgۦym8룯:fgo=~?nU3~~]fLs}Ж@Cv.WV4@}sHŴѵ 65##AB/eN2mĄpMjG*5 #Juhac>d 97m[4tV|Pz<ұc1,mCB9nN ZF2b>I;iO"EhFÇ(_XK0PA:Wӓ˯OHFF,)z77zs۾Cv_Э<, KW2H P `8 _8YFi98MeSzө1\_UX[*ډ$ HPӮW $g a kgVv}3{eUuK81B\{(p79vCN.zWC(0* !@P$BA1""bTRd mbaWwp[<>'G?Fo׶/}<2|xG}Yob~>Yir3=g5lhsRG=-|_-ZJL?(2ˏg~?fdGy{|p APKCQ@SE\4gJBm}fuɥyzst,~ )j);7Ӻ5Cn| $#mdc )f߃,QX0`bNi3-7Y`|x4?p`;-0ܪ[-c;C>T rݥsHcMPٍIa?hmŜsC˓Bżwৰs cv\uS@:jqH 9{FD54Ǘ7Zq9sP /h ?V#ik6Ʃ;!t _aˋ;f-P X>Q-p:z3&#$0k((n2W.CGۖh:t䕨 H ,22Xڡ ݈dچU+>ߛvE32KƺF8w=,?0>hJ3P"!F,^5.);YI o({+>ڳf8Dq ҭKg>^9RklF)2'w_iC:'+ۤLfV M#VJ|0hTV WPI&x R6 aU~Fj1ӧ@+ `a'-o.'le(!Gv@2D \ȗ|FgrI'+NڛyqPE~ 빡7+lޫwK4c$:|1/Ghj Mۄ ~  E5!B!-Aʔ 0n١ x:Qr=>я o2gهojf web2-ԩEAH8Z ;䆯3gj ͏ pC#/JN(s\Y\ %<5ݶrЮO}{&i|j4O˽ "K0jಈo~|fgcn4W!:v&L E3uM}ܪ7@^c(6͸q$%4]]汀  7-gw'>]KK2e*dOѱ/6)P$4JuiHcJrI׼)w]u/drN 0ĜhtUҚJ_*;81i!oVV%ݙSGA8@B"I]lyٶF7 D䎆)Ĕ9?i^#iNj*nZp@\w":WZ=D =)|6Pހi|Kb*-7 H@dٞ&@m4ON{d-&P(]d ZהU|+ZymjYNy+?+1;2OQ@7@Vy4p\Db W-=Z4E#B}/)9rK DErtNDOf#ߢpGˌ^s$.sXC6O8q+Ȟ@s-Dr`EA?2eq~1DJƅ^UW0fFG[T$KWm&V+Aۋrsf#URը9~^1E4U&p$%^m oo.Wtו= Q'=h]'ZB ԲiyS,cׇǶK3c\j OΊqmn$r oEIUhĖ(Nb^`}?XUJW5tmX |qKZ%]@#PL[s{3"$xElZw2ؾ!7" _)6)_>y4r@F&_Ҧ 2n@\bRo돟N׮Y$\l쒏hW_", c XH" Hb"0D|]2]]yy\{Wy>DC?meZ锿%u랮W? o'}snppŜ?tW:xj3*Pς<Ǟ?J<&~Xj k8B]>N8nln$XJ1N3>ypZzƨL&. PPq BB0H B*8^KD&T =x߻<,^M=NJq'q~5?d`h3.Mg$|j>k߿@.% Xup.˜zQȅp$06,`P$saoUמ+U"]Dk$v^p?2ֳvދu<:eK^ɽ$[1ek@}a҃i5>ӏ7WLqO>lWأj~oo&0Fr9 rE `ōQّ^Ā͹5mDg]o/¡#J>pArKC#@0At^.Ԝ G]-(OŠgIBöag4C(ru+#թA!+H0)@5V,;a|Z_IS,Z(cVؾs㯄}x}Oε3ykk mZP W=kppÐ$+c-ٕ'*+Bi{w.!0PCz[ h@}KlLU ̋d|3i[82S!ׄh5w'evޱӐ{q-H|YzÊe/4b|{F@bJ3]0w8>{jT;F) IG#v=08^OƞzmI寔5:7 1}U [u 4:mθcJ਻G9"30k#f*I^\_jpl[wzS\Kڇ,mF-+29ZyI&0܋}4d9?rɹvL>YP)W&ziil~ o\McU % 'RT.5Ky,"/%Q<%t3-V:ד: MZ hK"鋝ɉkm@Λr@@yj,biۑl.SKjFU`8F~j)1rYƵqq}%흍 ?ԃi;F) 2yxZO([' 7g>h$) z~r|f ^ 2!wE̕BfsjʃJb `YtV-&1h-=h't8moNЮYH1p+dVf{dOYZ`(u}YM N}G/`ݻ(Ch "ԗ&XAYڮ$b>p2Cxa]G_H;_\p\Y S+#f<, aZlxC-?aՓc.BgN?S6.B$IRΦsIS"ui 3lAbZFn@ 3*JK= Q%'@3Gm9m iY|a-cWϩ] G ƄzV**10yu8Nӓ~hY>Z%srS6m7VqA7XdG"\|u;-3͢ W>bq wj ԺxG"H.IUii>[c?qahSHJn9[gkul[ݻ%H{ӌ.k  ezN$w/#]B!` 3G&;O!|. 8~SB|.v*m*%QlۋM>>,afVA[hr8$}n+ؖkAI{ e^U7aV+{UaM> QY?ЙbcKU$% HRE^|e )3 `E[~Ը}IkMy@6҂v^J GR~K%0?a,bpůbk,D*;Hs-tƢTGpq/Fbz;f_M mUڙ|q 0c)0|_Py*q/{b䩣vPGwGie M-J#,!#Kib%dtջQ^r`UNE 4|[58fZjtMïZL$Esxm>q@Nx-T_LFA?+E9R8=.P(.FdyD D}T烝w5YZqNU ='qb*C??:̽8@d۞*~[USF#Q 蛠ynrYɟNq*rgVW$j>u }lzx !Wʶ8K,.:g[ ˬ}S-B 6W ~dZ/Ѷm\5td[ wy[ƳWs l7HL bqE~099ʓIM)\$l SeK}d ?1EsߑtG!MY>vsB9zk ֳ!y82$^$Ztׇ²[+:8[)Pd@>.$19|JIB-!l -r޾JNG4ki$K5귴ܟE$߶LuhՄmr<:? SY7|QQ "U5_!c1й8s]IC8ϒãY YqFd1,SI|v$ ̪Sc?bj\BtNQc)} T+v7f|>mnS>ÇYl[@Sn?9+ \%U zMPbd S8֐d`'煴GHd Fs7,qgeTG0NԹ2] `}559LLPEn ;l%6I\63ɾ xgl0)6 ڕԑBgDYNn,˨yՁV4 F u8DUo[VM~r7zcVObl1{bj`5֏gK;ԙ\lV~| Rr=Y3:[ji) tߢ7.÷O^4!gcbl31zʦ* Q-`> ;ie</o"0Fb!(Hb(x^o#YBJ꫈>Bvˇ-c}-xhzX>lt[08q'0i \OC g;> 9aOߒC1Hq*O|BٰW&1В.~1]T[V1 4rg'FZKc.j\h ?pjF9T聡z*rZWQWͱ[\]3w54]3|BYʬЫ 5=rwTM cck!* kۛ| =KriDwWؕAxPHC(>6O.^{IE~On4ASvjH/;ͼzy!~.![vkX4<'fqss"@Giѝu<+7,ϋOS-YXD Bt5N-8|l/t0%:+O]*&Ӷ̾#*bW7X4}_E!B5 S&06*aX(" "H" E۾9F]oI7wy|xר+i7b˻;d? s&yȶ'Lxe5Čy>kW''cP$9TtpʞOj5PBԒPy)#m}+k|OL`cjX-e@dJ=wmYC9?6MbU+0'vSRGq~~A7AKC= 4prǀxku-*T^)C(pEM>Z]Mhf(udA඀<16(VꉗCہ-y`Ҍ+fxX6BBqD4G$4 'ߗ9M ;D-t]3A LN{Wqhfަ7bDwsJ1fKߙK3]*Ǔ(W>#!wʓL0xɩ_w@5Oٛ\ƽխmG,-doqr AU9Vi;7qw.nVE$d|ОX ]?F9{sZ􏡾HI-ҕ )V+%~GNcs ZJ{YAڿ8I>X//7krSm+`ȭl2 c?\&AI%V!'/Qk}v`x'vi5 Dq=T.G2'cx)ܔAR.D`#;kxt%X1ڧto`@4 ldH1y)ͪePPzyh cc~c @%6Yd-~D+c[m1oU63B&QnO\%Z  Ce `v_'/LE z8KOA C󎷉u|gS#ԟo\@<V]&W6Hz0bLyD(\&)+Ӧ8.Lw}h!'>zL;Vj TF:6rMYj{5r!Zu~3,!@^یi҅>7еAuGW M?ϭi`t7j+eh>y{kPr6HqF7&1G-JR]I1qEIzUl#,݋jVؑM|1>4b  M6'iOV H}Ce)K)ωA +i5E庐¶ΤUUC+hM`nCtQy?0MMx^bC MR($d;ٍ=eX{[s6%hA$$@#=?Gk%ʳ;#cA%؆bRJ%Ps:dP5gnTu(jAieYSf\c]|Jӎ[3!zX6S) ׈MGVCځ.Jd\ Qlz8gץV%6IE5 ͑apͿ۾smV0+qvCd2yft!B#[Kb6f\ˮLYO(^_{0j\p0OTHk]>Oaփoظy8n1bhN#'Btr%]SWT/sy/NX>05<ԓ@O; rԹP! `eDC\dt2q? fE5,)U :&qȭQ@,]WvrY{JiE&r>U;\ |Rv;epC|Mr SXFfע+0yG1MSr : &)㷥X^nwtĿ 46gITΈ0֧D$+Av H AXUc>{H#H8֡Za8aǹ:@0oxb/ +W`xRmek06vtM7!Xhrs q9/F| . ڔ~<nMo:!15҆ ?X *s^'[Go<<>NoKK`xN*TeN?KlnzF6w5?[r4l+@H 65 ƓqB`Kt1]4 @P[L ȡ ` p/^Tmrˢ2<5gšm3 $s B?L2I-UtR zsoy?CeNԷp8 ޑZ=НrJ% R1{AVVȖo U B[n"ґKaنA F1c›.2L9F/=eq bCݹΨu 7lL1i@y 'fPDntf$vSlƎ $~ @3>V tM!aΰcWKz!`E!uHKVYd!Y81toljFs |Ҳ.{3tpEg T jS¢?G{7j_ܗz7U`+?1_'wh'}-Icܡ 5S'9\d(՗֗`iRjr+A\ID=DmFG #]4.e藐yky`.g|-y6Ku0z 5fʟ[|?OzFi'޷:@]ĂT~,t7Fw4{:?<։uZZi"j;-5UnPHb ܏ *oRZkP@賀&6({*1EB)V_{}-MlJvwQov۔vȵrF4z:'~eŇv\|xAQU $-ԉYWZWCːj㲪{r*U Chv;N :OC &+G[$>Kej/$/\U{lPYhd-xp^'"D5Wx>P?$˲`n)ʽ"0&S%M3WF_;$yL#! &0 `T("Q H*2I5.ۺ*^TN|?/o:KW\{I=,}| tC߯W}ovi46w{8jz:>]>z2\YU&X@ lL_W[avĴt7R$0 a@X& BJH&7eYJ5&V<7v~ܺcSUؕ*[v4Gy-Ȗx(I%au40S>1?O7T_[ӗ^XXL5mL_&Or`o$(e _ٍKu(I۠8)IqK;؝?=AKC#@0_TTG$f? -{(kGo^0֫?|#Tn@' ƱLXȮT1DGkDs>w :מ@ZڔV%sjDϮ!:ovC#:,mi`;X9|WC^+GQ!H&(VQ:ǔl͍7Ǖ4J1Z4t$8)d>WO>s+fYT2;$爱q!-b+qLL:k4&V}VÝ)47fMg ͜ULBԽX6.dCkK킮L0_f{M`JyN EbQ&3HҾsp}$^5Apڲ?`qK\JD68@C>W2;>}aVsZ F^Tr[3Ku꥞b<}uXjt5s:meTuESı72QWي8ma IW1݉jܬ퀐梈s \cBGURՊ|07˞x ~UdR@P,|H!6v; 0ЈjGWTWZdI1ຨ,@T'쀟@Ć·-|E9<A+Qk{zL(jC|i$s-D$չKFM#~ #ȣIFǰ%| ۨ::YDf>Z] kOOf $[x}usI$Sc1 }Y=S%44m"%Wģ#uz=BՇ}r9sLJoUk>[hŨo xNp$lbжz(9 x:wY@MTFz`!'r,;x-"hxXABj:0"t}R˾gKRHql6ZޗS{k_s u:ʉ UDbF!S lsBh_UfvNFp\JHzW X(Ϝ%c|az! t4̈́ S%f" I@W yB%2Q60av6L S^ Qĸ,s_3t; ?^IJeQ'/4|(l$Px jReuZ9]-`W&N>鳔#0lN&UF`XŶZ,]K4 [Ss =}:5Xɹ 9[_:cr#~1O|Y$Bl(23EqC//*$o `N,27۔*ɇCR5MPa1f ړHlpel~YsoZ'\ෟ@i0&d ja-@s:}r ~43W%^; l'"?_?,5kGuh0zX\\cd4x @,1`a,8XKk0!yqIB󗋣3 .@B85o'N7x]gVrè@ȴĄ^ %QP~>%=$ND^8L""ڂddn2@DO΂ĪKںwyR )pN79 {|}EW 0x&ֿr ܔd !T$c lfR;=L,!,v?T$Z:{9tUA(J=۴6Rɒ&tMI8٩!qAh+voV2z:1땻Tx  ~bF7D h\Q3͂ 7Pt[CHMA s3z)S w.>+2ۀ7T 8ԋVQKW֥)'@}be^~W}r;!+i\q:5CKn=[n fI%;8q0+vz~C ǖUζ"®?*q0jJoLRr$\ֻj ~XS\߇n1:C]LlLҁ?dXhvIrL6KJRS"\W89D}m9ע\QQ5p>W Hm$2s.mU$0F`( !H!0o[$EK|e]IxYogȋٗt$olޢ70f?߿){|L?\=E_f`nLVξUip9J?oéTOv)a2iJGfa'&h/jo[jBy$5bˢURP.ָYZ\uȫ6譋P>^G$Ҫ:95 ƷoYھȽ*ᜓx2oLd?*^eBebrl̰HbX-];k?^We+6`<ɤi0Xpԩyf^w _Hq!6:*{!]?4q;>k>>ODӏmyȮ}~[ WGAW&(Fn1mzĺqJ)äe' ꐚD;HA<2&VS֟%AKC#@0(+V T/⏷eSl>(ޣ6; 'wHP vs On#(3U i KE< oUwڨx'"c]V͵/x EݲiPi[|*I΅QKCHnޣSO3@/x̞A Wjog6& "a!m"᧙g ;i?ơ84ЫծWt )hɧl m^;5o-J]c6xmF`/}_^}Á'Wae p{-򕶥>f*2Uύ(OHX2jk|)u0Xqpn /47W.w-/?^ [R#'mUojfA8NdW(B,Yɝ恡N8ha xQxH0g) qh8P]\D:#)ݳgh9::?v+`vۿk['< h&Q}~f3hg gRh,1Q;P<v_ַb z}֌'ƃcqZ?$1 ݷ/:]`wS aXNe{ >*J<:0foUH飯Gop(vʶ8 _<2sQίWv`4W+硶t1bD6,LصآM2(wW<Sng1F#{b>X" r$]QwUO.NܳXF2՟^|M8@4[xtZõf1oN+A|8z_/@CAG$۶׃AW\;]60-H`, G2QF U`5ruqdHyHPmB;nM!Lf,OBzU>>^d+\[; ˦2 :cSH'4FES _E;%E-f:7zk.%"h4N2{gbI!\f=8FT'e#~/_(R"]bP?`pIɇEJP<לW$UEYfns69[BIjc-3iWYdnJ3q| ;٣gn0S8n<3鐟WS>@&hjYl}QȰ^%4E.=*AZepyMˈk6< ,QHbR)OT|+% i!6 aeHJ9>ŸͶOgf#P:br'nhs2:ߙD~Y!R翸)@é85Q1Egk#U߀L2) Ulxf|FYag#5*4Q x0Y&bL<3o*CA,-S[i. J-ͣ72ٽ&]u%ylTѫw 2&ޟP5]p98&Px({9C7y*{wB^L:P#ЦN IѬt MǍ6޸Qaْ $z0502H`5gzZȴhk,Z?cmI l<[1닳cj%s5Ѣvp^H iH9PP ^nC6Dj8uX^+u3Hu%E.icscu:,s loƂ6!=_[ >j3?8DTC!x-AHXUNW{kT&2k͇p"_"KHUk\!ti?mË4$ +ǻT/*һՖʴ}]C\\"謔O[TooJPq% >u?j$sA~j W :7 C CSd~_&~++YޟwWK1aXUrUkaGor=p˶+5W ,[f'hyY^EI\6 KY:&<ꟙA#&c[/t߼y͹b0%?@C|l+2 8 3R0;tq1ӡ$wpӌͿ%LGON89,Dq*!,P6`("!!T""!޳/riW٬WГOYKY#}KGσxRlaAћMge>3.;̣)G:!fs9X;LGϓ%$yS:weG|yd8I+J7-UZUQi~kȨ>^IebmHjB.|u)=mJ2LE4,|;!z0wg}"fx&*lWFYN,J:nVO]X&yHɼscW]yDqD>dž-s=(WT n wjpCzN#+|e': GHzN 4!9=!}L/!3';@;c810i}۱^i Clxx+X8+9w}h+o`"+`͸6Rl}huB7x7jc ,ٰ`: vi1/-  RD^mY3Na+t:.DT#(n.ĥXczD+\[Rt)'ҰTg&<U"CǃIمFA(>J6LAEZ3uhUrLj9tͣ! l`qi%UO1A{e;N ⎐e A+U^>pҠrApm24ɨ9CuGLrS9xp/쿧ƨDU/LqK*{Gqm; I8bxHI?>W:YpW1vtr먁IՐԧW/Wi&%*, @۪QꏴC?,•t2ʭAx7yt͂,mmlY-y _J^(Zh awЂՐr>Mj rOn%̓K%r˃"P6BQ Hh("^﬩שX[\Ի'ۉXt_^ݻf'ۥߔ7-wşN|xy9l}<8ӣ_Jx*,[!%%ۇ^`0wk:6_P <:}IWA98sM?yY}M&Onϡϴ]-K~p|D .AKCQ@/AU< {:V)ivM{ZM lޡp(T)Vx\3 y  WdvE-j ~%N5G'^ '7c_d,jez(0R2_y ZxlW7'e NS=yv;Qʄm$:4ad *ݡjT:,.rta4O49gap@g](D!"r 7b2m GHv7<^U6ώ ^JQU,_ɣQ  0`s Be4eK{^-`1FK4 8g=˼N`$B|`P@:NC[v+yXN)D%X7B9@d|C!e U¨0= T6'{LtdO-ћ7!|́IP0E*!t/.y>A2dKF6"{{^3]!V07ՃKodQȦ7-{5)m:۠+'D]>%^r?x#D5{7_- X0ɊR4XM?.V0bamCI~:Cm~3BT`8ĹtdҮM%0ē:=N7mu>l8,E+dfev5K)6RGFť@-#a%ވ!𧻓ta 1 WaSRn,|nhX1N~l#ms 0\ڨ8X8k$C&Rݵ9 4pmyBk"ZeM>po/%IB(Ƣ|O65'zCHM%F$h-mUUlf֊(Z~1jrzA&5f3p1Stn=\Q,Я# t``\@n9-iSF0 *䋯H5 ̖$RDKJWݭv*ד c7A`Wր=LRvmHŪ`O1X=1|,\ 2Iyl,?ݹ.MQ! ~yKQUDR[N|̦7״QWj[ os<$VH?=&T5=wMuoqW:T v(%!D #-P1[l߈j@ϷaAhw(נ͂!ws]2a"|& 8*t*A hvz(&Ԫ1XyHrJezX/Gqb}Qk$lmTi;TK VmY,2b"GSuB>+X)/j]ܡId< b ol.YI,DLj *WK1⺩ Q%^* 7F}/0mEA ; #?Wt3 U{^b=ӴpR^Vn규oNb7<%-(Oa!D 80Gc»#&w-suj@L/B0歎G-Bb劮vfP4'{P{ =8sOpKO*IcQ2E$SN$\<+-o{ LkrMlAU3Ʒp5*pL"O1=+[M!/?kpq,^·y'B[J:{ ,T/.r8"hfo1M:Y(`/PزA".E|Mt;b]z J~:|YaP6X߻:x")~jG`>5"$4x臥 S\mҚΊM;e6>S}宍MY5^BƻJj q_E#Q)+ZgQʃFr6"GP%3mvड$6Sg ` Չ;]2 Q$ r3 /lf,hfA+3 ґ$G_q̍"S* ]Gʥ8" ߆xLR) &3{8cTWC-QJ"q>,à /q~k?Ze!U'߷x/C XyG#d$0&3`(E G^9㾷+U"=~E^k߳uwMfC_Vg hx )ylO sÓ)HyLՇ-ʉ 0F`* AA$$ BP%֙٣:4* :rdl{uL>>I L$쒐H?<)}.5j ~Ϙ~7]2vpw/Nm)7o,'oJ$[Í,z[᯦Wu2ZNlp8f_GO^̝_>w[Ǟ2AKC XDOLBм$YSuW% rSݫKD6^:&j %D[i'K41[ERxQtERs#¥"ج7׫ӪҍnzM`I'/oIZO p7*ePn-TN]/(&S{Yȴ@P2iZIEs;(Ԧheڳ?pI?Șw?1,أyK*c DZrjǐ(ʡTP!fƋ}/sO] R' iM,jQ|\P4Ps&#ٛrJKd@B[_֝;3ӈh钧ForP䅄Ifeh"dNJjaϿڇĪ,f7c+$(Uti%Pi4tE3#)Ȝ4P@Q,/䝷-1mY/0Ka^\b/ U4{*I(T8֎FXdNRlVǬp )DTE EF j eLkok_'27۬ ġ`ͪđ[M͜Ís&wO>C)UraJ{ACHx)si< Y+yV"p<]pk?#_ =;g$w~di`PO:{+$$di]|"Dߝdl i _f[SFlzKs*<[q8/o%˶{s[C=Z`~2x W\OP\ LRh< uejIURip~NP81Ӱ hhq(A!nm%z*Rr/}h߷Z:d!g6)fsݾr-7 gՙIÏ_ܡ$a6 tD2WDyf? =Wb@gq`=?m@h=^^?lZ*Tsͳ h̴n~:V\*Wff,V@r}usa#;GW˦2~"/dHǺt?c,q$\DJǝ 1Y!o p}l-d@#>c h8.9DO )ѐ.gtQ [{p ui )ǮaXr{Z=Vmĕg!D/XY`ob=>xe`G"o;5|/L9 I$t|6+6ZiH!;u+<5L,sY_k n)pA^JɄSsJA7d2 aDjS7=oOp(M#")чTV!aLs^}.Y;h/$:@kbC⪯f}w I []_/)2a<+K)\jN2WZ0r, )Q0m6ۅ ̳q闚:^Q*ZFQϙ#6cw1gYE1^G 뵞jg>Ш6Eʋ˳yp&'#p5B)mzYJlV:tS.eBՉƫ &ψ\r9XhOGA^o6q#W+%ˡeP׻A,5M>B5YW%àBseϨ_vCm5 _OyMɝ{d?<#A#PKdCB_;VlAb]vϰf ]J >TP%y(6.P^dı *T^꾎ZLƦkI2RG STR7wF _ [=3E\C1qO]:ı}4uCE>Tg3 x4vA-q&LǾgG* LatK1 YFjV2y$\RB\&5%mV0fpOp={ta*[0ؙs`XgQ_&πEoZ:ln !q* _ȜiL>/ՂgvSVI.66vKL23 aOjk'"#n>SkXa0 E&yZ xWQP 'l'Gt{=( s+0ұjX0\aƈT[3;Nv4׆hMSJoX`8~.x/be4p7^VFe{?/8`?D#X@sIldh[WI)ӍjCwƶϰOSW(>d6kXT`ʜ.sP ѫvEYs n­؅ELV97&@If5@ۅ<#W|LB56"&G4-C `* bc/#fPq7gs -.s^!w|Rw%SYm#a)>(A*hF.u(CWW7=}mvtT W-0L)KLPjAVކ3pI`*ˊF""2G|^,%ʓh+)IC~IXaމ+%<*xBڏML՛}e:SxQـ5{S)A1WO:r^WFs1Pج5[Ơa\ib*5 Ӳm)H=yaȘS꼦qKU|'k D)Q%*~$ Qa-QOqq1«Vc5J_V,d7RW)|@ͼA_w}ƙ֔K?0s42C1_zkPC^5Xag(vN|fswG) 3M-xS:wLj:&,A0L!N@^*^tY-&TIW̾x^Fŏ3EniwۖKzp:?'8q=5CH?jc=Ssm| kOC򓑹/5I~ZPx&{m s6߉3PPSN"ω&[z.=.jc9vq&| \ gK:jD=A4<DḀ)2f%gi=.PR荰Gg ˞-r:~yB9]  'aBO'7;ˋPf"||8^q(5|JMz}Fgrtș >; &հ"wVdS3tQG\;Te^] ]Ņedo6E}%|(ci@];d$ WUW'|$'3 զ"B)!Jjs ubLIg=p\55.OqbԭHYMv)ZE J/|To)(22ny< 4~_+Du%4WG3lK;+$atsLyvw/G)#[:tnU@?||V4$Xn8{nye2Pnu{NjƏ٘rM*Q ߣrҐs@ .16oy QBh,U,( DP$ A$ ׶d9j/8]E!yQTQg]8|riu[0 zq@zep-VQ\T & [2LdZF,:cVVVw͉zdj?({a?l 4Uh<2zO@ŔRtsN"&PS%Օo~=wi_IDzzo>!G*iI!zMZQ:R4 g"k0VdNqfva3GyKD  Z~W>ykS^_\ϫ7~/M'u&w᳐[-hE.,*j-0zӮ\°Лo5ބ?(U` 庵@ġ| A=I&S?]Gs Sȹ[I$^x5W:/# "J`qt-PNQy˫-Mr${(.B2F*/HKbZ-YN'X8Y8GH] N/1N巚R/tR^}߮Zq&ĔDӷK-zUK[ο$]0tӸᛄxFy2:(a5ڡ vwl V)ASG$sV>VHN.yϵK,!Eh_kwnOy"]`o>CX\+egj놮25٘vѪg!}I58U,6 UM3R`KZԄ@/58R+>jS3L.NN*_K q^D^ rJؖs7bn? ngMma/(h8]ShA憍gdz?}Ns.{(C,qfH"bd" 9xg%4/.7&iIZ؞|pXgc6 [퐝ϭ hCh IQa^SuT2$@e[S;!o.M 09ǔ+{'<.ۊ+/J;z"[*۸9C@LL'veljRP\fLTN7 V H4 ?^[ @cC*̜ X9nXć#TCVޒxbGk`f3#-$ ؖ>FDVpT0>x牯@oX^Z]VװY&.#tE{ZfZb/Fid-8 S|dEJTXCIw߉5ڹ.aV?䊙UYi/ֳzLr {T`Qcd&%kxqGe߳҈FQ|{XY&H4Ƨ"tE=B ('y&^>s)\"*ZWPZai[Ѿl06:8]5=@VᶉV_ F-:ӅIwO7옣.PV_Q^A慗hY u %X~Qf0ԿL1f"]Dy *>zKRa'hP2: 0E3)+>{[}Cz](~yJ7\bn[5zr|˚ H) -23,lYa숒P2R(Շ uY6 PyEX, ˓S ".1бh0Kuʠ1{(j~uWUH岎kVV~B6k48ѷI18'Lw#uPR N{o#X 0F.OZŏU }{8|Rlעp?-A=|; IC -1O?Eh#DdUB(аЗ[U^hYie(cʭObBW,uYufS<5 If mt5Dnuf!Qz aezٔs&5wcehlӞ|V\)GJh YAH5vҌ&W2]64 hRsRe;Msb! Icn-u N iTp%-#BHqd !&k9oȞy |8/][KeoCXâtd-gʄN컇vu 8 lRXN;E\C ".#5W) 0hv"/x2BMȱ4tDtt08;%8>jJVg+1,ꊜ`6t \-jHFk{rmI7-6e3xN*|U;˹l*:,+̚QCEF-~:n]EZ驿&-,̤wԢR)ݤmmwPDȔ‡\  S#Ч~y+$ٷOj=L(B![*iɋi.zw^X9S|,g0΃i:VP'T!D' ZQ{/s0:XGҴrIK^? vjجw hϛC?V xLBșk(&7bj{.<tJ~٢¶m@; 3SKft ؛60rps\(NƜh| ܄2yzNT4A-Ys1AQh{-*B;'7sy"ü` } ax?=>t)6A|PJe%ה9ry'|afHj oor ,H&xp1UA͍D +C[Փ9V{LKmPvط'?Jyt]j腇ЎVYVuG hwɆSl3@!DU71?";e{xaK;3(ՉospE >.uZo_36Y:)%)$Zh[MbTDpʦ|)163]Y;ѾoԻsRVxۡ5q LQ!27dѶbx_kkZ}.c oT ⊞z}p(>a쇥ւAT! 1%FWE_]3V8N)4+^pfiCN։\U3<@bķZ,#l ͺU+Y`qgRIrLSڶUD}1d,iwh*#3׀%v)h]%᠉ IY7„7A^|B ;lE2 s|2OIAcMīu5JDB{~$j:3*1|P_Hu .-JNޕgs5]AHO BU&A=8tFkc 2*C1pi;J8Ҿ͠e^#Z4cwM4}]R@~t_`p&wdɳSWwIEyTZ_1Tm::3#-֌׼Jw RItwؘx3H]&pB5J{ka։U`I-pXOhku;N3f%fލOW3bd޶v؉jU o\ MV)k,cZ K'|26 hSz[rUZqVx[#8 zk<*OYs+.,i l"gB DPp y 4> A*4.QR% ĉo-0N֯/mnUKnvu4Yp v# k).-ttgIJwK>rEr?LK@!a쑢`wgZ(tݾ1}H9kmR7aHĤ!e2cL+b`'* w-V}AWq"D 8 0 hx+ dDV upF _ ʪ%ݱY"v r8|du4u(CC y'A v#V0tY9o안$v|qJs;nLZQZ88eIQڪ&RU-zg;vX+^۹K,{b[bEo_'rK,UVj>4(S=pxN S&#ujG#PvISAg%j!V]'5R5.䐁CȂS6UĞVv!YM1ZvZ^}{Nނ^C_Q9@G5duhztU6Uy7eFbNJ+a)GR8vC  .RSn Ef-bhu >JE𛋈;G:ǹfGp{ݕ朤=ኈ5mr{o`q/*@-H;M4Z]:=-o\t0ϷT^h =֣}QYjGg+o6a )fzu$%!`\\in [Zq-vK9:Q`GaM|< X|i8` RH1xybqtv&WmG+Phqx O `.a/u۔N {\fPx|l4Fc ']ߨFN$0 F0.m/Kyf5t*ZʫΫKW}~I\,s\Ց:eOK4 WR(Ua% vo9-+o@㛨qBx){'cVJWckn@ SD4=T#OsJĶNcCH^csxT7Kɦ7T'wXG[B4B'~uj7Qܞq$\țªX K83 O25אd3P|1dPBo}{~(O/_d@D._-3ܚy_u(* $ܐ/jEO҅8E߈AUuQ\,6Gu.ϓ%bΟ< h%ˏ]0UVֳSHTi~a}&Zyz/'{'DzRNDvV/Nd*MEDg*Ğx:~$NKOp|v`#cz ̤h[:3f# 5*M&WTYe( Y$>ԃ~UTaZiw4> iL3QP6> AAޛ?JX!w26{c P2RO)|i|c{q/:pq L0G#F cSQ㣝dlm'{~*ËHkЊi ]ɼ8m՞GP}i5V9+pn^ ̋` -gh;ӧ^J^ wˬa6KJ7hz3X`Y-K|w;eԶy9ۉ -M)Jj)8lABg'>v#H DCp,ɯyOA 5;Jn mMUvFB ryp(Yae76ybyo &U2j#IC3 GtR7z֐dw, 6E.6\lnbVJ|zU'-kǂ}"rrT^1VTuB;pǗ'8G].+[*h1V嵂؝0I+..]]ib%ys%[0zzkJ=)@dY \t!Mz XUC ܤǂ%R,^~\QwH&estׅ"&ad?ͫ5N]ׄ.pf =^[S=76::bVC$|)9ڇuةg䶥k`,R 8~|&,>H212E+—P;4 1DِDy.+ۊKzso hr3zt`eƯN+ d }7Z2PD*OxɿMOr%AL+֢0D( {F30v^ZAM04˳98qutU *4G%T`D:\ajñe/-C/"yfV|tXS=m9?9˄kK{wrYjxOu pxz :uXX Xqrw֭ iJO2rnOC`!>J 4ɲE>}UpHS*T Dh> 6 AF)k&kd7ٖz7ҟ _mvL`RM6TR*㤶RHb:*2?_B[ѩm:(TBdUՉ{?&s§EiXg}̉ iVJJ.ETn?[o.zIM 3 [6r<,he~-ƾ)G訕x)}X `ah '=.a!p K%Ys8!KhXK{G,btfC8( 4A#vʜ%-1y=#X֩W7@4 $z=[z53,u[ im0V45P8\.@֎;dOMW j\y7uҲ*k&]N=,MhOI[0+pc;tRֹ-sZjlN }D]]v*{606:|'K*Tq„|ʻjhƇA#c>SJody )XFGVf#;}`3fXJlD)(UƸh镍@) 3YINszX**ҳ(C6“`B Ğ2@$o6{Jx8E땦rcp~jvǎ,BtwQKчڥ"+K~_wK`E߹+s|m\wZn>\CE5S, rV3?aKy\9c{6,2$ȗ?^jzU۞ NO(ݿܩR7~[5XyνGvFuy"ntm;v]|3HhcQ o0[3w7h1BWٷ#z¯:sKIK@o?Pz4K AaI&S?NtUܘ/ %x9S)fZ%NpnB˻5ք6KL]/=ByՍھNG1̻%5~ۓ%#<ȲE{MmnJ=)2ཅ'Ϝܜ"엄䢦ZVhNu|BhFNufzs-ǕZ11wE~B@.̡O5.DkuPCPSުIwBqŗ*:ECݵFfھ+#!U}ӎPٺ{4/+6κ}~Ojmu!%vhSwnXStLaVv 貉O1@e:+S\+v5zGZIήGYTk,a?hq` >#na+Du~Oa~}W:Rw7l1=m`2]O,?6&DP!G,W fIu!0\٦&W 8q 2vէ<↻? ˎ|?v.e;d/=]T5w7lc]2c9-fwޤ~^\kH](s!MI{r <"2YfvXe#g&& P[i]( v׀Ȑ*  \ ?k'`!/^&cs'l05/dֿeQ4\FS8qɋgbB=2BsHw6cō7+Z*l?ޮby|+<; sQU1Grgݯ{MD#Uy͓3yxǹ$Wت! -Wmm8-f'N&8 l5joLtQEaV|zH2A TǣdϢT*X9we잿X1R mi%F\S;ZTncW?l+8?}OoǦ⓫ j  =]bp ^/J~&#bȋ`j-,7dYz&飚=~'ίr%p4`ib<(3 BaWm`'YwCt@-3Vem!feV>( y [7vQU/3. ҍ! с&z\<%Ue ++>?NuZĊӔXȧU@yM=x2lғ TEi`:A\eN'l:X>c[̋ KsH4 {ut+'cn-%=CKw&2 IB5wd%*qK*6oT%I^25]X{=KX$5lfksose`QR[(cV]rU+">m-,o2A^^ˋשDQW]mjAsfƷMJG, ,@ „uZ!\]9)}`?/E?1^N:I"62S([m8 bl^fc3 䖑\7&~=_,}iu>넇bմ=n+LoMPx꨺ P[BbU}*˙ӮH-C 儕zI661N,el0ȔD}䌠a0YrHҧdnK\6+GFϤ.`A躲# 2/LiUp\THe44v?oDg~Z.S0A#vvBNEmpB9Wҵ{0|;'ySP^:/x$^#xR!'hr̘vn ,`N)-k E4+@L@@ H!ڔ)mZT,I[#^@OFo(^vK4icqNlEtL!H,7+e8].#=GH/(01 8Tp{!xB{lhe[&pNpO8VPIVBlShv1 V+/`aT7AͧV, n[17m̩Ejnl-Ix1bq1b?wV̛^+7Veza~}a.tlJ? UGjMoۺ2٠Q^E61}?иv' +2; Wѱx gcL+.QN)ɐxxu%kI^;gW$9NHe؆TjSWnxqA,zʔMNgp[bA%;nWsP,{`P>^ܤWJuYSy`UY4a,&hq]+mimr>_ˣ*O&~mեT*3ۗiqslٸ͈T9OZWtgI;ˍ=x_ `pE^@;6?VNGMGMbp1WB5]*֭"&uo-i[0I&MO\ۺ5ST0F7κ(%˚DJ2G(2%:~ !ö4.+ݖe;޷ͧOgGZ=]=5&=ơ:m.DrK3b@PJK#a.B 8jMD'elT/ j&d,.\N{'G9 ~N3HYR99`Q* wr]h8_!Sn&lw9 mdz❘20|)gx#fVly pHU*Eoოk tmZA Ekĩ6ZjA1= hW2ɖFk59!qjvT1ܯhGd f y=. 9W|zf&U Rݘ|`&^_RTZ)-|(%0~2/WH8i!-/ ** Is%P1` ؤq9p&e`OjWWҕMpQsz1bQϽi:waJMMj,QCf>O*2CRzk]hr AI&S=/eIkA<0$oxTJo;ՂX~+b+G7!x[z}qեaZ,7Tk`޵r!?Q쌘 'y v~z\͎d 45:н;@E϶GB?Ӿڂ0ś0+U՜I "}<^wظ`e{%ְu* 5{UuyM1r x#VQT$'/? wֶ\YLz?e87`q5$S![dCct7HF6XM2)vvWgpbxjL]LPMt|JС[! L ~L>0f7.4ɤpl-FpK,gqGGӋ۲^z?GRZ6 L3](B?=˘)ѪU)R.V ˛|PmF\Vx\r|t~Z?q^Zs><.lFTW(_PTr1wߡR8n38m@[ґ{ftsRreI{̜Rѱ$K?<.=];gC?*̧ IEs!jL^wYݖV.N @]RA4ꗚP]S-H2]@[1xi San->  r2K=*+o#jm> g^ 5sj%a|l.2ZYLUbEOci'8`x'Gӥ=B=L]S'p;hgt( >g}T?'挱&7TGNp97C&lT8c{l";b@mcj=$K>%  M\D>a]|3r$gk'EKt7Q ՝=T_G;<h: Zwi?Ԝ U*Ѩ_=O=u Ud֙ SZ´ ST M׻xCD5;Yw@R?z|e`zʔAu'-]9DWʨ^E9ݮS1 !0&EY`yOa=D1#$/𾦴!U<% wI_ ſ?`TbH1 1՝y0)o[G|?nÕBR(B|kz4u}  <&ܠk!; %: J972?Vw;|7+:]h@֔S~h [͐: rZ&pkzfWr3|4咊p@+.)4]uؖڌ>=s's`{*7)s'!7D~E(WRGmX2g'ErƟ) ?=8I6$IDP;2D:ﺷ`ڸu[9veXR,{p+ku׺Nt˶/gWAnlfU=/Ѝ,/'yVqo3ܳ C !n.pjWyU*\[tFD:~$㰁:hj0QMpy a,O3>:_J2c>!"sfbChgm)VLc@MA8 (>"{iis '0A4^5pc[@ŻԻcp)sټ+S@[:O>ge&[&ˤB`xM)%]&@82fJC,xP^?svfNcģ)H ie3_1| ./E.*8;-ART7t= $dVNBb%N'vd}.y@$#/gQ$qɌl΄7;9jd7$L`F=)gt2 k"}3mC?8Ldr-, ʚZ*omH&f~Q x>; UBEA@0&%xvegL0Zlχ,BWV,>PצTHox|/e'0p (,v4УnF\Qvn) ^gu9uH.!`z ȧ0d6CT3p>KZSYcU+N"M dՋ(\,fn(6k-0 1+0F`q?2(mSи.3=(n>" Bg?r+Z‡ ˜["ńDcSkDl20 N.ɓy^ޗn,L_*%[6*2Q(6H2tpb ;Hꍅ+ZF\LhUEB:hm1kH]q²G`<-rIGfD8O9%gsIZ66t) -*7[cG5;a(]YJk3m,LLܰ++5XyYI֒Et6}&oU1JrOkK ?8"0Y)B nI?w 7U'hƾy8;5-mN}k d/D~g\RTK=ep 40l8uml5mFB1 O˞09$ݕNGkc58` \(1c#+ntMgYR篪?YR/Ġ@T6.ʆ+tLjEYn `ޘ$7 -쉦yAL(z(x-O/tAa7u&l={bbL{6ۭxr$mMn'Lhs%pk`@=CqɅvuNШ;w,m$Ԏ@ފ;-@H.v)wƔLs?ߒ8k؋gNtq+׍ZL3ݏś^%5eORu)c7K)ۈˮCy}\ZWk&k:D~jmUp8QJ >^0( pq+ueY|׸lF@Dܫ`U8B!VY 4 -"f=ƣE*with?5ɳu#kµ]V,j61Uw.pWH 1}s>X-~ . 2|(ߟ-/3* ^soNxw10{jS+8"d\h㓿n",Э\ԒU"ϩS#Y]4%j}Љp3Sh%SMc_1D`ίC[iO⛳9̕V``\ ;B3?8WzV9mѦmRt괍pf0`ɭ;˯M;$0ptlp@m_-cJSR-Y*Vsf 8-Pp AKCS+'P߸/қYR]Ŝ:EkFa-WM|b[ x 7>9䨻>v8D,]~ j<]' _!sMat OIKL8^d: qCmBAو&[_wㅏըS$Nv<˪%R۱5g+o7抵t6p>a~M5mWaGCE2GU  { |Pa"L~-"@VBR Ad_q ^?Z^wtV'xmپa`1VFR4# :_{e[<kGV4SzgR)h\P&2ڼᅨdU:]g@&w+վS$Dr̥[$3"SZ j'Q7_QJ#O!ө(/0Iis{#nOWe$)*y00/5ZZA&j@Bt-B혲'%{$NB}'I|\wv˷C1p|3tAh~+ Bw9@wh$[jg\S k~ ^Ae֊vL"ML}Xm\35[c;#~]::(`R3op[0w}sɗ 6{L]љ$86Mw/٪杜?^rL#+Kr{3Cȿ V)wr]V\&Jr, ҄Rp1CAt\~ )q<,#l/ՅfO@g)3ӄ V3P@=?F[ LkWOSC{2~ 2dvϮK_ii8E*b"iO'-@Q"]eNvLViEã9$&'3(Ö];}mo1hBr{D/;P06w`$w5))4'`98'B7#ݤY ΢218'QupHzD1}YKwk}[QI5'ULªʑ #~ %n0V|~:Ā&7{qX_څ nc>dd'zEbӍcX\|#b,7C{jX`}m@5ל ~vE;IJfa[ͮ["o.E Wdlr'+8:wue-s5NJ.X C/:I݊N,K;+) O[ĭ jrB+PFžAy܆uG)Or]t*E&:s+R&Kxa%"y/G2z0~:!;%qLs7F_-ZnX}=ʐ08%n ,pslP#+籱^wmҒ}tja|L0+ogA[@y* I&OTxw^wevǵ>< (ba0b_D]LD7 RwUn 9)OAEC8aA-r"/ٕ0Qa,4b-osكJ[D z y]C:*>g/Žȣi.ˋ6N3T/(m# .d^t(ͧ82!}w+󊀳fJL,f,懁 Y)Hk$:eŜYxU_|]e]RX5`(rao;荷Mbbݩ= ha9B,/8S|BVò痮tpƬƍRb' i8n9-YH9Aw)`b eUml^Jyߗl')$by%hP$im`" v%H̃>9 BU1ܰW''q\6sfTp9́8 {l88V&d Z{J- r_C[kϿ3rx ؀ѐؤRgk9Ҝ0% >eQ>6]O+}J3u5}4C[jaGD\7t9ndL/jnlI+ E#*e;-e(}0`+*`/gJM9PC:qB-7/mj?9Kd0ZV.VU%z%hC禑A}G%ށ_EQu)53loMGh~odcQ;"FFGbgdqp |3c]&wҫ`#"D{8AbZX%ls_SH~\E|ff'>RӗWMLjL CпXEsGx6_q}_Sk:ͦ:1O$qRa#{4 3CZ,XǝZ#RF%=_/k=n1dz"vf߁DnUǶdú, IE!$՘06 `,$A$A PaznZn5sUt2]Nq~;Ϛ{5'F 0w;2d1?.ٵfin)oy,Bv1h_ՍQUTKKr_2L#'avvƔG;Q%a9%{:avJRߪĒ8*e˵g0 TqFtԤղI+0qd1E+6= C(hXFa=P"3[)]:T3284'LEX*=iU}J$苈FrfA\> .oJ#26< b 44^^XhZl!? Dy_Bc|Yzݲ-Wn/{x6ũD-DD*衼 -P M!ha$06`$ DC$ |zY.w$r$辏ӷoz=?*=M>=ZnMKOCv+GtoDח)fJOɹT`;gC;ۈ>xﹻbfʦ{ߴK}H ́HauN4ZeVf^_In"Q͠D' yAI&So{&STao8#vvt~=68U8 ÁLv3h8BzdqBno|ܓX +1*dA]Z[Ș}%}M`ҤmeqQ9x;:9eЦ^'Rƚ@O^Sq%-. S0Tu`E>hw\\U\ w$qH_Z.AA4SŧdaSfdJ G1XBar?{AeS{-z89a~Ճhw A ׳Eͻ?6Mg;:b {dg/#Pb p=~IP`]*G,)LwS?F[&L}@Xo3N,׺SHt{z#s).QSAU=ZҚuCHq#AB_A޶1]eK" gX1f3.`H 6fF^A`S;?HMO<|T1ƉG&~j}?=uJRq]Բ e:a OON82]OU9NChBUQ Xs z.p)La5%Ӱv5Rph}=6P -E5OB6aD~m;ct|V9Qǖ-Gpӷ $,ҹq#7`b]WoF}KmI7M6J.`o:v 8F+;DPEɦ3d!aWl]@xtCܦd#mzc i%ǵ(,DnO/i ڄ|Dpu5}J{@GVޫw+FU2_j&P1Qv`ub7pSD27V˵s^qa5VrRd/LrgLH_S*J!H)hfs㗌"N \)3; ՝X5$5mQeEf7w)oWj;{^jbZ'3{GG-"VP惝w}WR6Up!m+qR%2(j^sx*KW+4xZ6Za[NKUY]j:_M?ܡF+1ᮖl[ {%&9Lr`OnSDJ+y* 2l}~[YcҺԟI*vL&tb\JW s*Z?1L]5᪝Frc%M g1q aoٝ>l§,2,gF6Q0gJG1Ns" Q){ DO}yG-(0}"~Qc<0X(<;/p 犌Y.-7| QMZ1Jԕ"YDzԋ~6Sr]fٿGOYpD<,yXn۸JQ!ZA-N|KM^#5l&|8L"ڍl-  aƋuD&$Yp쁹"皟qi׊__\Gj2kH){̚nť V7ё4QwH3@cOQM1(xծ(ɽhyO 5K#\b#l5FvoUzįA <ٛS$$/P[-Kvн(]yC5 {f5}R|Z!툮aV۟^+A9zdatQ $Ӆ4Zcy1{*TLd",o\0d;<`E|}.4"ME Ig>@y5UN9\;/ܾ({rtnnV̱| R>~XjpFTIʴ?:O^[L,|}YJU@$u]8( 8ѭQB$sFn˷iݩH]H-i*6ꈈk qV6a+ (Anpϸ3/`؃BfeD75*f0"K^潵q>ZN^[ ]&-/[~:v٢6!fez:Dg$Mfl9zsZtHeuC&H9KC_X БS4rP{L~Gےj[KK)A%^.+5a==-Iu$^5qBȏ{8)@e#~`%ޟ N89-7^twFDy.R#'ACvSqYp4=!ӥ؁@CG J2ik81=V_cGH/9l/^X64بQ:y"tOF("OK":s(Fw_e{`թCŜ6G!~ȸ.TJu;!g,"V>籶$u),x&jƙW ifu<}K׻|)TI G|ZҩLj*KBl()K3Nt{/xdesQuvSu#M6im8Q><Ѝ҆g/ͥ F(EU?Wڢg ^FOA;:ɵ_ v^QN_@Y}(O%Z?hqYyUa '^O2A.og9O1!xIO!Y@Abcsy<`cW>3bUSe=_yOށ \gu6%B#Hnr(rjx*} B-.Y;D,EU&$ߴ/idYW;!r" Evڌqy6"!CA6g.zLY9KrJG\ⅰcMPZ2j5?̹1AdВ7NV֎4[r9s-iG޼h&!,c7mizhWH˝_艨f<LF LPLڌYk%I?pH Ikqskט)7=],3i2 =NO 5+6sٽ\} 6CgLz4wZֽѝ P`lՋAG&] LdsU/ED3'}}|uUSnT;z,8$nQ']&k˶PP,[+fQ\gG$[8D˷dNZ{[T EobM;Î*][q՝1>V56+ʛ<]+ ȻUjw+l dë-dL=A TVXPEi# u)&ǡ;#Z1V:?|mwMf wvMQWx|0q1#E9HDɻ.s#$fmg@ 0Nn<{1(&^AǏ-,e}R :$Tve S/*~k@717fUOTH2>w2<}VjDyGmEo~.?;eCr1_`xiNsR.C5ƍa6p4޻)޼L|@.\&uMSAyl VR\SB9K!!ʆ'^)L)=Q4gځCKB?kӬL}j=ejF}学3G$lV$YPk3.&/;ne)+M&]GiFd}zҴ~y!COHF=DJcdD(&[BAt|gKvb0X]@</m"n{DCm{}(jd]T\ٜ< O/+!^TN-yGʼ7~*ksmQB[t#/9T5%&ͳ~3=&Ttx!!ouRy`mQsh gSYQ0W&g6PfKzNF{ GDcdG.+O[LAb kB8yQl<-׵ POzkC?GODKr~;Wf"$?8-Xj+,@TE9jL5hGOÈ@u^ st}7!OS oLb6=:ӶzĺSmIܚ{!6u].F|P;|6 l&*ڕ@<~{If$ҶVZg*OCG||ԵV7}qeB6^/,fyY+_$$3σ;*&J׷r!X{ OG,Oib7m2\H*E&{;`A58&l^Jkfl6e#':mp]B\jf&W?Ȑkc  =myIipqDzp4!<;[q U][["#w'Q""w^O"ڢ?zHx) !-m&V3E=dfWEAe6t|G mԺVj ٵ~7 ɱ:j_ Ku*=Ny7N(E:)y.~ 6]}$ *U"\-%w]TeR(*mrCꜜw&M#c(f90@@7paƨAIZ]xH-oH\U-Lǽk4a cW̑IQv|,MvF/ {yJ*R6 "kȿgM"M*4& a X( !BIHu*r_^)% K}slX>ɲ_]P}75 ~:~t}\߯'˷`hߒn~x EEwa5?(X_u?CA3Hy ْm*q&bLE,dg$0Fa XhR 0L$!BB0L$ \mxZ)vy.u1;?TP?.!|۟z$>&\m[q!x|N?>GO[9?;Xvw\Io>uu|ՙٕ'׎^L 4 JL4#=k;wМH^^y#A'}ki=cA I&S<ҶD҉a()>{OGMhՀJ$9Dr>زTE['0G, aaگ^O,dc P3sy 1\ v\C\76ʟ ?!pP8#Y Ȝ)|3(kYLM ^cJ\eDں@mkdlYhp<8sbi 7j"/ٍn˭ރi'7}Hu. `L8Q yqRb010MIQ LU - u{FpFAbTd*5wP"./5Wnn$ )/D+-#2$ u =Q< >ORK]ƽ%G& 3}l=p>H^>_-_ 9ұQRH }P}&|$U@m P`V!yAkCȮh-U_ SNāװ=InjAܶ?w:!kFe+*U`dׂOSg،6rguڌsHLT:P,B2)Mujn,ΌWPGPpC`Nxu*=|F$G[3'yGʓWH A?lf2,s'B1Вyed -I u= /ꮢ9,2tܭ]zB8{Iu/Uz䲒5+6lE.ѤO6`gF#={:!Ss~{P|aDŽ*ãW9PT\JZsMPt];FM)UVh_T!FGݹ$ TGg_ѳ]Cg*bc^ jA匜 \|4S%Cbg8j ^ NV豜61夆5;F4e%>0!!o-Эha9ݳlmFaިOh5pRW&O>tYelnX.qbDV5WC|'8?kj=/C{e2 P$m[!LVݨ`1}у+Z#hے@H9ݒ|]g0s6܌FLcz.!3`q&$X$mM G#9AC|iރr+ ǿqIAHXT6P8\qka{C4yF#ߒLU&pSg)F0 !x}$[(|E~/CNyqQnc2%y=0" p3Zdƅn=EZሥӿ}54v/a󹭦zŠg 1`V-y@Q}<1ee%m)*$z/1F!X[*8BF^DCp8cbR@:ܜ%<-Yׄ1Bt561像4uVR+_MYMq+iIzaHNfaJ۠&wܢV||hNiu4 kd8 }R8@JsBlKl bz#zY|ٷ%[ ^/% ma-鉽RQlcCم1UiC/?zM t{,fR9ͷKD'8x䉶EH5]jKu@=ealˀ9ÐӋ폈!SP NayPr=rO{($գ}<K L7mԇ+A*~UB=m(w\[#*p 8Q5I$hm2[D;Jx]L@DުzoHAyˠ$#' h=z^f z;"$  ;_m)!PҥR ?}ԛƼq8Le.4&8ĭI}rb8$ O[)+_nW'DRf23nƀxl{]iR5mDUD{uq& Mg 14TL5~bq&z4` ]E 77']X Tad\gJ G[,n/0 =, :YO,ܣwh9R׃t lit4#c 8zJfK$qRW*wFIF"j`. a*Au  h,!.5ُ&+Gܝ*BvݒI}UH NP6 AԮwVלq2g, mc?EQLÀ;uhvRo:\p >kj\уWquq]V`Y񼪁$]Lџ]sDڸ۽Ej9nE%5z]@Op֎}Ida^+}a˓ݖ0V^-h 61'h%_Ȁ A ְޜͲmRMYTeXI~BG~~K2K:)JՎ|2P4)2z/2MR6r({n V A M-A3K_Rvh]m?Tc+t"9L]4qS7 od§FT#T&Ƶ)īnʓ|2(,€PJC@P$ B@T.k5uu*yu[<¶ۗye>YS-''ոf3"t_/~i($O7ϒ]׾؃xH_ r* Ok6t~U_/9o1S>͊CT4'^9Oݸy0wq3lm+}}0m(jGyJd 2mP>;:_Ҏ8q2>A‚ş t]F+m-:Y7Ud?XYu ׭cth.Kݱ7-%ݚC" }7dUKH=+'g" 2*oERARG2~M|^+vlH 8.AvCBDYѦ-E"U#3?rM։VC7PŽ/4&FQ",Өbb,ZUU`h70ɞ I)j K_EczXKo'5DC#<97/c?}gA_Jw<26ڗs>Oޯ=>+o~lϥ4?0on]b_$L?9i>ŕ!"Kx5H9R^td(w|raNo A+I&S=}V9f̮-fmi05}*L.+k4_couwV4jڧW:3v"DQ& OegedS.'t*-8ihQ3qޒ^0D(wsDCjޓũye`2T`pEVPwYGF\l Zx#4[gS1l G^i#Ogح5A [pxL=3#=UV/5}Vg{M<$bΙ;}w 09;pkᣫ{֟UEZ[OI1b.ՋU%v]9XQJVDzfܭ`3}A]B RTWzW]@xv?/tE?6i> i75u[u Q .NXnhV!5893^j*p66DK> 0x8yR!e̩h:z ^b qAr\ׅ1]# f>3D.qAq/IsjL467#0ì.r)tEDUj 5-۶Q?ew!2u`Z-=[ b>z [Z֑o,uM$ R #%smL!8g\Qa C .qz^/;:KcF$r6ҹB'LDRż]cpa0 y%G䘈5%5üix87"hӁ85϶rf`"{REdI~(O}[}䡎 h%SWi & Z#\ޛTJIY>}[VWexˌ+]K)~Rvd'%p[EQ뎂Ϝ:NYTfP `C pumnа& %B\",/YD\FP7FV?r/#GܕEt1 YlYZ"#M'~Q!7IT-s+ 3?NeWz,^[)#תe+j*Gl WT9V3yj־ /~td vz F}-McE{맶0o M%Pd-dk<#0ͦ 5#?m% _vf[ 4㼆50ij Hm\Tð1 9{Ñ?H?y/%6g A?J2'N٣٢)eUNT`ʼ5nkd7㴨1OI#P7 Z:7FAS9`" ɘAhOVyrOnvG띰Dj5ߑ0D/NҔLC%΅nMP'6Nd^l[O1zc:73@i,5^$H!!8Ou,d<#{L;fq:9jou\WsaWc|m`>JXzXV:+gm҄d߉_I\QGh0D,gWf=c"Y!gRzo.y5Kݶ߼A΅DbIM7 !9|p-p<:jN ZB콂 nu6Ccs_Ѳi=ǂd)n{iH·ևsY>6BJMM J!\["ڝ CS[_V g1΃ f#Α7}7?Ú*7{J^ iB$dj x^ՒM":Ln_V[dIx"bn9fD]FQ\`)ɀLXJJAqѮ2wLbٞea3ۨvvň\jH/,4 vpğ/6 BgP2qmm,P@ rZ?=͑n^}C?jZ2` /AZ8/Ab|y8^(%DH+z& o1+"p{Q퓯/P-~4h\#/Xlw>VFr]旭A03gر#w[wEn{zd?QP1~UߊGmH苵|.n ǭԧEBבjco̞H6YT$TՂdX3 pww9ߗI x 4 `P F@D$ ʜ7uil-0]e?«@}Um 6{/>g/?gXh?fyu9ou|}^Mb 4aa;1IR$A۵a8_C4}Y) ;o{?i]zʤvHƶu_@JjE9[d9b&,U(4pQ?.J럨>D?aɯG^JElUUg.tTR@gǜ: 0 W}r\QoM0* 5rv ͅ:by)wjI &R%x90;_B(b{-\t>YnCHv9`~@M5;/Lv(ev9Z6Yi[ aIx 8b?$A#tY\v2#? 1hu, c<7ݛp'_'2(xX pwq;2P }>TQKF+WS5PѭCY$s* !]!o8/qz yHi m8^+]6NVF#CC?ѽf_b8Ly󰁹q-hڟE Jd2\&΍,u\JJBu37 vC{H\bGgz"'~b>8m_k!.I t_KWf00* 1APDBDD&Y$"W\񺗋S]e{-:V*9:W?+ a?{7?̞>(/k?QCzwCZ(al*u0$F7-F#r \(>\;> X ۋ,(SZɾ&06, `( &]-+r-VeQlI5o?O^=YkՎ_ׇ?=埨oҰ ygqgD~˽N`O"A|9>)oj~0Y_v!P ty}܈ֶyq|sffyt! AMI&S=@j#N,~.:n#ٷ컧iӺuؙ{5fF4)8{D4~iL&JQ"@őMHE7ϒxTsϽ#[)6Zw{稜 -﶑nE6 ^0ǵ0sZjɶ㦲tZ]cC!~>g(pDrREg+.CPu/h3:@Uc()m)__$?8/IΎΨ hܧ;XQO-1Τ7Q1x6p:xؕHg 6_ wHVrf76JWDA5/: wC Xo_SV!"Eװ[I1a,$&I0M)Lv70ӨU|vYZϤH ܩqf#9pڡEA ɋ=.։+Xqqj:3K;sHX1EGE-M+BzIGjML_! ~Oho'H~ nwȥGs]=IL2{e] ?ɗ̲; Muȇ\D<)r-jG<.y 0Sp'mOjvBu}ۈu CU(G4.{&ԭ˶"]o>n u@Gmvto:S;D$9BCtɣ=[EsT{Sظ˽u@2{W}G=&Di401Nj'e*=HqW"o!D↳jplO.LD=Ps; kJ̣}bq}tw#q~;`UՕ(H*z =-jaI)y {Dlm<:bSsA֣k I t*$h"3kM֘ܽXSFM+a-{?[Vslyñ^ 淐(,[88YGFZaЇУ|F;(Jx(/[)XFǃLq0흴ۘI6^3I;NۭWjƤ&0qXgtZ2 !ZVc-Xй{w9{TYB Yt9bB$d~F X -@Mû܈ZFFԔnG*Aҍf1۔ ѲR!(%ꮦ.C|1cZXDIA.jjO2xH0xfF [W00 B0P$$ !* Ϸ$q+wuR%yuLJ[0Wwlmǫggl掠{[6~#?8_?ugeV":j=/~<EoygZ}Ei7 `=Հ_=_ orϹWn\u>Q?]euJ6$ļ;aNF ݁qq.B)-^afljDj ]v𗮅_aGoKZj,d!ax-*{Єax,tiQZn3ck =GoT~yku-Y.2ZK'4ʗ#y!w龀La1̶]qn1BH̹:W!Mgčx[RL 8WRh7nzti ~ c¼֣dYw098wkOH-: ,mtMx(h+  v2&mek|CfNB i t4I%I.QE+ 8ON' |,prn0}|~1gIjpMPx" "WKK_;/c#sA/Qv Q4X@Hf{7 +(bU4p/ -#^i8vC];ԝ$uF͜`-Nr$pF<(Iſ3w]x{8h-zg“W>X HMfx|$#COV/Æx8E&@9Φe dB;e^qr'ف\%}Ԧ{b~@^v9*9 aʄ\&DSԬl< JBXvЌBu4u!vx_jzB=So|H3o*ItQqE(i01*4 À,Q,BT/K*SvUkij=Ŏ~R|7Ot +7eמ 6Oc7o _Ԧwkj"p5{>!oMُ~ 8| pSd\qȁ<#c߁S{8qg,D*4muDj]Y@(,1,)B@L"(Bax-w]\3YlqK*%O#~pm7?G'>ܻd+|3oΖM>^! OK}es7Q_iu~O7Lg{/O(k\z"e՝e~~p7mf )0d1c}*i2'WB)mf0LE|bC8AoKCSO>Mh.D7 +o`#N^CGN/ ώ!-ZT&֫s?fJyj 8xQwib|] ZQiH\ + D(i Yh_pdoPm#z',}¼BekTy)ZrD^idr8g;.2.CP "u$d v7^e[.74r;ƎЮOzf8T2)0t7F;ę& JIBHGs=Lt$qQLrmVsͽ]Ϝ {Dn/T^coמFD,*=4:>6`J*ܲP PeJ|xT77]@.Қ?\R '!5S*8`Xd#Ag#`d2.bu%}p7צ{=D{-+VQ&w)ў.%Vu/ ϶C]g74r΍u578]/:KrZq^u& pv_~e 9B9-kmuNܬmU@鼃8#cE6uKtgF}4ލw2(ZN N8&|x]RMhw s4 tvfbH74,]x!x/:Lg&PwyvZ"gKaCT+o|Qt.` ZnUQ֣ׅ猙h t4广ḳDqK[[٠`Т7f;IM"NiQzExxy=#ϑ6a;1`KKBN WsF ~F(ƊD%F!E/eQ.~a-|8 ֖J 1i[W(uJޤʔRnM:D'|[ޡS۵TQ-2=woK{.gp&]jlH2LpϡrC]o:l]:4R>TS)tG }`9|q V?`ְs5ɹvͦ:<+ԣN'Nu5JʕJfΐ:\?ݱC!J`R0ݤy}^ت޴,zS=5[b&.rܸfaK ʧZ-fN^Xi(Za]ߐu2g܍6q  !TIhJ|g&6VǪDC|up TIOrs@;z#t4|A*O={?XNDA&A [~'@ZXuGsmPw,\"Kt[h=_e*ч xhdAyLC< zL#jsPVryٝY-k#9L~^r?M8uB纹 H9A+01`Qwl$Yl{|eYMɫ],5[3loY;Av$)xфӦaZ-slkq!U *x/ٌR{p68*w]y珨МRf7!j:u5d`5ֶH"2r3.K"Uv.Elub y}VUa:oRAך$M3AՇe_xALM%l9q_[=k_KipWyC6޾[xбG6 (W3Pc|D^jbVG\Oa_.#9)6 allM R4:%cG{P[!x_$uOMF-ֺZZ+F!V\Xyrr)$4L~@R=Y]I`9tx"8ڃyΈRe _t'5^Lf-^'?11"B ]-6\鲮$Rd @KzƄ87#\G?3so/!҃ݮV-ɍ32`"lr ;W =XPtϲ<-**zvۨ3E9gϼ4)FŎw|5|N$e?sUcl[ Or0 :m%Sv=]JRPhlSKO0EDPID#3NUHO\/2։2A`sZ:U&&!|HjM32PV;C]nt`E>1\*2n2J7=UmL8T]ZF7>X硙,|(w*P fGXF·+<ڏzvtY/3B"DyC@z,ܤK  B y MfB='_} <  WFLJ]§#~ȥ&wY}&4$Okr XΑpu@}䢝 ~w[/?ʪ'KRe<4}Ax=]f0Ƀ6U7[{)BAPx:Ѕi&؁Ľ#eȇy6]C^yjw-8#`L/G HRbG*tc]¿ xZP[E&n4~!+BR5K;_]Nl#~& 4C[:] kxL6>0  ~{¬&_ MfmDGa™8>P삷7F\)RU@Q~+ .̰gkB(dHG^IuLJ@}B딩s~=ǕZ_ G(Wk^65 uBU ̧ =JςKY >mXyOPˉt$83 {#p(v0/a Kyٳ9uF+%4Llڲ8 BlgSB<`I_$0F `, BD1 D!H"_[NuVuuu "VKˬh}.]]GoPh?/דGi `K3ju?f>?[mP>=.-xuul h 35c~|jT»TpėrBWQx5QW%/vi)P:KCpjMOG8H?yu0?9yPv5GHc!8s_wkVr;>swP/ 5*{"a(+؆VIJtm4ѰGR-Epr!5۴Geί;BVX&CER1JA.灾gJoO "h{ji8FA{Xd;%GHT2mA[^|`XvF3fxwߛ,ӱ擭k'a?dO_^ G( al7)A|(w,xl_! E^%\[=^bpqR!{Fx+6&Vx"t)mzǯ+nÔI֎Yj={W0PQj5(f!˶IyQ}TȾmne!!BXu$q5k(!B-UY%{c{6>k v쑐+ "3(MWzzC8ZM!kre'mM֘MoAI&S /ɈaM,r0O~ԋޞ]J}3zFM zwkW]DltJِuo @؋6{&|{itv(`!C+&տ nc@ձ+;օkHTeu9t^XK*Nk#SA4P"~PkÑ^׌ Qυb؎I3ƒZÏ̟}RS(E*E*289sX&%|nv j!PՀ9$hC\->g{.c@W?v}|>64*zi_7yV::#;̝ۆYǖ=ԝ.# E>qP{TWjr%"ULH>`6D4be}Cw ~ 쒋#8@xRj5 "ZΖg8D؆:ծXBe1k+[>0ݢ=3'חޝ|kq_M~oɝ*#W)X.mVSQIr ۪ГHmltz"T2[aEwgԜcFEҡԇH<6j'!-@_ק]ÂV? 37l'p’ vhP_8@:=zSMMw0 l\yV4[no4Mu\]2R|'K ]I@ګtn84w[KͶؕ} Y[ ^ÎV]zU@??<\&J '^[!^X4F؝Rf+˴@Iy;H+@.0 xSZiL{vNiP\/:x]v7:d+Wu#Z$_|og|,ffSCi-ungHhƥ|@C.͉MbRgX` mWG{ 0$a)3u'cqS&[ٶ_q'13n+6ȣ2Luߊ\&ұXnG5,'1*R5;ۨN{=f]-ZΧ3Ɇ0rO> L'j-kZ77m0gw=E2"3]("S:WtB%sR; GaP'MTwvۨ*8>1O-!cSRj noaE@@A(~}ڸa"zj"GuGTyZm sgXN5%ɑt5S'jB:kp3eiF8| $sWw{$EcH RI;+ɇp 4Jr_&?F~l;6|.mlcYl765?um0W*.#j9}xq{Z;1Kr^o1?Ѻv`~!N\rBw 緉Ը؃a{""$F:9&дUkϽ#66*i@T¶X_}lKF]in)qu&rpVpj<S)2&pa/'wH9)EtD˭RjFF<*])-Pj+03 EH# .a PQ> % ѹa)Q -wRDzaHg C6D8-.Eṡbr38DjLfflI!;] OT6 y M-T/_3cE;|CrNy ?KULs:EGL͋@_pzʝP 0Mm{@}ɾ3~9D; [y6̟x[ T!VH41m;ʧSbv[HPN"H,FQF "}Bfe' Wd٫c/+|B%ŏЩ)+]"өLE&,T7U<{ѻi_ H8#Lc v},N[ 7e] |HsgέZrz,'͒/A?>&Dr\9//3 [|S*Z7`Ԋ֪ӭ9i6mU9C˳پi{'b,dݼ/N|~"Prf!m8X7P+B=SH'L8=u0:̶AXjd}Ҧt^H]ȼwUQ239b4,+ _9AK}Hȇ$r 7Dd2Amp _d=O6{,`Hu$Ւ'ƕqC[@E!xՌR Ns@1 c0Iu?e}Di^\Ut,x)&=8X dD N؄$;Vs,i_F|+7bb{4{j5YnWjNDҭQU l`nHG(m~:x`S|EM1&lB-aӘ`! jYSX?w2 *tߋ! S`Vj2ĞFl?qsqT19K)|w1]O%|ձ6؊XQO3Qb,s]#Y.uIRՊoClbu?#T7%JCuz0'nC!{MlfKT9* %-M`$a~J Y89zm{ b_\?H=1WQoIآrdjb:h޹WyHm#%28̴qfuZ.]΄ fxi6vP;|Wuls޽I 2dcVR65C"seJ`2[4QNWsPhW񷮣5R秨2jDN[ 4EPͩ^@Y{5C@A*xEFID]ڻm b!&ƌ RXB9 ҘPu21}@ "w+@HuS<^&]b#m Ӵ()H:* C žG<|-ilcH|!5cFח AI&S0W֓%HWç hZ~=QpQz+l1;9/y -/TO YB7H*;zeKU9oaWǓ܃WE\ݐ5и*}E g--^LY y]AM}}-蚎V<' Cr3%b,^(޳Vu{81|r-Ŝļf`5Llj G f+լbt|f[u.G W V23WKAypl$Droh|'&U!u;5MV}7PWrН[N*K#@⢎&ӻ"qTs':Ƕ}z)_h*:)G0q:OaNt&bc+(8XnpzOO*YQ+?f;&׋يIL򎭳K&N;Z쏛mƶK4׻%qmu4jht*d:Đ̟}yP!:}(Rƙ.:nl$vє.ovo q 99j:[sMqF+/(`}WU 뷁.#3y01+/,CP?E^o{)SQV+VNH9yȈ|N?Ǣ^ځ^|)Yk H 4Fnn ũH<0=F "O9 Fٔ3[/HX@T]x'|rX2v`Q |H 諐v&xXn{d@۟܇ 6%?Ӣ7 h&DPGd򝷮EsXup~ ?Ԑ'į#)|9üm]?&sefcD'T%>S w[ƂU]j<}е3<7JLbzUz!Ⱦȍ|B)9}HtQ{VX>=NzEp2+{)C:BD,Yy4sZ UzFYw[E BA~Z3qG`Xcy+LDCm+[AwN\&gkE&>cA *b@9ٯ?#:LXwH盥VXil+&2 166g$ 6>"m 16{:f=DS/RdB'7A'f(J*_i%]ȝrO+ѫcِJm&>&Bm %)ٴd5yfd$$;/Eǔj `.tx.ckmd =wS Ñ kf)wT 1ulU*c`7\D0h8 Sۻ,Zx20:nw>]Wnpj=3ru9%|

    Kfw;Ff /L{p̑HS I4:1SBUkw+&ozxZ|uGY90 yǁEvj>O-9g6Xl7X[,RaUX6t.l򪕏U`Z0Y0"1L:(.@aoymcXuaLI'ՅhxRUԣ5wJ<_BjNGǏJ =,qxtVltPzQ W\HFiIJPsc6!bR%Gch̭ AM'{TiVe,1{<3Vm2q1!o:XCRI^G^̗0e]`y|bi%-ĂkN!<)]~YHjeD,NQ~af'T"?8D ;xn6vv3 ݱj߹+_oJֳdxP'|:q8zߌP MKeSP qFwb _lfC,Gu +eE/EεA퍗F*M˳2VGʻHfize%VwVL_U̻<7L*Ku=o=pL,rMxY̬Í?vS ްGiu-@Juh>1&n̥iP`ȴ]c52W\ǭM>6CkIq`OG i}{/ؾߠUwsk"0NXk9|$Ta (&$H"35V٤9J|Y]ڳ|4+8zD6r4}sBJ@] ̷^IBgDoGY{7\~V_C9+_WnKem>V.kg 6)됲|^=k@j_j ֻMCMU+~g}(SCo%" rPqx p<l?JVf+!)U.{wW4EIh ;XMq;0p?&y 5"Y=m@JC!:0c˪YFNGPǤaY B *!)HI|`mPKqt?ʐ:/bsUI?#.ǍK`f֡ bTNWP6*nؼ'aZlݵcXBʌay.N9|d >3bvs*nJP]Tחw~#&S2URNr` C/]}x~b<< WmZ@SLBO|Y_}F"A99dFX@ftʆ{ r!g1Rc'y2l6Kʠ KM{2MF`Gq@,Z-D|Y~:S*Lwߦ[h:ƀT3ſ֝7-Uɜب16fLO.iezǑ4(7z?,tKpKIi=(l €,d C@$E I5R^Y! ^U9:ucߙ3w ءmT;B-BsA?ۅ9=0.{T90ھ|rrhާx;/1hUGK*}?ho8u;0;MHO`i(p*5}/ /k4|x3rAI&S<,dOj2tEh݅EA~c8fw8WEa=~"h._4U1 *'~@S{!8u #7vFXM'1pFacw1?6C L^XW:A[ f'jKߜ4N?CV(kheu$+'dːu,HJ@L{GB*^]|lӴ4hÔNFJ:}5aƵ8ѓKf#?"s4qS3?թk9uXGBM{ҤG RlIw5 Iڳ0u0؉}v ؙR' ?} Pw6Ŧ->0]z@7 k4kŵ1 Cymooc,^YX`AR-D(p1. =re]TP(U{y5F!V62Wu2,q7Օ, WS>,{qG$ƄnTk&옜, 2qr;'уӕi$b*Idd& gҹr"V3d)lE&?BUN-:3nKSH즊A~@ՓZ.2VM=aU}!_`[(uJb n _%2O/p(ڌt ܎2JfH7m6]JEWlf7$;#Ge!!taS3{&yeU/ΰiYVœLݲ k?L,BP(ʬf ]GgU >r*kbePfҳ5ƭ|dwBs<לw urzjTXdjB(PM= d \qB@}iEl,BODܩ! Os¶mTxD j/I*m ‘-cdBCMkC{ahRFfT3g8_t9V ]4:E0OSdV1!HJRZn4 +s"YBfiRGD}Gj3B$(Xn5UW&l]+2%/G}A L4 QcF}PPP7sotB5x4֝i*9߻~"Vxop-DR*ϡ^G_Z[F"qMЙdxZ.aLve%sz1|dUPE +ԝܠ>tMg1A,bGnR uɍ:=+IpT<Cw`qzh3X|Kg_LC؀@ ө=ocK/ݶrY]$fGk>~MB2z}9 5vyNP үU%hA:&E9. vcukGjx̴[fFW?iAo^<tY=7uJД{7ifSWA/-!^v~19IA$`wcI(3u+E啾_ _#f;".+,Q`M{ȥ=:;q( MqGc%qsB RhPmr ޡb#Jpmӊ+ߚiXM c݆ٵvc I&_3ְŝg)TW/ջ"tCۏs*/{df$ι*綛`mSD­6@HSq p4P}N]e@XԀɇ [t)2N3.#zBZU6I(:]18t:+ajؗԱnE~4_ٳ%+7nTt1#&'}] n,d`qcG Ao :C)?XQ2#Y aɨCEBn $,+h4o-}%~f(dɩ*~;NBxjwT/,K*Ip߃-OC8p5BV'Ⱥp La)A䈨>ʹV䴏#\f+=Kj: K^ه֦6՘ǂ2[å^Q{yFOJ=ruoT9q|2<{ bcd ߛ*% zsݚf _Q Sbgvqh]:'B(|!Or ӄIAMP0 F2MHx^e'@ mb8!(yLF98Q)N B2Uo'6 9ЂHABG(P&h ²4Pe(ȵYz"?Sf)%g_k؊k 挊Ǎi3&!.2:%kᕜ9e"O9u5CL~kuE9#:(ܳ-Y6$]JY񙘏Bi IsYe.luJ{Jj'9 Eo27ogpodpik=WӚ¨gEX[ò`:NN)1YX+uR:MA)H95H1yEw+)MTQV9sڰ"T `* B! h az&JRME%%^_SGQV| }/{;9O_0~=m_/\k'JtQEOO]W 4%B?ŝZ_8!g?>W۞g*!B۝P){iqgЦk0p'j/*7E*Hˎt,'(0Fb XJAAb a H&5Z]8J$dɻ>yZk\:^Tפ~O9}y9]GW)w4_A"ͪW!׮YdXHoKzBh5d_$ҷ @;}ZA_f)$-a"ќ,H%ybRg5/Ey{qh%j_e$GY ,{lkfJV)G^Gbķy :5Ԇse! & =t<S5k)b4\ b_DHo斝M*9hqo Vdiҍ.OӇdi7 .mh;iqWH'njIK1wKF#ګt_3p'7D5;P ^dCԃx mc0FyJ|0*R(YY"ğCFyD,xM ɂXX@.gS2Ɣy$"$R,+y\BɤmQw@[Hnq ֩Mc> mݯ g&`Mٲ҅.ɩbW󎭕?۵D 3 {6#߽f^lZ?16_ |H;^υ8W6[iVA.=^&wfm{+EdVODj_,t)lvKAEظ|ee,Q9Wp"f9I - A_|lLʚ0T ӱS 9tdvǪjxx/9 Ły, _K]{>Q@kH^6 Il`-C؎P8U#1sͭuku$Z9Šo&LFs5  VWYfc痏fN 1-2-,$ipnl- wTXVuě=$tB`, GL* uiu*UkwTU]R[3=}u[FCً1i&ZGM<_~3$]ֺLC<}N6GFSѫ'YꂵBe +oF2Wt{57A8! S JiUQ~V B|?zcgHjkԒ 2`wRw9TPO]p'fE̱_Ay߁_[M IQt3$-J-C_=n-1*H _mE,enzq"~>iM!=drh H|D?rc,kE8汙E[ˤFne#28[Ǜc3y*pRRv=| >&}n_i/PS`j h6G:[YFyɗsK'yZ L6/f`3gouLWDF|60D(;-O;d9.' l [[{mB.oN=FO&tYSsc%Q} X`UGgdeD* dm{㡥.NU!#nLiQa_یD2+#!g#y6T G0fXWq=8bi"Ϯ%UqeYhɂm.U[$E *Q6:p Wd󣷺0̢Ч&cWbZSW:{7@ho Kz!ɣx,ӓe4^Xj6P,XhQb /52B~y-#.mz,, 5%hEߺ=Fqtq&^5ԁ&㡂'ޡSY(#_c6hwV{DVBw]&'BrΦS@]v ҨBYEOyWhHPG>a"Sg[yQt7Dy[3YrχoKd^Id%~׭U^a0Ah2{~B˟P.fa&$\gk!.uԉ6##qMU)qi֢%y'3a^x 84jeQ篮 i%9 oc"f%pHL)5mfARg%˰@9&4vm)袬w$3"O D5x K*$g{,7`-GMSk< 2#>50Ew!81wbFګ>;q^v6Bar7B-؉]ԨhChF6 zDBB]@} d5iCK^l얣s̗(}E qPx7G("֧Ǡ-svL>uDc{!} 1shpܼTFKyx:$$xM'aa`ٌ2N1$"?)uo侎a1X/Aq;d@jaN"̡JdQy 0 ]dJG bᨀj+`bɅܰ0Csb"\1Ԭ+jdY 7z|SΆL\~Cg1UG*S^뛰g,9;TJ) F0ї*l0{-A4}(VpdB+GeAX0$WVyq+$E~A)5r=Z`|p98Ȕ A'Q'+޿h8d*v>CI20r1R)@#‡xǧ*"NvW|6v℡p*^mb(ʬ[a;íN [}d* Y6T;j2+k!\TqpA\ ٞ7YY r-vוEc#錪`ex_N Y.KVtW9YR@oWvݾq0m"+^Hvó|@U*$ZD=F[څ] *u0XeTB=ڭ7ilܶ[/7hIlN'2+f:A jq?>&zԾ: Ն79/(goߏ`З>6}y]柚?H.ajWߏ!Aj;L)X"m=u6^jy\0G.-1"{Ս4Z!32^)0~EQ}caTAv~)n9P'ZN^.m|Q]U(j6}d'>eTo/R&p[kre1!dgKDqpV:P c,܉F$`y3C)Kss\W@:wV]i<#PČ-ň}CJsڍ)gǯ،R8 dN)w N}vX)sȍspG =,2W"™ zAl8iϪ-䤑jl$2ꎥV>#K/Wu.g5=A:. k}.Ko|WL )5qm>~Q50\(׷ݾͲ͟ 8e/ dX'@P&siF#Y B2d3;&0 b@R  HRz{z*\G(U]>_~ޝ|r{|GT#BLg,~KOϿ_{v@k}2%5DK[<Tkp9ow? .L>6tNWۑ8/{~#~P?KVqaZ"AKCrA`"0L<|z㍙]-Ͱ>"əOFxn$"ZaE<ìi4Ӡ>]5sU_ 8nBw1/: Jؚ|vUYsil=:_M0zcaxŬ!72 J;.kU1wTEg= |I'ysC'y6a{ cPVj׼i=:&nGAzߩtz(mkptv.؈>d&[s * o.GU,:m Ɇ(smy-ʉVm (Q-at"xӆ:W8-nz' {bis)`f*u?k%cESj2qM^ċő  LcR>+ tmlhk,6+l 0fx}54R,Cws"5*%4J`8P6pTXdYg4QIGh~bljIsU_~d~a#P4zۋN͵{Ih߁FsJƸN/> KS҉R t)Y}/8UXV]kA"^ji# m d9ǏhEHv3+8ĕJS4O={&r 7ꂨuBO4{𒨬=ovz2J0 Rn#f+c+yеu&0 R*]L-V.AYs"`ȼ簦DR7/DL FϵRnvzj;ȏU1*Է=*;/-yb8V:CʘmrzҸ08/lJa>3[2BN|t,J[~2Nu +9mx"C"rثD[KiL$,hkDo=ط2S ݥL.X.p].vU3r'(sR\`>5mՑ331ʪ,r9J?DT\ȹt-D0ꐿ`rm(=:I>f^mL\Bj :LI ]mPה0=M3aS5ǘv 4ψ2/CU6> t&w.hUI8^TY=.Zr?ɹ l}=mqpXrӶVW"żo3!Ŭ28eHdݷŚ/%\nY~Cjb?8?О6N ۸]y+)({'p@\tTUׂd3p6 78;/](ɔoVnM$pkjXQ\?谐T:Mu7cR#>awkq11H-B?4%~A;/m@Eo0-O~yT$ld Q;NҸ6MϞ0Anjrrbi. XO JChJ w@5'olEh'kv<\u41xcT? &RFA ~XL9Y9+{rLs{b[G$VԥL}`m& E sMvWu,,w 58gl?rZ #^-B%q %1(; BTτqR*ZT"뽍~6"p8ؾSq53f*J{;|3/9C7]1UA>Cf); UMjxޜA),븹o>?pBqeM6TXXLD3>pv Ix$F B̽ɨiwwx`SJ]!7bPߚYaAw,=9.B@sOa9KOۂc>kA{N A7]#1h7v=}zZ{*2XjE܂:#ah|8UwY`C.S!'՟b]Ht0OFS|HCp O`_ģNپ4aq(NІc8a'>2+W&l|}wHjjajES[]V r>Gb! 8Ra8Ĕx06\OڃD6*+:@sdÞ|]r P=t<߶+F(t\d;qZڗW@bp߅/z;~\'|yJO6} w .ԉe>Jng;%UXF ĝJ|aݠT^ԗ<sdBB eK/Q&ZXn@V6:PKJXRzlMELq;QgsS!UC6zf} B-Xd0:߃H5*1W]UgnT;Ipі%xh31Z6f *; uQ9[t]_/!a rjw cpܢ`k0kRŲ6%QJ]E:c^O|:WG>ݖax v];A" lF< ,Vjb |dłx& f?''nV ༰,3M" ϯN ljxG R íυ7[z[(K M"3ߨu\gRJy҃Mt,F2[*%svɛ{5f;6|ϧh}G!ƒ@I$2QwR'UhMfX#!F@~hn/+zK/غۡS:D8ԥM1=RCu:TOM mˬ&!Mr b9=,cnCZbdʲ:o]5PxC./ oz#/h  8HL'85z!*u׫_hr:7-?͓nWhLE?! 4BV*R 2Wh;bYFX;wzށyQ%`@߭(EO}X16ei[ZZ׬XbAms">@hۆ{p1vu:Y7E}f l3fz*l:77zs-dyJ{ nެk)8$0: AX(2" B!#^S]]HoFo ?4rӢ=+=8xt L3˺DZNccjy9nWM sV=i+e+T!fE buϔiU4urBZ{׈J\ /H6y=)X'7%bp78mV oS/L UۑsԳqL ۨ{Eh i!楘tGrg j7wco?t5 vFs>Wj.!?hj^^wF& I7͆<}//S'ٵ\Qj P?k0+'͝){C6==`fi_e;H8>4:r,W~;g5f=í쟹Ű(uY ̺d{*am Pn<[N]qP|6'HKii4H[&ɤsLhȇL_eIpĪr[)߸ӁQwΡ@c,COUͽ@xf)D]p 0%\]8EJ ?Z0QdPA|@奡,Wsъ({ J>M|DTڢ,xgm5M g*f=Զ芀[u;֜>M 92#͐ӻxէ;iDy\۔.2#2 + QKv3 !BF:!N h"OnF J-9ff^z܀'!(3ʏ#$:J?BA{54Gzћ)\ZnSaYcR'rڝv"ɭ|i "XxGW%U?jTGN P'k.MVg L؋gٮkpG;bEHAZPT 0k H_.$}om<_9e$T~Z]&4PU9ՠO9]ُIAW9H{e6 Y4Y11WA@(j.(nzHU*ڤ;&>w$Лֿ;`#tqE=h,X!"P9y8P^kq/g["@KMUUg0Һ0>W7 Oܙuyco N6[+{> Hu|&߮ߊgY [ރ?Mϟ/ͤyY[QW0Y'BgDJ3%Hcg \: /K9hW]& R%Vޗ08n`"ɲh^94 x/g)NuGs!D5;j{.2w}-k f73;ӊ_CZ W)QiQ+́#@_d%'x6mRɍVA Gn`zhY7LyZKʾͥݩ#f\2m^IA$@P?+HkF?/1/B cu3L6_߇/^VKNTou,&]Ln+iݯy!߂.: KyAó3g6E  _PSxA^PO ۪)Xɓi// FWHcr5'?qp=pg| 2ȹ?G.;wj:p'B^@oؽ(. }P*_J^7Yz(/T2ӧ_/2PD$*} =p "ͮG?ּC-U4w;xi棊vIF%$:3ܖPD~"U0ZJRmW^x1V<lF"~)#$1dKOMUe.qtF#*whZQhŴ$ir H3ꏗљNbS,c*7{EgȪ >d = :亢<GW@T iϲA#8 s:ae6dC(Pi&VhAK(hK&o5eb6˭PS@8m!"J߂iR>_+g叁LK6 |*~9胰{֩IzV~DvRAu8|75I0E([2W+-:wr&]}! ٧8$Q|tvVB.jm{ +E-TFu?~,QmWjdX*mV.iZg R1xx??E\F^*yo"u,AeY+ oMxx{`7d5B${/K[hEM1G?,m GhX9s'8/A}lh 9<B%a+@gWoL ]|YBbk95LuTG1bs ЂtM}YR0vf''X}O#䨧eD"w*(Y޸^V^@|z4PCй?Pb^#@ѫ;!{/ h3YDhV ` P& 6[+>B6KŎj=wյ0`N ct%.d啽kn0F/S~C%4凇S8.%juy5yGNIEFMRic~35N{RxV<-3.ޢYjLAF2N >Ltٷ7Bx7-gEvl%0y 3yux1{!h;z˫w`ƒŽiߣ;Yr!X]և`lIJГ;97UP=Uie-:^ܝ8:xͼҕ=u urD.r6׍Y4 x J17Mr$q%\E[4{gSA.sj;ets=˰_i jl*Fj! =:<]it|e2WP:\[*y“uS嬬 iR^R:юXl(cWkf!wk}I1l)[(6E{DD$LM@ >s`[z0i F:b*̄ʏwPHVrR鰈*Wkћa2HY:BJiP׳ڍoOk go|ϰcfVdrj kHd'?'x] 'Ӗ/^ͩ㫜RDsfIX߷sZjE+R3=]+eGY`ܛy #)N(=Ubτ#茀T;<دTwF̽PK$d4*e\_):[!]O%8,+}mGw^jYML-‡<*;.ꕎK§S6L4_j"pt%%d)2b:Dװ!$gy-@/CF߬np~N3{;a hiވ堀e{x;3GW$Ԉc_O'$1xH$ 0X"c/E'.!ե-l|l-RETF(2,ΰ‡d;.Ry^K5AH0 K&@$ck%誼7)7)E-]4Z\B59Eolv1gbu%˜~Y}k^~PJ<4T[j`B P!!n"KIZ_SQ:7bkfARM>1 U3A\:\fuL]@dmݙF YNtk툄6m)H FY^$fJ,b\Wqmlg0% ZöJE"@D ڇpQoBjr7Qiǡwuj ю.eFW:̘A5@9&roHNVK p$2)CTD4 Ba/s{Vrkz˥YbJŸryy o|xK_oό_ [=ͬte]v?R9KvT:b8xc =,*f\%scԟK7)z)8*__ym6K^N0Sݺ&0F,b(" !@$$ r뚺]]\WJ*n$_#v}^_?VMq.܏b٣t>h|:V_`4G\wQ[@q ?ӥѓt}`m *4w}bի/3rg:~%lyM6?>J+y#gp;ԝr߫?GG3=aZn! Jkg@ A]I&S_-']"x1-睍VKU7O*,>Q2U>ϐB rY;U IMF pڠ|qZ޻29 ;{@I ddRv uOɛي}`ɛ^_ xfm$+J xe-&J B/N[rK3R‘;! Oġ@7rJK kr=贞`pwzpYNTG< dxoU|sZ)-,kV=49c ta]G$MfgKw h+lR f6]t P!6(~#%$6yC<=vuP4:ɽxhWCc,!HF*T&#O鍐6A+,y< ISuūEn``U8z JQEeCō5= Bd4Le'Mϱ@*y8AUM;%`[qV:$l4M} _hJGTp Duf n1n< AxTzy\іr@AlB ˨rM8C7 {i! f @Kq;ن ȭqhrj܂8@ )C1K . r*0uuf9+zkd!r'KY[:%2p}qo9nS#p+xs0ZmY-_GJ|{y.K ̥,t17Ŗ'T߃\ qȶi7ckSp^Аw50+ n tq UU.r'AjRhd߱$jzbrBu'I&׈eHOY?k&AB6`~Ldw%({#1e4V[a e*TU金17x@x^")C9Sz{4*1:rxDgs~*nG {V$Iu23.!2u3ccdO#撫U ڶg?;CЇsDEpPzvVHރ6xF)23ouS]՟̧|jbI[FPJ)N>,X):zx?8.▤H ԭ{۪w\Z; R20[p -ds LCY.M" 6u+j66eV@eJ*@d${xMjW9B$eڹi%=Be# R+6YBś›Z0JKPv}HF|S_Fi]%z=dY{.yY*p~bibU 2R4.gr̗Lzu˦K |z-kҠO7+8awj߽K{ nsp|DAy1ލ/IseU\1^f&C  YTJ]DS+Tp%sPQsYkGH5SRn#,R 8(~TNi2=, vɛ.+(sL>BuYdŌ-5!ⅮefdȨO %4"EM?OHbĔW\@$ia+;jb'U\)X,F9F3·0GcN@Q%ehnC"3 s43|H4_4,&.Ӆ1U!\E]qreՃ`qf/u!>ɴmP+,@ j{i/*6nᒄKA"]캻72ф7T1pZ)Cӵc=kesGv\0in'"3ru|'J>{30f*† }:l(,O`؊Cyԛ4὿WGht7 :lFMqϪlO 9bAR)xcgCP=H9>à %SUz>HS_ZB2}V7.υzj.C8`e,sm%iNIB|c~G {` =Ejrs C.ZS^Hkxjba)`˕3XHEaS.Z[b4l!r%t|"z~bZbg(cdh$$'3ɀH!x٦$`v"B 'Yn\T_52zZ̈́ӧP|jKۄ':i,mZua漢c|K 2R)"u2q;%5/)i"hB=k1+ÔQ8>ptm!qA맕yZ濌oa|'`O9]!#C~$Fi7_#\v=k?H$e3pcto4~JJf 9cS"w;ᜰ9#+:1_sRutn:Pbt>Ue .HTR[0 9z'Pt!0Gkrԧtun,KW6&j<3Tc\]80Vjk c8zsÚrvLASdT?SGgA l+I&$Av*K!: |\wz&x"4R;獝#qnÊN}\}<ѠF$ESY: x-lh\e>ߟ9d6rRPAOFM0 )-qHYMv0R#)qܩ$W+% wXoUC0rr7&pZ7(8}sD{p cHzgG+ OZɳ,.BԤr>2`-)k4R0SUHrku)>4V6w1;#In9&lC2Bv·kB͡*.!:y= LRUvTZ_nB YF9T#P MTO|iHZ˂R\aŐ|B&LgTFhzkmBaxr='sonCmfrV>Xp&PwYZrk@a 0* @`LT B H2Y'\%#Te䄥"v:-oqKzҞwIf:ꞟcJ+q [ _<}zcΏПF?˻['N?WKt6aIۮ48˳ O7z9KƨFNwSs5?V*"3|jBQ?XṆEsyўJ"PK#oobsBBk{CB0Ldp)"hn=O>pHAߊRѤi?As a﫨\ %- / u<;Ma ׮8h-4|fQt*iNewM!%}# 2[pVHcEz{ G#xs?,NQYD=R ~ViHUب%@H49\a }VJ\?PHt{ fKyF0?\qcHmD Jm8 ,@z`v| 12בaJ6ͻP%ZEՕktbDG5AYiRDcے%O)ruMQ^4隨it1]$J#clTCj8&axS ՁrL?Ro.z^q>-;م wN}},O_@%ڏ9:1(w--#GpĔH b[Pq^Ōϥ;T _ʎ ^ \ {> t ¨k9V-`=k;> -~i{E+7GSÿ/K;ֆ1~M XiG )IPe{I"06 a@j$!P$ rS3IR.8k~oD1-~d:XstP5}~o~W/=,]4αhPwR+=(?h1*|wwztfZ=83 -ܥو#w)8kWz{`o #shՉRҵ-}K>,v&FtGQUкCb@]8E亿0tyℨ=qfoE^H?õɚ,-A Y'sc]*6Xe#[ĉFFXӥ_j~i) ;E_#TH e&>;An?t _-k6m†f) d,}q=AV?dc>tR^Ru[Y\OyHE4rajVT)y@|t&)lzQi@%+WH} V q>^<{Yu "]Ir_ܖ'.YY3S%#|MQؾɨ -7Up=\o9k#0K*(Z%ð%D~eHTmVS=89~C/#(S֬aAǀM`eHjp`A5KQ;Wr 2|,HREwErG`W: 1 ևѪ&Dd2j@:AuHU|gȫَ Su؎v P}*b$/槦(E/WHpf H(0??-U (iڅ;5QeMmUi%MrT,F[2|dӕGpkzSG:1o<1J_84 3Nwe^Ifvʤn,v@EP$8 9wBiM}dlkUV!K[,X1Wl.|ݗNЇnEM"j;e=RzoJOfHl$Q&v0,a'E)V_*OMD.jEx<^ 0>  -Ԧd|RU% M{'ISθ@l~SM @ Ph`$G__dK]BOY!DyQ$'Մ(1^V2#:_l3Z99jgKfA\[ -n 6&C' zG#I .IqhaQr*xLjSa|n|-Ę(Gώ S1$37P# P^s6~v<#J܂;U5omD'А_ő8hTѨe<Y+rPSz $7f2{񀰓R%ĹvR"{5%Mvap{KE- k=•($[L7WVxP-UBb 4^; V\zћEygY/v(7|x}s X\/V"H&ӫy,d0j|QUt<3@ &b-C3>ߝ^tlӥJxYiOi YJ6R22rJw 䑊$*sOVưcr&<l=8V?38lI{D4FCL Mb {mii钧ku1nYv?$f4kmH dڷ$ t6emw!)qFdžs.]ma4H-^璔`|FY Yz5{#gw**~ZRcUOFg<2HqzzG )8}OvXu9Jռ 3 Tx%u4Pe;a$/^TB0]Bc! HBC:^LBw h(EI&_D-"PU3r^ڂ;qBWAVnM b/Y!2$)Ś׹s7g 2^:K~YqUhC&cbE AAxPG `h  H(<-nKeeI*MMhj?g̝S9y/ڪwsCrwʿ~^0E#B̋td:cd<2j!Cfyg7 ~gJ\l1چqyV۞õZ$_60%^n|nm#&g6/ց?k\9HVjB@T d/ưIb >/8P-aJ&~ #VـdAD7_޴۝k-~bktzeJ7kՌۆV|U; P |))/Doo|Q$T0r,c=foA`H9CpN=uM/A.L1Aaz"iWK!=W{L)B2n=)V؅ c b^ B0SH_SθY;vq9fCyxO28_i?^b-ñзU/]D< ep0uă>*99FȆ h,q'-o"B_O˵Y)%F#tGy?iNouݕY}_-8x|6[2p__S{˸Dn,gm.$7igmV(%le9 Rroܼ )sf]?:؟MWJ}E8y|\pˈ%= K(,*,]W#VRi (lhKUث9iWnuN[01݅ȁ}z\zZc`o`)`R .XR.cvԄ3tn)*gG VaS(T~qa4dF>|։\ eMnUDȢttQ@c]QfW5^F=O'33ip CijZ5tbP2>TNK}Ќ% \ͭpKq4cr|ooؽ'6ucdH.rgs>?\[FlCdp9 Л@|21hV"6/ )o2y*.}1%xbPxB$ڻ{.}8K>G#L!ͅod 5'YTuaT),%~d같C3g ,ŋH3'a*LIzuhipw7"0 `X(  H@a{2Ю*U&%˨ܩ?vݣ]qrzOv_-r].=~aŸSJjo3-|?RKasYO_7K1眲w'!Dq ֓_ס?4OЈ };E٧ nP8 `AI&S8VCRX?/yPQ<; !Ћ|4>K7@c;,9ꩪ Ü_q MeL1HlL,IQ 'VTx|/4hLOxOx/[.-)ٞg``*8 )`gB_îFdjֻ8FeǶFXP] i*w/x#BŁ"8eԉDx["jvlZWI_Ӯ$q Jt,E,s +9y.zK\; 2t &AB}&=ό2L1_\ dAog]dMf_(dɂA vEyK\0DgS{:wb1 ՎzHI"|?)p$yqR8L7p. gBOR!PAczA8 _ )Ό(}k~y;ޭ CuhNlɯH4fMj5m#{q@f*1xԾKcv݁pƙƍ1WW!V)O5ԨZ_ D'`:TKvޝT^D]$ն{$.<5m aJ8!Ȏ{ԖJEfӹtԀ.r<&nnI>w1f رP(,t1i׿$ ¾0e$CÄrM!XIߧ(26"$V}Or0HVҜg]} ,%L9FF4e_[6PhUu[AG42"WP VH0k&X AtrP̙Bb[dey@H62|,k 1#iM&)v=$0q!\ $~3@DRęOOclIw@]dDbTlۻO?H/Z|UES)õaxU6]>$\:tҋe{kJ L!GzީOhCWե7ax>Xv?Z1sNI۪VC=Isfq!tloyvϋ34lm;:<+y7(AQB-%Svq ;aj=h?s* cV~Ǥv kw:83S&$WD뵈 p;[MSQauQK7-ŗeњ$/sډS90ˎS*N ȂUkOڧiΦR|$s^HڙX4>I5!>!cS:JV؝lHz!Zʒˮ}̾be(G9W2|~6~@1\e~ݶM%fg7#KBv ;|Vf[Oy Kb;dZC@47ұ>&x(tNonϮ$PXr?L]E-QJ KKVj8h2ηiRm󒓎CmJڗ˜X_8\Y:Oi%[H:T8wѼ~r:_BkѾX(WGiʴx ?刚d:&&.`SEpK*Rͮ'OV}S4arvN5Ja4:a̞k9AyK"տFfuOpX\l z+q jf.JWAZ o.U0* b@X(*ALB qYhI-ZĔKC>?od~umKRJ[B]TDw~ˢ؈>y[؏I5Iw5tR{kUŶm1Gu/1",Bz2n}f!N8#y=jI8jU['N~ cU2\p"hԢ^"U'5Q6FBd㪙cs0i,JKnJ-:V W՚ ү/{S"6<ʹ:υOlf&3ڵ'4LSďVOU;FwCQ 0MN]?|Խ%bFJ(v\unvqjMXDC盶C)M&$-7m,}(׿ck0,%qa eAI&S{Ђ΁|]hxyÆibtDtZWjxQn)V !%y;bT,[4 )~jƯO3Zt\Fmdgqi%^2JQg.P1 v̷%Q:7ј+o;P0mQy <愸9CvpnmWo^>c?J$qKhTɴ|lwU@\ }{ FQnEr*Sw $Ehn;DBhNڮA,>cA޾jW4O6uѢ:kt& Yf &%\ځ.?4քi$D/|cuYZF0Qu]W l_;+=voHY,p~7h}~^>v]O:>=+s ' wV#ķ|N5/02l!&dX4i4ž9pIB!yrBY$Ush"o˸,[WxAPkc抶 gAÚ:n_u'L?4rd2CLs ?ՇاOyYW`Z8}]L嚢]Os]ggqulRgfEsFtFZOˡtΤZ鮕&,k"BIz\mb(hkز1Z+2Ds蓴ź-',{m_}SkRmP8Q$eµ6(gc~,ɌdvjCU+4ӝ¼Y[jghS*q/sE?q ZFOk`Zq QWP\( CᔗWtr” "f'\BD܆ y,;#g;PS'y7*39-bg&/9"{m+޽t^p$}O#ؔ1Jl מE@'; =2yv1m$ ڿk[k.Ě%[֞:?LiQQ(Dh[r6" `Vb"`YLgMtv4xR=| +f g@pQ]ⲜeTRY5d&\}K 0>T`I  IL$rK܂q &pL;ɨ[Mh]:+YЀ)Sd念܅0: cpꁟwvݬeU9BǕnT%(B}{_lqFXo۵G6u+۫ӻ}ֹSɇE>yf#u[V:(X-w2*N=Ʌ褤`#l`r?Qdz!׼ |̈́~1;G߆2!ZLM,]`}_F)Ԯĸ7è:K_|r_CCG3L5 ]Tv@`[K"S @֮5) dysh*I[%QT 8g|_+ w|v+u=}%s&U6byU]#ُٶC}3]-@2v{oz 0$`.t\̈́l㝂5FWp lw7%DJ*8N鴌?Y{di\JJk ZTz|3R˧~ER8C*KXRgjrs|&h Y99參h[=#x_yD%\m͗-\x d}ݲ}FpabP ݛ)̝8Hɚ%ٟɧwG7qyniodo=re4KSAzRW$5"ƚsq!Z#7 >& ċ8OMkȏ pDx[ ?R–:nF{ն6==|h^eWhXf%[ nN%1)EBw_g6Oyv:xqER[O|6uA':4%fW(p% ?jQ캮P1jqZ>24+o^wx0f8p AI&S+49jC$zWxRZ!(bFSCI G"r9" $  ]7:/d`?6ڵ:Io.(thw}}5,(c[̓Ps 7A'cUqޚb'PO[>WL@_臡SsnܙxS&#AX"}n?_y=ŎBF-Mo>2=r䏈m&g ?X ( frV"Gٴ6;"fՊNNeE\L,$|Kn|\[4tEzgJW]mq31` $ҽ}غ/|B  a{"@ J$^=VM^4{Pj4NxH n-!1`2w6G稽*(I/MV*E[Id/%h3*ZFk2Ȇ6HgYr% eswq #/* Z`'\ZYwP+ –w,ދ*G9:wYbxjbjtOI;sԮ@Ǭa!4ɉEa ^M~%Oi 7b1VWm+;9[X+>DpǶ_n^Ў#wYވT"A %Չ4$g7{hdžݚ`B4'1C8( m&DRv\h[@ǷR!ODC O9-#xSyY}0Y'G3^*)YwmNE9 Ğ$`6OC\Jsxqg2uS~4MYWoLb^hH%nj'">쑓ank̓o`٧kP)$ʴu.{QkS`k"Zz~P9`:Z u)*]ljfZTB=0JLJ-g_Erq! `Vk`7w&L `M\qNPЋ JNJY~ p c.oʜKk.Y@SZ{mhfɡR97N."`c?hGZ D [ԚmIìʀf6`ލúSbSުeW1^,åV(9XS ;5}#XTUfk} ׅur_=2 Ѣc)oyīJzTܡJV9*w;6wlTG='yg´_þ|2@dIPXƸҲg8A jGNij {/[gTߍr5PF's(NADŽ78hUB=V8GnnK/E i+,҉*_{uG#iro `]^!EoM/ |Kn]OԝNϝܵo,.BQ%XfgsM%bc&C7o]$ ɝߔShy[\ʕpۮu8"YpF>Xc87ޚ^\a׻~3`R#t јuwқ2\1w}w @;KtΎkX=`,3u&=B Yr*f^![ UgWֽߐpڄdv"_(B{@Lv~򏥿6u\)g냱<#^&n%KCC >eSo{#J6dz2z"0F$Pd BFP>yjKU*y&N?ɟ˗~ }v5?ӝ ^dŸNl* +3hמvx-ʿ p=ZxvQÅeܝOœ3xQ7(W;Gp AI&S;ݸ-2VUrԽ TK``+iؙ0LsW)ƩGtL"I $daz@ Ny1R}6^LS>"rҥ6SϕcX怲/V夊puLa=Z\u{KWҤq%gDI۝PW^ˊ ^hGwoPJcP[h"Sxfz0|GD5J@{4䔱A7 'Ws];Met럁8űaeKZpDʜ2aNtR(jȀ6IU05eݷ2 +k*o$  Ȟa'r˶Bӿs pJ'Y͙:: B>8`|ƿ11C`? a0U$S=&O \goDvEFޭLOX>}dFPYeĮ<1k Tk1ŽN |7/Вz:fBsE!nB㔯Vm0d¢PN?5)=R@8^O|_oNoߣ\Rj0>Mdh_׍&a=q#Kmԙe(iՅX窔mqI ŇT91 eo4^n,6k M运nDlX:Rh~3%)Om\ZdF37#:Ǥ[)̼lLӰP 1" +J")g8#CD欪W9&J9ߨ>kcVb^_ϸg%XNUcVz{M\[4ܿ'Vz19B5#1v(4%VZ*zqzc2FpKgpPU%Ś&Ǯ ]2$^Xp V2%|s{WR{n`CZ ҁ%#oڛF.ʠɣcc` 140P$lȈgSѺBk[4$-nV!>֒86QT_8H9 FMɜ)7:n;@Z FY{uߵ 8dEJr BBlN릆i^'htпlZ6?*xv8 "⟱ih[|SiImΡ91(:LvG֮)kPM&m'/&`:!k\]@T(O{$Ni HR؟${H3NS!C"Xv6WH˥m[O( Y~:$HZׇl,9)Ejv}kZqfþzI$; f$‰DUڅzyuF#a3@;ͅ,wG٠t ^eBj;VQ i K 9 DW&/l.6q̭)F ȃ;ǣJx 菠lMv'p <@9,/aL4DjRS}ZS>]<@/Wĭt򓥕C1) ^r:cJvSJյO nJ3/0X 8E`.`?.CavBVV=%JL5&aH DCS(R7fx 0w9>G7C 30 ÃW[:maeTQ3L{oYih5㩣PQ򟰔qM Ùf4kFD^wy↾K.2呃!ȒdܚC-@Bhf>VюG+Vmds>MS3vs= CmP\:+Gh.ZvMFHc=N{N߿z50cYv tTB؛5q'hwڇ0eo<#{m͜,d ^1Y7AA]"~diF"KhϐGé̹HuCR4Ɩ1z%?t k*)nK ?OeDD$1YdcY`fMr581NJ^;ɢg_;ڮS2W UPfߨHI_CghΪ&J1I'Y AI&SAzBnMS^d-E&x!#E= `שf0BanqP[GJl0>K7/Wx)kp<&ޜ''XF-Wܫ#X:wOMVEqi.ZjhE 3 7 }(l?*Z 't_`- lXyq(DZ{6@ja iJ5'-ԬoI&sTm6n# fZB >07 dOP6g.n\5كr#'`qq`~^8A>_A]x,ĩz_hKk`H:)ȕƚa,'h^<)p!ebTyz|?'}3$ v8iB@`Cٴ?yLo-퐐%l66Ԃg!% Ui%+ŕEu%<]"q+MB0W[f -rkXDwOEZd2V~]s[%/a2U6+*n֗[*TACo١BVӉ(8z]K_rwughNsGUɻ٘&ž(˽O&pߙ1Vr*գBoNإUk1ܞ-G;ʉDk1"vʾM"a{3|&]cf{m7K `R>½MtfV'B 2y:s',AdaN} IM(-dd"%$ug|[۱p +ou vVMOpVA𪜍AW"$ZfI|n+|njC]8}}׉X3Rs>#2g:7q~' us7^EOkMO_=&[VӤ&%+WI.d6ugC|3EXkMy7ۃmfi<$#CF܊~3 Anrq jiEr$ȶl 3f$[k a{xfZFn_ÌƏfqkb{ ~p W6e9ȖQ.Su*=(^k`" Óh䘔fJ.=G$5PǬa+x!N>/\!Z-~ĸׅ9"$4YN]qX~Q^Zd$h+fJDG{ S16F  }fdDs7ַ.A|JBL_Q?}M9LrF >dZ{rS)Ӑû*Ta2P,{{4vI:)}!Sk\.ƣiWN5 U}JAE&aw? Z/ "b5eg:2qyȢ+)K >zNu2rqKJBDVN/L[wgz0\$M[}(?`qVP)88ߺ~C5l[+UYO4:c '&Wo4SٕŎA@D,tlw:geYs97ȎJ 0 i2AYgXȳ`j=g\&ɞdF1|;!2 jW[x#g.,#B> =H"#9/G`1{rC,DWShArNkw`QVrqRt^4!W7Xp.!CR{恢oFl6IXj zH4+V:dfJRaS-M|Yyұd0h _SvDpvQ >FoŭυoMr.Aڶk,l e8|٘ϼ؍ `fL&ASawoݗBOAU{3pĵC#8bIH8dxe# ;~l ⒝s#7hg9赨pI]xbY~EIr4y? ^ LԾ̎ 3} PxXa3rͺOu:K:]S#O6 ψSnGoo.FX,|xu_#M3Y %: TCpĴccP̷#D(8m"{n ,5N_ *URKYlJ}%6;qLQ@Mu憪: <#;2׮tPT6!stxn/GD!깺^lŔl"}e"*P狃kVplg_MHZ^З&"NhnumkO.,,tbyCctf^^w Q4\an+r)S%p~56$j3hpqaִ TF0V,a (B BC@$ ZoUrLIuw+v^CG@~>c7U06ѫD_$OQ6Sd&a{P? ;#t )M}a<>j|kADbDzƓh#,Kd m'K_eYS"M7}ى!|ޱ#۽if~~g'd/> -&vnT P ah& &HfY1%I\njR÷G[Le wOcTu]}[X_?_#m(K9G&]O݌V)jr$*'%p^<# |3;i_'yG5&cB?ʠB|;dcQN٧e-YO91Y^[oGH A%I&S`uJ~Lb,_Dh<Ƀ#A48TsKEF@bJU@% #]Ox°zl3z>oҵT8nCQyaQ,wTT5\ӖugA4! ?!8N$/Td_k <y6޼VQ j}k7jXd+3zc҇ b::rv2!hpPu %麢boIxOe۵_Mɂ-+W|YeW]/Tg_vw|UAcOjwCץmaWy hRU?)<ʊ` e?P3iCjYA'^s髕Pp$40ZWMҲ1ڕ 3LunJxWyKFC⾆TջÞ.ߐN60fUԕ&CxО*m`bܔ&5Ѥm|5ݕx]Ǵ n=Twzyl8s :tzʅP"_ʓq*=@X9 2 " ϮùovɈ :dX=2hwJj"s*[Sh l[r()nSo_A29?jTOJaI㴎쮟F56U9 Y^j縵 hyH1! M/#T7vZrOTi >:!G-T 6nW(cia/ӝ%N[dع)9FTa[$ڿ%ξAbI ;pj^z[>Ԓhs~ӫ|H۬lABV>jd|Gl ={vscl!]pWx:jox`'ArZX=//1P'}En*PG߸^nO"E>/%HJZʞ0~ @Kq,aiwo;e ǂZo7__oNn(ٞ gOmA;dFV8ŝN.gI$v( Q.c~c@n)x q>0B#:)IBXdFD[t!rύ*?M5z4 E/.aF ?RE}6,9{cܫFxHRBzzUNYٹ9fho_A{I/d1$-"FHq8?]cBgMB5_{`ZS)?M4rb;1>@h)^B[5`_\;`?bWvhX&uʪ.8Nu 7{ux1Cҟ$# '2G׏!VRDvS38E_D_\` ~ 1Ss(!*=bhX5Ūv+5}S)I며I2鹢]!t499:)ELs'}BDGܼA[Z_IIfML:(🺠 '4~c.0}G"^6vQy-B6N!.<E v*1d`Uk_b@\%I P)+e06rQՊ\}Q<&K,78L(jԖ9]]+=*d7 .8KH$g?j]KveiNRO>1*\XbahBKQ2]}jHPēxz-v"eijwO.4H `q򏌎z :- T#hv'؃g CQW@n֓Fl6,`]wE6J! {;GRK8F߮eq8 1c =( ĉ΢|}6S/ŚzqLA4Se%j ~4ZǁkbbXDqca=uac[' l Ncɲ`0Id#9A#6e"PUcF' *aj3䤪9-jZJRvp[^n 6A42PST2ӁSgG˥ ii3 -NS,WQ39F7[G AcԾ=>[<^&]A 0: `(b "!P& tutINZījRW#tרG?f6Ͽګ݄3&U_AMBb^}9C߼qo}~ D .UM~}}>!x t$5l*έLT ?HWb_-y?灿Gg7ٙuCM:)Ə:p AFI&S!N>v&8G@c[SM~Jb'ke=+k9,ĻQMt(VV'Dil\N6 cmhk]*]f\euN nٷ3V+DaAkv)2#&Tӿ ӫ=yKLЏ^>]{U4J"y;AL鄫$ n-|F7ėnGu뻦+>HJpj%\J[7.h\=Ih_{t9XGWPv砬kB)եщ!gw+ˁ86߆KxmD]Pz6g1YG/=~Bꂴ=?`/F)AچAoh?e5G=fi[?;_Zm%zONX,)Ï"3yc ӆKgmstS{\fhB쭉 /!DlX3w3r4ڛbz,~Z]ܷ;F=yԍs7~P"cSccEg+7ғj˕1_ =8Jh kn^_J T;}Gt\_]Xe%7=ĕ>DgvoV,u3Jef_pFBf}pi+ ~sn+RT~7xq']v1Jo_Y0Ԑ{=+:0E 7.O~$*D0 _^y17FJ"%]gH"KhM2NXyJz,t .rV}W)5rw5pxSV(|ClUUϜWwִ=؆^Ar,u SN {ކA A v[ߚ<+T=Y p)XDC`F(KYv $s .UVL~>!GDix0p0F7}`V^FZ'm*\8M$buي!4GqL[\$pk]ʩ=%tV~kdc^=>@H,˫pP3KV4vskCW}7/%"^ruEmmzD^-ZHɍb}cE[Ɠ N0Ji{t / 42n`4:[>-[\XoHĩ34eRXI>}~XNcMZ",[`m[!#[WhQN.7܏5foX4LƗt1]C!O $AO}x R.˜T:A^!'FIb,9/O;†0R \޼3XDp|a{l)d侏&Ng K` p!E%}"/epՌq-9̉?|7+L;=g qxhVM Gnsi<Gz:&$<|y|ܢ7x.C첒Ca(qcЋ;?d*̦vt٩Pܱ~Ek7` EX]D~?RP%4ljkef G~"w2)7ӒluV@`D%uP@~0Cj'xUnTMcta)sdag8C F8j%^z}ĜDS^V,2 8C#\Qζk4/B 5mϤ9]ᐓoŝ8:x V`"E%@cHiJJ]%WoKX}}ӆ55m/m {8M J9J[5q+Vͩ-条 WtI[]mU-jwgx#3!v:2IOKNC ǾnqydnBJ;C=TZ9@t~J]$JJ&X ]tԲmtuĶo@:aRHHKW}j lS.k %3/Äغ:u.s+dfH~ۑ`KQW4$O (î}6bW*#`,A3Ìx۪/ǫd5J,!lOKR> C&Ft\K ޖd|0қrʍ; NXN]R@Ho}B2}x %^g}I>?fNN3^b bCW "^Pɋ1"F"*3[)敎ўe΢W_M@)h4iu+z|j~t(^W.^ eBPKL6];6 @zxDFK{$}"0Fah "(HB% ]ZYJU\USȗ. s7ͤ/YH YP.Y_dyX,?d DžNP4@i.LT}rr|epNtRZ Kc'͜x? @^Uԟ$2^7=s- |,ґ)TY2rηvP8 AgI&S3;1od;BNu}X٣]Z2 q ܕ"D(-k+:$ӹĹCDi뷂SIER^tK ۉ`D.@TNz!u޻O 'hy>K·"')@juC-Ks\m4AGA)mX#kJMV+xNGF1k dVM#mj>I|d|=#D_JB\+ o0,AUhQĨDzvjj7 f+ps`y3P58>+a;qؕ d EJܝ),(pW\;䛱kH_À,^4fp?GۓԀ77dM1t%hzx3dՠ?G_<ϚF`,tIZ2o.WO_,=6PV֕&8~zqv$k0=J ݙ`YIh\pڇ盶wXEfP&ezη>ALtS͔E)%^?.z;uC&Rw,hg0d/Pwѽd;\7 G}6JD]3NW)*EiFQKs[!C=W)WR=+h$A=ycˤ7[%4Ws4L6HDn5daC_Q.>1 -$(9;(NҨj課rmb8SLy^|/&K]S13@n"A%a$vf(z Nת I3~]"&1<(FKQQ2[V wS<*Զ>$:dHuB4#O<r1u7Z}“ 1HIqy,tuYYK{K¿iec|XͭRe̓^*4ǻϲI/e)QtW~W/FF+BGid.8j֡8!x|J(-ŦĔgAg< &s\gPXxGx}ט^"r$1f]8-U}:6s;BvG% E2!=/e>c_Q5bHs)O,UƐKuB%ࢸRi<ÙLܽOǻnqoJ_nb@\%P Kʖ$!QtgP脕Qc'ے`sNO}D1UY,,ALs|ǜ8jC @Ee'OTb^w0n"]S% ks"4&:Vd`BP)m OtˋI\,^NyŐ `)FwW=˂̲[]Afҭe|_)4Ѯ$/LMw>uX6*YIy7?ξpɔ0tÊga,},QB^lT1MVo1OUSZRQ~񘊂q`ΜOS&AD^ا0PDÙ,F:z% L&1y O[O{^Wc)-w&XhZmrxkq F4`0!%X ~t¶ L'J\oPnޖxB{[t8eIJss]UD5b^g@f=8O8\:uhdBQy:f`KTB5Fu A2\&e(dm=qU4{BJ-N** c;|v= ^ \j% FѨ(z_swSƖֺ(ȧ(j=-*6X6mQ]Dq,gdm_]_JȺ5EK#QWo.0:HE<8'‰8)% .pcxQL:4g6(Y], ,SpK=J5jQochecs&1Jc7PXԘ1&K~MK :q o8P[֯dpBm,gkx^ r6a2?^bǸ]ލ>.5,` sЍWS-e%Z!sla8oҟ~qFD._=YcQ!;cc2H* ؠAa(O>2+Z/.M#|.V" ՉrH̭-W)rǤiEttpD-dm3G 6_VlO,L l7ω8H YL!{YӾP}V@1S(DyX"_]f@{J񖕥i/Ql,/SױF("ܝQWp[bJP/$t0K\Ǣ3.Wb ]AܝئpP"X A0PdB$3 ruU%LV/*%%XGaWf; >)V;3X~ԵO{Oϧ!Rb[6t/)標n럏՛y5E𳓇Wl)Z4n3OEH) TljσkvD:z^-A_!~%1.Ɂ$0* @T( !"H&"{ԓ:]]ZUnےQU] ?U\ ;wYڼᄟK׍>tGw8co ˬh&Aׄџѽr]\;z~o EsNs:=ky9˪Dm80/;.R{gΗ^=3@p AI&Srk{8fu!peq>d}SƴoY|~]'D C9]]VMCqsE{갹[u6Ѯli)gy fNi4@xK.fxЯ(N!Ni\aypg\'C_.uHLN+diHwrnpRmM=g>e|q%eEB-Z!KB0r9>˫ |#$s= N:Dn=}?Ma 73 $e̍2K-+̱MG=P_'|ZJ^5(|g"ѼԳPPc徽HL7~p]9M$ߩ y>N!l߶xDHIl!d{~HgKl o+t)yJ;ܯQ]ޟvjMP#dEߜi9WԋC~IrqC?d\҉7@GCV uv/W=3P>O^M0_öuNv$&p e6f0LثF;Սh~JN)k{J՚p Q:H\7O#[⼇II7^ҋEKX7ȄPh░@8!3zv{ɈЇp@$bνARE( ~y66zpW:U]4rUM:@\[BpvEɅ5nf6s854:q x6bt33*zn <9m k!4fB|"wFpAC+,X*D)3mRo&U7 U{={WVp>7.pW;cL7a{3XP`l&ھ]c-C;Bb}&o_(GnWL9\<}1}x DzЄ"NFtW8(u8^Rof"SCacTSxhUu*^e .^r䪺`Ed-lYf4[Ti'jG*sWv<|2e6w_D> ,@#kj5CԆh FsL׳OaFp#'+貈QO˿V-,l<%hL aB]7wJ>Sg(d[$̕W -IȔm(%d[7FlB[v4_}pاih?LմڤS:`Li)~`IP:e:ݒs=BEo&픪/=aPݐYh][c؃y$b§NOOe ۠LK`bi[r61Mec`3ܾ2gvrls;ހó mRִ$/!L:+S¡ƺeƵ02'1qx 3nb [QD8m;r~3BU~GT"ǎ3 dÙ PcU'VqJs/R}{?D[,@kS\l4ci [s3'ү<,Җrc[: aHO,s&$c!h˺^P:&m\CLj+7.#'TX)]rvz4XÌ.g_> ތHgqJ%x-VTLZ+fa\ sf6|-oX9fJ+D6b [n_~uuxtit옦kAejD[&^%؉oW9T棙/P=Bg1V4jQlWo) 2G+t2 ?h7i$g.!$LC^"I?g?G/ߍ RDnٙ[$#3R?uIc98vr(d!k^8L!$VGVNUZ= 7PR+?\2.޼0Fࡧ\@񠻾2-XDıZ499\kR &`@xw,T#Yl׵u{20yqW/x7M NRv;=nZY|Q )0V\蹥?;t{-r\F8wHM9ECYCDH]! Ԕf?XRm f\ иt%, r-JI1 (|ˌʛno9Uܕ\K/1_ ^[̪ lkO?4ڗ.@%1nH]"$ܣ.,eKٳ Bl$vvoя})|22 Zmn^ZhnY.4nBnOj_~Gz˻7W3=w[Wm}F)2RTvPËAςF˼97sލLzjC_D/HXbMUaB[T"DNzTס;,=l4*#'gW x 6Ø䛡wk )`s;UeRwO'y>%/}1$.BaKmhU7判 ?ΥBMzZ:Q'v-S>@!L]W [{ӯv5^|棰7:-K"metyF[rM&x2Q' qZo)zGeuDhNaVvkx ]p `p*SXd]"Q?މ;Df{yɵn9 \JG<̊1@güWCq)4Msda֙w.ȓTÊsmB":I %^nҤPܡ 6<-M813lZgx):B 7OGj~ׂhnO:J%02ogP8o6VHpnmux]yJ#r j_ rRS|l߿Ď#q/PYAC?,2)*,׃r{_3Ь|#o+EX,1>%)M8y`/ZA7anIYZzdVA_Įc => j @s)lm 5AQ[ T9.+j~oWÏ*"PWUr>,4#HZ0T}gy#zFTbK&sO)fz&;vV XDszZ/Hծ1iOuc}cVrL И̹JyC 1\&X2l9ӻpٽ@=DB145%̴$͢ٴ )0pcm=BӯfK4I}ѰZ`6Zs '5xό^9i>NlLE|0h˴&qX %M3X:%9P% <+7_AeJO5Üj5MKCs68h8F6 B1Ku?m~`(YjH7uE;HcGXd.+17ƦƂ]%e&C1YULbo9}[͈9@>G? Ldf:ՠ.}3`(, @`,TAD@D$ <[]ަTȒ4L: *gRE^뤻6^ɔMWZkx?6n䋊A$u^_疾݌?C"7s+|@LG(YHh\z$S /{h3nis 6q~@,0FRPhB!!H&ryؒUW5.Ls{k@wp^_Gmuz=u}5O:ΞMh{V7Q2uaNmzsM=Ei?_o??WOϱNi?=3K*zD 4 0M< 6p9 M2tfӏAiI.襟4> Go AI&Sd|B1]ҍݠ; 2łJuK@pЦOo'ؖ"hYG6ErBB<ȑ??8m4/0KywJuaJX @nڼdJ'z‘cUo{#Te_gYKW͉eH(aY o2-H l\~J=-%zª7J _:Y8\z"ߦ-c{eV>%R$0Z&m]F7[fAT(G4h%l?1?@ҍRj}g#U 1'DH{NYq{:3a84IL)IGD5L [e?zP9qjع6勣^t&G+v4L׿G9ȺOd3^IW-ȨFcvL0R1dMT (,)Y%jm2v<\X5ÖY?AuEm;8W6fӋɓ+րNez.3mDDA%(=Lf[m[;v1B<´#c:]gTY$a?sқPO]4 m崫?&rܿyXpDjt$v7{{-S-#8ՔIA.-jZ`1T1b'͎m7+utfCG3`GR/uH[I~>H.E"]]UFp49VO2"_!Z(.<0{kݥ Ont>Sx(V Fܱ24(rzbdR)&ɟe6%7yR WH_& v9z|Cv8@ِ9M@[4j. [l8@+QMx*M]ڷv\vO? [M2J(\ 6&ϬoR[^ r04L& G#܌  rf +&m١'V *0h@`'Wn[3傆zFkՓʞq0mjXI@x~Ʋb)3#$sZQTC#&@%RMʬæui-4~|:|aO[bˈy uڷyM4WQOGc!'a,6/Ae=TH0M-utmuJv52k?YO `LeC |?x̂(,- V q_ӆ*Xco6M;gdavYyawpV#Q~k~sfI<  A1RKڥׄMWwOX&+2B~鬁@}/@v3Yͭ0jaMVǏ+_I S=+;'yCRˠ7zZGfib시/T#3$ oY^Ě_Teօ,Ö/Br7NvM.Z;U@FHu/΂{p>2k:\$y$CJAwN_r, |Z{/3gq Vǥ. uhV'(q"z>[sx+B4Pn6mF^浅U @J]HA"4JIS8h?6J>PcTÿ4mKҬ7 q]%4_ݍݰ{&JYWM4D+ ci8l.12.<|k ʴfYJU@ EZ)Xv{8(Vy?phh=mo&Xv$B饇Y>@K 荒@8#BV!_O+}P5Eʻz#+LH)s,ck𨬪S*깫*!}}F+)zeBc%`Q!|GLyMz5&$X5y,?4D^=YKu"QpRƄaU@% y~xs0}̤:<5RQiI[6o܀8r?J 9m i,YbH`kO"קhjP 5'; 4e,Wʤ `¯MzK~w@jhQ3`Zuo+4bѰR V#;1‹Ji/ yV&}=^Q輹AP=-冇6W: dz)GSTxe=f]3%OFV@GQ\^^]7Ƭ'MG8GG!-^Bc<¨ }x?.~?~'Uq)}) 1*;wCmu +-%|:oou/saV"Tu>pdl1M AI&S+CC5%!:ZG@Nz^P>Xŵ:hT63RVaSYU/kވ:xQ~'  m%_Ԕ|Xd6z_O`_9 AT JbJZ?nBc*Ex7\N0` 4r/rOz:Oh gom]Hfū`q_{Ad zLµfE-3t( a:qlezΆXB/jF,2f|~ "JR{6+dM,vA{ p]\9L!Jw df!RWNG Nm%i0+fc(trwCf1>P &2_;{ DA A0o7ꞧ9U&&A&N%PLKBX6ْ0 C:Fe (`Cm]b_ _Ƅ|a% @4o,ƀ(X5`..U1mmo{H;k8MDolZӪlZ8ңh&-1blx f> >ܩ.%NUL@h9*r,?og?g5F9JmǗHl:jS]7FXvjCR &y#L1`/Ř+&H30V&%L*8%fAFwn@%xMyC8'2Lrr@fdz?\Hht:#L6 GdZ/BU DD.= Q|6N+.˜i Ky[6nicBV3cB6uCbU%:Qyxh6C-KebsCy@B Rg Dd9z3䩔6Y4$&\81<(Ȏʚ5Ns`1^-f"8#/oӲev'yؚw@}1 )yZ|Q#>XL7q?.}:VKя1> ] JŐCjN2D!d3\\;`=ꘈ>E1RG֍ԍ= 5 F:4j{ +6`OVgbHAb9R'> <2 e>v~S&#z -T-]r,éeGEǒ]Z) h\`Z5>3wi㏖<3s2˞J\h<k |6OIhyl1ʼn>8E[2YRUpֹ޹ ݽz`![WLʼ]xtt9LaE=.1ĂEPJsu(<JCL>^,顄.gƥO 2Vp<`gbF-Qf#FoNmeloV[иEhgRIiJ#= %z=JtQdKbkMr(U%m [Zj|J EQ_0pٞpqfLkB9y.}u9ȏ )UP e(cHL"4ezˇ_WWZ䕯]%ԏbo!J{zn_5/!lXҡ &# ֆl1Li]C Z͞ia7qUAԣ pJ{DVH"0s=d:+p9Êx>2!U|߫pZywftl%|9'gYvhb4Hzʿ^Z)g gg YEL(3hMv"R,^]$ T|(NÓAo"}qP3dwq6o_#\?/Rq[{a&"hɲt R'&Rz 6CZEoZ:HݔKS"wj#lyٿ|ȘHFt[Wy <4l[b I uD9GN&`џ/ M|qY)GXz\;i0朆li >a"pH)8guej0O2Tpu 51@I,f!PRJ[ic?bihank?Y̻کH̿+xŇ̮e1:t$s?L9.~MN1^&5HY(qPGl^x*i,yxOS0&А4_;Q\zv;,j7=4@HK DjY,b+(+8INdIˁ訤 Y^gN/n4@gC#SLtGk,fZkDɩݧ_bmW>(4@Pl A@H2a__YUʵٚ˒nu'C}e?v6{=sY!~S ?a!~% o35.~ӗC=OV(S-ٿh20\`3 hQ[-D`uի-^ؿ}'oJ.WAHͭo>wue`ضwVc&,* ŀ,$ ! (! HH 9}b:ޅJ42ީ+Czil@K|cl$saHˉ48ߥT`sWO7D~:9WHAI&SXYWw1-D{q*d,9s'tfo7Q4qd`O7a܀sEQ|P-5zPka&q3*T?nݶƷU*dLLVw2Y|QA7c|cpK'i:f/zR|k[V^&'7z6*[$>7!W'Ek 34[j"F.'0s''>Vut [[X,P:G2YJn0RJ"hqkÑ1_qߔJMKNe%:^2t{⥊o'|&I b'Fxu?p+mOL$k\W(F .Oz.aBX-K9+3k'o0c  !#tB7qVmܨmGEKM)Ǩ<"/Zw݌ڦ,4gEkٽ|KެA2LsSs%<^BWz^I-#y[l+Vo㤷|y'|:kx/A{k G MT)w% #n\Be] 12 1^g0X\\FMJ?c }V85∉-u\PX/1=yD4 էv J5ۙbS:9V/CA:dž\#uLQF9倀5E{e ^;&蠝^b,V8:pRHm.VA%poQc0ѾNVƒ)tPb0)k]Ns D.).ӃҲ(KF{5VJˢ[6٨`w2 #o9 o& ?r~vL!slRЇҘ6Ӕ~ , JYz,ЀMa=YнWuL "l Ц]Hr {*GbKzq Fv^o]tzvaяyܒN!>ݞ[g4{A"[l;{m3j\O?)8ї،-lLDl )" ??6u}fTf eWƪ),7V`@ p 5nexSṼO#`58lX큑(8rطn~Scub8:2Qegcri]I ORt".qXZ[G5>迄.½gh,am ڮ@$]_6vHgCQrIaY0]JOyg*R3 id˜ iwm֌> E!kPÒt^ʤ2eT;\Q N`_ezymx瑯?լ_ ͂mFO #|31y1XO{]vW6XƓϥ%>b! GxCG9HV\}3 0Cbvno]bNdW',9#dEwf$5u`#n8{3 **{i8bCl%o9%T.݅ XckKV4__t,1 —ay`0zǻ6*t^N[ M hb#e,Zh+'i sRڪ `{۲N{.%)),d݅Cٸr/m]hr0?m",7LpEeFg>WJ$ndB$9A lK[ăN.iѶoA1N9@׊E>)}=jj'ĸHd(dq}8vqdf< ?sa./0<箫=VbOGS^t׺eQz;@"09 %C0P$ BA $$ bJ%I1ey<U׻&&>/o}/_ x^k?&QJgq.nlpvlξ/:O![zfg1OzhaAىVaX6kL.pgY?' ' jCd g\9">Ʌ$/ZNrߣ=|t`BԚ}W=9*%nv(TڱK/^2tMiRei&H~D1!P|i'@LL,;B%a%u;qdՇbp' ZTɔQ5ůCT b]p rŵ2ұ[FGЉ..߅L*j܀ •6K k[9Ӌ^R9e^MًF0W:|h 4ajz=c"s^"]J X*AO'JI0ٍPyst  e'y%OQ^([ҡ} vF皴Y@>Z[G5BDo*^9I.b>l- }])̥[|_S)eSYV=PT4ƆGه; 31 cZ^M uHo8'Wǘ/dɭ-v MHn{ 3NҫnGR?I<> j no֒LƟ̄(n4R| DqL";$ÓUЏw9LXJ =0~ ̤DQ)_H,[k_3~ЩX{OaSu!/$l9::iGEFuخjzoն-9ΏQc09J&nOb],܉Fkػ0G)) Cu74BbkZ?\2J^/U/_b9 A1{^b(%{QMBܺI L.~W|_T?@~@fpТ&Lno9x='2UʎuQëv}&ap,ހ-*VR С[JZ~Us}BOqn4-ѨN9σ< nftD$ua$D[x걽U<.9Ss9~ZĨ=-\EmjU/VQ ,D?WFMXzng) M vpgM_Gu TQDwJf+eΉQ3<  dd|A1}I/3/YG$~K~!ul+IT CץHB00b^ ல|3"[yC/$*zCiiq[F n;h`m#,Fxr&9m; k&s;(eE=2&((rJ;m KB Ǫ%JLmhU/ j8 cO%2!xzOtcvuЭZSЍoO{wfН/T8H#2.~fͱEz1DQ+{n~_+s Lz|](>%2%ٚ)QP"+%x-^(nm㧢OG/ɾ[z D2 ٫aǖd6g~eL eGzb7W):pʿTN/fKVeAF01}wmP857UgVv?*_keA* OeL+U?z\Y ".b$Ɯo+F58 "~K:Es6FZZ5#,9m %+1 yQMFԇj;M: YI_i/,V9+}SWMa뜨/BI`zq_R#icCIHF* poI֞ :Yї,|L2\"E VaIk`eQjTCW"T$p͙DF@x@dW֚ڳ|T˴mMr Р$/,:_hcdhojӆ0uRl:m9**n@14J*x Gl1<<,xVMltlm(v2 LnUVɅ0_Sr%2h` u=) )}w3ݫOْ'7_&p0a(R6&.Ee4` c Ne~j|*[.NHc387x)$Ճ$14L+ʢzs=u␨98?2tnMjxS:f0]6^qojy6J*O4fhpNKFzJ\Bas{|<NW%GXRɼ,g|u9fA.wx.nьeA6dSDyOr]Џa7s*yYHMchѥ AJYu& ͧ[v"T{OػϺg$@ir: 8pYwH%=Wslfob3dA8uGo3jzd^AJC@.riT-| HR%ŕh2MC*|jz4c g>8*c#W -goC[&8e&.T,CcSj ^H fgZ!x5Wx_JV,$R(CN ozf(p6eV;ltAH}ј߱c/!!20Ax}]!O82gaY7{A.j7q!$3%|D6J"58WR1]3,qdkV=PVb4*{8\I6 ZDYEcv;n2jnCʬA-.I `0& a * J Wη wECWJ7׳_Z[88;h/>gϏ.<履5|Ȑyw-:lSoq>|t_oj7qNί?^Mdp`A`wBd-Co5~cA0I&S:Y~vxG# !h(tQ(vWn_G%GfE a#:w3ps)xBQ@2c.XkZb3~aZ:h]NLʗ 1)Nr3 <T:.ҀɛO\~2}nu>_ϠcWr[H=,U~)>ݺ}%xyL.XG}c]|cAh0qF$Y V`4d8p+ss.!ݔB_rjwK,I9edqN} |.p둪.$޿,]CN:B~vQzC| =u.<2./(fX2un9TFSށ8 ~^̆!p˅)"y[@0#qoͪU=ڼK#YEB18 P1YC@$X, T׽ N2}Y1MjɫTl|ǤJ!Ap7uҜ3x H?$| uJ D봪.H 4V,>@`PRE;]?kL2K!OPLwZ9LL4D#vAAToM^waEHjT=vz<l6SA _s4H[S' y DccI^Ghθ qH{1kY"`d*齥@4 /})eH:bz)y,o9cۢ2>.Q&E9(+VҘ=iyQbԷ YQ(?:Bg͛h#B| 6Kn0k3N5s0RoNMº=_1|G ulb,CgY\ "j $ҵps? XffCi:403-VAxiN w~Z=:x䯼C&gQ>JK9;V ‚w- <RAy@ Cd ʮf.8 :{alɦ//:wr.%/PaxmuC=8t#f1}D0pg%uC8u*H WWJ=C{I`a!ܫI+mp` xeFzlN*GFIi*߬{hKU%?5}3}K2Zf@k3ل>(J3"I BHC5 '>Qÿ?K+/C ƅoT!v@T:ɧX2;)CE ލJ!/+e_ yYs-=w83_{3u\.,/al>M~1/k>%ճ!fz}{O4HyMxL2枕ePg8Ӑ7(.`2{VLRTB~m wHV߿\DfT dZ?JC4t1l@q}ߛ}<QM)Y]+eTt߷fuWW棉KЧ#'Da}W~Ѳ7_1L "b>?Rb(4 :-u>2kpͯkH[`X40phxʵaV'UM؟PS=~RI %G, kXR p韔sة_uy;o-7ۼM{3۪0W|.2+71UO*gB-G |kA `(s9ambo/emA_Mkr ff9 =*gd= c:YnmnqkyHzUFXȆ tV aV %bTx茳E.^FM+"$k u>ݫaӔHO1ż1ۖ{K.&mw*(ň܊tA˷CZ8+K41qnodݷ*:%B 6!|mrܙ}_+1A;@15.g KhU'ķr̴x>[߳pM|Aaj~H,=57@rMiU[cìGb~i==9Y՝JvBY$XvjZ 2 _MmttRk<)ޯTQDž a2(Tִ nTWzYg*,g椃 JV ckg]6RZti۱^_Zp`= ` l/SQ]z1IߐJ8H׍BQ}R-9 "9icRh^EP}q:$ >:c}:qKϘ쓬^֜eTaE$dS<ȩ-aJ_!L)44ΒD|efY>Oʽ{⬕9EQ"'2bBGgb?sVVC? @3c`\ !{/mj`FWx 6Ug2ABuf&oAVo^H}|1ز޿@-2^' 4G#cY7 tb7ni<[D_pbNZh2 89Mp[g(6w9Gi`Ȣɼ HZEt+S ~Fl68֑-Vӻi9M+챶J5Ȉ|&TJSC%%2_ѣX ]cZm~h;s* Oҏ7jh)C"O.^t=Љ7g--}lmw{tU;񘏁",( !@P*J.UmIW)/ +z{͍ ՗W̜c :N;:S,-ϙԅ!xSZmuiCm^/-n|5K|lnp67'vϗvXt75wϟ.H<ø?7OOuyai>'O/ngd~λtlOjBDӳZizxfN/B}V "f[dh(%Qw$V?|Ժ&G{XnR&(F{xMCv|Nx8l=%1oVuxflAl6GY5BnEڮ F¦]?-;0dS(*@fOuCJwnlh; G;zp`̶IWrțQC|wD$9Dsֲ#s`|"ZU>@ NeGvn(@.s?^bܳF#)@NR\谤ý۶}_b=].3p,TALKҁƝFfV^V!҉zksC&Y\ZwW/7sxs8Wf U?DG{U,ċ!5(rV]jdS_Xria4H}HrI/lՠeS\M5sy~U'E] IPOq193fe3P t!h#Fg4#wX"&s&JHpM@KJ&YMlxeߧ_x-//ܐ _}[󎻺6>O|?^+_oݢ1z8acUwl{ >97d>=Mtl^DQNEzuO3L>/806 @XH P(* _S/^nա//&V",k8W7ŠE}r+o캽.xDŽLOOqmcW= &ՍIqkX r3ϼMڪ@-Z٣}pT_t;}0?Y|}q\: { ~?~2,A:Ui*H׀[ b(5=(~Pm|WށKARI&S<%g gV1<)}X9}lKh) [*ng%(O(ZfO:!~&Ufӛ۲jp+4|R"^QpBQ)J*Cw4Aڿ…^gp0bkߵTxh{֜nt^BK8A$8H2DC"8Q#IϤ_nya#dSGL }&8Ng_FN4y q%7·Sz>8Lw^evpZ lzp>'FƨenBEufC& qgxq7++W" [+Jk[b"YpfP0x9p1 MFyF,iTB,-D8 aMjoUL(y*>؀]Xf~yg$wc(ҕqV$-4'؆L8H68G7'G%"1RbP pH͆Q!(eY~ /,Lж( Rq*Z6!V>~;L5]Ϡ^{HT3lo4F)|ikx'"h0 mN;= sT&30`w^8$NgN9ZL wc8Jt FrA0 ~WK^V0,x+HcgF­餃")nOK1_ O5C@DОf́\,zZF)(84Etv+]FC6'OZUy ʩpvXib=dR/;&s,WT4fU]@3lwn3e!_Fk$KpI}UeN-^>4XHA_k,Y ̇1#ڤCP Qi_I9𤔷'2 |S\=s[]ԌFS)59\xؖI:KHdYt+qHd{9*gf0 b!۸}}ˏFԮw=a5]_$||hMzmJmR!ݐƍ^s֭مCTd=y G"9ׯV&@Y{Tj**Y\9X ?[[) sTD5b-"`C@7mJ;a8_}>"}~*aPҝX&],{àtܳIXh xtu}^5>[7ZA} r;(INO.&%hc\'Pbk< I vnFyM_nU=yV(??J`V7z>+kL.TmRsO]WnZ<_ڨJ'#`WQiLUPr*E AbW\s8QvKs䪭Rx: Mk:-1.F^e7_4 ֋ϡjt| z0yiA}M}r,yC\b_6J"6qUQm*LĜ @xKf%+eiB%nǚ0W탱5N2pp߈v@p ĝ'zݠ\="`Ne1 Jj$.{!I/r.ԊNV#д0mH 3Mfk*Hk'Ψ@46mH\dhfyR ay\ @181:4"upXب%q&&$z/$+ 4cO3y'TR۹ XcV.-2u(Ѓkah7f)T,ĭ~ EI\c+F^3Ern5.`oj5Gť۵|(}z GIk]RP*j?Կn]/+R7HJٺľn_[YV\=gpGt V\Tlû o$bkh,(Z3)&L"E5b%/E4n}pu#eU }kI3\g1 Ƈbe!ȇcSe?~Bwe>"ط.OEIm&nyvBUqKf&Vv6#ٺ% eoJ|tV5<}I+ot&$t16ՏҨ`+Q"pL]i- ;<=JtA/7;,)|9! 0鱆N>uwNQUqsg}LltVo ^S~KxsNk`pC@qPQc ,!C20U[a_ςwM7scm*3:[5cYkL<|w 4ñ*r W\ cM vlyv. zw|K&}$wOP$E48MĞ)",s( DK@}(cmһb9@+fqtmlz5\ `r]iLQ ->l }$Eį|ӥU>zs6"S\א[D5?v-(PJ<ɦHu9ǛwVPU@[4ٲv<(GDN]goY٠/\F$Rq4_=ϒ=#D:DGU^Cx:YVk4Wgx{#KtHEruD˓kW$i=sFC񌽲mz\4Jdic 1^@y ,?Lې ťJ\H òkTሃH|(30l k7!  =1:Q^~ߖ;4ϒ} X G@tgHB+Ms!3=X-/ nر8KG9AlhG\cJK1JƼy2K%dVԨʻxJAcbDt Ȳ+K.B_KQLR:Dn)eԋc"ud+Pq#GkzEG+@5G! nY#b WoY~5%qeĐfOˊҽ [7`) 1[ k)C~n |XÕ f{HMT^x&P c( PP$ %A@P&LKyrJL"^Y~{oRǒgw\Goи>& {_)AOpݳ{_ڡ1LHV{lS&I{ΤeO8-.v)㶁oJ}mn&wD7#uy7_+=$$8?ץ&]FdPmV@8 qjB~%}!'?eXh-$3YA 6|9x=h |6t fOTـIm kUKӨ+$ߘ& lZNJEQtCo0J(jܰ#{V/´֮;!5Rg IK36x4:sGn\2ZH^Ms_jU6~b+>ʵ7X)ma*@ľn*DҜڋg5`Te+^':|n7eх:FyyJ)W'1Ǭ>1`Mu鸣bJiH^_5v"78whﳇ 6|Һ*)z %X U \ /]JYƥ?u#L 0B| 8+H$qKɟ*av 95l SB˜4-3%.&'V<$.pAb)YIM"b@iD_6(&"l-Q쨱ZtwKfKi5߾0Cl3]Вx7Mbo]3M"ƹX9_UHUb&qhj(V773--Rocg ;z1kvSG)O'Ȣ.B@U. 9vuj+VgQs5Klyqy 5}MZ:;oUDD9 ~ꪷ::?9P5}DgR6GЊSid//܍$x@BU1 coGVb5ٹ\աY.wO(F[i(i/u}Ev:r|KJ$2ރ7[ۈܘ1 TJx4@n~(2]SMJ–1-cRV=x݃Us"Z5#BhXF'JtP&ad:{xy DoAtֳMz /+hw/v7k:`syy?Y`/Y}GP4oؔsۓ3>dM f2WsY@AmkK#Hy JU-6tQ˦AmDZ[hDT)z=.㴿b9}- D{'g,Frem='(Yj؜CDm%TG)v\R_ |yjT12dJHs)rML&9e3m!taN^$ؖyf6t? \7LC`>H+ŗɿY& *a7Lvu9J0P`[qځ⷟UȀOO5iͱROEW99ҾTg ޛM f#fES3 H+,`a&ma!†GR F(5av ?l:DIY;"J;B"\ԓ?Zox1]D `% "URWD4-hDvu~6mWWV[h}q 0 T, BB$t a~ji:ֹ˻bt@E|z|Xꎮ{3p]gDC~㼀rx40! vmSK 1 _Dpb_Ѝ/0^g_7W})szӳn]?$ISӇ7u̎ς{/ q}H'ԴurL@ , @T( B T(5 0nerokuyu+QL?-ܺM{dž']~}Eπ;:U?GX<>?/z \ѻ2T`ݚֹz?7>uCاHTLàڹg|ݒoץ﷏U *>:qyPO7cЫϗgv\<:&o MAsI&SQg:1TZ"` oiy/O&U!ѡ|5i9u Q>]U<3+.A+ -?93t"Yh{D!%hn ;&;6И-|/M߸&ڐc3[fs^VZGN`VO^/M8Mr/Y%Q4 J1#׿]YUd(}^NN}UTX .1Wğ R~?y_Zi\+sR*FtKDֹ%mS YIS(4WJbWGaqqR+gk<;,w:N;Mo/V?zX,4)/&H7vF ݲnRg0=׷/AdYNI)x_왘'1uGC-7@vJDy#`b~;lנ]UC[Gc3^_bOO@!ۋ"B%We)I.5|cFBsx@- X_b΂!sz*΀ژL!94jy d[-o?8iؑ|׌ `Qi!Kn-Fda;g`-,4@szR,r|: ]8ڂr=@hUs252obn$F ~ʒ#|7Xޝ7ˏhduEl-坐u0qZG<2EGiz%ײh}9Zr}^駞Pf]̱e2g}\NzD)i{u_SũKpd!fe9D5tٛRv>9Y?c 2my9#ZECAhz88|!QY)Zdp.%@Lܽ"2)L)'X[xǓǞIk dO^'$w9t9Lueퟖq"a_tцZȱo}X]2)Uk瀀x'(ӴY-|V+5~Tɞv܋(Rec(칻LUwb#p!C)56U !mCeس`2k{Bu=%*I|ܯf'G܇,J^i#Cpm6DvoY|w/@x(5 hwDEw 3OS[ Hu1Qc䏞CkJvݍGFPX[+w\Ǹ "8/s i=) $pOMz߱kN96ηkx;6`#H~W`#S<!Khyo/ bMWjDK,s1߇'-!p 7Mzĕ,v#&;sK!.t %1s%zU-$7ϙ&C >4^a 1j { I=JtZbp0i؝ۭ嶅e2k@҅1ekθy1GE>d pv<*?Ēx {lB`-UXՄ֢OrZ1s|毘=-/OT f.r5T\W}¥7)kd є>EPOy6zDwSz119):IծjL`,V3xN<|fW9UNŇgh<4ÂQ r`JU3S4GYzp)=U#I|-[p:/$QVm\Hhʳ&_}#} !?o 9L`ξb '{KG}-uyb`g{ uo%\)g6;Tkk$Di>.VJO~^NZ4_#_m yB IJ—hlh {IlM(AВe8xNH氯schiL@g !J筏o&3vP4L\D~ѢM J )Ϟ 5LΨ]ǁ IexjXIl! \4uVk՜ORpG|拼WV$ {p`idpŻ^-|$[{\hhl፣H5ύDu䃴vkZ0gNη QXd)YM'hOKd*ܢc$P5쓨Ipe/_ JLk?äEƝ%A7Zu8!H'?Rܮvlqr<D;ỏU`mkip-O_heu}ڱ!Oog2aޒ±J\<}* ϲ"HY۫zǝA]"PY~^ 6RV0z.*WFg9'$XE2DԅxbM '(zii+Ѡ9OZ9Ҙ.U,=Rlidkom4 MKHKH²`߰CАS7E"~A6\v;'p7y"wmAro^X~qEHZɏx63$&%3={UkdΠ?N8/^%{N#&>Ld_L;}'fnp&0& `Xh% `$ U]^nU}[YjJA9t7vTmS=ZSZkm7`VNTCrpuS=9:/EK]f m(2 odA(pnq7塒z}snXqMl3|vf1!@ \ 3-&aiuo5}?8dU'}$0VaXH6#H :oJluQkě^a+,Gg/<.Z.Bub44*PrYi]y֣崥8$vLP߉ϡ;u4 <G<5 T[C7X{0nPE3|i uJZb!LCV#Nkx?qL٬w`A"*(7VzttZK-Q?E3.JXꂶdƎn ҲA|`+t%dJ{H(]F-f02XFD Ͽvbjle+B`RmAW2wa1TrNv{CUay6@Ux/M $6)'ѵ#Nc}f=.T)d֗W,OS |v˦*$x]S,F2a u{ < V }H1CCoǟ྆S-p$_8~$#mI b~.:q3Y{_Q~{.QƇVǶt"Sؙ4r̡*6*#9('7cv<{gshsB^Gp_AS+BKH_H[l$÷5Du3nC l {C6瓰G\bCDp+ta%z^P,GEP[te%MPSfՖ٭{T3řضc 2-ۙs _JdA*ISi|Oy#Ʃ1s\Y3ٓ֌FĤHfxD*MI_4s4/v3fpun򤲈JQTI z㼏 IE2~Pbq-F^FNkT*d]9I[A`ʍKXZq%h*b#Pv8-TnCm]zgsTK_b.vF¹tڢPد-T9.ڟg}U7CA_@F -6(gD21d!Wi-2b?#pH`dgɬpi vYDvt?NvL-ȟu]`04ьv;Q ؛#J/`+`4]<`C. -!@ԩDko)ʼnۼj8Y2u/`~'FA,W֜CTd@$ڠxCK:P9 PaHe> iG™us?-\s-r}8 ; e-lyEI>*> 4Ee01|6#͢HiT[{}v+?_ٛg%xvҙ 3!c[Q,e$# ~,R^DZY7o.m`Cc0L V.C9e"`82|5' }8<`_;~̖[z7?zif[h0_(v5z%([95 ,'YiͥY7x N+kid<\VX)Of m1]iw_MڳPѷD_ܑ_{"ע ^|A̷mW5|+Ecx I"6}׃Lc1ײ^85UExTHm'@5yڹK;1W bZ5> ֪lQgZ 6>P'yۙvX* X_8XrK(i,4g2iz|2{H=s{~Ig0 oN2H$R6Yn|V̠TXK{@]#u%}$$`.zBD1԰ojuBK𣙡 E@+W(*Et479S7N_#|:.x0-_IC]!/n^Db59538n[}C͂x`oIy]8XezƜ&K5͘o#4; RfkI@y/g ʂ`=ŧ8`S`BVDb;>N?Y;cNsSۋE->_^? '&ZL-.֠)SH{ ]\KPŋXd}T˥AϽ|]^E~URDvxSZM7G S[ٴt;s>n?)VQF!ҷJZ}њM*̎Q*| qNnA֮=WɁn' -S~p)Ab{C `MlWaRXV2\2X?U;I`++W_ӞB^X{`YH&tJ kn=dWl \XgE5m)T>}dFPu9Mt"V N)Dm*<\Q:ÚM{>s6r3  p`ezj>/'W:k0gP,Lȅн% l~ܿY2n`. ,t&e٢[Nx }猇/P9ЙC:6 J~1%I |忤~R6i@uLMkV"ްo群usDl͂u[3Vuth8=t# {ny6d* .o>7Y x5a)-Kz!D)n+cK*͡rҚS\DOl;r=0lv䈪OHbT@EBPn3AȦ?sEQ~OuJZ^%TͽcP`:JuȨ7Q3dqyVIlzc>rdqwF@ 0)&m4V*FPw#ލ ŸpӒoZ[y'P>/"Jo0G}AEC16$!L>Ӹ՘ 2EnFCvMd4[=&>[ġB T.e'W: :_r~uoR.k9'`##q%%搮u1?7?7V":-_~f;YiҸ_;{*.&hg"nJDF/hGȁƴRFh[a,Ǝ?& ܳ#ӫ/xV_i6]!В~lqm~ +qV%3~Rgu|'PvdwVzL+BYW#rH3;^zQ5?mjZ;9LBviYҳ$̗pOQ'GY[I˼a_F{QpDhD),>탛xT#d{#teפmDCrB>@~6%x"y 6K(jc#(' TJ +Y#s,)( oXdl%{۹f+ⵘiRf}엣q51[QY6Uiz9r<&Kھ܋4cγA:O!]uz|C_ 'w]/'xPF{K# 6AQ5+$2bL~yzU>'0qݘ3A=[/,W;sU3F?mx2akhĭi}0·d,%Lפ|2p)rcjy1;s K[%t fz ]؞mzJs?gu[@;H;;5*|pkOkD"1,L] GtJX/eay%&^v|nN&^GGrxYVt1V5~0L^8UL;> K5*|GړWqgs@"{3uS7vQW;YNG*~?N1xC4 8VDtuO&T܈{Ε, $E\ç(;R L\.Q~LWU[GPNL/N̟w~biZ{~Hi {t^ PQ\ɱX> !V@k<=qnS:]4/4ig ~*iu˨#?*rfgPK2;{IO}7N52 1%-CzW3sLg6;ҏ֥Ol6X '8!2n^Q#?I{"Lm?^%5Oa0) Q^j^4~5;0nR6|.8 }ffz/Uh bTǎ1"2ݶK^/]$9̥߬R_Nxe &064P, BD1L$ ]'IXT.UO#uD]ԭ}zrnZs&¸$]RſDsK}Miq?YQ#W+;8c'2$JK{&j[\GBOiͫC:\5 5IN by:P=v*J^YG"MqF:r^'m\i24_ta1/du+ c$%cψV-)=߇~qAHC"W1_QGJ-xH@Q6%NDMu*xu +]G~/HXt/jAt9s*-$$?&>[=(+WoSa\a~{C~DT[`D!@fs[d[Eg&y'xYmPٟ>iu BC/j{X̹C[Nj_yKscW9w͸>u^$Qs'zzWǃzWtFyQ*HIߚd *SQӁ$]c <gG+7l"8XoB) {0,S3#8AeR@{/8e5U"k0P nǹiL80ʻ! .Œ] 8xUo},!Wጉ*T;-7(bbZ$R`+GFn.0d uC(/ݣNeu<9"=cy:+9zrKVNny}{ǎ 'a{xA-8hԧQ7/?K;=@նpswUp_ wK{T_MA9)&_x EW fιw:$ȯ A 9p)=m#$NHw@fPrhw޺Rÿ~#/P3.2d&}FU =I0kTJ :!~a!4Cułiusk*;5C]Y*Dc-AA0ڐ熱$\-zq﹯ N+Xu`IǺ'}G܆"❜3d+X rTL."^E$.WόЫ#Z4%BM\<]HzW~]ڳo7i)ri( q\ <܈1#L]Eu/B)#GtݹЂ+4kf.S}|O{hkMp>X)&A$- ~Y?1d2zkM"k]M_v:̜oeE&;.>FOJUD}ޱe|=[xs(ZG(uE\6@>SȬ+qdQG5csOe!yشBC E?0P"Bɷg JLn->  +(G | O/n;&06*bX* B$! |^*7`\6:Oo_ۻ=]Q]t;d\w[T{r|>>o}FuHAY[Ra/sj3F߯?F|"H~zy:d4;s>ۡ O#4RE??/9/w AI&S2.BoGū~/FGV;ȖgjM̥^9mg)ŌDFٰ9vNwgu4sZ,X&gVq΍ VMAQkitCqhΡI2V_5AKi^dB\Kd B e-5o6 X;QFxeI ))h,OEq~-JEq9BN΄#-pSq6?sWC="Z\γSW>1H§>QQyIA!a9|$9qǾ\%3(ĠZ h'b*:*7[WO)Z*c2ݘ~H RBE',%-4̀ѱc*Z`[ hgIV ??TSżf<.HQ4۲$*ۻ5tfߛAB?RaO͏+P{4]x""_phw3 =="#j/UbHwvj ^#췎 %6~ 'ThE'F3Yx#oPi|f'mQq-Ŕ<73Hq[MÄ|a>"kPpO.RNE!-i|rZY^?$,zd نWE! B@&LAJS"yFF=:e (>Lpz_Kҩ|\+d%`9zm;6g""4; Fش͑hR:AnBM-(Y|BHPz?9!?*$Td-]EgI>>.i1 <^Ph{|$ lToҔ]8MCįGm\z945`UR t6WU;;\tc. zQsR_>S6+S0Q)@kKN ? /czvo,z)>eya2vN4,wYRY\rP[ecU(&|RnVE 7璄0A$?lfR5`D ЌM-d-\r#Df`~>9]>$ީ ˘]0'CQm_ :uZPMۿί6oh)KY =PW9ά8#;i>#;i3>29}{ +Z?OvyD4SK;.]g#x8.&g%?9zDT$K,ou1ĬM;@XDnפ ,ӎ2_U.5#>j+UӺg=mU^H6JWҢĪBM= UJ~)瞻ʨ\#XQWҰ"hdA2>7s,0*"Ea\zDx/ H!+[Q#q1rMj#+\]+.~fFQN8Gn`Hn|:êBG5 WS,Na\y(`y(W]F JblhHNR"SJS*UcM_:cg[bHԨZx:JPv҆W̕(NO3}r `n$^f-d![*Wl!n4j{[=JUA Z>PfFr(S+iR3pa)mw xM;vCu{Sz^>=5ǦH4={!6r'u?[fG"-Ƙ)v2vUVF@HXʧTpv~9'p[frr ѫ*cͷK^0u)F ۦ&h=%LHaWg8BH -tx z=HP"W^3*;ϣ.У*չ%-e06 BA$ AP$1 BA09)\I%""U[-jj˵ty}.g%^v/tG~ S4aZ^oߟhrpa #!٘!'__Y%3L4:Nu/۸Gi᾽6<Ѱ~!? 1X'5u/LR?>HC+O"P&@Pd !"_^'5/w.7r wwíoDžOaF{ зi )_+$\@dh2|p '{Dt a՚ww/5+ٻ% Xd:N7><J0~ϴ-eei>_/bvhҗȣ,v uAI&S;G.ՁlKEM:.5lJ𥉉(}ǽ@8 ׷K6|z۝ O疗дQa/C҅tf4 W[O- VXb=KUXRE4U-#r#vyYz㓩(rrr$ *(%CfqiE-esOAZX~$MX;ŦQr>%L8|(ZOO,8Tl3 $nexWS>x\V/E\I^D>g]$]̑\atdk*q SGG9YP>=wK`xӆo&E{wzZ0d;)g߽|&Je1Tw.޻ԘF:w/k]$~f;D +\QnZ&oV04 tU(Bj}30\|0A1T3kZ$\6d:1&B$k{Zi=Ȗ&o+WPg|/y }|0B~2gnzIId!rj\e$`c?Axp*8mu(O{Oa/EO9!F"{{Y&e![pD$tㄿΐP9 ໭@9-c[ѾkX؊J b7&|XNp1mgW#vѹ*UH0NMO8 tF S SmV!Sw)b Җ]Zz \3'IyB_} G29=%2ڮ6ԁ8(ާE W^5iX)[^u>^ W3/N'b! `+ }#ܿsɑr2-9f0ͦ'/2qXvEHipT1ԌaՈ`wRdZ$A.Yӻ81 O7K/w|t`,O0YWx`Y#EĀ w*:myKHiMT/+֐Y`oIL.(Ȣj?˂Tܫ$G.GP7huaݑD!Ռd{7r9Z\(sthh$a. gd>nR]מϠXti c-fż89Bc #`9vp:#\4ED?XP0-X(D] -Ɖ AmXmn2`н RۙAXz9ַ@=^ʘ's~-)yG]c@F^DdNl"T^˷Dգa2R| g3crQ[hym$D#U9(:7qԦHjx#gT$  ./Ƃcx U#̂bgq.B'z8=fн݊˝~@Ff㒒't^ Gsw6bD{̑=n=I&z4Ƕ}`jd>&h<7avPL';mQkQ ƷkUCU'T %kQ$tּHqeJZx&e)+Mo'ĩB#D_|*UR.1/~sFzE߳Hy;2?Qn FD{3ƴdu7kWgS $!ϩ!ٟ*&C'hE'b*@4s卟WkKĞ|Ə%# EkZJu bC>GmQIeHj$dBeˁ*U0 aY2 B E\ۉUIIZUVI~' [埿їIxwn.ҽ%FACј~|d\F̽܎-2faSw}. Ll] ]gZf^bǷ Afh*z )M. %6)D|A:I&S<)ѱ06yoÐ}A/4Ke{\&ʣ`ґfrp"0㘵X ^P>|EIpؚxKF ;u!X"zמ<,*D{+p 2Jb`@갦tlHYo[&fkbr;W(yr ?"cnWCZv"|SgQda> OUFiQG,]m" ou,XETyRMr=ؖ{\E. WogƲ,5VgFQ[/_HHQ{E|&ޑcH~YLo޾!ESk^KQn ۻmw!B`lԂh?:ah.=`WiA}_6Y֒Q6;=ݱy%  oP#VGb/+i1g[sTAp9SK{t PȲ5U`gif;N[v$x.Mq~cy-=i{9ʅ DsZj (]9y;b\*H@= ԔhMJt $RrIԭO {Hbr4G 7=SZ7ogN}UBK82Ֆ Ey(RIѫ\rگM(2_cG8:HeCH'RǙܠYog{h|[*Q3n$jw>N#q[ ^ 3XFa!)V8߆DR ~hیx -!YWWMF峬`FqB( skp𺺡_\yxAlM%p(qS+o@~%[+i˖Ms{+㯖u]}"D{5D4 9ڕ׌#٩sEvpD>3 C*fgLvj2r^;y#:uILޞI݇:e}v&>>6iBy5"-?0ԽVIt7>ÑTvdPkoR#5*i ~?IO{^ Z4b.hdT)k!JEYV!}#:,Mn @i,򗤄F:PO9SxK/"2uLu3h1GMzH4:!_*s̜rpړI.Za[̸M=D:Od,Y#] a9B1F R6rDu=Uatx Lv}X"+R4$߿%FQ٭TU(?Y*e][ҿMu9C.#+iI;I)y@\W|( ez䦱F~Tat߈,9m̅i:0%GmW-\WȞOY2nns܄XMґKsHyM:!*AګwyØXi*mVd5;r.؍Ē-cÈxu׳ԗAXnq[ìk@Y[֜Y|ɖY"E`FUH(?SA1ʶ <%*Z^3q9<[:Q%*y>})ЊfYMC-ZpuIз"L6g*sA9r0 b~[(oI*p"UJc[9I Mx_CȉR>VqdIg 4psyd;I6#WzKGN%Ӱ hs6hq=V|/YFM%V#޹J(LC8r1IvO mg<$67bM\+xb+&2 Y < {B(tS ycܤ>֋YDwA D{yjTYYAnU}7c{H5؛`r%&대uN7H_͓F-FJAm!V){Lm^dj,j#^ݳ.\5̚0uJ<wl:G2;LR_Fyf΍7 [}?W2]R!2d:xeHʵ86YEliP<:*N901/~sGΑ;z+" %FC:~Q{"$J3J5&[1J=Q{Wa o5SS)o5J+aaYVI{}/˽2r ׬(v^$B2/Vԩ+dR4w E*?w@&e֒gJQr~₢b +l_#tQdh9tk٫yPWy~[wP+4 jbT&TLS@T2}\a>M#iR,!b m@tNw@Fx0Օ_8(}M.Kc=,f>^ כ(nIyd{M9IдG/k1tE7c iptEpPT ;a8T=ߗc8,D1*U">ˁGE9Q4wjA%vUuOa5̸tI"'M3J)vf$ɓl0uck#<Fj1 v>=gsv"`x|6m+ ϟ0U0)ȕ]zNcCs;?>o.R$ p$gꋍ/E"d\Z8EZxŐ$ʏ=Ԗ aG0ϕF[Q* TKG4)ᥤ,}Z2ʥw# J#p?U %[ V&2}52$VxN,R)WVy)H)2/˂(.4O|+Z]ȃ}AZ0gEGSܔ3P|Pq/ZLI>]otLing~ljfz M/yy+V݊c;q~yߠocMAX~6cDm}aKtCYN)% Bn ObT.~'QղCksJgV/t? # J?MhMg ؛k(! Y sy#|"F'^zip/XUca ݇g&ӡ0ƚf$!׵,|Xr,[ 9pC8"_ <NqOA3 <f:røƙ>쀶]t%:ʷX"y;[^vLVC@24V*?a"+Rwo(}qު|8̿m|[z=~c0 9Yie8chx ox颟zAca(0?Z;nºZ/q)Rƻ/r:7d?d4>ٓ$L< 4/3;?ͅ<8?u3aC`A='T_Mw Ɛe<&u!q'R4U5/Kζ16ܶ0|C-84DX.+z n[v(ضkr7dLZ-eFEҒe*6j&*#Q*d?$DB&-]\nZ3q7 ܼqi(d̈Vߣy&[`Aodh["]ep\Fb^Jg FF,+$$2y& ujLT(O 7l9Z d9-}&$f7kR956ѧni;Bl8%ϲn*24'd= "=(u+~*0PBHZ.('s`7k_[-WmoKJVS܀S"y&R8W+}ڃ1kTUeG_h 1$v\CǝlܔKGo뢩_Y< *KBnՐ9YyNnOܮa UETdF IZ 6'W<YjC:- + Ubyw:#L{ܨ4 lX;R! \ 1lOCbXO@`H/ qe_./8*`ƚJ1͏K)Z/PK9r4T7-L v fpTKl-`/omt!.G'Qq=t/=ٵI]1:#¥̛D_Ϛ\30Y[Q1c/rA[HI7s)"M6//,l'N;N jDTXk@<{Ø՚PVfeZ`%T_}h! lm'rΫZ>k<(--8D&+ԗN ᣑesV hv-S`oVRdxWL4.PY~[m%xlt޸Zb5ͽ p#7Q5&`_Pd22GSҪw76,F!Uom0WmúaX 46 XSdE]3HeBuGWqF(:v'823F8 Lx4”oШ.{J^%ްzq=_w2oZ^A"Qۧ"]uǁOͣq>QRZ"yYEb&L#)f[ `H8uf*-ZC ?-t4.b (OsjVgt V`;XABhȷf)b=WW!5` SSY)HƝ}GY˥ANSFa[NF',к~Gm"LTdQa)*25?9;lihgb()tl!`{A YCy "_迫d57_T}w5@A5g#X^>]kiOfphA+$tn巇J}ǁןA)r՛+k2Xʱ bi gA=CL]ɢ>z HO&v,(&rg=1Yɪh4+EP/R5]+Dt?\&Xd =QS~4))F0Dv|+:]X}sj@%Ug>FA(Ր,b P AA$kݗ.FiTBJ(4?ׇ;}(^5ܾy+;G};Wzok{|?|&¥oY؟&p.s%^mRsWcfMunv[sZTGUf.uؠ%9N&D-+ A[I&Sᨙk+igqA~-+]!p3ri tg"wWeM@祅8p!jԻ6ȜA -'O9A=;?`3F$~S@ ->߸1*o119R졢%UEǃ4cHMHZUek3@7Z۟Q=EҮi> NeP>.G ; d7-9t~>N]lgThqѵ~d>4h7f3^q-f}ӝ7 5Ц9diA˔k  h=-JNm]M~u8sO6Ǵ9cQ%TAKan 8Bu1aʙvS:&^&eo ^ ȇt>8Tp[H!C5!wk2}dexä| }kYj:{5:rG̥T< YSDvѮ:ͤ8mIwaD n>ZV]S[ujTV0_C՗^B~.+Wo4.F[e]>|՛ DŒ@7Wv(AXdmOK/ z'LULJFpCJ?mɥcQA_=W;D- X<1TcG6M`t"OvyΉA6Rw-$-CAƀ޻UNQ5yfM1Q\v*J;xog+hݗ"xb\eU3^SׂUˌ+hSY#ͽ土& ?7k"{j[mVS G;8WWP4nTk k|gn40 Z{Ff -K뚚DR^M ,d-J9DO|롙I?Tnj཮P@dɤn9IJ/y"C5j+HǮ';sڥvԤyAi ]0b^[u-&XDɮJ73 $lƻ2XwЎ@@8wDRvW] /4tRtwEֲ.xFv_Q,JGk+ 892Uۣ  H2$NŤFSpl.v`<߾=;⺚>9+O%'##@{ٱR_V.WJ C3^b];nDZm=*]$r2ut{|xEd~uvk J1;e7:/VőO%?Swp:ǻaEԆ1؜vmYM)w6 ?*$5 ދ4h&} {mq՛q6S9P:3|npUeJJ[bR<" ;|CL]_6he&/|pM?^,p 3!X*e2i}8ov]z~A? Z%yb{,.^8aue*Į+Nɰ $ Da- ݀"E ;+$FgZUT;&cqIYLzpKdvטez$ NF›@ =ށ}YeDu^Ž6] sUJtj8i;VNc-VnYOONcuRhN‹AI?9zaN#:S^7nP 7 URu}zҢg0z=92C Coޯ69HɃAvJ~YhO}׬X{!kz=Uan-_P=pu s5d( vZ%ͯ hYiP<Da{1=wB y/ғiAKXܵǮMcZ?B7&c "&XL0pDI::#Tt>M'Ǒ6̗-\b>#X%${(j\uq[ȆZFfgC |Qmd-\;\Ö4M飪c@5 F0r |w%yLG.?,K$H#[Q(^d2SFve`ؗKt T)OUZߔ.:H25S *Ȟ%9>@ݹ ?cQ8FC(rG҄Ve/1YP_'zQS2)mR`6 mtPĜJtVR$,@Pl$ CD BA02z]"z:Nc6Q?~˺WǏ:_!ȷ!N{DW+ @&|A5g;aQ)t۹X$jbKnwmTҩ8?!4vP|,zP9TqRElL5jѮ_jC?J[έ\a , Vtٺz}p ' /.VL1zGq=^Tn.fL\W!rG / `]FMbh,SXNˈbno)y9/0Hyte(tm̅xX;Hgbj &bHlcjLAwp%E ezjr&o;zJ;oMGqg nR,/>9 <NjEO[Ô3XcTaohȸXV$'^sXd+DL$snmQ.oVǻbќ H3t6^ffVլq'S6xAm/v=+nar YiN\٤ƙDp*y0,ŨrKO=eȎ o1 >Gke CZ#’- zج-+\>ӆc?yvtDC݀wSQgf}:☔:1NNv\5/-5/GsjSyR㸚=?[u@0`)]S (P+}Ï*ᛶx໯Ž8ڪrqH 8 } >wguO{(`?@WEDEa`cxTqzWJ?tIq[fU!4s\m$b;F.{8A9[@2)$㈙Ӎ4nZBff-~kH1iR0%a׍ebGn \UɟV~ԗqhf)ʈəop j;ֱ6T`X@Ǡu$"gȿUe95 @}:tH@;"E~IQA%ȯFaXM.x?z6o<(C?_jىk$ʒw" k/g7bx  KZfFLY4LT%v(n&Ŭ n2x}L}YLxt@Znr<"@櫓<ԥʆP4Oh6,*sV-qR_sԼG| eVrj{6;A8uP4jB޵]=Hr'M]&;1խ0v^QYNf >-< BpfAH 5>-m _;0-$ 3YsT/@Q> edVzĚ4)1eX}c&:rWvsWXf-Q^=W廄~Zb~@\; AĠU̲x̴ O1\ǒ|/צN3N c^2L qpW}gn.c’݇v5տu@쉇e!Lf!mMgE8sGJj!$mx[n #lebH@iyenQ6{flu"rSaBbߍCq%'<@ej^8W҄74F | .#;Sfl5$woǡ>4q_̾V |cT6¨#x0d{rMGFzԞ(Un=ڥD,z-/!3ƺ+КmJX{t[fwFg~d5LR{HI6~߷<"~P3.x츼57mbu\`Yz2laVZ::,feQvIJ& nݟɽ(/SW  0)`$!Υקu* ༀ+PW"<`_sDo[c=qgXs%KEvr9LPE'<MSA*HY}/v+)DYH˅aoˋ;-i)M Ga`iѡ1y >ɇZ>ԺEy3hcArU=CL)Z[ -E;fw s ң}Y7^LR=Ÿ́t*y?r n~V vfn_a˼8\u ,Хr]0ǎ(1J%ʆlNאc9@6<[qF=RQ<=u/3,.1o@RtBPwzl0{6qb™y7#`[ p S<&!=v(wOAj zU8St`w3иՖ>! {Ǟ?i0V_\;؟ƑsWC79ԝUpWv#}s w*uu ڃI9Kߗ;)Z:di>](C>$+:r*TLu-QҲBi$H.J}' }]0;rN,."9oq Aa+=N;N4iޚ^f1$;pO| t1\cƏ%KA/@221y0!ةCa )N8,qU7Q Qt6CA~ (, @, B@P$!0DD B̒*וߝֲJBi5o>_my^Noʿֲ}OXm?e^2?/9$s9v;_%=B-{JG?0ZmJ4bW䰓'ux_W$ cҖ7˥(|ߙ?ȭvX>nl/a鋿=GAI&S(xw!2pҕ7 4I/)pJᦊ0ۋAFtQ 2:ջcy>|Pߗ+}.ݡ#p9Ԡc' ߞ @5[xob^)m1DSGo8?0O/Ƣ۾sѮRJEwVa\iXq=<#?֝ߤU%#OdۺeyC{ASxRd;8YsB\i4]|h+?:6rk~zkr{3c.ɐ Kx-NlS܊kcySگBۊJL·XcN _( *7;dI M.)D(,"TIi]lD UUwi{z!],`: {Xćܟ}EU*Yebjbv>x+F"J0:nI/`AUaiz9 !m6-~]~&d GZz]2''z$2eCyc;;pofW/[(3BEȆy rb9,d.%{'ĄH6kU9rhJ-'T1A02XBu mTNGn/v$w&ѽ865z-*U jEҰv^dΥJaL(vj5.i.C?zB"U'$мo6ə,ldR [L1^1g}= +H۝b2jFoS/jPuo?W)6*;.b/̖1#V~sIǡvp)LfB9%uD{f|=5y:^^ܮ-68I, u|rGǚdžS27ql2r/Si숢uNxq5yLo9W :^9M7IH+Li]8B%#< Q(ww h9>TI1@*2FBĺl7aI@nq)S÷v7֠qG?IGUy>ꕃ1m la[ =$%MQD_. }UڧS$w8 k 7Q?ܒ7E%+#ZD͈<, x1CBWǽ-k3srqi2fMiԊWT DKCB̘`3{ ؾ u\O.iBNנ/G| {ׁK#M$TB3+fҩ%/9CB5Ē*[ji} ޝboE'QcREql4Qqj,((~tO F qwR9 5?7:ف[oOy|Yf=mPͪ$(~8gfWll឴3B\c omiJҔ~HmYOsvZJ nd$.dRt|1qb57Yr츳&z&El3"mrKYd$Vv)K`g]<ʰ/<9* ЉSWȵ"\>@ܒ><9äC $(GsuY Lw~h̀qG[0YJVHkgϙ)h:w.Ӊ~.bK8A~TE>6qۮEpktҼE$Mmp4Hg\C0A@fT;ޚgكU`wroE]>@8]5}؞)%vngE 0:- [s pl@[?ր#86 *gw L0"YO)_)`:_S$ԗt;c@" ='*uCSL?nիmRe3ϱ2X-L֪O ݃F0? ­ x4xk0MJDk'/rCo7qiDْ.;ۢ1}iζͱj7tAd_ΕZ31?8+ά8}?GBrq(Ry)zx  „!WH}i8 7|X.;ݠ/WHuT Y'^:U뫻k8ٟ # ;:&8(PSksΔ'δٻ<+HM׃[W? *dm>rgmRDA~P23Ȣ@+ ,edRjҟU)$&P~,,`)&f2^uզ*4hKAyLX%Y|BzoȎlyۉorƞjZ_tg﯆j!?WX(yҹiOMC|_Y{^C|H[=$fM,Y=%OV[TvB,&]`A}$WiS>'Lod {}P6?qXl.ZS@6NpO3]|-JPcr 5_VnjX|7"ɒ6c0FeSlNtwyu{ |*=gAv ӗUBX<ƨ~4Z8kMi 83nY~K'6lxfq2'S7vWQwaR;JJ]q1,vph釞 Z$@ːҴW9?x[X.Vdֹ4*`=1VYbǵ*޲Q]h"f *sq+n .[n[g펂FnfnYB/׵̄"rH{#.dNOv<&95'zw2ƚ XYb35_~[,Go#[-9Şb`%)? iVJMlnCЄCɦs釻yKe$Bj݉NZ Qqn1q_gvt|N}ńoj+=fT,㙣7>C:Xp_Qi xTRl<ϓbޡĆcPgV(, @ A0P*"P_;.CJTA+R2&'UW ݲtXAI&S &L,f)eKq^c<&ؐTq뢇˂sL*#M,о$I*9,G+U+?>D,8U, PH -0<$$*RTJzxr+菏Ͽ' JO>/!޿vx ?zamHRR.j:\=I*!028pGTΔcM!7/Cja5mmm +O$'E8*MeB ~ܴ*n|#*)d]V_v>EݔF>ν]YY&ʯT񢜦L^ 6Qb-5PhZ ڊVs[נh=@E nw3\+=rTEէBL[B$/ЫN¸1<,=7jjgQ̂䬩09=EwAI&S*U@db'&X=zJ w5Ecu/Zƀ IuinڱB4+f({("&|qɏ@[ =V Y05Ҵƒ#M?98OAᓣAL'1\g~k'DWP5SaBzmn{*Ge^7& Xlk+*Nl<1ޑdzH>=7TA988?DrρܶAvі}K۴}Ntt`xwhn{Bѫ#+I^ 10jʣC+QsLp}0z S͜i:H6ێ&MG8"҆z6'xFO}:llR#As2TtLР`9Θk@.s@~?+-f}gE%~?Q'el벌etvg pҤ2-+_M *T #/-Kolt6{ Er'<8WB pt/BH6 Ս@OR>L^HsN"^ljzȏ^e7 VPLyuͩXn %75$/[/xZI1ו HRnKQ4':O!͡)naHIF:_P<+!iߛwo<K4_/Ë zk|s*9A & A U^k{aI1( tx86.i}`mʼ[?=BV0 cw~v'b4w v62"/sQ5lz:rI7Wf7h4-(.bݱalȼz  _o*&"ƿB;sʟZDQ7_U4UD`Oɾ->|5Pܹ2ӜGvߓ4N]C7MnY^o]dwyEUyoOn43b"l| #=+Aٙ ^1 |'ZZc&Sm8ͪqs:P4}(m> I|.QAo (BJG"Tn/Do0f\ [@"HT PI S<ЈB,hb:a҃]8Pq]=+}2]vlE!} Vă\I6CP\Aps1,?( [#;dqf_b ï&H^>v313ǺX \;_/&\&E#ۿPhasHaLٞUǨɞfw$R |"X ys1 `؄/3m:6P DH&O炘BeS" eCYt?X&X-lk7P *2speOP*reUՌSW9W<7X`Nq\X`&G{JRuߙ驘%' r)0ȓZn42aɪF<$ћͱ1I:X@ n -q\CQ!!O+ÿB{_Yk_FU ijPb4 O bHxgLC('QjCtZNMM8k(ʳBm "y6c{v_н8۶@OT}V ^:3Մ2}Ghm!`w*7k:ALN*sV *\ ]dլDV,;=g%1q`JZc\iI)Jyr}+)`/ PeOLP]_K=cќw~3!žtQ(TFٸ"K%)jV'(Fپ,/R웬#vb}REtD ťd15۔F?8`>*!:rQ^{,#ׇ`eDmJ os u==,fyƕ  6ܩcԆ*׵$v~۠fQU1 ɇn'@!7> `$-ݡO8t Z%'{U Yy<6$u̞`?$vOB ,rלкGi '4ő$ߗX6"Jv_4Zu2<506ϳy˄㡦)<|qإ<5bK@kۜkW=T0';wXw?.٢qIxӴ)eBo˲l限Ot $2"بDzUf6@L )js!u {ΚO7>ۤY~X)[O E* U>5:KTb6`!y lq 9YKfP%ڪ% ZT|[W(IsV\n)\[إ\w't˩swX1H.uJn =%a?rF]+TP0XsUr4d#_-2sf'=$[GfAmr"O|]4."$;׵> 3Sv|bIB.xjǹ,I.W:1!ع4%# k6YM`:aKBOEJ, ByYG ȋSMw1}onD) [R^a/:g)]Ŗۆé7(Y kK⬀Y+UZ=Txʫ6Y1.gfHuռ'+w/~w7=Ph{O:d n]➐iE81k.!xD:v1 fwUx3gM0`c]P` '>%L{BUxM>@uC-ë0,? GAW/VAuX4@r.񇾨B ][6d kNڴVʼnK*{2~ji[=ürY9~RiQS_e #ʀp.<_a7e.:e "őU[/GpRJx?X@,\4KTľu [ao!5z3W'Q\s##AJ଼.7jĞDC/qCyp$2? H6f)ț,1,ͰJ`ފd?ˡ*ջ1#\:\Vz(GCO˂#ԽkD/BJ}ƂCy[(6*R]W4OT/揖ƦdѲ,Rs[튏@SxVhDDq^EN܅KWM5#CjJhtT2xַZHg[<3qCZ4%5Xv ("rn0ר7RD|62^!~A8#_mI az"$Rhܖ]LAXAowCט jqH]AI&Sv\^Phpء_TpC@Ə6NK}nH0R3  #:Nä &-' TL!(6%T`#l-mm5tCOdOS)4кg+L-ycHDxO4lz;\܆*.0kLzŨ܊c:[@=H[7+2FI"c#@|K$%wjkD;+_CVeM;:*?V`TFx/m9pqoΓrPV8WIIܪU/(Ր0F bX(& !D$3Ur*Uarsv/:D~K5w=5\hn}6}dwD$S9q>Xy+ExhO+/~YY=9Y-#X}[P"kȁcipZT%GvtV_p AI&S5w'jU8_\X[ MU%T]3s͏`g÷ $ݚʿiKa/R~ ~j]#]6`lZLK-˱3`Q2Ym%R3=}F͢g{5Բ]pY'qJ،eboP,a=&U5J;<{>O e|hDKbSJDϿe.a2)hbTUD5,ծxU\UR p8>tq:r-ٖma 4oS)Y1ҭVSxr&_f L3^\wj7vl҉fQa%˕X*:/y-[f{m$TLx{DJDx$ٕ8&ȿ$BgTP$fTqn Г\gCu.ţ>eEB~ځ[ ZCjriUnV,80RMajlbݤXnqÜuGΧCb"2.4WuXgSжi6 s%}K#<4#ׂL'O2\[ qB~8ZZs9` ތ̃03Av<4 ɷ7A2j0 >/t AXmg{Gr]~OP/~kEEu"thO?-/^Ǐ֪G|[y;玾&ɶeT9]AHD;Aؓ&VV&.\8eߔQb1wsvw(Z~|.ER铂LՑ}Bo9TjNt:bSl յH,^b얉#R~-]6z<FF@dZ/^5,y7sx&sʨӔWaGk՚Lwo|BR=PQ|2:GupAvDpu9?ǨeҊKbdVm uJ-1j J=~`/JzmU$^;ŠV D㐯GDދTQ)A9%sT=|xdE {i6*CvhP~CA?[>%s]Y@* mߥ?n@vqu7 tkv1Үn!!|λ}CEUޜ٦3%{ E|t!rt86m mkM`T9az. y&}=5RY^mLIG0L /8;#O,]E vKwpֈW`f/bΡIq*/YyBwSP:/#fvBh88RT2&WZzplxކ^'=N|Vx2V+$*p0煉n=؊Xo!p)r K( 7TD3{F>;/腩AZSCW\o=gXu`1{D Ixuz-mّ@Z@æ֗o(7֨ةl$.F8!=:tz`@u{wmgF+>P48X;+gk|C*8%pw#밼B|+lNeeDlRtpx@=8 c3@p(v'$nzC7=:jz=m XkM)b*EeB,Lljk~FVG@XD%Lґ%{K~~xVmz hϪ !>k`Y YZ5:foj%Gm“`: G>+F++QPSq 9c'i?*Bɻ"cFCzz'LbC@L&X+ocѝゥJxn )<GmBPWw.fO TBRߌ 4x@&箋Ws[awuSk,;†Q+Y@lW$XQq|Uf$w=L/08IӢz{%c25&|ʵk n ͻŕē^LD~B42>tDi Hr,yfg昉X?hi—}ZhTzpPH"v;jdPN#w"L@o4pbϛ0)ɔ3Mh^(;+qtmvOn_`pbkMEzy&oM˶e4?}a7[%}H PbXinN}qguBw|:z W#h+EM/_ A"I&S2DvI&wbX l_9K(ށK6=Ix^}?\.DŽo4oI&7ʴٜ1to*^p񱤤szwJruWyGТ[ T1LS^grv`Õ<ϱ#`E@uGGk3r]'TuxçYNCNMsX3 uyO\9%N$TQ).3'gDZ 6b8c^&}ieܛD7Bs̽h^ncN?Y?**NT<#X"ҕп&bQi}Q_REڡDoDisތ3}Mwhhh߈}e>ڥO4\VqpW1aΉ͓3GH~Z9͞lz>ƣzb=Vd4cWоhnvMFː}~/"KH[B ;i,`/I*nw{ /:ʂ=;CexUp=U{^\R]Pp2,A|!BQ(󒼱U'PIқXZRpVTmgT9'Zk&E92mX.ܦo/V>_2pN#ȺrU2C$z܀Җ̈́X(ۜ*o.7iէ'GD)nVX4bb˜jſv0d;ns2˴q6<̶^ k0kA]_Sc2Y@(Kl9ɣd}GP1Z:x{Ngl$sp2fT@=֚vRKg7mF|=Fz^ goLݤPq˒+0>ism% ģ쩫\ˍ RQ1ŦB'&w|an(!L1i_Hf䳗PĭS!*ׁ'e7|O 7Iny>&o0 u|A?mpջm&Q|5$ uoWTbƴZHǂȺXTVbNܜ+cp3z aґi]!*P;`)䱎 5F`^։ؔ=p&AIr+m qf> SuZ ܜQJ6jY c-W`kc%M3?Ib@$ǔ7H**w~H?xcAko|-"fqdKEq7!. fBQ[ 8^Y4KZE})qwCnҼZ6̊#c_A%FH@P~ dhQ87zwBX}fތ<:GH;}@z,R.!)Kv0#-- T&3`Iəb3}b:NF}:?¯bQanS%iUn8 Q)ɼ84`Oiw;8B/z*ЬNcfEN0A PӤ}2z啱9%>N݌(o9ڦF騭՞ XrF;oo<%wݎnO; :vE|9&&l11)\cLE;{uY*TN:4vz_ wUAj]X 8ߵ١Gg.\g`AޭX+~BrH@vEJނe8}l2` Om\~vK݄giZtnp@?`C/#,\60_Xp1CAknEt^-KMx)fM[nHpy`!\٥@2khq iuV =o O!쵏SR֖hHkMe:=Tr%h d  Mdbdr,!\jaÙDUi`\}0 !^~!$Uƕ„`,@lpMe'*4 0wnS* .ͳ ?ߊEOp\?^!ѧrٷx"|`D iV`.;niU*`.:-)AK{lL\9bӐBxްטg԰ìLd"!DgbP ;\&lȻC?ZLx3f+@;V|D0GE1L;Zkv$(fo(r(:X?@ &`A&ls]K([#1X)1K皚b <4s 6^RӰE-{^s3 rS9<$,QPLID&1IRʫW U[2ov~vh?>tgXG @_8_w>hsӟ^Tw;]&~vVhLs~KNQ'xO1UwEs6VOZd lA_i~'*ny&,( @PL!BID& u//:kιi]^I^FM?ŗ峉yvw6VľZV_7XXU?pQ$Sr/O񆞏k7}}m ߗ.}~җ(4La1?Tas&sm$1C=toZ$5Qq ACI&S崷9 QZ?SSR" fd,C;sϬDBWZ6qb9C{>O&ÀUw ~J&pfϸI1'خ YPPT&GcRwK'yIphiڴpHJ Z ?RѢ.< ݪ*O~U,K-TWs;6t M*¡J"9d(9>ToV[QJP3;o⦠)~~9|#%S^0ceb Uj-?MQ#Rj{ڠmͽ[OsSM]846B^œ+3k߸e رFIc]q|cOnfWL.^-ޤXP$YHl9_OiUdPrpmCDŽe'5:|p^x4[.u\:g[M*VzNr_ߋv`2vXwiζ \35TfҜxkGe / ! p+QeT>֢P|:[(sƲ 1ah${8,BJ|Qa@NkVvШLM Lr+K$V&SV?}qs䙕1/MuͿog>Pnُ5usR&ܻJKiwsE,j$ÚfQJ7.5nQ:y.}ݞ*Q& ^D)D.?2>ݜP+|QX dXN9e3៫{-b@fI3ɇPaw?J-2),gzhCf1[:9x #}F'v/N/<t|"Uq^,¾"5qW=bzqZQ|5 0r )@GwSDcZ{rgx҆ !)3~ە!!w½6Tb#|:aT2(P/+#l L 5:N/!|q/"Sq.ĥ4mfȗl ,^0~~FDjOM')kYN41 ww }ҞP`?i~qTb̋ cxL f2}r8AUGqJQz^ |W:zѠ~Rj&fi(TZԣMV=-o(dL-v -VE "*jdсh@ =YZZƋȘ-\B`>jf:כ8߫|\h`T8M\x`V[/?3 {rIj$m܇NaZʐJ39`5B̜!pz䖗$0&JBAP$s! f8]\pTUCG?g+G}^;o?}m:=w뎯eS1- 7(N+pL㛨DAZ. 7@AaRyL~li幚^%BQ& AdI&Sؠ҈NB/HHl`56)2 !BUıop*s xΏ$Yهom%PGZWoWՑa)߱v{@Vz32iuȞ~AgaE^Lq6ӛuH.l]]La-c h~5p&sfTE(_JX ](Oi]ѡh p~7/! 4-b y8$UTs:Xon)jԝ]"!Z422c40Hr#ϊ̢n3/[,ômymvדİ}ҷIS3e/v9qKYpC1MI,?6+pWw_X_WzT͇MP"u]Q؋1L2y=FUc' Qox 5#媏?3[c}G-N^p MYv>eߏx(y W̼iU0 p탲ԯ H}I\Iݱ3$ڛX&= B~˪ct7-Q(^/WZ73؟fJ? mEj[Cc;'=E)TʼnW[y!ϞiXXIezal4ֱZbk!s@|k-(<'ֶkS?JN=E;[ܖns7] b891;o1!&nY3r >ӀU0zq2TeZ ܚ`{W4yױVmOLQDo( gg}l}6Vjose؈,Bн7:Z+JB)ɬx᣹䳞b-y!~]<5\._h/! w]=@~8 т0k[,KCȡHf$I~@|2F_O&WY}#3~;KlњOC!Ey:?|{8Vz_PF8)ES'V? Uj.9TO ]tФ;T"#mnR3lk Fs9uPӝCY](~+fmffڕd˩Kv@q41`{lc/ty~!hM۶ BZ ae9B#./OtKXudLt'GYblI~%De+,j0u=ʡ]CI*6ImF?5L,Heڧr$s@V˃ةR{LP)ѽl!ŮiG_k_JB&FKXh.dDuVUx:խUg9O[C*=OEcLؘ\eFT0@,J.TBJ;L8sC;?p AI&S[$lA3JF_kJ]FJeɌ0(Kk5ISXtɗӥ ϗ$_̓C>ymq2%ߏO R_Ib@ۃ=2E' Gv;I0681f |8 '$_CuL-GABڪHk}.53@~$}cR)&3-u29cˀ8[\uւTپXPv.+6mt72ӣK_3?(/^dT{>'cͼ7"$a^*^p2ufӖ^,uӪsߩ^wb>}_SxdggN"+C%uq%U$:j@c:G 4t ('S׫ͧ2QWEFm#~]5&uPg2ɩQ=~n{?5ԛ$ -|I +XZ~FF.Ҥ^ 5W \7Xg%Bھ)ki&lbtjG9J ة2`\bXuAEܐ9r*r1NkFkhF_:5?N axMR[TZ H:|79Bz@_fHΒέBN Q}2c\ |`̛#V6El39w#퇣L!3EO;pP{_WPI@V~*%~j[a ֻm"2EOJ [4 6KRN8%}3E_~ )e"ܮ3b7Hpt&8EA.b~WزE"E "ʖd)6{4O^J;9U|N@*㡕+t'rz9跱Dzv{ay>ժN?ef7 Q|H˙7>C%5 k%'CγY!ӸEY{L#iV'еLuyU z8I&CIK)8fE9><)Ÿ@rM,j}(osxfxWX Qٝ9 ("+[jm !vqEpfưsROrGs qBot7QK~zUWS?ք,T&,ڌʚLkjlĨc G{ˇ #Yne7rlۜ2Ha#IFxС&ɲdqQp/ NZ\bI<XRă@9^8lRh?aKzOU48VD}#rm(̥)j. A6\ c?累ʪM4uW5Ҡx U-ydlt{&mIj{$;>g8CXYb:M:]uui1AS-l` ž|=yȡ- 7RS!yx(Cf^pw÷i26\#O_ {k[GVSf|!`^MP eZ؂,:JR"߳%&΄3(P'؃ NG<5CD]8oh!XţOW5~yɮ $7;7P2~@%m,Hv H Ɣ-R)ۜXȆA#C=$,A:pÏR_@3BC.gw-*Ţ ~"&VփKQ%3Zѭzo>y-g1 sԭD6ZT*xgeR~$r_Sɕtn%}ޤ)W:nNoR כu1w#ү& vsRCvFʕC!p"8uKG ]Gy*6p:{/ʚ ) Uiy5 z4dY69JCxiԬ'lPb@lŪ50 ޙ5t[*G3o3R/0b!uU:"}+W=K=qllA ?.'!hF8tŵ^;:F:a&7U+}iH"#2+]ҝQ6Ѹtm*Ak.}: pXRq JUz!!W;~`|%a[JX+7H1H.EװTOhbIa@&)2 .q~+s2gv{ ;r: "bЙdk?P~^kL]nfkȯ,=ä:1_}1islDA`!Xs, !$,(1 D@D!1B+S-xTQIcPgwD/wXʾ ;{N˘~444g}?=?A>Lٻf~jz!įoCPh66^[I`.}3窒&, @,5 B H( $ H"Zk1mw2qVYM45|YOPܻLS bOl_]A ? ]?c]P@z>K[OoNr?Qx2 ̌Q:BR,vZH44A='6"vO`!Bx"{?H3@;v4dȌ w&xԍ6áMRKgXs̓5y(}HDqi.>*CAj~'١:\>2ҿs#fE=t;nH(Pޖ5켇6j/`HUa9Myc&%@0T=“kH8zw5ͨT #~9 B,Cd^0~/G26qq p5>q;'dž >RFv6;A\&aU3r)| 5wi+nM8ྱ ֓5DWIybp&FtySGd X1~-)p` sl45"XݜSY/^DK!;i"Ukd L y/WXe5~I(3N!^uR;xH':*EHJ:;| %ci%e0'%J#Ռ>oSKςZhql!֪. G, V1e#f~&aO%&zw5Z K"t]0ّf^kM:t?7$-D'lJnɽ:RaqTq#g7%:wR>E6 e^+$%GzH%DM&? ~wyyh̹ O&]\\x\󒣧j|JMM*(|{_L>v&_I-1wd#Dz:KW.*ʸ%xPoݮdrɯP:@+܊JtkKjJ># $ȩW^40vYY=OiJ\bvފ>ct2 is|7= (*$ 4sta-*.EDVj6n@^iP ǾVzoNA >MRx0L5>~DUYCNr7( L?{44⼹,-ɢli$1Z E&!;~S0E?ZfA҅%BTDs:j\I,ܭycw.ޟ8hG=ϩ%ĘVxj⸒~ژCC H(Mg!/A:M̍r~"'E9 *p AxHK}: "ivA5oPN>Y&\e VA0fC&bT<0L 6lw$FljzZltE7mj*p8SUvTW5mR@ه0*Ki42f_ {^/R}=7Oc Mg dma\U[]^@'-?3БQﻑB2L 3ko7 <*E1_k:ns^C`;SG{>K1ZdIyUh2]>(1;d50"ɃVUί ET4ΟX;@Ҡ[)T3ƈce+PpJ?N 5RX-xhO1\ZO|IZa[ZlU:^$nx_}@Es@BbI*0W]:OGkVt3enIYD ʛC—}1Dk6M\Cp'}:Ȑ L3֐ </m)t𡈥YފU@0dw(%l$0Xml//n+KC[W Ŝv_w_NzY8T%]HgwWt.߃bJ7/ط0~=1<|dgA⨖2A:S0'wT-F8>a(Gɽj@awl Wj]T\g^>,+ N],-9nomZjNܫUP̶ >)X@EtS5eR]7;~,{ w+]d`,KY%Û\_OjhRGAcH#'mr١,6,fe$Xp6jp(a+34r~/(e8otcK Ϧkڔţ߬MIbֺFB@f Mo-µ|HL7TJw/^&Mt_,xlZbX{R3uŸEIcӃQ*"~@=eo)Ⱥ$N/ӦWO]yvw9]2V2MZsR׃Kيq허5 :0%ػΨX]1iW;|dԀf/c(+=>2.ٕRer{2ЙV̀ۦD_[)pa~7@Čؾn(GufLҁiU[ףa>Kl̀Du?4.{d:wb2N/_ɞlU2FԌ1~Jɐ7IS;qH DX St Z 3FBm<3M*U^\Ny=P>R7՗MȘq<+;G9ʀ{ Mݷl~Y!WJC{t2?onj.x ooԬǙxE(8L[vMVL_y=2Wizj'DsAeX^o':qÖYh@*_~9f=p"Sk ËϬƺ^L:?螻Ў]<\Dz=:]*hr/!}pB?ا8;rlwXmgq?hа{_RC3V*4Z4h|bECxE#M]pvj'1y ϙL$0'R%"jqg*_^v"f`x%/i&)똰z SR{+~fȤl8nlJ.'" 6]K:1*yoS =(|T=͉! Hʎ3r(1HsxA,sQtu"2&r"s^[H rY WwϠ1Њ]{c6Ɇwhbr`HI*wQHo!Rk\*>O43Ǝ蜴߭-sJˡ7{xgc8L3xk_۫ 7Nma vsf#zqԇg7QI dfdD']TVLf8xr'guOBW&a.lq0g:^ a7@6fV;M1kʇ.{j!8–$ `:L!)t.-29=aL&Hv!,jkZ-^{Ƴ8yO`Gc&Th|% V~*rj"@XQX J-S~fD?=!X#C:EN*|B[3(1k )Э ña;u&,Et,"0& `XB H("(B4ij}{̺ZʭeW8ί5ýuwl|Yzv)o]196{ߗrޝj74edm^?ۜ}s9˟R4[9 S RM[xVuw6j- >",)mD `8&,( @PC@$1! Dʵ$f]s9뾇@?o5<,/kj/h=.Q?\2w~߯?}#$ϒ>K;.ܠL[hd!ěFI,JLd)ї$:ĝy?)﷢Op>߸jCY4lktI{|-U2LrNWt~4~tQ:KT6vT0jM`O"=2( 6y#jxxXsF>L7йD&T!i&X`ӈݹ@b0[GBJKf61_Z'$y㖹8YuX S{OY60?'O~vlry& |}ȳ` >nts 678'u*udeJj1Ku %8R!<) L95933"ylAtO ~oFI>@JtYȇުk:g.M|Es_ڹH^x,'E΍x2j(< Q{!!-݃0Rb~ĵ0(z۶3ÇY?|]8<I ss g~|ʞ(`#adpH .w]v D5:|A]p=n8n˔8g1 6/jT6"8u}rR-KCdf0𯔇YO:byV2m*; VdGbс*yE5\X8ѓ.rߔmBprZ;(;Ӑ\ 夹#E%MK4u\F \wku<:.{i}<G!Bp5x_jw %!MM`؂uو崊}UԦ&=r-q`Y np1~VHJlϡt"sܛ`ޚ~f3Pi~1ͬL gphRrpjFPuJ1v-U&e6]!ҫ.LuK =|>ħ/gq O BF|[Q.KXؑI! _%5LO>w|#vqRt FMJ*o@ "8 ?75sOlJQE5N01 3U_L3IWĸ!̷&=b4/PΙiT!e$:D`|u:ru`aX]  )@71b3Y2ӆ*tou8ւ-ecu3_Ri:-܁· DN `i1Z6=YkWwRO/"GFja+dw^ ` ~yi3=܏Nd7~!TpbBD+dMl+( kl@¨j~O|fS@^ $0gڃb;H.`^;@x(Z&T&xh@8C>޺R/$(iݧ;zD7x%d`QÏ &ed!:_p|y!ߕFD%XMDܪGvA9&YRK!9^ϑ!+9o)\nHeְKDz4te@Ϗ8ԿN oC*p`H(" !!DW\^]ZSC*ZBNw*oB{IY'wjt u  J՞_Mq ܀6k{=r5$oM:W3\2xل.Q( T^s^mz'X{DY AI&S G%f}SBvkұ~u#;g5\J'"6-,"VU>GעA)2Y!x>˻)߭,o3']6艆ܑD[E&lyuu u8i5JĦšacCR4xtY|)Ϩ5P%&q.|7?#']ϧ 3G@U?~qR-L@ڐ C.ɺaFt?{Oo6VFl:#z`ï],[nz$晅9w#i%rY$:t%;;yqfQzT}tg! ,ciH{TL3魱uwE+^ n=;/;cص2jO\0EwJƯ;-B'xs-ܦVr53<ɲ꒦ݏop&{(Ic_d?,;jfCŽɗWe*ׯ\F:Ĕ* OK+gYbpThi?8_I2\_>>}P~Sbjfڟ=9L:UqfWh ؂IHB*CN\̷ZOZDYI].C73d\~Rʕ3:Ffi*krWC恝mS/] OOMUB \PXI*e#~@!(uv΁+}]纋* `Y@PidTB9$]XZ=4P؀OnUW/X5)!k>ҤUJηnp1^W<)|:$ JjE`~OxC/:yu֒ π8r {}] XP*nBX\-3IϝMG yi IϣsMU,x\ \qARb>PF:&; uxWFOҦ쪥q](:P1&KmsgӳkyQ9\%aajM>?𫋄iZjos`K|=!E˻E/2{F͇:\%G&eO{~=k!ם'%©9/#lK,>wwcKT̎RXih"D:77c_pt#%c?ago#5CVWMjzdIFHrGHrQ *U3RdDh݇=L֙'S5#!:b&5;\J.dPv{/6uHܾ)VyG!Pvl: 7zU8|VMz'RrkUDe2[ՍcUuyB1=ztw5V0A&1d˻}+n#ڟ , KQ !S!;xWcXx,94D\Cj=ʂ lT,ѕV`b%^41-ӼUm#8L 2Q_\O!aV\Lj~!TtCiUYBdsA[p龔u q=KF=]AD))p,l G'M|M'z-DMd+m{Ey撙(Y#kwu1sѴO~ѿ,aM !X=wTH:&ݯqK7-)1.qaX5oL҉H㵌SZ˭(|rUݭ`!#V 9 KJ~ /1/0͓ŗ&dGE~JP.Zb9r=vX=SxzX'^gt&LCbPm^F$b.hd+|\NIwBW &zKoU-UOQ8{>8yq^ҟǮ[E]NzMdKIٸVy;QAWuY N:< {)ڣѢ?"4srD,-FaDaq~<K ;tS7 P°ܮҎ׎-%Mj]bmLb)r篖iS#"Lfi'J62<Ḋ+fnjBJ|,h %s vY*{"['nrq dxpA8M~fo?T(w.~/ڎB+f;+HdJTE/^ }!!0֓q6/#mBfl$r3@aURJgV3(.,( pBa!HB"0Y8qUTwg){p>˯=?yњS<{B3 ?˯u:40F@muy&?{leb6|@-^tFק_>;\.7\wy2"ֹJ3s}Y$ERi3! ][8JRJ+$,( b!(!HqkY*Vm붪Daǎ=_O}OOylnw gkSbg?"ݰVP_Ӳi5ߣߝYϏtw,wu֟h| ͌ݭ?ƤOѓƖռKG1LR?vODgF0;pBA I&SތY[a`rsѵm<>3< t~IFCﱚj1.ׯcO jkm-E+j%FiJxb W yfi}<1nE=^LNQBo,]4O&1(S:K|- ]mF^gz]1(@杓ݔa|*3F @̪ 6,_5(1 wl*7pB[zJ#pro܄(8}z=ny 'guUexo4nųSL?=^B$g$"L^l6T˔E`0pȨyFCS!Xַa1=PPtWO JgU#=3剭%?jp+f~d!vtrlH8⻖z籹u~#Z3«U\~FBB< Mٽ9G>^=Hũ"l 쨒(' ޿P_eF9q76RBڢ7)j=` 6^Ә":sB=4 @\">0Cб}6CPxݔn`!f*Fy(Z#4iS?㛁y{adXO,=T*2HY?ԽO˶T6#n,X::>`!me@}I>eq>:%7kswg eqiжZOq~Tƹh&>(6h(=\$ʹ:rbx{ɅI, >&L^_sL6Bd еr*\(- /A3j(__>aӍ'/U/ Nr}L0q+ǠLíg[?1 :?_70t4ӗ+3G <z31*P<)k|3N[K^wC])1-YdQhzΝ;[@vǷR unYld>ꥅ1@}%_ǦާEUjBm4(Nqݖk#U, `, ܭU؃/ih#y/~?fb]U5Fo$C p%Wͣ\IND!SS+)vLcr jm& ESJ|p}o:! <_KwPK[`RZ|L Q.( QUEű~XZu(wr\}-0'o@+u^}e +9W֩<< 5(%ΜbF*Ÿ>@!CjR6 U6ƻkbl6B)= QRiה@+69$F,tOuBbɬ-CՃ›|*_R\xޗp`S H@Z$Htۛ0-]^6Z H_4a\50I@Ef]eL@(ZkYϿOjGu\&ūL,`q-m W.Js~~ EٽJlZ|; eELMT kJ.pճi߇#l~0 Þ:rxPc:c)$H+w*^07+y|j`gTKnJq,{/wU© Z_a oR:J+7g҃.y34p p t1۬DXLVk$09q5*c-mo|f4ᕌ EQ]v$Vf1IޡUsmQ~hat&e5%ٻtF&̱%jŐOG7\BVc'I<EF)Kzk+m9KK@| *dP`cMAr 75#XfHGxW~6OpkeJdlTQVlabaśSL!Ff#@tx=)Êfiw1~)SG@x5|00{[K*.ⲼZܬL8-,zufq服|u+Lz%Dx;mxl3AV1a]J.|*vC'6N*e4`g͛1h N p@ق$,( @L DAH" VUIye#Xt3_71ׯ9{SűTt]A90WɁxӏO|/ moۢ_BGbžyK_) =?~Z5X27Y%~f>2Tb9G#7A,I&S<-j_އ;.%=H 4̂D+Vka^' 52<6VA-0>y=Ӭa#~/>gH̅kPԷԉͣ&Ix1s\=LFC]ǽ\V%]}k?B6kHv"y̟͛4b&(}uJ.K'fa0 A*i5yR; 拭~hYR2S^ u4w&po淮 +xe?UH"o yCiz ƬiWL~0A>`I &6o WQTe &c!͈O"JƗ.װlIv A#hku_pI+6+iYp>qdBm&szijwhuD[doq(=hޑ"ffo+޹5 ba lL-`X453#,ӎMَ܁?\tz#[?9-罪hLh=(JQ@d.ިK^X)W?@{(No0V )gMΒOsi<T Xf6)Ռm]3AZ8*^BZYnח2^ y{=oct۲:0WV-r@wx G2y-Q"-Ta:5c[VG|:vO)'7-A(v1XM0عvygerzUQc❪xzl#f̹H=g8g7{/<`2)^vV^~*%7-iӉiZvQ|DBmP-qc} ύ :8mN߶ G> ( ; L3 El%HM-;m4sWo;H5yh +˪auI!ݿ62[@OP_$fX9""Iƫ}Ȳ#̟h`e,dFw ϶"[% h7xLמO;==%Woot,Dc .wKE=fcpG~RWh MbsU^cetIp=?fgHC#B{Hi+b&epWbB[:>( o͑(u'ϛX^0N B@=$ɬ e;{גS.Z;W3x >p5d᭴ ܐPo'H@&RV e޻z`@=,bZ*,DXSv誱qPG Ec$Q~}41Mm؃ sW [b /l0AZ@뽲zX[ )<ؗiHeb}jW]ePp|H"n푰,B|G2xq2m:_b_ qX#łhAL-G/O{LpʖT?fłtz-tC8ָM:mZvh%(T úBҧư:#t&Z?^BD M^ ,:>rX_n5[\ul*qc)*A|[ %f("+䡊}|/ ÓFs] X*M9U{;GO$LKe^oPFI_""͟ tNKkXގkn%{(|KYnxjћ,8ד?x+m/#ˌdA"V ǂ) J(l!SID LS[+NJ΁K>Iyyھ9`ѧqK?AʞRl1lpI'Tf*'y4NdQTOP!Gde,I.T3M),Au2\{dcUw ؚ8fG[rp5w*fH|]6[GmZz>Q#}b*Izx17q'( } Q?h% :4[Qtt*;RZU%U8b3i8ϹnEF^^@-ו 8XԒhA$Xky%n…ՠ*P4ꗨjX3Ip_ld0B򣎬ZF"kDe.5Ry0G_QTݩ0u *R=uOJQv`nG*[d +Oz )Չ>֍Qm!Ѥڟ;a H JU,ð1z{AR1~pFL8ھ)V>?\F^)w!tb͸9[m~qDᒍDcۺ=?Ҩ$9ۇ{:0$^M&mN3v*΢Rdg\z 06ՅN@S 9Ve*hdkGUfEt>M "-'`,tᒴ?OrcNds&ntf>ZU5 .Ԅr}h\RpgV^)p)=Bv*JUИs1Fc-Vˤjw5B.5^UxF̉Ko%EݨJ];D\Yi|A \/HU"? Z+WOª;f5Xr5 _^"[|/<@Etm@~ 54$"Q_W9MD3:w10?!&\c_Z_e`? *cT9@5oې ڣ~ivHV9WAHL0I}w.[owCpI^sT&1)!6/amޛBF@+1di=lԡ?FM|qH;S0'K<d J|NW"9ϨL凐7'ºmyǒ}">%48@6F`N5-Sȿ/ZN:X*)Х*n`VguG2уg^8P+.$EOK3= Z 3w,F' UoŌY+G/ėeHb $zg,ߍ>apL?&ʼn$5@FSM])LUԫp[9.I %'virYhG$/>Y5Sߴ(ɚ!I[AͺIs2X^e}5l7)[00Bog)Ƽ:V@_-JNWzVd7&b:YV9 Cb9fcF.|%(oV\AwJEv-"GPk,Kkly*+@qǣhekDTĺMi^Rc͓뤭@<[o\( Q[(fU\gGrn๎i/IkxO܈.rZә[xbp CvV!|8hTRc_ZjxVe=݉<Rz{&$0 `Xh !H("1BADd qkE2o:jJ7p9waD4o_7n?M)뎗V_ vjIBϾ/|74=%foIq_K/w˲= ߴn,x)/M{쮳$^ d׶o [V527NcD A(y>,06 @Xh$DD! A0RUUUʭ#. bn:O;8ԡF+_˿XMB2ixgJSG]}ޯWgoM?=~>l߇IUVNqSo2xS2w>tRyAa^2w??8_ǛKjCUh,:v,X(0tpl@O.okv&`⺅$ntݡ ҰR]j =H m mu*bN-@-((LE s@qsLcQR?xFI\4rd zcIVǁ%BcH#**d_UŚ7+f)bB蜜E-֟p; B?v铄ך"T,bn$- wYȒEFK S!̠@vB%ٴ 2z$Ϙ3~zAbJm _cf8iL=Y>  ow\W9?wL $4xOsֵDVtA0'ϯUug3+|u5Z?zK(qq h4j_ ^O@)76#vnF*:=aŚn4_}J+Cz4W':UUG981|{ܤ !#z%R hfc3qr*eܹ+[Ơ1}|AL1-p΀)[fɣi=K-&ւK鿧ڿt2:D*:a-AUq~9$dJ+]<)&ruOej,ꎙ<:#7)r "A~C9cFxE"8Dh\zΛж(U8zmT'7ZǦ ;bA~|ƪ|ƃPwh||H$$w!<aM8li}gxƺT?9r>9HbnRB8ݹ-1 efWEЖ"ZY|?Syu"IPaCEM xwL9*uiŊۻˆ[ӻ0ThlU_zĴOpa0ec@q1J.?Z8S>m @qcVUpzF}66~62&99K$LPP,  (8!!5 K*V,y6z塠믧jMiΦSU>.}3lX/ZesK}/t">ܳx9~oͥ3k :O+5'˲XΓIFK㖚=iFx܄+GAWy}baAg?p:>|s x9ANI&S<1){HQBA~h) q>y)%Ml$Kq:bnfB )`H؍_#]M=3T|HX2{'mH DxTfypl6It]nJ%w5 =!c稴xܻVlUxLn{RXL;'3OK"' |XALq51%f^3 \5<7.H);':|0PL.Tc9v沎ljy gнrhI,lOjxXKkWP9Q.I2oj!ؠ76:Ǝ|=HWK}HaxNTL;6)llhd/dn*y[ 14ԏ**Mb28Src#xAŤ% d=$G8T9I^\uStmMYcMvav4s%G;9wyQL&*Cjy2bn+'y\h%]CD:FR!W`>0crSKx-hpOD{mE 54ģFb2$ϑ𼄻{\k҄7g{鹏q۱E"K'tO_I#0H '{=I+ai:(JA?HJ6V'xdgḲyX5>؅+RODo(R `V(#圮%A%G;Z6SbLOQ{>%z3%2n0%j۴zj4ꢶTͱd=70&{G'r;NyY ٫>+1;H41FRbvu`/=Q"ѾvL'y2GxtU`-&낹~lXIch\8%Y#ɆK-2sCLʚ;9grIR<fY.^UqW>o7`p'txU::P +~,#O~xpܴQCY؋hEQȖ }Jɠ-#IZE\UIgHz AAoAY+),ZM?hɝMSAD~B=Ǖ{@0 ^dUş>bJr lкE K|~cقv@6{Dk];Zhd6ϱ9EH"ax7/jFB>1=)UϽ˨,KFrS)PP2(4 A$nB`!Z4,c8 xڗkK1jEGe}Ky&N#Āvo m~d9%̙Y@Ӫ`ނuQ>]l0QӻA ۛϿ۲vF&0GO}wԕq wBНp@s)(E`FwPV}a 1̴3q%lb'7mn5JOYsxO4,8u샞l4uxDy" @B/&Iۑ[8`{+ z&x V,d.Pl,]m>Ґ/R}^5DP1 \?x"Q+z:m~g")ù =wA s$8J<垕C)v|~%/.F.,ˢ̣uuwKU{pn<&]RixLJ]ibbLEU6T[(@&f̄HS ebD7Ėp77}s} kVc{% N(ңӳl_~Lq2p&h2?`Q>+NE .Jd_ie^Ri݁d|ib^7eokwi1NGmL 2uM1G_ײZiFc/&& z8Z-u.p5HyWzEjŏ$f总+~xթm˾tn&P$頕c\hC!Nn>PX@Rt`%M\5"}*fbݱ+m%(NAiZKsK:W;+YƄ#WV(eb[C ) (Ew队7ӳwmu@G]ċd#B]+uɐ0yԸ!`"urQ*U?>4{U1&u;?"B"#YPj:އTY+ ݖ  ȄBRt-g(YCgt뀽IK}+N$Xl# ~lߑZ1AAĦUPhsF3ٟ+ I0W:|ZXߋeTYi~i~On0C8}ZÜ$dWatxR1 _dN2 IemjT<,w繩:SeX dB_kAHO9\iwA.>'Nq$J%I#O_癿%FkzJ#xr Yg= I9E_9DڶFx5PH4t0Um ~]*[PrLtPvJ od]SҦO{@},^'",Ā,"IP$*wTޥqTg>{p~י8OG{;;ڽ:dT\yǸ}E}GVw7 J"ΦgdL-%tS'姚q4ۗ 7hwI\]=<>v4sw9wƊ[/xH(8K(mjC~*cԽjW^Z߿MB&Hb0%1ʎy0_k)0ĽVnLCĠz}h֍nJRn 7<̥[=ҫuLƭsۂJ&v`Yy=xքji)|HyQ ,gnZo#;|HL.|^Bgk'd/ 4Ḥ={g],#+/nC5'`t uº*Jjd5hTqs^VYe5 q;L;OȠF~1_h<_|+C[gr91-!@ *4{W"M S+j*VXid1uOsRiJTgex*#9'SE>?iUE]Mӣ!Fq񑾐#M${!Ёa?ߗF26%C'T{(clV^![@ nyR!zь1*H\WtOˇWMF:ʚcM>ĹBtO8:jupNN~pL0F^?w(8A.I-d-H|vyiĭW),kcm^kg/5_7:kޏh}L{7+T&$!*ZŹ{Ccx{ xSUAɸ6{Q-a)O^~#6/Wcq? tZt]Cn[iOM摞k26ຉ#Rٌtd&tGg-7;E3$Hm^Ѐh奤 h~N59kM`GU|`']hNHL!8ZuqfKOR&{8KƩhRY1-7~v%4S($x]5n&Vּhz)2 qzƠ 8<}?\x)Ѯ=W?[[qD@L;dr !/Ώeby1ch x2e$, @P,$ A@DHB0vquLVF^]Z{ A.5хpSO0N ;2z Ryhkƭ_NPrhmw/&ۑ%~gWhr|T֘tIh:Z> ɩsmw&064aH`( Go{8qܚbIuV)K D; gw}_^Rѵ֛cti/#𝡬z,>$ZЁg10CĀS'Gޗ&5B"!}3ƽ &Ő;C'=0Lt+yϷћ4Ūrw7gHApI&SHIF} %(ݜx(;>^Nz.Ys^伄~YyͅQSmT0f92+"S0{%1'9v0w_%Wr `v <0uŽicq,}(XWba軄8H?stuSU<z؞6Jnx;+X׉ ferѹ$8zAF zB耱zXG N҅lUk.z5)3MW=T/8s{an}Jn*JY2 dr@ƞA1:H"F}ΔGbһOiq+H7x?uxتrKojvZg N Qn[s3L6gVu#Ԯ h!_sCCJ]2ނMGب_ ,aIjFu850.35hNT$֬ JJ & cabSxIx㲱2F>FsI )SZ:):-.K>0Մ*6}4)sb|$ /BZF}V.>xHɎ̕97nd:s~xd_v)qQi 9 n كE:8x[ͤ m7Bu"r1,jI޷78Z:Uq80Ĝf27P[t TtvJL 9 ӞH'Prtb:rmI-wc]dVURCoqb|i( Ȼs+Li^dj"ʐ9wspA2x}X5nU@KbL1ZCApb(Gx/*F"3H_0U\ C8h 2e|ļj܃gjp}nJ{w(-cdι?Bj?܌P {!on9@\ Ğ)mx=jnbb]IZ\Ծbp%CX@w&vŁ1J/۷6Fu&zdn?բ\AJf)>@ ) Rxdn\W$1Iu-AIMŰ%Z+SfE tp?ظBs<AI(T[>A B4V.˖eJK>2ɝO< '8 zyW pY/(,Ԗz<$ެa稿Ⱥ6f\;*Zw3r)Ŷ\,i %|> -em8)aH|Aٗ"=쓎: #܈\LpIƑ3pAؖ0~TpnH Ed!8ZdUa7.3(m^G)C_aov:.+\5^  [cXj\dTi&s[J{ zSzFM;fiSG(Ȓ ,b?4ds~yfv,61[9У@'2b_GŒkIGO5_|YcL6 G@ rْjCK.oq7yOu*TqioFx/QTlqzRU]CuzJ#bcxI< mU縆ؐhS ;Yl !`#sԱs1gWPfT7_pvxfԡsX|Bj>ձϑ/kMVGFR2M>`™V-Yxvw1Zc)7Fd8I פlntwWe7H'&Ć8Q#{Ѧqn QY"#/$v~- "?i0XCԖ&kd:J'/+Nez̑_zW!}cp}iE '(rVfY߰1 lv.?9׬BJ$J/g1le' ǸRư|0}HqhGYoũHfyZ69qĴpmL9aq7mNLֱiγy (A:1W0"Joܥp'=~3,`1qL{9Wʓݎ, Q :))>jlPzhdk$ޞg8,xOR][Uhxuf:f2n<ߦy#bE5qsB1,iܺ[W\ [0 x}W*:F^_JJ0mG/NopHR a"u&Y&zk.&Bz[7,+qj٣_p`ˊy ^wtE\& ˆ!-+5`ډCYu+[ 5Th)&XRx@9'qNJm(yC+Ȇ{b9Wz59%43#e0`tQ&̼M/ ޖTNLwZm">1ֹ$ֺ!ELXvR7gclaƻ`eŘIF OK^UR)C`lA0_npTt#ULꘊo_,Ӫr-氀h4DM ?56I+?5&GbKНؤID@Goe }7fA€.L"TV??6t5\w`c8j5pM3E~lGOX5+|U0FinN໰&,泥2{Jq#P|@G;~7󈂚x,J j9jʩjYGg6lՖ5ҹ7ڐ|^L+i1! }j9qݦYpbEG{SHsH0:jHDtpwEѤ0T^) FہܿDfg@y؉o0uMM("N^2l#lR~Wמۇn)@pۯNq!`=dR0is0D*}>W@Ϗƅ[_CnHwnrhۜ=J?]LAUZԋ V`ݪQdxOl4KPUa2JiOp6{{W/Q@E~W<['FL$~?*/ YEǙ5hCM?3sX %3ҷO}IJ%QCZ(m+ߔōiS0J#+b/159j,)spfS <-om8/*a/K?\+|40[b=X+gqI CغcnujUȖF&)[]eZD}cƴt A_j `#}F4L D%[c/(s@ILXq}!|Y- eVc :o+,5i6]=;s >SPOzx x6>5/p^93OWMg{!ұy@hahIAv6#?Ć]bL*C@AghӜ7.M?ES_o/Dָڌ bV΂5ج)8My>CTi$Q~š tt:ҳN@)HY@D}YaED9>5lXS\!"06BP " H"*iTD]fQ\X%>U9?>]߱oûE'_aҝIבtaOxsmLP|0!T6W25Ł 5ߏۻ~ݑ]] Laaj /L3.Z{S 9@eL ߢz}tz@fjC#6x0 f̋OM2/Kx`”\Fpv9<;/;GJ~3Xͭm'CoT[T9{yhQDTZfP7>J[O5a[,8e3;xNAqI_BXeQfszy+/ ˴DSx Y-EP(8 nCl Jvz>7YLj;a7Ju a@@u8p&qr?Yi ]4Hib|>Dh!V/w{?ꍝdN`10An\} P#"rGȩB[Y1G [tpm9AP\&kr%Iܬ}1ț㷪c ^QP+<)(=FN,da7[Ka"$ihes0y^s#AaߏF.}lN `pchehФ'uE~^Ŵ{I( 5՛Ku:#P741>+d)KZ~t:; MMnX/^FgxK1"31C*]?O╟67r{X")ղfuތC?$0DdH %}"ag-ZC-yE=ѯ#-р= WOXn7ۍUg"KMR[6taZ?Y̮,L=29:駿/B.X@8Ж Edkt0&a,Oj;/fGu"&n,,.2c;6 ~)P+%IjKHnp/ З0蓙yEfJ}uyLY!-7Uw)W؞AZ. w8ݿEaP*5Qg1gѣςE'F"=?0k!Ii*L1w@^S`%jtgp<|8BHf<)-kn?2,*,aH ! [i$]Zd wGIh>-FS\}v|A}RQo/|˽_g 4(/~F=MM݇$;?%t} !̒'R]CO Č_;ߣzC2n: n@pAI&S䶆#Y4tOH9[]Ԇ 6 )oe9㯆Wֆ-54& ʽM$g_&6ҜehX(r RuúH{վ *4ӿk%*}/2$:EC8M@{G~ 0`)vQT~0Z)ao8[֐E#04 " 6,R֜ANg9jE 1 6#=*bo)kб;3*_9ix.-oePШ-ZxnBДtcvFtژzZQd7'7d,E$`\E?VXC8$mVUfG5z0L:ުN4D9S2 (1^œz4P@66oދΣ$ [i *my14{x6P)E_ց93OΒ9pDxKScN 4D~>(oj4N9fD\̺ (ސ۰o2F! ț3pu;N<ޗ MtATX g)5(QbOMIo.If9e5AV\#k`oe$*w5Dc5)"Ω/b"CMR Vx~F)1ۉ"hPpzELdU-K霡rٌ=V E(a%R)GũsxT@RK^-$O,KM铿$U6שTaŠ&ۀ#5Ӈܗ򸦛@7 &gֶu!ѿ:E&x!(pgm,Z |!4a? mN r Hfs؍߾U2ּTUW/" DUnuIDj6GЙNJt4M_o9t̘Y0GR\6RWM$R9࣐U>m2Xn}5g},|s3bJ ۅQ i1^ wUѴbu:ȘR?/kbWP Vfw*w XbŊ(r  G{RxT aPc:P/f:Omѫ'̾HGj1d?`(**EIƒFǞί҈ו/W *]NTO8‘gx7bvWjkhSY^\O& .j 't=CoΞy"1[|=JmA1n^ql\:_T B\aDdCuZժ~ld*A+[76k, 2X@j*q,XFƏ2Yl#YN(Y[m>4cմ$@˙/ӿ'|C\/ Q=:}.[ RcXJc/mxz7>v<\7?'(uPv{%c]d@LwGMEmk_#=(a+W^c[\*zFS> FՁ2Z:|:qPȥK%"5鄲XwQ%ؙ\ߪMEO$AbT3XbR L&qW:{1Y:Buo*]DL#kH٨peɺj&5g(ea.c&)0M|4y!0蠻)5(Gyqca| IrȵKr[[Ke+zȣAxE G0U9;~%^pO0j)g-]ӈ>yr넭_f|֞B֌E.o| rZ!}`zⅮT=}l . AWP 0,Np{[_D3uV/>aWAc5786T*NRHswއ;JN4tpuHOj&Рns> Wք#vaギo'}9]} V}؂"a滷'quh^s[tgZti&b}iʵBhes閈| VzO>oЪ̾:o{4!̈́ޮ*EZW2N_dT:[,3ԝ;漕m6΅NG?o>W$P&`(r !!L$!1YussUz̳UVTf5h';>'~]YM=Y¿?$zwϛ5/\u_蓁cf*T8OݴP'LΏS7DL9c Ԙ=Iu(c{s5=]@q7"ojg5N2jB_nu`Po3ʋ,vGԟd[E;H{(M Zg_V>`jD$?`$ 9{O8@V1?dlLaW`y`m4/(š4A|I2P2vy,xuziR2MMg@Cuf0mA]Abc@s7萇=h!&Q5RifMགԴZ}'_&ކL"L:ƢQ  :%xtkD ԣPMjϺܫg+7BrYsuVL$rpwk/La}mw1-ySB*.??x*8 >;9YUATqK39;)L ӲB4DPV1)$F3y{_!vB8JI_pgbVQP׹hp& u|3H^Y O5,ѭo;,𢡄N0~w1z67j-]SM[l7HT]*o" Z4̉{#'[ءa_"ң3H3ʯ?w1y&LkuMfH++t&`W^?>{'nuS&nK\XjH9v*R'|>|k\7cI\(+K`h{M%E5o,)%<@%GC`He法cԦ,w8p/pR9 RgR~XWtDTB%eO",`(! H"! _lϾn$8ݤȅ\p>!}Nu'\Owi+{cG= _=I0cE/+zMTko낪Q][<~&~皩iTm"Ղɯ >݄Tz\ݟ#-JO删LJg] .8 0& bXh& `(! LH#Vq˰kk\rk6lS:|_>i{edzhqIAU P7L"}ao;H 梓leEa?\kooDxjDMF&U}?-ZժRldi~ب e`Y|fAI&SNVi, ll!Oms4"g}r^Dx({tl0'>oͬMLCW>ޔD 459(U"D+|LzivwfSB blyՁZ@ [`ĥZ;`˝U-WIʷW ّ4d#?.]nObi=E|Dx̢GVbS'H4NZb\Wzd-pSySs/1=4e.CxAI 'M{ ,EKwO|sAŋj?!!VZ%sБ${'sƁ!ч 4$[¾^C P!ϋE7გͯ=X?kDEq/ '6.:҇~ SP7*:Xr 5v+- D%^VJ%.tV]N;"6V|_tn`+ w{});u\ȏA.&b16H;cZ.:[;J"WK$h_=»k92F]pZ&i$~hL4BvFes?JzW>q2mᠻ(kL":@g9u7})kFf;ߎ w, ]}B'mxSǴf?H#(MJld̅&)6S#$ٺoJ31llY, +yXdWS_G Q0)Rz ޤ,3fqhLa8Lc5gu>h 6@s(YR2Q:0*{A3Bdr5AqՎ[o5YL=*, -P&8B7ް -PͣJ,T#0֏[;fj LG>ā)*{!p>0MVj'IϻzNI TH2[~UcZc?TC3 8V:/_"brBL$kw;׽ A7°%Gk&lտs t5/!dDD'i_-C1( !c\ҮI"*\Bd)=ǔZE^0-rwNi ɡ%f5Z}wog3f)rAgo5#~G@n0<Ƶ!LEqE- wCmH+x<㹥ss|Ta+(ΊtBuј]5ᨴL<6<rӋqզ{ź6n)51Ř(\C7c=%L/44m|1N%o$O'۷USM"ra&6+E۬2p ?-osmˆ&eU'(7BhԲr[Wi+^/!=^.Pjid䩦N Yp1gI]ܚ' |FtYc-_Ω%ke^ǶMaI'W-b4kled^O%xI5>DwђS?aƻ]x@U*i4wjvT)ƒ-@110Wu ŹV#}RFJ*$ɻ*eSKKU: 0^[:;W]B}@2sYݲ-ay`ydt,^Q73@ ,в."(@eǰbd|kr͜vR:1H_%c)[1i[PǙ&H6gōˡF]R]T߱q)I]MO-i0'#3?ӕxZ I Ͼ̼oߵPl-IYFR} w5/бHUb(t1jtyFn5+]m&?Tx +ߎqI?2dA\AcבpDN=_f+ZtoQG*](g^ *oif_u0*!މu~AqGT_ b^vjrk<5/p”m&[ YOZMN줨,fs7b)"fS2p'7'Pvaw24#2d,GUmAؤJlt0x;b8GoV#@li:/%Z榉 ގ8Ej϶m[dH I]z9((iӉw?p7+06 ymW{N+ZR5<):fـ ( CXk$'ԶWILqGP޶rêˀ~0c0&, P,9 AA(H ! ^RwDn+Kݤ浓Cx?ozǃ]ly<[uw}GOW56˟7S_9`\-OlҚ;NVfA˛4"tZkH$!\+ OG ?V/dtO.eiӈuخ?~KjBG0zj&1&ռmKŢ+ė*:HE7qf*'},~uxZJ6<Ů ˃Y7@B"m)flVk,ȬySQayob6*jwhVT*F/C?n;|uTKPy(յ, FAKb_z3)9 #h41.t,5NUd`^d_HuwQ;BƀqͲE7mQ>Y{Io Δ],95e*:Sx1op#Z&:?+FЌ-t+5Yy1]3Ӽퟃ2m{ktր^4A s>L''pȷӧmLT $N.0QA", 0HE,BAD/MnDq V5Uhn8Od^vi\,z˭tH9?]8t_~cْj`]uL\SGI}o^?l毴ysx;ݽr{?րwGI!Ý4#^ԁ'{;6SuKBEAI&SdijB}+@JZv rA4%X(ULg|\/02&m"pfv ݑȱ%(u ՜]WEFR @A.NNN -ϢrJ3юAPX3(64-V~*9 2\|KFZK`ac+Ѻ5|'cs];YeUܾ0}&Z6y M[QoOߘ!⻁s) ׂV8PC'Z EjShH$8_O=B%53dFF{<ւvcʧ ϣ΋X(EhaQ)J5ɘfh+wADp'qai$ʱ/渟; &F^b){hxGO]~nƬ 4d׭D .C$ >N=6{dp] 6;BsR2Z*U`6>sdtL\Mތr[a҆sY1<{AdE[Sw1#5r[L.j݆ N侼Q!b "%wP3?(\#~ G^Q$qIT5#̈́/C(t#$p(70@_ER"鷬VAށ ZCbz"ž,i˸. YPsIcNA.?$>#RG%Yƒ3pH e7cAg.;=6c6^a7 V5W /C=Mw9Pd1k z_en!== nծ~x殜|!>ͅ\WOYhR'l9nCD'z3mb%pY@46ZcsX2*F燺fv6Ojۆ?7lx:35}%W5o };nfZk7~Ru2Ɩe2mqtz4wt@,xaWq&Ѝ-.{"YfSIck._xg6+-Ka 5*Ac5[cLg֒my![Yj /q;긅ڢ!wZKy-.<J@yQKBg&7\\>b<`ܟpboGTƧ29䜹A [#K 6\G]zAfA`< :&s#"}9EVz&cG~[$D]$'rExjα>"R,ev[%ʅAUw"~/TξP\T(ܹ?qT\NJ- ϸ~7帽zhS9=j/3Jx6(!q3l6۾`2 Լq&RL>F7pmY2v{aR!'w3$?OA.>cZ)5փY詒Z냶U#] 4c\% ~MFݟђ}c *^N@#JiDIASa QU].DŖހ7P ADޝ#-qTyؕZ;e:,_£\ID wJזsBt\6&(˫e}NʏupBHXSl4͎P^65f9nv*M#8gWG[:-<LdѶ`s5LwO_|v%fXBAbSYьC_$8 op;<#ÂLydr"Sk_ Ĭe^۲?'߱\ ?өd*OB//bNS{1~`"Ri\D(vGE?|UEF&v$rdW53xħh$ܱ껙_]ރ*"YNCn(rp0/k#ud\)Ҭ& imc FHh㫡0?ffo}:?Rza|ۿ15Û@76kCp:D]@)'MUTnjŐzN1?0EURq0H&tO`r%r0[_h-rBCJ@Wsͧasn}אָC=S-&e} gj>Cك];87sroXm|o{IQ ;^q|߹tF!,Mf3_ػ:@KdigL#~l %Rr BzN#=1KzB$ǽd0w5I0݌W˖YTN$X)' s6d]Z8zO-rv/DDn4T4b]oXHVRؾ2dGx9lɥFI1$2JG/rNg/Gg/qͨJZ̽V6i@%h]WMt\nPrv˟cn -'^j6dL>ڢ0H#m"0b<ݮK8y,h]:(mg)<uWTșg9ں2QђB}ǂ]#;|}8 S}JljqD?<$,ޏw,m7;lr p {wP EpJLvjA,@y[ktd١fĴO4n$=׮P7a|"UjT1qyf6ڥٽJoܔ+|^~y9Կs[&pVF#y62fHN5FE&89+"޽zkw%nTD}!JI`3* '8]5;r$^~c)d?9dK~m]$c>fqO 6{-2DJ*:?<МUSХk;Z& 86OlJ/SEdhUmQ`Ο'oUHއ[ 2Yuc8$ڽ#vn⦞绠|o~cHb⠱ri|9IIn}+1z3*HBAbbht5TM{PL+n|7VQ&ZfvGLӤERQت+dCfUOjr4.l]tꇱrgd׾eI-}ER,EREvb^LRA0$@R@'Gɖ?Q7S^)z" رm֘i53 V =9&YjM.7p'W^kSw4xxy3ʾd yT-!}  %{9 YYQ1J0*T:Lw1"&xAm6Awc*(0~sC[~*uo.hu0W۲&BN:)Jti:h a' X@ا|Gĕ'k+khmq)wqڒ&뢊JTyM*9O.(y{9Yk&&[6iXtp8q4bviiR}ԬF :B<F9xqs9L!GcMYM]>SցcOჍ1?5C=!L),Kg94*[\o'c ܤAob.EXG!?K~W )S{(Uq|nb ;Vpq7З0{&Aw k{od\VV6vxFFufR<ʶL%z!. 'u%ʒÿD$H-K^e\nd[Z@d+,WֽCcrwԅLMB0TZ٧DsCbwBe=oَm"lLv_:Y,`y#dqR?b啬 rnO*[>uF19Ahwma,Ki-)> XJM>^x[;Ow[gԸ/hg]Jc\Nd^2 ZaQȝG;Q_JJ(emM;px_Raj\.sDI@ 5;]cU4NO:Q^r] X_O'u/&x Kh:qYBt!j :AGƴ\UEZLE$Ճ֋DY'@XCa65#7m‚TeJQm/IsIZzb) GHs5]TX!4OB\^i9*_Ĥ*~%@(,(aHb a HB!0H"u|*^hWy$sX_]wwor~zZOUw} 8#=.?3}qg~WMk<9-Z64:3 Q̼NږgtE?;OsT@Uvqm P8&LX Hb*z^H笽˷xew?u>ior|^9D\)>?NjN,|_ۣLF\~ 6_ZS &7aOVO%E#|K2oRY^()%2fr8>njBrAt)?W:=vt[sT }KZC9?Q}=z$+Rv .kru"ɚG\XLՍC<[懦)>⛑+'N}Pi3V6̉|GX]GN+ |v!l9Q`H< ?J3㱵k5[ٵA F6zk")ݽ]78,l$e:{xB"y&`4rXX|3ZDX nFdGg|`cf|Bj7O+nۇtL|1c%ݷ4Q4_V )ـ#q-2p5a7e&"}Fwiw'B?q[ne}TXe7 <̬+m~]0~a(Hm)<}o AI&S{?81N+Hڬz%mv? }J)v!#c=:M8/#.iՀi݊b(`#_loMa=y18zq^SeB ~1Fa[~SA,[ -cjO٣Ş؜yU0N^"7DCiMHmep_^/]:PsRE0:] PeFCw[M]'Z/!G:%!cI)m9$j447gc \ s`.7.x xMu L5YG;#QR=]XJ\ 7L%''a3awTI7~s+#5 w6d&ir> (jg 3e! htw\!AiRR=¾Qꊏ#8F,xu1o۾[% IrS#(ӠFP Iʟx'>Mq2.13V&]LUFMRC>XcӢ!5%õ 6϶iz16pjl;@a{U#od-I 96!,. P[R?uIPs-$/?`+sQٶ6(oOJ^3yrT:&3ӑ1L@p44qd@ik$!E4m?, ySޢOPxōT_P`Amx^DDMJ:DKE|4&4}̈ax޵W)(~k-ţe=@x™)ߐo{eDY`[#ƅ'B~-MJB聦A4j3Yn\/(ShtcI7#CێE&mmbEuzBajh}`/U6i$!,wkt{ƿ8ZL"'1}̠2C͘n}8lUMW}nUˤiM²t3Q{|usR?2y&`)Ph?N jfB$TYܾX e ; C|y3͕zRX=,G3iqnK'0tt .`Vo ͹ݍBp*ly= |}]$"ay5.DVC6u0pȅZH*R ZdHW$FDd{Cڔ.}pWIҖyd1ƕ{MeɇY?_ۗNp DY1G5i+X:;b= IbNwܛe }4k1}:qJl߄˩*>+̤:(W;kɋ皑jwRfX;?DKv/H"VRM&z68D6MX \A2"%U\GZǦNIY0BC|ad˸9ՉJbşKtuOִ=:\R!P&s NBdP,ϲ;,Tl] +7^ `մ7Kfz)XA|徙Q] z Oʈq',Z(Lvğt/noWݦ~Zȣ|<2OEDT43 yO/Y7@`WmTaqhh|$Z!YP p^$Gc,,x`X(B""0ffRU~irf0+//_~ND2qBvq;x'YDV ?M|Lgϳ^o@]r]M{l1ۭgu3g'$}\!(Qׅ_wH/W֗&/[*}7FƍWqOPcKĊ3xx=9m0kg0>@pjGa*~܈qf:vjFdT*ˢX$0l7 f8ͭ0Ye #f v0;НFŇQzǼF+6T>Ζd} LnsP ].羶 tjsaqn:0󷂱&Ē=+'gW~!k3Oes%Zd}Ԯx%&9jBZT#ujEx놇#^ 'CAsQ(#)/{v|t2#R8Fs1e*1R } CD s.w2AK= (nf̢:<1ݺU $E/K=/!qPZ.WOIN7 iЏ7ei>K O /͋(u3NB "ڙ"0fkXûoO-=*]"p>tx~a{[S8t.. Sש[?MtDnav&[,V`蠅Do{[H/7ѡJDf *+2TVR=A^mK-T)~eNt+2_I(Ӆ"E8TX[*. a@X0 (! H |oۼ* +5IU8']) V/ehSTMi^?ZY@8&B|=eϪbB<|U~?00ṫr %ޮqϟ .x#r>Mie).{ݍ7tw+@p AI&SDL_Gӭ?0rV`CVNۯ">i1,Lbe%3;+':3cS7;}}Y:<> H4:\:z1P@1:X+âI}-++ 3dXgA%Umq#`#w3^2Qs>ORB݂Dy+lLbF@,P;~2fk6# Rgf*鐡~#S) = W4 Lg%1_n1UO˃љ~5!ϛpZ9q]HaEHj9q40O.D#[shi<6cu%Xβ#dWT=/WsݿVW@ck><3O*fgm.8mB%R줥lrm8P9< j4 &lz; bmy:J:j0"G]ހ1$ ڕς_uT. ҁ%2'˵wJy7Ii*K:'A[O]e8"?$u|r ł:(3 ՀT=V帇UwE3 12ʬ4l0U0r0kCoߨ ]DgvoI!BND2Ol0 P?1\q|ifN~Kq|Ap8/G` {(Ey nX;^|VL^}Lq)>/)nTPb!YJ#Rbku!*\n#;̛p?T<86ދk 62O {nl+pcI#}<ź7n#xӃkAx vsP5cCߡ^nEΑJ3ޜ[^Icw+n:7ZCͷIyBc Wd= AIwt +X=uUċ/R!ndLߏFEg#t,xX20k߭^*Y!і} EGwV\)@G?_qVޑJmXUyYWyfëU51Ov1U[{J|wֿs[ =I1N]ǒfJJ~Fy<汚jHRvwؒ_`{Ľ/ߺbsl0  RE5 M}AͰ~_+1!r`BpuMB G-$@/妩(tFofua0S2̤x6B &cĠsWȖWm=|i9{I&e7OBa*հ\'yt= 4<< p.vfId*%bb _P1F:L\e\!kdi)6P =!9`foOQFvw"^FSX\؍h-| LY\sfL. 6A{bh8wT p(L( A0L %H(azUۺzK*fjOӣbO*}_cdz暟wt]Scl&PGM_eVM .=~߯pq{1A)#sr~qg-Z3wTusg݆t-tm!9'\%НiDS{8$0&c@XH2aqswSku"*::$|*ݧ~,wwyonTB{qTWggLM@@~=2|*-^N-\x|z=a_ߏL7ŽkԜ `y#0eq@FjP8 5A:I&SEF,E10G32CcρƨOcq=!7\|L؄NR/ {RЭbU̼fxDR)X2Y21I03W 5r,ӽ!vk1For:0GTƊc%Ao#,جpY]Ho*C BT`i椖oFd.+0أgX-Iq𹮫n sApax)^:h]1%ܲ{ߖ]+%qb "`x?Kavy qV<0ܘeo>p oZ޴:jS:Ns nꮥtFgN!zkVTka'@XM}wݪ0نK(EC$;nɼJ<0Y\ikp%w&y$Љ \% lKS6jbfbL^r pð-]bFGClT~o<$~([bE120*7O3R鳫ͅ^ȶid&=T;Ql^eN<M =y*reO-hXZKY7Hۂ!Y14xm(()V !@mrichG|,נh>dN39} hgMpPUO>`r|ܩtX~_kaMJ@^͆*jGx;f[N^`P*+~E=4Z^m]Vgb=Fmu;THr8ϤХl01\X];H@7;Nɰ[&o_ћ-Ģ309âk r' {6t&J7ECxb8b\x-Qe搌~[ґm8! ČosDlSh!!kQbucigֆAi͍VeEލtf{Lk&iBliZr(zn+,bS'e2} KLCX),J)BؒڻKF5 :<2y)mj]_~K@.HMcg<3b+n4f9z"0!cF]k0tf\( B3pOSAf^w{߉DǃPY!R\iAŢ,["bzQnp;oWHե%"zT\}A;S''xdldt; dWT݆\%IQbTr =V3OΥC,ןNOE 8b̐0p"tC?Z:Fkq--O@d˦ %Oپwc"vWE%C*뇘hQba7=N- jK63t"2FBvi}׊g$+IӀ:jhHt aV25u?D&D/ֻdXwO  Z=krlDn@3SnA쉱!k'(\rt u#ό#@,f16t9V7u.]8z+8]-G] bư[ Y\ 㽄93YDz/Ӫdhck}TQ|~DE_v޹ {١H&)W\F'Q5StiIj0yQWBS{mK"(oGF)W@k1e\وJkg` ɱ1/Ft& /d&ovq @Vn. 5+z.bЀVJI6qRIi/ξ0R~M﹂SY;_(,(Ā BDD$ Bb|uMUW**M}N?6ro?w.RׯM`{,)r qBEOwĺϹZ <4~ .-Mѽ<V|~>3rHdjdބFTzƖYpX77"PB(tŪS0K ˟ PA[I&SogWq( II=U陵qHy}.1dҐνs%8W0, [aDgq*IcՂ5xVf $J=#d6[߯YGR~whirmĤhH<'&< ylɨ4))4ӵ`0YO"ܴwc4_4N F Jqǘp}v!Bm18icp4鏋l eM$5ہ\aT;I }e@BƵ9 PጘޛgLAnl4\7h9Rzm "r{} նF"җi밢Huر! *ZBR…̨]@-=FB W6Y0T\%}fʹ"uƻ!_ iwU>RSƙzz P? niM(L,mavfxؘ>Nв_ + {~N1dPI%: |Osy|;Q)k= vnb糓$(&pA%0Z+ev? 6 ԬRӋg❲lp=mw"vS|%{ !9P>dl?V͈Dٺu1VؖWKq$B*'HSJ]G{5cC7 -cp#bVMAVscrT_]{DdYTdc{{]*%xk"μf! =d7B. \baÇU0f0:Md<"efVwqUNvH ) WK^Sr0(Ʈ,* ~3h8OfF8DbYO¼#x6* sf-c8bw1scawN| L{.#wLm{EjQ R`{4g| ]Ięr0M_SOf&A Ѭ#d,Z<44t{Fb/$DȷWA<`%҉@ l'W{A=ž("phj}W/TK'|oLgR{΅W8ZEAO:1; =aV(ݴVJ"y5Mp!fkb%7ųHz"%J.ΎַۍA2o1}}_k"l8mmptgn+Pظ7 ofa6/$+1lO,r}xՈ v:qx"f&GRr&5UnD=3ho`xyYJ ©b.52$dsF|UdTLeSV6~1s@XOǜ&~=}w,E$ BD/ڷVRTBm*۸?QO:~idWze?7zOuQX P[u";$_0r$‡;8nE[3:vs}Y ̯i0*=AU?tN8H(He޶a$p4$H"!}8{֩ʗkUC+A.!/<󯲿Έo<_n%ɖ0J~yRv<~u̓s?mvfOCoNt~O =df%=~y;ZO7- v1xtg-̾chVTwr?E_'&=}|A|I&S(GwY(m 7vSF{cd1͞,,r2Q턬vU z2 œc}>5;q9]5#8eAButd9)a .^bK܇H{Y +a] "6@ʒ1E۱C=%h]Ae~նI43r:E@˅ 2xL(I=nȦ6dCEJAG/[6x 3fK⛦@/'k8)NjzطF=gd*EEOs|Xh.D:6]qUI;"XT%urS-ȭlymh{!az)/wE Â-UIq:-]^l^t)! ϶ -uNvZ96l+zas]hz3T~rL0嶟TUwB/ݔU``H?zb;PkDLB:Ym[8B笻ƥK|n½Tұq(&L2asAD$X`i"9x`iL>hY L6a*?MJbԅ3 af_B^>&f*Ny_Ǐ2[߼}#jۼd2pߡAƼQ F ovUSWx9-MmWoK97eF`\mc{4c1] \##qDG#1e%i`QVRg;rt֠jUZClRq7mm ]$4dSn-`XEƾO:kX`9T ָt.7k%MՖ k%Z{IH``Қv4AQyWP ?pYɫ }.K}`HYuy&~%džnGy[\ݜW.{8N崓!kꕾݠ/ xzzu9 b-R t3?ȳVŋJዋ(d^QpRWrIoaR5aXĉ wrVuD0'AZ~G ^p, .9V9Ui2L`QGA׫~4!@-[3eKX.T Y"ҏQ(B֦3KunLLƢ.}βhj,E#!#.hѼ?xkG4n̶'8 pGd'DN7ܩ;k4Pئj] %﬩pDE"N?@bðŃj#=-[ JoȕI>a݁E +/$1VA>Y~ɕsz: 9D{P XFѼ +(V{JN/YD\{W ?D')؉n;SZp"/!A5sC9({Lj%|qÊ:,9OA|t jkʃssw™w:')Yʹ:?a_&O0s2F`ф50;5WEփm9 ^'kXqbJ@5g̍So۠ZN ŒP=Pf)\Do3,ib@N<q߮-.lq[:ty\jZDDj)4xѻI{_v'IX̰/K0'6An2鷩[ĚBb/: Lfkvwz6+ e~@(qq~[j٧s[Z,8yy2zƈgyHd߃ fx7# ;@TeV!2Re;ƍ2&|UeXfΩQOdiϮ %%9ĆBb3kwp_%[JCO㴚;${8H;?κik cb!Xӭ=8q, 1Aڠ8%)24 ^]3;?v~` + Ȇ. }eAuZЫ~uPb# QjHdT"! 8LoƳ㍨@twpK4:}י,/vȳ?e;j?;|h .éd,΅v/SBK9"푸pLFZ##˩wJۑܢ2._ZL4 #eMba>2b} NN5n5h+|v5C7(CʻgYgTa$̟vI+b#DlO[&]&mM.'̫{Ķ(4p.1Y9ΤɉvkBzNjhTk RqKQ(2B?hxDǍ`/P{8x]l=٧u52oװ/M=KPt@ uVpNO=ϑLӪAt`!?F:=}B_> ^`i1C$1l( ' F&rG>om&jR֒zs$C)HuZyS?Ckt{Sdcjn[=y:Xɞ$ ,vI Vio-dQU[m<ؠ>&w,V^dB+OdG=C c0Jf'+Ԭ,ݿ?c]l?W$zMNpo{gH҆+HLw4GU}`WAVa&,ۘAڣb O= ݀i*xcM3^.zPk`P2(߳b%_t(69A!%iBE0 5]y,=X rB]]|dW?;oRf* bg#vQB-\>k{)VPXVO8j ׌LZ?mz@k;=@E{[w7ΈA>S8 ƹ&>FbEatcdS[0]O9\X$jzLe|̣L_PverWuޗzi]篔=&.]{[\£q%^ l&W]o UH iM+aO ә亼kׅFӶRi@ CaT|B.H{ =ݱo}.S:سm LvjQU|nL<|p{5XߜiGVGUG '`o%fs|#Y Ta5Q_ *՞Xh2X Bj"1³'_XXm)Zr&ǵ3Bӕe$?\#,%*i|o1MJxkO97"h` i2~jaG{^*1W7՚EN;GY]]\"$_Ȩ:E1cC)]JTä̧`:au/iTUXŊSǪu5 nNJ~6o>;XG'u%SfE AɓTJ_5yFaȆ>Ȩ{UޱQz(U09#K-k&D3@a0ݲ" CfI=$g:vF}&0,C _us8o.|7 ւfZ 9 1qTΠVR셒I{E b\BDuۃ t7hp.MҐ-6-N] J4Oj`b0EE?ѧi3-r&OA@h)Ԏ'{4Bh^vRIt-IAc)S~*]7ςc!b_=p^ӂ^G ?\-|OįjՑ@Q8$SgNJEV.nCcQzwŭ un\Co󹰵.>P*IT $;Yuj;0%`l83N:fl"sܠ'c(RъgF {v~PNCǿc ,wpꍠix#? F&][5=bt(zƙd3jN -\$=[/BxvҶ3y",(@`,4 BPX(2!!HBww~wܥ񹚋gΧ:y?݇2v>~KôvYicd5l 毑AI&S<--v*HǴTA豛kc(+5S>'= #1/Cv;n Ѥ^Ke(yT:E<Ru5 ?vɀ18jz]Ұ&">C!(Pi a5S~jEXEC1mHJTrVh8$9nmc$|ooiEPEѱ3.^ޖo!eAoT۷`؊3)X#14QN{`;MӭV eT U\_if&5^VtaoV7\'@#ZwV kdiȱ1ϴPj k)$]yv+됄u`4$ީ\.I]˶SGZxfXқ{CNaHC8pd''h4vd M<| Ƈ7J"C]F$Un}_W%Rf9xԜc> z$9<|_SE}Zf9^WC;4f %vj~@\ .K?.~Q#US2)',qA3%3=.r.?,QZ7"?BIR.#aZ0HihxFHL{ e猭Lhx29e|PefDxOhpOnz7NU@m?yr\?nucU7`.RM)e lE6c`q,k^fgZ0ٳ"Olj7v,?W-Y7:"Al᩿$GR:&1 HQQЇ"DII)7 $($=9)R6%9'ۉ?-op.:EYqO59f};ƭC)Ql[W^P j ~KW 2d}W M+RCuK°}rl+d84.놩/Lc#S) 6I<^վ%-vz@װg)( i"&? ppB䫼VZ+&b{+]’:LAcYKZ|%%v%eC8$Ƅ|] 'CZa|2fIwWڃ&{z[=OjaφHʳ%~i7w  ǡ+@nN~o̅m"jM<IPKncQt7fM{I0+eģ;ʥ"Ǒc!7^mGuN9 Sh JVнg7-i&2)"] '(٨׻KRRQ]ǢD>Rޣ33н%KK3lB<;z T]τZ Vxm2/x(|k܄9"¾=tY{Hq`̝V2K5]Sat y)Jl/aW3B7/6S?zv=BQySD\PN ftzHuK%0%thȖoI_(>0dz C(uKH Ϙ4=q6LBɧSF%y(4e H:Iѵ A=#&s2%] `&yH[! !K!Q$ @ c~bwz>N5Ck+Ȣ۝B1b7ِ`G0`~Qfnrs/l<7>LGfBȪqwR~?{x w:mCMJ"x1xQbKq>oURK}0ʝƦ0}TtđpHqgFm[䯭Hno0O6Rދ||IX9t "ĝq?xBF6'DQz z9`|E9k+gL> ljsj 9)[SGQ|-' _ *kdA?&!/)b(2 (rT%uQvު3^xOml-_hi::bCn煰5?vm cFIΗV>QRͭuWVZWܛS]hjhN o0D"]k;L.ibkM=R;C _F}˔0jJȤX 2m Den#JhݪB}Y9;DfQ`qJΞ[KiD8@6ZpE5U#)bu!R?/CyׇwN;Y8;Osg(uqM%sckwDP$TS9rB1*2(G@FT>{YD,H]'OV )ixYؽFӸIG(Si4`%%_Ų 8b>h{֦2@7HLg0BZ=P(֓?"ȀO2_K#H6K"HW:N4L4]]&DDKjp/5gFґ݀ QrRvZ1x!&1)%R>i2ӨC|P`o77OI}WZ8͟{Ubblr ,>١5GLG4}X^ `9QpZ -v3k`}^(X֘ơE Z>+-S Uc|*qu&Ne]EU3 ÑHIgH#yF0hce? 5&-<q4l?^F1%D`7~Σc6j IHXp 2Э S5݆8=xcGP/.„ J#@eYH杷i%42 -x İҪO7$,(pX* PP$$!!HBrVk/.DsvuޥNnf{g5/I^~Mv&]3 H1 A uB .or|}7kʈy~e~ #yxWF:k ńw:FL|P; m'kwa%1Mut"7p$, @Є BC .㚣X2!$]TR:LMGû6 \3GO_C˻n= [7Lfzg4Q> Ϊyj-@%^~<2/7 g-!C٭yrI*؆Pͧc_xM ?,$bD>4cFM"cKT. Im=?W\ `8jCW >=jzN$jObk>Wuhs6E'Z4zi|}1ΗJ2Y'2mQmbEٵ,P'`]U| k_RiB'F'}KB&G1^ͅ?r.J[F䀳 1' ~bA £ ?ܖgr9:j9J/ai nv2dn&4?e.Ok쯄Ted'LTp1荎~ʐC˻t[@]ʹ <]4T@O|ݧ ?݄F}8/]QS+rY*jL\* B :㮳dlY96j@yqPxH֎Ǘe{tJ(tS.iIܻGqd#0Ś͒y6_V~BRY째pF/m3*?C~G̉XpzYSUxV}W}ٸSOb_* sVSlsȜd\X.>EU㌴hPAte} X T<$?UgK̄f\J0[vf5-F[iш2(d\WwI rXȌ~چjcexXր긵N&fJZ,fq}Ќ |9׀iPW+cz cȟ*tk |h*xsl6;| @v2M-qxc.oeY8ز![RA8.U,( )@(" a H(BA[̹|.ZTTZ*^/ 7w~=y_MMe>|}]B_j4L/L%Թ >`j߈UTP+keg:M0ڌekMEgh%&51N.1*_(:!Ht[폋Z{wӶ4kC ~N ͅ삑pہ AI&SxGK3$A 1l9:}4/ ЁeD4hay_}kf2: *)XBH9V" =kn"DߤU"lP¤0>B:?5 _5C=畵quUĀ1M]ZE*h>=@,L_>vm] :mwsxQҪC7LvgNWtz􁃈}, 2OQR`n(b^zmZGn9)Iz -ȂaѶE<|VV7r80GZB!w skX v<{Xjݤ߾]VtFEi >Xw0<0;bJ-RiDn ͆}4n\W! sP?w 2{9G)S j>x*kcGdᎇ6Lھ,&bIrkҏ/ @&噏?#ҍrg@KE61lQT4۹ Ÿ7R mVd:ӀI M|{NvFJG">Ỷwb%'t(s&""|ONˮh[:: FuB[:$axjdg+z$r'<^Dt_  4EfLl5Ny_<ЊԲ@Yoi8KF/$W'!CPYRcp落WDsԆ[>X|C+_7\dL{܅*$ԱJNѻ-M$5.r7G"t$UITÏӉ5WeėOSQ&LwF&z>;|PؐwT _cZX{s3~'RXoTCB;Y-LYPJSj\KWPhq&\]jw7yz~V 8srMs Ȉpශgrl^#Rj ]+*pBCdAP9B 2"cEڌAؙ 'jw-\)5G#sĄ` uDiv^n</2#?ZkJ6~O =":)qwz&e 2Mw ܝ-N̽$oV\xM}J$J@B^g_Aecԟf)@)éܨyd2_yE'lyqЌNzݽ g)љju/% Usdd֘yܮ86|g=Kk,:(Bɦnei)d0M2*KDUG2^CYm%3K xWaJk[1hk:+-tzT"iJ J!!)j/jllv=Ev |VLꗨkET٫ɰnO&x?k`hħ:ykۉ4~Ӫ 8h]pMY#U}eDnv$"YefD5|hoPr%B b>sJAv8+Zď|8 Qx*7_F;P_3zI5D_m֛e):#%OfQw:˾s ylci:ڰ@] a])W4_[]>,Qƥ*hwp6Ʋ>vW\6[˒ oAH/PýlyKuxhfhEtף_TmJ1 7r0#Or6v Sǃq~mC:|\hiX(r*@;ro_tDww*P,SzG<5(׸3@K&+XA#B} }Q<(mk΀^C SWzpfqLSaߕf`lS Vzgбl&V)RTp?Ư3 zN >TC:h]?6yME{v5;o*.h:h< Ñ 5b('P8M~EsY$SH|؅XjCkCԝݓutG0eVS=9;7RB )Ιz >0ѱ% |BͶk-83ܵĤ6a&Ր,(,$@$1"0L$ U]B-&D2{S׆ wr᷐?]@~Q,^'nՉ;ՖFXr/3yo@s#$MWH ,BX,%P~T74?aS@=r)9Dgoy-bJ@IKᘣ]FYqyH紟'f>wί AI&S!1hpdhbǨ)T Z|F_^hXc\m9 hT5=wP&*B&1k@Ů P8@ܩ:Zwړ-tÇ8GKKC_=|60XBHw`&`H LZ<?g>3`<S՗~T<<S72y"y8~c#v惰j.Dm" ~0Ok+ m4$]cָ;*ΑibRT.RV*ԣm3|IN <&s.W $C/Ok #mTjuy*[}rzRP+hOc/4&7ۏv&ӝK? zbEOKZ"SIoh7k88O3wDDg`,{ޔ٫rg{m˶ G©;Bx7'˽G&˜}V^ME[H5Z9 5= R qOS-*  :J60oƫ=RmMCj~E14O /y _~1Dfi֒@Ĉ髅lAG?`E}Xd6zpKD@]㋥tFʜDkXFxh 5ߡJ|{PQx3񝡨OܦFnZlHW/C >]o+w,K)\-?7 nј8 xZDZzܥ@!.(; O ⋼{RJ^MPoD Yzr!7N]^nhf)kqb skQKmȌP(Q{h\z?-ChIz3Nˋ&!=g rc htDJߺe-"b&"2_yȭzKxf'!evsďԕ)sĕ6ibG`@ڛ"8cY_E͇~ \@'ӵDdTL䓌MED#*7vh׮:ݡlDyy΀8o=ՎoS mV^tס 8azp9-~U{9M%(qe&;ͻ% IgQ842kFQ`;CSSA b` >8Rҫ8鼾4i쪘pLƓHOJf}/~8S_Dx޴%o_g,@M$9]3owє2R}4: hͷtjlC:-ག^f-WxDFyŎBh6,Y7CN.K9-|պNrbh%x@ͦ7p8bU[qQuSZz|${zk:5jV3CJE25nOs>9Y |m$i,Kꃛ/}5u \-0]A|sT9\| Hp $eU"VQ})7k '$(s>QZ X#PѶE070MfPIe7IYgj3]7 "C-Jζ(FpXZ?fɢEՌxF_lv?<>8V.%*Yx,  .4$˷3aƈ "2h$ZVHF}nck6 o&yPŖ\A9W:ʏt%9a)ݱ}/L|床o6ӓLkѕ3|UN]%YH%Uh뀋֬< tm"Eٽʙ >\ kR1;*! aAk|zr[uE|ڙ XQ P&v|Z[(^=gp.0aPT!qY"EojH uPc ͎¿|O"GτEe_*7ޛQ{ӮɉGWr;IlD=,Cf (cm'_Hß/$Vat\,^;~""Uy 6fHi}z|LJD˹X*)+:()"A%15=>/)&ad,B!=%V~fLBimYSycvNI ¶o޳wDg]KOnv<2 Ar\YovA41/ArG We@be"ZAUX ߭JEj?$c؜'`ٌ 67_pL*+ 27ҩL6gNLq`|k0pv{H-X cVe+ٳ.p?:Ԗj9F?ͬ5WX,E67ZU_0.^: D}?̍5ce$;q(DƼ,5U"b̷Qzd;RZjq@D0Q$H7'_*>~Oď즘#WF&ҍf48N)ǃ\j`! {e8X:|B^NNCf o24mgDE*w_֏Pn,MnJ/iwEkN-F~>)!n^ w(Bϟ؏Nd䅛),MjmzY~ɚ1/rªԧ̠]1q6l{sdϗ5˼i57?!BTxn̯sTP#|I[ K:'BdO\r,P1f}Fﺎ=#ƒFRv5-e19ڔKG]Rezppۃ ^d[ۀ$J ?ij) cl)V3@9ζppFm~8Tg3vBGc`WLk^0!hR؏/욚d5C! |yC P39waCFJ=yMP/úRdNƬ)^-x DaGRV|҅)Lu114e} 崨5$b?`E!deQ+zco)r1Vv F4@mO.J[Wտʔ =ҝ%Bs'kх%W?& Rux-[a= }|E1YB-iģr~=,{ا@ ;D 4t7n+ !o:P|{{Iw y,>{) 65K)ʗJKFmn45 g;ߴBv5Y|k֯T>F]* SKDTYLX@OVne[ѲALw̰2Ai&^ҭI(pnZ4K)6 &`n0}Q2:K_6C4?ԝJIl+!"ʴϻS?Ϝk6e0$m$R[PS*<{S֝Af,LVqǽҬzBAn£beA0gf#ud@mc}s-ɞ$ L'2c^ܩem =S8@˝/P0xT4Ije< 6 1f,e6({)KsH?ł-W֬'~r5ʸyMt&FTrnʿ6 و?`FT*-OiDkpW6fFX,D0X0A;!1j>tV `f.ѠOxڧk5W Jv4FRȦq|2X,Q0$] Q占EP<]Oupk"9A{HlgZ닖pxyjC$7\mIMV'X#NLz榼jnRTKt/ <$SU&o#xU:QK37ǩ4B h+u5>pW>ڨj'S?[. $*Emg# g[:$KG ?⮒=W(I\6*JPN :lHalGܞEc6WiZ;0n-0J&OTgK ]&晵k3 $zۨȧxrk]Ca ]F #^< :#4,i}+0(V`Oԃߟl;U"P6 a XH B#HF"azwYj%I*TηKܷW_MLWcATOoU_׏~zF  vV>zCk>[gG~5@;];;ٿV;j'~x֍铝 ޟp^NY&k-<A8R'l>mi|}~>yߔ$0b@J F$ ¯yxW{ԣ/RPGճO9z~]_N 4^@Gz;Kվ _d"ViD?ƞ~M?/r+|^ N?=%d Yx}axH;ézy(c3~8N=s `),|{-͏~=G@p A#I&SPzSRuiy|z0@-mnxYL*)9.:jxO"4 %ƫg0B15/1)]i 40p7e/?o" 7*GѤ|& =W2k?Lm5A\F5qS. ҇ݑF-2 Nx`t{l] _5Ef*P/ ~cc5R Xl4olW7 m $P d} -#~$1jcJft *\pNt [1Xi,e{GeyaV/0Y2@pN8; G19åkw3a\R(Q7h܆RMhYrOAޣ56QmA|cn.w`)=Ѽw>dUNД Т 7i{+e+>!>z-ɲm:Hz5yJWT;V0iBMQ) !w#Y۝ZɁjoq'* G  7n}L~hPqNZ{h%E`;of?)XU{UUdF*n;'ߧ;ͨG+X@MѻT,[ߵ/q!C!gL:7/ =@q!'۪:E$bD|̄&¯( S,ǜhwq>' &YIRFA>@{0^oN܃x=߅DǺ5&w[޽xuh%#@tW1y2ar=9d*Xy^>t-:Ƞ " @ A s*:d=S>b:'kD4$8fj:(qw%o{{Z(|8==tP)N>R3p3N3+*sp\aErB;ldk5#1ws/4DܼE}0}i+Cj]ΔvMw8_=CJIk&/]qnO_&k*S?*3=&XdO{樦|C &,BPGkhD)ڋI)y]W6մv{j(ʆ|_+`F/WT[+UX4 > ?rCDW]]ۅ!!fKV ~sSƲnV62J$\6kBI:GvZͽnJΉր |jS 9ϗl8pڛd}|g~MQVt}2d'r@穛Oą |D[CWIQݖ­Eh+I/֤YrF5A`\L't{s[Y)lr@]ъttۯޠ6)&kX苠j Drob! ZEO#,"H eZz2UFUmK⪬íp7E(wDs4:o>_E p?'w-iJ5Y#OA#)6]lCOdf,o1muVO2ol?φ9#H#^\ݶBWt\ixҘGJ!s*e4.Ks#A`B:J~@.Z:@md+WLi $A%2`ќ)8srSjIbd="zO`͂rNQa -6B qtA/IפC@[=!'~r[?n؉ "Fì;@u MPB/a JRt $9MThНfjւj2 Y)ˮXI=I;o{X?_!%$ʙk)<$Лa?˪eyl–HҜ j>P)ArD\3ix=Z3Q2=|_ret9yʕ˾DNGVśT(ʱ.H +xZoPcף%p_VMƴX +D릺3ot8ꌡu +⅘pE$oI֤(8KXܮ)vu{qP6ABڼލLv͈d?f[=WIJ^^͓l&`Ÿe ^Fo=8'~[;$7XAQn )r5B.ǖMoj^n @hhNAu^R`}j|*g6 p*|&ނiM-uuǃ[az.ɋB -Z)$m^$QՑN\fH&1^&R 3֘XpsLI~ÛWR< Vae'(}Z䠷/"to{"@̹v EqBaydv唉,+%c#![Icv ntXe-;yyσnzݑ8V}lÊB}(ezFxir:$;m)nZA7(BA8r/.-zTFZYa#xpηw0 %9£"%00{m;,1 j@b^ڶ9SE{1 nh* 5aOsT oDvA "^wX4~Q, J(Srz x_H`b&rVBY ƩE I K}/(#dF<,3tm@wєQA2ZNJE"y_xX*$. `Xp$ DFFKȩw\xrʶXVƽo; _ a"5uªчV+;i~R鏞w䟓o; 3?F $:mT͗nM_G͆=X3d:]Ol}OXXЧ6a2CyB>* Y{Ӧ2{gt ADI&Sڇzz_:+y-z0en'!@}"J]Z-^х#q&qOyK)V7|&[@.ԛΆX;RM'>;;qwѢ/5ij!e? ,]EWy Ij8;;茉8YrJM7Sl-pu]WL.!ETt`Е[*(Bf^qgL0pZP> a^NNk5B0D;! =%^9]|4ѻxSpV۟1nS/뚑c4rTR;ySM57۶?o$F)Q6іO{whݱe}jyPU#EoF%ab}<&/Zpy_08 ¶TRaX "k뮤8kV@)ݣ}E!`%A*3׬RYHbKp.iFJ6vH P(y6/CPnNk=ccI?ZV]YV`PuޟݽL20\gbP ӊ[81ܛMF)ᦦvIu-.k8C:H?>|XBHg9|lxTҼ$L_ ƛ;&R o5r υK@/$wn6tav85QB~Rز|ngP}2Sv eоLA=a'/$$sA#NQ?_,HI}8e/e iv-hB$rsHOly信jƷ)`-p/)0)Y\V0*kkb.f+1 WuY;〈ڽő_Yv§s$8A:Mg1#ꛦDj-&6B,w_(I|^s8jvΦ z\{;%]O @,I+jVeh Ygth| km0SIHȁUlrz|>CZsǎؓ(r:ĈY^}4R) 1*Z<BWP`h`]Sy|TDr cq)~1C6V@ZPϵ;VCҍO%<*}6LvX{*n⪗m(q0wG6_-'LMJ}Pڎ_ Jd:.Y~__]Kz#*M- AYp>v[;(3Y,dZΉEZ wk`1C@l/'W/9k-159M=oN#QG9eN vN|/SFr OnBT (S֏BpA2'Y˧60IXAu^<J'q~{Gqso>&/`0 2+ U4JE6AP)GL0KcۻlWc1QFYwtizP?ǛV"p)hO R]Ca0끠R:J+báIc'`PEf_mRfE`ʱvz,>W\aPY=rX CN4-tpr=j{6̰ƷΕ'(wz╨ne:S']KBm^༡˷n-xH@z7阨3*Y [Y5Aƿ|ϫhQաE.$;=BF}u㎹ ~\L(%1DqnA!dB߷jMMz#iw1*bZ BN-w"M ]~1 sz 'pZh%**X[yyn㮪H?OUKJc6ΝyolL: 4ΝOb'eBḧ2BZpqrWkVAsIZo]ed^R$I4'ũ=d1V=;fKG Y)2mU?%xzfWLx"gK:Y;|LHÝ%FՐk -fX t04M&7}vFba)>h>D o1@W+M]!m iBПīs_Wz3=)9ۆAʊ5r\RLL RKp'#B6+@RqN_c.q`&p?zKh*sT֏;{þuԮܮo:hs s/ѐ63~/E~zHD_u>B2' H[i/Qa;/ g<8$ wPn@)Lg~k?쿈ۥk%sLK񂧅 ( CkW)`o[؟ F!ʀwQ`n_~)5:xkBUivP\^'޶C#MYYsyk :x5q0jR[$%.0[|Z/G٬'BvK`&?GrufB#eKJS4XEÑn+tC,H|iyU08?J&hWl! U pdWek<(*BmY-0'1{q`ΗurߐzbLٷX^l7H v|3(=#Sc |Fh#J!%%9\EcRv R5Gf@CvPm"66Fq4nm;p BGR{r[ Z7DϽ1s=_9 /֑}̧0%V,Ťœ(,( ŀP,3#$1 Bao_^Y{jk7ydeƿWR7+^Owab_fMrS_ѸuI3HʙG<˯^J"ٻ]<>#}'/4`҄Iϰ-j,T6QL9+u-wp AeI&S(c\XBR0h1Scy[a,ŸGz 8jz~ "^-8nѻ#G?_;wE2a$&Q'xuYdz=ʎnv^L4￀輳6WW8qT A2+S۬Zv4ID򰪳RZh0,d:\6U>[L.ں++/ d't[MA˦O4)A0_|K?\6o6Oؿ.d'|rzfRPJ_=C oo0LMi)iVVaegQ缞= D`M"qղo(d"-ƙd'3UG^d*lN(J~ ;3YFLs~f PB kB>So}qwxPHfdK`M? "w6mu˔D ܥm3RHC/ %j, QH@>y ^4l(@oB?[5s=ac"hv/%J݆a',\ }gyAV$dFS+˗W>+byA3~x|ݶ"=NֿgקXR%׵W +i"ҀNث@fSX0&݄ Wpo,(k3_/_,}ۘ-"@ k6ۧ_f^'\'Ƃ̴;;h90Z=(8,Թ%_XYD*? om2s͇!HH[(' dF7muҥQq u%wEL3^;GD^L(G9r]dY X0lD2\I P:E-qEebNj5cLhe;/Uh`Aq>܅MdEsADGa.RTf^[Sֲ~fU"hlO{>HIv0u`?]08&îkk&q A>FgMII:-vGk"1eLL~%HT8[9mWtSU3]=R`kӼ~1![#5%P-pXM?î,;포-Mf> NV=D~X(nB W ֹPS? d(yBAO5XU6Ep6ykMa`)ڱdQW [@xyuќz7-ӍKvut(-y!k!|)2Dq#/;N?`o󼘰c#5q eFAגfފEi1\%{Zz 궐kz*4@I+XL+iMوȓىn@n<r:\3kҶG2M3/5XD<: y'ucj7P%_`$Ec2*qq' אP瀪fzm)(lr'YЫxa$GpvG`N ā6Me@JW{7A'kV³JxJI1e|t[(-/gLIzx27W(R[u=\f.;dl8M8l.&G?xz6)/|ĭ"F_YCi8%󛏯f͏agI HY,BL Y/8)5 S|:c·tPeR7C\#C s |]sѳ34#R@"3bb `T^raȀ1/IYs` -4|8hP5u[p^.Gn}[ ÅD7x .(Vp[lb|_L4Uc!⎁Hc~^PJs٫3Ṝ }/&gm Ы]Q;V{҆ш4vFI A8m7Y'W|ghl>bSDJLOLJNt܀*g؏VPDBViL[mnYְ Azrcp“hOBZ}ϣLv>7%˹ēƒAn:.RF1MW !'+W+,t)p8!);e;ÔڡD( /8鯻<8F曨22 &I+8ߣpR3GUm) B3sKgTkHNd .gP2z73ܣiBz5JLQF*Hv|AD̜XTpf]ЉAd@-Iu=gJtn,. I`77oY k6wjtBwY8֔q59yFml2EHkdMC)]mJe.4pr{B> *IӜ564N"ټXH Ύg튁Tº2&&vurz=wV_cHq L^qpA h@_ <:fq(21[E^)+sn1d ǩV [KD9xm]do&(Q>5܄L#ɌF4;>a~ w?+ƨTFz)EЕefp2`y}yg(~ QwM߳/Zn1KpY朌5ۓ'uuǂYq* k`]?\RYLF9镥ȿMV3Wn(eiH:F ^ZN^l PBd3\os[{oX0bE!ᣲLxY?ֱѝ [7?'ders Laj ưO:/tx`Z›xu7u$ Ua$זt!:mWOr_ov_f_ XѸaBezӖoBԕjG=\8;^9j2!)nI6 _[( 5-&z}ku*hvr;j CC ,J*/P9֗PP8|46EFֺD' td-S\l(^A H\"S-Mh0 -g;Td'kՑ=@φe89X}KFCԲԍR;LTQst֐Brv9hζSfUW;?5\]~rP&iI#K6'GkLr|N;cOӭۏBY!x}7aOט.- =oڣWGF+J4G.I'~g8". , E@$e V|r|lwUwJU!U'"gs|B__W>8Jf|_vwGI %> "1x߀AXs~Mh}Pkv"0{Ǧ1Tmol\х*F%3ټ4͓y?ݿ?Գh[ơ3P䌦AI&S<-}lT!/fhSoD qy9h ((~+,QL5Jd:ߑ$S{K_d~$xڏΔ&& ZK|Y7+2M 㓅zO- \փSk4~8i`MV^[#·n%5 :mL'Тvb\4x6wҔx lh'14&uCk<ίwp9l{{J_ VCDcXҡ<| ԕ(Yl`>: ~7jKEL6_IL&`i>#dIJhdSLXA +.+T,*caɛ4QDXjG)lI]4NG9\Ի- A\׻0D"K''hQj/r(v uQ^汌#*H%5\<*{Я!JEwB{l- ӯp7U@dBaȲCsWv NCTdԌ [bSʌRb1&"|5YY/w5T,l9$Le/0\)_ }.̌]I9VJ]bw r?e"c~?5JqYvt[\)M0֩be6`QyU9(2/RV|ǃoL7Wƒrt&{.h*] οp4Xz^]F(I2>_ԅuTIB4 A^0{m.D'78]jN,$V190zqy}۽NbޓNlQR:ߧ[MH:#<6S6۱rD+ =E8HS ?'PX^ޓA;32vطI]t22ߋme (WvOK'4q Dhm;(c t|P]R-zO *[ֱW1zj+dU N\պc@f= d4(潘o) jg!@7Al> lNSV*lmF^Ę*UV|2 3w9EɎ;q*uJT#u;<ӥ(aʻ@D i%R3s6'݋8Qy:^S|ܽb\`q7~x$rQw HTEce{0 qٸ%oai_ !7^ c#D!&] gR:BRlY܅9aYy^!y7jTG^#\u{}%!:s g p?o>Vęo~uuww.]tAHKL&a.TpR^ v]m"'ec<5]j|,UR@T?y!l\@}zkSu)}Lb[ fLB{Wii$a"FQ6\ B Rǟ;C涳BlxxV q`3Z50^kC.KLPXMkZ˖ K591#0fC8)?6ƌ#Ydɣ) FːY6~i4t^h8lV`yA"هwS/S5άJ@8H٬q"ړ\[!mFD|8:/R8kTURrt ڃiCho=$_$U`0ht۵ smT7KIx#)imKZRGzjA/H;~ +rI`L꛺0}Vo)mKT9Rxx:ұ4V*7FftadVX`JSB8Tӫn0JQ%;C[hli#-YbOf.sUqZ)vg$8aЧKDpdߞT߽fd+5%u[0P=t~ּ}o_4~)a_qJ * [敨N3փJ"ՊUQ; ri9 =gQ%n ɸN=ЁN*Lvzv5lʁӴGd`Z)T$߉ͥrG A~2]3i5- jV X3o׽0p/3V jX&v2Yq̍^9(Kl` |6r4fq"'B_Zlڿ){~{LG?oY+0jY,2EX \%q q`t]Q -&/qTIz= q2S?}pݩiphM3lσI=Pd~>fH!h {Q(9dh0O;N_·,/8KͣL\/WVCXi~F>E І&nt5lv,Ar<}f(ga2"lU0kfn-C riBUQǡ 0ϲCW mCvT04, ՠ 2C=/RkSEuDV%"ɮ@V{XKj@юu༪vw)<2 $zrۂ~].)}#=@땅A)tf/ct Ntr(--Q<jXy[Ր%uSi=|fŒ>lۤW:8PWs;ݛ VEQW,elA"nSQM|GqBɟs:ܶ{ k@? u߱ bKҸz2,o\S"yn+i@V R$B+h939;#EKcj5ZK?aLcYK&`XǼL$Ed%Rf"j5*.ϲ_z@ 4z$O!=!/ Xu])\c {vK90{(%7΋ CK$|"al&WX]R+4|_Q5Xt]*67NJ} 8 PSŘU8$>c_`=E7 rܪ4(FEH|JSOn8ک>f֪AFQKĻ$忊{+?v;\1Vc832j䝌s[ls)`3hwKRfM5cnU="֚6H`b6uV- /O FJߘ'[kf*q2{V"gi#Z0>ч ւGvC+y,RpS "<-& !Z!O š%x!aK"̻P\iMPb2~P!E>mBAnVYyE2=A$ZA5K4^m,@'&, €PL H*T)W8= *iQ6[$u|GO$!/OC/׏lo $\AO4GI?=sf,عjP_i8/ȽsJ{!omtQ!M?ch =eLUH>]p&chO['qDM9,=W{1`w02+9-sCN,#%A $VJ(#pZR2IeP:nT&=d=v[X41ةVDb9m1TW3PZ 29W㶘ue)ysf!7:Imۑw93JZ,'.2 ;cW;OGSh*fim"_̾WpLTP~l_5Oo'>dY1 =D[[9zZG:s3Y4DaŨ;'MQXQ&д 5g`~Q잜 ϒ& O˳o`+Rh)~߱iE͒H8=mu{;g4 m =2yt@OE>J2GgӾ虗-ֶN!|j< Oyo& ܴ oZh MSS{ν.kN84YeԔl׏ 7 ZT}`[B7taAx=53{;aRkGA(xrh7*,G'vl=*F̕EopaX%hۚXk,GX0/)S9>&Sv1Pmx/xzh%Fxˮ~sꛬlWNҀ\?: ÁwT3K359XS{TJw jİ=OQ<Y&2f~ii6%i:YCnA(RYGYATӊk0M֥͔hbL2U>t8\sxXyO\`tApA`A&) qmpzΡH 'qp$.mZD_Yw[{(l4 "0, DD$1 Bs=}w<|]ԥIRI) O[W)pՆ!3gi#C0~KKr݇8h<ߎ-0,.o?^-$>I<51D;ꛔfFZU]k^CwO7g fx5vrs'X,U, €`L A(Pd1FH&oz:ﭳܺ%)lIU:);egUg{+f>?y~"rO!Z8p54STSN(j8X}^ѵ2w{?I(;O'*nHM(M[C}6=eG䢲 AI&ST=;sZ6c/EcSN -5HAAϗS3zOÉ B3 C \G@j>4ͳnDE8{R`yBZ^85!fI9rn֟Z<a2?̛SvsWE5m0:֠7ut7T?$afw\Q44_:OiPړwW'K__)MM0GD|EXEo BQ0i#OH+ r9n IulE^@%|_Jҝ]1௱NNyn_25̕FxRLiR+u/30zer ǙYhRm0"+ШfSEΛ y¶Рa$Hkue \Q\7I?SKoRN)7j9Ynd|5[E` e{O<# Kq(j\RqNcI'1 d; ]G7' ?L"blN7?Znv#F7[\ʞׁ62⽑ $NhAAư:qH8?4]u\Q1h& ci`gS\꟧aJbL7:]?pf_97\{(cQZHۆUMSnOA5ٓWa$H^h?@ìkm Ol(22-fHwWN<]DKH[irhVn_o qGGMlW\$HHc(w_CbK@sa-Qo#5pT=}zCQ0TDJ+#< Tnv:[a;1XrntmFh^+27Bq*uM~B)a?y b< u!kQsU(x Xv՝ *UVxQ+06}B`JwhZUψj6h2?xeP=DR t L:TC AGv)Pr\< uBVyrP(e8j+pS.|^z(/]3^9-/]\p_B>f圚,pB`@.h?v$4't~њH}|=EjAI))GlXKYU DZfd/χ68pP\֤gAcDR\;ţ9F ܥv/'{oG3CE9U|uW&N58.=-hww/fOvK= Q#smQ/A,^ŵi<(,ݺζɆR 3hy#X,Wvv_~` $n0s%~_dRuEhЩ|ZC?4sWzY]\Fddnέ4yP0x |&0t*<>RIG@d›j8)HiHj+d#A+B|oŮ%SJMQcn-;oN)DH2U^|8І${g;#Vey7+0\gLqqt |in{d&J]rBT?|tU>=Ro7,}lj^v]QtӼ[7cU41cg%PB;5`_ yE*Tf:ČȪ>k;޽zTd峅HܹGodNo1X$ں}sypXofN"9A 0!,([V&Jf-O"!]6FK&[ ugnM}'wӳZf TlHss1b6HȰݧ=pv"l>,/K 1 (cԮ[j$VA|xVًH_%[5K{BK`bktUeqHM3v "ZF.SQNss!֑=ja]rRGthW9a= >#g*ZX[/ȊtYR%>X:p)؅($;l_f߆U+{%O5n`jFGqS[~i[+ƍ%QцmLF}g sЊwZdf H>C*#} &TYC5~)\0+5AH>e@6ʏ~`?!@"9' Z Į4<+AāA-Ev?fdFw=7i,[-=?5o R2QoKvOzdT5 )hA1{?"_IpSrnWF)+H/ C('@-xL|\J jc,õN)h k1a"S8>dQ밀ٺrPzﱜREÇ`_ղ*K(UAc c4$N\c5dn;/E=эvS4{%9\GگPg5О6t={z|6nrR^}_$*?+3.cGqԓ,=:L>~pB6B1$ío>ç/ ,#@wwD:&FpqK&MC yUaZo$ Y[#;90cLsw_ѷԲ幵Ys'5L!&4i~oͻ$qԕ,L:S=K>Ua9(C%.YVv9fja2oALfS_R`];de:lG|L<^>FVgv d"wԤb=6](V'b0ŽS.{IT}kMQȃ eP|-ET[+ĞhK ^B|NE?-s=Bӝ#ZTia7# 9Ĥ\wTG;7VrP70Ͼ>&MT+}4u G"H Jٟ<2̅I p׷5ϗ.hW&u*՗E&4DEu޺g@+quLQͨ%xoY,W87",o$A/1l{^bBvHvV%5)"U h?NTc VWFha7|{sS=$lb|6SSپg/`>كCDƯF'Qa= [s)MhF_I#9utR\ځ*&7Z 6{c-95tT)I⳯VY03Ȋtn^BcZh*їcru:ʭFA~1 rNDR^ǻ1$YU3u ˇ{,7j6R`BCmX[o@DS~{ k G^. cf a^t`Cj[ߙ?>PKk0|nWS!żL}ocMSH[XKۆh;D}QO#'gِ[P;TkaS+̑yk3ݽ)Rף(⍿c%ki/?9H-FR[]a 屢vI 2][N:hKSȢch})-~?Q!Y!D3w*+rJvqyTsתݠRe b5n:6m&ߗy7fo(jjcÚ'#1N6z,]zI.v/H!a@e3v%u~;w#՜yӵQ<=qV+`+$ -BY&A$[ 6{-MVoo7.?n'*~!JGGNcAfP@y{rɞYVIBK[o>wʅߐBr9kvy[4:?>ۇ+jbO†(*pVDǵљbd#p^µ}@k B[%> R l F5Kqb!AU묬U*{ֱ37J) F$8hB'E04'!p{ d⌏"ڋ3\L\0OF+WIO(V_kDUkc R+Dc'7_ռ.佡^ZH. լʃ" ]B^aǔLpnZob݄t@]]yk7I:=;N:pxHܟvǡ&y,m)q+ \#"r*|IxA%|r0y+>*KjɵK-@-@9ݚP9l>8L0\m+써yHG8 *(4!*q U> 8V%]?K~4ѬI hpzISzK#3u^56%U wKv)jZRghF;w̴pO&SyM8% şh-fPI80Oc"yͬpn6X`qTy/ly=g=ґb_§upv V{? %-VyaRX6{cF*_LT1 S uYZ^ Ƙz|/[Ү]!,ٚX Dxfb '̦_Qxz| w"N Cv yjg6(K Uv MƁcF58k3Dc_(nz*G)`sGbC:f?|}B׬fvV,N:-jj!Bm IwD,\3x(xw\L|507*Qq $C޳$Vrk 6rQdiN, -X7b„Nr,&:eIϯBVGeU#HT,hFM9Kmn 9j{xp3Ke$b~C4V"/-c.ɘVR ]=KPi o>E"%k )^TG4!iJ:.٨3XWpck)m|B=N x`2sgrjҔY>[DK ͐u|_^e9 P.,Й"iNd H ~9_u-)v42AW\F 2Hhk8yG%[.{En DiG;,$י'rg)`R#ځ{b^yìY×]zH\Ib^tc9lrB|z9M5pwhj>^* kkvp&Ր,@PDBA^.s4/q5Lב-z=:FGd|d_n4"uPp0O%zNntAgb1>äMZ~r_w)sxӎKI:؀8jC|HJjAsfVǑgUGc`sf v_#/zޔftG g ˳Vƥ7tm<BrAOigj5x^~[7ԎPq7u^UWm1'%/Ko2{f4v1hP/( Щ8{m5,]{ΖPPԷ66¼y9R|4 N_G'K@Ʌ)V^ENJS#І:䶶ћ(KT .\- 6@:f0{[%.D'7D^ >JYg%}%k54ZX4ʙ:%\GФ6)F%bQ#/KGjyk{>4^"Ȭ㚩2{==bBѮ7G gV>^3ۯ҈fQЀ*]%'")#!/S xIg@q/dڶ* t-GQG`$YSƣ W18lE,>tx=ͩ[ Kz?t<$:'6˜1..7GJvlV4D9VMpQuH6u6n] bL -c)pP>ŸbYUPђmI'|H/&٦ J̋XK(/e %XE: zQx p i,2^klvk R}G&}5col2.rB|rM"yR}=~f5rvULYiheWH=E%y^RZKr!˲&8~DۡUԆ_2 %CnMDqAkjD>xe&ͻ{Ixu-5o/Np-#}~qRvzts\'2|}w?nN|__o7_U2fgؠ>C/ݗ9qʵa e-yn<}<m]AI&S+PVc^禚,"I#ڬwD5䤓b Yj<5e`"ars$, c9ўkDd?#bLoA0haS /C)W@$&~.1&,A֞v{w%7b kn29"LE{kػ?}#GVT$+a0'&G_T(TݷiA= m캳ʤ'oz[OvCUxЖ<#aR 10E^#,a Yʺ :f]]A [Fa;.j+ihjKHSO{4;`*4'wBfJb M˺rJ8Hc5>z,h%<uGӐ\0-%Avǎmq=9O841F4Բ(]k'0ZXķCG82] ]ɝAp{ w(rYۛn axӚX 3%y@>Ouk+X͛',YeӚ~p9 FRmmh(]c f;EP5ˁpY`X08t+d(׫]b{zbe$?Gb_C?~\yE:E/ݡ͇-nTǙjAa& s,s&'XOQ#{-#uԒ x=~I'~4+呫V,i̝9iw)y&x0TaVT=KU_LYʼmJsT>j؍K&o]f| };yf ;sDZ0uASK(ݘ)K:W TGs 6ܞ;`NJ0"ks@] ul܄_L=5\: b{ HVРZkt}&q[,HmBV̰jϤVHQ>{-Umn@b}KwUtsiL!.{A!ou_l tiܥEU{C. L$NG.{rJwx;?%zGW1#8=4,eՊ 4GA55PfQaPy..B7Ql$FOJ)ԋ+p3">߲H һ Pp#n-e@W`k 'mO!a}tmwYDosm ™p$,$niH29זVg0d p|!0(QV%F/R{\k`,{njxytNpލx*4z~6fJo_Ez:>oĉ@ksQ#&Duzcc1XʱN"-j 8|oC`2,t6pSuڋ%!@P̝FTylФgԄ԰aXp`rv87=)zjUF|舎TjSlMj~a_ XV3q'DS#g'cIjt^ҿ9^WG):<ʁb_xy_09u-f3Z(M?9rP:ć4^yi@ա׳맅ާ9] VA5Fou$̃(Ul*&gL58iCPLMJausuP:|[tWN#`Fx2*?7~1Gֱ߇0)ݟ*bO P&jv}n۔W\*;nrPo۾%+|/Dg3 =:,^ʹB)]%0X3Nod|`xM}>6Krs ȩFXAVnqʛ'wLK=}ҷL>wǴnH]D/ fSֱD{(nldgjhҿ_+ M [V2N޽!H99`(D+TbGrL޹$y䉢@Rzs2]6CyBŝ׈wbD~OQ;'Ur7нv)ouPU՜9=  &Ռ풠~),kbH'Q&7eLTS4t twB Ԕ:)"-sd cu^\(A5TPR5Q:DzYFuן!/&`o~ k"ރ>9gϛ\֭ 8m독 ;$0HXVL> fE~O0f2wJrݬy.] ǿ)=heG"rƶ4`So~bC% U ;(c@uPdb["v)f5ŷKA?m6t(@7'l,b{ (Ē 0!5^fo5_|C>!Ar8G[GJQ ~3%V}K&1rgsjF|nZ`g]ZTe'&[ EƜ&#à ׶?kVO&X4JkXt6uL,KŲ|M2;GjP֤6`De5g>2VGVoۑr>EC4;`%YE3-ENDyKjv;P?>txoj$<=Y;+y-=%ENi읬Y."Lb}pCWz64"c6ˤ%y(<A ,_Z`z([btR#_&:|aow<\PR/E?rN;iDf\H<TWhjK!`v7` S&hL'MqCfϬaCӖJp?ūXcR/Ym9 121OEvd2|KP]2N0/{ %ۥf ȣ [*. ŀ`L4#KP$3 WYpq nKs.Nw[upGF.K'.mWll1yzS/ſQZ\??m7md6ڝ*]Z Kt~DyF]-y⟷a3}̝ 5kB/!v}~9\XM7*8Du묽̇,<,;q WD/s1N 9Ǥ}Vw uS'(j᳉n*`.!oPHuY * gL F ^2~ m#%8%ߕ5ktHڂ;{O['q+eh%ʠ&izA$sinztޓ7 6:ͦ]A>Z,7<.u ڑcL1r-Zcv27nMqC) k*'u j%RkH4[ڃvo=f c6zmv'aۗ}i ?˵WS~Vؔy\1P=gsPk!ғPm: J!\Ǟa>ə['Ay9UF2'6;jYVRu_wh UF=%E nUjԠ@"&ܺ$!Pߒg=pڨyuZ>lA]ߌxɹ nɲ]t7jo=I.4x ICnqzM=~: {LsɄ 0Yo"*, pd B0T.{;DĽDU}R^m6yiշ{|ڲ5gx}˺δU\?m={˗i.}Ԙ"~?<ڵt= >#_*>|roy`__dɯeyoΛ$5նǬr1wifG/_UO~6b(@AI&S<%XNTQj*|Ti9?ɗ5EzivO<ɀ ,jf(1jB g\ ?tJLc0}[(%8Fc5&vK7fLDT}\ψT H&" uǧrʎ߻r&Կi-:U٘;?;g<] )Fsy G0ʪsn0YF#c]<y)٭4hȉPQ-/T3UvG@/^Y#n73s\V`!bstz#[@DNU^z^h;у"[˱Q\vEt=PU,, }O:64Q;,6Kja(-Ghu+"KQ?qT'`Mw`4L".t{]NAAʵI%6٥7079Qs0]cA3oS*E!jo!F#G+sRaBۀr̮<7Kc-dИ#qx}?Bc~) Ā&n\Y!HdB2[VXɛmXm ¾KQK5Z53L˧mVDsK$~xqSJFȫt+ޓKa0NB]:&(OqCVϑɆoX F~d\0W+F-::џ;MG沶&74_ۿ df2[$-EX[*UDq}dOV`)q=k> lq VH<5>Q,3{?8A@$9щ SΛi0N9pEXkFXlם)^['&`^43tʸZEcai¢RS猪1k@c"W xHQ4Xq"} ʖ}+{+~E.̊xd#%aS#5) pcQJ_]}^ڞ:x;N{є<47_zqėJ'Ejnh@ujOñ%d8X`0F{Z~u&-Y]ZaC)8~e(=v~x\j{܋m}TI [(A+f]w0~XHD',zU:AY84i P'-GӤ7IY:;x7fsJH.{)W9zo $=fyŜ}oP] ,&o&KW@74^"4 ÕܵԪ/5+Tv'%t ~[@6lqb>”[rHy]s!\SwT$ƐJBjalrYkBҙ֪$c8-1f(hP`v&F_r,0WiS~$Lԋ \ky苮c/u#%;=x9=+"]t̸ [}U"$)"ij…:I\p:i`57NGe۞+ϔƙЍaly,|>KYš$K^"=zP+ !u|u,MWbɔ> A%[mCUپ]/cRަIv̠Pn]kcS` 1 x} SG*~&樺X"0&@L A$Q BB0H&yNjI:$ng~vݯs{ќo-0=M 8/w>O<4ۀ ?-}~?By]]OzN?83I>/xswfL|N~qśP̴=U38wC%-.\;?&38[-jBzi)84rlte&߶|hXg>m^>b*Θn9:}egJB]?GE{/ EڍX{,I0'Dðܮsb|fAH҆y]$)8r>4\IRgއv1z}6PNi{&w46}2rrLG+`vkvKF:mUu?#^Ko<`).D/IqhƷrԆXwfɝja"j#:&_f%AiRwψԴmPҾm;.q-XNg|/lW1̚O}`TGe쟳\#MUM2)r6q#cϩ!Dc/-[రk'TKW= 3"%Mr۹@sh#͚-ۭS7̕W\g#H~$܀"Dw,™[.fl9wL/S}ʪ[Pez+uTl:@R/H>tNO6,U, Ā ,4 PL" DAYVW\U.&.Td&Ѿ_O?^zzSؘoDB-:n^7_KJm=^/ A{8ßVWO_QLu߭@GQbʐd2=;>d t~,lJUA,RZ fOG$J-g. (h̊SK"Qa޳3Jf,/*ymESgC΃4q5v ̨^4%-N?Z`Ĵ("]- rh\IBa+{9 7QcBk֖Z,f^yɝ)_%J$[b4&0$%%^gG|?&i@Lgp:A0I&S<%w"l%]:ѯ{X CY&ݝd/u tܛgluOW)+I>2a!R 9U0k2I1seSI܃2I{Dtd ">4#ܡ@^_m+y<u0eŏ_d&uN0FnS "u*ot2 I-7]F.N ԹeifPn"k2#|gI J'"޴9ew/lmBP YcHMdu?}T=V@q(Ǫ&[;x=DȫfkDͷ]8ӝ|8n>:@JH;?f*N'-SG̱G-60AD@X1'&Ս»a(9fI`â*L?("a-ZenӡE6h&Xg$FgEHv䰼 {su>;*'U }ԑ$#΁(2ʉfDW>+.f%Ȉɉ[`pjåf ȥw]F~b3779Y}mz?FqicZE^Ѫm0S}J~繝aƃd n*9:7Z eQwH.})EAE52ޙzy9B0|FIM*6p-Awu4s}L]:Kx?:\CrMHAoI1c~v&T+~H0xx7/DOV-\P: 셺d5?!\^Z4MZ OVג8Ǿ14H"~jKp2]`i /VEBAkP;d]mr㗳e*2 Ɇ^KK)F&?ȟ>!k/Jf!e1 œhSwLjWrN oo3UMDRBްͲxx(3z"dW חmҎvUlva^Aw)> >Ё$WRsC"+}I#QHWed~O,ao T`09Զ( e6[ck%q858N-IfDIajf~Ns#Xeژ_zq$z:Sl“(%f$=edN?"'Mxj^'D@Tm4|ʉM6ZG.崴 0D~QkNJ@G[=L<;uHPⶒJ"8%|@`d#I\Tyr2*p^ ngtV9*M'Ǖ3 =ߺձaFu vT{7qh:VK hO]g]cI29T]u-Qޘz<"SIrKՍnM;(48$bEŠ{\~GOz/sôlH`"߹g,Qnπe%DNH4$wπJ1ZO^\ B %vQ%lJlm`]wE$ז59b2}Y g\łrAk 2Yڱ[)#.{u"6fx.)&}te$µx$E!DMn RJ39[^J 1t3}A_,0z>~^Xܠs6s4,47v7[jν|-FRn3vvdX׳&Q0{/U_nWMT!x2.eֻj!ds=I* 60i P}Ws>TH/i.Ac'#m*ّ;C\7)l\8ъٔYnh8mONu4S|' |YAA |i+q,aZ+n5o(s`BC;T6þӲ9'1FA󰲈t>ٶǸfL9HEs:'K%C. A~ ]ۡ}w δ7^·rѴZL19mSvɉ Q5PTYP,gik!;­ƺ^2?>2U^to6S%mJZ'@M06+ZvwTktuۅHlYKαm"A*)ꖹԌ3=WID5p;R s$g3Qj-6׵O {N~c5/C=H+-D`26`WRa@Y8+pޒd"jnĶ8㒁 ibذysn4Tv"IUK4 -E=}6 LN?G4l4N*Kfe=ؒpQ"JW xfڳ ?ܙۋَ]Gl,gt$)6U/vOj!dj+Y/Mk?Ro0?zMɊߕsds #N2,~e^i&ІD?cMʍ+n2;j85*28(xWsCBg^$:챤UPWФQ_:kv4Cl$Ane f6j`ؤjʕC څcOT=7Zx8UR/KƄv_S0o1~ UR&ƸRD:l+|\byW~#6O<_^ے9 LL@v%U3:DVY"-ONas:(2BCYfp8JΥ/?nUՏNEqE `00븝k>b!xBq`#<>IaC l]ZJPxhqjvn5:c2A7fU{JĔ:cZXbϮݖ ӫZyBA cߛBtK➏:~ M1P9G DɈӥԸt+cPJLZMy?'y U J|0y/u񤩴@cu@Ҋk9,w1T=i,Ì*i=:B"j4Zxáa\L!-ڹui%>!bҦ@0q `m7Jӧ @00:5{6^?IѺmS&!p~JwR>.7oj?YMTI?g%:8R(Q\͵ٓu45"'mw 4#6C$lW:"J+'†%话cpouCEښ6U6ڑ3KH>(3+(^e8:뇿A?/> ;ցr?B``3Mx{85(Y[&>6Cˉ"ϓgO*=00U,$ € LTB1H"楦q磌*|#?~4KoW.vrQxw}SeM|n%\^hSB 9Sν4][hx:tz(M|_TΦ%ATo:j{* 7mҭRu,*+&UjMq6;>:VU[OQj;Ve۪ΖUCZ-,^@$$)%o qF0BCۃRlw3clAc2(cKDRdj#6쒺movliodhz\X5*kZ& .Sй}V$R+se o)j6d[. W},,'&p=S[/NV _MSĴ՝겶"/lo#Z!(Tҵ{y/Ltȟ2Vw/*SE N0 楌{/ld Ze듈<ܭnZ3=6X>E%e|5:r>wÓ%Xȟq_Q$ZOxII(q0~!2\ έ{+oÓuA,H3|>` O|n!+=n gYy=㮋!<)|qaA:m5Riyݱoǀn] `95<'r@:rY/F&c;_\xBiPtZcuH'^^e=1=]3` ZɐbMmWNRstwԮ?4&R"u@{9wzb =VLUaX\fe]#9iY ϑnڻe8BS7o!uP֬>6[` Q^[M~yJ[Ȍ.3o]3"Ȭڼ'5,Z*rɄ~ň-lb,X>gr%4u [\TQ i 4(_;&{& Wj/j|&ѳh)=7$HVJɺoYːݣr͛L$_=gҜ.iuΦ)T~-yū:F:P;ml $NOz1z#.kxJ|~CDk6' DvDFof^?3ɀm 9/C\i{<<;$~S6\]b+֎(y,t-Zz:H+djྎ9Rk&vtl_p/Jrz %ڗzą :'NY;c3pyƱQ^2d2pqb4ZU_T ԗr[.kҲSibqz,8-ZqdZ/fc;p)fAm67m!nJ"qr{J$&~ !]#Ņn%|' 3nO(#By0Zv^/O4]&!GQeLaq̎qDeBm_")1hK6~tk@G0MD|("G-iũALb5ܿ]eo"\on$T8 :ͯ=\Ayy=&.Ġ-ޣy)[}`%Ν?OzgAu1MPrq~;CbG<XyFf Dh~zKʫLŜv%$ zF`m52\7OWAK~)z.@JLt'( hV+J<4G-@v2x%y憐fYp>ÉKЀ 쩮$Qɑf\r:~3i6NUX uSgcc3401 +dL>ׁ>!fs<:Qvln%-w5ϿbY3nhpQFFA{pJB zE3]bh 0à٤,(ɇcZ~(< dhIDg$W @[;s+;z?I}& ˙zyd@HjRjKs~C2@ 1P#e=ǩL)©J"#hȤwXqP` D݅QZx[DZK7 Crc˝p'A N\¥x {؆e_@(hN{Pb&Ǧ z|W"VW侪/O"zuäL͛xxak'K$eٿУ4[PoZ]Elv)r4`)O{RD -"/Əӝoּ wua&8F?}s{wE-Uiqj>6[d6+/Bc1nC 3<َ^(&I ޖd"H(ׯkUj/#۰Nӑ?fmKXRrn Ν-y>}~1zS{Q8o,=mV:%+,NmbђAϘ5F ~5M'X کnSo*?x^یDёN+dԬ5Dxb0}3@|}$2i s}jse ӳjg('ZWYѬ̢MA X_mcp>LmH`7>_9 _dr=V"?R;X;\Sr߃ĔaG0t#ܬCMsd)%%Zh(`]].sXxϬVyg1S'g̴Bf֤Lm$H]']ɓ}>Hǰˌnh{!T<2ia|6cyl0΃uE+W<$2QOK.aBKt1h$7k%Fooj*E\f:X 1q=50^֐w,$x1`>sIzuh\l떟׋JT~֟O 1<^, lGDٸn U"]6t^٫.ky z5$@6nӾEܖuU[vqR!XځyՉ*rSc@kDS1H( L/ /usC >?a~>~~*OL4Ah߶De=NJ7/85ћ <V)2V:kۥ_LXBEJ/,³""^JV9hA-,VQ/5Am)F@^i &ISd(^ŝ ;™KƄPDa'ǘtV^v0 ZFr>&b#KTN5\{R EwjmE#5^}yNOY'pTX\=Di#$ K=̫IL?X9~y-897qbv>\tE\=K=誗63txb^ v7EFUi{c@Y#UR܇.-}>y.h[ ־Nۃ{H;$YRTTڏo)p/AZTa)3"ί$Xve1p[eh:2߼,ِ ;f:3HeYyQfCGE8 :%~f` Hi^ } [K{Z6uڤW()}TW`:* /[n:^;AcwKu(+s!jqxޯEq_BM%='OG_-lI7 `]U#jqWB^t>:kxԮxB?@f/Z{fZ1nQu]B*pt;|@w ;ą ݀)ö5M!خ۩[;=R2e7CRV(+u"+FY96[p-Nuf/D2x c*ǛyH~yG~tC9RPz࠵{)K Flhj{1w]%-19 !@݃:bԭY+9\;pUAQG.}^~Ԧ*uV#_v{56%;T@_pago!84gǤ#k#+cЁqɶ'6ѩʨh'ək`xMrdLU$ k40PbmR&\'C,w{Ho F;?-Pbss7> e|2c8$di*=  +G$V ŨqSM)u8.2!hcqJ/J}t?b*NT5@JpN qMMWRȪYY7@&IoP sax<[A~PO0_߾GJfL-ۙՎWWꝴbaycF,4'M8k/<~D!ξ3W2B]K-蟽kq<;ϲ仇%7UMb~1w7D[vWmT%LqAs53͹!rтr8i k}\K9'3lj>m7'Dhk 2}M9:pl@͙)#P6 W<3y(H,5nvtYK8!P傶d1]d66HFT@Tc'2>`p,Y 9u~%Mk a7m)f Y (;AدXI91Xz>ޮ![>Y{rAaG%Tq69Ign%PFVz>T=fF(j)ͥ~£~r9K>\s~嬴u3:9+l$ۡ+WMң[hG"Եp-3 YTDjIhLS1XRrz L˸9f`*kW]}T 2q2!Qql] 7O#$QE l?Uh67sNt/\JURa՗G!C*½6Vۮ)xc.WQL[na>\w9?cqصeM#HɴaKa0P`W&zw<.=[reVBUx`Mce'1k a:UNv T6XUйYz:J^σOǻx-ڑ˼{3O Lܧfʐ317*3 ՀaG ܞocj-v$#Oo -'1׆ˊ] CXtffGe:?',!MJ9C%Qtg {)È7sNd7iH'E zV 5owۀNlT%22fbp2#3ݜ17`reIŹNۜwޱ3esTjةWd,PPgɜ o}7SBq*4DwbG@ϱdo4ߑ/U/!hs?PjY~/)MI5.PF8P ?.ϑL 7.6/vqh5X3M/(۪}ϒyiq%n $: T}R RuJl bon8jZS[X!oA! Fmkzd&o1qtN cl\b.Pv14yr%呃FmQjn5 cd}f)D@EȒe5WD#oa鼙!vq؀C^.!.DWYmmc^vxOշy7eJGd-ir[侊dȚPvqS2lvZkH.= L&mΧRǖ~lr )8 v~-6;~>76>Pot\-[eVcFq=!@AALyZtՖkϪH/%?趂~41$`R{#Ǣc3ACD;y|6?QWyW9ʢU_LGFPpr(X'e^%%̥Ic~ /AKREakdKyLkwq wX `kWӯnǶ:d?QH:M-8#zđ4ґ{(А{HN^^ !2^(3. i}8ˎF* Ï:vZ>=D|ޘx& -6Ԓi$gbt@IɴnOO_В5&\q"z]Zq7,MVN\,۩ꢒi`[ xRJ؊(vY1IY /AdQDǏ)q "շdN|WxUD-?mi_O4f&gSR:XfGwKBA.{SpXjBQݔf} `7ȗ8}qyDב֭||_lP@zlV׾`Ny-U)`PmQ@ssO96Us r`k6>3qi]!q@-fidYzipfxtEoɥfz!">*cNd=84eKaJr(PJHZ@nv,'C\IG.*7nS6@<;}'=6)1^0ݏHȉOH1(8tq ͵y[J_E P$WǪ _viqT`KM 7yNuP;_M7˚a؇$cQ{{I%C!SXsRGhzwc=F,Zsi /MQM򟒂6QS^.قjz?p;"mۄ9^>eLo2 " X8ܘ{A8613sku,qVbVLmJR~qNNyQUg@Kʄ-[ t@j4WJæOe0B4~CܱQb<̕{(w2MK6}{IG ^87oPsڃ6m C޶6)P*l+qwQ=lj8*c.+D9gBz&}l웘v`^V' Mjʪk2:<љfP,ft&0)e:^M#?B0em'`n)yuB7mN*&(̊*Ҥk= 2[3 eEQNOLz$0rGgK{ GP(6桁ف.a{DE7SEƤN9K}ҕZ(6K'e}Wd6໔fd+4{\~;NrjXkUVfA/]pSZz( 'і^ NGЦ8AI&S<%#:_a#@=PC9Oھ14^l0wxBZᨑ(`Z_c5q+t8./tfZ/mCuJ1 n˫7\C:|m|lNL{`Gsle/#(n ۜ)X$Mxו)I:u&PF+Ώ~B]S@vlTƧ:R`m()`ݨ!Kzyx!Xl0"dʐ?(X t\E^J颾:b*גRn +G g|A%'td$Zk)ei`UgAHo~*<5|'-  a7­[=A٣8' MRin)/ S0&vÂ/yD:V.#?lW{`4j\{tGgl*~4*ĘB.\{_8֕RmN B-F`gg|LQ?NϻnDhG"yA>g"SI`3W^7ve "ڢAa@sU|SO=tkcqqSd7E dW 8^:1+̞V̾}4)l) 𽭨ZpASF k;$@./ hNVR[9-D*obiVrZjȨP3ht4\QCLQ4A[m?HC@;_0Ȼh^7bN prfDik4ηZF!?c=a/ӂ%*Qt3Ng$T%oB77+nDVbjGe *=۾E%#2=%4F&-֕TK8 g[6'Rփ G@T$ウޘ.BѰ;eX1iBiJ}%ջYQI:/H ^H/ҕzU&<[ wGEO 0=ն-~ 5N'Rr9gGKffdpFsBPqh3F{&QRF w,.»j@Ӛ=0I[l2( {|dc/BDJ'jFNobMH}\앴oC[`\Q-{DsX̑ፃo(-)pD%e4TZ`\Z?)#F\e gh.8;mƆj2 yʿP$A)s9.ieg+*zK*Ȣg#N 75=TKzoPt~9vF(`1bVhmƽ 3OVd⠊){h&3J񾅶"LҜNFv 轰ι#9 U~p`9; ϤCt W_҄h (Ajn :$ eRVƺ;_\?oeº7o @xŻ}cs#p l8ǻn;ZD28AjWN2VHlNw{&Ǔ)k^9vLkQFz^Am;Y2L8̴ ttBIWD돼 rCgb3Bl7~lH7iv 5S76L@ SV)sQJC7Ilt*iqx ve}"h-?8Sey]o՛4<`FnSdz/!3Tł%r}bf1^{S544A~Ԋr**P[FQp|{ EW#6OK8c]nS7'wSd]+\?F >}k_p7vPm`ns{!%tnY kؾ\%%N;k 96O C>'8y)vtFntך%ܫ?53NzICy^,F'Oa³a) $+FUBuC҅Oi>-ަ=: MXƻ!cHwӑ`xH$ 97~ \`'JZCfdx:UɑSpZh`<1@CfX[Ϙd"t^^ 6XEd&t t't**ŅBVRp T7_tX4X%~.(+BLbD[4Q,Uyr4v]|6F=%R2RP-fv_X{ by8ag[PO;V}s7mT=19- m&ˢr 7z𷧥C<ĂПgP2X'DB9Mr|*{V9,Am5CR4+"@ꓢY֫>JөlÖ͞810R/X y,̌LQOD ɉ'A0D$Z{&c ~ څui8%HIդG= 1garkevvC҃OH4CUz |TxtCeb<5Q08rbg${/_/{5&{ Ih92o >3@5ZB œsm~MK&|GIB˲$y+,?9٣pa1fF=ssĂe/MS w#Rd̼rY;#6jv'50ɓ POau`zACxk"=2EV?"tHN ^G a|1 ٿM ]b(gBNSrs_I3G&=R7ֹXx0&ri B .V Hg K{NH*"@USL)&Qq2Gdmp! 'voNdRe<iX%e Ww2>uYydSV|·&oa9bJq|F` d'΃`Oϟ22$Ռ#nmOZʹDTj&TymP=9C ld:q`mIVK=c9%q}'gdD[`_%.[컒q`J޷ ύ vfO @,_?AHy٤`׻K%-Iwt6CZ7ӽ$BgҢ%μ"]+Յ]& T6[|ijJ㘂[6HC]h^.8&IJYӶh(LV*fm8$@\y =qsW⥐0Bt8}.;US 7' l ʅ8kzh=u*H7:C7;_~m;ykQPZЁ'VQM`ɗ?pDTk^FG(D,P.$ lH3O:vr%6 'P[E0龜4ыl[@L>i̻3K QV̕ ;K=F1")lxÞ3臰#|1U:ؐr!"Gө; A w0}) wCҠ9f}6K{6'ũ.# kNt뺛@dgJ'ݢ]{} L՗$' -ґ}|[JcE,tG [\a?icSaQ;G=L'ts4MΌULr0.f{Y,FKE.r=~!XlX]MbJ8?1ުcFHLB `!V⼄m0ݿ@r) Du.*a! :A-EfxʆAKk#GNWYԩj%3v\kqTjx\#TbbWhG-[U.](٦nL5P] \ uɛ{ RjS,X,f vhhE9T~jU}t=0W,.Q0$:kSge?[eSdk.69"#AU6 }}xﺺTCƐqE\eplﴬ%.CRAOW~[g%=NTekcǩ$D\M?w 7k,$KWA:H{o $¤I`E)%(,( a@H @$3 ! Hb" m2_#T5U5ޥ{=%We\XO:vCgTJ[B|GIOH> Z(>iۏql1p98Y+z5ƧP%txXM%Ѽ~҄OyB`ܸ%ҡہ/NhD瘄Z& O36d<p AI&S:;b*2KJi޻ۇmB]Oyٽ1`qugإ*0G@^>1B%-'M5u::v2eNos A^KOk,2]PjTFЇ\v)vꮌLt=pul(|_⊵ =k^>T]x;{n^񂔅۸+6MIfĈ~:Ǥ2%e{b V4Ѹx6̈́_wɿ A-u\orgKO{<|V(^O;š/Sa-l ULË~ӷn0G̅KBVpa#5op~oOĩ{bCOQI3f L8%ir& XMgZk&خ Y .jcLW2p K7i3.G'B,.5@sEW`Ie#8Vq8%KxmF}mZr kc,MsЙl{ )?V{(au['Yj/gcbZ&ɾ&s(m6Q$\ACo?-w RcP`[Y J<ҰڃYޖ#M#2i:TY90Ǧ3A~#(lBIMZ*1V^_}cL2L6\BUG+r/>9.tq[7. zP.7  6$瑬r>;xv!j]|7wIb)wB- ?#:qQ̙уSۓdh,ڇT2ץdehX4 IP'/@jYNdk/ ȥzL40ZEs.X (=(mG5FM;V0w6h!1O\ !AN\NEr`)\J)Nv;ڹu=9 EFPڙ0Ւ*.Ǯ+Ş<ÝΨzt&voMAO陓Y"x]<>@^2>;%4B:沷&^BخV)9 YVfkIDXV!*{eNKjJ)VwUA(,BqT/sİgW#Lɗ,odu*@ gv|V,qȼA,G XwJܖpx&Bp{[K)k}bWYYԂԩ$@v{ \e-ߡ&>sOy#jBo;]Yܫ́^t.nf/u!ƓbnI}><O^D`GƯt_Kv:N$A^IE 'q؞Ӽt>c$T5uV~)67"BjtU7IYt/cB\ S Os62ҙxB.6;S!gg74JBןPVxqۋqLMSC 38^ܤ4/bI3LI`ʨ'TZ^ȇ;g==rfI NQ.j CvxOCo lLaU,yh3mIRξI\keۨ ⓱Df>ݒAc% c+D4?OXP$I8=UpeY6ApWLZt|*şzdLb!/5A<@qFFx5ߎ!Wqʏg^v+~ۜnW"8mMΰ.<"ܷ>R{\Z\[xmY9s#|uć4Om#{aTe |nI,'q-OϣN]h ɕJ+㝾%M 0txȻ{H3*xY4s~Ƽ*osWXw'?pLt shPr,XZ8%ձ "x;RupkuNc0BM遰`o1=;^O>H3Pc{\biO>]=H=Xvd; mqRGE4nڿ.j)ުJs_`̹lHt%B= +" e>9T `rQf; ^q*"K8AsB>! SU<ͺ9w>]饕YE .7} I-'xp9.-~Ix92µ=[$,T 0P BAL$!)3CywQSJZTꙃ]Ѫ'n=?ƾyt?u̸>_HA.&ɓQti{y͗D"-FgldBefnC] L$5 [~,Cܟ1F0Q" ]: J }Io92y&$ҳe9Y7`?;5 Lʼn9&wqRB)/AR췡SJդA>z]6: e8KBMN(/?+QI}=O0Z^^V% (bj꾆O C𮼹R4KVB KU:$Rn'yD; Yr*"MǃTqOڼSeM>(I)16;N@Lm3XD:Y2Yg;aLu ̅f>:[f~&9Ɨ<ܸjTrn*W(h/@"8٭/Uߏ*ڦx#:1}.y]z"dS>;rANOed8vأO:R#h[7%R xuQ3h'Aߎ=ץϾ_EUZ޷!#J$|j3עcͪm1خFAKALLgydJIY3ȩv'#^7c1a5ȷc5 έI: %tTQΆF"^19B;V tZ]"O'o|?|/GB<wO# Ԛ6D*Xwvs<ӊ?"l6yK9|\{bk ]]&r՞$*^pNfTv:v שNJ"6#.Uی^~*&U.˞:+(Ql&sRl}g`؃81SҸd W%"a*7H&, %)& 8FH|$2dfcUDdwMA/Mջ$J:V[_9GȔA){Bvl5Z;}bⷔƝeH_YX&8KEOHjν*{sE֮14 †QT_U%'֬IHZ1p pАHPr|A `s>&VJ%+_ p/Q=,й(W\Pյ??? vg>s;ܼ sОl ,eH1lPA$7t{o=W+2n:Ss*ElC={16QҸu;EF 9edW4\huZĹ;5e7g+QZawez>g@ռcOAC$1UrNߧyZBBߚ*9( Tz7pՋi_>ͬTSEʨgW OjLy \* ꎰ [`xAŏ ZE92'',90ihIB׀}[O]}1vd#6y{[ 0 J4]ᆛ4!3]a rXS{H^] izȅ]s 3T[,0p^o7Bu"l֩A |oN.UʻIROa8Fҕ 3~2h0vr;G͠j]xR@3x^2az^C3h=4^ [{׊^j/ru5}´0Qǰ&-ǃ) Nr{xOgѡ=ݹVlt@X"~˩1?ފ9yxƽ!~?jjn߼r/,xCfkPu@Rl8h y֏VzA7)#巔lQWL#Ug!Q&MH'Vn/XA/#"iW5i-jlK[h֖}r=@2D R\ -'DղvGB6=zBk'ElŐyVˇ#z ܄8p+kȟJ%MBAc54p8 b'tvr71qNWIHI:O@3kpHi9L] %cppS.o-vJaK"u(U, @L4 A0PDB(0W4$\E}1Z^~]=n=e'{Yi=OV˯FI%SbrLiߵh`Ap2C(i4[OzkA̧7ּlq#8P$I MHRإ;\3Y-AӜ!u)lIBcAI&S<%b|1ͳ>W{ nNﳢ:OfgU]V/8EJp1+,J$?/erdl?q`(DRk쫇 ;{" h })1yxV: Fpϩ姮HO+ȃxbT7h% 5SyWGEʃ$\+%V DXJo~.Xΐ{ -:[is9{L*8yBh2pd] ET78MNs~*("XR@0D_Ri-boY7ְ&y>N(L~7Ts El}JKƟ[Czim3{ f (B>5)KKj"&*)*a !xAC-D<Cȝ>`7cBL+ ҕ=m]9",މ<(9lsG,[dS\5bValtbcs Oxfix#Jh11{uY4I߇ڵ FT19^px#;Ona­7}Ild7tf^P!I]џą1XQ>wh0ˑ00tWgX,Fxiͬ[! V5kxJ>)㐃z袼3;N\XLB?-fQ#%sp/]ÀmcgCyC$Ev5Ǫ[RV ęgLy7:'vckG_'wp6-xՒ8wj%vb`kgn>O5(Zɟ8%%tEX?SZGѿrjsyNSiG-0 0سqZ!0{׹<82&EIէK2߳ 1%IokfkH !rzٚزJ*WCkF]Iw'K(Df:巂BM OIm| oԵ)p%k4ՙLHcw@/pA/@9aB荼mcY `f=l͇RdݖݘU:mUmȎ;"< Lml'ԋLMtА"s^pRQV`S,2jpHl\rjMYbY rS6MTH:nF vh2`q =gBVխLS:o53; ,^Z9(;i;?lxPQ.sWrkCl o¸ibx;Ņnr%? q:ЬDlwz[=>̩tN7[Zuj'3ܲ}U{7{UB'4wݪl:"ED!>+vj5ۼPE] cG d.zD$p"ijh\:꨿fT@/^uM3]e"뚽m$l(5X{VzVnn˓s,X{V_q`^ -NңcǴ6ߥ(K^ o}pjaEx$ ?I~ b9cՕ/tuh~%H/nPuwY<8xpPN9&?)P Sz0aOnl߫plDڧc/5™ l"BO>0>|yZi7` (yfx/~emD|Ke-)YƲYTF 5䮫,8.Hn*!KdБ6uz˲*]ҽ6;ބZZ0u3}m~UBMPwbQ7 i]mw~nlg =f$'0 9"=2z®wyHI519`k,UXmWU-KjܝjBIS0Ng[ɃP;X)Ԉ'űbPĞ]'{|cȜ!54o,\>ݖp$Uޜs`k7P):06XlxXQ#)unL1SIܛH!}V֠um0b$usZ 3(=6E|]6s3r;Ψ*2#B(uQV۔ 轷=[pZ&$JJ0 bs*e ~@\C9[1`ɧTlj[=ϣ]W`Fzk~,g7tCUX)зS/e;(`d\Dsv);Lܫk1\7^r-7HƧQ]dUjTu<\FVX8} ]Xhѹ2S6߮՟*yYg[Z^c` gwUŪz0IM;{P8i|o%=ְ't@LjW2DlѴMЙ@Ldd!;7GD3sA\uXO*՘0&` B0"Sυ雹E5%)R>蚜7Ww;~ 7Y< q(69Nt[JT雈r'gSAFJ)˾6REv!] EH~7\"Z!Y0M &Z2+U OHLN/eڛ*Y|pAI&SSPhW^ ul-AfAE¾y!I](4ף`Y0sq$/t§:DHgoVJQB,gғ'Z |garѧ %Z1ٽ4 SDJ6qFeC 83Lq>. o *}؅ X MH<n''n:3G' 4֘X N}NА]CȾ[&q ?:Mo_Aw {AhLz_9 p?ӫ# J@=D$t[lFV0mixXRtj l\$df ~XV>xUU!jW hO};0;M#%L]7޹p_(y9d^.7e! v|ȿ Qc˔2,Mmj9iL$ eN. c21vVfyvDbN^G +VcfqU6Y,Z8,O-9T8Ǽc޸goA'жz~釹]2Oe{ ̫ ^a65ٺ\L$ F!ثod w M Ʃ񮝇<#wqFXR9[Rcfh6n.f& 3GǸynk}EE1YJ;8ojpM¬_=,ٶow{`P;51EXt)lRc??^YDa)/|˷"]jƒ Yc< YhJ!1 ;r>;U%K|n\6"{'ǗK^ 2aZpۯsq=@?BadƮx5dwl?LfxHd[U( T]֚Fؙ|ca $bXxZsg$G63`u=PiPK>] pXaO? BkshDO!Yqa!A5ܫ lSx܄0-:QϟMHqgsSyh͋\1'Uv [] Oj6)x&s5v3N1]>iCdR1AŬL ȅvMvo;nyiͳ PH$ڠɡbdxwNK&|%I wCVwUwNBBBsbC /hgCzuh*Pâsvz2c kU$ᐎn@c۶3wft01vC}ڙJ! m?,ͺ@cvI/[;{cnJ[Q,^@ 8"gA gP[/~n?&7^$_j8VGX)xpxi9\a-Ae0G >|E31|N-Zln9_XLl:}j83CnEyhjj -ّ$hcE:`+ZsiIkX4M'@ȝ7Ѥc9TqhT_/H;WM".(3 S{N2mO˗p/ֹA2gJ CڞjHx5Oz~Pӕ 3m^~[h EƦafD$qx}vJ(6Can;%mP #;&-rtEp5X88c7׾yX:AH,'د+L>cANV&^d%IĸOz}uz;pxr` tCǒ*媦{Eo[&vC9BEIc]n(m NӲ1ƀ Iu?k&gT7+w$HK#;]V95, S٥32vaqmĭ&è/%#.QDKxe>nV3 vJª#VL"dR-=7dN=w!Lf>=:1,׌({IWn,#OR14dTVD\jZ^ΨS&xԄe^a䜯nQ?[r"}QrBy_;&dϣ]Aaܩ%l%s} j_M1]T4}!XNXYT׹2-gka&>[փQkzQ4ɋ%Yׁ+F.ߙת k? 쫲5^b'DŽ_di.Tuqyԍ/2oIr }#k\$HRTYm1=D zx\B,Lc1şҟu剷 TԕyWɖ{ApÆ(Rȁ'K DqQ˒te!zICKThh<n-G\Bb`- D˜7}JoNQB!$݇d~zе V66+cS!kJ!wP5  (z054U5y\8y㨐(,){cTD%@ypz>JHw:DuI_l[mzEYPnOܱLʹ}z*uF瓀hx?K4$"{Ǖ9-> Dm2,",S T,aAP$ HaDd]d^򴙤8BUhK?;_~grl`4yfLW>"fG?ofB Yse\Fʱa}y/u^< =Ɗ4E/.п;?0 RR4VKx;jB;!Z:]CEo']QX B0kJ럄ҡ"k]8;A˖ޗhU 3#lY v׋|Y;EWyXKX@ݫ84yU X;(/9-Ec Mib?R`޷y:rc&rޘ zl#[F6 CAeGSbg/A0r>giĥܘlsFx_y:w|`zq ϛO `!"$Bą^mQDφ0^s$,8 ƀ B! L"x7Nuu³Yęq\mW*Y4`'IWNϧZ5qY1dU_pOs.->I2 vO9:OVSmZ_1`7HIWO35suieWMu^͕vH\% r0V\4 Aue&PD b XH% " EWj.u߇@T}2˟(d~g8GJIA0kYLjxCߪM q.^ mWx,jPՖ/$\9О-֮ =͆ zknFWe) )+A( A92~;7A>I&SOq_-`QHǶB"As֠Q5&f5KB4uu)( \vWPM9+`!<))?"%EGsF%t-mxk!Y3FTPG>kۭ=Cjp$M̳jkR Yd]+XOYa8ILàp6aS *|uxM៘j0 ;q ׸}5Ͻh+uj" F l?sI ek'3X~,-9<:p0;7NZOFar֤a\aPkL'}ᵋ镡`7'-wAiOe~iABY^=R,5eBWR5=c) "74Ͽֲy곢:8OVǞkå>>w >%ɄauJWd-AF=lZ a5%.{촇@NO(1UrkI;5o43U:_GRJՖt$M˾[yxxѼǒ>$.RO}\?q]e4 ~AeqMK [jQ9b+ _$-nyV&x(³.6]}.0 'fA1}>/tK0Elc@UC9Bl#*{_Ί*tۇ ^yъCwzJrg$qڀZIQ6aK11ŞP".u) u N- Hbj'%ld&Tz?*XqH58do&HXSu ZP+}`!wama+گk$OO_ &+T!6Gsceq 9hkʼU .4:;L.9r:Myon.1q3 ce-Pl|c_ yE((T$۞[7fTk<.wrݯ>O7lCs=Q ~$^}[RFoի= /PлCyMzlq׷4-/Q0`g|w7K\MD6AQL mpMgHS +gdH%'?x*sj(F?&L Nh$Q彄,Tt(͒5r>ڀfa q`Jr 14F]2V "8%CB/P7>ur6iq}k/I+huYԀټ01உ9zG]OtXolO_Eg4VTQLp@+ `(-]oOzݍ.}/sLd5SgI~zBϽ'#T3~>7|tC9ǿ`~a AW+ǠHʇ#(4-6R~ESt]lx5gda#Lia3 {uB>z1gys$ܹԙgT`'p:`~HwJJ ρ2aeCv~w I,C;rߚTda\䧸{پ1O 4߿wT3 dM抿e<\ aՑչ HxO`)KnH;p[e_^mZ3f_Uvai0o-7ȃpr BΪ`\d;_bSfhye-K= ΗI+UEC aA9*͌EcrpO do5D%6Ǧ[S YCQqpW@&tKPnJn?TzebfEM52L7M*bV#7 zShX9l wYu'GD Bo.f;|ďc,3E2V4Lp>EkۈfI}{ f=0RPnowzh)$ՖӨczU'@'HX'xf B/aeA3)hMτZ$?lGHmmQ շf%X4x)bLSN jrjob {_?I#ZJ JG|{$nh¼[0]ɉ=KYblzPeQq3WL^xvʌa[̦jSkw.hv Q<օohMzz#:vl[孾5*IɠX}hR-do03aA{ H,.CyܶyOy) [FQAnrH!|˩!SS>oFཱུFG6oMZLͭSSqUaa7+4E=FMp(b:pfiޒV4A[ia6IpqG6BCvJ+p!ʷ-L. (C <Ýqz53씥SM\ǜFϕPŐ%&Dח8LLo<ܜle/ *v}s$T!7S:䴸Hmeʥ[(Oev&E¶m9wm3u74۾쩫8v)tnK  e|źqTCm0 eJoGRP1t2 U9`Oqj,k+cU(4Eʐ#O N<{o"4<`l1$0 `h"!@$3 4Tfz]QhUԾuSCo7XB=O/oP*-3ʾИuڧ/_۟O_߭?Z[M !Sr;1w[u3w%0ҍd&׋=nՍ5% !x|㛸l+\=÷LbqӇ]jB_G2hwYp\J%&,~?[v_`m#[㩺$|Md0TQ 4ElFE1.6 4O#W&f۽!|_eOM#ܠ1{#?yMS4-S[g5~ ӢQtʘx+9v;vMwF R :M0p1Җ'/J,(="ny}Aq"ۺU!3wp7cS PzH4m `9Q~9fliP7> lOB.: m÷jj4IdX{A? VNt [GK=c1u8Q0k˟z"[I ¼lPPO@wf<`V2WE%uLJO1 [eBf,Wy 6+^:j9"文fAF"q;hOnKRQ>Ѽ`|xÑ͈4I0(`Q3{(Ț:X_/Z]{-*n)/غBO*v k#̗K$<^i@/?U92z\%@K5 =ن ! n\(P6$b hE BC0HB"2\wYwU.х㜸.âh}]ӟMdhpZ/7%'fACXaR 6IHѷ4'q߀;5xu<"0 `Xh H("0v*/%ʫJN},ܺ__~=3yy |v4l%{c/±L GCñ$``@Y!^0mՉ H5Pxpw,;š)rf}$JQ6Z?=\'k4V>Oz&A@I&S}z6nw)ל2`{>aIv! +qȗOyvy j$ !&GC}袅 ܆bK5D'B[BZ5Dn5 7`iIӏǼTmUYϏC)bJfYk{ h~|d{w~R/fS$ "1X?tW3CjA+HYuL4He-AIٴswյڎjyg(`TD{Ƕ8YɎzY@|%}*IGwѠ|'"A>G:|&&:I#(^AEztF>>~ںfw$}=ͩϻ+@ L2݈f}ht莻@KEo<+{#lj*/9m4$HGӂq}s ,/_nc_1pcYkMUY|,;{cgsPK0TeV9byP h-%W}ڋhlD=ة-˦:΁YZ֫30!*mzسPK 7BkҰn$ KΖ۝<%,A >e@-7Fnr-xtLvBS4Fyie1pGi7YD5<،J7lV@q,7i7UړS^E:2K,5k 9ޡfg{"vzmJ& &/v3,`nzzdM%D趯}STY_͇-4^|ҐBSv\`ۙ fVWө)d[ TfLTVENhA(}TG,=Iyg9_~AX .G/# zșK'.(G;bl\S bp^q|?.*d9<{((@ J!}n'S7 ː w:5Up(Zr^Xe];=oi뵇bT kL)2WT( *i@/TU )[N؋Lpl[N3=d*lka;r\ZX̣zB10Mټ'(2l,UU}&!&)D_9>ǻ.b86;#:*3߱/HNKu*SA|F[T7)Ȗ&_柠<ײ1Dp\!5k>/i^ӤÐH~>VdyЉxlZAsϰ/zHg:"x1AcaTe?4FKV>/oSx @3aGe,,$?~} +!ҁ޴ZHDek{\>cAQA.v.Y?tl6av һ6 &-yW=$)XqN"/ $Jg~;>׳;_ϘHt$LSOTn|"H筺P[:SB%{p`yRLX͜&JvZ kCeRgWB$)Fwl9az8c/wawUbD`H8HÈȷ6s 師 VZ"mEEt^LE)љ}%Þ2o8VwGɩT2?@_`D'LDIk|$~ڳ?i>`/&'CW'E $C?PYm(5m#Ovdb֑ ZCQ%2kd筮@6do zzH*OV_Y\{Q]}U"2w cTd \/p/vΉ/X&t7ĆʴZ#qx'%@%Я(J2M m6 ןKȆJy=]9Y(}]bݷOJMKp`!b̷s=ۅ@7ZZVyn˷K\L?pC7QΞ4[+So62d}0X;I$}t! 0t<*e2I71is-uҶ);Ā{eMp'*]*/,V\[Mg9%VIM3H&ߗւ5pOPˍm lY̹?dפڢ b(͋"j!ch乏>Vӧ?݀2TE:|P-1ЊF+Y<{Q'{K1XQ QRfpH`(He$ܤcʠ3Z0 ;ӚkMc W"j)<;U8,:ɍ=f-q[Y*hOjV%p /\ T) ԡWD KIO >w`/8%'"0F AaL AP$DDQ+du]"ĽeUI_OOwg|;[|_ol,v;9lG:G̦[' (v&a}t$ Ѝjꦋ"7Y%܌eD!7k!ެ xPXI!rG+GPr#LELNjޓl1Ԅ6ѥA:.kyp jB0^sX`-:ʙXH߾K i2PعT|J܎GJ۩mXxMĞǨx;h0**:5S<"8rM0X'Aќ-9ؠrrWFBp?.~GICJ:ld.1To>QOyXic7[#S?]{85`ʌh(O=Xz=8ڬ IIqc v}@Iѩ&fL~y{Iݷp6H) aw*5#7̑^,2$D]@~"㖭,-5LA2(? BJ/t#f6$^Eg88xkcGX,{ Ya5]/ RueJ5wUZ#۞!,,?BTOMcm ip4f֐E7X8ɠ{  xQSK}eJ~F/A^W ! Zw` yUcQHj)>Ë/S~4>dfKcOVdy<)JB7C~Ā Y 08z:lo"8U)hYz̉\]KF T$'xGW|X4r@ڭ˰E"%=ի:ʦ;WM>8:ظJY =va> &4$A0PL D 5s~/[+Nx\TS. 9?ٯϗog~Q7~b泶+e-شpz`=*h] I-F}~}ן߅$價vBl_m|tcXuIR!x0$,#€B""! _9 mU$KׯJw|{%o5w'+|zc/юֿU':gư3 JfLz?>1]i삼;tqGB7rz&-wTL!`0A}aziLӵ&p4/8ąӼ G-O8AbI&SJHag}i&)?5nJ_pmLjc̸/,Byp>%aI Wb3k|o`Dc&?,: | rS,dލVBrU%O͙ #ҹ vUP.Q0 h(C{-U_'™˷ck.lVqYh/07rDv`jx;eѮbU UũV$OZL`|f1O䣜 b.V81L7W.SͲܥ#?K;-DQ_$Wcц'FHRLڷFY_3R~{с'DDH׏sGOw^YwNsݰ%ޞ$s@ O "gNirYbe eغOtNh`(C>Pp XLbVϚ+e63XE `{d[ uЧ5#Kqlr'G(-a@~M"%+ØhƷ:⧴ e(&PAA0X'XԻ? RE1yFJYQ _'E RBX/o> *O ՗ҋTvXEiY֍(Ӂ$eD~ZF0fnbAMlT|=fin&{ߟ*͞$CEZz 5 ww Xۻd䑛ꎟ%ߥcO>;e4ʐ1 cZؤkxL'.x"3jYl2"mC°Cɐ`ZTPm#,K`8Fsn =d&1R}RG"F< CFF9;.*W${>$ ^f', M²gF$J96?CF?1r;п݊`(̾@6xA@ .#dA<7˟эB<{w$Uhc|6 <'Po'LHI`$|lLbDeC<@# Ls(dಳ JTC+xXOP cڊCցiAih!xzL /?Db'Cz%"DQ% t\2Y`r.\7Q!\]DƷtgFEν؆/O EBXqwq7o@1B[/ u߽Ѿ߀ eHZ~/WfY(KZ$!ҿÁOEukK)u#\̽EB)߇b8YcpIMDEeE2r EPSMÃkg@a&K͆+ N^j _yb_a],mSx:O~ p{9b6x &rΝ*^-pSL%P xw6N#.y&w i~mo"'yKGXRtj|䆖 ,9? }ۈ_eT21AsqPejpbQQ< GCo8WUxd!W9y)6[K51"ϵ N:uӨH.Wm<~xȾ 439n?o Wڎkկ_#ȑN5T|$AtU0T,S+e6΁BkphR;5G=$g=ĻX/̓7c8z0ie f;V1e{E4"LgL~^%5>[̹l`960e+ {Cq03}jIjx@ 8ywV+}H>WE/M庲uĝ& 'N7,2ٛUVwf&< =E9-6c`5eee< D^;5*5 h$P(nwX$]VC[#CLxYJd׬Hz6wD2xUL2Sqc}%{]O*xI'OxԔy&Z]GsEN/mY4Ru36ڰV ޭI>«!^REij]ΞF yR B"e{$]A-$?ePSIH*b(ρ+ np( ~ Ok/ḟ%a4=D푫˛ [D:+DzED[NnF|5)5J*,).9~k Ӿ FX!N!(i^ƾt 76~\X4z@q ={S \l=Ka{FQgw#a";k+icU.u4>p6#[9\|8SDm [0TExF,Ʉ1gE|-ȎDJDNust89$}q%"?٨}(uE viz5q//8NȔ2DA#a KR,VD,ʍT@#˳~<-iW†ƛ m'~ݩc$*Xߎ^TA9^ ickuOk2'O|'9k~]%yf Xs̶F7L&\R:Dq|6xTl)#=l,{ oONLN]*t|cၢ"{@H:ŸG4YF:p;("\;.Н}xYnIRsq֔VK=Wv?tZ;DHe.pQkҧD?WZl'|%+BgxR;d[u r#~IynWx(V!\0 `P$@L$3 FAm/n.fX˱Ŧ֥?Sѫ݄OmEcK{HZ ?) N8TmnvǷ 7x}mRuG'^+d)Wͷcn&g3V}{2YO#10,Ã!3w&jB H}M^:#S.e3w _??WͲ곋s>6mHbg .!ڮUVO[N(΁1.Fu N0qB 6*I@!湌{{r;@ 4nv$pz5}L(Ix +g5hX,S'I%9VL;0#١6+DyΆv@;WI-ƛW6)m !wӚEUqQ%/@6cތډfw%-<z&^uM7v'u][#ED0N}1Pj}IroJj78M7:o H>bA'ۘ;~L2zsbkt"&1Y0|oWv^2z'~J!B.G0܅>F-5Q:򣀧 xeKSU/r d \ +͙.U0& ÀL B$Y]ULTqqu$]Y{v>O_ y\ۏ%18O+l/eVqy+==)f !t2ll} # {q+kWKPH41$U<V^"Ț4A9ĆIpE,F8k7R40=< AI&Shh a~$4ՔJ~t#H )/i3׆#h\b&_׳:ly3 Rܿ)Ê6^$괒w:y'l)%7%X&TQUѭDX, Ŀ]ᴮ @P0p/\2F!/,]GW60owv~-6IK1@~8k.yQgR4D~srrпtM9l4ҭ\:J,bq튗d','P<9T vZ5X 0ECEfuN(GŽ_CR9:X%0ZD\t?c7W #}7]r 6ZE4֧Ӗq0A)4i ,XgYkOUʚkc ]Hqx[smLPD3#ͯl&B^s;c,< o~3G`A@tWiN6Y*^b4.llQHTiȲT炊dB@y4LK?KMG@ryCEV3v/񏸉qMoz@-e 0W.|зYRC9|@.U--͞stClCM bĵ  %*MaegtgAe;KIC %[ޜx8"{v:ê o%l{ f #1SqdUPT@,4F2GGO >Z5k(IO׺9=qTD0mɕf[ǢLdGTa27yܣG3N GC(sAr_a9i e$ACV-r+&,: h*5-!)Ztzdm?n(8}/ Ti+5l}sp;SK_Ř֬v1=tNkY/r]LФڣ$߽tH6|k]FQ 1+01`y^Kg 5^҃8mђ]"ւ)lU+ I'u1 ~h]jwNc轉6`Qgf8B ۬kvjZ'DjvqlsWƚwZXχy<18Z\Ah 6VkZU&;]B{-қ-&GMg-`%kTrG/>eAm`1!o()*m@M,yށ8(6f^Vޝ ޚp*Q^N/>|8xIʌDܪxQ,&?g1. t?fϪu9/d:o? q"s~Ͻ >>-Yy:y*ZSPiU(N5XօH My3A&e(]*R>07VkMw[vk'zE`[V65@)b/[ijPMjTq]I9-:%>fo!TImc -1mPY_~3y2xTMY 6JċɊ[uaAnT@B=n[S,ePot 5t -)ț O%ÚDDڣY2E꓇s 0)t-UKLWzv-U~"VM|U&.-^p=lNs-^(eeBR;]aQx._+]nve#+BXP=,'cmU)c2@YJ}~o[7^ۡRq@̫[BSy^c1H /<D3/&ȩCN@֯6erZx*OXr螟&C4Rl5xРh6 ǒ <ڑ ԑi6a[B_UǞibOq !.VKSjBU.-V/&:jO6׍W*FJPn%XTҥuݑ9Œn<{bSC[?GXG{_Yfͪ[tiR ßڅ(p%VpjKiI-t,q#Kߏ:b+|-;k^Nr-uGo2aD(ЧJejE# ĭT9T`ukUu?)K_bIoK?VxIV''RjB_vo>K5'w29>va>Cy&1xY*e֢(ygmH.yHp__W OZn .Ռ06 `X(% $0,,%K$Zݩ/CV:em߇c|r_~In0ԩ#;N3)kE7TVc߫ݖ.ֿM}`[DfFU 3 ~F_cH~O3Ph-T5̯ǁ>p+NFr杷W#ʬ eAI&SFψ`șp*M[Z4UρOX2G79-mr@1 _ɖ# /ysYhΘ{2w4n 2:Bp)!ї6pa9 )Ċ{NV()ؐ)SXZf'UH9}'C/5v7S8{*5gRo%~@lYclѕ%)6qjVa'~eQ쮵g'C=ƻc!mDiP.΋&طW]9=eQ2soufT6NwIusv-(l͡N ϩedI9ShlYC#a,pKta1C8PybY¥ C ]D(rlavmJm@8cjҗf%wK-)]M=_fcNF|V˼n T}O[a+ 6] .fl#b Pdu˱oBoVʼɍ_AסB>)+W>q,SVffLC T}ᤍ XWVr:p8fVAOt;+-h.وUJwoGj`ŭxX4TOR Q{:'ҧ;IW0(,9z9 `CqIH8|>Nbl|,R/$aGD+{ӧF: W8~nC@ߘ7P)~\GJmvJݫQp=hh[)^D9e9U01d' qTZ_hp<*t5)K˳C]xd@kv߼ u~ƀxѻm "| ]w7pL$݈w:)Aqtw8H혍2j(aGS\o Օ1ʐҘV&ǡn[/`h,Z~"Z(˷:CMLA#QOQy5t2ѳ?i|6,xjZ13֌ ^Ik^$e#^Vyb7{QdqMwt;Ѹ A8kXbakw?*WGRrUIU{YELn`S51?S] 9%0TfF!%06]uqjhjXN47an/hZѧ=~YdVSs9Uf0^-$R[lߏa5KY&7Y ;$%:bv cbQd2,ϥ,f}nľTЈn<5KLj[Rp3NzBR?8c^Q "|Vul}ښG޺'~pfExy)K@w{7;Ů#8?5{ ĝ9N:1@&J?`"t,}pNBuղ .֔XR fݨ~Otm2se9j3XcN#mMlss9_>~<,R&?J+`!sw5ZmR_'AI%3ekH?ƒJ 'άix4?] ƖPU-P+j첉({ lUaV9ÕU0P¹!S2$;5{6gB/.ϓPZ_B 2^8tǾ26$mh ^#C[^YhiRLw^S'r"YhzXK] pȫŧ6R͛ AjN;4Iq~rwXt+/hC@=JǴʻ.MbC`{e6Hċ>ٿ2cxiתb+[`er{(%uH ZH;N [jUBy$F#s~M).u@GbAlUvf7}j%*Ǡ%1O0 ןUahl#- ڸ\Ndxsq mڕןx^^_.]1{~4q-`p96r*9/#}ږBf8wVs|;#gլVm|qJw#KT:S?œQ$~ٟA]S!6^L8q>*wej?QMUn/_@#T=?rDixmWyhWu!ҩloL=/6@Ha9˯êQplzks~X/`YF˯(xvoZ$&26i^V6 ןHIV8w8@p1ȉmZ/xI5ȍq(0 a@Y( "H& DA;qWֲ^jn괱?_Uz|h|ǽw˯=_YABh3 읰2?-@|1r;sDqd?X}kʉ>ߙ0<>^Vkl@r4d1bkRnH]m™ }`g B(o<<߭cTJ;c~odFL@p&0 ɀФ!!L-]I5.k#Yyo] AWt{NzEڟm9@diiOf9]U:EvI$Iϕ~s w r+ 7!?>;Og=k IӸa_BH4A#ż~2|Nc&B̾ʒq}@Ėx^jB_QW3>P"vzZݷ5|Z%8nB4]#{>_\] Pa!'9)o+,Tf|=RQyπYO$뻗YwOM*&Ґ3e'~C?+KUԘ&=r1*=pl]xhE" 1O?B1MTxlq2+|&PRy $7^3'Lw= KWp_;%Y4H Ra/&A8zL%ziUcE6o9piQϲ)g=9bYH^dt= rꁯ@IJ2z G}'+:G;AFulP43>Oz! ,^ l[3>5G?(->zFEKےȏ=*$zĒs*3OD/Xctbқnj" ٘D6.fڧ'5 ZL,?/U68.B:Э>WG"ط;͝:Wmsooq}V^3,Ɵ[ s0F c (& D$S 21¥SISUZoF]_C f6Oe;柟4Iɿ%7~]{߃}'+[ _ă<)Bַ.y6 `HځO]?ߟ7_[rs]?n fͽYÊc.vO-]a_7tTT=|:k/OO?aAI&SNSdZO1PDHgn֚IN64%ЯA]vH-@G-PK-xQ 8r:rTXG&#e 6PLJ57> jհ<_"|yTD9r.fYyCe0ab2? (\w@y{+rǤ>SHc1*6:jQPkxҮ}HMzT ?{+!ciQ)V|P}f\o2?J$uUiykCLֹ2{SgۣL`ryA!.=<bF0BZ]0n=I# 0wv 2JKBDBۯnHD-j.f_Wwv}`8OhϏkY_Kt gYMB" ŋ}YXЙ?v0mʐJh*2|Ij0LX:RZ3(bcÕ螑IzìWLר7Aʇd)3lZ2O4L8[I I(d4?՗M;y!=Q*f vV UwEe Zbp&$P^_}8igxCw{Ҩtܞxh 66JGp)L 9O/]k78_|@TնTk08K|mU9`G* +i\%!ΖF+'nۿ/;۱J/ װn PA&oW;=_`־~YPzrCy7DHaQX }X!ҷ_syteϥ|C}XJ_?kfwņѝRr>$WQމ>e1-J]pp.2:<*Qt.fVcSE$ߏ5m6f9hG oYqhy;+x[, =j_ۡkqPM# f$aI/=#GhpZR;>r[bXz-YRQrzآ6U"CU3ȫͅг>uKb))"i ݛc.G=% lfi2ZZ;J]}kJdOu!q,0ZX,:/.MFBM UTTl)J%y$wz&a"mt*ɐ-ll>c fpJеhfB0$7֎_ &uD'Io@-Wm1;՘4'oNR v8:YEA^(=&!KRbMiQR~w&G=f빨*,*.zQ雵o[9VzX=DPf906\gA?.Qp/4}ZZfH}2 ]UUy>9ne|ݔo2pϭ~| 274ka'M^ݕа_݄p~֑\o׈,"c`ڻtHYJz=*35^ M<_]4pϪh}V Rrs}1Ɍb;=wOrh4u1v86W#Gh6b~V cP#dJ ʼnW V[pwW~T:ҕ*($[0(d>U۱]P(ǨeHJw{Ўl#sƭ#:mu?$,a+|#W6%4-_&S@3^)2;g~իVG$pwE?-kFt)%\պ*0 'R٩-v7k-Yno3BT_?'j.1h(Qmx;+-ō?z+OJ0׹΂v%3NӐHmDk ?ܶhEJ-:-]F3⋛knSGE='~O 10߼/m4 Cc&hF.ٌ>sD`xxGpw-_rX>@=Ą=!ΊPQl|^a.kx4"Jiڝ!M>#1lj|cpt"zͅoU#w6,`|RV Î9hdS^D7ʹZ:M ;@)TI0}hŖ_;e8nӤmFvS]n5mOi2]fg%!W #r d\+TEw f>X*2^dHMkvx1jN$ư2s4);e`O4쟺q\c&jytnم]:Zci79Et:A Y2x-MiP/ LŌWto^(3N@s % پUDxP;8un7W6ҥwuR|)IK7N,nΧ!ϫ=Dd:: BW9'/M*yc14RoOV)"}X}!ov&msVNtfkHԀeU8>t˻J`R"6k[B} ? iR4~T`tOWrV.M?}t}mq%,Jٳ']o8m(! 7mwݧb~#\]M[-zczvA_i̞.{ GGqgɋ32Z%j?zd^9K = \LEkY|cO\8eR i̗+5FR˻d$ N@,&51VeζGҹg(`|%>cJ4Qi0 Wy81(-ZX^K7Ѕn?T @͠e䗔d.?o||c]knMTV ;oun nu!eVY^q٢ r| u'Zk.[^a:/656N39w~(^uXZ&Jڰ'v2=6Ą)ҩ["31msCd _שUvc&C~ܢċSё6>[Hߟ+_~ Afd+o߇.ygEmAeH F~hX~5'Ss 'HjS O9vyU]*GK ;k 7d?~<&0g @Pl) AAL-yu15T-/!3U(S=V[Xj7֓i&-Q3-?x[j/1kmI~kNcXo^ G˟O<4rEO3ٶz.=ٱ=/o٬7wC.c|2ߌ?rz6%'jB_Rc*O@n!j}=b>a?8 kE?EqЎBob%B9K6*@9 RgO_n+܋l9r\݀ۛJ&q'+'ոU;X,!L/j|CռS*"*743LT s&w5v{pQ£}eH]X\ r&[)J4kg 2u0 ӏu|fGua2u6I*ëw#xz\P; 9OHz&MQt9k\WuB9KbXL8/l[)~V=`i54q~)]^E%j"XM8.uP\sZDŌ~אϞ7):v kp=YYΩ9?GW|N@(Ƣ_h37KW:\j%t,xk=ŀѧۖp~D-߆y?ᆝ?'SMc]FӘ pxvU _/0Q;~ ^Q_0H|g'Zu]dzېjAI&S:1s]Ikzk +r)+jnTB,fS6,sIXסչYi‘Vq C&*վ`oʳH#\- Hm `D~(&aӖ/IvOI[V /ɢI@Omg!S&tDrk9/^m,/tgp7-W'60vM wG\._4$#Ja'IШ#1st \ФlDPA?QՐdʫ99dtdӼRcG? !`O~RM&mhx4D% =k>-Tn}5VI&vRTY+5|~Y#NN&"$FSO-? B&Q8e}* @]B DDWW2y+%MP۱dMhD@]@}w&HC3fR49`Q9:( 68/TOz8Bמ-NwZ)6̹dyS -ţe]XYz}:h7,P~ l$൒jce7']L7UՎ'[ $ ؀F^X . Q꫋KqI JǨRgjowAnnZzfYռ5"ǃz ^t@ . :n(^dH9fgpI'>M͹}K@/f 'SǢLePu!0Δ(A^"$WN^'er>QMj)ءFy*ƏIԚUj~ &B Gсõ S\=` 9cz-HGs0) .dnD㓣S H'tt;9>7\Z25d>s?ndс7}?˾Y6 ?NA7(JIKi{$JA2ޫ|aUE6c@ mcE˞]tAyHKH'LBŭ C&Ш^k D1#4;_㼐0glPP P21򌙹WhpDFJ^)Gy2pRLo[ig3ٛ*:F u=WfG'MЌg`NhSl9ZEEѧn)T^"Lb>>g+v8CҪᖑP~<|LBno)KeK&;ˤ e]8-¨mۜH=>4^|}%.wbW`:p=s'+џq٦Z nХQeivq4!)4?@VjíO|yos t>X!dȥb :AM}S F וA'1/ ^䋛ogN#UV)8G48a/}߱jF: crkJ=]I"b£R'it`-{XoAw%Ʋ>l~MqtFIwW n@]zn(ijvm. G{#kwiP7O|3:;|Mˇs!LmX(5˜Ibۀ"g{B`=88 OBR}ThJ.Ht˂.wԁbLQNPj:TgPe eu[P5:oUTt(@ ]κ<˕>~ pvt3J!%)YZ˖JXcx( a\`X!hH !h)\I."D(vnquJ \t(05DH17yClBlcHMv3(C1Xlo1UefjSMs؊/tO}O|/dd2uC a/ wVx\9XQIg$b"Ƚ!Fr:PS=jË[E|ya)U**nm/^'/w;*A(4h ٧^A OZ֞lt-ʼngX"xc}bz5F-o\倜cΘ9hc`E!~I؜jqW ώ|؋pe,mCF<꫞י~%9]2i|ܨj$R^o,jhqDk/|iai<“.Qn9o_`wf$|]'pK*%@\.ᚹOR%e'VBWr2= ;n8H~+{(uTtzi蹘mr _pj}`E*&pm: {?" ;-{X'kf"=؊Xĥ w/͍ Kt?s4Шm zB8~bx?M3<D(0V+a!I" BC;WYe&Mb%uϫwv󻷽7=mMrOCߏUs +M>˾w/&<WI\h?G*oZ {ʤz|5^S:X;Bxº t~!=wᄞmY̡z湠.2`@8P,Qn 0F a XH A@$! BC0wKUj\3HQÓ>;,ʞ·o?{#}[l^yrEirU_O?+?'YC@s!RDrH" F`7߉~ L_`?D*u׏ԢI;@t\: cy|Dx8 jBAmƞ2?;sqcM32c' u#!.@6)(f4qCMb<2ab'c gV" ;~ ,}Z )B4du~2JVNنMɁ'-` J&RvpߒNEc '":3tH_~#yhIM$6 ]rZN"yJ4]2Fy;<ƦEۅ_6PTvMS!jlJosz%BT ucF;;C靻EuL"#1iMRf[VF _Kx.!BaA)ew0$)i癫3Hð=݂c[FdN].YUEA(. À, @XH BAT"!!L/U~<ΫwQ|7#T][Ɨ#:Ѳ=$'ACMtuOɈ3%y0$@pOG7Ϗ ^! [^.t'oW՗YΩ:@"} +~f_.K%=|yu |O }H]y,1@dǙK 1ݔRE4:A I&SVRY2vMf½>)_H9@Iꝣ)Wd;1$AT3f}-=[ @  5V)t7Ir+cLKq̴]ܩjvnR%h/<Dij{JT؍+>ρcIߐ**!MXdmVsQi\]Bkz@`~,kiz‚KnײV^T3zm8,n"3 Bvn!^re΢\LmOKO+vxhάe(+HvQ6SItb|V_ F&SNɎE*k:-.Haw3g492{ RB[f8N}JYΐRV~T8wO1&f^/GJe# >Ŗ|ƪ~Y]J=i_:~XH=jj[\~zZw}H}sfHAC7\ \'ŖQӜ׃[ŧǑہ|-^Bmb7;Qх m{o2m|cɟ5pUN /- هWgZ״6Slwb w#}>LsSkHj]F}M:ט@VP(d.CХ >:'hxuv1EQV"Be䜭ȱ^K"\~/ ĕUMmLPҀg*8*ǛȏK"n5BUZ]Ž*L{?نNm Kz$R#/AU?ߏ-3z[FH A=iwyI9֞/$mѕ)l|T訙}.&g"WpL xaH f[k4I/\>9O?TR7-8q{VM^ދ"~?do]ňM!R`Z1hVfی3u |ǣ/Ju=bkhGKxB GZKQGc{bE^t gtc`3@l+#(eUDrU͹ȶVD}dfN`]yhv_MUR/"GJx>F(/Zӡ%K[`D%%Y֡ 31R2Alnn A#يP$ $t@+3c V@`7%:f|"JPou}rG,?i- v4Gi9-7}Fx;ʘ "EA{R2/3AK&ʪDWPjG#~/+RnF$#&]zTqn Wt9S47ݯ~VQWqMŗP{=-r0Cdb5}ĥkTzLQs_ܖrKnm !,w%~A\TCus#33M3(Sbkr)oo#C|P5$H3-9JgY##kcfm4d4:a8k}SY&\XH!\Fwӵ"ze!<;mIf.[wiemPn.J69±Y&_BG 4ZJV¾dPhT&J3KkQn$q d ˞VM?/L*5nȫzЧb;k ^^zFfn$Uܵ%bUcrgJn9? 2 \1Wv5ʳ#x,4"ynY`mnF#+u`- 嚧ѮS/}<؀:"PJy {1!a1]X~]6c?/|ohV 2&HAe(В=6K6p]΢xf9e(I=g&LtZHD;o 5<#vb"Tϻ).faՁyN|{&9"9~8qL靲-0|#==4GlУ܃ !j,hXLN߾?! O `ֿ\ Q'PX >|+82b5O~T|I2[NC96`K'n[iLF~/{؋XWomꑕVXş]UUMzB(5=$BY)< CSl SYTc>Q@D AY;] ̎_~C;F+ic%?G^ՁBȮsW*4o谩TLKHKsI tq&_%n6a+ͽAro_0S>Kxݨ Zoɜ1ꌹ1א;;(* $G9YZرllfȷ!< q? }ʥ .Q[|7fr^ڳ וxZfo@qҧo "7n/Hͺ"`H^놟:|DcwȻz8O+jBbg_ZlaJ.p o>2Nx2&oV#Ͽmq_ϲ_(n5Tۮ78!R0Dfge䍶!Sy)/$hyM=eQ^3:}lZ6MzvdQ'\Cl>>ܒ`됂 `n|'w }}ɮlҭĠbt91cc)%يvd DVt(:\;l0aܣ;6ڧ{kDTJiC-VGfjH5G>À,>ޕ (R^UVOHY Mm"az-Ն]{Aݴ'th=wp6^80`YJK8 0;1γ;yeUC `ڏov1w$lq2ruiqRD\pg qUZeC6;9CA^:%gfP:-| s5Owp0@k/JЉ0s xB_^j{'&zfq6]8 ;ZeŖ7#:ǭI[Y*t/J'X/=t27LCd/z~E>`p$P `T(H! "şϏ̾Ft@_Y? FFa?۟'Ye9YT}0cPaKw4k0@6 8 A.I&S #xڃg~IPgJ@'DsmD2w:؍vElz&"uY-vk9]F33 $/>˪Ta{"lW^78.4`L9Gزu9;ŗ+9dɵKKcp>Oh\fH)::c "ζs(6f5a1:aEVWI=qL ٲi҃#(*.1v.Ũ>8 ^bkk?|2Z.Lm&)Jupy%>L6#j@Qr$Lv m#+}vtx_1U<ꨆ=E䒇z#cg:Vuw[X%FD gnϴ}feaI0<]AN}d>BhN 7*MlZ:T'9z1:KQdx +wyJa8~%ƻ`~1`՜mXQ}?n/1d.īZ=0#;:7|Ȁ, 8kƅ'> TEY㮸#@f8N`>ɦdhx' Re+4잳Qҍyk70EV:FuShxF /:=<{ld% ЂƯe}-r KT1 [ZZ)BZh7avsMxxpˏͦ[.B~Xg*wm`{5VwTb*t,u:gG嵤WX SPL[כn!H'((y ~|,bۦ-?{-RnJz+>$ueG4 2_C|(7VEĺuo@$\Zqq%Ҝ3P@gAck0^h prɋ]r'Lз Au[]H:N{ŻIO02U,&kh_!Oފّ m0?^&PR+D$:."ӄ.>f +FߞSqJ w齁 W77L$)[\V*hogC':C&aEPȣ O,>?1DnɜkޙVB./9Dt]Igƪ11EJ㩿Ϫ>/79n,$~Q5*J>1|1$۞key]سڍs.,C05TTztUr {<}'/}yY٣/Ov_8vs餰c1"nw|DžO u\|tPI˘ "lI@BE(5ЕkE}kߧ,8QҢV]1ysJZ #ʫtwEa/=)*VsqJmE%iH9«2fy#&%mdr>[BO4μ?6]/MB&:$Ed i?w7pMjB_WCc8`A'vÇȼtLS~Q.M+9V0iӭeCG'px!ZfUzz1 c?-ԭZ\߅;Bw$aI3 %@e1EMɒOߝg{5,:hPU)\P ܳSq*ۿ F$ E`'C%Z\Zνx,=Bp7x@g:LDLneh D| !( CeAKȌm U%e-v*K^N`!3,K v{{҄׫οs o-^L8Ld=D9@) 2<:ĐYF<": f͎mZ{9#޴JMA] `&4j{k:`}JVq&,(L!,FAPH"߭ˣs8˺U.p>߮޿{Si[vGc|udkD~[[5 oxך/ٰMշ?_^^o|͹tuA#m6mM{՞3 a 9 IKFidKJnzX9&B ?ugs"P6 @PL HD$ Bm(nSUy\wcgl_n~.9549ڀW\f{z_C]z1o>?7R%S?cTCGt~td11Ӌox ^50(zV̺,6Vʧ:p AOI&S+ܘh?>e?T<ta2dQ-_ճF1pUQl4>C+d,kWDk>+FiԏNrOβN3c.);: hC "  vӥÔv'~Bzk<-PAX7dnzoƝKNhxG)XɠraS(}1t7)kxuh bK/ՏWP`'.趑xkTjbd576OΩP8dnc18O #Yߐh884RtgS.tOK5Rd~Xpή:jk A1?LW"tiH&Y&) :kw{r(6 0w qi2l"K&/VhK8}zѨ #BʜDh{L-_81 (,Z_K.[^B J2ؐiMP!BUGDv n叝nm#'2zuf/3<i8U0 DKSf# t" 3{=x* nyցCatHYy>f%FT53C"[Q[FG y߾V6t3MCS~ƫb<9Of>ᇥd!\CPQh;˲G_vFaUn0cC_"މkD֪dŧelE2BC_>; Ƨw0M3gQ ]M y0)f_T*tɅCglA^ߓi0ŗ`@ݭc}ѬLߩ ?ʙbAOl{˙JPZՀfA+(0 8p+Eā6֔z =2Ţ q6pw x;473oa\j4f& mu^feSynJZd$Ox^3.tt0"$]m 208e.Ma0ZuWcn^/(P-n|>0b4|Pk+MC@x$:y"G銯9O_+3o2ww?Og>)IƊa4[cVx>еY\֩jn۶:R1_2OI=NW N/}+I/=ZآBO0zZ붦-18a;0rлӯ@\r&/@R}"W)ātӳ) ҞޕiL꺹n$pCpVg*̤A(P$q BBD$# ү{\yK6;kgogrgUZO}6Owھ{NZ^yZm?\# qmxU,㓍0!;AqKCQ@Q_}3eg.v&DZ.JPPkt 5kM۴PiGCƁLb2l/ryٷj6}I ]2B2 PݶP|<T8>r|/? Ӎj]mڔlUYO%Ʉ6r,JJ8 .gcz(dZJZWȆ øOuH;->XwSͻlVpusH5zI{q ūc+{28ȇy5Tՙ+ZPS@* @)U?ٵ3j%sQ  4Iܩh)îacmz.RTxumeb8Q~i aOP2!4bLXtyXGtGir{L_A;PK\]/:hƏeQы>;̱TEl|J E$'*u/l ]9hp._-`dj0xvbM&G;1%{kgN㴦e9/W e+A]m4Q=f8'G$8J^&xx4{c%'gҀEY_fCX0 ;WQz{ Hȳ bnNȦ)9PU$ۏ4_|irq'Hp 1rݣ,@znZ7ezTUCOtHD "Sa(O$6ޢ {Hw!IpDcBQ{H`uuݿJB=MRd WXQEz\xQ ;3C<2>HQzvJЛ~sdڄ<:S[,_%H]rcyiv?@>%K^vG^d+Zo4Q. 4+˔ߝ8aꒄU(nFb&:GMX$±T#\|2M x54^foz%HdR7C?!Yi$Kc2lGۣזXRcUjŎ;6OsߟN96-C% /vFw҅$Mh#L@l eYױ"(rutiЀͽr;M4AeҋV|Pk_ٍsmvv-H m~]:JFh}k@$L)1K#j8駝fEju=18B\jE5 kN YtNJ[}+]9RpuJY Mo]H;S3m<R9TsRw! d[u]J8\ѻN^T2$ПNW!K,]pTQg~|[9|e{B2-&i{8X6?꧀@oT3pӑ X).)6)YWr!AL貽i"j^g$u2-fV75V ڻ:W߮QMFlU6_wYet5 ~@:co\0:mJ\}pgnp3Dž5f43=kŸuz`b Msϵ @T nD CYqn+?_ڛƚfJkwMI'T7^x ěVG@*%pJdc?!QEb-dB542-/O>>[hgqopN6=C{6]_3^#+Ă !F>-<2;~:Yd>k++¥.?-Wm<Ҟ_2!ʯI:Hk\35Dqqy_cBҵ9<:X;$AcK$I$fiX>l$eh,Z$tzHDE7ٵ[0NZp|7Z]$A'?9 dm8{$ZC[^?[ &:%2h!XsNHu`@f{0N!^i;|UKSS!Q: OR߸r.Z: @ \v|ntA:Qb+l*ʻ }+Yj7$/"[x>l01u>ЛΛChԑbwdbʄV&0ڎ#ʪ|tȤm'"ׄ~ 4Y@\Q2^A:9tsJez|Ѹ\Y;($8(s`(bTz҆rn:j\[iVj˛<h%§!>9,AfK]lARJ1{gkDA҈dZ>:"Rg轠i'pQQPJB 7˫Z_ƲN (u+2`YąǠg90yO&33/XTxcP>c4uvr"Тf; \$]YR!+R$Y8hcN2@m32X2?t/g绷~>XY&EߠkvbҕemN,+1 ؟\࡝]6d~(1>*LQDv;f WuP2*ri322:f=uպ}; Bl;/AX%{}|ʑR#?>k0쐁WbCUqeB5ӏFkٜ|G#Jd% I>c7:L>%9Mp%mO·葳3|]dd (GҵۧdPlb1L(k }cGN@uLGW-0n>l3F Q8$19¤h'F?!FGeL[T$6*؎1Iڪ_4Qp{'f&y"fոHH6jX8X+?ɯV"Q_TJ¯X|@nc=9%PUj*%jt  e9,Q|Zh-Q|ߺѯ i֏XZ|s0ˤy~(dx ^_ &ӣJY[-n'!օʔR!+NB^f@7=-vz>#,DAM' tsF4Q欀PY!~8ĩi=cM-J;€Zd>ssDA \JA&s3R7ZlYS(l5XQӻ' 3o m\}U6?fo|js2<Ǩ^x̿ vn\Њg`Rќ@S}UH9ev3kTkGo!0DI Yfҷ?]Y{PBB>yw ?݈Z.w Lef$K$upKˍP ] v艵lOZ]K窛/E_TL-Ninԯp@L5p:>3Ln4(;ԈlwХ+d'^G?"ˬ/ن]ym'vdp`vL|cZU=xCXsOaHq XNiAQ /NZX֫03wu9Nүmr0k7xzoʻND6 ;igWjmzP1@ la#zU$<ߔ? c9@ٲ3P*B}hX7s)MRX-pDk$IEhGO)@N%jΫG2_ ƌ%wL㩟~9:!GEqglw/ѵnٗNC !V[w](w$f,f٬WtWu ^GC&,zdl(6թ /&3q{`m Q+6V~À7cyB ^YMpFMWܮٸA֑J""/K)=E2V"ٰ}Fޤ>%,"(rTe ++t@ [A_~aJ%V `!Ze|l~PML2iCl}+$.`l+ l؉Ny#q-GYcWiOY? w4%3A\CLG<cMUB>˾<(ENL}VF|EY!4 s'4 5jb}1&]ZHOjC-.jV%tR iY&gT5SՊɟzz~81V`K3ȌÇ܅ũs*0R9l٘iMQ~"'vBοօ;mJlNOo@yS$լ:֧ 1dxGYFq}~%ro2s–6CtWn%"+I}#+be$?r/~G^(@c_ppX멁_ft8K<ƶg { 4v2i+n!`լ$54K5%IkGƾӧ/љϛ .9jM,^q;kP؝|Ou}@+`otf@G;_HI1t$N6|9iͱF;2JU=P-'3FvA5Kfڶ$0e`@[ӝW1>Tw$n+Llcw,d H$! B UjӞUo/v<}^{=Ltn?Xel[ݦ]i?^Ϭ}ū9/|'G?iYt'{ߴЅa"UɭT_tw5 }8\fF AnRtnU$b`E>;7qO-$0 c8X(&ƒ H# WkJ]u̮榕rArlw<*_5zwʿ?W/gM~>Y>}R^:\tqѬ8':<.BџW 4O:9 oU&W>nx!YbN#GEP҂vA/?<<\}A2G\qkp?#P AI&S< lS}"g\^Z?i#n5ɇNHVVyryNUǼL_"Q >5aSNG'X[^μ($*<3Z"].!Mf8{@!'9}]JE{M=NT%eN邮t+t@_5$r2?= -j29џ~J^`[m޺H:PWعm' D[ |/9o[”2Q-1Oי$a|l;?Y3+RkrF1Ts%hlDhyby)Pr}CK"Es s?Oa!!?A}]bxag^gK?bu[kSI1 |լ6H x℺χ[ɩ s{xVCŤ< \{AJ o ҝGg3ܢs,z,>eo7l>bPO`b z@ۄip'$4޿%BqVaR>/w<L C8J҈0.dP%9l}>j{4tń4J8 ;s{>ZIWl,E.PXt1bcd #ZD #<-7LvA:1?$o:4kU6\Ax+Qe~`b>Dn#lR&s{7&`XNn ݶʳjf2uMG= vkNyU˜ ɜzmzѠ*St~ӫvS)  vUq0w}gzrT `sT <jy7E۞A5Zw{6hJty.ond J\|]n;Kњh\lCmؚ:`緾a.ОU3piD?b 3p)+J MCYlM顺}IgioӪ9 R+KMR$/ 9\T'$Bq*頗koV 9y<_RA C w4۹)]a?<&_L#_C#6)Po%mb?˙E9ŦSm)2l.eyoIR[iYC`p'l98/1/9[Hǹ3'QؑQm.U0p݌$i ; ^Q2v `zd( &?e>/# >qxY=T#/Z0Pbt8.Sk?sK7h`5U.4j{e ş)#0'D ϥ=RM40ߓRﲪz>M-*YrՀ l#VMKLL/};gzs8jrV&wK\UD>1mAi_s)KhM03^pԴR&$?8EEWB LۏMOP9>/`:6ߜ)hgcD[n:saDH8^Ϟ9ltr_yb*Iz9P$;?a#Y)jEY-VAԉ Y~9 Nwډ)ơE)R#Z pyMa,32U"z0=loxPoPVRQg)%5-pGFe!BgF~S"ǀie;eu\jQhcw+qƽ{92a"G} M ŅjY%LMͦnr:d\OXM&ވulbL\!&NUf›"l"c`9q$+LV@y 驶5'uLfSa; ke@"j8޴`)1c2'VgғQٌ𶎚])Zw,XglCO1aaаetbq |]' Jv8;]:ȡ*].vBÐTo~SS*j~*K(frqYX[!W2h$$Pg9',T9nko*Q[޾֛2Efp_rVV/ԂIymԺ4A—#5|;ۨPq::>0u0v v>(9,KfVZ A0W V( kI1$о-ߵ k;wU)'4hNs+ifd!Nb}넙 IO.E^z7~214'-X~_!O:@ЇdSGOߩ ȯ BҊPERA@X4`*vD5E NfG[rO>MxY/-Gq!H9+yrJ%wY 0 À`,t A@$e q5"^]]J+IƏBG~wi72o :VSguJz%֌  nxrT.(W*~|]R6\z}9d>l<$Uz֨u'эœ,g'v0\?\ cFt*>0jBݰt;@򱑲u^ϡXQX9ήOROUqg[F541Ng EbՙH%a7_$VxC~sV9K<fP}6LuK{@M5l 8AU~X4$]߇N @[:My;u3RrבZr@I')fzZj3a:Ch|mq3\X':m,<;JgSa -1>]}MwwSouǸU\s=yΠ\㽯kR.j H5^\s{:]J@Ҽ{ c\rH`THXg_wL庞j 8-Iw\4YZeX'ˍcGUM˿+8 kAI&Sp+#ME؆P\%.j TVtxFkRhwACbįp&SjqYA}[O< DCG[f]tp$C_=>ژnկ--FD2GY%.^ h8XUhfh@i7]BxҐK lep{[%OY74Sik%Y6pt`83In P\ךsI 627YjyW50FE0(ZwD)rDL&X¿#ߪ.T x> B͍p7g[ ֽS.3g(}CI}(bħ0)3@D8`/x-u ^jQ|I![Dy @ ;Oy9ɣBjtҲ?bFUhF` [Kn!Q.'ySzb`hӵ>Tc|2r+h|Kã>1)Ds?%8LAZBICL{Ϙ)2=TUi[p4N#֩(S-㐄;Xy'C=qZ <Cw,DVMEYoc.r f998ظ8q[LNZw4k;T tZ{{Ԋ$2%;AЗ 7RY1%ևr23H3s%[iQIYAZf2@ v iX&gW醖JA̡_ڰ֨yGx,NsLx!P1J"`^K}o_ 6N])BGɑ5c[kQ?J[>kz(G!M OP2^v=?7V$ ksSRP_-CҕIVzhU>_+w/z5n@G%:DjI]c.@2+Ej2$,<SVs]2NǞ(_CAbyLևL@6_& &4`\_ A`IiI=1?`CSٽҤaYjNguXm%HECv[VmAGsGG`k?P0Ο?E"2&7!H[%pqKNZ*sdd\UVU`rFF)~`ZdS>jxfNDfC MUH+D*](KtC vJۛFT $ҿ4Q!gmW{2lx|jã.UQ$;?Z֮rC5AO8K[%b0mš7utS`Wh3 8 1)q&lA9@n\NrzU_Cǣwel Y}'j7JugaŒTʨueFDerzM 0:q4@RɈA tRq}ArKJlȮFYnOY/ʚ?` cNޖxfL5/etl>5T h@ʄ>  WٹMUSq<.2?ohZ&GjёFu-Mdq:YfV:|7mbp90k -7Qz%7j˂g!=@WP2ߜqA%YP>M9@R\rbSamSB_@pzZY=*gҊb:W{wv-QX^2xGggo|GuZ%a0Jߠ><AԉOSDiyim"l0U^hQ G"=j%ɀ+u2a=CP[׹bJۄCӽML͠&ֱT>*tԝl|-'BRHBquèxMt4@?}hԨWS:Ԍb5~%>" u=rQ F7*G]8BW 骴5f/tW7 F9ZwYmY*k1Y3%l7G">q⑁/G}X_].œ:/$ Sq)$)[K' <oE88}*(H,hѼ%*an΍֦Ƃt,M8yOE+@"7{m/m(QuOwiæ375|wVPI_ʾI+Wӣ,ކ" _߭?{=b?Q-Aا8jB a? F6c!klA?)97> =̤i2νj B N8AQyi sZW"ObyP娪>WS1c=jTCQ`iDG7<ߛ !K "kzʏmXɿ#mHj6ObRQlbVkHNSR"ױZ7k[*O[*Wm{ГD@sx#:H/W< ᾽o#GŪv^Ưj(O `wY|gi"li*z9 !RXIr[I/1.Z5^Io %iN\!# ,UQ{1^Rڧ$wx%/4p46L@AfߏiLI$6^>>hd"i0/C}Ea$0F @, #T$% ޽k%Z%VU)"hI^wWWGir*'/x wW \|ﱆܭ㍮|/ 7@e|?\^ϏκaWAI&S<p1mHZ9?E84D[8\I(g𭡴Bp_b2?%wg_/a6-Tο姘\fY&Q|;HC:ѷB)|nĬ FEwbpI3̟l8`uOGqb~f'!r1yMIr Agas~$WP Fz|GWBs mgP^ZAB j;# -Jk?KC":J_ PW)e;L]r[֎VHd\8l¹v  6xglc hxYS:Zg8%r'0( A7M*TI+ u,I u$K e(eIDZLimۂg8Ibe,SVN 6(:"=%Eԝkkz5kNF |ɧt$~Z':&ͰDP @o48k{ޙ<8Y}q#L\dl_t2#2}`_ }+I*O:338Tp wcG.34d0l./լdXgRv{"8 N\`@G)3[ lWJ\\g+X5Xc֥{LR-~_2B+N|f=,. FBQ؝ki!li?Xv/{ȊQ׽J+MBAX_0ulR?ampZ|yK~bZf辞cȺYBq{ףdP =N0A y*jPo$NRGNA/ WMMLt"OI^<$) I1! Z¤Dr©)aƬ5RPKrQu4VZ)ii)yCRQantwwi tge#7;< &~PQQ^?h$IKE~爵uY.&iݐÛErq*H^-PhEѓi>@F -40%QQ֣J 9gń a8=_8C$ nPeEl?5M/hc`': z=g(o:V*;AFsuHkGE:ѳTG{w#[|74iZwO`[lJ׀=8cLc_$Ipl/s6Ybv:qJ_`zG{ |U^d9As\7Q#@<e`cMt8&R"&;>X## ".cbo\#%eE\Pn_SÐU7ZʐZ3:ݠ+P}➈Oq6w*.r:yRp(%,]t}FC5żLV,&9Z ];3ȴ xlHفP>~5cYD*ba5-̝}InȉO(Aۿ3Q`'a޽|-ɺl}9of[5¤ y] *q ~"EǼ)7^ut6OR|~yC/=}}Kbz {[ܺ[l"<9cy~ra 'P`sp!MJQ V[͗jB+day6ݒ)\e2`E]SJ0P9\tJeMoQ>*008_M9I`o· ^ 죂I. +n_e`cuYܣdU;gڊQ2hui1mnU |QdkyŠB9%(ʭ]5?jo 41UǞLN6,|Y\f1#vt_0ΠO΍,]ȃ֑ǰ(?Jv!! F2гAjH23xl3/bŌlCْ{ ấ21\$KQp-XBV$9s؆#+5O山5̧Okz΅Bŀ< xֶ2W! 1:=%0mJ|^``piZk^tSDž\SRk^H5[/Rݽ梋zv޵0 m0jvhrT\IvyZSzZ6陪1NY\!ňFm[D9Gv*t19sa>cLN#_1<]Iu,2dOe ߡc`Ra)aZ7* WUj!"LO\g [&KP7f[#}9S_tG $i ]ʫo)wiSwZ%@}/x*8OV3fF28\7̖lCJZ{lھi=mЌ:wQGZ2cAg5T&嶄2znST<*ʟ7ZGv`K^58U6:C=^jr#Xq;{d ]zh՟mGJExD˴`vVurg  8Ү,K< O B,R.\ Dñ(0μ]7ɲyb!_RO7үxDƜxBI}ή􄵑xNNU f&;a pUcd4D}eny*x^ev$LjB8@!ieШAmKoyz%DxnБכGH vqi0a =zsvp*.fy#h2$Wy\5}wqwjt5zb /]vwk翷P?[HNC}6:G±FYѻ>սtg5SwɁ 2?𙲋#,D O ~@zh6GN"S3Ԙ'w&RMRe!/ս#7Y:{4N݄}m#=+yi #.E#HjmT7ߒ9 r;y*D?{z ڰ.0'/O~v (|?w%I؜>&c1UoZ{!>G)Tc O?k^ZtZs8uZuS؟"lPW@i M_E_s"0 a@X PH!^t5Re⮤-*dJIצvz|%|y|sͻM7͚oyc*cPWpk?l?Z/>z![82a&\1d0aeߞ.?Bfh~}nU:y-(CVmN>yx ]Gebk7e'BWGziVګ!/AI&S$8r{D"Wހ}2,򉌷L3i?UɻSC%1czhe^蓏 [wT0U"!ű?"樝OgZE߽l&`?IO ~uɡÝD-hLkYOv(SqWۿ~]mܮyY"at(+A y גn:BM;1,9),Ҫ aYB(uGh sf% OxI"Q 3/W+ %›ԅ4OS#NH94L@ F'NP[u6@75s 1og1vMƽ&t}mM cdcz6USS :uBKĿ\YxZ`[j딱y먦))S $ooQFp>9-" =nLrWR&&kABW=F.D asʟ', VVzt zcq,g=]$ākZ3?ŭ3 W<21}y2%X=BEpVP 촌d6EϡSZePV5`)ίڸ#ja$&W=1ZC4$euEf.JNsc>r˄<]K֟gR,=Nin]:qGa hz F۬7r6uc)̜|Y%wƚ(o.Vn1әBq=]Z@PHr7Uaלּ|h,ϕ 4({ufAX=antT#T/&:&"&eyM:(P< (~3(sтhV.'?C͆1q0%)!#6"EX^tsnfe @@mو';?ZqV@Y343j ؟@&L7 4gni|=/hT 0lmBP$fᑠkX՛j3 UDoiyEC(ya ;<>CO8rz ->yX\YGnCkp }7^u7n`FPs C@2I6 ];=ꁏI/J7#л)kf)~P4MPlTF!{bkGP{oUbL2=bU&ӫ'_ѡ3 ꡨ&@MhD)aʹ`:@٩zIR@[iY]c>#6ÅvzgC! ּαkҚsE *V9rYo+yPĔ_CT~΢!0?uwR кE- o՟/6(a3OKJ~is?Uݰ`+1ddZf{dDV dhh IЁmS"^ :~y(mݹ\`@5,1wXN5w}b} .bMr>'DLgl i ZBu()d*\yӽWWtm~;X%}?)U47HHZ JS3dG|v^2bPR =`2Xmf]ݣh|Ƃ| }}KP*"~@E/T7_="Aw] jӇel|~y{g\ 6B~ŷmބ@TmiU]!oр<[ЍɎG>~骥`.g`Ԡ2[;;hqII/"4Yd ퟬ#? kFI*9e 7ի]P2e.=Ūm)*jȐT8%J_m3\\!8BfųѸ5|M2@nimh~2C _EBf@ _E{":+pcv(K.fIjLMSNR)"ā \>av=χ7@JЬbD K?}a߆tKu}xeƘ "7(SgySF\λ mus F a5F>0<=,r "oD uݞxnFFOY%#bǹukEj_OU+KųN<%ǺxqFu{~n%.CG^h |A5 5}_}|?>}>&u͟檡<0-PoJs#MMN\ 3]xRS #}ӿg#8jB0Zi$mx2sps5&s"+#ߤIɱ}*fԔ櫳,ҵr{6g?oLyAu OM6y[e h?cs,ڤ{}뇌p],Őn@8ǻQKI|d1^6EXoBW /kkW0xq-CPNy1G1/3* B I Zrh7E|TWvx4V+ b6(,)S8o3e}mK0UL˅ߪYp'~ ߮"Dw"bV;NjXc-+fTYҤhqa}]]xuBjGGzllc?D]UcJU{ OpWd6{~:7>c %L*JνAf)}4C)&R>Pab5m֊ߖ £b y2X\ t-׮ ߽&>k8q%\K$0 a@X%*^˚ܺj\nTBUjkГc!}ɞ9Zvi;i}kӳ_ǍoinrwpoQxG*'}ywgcA:ar\&o'8\pE϶㨟(ᰐ5>Y`epFCADH_gt02TU2@ʍΤF5BY*  ϽmBG*,z64f}uErq%#^~6ܠ4SsutVC\2 aVa1W 0Ȩ:t-Qu(i^ l"EiGJI rY-i{XmO,f(67~O4YS2aSh [oL|3lLCVnHmYa\=bcq\I&QD}%}C0X546׵T{-fYUCBK%$d1=iJVO!ĥFw>Emxo:Ɋlۛr uj>9\ ae0όtP\-R_g\@(w!{QNɄ}˱g'VЪKbGk ?rcYqƀ+@EYjJ % i9h93?N'!$TiC(!wIQ "x)T"3.;gNI6܈j@W's)d*=_KD״yR\{ ݣo%ߒZJl׿N,0Ep4CD&;^S? ΨJaTvu&(?hR鶌[pW/C]ay +F̜-p;׾ 3Y%i›7sN'5 ?,ȑb#WYLFte8<<̲}]!穦(Vi4sPSTHY$Pi{)SᕡE"+![BASWzNq\Z)65& >;eBUo2G$u6PAy ST'/K{ӗ?0;.@ P]p1ibxK58v #D8B:y?,#A}Ngxxh=%7%nN_\%Wi`n$3vNTߝ#i[v)UCDi _{Gm@.Z?E pϙWyYb uϟW k $d烪S(JU|vɃ,8"ageGN?ekw@ N:W&n•4ۛM'.2:JЭHTMr0#G(@z jGy7FZhFF#l+ &Ć|ږiM~QWjPc|(& gcЩ"Jm`L c!{uKI$}L<׉$DrGlUdfTRHeqdpt2j{!iדiJֳ\npoVGЦbS6]aΚ {U!)E9G b0֪,#P9zkH}{E++@I i`yY$x2KsWeCL+EWQYN;[ƽަg#z+2<;e; 3bo V9QYD@T`YJ9 G#cz`s?n3X W8YGZ %o/oy/}S^oƃ. ɸ8v(8팷'X҉N2{]|`{ck5pʌfqM>HH@Vtjl䭰9W<%&좊j: H :Wd 1M0 ct. ||Vdv]{shy6cgʞG&>5/ y:ּ}!Τs4 >9Fo, ]N&ۆ,j9<: $oۻge!I9b-V@Ss156A憄lߝ;ƳxO_!:cF&r' $1U)*\HC/s-S?Ts`8+v^kDxpPJ4b䇈nKspOX'T ^lݻC3#B`cO5%$I&Ech )|?g(0f'<J9xr&7X2,dE +Ё+%IR WIÈ;6%ja}h}%/-)2_k82Ps%l碻PXH_7ICm Yb 4:ё ^οʚ]!rJٵn^5W ZsiZiVS?sG 71^~v%-lB$o2HmM%g"-A-yJu #bL7qI^];x!2lz!Ć?l.v]W]!Ӂmqo}WQJ.s%?0yvC%z9o:ΚcAz;zj/q@PՁp~ -4DN;TXA31w1w*VC7T2Ĉ,#WZ67HU7x9{W # "X#{(-4x(7ZdJi uz*~65RRTbHK}1 &-./j[Yr TnM+)JvJnڋ=kUWA3`1&mCX8'jQW [$%?]Gb`}tS9jjy9F]ЌgrA?#GU$pcG me,rl6o a7  J^2J Q UIOzJg!֑ƩjQg.&LnX_FdGo]fU,e_4䁮.w?)b'?Hw3dLMhH,koG-,Eleɂнvѻ~(C W*1 c2 }w>$*OԨz)Tcr*եDJafzdx7]nkn/o afƊC{- ~|ֵ.Fx):JGn3ޢM\M6h4yV-* *`Ji!'@Q͕*%ߴҷԦ_π6zvvmpݼmwpb&Mq]"waW֫#_&(gd3Qlyq-2Z.h˼Q97 s6)*V6"c*k+6c{V) %19YhTg3 jd$-oؐ K1r"/tf#  .-wc@HWF "wO휝JkzS CwO(;ʨ  m?5s(wC8,`^= !r㾥 Af nnZOu{܀DF! F͹K]~{D)LɈF<Gfc{!4eĴE#GF~ՓwYnhO3F,re%u赌z̄blB<:w3Wނ`(Ď#j|R36<'Y8뀽upmpֱ+DƷ.`cjC0'"& i,)Ap5ݍy`yqZ͞($Evr2L%YY8^1'71%NUV wg(Wa 2]VK#(rI)ST[[ K,EZwG @K:"2 rP@AM NuX \@g@$A^srF/aȎ H{2?Z/Гi +~rEUɤ8'Kbeo{]w kG;l5R1b&U)и^.BtɲeNO 2h`0h]GYl@|2n\Pner{@CȫaAk 3Pff>JHy6K6 TA/#I&誼WTn`Gp -`E6w#Eo18`gQFܕw-V|Qܩ=sw,詅׺ kk&e RLaτp)K8vb&}cT}W!p+F#d=eE!lKo,I2- =!@`ޓb^G\R}^-xɍ]&+ Bc㨵.;%,749v{ǏX֚QwP>Йܺ~Vus`5O?}v`=%oEgχ N=!i>娷ሜD:mcaj.M`΅hEm[WVȭ>1u,~7C'y8!EMGBCEPnP.z tUl:/MܓPu|^vvryLUz̭F3޹x;)6>^}.P[5~DJeYV0T>^KՇwNkjIr8Rx2(0 tVBMY Fb%Pw'$_&FqkCH5Jݦ6#cshF,p7B8iWI"-.%;d!f53h]}@]Z&Zdf9mMVN2lNh_U[Pgﭯyi:m%[&dI[$~It 0lg7kgR x#ZN2N}'(]TGAk(h֎~IS/e+9v_SU޼v~KR/ŬESO_c}aύ##0~bOIUv/#Њ #QB LrO҆vٿi|p/kɜøFH;3m ={fQۺXZL%J@u ݱ 43;eG^?J9};HTgil*d=RjQi1Т>n,1Ѷ'l,E} I(.^ʠ2׾:*ZrI!1e}hndeu<^+{abá8xw;$K&{h_$cjc چl!_7_΃p7Pry(~5(Iw-F4.jiV˄9$.bTnThI1b3Њ$oZ0ܥOƧv̛?n&ARvyhahnqjAH_nT65(޶Trh}1QP0m6-L+l|' 'N-cA"ntQVz^9pKV=y56aaKQ*ýCpD$'1"^hXGh+]Pv>ʤ9r=T,[ݶ)?W5'5WQe>[{C1f[b}T+.e2bif["RQ$ ckb^)Tq2|v( 2)tXcFUHa#OP$7s.v'5y*K)L?LA!JYܳ ܧ9!a RQ]GEAM&dP!bt;1{'Qzo+wsīlwiz`v8*Y6г]su׊Z>!=JK/R Gţ3_$hϙ R$qOŅ\dd)~XOe HoC ybAAv BˁHL hG-ؐ[`F}yհ;SIlơ/4t2 h D<}S)T3-%,Σ4G5:3R  \I3N/Q#R]'{wNJG_\->2Cq_xy4NJCggEe:;轋FP# l-$njO==ik݀QLᯃݿ͞$2W4bf28)1QgM]CcdspBa ;''Y* 2OD%G> .=hakj1h&inTdyZ44 I~raG"i"-묓!LIL;0CW]΅B'Lpӽ` 0 W<]gd)I_ʁ=xFBZV!:"<.ԙiw"ɤn>Vη6umewQ;/ÙR~=m oOJ^sȤ rM݅O jΏW\e7í>b} IqZΦڅ+ /S eh:F۟`H+MJW/e}WQv_*uaUXmxƥivPejC6#<Պ:2 ybj$-ZR Y:\i64|{f-Ұygg0%6Q B`t ^I6dn7wIIoY^9e4ҵ@ 4G'HIiH7Mu~1BL_O<.@9"ծPN Nn$ni #BkeMegG+o;_0Lm0C؏FCJb5;T^v8[IPbMQ^9Y)!}+-)8ƣH^I7AI9/_t~#c ~ňba,U{D| .:AŻoO}:ΘwkG74LR<ȍ%ZP\q'BHʑ_kDŽ>owYyX8{g~-}P)MրQ#r;wL|+@Dͅ%&ùikC0RcdjUpn?UܘtFq(GĮ+J8!lĶPQ{>]C dB`H_<=ϭGhPw gօEQfρGi7&jd*]fǞU{w8h.L;orpRjC?2%XO\n}[#b hNx[ExBCOGTG~7uQ]Rmt۾;Yڏ8$B2BR`k:)ñ&Q Ѽ_2|m دLyMx$u!-yx;?BrO`Îv`a|e2XAOODXd^ʡZ$ˏ4'|N8Vꉜ/Kc%\D  B/+[ Kg4;a\ )^SS#;#2 3(| §s`EϮZ+W̑}y !`G_+. jhi7{)r$ħW VQ4^Mx\Hg|-HSӡ )=gGwʳ'l{8D juGdJP3KD gf bK *8r}$4!5ĩNb].NF Ů1s -8ROU c"Ѷ@h?S2zc&o.+yhή [/Ŵ*y$ed玒g}Vdtu 5LXb$${\MR<^E3*4V+P 7-qgߨ҃xG%]G #J*:cն)s!i,+vY pp m`V'fV7H?w#x8s +=tv;u ~_7k^1p$4dgʍ $_0 <]4Tf[=7owFN%,4O_sdԁI-?odN*eB=7r6\o@lqy!kd99܅/wK\HzYQg~]hhSwf),_WeQ}^-I?C魟WLcu{P5H !p+J7^4.}#nАTGdXcVnLk]Wo] )vi,CDd͇#eԊU~ҤN5߄KWLGMZzDr^U+ɒ)Lwip ,Iax4 YGaQQ;c9o K@brgYef2ɤTP˄ 5S)c]_輗?R'a߻$t=}_D5mYa `7#IeNE3pZ)JVQqieUm37yAIȊ(ŔA`DaZ{56qMS9?Փ}|kTxJGr$o%U,3d>DXG)/JIqK N~J5؁cS}:h3oR:N z J iڠsЂZ3\cqq1qH#"ӻ#9EVh՗U ꅣϻASegЛOCS|g͎Za,8S-x#՜"Y =Kyg~ǝ7{noC}MQQvV[/?9wkEW?x7QߝYJ u4Rи !##D2)'q τ[y𬾊"'cHwroMpSknJMR;Yy-U{Ҥ/ $@3K;,Esۤ6T\~w8<$`6}5[*8I C=MIQz1:Y?qf?3U3=@^$mEFiQd.Z/&Vo8t#ҼgUq#Ǣrr]}bw|KQ +)cɽC kM"۾Aj6AhHEA:Kt)1EHmkj\ /[fVʢ !dY0=a]~"Kzѡg)l<`#32mb2}8A06/.&CI!㰆eYݏPeZ'+wt)o27@ (%᧭4I q-ӧto/i ŵH ڪ/5hM< ឿHuu4#JUg?N;']1 g?34x82U \XFȓⶳ N&I+u҅83|1U)zNe# 1N3$I& Z䒛di%t4@"8XWʗ\( r-S&ub 4> 8crːBǐpE{mCwv J0NvԹ<!B>xWh',w&?" ql/P@sR _NaV0.qӢ@u!nb_s^Xٯ_F^t'ut޳ r4(n+P-w1p/[ [6e [B6{PORfF}<#5-H݁$KCΨ Yr]%{u]zʚc_'/| i.X!Ӝhuҁl^iǜqbDr?cPBu H Exg+Ú3(;=\܄/)2G3egЗs};k@G&a)(TCcX( A@P$a B$!L-zW&EIIuqq\wI9O=*~G{U.s7aKIxJq.}b$d(2'-]p$}}z/NfSh {Qҁ_lEA$T]$pۄiӊxvzp8A"lE T9J ڪpF*X~w㵆؟@\@\ ~CVfBmn[ :FZSI;|;ܭ쉛1>dcD@2Vc5\KXDK q`6yKgu!^L5s,:UN#}t`(Ӕ𤋒V NqtCTc['Y顩ˏy'kkFy-Ew&=Q ->e UxN< My.a|:qZ?&^P ;Z=;&g5&6S799mW ;BJ#N; \Y2 G~nc_;V2Cݾ:wԔ0 ,;^2x)"+^V8WT)U4CͲiGǽ^& "_l>8} 01nFvQ?yLq82s*mbđW| eVEW27iz 5-0EԾpQ93cn/׊ɖ=S,D٤3%'yG"7~B$C#Q lf4g v.M/At7[fUR˾@1āܒNJ5=-hu+reqretN^t-Tx+,oa-p,ҸmҺyb4gYM٬O9yV*ֻ u]1Oo|>3᪄8ÎX?a$mY_ 3-qeqv]fhدNSdú׊,L0JxCM  XD8 /UX(v|!?[C*_;3 b۲_j3ֺN']t qoCCOM+9cuxXy']{|=!)_ gL\ϭu^ HNކɦ!x9D? kYn }QoUρ] Ze+zu鴎yqu`ù `-t`ɒP$ozwxx_j;b9F )#73T0@.rpl%Xf=hhk aMsM&BI->_L`U$͜c)Oٸ"졸*=*Wsr̝Lʼn3O(QteTJ#q=A/2]+꘮ݞV( CrWp|x"|Ʌ{sXڻ9OYWy)SvxP¨)S8Yh#QQN .UdОAyx~rG>٠iklŐw  qD#6TXBz7zrO2W]<.Ӱnxnil>TGɗ}UX S!&(%I ;pL8+姜l1Rѭ6V@Jqmǚ Ii\S).|:ڇ(}2e;˟rq~1MƦ>EI)]񪦙{x͈& /V+kRu'RZ&@({ *F>XG #K/9QZzⅣ<] s6Ӣskj>ӽ L"'q$zj{bVz?` tSk(n-dp4n_pCr!*ǣ>XVSF~6zkzZ4JY˧.#Px2f1jJ$0G €,$+ D1"S-R[[EѩR'BO]~w@Km#a4Ӯej^8k)A~@P=d>ZjAy;n':ʲ[\m0v: TåM權SeўMv:J>E=9mJT_uWe޸NW)?wqjpZg 2%.Yq쾘ˈ}jΈ^&̀l,sǵ7ghtSyu㯄Hf7rl{qܹ|!ZX[ ƍ NTZl@1WNB)'OFKxDlo ){dm}YdTg{I7muxY8)'= q|FE!GUGӃ!a51 rE0qT0[Y:A^DcI"S^QrΗK `vN!"qREh({8^{6$ o,lQה:.0휱+r(~g+$ii>" ^@LP p,DBP$!0t筥Қ8ʕRehߑج_v/~m?݅^Jlh?ٯ~X Sx[e0X6;gpaO _d!U}?gh:@&g/wߴ^8+m7ۆ1aA9<>W5]ٸ =vj%x' ?Jw0Gg T+ @P*! DDDD ͵ϷjR$sq*S1._2NZ{ Oxjcǧ?^}Rw ~!w $DO{|:]Pm'S/Ώ/4ß5'O^ϕ.c1E/mgd'U$`(c,勵83{/ ADr@PȜk5MU3zk\XEI or-XnxH0g}Zm%8K~>zJϾr04-TW jlMV4+f[ur@d: N "ύ{#Q6\ס=*.=7=UW+ϧ*=ejyNذ{F9WX 6' r;p;$7m2cuo </^tAX%QCڨ ゛wHca68Ln՛,feɝD'{Y[ۍ{xOtiD{'o%J(}d a 4h~3q7Fo)SQ3 wprX<OtVQuCRݖpC0gB< K[W"^*g_8Iv;AR3pN}y3IXvɘi;;h5 ErmjupkK_*%FAOBsq_l\,Aփp]r@iٓ~ wq@,ʡ3#A&;VuXft/ @IL >V?5_d}BbhF <ˇá 3" B's \ګyS]ٺgڔ HD@A:C70pNt3Ba ~cil&?Nq2Sr`ǀI37$lenyW;<ĂDZB-8[slyJ:DŧT)[{% O.laXs"{Ư2kԓ.:V_!%6.t.NhC=qlap;!iP/g)SQ]Pa!=+{" F C%t u+kă-\7M|3,w |bvHt&ua[~\yE3|L(FD``yl⯲jU2Ӂ[-)7U[{ !0Xx. ysaqAš\_ vpIp{/ %eOp(b<ƩOjV("WxO-)^@E tkHǨf%;o;k)Q?ݙM{aZ@$B ,y,%=w a QE LF⒨fG>2Ka|hJ:%8,د tM(s>;L!lsm~kXJEOi_EɤeIp5/l=Z^SOs-*]g4w ZoC8VQCYx) U 1E^:xc9ս,|V^~n/tAy ޮm5JI`1ؙRȹs$OÄ;htbdBCJҐ=ś 0*G/ e *ˤ+%N 1M ͅ*IjU"k>$ G, 1C ^c {Lp 0o i֏QqR'de0v+˕@AC-jP]wjm"bvӵ׍Qx뢘A6o>vB *"puh3ƌքLC2g~c=>O.5T&FҮ8KZH?}ДY)1SPٮ>עhG1 tR$0J b*$B!(H.! P&-*Ukƪ}jz?û;yr/k~goNO~?wA4~l꾛w6m]`l9gDr\߀=S2g.l*yntW?Zh7; s}ꚥ:Ț gXU}|USp\d GS}g&Ռ?BfY@&-Vⶺ *[(wW;m T@^gc20#gAH{Ɵ;u昳Y,o̴?nWL4s\3qw Sk'rx,+’ \ܧ)1DF#;Q;Hխ4îZCyΟP;GB#= "0f a X(& BCPT$t w2^kyrjT+?+M˗N9kZF}E\sN?g?*.@%y=9>Vij6\1Gqte@N{~Zc>WkٙHytzWR{,~DJܰG2KwyС&  0Fb H(9"0"BE䮷Zeˆ_CBNy=4m>%=5KGi>1'?yOǬo Mh/ݫ2avwKX#/K9)vukmōnЖٿ!F}M,ҮC gH d|Jt+K= AfI&Sh3|C 7xI;4Rj}+´1:/KK@SA"'SGH ƝjS]HźP$ƛO'jݲ'ھ!N)W”!5)Ss!!M MZ!sp;DӆD’b(0?sǾuE_e, ӓw]-LzmG~ڣ Y'ZW$aB2雓$r%Ay$b35$e{)֒c:.h!D(,꓿f;ɐ-(úC DtjY.ؕ=\܌Z%Q:a9QbX #ve9jӱ6 ?}`?W]D'#>ψ1Ӡ6Kb<j ?Զ|֙7~w ͕Rgv8 Sa|gxbL<}ħ)KfǷwPn G-v V%5碯&9a1?a :9pckn ȽTtdr"|LP{bە\.ԥX܄᯾[pWKLZƯ:[ ūjb*X[PIᅀ&Ϥ^;5O\yWg2%>6$LCGfXkE$ 4m$_1b˙"ס ^18Ǻ(fhe%l,ҝhm(o$UMQR yd 1م/&9!yy?(|I˚MS?Ug{.drSCTRim'FاX ~1q{VϬuvdaU:[YfGLT݆w,E1m|RoAg, z Km2/a>Տl~޸fu%Mߌ #/7kB+*Ӛ^ bϙ3.uMl^xlӲ/tN,~Hh Ψ>5{)X)M:+''G\jmmPP`VD-ꏙ1<.t)ЙU݄ ٶ3y"xtgNQ*o?$X/AH2nT셭n=p8xk)lӾJe;kK>kcgkM&m]ѥ8p SX%=ub5>*FBlp 6ᔺZo,TA𥃜jB.:E%"au}2|PV؊s Q0>i@૎̯űtTz4Z%ދdfG# FMQzl6Δ-:(u&9}E9{@J{h8PoٯtM!( >uS^q;cMpV0WJ^Ȍ(cM-͉rW?C⹾G(2>E kjQ=i ]fToJw6Ȱzp"k^+bȿ֯TBАLvvB?OmC:=` >d;bAAKmeNρȞ+0N߇U0M/f&Vq>Gfz_4I>7;_PهxtsӾ1T[cZP!=Z%/ҐO20OruR`HXw NخT/0EjjPr/狞 ߽X66Fk"x5juz:N07[;|}H fO.m=4'Ҙoׯ zzCDVnhR] t#^d(43ܯ*Z/ ?ު(. {h[Li ]hjIe @nY,'K((KyI2v(>7ƝP9qʾ|#B2 B ̎ W#b< D|;~σS%KL$!;ǔ~$0V a( @H( $ 2 CKD#M>sS[4Ѓ>- X_Wr~9kwWMK oI}B!솆#{7z{/ħAIO5sXAO7߃{.8.܏SH 51}[lɎ|)~QPG֩n?&+.^P%&=\EjB]eDB%ZTiծ _()՞ ^MHt~8sC(n75=@z(*ɾI|PCն0P6LѲWR]F2P:/Bצu]`WjٲꊝxW柼[{~]~'pE 嶱c_LE;m=ǣ*.]Z<>g9DZ1^0/]{xkk >eꩃ$o:x@"0F d X(B0a!"" *eIcUQ+e]~إ4SgO]oG{ ^;2Dlԯ[F/20kӏi5D' K?^7=_}ǭܓᯧc?i\ Az4u:a x;B/ C0V0LCU| uAI&S<eDH}︪L#J#PqcgxMbovO+`>B앷9T-tobbIUoW{Ѝp?CTיBc;۽\С!-BD8rΜ7!OիP/ט*磈nE='Oۖ?[~_(hH4B:ыNqDT"$_69@tu%kn"bWLn^sOmp%SVTLE#_$DO ߴaz^.aWXa00 ^،Qףȳ~ʮ0txqjbXе @MNQ.FA9Cڀ=42'v,6F;rDɂ6znyi$FP)"ڌ׈,45H΁~ZL1hNXSВE8!#GlX7kNQ4 ҕVo^CrZ/QR4辡X´ | E}ep-_(j:WY&gc}Lr +] =R0C]6[(Z[>bїFO,[3aRtOcyKDcd#[_hlz-}{UO5F?#3\QXSA]+E1w7H|Br;71 ;o0\8TVkFq ֶF ]*|sD)>h{ZR\_W |X7_& skrpazC9s&˄aRJXL2<E{4DX5cYnyIĥzZzH$!}۾x`g9X2G-X5&k9p9ǫXx}2Jɐ92 =]}@GVZ[x6sI,O09joKp5 b(Qrإ6gZ<ėJAQWW!9Ia3*tVƌ+g0ȌYN}9* =pz|bCHbEd)W~~z=ZĶ1!-8ۖ18G9\_tOH֠q-a V> y9--&&>:qƊs_K-DSDrFxqAʌ,M[h{RNdRw|=Pp+kY>~s#qЫF5[v@7BI @_Ic}zԮ3 ?j ň=,#⸾NJ+RU#̔ݣd̬5 eD JpOI`z $ smM϶ UHOF8Jx8&H̏<;.G_]vAr!^r60|0:xB R\Z4JI݋6*Ԁۅ w ځ ˴!4k 7*z>t)VtqYf֬!)*ˍs2xAr'-ۙLDWV3 (x4>jimqx|ᷞ qQXݐ,ݑ\u_z$Uj9sI *Ƚ1qOǸvw(dIw|1qL$fc@Vv#/[Y{'ק욅~`Fwqez׿GdZ"(-2ѪY";?=*&no4eL[( p W*~ cA:YÅ([9)]=;XfR>LM+;|Ͷ/ \%$RhDqq|[[ 9NKC!P)=#{BO *⭨kmVT呥aPl0*RBTD}FѯڝF):?ea|T_%u.eT&$ @P C&RjP.n/*HrcoOgEhwz~ks/͡/){_Zyr.ܯCIO@<[^o^-^m^CRʦ/?ecϸTFOk2VeX CLSiQFun}8re`d^pjBGjX-Wղ}dްzH4ǚ&By AR~y$/:ןR'\o7sYҼ\zU?%/"ѱD!^d~fXC:.2P<0Z~zZ2t+A_tvL'4f2^‚$󫒪V\(2g@ nxwܓý:lĬTL9єd̊#Bc"& ;@簇xk`yJ+<`<1qA $ЊťATN)ZeH_qq8[P0-}^a5¹̺C-P]m(gS%[(?Q2ޫM`_R"݅d)R>0;O!wO)w> nA#~gִ3XNf=tM n&Xo|| hÏhA9I@rkQ>'s@1ӱt֢{]](0F+`IB! ^ZˍnIWZRs&K{_Shm[=^n > *4u #B4(c͚vw,Xeᄌrī#gYoRϿYb6S,/jsglXI-zO; JmOnADt)b@ei.a6uxj |g6_3 Dcv@S㠚1x'Ħx9O `|ʲWzPǽj[JfV2./OdȿJ0Q-Zt<{LW[c6ҢC U7G}_+vb:}pw?r<]-n<I-@IJd4$YI6Lz1⺅AS퍎,6ڀ@Txŋd#4ⲹK42?i>LLLU4K6GsQT+AD҃^sUKcg>CGsDQrV(&\C i)_tg`=\;x ݃Sӂ!^zYʓІRk営2ɶe' yZo[VJ;Sfe1,U#> N%CNZYC)Ft+pH߼w<$3IƻgPF[+HH?EV?,/ dM::Fg,uQՉLG֢WV5?S˃GΟ.{a*8i6j7ĴWU-x譚@WxG XgYέ<?]O@{*[(bsH|$ M*a&2:e]c^Ik[`u MktP50_ÊC;г!~8Ufs@ - o]+*dmAa %8qEh\αw 9Aݝ<02#š="e2̖&9, ZRiLl6bj;`]Rb͐G ).DK[{]ՙZd̕ShwE~a^Z!W>UJ\o(q)o5i_˪6OU r-Dk~QC$LE U{#pN-}Qg*#d{#m;#LgH Z#wRXsgˋ?y2*M,1 sk/%9bNCn5>ph_kYd39xZpm*JtWHE_2)R#9xKJҒanLHn{.f~|ȰSnr h(;6E(ѣQ*Ŀ5)'ilVs/ = )wU0UtO*?% QNTE` yʣHY%E$B;cj$je9@+_8;/ʹk IDzIqBɗ֤1ocB~dB `'[J4@oW0䗮ݴzyg '*& Rq$[ÒPoϽKL,EY=ԄaH_{5jsxDےθ)Xr;T[iÈXmg*_ZƲTx6! pĂXL.uCrV<:Њ^-v+ePvNIZq(45I6/Ƿ 4']?|^I NADZ`6ث yRrev yz9}Oh l(aM"u w&O0WCZl_wtdc;Dak1Ouh⇛CwfD?ZSҨL! h*xb 16y*k՜y̌D4M!j/7Gm2dO3 r{zdF̛?0aC6 T n~Mv e߰;l爽أy\>T=EM` ,_^T®,:bG2 mMAeXٚmQ[M[R)C٢>}}7ɜHn#8豽rA yi ?ЖA_'Y+_"@c$P& a8P,49A@D$!BA0}xֶJ{%oͤ{[kHx'oϷauɬSݖ/;5K>'WdbLg/v~D, z}>-c6-{Ԅf7~ċ5$ eye%'~#O5%v;#U>IBTnyiczQ滠p 0 a@X& A@$a meI)ubc\WpSwINgi%n<8>oz=~A:ssou_Wn $ZJ i]HE "%Z{H,{]G*jvoL]ҘI}ZT9[ԚrIAGG[ kғNqpatC髯kVWަFAu]oAMU|?[9U/mr7ifVhqH'7,65NW-- OYX'ݬQ<@\F _)Mvüi!U[)Iԝ/LkA8`+CH[KyCNA1oCUgVp(+]ZcV <',4&f?+.wDځptD.h%\\?cnQzݼןb6jk'tDmqrXQeG1JlISI`2ůL=$H/}>ǔI~^w%IrE/%=̏~l 9~]8 *6۵/0aݓו+cze >m]ԼQ1\ <6{J&|kٙ ڽק$:9,<6uuxCm"GApq8#Kfq x cDI]Fhh>(¿X D{"@KQ9rI'eޗ5tQ!4d' RJ^(K5bm ke4*w uɰZKx#@YN[ZOn̳Nya Hx,2vO/ߓ$OӒnQֻS{s^_`Z+PM>J~eH]M> s÷ӏ"#* S7}oZL;څ1,LŅѓC5/3=T~yzR=C;Ѩh&J}/@%/DvygTPe bǨ=N}|#&Sxxb8WX+tQQcjBzl e_+a@W?PXb@pN晴u7(=|1N辧J'όSzKܞ$NÔChxx0,M,&Pb~O$?ߑqVQ4qGu\TƑlTMR^YiI>YUV \?E;Cf_u 7lGx),dUX&Q.>M$xʁa#/XCWHhʔR&jBx3e(hyȴ:Ҝgz&[rCQK",Egde<+^{cpuɺH:퇜4aT(@=o eo'*Nhƾso"]h>kgcV_xfJ*Fp>hm"w 0h`Hu S7_}˙lcK6OPG5S)ɇ5ʚgt yްRNb\|ϩn(e!jHKAEh3)7G0c+ Y0ՆRmK8!et aM>jb1/_2u/֡ Ui6+/X=z8ֳ\(lkt59IKnL0"SΔ).6s44[:`Yi#sR}?ݫze1]l %4+>M'YOK |*^00H]s[;EY`gS"cR,%vi ԗMٟ͗r'$xH E]>;w" &+!|;1_ ooȜP[Dc!ӻB^)vzt:L`l彯شj|g'l6n ۀ-h$G+G]h{gpC^N@ V CM<+v(cM uwUIEs.a^Fy\R*96N9 =ӻ߾[<䭞|$vT: ( 5WVMWk4k,EYCzF@SG3bw$$;>('N;:ԓR^C7Rқ]x~6vhýKީV+H ZtI>/:p*t_/O0lS0A݀Up_gIj| cDGkV+jU"/)BAB`O<^eҥ4DI [WBѧ039w0!K>+Dq$ERVJ6p՜\m"Ir'ky lRA~^̛/p1ytD7\ "Q,]9:Z?/_p> 5Wj8HS^| Ňхm_ (98i~A<ިqW?>;y-LrH6D[, Xi_r-gn~? "uO䬟ҎGB JٶKz#/34[Os__b`Y&*{&GhR]To.8܉9c/s=\M?Aa&T0SZ_Sj^ nw&'gtmW?W mS~"I/mhc,$^Iߜ~~xWrEI(y;S=Bz>|Yd%lU HYM5b1 _9ion@*h{ $Gnj^s̻ylF0cE/N?6Q &a1W T)~5*w6u3NnN`CצW ds (6 ,>. &G|f/w $n9V]IL\#"3._4@_K1ui%hΩ|s(DIc+ɰ"mi 0A$4)AP BC@$ 7{{y$U^*UE\iwy>S$r?wSw7KΩ*3`ݢ~_v98.Vr=V~/$ӵuKx׹^ʻ 7ׅ4Ewa 3/#+'5ۖϙ+b7 b\Xzo~vK)Ӈ˘(p* p`,D@ ! Hf7IS[%ʺTM ~:k!᲍_Clnݶ{5a_>:0/ܵ$01ƹ皷^|y&?y{G#Ir_AcTZ:Q+k_EQ>crsJS-_`+[]N&ۼ@pRjB_hm$yMm,"?Mj?=Z1_O./2wM}+%ɵ$njwr+R+ ~sȽyۧĨh*W䟵6`M!e-׻0$N?,&z "fC3!-VNX{!ňڝ08 AI&Son81~+ lG!& MG9 Jќbb9FEQ=վPWYo!=Dy\7Aą0j,Cz/?f %u/޸(W0V&"Iίa*|HFYzPHãO8k[m1Yqb0q'TB:>X _UI=gBy+(9l?,9C]}Lqo# 9OO]1)wO~84$4z=Q%T9w}q(uჄV&J_i`fpg*8n~3m[]Ma{6GAeV~=?Qq"i<$>ͽߘJ(ݪ#_f~Gi켔 אElmzZټTsq',hsUpþBۈ b A05cf6N"kkLɉ;Śs0:HYz0 '^-Xask"/>i;i\@[eeECP/GCjj1ٟH2$C[(ny]U_g^I1<:?%^9t.SVK\#lOǷܽ] _~X>{焛ܼ 4*$~ +~^)(.838=@o1)3+mG49"6whlFMdFr& vF+Z7= i oغ|o&pb77^Lu!olW7t ["ψ$ ]Z =4P)Ζ;ۑat- wc тҚ[ 2} jHe ?,ғtD\8:\+i7X1^;P!D|t(P"Aл cCB-r֞3 #qJEB0ce6, SgO~GŮ'ubksQ֭LgqYV d=oY8=$j\GācYZd\$ZmZ.@xAVCi*AO:?ow`gS0&l_znX@ceR# %4# eKxA!}Lh|JP b_r."Q9.ڳ]˳NWW;F"//<؏.FR>,^ Sq(=5x0&%ǜo@x ֜){8=3- [$0^AANR ,!d? *ePRVd`\H $۝nZkcTB->f #]OFד"|R5{5( 8pe~.Mrۥv#e;Ǽ@J^Eo苆hc}n71Yׅd{yy rЕNW06y,5*?v':NI8D jBiXB//3K;C ~黷C/A zB ;lT"IJzʲw(gn s[a*aL'C.T7zJBIH֟6 !M5^s Y33*Tĸ4zvFKYnM5U69Sղr2lZUp1vz"2ÿ풀a q5 W0 7]wNX_c 03鷛>>d-*DBFnޏ#nװ䫶xu+/V-M _vPwFl@2+]ه[(`eU\E:3^㺂= 6?Dw32Y=h"lkpEeWID t4QpZg[Y-,X. )MhA.ѵҸb{ѪcUGJ̫u|x?!z uF'xBX} -fQQ߸v;AA4#4d:A,/;snDd;R۷DBrY%s2Fܧͽ私J3$pޜ#`l5+ &)2AJ8j[M )pzD,MGrvR P% 0)'aX~DUHu-\$^¨=Ё;\c _cFsXX]kt |/-l=~~dL[O!6HR/][]hkNY73h3%2zF(0Rm̺k֝~胖t fՒ0rɡMHNB觇[nw`K +9^sHR.Wrqr!*mI.6gˆʙiN#̑HCs^ aϲLo1M=ki 1ەÇMFpvm\*t܁^JlF\b^1>B8fTi^H{DZcW1}cVN$(m1IPɠ:RQyZ$f7K䒞QJc'Z!ޝtr}-(wvax@o[Hٟ]LFr "]J}GBp׶V[h!ş(PMkcj F~vG~& ﹺn?DT'X7>{`xa0Pa2"͢+)Vy =ԓ22TDxYs R.}EO\SY~B9υ0d x"M1U[|2=(Hj XWvsЉen9tqͦB2ΈQ!ys3'(\:_J+޳ILMmج @%HtwEZS$[Pd|#x'dE.gSc=rrRFXNXbCcnnꢼ;- 0e4hY*?B3 [s$] O-!ߍ"ꇛβ4}8E0Q~Y!ˆ#F59XKB9 AX1+H$\ɴU0Jlq<0wh7 OڞrU@%aFFFl:$t=&cbEsCmfh*GD/~Ⱥ- e{&~#xYSGy<SM][wV\M.6\Ⲕ/;;@hTc{3Q7igRe= e. D0&}^WvӑmZ C.$ 1FZB߈^|U1nؒx*M X E-_H3kWnt ќ˾)hU64/MPsuOYiX/IK{P-'e y6 ȓ(Y\_א?\o 6mL"v߁cBgbR!Sw_y{v(.sEE`z^)[(0yUoD?BHHCQUf{LVoc <ڐ(o$ Ee)t=ݭ)i\%o -ZS[`4uEOR+av~$^*cy"mlJe2S$im zPC(X?ޒ t՚> &1̀mW)r3k*0ە.Ct [>n ?e 0@bG=M@]ng1GxHp\-;iKq r±>-P|$|қ/i@F~5圂$ wϮ#Cd/uv = +rTs+uʮA{-{k碓a ɥo@X/vA`(;Cu 4- yRPlaqDD0ЧLr8&UÝs9W ^@FA=3bL_9_PTY y=X՝u eMx?.HVe7LzׄJ i_#꬀>hhizeC.|&1-Sj&UYp'G8*WL?799meaE{^j91$)(`P9Kg йy!r ~o4z7>58h DZH b䣳VmWc;Ҷ[FD⟌V֧m~GXSY_'VNLwl_$'[.r`e aTB#k.!`:/+s<HƵp /:kށ$YoB86QiL/p?B,13߉QpȐcDiXDgE +;/ð6P&b X(F!!D$1 a~yɪRWQjn~l϶OO,嫭 .ա>ob%>c{?MjA4;x:͹xZ |vtqGoNO_G<7nbP'~{YFYJ|8I].d(CǺ1x@p^/jB ?H:OC P~#Q>(;u}Q e[]ebubfZeS>e=`^f77>L2]̦Zf>ATzvUm2v[Š*EDV1ۻ6r))gk!B :CoiϸJ'v/$ns{֫Sfܮ 氱.9Y< j*V"31 owm7}#B.N?>nQ^i-Ct G2泬JEdL19*©LQtXy W` LA*:pʲfd_,}3ѥgWc,x_! 2&M[L>[ K"@5Tڄ`b(WE˼^}R|bZJPR&ri15!B8E[iw& {@f]j:SI0B=ÈǘI]?ʸח[|:m"u}m6S_s?>mӽ/sQar+/C]5XwqJP>@_}g .O?r#ZL00BTB":MF1/fS%%#폛.nc|%ӝ]ݥNap;KI8(0FZ "Ho2/.^*:٪lYRp>egz)ۅ=uySSoWU,߾k/+=gϟ^n/?n_CA]rp]$Z{>Ӱv~!wq3Cs\#;=;*S?9s`:4 R2s 쁗p3A2I&Sh=l#jEbԙ`H#gzP6GG23UPՔx /j%,$f~u(-! ܒ隆3\*l\)>u+CJ|1&Sr)z\A-Vs7 Qlg19gA"}{)TT@ KMb-!3W0wmo( SI|smvj&LIz/fwR*Ih=W߃0G-<db(RYL)O{$FC\ .Cwu~L"-]޸59~ڼQCHWMgvf+t"fj4Jo1ҶbYW3feٴMYN<JL.L V X %yVGg3C|OF3YP(T)qW.89xRZiT\f 鄝٬cA s9nȈ{Js.M|DQ-:83D+7 bKH3iI F qg琾RX!vq]a҅`nX5 gg1hg#Cd3NTI5_)l$Y-+4 8-v;{Ӹ^j+)pEAl=3:{cɺ@ 1FMrʆ8(~ih6`#DSJ3j*8tcӒ|E5c8(5(]chaw/=7yW/$^prwTpvMI<)ߤB/ {.k޽n)z"J\7(H s Θ(WtEC\/FPU]:MH+rV+`os> 1 0v5f6"3gW 4f{ge4G@Z)q+ }TUzLU2.Ҭ f$f4Ag0%ɠeC ι#-"YfI>D ]_n3^%uFB6VVn\nM.Dj%+ [`rұ]obCVCƦH}}"6.;\]AlM\~$X^@$׋_a޺>z0Th ʉ5 -'$Oqp14*|)Ne E.cVp( @|aL?`w[MXD58ynR<ƀ<_)B!U#€ ] Ğ. JGG&*O/~(,pT5Tr֥H)m"a&uD!;){3b%@ F;:'ĿLb8=8g: JLJ4]B?t:IwIji{-eHY.[?;|z@W꡼vjmϫn⫄0e]%N>="z1)4I$(;g <}ZdA%+]E j`-!=:j\GZ$oavUD|3fY'9- Ee4o|\;fJFe5C`&}bф \۽ 2*²= KĿigm-f]9M=ŕgРk~ iv>O5};ڬGnnyNH U1Wb֜4~eM->Cے vFj2/<+fw43e!9E Λ Ji#!ȍpJ`JF*A4l]4lu{gD$&Lcm{$s&5!o\wG$'hY'P7=VcAZr=5y#htmE%v 2:zyrƚ!b,{KWb{Ru,ޱAH @HlEL(M7rmIkok/ &޼LpųDj.30 !)ce#c^#ByI [@8Of<:15㻝(e[MZ, iDIV%jO z+<斄Rp#\ǘۣOStUb֩\8_R38V}gk<C̼=30k(e^E`M4Ass9mNs}Pm4JׂDm/8Wg;{X~1. $Sʊ;]劸)/!$T8,t) y49ZRyZLkr=UIaF UD4,w6#BcL/M|}X<|kK@`,>eDP]QF $rk՜3JCWڿz{mlǢŲSF&I'v¼'PzIpVV( ,~R%,h^*,rotg9(|>JOarU?cU!GyI "PF$ `h!"^. doUTg׆ۭ÷{ru~?'26Zgײn^8C\ >Zkiu|4(O Qv,lߴp{3o|$8_"6̀y4O La*jZ '|CxxxDjIJ_ʤh|Uav/Bdٗ{pQjBJ!yU5 6U5zS1 qB oDb'xҿI`n$xTP%r`Ny=C._9? \#jT+V|N.e>Zg̰mj36W"MAun=uTɢZ8̩&CY6iT1{HwwǙ҆B9c|分폝I2J' b[|]*(DR<w$ jTwo,jSB#,_iА)3#Fv7Gc&susd"WLقVTa>_\ {+Jҭt#^6Y:#&xeӮ $KY!,WA٣P+.>Fw6*6C}"dnйPHٶ2Z/{pVV;Z3 sQVv&Q$8*0& aXh6 # &! ^ߥ_w$I-)y2k4]W?OÇ}ַ_Z$RD@ivRx~|+_oue1xݳ=j$ģ߳>%Փg'LJ9̜*µ'?oj+׼V|_ڼޫ}Mk [[fߋ*ņto>#{@*0F$aHA0D$! Byzo.ꦗ+.U3x>FO'Gmltv٫{3)ϛs]x!&KEYV5ʈq<'>#Ǘ~>|kzy*9'XV_#/F(0&_ h藠':`g';JH[%2|7ge>tv<]0KH3* ATI&S<lghEQm>㇬ zȞ qG$%uOֶr!89$ŠY2"֥>?C$!1ŨdK,OMq=9cK+*/ضc硁Tu$v@ [%^-G#1RLx甇2,!w$ $g,.]3D~'?L^ƃ!yNE?[xwx! o2P%('1mGCDϑps.Q|"wv*|8YN.H =jd7i+4NGGHlIʐ:z!}SDXuLK԰^glEQZ,J/$:RG a"3 Zu-VʤOu =i9ތد06Z2OsA)`n䠵tQ{ש"6eEԻpK7#_wu\l>D#{)&bs7T%ߖb:11,*e*a .kJg̺z7μ.ZOҕY\QC"hVv=23`(ƠQBa8Cvi0"e5r&p-9(kL:7B~P Թ/|(Zv ,R? M nx 5ư{O3>'*DSOg2dǧ鄤+ U,:@'Cx/*u^Hd, wW](A#q#B>dO=]cڦ nͯ/LX_,7Y,QǶ<0dXlk@ţ}:E#o9SO;MbUFM1qcEXo#v͇rdvFvOz1{tnak7fmn9fO"P&;~E _""qiM[Xӕ!UkhzMs'?U<+$СaD1?vCRŰ=1FY;@czz{)Aq5PF!9AVfft}4qWeӣ loHsoB2JaHĬٗIp4' H,#g]U#ln P B<:XRan`3pEOaKF\[IZWn5OI085(|.Bs)[[Vg٨6\':)idzVi%+FȽCG(VxpmXG(xtX6^UD¬?Pgv + "w Nk {Rtj8uiB=8>&eVi=~"JX_%\\{4vFLg+\jnYJ}Ŀ5J(lq7Gj/›zEЁ/x8EH-ȾVA"kޯ-Fx,ߤGۣyhGPk$\~H*y Hs5-#4p4-iY?TÂ- l#g9l0rŸDK$ckƟӣqqcG+ D=O} )fS{E_ĖDt|p]J(PIy ՗ܑnNrs~qv (G([eP\Ǵ㻷N| 7WnW lj}[Ҏ:tu+QF/^$RڒELAtAA[hq`U]qi3xƫhyv_MU{ 7 u'SF@Xi;Z=zn/ N=wK wf mX5L^x3w9H>BxPT!ZLfjSx7ȫh,vWzVFbNO=_OF 姉੷dL-5:Hx6w6AIœL4[ߍ嘕.O1j%.lQְ Z-1[B@;ƪ'>0C@΄@ɾb2>Nm!߄"UB܂YMtL̾ɎD:5%m飡S^ԸDzlKXh(=]c-{Ԝ`[26;̲iYuCfzҨdn2cgN ө,#?s;szC8gn TqA\z4. إv0Iʿ4 [tGX!I㷸APPJu Z.'iԕWC(5`LZ]$&,#A0Pd FPH"BPRD5w܌TWChYs0|4wi\LkѺ%Ÿۺj}Z78ݿn.Z| ~t Q|?71ktpӷ3 XbB~MR9}<b=_OiJ̌zQ˕U$^}. 1V70?ʀh7?gn HpsjGT`}/79E7cwS3HT~(`Ft4UzR0!-9nA&0u!\x~Zt@NJU xÇ~|`>Tv;WLVߔPue^ A9"Ϋ':Tl8UZ$(~c}Ѵ9t;lf a/#4Z~/1-h d7Fm)x~5\l;t` $܈{uJ[ϳm-Ͱ@#‰|Lh>2nԊXk{"ԯ;0يLO, Ǥ&lӾgsq턒(“&PA K ဓ0lId :ĝ'bkr|#~^ exg#G%[bCiS PV#:K2^RMĝgIMq n;#RoSaQYjP. E4:~xM4e\=;A2W$0FZ a ( H& AY/\]'ђ*ԙ~4Og7ik>5Í|)w M|i7⼧6b#<yДuݿ>it7sUGwg4[|}~2!v~w~`XFi}F~؈aiqЭ/dYL^ އp"0F: IF Bb!_j%Vk%Y+x٭fz$|}#߫߯%Z|@6?JI蓃/'ٿP_S>_>cWl>_ }{_?]xԲG.ϏϢ~{cb'-Xu+FRS-ZRqI])ܲ?11CG1@|AvKCsA8a 0EO7:T! u+F.U1*y{S es0*5Gmk wR׍*wV=^qOxN-)t6ǵ FlDѺ(K[IȚ+( 2j[c<31 mC^f< X8L2hk/41 a!on&խCya(.itVwc**{UJ ]w'|͢oW L^!ٜ=τ)dsQ.Y[FaP+S x7uA3c2orΐ 04Md^,0#zfХ|a0kS$3׺PO$9߉m!횄1Mfqѡ}S\殇)%aL&T{YER5ƵYic7ϛmf͐bZӍ;x2 %N0 %dnx$pbpi7؜;?U<~6f I>nkSD"s̊xDŽZl;C[K(|,~l~_encpΩ #Oa>;K)GnKmuTY]&H&Rc#cΎמ˴ dasPxt_qU? N|*d$80.`xl$c!DTuN#oKyQ{1wxgGjn*)!#3<T'vtO }\hl%jھSC\g$UehC\SvȔ_  `yU24<~W8]ēeP(mʕ.(lj]Vi=ug7#HW Pч~V; +_e8އS/d\ U__Fa&W]~ Dnqt}# BL@6+z5mݮrx>ǝGΣA%*zX% 2 Hk<[+Dnp&PˆW9}?7ŦZVׄ1W@N+TW<mcT0+ 3S/Bvi667R S[`A?3 iO1= Wzuueva6/fѴ[E}6G(sn|RwB\|5%fyYJ',ĩ"7U@P3w}/i 8 ^w]Sӎ # hcBg< Gm+E!67be?\bdGHI_r3!KŎe=o~Re-z vL&-˟Ҋ m\h^M, Z߾${ zXy8&I@Ei):Td=*#lxwVC1(/n /Av3~UǕKo~LM 1.rECCхH Z1tN޷pLˍksysRj!DgeXAYy<ʼnZT7-0%I] d#^w(2x)1.v2쾣^iMz lh$,50:y`8Fxs%5ag˭;p#FR\΢ẕ.{ZRgH {,zd¤V5L$!CFhI{ckdkʃdOζz/üH@URO)@Q޴2Sf'=A햌icVPlkϷ̯ x]kH!]MDGyY8P>f}{fgv}߾o.)<}"I{@\_ b\E[EĹa9\hrO{ߦ~#߁aY&J?Qlxul r_ѵ+cPq~K+l>Su=qd7 rUy-cZjcar h ('+ %;s,SZC<( kYnö?O#q{\IհЁ ]HSj`(~93olRDC=V{ v>F[d 5RYsDvHO!R:`j1e8İ6<-7kz_XzC IEEaT κ'*KBbn ,yxz:ΏW>ª hSY@kt ٵrF%-eH5<_dB8T7U% b0Ӯ{OL8jiaDX4ۑh/CXaڙճ";>j9c, "y/fS|lh\F 4ͱu[~ҝP}'.12P>q_ A!w8,Un7z+ (v6 R]1bԨ4śM ]KvaR`?FC*2 GS} ⷄ\~ ~Zu1&=|"4 0dڃn)T`X'٠W\=g,q#쇛/Fj"usG8( h17|}rƬ?PAoi]+ |1'A eEi6}\ћĊ2$}u9[6 MoBWc·S$Iv,-8!d\&ek6 пL06%p}v W .|D*ἇzp +IA+ߛhɀ2._*,ЁvoU0Uhǟg}#\7=fz -,B]=hg }F9H$wߚ}ב׳y*N E2񴠪BaP.W(mtk8aрCf,3{CJ߷Bڄ؆e;)X61 .(>J,z>;M 1T0pMR%) v0rn!}n8SMq6Ƈpm\qm}uI6`rh,hƺWa+\-ю;,#~([\Z6jUdAu[jcWO)V[k?!q5P03oE_0;3?Hɲ0GH;U_wo E 5_u\PRB ْm0r0Ά^6'#maAR:\Eѳ Ȉ2ԠpVm2F.`ZEbvcDr<0s Π4ԅ t E'5]u~7.궾Bu]1(;r,ρ>Qh!ֿA.0F T(2 !(H( Oo5R*Jޥ\˨%Mfu5[+j ۬[;O߆}齣{{6ܥnK4!*} 2>뀝 Je[]n9ě__wCo/ٹ:@cR&kf@jʋsnQ:E* 2͑0Q[K;^)}+/"c_ir-ŮS2 mDN8C^]߲W1&.l+Q+Bw 4 n*VMﳀq:A[ɨ3N|09na>ĝkcv)k2/aEȖ.f34g|Ig҆p{lG4O%CQ+ PĉhAVԪRN]R~f}->>+UCلw˹_EwpRV/6IS3ނs77H0")k`U{c^Hcin8ZWJ@y oA:eKגᅛb<n:yz6qamT'>.Q dH%1bXDvHtk/NߥLF$6vfY@I*ǭHf2F) ,y > 2ǦsVgGŖ{Z4nB^#!j8' H,=,Rwq.DZzf4~@./sz#C1TF1PDmVXKp'3;JZ<-,g=.1"܁Qfw/MՆ"}˃ fJ+\ !J̈" 0d?P\ZN#߻]d]Q]/r#'[L~BI=!@şqR-Rϧ+͞oص_ʑ[P],Ep8VZsa,9r#KQi ;z}bKwNJsKC#FG:yS b^*]b{*y2=!6D_reMG[Q!]}H3Fi>>(:=(pJkA_#*aj؂CN̓Qհ)1*J|nmqMB"L^-dJyyeiSIˋ3IJ(f).e4|p`^#a>B<v{ wݮCk ,UzffEoBn8Jy e'Huy?ĥ6]relD G+]6&/\xT7{i_BBf9kAW4R܎22 @T,VJl@NΒWfG9VqLd(he Ѵy>.|; !]׳SӈǪ%$k1✆^ W4y"&@[Nle(Fu?_^B42 ra˜6pa(2\"~K߈p.LXIe[ 5i6y `:EYWY-f}AՄᶺe~兌:K*?Bߔ|#Qn]\e֡[Pwsr=~RQT{;W=\Ո_8ز"]!0>cyL*LMnKn`$D<0uLbSƍժ2=\FIlz]/I61`O߂HdGd+P3bQ3#cr7U O{2lֶgjԿ%}J M%&n]̨lA(7k2Y"eALq:~ rŵO#3icMܯ+f|fòU;SnjqDڧWhE̝ Wo( #n-/y&|h[K*@XߐL4hp wPq*aqtiR}6{_;H;`oB|dSsؼD'6MC5VimԮ=3ߥ+͓=ZnmY78}?_Ci2#@WU?Ң:CT/r%'O-WR6*s#IvͯfgѦDV$pW@JtD\f}~Ŝh*5kFBc1/3Zeϳp]4N.Gocgc~1 '_U_D)fgZ\51u!PVx+VHs9i̢Ŧ(}SV{gҾ.m0K^MW%Ե%U-[ qoL,n%1 Ot0'j?AHE߰'CCn3ǜv)%ī[%F#VѢyśDYi >8hv2;Kyߢ!óx*^ǪX ߵR\a 9@[xa tSԵ:2n}A&t-Q, !1JngX[Hк*/>C*a*$J;,sjf.[ λGj}#)jдf&B9>j XSӒ7}7 7_[|;EQvW,[ؤedA% l4G<x}4"j~/pZk*϶}([B݂C Eޗ|zE3wx L|Mi]%d௒vڒS/־WgwQ~2\wU2HPA-_{OT)?aӛ2h,:YݬGz%T5Ȅ|zz{RK|ipB_pn_|d&1mZjG;tI9Β7`2I";BF{lZR@WjUAJ+7Rۋ6Lx(oatöp\k #.U$^ơV U|@2,EB`q, Wyg$۩/HL+y΀zl>[oWYG5M]8q6y3-H17U?/M%`rRfᚃwY?Kngv o7xEjCA/'ݔ[\F.GB ͆Ɩ>\]!8В2y,< $:^B|>軓ڒ$#wbvvb& e*o #þh,.?dV@Fn3e֪PU x8HDN?CƿF+hxϓPLI] b7x"{洣D,wn֣y\1_2au;ψ- Lna[N(0F a!(5BD@F BA1b{[Q.ʖB>+f5wq6_ J~Ls/3¿߇ݽ9%o' ͯ@l<?&=f8֌Yfzdz}tLp5SE3` @d^melz@=W/> =AI&SL;;z{9:lEqMt0[Zߥ9ƫ F:@f[AB]ZP!ږdyAv#qsj>*=%S;%en%H%(G+[7c9Ź!J`0ie?k&([[1m$̤deDL0c>875(f"lpp )Rͮ/Ek/,E7}W*j?)d8>,O_)7Fjy#ogW;?Q^)TޅoXrHQ;l^zo#'ع!^H/ѹcT!}VR3M{;e e|"X7L+ ,Cm2~Pnr~ZrXbOFs (kH2#?]bsd*=Ee].GvX*f^ }ٍ;@^;J -3 gUL0 )9X,SgJB'AEKѡW'Mt}’e,) e h>77V*r:)x6HTxE}MIR53x .q0(̾E=m1uʱZ _J`AD\(Śr#yl%XAv|0E;y=e`wGd/#*^9‹Қ M`R_lN@֔ aJpo%&,=̅.%څ_vj` mM 3ס>qKA Yxl9L+2_͊;d\g/9tȼ!\: YNT|ylW,r57 1,ʁho9W.1G#%R! @NE>$8/d th\hRQb4F zf[[b/"9m9s3֋6Kg"' rc( 9t4?Ͱ>Ѧ"n"]ڝl=+wBc(Wq?3M\0ڮ"-Y};E]}g6Ovh$|"%|Þ:Z4`\İ|@mĺR(-ru[Z]9V I(PNthF=Sa0\׭#}P.7Da*baQ P0!AзEW>ս{N &|8*? {H;._iX9<ԏG 2,͊zs]EMՊC"31^BԻR9-J%}IlB6oR PgD⳿1n^CA#|hVQ P7, sڗN@ z_d V#A3O6jW%U)5}TmҴh:ٿݺ*TI7c 5-`G"E*PF }#'I @O=CZ3Ώ*ŀk% -{( )ժv7NɌ@0 1iM+hQ;hwh4))5,0 Z=7IK}նrA7hpsMVlSfьXvZqeRmD-4 u%'#^}usim;rDڙ^5Zҙo@'V'Od G1M҅K*((:6>'z3u< Eɕa\~3tx垨 re=I_8ŚY Ol./}^ȭ8AY(C` ~YTHg0a?&7[&.=,r<44-w`#iD 29Ա[Hs`,y9dB0ONq 6C9I4FOHT)X0p}*Pɦq>ˆ ~e3WK_J1=&' wJ>`Ϡ:HB`Un*>D%hEeo`Ig sB)v:{6S4?gAWt?ʔ]͈<͖[B ,UiS^`KsvYITh@xh/pT[ƨonqyp x Z4HqŢYQ?bzʲed !wըJ}Μ<]qчAR;4V6RO Ƨ!2Qo^T\6{s8 1k,06 a (5 B$" L/j%8yu.o^f5[;|Xן3Ҟa'Ot6x Hk\v]-zsn哠&3\֗Nܭ1}JKfbBD1->KJ(&A%2s1EiprjBmߨb0ٽ8ٞSsn8x:*kh|p_DGʦ+qb\=+:TL@iW%/8*L@B]i?D;o/1 *1JJ0,wV'%Ps.W*zĺM8(Q9Q/J,cJ5OیgVN'=.MnA06e@\(T\Y)ËV*?Ez(KmbQ6 .:[?Ot'02@SѼ]JlyO}oNI]:,RpwMJkǤ:]Nb"J5L:: eDf1ssP~ G퀐Ĭ^Q܂}C=>r%# (5a4J=~܏p6_:ST-6H# RI }4%[|7'J Ȏ%jt> \tճzzM[>ba@=}^f2fXc"eK!UCLlkBfpKa8hudQ"wܶ1#64&! L$! Z_%J΢k|*F矎n`_.Vv||ôgZb=#@~>Vu߮Mw@6"OcCY-NKxag\~{!59ئ:# S5a!DX& ]2qۦv,AI&Sƽf *]!Ձ%gWJm.V @.q b`qե@>gH^nzg R|b{.=]MK'uyNƖP|X z`{5Zl@][ &s<<5,8>2("B }5lNTbR!oЪکg#Q jcCPkUge=&To{iE ݶdsK Ulˑ v5<+簧hdΓ~`*D bj^|I}BnB<*w0"ge8F/20 @!1K}ozr7=U-Ex)l^UD~F6$Y-(C axo=zQX*K~l"lwjlH}/,0\J#GZPM{kA$ v;['SYA<˵ }Lb0>'a3`̯~8rnqЩF­*J;(6U~Ft' RZ T6x#Eٹ5&ZvUEyf),iVe~>,IhTV!CB_k2Ē^/tefb<Ċu4v},2zmלP!Vu-RF¶%:-qfe^Ћy\uNdP:%:yڙc>n/}`;]'_-t=>mBX0 a͕ #Ŕ}zOqɹQ 4v.>~rC x*'*ϛaxq7VE묒OL7*XYdRlRㆴkʑhW,%\a(,,;}ju!2ZuWD tBke_Gi:ejU zS#@pwSږ&^eIQiR[a[VcsAd|D[Wnz 1JHeH=v!+ͮ큆Cb:)x~Y@ tƈV8lL&o oV́7+MGu<o3* Ӓ#V;Yx! K@ 7,R8Z ,UH,Դ C$՜^J -x祅E~|u0@ѧ}Da \s-UF ҳ+ Ϟ4u*@EDO01% 3=O(>U~tu):iLU jgwJILDOQoN1Of\+2>e/fM$Rrܦ3!`c/i幸)M6p#AyD.iRX؆ I%̮Ww9w xZFr5\ϕl͑ՌVՇSL+)f=Z1 qK ITZ-Oށk:\q~9+pi&ϾTfko->}$ frc,yYT=,:~TJx:yԫ%zcL #$dyt; CՎ;&‹ $E B3mLń gQNʑV !eEߦ0Izg{~F!-5i(ۼjO^ ڐO@DB`7)H$CkHt^}2Ш& ݆6,s%tN J>/k=KU\K† )" p&EiunN_N g, Fڀ)7w9E"I<L4F^nw7\-Y2M#6.P%F1Ĺk$Hq"^OL&X.QH=_a5*^Bh9t" M(Ղ@:+ۮ@w$vr0)|0}{ODRvRL4M8pde((tp^ی ՕRSiaA\ =F'xaRqlI+2!z<UXj%J]JhE)ZWH[D@vZ~m>0vހ,.pAhŷ%R1}34%1eGYB|SHS%/}>JB,P>Z^q/ Dpa^U%1F5Qۖu)bf9[ԯs?o 5=*Z=>4y?=CwyS2[RƄ .BȨPRq?)ljZM[Z(/ `p<{muM']F\h /4ZoӺ+^\n!հHpE\̺JlDF.ijo ԳHjbL]19"=20*6Z6wߓW)(QQ,_nDb3TD$S}F)sGӠjU/ k44 CP$C ,Wz[Wy.ʶs)|JjEV?Kc.F_s6嚣`Ŋ7Կ Ժ7;>;==#{a|u.^q`jB~y ՀLAw_|k)q+xWZ1+:,iIluh=v/}5/T|#rZj߰GY&RyX PSFLJufz*4UYOQfm\'qe2݋bt;VֿM7t׆,58Q~/$2nz$ϙ5d0_2s. YoKUb%B2eF ? ]zQIx r>IdyvM\^Q`[G2 w&(T#2 }恒dlUW+=¡Ax ~_sH}xTE:]:rYfYLRoi$#Prv+lIqxv*"I\ʖzT,@>P  f8jxRh=L 5y`w! vqճћ_̍u^ ySn!ܻ mg—i^X֨ YSzWx)uNuP'^96jIu"B,.?̘UE6&ێRGߟ5'P}j A;*_Q"AQ0*dՄ$>X},5W~˙nfnfK0 8sm T*ϝ ѱvL㒩G:+]p BcrC:7;Ԟa[X(#O}?طSjjq5 +Iz=PZqrpU 4yAloiC޲-b;'n/KyN C Yjp_;V7h *FL/ `[=Y8>{ʰP&hTI^AITcgXC(~#R}3` IF/G>ftb f:_ Ź`vohC^fPˍ]"ҮIU4:J#!|A%A|w"pѽ)-H.R c 2ƹs|J L2w2V@B8} ِ̫Ƴ6KNyBOj5ħFh3w5[x4t8j,Vwjޒ7LȷSCK+ #{" `)+D 5jUv)r*D:ʤ~S~|t ݙly:9e4DmsK")^; !8!~ypDŽ R<)chcVA0hz0Mq'[v3yzLikDh@5d:fɦ6KMjm!)y ׈޻$@r\`ķi kԇX?9$)4jGsۗKFdEk1NW-It@78ɯiE_:HW'|G52зǦ3BpA" ʃI o{;(Cn~E>H}##(Ex9zDp64pm=m/׬ 39z[B"?+,s4Bs jr )?sI(ipo{5ecE@1Ȍ3Dƥ%&l _SqBߑ:鮾a׹d8a{oyr<ѿiۘ&^xq!< 4DaTά.]dpx͓T`hg(Ec f70+]zy+Fm@Cڤb1C*hoAk@1yC 8Izxf+ڪE;$t Gx[!ws$3I$7 |tMI>n*/+v@'6f3:Uڇi H,0q95eLjH$H_/~W%fbq,:+\7I}0¤AP$#X̣3c|E2X&Z`u]m،鸌gڇKJL Wbs?wK뺑g i606H: #`ˊ4?}(Hg I%J}uS9tO'G'Ot|_ qxGo`/˃ϢvN g- |pM8;2p]Ҩ/szו`GFm{z@5^)yXv4ҝ;qDC[ Yǰ z--;^H-M,}i.3-Fz԰ޫ#&U#~=r*6-/E4˕q]#`r_q`y]ȡ`ΫxEaKďbӪs >"鮐,[R+!"4Η=;QǞ3;6n܀Ɛ~⊚<}%B((p&,b,!5A03{!%ZU2BnV^}@_~Z=%rP_w'0?n"d)}Z{  yDl!g cIAŭ~Pd:z<1^>?$]}kړ ?1hNhI5}wy/ 2O{ro6oc܏{%?З}MLyBfy͊wp&lXPPL !HL  ^&]^J&ޮXqJˊ ^Ӯի_fif?sHm\mdg@CN1xgv;>3 IW_GgOyܚ?%fzu[Ǡk#*iC0s|\-R$)sCr喉02oWK Ͽ3;jB_-_¬*ֈ러*olZ-)]\MRok d'Dz+bDȺA90)g *F]`4E!a(#k,C9VɽakKɞ߄.Pq?D@XGA  1Y1AQ =FS%KAX;ЮtX}sɋk:O?B̞76q#?avtպ *j B1~-n[c 10QAUIpBiqn|__,Bc4GlH$|Ѷepi HC7_8tA~a!_JB|@6-T ґ:kaC HRyjwхkOwaLܖJVp܊wG(C6SvpŻq%,N&j C9!|H!vC27#;<`~r9;$%j.>:  +R 3렠JٴFI[ՄEQQ髀ֽ8f&,"`X(& "Ha!(^d2!MH*e.{XYvukhѢϼ.#}f /yˏyO lZ^Φz]o KsѺH1uU4̏#?Qz0>}0TB/ io\9~ziޞ9s AI&S-" Tu-[) wLD:=∞!R w7(6hp{/鄜vLxajt2*|*z]#BXΔ4 j/':CgAzݢU_M+S[Cίhz' x~>Xgcl/ FYQ?+)>e3>rb̬)eQd:0`o`.Dfx+ߋ>44V=5%B&Łp~krXK܀#0wohC}TQ>>(Jȟd ԟs`M9c22ox GH7"{V'!}j$da&mf2ՒxWlF<^5{mmNCX+pVa WÌyglXN.dۯ-\~HrK#^$Z V~-V\rхXz0z1)Ym4+/b3r-ΟtIOx3t&=븹A4!k*JKL}j᣽Btפ0];d3#ώVegKB]e F׉)6ǎ HYIX+A= RpZ]̯3P#n |;2؍{P#W=MKβŷ& ږz&N }]N, /xP+sJPlBPSІ%גW_»~ E fǨ T`72oM_'&X!X0hjnс1@P0`)=Z8,$k@O Tҿu5;+3d|8b$`Ґl*Xw 6-7?Lmԇjh`% vtX'/*T8&x?H%,T*\ƦN/%-݁`>UqݜEĪ Z|6Ĥդˏ|p5 r2Ϙ- g4\5( F~@_iE=Hv'@ŸGu j;oZ;/'&L J.'9E FQȐ+nvQOA%]Eۃv*!C5X ̽?|9bfiӢP &'j"Lwߢ¯V7P݉F3CTY-GѾyΌkC6D-]\k[۽ؕD@1tMGOXPuNry㫆s |x"\wp/3dg8ѰPny|oMq# A8/ueyt+F8!EiN.i|Xn1('IejH-8py \^."f,b|TyrԷō٣KK !eCQc~EbJ7TyR"/믺&lqX;ļ_,axThscd[ә6k}*"G[YaqUҬGlLTO7MdGl9t4V'_&^]Fi5Jw0/9.i,D`6qUS=5څ+u9ZC)%Ȧ/7w>@AqS]Ua-i] Y=%E-}A[ k^!)0 $ A4O)>"D>/(34} \ { :ˆSP1JLW˔gɨ}3b1w |KԈ1$krflV6z&_ o저̮- .]PVF'upN' dj⁲\y3}7RN㊏*)_ i![F:D={/aJFR%$ %Ǣ)8*۟ hLY`ϛwZQE.]B.!00-&RLw7(qr'Og%&\*8r"譥^v"W7]ã쒥ZK+gMNqՍ13-xpxvl}u;wi,g[~U3m|RzӤP޸^6i>6VJXr}%@y^ȧz'C2)1m(CNB]{qSqB1!9SL04{$).0UX+jTx3#~J?,JKDNQShkK3-YxО05y]/`$0& P,!G@H""azIR%j&Dn^T=L/~Q {5>{q/NW~ܖ ޿άt? :$Hc۽c4 O8RbD$ dr!u#YѦ>gK0p9R}}@8?jBp&i@ knOu?E{1^P$$IB@A )RfxȒwZXQ`۽6bqnѤUpiT-LA/"N=HTyީ+?tO㥘,V}\"Dh ^8ɝ' [\@wBK4x1vkx 5'q[ȯTUoՆ|V24v &VB -!qt4t-f#THD934͡M? V<{& P%i F]-:xy0)Њ*,ժ a[EG_pD-$s>RMUGqR†R.xb3<gqUdIl2V*"i4/ގN&+'":6pcG޹ adS-9=M nm ʘ o/jVZ:=slACAq ৙ʐڮ1W!Z|¿IB.yc@ TGR.x̮+͐fO-[bcFZ^Ce9 EXX[Gz]T׺cƮ8(P}b?j0y Ng|0CĆX %#bWrsI*iF*Q, Px# lyb59w f4<#rKpܕ1hCԡgrIଊM;;A=S󶫁ČcT %髹OԒw}Gl:JU 0VZJsVj<..$-IyTɷɘZR\IQѣvk_:&zY3uIȃor9y(NJGG6]߅FSQr=6 "毄m6=^*?F6D m{ҶU 2w hh'eb/9pߟ̹`(M):Q[릁h\*"ʳԛoY4+=V؝휫>dislyVc嬑ٵpshڄk)-= m?s쎢IˀR`?]k溟퐸ds4]ޅ< aH(%#vr~ !\ِ1 7w1Bm49*Gh͟uD5lu5&Ų`5-0dnEFJU&ălע{'Ϸ5慩1W;:kϞYQ((\֟CĕY$MN,jt02U ɘP-Pl\ES,HqG:#cQwJ/C^#:]o1h cK*-j݌<|h}= B-M|y"VuFJ+ӊ/_ǍUkJƜմus= ڮX">C͂γ{קg:1moSdKeX16B%<)'h#xn|3#kv,dMmإRy搪e̘NQAUȑb7v~&@5ԛw#A>8X)~h-Ӓʏ á)D^n,|-Z'JPHKxQQtKg$͍SKa7 ;ǻL;}D9y9iJ \$X:6cWIO!?MqP-gG,f00F2i<Up83u}bK3~;i /a ?21,kLJXqxZeRK_iuf'.HƇR&^wHoaĊmj*Eu*a̝nmY{u&gHGgs۔xpUEvEخeq-\?Sp9ecU)ɇ+`1J:qeECbALW$ٵllp֒_}Clӳջ;dCg4ޤYǸFf) ԉd 'B=2,9$.NLӱ旽U4E܆j.419Kڳ}"iD~_@{m_L۱̆$Pb8 xX v$V 4Q]XJ}kiKbDAe\vɨ^!}b0 9~: 9 Ar^*.ךNZ *%?ܵ^45D} =XS5 }R~N0u۝vԼzp;|JD>mGp} 22<裙f0熂C|$S.;8GmYZ[r)\B% f]3mםT.*(1Ʈ/pXiMPǃykL1nͪ{SA="~}3_ȫ0ۦwh}PnsKMx3)e' Jz80@;<|k]ŏgcQv\k,fK `@ i>}-ha1tIJąrْE^gZTٮP٨6rTke+@?]vǞO۪'XmʵaQFiFtzo"J B;&p Hd\2(GDȴJ~. ;AN?1r=QI>&qj˅,3Tv~N qKk1"xQ("!cײ,,و}hTeb~{ռs )#b{(X{Seqr-*9f@:.>ળt r>U (\ lBfEW%XH5AL|tq{>0M7V\yMxnG9:'puZh͹Eδ^20m) ^S$ 7Ũ0^Dc(TY9ýߒ*ĽSfby=%=1+JI)Q?/ ء<65Ġ+UXU .mfs-5r<Ӊ1ZmIJ[XʀC췯FPºX 7qh}m{B:ҋt!EXF^V3+,uXکZ5B,qIDT bAfr78\w`& KzeDf#\cTH=bk@jx.b> F3~a}wVe(HP6BPI FAD/g\s:I̽%/Aڿ89us~wUoGZeOs՜CMG}7藻8{= WXzI9st'K& IgJTMje'K͡ BN$gc$؉AjG* 7i5KcњTѳ ~QМl873'`fs!Ww4窌|ZqP]:\M"&w l/}L{\ 9"gΧrSp;нg~;T \R5* dc_z)S%#ȌNj Hd~cא-޿ܴC5=p#?> 4n; gd׵ZeHȼ4:(ԅUIjm#!/myt k`T!m&0b{ݭ\sxrK˃u>Ungq.UN&CA^;{^H&$ 7  X|`˝O)k E7b?2]r3aliw.99*=(n> ߪ2[5#wwa+Alн ~4 90b7 *Nߒ ]%7V(qpL@Ij$^җ dǬAmmX:Þ0fp2*Z쓴~5:؏!wuL>a)\7h78!Ba‰@ձwvɰe roz_՛tѨ\yKU5:2WCi1] \ᇻjD4G;:ױ̳RdASQWo D+  1V]`yy&0 a *%L""IUSzUIZޫ5ɮ] {{9??}<%8̹!>~2i5wf_k؟w1~5*(#2Q\ EfkM^Ÿ5Iko[wB8MXbQɧ((#M 5`b$qƚ"@u^>~t#QS C:XUlN 1fFG˚i]FyȎ򂾾TzwkG`EP/I{iܦmDܷSrQzao{ [M0 m$M9` l.%#V̤K\]>.C+-Ib^ČՀQ!d+*]OdєӴ=u1Sݰ"}I\CHco$IYDobmy))Gol"+S0DM,wmv0"?4ZF`fT6ƦNTጞ`qsκ5<]mL}`n >ݾkL#iب``bf,0G.qRF^S 'ձmW-Hn86v"7F;ՉAxө;Z8M}J\g~hA Zuh[XS׹YHe<(H>M|_S!% a 1iח* MOZumEO!*2 FQ:~rƍ똴*ihe.=% qlopHRFPmr` LHY^,R[mr6{h]O/kwzR.f9Ʌ )B/.~ށn}+6$gacʡ'm)l. G %/*$*)1rC{A}#a<0E(Ong2ϥK.){4u+Mpl(u<;B7 νGߎTA$0ռCSy<Ƀ>Osɍ)(P37A%d2 gS5t>xV3,l5Buz`,6D&/.F 纛nK\qND0E}.Xڠpvap67^`{о!؝HȾEVpVY;5=旙}g_iJv/s ہnؘyFBxG29rJ^!j0nbD`/?7Z<%- O@7RLكХ#(q8QP`n?D2f9~p.ׄ!_ ͪRbfs .p dX_> 8@Pk.6CM٫wڑ`П:(ߗ'Gq* )l^}LgY Mt۵vSsA:6Ο@wCqfv HA O(WK.J8^+_ ogȒcbo\"$lHdi\ M9bfD,Lnm 9"?'.Nuj#U01W58H3W=SĞ&~[Rz.a>S0t%IũX&@~jlBe7FT؋ D^&Sb媠5TҕtyysHs&IzធN$nMM~!2Oǵ"Kgi5Vtz2jWwtf ƟTyuX9=F47Ŕn7 HR==> g,o 8Um| 'XH}b!j&nZ[/ JT-W=}jC%eGqcM*ۭ~ C17żBNX nj!2`&Wze.D7E n|i R]a2+? Ϙ3~#H.p>?_7~= ~Ny6G"(..Lh3+ 3ue>i1pȌ  )^} #/H}z 4) ƴ 0 T' 7:I`4)i|$xt8\,RUIȇ8` f~Ijak,J&ķIq C 8&MVF6fʄLhh PJU^{r_GPje+'ezgC̡e%_xUT%ٍYFf21Lx`}G =M~3Mcqx[#^-!Ib\U`̮F{+S\։aFv`I | ] "CeAdyE~;{q֔PU!JH 0钾[T073싰X-*T}U<m"-}[ǡAҌ, 1 dRUJ'{]0].] C~΀?jF &Q ދOF9z㺷A+UHwH R*@cEM ]/-RοDkڟRR#?_w0mI@gR;N3((5@7mU mֲS|wz>8:"j1*ֳ$VY Ʌ%FڻO "ٴ$H{yܵƙ H,"PUVbЖѠ `T, 8/2j{U5.:xe;eig fɢ'F?}Б_M"ޥ3`q7 y&lzD#fM"Y3s}cxaq#=o5$3F[ϟԠ[̤x2ۘ.`j7u&rT L66Q5kv]rk61/ @2]aHYO`H>e(Eq(.=|#n$_wҲ*dTpqi\"+/GLƩݟb`2o Ek5sv8!_%i;N+mi9?G]4?xl۪w$FdM`w]7a~( g6 0qt b~j,72=ׯ:+oA31,L ?Ն ڏ ؄I[Ugk@&քTV݋'d `+cW7qN7}(a=sщ'F9cŌאi[!8% 1䄻]#]QU7 UixG*bʱvw>-Yi]qL F^6Ko`ʪן*0F*`(B !!H"_tF/_-9iӆ6]W>AML}Qɲ=%ΪRok_d=zx{~kI?}<5çmjpkXޘqC0G^Yo}uUePעe/*n* u3e]jxcjB_޵@kdoz&лq?b4 {hQӪF~^ RP)pNп5,JHQF1Di!H >tNckx %& \ы \fLBU. ,T2*e*eN^o,)XD01f4xP)cU9KVS[Rm?Fܒh.2CRâ;`(}M3XkSYb)AGqc.y9";tuD yTO>g iXׁzu+ Ksd#ص 7* q!!tÄzbǦ^n(Kda" `(Pt&|vWP{x?{J[MB02Lg&2"9~)#VW%o_[Kȴ :ъnrh FC7X*@(06B@P,9 FaDOGuw.m㸩<ӫM=E{l'z/Ҽh;S\/Wƹ1q @=9*}|5'7Gwo^=7M4`J96A!xb#a&^24 AP EE&Kk[83⋘q߷rMo~U5ċS~q>󹷁' &#~i6J~}=5Iw~:t\?/ݝ{&~G] v51j@.C֒-Wz]΋~uђIR` jAfI&S8w.c)њs)f^*|9 -y7SC Øi8òCy1ቁQXթ8E,mPmv"@6 M^'0B*^*ڛlg6oJZL;_y m,N! w 7/ m&#NI)b9`!YP5+Snؽڝ&l_Ǡv7;X}*դ y@Sւ ?o \Σa0/,DM3o귎f&'h?UfX0qRS՚ܨ}"^F |<޻˯?fV j62&JÓ kHxYd e9 .Ta܌6vΞ6 d~R#"w4ǎJ v_ Ro\{7%VYSsm 4Da˧EHqE*YgdLtPN3] 3TR~g9:2Za)z:/EsaM CB%B}Eh?HX5yf,d]-\.@ϦzEy4Z-t>2I9POZ)3mv'4j09= `Xnj^5|qH_V{~rto)Ւ?wUr}i{LH۠^rtmap2P,%&ZF~ p2"5?ۼѮuUdmE {yXǼ )DL_MΣrF\ZX5W>h,êfoPOٵpP$n֘>Jq+C$0I!Iy&?BJr>m0R$g Gs lJHv(|wE5RQPsJ݌р< Q},;(dY<f]o%&.o~bc HND֗ZT~Q:l4GѼ]O[ǬVN>~<8GFǖ{DԤg$G?`/ 35CQx冷)ddy#hN"#w%1*=/G"Ft 64B5_Lh@J;|x  Ag^OJ}&֢]>G?X7}JV7G~ ^#QsK E%ƛ nպ[ G1Of=-MQ 35c%ƲAsЄfGO+pID 5ol)ƂSڗ/RѢT=zj"\XRՂ0+ܾ^7l/s^W\^,17A?#_/e﻽/VCn. Ym;;x}zߘ= =.Dר`@"}ue>c;H6(PJ+#v 2$b^ތO9Dž"c#<6+f:jna[ MRY1\ʜ%8X EVփCoRAR"D\XzR"?t*Cage5c*├J|_ ^ȨԬy|[] .,J5$筼A'v]+(9± ȒI̬ir4"ļy߈̰f*6(ſe9 .|18cYR}r KuQ M'k-h+V΁ր:WBϷGui@R!*g?M!^-ͨo!‡EM6DPє|̺(wX$UӈZ8ضY_ofuw>yA;Tj Od<Sos-Pdv12ZwRirS9IbCQ ׀6>JR?{1%ι:'5G&EMؙQܸVM!=[c{Yr|5^Lﭸ"VGbD21(3ٲ6RaFq+#Hr`U,g Nj e@g7G)իŘO;pP/<;V^Oȍs%VNQ*prlMeő׾YaOjRdz4m*z|@e@악l]a SJ۾zʋ*vۦnf/avHFN"-[8\yr.l w> z]46]T6ORNl3&Əcg_U,3XGtQ_}嗪UuR~ߦ݄ ՚ 49\/\ĞDb\{(J8n0MGU@<}7RpB3i$vUŊ#+Юx,f* Rrq nm.ߌo,/zsD5&٣UW8ZvdY(0gv)Oc:T~  t~[: !M%&!\VEq=g\Ť&y{df Il/A'zz PFHq8cHj~|[IwlQ9\@/@.xr!BI~w1El1=R C+Oe\pHn6\%6N÷}#-}KsYo߱uFުǫ )S04T.|T*2UN&=  DSMzp2:.wTCajB};|x!o?px- g` dI;XXUI]rp-/&U YvRs,ʨ@ c ]ԡD&G >s#J#(%oJ ~E{6/boǤCyd"'(j9 nDd՗=! d/s EΪ .R2IY+}ҋ?GޡR4{tuUHcH-Mg;\|*oV n~ppgPa^aE <}%`!?:f9pధy C^`泆!\/o{x&ا,NDHMS!2ܕZ=]_-pgRt<;B-4x&}l`}C]*>R svUrXu-?XLKf5W`4?vV,{ip 1AI&S bVR aM5br*K{7"xVLEM3 S?ϩaGyEk_{2&2&HŴR\SP8#wgbǂo1=`{DxUFƛ-ޠ1 m =rSw xܱibv> 48aqL#*HO_Jڍ\|E3Ć#J=RP{hձG2XvH'w\Rzw ׷Mh^(>J hEPeߕKt벋ma6-v]2~L% 3!T'gTpvgInÍymu>bϥr0E{4@:-pЇeE/.`7WoYSs#M6#҄oZ&FkOQcmJ{|qC}wFp{2 'm-[VhbEUM}d Yg-7QK6Bg6~,'GC!{FbNH;hs1{1Y=lYq%>i0jbjmȚ,;;zLpU Й?1$&3БJaȔzU}k髦:hg_Ij@swT=WJ.2eY9P665D7(4<(O-i^~hc|;*a_V8VEA4I\D.fe)_8ǚQ 48+jăWSΑu #~yJ.ͼ82g e ?yjI$TmwAYo4עsnE8BVMUN}KҎsu>Vqw (oKOʲ股ՈÎUPKu3R:eȓFC,) U #^IfB&>K"!@ct@]Naq̆4h,MA#E(Տ b^R gzďO@[̫y "gb"DRYn ޝ(dsi@ Xs5rxQsC81LRZrw*ؑїK|D==fWXMŭ-T?&-m+g.U=..s8iHe=pw:돩[s9#Фc?dN_[$# cHdUes6Z{6s ^5W:w|a&Z4E X&,|+ m k&Z+uQ[\qZ]\?H}4H|߆%h':8 )@i];d#<@I41:oFr0 `(b:#!H&ɫ$fRf*Ҳ%26vy}?8ޏOvQ,6Ui4|7E Wh~ӛ:+?~'>߯G?/s 0}!8Ej}~Fl6 Lg |KGМ$@8jB>!x[hŠ6O>6>r%mi; ߔ6R٬Y~I&}:wpEX]yш8+jFK/ON<ƲN?4pBe ]Slej(y!ˡ7Şꮅ6%ۧ } Z,^<0^N#5U&d;λG%wѢF N>Apn3+;m1*{ǁ?U!pBzl*($-}9gZ宑.D/JhgkLH[-qQm[pP w?:5 P}HL)ɴ`\BJfK( ;GPiI\2+h5'j%Gq(eKɺ3&~r%?W˩ayԘ/S4J83ɬ"`1LE^LJm%\d1`㍇>z[S#2{`RX&g#C3ѽԺ!.~' M~Q Y[pc[8Y?| ÎjxqHp՜uech?N|, Tezy 3 `649K*LTDM*4 APdD Ba "=bW&Id\[%]}_ʜx7Qj}q&t9Oj=C*?_oZm~_5_YAAh'n9۰qhI$ $ez8$EzԵ톭;ª)U L9oo@8 )AI&SN%*>8aN@c ).3ؖV=66=_H~WrL\r {my8۱gu[t=%f.U&o'sl^\d)obݨw+cQI%ަ#io-?!ӕM6uQ5"yAWܰ-gٳjxtCP4suf_~UJv,%@/"v>2h,"luBoj{oWIL)E &aEPp bJ8i| {iUO֥6Bx}ؚ^$Sa 8O[ M&fZo+[LQwgߵ/M>[tT(dQ#`u!zIJi "&m\F1e=~Ldj6bu>L,Ј_-,o)*L+[Ү4ZfT.FQa6ԻñRr4{e:}ݲTrMBaz'YwYDybT* 1z )KV?d{M\ͬQc쏟 tDVU5Չ5+YDq9wTVNÚ1G6Bh`@?yw^nBm4hC40g@+hOɨiLwԵCjpn/tgO[5.5J?.`Oh>aG7 QЅɍoX)PXZ鄾o8F&mE;VXfG6,ņ5Z]xNù;j=LT]67@Vln0h:O3:;Fٮ-jmP JsK؊Ug@ņW?pCt~F …/{YRgo1F?*3W2*NkT}\?a X·DeҖ>@T3f)K&ϡޖj%BjmȄoJր}P>κ.UMZF ]AM Kr2˺P3 QockozPLlW@qrcܿ lI)Dfڄ&2uqxo5L9YҔy7a-IJqm-$Ͳ+ =ACa^MpI5|jpX<I{/S%8lf_;PGX:LhedW1zj υƢS eTƑGWdTyEdfa3BO[̜TӮC D^YKmL;1 @L R-G-VO*KdJE+{2/UTSu(o>r㔃acgJp*gOY3 N'%رMkY!k5'>Lɵx=詽Y 4B߈[U4eZ $ d({<M-sIŖAWs*=0]k툂rZQvRm)/,I k ̿BPie~ۻ.NW2%)bBw;)\'S[+c]J`ɆKXM? G6<CLւ7=bcrk۷?@f>%K5??I2ܴduhw3d6uԹe9.+<h$z؇a*hQBBJbj*POAX73OD+zՔ^2ݭ_cBr'?}{SLTv`ߕ~hqWX[;Ps֦ !$K ͤa@"c]XF܇LmpmǠTDt]wB+*>0Eu։$]wՀKGuಲ[aƝ. KE@섰Wp{Oӏ|3rϴ(PSHuW x^.jI<KckB?0 W樀fKE5lΠP lD vΤF?ZMOT5xIEňq2$svj8v]4ĪIC& 𖡥lH}#3K)ÜAϰ62sO''kZHSOD8TQJh{q)SZI;8">~NV7qQo|~◹x {*z{[bk08Y֩tW=ԫL?!QwP-0j &H"BMs5uuuBh<9VI~z -&~գ}dv+Rޘg:#h>>h~pcDYntvJ?ű?%jcq>C9p^!;V h5؝'TS쉮 {UXU5>8&U,A8Xh# #P"';qEIU.J#H_,sڻgM^4WVU=fV~ Qx[aL^w`rGRU[KҶTeaȚrkm4?҇an>G<k3* Nz[}ؘÀ3Ez_}efq~[/c%-kbn5p)n%^~_ #æsH\Q;f*5v] jNpwzҸ?e<@ 9ch. aqw$IVPn Ox}4ntVå, r.b.?FZ3[ ѥ}h_ѪFGm0A2v&pERit !`\S  [aq=^NN$? ^,(POȰ,z1(Pģ솟# #`s5ox7^&IΦԄ9kqFOMsk)wu0 '"ֲ^ٗ9}O ]bBs+J~153;2D\Q&` Р؋3=hpgTugJ౪b,|J F Rp#C ">HSQeXFW-&(hul\c! & KXA]Aw&}O\\ '1`ҷ *nHo(bӤR0D+${>j5 a|C$aYuzP>nncTY[- M˪2r5a؟*> ֫ AI&S d= ? ي.  =4 6 _5`ɐ\\#]*@/D? +#/MRʭ\-އ8/} ']NE*DTm'0̤ Frv6jxr3#5J\ 7!\f2Ti-03TawiZyo*y/W}UmfYm1|iY dx"`mfm#0cUh$ x5"sS<oV+Ҿ7-GQ 0$=0ӧ/zm*_4h?]X.sKb6)P5}qjWzm|7_G\}][NO, /O(kPzMt!`w{p#D烐,tTOG̫O[:Z)=<%@_^X]a1LaPt> }2HY41wJ"RK+5Ƴ#y;LB6Eg~L׋&u '1*.Xʹ%WzskKQ%kyi;gZ^q Cƀ!{⊈nKӵWchVR,N<* TW.uu~pۻYk=Qc14MʧRE$A,Tn>9 yotP/ev D 6.LiV龵 V:=|>PUYd@~4B^gP=Q?8Z{y&HB+Lefhriu4?|LM%GQKx&a1[Vƨm*xHͼ$;AKTKPdXY{]g}f5KČ==_`Ǽ%{0o._[r>E4I@ԞpBUTʐ a?LY=?A1:c.O8G'׽[5 6Hr-bI3_\#.Т0`4V]Zxq 8[ ̓Ɋ_V Ѹ+sZ)FxE8!wP^Lj(aUU-%$ QW {Y!VTMybQI0/5K]@sǍ׬{ ܴ";9rV9N{beRٮqLeACk2v Fxl֯ewcG?z([#+lND8G_]|AcĴy5dq{am\ED; %АB״""f~55koN+zg{HXCCtݒxDNF>~va'rfdeE6 Su 9l*|Q kÛu`tIX# {cTe;v'GUv qK;62=MLщKP}YqB]BД0.|:<{uw/(1\:X,E<*I $k6Dž-`Ѯ_-BZ&d JSG‹ Y238: /VĦLih !%6vM.-C-G;6 U,4=OyVvqFSFb 0p湅XQDF8Ie3rRE]@FXY1Ɇs{a m%MG2TJkjdkv<84Tdd?^X[)Rd[iSY`NdWW<'j!fS~2&pkLmyVs"'dqvQ&BVU|5t"fMcaZ]W0& VUӞgL yILLe!~0l(6 B]?8M' .EL/"Uheݬڲ$f݈C:XBc޲H`7`Pjp1IPޱGkh~2[S9U*˝GC&yܼ8aoqZ<16B{+6bc ]i+AvӅ_~(|Qo,F[;G|1h)DUː Tq bF 75Vbleh%6Cu&Ր,(%@P, !D$ #01,REq)deև~x6Y|d=wS\2?R<ΏĠq6mg-QXQz_q4 ~4n\ԭp' ?<ڠdNhԌ>ekbb<8ua|1SPl9mI뫸ʁ7{]fy! _{ĥ?ʐ߁*, a`(6 `L0 0""! _i$hxtR|g5~?z8_sGgP/@MxmN9,@VLz«kJ9@6*.z>q.Sp +ݹQʔ_;Jޏdr1[z҄`nuxjBRK ԶW s*'TQrc?~`lܠm( #u%,斖W$hO<nFxmfO[p"躃>V i&Hɹ{=]uf's,].58Md㪈 r"IO4ZM^fE= 4 a+ jvˆ^1bD/r<[8Ɣd~)PeMAy1($$\gG,?e,ؕQNuR ^((Q|OߓҹǿAvklI"ak/E=HbDog&a Duv}(DKH4IV]B9(ۨ]mM@#FO]>[^_nMrt9+@|*']^n4C0fu]IRYl B5x&qK+ 9>/mZMO"#C3MsDWiidC ˟DmnIEw;:X0Bh[>?6(؊2`A&"Fl-H ?p_M[{ fY!x$jUYޕ 4,Ϙxh,tD K2@R/J4g :d;k0)jR K҉j`3~\MTgq1F #@g`ݍƤz*0B)R=xEؘݼq8 /2t\mdS+DΥf!,u j`K?E*nʥž Dmlr-qVQ&8 @VĚ6F4iym46A&:mmbe1:H?p/hͺxspF?]&jv_,j4*i qNN5{ju(iV^=)af;2g:\rL*grrtL3X$Y*/"p\1p@g7-rѻ;VPU8GXA?vQCW{h* Ѣd۰܎g) z_lt)Z;) ʩF1O'~ZlHjclI] zSݞ]Ѓ ^LU1ۺWJݑ Z1ĽZ6 tH-W6{62VKrrm<ʮՎ S}cC. C3s{Cic9 /_'#Zi)cV2*kF; , ,$SXLsrW7ma֛ھdfBCY껌ef%z =)6obdU&.95ItkE 23yl M/2.AIG}݅2fahS8+M] JA>t, ^rLts`ft`$V^s[Ax-6:!,2TVDK[2Uy~hxm>[*:Do}y49t̕WJN%޶Qʇ9E.`L@%*!46>U@7Dԡ@MV@~#>ۙu*[4kTӓ#}&jǤT?lj")+f,#@>?TDyr1PWS2LQ}QZZ`aq?*8 M@JF)nb[ObNSavxuʅ)cԦlRECHB`1+_c6Ir+m9)~gw荳 WSC Wo6Lg[HǪǛȿ )_A` GW9uPC老˘ ҅Ι7QY𔣟6ЛW떟m+Z67 `ERzwĈa ՋtFm2DѬ BS=KSͳ_HKѸuVe q@b~uO8-%x%wHML&.!BtG\umٿDG.ΝXd`ɅҝéF͛ 1+72uT X|tp΁EZqjdyʴ#Ѽ?X\wUW0ܮɈO D-˔/.EIg9O~uX8e ^6QDs˒% -DQ?UC\HZVa|=48 S|X }qCWB0y NS7u05sI}hȚ %)[}<~Z}X.kXxjSm0G;8Jb_*R&jǮݰ_gYaf18 b'|Ki@ɢ%}va]en~"% -[.R%ku4@gޙIC ڡĦ# k}]R‡/候 hg#uႱ5ɔ=|4$_λ/& j BQZK 9nVnJGT+H\{F2Hhڌ̰5:㏴CqRhk;hG ،Kn ҅TQ[8k|_0T^_??i>GmflQFdtT(Rp{I {<+Ѥ=H:N)Ȱ*yΉY[_MjVY染5mC?+цŠ 3oȶkC"FSJ'toC偐"rFէwgRfmE&N yʙrA8 qHoF J wx#C ΫWS:/8eh]AUhm]I;ڥu?tz3ӣb[Ld<2}37ʤN,$ oo:s]MCH؍\h i=vrA#/9_-+׹J|2t L$bS>;I^޶ٹm9jcZs.Ĥp*T&2`!1 H(~ɚ_9&.(n.Eo][_{t{nUC\??g_`Ev%yH-8dOQ°,xz!R/ )cRVe1epy v@e)2ډS 4הc6ӯfsQXj\Z Iw,`5gb5hqR`i&R_sZI U4ʶV4;(ࠦ:D1.9kPw?Nb|431*#a)_En 9862{R_0 b1qϚw15@ÖQ0;m-339Ls3)4Iޜ+;^AFl7@ix&=É˔I WQ z/OꄇωJv% H Ǥ+˽A[c|cl`Qt'PT0N"\m_~Fd\xyrՁMBEa{K!i~ኂx̀ +Pf.̱惥!B@@%AY8wH{ @ :c)TGHt>@܇էV PRE ^-WȓON-SW8[){Ϩi% Xz*lcMkdRti&S3 8IYXN/HQשVKa/ )8FF#7 K#QJD4N uR6Y)p ޕ-J[*E(/y6H.@3o/xUǖ<˪_ foЄC)rӓҞ$P4 @Pl %D&"{~۪5AFHegMz[N$EYM7ݒok7?gGWO=?Q6Oo1f0veW1?l~{Y]س^0~)TmuU)+6[N ceQߦRp9Yv{ AI&S3(Q\[DfWPݝRcM$ ~)dQk,韴JDRV2o@&K(HziFnSg1  7%r%2O(2-#` { bY\.tn tz/sһ[E-l0 >L7V,J?/`TR rM`&F(4N\G~BʂᶌNuY~*O_ohۣuM217[u'r~ܤYYbA'/sKZo]Z$M( .Rs;+Po"{vhݰ}gU)GxGGk:tw6E?/-P0}FɌ"k"q-oP5u,dz'WK`ے ͋1 .gIDƛ|gˇdAS*H,/SJ?^h y^\fBr#VVؾJ(Q,Z򋁯˙J͍rr !Xꌻ%d,ܛo N|/y L^}yjq';N H$m_weo;[A ?~k0Toռ=*Е6m,70h Fw-`MT |& %fC)CvGqN^MU/;r2 H"441c޿k؈ӊgS:㸧T(So(] ;#tPEo pvI\:Tb4P҃Aˋ PoM*a=lm$v؜گ) k0}ިAm$lLJXDŽLul0X vK(xEMXi^;1U{Jx3k7Jd5NS!U1뜧=K}F3k<R)e} hdcXTCr) L&R&-&`8".Uscn Yďg YgzoS̉c _ƵMssOm7)p w޳NU0=Tlz-d!tOlU(P=dW؟\h9@4c4tFUz8+u̧;n$LݑtbĩE\nDeXdp sBr%՘Hũ0_V>2, o  Zm&c-M" \s4eN ,$bThfO* 󽢳Znئ~X}:ZYxU"pɿ "ySnP{N#ɶvM U5<B5ehR o :lnY5BҴES9rpyHp +,m:kg`~AXtcV!;J@L(~9q1N$+g(p`ʋ\Q7Enp%z`4$mJ*$VA+B*OOӔKiw tB5\JqV]MGeR,éBFwj@(_LxI>{oZDt!!{’V>3w5柶z썖ܻU("22^4 UD)^=+𑀚=s빈zvWIw=^!^irb-m>'Hq[ t:ƥdK~.@sq~ScL=pۣ f%c}qL w35e$Ӹ*nCI(tl {:لGW$Dj%X]q" U d:D=ELiq[tލY;jFe2x mLN dݿRP{AR?lOlp/˚O0?E2X0,t[09X jlK;9EJq?RuN>|5dPmpm1\U+l"hdn74; Ѹw?>cx댵/AK.IBIZ'͑9(j 8)u«\@ԢxX"'{"]:5= lxtbc4/ӄ~0Ov06ҵ(•4gYE1G L~ }响~Vjg0n [MM@ɺv3ݴnvD^Ʊ`!H aXMZ!L=*4BȢr+FD+myu;&lv :J\I%8Nn@n؞$<%Km?槥C^Ց\ƣg'ȗ󞪎J8iY}M } n#8Sil_% xկ|: Hj)lwwXBuۅ=Ҭ!6hI)wVIur[yp*&sv)~z5]O@mBH|oܠ0 @`H A$ A@T"!0T-)yw*t2MUgRΎ蟬F5b/]7w̴Ӱ>Kc׺SJ=ѡI/Ǻ~ovQأ-_Mi~cx]/gϬKÄՇzRw T4F31{`ƄxuLK9A GA2I&SiSEn< ;PV/)DB2OGqovO5&qreB"j,>iRbAfop\-Bg{-)w?Mfokvy&BٔQ؞c$vʋ_XJ +juSH|6{C ||c0]# UYX7n׺Dץ$-ưJwڢ;• JtN4*J$5YOd)g@jk 1_FNljwv0k$( ?xTC%Ki{•ڐE%>GM:LmJR.PPo]3Mw%AX65'x&2ͣmiǼbxĥA* p[ >}0Zyȏ"R$:;TfPsu ׸ΓHr te 6=QKGƠ_5fUP雸#4d&>*qu}ibr#T8saDŌtF buokߨ KO!H9,st667tfC "X-YkȬ*|b + q!E+X JW C5k &F?u|ZNՋgARk)D 9 U GLSmU%區>`a;FCСK F ='oMkgBRMx R#S7Q]z?`Yi`Ss2k1$Zv%zIx~:r#N0r&ihFg7KH}.HVMnII,Px^Xt2Ơ⪖7i9x?;S0gyc9K_KL [A!4%iy@sL;ZHËq\@]i֋2,le*?5ʩ-`gNReRכ(h$ZCs{tm Ktb?LO9*zEL' VPN`6:w1|#;RaͩFcT{C,Q8>xCJեR97^x?]N׺ .A[M7۸=(qC=TݻKC}=}{]uod)`y x9B'jnL9 QṢ]??@xgQjBT\&BF˵Ӗ4Ѧ!4&k+փ-<ϗykI4S%_Np)2e.ɈmpVO3i$/M ZؚD/`E%8(}VnJ%5p"=k5IJbS3Rt6r\D]'$#79$%53{ Dj%1O\.F8{:?mVmzg759M|jndSaiha- HaгPю'l#у7 &FziwEzPv垯B2^/&9z>X+"*z$ yF9X沦+pZlh/$EFKFrQ#VBI֦b1/SL#jҠFZ1ꡳdW}z(_ߊ%Y |&(>pL;GvK]sy#6Vsw= nWcy V Dd,qh.*!l2xTLB씊p=R,4Bu!=ɺjxL2Td-j`g]/WaGȘ=EOߝ\dJn}A>N7d%"~paO7) YFbKӏ 'I;vrQEዟPGE XM+;> k Ȃ)ϭ0\ y(mS6˴.lrNhI 10?aJ< 6BǫCLAp%J2aX-Qg6k%{dzVϞO^H/( jnDrp9.mnTr,*P6 `Xh& aD޺ύR$3\gf~j~F2N+<ڏ^n;Mm_\>ʁ7W HC*@GB$'-ߟվ|]= !<3@*jQk-.l"SUI}082UP¡a@h,' !BC998 Md7lL mt_oW8 @P+GX#MuY߳~f?Þ L˞){y ت5ijvGEXFJ4G9V8!PtAh0 ASKCsA` L^k{mZWN BZ zOv)}p?nõac1HRdG3 *+8=2J eòzO1_ h&# ʻXlq}ڍy=2U-jC;aniMw˜$GZNG{U3QcIFPP[hh[a~TQj0D!P7lKJi>h(ȁ^s54k }WySa&bѫHZM遒xKcotSTѵt!<#B$2cB#1 X&=-CPHwV)I&U7[6>8 z4;IFwںcp* |{Qa)vNejE `m=]\9%mr/eHG1z1l$HROu8yES`sE- S!8IpR"_k`)@OϿD;w^@cAhR6g#ivS9 &'Ko#Wd0BCu|)FlA<70,q7/@-5e*wg4DК"*.\FpD{;8 okza|GdU$s_6 *#s3 y+P޸SwT ѓCǡXɀ#" *CBwyGf D0gR*/"; vX:X_K i <hOػ-?^ѴwԙN70C ;t/뎨]-XGpWl;ԝ|f-,?i ru(D+E4w8L}H2jkwdJSƧjc894̧W{ȄH_"YI*nV nc70;+>?ep&6 ¼m6@oD‡Sxd"/U/6WI&P.KxFXʭ#l}\PyaC`wpr,}O=뿞(3ZS>Pw.l~0\=ʌًgb}`Qˍy_tB 6Ƌu,-BOu* UΑ13h nόϺotP2?gǐQ9O>i|y7k'llQR`,)JI9^4x-LX9,fRIY T35vM;,Az(z7ov1>2v ܊+uB !Qi+HO]G629$xHQ '?OXXip,(Uz2EJ; ԆA|"d"đJF.zU_c{κ 鷂1[!4}*ϼ:0*:]')A~jjf0ˊe"զHˋ$45"wY 8Cxԏۤ~)uõIA*M*qk 'k{Aa8:އiOחL>;3_ 8ߪ_:www-մ>@[.O+g$}m](hzuZ|ҺP0V MBJq?8AtI&S,\#!+I[6\3~EMRi'_2LJ1gaȓee،Щk4Y%_j3 yT`J[{E+a*V zfPEjqݥ> .2gpv=IEv)/{Ow.42 Kd_)ß&1=jHEhsPdhSeLU[=Xkkm|aSPN Ӹ*&lc=22$9@ج]A.NR>u܌&*IFKg7oU<=!` L~DH)λSn2iD,8-0Si9ZQvgPɝrѩDMWBp : `s`StЄ.jZ$1JlHZdHBZc6u}Z;u\0%sY1;ɢvo):E-mXݫW3(H"j 䉹z˛} s?|Ha$Za+zͭlDg6I~oa=]+EF2[ɾ !kX ú9#݂i0w+۳T36qh9%ap^gOiЧYbz$x3HoY"a:;6ܥhP}T!?}Ålј}|wC:lx|7KBHjwQCmjFK a?[Nкu#n_ymwH)-6=\0*kCʬO}uM{†+F(I$ yWSnY}SstBܕ Dzqh '3 ,a1 ޙu$pt.U#(G^Zܾ.Cm(a,ֵT߄42MS/ROuwb>L\5籲\}gnkU>lJwKj7ʒcm4hDV7uGy:P7-ԕ<_(jW-UȧMw]mphx6kA!iewIhN%(οQz̻,Rrfhk`";MҼg쭥$$Ts_n,m/~уMj ^rp?3,eT uPUmh>Z[RVĉQ/ĩr!n!i& ZMWL$4mgh/Ae VvIђD3 _v)>g[`zc.v-{UT6 &je"В/ji%{(8{ɊC>(%+JKz[A%拉l29 y :neSWZw<w1LDt'G?ľ4}#d^U }!r5sdNgq8s_jcޫGlY؆zL I3t@Y][F}|WjK>ǽ1 %61FO\Zw ~p"e^+O픎I& ?X㪔6KR8 LK32p]*( fK' qq`I=0EsݹBrl^eBi 5IaH]n xR/nFj4vL S_p9FgS}7`tCS78٨{"X,5ꉥ!.*_,RIjGr S>BZV=G,6m3, T-&:Y,oeW2%P:U.xmoovlmvhd't@trak\tkhd't@T$edtselst't~mdia mdhd<^U-hdlrvideVideoHandler)minfvmhd$dinfdref url stblstsdavc1THH3avcCd gd A`D < %Se   H X x  0zic B  RZ  j ;Zy<z(|k *p_)L 2O  v  P  } Ggq  b&w  Z d i   + pO Q , j y@  \a  ( F=,LjjOr   9 Te   _>l=\  ;*$#* iben>S  5  o[h3E< 9 I y$V Hb7 {  Av0 ? -N ne 5 -5  ]y  Kk stco.0=1@QcsxT0>geG 15CHTVw[qIv=|RНմEZ> },1>~BrS WKeh{wz,_`ÿIQCqgX#%69EnI)X\6mq~ªфսL{ ')y6wFLZ ^lqq[ U*0<3H`Uan'z >"d k$1uKVcpLQH& ϺQ| 4&:OAQ%`*syRg=_zH̍аN{ ASV.> OUcp!pVN6 H : (7 -) ; A Xx ] n s^  u  ̲  +    p   1" 4 D G W [ j nG y O  T Ȧ  &r . 2 > A M P ^- ` p s e 4 Ү  @   Z . 1 @ E T X h l z ~ ? Z ļ  k trak\tkhd'0@$edtselst'mdia mdhdDU-hdlrsounSoundHandlerminfsmhd$dinfdref url stblgstsdWmp4aD3esds"@(Wstts dstsc     "#$%&')*+,-./02345679:;<=>?@BCDEFGIJKLMNPQRSTUVWYZ[\]^`abcdeghijklmnpqrstuwxyz{|}~     !#$%&'(*+,-stsz'CYB?4'5"'&& stco-=@Parv}' N3gCׇ> I/Y4BF%UyXpTtEx>϶gf ,4/b=@R;Udgv*zHׁo!k$48DGX-Zlp0з.+ 3S(4EJGY]&ko.C/p-)/9:}GS`l`y#[K  y#/JUaYof߃d F%8@Ou_kqx|˲fr-z-=%N(TaZo~Q(-S ]  'x + ;, ?; W \ m] r} k ! N #  a G O 5 ?    /R 3 B F W Z? i l y e 6 h ǯ  ) - % - 0F = @ L O ]P `# o# r @ T    . 6  -  g , 1 ? Cf SI V g ka zH }Y # t  5 ڨ budtaZmeta!hdlrmdirappl-ilst%toodataLavf56.25.101vision-0.19.1/test/assets/videos/RATRACE_wave_f_nm_np1_fr_goo_37.avi000066400000000000000000010030001466211133600251050ustar00rootroot00000000000000RIFF4AVI LIST hdrlavih85֤IU0LISTstrlstrh8vidsd IUL0strf((0DX50'strnCH:\HumanActionDB\MotionClips\hmdb51_30fps_wBrd_10off_divx\wave\R??JUNKLISTmovi00dbU  @W @S #<(0DivX503b2816p`iQVӥt>3XZBvvsͼ7*ut%})K/n"*򄹸%*cW}[| [ۻ匐r҅N9Nh"Y.sO ..F}u&}4P6u|ip!(`:$P׆KM9iY`Ph="hpGJցWG6q }=]7+M([y,# ['cs3! Ly<$мPmmG(Xh{9?`7@/a; q ?Hۨp>2#}`-pVdpNl3^ &d MYh05q `.Z Pb&ommM  }w0\ `DNTjna88 )uWQfv{FLix(Gu{TKaqQȈ"FoXIIQ,J3ZS /7LGA3nu@%=Q[PΈ! ,%'YJ \3NI YFƁ *ts=Zm䤔fY/l,'i7( H?QG(M{pWP.uTo  SK fJ:S\Z ~ؤY\5óԐ(8"Ut>/UW|޾qgp`/~ J % 듋Qp,Ԫp p^/`xt7:E~#}-8*=* Tx=SQu>Nb0̓zj`=J`ȀTڢ>R8Oފ6 W?o}zPaH+EyJxG+ǟFoQJvᎶoF6}ۏ߫lNhWJABͷhiMʼ `9w. BVK=p&ʺG7I&dp\Gc06P2YhG1 LB;=\'“4KEӠzvśW,^otޝYɥ2 j8B+?|?.}dmy$((#A:e:mp~۽{}(r` <GӫSI}UDN%KŖz +A㺺"7+] ҙ>KW-PȈnDt 蘻Ce:ԁno$QH('~\Px}Six \N`Gb]˰!ЀNVD l Ml CFd'mfrS9A]g9yךGo:m_`ෲU}>R]Zޚ4s h*%F/Bͽ۞3r^@#@\-5:ǻ2#``#&@K~{f؋I )eڐ~,{Cpd 8"Ua]\@q}Mjy‘ auZ:+i %2kJAkK3@.L;Q0fCbX.&mujeN(Ҕ$5ekd JB-} #jcOª踆] #sMDc0O0;wRN# ~0۳ z:D_:ډG-SU#HJN}S#FNIq!ab1KY._``Jˉȍ!Ѯ1yނie@\W{j.mQTh-oBmQP& /+#>0փtt>R_ܕ/mPBX(u3X:M?%dSn*~f omhC*gIS(6!~xjM܈UUj?\^ũ[эЗVU2ɕE"'ʄ F5[&JSAqdJ Y,ʊVcϷj0}ИEM !n>r#DM i> 0h9 E atź]΂x6gQsbzdB{pɮݩ+ZtCQ\zGY FИm-#b=Qߜ/)Uz{#~,uw'E 0P5q z 0H5u.rNo7Ғq9ExP0&@`C0 |##nWBgF!.`KizidrP\2.ـݢ^(\4@/ߵ٫E,lUo]P= lEQ]&a4ޗ&=IJmU{&?O_%U3EP#&_*"[Nv}Oem^;1Blm0̒UADM 6ZluYTYP% ]=DY˴$ C, \ 켴6A͖#9\^gP]F6 j~ Z71}9V4SΕʎ!4 Eц&r}@鑊"Q@T9Ij<St 8*lȄ0J[Jc=2@X+JD佂8'o(T1pRA.#սDM5nƠr)էoJQI99[ӠCcNO퓐TdPcVtŬhȜkTE moxsQW1>3i>K zCAKf3iE(ibwJbn$w@z0q`!/8ɺ(8ԾD.%(8i7<~=X{E] 0{ރȊK1Ό:2 ۾9"uO>·8&|3SV"1:NŃ"F`|?YrJNuQ2 6ynIֲTk hGl’8n[6'Lڍmb2_Kv₵ OjFA82]]tlAtf>C8=TtZoۊl# >wW^\2eFD0Am#^R5\8T1H\ [ @&Li_'M,ցK̀0'o'/*f!6O; A/Y 8mQiŠU/Q?a;@h.+ZIB^b`*۟.Mյb%#/eAޒ?6W SG0lM| ۚ!3`p'nĄ8} SYjU UG7BK`ˁVh3Qtw2|sb*''b'_X3HoyFD@>~]6E;v4J%5$N-8(2q\ Q.oN!- W @C`Iֶ_.Pj1|xg.VؐͱibIW&"#*EJF+:J疝ƠBJy%C5{:I㶎O&Zʀfq_iTn8(>}t?3oDO " Sf۹9#0 6=/P,OMcŀL$RoЊ`8u`F`} Cb8Lkc H6߹OW$ BLDi R N %*beRW UP ;/;}kS6߱J\Rj,TI輀yn55"xj1Lb_G* YoEeMWΕrn)db `No[aQHPʂV'WXQ` xǃ|8yšh$9- 6LKJy6䡟 N Da#7W7ㅇg)Ob'DӴ 9*yVq5lȑr(>,,_(1gY{?xX%[AdJFTIQ x9j6-^Z?P(>N9 .{WL^x,^E*"0q#"FFyoxH.5Vm,\! yNͣka"];b4Sqd|RK~NC-V.G~@5[MQTACBdAT n( ^BbL}am:\FY[ E}Xh˶FeX7}%N[Z#G[PDJ!usD䶫t&~į%ڢQ B` ҩm"$5n o#S19P.Vo/h\)%#g4BhI45;3(ut$UT 5w(*>,cAk!G@yqQngۭ/#k_s N-ak8?-K(+ݻwqE@e\E`ͧ %K-UoVEV\L) ({FZ#T́Xj!CǷ\NLkdXnypil))_'Fj9Ӷx28by.Rqn(i#9"v$Ϩ]ozԥB ꭫ƷW(C3xhQ!Dl2# eX[uĨr-]6Ab$A:e{TNr[Ba0^UR,L1$+6oʦlE(15̨-@u @!5=xVdHT_(%g-Z۽):'v١DAZ2FqV\8ô^Yk-$(r~ }@ܿ/':vATYvhMIpX`8RZ.%K"`n"АW1% 3ARqK:ox#Sz<;j냅(;vfKJ> U"踈!" qڊsXڪ$gyzTMl*h!lb0DmRLns@XX{/B`桡->s:oKFACfmkQ%F|l?W)89,HCXFH&x[PFIaN"D3>܉v+3)틂zT!BhvdH1FY*aywn2$Z\\*m\˘ZשBk,H:SroD}4W{>-gTB zu.{fJஇYRJ aJiKVs*)+o>~˜E- =D!ӂ"a}˫8 KΣà/ݹgWV(ԀɁ j c܅h*ʾB&0#%cR5ȾZ,@[OhDѐ" 2F ^'%oH `rj߷2r~{TpCB&@ؐ;l|΍jhEZnEyMJlźkНk{r%V(R-"цcQ IT^oQ+a@_P]8fn"%O2|5Yj#`8*lrϷS؈u2s5EI8)Mj9ARr^GYi`m ѩW Σ$'Q xVU$mBq X(l0~!E+RK۶]7o?\8ɊTnT!Yߏ"o/RB5kuF@sy&fYvܫjh':$"[WiGR&^# C o``>PN FaQ ;(~ђDCcƁ j$K];#xIP{'d AJNT<-3ntǞߖhŌhϐ*|$X|% rtaRP~waGmAATsUTxqT~ԀL W)CxHgMI{2)yk",⚸˰\,섅.m5F)g!{y=ش]Zd(mDb~,,IyQjtQ( (^|-h2qI꤭6Nusv/J\|9Q}N^3}fqS>n-Yx $_;pmK1E3F*DGS/)l]nMnXG[z1<>3y'oQPqȏoQ] (OQ$?G5b  ^JU{A  0%SgȲB3ڿM$7AQh͌FVmJ- u%i\YLOBdwP V2dE&f[۽D4nI$QcК?gWA:U"4/av/ Q0G(๢_GjHoz-[D_xV Mj_Yɋt~:g GekVBhT-9*L*1 <8/IAbx7b|yV?"&?4/<ٹJ];d13PnɈHl:J^^@.ݸk*!7UZWRأqi (0d3Zݥk_mfڷPE2I ZgZK3z.Nr ( i2;秙;\U;a*̆t,4:1Z^Dg %7~!S~+ "CQսQ'𪕣 ߶$O:TOzK’S+$: r}F(&XPY4 >хϝ{(W S2esM:Q7dB<@ݝ ;6h3E尴%/|68LԩU|AQ!It4&?3t@TvAߖ A`,A"ĈgM@$g]:-s[qpj=E&1[DCe4$n-4^M c*j2D÷g]9tnrH B4@/;vJOum *!"_$uR#B$exL(ZYFoE#dDFPUk~3pFu~(VljDBUc@TV`CՍ. g;iE"V,bPL~rLy  - `8N[w"ƝF0~Ufꝷݰ" !uKu :y}@J:zJgTީB!K?'?c-/EyڃfMS)f^A:ҋP@u>\y5(F  Ji] -œto**y4)Yx.&-YJMYf J=՞?eRH؎:L^j (sJC3$ SNO/F|^ _ \g=dYJnGD!M0K>`15PRf=왂k*h[4;أx2$}]WdXl該)5?1GI:.u< qxEqJXdP)._$jBPq" fQY '8jm[ % +4 L1FL&}ڠRRp{ 8P`^VdBKp2d`lF6FI4}6`G9[Ţ3?@ۋw 6usq4C(ݶڗ5.MGDPL2]tkG{cQtA`.߭MBݚ[UРgmp#,*W=*5Fh@p-JۭqeVwQqdOD䫮;LՔDtIbf ǹ[˙RL\g9\hGkD"A 㛜(~5El, ޘ]EU"FFe% :MN=$3bhZձb[Iaz{r+x$ KN4@qIVzz2\+|GTXɱKcOB|X1 yLPW]QժNaȂ6F)r$\q(YAi /a4V%\gq;AChЍT9:\I{o(NV1QPL?V^!۽CՃ B8 Tر$^yAh_Y`LadliኺDf0QAjݣ  pq1!P .+Z_`X] ezz WA|7ID!|U36B\hd³, yPK QKؠê\\](9"WA?c=xC5i**hRjE+$ ׯ|1FN;AƏa b"4oN9r@]X@pB>VXo$L@ST!$ a *"*r vwfѓHMq ('H~ *a6[P( >D6@SbXD^w])Pm6K=QAB?*ߝG/s]<[K9[ j 0Cz-{HREw&Gg^{k፧Ґ; /tezrd;С| |1.ɻBh^7btXҨjDvOV"L'Tta:UBu7Bš` ``n $ILPeޒKZ  Z[-kzh* OVW ů@F|/U(jZIv^TA2A0.z` 4&6u X'6+{P^7^xRPR嚾"H Zhdc m7Ck49r#ACocQ%R-FUt+M"G)"E’2Y %lr$=IŸ@#Ca7qV&rv@`*X3"V4\~tOnj+ظO BJ!Pj'uQ-x)/,V \#};tKd (æGE^%H &alk9֑zl tG3蘲ǔn.:4gjH½NڅR7 ɽ+}xW4M_uG{DJAcf\¯!@F'Hl*r4p1|h7ҾC&:`PUP#ga,bR[3yǭUxY`$&ʤ]6qj3Չ{>A˒ڪQR)9sT2‘: W0<"PbS gN/9Q-²GJIjr%D˃ e>,bG.goH;F즂$+s`Ƞ6O]Q/tAz g mneh9ЪmmP1/zE ='e•wʸ>U5DB~s#M25VjwxFlVr " {9av]mJ ,h1ΛpjNu}ƎJ ҈C3T[6_u"#oպkN!T-As݀# c߉#S{TuhO9@T @UqEEEIm eb)7UŠ` o_y@b71Vy4XdE0@{m[=99PX bTO7yp,G*E17`|T_eIcch@+3a kM 6c":' c`4]0sb(n Utxk L3@qe$` 4L^ uQť򛨑"%#ì_k?Z4M؟T>, A3}֚cw(휃hQe?+w osӳ""PjJdB{A T9$i2Kz4ͼ %-%`.S"Ѣv%ApK$S5TYsAqB86q>vU^LE^d1`WU5F݈2Z"pP277w"XYvrΩ"} WwVY'2O3ѕܳDCc myYlU ʙ$o2Xå!Z|>JʴZky^dTrpz0lg9Q3D5Ecinܨo9*ہҀLlLx$E /SաOB:fD0 S/_s[o'h:W^T:P;jcCadXB-886ET"6od-Ѥ"BM\_{FR\Afus}TupڷU^<*_{ޅeW7_VMʡdnm`X  ZU3RzRbEԍ2W,.]p eOj 6@dW`jFMJc0Q[r1w`梣R2!0[\D2:4Hau) bL5$࿀ҠQov=*¶h[]{nNOjQZսSf^ȱ ,T}CA:XW#J$E3f@Kџޏ|r~ߵHmq$x_8ޒjG5M)<68W5.H@k'M̋R^)["ޣ#"ǭ1=Ζ(@3shkRAwA$s".ȣձ򸢪:U] ~\ֹUV&eSWK-tCrfcwjmPR1yz`eD Po9ҋe;{!ʹ,mF~fMBGTG{eD6bxtxЀ2MR?ҙH - $+F6!XYQYxPu{EQJр%Wg[͈^"x`;MI:hu9I,)麎Tmέ#ȴ~\ҿ6);0 A4+:{"4 BL`#!OY X ZaA\$裏;҂IEED 15AU4 $}^w"M%VKJҿ P Al(' QU9E Ih8%/rb.P"SvjFAbjR$ŬX36qBpD] %mFx!6:`r>y–ԫD%G2#<(ؔNSbx1xyq걡OH G9K:F{EX>L!(98*n7Ƿ"C@=2({6p@p9'Aq eL[}nb0szv#]z* G],C ڵ-hMA:|(K*h=e ʘAk#֤*4C.&` R4F,j)(o,6 i3AҠ<$*YnL M`ݪ0|1U7GS:! vlY"({dئD53PF8 )LYҪw"@ Ѱ 41\h3Ð]AG'&BxM# ΏbǾ#=Jۈjr)9ݨ#Rf?D [ !IJ 䥍G JDBiE8pBHQ ;aR2a*GG,ˇ#*r!u;eG_jQQDӋaQsh" 9.P9ەCkÄ8brɑpJqJ䨉E-|=T pu #BA:q14aZ)ׄXn {@:W`7vQw\3C1[S'͞@`_>h65ezN>D`2{ujTny`ILMp)R[GJlX PpkjC*wo8ϱ00EK2,0k؀[ %* *+q8;5zmAغ* A50#+UAT YT#{k& a7" w.Ja V$Ђ[ZQ^ŨH,ı2oP7 мʿqjL)s50ҁϗ Bߓ''{.zk=ެ-OtsAoQ,L'6>[7+{@^EM.($*jz6>!Sg"R iAV}& 7wڦ9QsRld\/}|W83PDT鮆D $ QqWr;`1#oWqÿbQ 7FS8쎲esܿY`I Pa%G}a%(0ܾQY8BP&lGL!+ gm3I,߲Q(z0@q"mPdDj >ȉzLoibN( 8E-b#xgY>#=J)D5KEϡ,>yǔUd}Pt,ir+BbR!gBRZzD'|N#3kZ,F m.`rl6:*e}w1Ujju-BL)ȅcm0alQx-b/gpb' R̲60%kM+< ތ cxx^(*DKΌa+ oJlD1}L7OHβt\nejS;_3jӴ'j@pP3\caK)>Q[Q{$P d4[')~Q:qRQv!0 fj8QHJ|˔ܕJSbvưzH,|bҗND3vPʢQ$!$"}Uw;.#]n=Ȟ(1g~!a[{gpD;{H}wVq#&<$&!yϑ> o;mKb2G$uc8P/FBE|H[a\/TmEH"m %QGmULM(XYk /Z7%*ި66Sȅ(خɨy8iZqd_“В<@/lyxrbfJ^r8܌_V'a;VV78Xj%@eRXWyIQ!fmd`{Q| 8F.kT@H"l^\>Hswl2!P]YB<8K P'l&棈:BJ2̔e7c}1#^4j2pd:(7Q?s' Z[]7:%uAT--g!N7 ptZ?)> k=]"ޚ k|¬e=P\FO#9Bv wӽ~I)8mwY^gvڲ^s+C޸3bPf#7J*"/M@5T^ 0 ~,pAo+r .Ѡ(5x/pʁ%+ΣD^ *8h1"AoX Yyh/8n|[@fc3֫8[Ƴ JX3&nϋZS [W@pkW E/ lyW]yFO.΃պ@+1q; nQoP6$6\*I?x x3e|M욂!bd',E"mlj[(p7AG3Js%*ZՐ9ebTpݷ(%+-fQT/۴J(Bɱc~ij*6:s{_'fb?A;#nErd-+g8Dmgu =*XMA+N9qߝ]_MAO{`NXͭE N6m~XvvE<^m.Z(G,^U?΂m͍^FmR% @̈_!YkD[QQk HxW Df$V;#BmdAo`:hSEw/Q[Wdc\L0%om`d)/?]%ƋR2wV<'W"`Q"6Px8 jR- g`X6<2 F^j7ͣ(QC SApFz(OjRG AǭY8mm$zJwplϫWUYۆ/F3Ug;hsAƏ/DRKVu{OVrjۙr/XA-ZY߾~ZX^|$n~t#}l&o8df1FFE!"YÕ.sg}}}Jo}߾Kkޣ<=ZQ-5l6,yTQa.xFT82^,|T t3뢶F; S|S/򯩀\ Hd}2iZ5jU}J>@1UJVY,ޡ-Uz:|=Vo9Ck~r%(T~YֹRv;=`Վdģ4/aܦl8hiF ">@Q%!ӕs=E*t)\ *5 GL"'a>{Saų }Ѷ-CUN9 Vo@ q{ѱED󡏻PL䊾,]coU(>oiKϿH<͈4>ФtdIw;Wbr%2C T`)%4TOy1F^VlviDSbSc ?n}gzKa8{}D:H#M^ۿ=+ Wr-xwlXf8o{03h_ޞz~XOsUTFZ(F8(Th1ר2k{G羹¡R *Mĝ4_ZG]U鵪DDeaqbb#M]G-˯d6|"jx? bT&k ":j /\L#u=[;hԫerۄyDZe8^5&>͐N/ApiXr\pC 74ydoJ›RO lJI>Gt~\`=AF|U8/AIt"2PzSX$"Yq82s5{ͮ RDlW⯈+UB#GWO0lUydO+ߓ 6AvѴZ}[ax=}EY\+! P @ʿC-倹 S(+A e=I7'@y|YOqV* !Sj= 7==J\NW Ƣ}C:%{B8%.P0׈!2U!zWE[ (LEu<`By#izjwt)9J?S'S. a|x]r8f`0<GXxD]j 4CS$<:'i T!GHϘJ}CDϩik{VB@>?S"Rx`?L槅-"L[dHWÚq# UVk;O i?t|)qLz߁X7?G˒\IKf\|@@ܼ; b7e/qoV?%xPt6}exɯp*;ElyݔΒyՆ"Sn!; M4yUKS9֤P>Ltv.Վ3}}鳮0 / jsV&t Qׇ`xg HrZ{^~e; ܔ&.^uLÀl t#Wag^^ hgS(<ɲ_V_bC{lW} ϐא`ȡO<+boUh?U;/<<:lOӓ73:8CjGlFyw];Iž92Xy|V]w>`I]9NYj4xʵmjReg]=?}fo-v_} *8`\Yp'gP"e*79|q478]+BSv<3g:ׅ:FǥDdxRmjzn:7fAܠX&ei#>|TqLk易H݊1Ͼx^(}˜a\]>xMtXjbaXmœ6}#h5]t˼)_xt~QǀtG~$Xtgmg>>KN禌c?}T)ƭÃ/w(ӠD<`~ٱqJ= 4^:?}mᄊ}W~?}BHӧNSN:tttttttttttttӧN::::=:tӧGON:t:::tӣ4ӧN:m7ӧN:ttQN:tӧN:t6N:tӧN:tӧN:tӧN-JSN=:tIjtN:ztӧN:tӫӧN:tӧN:ztӥ,ӧN:tӧN:tDz:tӧN6MӧN:tӧNҔӣӧN:t%:tӧONSN4ӧN:tӧN::tӧN:tӧJhӧ_N:tD:tӧN:::ttttttӧNN=:=::::tӧӣGGN;00dcP00dcQwXE_yk1<vEy݌*>{+K[D)c ?uH5n߱k?6buV*oOEݯ{xT^^zZɿo00dc3#Rq}]穑}O4^zLSG0^HP3b}O;9T5I 1UXh@;־ jP>( [emnů>P G\֭Rb9I\'{D/6w9k>>}I 63@!03Y,q.082 C@fq73SpfX$QƙI:u13О jqWJ UΧSa0FqMbR«[h1򿍵FS6?Ec:`Iw͓ ` sVϾOp\[  j}f| }иL7> S/dm䅰7uNfDfkYsZu B|kdAuP|b' @ȁӽ FN8Xtl!:̵#2ȍҰ0#EAne V% "Lx ˜̢DjP!qgRJUc Ir ^?ǯ%7 iPD}Lr~x ? "RcL# %\`Ps X֡ї?ߤL7No(̗,.5:^>ϗ@;{Tcq'dOOz|g  H#,!p)Reo [2 W#&J_dS<<b@aO+N*V٘xl[w'Fl/DzI.s]ȧNk+!0Ҟ}}C ە+t-0zv7  ֩Yb3u C%@"Q$ U 1.:Jިa6+N¸0~^.sEsBL.xmNilU8Y|G@IOlI*!k16(ŐD<{š@&+@X09 k)@~Exl\!Aח$-u!8gT&Vw(+F̼IR3]0,zq'c'|uLDA#- ;ոD(zx~]??_G^0:~U~]K8|  tyoibfx JXx0{xDϫb;2b`" _X€OйX2:;qH/uT&2tjMTOMQ'~!10p` *܃k 3T;O +l aK;:8_414}Ϫр1"M.RDdlzxe[oRX 6)[ `0[ncINH*4ImbiYq(BoU*V| E´ǰރÕ"\^,(HDrxF@חUjp2]qbEV"4@n*gAKEvAn8#Z*"m,:ے-yӀVڃA> R j6K,̜9jIԕc^BhEG%YsP*0 agNk80Un~kZk f=8L`0i5_XcHρRU$ƿܔLiåsb)Q˜#)lyxq1(-h3}hS0Rp)PdѪSsqi8S VF}35:_gxBS3)dKC'. G%_U3I:`% eOEWe!jQzsT/½H`(}h"Pp R__?Ya-F!75Bzj@بpAL=vj4˟76b 6ɋ/֪O7L;Cjޅ# ah|yHFSbĔSA4)јS jvO1ϓoX(Xh&?).u#-JI[aH<979-Heg?x[20 ] nw٘eGXx?lxd]Qꢎ7y xoI'o}M-)˨A sOk<&jO늤K}>*(͏T$ 1X"ew0m%D`+y2Ld"( V1Vm"148,ã@ShUj=S"dfN<)o:}\V32jЏOPʲAC1../6c6wmhjl|qhy?+!Zl|,j$@BȣJ„$ "k'C!r4 <8" ʥ3܄&0h k{f}z.ȋ"k!I16 [o>l<Ρ"RN ǁG[0bH1P2xa/t %j %Q]$:Hn ra '*&!rZrÇN0U9Φ{GzygT˰4$<v$Ni_h`RVi}RE mwPH cI!H26(od7 ^,el[,1D?鸹tVm8\3 `)QjI,Th>7?O>"mDaQ_'IJ%YU62t,k2{W".. 62m@B4"*5 V}N'~+k^Q; y|GRjȜj:pG[|`eG/}!ZDbCH'[61-_gG\ ãT9y+Tx+@WϏb[Oy߽l2o˝Ԅ!L~a}JWj%l$WN1dݲvpR$nVDTOܽ%Y%wn܋~o &*^2*cedX6=r3:+gS ql;}QM|f36`&WqLL`(v)7gkX@4Zՠ4)u *}ϐ'JbWV_`p%H:ak?c e:?"m~ȳ9CMt;lo}^5ђ3SnɗhyL,:A fѢ=L Xx)-SȠlm q-wB ۧN۹HxGb7$mU?o'5g 6R}?C|4i1HoF #S`LN `\)OSz_(XNN+/UmE&RDs4$lm^ r.leż~NAN@)a+gp})6ruEk%:GƁr-hې'}ooQ/H"p"7+9"@,[yo^۳gMKƶA|T B7}xUx.r\@b酄N23Ty=bb#Ծ2^EYQR`S_3<3 &٪ 6WҨN+¹(".tHYFrdKaC˜a[t+~&p(،ߛ[ \m }hs,`xz-[xm"w0z6iUn?a ~: `?R?9D|<*Dvߏ0Vx$a+{?˖1RSKnG{*99PtbD*f^0X Y;u @h~,~鸺#m/4ǖbh*$ڄ[ݼCŸ/Z2ʹT.Yr6 >iI^W=MePO<ȕL9U/FKhB3@t$1 b E)htcJ7 0>Z<Tp뱳LiUoڎVK06QtGxfNt,SqC_h@wZ, `uUޚ;gҌ>aS2W9kk5:%d 0̢T$p-7Q|iI 2VMP.C b)!\ҿZx*U욊Bm8(e~9ҡ*"٘7k FGV8'i&c#y&d!lڿ hK 6j#^~"-nr<:Z7PN ~ZBr1R a*%z`oM>.}d9 r?OR0Ao%o7ӲU_mJ&N`@|f@ː:NmSC_- !R œ0{wUH\#]m|Gnt/G/ heIrDzB ~/ fYք҉ DbUT~:T?ZcliB?b}Kg*p}"Y/@QQ,PS aptrea J;#wmo?@!7e9=/E92)2DZpr@^fcATh*2Tz|J #W>'V=Dgj $l蕒W\uZ;'a6:QGU2OOHn zt`0 YIbP^΁吜p}֔TJFrŻampeepI35~KcT^@6 sP.>OUSj FTQ@1?6{yޭ rǰ>n"^dگ4[gCVv^H ͬt ;ѐ}6`_Zh"7|Ҁ' ff/)N:U/RU*a^tD=?ՠ9ph) ]9HuD5Bx0I\sU#gL+)1Qwnd7`:bvt?A h^^8Փ{w'VY4jmL^2<jG]s: ;~[A7۞j$VD h0b >E| fU7b oV}ydSpÀBf.U!瘗zv%D5' |bHR=!:3zKd^h1s:ԏW5&4Lvj233d.T q vuZTK|FG>X8}Vzy7P._u0<*k.\N 77xB9:C=2w*[T0OP3@V.P\8GˈR bE8$ `{L;ΓR6 |0 vϵE^5*ƞ .()@ ]-Z>(f [t|QiC:HMC`g=!Vmt OҠdѥY:`\!?VI (Dtp> uZOi&+%U)/J{SAzh:k|93CﶦL ǿD)0@,φzɪ3'Kqr嵜L6 zwIc7ʧ& A I|37ŋ\..ʕQ١ _d&w) J. Wl_K;`)ħ 5'&o zJ#HuP7V#Vqp Jb>Qva#IE$~]z }?X khYU2_rF ů: X2?~%j$D0\?T ~S nɸM~CƥF8Ca{mUk\1#".U"5=kX٨Z&vUP,ڄͰs,6pAQ/aj݇0G ʲb:--o$((Ug&qP|&" (y F0 ]Ƌ揦\I/ޫUϴހ(qOq=K Fz\9g/nEґ#N+hP:^xZ|ʊ < k1NxS|X;mq:Z4J1:P5m'43޾|ϖ6PV>:UVd/H\ ~R®6uƢZ癷'iLآ.D֗4bt 3׉.Ug[`Fsv5\P$h`TqR.}VyNM@XR+` _s _}:ok1-Ctttttttttz:ttz:hڄ/],"o:tѱNGG[,ZmE88sӧӣ Z΀ʱXbHFwG рɛF ޕq@r i'` (li 0ǿYrXFI50u|DR8d2&"r1hBC)K N$I.03"֠j$ 4Z{rF"baFG%>/3L3yH?*ĄfJ1;5a,t x qg*Hȩ :LHFb)+nE|%4 0mSu-b*%㰝9s&ٰԎ~2 Ttp zPȌpOc 6eyל)NP-&$pnh!6 N<W35SRp*FFP(>(*mDqPtqp9XOY N}~x !9HI ۧ->hX+ *,6ů>l x3S$^zj+n =6|&-zvJbpill8 /GZ7G6&z*߶qX|5>vB?rQu0䌊Pyەd_N:&RjQtnjs:!:>( u6`>_tc1(R%xj=x56SZ/bQ*fa]DɓeS.NHHxh!H&aYEFĩ9CyC?F}=:ts .#._noMh))3HdBy-{x8gX2cSvTM ,Pֵ)>Cf Eơ\)_Ybūoga;c%&@^P:k{0uup)Qa'}: p 9MVf # #<8,&àZC+)֏] J&|꺩W7xNN .Gaq1EN::tttC]]:>0;|_GԝBN0kؿtt⡬!!ij?d?IP00dcRq00dcSk7߿o{$t{@U<3 zI|88R_N0P#SvL&vK bVz[8wF;&:퇂Ηj>~v}6N]*=Ny44G^pLS#ךkigAa5Qҟ>'q\2p ;%!L".up[}dϾ}שּA  Jզy!G.#aƜX0^p v} o]bgצ v6dF;V@᭩xG3^#ر C0phvL7FcC겊\: SMvTǞ 1UtbNA(J..]X?l ^'90N|ei6tnδ&Cx rڤԜ8};~' a׍ep>|:OYGH6)-Ad hi9x3Pf*;Ǹ)l !p8ʋx.;4Aziz쥜zD-(D|aJa]X=KK$>u5϶^) FEH[׎r~ F}^%5 #k9?t; U}Ƣ0яg Nk>Qx# 9 b1xěu):1zou:n8 Is6H$WzFFbXWs0}F^< ġ(K}/,9 FƭhKy^ k,uKu X\Sh0d@%]҂!~W:@,YL^O%gK2 ~SNy*̥b@@ank|rA"t'z2#bs_TnjыXNR&ۙ[$w7׀ȰqVqRtx իm=x@&9XBTV92̈!{aw@Ȕ G51U.V&ǚ[Nm-&>0xo'ʭ(6r3dzLr, f YkƩ UU瞚gL[⁑hñE23]'ROڃ1yv*"E듐N,78-Wu ;@`=![!(Ŕր%.UB$T['SGE' B$T:gP0>Up@XaUإ 3ۈ@y])J$+,#)d[V5wNp%mE-!F5M )|yS'(I|i68 ,8i/j50Zxl, ``i곅V' 0QzH8nKCBƃ7[q;+[j2y3&+ *.ՄbJ+NÙXz *>Ã%>aQ\LXhtxpaP^*8͵Sa:dOG1ö+%`i:xQKZ:F#GXy13|E ^G? ]b3H6?5H"Εᣃi[{:x h t̾O+DbC֏zMOQ ap*ڤǼbvV${T^8W`F6mN|2NCR9\{ѢK-C=ˡď {U3U<=: i•5#BeBl+ks5}HI\=uB<"1 lYQFxNn[جHtd0{Hj#8IPKEf]b@^ (e*;2m~ fqFDB"Hɽ5›ay׸_yzDU:D|Ialqt T)m9T͈b,DazW89l*jpxXS{{eW>R)ܫwyk6l [qY@VRZQ?TpKb>r( ܮ*Zٳ:4k $oKӄeKD.D30` TF=!FGenco{S@&/Z+( d C!`v>@jiB]`>#Dcd: l_ZDƔdcDZΣ4bDtפqc0tu{6gRX| IT[`툑@q!q?P=J2pp.xCQ@I:BK7`br &^3u```jb7$o]D5TaG]gF幡3ʠCU%y(.p詗gH؏ ؙx.AOxanjCqwQ̕ >lI*cncOb">eCgx|] -1 d Eӽ7dBS;m8@(`EgvGmDD4P 9B5=;^.,t_a lbqMCV W[,ވ-Q,YP?{/|)!H@+ntعڑK cogQ(q_XVuSi9*!y Bt B̘H{v"4DZ^pQwPeyHR$p=M D";JF;v~y ċϽRg #e궍+w0խ{#_蘸ȎDS]QdvPBUF`T)uJ Y¥C슥u!=f^#S]T7?#14d b9cm>,˜qojCsL0GMqJtvyȟ t/Gcc'dv8 ,nt#SKrM$3(hF-5 onjfWw2]\+z8Ux72\}+p#H3O 2a# wR%x6'In[YAc_Lo"%"EEQ^$OʫିN4UΛ7/$"Sjd IrbX㩩d •!{C?\us6<.b}{4<xj 16%vk+R1 FGS8K4<C?z쇫E6{Dx0 \G`FvE/@~ 1XdOpSna $>k%bh z塱~;a9ˠMp O sBԕCNQ%[@`3'K0nyݭ1)>pcfz*Ӵq#}V?2%֥:Hag/@{,ӡ֒`f&oCD80C]'okL)ChӧGNpR36 7:q"tttttttttttt=UG [ =,= KSVF<^}ϪV{D{=ț" p*6 P qruJzHJ A;3g#ӡ1drfH0!zN${+EN0ȸ \Xj|OaB OA<u!SW[gu!a2$]Ci 1 NvOHSKH0\ O/`=^|T 0 xgMBWԖ ?iZIĖe8( aFF('0oJ$M tvl"g#'iP%X`Ib)M61Bi18*j D(DV f|2m |`<{!ާ%Lj!SR^ Ş/<Hh2pRք\Z[$I@BϽIsPraxHjʚڇCЛXS(e+yxcpna7@BXn`a75Z=$7GGG"g-ADР1KԄ6&-bd, D5*tP1 XR l$cyS] Qb0cYH10ߑ11#l>GGTa q9+GŁTN T!?H0ӥaXLtA(d(04q0oOj(`Ɋ>!'PC$hefx).! #0`),JUETtxI&%yOFzE=4f&U6| "cĀ-O>uHjM*U7EҦxMi"=(EZ:::=L\|<a)qΕ.jgNȢޏDie? _lM:>d΢,xU00dcSk00dc"Te5>}E 04!n.}V1*r։N<4p)oy+Z11'i~W=NT(e=nlSE+o)7e=:ʥ=%cUaOZ(_Ə޴x)ʥ%ψme\`)_&fЏ}7ᄊNKub[3ca8Mi ƛ\aM4› }xO5HYOdfOXQ0ϯv]LsH-&>h)Q,2kP Zy5wܜx9-ͩ SPSﷹgEO#z|HWlUϼt:e2f#WoHOF03bi iwN!8)̩f cUDxMOqSΓa:VO>0S@x+ tKžHxIՆ6[IR6aM >}QP}Ft\٧X_2@) 0}ZإsS,K5@՟^#ˡzQwT^lLY_+csvMH#6rmi(Fѧ"  ;)%x0< }# Օ^]s3ZPfYquQ>w\-oJ+궙BEj+e=M^CS\?V\Y(鷟 hѷ* ׇ֢3MA=MVJ,!M{e0ɞa&d^>Υ% 㭜ЧcP!n5Iw=a"0n1sANqϴ-F&#Dw%\-&hQpSFqʯL("ƽ }EjBJF8BxI ~2аC =bxI334AL&;]c@MHB$${[z{oHF6SÑNRtV!gqm8ĭ2FF&Š$)\q>0?8̑>mlu/% fUrDPG=T`: U<A޵6; XPt'h@fcBg!MUlu}CMi?ڦIYVGzIN[fΪ_zMVXˀ^z$z\ÁMnI?P83C6Ո5&QkՇryW+²@.osN̋uD߿0i(6/O)`N4:89O:V]J#Q0ϡ)j"D|g(LJ#== f1]d%${9όEU"OVyE#)Z]_DjO"Oj5E@ipBe}-ñ Xʬt2>]ρo7GC 'VMZLHfAUv^IJ@&^0ؘ)}d([f'JtFIw_l?1oK@pSEI%џsgJp(#LmDdsk@[騸"|geM 6RA$0SQ﷥_"MǞxxÑAwj%j8"kwFXBD/$L0 +;A&G/%ii[;Jdʖ+"3zB4Q"Mj3$i%Y\Q KLm>|y+*F 2fSuO~W$Q=@hacw vW+ b.)؍r9$=*FmȏFF#Fb[t6aL$N[y`7eb6 f.kl{t?41 ~N0#)kD)YTKW\S0tu6`1xQ ӦNEZ 6|u( tGVo1jF8unjS$+ؿ]%`QхL?#,r*H+-7\pS$M]r` @(G)2~>K0UJK[^RVjU [QD'BT#)yI+iΏ߁h*1>M0 J<Ul9o6ڞC -%֎ _)z|,mry[0-c`U~5}bv [DJ @v K֌0J fEFxE`j)cX#׼)bg#ȡ䐾f$b`#vIM:*hFAM{dX=%Rd,M&;vW$5Pp,8)xގN$lD1D7Y-' $gBwICZ%E>"WԩNf ?@rTC\FIZd 0D! `$PӖ%  M1yą"dQ~d Sԡ*ⵅ ٕOh8i~ܿtr،a F [9/n"e4M&Y0ᐦʣa|a5NY#zh1.qL廓@lףhv- $KBУeϫV`d4z$JX3ΣNuX?R_,ҔHODCGT`)^]~#gڌ]m ;74dwM.v YIC | F%#`wʉ-(.Qs O|)S0AcoW>> z-k +Ro{ iE?f6:c=nD %Jć/tVJٲj}U22 iJ!aE qbaK >ޓ!lP#e/L1e$8G"'es6"C;MXD[`*M0L0vX _HL3!%O8njVţ4Aub 'brw-$wEqL[00t~MJe u@mӛZ x)SI(Vȭ& ̝ BaeOke ƔUo]*3UrN6t)z֣qs_մ F[U,SYYݳ790 vV_GYz:zLA.hAG-lax1Pdjz8ܗXD"}G |TQi/@sy>:T,J8"=sقhY>ƛgjaZ%2kSyB)M.r;F#byR^EDS$k`F˦iI{ޛRS8EGT>tpGbXqka<+$R I ⋸7 ` kU߭klAa(̆gXްyJlv׀ե| YPScf4Qx;D|cPӖ tMڻ p\0 BOP+8ukC#T-c^1Q?7q(SJjfVF=ɷg荌XBhBsMn(qUi&G8 )[Ζ䅫..mgWq+kă"Hm6_ mU$XCd`X$cJ䘖mpFԩ~ѕQOG^ccMWO8%ӁL#؅ 詐J=hG}aDžSC6zBL@0H4p6$Ǒ8e"L\$WT U0.ֶv,0ľbu AgEJONG[;CVjD{͞ DtJU>MuPT]Tώ451$-=}d O=IN{{[ D!o2Kf`3&(NdVт#s{a !tFg#1l 5LB8}N6J4\a &>=%#DHB "k U@K8*/h_aW4˜^<8EmaT^] š%<_`Lܾm)tng.7oXd?h:Lz5* dqrݬ6z\W41s{7Yko_{B<떶+ N?΅ ~_L5K7-u<46쾃ʜ|ǹ"O-k )YHS=0$vEtP_{E%iHݣ[I !KpǜF24 YW?1@-8B\~8T{[pShaӓI{B@l7YH0]!3$aFםvw+,xqO'Pa<_ŷF58K >J±xZsJ!r@q*a$-jܴ`-QHs{{#q0N$Httٹ#h6Ћ,zT& S^^Zh t4,X aPXHap83!5#:B<^#0$=.l ctҌQ " Xэ6kbapz#:yԦv³0agL8Li/89=‰Ջ6pW66P1' l')ﺞW_h{wt:",/R}l薢WŽ`$ً͉FfS`l3qȠ8W`$TA=m >>PYTab%C3G{xiݬvsS4<>6Ao6*:;ő24V*PHc5gY&=ttPH)ŻPWC2_dBJ@#@ZWaT g㩅b-X':tӧN:tӧN:tӧN:tӣӧN:tӧN:tӧN:ztӧN6OӧN:tӧN:tӧN/dӧN:tӧN:tӧN::tӧN:ttӧN:ztӣӧN:tӧGN::tӧN=:tӧN:tӥ)jtӧJRӧGN=:tӧN:tzt00dcTe00dcU_ʮp5}X* {dRQvE G=8TIBN3`MZBY[E#\juI#5("sbnu(Vu&B?ˍFchVa*DA>`h@cI<>0yw@p<{K]>_qJm^kG$!Sxq.n$dq)hh>kzϏ/7+<=b4"D Uz&8)ƢJBFZB ›AO> )6 ۨp)D2ʀȩbfi`.'~3uTeq(Sx V4Z$ސ!5OqoϬz==7#DV4C⩂RjSO|kuAZ;Z1gGlh<=-i-Zp\,:hal)gγ>Ƅs8TQg(]hE] I(s%$Eyᖉ0EǀHQv575@v}_7xeP!C6bt̀bs$JEf!04T$ecNlN Vq/xN &/9OM O&;k*W'y3gNbx`I|qˮm t)lYr. r)I wyvIG@sME )PIXW.jSvyT TG>!NӔ"ETst֟ ohÄ1agCLudWSX qD#|mL >i7__pBDƉdR#4ˀ#ڌ f.pPnpe 7RE0_lz, O{t)D:&TLH]$?F#rӷvT=slw-b{D 1_g8^ZocRVY~l "h9'PRT'(aD#0 {›a13N3.ݽƂK#wP"1Y \RPb =:Qv 1{`$)Π$/; ׅf{&$# tJ_x~2TNG Fc0, lDEZZ#>D>G79K| ۀ`| 25wbKJRB:XPU|u5ݍNgV6&U+ҁv5պ460UU0!vITݬﷀg%If/Xje$ze<}Pz}K4pB.BU o".U!dSja}Z)Z'sptY Fc;4c2GU["v [6oGXSЌS#+g@a%^l+) fU~(P Wnqo{u/ž^^%@}CL $$XT&^_B>/֑%idG3- {j:Y?a6l&ʥ/Hx!L 9턃6py|Ցp# wjS=ggF^hit4C?T-Ds Hw 0ڙ~q$XRx)_mͧM shN3օWGuHYU #|B31b+ᑓTjc\.{›%h;Է 8 쀽 "^!ɟ c4gIƵd!M:kI?VA1+ŸV jycT^1pb'`"P}woygjmY7Hf/Zz)Y)1F?-ۺk+I_s}}; $N9ƘXPSeUkmNP9`egC02T$7^0& 'j@/d'/Ru qI:"k'ױbV-`H1"$^Өש"p*cI ńۉOJgTY ?#;B%tj pܴqLUJj(ǪWj{3 Xj(9-wH +l' )q8Ö_xOqzQ{oQp*QڢΛ {9+VQDxwpEi ]pGD{,[XVb rƏg;G/3j[|}B5j[.)ǭ=!i8 h EMp](#g̍Bf'v+o"XA!Y8S%hDԑC4jc>˄2z3+*5RjVZEr4+4[uLĥB_hF6Mu AhР(TL $0 " aģ~goD!]Np[NF+tPbTci !.<2Rw3zЉfr)f.76nzEȾ Z 8\P׿@XF31kB&Q } @/ea9l/=L!5BKyH^a \ؗjT߄/VTDgD⣡HN%`1dp(I;X4(Xp.R @^ր\%)V.$\fv  >j؎d" .Qpn$yͨ [-Ny>5QldwNSNA.DFoRaMX;@> Nec8Sg7*WG;s!,xSt/"47hs0D4lYo h~X˓͐ҖtaU\3dzX`i:ߗ P$0S?X&oM qI*\O[8fAƂmViX,whtyؐN |3Ǟkؙdžhû? X)$Q ``hLTUR3|7cS:(;R;MEo_pBMFfL\uӕZGgI:,3aiYaZs3ÕpO aDlQ q0s8Y4k% #L(:L5;EL.:#4rϓu~OF6mfYӖdMD4 AhTB#%FL4De Nwѥ;Kg>h)$U3 <);P lF,#ؼ+7#r~TZ- N s@h/Nᕓ erf'’t%Cg›;xhI] /#`1m_"xu"Jk$Da>0큢۷h< 8j,:c'bye!rsC8c)AlIb0=`첕:qbKSFBձإ@5&Q ºV0*>ɒ/*⦋P|AL(ƳKö(\?{ǪZCG}1ҵ<)^R %dSF1xDɑ'ޖVҬ,;#A@h˜,^D##47Ʊa jtE.Cn:, Aq8 ch$&V}9(xl& `/T_Pq_UCM=?zf: 7M![", %oS 8o "ԥx-_>0PKǒ`tƧ]XS-Խ%F)erryhBApD#8\,mnexŊWEtЍoZZkSqhdxSv7?"AO۟ArDZ5֚aL-eUS7Tݬ;Xr|fkMjp #Hr4H,{QVm8rط cA}ˍ"D?ÁMĽ{19m*ux z+Hþ=mHl)Q?odT8r0Vb67DvID4~8L82Ÿ\'0~D d@d)~9d/L@A0jMhSmmO#Lp gن2ϕBZb{9H] 00\A *{8G/y ׸ P9D MzSNFidw8M|P8ǘMճ'h`or^n,3D7TŲ7 pK?i(͉B`e?5 W?*&A `훣lh)PsYDTe4gɦ]ƗQ* ?lM\To(ßN%" y49N>CL3xyUm MAFTw`2wު*``,<) ` bqcL{ܹ%݈3s :Vlj")0C?86RE^Q ܗuZ9h\2XE5{ !e4<:/s1+a-^nƀhMƉ'C;`8"$V_JI7 t#7Ƌ4o%l!i#[ BX_~#0j)bQjw_CƱ֎/`0\nDwl؈[: TR ak^'&ߣlSeptB`SeF [dVWm Ѱ̨PMv3%bzOi[Ǿ FpϹmג4,bwa} ) 5O8>|yFgpy) q9#ł5 ;5y )S"6E:Jd# xn eC֔"~~ƫ/1|MJ-E:{rȜWy>WÂ1ybbCViyѓsBy>3MQoȺs5^t* Â8"YQ fWu?SA_$9s=oy{0' #& szDn&W^0y„ ;BH=:=) -TDtz:::::=G#GM)?O:::=5M҆R&N?"gӤLΒ:=a GiH 2"CzMR2773(GGO*5-NU#*}'U%0o*$ B"3caZX&:PtTi B>DGԮoU F`dgfTUeqUhH}Y>黅o? gkN5 0̏QHZIFV oș![Td`Tʭ]hG"gC#]jEba\uҍ`V"f$(kFf=\$5J"fiYF6yT'nMҚ 3{tlh.Oc&()C;?^2g٪(7NAETa0~11h] bfd]FR^>V {yPzzhc!h3(q` WXEd8DLt&.u!~MTUb! (yJ?!5O$n"o eLlttM?~8o'8t?`xϼš~00dcU_00dctVYͬ_}gkXZonAc ^+8 (l2?0cE~{Pkˡ0$(2%+S!o\0W2uv6 #>3wt蔨K=@=lR茑|/ݐ] ] |1`&5\Z x(^3aDE:$]$rg 63Q2ǡC^;&aG03{1xˤj' C$%̶CcA_ϼ3ǁόHK:&Nz>W?4G#.'>Ʒ,pL׼pV;8f$K%Ǝ\Pm<#!wրXzNӦn Ǚ4t)U_GQHLT$S J1_Ȋ _;wF`)'I}5"`wwSɂ.8rSI\١ǛdiNL:K 9;iFtu|CK8h/0t+M'˜x}Z-9_sy@Zo{cӮ'yxgnV5 )SpAij>W|2*9I Aڢ?vH'xP-q<(GPޙϙIg4"|2=1\"R f"rAyӎgbr')qn \HPvfsw`>|L4ryH3f7Q8M2l i4Ju909}(:JTU=>&4pw(ʠ>{nϗi`]2.(p_dה p!{%ӂMI%)7*`1R::'p4{99ǥm4h Rk61)яX%*]]71()Fzy?k3x<6&FqIJ'"T+PMGp3Љ0=)5 k^|oys;҂=0X:h~5,OF&wMAynBGbc#,Wd[*S-82|ǹ{[d)#ANj[XV="֍}k2$GEwٷ&g̍{C!qc 0D 1VH+s0dx Tl> =.x2kx%p9"e;0%{tb#jX"W{@ǁFLڥ]]=zzRişM0^wգD(I* 2c]&0w5014)rUvRJ2r1,*?So h)]G%{0iW5rJcD2 2QS ]PɋѳIӈ:@KxEGHLQw<\NP a6i`2,+y#,m>%h}bt%18RTQwއ\ u PU H^%+h2l/Pk0$ii8edVk}rQUED},uNH/ 8.TRȏcnQF~q`o$[U޶ V}:F!I+oc+tr52'V(2D9訯 O8qqƁPǘ=mPxs0p|e!zA tR&ʳFDz<68)~*Dу >pSaƔpÓ29I7 \HjxC%Xm0d&.:U e6A0.FbXAaVM戢Cj?R]u r,P7bڽ# f@MzT{~dan>_<'$l+)gР,gHGFf t\|a]B|೓AaC1 `S? q]M@1F |J`68,"yHe0m;?6pljE:JNXJyp#Rvk՗W Iy(ew"ix:pL(090,Nsh)ͶP9 ,"bz~!(:H q[\QUPX}T* ̥IzHtFVIWF$h)%pGEU~*g`; 9s7!<*5M}ۓup5(,\}0Pܸfq/M*˄OxaP sꬎFh`3 .^[!Q”0?}ۻXY<%U~vGj,s> X aC)r?Osa a q0. 2H Iόޗ&(xsWٸe ^d4#rPC2b)u5zĀL!)rYZmZPҊYJe<M<7 s+'So E$ihP nVuKOp{NpT2ͥ kcSWtH(3JB8< {r`bLxH a%-={c!pX)c J4D E#2ѥ.RN1&tAɹ)hl" <I"z+r<ăшGm&`KJhSi?J5@;xq0紀HW=~ %C(6tRI{vFvw]vk<𚨀 aV{2jqZ^ר֫nw\Lۥ P[|v Q!XYrƴ W퍇fH0A42B*Hѩ;ǴH»ɂ&?Csy3y:,:t=:lуEm]v(6wPL˜Z?D3[l\?nJZᑑukZ=8QO)Y-<xED pXZFL>LEy1BC#KdB{u`ĀF;.P_SՃNĉ]o`zHHXoL3 iۤ׎8g\r]r1P*&=v)@ /s(8\([sVN&'pRo)ds 31\PfWra!"^'ZL-7l\Fq^K[zv0OI֞=.}N5 H[#D72|0@ɧ>H;kX#+GU&eiv&xKBjh#ūh"d ;R =sf8rѐS;@q|g'NQqR ]QRpQ-"Նw D3I꩝ 1h^V20lVFOG.17N$^Js|iRK@q"(VClIxu+K@(&&b,KNi4)j\mba+]rJ$߷mE>+C%e0a'Ч"-FWmBGuqu$u/BA."ؚ4/UɂMVӓS)T=rq Oұd"\5+HHDt'&[PJXʌx(E\1x)"$91+!aU;"?H/2eu$MYy|S6#CACu2BrZ) oQ1UI@ V['L۲z7ʤgś\?zL1L6*& cRfjO+'.]>žy1\#G"?FgH۝@կj_:hEFc'r-مYrҎ0< G/0 e>@?֬\5sGcDPT(IT7lZPlp.M@͔K{cbbEY%HMI)JPMT8^Xlo#[@ղQ(դFl< eb6~'-)KdEMJ=Fh2IQBepA8"Is0S`G0gmкaiN珈1 b~O!J0o2Tvom􏻦{א0_`{HРG`X1 H5 g8B'e\m)-ۚ[{%Z̄mBcO) A`i5 q`9'0/;> xlb:4 $U AxZh0а/OćFz}`$1F9T 546E#P.i".[Mxȳ< Bԫ' ĄA^XZI]U+FNX% l8`Y4\ ;q]Yvs3ha6"ACJl ̥*ޢu^b'!X-Տ-_^YA1SKJ*#̋݃3vU^6@Qo'(z`61"C+C2AV O$ YO# " aa=X,@Wbw'&ƹe鶼F.4wíx<4*Lz&yÔ)jf2b莍kufAj|)ϔM }&= DZ~rd"HXhf)\k݄N2F %2)ܧD!U( \f464zfvqwtI'G ItF7 8#`19-hRO<`)R1Цf4dLI1Df݊[`꘽NyUzpf"Q6LYa 19#1-)#<)s +ƹHDnURIm%ΝFp}av猪//o14>}b pٍP^E e*kX*2@S(c4SeFޝ($9I }6 #}l\ɌX-$Sk2BZApvZ p=/jn5qq(4T/[waj- "Ql%>I}T[!P #v!o耘D"C"4¡v\6xS1+%g뜭_SgI%( }_|K7!a˞TY1I8bL9v&k6BP0ݘ Li~- ˦^$T"ɊU9 RZ#`X 9*R^T\#@J2ߤڲPФI5V 6y,˪5|N"xuS'HrtCNaM"2Fƞ F@i`hNvra<ȍV"&H_kK.H BrI'^1ˀ0Î$NOM +fv1X,pFX=k'3sNal)"wu?EM"dHm:t)a*cl$9^3f>nw_jaˢ67oP:\OжYv83_N8 Hb9=L>muT|߿5>% fW(YHm1Wu.AMD{-׼aiOi>vZ#R arx;TUn*k+=qi 3S͒JҢPw`@)v'W'>ڠpTtP~֤Np5'>A@=#_WD *Җãt@^< I0-R%n) ȍj%؍q ^x M9u'-J;[RKxG^b Z'e24*)%SkN˽ܗ^`#WB3cćW n~:#PD8QW:n㸘dtXmoz/E6ka[`oA2y&g'}e~?+k^ `yLJSšh+=)K(0^2NYή3tcN4Z%׽W:%:<8z0O2|)5خ\O7W 6f@ W.tO |Ú/ CTfXJPFiSr5@8I.T$P4?Q٣9uGlY93zu/*s=S֠&qY #:5bPqRPcQ$mI4Nh@=3K`bqEcQh0]B\ɿlj_|;Q jl7p)U=)甆SavʊRa /ÄQ hB7R2;i|&3fԦ'$ {Ml- ^J`1Ԋކ%ByH8HJ#_ < >۫wp<3EԺ21//kcSz6\頮q1mu%`цR)ǞwC 1(R6CϽ6 /S{>ڇ BAÀS|T,<"w|)L UlaAY(B Qb"l0mf=!T`! xCxQ:]lbsdʘ,nָу0"3ãE۶ 6bV%zۑ,-&]gAMpSW<y##?Ey5Dg,~*UD}5d|ߥ$I 2!LFo{64`X2B./BIӧӥJtӧN:tӧN:tӦ)ӧN'N:t:tӧMO_N6N:tӧN:tӧN:tӧON:tӧN:tӦtӧN'M)ZON:tӧN&ӧN:tӧMDӧN:tӧN:tӧN:tӧN&ӧN6N:tӧN:tӧN:tӧN:tJZ::RN:tӧN:tӧN:tӧN:tӥӧN:tӧN:tӧN:tӧN:tl:tӧN:tӧN:tӧN:tӧN:zRN:tӧN:tӧN%J!jl&ӧN:tӧN=:tӧN:t:t7N:tӧN:ztӧN:tӧN:t:hN-JSN:tӧN:tӥҔӯN:tӥ4:tӧN:tӧN)KSN:w00dcWS00dcSXM } OSsǘ7ᄈt> Bv-ug}"恹>TŸG`oh~?JoQ)2Ҥ |q(kbH`nCmlQNP"LIӜXRc  B T2ąѿ)Jݟ؜]5Oo b-sßYCP7=<{tqt0) kMV%wo "r'jq [ 7R(&5>^KX{ xj,ij*VyǣN\B)~^L~ҧ+nCL*9ҟc<1wS<?<Ÿ}լJ+!mgY =Dm(K¿稠n:c2ŠRCIaHE > Ժ8bKb>LT < ~h kuH([DyX+6CUWVT5V 8Sc灵#K g< (Xl~G1[gjp_2?OF DBaF Smbqqo< ܝs {N%WURCIާ> a 3Ă=ͣF]- 9Z=Js98mXc:/\t$@m\ݷs`^R! ōegn] 䃈ÃA@&?u0eQb80@ bpp| " Y_<-H1 9(Kĸ~3/doDѐK "pH8+L и|dt_X-ڻʜ ,Hdzpܼ2Wr!hSzyj\"%Q)_(ذ]'j}m8P_raD['6vK"QcrXIiD&Bf:zk-4Shy0#r}=utB6 '8 Z&FL4TE|qǚvCĕ*R kdh&uKoO)Cgxk~T")àF@q ;pƻذ.}p`C^pf^BH~#L(f RdgH*rlsZ/@A> Y|&aq˕2OV'y0$SP?Z(8 B[V 4$;,jr;Ӳ'@N3%@k /ovGw\V`6i8EAEPԗovI l,ȃZz *gDS!9-\pLZՆ7qqbE˜#cbP0(>;i d2`ΒMSNaO-]p, |"E$Ӑ%hP-~!H瑦װJՏAY.ۢ4QSX ȫGsx1֧S4:s^Վ#l-dB S"tRrW8F2U-_mRf|#2:lN|Qx,Hx3u&ޟN:zrYbߏ=Hί^)l=HYJ 8b&TThb<}+wWv=Ȏ7{P2Ud#) M@>/ԼY( r0)@HqjLpR4ToQ*bKޙK 0}(h /%ķIDr}?43ӊ B/}Djsa رӌ7F/#/\8(\>g\f|X/}<:J y L|si'+I6qsuA.+bNF^lXƝEB7k̜ t$ 1]u0Lt=4}k:2ry_ʍp(L~Ǿx)qږf5#>OTtN39_KLcdXJZ 5I;7a&?uC^TO+Lw8WR=DJ6l9v q* xSjB"= % q{)x4`^f0<]KwUk TFtZD'h(R@&,4?ClBX=:`=A}wˣ.)t7MWG,p!.4npS!iΌ$pFy| X*:F4ﱫuKu,z8fGa@mǧYW MZ ) s,fdF;>tfH(J!a.uun6*᳡4Ȍ\+xĊ<'Y=g7>GD:D]D@T3Vե(9]*"ynxWbMfyG+%6&c :(҂v0ݻ$pH/Omf1$]11jߖ!`6@T8x$@ƉFݚfS{D|؞N''OZڥ BM[D@qѦפBhMZ0fNaYj I hUw2 WQx>Ix[.^4Yibܪ$\ɑD)#*GCj"|sncMɏ)L!.p"q2δJ|R[. Fs6ȷFuh)E[־Nz |~pVMŏ2Gv{i ]<]l>ga'mʱȿ UoۂVm啄A$L9 $F\~m*L)< 67W."eb`ߔdq!U^a͛|l#³fgl04l^l{h!I[L|t9ܴ#p)8 \pVRdHrA(#o?L(s:IUmQ0ᚦ9`Q)qb~[(rQ[fTp fdŢ%$F!]5gzT7FN3JPxT `0G^:W*VZ^: ] D* ƅ,Uq'#RspgLSdiϝ0_.{O6:F !d9h3 !_Ia?3+C:A$PP32yA#Z3>A5 .YǛvCc qhG$tg0nуc_JmxGIJ]K198[<0DQX gKT01cx:ZC,d@DN4BOQףagm(@"aD^߽ٮrQTOzєOaG78% !Ær7Q)4y .j=Ɣ%s ,.o,"'._N<3F0%)iƛALgYpL6K-TY,`ֽx*Q#ao>mG^a^qwo0J {Au4#(1ڞ:ؐbw o*?6Afg~ |9tАzb3`z_`8rwkjҽ6ۖ&hync J1@=sAzr 8"UJE)H& 8#]_ LJd csij)$ײbRwsdϭk03O Oǿ,yo1$?ď[qYcP盽 LA%1ַuM]xt)\}ߏvՎB9ӬvBNX\4CiNN0@e7 Z'>^&ˀL쇅XxgM$};MӧGMӣN"8\>z7_9Ny@h.pN3}!Ttt:6#N:ztHן{¡MqRBf8|l)*36``C]8(G"p`nN:z93ΟӣM|pt g]:Djń@>Κ 0h@>0@%q h}*dĈ'W5I0gIN FUhfLOO#.'05'M$ *6c}'HCL$ǦlDH'Ν9>&& ys:z a3sșft:mWx>6]~Dc=>RK*)gC xf|T=|:iCq4z(kȠ[jV`bsN<H$ǡPK0L,R\  MsGMင3:m _$o[ZmlBB ֬$ҟh<|ϥ֠|t3yЈy.B֮V](fE}5*0b&dž%E1?/ T6JG\>ÅS:)@@y# DR0ZD(5$Ks15!!B6I$ZlZ_X~ y4 ;âA%=t(|wё}9a$ tY}MxhL(+r`.:1OgIJ( elVz#a1Z6Q@j)p)*MT!4CP:/goҳm`DP`hwK';="CuMA0cʑ&̙? ,-BԆYj*BHh,k:p3:ށU#Dǚtr5idHO—'!Ey?7޻;,2W&&~HENGFT 1O֮:ΟQ$5.bxEG[!kM:,W2ƺ< p^.+߫m,tN2 % qD )$hOLG*%) U=6iO 3]G00dcXM00dcYG9-LaᄁIKTgn%4/G57O[rTl.$xYly$p_I1G!Xԉ0>M0 1-m WtHrzр w!2|87*T^| B>LLy+Y0V!_}i'7<d _M.I]W >>IF@y<^׈Rr%4Ã:+rb[ԩe(!bw%R7c2@IP_B'j %J$W0( {Ul :_Y pqiQ_{މ $($EL+x{ n>TG+g1]AE_F|n,9o\KcfFlQGUUV"W2o!M̮_x˿ !l r-1uUƶ8fLZSSOA!ijsF\4jM@Z L-%b H ᜣ5N2{+& >wBdJF+ 0)_NK,j9#d9X>N``%~~aF)iЂ.?}ޑ zzKW8szeʸ0RCkEr`"wDnch 5YĜ(W~cY}QEbJN+i̞cH3n4﫚zphH>\#|)@Z) vR # giݣ}T¬6|uaug`k%rFd8R bY~{/8tSw.Sc£Iĕ\rz;S.~D&$-EAC7aLG IR;YFxFyAMb _IgEMW: x׮any"`B/hצ 1ND )mK"MV$RF9 [dաlYvRS.zE~"K}N bguWLmLJ'( 'M&#U .QOH޴uwa_8@n*ɶnX@Wqu$ R(> sq313lZb%e!6 aVI,4w Mp󍿗8.S#.`n\5 L>ddM5L?uĀ_"`l*k~QìB͎>6Ռe8>SǙ/nLB]NÓ3gY9ULsoL<DŽs)nRxaL \|A#W~G۟,;|cM12XWMhOֽP5K~7+;=C?':fh ̻_(x%_1sJeE2vE7 iV2q›R1ޟUUM3P:WEpXX/3_,aO 꺺G_P-0SuWmnu?RdD!0"Y?g7T?W表Ob32L}AP&寯E#4` QQ;Df[3@PNEh&8*½ٟbpj>Pj<`II6Nӣ*zLnLE.U5IȄ e-`Sgd3_ʡqtfZVp5tT33MAd8i7ۓz :>]jdIҦ(L&# hwHo_5#*4{ti0~ dA_}aG KJ4}:.}x*RAS#i> W&-1C2~jA1 2HED[y@g))y! ™T/e`upNBÄ? J{އcH'y8A,`Ւx;hr DinS ƂaR6lxu#PYKsiF3K`F+Ekw&V9[8aKsF6|5M]xS/I*]WUK•zM̜8p7!jxV駎N5-4ū,=>0Ei<~<)UCL\>DFMz.B)%i wDf=<7B*? =cHU)}1}<cվhxd ⾢"?xdn!0N"x _ygT.dH"+M1IZts!ل5, +.*̽?0R^Ndbx玒|Ⱦvz 71$=,a0Ti;s bI5ӧTΙ n@S b5%lX52ŝ }OKGk lZOk!@;^M>ɐsh  S0 dA0RWB8uS@*jm>;))1Y`ހex!h*ҀWx<7D'k’ό][ 1b/#4(|pƱE]N!ə:@p'ŃFJ zFA-`̠X{QviL͜<*HoL+Wu3@3JES6P9B1=$˧xd" .`$u0./PiIY|=xex xqOkI65v0rޟwNTa\A@ZL!墇 }Xm9,AIQaNVuM^#^R mJ _PnWPEb jѝT7Ύ *# Y\MWcՏ*n)I["jqo{ 㗟9^ ^/ty;TstF5]L6{ Py'bNw(x1 :xXdBdƮ.:H3Fp0qL)a& ^2SxWsL@G]J8!C4DTgm8=9 DhByʔ Zψv u8VxE|xB`Ɩ "*ώo^2="{fɲ|Ҏr`4YBx_ɲjVTaoS`S z :[h|F ʞm^ȦiqϺ%.PwTJ~6Yj3Ú U錆$&/E%V=T:Yp^ ^S&j` DڏO$֫i1>x)˟θ+N3CI8)p);S)\r &G%Ri 0R{3xWϕW&zׯ -00!Ȩ)~UcP?=cujJ[ȻP&B[&}EELH(OqB`Ua@+}$N0@" >#'CrX\p$$,|SGI/ !8ִWAznע"2%>8>eJM$ypt}ӧGGGGGf?+[di%BgtY[ O$}ڕ@`$DEJ(Tn}}'h=*O”5Պ jO")z(2.`8Lo u$u;pH4ǥ08Hs8H=M. W^^!7r"P?ȚR:HHz(%"  T2F% e:aj4+R5jJUMҖCtEМT%&  Q+1Iq-R!z ,naAL(4oM )7 =DsEeKu:}61CfLCbWƬf.KcT1,Hqr7sć|tTNӣZ\KV e) nN1 lZQ )9(g'%L0B$Iݍ69 r2tbW&ד% Hǖ^5ChTY!&80 H+VۦyǗ S=X 'I ϦINV^m }&}o,c8&aDsRewBrh6MndT3M $pv(8}1~8&iS0+βQH9̩Ȟ1dAKq8NB?$Vxb2ġKm$t,;X><z +I @Z  ca`ɏ-Cie\:- M& hMbH}\>P2*>ohϒeFH?mF5)>aIM@Fx);IjͨO;$ï"fwV$uuE8JMo=7l;BO4gYth r5S26^- f+hoi1RlBip' 0DJ2qщ*ݤwFNX ^yԘ@ᐏLnk9]%_X;; OjRp)7HJScR`xa`^Ul5D&Ƿ&Skt2 xS5Uz1n`||)JHNBaļvNr&{m"DԡQ$0X&jve1F0l;nt,13f| ?E`5M|*Nc0)-ѕxyuw ˴B%1$8fE4Ct8?(% hN}@lnZڟBr~:4 G~gHhfΥV^V`K,u*GU)HzUWl 4aO{2ki6B?" jhU=TQ 0+OHaцt3tYɷk#J' ;TА%{`J#}n Ȳh"h(W M/Epa ` %Z>khd2eW_!n Ŝ&gCüTd25Uh\gIӨYj٥yc42SnZ ]wQ.2>t ~aE\h+,`04>HȸeOH UnA;N9a_&)OE[7 d26+,tg(cl7R y0 >8ny)/ ο>6wf fV%BKMFur$AW T@2paM]N:b+hJ|#ZTQ)As eڡ[C؝ CnOIU8* EFv-a/Rf{DE%bG-ɹ5Ƶ2F|wN#7 #ӄk !kBַȽs!HM^H}h# :41N%0ēVDFM)ッ\_ã dA!sSiױ<ʿ~m'+LhlcihGLз/,~(V:RsH|ML(ň 6`7mxڍ vI"[=nNhǿ!f1@;)abFsE̩WW VV4@P ҕ1s0&YO:<*lIq2( <;93B3M8(@lQ%nj@SJv5K JhhJR#kAP,@cѳȺe_,U7,U?b9ѾIQ18X'-]+m$ND kFT;fF9<38L [ L*eE- } `(; ˡ' B>|;6323dm)rn|f;!5\Sb1Hpгš}=.]J. &Jg5Esg?"4*-GQP4#Ls>%Cp1 ,ADžgbq4E4:z9r2,D’TMd 14Y #xS2!] `g'0A;1!qw{Ae0 {{] N7N@~k? !?d3Ξ/kAckR/WxSXC4;tT(o% \ёnZzHUVN:LR?PI(P{ GX2o=Z™Ѩt@ _OBUbEx)n% o0w3:[hTP9 {_,wJ:@ѳAMTO+ijo$Ɔtemq< Pۓ$Á_X vKv5dL [FXB0d'ym ng^"‘O8эO Š4,s ߒ68[2kg3;LNMVƌ;B 6x)WAEjf; mfS5L>wJ9ɛ7z<^2_rҞAc@yW(v,a `\BgR@k[Ѝ"!f 3Nr!͞,La OBaIGǦͪ' TC݁V3oqz.)K BƬ`\u=n aHsc] 6{0`ЃඌkM?>f#p1ʚ،p⯎淬>0Z,u@0pS+P&g2y`|*Yvb%āMo=S,:sdq 'nw`kMJg.?++ [M#qg6YcL{ 1X l%lb<η+)Gqv-apR20:)"a28Pj, t{L#.:6B!AxZw 8dV;\x g{Q|ѩ7zwmҔؕ1mzu0=`ΣBDANșVv<gv4LaL N7:0@*&:2 [@kzs$5pSmqiE4˂;ҚtGΌGQ=YzH2* B8)kn0sV,⑤c<)DNAC}*ؙ`VL+H>ByVln6Ongu) mٗ(j~ɭXX&Lz=?jwsysFP2`TdOf7\QơyHDc3,zǕLڰ60KV FZӞ%M}8TQ_ɭb,0֍|d6}wo2Tj"6ǢKIeqxnV$]עQ|WbG$.9eg@vH0pn`(?6N3FbZ=?vtpDe\HJxk{M޽kY3篶}\N<]+u}-(!SM+KxELJ_hպx}(|`g s8~>iQ"sVق;+MD7.1f[x&{e>suQ Ũ:84`~4"wuG`!l2bHNϟ썙0_-|R/)β;:T-~y0Y,l;:~]C$Ho|36! Qǒo{ݱ'i\וqB*(FlF/paAaZ$bqHB+wBԈ:^ͫR_-|fuJ>aU0Όήϊ;mLRJLmI,:OfZju3QHE@NX?ly:$#̝XŷtIA$&y taRߴ^,smg y;9SQcO5}GP}Fzl>mXRQ)*UxWӏo4ᒁ>:$W+nF\_@65e;t(VQ:%ǡI[ƴ=UGhDM\ŒE6D3XkJ>j”D%12dfia8mX5mh<#Iiŗ8u֞ ֔Vɞ 7rVpJܛ_[6.T t5Q h9{Z^p[`arEdq9FoA0n9=Xy1g c# oJkֆ@$8IӥWyMFKHlvopGX1\d~Q.͌T Np,-L_so uo?uE"[_אH@|F^sǴChЈbmA$K `eT:^ c|n.2N \.n򃵢d 4f.1n"3v77d5[mSfWʵT2󏼝;Y{,jaux2Q`PPZ4oW$"0=(8) c,J ^XeX״Ǥ  qƄaĭ@@%Ψ T4W..5>`9p\!Q\_[l$}OTxe@jCPnp0^:!XJ9pQ9O1 /FJPqiړ/m 61qsвP`U# sII1CqÆ|NBi0 w$+"9*P2q.Z0dwVx9i F3E5~_.FahtG PEy┑9~\qAZ[6kaH^%iXiQi{ )pWiZf6ÂMU zٷ:T"hAn+ȞS M (t{c~C g!3Ї`1Hm& a/:<)r:*Z{TsaH#MNjBq: }L o(Ö5wCcW 3* 4Ҹ :j9 "W4@>!FlZ[Ow$ DaL XdE.,Lb59+Q *US$qMxpTVW0&/P_{] G8bC%` o>Š v@džsRp7~鴡;bcs E-Ќ޶ANqXd1Rw F}q6oz*;L8q3p|__XpxdĝmRU#o0 c#+Tc[EHFK0N92{2ipc/1L˧D##-ՀU%9Wۤ#$d€ϴ 6tXHXT ׄEƊgQ,5uzKK9z2SԐPs)Ǽ`d32Mx}L A^_hB=u`# Npc ߓߦ8#1v{oV:/Q hkosMq!qKꇹOCB8F,a*B#ʒJnXJO><Bj5)3?a#2S>(b>L13sB# _ Jٰ> .('EJ-e%D~3Azd٣dumkw 6&dB#QBo(JKҤ$\$ Zr39=Gn)w7ʸd̙0#3LeDDa(J=GvԎ>/:&s$+2Z t4kxg&XaLwQ訷Jpi OS(&'2%xՈEtSDJWF!b0g,}4xξa?$4B1/_Oyb^th,ѠQa=1&6D)xsX񙹺hdcNA~`Q.d*U4`l3ƻԦjm7+@ŵ>44#u*$|}4 b_]bAmh K=ΝML ml ݛHòaHꏝvv8˜12x_VQ=P*":F2Q w=Fq(4;YS=). VsF.3// !a aE$޿TS@@B 7UrgbBFˮxRVz:QώFq# 3c&~P2w(aoF`?L> )kf O0PU_oʼ1-XV#ECٜ#;Le0=򟲡F2yġYO:.Ƃ3 Ad08VLbp܆8))H.lnP8&<~$pnElBy8$*"o3<|fAPj*[7W w ]ܘj21F2@Q7M}6aoM䖛R?^7zߜV\PHPPweJY<89& #Nk{M$Ǖϩ8V70t1J!2?/oBs!r2,0bЀdŒ6E`2qX1"#\)ZjKb]ldz4%af0Y_M،\E׶# }2t_-e*1њ P(:`>zPGq_MCKa$Qåݻ'Lj%\KQTm'ơNT*YV1j.2`,hlڢrixqbσ (IY#hH.=H`:YFy9_j)O-ļnPP׵ku#<%hF?G BIsGdQq$ڹgٽ@$2)KQttH{E;FEDq2:?Nttz:?<`G`2ʍLdMAP06GWd ~6$2 2B&TFcT0 S< C4O(dF`& vK=BBAx±``O @|s7L P#lL0 FYx,LLN@iH軅3E =v&j>4;>Ǖ +Ԏ/ v81X&-;Ui yAט7z>8 _M9CI$fXa",Ez*rgXs[CC_T%֏BewI^&(%{/m辖o ${{/ 0(4.xwa`cLhU0hpᚪ dh*&z=YJ,D3qw,\"e1@dbaNj?]FNDY)f3Y_4dGT̾44aեI!oI(='𠜛mhJRr&eYJFLTqȾ O~ҟ$raب1,}}-LASGSLpyH1) AgKx "Bw;翪!o5}K X}I@t@P?=ƨ$00dc[;00dc\5gh/>x:pFdir e8LM6M+CRg:<" '!ZvhN$_' *xB /vUڔj$e^sadȼnfF\+N - Ǐ;7f>|` . JLg#=?%o&|w y8h)NC%J/ߞ蜰{1[?m2qC"! 3$ 6"N HVO/_ >i,'sh xt~ Q iwS0{0зlӇ`C5_@>}8h1]N1w3q hEKL:[Z.U~9OV&u,тSf;y ᔷ6gAT;|]4S#@/6xea[^EI^Ldg:#҃ڎxIbά1ɵ$M#+IWQP 4/włP2FLG)i<:֛y:ya+1~-Z=k"DtT=d<;}lY=E;HM9#[f:г?U4Vl#Rbv8b7>#rsJ{6i>k[~Oo巷io\KLJk~LK܄)7Mޏhó`3 -.M^ S]eA2~3c:65vv6Sb UY4>#L|_Bs!oyi5 Ufw!{KFh_n(6rU-xe_ .BrW9!飶#t'nP H) 8g]a ᱷ&w?=/>nys7l q]>^rhQƛ@ELv0qgS*l@dRRmDvVIЯ0l\`3þ_O77$N|HHx! +\J(1p^;bY՜t(歭">dLԾ8x䟫e])8}H íF: ]QƲi96(G6vj(<;, }Q IZ48mrV?^6?a`d &jSwb5ORnӥv(?ưrW. iQヅi|(ҭXm5w!LL,yL@ZN`41Q AS|SgGLyMS1l)TBI6+nXsG׿rZj*@C3!z$ ;i0DmAggI^3lF$Uަ;v=4PxHHyi:30yJcd|ͬ`x/[8/1Vs fK# ZUИjY풅@ledQZaw#ԥ><߱AN!0, Vzmɉ iȪ%_8;0hm;I%l@|6]m,2f ^P4O8{P8F vf;$lt 'j5sjȼVՕ'3ILb~\9yCx a͢f0=n)Я/2;&OBOpQrl˾-,T{Tc?^2%( mc 7_@ow0fm(o3hRn%WgaXH0Ѡ# x#<%MCE58Ȋf]|"49P>K 3րq>F W ў\fƝ%j[>U1D\j>`PTc8fQ܃Q''Jo"6-q!7e0˰Eif "*HIunCg>AzhHAd PZye v|Wr< obQJKjs7k"aCO15>CJCd|DT <\<Дp@}F(dD/ /蟲 IT/!H'h7Р)gpF@Pdbu)"˿Յ)E(f$e`2 txc;]N_z:22_~KEj1Bf8M D ywLwԿ, K-^p9Fj%!{|R64X0xFᢚΝ?7ȅrR.p0/ )RE?ӊpd̜`:!{µSޝ5tx{ģ3$QΐQCmk>͉sc+~B!<e0tӉ 8/s7 \fI̘0V^ȵFnTIAOtzCR.t+^{ Cm1UZg[`ᐦ9_4C +7;aYc?',DpGpp:_M3`C'pBL֘ҳîO;sρpiJ*R GИ +kҾjǿxp[Pmo]c&enX3`0"oA ʨ , \8wᐌ0}:<‹6>2qH]kڦ?e %5KE޲40 jf_N[ ]y\k)/8TR\;za:#MÙBc):qDϾdnK R!}Ou9ڣbpbOLD4bħvSYwǨ$)aPW8)z=V$VNxrd8:턃OOX Zh|.Pϧl:Qtf. E'AN8Csɞ /  5ᑞ&XN#Fh-=Q(nR7vKZ$Uu-u4H7 n9.ާ'G}R=#baNjBO7Ja" mNEo ċ5bV\4y)Xl&Mɤ`}}01H'F"D-hTz Ҭ @q NP zEq"JIdS8pa!CtOiP1Jt),Dy:ٜqbu鷣JmN.蓢VXT!64tҙ2-C^q)աi@ҔR)a} @dD3u:tқ7#ĥ5H\y# DM #KEDyKl:l`'O3Ƶ٧OM Kb$j3eMS5,HX%ˁ9&bNyF֞RCЛzlEnB!6lѓ VRD!'DD䧂y=z喣`9`' ӫ(".jE s&zG)?Nه L3&btL"ɛ% f(H$a0:%ǝ8|JSiB?MQl`4NjP*>[N}U6]~p>,=HvuT^Ғ`cPb,t,a l=%R.\G K)E43#6kT y8X9©ϡԲR=,Z TYN҈PnH9\ᓧ%dm6'VbXJ[JZ ASK$MC4aKRj(yi9z٧Ƌ( Ƃ,CdN0D5N)]U'H꺬 xo&o$4(3Rc`G_ тrpM`n6MFN0BRƤP{4P0SurAMJ*!h#MEbQ&$[H-{}7NJ$(exx(dM}=]IL%sBQJ+ )OOJi֥P@~a=|;QW.FH:jdj*)p?_>ꔝ Ο ;cċdk&zsH]NY!&Ҕf $(,j7BC."1]=bP? J@?=VO&,3k> L<  00dc\500dc]/=z:_w.ε^@$oEƞ3:) ֳKS !/h,P$3EmM@<4]Gݝ3ʽ_L;ޮ7^<&DyJ}`[p)k`3#%XES.,9\cY4cg!F`ez}#ta;nvGݯ;֡"M:^#[W[G֘kz^U &@PDHʘoy#95qWvt.#y)O=^z} VpXBUN?/.T#}zTحUHaU8]y0h8u.r: U(*`1Heg QJ._tkvUa2k{䞛gNdtؙYϽ5>LlQΓ\}/-9YG,2+$K) =n6LX4IW3'zJw+ Dl͖OoY""Dm S3Z&3>֡=[ɇtpL;ҷQfh>dpcJ<ƪ|zpFC<5X qsd1_< #0xEoVcA&4Hl߯'LtaՖSHFJtc":!ۆc)ON3Yosi+13ҫ7 ;la9hFzc0u'v&ycpΉb`JTtO ic\>Pvwt"U1BP?)=XTMT? c/hwh gOdA#d6, P4x GPӀ>$2Fb<'MA }Kq…^ VT}O-xX|OR}㵊h>VD3DbziV+ϝp}#Ϣ,S!J&ビ>19X6hWCAMH$_>gW<}sGValME"6N98M|hfDP??")Ek Ձ$ֹs+\Wx?DE4zk$9вX|)Z$Ls4{8=5: pF3W>'2K0> ֟D?%>W`OQ318ެ i̲@-hNK>d\>%gy#8e؏:VTd,:Ii3~*kxNfXm4W&JOHg!.Y2h)WrjM8aL8zi!Q [`;b1L1Ea+Vy):pw#oY(`U) 壢!ErZM +?/j#iD ÁCJf5f8*f: R@V/2tX]2';(\*R7!N:Ԭy.k~"vUdsHL7l`8PԘΛ+j^qw]L@Fk@6Ϩf}FM02r)p/STe;">P\*޸HlV"-^]qi84Z/Zrmg >)]Kg"N#{S6C'[b:zp)[X=S%,~6q6aQhڮDAϼE NN@ `.yv^ v[t#x3?PhV7bkcY &yE-:F8S`.r*9\ac&*G5]zߩBg(%RiB}[!.q8yW*?9i4@Ɨ@؎p7|YCvW:BΑw_ri_VVl$DaX bC@>^:gu]QM~5"`pPC 0 Xj6,1Ig>kqK2݅G̲6Lg{l>| Oγ0EYYwE:oAmT/&VL|) G`2w c)`e+!t&S/{Y,៻^}ylj!5Ӫ\XL Fr`^}}4ɣ;{P:`琷-f/gȺq:afxdrfYk 6pN;.iF5g-ӗ8qMM<Ƣ㼩WW ㏽s4j B=, I|cf@HcMI&GڂX}su3 e1!&pDv r ț.#!XKAiZ9.CЦ `0,- X0cДb Oҥ /1~TD1.kmR`r*iG0^&8$ 2IӧN&J2tӧN=:ZD>"t)N=:tӧN:tBStRNvBFgE4t':l4Mԣ'NӧN::l'94N6N A:tҌ,d:iGJRӧN`:ZRĥ'N:tӧ -N:Zd:tӧN&ӧN`I:tӧN:tӧNSN:t6N:tӧQN:tӧMӦɢt:Z:t6N:tӧMӧN:h'N-N%)dN:tӄ%+tE0 RԢ'N:tӧN6KSN&ӄ%'N%)dӧN=4MN:QD:QeN:l4N%’6N:tӧN8:tn)MӧN8H2J2tt:pFΧ(ӧMON:YS!g)ӧN:zu8&Dӥ)jtӧ N=}:}:OGDLD$3ҔӧN)ӧIN:t4MѺtӧN6MSdJZ00dc]/00dc.^)s?<8)$02x/$(b EC;F\d(wClb Z8yZhhxy_?^/0uHe N0w#ԂoF^]KA5%L|)s+~^EkRH5TT?j.bC*q8jS523C+%ۢ.x(F*R,8G0Ÿ 4*ԈX-FѕA,nh K3w/C\- Ӝ@SsnL2 ю(˟MIDeMv~ /2'/;ѰL4d|\>yl>@JtXYCgϤuQũJ>YZB O]Ah)YF|`ZT|/B,>>W8P)GB+..[0D"j!(Pa]=SRH 2 a?/T# 'Z0tgM; `OgtÆ\13b!KKe)8|\ ʍ{T| J%ˮW+}#nj<BohMiXO%=HcgMA\- {`!Σ9Çh%Ɯ-[ꬨg6 H :P?Y*H{)!%kbDji aWBUy )>8tg:ӏr%rpgO h$$LsIW3_8@qCA:ynKdX%<)^ÿ>N΅2۽"Xm#qtd L S5|(]01'G'0.]EL,,!Y,a v0\W+| UJ[\\z\4b=Z# 7{M{\P62\N)̗)`rlv GC4BCb_8ȾEŸAoM5!zNRtQ% c}Hi(S5l9Zxٽ~L;ydQ`P gB0gL wO y3h~n$ r ;:ϣZ{}U{P0S C*LqxZi>߷E #j1)P6E^jGaX@ele)n/Ki5P}z^@KNU~NJ߬b6{Th/aW0ĽMs 8,Һտ~L!$%9aKBfՍhgWpu\1'X*oPSrm#7t]rs4h)@Tڌt $ledjڔ1?60H<98(У+YҢv'ᠦ w=d]qXZ5ؘ)cx nJjA|??vI+,‚\Vh0#&ZG@qvqbeq2$Zm p 刑ids|ƦuzVo8H.' hTș~oԪQ'<"$dw ρQ³z\aX. tâpclZBe Τ4Nyæ_eFU1;:6 ʀLުO9*.Tr1=z¿E6 ;A+?|7 *rxtS+Y [ \ʔh&%ma3c8&5|LIŹSE .zo *)w0sx0T*.z$Yyt/(Fj~T\&T$_~{ʳ4y/e9+{& `|dj5 Ո}*E&4*~ꇷOFQD,~`ǿR޳Y! |KY)( /IE#`S QĺiPp 1[Ӄ$;L1񟆝9{u<%H<>Z-^*)8_ EK?20J\J}'U*:cdB1yM/P $EQ-ݐ0B-05qF-?vܴh]vZ0lkX(}-y MvScKXu~-Q^/K@co htS~Q2buPc9UT_kl la;o)oc! ʬzl,o.w3KH@]\T I=~qBP;X?v=kmZ q=RZ//Wڠx/ /qf co͖,DyQ5BU12ZC,o (,ASMhP'pLi°CwǓ8gc^<<`#W{MOi7l("வ%"q+d45 96NVPs2- r!P'jkCI^tbHְ!$`~xb`?y>6]oXbgA5WєHw&)6'U&sYg77P'mT iz(Ox q bTb͓͞A6?=}zKM=|8*5K]isطk"%Zcĺ; Ibr⤋&5@-^\jvO@ejC@ٵEJɡP86Tϳ +"}3'f>+U Մ!w;:|)U5TOuj~&KD'03y"{&s?Y&Vj,qI{" dп֯xKR%m{#HS0!t+gRwa,@oVBH7{ȼ6x _gM") J/_L#jD1:hĦp"M,2:: 6.¯pSA9Sm$jU(Kf#ء@͢Oۭs|ITTԕpzxYTQW@Vk# 7QbQUg-F\.S sa8J]pwЈdA]Շy]ci~W `v/NY|+z&($Fx^?3A .۳TEM\ӂhP{V:A0p1%e]`r/"-+M7[F^EJ. 6 ԩ'A¹Ĝh\ʎոsX`E isRid?v"dQ'Czƅx#36-pՉ֌8c: nNM"Bx2ڡ^:ԐW0Qe U`9&QRrokaTg3YLI CbHՊx l 鶖pйքLeվ $ܘ1jFE7}\VR2-\/p0>wcx. q*UKU&Bn 8 m9a@{"DZb( /Bfkddw740P|F>|0!qP';Ԣ+a58)nlY$]LJRHދ{lY18^UHKRQ`&?bR 1{d?R3R%\O U0qcޠq:uQ,NQVJ܅EH~x6d- x&\IgEPq )?:AvcsC `@4`YNQl4+:<sX&՛)YލT^|P}6wwϘ `;$;1Xp)Zq4T~*VEÿciI:z| .$}j\Kt;Ū v\\>kM%=(1 e/V>/O*.AvJ[-Ņ|:ƣc~R GIg^N#"ৄ:<^ʀǯ!w$?ŸHS E$ã_1)l8ѥ{f0P'c:8I֬n]~І\?dFSxtcrraD8( ie(t6⭢L+裄^* 6 x A0i~Dp%2uhqȆa9cKHAll`+0aHQ䲝pj1,@[c?W()EީL3x6mPi \b+A|~iJXcnD刦- ^"#p~+b*bxYՆ(_'b"='m-D`Ǭw3J4@Z].i*=e|WS{>}rMKM+HW&P9~Yp ׇr-č!bLO/) qK?`L"(Q!|bg`qNUXTPB}S:]AMg/e ~|›oUE#gX]Ē{R.B逥;P% UoT.E@exy 8RM4W-@)V4 Oޥ2jTt J6v iwTGV2(|^2pޖAz[Q1*4Kؽ}|t3(8-;*#U('GbśJHqVe<؍:#{h薬Jn^& (L D`#nSNT y,,*%=##206 0(\-g7׋n ID6EZ2#U&< ](}-p.D e\S-2ظ&ܾN$K Ns]ϝtAEFD䷋-zH)2blap f)Ep$@Ohe"&@9#h̘EZ}>cc;PpS(]7Ԧx})ʁlB4 lc`L4l1fZKԓȴb[*5GUm%_"遆LAa E#^\\Xݺ(n%+UM\q v#"6sH惜ۿ[Z!/Y}J_6VHMdHLjjcfZddhQB#lmW a)@f$E3 ,@)-ׁ5 3Xm5dozAV/%䓈!2KB#~P \\;A( q@tت=rlYh/!q9 !?8M KÆʤ%#npk;H82)S2"U~b篮ֻ\3 @FD @^p% Jwq XɐLJ.jk tʕIv_0 v7 X"Cd5yֶwBm"_;y =X˳=%~%F PnR=/v Y8{"ޟ#by |3 ?z| I_ѹwɀ;n_;@gYҼi9 (.ٔ鱩ȋ:BC"?l]8A7KrDˋ"ˮ -0Yh8*S9^7[,T,\BH QO"r-TtP-`8\Bp7n.Hxf زBk~= #J#=<=;ww+*mR\LWu/L pڧA4g,Dx<2xp(F{`x11 nva$ǝ tMK}ڼt#RcVMY*& 9Dž0˕y ^w{_jO|;-T`]K vYTqp vg*3iW U*T$h8~ I0agW3xNv5j V4 X0±vAAc g6@v[g8J<*avuaE3bP*?MI~T10L.J(|%i~jA!gCtͱD2#kBCe YTiR `nkၐRM2l-^ :K&Q. -Ngx},OCƅU? 9Ц<=×eJJMO$,/LyeRm"V=q@hzq.FfYAb*nq(p^^Y3 ˜eXZiL xxgĤ )>C×&0a(@">,ldT"jqоqt$YSlS8حF ]vLC`7>ޟ)L&HȇޑT.;:YڼLi'{ŝd{n!)`K/LSZ@l$?LP.ބe e':E@3<*m{&azrd,>A.8p+&4`< j+A[“؍\ũE>]:)|ˇ<Ǝ\8){/sJL6}r0B-l knU8u{N6J+aSog::L`0+salYS{VyziDžyVXB}% @3y plPzgCGw[)SO9w_E䒸PN&~*x>94_mmrl|^'\:?Վ^1R}CsVj0(ϝjdjfxI/q7G|(m pMNYNDd'$suT.Nc6-SP3jCdiXTa,D-AhCvC\ |=p`Z^Kfk" ġ0i}YCaKS>: hf.}W/)G_ĹCOŃAqb9tʪ`u'> K^Pc@2ξR94564nG+`|J|l bd 0"gFj\xؠB)xC;ȤO_S'*G ]H1XRC M4<F,d=!o1} rd\2!,Y`͸ acz(H 9JQk1 Iq6%Z xZQcISi_rNjɠ=GqY'Ĭ?Ut }B+±[E)'>|H|>cAU>|I߃<HXĹq&!_:oLP(FBF<~ %7 JpxVQ=(YK3aqztL*(O f &?:1 j@a4#(֔1{D"1ѿ 3ǩ:cLP JKslxB0[_e'WF"&N*>}yX1b#DεLn:\I8$2tf-'^54h)AC)MǴ:zёїI%Nё7 `<)‰x8β ̥boLiؗꥸ/ iH| p@@=C=/@i" v$&'t <0{@Cu:i!(x2*&l`e1#5,H >s.L@J$SЖ jH7ʥR}pfcGLJ-8)u#ǭFYcƸ+XmR0a$#AAivkڊcXʼn\ GX Km>%\{j3*hEA2LM4s5xWLN݀$adPsHR;cXwZFD7l~Űi ,>Ϟ#Lx1B#cWaH՜'Ky(u$ 4ӴdAhyB25`W0b#%BW>Omt )ad5x'"b8)K1$p(4<|2B0įoLo<11ps |)klW|v*b"IN f4TAXIqRͤ5X)/I`Rϲ&3 s auyZ0{@k"CU] ꚼ]JxZ1'#ʼ:Z N (`jB3a#!aNd 2dW!WuOh[E5^,xX_!tkZ8Q۠ y 'oŞK/%[Oa<`)jYF`j!t˗h" *򭵄Ǖ6ޙ p5W|a_D5V^]Tz9A9}W V+yWc\ '`t2J j9>EF=€|x_zY %I}.֛R`pfƨB\#]Zl@MŊ{S`p mh\= ()% QtPsR"a3Vhf?%u"m9]Ph -JNL1L@,N[$^ ΔH%-B9ל:}bSc#qrdB\^3>Y&l9+B@a}VsvpR K˷OqmGo.fY^^8!0S!`:xگTiAEĂߐVXhXZ{ԵRaō;(M3dP8?Z.2cY*) 8 ?|d\A)yT%6 myGw> x3 !CĐh$j壭L=Eb.!~ +{%[P_υ;_T^WLFiVxCV?/d]"c& Kx!lS٧JX@aYC˜Xy[Q7Z0tJVSCJ{[k@\bȃy8% bV7[b3@)g6j/e(0"1漩*gZN7n‡#&|&QStJș0R4X6. >8J"&SzlSw>ET H4.d3UX /̡c:*Sc⭓~>gzgzs{^wXf|^#'ČMg3똠}JI: ~Ƽ7%8K"⠄% r~3{hw$yS68֮b_V#]auj?JpG,C+zq\6ভ̙[yr~dlE6Cn es$/YX,0 h(?f.'T 2'q`qL`Z=k U)Hbsy'֡o#Z ž(Sci U^Ys)B|TBᛦJyR.ؗ\>thpvH&iGZpX LViD,eݧ0" l9"?6"=Np?7JG:])^3x9ۍcMzK3 i] 0Jyqy R v[e:냦Q5 kk- šT^=I C._yPLAx"Td2(*BΌk0( n{y6;ک@[fE&| q^WN/L^#9샶C-xF#MY˔]8[*UQ۩ ING {D#6oLw3o!ai1gXԚwNE4kڭU|Sx0=zcWJ@M>3n4ؒ̋HI @M@ P'SKUcR.pAK1u}資x'upY* G!{X^,:a '?V"\Fj)^,ZuJ6p :il¤o;O864qz껂] h6s풎ڵkzrB4#5ehi/[ۍ;w`rN@ভ}4H9>5kFT)@5b_>I+\t)^3H*XL֑BcVdD5BHB0]&MBCl3s,(xld }%@GG(?'hW€Z&wb6V .'%O^'X5lYGM ȿ@. F~PY n_Ń_6kIW֝\f&}DjosmQU!E6wrgIp`9/;y6 ⼼ޅg M6R~NlzEg]67Oj%R}kPtR5֌B֫4Ю^ &zb:9? Ny8@^u@&N%4 SeoY0='S:F8H *x8.Q;2B)`N\[ytXBXe C@6 lFk/P֦kJ6#{gPŒB\}_x[E1zF_:hV=y0 a$>#slu]BЧ5M ڐOH{њtK2eS n:4lծ<난m3 #}R: 1r^{T '-]բ!Mu! BqYk:!OJqи8(Fa3<`Y=hH|9zL'UӿPgzp$A h<߀^>ޚ i#ЩLJХ]q!099?j]n7pSiYX\3 x?$F4T/jb8FqbpSJ&]\5i1ЬjgH](4 8?WRU[14}.X.U{F|'x\L*}*MIP\݀ St1l ch0V:>])+L;ނ1(v ˕{G5"{ .xQ/MV[6| mjptCr0H+~UШh+|mr& #Q֭S3+jiNЊ]&ąBTo`?Q lCYD.A%{oM ٰXqCI#gzǨS@.tt;Heu2pSD[,`1:pR(6'/o7##LD B3e"/- ahSF=W'wPpD_u `B"n ^z'gc]]3"\AOMH%E궷վXf.V 78ۡW/F\@"MAP; HP/t) lo=4Xxo I(`#2Z lrc 𦀾-±liBgѤcB6XPMdF'“^]ǣ$aEd.ı//׸l8\>SF]( S($<Z =ā<)Àȅ iuz^MWZ,xq$Fh0d7.3b@`0 "Рj_K՗3uk{QYڄTL*n|@#sjD=Y[~2L2s _WܑϥNW[%w"ÁMJܾHՁBn'J|}nnDS1GZyр#+،=Bn/4r tXCў)EW#!ݟ}9$PJ=g`1,dSe@+H!e;XJ|ւsW0|x-8]tuXU.G T=-I =bXAwhhu) I!hSZolC!h9毤4<%d놊Ī BOć`hL eCN raN*7ً c$kJOZY ӻ"vMcIpj@,2cx.7ؕwMLD3f˜jI$84Bytߧ&{5sw4Mf3hd5Z :|TYLdp HK3Wd9g{ ]$+uW¨WHb~`ey6T<0T|xMG$AANVnU'4'AVC)˾ ϯ6x=icK]]z2F5O;nyj! qO"ʔNUk{v )y4<' s5'4Ò?`)\7ތQL/gKz'RВ+[&99pSdSO T"M3[heМ0Ifp**@SR5CՊR'S?*Gğo]&02!d-{ } !xԿtGDn]Jʗb6~~B {H6ߢ0~4 |9O^h4kÕ3EqF tL4ErfV~`c뛠d;w`lѮ.,Bq1SN&17C TNpf8Wjc i ɲha(fj5)@Kv"[EcUCh)"*w:#VgqQg/c P_0Vu5 U_kZJG^aLʪgm|Ҏ_{회#+$ҽE~ix 1D.dgC@ L:eE'5^I3FAЦ7h[]aC AY}?n㐡` K hZ'j$c%d͛ON ik^@h G頧Hմ{wυ7x;KF~:JGsz) (&ֈfF[dCI.*v$薮J+)p  f=Qɖ9WTT}J1[lE4SgbHa(ƛ3iџf(wMО;- G}!FJ[Lwp)^fƴb>J}MRՔ8Ƿ&Sz2vM2OɎ Q~V#J6׼x2]B/Mć'FlP,Pmˇ1&/<_2ckUeb1{:' ?bi!xqtBi(TVl0!|W#8NSfmRӊ;*G?T.P${ h ۉҜ~7C4F"V1 ZV͚{֨Pڞ 4&T=^v0饜@V`B^B2)JpvEhf"ć!ɧfgD13Ŏy@@P,H`B/^!/Ci&ww}7A2]P+Ӥ#pӜkzg}Wxtaz(QbaII>]/s.Qi`fQ֗M1}:F'|HD)OjbaCTh- J|[:PYڎ%JT }u|  ˁ墺i8"i6#ۆXR.ٔ܏ʈfQ B^K(!|yE1..Ŀ~R+VS@}H+$+6@(y<G~QmyW|U:B)+Ӽҵj=+gik>?9A j˺tv վ@}PV UIӹ^v6/xk]$%O<#B#e& nL`Q6^JT)T5OOô* dPn֖w]/Iy_ .desc8Qtd=Uœˇ+wWQV; D55y!")oFz;Iʑ_Uakﻦ/B aVTΐ]4\?pq:UxD,ۙ" Pl4pNӏz, Iωc5_GYM3"=.QOdB>\Ħ7o#,6^\˚I6lg ހ(Mm J#2#V50P]v-x Pրy9(:4'iDg˵/UHٛ\$eT\0PM*L9߷01kmKDg'UJd55E =gçY]R_s~# {1x'!{_}u1'LaC604n0d;G]&hQJx鐑kAfJ3я."8|\"ڝqdIsc>% 5yJ CM%> {>0Lt`5b SSgS`LMt )fdwENa DZ)U^ JG :{Ayk03){Ҡ" 1Z2HR5|<}mh(UH|vx釗-ΰ|3lT>ڽz3FQRwI'3`q}VD8xe qͭzg<|dHp3U@Y u{묇 FTI0AL/)glӲSpS eY'OIjwSÀq^ +cAkoT=kFRɵc Ω T>j O lo aSj^ ƀ$S x^Ȭu+GGbAS˼ʼ+F4:ƃ3v}dg @5 :/bwmFZ$ m(xĻ^Q%M&¸;Z_NݼB S` bY~0fhXFDqnEFO@!2BCC0H?kGpοi3tGES0+:^bFL;R^@9Wv2{Gb ܩ^#sFZ6h7*^LTE@`?F,Ә'3pČO?fp3 hEI΋ qX /-yfw=l!HזO  }L&wgӕR,ď"'xɁ2 ',2LC.`}V?.f$-7Ǎ=D3$! qMm+J؟!NvR}k)Bc/ 4Hz7O0+dj\~rgtJOO֎Ry0<=df|u~=:` Q?$G=lڞ0Ѱ`}eŭnP/d,K.Ƈ{[V;u"q#j?Aأ*g|u:ZH1Yz (4,!Mx|2V >3Z1a D584&z%)6+ZU_ dë`P 3DN&`)ijH<_Ġ/=~k>%>31W+ bMƭ>JJ8VAJ%xJTi%@KLE XjETքv7@_^j"{Й>}og%(d-+TGDgpJm@_/F ;9Hs`TVWNg8U:3>)?zӂgȈR"".Bĺ5+HW_1};z4sqIƷ -:yNI BPr=WrWOk\]>>{;{)!6DM"{;Ϗ8 |OǟW@}83o;ZtfwE咿P8T8!}'ZϾ˞0*oF}qmj}bP>N|jcp9K3J.Ga=ޏ7^wBH:tӣӧN:t:tӧOGN:tӧN:tҞ:ttttttttӣӧN6MѢtӧN>N::ttӧN:l4OMd6GN:ztӥ,ɢ:zzl:tӧӧN4MӧN:tӧN:tZdӧN:tӦtjSN:tӧN:RN:tӧN:td4N:Y:tӧN:tӧN:tDRN:tӧN:tdJ2tӧN:ttӧON:tӦdө:RN:R-K2QN:tl:h'MDҔ:tӧN4N:fMSN=:zt̔DӧN:tӧNӥ)NN4GdӧN:l:tDӧN:R:ROGON)KSN>:tӧN-N}:tӧN:t:h:tӧN:t}00dcQw00dc\+Rquu)v& h^|)NAgd8s$fpȅc:8*  #:o \NTO8Ts\z䅭LJ32%ꔰ:*}&ݹle?fSVYe/a75Lm5+N F0[F7)u9m߰hQ1Ɍ_4VvZ)7Ѩ=񆓏ԛĢ%PBO O"nC}!8 Ŏ),(@G ='=0ɬ}}5cl%L䓨EaEd %&q23W(v @H+/g@R aœ7d 𸺷.2bMT]g2d0^z*u ԉ*zY)6q. `N}&\d `Tz|=um0Q%TWQҒmr8doV׷`ƒz'm ?;(_=C-ir+ i.1$J `FUvڲ@)Ai|R>Lͥ+ZF.j5ڢ ! >TveDa'ÿR!|Nqe< QSe.V \讋skD}\04tN;pKSt1T- BX^骍A(& !x1xD EEh}J0RH߳UzH8`{ ǾKt`FP3q8 pE'hY.NDL6/G%cW79b,:-|7X ?K &dttH 3F)Zv=.$D`xKZtE(1ra89L0/y0ڴ>S}mB`ٓ)S`ũghOg0B(@}obırbUN-x6=2,-;m`>2T_bV݃%[6'FR*ݨ)_81t<,p&Up_Kf2wȖ^~@ Mp8j8l=Bp&&.F4Ǝ}l")&>3zN0SP _oQ_r'>ix0X~Ѓ'lS쎘xğ$TGSjsQ2o5!b`mV@(*!P4)3DdXVLr Ԍ̅]jtի)T+]bh E @CpC0R|J `,mDoKC~>3_,짇yQx7--V]th"#X] {It>@14#<-$V+}M1@{" ?IڰWD%Bf`6^gM5(ͭ %؉qB ZDA(>`mT]Q)_sjVCA~K61Q[y @<"' 803#R~Du8ftD\ A8;VJW I_ Zhj QwUrqZ"ʇpeP̹T۔}2[M攑l%X&+fPm|QrĥB^J94K<\{-U,zj) XI+ct6g5Dž5 cuPS5ǍqHSZ-2ZkRDAJDq5wVH6t'huN2pZ AVY b'Hkk'd:Qsi9 G|x!4dLD\]Z\<;[*uP_|;jDWí3|"7@і"vQ,-r'e`/8ispڵDBA0S #+Zj*w&l֧`KzBc8Z-tJ\p@Cb5O ˑ>_ge] LQ)wXyFNNdSXFr,RDpt̾,CAxJN4DhlŬm8S}[@ښwW(2^ yn )a р`յ4ɇ#FFô4qb١ёe OR2n3.8F1"(M"Z_iHfG_0{5ýl ,öЦԂ6;6suG)M=T`R\k*}6 kLaMt̰S1 zn4B(`%|jB'cLgZDps)|I(RG壟J>2+?;*;b`v[cJ4|ؓCb{ ^S^#݊32/PO e7J?N) gZJX4#& %nYr,CjkU Lۊ:DhGPWtިr!oW%#]@N< E,j2 :(rJY788& HgMQ&O: p?G0wJv`O%=M.-CE2zbthH)@| dNpML-#4]/Sm #pS-/Vw5aL5S3ID+ ӿAoz* ~u>W%k!<:hGX\q&C j;WGUP贞Ƙ EK0F+\-ġvM7 {@hf2+s{e$95L_Uxw3S<.Uup8)(g+jaF˜.a 'tFQn$lNVշXY0I40gȢwZ#t`}Q}s>j4(V^)y<12TBye.2c™oQ,WWֹByK= 2* e*;1klП 9\z7Ԡul:M/!g]yb;cRcOD жq/7c@ѐ8n  & +Ф: &JuB/^; Z[ph\]uP)bfzXM%T)rY  g{2svzޘ/.SL\F'Md٭@So?0Sb4aZh1W GCFk?‰HӎIgtٷ >ڱD:#f:e[#!<ʾ/V]pX6QR v Bk*U~_/_j'W=ÿ hͨZ2ApTIW`g;$EULZ/gP[`xl*'}:%#7w*JTJ m5%e"2+lg"7Ǥ/XLPSmaBDMh8Sr :Tlٷh1_{yqې%—oe\4JӛA4U|ASaL`L:uW7өxSUh̏ѢyL: L f;kdQ+j@HipS* ?ʧ={T߽,ڻApUaDD^G>9@-" m|"a` u9Dt+#L b7&[OzC7u[riNNb8R[hS+=lm! du\ix]ނK~ >R$(/bΫNpS6kߙ)t6+d翽vOxS@=#*⊴I.75VE Dp[mհkJ<)f*:pCD'bwzAp5~䤋4SqO™W'x& dЪHJOn)c7 L0o)LQ*n# :Ptc: ~2 `r]b j6a61=ꗍFpo}'/*aO8ާ"pk8)##IQʦz2Zj#ɝF"&"wQI UUVbjF]ZC*: bY|՗7CA0R<)]3څJXE#F.b3[&@Qaܣ^0EX`0:F@¤ӤnB8GƩa4PØh@JW|6N-Ȕ Ya 7*=0)㎶<Ω,FcmPJ | Jֳ3(X_!|EeapPfE ! ;-qz6ʧ N2L>5MoĒ~ ܰbAuc9gҲ@}/lEy pKWC`p.MЈ) UaE| J2P3›6dN~۝FPckbdWmœ2_S<ɍK 9X9«ЬdSu5gE\B1{&MܹJ+\ c9V@ y8Kw,D=ZaetDU̅9ep/Т FΧ#&[@kN)-:w&6Lٛj"o9Ss)f́&I?vM<)eMDŽ8תXMɞB{3p@f)Ф@Ѹ2B"rq0&67|޺H f ȱi4dP30U=S_:ɕsN H:`TT<`^-/k ; b6WƘv k`aL* z4cGrͪgl92u7.ˡ6CM1]P,C4bEWDF6;#FP:0S\SGQ$( QC{GiҦ ʮfg {/&aM}&'+Wv'oD[JB !V#X T܍]/Žn ϊvd."saV(0,Lߢ`6"cT EInsQӃNϋHfH3y)Q$81@px,;A.Ɠ pO}J\dkPՀM%DHk\da3`#Ǿ Ŏq'8{Ih,w|*ᐯ0;|-:gkTŒZhS )ۃucP $'; ?&CGмuKFb9~Qd>'{tlpa8Cc7M% "4bǤAF4 ?6ᘄXuWdS8-s06OxSqHGmMHVnHTʉ#$ߑHL:[_u'H)NCT޷ЂV3fIɄdfc`ܷ7 D-GӉVr ]9T>:6# r0AWѐg}*mfw*[U &v w=#lՖ;F)?Wؖ$ ׳ؤ{J]}TU| hUa%򭗲!qBBHdĀ朑pVjt\>11Ǻ.`2(Yp'w [sp}|a, 6WϪ"dp1pS똺\%,VZ7:1饴`x03hӣӣBt,\kbH'$l::tttӧM4/ bE벍 aq6yZvU+&|H0)?FdD1 LGj"ڭGѡ#"'SbC\4ey7I@P$"?G.u$y75 hh,b.4|R_'cjod*zhIM n|6VTƁb[A=Fm=%!ZhJ$g8|8/TB:X+-I` wW)8 2uԛNU M^2Pt,GҚlRhxgJ1"XӚ˵xx  F5c2feLIGNr5wɃI^C^ ՞ C~GSv>h$0gFb*|G0sHs.)c ?GxDP s}i q6B>i! FQNpr(`H=CX*3*hה>>*|?H[ABU]A}/aXH#aFp&ճ -+ '9;ƪI:s҇qfȝ׏N`~{ h8Lf^Ml  MtLjlZp9]&eqCZX04lWUxx5ș@` QiS궓_K!kN ͘:2VxQ\o(8::y# Aff! uS oa9% an bc$Ft^L᱈VV3M :G"1OEӬ_fJ4jkB3vhp.KmѶ FE(m=:VԲ?T~n~ <s`zJ2ȃ _~ T>xJSG" J]yb3ֽ;cґdP) :Ӻ.a mqԂMrPF ֈeĶpDmL վ+b6inj.1g_ WA@hxYV:Y. PP֞$? _$NFa#<%<AtQ1~ 0eҫL NXޖ:="oPēkp^<(CS! !$ՅT_Q#xR:'OuP^뇅LR޷N2jXrJQ:}NF@'LQJMq}$rZ!{&GGFLzg#5N464}R t:qKkrZQThFV1hDF!`)00dcRq00dcSk:^k=sNjrΎQ9,K$ᐟ@hœBd Xr:w @c0'A2Cʪss 秸;𦮪?L~uڕdžp Y@p^(-X3ys`bPp@P0BL=#t_Pd<}s׉\֩?4.>yϾvknW4+SZxN[yO9PG# dk7B,D i ja6Y!pʐâ52w9޴ a@체8*y^J8 s{~|G!POH8L8mhG 﨤(kaPogEcD ?~ +>$}P1ȝ/' 8U-Q-0՟u8Y9h+\}ɄpAYYCBQD.qCu]Pɝ6}Mn F;L9 {ppBy+Rs&|™!/W+3>swC H@ +.*tuFCd̍jhk}Zk}p JdsWCZ F!M$x\ԉvkǃ _ !]2Xz\ňV(ntx !!8nnG$\1' 2 m%f/ T`OmIƇ=*+i.Ҽi3(E,-8348G/U'4O܂]4xFO+NiZN 0sAm|)+j:H2;V9E0Tؽ). ^#fa ƋFaRJDpw%; 8dLW#. ,|'bd\#w͘:L`*x^: 3̼xrD; OV4jqM82p:zXs’I* apqu) y9n4gliƂ#M+\}cY!`L8aBBrc ƁLiUoDHu %t38bLTA2̨\a(.4B35@tw !\altVTAHUB[ figEȘ#4j 4f{{IQ;Xp(pu5v2x) E0 Ej7F?sb!(J,0o!Ii3iEsZKU ꟴQP]8b( jZ;(1pO 8?(M /-:_pdD*|ӽ 6}00OMz$qNZp3HL|S%LƭA|) DxƢk7q)TWyuaC2MݓYU8o۟P%lf* Py_(3>;J_GQѰBc aa՗~GgYw_5]H3!xs׆NW k#0Nq1 Q tYg % >#O?)2PGG9R8P=hI.F'U)šcufƃ(t2 4{zx4sdAhZ υٿb';OXt}d& ta)xΆad1!i} U^{=<363 /F&ٖNSAM-ݩ\0]U[U7k~e;s͒/~*YbRVze &O\2h2DĔV$d seR7L? ^v9!-R{Xn..3rpc1g5"7+1}GQo\v'>w6xFAcZ&DH"Q\pxzc[ fyGe*?cн_SpS*$b@J/bIO 6ph5&&.!G3QU,zWƬpF[3 . g/'Senk[G|.}R?.HcMp)/5I tG쐰w$*@!f XOPy ^*Mm2bod)qP))!0:7+q91xl p{FssDp̈́SxKUXыrahfʚ#XMY):[p. UyXcX0|QxCjsywG<>&Il<dz7'kj!K_ŏ000hls񣯃8Ǩ5W:PUQ6PL|dak'Tti}s tkYW[JAE `-KvSS,C1 _">q @c0\4DBإs ܒBe |6 g, h 7M9L95 >S^y\? `ﳰ+D}*otwhCq5h*s ʼn\}hU>{`ʏ"<#sE c!Ǝa+#}F m*z~kjJK{bf(BW`uɘx1r0D7ق.p<%? 0w]' t9hf(l`"W<"v<)mh^896g'FfO86ϟm'Âq@qC)~Mg>IϏ ;ECaYvխʦ/EtG!Mm*Ӌk;2zcJ@u]BME{* ؆sy0Ŭ*}i CtpzBsQ>yu6ICiC)m(L]:YJ),CIЉK闌z6CqW+&XR4rj +pds&J\*O(GZazimK!@2!Mg5D]xJMc6lɀlL-DPjlb7/6NCܥD(H"6Θ3 V&񠐨̝Cޙ dpX*6SE:lN:Qe˫ppѸd<˜+K I$^lv 8#C`Z/4I$i4,UZB]JKXhb)Fd0 SUHru2xI S!` y( 6"d̚],zVL$ G1Ƌ:T+ jtOĽ5LL=4r00dcSk00dcTedbwRwpTI4)rx Bhgb\0` МT6)p'̡=ǝ-z-QkyT2A9AA#Mu0OgYc;eb!@kď"$hntXxSPm6 Kݬ̞UXdwJ Xza~QuDFfT~.Fq35 ցGB3'x/Cwף0 S>?Iɏ p8- G$ԝ669HAN0O db&>C5jgXJ} w1:J}4ZX҂R1Fj9*D"kP׬"O\W2"憘AxŁVa@W٫(_1_cX p3Mj~OF,j"x_Ȫ%=jIw z؊$Zh”;} l=/{^Uݱv2U;&" Vw {r#XgO'}N-'S|Ag0 o&}TSq1;[KE39:JZ|x8ti"ojEYvMDI%F+u s07qO/ۋ-b7Qj*SjNcSYNdѮ[:e2B%L`vGV*S&8f'MdfNDiXՁ ljdeђwhfNǾ@Hݜn?L$ʑQC#dwY‹8v=)ĭfq Wkk]bK2t"Q>% ^t)idN,3ֻMqX "Qyug X8>swkŖY!$L]')V?\j0W[hYۄW iHN۔|JۣdU%Ic SF[Nf6E(atBzF'}u0 ǛctPDNW3+㼸8B*6&# hΜ23r2K0\Ny2$']+7/J3F\T⎚h&֢l>H2) ({ Af@T)yANVzZ>H8[N |d?٨F;ÐROxJ(fSၟ> '3ѐrhӂ/,@Ec:jn zF$-&4ۚk"t̜P0&y"f]BB#7Բ{YDiJ@83dn{\ vubaWGeƎ2݂`򄇏 Fd+!Nˇ cY{lN5> GK9ilDbR~IZi`E7X!n%xsXSax%eD >()=ZU{uzH ;@3xHH&Ovւć0v<)u=<[*:dEt7THE,ll8 <^-3vLhl9&ZV\soX޷mAϧ535xzȗK^M8#orxSDV0 $|jdҲҹS(oIX i.B;Ʊ)#G<'[:ݞ& IH[(l ic a/P+pnp(=vODۍn u[q_Tc ըۘSع nZE%>U"s Db/<ƚ#2BhFn2exI?t콜8h\!)Q˜&TDQLͼBe$ )ZX|dҥRf UQ^DwWܚƼ š;) ` p')JwÐ`)OU$?v#(h3&RqSZw0SCsps-ZVM : 8M͵b tʹE/U?/Ywtk!^<߇^c=LjQpKsV]tFwG1 U^6MU5CQFdm՞aO):.HME;#GR/L;4Z`6-̕RU%ok+)a{Ba.x_@7xw 9zN49$ R4@p* _(+;o hQkK+5XUvKF<T( 2O@0QdvZ(Zc$'xSv8f_q6ޚ: hۘ<(vqRP"8' |'Ƅ^Ea4|;db+QrPFo8SE.^W"d"A<.ݞm^~Q_9޷n hբY٢5 Z!l6 nF%j]rV!Suɀ)ͨ=YOo]U.Mƨ o ЧX$EI-ґpZA܍<WթcHCq 6YvCChTƳf#F Yȱ&:pBsR3\`d)=u)i&K5@Z'ױ]q 7NJ̜"LF*:`q,l0tS2u?u}ZDيAGdn)"k"z"z1 ]2 vR:,yҪ3Jb2v-5DCC:i_F*ha( +˜P ?ް̇t޼,UqӁOU3`vx-PiXRsB.Lhg$!`HQR`olk/.e+"n+ac0tSM@q͙ņd' XJjdi)$áOO8~?jN~hfcDX!<_Cvj=!!kAHr&*,ꁜ3#1vE*JL܇zhӜ1a|mVC 7VH7F Fg_'@lV*`YO̅Wǭ0MN{搜3oy M5l˶4'.R*W,eQ2Tȋ 3]>eB~<۬rvhMvEc.*CL|[M9*:-H ϡpR9|DZ}2&wN 4L!\x`F2IfҴ)M)ӧN'KS-(2t)N:tӧN:tdtjR:tfJS*c'N:h:tӣԧMӧN:tӧN:t:tӧN:tӧN:tӧN:tӧN%JtӧN:tӧN:tӧN:t:tӧN:tӧN6MN6MN:tӧOK5(ӧN:tӧN:Q:tӧN:tD։KSN:tӧN4MN:tԥ-JSGN'ӧMdӧN:t:h:t6N:tӧNRJtjR:tӧN:tӧN:td:kNDɲKSN:tӧN)NN:h)Nt:ztD,QɢtdJ̚(:Q:tӧN:ltdjQN:tӥ)jt6NӧN:tӧN:tӧN:tӧJRM:tӧND-N:t:t:tDJSDJZKR̝(ӯN00dcTe00dcU_l] !IƻsG݇b%y_y0@Gp3R4^{X&z0HgM=La0/4cP-cHku1ɲTM eu>g 8gxfLNݽ[y{8hwhF}ڞX9kX09r$%>玂`AѫsFTxU)#P\h)FZnćE@\ iYґQ-5Mmb$- sgSuNM60O{q 9v1{KJP\)AA HuKp.YS'=wjPwOwaܩ)~{})U ׁ? L0- O /Ͻtp)LZRba׈Ɣ>Xǥ=KONY-dX}rdnD.i- Qxz^_By~Y{ﺪaOcey6?״깦,۷#>8ӇHlJ/e&nFhrRxeJN2|KAD KW yLo)@ؠurꝻāAGרZ /Sx|f@ᥡxRC?󮱒3Ͼh j,DG긏ǴLE'5kn]1>P3 IP?x|)+)kiV & [8vڱ%zdZ=#š`hFB+;_僲D>$Sտ~T+.Sb=Ga6#}Œf䊾W{FXh~mP:˨ Q՗RkupɀnOl(<4bӃ4㌲ǒQaIS(_'"4r?aL|~Z2aTxs`S4>(SGyfHzr ]jBx6y+^ F^H\%J` :V 0W#>[mҙir0X?|=޾R  @ؙX# `#9iUݴT:=12Bjp{8WFM.]Bz"GO=@Ꮧθ _~.H\M<a6SсO aos8 M 0}kK`54lj3O(Ć`ߍ(F0(03bUaghGlz I>NsعU>6jHq;^UKuC #&bIR>W:0 & -) wm(+0INzAH_gBd7 r^N)zJqސDA(WMSHI2U^~Y;wdp۽\]1U@ÂAXDu+E1|oQWlN" ^h8Ppv|2` _xveFfQ(yvgDg<->WLˍI/=qr'AgczT, ;Ꙁq/!? f|˜ј Z?QTAG{%Wզ:Xp) v&T%gvc+^#F ma29i:lyS[;MmX$*+`ъfұg¯Cxy,M@azM .S aW%%m: OmGF@ORqD$'az@dDFT" /ř$o>8鵷5n󨌛Tf h:Z|DHp3mb\!Dh,HPs53,~}sP*l{z6XL Mi <>i2"rQ&lMJB8Փ䈤%8m/&dYp{NHX܁W<7^_^4 /sܐG6`pTo\{*Bl}󎓋NHxT N q_4{)~*sy$~S<~=]CF fCmB&<* E#@hF7 x5$yXii '`Y,.FU4ޒ^hY+pF/sj#UY=Q2PGtX4[pw"{(.wy!h|Aq{Y#O&H?G),2Y)6&Sx*FBF4]EE ʁ =uӯр+¯0a$`"1R^ m͸Hx:ttdMv)ӣ衑=N*AC@i>,DoI)ׄC0FD{ZH6#hFu:)&QPV?ԄJ0)S%џ?M+p(SԱcbiS% 0aJ 3=+JSC1"U'0Ŀ`5̇gJYXS&jyδtD#}1H M:or-D"\JK8iuHT"Z. GEZ^H0 ꗏs)7cNJGtJc&# 0ho]M&yӥ+ӧ1!T-xEGS%! HqK?U+ h8"24h \TWEOR$ "az ɦ>E|<,x xuU.Oadž!c K}{/*:5T&V͈-DnP`Jġ4hj| |*OywGY[V$oB*A 9 h<"g!0U;3Mb1Bq%^@O>^m)cj}_iCl<"׏@P+0LC `^WsC[a!/ _:r&IOF-$ڎ&63T3"&pJ8g @ 6z-HNwsGDNP֤f bV&<~(:>Ü xlX1\ѯ8cZpSz+txe#Ss:>z?D2 00dcU_00dcVY=dhj.Zaa$gmP2UXz"4Ŀ_4EM4b35ꁌf{AFkZiSg_iaAXi`1M=ޢ#2"ML[AW=H[c: c=ۜ2jZ{=xtg _yjB7c1V_,{ 0oւޞl*m:3pW $i^pX >v<@(w-]P`}2HFƴaJ#/̌;0txadX0w0񔶍`1Ih`%Ƹ6Y)"BP3e^kZ- d@Nn-= ֔; ˄~蒡ma5E#Weh9tˋSKTBdu 90Agї =O}<o.;bCB2gWU8Qp˩2"<+V(UCQ8s(.H,&,/:H3sqAm5T TR$oYKtTU !*PWn>c6`T\ hY4U`NġSCTð{}Wp) ^M,Il2 .SSņdɂã|;_~ri0_NH^X>o㦮Da9S'xǹ8*21W+9\0tK$٪%Mľm2eeG%OLDu&O4WHAQTcIe' =h& `Z軫친XVm"3/H̕AZRqسxr6ހ G鱋TG."GH6NIk5%O䉀wEQ6׫VX2D^#Kj'8(';SW\%&q2&N3林ל9W>L.*n.zVmWʨMj4q(5c퇙!g"t>Jȟ:p%tԳHa;޵5Uƣ=P0W':DzG~|+NeSEQm1Όrj7 3'TL<>rDH]יIU+ c8#hJ!0 %:a1Jlf&L@oaMxi* p\kF ;~H&-? L1ju(ęA̴Gwm~w֎6?. " 9 +/{bcJWbŧ>:_#Xr#IAxOH,gN81L93-6KT<}@|4Hs'Ex#Z׶&_]ً7Xwk`|^$4/. Ÿ+U('Uz1yoJ9Pa i** iDdX5UCp,b0WcH|v ŸO6;ܫ9V0 9FDөӲgulN1ؔg, P/H4sp"9~Fg% I`۫m2aǞ"d|&xSF(G` t\`:,(zl~<&Ʃ@6\V Vyf6ȵ*l( f:uw˃CS8(f4zP缌Ya'G)Â!f fh0򮝆AJRG9flvMXٯ'H#lfяnsG;6 :Ȁ҂0X+ QƠB~)x2$`3Lw_c7$~ib3yU(a+Dl~ƣi]zyI;zU8x)X)l`bjBF͓ sEՎ.Byü`runb}=7x6R0@f5Ƀ I& ļ\,^ A\4>Q$ @l(%*8~RjwBb:NCP#}QJW.J2muwۧ˨J$GLxSYw^Sg[$顐?WM& '쇓Ol>TYL% Z?ƣ %'׈Y 63A g,iyMބG+EćDxR@XZ&(j#b1R)fD{B:`d~Pw^t!\/՝=0LͫI&WD>< W(0I;Yݡ9D'Ի0m~D6XL ,z]3Stv1||.WgZnRt Q1bG^X8\Kd P{ps0)Rk (!Ц `, T.&1d]}jq)X8X|0S'BeMwGb^| eJHȓnÑ>S|40 Y6 &fU_ 8osn͡}|U`[pc2IӠlPK+ތpeQvW e)⁌L+oCs$+5`tfdbC@i @BuBtDT'Js=#HI烞ˑem!CfXz&%piv'4YĚ430P.;}T_>^tJz 0৳K?!*ktڞ]1,eYg5guGy)EJ k6EX >@n@# HH a;XgSy\Ǝjma~-g"/.;ptTw^%o \{#?=]FzO۸6Y!#/694FW' :<M5[Wm"%"T$.cDg]}]PYzIFuEtS.OyeF?7@ILӐuhX"0dCge,h\&Lm͸ @?S}~qsiC%i6/] A \\~d 뜋ʺ8僳/WvgB¿td#?fxE|*􊼲:1mG]$* q1^6BGZҷ y9š:9d!^c}rPȻ\,,ƴKӁ# 8D$~J{ T p|Q`HBKUZ=9{,lEPHe}|>aNwqlsoyxQ'rA?F_Buil" C㨜,7pF a5N l U h)҈0E{r`D&6הil-mCӡ86fgx?,[>"'u.)@8fibw}n1߱0@o**޼HY T 3 p1Ί>| (tǪ %)ʧTRg& 1*TE6hD!ZH+Ipv ] `-nTR^Hxf8)*n#5S X'xQg-@u&?MSqpESqՇkdhʞ8奔\dJ qrƸf8w`$jWpSk%^Eϫ0S{$Yঌ!/zU_(ђNIdbQ2V@j<$% ֧ 18Nspr=k\p9g8JOgzHp) B֓`\GA.艆:bV/ss}M$zosmH8Z3<"'b]s%_EY8.0'p/snBTtR'Nӧ]7&d}$aPH$N(CQ",:::::t}JttC,h!x(, $&_GGNJTED 1H"D蟣ZAcm?|MsC]ӄB٫:ʩjQO2`)Үt^(MK F) ŀ1\ ט7JanQD-B$`= {8N©F4)/x !c_hDRM6O:Hd9L@ٽ790&h!Quv).5t Rt~R>iAl02s!m ^Py`Uy6DJ6%'`ɪ 9!9$]#9]РKONbA0(hd<$oE]4`(P_(o@EËgJ:}=:t[JW_N00dcVY00dc>WSv8a1 ?p#^2:1pt&x Ϟ.lh6XLcQ d+ xg6L(Uٞ%'W^%k0!V_ !\ƒ|<),1?N{9;kЦªP|5u,M\4XgӬWP Z;AEhP/<; &T똢ݚ*}%nͱJc iZrpκ=hPm t_Ǫ+,и xC?ŏM5š(Sg7l 4<13:g\daC4"TY/ f BfŪaΐdp/xKRSR !!jD]5p9k81YL7QDjzpT]wyfp( g"M)PG⭠9׏{œ@cիMmO`M86%hth﷼Pa3dmDi;V*]$," $ZIO5r^0 hP.xT)hӕJ!qrdDžu4-xB8@[r0CgDJzp{ >;%> |Tih)nrDǂJDb4|2X}P0lZ3&eс z~RB` rpFՃdm[|gJ#=e\?B?fK-*Qt`3Y-B{~{5\P)߱O[0cmm HhFok9#>fx 0x]"G xj5όq+HSk9O`pEësҥ Q螖Yv`TV`Q>*@scQv3ĂP297@|聤 WT|z$[;8"WbdX&hEMAF A:=?"*6W C?Cf]]{ D4 > +3NNAТ,%EFcuVO=S΋Ct׭4SNڱR68go1 42Ѹ Z`_ln-#鱛|oYVn#!˶41MӡO oFf0G`8Ȍ޵6Is8ŇT=+hJ˕NG)*Vt7<3*ZeR:JȘNrD\;<e2_}CbN3޺Rp׋.6г+ztYy_a%{VNR11k94}F>;ꉚM.-2UBӭa;!4Y0GqC@-:UscW ;Q9MΓ1;qY}JDL0Lc4KTz[`ݴj1(;gj$OC3c˦(}ƂC&'ak!B8?M9dbN]- ka7F~~,'g#%TMV]X*<ʎN8JF|Eo&d2J=^=۩Nze-(?# n\TϏVa.1%L6qst\hb3o0 2G,=#6N^)=R$ۘ/l"Z!L{83@S\ x"5 C,\Ũ`؛/S4{]lɱxr o_y41b ,-ژr֐ qA`̃o;ˈ>VrhXER%iEd)Dg0+yP}z" yEHԌ=[Љ{<| N aĠ(+,8 N;ˆ'rФ1 mzL֐f~859c##T0e4X)0_ƽb8}FQ:g'p(S6B5x:[N uLLâ1nOblc;zPQ:GE݇FZT4+-Yō0^EZ,$"=mR(Yx3p)Uy 7xj,O0]4AO4LJ!j nqBdDK0DNuHR<1صDž<ݺTrj@ޟ⏴c |wqO<Q+{*DjOqOo<1;e8S NH`Fە/ в6d)5崢9q>8DVNh.YwǙ\-n<%@: A P?+޴1֌ִ8x҃i@I"G;h55fڂXe03:*U| Z4›Mc5k&k !8޵B]huDt)tљ8DH4'uS3P\09߄q53`I.&`SVp[ rpl[`^.W*WhyղqRR1&<7p|mu) 0M6zf~Dfk-qmx ,b d`pSnUR<+S-LeU̵]l*:2pwʰ+sΈvX!@x@%^8~F8I: $*m. "s"/QeXjIq_8)ƋubA;HEp)XUmʿ3;X $U8aV32hGsӄ{:=% <I)ANY-Sy%mGdA(S{fQl`1-XB ok{ޯ@2VI3 z6KPCb!S+m/"hQtG|FE2fMv5[XW鑒LJ4|)?n@jڈ@U0 P#=4&ܩ=Om?h)DKMoeULcppI3o5+ZRYlWU{A [#ދTҹ)_E#űW0w Ibw*irb\fdA^0!L'>eDt{꧹kU-g.c(1zrȤW"| f?{R& I6n޸)5sRaƾlFԃqF&&gSB8#iBn FM.t2<2֚ylcϾӧqxɎaTv ;,pނX }a_PgW}!laO+h`9prAу[Ӄ;plxcS sG4[!S#ug#_kCr kQǀʓ"`VeY~_۞*U녚BM>\ 6 žV+g-dv#k Y98!|u06O7Ш"}-7wd:li Փ <>aL+fQ ':XGDt=X6"֧‡GXѠ2#&N0p)WL%eh̼<U[e$.ILlÆu67[:2p2cGi2wqqxC$]踟kugRp>ďO']`o>.Lp'jD*aWw3tc 7qȵ - a\]=-@8FAtTƪ4O[;R˦b*3jw*1$87us[R8qwRzs; < E t7>: 2}LѠPH-iYoʞHDĜLn,l)mgƞK#׸iAIWӦOr6ηzD 9MvD" BJ;`XƵ-F4|4P[c|).2rB2m4NִwǪn,PN۪ۘ֋M+4#Ӿ, l1ϵ1+!v^U O4Eq*bƂX2ZuL/ U\l&zP!82ٓ/TѱP`R%Y#Znz!+D䤮-s;{ݫB.O0n[A A0gl^gXp~wY[gS&a`SJx\޵r3v"SLak31 T,3]3 )c>;7*'qE#v$4k P24XE{=)㧜 @q&9c!2RtP$ɝdM^ m e꯷ڥQ~ThF$9fd" iT7{.!90jpϟ8ϟL&Hϭ }߾3t!8uuq*]"VB:hO@ydJR-EjD]J)ćА6zMJ C faYp)M`|LX? ZH:8d j 6(0h Zt+ӤQ @I# p/W…Ў{M`p)MpRM+$ҐB} h z Qp\Jy2ID::tҎ:zl:tM6N:tj:=:tl=::t6N:tӧN:tQӦӧN&ӧN:tӧN:tӧN&ӧN4MN:h'GGN:tӧN=)N:tӧN:tjtӧN:tӧN:tӧN:tӧN::tӧN:tӧN:tӧN:tӧN=::tjR:tӧN:tl:tӧӧN:h:h6N:tӧN:tDK2td:tӧN:ttӧN:tӧN:tӧFkI)}:tӧN:tӧN:tl=6M^(ڝ4N'KRӧN:tӥ)jtӧN:tӧN:tӧN:tӧN:tӧN:th-N#)ӧN:tӧKSJSON:lӢӧN)NN:iNSN:tӥ)v00dcWS00dc"XMְN;Ffo&o ,q 90> !5 i&|{`5"KrP>3ӄʷ/tެuoxH?6o75PuUhSM`L*,l{U5cu n9L2#440 aa BxLD@7DV)-(g“&»HZqm]S@Wɨã&4ܙZyn V `xB"Xd؍S h̅EyاZ0xSf^hyxP= hyT}i8 9L>xv|u-H; <چ_yŽLuw9EOhGO !o$CF ._VYpνnYz"Z/iU N>#7n_yC0½^f\31|rόƔ+X6\S "|55 =IqGg9"w 7 dW֚ L* z($.m7TY),8xXUK`)ו Z1Ed7"ڗڷWxS]LAUfk5`7+# ^*RqpT]LXϕbh)+ώqUSIԤ #RLeۚBY7$Hym !FiF(0X L"%Bar*[XwBPݭmQ ؛3sdL-T)` =TWt>A@~Fh0R# g9 $Ƌ02#(/ 2@. Ulİ@'ƛLıJ!: .V>&pJ. |t9N vD0D+ i_Y j ei)Aeo@Sd2>z222+cREb1^ !Ťr_[-z})8nI` v/ttkYk<% njPi0]Q4nAFL 肛UWiy.E`j!Q$oU}IfYly`|=MkƔݦ` ۺYFzY_ƛ^ p> %b*?/߷eƶ F^a2/]6phM)+%88́X\mq)QN Ne- &ԟ@mG (PFO6Y`]Z+T. পw~5/Auncωœ/ԙ`:-(fY"BRÜ`r޻ERh 2 0 zj ڋ+UK(KU*nZlٱ5d,nqҠ)X ,`P8H6 ~?TWjdk/ ;W92"FG А)}OGstBéI G? y [LuLo ›+Zr!(J/zC9Ay9Ӭn[%B3rҗhH/Աzr%^FKB1(_]B JqBsʦۢS au,vkF0R 4-S* 2}Bl9,<+Iܤ`8Kϓ> awNJZ(XU21T˷CXL:] J2%28 v9bEBϯj3 X4u4 tSPEbFpS.aIJ@ q(WrgJ(|fMl]T! DiEAfháM= *e ITKe3'z$6cQt@ IJH8`+Nѷ 0Q"Y^/)-8d eaB!8o3FF\VYynGd@Rp6{DCM{ ȧV_ SФaGSALjz pGI;/U9YêO*~haKr2C֓T2*{qL@`< 9UAЗ{8ڊI60Nj:Dw!MQ+b5zP*cyb#~p)ZY#ǩO{dm}="[B˶+[ )d>FqL˭aLH'jHfձ3 BD1`;}E!E*.@ 2`M~lpo;GV€|]vrϫnrTڔ;/w^ œuwʕz۵Jk }>R%*s<\H h`MYF U_^pΤ'OB*ʪP/Ã)W7k3ol2a@3 v'VPSoN@Ʌz TPoH a\.m'7_oju73Z7TSDES oK`[%uud0ռgۉNdhBl t8Bf6k]w;a1^t>:neJmKz,MSzWj'P0t? v3Uf'495.΋y%8%rLLmm!˼nR0MG؉oA-d# @A:_Ȍ!1A@8u䉟]׾Z=w}6;E&8 nnY7.&#FȩZ0A7~I |+&J/hrIX р)Z{1 ~%=<%RQ3C<ŔBX%B7kTyBNY*V䥼D2HUR3硘9IJV4@Xp΋ĸ {02B,vzoRsnBNJX~DIRM4ju~I.kNAS)) LP[ѕ+MKA |xWpdAzRJGl 2MMc0a(PrbvZbӶPiD:nu902 $GSdNDCᨒ)ĭ@PSv8_*qi Fvt@ 13pUm؈BtiL&].o %`O `EW ,QzAWjc-}|[#Qޘdq"u`f0y='qĹz"ݑ֡'؍]%[NX 7|%Z{nh)oJ&WZ30Rȉ7n@\bVᚨD:\fc&HN:? dF4UE,DQzJ4S7+Hbŀ0߸ b>kqIZ@`d%~)싢eBWtm.Ffj@e &U֦O51ay-OFHnj0TvVpyQ flC(g5 l'IؓehY²a_^H@ Ejj<\pTp3Rmu}B}oF'ߒ㸧h&Tǔ\Plr?W}Ƽ77*H!2ta,DRF$@$4wofI7TM;:Hy ` P}2^Kr熋 Qk  D(AFS a l>!c0'@x'''V l؂N/jrGNT@$pRB7]ih8S Qba( BX_Is)4ԇg udl'PRȾ`ZN|Z$lğ1[D/P")N2t(+) z kSXFq Ц}]u#D63HFztcUb̍gLs9cAF)EZ{]O&Xh(50ǚPaJ0 Ah,bB /_(F^RڣbЦ Px+`e9zH3"$Bݒ)*Vffݨ4Ićѫ3#> sU{ĬI踄G57P0+K> `1Y.H_ PdS~aM4† 6w;Xb(W9!RQRpT>RJCٴЍ#XƇCg Sέ^h,<~H)xaNDA`^kŸxFۘ00 L25a 7ۣ yp0iHĦV n>}WBHnGGKShD#Q:DHN)k_GFt:ztHJW-? a I v3קNoթONBae0N4>((BҰH(6Gz0gqӧN$P*M" BDѲ K*RX^$R)? dh^-S"t<ä#΂7 p tH2+mlռUdL<ѕ:m_(uvJ5*,t~S]V)p.!g`c 1t"u+L zjBP%2F "NMHܨ]QIӍ6:e˼\"$H4}//2*:zǩ+}.xjx( xgwCCz  'pB`/UU/Nr;e]0sG|pQ(sᕄ3Aq Jf= L;"[=z`GáM0# xG9TNP(3Ϻ>}鼘q8+||$CWZ6Fӓ2EO8FGrir5C#XmK&NaӐjc*R=>4>"dW&M{$GX8WˠaG\}}:41sf abh\15S&:SB9L4hG'-!+K!&8]>I3 N5,2 i_U)o̪te$=ϡ&xhFã8s/KS1 yNq']b^6/ȴݩ|حh-R8K톽 PTR\WW=/Oxjf4l}O;*}@[f1O FÆw斖4ٿ(1B*ze (tңA~,W "S>5XpvjP]$+˰%UȘg423NCɬh <3a97<8 IS?0-L%]()Xt hHuW˿N sc">s_20Npi7"2tԐLtq?l$/_b-lQ   z JЄ;QqC-g tEc}Nt>31VԤb*WIDԚp.5O 2>6P f 2$<H t_V̧Epf[9:p,t$03m<𪾌<+{Dę7212~7%8xrD*ZWAj.{҂D)_G+Zh Ah'T F9 풞2s0;ǁqÅe: QPn*˥oS#0W&&&UH uvFWS*S.zU_ ԱcTN.*k (͔tb L pج!)TO|Cy/=@pdF£AxK5Q;U],; Fk cxG"/߫jUt(_C?{j9،ܗriFMYBۂ2L@B!+whf#C`W6x)XGm8e){ ..B< q'#O`3>}T܀.JV d rn8F +f"Azz5TɆp)T1z_b*wғg F`X}X> `a+p )w ;`:;'YDJ{AkԯDP풊! E{>Ph{kVn[yzGd${vqͰ.);3s(ՇB;T>$B^>1|`8̸YpD*.pȋ%G#?7`28_K j_H )35430GB)9a1׹Fgd8RNDgEFQqeOS%NSP!4<i=&ֆ 䋋!5Z3!8F+CveM?.{L|֕L]}LѺ=03h2:a"d v6Czuh,GM(״-7imYzO9 3tHtWG8X?tPT62@|V.ziV™zVXW#U_ Tّ݂B9ySu6!]E<C<;^'X<{-$5Ə&OD!XLpXAPIBɆ;L q~ May\*Ys$sJ}@ZqdCl"3O1vȉ`>Bþi8OLg} -baF) ه0N>#TÂ(zpS 2KfynlѮ R2G;y.Pu 9p˺aIgI#NT?>(Cgw걑h]ӠcwU @\Y Kސ)]V(vAB1P}>֩6\<#d\=lz:9P燐pP)9Efƌv8,'faY= GRTE ` ߁+l^2'u+jTs=V2戓vxʨ9w>!Ix-d({+.L6rdްpbPdts:kE[Gg\{o75n$5%J$)Yƌ1R LaYԞF4TRKQ7){\x)w9;Nx};4NZIa#AKi'F\y2 nn{؏k̈C_^ͥu@"Y=L0aX\z}SIlK_Z5:A'i8 @e[?*Fz+Pp-e@HOqG"V) *(bN20?p1zxq e8p蹞p*ɷ닎0U0Hی%JWHXS >2oÔ>)P_ks{dz]Pffl τYri$& w0~SgdВ\<3 >6]~M0b޳j%$ b ldjGyF4HORs+gS I{+'f-H:4s`_37[^^xP=Vg2ngH ]CW!t z/s[е'°E8_Ws/?WXTX麆]9fTy'>: N }4z9B0r}:SdVu0vtx&}/I F@9b(3\PV,'sqt@{g"1:ɉn0T% OHÆ@xS i3ZEG?Sj}nu|U<.z VV^W*25мy`ca ѨI5O#8У]3O9;?oy Qj1ÃByإ)<8vO7HZwM뜯TmK^|N@׺F6̋AN!&5ro46T ?TCf|>(IYÇ"wGTQ"JvNJ(;5GKiFNOa\ӥ:[N7N:aӧONt:R,0b2itU\0*5N$=M#:@8DnNtFz@:t)VdSI3b,dOPLph+S56a\7NTKU-q}:ttΛE]3IQ7 93mՃP˥4F0`}8ӧJ*nѰ)ƻ0 pbLCL,\F2FA 0FN BC u$gGO==,ɬ0㠈 e PLˬS' % (Vy)VmfZJ55K4!a4D8tљ|(pK`ҍ5撈ND cGN rSӧNqƎCGiPSDakYO>e#02U8Ϗ عR!iAVpTO1tt;2aV0a@e;)3>0gMB>Brg  Tv#t*liNSDӧKd 'D6 P!ޖE#nu ɷ "g8xH :=[OGLt6KD2oFLFKԩ2V\DC,iJtޚNg:t)MvPΉɵ+JR0\XF \*كu/OMt=:tDCRJ$nK(C6CTOJLKu,D4VzQKas2tt200dcYG00dc ZAt},70$^jZ962/ƁFqcC"'s("urd01Qd 1sѺy,ǣ̉}?]JӓքfzeN.N{`ĀۯO 4?<% i 5zpnqv.l"ޘ#"2|6y2aWd@onj宭UkTCIw liEDRWϊ j1y V4ᡄx\0%OEnL错i9B7xpDBb}Kv \IFcG`n^83njI"rIh-<5W[d$85N+g^'oOT-d|Χ^G{T_C/ Ws-9d^U>M  }'FTwK?W A0SvC7ᆲp{W\٣f E;R3:;9IGLֳ"θ,n> tޟ/~ 5ʇ ̎:ʹ&1Өvѣ< 45 OsH" c {Rg2p*`fscI$ܩr,]dKzh2Sé(]ᡐSKЋɋ"xڜt-$uU]4u+F =8iӦ͌…RCN1,#{y6ѧ BSG\6ʳs:fki൑굈ȈB&ӎƂyh>k]4f;\1?@Ӯ (θrFI#/OÎG EKHC%91u2$mj:6.pSڣ]a1j1=7ruYa>1cXS:mgf# #Q^ f^> ֝׸zn zi ņ<gS6Ő 1Idя G/V>Z~Ƙ;(>tu"/!XҌ%k@Rbrr +bv55}}t?2`L.\ X8~)i -Ȕȟh>nNZbm񇀨l{ؠЍHŽ$y8 uTvLiA'28BL*T`)ԝ5ZeH603 rgFR4R $s|(~RsmL>2d=yJZE-\|)ݜB.]*'e_"E󁳴ghEX0*/oY$Y;ЈgYdp 9&58L>p2۟}Fpv1iL9Zs8gjr(z|ƺJdRۏ=s U}Wz1a)`j(0}ieXNȾGMх(P#JLiT*`e(\BCoܾeq{}Y5 "gv= orS?z}ph2J1wH{n|m1Cn{,ӟsl;G:3qBHttttӧN1թK:zhM)jttҔ:t:iN:n'N:ttRN::ttӧN:Y#:t:::z:-ON:t1ӣ:tҔ&tӦӧFӧNfDDK24GON:td6N:t::tӧN:tӧN:td:tҔ)MdӦtӧN&ɢlӧNӧNHm:tӧNdҌ:tӧNM:tӧN:tӥJtӧJRӧN4MN&ӧNJt:t̎:Q̝:tӧMDӧN:tj+::tӧN:tӧN:tӧN6KSNӯKh=)N:tӧJS'MDt:QҔ:tdSJVNJu~'N4N:Y:Z)MӣӧMN&:Z%:}-JSN=: 6JidN)NӦɪ[N:mN>S00dcZA00dc[;}FDZ dᄊ o޿b6XF}^}Z H=ء@Ǝq@qT0I>E8ɨF xC0C=pkbAs`fVJX4yoL8t&c_<=7\P%Fx1$0ƭ3) @Ͼ}@#'NNqґ;O8HUELE s clɀGꢉؓQE\Jlxm]$yÀ| {57i<^X5J7'Xq@pc˻zcOFNִf0D֌LUMUZ(`TG)n0'ђgWqb=gD>=:] ;@AgHe<}m0d%yrDGʽ+ sX#5!AP`Op qt(SAJ%_AWxb1Q PEH^?TVTa0O^cH1m%06e'DՍj&% jFHXrڂ$wDZ@)aF&rK^3@S {T(bӿ}J35zةNᄈA&0FEx!r`4?U2EW4ug\&w}K3l] >X(~SX_wG0#8ꄯ-e"cHD}mh,N lVmZs7-N%/f^8ɘwhsDpXĂXǃQ8NcĠlZ8)8cK loXK#[pW<)2 L9X rѩ ˘4/杤c>Oq3)B}9bW"*=+_\3H|Ǿ{X;=dt ͐dD"tT*9gT(o&Xd|h ȝS#/1W,Մtޘ,ejVZm%V(oj˺x'#m*\%Y +\pS/TŪ3穢a&ZL8їdZx^!6a8aF# =2W>+%b u5F<jlsヌ`(uFrYۥգGSuWDy;o)#:F扺˨!;$0d@-繼 {q]Ş,FD餅ٛgg)?Rη\W U.h0"b {!*~5FY?,QQiHxvcK-gjϢChvǶ{Z*+b!9{$cq"*e89;ˢ0lf"d]eC}" Wܛ~5ְ~_b4yy4Ѱ-xD(M4U| W: '$/C@Q(9)Y<bU"՛-Ʋ/h"3 [ FUAZ5OrRĀ/Zai桦C HO2U+ItP XLLkk'S@lSPjˏhy;t+ܾf< *@Aۀ? +S{Yl2ǖ/m |NS@}6QǽP?SїyQ1x1^FUb5Ͻ9* <q!)Cf/pQV>֪m@ګq _uwbnuzk` 5-\3 R%x֤LP~k IWk.&ba9{{Yr0 1xC./Q}>ɀ _axGߊhB2vM12Q΍K,3 ޢ! "z/y%PǞ avyBo;';DrFi*jpϣ&ÏRɳ93}tb`F|o%~:#wB>9%<9~PӁGZ|;X\?Mb?"x%?+[`t2w@OPX+Қ4Fb8TxSTI2wA>H1N 1'3"p|)]QwEc"'5IMd }PXnd5[ VPIޅ6?7uMx <^. c5?aXad$\w¯M?s%v3UGӏNZG~t^a<4"8.~ C@<<]#!t2sE2ZSNQB>g`4JkVHa/S "`L-P' LLD̵<:&ψ U\<ZnkO{=#`Ow BamBۘVn;q=Hg q|T^}{>#Լ[g.twű!m<)2'bG2nq6Wy:`-9t\@DX9msi]mBo'^M F`z^[\Uܚ| Ϸ_t >Ytl^ 2uJ͊{2Jˉ6\'r0dNi_}]3w)Z:Pt`͟XNhh0,oWmm͋FF|-3cߏCPq:W]1>xĕ5T^BxwN'0>UM]$DLN~k,A͂qcqL:f =)Q,#)5M>}U .oYV! p43P}M3nSgs ϨSY9[p2>S~Ai󮍵>Y27or%TDe'RZDq{zh:JJ} `&'SWFÇ=Yz &*a`0ad~=)̡ i93&$2kZ=([#಺_U~r`Qc>ɮ9: J r[m3ƔQW cqXbph*Cqq iYeGʞ ǂd2Y:.F,|#'7c0(c?!IZ^0&L'GWir!s@JU XY Ĭm mpg0CБw银oJCAǹ;3_O$+ZBN!>%0N =$c ߳?:1ψZ* H~E9#C䏱a8,pV=uS$[LE!6o()aFlTh3NNOO'W !<'c8>Ǯ`8@ЩǓz}[g_2H::::eKR6:tn%y>. |"tAq ]DB JIxh ǜtʎ1eGhBH>)DxUGWBH'H9 Ȁ`h]b2A[! I޺SMӣjt\ ⧓,v k–{(*}*hDZbbgܨFDʎc p8o&{ c#]:::rqAàc-;NDth.!ż)FD*/G846aтa* 2:k Y'MGGzPtMGKRXBq ɛC!Fd==uitxAc!5=Eo9?QIȏ8d F1 i#ʛ7G'˲.xt?''0|_6>.][^TC'S5Eu c{\nu:c*:`4 5&$m D"\ϓה7:Nd|(\3+zW6B821B2;ahN6@P@rO?)^O / : *yN> qr#1ySg 0(11Ǒ PA6@%(o dgxgx<)kEayTF,~M$ P ҆x"9t!-JtQhR?';"T6dl3MMfta!(Ш%:JlI~ 'qړE$Bn00|J " *-WɅ88mت*dU1 cDFAKB>A$^i#CyZ} N6Ҕ(=\5MΎNN|ta*hB5' ƃ*!1Վ%.kTVַ[bB#1"<}n-HW2hA/O'NDF 3A{:xF xw(YOT CRaIҔ:t6JH [*o:<63}'Ȭ"#LF3W62wtn 8*AS›e 6px"b@}{Y;8dj'ޟxvgI`i- Ð136؁;E`Tk!{;M R%lbp_X͞6e|т%N0؉ϻ8/Q%[hN1 o@$\<f-p\ @Bp]iؠIjϬ&Sh'I RnǃjSEӏܯmk'n޶yw'=OjfY8.^xdGAW3i0@wgf4lԪF?G)mOX->Vn~>h '. G8Cbj ãZYpNPZ ^n٣9p~>|T̗g{G&hLО4o`< 6$ i2`B1(+>n((qzڐ Cu|fYS2깿p"{ li9ѕb>ϭWDAp,Qٻ{FFj!gA"IvoPeuKv4t$&Pojӆڽ2SBqd2z |9O"aGS"``Q La@Wںqx "eN8 \gM$!X%ڳ^< {ާѕĨ%,,!tlсT*<-ЃqUAVAO|):kWWnN RF#ӑ(e >;Qѓə62(zg?EU:ॠUucj_1ԙ:V:jPK >Drhu׫s: |' >&aw˜e:| ~Qr~LKEWG?JuP##ph;jp&VΞ׫->aoaYohJcgs TO>}% sTo | }YN ̌vo4FY1#%Op5SNLtL>8)Gj>Im'{'+mnszhėB(fj*IH3bBaa\Ut(<_fpuT{qO$)eU*jA' =ϲjtk5yxRbߘ-"%vCD0`{|"'L}GPDg0X\fM{z j)` 4"23&וb | ʚ\ A՞hrUj2k.Gh qoɤ٬A>eyL("e5y7x.ͣF ES +i}΋8LzSukg UTU0JT$Kz;V3(gTO&hQo^u>O(%|&ɩ:w ;A: c?=IO`^G EX@#"ID4}էN炔Eh} f e؆AF"M.f**8@9H8 qsY #N=D& %>5z᧯,`љ'e( RMuS:/=DY;,jREW\_*pSpBlß\khO_aP_T^z#f) ]$fƅJڽQm W=#:jZe4N4h o÷1+8n^݄!K:,nzg0>%OYb(VAi[. 8fl43;!5c%mFμdx`o_L|E WV>mNt\LF!A?_&~n0\vUnɗ-4B%ߝ8~U@Jƪ' i#D23Ĵ$B a`)EO +G(I{Zti?lR[o!ϩڈ"#aOoʷh/cd9MHn(>QD¶Jْ/N-ry:G5krpV'À%T7Lii@l qE)m<=ZpmyёePP*X}8PoAX*gdP;D@:WGKTζm$|s] sL9geӜuNXX=zJF3'64YM<|APfΎZԼ]VᐍxZߕ GJHԚZ3`=BM8_1ÓY8'H |pS?ˇxsӘ):;X0os fQ ZT"?@a`н_*WTc6چhe<)Kt3V<#R7zyIM|U! rpT^xR2i0>/\%C %0+aƁ 4!c%jdLx}.d*kD6u}pg9ڠ4,`p ; "b8`+No &o;}ahb+}N)PqN!DCPX 6jop2P)pjP]Ya#@/ į/튒 B_ȇ2 թRQi\"N^=ia,b;KugIV}EAMDڌJXiY4nob-N35Y3 {M4Ϛ;}"D &< "#¾y5CxDN,5SGLVϤAȡv|TPHp3 wNw’;瞀1d%} q8a4  wbgL^Odü\3DlɷPngdƞ*4F`iN~J&:c|3yK<$tY8F05 d)u :U(Q6zOҔAэRu \YgCc& \(]P"{HfmzdLS`HA d׾UO"|8ĄτNѨh1~q4p=)QdZdGOQ~xVH@LPKs^ IFBBg.َau*Deg hagcX_&< P%+H::tIӆZq޹'̜VŢp|j.qW]]8 0nh@ƝKT ZHwWʿ [,|nޫrN> YH1x 'EAa`BP%6?an?~ !],3 "o0|@h5]%|U4{c>pν@ჯӪsL 9mSb6G#cy.֯F(VtV2 8H+]3Y+`$\`~U2U2^˜6@f!O廌(G4g#jNۤ'*&O`W̹R$݅ ^ ^QLѿdb$<0j aLpwwZz^_L@R;oňX@# P߷ T醎Dd(,/ L|Zsjc8h L%\Yo+$ /n#S=bBφDit$'tgY2G\ 9<rB2qRDf7Db35$ЯqҤ`apSNC#I*@Mt>YhP92@/ؘt,)  { pPDe<|(pH,@(T2LވY#_ƥ I0!.2.V^{DXşdSpdbٰ֯d\pN~} 3NUJ7$x'i(S ZJȌ}\[\ǠpQ;2v BϽ!)M&vL2YrDqPʖua11re ko2*_N P>. j+jIV84l. ؐi pO\L*k?axX$,gqdc$d<%ob<{ӝ8וΨ3"6A> EVN…%'= tiM`l ASf}bUН G((_DCj>te~(BG@nv4 tF/7Mx-BhF(p|[lv%Uҳ5G)8+B*-mɭ(69L31&^/&Ue|L qƹSF{ѐ8(~MwR_:vsѠ$? rM'L9@_Σh1oq`xTm D[+V6[^#/s psQaC1HDC!L0wE~9vj? f#X}bGRFL6^~i5AP0 fJ?Z(\b,Y卲&Z6p+W#˜ÏՁmM>c?61u˚X=:" ̮m' ר2SFxZ3@qXH~nC\jf \낙DOh1!zKNΥ6?2GJգƃ2jn_L+ʷteT;L~֞M xUME3Ws63)J$؀'gzHܟhͶ5OJHTPȩDKLXP:%éт@;nWB a@7)JGs'9ɻpwVЈ)PT~B.PaG]Ж"pmHD;QȨo;p*GЦ7oH kGuF( bt5>6Ј@pttQa`Z}>rI g kgԷ~|6"gV|O~ݍ) jikvbqMITHšFѦqzb!(Dic`SoA #IyЙID$趵ř&Li)KdLg+ 2 B}TR{%r 1JEV#v˵S/(&PX\,wtd3[h~KkHE"}M7.APR=zVlF(L-M@y# OQ>kW)Mfd c-ZoNDqYk$}aO0Q+SpCXgxv 2͂5tuU0~PHwgmőp54ՆT V9BQ Q)è/lJcߛ*L)dcVUS.-<Ȩ\w0-RѰ=yp|?}f? %2\G.8m&?WFw&ou>vEy c8&0LL !J1 Z#nA0S[DX+"{CBg=[D5›b)Zŭ-FoDk=c-ƘCh>c 41$JV|$*ȞQW!mjFqZhbۨ8J0hXL(߈Q6R$8ԣ )!:"q"0LVmǭoyZS7e 4EU0a &<ΪGϞmbm~SBKRvqaVÎ20OΪi7X:@U}L_~a6Lo[)UbC~P.}&$c}J*PItPX'F:1: /U~2ڪcع e "~}ìJUGx:̀.61BPƒ>F8r(Nt4c-^~Q@e 6|~P,E>sO0\9S00JZAMRUFr*#@6S7|-]˶a^?a? ]p* *`w&R 1d!mkw_甩'm]>/sɚ!7 S87y_ If/ LN!3% OV2Iw#+=I-N}И)p#`_\!tf6$gi֚2 N5;+$$Rhbp)>O"/K<LTfh0] Hp<8EK@dB<"䗕 c7'W(u`eI_1MHH(vv/kx* VMALs"l"%pT*7'I˙/M"Mze B^*^3ƻ։-ȱ _*4)4}m;xQO&i%彛&Sւ9 TЇr@/y'L8J]@pcrm@xGpz<u0Q)#X(pVM; rqq*\_x#6<#IfG۝pMS *yp)aBd+TgpZ Z) |~e~\fQ8~BܹZ=LEjJe  ]uWhcd/<5=*z iȉA[Yoޤ # hZq9q AKLgδrC(ٸ=#XGL;Rrt"%qO'J3sU|`ON8i_=rjҟsu3: FP0ίGq9FGF}cKffÆ)8N]3C* Leb9 (8aD#`Qf8}$)JNHBV^]k^"%B\hƋ CޗQUfqnk몬RnAF^ QJG,:sMƃ@ -ՈattZ:DdSt*la3`P1&Ν:)!Sð 5qM w'RYFEݖDь;Cͣ<\NF但^z3Km&|wp0rˡo!/.zQIC[roo?E,ӡNvIo1OF7@L>v:%C2J2-%==#l6oY3>nmnj|)f2Mht!"<5М  ϸ(Bt`AFpÐ.Е’3M q-5UTaNIaC/倫I253q@͆KشXl Jc!Fy Tv<(5Bp40@)1]gJ ؀<)ǿFfA7H tGTkXWl180Ѱ3m9|{~ zwlOoa( M.c4%d,Otfw,@,L|f4fH1} N~v=CCv-\;xSWrmS0™6pΥ,?g['@,n.J|) C Fn k,kDGsG0f8Kٹ$9Z7Af.8eMY9O\X|# PRSc'h;/JV'>NESZ3GLv *WA >yo ł B$tkFt)dNԢ Sf.{~\`g=pd=7BH:tztӧN:ztӧNN:tӣӧN:tӧN:l:zttӧGN:6N:tt:l:tӧN:zt=:tӧN:tӧN:tҔ:tDӣӧN:l4NN:tӧNJSN=::tӧN:tӧN:l'N:tӧN:tSѲtӧN:tӧN:tӧN:tӧN::t:hD'N:tӧN:tD:tӧN:tӧN:tӧN:tӧN:tӧN:tӧN:tӧN:tӧN:t:h=:tӧGGӧN:tӧN:tӧNM̝:tӧN:t%:tӧM:tӧMNJ2t:l:zRN:tFӧKR:tӧN:}=:tӧN:z:4N:tӧN:tӧN:tӥ)Xʝ:t:t:tӧJSM00dc]/00dc'^)}}ݥ?.x A%;޹(XzlW c XJS:q~oyեZwТ)B6{t p̉HEJE";% }A΃NqjVR*(QםB}!:(Iq>ٗ;Qd"NJP8R?>sϾ.9ELNr䤣l +{iKg`4ҠfvХupM$hЦcM?`3Ӣ0$+f;0j\%%pR;!O $a(3xFU!|8ߴSΪMS~XԻMSA%gcs @D옔[ &Ɂ6ti(ދhp9V2G;9g]TonP3pb1{R߮#Ef_ɌDˀRw'}\dkI`f(MhaKO Ux8* < zv&H8Ws€A+./D1vưY4ЀS [kBJl{X;kYEȡxy@9%`E9̋ A`3(FcmUɼnpW./ݩ-"F/cY|bKP {)4L7)815Fq19ÁRt`j=Qq>04C"ѦP&)Smh!+Uyqeqd|%|_r/4J!?O usz@pCjzK< jBa0a{\ζ`hұQv,2CSIı2y!HżL !"x2!zN }f\f?&ҍmnI/7R gS{2#Z\)KpULTha{O*<])T+GװcRsQa@3;XTk?R3. E7!yQԐ4e0[;9~ ð𦰇KyjROYFǂ_iH/VRЛ{P8̽ŁcÔݣ Jr\H-sW7IOL hKĊ$[vL2,ScvX.!>zpw? ܛEȫ=KL`w$fQ˕?3Wڵ^WVG b FumW;t hxDgfnpRC*YS@?=xG<_@ˍ{z0 y Fs,¤"\!ad^lhqK5IƤvg=lsG_ݝBqq̨ƫzi\5]a0a%R1IMYsTs@w|f5ࠁTV#Po޻4ݍ4N$![jY}dQj*[9M؇Rmp8!c!Ft$X21YPZPq/apf9M:+%XQ51>72s mD #"ׅ1B.~ﻰW|8'E?NΫQʶ,Rkf-tsSQU7!Xr3mBG̶h!XB]AA2ZpIwn9 h)i摎/{e LJwŴ<t|%E1c 4Aa,j"j.{05q" &tR~)cw Ɇ0xs2.ZRnZpF.:E~\NxXG3B ˜ C x}/ خgP `-qe&rg%┉cD B+as攮 ?"&K\\3H0A@l"rP6 2pϥ! Lq`0 u̍3E Ȩ. ,tm)<t`"3 ƌ[[{ (R8R r VLiDt}7&‚~B-GF_ ȔRbEQjX3 aմzQK mMK1"H, a+T jtOhc+& AYn5;uEx}N~‘}Wwu@9xB(dkܐe>I_01^?:olq=0QkmVv؜E'?.wp Zk`e 7di-Ф `hɚd:(j(AKăgM -͋ˣ!UQ GA* y0s'#pSE/MQz6 ?٭vy@:/ǫrB@I3Y.4b13zL2CT$&g!MŶ^*<#YZt?_pRT {@^'p\{%= %Eˉ| - EA()GYnMڂzތP]g0 Z MoˍJ V?hU1D<lKM&۬Pp񖋾o6N ! &I{#|CVVbS"ؠٝ*l$,Y`NvtqՈ`ڦڹ%#F,,V  Ӏ}YE'uƕoBRT!Kɖ㷡&eDiȞxS(H],Df >yǂJ4W;jvӠ }{P.AԄ1j&\@(`'a0Cl#g`u1CŃĥd7Rfb\f??1W60^a@yy<#PH)(NV<qbJ|^mOч3c nG>Ź莉ȧb{}`'9 9!7R{8uࣣ;VXr۟}3}QI`J* #W8)BQkf' J4iA  ,dSa5龮iJ#;(8JpiuzU"X;Lֈ.QQhȴf) 㼏t% 0t‚T@,/N$T m`KWjճŃ[ŐL+ka+(@rBpXc>Fr&Z @p6%I0R3=m=6|nZWG_j͚Z;+p 쌂0la X*N|)(ҳ/Ss\+aZnm"kT`Yl/*ِ*x06!oKyZ,kB%O=};aeX6VB@ƱdX!2 w:P.y Q,DəVa^0F*A!ɂ_>P3au^;;O6$uLFl&NKZ=fկrD'΂d6Zm)Q*UB@yUE ᗚ_Cr` (}2NLC!S<&^utL22Yro {t7')=/JN]2BdB~1eFI^>/67SN )22vy~LHyMUz7v<.ޒ4\8䓩 ;73:$%g>C*$0S쩜IBdѱ,pcp0~%__bDtj5S;ǔN4aB2) tA k 䀷BR-RxS)gUI0)f2&h ޸X# ZFrźlb6 !| ,|O^kkEXda_UdHe6j pdYoV6|)%B{gmtw[f KƠlE{ŊmZuJ{Qr$: l>8Ά))p}+"5M%9ǍyfB}GpR a8w&jf8J# v,w` šL15 ۤV?ɡc@h@ru^4eذM] RKe.1(8>f.i!;,݋SYF} #;c, ܴѮ`b8na\IZ2%tRIf8dd4(6q$ AH6q BQS'^Sn7rU1:(+Siu|тX9 Z>!ZjYyX kks:8&L .Є.,SN "teP n-9Қhء PX  )A@=j*As3ўZgu~~Ta XоV74  ;n9MJ`pE<;\=Ba V孛Ф3g^D$2+qJVEEj_TdhC/8 ?sbC@v, S) b8{|)%ZI9&t!5fя'H]& rc6u4&"(ceWrZR3483OAČζΑZe0&٩3Ja0d [)_paF0oTR_vxb%{// kw!$m*@_U9d B}KC|-2&0 CQb|D+6Hj)g>T q-&2J4 {:B?pM`Sͬ@r;)<-oAWWh< ɶ (B77 *:1>jOKmH7Ddn)Ϭ 62d Le πr@SX{H7TMK(w kbOUs..2 GVBqzkXYm3*!RbE&~MTtGi+ :yH26*,ΆpQ5D[?-Ŗluy)|ޓȈ}Z/J7<6&<%z9PpAy6QjOx|w鶸;۸W֗G¨.S90f4UѶ-vDD<BRT^SQ/r!3(/voV" k-^w3mfBާjb_1&m Pg"Dž7|[ 7QY2hiL ,˪#z-kC LOvCLA/4\hqri1x>ND)FAJ0/DAT3 հ @3aZ|hqޮP) p ;\5x͍KN?Uu9NN)$(햡\RR0@:VT/t_B!)ݶ(o؎qB{{ ^lN ; aqG 9:iIaB4f(:p/ ^@'=@ [,YEqYPDtQ >6(muc{gQy0yK$ @Ͷ5 pjmU[Fa1pme#a@z %t&16Ed|Ƹa(.'e C&,|WKnҹ0n(G~e,`/M m8%Bd:'ŠbjU )unݍɢYr=0M EF` ~A]n$v("XNZ7+ B#Sf Q1ߐ`SE@ҠX:%c}^ulD[<3lg0ݸ( o*gv:iµJX]~Ke=m*eDFX *yֆN `īR (1vpSpEtU4Օb(Wzf0/9" 7h9pX8g H5^\O@gXӕaCQ!NDtOA\-&Ԙݴ!8 a6_Y? />< > cYqz)'OXX0|GeQyNeV Fs8zSx'ap>K¢aΑI2D/<+x]~ݐ+C A6J1&mr@ʎfVD7L drJFņ˫n(p]a4vtţpSW<V@xp4 { 1ZZ6c\NS٪G!8)aٖfE&Qۺw"gL"4!esؕK/kv[xd0Pa+WQ<;|6pm<ߧ$. ?ًGE`:\+NP 4g {c&4i1yOo ="D/XxzKxD2p.VVFyMr{<֫2> V"ޑ@gLbSԀ(N#MPzpi\[E*<!9@oz`))P-Ⱥ<}nڪ͚ ek;Ŗ!-zYGӑgID*WE4N*./QHT[K*5ȲrLOr|חS b )BD:ƃ<=xI:!^:P>79P 5'^8~ f Y(c)<^5Mi, J[ ;̂QZvR}Y 4E>I@')(5@MLd!V:.<4w 3Vs6O(8&L@3t a"2{ﴢvp)%M|~D̖t) U^O>mlS`_Ǖ=6h)0dl b!Uq52iBIC NJu1N5sGj1::6GNN:r'p8U@El$4:y:::::6N4_Ӌq>0o ^)bph4z.sDHRNdGVtȺ^>>Bgi* VP3& T+a23:VA\ X6x<WSC!C] jFd &b=O\24kiaZ\f䚑8"A  ]N0Q&FD&DcI"Ab%)H+:uc1?NEPp>2(cDp$6)CVU]OD ͐FQdۋ\ăh3ѫnuNppga8@iNMOG؜? >&| y<y$xd=2g9* X9iW̥zbu+:":VDEb0y%М`€bCɕܥIt_ #R/4q}=Dp4}\?o?=%xvp @K6~LBӢq$i1#z}62FgHc'qG>vS)3EtpG*_˃<@x~%48L"$N;+jSqY~H̀P8GB@O)ӣDJМ72FFqFVƵt )T,QBkD+i4 SXFFViC}MG۱E#U@ӥG^xQe *!'`ZX|9ӀE8AKO s;Āpӈ0xc:jm}ef1.D .r89x&Gt0`JWq=H -:&"}(Gୢ,0%zpjDԋGLDtzmN҉N)J?N(Aphttw00dc^)00dc h>[G{ l=MC &_>Qv@bVq#%&;ɢƬ1U_M%l|Va+0ÛEGJCծ$ rOv"6ZU~oF^;>gp(2'/NNE@dAz);U[I#(IFhhVk`)Ec_ 3oW{ؙ#ﵞj/wM6U6`*t ga 0:1'%:3%18 ~'TP!OԿh WK׹ī`X9xETOG(5:ݜ%.#K*nAaqG5nG >@}N%@x`1kz N # 'nd@Ӥa_ 5M;zeysNÐn9S ܡ&Mo<Dy62E%2 䄁G yنtl8/xNc7y哝3-=u6%J$-u{_IϺ(fnr9xxL݆|k './\_Vq IJ*Ѫn~9A40[& a r |{t`W)P>mЄuŸ.JNoy HXCs+ 8ja^{cfD̹Uy>sm2dd50F訝gܰL1lí0N8ޭcYm-ʕ]|Geވn Y%'n12#E9d)HHR ܕNpyR4S^1f qC}43kuZ7ָؤˋYʀ^莽vԠ[x5zh=Bwc-;>0x/bncMb0:`"U$RٱQHw Rp_ < Es, |";QXǬVt}Px+ pb:Y8tL0GtVyHTWsܩ0aۭ?F25Œc9YJ3抍Y` >g)a9Z9xBZiPZɃ*lmΔX2 d1Q c0;n%IPρ@SZ&e"麑2B9F. iw=S:4e L&y௞s#s#!pD̮g=Y|'ux|?rLx) zw-O͔)\<؞D+'ݍ1: JIx~ lɳP`E A]8aq(b9:1n1N\HjFEpZZGc2!8]"olO 삝Œ .6@tA {dX:f3{BŚ )Ч>qwAvgXgMkAP| Wq11B!$:   C.C><:Qd[Tz.hhxSYH5L#CwְϟCAOU% |K*%֚ ~twٖ+)")EdeW_KAz#SL)S\U"S-gJ[P=\#4pZ,Z{GGZdu̦SE N3I}_W<2]D+$"{GX'=ܾZS':(PoV]yilB, fP2p{ BѭR>X] 0b6~OnBM"bh;ys ~S{ݳa`Ac 7ƍZMs" Jo$泫b†`VS@mYE/48Μa=b$ xۀٜ\NƌF#"/ |WMbT!̎sӢ)Q-!L_?]}9O.1i2 4Tڔg$w$zpPohFY=.BD*2ls›_\;Wjtq e2IH})$"m"Mc^X|R>* $ML*GOBxˣ.+q yTVr6ZR)Yte(,h$䲸)!MW Ur~+`)V-UluUSC⊧)+iZ+,ڈ v{})ү4ߜ;z2 I -b1qYЖXfi {1pnp)@%%c$dƂifmc2sp(ml)Nݽ$ki823 X 3ŞH YPt<6N8c:ְ}W8+2o֞ R|V [ӡI= Q6FlZ181MNCὼxwS,3`B9 pS~̉I1ޛynpS柲>Ղ;15'mFWә4f.^>w/%W3>{34`|AÁFkAaBF1EN wXohJ~<)߅tFn sZ DaP6O{{ki572نgEj>6.(0f`ZHTSfէ%1/)϶7YZ\a3-@ ۊQvՁPɶ6nMpEir#( |a>M_KT'R*=T8P_єQ2N#w+NL>- \l@!$'񁙔gjߎxSIVs=Ԣbp|TJ䪶6넪;FIPB˳=*f>¿eE =-\B=cP x2&|1,q(S Ƅޘ k[f5sq5`T7P{ܤhV9iX6Y{ҔqJ1t]HC٘1zh]`('E4#Ugwٕ0g<$51?7aS2jc6TM>!^{։ pyRr̋8 ʽXu0|߭2PyY~mD*Z֮amG.' Bdi yvy.Ċ5-\FިW0@B| k /o^YRʱ_QR9?TpYzU&+"w^#4C0 snSI4B1y/z|G'J̵ B+MĪ{Dӂ(8fF:\}dAQ8)_>~rM*bNO,:/mQE <6e̵;?z x'`jl'm Fy$&.,C.7U3D aDRP[x@ef۾LKdw(tu('NdUle; (8U?keb{3˦5qЧB\V|u5y,j $dtϗy75QQFa'PbF @+ԑaqG`sQC($%Zd81Q`n 2졹"7|-(0">w@`V]0duIv?3.x\ \t(@S tnoy8G#QtnFv)&RӰ}=rgZs|) ΞwڜZ$XinrCmpˡЦ.ד61x&{x?#t q$(ϥRY 3DW˧e%Ҷ5C:`)VQZǔ6OQZ)57$LA@Ǥsj([ @N8ja*x(䋺AΗ  F*f#)ŷN9 a11$sK$:;{S$nQLңl)Uk UP\=>}+)*޴5)vYSA Q$Mi I\M&.u!!-b: Q'p9J;f|hOXZ%78;4Ԍi<,%oI0y g؋'=a⟁,X!'O7MڙrU~bP(tl,3Q7E|R` s&8p@|X*ab:gEl-#!T Fr"oxW:aXd͠qA3ZOB?v9F.[9Q>C|\ 4N wŽ'T%젽x*0a'x)xG |)BVTrXFMZD30Ǭ!e"\"/GyUoI1Nie#LMyUp"݂b:8&x oIp\6S]xAI4Yb`|iIV2AZEXN_h2 oKgE|H:P) :1<˕gI\Mu !*zt})O+FѰ4CrQ:zg)eKSMSӣ):h:t`H29r*OKSN:tedtjtӧшKx"#DR=,J0GRzt-#D-qPQ܋Q!I)uk"t]4KifJ7%DNukCF.<2:ډ"t^K*t>4EҌOH0 8#B19;H]vdt%Zt,&!zVV"D2sJ#pPn)>$1n]ZR:j9#zjڢ ɲtD$5'VFD:*#`X"pCgBގ}/!8-GG2)GKR2.3'_J2G- {'H(*dYCN"Y jڋѧZ"%Iwƫ"Аܺ:$-(Qh$(}P3#JZ"::8"(y)Nt=SHf<"(J6Nf(dMQYGr]^"7 Cȥ'zjK5htҩ-oTeq:VWz,9'NRy8JRӧFvZ,DurE*ȵM(ON`lVR:Jӧ3jt)F"ZQ:)GGOOI}%̨(ќ'N)}> r6E*:0^00dcP}00dc Qwﻺ\ݎV\\~ IywK4+>vN̺[Z*{h : Bǩ ߾xw}_t}ޟ}qW ps3願(wX*;+ Z М}.st 'A!/YDJ2@ZZ+/`A%:nԝ}uu}JuFTsL1@C`Kzqf%YpJ#p>u)HL`_w /T&BPchp'jUarK݆O{{}b'Qɤi@dqAv< }Zɺxv1))}c<8{IJRrmi ap FqNڥZ$ɕ s('@@]0,ꮶiND%=R_Z\/q6R*ʠ(wx0>k[܂`ڼ6\O܏tVGP+# -pyP F̕gtV},^{C,HpWqn7˼f @z߻_uJ}G;r_g[N$̸\n}"ZTVܒƏrJyI<@~`W7^$LBq%=xz;ƛqq)2}X1=/8bsQD5gG#l{ThG|'KZZm⶗Mq8mX m0Ҏl0eL`H P C7 15/YZ/5rT3BIidf[F`*DBrC_R TG59;#Ur7͍KӮt[I֙e.kddF~4Ѝ :JLs,)i#cE<"ڴϔC?ꭆ3[ g*c- i-7F\s۰OсL!ISs"GRvxsaWORB3 ʮglzXz+yM675T.quϊrH&]SF[O?Ǩ `I r}A mA . xLcπVaOW`` ZLKeC U4pd @;膋k7l>#>x§P\,&wy}GPڛy嶛up&@Lycg$i Õ98 piüqYs߄gS|x Tʏj\$xB)`? ZP^AmU'B/@ē5 ߫~"PIjiӼFp^ӈ%v3Yc>ḥ$87<õ-I Rg&c,Sdcw8"G`aFh{ӻS1w_\ބ?}Me {{Lw-:>y0kí#&nP>.hJOc\aYs4SBua;?9l<hPDFxF" ȱ!1߉aVҪ)iV Xe]'mjq#_4DŽt>}F@v=e#${RrdPΌvZ 8xН%HByo>o v S=Eۑ+:;—i" s/nlB]1]$BYl8N)pXQp?+[I  f׵X LQUaä(HXAɕ3 w >2< ɃX+O3IN.W@6UY~uPk(q8/OA56FA)Z'{nO>rHfh!I"7NFoק6 eLQwq y$`fq5^'G$<<)EμKg]c;r5G8` ׷;Y"~QS ?zT^~DCk3)66/bʧuUuZ)Iuʼ ecxBI=b њ;)\;z-c>Rjoo $xqsT^]=#Y[ w *SUa0߈e`0jfL5/wgc!*8P+wB<*~^~撫ʹF9G^Lc`B6JzJ _h+;o 8QsX$ }}p)u;r|q!N#jޘEz4.[+ `%&%̻s#OoA]kU<Y 2`ef[A[h0NόGp 1)\('e3W l@hяRX1zD-@v8jDĘx@ʧ%Aygcg? H0HC\u8LrFT ū6} Ԃx;F ~Q2JyWW#g=5J%@P<2ux*5Z\j8G겳v鯊V z߀TӬF?|6mzO&M 2$bCӶ7IR~p+,2f! _R2փ(_  ')@/z& @yluG t4 `h_- JvH\Jc 1oSxTg\X`B3b4w3`=;ܮ)$ytuk'iA%ojZf@-Q҇+0NrH9[QWx<,o`>&h0J0>͡0T(2p,!7)mWKpm=22Az=x ɪ @SQ-SPJH) ;ီle^|2rar?r ჻X:2}"qs)1q = ^ewY;l]=xFyg܉KDO&83ׁj;Qr3(ܚ2Y)jtDKRҝ zt-N:tӧN<"(N'N5N%4N:uZ:RN&Ȕdj:lT:tjR:tӧN:tӧN>%Zt'N:R)N:t&ptt:tӧOMDjR:tJZ:tӥ:oGN:tӥ)zRRR=:zl:tץ)K00dcQw00dcN!RqQ}>zf'^do)Bha"&- >wU #$ %ۙal<"$}Ǿ,’ֆ` )>:NWw}3KKi`!h>\چS_"],J{qLWjOXfy3c@^}ep;)dLOzl~f|mݝ`)6ʆu!7`D-[LvBS}@[-٫CpVUF # w35:Ɣ"vM2#IZUO)-xՇ<'䭶CW=ev !.Ii $rQ]<޷ m=q]o1>e,#uЦ[It֓ux_-pW!ׅ1"pTwe\[..'')(a(S0Zi$k ւ`KAX xYMOF#)Q_J =|w3ђ2$zrAū& W@E(h`_KFB3mmxAqFBr3VjlGEWYPdgQXܔ F&yKۅ+ֶ  &WJ5оv+U6?Qϧ>.+fdDgAŤrOgRsO *Z! )ޥ l+HAXp610R6_W'jhPB8\18]!|%+3AǞaj*!Yb-X l:‚ dl‘TjZ= Ӵ }!bZH\Hl!c# 7x xtFqw[W@p_[ :js5iSjѳS*(9v@!AcOޮcn']O \k)Iqm8Ǒs.noA¥ UR om\YXu ͚ 54L]ovdR I8O0, `UEPPֲa:FRoy{.R&3t$l$9y]br`0yH%@:M648\7Gկ %>7 K  )1IQdߑ](\n$%n *H m]] ܱKg ׌4B:qd_=q820ܽvcFM'bo zQV(50@̗ds❸y~ E'j<{mcxDI3/|w a!zQg^^/Ȩ b)6~Fuc #g Þ.W(UU4=|adҳ/]H.R(1>+@6x(ڹv{ c+s$;`QEA()vqKkh$D1gaԀ]M@\xHb8fm8Lӈ.P \uO)D`` BԠhf+s'y7Z;:0x eH;cϩx$Xm1[^5(\u~ J^Y+!,h8 }R;pz\&aLPus}(H=R:i :NHQE0TU+Qc_)߲0ECt ș(Y&Gi}1Ц&UuT'4aNLDž0B_`GQb9ye9!$Jޑ+0Ѻ2f 0@ӕ#;x&?cc@GXِTYoIS F šD|u@ iF4C? 8S neIkm[^R!]x дj37& iͻKB*}>N6iń@kM gD24ZN! c#3ڄ8mmq5hDY:pu>{~aOv$ւN/U3F )Z™_LYjP?puC A'8oHɲ!Y,.M` <!0j:ZF0=ӡM\ZqL)ٌ?Uc!p5[*Fڎެpey;L` UW@4V 8g.¡8)@uf2:Bob$u kkš(ьND?9̿LǤwSXM tU[4 ƻtmi6L11B~@"{W;z5Q5<.)Si!74OAӿ{&xu)PPOe9.($z:kS9L31ɽސ32p{tꎰS I䙡^Ț KsHB pBV)е4> ~F=0)hbf1Fv yHAyXd z6F=`DOH™=ґ&7Zl 1x*$#3{xϪX t NT,ēb>'ޮjM;u`/y1flt ݼ]hj?pn6D[=tm3 T툗ʼXTШ J={ -U:XJ Ԍ:lX&2\#e 4ƍ͋~/F5xVGd+hh!R*Ug!#m6!y^Bq_m[ܚ5.V57"+&{{m-/Erp>b0]-htE3S1O~0>zxS G0Z>4.<€&9Na*Ι8y0&SwBZ0.dAoq:sMf`_ X yIHRVa9W^5U~gd l:VڧvNtԚہ_N%$YG,@-BDo@ȅ!!E%cL) SZja h9 5-'[ׂLC?6X`UWg\?мjrMNR/o 8.A:kMr,P)fF5> :0ơe4J,ׅ>ӷTo?aN w7xSc [aTNcgQ8S]f*^|VfTxB{l&WpO ?̗o?Gv݃~qh`l5T !8b!+_CHE@:L8-u< ԵLs"+8HSzf FNi5i.߃K(f鰐h(Pc  h*?-h|D'?XDh<pmuiZ<E S ᧛T|>bA@azYkAahQdďnOmEW!] ˜Z{ՀP2yL Flj@el%}X hbKDb$98sԜ3PhKUDC A@}Gm!ϿtF"81~uht"t}˄;8POg -qgq6OZM~1 YVcA8:8RkӇ{x\$ ťxS,zp:~एfNS mw{讴a S4},A- FaDRHW+R:9C\Fp/M@K U5$@+. Oq.Tz=9037<\rSH]7@cY >ۀyb҅A)yJU_8mP1g:p @)%+ G{EdD)lGE3#kh@mH[PGmqLFxS;I *u2%@%a܂d4DkcZÓHEPU:x)c s'Wp0 kd)d3UzPi/dRu;w,[;(ϽZpJL44+Ø$[r>˝&d]O=P wpY2%ʋ)G dM3Ѕ=s!LMD * FLa买yfW!w!!?)7rA*fPP!k"p@Lx Gijo9F-\ SZFBc^Zx4 g[£2o"LBHttz:::::ڂA(Ojz:r'@k蔨J}tm3銎7tJtttGTz:>:ttFt&)Yʜ"1QPڏ::t&)ӧN:z<2Γ# !y4J2ؔzS(#Bxa`*N䍕9ϒRDOJTfȝ* 4UȆf iKӧN:tQ#C [yN@ԕ Ҽ.\:!nQ6|$>T"q!&((M0t(}&7(pĪ B, 2J "$$yS0C7]#-"u`*C7 x"e4 !~,M鄄NC.izy~:,aã1$;A%F{IF/M1X9BK4O3X~`N( D}%i ȕ AјRATh=+Wģg쭹526Ȏ(ȁ q]jz3%u =*dE.xDK ~";2gX1+;4x*uȟg1OX0oBx<H2lʇ' >mY֝Y}I.$9ii^Hpʸxtiz  +<sIyqzo=A A$xKf?W>|_Gn@-/GO$OGM+e`K7>hx Q~H%*Y c#ݗ+k<3p>+_7?o(B)zq'B4w}Hd$00dcRq00dcSkۯ#ɳNiF9L>ホ|]tf'-{ߎ~u6VdB%5 Brkc"(I):`xG=D "^"lMIZ^HyO?s{m:LRa珀*}(so8HI>4_|qW!EDǂN,gкjrpZ!ɬi^;>`kΚ^mѲ-/?s)to0WgyEnnloûHY{?$A*kT+"%^dg^5& 0THN:3x%3>.mG3V 'G(7oWdՏ]d:Њh#}w4ר m۬>3?QumNq $9¬"C8b&$3Tǎ6:L)!mEb;2D{Y%(@`4|:ýdƨM+#%0' 2C!Ϻxuq[J:q|! ~S8V9s8 uXgޖiB8BڲC#+]*sIWk(T`t{ tgNI x^ հjs gcń4qqOzoXB)S)’L"-;у# 0UBP)Ait>$g4ˋ6|ԝƃ]'n+щ׌pA,яԯXb>ے"Llud_xTQB=Ѫ:J iO|dԐLHk@S]d_Ee.W܌0V1ֳZEu!rlgr/; )(iAN#P={Y!PAzp`˅g)'[#3p }ʦmFasdg͈5 fFw9( ZN jfE!OI:C۴̫/ Ln# i{8ztͤBDž:QW=ڠŔFɋUYO\$`(jm(P3 @aњ ` (CԂpJEN` % A0 >}7軭OYq1t).N)TޘئG/Ev wKiH0LeڭUh0/)zLI\!G}J3!HSK kd`1@`ȕaɐ6 U`iU[G2Uj;mQTr1@$@`%Dt L?nUq[Vإ_ jDHvKp A]?&(\' bج@%M=o)eb !MTzϩUlY&bЂ9A^Ok8.VаSJ*ii'+ϫh#zp GKVFh_G&98(R3.,D|g)OS$&b@^0))1$V쓌IH4 $W&%De u LNrzFU{H76X7#@-B1Wl^ޠ,sIv=Q7VX2 xPfFfSQ`)̈́OcTpeušY"W=I"CqSY^Pqn!5 GSA\aH 1^Rő=rFc hZ(R3N@|&0J4L)a<ϥ,#>e yF6)loX%u|iMZJm3ĩ=R]r&NCe!MfV[~f I;`&[뜛ۃ80 dSr@*[0/ 46;IlQrt荻.0<~ծհ+qYꁐ) cP%0I )x)()rdg͚AP:2`Z3$n(<:=>lh$tc` *݋TjS/99BơOB (dMΰ˄^20̭悛/]+7flO#_T[kz%H+mJ;f,LB*\zJ?vߪ2|H*dQphD/8K껓$o _`RBoa9 mKlS0la˶)c:JH@X0 @B9p>%UGhi{m˾1w|' `xI'\?Q|iƮ7H}-aLd3jڥ9F MBܲn5xm# LT6(0#Z[ \`)2UyDz0NASq8wjQ{mcA s4 P߲&J34 TsVaf.}DzAmdN1{d UQ|DJb`ʄѹiY2 "L[S08FeBҧЖ?CZ1 ?w׫?U}Tz@ ҡhS1|W'> $O%n O8S M;T8i)ĞͬLQtc$a*js %(~fzʤ{O%tE۳i`)a XxVCQC'#Lj.7qxR6>>a0 .hK!xS.#%pb\\GӰFJmRtEH+F)i$ N.t,֒.F[.#pR+# **W <*nOJ7G ЧR_VFY7Ii!OAYR1*C!Z+hIKFo$zN ==\άP/hQU$i~ S#c$a^߰Lo|h{x9#, |& =Zŧ)60 UKA,uC/}oOк&\h'3]։Ԉ׎/&8UHݼ"WY;Ԛ-N߷1?ўbQ@{5AT806,duDDe0KYA`?ovMUU [@L i:]Ԅ m2roȄOCP'"z[hfv5ع4( `lKM6L±\}D 0ϚY5&-BJ*+KqA?OE6.i: Np䮕u} o,r1*,$6R\lT鼗Þ Ό'nI U{Lϙ?I #"ڧ*R?fa*hj# LaUa>+zaɣmm57mnc./n ,"V؉ڣ1Z ÁMܺg$sgbi" ʜ:W:e[H(IO7w _3 |w}#tp}{v][NfAl⛫a`(gơGC4@aùT*abBN>tp}@B?=L5ُjIW0Rs4% //\Yd`ɠmEuҊ%Kjğإ[h5ֺ%[\D@/Xfܐud(-Gƕ}JfX< ٛ"[TG0™Qhڌ*qx,HvpFhk\[:V~Rq_='Zz^JW mFJʴt(-gʶg[hx}  0ҷ *<  L, 0l┠5e$hSOS}EXX*1 Aj:Q`)f籢-/C>(lEx]ZnѢNmP8v3NnnhH%an9FC L Ye/ P\ƶ h(wt2:>Tf0=_d0~P˜(<^Ϗʪ/b[%'Y-GSy:]#Jf(0gw* G+YYjIB.> 'Y{[?}dS0FIՁ }u)]5h, `q*U -IVwu9LhGvyMPd:N χ0Ԝx[ m`z:(RQ[0Lyvf,肂f@t %8vUqT/ OKB ϣ0݀uBhILG:AL8/#O:x.h&܋pG%o(Kn .Jκ#l.P&a=KI!~t؍^.g, ztKӯ|) EHz[\#~ u#5%[ѐf`” G#h ˅_2;>`ucQ# t'/礣P`; r!*4=ҽBtO$O";֙њX"$42צ8LT"!p@i0Jhip_1a' Bh8=r;"D<`+Jo'zc#m\DI qĥo٥H }XuFO+=bɇѠiA@/=sQ˫ύ<)0}0GXh+֢#N 50t@wyЦjCgptP2`۶@[j@ \ dDž 0sxO e]hb,5 5#3j>jh}HFHI[Z1Mkf+}d(39Ѝ5ZӡO8,B3)VN+o}BHӧN:3'_N:::::::::ttlөꊝRȽTKz}-KGӣ0FRɷTE#NOӧGGOӧ3D%G6Sҝhտ؅T;Ej|Lvc'4DNDП(5REMӥț&}u4ƵM-j6xN`ƹi~0\%w DBA-M4Μw7Ax@+)' YTd}l3PA qзRѰH,F]YITmPߔ9|N)=:I]Űm)čY0쑀Raj Lպ$*ɤQsxW!&pT2uEՎe"6d3'+Ik 9`f4k I 3ڞģ7ҿ$c*4JS ;_C@n)K}`fȴ F?Iч"+RHw$%c 3xv#=r<^2Tt׶@ SWM/Qbbf3 :?N 3!TDJPa\Ͼ(? +rYB OoQ[$3&Iu2`^ͩ $Ut]o1NLdH fr5QWHh()Ū&*%}/ <JeFnEkn|gXKdzT=52c76ؾʣj8)THj@\#"xG^_ >e&BF`.`SO-brT SsLÊFxlUyg %[RTBdsoG 'шǽT,89$ Zca53 EFZ!0'Gb:0nU[ ;ft|{L0Rx)x5TJ "OC)2TH]UVCPjKweSB _wxt`fSLzL Z]B }ɿeg42xdeH/; FGv*ߑ&Lخb'|a&$'[ ,8?CJ> L=O2#X|sZ5B􉐵MS!lYʼ{X"= `[0/]b&D!s:i!vq'x @ELI .*>3)eսfRV]wogODKU3~u @)n0JB8x O^B0SmC~mV=o\OKcc˂~ D<_-#L(ٓL-'x7нR7:N8D`W"q>4*S`2L% #x7huN{x PqH1% >lȵM~珺Nrl8V;}]4CmD &\|eTɇ"gƁMf=qn᥃j/u :1uj̊njA1١637ᠦkm܂C?\:L!mc^8#)c9<1Ff"g% ZP HF|!{z|(X<YΣ60%:k=w= " kkh>i}ųc5wX'  sګN)kHǑ(DR~j IKAB I\Ey0SW6^bf}>=̑D@qNPJBSzrrEaz.1)Ԍaup`$(ay)h-Z7Dah m\ZuOAST0 ;CZ-@jX&!qK&8h('K't0LEc>S*N6SdJzUR%'F)kx 4716b [ a&}VB(wSLAt|NȎY"H%kS,J+G'cb2OM mJr#Fɚ@"y`/hGFM+9eb精X{@~+~V/ٚMo)5 /#-\T5ԈA%!BYJÇ2O`Ŋ()?hhXpӒ?sxptŗS'm 0$ ^??:57zH ) 64zJ@\O>`UTR=;t&4'Xl<)*.v0ABG|;Ù,w, S3Ak[@D8N#oy\F85b?l1Fi ;FD *U, Ǎq;q()%چ6?n.jfx KRu΁>b6{JPri'K7/ pŧTg\(;Z)CYh?0J‧t#=bMw 7dJ%2ᇟ{DR?>4s^b^2h πuE@CL3MN=9jpeɎ6-lp8p -?N{^g?zA}<8("fT!41hC t(7gs]>==L. °C. .:6웬@ppfή(dmS,.a}H/U_ϔ!0!rtGQg&#ROhJ1 =Pho`%E>]\¸#Z(fY(NA_+kH"Q7AF$Yf ^P<>h"&D kaaa`aP% ϽP5h O\!;4tĻъMХW P^š (xPŲOW:V#qRHz>tn2ѲbTdDՆ@puT\U),X3uw}?yme NpxP@!a6+#8U ]l2Oc+ZL o2nTT䧅x ל" R}X8'R#@uq fBZ_рA]4z RO loxR6(Wc=r_FV'<W"cQu"c?glX+mQpRWw8N(SO+Yk"N%<BHӧN::=:tӧNN:h:z:>=:h:tӧON::>:tӧGL=::tӧN4N=6GN6ӧOGN=:td:t?MӧGN:tӧGNN:tӧGN:tӧN:tӧN:z:tӧGN:tӧN:tӧNӧN)ӧN:zt:tӧN:tӧN:tӧN:tӧN:tӧN:tӧN:td:tӣN:tӧN:tӧN:t:}4ON:tӧN:tӧN:tӧN:Z:R::-ӧN:ztӧN:tӧN:tӧN>:l4N:ztӧMDӧON:::ztjhdӧN:uӧN:tӧGKRӧN6tӧON:tӧON00dcTe00dc,U_1|>׈g H+<Ї a'0X ѹ0Yp=Lirk 0';IƟ?S D8`1* T-`++2wVp C BӀvC'3Bﵒ*&22wU U!ۑuej&8~IY r7wv0LN}Շ?8(yr$?3 ㋎&m`pS'93!/p# 0D!Սﭞj /P/!]T_- ™hX u<:u>UHH]@H r#ϚF9 ,|us=ujqNݎF"[&cκI0)ȝ 3=`wy _$Csvq^=P`?aBy0PrSg 穸P }Vt'SHN"FΧy3ץf&ZvZ@B]4r@FiS‰>]nÒV f{]6IƩ5LB|JC/hZPK05[Kd]FT4.w *2Q)  09(d)>+|t;CC%y?LJg!  "sQ!3ol$[^dUJff96 qD 0Rhe~4H8= UosMQG7C^;LBFkP>sS@p>;U!.qǩ˜@(R[-̚S h8SA~3 S@&6i(q-F\!E R @Y#Jl 0!G1}Z]`D'&֝ P"c#נfF#j7Fv'\XS%A^Hwg ƣ$!V%~KطurNюp|9Jj\hL s@˿E/p|㴽r,xvD td'? |ix^Ƿ(vwVyə58oLD$4Nǹ'. *J!̎:8l@q[KDܞࢂDnGɅO"-RN31*G"̈́r`pڸ4't,jyk2!nyC#@6o^^ :O!4ϋq *<^<}@` T1^{h(qr/hKG }A0AXco%, ŧɂ!pR &8t)|.Qo5 נͥ39,%-H9Q/nM |IuEA1s@0`K( -;9zmw$ɟT}A\L|P:I,O0` To~VhH/} 604㿒)#}]%@!;A`W0aª1P>j> 9!b690 Pz=BUXte*L Fp(='CC-:"'$Кsg:v?67|o!0>:'F Ea I.}0D0jǓܓ+oǣ<ŸK% enhi7L//TG-t4vIiNDB_հڮ>d6Hkq"mcGl6-a) lX {SXX5ksS-UD"Ktg෢A(dN~Bzh-o6T&+0'F<._?Y}V|]/O4hYd"䡖ӄ\Y:j( }}޾dUC^6 [>ԥ&b @ J7%JpʌL#(42x.Q[ilkG @9 N2#$9{V%(FdelD63 t"DW9EWlL+ Y'\Q r*ccVA M)(dx{)0(I_B$-S оoB+'0r-Yu y=gZ@ׂE;jՓ:@S0/DN#:ݱmC%PA0^4#ռ5#υ{ɼMaew~;<Ndy/$6DUA4GmWzL990c/2kdiEDV~Pbh}-⅍"05ks-!)2kShʀ^(![*E uq8ZGB%=Ht Bg7}BPytx\coMGM +1ћo'//xe]yĹ1$Jh)ϜBquK`Bhw0Kr9 IϐB_AI)}N~mj!L 3mЫN_xBKm!)}.W /.ycp#0\-P(G^d׷M^`!``MIpդ+=TkZr95L1JZ4ƾ`Ukd\# Pb"kl-RN[W&tpEPeﷶ~p؜mm+-ꢬRG81EJ9zS}Ta }׸3セI7_\\8#>)ܩ>z7dZi6B0F{XJ"ٝ`l$E<]fU>kqIASh|% ET?WkU4I~I`ʪ^T㏽ϖ&vh102|# юXCLO@`CNineƺRr70!BR##d+{$>[הflD)LB_ Z~G $x |F >MSβ|%x=n -8xV-Y(b{|Smn !i%q&78\ pV0_`NV\p,+$*lSq J|\ ۆt&7beW,wY#qԩjb[mjHQv.ȹoBqe8ʕT=U#jM2L^g&p 9#Ej(<Fx3wIXD"iDxa!d3"o$uJ)IGDȋQ5:q@h4ϩtnC=7..[I>* v BjE袃 }%>Q֢2"ȋMO!CԥD') xbQdZ Q-YDFoFT&|BJgm4(oBCɚz#RFC=#D :'*25}65 '#$b%`T 8t5=á"G~ 2cV ~:^_Wepf ʾDȍ 2JHr}(eSPKP4; Bl/Wzs܆A"n]5)G􏉄A,q#FNbS !-K*s5gԓi=$*=SсDṃ!/ 䫀hAȵ~00dcv00dc"00dc000dc@00dc800dcH 00dc00dc00dcx00dcb00dc00dci00dct700dc7'00dc^00dc^ 00dc600dcF 00dcZ00dcjN!00dc00dcа00dc00dc00dcT00dcd,00dcLISTmovivision-0.19.1/test/assets/videos/README000066400000000000000000000023271466211133600175520ustar00rootroot00000000000000Video meta-information Notation Video File Name video: codec, fps audio: codec, bits per sample, sample rate Test videos are listed below. -------------------------------- - RATRACE_wave_f_nm_np1_fr_goo_37.avi - source: hmdb51 - video: DivX MPEG-4 - fps: 30 - audio: N/A - SchoolRulesHowTheyHelpUs_wave_f_nm_np1_ba_med_0.avi - source: hmdb51 - video: DivX MPEG-4 - fps: 30 - audio: N/A - TrumanShow_wave_f_nm_np1_fr_med_26.avi - source: hmdb51 - video: DivX MPEG-4 - fps: 30 - audio: N/A - v_SoccerJuggling_g23_c01.avi - source: ucf101 - video: Xvid MPEG-4 - fps: 29.97 - audio: N/A - v_SoccerJuggling_g24_c01.avi - source: ucf101 - video: Xvid MPEG-4 - fps: 29.97 - audio: N/A - R6llTwEh07w.mp4 - source: kinetics-400 - video: H-264 - MPEG-4 AVC (part 10) (avc1) - fps: 30 - audio: MPEG AAC audio (mp4a) - sample rate: 44.1K Hz - SOX5yA1l24A.mp4 - source: kinetics-400 - video: H-264 - MPEG-4 AVC (part 10) (avc1) - fps: 29.97 - audio: MPEG AAC audio (mp4a) - sample rate: 48K Hz - WUzgd7C1pWA.mp4 - source: kinetics-400 - video: H-264 - MPEG-4 AVC (part 10) (avc1) - fps: 29.97 - audio: MPEG AAC audio (mp4a) - sample rate: 48K Hz vision-0.19.1/test/assets/videos/SOX5yA1l24A.mp4000066400000000000000000021062611466211133600210540ustar00rootroot00000000000000 ftypisomisomiso2avc1mp41freeXmdatEH, #x264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=72 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00ve%пu\V썈S͈xVYܹs >uD 5Dt<:lN~@f\qWˮJ%`6t_֠\hL{~Ro55c.(R anB@m̰Jlu*=O}{TOۚ}Loi\r#o( b7,5뻔.L#W[m`@2Jt`J"͎qeC]|Yl%m`A:)dY` jR߻5[頡̪˖ H,,z55vKmc9\;y]9ih٬٢5x:ݗdtk /E=/s GUxXIXM|7Y!~h#Zsb1@$Kᅧp :$j1gj>e#=2%݇w 0:ҭnjZYwj-uvX u:R#㪺KeƫdlOiZ5`DMLԴɕmՅ Rw)nU^!y ٷ&o\Ad蕼_vǝ,䊨W]A[Zx/ؾUE%7#v&x\_GްepAMj9KOr%gOìi(6'P⬟|y)>n>4y-]/*D(쪅<֐906-akrG}n`MɁN!F_{ &H+o~]ƽZdg@pL~'T@#N?S'qk8hY5VC[mmk#2  _Dxj6f/5-/i+7'a1U*1϶`㑅" iihxuZ$W뼘!M;\A*0Ϙ,NQEm&S j] 1R弈(Z4):6-䰃_f(H<+ o@&%~lwl7t38i!;xD w[kk ړ2j3 WKQ~8Qaㄊe5 W©UIN 0,B'{ver"e,Yщ2h^RS͔X={Z8ҁ -ҷ0AŜ$*)Fn6'r,Ȧ|l½ DUAIj^x˒ V.cO(?3W aCD}G{Gw/.x pi2v#CIN4l>yFKȋ8w>鴳vi6j)H3UQ%A̟Ug >spہGn o`*J+<\⨣q+o4%|\^XF"\QmlDu(2$$\=05/zsNOkaE=q =V%RVqP^D{GsB_}y.#ۮ.#㚡&|IL9xѢ\GJHP(_%h߼s | eǵBOZ!V/sx7~;zYï+7F?&(cD igAF"*f{q϶scѓYRIq?a7ZJ*R״5+HZƺ9.U!P L |%kq vW q֌WC~*rz[1:tB-1lϾ,IXJ|"r8}}{֤I8\gʡ#.^T%d_+/ J, ]2>}XiA9OJfuK p!= _v)M.@u R:AT4/P}7+ j^R(LuYH5 A"zj pr}%zA7ZQJAP_W6kS eX:+?ț- Oȅz$!/GLHIV xh$5ʡ)XiةQ(.⎝"nDYLdSwһuq x姫nH\SNdqөwȗ^7jyh9֠\X q[Bd0ʽ}#aIƫI{Hy (<2C m$XXW8`]9żvbҹ 7vvEFja(~vHQ V޸\4O =Kד.lM( {:kN3Ű8+kBjuکɃNQ=-aеwLq[AaXh݆xn7ᬅV$ٟO # (5%;_?3S6XkLwT:F21{{O@n#6* !U׳F?F+Rk )? m 0)c T{TZJM zf0In})O*̀e,SPFDm8KdQq&gᤚ !mA >Ge:!.hSkuL jw^3P#3#,zmqS3>aX:]'7;봋NOW$p.ci,X#L 201pި2Q9:c5( 9C g. ]*/bBS).4je*ܾ;H'̍ZHf6cg{}Y,rYVԇX[ŢWM|r*Eأ?Mӄ lAvQ%m]?Q)`ҊФy:(yObnޯåa';* g;_q/+q#]UDp!W&E"b&̉[dH*ҕo4IPKsLj+؞7EnEӿ# MNl۞FC5 -ju"vr|>,K]Q[Ͱ(122w|ݏҙ0>9po/(FՔ0̈x 78R&o;H]9{ 61|5, / zVF >񁜖*h 8~ \c>S{*d# WQ7_{&xWr!Z yBn`1owԽzg2%A`%S,Rh  +Jree!yߪX\Y(H%1f RaNIR+1z5CR"Wꝍ;C72ނcUj[Wa%-'m|(tXe.ʎ H*&E-3>j 3D掦x//ܑؕy ޥsEwTxx(lee\&˘rGx]cH_ 7CQo\::=ZnBߦU7Pw<=Poq*"r}gZ^xBM~FV ;c0VkCѣFk"o!og'oMZNZ_" ĝt'E_p.8zyA~ƁW:B`S%Iv"JnYHh|fh^. !bd7g5J ,865{x(>h#sq 0*bY~:79y@ZIn]?R~@B#=KW, /O+Ac:q p>}ܩEbp׺TI\83k@<؛a2^6ECwU;S!4@#p eU ]0]ӅAtT\f\d-0з7!mDf  }x+OcEtRhMʉ}(g^{EimH}&&qS3=˴4B :n8S0lKHWT;@Qsj\ޑ*ؠpR`ރNuD2}Ij9;t61\*ԋ`o`0[,XM%4;h 2;dGƭq ՠIC>C@< fy 5]E/]3k(Z^+AO*% Gh@8<6i 6F̈=Ł*>꒑k8)Z\<6OC^{R@=KbwJIcv Od:}vΖ%boG 1u<7f褞`)~=et%rA.~7խUN n¼.q2ݓ?_̭gL0rnT3:ϴlK$c"zXq ^,Vvi">Ụ*٩c!JԘ <=W>ohw{C9{pD;XN:Gأ;g@Y,9F-鶛;iCEٯ IB UE7;I}tXwʱ̪$TLx`lxmΟtfܶ6.|KjmTX @,F `r[l;zmAj07drjƥ3qil u/. kV@I*9mnaO]<`Sj$79S/C (9DT Vr'y,X҂vn0SiƤa`w2_T,`GIeڟ[ЩG" by("wWcǬ9F_D^ %_G_<1 uܹC-j]G"E9Rщ0G]Z !ԩ*.h576-.h)[K[ƀI Wp?5aEx Gu6DxX[>s lVf0No{ A/rd>+Sq8>}g(|˟ 26va<(x1 #"A/fE_ @{pi{"^ OʧQe_&H tX;ëb$r{ZX/YHY+h9g yv%~]]7KԢ UA$#&(o;:F*;ɳgp9Chnd^ϜrkM Fx vg{nFK0کw| \לO"[ /Dy()>GF$g9/I& ty wX+xH;ma1S8SE*ba0?ܷLԉhY¬keԩ:@P*na9hV0r_MB a`:3-4`50E[Ğ_> @KbÏ[fa:rȌW[lVmy1K"5F<<= W{\1hA!lZ; #ne?]<%k^H(>Q)qQzg>h2uYPg۲") ]i6s뷩|9ﵶ˧Z (9,a;W.9UƌO7e\t>ńmi 472,7/CW=Ƀk" +trYSL_9Ċy㰴m1mD wU.#J6M)2Eby2@x܎A2G"GR6&6{۸1ˊ5yER&K1C熞TqJsDž6WrPԯka\ZIi]E4UcoGUl!F*ܥƄ8Tsr4j&6w&W "3^Q>bTwm,~3ﻞ(w K|E*„\_s'H>r#UU9Oc9|c%x2\zy.g@> N0R4?G2Y&MI3`JZ' Yy,$k-rbX෡Ӥ-Xr'|:`|M,v"Ro<nj̐& Q1Z>Y:=%ѸL=3BٌK8wTnk`:A袲ƣꓥUi͢)e]z9eаdhciIx%YE ȉ͹f([iAct[ 9L)KQ@sz:˼py\q9s J]TB|?eoT^y)!q^9wj:gwr hԲ 8v(޶}Gf:_qSզ8k@M5F΁?y!6W45^#HXr.lqm(~_3\ u&G7@qޛ]Xi _* 9!fp,HqyZ\uR b{H/Ǹ(-8b9 ks"lK4L|8)|3O9Hc tHlHIkJ\ӆ=&iʍ\$6V:P[\AT-o%/g`-d8%PvZm/gK]:c &U ݭ M͉֜vڏNjQaZWw>`$MC"<*=q NߕrXPÊaSnƹ7GyFl~qXW#p|50GB;k7YtbE_i4(X4rKņAd$VT7A)Ć.M8DZc$PM*,ዲ#G >hkAΙW1,BA+wk|E@'V|$8bsu%?)|5rn51c\/!73bR%2<\7S Fw^*#$_'ѝǠxw ~.`޵iI4I͙!< W)Z%Sa 2 RS7Iڛ}x糉ZY~;$ hh1ML} !['g)\d/[H aNNvzSJL5S!FJ.ܩ/ů(ZYF@wz#¡Stc].9Z~fWq`󄙏ZU` F89Sk^߾s32ɭ*2.6qɺ% w)UX(." )>$+vZH7y\šApoȿ0 34 q͠v'EK8=wcՆ|I#TøϷmaOU QPڣ]&StaJ.&'@Cl&sY]* cKpB7GoV9{_OGBjDEio@x&C=PwEO1&ЀMgs~{9[SXͥόXyb>e1#p? dG~ryNiaؔ.-JS{k&Τ =9H2IS&/e0ѡh 9r4MPBsRrrAk^J?^AV.+% 9M? ]&F'p[:OY; +c.`yD  5S47ٜ,OF$X35eժu q< X_(}@~ļݖb;Ykr]`z@M7aar)Lꦭ~sZVAkn>F!P00>l:C&vSI5zFTG^)ߒ&5\Nm34O3bS<5H_|5>BB;@WG/|? i 5Y]wB>^$Q\#|Sv&dxsS~d}V9rVeѵ d4lV[8OrEOї7AؗC_etVb+}C4-l, ŌǢD q#4+jX&|k5uuP%RS c-]>O92f~fȎˬЈPqLIhHJ(EMҶ 0<ɾ]+<0rn*=ߠ,MhiDPJ㌫ ;6jKjPa$"o!C pFy(Jjo3UƼ{ETAH{#B>ҫloRB"™}PEil ;`QdVݡt'|zSv a n~AY߃GYvK&q:A'-^{E@` @r& L-1 *x hd1uɍλ=ӭt5]GJ*Sˍ PPZJ0f'Y+ jW_ )1d 6220B5{ć:*Bһd7=p&]nj߃k8I. !m -O5K3aC&2 &$&4[$>PvkM upW0B-WcFt3r_nKC+j*6cʖĖo;GdF=iqv.K]4(XbZS_1^Oؑm!i]P_*G2b`BlY%jբ@?ZvUf-Q픡sXn~ 4A+DU`HL,OF](>* XGLjz;G㤻K"aBL@2nX״w?ϥ׉9*?QF#y`Tԡ\Ӵ;*9@IhEsފw1\&:vw[xVӿKE]$7 u5JI=]|g<9Jvh}/]rl15A,7K&vی>.|:M\ 1` pS4<5^lmWanPVl8DxAoĨ᪱U؊*Ȧg&ę0*Y:2-~ru2Ɯ7O"@;<#+fh4ns[}]3 ٦$ L+ZhK!~|1Db(}uo..j—Jϯh|Æ1IĐSMڈ Jfi6" bYxNz{ԭ}h()v>j㋷ȵWe}߆hnЫUuC YQ-Hbe |A)87ìV1n}/.=jaVJWq,g\0%F3| #lHou,afPp_Ց[O6YPd~oW<}<0\RȷU&u*2p,*{:{v30k>٢ͿTak_̰:(m 8D{Q ͛%Kؔ,FW~cl#1g $t}#oz{ @ @AAIAhLD߼P=BP! E9&=&5L7?N09"?hܷi"}o]7>,p%+)uqQk#!5rQ#$p%Iq X=bMQ/NnR[zWBwXtOPGӯJQ\ 5>(Qn A*2eSD-77qv=g#2g\_ ! M$Xc)IQ.EDȬjH!v[٢0@/>k32\)(EMfbi~^bǦ˺,Xyy"wG3[Vn7>n(g?=a <ښ9-Yѫuhz$'|0"KTDE.ȷ- qGdc/ ?D'aJ 2%W4۷h0Ip ) p؂ێS_Eِ+ }0DJOh!,H[2+$*822#!7?PDuU2q9:!`BU!z5ٍ!˦@:9(.|&*SފIѭ*§T E!ՆhTcJ)wfҠP[٤-ue} MyQxR]Xp0> ܑBWtMk&v)hiLV|.%}/H9G8_Ӟ~9֑6E.Yߨ4"D/_k UA@[3`n`4;JcNhFӾt8ݗ^3h~f2SQN,zB&./)3E2wY?b@E/<|[Yv͔4P^=kΕ>jTvB[/k嫳4H3iڭvs[r_*i:>htq}|Ȏw!u1ny;<΋*i~!E(yb2d=a6r[ϻ>bhv49(JHI[0r(OS_6< dw +oը%#763  qd&'Q!ècR?hn` 99Ż(iu.l W!HP %GV̓ދ@ut7d '_@*l bO }arH%qf;˿}¼3Ӆlhn˞M)eO RA>bR  }+?AX ;5%l$74$ڋEF]' ȸ˘Q福niֹ[D XqiM -h281D֫-q>kuVhjv^TT.Sˑ @\r\kn·MHo} CcɔN:K!!hE(cx ! $r{HKUo!̓yLŲ8z@D0`tsDjB_d{z[3x\rݷ$]v*LAXua0'W+t_ n0iNRb]6cM =_)hlyZ8i Z 0_SwI?/ _̌깝RW$ "[BIgLѼil Br^4EO޿vs{6iPzY3뫡R}R;NJnI]n5*Xp,?`bfz`ge[J? ׍]ys8ל!5SM b@C3M;A>h̋qM+upo ~?#TWR*+Y4O;3Rs0O0Q LԘ0 A@PL AA(^8~ix*^G>q zyvh7c_|k^9iFҶ4sebjCêYVźc9:F#3T)iaᯈ. 6-YEa|sRM·BYLtU~>K-&tOt$Jn[OF5#}M)7OֲϳVv)gˍm2.ƻ=z@/e" z>hΉ-"C7ÊΎٿ  ,8:S 9[4?8M ,P^髷O[ʑktd&:%7WN#RڿԐx#c$6ktx4%M0H }]̒;9+5miqDC,C3s Ls^'ក]rmJ nֳLѾN[  |abam6%I-E eBE+;$_F0Xr>Gzza`%ijKc$e*Py@vc{ۭ˕Bu/I@Mڌ6dIhqo89q\]L.zr^[i-NDws}VB>2 ~ M߳ʈFSK<=>Ȭ.+8G64oE%K'=2cv]8nH:_*PepBMtZ+u>X?3#0>`m Up͈5SY7X`%Y8vK2=o|<x"f+k>q\/H' h%R#ғ%[ Dاg\|PYI(),A:E2D0YGUm;y.*`=6M%Y6Ela#gGxx} o{N`Ŕh +9VubtW>ZCuVy 0PM$ xDE, Sb'(˜ ~P├_ sE}"zf3Uhy𶎤0{&61[@5BlZ oUU=kЌS>ٿa%!߉%>cLQTyإn*} ]G|2B&b%MT F]]5*wJ[HU) cXa x^T|$1bo#Hwʎ%ΞBn)z;?-pV|4&4%B&*+/}ʄ`ޥK`JRZX4ptWˣ>ښ8ʓEN!jRxǬ|lWA7%= G]VL4 $NXwU[a&U<88_iI3 dӭ#bh6xmV*5[qXYϥd0Hx)_, W Fy[xFM;Uͮ4wK?5Hu:AzY t߀ ^ v`ZzS 4,|-qG(h:o3 hÐ iӯBkH9v\v>y}Y|# @c%飪n$QF0.QѲCKi1ю)jM $5~h4b܌53;be^̜`O.1ヒy+6(_DjJCZ5]??ĸZDdl;d__x ߱j/Pr_omџGwEz4eWECqfsnQ,8Zj8q@A,ʵLa8tBzfd8Qn"vϾCRqf沟:p OdYq-lU|u vjph~?\p7rdB2-暢hו^*Z`!8;j}n\4Se[h:l&`HKc`<B ПCc`萀[P,c}=16z1f%l"b>h<-W"=ٟ$GeMF wLjWu]Tr9}p~+էCX6'QtmE <eq^2x 8]'໛XHK(FkijtJs-dGr495.)35 TB/TNsT T&_7qZÒא388,,`dd[ͪ_i˜vJC?L WZB{QB3llYJ@ p@YDl/$ho[Gw{Ā Iƕ[HUBvN>/0̚+^ jI ={|Du^f&qdLH^@!.0)uy?b0AITQI<b1?d>k_>!ܙb\F!PfΫH()ݫ?KQ3޾E9wtw MbdV^ïVEPV[ՊAu}vZQ7H7#C+@8lR bQ`p AID_E)Dil'8RJvu34'mM*qR^鋻t+T#63'NN|έg4r )#M+gK/lW;p?3*y'/UdHw&ۖN#F]vP]" [ 1cxπ; 0I##;vM!Z24hXn85JYW2NTH GP{st5`)>4k^lC I:R^d싙cI%'Cxzvfݠڎ0D}_OFGjo1n?qjeGcw]o5k A|.~h+uesW!I^t]ΒnjmyԤm&y{P]M};jw:J,rzI~XBıQSWxD2z?a63c~,d׭RC)\$ƛ'-aDa uӆ^umaW}ODxy(öYmHnF?y롅 |Xp^l#?:moEojgɁZ>yR:ԅDH28.Nk1J[?1ƴ'W -K EIaXtf"ر@qkzzoM~4p~G]cn~x3S ^ zqWO:d/Lq׆UVٶ1}}iF4]zٍeY8_ 'Ağ_&Kk0|^nt[%um @F0i'S1)'hV}a _=wUtb3^(ڇ yR?@md a{ Z4luRs&x/τu9YGpp@:M.բCOq ^AVqv\Ta@yIJ}niCr]׊oG }dwǯop<4B$~-'[S~tKKƇ}r3&y$heRmm T2K] M _zW͠W%͒~N/g,yxHS#]6bV˳i3N){~]Ze9#9r䷭W33l0}=}OތvB9.l3tǧ:\a%#G"(Jb2sqV ȅmَE $׋TV+4®0p* J*]!e],%.D>1BvS.Rw bqN�N:yMr$CgLWyQjsp4xQEfXd&Ѵ`TGN1ne51KW Pݧ40< m<]1ׇ {Rru;ġAk8>f4#^2'l"A΋rpIP1QJr_l5j?&\[܁DM__Nu'7}_;0;}@7}UkQzas$>{K>C=z_*_1gH<~ul^!(lԶqӇ%51-Lo_[PЪ/6iOYlӄ]W[ )_zq+`:Ӫ^x(z: 1Nj 6PXR-|iZŽ1$rl'a>U[StCiބPm <;QVhgf{BwĪ B`QBTcMn guN'v?Ö*&JBSR㝥8:2T("  6E̕\<՝nTQ:1L1=@(k[}V삓8<m]"^!*kprk䞼RCs;MIɨscw<4='q#Xi7HdA 2ΠK8*8ؕFF NhZc(`8 jB_+XgWj%60@ 't"^aǸk0urv!ʩ6ikF֧LvDF`0>ͫ٨ܓ(>wG/a j 36n|vw9eD1YCoeU &'2y[r$cnǝ߾YgI0žpX{{Е(3@fAN>C/bYGlAƵ$ST¬; mq3<6(5iN0p>"L͑PmCe5n ƺ,Ɗ^J%C`.8LjM`Ѐ:2CqU Rډ }7V_&QD)[[NWS2E)?"w`, &AI&SCJ~`ADfpz.N`eErT& \ 9L=BaX>CJja6l.Ez$2@9jIA3%)zu#/o7"(gwD1S٣Wn\3}Zwk$4mB-Xe^Z~90D$ٻAl7vX< FL9ԋpY+sD` ¡x+PYGʘ P+d}wXS͋CJhg֣s$uJ|QM(޺ r_Z•0!m5ѿvE-.h3G~A2ẉ8D@<:wU ީݮe#N2ȣ] 4Ix5٫͚ޖؐdݤ>7DLBY<'"#$C#JE+0/d+" aDʱڤY0oh:X삼VYCý:ٹ=fO+,WF;fo^[z ?wEϷk0~;K$Q]UδK7(G 2{# ؔO"Gv:,fJu:a:2DhwNQq11nw 6"Uv ә{)%p~Ѣ}3o G3j|%( )ر1|Ǹp FI&a%npLB́Pҵe1fݛ[VЄf%L>BHa0eYyf98u~v\f/?Xr*;'KL(}?M[ix+Xu^МrV=7^moQCQҔ#&8Xv*"€:pT"=wKlRN+R>>֤NRL4WC *ga#;/ __6-/?7 Q2с: sڜDP:V8hUڡs wFuojH[FZ;* Lʱ캾.f;L8=C1BpOiO|TFj)sFW5"C\V*lNo&? RnN)ىF4ٜf9W[їGR C~3Ɵ㾑W6=VѪaA>0OR5`>᳠<< %cpNG!jPN\Zc!ukn?Lzq-%,O ~gbo^k"'C{@B)s)u%Wϧ X>K6qGjj isQJ}nإՉk˻G?٦A/9shH闈5#w^t~Wd;e{^u)`\*U?S6Lbe]:2tl\3`Jl_&{r2BEV} _?YG@ۀ9z*:ϔ6ۻ8 ++%p|Pd(ا=S Wq^<}jOYC˶EUaJ/F3C r# 1lGEOuUQb Y"`,k-3I7Y[st\5&CT0 t7H?@ 7@dٚxTWUd.^z ?V59鞉]"0ñZ&8߹V<>R^6C_uV*!V9JTtʀȒG``n˶zs$[/"ыTv{{ALz D0y80*dvq톝Pe>1GkK-6T:~ƒ˴gUA㼀4GM @D%+P$N&~n'zXFY}|#c.l?e~DńjISc 6hҕ7 5mazS}~G^ @:<ծJAMO1ƺM!l184^ØI-lSez썵UV(-:?r>5>#UHQG6FJE 3taG)!b\ ={sF!˭qZFqghrh*(W|D-pGEMBdhLY&K7T&ch6N-ec%Ua5(^AbFbh${;F`m;!FETsC~2e1eCk 9(AI&S̘l0IS%mѳ)GZ,bd4MZku 4d;M):^ʕkK@Qo\=Ixq!nn/{OFD 9q!wxMpWY]4י6pt,;<+[J k -4?Fi o_#kUoy&Y -Ά[DU,O ._c`GR5kљsWq{{xocIC_L9Z>yPj*i>e~erd a!7m|Zgedη,Xp0@M"z0'9I+J|i4Bt4u[Q$JLjujZI*ct-E2{!UUR`EE>|+m3kOFq?+0rƙ<|f!ّO+uYjbTR곜e﯂suEv:Q+@'iFz#5)>+%:L+S%.jJǿɯJ㉹Pz@88R3+"dcTfrRDR )Q"lG7[JċE;Q77M((dK\dbP-5-]s$?26D\Ec0Ⱦ^PJKcp>]hrG@:IGBqPq'ywFAhXIxje}5pnz$ 8Gtu6Bs*kFG뛷ӾSɶi+vQ^b xGnL\Uv[K: -Ym%!>ԩyMHiˠ3q+&謷"/u$hsb*tͰ>bbV71@?dkOފc̟?DEB360.X9KiAG%*W@Y5ni|GJP$3OS0, e7wYaINw82 xw:#В_vpӈT473r0_kZ/'D̊sT)Z(u %̈ nz$@4)SӴEϩZ2j-)J%fk?=A&bQs6 wڢ3 0%mQu|VSq H:$UX_ V96/5馿eWdSC}K{phFbJ¦`>]_R&Kj'ߠ'Ozh]ȭ4%܁C2·55Kܥ7CB,|cc^ cUeF#_Th` \F-פ=L#}o fc+86x}j8eKŧ 񲊮Qc[p̝PJ&ޜF Zu&[)^v?q[6o$q7G.*5(&țd]UEQ`XʷŸ81(kjPƄÐUR ˥J^/ZEz)Pa_55,K {_ԓ6C;*_2(1f*;FϘE@mPD6)cr*+ bnc{!$NэJL>bv&i =Zd/Ѱ C)]` k/Lkn RF{X(\B`9htKˎ$n>c+xMHvgFvbIϩv8?2#&s^V 1%warF ݽ*1Ĥu}tDt*]zO3*9*'/$;"fFێ?ژhȓ+t94Շd7>ue9.BY`RNkZG=_a߫;nT hj*MN3vh0R%=^dƱOge/ m\h2lħ <ȁx[nEǣgtё򝞬D= \$b++ZQX8.(Ta*֜D5c]JtO.9Ən~q~{>lr] S|/Q| ਛϮMku.XM@ѱBk$ϖ9ਣ.:&,qg7]Ʌ Г"j.ͿqF5IQHmUf\G[b&aǯy}НNx۳g^ll H@$߾ek.jB_K;ܯMt[=9quhv*w?BjʜGx%<lɮ>{,7==|6> pEpgl( rgm 7Z ag"0d1?`MeShɟ&Ys&T+R1f4=H/#e?ƀN/噪#iwuZ ^=ۆ6E{xBxA_9Ɋf̽K![ PI6_\' P }KDFT-W5py+rGKiH{VΐI!iΠu ] -Rוm:ŕZ RV1x}ߡzB$c@A4A24AnBPe||qiM:RtcDI*Wh$9I(٨c\OX0.}7 ޻fm^V#q/JLqh`[D+(P|GˈyAyJf%jՔ-*_A+J)ͅ 6+RsHȺM%CzNmsy=>v֯ş_dWz(eE) 3eO7%ZZT.pmxѫJD4BX)Rc?_G)/)tlez>Q͙f{o7$4 yXƆ5٧7J ,΀˰uGɛ!!8XFDF| }Oڒ5y Kr9$g'pw7rB]c]acCrMI`O.R}w=g<(cט}D8uq˻m*m'!ʷ1|%nV! :-w5IAҭʥelǷCϜA18E 0L"*AVܼ1\2i1lVrDِ! 8'a ^3ܬ {WDT_smԎ휿G&K{$պWV5F^<ׄ)deFla'7V%Αt *Smz+:z}י9=`|{fy\F$!}p R+W'g^4(AŶ⿼%=HSCs64Y~8m}md=g3\j'ćNjܯIozB5 Ԃ nuv+!C+CDӹvӽ]ʇag_Dғ~9 WpI )>:C`eI Cn]qT1n;^<{,riB->o?`Rz)w]zK".2 ɲ2gJ~nb[7d)Фg_"~t{dpBA:UR~#+ $IjuVSGgp-3HtU꛸PK߂]2א Hs9xAȔH.S^JQPQXkM2!4 J9Q #$*m$ :"B! 0(#ߵdi \e3ϼ7|s~߫>pf9A$Imv#Um) DG*E5Y*\+)商Srj!PjB/Ti7[4l_{[ƽ((?5Aır qwi7ƍ%9TvL[S:vJe O>{P8@ī&!4~]'&ؕ VqfPN雸r BlY O YGQ'yqF}W%d8{X Y%փ5f# (Hnzfirt;N H@^/s!@ASc\ |*riCPWdl;( .!'C1#,j,7 1\tBk 8ob0&1QS4o,)f4I:m*La1R%Ř#~rxu+^UG%GDhV`jۢ&$Q!6h%b@Q`h@|[L˘\D78c#'#& +lN8F0. ذB@bL֡3N0qۅ* d>Ͽբ7'oE熨#Q6l̋qW?Y?5K{G{:sR9r>>^Uҍxės-1h}d[In| c,N bi?$|R:١(Tk2%"ů |AAm@ԉa}>gtYo.[ճf%0ʍ(418ASI&S=$?֔3lEeYAB2g3{{϶Ibw XZ?J'|^U~EG.\1_IFXZ _ ;OeD4D4@yiwDyF8hwӫUE%X2A*i+wF~hCw /X'.bF` EOQ(>%,RKA6bfJV2љ,Ei%a0u q-98k*)Y$*1N7Ӡu5R?ŋZYL*Kr;) U߬ NB}zF'C(V-ؽ}ɿa EL` 2d1-b'kMڛG.KQu./XS7 tu^a>N9,zcԵ>@2$C8mKY;iS\&/KVjo$°nl_V @Ps1U襛x1by$Ez̍S+EʾU|d5{@_:}?6WP({m<R^;wd#,ȓc!Y=yХ QqݏxTB&U?(BKr ~e1آ\!LUi[ &c8XJ@ Eslp;^&DnBs;^$G_Y ީ̟k&1(6MmJt&V˝Л!xX%v$ۻ= afdw𳵉\_&423^G9JObSpG, jVA H@TMXT!r!R΅󻣀+ԭi4K02|V ":h*NJ"ZDkS c<U3QLSSJWYS\Vs6$h_}PRh43k|iZ*(7m*Um[!St2$D.=R+ݧXSeGg{ V47ݣR+BϺ#k8ʭ5X"s˻<l(uSýVJ'&Vڰܯyh= qki+z(y_*0u޿ Uf"D,T>€m>$QJV\ry5sO`MrA_kN2t$JǗ ly֊}OW"Ƚ@99eGnԬ pRMCwFAT8JQrmjw7ǥZОM*Sh^!9@l4nxHe.W x75AkMBZc=i;UR3]H>2lxEt'v&GUg^be(ƙvu0jp(#ϑ4_)' ŐΩςӼg/ 80)2)* F [2K9/k7H%}!k۴Y^Wn^'TӀ9bR5%)U5uVu'8nI7H& ojLgsLkY#'GFL\7wҋ܎UX z+] `sA*=>p2F*½48_*],۾WxjwVγtuZj\1B=*I!WS:: F5ڒ%&%q*+Dspߋ0$paYfd0Eƣ(K][|\7t/&n~n ?`5;!;./z`:—8 ;8 AuI&SJ+L8o2|USa/֢[O#7.\tr0\.~4Vf^Jt;n+^ޛJSɄ·_[vT?UP~xۛPyo{~+@3N1z8SQ>Ъ\:i8}DÓ.رF`麰jZ)g-2`n3mPNLYXVݸq'<2Z,Wx7*[{vA,d| ad 'my=gu?m?߾.ȖQ(_m)9 I%@#CMc ܎ )]MGx_g} nV%0'T='!{lAv=@-OEWr&os$П?޴E}bpؚ7QVln-(+qyq @* ŭV:Mi+HluGB fMf;|]DZ;*v-6(Eް6?^٨UZ69p#H}'%j4PNo%$U MR*|M@;k޸[ޢTEhF_2+(E ILBQ˦!a"]D0 hP+ {hc!SF zm!pEГ9nhQp>BHKxؓ8>0VB[\ R ^M~i DOq\Z` +WC9 Ā+Z!Ao2:BCq*!♽Noo*P;;{{_BcqoC5js}`E"" 1[8FJJZb%צU}x+}RVG;gk8ko_' &@qMosak~d\H%BtVс`\^H{ G?8mJt 1į`6;zjrjtnݫ#lgo BQkSȖ:રruG%MbF .Mmn&Ҫเ?V>+8Z?dJx8/4󎔩<龄 XMKxл۲5Ze+P\<ɿGS>Qc|~<%{ %!ef$AƒWu|Y*WV{r3^ԭCbi",e(btf|46$; ^r;)S\dn)ON$T K]&jgΗV98+{*RX=t䄀SeFzi|?ro.M;i\jqK\׻3Z>Uyg~=Vb}/KL3 &~VXe$e6 scCZ,MeKa_xɉ:+qaf@YX|e.SܾBe >$O`J&X@`&iU5_cܢgt)G[M MC x>P?gl+ԅm\d@i)XfS6[& p@U4dFDMnܣUa51hm=-M%;6"樃]y`(YΟ\IypKFci'LHL,i~h Ǟf1&u"9E-L;q|F 4ҵpG[3@R 0DYy`d/{5 ӅQ$:zSQۍ+2g 2 FfSnq &=Wf z͖&UrVRU<3&|F~G \S>Ɍ 5aR/Lm֬9<һ`?7{c>xM-SafҸ[քL@|UDC;z!* E>v)`}\V`htD t#ޡ,.HXXjb0_U-g`BW#`H@2kc_h}N}nüޔSEZ_ܭI ̀#JiaN _mNKmSTd^qDDHBrV7!cWkx{r2` ɫ)eSt9NxQ]aÆ: y|]ܛ,s x V^jB`uk􄡒2]>: $Uαw.> F pHUS3[TĖJv~ U.7g>lIN%1a]rϥ(1N]}F䝸F? P) fѿ;DRlsh~Yx#gFZ @?v]rcă &lDx AI&S<={0?K0-Q1Ѣua0`5$]o dᵥph NOEij'H}-OqD}+WxqBw)Kax\-O\-CQ .SKxCQۿa+ۇ0bPyyId)&|TηgS-)OPnRܹJDt(i;ffBftn&A]ܖFrVAa'~0^>=عEЉq:>XJ'%C'l@tIpKƌZ[I{c -Q mj^Hmը,SwOf1 ӈӚ o {tvDm޸oMS}~$7%(V2͡ v1烫sH?[>.9 9oF=Ŏ0T6vtO&XI$?离"σ$# F`v1(]߀x  0RDV-!|nP8Ϲr=F?dNOC zH籋7y2[n)zo9(J[\H Cტds+0&B}uu]@"UڥcС1f\27ᡱOTf,ݕ70Zs&q@I//w RChܲ(R z/hd%qc7yA0Q¹ԃSH 4t奅eԡ!x!lJfB \jR\ڥfs5XU%Ӧ7OUo<8TY*ClڻWP4>)1uhZ <"OȰ1CF7yu}ж:o9)!r|\ k'[ #Ǽm F뽆 QKi KМP`i˭l]Q6(Dq 0ͧsq6h}%ִ(4j)&ύ{mbw Xǒ\tzgخ=}`PG9ܿX !,E1q]\Dd g Pa)Fz+ !@"KʣBWx@Mpjt/ւQ E#RZ9pVb>`bEl8=4~3%ZZ6NEDҿn~ ,Ty/ [jTS ԍaK ~`?tgo.xs,+suzޓ/5\' 2rO䮩Ul9*z Btоtz ֠GIM12af(,ӨZ?KR:0atJUq5 OPŲy7[N\%,W҉oڗ*rԡ &'DdDTTj1f/$:!N4=6L,8@韜6! aț2yV8QϷ֡vDbG MS;Y)G qwZcA jD\&տ]ȡuĪd[gysj҂{1\AIQS]EJy)7ԄPIm8 >W*+wm5 lazG$ %԰[f 77l [89Ana[eѯ2Dޓ(cZq,q)8MV3ڎ9vQ Z&&0Y)RjܿKƒzBCpqd l"urVU\/YS cF̎ڔGy!omJrzv=~WMVa[3ƙ#MyIyot]ݳ (dƚkSk^Thb=5k[:>uI@\Ꮌm5^U{i̐pjBပOb'6ź[]j(jߧ S]5JjCQ6oPZ8n-]cjPU8_Ǹ$PyW*P ~]~@5eXCx^tF6@0[M:}D GYJJ|(!< 0BxF$֛jF7q ߪD)B#J6;n ![/ s=!| ^C1:v'ePZzt)'Foxc<`@D>0JTgt-Ig]i }AOs9:d57ㄑZLd&6E=Ϗ| Z`:\1b)Aۂ=M#BTvRmdJOQ%Ƀ ATD|>f?Ķfhf|S۝TZiNƑRt4٘"mK5;%(^k @,'g2 ^}:?)xzЍ>"L^'];GX杵zKoRHxbݕ$Vxۑ'/onۣ 5yF5&Q*ZрZiޕ>dCZ|lLt.{87랆s?^^3$rֹuF-:okB:ѿ0J7ugT*ʆ(MʤRsj3"BFz'>UQƛ$WR`Ȗ_̚MBNbK",{] ].̌& ^t1^1O g</ 9gpԌ+@}ZrI|myٗ&Ȼ`o}b;fF ]i~F=T%3˟6qZP?$mYJ=xu < nL9ҦLSv59l9T\/31/Cԩ\?Ss#uDl8L &b&!Oہ0J"GN{*(fss; D`}V.rbӢI G LU@U rԛA K&S8-F:R,qr)7 x@ik=^9[L\&ڷՔy8PZga^6#FgcKM-k4}%̭t뙮 1ҥAR] 7Y($5z Ө磵Rsy"9☏Q8?^#^n#gY,Hix4oBړ|Rgsgw@$(>5~ Dқ`3״>W_re_~8༥)瑍F$Z9Ra]tR7?'{bϊL@l?݁HYuRg{k<-. ^@! ɌD7Xr1 82@2@j n*]0`.IjdSFL-ڑsVRxY ⭻m~ȍ,冫>. W晾UFH5 h@SGudd=,[)1LbP<|M.o`2ckCYX~ߋ;;on2@P t$n}w^l$6w50XOEmܱDIP"q(^1z.#M-cC<<%5]؆Kl+.wwD4F=sNsNWOH5p1>M'S96y ܱ`8 l̪D!&U)2S Ieל#J/tb qq]4"baӆ}S0d{Ȓu^!H*ZBZdC|HΞd-.VD1;\ *;2g* eTBRs+*G~q j?47@ LP/ʓ;|8S.RÍ-5:<(ٙb k2B\ڒgjsirq̜8&\+LmyXddݏ@KKab+ԎBj&s? S`]2_]ܦ,R: 0`-`] .[ zoӕWa W}6^6Z{K1iJ ܈V~rG_{T+{3E=%k.ΝHFO~zѡ YWN{ud'O' ?Lh>JJj/xV,΢e-td(f&%RZAȌ6Lt%ٝ/As4b܈9ו$,|~tPIJ&}Ŭ)/w6"o2_i GlBց,ѷi%f>N?4x2(k20kfQog4EUƺNF)1@7c8M4;n ǟOsHgi}:K& ˘#VSkqBueJt«4uPkk`;N]jBw+ pM̜dV_8G(PDD@[G?K'0BƬ}gI.l4 <H^Er. UI__y 6ZT5&S @EEDyh)JYq ywuRfO:)G^xTr: U{n޸4XV0D;~@fHK7o2NjiIΘi,ҢOdC`fݷJ_d)*x,qU\r[r4}mEg`:h+%uhL%4DGɭ{VjD߰"VDDBWx_vJsA);,%mMRkW,Uz3!Lz>*%sG{'b1nyn Ϲ8~ֿ9DF*1n-b`S>Ss!T@)25 AK Boaʖⅲhma(e52P" cGh PJAٲsF+`{"jr$1`9t[@JBi`6M6vӫ~a/V/Q:,G]vaTv\9S'J!ٵִ5LNLڒn< EE,|Mefui͋M!hE} Y ؿ1X\0(\ފ^IY]ڃ:&' hsv&FYZxVq %"qX{V'/[X\/gHx,>6E6%Fb"ke7cBl-MSWş5̐HyE_HI9R>}19d NgiSr XqŕNX{10T?dӸkX kz)(ĥ}׺7ZUbGTm%_/| E|KoeNm٥)87Εs`rf3<?ł|B<+?hW&UPk׋vlV<5OI ^959 +u"Nj{an5 bj(PcrPhXo!܅n# <}ml=JemVօ5wO$ÑKͯ1Ht;J]ľ'!>mk7{iԂf4X[Ώ3ս! z [j0fFm *|+KCr\&RS>v~4u4d_Åd3@ }}z0}p}UH1B h%惣|WG362r'"vSD*2A[+aG8:t]4qX/zZ Cq&{;5vKѢpQ0ПSU7.F>+B! y>Xiή~JץMS7Q!4F.PM.A="bdBy}ATw dُ޲t7P-M̵ZcxmV)9O`RGWc%~ bK CFb/;0z|Xqeo%ocWM~s1dANh4RdFd(!BH&v^&k s˟zYoͬ:Q6W2򜥲teB,:\E3;hNJB,Bo;fU/n9C6kMlm3rJAVcmN#GA {8cl⿿c,W KJ.t׳:1p{b--KIO@zc$DyIe^ЅKIyS-IUO5GK$] ٜKz?lį}2òO? [qs+ipu3E(1Q=E;^f!Hj7i!9<֙,͡"n}-em֬vӛnhI /9fs=^T@>QpXJBhA˔ۙ'q5Cо Ʀ>)*| <}namX8dDZt/^dṮ٦/M# TO5' "V"j&>tH|D47TlGk.toMGۃ?Їxn{6U-AI*djH1_xp {άL8haTh|!zt= 0дhZ '!A98ՍD;7`W<ݚ}f d8[C]W`7 e0)u#豍8 !GQIҒm.&!8P#P`( Ba:w2U|yT:1lnz˯A9EslBE}6 *˿>GP !sz (@CP51}BhZDfØo1^ Rhu4i2(ׯ3E-J6sar-֬'q|tHI@ zx1 7TX31y2ArKm8PJ Aa, 0[zyw2DR' z^˕{3r~?4L~d{Tym%/-F(!-n…CsʒAgCWH|1пlNaզ4jEHf؍g )e;6RPjt[9QõI2"4H5T\ټިi`#vAbN[3,MZ:L>&j1ii;o ?k?Y&}Z0N-=]MlEoo8vbcRg6%s hdN4cA[Z 7FɝZ䛐:!_Őu+| E8T4E !0`L @DVjU!.eUIvЂ7 s\gK}WS5\,֞s# T%urg]A1`sJ󛆥["qOЌL9D,Oh#"ƞzNw[8I&Rv^`㚐cQ0>~ž20 B.@KvJ;oqa_p=&)A(NxihIe8^5!>iARQS7욈|eHNP>B5KL.T"b<m''(V֮`=p*.] bA j,q'gyb m{Gv5CGԒ'y#Wc"/QczoR$2a'IfRS v¯Z؟8R; wSA$|R x}v5hh2X /WOᚠRdTk2o,$[*qt dc$d6ƾązIY1q/K&QY~߰NK9Z;]S7L?f˩-v%wi 9 EFJ]uި/,]ꉧdGaR3s8#ܞ8v!;jszJ_ղ3I.Se"ӭ 5t\8J $q XG؏[O8ڧvd =lѱߎ$fXLwMuof$mYfqVe \⒉̀2R`dn #18Y[)KmO) 84e ˸y¸g=AUyԪaڽYQ;ޞIkH&!^G A^UD8?v6&1R!fvx=sUPԎS0Ip u"7GFع`cYS- |yPİcl׍nK߼P$v?h# d BNQ2鉲#5Q펂\^\;JˆTtk>KՠIb IHd¥[(@k7t0iQ|Ӏq/$"CZrF~œ;HLXFa+gL9@= G{_ާ)'pt UX {j[+R ߛ6ڥU;jQ!ف٘7sS خN&;.zjI8bAъ' nc{Q~ CEJcS9%Y ЏUXR V֎mZmW c/ =jH'ƎҎH54T|my[րnQc(5)./٥&?peAUQ~㶍1E"C^ 9TW;bZJ`DsVBc(5[hǪҋ~0J,IU(%KR2~TߖgsP} k6քsdb]V(Q2 _]$6n誕I c0{Ű3X/L ~c/wq="ٹe@9A?@>ܳFb Bx.vg:T ,@, PȊƲqVybz _bA?9ǛO*'<9_dтyT;jGH$z㦾֬P$֫Y˻ݺEp=3'9}<C#3F_}gB@Š"+ҟZ*͠e!XD@RQ B=jBiͬA>U?Fت&a*V97֟r=K~JTĞ.j-:, $az ]KLMp|,{؏]ZFM?tF<& ΎRF>d |z|`-,PNZU0% φEGsG; o1c:ʡ~`Y;GbD^i]?V'+x}|xSūQ߾Qe{;DǦ@0b`X*9=Kwd+ /u=={.}?Jժ257㏊^I _"NkdcdHBv (}$őa`)?#|gTShj sT̝11kd=/@Ìh* jL' es@ "H{̨(ILe`N(>TT=@,A(ED/\TuT7u}hdz,/*>< P3GZevTkR9<w=?JEJosvj(_E/֕nϽjfn6F4 e{CKՃ;nLTz( ɪ|*xC((e) NIèY\9z'DJ17u8nCϞ/d&vNJdMg= oTT~D *BυԿ_#Agw\B} /C1ѳj&ޫ恶3 M4C*` ,ilNd8~f|j'&.w%5u!?${~\cx<=[yeN~TseŢ"l(ݘ".ߨe9zҺj>Սz\[ mcǁj`b1mԊH#-ܶ柭Nrɇ\1XF%U C*G11*=6܀sɵ:M\y :~8W3ݝeICCI%~&+_0äՃb%gd/Ɛ1 ,/dNk!>t9q猷9ӫHgTxdՙ LzgAblm,yXS-JĚ]d H68-dqw@n9ԥ~=d\Z RUvėg ry z >J FT|oVAP eC9yaPŁ) z8Yk1UlhQ[C$_@۰D| V3A[-˔L-[K)|F1J"-ft\q~1 =e‹h,&>l2 s^v! שtj{)䜒]}iTk e<}Y}-X@% h32kq3b5ZLǨ2p_H/T~.A?!ʼnS,JZ_+ɐ@XZG,/*M ӾQEWDcӽ:C2\V&"@?>,X4˅cAbqYJueI>w2ەnKXlh)3akv[8kF{?2.E2$v\cζU~,q_z){gEǩ: nan5fE+@ ykN~hPdJK"'$)ճLlaZC}`#d84k.S#c`h7yxh|Y,cKm˄QN3ӡ?!#a[,>,(Jpl~2[r!8X1&)Dz&_i$T;wI{DXT@&E`bd?C&h˴zYw>n+y+hjUw$*~[ZvfPȪX.Ac)}jT0OFiE51+ћr=*YW} `&@] te_.maI`O7nA@BepBEr$iѓ;jV&| O#W>>oXB!.ƾ5ik0ZVtrB=-) G9) }tX]frwo+_GݒKП܍a14zDV=8)*4b9")Io|s!ref}SߤS2` S毖GWeFV;;2eQ ݧ:0] Qdޝ6SFV%ҥ>].nA-D.3B#&K z%x/C>gQ%Ahe"\/E/䚐[S<'4ϭf{>S+- yI)؏MTB'Rizz&z b>ԬT( €* PҮV{J_殓8~gzWo{aコyP-pʏ۴ŪM]߅-F|Է06Hkt#싯_[ 1cM.vy}t3z*PZIIug8ɀ ]i(X݊Ym-y&"&UL1& QMB䑭1ɋ?12|Ӭ"#VthQ&[k%t 4n_|1_BU}p^ѩKD[7V|޶_~&;0(FE/q@s,q &et 2R¥,=4ϘkL(9WiJͳl펁nWq |UB_6nhBSGֆBT4 @ywLjnuB|iWp_sMgqKm>]p`x}uqgh\|'yerIH=Vﻲb <,RqW%a$y7)lڐR55(4^;AKYuӦ%bte JB:*.,T⓭Vѡ`E,BOlBՕvb=3M5MGr5\b1_%3Yitb&"NSGh 4h ˺e:g-uD Ej5Nš,+en;n)Ӧ/>jˌˆlj_l眚H>G@iE_/Tf+"8PAcIAhLD^$W [@NJ:2wJ$L#)#CŠ4ۭNqH4n5 iqWotpAv^bu8 'K@|^x5O![7ʃ}͊dzfrtjЏCC\i^qv|$g[Ϛ0.GNҐVF *huDW䦞//&D4!2Ox s`r9pp;GGp=66j1$?]Q!xtWOxMɱ>'~/W?ǩN&TH/S㨗(.Jr"O<|#MZ1A}6oӶfCSQGA_Qb/<2{6`IͤKsFhϊ͞@H@dz?kSįIc DD_n8.CV!Q Ƅ+c4Gdk(.= ʣUq|8?D"1htͲ2o8%otckߠKCWmxLS0d,៽B˪dR(4:u+kZj8L.lnQglhW'dUzηC&480j([#ʤmFR~^Tjwz]:;-f2A#;eDy|[.k^et;eivi>MG5?yU#Yf\3!ݥ[?EA*R e%hOYIc K$yD~+&FJtJ4CrUuY2t>J\HO[.4)3'?VdF\Nc)gްLs= : ƃӷ{) <Чx |Vjfo|tRVjUg]>s:LBPv.ZOFĦs*9fvl]JJ[E#vD!{&xD KYZ(V-4rgoaAQ *A&H2ן/#;Y( jBP䮟H t7Y|]|ܭ>)y,S|DuQwcmwSP7?kmUVI3[E>;ޭJgBrT!(7+فJ.TmQIʼnTu#M^ѽϜyfD]W|ڄ5ոKi7K'hQZli.{ccL^=\;w- :Ƹ.a <]SWPiRs打 c Ek_LWozȚQ{zSra]J8#~e]X$3ٜ;KE(Nj!sW ǟ@#ۮ`h*1Қ A!Ȁh9 }Ʃ6{;o ]|Hp QAI Re0Rŗ7q(4)Ղ5r=qPQ[@݄5R= ~&9t{HJB'ӹ}DEfO ,9̢E2&JdM&t,ߊBaB/A!r/k3.G]"-_e@fw{M;Zms7v[cmX3q/#  MNIŵ|l<qp [K8piR:dbPgܻdnm2?:58gɒW厅48֝=߭zrKnN"=&bN?#5|4y9l r%JfM%ѥ 胃oVNR@gS|6\JSJ.Ri&Hwgm&@fݞ//@Y?M%wU+n.1M>p3K@-=BcO*}"&?̙yBrO` Nu_[ uMO&CAoFF[';1Mf1L3C.lELQ<ĝ cOkzy_D`TÕ~3}(5={3iNL][G02$kۆDeⱍT9l!nngPDݙnc%4вP-اu2/\Щqw㑚 ygdğϮژNx>@8=fSo׽Ug̢ZVcбJ:)r]zUMX(K5///ްA(Oδko L0I[M'7`+G5RE`!GtZB&cb:4 .K-u'4L P Tplx!?\a0ְ_MN+]+Z@#0+Eq㨮u|O´hA{-6Ob2$V,֖?7`3Xjk ?ۥ lf!)@rt>O+܄e!M0U "aW$'2H0iع~CvYEJnZ$FUVzzX(l B*Qm V}O7Kf78 7aCGu (b![!ew@r eW eFId0Ȅ50mt޻H. va#"rG  )!/ߥZ xT·jG eɁ5'/ǚ 'pC=a9al2n Ie6RXr0`H23I,7{tydk4\wfpxqա.4n7Ch U#b7:L>-l`L: >bC8(e'G>Bs g|v(^}tvLl M̫Ͱմ' @\}l`kF-?MFS?ZÞh> 9PnuB^ﯬIslM jI-udC1d ޤfTT {WoumKFrwB0Q>3eCjQXpf>?^ŭjR$za0-GEb͸^NW wm{(HZDf((([XD1\_YG']Cht.Fuq93TEPQ(w;XcU =Rsw+-~Ø,`El6)[x]ͱ} NCIL%;%a1F/R8D6]* iz>tN/v~=@~AJ1fMxűV”R!h@=vTp'6lUVpYFe2sWn(~cFhc db'b1Q 1{؛aGz2(sHgۛ &ڸ v ;k;-jSki}3ׯƙJyัƆ@TMjB?Jlh~ʜXE4H-MMchG` $}eifZ`:ÈR+B w)UX$2ޟpOd e8˚ Ҥ⧃Li@{ܱ[5F5-E!:JhT1kK5٥K&?GB ⺚[{)#Qiq\?rΗ[b4bjTy;ݏc*4}2غ־;[Ch 9A:WBj֝8HNT^j876O 'g89r^ח(os-I"1R:Ħ}BO_&:"1qO}֔m[A pl1O|>O0,{W{R;wb6#E8 z |4]? hN]@;d|=4j* H?c/?`F ^?Q<>Ԡ( B4( @* B(f3Yj|T_ԅ}]< VWcsMg˹SdjtR~\t#Ju-ڪIp)b<֢伺.19e(F{-HT2 v,vˊ^K AItDXS{j)v ;nU>^M(e T+E Cp2@C{xWE rDWb2p ?8gPIԛg8똥*uez_.].k6)烋ͣl/졄ˑcҪPQ1TM6Vz7ǵQ ޣB/CgꇌYK{~ &z'7[1ECd2@v- ʷ3GL߅ Pta$KPR-]\1Hnshʀf:7NL2E]p>[v 3GukwH2ipnRt*5v |7kNPDл={QQ*zKm=*svmc\QH#G#LoH4]p|TTR1P:c[pdڨ8h~:2DdvC^ `$ӀLKDbш91]+nTM /g|uDEj< }l~ꞧiR=?T㦟 x^yzUbinsd:ZrNh=%lzN=_>؊>gʵpκ/ؓTe)jr#t#*#4Y5 9c64σ߉>47C&W} 7e92{D ЈD*az?rtAeFE1}uvbƞ!jיlBRoq!y^$$l\Y}6 ](>F;ArB՞ceL2dfRX4j̤'4*Aq?pS+p v~TݵHj~WG Jp 8< z=>yZ@80F[,?QmXy~qp˫lB<2e:1:z6lP\0:b H&$ P?Ϯ+w)MOlkqOaX{wm==ȮZwW,vO9O fuW"y!UUcCW~Xkanzi)]/*ձ`ntzoRJhhbϗMv5@?5AP=&ӜFReba@=AB/yCDxYP%W)LvÐ4Z|1[^$6לY==R"rmu1m(B"mJ"gڥ{uXMyi0 ZC 2[5`aMfJG C~oXBܺ!Z6KwHYm~6~F$Np)|cj$LJUAVg=Z׭( :{L8n%fL"Zƭm@6ȍ W %oFh#2$D>p_2K:? yomFOI "3XI\@tZ5y$Lᓙ |/_>0& d@4+ b@E ξtVN'"&om^a}?~nxg#5ÜJ&p/?nB6Z3l}朔#ǹșVȤ$Ͼg"*wvoEmW~WKCwM5O08zٮ+LAY'@DFQ6pj9"s@0& Ь4 B`XP a@U|o_?Uy뭧KLn;>ۥOPnBF"Ĕ#8lcQ:P\"-=yHR$ǂc+k/gth"9+oݚx~l/݁ TQB.[UѤBr+Z'ϧE&N>@Ρ8\%F#0EA-iS̘ ӴtRk@M6st0rb};BOSmoeh`A善(7f) 7,<7ra ]2vu >"dK.L<Ԣpzd|ۗrYZꐌGaaFtciҦa0 aИ0&$ b(jA&unYjI+/9raIw[}Hۢ= ON~:Dd NnSKJ}J=JdIM\6AZT/]~EB(Q1;6(%Z֦>23lGhw1R0TNT Bbn  ${J` vAIAhLD@v\!@p {ODz!g6[:55*Y\$aiQRH _cVsgRۢڪw7l>)LC>?k|kLɉ<\IMHni#!@cY]՚x:I΃pLu Qɜ.=),q!X X\ptO/3 ѳW2ٽ$ ljO媨Er: V \%rk ]4Mm4lO@owT^KHzrxI܍ta{KV͵959 U~nY~a(G|}̂G.݅1`'}g>қXWad(KwW]G 0i10E5pt|!19fx@B1 C{BlLbc 0`Zgl7+F W%<3K'Q@R}Xj*&,4u #WA&c;%+]a#vSol J`kX*Rj+j#ه(cgdd&VVCN叫T?0dG[qv@TD>P~$^q3{Sui2_J:BPEKA r2g^̯b7'2k=>{Y!Q2VRd]6)5w  Gq/C}nKLe$wSf67 W@:ƺ7bfF5oTX>+ 5uOG5\G\mOm,E ʃ BڏKA܁n_<A 6}l妕Y}hVTdq,˰e4C| G/FWy?cgjm;+_& ,cjpx/XEqmEzkxNQVza_XS-# վ}eo6KFqI}3 bh Dr$}>P]܏`B ۈ55v$7KqbS@̔ST>hJOf"zslXHz~E.&L^xGd,z >Eg=,NJnˠe`0&Y£3 ȱ򏳭 Q_aQf圷I]8^#.N&24?~}|LGw-qQ>vJ 9;7w(*@$z(]ʦnSq ٝ^Ɔ =g.fQ FO_v}\0^+=:@Ue-m; & I/1 25:4U|,4w_Dgf'`95xH0 ޣuݘ# *P̈ړ̘Q GtD qc+g2oc$/m2ze{31/fgх$#ȅQ* Z|cC}# Ϳ QoH"Eq'" PR  }՝g-hN5Y#O# <>Yqe9 @tOGo ![Yn*|ۚGaP,HژΞ2эO$Bb "MۼW̐xVV8+ ~"zs/1ޮc񚃝v٬h 4Bۅozhn9vԂ" @'u a{ /)U)ml8t*?6xw6q[Vg-E{{HtYFz~/::x&i|q+o+7+'J(GOK >}k+le*Uv `5> 2MAvbF@<v* !`4 `H"]מИqZŭl8hHܷԷtv}4ꫦ{g׽]QlP5431Wޒ߱堠N{'QԪbI ZQ\\X^*SH8Bv: !,D BPL(%s֩ǎz}^h@w6D{U%%g\pzT" }Z?)8|p׹y::JLb.:HqQ84̗wR6A=?/_u0^25}v>5 JUi{9M :n-N$]K8 jB)B,ƞoVZx}-BSoa>U΢9~T^R xt]1QJmh(^s~) ܄Boᔻ=سz~,1hP$جBֱ,6d!ڨζ8yݺG\J90A^{6z\ܠIM"5$'H³ljb;GnA7E~wݑ&ډ%_}UXF}h'_0[ -12uXqu4Zㄳ;H3MP(<.=p/bAmG'B?tq|?04l b!FQM_ʕ. Dp8toDB.qB0*A`Р4 bXN a&̹{ֳ<ϟoϯk4]GI^QHw>͝a|Wor *NOlh=0%dlg>XoS3sJq62'bm~z+nmFWx:cZb4Ő>ޝ@ Qf̓eº  Zb Y'p@T l0g a &!BϏoϷ+ReƯ|NwI1,'{6g 4$ @Oe3W{.yOMk.c@hb m.[c`*؎jZ3?(Eo'GIgRN_L*C~aan/<Rjrt@ BJV¡tФ`8A I Re0R<@*Kpt|4* IXݘ|0Rux&Vk 99 @dvv0+naр#gxzvP H̺{C=9]ʴ %3;_&>lrq\EQ@56+ iP¥TZ(ZйfYFd57AEdB,o6cen΄ĶPz +F wp}EןK^T\ٞmk?eFWo3$,9g.'̨7v77hzETNz˙?o 'uQl.+"l<߄|Ͷ?6u YOcAvxړi. H}^58yIrG05ց/9ubn4\\w!}R^G^Kt3̻W\'VqQ!j JuFR-vO\_U >v*o۫Omsͺt4Օ6VE# US [ڡX*;QA%\r):UyU꯷ EH(P\GtERSdf%Xj@Aگl?BٝE"2_JlEWU@;_UB +"&ew,_nG/{(tC2 86M LwRqzۡ2Lz+?IYEm k' {tR%w̺r1޾yv!-#d摲7P0$L/dH|T5(?䋶<әtXl9g7Eɨ-#:N3p'eȪH*Q!WQ bm` m1e ^īzџoH;?Vp\8#> V?qPXT1C+KΌm [+KbEw)ҌQu'ܭ؃iHZC$|ؚG.%BR X-ht9ij)!fe x$O~?OK)v\Ju)gvHMO )[G::v|x:Fl yz3Tazy(;"j́@,ĻQ`ׂ#5n[p]dt T :# a\#Bh2&ogP^ ]17ZuR05'Sæ-OM%z/V+>Fs9_40w?.-y AB5_ GnC1֢h1 1t|z۸.;\I . `XqLw T $q ռ+TJ^Q0\Vͱ$vKZqQK]e'ON MvqVON6SQXRt Yb ]]¾&` ]]~ A>%q` |59 =հl#lgVw7nJyyDmcICgfx{YsY,a.(WT@|_؋$+#U@K$O/yaSsi#.)TlJh%;L^fH-б*+jB?2,z$0ss:Z)pYI>v=֚nJ8/ Xvܪ ,(ةN5'=w8{͓h1eXjJJϣ0 fG/fRYyLv>)'CKЮ6KOmD1!^zӧ%;oX-t-~ʡp,Ay%GaߕG*0ɗowJItIHxNDgҨjc d&{(~H S2h9>06 C`0& @PfB}zʽ'P^RO=ߺT;/gG'Z/(E/9s>~WW_K^t<]/1F KPu1{tɣ,g36ҪDڞ2Np>7rm$ώESIaJJH~j L-&ˆâVYݖs4E;$It D0F `. p0&a>>^fzIIǙ]}To ཱིe? 97"Buu`Fje49FRbJ c*APi#Wƃm疃+s煥(Dnvk< F$9>~ gR = p]׶JNm YI{Yd)d AA.ID;[hk{aPTZl_ڕ:O:.3& :36T77 1 DՔdA6ȇʼnږ'c:"JȂUc 7\&{¦zۜ +L9-0T$J@?Ep; I@~2SqEF+֖u7 »Ÿ3H5B,;_iY$Ȅ,R&`1;)jzӄ(k!PM*< Xz(w&=5=A{fɸ QD)SFW/ƈ58f}Oq#1xVO?zzAy&ՅTw u#э.X?t. #\*^NEH1Pg_yLmMs zI)"͐O2q퀏vk&sς_g|<\&r}d}K9Ʊ m|j\m%Ў}+*Ӑ73\IJn|aڣ ߩLo1ካmA?HjG?Պ",+8p|%OZ);{B^b%qEzFo{3lͳ]/,xj9Bi/4i/&TMd )wWhc&e.e9Z$ jVD 4cP[) ~魓| [Cͧ'xZ zSnQ][?S,ͮqk}8&>|Eiܵ`yK_q;}¿~$A-xgUl3e cxf#aP2FƄYp1aAtl&U >K>K_+(jـ/ 2,V6*&{`!ہ)r"-94$4`l*BRL>zE"6jQ@-d%=íD+ӘQ٩ث\Qfz:3IS`&A٤ҵL1'o*>.牅yh׎%𗿛 KC`gQrM~,፯bJdr3OJT*&F"iܹ5GG1#4?^2!(!M&}Rp*6 zeC&ָAoG?`gh+ V>Mg9_,wh rX8wE8~ǭjhIDX:kԬмn(Re=hSvvm =]?k%gB􁆘`6֓_ lی<a@'Ka +0^IfJh[,p7+޴0U,m->{q^l澊L(; ŤsZ̀N2kۼ5Jŧ RL+NImm%MjB>Juu*+f>t>¿b0MeeEjvMv v؃ߙ*W"й1OГ6z2xu B6d\ۄ+ wztm6SW! )lvߖ#[FLP|gX2ҥM3{Df+K!_: +?8yuNn^N>/MmV~=l]9ЁR5 [Y8jC?/ GbRsE$z>Z':TP b(0& &Cw}u28¦C_R#DFaܫ8vgKۦ߾Ltuy#06H[i(T[s;݀KL-'p%psGf~ rߍ2QKGetYG@R5WV!_%0` Pa$s[Ū D*QiU,A,(4\RDRu|2>xRdK?8;s?GC[Nn]FRYJtѲ<ϣ3MkgеWj:J"MQtTC88U4cT˫Md-6V ;<'f>яtǖjgflk^ >S>sX(Q8Ljl\API&S=%!/f%,PR/T#p_Ax 1Fi+7@#2iRCv=h+AW[حvI T~{EHs~H|t|MBn6+c[>?HW.,5! Cw}^; yS&}5iV2d瞤הm>ԃ u) $TD |cVW: :C\R UYcFfXƑy7=%pf"T*y )A_6tQTLUpqY#8ǯҥfw9G/zDB1t(m)|a]e 1J8⏛oĉMX*ތ8ni-ȯyE6S,ll]?UIot@c-!Ā܌1}DmzB3M3$6`5fF9HԆ)$m MWs Bg iΌ?#hB@@,+uUj4t|˾s%]d,W wֻ_"*X VϨ]#e=+,)̝FWDLpbXP`5"K+ޚ8]y K (\7{H+&&Hބ SD&x2"@X~%%5#e a1hQ(ySoBmuqlGZco]2.Y oJRĨՌo*w{ 6&!TZwG7L$Yto'2GVp}C TeTgoܨ{I'ৢr=e 23IũeR=3AE#| _"]'ּ C>=@64e!u~ VIRzf0^rm[O+au 7k)!?.I“݄OCUze(};=xUНDӂz΍NAҖܧ.'Q`a—qM#972.7Lv5w0.$.Up}&<8m?鱠vt$x@ 5L(xNEϬ@fP@y'7ֵےL*y#DUgGCY%S/|!myf֮r4)4aGq sV{J cKx/v12( 2+@V^S'+.vW(P)+Zcх=q@_Ȁ<`_Asf@H]Dm8*GwP!p`uT:&<}V_Mx8jhz%!&HL\ל%|.u}o_q;ZA;FdX`Tٷu8q}_2vmeb tx:Ux&@25i 7WT-iTuG{V+5D3.R4zo53&<+ފHh+&GQz[F}O0npʺX{'c1pojBĹ=4ekw^眫&`Uk@!Fc?>_GfmO#j C&'aKZ2,΅^!T: Z HD)O }GZM4V?@P9`rC|^BXSU<5)tLzx $;?82]%ʄJYp0k;fOtyQ]uׂգR>iI 981ǚ$FNPR&@xbɖl}QRY*!nnti?n[]Tzaޔ 3\n*O De̦ϕ(b0F(Xsoy`{8dkh8ArI&S=\9e9rj=;ɸ (4_U T ]f9,k %dTE?)5/׽#yRC#7V[88* ZR٠~vtƲ LHXؙ c O^ 2 q}yR3zێCK 9Z%]bE L+˦ Q ʘĽ >&%q ʣ*< ڌvD7$l% Tˊ|=h$s&ДZHҥ03%Ձ( }\Lw7"υ@`ũ`uΫ3\(Dzɇ B[B"@R}gZ#k_d=|pHS0%q?CJkqi‘Mjq,Z)2MOލb<@Ev+?%wx-9`˺|U*g,v[zA{7]rZ`H7d"18ntS:I8T= UYK-0gm> \ObNB5h1|;_!1WIVwsN,q{}&֟;7¥+lj+ h`T{ =Q>HrJ]k%IME[-TM v+t×c&MX0+MƄU΅z,;MU|W n0_^#AoQ(aF9рpIKp/2 /jv)k\97nUBPS ޥ?΋,l*xG,`6Oiڪ4"G~0vg!8=}6aS}!/67z?qi}S-㭘@41%.rUQro{B^Y \I ?Q]hoBjJ^8b޻12OvuچNGz2j_0-~!kq=J S'fq_`9d rnB˂^F߭2: z*}geh]0V{)_n~멒N%@WuZ&*:#RbyK:%X)'u];[!.?<n Q\nDʴM_VQ/RoP'`{ʏrW.>ʒ:sxY\_exbqb0Ma2k;6!g{fނc$3Oʫճ_2)a*/ oΝ8c4kU(d Ehlù@SAE $&[Ⲙ~T'Dt(O$cUqE>Kl # QM'ʱ'[U~ ǸzZZ:zƏ-'_srgFmVg,vgec>A$|>TBg? MpԖOJxu%P_evl["~t{K~%C*txNҥn< 9 az]-zca{M9XqPn$Qgn%R]a*HkFC].7n}evfXx肗9WY1^ýcZDc+M(:cw oRƉF**O&Q4~a.:(裇-*C"1 ~0lL]ůѴBvɀS`f[\5 0Dd)n-uWHHt ?h 0n{'΃ Zmĸl.΋(E y%1TB3 BRiBAOP Dӽ $Ns&ZxRT@x v1wxn/&4m>s /Ej$GkF4{ިb5B?yӸc=Hb?[5+WGl*SӘL' u,Ԭ4' `X"aB5/u+TϕINg5<_kt~ow$l(puݽ>O?~yMUrh5 g%5w# ߩ?v}ƫ7h26kXlo&dovRՖZÀ9[x4T["8-Ę4Qi eT&TP p,( BEO.So2{e[uȥ2XH?oo~jgnc/WþQϼvQo\ef[k&nlVqg:g \_e3 9qk!5q[SR%v}p7Lgj]}yC,+U./D?vEI j5D$V.BuUQFpjBݹ'N{+@$ ۩JD}ydl X\7zr3*5(BbX6OMe1%_bPmi8eCP'l=MLoBG /ҥOT6j uWhG؎yOŀY"Z\D[st'`MP@#C&% m2z̬aI6VN']46^2#4wo+z9u#Yjwփf>&+X^>5@(nȁ2+= {qj X*%mWVڥx6V]:Al)eV52:Ʊ68´ѐIZ[: %V$02""i9:M)2InV*vir[ύ x@9` =.vud$8pwKk@a%R4$?%pAI&S v l$pN+yy5e g ~Ock2 #Vm d X GP]k•ڪ&dX%qb6Dd)wfZ]0^Ġ>PV_?ͬ4qP^BwM۟}O}+te`R U/xf^ d^ߥr̲w v| fA(N~%M*On"b(ЁIʹ'Jl0b| 5 S*jP<ū"+xE65dPeC1upyO = $Q鸩i-)HB&H6.' u 4$3Bd@1ҘOYj;+9}Bi ;*dEGFx=[*X0#h)d-% q=iZs+JO;Q]C!իs{)xvӚndPU"cW3Odi77Q-5&2g&ۏDn7vPP5JW KO}9!>ȍ(o8k±TpOdW„CӐ8=A0Yr=>^˟k5>kGuV|}Zwbr^x#ZB v,sU>P޺mj9_3̄j+om2#'\M-d= ͒nn!^$/NUl xF)q\$3 Nn@}MqRr{?。2i%Vh AǎUӛvt GkXXX["\ f؉aFؓap9ɄBؕjm%$-3r<[RWA`!dXwlS߯|9KpJٸ9T-ۜdbJ|g%qE{*GWl<|_k=5 U^($R0&mgs'Xdk3>V uLKS#fC9xN W"a>il$Tmۇ-j)α/p&64 k'= &M;hMiJ!^ ޘ?xSiuȤ]Bo+g 5"gUipyj'J4tu)sP\-'MACg!qsQC$D&|NZMn5_{`^Y^I۽+Ж(/\/y8u4CZgaz#bd90 T^{r+ױhމi{#OPP'`6T:0CwZΏP;nTdvzt ҃5+#C\σwr#Jl1#~o>&`}:$GSWb,|/=1)h@t|2S8x)3PoW0Y]!1[] ËA-4p<X,\uEE{H2Qۆ?aV{dM묽IGG?USy[mT̊gA/ omG@9qO` Mix 2/5oʮ~h3f`dz];)WI?  _(ԬP: `X `&CϮ=RQ0*Ui{D~`6jOs~qg|[;j-n$O)QX{'wO8j}9X8sG#< v6' L$F`$ A}+2$gO~nK/ upIpΊ]GXV6<bj)~$IդLiKٙyJ6 ` Uu=3J@,Ky ;[.# m*[s9gcDh4 kހ/QBEr P46ȕtjB$T3:,t POѣ_}IȎQ}gtjnXUŶCؿ>Ƅb0X#(tqfyr({KJ5(XF׌<[i`fYh*][ TzUb*(NQ*ž]ț 5Fhi+JR T+Syݞ;xYUzeش?h:Ȉ߸Qq)JN3uXvgw=>aNap12bz>왐\?V |kXDr(ʌ:DHDX&ˬ o^V ?QqU`PME)4ׁ/a# "G ICcPɢSg೴ՏuZrV!E(3af&YLgsɝINc3l71DЧ特8/$' ;mه"L1ْ.Vzhh5+=߇HeVUNޖAռC_bCUԲ1U[1'|P0Tk:)e3U UZe@y3pWu"Sxc>"k:9нhWjN篜T\IԙW4/`t3~16xB`{m%C}%s9lPZ,ܧ?O漃`;a)[*cd:2;Gs /qa+xm̅J4) hh(la} dh KTyg5%K>yK4OY:|>@#}MȌˬ>ە#3ؚS]7Q4_")!L7|kCʵa}AQ[9Ag9割-#wAH2ʏP^v 1&;pT<H'xp!4ׄ3*\zIe0LŃr5:g]>LǃoE>q#a9VBn,t9~ɐEdڽp?P[VA@ SU4$3s* 5$ gE ܁}KDt`Umתw po{;}Q:T,P: bX(¡A"r$Ksj%^ 8ش'^Ó+=/C!ݞv0Mol z @Ct'?mE*T__DY֡Ҋ /55󠥹ދ ֗n>:LM8q QaTbD$9LuS@g&u iV>U03󒳐_wh좓 s/n ܀@;#{ԯMYg7`!A?r8@0=+|󛏄zٳI:_x|rOӑ='N'wFWC3l9T}`[GFiAB\} D;o6,A"%ĝ9!2^J˥c*ȍuij{yd㺸"z>f]@x.n5c@N8z5B| ut5N 6s9/`y 8 D' 6΂6Z&1;?3;^8:L2x}b΢&B#}vd |_G }"RT {BG|K' KVA̳Gչ}IrΡwY/\ *|q8 sXS4(Ȁ$fM@B0F*e(Mڳ 4ߴu{&(492$ˢR{X.ϠM簢K ~i<#OV~gͮqo(/C=n93뺜j# w<NXmWR=ޞ-*TI'?"S)fF[K$WW0g5ĥD$DMU446-Xp6 a@XjCzi[%$R̙%N8uHAh n.uxDi_Oz>=\}=|_v]_~&8߅E4ߔ~{ֆ Itq]A[ogO/_Фohi[#:.Ffs.I.Ec& nRH\(%">utKx A罦fDfbb+D*2ɃK;Xiaz{˴ŵ8mf7| T2)$aUTMEV,:g|9oCo,*QqN#k{}>k^s  NK=@Dt<o%us][ň6YPK 0~XT<y)nOǎl*Mf0}B{~(C)m`1a Tr" y(%&f%kU,}͚ Cwm_ -ܮOk tRBS]E*@<^ 0-9)inD tՐ99UM|.$?wZ[qiflN^ w[tJvڧ>O41^km2QZr>65ofZG>Wx5 f:q%M5զt1jT+]6B^%uQJ$ FèM@O*/g&T!a"u d]ReOO|e[D]03`Q{Unb_a>g`_CǠ3C;;la*<(\PaS¯7euw}8xR" W^*%rp*F]LKY;ן',o@6 Uwm|v[>Zx> WK+r&Rj;1JD ٭¤4'/c69YhYׅ_s >>ܽژ, }j' amq.r-R$WНmHٰn{uxZKPs9 wY.Àj`I)Oqqja9xK\`GF;fɥ<,AbVH9qKG P a1ǮiDD7PMflgܨy D4%Jk6wƃָUZ20APTJL%+ ;$^, G@<^;QZlʠpa'QqVCOLٺLBSןL-ЂmT$W%Xp!' Ѻ5 \r^pt\ QJ!V908|OS#6}}ZwJZk"p_-gxH05]ҟq@q{> 峯nJ~8SӮeR:D굡FdKܒybypkT K{:z&,xțB&K(-I o@PV<ъsܮd]UHӬ:hzrE3R9:O5ty;gkD~!Ss"tcG\iMaE`%l)wS-Z؟4O?p:AY+#42{=y:P)?n%Sݵ1F eFPJQJ8 Fus)hrx [cF곾\p#2 $7jr֔%ðNWѵMG{[]Ȱ'*75g-0Q)>ߋkȹ7X7kʯ|#LCG7gĨ ;ޛl2AZvrR,!]*yF"+:U| 47O+жz[Q)ศl".,Uæ[&3e)̾q`/Xidl(X?qy֢ (f- `銥Rq D3ҼJ>7xӎ(.|ͮ t8fofFnUUqPщrc/S6i}@̔wAL/l (ñIT,N`RumuQ[} ı}$WPF:-2AYT'DW#+ 3a4,P `0& cX&;m7r5 zr&rO/]/ɋo; ^>|Q,r2;?@75j43-&::l0^L=ʘrR+fj04'LY۫d)4EnӴW ^[g$_t'9CHP WJ"GRMH&$L:Tp`XT @H&B?oZ52H_ʽ ?dx;3a6_wg?X]87gwBjuMmw:A:}=g޽àHvI~{gUnos?u߇ Dv2oxy+=WpI&S@ʥ@H nte(!? UDR4y@EbB$L_YjBȵsb ^KQ`%eu{ٳҭؖ`Fj(th V-^%yrì*>B<M%$<}FLh0FLeąX`.65ߕn.:,>9s_?Ĝ/Z垎zz&2'[ L^o'r %O\*sk>mAI Re0&/ܮ#Gw)rc 'wybdJqa/a˫X+,+Dv$gvX4}fB~v;Gc RV'FUv Tc15S )`uhEͽ:V'O-7Pc3nEsGK 7/ZY?5 06`ⳃ,vTuô01hu2^7ԭ !Ђ1 TK%:F-%^|"|\nǼZu8SZ^KJ r"62^i!D _.M5?fw㖍g kR8IRqXo+ \t:j`k@c?LFc)1{t=g]Lcӧ!ͦZ_D{pٞ% v=Ӷv _X{,JgX'x)6e p/ukR&!g4HzMǥrD`(/6{.7C@;#h1'*IժDhF r!8'W `Y un 'n\"AҦ_[ĵ)Ht5gra,i8{fc6lpmh1H<g:8|>P$#ДHk~pWOm<EA};*yVE#0XvKY>VC,Vю\ A|!IǞϠ=펝[R%Q OL;],<׶u \05&Ycv_8;DmZb!:Q9R肔HR[KTG8*D\p;EJ*:Ze˜AIt ,JԹ C /=g1d |'EI30t2''GxvVȑka 7]P4!Ab>բNPּg0_쥎L|b-xoT}A)\ĥ$h(ruޭsHu]nlݱyU,1+jQL,"|RDb->ELLI!OcT%g" %>[CH1>TU~1ΗhHwW#.gfMIW|J }oH6tូs`/p;H$tCwic.%dnaVȝ$T.&0'pcgr~(]*t*/7>6sշ{@w#]\ōv>nWrBRLK8-?G_ʴ4Mg?j'rS=~6]!*<ːwwvG_ׂs0x|hQ!* )U@! A;B8P4Ң3HAÌ+ÐF,J]'EiԁƟf|?aI}\Aаc@]QiG@IqoCg\9#D˲3<%L>PW|B wQ0TFI0P4*0Sl cȵLkv:n72jTgՐ3cp(LHuĥ`ĭ"cz@vhSӡ&ڻהB  ݷ}7N`O@jrYؓ}`ENp1|2 O7к[,6hP' Xx_gbc"nbKbRPEe :{չ4 WĢ3F-*jz[3x _K̯xxR`<0K Q 2 `XduW7KquԹ7rnw>bu ,^/:7D4V ;^n2lVL7(ǧuFtmISFtCTFk{ ^&>aJ_x ZoR ԛJU[Rd0?51z>KA#,ZwqBU#\NIA*Ziȵ5Viy}qB9Iu}uR@V"c3+ð#}) YK**|Ekb )c; ):]4%>3- Ph;hH7[CF& .+_TmGJt W5Qʱ$~X+avSOWNZa2jDKk<QtiegwV};ҭƹOa䘩u‚m"$1'nI8LР4 c|*qG[HqJek>ƆwHߗcgo7eM`zW77/qAwB{uSZH᜾y)˳7Ie`-w_i*l"4PIG= 9dcy{/n6kYŏ3ny߈-+]ao2蕢hq62 a@p: a*[\.+nq|wm믿*h{>@WR-]9gQvk;TYv{N_=o]&R`ݨnǙ՗eQe'l Mi+eϢUڬ$˸J*%Pp69W ׿{J\=^nG:sR%rbN2xԂ` UPr\hr4KA^IAhLDLҦc"wwhsCH[&h>}8Mp&LZ|,6**v9;.Jƣcr9S f"aŠhdբ|AY['q `xR3l57ɜGuɓgP[62ANcf`7 [p(azt 0 H6. X*]vL9lF|~f>}uEթzβ[@M-nPsJ|G#/9%ʪYo[oϾ10jYr$l t\7b"X .i"@gvkU4/!-'J%2en s/a=]kDφ@X=l¤YI #b%qEo"EBN^z8L yKp\`S\sʠ}:>Wp9Ֆ\H-ouRy6h;[H7 Ƨld8ͅ}]n(YڭPe}{wt==hciV؂Y_s%a'WGCfUAA~eK)Mo+^¼mBdAG1I .AiTj%/A+v5z jyY$H\EcZJmV5_.pOpBbW;0Fz-w,lyc$4r ׇpX&%OthPKHF}M1*EO1.9Ju"28]dzbf2q(7yqTũ)|4~.K)U=[huF>.*y;5rr19daxXi>{%v/6MR}]]1u;Yzc0E` {We~[f,Wic{D0 y5+LM)$e] rwml%C1>Je>qSt 1l6ɣ8VWm5>!g+(nΊPB1YS&Fԅ7tVʄB%fVWqwsNePT|oODy#/ :@^sN'U 1'0FJ6-8^ӑw\cR#JYGr Дtx+=rPC/v7Zc?KWh{p7ʢU۞U3x` .*C\8E]6g{LzSe%J 9u9Nj nwdb ˆ|EH'L[rg/}<9ı7xC]JhnAD3La;W69 $&Zd;fA'ZM !4T4 Pl4& @f!;֫K+&wy?WI\ z񞾷{wύJR:M#Я+R^S?Ly"~<_/l%7,vful46˰5R޼}zޭ; RE&}KPQt̩0wlU'0uPXF";zQAܤ9<k4`C,XYi @}jB9 Uk֜ (y 7|AQ'шg릧m.,m ]T{kpm837V+%`pdn+V"CNXJRnO/ph)wD16 ]H3U'%q)*.4^-IWY$nyc'?7k8ڥrnխru 飰g6wuVtO:]&0ΓN:~Y1;%MOع[e".fA`l;jU=Z.UDbk"*¬}}xV)Z,uye|{v]D/ob!>U5YW0;ɾ&pQrƏV] ]}[j:hm"H, 7%%&^i S;o6aEta~ ;qӇ#]w(Dz~z'ӜVA ·^=v0x 08 RA`I Re0RtRjq %8όV6A=;T>r$سÿDcʼ aX(}i4zT: q*d , BMM7(KnK<=:Ju܁dg)nm) ysi:;aśrvڡ+Άi^&AHh8*%X\m'I JzsF;©r1#VSDB!U#~i)F{QC.ĆQb顨;d& Sl4('zyL%xߺ)5Z,q'Vq0R4@Dލ SeJO@]^-Ǖh^1]?r)픁"\ d;&bTãGoyF}T;rd+N >X"m`JKڭgRG;uv-VU8%Fp(hADKnj,'H-U<+T7%AxE9W M@\$Fh;C!mFU- 0ֹ@Ht0ccr5G"0 ryWV?J]FEVp5'=V nۇyUO,W&~xQMA1^[u%0E #?P`t\Cz5y9TcuLH(d`/E8?'k6NULQ4I&3 ` Zqbr{f/_VQ)ZQz OyzPQʛ7l3 ̄p,!l.UK uێEO@̡Q,G5 E^NH%C[nXw1 ^MClNlg]xRD1)3GclV%;c+Ϸ\d&C'RDO(]FjU Tuh\{qf()"\omLP(quֱC&gyLWW`9 ^h)},q U*P} Gyw'8?E4]m~2q !PwMI09ϭej^Vi>a# )O-ڌhc pbGtwj[rtm)~)re]/1!]ԣy>ucYºe:,Wp9h\PD#WJ% bayABQ9kAtCQ4ԭR%$UzҢ17A1OKX_WI{d jF`Ve#7{VK_c-&j52fg~ަKh+T"~M82̯k3o{dTs1JeZs:x qFe--z>XZUL6ap:znkj^G;}%<;U&=cp%xp˪yϫ!rjwKCLtoف,6NHk5~chb+vu(s6sCB9[5aUO'$ɂˏbЇ}>iÅ1>kn/BHkc9ӧ]0:3N#fݳOrcˋe)n h]hw7k9(Q=rh l5 ߱P;9Da>_.`zz%z?=S=S6Lx8cAID:ܛ xt mAM٬]}GdQ0?47*v=A˼IP. ]pWnUqcOџpP7G"b|H: YFQ>/O8pjhw'̨⻘h Wzj]^׍MdJItJfR$2A0>N Ԋi--Po}svBx~'TK7RTLuq6[ABG{;#$\:tcRuwf5X @s k>5-?@ήp6G!9 u$sMKylrV8_,S'qMX4T.[\&M2;L ŞE.AJ˫=uNm9l5?$ҶZqvoqԈ2#Tpkp%HGc鵨 p{P~`)%fs z9˾0aI˦#(^ s[9ΠC 6 ȆNwC:2*Px-j.^&-a3<>I'$v 'aJH-_`NG67K+'Kdű-C~o/gzo{ p؎]O4 \Q2)I:&C˂OdU2ho^{P V4P aD5ʷtL?cW *[]E`W3MVZ(aX&| $҇+Vi`6/ow:,[P{><,-}cXN12IKA~ѥ]$fu;69[Jl+(D}/43V $1x'JzE=3jrˌTv:ͼhanokU "xR_P[noq /#6e XExBDuw`\6r?z_j16qT)̾ T\ ۇ ߈ĻيBk0 ]T=4b%Rh|FE9,/}1+C5S  ˣH2^֛j_*viz̃ǩ0F|j$U8袻+WBZ_Pem:m[kd c}dcܡjGIаөR.mZl%&\@yB`7 |2Li9i%c)ģ b?.$l1An>t4W0+֔?_ءc6ԨP; YPPE~8:pዮ8:k:"{q덭ŝ|Uz4r1ns|JX$&ȴ|n5q.p=wW寜Xٽ#0Ivf3WmOS uT5)t_:![t~`4֣sp$PԽ.%Y С'$;J^(,SX5Bw2g4ɫ/4!B0:`X$0Vj-UJ(uD1| =^1*6Ni]H=W?e%\d^?aϳ.M|q6'x+S#YKG ޸{hND} Zhp9Js O=6>ycc}ӻPDoޏ@ Г"C AI&S{/ev]o}z >K`RIf|؋WMH*Sj~0[3`Dojk}M 6ﮯXFN2(na늕?(]o1T!dl'a`QtwQytǖUŹcV!oX#rC+ςXIs| ZɣW!I)`ڴv(!j2@^H(\ ;J 2Pf< 1MeԪn$loL(R>] q[>6i4`XDeo` 3w]NuD)(j?/8nמ( p[Y$4]j1۬ k 2~ETج̺E|.Alsl`CZ\cfF1k jH1*vॠ!I|)N[ARih0`9(ۉVI`ȚFq(zZ?~朸;wK< }<}IL~r32 _ƒJkς?`!lCqRqbNo{н!w(bJV=DQy~#/dEhk9㾻yXSC;e\&10}4UHgr|5*P44B`1V"@>Psqn;g.7gw+hJQ:ZO0 ',# Lt?Cx``qRkW,VpF&V/>j  /> Kx3fSwYP%V]mf%3x°\iK`W~4| }';Lށ:I @e&ghCaE .-$A8HLuY]i6_w5>#uΛy]@c`9%^o6r{R"5Ys &g.sNZ/ Ј8Z^˛Mn%bt~]pg@ԮAFf;"$V0^UK)n7UFgtߚ p)%{jj2PC~8u;|H  .+ӡ)7{+d }6eO]1kcFkmv?,v Is?UG)?c !cLzx̼w?U)LK$^sdW[tIs;yN`/jmڦ(_`'#8NtVkVaH]x)ю%Ω5U2,@GI jxz)\q]R%CkLk5*nH+8"2#s?@PwЦ#RMۀm@ Χ5V'UUئ!M %_#Kך`d]fbJV>5MS GEPyd&Ŷ6B孽) 35;HwR4"O`b3BsbZkLW(<wW8TI1˱#֌V_%3Cm+F{rI%6Ė&0r]+;<֋r/Sz[M3 $:0`AO 7+ɾLr*eڏPa.՚to; ΈMFw[\AN -AwucGw G}Ǽn9SH 3hAÜ ?} xoG1&2}%ǡl;l[(F2~aϿYpo1 ҵ%0xul fS0I7$)t#?oO\f+0Qۃ%JTd?mPPazk@v`.} MqUm6`)e%ze7j魡Aijl0fVWkpKl5 t룄~NLs|ѴT[R#RaQOq_ "N%6S6[@#R>WTz:9)ė(ɚqF-7Bm&-,X#Z8 k\z*εi ż ]i_s;1P:\ >T4( 0& a L"TR+[K%Kϴ?mڷ{UnWruڇḣSo͕ܵǓ<{l]KX}7nMYa j8Jj/uV^xukgG3gZquKMQ})W¢'9|GM̭ĝj{x֩UHw ܄Q"TS&(H2jeW_K(t<p ~.-xm8$[ Z.\~f@lk'?M &LD5Y&Wzɂڗq'VB+\\}܀4zzV`؄ݔn[$Ōz[͒p/Uk\Uq,YB {˰}qXuAChRhT%Ȟy{izѲ,[(ӏd]2ڵ61sTR؎}jB(.yM.apAwaL*Y[𓫎F6L:qpPu #55LRQ`O LZQ/_Vٸ[ctXg[ *ǡwK1sKIڬ #<Ƥ} [Y(<_1n 묐#9/3+ɧx!ɕcv|B(&zy-p*hj;PɊA0$mKD/esvt|.+G%Lebg;{Pٲ-ڭzOM]k=ݏ`N"/:Ԭ0* ́0`,$ P[_3.WA"eyƬу=~\Q=۽^_+w?,o=bt鴺azܵ@b_**/_GHlc(DF5D|E򫕛|Cƛ-M#0&"bs]P!|_L\`hd*9a~ g=+|:iM̜KWm=K+T^iDx6[ 393l#jɗ\)߫2_lW-HA vdk%۽G9 On5jqEs駑0H iS;8~f$W; i/rf Ss F Bui,KI{ l=*'Nj[ߣ(І!M*k|]RT[KQ:,g.7UC#^Z4 y/»m/Z%a]V[G~Ӻ6ֻN`'fc ?[x. ^ -)ʼn25Y)w'AvXqT 3Nq܌&Ƽ9EHF&萪Ó -&פc6%$pqJ3_cb>1ےZUx5[iɱ;Xyyм8&J,%5Lo|?֦5榃W);_eX\yERfՀRu3%7\$ ZD9 6SS?]۔P!\4M,B>P1NϩyY&Pa4WB. %B։ +}-5]zwD1)0'F.R3$Lxj~-f?oFg '}7[$^jcQj]CU._O[/U^(E@aM|݆~ޠF*k&r0xWI @vpnj˔QKV(w_|Ók:$/FWr8T(;0,(@蚪eKI/,7Lޏ߰:slKݟP.+كY7R5OnF$%ٻμ읺W*@!ڗe9kF/5"Ooib6@9g_Vق#NG} U`@g iMGt@KKiF?j[4wec*tW,,I\a8P\+jB&jmᓡOh V0(?-ro޵R. :ba4-Y:| [Ǥ8$,HtǼw48?W݀}X i] TʏpB6UtL nAuljY02pQ5ў'k@:- -Gm N]V;M/vP诽zȋ2_;X7N#k.)C9ANbINk%A48#Ā LeNWo]k-*?&4?}f=~#z 415$ͮ|-i}`PV tN5<6^WTȨ/1uVt!14{q _+fIV,N Xqc$x}Dcpi@蠫UD/-Rtz=Wû@pV9<ȃ v"iQX: 08jAI&SQɌ DL$cA]2 9dw9T,}Z=9<]7 "kL^[Bz Nkq* & ظa.evy,& !P)aǠ9 5 afJ.'vEf;앑!+U/Bff  bfx I#,w9&`U!2a  n"=Ñ!C$@N@>nG3:u+Pd0O5;d2ӏ_(NZ]&3X6sMUkFK+jxDgyy'[zՀpo|ߑWkl*uL_35޵jh74ҭWT=!>Ao ^#uC j-ARگ))dQLtmw4/2uۀWB=KIe$4hAd_YWʄ'Ej {sۮ{G|b85,}CJl ZV+! 8DT3QO1%mZ2 llrn[uu֬ }A~rYnIhFU߹K|1<@K.X9 Q<$ R#A䠌0c׏ U 8<*1mՠFT)r%tw0lRk}2zr\p1oHDsj ִZ!C2GnL K?p1)7Z.\bGB=nhzZģ Q|G髷KLN#=0wOSfY.pMhLz&Ls4 !'(  y"D,_}?]F=ciMZGq$N-˓Cz0Do eP2`'{dl3Cr<'Dp\'n3`CΡvy#{hl=ΉQ1 ;9 %/Q; _1 mR(RJSu3``'vl+;iԽ9h 'F!S/24WN$ֺ*wn Eb>ÛCpy*uZAPҫiAF(F[?|WsXK YUvrf (3?؈;;aEJޏdVg![̢O;>֚;پB; FKj plnnȹ3Vr1DpbD-?~ؠơ/ܐQ#K3JF|;u POiEb²pͽJ˥{^a\Wy )qc)NT>46\2Ш|x{0&7tY GdO|'D=`_111baYnJTQ]7%=@X=[rNGcX] `}lbP_9$Z6IOHDVոSw/jj(bO ^nV`L[{ ͟ѧN$|QN".~\6sp O`98ffUox98-܃i}D z}X[y,5Q?U#ʧ& 47I%L6Y3`{"c(A;w+^V Y{FP\2:HY &r٬UpxU:5NdOsŕm̌@-uƻWUQOcor~~InH&hWiTcvO@/p>RЅ!34] ipNbP("Rn uxЖ}*]#g{y)z'߄Nr͜BY ŋ fDsBxI|]vi6wb1&'(>O^ Z%M#Z6Uc9ON8l!:0 KeR=F3Ki9*3P , =($Fib8~^C`4T3pV^5@9|#= &wgG*8kc7E%(=kUl[.|Y;ѡ|PbKs9'}~ N-&&#ŸCl?.v{nS"o9:0!mkasZF+Hf)3× ?}VI# j >Fix !nǃr`} 8ȿŶlǾۛo ]jQ0`,fg{@/U7o|x~I+=LMfHhG.cTBϨ |_E :lP/,Ⱥ%A3scƠU3AKֲ0EBTJ%VD:5b)V|T` y@8?@K'-\ ѽrB7`6ίvn_~Π/=ܟd'|p*՟#FRws:B@{+Jlg[> cu%*Qm }ARS{!u4nHU@7-/XԵ q,:aB<#-@ c ?Rk5*oO C-BeEKu9? n/?oDSsTdP+AoĔ%.LjO5BAԶK [ >D?FJe'oD܉yWߤe/Oɿ&`B'a kxu.ϾJ5m[}=ɪIN~㯘I6lqN4`۞O;,0a,Ò`ew=!E|XZl Pz8!0F!S˸7ܾkҐffF >lf5 Ly-@$y5EY=&`;wcb zV@ʉSQcH`RjKѴ*k0 uZ&[Ņ.#UAY7R.SvAahrCB.2u3Y3&j& {c8 Oqd2?AEo bÀfSg-;~QMΪ5t~h^`8!s7 cqkA񪫞BvlR4pW1 nZ!Y{޲0Y}\!KH]00ˣC~zOBs+jȜ%޾;ʓ.KA;vJlqz>x^ \Rq7 քNГZH[!h;y/" ^E4f+`o+QPibr_sq(!:jex_JBJDeyG~ǤYV|j5$@nK&yL#Bm_1ފHk8GsƬW`NOE;@\XZIi2=z4o뷇 4}$J<%;l=U1S( zܕ A*b>Կ jG"LH }vM)I*Q:wmA!$j %{ʘNQ/ 7^C5>.(fp#ZÌ{ŏ"6Uaj{iAʻ` b{`akqGB%ww)}{܉K@ԭQ+"T~ EHvt+(;DDΩOQu"$` y._V,O1>zk"[ %PTPf f XK5Uisg>GO Spvu~c|;~"+q\8K;-)jO/F떊Lb1:KqlWSCq!du<0[>1!nn"JP# X8(\]3,Y].&Btk \[G[fwml8G -.mKCΪW-0-iNwPDzYj R6"czP̫Lir)m*^V2KF_jq%8$l5mEwѵ:O.}xPWF] OHN0䊦j^U.}xH~ LA I&SJΚ&AFtWDB%rV]?+$S\ JR()GoqڱԸi?mcf vo vqc$<ΑBu!xhOϸjb9*j775{tvvgw=o?Y J †ʻōK&7ȟzdž8eN<ȢHhvhܮy/xPK4ؑL>?)+^׿ʕ)OYT4XuEUL݇܄R*>j8-fNNH79SzƧ#U'j%8w`ṘP!&-B8#*xV,1!I񞊜)h[L_2+CGm'V:8hkVVMMP K@\@Ϳ'w'xߟOf%ۦUsN}@O/GeH6H-$j44OBa{vN`rykkG4&F37;%DžIu emΛ-w M~ Wyq%"p zϑ (:UeB̧hEKTg7iV^e3݀j\Ylcp(h#p` )xvf03cAAqu} i֐"*]>4p>X./%ZRj 5yaGuTJ׌qKboOvw͌T8;qYW jXb\~L<@R WZUTúg"l;ǹ>'#.".e!:ǯK;4):'՟3\¤iH2x"\s[l=,7N)\ЋߍfdI[R_k&ϗkgC^ .ŏ1q {<ӐgΗ} bs'jɰU% m:z4QWZآqHLoJS?V(ݑx wM KK <[H'&؆R]K0wuqQM>}dg_JZ1QELu537?m~i>gkbCLJ;^V|J.P&HNH_ DuKk0osxUd\NOO6?WS̘)BAcKfU} #ĉ&'B[xGAq6%۞ `!O,!X(q&\JFûRQP:9ZiDwnȗtOyhB 7'd `}>v.HI8c)jBثĒGR )Ua7;:C :9GzF],eJIFG'NJV-PjX7ɀo,RC2PsPr`mݥ `0 < R.;~Kl}!hQA}f.|n"JS8Xo=wd:2X7@'+*d[ʓTTq {rCS/A&~GH۽O>!5b+Gw lM횼;)>y/;2 8L\FY3)V\d)w :+?AT(")i779"Ue%|rɾܛf'zz.*Fc+ĜzJЩ7;w;gZIȿ8fPJQH@ZIY$udɭ;uPq=(ٓ%1 +r+Y]Mco,&حXF&#fwmX>:յJ/cq>ig{@w6ڍ:ԬT=ǐLH )n1Uwwu_uSiHT(5MsYfj;-5s]HZC'Ən'>כ¬z/{5q5oj1 Wf(ZU;>!YtkHdCh1W F~xCx`Tf6KB%t~`nr)j\& z.@0 `l, a@X0 PT"Ǯ,^REd?'_Spv"},?pV=&pw㻳nEg,K_y0'ckx9oS'Y` %o2kD#Xx6kFg5Guyy5AތMUQ5[ ?v"Yܶ҇˟ D"Фxw+ܙrcutǑ#.rUtTcLvPk5XRQ9BMRgM&ؘ( -%i]ȁ3ʱ56$lƓ#V`xzk ^GOT븏|i(r%4 vWi6})J40+CRa_a\Fl_yW gC] >L2򧽦> JY_j:K^G,)?5]K|(9%yEPZN_1_][ )CI5 9>N Kڿ'C2qlB r\ƞ8dd6S}`k xW$sIU FvXVR~Dz6=w "*KEeP6;<`JgʞHG>e!ښ9\`Ou#( kM5$#א4/冑F~C@ oSFLX+-#!ji0NE}6kI;^}u)*Uknb}yxiI%-5}kz cffyXl KS_C`*=0h1\̃)'B -k9ci1FpN X< ?h7D_Ӆjndy> $EJ V\oxQ  D-`l^KOA &*2bN6hP *KBƬDTN"Mbq`dqkbIgI&o_4I Ƭš _ 3y G ͢{G:IP̌T>2bޘ|FaN优c~ f!TƇ Q(: KL >U@8{>ƽN~ uVV,Hw{҈d~b2++vˆ`.(JH2p%rBkmIfJ$}16Ie6+l/t9H4wVg-M/?6H[ $Ef叇_j*gDbЖِ>{!3F NT̵$Cd7[DAdm1ߕVɯbgA>hVWp )ߢФ80}k<;'SG˕hQ="@HD0|_*H}5UGWݼNR@!Ɂѽ t88PhbO;p3.<Yb&F4C~xyB!X fЎ+LԑOELQw^BwN38><9WH50K4AJp0:vPWm\c 9:sUmr&wtg \11z Zޤ8£5ʠhxX `9^o=}|_ s^/TGx,&ANI&SeiO4AYf9FC_R1:L|3X! ֪ ޤk>.>Ԃn xTL*ҦcH8J/'4!6C/PНsx)uTSPQDV[Gʞ59'261D^|O\az& XyDK]=45/(I ߀]ADw1)KɤNXڍ_Nr.mGtid˚Y; fBz9LAO5d6Qdx30\N[Y nrV~5r.=D0xy(mg!y9GgIøe/SqGNh 5122<_1C9,;2 ]; cu憳 - ĭ0Ү;qrJiydnfLuI$F]py6HNT>CƸSouK "ՎI{qhO[|#>XldM:wg`ꊪ"]IXc7}6w2kM ZH UkFj@pJHoRz&5]nFWwiJ|כ.sEe(KW5cFzVZrGǐxnCʲtjѻ _^i߀L8mjBp +`d{ n OK4_ҠN!{v5Y}@';4{{}&-i!˜%Sn [ PhϐX۲:1(nBUD+:kv#8[tR:&W&NJvog҃·<1& ^{4A%p@˸[*fhp_&Zf܆cdDzHbD6vVU~É%l:ɃG"VO=S˗QǠهzߥh#Ȫ]xèT},}d8W vt>:, ^o[@8|;[cbaE=L+_gv}[d;COB6𴒖Uf.@u=_&1FV =J ^ Qw'X0ގkٻij^={P[؛e-cn͔qxXnl|pmCi z#r_KK97=3ƬL 3xܺP<95ڸ @uWs a "ۡch;Cr2[N_!x6P~ont畱@I4?#-}MC7QZbE'FRm $i}MLl훐MO.oƭddSȉ˞}(O`uZwnG_pռ aBf;~cOh4r rcsLDu]Кg?v]#*Z !P\' de4~Q aޣP6Óo^B;ew eA"b|Z ʩf@G{/.KZa2A_M15A=AЕSQ朩H*s 2en­DnKg_X4HĚ^pt7,Pc˒?پUu=pa#BZ)-fp@2TTkåk5.E&jj=h_v>kB镺JQgrF՞=Jށq [c^Tͤ 3m?(ҵ byoq:b<%J qC{WP#as6ز FK|FA`xu0ŲRW*_ی#BR@Ee9OR~yk^_@!BꋏO#2 B C%'`Qp kYzQvY+g#A@T0 b`P a@X("aVq$԰}=bgg^;/ U{2ӻՇ-uH-秫qj%igDz~]oI͝n4|_gR ›qU^0;"zjDExZGS$o/ J}v\19.ae<|Q2FPL?2 ABJ5|!TL^/[hr j55tD!TO1 f`qR|2`e~Pwmi .b:gA{F\>p( W'EXlwAӴIؽ*(ơ=Fq+aVWe`F$x`l΍ӍLN*M @9a7oH|:XKĤ6QTp<s~P loJp;b:s\rH.H:<]J|;g,~-g̰vK`|aLa'iV(C%X.Lkt/xg,\2$q}}e!,c{\-g,QUߣ#2Db9M G-8Yf#ුa9 (Σz݉0 Z.H-PvVZhy]RW\֢ ka[ssW cX^eXђܗw+!]RkMr[c,W?gK)0 X$*0])2$ˎ#^@>:"`a9sIƛ7; |i%CAJ485~L=F }Zn,x~)cC͐:&HF ]ң|"Gͼ}$bLY1ۺb9cΓԍ ~\@ `b0 :>R_?|ŷݔw#3]6~|T禲8chQZ[BNa:kAI&Sg4<d3'.&s9~e +f4ԌtpI3Ć$-e+5Hʞ? %H2;'CZV).NHO%ADT2dI"]i Sbjh ^jcI]Jm)I i@ai>+kpԚ)/Q :Alŕo*.%SKu}T5\٤q/Ud|iUFjsՋn#˒\~J6rtYWH]?eAH&Mq(\(=^rj5'Er؛GTͬ3BKkx飱>cCFg +Ni/)́srīR~P׶K蝞Fݦ4,a(Ӆ_|JxXLF˻xQ/O\miić2uFR ]^S"k}5hp9Fx'錴:A(?TYQVs '䶕M2eXO+v謰(s+p9WQI,.(j!Z״EF@yhʨl6yC,5㜋cRFHb+ ^˧R~/:1z`6KŁi6>Gyg~qbL[Ty$/X HKfMl|Ibd/+>B,MU+Bjbѣ(CW#!KPlP~k] J3o9d4#n2F 4d R:xͫdzlٗ$h+IBsE(:fA[ +t2TIDT^(}2[nvx~TKm~Ru|z63U HlnB?x~\WIy1bZ t\Q&5 (cQ_FёM. $=v\Z՞ ^&ruf[Lxn yWxΧ 3)qR^H0V"A׻^VC~N.ᎂޞؙ۔A~= PS,enUs]-[09V5n|ҵZc19y=R?ͭlgqw`TOWP{+NoupNl ]!cJuǴW>-`-g\ PhC6OO=Ԕr:MSxGe {p#Kgo.f,f[˫Z3m\ 79 -ys%$jez GC2+fmt*VQKwl\;7_cp%x~>$^ d,1>^txQѺ(- `$\s~  )9{+I~c>+%gYp&(4a9"$ˉB_nƞI|w61 r^henp &)8EUc6nl,ͦXwaԗkul nEMFWa 5B|f ޻'wUPgrOgl82!,g#5*u0P.ԬT8 `,( À,( ({U7:dRkU}Ǟcz}5TO,?1'~y3^|_twuRӖ8oLOO=&QWۻ1|Ӎ/W/*0 U tuq'VUyl|`B{pb*S+)˳w@ o8UB sF и1.umppjBnVd Ijf,`cTRڥYoZ EͶfM,k==΁-w! =^=FoJ5z+YpV.k;&^ W' l{ )א&Hޭ5\29Ȉ ,o>) Uŧ&VϡY;y2+G'ӠxBZd_9hak".'+r~m\XwD#{^AC*Uiȸob"N}?CgNk2cۊCs18QY7BI#8I.ltdBӭ)-·b1:͓옄4 :]..ޫQ6ͫ׮fȱ޼(/њE7 &34Q~pHizq`H'ƀ )!2OgS~JÚ Q|&Pv Xx6Hm/m >Sc~ A'dSe~L&ei xYࢹ t(DX }XutG74*] Jsq QzțG=1w.-\S_+m*~5"I5L^eѴ}Q7U߄F>'),%kr$u{=kҜ=ӯ<9bZ2aֻ2̜kbL4mr ibNfMsK}J[ o2|1Vp4,Qjׅdzv;KA=-A|0H\jLRBO0fܔy9*J ^9whK6.1zeU_6(棐m lLHbcpdTd!*Q 9*jHQ j:SO 3JlMPurlZɼo]3BeyA6_ 4ivw15U;pJ_ХnMqVrR@ ѭQ{!,jg@?kR0qDd|cuo . n5V`CB3_YQ[^GVV h<@ ߛhSx2\J$0zBtAjF%t\lr򡯗P )3mu!^QѪ>i#H+4@f$2^v)RJKUP¬Rh52ް2U; H:ĊrB4l4Zp;S~7c(K9<ے8f܆M4{13 }Ob@kLpퟃ{Oಘ qv ,lN9+jw/24/ ovbqtgS+ԭM/E ´({'o˔ %rnU;*; yFER>QM.{z '*}PeF8*;*qU%94 c_.ʭ1nq{q/&2Q=:4MzI $ ޫEQH2 `+ ,%^ֱ b?3i؊=cjGTγ_}#Gb H1O(Թp7)(n΁?'-λ'd~{@TF12+ ? ӱE>$DA(1X @!_I?*!vaKlHCQ]Ÿ(%l_$=mό|{:>P%K1!aXRUK2u\xOCqi^I0`.<.$rD,w$PFcY0X EN!hLadְJŎd秵s͇bвֲ+M귌nV㟢d$I%]M6.4yXj R_3PTRhYA'5wv{{CLbTxZr$X_ 9N>6D Zf8k>' %fE juM,8eݰ nj z͞IR]ˢ_Uh 佸jhn(?OcD6F.qo@_<0+25m Ⱦnf?/Q=Yef|?Eu)x2rG? ^m=ŤP6d~kydBڜnf&]98 t(fOIj &: VۺW3:6b@0$pD丶{r2*`_LTutF]nMq_z~izzz_w2kONwvwCF~nܺOcXM!wqy D/8?7nԞj6"}-RQmwv;w:7zkpSu]w]_Ujgעl-LjA4"=M}_e`^) iT՘84P6 `<9^yu)LQ8A>+ب_:Ocٟzn؛e tم~ lʗaȃ+C8,c9uV~7HXywgV0=R5lNq)ijs<%%Lf]I5W2_MN%j< eK%_T^+)` P$*Jv8jBYOPsbV^WF$ 401]?TYij*K`ɊSKS f3ث-)'='l^>t<[B1,]_MWhir4MAܗ=9%Gl#I,1pLd%,`+_ KF)/' z9Ԕp.O4_,$I!3SCߤ5ăĉ,~ 6=*- =˔T4Ո9KVzlRby/۲302@ƃ&W2ʼkvyj'J^xYHE#u_1CDe -LEIalQu6a;㕱V]e+Kx+r$-:adOӀ+Iq$[|LY-}mu0*_ 5G44ݳ8!I' 'ldl/Ƽ/ҊE ]>|!`Weګ8_Z\Jt˿[ #Sț:0*mVf% 5LJ MčKNmoAACZ}y*d?{Y̺ͫ$iAw}&WS([92̻zP?sq}~f':Z{0WqRIK?O]՘)Zbq};n\Xg'QYmT4;aڳc-$ѱR,$Mu!Q7Ƴc=– ۝c4,OI n!?&nY h.ђWXUß=C= iX3!~[<ٯmZBmӔ>Vᄪ@¬H<ùD!=&:ƒ>p<&Qsssȷo, FHk!.0?ɛ/ 9EAnV%p{'vzDiZ+[4z_ '-l2!-gٯS֤̙3C bJ⫷:o'>e OE߯}rYW4:˦QbzW]Cf@z}Qiqtˠ-dTsY-W1h|8kTkYTr0t,y7 cQ4A$ lF 95Tذ|Hߴ vi 7|\B{`d]єɊLJoN>i{J;᳷A.3k(6C3eM&JǶvB 7;ahR[KqzkZI?Ebs6JБ^FW2ng,فj!gfJnעHb:@Ϧ\C?{t܅Y9,xz&NGcL<}qb'̤VpҔkdw7Hp6*Rj J=1 tOX1ff6"z^DBYH`+ӲﭛYMd)xs%jTWp o8{4:e$ ~B}x#\=!rې%} w_=QpCCM"*e:/bK(Lq-EC1:ٌ'զ*4D7"uV={}r f:̹W@vuk\baM*I﹉Az3Y!bB8åei*Uk2x:ӚIhzھp7sup09kd7"Փ GؽRq9شς^nq΂d3G=WJu}NvP1@s;.3ruf*Z«ޓD"Z49~R4pwdP@'[WMijS۟,9lq G&bOZm7h^GP/ZuGQg(m<曊?]~cm3yC-^,tL9-SgޮEV-_&>ӎǀT-qRY쿄wKwIU,Pp"xG.>>c8Ư6aguPzDz'Pjq]H.<O":p\eƯ0 4>"˹W .O-'w{Y?{[Xx6Jz\SeMVƮ!Y1} ѷFܷZ8oЊ<)kYmu7(߀!2Djk9)4"rwQAf֫%Tȸٌ,3\_m L5wO>3'm<9Pعr'&=9V:y^Li+xLf"PܡN)u5[HKn3| QnXmjwO_}r'7\lu2r.\<j2u=zxFFΑ5fa̿j4j'/J}4fսZw6kki#&zuRN}q79H13-K{~Å:&Vjn֞~BYU$j]Ww6 jB#seˎ¿V^hPH=XDUŭ#X[vQ|D~뺵Xzf;083/}6rKۄu[;6SQ2I ǁo_ Zq&Yj 6mAk4/-&v)d= Ƃcs"?A  Ž<ٸXH?hF̕n"H{ZGB` pT$*o}K{!UG@{ @:hU*%YW-Aj< X|bJ%)xVcӗYjy!H.U|CId Yh/15P`3ls Cau8iO1X*yn X$l0lwxPhe n۶Za4c#bQsnRM)VȏgΣWb[o[97K݇D͡ہxn`37CE|((y핈'8,V\{%>s7ra(jq|u`yiQ[7{";cCj|+ޖvN|gQCT캡[ *OR؋;jO"->n֯H5 $(zAi0JڬAlwp3tJ?>/nAp@u:ԬPz a@Xp$0N95&{ˬU)V` Y󹑻56to&OukL}:<3 SucLj -.@_` e`G41dԥ T[ٖ{&$G<Ç~%GBʉOzG!<1* @]/18Z]m;:4S9.po5 :<<+R47$ 4Gg+4d?u[21HyJ݌CP"3EZQK"`vY{ڈ˖%K*jWR. iwuƎn;I/vrsFGZj 9{$ABcs@3vi1DGX#R<~` /HߟGЎ-1:L4ݴ`S;jBLFl#U[W%߱x,-ɛcESUskJ&&>mF︌z%p?A62Ppa:{d67{!d e/u4`XV|nؖ$;D6lڲ;|<|]$%([VX)NOqZXDQAD guie Ά!o$ Zנ\S3X1pK޹\ dюe}C.~Kkx2̖]'X"(Govm]r=,s9 HDdRՌMk̼: ,_ 0SE7\NQg /zU?bU[x ` 2'k2SG^ \Tl'=Y+K5<~/S,!0myK O`&DaT}sWC~yнHAi`v xgs0Ů50jr6<Yaz^?`VZ$K2"騖6: ;YY+4F6^v>:N;vg C66QWXJŪ8TTu~h8U15_(re?\ ŵcG<ճIj$43y !뙴|K>38:օ`@֍d=;4G\=uMՖY:9"hwr{?:~Eּ/.ډӗOYM/n?sQǶz- ?" 5`1׽ŨxpU&{j` 6 5 D'b" @ 8P aXXH !`\, B@L"yr|^s{Ys5V5vCߗ\Ǔ^w1/̛-9Ƿu#Ĩ1OũެuhI9Nt0~`(̱y]hW YҶs>{ZLf1ڨQ߿']HتU"!]B, jB񦿠%5Fxw`/n?Ks?D/k>y@< ?6jurR"UtU6IԸ%X;.4eZњZ7=3jW#4|h`2CWrG%eh|1qw.vhEPsdhD\ī\ռKB`ڨy3Rs53y7xg܀$?/[K! ϛA!8ӱK;MVRZ s%[A :DrE}b6ĺ 靽z-jO b7ߡ6 >*c.N$\Oqla 2%I"];Zk'Ζ'cz]ޫG (=j `ZQ(ۄwYd _V4F 7P??\ƽ>T]wyoN=];uGpwӭWQW~*A2TTðXp `T( B)z3qzn_=f55UI~7jB~{N/?1&M\g8XpBp=O,;qgy,~dw؊A=ճͨOK%LzcܢT%e,!nՀY6 H Gq/;'*$^pBjT4c3 &wi^MArYz~ \}UhK쪖!ΖJ5/@hl쀛qA3dWB/Mlg/pAʟ/9ޗ%)З mTD W0֋$2v%}݌b4ᮁex%oMeѡCfOU^O0-U;#{L1)|AO㻰o}c[虃qw LzPb5%l;%]f='bUá/!=?C<.O兾E;8tM`K UW b{wzMmEd#4loJB{l:>-l])F7g@k-ٞП'?8wd->|i+meۃt7_N GҧN/b8)nvw.p :wL\E ݵ]\ƕ *q[yǸ1MzYV7-\(/7CuOڞ\p&k5қ$t%@6 s Y^g#-0PcB|@$\mFKPA}kaW8iDM'K^r릪oLľ!EwUG5s*t^6 :GFTN ;N71D)InqJ@3:;41&uaVQu03JBA? _añlSX'>Cn[-h8"׃{Pk+NbjC,5~ݶ8;&}372$3 zya ݲK埦'm4NX)t%J~]3,`/(N=CSPEɒ&걏nxp7kEݔ}'H\]IiV6Rn鱖!Yϫ6 oqQ16*h]:C$۰Ei,DFn uE7Imghɱ?jzP/lW_HH>ABI;'ʭ ۙa*Oh?"LtΚߎr6nGTHW2)i&aI!#KG<|5$ 9LHa eA AX.#:L 9@v":st%kG ʷ/k-le:MsX+cbnBB;bh}7N|܈6g|PV7 2V&2ZDEցo#82΅':ڨȏiMyr`Ǧe|MC(05Нn&L.{)<,|.ig&pZZ ~:)L]z8le1hHaK劜u"ӓ)6 x}Dr`P3܆NAx*JӼlCnL(M 0śO'xuK9ahC~7j&"{0mS@.(T2$W^4*rXVo.ҹNuGjuq-}xD' njҹQq Tؒf/KjF؞R%f)U@`;>r$jp;tcVqxPynȩ`Thjr9*$9)3(1>"G)PxZwފ{ƛ 9S7y2ZoP1FZiڐOK+7sE"X)Qx_!׳#"MhvKmqD]7PM=|0^rZ*H@ ae\ ]>&R׌GGIQ;J4i9<.7?@h`MLryMqFتf'npеLO${kI!N{%Ud@~U02]tzzRn 3ɍkX_ ')$ Ywr×xSQrӏ@ѹ߱Tuv"0|0y_7/|N᪽)m˴f8ƛӗ/TgQee~|ij>j;0aHi"2(4Y9"):ɩ|S;%%5r.<.U]l8圓&(YuXpRI,} In4'>++g$DsCXEˁ$-?H/@8#FdCA;I&S4ɏ`b,cDf%MFmALgIm(vfpripR4`noLS;$CJ 矚EJ==*~p'w7U9E5k2eOhrƴ8>ai8ÕLuue3H&%M}̭dyN}T .9`;Z5{fco = s"{mڭql7M;2> !bO ړhҎ*brrT3u<9!II/e<ŋϒZ2ǷoC|b/F3|-s5u滑5z,˴evZY=o2dAcqmA4vxW8i|DGʭ>j¸jMdΦQmݿmW xFQ8UrY9ɓ>)-K_? ^ Tݢ0 ܮw<䦤UιDQ.ime[V&e<~k!㜠 ^hJM̩pƢ¡GGFOLLጩ'ʘ.|یT.j8&&p 9'kqåtc9sBLc؝uo$`N a>_  TbyZWD5mc7EpjUP[i?xF}:'7O~ek( F^;cxل,LBs KY&wp JAOON]Eq܇Ԉu Q31hg>iX,#~)Pr=\CX*)RT?0aF* n>X9U|4Fz`&CKC)59ˠ| =Z/HgBBM*)-D`E}ߔ&j#*RV^.G\qkDq!u6K}j ` EnN"-B<׋"I=ViU*/+Q!N$wQ$0c7ҹk°z0;H l9C7ubShh?=H(Mb-mаw_IU0#}X0 u$]fm⋵* -=p s0b @s*G훜6S?-DDIz_t<}#p龀uP#w$g}_7E^_%^LfpCxX}E! DELvt5DҐ JE%Y&JJSjAD|v/̍H,6T>_ 58GZ^J6;Ѽzn#ÝNzP0pV!8iPs o ITE`koA b!1/YvXMYI:82'>M_:Ν"@z#o#kۉHrQ6ȗu^۫"Q<{W0Ar!Ri CHfg; S 2(; _2`+2}.{9ZBmR׎P]m! oB`, ͤVAO?ͬۙq\yJ(⟚>-bZSUr ӦVgn>;SYy0RGg̉?uy o fIrj޴hYX۱M$J`5e<Jz쵈n3L(-Ttx:6}B\v]WJw Ю&3PY9󢲏$/_=F LqYC܊YPo nht=GUe!p }cyq4(O&ŁQ&A~T'p gsp⺬b>87fLN &Du}iR Zg y1wsuODҵZS"(o۫-B&VJM duYz}%&AQX6qnk>܁4߄X5ҾOt)B81EZzra& $ڹmfyՀϨw;Jz Q$b<2嵎xddR~iأٛ@"~|#a3F{a)!w_>tg7C:Fż8`R1Fa?#ra\S6LOX"H)^ >.hW9F9Op GC]e3gPNnfTw[f* 5h^u&j0"dRQXCWo.^_4e?X<B"{ eNtu'1le(b|8fz+0*٧EՆ<9;9ryx4t5c`v'L/IXK ̔Ǥ(ڈY"kS`ޖ}7i|['vt-=ҙR5HZQC UG~h=|yyRh`z/#@[\e[S~yNi `xKMX՞IWЮԸrr&z?p>rI.,K\#=Jbvt VXW6P{+x',;6։ \~vsG^&gBۏ$"őVpff.}B30]R@brv/k"n  Ŭ v+A"OtoVLAhE.(OHzmԉ$!Q0TY9"$ʺ%sO7%?o2bW@3IRW'vW;[qI4Avԃ?oՖYKz> ss^S spNξt޲yJ9E84RqG.J{ ^6ȫxp">OƯ˵(;!m$׊ c KR`6yR6d/B Jf(i" '-yыU1I-"’#FmEpn3qe ޽=Eb۰pi"xY?]rLufRz9)\{1I7˘k +.shNjUکY4P" ~v|] dq[E)MTzJ=~QlKQg>|} ޔ Yj2 TE*{ j6DZ4kT@P,$T˪\w.f5*%d>e@Rujmܽ]Q4۽-ٟΚ#vSR๵-{U "n .=ˑrkK]GW]]jAB~_XVvEf Ap*;`A~I&S(]2'썦+6|^W:A] f*T#[݇jyg{Oq),[b]{׭|z6ngAﳲ?l,7hJ;(zf vr0ܰJy^1hOMUJn(mA'@,}Q?.@Z_6-ҧBxI[_GzQr4RElY*bοgJI'|MoXsRѩqX /͜1.*UE*$4 :~1 7PK+ͨA_/\/!ؽq] bx;(t~|8ftrNw0C~)-!_!YE1c8+Z!hw 3ʠOlm=%\?{3pp"+AI|hmH36,ͭOpgR#%"hSI&llt|'QFs^X)_SˋIC:Q[3TΣ!9>RK-G9۠Si!w[*$QL2\seMV\zR_\ #6v[(@PV󁃬:zmtq-p"!bJ8gI8r;0L*vBҁHAa$g̥OV11JeR~Z Vټx< Jnl@{\JSLg0JY]v| ue+U*pf n\Oɖxfu\夘]IBt6TO {iOVbf\ΐ϶l5)WjE@YgUSYFOڃp!<IWNR΢iU ׏sF<8Q,gfwRx.X3(s7UF Eo+GIspUU|&% Eay'Q (3M4ˢj E.569Y Oa qXrne]fKG!$0ۅ+BT#'Y*W<Tfm(Vz #VgHpMIklh//#"/U'T3Em$遳@GL:s05赯؊n#ɦT=bga$ϿD"pCV QN||O -*+w! `VDF<`H`ƒ~d_rq4.;*.`G7u&`(>TQ^>͹uVf݉/Zuqu3<NJ_7Gfa,%-#h/|֒x<(uppm؈n*w@6MxHfss454/J!Wցb [ B>]{jpXy5>R٥-1 )LEȚֲ{Ip_'kR](*;b99e<?y6x_O0,Q'Nв&c>zq2YpqZW)ӰMq3Ro175?ꯂ;'a"̖oxEW{>/N]޵@ D_Qh!j;<rg/+ nKpW;Z~:3e]xj܆3k}?x{n(U2x%~K<q ZoMm,\㦒q^]oa~[{O~⣎k21vRْ<&bUxwTYF宋Q^TY2 SDAЅhFƙ~>se̗ь/ZAdbQ :&x[G9u泔5V[y2 ؃Űv'#hkmCvw.(s&!Rl£`\OMW4ܤH(nXRhS\+ٶ&ݛ* *Mrb|PujZҎXfb9&=%&C4.$ٵ)qԙr( c|CϯՒ$ õ}Gk.'lq5Oh{[C`AP+[bWX+ rO_O4&=3ad>AI&SZ۳i~)-y%ںjZ?*tm)h;[mG,R Jd4l8P!qqgRL$=~[ ]?Q(]xհ7 Hjznc&;9γ=)[6;ÔߌD5kH͊U#0]8l+^휾/P8zNf<UO-yj=XY:}S J׫rWVɇ _P@dufYO&:lM gzɋ\>d|*0Ŭ.#4z &u"6 DSN hKYsGFld~ϕuf }.88ی_v& Q1*Z-[vs15 OC^hyJvU(EOu7=vDP~1Smu5U?p\7KM[ʰDl@ k Nw'hw(_'"#&$URl? [4h[h6M -9yscvY͖<~,h#A)HP0$l@"O?CLB1q-:I=XUq*@莁FX\]Uw@-';@$>!9+'Jfr\, ҂O$Fb_&m&1hd8 \b$pc_ac= :ÖS HCבqI^$JyZT7('(Z!xZPjXjHX`aw#YdU9}q,uo=f(&v8#50d?1p83IɎ ;'ڋ׈rTTC] ۍ2_CGFΦ_N7 g5?ye~lXFt'\gzZ=t -gC-[ZX?1K~Bn4 Pl] "bkfqJ7b7jĄ:tzg2V/p4xϞ29{8jڥQ'qVofrӺ&nwgU! M]j' l KUnGn+ +BODW2))>叓9Dy5m=K3%'jlJR/aMV..r,sD{٦Z(PhHS5 5^ԩ'րS{ ^ &(4mQt);cL HK/cQ\ ' PL0}&Cj"Duy^Q]̡-R*`$fP_TN >1׆,0HkmR:9˦|wpQnl%46>cf DI;Ti<=LA+8bO $CuLY<יJu/p2x@bax;~ .JV'i.PJf$x*TmAӨN)#Ri_x늧T)WyeFa54J $(%cGӱJe5zNTi,֧79Z|?I7~Ÿpa\-iv5v/zpŖarSq8ӽe&bI=z#Q1*$f_2SQ-IF ̉C[^ uu Xo-hN$ jB_ƄWArI#o?A# >gn]2.sEI2-c'GW<贆 ǐUTaWDS[G3̞!͝Lr=lNwGϚ+wDz%PĔ".ED}D̏%\ 2 ,F &Ԓ3èhsBYn҆E4ܓmv7~/9}QZ R:x㩼h\H>Ө5#]n2zɎ\x̼:.( `3 O|,E9gCS5ރIe(9zd,|ݴIgxy^lT]jV(eLhe^ Ui\-nw" :b$(Y!$0Ask (ܪ`-, $ydLX!`M`O]1{ LTW$ LAFV3~9hq'qpUYp[JQ(?gm5y` y(׫]c? Bn?KmʢBM,8)$ؐˠl'Bn 0 S!K {"wj1^]c3x&^֐ά>|NE.?.obp S5w/b;6VzQhPD mR"57G{=`yx2HNHquWsuL/f{ۛlZc)#b+)$&C- 5$(nNQ>{)+(; :\oG{h$OMlE[ 6'.e%1Yؒaݼc Q-Jk0pm͡v-`]pH>41/Crj@}> /pw(xxHo<zAI&S)&6%!FH?_͛PtP)|"M/| }BK+3[8xܫgimpp][F);Z1Eֱl豋٨c~ GCҎ׊8uS#vhxn{;25Vƀ+=~ыNs_qG!}PLrQ,'wypԄ(2D|]/,3DEbb e"smuuצ\c~GPg{Qf vTyt}n ( ώbzmΐqܹ̑1`?,ű? EsJN ?K1q!؄e_-J06UB\Kfa@f5:V%*>)Wq߳Ӯ=TdafeY8ʊ#*Dݴ^x3Y5`+2+iA u $ ʥ"(#R朱ױ3')ghÇ$hċ;W?%qq8u5۞1|%2zDcv}`Ǹg}=oh[ȻY {EiWJB)v'A>rC(U)ڼqΝ0SI*O^,2S}g@vN( 6 UlX ʯIIs \ >*叅BNOƶeّ hX&r& G`V&5E"Xۍ\G&3X8CSrz)I?J&jSؤ7be<\%JפV33iW(mWKSx JO`Dk^Y&f>,쬘3ÑjPRy(i@' rEG{zHޡmW]bH7N9w-xһ m4K"SH/GznoŮ]%lⰓ2p7=Y;Ƀ&F_/|Ĥ@_}B>q{d֑JCM=߯\J @`FHusmN#Ydx-Vu Qm~JQ҃^[ƍs+W"h ﯯKo"l @yzM>lt7e6a h7vs,iV~Pmڂ vr Ąsި`ess}iMtb5]hhYu'!/0: >cCsyZ+λC^aL/|gs&ݲpOӻx!4KX0GjS7{ 2pv忰EUΆ  D-Y3{7,[ G{uPK<]qhvon'sdUV&Xԇ] ' 2NSi)bCЪ.:;xR>t:O ȰAY$thu+T-K,,P켵#|DdB[-/u^+iRJަ."J:I"G,ӕt}˔qSE W_Ņ2?`zȌuJ9RL䟣<,>k.PFd޴ E? [-a|!\W-rIAC|8M.eǀ&\d|c\%2)цղC w(z/D5nv*PčK pRIR=#cyh&rGWkC.ϕTn (O_=iU0;=r'_Ij 5CH)t^r2RV:h/s3儐D2H,u֗Ӂ߲`S&sOl7 P#U rc: ӇXOVjXQV=:SW#Э`a!CqR+14\h-yJqp#"[p0>76hޚ8Z1#ŴUW vxNs`v5rCc8i{ -^v?PW)$y!;|jBx70>h\_VKRrԪN^}i`a "pJ=hnzE >c~̮V YJOwCr.k #JRޒKSۻk $ms qDao=ZZOfJX#b?^#YC[I62:;yP PR{sj{Byʾ=C][ >H*ӭ(+4-&7p]IÝ[f7~TYJ2qd4>M#"QbZKzPB#ϕ2]ś2Ҭ4e dr!P$~> {t9$<;cv+ge]z6uX`:.Vx_4)D|ʀK(UVn ޫfsAeM5@4Dq=RQ&;v\bRzC9ѓ;LX]E$klld3'A{E-n߷=xBa tퟕ3>Hدyc B`:(X}qCԩi۾RVϠ0zr$J!,_Tpi5AJHs"Ȫb/ !{ RB`AZ{[.^Q71c"_OsiNZ^pOB 4Ӽ x NORsboω(}{c2;DclyᗊatVZnAu\=2kmCіctzn?{I͇b\sC*%YZy{m5> 60z{HNEQ:g*VWݲy&lbe`cԩY-a@;9? 29~f$CwTv_X/sh'-WFGO73(: {RS=LRmD^p\=>Bĕl:H5MtDL1 @eE,^~5ɬޤ؍9 sjy -\d]ۣԔ_sƦuhiIg1VDRށ*WPJLbeun+*Sb[dž|el =kJ6\5QZed+J)rktY3R΋cSݙ r3T_CuRb#ot*0+ډ;!p?yV &sOO)uzJȿ |>Ah׮br:B 0㳖|aY#!9-y{k?)u ll)u{}_'X] $`Ԗ#F6J5Q7(7~Xʪ;CqԼk(TOߋOD%O />N0 4F&qJ#{qtxŊD4m@ĩ.>%NiO 39f:MDi.Mw"&Ҧl5>~V}pڭlڐPeڽf7TyzeAIG>7VSJ<# .QmìM$nc꣸C͢b$5bU[c)1=o W`lwI%t!0\>IK9K=t$tE7#=YdogR{77DKhe)U _ #U7y@0:|cbND2ޯDkwƄ#.Rm#~6SV(dL;Tdt^bdd{|ZfpZYؼlʹ ڶ18*!}~d(9qeբgVzA[_toMA0Jmy aRT:XUǧbLg2?ǡppǕB{rBa@|읗GMG﫵E$Ve&rplmtfSە,۝:;~Ne97#ȜqB2 I&Oh sͮضܖ)xf,܊D7u_3sYB@gp }B=]D,#jC)SS*_ .Bc/Aɞ&6onCNާi2L0hoV6c `*`ɓV7yX KpKDπQQvƇ,KҔǶ] <P%53`*%J)PX-@GA4 ssv!/朽`S;Jd87ACs_$ ]4dD?6Q#wwb^u1!^BH>V QC$d7h4OA5 2.4Sʺ+Ug55!e޽XWN_6eG"@3+6iiM$ZN *׿zp,DqzPl_fk7]~KsEԭ^ gTw17]~(_؃t}!ѠY;ՃD"6# 1@ 208Ly̿c8J xtB-vW)S.H=`}.0M5kUp9w9 LL 1dx53u]z ^0G}p \6R4g \9iJ퍵b2t#@ mv=+u$H*z1Dz0v$@tc??/ JjTxQ?xg jE;a?sʙAkvʤ]g#5 \#}J=\.* O,?5#X`{=crtvqG^8|Ku 0\ RQ0+eBR[0jkqVX I4uJ48r#(̔4W+"µmFOQ*wk,xffxq9Ȅ wgYL7,˔U5)Ek}Sȉb:c :sop_q_!Y4a]$Kf m@N#6PF#5[I}T)7.a.m Y3 ]ޖ忮&łNWg|S; -5Q**4آ"䛶;W`/6o쓱u+ x& cp GknK>ʊEN_'>nkcbJ&DyC-;)%[m\01)1!y9UBs/-`Ѝxe\{qh"1 J9 9/^@Fa.KX{j`^ƺMt{SpKwa&q2<۽ b’-כ]u6/@D,nD-VH+-[kxEvKfB30:O~Ͱ*` e348LyݾsM WS>,/W_mlBܪGN,qQu IrOscO2ld04Vn){bBeyI1:C7G b|+DE0'Sդ:"6Q0 *!=R ?@m t<==w^`;ZB`~@^l.0xsAI&S<^5Eb0s!oQ;ZvO!Dt.Ҿ+f`T֠ F5űX!I?kj6j(;ޜ>r7 sdUjţ(/JQ/$g5tWbaoRb`ax! \, w6N8n9F75eUw):iq=b%FQuumo}RX=%TZʖ׃~+ I1bYҿ^}zPЛk7n0b3Y) cZ8r"5\jja$xT{V}4Q෕h>e泡o,w^?J.$l8 ہo'&BfV\þ`P` x֞-c>J .>?'Aăq{l:3MLe!a#:V9cˍl"Uxu|{?Bٝ3m:o8cK yZnJ"6 vzmLɠEޚ@?dCSXC=iGIpw2wڵU 9JVm{_F/:>#|"<./: S>/"Wڠ0UP#=xU` |osGms:E O?`>3Dk, ;ٹ-DbjI DbOhp+ӥ:o%EMtn :LQOیaF3?}tL@> UZ^Q 1M 3r',1ͺDttrwOXMHIz_*`fQ2,usݍ ݴ ̵Qhn/KF`nc/"45&" ϱ iZ5Au粘{lCj5kgaÌ\Cft5ϒaxuD @_}?:'Fv8dq*Sǝ.N9Nh(HT)00׎^o5%c4rX ~o% bp&u<;uZq:A3V;'ɯVraqJљ^9S>çOYZ1t GtwRɼ,MJ,+x'wq~ vF@fa^)>MӨn|Ev#HFkE1W)yWhhޓ4lǃ9W%K!ߏ9ͮad}!1孶GDk暯 c8*/>ndG u|Gӥ%5Ou7F:Ǻi~AHbwWҳj Ϥ'z)~>-`ΙSHSio]T_IӜ5yXiޯaѨ%'GND-i~AzBEXy wæ!J\ތxشHL"eDL B2hV?9 Оa%4(ljqzBNm}xH_~j=# S޲ڧQ.f/[7\O$,ɢ\6]8|v$^5taQ@Irg'!!-"!+N&.ʞq(}m5WڨM0\_O`z"$Xzٳ`?7z0{H)fp6(lTu_Xhn^2lL{zmxۖP!~P9}tnGxy- qHѸ砘 (*u2$xz!bU )=gOἶ‹A-Ĭ. r EYYSX<u2O:D\3jE4"K*sJm ;;E'+;3},.${4쪑jEׇ͟ Gsfȏ~/>>ƮH!4F%hFvpܹ!uMCQpD<ڮ+'fe-q+c{Q@R)D.*a3Jφ+d"E4;X3hKZtpŞP!SDpC~&)28jlJI? Luھ3l dv9wHBHEy QU*fB`-+Q-Z)zeJE9O{ W]iyݹvUcW+W~yM{0_uW4(lU jиi阏a֠opk]~'8jP_plfU?`o!^hw1q Zit ,P>'ɟ1&rE)tTibC`dqh8X\~$rL?r3f=d͝Su{gihX7^>J@2GlIHN_˙'x|c)[|.m;T\je@lm8蓯q#&ѯ@~ cR9=d"2˗m~y@jKW$7v!D*AEYH0nŸo<^t'zb^rxZπJ\\iAUK%`s_oGù}(NgV(L/iLkN}H 7*g?hu"+S3z1HVع1&sxz+_ryWx|058pz0 P5]{a z(L`rȓ.MWıZ#|MIL}]𡤿ˮF66`&!}1LJ} 9|h`."MAbHu޴b̷_Alf%FȂD cJI ׸?H/_ꦲ_'H~`SEsiڋN+pKdn{]]cfƴch/r\E1ch~2#Xp*'jEKz7|C6E%$G_ q_x>%zΑrnjdP$dr)p$#Tbd%yfE+Q@ƌ 3Em锞J`E|KdSl^]l9+;62!9]EķlUc(ϝĮE0 X$4aQnŬ&ܗ` m +ilkOg )إ2&ƒTh9+Χ+C@0T>G/8l&D[ӫ#"U(;Wgs41Cf(ELe疈ƚӬWr AZCC<~;ts=}>qL/d )wϦdZ:fajkp(L^X& 8lr~(~m!ЮbMuNyEPtzM1Oid3eu Uv/vCV/zxūhwXQ|bSjb{nj)Zei.14_:Y-2Tw Y&\AӨ |n괣(hw5-l7GBWۖ'? h]g[5]qW u}옽Eib@ |.y0A*I&S<\pV=I/ KV :7.w0C 2(Kԩ^|uyW$#̼7E.m )OW)ptMSl>feb79 UN!7J?\`{/ ;Q˭q dCbfYxߛ4jKkA\ii4!V͗1jqv^l(FQD*U}4U6kpVOmߗN!'|9^[Y80]!YsN-Yx"ig:E T-8r`ⴉ>q#UۜHR0io{a+1:>CNM#&WHHj]~v TTH;IO,-Pn#VŃ'2ø{Avg©z=pbleda ^PFRWp1 -d(]LLBP?fVCU2Vh7S#.$[N\r0fI=s득*陙?\jys5(,gl{ToznPtmes76sB+1@s_M(ef9p="Q̅wfVME t3%ݳ "?fKEnwOB^e~ S4 Y7-O!jm\U8†"^7|#YPǜlljC^@_0![7ga=EUobrщڪSo30GӜ͒4U5# AA'ԏeg ևdrU9 O*kuqi s_ TMNd X3fkAk 9ߔ"ڀVΟ-lVJs8u /Y$ji5*S*G:[# fi+)+x2xӘ[dleh-ʾExnOMV^QQwJe31N1&"Ã;d* qVR;Z_5hK5H1 轟|r(\ \^=UF$w_Ɇtl~'e /!Mϝ4VH%$yy~M,@~Ν[d6L㦏xl*edtns%} hX.Fwyg~%j7&fcd W^-[2 :eV*$Y+p1AQFWf颌v O*>BsO9혲\zY-E7qqXM5֋##BÛB Àc~.R1tvZyY/q "G1h/܎od ᘝ|SIɞv9Ki@e-uRk S VoၗNF:\MnRFSGp~E 4xlh0:Jjk)غ{(ORkt c5.w Y%3=P.LnUػ "dzyj,|][J\FQ}ޚ?RnAR >tO#VPzbTX5;l(Q``C ⬎Qb<ۺ _2/% Rnݜ\.U4T`R-sYv݅ۑ;Oh@5,Nc53!~_mgx?=[ܵIawMu(<]V*L241ORmDtM Ӓa׍ LH3ȴS(ϲ i^j^fgʪ@\Ir~ _v/0q=@_vhܛ#kE ?nĭ7 rm QRIjEB! 6k<mݤ fj|DOo!eoM,RWفS:I@aa]}\O2cJ}7‘Cswe_B "8eLNͿ=AkPC@d*kmJSB@If&<&0'j%W]AՕp1 ؓߣ[;AHє{P<䴩J0]uZl吁T7< d:nY(%fpxpWVAT8=MEV%'Š%9M v{ݾ7QRg(YzlşMDԠT CB`h0& `X( AS xɥʦM\_t~g9|4t@觩߂56} 0}Н0O]z_09j֏PaZ s 6|~ۂ(DmlxϖF|ݑ}rƛZxzRʕ,|oG@YNbH" DT0& 0 X* B1  |xWˌTI_gΞQu@yHc6}n0uTzcԍ`=y\8S,rK_Si?7q4eBr:]o/aavMφz> !UBT/M*TL `ALI&Sr*$,< cԁ [Ps5QI$}e:[$R..G+,Qj8j!sk~@Ux]fy *"PAXWy!VQtqTCj X>RX2-79\J,z pK6j?vٍ  HNNb"i-Rw꺨6WSf`o(N-Du&/1ׁ05lqX`hPZ ^ްաoZ,l2վu@rA3@bO#7 ;WPͳs%=mFbW?0]+.dKMnz`"j= #6W74IK^єO\+ 0-I6B>k3`C\ {*m: #OMt/տkBxqI.n<ߤe[MS&{=Y5ҭ߽[zXoveT.lGlVWybN-456?. 8ɩ N7jϒfT?&Sm.=,m$\Tމ 2 Ʃ-wZ*忶"&̞l_wO>P!G?.QS9$NS 1IxcbNÂT"a:0kjGbTK}=_p)y n5XpU҈ (II v"2WEӮ*\m&ۏaGa^~[7p<0J31Ezwd6IJʍ^RZqaP~ IE;",C TL:b%rݑZu_Ioش 1& +j3&*XŒaTWbW^DMyk?@?".I7ËHc@k\w&/.pyG9J.6 ;sQl;}!Z p"{jő j аNOZT/5_RUy5/-0LF!{W @1;{?!6 ^^39O.&+hAv[rm`͇GF;mQ0^{~C,=~\);]kP@<ˎgvږ_ezEAݎԪ6tږ_j} Lꞗ3JW Sd(L@F8`mDՀBҸӆлD˖AaS WOG|+39ZiIP[k;{׾iK7[;<*O 44,?k{ȁ% $Ǟe4qwjPFYÞdO㞑ϗkko55WdN8ymJiY@itYv1aދӱece=ZaomhtI`9u_ y1[ J@֔OP,24/⼞ B ,g5EJҴz(yp[DGAmI&S+l~= =:6B^{?d,mѼ&B5)ke-ϊox};X]ۇv#n-9D2dq؟ zŽ_ҲA-#‚Qي[z&wo+Or=D(Nr`JS2-jG/L=8ǤZO:ؗh(kAF s`IC =Kt0P)quȯi#lY)ʘ6Pr f#YuԿdq~ā=6║ s*P/QpkJ[F^ž@ܪTU|h5F/ 97ɬ7%:=*07PbrHȷ!sq^F ˧$?/?W`/e).]łw{٩1"I0}2 _d0K8JȞnrFq[8+ m)FDjaVI# h)ABSzZiCuC|ϸ1eVZ 9Ҹ$2 jS9>R8&WD VAFܩZŀ O9k9TขFf]Y]zOF!ӾAX3Jiz2p7ir010-L*ps]\&dD,;:> ^Z(Fol aJIJ5ϵc7d!픦.52}H3b=Db >vYXXlٳ{۽[UzRoĹCHƨVoA[761G۷JbHo{R .å7Xz/4p:`%x<(X-45=}Wy5vLAҒ,-M׬$J_I#uք;s"8+'2Rn2/n4pPZk5c0,dj \VotJpx/^*g!A™mj04~ec']44M ζڔA[E"?`l< 砂MĿ`= s=y&j>ev- XL2݅ p+F=XYgOxUp8.ő022^++e|2#{Z*ڻըۛKcܖ^1oN~&xhT4\r.M_(|Al힠`W:񪮈tC(,_1/`H=L`Xڰ-'ecAW.\/ 4 ޣ*b6gjؽC!F<1(Poou(QϳS/#/0Eh&,{4#Z'fIR7QDE%şeǎ׿sg%9#yMk BGiD}no?fV_l`hNLcA]/ԣf鲣<mmHD.*Cݧex6g3H@eSLQjХGϋrd66D.-~ %-V·hB.ܷrxafCF`}‹ l״N*4(4a1R-s-9cվ\dڛ/ֵ&oV"g1hoSJ0ݩ5ؼ}=ۆJ1fDMTem <䪨R1 Ut'zMF"K-PtPTRIT 3Szf=9OC_;?x?25:VzF8Km1&p AKC|1<Ǔuɾ9ėgj&3ayWN5#D#f9_"Zxp^'C,: 87)X:v2h[ !$(e ¿ "p2asb׷0pd5D;lb ,G9lOؾd9#bcMƘ(;3xGGs~$jm [3`+Cqsl>:}])qݹ&PҠ̸HʞS/#dSYro>{!\ڗegg3\JX/5"ӋulzEތclzQW|=c S-Aĕf6GLh16;NJo[u5KRmEW-5aK h.oM~_~X_XV1p]؀#%; uwor`.JQ}Fj d\9'$V [TCcŖea?HIt `@̩o"3Kߩ$I6| 'GF4|__ dlQ$!ċ`D#rČ\?LȄdhZ\y{9a-4d]tFym&NP#ߩygx[72A{ɪLSE͞ К!@)i=[h|AeePDz)R#>7[Z6۪62"+nn]Ee/w(Bm(J!C'ϡdK0|j36EpznSٵg$~xe&ّ8'|:`|x.C QPƮ$.; 1^*᭦t(08sbxnWL]s䴛ooƐ>ԏ91N^E.Mھx5=87!i8WKM%YM!D hEmzU  Q5ȞXtfKPϞE&tGӼhЏ;/ބ3cX(k}zX Z`@\nQ( )[@q9X y)DAcaqIʶK>sng!(N6> t}p.̭ħ##ƿ1p ,|Q-B;qp%]~%e3)HMioT _ÞWjT77P0>&of#cp_Rtj\--_DQqvWHzO_ -|o+1#I\mc<`y.y u(Ez+ u5QN9h+p8΀!R'dυg<Aҿg̵&joR]  S0vrX ?꒲]#zzf\^%"Zx%MQHsE~ۆ܊!gȨ%w+[q~Qþ|g%#i*pش@@P*U0y vtSUB6]Rtk8n׎I}0gLM6`+"lڜ< 1k I>zA0S̀ۈЕxĬy?l*puNQ]ΰX‚pRb^~8?A[mcXrA8YTg6}iJeDS}AXs\4^ s^YX[>EyৡϸO"u56Γ;yM|Vu:R*KxP>cH?'1e!(szxp7I4vJ/}%Rl`e动D<Qp&O8k_IJ8_/ tĘr8 .3^ nLs]!r}2=cC U_ h} 5lK+ F3kk7{bFe9GwxDZ;ɱYscteDx7I z207|u71s@Jwd-uhLd|HLomCm8x͘5=oJ=mM Ƥcvۑs2OL0El6QS¤^Gf4\Z)Ud06fc$`cڅs૶JjM7*aY7 ++n?7svTxVtnB4(4a1R-{kԖ0c^R}/輹i?]YIƣO\Rp+~kpwt G(vC mđnp㬁oډs @UnHHoLEb0Jrɔ(@8p8.wf( 8M6TfR!A土G|~jjP/TH4P\K.nXKθlsgC *7(GcLӳ"܇Nk.G,]MkoO]l&'A"7ن a^,H+ r>ϼH0z]D4O\ ֚k*VFvW>3@jB6e+ RNf8\/YxxހH+iJU=ޭXiZ ! šrINثyY`c͖YUA]>R3S!39=|(n6ŐB(|{%a|Fn@‘$k8Jb/7RʲC%-\u3;qՇȄJrѹ&uZ~P#|m;ϔ&+]`sU _A/T:HD<:3ؖt7y ZtvOb^Jl^_PAid0B`h5T#_g>/W\|Q~TaiPjsh,I^&@hPA0~5%  &02qu+_CU;@d؅%—jwAe\C 9K C=-['uۺMO :BdĨȐ`sqB3T3Ԑ.L.H<;4]z]bE ^z~coNXgh-,ngKImdyܸ*}p90b8 AKC5! BDOhИӔ3ߔ]_>3ʌkȹ&#.k3@I 'eSiC,V @aGs ЋX6mgp`ƜܱdRiF^l^ŸO-"I": 7%s&M0XDT"k?-t4ڼq1?!M'jgR&KoV1`H߅6UVFls0-6=5oFۈ ,U?27%:5|Hugk?eV}eNU]&PܻϿogE] W|4Fz$tH ?js(J䢀@AKRH~Z%]UqZܳ.wY{[6 $,_[3c rE`+1:)x#W 81;*nז2rh8rj2A9Yq_yK ZRgۤ_26P7_o+2KHx$5R} Wxtw록"gƧf,OR{S/1ĺr '70p!Hnã܏Dy4- .rեV3O .o̩#?<-SIC{FV;ĕ2DMc9v!\tJ,@̘z;ił]O8a GC~=Mμx5Ctlz1~'WUaMWO/r]ݚD@ .k̦,+ѷrZ*['/ JnΫG]U\e ^W XՆ2`Ïx%{C?ylv9;CEJ0ހjOu0s`Á?Ϝ'T`e S%4H4Y}Xt @ᛩMDtJll[Wz5/ ƇFP ȁt^\~hU($1,Lxq|6 O̱HQXOE,Mx? rN"OkǍ{|Je#jM%!LxnWN|'&#$ԫLI+N bD5l5Z@.S6AӸBo`{E~&"f*E5wI/b<;"\Y8'% j}Wo`x59lXɁ7ǗǵӘj RWa|<ygq֐TsR|SH1(ƕì'Ȉ*@u/3!{"K+y,Ïby|{Y=Uw%31˦0UytטDj=gjB_)DM+PO6[zS[PQcpCn[W Ы^J#4a٩4K^tjVdSodH{%khG hs=lAg-2̟WՠYD0840~,6Pwh0 1'=3}PCVSUZq']es7 )2B;՘#ZPˑ!uMYjyg,X]zvBpq{p6"8'D= $5ӏ23b8ҧu8pj0+ْx20]٩uBݮCHy+舴}Zk-q{D oߝcIiQT+:(p6 b!S%9Zn_vl*?GG__;zKm'6ᚊ9a~'Jt@C!2a~ F4$V1vEe'-`72wQW85(X\J"B4 @Q Tζ].db_fJ9Dxi|qf7n_G [ ۸uvi%y8vInTK`??Ad":RQv?b=ﯙrc7jc9 6m.i9օu#<,U 32Lp;̣L[ɋϼ>0t頄jWEq rE$8WҎP?3zL߈8]<GIWNg0k3C#Fy.h!lY{,ҿ-C+ɁT:و2F"rFȦvEY70@Z0$QitdAtrm@c˔"zޯ+WS 'm՗w[̻vOϋj\:p$|cU/ZBnk__=!1-r>RF)Gi]9%0 \b#N^3_!nό7&)Si!#쓶e8( '\/+5gq4qIaKVN Z$~zEV'ƴd(?هH&.S$S"# ,ݥp65@^)c$U 7\ɝèedIU"[ и {db xQb/q}u$e9 ϓʡ/6̯!6G)_hV-P>(ӬM3{hE1cˀRaƄAU/Z3⦶Z@L#5&5qXbb^cZn}դ2YLc }"dI8'eV2?ұDSH&``]gaѩ[~j`@w G%.KSͧK@T66B\ZP,iaJifi ģ/`qo]#l}X#kuv  T"xd1ē:vMfB0's﹣M@- r=65 -6uD#Ug W2~QqpǕҸXWSkFRZgbi"Ğkucjl0.5WB-3?s"h`ުHS\att'uX(J8+u=Yy.]Gǻ=D v|7|>WTWኲPFdTp ܮзGIȒn/u(3P 1 )[]*wZy `AcEe/EWO5MN)YcJYהBe^^UKIHjѺY9 -[UM ţ#Bw'1p؈1>ކ C9u7N#9$4CxqGtAk-4=xZy)$wIޤ6 ')Y0pC~_Hk۲dıK2zi4Y$,uK[:]Gd"›8*W1pcP,_;A0]&f)5 4q/ØC +j<}@,+{Ii"0z8WP0zeꡭ$J S 4v% 2!1qzY0]$[Tmh\x_j1DyK_lw,EYp {)H=.~uP2vZ/@k2.Rϖ`PEz*NVJ%& <@}~*' {\5-T&6=PUuyb;.9|a~dbqF6kH؈ݶ3`T' QQ)X7vv/$]gncؒ #@PXws^fvƒWnZEM¹Ej>2k˴7""ٱY9s&&A~8TmYb\Z$[6VH*<ىhy' fo'7%#b̽LsCB K pr?>ϹHnpKBȲ' ܍z!r9+fAVaBW.rAԕ`*r< - >St"/JCZ/>mGklgQ.r<+Zڱ@Yݘ_'v"&OkD&~'2BEќ׷qiGL$~-|9%PL K2a)3m#\M6{.3U%u~?24#1QjS|\jW2{{Y}mγ6?սmgpȎn_ו|y>;}{~q\?#a9NɥsvgLΣQtb &CEF R%99 τDvՈCϒD Dy|=t۾_l.B$. m=*a[+%Σ8jv<A|Z;L99T4y_'qϿUmRIУrد%-J+_ΉR?oD z_{FKN6ҊOyh|g s^V%Nd4quAEAſ'&|AQ÷^f3e/ HJbI){BgJ\+Ǭtѻ)KsdM?q<[| A˙X.E',i'%κ;;3F` $;I[>}ƤvѺly!뼬 F*-rІ#Ӟ~+vg_֧o1-g%yƋ,ŜaT5s3 4h ,]mϼ^457)uMcKPMWa3 B 9+1&rGl_T)ۇg?$k6 6/UpҎEG8zrޖMdƱ3_m}4Mmi@զĺ_@G]QYQInWa(i0|oQ4jץ:-_X H(ȘQ`i/"%$4 cO9X#~h(3V$~. j 4ڏS;El=U[:A,LdNfHӧui5;mlC!/Ւ<aB>3.Ϯ;Fo1,|<{tT(\oc6Yʲ-ٞX i/گnVOۃ ƤP"Xm-1{#հwnUخ+GKSCDVѿ߅/>P9ֹ|kz+G;\Bg1@݈bX vI~5'iI[< /E-~! PI`sцI{DV51;NScHJct#6qaAZ*\B $2+>S`G{{=.#8m";opUr'R|C*dN~U5OnA@8ָN[I[wDI9 )6(mG_lCjZ'eAF<9vPlю9YW{p8ՁXʏ0-5]|38/*]^ pYИs0UD4aiňH5}l(7 `bRӍWݕ}I Ǥ}6eyNurǞ]w}-1VZ| 7T2lh5;z%sZC AKCsA("A@Q".N|K!#{EFNbàe: Fq$c|>xD2 / =afwnBX*p-*p\.BaF. ;q.h3 "5;%J AH)`fje-Dķ(Ԏ?^׬ֹ/[6t!>+g?Ω:d" :yB1=K}܅6Km.p>E%#5W`e%7 wX³zuXdVVSNl=B,i ]^3g!T?yW13qNzKx[4ᒕݽhajnؽ]2 v@7l6( Γ f2\sb,fW\_bƱZtuTGQ?'M=UO)Q`!n/w6O\tݾ O?oW0_S/y|)o8BT+J#䟥z 8ÐO#Jܺ}V❶  X=eQsx$0Cϐ>6 њ_6[`ق.%KH$,ݏmzqI+)kd;q2oʯ69GoC*TqҿC+RT:03;^Atɐ-]y 7?%2)I ZYHͿ$lCR72P :1Xvx=W#jjN.]< ~՗"VEF*n$`VmqN@ME.H)E̼Qw~P{O+q2rt Kq5@ -dm"#tտ\5o6p$@8y?d`#R=ȻGdmQlU:Z?`Sh B ˪wܬR Y6徬GJb '_rc?+p:u:ԓ3]#F*ܒN:̘~|& :]|i  Uuyt#R9DdUYDu5P‹c:ԡK9d@O}wwkxԚkԻ^ $>wd=A )KrYICNP&Uv$f8wtV}ܜnV.r3WiԦjwLYy'`:nTey\#֗,x},W2 YFΓy ͡puC@-fE ڠZH \P24e`yjX耘 HyC,, U=PZ6gVxq駾ozgfVK>I?{#s^$IE"&0Mq[ISưB p첓v”,pM971l G N@&:(DlC;vWbs]xҊAw@qF1HpKO+~V%a+ϙ,ņRb}O47~h%]UT} h+s Ok=n)+8Gx9܏}srt %6'dc.jYf$U<^9j3b:Z:knaCB5(F~x{sHr/@B"~B /l7R!@ё#PsA#LOhҕ }"fVcK=j\fq`y#:\p,wyJv }$+0WY U}ɔhh&^) B}SQjreD/6>tGx+$~AȨCk,_ iZ p$bLx.>̦º,RP`G!w(E<#@",ѰxUuO*?$e?6'գOӆ)ٍAkL8`jK:[/n[]-5i+Fi{peGW΃Am}S{|1(1uebE$iV%h[.l BXA YZD,<P`X20 ׎7l[.jkTLp l~Eϻ8gt-8]+H>->V#p{H2ڼmP7L xj!譟H"?:r3TDVULdz 4\,# ly$]\5G*@aj!$*nLswжm34 Q4@#5)55jB_EC# *Jdmi>PDe ; zx7N8GJJݸcPӈoF q2ywBbRpYg{āt)yܫ(R?:tZcLi3lG#%o`9Lldff~x/Roר!7R-S-i daZCs0JZMM Gidi$<\E@/喲ղ< pVZ[+S+;`ܧc'$(Ǵ3tc5㰊j~1xI}<)6GU~.d]?BF Xp8~A47iFF0* Ġ, A0ngTuJj2&M_TW[?SWcz)/:PG%^˗T]] _m_:CkZU֑OZYʺQw5y 'X'RܕJq7\GN1C+ 0ayk=wYS%N)fYˊNaKtC X&Nwn)GZ"WFv5k!k.{1Ī%Gx#=Zf5D݊QN+ڑRc]#w5<[ [ύR&eq}h,bbb,Cp4uitn`)Aotו}%n[s^; _3b/Z5q$廫V A4f箝&#D_N3c$i(dz@Dnx%(TМz]GW+ c*"^1nW j6%8AgQ\J dyd_5Y'ہ.}tdW=fۂHXWFc^ʗ&'ค .W85ȼrR7-&Uk*Eu3#H"K({n%WQt  ;2v1'"*&M92\foߜKV^**Wޭ!Ǔ*ox%xE8t.,+V!z;>ր-e2[|RZ0AH;z#6zKpN/V@Mk_QS go]_ n9VU^iw5AdyØ/]Ϧ^ ]mOwBȌgVSB٭gNGbq)aGS!6Tt #UZ2m͡6czaQn> br@+9hx1ʎNo*'o[+b@4~Q%[Of>DY>`3MPgltY؄Lk&M3ev$V$f½S`v$@X9eFt[gifkr##c:WJvCA Y@H$O`9= C. =Ǘ/WƲS$C#O3 |T`Sǎ @T ٞM; N"¿ccx;!BϱSw_G *3 #ƛK[w/NpzrEq*ßyyp.f8]~g“4pU!}u.Ύ QY ?}P fDk^̂E#@eRjY*d :guO;saXhM?8 HbWjB_mĽ P=#U!%x:1=M2Nƀ?8uHLF"^"k׆mP*vֺ޶z9^rD6X_l31y/)L1-b $JX,:Z" x8R2eJM>2q\M3,>;C=ɄlPvl|?WR,Ԫ>95 J2T`RdRM' -^}/u{W.1+?1L{?aoOdZ]U9z;?jCx֍2dbvSЋ:J*2. SlRz"5Z#>an0o}0 ÅB:\.1e8N!ʳHgC0VjGQˀ|{wHN8v{tD Qp)A[KC!OU=ф;>M HwhQ| COa)~2B~3luW="JmsɄFMYsqb9ɭXTƸ) [{RNwԚlhRMgmNݸ?8t951)NL:*'%w~PĶT, ׌әeF4p fuwlΔMiӺ>)tv;hgTY-UQƌ O%Xm7 1a4עv[2]~pq#ʅz57|FW^0]PZ9}ɘ(*yj0~Gu!׬Edz{|gKǿo_QJ sE-!.;h3C@bSYWxwTK]q%ܙG'ʎ(Z^ `Wd).As;2j{W>;'xGV㲛gSQT{VZrZ#cN;}hR=ߥ&Iه~FC[|@[̫U D4K ut|ՅzasqLsa^70 H'ό 19)_-+«bXݗ6dEv!zaKGTu dqa;bi&h*=`@"thڐ,M\TD٪ǫ(U" mm1n=74ۉgtYr/=FZcow7&M{o]Qzu,$Y*7dx4fm5Kn^s %f"T̵_ČEc#AC#V;;"DTfJ"wo+רEDoWfjGIevo gWMC-PS$j>^'}f=e1 `Rqzzssd_' #o` zik c*m$Ysn#2m /+(XV{R<JvE?3 x0 kZjg_~?Hgdpm3_eH^Am7i#C1)`>@HrI=7-qtGط2L@uf>^R[,F `;(82-_~nh?{4_c2\t+b# \@`M _@> @8pP@MAzBTLLAe _^$,V| PsMr1!*BYo\l c]ZG^WW"KE9(uˌ=+sR%[tͫQT:ϭ9 iiTw qsӐq[49YsLzfσlɽ"6A)Ԟ9br8~՗ >rD2jL(ViL60k~!~pJ[r"4`u>TZ+z;k(iR݄Z+oT=%lYz62oMc^@ud)1W ֭_2BYQ t̴)b MglXp"ppE*6E5k PD}lfUUI9NyJ5L=Zkߋ'  +]hXiwۼ2!ijM;ǍDnW.u@co/ͽvs.5ޡFBBީ&f g.U!shPNo :ƀ`;Uz?C\R&J1`B&n"R׸\5f~U6N*Zͷ߫}I EsH}FyIsa]@˷CE/i9be_N,v!ZM~ǯzktjC[CD49@%<$̾-ٔ=Ԯ%Ǐ VQ0i|*^j$Q-uVG@UuVb |M#|wg:IתqһCQ$`ЃuwA{vhU\D Hs3(a-G` ŠI1Q$9_;EǻV2mD `oi]dqJs<\̒:#f?gqJ"-~ m˦cpz)ʔ VpgBrJ8"O͆ǔCE@j>aC  x}ogua!3Ӆo]PbMƁycl 4!4= @D&AIAhLDWg! R;\76ߨ?y6Go\C%N9/tKFbk`P%5?[F]B@~ǧd *$!{9qV_h`R(}pF$Wʨ=QiϹ{DX4,3 c@ \ #lX`hʘQڋ-5w'<9 T}U7vc PN+fBD0JΤQ*]%a7먔gg (b!660!lQIӘTCVcwG k͌CAF/ V<>#n 8b(C B?t$֣DKpkˋQw.ORRN~f9]ۙ舵d# ы}iU|=|7x ׃y*vߎsqGm_ćSd\8hPUR2ln +duaגvҰ3PYdoSBKwFAl(ݡuIF st@?ȅmfvq([*l\VBsV N9 Y~`l((L]kCio^jQ25U^JWzcOb/U {x]/LkM'ֳuVV)Gl$Bwi z'ǽ]/#&fd ^2vm텣vxuwj{@A dD$=^ u K>uhw%L_B8z4&4Rr=%'5Be7H"D8BtCì9 kLXw &{ņ:(0 `T , 'L7y,k_ЁxҒWdz~  €udTU'V[>QYٵ \0/`$OW*|./&ңlW4wi!.Z4K;ߵZuk: 銛fj;Kvi#}tIM:*t 89V B 3hTD@r8zjBAUK _e&*NizSA{-uW&ZCˏ#7X6SzT-HpަpʫP qCS|RaלHve -׻.h6tS^}v1ԏRU ^h6LfS;gnfIȎ"S~D0(*Pdj#r| ~zS6鍺ڮ?l>fs'B S]茽O{ฅ/v&}k.N|6<ǀ:Z :׼1lw:ʌxo#R\h7f3mm ]8e |NFl73xM83(?Qމ @Edw4VAKB 7<|8ǽ/ 6tk1Ý ̭M븚9qv;w_U>e(@ar4^ K]3IV$;[S `dalEXjH2jׂ<\ݲE*ϏG?^NI%[ ]X؄0^?I"v`]$νvQ M{icd`̓G767hYg7ڿ F0`@1 C6l&@`v\mzٺZk ˧Ff#gA+Mb|dYP "XUҢtaԷJ|%4^o=FNf{~S{e^4Y?( ϔW+d &FS>50?c,6pjWuŠ'<[Nǰ"* Tm@%FQm@2Jn B,,@,$ 0g zW 1U*K\7,2WCtVOOST/gvӵ+Vx.;=Ύ"Ci >VUvHI/o迩)0b,V3)9H64:{x4u.^RB0&4 cX( E5^/-T&\oJ Td=jMq(Ǒꮟv 캺GM[t.Ύ0xks0juۑXG5~k?{gt#ٌrGx!/{ Ѥ/J nf3:O@harTABy-!sn\'tNq]z,&yDDHߩ< 6̝b]Fm=WcB)Va)rkE<$21 mQŠ]n ϋt$e6>1"q}ulQW{$x>ZG!O#J J䲗DCK3C>hojn3ߢ0 IsR >v@.vٷ9 <6Ϣ!POh3ƎX'W?\㈛ggHe(:#s$!.󷚙C;$x< 4fMiF@@T0ᠱ, A)uYԼToޥCB3<.ëǷǿNZph>f~ah{&}7?)^[nh׍v Cmgn΃x92ܜ@HxAo=PS?𾚻~3ؘP-|!R9JLb (4b9$[,7~4Xn4H F1WYLb9Q-8X\Jxut2 # BgG4$DqZÓNF(~{ۨNq3H.n0*-

    K-LD 8Bo/A%EL+r3 gp)5e/z >r Hrm\A./a5Ze^#86e['_o:}GҼ&]лI[BW $Mv;[?|˳kyȗxTdВbG/LQ&0$D͆~s@ut gދGF7FH= 0w7ME@ؙn6W^TSy8B2݊&&I%{n}QbWNm\t/O1gm?b3OMo 'fwE!`yaH!jZ(ZhsgJ œ?U;gjW6COm\ծwOMv#x "Ź(Xٻ-{mJ ?lO \pz;-8êZDE'yycX>ޞXMl|12b`nOQIOZU*Rfkf!&l|d[ 9+1& 4\m?DhZS NN`M4)`3z^?Or)^IhXR`~rIE9Y1%QűR%OK vg_ci]UN1a )y \.PIB0* b(X(6 /T7uRw%'|/˲ּ~xTV6Mm 93[`HߴTFUq;k X`pUjBb6PߐU..?^R~)\A2wS%n >Aj tDy[\5hi6 ~$e^m!_99tK/$ zG7$#8HXykcl0yKɴQR >dG$)KSyXhNAԆO Mb=,bb́kr܃di2`s`d*>NƉAZW˹c!nZ ((ZR tpI8B0Rl[6rt7*`Q 3Vԓo}>T(0V `T(2 !0ڗY\쫮:* x{ oeHw~UOzZ̹vE]Wu5ZdU/|¸67w/x{߃j@@j7O%.mMܻwBs^XU (}.b "`4 3AI Re0!ow$R?`|A:?Ẕ0w}4N_{I~V}locW {Znm0u9kJ#"Ee7;~qh>y ֏d)˦`bjUK^TԫU,T8 !UjnF=} _{D&g&TZc; m`QYBA%--oT5 ]U*Q[bs/JZsXwjVFR'X/w+S!L(EY*a&Y^!"2o#lP 7{۲0ًiL1E\/m rߦ$piŁfԽ1ǐ.clLdt, 0aLidpj b!A"ABQ)ֶ\vZsj`tYhn1[m(Pٔ{,Agѯ@@M#Sw %bE􂠓3P·olJt0A=bM1*\q!Kb1x5Gj4ØuբYKKH6pƽ3vnյ q ڷ<Xe .7M 갱TA^_1BD>[. @[ TH8/u\|_{ELrd?iz~t0ǧ1V񓢼+zuUZ&$#xmڄ#&:*PhkshKݟA(\FFfjR4]1',f_Z[s%91lGɈkE!@36*݊Ș}o C r6CgLJ ʗa1EvHJ3/fHqͳ+MЄPWdfY2G׺$LRl&vGHBD_q6*-QhqF[S[ xd_4p%e3gBxtwq/M=8SSßy{1ɎߚfvR웓581pisس8˰ BxF٢Znc[JxPrI@ڈ.G9߳}s$wԌp3zRCr:$d%5h] %Ej;:2n aʋx@kŎw.uKrW+NpWqo 9MӾ^*t?.F%dgU1Y1S#\65Kًj2,jk 10%s%{4D |_2'>(0JIܷ#+exո /Єke$@DYA\GRCZg|&zr&@}M9DXL{rtEUR[2Χt!Pܓ^AZ>>%E·K[p) N/foA4=M=`X ayI<QGx?DbUm~{ȟN_5ϥO۲_Eq49d.$è7:!poYmXSBF>vyxY&WZ%ݹӌ,`9Iu{s*PI@gY8?rQ7A{׶Xnw*p-AYz& f"$&>@D jmlT1OUhK#Jq NiAcEY+G9-WbKkr^?Ėcʢη'V50Y}Rj0Bقj[Tr AgKʁqNDIEG-E+r[CpgçF_ЖL;7[}ABܽPޞq _KYpm֗<<L9GT?) WIsk#[m™ o C๡p((L q%8 ^J7;}jn%g\ Un%S&(Z˴;>d%"`c^yOC[Gq;M'orae2'J/V1SOB~]J|]]DxؔgԲK(1ώ;fRk,teN<앙BIm C1-JY.jpp 3C 3Y0EkK:^ܴ"Iu"ǎk!.T$[x%<Ӕس05굽/3wŢM_yIP]Myinj.nL$oZ"k.ѧQ _e"K L-^#_G.L`RdSK9J%2 ?cFd ҳao̽% o?.7zmDp*QEֲo?]' {%)70d (Iea5HYE'ٷ^xNzX9BqgLrE=!]=Pw.f }'t)tƘ\bFLX"z CCigXؓ$ݓ+謻{&vse_XM ӁFњcT*Esdm."r< +_/1Rya\fi,waw#-1>BIQ;'E_)1_7dxx;)9zX)1t5^=klž2FKr~+P},ba}sl`Il?P!7Iop]|mUMy Q) +̋i{Lq13h1@T^_[Gfg =;u:2}x {pN߆^쵯4/0"?%ds8I82hwŅO]۩h$^k&P&xl?Պ۾1@μEZA6#5vsǠֱ8oD_[ Lk<+߬f4V 6R_KHy($?/HÌ!T_[b\ٔK,R}Ԉfv3jj \g yF|Y1l݉ Dp8&A}S7LT{(6M"ƞ;9W :GkZPv`'ٟM@߆ Z{G.Z\[t\`<1xy6^3 u MwMZJ ]F.緵6։YB*˪cIÇg#)%sF@A%=jQb1U6Dթ6po&GO &%mKq5w&\nV( S?_C1L2uN9ޔ%zG&j]g6nA.:rz/w)O((s%WKfy=G_98>52zZV)w6{nxzvlҦݚ{xV7{~^}/3"g|-z OG9l!?\8f[pxP|-HURNdH/캩ڶ=u:K\xF Uɱ;wNFڢyu;4Q[Ȗs Nښ'!], 0dv/r96qAmHnrߍit Κeawc<|n;lktR < |"{a@ H8 < Tj;žȲ3 ПM5O@B)[+--aC:j딻Nk:yᕛ<.^.HAa rFDIi ";)g*4p[ȩýٝqZ<;)vխu6+V]56+} ҙ"1Di'Agt*-v_85x"x!BM;Yv#-,iY cS 6R='1z̪dpDF:(4j֑6mZ0p\8ui}6lcVV- ?uⴍZ33c)Li96tP-à_*IX7Y*)ݘE\FȚLXi IZu^#IsAFoH/!E΍a>'JCS )& ~tۀSPV7?VE>`Iݠ$ KϞLtӼ9 ~(B5r$8# `Ir S>nYfVY q*Uz|N>I>`ˊǓtZ" 5UnJdjFD[QvѨjǬ˕Tÿߺ|GG_ V"0\!qń XAIAlLc^8R@?V& +U~ipFP:b2#`nd%EH|byjOmH}戴#uM :.._j".~B\~_;H|ހ.f}k_Q g`kfKzuk9m[sdOwqWNHb:.~mhe0'챷N2 vZ?wnyem2f: p}Pa67qnSi=DI .6>hh-pZb8NW ~7YVp._pg|]BґΦ/W/}ӭFD_}ANDpOx(`8eIbwVxep iWXcf4y+Qͳh zۋޱ+k iQhBJP;Q+ٿd3><$ʞP72 l Ε9v0 Ҫu*R!ҽjzǞ޽^_3p!ˢ*q}YW&FFZ|/- WIk[(7Č-m{'Dj3:>|%7Ttt{ƞg\<~bK?\?"A.۹C}U\42X)teYq?'Epl_PN_\`†,ILI8ά0C S_#Fzo (GXx83BVH$(|)qK! #N;\m5l [6bFg߃.¤bG)G)`p_$1ȫ7H2MYkq;(K'AJw^X8M3~L_0D,4!FD4?votʊoaXo.d9Sm8q}R$J!4RF$AuQvQ."B3%0gLDwc강 \@>&p)N0ӌ~ɳ7hSE=xs ~.{qg`Px%<ķ>s^e[xT6! w ^ߛqSAAv{;AG}CFO:k'v`?K6\>`2EeddKŽBd?ɡ̏.1 ֥i#텣1'Y/g:k1a cE5g} "H1ysIzX7X4HMjm~qT]ToJAãfIڏqEwbtT\Bg;^թ=6Q1’ a %~bu1]e3K۽bzg7&Ӣok?:Pmz=hj.㫲ca:eO+ZlOL9s2d-b ^; #9س; y*AcN|hNct/$^3b: x?ʽ%6ROsnxš$}GZ嫇@ U#\lD8?25_Y*"R@%m%12SrRc8)-HWR/ϰ')}-jonZ~b V RQǩdJ :녝Õ%UsX o  B5a{4mc[.p~+-yJu[#] :1 ŝf>BTrfrcu+??D,%fPɠ ZL:3uavյZskdp:%J=0Mg}z z)r->r.}9 dLodn*4h$ĭ=!c淣jfM{t/Rc5gF|E@ùpY{Ք1s+y_n:KJғ 2>U@]N$=`"N|~K<^Lr7Z^PFV2\AH<{/y ^1=ݸTXj~"'8R- bW4Ҵ{MhJ׎]ZEw5]6tO ,KAyL)'!UBQ?[ 76)Yئykz5rgf*pN#H8T`14Zd'΢/Ze޽JQ ^5!$>kA,\ulxvHOͿ Josib eŎ|PSeև0?E.b' o"isW\@ I]Z !+}V&d_0 A(ňA!S3ZrDjVd+ű!jHM }̎~vonڄFȬ}]$"g5qsp<$48Z( %(bP_;k8eꀜT˜;L3D(D$C` Q"kc*7$3+Z$ypjahg,# 9Gp6P[kzwxd֒W? pˇ?P,Z[S&4 lDk=r6}s_5)e5:=tZTw|+LsgUrnY(o 6oȮϟ)0k RNkM*ܻWNl ffCSCbD1%B6mmZ4\'_ʷ_F:>,|IzǴP6,rmmad\ySγʼn)W3A!7ek Iͫ5.6Yޤ\]ލ$z49wwCՑ? ̝2^@]^$>ْ^6Z Yn>À Љg!U;-ʪH<⫚I= rFk~Rp}:CU 8U ^U !rB9`n55IsWL@5>~I^7W}uLIPc6SBN1-wL+^,EOvooCAԤ3r<TfGjjx!*%bQ@ jg9ږO3}%Yhlf{J:#8Jw)g E+txbO}h!4b,a./r((,Pd-5d,3NAXP W{/$+8f >HTms;+gU9~ulAE$~/X X= \~5̟e~_b1+@.F`,DsƂFk??CbhS'$q*TÇ99b+ݫ#!0I(kO _גՌ^r% Cq+ah5h$)Q@7Aޅw5b86' O"BI݋HtX2h6I; ]Q~q3K>bے!Qr{}㇠ݿ5ɉW-{|Cf"Sq,Ft(1/0ǧJ 'h!9 o*=NPtuMdR3࣠P=],7D Ax8Nٽ\F?zܐ԰CN6!/,Fuvhhv ُ}aG$QR-- 4k(_Bh16]wR~K)[a,D15dWČ@+@q M(nP9N'wx31](NQ QQjWN=b$MItBKbWMF d٦RʩÿB<< Zɼݦ>ZwV&Qdʌ՛qu`˂>.>Xm (A8ZQf߾Z!pca)VB!=5F5~3#;ic2oe֯!U^̼V%҄p}f2|ĸRjC-<(2ɘU-ۚu>I82PL +?N׸a,|XF*SQW~z;^=OAN`f 7Sà :Ȅ/Ցyo}eIFTh2<:XA&n-iW{f 𾲃z{8-nJ ('nôxBF`畗f2?U#x(d}_U?D,}] n{'#W[%2nmH,U?E]vCROzt` ,:30Ϩb- ;U{k8p]60 e6lGUNJ}g Zi]UrofTTI.NU:q\eɊ (流w{dIUH0'b2W8{ZJa $M&10,qNy 4ck9PЩe&D@<ⶦw?IKzM 4\M4cmSQ0wt܀R ~:*9ZO&mhq!x@CxC}4)|οW<=_Qw4U4wJ_a;\bz60N"Nڹl?3N5ہXnؑȚ1]:=JLujζP+ Fieys0^zdtWe*>Fu$:=4J z"c ʻ!zX8Q֠W&Js:k BSs$>TqOQ!2%~w*`S4sU h"FC 0.`:VzUA*drCKMi|cXIYa7 jcS([dQ?~U<)%J妢,i d?!AơB73^"oeBz0b~=S^M>tOuur[mL I7sCĥDvIj9Ԛ>T7FϫoQia4FYJ'dA:yp)+Q_ Ҹh&#a& a;o"a{ 5>Y3ˣCxOUq^fdnk >.1sl^2P]cyl}Y`+?n2U^M M&XYҖJ΍>f8[6ԧra?Sv3sNK-RPI!W]$E7AS̐GE`'R=)i|N#4!UIGnB[Lnw#IjLx8kG@F<8Y|-ID 7u^+ƝѼ{H~'-hIb%Ew 0C&|z,82P}۪hݦYۮUּ0p"䯪k BgڹcD3-N!:!b!аKkyYΖ#ť[XZ9sccM0/K $̍ _rSOǘ]U@O0}9]:2)iO!Q.}ЁbU|t7΍hThoq!{]bhqyv &^%cqJ-|4~㓂R_3#ʡc%9qaVm>H3#0omfk#أp< N3eO䈚%_IUy]#mcCtgld9mT߮ M l+E~V-VIeG S.G5%ܬ$XFMa#rk*z+}xڸpU=h{$M/J }=?\Xڅh (;y%~9`IP'q.`MDݍY^/ 8|v{j6kEƻp@!OmOxu4=h&=l,o XA0X a)( |[O)0mN_lpޜ)6 xasUkJ$ Q0T̷*5=褘I/-5|`|uq],'Jmdĕ ޹ӅI' 61i ݋ur ({!e~Di41#8m>iCn?ܰMNq|JRw=_OsWi b{({ [)Eb?Sg)'ʡȭb,^g*rvBUo mm L-rLZF~GZ=LL#"9 0晿;E^ٕ?{h T״ƇPa?Q E`_zWA29 FydQ3M} 6P>a[IHOgU [ #g3_BYm9rj)}~ǩc:QKdJ]|KX} zmZ8 lSEͽLJ㪮4hNd|uV}t-H3rDX(K>}l!ɿ *a? fʥ=+?|ilGwK;k 9FϾ,i/T-9^ |L:"hbZU;!Sj p(њ7R^Tǯl9pm> :vZTGԑpGW|=_Ahl5 O:%z mGUU;? s`_|K~w(ƩFU2\ 2y[dWY`~t₀:ӱy{h=PfRob;h6ocDZ(ɍQC׋+qb+GHoщa  C KU\_obXBqϧz7SčdX*ِ*2q9@3Ds`ԫR9D" {yaw )u4ΌfyWg/N*ЖʈSӓϏZ̫uC/o}WP7^ZM9 {2Ap-F'G?brW?w6(4 U7+t|ji+'txg7k=鋦W=`Bp0(b".A"lB_E"|MC6AFрPVU"3w ί5G뙢-wPg%!o_%qxюMzCKuy5ŕJH'ki`7^Rqsy1`Ao#'&vf>%̓J ՙojQD- 6{ouVck]Ǎ3D¿Y4x5f:CI0" mVKucVM`_57OF2L%ԆLoI *_JF-M;e0{'YP%ob91AX݉'?o)GܖX,m՞SHɩ MӬ_34vnsw&bA3p/DfN-Z!W>uIqg(eyKU;= ƻ{u!}Sw,g0ަ:ĒPg@Y[7+,ʏ\FFFVyi o)awF?:ў8duX}h&AD 囆 is&h ^^4+"nrA0م"zrWݓcHJLK~n:H7lƍɱN5;ΜuջE|^LLp&*'|?}VbCAto'90)k W1B}h=ar{i9q7) vg 5H *OpK:c(r6G`%hRA1@d֟3*XJE5i)@yBa vaheM|"A?ic̲^͚wSTvC>2;ct #|Ij |36a\%v%v*(H4)=vt* L,h1H9NyƉq{JTcdstԘV>sm~`z=^fW,Ay 3(]\:I$v_s1 "\T-Q]`1&0wcr~if3 +{ * YoG6MބPcfv[4߿+LInO *!AY-Ln{=5J]2<újyO\!-auN=X!94,dj,˼ƩU}G$>z*_jyդp;ʥJѬ)v k> 2L9Q**&0ԋ_.3s}'lAd ^!+s#V>uEvȢx9*8E]ej8~?-G޿OD.w_F}œU#sƽyED<2x#Ҙ \ȐaB&@.&i0Z,!8C>ɉ:Yv\SoL[!p|$R邯΃KMt9 m q%2BԬ4A`l7 bTB_U7u}kMN{twl+=lrhc0KroT|4 _&GynvdZ}?>u@&e=5?b" sfWk@ &ԐU\b[.r L@ XDT" AD1:/. Z# ^@Ņ?%'CSOjYx{'>NsB )7m_FןδM ;ܾ9+QZΛJk:LdPdrLN$l*zt1Cbɋ93 cTKzJZ$6iHpJ&z3R{#1@V!o -ё/w8\,wfҌCKUr1+A#A%h+Z94wup 'PS*l9Q_"qI_up]"  t4,Ps[>{M rӽ~̌ -IrWs"W~hwuܔ<]ÖKR i*7O_ OKjot W0@RQl,D_(ИfXX:shKuf`oG}/+7O/H?Nms;"BF+tEwd +2كlt+ '/C"ǁL:׿o>X0AM#Y;pk_bvvz4.qu~s*)ӞLN>ז9+Ws4rX]=툙6xRZ~@y R='d5\3:!i ޠt.P1h*2-鹱kl?e@rљ&]6w2CPW"v: 8_M 6nsQ_h♞g|lm,n2kH;.!fciE`ay1;KLl~yu Ƨ*#v%[zy 䭉I7Wy)q{Yݟ>&"QZ5J5DCa ?T[E&0e)e9b?4ybgEN}t鬩󨍴h#H#nX{V)p Dw?yMJi0jk̴dbj݇F0 ȏ >l*}R ǡO'fCaK% Zwz:Iw*x+d-]{ cZiJ[[sgL/>Z9i7EnzG95k@ nZrI4%ƨCŖ2t!+tzSTHnضVsc.0sFLp9wb?f?,rEN0<`Fr%)-_rsXngE@T06 a@P: E 3ęwk+\{}R/__AlxϤV,׺(e tO/zs~9)5h~aVy;zӑ CO_JۺyiIi?h—_90rw2/-'ťʍ;Q ev ހ/tHIHKVBM1\}{uiX }§ dv7L L#Xs-q2#-\"lWK06Af>(>*3Yfj5+W:JciwIz"_y+v1⦠Fvd?4 I7]Կ )G,}DkT=8S-x9zrQb'D|I}^6eĢcX dԱ]&5?LJZuX / M-~6$umF]̈́jB{]wK4j>;y fǑLGaqz݌Nd`:ڡdSOt;Qdy` /&$6NTYh I  :'a5Ziyctk˲NZ*=v<'cANgTq8ؚd(ΌU712R hxf$w>ß \5k AŊz,^Z"_HJk%Hy`@(n̊jq__R jBft-FU#= t9=2uV";z -[NYUˏ:HcG6-]1&5`V)<ػӊ۩`0=Wx&0 Om݌?E7V$j yPZFw|@*B4\.Cÿ}%,Ͱu&d"lMVF  Y/`8#]J% &$:ec|@Hy O=UAdm=&xAhjWaP Op#y`x=o+e>c UOGejc5N;{{j7gBFu n{Q\SSkۀsΧ ^$Qn'"0+ f-:[6=)wC*q74=T{"$[C16S^$ =E6-Փ7kÙ/i˳H])𭣢R739"-UqQT-Qꥆ,;sc9`u]IsݙLqɿ#@"6pΟ;VoO R.M'oXqETi :œT as5%^8NU.Aa;Jr%DJ8ܜ{ȂԔc/"[6ih*B9Iq .|Rsuć{Ҳ9hjck-R!N]F @yu#Ulu! 1Kp݀h/X6IC9TS0_p 8h2Ѷ;:~xu9ZU'rx} 'I9sՋ77"E29~p6rwrǥ V:7IiNr޿>դ9B3uQֱaḫU05ɇ %Dl]Spߒ2}I H$` (1@,ٵrchŅ FڬΓ'-ǫ?ǞPfm[rtR ]} {-(s.b[7~ez"JY9y,/4~ū4&x:`2Z=/!xb{` >/FIx^v"za s5~# ?6V|pw3$m]8tO&"%1)P* sGb` hs4 $}r9Q[s!%PXbzUvDDVca::X&ߊys{'G*;ѐW'Ͽ?^r9*GENzΝ1VW,W! ai·IXj d )[>QWOn+>IZ@/ ׆. " ^ƕG.XN,Kjٓy4ԙtRD1d xH@=*|0:ShV8jx_1~%aY`=ʉq93ji)p~ޟꐗ5?Hddc&EazI"$r(1 .r9!/1UY)pr7Qj0r9y=g+L6"jŒD9=[*Eo*޿TCݪTҿN_hh?tI s['^|F=˜37JHBS%bcoY6Lf§tF=C ֪#\=XEEWuSXgq  c>J|N⾍T;Z*_#5 #u`ra X낎ԳlN3B[\:uZ ĥe00g*@\^삝EUj%Ucm3_[Xq -F2G^K[1L&KtN,*is2(4a)2)|PC},+ؙUFat$7QL SDpJQHN;ؗ`ǚh pna,6-ylRv h#!i'Õ@%uYۉZc54bO;QYğnp=༱*iL- C]WQv ?#˾`;}Mϯp1!}khա5]zr6Ԩ6 €`( <(|q'*.β]W4dyLkz.z*xt݊G2ujm\xuW]/dGv7Z\Vxj2gv<[. Z(P Qg*\ h;ZmmCj[E a( )lkpE2- T~jB[s߁!v(ez`|mSngYo>RCHc=dMRoc֫88=(+qc+|{lMvUh)#`ëJXhvbL- vC TKm`-VFc|&bS${%NaxЗ0Ro+6-^u~i7;a9˟#ۭ TvQjf-6 E",ƾ$%0"Ҟ}SqfpqW5.哅~5ؕ)}*>%*#;.|7ǣ yݹ#`k0#[r>Q՞/Tc*D-PdZˆs]߇aէ%7n;tL>0KorT,yx}z[TTK_=˅{)7{q-u<)ahW" GZXmo(0@P AI&Som*< c帮1 |LmCh2Bcݽ1Ϙ# o%޻`†:/X#2G/WչKmWeFYxUg5SNY+Y dK g%$5͸ںBt j0==Cj)-[S@1RSCn%}5MxLbLZ5mj*KZjv/]_V|_ݑ;r왓b2w2nw"nԣ;RgiG{ܴZv@;%|*,^%G{P[RtA];bk;RWj=9;sG9[<4ّj?cipιB\v|-pɅ[aK1u/ }j?ٞ]x'gl.8>M/ `_D c*yuI4(ӱTUxG GKd/'Ԛ(`@-u>ю81GSZmCHG5!h`y#gL,! !11|&~u`.}wx4 lɈfOƷ @8q6*!]&y&ݱ4\ypNb/ ZއjSMAVƯ7t\,Cg{ĝ~k=9P5INuwfo-z[Lz70\0OㅶYα׮Uc[։aC~"wP27/Kb FNL/뛴#Ǯ*3~\7(iR YDĉk>mUOl@Wl(MWڑ,s*Tʝ on\㭉3]my4_Nr°xpu6̻LWOz>P[?"0XdsJ'V>.+@x^A&4>f}]:ܑ{Rw~ߎ6m /^Px+ʔLvZwgMO )Lt?S4Gҩt홭QtdR)*[4Tzp2N?w=BH!=T׶4`?e^\x$Q ٷvwkLNH!CvrYU^1)Y}LI6VaXPoN )ݥp]_uq7ll}O" 3mp jδqꯌnLg|%4,,Ab}1j PB?RHfY&3A^;MZrwhF ~*#ãc@K5)>M=ٴ [D,5QO{E8:^uN]߉7A$16xj֫kv5} OH~[g HXӊRf*͇( =4K! rJ4DU{eo]F -%&G$q+=x,4;ORRze363B/'XG5_n1b5H̀B4pC4$=^^m ЛMF`Ƃtޔ[hc7 -݂IG3qN?8T#{O\6-HgÆ`L؀xG8.DT?eULJ8;fE-^۱}I%@f)CRjPuyǂ"/,JPe[1 iJ]OG:9ݡG(D bri,V _L28x1vnvRa`<4ܗ4}Q+ kZp:n'W r)lvIL sϸnKm9ɵ_&|/Utه;&BPS!_ Z;BЯ8 IDP& c@ a.5:ʓ"U*A?Ok~=L4sa|w[Ss\!oiAMQD&n/v5tt>%}~:»gƌ"- Z.iw[OyN9 wї$>,q3$TWޯ+T3[JO E9~YYIZS$8g̱qi"T&a1r)¥hHOyMDН\Ot  I 6}/OH8{>A8_1nx+6z,"y2YQqN!$~ͨ! L >o5/(Ce';XXrP48-jkpq cyɂJ_t7AAh].sz2#OBht&,x*|S|9.i h"sq]ƣ}uNY:~ " `TP& hXHs\ܭSYV]E%R)Ny_8z+sϷG ꧆[0ߗ͔}JY׏?݋XZ㾽>[28$tr a iE{WI&zm69dSUVFi40kY!ܔ >+41;Dq'@!G&{ ˊfלU&) q톦&.c1'iXVqC ШKŃk(Ab (iwB)-uD\da40Df B{&$_Nͅϋ^kQX(ŗ$ln ȵeMe^ wndg29#dɲ2=XF둥[v9J8abE0WHInߥl3 qq|YagQ7Ah-2mn3\s%;ڳR9^SE ـj?"I҅.Xq:W/e[(ܯhQX?|@oل9->q1i?GAFm+qZTyB--J<1.Pw=Vs>䟈oQ ٶwKs3#`+Zb$m_exd2h WJ>;VH 1c1`eKhu)"k."b;Rե Fxo}#+;w=+ {58]ǫ (Q3#+#CDPq4B]< !Ұjd/¸6l 4;Mtuh{C6x C.&^=5qW#!Aq)5RDX:貧R1f9ntNjp!}#Cv,0M4*SR?ȷW$39R(59d@(BV9htpuʪm'Iz0 IsH(w Ȳ +/>+Z$f[m\h]8h\ yl>q D$9fE_, 4W߰Hț)gBlS[nh@*a!Bo6zm_/j6񒀼o" snٙ}MH۱i0Տſ&- O%KYmR4e*?ekۇl0:ݵ!3 )_tfm—tMƝ_y# ilFyrˢx>2?ݰrzx{zk䛑c>s_0˜C⓿Sk0r.ϵ3K wiz=e J`GcbxFЁnn"еBHB; oЎ}Yu->3ZP=IX?hJzvi(Kրʅ~D$ (|@]jݳ 1! K6߬JIH;θ|H(" R},hEQ&ł;=MȤcM $*&Ι4}FRsCCE.+Yx)SNU4G+t$ .ѩx >@$X#28&XUE8؏&6C<5}:g3m,|x= 8*=j|m205athO?$F$=C.>zyf݁G׭UDo؁y-G((wʮj/ڰx6EixzO.Sj=1ud4 lY$p`(KiJ 31U2S6r7kطk} [y{W'>bfhIq$l]2f0M, 2IS HX?S  \y]b Ua`. m_9ۚP_D߻d):%ⱣWF(r+P;?p b 0~Zj<$4H}b6;6S(,c 0ŖTS`$B5/Hd3nh&.c:Bru6x',쌧C_)ㅣw\ՇUa )u4 TKiU|aG&EnsR}sg }"* *z]Y$EN:E @/pWǡ c>8 L3|IBN D3`"qo 0,5 ̽Тz՞*&Sey.ָPDgg^ӞB9GahKٔyV!`DЀEFASBٸstcEQEd9s049˟& ZE3ǜY‰ B}vCohlCf3;O ?){d N8 ʞZ28,\N-5Ơ˿~K4b.s~z~:}Gx*dnzIY-ΜT v|UD=7PѸMMӤ*LT]dtԋ(Ve-%$&Xm 1PSPgz)5Qh쓩6pvGFZЉNѷ ~f?BflU= &Kw9&*86jB_Û:pWD"@*I!ŤE)t_1]62#=!)r'?(ߎVbfAA<L4aZ߈q*L?ƊK/9 גx`x¶PR. ɛnצSۄFLK&+O_ jE~=-W.k8KϸO >dU/ipTT@{ L%eBoynS{Dl?R`>L$Eͱ\8TZc#r KIQ Qxmb>N"WBn~%j4][c79r%yivXB&QdxPcD(2.-#O>mlMB|,҅ڀ:['h+mbۧXSF9&Xڽr`8`l4&7?_[jQ8>?ywf V[A nl3:;J9-FRlZ$aei*cn_|k0Im0@Ԭ4  `,( €`N(jJ3U]]kU¦_]"Uؾ'gY*-~>[ 0SuQA:1ta s-$`5pk}3C|5,/bcfFKC @2H4Fgl% .`~s@j5s'o9~K:1@(X ' 8 AI&S )!<_55I=B| 8'0Sx^p \n&hJRONӸw(? o“| GyЧul]e"8?j;N',@uhw{99'lJ/i2-%vuIL4Y8&z;)Yv'y0y%w=$FbԐqA˪dLd+֯XFdV KNDyjwxaNg`qCQ깿.s\.?˙cGӉKfA\(=‹wImz\Q&ԏ|C]5HG !, S K4kmhH}yx,o$C!3Lf`"9\ÙLC"oq oQ`}1~!f_'chcѷ@)xx3e^scd7-:UKP"3$E5_t]V2n>?tQkW3rV{9]ňU7}BU;NhVjLTȭV?z"R|U2{_^\y>dŊYj0"(Ƴ9 +/\Ju=W=; > e4F qAPINXAD \jHWnSZ7ج4xO>/f/5YϬkmTּ@OF($(VnH\aC#;LF%?03HfзŴD.7.A,ߣM&PZ)pL靠ȩWݹ˲Ћu%S^2Pci;>m^N"^?h5-B_o68gDw#)E[XWJR3- m>kw\p9%6#R=!VV]=:3. Rug@"yJm'Rq :#o夈Vtv癓彿9Lg;+ZQD|6(gHh#p?8Kk*CJFҪxy*^TtYei@^տ)t:sq?9q@,P6 ĀL@P, P6_uZuҊ\_)~VǸ4bo<Գ齾Uv_'KBZKBn,zBN?trH .Rx 햇qcmNtj{X~.Vd3co_d/3h3[ɑT ZY//N/R)[, Py@p@4T@T"V盍si}W_`vgWK.iT?8my~n ^m [ZvmW=_c|ʭv?V.iYw,uE>(`![*.ǁ4I%nfxNaYÍLa$,ˆtuP"8 jBC!u,6hZ\y?>Ct:讼|$Mb `Cb#m=d uho9̎PdAbQO@/cۛmYxޘǯgN,ȔGJў9w@<$"` MU>;m2#c;z^qJL}Cxphp:0/FNxமweMpl1Vl 0X&ϐ#`A )W YrvĊV MlK}{q+YƖbX43^\ٓ%rXYwی1I/q9 {Vep<*<P%D|70")0 C, €,% b5wWƩNW<8'ž[Z֯6]mw{g!Z/ bn^?w\˭ϾqI hk@a_g]*g~$\s,q!A. \fMg_9#bnX _[;{;_&F2+A5S@\* ABTP* `XN@T(22umw[]oTWWJߙG5sL̨:BCAUa;I8Wfmþ'o b?TC`Tџ? H.Z,=QF;($v[۔-ԿνO e$Fcu6DZ)G:`p AI&Sy*DN 9P4TY("ޢݰOY G-kIѺLJldÆo9W'"SkA.2mv/OU+NJT0|lNAP4Rhj h#LŒ«x%;EDo0 tC>Z/C4$VAٽT@nճ'A1V}Հ}+QRAгĴBǾ;ma1FY3ǏX5$O]O8eCҐ+=Z*?'iu؜UM׻i^O2f@q\j֫^ͩkD15Z%Gb쏠&+r+DcC&8d@oM7bLlWpt[GC49JN`l68L*id'l0%\APaR+r0i̤HVJcc)7}C@; cZ|JP<* 3V(5Wkˁw]^IY2i\\qg_[0,֝#%_T8+:\r1{b۶8tyFxFqzFnT -$^M娲Yj;l럕 wYgȿDN]m`4posh$&l22?%缋YFխ`&LM>҄8Y~Fky\Qj]"m*,gV0ܫn3dg9ps&0RpZp&%ҢC'v73"p@w]2:jߴz>@@ݕ5t.OɆLFQrnh9D4=3зnP` I vDPP$Xd-)2,-@O證Ϣ`?>`pxs(z.th/;,cZ-(LwgQJU*AbQ^(tɵ'Ex.z+xzg.MpWo9y)'gW>WںqnĈGLK.WH& RIka:Rigp:0#5wSbL9rv 75^? ߥAO&rŰYY;УbE5 Clƨkk$yvUf0AHl# HѣS+XpK5nD:46ߺePsWBTAf ,(X^у>Mx҇'y )J=67a#w:r\w${x~qh2(ZI@mKBqU1klDXNVcnxP:ή-gi3af܅ ƥkcba9彙M|RtÌ+@qv [)óv)́lF />blڱHADc`91cQ3{wGm ږܩA1J:uf:o:P R75>0eyiV; Vj>Įe?>E@g(pߛj, қ2 g6mm5J{݉-KHsŁ#M.lߑZD rc^}{Y7iVipi.PTW xA-u@¦zpV`o18o6\`:Y5|ѤM>8aJIx9<ǽc_X5|eRtW`"_s +WrD8TK, 71?ud,PHք,seUVR":{`ӌE;-4IJf7`ӕ)hԒ/\! ~XRZ$|7B]ĜQ<5чsG :OUmz,;jzYzYv=*%q]& ͙V,`Րm3rxz : ~DwP)RpFOHᢲ_d\:Hk(ۜwqB|V~inp%=B|_e:e!פ)1n,$!D=-:wⵅsJ;)gXHj~t|=+Fhߍ}c7x>YSeA5?Ijl1Q1EOd[i?G YTBFd2>ff1oئx c2,a؉t6cT 7eѢ"{1J1 X˙C} zH<3`#̍"sЎ^lUtRPd[q3G9\x@xMZ%+i s"Ȯ57WXB1U+A,R<:|0̴3_"0xWËγA4(Lԋueq\ ;6ۗ{UܗAv%r?+7:xtgʶqS!xvN!+=gT̲.--~y7%d;GbN%TQz{-^N^ x՜E,0儽v jB6WԼJ ZA'ʔZ3~ ?@hKc$xqokM-Y'#=(.QV(%c@:~ţGQ%t̤1X8Rm! Rkl%KcgxCO5mA k]gB@Ӛ`DJ$^Cǖp|8cOPZ)/xl$fZxry ]ES5lptW@gbE`QBܤ^ dZv=Y5eFg Lnt^;]]"8я?&ڐ?:o5q WWF x^ !Ua1OeCڅj%׳&B/IexŽ3BԨP* f XhU8̵^RQbϟ#=g͸|2egg꒺ 'b+MվdݮiyFN辷G73K/^1Jdyb.jO>t_F~'-LPrOd9"!eArbB"5 *J0f a@Xh`T(P5T꣌1nkyuG%*t g ~NEX2LNS@ ^dQGmp SmHWs{[vMJ9b3عZ1S^=[MVyf__QRd"QXHְ XR@Q AI&S`W{s#$ltjI35wA1o==czIsʶ9qb%MEȨwm' Z# IbGEI(^W7PUh}AYh^CJa' j]vLWg0iAGUNgm`Ddϧ5[9/m8⥅ 7C00th:/&WO@B.򔐆,Wwldk~ o_\$7\/Y2PC GvQDA|yU:ּƗE0OO8( ]8arG6 -hڦ.j؅Z ^ QϷy&=&8Ek, oN秖۶u0oXnGƺ {kC9"'(> ')7]{7km" ,4Besf+vdqxkJt\8,G@2ao%0] 'B0ؾj],hB -wBf)^k:ju~CQW&B/5n[m;T"Xā$Ơ\>EOЃllxWmjG:. yxtUPD?E•;_Jtئj(H7O9)S"ON /LI'A *z&iAػr\A@˒2qdh؎r܈I@Ά@`9e[N{CmHnr 3"Gɻb*vPډ/2}%In~% &XK:r"3M?w^7NХ? V9DaM22?,Њ["ո)< *yg蠣ҷ=MZjԌ̬4.#\I0>Ж(}_ؼ[.n9V?NhczںЯhws~CVDA@w'X`/"; =AU78kCh>Zi$/~'c+)څ2G&!MsH5ok'%HV$m\;z ꫾)Q\m W(acK5+ $W3JHz=L+oXr@8 ]XUnYFx`k(EBMMi,*i߆~;]rX%`%[GyO؅ -̱0/7 m'}1jm-~H3i,;=>RPA$bkD ܷ;}CÆ;-+LQK_OIfj @C(Js_1 ǫ/zwĪXJ"LcKaA 8TKQR^l^DZ&IERGL𫢧nOՙYPʟ%6ԗBAQg5eT-{?@GjVrSIOtՀS㼡czkS@aKUVpPKL2I݋7|$h6a/[qTs>.itCA!W6K@l6: (jke\̣8?,zyix_;7 G# |T(?\`tYȘAu00qAݿ@!m~f8=G2X}7]\S/2ijq8OL[Nt`u/ wLs%8dke)iJڼJg;4 id{x ,J""pI $okk$'!H܄Pm7X8?bSII-0y3}5*keo:0QqPZ}nQ3}7T >.\q՗'1AƸ$.+eOǝ.o}Iީ,3=. [Q aJ9v[c`Wpѱt8bٲ#ne9W85)4׬vuZNVTi-&\L |CW(a&'LL h 'S!ew~&KdYyoy乳tW_my~ G3=l82D6 e X %Yy:լqNeԥ_QS3ϹG?8j+]kgy:S뒾ο]wknՏn]E@>Y &G]ϕ~oJS@yNd H6NF4sLJVR}̥dM;}8x*ېr%%rQ n6uIuG_ t`L?߶'b^o2WрoҡILFuϹfFt3c:8 Rh"khiJQn 2+s";Gz@yF,P YPsy):$]Jywf%=}Nhb(܃z'upz\jCR[P5+af-d[,t7F}"گRKP[4u0HVPMkú?<|+ ĔPD4 A0,bXH#7*{-ΗUR.?.n9=ߠ_@m0ma:k])`o!;]d~$ЕbupT:CM߾YJnO@!=A Ȃ;ri22CI~f>9i쩫|s9׀zVG(^5T@ A2I&S/*>I9ݾɠ3\*iSX@*}X6E4p̞>uY>)TFb{+g1OethZ|qs?I5S*ؒ qqm`\Ipщd{|cJt[3UM"aVJHB >;MP4 k$SqEڃ1k3A"IeS?B-2- ðW͇sgi 4 rlqzol\-C37ZWgCbLzer,iwq!.AK6=A7="0o20 aB}0bBһWSꖉ TSLbǂr{5HExg2dFxI _f8'FhxB]6Ȋw54~Ӧ)jMr^eM&)&rtU*^OO/3 crQO.fcy<ݽ ήՉWhf4-H8eҦ$ѷ%l|d>:F(sZKwmQR O`>2Q+RE0sșu |/r+J3=2xBVwxe‹n8km#ku*QFR_CR^JYUsMPjs?riǗ:eU}|y,@Q."Y#lId!ۜ;F㢭I27)U=4RZdA%~AFunp)ʺ}>ȗ^bd\9l3y9Oapحo j܏49(Zm1  F;nZ{Ac?hP}c(tlI7uWࣞ6| ?xj6?|r,k2lJEAcv7GFEmgi Fo :vHk1OX&skM\d |-,ȡJoˬ6aMo !ڱt,#\h?-cuoG9I ,(DH= 1xWt*a#FTm ](?(\ÓLpbN0_`Lpb,0PfzZ f:LQƌQG1fw *[xsƒ0*k9?rX"RӘ,6ӹK~1̧N1(= ΊacqD4K9k(ϽIk*o5N۴qjC6(/dž" {qܣ'Ja{gLqQj'mTs }NnP DJt6K@ l,#|x+Rdb $EkVEw!YR߁ʩڢH$Sm4V UYWs;֗0U l!²\q.WtTE!ţ,a*'E^QrOC5{GAҥ%^u+S.:7nk5;,$zb;yu+GXP] 8x4O\ =j`WgaKf]ELsft*6}_ZMCpJiEh/YdZԱF113[ IGWhmjdkK<(3up>H41f22u}zSkiC9YIʙEZKQVƐÇzj ZLJqQTSAakv 4y:2 zeE/Sa1!7{zHϢO{;B }LHQ>Hg NJ' $$`Y6}Sյ'w;l,:tK}LVMd_WӉ {Jb?Bfض6)M>T,*㮻r ?-(6p/J3wjό葘He2ўܳr,S'N٣!"'E䬍9?2J^ImZG2AevSvٸbwǀwtNUYCKYbĄ -JQ8|JHIvئQ>OͬSFQ 3X9k8)\~P(eXx_$vw T?΂y)U᮳N@e"s%4Q2ED4  !d@h:P⸩|VI>~b)zO_{c%߃:wճv9Oϥjyv n#_#fɦ^ro x[j-9g ՙ{@C}J[E8O4!-1ϣ9ev_ATl'wFV\P F` QjBq*F{WՂrmT D0H غ_}q01(nC!(YqpmfN|rY9B5ڞ s"ԮCzAkbE'0=R Bx3\>)FR[LuvB#z4_ӫ|qy9 }Z7R`1MpҳJ$b#rɧ`*HBpxְG52јL1 #nA:Pl_FjT)6: u~Y7wNB0 a@Xb@XJ '4ʒ*^6ۊZ ^m]}ISN@:)cD!W_Khm$[>K k3$h T *%8DTPJ B€,$ Bbo{\xTU2TκT@H]/c~=Ok}?K^>7'~ɨO2^X[/f||'1#y(a?WW緽$]Q ?9U5/J {w8hQZUT+ Z4 5#„6c1 M$. ATI&S2K,Mov&9 6wi`۝Bݪ@<̉d#t;񪤼সLQYYzl*mqqVAVpw#!S/ dX7Q (6fZ5]6ɏm:%]>YE#xbn><ΛǠUo]R~1(p8 »1Xy5i7J-]%`pKQ`%D>&(V%rCXcPxjb"oDY6R3<Im媐X֎ֿɾoTF؋kAGb _EN&d(1A+SHolѨ2PC"R^qܦ^U!o-Ȟ۳&f-3x,ē2 cׇ.`zV`^c!Z1]9wd/(Pղ)ωZǙ;*n1X@X( "6Ix\N9 u_%_μeQuϕ, }%C NwF;D֎e"gtdrHtg?˛v)g/&19YA*ol vK!W' D5_Њ,D$gs+v{rfGo=~"ScH#AmPhW| ځ[[8?p 0jJ:CMnFrbǸ@jx@oߔ:Fp0 Z.yD9]=PdtJyZeS2O91B_ZR5:Y4^>e^hQ# H^Ph壚Ly}`1-GLj]2ƣŭQG9UCoeA,.pADiNp{G4+I'-y}Nkg3O_fJ Sx}xq i‰fKۘ?B~+}ĩ0)u5󤤉/;<55;~5=#$ԡ  cD#}$|Cyҍ)->=tox_uRGx4ҙɜe!7l0?u&!g$Zv%iˠf->IO,`WXvS)>3; 2QuB Hf9{`vǖCsԛ"ӽtF_ ٘KdLko[?@:wSjWl XubZQ_t} Td aڶ ^"ʻ+PH"&O)B*S(+ >x;yCpBn2J&yZ-BOQY"-\[8:7PGJ*$ #?YTCBV‡#Rk!B~\T Fa3yrY`/JOc"cDhP޴~*3sHˣH>]HKGZ=wyd={3 $Zm:WS)k16׫ൌz)HO*T3):cԮɪe\t*uSV49Ͳb:XzB?^TۍuͬCrWp̖p}'n_B&E(v @{ކ3装JX{&R6e^/=K/)G}R׻Dv3UQ-2 < xwH3aiŞJ=.(u+_ϛ,5 9fjtsHAR]\_D"3:ݻV a||NLUhN((&al(VES u@V@毿WoH˃Ǿa ^VcQB#=L%Rغ=kɣhr@yߌ7n|eIҚSV;pi)l +I-ן_]ݒl p"rlӄ zBtcӏ"2 jjȵ+`u!&<0 2555f8[y&gohsBMsm ,9] /J-\Pu.2y{=; ;()_=_ꆘiqـ2492)ֲ vq@B֭M,eO{gsδ2f{Ijj9 nihNt9eUDG[ßlx's=cXvXgH_,D@ ?s828L`eVuӠWO.bgY`muS~ES֚S1[d>Rvy FCІPNc)3&{~.TTbO"wyd"Fc1m UzW:AA˙q.dTKKBZ y, _e!Πoܕa<;Uƌb1[yY~yٴs9`ظcAݶP|.\7{$f6&>g3p_#uLMpu5z_TE4NPCG!?Ƽ6]o ,o:Dywǒ@J2i]aYI0e=#˫S$ s8/:W >ǃ,: uJ\g>g@Zye C1 u6ʪ7A 4Sd>[xpiSV/1arNoeL9xuuPfKŘ3̆w`|Q@͘r`zSB. rV $"R$O"|DI?-/J%Hq L\=C3 Ou`WæQ DŽ6H,󶺎?&+S_n\(_ooB{PU11gOzT?i(J@LyqiʭЇ9 5]ˆIi%Ѭ"+N2&:\W-D6Ȧl+/+Μ\88;ukΥBQt?6*jԹ(pjBߟS"Lk~26MrmLO%;ePb-JHf aCM I}Ʉj *j+(_ ʹKμ=J͛/HiD5Yލr}ŁڏB4xO[ m~> ^1X(Nij4ljZ)$H0©:udzXJ\|*.}&B~!UL-A88l\e\qZi7ˢOvCn@9#O'IU]VsU]]6*CmտUlcV|iRy_;8db"6wFc>:ZWMQ*ØoT` ´*'@YRUV}v0׊pRda2R7ՄcRWzva>V TÀ AI&SFܓ߷}L[ޟnve?zH\~bL:EE)A%GG}Aseyw\z,XoV!G"UsuMv-;7zt}]E8" %W kax$ro}j%@4fA}jDD\ћz1)yD#]. %RMz>gFjްw߬pġ4d󳅩Fvj߽2Yԭ~Aq[l܈DQw%aM@$ apXO17ENElnŁ'm4hjz&Lݓޜd(F1MPO1-8o9a6}Ix3iVCuW~fEҀGI8u)Kg7$0c7r ݻ&S?BE^Uvۧ[o ƚ `+rCT'#חRiԁMv~JAFhL{g ;Mgwy0N]yz.{7Q΀LEJkzc}DApoSr,.l-$¶#Eܤ{0Zkno- >{ۥkMFw! w 쏕\3OKvOy#2rIY)?SFG/i=tֹ~( cbєbϬ< Q%΄+pn8.22h'Dh#݈sv#%tEvgoI~ ѱb#>WMȉh&?"\J/ a yeh|b- M񳻔LŎ" WqV9IvBTt׹:[Te1sJ_cArΚz/f_wH>S/kZNz*3VvB銄ix^A%Ve#*˯pv-H_,j7po}K0UF^-W~L3VE xW)AW4={W+ e hxPFb/d\ 1SF7x)R۠5^Ӣn֧R7MIߦf}IEK/O8vz88?pz5oP>@Hnk}4Ta1R-kZk=yQYcvr,gY.< $qbvb+η3E9O1ՄL~ yc؊i:RMW>vT ؓ$:\9Oűc-L oC Lw``O`)&uBキY-LδW" 79'["ЃG.ݖO j3A~{`9 4H,`")tךiu& y \v~ryY3O)|Rߣ,v}^Owp0~뜧G~DǘT@^ g~Q`.]ܝ10QeQqۂd=VYi7ڎ;}i)JY!`f4vYϳ:8+=㴣Vu˟Avo@ *"/:7$\a/s-13jBկṃo}ęrnTS;_S;QJ;u8TwqJf5rr mMN|&#L82/k-t3~{n g-FXLfR'+B6#񆾛_)1烖E#f|}9웣clPb+!<'!2+PY)")+:H7l hM45nx&h0Lg5~/fr?|qC޴)(F }~r XJ, s.#` bLoi' AJb+Qc-IQW߳?(@ dٷїn:QvbF"tL\}d XA"" (<H6pFD&zDl.AI&S9WÏ4+."5G39lj؏diWX>d\hv<2Or@Ӗi|ID7fJ2v Rox~ƒF, Z71ѻݸ_Y-:%ukPY/5º~Q\qQ_~Q1P:z!$-acFL:%qԾ$cWKuj/-0NV4uT1ʄ\sHDX7v&s-4wt"mTm%%C(54B )Q,jQݜEG"v9:@ Nzfv{i rʌ7?]`kXBڒ|ص×*~a(Wl)<+f%xZ<9O.͡pEnSV*tM'mjMIQGj&8"H3?d{E P6H|WɟE5~+^YkpW$A.=42ˁ}"_YIv5%tE^HL4dLܑHF_K|60,کZp&T~ELt+i~VɸW X94N~K@,=gZhj,RJƻoHC2z&W*T:6,TYlbc>j#@Ԩ* ah, @*-^ъi))(<Ҫ/\uwwFWթs:h{>h_S+,lm,3/g5޺i,b"'|Gk_SyWpG|Qf;*DN|Ж O3(qW_0 U`H* * X":T(p Á0P& b|z뽦_~r9?Rscv,wQ:Wۺ[o?WUCɇ-g,DM{K~5"4#`L6BAGK+rsNAiCԍFn14M,d40$|&8M0;dĥT]D@/7<jBX~2ʜLhT #ȧ_p_`ح?+q#H96lq0:ItCFr?lbT5=wO࿒=hwU65z)bHX3LGlk )js}pрW(B1=eo/FX(>;ڀ çznύV/i $ N;3e04R,/p0wFB:՞-Yv9u0ett;ːWj4~nTy0'g /EeLgGQ9W@|7d!e+n4lKdlΙ%u; Ns)L%f-{zzebusGWV_~wQ{}տ2 ,=Q=4L3@AI&S}&X=ʕ5Jݔc em33M*l>E͞Syn 8̈́J&怱oFÓ8.NjmO8Il-.;`SK64gmUpcO/Ohcz5fw9lF;Mp; iR<ŒxkXHYA22Egxm==-akC-L ؘ\7c߈#ɴL?KUيOXJVӮrMqѓk{5l"W4W;=`um_ز#r G 7v]\FC)kjCҍ X: {EgC#6?!7BY=UЏG޷TEimYe&>$Fd>DKX=' & kKb+j^!|44ζ8>INʇòFoQG寛@s#MA?EJ^xP#hL 0㒩5i/5oBd.y?ըf_#~Y 6Hq-P|>)Kӳk@ANa"Iv T5ز/@^U;p"[TX]:_PRU | oW/rK^̈́M~8y^~&nУq Ir- 5kخ3h+7߫+,>+[ a(tHo编;z oպina@Zm͐^(Bj;9Q/Xf7,5xIo\x{}na+{Ľԩ#!ND1N6d,s)*K;ך*Q+gى܍SRPk{hkBUZ,x!8\eZ:S!;& X,cXG\.9O5T,ʽQlpu@nLF|z-|:q;jHL պeͪj`-EfUuc l#F5X 《.Kh#ϋqPq0 b ʩcHs&I^/.;5@+̯hau+< >1Hhȕtсq=yn0MKi fMW{ÔzTgKs|k Z"Tp _Q4PkQ&gg|,gm t])H Q ݘ9N0pwH#.d|ZXE1_#M".Ъҟĸ#nW7JMv;Jx#ʀ糔 ˎ1 #ǘEW ?0\Mc~f|Byx{YJ2ڞZwE2lɾIOq6VN Q'xDυ~aB2Κ]*\Ѕ58)F3C]o>EZ,snt5̺?b@c;p: ]1r]}]#p/ua,| /A .b :5f{N/1&B_R&4lx/?iR%IbԦ WlD"&>,pX2)R]c6ͫ8tr v5S!Mڄ ]'`hP+NaDb OC;M*^nMEVr2Ƞܨw4†,z AdQHcm'.a64M`e+ z=LJ+[XIm4ၢD6r]Kd}Ѻ6#mT?s#9606@.(jEw.;Vwx)Z`\Չ?ϝȨW /s(qۂ/6LXD: CVh~„vʹn[_GQvu܅pUcͣf'%SjMӽ% gqဃsGH]ok4/Qe w JZ)mH*Al/K@ #hnoY?I"=o?s/ xFzp峀<G F':jBKUv GvǨH}U6?NaC KCp?Zl{8V/i, gGOqZ4Lnއ.3B-`wp-+C%~x&:dBJĒﭣ-E|D9%iܦ uI} :?3BіO}ۤy8$!ɂRYoҠUN܀ӧ ;ũ᥹bczIsoR/ޜ+u%3Em\PJY128JE_bvó܂'hⱄ]l 0.\-[CL8P6nj^鐣JT5Bsu:{9A"9SA) -+i#5:Wt݅^h $" d2[z ,KVf8ckxjMA):6zYG3=_]V[:Gy_\%~ 7.hf k\0 z08LHhY<?˙9ٸ82ׄ{[ ;qݎ"r-MzB:%f?~ИZѰnr=ۛ.t)%:cN+f'񦀭G`bfEX1dHDkȮ,+͊_cFzJIMQ>YMӛM$SsHnIXi^$j]FW ,ty|_)(`N׺(Հ\LH8 AI&So ^uw[B)jڣ|Kt&]udR',)&e]"HS= *fb~;,d 5db0چ5L#R-t+F.y5v Pre>P ;IŽ|IՂ|*M,`SP#o'mW7֓OG:3>"X .>Ҫy)}!P; į™VVb0uǞT-\(1}l圴tMuGٝeHLqQS_I\- y[;PgX;\dID#-H+`lVŽ[f{1vЋ3}q,$Faw/fÏ4hR&Hs6y"bᛡ!^ZvAHg"H>#IS29QkvbP =P$,Dn${N86a .lj:JȈ}j'_IK!L` 2z>.ӊ()|4s|,c$V '̔nhIpf /ȾqO+zNV`*̃H AHR U_E3/)-D@N] wE>eE]7h(9&_FGf`O"֌63sw"&7:V.uf ^6yޛKy./gi(3Hp:F^ZGBW.ךǂѧ~{DNP{s08'>ݩ;FZ,W Zl&O|1TkK,Lhs| BHB\)F,è)GeɃEkI8qrcNKRMkě..^Hb y $ǃO#{4ɤ54;30|Cqf!){ "c5hUIy|mfC@Ԭ4(€`,( AL"{sn>;ʻe|uCç}{GZ;=5.:G eko^L2tnW5]4K6.rwOmY8v'ڭ۷TKCTrZYK*嘲9VpI EyZž>q4/l[FiݏA|Nގ%]-]v(^%XFgNTVC: W4|5B L\*#yxniJyVFUi#^ʼnɌ\42)uF/?a'9L|թL-F#)бk әLu!hD #G3L+zPDܡP|{+ESl0ҍ]G=q#QFIAsMM@i1D")y"bDX_ 3c{ّ^huhy:]z^ͥEUhU5 nki8g>+R<i5I+(,z6yQU>*c\NJֳc |3 x<WnkkDP%2st`Og7|K7qͧؑSMzxE=461;bͽ%٬C( xiHSβ%rfuDM'a`H lulN90\" 9()KCA EFpn74ȅ| ! H!N$Ӡ?quۦ]d*<_JImOʳEY85Đ;t)L)kh"~F  .V'a5G8!=h݅*>[B{^:'PM!7F(49ܧF}_PK95z9?$crw`Sì(W&aq<9̐s 8MDmY+|@-0U-1]2]$,><,t7׿&4"e--}E%[|B;2OrYO(S 7xZE^\eE09g ^$TLꙗȅW)%v|{w$4YSk<d_e!aRq19D6 ߽N~b ~^Z;YypPTJC+$P^m+0y,F|Q\[Crd|>V3氘8 SU/܎b=4e6%zc 4.jmP74r][deSω&^@}^UɝVN{aqEIZ1$qg灇S6—0jndΞJgZvG)v7^\ :x.7v |#- 5}Nc}nOz_e`<PZ aX0BB(WwnooJuH",1J!gǴZo(xuvz'z|I{'Q8}LaE_XuWεz+›nʛf$nگ^h̦WW-O2zZ95i3/qjM0P^yoڵ;~=P2Q5ab´IU8TT( `, (G\ۍܪ$yWUu΁sT^9y~q4ʙ>̼_O:uqBi=׻4IY)g].x̰3#@Jn9U {5hs.UKHxKJ$=j{SmCwMԷ|14!}f."vHM$2 V(R%UIud>>jBߥ)/S]|+n0"ȂwSvC}%iWhr]3o07P / !HzEC‚a_Ld.5~O2{r0UN _dFA^np4.0duʵY""SJʧp*~u"CyX#H *{{} *CQK)o8Z[OyM]en}gm8Z)!?Kl Fqb)Gf_Dl suZ.f&)JKQl&3l044rDSd4)O\msb'`e&4fJQB1أR>d9xA^wd#LS mP۴ u˦Xm/!mF%04TnTS xgG2}T<4@\B80!43\s^o&RޅB7= 0K:s> !FLЁqk U%XEd $~H`$ac>.6AY *gӒ 7/p8k1sM.a[S`P1! ص%4H|Uo ^[fB2kL84}x-h6."E/݋WnڮvG{D!Sv;s᭶EV/ YI31=!M_y^>l)w P+mͻ/@?*d}PFjyd|4u?Mg&ŧ9Mdlddȡ&Utl%GQyd%%|3oH&.AhT#%qycrqR.!,H*v qR]-]3h6|8q hzZr[ ŦmfĤ=ygaDX w-w˛6ʊ6 ⋉ɸb'1ͮy/ƾT|f)O厠kTC|e5Ɲx 3ckͶIt.[Ѵ 'ZǣlWΣ-`(2ḽL>]ɪۘf1cȏy; 'V"nވ!Q^~G n;y>ԲBJ_ 9DOV^XB.v؉ZlQ"F=ٓč'ͅ)2HLTc^kpґ;Xƪ~긶 -*sy82chb-z„` 852+W]#sÕGY#tT C+̏ 2ǦJb!RAdpV6&dseU/>*/i}(u$UU;=64gIسbW_GHa,EAlӴotz"6lxLj"p24`UyW_plo='6S޹k\ǞX@U#7x]mCud5u(g WZEYi)Qm`='F*p7BKA1XLUPzC-6ha|Sȕؔu$_ML,=p eOPWT)`H `lNm UOXSNO=HP<Ǟ{AAI&S#ikS=SQ:X8*DXóRgfǰeukBC9E~Ҡ.%1ذk.ߢM~9&SA13nbgf` b<@}|`#I>XxE;yrcta_/r#ad"BP8*_ D99tyUU8Nj7x`/ܐU2-pS>vkzhSJqn8 ͣh?:<%΁XiE yI`w)IGb̔3q9F 92&4^:1)YDjO:g CZ(B->{BD%+~1\Xuc( 2CLjʼnj"QWELa.Cai6XGO|y[gi@y{p[b^s1!dKGK V Z,֐L[WfI)A0)lC>T9I)c=EC6.u' u']X.Qg3:{\1XﺜV<6Kz'=#gH6YMZ J՞z"f#y*=YfG `׾Pˋ lSkE8 LrO.$uTΓ3F56A"'_4T 9gt.rs Ճ `I02^P_HQWsjX%|]8:[6H+]yRYqu8J@lt$C4.F f5>鰘&s# @.8LyU>.z ñ66ceT¹bn cE^;Q*IJ>=Ly"^~EF1qxZ+& ru ٳTt$G! ^ά _D{ՌuqZ!A]#r='$D/Nٱc?dTV,#2S+P(3@J\ AcI&S<߾=lb@d*2ŘJ;OHVvC%xyÔ8ڳ ƒ!"^v?d7A"?cJ&IAғryYl )r.O|z{F8)Ziu$J EJc['%XLn%e+5M-(EyuԗM}rԳ>Pbq}_Uʈ*S#8>?77TG{;-+5g)S-=FN%a1@)t1&:s) eBM ؟1$$VյEX\3C@J ^2X0&)L~\>DuL`ciP 5ުE&0V|;Aa]3nwsN)X\Z.3#X ig+fEmnfx'qu.:йY:S>U/RO#6abz>G:uJ|g}nBsNTpp77"h;1g:I%k/-t-%AZ[ ̓{WEV'@iMvoL^A&6VɋD#| Bi #9~Z-}+V~o(Xu=1qg2p\$2.'`.Gة_Aьn 'j3)0(#s6뗱oA ,pa콅JتMUY jFi5 ?Iw0>cXKđ#k9d/sQm - —Ixf'#ˡo>B0[vx 9۾WUԝO/a23(rEsu^ aҊV@-R2wd)RxyeQsus;] Ge,lG%=- /'M9 -~ 犰#Ts`檎JKFU!qS]q Me{}+oYJJ3'@d"9a?\k1̈˜/˶fcmWk6YфLT\؝X Tx{]!E]Lj2G=WPS*M.q\[seb_BmU "Ȩv ű/F4%Rid91YQC?v@ |elLlQgONqT˟}*^~!G0;v+\ uRoHB4Ft{sѵ _.e/HD.PZzP(N,wq')U/,]F.{*B`ȍHmdeE; 6%ߗ٨e-2wÅogd*J"GL=Өf7n6 P ׿J߅7GPk}Gp۷ՍC{SÞKJޞnb9D1xB9ӴakCnWdwGƘ!s^ҤS94K/Q$0aLV|l"I@ja@w [?j7t`I+B7cn+:i2Z o,_oeFd#@^&=d& 6G6Ek SnRO`2 !z#`Hdbo?C7PÄTuY+W~TlEВw@R~p -N FѠUot6ѡs^Z(XWBze>O1tx1%%egO1lmQv SuKJ[[F{L(>!CbY Un CXJ5_INU$Bu@7Ev?(A/!BeGG#@ -{ܑ鿙rzY38ca@n뻳XLIz@7C]h׬sT\UhL5x_ʈ"~3{Fng׎|8u H}Mc~{Z>Y۰iF `vΟA9pD 8Nku&94m׭:!z6&(Lԑe^CλWC&j ~P.K(2L./z5guT7sBdմ\)&0UIXOQyuXܷԜ>x)ٰɳNM`Avޑ4HR{iTDV`Gg ?M7ïv 'BrTgsh$M@ 8lʽ7PV։&(29"%too~}1R 0h?4C׺oڛ}(-w 鴑 tcZ@+t͐0?CԣO ǐXJKV.<ΦuJp'&u&=^uA# ajR-N'ϐZ;ryf8=< S,JNT^n %WqؘjBߘcb}1=|;luynYDŽm[}yʼnoƼh5l'UN.nŋlغ&#rO"jh9(aFvvZU҆%P1s4PzG0O6i˜՟=9h)mߝǼ%@}|bS_yOk P V3NMoKr E>3މkY D.K0X,T2N?ݡ>)uҠ)C3EmN.[#/ \@WmwPkHp V+dD yp1>Q/[#6pw!Ya&ˡ,wِ Y<pl.%ΟPQNE-,r|q1`_ ꛗywX}Z9*ST! 086V0Tyqs (q)c?d66VQY+(vK*SO>Ⳬpk䫚]J3QdrC}B op=}̠]DFeѾx*4}'a ~(.4|cQPWpc0ƪD6ь@A8Hw\s3=|d} '_׳fT 6l{n\psAI&SFD' Vf@sLڹ%Z4sm`*GR7S?m(o+'jO܋wLMK|=Ed){cGӦiV QWޘu˦IrTQEie{<&AWn*;c@?$U#xPi ǢmE@Ei6wfN4"*diR}FܠK8Q04!A2lQlbUmsIi7!s/711vAQ#xk?(0WeЬ }/efv'^x>d0OdAHH&ui -`n\:q[ZC= r\U3"@I(  ¨ӱȑk].}AA#z+8Q~ןYKT\aXޮZ]@Y`~}t։&ΗR؅Fǹ4HL\{a7ѻwGoԾ[xhzng1} G'UOO^nL"%APO#PUr͋}f#N᝱QJ4CQUq12t̝9 T8T#Q2 "]q2hleAѐ/\i2E}zqb0a.=8jBߝ N_g4о$$4=RAxzW9["4m>1 LK6DꄓKM5UT"ǭ :dg_Fgcǹ^iL*譒N0l|˗j̆o8Fz9o8xH͓ ErNfnؙ%'El͐Y&SS㞁,(NXR-4hdtVszo ?L$mi U)ƻ)% ='8$Ѹ°vd%&oe@ayc/GGsv4-u\Jp/Ot kӽZB1x(L`R-fU ~hB fvh|ܱc0">fVV$jckއ?x7Oh=~̭YPSc-f|Dk:NƔ~K#:{NEy t@h2#nS*Q]iDYM>Et9C-j2R2-DsTjwȔ6|:7.+jyҙkKdՉEmp߃ɮ,if|X./J6*=[V n7izY>A])\է>G!މ9tBh I`9Ѡ%-/:~{,DȞzsBw&քxxZ'^'3Y&N@haBkf.1JŬSP8!U]Yգg)C?MTM֩ё+ ;EHCC1EF&&wTЕS7?2]g 9\w$4t+.|/ yF(lN$;;%͚^o1-ʁ!vjyhҥ ٿ5o`T ADOF!Ӑ< ]W(rR}$窻[GÑ1׿IHl?T]?VG+&qHqF9Z/m=t'U(@itY4Oe3^FTR 7*6T$12X(8qrU6a%$;9q+Zbb1RO!EA7Gަ|slll]sc %>Npn W 1EC' _H)ݩArԬ}K"")G :}P']|͠ zJP1K$6yVaBߓ36t=rxq]]4x5 SEofJJJ%"]+EB(n΅^?% ҡV/l =[!L6}96À܌*B6ѨxA noTB [ ,m bNpEغ=d11|~F`oSiKht%W iwCX~N6#G^(~OQ^}=p*UOuk䙎k#qZ F ʨ CQ|QjZ 7K|R8h<|5Z&Sm ٓ}ޒ5d윮w I0)hv1&$jE]$ +r1Y3錢l\.39=e#&LLy,J>@қ+뻠 [)|t /(\yVOoXۼPiT!ZsY] ̃Kfth0+i1<8Qo6w[)(uWiS`ѫ~rBN+]QN3i0OG&k1DtJn$aA\^mԊatƬ-@j  nKg?5@ dғK ,Abhg -Oz 42*Ӟ\s2/AI&S[ ?-_6!j d JUMᾰB֛dF@O8Mt5+;G&YbŞy{:>TC.QS:oB.T~@w gpD{u.bz{k3!AeI)Ê`rKa9d}O+NTTRYY?8dӥî|t^k2"}@@>>*baq@_h7=μA儦Z3YCHѥ0=l-+@؝4~wmm7ȱO\vp2f/JD%'r O9A*cA~4B&5ϥFț?"?o\oM+u0^ ݷhma a~ݗY1;I [nO5A%v{l_q+5GȆ~$b&^ܼiw]8 j~Gȍv3(nPJx PEUgy:NimRxDgli@ +c`΍V5@ z Jҷöb1%Qq3@P]NdǠ/0J*B2{\z%MjN%Ct[ ؿb:d$VU4 Q -l^LN:Zэ˽bb<& qk3}i A GJư=)d3KqPI`c f}ic9oHPq)]Ww rrmգ7q|4ض{<薪w+2#nB,BEMd^|"PdPG,t+@vQ((5$uA\z^Z(0䍭U|۪{AG>m@љUX&`IQJ'AUpyM8˶:əֳ;wN!##Bj4 } 36(yg{ bIjBYT r5P˺EK!7]O,)Vz:.^y?za?zV[w.zfjzA(Lj57f_/s{bت;\ w1fyD#/FGh|cbq0 j>4xtdlϳwY& i_WLF6Fʚ1lݬFΣ/kEdH){TbSx)[exfKp)*P,fV4mVYNs/c>C%״73l$w 6&ժ-6F.j0'jBakc:@Z(m6ܣ2/@pP8zEIc} w?#L>}'/46}Z-%:{s_-Qm3s'vo@=jڦ 2Ԩ6 @Xda(L"sY1ĭVR^xeT7m=~ 1)~|MӱeQE~zeNөLJ5^ }YU6a O]%JՄMa, >w'r"ת5j7M3tew{g?.qBRa"i&'`ptAI&SD;Uv[D6,3KMC4VLG}#UzEGWpr.ɢ%Sj7p,gHPcݱ%8}:SKh~ES6%$I A>KUʕp5 <܍``4Qz>T#JO~  94"D|xsgzZv%<{*'L!-+LጜBoͩ܀l& {A9d~HQ O@y45Y˶R5Dn~vL""鎃zP9+Ni9Lh⠊Ž]Q,ˍ| }.CT15y-4No3g QIXmW^&2n;#FI?Ѐs` N|&͛}~aM־CN sug#IwB.A[{Pvey2@DtNRVGHp$fQMcGF:G&Le9V&-,H3j[0qr vg^43j@SOz (j +aYgC.I^T-[ϳݯ ItbDt.Ȃ'˃Ma(h7HÌU'3Q5RmG 9@@ͺJw#痭o:[ =ҟj ='1˔&9 oEK%4K8'd Z LqWZt2dʬV'(D Z-yճ}&zPІ_k:grg4(W9 JX ()LũDu'E ~q vZCXsCtR4BQ4j==- ;ʢ̬M2{/q5y C C1ϙzYBQ/>SZ?6dGd lU[(YAF #n_xȍ>8- ^Zf70:& hcՔRL|^OK?ҮNWz:1z⪪^8r_V^PN_[-Uū@ꪞ2j;GuM#DƮ(F7I+_xs) 2iļ2uI.=kW͛TAmh9)9fAiSkC7ʧ3>p'{{RL9J{$nέ 1:-4SKC snrƁMԷ᪲|Nrlڕc64% b@XAE/~NVneҥ 'p,?}f}_7ձjORSo:YS?$/dV \;j圓|橧iYX^UM?c{͂5y/BiChY G>JKp1e!@@T Āl!P]Uqw2fH(,IFi}+xگ>Ÿ tuVyoTK({2C6tW-nioz-:7u~ç R@(>ic/cx\ŀ|+24;]_cTpZSH,`x: Jp jBǸd9Βm:Aݿ(\cǠT-g5!/Wz-^ mԧPm:l"15jH],s`Y̖_~fd±,(T`R->ԧ9BY|ߔg^׫ʺG搤^ gv/ꡲ+-+Qrs0bDR.)2thS Ge\<$O< j}c<%I6L`@c_,Sh8GuhAX$|p|Gu#|I4 ;ؒLT85- U{&W TyPphA I&S# e=-@?VIzk ~4A@1mo'8'Ý3KGN[/xER}Q0Xpܕ]"qPk#kZsN%Sg2ܴy85n,%dk._1:h(j}nXqUK*[, Ĥ_R[hCd(~uUJ ,+Xekjkyk0+Dh0h~d4)U0H:.@ ly&e  `6K"ͱJ!&yZIRw5@pۏDLʶ/wUrDFL{l#xG͐#uSK(Ñ5//@&[PG{;=v \W]t,"JX'\8fsѳ~fz,'o=.W)D)L* ~W(/'t0Sށb/=5.  2èkezM|YTF(YFZz`M SF:vU_{02 ^$r_a3S̵RNP8BnazMgbm$0) -nDxv,,Mq[olq)B (U_|c-a Zw2,x4%`{/tgonNcX 7̥o.;ha쯸f%ƏQ}aC+J ~M"$oA'ĶPĺ \h¬欟A78SgF>-FŽ\y \_>뫕ϦJSxK} iЖw^V*4,YT\7;ĬOs,5scwh ~ʒm:|Z㌑O,p.ۙz5D=,ہ>2fBY 2lG GzK$E{_6*>`?]q؁uf+`@E%^#)<4/ԣF!jO a@.h7NA<0PD)OL B N,-ZI:BSJ2ew\ Z7oQ`DI1Dd ,Ħ"@X^JA,I&S#+BJnG/`6 GoW]V)Eaw.'-frfUTXN_![muzO1ȳ^p/l RLOMCƫ6<4/5@v#FjQ1=${%yeCsgH' :v|vAChF-4g8j K9cKC?iu~į۶c{msM@Yn#cB^iM YCxƧf4Q?/B͐"btiN3٩qcЭ>l/b\35&U 'Z,E1Gx zգV-BÌqO`Jb%19rhMpp cԂzL[ #F.]HM B]{m6L[&^r6 ݃,0RK˲Z[0W[0n}xUʤ)E$K7etsG2߾*;Z 8gdp}ěglT(V 9l hiVv%o<U~o.Ubhh)J+[TšwvyzNo/Q@~zԝ%E\NW;G@͑`>G&LcX&\֧A,$c;sT8݋z~/~ýNa%^ Bs' JfKބ'#!/24Tު" B%A@ȥic[GFp$B (^zJnjR~&tK',2$Px)XQy4*ވ rO |xm>V7Bt..N z/@r;h]+,R|W&?dUIhXMA߹1#J LCt#c7wCۚŃI: - KĄ`hT3G}"ݹ[a?B&9kU&<ϴdɶu_]rfu QXY@s\d&}Z4}G)ɣ Ӥ0?F]^SEB[q| `5|f cM=(^zVwIH>HY3;]n]D%*MbBrUTV֙+!rUdjf)k\]b}@Xy=_ ;WqGe+D(T^!t1踃@*):S|4?_ (qPk8. ZDYfyU;=`G? D?nFTjp$<9yLNj&VK"5Oc1 Tk &:V-ZA8Ҕ" LX~}FE1֠jlh<\@b߶/Vc 8QsŠ rsYR4<{ FIҟ?QdaќiGk3?:Zx2Ҳ&7M/`z)cUx jJE_;-Fě8*j1sM) opLR^骠§Vy졂)S=H5i!v6Kyl$EIș>P]Ro^F)f}3˱`E 6xڂlGݰz<-}>ym*9ؕKGaH4&Yc2U}y؎lOs+8u>#9B &UHB? _+c2W %$}%-p;wOo $aFFDšs;02_9Kd3]6ULY: L@i,w>΂e$X 7^G q2PXB[oԱ)}W➃\(MN,E~EB̅قv x(δbGvX7m+GYO$@3Ё__ʎ|>~U]Lጦ q>}W}Ο 7aFF¹&3 F'$|*6L S"? AnBz{xſԟaw~=ƅtr0QAR) >N,CG0;O\ל Fs yMB)3˒3 *I\׍saBUʬgʵ / u'F({p@p24r-ži^iaa|JP¾|vBY ưOU'Cwĺb [~cr=_ XXG8|0{^Uݰg. ml"jz22rhs&zn-(I}xN zSxa襶OZ<%@؃ :qi>BrX&iiRY w|ͱSB1%-Ta+e*K/M"\9!2 څGҥZMT/K6z>k%w>CQY>;lϠEP~|XŪ˙G+}F_JS _Rn)C߼Q @"F&L4H,y*Cu Ws.Ym?u|ԥ#Z#[YTxhUF0ojv4Sz..:TV VY bCGz*\dKgGW*XQgu?^Ӊ#p <%]Pt*>t|g WvM6žYVSXK95bjAIAhLD욢Ǝ*tvJ!n!4VV%flŷ]̬E b*]O$iʱ|S#ei%,Ǝ1M56=Qs߃TmZ]+F'kFУP nN7g&^7qMIuz/DQ?qC-GirȎl ֫٥rɼ:3;4mqD'_J ܤ_ϵZ O /)/HeUZFAta~s7A$rRk{xy3Nu a ǼȂBBW -:ݎt#PJ4pxu(e֯e!v "XG]^.h"lb^Z{-H9}ca5Fgx!O̧\ycPܔPr-ASyARҋK1#bVJxv حeK*qZv:!!]6P0rCCGfC"~@XhƶA\s,OWݼhy;tޝb6wٮ@Nfkno8`'h? pb//SZ`fP7hjFPHOO"}(S3"c)c)I\A}Ը ϔL_u<;_B\ ޳ D s4cZ/-21o~de`3gίX |_r]ԤX1ȴO/_FxA}#}6\[)E,MEċ3m̥ @簀$$ZoeolKm8rD܅ !k)4HjEǟhܑX^ç{lzϚ;1NeJz=f ؋@BVZ :.y6l*_+g!НXB+dNTI6oT-a^!90Xa$ 3`<\bw)~FO4( ̗}&mp9o&7h13Ƿؓ|ojk]Uv؁"knWЫ-gfr w8E"H{-`_]ho.. cCNmU lD=[ ,"e&XjBߔ}{Fr>`9jH=~:}~OVشU(FYhtxLW=<᭤KÛtdP [z*]4]n*>lwa`n9+`&K}? r3!H5%ISJT''U8YV\rލh08EcʼЗQe_$滠gAkw߱뚈#U 4l|Ŋ)3BFWe44!l<8a1.EjNb¹\Bq`ŏJbQ3P\^MEQ\u[KK{4?YuB^LY;C'oml,29QQ'ax}hm|*"J@*HdR\{vBS\\=fNL7ҵO{(5"ݟN>ؘ,kZ, 8.5aҐra=^ ;[qjkF. F̷Nmi|alPq'\;3-4W-CV djڢ'^J#K?M\>/ @)z e4B1IXYnev$gk o7JU߬SU;k54hrv3R.qL% E,{AD_>DDkBsCkҪT2S_jp{B-Mxlk{VPٝvVP,Ҏ}i{gmx)@#4w*#h2AU& im3P@OBP1\,/o8luFIGMNHr9i;k^S:ձX gmE.sX/]J(; 84|tHa·"$ BJƐqJ a6uį N).va92ۦyoYS 90;% z?GQ"۽+tV1&qD:of|bnّ ݄8]%A 68<6۬FG2nuҋ0deI~j' D3%*I?HS˿ +F(6{vXﶨس0\㬫 q9syļe: c"$`rlE# VriFN9kv셖ǹEK ,`Do"-tW\Ue6`hW3w9,کHN BےՁE&DuH Q(u&B\_ Yn94yQD & ͩ)o@ PZf@wBjB|G0Ȏb3YPPS@̿v06.iP0wյNഒt8)`NW$Rs9_'fs&KPVu9Ј>.d &bOxJˀoR0r֜|3MWyÚmp<>,QEj wzeQ\)}aӷ""kO{,x srGb4d#VXnT/^Q6G.Xde~,P#4(4a1r-檺%)7_y陿9vj81kdp([@Ɂ0ߢa׳t('8y4PgpE9iv"ILD:3l6DTtMjc&4,FcwU)* L+VgDa[$uCgrr' lVCgfwHVCf͛3\6(4a1r-沼pr^2Zm(= MDID~T i#Ūh}l\Wn^Z>dybEDfI)FVLd&2;YȼBΗŤRp^ Ըq3iE%+gɘY>“lzYI/NrIS5e@JcPXÌ`5 lAIDƓv;;fBKX<(J3f͜e)_]~mo1f];ּ֠@7`H= Y Pj Qh)R+ySzVD$bԯsҫLdGs?_| ,[̣ЊrUN 5qp*'c2ֺv"zw<~i YspXM^9Sn=/\yM}咉(f(e3f4i<@!|]?ȳ `sP6Q~%w.cXOuc[3Qw b#^!E 9T?6-Beӄ'"Wjā8Oa|_%#&r?f! 6H8^]ç##LhIe%_gDu ]]߂;;}iόKH|15z<@9_6?ysCRexK *b*i(}l.=sxY(ڕZJ؟AN 78 Vrw5>!:3ͣ! 7*IN{%,ezEiXc,yƏodLрg'wqZ*o/9&M.,Lqե gyTa)uoh4J̈c!umv;t1,{-I;N\B kA8=R6U<5Z!:Vgz*znnXYH,hO?k"-?wWPʑd'HW{ ׽ cNjs ѠC^5w~<-\I'\Sqt|.B>1Ozb(.|FV$JAY:BSN`188}v0=l"je*@ CjkLOynTJPy X5ü6E)i!߽|P[愻>@X80G\4wg}ޫ۷lBx);O919kHEk 0,ӂic p)j2g&ŏ\uY/ J}$5fOI`!W>D"L0h|$ZQE1{$:yxਵ# .kMSofz'2i~y=yTQ6.Oj9xYl0 ROsMUrML_!Xpٓt' 9geLiv[D^ T *Mohb7xRet7=swۂj v.#l/GF#yˇ/Dc"`x~RA%2X5[ě f&L)`zKL*R]?/<vl⃅N;n3d,t2 y75 Ĭ ua{p!)FAEJD-eӾ&捞y+TJvl=kfOf[ߟJkcXG2*eY?)8]1usiwa3S_|fEL+oLUN\_H%셈 {C~^6jS T]pm,D.FA/=2}{)KG>F@qפOJ޷_aL؋*.\0*0bf[Rl,L)TkQ]pUYxQ90gjB%_`yXV6xδ*-OOftC%S>'SLX`oXOkmqv}ʁr2@nS[aW>;W~zP 3CN u]0[b-/5#"árӌMݽ C͵Ց/ 3]5FO*P,wi7^XtUpl(}Zuڋ%PqM X.usP,ę*D3DVwlNc(zv[|c*'<An.2/cV7wP T8q _ F =G\i-vn_B~v'6TXr(*qڼxq}s~l""D+Q䀹MIRxJv{oQZ ُ -t1Nz]4 [~$KpLB' pit$>d 4ţnG(FA7ZQȚ-c!PhHa?`)5jL8ބ jB[C^}t.Rkj5dc.c q2Dʂ8O@ 8(|`,]irf"~XعD!~jy P/`InԛFn濠zV}=cNn5)/`"O.+0J5-%ީһq jp|e9u5%20PiJu[мzL kाoU[$Z?w{2,lupUdDBGeD@19,_r-_B%B0pz90+ݒWsv"⻡ȨsBQPX Ĩ<1TI㏮t֠hD`2Ig۽khJoFv$ϔ;1/âa<^͑7.a^uUa&5 $=*&0iAdS̽b_6 ~B9̣^XD*{wK tZ -܈Bf wg/ܿnF>eyƔ2pv-8xľ4I!/ έmFZmi=y qAA{q!AI&S+ _bLDBdyzw?$4R'`&T_󸛦pjzN9@D͹kPyv( 2_i_nX]5O+.OvmR^Lߜs­.sM%%~&W0Wꋊ#v [Ӽ`t#x("KWiD^8 oZڃ>f_K^JPdU9\K htm|czn* #[|>X;^$xA;!?RQ3MCWOHF/\_[0n"Y@}P/ szjfLEMbqH[_ .aG^,:Evr2W$lmO0>f.)6v.a~Jfv {YF1L1G0@ѳjtjq.ς>{i<ɯ\`*Vg]|b!XhڞDSZ!]t't~dP:>V񧗃]k^Rm|O0]3$iy G%ĿX(mi}Nvn`WnBL11Ϛ[/&6ђUy`!$͸y :i9Ct,;EIq7am UsKOOmkxGL) _lWW*G[LD]b:&D:I+y:E[2Y3Qø :A#>JfۡOy?5зN Ru,JnE;ʑZvp?((x%cOU["؉?iB f_ eR+ܹs_nXE-8MH׽x]#aۻ"dcC"$.;"qwdQ2 "svk[Am6%@G; `po޿2N&vm֦P; rp6GcRdc8U LAB7K1}XT] v65#.zl2vCI,ZփaT256R$o{#yy Nuʎ@s6Wj0/,YZn:^ǃE԰ p&IlNbRÔHc`AMp20bȧ&{I'__7sq^c=R@_dp.aa -+_uyVě v=y+ێ[l95sIPA!)2g:4k,%L ;-ᴭ!@1*0TV4)1R1 $_GU WcT5  6ipaaܨNu|˷FaSޏ3#.*dabʼns649vԳ¨CK&9wi7M:mc Dy{>\/:J@d.0+c%6lԊq毯Ǝզ鯮LOeHk?*{)_6*ikIo5 JNw£>=*!b-~TA${w}6E/Z ~X:6{uܾ݉9:*;yPMX` F. u };t GwUYٴ0Pxz. {odpA;IAhLϽ7؏>[=F\e:x 7N04aFOIE1zC%*.?;1] mLU+X63L>n/oQU\Rs@FC5iӼیRKtXy근E cMV.)u>5 B˗Mt!W#h\^"!%x_ʫ?)`]ݐ&Z(QppIz=ҕsN׎ (ݛBVJ7rkH ؎t ^cjǫm'tnp;xz+:O:0w䮧^EN9Tc觸B6Ks'H?ʠlT O=~OI_z!-8u[e]c#(MKi=菜Tӛ;,%%i+^ @}D*%STy1a*By#q[c1A{p"D3An~yKw:/-F3Wǐ~Z`'S48ݦ([ Ǖ%鷃ۖ il~Q7S?[}HMCUqIծϟ˛!^tW/QLi^WFn{fR%C&UNeyqI:.]? ZtR Wa!t;v0!hɒy+[a}|{KU^!ۜ9@%?zИHaT L ,8Ig25۝ve,a+l{4/Kv޴Xi釘vb4TulD6kOؚY+Ƒcܷr~VC<ʢ)8o w ^e3TZsV[] ~Yѓ3+aVp.պL԰mu;!f W'kS1hHG5PNWz^BņlAycX?'T> էCjǻ>Zx/(joޣi@xIHFlU|7+O(~rCE=aqXJ)d/!M S0f-h9P[)I0J\ O&b(+&v(HOWd, -3H͢vݒP2M;`@UmV]19^I1\P mcmݝsOǕk@:F^Xkn?^ BarW96v|Q'm ?MMj ex6u\&Nyi 8Ĉ?xXx法M>+KU3L4SܹPL)28it\*#mV}t-!(؆e~o؏}*vG9QfܟkE$OzUxza~1P%yQkO>35o5ȱE?*k_B쟗Ҽv6T^Zz)W~+=G';H+"|zM naNDnX ;;oV+߅P_41?~,)yo\mfr& |`H@H9 ^A~IAlL1N `ٸVvڇ,,Ձ\l ؍Ux̏!ʹ'mb+Չ&E\,< &q v, GڳgLkМXI?h]y';w TRc[U2 (GT*TD,<9u1wYoܺ9!{5ߦiLE$@xY&HhP˃ U M * Q,8LHAON(ae-AL.)U tz;7vfkM#vņ=[;F Sh2欋/5݊QBme}C h7^[Rӏާ^'4]yӪ] >-X:=u0_7X<oqt1[+DHU&+q~`G > '+Nᆪnټ&ŘG3&J*}O7G¸2bsKmLr_M !6 NVoG v̈vƘ^dtTAc#߻QOo~5ւ\ΜD+z`a0+8|GѣƲCs]u\bA~R> daPoEUt凌x `^{g%B{V4#tEW3].ZTݜWZłBIjkE !@phWP:rI:k)) bQ_ TމEnx_?۶jwsdfiJނo@n줟(CǴ Q,R86{4frOГNrhDҋDFfx~fYT7UNzj &knzI`\HOQ&,SQqɐfasl@A-Gïm)$8l5>ȸi Uoʭn_VSj~e"r7ZőTYdCP#>W<2ύ}`ϒ8.?$\ ];op-qm,sdM"6G3̉7H TB0 B0P, @L"8wםuH 61=|읏}M&m}kAcKguaɷ y k6,}9o ĖzH,NGA+8p/B…u nu"M,wG׸'v=zkq?Ј."MpA@%a0i٠v dXdTr4x2m}_WLekY2H#7GSe?6rZRy4-Fc^`uIFf4FK Ԃ]a;+Ƙ2g[5gKU \VE=tl;wA3V0M JC#%5 ي,i@0 hPaXHc^op߬]^,=gUsj6>|f*j}%we%!ʴdZUy(/-xZJ%快1.u8/gPF+֪1ۤzPU\:2+9ʣ?!9F`V`X  `8AIAlLpgݻ'"0O,-KYҵڱ29Φ^U*'/,( QWc G)<[R4B/n N&{Lj&Esq?Sh;]=ξjyF'$:-SZLkY9T`}rU(M) "pUCќc5:`.d`FSJ<;Y2JrzYp{Dzr4%x7?ѯZ3W1"&<; Pair"bx"qxPkG+0B6)g- wR%cU%xgeAe*`n_ORG]mGxRǁL,+V {R1M_'~ض&чoפPn*y#*Tfңb!6)Xhpݝ$Yag6k@`hHԉҪ^ 4m& :t^>SV7cs[dac"fN~wz 5OOBУ7݄OfFd-c1dIK!ECq8pQϯCє Z2]g aw-MITQ>о}](.15W!6 X%wE ?iy0T?:b,&ZňCҲ,54`e(z#u;tlG^8t5p%eMi%Z'>*YTU"=JP]򒷽sY-ӻ-sb0$g+c,\}ׇïǹ^6p-RZ g3$zx˶h>= 7!&2/.8_\)Dg?ΊC+ WW`ۚWBmLL:'ȅo*rk^4y[.3@t SB_ nżm`/zQx0rf@U]h!M׮1#It%^ TTbtr@) [{y0faum}&+84$O.gFh B=rCDoDgubIvt64+V"$}g6;$hսÈ~@r~hr{5[0(?sݵA]zS L˙/Զ 8~$-*\8D*2]CЪ-Ky #3ieyg]*qQG0d}cȽӗaQ% A7T;hT"'ֻ]ˏO[QWAaf?X\PmS|nIo`y#QpLew۬]$d 3畅5beҟES*S3"ZM4jSʼ#VP9 5ġ>7 >O{;Kpm! Nbwg9q +6x5Lm!|WUڕ *ݜɰBt;B : ڐ/Eԁ-YSA{x!a<_X? t.6HT_TM S1)&5d LAN 7<2J ޒ-&yxo ?jo\tHx'sRZjext^`u&dp3Fu[sxHu|wvfz*)9 QZ7GKZ±#\ȍH-AB {eYvz)?ȌxB<ӿ 2xGst_ٽi"E!>6 _!AZ}sV}_2*sMI,^b]yH-@/`8@00rI'_Aj} k$Ep!LX İL8AIAlL{wm|WuzVR%mR/wqA~߰Z; %nCgQ EJk.Hˍ6u;S9RU(Q95:-aԵK {XS`b{EJ{OVatgc]w_c h(Jv qZM' ݟ޽!1Pfba)k;;tACmpee;6I+yY]oB+?(#u?k6oIC״u8l 2.M.{n^`~_=T&hSWM\|1h}V0HYY#):*2- Egb\R9?TQP>>9jSK@V-/ޜDceu|<'* o,vHbOL(c7\jORbJ RKuESc<$# ~Q>|~߹|F)z^ t=}zn߬j~):jy]z2m md-biafQ*t>,Z'&] =OND7hG>F!IG+|'?U>KP[B $>4w4/=i:x` E~78H AS P\M83 5C%jizeF!GD.|m43(^_ѫYi9B2˓iî~FU! ;mSn9#ŎM6o6?I#ܾ[V̞%b$-<")4 KHvw,LtZRAQ_ʿNY_0ZݼE=H_x%%#tȍ >b;o<5:7_^o`1 3t R(G$L6 t-":MilkY3DKS-֣ZQN1Q#Rʸl2"pzVHu,e$=<\\29uzFK]"֠PD4_gT3Ec8r.JLTtN)h*sL3eƜʿb.Es.r>=޿3 "n5sz4">Iw 3;% /{ ЀFkGtJ!@ x` (`  .-=t:c7Eu4Xd5`?5wG`0붖U'e`2%pF$ ,0ҫ\e {#91>/TlbSx$DԜ xԎ,nr`}b՛-do: !IGr]8%H@d 3S -T񧶉 [pI:ZFwvuCEX+jKQa .<{8$AB\O(KA>|U:7*iEQqLV)KDTUnBQG[4AHfיyAșɑjj(Tǽ.!sEH8o% >= ea\r7Μn3Ng]r,Rk|I.9|s_}.{:˿)Z9DQ3 ȚAHlU6E\u`t(Nu` zCm_7]'N(c-/M00Z)i?\C3p%YN.7ٮ]Ӛ873B=5gBs _Kl6N[ Xm;_h䈻pY%ĺneL NAHS~mCNzPނC=K Xȭz$};;vː}܃@ _?׬=ˋz @Plp0HL\q-q8QẹpeK1{H.yq7gGRAh "9_]98&A"zCZApa*it0%nZ|1j`mI_un8_s(юM9=(75>NYXtT|0J`00G\Baap"ilUôWQYŐ)&q5MGʧ*=`mӊ^ pſ?B葺R"K񹋂xoT/'*FL8WJd.GP%ՀnKhޞVS?N}w# c ?]?er(Xzah*RRACwb$?`oxR}i}yb!=Љ F,(2a1r)iy|X2f^ kk!R?RY}=M`@F$C,N=׎5D'S-('DMz"+X3)9ŢF|(J9m%3;hd00&C(+5Q/C5I\Ůr%egW=dXG䝩h]vU۞_ROȄ[: MO0*-^tGlwO*_BI  @|VrlK-ۖ;UnV ;M5:(m LW,yՖ^sԧNTA9C(aNgrCL^i>( *Zk"?nSU~?ABU>Qc6.]&º2ȿ+kxr⽁A58fqu _du#z;JHy 4BL'r7T-,i*#5ѫSV!NVheRwj^g}^tSNzOvN ߗ?vq- NT)ۀ)}O ǽp ?\fҽ(P)L`kJs@͞=\ ^9|} ͷ6p$ 4)]xo+J~' YZ (OE*ݡXtRGwԐ2ۣS)jtvCS/höOkC&PRY~!7QYX~Wfsc zRoё26Z:wMnP/KoAb3TH 8$)Lq#%k`W&uG~<;mזET-N]d(7෇f_q@M:ߔ[8Yhmǁݺg^]rMnAy~S_ }i~>~o7ڀ 5fvgjǨҺT ~;.gpgӃAFB x!lSE&O?X Qܑ0(IH36KzN`fѪiiM]Teyllcu=`ߕ+6L'(E0dHN^S@vAqR0T7)'#zLur;HI68: YS+y7r.h,=R5y?[FiJ6W'Nu7I<\V{i7 ~\DEc kx!Ph_PCE4W%M?w蝆g^LD8\y+uGao P"q797(u9fղ$vv\[Dv <XAE01\Vo"aԙoص7C(Meu&[!V-,wK՚jrg袖f^/ +iŪH2)eTd=KobۚAdQ%6@&?:ުJR@ K D@$ $ZjuGJA wSKqpQ 7h>ϧ *FCevE*jp" 78L3.60Xr-3Cs[͚:Lw3 _L}r/&zkǴTՊ!rʣ2dJ>lK;{'*٘騈r$@ׅ atlǶ\~y|O“rC(| O~x7Ad=O@:tfipAiIAlL1_'~:!ݼ[j_@M&eXBMp2jRRyzŝWv93VV0$2ikOȶ|~[zeL6ͪKEς8`5:?2EL! %Occq=MueVz`B >?Zvs@,zHٜBu%Tţ{)҉|B<;6>Z6Z~m/dT(`NϢSm6"ČN ~ԗu-PSb{G?IB67SET]:\YIjTO%x yO8$ ǣ}! 'Zc 'ywc, 1`ՀUF}9>׈ bm JSeR˵c$y6W9VT]H>bȕؚ޻wIE|U>&/*R2Sh>ވ5MJ- N#*t$0U˚TԎV 6TהP#EVZ)~5R(œv D}z2Z uTI0lt]KG`WQ:`]!eQk;dv?9wK*;( ]fkϓE + /a\=@ihE%$ۮϕ+R@SʹlRmPP %{GޔbxfKn#$9+-0*[Jq ǟ$dtTҞzVi*nĵW0)a9a:lVV%91|3cGGfgS9zF AOG @.< ܷ[kP阗>&2 LQt֞fj:'n_:WTahpvdņ;Mއ3"u||æw>LpQDթǐͻښ0 I.*ٯ 5[DMcr6]qVYf4 U GQr Fo~|VQ * Hp$H1H{#4M`O޻{[eΦFKǓ ^>rmO#aMv@lyi ,Y@[ A#r[ b 7FIFs9B~A3̚`L B~@7eAݭ!70r5 @]:ؔN7^5ʶU~gh&aQP_lQ?wJ {moH^>&w4OeC^^kS pc(x1s՜,v FuNL*˄: Eٸ͙뤄yC.9"/0 %`x- 10[ __gd.0($q/Օ.ˆUp&x^n<ߖHSԹ^п_LMB_hl/~i=KxV_i䰌y fNeۧ2s܁2s[C}}%BM]PZs7 x<³ʊ߀l?E?4ʶ~q{x,,1R-}uW+=WX53>p՗ٝSD”k䕯+x@b&T;ÏwU%9~jP^20R { O`~rZgH-yG~z1jE1D- /uK~MK2fY` 5]1A v Fh @b'0,a2R-,eĖh)s"ۖ=I~m75:&!<~@"O/Nݦ &[븏UUn (K6h' j2 ,sL) A X[& ^@@@v` c2s(@?L? 큃 V s$jB㷤'K'p%dHOYGeôPۢ r&Hռ-C4~`G4)T:+=9 döQ"bzhi)bnG;3%A׶+[AmחXzys;Lz~&8_U#-b*XhTHz b.b W,XWkA5/f1jr VgA}Y\{b_ 7~jL 84(~jdҲ:R6F=eQ1묒Ɗq%xA:0XBZq%9з3Ѩ89ܑљe5]Pp}X;Y_\0P<'G+O'bfOo{Ӯh2g;mAu@/*gU2uqkJotOshd:& ahO!mЧ"$>47?;k!(ư ']CA=&-N121bn#V,yIѢy u`2WWhDvt_jYxlTsb5ڳEУ~(lF_B Uփ9`~׶)g#J81"[=M"޳0 VK8ؕ }I#2D{iBRʲ}ѭHC=`2]ގ)#"]Ϳ?J7ի>Ƀ OsQ.Z,Eu#CS ke(t\#O(} ~nx-J/rx} WeELT@Dglz_{#zZ6ʓd6.YY]AL!Q΋Pm^d6QWYgm\ΙeQb C:P_Ł?M=of6]!&T[?.VJ\g¬D̑ͻka=" YT$H#q&JHr B)+]^Ԧf] ŶØy4oIf~  8i2 i\oCtp*{EJJg80bZqނ.Kp1>'KJy(QY=Ui.ck؜'.NAy濣=ʾ07GA:eCOy:8jUM]H`K"&yPR*#y|dGt\$^=c?\@^Y & ?6&0XBZq^4,4q?Q?:=C{I[Ⱦg|5Ү 4^Yy4˱eO7:.`5{ u_٦uMHְ}/KzE ]g+aGadk^7t_}݃c6]Sw 1z}~*Z>}xOn8kjB \7Awu$ /XT qX}'i¿0D{6}ƌn:ne5fq nrэ_$j;ATK)` +2e= !餳'q/MK9@E-=kٰOɭݦq O]ܨ6-z3 Aߡ"959ʖ%H&@/.L2AiյM-P\;.W*)aD1p3wD.1 S(2aѹ*2Ljv8ٚY,'$*Sm _9-jh* e4&0Y!R-}}o 2O_x$hh&oLy;!r伸JqY^$ W tw,6GNMlԆE }ڛ}9j:O}B__~H+Wy ?Rl3hMy{T~W\o0`aq@bAI&SѓzD&]w$|_sx=f#Vzc.zs[2j$!4я#rt~ב2 /wXw*r& \.(W)/}dx!9;|$\i u isd[o1j0V9Jxk-ߖcmv8W=@$K/âK8#(Fk⪣V , Q"9ih/A1M&QMTm9iRx$nثnj9\$>$syZib;Y\PRtֹ͋^SܧϺvʱo rtԼS^4=d#*+OQf1.|Ru%L;m+ͺv`7kȵmwU+X{H4R}FuВ7S~Bȳ1dm[w6Opsf2u+iss,rUU3RW Cksk@Lv=<_8M34ŰSn=T>;#Rr>j[j7kBD+xU.{ d;4i! OLkULCfNSv砧"Ԉ.ͤTůF܅l ݅bְ]X;Eq^up&0X£HyW40ݹA߽3(isgy)zo+?v4ɲi|N*8C20Y@& [!^S~Ws鿷P.l4{Ɯ:=S& PU'I93F6<_t*(Rrڹ{>k7s2cߵeZ30L8d;bu-RyjUS1@ew:+P*sͰ0,4@'vPOيX j`R1HS:aw[49`ؾ%0qwHe#.&s-h? i)@~E;^m'ÙScVow饙1O{q5d4z/A 8S?I"`C[/3~Яc^aci x.]v^Lfp`_fd vP%u OSUW=y]Db!{Hܨeӗ/]K=z%,IZ30(Hk"[uWvˈСKy+Wt,bgUID@o 2k| p) 'x8!$"n%#ePY2)il :f2+r":܊[*E+I5a"5"Yq – xUhj$4ϙFXNs^:NK};h8 JJ6{i2LA s&ݶMXZTNgtvj\&=d/J6Egͅ%8R@+ubSPڻg ̒f@ Ơ;Gly EuN3dc*;.׏Kp#:X|=mڱ06ݵ/Bz VD Cv̇D J}% !!nR,,KrYaڟv_挴@ Ifv#mk|p؉uϻLл۶!Mc7Twb_}(zMZg#DrSh]Az[Wk\nz(NOʱCB'(La:S_,x?$Ȼ5} ]TbFo$UP~K#RN7' 9n!KcmL$6l?*` -(5Yv'n'[Uىer99nO{> >wi3zya24K5`5WeW򱪀h|'%sL ׄ 6H,\z{jMޫO}iu)b= 5:@]ו(fβV+z' LlxLq\Q87w/7J=@gVb^Ը \F кUN3`(z !7* 5[2ݳWWWP:>c#ϲp/DΠ ƹ?^'eWҏܞG "Iu\&7*Dـ`yٗƗ<ÝbOs,sCq+=pT/ Ԟ49,̑GAVBqVu܊n/F>;,z'k_L1rgh4}dlAi6cbX|MdSF ,؈ФroēA{2tH~:dlm8:@`EM{A%lgTkP $QrcEÜsQߔOې@DRMH mGb 55G)_8q0  Ō 5lQIa|M5)5iT Vz5ml%r||]S#g9]cϩi-.cCj[ iQr/},[ŒV9PR>+ #EV*jجz,$ޤJK[=Яɠ+gɣ<}gIy:sWDzk$7>+{9aIVM.`'xRłdB7lt#ƜVR"5imHڗ@N W;3 rAkf2A{Qwz7G NkW6#A03/K &Lts4s!p LxcG?etJ8 3>&CQR4gj fKqeQ)kcjC`Gqwfjq&p0ы\p,i?[ -d"#0ok/# Y) _"D3I{vfYD_!&2J,~v´+[WDE}4@`3#@(k~Rz):eR0]Ɉ砞=vkbí7N")GKOwYƤs,NnQz.a)׬IcfM*r6AógM 6cO#JA(;XSgJ`OQ܂:Ό {jkځE׷ q;7dxB!޿Q#^`yn}!w`4 G zxnߩ\>ueþ%7ʢЊ QezӥoPRQr*QJNb 4nx :syq* qE!3%F#˻kބl=pKҸVwNK)90,0x=T]Ou(} \$x|/e(_02?#+9PS)Ki]Q{Z7DeT ˷|wD0'q"L^0ğwkOZYcAs<` 2qae{BlD_VaPOwR[ sX*C6,䨕,+,-&7oN)C^jyԫc8#I)e[(NkYѐk\bR@GFVY``WOFm_Ny< ;AyY7m'_ z?+cp[5sG f5tT`ա5df! CoFnT_  ٿE,ߟ 2]< 0/(ҶEl 瘞8fugZ\ HBr8>Oxe/pzJI:ZtNAz#pi/Da}o/;[#eh#eՊZ'!1fReWN3]L%;XPz5OmKP03O1. qA>Ÿ-hC㮍,-"]ne*MRWT=L$ zlGRm ?#;=mmQz޽vB: YXdq}81AH@Oglؔ}C4>gR (KjYB%5(A- S`wmtR(v/O5ցq59]K@J@`#Lk)ʚA{e_θ`? [Kpd 2Њ[&d,<7:aKDkw[ 'əj`/YJ/ą(kBIr"[5`D!'H,[ĸ^`r@tO 'n)E!8c|Q}[kÒz(B[Zq6poL l |b.W9" $kb켔Ls:2f;Z'O+؝{ҸVWPx n::-Q=œ-~t?F]m?A'ƺ@0>wnbf 2V5iEwngy[ćW=q Ҿ/R%{:A)?wf4PD[w{YbwSWȷb | ~(U:'U䝠}_ '"ek7lƀ⸑URc4P<`"Oeۡ7ӿF/!"qw  ?bK<ҮI`&qO.2Bsffm<-j8 [TlВdj Shss=.zדn<l·oFh 쒚 2gl%dz?UF+sb82[e3T؊i?0$#7ej&Gy-BW@W:7i`#%Eq^ q+;x+{]Rqhe)EB|<.kN!hq:@l} 1: ]1c2)|2zr5kcv8mrsM6#:~rx,n=k؀%g ya7򐓉u#ħ1m^ijBs& Gk VI5GsՇpN)Os MH f}0MR@8=N<  ׷e.ǑE9цԢd.nۘ!rݾ\%&̄yO(h 5 ?/`o NҮtH*oJօx⹬y T H_\\Am쌵PĘ8؆G~Yg/V|Xh4O-=6&:+ cVb3@(LJ^To?^f.C:2fXV[㕀&u'LBwq5_ UՇXI^|} `foRA*鉯&ViaA\eY3a(TU({.O"o*T )D66ͩ`&J$? PK 1`J`0,t?s 5֬wjH9&ot"/h\^^1S\);+T (%&!׆_d"_LH ]CTt"(I3IEM#-EU$+e23U1o>+R%6+͠F ޖm.E1@ƻ1ik' AH"3n'ܽJKm-儏yhCP,ȾjBʷXd,N贸/)N) o؃y3V#{՝3 N-=.Ul50BY~ő+r?8hDՄ͈$nL vXܗl/>*y/Xu/tSٍfR2 7edmEG49{$twCjLws[!tL-]:P'TxdiΦhu&tdS xl,æP"X5i`۫JZ/Ɲ"{'[3t뀒TC+l@_nq{j-Wmd& 1 \Bw8ꬄ C* Ww.iA\|[?,*뒀pC۴v.! c ]~Hy3}f:giQ]sLW^ jz+6D{֡:|,'@^ ̫y.vagyG/u,cfK-vVXLvQzdC-S\\J$v*\ʟqzIT}6"B_3Dc 綘]vU:+iA}!XZwsr 4:T XYK\k`^FSt<ٻqgeHhZ05"u:}QlvԳV3uCv4K8H)0_ CTTEa7}$.ԙzϳ_آ]!p\Z7۶ :VtA>4eP{(\"LP~/FAhIf:Q_vupXY8ZL3ϑܯu˫{7/X-ʄmv$oⱴ~ZO.h%}A4J;zoA"$Q_3. r[:ppZud aq:a&zGٰ֠zg- 2:Xršo%RIuŤ&YX {+gGl_5" ;H5p Ob#ݎ;jMNr"{bдgu]j6SzOilA8!ĬQ+fu ;fWqH>@}!۶7j ŬVQu=Ӛ13t~A.cWDܖ7E~kя U7C2nuZ/D wbH:b7{Z<}i(܏/3#5u"fM xΜP8$MKxW"L{u NXUV[ͣkN\qlt熿Y>By:E^;ٟ5a붝C^ d/*Ly /OIZq{[x7F!1'W Q[W¾5G3Y DF"MdCvɖgauK&=[eO)Sc(A/HI0ZLA;fC*uwDUov>a!0 V,Wo"ogfEDP؜Q(Tlgs>n[>H;*D?KZ~f̽lmE{E>c̍L)k^G4r*6"0[`Pa#`m1ؖkbZcpmq.Xwk`~sj)UDV@>뙴s~*}RK 5/yAjvS.> S@;ܝ0vz/*pow)v9񀝷рodEu,Ȇ"Wn+*< O/`^L6pu+>Gq 3L=Y5ʳ+y&ڟg=u+RN ֣Zw <=aSRS|H|sf>KEFi@ɡ.M?yjj|0^m ego%N1x pXs.A&PtpY;HuYM&q\26q1?;Sdfxٱ2/'E`#?=PoB#C4V_l\G 8F宸U0Z#3)4 :qmV%rt z->l?.\|䵸}4Cb eBb=+_SUc~|Z+>8mut1̳#RWY4GR&@YC:d,޵^A0FZ$ Ƥ~r%YaC (4xgB@pXVYrjU=t!(4|ws@bb#N&>vǐJuáe-}LcHbCq(juWaVcA}Bӹ:9lf42ԯW9 O$Q2Ai?$&"U1,,}Ob(ەSA/4)U8A|^4dh i͖QdWV]A # qE rw^ #7'oҒkN-+5fծ]Ac':}d\okF`g1xQ":sjxf}Ǜ^%`IN$ *I#dc#b>lX]f²7m3ˌ0"sT&N}ǟBxV @ڀH7F7\b7lANkhYɿӁ}^ڽ5'O(NPd jU6,ZX  (9 ???1Iye$]9#$ `X9|d Z *],T;?f籁B/0EɡRPHthzT\cpP7DO 9Sʫs0  ' D+CNz`䈲͖VH nw)4fU;}.,& .3T,GHˣ-Qÿ dgg'*$$в[ C9;O':_/4%<e ܀UF RI53Ω|%&X#bJ9S?^|TSdZE/N* ^&HwF&8(ߵ˺#eUTF|oP#ALX[]_u|OL[ XX1W>\xg6Իsh}aGV> 2N2,ĚLښz y>Xѽ=i]*_pC7`m\'p)UX4qP xJ+glQn"7Wp_6HLTyݸ5f?uOow>7=zfSϞEt핽ih(ey|iȰ(6){5`y>7QzӺ k#UmQV%SI[RY\>٧D:J(N\Fj)Vwpt.|OХl5=#U(b瞉;;g6?F3R=!sg!P_T=0(*-.4dH%H3Y\INJQ2?iR{w({\Gj?1XIDLPSs@LDѸE㾹Vz9h5؝>pyiq7tWEDjxn'Ս$!wubJd)K]9d'H;( _ᇆZ`5jBT(psAy LNcv[7W ݈۰գD}axڦͥm c?{H@.ؗO ) oߜw򪗛-k-'Q"+us;O w&yT:KW cL#܋a/+QċQB>W,źH%1@-̲E]q>  A@Εof5 >K-̴n Һ9Bs_aOj䥶A> 6A*I5zZ`R5sqKY Xuv=>@v^VcOfFHҳv5cf Ԫ%T1/P=If@Fpe}A4D&'+`@fP>q+]]c[x80X m䵜 FZs 1x!F,=# uxx F XT^`\(Rj1HJbN^' mbJJBtS(rA5E_dCE[o4,(ǀq?~҃u9u/SA>dPD.0/rHl`j`2a|&ף>u SP:`j$>߈Œ@ .KR,%e 4 duEPSf} ɠm"+mƷf!I_T_{Gc-Dw>;E&V^PYkA୏V n!{[ڪ3jk[@dk_cu~f5~8o +]<"A&s@&A$N %ƺμAĨGMB³3)/Ϝ>=#D]6.8t<gNPlD0#tgW×?uSc ؾ<^?[垯^82Aj?Ez􊴽?  ~1#s#08(lԊqTEӘ~1|˫h!1U toU/ǣU$8MJ}R(M)= `H(qX/&iU(B>;I?uS7V++ӻU(Vxzw;gghy n7nU#v F7hJw:YЉӳ?4-BU5ACv-X]Z&R*!J7]5Ţ6޹}:w(O :Bv?tScYoYo|NJϲH=E4d;1ALQva-VA31Tˆv˅A ; e7"Qk&v Udf)--SIf$iS`Nʽn&Qz)Z0|x@p F鹘To+z4N9Z%*nNQ< /+jPx7WGJt))2E b=X2A bV:f$!2(Q{¬ _o{B'$G=Y7ًtpO<_Gtv9tUmNo)}W[ze1~| ya .NXl_jL<5P \UQHUa<)eE H8OPkxX.~%4BU#QQɑ O˴v^eh"0su8[v b0أMxFIvW ɍϸOŸ|hzc!p@VcIRۆ9/Rqz`8?*Aǫµu zd󧘆irm ^(_2[ǰJXK`u#&VCև0#=d2t;*^S"_OP9璯% NM}Aa<83W #ZIIPUﺳ-WU`T\ ش DчGRB^,=U ;G@)_|bʢT *RZb49bbYq[a>0'i֑s>]D~{6 HN(Y).;sZm GkƬMDDeJt!/Sg8&0' i֎ LiՋ|:$[$#qo7w/|/Gd/G5'}=ϼv`"Cc26)QVJ/VGl̴,ψD G}LIҜQo߷5m:ȹ'ب SB9x;YDRXTbق9S"_LM{Y[0^}B-ߢw^>}f0aKDt#U{[ ffcJW] ?ky8DG)I'%sOx<-?>2jX{2p%Y {dմ̖;nrR[4~cHpb:W=|'!5Hh/HqJKږ)R2Qf2"+<{uN8 3r?&z~ %)q)5)*01,Cޔbcc;GM.щş=:-/cr< R[눪ά*^z&'2'r%nS{DHJk.> ?wo񌘢«8c(摙Zo$'pwuި ۰,'0p!mń'袜w$=+Lϙݕr`Dp7st/GvBp8!_F؛`wc<.绁B0Ś[GzkIv?-&Ǡ('Ր#仟IVYRA.0\ }Q>}iu\0娀㭍DFo8`ΗLt/ncip}zyy#tcNGyn/- 8tMLvT/4ĐpcR="nHA\xMz~Pر[bBBV@墒3VlNzjn@z0Y*YQA.CN%ިGVǚ"0+*3tz3 ‡Glw0p:n`R&ss܈,FRc։̵\1Xvĺp9G}m&Di~RjBYU;&fPL3W=UXi1 b2z&x5K۲w¥B5 m؂EX+67*1$ ; 8[̞PMq 8DÙO%-`HXIâaюf }%i7\p x |Gu\U$_3b:ר *ٽ#]l,`k($quN;86?ILW03n7܂궧KG.y Ϳnf^OAG_bQXzgMܸ !xg0!%/faNLJ Rb" DkV6('e_БWy K]+e= K`g4S? AoFckM'ބX5 2 "6.ͲqHjC3%:N`h h[|,ѻw&I+oS$cIo`{lEAitTƓ p4s4LAitvi4J1Af=(|tПMDr"= ss um.nI4=C1x@[@Rf?cDž'_okF " YD lusxt u孤„ $Nǟgp1Pf ACnᔄE~ 9;\xĬ{י7ZtB, d;תdv9* `IkD¢Q2vlIno .2b򾠔q%@mFNXQPO焙T*k+{ā_\0ȚՎ\yC7ĹWwymeztya_\Kݼ+la#0*H.X2$˂sv:.?֔VșyܒHuYaԝ{? b@AȝCs0D e.N@ĉV:HFrap4LrHjI+86ŲWGw}8 陸cڝrVJt8z}Oִ`T5o4krj'8 ,C}lfTEaֵŪ2"HP@c `RjB.nS|ZkAؽO;rk&ЕY n >S;\JI:% LS ȷ j oR!Oc_C-FTbc^9%f5ilpv*>Iʀ֙z;)cKW3"<l>}F8Mr_AQL6 ,cCz)=@$PdlII)ajջYh|>0%oL{WLrcBbcDfRcp9|͖ׄi[>o7^(m v.> jl yVr+Z%bV6\t|5Ip< kZ*4?Y!nE ~a`{( NLԛ=n4e Nyvv /[~,>? 1cLA9g ]&nso>HDћ#D.1z֌p Dï1ƉjkGw2KM ګU޴.2t*&4I9H-eP T3Js]2kebڙ  98{*75Kzw1|bxE!̪,e:=L]X]{A,U?ƾ1|tȎ=5/6Orwû+%]P`2Q#:k{Κf |hefNԤ'`c:-(aN[Oe_ 5 /dd+]kf?AXֱÉLWބtOGsVmv0+Htmd¤> Z_N@~P0(WݿݘD>AI&S;I]|'?}6MT9vJXE%V~|?Q*m:sS=;&UIǙKOEMSuU f ,o"CXh"0͵Y<{bp0\aW[5ee"H?agVsq'#=O!!7p]46k (=[a,wL`"ݧ+5J0c7?Eg^x] U4rh擼jQX ]Y˾"fc<Tf鴍ޛ") g`TmA]z^j(V&9 p[NNbeHMG!Bo#oOo"6l8DЃq̆Ļ8Nم }U$ 緞.~oJ` U4vGH)yӅ0 zǛh-6O{2+DXI&"CŰkJbm/N\OV`Ԕ_pӰcYC9, ]#e ; _w}/]m ]cfggP43CRɪ1zvu^zh,D)\Wxj]kQ-Sxj0cԡfEJ l[A}(yQЙ{n`y<,eV_96)c2kJ9e*]Fᢦtdz,v (%X6e6vFߝTmg|~}otCe9# ސ:Ķ_|7؉֌^zt[4lf+,>KHvUO7}[z4"{mJ}aU@ރ)thGߔpC3!˰7?UpF+e:jzNMt/iXZܾ TЭTH7,_~ SUy1Vrn;$joo#_5?V] X?^ 9dVȱ:'aǵlND0~ 0'045bugؿi.|vl:e' cаčAq%0Zi&ܼCy#5l(ՠp$m-Em,^ɻA>ƙ߫ WR#Me- ߺ~7. ~sPmQC#vYxyޕp͋Gr3l1b]EA-">[ 9  t*I Ě1xEYezx5uzA:;җ}=cɰ8[>> w>s$6^满FlfIgOS.2ss&qtJqo0Z;aEרRc8:TkmϙK@d|˅{?(!_ Ќ,qİa47ಀcc z[B3&8EN8.ղAA;qRhc1fpuntl,fMrQ0/t<:W'yWj]7i6&{[0(յ3C@}zkLD"ڍSW!SYpEk̹u%3_=^+yJ!Sep2Xٞ >-hpK}%NPy2 ijqydzhu/OJm&.jݞ֪Tl l`o$?\&/ќUEN2Xe .\z3B',Huf4$m*.+T{*y>.=l7&X*'oe&ۡ 'W'2&d k5.j97)iu\s @BŹN6oTh=F\ó*ʓi5}t,Kas f eT/J6tgʐeoY)V_@Ko1 Yl=&d%PR2wxwup`:''O N9*e3lnڥa{ڋ>wG[YQO{DN$h9juhxcL5/y=ICJ\.)?CY5>$1h.k9 5 3˹9"ƥiM"!Zni FeT_;tWNPu ʑ>- oFe(j2Z䂬2ÑeCn*h==K#O(ZOF"F: s.Nb? T<“Nֵ 4?o#p>ᖔ@d=ޙD%iS!haN{|߰a!;Yob8 !TL#`Hq책^ld)h&spfQf{C6Cת=*֟~eJ7N$.~8I j2E0{ SӨBuc-aMﭕ*v^ȬSChpsf?3’sTJ{}$P`+SVysr*M+F?,@Gf˜/7%NJc&VV|/pvLA.*:| (ʇyޝP(p!۰n1b>ാ.L9{1Σ72N9y<طTdr|֏z}~p1aK/.uC`J6Ŀ#v} Mbc"/qW1]!F6"e2-,Khu)h[sm8R6S5Ꝺ~}C’닑7M ʲG |ub4׭39KAɎ{PL ŀNl9N$+cQ-t2aQHEvmsI7FX1:rG!]b{}e9=!CD$pHWr0_(>QZLǏrpis{HOm'`uس=DHل2 GK4 U\Q{S )Ek WY h!1/ Jn/{[䆘t&mQ`^pZ Z bP^݅\!U@Q~5j2ӒWwko_[hra&>EK%8 ?.Vɠ HV!tOcv* 4"YZ4V`&$i] (kXn~= Lc[nեtzAȯLl+Ёqtz6}&2c*'m&9ϖ6[Ni 1u8e1&z9im ='5 7y{N“.ך RzB!+UUSh%kxrڈ DOuV&DL~P÷f0NZ:GdM3Hw%E-t`~8F'nGMpx4\Y 9d"pomT kf"gKeU[YZrkn)\fA|c.K@Z sk3W R߀8Om.}lJvcbYdٷt%cᵩ(IՉV#E~ TS`LzHY0I(Zؔ*$!N4?B\rĜ!p%O$ z=fd[}ZMa%/rL,P =nL Zt c;hd,x et }rؘXLM%l(mK?DNeFsgZn_!M`8?-lٻ@qk@S^SQUfl/U; _ڿ Me0 o EakCO+-~2\ک7|XT5AQ> JFP 8$'qwpgٷrpb YgwbYHʌ[r>b{g]+g|]<P ><#2{lYsS~uvYFKĴlr)*y+s/m<} : _1ٵg`4(L6ZD88ܩVE."ֱGz ~sA_G& 1d ›{\fS={=fLPJ٤#K_e=v8`PFS u4{c֛ iX6mP{Sv^Mx)zg*M%#I'"Hͮ-wħOOuh6.%˸!9̴"Z!T_]zdBԬ4(R0]Wjʓ&VݞCmsEz]3ywuK~_ybu&?lÇu^s/?c5P5t6q4=Rh:|XS)pMmswx-.x`ߗEu뺬fv"=' lǿwO Qu25,ɄZ{N@lU`+8y緀w`,uA0+ f F4H @,4P3R\nJY/"o{{ulwͿczہOI|@j@実Vqq9L2f̼fh݃1r(:/\maS# tb'[Yh/_T9cp|:..Y[ TjB@^fZO6p6hrd Ĩٰ5q,R*t>?=ai}J ?8w-fm`z"-Omuw ߹ܬuRݱ v2|k 5)jjSzQhᬷwk*\{oE|ku8t|CD!%n%KbF0{Bd |4뙬q Lߎ{(.-1ʹoGݫ!ME`ZrG9,V2-]#`\ѕrc7qwSnft. >d%*ǂtN r3NGSjlK9%&/-Һ*x]'NS+ \"BPCPڄ[003<\`v&FᤅOQ4 p X(f(d/jwybtD1eQ hwZO@BG9 i({yu  x-֦T|} +YYZ0x,MQpV=ڜ0iU9hZMekN,촋*ЮmF[Ib8-mJϛ2ZUcFdA/Tľ1 A(Zi&=l ifO֨o$57A0z+DGS(Vt'b=PLg*Nո+V/ V+޷)aIyn&F^|2U'fI`~\^"s0p0&z=Pnq )J"G^MhVrSb9mѣ?pܝR< ?s'CeODFW5!9DT4H@,$ B(/wo#p"EP2\WG6LF׊P)%@ &#!p.60hrdKə\ L-kfءVJ?bzMƷ‘*:zK/Αs$Ne+ӶH^;=tIf6rH 2&ZLYD9; flLz]KRtcs,*l? O؃Z3ic~ Qݶ:W'Tl3|.q AI&SVxOJY1S1L@ꪂ֑9DC/7ۂKBɨM(5ȹz #{^sCIo9f2va+QG <5p1[#z4U,rJd )21Z^7=?,O~͚cgYo`r%Ku"]hꯤ(>2m+ ai*ztJGnD2(4~ɰ4j3/Z҂'/c݅jMCT zIxٵ׭ QT:q8;rxfd7׷˛L5 eg=!'4(֥h X$"퓇+>S2p j'[5]h=WzX䙓M-N<'2wYضYiVOZHvvowC 4': נM`B #>b}$R4@"|y_p_ul=E+jɥyU+k=6zpw`'&K2zZA|R%m}.m WόZaU=l#KAPJ-`uZzuA xb/fgL@_}iaj7-IH`8% £E0.B$M r~ʙzu"۲ib{'+$sĵ9~;-k8+ĈqVV;?VYY@ K̟`xze4X1Au[GacVZ'NЕwGX٠\5MsPh FȕE MLhT9ʌPڍYܔM%7B&iX:TSP߮As[9оzJCDRvW5i?PmwtƭRPyˋ~)~(%=^XI)EO~MژW6"!ǵKʡgU13kp!NJò]#q^][ ^ʑj)܁A%ZS4+ "5ۄ r|b.N_2ctRWe1: *YB3Xt\f{(޾t'SGm?fnHaNKvΏ1Vz+\O>j>Hؼ1F~=ewH !C<\"laì+0֒8 !"zP0bZoP3`-m!1HգdN6*|o$I?jBŬ-D\hx@gW9#3C8h&<1XJ׼BED~Իy{);*?qo]bcG~mBܪW#Z J{؃QZwvU_W@`^Ԣ*: Z6."})Q@&?*WmÉq✅pw#u9$ VHl"j$ h)9>>L'( tHN ]<Ρ"-:Z8W'ЁC=\罍&4hXhZ 6^wBH+voG!65} eb)MgT$įu@XSÙ*5ngkD1zSYnk+͟;zہ H-R)hѼo3^ 'g 4=Z{kUjvn vdqcv9xUWR3+?A'߼&W_~g1~x}p[ogH₫cohs m /nٍз/쎪!!ɤ2Ml#Cmo(8Z&mu/6hYVrfPs3g0.n2!!\l9Iu6Q?0[5 ʡ'K8lccq.1Lu^50v91nxv"XDkd-U 'K:0 Tx _~YD3\(ڙ9][Ie!i:#.Yzmہp)Lݜy䕳m\ߢ/ZaL`n~g/HܥСB40^5ApXV7nJZP3%/ؙhV hsW몌 JWM0#׸SFo!&x~p>kr"1~s N?Qד>Nam-'/߬ێٟ2OS8eW}iSݻx=y^g}Z^֘P1 W jBhP|a>%*RCh[ƫ֕΁7>;y/S!(g80gvB\i+hf+[zR4'JE jkk/>"!5`4[x7vڽMܺAsEA92'cCk/ AG"i"WP BuEcɆ',)E2 ao#>`G5~!gUoDI78s7,je.5vBJج9pv/+T9`}[ jmCsҮٔ==E=/)3f2P j& w!f35}_@i8C϶0E'ϗJ'2 }t+Ljm ۽L3S/=5.^NLxsx Ai] 3g%}Fe4ГqV4=?]noF L8jK'uq! 2bq6ߖ;do`F:ٜ=+ÛM"9(;aӦ1|e&AnJŒ4ч"*=̌bz,l)ytKH*Uoom@1]"\0#OXVFĮ#Vk$N(wߙzvz8135A*uae |+DTB70zB"wOOQ#U.͗JFKF~J֋{$̢La+C#RUGIӁbl8|h0Ymm71`,WF) SǺ#!ku̡UoYdiiq*ԨV,@L( )~jڕ)S2ǷU]ϲOSgΡ;mu iaPNGZ߅K5}ú;zYW-R 9ƒpؼGi[w35&uQɽ"1>_`L1kႡ C&U" :d9jXEgW ŷ=-{F>۸D^Y)6iG7ʺahcc\E'i/VICa:2kpYDz1o9Ij+r%4" xRg nYV͜m.l0kVrXHUfHg*xkG{~dѣ G 킨H'q=*qA]D1A7@dHMSv q:еNSrm]Z)~980xJ!nT݄r;,Bݭ~̬3ۢRj޿:8ǂk_;T6:l;#*Qk|jsqMjt_Y؄2v@mZd\۷'?=vρ~tYaPs~^1hӢۄ *X(b/=~~_uݮI% ;zi,0 8Grgtq+8<1sVQF}zA_^}d41( 084w2ȉueخaňkƓoߜ̍;@o#,Wh۠W<| z ^EV]^1h.~^@~WGYE9P:ۢIm K.¥"µwZgW1Eqe2Q5񉬣nx6=b}=>8sP"c w ΎăKh^؋4(m J@E_6?v&MLxkVNnp*(j2@7lXm7,J^BK23yipQ_xU3ǵDBBlnW '|°E:U+⟦<_F%G@مy/:Ɣ&vEMZ/xƷs*xh{|׷$7`N$DWb8N/CxHݏ);Lq2}B @pBH~{`gs@ʤB)jA9e9g.~KrVIG>4|}N։P8[]n :`'х,h&ՆiLip&d>! y5 S58/ntlW,n~C\D_ ITRJ$>% v,䊖3@0$gs(S a2J-OˊQ&A3p e)M7(yRTaMU";c95W\j#S6ո˅;#3kQuQ=BkGӝPIm3Zl %VnK.yޠ 0Ey6(Y kR;Xڇ@Wv5=3X6cn.و$p${ׅ.7N-ZZ+ehY3B`5Gs§6rj0${/,5flX'h2(:pp5DmfL0X =B׵p;N$zN}+ܻ=3ih[_ŷ F9NE<b JXoSkjl J!aƊ;jTs^5X ʓ!a%6ffhI/Joy3h rprooK "P;ozU)@!ov.sOegCw[J=n_d\7KY}IdK^\[trCLI]doaV1&Yc1PGjQ8+˰KQAw|}}7\+G/П;7_Ra1nIxurFnj)US{ĻV$,(tdWng*9ݿD~,*9Ȱ Y[gJZQupXamT wqUu4<>%p~M֗WNeVoRxB<,L4fZT c\TD/49>g::,3ͧQJj93O1Ǫ~n4݊!=oO6t=siUh,6F%O p1g,jB%A4E(0`;L.ld~ٳGxa/_UK:/7?K05p]h H{,fb\`xa &jE?,A ۡWa{'jJB[TMT7\0H, k#?.e-{ڮz x%Ӎq!xFe:a*zV`hvoEY,Cvm=0sU)YWn첺TG껖~o(4q ӂ7ƟQנTI5VFBZ ɕ0H&#+21* ~V(^&NUrDTsE~;.IwLV<4&}wy:x67ˀ|˕VKR/\澠EBWgauÁLa)+-㘞j`pn\+GKPwӳ9U/Y*g%2kFHv4FU)rY‘Q5>4RP)/au00 _b{UNB&ۼVwX;B% T+":[kwv }"mв-D q{4/13'\H`FWz}ǒ24KH&c5'4Vs?.AT"WUʮjG[)?JBHO(3VQ- {@o"j5fc/WYi~&E@-$Y-WT|/x6;GHg$=[DwA`{!H6H,] q޿9v e➐ 0k 67:Kyz:ῤNi%QH;nt4tfٱ5 #UO:eaRg}r[2XP:|z[SR_-bܝlc|NRiŤ/#4*{Kn,!lςc?-0? A/I&S-C&n0>l8 $*]F E$[`6 L*xvQ;qvpjsˬqI 1tK5pv:ÉǨ[n)_),`kśuLmI bDzIoy mYeah6ΎAҹjDOBaFl "x#6cŴl,h!qg͂bQF{RMχL w%4JS$#HG_5P1W#K^Qi"(ŊJzlm`l:SuxnDևgٛ.U&3`HCc@l![hP JK*cK#f:#&:Bœ# 1# 31J2w!_j`]4Gɲ,N"DdN!uD# H1w߲ !>ݷo~:MP50w001'_sտk|p/OwqqXB$|17A 5qъbo:^5--%h$V Ey$Q('FOdRn< KnS;T NeY4%6c\YΘI:AӈXSɇ1>xY6Yi粟+ %f2b%GLK_Ӵ.`c u飐:NRHiDx6( 69D@=:A>w.+>Z\Uz얺OY#f\D!~pJttÓQf?CD-_x\dU^yģ?trtfSy v4\n|,-tM^ܧtSialos(Q5H4kBN0=9]CƻUq|}bMU`%WV#$!fuTd.Al9]A~tLlj?|nԭe>qxPx$`_ έ\=v w&Q3ꞃ)1%p&v^D#IEKӸG7;D8oB@o޵BcZ֧ƻ ߤ*M0@ZC'"~y- .>}\IgvϦt3X%,)HL*uI8 x@9reⴥ^drtҁ.\X 3Ցa1(oŇKlloq^@↟4 Ϥ(CoGm6A,.O O𬒼{ Tz `xw)s_SCmOH~T? (P4^{%"VXތ]T@|5y!,A;54QihV >iE.Kbipi:R63$* C;/(Qt@Thvm@tvڑe]ij P~+vW$!W9g*|H1qL+~f3.r7dy-v2k^`d͹Re%nFhS)iVC_^~փpV[Cr&Y|1>C'- 0rYf 9C[ BH1IeC12tF/<]~p-q-\Q9x@l@`qΐyHFvbSQNa*p~`1Os(l@5,M`;&MUE:DVwi-!)ۺohd$LNx"&+ ?Jy9Dri&oq3q8GqJi><3/S8 Maf l^` ,?#f> ' =ʹ?`H28vr\en̴h5VFg+f^5%4K-R"!1`` U=M MvPk ?:Ԡ4@h0* PD&CԬ3S%qyWW=*t$}Yꏮmû[ĂN^:@H&j5_j[LgMR-vn 9~OKw Vj}ԘD0Ǻ5Dn^R]m˖MefVBH5J7Vf0Vde?{Tl:,a@X("E f뉒Uu>֢Xv=*~j6LlgO d#{VqjV5<3ШDL?}/M/ R_7\^RV{xLkB&g3EIf4I@:jZ1C:gĎ40 YŠ*QJ2(,V^_X4g|:ތ/>ޮz¯4w7)X-rBbtiUp }7݉tHGLyO(Jƒ@8w7Z{օy=k YS5|Kl#C# eU(Np{_ODý'WOsCaUl7wÇLn)c􈈉f=3API&S W1:"/7:(,Uth6797 92n:<ɶ/=0PcЙ";Q҈o~p9AuMQS\4Ng!&TۉktiXZdeeS)[TY$қ6 \UCg7p2^aS8`RZ+A܀|^M}A_ |]DdpIWRۮ4,9 &Ùav6Q0 ƕ%{AV12; R} eRRpMH&ePz8i%a3"Jn<9|%M]pG[Q—}E[DX#eښ^羣JQ>{]9iA _HDPj(( /9Dkc׋,`YCȡr2xvDzkP ~1N@c2{ c=I_Q!zٚ[MgڣAbk;wJ&d!2%/i5< "_nd!Y:RI(hh!.LܪaeKjtR7(ӏ{uY '$fzЃq)^qnVL.UzCޜzNәd> O5H5.E&kL)6j$I~`<UIC[q6}ʿ=vq %C? &'Ɩ}J,k?Z Ѷb^9r!=v Ge E1Q>)=>|=6.,:Ӈ&tꢊNCΥ<yhvSVNc;qֳ&+4Li\MEhr6Բ&Pk1oˉ*ZnW}Sd;c宁dyu8Z!~,)mƎ"5H22Z0F*Es47 -數>76&`٩#?)C5rj֨{|KLQ.ioÉU ЖU3WmNZħ%J䷇zbXblRƬ :tߊ **]}*_6Aw& nArI&SEy=~fc7x=`")OV uMojUt|!Q?J(Gl^>nѸ &kHbUV$!ԟ5k>m1/Yǃw15Ժ?T!wˋ kXUvzEM'La'r]6 ;qN05&?ݴCC:p5Zˇ4mq:YFF (S$BЀxDaSD7$pӃʮWSO~sxs!7 49cDgP[Kd;7EvGXmmQJ"3MDQ8Lzj?lcbEFzk^Ԯ(U$'Kj12WQ-Iڇ86bD2.?gMFS|y"-;_ل(躲 cZ?x+Uq;Ϧ0K:vӵYܲ)kK '=uEׇAq0LKcjQ0ϾGUn吉]]/+lּ˯yKt 'So1IaG M B 8gyBߞRwÇ^0YUe.3LY$~In#^Rw-֒ڙj7՚ j_i p]ðe ㅾg)ݾ)\*ZwMZU?Z*Rgf BUc b-,<3Lf`@zg=v&x9ʺcNW`ּ:Q [yd-RFPF% IZW/9` xkt`!W+mv$uIܿhnGJBo_[| J)Wo;d gS9RUh?A_x[|D>90”/KZ2:+;!V cz/좠"2lLM}9Gkɾj0VTmVXwh J4ߞ2ͭ3F̈́4vcBze[v1a?xq;"YoiPNPO-ɬjn8bnziUfXTX)me8zv'rhF/ o.bG -3.f>U*DЭDEhY`A &Dbbρ(xtp O;%oY@žaR6ңaH2"mNn0v!?_F!3hNsO^(i=+ݜ06A#dHs1QA|KI/; 2B^%nOuK2ɱSuueMc1$E3wA fM[1?hYԶ.t(iL.TWAu$ C{WyIpdsWEzCJ#p:K]'k"+0/ypϠw컋*r-yOO4Ei˷eЩ.Ha&t4C%u:n=+o#ȺSj`< G.4 ˿qC5Mx/,oZdF`FӃ0/X#pkYqLo77CtˌUB٭lr5-:H YJٻ8v=?-,;ra` ]WZ /*HbӼo56_.K9'Ax"_`#>{b +]V,=8&w'5͐E'9n|, ˼;)o:2/ǝ$+)gJNXd},]vg!|âVc2`7%3ⴇ0S};) Vo&\XZt(Kgg[/wr25 hmo݂q@FtVlreA#GTĘ0Xʚ=(<}Ӹ{'66b!}So&4𱥩&Pwfg?UA]0[~=-j=挺"V'wbc#$F3 ܳxM axX9l(!"mvfI-9]elU}Mpv9Ms=x4~q Zh}S/N苙 -!,2ye'U<_~6;l_*P)+KNK;l٩1&Xtt<2ǏGALy@S8\xlSG27.*9Tňt(Pt߽ gYߡ;?C鋄9}TɒmV*Uab2S)0][y:x* Ƀ o izO*#J%OHFTRղZEk!H}&LAч/LeOz$@}K欋=ZJT`nۏT|~[r1!gN%#_{xi *U(eXX 2;SH|K&'.{ϱ ?{kiFMLe/VmZ:g@Ea,ܵG>:-9{ВZMea(1"){VGТ;XnjI^7k᜿NI-j$x|;]_ $9s¸P@r%K8a9QT!\&3r@dq%v(o A$竒/DH,< ?kgbYj7@: {} F Ei)F (0 u}^߸[0lm$lN?KXueT쫰COkOGfO/)S@5?UKyVueP" JK;`ף?(:dfro՜oNt 0hm:3= lsV:qL8eKD$s6-^pZ (Hp'jB /!1yOP*2nv~*W?wӭI "7Io`2IAN<Mٙuh;ϿZkUx@5|9(} JM\!3U_dc@֙K#V??Q&3_cjoRK`"RǤGͧP"^;@8fTPLdE7'MOLnҲFUZuNN!~Jk^g_Ñ%}X]dNBHZ n"mW5]gG"/ Z#>1w (aeĿC2Tp49ZR;7&:aj@rqCLF{tЯe4셂jT~Q` RTz4l{Xǫfݚ:AP"mhX՛uf]i!鋜DH6k"׻J]I eT'l8SP–ho P;᧢x E:á߆xFۀ-,u;~SՁ`<((CGH樁+FȪV߁919h,uj5\ ֱ#d%eI5l{:\bTTv{iK Z0ER I :ʡ]d.`D 0SiO{T]B]Icc>>,#K&^>}_̺)} Nf:DQSfɢ!ٖ` bU臷d@P"7`9 AI&Sj,8hYZH'MӢĂƟ5Y,{9&Cvo.(ExVqR|Geg4UCU_ȩ`EŗQ8n@]'B,[7 d楾>C22zR`t`{۰EV "yN^..m~iKѨRB$PV*dkvo0wdc:9V;%G'N6i>₝9jz0~"B}*V}Ћ"ԖWo1 I:%'kG;|j^? Sy^\2v2I:i-Z.M\{ GB BR}qӎDTz}*c`8UeBkt#|~Db^KQMV ڎ[ơ[i/Q,VT=<-$0d?n[ )򧱡}E,xy)C;-Z,{Za%.Ynu`LCPa9Ϭlna.J0Nw;ޙ@VҺf3d[-"@ml*,D4<%\` :ޡ<gjGD:fAҎînҴrhHd&ul#MnCZ&-${PF~M/hoZ.1PG*3H?l>X.,q.Y@sˌB?ӑtVyTMO53|GJp\h=ڧ6?7a ͌&v[vj|0*c5@1Y\#T"nT7z u D8gy_1 (kS=.f&O[q1]қԬGьINz봙Df& )R&|h:"$"E=Nw*x\slnƣ1mDxY۶r9+kϟGT};Ek@Q(Kf^Z[K\%lX&%;)miҺ1co|Nrĺ:@$nݗo[^ϺxZa!:wVWb]FPshh 46 OtsjZ.q21%CMRaU-;DeD'꠿h}6]IcG ִ,8) O9z %K]-IZܿu2!VtRpNtwsFV۩iҏ:f^ =IJeua|7>-YmdLwº`<ds0m *~ ~BV@3dز Ͻ強 N`]/X@&SKߦ2orTa|L)xʏ"KTD_&uA Mc#HS{Eq`?hSW c2M^4%6W3-(ӾAg8~~E Z`=jɷDJQ#~e,FczkAf rIy(;Ko6wZD ,15D keGz &vnoC~l蝥y$8*[K*Hk[o{ Fk' RYd+DA Lkv[ .OZ|4{ȵPz*{28׀npFڱfUSnm@ߔ@=ΦHDN^πYc("ag~JK~\u6 bJW5ҍZ EoOV)sA"5 AYHk+\ls ʠsn2DU6⪶`{u^TciRfwB\ugN%b–u\>}lT*tc`FqV^oJ$zF4׈3M&'*Fyt)*x:ӥWۙ5 uL坸3/&TK}殓P of" M yWGO|CZ[}V, )R#!?1 +ăj;v_wuЪ  f>&j|$K,< ~ Y4X&jyH̑J=#˲sE-ا*HW?BBA "BEz%CR CnX8(:j,+RGY@ˉ4}p A@bm**H;n7?9ˤ5c^Nw2gSy:Ԩp`h&(vmqu{[wƒouo3>C!CRazֿr e2Ǖ[vȮәfFfee# Ƣ86{kVۻ\Oaӌmpr\uYӄ`Y\-,?:سEyqsw65|0G4fT1yWg|ׁvy9KɺMoYᔇ9fK ٍfG.`: W( ԁBw.茄Yg|w: IGcJWsePQJٸrl.l(jίQK߃ӇXd<^2xɑ8H8V(.5Hr4\d9{oL_ʙ(S&V;HR̶/qF. b.$5wF*,!ՙJ P@:/Y;#R1)@^IoKm՟$^3Qu"P2i40:a@XP a(|xkgϕVOQ}ɝ'9$e;5zl]҆bnRӋ@q̩7f)= |wp3Ƌz CV!xבߞUUojArX`t+]|ދ9ϪAC'Ȁe$=S2@2¢`  8>v ,7 C`X*!R=i^pjϵc5U;MkEic垹HoET2X/CD^>uBAct=I2E ۱ |2i?_oO{}isz(L)i&oE ܋m]w+4] Iۗ M\6PvT pۙ $@Yo-qOEBmCD"3Qb]GdqXV 荰c씘ḠɔK;ns K̖W(y"\]K)c {oXy\M">[so.;겑YuD8z\} ]L{h|7btWsi#elQJ_T$o&M{.^ w3{1?5[͗YMpilДGhn픔p7!45ac͇ųh1j#UD'ﮃ*Hܗ:-IҚukByG ] dZSfY6%LIѮ"3B"3;V+|H ȌszLl>H k=j}9hSK Eq4U 8CRa(/=h %MƦX;<ֺu72(K۞%hn }&L.!R.Nqk Msg_=e데Y8x1%3>m)RHp"}p gz@\@݊볲eoa0"|UU7`q~9&Ӱ2pby ^#z-NgS&ʨ_޷zt}%;DSHc{W0h&! %n|=~ঐpCtP_C,G$ț(5 /Ӣ.R& y Ct{,+Zu0Ks{֪'h-@т%爙Cބ򦹘o\;>*R*~$OdO1˞5h -_N`lЌ%|[ l}S[UAz3X{SD%J!%O HR+6C6i&~\K|9(w*EU6ij!1nIo9A iE)pjj˰9\Wrʼn&53mA|6O(7{{YzP3grN~ˈ?#/ vMF-*g]JEkwًdh+ ll6x? 49Qagt_BykQY_!j~=>TT; a0 @,o//yV}~-&Iaehz6]NUW~-LpC)|] pE~CL4*5<.ŏ¹fIy*t -K|{w,578`aBF*oc Gz/ciB1'"‴Db +PDjBʂJRmd)wr3ӾŋG8aq&)d) Lɓ_ԤD nF5gSiśk5Zjq͗@AL/՚kޜazMd[ *󃅛#NytmLjh\mcvyɥDsL:vwA]z0#Cgwfb$AzMФ6Ω}wy;o9I"Qf .Cr|4'0bֲKzIZv\O+d$N[\$8}+R׏A~yշjW/1`wWlWQ`OOAkÄ6ݠ 4ѥH2J d;TCWfԱa3}ƹ/]O!)铏 r+>Oүy -&`X/LÈ'FHE{̷__(ͪqfd~LNn CڍDvo5;ٰ ,!ޙE|r0qq mK׮^ VN~UZJ~LdAlw68+7+L.wcfߐEY$r1TzyZ&N,s3QPz;kJXMmdI/;[}mnz%aa Dycw41 I¤⶗,i#A_LJǯ?r\Rw p^\D0sp;[;`BrsUUJ@= +t'gN$DҚk˨!'eKS/Ǝ]EB~R2ž1L'903I\r[j)hj :5DBkdP.t?*.׊j ͻpbZθe3 r{2/dāyeh +@Oƻ\r>5iz&2 H6тTY&E]UXB mNŹlv?SicP\۪nH1 mIw^9NbnnN b<̴PcByv\rE,HAJ<6V%fK,K*n*O1K+ ?%$E/ p a{HJzIz=D5|1/٪Pndf=y~2`\y$}(Д_A"iQhcIqN INyg[HƁ~+T@`1e]#0;Z +{Tb+|\ź #Ch٦"gب5Z$}><:r}%,ZI?$ĽȾŘ2U 쳐Neђ^C^2N3 C(x\O!!+i8x G^(b"*}{jh}|"_|bqFxΫ#|sX1ק[g, $TQkU {>C* ~7<{o4?^hGZ*wΕ/$&2M`` l^H` 0;`x֡I&%1!R\=H.lxe+(FXdztC&مD_2#;-HNT* OLN;}6p ̷c_'Xgqg<*\ΗWL#O!Mtz@Zeg=H$}6WI=%ľqfmջ-%ŁV1b]+猐}!#K~d/r*oZsUcCL|Kp1U:i,Ȅx H=Un?s (m-⨀G~3 pq~͛]SƬ<&ہsv/H3n/-Iu'tau߻Yf…rw4rn}#oSky?$jKRw ?F7XDQ@eME<{13DʨI/öQdyOpL {?ױÇKFsV87_.ݩi-5t+  (Y}CZt˞M3^:YTΈ,e_+6ghbԡͫR@Ceq 9x>FT1#c\.%͝z%<=[K ψPkxY*y4%ZI0(n?xw粩Ç(njAptT:eY-/"v@c4|˕6QW!Ɏd^ŜUgS&Xqs*^Ef,N8ୗ*162?g }ιb9&W3du1hQZ#U£@ .y]0 |_XΜPjGEθTV;~͙X]ߌ8)WطԄ*bf#TA]s<\.fpz0l} !crqh,". ÿU?Wgc"|:5+LhpiwSP?U +ҧ-D{G惘^P91H#rm 9;7ξ; tTyXQtjdA#}7l- :yaK9pi,ö90EUU+07}pXM9фˍÊfQ[j;'ţBL"Rc˽،I[]h1xTU9Cdx"F no/[~čmɮ/`tsHc^ٿu3P1-rH#lzҭ;ߌ}iߥ_~F%WoH-ʸ!nB!P}C] blty7YvǭjK㮓x %D@5&EԌ0eQkZe3 ֫u'"t*>1$} vҶ#b^j}y/Wly&z+Hh<&{koO,k!,mOs=*5XILV$}IZʝ벁=g]U1ixiw#UE?PLS(935W7VK|]Funk[$mO3zrm2 D,#3_Ue}`O30T")c곏>A>uk }M3kf~h*ԏf]O*DQz'QAO",Dj%Bቑ D$QA;FUͪBWn1@Wk]l eD!*MClG( InᲩ84v܀os/{ڷ&]K+L&JNIC%@b%̂"`ۭ2YJ>=]ςGѬRcɀ44`v-*pq'DL\WQ.+l=cѥ!TaZaTٕIx;v94o1=IŒ@ "޼60D7?9Ar$@P6>dszXz|>K[na(,qH~F=,{8޳'{g7'1@8e%K4PGо< y#~2tXq?WgRo_K*j&!cp/ΣR*tZwn?2) nb'DpʰmƁ:@XݚR ʚ45Mź(qbl7-`Žƪ6VDWmU Ҋ v)^ WPUXl:PWiv%e4ڍs~*IK#Tb>J@+#XdqFf{-Sա7Sgr6{g"#S$C%FDjv7s )V,Rcg ,#&}FFEpRstI0$YFQtfTՌc1E0J[  o[rU3lF6ߌD>\cl 5l;‮ƶ<#͸6w&!C;x@rei!EһHOK%t.bexo1%' )[Or^A@T koklWVv HNs_g\GkOiCO+ rq V3)j0u E7IQ9X"Bl'6/I,26YGұJZv9~-`\ĺs}OuwKV>;`҈Ƭ1TFGSTuݼ/? mW{Ҟbd,fCegN~<1W[X* 'r}`Ja:]8EK&ϧ?9l3ԥxG O -P{QU~ B[07pOP*5}k!ƵW.'`/_]iL 7x=쁓F} %,0Uz/ N(:b;,HB{ù5A`4@ dƋEџQ,b,.qZyk[ܭ d_5NÑu=T .C6%( #Bt8ӬTە'XtskꕄK^)_N0S,4EaA-+_? 3␣S,7WiHv/hESӯ}c<WH=ȒlQ\(R*#'Q(}{4Xs#  K+ewۧ6)ȩr+)T (} Tb&ҏQKYfOȷDxH~ ϽƐ0G'fOO,)%, яGפhX*vWW}:qjr(iV VrjY^#}&74vSRؼaEW*WgП.P#; Yan|C@W4{RiqzLI?0p˝(\򒋒_id`aЁJp@tbQ z͐]9 !ۤ |4@M1s)k!jRfddAc:]JnO,8R^џѢ b]tQ#*#1DHQ/^I9ؤ`o(iz$i*EB`(aXC.%׷8f/5gFޅf(`1?$g vv#Ys1u!:?1@IIDODx2H,qWk0 .[*6|{HDDsۑ%{kKtxjs; 04rdR4kй,b/hJðiaR!jxXf%= jw6}JH3Ć9ؚL=)ݿ>U=3qΘaZwא@ʭn",G$Wy 3YbdfwìH~F/1m.> .Ո6FX!Izx{^fs9 AKC|Q푋 zYezS@J,|E Ny]y R+KM/3Yjv:,x}d"-쑫MT(-&TKӯ+6b={;Ǡ\ۑ$XȒ:\oZGM\{)+'&(҉=ؼx<Vacvx"UH յ qq7J &zMw4 | =Pڝ9k1?^0wɀ|ɿJS\qS0) Pu㥝Gٹ-2mFb̪T@v {e1vZ@Vdkhi[戨6aJZ $%xa6As(gU ^D.'}Ju+[C)h_rQ({4Jc겦ΘɈ0/x'i y`C={Ԇ"RQj d'BL\FR_vYώZ6؎>c z @Z6f d]*E(nQ3rn)%vjPHmz4(׭) wE@ԟ:Ձ̳go$)ȳa W\"NF.^Ad}&+p~-F}#nA_sBV-rK͖qJ:L3B9 K8P"7*HCmh3E_KQumwojf#@{6$`~v)( *[YٶS1g#{=1QwFCniRǜwnM=aO*:z \?טVKv QH2yaUm?h!U@]V`Tzfv1l(7BAv rR5̩ |W^?0s.2ޚ{>XÓa($5L!!Jg7rN[Q{)|lmCOb_%M|~ۭ>s#6_œ]Ǎܽ]W3L0~?пT߽Ɛ^Zv5kau`YK(%B<+{OP^F&A0%~ЌY椃u&vFG˃bC6OA{VP2׿{ߓ/Zh߾5o*gdaǻ0mT ǥҲ@{<ɶ3y!R~Xߵhh/2\4TsY{dӚkHb(e6X(IIM6?~*R+,4-Azޣ{Ll馞D_-yYpte I{m_3HOGyMAgOԯ|oE ?LT0g7sI>oTcNI H_Q,|G j8 C0ڏZGo@ I4Ӈ>+uU WWLG$m @јy تo&bua+˩E,r6'i6[Z I+:@@pca4EwYNnc>n%==4/ i{+`s4$̕{8KSTAse#[9g յx,{.i=p6aFq^d nh7RH"v\0a@5QW.l!L1#k"5mmDfpV̫ ~ˍX4PWu7PL5Qz* Ouc>E~ P\*}YUUKNI.%+&CكXҞ[!,B#3[0d5ۺIqrJ*$UN>}s`%G XP"-ܭfpn/pA"EviKr^R^o/RVz8=u$|Ƭj{go϶D:#* 1/ݗMdaƿE-HPb) ,ϐINvӐeɇOq3K!0KjzUm-$XU!qD{̈́k7j$#Kݑ%sFEfKsDEk9#-B!@ȶ1Q"l\*o+&p]cϖߤvٷa07aCxIK}JK~c{ myNf&^8)s)9m[mŨ_ɩNqkFg4<HB]]|[ќ6جʦ[r/edod4rrf<#YεDRXM CV/bոA^ 2ڡPרwТU.+tiXXp_PB3Ydz9MGP7dCzÎ-^wB=hx~W'z4p=N1kwSeE6tBoETNJ 91 ?)xcHD4yq!eZA'H1̐cN} &c0:Yt,^zkDNvyVx ".IfbK'aN1#$/~iN#PR^&:SfNl{p0wLhD.V1.޷ A/"/I'}ڞ]zA9TM5¡Jz<),X}rS?iBAq= 'Ҧm5#T0haNlK q,j 8Aw.Hr0@soU^5eB+#2_\h͛e >`1`t5@},ȪS̍+Ƚ3}r?t< GR7Ë˗GPjEk~-olHdO+MrۜQyWe{ ߭0+=85`[+$# FH}$+gs.qwq48L뽍r׷Bo/ k.C/soc\o2u:  4(>j?;]zaa繪  SA>I&SF> ھHй;k: awߺ{qj+_#}`^{)b ݮ1Lx]_K)Zo`B o ٙ=wL# \$*2ƘO&h'>/X(ҩ1ˣiqʷ*~Bjkvȭ )lM;2BO@@ ݍ'.]ȾZaj .Q,N:c xr"Bp ո-lJ `~4I:ۅ1+ݸbiȅYVV#w9 0U^b9Fh y~mIv3ޟfF>n\y"T K 6NǙ(@)LƸR05X{}Y𤒊?d}N/9$Ǖ$P߰056u x9pC;k絘X2C~뤞dK5h<śSG'zNjiꔏ3]Le3K˴FS,[ "Jy*^m^T=Qj)بPx7.8',Ci% AqVXy_̹F^Qll q ;/d#^1: 5:D8Di9p%_.A<;׽ȓy30nEnEعE5J+u_ׁudKX.@Zev3-0K׫`+I?9BN$g$CcyGhln :ft67oC{Qu#$7L!W_q Rj-|]=ƀr=dTZPWC؎|^hS05v  C}B 5 Y0TǙP#.o0 NYWږه"9%GjpeV@>Eʃt(]x6YRtƆj}lgR\d /(/ :"X [2_Gya~Ks2\zt*B#1D؄l e7eCV5{b Vu<΂6n-+Ā2Hl%>)76>;V1 ~eP^96f|<g2Г[I+yҷwF=Gu:Hg~~kcS$ SՋ|>CZ$ԕ¨RF2:L'VZvbAu6f#T=nxw!ΕG%'UDGj4N3WU;QN?"5إ+HEt2#uo2\_YDLGcͮ&_)υz;#6XDnae1OگO ٙE@muZw˾ʲlTNҐQd ,j}бNAvIO2hrs ?w)oh nIw$bLNV5dTˁΤh@}OcuFSଢO:IlZv+* KaZZYU!:zcaD Xx{h8P2)=l5Y5}ɱĥЇGQ_YK7:lLVMsp r?r}実Wݵ껙#qK[[>f mu ~rZ#W x戮yMbLCdRltgjyؘ dotg"Hen/<#M|Bb*Si1J*&1_X|#lEӧ7M[ ,H"̊>1 kRV?&oWCs6Ur,**ŝ+cň}>(}lч6erJ}X]2[ShD/di|En aY|vͷr*OK 2ć.\0_ 6DP yr)oxҭnGjM2;:":ט_Sƻ-BMBb/ F)荬ّpL.M2BPE ԪjG|4sDPh'&uX$y,\( -eRT'M5Q\5νX&L4e"TǁLQUdnݓX2!y`z~~йOisۓt ƌ-X,;|OΝb#;@<_$ݼY.3H0U Wģ3)#7+Ίt6Ђ>$ o9-POrgWM, ^_c8 |З0&ZfNE~1iv(nm݊w8H 0,36Fv9pmڕ@]yqBV[-;^i^q`V e;EN*:od> ۚGDԤ0,( @,٬qkd?B\|-܏CНɭx̺Tsɽܩw]āP/a#\tf v| zdTi̸"<]R m w#'4+])oBVn:B2)`"7/8 A@I&S6.C*ߖl. !Me×+6,w{[ -bg?ܨJ-ՁvެwZU-&`Q~?`@VxZ?רY"=QW dAEߦ%ZSBAt/ŮPȼwEqH: 78]""W*i `) jKERrh$aK dՈo6 cx;^"Ѭ܍C{8uuk~~Ӌ<>maesVX9hAT!B?LoK^<1K6Sh $D]ۍ(̀,s NmoܹO=QR>;Q4[qRctD ' rS/kgk5@S`xM+xEc6k \ĭRT&F,w>EAgU1fyw4nqlk! ̋Kṽ˰.Z2]J zIHh]=ڴ_f"ɗՌ? 9)-1nj>۹lY(U&* iQc34r1d4^ތZإ3.nC .Й"f,-ݥՉ}TGRIh2I^CN's |U?$0υ50/+WX)79v} /_Nk7Gszfy$!oEpZ bH"wz-M1ՑνR=.9, ʛ*+VDBP AaT,Aq·<7e]UF^t17ş~}r3zw8Ig?oc RUܛ5h7,Zu ׺;l{z] 3ߊ[p~̂$(I fEn@ A\Gºy!WH쀔j*XTjLFP; `Р, PBMz]K2׊Xy+.!힐.?j'-E}ʞ0^IwRZr~(%xIs53I]d¹c"8U[dprO4Œv=dyD.(N J7I 0$c'#9 v!L~!8XeursZ%{GjBI'=s3P^lTR`=\Cah4kQjHYğ:fe7P-uuCu@we'Ll8ϋ pjuPx'?KcV ceb8XKiwle_4O^|-`\Ǝ y7iMud Vqh^&wDggLtVoj8) '+B5N'r2yGL46q?oXvfD鵽i6ʮ (4B7"*'Wqɼ{޺1+Y{Lyq:8e]B&Up%%730.{h;CZ_Kc:|U1f0M {ܷIئ#2v^;>3-N7PLu\;'U/^áUVb2?U}%hݫY fsD!y %k[jas8/`6{VCn^"ݳirϳ|Ne Om Zg7ƭFV&YR&!<  \:{cƭD0 a0d4 !`P E<_M뢷 _;OU@M~+:ǯk:ãnksPkSxt:bM~w[FDXIqtS$X" 9AbI&S<%t!lMğfueiz̓LQ4Dd)Xx&e A Bգk駙_`Q"#պ t_{6|]QW.E;i~U^4 rr< <'[n} g<(Ń6SS@zDDZ?7鐜aL4+ ˖MsRnƠ}'@ZӨ8?rf@O' ]gU߿;}yї7(MZTzx ~ګ?9!17U5!};oG5Ku&5%A¨T )B脇]cEχ-^[xF`\#Ȣ8!C{Px/5hl7]VPF-YhsRGq% vV"FKB ?NVB`e뙽g^rTyx4Dbb>|$&E-p%X$Fm&TcC$}Z&lrc`h)X#$kټc7>1|c\'B`.Ӳbc8}CSO(R UW_g4Jmgxj-Q%ʊʸHU߼ҩj`KI GSPYiJ#R|5v% _ؒ>Iu)xq>ԣݝV>JeM .Tkw-6Cmat8f^,$.W_ȶsmX6Ǻ27ۚnߒ:t%] EB29s}zjJ^톐ME+m>2~xoJ7n?1#15?r̡,4fp'{i!(ڥ30в7&4Z~+$hN{n.`xAū++/bFolTcI2six m1V?1d90 ִŠSE":RCe__"&gҺDY`c/Dg|Locwl!#|O*rXb<Bێ^hRMkӴ5sQ/3䖛'TPZi_&)y0IY|GeY+H7 Ê]H(I'hWi[ڑ%c9T0HA&]wQ$XXe˵(`ΔWs]ǗOkG8 9"AP9-`:e }q(fP[aswk6-2pR,% <3Aal6Ӈpl&:)`Ivtm_SP׵|̢Y|alMҴ\7\˗ϿokIkv?ug>9>Ċv(@ydQj#E SZk %{{bjBLfzN|Mx^]CҲ#/=HѬa*銩6W!;&#_EfKG[I*E6^v"nPMHRn5̳:@qZ2TQ*NsJ! Dŀ("^Oʿ@8zˌ5n(iyʉMbQslPʹN(26ޭfA8 K+%pݳYGk;L [N.kD,9F3G]A3R/Ûh(2i'oPغ?Aߧ3iLՁΰj~`CZ-Ȁ2O"I`[ƈo";.j_*.*U)G=p3jBaK'gnSy,_k\V6CF(g;BA n`&W*O+Xw,$(BD8M3&avT2\pF8Xz~-Vx_Bn<3ڄúiJ&Io =KV0pR'?{휰xbe6+G=e ߗ1[CcNZ7cDwI3"r A0(4a댫%ͨCо#D5wr= k3Cphk?{<| xxJq?[@ rRl9nzyj"a{L4pIW%lKˎXzAzMLiCަu旝^CQ7A֫A_7$kc@TuT*(57!$GMMyi/OmԲzqBi(_]04nP{77g})`d~B2-Q^pP`DR]1/[-i?];=ZQgi[q_`G cEՉqgY(ǎ)ݺ M;,Nt5M.M.ԍG W.?\I&r- +}osNId̍u RkJ_,P$p2m(wݝiKD4= kˎMIIK~~Śǰt æEЈ(;=B=Z RNnv BDO֍=8+G6XN!<:&86* ˣX;A#J8$Z.s2CGl[Z Y>\'0Ue<jjQ, `%T%b X)$f<1 uE! $ocn';IB"*)qj TUU?ÜaJԈyYtwm9J0(Ih} YP%:ByS,r& 8 eo\)Z$ UX#6k<Ѵ\$0lL,M͢K7q[ F# 8v%:~S{S9ab].pAWynPE+.=hb?dR)IM5T] iLGbfXΆ!3}^ٌrefNw_3#DŽtjd |k:f4<`xy>X!zF[~;.lW5~m;q&NQr&^H \]ߛ"ӤX px?׊{C&9cØEpRp3b4ˑ' h*n+Tov bj@`d?> {Ke 7)6ԦWƠbW1x p<ˠnQ5zA8\,HCZS7^Ŵߕ&Tl҂dKs=fpAIy:5?5T)eM-Uh/[?ëӑaUf= Í\RjCxf`߃ag27c36$xL1S̓LMy؄vjx/ _(qҙbC*پ2aSCu=T rg&FmvxtqkV&vMxbeX, 9P79wݎ>\LF#Q_jB|? t|J0M} 1h92vF74+tl/`!cR۫ ^C!'Cטfm\ ?6Nt٭&*3K70\l_z9fQUoZ}&^A#}@` D oHwTϿv$T?{8jK}zҲodb+ e(cf.XO|?} ^b@MI׮'z^aOLgy*y\+佮(NwvwDr.ŢwAKtQ MHӝǴ 쩰q5V}$M ZYTy֠mXQacQ`GaA0mw=0 O>kpkp2|RL\?}܀TxgqE+IP5h9'PNNڌp&hp4*9`'H19V񷓳/uFipK}"=q8BH .خiW<2a/J4!s~ț*(i$|ʱW(&C$IH8&IZCO(k t+]t\ݽda8>㥢VP[?V5qkoY!MV"$g]q>:WX.N-ǒsw9l2=fDX+ZӲ6t~W{4^0G1a:8GM!1ojX Wii\:e IYvS˰dMlPnms;6hgsp%$OR^<ƽEneJ+nBÏ'cpW;VK` A0Ed+z\RUQ>ˡ:d W,waI(rd$+m(C4[$b=8Ŏ ǒJ.N ˄dM@ Y+6=E~rlk?q {tBIMf%0cDP^Ԉ],%&:#XB Sib2 6wfoJΤ:2h4]CNm 2gQG>G%/>lvDz e6i^9-dG@RKDދ%\J,yx" ~z]jF/HIB_Ft Ҷp&`Q3_ 1#!&iͷ@^"RxvcG00 jJ'j!^|MA[hRE3~JYwȚ^菛lÍ*^CϓWS(b\ OoXM+`8@9 2zyl»(3%0(4a) w$_| zR]S+ŏG)pfG\? M׻TLx2 VPs,y{_uu\WA 8aD!V#s'j\[J@P#%$v=2]m 1B ^0;48%gy+$^ يcc>ڷsԁHO\.G0 yJgIjBx"'1Ièߖ@ڼbBR佖j? Xӎ2mw6"ѾMt澼~rÑ'Fhm|6^Ik:;j5ܺe|KχΘk$"*)ᯤxES*<5L] jǤ&"Pu54 ~aAr|9JEgO8'ĬyVLB N YmJȜ)HW(^#+秝My$Uq Ĺ*>?{ų}5@@Ԩp ,( @E ydĭ2UT.?z}\>Q'MσsA0Ozv.׃l_~YI>uW|[QE9fxwKJyb2]7`x'p7 ]=}s}iU* eeEpM,_I7cѹug`%QYT4U Xxe /l n#d .P@I2VF!;i3WT܆zᴱo.w^;6w >J3ת^Rm4Eӳdl|~4{ WJntvQWxU]uge6s<]^52l.iZCuD(.*o}pП Z.9l}t;eШuRtEr$  pAI&S<%)Tw?bR3)i,6I %(̃PX7FߑLMHFpu}\Q?hCi;o#Pixp,>u }=2聏>P}zxVr \4Uc/ql$ʌU/p*ίF;ŧǤ^p8Ne_BST`کG`+M!o2 pg DV$vΥkLdꃢ,&\}چ,o:)֊[v =C,:gC'GǚEqO[tHd9gb+ ַ!$R.8j3&#.Eۇ+-߾%UA$} 5[3:)QjxȯɎ6{; sNhu@Ya:('1s&GMQLM4k@NHڮAd_wkT9%JLXks9q- ,ɋGtwIQcQ&rV^*_pB$V_{ꡭ50J)E 8Kob!9qj2&Li2sw6N+}lSe%:fP/&*f*;n5n^WҝWIZ 2ZZv>up_gfܳ E\fKJV8-%zPH]@Z8]7{UNl]CQiN/LaBq_;.޼Tч댘Î+\7F%Yߘ2sp#mIM3](>U&/:%Tr_99F+jH2jds}3 Tk[5ݢgQ (f[.'xqǵ'O=ۡH!c$hSị+K7~"qqC'CB8S@`'N&%H%s9W/kv2O7XbтEiwj/rY9`..5 *|Tʶ >2-"e{Ҽ+-ȊI7V 5o%%N mKbS,L8EH(CJ5pMG测aE;PBň>ɹW '!C$n,QX3{%-쥖FPimuT,jeE\r ECq8.Oμ t\ ȫNź,BV:I˭chpb黦1(2k^۶app`Ƚ~$ a" :z L1#E j`Ef\wt6}^u4^V =56( E)(•024#F%"щ٫v :?L=$xr~zNj6v݀ $~^ M:>qD;z˸?G4.Vp3ŵ:w|O8p9bS?o^ҝ/E:ҴouR1&WsR'0_v<=5cBO :kl:`pHϳgg}D(?,#OD[FצNne8^|TyQ vf]PdJD@M;TߣީCSMtՠGCD$dfgЉ%eqeЭ/]伺GFcz0$P$B7gzܔOBrRIlB6ͧV_L;?6e*[RSjax5{<=贡r/?^o`%А8ًɱy_:ǐ_C80Df CC0)]bW&.'3)fN*RCI]eʥ<p aYP 'Q.j72K?4*{f՗7κcNaMxC' Z^x}lw™Rit7K#c\>V0~ldE2Q[Nby=XKX4ArLjq#-dObrrzFÌI'1DHg' D'`*P8>4; ူ`l cUYd 7)Z7(ys'^r5R}IW4 7QS~SV\ZeJVu}{,Hjwv /J?'IOMz :[}rqk kPiP/CVYo'w [р`6Ā(Đ@A AI&S<% {&uy&.S`KE\C9>#èpЖ7? AQ٥@66R,%ܛ:Wߘg^JRMŁa| 0ΰ1W2r1*+'3A$i)ٛ UYژlmC-07,ñ|S4G7L;ڷb+^"7_ {; ]μn\6a_Ok`@MgK)=ph:d>^+B{AوY̤!?l b@#oWMkB GC7Royly0vld%' \u>P dKRUϚAaEߗzx P VllEI۽#=Uѭ]b;-UzrE7d OQLEx/ᜭر%C]Q.Mܛ?߭^~=Lҙj0^D?rK[dm!m޸|R_Ŀ#@L):7bO-Ʉ2D4Tu<\e^p3m<"tf".o*|X%v-hς?0M̻s4Qr ?ߎ&5zhx^AM\EP1G~NqH#` tO""rtr@[N WGeGJTDh9X؄!{cK.<\vSum~;h8E28w0% r)[;Z[9A?y 7 9 \O_mNSܴfpTnTqޟ4**49g7~~O~`Ռ-קijlw_o;uecRm3otb F͸-#8ւ "XZ ԎYva  nݵ[h37_EV)`o颒ʞp[ =J9Ph?,wG2$ȾU[wy uo'H ![ ̇A #mh"4_ [SșYuraEEs)fcxN4. n `LK[d$&R|$p/R7CjnXuxUT ڴS!Y~9 D9m=ܙ}*̄jƴ7QAW!43#Nd"!% R/?E3m6"sr+[VX_`\4x C'㱗"T]M+ lBm?y!TzAV gB,f@P} zj]  񌋆GHL{JU_7:ĈD%nRrVdڪ U_uIk7 Qzx(QJ>sʚ@짭lKW(ԗTJCUAs"k'>-\૆Rs'"cntxN;Ӕď尡 0@uGm-l6,8dE7,;3@c1H-J}*d3l o:W] 厸v^A ` /!QǐOmME+ɸyԦOKZX',Fp ŏYom%mT)'CV%1C4>x}qI3^ .I_;EJZC> {SЕ1 ~)Obn>%VִN;<|撞l̀ b뜰gעbd&moqOx@oڂڝ>=n" $ӠJ5IEF[ڢF4伈ĪrTp&tmQupX=X'`]*34+0 8DNHuvf&vMn3QQueF3>YJ7.(hDp6(m>K&RL8&؈[+)*Mhixs; wLLJ qטHƳ_-K2n*f-VMa(_"Gἄث$/䅴ԊWep*FD1Bdw[$ZY+ e&.} 7Jq pxԣ<5bwPd\XDț>ܮ6IY\O}>z_ih8{fܐNpLdgA`o.cYlÍpXHB>TV `YhR_3$Io)\ ϊ׭c~_G?СkOcїXl!s jieP#U,/Suwhڴ"&a@pULɔm)e')q!9pGu !5 z# "JxT=.X什#Ȁ$`n,(T&غE9<(ӵĿ:2⛐Ty,NK);֦i#G)!][ߞ@5Hi ;Z߳!"혧x9MyU2ؚrJq$!5^M(;M̚KDʛ)R/j[ߍ;c}Cj-'1'ǿ^_y.Fh|< g@@EsݫSâI' jBL3UG Y –^䇂u"]VlE-Z6/%@dfrT> <=K|e aQ֪lOc¤5E'J?W,$nuٴ겔vQ#>LPƳ ѷzH'V/Q;G@|u+4a҉z䡒Xw|~hBt !H@e^TǙ) ^:%)`h]Iv)$gpa-UM(lx+BHo#6ཝ'cz_A[yB($#P _Vӽ4LKCv(ᭁ7މĈ $42`0fs2s|a+1I eT@=` ôCy*#[sg<m=U4yx$M3 rVA>,R(blxQ/om$A3@Ni5񵧁 vƕ1{*x__<>)}:ԨV `Y&'s*qSwrJ꺥=~76-6gK,{}4|W& xyg}F#՛er%TPڗbn0S.+6Ci5 ;淲5ם^nYBQsӱFwzp`@!QP .aA I&S<%3%QݼCJQ/3p!4Ⱥ:C :S9 MA7M4 WyYuCb؄ЍojIf{j/bqMc?=j H z1: Z?'m\ĿuG[)ImzFR[}zFgmsܖ*C$8,o6)^Tb,[Z^}51^FzŨhtTP6ü7{d4F*8 u 1"Pz0p^Lz+0*2si_sr1UzZI( ^кJ.5FA,6A(npAI忊PhlQa 4l')T'8:< ut/9I9ǯ-&W/h<;Nu"^u>V ~Zn󀛩%EGfs}_ÿ̖}V60@2PkUwX_k >!>5 ZJ{X/ꝵ-_܈&$K9h`nyݧP\/ȴz\^֧,OՅ]uڂNRl?FB_T_\b D%%(YkZX_OK8#ލQg22eN߈XHA]jrG'VhM dI@T0d XH& TJƊᔺ<}dо n^~kgY"6~㹯vV|./]2I50c^nZo{:d$re>LxCXR>מg98Jn(2]!E @E$r +2(4`R-Jy:7.kq+cMH{B!>|eő33P* ƭoh_t88S2 .H$@MBE 0$Kvw=6䩨e< T3BmY,rø@`{?o;1[`/J`PzsrC&/D5+jBD w0WZ]ҖU{u3>>d<ג!;·&$Yp>ֈ{9{ZQG#GLabA0Edz:ˤE&NG%d7ߨ.T\?"W~Rcrk~{NVw4U.bU Twċr. `8zA hL='uค+kI|Z@D0CL@p A.I&S'Nf^wP '-J1l6L,9Sj.T#Kp:->R&4)Q k ~s@h:*⼪vX,OJ> 5$&r *ZN*Lt[VU4->1rȋo,)W(Xd/*VtCa4^h6`x?U9]SKuyĤ@z**fb9LʩNkI%Gʳ$@ t)kW/>˯\ΧMZvDr ZD_7C!zui^@P7GCi+6͘f2݆wjp\M-nՀr3\)ג (= to $?O3ysJB5R7_DnIX![n%U@v xaU6@Y $i Ab9Dh֕Hi5>BuL< \6:)Md+ ~2wAzѷvfyg~٩ ;ݸ%sd9O`[+r]O DQkÖ"|3ӦGv[@ %/mS'%m .$ pG!*J t*i`uʜ6 1Z8K`K-Y6OY&=.6 dƌ-bw ~si}НC7(>kiPk&?y(,󃀴KG0N-gc-"es&'1SDE_]OՎ ås~N2wশ}HK"?TAfP2׮0]ۄ:jы }(2DWV_:a?ϒ0$e^h_$E H?&+37SĒlQ iCl2skH 0`zpIC!b.(AQ/b#?l&B54V?f(O\Qo^h`q%Z]#Դ#Ww Ôbq!CJN R)@<XշCkP/?7`שŕ2yI)zc#^ byhA 3d)\bF]W Ki\YIYN Mb>3'PPtk<րL]` .3|YqԧPTSi}_&i]ydHwF U H/6Ÿy;{E5 l&I >e% 6e52:H1'="~mtz$~Ƅ{\hu&2}f$ ZY"OYjڌ~r kvfj5Tm8#g ~sŊۖŔȇDZsG}BĻv<@?QF\;Ha1QM#_PhaIEtLSGi;IiA O KASh_Ş?IڈL2;[+Z MYlqnޣ騶A<6CNd+ƣ.x@}Sf3dBG~Lh[&Y/TyB_$p-ݘ qXz%/݂]_'6JbCd;1uHr*TᤫH- پ# qouϞ}.苌}b'=`߽".ӳ9K.RWUgnD)3tнvTx,KYvW-)ȹܺL01, [>GU ')!lOVц䚩tlē~0; Aљ1$s~eE7XItYVYUQF#=">=À.(luwW.Tb6A{ o`ΘlJM 6m)͹cϷ4օJ~e{%-̋&Ϲ"DOz3tsS ԋQVtr~vTXjPģR`1;#-{>G1(A=Q͓Fݍ%x|ZN-TDjԕt7;%SI 3^GTc{3.K M#œ0_o{jU-Ng/^j.T;5lz^>=i<u2MUwd޿Wnn?ƜC S"dc"աea(7~x6T$?p bT>u_ bZimmJs>[di aJ;v ~56#[beBB* -`~!OQc4(nw8sTM1 IQ"#2 / Ί°^Nm.Ciѕ>S&֛תc'z4ˮrUdE`e_SApx}K<^?#OK\c>3:A7᭕\Ȇԁ#5l59i3W̱TǓp+A9iaJnN O \u`l!jtBdl\vHѭt둎k| %‹OjPɞeӻ)(A tddŮbӸ]L*OBc1Tv`h[=@xL\YƮ|)^%]{lG.0f>CҒ%8 irL$ߟ?R͙0+@-D]t'$(2XT~4c)oǠw68m .[vMs&wxJ7:C K[̬;?z1:LĞl݄ C. ]Һ<\~3lvIOu,Gl1 ގC2xISB/ 6+t@h:w_/< XL.9.?RVRK]1I f+{{Q&[^ !bJ ^C{jN!@va1NSHr1W6.Zl>ƪ b5{ \ zA.b yropLyzNp7b=Q[2b ,ήa)uX:^4"dJ_ҦF 8OC٠aIKZAT< 4n;w$[^M?MZ(_>{~\;>W3UcPʸ 45x&o~|rF_ic2W"jF 0nBoE7tz|x0E~1l ie8R~ {&- B6B N#iцimvR_:|p2R8s5ʫŴKճ]g#Hq{CAjY _4s<z})鳧pGJ5E6OG0u ˿f\ :7!Z@ib d inU1pOA2/Sm+UPu1Kླ@'Q4i#~ ۓ.l7w'l78[.Pt6|WFsL3+xΨ3y#.Gj2M$ɩwʘ~K.juI60VW'qC>~A!9OzO"8*{l}"lSU[6 _z=OBd&\leWB0O7]6[of zx"*P.wKrh%>l*h!z2OZ VPWݟNP.햃]o%q/E9QԚd IF6N| yLp[33IUaHHaHV4 Co`X(_uuL3 F":jM_kĊ%2LMj$V*{iVEB4ef!9V ~Cy].}S*V K嚳zA⃗A`Ӷu*zʛ/I7RMW˔W-9>LW+RTB;[1@LNixI'8F@;kdI K aeH`SfaA7V%n)}\蠓J}aSmTUߕ1b̦?/dpĒZxOX׬{\DOv5.82(4Xr,?y3vezoҮۃ x+1s}bGWI6"H')":1C^rH}.B>R[_A MFc8A0g]r3dA])HV_R;n(Aq 5rojB|GS]YPo?8pb?-EwLE'葈+nlI*d5ia׎ Ra bgC/=T%yLNl= M*k&NGDͫ@tWIƮٗ۩DbzK*$mܧyQK-jRV@9 &MlzdUc$ʔń-:qމ[#*!!rN)Yϭ^u:V?4\h@mpkJ(TX[gG|C DNL/u˅mgT1.D1ڪE"~ 0fs\FsCL)LR, %cX U9*ys"J  OCETjG^X';30S# |]#x3T^.4`˦$ڇ8, #Q/WTVVeIa2s9sgubD$b!y{dXg|r+DoܼB (Nʳ$n4|Q,EtǏNf}k V&*JXT?XW_@w}X ܇AwqǢ_0<G_\kR .(4Y)ߚÏ4tC[~9op/>rS]Ax `ArI&S ~2ū%OkO!&Nʀ,NrD*I[;lqÀ9RGN+-H&⦠}˽VM4*QQJ]dXmNJ" 2 *a͐b$Gdhr*ߤj`Yا5.[ڴ@{ n.$uF 0y?8KI鴢ZHDv:O-d[P2@8ƛ (CqrN~2J(6I&ƼK%@?2#ԅ)joYfyI0ڰl)ʭr{-C5mىg$bϏh)h8 W/SPJar<(hk0u?]frk6npY{>^8K+^5߼:N~1{1c13誸.rCN2E/au"5Balh]ψ"ۚaSэg!xәU]@61b=šL'ƽ5Dк yg$հ&MglC i9hYi4{X[-?odR%z,c<ÌWE҆t0IadO ɓȑKpKC/ N@}-?S-n\>߯pHLNDr`o6˅]CƮm9|DҎ$+VxW\*ގE|~8^9tJWliVPvQ*mmAS:^ pWch4wNsm M%|::VN(e2hr5W+ta6I$<^mzHO{hdF aѡ3e& җ ;&1$c{i" RıЭoxSZn{A:]^N _wX >a˚ʫ}gfiɜHsH+ 3M.'!)Ξ J 2_c5\"6<+ v z59. ԰$KY _ff\_:f 67f'd+YN"S[g% +;z]7;>dLIplV5j,_TdH*2V1HZQ-zuޜ Aab7]eXeB rex?`\VLN<Gc0=0ּ*5$*OM BF~mI.jC$*T%Y )+~YtCPG< &ATPvle*dP|_,&A6 SM4 ȱj~rZ#U5 $QI }D|7^.ʹ?YCJ*l2iEˁ"UY(0]Nlk_,y=qMjA@LC;1.ϥuG𳃻9­Ԓ@ޱ3Io7gLDcUE oQK!. rs t3 ~Gn'3R?mN.;zE. wz?u "N4dV+bqO{?fƒ:*8ܣB6JYTfM)?\-^I(]^JŎīiF ==f( $UW&??=`T{N+d2؞HZ)wg\.0)*^CO['3ԱўbT >؍2'jQ8 שkb!?jgϪm_>pWQލ4_k>FSImg* /"e NZL>,⹐q{RD38^mFFYsǶǦm4kbpZ- 2XKܘsjBۘwL(s0Ҡ_7,]j|ĕΣެ[gF;]R^-{MaW\2@QeMx{ 0 /9@7RѨ+Q/,%ʰI{ǺYgAB6shI:~@[~g"r١'woŠ0k.R6BA{ U0xЪv%1cf_ KM4ΛPKgux|:m(zPIo5nQIz xnMfl!8OúHk/G%Ey҆`ar?xݪ8+щݚQ1Ja450Zmڄ32I^ ZK#q _nΧq ;'5Jr.ç6A^ =LѾ_[*hJd&kNv'\6)s/Z2A`,ɒʐ9gt|3_O \mKy,F} =5TbMN.F.rmૼ'$y,kuY_OuYgҒG=k.#3Ш W>@@@\,t`R-w/BHt:gUu "6?R_l5Ƨrv g!LgsCdJE{0j=#F'_GJHY\q~Et &j"SeiZ p)f~`\CдH4}%0CL`S=g+7GVf=LF־?q.5-`k1h@ AI&Sz*%fe#eAk|g3{s^ϗWr٤,+3TY$+(voB, dΘ Zߋ[#_KyC\ri2:GALUsH1A͜ZY1 ? AH&aW?IoC4Hn e*->FȔѹiֹ& OU (6,thw*n2ꌐA$v=Vdf\Vm&F-Fk-A` 0WnfZ~_a=t/+HՀH~3"r*Z"XC h?.3 Ĝ1C4Pi⟻qbuwX=P}Æ?0;iAq+.=Ǔk/3ߵrU/3H] W װ|{i@olSSYU}J?#3D_w! U^^ҟ+yzjaQ7I 3L/v=jHߔ#[Lmo KY%ſB(dN4EؗA׍\FO4awŠB[8Q}sDT GgHc'6<08=X Igm ( bԯUN .l.h`bu~)`h})-qmlqoxG'a}V,$üD0vXLmTSh[R@2"xǾo>|ihrzPZsRX"9#Ч&@–u _#NBy 0|{AwV i>i;^lzZKiAV{d[8OhND1oE^l+LS*B[nSaPW ' WЋBb-s|Ɵ)`|grdgq6YO뭌WC<*.EW=v`,5Y`誂y/Vfgт)4)T]^N$7$(؝$֜UIuVd4-o1XP]thJ4] WUn>P.'RfKOܑ8bxx68yEr$d`rTN$DC*Q sJ l{C$Hzqvp{SVy^lPlmuލ[sLbqkvߋRxm aWHy9p |:4i-nkgn>6dYm}+ҩ!9 @C/}U[+7J]&|31igQ'Ȳ]\[DpJ0_p&(q+˟Rg$rjo&m`U8o%#qAe 5XJ; OS>:LGd_ZRRgdu,/Ǩ+ΟrJ2U tܲ""B [?# ̤yqEG]Ys [6yG|dmD"PNDf[s5?`T ksdX1ȳ$,ڰ숋DȸIqOn __)& >: DGܻW9l-K=ek'43=_ڣ$N%yM:@@~|5p<*iٵ56F',V_%rn]S g=Mj߀;b)!sI*dp5cv=k1A*ЈHZuMSNkո MZ#,ȸY:WA04a2R-qVhY,~[~ s1O~av̶. s);%iXFq]H1IYoY c툩/d!h gU E9Q8PF1G4Zr#^26UXt]6o 9em-=ŠŠ /P{*R{r+PwvuS&}މ5=rvcݫ/_8T6F')sJl\X^pjBۚ-Cvz P ?3A~l']6hraDxqe"@@ xR:)hCV^{P6.0Az\xg9ħ/W g 1,[5fzb˳ݭidAGJucFu]냃7.J(jb6cT@(o5OKnL+X(5"Q GGvB$C:Aŋ(]SW{|s"7"ރ:u2yB5T*93$\=LJ>}#]|LSI?G _,_X:xjV8~t@!E)[R#@g16-A+? M%-6XsCZr T!ﳌEko9CL,2Ogž}#x?>m%]m/N |ŷtfݰ,cC&v)hPP_*aY?b(/dcƜ'籥QX׶]TI_@z91aLMr &4B2+A^Be0&FFYw{\(yQL%Mpfd/#m[]ӶPŖeiP'7YR GC ^Ml08LhדX0vգuyO$Tbx*'s 1O!u`vdpy3Y1j< Ά:B)U,.#g0pxd!^ؽH$҇fh/%X5``e(UR<'C08,`R-jq2t%^eTVtƷ;JԘZ269ȬUEEG>–aN>2 ڙ꜖s#FD.ȽTٚZHuK}@ : c\Q RqЀ($9O޴t;NCE{gx/{!ߋkp "H`lf' AI&SfH /J+[cj+i1͍ >2fx~]]SgRzV  Q-m+uO}Ct5YtyG[怴 qyw2+j>m-=0?avOhTX,2 :qH;*SP2&&BG,$I0/$Sa{%:H(mH"\u(s4JȽ(L:6kCF쬦 e[4֊Bp'<\o+7MYSG$#а`A{$6u ͓N5&{)Mb@bQt9bpˮO=9ePz %REA!cʃE\"K?~ά]6%!iVDzb8ew -iG"֛&ǮtzI1O z h{O>V¼-C|jiˬ-Y]ڠ}CʼXl##?:S7d+V2wL]t,HG&*!my$x7uq>ND2GEyݫ@P "̇T->[n O&GWT9ceX΂9Su„~U#$gmerq~nK̽(Lޒ˳if׭Sʰ7ȈPF -E!n=ү (NVfn]hƓTګlJH]K ~zӭ}-EYTlj^/#%Btt&Bw="9%خa)o$ҫ!~<ί⏘JY24|P# &HeN8{/Yʕ[1g4PxZ Ⱦi, !Go[c΢sf,-+=3nNdI$lD7Ү(ȿGdC8>+<&}"VK@or05#t? Ot6,>ZPEh!]* iM%%_fԆ$66F,&o#(>0x0.nӹXY@V Vî|qߊ.&v1ɳ$ݷ$evnJّ}Ydoɤ5L ʛ&Z.i"CJ@[w|c{ux}RZw.xɭhb$#iws4mkmj&˙૗z~.#߷FR{I( uS'9V$ۣoND]7Vgban2

    >`^gaϖ$n_b>ۃyh`)6~ xo$s_Uz$]cꉧg1[I0`nreV!OA%_|ceRHPtF_?.z-JEZ5X"5CZE72_rr = RnurrQ!ptx3%l0P e^aʄ [┰V"F$Ţց!-=mL,\ӧjѰWjݯW74{Bn)2GYW *bNgYq.8T,]t`4,,zk'h۲r;A#Bp]NB^qE*ʓMos?f+}"`jF#<&o?*C|]~?(uDx!3ulnέē1~nx J5+[BJv\̱6[7æ<]p ]dg|=6SHn5#[soH.wgV "k?;8NV #u$`N~F%tzǴ YXJkR1d0P~. f<%aeOabD y1 =I;j.3g4qoqö&'X Izu@oZO ۤR7oԇoݔm{|LSk* J,3 K#TCu} ֡ӸR/Hj]إ,@,MkV\UU[Muwy֠ dMgmy΋5oͻkg=&Pf5j3"7^Pw6Ld5PIƼ{tE80J4!uYMb 嫼{{ډ)XP 9.ǚ:T[^p 45jB?}Ztx 7(: [/BO7/ NoXm*1a :CDGGjp![W35xrF7 ̒ڳpC> wQ:J^6IIl?":|ۢrښU MiNMpS5L 5xOlxMIBb鈺߳0d`L60lj0r2(eB'EP{ΑV'zM `sg#b:$Ϙ]UAu(VqVnI_,n(0j4GO[~a6 hQ,:E ø]qLۍ< 1>k٘ Cšy.@=~@XY(M3Ԧ( 4DջQW2̍WT G7ހF`xV f$n(8(="& ցiw756nJª#W}pd:/*> rfUwV7X|p|^2 'U䪓l AӭVLZs*).;1,0kjV Q(9S yû>\OIi ׭6]bkv, f5"b*W~D SDAeld0La12-~j*xFeְ4.vN|o*.>y2-|ŌacCz1b@9$_53<.0s,xƱ {H$54hyHb:Bt;?IzUzߤ\ʼns9E3ɌBAPE"WpoAI&S<%>Z KOe\S5 rD.ZlPKX!MG>LF.֤0÷"-1ޘ*?rk"<)f0n> L|K^K7cuҵcΕ߬̌渞p+we8>5}jpc$cf0߁Ӥ$n) F*^!b( h8r{Ox',Z"V1㲖BNYc*'6I!{[ػI UE1Poǐ( ɺ;M5ޗ$/8i/=*Mo )7/ Wc%cCLy:x}UrzqbjjKmЪ+rSu.:;I臇,@G 9+ WX3\gt?TYthޏ呕ӔJQ'l;AFg(X9tFA@,5Jfr /ϼ_T o_)w=WD5QxN]T$ Y]l=kA 䬏/Xv< 0;Ivl x1mŻ?]B;{T4vO"ףr?:aQ= ?Nero8)6aǭZP{.uqfLR}v]TqH3i^[vό6sEJ0 J]\Ћ%=pdwq% F$*)^wQXUIq >.`k$*.ngu%%RkuKLœ]k(WtHtShSع (αCziR>'Jɠ{>9?[Yv=!8E $*erw EG̀n r0S8~O~d%k(f^Z0}jZj;;@*/eDZ?S†o PgOwm֌)Wl\̍oM;D$ ΐkw؄ڬU 3TF󫚾%Qb~ѱH$*xP"ck2x^M KZEH>$Q66Q(-Mɣ0_:ض`kaʇ<4[p/ QF1,;0 ϑ Rv O$]AYz|`>q"kX{s:⼜A {p-layH;H $f(NJxrn"$$f_IJ^։ 8{w{='eDqǒnFEn"7{rg3ۀe_;W~VWq= [5smM_([cCmH=Ņ bFG@L6Nѐ <>(Ȏn6:4^{QO>u:ZesFpA9 _ McR1]p8?{&z= N ,]uUhyOW1Qxc݉k $ ?׊cEܮ݅yftH^IiĠBd"ʼn!G[O$' zaDl:B~aSRj[1ԮrĊ*vƨI0Y%Bv.E h'Dzf,'ZA K+{%r[%V)t6/u9-^~_ 1KN-,,S/D\XM]Nq'q5 [ ;_dBd)Ή^WFӔ mzuf~p֭qq@5@pjBO͹ >~lXƛX# !FK25M \}؅eL(D[iV=7yjg]VU=j(Pn!MyBARĚ\cpgQ Y=] 7^|N yOT6]ZizGQ5n_)-A t1;#,IE3"Ks~8THd¡z24 ݲ%/#{`&|-acKR.ہ&-ɻɩuo[ԁDn`V; e:Ů?(˼41I ,Z<"sRt7,IW =;a[kR9QW ^n*).$Q,DUלM3Qhl&*capfK ѯM1 ^Lе,Gf,u:j 6gh}.\y+d\ ~zclNUf<^iy%:=Iᫍe^{w#$o0C}KN33[7+u D4a@\,(  !0sZWJ'M޵5V+/M>?&?/y<ŧH#d<.vu瞩9Ƃ_uʛW?!eC}E(a`P4{,0<Ϻ#l3H FZp+@(LP @:T A0L P[5dNTȏoпi۞ ^85Cymk5i#I<%iȮHECA7~\2ڍϙ/]vM~@a՛bVC@ pk!@)$ "Lp[ AI&S<)'}>?7/p| GC秵Ϣ\ ē QzZ+S|󇍎~^P'WuJ+r^+.v# z/r\b#$V7/ h;t)k$DLm_;om.|`NR:5^6#u5]x"mU x#Li./CgEqjJn~ԇ},J!&~Vq}޶NM{O8Py*s}AvD*9^l AŌ^e*#\ԋR$e RЬYiB-!Bӵ=:S)TזT$x|DD|ӯaˁ{G/^\}Zf[ +Т1-}Yt svɄg>IJ1 {C\xan(C#r?X 2zJiR%\g_*9Yև͊s1Lw>gPnPn!!֕8bo׳Lc ?_L'!U l^ bq+&mbiZnT{~c( 8|"U4kđ¸njn.\s/oI?L4踨QTXZ/8{1<Ȳ=bdQ ǭ,UTkA ӉPA.Ćf >̋th'N 5g~kN 拳͇'#k L5'~`=9/CNp $k].?!;B5s,*Viڇ֓U+#r&Z&0 HjU|| Y5#o~kX/Sٟ'Q,H6FwaD?.?$_N[c`w>I} Y<ku;g͕7Y[Ϟ,8 O~N ~~Hu^tEh}- +Y| 92~!εa6^o2JV$w ?fE߂Їf5g͖"sojbq,uYHO2mG8+<}IL!*$nDM<_~YdÐжV7C:!N-_Z i.m"S*'D~g N `KCYTSut~7<9Q79u-5/u݂ĄR!EmrtX-?H:-Od~i/hg]tn#BѲq5\*NcYn{H`]T\030&I8njT,Vtd Z d+8OQ7f2Tr| c32Q95 bQ+ xƦ2ǾF\J'$;͆K xy=ZF(#䎑4ֹ!43ž?ʉ͆wT>Ncl]_"A i/BXSHU??୩/l_.G-e]ȼ+ 'L3Kxed,1C8M XFHos;p5j=WZ6r7C)ol0 E_+_#Eòm@H ' TAVs53dDzem|벂:zVʙm{y) ~㘸yĞ= Ju7j-I{kmtʖG]-8FyXwl8 F|Դ 24D<"n k∳kܞBԵ\`u(n =#;,9_*WA ?ë=)c^lzOAwu~um/=\mz|̵1%BzO^U͆3=,H Y tގ(9/)ԙuChX[hO@:4&\r?W2l@[<1xe@T4 lA"dV'n_֦EVc7?}8NRU:iwsn=; qZzk,z{%ayjvfYmU_;>}آzw:$AYWuG+w ~ϓMbK PU_h(B . + Z@p.(4`[W7~?w8?u7—xx4exX~MFG쬰WrKڕ?Zl=Phia]9-'|gŬ ((DY ),ɀf҄(6|UY5S5 rOZv!Yԧḳ1'Y'kTR!NQCO=`"=CX jBz/v w05 EeLkIr JXw:]q{x9DNmӝ*OmX4 xgqKLxY&CG+Xol $Kc4|PwUps5^V2XMޟ`rs7͡Gcz xxk8.zBm%MgM69Kr )u ZVL32&Ti `m@ş'8!1 RZMFLÎڙ-t}=~2(:\YϝȴՙӅJ1 _C[!֦H%k`PC^sW'!+N,s\$H(QiGF١X} }s H|G[AZkğyK=a* 9.fOT1zohy?e:~3_ /)EJGclۉ 3jT4 n\T8̂GZHt : 4] u\ 92< GIRwFne%ݦƍUu+pzo+ #s]T|cK ݏ{bk&PQ]G[saҷ;澩[Ȧ_vi-=Z.< 5 "Wrc A ر~vvA!bW|8b(rSVڦ~FhMd@%g>P]&1II GBsYijTDAiUH^u5F@CW=4ۆBiluvX"L'}:y Dԫw̖:Ev>Ҳì=$ T<`m Jȡ֗| ^ {?"­1~V>ּ\\[94 g Ү0}݅{֝PB$fDz8m0W>*# >]cLHڭ[GP}Ccˈzy֒6[MA, N'r ..rܠC͎ !SPo}n;d4'ZQSj*N dn*)t'VPS V!p10RkD-=1胊2ʘuZ1 iєzXQt O.tn=wmylUTJw{( peAn~+N.d"1ZlpOk$zPxX 7gW(q#d!z~GZkL2zy ?g"J-'v]~]7q,nM"!mtޱuLnRq+<cۗk$P] 취݉4n'\y}ϻF!?C_HمIY/E.U{loFpSC0|lGp#spL3=OHp]|mB,N szbȿs7 N|8 .5r (qXu^[LI(G=aҮ(^A'Ws 1B<"Zk6SrhG{SK %VоZAzsm ܩR]j,2 Y.Ny>sZr{HUwLZ:$50)`Gyv%k_xL;#)Q{1wA8¯H2l+zl52ۡmŽk*Q1eh*eV 9͏DO5:;}ޖMd i8uP # !e"5p k@ 0St/D9BbgՂP=+q%0vP:&18Mr [Ϯxne$ -Bs`nʴ)ٓ'$lp(xӎQAYOB"6y u ;b_d l8AR.VtE T-WY_7jl[^ :SDYNnG;zْPU0\ܯ h LH7^t].F%bI UbOJkuJt+rg1G",2|?LaN' ei`|&`&Q0p0VJE{J&y7p"not>Q/41fӌcjv|bGU)eS^o:/]bh3uy= XU+2]v|Q9)zYA\0= 4r ͨjzp=j ⎞7'=ιzݑP>?m/@wXLcsXG;jB ~NJQ Q - ȹ+?|ӆ\"(l/R(@<Q{ _sB[I *݉Wg?$#̍?$[͹ Cb0Lr5XUg2nv*[L nrG!hwO?5pJ|nt| or0= e*DL)2H,uT3ߍPKK3iIfW *ѫX=~bl[<:\ZUU`PyŶebp{r6LOacb$;>A-diH&_|cIw %+ e`V}vi1ӋEj8WʓPƸ_:3c0مX8P@ .0A>I&Sb9\`~xNlO20>YkeȹEQԗ KbapH\|IJмGMOO:22Wa{@Q4Cn!L3n:14DS` Q=둳`-8VZZu$G,ph::Su㧤\Nc)9Hy@L/Ts@<{l^/QiF;#kUW a(,35iNnd9&t<蒤}%n49m+ﴥD1}V~xcu?3V%_~Ye !K C2 ,6%q43.!YYAl>4]c> vΤ<7% b 6?ʿU|PR)[8dF&b鏬A:f@p`?G2}` ;xbb) ˕Wa;M/>G70ojhA: OS ^b*s|к6e|)W WfJvCi)ē W;ٮs7vϋlmYhNŋE7K)mjd :Ŕ|b´2K|ڻ_kɕc$:/&m ‘yj(k~[ Ʃ3rRSbY><#{'C9 )./=5м.:[ m ,.`g`!0|$ [Yt qv ۦ\ws@x:9 pV]Ȇ/(-;t|Y1[VrzP̵&}[?,ׁL-%FsYK2&*V͏Vy̋b4À& 9C$YmyG2%z+ .p( XK4^$pFu ݢj4HI1 X%|t  :[5 NQmIWWz] (lQd܉#f^nYh#|DF4Bz xmAJ¾ W'RA1- VxQl;xfA[\XUOZ&cWMjg*}!̲w4!JD@Ft;Z!WP6c'!efIy}tșz6 iCbjb>ƽ{3J )UqUømI)qPB/ jDRV2G*~@B6C)O /'QNj8ӜReu,= =eY2O#)_IVpU9To,K*y^_6Ŕ$!}0(1Ϭ?pJ W4~/IOkЅY&gp4 JsϿ`A$n4mvyi$s&¶X|t]X$cCkSj!vm⮄tBIÁ?e6Gs>   m#Z8$ڗnRLq$/ ,NP=[$tv(pjV)auXi8~#ג^R=lU¹YUyjDԟcG㪆Mk~ψI1HoԐZ-֝AE988;X59,Xjo[:rwxFʩb;Rmk hZ4Xꜰ҂F? v0;$VSG)kTl$04R-Zq뇰R[u(oڝ* /4opr-Fh]UEeYHd)nTC"<+ϝu$C 4)'4e[8'"'MRX;=l۾FkK:6>J8vtm *5:PJԧwe]1Gw^6"m_V4_UmXC(àsȈĀ.VJETh{*QM7goށeѮR25Qk? rqU JWGzaY*h!3p'۽ AvAnMnfTf6Vkׇ*D8(NRRK|# ~{]-~Tع.`\G/W(pYo% BzQp?]jB\z =}rh0Y"G>saOe{:||:'s ɰX h j{MnE,S Mɾ N _ZE5Oᰍ(Wyzh8PLa5f(:A@I&SЧ .kw=mtǴGCnK=_N/0wdTjb|Z 6r#Y&rˋTW _tP<#fbӊR?[KH+br>5叅qgDvu`?V5YK:᝭#W =-%$5[~c΁/7Al' 3qN=!ftďFۺ@~`R8Z /ZZ!`.%3)`^9ETA],DSS%Iq4Aff\o']+DΆ\/ 8Oꓪu &?Lg%lsbCnuHن7v M7HZYgdZ!.Oξlu6Eu_j'3z[)Xiڂ,D|Z߈X&~ ?xp,ͥHH3c?⵵.U]lkwuxc qt>Oy,AzI;Ǎq6WYR0_eH׹Kɜ 4m]$l%k<2iZ:r5Ϸk4OFϞD%W:1ݔXCbց0Lz?|f1xX b93W >,MZ/\TiŦ~cDžH{W)o%k0BʰH!Ԥ".7E D %~3pew3T?,' _4"\`EԢ:2DZ;`WGN|B|t|gL9 6r"V.X"q=lËkHÜl,L%L:c4lmx숤^G֨Lm n\yΧ[?d$bK6™4|r~YU^`()P"8fh7 c#TL0cf@ARF.8; u{IXjF I 12E~0(`㉺E8va͔bWX:_,JUSU~,P OnxkmSW6apPjB>m!{" p7 qC`ηJ8\Jw@ v_|تe`.M0!Nĝ\%577?|ņbjgL$ 7J3|P"XIA(A Ǎ\BK+ ngtĵ_ RN`9D`Mr{|Ʋ^ϟ7(CNM"j+[5#b y%}AROk '`D412IK ঽn2wf1IE7 `]JW P8Ѷo@@0`E@HPp6 5e⍶4a ̊lS1֞+wZщ#) -g;Mq5.ozQ,@ 7)Za3bsFۧ5$Di=9]jTo2B^V3,ôN xsҥcg2 1!J2Cےh Q3P>>?( Tm닸KmXTxW9e)O6ǬVc{M)OShupRX>Ԩ6#2"bWJͫ\qfJlQ4~|>]~z~Yq^=HXP8x ("s3/pK _WK67_ p!5⟬NoS hi|ZPI5` gWBlxX9^X׫UNԷuuAB(r {i@ol hHX$Q0#raȃW՟yw?oX^7[-'.~M ߴI1M:;0>Ѷmz!l%-Xᗓp@|T PuspE`޵w#-jTX0(m6YL,lɲrZmͰYGfvM;qk^q!mԽ)LtC5?Rx{%+0X( HȾ$&g(햃K`uAXu:^Sm:!t8mv|L\N _PEӨ310$վK6^7!9(}LRPQ09elL `Ac @W./]B,hp:)ۋoUXS@[\O?VK$ YTُHl@ 0`j߶79~Mȧ}(qd? fЏ\iMOF8{æ))Hl;/[[Ok "#ȎQ^0%e/ʕg+pb`V󷡺Y4ϏƤė\ ^(,fWLΞzʳDe-lΓ]ϓ'N=eoMU"=+-oz٤W f=,?vD\= '[qX}c F)&ׄ+pȒ F&f$9ЩtYT'4{0r#8k^мOJDf~@wt#fQtFln^^5XWB7b8G'| ^١-xF&B(r룂o QB MPY4/b6,)d&4T!lM IN? CBq(aQI] 沆xXKu Yё{yv,KMJP0>$ .Y~6N=`o@PĐAGVw_E-!?u~‚b%||L7_7Si hg&njŒb&& *e5b/RB NJe_U׿[l/ilgO̷Hui/w֨-=& J VΧ} 1SˌqvuKP=5~4-EBFlo霻#J/lvL-jF[I *evPgN@0v^YX s`RlRrW=[fR4}3ـ8U?IC8uG#{m!z|KlVa/ 0/4jmRW$#k7O0CBBR~.HLTu*9nKϿwfB* )=w䧹3%S׍~S1NM[ܥU2[S9 : 1z!)-Ͽc,aDJ(*l&c8`獓ˏi?9 +./Py}iX aJ xjjBozdMF wf+芙WtTbY4o|u-~3SL8yԥJk)Pl<ZZE$jr=DhŤ"YdP 0#'IEvid32 Ҹ?|OXZ7IG;vLuʞA}>WX r8j'Ӎ0!yXg,\U9Ko^%L5#'JW]`WQ[4#tn_oΕHQ8hzuRh3teRy,*ʘ[XX*(^y<"sg\F?Á20hrnh+MѴm!# o*0e^|_X/صWS%;I`S+k.^ x6E )U#;ZT3}Ȫ4g6b^)iINU}]vG2frtW=^9wj_Uo¶7P^w&?t%͎xPH}C 1+Cq32H.U uJڳă#K6#s{IN2[`C#I!5ODe%ؗg(Y Q,F2K0io'F:&1j| ώ\K]gʫZ<ۤ6ӟ22Wz= 8qu3Fo1We dXk2&aRAI&S5-РC,8M('cLY/ǠNyE/{m@ҁmݚ{U; 5]0)gyiǜy"N`&c : ɔp4!% 5X!Ρ3:^n#ͦ7zpQw jfCa@:ti--=x+_q\Cf+wCn,؏u&(?EFLWsl1F﹚D*Uͱ~9DTP㴉|S :o/G0{3uBQvu; f(djU)QCRuq+YШk{B0CBXVHx:CK십tnpu@!UC+_NG3iZZhhx@5YH67 Gξ%uK#5n]rH_v.z{e;RT0'4&gNrj9}XHZ ED-޺[ھ>ɆB`]'L0bkÉt?* ݌,>&zqޱVDyMB]m#χ RU+o䜆/,)H, @<$14g_Ygñ n2h -X#di_zJC{qWKQ77816f-@c!~o(%77rM!5:3q*{ڎ•Cv?‡iO)akM}Eàw}i~A )`'a/4fD|xmmHv>ˇsTӚ&q\f*t1\^#oM0>ە7h2晵G5G۹'7N5SŪkVIA%%*ɍ)t*pA)Ai;\ DYTվX[U"8zR1zUR<ٲӻTa9a}MQ1L_\rCIbDM(^arPl %ͷ:)m!oou[qMSm HW.?wF/uhT0 q@*Ix< }_.T9ֲw[(JAm?Ziq8MsGR .wV)%ԫ*\O ke{:2lTaٶ(HwH@*( 1zju\sp =j쑱jo I/+*Ig PaMF&q XH@TXDih˨y'L`z1`lٰ_#K'ch{uq0$jBroT}}G~Ligb#xX֬cF[DBtiNifU^ST+fl9GGCY%׻J*'3˗d׶r QQks >>Jkr]mG[s(REp!Xajl$; ťI1ʚ0;&,Uj %ѿINiɼ@ $9wFzEY% E+miS'RAG9 [~S4JiǝzU<{[7 qR*%ozYٹw &xayrzhiv&`Va'F|pAI&S X>¼TafL,KEA38$hmP7IW=R`<nq!Qz$B͚LiJ1H`+cʣ8Rt˲C$n+k#޺`,|x斷Z%10IpV<FI׼UO >oOGĪ$Q3Xgo#E86"3ǻLKU 6k4`"Z\3C 1݆*6b!wǗ*6&Eï-pAq!!gNB9_~P=򒙧uxm7duU&{/MXKz΍F>`*'L\zi}h,P)l4x<r 4D״,&di^X('ж 5ŋC_sYj͢thcP?aN^E|i[b[+}7QwjUYؚ^EC$<(G 6qp/˗ᓨY*$t'.&ڲq̰٢4mS|"͹7=`lûH wȜ5Q<[<*5hӃ',=+6?:*ޙ1Da2!SG.0BR)^42j1LEtnҬ{>e[V'hr}[`fyH1KU" .ެC9\ꉞ*4i|zWyO4㞔y]VdÑdQe&)c |6 DV׽&rTnZibjIE\QO-uj`[YˇocPNϣ8 [a?ibqt`'N2Bvbfj KJMٲZ vm>̠*5]jBq (KVș~Ҩ{!_鿸 qj26ëFRڼ R _M,Bm`LC\:$Y9T*;QiJc)#NAuq?NK.&T,ۭxP~SmZ(RE>yi_aE.}.!đ?-ϳyp̹Z۵c : l’-HDɘyɭu #LfVza̢{Zmo_3x.~ex?͈9OeܓxV7QsE#'SτZh]?ey"տe6˴)/r=nA& \ܛi 5\%%h%<)3Ƿ<Cڋ >(V-\-l[~v9}OI$~LO /3I~sY䷺o 4}ezМ)ڱ!(Z.68?ܕ(룂I̖ oSD;u?SZiZTUpJڀ4tx鷧r͡vnAqf i%Kd,64Gtu։:s:5Fj|QHls-s#V5BÎRЩO8Fjw~b2cɞ>mW}0wɋS iQA M^G1\6׆Z䄷K"6BSP&R yLnkD̷rNY^[bR neƂ k&qwMQXv*ߡ6aC|\Δ?H= Y(Zh8 c>tfE.PT&ov=tq! m{0mه'W5lEX$Ei4]]CcC}G1/ ]3v2OYߨ+܌Yw@#d$k;)H0xoe-6vi 犠45%s`& #0"(y9%'X㻂XF@HI4ݯYz? jV!:V<~.%yoɝЃgp\K7/0IX!p{VDki?lG~ͻŭI퐴Iқodbz-a"Ԩ60,$ %AY/5i׭U\ĬjZrR,n[ڟ#ٰl݆p<%9iF|?8JSʱ$[iUMO ,J e8RP62Th$:px? (-/Z0?Ėo9C~6Qv;fEixuBB1T*#˃26 Lt"ReKuwUh*)i_l+B73ױz_:suKsv]ݴߢM]x56hG֔Ogpx(JNRŧ蓐"ŞA߳C7{TIݏAis|Go<+5ܠ ZsuRvLw~@@HtjBl󥳎e$P:˝&ÖX׳9Yݨ(_^GCą)ex 66RL;ۑ^ߤCJZ"J-'pZ #Ҏρ?f/]XGP/"2]!jyЧYh#1) $;ZGo9qVnrnrHyja];({ss.@jb$ z$),% i.ŀ ?l\EYTҥ4!Ǩ`J镡[0,d!U,JCdwwᕐN#r{5gStnp$xEFǣ7ox{wldlB<T*cLNA;?X|ɸ%b&X|D7 a(:m BW^dوrūcǍi0%+x9"%. 'uuNfSϊl@Fd2zNAa) [zQ] 9&MT7X@'D܃4ք8rJ<2[eHm :ڨ2XQ nlAsU|:1+\ßS$CJoG,JuyY oߏ fV<Ǒ?)1WT|qs~V_2 ()cyo`% \/ YnFt!fxd2~lV L&iL o}EE/ Gީ(! ZCj&?h@[š46 (%9u1S+-ݎ9X<k%ړ֥bL1J19}Տ R~w:dB֭%7cL#ѶneQД!t8_2S%m2ywx 䋰3|uqY 0Ն`cR/4;D ÄM9.=2UmТI p F/*Ar19!"&8(_U({vY9K`\ )]Dvqݪf M38^QgF> w>K58HabFb3lɈX2ABQPIE7e %*Jgŝ+[ 3P/͊,cɡHԙ>ԕv4bӻ@BVBʙY`"~EH|zK;2~Ln9XuS`հ0Wz.P>*Ѭ"bPݣ(-^̅Q}$ݓ+|a 𚄹Hژ |o<NR ѭ~\Qߢ I{ kz.q7sΑ5J+3X\#4Mq=hqS/WlC9Ş)PMCqV(/;jIIHĮƻ#@4dN̩Oa3 &*S+Cv!R77viYsoa3 ʹKEgQ[⍤pp'r W+5bSC@}Q{i6w4l5s_N8\_^1-_EVJJA6M^+=-[tfŀUw#q$EƎ]]n5ՌyJ L _#8+=PP@x8y6"c69*td~kª8\GW *[ݭ=Ac9uZump13fs5xlGDYΐV"wC5(3WA[ xܨv笲ӗW5yWSA!wZp8#Aad:J H| R{`45RD)"˂L~w"ĺ܃ԅmqH^>!s}hm ,9qinQGd2j3'9c>>|P{Y T&+|.Pb[FA#z&)P=ZjpJjcslK~1B~㯥S(_3+tji ~GhLDI?!A |s=)㍶rIB hXoEmD }nFj1n魌iDpDS'I+bA/ޢAX}n̒Q3alv^M /aQV}ʙɅ47a7x^//ˋODf^|@Ęxm/Aq!!.5*hM(zS'Kb舥çvo.C Je/Y/-427ŽEa+3wP$Jj8|GjŸ ڣ]7atzJȋ"Ybn duv==lwl Ye~m9ۥd+5-fZ\ux٠C 5MX;' iN=^|_c2 bvJ쥅HľSKj!@-fd a4՞(}7#Q1}$Tse 5/{||KH Y%y>7F4E1 Z+o~{,kDeׁhe&XPl9GypeWH_,p fY̹z,3Bژki-w{2 8#b%Sā30!r k5}WISV e-bfB2yP;:(|IHROucwu=WI*z|C8rBImqۗXzu=fIϒ n)r-bC?~/U4TW~&O7s;pއXy@xTp{TX=mzsɩ{BQ)0V+aXF>|ßt ۝^/(3`ef]4M@B da03 6a*j6<HʭA;w<,*c~%QkFX$6 OiIu-PZqAn r:mWWz0 4x5)7A+]{RbuC,uSC4ތ5^{PkL}z:\&yR^o QCJf={EAOQ?G1YS[,YQrsvNR@ƹ9v-ިӾtx]>xr 7 oHt'v^ٞ:g6ur?ԍ[AnpCXwΌ}$7?`]~4;tɗBr/ Ad(l,ga'@ Ԟ񨛑eJf޹[%QՔPߞG"C1W$*N9@2Oqub*VcߓZh}@6 W8x՗73X2cSGx07yKH R-"PC2hV!x ⾖r<8iU@RJIwʍidJwG܊oE=0ƚՌ \>- .E/> ! A C/N5 4:Z>Tj!C m/i˛U$=0Y7Cz'}6 dq #w m"KfpN sZVIJv P~9.ȇR FPu(ma>pCSᄅ~ <Ķdֽ6CXDfؒP9~-42ZN@ipqdJ`}Ur| < $}Z8vd(9,WТSn{فG܁8΃4b Hڥ C<]N%1irQ*:S\t_Rh? ~;KebQ'!Z |wu[D6sP@+HW5Q!CB ne03}9) .w;6͚t)S89) CcF;2|w{,L;0fUe|mUZ0 oGPi,6s=Jw4ٶ60{"rOy Vܮ h'DWdn&OayJYKl&.2-Ÿ|}%!!s|+J |#biFu5ۉ7T; pcS Ι cP-M<$s*I""@+NG`dza9Ѭyzq=߼c<U=4 ?OlI?[rnfp78D0ԑGv]ؗ? ?$8N9JFm_6„Mݲb>;ӳ8^±c`Y94À1 , ["[1' $YSX-Ia4vZn0L3à1}7Gu&'v;pp#sRF0TΘtlBT-{xNtNUo>ԼӉ>f ~( r9$,[a]Īe$q{ FBkԨ*jŝ dRӗY `9sg@XLcw0 '8;+:ceD2soρCټyJ׵%ItrS)/%f;bل~Ϡ>k3X+mL>V&_3>,cNʰQ|jM7NWwx@UkvjÏ[ *^0b-hJBoUmIpH뺰D\WKWjU=nMwgu@#/FGQEGC/*jƭDm"*^vgXbSlY*T+EàF ӹs-vXuEvxpj>PR[G5LP:`dyI=XUBX4'nz> b1&Ks `?(;RI"["޵F U>V0[txY!uBeK.@0#X`D Pq3yԱ\hҡ eʱtTҞDXFӋGe 8'h]=Mw^*>oq`ۮ-l-!{\0"%u`,Pt I{/ʼn)Xi߽ *;(E3bz K>vDtjXqQvN0"w>aY0&uEmw/& nXjw :48G@F9P`ёkyx;[b$Si &ٰV>7ok)q_[$5âV){zJ&^gÿKàg[<6";W^?b1"a?-|g}%GXNPmf1̓BM[@Nڟ?Grt%)I/]\DC6nJ08-t|׹h ]t/ nT`T\*p]El<7ch #ֲa(I-08-UǨ j/+r-3m\xAUDӲj0#eD^IKBiǹ›C 6qh,{tݼ~!4縛s`Չ'wYKs̴Ul>Z@DˆhůJnvf/ +[% ŒǺt;?_#,vgIv_<ZED CsY=@I2GTWw)h; 6=WU!8)PQt [Z0-ʘ[?J&VF!HSL,!z9iQ3MmdSM fdl{l#m=ؕr)\*? 7ؓzWڛz9}D5$z}o-/{UcJ\[FmNŵ _miPNq`Fx0]Ivp-xl6,me@/<հIn(+, I RA,-U|w qtl|rX@zoC _.E^问-~o~^IQ*tf0qc/{Vw:b'ߟ8R8*$VÇ VBeEsMP)*Bs3iF 29.^RQ #BBN+4܊XK_skVT'Ui6 Ql8[+2Yy`W{0.+uZ !dT,KS+SsjRzQӺe;=,P;j dn|JʫA9PDvLk}t\eZtS:;S}_ b aJM]h"NC!; ӶF}wZ.r(=5q>qa0vJ!UcV&PpiRz!if>_.zgC4^]¾+h Iu-R 86q"ml ("FJ.1$_dL}K ,UJ\E_d61͙Im4W^ÝcU^}Cxo}}FH%Ψpb1jՙ|NFK/+|n,aiQͺ5!V)*AJ\T[եŏPi4gtls8NZ|:w}3Tf .gᐒJymT&oIx 7lѲaZ-bȹ^?nøH$Ql0~`ca)Դ)ϭߢYx7 *h SSJ.Njєzqbx񆿠91_ɶ^rFkߣS3j~Vszp\A.$@h V.F3}$h ]Kw YQ/>eUѧ<e"~-§֔1ٗL²ouԈ$8\h>1>$tMř#xaS3`g=sk2d3ȴ I.E.2)MSٽF, wgE~>WQP 6G$2f b5xY?DuQq,|GtLk`3K>T.zxL}n_y+1?ulm2QFɝNuxn;Pc2YzLhm܊+[!|ؙKwr7<Ʉ֊o57SnODlmoXxD YJ_Ȁ2lhw42zmGX7ooD9X3H9bCiv7u L(mpf؈I!+MJ],v _>hNo綰F(b~ok=rO-ܧ[mjǻKTx?8&f#W-ֺ<2>q9R`,͌Xۮzq~,Z\%U:*C\Rq=]o£)}F AY:KGtڵM.*ڜ{PVSNqtڋ417:/(3[jܵS-A:E`IEg إUAHhRYekg]3e0J-=K %*|B6Œ X &UBs2Ǡ͓~*}bu N*ϹϴEx.vr0pVc@nJϒe<>H[gc\Y/cq/ij<#,̅d1(oeE9,"Vh{2jd~O68g+,3O Z^׺ :`zr' v?UR\ %&tNs\M~[ VnѬi7+X~a-ffD+ڛP^<@2VmJf%d]CݠN~h|`7&{:r+Yڥ$4а7Ka[yyoV>HNrSI@&W=MD9={U.=qMZ)ОM" Њ+p5UQȳ>?&})n 4vzj!h?3w[i'h 7$մ>j rÒ$Bݲg ]AV*  tFW;":nEc'WdsD(#iVBtm?c+Y994=02 o<@FwtĖM^´|O(o)& RSh wlwt3Qe^cλ ;QU2 Zv&z2QUr4KIy3P\`A{,Cl+Ü{,KzDO=X(̹N_NPr#sxDMTjM]j^;ecwTYd 4.q2*oDrB; 5%]`zq0%Hp%'6JBUGgp|2)w8x?nP2dW~x/}8cB$BzR!&(3fc<7[0Y1Q80tإV3ZKHW`f ;Fw l$G~E?+y6$Xƭqbի)$^#&Gn7<4 , A(PlyԒuu$2T]5L _nVdj?IFS1ܗMOwbU7Y>~f@O{{_ޟa皗-옶 Qs#^~7{=O2΁Uay KFܮINk5A<3 E*2{QV!H Amy'0U(/iViԩ䶺2.)en&f@o[\`SQ>2@T}{ZobsOߞWh(G%Ck[- A9k8N9. yAy$6q#1D '׉(/$KvV$hIYTnzyb,pH#շ  q)fBq -d 2V5BO"D`漖~h[q&R'u-RT~HBw7Ph}3rk> 8*قb_&d#A0GI& R( t;z?3jkzZ(5sdi@¯Ə.q28iϗiKVY[)D[c<,-PqUu R&pu\VY3O\n ȁtVWN b,7P-= NJcd d -p+nXI[Ah( &iqfH0MB%fJ  z}mp; CQ _x]HM8|ABxOochuzk/|e|)^fJx؉k1uK(:,~t18x_Vs; RZo8̦;Kf9],Kq-6' c274۞\p!!!)pwBpݮةUGɹA xSȁrn媾Փn/.f*EY={J&hle`-{ h{Nծ^suVz:`XMu a%kK.e&gUksw sh1.p-ؕs Y:qz˲bJV ,vDRtp$XY5xIRr]dx+yʌŀ&iNF`#1rC0f*Eibxu%GjM!6JTa)hKɩ*LceL!9f)!);FfU;O$ЅlE,m^.$1) T *Kғ%1Am2@=,} YԸc_ܣ=G-Էᄺpo"=pS0 2O瀸atE$r-Zi c5EH-u6:x@fVF"͞Ȥ<-Km𠪮>% Ux3m_cڿ rLUa0ig <"{7! g+/561וKs[<6{L'z:z4 !p֘rg)gM1W<[y8zef3ۨA ρ&?5RnY$B N?4@ iZ%9`HV0t% Sc-Z+u5bkwbv|CPj|F/ab^=XtHHyicjEoZBwLa?[rKa´Lm3v"-4NS!hJLtV&;|3 ="^u NŵN:FkWr{S]E8nk*jkV=k|~S^gOsU}qz- k[jWlT3Qniݫ?MR<4y톦n>[K( !\? ;OIVw'A·z:o8nM+% QƪGf~|pMlyoRa0K s}h#l `[ 'YaW<ݥ(e=鈺.56JaydщkH!ԋnT\j^^d-[, r6WD_:uT&`2xWy)L6Uo̖:D[J 7,} dG.hr ""%T8F1ҫ5ǫ T~>gX B8FŒȃNmUmz6lT'v+"6c.k|OE\g;!ЀX\+'t;&t gTj2t({~Jmy?1x}k_dǤՃOvu%G0,`bH8 TW4kC ~E'-+7(#asi}'d0 ٠o LZt99,.̜ﺪ!i00r-ԫUYjuQ _6+l:am޵ Zsїby[js#m9 QEQU-U0Sd- ۔GV^}7r_ 9C??LuN+~M<0ЇsXAq=_~7j°b,`)M` >5 2p[ʢQ<2+ew7'wemRa$-G[2rQj&t5 gʃk[m@¬uCCW7s<Zle:m>ڲ+x$ рTYgfQcm܁XX(7@ =ApJ &H*D8oXF}<{GOd`÷,gq.~ٷ?뉑<(pWtEdE1L- ܂.V{9% M>F삂alq c9|˝jCzSCi[0E:y3˲=gv|à[8X):Kw] 9BfĹ!eF٢*cMdbЂT)zXVlƜߨz˝>AalitAJ3n0K!3kq%%'y &|;?z6cڙ{qs̚{ࢂ}砹tR>064`rS_P6'FJ~*Od NgWcn(Ֆmtnjzy Xԗ,9ᚌV iySWA7=-sfoo"@lS U`c#h}`,*DO[Z^?0X`8jElgji01g/7Jn ]W-1WarC6H_TW DpcM;{P! SA0 к97D A{)|QUO&IK)kQ=[ lZ.JPulVC޽{UtWO;LRv6gW?p HyǪ haqdh;*ѐڤ/ q렾nZ[IEfnӎ Z췡rA?T;3 径; W|k>ݬt(xZKnn_W<>w:*k#ljI%;0d6'"' H{A ]Q1qbAIAlL }Ww^3m anbvN_S=|tS8);Xm,!~jAܩ b@/Ǘ"AZƺ:8Kd1}7Rо888PV T])Xֲ`Z*irpjd*y>T;.|9>4{;Vd h;]5lDónC!v> PkثZZfnXf?Cbڍ\ (L!Vf7%9z5TIA0E(t*2dOZqد$*T;2f4w9u1n*ȓs4!}Uƶ%N2Z &o`BhHq_( 9wM\vL4 zBkGrtݍKFʃ T\Ĩٛ16#'wO;lH0`Tă6T&}DÆ NB4W!bXX.SY FwT{t+}#`y+U)$xyp<67"%4|SjN_P[L!p|>eB'ݍ?C1O-95bW+A?l.VͿ>;3}Sf .]0 $[ax@e(:e_p T9 QTpɑmrNu[SrUjNgur5ҊIa<#dGI^s/XW4]4B~^ӞsQꙢVV;e#]LNp0QƳ2ӎ$RGFS@ϭt+<10 ^7+?-`:kXؾ\.+: HGyϓp\q?#2W51M&A<F tlE@+R:,/+׵.g4tuš>'cg`c:ո'K89¤]䴯h.mIkyc$h4}u ¹S |tc~xi*)k@3$*##/ny>tM䝅7+9qH>؎\Qu[~J%޼q۟NxSf#d[ק^*a <ly;>lɆ!ZV&B _NuTG!&D.aZ Q@T'b+I AE,Gдۀ2Mʼn'/[ ;Y읞k9# ˈ݁3Xz9;YU nCbG?"'힂i[L\-Еz>[iqcgҼ/T^>et,#*l($}w'Gnj-S\ߕ4FRU},/gj)pnq # c8K?%RY)o4) %1hiمڅ.q"[s~^x*C5*,GGL_,&0i}Ns_沎9Axjp,Dn:1M<=ַ^5bࠎ`f7 \Vu?X6khžQћTߴ%DWZ{LW^$^**QUߡIe~||ϩ [-q4%ݺX;.I[ nRe3c\t1s\Ms?tE-gM/ahxA

    yfZ!+T1@:h pRzz%8DxH"33\Ti.Y1nlfKtB)]l׳vf(3q|xG`EJxIlE`2kN(# Sƞ9p^MR8 \=UE`OZOeKb.9tFxъ,ƳL!ٖ蔑'vr_Kã*(3dkU!1&f31_H5>1Cڢ*~WEkG:Ҟ<:% Qyڇqg/QcOYJš~*N|FӉoՔMm;}tOmQf㯠g$mG[H L@I@~?_f&yh05')h (ҿ$IhmMM<\&C3U-JdVEr14"$MXzb-s1YwJt-ͼ;WF,]>hS7v07=_.W?}V)@CXQ#lO.H{Pb^HKy_8+H-B߯S\S+4 "'f/Z`3<L8m),n FONs:< G3?^!qd ǪF9a lZW(X*E.y_qRliqiѫ!/eGzU#ayP0 bIBKu IX+&)x&78@r O$*l v,$jD`tGxrrf^]Xg.r,Ar" .;Tvg8p Ǧaמ2T;qR0\.:"NpAE,Y[cFTGa^@.i075q]QX tP=(E41au #Trq}L+b !R# %WD)҃X7P+lO/%NXÐOW,uJCލ*b`c ѨQvO~5|m`J"9|w= }0<= !!xʋ B;ĩ 귉s´㌶g/ú9,a4-TqzW43%y&}Q!v<-=:Pg1Tn?ة@^ K7|*0ln\5XSƼ(1l-4)^~N}4'F%_z &HY )ddȠn2[àzLkvONT"fw꒕&ΫV<ԨP p(% *zY7SB(K}~-WcU~QWƎǞG|;ql}HL2yj4Qw=83M艌C$=/5b5j uNn{«B7~Ϟui74pa8 ׫$}bX1E`@L.TQ0pp-tE[xc|j6G߉m"hDlgf˽{4AP(DA𖹮g2L!˳Y]֌UqD4@. BP(C.xVN72LT/̕s?zNEioQTu'fJg*-n/g_kwD1AWqOδuEu#έPگNu:aήz3t> veԥ_gF6e`'2R ]/jEM}~ #_%rjsג۷} O `)oYHWK^Dh㶴 ?#J P%5#(dNlpK\?.lAXD \"\P\00uku<;(Z;ak+t˃`X[7_؞2  b%T0|ɤ2cKvwƅT#L:H!9K߱AxfI(zc~Hq18 )aEB/k-%c cTL-H,ˇH:݁]sJϩH.n`?z-vћ=.yt>DqNyqY2Sd$t&DqAB+Mu/"0ƛjc"kq2eZM³4LVH=qZ]`_*l>aY j05X.,y=MM$ dc-o֐&wAҌ>A&bnz|_S}Ybhh(\sAz@N= RaI˚=4Ci8337)QK6ĸфI$go<3ڈK@b(܂kܱc!onq1)u.RiQ]RS R 5oK)+6ccDpu6Gtya#D򻙇MHU( ^~dRb@tiKJcL$wNhTCyTלWD^YlSG߉~\YEE%iܐՒ83=Iq.}28nVx{ $0x'S}w6Q@g[Z' XFԨPV,eX(#jkk2.ůkPdgu nE?~o6:\n{TPS׫ ˜3oZB9Ӥ69P)_Ɠкx-@NFxj0DuMz8*)@ovP aB*J4@PL AE/n]3~yd*WB8<7:c;Amwَ?_#iT>?z?X/4}i`&!=` g,K b䬄8 ZX0 M~v;E~f8) yGT= ˆjIPpqtEԟC+eOKت?6*D9csCy+6.6nztW9 w=p+H"f&;,isc#, ')~y u C(iV#/2P+\<:IDTl8 @P,' A0$oMs{_ޯq={>OǏ_&߆O4"&Ĝ!K(#tBe]_bTKPv|^cWC[¿uQu_|޳Vl6aYZ/~Dׯ}vM>,\buiG3ޘJ CؕabpS& LZpsjEָ߀`)AxIAlL `?T(e/%L H°gOw҈DlYg3KK5BFa~\V|ϘrGzoYEEp:k*UT "\շk\y ro~?U Ft.QvZTţXdݱF;L'ƬwoEo:kTWi/ZGmt㮞о)u8'1N]BZovTH=oΡSyHDTR@.EftĨ260Njk_+q?dfVbb~/ð]B s忄sZC, CA=s#nU7ii(] 2f }5nl)^"]pAe'{qyxQ:ՐU Z,Ӄ uwL넟 / Ҋ2jE+q4wK՟AiV^FlfB bb-fw0eduFc:N2LWh$Ap<a+}&.Q|toh(,F^_0+LZO~k. yOŭ]c?^14V*E̮5A-oƹJx[5ˋJvWTu@,N@?O{p~s7(!H #lЎDH*s80dPҖK@md$\}@J ^h5$ѫ#C1  m kqK ǞK;ujo>p/dO(}=Z{t%oO %glsDcl3RU×֭Ĵ p ?۽Ci'Ӆ#Ÿ]mIy|ˉR YIŲӪhP0mf7p\™x"&*,HܩC%@j"ڦ3xT^꣰FNN=f`N6[el%O"mtӢjĽoT{<[)A{^\ bEYɦ&oP5W?Q7jZ]%ŋd vb >xY|߽'@.Q륁b #cwi( u 2{'CBNbq͠{'62 `x.Z,6Ms}t:eR$U|e{SC *,Ȥ2VP`+ O€аS-W.|bH")vF01+) BySVI歃V9& MKQOGF\SQ'V jʯme* b[[b~,VXNin%[Jm \?KS(hs\,THe}HSj9m3UELJ>"6n!eepRUqPGU7h s5SME(@; Q$cL{"Ei-fi|</' ;_;n}b7",tG;-3JR9cʥT鐳 Sߖ‰e8pBy! njM?a4tuQK`3;д>/otܮM9n. ͑v-NE.9,vK-ޞ{AFaG,AAǭd2~n{$m/U'RMK:S ƭJ,7.ߺ$DblJIV@%e_/nM Ljl~i4,ݟ[ev+x"5/DA3H6]o@4&;(6G%󻂠܃4(lT=)륯//ٱ+_g7diVEgg.DeǪom8FO1R2i5*} [O2LŁ 4*D6iM` ,.ŭusC{>z@$]GϦ1S.Rv ?N澡LF+9jX iF824)lci7C6;Mn`wMS}hYgf%/vݵU79&D -p XK)4NAX"}kg(8)Lf(#J-:]l,gwf.5M/ڻ"=һ}W[;ϒ9R'pzpU\?Fz.k AE,LB2jzHgmM-os$F=9WCCa'Of$1@pm.Drb=`Hbff[dd|\8jmVe4(p-M4QB<=7j?!OoMCD,xגC.²+Q(^||b:BNDb$#-t:j’Bh{^d*; գ._[)|?Iipꓹ0*0XR-ؑkA\/inԵTxt#$ ηE=KeI)Z`R ?jD݉:= Tq+ߛERY>b6'ϞȚ0y1<W\/K9dR}Z81>d@3Pj&.<:+G}/Gd@z z L\ CutE{Nj!9KYD+: -|Pל >8@|W*uRћDʯ1ygq mu{LJF8ԭ@(~v0`.0R-nR2Qi7>tnR*70 ;%8(Ѱ}>M#.vk-nuO(!=D<"G<;3uOf4zg|L1YhPƺ\;tٹ*Y[:jH5jb߾[dbkk,4Z)}i9ԹV8,yg3JI ͺsv2qG'Qn"+zS_Ku~@Ź2$`g}=?J(㫛vf带Z˾4q y:0oIt_/f=ښAʾ+=Ϯr h*nbN_f"?t.sO: iopVG- mށsL0 L~jE} UXڎWb2əBȚj&w!zަѸNqF#+v `26|P8.^Z ":s4$Z<lGhdb;'@@ `(Tyn?۶9~0.krt9 R&I3Hӆsʶp_cURC!I= Д*HRn,`b[HKÇ^ o萞)˔;/jW՝p׏Wᴽ>==tr}ޛcl{w%|"(:tP$n"#NAIAlL `3~0π;z6?!b@< B_)p 6]r,df'a8 k)!6lRs2BϘOIC1`"JG%8] p6f׾Sn@ #QQ'ڑN~#~GJ1m( 1z8>3XfL)ISȃzfY5m$/K))fy*u{[׸9*;_7. Qfwk3;/޾4$J{c+jW>\[]Gk'YYɐ}a{1M7[ H&HѾ p˨''sD=`KYu.GN/7uBt7„Fs V>ELE*"G(Mw7` 'Cץ\{Kw;H 'ڏY$#f"i%!N?c7QcADHWۊ,kdiu@XsK'r*E'jV: X/)9 :`V 8߻[yl Ӥ!(V̓m1jeBhe/sxk.~mE aH͐"{ທlN0W+f SUr{n>ţJ7/ZbmUDv%Dپܝ}gxֹ>jC}똚*T[==k%CAɴ{ OEUMhj+Ӻꯪ3Sgk%E>׮}w SJN>.}B@=;!T /-#Uh~ zI Y~LRu7 =sxf*jgrd8Ao< d5fP1tDqSm1XSժ6cq.zHzg߫?fÍ@RDO7?UÉɫ78WibʉhյR/'0_W=J'H&lԊy^S^ir*_LsUkXluRO&YӫչetpNJҀ颵,ƁQ@$IKlk-?egn@-?SϬ!]6|T= {^-r y?z9ccg觶DJPgaY9K AE,ـ:މzM%'x,$ |'DQPf} ='>7mGQ>+MDDFG>W-UY,]6بIf½r}墭=l|/ y',R"G H[uJĴJO=kљ}H ci&? b8tNoZQSak2TUѮ?YZY6v/b$"ug+Y s?:~N%5!Y}ms^V_Ble}n!,f @c*([AFE<(b٫d笵'UWL|E;RvQcːQ!TE#/W}ޠ<{=Zu!zp=tE-$VŒ#;mTYY::`sB$RCpʹE OwcI3,ۤp=F4DQ +mKkE =*?6BLKC4?d5&l:t[CST2X,PiwZg0_YK{ ̱Z;+q`9I>`i8ܽ%Bj-\2PEbNO7p!)G=R|͓^ 3eFyPκ 03 Qwo ABXAW d]_yʼn5kg~NS{&`1i-=kPM B#D8?jE>gb6k7 6$2the)qczp~DfBlSM?Jk%vu(lh'Z^q>b%ؚhr|:uq{ShAYFp[T~]/p b*nE2n28NX4B̔bt|8a};4_PԘmZ/L\IRh0\4W& X~,RL%## &e՞{ÉKE)L'+(VRpF5ݓ^gȍ AOv{`%=l2 I9 ?Ŗ:h"`p4(li|K,}Vp~Ѹיsylou} 0F%kLw܆-DYܺ&@\w[1CWjպU*A ц`IyMJLFۃD_zi XF)hhF#@61dY`[Ϥډ՟.0o$Ҋ'¦v,B޵2R!u3&8A$IAlL 4 'CWA3\4[?#u'7דsvV+#)YHMÏ_kw5@\" RZCK .^֏Y&Bwh ڛಀE8%dG~\mJBwg =`jε 5n8=]}e'!B _1;?|۸3D9qey5eQ2:o_? mwmJCYXpv6_iW'٤]K52 h]$NopN(^vnKH@I%3} d @o҅wk9 @&y3(E sչ}ׯbM mZqW8\ ߺ՝[hNfoIQiW[)dd::gH)pDW9/96o?iE4x\T͜h7 G(C # OP蕛X.&ݗ=Hn:TaPjXg8FׂrJ5FTW/I ?&,$BҴcQ}! @ Vwx"H{e0%y렌οQ*e1:tBp e7K|NygLrnK529.Nv=)\J:/5о2gv! NsUy˕"]-<@b$]!{8ZqssN\8kivӜ3 "pg~cȳmo[ m`2z<{ϐ|p|%-c,{Er*M@D3NjoٟSA5TBN7`mUGɮ'*r_DANa"3}i$M+sցw4lEwF}(H]9tľ\RNg[W\JrDsvYw` zf09zck >b=tIg5,񴮝@\W*s(90(,й[v@ oºe?Zl 1 OeeJJtmg䴜ã}ݚ@fJЁ'JN},v g躼y{sDxg|F-pUC(eK7̞gKX2a+684v@M~5QCI%P' `l.V^J-?!q=x(\?atED۽Ӡ[O}Fjg څ sUP3:?O7[WXHX;Y%mPwx.fmrs$Kg_U$n齲Eڋ{(OO.wŌUWO{2=mT6Tn@텵Ya2.Y*}}82 k̽~ /UKam?f^[VA:-l(媉|-S.~L׿G.KI&|iϠrjr>|铞 +q'X8*HVW\r[txteZ?v)Z#xh cjEn۟ }pFC&)oaf ϭ45qpd'k/W'F@KL5fkQ1OIPd|@*'|~b;[M\I)"+|\\!zy9o+Ru2&/zF{;1(0l qךV&x'Xg?ʞV@0uψ n eLy%RѮ Á+,4?6@ݛ.՗KYe^xKQSs[rQ .sK]GgڽߺԃwBO$:m:uZIS2>' "ej gfژGZ~CrB //fHA&H+!|4>vZx>Ԥ4e8Pl4 A@E ަ4޷t*y|/ڣ>lٹק<~] f1yO!)n_ HO;Qe^c78_/h2kPAL]$!t] s=O":~FUs?!Jx2AH>PCc8Xj0oRӌ;^~5T=vr5>w_cѱ&<ٻjoM2qBk_ mX¿7F-+v<3yQM CS1LFG_9 Ƃƀ$,)q&UAAB+m,+B a"2Lӭ5ee$ Pc}5iCRŧÎ< z "#J"cC#4ҌYLD71'q}ݸKco{D ߻M_s#?", |]!}u>ЈeL%~hP u۪#NzȘs R5omsbc;:P+ @P,4)vf_] d|us%AfEW/@̟ IJQ5>bJzyɗG1'cg&e]J8]97|nIwXtb{ v=iQ< _=`wm!Ʊ*>ٞl<`Yt@sT *i_S,QPn? -pq+ݶIFabDʡknA}P*<`q0X5i(H(EA bDJ Vz}?ktʖ>'F)ھ\c?e"Bv ch a "^V^թYq{:'tc[^OK_ןe펩λCGٞTi6bѡ`vv$Ϭ!r()>?-.wH:B= vȢ|Tp)"l?qI?3B3[?>@.@.A! h:T6b `"prpr~v1+oH*wn0;4}M?GLgHb_Sw Kv9e&9,O4]nщ;xўAfvjwrXjy>Q}5y[O(/}7bhB=i;Gt2_?<HHZARUDƐ0(LRSSuUDqr-ٹ8紳7`RL }c}WkE%΍0;W0\dsŽ"'e;@b6gUos uil w紻 '[kDr_ge[bFm<=Vˏ= u@W=~_Ggfpȃ4jmoovlmvhd+J@trak\tkhd+F@T$edtselst+Fdmdia mdhdu0,U-hdlrvideVideoHandlerminfvmhd$dinfdref url stblstsdavc1THH1avcCd gd A`D B# w3xlNp b6<1(w ;G(boa w9 )V D   ( I r+ E H cx  W. K = c Mp 9   d  st  KCT =n(aXx. m<[f$t}_"+yRSÖޡ)u=  #&/29<FHSU ]@`coq]yT{~ >ҴhIng|9>_">-1!GJMTW`cVfm5ps2vtdv͎i$Hw ,l/p78EGNPjZ]iPqszf9;v}{E5)3$x $({+>,57:AtDRKMTV\V^a{i-644m41lKn"x.<2<A MAQ\C_Il)o{~ I&wɊh?"^-2;G?+JN#Ym\gCj\tx 27TFWaOp  . Y#n%d(*-+2T4K67=@B+DxIaLNP^SU=trak\tkhd+J@$edtselst+4 mdia mdhd-hdlrsounSoundHandlerminfsmhd$dinfdref url stblgstsdWmp4a3esds"@A stts stsc      "#$%&'()+,-./02345679:;<=>?@BCDEFGIJKLMNOPRSTUVWYZ[\]^`abcdefgijklmnpqrstuvwyz{|}~     !#$%&'()*,-./013456789:<=>?@ACDEFGHJK4stsz       6)R#-kE .pgJ=DUĜ*^bXp3F2dލbA1|7AB4)J 1FVE?Pss!bP! tQ,h$xG75EHF>Gi'g` pbRubU.RؓDJC|vW^I2Πu:.gŬ6֩Q-[5A(b =.**C٩>#k?SGCSS'a.U+ϰ}/tmAF+ TV80=03It*o'I (.ˇ2dÆki cJ nQy,ʋWvY`bNdH~t^G'YQ)CQN%Ԕ"d/T\0 i(?V{*+6-ﰪPJ>` |<$~P,AA ?gDo~ƕ+oIDU/Ζhf*DJX(l0<0<1 @_8 }`#֊w($݀T< Ͱ PdP< %nowl4DD62$D` @ bWⅨK<ܡ pxB, xW'a'!2fɈh:9ay|<`toxA%x/AA y<!fs@Ǽ0Dx A$G<aW@G 0|$B'̓?g@àQxďp:m(<AH! g[= ZI.L!+ļ `o`V:h49`MWl L+,03 BX0)Aƃzq,z@A0!RƯn)_S+l"00@()tH @`@~ #pI4r2qH e@/t#-t]F̽抐Dl0N/Sv/jZNot!Ce0+c)Df?RA`f !h}y@R4R]╉$L3F{W7zȁpd@ؔ 2`Ė\~UvTna ` @R@i&:k?żB<P0& )G!PR dq~ l|;ԕj|\߿b u6l &@P%Ї f\Ć%=6@ҝy~ )`,&V <~4t@kZcLqr`1޴Gכe˭<bW2ES--m;*ڊfz^/d0;Y[E>(0̓:g&uA_ ]--"<# C Sv\Scpx5A?_$ ]J(<`0a@TٻA(_3HAH։$]Ţ:#Ig︣V*P\(7]ا-#e+voVAټ]̱.!DUCq:! cg_x-GSj~9B#pxDX^  $@<ʄ,Kq=߬}]a 42q ^ 8x< IAZva+!KdJ V@SAΑx֥{s& 0bslP и NR&fUA{e<F`}! eCե[Q >HvCL dߡyL]k|AVl rD3x0 ^ <`X!dbC$x g|5~n1,g KP0(@íi_({Z>)EG:`ǠZ HAٔ}XC[˽F3ppaCɃ *ضVr!Q;yΨ."*0lTApr'l< 80dt X 0$b*W<,`;xA <x{A `p J*A/(# OUW1ht=*4غk<05!PxA0 d@C `C?FgݜCfTTV2»JN xG~< ?0>: #hӗr[%870;NφʙhBDD B>(i]T4 %0 $Ķ@8Fb(+ϳUJnKDÐxD0< >@44-x o"8F/: BwRc6 ;. yO@%~Iܕ)>aZ( +`I{-DCx&0G/g|7`0%VS>oG*pk<?n "PHQЂ:N=7GZ8('1B߆蔨V89\mG! Pp!s/8D# @XSG]dhAu`B0 i:=PIf@d?T2>hF0bK3 X'cm И>UaA@%@ " ~!hؒlTۅ1*svLm\ N"/Bj lqA|jTREp=fB<BH700ĝm'9첃 AF!%.d!ګ߄>W徤99DV}g+b:A"dw"hBvq+@8B h Fi>0 a< VX 9l& g4LSRvLNx#h^X+$ ?! `(ĈȎCAJ * a <}pQ,1h!7* h9U%ꔂ& ~ 5Mh3 X/f:r#cMY@0h x̱Ra`m.7mܭ+\컙T9ޣ4ґx^E.B@0*lgH-!`0*aqp]Jx P`x(xX(A 0!p@"+ K$A pa(ؓ iwoG:oSQ{ʿO ^\Px*v \0 To3P@oU$,mÑC~;2bA`x(jg*t< Lj`<k,`j!'(8A e]0M4yJ8BJ2@@ZƤ( MND@MM xQĥe~A=u^(#yּQȵ:9I(:  U\ x!,+ƑEkB^xx$A3@B$o4% ūei#0! @CxȔ:=,[fB)7?*EX`wl.&vΎV7ݘZY:rbM:b0r`zw sTs(0<Ѡx_A$,%Ec4Hd1ؿ/Ti"!3f!h0A 0*d: `xXZkobAЅ `SِIdeEb %+V ʠj1QwPJO&)˛U ?a`< RЂ ؐ;={ɪUޖv+aa_(mvJIΖ)Q_LE<e`je@ \=Ƌ4ʙgGl.7H :P > !ax0]ֲ֘s(& &o9(%|JS~\s$7IBL86刽-ʉpXq(:PRoszKD@%%v\8Bm2LaJB.rǭs .JԂ(A`(<!UH#$by;Em'\v ، \ :2`~6%܍5CsAv A\_ TWFHW<% xJAe=-F{/V (i( ( HeE`h:އH!^}D9LQ nfjyE M{Aa؍hw"QxCD0BA(DqL/R< "Km @0I a>b=TDڼ>WFj,4!A?E `p/WR*,̾O\@2Z*ۓ%l4~#Dy`V;b)f.~:NőP|v<àa p`D@0㉇h~J<j |u78cCJ ɃA&@ !4?L @"3"6@2 DTB,?~Dr(;ā$J0t~^h2PGFcA1 Ga A@zAtj2;F+e"H RV=݊jX`XH 0dàl|0)p* Q%Q :$=_sDnQUܺW oCZXlcn}D!T0}.kw)bgidja@2P@dx=D?mXتU=g$PX<Ă3LWi0we$xSA A? <! x)ĀeeA*`=FĐ |L;/V1u в Uun%[TE V:j֒!F6̓`a$C P!@xo-`E;,uc'KP@h0a( jb4xBC0j`!@0(9A6.C'A(VlR q'A36H: !nI+dwxQKEx<0Q @,8!V ˈE># > @H *;PU)H ^ A 894FlJ$yy wrE@%d[͸go~Ij9)R1b( < &pbN`0PCE6): Ax  SlCܽ: T : ` B!< "? J(27*¸@ġA5R@ A`TXBN#h&-꘣s WYU }꟠ 2`  HZKV˲_3IJ &?يyFa,!pswɒwuם L BT `h ߳{(UB >*7oӊv՗u ~ Z x1h0}p,I/5`?t!fD)ρt Px?H<7 PBZ hu0 x)D?8V,$KaNqE(0ՋnrZ-QcZnKEPnp2,14.{eA`Q!$G< R1]Px=Qn@RBү7䁋%Dt^ 7j#.Άk|t<[d_DT dH ĐoW'E$]\@+sf C`x _eAPL$aa9A$(.dP߂4sGl*t6,J͟` *>  @XCc x(DGܕ5Xm5VcB8{(Yˀv:JW/mF׺odP;h!(= TB(0!P` 0@ 0@!=8 <kU!#ZX#H:m(CP< Q,Gɟ}u| 0!tTr#=0K≻h$*80|QK/Jʿq@-@E9=kDWإn<[ub>(6 B`Fh!K{%jTᗂ$ }ٜB<`0= 0~(b1@q uBIt%Kb߯t [/5AB0<`Rpa00|@iN =0!H|-*R[!Y 7N~YҬ엽R0 ז.R(!/!gqB8<<A|ZG008UTb8)Ƹr A0<_< K%{y 3% D`k, &Q >maXiK-Yv1f~j:Ui- paABN2b {uDꚌ, P!h < ,:8n!#>\z>Ŗ Dp@+~<~N "PLldք脕S"GobXd%A6 .đaJC: Pt Bz@7od@L |aXHt(@ @|m_[L$zՏA8[R*bg-QdS)ەx[2yU!^TE @b@lMg!oqGyJHAD)`*y0z\VJPov{ SpHƀ97ҫT ۺe#}ULJ2PJP׷JEy-_RB-)X0gF)Z/V?ʢ]@h2"uo8~ @(c 4oQF-?U ^_UlXT.r,x xg:[NPX0\ 9+q/`COВ@0C! @GBfpr= Uv 0[$ݓzQ &@z !*v #06.7[guHC< PB˄: ՂF 4v$b@Bpw|2N߬ bd\^bTA8 *HA 5+f A%.(hwnZ@gxTTwm5׋slQ "_sKLجt@V !B0QD}JO\ ā\$4XY}촸|P6dS.IB̈ x(Ķ4cGe8Mn7\h <@1 %;jc#<#o3䞀@Z`yJ" ^rHBYo$$Gnt nς*Id<@%BB jO5$d#x3) jӇr1斜G&?< v\#9xp^>MY{iYJܙcK(֕7r³] !-o`V zҸ a*UdD':2Za)Z4?2^[JVU# l$hpFM2{xVLy9ܜRjKotb*l(D F ͨO;P\0$!!*p)b5"x(%Q䜥٣FJ @0j!D39"J),i P: z!xs|)QR3 WG%Ij)ghK\=gCu:RN &?lxyũ-!.Q(0P` _t6';"@aq/T( :ae;%\;]nP*<]+Q̴w>Jpb9ѿ T-ACƄ;-!)D(gpiQ@!a E j !HKAġ%FǝQ͓w'$u{Jmu*7to=l@I g6H R|څO捲](0>#,g"؆qJÿjӀ~x ie5rIxPhV%| ۱PQ>%L(^+_MѷG:BWzKax,J :PxA V`T`>8AuMT >B2q8P=ʨ[|%ǖ<` A0o 8)xjʇѺY[S ^xP<`!PCTd{=67Yo[MVAx^YB)lA!|y%r/XhKb.!ux`!~ @<P52=Wؤ6叽: @a+lقX0 E y8)/A4(',m.YAՔJ)b7('eM$@e`?e(>d{ɻ!dxB_& 'Tdx#$ty¼-.Xk^"AՈ {s󖣑{9@ >; Z AxİƗPǍOVu+@$QAߴ~Ku&uJK,4X KUڠj#(x 6Rp iyef/,E{Q.oH!Kxv://`y+ htS68:_ha1+Yl~#!SCɔ}0IFZʥ+Dks&[dF8N9<`;iAD!8 .,zhUs,Ql[uB\靨NNr&0p)A`a0x Z .l`e8GKߔkO^uA]rғYf-k.*mPR`  $-EJ QH1p!x0~Q R}_pr[g#ܨXh A*Ҥy,oo?0 e` K0:=/mjH;B2@! r4ؓ/ָ '"Gvđ(sA- AF΃A >A|1(J`7ٗ)e ,DL `;|~ ^%@ QQNIK]\ce`< Ho 1?ζK 8!0kbʯDƲyBz"1BpkEW7"ΎJ7b1[gFmhx 8Xm"T&6fSN2 dH>4֠6j@`5S@* xA0 ?< ;t|Q%op y* 6g rˤqjR*\A`? yuBS^B(H߄꽔GؐXGxF8< ).ʁ?P|@!kcAo)+o$<<`0{,Ĩ8 !71ra}J;`R|t9s`<ea-.!R7M?qAGb`"VP 0Wo;?ڪ@a0' QFH oTN?b`: D` ͻlA `b˖#EQ:d "<[gA q! ` > 1茙tyebzx1 Q < )ȿ_MlؽR[`sԥOBfē z@|0H<` 0<  @5gyё͆L`0A/^ y @= ;ʢZN*tz [P7aH|#hz8l {oN12wo9ɖXk]sܖ EA9`ðe ԦBntw|Έs)V.E*彈z))Z!p0:nN\BF0΃":@KGI| /b5_-2%@ź%S#lJC(rA3xB%Px@Q+XOdVG}'j( S違ok~٫ڏX!ϧS؎!:B> Zd *B0(q˶?W &lά3te( AW PFd!qhƄ&Dj$̘oB<t:@7Ċғp x$VW4v#*iK {JO(Ca=Q7M( '͉`ob_f'$Qs"<h<)nr AKٚrө|9eGuň h`O& >J?҂n+:Y`}2ܸ8z !cWɿM Ƣ" PK& %MP="+\w& ;@ 0!ty| E'iVmrwȴPPxz?ρ܈x}$8 7P+ )A> ~i&o Q?oF0x,A `uXDP*O R`@!aSMVvFyW>h7iGrAgҊāһټCPFh AK  KY (Үh $`Bk xV[P`aJ)QxX<"@0ܐ!$upaG<I`7ja\bݨZ&A0B<j !xHeL$x@oI @0R -< Zh!)E}+sR$;aІZpx$U #0#֬f頌'  w/0Jd 8 G2Cq`AxP 7AϷT/PD&C jyő89Je-$2WvʁD `RA 07 $D!^?yfA?=, M"z A < $AH0CaP61$C5;S%pC>8Ha%٭w6?e!窈WjeŮ`Nj $$4`H@O L$UUؽ"̂0 0>$N\(٪=D7 ,xDa x zE6:`PTI|(>xU q1p(DUGH0%|Oh_ xG`ʷ3>xFxC+U'33:3=xDAd`x_Ӄ `$b@{IStL_ܒXmBf5QF;5B0H6@EpTH9x2AB à!TzAbJ'ݒ+5<.#ƍU*6ka[`oL9@  d x@<B-ÑBb. hABk İ8)S8V9Qqr3CpG@2@PЖ OQBx,_Qzi:` |'%c({@2CUZ QaW;Vȃ$,'=Vus PeZ 6Z M> \U)+,eq(PxDBwA,VTSF>%UgQoHir3 pڟ4Yzgs"1{¥xP-1LPB @`|:,s-rU  h` DA}6 04=" @|dC#˛bIq H|{~\yջśW-gDr֨N#QL _~ x.U!(> =gbDG7$ڐCt ͔H]~@!Aū ٗ 1j[P)Aaukiǹ!e^ =&}! E&%6jCS6jK{mq$'<i BJ @HpR$@62p`(uqXPP A`/˪߼|Tu $ B. > (H0FsGNAcA ŊT{U+_ R\'JxC~ KB@̗_+" 0e@0ЄtG`6#ߒ׋8 9ȍM~[YwuMQtsg$%[A)5jno =4 !#!jڧ/lP4pKI GRY(B?y s"N~!02,N_h`2 |*J0@HG>8080t\( ,| : ̓ 9(FJtYм.jMjK\ʃ:&4$~&/mf۴V5Q%+V!MQKXqH)AAg=0!:;$ȁe 0!%2Տ^*opD./i*:6R0AJ1zt, vODIXu*0LStz08 @bP*?L>U{3ժ<'V)V#'˕nh٨QB0p& ϡhL $@!03JF԰mOڿe @gA a%UmYA< %P^yYgӐ- 0'3i-9w3ɳ".e¥AT)F<`ɇ(hM R`~V-6[N mR[q܅~-a0|~XC+V0>CW[;[1Z 4BZ=PWe[=\{Je>h2l@q#xB2lqG +ĩDp{?nO"jpLfd?e+W~h{/;QEʂfA*˂zb֕H$oҳGjAV?-ٚ&nSHC< 8̓{9V60x$A?}T=` Q8 n&7SMip27C.lb!A%&D]ܑT%ۢXƖݳ#.D0<h<'jʶP)zp݈CZQ/9uV#~'L8V fjd@m +O5S彰rKC Z ɣB ),'<`)!aBG!C0Yw#˥nE] }RR&Ki  eR!$e@(@If x(}Ť"ba,dA* _̠hI`ñF}U(gg!CTThZ)"B0 $hF"Xz~ i;_`lֻr2ڢnK"5:01X2IH,Pw'U`E^ 2"Ien)>!$x# $f2A(0 . gflPbYa!k[DK#P0Q텀B( V2|;78a偂0@ $$*#IQ)f$ӏNQV 4"4E6y4 rO`oy9mfGs⟃xH.»Ф-`4fsկ&䫛"3 sQޒB6.{?}҃A =B= \@|  PkLP+,d /*` gG(ZթsA`t  cA&"%V 31b!J`B sJ.c`7M[R[\T!!4_MKԐKJ{@6 Ah<iX0T`Nc a(BWrְp] VVŵ!p.S7ggE5r Ep2$ xsM̱t7p`px( ^jM\pJ=UQ63I_A?sU =n6 Y$ P2)y D6\`x$?ڈFU*j)8B<`BAmgۙ<ݘ2ܺv@^m_"趒/FPD~r#B< a0`4s­QM*BĨ'px)D`Ru~@90@F,98ϼ j$@dʂ Qr SԪU1G (/BX( ^@J˭5C c\-$ Z S]zЩDXЋ IArpvf x+&pD^ΐ89<\= lX3 6&E?:CطQD(0B!paBO>5GY !DDh+0B0H&`Qàb R c%BDmh}{؍^=ioTH tQ7zp3Ah0 ~ ;|`Cv@ġ=vڦ(戹uQ֭yQ.6`f 8 ;xp}j~G:(~~ %h )`A}p!fYBx@KU<-GplS0GJ> o?Ͷ \=cJeDP<68N3b87T!RBmy$?[7fLxP`0 A?*- 0}9 }]ϷߍLT|(ipkh1?T`CG8ה?T4 QrUl1Sfi6 ޻< xA?sKx66/ p2q/Gʨmh-Xni+7ZJHK8ҐLJ6 ؐv>Pr~ 80mѴUrrKx8- .;+QT,5t@\P4ĸ[Hx %BDG? "A70 %`4`$`aQB@ F`l0CBa Z0*`4$^U`x(uÒ#%҂K(WITC<Þ` {x|HNH#Euab%EpVDpwBV°<HybKã@5?;S(< V()p @F%nPa90a(t 0<r0&udA@0`A %`Pz ;8(z<$'#ZJnEߩ[H3`$)AAࠃAAB8<$"<^bSAZ<`@^:@G+w1`B0 B @5k x( @a<b5@(# o 0~[KRc2Mڃ`Gџk @](M PxOĖ#b?t1Au)ЁS)Ry 7j-` d9ÿ4;luEP  %$Tn FddHB`_~ѲEG7C! ˤDjpo Y?̃@!$!U {yŻŢ4CQa  F@K8R$DpAl #Bv=85 9z1)6}!x x?) aB-d[uBd@i 'P`CBz sDa V:dv JSzlqpH8U7YDWʣ; (1 ]zlh1 ~*uWUU ZҮF"a$BJ>DGNI-r+z?Z`g6o8$ U<]p>}۬G)^tUʶdh'">$aM%Ara`:!f?P p<3VCx-?o PnClIAF^ut| `0U{H0(e~`̈%E#9vrQ(GàT áŃOw.^ex?BO%X+<z@C>>!@>! j<" ! M9< "pxHx(Bo.+ <`FB:to~7[7xhD6 l^$A`0y͠j"`tOZ@>]pEAa1%H}UTD8F3 : _]S,r'j\P  <c6L"@aqiZFGyRβ4A0Qg1)8CϏT|m@TĀ1HiSzT^@a<->p{00)'[H(Al,,Π@x8 `6ʮ &@.+,ms Dr u<49yVP`-T<ĸs7"5T#r`Ȍ ;3/ȋt1} l6 lwZ@[`<}r°W7RQFezC?߇\X7*$ Iׄ*:0> xܙYJ`$x1x0H-6GiU%/A+)jiJ K Bi+)ǣlFix SrRy q0`.6.-AHʭ-F6S;Հb@lGSS&*gB%& 11qJ xOIBT E ҪU ٿK5E` wG]Sw1kT[O ) xa2% @;2q!?_ g`ӟPXt}[, fYSً5e؛g7%^-ȽJ׫Q:7˒J\9dSJuo(DK9 ;%j՟a+v%f98R|@٪(* )yvg-qyA*%Qϣ[E!w|=:(\Cpßof3ݹ +:3<Y~/sfD tX1RmF.N/ z2@: ^x@8;⼙.WIJ' . h-RI:zR~f=0eև seRnų#E  F  =@@&@P|/+C&^"!A A64$k"[FN `BKp*C:8\Dfİ AUy#r7 [܅T+ 2@Pba<`yz\7P4{W^|*F'ERy?+S؋b+L`EY&'vȽ4b\g,s6ݦq!<<>h xāHN mS^UoD\<?Lk0iVՑ;GA@Tz<֋u^ҥ$#x=KA$os5}C8@k$y+g^>h!y!S7tz^3gx5lG3ڌA.hJiAZ9C3 !|1S[u:M$ѐѴGa3xďN>ʫߜ-YΟa!(`0*[.BZ+`?EMk@Z%@%ىKi}"2"u=q%0* XrRX!*#^, $zA(2$.h3:i{ 8rT,iAZ]ȍayPA2.+ /,6 9ĤDx/GވTYlF>6 .$ 8$_ *sA`';=%ף`ahAs^jvyں<ΆB[ NT9#M(a I/R^,Q* F#љ3K`Gj@ۈTO#]'tMvv H{9Aޞnݠ EFu@/⒧8e52X5W\o!I"PT$>vy}E/2 t Pa(T.Y6o/4 G0ΚV׀νh40Pk@N ;dx+qge®8,`?[{Kl9if`xA4xDY`@! < X#,s) kuN:>li$"Dȸt y,r-#A:D>Ѐ=mjEGQA;{y4E q1s^N= }* aApAlRUU*t@o{J];0i\0G*U/v?~_6$jlE.:ΈނkvTbCg=Z^gs~<cB@yukFDd<7m$AT|̀&  YJmE&L $?H{a/J8@|^ 08#L?8j{)I@je  Ж^ MRZYn]\x8"lG΢r ɁB>C0Knw꣧(顭EP*_W7{tjA? MEx7!Zb0At>OIQ6%)B" ~`h(9((T^>6=wTDP|1p0BWYI}MyIQJҽJ g,G;4)v=O| KAj`ߔ m9o[0@r ox( <6#uЌ1g`|0# eQs`q `Pzx%2=  Dpx((0dȂPh݂- Q;A2!S&<$i,FxG58oPx/@L8 hȎ! k|ѥ2V*t}w.Lp Z [Jj."SN!J9!EA`MBRL嶓)AD ?. jx Zq$(A |9 ˃]1AO<hh?GM&{x=.RfYssLPRS?]Jj 'H@! +Q*b^۟] XA˜#߿~ u`<z; #avt`0 0*ڂU>D]0HQ't̂?bYQj5 ~!( HX$dj.i0tA  Ax(ڪ;ohv똀xA:*!݋"9|%60P^8Qjʸ><oX欦 nFu` z!LmŁfeqVDu \5^Ac<7(!(PoC `Q"@ ! `C p`6 !!qCih{A X<`05T 1 !b$Mu}  x)@7e EVx.<<XA2!7tb::U?kX`> @x Kp B͂>Ay 0o3sPftWfJ5o ,@ RxXCL2EAxD { !@%Ht| (C/4_0wIJXtș*!74 \FY,` 6\>+XQ'!<Ǖ=oݚS, ( Zl`zYΌlGm{Jy} '6^Qcv 6QCsmbABU:n1l(&@2RUxk-UBH+ُ4ˡztb`);bsMw>1g BC QJpS RZYFb&I0xOdA B,dGT˜*l)|:D/# Q!&dӮ8axH8tӂtl``~F.Kh=n`7w >,Z'H}6ɥR.?<_ABU'%D{ef_ͽE!cRax 9-6pp#EA52 c1DҘT3D~8CΨF!t;DV{CJƻ:j%rΡ-8 A%Y w-X8Z (Ġ`A1Tp=|6ڝQOT:mݺlU⡘YtZ\^O)0" F; =:hzMT,#aV$T uԄ< 0H  d}5ޑ ?Qa^Dg7 9ANNY ^vR<ɂH! CU,M8)!<8F]:adp8;VdlA?U)."9û4?V\ׅ|P5:2ч u]}"V%BUF;00dc00dcP09\Ƃx!/` gCxT9 <ĢJ)sM*y+``0 ?Ā-8...3<\FH(>l @Jl>C_ ƙKG@>#C€/_X?>lc7J͎ Q }Џ. ADmkJSgއIP F'YA.pTͳ[Q.NlFH /X t͌`QbaWjQ*\ eCX|v*`^|HRm+.3-|| B>4F+Ͷf|ML+@> D€,F4d&[$bn``t|o˻AWH=t,d f@jKs1ŏoc+twUet Qk`[H@>d)p|P]3 |Pe3H;؅`n@`C>Ȁ-]mqhBCU#eݛ'`],j` :( ƀ5>KY;c"3Ms!(ߵvzNc&VN Xu? S e` P)˃t\ 9`0 ӊˇ B@ȋ8>d-="8[Fu![ǡ\,0Ā-jf`7RVõ6' g`3[ ."om02_hA ċX>'2OnЄ0B,AB]@ 6(V>.UZHj 2K˓(0><w4P:R&GՀ]jv` `)ǡbpp)x f;wk<a#% =L/ C2:`0X>?,B9k0NK<vW+ l@!q e5IA?*JZ mWfY?˕2-լp1-xM3 nBiRDXP4 t ΅ p Q,G @W0!5$>hGP|O@c@x.pSUhB0;lyJ8=SxH[`z#`kɀ?kL2\ټ@֓ϩ~Y >@2`!ybEi sBC:d)ml%Bp@lU*QT+vwsAl[l p@*ؾ\C:5'-& x ɀ- }\;pP6`̓Nu0`0t2EDՀ,EP1i* 4}uZ Wt_1ѓ!@i ( ٜtѲ1;[l)(.2#[F# Op|_Ȯ@6 RzCrpZA`+< 8ĶǃԼ[ayQ~0i r‚x X0$6>+vK߽l>c  S` c€-}B(2>'h@|?7AHbpx HTv]=/rVy|BP'$[P\h1aysWW-+"DA:f:tAB~Rm\DĀ/  ム\ B[롊Sjᇱ}mf DTTGL=Tȧ7KNsen+/+{j F=S1e0ͼu0`w= Î&džN3ֺ F410g2,%n$+{cT90XX>l 2Oިwx_ʽ_߷_sZ` À-U><'p|8` X0d%[ i׬W^b6#[|0%H'_{0|8^ g0 pQl&_/EI.J /ҡ- |$Dh AgbV4? `as/!rJ Aj+ -/,n hDe4D{}م79'#"ɄsQ>?T +*6>EF 饸+G/FPcz%Z,J2G ~c<<`X!tv.{E' |F"QpQ€, v[X>m?~C}2@@HӧN:t˞,2%40:ttttӣN")E4T;-D@7SZ=KEB#P1ӧN:tӣN 'NdG7GHL0^ D-PV7F i 0"Lƶi5mF  ӧN:th:sgg2Є#t Gnf%6c4::tѲ::p``a*M_GCo 9xKe\=ZBucf#<_xUpAӧGN:tttqdi72)#2^<1)_1oˁB%j+kR-XA͏zUZBMJiߏ|30 @:tӧN8#1+^_~8 Q et֏bXc~[r]HH,ztG+Ux +[FaQIt|aBCC߫o0pC/1< H\ C0P(p>$#AtY@`, +h`HP30`5::t2t":tӣ|/B'<ttsRQttttq֕| pp Dw 'zF@@x^}!Jt87 (gxav ْ%T"ƏN300dcP00dc^Qw Š,p;P/DGj@+[ |\`q08$;#bq3*rbexF̠F[\5,5 +PtRߴ*PI޷e?RX(t ; Er*'';kA pKzVgB835q0.B}0HF >&ArTP@c20FK a\C}`.WdVulɅgaQK'Ca[1gbja3E3b<<RP=1h Pvx 2[ƶ1Ur׸ocڐ)ԯO2<= ~ ] pmlٰuqX8а=l.p+#&h ,Ic$n%ek Id ^0ѣ;_GAЎB$ov(Uf|+ 5l[ᕳ3]hO{xcBuJ]9+şY'!/O F&;^&?Tƃ0$S81k&EPwu00dcRq %L:x A`Ѧu0)PPe$~ S, JBH6`0lςA:0)Ǽ)\$+{osTp|Ejr~bqVPtKL%'G̻@ku4$0`3a>{ZI 1'r@àx_ϣI HW%o?@ö҅@|xfNޯn.D>l Yxޓ}\ڸS!. @<4Schj CAfV!x`]!I{Ѫv~H;x܀[@}< [(I T,v]$j0aڠȐ>]đ nU4I(zNİPe-0 |$44i j`n,4dZnI}@̓2!/H ;<5k`S2""%c@p#a6]I >bz 9g +;|ʀ=MK(A@v 1 (0)I[_n)L|3t!%`: g>LL-*,ifT*. /{`B2r\"bU.Hp|,^DIZ*pF Z޾> á$ '3)$iziф r@D(kM>))?-\~  lJF.>'{>T`  ~;!':Ah ԗХk LWD #hd>h1ǣV/1z+;6`<_2NfA{>p'#'6e/J' n%Q(AIQ މkۺ0?߉J 0*w mH=Bp({\y6NM"{BT'o}j釡tVHǽ}=&'N / I;|ϝc!a/@|%' ;B8V^`) p` 9%@mOoy  B:A S UfաpȒ@<PeBAxC?tFލDMRh*0l |-{ L'zȀއ@|?Rgz ]P A""P<a. RR@_V\ ~~# ThJLI*5@:=^g4UW*A~Y Ig.hfQ# 0"s :H( "v|hx8:m~< >|^f><t<` l DD&T"BB6m( jRb=t~` 8y0eB!xHj&O5ݷI 3α.&!ڙ $\a\GQd{b 8?u"L^_舣L;._PP$h! >v۱Lv0`8|oE>O/S'0|ވv{>4ڂ)bfð|@#X>m;BS@63Ak& 6XD-Kv䒇-De?:I|"`Q^)`Pस!c GR緱y/e>Uڀ:jqwT&r 4oz@0x(״"ЇVԃc ^3 2 X%{ !;ߨ%%.EN=D(x>`zK@"|/ߊ^ڬ(W$P`8iLhYGFS׳&x>|Agx?nɀ#5  ?A|o`0>i%}<v>L}O>D1t^05`xD:\^pg4*33rnq xNV2o{[J8{ӵȀ>@Ȁ=IzIS  ^Pѝ~>eA+$g % "$N$6 MK,o+vtE@=czA|٪nJBaf1Y|i<_º2 %a )P%+7L/$! >Te(,؉'"`IW^6``2 *lh"PN b]HE߼=Oѭ>ACsnVǚD=3|< A"@0(|J0VhQ#NpL,FHbAr(T#AT7wC^H0%x/ACJ`N KA1XH>0xOA? }]hfy|pˑsM鎂:j}Jsk ƹsҺ%hשކ 0>Oi 1$K>ec)Kg7}a{O(󻌽F"@&d/.d$,D$7@@c8FA4J P3 t p2 6 .N p#GG1o5pyƒ9kX0mds `$h}`H ALJGu NѠ,,3(0\t()dx4( #hց |Ș0@xɑ8)&ˈӅ(Nsɘ0` &g>8ّyf H D H d`GGGGGGGt,BV^-Btp(:t{Ѣ8F$N:qԈ5moh`:)U% o#&;l:ttӧN::tttSK=T_*hW ۰ p ρGrʕt>\eɡ0 LKdG*{ Xi:::8z`RZp^hD> 2r1ˇ01BTܚ7}"R_kUv왒K`W{u R|#@ |0 |oQ\)@´00}8Qӧ 4 Eh?a>4d[`(L Vl "cH?C }mIR`H GGHȝ:tRJb802q^] IV>:{/ KAnzwp3x(*ro )iӧN:tӧN:-+ ><5am:Po 8?T;NI8 aJtCj:9`_GFѠD`P7TtD:587Af/TߧFt| Pa!(0\7x0T 4B #pD^Ӣ::thGϩ}{t}]}ACr"w@0$70ce>MӧD:(GEiA>Q'X<24K|h@h! <wC{@dx$  yCz)NGEPLfFBZK@ӞN:tZg00dcRq00dcR ]xH pKI|kg@$ JqQ{tcL10Ѭ;<n6A+gO` π<)5j0x6@%@2$@%&>@ @ 0|P Ph >U\KH%N$Ih>4:De< a8>) a,Dx??|` @xX C@j>!@{x ! 25O2bwcRX>m`Z5dյLYKPb!n]i}FJ.49`b@|t 6x>{ANE J@YAdv V7xD?h.b.\у֮*5>8cɀ'Uaэ?|fՃbHmtIΤ(18-Nl|dpH%|hh H>D! hx>7H|3iFg?vШX> iA [b@ .$'0|A O{Ղ Nmx"X( ĠC.Տt#S9U[awPϋ \bW`(%(?3]E=(Tw)W`TϲXN~=U ?WǟcJ|+5>3\W"(>:3.|=.U슰X*5LFIb /}b5$JUcڞX/H_VKC(h)yETı0 ;á(z( >@T% #ytcwA"/QeRS:`Z 24^)T4?jyxXPGP jUjl7 PBTT.կt`VDw PnH$W\L3va i;>@ץ*&XϪRzn\<m:j4/ T1XX`lJ"P.V⻣Sl=e9I\.jġ@f4GUǥVQypW^c@q)+߷T{FGJE{|꧔-x|ji 0m: ËZ7#3ŷ,!&*P[2bD\^.PEE'ћ)U2=t{Pa +/R H#ԫKPQ}Xq^rlJ+XCĂ@7d`|Ki wZ!Gz1z (!5sleՎZXQjd0]HT_t?X9)xwD(mqpx+wUB(/Uc3UOAV_^?.JEԻ?%"g*~L.hKqj?6r O.W݋dUE]ߗz!x)AGYur\ĠN g)QЖ!!{ijx ˽D૦!x@ATJ I]P9# 6~;i@2f Ax><_?xFqpYw}yZYؕGd[zqS6C06 ] k6VE,IHAX A?2Ӡ``K)H u26ۣ$`ť0S=2 l Q@ma~[Ǵұy6gMg 7ש{_ TlQT!c+g*.V\w]U VN S%@Զ~]>OAs ըAĬ*Y^`ZkDo(WrX*~U2mQ RAu.߈|}QzpOU/]<ցhMe_GGz)V =j˕ UOĞj?ڤ~fcPX<$ৣT%pPn CCyvGPx~?Wn/Ge[?4%JzP>//S.=MAD bƋ/Sn%&V;RG=/<Ʌ㽭{ýX~ P`.!(T, 9+/"c ]>ʵ; .8*Ӹ c )T:~>]Jf4 )_4;kwh)F#˿UuJ W٤yHyR_f|Zt A<߀{_6+OeGjB80܏xƚ > F` OR k,<]ʇ)P|\q`Q x>=P(X #P`8X(QEñY,^;/n1N!A/ :Pt2zzb(QRzchJϫIJ^G@!' *@2j8HT\Tíq}l/ W:  V)0!W} )}y`/O.OlToU?.V(+.ycvrdac3?h_fUW"(K R;UZ |pyZ;Aʕ saw]~mp3cTm=@3@~S& 12OBTG[bnC~1!_}@('SzpJDfحR`Qj/KxU-R.Uu-t?iYzC@|^k^^ | l|zW~+QVa_N"+SQ}huf L_.RD_M7 yPP!~Ax}`D~"|28ggip9U\~{3A(.j`3 |d~ҾGj %U^(c4AZ]GWեz"'>Y>\x_URp H#Sx;u(R.ϫ)7>ʬHOnQ$ˁ=Rl; S\F`9TV=c}>/*@u}AJ]uQWO,-z>`3 DxZ(QT GU|W\ׄn+}r=n\KG2 dt?k`͜O`& t C`Ő˃`4:CNSi00h` ?@dӼ&ZxÀ$G~px.o5U_ A }H@QC+_L>PE`.@DMc2 TF @\#Pa=<}001߃mUn~`"OT?~Z+{CGIL>=]&yHVuefǍ*iNH7L=e b'[6bZ., Zʶc@Ȓuۭ7 A"$P: @d@Hr u RC%_U>a9z&>ܭPkC28sp~QUOyXҧQ~W^^$iHǢW `%FRY%VZ_Xqx<$ՏR ̀5-xfaz| Z{K?~ LrM&UE镦Xb(<,F0UGA@%lx _Q2@>b=O%z Ǫ3s ߂TO*/_멢 %WUU ဏ~|v\>*{D|tһ\:eǂYv]/?(8fyWlzv^SJ_aD]*S9ucϨ:߂B<)sIa]Uuw*W( I{z9%zn{GW& Do xy_VՉEC*T@,kGbu^G|?п{<|KTJz^3xnzʣX4;+@a{ x|ڬTT_8Qjy Hڄ3`JRCb;2QLpsu !5 PeX֘kҾ`Bl!`dC<ąikInF8@8ʰ J\J%H ށ l v ^<C-(-{}"C'LcIvً}]O`O}6{ڐeƩP?/T3p*Vl@j&n3B Ƹ̭G*{N^=T>VHĀ`qpdqCeV4 SJOBUq\_1VWPo=W?T:QU^݀xwƕ)hG_/T+pB.2#1< >s!T;6.QrS;áϏ` >ANǓ9S$1XYV5<::vيlQrfPTV$)_GG~]5`4a,Bp)jʔBY4ʚVqS-"`ʒJx|_yW ]YVwQp!WQ(~ gGCHJ]y_U)(ӖJJG2|p+_T_;}oWnw`!"jĄ̇̄*03> |/Չ $V?~qV>8H?{ʄyDÀ,mz,*UBP]/՗fzC} T.2H1T3Gc|A ;,~xTt.Sir+=0@xܝ~1Py<Ǫ~>z> Q@>pbgȦQ|*/ $~ X:Ӟw}WtKv =YOWvhGyۜ RAKS\) m^˪GwS@. d^3 UZVg@FQȠwܩTI9<{q\.'U"zĩ5E>|`1mNp}0t]g|7: hym^otmGfL.2G9?5XL ;&c~O/L_klPˋh>HlP?=8 ztwE(xl,R+V1\`!=X P*PVg}LK!Ţ; >QDu >j %*i`)HQU* nț/:ՈdW(bه'{?QfStSo=\zְ5 zQx~y8gE@|#PBW7-8^+/?&]!daS>%ߟ`tGE/ANTU|GUӣ 3 xBU͜SKQpCVy8 ieʇj8|\ X#ک_@Z^֎+EG!KĆ%c +`Z`02?0p@=B߷U.T ߫b lH $d| 6T,!qaBocޚS jhUHQ@LLB/EU6)|ā/c!,!O\@bQ8JͰd|OH<c1"l\W)eX%x>Ij{}yz‘ 3#r@@pKN)&J;9wjo*$ < w1o.hHb@S%ڭd|?o1hX"i[ 7͢BH'a! @F at[jV_`D q OQfD>I5گu hly !M|~RzgyX!X@\|%I !yn   B'O z Pnx h| `S}v%wi~hf8| j%(AfR;hw YwxzgĭI'`S\%/y@>_dHăc=`|ICJ%_T DW</!YP%9eG^GP "P!<_RC.TO0=tFJ;|GcE`~0X\K{_5$Pe t4lC#Ŀ`5AkLQz|^07? yޡD$ 8>ja)>l~ajUUjfPW5с T=Ù 10 <El VDo>Yh(@6$V-ֻwPά=LA $k*KKAACj6#'GaFՉc!p J+p  գT0#DT/uOUS|ʾ]s~$=8I@3- <\@tri?MTj#.w pA(߮ j%*?J^D۸ou7=@\P!lʱT:b)?ɵP82#UWP̻cJݴv4V xRH{IŸ;V"=lh}>_A X|E?!uSK1?<.`a>~DBC(˜˧ CroA {ue@_V|0I6∜"7,}=}}T;ژcACG]pOJG+*.RP`%cC)Qtz f`G@=/K> zUHֈƂL瀓"ڽ3K)ǀt}D, 1}$-7 AB(8ez~Bt|]5x>>G}U8bQ|U/ !?B' CP.ȸ)| 2!{c O 9@`#ObXBwyo.2^Pf". {U0>rov5Gf+_+<

    7>>\;>,> d;ƉbOJ, P|sAD| LP0)22;qwtGx%< /~%ɴJCZ p3 @?yP)JsGw}eZuUZXqX19`NaqVZ(1p.oAtĘ0H@J8)tgP5T5cʀ'vU3g1= Kt2ƕS iЦW[_j@.>ȇ0AA IO4(=^AP<x I >H 4q4m0G ҂EK#K7j [ q@yiDsO*.(cx3}dgRF]/Px>GbJD-(HH3|ѱ SYAG*@ .ظ3)#u#U˕@lq5 A؝P|&T<.`G.V F'#Q$(i=TG7 WTϪyA`e Vvs<0TXeQ.]^}1(Mh! &_pV0 =PG pzڠ|@ظskbUм3 aҰa^B]y x3dN!W@[͜$xS(C[F U| !tcgtP>^D8xj?\ :QﭢP˷{o }@0z/0\\~%+6ޟ:] n@ CH#0` /WJG\(<x!`@_J.3Nø<V>4@|<.% 0j~x/Vpa !U/-X!ЅBP Veꬼ|KgoN-H>zP|XgՏ`eJ>B.ĜT9`2S1F=*N#%d%Uxũʑ2 3b`r`[8=:(`I@18\|9I~d2TvxQXd3 `bN80'AaUN-ɠL!WJWGϐEEL짽;đ(XD EUxAAW6Kd ?2p~"ba~%t]p :7CɠV`gPI> O2rm:@~ԝ5Tg6EK'rx3@珺E2]#yb5TxkAiX֐?e;AJyՈxϮb:CecH$BtӅ(H`A00:pp!0sӧ "082@_J82ST5oEf""jb=N' j' ,N8н:tƒ!’@ӧ !A$  ӧN%ЍrƒfBAl`(A A(3a!XD`p4ӧ t"0YN$0vA", Cx hx8`ahBdAA'\=: A`Uk*( £:t",u:t၄ӧ `$18D`! v% ,AR}Abpz၃F !၌C): (HaPc0y- `> H`%/dOF%#Pa_.*u@U_M)[m* y~ v!AE}5^JWqJ/|>l?(<RkJdѧ+"pP6! sp?, =x}F&VI߄"K\\%5z|DO:y^PA V\ҏ7ɩO{aOQ2u JnjZL\wL$e$t}T²% pΎh2C p pN$0q0Pd)ӄi:t g`Q*W+` *UK0!)q]*`}  Ě%/ixnT%+*jO EJTx>.jcTP}y=*n7xOCjJ=o c|c iHU`SsM14"}-/H//[Th\ϫMgBa q IӧN8DoN8AYlЪʨ<*@QR*G Y8! h<7 ` a4q*FC~ܔ`´S ӆ)N"jY2 `bӄ'N 0H` `P8LaA2qѽj@ zak1 xbÌgN&ASV4N:pޞ zR )мMDd~ ؐ^/qh1x0AA(`<id .6?:tӄ&၀̈́ @4ӇA fH>N*2`R@   n `Rt~`hJ8`dN)KB!TȔdϟ2s8?#X)K[Ŵ]Gui 㨖L1.DWNS;K(xĶ=9].+r}f]qS 0C`FSZLwq*6D3qurxe5ah(Y8PGy廽$eG- = : !abDqH}.)K85-m>q͌ц HVcaOsS]wŜu.7OMNÛt0 ;"ot4joV/TYڻ58 E^9dg!Ѷ3EL^jvasOr?~%q@1L:wKۙt{/5$i6_'c1%8nM>0udf5魹+zypv+czPƎm;3.bnq J>H3TH_s ZYn T\mSO꛸ZgM CIV1'Ok}Mj!HF݆ݻ5?yƱܩʉ4EGGl!z%$L#V@ )֤)}Qlk/jڿ$JV!Af+jtp=ioYj4/H:t^WX[[r,IW"L i(Sm榶8Ɩag+mɍD-L7\m14˱kPnd)a'Ɣ6j im ,{mR4Ւ4:fice|C0xr⌘Bu%EwC>0OU(f,z @x*2doAF Yi&7à1tѫmgQX61`S07i#Eqyks9R3 q# ~M]ei}jiԈG'QҦBCAO5 sC q.daBF;RnfP$Sg 5il/٨q; #VTe84 sᥣIeq1͗$etjڶ'K5,Y7mj܆ufx ][UI16鋅w*czVVZ-zl6Tּ#YSVכ *Jm-ItrTp)˳Syuv.c#pQo|^jYْR1`8_&1Ҳ\wEE5M"g[%CnD4aƐcE\A: BmlC%X`޳]\EƦ5f^q@XtNᶷS#qp,S΃:-7\bA $vP LrX x0cR:9slpN4Z@Bj@*/qmu*2caOwՓr\RSۗ-[q`SVeƗg/S0Vc={k4xU`R#4NhG vZ1 c71?{޶ɅFROgfo;rTL[ƒ5qhL)mݩٻI;S$K&.1+٩)΢՜htb+&v#FOs rZtD D{3x"y[:YF}NOVEĄ;f:I$k%"%sEWm㊑cqI@`SڻeoR0ZKxR~nҵD}pBm"6]L8kBKn3TPTžѻẉi [CIpN07*TcN,v\)h)wy4u(+kkQ) xD:1S!!,! uq=?'2n[ot[O ::}L8N~Cw:K4ڜv:ΖDwnTC, uY)L/Xjo[`Wf^kby1Ck'>S.d+xC\=TB\ # f|?,;oO*8${ CʘeIYt46NB8P2sIx4sP!rbӳ ^Z֘X(֍čDu8-aYND#)-%0x)K^nMfyDx(S 61@ڄW9fXfM=t5/J MysX#ajnbH^舢Ix?ׁAOֲ،RcHxt y=}yT͈폽@:.vIyɬ-p(. ,$R+e(M:Coo%EȟE4|9Fa5B& eaovEkV39,}#4,`E'lp <@aNnAOnݵ4-vge@{q,ւaž ~԰B@ճi(BVhANO(4Chi; ZfY07BjЄ2h~$ Dߴt:1鏃z}C` p 0ZO @e/JoNMp ܈)onՖIDF.۫wꓔƳSuA4њN/X stgz"/1H*& Spj?@իU.]Mh_ST*b%:Y$|^\^uƗmIdf*UXlrt#xSr+'Ֆ^ 3)i:pa()ɩ=x!Rҕ7Y9iA ͱ.LmZ2P u/GHOv֩6%5uFXG{25aX\wn@7l7i|Y+ &Y5Z{Y մ%ڥLDl@ke=G< !oG SGzcM"1Q@Glrrз8S;mӽtʰa{YZ.ًRq!O֤pu6 oELc lEm-%-'FxP&a}g4$ iXDpY`Q]Mq a' }cK\࿩Z! mx|;j<zHAJP_NpG~fxLA &./T<p8"xσmZe7-Nq0x& x<A,fFR'@r  d@4e߸>je 1.YmP12sS2e@$LM咲+I[bq+=MáS]C25ցPPQ9fYyz,(;凚hnq?#9ovx!8lw?DM2ǭ@sNdg7{ 2bIO`&{+ձ^K8mE۵[z'-\)pn\@;\̭gqn#4) v萞m'80ͭ͛ }i˲sr4k5w{aS`Æ1y1k.)`}t@bަ giJpsxfkD %g'35]g.Uknq$O4ASںŕqvnVXjjE9%^7O2K[$ẻe"ǀ^uIY)P0׀립: =bva͈ cX@ |L=?ͻTM]*#,QT&tz!O*^\}b\aLbNA1 OqV;i/C8 $@n00;(0 @h(V> bKAiAEWHo 0`)[x(UI<0t"`U6ߚ` ^Ց86.9 E`A!Vb00ٖjni U2a1yTFSJJ@c p/ PB!X8(@A!H 6%p9o51~|!h |~"`SV73:?ϪD`e kKa$4 1p0C`=e]>\HX `7pzCI'b7\Gu>% yZZ![KVg-es.UYMӨ=BAbW0eU8SQ6D >whS50VaPt)&u8‧S@ل_ےӵpDdBÀ]^L uZa $#{E3l8m;R-Icj L%:fCXU>W̬vD˰0@Yt>#u4L61.͑3"j:1NPXDl/Y;-))HmwYj5n0u)V.Y&=-LXvT\kCո=v6d  zCv3+TW'XTkBb tZIі09q#M * t@N<^0VS&\~ԟ!7DS愿k.E6Z =Ĺjg1W % dHOHBHg8Ńt'ȭmBL4@ <`(1p<,`R$Cԉ,4SUcnKGa}\BD},evMěqf0)fzbZo8[IL;:aI5&; NCҜ n7fT.al!L"́ _:6&yg9<U#ыlgeF @lYp4$ bH0~ )(6HlҬDI%Ct8 ǰ 6O#7:NNLrWA`u!PUvB`Bw}Z^a}>7PVaLp`7$eR PpfO0"G%" 1x0@0^ f)N . |cC+ոOj ='QOU 1>k yƲJ^qVYr[Sa0z# xf0-vgMh! x)ppT5nqi*khC3\kD9d`05Es=Ȍa27c[Gtek-ZEZy%n)q~ۭݬVxNsO\q&ֺUӝ*5@5ʸb{<4.VsDFmQ:eU }i5NfDpw xڕ1]rFDeVt!~6%D6 `6 {=U5:0,5,3g%t\IԲ.js;8 6B M)u*жѓӱx5V4wdO,R\JK֓TM>i8'rUp>G ,ݽv^\0-h~ ֽdBLoWGD#a{<:-4( +QUmnT(. 2FpFq,!T^xH~$恅jډ6 1S^I_0o5BiF?)AZ qqIhݬsV ^7XG[&ZYf$5ZmmX[3!ng./iM#H0YQHy[J4Bn,9 XNmQ4M?(@R)92E-LC)RFmwo$,qb žBdg5>F3dN,nh3H7CQׁBʘM*64_wbx$tsEHL0& gG`G9ZLc|)"%"0~:t)֜|lNupnOSV"͓Lqu?Tܷ+JE\!VݵFNiS@<|@+ih(F x?xA`@ @+A>ą2 Ƀ p| <^G| ?.,O()4xh `x.q8ia 0 l r.=18_׃F`S@B7 搃衴 @ eeN\qmi*q0T%[OFָ-D)el kQbV`6K.YV"BC |\byKL*6>#kiGk&ZNE Ra0vE7 +a10k"jS %aep d @  P*b hF1u8 `$ rܵH,טּEhPFnsDAХ DFLZ . !(f n \@a  $B"Zi;]NDxtgHIFrd;!j~݂N"3T۱ n1ƈ$E-ɄYOAC8u !!!tP0SQ=YBH~ӑ4ޥQ> 2LJ^1ӧGNd܈'N:UIS%"t ."F 1YcxbL\B',c$]!]V6ӧNciCYF`DL !4c`'0^ySH, & @hv i|v( Ra¤D̙ALi#H1)SN C8`OB;0 ӧN:tl < å)(QBj:95wce"gA@*Fa81=`Aޝ:t瀘>uGՃW%hk(8r:HR q c`:q𨉍F *4DAMu0>/-0a2=:t͘6 @'0alM"tuc8=)A y=61WJ,y( ñ<l?ـ<у>R>\ i$# hXÐb`p)Ic@L::9# B70}`$bO⟫Ā6U7El2p=GX"@QPl6".lt ?vV6>rO.2AH.P/Wpت*3eVsh, ʁ1Ue HAێ$x8]0ctӂII#uC`@( px ՗FP#$}x*՗} J$(I/ 1N>j l Qxd?.`?|.0jl־|p v4Dy_ >x ez@B# \?ŀDy4<숋ӧON8Aoo :qѰ2#@|(xK//:K+@(:ֳAJ͔eP)ƉY?ȕ+0H-p/Ṛ`z6VPp!4r{ϾDߑ4b0 N`:t^NN:9V]V ?Rr] ʘ j+V*K%TQ=08zU+J--N:tӧN:t`pv߾]*P Ŀ+S*J |F_:tӧN=;00dcU_00dcVY mdF\J\`h JzI"/ ـx<&p"lƧ8w2eocSDInb̑tFA)/ Z=ُ;|;H2CH,~w0 ^"’}Ll2d80'w+h"?8%ea>`?'cQ6GQIy;\QGB9c*>26xΥbv gT%@P9:V1XtKf> TJ[JjP=a0 8>,E62v{a/=IU\2/R!a[f2P(A81 miLfU*yQİRNJR*, D]C_33bVu7֠aP~Ҹ:|}})#B@$] AbHCm @>$Td1`/t.㙰xXc}Lm00:x0}8%R̀#x#H( P2P /ARx+50j|` oCҁʋ@k{Bq~84|m08アEG#N"J)vjQ "]_8{$}& D @a;%.,_UW^D/K 5 0)AA+2D >/6R<\p">P`$Ѳ(FP# Dǔe*LNӚ :fpu(Gh AA`h(3ΓޒoxL @pb+}AL%4͊c:Q<%2@Sʕ %j%%& !c @$)|8$ Ĺirdp j/ 9>L%1ixX%D#o:偀! pq'^te#RĀR|m jФ@ @M:L-AԸ Ո,\1Dʁ%@AUHV*!|`K xxIPjf`>7/>D< vu# `Q~zB"e J@ʁ0, UÀ=P0A}Ns}PҘ40><À5l" t%/8<  遲@ޗEC&p/BXRA^a_+c ľU68 l{#Y4L^º5V!7 VԶT~HXРn# 6%*Gcv<\؈!E b y 4hU( Hz%Jo`2 Mt4m2.$ ?.gvU0/Łje*w:F7Z߃G!nr˨ !,~0T]|B8aUXB`J|#' ҃Ei7S?$F>J;Ons%:9mc @nO=`a L֚ekQBa(J0(Ϻypڃ|% d0>|x[Aik.ʩhҶ Sx}遲\mTOmɼż wt%`f4},e$2$L1@( NLah h Pb%Kó$x! CVog*/!Q "5̟_N4!|bMtN*'{}~3\W-(;.`Uw`+pI/vA&$W:3Td.=$f&P 'c& CI`֘.)l\NBR1++:9(P|_R@s95 0|?ވ#ðx_Amfdf- rN><,mt^x"BSWjxn Bi;"vd^ ؆!VMxXZGTIKB px`CզiOƁ@5%ĒcT6̅pIPG$N OdK0G! >5G cቮ{HC5=m4.fR 28ns$?S\>?V]Q]Xb)׫bgz #/V_}{x)Uw%XJVtsd(h0`9+ :7h*Z9dkBA25 #({1W3gvpЬ`% Tp˯ɥp8%1.7S;n   ¦DR2lή HAǀ<('4F0X^:})D)AlS^")R6up/„|.s+ ((>Gl BPRKRʫ;<{ l}8ǕmUBPƥjLŅaOls۴np\%p` `.:+[ޘ'>7/y[Lhh[BC "GBu \ ~ @& &;}4r9S*"àbGGGGN ?0VA @::::98MSb<a*%N f90|#"T\;R#Rp[ą{Tn*n;N|vrN% QZ`0Xń8!7F L *=ӧ*`vx2Q+V=|R**z U07E؎qɡGGQj:ztӣijߧ$shEti@20^4 x>_  Е,Ch|&| M `̮Qġ{ޟ0!yuST+R J<pHGB}AFJ>-bĠߢ8gs%˳:dee_ 3cx΀,|A>`ttttqMӏZj<SN@AJx x@ Hat/ h@%r?n G%*?Gꪴa +4bpIޫ\.Jy @V灉 ap>oxzǻC\ 3 ~ Z gv\kzm O{^APB70l> t:tӢpD`1:::::8j}g<BNI@ pnG5:+GGGGGGGGG?Hd"$hY:tӧN:qJ<@gitGG)"t#P' 6^$ 3< Qw0aBCNhÅtttttҔZ>4Xs8:.tZO=c1.3c`^5 | Na1 e4gc48 =EL_Ndd(m10-8%=BO=H \  0 x ^ =J@_t| # x$, dx0p B5ލ;&J::<Ӆ0 # 'C~XoT>U@6(!#%j:;00dcVY00dcwWS =ϨH ʡ1LÌ)Wp}A r≢= {Tq7:QiS֛ h+Z ‹5/ 7Z(@V^j,#= It-xStQcaD,kU2d$`ةOPsj>|$itzoxɠsE'G0.Oĥv+$RH xT_6L:x/a։,& أl2 ǂ^5sJ3)m0`wwWZğij^!@3/2 apSRdE [9O?$$QD0 `#}ָъb=XC'1acJ IJ0 @!GB@j}$V^1+3ni->[A@+L!y-DCPR"Yz;TUZ1[aP 0+}-5ޞ+IDec_eLMDB+(|^"fUX)F-xMebnHf:͔FV@JF/el0@޵[`$ii#2+6mqtVhda}!h!YQ}o^-)q(S'YR""ctmcXz2zq0 z"78mqɓu"s {ʕRĬ/ʤyqI- V [YeHSˢ4%$_5MٍDӈDՌ S& Z sk$Yc]Kqtb VSl"RpHo? AP-cLVZ deOMҝDlxtA) w6r{aG{G[7Ze{?e;ۂBU# R:0HS0eZ*M~<uAgllIؙ`aaRjJu0@쮥m]b~aO d@ OaFh_n*i r5€3o|l/ [R:[ Dd2 ! h mFaRWBd`!JvZ`A: aW6u(*mF@t (kXN%N[ջPZ DO] K+X>!RIČ46LLQ.,k|콘<<7fD- wz%#x2A\,OSG1Xr V5b%o\\!4_8rpGn(vK<$&>4T>WSxhj(Vb`SB<zS D^ؑtAO Vt)p |;ACnm>VI ]-2J~pJ Pm6qR,R#V;bA'Z=Xl\}{ 1, <FܝTl# |5\<@N!0C Q`AlzR6L2ZzF$4(Kƫb׼fcrjѦuUIThghXhl$]t1,,>,cҮIkh=DmD9u6j-0R0 ZLijNFP0a9&B AOm_NbdbRp) 'Duqt0-k,耔}xS##`]E[%FÞ4[P2Wb#[V UxjA IJ$R?͊T,T5Z@Ff,Y ( `>o)'oČ3b'L[H)8B+lSFHވMhFq]7UrT>3wpWXS#a5uI0, x m[3HhI(U(C$ƨ@&3Tϵ9p]`G8nB!) [@PSіTNli#7 |L.N `:ϭbCXgm.6E}AOMRJN+w+O`eAжqV3'_vn: 0/u֕wД)w}.p<$5.!}TRG6!߀`rKwyFK X% 5q FoZCS2iiZ MJXCgZJ2$X/Se!e`(_56w"`\Jxov ~Hk8=084Ww #|7GmH w"D-ggP:.>5xCfN#b|wPH<BƓml@m;mt'noh<0!pSrKD{;zFYG[GWj~)ҬFAFOV{3-h!\:Ou~ wdVzw6.iM1A8N" B|#9o  cTbd\A*1 /$<l<hR4WtR mg?ʂ Nv@*[^#"M;S&=vCkR%0xXOޒrxHS&%cT:Sd)kLи7 n4 - 0,cmg8Kpҷ t)M$M+]<7 BE. ͣjᱨ~4+ S_j ] 6 z1ECy,pF]$:_zso;VC-+rХHTܙpƦAx n , =bʧ (0a~8X؁M+L_AALjdQ9p00!hŹSXW٧, V<):`<ݭZHx8_+ x @ @< >@_ #25 (f?V xwrۥV T6 =H%p@L{0?D䡨'f*mj@r,Iix0meAVGBqC|)k &M,9rн`@η? @.<5~:! o UxZB@<0A_5&Yҳ  7GB|(:* aR:@ٴx%;btX<,FPpipjoZ,oH;W­`>qXEDb&F_)Mƻx_Iؠ D\À]!O6 67HSc"l`=ta4eZNfL# x7}Z,{]998So0@=`g:p!eLk`}_t h"=ZER`x AP{3 {!5)4 h<_/ kt@>gAŀ]` 8X2 xxxZVOɎ ?lI ủA@0M1 'W72~<AG 3(G6K>٠(+MîxS Q10<BiL%#EF,$;ztP^< 0S;G0Xа,tf@`Q`֎i EI]oae'vkF^gґQ+e!!]:,XŊR\/D!Chʙ"x &B(-0.#<(,BiҢFV&[*9ShxPN0@ -We7"yg(@cx/Hh9ѥbaDK90U)0_=ӃSB>c(qh~AQ6%>;&\LӍB|R % Ax:XfB a1a8V;qV@ޟ`<N%fjQ{K?2㑒$" ke]QaDjEOrZ>k6D}=ڌp .|hށ:>$ְp0@#hDx2`)$>| W- q J4T|)XBkEoAS=s*޳@{Ɔ"IȸpPyS0!D5H3>-:?ѥq!_8S7q1:Clcb!wpԹ5 EXD(mvfl Ɋ  H)Ynn'N 2)҈|LN; $$@D+MY [OV.Z&<7’~Ѓ2 (dN `)H/!3B8CLCc(ӗx,cMhZfXpRQ`SO/Ε&tEBTb_ N74 O|dZDY d1#i>Ģ%b4N lП ADacy{M~k \3|* IkL!oSnbVN@yP#]emg[$ % Y. mS&0j @!/IzqwhDȣ|d bd fqlp"b>%vۓ7T+f69`N>u!?SXGyj[׾D[M/ H7Ox,VOီX.2voa1 Ek9#)Y ų0K_,|G@:K%0 0A 5|?A 95WS?' _l\d!POѴ& Č )] v،z6$j.VY'667XkHu{prnXZ#'03iڙ\V#EX'C4!8Sx0 NF>5 dY![:EJfPVyk;L/দA>?N0t~ vCrrH@+B0HB>N a(H `< <?.BpG"0e51.&DC4Bj5 ?_IQ<ͽvD$E"7Tw܉z 5 F `ch߇A'.iשkm*-2tQnnJxn cP/Rx^HcF^B-kxյZ2Yj6Ax(4Ѫ-<a,p`<x@ ~n 0Dsgno̬Ɵ) @XS еXn66XmsgiPZt&e\V Whl7WC4 hX&_p@<!B]jM..P/TI^>"IӄFVD`ƩC}j6a:tӧN181:tӧON:tӧN:tӧN:tӧN:tӧN:tӧN:tӧN=:tӧN:tӧGN:tӧN:tӧN::ttӧN:tӧN=:z:tӧN:tӧN:tӧN:tӧN:tӧN=:tӧN)ӧN:tӧON:tӧN:tӧN=:tӧGN:tӧN:tӧN:tӧN:tӧON:=:tӧN:tӧN00dcWS00dcSXM 0*|R-ƀ-$yfS-1/g=Q1wb܅["EϷ)~ 6|kP?\0f810(bt>!1h@3уˌGR5@D #CԵX}]-X4vZxxo> ,z!ƀ-NbŃ@"k |0~`?xA(bcV N=͠ޢ,2CS?3Ro~/ JJZ^ hl6Hy?TȌ "9=KXT%6Xr+Kc0)n K4 xdzJ?,ȇƗe` /DT |xb J\nZ:1$E&'<@ZJsX>LU( yEe!m>K`}n'8n4ZɧxYe0J`< "X!΁M8FX6x0D``5f`T bP>obP(BAք 0)j(m|VG5: ɵ}hxuȀ42@<AH a$Ͼ%oM-|(}~}lP8ʛW@TKǾ:?c$ݾ /E`mOĀ@5^ː#󇍴#cD0rZl-9I*3^ws43: Hg!4۔rhYmʧQ$j2q([ʾSI "Jĺ &/ V*>MS ><`2σ%qL4>,9VH^#2r/@mqFͧV Bx3b<.Wx(TD8NGƨ^a^T#@և)/DBa@9;FHYec#ho KE(4G+QX߃wң^uǰurȀ&KYqފ⵫5P@*0CG`l6qN?qX0%U@``6;P %Z |ʘ_ Չ#T(%*txAD@a,@ ѨD<ȁ1Qx6ƀ={Ċ5J>h%odJ.0TtܸIV\ u@D`B܈' +$BUq`0uOhFe ((YN$o }NPN(3AGuCD0.|Sn] Oq}|/_}֠|__GÒUH֡Њj`?|>סּbdn4w;0)042x$"HOj9K|ŀ=K>,mhh\1ҠP A+AA(\;Vt_ÐYlIAhT·]\LFj&8{A8/! g\<ڼØ5 GLU_#.YEb8D)T t$/عS栉K7O7<}S6Q.⬂wxAj7Թ0lWW+ﺻ[\5X @PN^āޗˉ ABX$L%) >aH4?T\H$H7k cBPx3DxK.`3t6sz}o"Ha:::::::880b`bdt:'Jұ1@`DV<}`:]X Bm_d^@ A, @N:tl(#  F "c(/BgGyyTObtt'GG P1tttttttttsR?Nt_E+#1:k( *E)G9O2[ULtN:tӣ!r.EQ8,H\?|ފ::::::::::::::::8L`0X<pP(A (A/x(7E(p= pbrt0Ao0v'T'=8> ɀ.`0p|B B0@F A tpH~>S8GGKQA$?=  €, Qoz|%.Q=?ϿӧN00dcXM00dc2YG . xCx0bĥ?///V>RAe Wc"aì3YZ"$8#UR(K~.t.cB}G DU EV_,_JuMGl:d8A#iDU/ ?jV"+/QT0g4D(?ǿ1no%z;`va}lJ==0>?#ı(|@m)~S }ZKcjGv 7x4w;V |?U"U^.%~\/OLJi Cl+1AR\]w2{h11rQQ> zk (گ*Ƃ$ <}Z~ϗ1WF'˂%bJQ]KyzO`íl`*yyf| 7@ua?1ɠHVP@U/U=N~N\_J_=P AJ#" bu |>]Gຟ%X|_>U?~@QAF%2%H2=T sJyJ ^z8@l p b,V2ͪA~X|t6A fGV ~LĪ0HT=T\>0 =.BXX7\ n|BR1BlLXIlIm>I |:p@A¡0j-N0^:- `f-A7Ȼ| PBH0KAV!jq2I(+({/xlp>V*j6GT?#ȁ?,80*an0Xb5& `aʨ lupp/$-vg" i}R_VuGL˷q3KZ뾨g*m;j뵩#/ b-civhE@zP$uD-'cZ d>/tJ=/Wz.`TŶyqe*yPM^^J/Pb"@0iP9f\YdW}}&ƿh:{Ssm 20~x"}?$/S58 _jپh20Ձȯ}>ҭ/@QkGOT?rꔖPQxAMAPJK˾_yH2b(o6?ʕ~OEyR;W+ nn7x^"!-T}h0#\z]S'Ʌ qx0FˁMv?/ W&maO@p0mNL'fGT]Ppg]wJQc;⏫)aXDŽ_^ aO/./ԂCTԁ4_V#0TT%K>taFS1RT 6 E`V2!14 VyD:mSP,D)cJQ1k6US1’dB⦇իXxOլW,л) ը5 X\pʡ@'Q>˕G|ˁSʽcCDjˇ>y|R$j ԗpF@h{IR`Q> W=YJ Y}Y}~^EV0!U }m噈_UcQ@!Q+FI, 42+PX2ꪹGqGe.&='񍰣7A|%yz_u:ސ>Z5nPnXP=13W)mǞx8e(k/ЍAH<[6=3;F=f*:đ#Չs* ./Um@..pPekBW",~>/h"h)N[Cmd 4%U(45? 81h|$/A` HJ>N8d}?Q&a/CڹAC*Ej$z?v6 (;LbdV$ f 9> (/|:\^#͍0\GnИ9?W2߈f_8+R)d}&~+/?X{p:r{~^|MXa.ĵJIG>TYhVp_(2Dv](ba88T#W(Y88*+bbyD%./ f? @*T c) t=l3WG.􊕩=W ?mG*e/ߛ>>h`R΃vˁP4\mf'ܮp}_%yZ #8|:R\$Jhwe χ5Q2+'~Z<zKɾ.J SV$Nr>򏰿"Ftjy^>:)`EhW|] 4N9UU/oJyPQV*TL!rɳt~_F^.n7| IKP(Kv*/4p8dXH PCIgA%)T*ʯ*Le)FwmQGZ1AzȪO."%h%MA .sT֥2ٕ%xV 7,b)Wx;YœTtJ~?00oVi82Зz]}gDv%9_A0]KL^p%^Nc]LxEe//+lǨ!aJV$#6{bZ{1x(?P2_A.#^.UG`XyPEVcb~20`T}A,>  1 T< T62i=ʁyp*x7x\=d@|  P2X MUJU)*m?''u#W68Se9q0GV6s*g>R+!RsU/ʕ4twhh;sT)YTvmVOjo z>pMxh (ϱZmS9lQ5 i.TQ>;NTd3P"^^NE_O?obYq~$X{M=#4Gf*i@(T}@}JR ;|z *`)99;Ӄ)P%X!*Ώ@Bf+v1*}[bj]S~<>z/O(UT%^3 |wR WR(ߟU0x;Wx;5Ư82 S?uN__Tw ;5UaC @7Տy@]AԒfggYFDy<3~V]^*?ľxEVK˄4 @p2D3M'a`0$;3zIHnsM|`ZwP#7`WK3Cz 6^]JmOtUm^G>"W6 0({=~NQmͅl*p6>">gdrG 1" Rd3ePa:/a!2!R`VꊊJ4XP#yK :K}Gݣ|hծ~\ ff,L/y\U*jg PbӠCiR+T X5UBBuc. ҹ }/߅|zb| ~TIU`mB:J噺1r@X.f~rRbLe=Mj}*j{&kUU}nPK`(*0 {@!-+^nfjĬ='/TWS>%R=GC֩{[q͍F/; dr/W*R a(ڠ|_rAܣO|TTx^ߕ1 h`4x=z=\[27 zj{uZJwR,`xFұ}]'~@w'>/|xgǪ)7%G, KZȏ RB//uX?`bpFgq^[7acagA[h>~E.\AcCxN pǠ GX'vDp`qkW2 YI7*NFL3W 8E;4`l '`ta!EvR裊N(_jY4`WTM}KyP\%+="PSU>*5_Ƿ?<jU`7p#G6qw-eF %48 X]&6 cARrΖ`ve$ 0dF.*<_TIAY6AP=r%ʕU~v(|?/H/ƔhD^.U !K^?Mv_ʣy1UpF~E9hhYz@jx_G~Y35E+h  MR=)tcg-JE% LN2x| >= NAՏ1?KjxBQ?{O{ʕx AU,UBQ2J S{}(ORܟ$ _F 8 <'pQ5$UJxg6*R|L`)rwi `|-|0!bzgYQhFAh _DaWr&hmUUb(>T6+L`=4 ؞K'TxU՗~1I|@[ wrݯ7G(*rÓ}4 U+TN\J=6 %`5jAA˂XC_6  [^AZȄEpT˦e}"m]{+ri,h}l(V+ZJЊ06p4X>4A 8X B\A2txor2v¸ pRlJ Tt#N0 $h!$|2TWa(-G+jذkgxl@zSa Dz'4GS> :P%OU]T>ڢaqrS~>^fx;!s&h'rՁ@Ut|Gs |yK{Qy80=^ i~J;SC?1 ԗ~ ^kvFgAK{_b['߈hz:.w!0f^%KHBURG`DS7p?-.)|H>gV/؏G>` *.x(yW_ǖ4?V xM< AG__o::rC*hAD0z[ 4 AǠYP<\`ĵ4>4ʇN²|)Qdi]:=nݑ2j7K!.P␧ 00~pO1ՅT%@h,|ޥJ]2p]wr1.*];w!~%W:U٪ywDPFJ>ox/]D<`b_hKMe>=S{9bA$ xHRWK8xJo`WG@|S JQúɛDClN`x(IŔ@>d W)[LzE/'b$DtÊ8*zc'lpZ`7a RgW$ .mXCUX-Aj1/`{ H=,% 3  *J`Dl=&M%gޣd'AN>(_&U!,z~a%nC1g\IVU`sj+e\& u Rz wTMZƓm @?ʨ57*A//8d?Ws޿H;|UtC0GuX>G#= GJ _L [ s%w?)TxWi,ZHZON{~RYf /畫ͪ!p4`)5L bWq R8( m?U%ĢW@g$9a`MC4Z@p Lh)%Kn #~#U2 ̪p(7Kgb`fg199Asmm(Jw^U'V./T E_ þތ(ƇB \nGo| Osl_p֪׆=Pҏ*)!GUE`` S>ۖ=UaZU  3ǪW,]G+_G]^Uj:UJ` O.%;TG#pA\tv8 0 O,P  @V  xȃ-S%+CQTΊnUMK@P#A 40uTE `GDa(eG ĩG\fN0$R)^d2 X=UGjc P# -ps{o ]PEn3 `3J .tAb?Ih (ڹ̷[jҞň:6Yb2c1G֧]!ʓ l~1AU gjDžꀐ4t)}P'ˇc@Ut:xc l?s޿Q2x?r{Fs/{ȮUb9E݀?!@(DRVaЌ2eT<noGZ~i+^aUf| .t X!e]Xz?KƔ|?.a0)A Jh F^S#;֠h-5j\G7иLJNR_S)LIJV Ǽb`Rw5bE6@!e_w gd΀D?θF`}/Uiǰ`\p.m'{?If XeWIS[ژ"oI,# i@ǃf\'*V@MGsG.{= &2@:JuQcG)b5`yX}P]=>'#0ttPڥoVT}@~?a>P)*a?btxB!*21\?l 8@5` sMp5ښ@GX j_}/_T+cNxp1+K'c:Qd`VƿK&|/jf>j$xS$3 ,f/*C#{˜LK)G$U-tVa:.h00B@ 5PP  B?TBPxCxAXSA"P~|P0*Ђ aJatp! J>`|ՏsEG2#UcІ(P5RG2¿5Ljx]W$q7|Ի7JN#& mɅ>%\T ,@ˌ1 `d#画x Iy|zg(`1 hZ(鋾;M`ىL 5KUL:sRp(|O>KVJB]AC^3 RTԼF*iAA5Fό<$ji?G~u!)/Lx UJWbW ?;[AW\u@3s>%dv^ۀխp+ԁ'˨| ;V`4e.Aav)LZ@30g Tg5H(Tx*v-K:goHX\Dx_ c\UAEcI!P +T"d< DJ8pxXX<j ^ @ =Q4[}JbpbLV!5k 4@v:/KPX?f)  }%ogp?8 .uP3J,' .A޺\WvUISU'Y`/)Ppj畴xD "p!@#&ҵ@ep3l0tE t:"4˚1AfcA'DsQaM%^W$ |l 1XV˽`p \ђ3c(XVq"2`X+Ă 3@:qX aJbIz( !S$ @8Pax@>껾YW2?%"H!0A #  6~|wi; =ܤu+L=dɅb*4˪loC AK 3xR"@-8! a80| 6#dpPmPf- uW4٪ihv':=4GGGG ͤsMRw>4fq$p TAz){fs\2;/[Kp41@M>/AA\qj]S6 > gKK!$G[&WQMZNzlkȸYO'80|xN \01::::::::::8"(5 _F>h!H&.7< _hڴ`4 J]~\4`>7 Z?h.z{hzUjcBA|3GGHFD0|p`gQ%wU Bʤ! _` tt:!G!%:b@azl>]˾+i9@T%\<g~ XB@`ewڟTڵ2Q+E"0uw#8JՏG6Ƞg V#u`Rb272$T%t/S%&."\@hd F~$6 "(K| P`10*:P12:8,0b6880 Sŀ-``?x8q`B(AK ɀ4Je~0\t@e%| *Շ3vi!т6GGGGc?doGGGtqs ޸2NH#ȎpaF(DtRQ>@Tɶ"E:a##a28"0684::)C3#`+ @+GG^QtY <| G|x/`#| H[?'6J?%i|gJ'"8E!dg !6_efp}T < >BAW9NϨ&T]@WV e7ACxUWu@((tZz:::80 `,<&F> htx*0*U /e_ SD@9ꄡ x%?>>O){`C7Gdh 'ttw00dcYG00dc#ZA;M˜k ^&Tu+~ݓAXm$|u5)SdӥmEn䉘M^MLTD~by+`()[uSqzxOfN4D9:誱ΣΦ?À#*),atjAzx> ~oq%}Y%E0DLI-Yn$_[37ԝxXB+4#ڃ2i:5c2FntBɗ1?bB@):Kc8 FKFFVNE tC_gz ?;#AW18H%s5IE:t)ȑz(,j4NA4N$aZ5Jg ৎrJ8ժ7u<92Fa?V_}{b@ 3.z[*S!j7̚ٷf#eaZ[an$Ót)ޅ"= 4<"QݪȜg}HkSys+ XsplXt)0Lnyb^t4_Ëm[`NW2",=T1*]Zi7QK̻+ Vns9gW'xJEOIYyS[ldI3kxW6{jLiśq4jhZp@?8!KћM#YڜmfZ?V_ܽǥm:n6N žiYY|%M-ř6Pmc}kS#cI xS۠.Oډb@#B'~ei;αNO2w?Wh&%oLĉ!SP6\W=96GzQŏ7YW2q9cuWFh)|dԥ Ty3'oZ%-[2K5l@1*o"2mr. ]qnuV'Bd?sEǠu4!e=vfrM9K Űnh)č%ZZ)hEěI{lSbYkxbэFL]r!h#O֋4f s2DM4RQSDۏ,ZmDT>^m%wk|v:Y1m`?7Zj`]h޷+9:LH1?*gYDhQD xNuvX&lƚƭ F, |NG{Z_XAx T9Jg"sϢbjM?'MRT4\B58?;Jkds9c A+qmUuZ[:nqV!^FnL áO٘+0b 8U&ɷvjDvf) {ɻ1wqjuf., ~09LO*bsnr;h("tLdGR ʱԍ$8| $ bp @ Xڍ=7ɰ)ɖM'x?-O'3s(#j4CؒK*W x1җ8ͭ 1 oKpl>ŏvԡ2`CcԡEeJTNM%1kzB^)ة$bBZ6ސarՐM_+)nB~mYRZeas+BҎe&X9@ѶB;%$,drMŊnQn%,XAg[&EubH1WKB7Lև ^D3wI1Ḛ@IP8RR@UE ,'P/i:wLdSj^H1zwP?7}[,S JeW~jTʞ>JOIFAO4bB芍󆐤,SF|p\Ux'5#iY:ƷscsqCdEO<Ԩ8pR)5NL^;,W`˫dǘcM`#@p#҂.DdШL6m]UVGA@ *$LT.3]aPXUFg``?eXwC"  4Jz/(JN ô`!?E~ T!yS^Jf}tC# &+n11ܙţ&I4>+%-3дra <v0ZM!lJN=vqƬZu  uD0\;ywGd<,T{/y#?^[u,ڶ`@а)TO/;> :,0]>AƉ5̫wyYA[sεFȊ7aOc$|g&& ns F="Kfx͜)&b^V1[ Hj=?xO lKv,t\o DxSA@3@<:Z`@.݀4<,k`8kAh9^Ш)h<8%7[tx `"iTvbv:|C-|N% a@.0 x14Z-5`Տ\(5 Y`<$%}+9a@Fi90S]走s'xO@@1̓Xk!VCv)SlYң_)Z7jrD`8H=D5RvFu:TXZ k,Jupj6pc- uQ+ĤѩktO"P"!w( (#[E#:k"h#/BdYR&_Qx Xkx^;0usRQPW91I``)A wHQgN( {XaÙ/J˟N7%Y-D.P`O|mȮ6VFQj:ry1P< b ủSh8 v,УL,,B8: mL·Ɗ[]2VRܩdTRNz!8)p / _X#4ubBDv9nV-V+,2 {X6``|=OxsXn.="̒,/R!P !O0&3gc`hЇT@'{͗0 N8M"6M:|xy)kn S8|3%3Y$@ <˛<<%:p ̓!IBLr@IhP |Vd APs0r}<c`49[\a{!z9*e={TȨޅ4T,D`pm-,,'0ƺ/UV#)x m̵{9Np%h '5t#XbMP[t)Sn.Ta!DiLD&~upSV,1-oJn?u  o86Px(_BXlۚ =M [jOG"Ժp:u6ZQΧпO$]Пt+=XȘi՛ xxFk@L@ uWGSDuyQdUu!fҚqvR8SHZ(@5tksotGE{HJKҵongW ~ ĢH?˯'|6%27[Vq6UM<%aImL$mNʪd.0+m/tMÁ`Spx?hƽepX$Ix/o9{ fPW` .Yh#Oִn3_n&L?yB1miBB1hR^.BؼVzO&N!f9Hj]Ob0&SJF," C@S5fDRSgbAZ ~Ogy&9Wma>> qrY+ȘAvwQ8-_|*OƧ|BbG& e2-1NơO(r^ fI(- ,-\Nxm(ܼe.gFg,]E0sS ޽ bsW!`7% zl],`epZ"4AެV.mn^eAp"QPbR~:ZA0)뛷D5lQe YT1A n aѠhGo8OŊt{\Bpj54XSTkк20ذiݍF`SE -<@FXSnd3Bu~4GlAZ$gfpFޠ0ՌMcRnu2dS[YuM'g5Q#}wh'79aE!X^(|C4! aFxp`ٰ'*w彳껖ET6 ~åJ_7dhv:D*S-rlgNgLڌ)yP3#jxe.݈N66ĭXQ] t`CEӂ+W$v9FK.^Fȡ:n=cK |vv%F6H&᳊LCC@S~g'Wƚ"m'9XBTZyq :WN3C8g{֛s@w6V$/w2Ƌ=vXu8/BH G2 ᬛGD!&H( i50~9hj"q1 g[ !D)@h45_iR2]u. ,M="OKh¢[֚nQQI9'-ipy:@\&9d`!AL(;&k;g08|)0 \A6jIad( xp>Zmxf 5&g JBޫ}\K'%j\f=e]JطbL~8S}Nޓj>2VU$+ma >VQGr)"oZNBVr\k)7Iv $F #]q1?[o9ގ 2.`#LAXY6D.G2F;!Y=R6EL1l!p*`C\Vnx)6$e DT@ze)UB3Q&B*pRBzY0x$ 8LpsžxeVX1 t?u1l6' ~0YieEKeKƀZx[N!N*BB N>-(~9^kL?FFQnv ie3TOz8@& =JV0zp5 H.dցBb 8-IŤkzJV̐6WDRS<hh&t"J@vVaX `x5KL0 pֳ3X< }We4.2?ئv4ĵm?.3!2<^-: :V;,IԮ@>$|?6o uX}@96LL;fΛ>w[D#SYrDFȳkeܑ .uK3hdKlAA@#eq7Re#~ {NmvHK /={` /8Oo4)~.(0Fz4AEG[>h'6 )xo 8UƎ:? xpgx8nH! F|NYb}_DJxszi,@+Eh^]UWʗd J`>Tz ˸ĩ4bY10OVujx`0Ou1ޘƆlL s@0}`>?l6SfSk߈å a;',j@H5%c@ 2-p AeA1SjقD:ëޠ iK 膀@dX%H . `N%8d(dJ$މ`€=1\_ cK\ 9w A}`x?Gc;wA *|XmaW΁a>gc@0 ^  [h?@8s,*)%鷌\!&Jܓ2&ڰxGk{T1LN=ς8 X){EV[̋@R|2JeSIx[V$Vߔęz.'VR1BH E Dx/AI!$HdJ`S@ $J?ADo x>4m gꁁP J-P1>o [ RĤM +C'=|%IA,,H>õmwkXxE H< (|h0@`6 |I 2A?e cK)]E" MX@eouU;Q2wBro1hJ!|ĞVoۅa@!l&P?~ JaK~Mb  m PEc<[ʝzyl<.plf܈2tn1 7P 8=E AL>KsV|Bp6V8jN(aT p|{ǾS1Jĥe_τ1M!2GʀQg ״f<Ճ~6? KO(C 0b/ȫ,O>1bYL0|=#W}[>/İa((#PP `0,f1Tۘ)P K,ܫ Z<^g%8_(ڣ| #uJB$JA.xJN%ɚ5f |LxTp\5$SB7o_\zR`TatFT,s9X (P[*5e`C 4`6 aD߸a (H>HT6p #@GTzSYO 3XyV$ڌԕ}yM0|~}ݵ4 iH(AA@,0\ xl inߴ~J*@@<2e * \*ͷ€g{睴|թT  xPN$5`@h.4"H0uH2\ kR>W*( 06uboh9px( >ҦpJ :2ܐ$>CrQHj2Z2=w@b#4x 2Br(莬{x_1x|P~#F') '$hq:>-K:m3uy9\&7 |"A G?Gy 8 *.}BxIV5_`vU)SӬϪMJ3p֋]K'I |b [@NB"@x2 ӣ0bDtp`?XD&GNTntx "C`| 5Nc ::ttӣGGGGL Ѳ:::::::802d zEAd"O#`QENLk%E]NoDj=`ͣ4ϙItp (~݌`?X $QTe̐@ A/"z*j0  #K"@nCA KЇ,` hIp}A?[| ?(b 4Qӣ€%Óɀ& " I!KID,<\ <ʪTJZ6>H%;bЕDO KߕȒ.:4j f<!d+q> oڢk)| 9t``"dӣ5pF1Hj4RxAmY~(!(0R+Hh3cH.OD4E(j::::8(Z1dttQ*{f6 +F:tӧEh8( ;FO=*tUӣ>bPB ``*2N:t85Ɓ_$5bWh]H{?A E(:::-N_C|/> _::::)ETo(}_ JpK+uRG *jT})<4=TE"a@d z€%(kJ(Ȳ-N t 49e.|1o,A+4EFȢ'GGGGG00dc[;00dc\5 .ъZ {D2x 8)> 'X(SSΈऴ2p;AVK M1".Zcc<OH>Gg  e"FS [= `GG0e:!|/N`ZXBxr\AdZ^ȕPH!0J#&pE5J.c%|4 C]OH)cb'x!Jh ) ڛB@xBiDOS6*\)$G8 @|RX"Y81TiJ-U ĩG̢)7_vCs] CGMFE |p}/މ:@|! C P΂ ‰AN i<&J0,B:XN#𶁥Z@XXH ?R*Z Ϗ ĵP]( `pP0oK0D]t*MM$S )< yG:$)t. ZBe*d9AH lJPXV{MP) +i)8GT::I °KjRݕH{J@!WPd) AZ2q ` O@ vdĀ-&2"[ [PGl@Fj*2 7=(K@E,b!.j؉ڇÓ r/P@2lIN@.0"Az2}u@xF{M` Lyp}Sư+NI2Z+}^($_N3XIpZ 5ǚ "U\ EXx34o"Z]нTd}A eJz0 dTsP W@am| !xHiPy`#9%*h!G2(<$)X­FfP10)[DR@x?6ڥU_WFtӄ?ow׍8YG Fp@7wJKne`)p ވ}?OOis Th;/`[ð` w :)I^(3]elUJ )|}/R~@12糽W},j/ 29u0^} U4_`0tXv^>nŔc]am9hjm=;fDA EĀ : 6vbR(UT i0Pp#,nd`|YPzw%\ ` Jpq2&w7qy$:S֜ a(dLf.@80(*UC Ptyh,M |?=6> 8$0)%>^\;eVMď.2<vPRuT/KuOg3eϫ_Ƙ#?4 gewA}Q$nm$7x>Uɳ,v%jJĐ`C^?x:g*>wKԃM}|/Sh|"+b (dxZ"rR H.PBU:\MV^!X%Q%LP0 ]N$b?fi[ġ퀠*Kj͉Jx8TBӄ6A%F :\`CX2t+*PDwM@Gt経xkַ'}.+ w^΀4U6ExX@O(A\(,| DD(0)Ā|N% `bMebۘ"ufy*O@B]UZ^3^W$iY8im0`B/N>W@uqU.WC?JU5H H&(B0kHQPx(K(V &2AwAP6'TP$0UCp(ܡ "2P m*h_`DT^Bʨ²{{J-AE$ t&Ed|3{!~)|/޾_EcacXT+g/_R?Ŀ(19Nc=}H66#H10f>l%Jnkz\p 1#`?Sݥsv` 3PQnEGp2.zᏄ^>J_GK1=wAM )d.W|=/ݑ_$P2&Pif$2R\ʸֲP| ڝ`|^0s+bF4cs߬t =KΣ{[8bhU C[7[so|^ Eᘉ_a` 00e0#8PW(!(RJt?txJT'$.S74t?/G:|htج<UǞ <`1QcQ$!2%wt;޳WF[fMhD|d@~7V\]BpC/J·E[oT 8${ȍDάkba$~!P@aJ.P2'DP`R)`!}R$N 5"6+Oz^w}<9š;bXf|Z o$vBiG=#X,YZ%ĤΊw+75T+`MHk)"Gl&14iĘ, `R9&+``b˛@[cB^b -H0"o!ppbX:ܾbd:PP@?8E"DpP`ษ`TqL_(ue;b:ɇ`M уDfaY>!h-!01&"g 8^1zrF,8oySaE&xPd! >VL P 4d6GGGGGGGGGGGGGGGGGGGG90\0fA BA, za)0#) c۰1 0:pDgAUB\2Z/F"00|Ɉ<ֈ=gTa˽oZ| a J:%mT ϝmMT\@_3 P+ np#K@CW10cC1`ς R82fJ<{tH`O#1!93G"ttttpp3 Cxh3a pP"2?,Mπ$t|XzB !Qz2|h[:tӧN:tĀr8Tcwɫ#JL$>ȀJ%d|xJd|mퟸ pjV| 8bJzAAP`A:tӧ4yOGNuf}~6 Q1ѫ!:::8 $capH`ĩʚ73"֓ h:x8< aGc}(0p:::KGGN:tttu2pc*8z:<[ޝ:tʙP=~ŀ,3=8 #ON::ttpjDr@.jQ7> o Ȇ48HfӧN}9#i: Y+T3yS{dI? 3d?DwTEU@j\no+W"*.+p?&*W'z wR)6:tI#zGGN:t㩤@zgP?0nrl&N!ޜ00dc\500dc]/ 7@â|xD U2=2 tH4x}oX|ヒX<_t?kz,z@?G썊 ,>}x/}T t}Y]a49 c.`QhA (]`! `3S.nj `v0R{X1AO'@pR~6T 3xgh#R{'g(N3*Uܗ{8I4Pv"U?RcMMe < Z yp0)F T^Њ[ZZmM q{@7Jڏσ.+ A}`w2@xNo/( :9:`\i[|d }}oy|4zv Aŀ-8*`q 1##u(mD|>ƍϾ`yVX,ۡKT #lĿ8b 4@<^   ABl`ANixA<<xA2$*Ӄ+5 (x?òC#LJ&h2b 8 BX>GJʀX8x>ly/Aoͬ`!? =.!ebX`0 P @  X$҉I+D|?@0#PX%8><@PV ~\ԦH>_@v%{1 c\؄+}l﷏AF#kvYQc0`R0 |/ġx3ZLc X}`lȓcd= }}}~z}}}ƏJH?H4TۖE+MW@.[4z!}W}qu`0$]l ltȔ \A 87C#|/[6 O]ȗĀ`> @NW(EcG:'lH6h @ XJxA0Kx(ġ x_Ӊ` `` |o'y=W.p]<}}O:YH-뒇5BH(D(H.-YކWIC"N,0)N::9#ztC@"08DaS:bN:t#ӣN(1:ttttttz:::::::::t၂::tHӧN:tӣN:p”#%GGGN(1Zt GGGGG Z:tӧN:8`d)ӧN:tt!GGGGGN,D/GGGGGGGGGGGGGGG&::tӣN:::8 :tttttӄ&N:tӧN:tӣNQӧNN-ӅӧN&7fDx00dc]/00dc'^)vm]ts]?mAPdo@95~< =7[kg84²p;̬"u{R]ȷ&ɜlX)P4 \$h52·FqJV.á$I~ߪP]t =ۗl)+bmMݍӢOf XDOK I_P}SG89?fhlV;Ƚ<#;Z*JOtuZƪFhlk[fDM6+`پ12!WedMǫ I2Џߴuh!u\PxH`lb<@U.եLMh3YUL7XB˚ĩӉe]6,7j )0v[;4BZLx6@>g,6 `A?Sk[8f$m>έб#OWMZ)镊A\& zyq˓cR×DK Hn>4*Mƌ6pS:蓹X#LĘhB@m6G3P°ux mPTFt%W`D항AUk{J x :}ltVyXGvs@)3lΫjI9n}mM~$eWVg4e钆:?asb?/^7cIʎ6scqc=86MrS菣m S!oax ;ܟ/1q:aP+z( vJ[Ƈn4ZP<̼*ؘ(c:;s[m8vx>7>X8P#Wzr!'99i&ebs`dU̕ Bhv᳂]g ! AN!G]XQRKr ALA3,-I;:ʼn8j& Af]k%d%;dIljwb)bB65ޠ DP\ Q99G}n8c hIz:.L]*"ĩ BA^x6AF 7D[i̓EANr (A0SטL6RăJ 6"a}(4#~jjTW!F^&pp =Gҥ/'G)Z/FƆ;GRakk􂲚H77h9&8~u9 S1W: "\yDx~ε1sI&C[ ^\JwxN2TP >4@Yl9)N l,3zLYԀ捅>MJ"cC V .RYtq@8fͼ='`"hB֠2ֳ4r"N#RVv#J78%",6}!j n'5N ٱ՝O(H)|K[#CA(ɓ  S(ʏmLjfth>=npX)eR$F8sKVjr pN)DTZ" ]*0hHyz@( +ע'*CEWcoԩ&ĹumFPs3č#i=`ND%>^.WlRsKꕫ+-2w"eiE E#Q7&a8zŇBSjDsg#PO4VDSQ .bL & z$`K#%>9%u!Kv1wCmapS>;w3~64rnŠ1HT^[ڶJbBЧσ1p~%i>vpV1 HP(گU*Gő`#Sa S3B@\;S* 5 k &A҂K[ GmNA @766'[ceFrop JxBOw8SE hd.%l`TOmr! KyAIgbk0&h˘ :~mєnƫk 35`P*U`<QD]ϫ^P+Ap| 1!xG@!c $ Zgso7yj 8;u(X}5q I"0xt)ԻƸeo]!8v2੎R`]7"Y-m2vE#|h2f { DyW&6A[\F1xiQ}gD‘ Bxa.6D мC"NtǬNu;~<v0g/S R<=։"Hx 3Q3t@xS77g۝0`!W5N Uv΍+;jFpN BR#dь;(bl_w[baM,XOmfR·lDmò\edec.tY)<Z+UC4Gp0*w@I*?nelHbXVt̜BSѳrNGU,ThOFaa Se9bC D*5;Kqq+ zBoøkBn[MGJ{!HvdXtݸZ-*NЧ09rpzDQuӕëj a5E> K pbpCi,s =>hąhS|ccrU7{ցQ掵B[Lp`|2R-vqe)Y% / |HU|x/{}% [\\| !4ޗXYy/C'LDaPv$On<8 Ku0 9{xF:Mp7 l`=.I@.W< O,Pd0v)^B.n}>2dYc[@*t$)C(ŃcuV-\H\?w@+T ΉbR^T /k7_F›j˶*JM+,#%xA y~em5l0 ^ ǂ@|IB(Q(-; ˜8?T [y|i-Aȯ<ڂf ePU5؜Ϗ,Gf:@  x U+deA^0I..̏Ҭ@  T BW4Eu^ۜ8< p?N`mŔ"ExZ0r5 zN`Жu#=T1ňzfD 3 |oн:&dM-+,ӝS홍M `heM9ð'E`ܰL<AE఼\aXo R}4:Hu9`)₫#a 4O`fG15ȉB P[?sudr]( @bﻺ*\!ƅשtQh;O)ZĘ!h9Wl[z FCa<PSՊL6wSa:B Ʊ(& 0-LjKP5:"`{n70K,[ jIJaCbq7l&#@^Znu`xI{A|BKmQI39wɠP0rUt3IXZCJzf x(AІ:0I7l_O @~ۉu[[ĒQT &v*;dU9˷ >Sv @ :<[!"YV x 1$5R3'@>$%Zz`E)tI+4Cj!`!Xn/Wk{`mOnnx)*74uvY|^TX )LRn _&?7Xe2yS qJ aLU..ï *|3 Vla* {@<0  ]GANh=`~VFG+bb 8l c AAs>0 f!eʄؖIbٝPeVIf؉|s]k-)MZ^7 nɺ P،)֤FD| h09{ ͶʼnׁE#ktEfl)E & &@GEDxq8kHBǽ(PWtaaL…Zl(KkU!P`"$5f Ra L s-x)!z:^ơ[G*$K655&aH"gIKb0xO˴ayͶKsuv̈́)ԽGN|(0!DꛇÈOd !o? xS?ZDFTIHZ%H=\ydv.e~Vܚ=RFB@:3I=mX:aPAf&<C õqsY\aSm**;Al#H!Ԣp;'`a 0)db|)4eILN|WKl,0o1Ǝ6' 'p9qpFB|,\] 9Q9,}l3< :FSx_A=ܾRnެ!=ob#ƫ.gB0o *D ʵBEV ~+%zlTR&FH){c %yv}pSĽXHW\#0x( n+pvE'aw:r :xXĉ8p Pf&#(0O:T?˫]NSa51*XRHgJp2"qBӬI z $<AaP0w8LI86 ͣ܉G&+E ];^;?gnF$otE0gp *n `:D&i+t42ؙ3a SN^6VN2 `"e4)qHTZU>b'蕽6xP[௪xG2JyS"-`nq;h+@ #Eh0Sh8ӊ&Lb5 {X' 4mj( F͑;iŎ@+H h:l`LT4cOw5zwbq׫vt]B2RjqRPS0!')88޶8^!`QΕx8S f1GPJXP'c@pZ+tS&e'ZjaHS6uBoI0X1c)l!Nq ~rbH@* 4BN' Z{) ȉbjqp;RLm$'xPqqyjlZj!D4NJ°ZlT6Vwd*6Լ߃Q(RBZl&K Y DCA"FoP G=?d76#!< AeDzL4炟-xp/l,lg1fZ. xe cGh,nֺ 5B!&&35NRD763 "@R!nJqh/No8''75M&w^h`)&/7KBH•ckHlԵ5Ęo Bk1ɓ-b4*yAL_v za:O1 =LOou`΍*/gOtUF' 6p`?ļ!j`z9tZcۡv|@Z0yh()e 87kQ~<$֯p[?lpVPFvB@v0.hC[E@PeɀS"m&>,d?)O*+44 kAm9 M{`#,:OkM Bxb]MWrpT%Fv2ޤ*~#ǫ%Nu"+p0:! sIL 55Ej>U=͈H cTxF Ŷ74q!gqϞJKW\@]E" j!J~'#MѰB3Y , 3#8ZJVyW̅ P eB!baȬLDN x`C \#-T|#A|]l,Qm1+#`8*|uUF/ƴЄ*H(`a `Q sO0Yli=YvcI}Į0.ஔ&6'9ZaOS+>(SB 0SHxAOLhǣaHiu5}2(B.Kض4|wǥNތ"aoi{ "Eh$`. O~Ё#hIətCs4 (j MV**o6]q "v-s ,NGkѢTepSæj2m-&{"A!˘1"  icdt#o`Ae@?DӅ^>@:tӧN*:p;q8.x bqM.ɝH])md䱼Zd&4 xΏb 'ON.-Nya‚j1 |OSlpZ>x%s":932D~R! ̟ FZ% H CN:tӧN:tmdOV5F+ t[ᑒLȩʝ D~ޘ`c5=[H$XaI@|t ՄfLb,!jtAtFhȘ0bl3%cj)b!F<:4%=x" Raؐ% ~yyp-.xa:9SN:tӧN>߄[=7w+S@&>QPpl ǀ<J{IrC >_#|mwH>::Pgt\Py x(Qb!>D>j*DTC- >lJ Ǫ x̀C%=j>E^BGuzYN:tӧNN(ʘ Ӯ>a1߃ #3Rӧ MN::pвD]<r<,5~0cD36`HN::t@D"oG84!0\jDNBa%*J 9ܲ_/xʁJ|Z6 !X(~KyGE! JHo.)JƅWuBı# $JXB%QmmDJ~H(xeK?Ʀd.Uw0㕪~^ov-^V.bqЦbQA!@!2?$I(_qzL j@P*W~T(;qT]|VTl }H)$WqcL<h<GI#,!*|&vpH.(|$z):}Ɯ`K/[H B1Bh^%~.j1@ZBngsW}Y3=mvs:TZP8$4H yX} ZEtIWU)/LjQ}vfgآsž>jĜa %\Fm ApAK2?'A}y<jdVTU _->ׁmZyr77ŦOTO !|כ,eBe"U_TU~O`Q|_/mOkA95sO %XHX%I/Ă kc e|B>T%Ej%"ȵ9FB.t *x)[o+Rc2%Du^ε)IuZx@/P$Q0uU' V~&꤂Fחlȡpx?76 PaCBGAH*\J@l.Ɨk!B@+VZR`>!P_!6=BMUHKⒷIь`%40`L|$_r_V}0K|}=m_Q)UU!]Vj2?Kh F57bh0x q1xA@"H^JpxOV+( r`lIK҉@v`S Ju`XL?քawrq""s!I=00)DSD0B,#NqJV7 6&L%X ؖ)e!$' &C5Rp`+@Є4I`<*PK '% :B fmʐKN  x8 @!" SR DYx.Ǽ4Pp,FPS%N)tdf\$>M^ɽ$^` =/o*o,$ RU$5:1xD// vϰIƱhihXzX;%*-P(u.AI<[UCfNMׇ㻞ۙ#t* 8 }P[y֮KyRV*~V=)8ࢱ(|6|^ x+@Fƀb?_P ;TJ~+U(= 0!A$!m|p(V=+A KjF ~G4E˕ꋂ _֨Yqo4?`?,wq:@Y< LV45 S@^Ƽ:W;U@uV.JYnV!?Kx{,KR{iBUMQNhSVU1t7AI.|KPn@8+OJ#ՌOP(x^.+/LADTc1uW֠0n'yS:txh`OjW"upt`$\HT}Evj)(8WrjPw@ĿK 6HJV]> =pOE>WٙIJX6|"Ev Jǃ6qp6~|| K/Ћ0b> a V.ϩU5o8 EM*aG@h).+V>WDx?H%B_1W~PȩQ%ITvk9XX>T O].T/0Y~~ */T ~]T_&ht@z A֖ vnߑZ#y<NQB Qj|\ձꄌBQ! ~ɿL$ <${UD0ur,KTmdka V(D,}`(}| E> ($U~Ujczd.`GJEʕ)IV߱^?j,(_x˘ٗ9\ *|!I V\iM% P4 > j,H7L#'T*UC_]ԥˍ:tP!I3 ǹ~5ń$C*HɁ1T`!e# 1XҴs'Em~ .m wEjT_*>?p=A&yMۗgj N xu*4Jf$)>\\2~)WD..?V?U'Tɣ&k7p đ,>NP TH//V%﮶oSL@0qWYpS=O/LgORJV4BI~uI{RG8!շ%vy-A.ŘӪH{$ #S7pG3[DOW Ev&]*=QMV3YS?} 7p94XS*H`UPJUp!`AT>Ѐ)ApR| PCGHH< ?%܃"xHbeͱ`9రSˋBaAm9;xH"LmGR^?pt =gf$?u۔S+UKKca yP1xJI"$"^w6E#B]K`h!)UDJx^ x cVpA$.TIYdžXIJ#obd./n&맬 #~$9}Q*}Tc`OĀ`9]DlǻCP]`?o $99r>uj6m5|rs02DѾ~Dx| w!rEñ[=BH$!ixT>+L-~Y3X0ݢETI[HIX'Br{$̑/OxDžѵ>/hwyY>bJ^]x$jCie&U?PXl3 Ŧ[IL) -Owz|/** j{LJCU >:_[ADP+V>Tʁ |;T|}l˼/GK8:6~h(m*K~{f4Z:g*vܬmF 0;PiAN*E4:@d25cgPR$/ˁ`>!~>м~?.6C2ʧleuq  6n%q!M7ɺ B4e- =f+( Yxu`_'z^`5s;($ \w#م&e]"}q|ToйH2>Ϸ%&<*?^vQ͇,]vXB'"h,'QtR 7Z%\4}.] P!b4|]GA:+6JJGx :7Dn0i@|?"d}tJ_x KŸ J@TT|}pIj< ;˰! e4?`2O@x'j%~>d~ %Kv"L P變yVղFz\n6! T+~%6X TaO`<.V@e4~ uUXR%|~"U%T"SS꼣$P\ :SZ/eq^,>o8rZ<G U?D/0x W! |8 [aБAK Pp!*^2*%S9N@#@4yJTmfB Ђ$.>z?|?-k~b1 eT$`>@= ~e;(r68S%R$RTHt!i~x?ۃք`(y:P3|>=ALhIQx.s8XTRF_Pp% yr;&ں#ˇ74ZT`%ȫ2H6 #*.inUT?j ns(hb< x>UG "p~aؕk2YNOWmX]fBp˭V=2փF ϗQY4ݵGIzI*xmhS@ǓBOe +"Y}*@O@PXvy3z:{J$!|zԋpf"uw櫿=l/.W;xJJA INS.~+%ESf۪ӆkdwv|oJA H=HZ<\j )XIh}b`R|&JU֘+ď(XmMFf[M])apS$bp|>|tJN.._UQ H =0r[, Bt|$sÂB\W=>p!XRsI*UQR#!rHPB *tI/v7(]=0@⢒pc.A~z[o`{eWFցxIbHBJ..ςNeMMoٶ꽱T=eFo2}0燴L Q4\j/_ʩC|1boo*`-}?Kx*BɀtFx?3{SCT ˜V*lW~;U"xSZt6|E|%>_aX.R:y 9_<}9WSt:S&l[W\ */!@.8?3 nwʅGBnRV2 zzKl.3g`ܠxU/^>|%t%C׏qw G~H \̵/iǠB@$xJQ`jy#%wDK\ )}x( yVn!(aBΟJ0G O[b+~x}K JQ|쑉P|(@T}4_ UEwfٓXi5h `%R:"pxOq 0z "A̓tB0 ܫyEF@1'UTZQQ},ډe3ѡ @VH/P= '5j)#sϒ"DJ") Bj(n^,)\ZT{h֍`{K$U9x| gCK@ 5[]CHbfO9^Z@m _:6f>xeH}oap)Q+`#ĕtu ~uQqzTЕ0J.E_,?AWa}I,L0k.Z' N|~ǠpgIoR)zn|w  a-k=䍱 I~n>;&vR>%xE +X %U۱U?:>[{h?[ZJ} pDr)N$ HbX@cA ?([:GVB"#C"X"2mH͢%H?[Rl)KR@v # \z4.x~\? j:^>U3zӣA__?(zx?<]J/@E#]FYAEs{0w YQK%{@˶}@2LuUm;(0e!.V]ުx CNJ( g p2PA*TLQo;]mOQdxиڟ<=q*mٱd!!J"ivž /I eJaQ6>h2eYʤr!XX1)P~R\7/];|~ #,K0K_;(aKԀ è৫.B_ 6 [,'_~$X _ }W_RUoDzr)=ĵEDPHĚ߻ ҂AOR'F; qW(|  IYwh(KQ6Uqrq跥e]ž>BKĥJ=}_Uer^u)|܀&?|֎-bPqSY4x3N# xw6J3i*V\^+.sGS*f9x?coǃ Ӷv2HH2_ x!)xFl]|,#ɐJRCxOܒ?(+P@BQ.K˭U뼊[9_?>5 u^$)$I.R%@=W%J }*y(O{`%guյA,&c]A/H=Ԑ)=?= q'[;*EeșFpJpP%Vt~J:;O1+{Sh ^/ 4+`V>`GzޏA H# IĂ@ :g㺕*tS5UQtAiEl#2 $`L8dҸ=ƶ"] uBPA//uL54%^.|62aKGD0AG]"E<%I1r!N0- :CR/Oe.E5"y`Jf$Dp`S@ax"xHB(<P0!hDR5px_A#:DR)yŊz z2" x!(Q&-zđ(.@U(r&`OB%)sԧˀ ~R8> b\*uۻ.b` 2 z*At ?[<_(J?ԛE٠u9AlA RVQq 2p?QBlJ>.Bb^?6l& ȓZAT%HaKTTD*+g}թρ`a#d)%Z*MouHE@ İ6^ F@0g N %b!V"c0 B@D>P BV¥u~j)à;` cyQg X!E`A!ґ$IMWgKmknvz*z;AC0x-b\ Чu i/y`]A*Z;=U_o@0)=ЂGptL4l hFڭs$z_>}ڠwD@ạ\X<<:Q2] w ^s=3Wl-).m1b"+ A*=Ja%:(<_ܾNJ}D_ | J jA0_z5/^3 uZ$DJ|tϼ #_>(Gꯕ#Uk^cz40E<Q|ރU{җyL&gX^h0J.!1pPK?!We[;fn{WwՏxCbL\!,e_62M?z_~\)*% N>=XQ<$ QmY@G`Д5c0J#]DRLr> TTž\<X$ۈE*`pE=/O-巫?HIE?~ɟ` 5BOsSE/w(\*GV\D_{-D,O#>EPJBR=#5AE"?a!VՎЄ+ρ!`m,@Mvp./J=we}hTwd]ybg-9g`VT{ALY=_˦WU*?X_ܩ +A /GJ^ HUK> RҦg\p?JKQ [~:$~tKo?w0j%4-++_3T>IyBp>'QGdVZ /ceaOWUav`e w8{ -Ij_>_ '|~TT ب!Y@Kzܚl+P PjtiE mHTA?I&@pjxB8- (NzS%'/pS?E#0p!sh6(։RKՏh MLq0EN}bNuxTOswX`Y)r>=]` *#B󗃜xS%Թ__|fAK+Uěb |$+T xJX@r7> Sˆ~UH?4"ĩH P Q+u<1oyHNETgPA/F>x0tLVB|ݺ"G.D|Đ BFxqM58%BxI wGJ #P 55%tQfNW Q a]ghCHKo [+Q95a(6uUREv9&V}#<"`_`0 b;(2m]߀~/n(2p)ڀT$P`7dHdhī`2eZUyxZfT;Th#ˇŕlyuu0%?8)u(ǣ  :p|*fںv!ܔ)bCUo [RUVG!ef_npB\hhJďU߃( .;?1_."uNF@>V_1QYwqyxD f"B@0(`0 |z &Lt X"͵tk0S <AUJ?/./J`|%x!UT6F>.GݪgȌ9LJFB@JXp_(j0 ga  j+S4{D^% ~?apv̛Y2,۩)j| \Kְ(|.+Ѣ\>3T(4#r..gH6B;.0v(5 &U,w+I+o›jŖӪ <{PIawHj*, VAp=r.OȮP壵HAH%D+V?R\ v*t eP0fdLL *ӇKˇꋾ>苌X00H }Iw˕eޣ끀잞/!jP," &Q./0EJ0Qx yIŽs^%lsK#3[LrFT_BEPBVx~jqIݙEFE P|@>$^lW*ӒEiwaG[=fӃߪϺx)?_gġ-P|J/RAC_P3Y hE B* A!?mm"zV HcOi&xBD%FJe]9 ˜XB%Ku`QaPK}'RcS5?%~C$/Q 6+*rb*PAtL!9TPmGkujSO(JWe \M '6)% PeWyxHz,ԣvQB] pAEa)p!?`<`Cx<9KYz @e Jzd!. B;X5€e)L#P`%PpjF2% |mR@ PR*~ #?" ~F/jq&%vN$R*u`j^^uO %YVtؠx|mB(>L$\ȅuS .U,KWEPzCx +TRn3m/FNIK'?;")Qn)QBGSOES4\T\fRDd)>"U )-7 }Q NrujعbGDP_d89t[_C=\Қ\pX =! e*6>M>** ~5*;C,8S檷x0#[_#@(`(dǶ4!(yo)" )4HAس$cV#/* 0?WExBɷ~3 m(O|\0K/FW^eIdHKgK`Sl|V+16Н_8Uui JW7S@א8t2Į/n`1%@CP :Qłoj,)B>]q$p0(e,~ҵA }x`jJ*?ЧE,yBlxUj|=ߪ/)QpG.qW}mʙ< jˁ P<Vp |KSU$GG8$|I B)]QW7Ʌ ! 5zJ ϫEqf 1W|׵7 CtJA"GsT7ڡL8碧Œn@uMJhٰ;}QӍF2~{LDHHH%Op!QV6Tt^%+IV$"H@O~/yI.H=Wc7_ g؉ gpzx+pzyŦ Ttt{O O*D(K.|. UŤ_e "|~7+D(`?KP  sW{ݑ CF*ֶNHH !CyUɷ"ީRԤs}^) HU(j.]zC$x: %$DU}~T^?(&x ;/012ӓs.~UA bD6\ZU|I߀P 32q*J/V5(AG*~9: x۝Cu^ƺDwb~ؾK +f%^Lՠ;'N/6p]q,`S'`Fз",9~#ǭF@.>j>?cj~r S}3ڭMr;7h3:k@uMOxS  &RK`j-Hj%RE*ދ~=V4 zWiz./{j({:l~>y3-Ne\Lh]e!(U{/I5` @dKv*!{ m! d +Gޣm:% YRE*@UXZEdj=^!-P0ݪF.V0 *@Xr4ToJSx?P;R}P&qV)%}-PJ6+f6F_Қ$uM a h!(V$s `KDfŷoցȔb:1ެ9ղ!@#@4R=˕)z0eBGG_y]2=3K~="{TRI F -z_28<^ #5T1`CHæb0> Z:=!:jBsLH >UW?A]"-5Qu#ZQ=Um"@/@Tsp ȯà h+f$&CQҌ7W(Kġ(~>C}Zd8 Ձ xCJīz^\!FP5SX #*#bf iPuc8 f"A$f9xG^KXPkDgڮO"U< { W WSɧu8?L!?/./ʾ]`ڰaҥJ1Zo؁C!xV0`P?j,B9<\\!?`^/Q/WaʇPAV*T?V{I Tñ/MU_\/W bP<\^ ,\XfP =B7Ձ"8K~~W)Sh\ $J_6hKĠ\ApP=~2.򿗫?{KY0S> շ B%n!<\S y!**!VxJH\JX<{UPB#E,pQPdRN|b6pM%c";TKW|7м!{A  .pJ$.WN(A |A?U=mδEU0<((ijCRxdW ˜'e< Gou0^?BWKP V_ թld!}Z]) uY|WOC٤z _~\5RH{xW՚|Djpx3 ixx y$V`?r ɞGC cAMz޴:_vfx1FczpvQ9}85^=`D|of3npBǓv4uI uwaēb wR9! s.$ yV}|Fc !? /ѡɹiw.9|KWJEj.pftfDT7֕pZij S02p{bX, KjM'q,\DMĵeHBaC. R]Ep ^7}/DIjRPdJ]5< I BX2 m ~.J?חXBUU{PmBZdI¡mftR3t  JJįA ꉧ+ ġ'$ %B W+uMKrD6g`A:#II,W[I/WQ  N Lk 8pd}2w8Mњ0Nϰ*-c@1-z;]k0@\ua5xD{^ܙsJ*ڹD[IIqG;0|)jG"hEA޷|y;7AdTm:6.SXDF c%bR/}qJlAK)dh )[٠ݠ̑BH^i@F1|cFH> ?h*1ؔ>(?ڀ=˼ΫkmuAS? t+H#@d @(zp`?@`;'Y8$5@BD`dp`jp|A#1{Ѣ8$0|Q/G+XYJ ttpD`h6@[F\ zǁA|h1#d##i:)^;qxZqPj?P|yJ0QQx20|/GG0y!J::::::9s/T%^k?G:Kder_|F~(ZeUk"P }T0ĥtbHf0K+E0X0ꏋU^~j྽ȈǠ @800GGGGGGGG%?JNh>-k?C5֏@0 0HZIΝR``3{ -I 0;=Gz:::8?$}DApC`p~$ #AOAIL`|%aB% Þ>BCC,4#h0A@0;ट :Bk YأbPdh|hXB.11ށn}b$Y::)NeN鼚ZyeF"RZ2#ETT 5 A ㏾[2T䪯 JAX060|?€Vx>#z4GGGGGGGGGGGGGG՞Ѡ!> H(GXGv }Mh@|8|ƨ!C(H00}Agz:-EDgdj2/EKO<",0)0|ڣZ~x4W@,&}ޫ$Soacp;k]!TF\ @:JXZ>ntׂ2Oa$DQ*/Sѯe`t߀fap .E``T<ɺd  t4h kgɐT:=蒎 sh,8 0Bcz;#]V> Ǟ:~^ښ/iܓګz4GGE "00dcP}00dcQw X1ﭐ7@R;;}у, 1}|Bv?x"PZ%P>'`-}`,~?@aD)k0 >ל0|GĐ ! |Āe"H>PF J&&h{Bݠ"1CףּgB%m0[l%  Thm2A0'R|hFBN @J%@J Ҝt T ŀ<]s ʹ!([kŬV @@<p4z<YY ) z:D "d+pqפּ0e?0`Be6 )A`(h62xOSDxHZA@R`>wi(AD xX?sb7ċZa0$JxGf"5ڡEbgCNBH1r NJUJ}>,Jdc a,iJ!| e:EPSN@xĐf!p!,0"̈bP4Dq0@U;WA L &eYa={R'>0 @PfzI<X B 6Ht l8f|7mIV/2NzM >9{X tfpD@#8;lH$Jl>ԍTlZD>p@&D 5puz@ 2ģɾg ߨ&)GÑ (ͭjp@*Ӱ%+hy]ٕHEzJz"8 ^X3*zhn9x)T8#{Ɓi`ʓ&)kIs*A 2t c,'KQfIh D|HTIX>tI>/JOZ_ďᄉ BX>+Ō'0P)8`/~<ϩ!4QA~i[J`x~=(! ՁRΓۤ&U}~ D` pszDc$:m{ `* V '>)nV j!$h)\Aŀ} 0|ǤL0f+'`>୰V*|]h^~)G4,4Fsm,8sMm"+,`ƀ<1B=sn `ݣFX>m6vήw'u("@ B͂@"sN \ۦ麾+>o"HӣGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGN:::4N:::::tttӧN:tӧGGGN:tӣN:tӧN:ttӣDӧMDӧN:tѢtӢӧN:tӧN:thpP`N==:tӧN:tӧGGGN:tӧN:lGGGGGM00dcQw00dcPQD0X@' Y֗lA+ȰvYȂ#y>zp\n DĈLLB%~:og:"ojAX&\pLr0._ TsD|o9WvvFp ]P@D/@Jh0Oҽ࣫4#!G@z'fTq}c@8@'8(o@G@] ,(:$!J`vcUF&2Z"ZȂQ8ŮćpbF!uŻdBO&0@`PSe5EA lf7Z:L3# Bt)q !Q"0Ppxxh<"[#@4YCׅ`C :4inB]vz <*mlF6+Ĉ{x [|ic @#W1ԧ_(xR ŕ7$pv@Lq VX;AK0`8lW/"B/ d d` XZ8`/S?S%R[4l1[(Ih0L(-qX^ e OF!w(<s"t*3($ Sσ ŒZ62XB`llJR ! q L )8 pR- J0qpqi[4'r l"RGAHۭ4n3ZŀpPs˲XȄ.e?Wc 2\H7al>0KP،eGVDXA8S`{x/ tjZLA`\ ? 4 jEO&cxN  kP@0p0Px/ʯfuxiA@@f|  < q> Pq/žs7FɳtzoH 褈E#D`-PX( ~ ʲ^āMB % C%4G֩ AL p0?O ; .WyJ!Dql"$-e,p)?< j2֢80d k)7}XlRaXuÒ,0P'<߂q <th#xx<3L`CCbYh}% x.q9i ƍpOѢB.@/򀏂~BWhd U_ BqT, hB(!`pG@wGv D§PFdpXVx u4(Gb@a&&؉Ȃ0k&I6: !Eu,gbl<g|`)d%OB.Jk:@8hahA,iBh I>F @hQqq˃Q`MKkLajBa xzEѨ,?4.XVN;\Xmhz,m*~!$\<5R,ꃈ̭PiAS'.,"FϠ(KѰ)}F6TDRAh%뇡zo vփ48DCI$hIr&&ԑjbcpr!sB@pb8d?E*z JācaI ¶9!"FŸM$ᖫ 4N^T ?>+fix ao5E"\$H& OI0s׈aSA5@:K}c«FAP iZVg +1qXSHDa s¦ /#8761 !d/G[ P S,J B#&w'2x%bv(p,rJ°)9 op$X,F\Ɂh"dta8,`!Atq-XdtBz2 BrqЖ0p|E)x Z sڄb$@8@DFŠ AH>L[AסhSXyt4_5;X828gO:m55>2}Djr"X#I+"~6{+2@*q⁙$9P]c;b: `rD[_UF* pƣm-j[_00dc$&R/Aj1P0ږdl 7#Lma? o d~ vQ$a"݁ fڼn0S }J^4VBjNVlWfJބ1|ܜ6h3@M uąֈF1Q0 TOh-xR^s+wZrU pI_.#nwX! B J!Ig6pI)nam: ZҁMJRgwXI@ZOTЅwwWT˔|! `A n܊9"Z @1~sD(pcl,Mvʕ ;c|-j8:7IX nu&9C-Mh`8fpTU@` e΅>#Y^6DX)ı:CX"q`0TҰn`)b56 I7uv@ҹ?RqETh9Uf1ݚ̺}Mw< N62bo(cey@7 oAWTI}bj I)Aa@lɪa  FiZziB;xHyO+) bPB֌Ё͢/[ X LC. KPu d%&@ؗ)ʰP%\@r5v\F^v 'g 9_4${s_ؑ uZͣ x@b3H0!n(AFv:.I 8ᑝb+]fX[:`l~q _UHJ̾?0FHZatx0NFͮ x/}j`K@l شiZX0V)6Ću0֖0T-6 rdr~(RZzo@0Ky]NQKFK3_۪9TRJ5!Z5ߧv4B&؋H)n7!e;#0\x>Oz#d gMkƘγ!h;)BV :g-b􂖖"NH1JplXp$)] /H|:Auoyte8H %M?:lLxV. w9x%'k?G6&v%nFjZQT%Y*S]nO@O y(AU& CbOS0Gzrg u2j^o<$17_E_E|x4Gγц?gZ1 4F,0gD*|)k%nQ{c&⛘@' oA ->r[ W0B$dXm4-t^#ZOZSL)ϋA )$*DsXj3\ةEP (Jdc`VF;Ipb@3Ɂ#I֐86Ь)Օ8!>uhBJ5B:uF2NU(<$kaz/fh"S ze d"zp! 0%(»l$)Ok-Lx(zޣz(SN* | [ɻ;R4lDlLٓl\S7SjݤA#7Hgy0SZ))^{`( ɗ me#j*TqH)0.#uՈXrG^SU[Hh)+ c Xz} …eVcl`9dK`h AW&CF[JLLHr APFeL: =ݝr$KО&`N <IPB}NK8Zn$[zԍXHB< a(@H)U;%~.d  ~1Dk۷T%lmYa S0 {?~yY<7;9r4lg/j@KWhAA G8L̷d.DPQANÅ h;(DF6F&+s;{؂½DKjLLK[8Э:) 5b\X rY'cQd'D8Rh0B8~ <\(ݝiFtl0؝-tfdq&O7N'ӑrIԤ) Sɪ$e?X 3=qDFQނr<1O&qn1vi\Ǎ?,!k +wIBѲMP@LueZ[Ң٧ c+HQzq(%>&X0=9n%Ʒ!1֚ICrQaJ$PqbBp0T!0b2UX8WÏ  }fg%ZH@ 8RsE[Oh,`AdҶc"@fD{0! @LY|02AMJ-39x<m^960((<miYoI)Ԅ8;4!2/><,gC0~:ʴNAx_`v> | ‚ ʁJQ100q662 az{)uHDfIANJ .t%e40;NNA^ #+LÎ./7: z'D QZp$҈,o S@.]^&0OR@AHz 9_= i 0p"Q*B ,tvE 1 @qK.oמ[(A<kf& 4ivez6'&z )IB3,:D=a*lg<Ȟ!wL psvQ R@SGI+Ki ǁ\- Lãx|&'Ms  ,:aȸIcĺ抺t F!k =Y;Ή[ca:`q0/M $OֺJRDF NuXdOVOpT+#h ŸB8nnK`$1蝬L ];+O6vMA`u@T A `2Pa8(X単@BtG2\ u58 x_6p <j> <uB90{6 h86!LoZ' lMq2Z"p<, <̀\@;p:" HO W(7y FLģ.徊^bAz bX8.FȜ-gD$8)U{9$FXRFsT3dPgvECˀ2APS*;2OetZ aOP+aw55!@##; `S GNc Hnb P,|!Ab0 -Meo RNmgctJx)mWiugFM_ o' ӆ2 AMG0C$*H0ф铑 žL`.(?CY1 rjhIΓA}V(CxT 0N"18RsFE-VA?% :9iu6#nI6f^@FI>TK,' $1G@CYDX*@|]@P$T¯]Fԣ#i]Xإ7oC7iBGaMxxDVʲaEIe 8gd%)"5 klFw{aS8@vDLx*aWX9" }l]Hر2r?SчӑX.8R"Q( i8B2r`\$"kdLӃ.iAāK[LXɦ0!V\@* u`@ $kB9`1-9D8d.ڗH0H v)[[A.pQxBOI_4 S,Q0X-DiN(2rsImOA1`2 ~k a,VަiX69) R0\.y _Z]MbXd&A. o^uG-qYt9֨ 3Zj#8(L`h3e[;|<H) FĨ% AYtX4e`=e Fo|okYٰ5@&M~>%`Xy`B XR0I<`2낙k_6~4Xm9ă`SQC?9R ;FnJ/`anE1 5FIA=Fdcq!ɜB0 PQd?;Dm:0eHPh?<,p l8An6AA` ~Z1TXhZi4-% a5T|y405J_϶J沤`;x)5B0|2~ ~n(؋:dIxK߄ Pc!SHf#d(&KT)͔!0W8V )JXKx_e04> & 4"p-J4`,F T݀8y9(-cQ|ȄJ~'!cX3b , '1]| (1DT_Z5C3rC:2wcMv:Y);&AhFz# ]3; `x$W@8S3ހx KO$S@ ȵh_TaR ~^"N~ Ѡx Bajǃ6PckCS ײu3̫16g r&xA#Bޕt10081cTGtqAL 12=)X tqQL&p|80|A` F%VGGN l)aR:8;(Gz8!: ӧFv@ӧN:)0R rtl:t&q闂j!p1|X1!}0)>wcZE;0&N:qAڥV0d)$x|o~?*VlUK< :H>/~5 J؈D`H 6. |ʚpE =*BT|$ULaU_bʿh.R^ ?OϚA pp)PH^?Ed \R/2z SQbi%YVZˁ['98F "wC߰T+VjLZET>Rzk{NR:~ A$ zh'(`!+C+uZ| *`裣 #Fp`AlHƀ?j|=pO@MIG/W?Q Gpbdoih$@d 'hgHK޷tӧN:tttttMR*"T*T_%O>j8z$\s>f)h"щj;cڥ <2fmxBJ !(d  *P$JC뾭_m^ i`jn~1Vt`J1^'9,W{De103-Az[q.3|OP=GGGJ::00dcR00dc"S}D޶5E5NgXyR:McKz%kI"@e!"c&Q[9hVP x@Q_y6͉x—X֜83igPpIcfT6Z}@N1PN^$0BD﨔 |lQXA"gu}&xK$Hg6mp TO`?- $>xOnp0S:y0' DG6P.<{x$> *a8S/J jN+B0>xg@^WAH,IոkB* |"g݇0 ߀` rڀD# @ `e$_!.u JCL3?33r0"!!P:ɌhN)&^G!@P9L`lad'׽lDǍ! lŚc֥SΔ/\^F{2#σ(+&1?:}:TU9PX%>jC×HuCSC.ҁ0jh-R$P :&r͠~FV&H _(BRP7Đx %+nF#s`B;/gHH >R]($! $G-#!`< K6AuSx8B()v\!%υ|l  |+O}1"wq)ԪХ9yQ'*tG66pK0e*?h1RD Uk221 |ߡn{SL~e2Sv+:VM P` Sx0**?R %ے}]=-7ܧ$D$x!dЂGsAGG e@?úWiYprc;aH$5:'4gȄ._@=5eqvEה;(=sy;ʗm+P8vp 2N<,(tu1@3F( gpJ&WPtΟC]  j'간#(ZHA4 RȺ$PE*$ӽ$sșt5LrRP93GY~\)e0H,NYREƿn7XLܭ2fȰ9:`7,dh;`P!)}A"y5t/B}),Pr,'ん!Jz`*1zv:&OIBlA J#xV\< w  8@x8l)6["y : ;klJ5FraЗMQ8D)8dp>!٪n[W%=A^dz3,Ā N}+3]LBp B;$Z%-2 T4>^ w 8Kڦ0 !ZW3luzjyHPVc@rEI`Aۈ6MIzS?M$ g> <]|h. @)|\GjĘ&%1QfvwSRfT1[tYwv)EXͳ@aa=YB!G`_!*۲"v[f  uxqRohVl`WLI?h/ J[W4Aas}8V ?@:ǑY%<"Œh[d\0T`d=kekr|sނ@ud@Ayg* ѽhR+:6 j%bFHŠ6We q ? 2':gPV mpxBA/ȋl. #.ZApSl x<n}$l\ʮ ߷Tgv\lqq)|/@C/XhT|v=Sjӟ]BAm`WʧK7u+@C>ǿ/ZjfZ/H|*5 P0ES}Dl ᄀDj_VK[ zfPR 2bGy[is=+f)K%![j"ކAR:cdyD ΥHB)Zm mшR(P qRx)H<5ȼlBPR ) ]0<caaı}$7/!IPCbDPa0"ȊN((0a#v |<^]^ =Rj;b!RA#X+A TBhq, 'iʠdDH&&Vϕuwꊎ2$-84Gv"i 'xBDdeehq`:l1R(۫CIw娹OMYN(R篦)p Bm}گ[b]/ZYF&'`%KoG,eƱ=w'-X#N;ToubҥMԝ"bJ y^'u9M=a@˙|ʶ@05mc>}n-PDLd\W0p }`5ﱴSC"}>"b@h,.H(Jđ$DR%*wL%_| X^?)Jn)~b1" fIxKtHFQ#MLs"&a=H\?.qM!p.:MO`2)f@0lW~uC߂5au@5o"h!.;SU4Fў}.h &3hp*᱄YT p` h< @8]ReāMIyxjwDjT  ~ $ _e!~;z_}xK3 8K.qtkT*^d^N)@ʁAH-A}`y4|-# ~7K,oo@|,-QG8@RD=ǟSdPHJxöc>M u' IJBqm%H`84l* PaPYk ɲҩ$6崳 B44N!},WGjU9[L#PKQ0jsxu܈.@G1Xp-7G"bsTBjfz~L Kت1xG[ #H#>*+Cx>:R_0'k-,#Б VF(SV 0x XAe*7 5+_@9`f_a Pa蒨wހmQZ"47 0L By==-?m̄@:fOEʄ?b߽1$OG<*0yɃ'=g[(P5L,ߨչI @iH0;UAB!, E_*JP%feDU [W}EAt4A`B _4?rs5q+ݫVV_6nxFsaBG7WL HGDV?l0@7eBA@]#'2;.x483YcF <P?S@+ 9AAa$!x3>a |?=~" @ت[=袴!&lKd$<  >V<e\c:f@7B ˊ_=V)}BDI_qL">x!C ߰kma*:WwiHJ\T$[grj  !A䭗U܄++*!w~N"z(Uݶk H.omr1pA D|SWWŠV^(Sے#mA& 6x5x/€`Xx%E cA_vn>`Z!\u`)́ ap d`ʨ \,ޑ@ TAdB^P ;@:RM Z€xA~ Pv2I`)X:?ݒ-5&#bTv$rjXE\'0R$v l,~xDR_jڿjԖ[xx Fdy_[b&WƛzSRp` ~jU@u5peֈ`*yst1G@u~(A35EBaGM c\$\'ĵ n}\,{+TD!NM MJ"=*^?x+E`2AğNbN5@JF4ϿȥDk2q 8?(b00-=H~ ,K*V^rCU"*S?a6<0A@x"ӏ(00KEr5{gǕ-_eV?Wlq:HV+ʈbxXmG) U69DC@ ~A' Sδ"g E _z+6;ŇƸ<7(M|Mqq`>$﭅":_KA*VBW,-4Cd,6 AhZ8Wơ9Cp V<ְlND?a{X%3Qix(Kv0"zia9WkNO˒/B1@jU)bz4:#P5DB˫1"*Ǫ:K)!|)?OpxxV0-b 8J1sU{}% BpPcAi0>$ai'8Fu  nW*F}mXϯPgcz@% -QP/-!Bڥp)ø˜Tq[~NzCӢZV2xSz A}'G|K6Z_/@t@< 0,{)ͮ ড"p Мơx* ?JHɰxKF#M4# @BD?T<^#ZP ҴHT9QWQH8nlF=P@2h0l1|*S7#nzC`2vhj\Kb2C6<Ã'ց(e xZ`Hxݣ|iS(<iXJH` \U0KXC5% *Xy%!^I4IO.gr<$@>gBP _sUeȋ A` {U@xH-A( +?oЮ }pxf@;x_&^/sFqP^|<{wBUr9™ΐ@+@Emg<;T TK+C?eo-uWx(ŤO6!$FSV.1>ik"A!@7A N:t)(vϟ 'LnDNeRjtH 1(%N r|(0|Ӄxtttq>7U%! Qҩff `)^Ua(d0DTMGA6N:t8NӧN9S00D*18Pl&N:tpݨG0BB@P~~}V"T%Lx1uP~)>.̊L"tH?.\8*J F`YNx @`(4K*?!Ɇn#3C4{:@I Q>#G!}Dlt?MQOfd& Y֫j1%إQ?HBl~-Qr).aT e#ұ`/OP PbUXG\4p%R.V\Z_lͳGt@x*V B0~>a u0x 4>ӧN:tBWw=C<<@afFPCta%|89ɹHT2WhѴsN 4qFmMeVFOVn/\>yf\}|  o7MRҹ/E?v)aK}BUa *w\Z/ʱcYpR^.T%|O7d::tt£ȀL|x:ޏ/V#8.R^$϶+\{bƭp IB\Q- `(5Xf< GāXk/y_Puwtz5KSN:tt :p灹s+ttӣ#ӧGN> ːgdK; ӥ:z$DtztttttӧGGGN8`e:t"SON0 >4NyYup%.`ģc@. JSN:tӧN:t͘>o`ӧE)ӧN:tӧ00dcS00dc.Te 00dcU_ $,"%Ayν-?S²(~COSkL dhx<z'Dx,œ4(C6s?]:"\ߍCRx?UH $  4}Zq{px_ҔwwHm*':ih @(B[rl& ;{> TXﷃ>@fi#pDЕ,H|YzEe_?󥣞SC"L;8$ ՁAS${x11P` =R(Ils7QFFTG~?ƳY(h0!Jm&Z2-q d+F:Ԋ؂ r_k sNa(tTv=+ɍg領0,| ؖ%˒C1:#2} U]jd>,px@l>smӉ=-|YLx/--: @K> CHbte(Sg5 Gxqohyzl7K8-82pCTuV(9g|Ĺ0 x %>T[Pܷ>G}@}|(б0(Lz >`ܴ vG``7Ne 00j$: xOJ >4"@>!xDcox@:=׏Or(0)`|x앬D[ĀɌ P 'ꠖ # xUZߵ jA(Dǀ|"oLt]"ܱ(< x*Lil V!?UPA@,AP؃ }_AxOA=P a J0SA0bOȓ+/D^we]t+&H\ω>ZJ zȞqF.Df;N I Jdk `4|X &+n 0p UxxDJ|d D`B"hAL đꦼ:J PlLpcxh}b#tIɠ//ԝuC@|wE|?` } %;PHZ4c@.c1`AStV>ʇ|'qRD^D0 6 CLo.~(6A"HABĐx "HCB>oY>> -C`f(&0Ad֦ZLւ:(&\<.DH JN 6 FlE ,N<zʾf2YzQ[Hf, xI `A4>wta?URLGL| a<nIԑF.0SaI)\GPW5mp\$ Ca5Č$XyoEj(D4O ˁӪҵt  ;߾Sʇc[Tx8]HgR 8V0$%4?åc/A@X1}*wv#Px%H$c`6!I  ɠA |FJN^#KwCղ8zyT=fq_s(Q8UM4o d t Xip^A`Ũo7iEX%cFW6#_0h2 `vkl@F% z%=`AxLA/?ژyte/t4R< uSQ2i|h߭x +Vm>m90&UEx8UrzrPtb<bGA?ˀ4K @ !}#Zd v&k _vX0Nk Yv2^k/ _II$B`H>$⾃sI{x>`? oPN.e@$6%x5|?LM,ݎрE|V׽ٟ}k;_}|_}Ь#"A'؀%:::9)FFcIR::ttQ !1:::::ttttʝZ~"_1::9A tVb F"T j9L 53h㢚 }Z`)=#GN:::::::8``_:::::::tGb! f::::9SF eU~E zxy+ژ¥w9(@+,Ǽ;=2ZVUW.dsp̘`('^00"+`0yWXeč%GGGGGFӚ11cź;1C. K MMiH2W[Ews Bkĵ' n/!Q#qH9U}W}5| 9x>[yjL"2G0Z%@f{Oۅ-tT]?#y%$3@ >@#(!~  oñ/Si<q:=@ |2c?۫jGQG38*}_ߢ##?R=hD+* #*Op0 h0>phQyP9&(D^]/D16k~T^-g

    1e@|B0%&N|- Xqja"pօW%[^Tl b];O>f[JިW(W2 WUұ_Tx~lL]OFVS*laQ]Jɿ2"|axEبK/}wh>$V>.J>Z~* : qX_/M͊GKEr/.>goG(qJGݷD`BR| @|hUj!8%hV>H?QB.@,8=>%> s).ph:|<)xx'N 4IC{̪0f DvD{*U0pʡx0d7Q]ĂX,zؒkĠ X(CT@̓!zpVqP+y 8?`ߥ @h+ hVZ]VŻF!J[Fx zrfݔ\&ž%yZ/Q4^n6ˢ!oɓ:sB3|dmWb妞 3_{oG`a\笾 > $VAF ܊EJ|fDBJ} Aa0$>Nݒv&;UCP(rs9<HꪑuΗb5T-Oꪼ.Q x)T) :w|?+P^:٭TP~$:%=%\P) z֧0n1J ~}s@\96rнb`6 %IXLmcDͨ\NUu$a4XLm p^.7›T$aMN4HHA C: Pa2h!cb 9u"3?8?r).ViaGDvK$+Tˇ/[.%Qu=MP :n.WG" K}?>\ x xHt(!2d}G:>dJ3J/2c~Hh{/5L= #Oo.u_DP w_TP=QvYO~r}A}wp7j 'sʀ鏅?DN6H tK{|=~'3_dBR%AI˹P6A\=r~5XhKf٪kEOj|U~I/a]j)q[lCؒ}|B `E55΍ӉGX;. mT쒚&p(=Jˠ)L[3'%hCmJE 0yb@`橃'ʼnAӠAZb`>\~Ştax =讂Ǟg*U *MR!"B|Wdor|$x~4D| ?=T1PRRꋽs:K0#Jd#|{*> fFRTU Sj0GG-ڿxt?#>"\r:|wj[+R您R;TUWqn }\Ώo3< {#whH\!|:Vyu> µoI@w:(k2UG@e;*zX)zT]rQUarjx! ?1'd&]U~y| \<tz%+|FhAǞ3l0=UUz\^>`FV0;ڠ=GYp |~D}1_~h3Z gz>># c<=.0^ұ)~^?Ż??(lU\JEΠ*Ѡ ߯>؀dԫLJ/eO DHB}U0F65TFylm<~QE}m*VG> n.h>^ 9āuUl L HCJ>>ze*n0  BV\A0x>VR``uh?odke HµOV^_P^A3_VȜ "˧%AOOVkUJ1鼊( =\uUt ;WU!K_*W|Q5џ~BJ!`7?+t~@2%%+%o>8ߋ|+(VE E2b06!4 (ʢe7? F?%D7DELld`0XNXz*JFDc`ipAiX?e 0ln^iCW7agkˇP?vȷX]K @?[ݓ"~@#x}*KVKU:.T?W@n#tvh>4Kɽ*$G^@̏>XS*-)oE5^.Fy<=,&Ovq@@x@?F>Ȩ~H()C|O).9vOn/%XS*L<iN~ʇ[ j/UWU*+|_,*S3P77`h0gǀ$G F xb!υUJJꬓ}N]jB˹1RE E[CF#s}U}`G@.q[BTU?ޯȮPP*U( ? %XgG/k}&窆1H#rlU< ߔC{_}jFsPEܟK #UThΡq_pK.WU籟`. E+ | ; +We\_3j4\>0|2N@DoU^W|o&DH;ئE78 }p"p|3|e jc?ɏ)/wiT>',"*0 _~K ⯎P ؕTAjg`G+ ust޴t-.'20F#{7l,-d2+ %pyUةg*ΰqP H# }e`*RR'uX|#!_*VEâdƀ,J(AJG7-WK>yG1z< (8-:.`G6 Z30^ F.T!*d,64yWb@U]dn^( h@ ITV@2C`L[!` 1]\w-aBj-Q|U+j{y#'LW: d*T$2%1+^]bV$aUD.S2XO(U{GQx^H.!vσ-$j؉pʙgr'RCu~\/J%lpb+x=c*jǀjwL||_%BG>饳u::F=|xCUWh!0WD|x:>Ծ~@8uz?SX !zVx N_g}LgT4X*/*t5MJ ~ BpG mS7m%T 翊)3QT`///J(i}P?WG@$|?TU~/;@ s *;E _IJbl`)"z?U'H9|4]W!*.ww'߄EʕtTzQh0.`w} ]or~lx{h2of0";UtDlFTO<dʍNF7ױKx 1{}@x }G ( B,>_`NeG|x]S?<]KCT~ =JYrU9' ! 5>A*2OlApZc5*tX&*@MCq83^tUe>B|$^ՂE 0KJ;L$`$dv#ᴘma02G)S,Ħ -Ei*A)SjjP'ND+8]PD#a-[ UR!ES!&M@(Wt'9 0 N;+0v#b<2PxO:p`EĠxz R':8K\ 9B/8$)$@:([K6!B"`>#*(tAh?dPA׀Ⱥ)?xH0FU=KS ]KR*n[!zzZ4G(|i!aBT Os':{??=v^F\ BV'JH⬡A/6[UhM &18;4̃@<*0 z #*l t\]<`(V>Ac/w⪨1TTr^(1䟔>"` O$*fn(ħǟS1.y_Dq/0/_| +p`I8 "Qu "%dKUxuՁ\u.[`?T: o: @ ᲀwAzGZT+ˤ!KIn_A|{j"F`Gs ]:T޳Y 7g@|Xz̀+Op #tL$ "XN`0-F~AzxA²b h 0 FFMAj2PUsTaQ(@PJDwpB> $}Xp~%f9Ap)UtP68I@xXI Dq @؃`P_&X,~L0!'Ӱ#+s2 |xHGhvp9EP0叶Vl4&Ȑ XBoCO^AZb( @.@lBT[%遃|xC`0p?d~ @<%`EPt ^#|U_I@ADӈWQDtJ] ġo j Vw"$ 1ؖBe3UU[ * a6wpCxʡ;=Bڔq)~<1aa *~ Gʕ H *T_J}/Qsj:M2+@Ǡ<=VTdVڑH:!Upl[-V_k)ږþ'G.PR ৈ#T{SjaVsUNLT:GN%` Gψ,"D(2U7"Fl/ˀ$0N_KwĘlDhnaA *`* OT> j/h7AN(?w; T )VnA [ t_8Ox0 p4G30gA  ,@; G̓c p!p!  n0[($.CJ֥s>Z$G+VD82?e A/8 )..YX-$DW#eXT^$/(ԿC(d**_ƞ!l/CB5H:d}J԰ʣ/Xe( BA0d GҫCmVSPx&:H ~XoR@ F.D-mr.g ^:%4+Ja! qOyxrxzX ( Կ!/Y]to3%Tjpm}Qp2 fZĆk`t~G=;`|f&-Kxv>rGsEJ~U)CPpG!uDc'Eл&.x/7 *RsJBV`0Օ`8`#R G){} b6X>X>kX$@.  .<:;|Oi+ jw/A`;q|`Qq~GS1@(.o듿0 i U<*t  \Ҕ F`>0G><a5M aA Iz+(/'ұFf= :l3w?G_ V 1骀(|@PI 9p`xX_(<'ҌW@P*J 8+DuTpP+D XY`4P#A`l41$@8HpB$ʨ! DlwB.ůX@8I@;m8(.V6m:?!d`F-SD-\(yO Pf!D~8i҃R8/ 0-=\ 6%+( ?| Z/MU 0"c ?em&9x=IV!% "Ǩ/8X6p7HWm`5T)Kuzp0H%6 J ˈʇpE[%!ޮJ#H_~uG5}?ۧ8(goԶ=AHWW<=_r@|?O*x?eU ϪW\wনXoc Ӽ|Us'R~C[h9O7 p @Xoψ!wK~w z<*QKaC{b(g(=2p|_e˳$':C..VHx4Y Wâ&}pgUbXP^*/%* Baj%[@Pt|R3OrGo\mfh/]rG-28z;A+.. ޗAC &p$z P%AX u +G `=ED`GR*h #~&0cyF|*?zOl \m+)>4>5P~xA<FbSX\^~%$'lȆ-i*5pL!0 t6Id?r 0|,(@qm[>$g`*R@[z4@t>28eSʔ JE>83!Xx |? @T?.R 00h %pRkYAj.Uڅ1EV|PV*xK%OT]PJ| _>كuM*>q]lv{ҥ^%0 yOܣʯZ߹eH˽nU FW/ gP<@2uq?am.FAp4XUY?ʵOHd}d`m=D]dV#3H~@%~?@#JlzKܨpGW[dj(aFET74.sn*MG3%ߌ'ś*kGcԭHѡ$gl6E2h녫 XfM|'LP\ 17Sk\WT~ߍ UhɼJ-Uǘ,4 =j,>qBOGr|c^Ղ5T]uB"ap#7ˇap7Jn|A'aKR?T@jo)Fb=F)A0# _2 sߨM|TyJ[B' /F'{z?(s"n%ˀ, 2\~=?qES;ڠqEcbR9F|/YzGOvjTڤF57>u)>R֥@wX*lwU߻W?-ޣv%1ts1U¹(R@HSm22O[WTr{eds4" DwÿPr'MF u]W\HG4 x >(M'OOIdi$Boa}ϗUfڔK_tJ ;ɨQ ݊A^nOU~۠#QbU|v>WG!wQ82O*dt~gT_Du ?D|&ᓆ| qX(W"Uh R nxAs~~h;=0 _0GUĵ\C/hT/PJ!!)br5FStҜS5Z3\HD#ʎ`ˠ3>l za1(`Ɇq*c(p11ґ*T}UNUUeRJglpY7px"6˞`.t6t)gK\GJxPa` |}/^6 s;8TT^IqDۈA*h~{H`3#(J T&BOPڰ B VI^ivK H:2CGPS ALCC3D>\Gcr ޙ[dN_4~Th)JK #,/_/M?Iˁ JTu_ٔ l (uQH 0n9YwBWֿT5`RT^\Wá^_<< $~0|9cYѨ.=f_.UxCMP(<#I 5*Ԓ A).FV?$d2f?T_F[ `uS/A(t(O "Rо{G@#r?.WU:j*N|y0 2|/B\뇙j"̈PT~|y~תW/e݊2aD ʨX\Jc hde'??͂tccmB|F)ĠC.MIX! #SaL&\~W!@|D4PevYDsxX&謺 T?!J#2=1VL.0ĥ{a;gD.(3.QjǼ?_E)p|ǥFOgQz>ǰ%ꄨ T:<|Qm#pSހ}PBD T}q& B0튕 <%H|!EmZyzn%/pA%$ oŀ&(>,&I.dGM^ pSY9T2s`j UW; G|0d3 peƀ$CU1`Tiȶ/@U kT\< *h >]yyyt)Ǐ|H.c>. !ͲWtH:V Mk/&^q@*PO`3!߉ [qu1r g1&CX]"@/(%X(>@\RK+" \.ohFx D H.AQ 2 Fِ\l tV l`21#€,Ctpp`̓ "O3:V)K-X1\znh8A` : h!2 ,|HH2,?X 7Hr!.`)yw&ǑAꎎ B``?b#"{A< v AVv C AnbHM"{ q<_,0`(gL > so(G"@|Aaᖇq1P7A ~ҩf@P*کOm6@%{dC"T Kp\ ̼NX`D\x_\\X0d\ 6- 0C-?!b&+bӀ[3p<4BV#p}Qh8>`m!`|D,JQp>7EV;T\]_[d%xS5z!hT̜cQR(H=Uq F r@#|!7|/˂4~ 0ĀL~"C"J'J$* J VC4X)~3OhJ e["}RC"2U}4..UAc ""!L`>, ,>A!A7Q0΀,p0 BttttttttttttpDbX@~}F 8&aw@*$%V}!|n(>A J1'I7 ˮXCTj(M+^X_ |=RJ⊘ :R;&ǞpDXB.;oPĀ'DYit.WNJG>UApH`_C#R>fdE\]]}* ;x> >@A P`̺):*T]1RMR 6f8JBp7@@00eA./?Nl5: LȴBQ8;|U?Ɖ艍C2F8 MЙ! ||> g!\z(dttttttttttttttttttttttttttttMDttpp3@ 0hf":::8"0`>b|x & 3?h-KIH`?z4GX>c8}X3z:8/U 3%zx(Ā,*AS00dcVY00dc#WS<4Ro&x I&,`y2n/k:Tm,SOKfVRyң%S&%)LM:WSj~  6K¢AΈ,sEI)vN[9-5[ŝbֹn#9 ~+];3J2EPjvNB(>b#c}QzRtv#=Y0J8>V##mSn|FA ž9ĈsJuVn4u45βYn4"slC`"nMSd9{<#1qX}٫.ʼn+$l]r եq{)Y[Z(aCf),]3 O.ng9 &I1u}J0eM*m,KtG"Ý!wW7u*g[aI1 fZH SU`?? n-'%ĩƔGhi=2d0\q`PyFȵjɊjOŤ)[)j'\AƮFcV4xZ=tJD' RR/@S lYgNg8 Dӳ&uwg*]oY[ًeh+blq j(9Yɼ]܉ґ,ifY66VlO`^ ]4.д6u79ZbVm+KVp^aT"9C2U'q۽AwާZ1Ns\zSʒQ2wK!Cfwe$EigQ$`b{]e,mt(:<`SfZQJ9[ƙ13H!J6iYAS{ղe 9s#+$vh4H,'fLGŕ!eY:鍎S.'swu#!iiu8$K֒k5z [N`Aiib'NFBPdSpCۇy-ޢ8!ŃeJ`+m_nƙRN,ըyCDk.04M?yhnD#Xe~m-Y+;pNeBO)dvړ2\IUaM Tf' BnfLlecJ1"ʝT30F KOҍZnVDL, Y 6r*P`"39#m؃RXP!EPH1ڈp"ޤiJ  @@Sj8ܱ SQmun &iFQ0)+oZuքu[x#azoLEEz JHBv-+ǿkE ŁOK&[i>m:B2X,\& xzOQ7tzM2%۵<Â=-%ekd{KzIڲfWjoZk5T zdlEzi..v6-Ydhe9&3QjFM {-nx˺}(#,e^[䛰9/jBv T-FyekS7.4Iޕ4YN%F<$9@69'@[{ž7-ٹɝcO&C# Ҳ0eYѨ㒃Dž;)Qޠ'N{J$Db%L}DC4M lk w4?.y܍#LB h[Otc)&p~+7G 0>@C|OGR['41.1Z pM{XWA]\$YgomTh P5c,3pp cckqvwP/--ҬoQdܸQ tip[}*¤bixS]їK;c&Y4k Bt)񔝷:T$А'ZFSƳƆ̱xk"D?L>3Qw _XƏ.gQ)K[mr+WN[ff%xŴv5Z`G\+kkyM&25i0QX~৴fɱ[43SKZcwxB,[tC: aAC N6(+lZ,A9$9" {eU1:\`Z֘n/xcA|;Ф)峚"_I[x2^rE5lJ*u)~p)*\Sm3gQrpae`hX:NTНDN7J-;zH9K̍7dM8~ =&P[tz C)Vt<*?k)0 @0 J x/@0_ 틙iKښ h L;xk @x ASx@+ 9oPZE astlX0 "K}9 dG l|%>/X 1H Є0zĩ[%$CAQ`>?~ 1-Qfݞ.6/Pb]`L$ bXv$7 $*T# 8  /S$M[zD `AIppJDHF˂z@[6*J6DXiA8SӇ)XV挷R =$)m "[X[em챪Z0fj0SuF(ji xr- n' ~ R'{Q i,S@3[eu,Kܯa;.} pSO YMr1,|ؾZ(O:!S+ֻM6~tnKS-` S򶃫f`k IYřѪ܍7C%2uB$XA@kAain{ja>,&ÝB'<庲 ] 4mq@sB 񾚂*M^Φ/hFLtˑ4("hTX΀}%[-@a"`<'3)<<`W8a`Keum٘5 f][i42ͽ#2AUkJ&ͰQtvVpM&Av t` J@:>${l%:4W806 Z X⁲*(yTJ:2dfEyP)IM  @b`T `G4p(@x/Y} zYkZ\nmJե!;4lCYZҼSq5s!A,f< =*F0؂p@NyZJ[E i T vA=69," zk&R>ޖAq]7,Ko1qV#;i?;Sl\K-֍w!IxT(A?tlCޥ?ӌ(98&%LM7S u.*`,o1~Sשƒ?cVch읉"kut]!`)66*7һSVm;jCf!Oo#% dFkj: kx4OֳxT38R2O(`Ȅ 77escƛJy"qla j:৘MYYe musRޒ-9F٧CTAah"a<@$&*>!SZM*ԌCҲ{NZA &hGGUx%5j?\7CfR@:\.0[S ]# 5ݰ)8 ;y|0`0(?mi`Ba@@a,PxXHǻo Bm3$iߘNp x `pAfǺ<70'3dӂ@Rmy5'歁fSmonlN1oP8@B9pS>ʜdmࣗO`_"kJȄ~c+hpфkƛ3,PqkPxp"Ȇ+-Wh(eŕ!BY \G\M֎ٙCJKk0ėJ5 Ms.qFr EIJo:s,Z\ )&vsh$ђ M 1 kr { ! 6It_#B)c#=7khR|AѦSbB9ɣhWCÃ&OӔc掁PԂG-e/8& lTipx(OC`oI-`_SqcOBLs+K7^I𧦈򡂦09Ok(H*  ?֚:[s^B5jJ1!tCm0i?$I#;QF5t1u֋-ԲF9@XBa\G')(n'LRm(fif: :uDHB6 #wtdOT;E2ijC (}2O@9%KלBC%E$8KӤp)fCs"}lH)$s>9[/b[@,Vk;@֦atɭ8 ,Tt=B7‘ilS'Ÿ‚yc 1au鼣 zv7pCɓ6ms"ɋ$txt)SC1 V\m0])n/rluHhOD&;fn;NZ=3, MbYH&]+F1MNEXHKDf-Yg?8̷4Z6^1d>2Mք;ZÃAOA 1bdɵ,&]Iw%HQ[#c4t;QV,EW15t'čME^JJbN4˙hX+hKU!pSo.6zklal7bؘmn;ƛΡζ}^moMGħӵ*{4wJ+B OD-0ikx%G2BL,F>~H(]\aޖ#Y৵X a&Amh# Bfx4e67\$n[b=쀨 Io% ydQ4G9ňzJ[FV6ZB9=ݭF ]u\Zbnԫh(m<g9-HSn-owDdo' 3:2Md4S๕Ǝ[{7Z3;R bʔk/1&baWBp{T)cȎ"ٖE!MRka @:ց lXۨMyiyŃn#Nady9B+h">F+k@ }N_Y\A;Ŏe41HSعf4EIg{FjFڶFl~XSMֲgIAak-u4OX`@75maSIsD}D5>\o83(l?<G?SD2 N @IѴs5xȶ[ '|OJ:|wln?ed&1? 7 |>w{IooAoVn,0S,̰dc7r y5@Rbxc!7DfAGxо֋4h fpZqp48hwcq&$I+ޅ)g 79z0ю_p]LB#`P `^@<cu2pJr)@ frrEl4uqbYR>"0(mnxCH4Mc tbÂ7ن7 Vo+ym@[(R aYoMuKbೀ{`Tm`b6X)`h#3NI| ;⠀:D ΅.ٸ (MllPw{ tF<ԁ|dX U<+ (Fk` 0*S1h7>! D> K mRR(G8o[-PGkaj"sv:M 0w:a; hzDÑ8*K珎1 q  D~![ns5A8<$,aX8ldxNhi&} ExL0 Q-E\",G A1 P`mIp HMc< XF&΃CLep( Á`. O8y5i}0=&@H G'?VFl@uWqQ(p=n<5 sŊz +Q7D@X'Eґ@‘ bQgPZpɬ%<]5D0$p^ >V `Q0Zd8^xBȂ2P@(k9 .`! Y'>ZBFa,| 0`QP"2%MH05X7 AT<zj׭:h+k]@<R0x?A? L @*-eidL `~vl%#@A.QVcaH2??>G`Š^ 9Դ֎P<Zpf&oo<[;*Pmth>-K~^HGj^2ie4)NAx" p:I)H,&p<Ruc1 )*v `> :iRDZȟiz|x>Lv/Z#A. dx< }Tp/G@ |2x@9:0`<``0 +4]7°t 3ʇST P xص^PﱠxKdz!pa{R#V/b4S2gP -VIF p\ZB60900-X8u-]08x@ALbjxX0# 8$9sx0 ^3A8 =F'wl6 Bx1~p h_@:.qvh䠰V@T@ L6V <iD$@|)B<,}BTeZ > x<$xp@9x?K5100@<1,LKuK6>0` ׂ@ 3g[`FQ8.cChNa,, oA0(<p'?1'>#)R aO@8Gq ^x@uRQ)p AP]l:ox8EÁ)0| `a!MB Pu#ϥph/!k@p.<.8p_ 8 B0o Vv \k,Q <,E.;x>!G`z*`< aAWc*/rPx(v,D ">)`x h<4yF~НAh* S> aZC)'@@( G#,^QJ"x) JpX _e h𰚟B*!;,89Td4 ! yH:`0:`P0Agh<7 jS΃ŴI H+`Cք" K0sGyȃ3&Ic c4LȮ;a(|liL`xqx "`!`J'[Rl.Dؼ.x$<8>`,Q}IB .Azq3 ^k;YRQf6ёN`x<~rω D,]p8U"o<6 [0WEf j@&\ ␃@3%P *P  >WЉBp)*fu^- `8b:#C×w:O(dtt'Ay.TJjn4q lvCg<\Ad)c%xPZ@hF!W>>D3 )y9=8j ( #$ @tn9Y T/ŜIemNޥ0)ـ_#jAH@uṺPjf @ܣkA`s> hJXT^>.%Z,4T7s /^`R*h@o`+B! O+^%fG(R,9<@P8rieRq(gJd/4$"}7ޟ ?4[v+`$|MPy´20 N$BL=atq^A}.vn#,lf>쨙h96L#P]O!v b.`\"Hdp 5n} pN\sB(EvB0<'``!`/'kBM7#x "%U+< lEMp` &=-ҳ(}oRn cx/D,~%$-„.,2"e Ϡ|Ul c`iQlIuXǒp_rq s8/krL0)Ġ`S  M[`:%Ꞅ * ǁ X8/G+A?\pZhKoH6/{bp Q/W| >a <$æCi\~yøzE>#@`y; O>!!IGǛ9mn1,Ga},HP!N>ZX>\ch%)KQp|hDb0!*!m qFqުk |ժ@sǛ&M`VbVs¬#6y zo&)#P%% Mϩ%´ܽ"r@.t(AFl -o&}Zsޭ0rR ]M eA@|tt]2(äH?S[& o0̍;M 4J?H0 @?$v H5pI$_30UAF:qx8PĄB@nÁ>ni?j!K7ІbtaPl15鵱Fn4%|%j!V P /lAl~(.In3xZRq$ aQx_ i *Gk颯庼 ` <VGtHt@^#+a1(`|ԪĄ=!*# zh'}\TVNH?}scp ~-1q{Op: I&dr&60]c0 +\K/d2-%΃$䠾-1rXДR4$(Dxx"0İPc雺2հ$IDbxZ*dv*&σThLGå?7ZR3"< C#:=t;y0%|0h?Xt0o/$ BP%Kˀ,^w csX8`:ql@\Z/oV"g)#b8@f:a F.0qIA@tI xXe^ ([1r?r@p7+blu-"?m1U!T1! A,(@SAnLLgj Qs|Gw|[j :y*,Mhl{{ }&60D-|lLyųo)/#so׋& |5>y 2x20pwܶD& cu\.8ԹX%c`7qP3rkj&S,auVl,ǘԹo;\0I#scz2oz0X}ޡBFțap3;."׷E Bê^?)(HﷃV; ܶo Auq+!t:g/B3\dG`%PC/̓c` 01$N? ` r0f"WXōnk pϽ5hy|_C5Afc0 4@\ "`W`sx"s = ?`Z,?`TꛉIm5hh:B۝!`N!W9L ի\c*T\ycYPai6hϮm\9j@"?"ssg0t+-?M"GPA!!#Z!N }:9Нtttj:!F%:t?N0o£H 1`0i)XeOO=:ttpDghtttxPfN ӧN|@R ?x^. J7WV*(>/eWDB@Sv;K&ZVN,N:tӧN8$2&GGGGg?) |Ͻ*AR=˼ ug!ȟD x2 v b1 A Jvh!{TƁ _x0 J|}xwڮ` ^$Why;L✠}M ?A;?C Ǟ.Fˆ_ӕ0aYzB] Tp2P6Aπ,~ "cԹZ IX18_D@w<` ;({ fLZ<x} gaBˠ2@n/hY q:tӧN:t/W-+=eGn*V /Hx ]o'H+'j<K|%j* tȿgw"u/f{k<Ȭ`R@WAJA?U6_D![{9|;*U|, d, VԴ3`x)KQNP e WsUL}\Q&0.Nh>DӤGC"2L VWKQӧN:=:::z=:::::)j:::::=|6əb0|Pq f::, esKގSGGGGGGGGGGGCɞ(0[z$q ɌRbt:tt)N00dcX00dcY *. l V?0U? ,!Hzf%P *e&N xЖĠR$U'`"q@qJd%lú^|F `D  ` ^ P E#Cn(KII@C@Uf V ]>IKȿX&:ؗ0BxXġ/t.M H?L%,`n.08(x<,GČ^4۠2n/`0N@=-Q\#Pxv:fuAds (/џ]`0xʢ6a!x}h7KHEc"X0x;lGXt!_ TNP^:*` #a0`$?h&H  K Tn.ʐ`0ı,K-L*U@]n]7P @P6t?*; qg@X>  &`0̀6#%Q#Xt [}aчxxd餔X--tx<<J>ԣfY &D++i4h^ :0  6%(wD(+]ʀ4Q,GZ``sgIQW'P`V4]9x2BrMF9'e^|9+b,= `` gbE&m;\L>4yq> `?|BB>G|K̀6ga0` P7j,ɴ x`Ppp'G?Pl!՗m%4H+hVTxo0~08\p L)|XVLX0"#\2(̗`Tˬ8#lLk+ůB< t-F!Lɞ?/T ՗=x_G]!UPCVJiղD/}(?Fy`>=Lo*Nы՗tKU`K2a=%/lpJ-@|HIt|xȀ5ZI+0lJ`J8 ? u&N8E4@{,[^Pp^#IuĆQ DvDax><(>Dgrfa-*8`c/k2MWS ˊ V>Ax<0 @Or1 {}CA X%uza`A Ӥje]N0u<@ҧ,Q-Zq` ?Ilwh(Q$mudX!'P h ѪROY-p6 ?`;b0)-gTYD QI~WCɉ&?*}^"{Яȅ/l1cPh$Ơ@ D @ak IZ h"X p9:Q]$ToX #נzQG?FpJT G `TϽ"i?L ;0v,P秡i0I />eRS'_V%c1PᒿbOjFN4/T *@T0&p QL?C`b#p~# `(+T<d$ax U>4by 0p+[`4msX6x0*OGAМ3_SfĐ[ivh90mqH xI+n{Upiq4<AFj p F%BJ{U#W:bUS~)>e_6tyw8,HR BІrXZ0B@?[QwA#d`p9TiVRQT$#c|7dXeĊ =)Rmݬ2a"`P?TXAn A5E7G@0!>V\ /.A+Bo[`á(,c( 1b>wh!_m^9zvkp~ #M*m<)#Ʉ6Ywz:Hb/~PTniׯg0w2]ٜt8iG%0C?V9H䉴JmN͊8N:smI@> 7|$-,K x~m]RiN=>N€=)Əet"PpF +Uiv$&Y@a]HPW_}{}}jA 3X>oﴰ@ @`J A?À5i$0, BteEn Q~,R0P0W>` H=\ڹwV>MvvQp~ hJ>4\X>4'Q,I>U`0X `:(yoH!4 dpA%IL2p߉A_eİP9ʛ+`h8t b p}BADAڦaHG( A0/x@K QQh$ܠAյH|`6%Dxo}ͦo}z|7#soVA-c.wu[:㵃ZM{HMČbH>$0[ eD|(Ķ-`.ϱfܛfyGGX`SY!#U`z<TV=RQÀΪ߃ xH L|AjRqEb,F(zԈ}LBp$7/z˞YfU&H(WuWd>>)@`ZV3hI*^+a=XdQF&\3 2QNBXa d?-pw9(ңPtVN@ Z:nΑN0b< DH)*6Dzn0eA_@qZT,@`3ǀ?N aH0xA(|,P<4S%< A*@.TN~jF9sRð24}U!4# R46GGGN:pM16DQ~7@)摼7ǢH60  æD l:::::::::::8dJtVN:t::::::ttttӋ8,0 !өx+OKӧN:tLp`5N l) Pl>03ӧN N'N8JA @|йUczS%xCzpDBDꦩFtY8q͘*V L<H>t:tJpޖGN-Cf KS+GN)KR{ӥ/00dcY00dcZA \и=\ZEk2@X90 8\JIfky[vOv[ lAرUl-X `Vґ*ؿX5`w`;xζl*aWyk64'ƪb]Y]W~00dc[; %΀,`7,! KZ`A!(%+?1~vp_1M4n7"[/J@K4 ">AXʄˏu@H$ _EnJ. @F%7 P=@Ԡi~lhGn\DItx3_Fe6=N* ҃l#JkS I X~ {PT ?Hы vy1 Q"}l+6'%D3i$K%PB^  $YiʧZvz߄Ű>G L9-!䯍.q}G(x bM!=`Ɖ`..Hfv, `0!:x?A xV'>? v ` #);L=1/NSt{# 1 (MA D4>XÐ"$A MI` lx<qMxX.Rɏ JZ ߪ#QJ`?0"o$ZB9"}̸6 wGիa_x'WNw^[b^pP /mLHYmdPO: Z?d 7j7KF_a8"E8 i4 }l*#nz9( >>LGKk W F|(|=f*VTN;lt pCHL$^){+΀$"xƬPA|O[IJ%./Ra, 8$p7Dlx|5Nz?X6NpI04:l 5H1WBB NAU{4f0'}_SE%_Z¡z! P^E©J[4$MA8 ow ̉SK0`p2Dº8Ŀ«W4@ T >8 7dRY5YR<| h/Lٶo `ʼn@p $ fznLJ#N.9mDAr2)Z]6~H|&* iKYwZhJ~;p8)h\Zb80( "V ՝@PpXo Q<#IA78&˔LoN@ (ތ`_ A9IH0`1k5` J3P(*Gǁ^1aYh_@{bHC$KĠ![M ܭŠM @xt?-md}$5 bRf:Vr- פ,L6C<  xdh @`P`>L XC|H^>`A }}0>oylrуnupEV14*}}%H Aް hJ{` YW7m}v%GB `F$I 0(CC | Ȑx >G`,A$@4"/ ƈIB 2!o6d&>C%|It$#}mtɷm`(p(AMM$%   !@1p0$"P0 7ݯGgs/[`?L{x>,5י"G0#g$GhC1n3ZxtȜjZ!X:tw TeƞXpaH4` J#GGGG(kӣ=xHIjcl#%S,8һDp::9!2d0(:qp0aF#7"&(>e΃ 3ʁ2ttte:8F|wSOdĀ$|SXT x}mtr2 j` < 03N9P 0*`}9T4)*`xTS>tl fThN|pDlP ~=4>7aO(-Sf})v[cAkcs7<}MYV*dJX2# է\?T$7>.#@,/"@<ұ)`s.+OL .v^L,W:E㣢/GG"ZYP<`x;SXG?|p4 pQ0(+n |YU:I#Tyu<U8cr|^ܟX^%#PP(!C!x!,2  3tttttttttttW6E J?8 o2`| 2 *!>va_DDҩrQ^?pQƯQ ڿwP?(/2\#᠆ n>(A@p! ӣ?) ӎg"yTu?0LVSyt@pxt\:?/KJx.1XnAK(@x0T|Vx9ӧN:tӧ4{bNY+hh:::::::)EӣGGGGGGAP ttR X =N%:tӧN:tJtttttpP lX > b)\ +u` yX3!A1 xVi2]ԲgJttttZ";|oŀ!*%20 Ŀ skJttttt+ӥ(-00dc[;00dc[ $:L`bkmhkj"`xFBK!F)SD4ǀ5#oH7md\Ed:@3k]`x8JtX,t3Xp|s8!M/ ؜g y`-n&T ̏wIE68 {P0q0 rN GSOKBzLkP\ :h(Egw`ͬg` m]~ˮ7dr,Iit0`Sh T,NG0?`_H< x>`p% eA pS׷CLtpP \(7<0|hY5{p^ 2W1$.`9|SPx(AA>AĀ?^$ x>1P $0B<`ptV0@..`t60|?ld,bID|AT'> قCBP>/`>-l:@8p]t&AeޮDw.c$zXRCG'*ij.1%`h75 %0>  |xo a љX>PYܳѡ{DQcG 35>:;NF|iƀD $`? A PXw޿2~ '00dcS\<BA q].p!Q(}pI=(2̖gxHA x|]UmІ%߃&zLPCZ>?ui/OF2l8P  ~\/_kc [(81'ވv tjR  =_WY5"K]<^)Amo[NoibZȢ'a2J<]8% Zb$H/R:Fwe WBQzh!R[eJ09Tr?~ Rb-^0?GhB# >"D}QBR\^>P~tv .Wq|<J ~<mjQ߽hk(jmP<xthx!#g$ߪW ]0^(sL/.]%^ w 2 Z o5ST~DA>f~mgUk+%}W$Hei4!; `3_(D>WMH+$*DڭDCT8~ ~ +m ݢ7Gdɸ>,dt5G'L"Чs8B 5XB/H3',KWQ^8KU.r){2qՂ (W_r#Tw X)KĕV%^UTP6"z Ȗ+G*_ǟi|nCU8vtֶ3R7[<!}]!4%u@W l \;7%@ e{ʋ%n YvE6\1 Q}J*l?ZZ2 ؕ*NQZCl@̈jǂP4Dx -:^iN."X<=m!|J;R#/Fi*"*A B%Ā,02ڈ,o H@6R %*bBx0ڭMZ XyѼFEpJA _?yx|$# V J+h)FeW}e50(C,4!0߿`KTKd*,} !>b4ܲ>qP$5^T^ _|?.cGj$ʵ=]lm;TaQiQ(S[KǣcاĦLORl'Wt>(K𔋅 !*A _U~!e/{SjGW4$zǢ#&X67DМ)`_`b5jR5euR!ߟVp$7Uʀ<A R?GVH(/(`; j!e+>]$\?UC"_Lp2߸he>HБXuB=?lNl=QǷ햯'i{vғ 2XT+p U,[?]ʩV#s?72P)_LPP`#m4w{_lU*5O(XCT>JbGς r ɠ!WK˄a%ʼ aW%JAzB@0.i_R>_ce{ 0GhCb((h=3&#E~ eK[Cۃoz.0ίEAOĘ$% ASI4d@%0cC>R 7yxIVAB$n@*7}U?Ƈ=cF֠u~ x< @ eHU u_֩2e*ZC? !.Hf|PCc(..QDĀ ѢDK*%gxK/V^:dU'5̍ejtږ\R;0Z1 x8w>v7]g x%aA+.:>S%G)9zP6|KUsʩpBoحF\8ı'4!wO"@B`PUPR%$`āwٻӥw3sFԯJϬ)XV>bPʠJPAm6{@ݷ4?TQQ~?vovڎT<Pzn7\_0 Ϗۗh)]ndw2t#' /< TUo? 狮˔+0t!vX=P_{%j&6ނ7zg@أ($(?eF"HfedYt) v蔮)|_V^]iE{%v* WXM. |*<Ŀh%պ`%_y5U_UpHT%O!Uzm#l&/T ĥ_Vo?9GSL^P g]T?`Cޠj?n7Γ+o\ ɼsy8\   z} }ZLAWV>C %<F`(GRĈ)PJ_7."~ >ϩA N|?r`8ˆ +*.z\TZwg<%JĿ߉CmHJ9zʚ8%^o;հ}*PC.BW~y[up{ކZX_B<7]'0dPm /Uu ]Ɣ~ yGTE _4 $!@ T0p!$: V1%D*]SxĠC:8"x(Jx-bĩSSA1P\1#Z'QGXp`"M8q;8@N.@j@6*I^M}N3!$O\/~e*]**\$)W>! bP&%xXĵsGҘղ/AUPJ?KQ' ,M:n$"1}B"~+)d |KEʋ%{jIyXҨQ|D|=P@\CƊ {~:mTz+H5B)jz`A @/ t rafBVJ^h)\pA6 =ı灇BV+sv5c~?.7lH.V%c+9pP B^X?޾EʔzOU*)h2/ YZ\zFpֽAwX7 J]r8n܌)ʨ.QMU ?2Sn۠Vk/_&-e(J EgX2rX[q(!b^NJqWr%S~_ҫEp|:VD.E=7IDϪ^qX0> Q)Dc_RֶζLDϳmԭ`^T%_P`5麥B:=>/qx0GT_&{ك,6r̊}Dڅиx%*JVQp0iwԭ*% &R.l H ?',X_QYqU`\OxUqp`ِ^ Iap0uDEA, 6OtdbQytyԃ #䙷WU`ï).588~ _}O^V;<:9 I%oFt<WKXM"^1ɘ@y@JtySdR_e菬"<ı!\ TBR>?.VT$eę$maEjRw' $F8uԿ\`$)׋7V7AJ ]аKR}O>rܜ5V?|V$ {CƗ6vԌoR_w} P?AZ-Q肆gCڱbb!bdFݗ\6c_Tb*&Ģ }),0"ҭ ""ZTrP5wiN:@p( p =R+M괓{nj᪏TE* Bx.KR͘_~TW쿋TP3*Qqw~\% }Z +t yT=8l(w@DĈ>Eи~ t~?*,د]Ʉ(\\Hq\caHeeNUmYX%h)pKr4]]< #_k%^иy.s?CUKjƝʲ6F M>TazY4(Sar1ߺrzꪯeX ž ւ?@5[ &V /qwwIh{~lX/SDZR_F=G;6'sfs_!OT%(ҶUTKn^|y?GfrC4X^wO;\jpC/T@;Dch@x!AO)h!b.w`P ЀĊ=pD!`!A(|BT$6 K i s-ڋ`<iO.QU)UI2(wcS@0\%=g%o?T~{SdSbyegh xZY*|R4ĸBX H0\KӔH.aK dWK "UE ĠK@2yg''ML$ wDA < Z: ݟH(dU Y}=<{`{kc5J)_QzD`QkfKՒkpq0Sd~]g;WrNu_$r`cf~eee xS 1,!/,4X mV NL(ohD=ļ-?*V<+ hm5}6ͲFdBڑFt)dx\׆+WjUk-_cpkUP(B?/"m/V;U0k[Tm:$?mU?͓u%K ubtVbG AY]2!(K.U?T vj]Q)(Ku7CvpK%] <XS1^$LP`Pa>T5$| cy\*zQr$`Jur ܛKy0(OyCeQz>e7{) K.H.Ue"O)H c$JU }AUZ|X¿yU^*Rn[2[ rғaOJa!;.ȯPB_ǔp YB|^?T U=R3.TTqTx}k@bej7f8J9-f? #i|p 0;DtSz j?T>.n*Re eϏwh65X@ j*.Z.=VxTe/.aU( Y$ሠ~?|!EeoTcަip ᤑ#"ЧO_P YO&y$:%sF n xU73.Q0n | i|Sv5lӥ^;HVFN=]irC/>}{U4klCP#`܀Ώ~?][XSn` $B$ |^@T>7X=Ff䙔f!U>}]e/=y-D !@>$ >/W?BP\>$ QTW% D *Qڿ `{T S, zX@`/< @CJ$fypRcaJg"r٭&W*<6p5!1JPnN x%?M>Rxb7{"@b^&uAA!&a0HVx( '   (`# ũA %@xѢ.0^>l U@i*d@bp(N)Ā`,0үC`\Yt2' |pe<4%zP)bPYبCE hCGߡ ZVP,PU~=Q}PU[M0`7*UD@Wx/7`и!{оQՏ%P;DlTtH͑:`D$*`h@جcVO{Gz>֛Nd%L\_#zUX_A.= {/ac8&p8yz.ݔuڕ5F5sZBر/0Rc%e|bI5 | `@C0v>ƚ B*K?ĥEJ\${>L /{9@](U늧Kuc+V]G^yLW|:c4Ge izYW'h|$[|$>Xx8B= ˇUZԌy҂_]PE=T%tكwp)g1\'ꛌw1IO/Q#}ǢM2 *sD=a/՟_g`14Vj~{x {Mn0 K,_! CB/1Q}YKR?B(Wc_[(}w!8Ag̛qa A^o[@8z̉](ң%atx6$I[ESMh(AC0+h(Rh((#p;Fwl+̃}8 Iwfj - 8CmiJJ-@Ҡ p>0Wp |64JDL5$ P?P&9x4$+X<  $ `RP`"Q` xS< I)P )DE@"*,) y>TڵW`tT;XR WG0 uy)54H1쩙HsKJ>K~JbXCipñZ,ڿ*XwhQj? )ڧB{2(B/n@>{Þ/i>J WtI)4 h|/p<c$W!г4r|GBOAlc:߄$ 0hK=h?\^;{pT?HE.5 h'BbSE77KЩ_?v(svZŸ=r &h5Q^}ž_,wQ0NMʻ-Ga @6?>Kw?'oSj#s 9;{DEBs >+\!|||V2,D?.% JxK? bά̢pN* #A-@6X!eT.k4 'h`9[G "TJ[BVAVo{c\τ9AQZVse3?__Qtu|VYzV=ZЄ ($@1aNN!gx!`6t !nBA.*!wCRnFj58?AXЂc,a&[YƋ"` lAt>Q@CWv XB"%^3 $Bl'p"%0zh@6z@ %+C/=ekl҂SQ(.0?/A<'pב-_ ZiȴV.I")x0ѰA.%i4CRp$^Ęl/Yj7;@y.jߤcl`h*4Jh 2.1 M6FY&W/ypc4rq0 5B, wLbe4.(&P@5k Vxn A y"l7x ) 2l380!`\[B兌,i(@` fSUrީc23ClVGCP eGpx6쥂PWX# A(.0A*TGC@eftj o2pa(Db mʅHMeZѠ*lj=3 9&D/g a/$@cmZ^!'{yڰxB}e6@ )UW\.FTSs9yKLuFk8j^ fxV$ @k55& Za"u2T3ӯ-tvҊS].V߲dVz_q^A֩ccjVwAGRiA)Qӊ*TM&}$a^)A BW愚> 2L^$Ȩyؒ *Tu`h`M-*? T=, ĽV\l8!=؄9n<>`<%hf50F`0{֓ bqra$>R_cg$})8#GS4D HYXAN?L$FTصm#@1EO/t~EB--̿A{i( /w š}X0)TFATƗ"A dV1)"tUAh+N<Īe{>w1a0|K>=Q;K/M2r!šrk qGǫT^;;/=V;Hv^ Gޱo %3Vt̰7<|_T^ bB>(|?3:u1 Ba/3^tƯư: #/@e]Da0C R^s1@!c_B܍/>NbbN v?_2_ҳ˒?q]) %y|Z#_Kt.ՁO:$}#tЁBoǭ3؃Ip!H\ >.fԨRYY3O,"D7$֖7pqG~A_H(GʧU(!)m2N,:pSx%EBP%{TRC;!Q W(|)焁>Rt}hI.gdx0x_4|nC01 oo?cP7UjgUza$.oϕ 8Lڲߗ'p|}^>uw"ZK3]pS{a%//> Q@YX0 Đo+򴟀"%e޶k=01uV_|_Eߐ#7}QoW2*aP!Kyt]Q||)VJzkO]qjJ=2= =" EAOWBXQ1qx@bHÆ,9-J =/wG C8 eN dy0w 60r`3>>R`FЀ$#AڜK9_v>KD,}2TaUІFEbؠ~AG|" mL ? x *`6>D!~)@6:&'V* Ar3ߕmG^7o(lY|[!`e%Df :ćB+.;Л+᱐z=p `{|7L'v!JX2r40G_V?ۙ^s}t4sn@~oš3ue"eޠ3[ `xQn)&-#`cid긡R)ޜ ww@p WQ?=fҁgzkWj#9A'E}N]g+nߗ52K4SܭĕCH_+۞T>!򿗃pK//a m%PqЧj8IA&vy]P @4{Gl‘F&b !O~lT-6 =Tu +H5<*;iB!GF>^Qj# __8 :?BVPo4ƪhMw$O;aL^:҈tS)ԗ PW{"ex yJ~h`*%_`(/'2TJt-։|ƇIr B1G8T<_gJVBryMSb+\?U^*qy->A e+U3AS/B/<( ?*?.)`k~R='q9T}V31o>nm\ cpʟJdP*)lm)< J>]Ba 0 <3ۓlp~NaDHOW:V*R``I`O+9;!  tuis&-iV?mz6 CTZ p!z6)B ?!Ib YDxEuYo@5$7/Un/0,4bUf-:!5xC߷@^`,,Vm(B8#OGW4zXӇޱظ)ڿtdA{4`Ky7RPG M0CKJNxIȳ(`WKm8:S8GGt&$2%8_g[҄0=/vv'?V'XfÈ> uR籠]FrBF}꫖V*nkR l`, `JU]h.Gi ^dOu0 S {n M iB?L) DM.<^h_D% kǁ(ԹZE!aXԿVb #B.+/a ~KEةUI4X^z CVƉ#q'xv]}c}yLW@fjl:QՉ`p|%Ue>0d%ߏ ȴUDJ*ĢPUl:&V>&䭍cD@=_B>._TAAn#NdeԷ5_fx;! S H+| !HP=VpK._2T 1hؤS+oO)9?̪j ^ Z[> |Y)-.Ro= [pAt9F % uFq-P@`Mx4?BN$ Hm蔣u8D#Qu1rDPA,[JG팸KĖ0!O``I↑Ϥz]{X2^[') WOG"D^?NN^ =<ü.iW%Qꌭ # z^.%X%)nݴؖ}M^3ʺR4y$`0"(38]AAEʏ 3Ŀh+$ies x \ .q?RsbPP$xymK"[ 0N cw$J qVd_  oK{ `FRG1(HT{:Q<zx|$*@Bjgea ~\H:%jQP\^EQ0ga !_[To*/G5P{D~荞Ĥ%:PC^@߈XCn!A# T=v d79].@CPzsm^ 5T/䊄aTL^h~ vV <H/$<"82ˠ?*A֨`?'j"z8V*I*>s1X(v},UP=k!P%R_"YI;oA43ST3(G|ǿ~=m5Q/>$l B%VE;e;o ryu j`PıՒsJ{r%^(2Zm:}.Dk ٢Q2l3%F{ >X \G샵@CЪA0K& cq8S)x|wdbD?ۉTh܄Xu6(K塑~h> t}t( a_ CTB)lq|S`24Ā>1@Z B"93 S$)xկT4 Jxסz] f'ʔڭMGV|tzs{p6+Ұ숾!Umtfǡ ||I/W Ѣ%?Wƴ`M"ޞ/HN v&`V UA*X{/T /yZ-BX@j*H:g#SEA~A}B PIVZbYxLWV@18Fǣ]Ux_L/0j=O]*dwBޠBC H/W{G*UJ`2ėZzJH$?/ e#pkx1%WȰKA:BH״``ZoU-8 BFĞ$#*P_qIx"BQq2j\h6[=(_|~`d?xz Ki =yAn%h?Dm=9HVĝ5"Aѥـ%1p>")ӧN:tӧ Tx ~SN:tӧN"0< #<N:pxҼWN:tӧN[ep K9#:my V`{>J2  B@tϘ,KvAh  |GN_(r_P0&-E?F (Ǹ430 RaH)`>LpXZ'JAoUoS96N> P ;- B|KFtӧN:pҋ6(HM5[F&ӧN:tq,>/`N:pn5S3HV'OIҔNDRup`>'`NC)f(Ix>OCP4#)Q]8':",tӧN:tbbϜ n55p2A,oyx(˾ ҥΏANGq )Z;['A|wV4ze˭t|%P ;"Jذ>'#|(A N:p|*09̚@cA0 2N:tT3*TSj@<Q p |UW&I-d{ӭWӀ{UPd 辨"HS 0 d"6]P1fHKpF(ïip7;||4zeC~\ JPH̳01pCQw0(D~Ġaa $H$iqpCAF\ ӝqjHoNN:tc0d 3)ӧ>{)ϻ ToN>'ή0:sO 2&@:LX@}6J2t^ fA` hтx; d!1tӧN:tӧN:tӧN:tӧN:tӧN:tӧN:p𢾈p :tӧN:tӧN ʭO@,Ⳬ@ff/1;C z<_})g?J'N:tӧN-NN:tӧN:t00dc\00dc/]/ 00dc] '<8+,^ G*?#HfqcZ@|kio*OC("i2Xà|Y h>$c!X!n ⑮\>h L+H#;B?,2#`<  >mj_މ@L%Dž%0 ⸈`$p<.ڠx>d+`+_|>|Z@XGOĠ}O!67xF @<z+/.ga`qC/$8dmeax&߭*h>XK<A*~>( XE0c >o=l^kޯKpdJ00@E@k0-:&2>ռy[lm`_h0Ȁ6mhBY>_x `00>o`e`|0Pd`S궈2b3R7HV>T`000* a,|”ف`>ˀ4CThx<'`0A,ġ0%@&d0 ʰ hcDTĚ@;X|BJ4+e N$&['^k+tp) N%o/CW+JF׊/`ʾ>/ا25RX,JxĠ|A 00gA K/bP  ;>g_ĠP" 0dlׁE` f +-Z j}<0l#H>!-kU6Xl >#!0NO)[}>Tݥ8 qPfDKr`Efwa$eZ_,Ҏ(eEv1A0>簭Gf"EN~<xK[ˀ5V1,k~!`L20| xC_>/I@@0<%+R$|+4zց |<|/@E(#q1(_% щ`Nt`( 2/a߬Qp ְ|?\nnlަ[ORm>湮n {Jv,Rɀ,J@sG)0pݷM> X>(>Gñ(?KҀ,|P|_> 800dc^) 62QHXFx7n$:0`OBY΃;ԉ!Y-8<lbJCL75x8& BH(ro@h> `ۄA _*$  >?w#X @`T `P t`nmP*@k0(PX.m+ĠP @ñ,(h*>pxZ;QZwP<'cx8,P@ xA 0|A<`%@% BX0:?X< 4agq׹L0|?~0dlV>5M`G>S|p%Ġ BjgSmU{փ |&$K77Å<+jP{02'-z2nPt,0%4S0?UAO@ " @BXZ A@mKC iރ@?X} Rpn0d'q)|O6ob_ĶA K3 jNP2Њ<|z  [-!=Z3CQzZ^) Pxثp`J @hbOz xA $[IɎ )0 +ZN 0")?r[חhp xԐ: #& @/dzTd "-[eH91SqHXC@!.6Yx-j H9>@%8H߭B(ZW{ v%0Jf;Na>>6#Yn-* Kα&o 5`oǠA8^H]1Tx100*X ABx !(G/U/O p B`$~Oz` % Yv\Oܠ` `,DOĽsP2.. |Lnـ|t 'D h0E?Gʜ 0 4|%Є^?  KcBV`0`?Q֤m =h^6ObC-x k+Ѱ-` p` yp@3̽& 8]CBZ JlK/{N  z$%[ΏU( a>!Q~BQ,~ P@h0Ā,"`z$I@`kQh }/=wgcfx> %`N0<}]D|R$((ی,#M3Dx{VOg'ɀ,m@NW4 PQ}>4>ꭅFEsԈ}K02@sv @ :xGѣ@3T8yz$aDV%x@/T 0@`2a/D%W4|%,+ Dutb@0)~N4/ڰd̓h р$K 0\m/.2aĈY=s_€|C}x_BȀHl !Ǔ@ ^ ̉пB&=Eᆵ| PdYBv!.`pE6  PAH@|OQ㎁d..(AD<6  A`7=llI pZUm1P6(k'APū/\W|9c—һ-nKtR`_-%3H^ n`h " >(3e< 7Ec+]sd@ 8|^Vl R7f۠bfx3z $'} NVr7lP`0 H?8(c#vX\(ȇb#t}>#0g9aqEKз|^@  A@,gX! a x>,Ч{NQ#^X~+ML >\-š5>: @p}Gl'F$ ܽ}PV)a F8ˀ,%}̓R%` ¸0Ka FR~5jo`1ADΫ<AQ %)l jP&ӆSD P嬤D\\,i(A €4 C|<'bP<,Pt9 ?_kcʫ*PH BƈQ0b%ZN @  'Tҵ`*Do0`QHHy0 *{ÎK$D} el_}`R4% W08>p[*$.)`8ϗF2(|hv%\ '`K U4Q\#: Ȇ! /1c`ĠĢeAoAB7 $H 8T$p0 f SNpGx Kͪh!%`F#'hu0Ѡfc6#68JDT쥓 ))Լ;._#X}2g2F h0C4pbHp o%NaKQGj]k̂.--Ci><b^(?f4ՙ BQ)Ć.7pf!{86Ѐ4W=#t|/. PL_mD:c@Sl6 j01 ԗ:wAgG@ʋ`o/R[d Ղ@`-*ouN>{*@`CT$T=(0ܰ<+G0!idS!W(ˮI> ,!$Iop 0l !0htv\<$B QT y>nE:p &{aV/"!tG(O}Sdly-'|h<%XACQSwh7Tb ܂1ʂB J!x yOUd}>\nB\`P>mocPhh0H!=<`h$- cPDr1\ф{V0|H}pսH]o'!{8%"0J'P`TdBH>LJ%У6:?Ma8^mά:ls%a@Y|8B$E x! `ȔV#ı,J `Tʀ'( &jT ӧL0GGGGE 'FH)0-UipT:O(P@x >t^e>@3||Ko7GJa-NTpr4Kӧ"br_ %/0*.`RV_Pt+R~9zΩ?GwF$=.lآkOT:% ->T:_,dv%* eƀK{K˽LSꗃrz)):rnS*#":::::::::::t7@i{gu2"'Pv0yA ! Ǩ2i8 pioHD4!"@8} 1 _`}1$J'KATC^țWU?F?T`JBW>iPwGCAP>&!Plx q:tӣN::tӧN:tttӣN:Zt9|D.. ^hpittM874.1 SKeUΑ$ӧN(=ӂztҔ[ӧ4oz::tѳ00dcP}00dcxQw PQ?.i#`|$7p;1=mMhA@Lv !e!`0N{AG "M@9߸3/S{հ2ҚЏ<Jc,Y V-sŀ}`nCX}A />,bzb! :3n "xb>\6ZwP<& v'E ~M+ Aͣ@x82Z|GV*`0)Q(31Z>q %k/Dj[rv,+|;&XxKJ]'z K\IXH0@ ` ߽0M% 6A #/KzܛCA0aַKIr|q|A(" Ҡ P,{e[[0+|D@:{gFVs̫@ >O@|_hE?+tγA(0AV O-k`Sh dSxb0Ppe-l.0MNN n.XG o&U#ISc<:͡f`);LO4;L-[推='xI #tƢ\.ntZCPj`TZ|գ5S>ʘurx8b}}jR LlT_B<\$z rx5s]1 0Q -5ޔcQZ6[K`}}l7`'>`V C`Ph3{2ڌA<N P_!â\ z '%}y*`aؒ%0a<<PdG`0`>Lx>'J>/X0#4H@4_ a2{ﳍԦ3tp6 )v,kmP ~!#Cğ3kB tKG0@cƀ@%YU1Ф P`6P֝02lppPJ)(z%%||}>-_}~}ԃ(JLa41` %P 0(| eo׃z`p@}kA4E?xT] *9bP>/`_8|X_}MxİxO€460a>/~d! ǸMNr}},Pf>vmUa{ԅ)\~ `|xA`P(ABh0-}Z|>L8>{y)} キ>.blpz"D̑"Bpm ?`0>,`G{މB-^0ﺾA!BPӧN001N03 # ) R$3##0&&N8Dajp`bN:tpܝ:p~4N(0'h \(0%N8Hc$ӣӣm:::tt:::::::::::tӧN:::::ttttttttttz:::::::tj:ttt၄h# N:tӧGGNӣNlGNӣGGGNj:tttӣN,ӄ&N:tӣGGGG)h8P`:tӣ 3±N xSJ2кl9G^Ч|I1ktޯk8x٫ BOSXkKA7X$FsIXNxC6@&;RƆTDRk0APĝc!&*_;1R a@Hdr4@|!/+}SZ)j'Áף?RNk@-J SwO2n BmU/jUΫΔ `R >~_笭\UͱvC]3Jͅ?G#re 3/U6!/{]l w@6<'xuLZf6kh`,"3+fpxOc:uZn!OSiÛO 7 DcgVtu>*6`BH ~IuTF.74}TTP&X!k@ =-Ib@s}m@x/ףּׂ GKa.>vذrÿix8 \W=}`<pyCsrSy[Eʌnuځ2:p)kt.ڽK 0u*;}dmG 2J0YֺjZ=lS#ՔF]Xqm0&6!Ok/ ;]f&E\,;[<7*ZP)+]]MUR}q ~w= H`x_XD*OV"JĭgR 'ɎP=!\|"4ɵqV1["@h}_e A/%shvk.]z}A{"t&T !SƥGЪQ+x l)%cBv I ` lS%-g5iXSL7%ٵQ~zws%;ZN݀MN{ υ?B@/mX@3,N$(Exx1DAWB2!F7b<!}k@ti-e#B:q-go()x! 5ݍ^p n~6B(v7}a>ƁO obZLegxRl?蜃N(){]?[bm;VK <1)8;id ={Ή SYcKfxD0faS0(szglX̍%& |X.X'ȵk8}<h<' S60SsAM>\ =R @0w"ۑ1ЇGtYe!dЂ@rQpS[}Oʅ9]`BAflsCTcE-0T -MliS"m2%r۱X Gc߶<p[\{vnN6_ YGch)dȍOT͈޴V8G 2l 0jtA)N/jU:s'&)B>p<ш˔0raO6޶Gfj N$NTT,XC7Yr"qS'e!Z~TIg} Y(Q|;% zs@8}?7{9#V 1vgur@pvY~R%ؼ,Ů7ޥDOuaUB5saB:FTJK~ʹ `2RY %tVR&N)`2 =L\aX714-6@cġ#!u+ab!vANGR@UJxTƧFxhN-d#=^L{ Ia:W|8. k xI0 Y?2*QLī@_pSXPZ:$k7yBg֘Ɏ0l)c:^N9ހ~;4iAGR1zH!n>K[niޮN^ ("x0(0KWwJ$6; i8uK}RSwlc_Q΢ށUSs? m/n_3.uѢ. )WFg0EhS_(U"Tz.yS3c)Ą5){@~xhsg\[VHT@:>TUGOf,"1u ;'@ph0B_j|7,T_9ABUN?|e`SZU>ΰCV43dn q& D. 7x8 A0#PͱO;;3 80DadLS,`Dh``bsu9΋$qSA\ >4\ha Ճ$(hׁKQLjȊ&,걠^)ЕJ =Rt f۳{E4u8QLMDV ŁO/`|:kZD*JO0P)&[1 GUEwGx8H(frvIVJ;S }PnM0J"un&-JO>afܻ^@,@Y &GebS-rNm#-)|:pZa).Qo`0e€074"`Lx(}?lx0bpZ-pOh<w{F8zvc6vQu9F58S~P`BA?5b PAo< CSu{bNFKx`)~2#y+`  H0!@09m֚n[` ` =: W&+;'wGO'-% 3qG0!s֓SgS$ \@?󪘪+WxE2xI_>_{Ӂ!=:~^]zMf(pCV" nA5rX)+3QX2\[c1'D>:7FInqNFrކԄ(jNd%6/.֌!JMű}d$ 7dg#Ч( rzL ~`)n.P#b>GxoVFjy.hGˆY[IԕCd Uw>ۍ:=E:6?B4X<)Wod_l X9M GȅMJ߼:#0݋5( )žJTvP‡gq07laa .O(ȖBVHa%,[ϐӠ#w lUv: \`>F a})S˼i80 tUT*ۅ$~6%ul @8!BG70lqsS0Cx#%Ġ`"oCuG(ozk@<`<8?&> )_ 4?zOEϚVPA`KEՃ+EZKمNI*%"PP?^")<0Ixb??/\ j[.V)X4>T] wT`1B ;ևL@R"#s頦 .Ta8Nj<*֞;@  \pIwO Ht?)! =wd%BM.x.L mtl0k8JЬR#rr+ԍVu|RlhZ?\V%1S_n)#H^;Do"D6G<=ͱHR,AOɯ|[~_TW~~qL`x 2A F^f6=k_o_^QmiGO}e }/VD8}V]vrLn m#c VU_YDX@c|aR*Px^lNeHc:og /wo yT(SA`apfA Zd\d }> d.$IDk׹WZө{"`OQpMaZPxX#zHc)qQdѐP2? OՌ >֗6S#Th bҳ6Vے)0bW;muUЗlBGhA}/m`ȣ`#Myפ!@* ۷ޓglg@IVmNg d/švB͈CxLD ^𧅔g1sOx(l3g c|.!B0Tۉ= #"΢(([:0,ueJXFgcI4 F_#rt@D (&qs #,)7wP Z)ޤdW1^ƈnm) .rpd 0qPG#ZGZ\'$&ԧ܌U<=oG{\ i,#iv#(Iu 5~ O'Q΍.jt)zQ`SeL9LVCq=}@"Qp,*veK ʰ< ]?D]HRÆ})lQK4t BkmšxƧDLlr 5M 4+2I&ŁBf~ P/WH,lVU*& = AW`,,(j7PYע&D`0yl;+(B +K4ԎލGBpXZ4H:b75}p-lh#8#T±hSo6)sI͇2/qBF;44, |i$"(`'F/) SC龙40w>>4+B0|O! hQ0IeG%e f*D| c-./5AIVZ~"a>hixO7^2|s0a1'ˋ NRߛRK~`ZWy(5Hmw:nXCqr@-@tj0)X4`umA F%o襃V6`˖ְc yw"@`-y}NXI#꺂Ղ׽##ŀ$xUef4V |Z׫NVT[YZdLJ1Q0 .dELGP@ "vW1dLu}>| _/1 $8X >5~^ p zB^AHrpt 02c"dGNL>, :0C3 _3!P0<(2kFy`B qe6ӵ0r4GGGGG^?cm04qdS;EH >T ZU,9XP# DF@^`@H0ƀ$\'Pp I`T}0FJQqGਰ~ ^H.(|?Q:8OC2|H>$uڔaНN~.h21ގ =#D`Cx7A"`f+&GGZ8*0e  <Ā-qj܀^xDx+Ml#c,;֪O 7 j8xC:"%n],>> p2ŀ,P PPdӣC |(fS 2&: <(aޟ>L3 >~N6N0(0BĀ-8$0|O0^nap>ot)GGN|LvS MګG c#gF}|aBKcjDzxa|%hA3@|(Q2RTmz`)N pdE!F: .A݃˝ |0G7߫Vm̪xN/C7UcrC_˿䦩(t00<` {ӧGN  'xG0g++ՆjM4=I1(NXP00:NJA(ӧN:tӧN=:p0p>/ d3^?Ā-Z jtӧGGC^(( &0|X` "7k$34)oyS{ײh:tzt h:N;00dcRq00dc Rp@ ðD̀r.,ӝW I)@`;[v_4Z%Ąl /x8be|0 ;Z@΄+܀A,XٮeߔB< @!~ jP J̩&FI ~D2J B}Ë |wn\i$lBJk\I)D/7X;W `>&:i}lfef_k FddC_,sod87`N':< [V<@ DQ`?cZ1@;"Z9p e~1"V8. }, C0kARsxF=3") ƃ|%NZPZq'Zɘ89ڍVJmC P(c-np Nm|`Cɿ㛭M]#! 5x+mw0)E:P*EX1p;U/x"bdY28ľQ6f $GjY\crhXi8x @n8Fk ;IɁ4J,=о*/ ĸ8~* Ÿ4KT;e0!Br8f p7W" rq.6AOkJy:7pWexr Hjp?<'tDx50"l+S \6ڝ-z8dBB!0 4uBA?mFx; Kl-XrN:jX j# \&Q"0L@ƀ\9z/taqtΏW`rA!0%,x@;M`B|;؂JRMmރWc'<:;BKB8V?␸)Yu!p \ݽ\\ zomP|m9ϹWqefh\PT8lN/ ʃrEr1`Z.p)`0b,gI<) ƀVͅ()6hAB00( Z\iL±ι`J0Q)3+D"ÀI9VI[@0`2nnYR^3PX~P8UiYuTΟ[Ow<_a~\,u?ʼW{K7N8{$"2jqˤJ'[b OaL02ȢBy0)HE(p:mtrw*oʙx:S샨)KHYy6A9· ]B8N !x.‘6@8)‡NCMhֺ(a[f`j `u@2ZΆ! AThxżD8}RDp6bMQ8t,dGOJdv9 }omĄ*#+ 5 lH ЧQ +`_ Ax"B6 / zR 2:| F/h.E4iA\X7C;$˩m' )h!nhʑ%=7#%CC$ϐ :+b98%`.]a  ΦF.CPO!K^Q(<7?9@RjAy9* 9XۂWʼn`& nKɅŰq&;vvAt,t x<k 'jp|?A1B~± THx8{1Ii#eGJ)x/‘.!s#0@  `C]rGSt=#`\Ӂ'đp<X8(̓PPD D8/ Ɖ"|x?%`P%<_^ h>gE`\qh# ؤR [h9`>'$<*8L `Ep%`Na)ɓ@.9 @4dA¶ r}|M$apUP alj,ڜbP@ (םd\$B^j*q7RW WBnBOqL@K8  jұp^J(W@<' p(K<ƦqV/J*ap-60[p+V)W "T 0(H=6`6gJVHI%B^*%=o35  3,=#/u/XZBI(SA0+nx @>xh~@1 ;=u=KMlHc{zBL3U01 YD 0!Q őY E`in!Ì8  $O^Ġ:Q f > a X$Jhx!gܷS=TU(H(C'3tFw ñ1iy@Hgn\HP@AƠѲFǫwQU3G-qȮX o6dv(VP JQ(x_.?w@g&G)""A>J~fܵQs O"%>5bA|U~V]Da[sxv;aP;[u[_j^ثpEݱX(a*>]J=)lUA O//IQ>>U Yp! Qr{`|՗LU)H`Ñe* $V 40%YX7G6G-%X5BX=920+Õd&0?cqGA2ʀ+k){ͳ AĪ K>8+Z.ZJ+JOAJ #1X`CC43`ŝeb2æ&A4GAbs/A Chz5r(] j(+}AtQٺWzߒ{} l*٥9{zA4X )Jff4[0AE !Qx]2<]uX`+(0T@QKëgK\k5N< lX%}ET^avD^}\ ^=Ecڦ@bxWJ}XE|fցOTw& #citSP"PQV)awRW[b|9DB.hy  c.*.?}0FYqM \0!_Տt̫;Ń4y']Z[Kz=T }yt\?MXd{0k*>P10yI^YrpWeQ9; duW\ R"^%+m:į?<%+4<96P)Q=&..LT́4K!}R.p^ /bAϟxu)n)}/nV^E>eWx(bPCj|@%t{$~ʕ._ܴ 9T;{AMUU_`~]~P|ı=DP)K`x SGT(zYP9>K%Ypy.U:w:jL_B|}^$@SU⦄G`ix:MKz1 u "%L@h`A% "#D968 FO7`z P<x|* *ջΈ\  ^. JK薫Vf["s; r)UZbCQw7v*U4 QԨ'I޼GZj+b ' _.V]UlWx ~oz@r(ܹGg\#JG{s^5\Y7aoZ__q8x!tJJDyH(Ļ"+%YV7c>Y럛 w@X!B@xUjA |^$'P).{b&_R7lR7!%R>a|vb4;(l.ڿj#? xK`BW%͘>S+! ^ 8_ȫ/p$E|}P\;e~3E](V)s5WU0c!@P RBb|UAQ)P:߉cSЄ!#*O*@GW_KU]LzF*+6UPx,=HZr}Ə< @PJxPB0gBrxP  e*)S+OH_*}XO(#ӹߧzy*ࢩ!pe$űNxK,H=쟹yQ-נUB~+#7Us`{Oxcʔ=Qy^M8qWR]A+?e7_D]mU$//V?^V C? YG=> U//@V{,}KS[EAʨCTF:\;^.|*UzOx fqra7j<>./R>RRdo/|IsJԗP||Zb7Eywg +L3O LuXY|*@?]Z? |}T+kd#Ԏ`(|}U&5U)5o=rߢP}jD(K7į/x  HJį~!+=nl꧹Ϫ,+>\ ğĊ~KUJs,G el?x k^PQ+`wDyrW܊a~Ʈ1%eEe߰QxV)FGGW4\jUF} UH/+T>XDPE~*+8$*/U~ /dPꁺ`MI9B 펼%W Dl<0~8"`@*fPV rB@PwK@>"T+:fK8_A*Vv_߫<K|x;EWxF/B.=sg$ +<:Gh+zH!Pz:U<;V "%#KϗLJ$pUݾQ_Ȗƀ%:`-e2 Wqe A0r ,qH^|v ;.U\Wpj.6. .|z^Q{k)-Tϕy@/U2C*>:;rv\xB_צ5 >ì(tH)Txd~5*% )\0\i Ø$[r).i/UG][QRKը>UWuW"t\^>JFh_Y(\tN0V! ӯGem(m*.Ž<ٍy_jKJW_*/.0_9W6X @{N+-,0;j#@w=V://UU}\L:],чc*'Ǟ/Tyh߿.S13~`G}pFߢ_U=`,17xuCe=jjfOMθG-+y.WԨu;%p>.6{{/Q_ߨrp#{NI7'NS:6U81x;HϩVP.(,:Z|zB`q()-G+bJBC!*PB^>cxUB<.NNPGUf[˲OpjD`..C|/WgSR@T?_K@)XP/swWĻW{swX0I T"P!yD-NqBxev8;U_TJzjc|Ruڷ [`EMF0JT@>:AKTwЏ;(IXDw㿖 =0 DztTbARUrv*F%*x(]er^<h18ǿV*SCZrG}Vt @w(_?mt~ox]TH  }U~JPsmS@|y frx7ixJ.QԘ;._ YVJb+zD*QT? AC1L9Cd N]2lT]<@S|(Ŀ}!b޸K BP2"(Z^j1)HWP7).(t $)s꧋^K BR"EUc<;fSSbT~ySW J}Xp7UUyP,`{wy0z*֋H^ Z$Px"U@ rBj@3ڬyUP!݀8 Pd~h%x|#_K,VP9-Nr}S_P1h_ CŔNx\'J^ 1| 0 1P~~G?:! *Ij@cP4nM$ʹzCj|#7~>).T: / Cpzx|ʪ\)9菙10|EQUt_%=G~G("^_H]>/''>;QyuS $ "a!zrgycfA沔֔nO_ο@R0},h) Gګﱟnj8G{ LFֺJ\_u/7\N#WU\碿ʨH)V]=;<~U-R!ꯂ}XpE )uAW ]Ғ(Seg åjև`ROZ({x*_kA A,EWj,O8j׿T^f`V 1wՂ"pV\8C/R vX?d y@8Db`* A m5`_%c&) BCqWCƃG7(>>/߳c92+ȸW LA U^B =oFH2V@t?1HVkpdck~EeP?c#QFzUK%T8"FlY@d,Qx 9T0Z3 Wsv־gSP:]u_#R*.OhoPdD0#LL5'j2GT;b(|\\ }#~CX'"v\ `pp:UoG G>Eτ,"vDW[|S+ $xx20}&>`rDNtȫ..V^n(~/(@z**H AQP@svKX%T,NǞܐz\ήֵS" 6cZ/g_t@ȝ}RW|(;ܔ@SbAx<Ջ*I./U>\%_MԸꪁ.f]GBT|%/WDJ_TՉbXKxipy L TVTǥW\ᘢH@!.!Qz-T T^_=w٭fU+X/V>.P*bP6Y.)K:?p ԧ48#l N]T~#qyUg^QvkaI0SFgZџ Me4FmӁeYpo_/۳TQ`dʲ{w(0!σ!%V"M:*GmoRc+=6|..>#ZGjb'ǑXNMpUpz>T`P0VT"(橪 20R򟏡u- Fp@xy>:9v#Jp j YrʳsBV %ia}:@p<ײ*Xe/$9"9B `)g0K>#>K˿V+ wIUw 4-)NjE`+)s`MVxACT] \!|ӸgPFVߔ5g9(`~5y**_wӠ|K+t⫚\>doA `X XypAX6 eŢRUJ&Qp)T:0 ŀ-U`+S ʠ|D7i@v~)Nx(긮is RY )y3I+2 CE]Lg1}!LT@ĥҪ9HQ׋ ~Sx)8@FQ*_\R_nZ/$eR#g)fa1w߄R_*I}%AGƉUJ'4  ˕!ĸ;QNlFh_1z2c0JKf"`xQyRx _ `: vC: c[:8z|hG;sKK}ٰEFbG@U@wΝQ[ҋހQP( Pc^QV|o6,d|=UwzuZ/EE{, ~P?/U GqZ>pנ ;/ 꺯VCxڥw &{UP ]WU K?{>>(σl}`x-O_T3k>^ɿ7 r@8e 8^LUDiyoŰ{<3ց/R;K+_#<> ?~?WyҺ%$.rD6ъg%7G^@vĪ` E (ZKA 8&oꇿ=RH ȥC`>]W:g+Lt\# UR}MI<(T: J@?v08#W˿=|$, #ʔʾ^J~dUZQگYN%9??O2@M:YS==HUpG4AJUtډI @U\z}S!Lƀ&jwswÿ~DEXpdR )ANx|joɃ cOrC!!^2Gudu#yG`ۀ̹Z(U KĐn@X!_ v(8jd3T%QI} p| \\K(xs8>7etC2|>O><`}z5N3'ĥ ɩgMbpk8&|`ɠS0RjA/%T?V+S{!`є~p;_V<6O>O/EyEt~ 'sÅK<2ipJT 2f~%ޟc%J;"C4/ (!RZ 4!%oG@cw&pg z5(pR?H0׌OHL3ᭀs`>7jUw~F{<_L/(<_*ǡ * H>I]Y*vę^.:/VWRz 6?;B@~ z^$GC`/WpHD`/ufC]W(UoB^m A'WGOl,KQX0t!par&HeJH0%/(>W}L6#J 5(ۜ͟%6< E` u 3Rŀ􁞡*<52FQ'3mʏ~>.NJKT?I| |H+Q_WQB#|Qu5[WD.SfP)UG~Q'i@-Rn=_ld_Ff'Y|b 3Dbu6:=Sh'rשOk"AEt͗*¡pk? q3`N}[GOMN:t#YaB5X=" Nδeu]S4 VVxTmj7lMGX 8S\'N:tӇŸiD<ebY#02j&w.l5ap|vKgw*m,xUffP˒2_ƒ-Wt [ QuRB"0g2fe{w'֌` >9`GmkyJC;& .qVǟY~iL I@~̧C5B%ZGB2O sGnh9cOy4AGX=# d>4}M1_' E Mo"(oϮbNc@ϲ05WTZ6کiSdHlҖ5AЦ03e3_N?؝;-;W>(>?2d=NA?"Av/%ˌ40D$-T^rҋS N8I*}ϓ,ɞв.SS1+՗`,pۊߕ~5C-h?(*T&&C;-iZ6w?fZ}nP;5 @: \\L>O=>eS{Uy3{?0(Έf1m6'!uEdlX#j+8 @:pfJzČi%PPT\K :p0|/ŀ, ؚJ׃Nǚ ` !P׭灆iӧN& 'A!ӤӧN8|7Gn5q?t1Jt/N)ӧN:tӇCpua O>lj 2N:tӧN:tӧN 84N6 tӧN:tb^F~ J AV5N00dcS00dcTe b(@ *l҅6X1Fl`)04x.JlIsyal+o2 4<\ \0W60/'k ~*[#<$'kk`"`Mֱ} c,d=ll/Q8 uN`gƐLq6(k`9| 2 _[ fl'$ vpаM2/h27/EX҅ żk/టzu÷6^v3 5li1`VwEY`@kcKkSMc:acm`.4X%v)I;V3aBS]7c=׭;XI00dcU_ %ı,JGRxJ `?L raK JD lV JJA!buύϱ``0 Z`J5 AC'@dp .BYbA0D0K",Z7]T#0,fh* E<paGBR,KtðnC ŁJ!4>ؤ~TV j3.7A!G=+COExh}`?5l'P4!Ӑ=~Qt?((*?˃ 1J60eC,NBmoBi 6[$8(gACUi{N :2yb$t pA(4CR! ]aΌ et3N~;Rx>*V>/ VO*x@vUx@vpzs8J9y34F/b\t\>hR03IЊˢ^~ n=z tYp7VH Y0Ӧ=5Hƅ@0TXK%ޥ.`Zf&F @hIa假mH?^2;PPt^AJ Ƥp 2f 8pw' b`/|xVދ`tGa+g,+)B&`"0hpwp<4?*C"6|DQ`/%B@`2QbHh.: m̲ ".u 0<<xp3hS..6%$@! U@k ü hrdZ '/G 6Jq3@h@ AP>Glh 8“?\bVv pA|S85=Fx<).|%U'E%0fW%F4 y`ƒ!=dVՕ7u"aV$B.h0b7mp|(@^\R| OxPX6IԀ\1 >,P (v#6IΑ!ib^O.x/@+x EWPC X,G cU2 F a> q Ei6 x<x3Ɣ x3 EC㠻VR-X8\|C"p GA0xظPCz+`-ՀN0Xj(#Aȡ+AJDD /qĎ+ ,('ßk5Ĵôdžt% ŭ$hOt{)CvpS*N\kVVJWhv-B@6a*;@@xѝʴ}7(dy@0)db{C@ذt'x`@A#`m@ >x(MT >./"MvN(a,K6qh/ U]G 4AW3ڜ>_À=`p.= GF->MZ%HL6(rd[6Iͨ ҈ iTB*|xL|r4ilbȀ4fdd~s&>7nFjy9R8!xY=`) #ntG\$+ \ ^.D=#:4iZЌuS=n´B*AʁR 5S2kE! |A p&" HÞem6x>O>`eR#'ESd"5J,؊N$= $@6'XB@)| %2*pHh(SEpHl } ˷PLnnQ;#邶'C؞(.`Fa+?xĀ/gʷљ  #ۇ{5Ͼ$%d W0n.EZ[C@F(vq*LHX?$!PFH㦎5֍B゠b=ќ\hďr#ϋSnC%ͅ`* }kᄇ3"AR0iX |8U<<09X N9H_)9 1P3o_`cEp*H7L ttttsRf&Mʼnfޝֺ F JAN(=Ӟ1{ 6s( _k\ <{֭q]@*tӧD~^2aI4R B A`9@R GV,&N:8ئ0!1tӋT#[V9||x4zdPTZuAQk&`.Hm"ۡKKfc ".#+5,7 ӧNP:t4N`]b3-(rh AwՆW^ MӃc{ޝ8;P.D N8p[FlE68 (ZiӧN:u? D>1K@+w hA<1p'0,/MFӧN:tbd:QG0>\`NN:::::::t#GO-_ci\ dxVٮ/(o"o)ӧN:tӍ%۽IU d$h3Yp3Jj>HH7ztl'7:t9?>*,tԆJIsbӧ)Xʍ۠xp Wd7#S8b818 LJ00a0m$(o*~P ¯((`M7,PA ׂC< t:6G x3Mly8<^}-N:pDC>'xCop!t:)[D-F }Gfx>"pfP=9:xp=)N8H$::::/pkXtt 9GGGGN&趏GGGGGGN00dcU_00dcVY l~@@<$JWd*D?E2,J7 |_|;/Cј "Vt̔fR*d;@ @X`4\K#h$`C]LFbIDl$Hu,5 Qa#+.B%oxX 0g L>C 5)4:$`SNM$A ̃PKDH$;2qRQ(JT8 C +aDv& H$ͦ< `;Dy` !UX,жv 3[A+Gn@͏j%o9 K 4}lkACD=#zw{ > dT3JzJi`,QِQ.#%MU`P;=_UrU$UUZK̍xI֗!chzFh]#Igx`~%&X1GQW t *@H<** t{*/`Utx_!v`;/(2U4T#b0HJ d@Q4-Vwi|x1 wJ `O>a{J=*e"X07N2ݥ `SĀ-ۂU/'>CtblpG,K,B fðhֳD$CD`; 1 NR ЧʋРpR<2"9xEGq@ 8$Ds>#+ ҥlA a}*^  PPρ1t̖ hxƊfEoWH6/F#Y0h0 ` IK^%iH$,Hɀ-g@}(p 'r$?+Addm;Nb~G)K 轺 Bb=8^>X%%2!,s 9=rx ɀe%A >^@!J\30H ޞ+K Dy@t`6 GKAx_f0BI |1 ǹcM z)p=ύ:q8y@1܄4_8jUK> _AiT1 Z#@ac~Qk0Uq70 t fGT ĈU(zr8Cq/%A 4 ]\Ket!+ Y8F6"J2u6d⡰ 3O8XZb;lgAcG" ! ł?Aqэ ;ڕgi<΃pG(N"<&OsI{GWQ. ]96vC< ̽\B]WnfFH1K>E|X~^:3IiT>S`uCj1@72'1aNx `H$T(JA~QeAZĉD@Q|r:X3c~OSI6~Z}(Z[An 7U`" 0"V\@wsK&7:l B}9\(E6I`n ~t(ǼZa|W+p(OʺKScp:}h0*kG(A@c\=Jb0 _xt`Ib\/EJ> Q\8 0xXhC>9C*xEnB!;*  BQ03$M0#,0*r8N@ <A}%")\עg, Eef +ps a )`n& F,]#H<<@S:IP̍7uT3„|(ƂT'zO:Sī00!fO5TB(İ|@8_ʮ%^3;itCxx|tЧ|dKA ?XA@?F58|(C$I m A n%d#pV@|=+r+ ;)-%JA h$KQ! `ax2 ?:@?t*J0/]m @h8T!nk&j %| P#@0 'O>B2@݃ P Q|(?Mp ~;;`j{ /zj{h>WL%xAX \X!0"Q@`R ,Edôh".,5~ L= A'8.BY$As DB, |$W9kO Ğ `0abWII %)6iKQ-Z 0!@aмtNkIW':|^+8km&cA2ڧ?7%\ԗw%RBHpDoxKֈ MFO:` EXiʪJN ֫Tع00q}V Ho~PC?8_B]rPʜ"@((V :ɀ6 m1.H3`^Il4uɀ=>3x.'U%Z`6t>DBIW*yGX4AHeH7L=x>` x  Q[9zK# xl{ʱ@w<͢R?L 6R߇*#GWߣ#6><`0E`8 a(uhd{N{ҡd% 6l<#o^GY+,dŁ |KNX%@E3A* Da0(!H |KT`hxD_(!BTƀ[a__F~-R18]L\pj%~%bc50k׍LF^RlڳCr9(xuU/[r:@$  zzwwwqߊ>s W{F85{Shj}G4z<*BːuWI $U 5s ^,-R4=iR FHEm+:,qT鴟#RdX[XD ttޒ; }P0 *p'`>@ y[ sӈƠtD`3t  qt)0Z^Q*@1SU թR;L'Th *N5)G*5:6t٥ծlO m+GGGGAWÓP ϒ c j &|Ah$]Q_@XbfX&ȴ|ZϜr&m Z GXe!V74:ER_YPJÆJ _*ƇjMU2$pAb8^6?b׏P?% #ͅl`4?Gͩ&(Zd#9AH ,~\p8GTYc?*R uc|or AQa[AoF2HSE|)~22ddH)|z9SWF@#lR;`Pah>V6f eXR WN -h tWpdX|_@Q4AHf x2J2"b0` 3idZB0 `+jL>yR_}@"ħRI&ŀq:HT2Q8fA RJTG~; >/cV"K1+0'"fd&k^tE ֨Fb(IPNi$p̱p<D ɐqIf<<9F "(LLnZ({M1xυg>3&oT rr}U}S.UE@w @2@0o{O6F^p +hہhG Bb&N:tӧ*2fNg9-,yް|:: /&5HL0n*"o^X61SD 6:M@(Q>6]FŴ21 A JqKX2x>oFa 8"ǃ0 t2pXP$2x?4$v6l` B4pp^0C.dv`^bhuy+`  >7Ė0H +Ml\%+ƭd)N΅GƇB[zR8"҂E|`UT:S  pu܄!NtpPcDttqQ:8:2F@+A\JF3|XpSP q#GGON t6C%j>--FP0d,rJQwU@R#9E <c@Sk3t^: Dh€(cn #@|OMNtEtttpHbttt:ttttttt$ttt<;00dcVYidx100db00dc00dc00dc00dc^00dc&00dc 00dc00dc<300dc 00dc~00dcg,00dc 00dc 00dcD00dcTw00dc800dc8S00dc@H00dcPH200dc{00dc${#00dc00dc 00dc00dc00dc00dc 00dc00dc'00dc00dc~T00dc|C00dcC00dcK00dc.KP00dcZ$&00dc00dc€"00dc00dc.00dc00dc00dc U700dch00dcx#00dc200dcB 00dc00dc~*00dc*00dcx=00dc=00dc:>00dcO00dc P00dcSS00dc 00dc/00dcT00dc00dc00dc00dcx00dc00dcZ&00dc00dc 00dc300dc300dc300dcN500dcD00dcD00dc\vision-0.19.1/test/assets/videos/TrumanShow_wave_f_nm_np1_fr_med_26.avi000066400000000000000000007320001466211133600261220ustar00rootroot00000000000000RIFFjAVI LIST hdrlavih85Qn1YLISTstrlstrh8vidsd 1YLstrf((DX50strnCH:\HumanActionDB\MotionClips\hmdb51_30fps_wBrd_10off_divx\wave\T??JUNKLIST^movi00dbO  @W @S <(0DivX503b2816p#e~PV[۷Ӌ0WdpE ުJOu~蚢#Vކ=Bޔ>)!OoF-A`rဖ7Xh6x/a)r P%~!2 1 %}m8M0|LL\mDF7y.BM<8|)GIzF}:U2Z07`M]H`#9gAQoKJuY帳0H(kZ§n K jr=sҵ"H@3aVդR{M̃|R åNJ6#=/ BX\Hi/|6n0[f;uS@8i-#ƾColy:l[29E"V6h*dh<ˇ϶h'$̺WoȌ/uI4&K*0hwR(wfc0@Tk^cPA얨`V=^5^,z:TN+U6;`z) #8?Ym؃I l"4v&(Q޺Q z>*{ 1NB,][xXHF 8N @p^ĺ0-ÐL.P4THV?"V$|8JS?ʱo%V60H ?H!'9fj̘Js?J1#!GL-6hX 4lf wǪn7UܟDBpa2ɂ)P;9gW\rޖPtء΃6{=]irw=$o] :[2@2) TCR@CTt%,,V@Wt7`~тo} 0pF3,͉oސr8`8j[ՏH/ Ƈ2;mъ%ՑuqU^)Gԅb4`@IPns焜a+@>7N*N6G 8fX:̅4hǯAZT s0 3xƈ%|0vx0a VK S̫3I[3Q/7D~jp%'fUF @ն _R.+LlB8RhRL]h4S/o{m5;Pp*p.8~+R~RntH%aJ`I؃ Z%i΂kLR, C<l}"rq)u{`28PyA jFA'WgZ^@sjXPP6[V¦L[?iRfmpaNi w<6$68kYCȌ2(#CBy`wʴmҽo gl =o uAH: lw.D*"<3F<,49 a {~4L>UFNPRv]SȣݨB(yf Xճ#E'W?BmT[~ᠯuV0(!ǀ޺=nPa̢Rfb`Vz}h{Ј:?QQ@wݸ._4\( 9lP*i, <',0̶#8 iT]LPa-k3J$OTrt({wAx0 ؅@ġؒEp5m)ɁHVoo3W լ'= j&^-d PaEpD ^ |~.(?Ap#-}^Y^h(t"X"\+[р9rĞ0(`G'{Q <Ͻ"mkfKba  ANvG+`*;}5L5x.z-?!"R.iUARtM"ZT'>7< ? "C%*?jVMsxh$Ja(|6 Pa BJ[rFUA ȅp 0${IM5u0x+cX،?IDp`0U5 jH/H6oY+qfCI'O 9ȭx 9؎9 Ұx8 G-U+ ,ټG/9e\bP`!x#TtTF(ް˵L4TSx,P [(:'I.  cH0@ k3fjH9Zrab^ D<%H P<t #OiŎ g"tCEʴ`YRG&@} j||-S,rņ0Lx z)4{NAGԼ҇C^NX##i޹\х蚅0M#>;~慪 y =M'#IR{*i>ȅmj2!|¶bZ\յZ!:2k$6j9d/>:AQ~0sVh u@IS^t6tͥmKR?@r4fנVnF{yރjRIuta%BH/A˄K0x/89ʍ/Mta0&+3u*(NPp#xhw P~sCCWZFwul ` a꿶 o#D @ﶭ;*jm+B!C/ A`$/-6 ;1Y`^q'Y3F-j߫R@YdK ,HH-\nW$?r<8!E<>P$@V$YgƔ, Tfju k`<$(#R۪!l6w\G "XnDm7E$ *`/LsA_<%HP )A`†[pg*Sp4]D6 +`%ln )L %L :SXߨ} ,̔:]-J2dm+{l[80(A`oxh.L q *4Y{NGܠϝS]dݱVBU%iaw~]ѳ >CHlzo^;{Qp!gS9竞dz `Dp|Tسv(S^@pkuauEn4?ҩRR4G}$?k`ϭ>[q(ڭHUwQ)5q *(ohzRka-<$8^Pa5EugJi% ֢ mEc0q>;9^am圥qCCo-hϡ>nӉ׽ (I^uDMcZe#)XMY;Vrx"N>H ){Dݝ:iH05vnԍt-6="򃎓&oAXXBAr5IG{{(Z"B9>|4JM&GsGOu@\YR⎈k,+.%\6<0+P( M3~n@U䭈 ~S'H;jK%I?Mle`B#Q R~f}HIIpZ#0 Tn2hSjo* 7S7`.: XTHm&z ZNzAV6[6R 6Kr"R<``AqsBP(C.(\ zYJ;edjY9b3/8t\|#&CxԫTYcJ atRx:f>2! x'ҏSr:;r]-pBMbf8.mO43'׳2E"k 98,/v9Ӏ`<`FJ,/V?O!k)D}<*`|O{Py b+f6y4$]DEdH)UxG9Co%Q.[KuH$#IͻڃA$ԅEqemx)}I3.GʍXL%=)(e\"o… >c7#+Ҿf")gIj. M%$ GpW{Vv"f^NݳzdB@EV!ʵ0/&!Яd@_` @Px/ 9[hSQ0XC3(U?}}ι XM$Wn)/:&~_bp  U.T,qXЩ'I9` ؊j 47Z< 0Wj#GVo*F |P3Dn>ZfY$X۝z\ze3}M¹a>cS`H2XA6R~Ț|fPs sJ"!Ғ6B\8!+}Z}Pr0XhT0–샰dy,Ha-YE1Uwj v]hN4d PMQ)p5y\:y!$>Ȳ wˏ)^iXU ba]^n"ָYb˕v8h A! BTlGJZ=W<I(~#L9J̞^ :Z cL:ehtDof2^i(TFRVVq2o}黻M:A (2QC^%U-uʃ`Cp"a쑶#,**뎷a#K[ 3>OC0U3*`A+H}.ckK4|މTg$GME cM{[bȜ1#n"{b%b ڼZj< ¤6 J҉Kv%-Ty0jos-iAF8@_̤sJmpt Fs.UoJ(ld =fGiPAd*kM+3oQ,g%=lH-n19cH ef5g?7.iE"@2%86{̫>IrGƕ\@9M}9%3v CDa,  8V_6!*=hs~聝>lywD_RF6I)-lC$冈F<?M5DUm0~3ǻ{Td>\ܰVVg03pPpv " अmAX~d-pEr ݃<0KDw;X=c@ъr bD܊#uo20y uc;<5U,Fi\y-Fوʤ`v1LQIMtuu(0 T?_8gFg7C˹^$ZlMC )“ v껙Rxk4D-Ǧu*jFNk'or0}x$a.hGPlX "FNӤo$7s"{U)g \T%gEIb5`pEUР v75^憕EJ6F!,'8%pjP8ڂ:r(񈆗GlL#fjMS.HnHrY7+,)B7\vnsgFߠd [P@nxؓt =S H =J"Õcg⁋ .JYb' 6x x bEp q ^5xTqRykCcVdܑc[un \4Nיk}D)c:|!23hWpUJb'ƴ}ā${F}5<ײSf_ǁX:V )?2yo|Z0j4‚۴'n&:F:ʂŮ_%P!)>\"lP̵gkAAyZ "S=O0:lWV[WJ 7I n2QRMl*YrCH0V w`00<1upE0Lv@. dkɟj2ASc[le+Oϭη7w%=\50da2PhcAVpVrFDOombxAv$ZG;.T {eY[ڪXKd_^}ZTQIx^Q?U 3L'BxwH֛dp̕ҌO3F=:d|i ܱoGnldD By\McME+4Rg*ג!GNA?yvRʸ`붃!ow:yzyR  /݋?*,ҫ~Օe8. @,\h*599zo=xVoLˎXgR(nBXbgy`XIQl(l 3 $SOΛu]hy{e\h&kqAC:9Z6Mʏ}VSɵl7sd78TÁPDON  vlh;KRCGNa8R"~QA6{ d\a8H1|/JBtdg \hXVy(V鈹QS\q@ OEXqGQ? #RaFѕ 7g"`iR1z ԡT0p!0,PaAвհ`pM`9: k.q{BqDPM Ѓ"cԊYk&)Usj8@ѥ)fa-X< 3G8 fY9KW60͸9FHL.jtP` 莕ұ]Q !uP7+^`I ;~Jݺ^7Ǫ%mZ9ƿ"ȦCejJl9K6oUiځ+G"BZ:8-89M

    ک7Ȍ=ke/T!Ox|r<.0L^XB䰐AIkbf| U+%I*" TU./a6V͈Kj>= ܥqW& E*3ʦdc:|4`8NLD|:fQ \؉Ytd!tp` or|$HB gs-ʳv,@p~7j ;@yn[!J27b ̓DA?%aC(h  >:.Ϣs6 S &ƪL2jg@8{o,NKtű8FRu#D&h8,(qxycƩl3(enqf*O"'?ȰҰO8'^2F&$'Z!" Ze .b`L?Bt'Ns ![J{Da "|,"!e3EqCjK&b`MQt W{gJ1{\c{y7`r :"8a D1'=L;`[r=}.LWǯpic#@B(GrBE狼-`ЭbzjqAqJ-/K*Qx!%H4+H)Ybh9 zJld}UM}pÝKz#IuB0riZln(m TtoJ7}>j=9Z9)>Ͱ *(`^=)+#>MT7W;ڕy:jܡA>f6AL"Z,ܽTZ}rd]9pa NF# ԈB+ 9aŲ e t!OAZ8ݘ Mר 'nbTC@>m,I Q^Y}6D¬愂I >ݐ+Y2PL!VdA@?MEgĂf-&/5>^K]g4J9xp%o'+əc|X/!!S8v%-Vs*4d&f|qd-"KQ<ꛗ[JQŪ|* ,CKbSIx9,,5eP=8 8f4>b]Q}hf( &d*ecȂUGu&eI᱁!V7bO3G!,9 x ;|%8Ъh" | kE{; O"C=Hc WLl6&x0 3x{7Zi$BNA.P%eS}X&0X,)D@Z%"#S6U yd_%wI:N6] @a.iR\o/آ>X0M7!o*mܲlQ=VgC, Y<\ o ȥ /<ڠ?UAKv߄nܹgT {dgMF+Qyq^gp c稉RLl)1Ņ Ձ$XQUl#N%VSdY8'rt{cꑠ3Tϔ,y8e< MXQ`|D[&)$I0`((e]7Qj_7mKXoU)C5DkՅ[N@zC@a x` $:55:Maalh+ Ap~) g*=@TJnibKloQ"Ձϕd L|fTc "@X)PiE;ZGmDﺷqŇ/^c{W\[Ϩ6y|GZԘ=+6s4@Le$kIכRR6X?vٔp(DKT>h1f Wm{yH~;- %[t]FXSMu2Th0Dx2@Ps~:/U kXo`sx ߃%#lʇbX/ ʽۙx-lV>V=T$~Um i+X"RLX{[ qQx0{RP%Z^q)a~6Zjy?c|$ M`IVΗ&hJ&ijˇ9gqLԊH- ͦT<Qʕym\' [9@v G< %a6% *VI&'߶:[,39K~Ξ]iD() ^0?V8M!jpb~.eZڶQdp @0m8?D!70m/܍ 2_AP-`=TXKѫ%3@]w̹D=_*a{|a"f0W.@ FjoP aV(6.!p07 5:n#oorߖga v A?ÑtI՗,T|pXf;aFu}b8{-7HIg#S^30 r+mMK `nN,>z*a'"elf5al>Q,Rļ >9=leP<m}QzLRWsե@cT$eBa3j$PxD#.iH Pz9R oۺ$}* 6Iҧlz$ӁT18X*P9[B"BEi%j#uaacޡ7'ȘXX0"m@e@ñ|PS]iܪ?3srwׅ΅FAB"T߁WQJmD NfE/esgrBGڿQ뜋B&(\% bAzDf|yVoB2 X 0<6lcl|KalKБ.z*''[ƛmSC3ʘm{v#-|(2aԄG C@pED`s9>M)liU#i13ߪmV;lGn i2U2 BZʥe oܱS5won^Yx%`57r)SߋQ0:'hd>\oWEj$[|Yo̊NNICU [H˦ !6Mͨ Z (3BX%*&S cCEm,~)bw=j`u6(1.D`9JQꭠ0TH75[G;@( Cق0_鄰aIjD2;P ^+5Ts_0_beBXO! cxV>R؝O^D Ò 9mkGUK=x a{rvN&2%3|rZ%ꆕzA)%͘cߒ&1V#5m˛9fF`P`cAv>NA`l *a/U?ms[j{Yǵud-->0v>KI#JIyK2F:ŝظ/_: U_:HH$j+f&ie4?,Q'L ?} - p C~͹/=r)a`;Uȅ @ `3#P oI&ʴ{?`yw9e%l򓾜)rsx9*|dNHhdEmȵ!~%m ̶Swd Kb|$GNyp`Mx4%'ܑKX^ŔhʥDjVK Ŷ@amUA0i,J<ci)WH}0FpU#D 66^ 2J$*`xcPpM0%oF.MBej۳")r=Qlł"1@~6Sb, ga\2X\J0s7ʲ/rdy ',ގ4^m {k1ѻf۳EU `v>wIj «SP9kPq 6anƳ?oi^PK/T^ZvD@5pVB<ډ; *IMb†k/>GzkhX˾?n^cyGߍ([^\ػF+9%*2:}huWMlNs.F"v)[zx%:<}0)&d5*=(X}p(xMZ*V4L_INJ7Xk _VFX\/.Ұۯ& ϶2XВ%R!v0U:V?cI{o=ca;T@*!Kg  7iidM]2\H+q| 39db>/~cCֽN __,j Q[ PI/!]~HiM}+AGܻLGI6vr`(. ;mIk 4C;{v!+ BlN.}*JmxlU"[s9ꇈUyw9u2xmɚ, IB+4"/MGO,I(R F@` 0jf٨(|;?#s#=ӯ"O!Z QuZs^kQ(|D6X m]k=4QrRb˃TFa@Alm/VJ-N@#6`NSruTN}Z$ O%nɳu +l 6G +!˰\qYEx8ž3;@ #|, R>U5 0=H## aH"xfZ 0x#xX[e7|X|##tERƽnm! )4ur q]t¡W=dE , $dI*[2>gjꋄI® ({[`zUlw0淳fjLZZ0 $^6w @ꋞWj:V1J:B8]X)i*IMT-08 e<-HRbҥCcSeVdHڨYa0wfu+5#q d|ϴ轋eVZ<1zcɘNy2 1[,mF%_V6T6[z;-G $DZN9o 4a@S7w[b-\A,JWu_ꖭQVV,xͼNb< 7tժͭ *jfw{p-$# Gdl.'ͻS$-֕VU+xYʛ/ŏÅ%q[?e\Z(b40뤒6 > FKVMUUyQ?`t[0/8P*DpkMo~$!Bu6"*}"L:z}FN2*䲕0^z%@˪KUemM"ީ95#۝#>֋0XI#aaUx{r@IRsЎ=jaiHrZ avi,-fKQ#RZoZcty |A 6ڭVUZ#oGV\VBD謽BQ Uveh"ICω{DJq8"C M4j ݩg u "ӄiZ֚IXDRNح6zƕ6>-\o`yJF#ZqhC=⇺# sE7UݢXZ"r&ՠB5"Erﵬ\ۊxhq*lLIX߳iM,FR+lrfgg̾GN,Jibp~?L2ϽUiլO⩺PVF+xذ0 @}x(Uox*YWXM3#  ċ|S\oNvX8eP<mo6-ۂ08-X3(@)Ÿ$"5f`O6S5W[S2E24MwqSezSQ&V[d~XkvgeΩ 4g|+j*mRA1fFUhw,/#(s)ll}irIIҼjέdr?0,Xieܨ%  zs=fZ7oVQuPBi>TP| mJ`멤gZh=u0f@<ꄟ%lHIg~Fter4$S W2&x3-T?SK\ gu~3E\4{U\ ".9p #CІ:ODԉ}=ZVS$(reOG`>ҧƉA@: 2. 6dQ%}w0Eq; %',łHn\UN^BHӕB^6A*m_f4 1c[A^8-巗R vاf`0)AmW@ʰMWAs ZN!BȠRx拇=_AEJ. ۓyߣA=1֜o[ YfeL DRrJFby+4*eʊzr OxƈIR5c|nQAqFa)$x=@b/Oݕ yr?I#ׁ}Rf&rMܖRAזg.bݲwtP<w KžB4 kx7Cڎ+JSz 4j]Քs i)n/㒺";KVTLsϠA]N1a)Zlo쳲/oiYNI :,FZ-z88M*- <*Da ^^X 6KBI0tƧzEm ,νHĝY`XVXuttbLPo)]▩թWrꑩ0p59"NVi34&VPrrآKZ";00X8TYՎڈ:Rgqb^TR=NHu0z]BnXhC\L(\K`0h;+d} gy{uDB 7%B^ˀ\sBʁ H8ۿ+Z}L>T޲9ezs2I+{q Cl@ll_yyWE+nY?ib8RCMqסѼ`xDs@,2`+`7%K| ӠPQwR*ܰ%z+pH>sNޓ 4JFcܜG`8E3'`K>Ub8=-My,դ0JMrCg9Vػ΁={`.?!W#plSDP"4z _ ^BT$U(Gw'Ӫ &A\_ޏOP#g[L8|ȺӷpՀSvd FmOm^6,'ӼCŝƊ#U~rh C8/#FpR<<-*/4p~FpKEI/A%JN(` ֭ױΡZd%CS_r^_˹5ӛ|,Frb[NKSDӝ00dc00dcP}Wyxz-qȀ m׍t",{DZ9Նs"*E;8J4SJPB,psO,p_uU!=CgI!mX/VcOF3CSeJX-1. ŐT^淥ь)Fu^Z[Ĵ>cԱo?{3{Yȯlf0Z Xjcz{R{c1NZAbF VM阢AϮ a0*>onI/m>X^ V7=Az>Lju0ǛI|u=/_{0qEy%[5>-`Fx8fT+"j'ٴggV\kE\T>*O<|"0{[s{z2G)I8ȲҴԵ>Whs-Z+tqWSP$l^u'u^dr'?#E[grwR/=]'۩%1FmZMvNxJSLIQ"ֱ[V5X]ݢ Ii~Q26’'*(IU舢Ym#Q~P oKjUczE޶`}[8+8N§nS-Cd$+xVX@156uo )KEHd(T x8E0CK^|IŏkFvp[D ::=3Md^®m=+LLY?b>`ምt@~RQx8(Gs`ĊwN 1sXҗ=`r#:8HJs.e:`ic{NWC/@5T:ĖMKia71#$uGRfrq;oN:O‘pxLMkuo |B5Oa%¸|+SkIƩFiWox}xU L4Eϭ22eJhU^O$ggS\eSy22hӕ` M7jadH2SS00dcQwðLc[91[zv0\^Iȿ8z}%b8-$($[3g"\e<t4){yy(9 JWQ]q(8& W`mb{ǿXo7q#{?00dc Q ~+a\38a\:h=2+"(b.q91`(vldץL d&s`!1J@E-:\Z 4:96c<:#!FJDQz+[fFan]9& "reX2_ROHe2Ff/`29Dh@ЍAip)Xx%7- m?F6#@,*3l3#=Sq ›87*s֡(#ܮzKyoS-Y2q`|̈%NzJt]q (1x4M̑3€aG3#`6/EAOՂ0zJ[z. 3IK!VBT3}&Ǡ5lgIwPp<*RZ ik 2[$0éEPr'#h\` *=<唧ֵ sbDOkFZŠO〢2@B\Mqe%]l&7#Q <](tv& RN IF:ZR0giZ) FFlV DH01>0"2O"@ PLPS0:]Rt QTfhf[-a4)/ zlGKyO6*mrz2)2/iOćGj!p@q'yEbwyw1'9j0KՈm`bebNBR~6sm6b.sh6Lsv[RS-6 +,k$vgJWf}vJllŴ4\SLTxu8R g:#%{nϫhYda N^ ཏcc`(P_bUs/9&F&G}C!EU An'#׌d 1q0F2W@[}  B^(_LE(SE|WXH-ZJ1KH>SnOVX]zE*؝ Pa/TxhEEsp{i4fw%_b:::hXi -2 66V/Q[[HHP`Q (.q^VpE#DЄ4EM6&wR=+.b}TQgc|6gGD/_RUWbjdֳgdq _Ҵ@C3O 'c@?L}((z E@bϋZ 0dBYCMeS!gBuߠro52sEء]{IU_.-6HbY7ZZSk0w ff1-az=)eM+SҌ:+υ6&(Eh`vNzX@c }8"zz")=DK,s_Ar PC=`#14%/De#徭㭟TJ=c¥ǒ&1v0T_&*)?T^$XPsB|EOD ө0VpVMOϰH`7E)3EL |"%Xeg8~ub!"t&p_$"=MduYrPG ?)rd0t<^ F^]6 }h| T?r`Lւৎ2b2i5 C=@0yryP~2瀧~C=?/G`$R{1OFdBȤ-?n%Mks_&Aj&.QiDoQڋ22ɒ8{<< R9z t[3iRq`\꽣+aJ S)'S]􋎚m6Q(HPaڿiͲ`Y"Y_4³ǂ[ ofq88So?WLqz`'K莊8Ra0,!GFiPB&x2U'Enun3M Tc"?V'.ž B6IsB˿KcߌYO&i["q\YioOxLD"E_Qb)Ԣ \l-SO.JUfUDWx \(2L("ϡ)\)@ AՎ%7@w@TN3EO4`H}`!5G`z+u'"!+d)-Qd܉peT_ Eb?z,\/AEU_~%QY"+=* $ehQs 7bÓ( q4!zzy N%4C7'HO+E` iy q KnR9;&ViM^D&iS9p ~!l)8#ܰmzxqh$b/QBpJ arzQQǁ+9c(~,:`]3 …y±Lp/sᓓlVn"Фd΂[NEA42lod[fhٶ2TRњN#DK-,,Aȏ(X]P "btm, 2՗Ɨ?]QA3S&k#| 14# lnkurpO8+K&R=g;LDn 1sy00dc Rq +p85Ġ,lX '. jr0VXKf;O3U0Ue ?l,v Q`L 6dHX}L M3B[IxDU6$Y4yhRG#H=@0'ʈQ lQD#Ox8L,2q8ѽTƚLLۃ&ɔ@@ +`=m@d@?`Sy aȸZU2rhQ@@JF~ =FDI >IŇ]b*'*(Ts o0as 8p+A y-KnuϞH,8E> 5DTj8\!X.{ 3CL#1GRqׅUe]d/3|TB |GDd@._ԨdG 8SSU-@'ۛia+A L ƃ:s'+< gp*Z+jgPUuP3d|R$lC!F4g{. ҋW&UYfn`kͧeTCbײҊT JLQvV8|@%X칩W"V'1lsT_g75$OH<#כՐgGQWK Z]N}W~>?WzIP%gUQx PV խZeP-oP!Nг[%ӌdQSރvʄlr b}MHm?8 W?9 1H-y88N1A@hq ϱۆ1jyM(add}B**/`0_f@-G)'-KnU&Jb9S~f"e Y0,f/²V%OG+̡5hd>*i02nTɊ$ΠILYP.J#% Q~0CM;{j27N;ej8/*d,zH!QL`t!5k3UO?Pvb"3?j.ԑqﲈ5I  0JƯMc%#| G>lGX[Фrp32$l? 1A;iZ*CRqh8X1gKxW6b^hWZLllJS- Z0ֈl\7g <=ʱbX)2CDKW!2FIʶ|?i)jߙ[s)5(hIóO{IZ:3k;߭Ұƍxv/0q/00dcR ~op YO䔴V.h% \jL+LaN#851~Vq^Hv8vSXod'0Lp)b{ڦR®24;z#\݀u\bJ7pvMvzed}B1t#]/xDKI>\?yϟWB2 xnH5rpqW "|߷B>ַpp~րDT5%k x xl¡ȉkF '3bloo? JΆFu=NDeͭ\AsqX xud_6~A+d  F>jؘt@z, \;,!-B 1O7/[1W*2kVA3Bf%BT$f";ۥPX4񬨾z_D/?VW* h')󓙜-ѿX?iW+|@!F ~4VX5Мd#pq Ew @a`g ϏUX_GASFRuZS$Թ^SUZxF]m F#GU p)`I() KZ aiH0|1XMG"ѝAAna`WaQ >lYHf4.w ƠR?Xe|GXlFIV @7S+-P3fhBd;#F[FlG84 b=lXBNba˥ѿj Cm,(AV<"Ox%`9YaYq|up"1,:IT~AD%ْ[/M%TvT[r 8X2DMGimTWM[;XbQhWh6 a'~pd K2%N |@V kP+P(dM|=ba ;EO99ܑ{6XmĐ8PY p_1i;\|lsxF/x]sY#Ӂ*YIi%TQ6 VAE0"0V%d_h01@UWL!p 0ߔ7%)FoiGnoHˠo5:ެlg ,5U@ T-,+i;b ʚpud &` ƃaTŮ ,=Y62j>.Hj6*b7,p2 ["CI2q9arp&0)ˀ2> L!bS[0cB͑ &r y&y6Q*zK9;qC/ @=%;aPSˠ(oZ"Oh gIz;P1U:B<|壿wLAQyu˂/(VVBpSu+A2yi*fjݧǣxBsiU-ϩ+cW_'VTv EM JEŁNoUQo=1JZ y^B+.4Pfg*MW ▷,EH,Zrj^UJVq%$T ``vKAXԡ|F'#1nsN'e#l&P4)l`?>86J5FӁJ0u2L+ZPȑiAߋD/8Q[^xOLj Xp_y0S8*p@y8,,j GN&CF 8Q1Hr 9XS`|0QO{q͞p {".梟}?mORH|U961ۅKoڊd.]Q%D"V}XU;g+ar2{ɿ[eO<0UMr B][0#}u5,a1˞V;y\ZOwvoJSj%`}G`h 8t)Vx8cUO.Cں{ ժ>%G!{!⣁ύB8,Bhf 񦳞D@H8 ~ M<7->-8ŽG", 0B' GSpΝ0[Qᾙ ߍ ď# }8V2kw==$ݒq% 4P*% t 4<zg0W ;<35 Ń!IPZBI+X߁kƅAKr( . ҦzH!|R@5Lh8S*aG7Bi_9FcdEh8U>ZP C;HF/@RO^MԢEZ-atn/C UdsKJaU >c]J^VHb%c/gЬO4~yi-jL#[r4Z1LU(Pp* `죇[SgIqM?)߫櫶ݓ(#V1(ba:L"R6 *96Qp8hxݫ!+h8dbCB4X|l<3񦃑u[ 0@PSu Tx+qވaFԌmV#NO,@w1&&nA0S<9VZo, ψXXBܔ".y7Aw4LqG[x E݋`ʩ/2PjS,G[X1 }ͫ08+Q-]+p[,Aw.{V @SB_ m+u`S_ Mgs)뜭pN CB_qi6t+g)Ԩ4dnGO=>iPVPa +OZ`t̞辭ّ U"j3m}R&+Cb?DjM¡5JSIb\?k|/oX͍l>GК+T'=x-|Р~ G#@GJ[MIӞOӋyDUӎS)biЧt18AFnb'b޴+0b]ZL-ˉYa$Y<]Pk(ۭJ6sKX٩E-}v'JNOmgƐ2;fZǶ޶mm{#vxP8fMF9.Fds0!,3@P;M,o'%q;: '2eLgp>Ct w16P i omdZ1s'z$!q2ڈ8'/+BוfFzJ֛ Kx&pVa3bE1bM; V"ƾ)oF#>XF_:/ w]k R(Lt %QRÆvlOuXG,#6փ;͹^-z,Q"$D 3nl[)Xɖk`Ç\ln>vr(1w$NDt:]'b{C/&Vwjz{ĵ2XaaZ (u:D Ft!2]a##d`(SA%J BZi'mm& YJq]vGd"Q )L ʛ@HŖ%L!)Gg\1RlbNm[gФ o#ê}JPс"O`MamMjy0 K[r x/'qXOOݸ9`贴=vX`GYu8>}`ťÐԡUy<=F2OYd;UXb>;Q|YC=N,&J }*ڀy)l_{o>(۔@^F`.`G եVVP^ /' F@w`Ax+N|bROзi7nT00ߩL a)dTT T{MJ9^03* l xZx2Ã`׆v[7WxXHX1Ox (N0H;y[YX @2 V\^ *gx.*. 1%q(F.J)PN h'֜βnz:JPq\AǷOpN3H/)E0q?h9)P3t4n1Rx_ǧ)`tCV;VJQO9q:}obkP0 aEn&"f 3=.kcJ%4Ud+1H8`Qk1Cp`ƥ(u=6w{Ȯ#G7  z'd@2C?m,DdGB9Dt8&Q`DJxb6L$l}]{ѱ`@qZ(ѐ vp/0Y\`̢<J`1׭}` ւQ8S~#55N8p86b0Ey Ġž3ܨ^*e^a# 8\S@Yv 'c) uN-гm1HO× V5bޥõ\{Jh _R_&73fPT@h/%m*MGSӯ{!*̃"O+_ǟXV-Eqe¼ ?'ZƵ 1W[.O!} p-L Xނҋ-pDgiS ( 78(n/e+ e-İJOx,XV .&_D otR[N JM3!Ș$_gH`iNNBV&+60)\W}keylY *=ݭ J4C^5ߩ°s WgbiE7o KEm !dMFҘt4 >+njY! J ֆOuq8Fk (+YHv4Z;$-~O$l;fp$1n':VݻiA 8xǟDN91;NH\hoMw8uYHZT'^}gnR5WB)vLL1DjT)=#OeƊ އDqO Uc<`eAjd"Wa<*ƀ!\.2@F @9 O x zJx&5HOXBIzxl}QWʂta1&ƿUP8&Ɓԋ:b~*u*y(?V(x:L"Zz@CKaX8JN Bf(('W Fm2`ѓZt V/$T8yqqhT=l30rK p4do zʀ<-O6i;xQ,oHqo00dcS ; gVwxH!3c&/v^wVG\fۆ̅=H!iKJɽOgFt%h<[ ot% q~@04'| X30A`#h|{8oqZYVvbuH X"$rN=A<)> d#mA{'ZU )lxa ^h"$?R,Y!,NP:R .ѿH,$1kcDb}-(nlZ剅}SM_(o6_7  tňTc3(k P !cɜP9.W S]#JEӴ49Сfi~[`^5^!a`z.'op 2( 6S^Q`)`z%Ҳ$81bp{)a\!h>)C;J8v DFҲ6AWDMVOLnX@#1Y:J 9Fit @,D @r1JFI6 CQp9^2GSɇ%x lH+aS8-,'Ab:*fɗfPG;932m\Q@ŸPu'DXKRc? ȣH8Ne<RTl|`3#.ViPOZD'6x RĉpJdb"Q#3ƘL=8Uī[" QO(6Ytr ,,Ct< °Q'-X 誃́"RP80Ot`j,H4NyLLH}Z(ƉhgZx T:R )l#Ɲ3q =I(90H@b,28+2cR&GٝbSx #íX1@Y6 `)N^ 3AÁX8P ž֋( vKU'#[j̊GM5ioB$Mpկ%bՃS nUV'1*J1lq@j&ec諂?*ѵ \5Bn4!!Kj @XA&h)wwJ_m3٬ &+k+8PІ0> aMD?U:7ނm#+v;r5}WN;Y4Alv#50GAW`)LccP)D앥7=?Z/EVoMH- x;E`Y0`Z0BE,Ɯ84q0:zzD˄@exO =k%)<2 Q[ɑ gbi#"ʑWE!i/t123*Jq9`LYIÁz-W }h XR8L'48& LFR~}?fBTT%Aҧ,!t8=e1,R38WY Hm~+0=n'͇OR` d)oWlmg>n%]1Arx$(P*e&ՁD*P4i(p!K)nEк`aka8},&*4,0Reh, -6O. '4PU1.Ⱥ(р#6C<4QiTOBц`<FfBxB È')Qkah0rqdHpԋJrPsx:Kt↪ ˞3j) pف2|(][ >"&dD:qTFdex- GZ~D!O `5Iw.@Zƛi~:4'a#]b254\QOo#r.;oYRV3"d/ΝBezЫTƨ֚L NT8r$sqgIyRLrSX2"#:A,hoדAh9hqxRQXQ [@!EL&@G8#l%K*13ZMnH^ 3GHpT#qT ȘE}3%IF-˕D; 鸲c<ƹtA k@hR 8\hTE`RSu.UDmQ!x!*^w~I`0;D<%$Ul EO85](=*4܅}hEJMcd%UAIjl؊pFX!BG #L" /4yG)oMaD,+@g֢\v4r 8==u%8ލtJ\3rsoEpl9>jlt\02d6& e2TqBH+KզzDS[س4dE$j)]' 6I*, 1-HSS`èo4Xɖ I^m鏍[otށ%585z#"Hl{kf"%O=qQJL;hN.\q['C qW)J"c.n0su Ň]x= _JB!t *O;xV49sb U֍[xa SRyMl,m0-Oen&xd!7pGeւ vʼnpVI Nd?Z,N*˕lbfBߣ*Dą ,ISEJՏ/HoJ}`qY$AIp[ܬp.Bx q, !(.[ĝy&(&: Cbeck8ThX`d,&Rp|i]00dcYTe0а _ ~'[}00dc T ~0+oB%D8+$`r`g ɀ< wVzAA=` f-@@jM b7J SƽJ&S-@H i#\IV;8g )Oa-iQ? ᳖EV4N+\91_=QZ3An·xxhV"W7#(1vXJ}<Ny!`&Q w <<|r1r M\ xj8?@P,r-XFfdY<ѕC=kSI?\ zۢ22vЦ1:G'm҂> 7Ivk8 HfږCv& 8\}҅ l1_gԦ?uLX PJx8bz}}z6|) W; 4NGږ RɵWa._"Cw+)=]ўnl u;:ũ`c Í![Z8 )^$0|(ܤL#DlN+ BŌNsg7#]xUKu> x8@eoGC•f/݀€oJ⏂hVTiE4G HX ұma``zAA iBm 1{<iX<:&! EmNY>6u& xP >+ha}AZut&uP"zV 0 SprbP&cQBʿbMa蓋jt(^S= nAղ`V?U>4ayr(E@| ^S=έ|yMk@j//F;YenOAX8nQJcXj(%`KHځ#[{ pGր ũp/&ȱh`n*/]8#6VhnVjwU8ڵ>gu+A*הT3 z4 i1CX2@ A?9Ge+Xe\.%ݭcX2\-bwX90SfWo ?zCQYyuT%)Ee߫fTNR-WKC.VFږXF!-+p1^Prvi Q42}G]5+~[C('X95mqPeL8OQӝ[4 s0B̅HIF]=Aλ=G.LOՏ[8J( gÿUaZSNg,NAOWs*2--`@6goA9i/tZoYQ4FT=D^@ǹժ>YaFʊVh#$aMcuG(g}H].T_g.yr[e@p@B<,g$n X,Erb@ "AJrQ{G -Oz^c.ȭiƔ  x,3ADL= ɫ i5l;G9(ЧNQ*V x<<j^i!2iI!*-eΙZmj1 0a>fMgL%gsXBԤeW7=RHFɠ{ފyRbL]fSx22M sfO WV8G6`8 'UD@x@"GQwZ:pR=67G P.(1ʝ# ?C8ȨL 8ix6sE ! 1sHRЪJl*B$!2b7d~>]rb;@S`ivp Pb]AxK~U xyrQȄsRF;FGAX8;P)/)ҖJ ǛƃQP: ~/`= }laBƠ bDQW;^0ªxE38Xa` /HX8Z"u ҁm vam*7-4e,>[xJ=pdT%eV8ϳ(zlQ.FI3wZ@#f#,Vc@Y,DbPd#☤y "~};UmNy),9A))MX؃1yTzU<@2'mkަ^\;V "U={wWԪ}s2)LYSؐOu, "X  W& mBsMɲeQoɠrf?.n^#Zdּ8pO0du`@_~cM{t1h3G^=e6N['gj!04ڣ':/ t,5B-.i/W 6|0o}N(p^5 j]Qꬾ%TèU?#js(qN:bk&pW/h1rqxC?1TyS"`6k16aJ#&#jԏ°/DXc3Sz`vV"/-g~ڿR.n@<OIH:I A_yEDIp .&g֡k>eCȩgCzuq&qb^BH WsõJ\"xn M ո ~Vx1"+"-8}o+Nj3qbEũ[B' z֥S >TX*1L᤺膐[ܡr-]FZ}8 O@ At?{Tٕ6'tyiQ D3KI(a8)}hlCa\]Cbd8 NR@3:!\Ǝ1:.UǀTkI0dbEJ  zF,YN PiQ&C@cI;#"Rjw 'OfFYX/xL'.RGBU}Pb T` 3reD[p MB@D} s;@)papp"t*Zq:Ɍ^$ +`֫ V"RwBݨϬ2 $Rp8T?'}"Mr0u}VÓߺvxnQ;ײT eJG~h ,:/k]դ_8#&HZp9}O@l2O9@ϒ/`Gmh< ;aȧ"BhlSQ%xSUxs 0G3=5yzx#+L@+{ejQc>ePsƻ[W[64ffoiY(%ݥ |S30MW4I[BD"8ab ƞ/sm z}k: `I0|m1I( +tar\D1sTcW?fӡY*pi n zmaSbbPpZQfqb`J-^))NjtΈ8)Ip;? #TH@Y>| ǹ#`ol n$cDAnT=ѯʉ L6 d(ոwyStG@Hؓw~ :C2wB~,E!mq db6ԛt҄#a^5VA1+ "Ni$ڔ popܵ Hj:76Sύd=>LRCP3=0nb 7**:ܾs"0gFquL$XXUtvln=< u-T˄"M;ŹIaK['Z##?"?nf2MYCXSY8Nfez =5P7}aQ{@(6'u FOiE@eiw/^ RsR6̛m+pQ}zF[-n\C: xPXd!h#q8,d GT4#V2 G;: @HXcW =)62${<Ȍ. Ndžg:@S:tP^X2⠹x0c ;8o'ksq,HPr)S'rҩ[ߵ`FhK{XƗ(=]o=rOa5C<%n0@s]F&6f6{T[ÿی$jP/n>SըҠWCZ(*VP `>%bWIGzd}sgX>KnKt(S3qwydp&"µ5FSO\&azZOug>o`%xQ.pUAT @P=C7yt+:.@e+o іL.+dxz8u-HJaY8$^QsTjUX;սţKWw=/U~\W@ݼ5㻡Sq(oru՘2=Tɞ[:!))m>4X' +}1]A!WG@;t@V#u,ooz[ް!'x?#9 ]q0Ō0M>;ʜq4E,o XDd0^vvFu,[qhckGmEcmR B6`%1;(Ny𧲎sbυ<`AH"HT+q @IW.{tcP\CX[şѠSVQƵsT.(حKW}1?+X c,q3+@wGsdI 4F+cp% mxwޛQh%Yp*ޟDUvEy _=;K~q]9;(`NXGi"Yk)Sp C P2TK/zr׬; BoȀ@mĄҰ`)x",~2iU!+-CU àV@DN WV>l|xǣèܟ*}:wV;DW\84~]2ha, ~˜$u`p' JYi\)!@`gj:a|{8@n s %9A\ӡױ[a R2Zaq8]1Dy;p_ zcBhᓔS :͇,^@ǍA 9ADi&#:ح>.hY$o/6twڣ񶒰XH|6EmۜȔ(ůdr/^Nج)]_/Dfz!Ggb=NW7SN^@NB$ ' ʇ'zf[QJ,?cXQW})@^*Ѵ ћE(ͤ`L5 (g9I Dc @ YҶض#ڀAKzUb.[O~ q@`eCdn{'($qC,BaLx~}Rqu€b0#@L4iP‚pHANWaMH: <caQ[ QH%N~h N)_ե0QHҹ1C/DE C||K0wba@tSXZ:zߪrmt2q P3w$ Sչj,4;B0pb0An X &q jR >>GjMhKS1  '_҃EFCtt<|)=:6@aFs6B;ﰾmPj1 B5t טr*4)U`${2} d,e.;5 6 pp*c _CGtDMqgz6Kىn4 ӊ2_PpE\uYmwl5͹r@[ S/X[()(Bp)XQS4,YRm8u"z)zPb\E f6I|2KKjXX+pSo3 5@4H/BB~K[.E3VM~1U4p¥WKIJ(OF|h]E¯c8?UjywB g0{`lxS29 -q,lbkwCc#7zt:j 1.*E=+0(Έ4N%BO~h:_2sS#EPdV)s"!*+lޭ3y?<)cqe<>bl-< ,2ۡxjDc RXe1'-§UFl[ZEw+"a3phlG td߲d? (ZGGW*}je[zW89p\#sW J<9$H.֏1YXrd5rv%aaSM-^v1gg-3׬Xr~J0 ޥҟy/`"8=:RfAՉQFɇ`[bnw#smֵ] d(qE)=SPY8"LRwi9(S;ӀT8w nԷP}M߽T%P}egx9<2v7Y" Ng5k@@+JLU*y;b>UU{Ò~x [C |?|yuxK*ju>]\IT[2\``WNk-荧F 4b 4O6؛^s q^&oX3YY-WFFiJEHQmc"fMʛ*0uGk;ݻd+S>e,i@75y 6NqQ(Sܘyc' oRxlbƹɚX-KZ uȦ+,1ծk[(,YW*b6ɄghNО43 k7(DJ3FR!20`(F0Qw3 z !t. 0hd% ka`)ۍ#hCg9*>#izs59o]NѷLᙠ8 ycEoc &cy[܍Ϛܑζ 8{l 5yD7Zo"\[O˕=OQrB϶VBZQl.oTHj\('fPAWbuX*ʙ7O8[X S3x QcrFs+dMW̞&'P+WS[@?J,UbJ5+œ;W`n(vY+{6yRC׍=l8SP5+mrq6vWa! U"MŽFqpc\Krxwqɳt Sַ`V<#MZN%ټD mR4 aR!jUL8Z {A1 m;'Cr(YA7 b *}&2¸ 0j)+uiU޴Nt+pgR:,Oĥ2)ȼH.PE&]}1E;* 5({(I: [)+xBw7 wB)0 T4`RcCa`fZF󩚃_ c=5gž\߲]f#iڸ/y`FRgvV;b3bo(KwWv*G"+.W-^\0fF1|]hSړ (WH!M3*e[wD-o6yob0.=t=p}j;7#IW6/vhVB>sJje⃽ d>e:ΊzcC]&T>8B᧺Ald#f@d6 eD4">vi#zPw6Ѿ j3V c v#vf'Yu&[a?@Z!rDrD.z.' 7[,0Ŋ- TLAM JSONᓽ) iZzY-4bUdJdL+U&f ӥ&Jӧ bD"l$D1QC'NtӧN:SKCjt/ DZpiM8`\UOONR-ML(8hsӧMïJz$1E=8HX,*T418 Bh&5=?ުOLu(&OM)E,ӦAP"xC'aJz)fPcQ!__;c61 Ee3O2 $Z;,}>>.L gMX>G([~9cAM6bP9=:t:lHZ'N7vNV:PTlD>H1߁BX6%ıeEm(O=KvP5Qz}Kjozm-*yXUAU CU2_s H"rIVvt:t:iN-JRޝ) '`(TZVRѓ l>(YIA񰱩l܅ѐ[N".RgVt,t0Rh}(DKVDO%dH}icd'kJӥ% :t' W'V|$3Ih`nN=4MC2$]AĠ͂v']P|j(:t-N:tၸ01RtӦa72dbḶVQpQn#Oap<\')YFN:tӣN:rF-JB'8i\/#XKSӥ(ӧN?N>:tӣO00dcVY00dcWS 3%Į[ }>.OCA?8\;w`aێU.Pr=܌`ߍ hgLƲnNJX ;eQQD7ЌgS>+θC(a)ɞ Q.9bGSG@f ^*4 :^uB% V8q -|/_Kgj}퀧Q >\ҰM*<0@+eN"Q+ y 4GWIL#Rh&, *^!L! "- G^e=9hFA.,`AGMQMP "=M4жT+.&EZ"=oM[GrƠoӷ97r/V2x`SC1L0y0R/2.}(ҁhtEwń F HaRGM%JWԧl B0D* *#DpCQ Ҁ=6]ڲ.qgEvojr N ,\sF=NNLHxr5J*J (1 \ғx!7J\LZ }dCG  -B&=ʢ"x@z'K<82a1GcdJ/lU֤_m_?hE(U{ T^=ջZQ0ɡ۰}n_Ƶj)B>Q.-'%Քզ|Ӫg@&1`DI#sddapq8鑨ME PE !>y./  9cW"LP)3pިJ)[v=)(4xbpL"8 0/-W0TUi.*I~תelw0fR@=Eߪ(aMR]Dr)uBVR-*HC|ʩƲ=3Tٵɼ30,#%w[2#,]K~)_,Y>;gAbBIIⷒop2Ch"}MiNRVq[l, >4 vN(L [}pq7k2@sį %Xu"aϥa+\2R W%UJ/f3)]ެЅp\p`ZYuUQf&7!H9aOkb8`1P¤'0P(la&KF\'BFPȴ"lA,dYR-UW~A"C&20}_ ?K"C!XSUE>_](E*[=M6]V;KTD/G{/?S|t a$,HHbQ&.( Ѻ3@q)zﻻ3з[; aeqŃ{^LXx3]r+ w `3 =cJp<'][4>+d8V )Y[dgR-om!g}ZʼCAL@1z X_QB!6)\Xj aNSWI0040?}l;2F*/iP=-fJTAB:m3#w(8R;,nj1/H@0uSD}W'px?3~L?lfb4:o vc(W-N\Vq8po0O}u8u;VF/yUgѫ-\I?d Q~WwfE_?b3:_ު;p଺jp8'v8r~S<18qh;YhQIzpb6#p: aր"P k. B)'@ z@tn #$ ėJd-RtM'NP+>y&!xb@2 6| PqQF8gF.P8rdxiqbA7B$(~X-:0s :"N}<IY.})ۭ^?SOgzU\WN^iҁgӍN1k)+_sz0d\ (ЏiC&\ koEhyqU"#r3۟]F3* )Vb"Z`$saeeШ~=UJ GTz`x2\ZAG[7|;.@#QDG_du8?OJ"ђx;sGИg8Fi!&ryi41hlLX;` QÇ"-D^q4 K^=30T\!WxXz`z,u>89an, YcT xˠ$Ǜ$rz ]FdiF&4*$iΒq6#Z6u&4`7%dC& 5/Yqw #Mt@Y*#38(FAKX#2Z>GPz 'aFq%ֹ!pNBѨ"@<)PWh \) RpC0VGJXBdh3P' v#pM@9ç\}\n )=|8'J16QBs;3P ܁˩2=:N%;/c }-0hgG/`' "› ɂ"xrplhCJ pR/O2IӧGN:tӧN:t-N:z:::ttttӧN:tӧOK5>:::xT#Jh,ӧJtjt:t֚tӥ)juӧN6NN:tӧN:tD>6NGGNDjn'N4MӣӣN'KRtӦt=:=:ttӧOӧN4MGFӧNȝ:tӯޚ'GGON-:tӧND'GON=:tӧN:tԥ:t'ON:tӧN:tӧNӥZZ=:tӧN:tӧN:tӣNN:tӧN>:tӧN:ttӧOӧN00dcWS00dcXMマ>"4ȹoJl%:3[$i)IϦݶH`pz|g #a"ZGDـZ B a-Nbpl=D֧֟QFtCG@JoOM~tA8Lu-}- ¬ZPTVqIcMٛViuX:1ʈ내փ(Mvre83ֹg*3U?\6+r-3Kt5{2겄x HN;W=>sat 0M{S53C+ud#ºx 9ZeXS8 4R(V~ Y.-o%bV= l?A^(w_\k%ﯟ >n@28/ d~Cөor{ik )S.. b8* J?Aa@XH4&J/MPb9UvX\!ӵ²@qO}C.B0*A0&$b0EL`$D '@+8h;EqG(X~u{ٹy7t:y-S]C[+^jqO8T ' h\0'*V㑽0yVxV,Lc"'EXSAz}ih3T X }2c)))KA2#"gdͥJ5Jqa;8X5?|"} XA:XON  YC:.&KU,eUEćI*u=;CA}<`EIF / )'~+ /> S07ԳR&-dAޫ,P-[c8~_>aPf<%#U?1z^ Lp'EKA6f/uV/Me:D*@](m*$J/*퓊{F#>$/_sūP2@RnxbJ25;9*<Ջj~<[wV =p!pYlY B  P2Pe/HȆ8Jʪ\}U"s9zxث`K?65k?%n?ur1GH\ vvJ^^{rT|uXl~pDc;X9]\Z ? tWSPC>t+ U@7>/T1K#(}q5b-URvǠn% >`1 §P>x0 RB#\$! C10 W(=9)OX0(Bg1LKhۧ? G|0U*Ƭuݼ lŖsgƏQn[IcSXkSv-cV&}DW:-ӗ]`I)I7ʠ0C_h-vp$3k̥0 )*YK?A?pt_;#JTK?-Z'b&ݗu3uz2 ~Ic V'%WQd$281`8*ግ`\F*VHS1kl p]?ۨD0J>#8O{>aS J`0p i6jxLE>vha6(ĩ!d?T룼^Jl)Z/%xJU7O֮$TuƹcρuEyPh4=y ce/kScy3N" '[yorP^u4@2:JK{qN 7`(T,@$N͕ZUmP&aɋHCwoѴ@xE:m;jptp!`1XW>QF'Bw.HȞ-U  :N;ׇ"_[mtAG̏M iZRzSJg&kemMU(v9D\ hr=T yAr[="TK ~%z-Y0PxF?v .YK}D]o_d AcbZ0Ig"e\>~1YS|*xGF cPtfFy8 _*o 04<OGvȒ/4l)`D' ̛KC ToQgyg{vDjkd 'P Fj&p>;{u<~T)EBQ|B^rA3B\p9 7\U5 E\rH+7 <Be5j1y¸Hf=!\K @ 0SษdUQ(0l%()z:יWt("8I5=62#M7@Ԣp)A$1KP`+)=ZjYK(/Oufu[}hunbFKK!Q{?;ZYYqescma,P[V5Nq3eCs0t<+q`˩9Eě3[z~U@9V~YO ,uGq< wc"+%4kaf% 'wiN:ŇHq|;T7WY3Cdkq1[]Xp{5P:M%g`jG䲷ecZ\_6+: g)\9ɾ VٽC, L !VYZ1j_%D3s<7HUiҗ Ć>N-}Ev HFy `SG{o)" 6*4ʁ%1~rs@Gqh|>gSpp*X&}\P&V<I;Yl<'`;HX$hdNz \!s-`*&1#? Ň$wqƎZk]?`F=#Ϯ}>vQ=pFBɴzވ䜵U~;Q]ec]m!83KvX=Uy}2CiB&S_[1vW;BCAZ|Jrc]d&|B*(C@΀?}D_!t&aX0#iE&㸼BGط0YX=sIZ[ npA"z!lGHmF^ #}#ւui\OZLYllC`H,0uݥyy>3,#Ț()=g0 WOPK 6,&` DxXY^OkG<Ɗf/ؐX>dN"Pch+!@f ؈%½bmX:="ˌ(={[n(坚sTuhTQSmarQx,EjfI :D*}q6 @O b(؏ /T֛MJ@]p)+ C"en,d#ↂnԋ>IvBkB\L9 Ar܁XKBy ڽ}' "눸I\)2z&A͠vܖ0#1"dTrVisIufsnwqj[Z&"ON7[V,;mȎ9}Һ9l$HЍj򶉾_qjb{3 9/xzVػWɛP(JL/u=cIh3.CѤɌ>cFss.S4: sGBpZ PZ&!W^.ptJ쥉mpá_6IfH:8BmMOgCV6i\ ID@ C6"l;LZiD!Ƣ7uy5Rd U+XyLJmprar/o7(P}O^͝XG_Qc}Foj>U{B'2y \V)* N1rMA7'4eĩxH\d(5T{SHPM0DL^|a +G$AFϿ}}nłG˒_т-3<@1,tZVސANl0;τ.S1xLϿ2HҔ&)OG ӣ ݴӣD:Z2?_ӣѲ::)GNSzS=::=#"czmMGo=o&l[ko3D]):6GھhL;nDub"g*XT  -$2V4E ȿߩ1@?NtthNhx:uG>vk#]S(E'~+ Ah"$Dl:t~>`0oO; <MAXzB 0Z'` t;qN/kԧsM=Ǖoddx?jbZ%zL5 GGGGGG*oz}EBZ'I򧏅:%ꄅ4i#@W |Px8z1fr?Xn|60zt:>N?^Qj$훉{ܜl3*Dpχ՜epf̾NEZ`f @x}FH_5t Ü"<<0ΝSGPg$DlS+(_|p{!+U cDw*aÌeSș!C|=)KSR*CF.|YZe"T]Ur*ؾ"8JPG)F,oC")qDMZ#`T\Wȟ 磣GhX5lL`5ޖ)ӧNӧz:RGKQ00dcXM00dc# XiVV 'V% A CAgv6n0䥾S6fmLig4i[Jy{PLuʦ@A+mlHl~Jd,[ XO<Pr(OFVT䭃#+ւkՠ2 dB<-o, #|hE*IޗhWJ)<6 Z#eVd%AKN!h- ,zCoQH*`p\+f׸{// tBhucllqf7#~ cab VAZ"/7#Ԡ.>.+*Fu- ƭ`yKQClv 8](--zp5'=F܅#P%)VH:x+: 1)X*+`#*X}V>;ES"+hD`U,apFPy59D`-@btH.D'xH׽(()ۋ %o64z" fdJ:`m@⃉Yrj\Oc &**JNJUH]˪soyoG\@v0,!SsGycHx\5(bՏ.fND@ֳgEdj7'$PX[Śb¦Hx)ŋpBٝ(HI1e"^]x˘<ׅ;̍6M֏{wzHY:Tyq =+*;}` lwF3n03V"N7j!QXSĹn9ZWK˼rHKeD[YLaՁ_N.Zr0\(.R ">.HCG/SmKv9>aP#($P)"b-H4O`%v67&XɲX7IBw#! N^pWh$VbS}{]QCc Q.'Qqtrw^ˍ"GSU/TjMJfu,GV9}>2aHlT15x%S7΢RYB%^ wi_ lX >& s=`'Et><*0xLQ D:էiX,+B`QБ1׽X܌0 GV<~xE^2A\XMZ8]#RHW¸DYD"$4od tI@HBlDm:`n'd;);1!agBwR+ @)T;?Qԃ\۾U )ԃ34?~hKoڢT\`z=GѸ/ 0>Z#Ss/!ɫ.^'](,d^yNwS$^U8X}@蒩bYޥ`1za &rDGxa,'tl&5aBeœ%J+]Oƒ0Bhb!h: # POX%Fm`*SBXNRt FmToՖޠ"jC0M P~62hBBX #J8o3/bJ ̥c?1-mEOe+M/\\Fu;3qU\]˱őҁ;_P?=HC/jqoTx8B3ϊQCLuZ]U"+W/#vAO5Q?ciRb: KJÐ0nU8=` ABPv.bŋP8.GJ9Gh|Xk9'[x8׽]X)lғݨx 6J?)d{Tah.ܬc qxߴ+jGwUKOzYNsoTP2GTnj1( Djw?/wZNƶ 1)]VD@yD:.rX߫ʊFAL= BdS`U&¯ktKvCAg.}mJB00dbY  ?DivX503b2816pG`Iǹ6 '-e,U-U?mU)P /TE}q!Zl1Xn@aOIvwr0]ݹKհW 1nl)'/(%'WH#6 4Zbc{fuSz.E^S$agHNDQdhpsoQ Qqh:0N7i`qhDd U2)Pl.>0a,n2p~>NĩU%M_ `0,W~=ַykM]-Sfmqz.._Cc[@aUo}0WDuE HU,^^pb @ϫ2)ۍ{.`ݒ[\֤QRƥ8Kfƣpq dz-!TʵM~+ g>6(&2Zv(x[sE<~^,LXݵoN{mDu$.C/HԌ3Xjo5/ݿSY̜;%rQK*(@ C`*yZ]Wwm-Vbfw{l11mYoƳv^亩7bWǓ|}a]'MJ|z2 FǼ^IXߚKU/ ؝4z+o'!tR9SZͥny{$yh _4?b7+1LukTEG!QA[޷,6IZ(k[W5fH.E"ĨI+asfUeiS0ʣֱkrmomF&JiM]{P/&vҌ흟S*+@hblAA˓eM!v/Wk> li"-nCC?:JIx/2iT.}a#mPP0j ~ M:r3ic>H6#lY6w$5xx*C@x&K]>Yj\nSye 縼V7Y {x n *se[*Dtcyq/P H[4 5@{$GQ.2+} kϵeA;7TN2_m\F>Ϡ1ƻ9 &L… .lp A2%iDѝ=g$a0;u}`A)ULFNpU % ,80JxY VW(%<0uc\tg{Gԑ0p.hĐ*p3X#L蠝7}'<觝8&׊%DŘتC BUӢҸN}9O+ !7ރ&(7, XX!Be|ҷ'{;:.eMOZ>VIo*yfGc ֠?u3 Dd->'aSL{SǼ]+Z)mCùT>q!†q8Zƨx8-v#:NdB QLipڼț^S$zޕeebXm(9,k5Srj9.5`-j[⋌c*ڋzj6tnp0$k0<jASŖe/nyu+g?h_¡󙚧vqK{Y7['1Q {C)mX@ (̉5C˘W͍a|Yu;3kS[ uG9F&i'l` 2!x/XN^~n哒rX|D=m^(pv^D7טVtڲk La nwÖX=/lqWgmgY`r(G9^e2>Ijel+_|sZϦ| V&*˱( k]ڕ )wF"[wU?Jswelqucn^zG% XǙ2oC9)V=[-<`K`Kbi4&byˠЀv o4;k6?i ()S+L>*QG~Gx))b1[**HT)6<߰S4n%akF`q@Dmt|\ºzaeuU'gK'K*?tv%5%ij^ws_Ik݊e0#THk64KCʝtMS3O&aIqsxk6(YH]+g "6>0"'T[+HWjh[i5/FZw3vOm ²߷Uh5e~U%*$X=^p` ȫ5"Rгx9ֱxZ?a;7@[9xj9w.ݛ_: 7A`aԱh8dyOﯕ)Oj{W0zr9eJgz&IXZvljrd[6 *5lŊ'vmQ9wάj"S66[HVqiSd_Kt# +3 ybdo'Գlͤm;iԷYolȵ8IO&|²$V$s}Oslf"saXl 8 zχjOr5To&֕o3EȗSRp7"iZޕ@'Tޢ\ FPUyWշ\;N?IBjMKE s;~{;9WeBmed|NdBw.÷f4=Nfz.Nn$A,P U\%quŊBL_h¢wp8Wve,eJ GPwgJT :hB=osÑ{](?rQ%ze58 "M+?lj䢷S>\07% x맹A~g΃0p/aH ]PrQ}Q ϻQop(g+_ёXQ} f5WW7"FbAbv}jyTLcJC̷V۹9/^6yGoPٝW1~jg/ 7?%+: >f=s~TNvSOs[\ Ga[c)˙jrY=5Nnc͈jN A%{:Lc-DozhrFgWWyL Xh~-QxW-k`Ap/6qK.b{g=*ıL~B(3*LyXLTۡZWHp*W|9Lȫ;l|ڮ}o",m=<)RZ3/UuOi^v^Dh ]kWZɾgsq`٩EZ%j/ձiPqR11NZ-Lű^nxqk7:`^=[{P8-l{*4{,\g53Ԕ0A,Wc+ez2o,l/砭M-YKmAꄏ>-g[QyJwk {>v̩eP3MuRT|N(˗*o24c[7d74=BJ>M S+n5,mm@n OOE*L?,SCfkFD }$zybE:񌜿.49mc7C0AW!2:xT7]+etEk,{%VCYRgxj  b!W"nxc$ e|@Pvlvݦ NBYx*9} X[Vi xҖLݥj-բ$kf PH FQeǖV'qg9A b#9<ǭ*_{]/~ܶ;!BPm *W) P])̊QK3xR/l )vxy~m7b\ExUa ȄGJT6 Xlg?'ػҰb ls p"io;ńzUZa5T#(Cq/T#^~Ȧ#M7,#~lk]܈TH_\_W0G'Ckߵ*EiR[N^ ZdYr$js2Jj \y% 77=[,(.(H^f5e5jK)l*i[iH'@f@ /aQxkl|sp/|9$EORrV[`o"wty&4^?j6O^%hB56jd*F]Dg0͖ߜ1 >+hbH(Q8ݼC!JNj .%ˋt*~FKф $,VgRpFTWKbJo7QX6D$eeS7)]ܰ aYDS]:2#奌iP#Es5}+*Y5[l\EX6PS魚AY$7ޞ"|݊:_ltᜥ#,ydJyFhɪ9H{r?EB'a]=u~.0r<@8OWX_*Q ֠u [@fe>+bNB&1 FH*G/AYͥ"&ױbKz~(R>|FhZk&:KR._su Pm)ՔO͓[HM8b s F>jBƆ(-5({s ϶裏g;y [` ˋ A†q_IsS auINzɝ,ō)i&bʙ K2ٕbMݹ .- ,+ͅ Ԟ.6̿ܝ)) QA.]#e(*0h$ꅮ0%1 jڈY0+7P͒=$4OszwA۽3sTtRɑO4y=gي90q*DnOo%Zfd *ݶfIiF@ŚD*&R`7Z!`S[`<1Ce@L~Z9=}["\ BKf0iFl` 1+!{c2On 7Tk IRK\]V*donlӄd\TmR`@AxcsTKteWbڪ W;gm9Qs,:t^JYCﵪM,No-8)}!N2Xg ނJS)/7oŮ7Xhzt7ރ`[d~%3ļڎ헆ѭdD6Ư R|IU6P3D4 OA˱_Gͪr+$XIհ@)ǭ~Z qWi_ÿ^j}9;mJǣf7 rs:T!Z6RIQE-Qԅ̗֖gTͪUp;TK #|(myōC@I:Ll@>͵"sY/(f> sxWI\Aj#Z3v֡E ەB]Sb0{*9fsr&u բ^`]i]hmeǼT$ M: 2%Q:*Tn&:aZȜqi'- v$AJPGV^{G^Pl>gDXD-[bfgOOڵ*;8I!npIF:V㡢˄ں< VzZ8 ^ܐKXDܯ"Z nPqIzB8\Z[Z6Oſ,S1eEH"q7r, FEڻJNͭyM6<_`-:Thb>%H[ 1jJXz9 ,ZtM _,d6 }QT~j>]CHh?G7gZ}լ+S;P8O~XBF| Z-;ozx:U{M5=_چS“| |x tQ?|zndRΨ%:ԎqGCկ:;cUN꘾@ɨ`ur>6*g!Z(Нh,ʳ t}:UЂتW+ik’mk UZ%#U"=*bXI= Ό12"-*Z M`0-B J@+|jD:.Wxh2v.x 1|V5i{ce-S˄sR+.Ud ֮YWI3 0*7i+`;0" sV=LȕGj%+mb @F,t9G5V=m 5deꚿ *  >\Gf#eZlT[!WZ,^*hj,wWyx)ْ`F()S&o-AHI~-! -Ӳ,U^" '5 Iʁ J"̵c_al1^ӧC@a~U~ˌvL\ TV╞17e>-nlD}8H /  K&RMY;Dd%JaIڡ4]N7ToyYu+U='VFbͮ< 5\s`Aâ2 jX=VΨL&7¢;۔1/ i7s岩n$x҃^Ov7EuhyW9q! dPX켼x$s':Pa8ܪsf: B*-VUGaKTŗ+%I5TXAe l|󬫕^JbƇ(0iLG,U=PUˣk办yuҸ A|(ʫwՋrg oidT¦ bR"'ͥ~eTY)6J|ݣ] XH谪866 <} Pc,eH)h%6 8)NS"p2}e?n+*&?p]>[> k@1=zD7͊m5S)Djf'_'}zEЖat:W֣uFݗ@ttK&Kٝc%u luLŴZGbE-v`{"͖r/A.cqȔ4K$ZP`bMrA$C'0 }ANh8$#@}݄].4<źzztx)R E~1Zot-accl_2~@ px`Wi:%N-e7FYȌl92 *1츸vrp~@7b䂪`A\E`47KC6e1rDZMҾ/._V"X <X*80GB=,VOTqjadK4 << YG~@*%,{ m7 Q:mR}̐n 7<EW()`!qh>l5ˠ:gV,pq\?iZ#2Mn py`>l_oYT!a=,P)r3%A?$s6<`H>i^7=c,oﱼ8ڣ RAZh2Ȱf}$k(nKSk'Pd{x7ҶCG:Z9wXr]jr^q?|JϨbvF%*dhxEbrT9'NOʵJ֊n}TDgMb ͂a Q2? Ҭ[?[jAصTYW N9kQvW0MeX9e$, tvj,fr/9*5Qj7ЖP!xX֭IAQ:K͎'q&5S dP(T"P*HjjNJ2fel+S伛G5 (% yr ]&t5 (Q:hiA@ ?/r[6p<፜(ĉ@x8kB:q<.J֔W(3qqYeCV h6Atcy'Wk]j=1}y7A_K惐 5DCiA[r_]ȅb2x 6jiV{d n.q7$| K6jܫ[-Sg8ˉ-)ľ-kl@gg ë)Bj%ևfU9ZFTB_@E.h0oYE($ydT%||WplĠeܪCݹYiIf%ļq|?a2岨ԹX8Hx ;&T-\D[Vt^κGImR,lS/ۋL?HA97VgzUyjqN.k6|@_ցh'"osz5ڹR[cMRܟS$f+7T:Y V U'?΁w+ 79WYp[ʦ61`ce5l]{wM X o` bxv!"JL E`0=comlmiGk |6̶L}8nWK 4+ x|STަSsg#-}plUDXt?<\8Ðd2p:ؒ*q(&h)0v 1^zd]S~]Tg@xHd7X$-FcztTa`Cw{3V'HBJ |ʣ-AP%ϡGp.m*6[ۍ$E~|$ bGelJYe(,M Y!vCGca !si>*#GRD`t 8V{Y `lNs(VT|lz͊vYb]o)640V"(h[e(8Q(#_-zKK eqx"r&N+m00e}fy8"ɤp2 ~ G5dLb%3 {?VzM^ ^3M4 2UYw~gPt*PS'W'֨ݯFfnjPk4ڹyyKy vy\+*LsU+*x-QZ" 8IFiH6fN*U,W;u~W\TpSé g:ըNjIUvTi؅z% f4B73߮|&W+K\T1Ŋ/czFnHg-wKSoʽڦ|b#ی+WikG-(Lfl&M0 rtFA&ZrsEGZ,oy/PȂ ,S U*JI g`{wfJռ-X S1m6ԻWo2fK?Q"&eՉjl38/Y2lsO'qev?pCƄ_gkߵSX޴=;PIf6(0ޗ6nAS̟'ֱXԫlFl}je)UۊyvgV_5b6 F`7@Cl+:a_dQW=l Dׂ=:H?`1ԙs.v63-:pK D0Pli0 yJL@64?V{[t[Tȶ^(qe[~u}$ǡvˆ!*3N4\cȯwT+埛(A B*HUcͶ_G  /ܹ -L0Uǡme1!?7ȅ xGiUYمϰLacjU|mII_qB [J Oz5oq<$/+T.i^T}ܪgf0$6/B|}=7ڟ55^)mG -r79[aDʀ+-1Iir@~nٴbؤsuеTC v_!Z_ɍc UK>pDö暅+RY\o=[Yi;,DDD@WTupcSsnYy@Y%Fu*{ލ~!8 .Hp&Q[{ao3f~άpu ]ĠsLc7ޯ3"=>qE IbqJ)Wy#c{jljw/owBlZTȟixۛwz\^¯zb.{JL1DS3DK1dq/n1u$18U~O|Oxfvz8L x*e6L\v%DExͤ˫֔5w쉼wrUm׍D1)sJ2dTY)C:Qa)Prs}Zi 4g*>"L0JV;/D4͙GIS*,zm(-f.@%U0 BoJuZTZC9j#]yD|%;m],u ]=դa*c>L2~sWw(#/A62jxV\[g? rʴCw[jpM(3l``6/L0;_iBU&q`=(:w8?Mxi y`P+%(R1 h,P҉}^Σ)c`b?yh ꟈ-8UIV㍧6<.mexcfbj$UW'c]us.dCjmE[*yn6xR(Q(z!k?5|K'-J{7JIKs aI.čF"p|.A =*Fr¾lDW+QՁ =ie7G~[- .*bmi|`8\DAE&asm VJ#)Sʉ qi 0bIo3"Sڦ }sй[Iڥ j:w v@5Xv!-t |Ui ۸ZAgMȍxME߶ !\jfg  tSmJDA8! ` Ȏ>u>V2lIW5sf\d F,!PPXTӦ`YN]pie]cݭTV^ kA 6r$>@$c+OVl$z|aCS2մ|Xb;.{ @7˚/a6y~;/UFs̴vzKTB IA"%#HK2>+}.WZSFѵWSV=Ε𗄂` !$/VG=u-$>I "xQƃPd~;j`rR7qCj-ڧ,0>&'OSn'c)RTT[J(]Ӳ=BizªRcJW5O["lT}`-D*0|% q,lg }|U [oN-B2\OM4IoHx)ZkAYW|bz oA`KU6Me[.D' /EҪtTFϜ|z]A Ŗ%f$N]3}HᆱEZ Zk(RZxժJ:ȥ^c+;OmjEy6lD60y3eV2o_p_JS*8t6y楸7L#;3=}fN3ܗ?uR`bľ*mHEٍX%V;jZac:%M&Bdp hqJM}mn,LaFz$̛n-8_\ p8jsY7SiX8iٚ-g[&wL%x~Ϙ3: 4eS~gom=$ǟB@!e6k1rolsx%k_b]hAjDfyՊ"Y^ؼ%Ụ6hw=yG9T̥sA;lϧ}qTTYl|)j2ZZS9ZAcX*ٹ~]Rxh|[T{Wq~ sZ0i!MP~8Be5;uT,o.q}/}Q\t'O߇c~XXgذЇ5f*wf[f7,v<|,E"qoĖZf5'O#QInYoKa_*XHT4G$ک~e&,re{cX;PYNa:0 7聺Ϗ@/E3\ o*Vx)+.\Q;QcA(ooVZJ.Lˆi\¹iD JzdjP x>m]L1$odiK-o"s@qa< ۖt"n/;z7Yg JIG *Yw1g'^*2[ "z#M: e,V?I͓}g )F풶Ndh!qALK}0x8AM8PzKˮ)3"ECq<a@p{/U@ &VASϱN~T2..lc_)dba%%e+ ڃX}fi\Ŷ 80s*ca߇mxr` ] <\xt#x^{ Sl!\ҥ[7-2zѽnsDh0d/4A:*Ɍ2v=#e-2`JheZҏslb2\s(o gsC1=N[6pE8ǀ#铲eJ,F{2E U d'DFf|J~% f( {ranK5_+ˍnxJe̹[Z(XPG-(+ie !%bU-{UKt%S±6qۊf[[yyl$;Chs2Pt;GS|2q mVv;TUkJֽ {\4M(b^!?0*r,9wviA+^+T\?yuܗ6}`<4D08˛=w$TvlV)\ՍpЀFT ;@oXTkJWAyTcoO~Z]FU /y Jl!jSJwo |h,*(]T Srnzrd}!RrbEl$B!^K NOUGa!Yƿ}X)Uꑶ⑹]ZCLM6_"bE8),FН kzdStny.vCG6,hKl@W{Wv)8Vzpf?M+Ls9L^gbKکp̕ b}Dȗz~;;39?vy/\ĦU˶6+G/Pn&h50›wlfo-sxJm\ĕ}UVf*~j jG0#Zڔ+,d nkT QS.oZN"dֳea9oJ(rl~`znKwm.YoPguncV,V}G9Yr@FȉMTW-tڎ"zMr5JHOY4 ׸ kjV![ ĉcJY=5mK2M?/MW_XIX9SXrd e^(+]m .+i觞?r(=X NJf:Yl}i+294_N6h鱯}) ljr",:$k7VWWZQs CD?}Wұ? T)@Q¦[g3;Te/BHO[T^"shcw劧ٛ3j?rTh7HUL?UszM-z ?v WC' |GNU3A Lkb5)E6d)ȿW^POoBCkt*B@=-1rTT}P@UL-nAjW gI?ЧT30Fy#F0=LQ!LfVX[nAs&y[*V!d x L :#h5aC LIyҪVם:NHШ0 bPV?)` >`QoSW[-^ymѰZg8[M[dŸ4IZ|ΏL0KU(L4< x H/d=;GIWœrwKXa2Ǟ_L?*]pyyfe *ZRcwȖ*%&+G.ݍ3_i\/EμNG.?E#M}ԅ 3Kf[˹rh@OjFZ*vRVkb[3*q$%Sr7mc2Y[AvrC #ăz:g6IZ̍O}FkQ&IT\X)s0 6{ؕn0mۛ eQ"ë.!?يB_y5)WRX*C^+ۙ2k%s˗#OY!#jh޿n`[TU zX}0E(Ug"ՁX*F*iwVS.E:EPIu3ʟQW[ziequϜc]MMiWXrP1{ J/k1LM˻/3j)y-oh߳{}&uo3&s(y_%{[zQoP,\wV0iGfح:+5?a9;gE0jVRɽ޳ۻ{Hmylhnؑ|I+gnĚ_&0 \=*&ll?Zh\ק?TwvK0<ߏchp?LYʤpە[:16kQwO->6(>;H-.{&Tr"{e?lµ{-vS"TS PEMXoSذfA]SqO@TuȎny{fsIb8jSH| UsGFT%o%do7PU XĪcJA5kآNkYQ91A^ *-3ܞke0p171/enC=\ tU_ VnV@LA`.{tڠpsDqYSK'g9%9vѽ9Ucua Ue>mW?-QJ&ܮ>nK^[33g-xB=Q3p D*aE,a_{wz*YO7bA\>Mcn3g9NrDK!Tޯ^HGд?c%ÍQƧQpYV=`ϝy&RWh7sD n]=#|Cr+JݐQ'dBf>;ww7K9j>t2lc y*pUW%Ҹ$b/;Yz62C}{&xZV&ʊBjY*!G2)"b.rˉ:ix\rPVdVCd+7춯8n\:Uw*.nwT&)/žJzR!X.9`@fTxcLffD`I}Bs@6[X!km/,R8m!%?8 fv[eL7XH*Ŕggqr) *8`Cq=x'7$LRxܸ1X(>27qϻHū,{+ jMzx;B-4p]ϔ1$Gb䷝JrCo"(h#O{ʲ4Z#[HjĤu(u.hm4~B.`L=;Q^#'<R8@TC/d`0@G 0|UDdٷ7=dڠbU^O䚩LRvsamqo8'\9ż>Gefh/) pSEh;'Qā,tVoˇZne*gw7~«] 9oC1rXlRY3ss3W%6閠!)\8.VBWl i{iP@2XƇXZYX{Zwd2KZD}AwETI*oǁO6/&.5}AZk_ #ZBP3p!go׼Uim[uG8V4BH\U o7M5ֳܼxNx]=* I:u3.ITɼ'@NR+Lr^!Qgu`7U7 y[ٟ9ts mn*qŸKh@< j]h{%jomfjͲ^G"\xY~•iVi7~baG*/CmSHeIͿҵm( ̟go/0IͲXX=in,HѣDf!hDW`?ȧ'y4hrcS|H[iZg1;s*keGTNU{߹S2̀ƻy2E^GM!d̈hP7[a܌JUd[*ߪi>8 s6gF ++-otGc0̜6wW^r &/#7ۚ\*|XAJcH;9srܬ\YNPiG+;^We-ڀݑD)jh` / ~gUj#=kc uRv&k=G+7gae$U&艆+}KZX'Wز`C_b2&Q/z[+Nv-cb#p~F(Fnh÷9HX'pDto7 ?xI0*J0gZ0.ۍƙH+yGkæeT_6m y;"(|bymzٲ^Lz6CPx%~" 0ZyaT/J@{زfG>g0# s@2 _ǖCpi=|=nXGW$OU^;yw*2#[!/ɼcyGtdq/+Rsٻ%&sMU,F'ּ»,8AlHI!Jڸ1Dh݇PqBn\M Ih<P `xٛyj$Par"P|FꂥBqy3+ksM T :V(0z=K?-rc5~!$|U-DrR wT+Ȳ;U=78MT{j -O U-7ꉠ"JdOa@0ÐE..+RH"q,Y^3*>yb\tNҌs}"QjedF rHku[N{n™p4 $bYpJYN[fr*)̙ΨBnbHEYDyA|`Xcgm,QRPRx.hGV#CʢJ8M%,%O.<7Y[?z*f}qDvY[2/ZG6 D bq.Zk[uZ $Yz<޷]V! &|~?keU}2*qOwE6'L$c?g/w8$2FVAL歑uɄcJ=ԢH2Jz~۟n!o+~f"Iz ;c>&D7EŤfo+ԣcjn}̜LVj/złcP24o_f&)fg%oxP1 _h.'.VzhiOwV>2]bg*b?kuGS0iӱ49S}T{s4mR>^^{FfbEoj%mV&x]5ם_K- :_CS`)ޫP[-;J9!U# -է,b+]-Qأ**k+|99yQ$չQ8oq~jbo3zϓfz76At@VוgruFy5{Q/KiG»Vw,o;;VHdBNwZo56݋ܹ bVQW2~m\Tkfo7jD~-"|n[ɅQIc)xnn?lK=*j -V[iVlLN~y{o#--Wlv-hFM,EAL[բ2&G  5qX+)Us>,QһntO5?5'Ce^N'IciYDʏ q'2zDx;^(t(8b4s[hyz=!^ѾP• 5 ~UgruOa I'Sj"Q BA*C^jbM\;LU< [Khڏ7{kV(E  4+8ڙe}Fwųr"?(ي<KxSQjHLA^䜪j|Ga`5m5T|_5WPVkec2g{s8+C2eZ7b[ '{^@jحXBh{恊XZܸ̕/+*:5.O6X7o5RO/沜,*{&\w:CDK9lj"ؠ;lsU-YyN6dta?|gCQ/TV;/"hUmU-U wfK:-̸wP(B !{ƫSG%" G6l6kTmFY>-r]B}hT/Q) 0%HOT-kK|\2µ*jmiX2B16ҙp(P!%")W+x}V+ bȋ'G"ʖAa,>lH>k8lݓetfhIֵrZ[M@N2^ lHc UTYsP(}V}[AOE E{?lu /yz '=q^Z:| %A;~%Ihr0O-TZ# "eep,O>URyi?g}y f|@UGPi'F|r坑B4ތ¾.l` R}* BI{jDOő9div0B7+uͰM;ݾէ02F'[ky{+|۱n ;j pQ*)kCvp2AT 2U#&&jeŖ=ߦqUP:NL$#jDž)[őBrE ~ Y3DJerY7h;ƻ.jW=jU`Po u#SmFl|-bv#R2 `6j]VX8SuNu_E'.5ե!'у-+ک?"WѷsK|ҽW['3tث$SU^p+\%CDWƋ`+[*ȍ޺)T@6>t!61kߖ_9fK΍ƣicYKTVReSN5vNӉ 6J HsªH qt8ۅ bEterh+lW.|խW4ٕ8ExHD<*>-}s{Ѽo6(#+UPVYN^ŎH0) )YK9S5/Z5#-eLW囊)DL9ehyLG679 m;n2??N4 mF, ~sJУ/:4bR)8W72j_x#\ND,Ho3ߟXb#,NGo~J.> 0=.lZh8~+/84KZٍ5MZhfr _Q ,ܣy͒Y\j\ ?vYx:f|TFkxr'YꌗW4!BW:g1C;*½s`Aa 5|{wBQ^K߃R4CZ|Ju_h~8A}bmWJaxͫcl=3".w3"Apoٵv,qZjvkͨj~/# ڒ*ٻUU|k$3wyxO8gUbeRmb2[# `+_U(֋=W ̱~.o帍F)"JB[]TW{"=FI]B|fUmo?m;9:'L7ujVx׋?#9?W1.p^\RĀijf*S ;jY̼(vz. ^b.<~ ȧ33C ! D Az"Һ;[g$*([ ZY2YD9:Fg2&Vҭ}-*vd-{^- [JkgAYX+kX_<}yc-\P7s-v"GA<4r iJ4<UnO2ol[zvCjgVo5D糥˫-y Hd1uRO+f9AM[oQYVWwRм"[Q UW8bPAya\\XmZv?<gI!xXQRѺvtD:4 A6ߤ_س^MQMqKW%ҕ3J`Õ yOY<P~K`ԫ濩վܝUJY / G c{d~9 8(vUAdFT* 7 G*nz-Ǖj$/HtdQ Dmf"ܖȌmVS}qhUCCިWBބ0ĥI*WPB aґKvl-Jm*= 0#]qMSՖ)XP 1D*lUL0+qF!{Xt'iYWkb/,Xa&`ܴ-vsV欅^>O"a"[OF)$>/*F @砰 -Gks)+3{xG#m[ʋ c`0B-v⩷ԮB $GQGwn)ls{xS:ga=.qB>*ËK- 8˾?[,Vns.hJ3(kWYQhLJY$Dn5-;[ǢI}48in 83QZA*z+-09FŝEjd 1`2UHjz"c#,xUms(1AuMf!Ky cfT'̃*z8񼝕̰fє΃C@*&E H"b1{,'*b&yP~ԍɇ_v-#\+m=҅W֊Ɂ`@,j5+s+lgzwo2j] 4Yvơ|(!"VokZτ עAVݳ*,  &n6 UZ\{=䥙X9s8ӏv!V¹FZP"»\R:xwT!7iZ#W[ iSY\]pe Yt0E4ÀjqrB0y{-tsL)^`~x?ra]'dBULJD,D)"cY"D$|F"_k0mSzHmJªu=^QuD"nUD|Z| 4DND2m9`I {bKU?JKeWTd+"p6\6I`9(6e:TG?5}008HƢGE"[P nP`ow o[IV v3s8H:KJ wvLgyqOlFvsrV^&ƒ%w5ikd"/},ealU*9F߿cewwjjmsv[ql#Y|A {CȂfso.ǾZ78wU t,`P3=tڊH -Nώ0ڌ+"vrYM}˗d=⚌c휢ǡJS'`@Uon݂-tr#c`0#*vl$A@+4[ ݋wz&(Tj;9X8:QH+o/WX xzEF/@hh:#~ .6 ce &uʻjqQdn7_/-m*+s-=nz(9lQYi.]g!E&C]:+QۼZ!C`Ry(?z\ؔ8?X.- TY=s٫DBqz{\WTA{,q:59ot)< ɇ0=IGd޵"F)AIny*hT<عRn خKnK9jf9xʏ=Nr;IE_mPNKlh3 $`nRBJx2HW6/%utZjrc ^Q ~ZWv.u Q,nھ7ҹ#coeO' ##:k\5j!tUsJcQJ:ScTJ]U6(Q/>j+pt~(+3{Jl\-k'87PK_6}4x#iYk%ʚ]Y{صPF7.$f wә=xoU7xUj854|pT`frP.iV> %kLȣC o9XٺW'J:|n 4 T! 䨸ZҨU}GҩV/Uk7Qy1\,rpf?nT^z,)#'L7Lʯ}n)sCa\t7.nprrؠlVc,fO/Yvϖ~:SDؑ~bcTTkZ%JcM\sVNܙsTCGysYui*;hWn1w]we*HICܪ6C|e(<bR/&[iVqnF/4|zn-AMIzZ@!ꚦ≅p"+,1Oy*~3q AXEO8رW#-FeΩ@)M?j\ nkj"6ni2-j^(XEl+RAZءjY%MQ* {|PP#iL^_tV/<v!G?hGW޹7fMU7Ș, 00dc&ZA0Ucy wuKIp=&/X*"ۀʰ+i+'G[: ?\kg;"eehw"&dYQXWũTw1+3l͛cdĭ0n (Q3g*6F7Uܛ"u'ǧb+[n%dTnzo_}R#үUb~sv-gskuVL w'홣F{l3shtGj.j'Wַ f%=ưj&xyg'.U)D43 df[ڡv$hmi(pe.˕NGBgta2>UTdťrtR)5HSs?1)ǽwm ) fIPcB4&3m}{աdf,(3m`=+@T`Ԣ6k~R{?,僖vu2\MZcMy~s8WEXus{1}n:m+#Iݬ16k.p޷ĆD~M=qF2snQlJsGISKF%I]7gW.3 ٷYYg-a<ֵH)u4_wZ]nԚMf9xmieZ)'h5?muu;uF]XઙxF6®H8Zm1f{w 2U`}'sX9N#%SȖ A56dՁ".7SaVDΉmajfLr(g;`2* =3>SU%TX KuyW^?fFVgEQz1^'8[}}$S  rc=.MY< 6z6E69J uQ]w9mh w<*bEQx"ZΥI*`쟵Z:o:CDƒT^w![N?;Uj]*i6%)3a~w.A/ld}CTr' 'AQ#n:Ojd3ZVwR1?波#]_ %o_I&K7nյ)VW@/={NUnDoxGܴy~r݊(U)qE_rgP3}{FaJ_nndf W7Ҍ|β1{?q`M k;_yk<8]# )|IZ7WML73JԽ*:x)we;=[F6.]bZOShxpx>]",YHz*3e~&мJxuS1 TQ*X.ꕵHyZ#~^ 35oN؁-6}ֹtYF"\Qe,gza9*DFuWZU:f̊[tGbrvdM|ɍmcB[ҹ A ; ںrXC(<'9kmAn4O _ܛ;;Ԙ ECtTI?qΰ\M 9'<ٵ}cm#SمwH͂K=˱h DRrg9kk 1خ칼򬾾]QZ8DJNKozvyiL?ldC(sPR̡*+CU vr 8lqvñϯ`~DaX%MT3"9K3vjuCT $^%L$gUB^A206`#=' 1KSfFL.ǧ#K F?_7[Q0ZGEEh;5AroABQ>.4a5P~ʝ+3.6TG.ঢ়Z'0pVH7)UDz~$08,.Ȫ.)0\ث}n83<"L1G~j(T1@ڠyS?3XiEg*UxEJ= - H c>W? $Ds ;cA|W&5{V^iPg{pYR @v')oQȎ krŵFУ$ܶC7.Q֔2;bpb; 5FZ?@]Jql ZTckQn'Kns 8ڍRN`r3[$f/%0iXf>3`Dtu2PT@}zTL:@X R腩nM9c::HVN`1LIH=7 b2/Ҧq6M#G-xu ehaL[0mk@Zrx\X9kDqb1S'6ƴ"}{&J˫7( =0mV*bfY>1N@-Ķw HU +r-XQx./Ub+?Ƭ!JnIΈxwU4G'Χ6!o5Qk`qsPjX/ӃFNLϾn|=@}^m$jhm:t|%?RVJ?__j2H{SR/T~{%6.EO i|wR1Lѱ._..'GI uy.ؘL?շP7jVֹ^/.h>J[Xy [*//ps*v)/XA31*_*1dJ#S֨@X-!2^7cjJ}2p6ţLQ Ġ`x ~[*qWux9ɨ{5YmZf?.S\`6 u^a\^Ғ>[i`j o;1vS>7Äs jYRF|- S팏j GjR\ʀ؀R0mK$0Dc gaf0f@DPwCB3} x;86Y֦fLF\žO 9[4mզ z$Ѷ!C`W-qLNf-#OPR4 >Aڜ<r'5RtG p<5,馢VV$-py:t6MLu^6zQ'e $a H`8 B qbdXa_86毀evz+Nz]i>f_b&'nH#;uQUkK(ɕ{{"8gZ29rv7}58K4IWh8-GpsFEBvhG[ŊUUcS7kE[&%g~%P:~V+F>]OJCb.ڧ~ .^E{.f]숀Ztf9?ŚFpqсO !`%İ?y=.l}WbX?"! =`VilKFIhr!G'd#³ ypZP+S֌zEx]lXq0WF`oU#ecK@X7JpTTŤ8CXXTg}e 0>@P`*n]R2P1\/isT; 6z~H:`bEQ69ڎ8~V j?w\3IJ(| (H_Gy*ٞw)1q6+ˋRJOҝ%Pe練1\WJ6|eɇ**U=1W:4b1(m^I`a.zmb9ZƖnc9MնέzLHց'8L>ء[ Lyj5Rao_09ʚVUOܑGrwqxMkgd@2>TFH$`~f,4e+ң cQ qgteO]O;YdҞK՚^=v6Flh>n ShzcX_8W B|u.ۢa& 9XaRTA^ ܓ`y+maUf2r5|B<1ŁZ”4`: fVy ['l:Ύ+Vj UP=kde@ƷIp`@CU˕{4Z`8-gbbQP8rxb2^gt Uakn!!0KU\_ڢN, V/y\ X4*mݸ:Jz][hRʏ۲ I{ݪ<1 ŭ.ЬQ,SYSF+P+x2Zice_i2&o7*6K_徿6xILn6JD[ҾL-^~8 1CʝeSNK3)+Tn0$ @mĉ*8T5\qigo8 {E*;!GkATزuJ{Rتd oZm&21`ˆYj:ցf#Xa>*v t0 2t(ۈ~/![hD!@b,f0%I|/ꝲUdXXR:t^ мow`AJ,n7+Q{B8^* EB TV'Mg7oXrA\AМ@#k!=&Ѱ.T/32hP+ prLlikJ6 ӽ:@q27s$gs c2Hɔ=aM(+=C_Oec\YC r+W %U@? y.w T^EI5G0&Oi_BhF/Wl 'Wc\:ZZ%@s~ `­+:\O%w71f1mFƇW/d,y5nsAM|$ްhlhQlа3imTՐ0l!`jEOmJj@44OPH 36`zr?Ytv] H5 US?];~{OƪL5cn}*0F{H@B|X[3m< 2zj.@7n^۝z]rN}maVLXrsHFIP3+: bmAP\3@n|KؐhL}m-Z CDPCmΡj /U$7Āp)M ~.':͙M/rU>GQW^Gw}3W~OON[֛QS$hީ5 =H<><=Z܀uPV"*3뾤Ip{m:wo*t}Ds3> ﷡=H3̖Cš\_5e$! D+en7x 9{bvA$J;=G"OB?ꙝjy{Vwh3u\'GeUg+D˻FD&Nཚ7}ozƭcV3f֥_ϴn qRZ)C SMBm[b+Ve4B5OL*>*VK[tl|w]U/9H}]g)QY>7>!EJ&̧"ӱʼnAn)ummN*WlQC6^prլKĠ% I#.Y"J Q[q{q۠Ht1S܋ r'j`8, L'*_*6\z:Z%t ++WTj!_٭^,*tJދ] G`G#P-DETLdST+*{[efDTw<[%;ON Dh@LPEkXbH'}rjNΐF@~iSZ;$.4rdW.Kt8niSNHNm+m}9̀O/?;RNEv S-bLc}ĭOi_EFbxZ[dCp%Oh2-vGHYH@JG G+`~>{v^#gryoY?mdXpi. lI']eMD cW`<#ic1:9O3Ofe+> uթ8WZly?Մ!,رܬuf ,FGLז)O25l[:%<pҳ%`+zb'4O* yYE'cGk`,0g6mJ, O' ϡADT9,C]R'xV,~X ctIڟ 1Xdk)bՈթPGW%d(usFN#+>Ͷ.؋grGw#}!5+ioMKG+ 4M 1$E6wˊ*lUFg{`chQ[{/S-LH~'uYFH -w SVd+gJY/Shw׽QHk%H'|NoLwW@'#'e&6W{ʙJa= A )ᥪ:Lx$YVRqJ`Ӛb mEIe]#'h?s*y&꩕PͳB9M!D,6!pVisd$UoN X)1ތo$rh֒.'2MHD)g$l c^/Έ6l %*!}ͤlopRG#0Y%&1OOO{瘶}8PW,&5?zw"l+X%is!bN0P/o;{Vkl=ye bFCȱO*fsW-Vd`+EfzO~:!+e+m+N82O}$'ƕƗkbBD0LbaX. ͧ~QEOTέ7ֻK]LƁz -6T Ůhl'v ,1 HXF#k#fPKlihB4i> S#k c 4 NkXR) )(K̈́ɳ55@ _ub05V IcH0pq"Tt"Z@b6t=.4`' SJ-#1ɋ̼*MY{;nVl59^sbFiR;Sj*UR9SOH%e.OkW<#^7=yx#n|GA!]V),*z'8#Q: 2#Z͹X%T]^frvI>2z#*}XE_"bpAV\^Tn.CZr-}nrְdᆭ'Јz}+j6msv7"qoLuD|rs*#T۪93Ri_ /2Kgqn-v=%Rf/7{&g{SdQv͠POUWSOWu?|:@NUVLzoڱJ|y2K?l7!b)n<*`) {I%X}/-ūij9GGq:cVJXƶ4:[ږx"o2c^6N[޽.Vm/kZ>V8 Tzδv"{kTȰG~_xʔ\6'9vGUOQ_;$XvK6;S.Vbvvc284"7#ƪQUhv̕(Y3[Lj@[[jピZ);e7ttI{!ELSiTo\(&TgsPTYKT/r3iX(l ߄!J*oXw׈BTa? >4 LģS~ rgw?\*cs)ߎSpnlFHKăol7p^E8bv5c3,Y}GV'2I*Pwnԣmi> }ލ_yG*9KTٵ{x*HzF{|ݭt?ICe|*N mEr{=[]~/Z~m[fsw5Cl7^ 5‘zH#z_껳'oí;uX3.JZ4õ9{@Wc{S?~#e{zu~Q`vbT ,wi溞ŀ_xbyB~\ǝL2L[zN3"'֦Rr}B} Vboꇰv#fNsLR[s4#4G.~OL;r7rZU+1 g,o*h/x {|=x_6fߚowwSo l uEoEKL׍IhqLE7'$6̌HZ1 Qt{`4UyN*;oOP<>w H+ 3ʭ<\"\QR,1?<Q:諣^P#_ͺPJ>Tbٷ3rQvK]F3b# 0e1 QMQKb%Y*=w>zKz!C-"]7S t(8YKw+RɘupFWs.@إaei A *,Hip}h m U}_uMWfW,Cm)MM~*.8Y$T3{ u+uXo )6Y7,b,Clטf6Ц[7͡lZcSU`b(+)A1ds: }03h ܾ) ׇ{lvIaS`pnLW$#Ѱ%}gR=S|>;E9/N4ѽ=E-TR66sds=(~ʦrg1av"mkݚ Ls[=^']͛ Pl&RcrYM捰A#y5nɭKyJ* ZZ:C0^~7%s/ `7;Ѡ_ ݠKK<еe[~޼@`xay83/.S2'X{: +ȣҺ(k7{G*YU-1\טQz~޷f[n)mPX]!?Cw(4c%D8tS 5LR]qO2z!9 I O~56v!pJPY--{!KAFh(㒟THH xV^>V<<>1aghwFdZ#mڧ1߬aFk9sN*HNJW/ч"uYwgd^I nd$C&bPfme/<ٹgC3 x 8#M͎CWȃH{IwL!+afU✪e+ڕ=xF#!0%Hb`1.Q(-6$>~Nm (V|-DH_~vBć{+ۋ®^1M*ڠn#³ )ΩKT>:f"TY-X<~Lcr!kpαJ.DEUDUsdܒNwl)ۤ#Tx^%^s~rh( keQ[*GYqu괣D;_ANz:mL,~|{ve??lq:o듅}M-hؔ]K$6:X'AšLX37e\ /x\ B_*A9 a ,I]-'zfAeyA# jğ%MR>ltZO՚ڼ^huAL0m_|vS8HZј(ˇ(C}+ T~tц. 3lJX2]P"Ȩ|QncY=9W  rDZAlQ8 `u8ae lFtIx 0tЕ#Lbg5[>`On>%v ,g;ܽA0{c.7`ۨ K@@ɼ^4J(oB;,../jEӵV`v5(g6/IjSdұjlsCiJ 4Ĺ>;U#|[x0w&^/zK@W]d-P)^?Wg*ю*jԻjZgf5+ j6d\-1]g+ԕ2 nO@1)ȂTj$2wA.V7t#LgF>/`P}9G2xqfj!x '4 aP)\QRbN'qWةG^3OA-*A}Y@XHq؉r3@J;}ș064ζEi6j{SΧashA @|lmBoMyVsC VRG[f[,mNw& _)[͵C:\m-Bw*7œ$mmfŦv0qr&'ћ[2sStPl?"A~6H@z$k4D(]ϨonU_3/X=c7Ͱƨ=@_h ^l31}}` ]c@ Tz;h7AQ Nh.xB-*5L86`LCxZV F.(%yT}Ysݜ 406k ?sq,hF&mZHx`]+j8Դ6x6lzc  85d[}L/AvRőggaJɏ3jß)oYa8*$WZ[f@5Xe[ Չ +uNgxec&7Y?WAdd%}5o%ij:HMI5ăJjN#x R 8JXvz[Ȼ9Wn:L'Sڢmz񜙭Q,YMLij>b ZF.Z!O :CЛx"2r#|9 yhmەs/1NP$qte7E'wWyڜY jEtYd;Fugs_0wd}ԙI탳Ra5[:9!kMv':EfF 'yt s~ 4w-c3GΘEV4g\B.A_ɌLjDPf:=GyeXm ng"v\$mVܲm- QlOa:^VLx֮gvY@ #[Jk;Tai X!VKpm-fY 5mkLə֚=.mg'Cvh#Փæ\QWYRyS?13iqYrXSLffv#7Ⱥ}DDCƚY )`ލ3ˠ(U+/=탲i)Wx>/~1v${3 3/yYkC֪\>>dGW[.cB BcvA8eUgz߻̔SZT:%Ƌ[M;#vNƇcySjYe*c09b.J* "3My*)Ug"4H]8Ljؠu*gNu]'>[g+^#aa QgyWC.~h3ڟIϩ̷xQVcW~;`RxZH6w@$+V^B`sRjˮb l<MXggܴ aC{Oa>qQJB*.S0F^]Vƈ@x Lnuu/0~Jq-Q5UjtWF@;_`pYzS /fd|5Z|vd*0symK=ȡb" 6΁$+jΖ.v)^U!FxaQeINHV[Voa/(`8G)L}Y}3%H5yTxٌ"k8t$ xRsUeꟗ):oʻbՉ#ߏo 66yj8<، -(^s#k:y2,238]g0I|v׋~]Y#q׽F2ʕ `0X3HW&e)kU0hP |Am5HV',Q "廻*Gi%S_hz^[f'-%Kf1u\!Cin-[j,࢙Jy}yqT# Lzfgڲ#4 ;/Wټ;ܗ[^ 䀣TD9}mP2]A/^J#XLPWqPcUYֶߒ93Dk[&Hu#4s&+/:MqvAָ LOy{sb=S업&Dfc758e|d _o-EvS9/∿jٵ[ʿ效YS0{:Ƹ\?@~f<~\XU(`5ڢF90Dw1y_)^|\?sl`V M*Ȫ*U6y0nNJ\_g{cqRGc&݃DY:5~ eS3gS{bhlM:nZVKm*u4sj}JFk QGLk>˾} HЍie6l؛Jֶ/Th8F|֣&n}S?y^3i>h8XM)D[{TbQI({re^[L4Ş 8A |yV"8xv$[mm*C*xX(}syS^7]7C-9vJxx=vc qָ1 ME@d7 Vqv]\ s8 Kc%P4.o'6W#qUb$M ESăZYư  ˫l1ǀY PlRC>IʋϽZT9NJ?=cn]K4| -O/+Qa{}"C"wQws);z"fhq&۽jmqhNdgX`_=nTE*:e _tmRPb OʹW,Y>jHRv7jw/M\>< H]Q`qV͓xH6Xj< onmezEg" vַ{wWl r}NY'nTMV~FNӱieMU'O9%7pϻ4+ Rl7NL^y}qJ@?"6w[O4C>r`iάO6"VXtvzp6wV%-bzZ!klnزv"Mh)̑Vj,MY}: =U~ʐ:;jNw;P#ju74(u[#I[Fu8DoUR''g'65 :j˸sO(LyS-ilq>Gz"iEț?f{mFeDm =M'o"h[k1Fjeb}|X΢X|-N93eME҉ ' Џ*䀣Um+V * Ή*7T9@}@uԂJ3wȿ\Udj!wB9#O^~]ֺ7&FB";*4eFz@uѝ/%>@1C @~lR;o`H b-t>ƿ8 gEoVLdi[d'rGg-SUĩny<ΗN!k!t[/$̸t~X-o3qIa_;Ү2cm(KF0pF_#FpD8 uU% /hGA 4jEu x{C;)bژtOJn`)r]frxxbf"W'ڥ3maB2dFݵLOnf.}:e60'MVfw}Iqȣ߶f(bfv' qQ'bTҎG?@+z(~s"f{X]0s@Ns A6"I#VGYmQٌk7˶g#4PfߏuXS5J5K1čRk}2|O.H xE'FK -rkWM@^FVaj]Mڜ~+k] \[Ԝ+hhNNOd('AUIiv@+xn=E`LZ,4tVq>(R)3rOݑ`a5o{SBY{>#αrP_S(LѴh@2KN2{G}Sa<}[P#+HWJw_DR'%N$3TwZ7les5ԚCs`"b/֔ܪ(eAt rpGSj/z=R"dpB# KIѠޢbh\^ 7Dx,M|_T% )ie )I'{֗-J16%`**GI QYﶿzŠ>\Qkl;1ibvzxd"U9[ZekrVE[r3f#0:qȈ0;ݵGbȵ2Ajwݜ9٭`FQ2m-P}K7*OhţvizȍXCQ냮 *Z9IV&gPj3`)5sAR2{c=(ϣ['YMNyH"tn038D7gBDY Bdxx2'qn0c8M +1=z}b z'ANURzЊWVB0ûP dc 5•L * x^h ԪGptWY(E0N`88X("E5YnEkwߜoe4]Poj#& \|&MY=ا'X g<0 O?b}Wjl>eP[OQwf-s=v '&=Qs{o2|ܽ(g*OKH *,~%s()SH4¦S2uVGzb֗D((^c7aO;ܼ-%O@p)ӮM=obhzSgcV\W[qDf2έ1ѕ5of+zrBLUJNuŵ1ZDF]3}Ф7Q%h_?H0f JYv7[4u7z88z# ~'M }ebrTy{ER[#4T"$V0U ^jܳ@ŠnvăC-T41)T]hrƻ.1*#M7Љy}8ƴ9򖜫vZ3qlql5OO\,iɑoulݼ_"%JXշ?S ӗ4#;umYx&kFU؈@/p+/b97;>U`gHZO~P,̺ jvg-YB,f8 SB*fT3ލU3,nq8o DhpX:S: <*/qtR~]T̩Kw7Kʨz>,Sm&x_uisD;ψZ9NՐYg x%sy&惥|DN~x8Z~EC5ѯK<"`;'d $ۈTѕeS6RNmV/yYE^'|bu<]715BROZ6; SiEg=#r3 hGsqt#.#}i ϥU>T(JiN# ׹'R(P r$ڋɷJ{[T͜MLHEyܔwٗ|F^7Q؛doSbEQ]_96<&RjMͶ'v^669XQ.m?Έq ޯO&}:ߏ*Sb'=-u]hs8mgO/8Wbn%OɫCR\ 9*ɽ"fJBi0ƻ ?M:X$׷JIJЭY)x8AG؆ߋTJa?sRƐ.[L3ҹb8ȏj~(? P X+jܬ+ͱvquc>'U/<ƛf=v*9R&ˀJ9TcGxuIa1*z.W@9`1Zؼ`^LwjtėZF;ge#; f@7LĘ>ոHMfQG*ֲX|KXo4f-h0)[i=qP2^G{;ݶo2UU[ki d>AT QlC; Jwމ l™لl)Y?#>` O]G$bFV}=biQ6:_(jdM~{OY:+ޫՃ6<*=`.2ey[ b>H/}ؑELI#KGvZ.sOPSͧ$V ~Djx0TЍn-.?RN#ȏ F {8..R;rf~OK.eP#bcOQFT7ŜHf'4/ћ˙Ɩ`p/vf<1H<y[{+:2OLJki떤L46ͮgrUJmBfonoVa&11S&=?QԻwt 9G0Yۍ[q1s"=bY%a *c716S4 L0Z?[ɻ<1?d%bK%"Dnc@2Օ% 'IprĵBiC VeupN֗g2"rY'Q29b4w!o[ciӴ*yZwp -ma;+CأSdmHnf3)T MSq"_|c?TrN]Ps%zzfk1RƖW.i?â1`oݓ2LvmudhiJoTfI˵k-L錞eo5Wc7)D-.B d*={x;bE 08Pa7Px]JݼN|8ް]kiRhFtw}B51);$'/yʼްN(+ Kln ( O@-o ޶q}Gxh.a>!{`ϸZ9~vd&?[ (/ Spթ>O_;1[rض"rGѾbw&mS[5mư; 654r[Qi~lv~NRsB o(K&jpEDZ/Hrs0_LrUkRy5OxX#n"=L. U 3jg4ut!QSJ| V3 NH莵].)Udrv>'Z7J [puy0GYy1@7stD|g6 ~P鼅jkDï3F# +o;PAG6Dr4ѭs(*m+N,OzIĻ\U?:~i͇(\#uv$]Kb3ZzJ`luo:+45mXB Y_K(lgJق<ԋ.u=^'*G9 V:Tڰ8H<^%2uĢXi7ZH\u~]E`6:g&_Ii+,:zʒ|4ZBYC=Lyݚ tM=}:tؑFd͎ E2$gQ((8˻msTclh8SM`h0A#`4*F*GO"|̎IPX6L%pKlgtGZ@@hs!  Kk{B7nJ>2qpB#@ 5NXtk: T@b~*o*Xt| Am)TUF 4h08J|8 B~}$X5$gHG oC6-"q:sC]9Js;4Cב023)a>akHA اw6jnHTMaF N*[hn! uCDda8- :u~"nZh800Tt'Nu1(3HͅOSCD%rb7_5@"w*Ȕmc&`۪#PBn"ڮ O ZѢ) 0P5`ڳA 'dQr(ShBG˯6;j&|g0pVI\DnM#š(4HnȞjGLє07 8=sMN!ƒ b@BQ'(mdPRÏX8aa(8߂ك ld \#>{O{T@?TIL*hA'6i`vHU!"}?`GZ/ " IKTg[ 9EHX P+Ca!}v&IƆ"vѨ90XXL>J|NXD(;!*p9h- Y,ׂ885 `_0c%"9_xJtA hM(c;qM (u޽GGCG7#_aCũ|~@`#]{6AѷD9A` Pə`΅áx$2"2Fj&t,lM6٤oFa]L1D +*g0ZAЬrT`Npŀ| 9nP@qÛVNj/A >BѠ0>80>x82.PppePp`B`80Yи-6Ht1AA`Xf`c@`cC:L00dc[;00dc%\5+[ |?mtcop 7:#MFS0Їd} N(YSWK/d:IΕ7tzxJ7"t;;5grs99cidўV7CblkI$hR='[;)HNN5q܌'Sh;{8N#mjh0Gv@]#ًY"沜X(ª(Ҁb*O~AkݬdFV X#l^b}iEa|Do"۝-_zdrKjhozmV8YfU6#go)Z6[KLwZdgےc9'WQ3[sY:G5N[LOwroO`NI/zrNЏͬ^xK|Ip,#S:,vmZ#o[[ZonaH|?RϿe b=ܡW>C電{U7TK;cQlm䞪U,EgpsW:GJ~cj.**w~[Hq`%[>!pu3a3y(>^&'sj,=m9Y@sOۿ6 d^^\kR_H.0#$YSӣ=Sژ@׀sw3y@f(t?lpmC%_G[4ʦhtGlVB&ruɲmN0"̲Cn%вhDС%Ym4rhM`r>2|9X)hXPZ;d""pcl$+g} y؂8:y9y"ott%TZ *#p;dP^ 8?,")uBW|3Dk:8*7d)IOL}8C2޶OmzަfʱlEֱ"ysQkIm;jϸ"D̍}mj V%sr*xz#\޼wdZ"z+B7ܣ|'comڍE|HVb=R4zvLz!:O7^5 ruʧ#nvò庛y éՆP젥-͋J;u2h k^Ai*ꕉZj,Spuyb/6jnvL[\k9[C>ԩיE,;uR&k2I׊֬Q CVb/Dvj2,TP;gU`1䵾Bv:d5ݩ,.JTՑ#>?؟sש^ɻ...2~N Tȥ[V^7gA4A! sVߦ{ңD e]K&wآGCR7yc?VZw%G`qҚz0 ʤpdΊ1pryCn *Tq1"lfeYܩ[%8cJLUgTcPOǘ~a xC vXe\F]̹i,+[ע. L#)FO}6}3RR|hjFǖbcrޘE&Óoy_sl_&n雠qF#+u9.0˽nl[F.(;:&{N_fnu#pF(p7uRCpsk"P9ݤɓN5՜ꙏJ؏hރ 1RB'/V;-g>f%1L9pbsie_j*UO hxq蒕UoňI^Jb +[mP еѬ*:@΀ i/S}JZ` RP,(=x"( ʶMW{Jv/}UiMl˓3UJA?Υ=b FGnMFq1ʠal,K\} -鱸ya*6ڥj @pxNOz W| \DoYi;M~m3 Eek Z%08 Ş X_߲ښ<bPR0ylPқb+  {\1PBm3s~iQ6YH4hMIO@V0P될jd w"ziF#)Q.sp,N[ʦTnT‹+_M?{o<ǞA ! Ni oJ?/G~ z$9F#Xi}#@Ř3G 8|jԖu ^*n 1rYkK"3 }aYLnC()b2Oq 7bZn =7!mH~psFqtNǕy֕4р*S|ctB}/50uXG Z, BR^t_s>w=NDem~PDŽ!YJ!J8Z}OKMgӒWHLΠƘi~OJkl\DPj3nZ( Asq\rZ쨪5fEj ?s.X^X*GpA*:B1û@wvdZoq1>Wc~W.:VژDŎPͻWHwU`pfCP~Bq!R΄4`G,\ʹ:vAѡBvZ,-_Y;#BƉDy*]R](`ȵ{%,_ &ҧbx bj37ƛbmY8Q.DuYt*ٛ*#l{'{fm-oGSWkIfumHkoegb‚'tVAG:jQibR^-pSv;,Ɩ,l‚%tpp)&O_ 9E٠gWSdkM"NH#Ĥ1rn$l'@)b?Wkf4ZLCδ̈0@g$d)ڍ4M14mqjOL 'm3;t\oyc9OךQ0 : A9q#z7* V<|ǶJyg۔}:> ]XPBt*ߞP/,p "xx#P{`V>}Uޏʨ3? =?ZSg<$njeSUi*.UzL)*Oۿȟ?kZ  ߵ` jj/H=FTumnf۝2"?C\AJS lD!7U=\mß|%6,\^JT{ΗK6nYQ)?o?T %-P('AݕRw~)o0'D# mx!_hVX}׌ZPrcBՊ+"VZ-cJ P\Ole<E4+F}!Ht|lPm:^+ݰC81b*<8+N7v'[&LEX2InKx[}/mŨAOUBδuz7W13a1Xz|:fc]嗗#p椐z$D}6t= K`L'LuϢ1KmMhXhV#,"t: #!I<1 h9/+gq dJlFgJ8j zt@ e>+ 7w=L*%#x0Gm&B$`0(ď*hy-P&QO ^ (r ā/ |soUJ)@HĘ,C`i ,GJAf'KOnllcصmO'R=a8w6,0S֓I AI:[tXoD@^ Nh`[k& a-5 '2Abڿ hR=V ڰd+xN^WKz# 2i!M<{3C7D<9ђ~ib\pD# TU D3A%b0R-ߖ U*EԳ=PGx)$-'Dq!;Hhi`ELSܜ7B>&b ܷr5&[,!IEʕOcמ&٢h"Z%+Š.WrܨtpѴCzUQMjXl -hƥ:d5/RPaYQR|҃Z凅H-ވI)D.x ăVJ샱 JQ}f#Ccm {A"#ңhF("ybČ*M)e`:n!iR ٭4T6Z0d.vX,4!\:()" A-=dAkeGSe\cZ,gk Aq P# Δ8"?ue u4s'M-roKn.30g.y*qKU|^PRk).oƥ>8IfYI/:[fw;J+WjՑt)AI v)#0go(08xpG .ni"x .'Or3 #Áh'Di%+>)dǶLsZl/$GJp JP_CR pJ.5 F<0dF̗p7A?̾{|াz8Wx~>\x E|v%Bh)WѢ$#ɖ6#e8|(&5(X+$p9*) ?z8h'wnFGwT5vٷyhUK3M2$Xe SNԩZˉXC 'O`6-K!VKO`G6Kr\G΍j&s3[&@΢SͶD++樫QDI<cQ!Z u@=-1VQӛ2` GᒦQR#pvZF@F`ĭ21мܺo;aRݓ%Y8B]VtP 7HTڢOm:u'C>I`̋y˧h_Oϩ(<(^ 8ʹeOeNi<,Џh8zS`b8rB!h YpAK!nZYevhH2-K||CkZ(WU+ȵOpk*P'V4G5IRbih[ b>gRiR#@_LB֭Ւs`WcNDYW&aדU_nU*pF1gA9΁A?X|8,RHO<jiҒz0O惒Cš';rXV6'cg0Z4DE :28+N%*%XP$ՅIxVV t_W89 }anplslj_}fws;큺>Wٰ FBREE Z hq"q2m6Dk6՗_^OfcA1@Tޓ:A`3OF|[@/ AF\告[sK*lK&ψցf-հ2ɊZ0 E9fj7?~G@_63:<2> (P^ j.@ӢX}|V+E0Yba<<5 Ȗ 7F)qrs@>R-- BΛvnÜA%{ԆI HoB/OPpx8>qD*á9΁޲JeE zeE4]:PW4N DBX >7 40 `'Z,!0A78##^(.C5@̭USNqAT6QlAݫǩFEz AȊAgKE`omvjYO.8: >U3Rq7}S2,0[ثP:=5͉ii!YIĚ2&HEcc:tk# 9SvrvHcf|`!KRqŠ?p g"j b|( ^@f'F5QrY S:~8^:D*zz6)IIQXv&O%Z[Z@B`\H"1|:8ztA>"/V ,dIpH` irĩ!OIAkrJe/%Y*!MGJ[XݣcS6ĵd t:L}n)x 9C@[m3_LZgg9l,m Opw "0LwB6D$vV!=EmoI$58;rL=kUG*8`ȏ^)~C*}L9%E{i1k$ê/;4K^9QA7Bp4 ҀW ryJ@#O8H&T2N$,XRq-F%z}ƄbUq^sI_ (B$eB,d ]0$ 4[ ?lR*tj9H :v!)FN`xT- $"Ѡ8  3یHcjxR€|P*K4!dl?BIӅFP`98\`h8h Lf6gD$8/Ȟhw}(ɥ:GN&9nKILZpe^4LO^k dF)a@NN-MSt`x(c&i-?Ϟ=\ P(H3P%"dN:[EXx80`biMʘ1Uy!q&~ t p KZUE eOHfNdpҼiONӧNRP:(/au*@a^#C[-0YMcqt@ A S{Ls7Bc͌OL7=:"'WQ(S1ӧN9?cn*`8 C)bvk4qqU]VhǓxy=c4.}?m+UUUX hт!%BgE\*TF6Bdb9#8:x((8Z4+_ J[## B„aAgJSF3N:pd/N&;SGl[{mT=\ጬ sg+P@U|=!#U^ iuc5iZ'+zj)QgBn-j DNxxDJdvPgcN:~`R' eDy:zx*;#EpQ;ƸG3xH!FFGw Wc{@D+$@RjWՃ9$OON=:l u1YKj9Sé`1?N:z|07Ș6d<`Cy#\.8(>dӑ1PPfO2#r*-@(=:tӧON$3kO*o'O0dӧN:tPau8PcJzzttӧ00dc\500dc]/BJL,vJr5Ӷ4+H2|CXU,Kܞfc8Ї_s&xZ>XLX&&ã=udEqi'GLGJ*gO,5OiKKE KAd X:[kky hP7}ܓH]O>c=)g3'BIQ! us)y2~u \!;y:WK\Q"y&0!^ߪ(7k0fzC- x3u 9!jvn}6['[  MEFi1Ɍky{0lyD:c,Z:0ĦSVEOFv8ۚC,(l -W9G=8.dwXA9SHYjNV#jo̱~xC~lFuNH̙oo!:nEHDlTڎ{ȡ0QZ]g3Tk\)dSNVB6/6"I@s2Tgg^'Ä j4El,KzBk>- (smԧOtC oNL8emli9ŁT8Gy]fl{s7N|yYr'K]i1& CfGcͩZoY^9fdkmR㥣glKFnomȠF̿" w.$uP$Y+fklT/vZk(GO7ծffJJ4N.,aL?-U\iND*ht.ƪRߨ(s^"~p2wH.6HTvC5պ|a9}TK\Fco&ő3xS>4ܲ=}&[I~[ۙQ}?*gF\w>*ZԨ3To 4vx>D: S3/I-@m*7 {Zlh7*\i\'} ( kWʞUuT%i#bl[o׾Q[KLR I;F+^X֋&@8 CaGy"b$&i&A:ξ\t \)|2%laߩyD^QKEqY|h`_JL WlR/1KUl 5j]ރ_doh|xnfPXg(,\)ḺoSlZvd՗ O"FoZd4j|HhgaB۴ ~V @Є$UĢQ.%<3SG5&JJe,w1eD"z/WmAhρ@N4WV+@ -l8Ci*3_X0,c4/O>[X@!|Z0AANPƦE-o-=l1w"6ɞ3{ &!tAsjAZ#\+8AZY) EDeʴVV*ߴ NQms tx 8%4AD\xҋo;ډuƢo-+R38?fG^~A=$6UEkś9HY䄅bs/™C:*-M[Mdm5 E[bXE 3X7QWQV|y|{&J#i*gҲQMP[h\o`uUF01xp'0Hǀ x+CXܥ ^ul,{ﭽeB }m^܈mciok;j8.Oa8$yB1;?^/4cLȔ%T`^PC]QpE"ǿ"+pgLA|@+sifTG˃[ pmE^E~HZn@0fK1kz60^Ui@wտEQGi=H `S`k> 1@ʶhT>U!B {սAUPahWOGBQjtQ6 {u~db^=+$[h?ldP~R'=gs! b3(R /1.ԢMO(َ$jp8XV` 0 BU\jVۚ / }l'DpM(Vڸ1S+N"k,q59AhBnc e%aJD.0MIaIP=e<+hENpw XeH TS´}$v) D֌ʊZ(΢b`96N@1GgѽM$(nE )J%D?L0a BBUĵC譥,4- XMU{#8Vԍ7oqCb`χGëtr9,RB> #e^*I)[Z!FFAmpTY),HWMO{2;|[FlQV(8DZV_4gs/hLof Gq$ n>QW=${+dQB=}TkDL((<]eNz Vg(*٭]e` ǥrd5C< $QA*`]+dq[xvf.hrVfVtZ$rzH:a:Jނ&ֽΤeNdc7E=,-=sʔ~à=̪㞣ɸ8]V jaM%% zThB\t2Δ.8bb wKȂi/"= O,^Kuv`nH#"oQzE#:Ir**fa늓YNlv")aJW ϵ8`p ܘs_7IuZ,dHx;_AƊV+OFZqގg 9,Uvfu)jgYj' `X42@qS=! "xpb X8K2 ~ı׀B av`B:5K #G8̚d Ҭ B# 0(m"HBAXxkCvsVSJsΔ'TfR Q"Bx~:P#F)+_S+SGjVe$)/lGqM\Sr&*K_UU1e)n 0CH'Ft^.…p"~\ZMn--X~Q8 ?3J& 2&OA, ,bO79ڑYkIc) A?R)^"a  LY2+'֦3FQ&"ݽh_{KN'f!~K*pB)2r# Ou 0^ł]*4-M ޞ6L!$M`|r|Ju񎥖e6\8(1k52BNRUZX Ug3G MaA^}4KhHH}FI*녩غ+cEmT̥cf5Z_ wfp? sZ꼩&'5pr{kKы .\$@/HK)Xz*49JzGa¤]!n>q5inC N2 4,h0XnRtƧ&ZɗDŽo:L-өsL5;5--kM$>#S2.yj J vShXKH昚nx ebNa,[k]h:V-3e:0.i]i%N9az͇}4S[\[%FG1\'L Oak@RrQ.QP:F#} +xvo5*rz#qj"b!$]0;2AxXG^1ik<&Z .Գ(I޵v)6b@ߒ&mަ@ ]+!i0ي3-#]#"e9( NJO$Nִt.Y>"[A fz4&%_"Qb*2IrnVuWf^R")~-Oå|LW'_r|]o8\>֙NK r\^Izxڻ:=::::tӧN:ttӧN:tӣӧN:z:tӧN:tӧN:tӧN?GGN:ttӧN:tӧN:ztӧN:tӧN:tӧjh:tӧN:tӧN:tӧN:tӧN:tӧN2tӧN:tӧN:h:pʂڝ:th:tӧN=:tӧN:t6N:tӧN:tӧN:tӧN:tӧN:tӧN:tӧN4MӧN:tӧN:tӧN:tMJr&ӧN:tӧN:tӧN:tӧN;00dc]/00dc+^),+*^N3!OR]BqRN  U:2oSz _/ҫ.{"YO;ue{H(dU:M4 F!?Yi iʔl_죮n.yC704m"=;Lwf7PjE+Y'oj]Dzu;joիD]Ga62Xa"F۲5/dPѾX#恛cx}; nys^N$߇}VG%;-H:ջcjs"rkw'7G7L=J.t<]0(O1,JHQzo5qJEq zʰD6sBCO}='Gߛ5g=Ӧc p;%@M*9l~mRdzn%+"YzE%j29*L_܍;\Gp VŁ^-)gTD5-nlL|Dc^bIE 3;FDP2"mÂ?y0u6q3g-itե;>=m EԮ`dZ-yHZahC;)lMsWt ƛﯣb"̶l~N{u.08;}qJ1ZiF%NN;l ]rD+ znq%pEق` aJdlgJ:n5!azV}SUB麗DhjUN]($ֽb@Pӕxj )|QY7o}W<#e9YcFxԬ禎O䚀S6fy:׭Y#dgݛƀ0 {2nޜrIRg~ZFX9f-SK)C bbz;%숇1@&02|J*rF-U`>AU/8[Pֱ=S_in/Zk%_b/:y*s+"?To澜 ^b"0 F 6eJ1W-D b>Qzρ\?Ep5pV.Ѱv(jDWڢ[PfA*߃iNWjθMX\q}.M[9[ z76YS=.3XEqX"Uty*IqOYb|81eN>Ұ5%cߢ7Khd}ޟc> `=aS :࠲g(ְE'vnC|Wzif_s7j0@(E ͋+5M3Q*/|nP_dj\اAV|2uZJ\Vz"f TVJ0౼ml6 "@*K3 V2!D'p#4]?>0r*6T ,^TX;۸ >^}lnBQKs^X $Wx=>c sHzP!apf a`?Ź]KE  1K';ޏSvgNԈc#nDHI\jTʭ⚡G.AZأ=@:ѕ\WNǵ7o`y>^Q jY^\0礻Q]xT`x6˼!TJ-{`AX Ex9,R( $q3_TW E3b0g4+x4\*EyT5m#@0xFVSs믛Ό GBXri_QCe+.qz6ٿ7%+2ޛ 8$S_JвvK _56&xbTRM۩!|[c2>oS^?2ζ+\7 Ҕt[ dZ.e`uC >K[Nh]6i,>uE2DhMk;m"0XQVoY ZdՎ"0PP. =r]aUF*oE[U)C\^a)66ŸH+b9dOmvO@|30t{?!G!e0tw=U>$0h?x{x|$䵬~'g4H䅿m ƸA wd.I#@OO$ fPKӊik蔵΄M÷Vp+L J6(gʚ3Z-% = $A; aIe"̇ٻDN –q< OD wdGJF9aE0lֲKT e( VjurY? J5u,ؗ* A:"$DF$F/l3ܟ&1"N{`Ig5Ɩ]Bo @W TG8MQ&Ffb$rVF+rM^V6QUxZa3zu _kK0IiKXq=+\jZK؇(!*L NbJn(H pZGV 7w #㲵+V@Ʈ_4o/1IR Tu8pm #3o|}W>Kv0 'lHS1E50#5ա& BM ACEykgV-hh*V?Q ^wrl*1 fZיMAS!jjQN8.+t zC@ŵ8`~Zl3 Gmϵj[5543WH8AW)@6|~)Q)WG:@'o峜)\n9d8e=8vwe"PJ ڏLDtȁZlZ!I8:yt.,˲Qa >>zB;,K }//Vf̞rIlq/dKx 3?J?Ҿ]c*qH8Gr""Y#sv% Dm+?7hx 5m,¯6٠u֦Z1*v;|p){ݩ->S6{iLoɔ<2.9r`1#_*rl4l\w5-)9gI$\GED#1-e4NrtɭsuyޯDzt͌=7m@jCH0$OaJq J"@ '{9qqwSx1+,4txbXE)#+{.ȍk)x3ǖj&KHHW {T#@֍/KԞ>%`t(S 7`x>UcR EV O BMdO,^f^XNOkzH`LjeGJ,AX<--QTP^H=UU0WM|E4n29)"~fۃƹ Z5chA0J_Xe`a@۠@Z.l%_@V:RLۼ0[E& 6Ylqa=LXU|Kڙd3g9[bHq?u=[n"HI1BL g6ĈB2O[g'` ih7c9q˥0-wxRO`. '" p1ԭ!}JΎ D: ҥÜoZ%AƙөxeՂM~6PD4n>7Fzc( o. IܺT2!BV c$u:Vґa\ecƬNmn't&R9:I*k}X.6p^SƏxRC4"Ab7O{Tnfpڵ32InwS@}zȧ0+DOI➠fBts1;&ֲiV˯#Ǘ1@`䮻-AUO%@m JzfQ" jTN h'SP`W%P7EXAS%#g1*|%L#GjKk|~IxEWyIwdV9P%h>\)^3"'Sſ<˵^BWF 鿌T4OQ?b^=: R[S j_N*J샺g%3Du5+DnsR4L!TVNPvGs𳝅^#Ѷ3oAڶ1=+p8~V`l"Pq;pA;\,CjrL PJyF'Ӊw;ԊUDMbG1\mR|>ř<,zW$_}LdG.C*ڎJ UJDX"/"=: ^#Z`Aէb-V5RE8C:Ib8UsX G@x yJ*ԼwAE9~{(͋Y:S}_7A銋2o:)d G;m,ku Z@ 6L\ +DViF'Y,j^9r#17/]DKaa7qpı)SFB? i%>QrldIO@JEm.-u2,` )iw̓9T⒩U1Z]D$6Vԋ8+.종'CxfE?STYF\ R,@\ R+JE#)řT 3OblS+JB\9Xtyq;u!b -4,G D!P.b~MQ?Ecbea'qAK֠7 n.·Ji2.$<3n"$#3Pf q ĚX#r7Ð7 9t_`#01X ScQjRVpcI':0ְ+Eu? \'ŬcD{D!~xG-P O+ 蜨A] A iPe7 /V0F:7 wElND/Xŋpr\T GlA\ KhG&#WZp ~S kbd ncZe3IXbqMq x%N Rqu,Ac>#k'>% =D>Ԛo%a;&w%Ae(hn6O6~by@‚b{K@ #"rf֑j &4[{G G Ts+ʦ'4OfSP"O) ]BRsPF+U=DIQǾ[ |(,L߱&(3įo~n}QҦhND^"ݰl0љpu*lY+g_4\ll&'ϰ`"O_TzsZ|&cKR(hf6apܡ3 'apJ0nYW\(;4ix~ )?rI4d̈Ub&cE).Z: Uz}LSqm3gқFx0xF&Vεͫ6P}o&I\_J84C;FfB`Psc*kMGm|Ɣ J/ΏK.,>1c7P5,"8K GqQE:#9.9dBQ ܗMV"[Pfޝ͉b草 ق2*t*"pCBȦĤYd}X`>e.˸mfʵn!;i , m0q;ݍp_'F6a'G}+YJZrTl'ԟPb?ZkBՏ*ű7[L/NDă̱$["s>SXeTn+ Ɗ%ʍ+e1:z a:x8JݝqYbfZhqjH! z.4D%eHќM BvP_$+xatP6!V'Lfdr(DzO m`U5 uS$2IRL%m# Z*O/?L4  s]0; k]UFkE0 )4;.}[MW:)0ApU2>vvq;u b/GURrbPxnD2O{D?8(<Vw|.YD00O`:WN6ƈY#Ƃp=_  @N8CthZ\h]ߚ-Nnab] ,x uj`q0XDpUZz\T7`Z9ki!1lK??d6}DLs[qtLL XBYSiġb @ࡼ޴Șp~NZ 0Y2vpx>%&:(c2Ș'4aQjfPWՅ=:NQѝ97B#@QsӴau׎sQ5MzY< BȬt:t<1?N(xpIzi(5_" !XB70fVa.b/=r.&J2DGLܩEjD8Ԋ2)|5/S DL\7bvN\`ME f$!"ozcn62UV/V 4s((忋p_#6]y#2rxȝ:tf#$Rڠdbhۨy-|R; #;w,#FPލiӅ+N>`L(p(LPx0LWO?'=TH::ttP0+<9`7tӯ kᡙ' P2N;JN @A8HTg Qe@i&pN iq\i,OTM:sl&'N38 Z.$ވiRrxmY}Dk3C4Vx0HgB# oNTFBp` (Rhz(cazO!Mto2ptyS}&4F6y(DbJ8|(1pHb8DkDEBztƒyNҔmBMjtãqLVHEN `h 3H`$A5MLlys2C0Cy fL`pc:? 00dc^)00dc@$h> W=g3"MOKoS 4=E 94ZםL9SSrg8(ڏ3&JYH:I!7S*%r۷[z,OfN{T5t9 h8Ol9G.)0G^3ʸR47r{Qf&קW要}XCR);4dg. ɵ?^-WAGDM-X%o]#w'G[ol>"M6nSUc"0]7q(v2U[qw 4/H dL(ѯ_cU 3lNUHM wgzT>=>=P[n7bSPCߪ˿Vil@`Ap+4_-, CdGT?/7R p Y5J/I:"1MT^S$!~J䰯AR]T?/.EIUs| #vvTFBml+U[;TO3;ѕ}HJ)S3yxJt8@>$@N8e+)I[D߿w@x&RKs%Sm<啙uL?[PPtd'VU^wF3&ob5q ܄W.3H)15'Vsp^-4$}`(+B絞gHJzEΥS?[@Men1"s6VK)_fxsTdg4JV<؀b2XE@ve^go;S.BZ/8T|(64ڈ ,\:lfӮtɇwTsVdN^`>=M(a-a+HH(N+YEV #N\@* C"q/[)~ n W_1aPo&첲?mAB 3hg l@@d8Ǵ[@)&tسs K+$V*S5 ܶ3}W1}^QP[ulb9C RlI]54[2!_(*I%!U~9fr#&gv^dBF.˼nQ)GZ.<G5!0]%+%ohX59f HZZGѕ:Sس|EtcDzIB_#Pt\9JD]TH 1"0DѼwBW6zB69%Ҵmƕ lA.[Pp{ p`zTYFgm D!A%+4sRD`SssfF!H'K|Z'X ^Db)Z'YyYiިX\0[` m~QSZojz2e= mGID]M~A{hmDȼXTӇSfkx=<$΀dl. 4_ ]R3daf:FQ8@`eBZˮW\ntX"g"!q| ƀl$S5 !X*񜪮+,% 5}04D@5Wt:+m sIH-ۨKR.H Gi9RǔL\oU—ebk 'ʣg|#&{˩W}'&@ݓͧХ7[>v2R38RyAXr-*NhPpp$S* ,{V4?u\>JeR/A]hH>Yo+<*ckJDk"Dy_ҵZd}UҶPQKKpoʾu ;cM$```Q8 BQڃS0Sʥ&,4\Ȕ?-Qdy|#x}G<\4NIA4W@z`g:-0YmpXh#khҌ(  !zuw4ر[IfXs BD lrFQ5@ghվ $C~lԭ0kp^^4æ3CbOc"4\ba eb؇48@`ڢh[,40FRƎKr®ZXl{]˸a,/??죫o(I,nbhD ;֭螰~UQGUjDNfǎC y@Mn`3jv/&'Xݽ֍;cPAx8>$ZV'q#BPfWaEFNTGi;23oEF`Lu8 zxԚxܠ-ܨY~ X 91*M(ZpV%No S' c`J?﫪 U7z߭hj 1p ~%R~Ry]A(P;%1`ցZC{4 ҫiLYv Qnr Ji;)r4ofnڌMbno&pAnx<\Ε^#"@@n|}MiT9e֪ݷTb~kXb]Ybz3Mq?dQ8>6VkkwBr˗Qnyl80 o8\EƐSHwo |i `dT" q`<҃t#zF3xy'njm>RBֲT`(IW3>>9!lH"aR\Uw$IQPv4*4xЌ:]0yw?j(|I}/27`vwZ0z_ؖeU=g[UlEx 2աAH0f7iA`CG"6[#d' #Ǵ7bA}f 0pP<&c-0%bMh`e/[iZF֨SUý@6 #T7I'PLXRd882рptt}֒_._3i5RL{Ɯ t#&r%Y-\v]Z# ABt!h 42i2?UsJm.Ux>S}?Ե55cJD.Lr  6S>QݛL'ŗ(fN0Y$jޮX06ȯ"_`\TtO=(sdTcIJ~0=Kx/ڨ^^`0Aw?b=ɟu]ijdK.kY9N҂N3AAIx~@();f7B.#@Д~vk*ľ%dꯪE1x'/v᫕@V}mZguei8qPC3} Q u=hTagM4Q[BDCxR0N8{,.HgzN&Y\}`phhdTf SdEz,h2[8~5NP'XV0jY4;!ED@+-hXq<ѼS x U Ks;{G^3)Z651Q壪7ŚaV~zv<ɓaLm}ץJ P< TV0)t8 숅+)Ue0NT%#>V:տ ~ .h'7. R9fjM&Ͳϼbo\PY EasDX]x6j:"v){0@nYW?>V:NFK|b. Rջ'gbWZ\A_)(OO: C`~ V`J nVZOhqn"6wTRR̛<#k p)? ED$B(8fhFԕ~m#@r#V`"d:)[g/Tq$m znzun%شkrz{㥻p{o"ղOZ;;nV# ƷGl((I1) + ލb2\,)1uNFPwiSDiҨǷź /x#Nk<➫.}8XKLŦ{G]fp֟s[byme룐[[9"AJbgKa[Ir\Ғ2!9=FQ`xx&Ԭ4]qP8sÓᵄ\#OBƘHefB 0aNLF d% pz>Bv jtNi;M)['q0?tLK6! %8<MJ6  ܴFUaic{j ܞ_Ex$t/h+rCZ}ppzw uDLZ߁FL`,`j^UU:3G=m8d_ORB=+o\ ġ+S4ftP :-`.,7ƒt|bEt*ln`O\%(<::{?e IөqRGl SؐgL+(F Q?s"X(+a>,xH1{[?mH1UN쁩Ȱ䫩GwZFe;Q_R7-rpC ☯bEKÍR$iƚKi7pBp F ⃉2chq%B$CqeZT`4Oܶ^'PK'XAH={PNQ9x7T2k{ u'O##`rH\r&O`{`B\a`^TaԃCdb>+($p"OFDh ӞB{>g,l^؂&Jq>#RUДRN#@Q$0aՃ:|BPrXun(@P-YYK+EV'mOxe&9FB"D"lXU[An1S !,șH_N&i`+B}C0낳 x (`+\ʊ5#ow3ECJŃQ3/}@~SO>`@&TH`GF\pָ~l 'W2Jhf/:W#VJ" 2E@]0 cg+EK$Ļbȧכ4 4 J82.PGGL/4aA uƣB{:-e-ދuV옆bmKJٿ]JA@|0I_mt `p0(TǕVʎZB?mŒ;2O1QXf|GbNAA;@!.²J(&10Rдh!q?ECPO 10bttx)ޙU9UH ayP-`=O2cR1FdYەz>cU#bW|]]ޯKE"#(<:{r)mCG[ A 7ԁ(ю$ADg5.-w-mܝED,;Gh{Q`9ď>A`1h88/ tB#3l^pƢ VPƍy:9_I+? ^`k}pE<4Íڤp)eh4&1N8H!kș#]*|q9sdAT,cɘ6QIX=,ZA6^-ZL-x Y pRŽ]AF׺ ǂ ͠xAVIF& *`< Z26 Ԅ'Lo$i Hqje"7 aN07g|yXcKMqb@!e 1-:Tƃ9{ҋOVKΏg}v"xfQY1V LD3dMB\Gj{`l48i#ak32bL HZʘ#X,@q o$c>NDg/-}}q`Lhsqh8.EhxFX51J2?/h2Mx5L+,LJ^#i[`u94;j b7ΧBeeҨ.][MW ۷hܔ.iUGCPiZboa)S$fyY( 2-r#B 6) &\V~\S)!(N%ƾ o?}^\ O#͉C| 9*ϰ_EхS ep^= ̕AْDy+`%mϢN|89hӃJZX&}Z0:P6) 3$+g>ώENQW*OupF#Zw"@`&EyfHKpV 3}QAB/{%*G0u0.cpPK^)}}lLp+1}/LYuJ?N=1K`^$߬lʢc5mÑ۴ %Q 3$ fGg" w쾃i(m09">āCn*^_ſ7 e),>lj4d* 8N15!i^L ca TD9F^F @M,)L.i9psT`ަ ԉXu&+> إ_x*اl<|pTz m`^##J()}–5/jJ=%FYWR1%R:U+Q"Q(6Ѳji@d@!rr})@eWxdtFV f? x8;!P|J7B(}\03k&Sd냊Ũj:! 8AqKx %G`L,HQIlx{wJ3L" ~/OZ|fkiC8Zb GUk0uupOχ畐UnTLpd؏B"|A Ujҿ(ev&康ű3kZ^ 'zBz$V%sS0L)w>hu7ߋ}dTF4K=I j^ILgnZK\bPF\$bɱQS[-ݱܡ"0:)V- "K+&`^J,(-З `dɈ`3sq1. BJ<:>( 0'bL(Ő,xep8dƖ 0'uBi26q*xRW[$I45rP1:,VX A`LYtD$akp|@e1`GѰJ4< -[_I4)Kmih|{HA5-T=0ЅZ$ STD(XQ-cXAY?BQSʵǓ4\03 ΌqX8 D 01 (2DP{x͇F0q/PBz#AAS8Cd`T OrD2c{QN HV_{ }@X.68S^j$4%t|%]T'Z߬J"sw)L5ȱ-g$269^qH-A-nȟ5})0<a2Jl(@X=oйR8n5Ckь,O(`7" h9\.I_^|0HP8M`6EzȬwtv"Iʽް瘡p*O )V6'g͑)++DF^S@%;zEFbN$GPADY#$њl,V<1lCV/ѓ,6kj,%.<'# mbp'⳩rQJy8T7'K+xR]31j\&Fp?A/qH#G Q°x YD`g4:y!!?NV¥ j/xf@-9d +?!gAY7[RU61}.'p\eK1R8>&J'`>'U$`![[zdd N%yZDxy#Bx~H 쑬1{u7bz7B(>'uNT6j"7@:4K*Uz#FBRYkr8RxV.cJ5BppR0y0'1X:H.9v":K^>6JyTV;Xbpq#@| hv]]8;^'0ԇ]r>ϩ38PB.@_L jp  3pHk>\xkX8ZEJIӧNN:tttttttttz:::tӧN=:tӧN:ttӧN:::ttttttttztD:tttӧN:=:::ttttt}:::ttӧGN::tӧON=>:tӧGN:tӧN:ztӧN:tӧN:ttӧN:ztӧN=:tӧN:tӧN:}=:th:tӧON:zttӧN=::tӧON:tӧN:t:r+NӧN:tӧNN:tӧON:tӣN::tttӧGN00dcQw00dcY*RqP)9~ŇF-B"f/Oj"z4^FzKQbjL*Lv1h;D~%$8V(3kYjfivԖ#'c$itI½gKIY^麻k%x#%i6&uZSwS008f"0;cgc"r~&6vm;+Bq; f6K|o;Ȁvj&O˽(i+LJh2u j\h[(RQ_y0@Y#yM_(0裸.*[1`c&(Yi(ϵumBBOARtw #3~ɳ+0% #ߏXPNdٷk5}Ow-F.N"hT/OFt + i͝RvOkq/9%OqQutTSpGڸK2Lb6w`vکpDf󨚩t1W31AIȓF#津1x\:Z!,\\_ZZJ_F2z\` F9>w:j͹^k(tx^BvvJWO~~_oM}G紐GjsPE8sv$l򩳠r171spO|w,}ge 0=UMdQQ&-rr'WZi%Lϰ%RQdk+pF>`I0pmFF##,u{%_ţ4^n5"ԣȤI@I/nc9YU(R^ډϤR8~M4[jK>ě,W3ooTPy-|QxHHdgթc׽kb. b qc*+ hQ=7~.z$HOSg|Q {4FNoni[`;wz6whAq\jڑhH#Voq[b3ЏcRe2Տ{4j)e]vzS'pل.O}Sߴ !Ɋ0Zo'TGj {nE6K:w,7e(Xe׭o!Bj 33PyhGbvp!^jCS3ҕ{N }h q/8gu#pGgwf޷3;_{ͳY~fWW ukzsTzsX#N],҄@Pv[s9#ɰ0 iɦխe0Bao^+m21Ơ)3Bhナk$*A@6 Y2x b3?2&{w Y^9nI{bj;5AmQjS7V.]dO;Px=/3æ4;iI+_l5J! tH4Σ~) jP%d񢁃nBSL @>nO*oXUMUQV>mJo__ȣg T I բD/B[ZnKj&=MS{ꪯECa-F`vyag OZ -ִTñӖ-$)fM1Np+d\ {Jia!.t@ޯ9I(’, 6X3GclxWue6f!D £?s*A2'+*57WfScAN^|gM<5D~}m&-'yIZ%X d_2֓v` nT=oדGX&!o{ɀBRhfOF(8/bXP=Jq?]dݐu ^*j'ʅ QrcQw@-Dy[\AzĬmGȜ6u䨛4 )LQߌO-PuyVUnDe;UxQpOyPzzٖ-77ZdwNZ\M*M A~DkXBua\:/g, 1gdvEPz:]S@y+\S5Nvu˻8J45JӤ [bKh>[  8vssb| @Z(Fx  quN1>^ wƆ m!z_ 0u>&HG\R&,J/4cE'[CɭD,ՈYJ2qAp,(R>=rԷjUH* j0Vc!:^N7'(| `nd 0C[MI Z#.Rr71_X}Q1b W  ӡ>I2ㆇ-Bl0iP} %L/kr4\)c*)J$ng2xAxZF=TZmgn?Zb*sӭ_4qP I6y".sc[Svs3OnqFM2a 0J*/3R 'ea/Vn0IQ4tL#o#zI?i>Ssk}aK09~XRᔸ9purc@ px 3WJRhVR'0z=%]3gYG0fWHƒ53 .oZ:xy @Q l+xYRoo+Ur [eo5nۑ@E̤O3xv# *FzGZ\ U_gO֦ʎ ,8hl !$ 3%-DZ˃9TthS_;I/S޲;ZQG\&=jjr x;H6Etܭ ɴi732G+LNԈެheatbݩ2=B6YxfEc-T (f͒=7(i7́-hX3L}tyQ2^NOIc lCNZX tPq=ffxn-f,n!k2#+gqBLQ8jdu1kq@dD̈́VIL~xHl ~p}%E*&$&?B=祉gǀ4{ڎo@.Э*x_O&\PO>"SY2y4w(K̺d[#4Zz 3 4; {5sC~739&ArH3d&ܸJuc`i| tt`mq:E*57 kiS0GkS5(RƈMGR-#&9`xX+8gCJ?FMѦa9:lBkkb6T!'O=G7!Z@eBı?%Ļ'_n2aRm7D-0aCAv0;80[7 Q6'l δh !YpByrCv|slgٳ4޲%Li OtO,*ҵ;u1k@\ pYKa¦WgF!4 IZ+,_hM0-D"Su7RNB,?@8;E4 KWW/h*?BBDIBC1Wir\zѩF=f`C$ϛŔr<@2# Eު /"U/_,{=sxHA~xQxnF`ZƮ&ZAĻuu^K3D5%OV Ԉvѓ\OlK3/]hT%K0)}(ǟ>ЏJ#-\W_YR *[72԰?zaa48T0`)JP  i#Eli><8샳Z:6%Cg T!f#@t:;DCԇ<\#VqZ䠎NK,@鵥4vb0i ,Zإ'7ubxT ՙV5d}GލqAS JŠYx #Q 11ѷGъx}AX== iQ]lfkiAЄ@ *%E E8x(DL9>#P^/ @"T I 1|Mu_թ/C8;;oF0cL seEAI'kI /`1SFkt5T>ݭpP5x*@b{`!J ϧVw|Pΰ-)}Gc\`k[UAQ-X 1zN%"Rg(Vz@(W`tF<$!N&&O?5vӮ(ըJY1_gEl3E#l> b +G &O%D֤l0PX^%aujO+ !dR<) Yq1nY*m-} 18?%XVOSbAht8Ɠ#tLh;?X^$Č 87XAp+, d͡cjdr&O+|0:" >" :Kru O"Oʕ@͘ KN) <Ӌ,tFFX0$5w* 8/AA3? "WVJV\["+:( d)bLd^CN)r/8*lˬ4wu&K*/جlP+/.WU*%/#>Ԍn"?V.=,a6~9h=2& A/H! ̧Xf)`z+ӳ箳uR2-XJQb8;v(1&n,D3,cS)S\8 P OGLfcSڹ6V4Mř}>󥂛dΈ׼ J'OXDp֐@9'pa'hhߗ5e>qd~3+$羶c'EwֶKUK.-Vsd7S jnGI#>&;Vh0^*Dڊ]:0# ll,Ui+I&Snm$&H $7gA|.2P# 3kBcz Y9۔O*`9BϦd0țҠղ%򵀮&e'_buEcjZ[x#O/Ҳ8F)k0~79٨aI=.e s`,Zq3eXoÉvVHK9dpvv.;֘4#D U+bzLmcH?ssWҿۭ wGYِuqa4*bu T<RDT~2M2+lZ%CܰLQ\ h!zp& `PIĀ1>x'mA5SAȅZJOOubGKQkT/L;&ƙSexI)jX܉XC))OBHĢ-A dՑ.W铌FL\H%.H#c)MHP!o)Iv7"ttYPZZL?UCm{ТHY}WutX2䵩mIVBUTY̻LL \k 'X.]>*F~ƛ& wZ/jd@uCiCDԒhR0ΑPpx ҂h?<ěa{+B d4t[qL~ǧs5k$Jg匔&4J xY:ǧjqpw=(nei"G&O/_)5T)ͪMi!>&t sBr%_S/ԛT6 5#%Qv@ĦDyxH/qR òϨNB\J r)BFuc-,Nݲ=D+ފI>9=-/ z,KF(.u6'F2ꦛMJ vDx[%*UꪗU1b郩%J&LeL35>>(s-.a<[ ZqCuSe7„ư:/O"d@|rBt-mn\/rpz2d֎A,E))=]P" x` R fԙу PsQ,0]2<F`.D䍚497%2z (0d3MUrZͯzT1\1p" ˙ŝ"I~q!&fƯBIӔ0^'NiȜZƒ/9H%=qΦoG.,$1Сrxht"N\fẽ2r05.]PFsr:::::t'N4$`4a &f%C!r0Ȃ&L&gg`ĹTwB0Yeߤ3DL."F؞eHxn'GGN:|Vp:8'BP!WED|*VHN8M͟fbo| Tfnv_cU=O572Pņ :? _CʉqA?ĵC{: [qj10ic)-ӧ>:8DDĄ Gn ,9`"n8-ՏDq© DǙh9r&'i:Ml.ޝD8`@b=]חI d^->hB.Ys w t$`0O19#|aU"Җ55h3 +%_.XGčem6Ŕ3 ;yt=4N6 8ؤ3~l@X "d ދs(g lL,"e%ONHHP a Bn0|0ymq]& :tӔ1n ӧN/eP1[pm0h}9#"8@@??s 6NN=>N:tPYvݺx ΀-l݂΄0p~4it====:tOZB.$HY27A]:VX7NtD!JtӄF fM, ^h\4Y6:tӄӧN=:tᡸXT\e8K \\` `ٓ &*M粆-"gLR`E r{0fNfxu(08=-)x+ii[hQ(}J20a\0aF`YC000dcRq00dc,SkHUN8cDI[ZJ@lB2#O&iXѲsB>.6'>2z^Z=nAK"'l*_Cl&L1B#96I[ , "lxVLVW2_+mYxono!ok\!K`}3n7XiIQ/:PTJUUղ!m~kC*mYZ)9:%Ni~_d;Rp Z_Yu[ym+DC҉ȯoJ6Hu(Q,&Q2ZOՑ%<#߲TεMזN2Ѥ}b–}YV5LܚJd,cz,tœGWո)Ӻ-Ώ5bh)(\-WTV5xtR3ǚio-'q#z~9ww8SYcq( $QQ#w'Tn0:s}[*ߨ_$z}۶w9'U4ck(G#V KS&'N9ElKqTS[ %' }^'m19lfz̪3&xv{J 9 7s-Ĝ*skԚԒNfnMԭw9.-*8j0 .D#{yN͜of񃌵-tMg64LV6ƓDj؉YIkժxgexW*>1p@Sj03HFSͷSCy ~ڡ ȘG8n&-x A՚6 !@^_KU\}$k]'CN{yU&0Ձ#=W.2rLq`5:`JB}WBp_RkiTtEz U`1oc5%_3ө~:y_x8Z3s3APSӷJ!2*ٝSդfZVb% C oB窕Įn%ИlR+}}k84oSk q5&gfV*0η'I7דrbܘݹ,=[%ȥ*_ Aɻ1FR6y$LX.} >LAhQ>ŠIZ$48Ɗ\3c/"s7Ƥ9y`v;Nz~?Q< b 0BaR䣖R@d[nd^ƀ|F9MrYA+D qղjvh*RfSJ[!ţꩵzHN~`F!q_A"!/ jڭG}TW `N*jhċsԇ_^3`hwԉ"t'd8Wdm<{"vc^6Hq,S3nK '퟊`뷠+\nqć½yNp@GoD6 };w*}sヌ p0q~1WHUEU TP`>UzI{& ClNՙ#UQ(]mB@3inbn@J&UUܕ$lN-ތKյw?k@<#~;I ~' ) K~f-6bS,hG{-wMh g$ s $\u / ΢m64,ceceϢ@g)z (8 UI0CjS`ӟXQIEB.92a'{wF탈Mqz>/Wgg~<@xh^)_?$ЦHF3bM+"˓XAdgJHIӸtgR |,r e p~5B2 acA -KY0nZ0^mzL`[T]%,'!H*1) 0hNTe$ =rw8)mfQlV^qՙK:rg8GSO7śl(HWka4g@%7{YN-i@X ,2KJg0Y8\l xDO&jKY\ 3'Oj#Y9XFqhT+4:&eIⵚg浕rX5kCv#(uO6mr"+0ȨJď)XBWwT\c*2{ށ4wTi+2d09"/w^JF}fH N}9.w0<_I)Π">V 6mBR$5qU_γ{lS2F$n KZluDi4mO J,l%0vC})'VDt nQ C<)uxXV\\jݍ :6`yUiYpJ; oF8|{[<\^ks>01|"F`!VoI!^+Q /4WUU{^O'/RHMMz/,]tFoT7g[&UEj᭪zOh@s$]_P%+$NҾ8ScihD^c[q-'ԂCt4:Sk 8x?f{=&L1)R;YB Rd!SpB nWlWni2;dG M&)1 ܍e$3`aøj5SHdGzaHRLu*mebnX([@&:ڲRsd6+S.Do%dG+hwu-Y(&O0Jk sc_0G_̓?I9-QwRܩ fi?2 mޠDcIGLGqŷyxGS:UqQ,K_./Գ:0L;gO/ʙvH5,K!'^Xݫ,Rc@G匎/qF)hRUV({AT0gX[`E_em/`+Kve}Hut&9pt3ZJb祉7&+ķJ3| % FibHl74}i_:Y\}An@ǧVP1eҶ.'2"QxAoyՖJ ,7܊DVgcq1^_ |x(98aO-}8C]]xsql@>K꾁 $$QZV<_5wZYG=VJ3*"C* mU~6j^CE'86ۦUBrL h, R}R\ͨ*hzn ` _P ~J>P@Vfe! B]7?b\mKoڦ>oJ[]q6M7/C/K,0l8:QAo*fҀ0V0=xOWKnu1ĉuKvpfQ Iu~qD!O5$a:>?dm aI2 [[X/Q.Fzg/|TkgyFx;\ڳxy&_S8)ŐeFQK<;3k"Cf1hMuqDՄ_sM͌u.Dgme{V;[ig`KEGl?P3o;Q< 3hѲ"֒֞J[ۣe5%SzȐun$qjϽ񮴾[)V; VoqCaQZ88#,_k}g;>x#),ҹnVkW}9qeܭMedv4F*m+n\I9 IS9p^q.@.+ b> Pb4(rzd^V;imDDifP`Os&Ք)4V-(Y?Xx  :|`LE\d` Ř Ajm<}8V)uUP^ gs2nE`vYe4> 3u[nQ=ZL)Q>$O쿗쮄ʁ_Gߋ|!.k|^\*LQx;^pCpJ[ˑ|D JeKgz[XhCm!_\.OPىpg GMD͌2ȥ@D;wpm_vbι-z)qk^+Okc,HZ@hϒA'HȚ |u4.\hQn`,19n*l ` 70:>؃CZYn(!N4/SF<!`Bi"5\~E9nrՖ*-83圕5tF&|k6b|d(EBGKQu-rHX2ֵS]hG\I:4fv9ZpP%f4BĢee'V{W$c?p УwjnFQ_uLFSw xxUp{;aQj^2լ2|n?J[ek=B_hdxI,LXX9-oH GsD6jإ1hJȵ-itYHTMJ" k_-9,Y-4^3~I:3dBNL@KƇ)7QQFd;^'1s1 *w(=[1bb-%P">r%')‘ϙR˓3e'7lĕyKx.˨ #^*$cLА$u~bpT$M:զhy΋'pߨ@gذ+*m P0#m#)ZzވSSxV0X~:ps'F0[ Wrveٲ)S7o'+a`f赨V*#4f7Ʉ#e*kl٫LȞIS5*nu7j4 8m#3!n)y-cQ,b^d qKKxRi;Zqv# HSopgvG@Q]B1;jL#Xbm!1@`ZN8!!2}j*S{ݜM)*xpy<#0e,i?"'f8P9"=Ԡ9L"iW:A 4ݠOHsg !҄W*V0<TR0O&N@]RdCBU#kl FޟInNKmbVfDt z'  aO˄P@RPP};5COp-(" ݋&64ED[8Ѱ)ꚳj DT%m[E;ycVan1CedЂaejbph,me"h6IP:C$IAx jj,)NmXDm,XruCzbxJ ,pJ1ҲקbN15avSFͼ)h pY#9˱QZv֓RsF} ;fF8D"8[&졨tH~Y}MAJ`o^߹3GŬnBֶ13(ǝpL+\"cߐ&a2AokV?rwN0euBG S7~+ҧ5se+er{.&rHVl\y:pX+O~q]1t6`a#]h$kG*8Fy-4=u#?>_o؀w:c:^T"Eb7# >N4H$"hP&L$t<Y\\VCTΥ)f"M;kjY\vVԍ(=\+b-®D:<K {`pblk4ES)ZrM6=JX5e%`VY8 b|3 tU F8Mb t@+|ߞ:ޒ/dIH."B3)&zxDK[0FEzt 6:T<|0Z<392mGktt8; 8O>6ɔsbm.j-ަCS6jH1ZNO&wx(ZPL8ZR! ShD±Ƌ,n`O4)ySC)O`,YEjk M:D.N' >Ve&)`n$g260^UaV@*>T QIM%,EAh0׹YbD7k"w~F 4g2lŮNr5֑y_VR6N t#&RwRͬ4.6j.61O;|tH}+N#Fٞ3?V( 4ԼY//l1jT-_mQ2P1b5pڼh6(;s5}}(!0"agc)ckzlFLGth2rNεZD5?k&iJRY$9= !a2ֺ8J-QY-EPDT3P)M A>eSz-;dl죵Χ 'gD$C=P+ G %*MOMnbļŗs VHr5œ$ 9( ҇? GydJ6-Lq(>h߯OwNP0 79!C'ʰA,DdBp]¡zPT 4^ʜ D==xwqx{@5B4ͅ٭]z5ʴ5Ypj7xm[62ک\K[PmĀ VH+:#UUS| ivݔwYLi#K Y=NF7FXhsj2vwE@ZO.Ƨ&k5mteri & =W9{A6.76Ր~ړ$H ȈSroAZRUiZ-a7_G7ĽO>T=(y\VTMJXSs%7F~eYyOр23~ F{'ף7 WM/ ==7S2a\Xh]'倯Q'v %cǤ/kžSK C- FL2}M{uv!%9!9H9tɄHxJO|NI:*"QSTx8 T)8E&7LI|O z蔬]R"O:}0960H#*h)eiO^i8~!f#Sr)1-  m ޟ¤婒p?Kah_Hf(Ym<`>DE R<@- CVbAsNO|FpC ix\^"h[E[Bx7 `{MHW tAPwp ½i!",A^,Aр N @g$2i>3VxՉ YEӧGO8P'$gL^pŀ,(49O 9s "Qk\mDƌlS׉d)N8Xa Oť.&waYsF)b P 8Y)]ӄtpVMѨOr6|ȱٔ1S"1}zN+Ƒya 5Z`\MA-Zas҈"MC+!JAQL74'GF=5F"`0aW sծS1I`bUvAoYEM^”D9~F4ɵ4ON:tӜ0tN47 T="M:ӧ kjIq3+NP#7)Lb]\()NG(7tӘ0p8HcLmf%a 11L9'ONLqR$FOpџLH1@فt@t@pu#ralh:tӧN8\8DnN/ R$L\x`[`*+</bU~aoƏ>0BdZr |V>SSsd8|,pђ N8`g,ӧN"7&'"w%tP24kFA.FLntӧN(0N:pX(4` 24 3Xu 9xbrǞ5D>MœD 6$:tl N=:t#4፱ |,6tC$tKnzlzAy#X&(dp1Fx7M' T ӧN:xPbCL^`۩^l$D!' 6ӅN%'N:tCrtQoT VպYFSJt:t6N:tӧN8Hbӧ 7usS?ɸm1G=vpLSN:tA8`n ӧON N8Pq(Ãj&5;K8t#T@N01tӧN:tӿ00dcSk00dcTe CDjԘn:T dADƳӀL-"`O'C[O8ZP^n8OI'VQbƕD SE]85Z8La*#DAK[3WDJ<8 @bJΧ 哈\TQXi&'i'Xȯuo$ Vdx&U䍤%1C^'K^x9Op##CѼOPW5q!۬%>W黐w r}"7'Ib}G§;jdv`4Ap$"!"ҍ E%\O'*%r@[Z׬--xFI(S`r`Z.#lA@-O+KBpԱ6$˒'^ib738!.9/c-5TNu=L Dʳ{fw9[3ܤ1mK[Դ6czżSa֋jVbhxfTl[ΈflU ~7śsAOz=/T;.V_g:}Oؤumf#:q⵹U%:FUtk Q}j>,l95yi  j&څ 3T]' i͓пܪ{gD,MY#_qַ=1ߵ9iܫz{&Wcr W9%O z$U4f}Kysv),B*O*+M6* @لES7%\wZ46XK 8# s" !P8As?9wPͯ}"b JJSQޱ7ԉ.PE%G"]BSeQ:V:KU7ǠY2X~ z%J?b0* ڞ1m;/4ۗh"BꕸcG.V5DE~mEC%uB`Qʅ,'h NA**l]kQ)hk{ +eRT֓J<(ֶYe]9T(uodӌ s]8gV!Et+ ԯ:8sf}y5bԞ& >d)'VXy"MRX+ Ac Jg%MfP2Q]mzJ 9Hb6iĉ1ؖZ63TeisE (UQTT[a]f{N.G=;яiV-1a!K^n `O_tnFrRCZǒWh#J#sBND@TdQ )]m}W;s[o">*P7G Pbµʶ{;YRg+.X\}@h|>3ڱLBRDt -fAzy`\x)&O6~_XxR)kDDbbgAǦdD8;k eafDksc 9ߢ)Ƀ'OrĶǴt*)exSqK3xjLZBԦۼXRwJT!i o4B <\(}LPq{)l-JZe "@D6A5o2 #,2XRéPOweTZc/ 䀜3} $ZJOͥΕPM\h:t_'V>/1Obj<@q:SQR>Fpg#ҶFH AÖ<pY㢖Xd>>:"`" .&O)A|N*Pr   .OL8!@Z1b q*㨁8a]}U|_Rb7h@$&hqAz_zh(՚鵐]iس0#c8^ NT~\$Z6 cּ_/4wG,%r.*kj+yسB6~k.ds-Yu.!7 +;ꋕ)ޥ $<}\x5IGfj#Ah:>{;W騖Aj* ~T6[eP\رf҇YB^ln(Ŭ:(kBsY x[mGTx=ڶEdW͡0d\E0F28^~tLpw FrP`8j!+QE #k2i~;)`RpsX',3$av@\΃tn Duݬ.8/)ci-m9uFȸ8)n湌<N0P)%=tM~p)NJ YE9&mjNjܑ]\ilkCGY蜋Twu9f>}]Wnw3${i#ʩ6@r3HM'84z^{E"IXrTVe*C782Y j+#(~>,R:V$aٳc6]jh0cCGo+g$RUQNw8[xح<]lFh+Lk,4hdÆ;rp̸HFVu gD`(n+4REBa8>\+AL`x%1W5.,!.ZW;U+7Tj$fՍbӺ5Wf,})fY]X#c ;U,D1be1Qv< *] A"2BpvK^H77Xm}BkTp<>a#7X5:> †O_ Z18ע<4I=JPџ78 mji@0()‚,"'D?&Kx zVKY,V$: .I6:/P d]L3Ry_g*8 <@0e*m JqJwUe EUnI ΃eÃpIVLKTLRz,GV̥^/V<O+'X+`G=\?t6@ iu& Wt({o"pxZH`ƀ; @gcJHP `5]&qQ:#_E` bj #}PV:kiv3H#FH&j O'^j*(K^0P1^ &Pz;g]S7 0"bvYT vƃa%I)`juh\d`IA[5|} ""U7bu`0f#n~qd9T?7 a,zs%:`mVt-B,j"(kZW\ \.rv7K)kc݌62[S%nd-^)O[`DApbɑS2.j7 X/3 U5}X9dizxtн>dHqr p2^q+;C4Z2qMC"6 Xq_4%A3@h7Zj0E=A+otgyC0]_5?&n' `&1G'}JUTڃ$ 81өT 1e?AO;R`_3>ۖ`!m)B&V+嵓qqZ*Q -& ZhiALȰ7ǟcB/AȨ*}&\X: ӌ`${? &'~,4|T@e?*Aot+xL 򑸱u!>A1, vq@ Fryi`K@MR|T/m_db> pd!5?c;jn2$T>-vY݈Wd=҇   ,X 8z@F 7̎M3Iί`@*<}8N$}Z*5BIӧN:tӧN)GG_GN:tӧN:ttz::ttttttttӧN:ttӧN=8T#anӧGKQӧNN:tӧN>N:tӧGONN:YN:ttttӧN:ztӦt4N=::tӧN:tӧN:tӧN:tӧN:tӧN:tӧON:tӦtN'NN:tӧN6MN:tӧN==::}:tӧN:iGN:tӧN4OdӧN=:tӧN:tӣN:tӧON:}::tӧNO00dcTe00dcaU_J( p> ADžgD0.Q}LUYu{[`G_C f4x'o5e1WbQ!DZ2Ssk67.44Ly<MktBz$LݾL=|u(D v?tEP}ڿYT1r',&փv;=Z Hkh~5J<60݉3?=R~uGRt b+kJ-]|]oAWDuo.[Z[,Ku 1VyXڍ6[V>)"Z$g䣡׺w cf)hLMyj&`ze>bDiv/Wgnbo,qeƛs jSYgqLOuOz%#kNE(OJa:|n"TFQGƀU'ceW kxutu_`9u}EId,٪lTK'oEӍB0>\ {m* ƽj[8F7[+ufG`)Tߠk@itZWEud iO^Ϫi$@q /s甬sSf1מH}}}>K>klT/A{Ull#jFqo Ia9 }; qP]Qwa *zDjm uwT 'nIm5wS[qBF:PcsS=\֭³LlNgDVfb̚x)]hB]s4x 0G)^01D^^FU莅US{C#W4Dfek_Ÿ^I2Qf7>,2lnr*#G (UV@jt g>'oL8؉kJ_76X j0(ά;Stv*dFپRrETڶpb=UdQfΰEAM2|ȢWԩKe&w~H"TϵddSxЪ`O{NN [a0Lr?O*/ln-IqS1D\#2chVij7' aKM|_|X]2SG+-uV `DMZ:w79b`&[DƵ ''`^U+WX#İb/۵>D]n &ڎD\uFg]0뜷ۙjN6VJnyZa)oq6@UBv 4~u bB~V@VDڤbp饷A? '0YgohKUATg-9#jKI욟z_ZSD%aZi^u:[.E?Ox>>y䲸Bbo8TD9n^:# jhzWrm#k &_kblFҌ9$ogŗqp HBVؓľgT9nr5B,w8քtͣH$^~f8e Uqڕǧd?=T}Y֚鿙k#bJ#9VtjU7'Eyㅿ[9{/3݋p~K7?W}}]YF_R/ PA Ӓ#ozJ&:,$fT RQVjk: Kg{[,-~5X )= 9db#";L듵bLJ? *+Sz}b/ +" E{B">ȃ?T BLAP~]cH[i| S$6DgOTwb2ipu$Ba*&A8mcŞDf1_4]Q6JV2 A+iT{8 Ӷjڈn$8?匣8Lhe: S$);LRELP0{p&:6aa#~&KEz#~F̸b:z;'à[#t],-2M ݌b JdAIadp &]FhmJx/ sYhFI.bRB@LlJ,e3m ⅗ 4jYI`P~oH} {Q {) mK\+:1' IP#~[]-b(PdK%(`m\=k+mIB0ԑ3'mz@9j='Ȼd,mS:؝;!? `rZ`5=PX;ʕN`:srrDW4riO^&]3n W ɪ#!rm2S)hgQ+\ 1͍Q%Cuy8 ; pD 1`v̼L0^K~/R]U~+k>źpeG&:4GLSz:H# ~?Q6mZo¬jœ+`T*/ /IWHZ%4`R*C#dFʢrzT ?2({<ʮ( nZuEőDkvz"HF8H++ifJH8H)̢nD=&Kq1vMoeT;+ZeM\ 0L(8l-}"Vw"aab"!?)"/ R zQ+\Ru6:y8*tEGi .y+=ȁՉ/Kuv.wa[M'COl)0"P?[o7Ƿ?*I³i7эIzHsDl8 chSm) _ʈTozFE-Jf4őNK`# &.|* Kt*Ҩ`V\5tN&Q6 镰}>WqVȑ]Q (%a'TZ Jy)JS c0C^J Wxaq#o=y:ټXY^իSQ(ލCZ|Th3WQECTPΛ+0O,0^샚[y3"Rq̐oE z}|پ{7nVi 'V *(;!e0@L pf2k 7^ =$o _dmh;v5"bADmw/J3n#Ƌګå_/mrw㩪@G_w2Em|FQY)ڥSK~O}TLmw[f}\Q?\㢎hϢ|HMn4&{Az-'afғLAD S$qYJKA!?q>(9"iѳl0C8+#GD;LQxjsMd gB4D<A0y{6{O)u1;أ:©Rgt+OcDI@ZpAp,O΂0ݻXbu2c@XE 4RQ"$N}c48>WٗTG p3mT # aQ:ٺp)hFT(+GriPIESb&/LܘLh2Nap+a`:ؽE @C8 Oa`_q4\D2&ڦR"3eGȓ*8?b 4pжE&*LT2pX`?"lZ莓F '٤,[Ɔ-=" Le !&lfpMHs 9kz3GlOS:dX dicQzD<5OO`TZ1BIK/O r˒).U)8ܗ?.`N:!esh}<<2 XTk'h%6Mp<:Ln/(,4BƁJ,Ƞll 4sG!0sf.ۼ?VZP x 4@qA~fm9 #hrȅ!+l72`닧E.5}6xZfJYwZe_(jyDV om~=+.Z@Aibw(!LTn4DV"__l 2L0J 1=ꜷ,^&89H|~E&CRJtaK9b"pH2伦Ɔ[@f4XTer8aaT(B'cJ QV1swzzdGS6hCZV0V'D/ҳN&>,KWczfab3Hx$o(r|Q=DaT.iM [-h&"& 1hd:cђi`#msGBpq{c/M-;8JWx R8X`%#0v.IJxI&"BNq +i NF<h#*/N:nR FC3,ݑ,8\A ]V }d%)?KWy=J Ɲ>4F¬gWRj!Nyf%lg}`0Ngb~dڧc0rUdUkqFI9CY E,8|x |VfB84o["kF;cw^NwVF ֻޟyN ;¯,ʿyrj80:ny#DıH\˾#b6!ea<[j0v!'Og q2qp9+Opn( ,XȅbQǛ, -"8ũ42$*qѤn Q[Ed%h䱃`hgtttttt}:::>(ur3T7HԮoףU#~:=:tѧJTjcFӑX5fD #Xs>*T^^cOGz,ʘ_ʽ IF rׇpc#:(-fkᠭ:~Pk80e &JV(9])˕+6o(;#]E!L0O$gǂ3 -@7j$L+PN;BFm/(ae:U"r& z:<ș(":0i9PvX#tӧN>>s(4,tӣ ^Tqx#(1R=*gL4WZy>q:rH849qh9m:ttztH.#-UL,DT0<.MihH`#8Gț=)TtӪA#0`W6Iʛ6Ev7*Q(#:`땖s D O7#:L|􈙝:ptC8PƸPc":ƈ~)Fq 10x28gAAE dp| R၌ pc.#!o ?00dcU_00dc"VYړ#S>ߟX Cȗ0*&JǧC52`\*6LNX z(rLf_&m.RZy@SBRVF'_S1 T GR49h -MII ! !icHGSƹvnTji2͡|U9mI9u,XV3=$*T:]:e`Rhq01[3)=n)DAJA`(ڣ]v, i'J m#IzGnoʵj5j+)Д>/fv cd 6[Q# VfA[G=>du}}{Eo-nՍG 3zzpp4'A6oPִ#WVG"5j~>p_ꢥEp JJ✜93.ܴ $O%SM7®J#!Ish1u :%S'T՟7cgMw/DzqKC:sV3{~X//, #]$bkX쌵t+pw⚠wMP Y~5v:*rܬA?[ptR\E#:WJiYG._fIR "sӦPW^ڌ~HdqؚNXlp=L91eQj#L9ٟ)HJ],ȼ^:Vua62 ZV_wYuGݘ T}7Y*W(敁Q;78(CȣZ,+(( >߃"cTQwJ:V"~ZN?A Ƀdi ?Dÿ7oG3TeÄaX-UfFyF ޕ$&̗ ȭZG_6vC<6.C0s=7Ȟ-9JJŏ qyQ'\/Gů/{O ~Q&f۳bZ?lvQ*yWiG#AXᛩ9m5J[x&ir;Q]WchNˀH,m{<"ːt:<#6/wK2{qL3ˬEN2o,J\2TwׂS"> qLH{fVZծ<"2$k02cZa,;_wQrIC'2Ze(&a05.]l%P?֤_j Ϣ:TիW$Q]\g%A&ę+IKǑA^)cTOZ O jJ~CwAMtt></"Hxy+Ͽ.MT>^irOԞ/t{`~zbj&쾏U2RV?I,eC#c_eS aBqh|[ 9Q(*uWK{˭¸fzkϒ0C}:*"#/VC%=Y@^&y]h3 ucjrJ"~st '.B0'k+WV~XxPֱPѝ+eey;I=e@T#+\DQ1U.[Ľg~:vx"sfc%nE,m̕e_o> wJNk#+DF("\'ՓTmHZZ(3B+`7 g?,`.Q<trs΁1?Y_˥*G3<`bx-Um55Dr/4]<\],WtG.o%{%B@,:C 2z %BƔ}@ũGCVL_kYYJUn̈BDa}ZbsxD[:),x{xyB(h0!*@VF[RZ*Q3ZRR5urpƖՒYnLY6Qf)O] Z/ysY)zB 1oX2o*7AFtQzYpz2*{"OuMhfYg[D2"5YuKH( X?+jZIf,Qe_ I.aJj{yDj(y9~,2Í[R禣E^&d2X\Dhy;X`y`ޠ$D[P, {63NR|ũbھ4+Tp1zi}7p ω[ITe̜^ %DeߺYoMԜĆAԼ ({#x@pΒ(2<,۟bMaGVlz]"}mM Gc`-?[J1Gw0D/ *.'Fk!o+ĞV`rz_7, xq)AEQ$a 25jMKm9H* v,W~guBE vzm0GVU1D[ȅE]iQ88=;{`Q}s>->FH^G{'][7Z&nrb– @4KH_%X5olD_@0 i? g#yZ'JIMcld+7p%c%QȂ3}\rHPPvP.\)k,w#' hӇ{Q,KNkkH3_ -{v8t ,/V.z R$X^ ,j t( RVѲnw,ȓID&JG,H iJE4,CRQz,!!& zQzYrT+ AA*)rkn錭3{Ȣ6՗[288̬͍e}7Qcת3>Pὺַ=Zw/(8aTV0ʧgcP)d4.LDé}50g˖O !LA7wgn~Վ@pH*^Rw:^LCjkzx>݊X .Vx3h`BSI)V-l]tHҊi2:`r8zDtlEѡP=pMpm M-\f*4ZPZEdۚ'H}NΎ8 ,## }D:XKܧj<2N,e'm Z,:0ye.d O`f`"[ۍ/NGxiZ%dZ;K;Qw$IحA(APm:Vm )Rfr}:fe?K1 U z".cs13,g̦śSz|=Jf==4i&t"/DeeK1T&/ae;O '1z.ru[|[(LJS- ;(;btBg`/t?TԦ[83"wLcLY NhT{ǐIΌ'AǀH\{zzț31/Iy8X&H a&VV(RTZ(kq{EKV$H& xK?~ e?LK;~#iSl&O+mXAV$U\SkGB)1Z Cڥ@XtK kձYvzzwZ͸i/mIw3C鰦#F(@y&1ޚntp!Lk|) 8\3'T[*="Tl ֊-R` i1}G.k:4i1?h_*lMgTbQG%->&k`e4IT$eࡾ8>U2VzaYxeUlcw9~=.7wjjf#[(Oa @P򨞮ۥ+-܅}dQXCd` 3R$VbII[$"҅ /ԐCGkKɡ.dX'Z``EC;q҆ѺeQ"hob]dt05Yh ie$SJ*;i$FE|el%a~!fF6J:GE'Q!vUnRp}kL4w8&!VEܹ R T=mf[)W*Z7(~=../r|SW9opz EpW|G{ڡ7Wh qOyC[ߩ-^lB{!&߄P kd&É;}DQծU'݈~ T0r@\' Arvґv@Og{* HHUTV'Ap)H dƈ8#-iTH$b=;tp\٪ /" FlL(OiaKC"aԔt'B4TQ.O%p5v4i>(F t` VBj S\MCrA\p #0q`2Oi#d8Z2Cvn7š@kdH9IO@%:F0+apj]k֦S[t,_,CBV[#GO2-22Sֈ3HtsĨ'mg}ʉ1^ؓ-U9pj#ˋ{+)_VyRTH.oYaB=O 16{D^gC"`$4U4&4\E7xOV*A4ŀHVX^+ґ !U2È}T#J!QĥyccdV24"K#abiFmY)ˉt;)"Y&@;\ t>FZTF~!mj'3t0n[a64.0-Z'a;C=i#Cd;pnHYpy[:uB:P! Jy(ZXӠ[\rˡ8&OA^/E @jzPq 9` xM4di䖍cŒ$ BeE|n,ͭ`\#m)aCT6JW? ė{)b:S>"+>MH-&˛+^!4x A[cߠVL?kW)7kآ){2i_$O`]KL ˧S9~߼/+aaV5}-XsJw slی -hn71N%#ۉ7s#jY ջR"AJ#<G v˗ùLlwS#>̡EXp7'zj0hT`pyCJJ~}T ܞ'zDAX{]2CQ6k'S횧/Z/ϤZh)n$J!kkA h /JGT>F)/cIuđ:ޯ5|IjLEIӌT;x c)AqX.+" vD^ dYD uCoGj#wZ2_;3r( eTOPc : 6l=6  ZI{ڍgѺ pkAXD& U+DB@n09ga@ԫ*ZX~r.jnMf^9YU`qY_[EѭpmT`ȱ/3DoŸ"D~ _#~f€V55҅H/Bkz0V)Ѝ:. ]0.AP;M`ai7: RzJp N>T4BZZ [Y(|YrQzP_bi@<͍~8EΦyLJO'6=<2˭HeYh;e87e *z4&Rz6J .AEB3q4ȋYR?V!7{B8jNMX_־lrE#fkla%"t lYX+G}jGxEj.j24{Xm"*-є;RI s30UKV"s#PJC `+@'YǘSZ ]wjVMamelf|H3b;Ǹ*;!G'C̙1L& oX :3U~,%YKVCV gޯnt$|>4^+(iH 8X:OGӑ4A@ŃSG4FV}hE<H ,qrz~XۋC RJt`D@щC:tӘ2fV.ɚ|"cG^ Ue,s /$˥_ "O$gPW\6'Ov#WfC2xѲa2R1 F20O0`>%LH` R1T.GkΘDtO2Qo󱙜h̗[B8Ѣp8nz|gIӧN0ihTh$W@hpLP^(Mr dZtӧO:8FM|zr{/1"bGsIS@81u:t&F +ةp$VnBh.,}xDNh!,*rhӧ00dcVY00dc4WS-wє)}KjaX bx҃3F3 =lF#V1̘!oCbbS4G/ohfyhރ7ۀffHfZpwz3em!@̓#f8ԇqtLlF*qtȥf[Vq}851K,n[ O_A˷GlYo:EidK.祋woe?ִԖyfV ۧwZF T1f}y-;9E/wmH]%jN~z%bńK85̅R )mc"6u*32|f.0?=;ou+ClȟN^##kx9!kkbW^JtQi9S_w[bٍsI*u< wjarPVQ%<U3%A7S*vE@f,qZBgT7-rT#ap_6]PK/\nsPyH??i0ؔ$~'oWqBpU#jS- pG:bU'FʾlJdu|TǼVgo a` jF?T pq{WfDU0M}Ez LCU$P5d'" VCE)7R#\hm҇! WK1=ǜi.fzsJIQ@]1\nmљ-Zn%#K1Û2=bר"#{z>)~%:ﵟ'7" N:3O]LRT5OndfdflX)EډLcmwv?&>IJeů(1y}wTKb4_xϷiI(D@+7&E:Bϩ~ =EwƘSJn#RB;.tP4FpAؓƤ_S͊9oojl،UT!anVDN/=Db7;ݿ;w5,gzgb:_NbL8VJXj0v7S0ߥؼٍU%*(%$`l'$֠(6\NWD >,DaMVp*H>˙]֤ T=.ޖ'n&8 1X( Yw44T^Rw3jp?vQ= z"U!oHܵ ( mWt{Ӣ@M\&&}.v#Ӆ) }P7X+Y~AI'PKMѲ6.$ӡOnRUuz7VZmQ.r^F&H!(⛝} T[ 7퍇 ]Hʿvtz!Eތިo;:d\QM[:6x?i7U`]K#[=lk$1"#yQt*gYZOMYӕ3@Lֱ_E׬8$nIuz 밆H" ,jس+Df)6wMϝ{< wDna4W~ؘwu_ 8lo/P <G@/WJ\(ʁe^M3T; 6"؞Ud_`1ӧJ+{'Mr؋YD2b!$x>i߭Vp~/?^M%pK< E21.je5D +`t Op` F5jItM64 ʠ6< R fzW|\j|K 1 Yj݇BQgf!tp$KT'BPAv+W":i/wf|F30-$s1S2Su L̳˕sg%h8"eE1A%XJ>pSL6KؗƸslKm2}J]Uu~&͜ҙ߁2RI xߠadjί}:lU{֯άtTT]W!5X=DRmEԝmcoaX2M*mN_wgِȋ_¥, +Z/-rka@-jV>" .DBK^lDli@4U#¥,hKH[iWRDx+- Vs_lK ; O+ Fh0lBy=1fq ¸ W֧:H`Y/O .mE֮+=H2a+QZIeLbRu<>\ٴ4f.Ax\\Gf_s~h;|CVP|'s ȣ!d砎@|cJ.OjG(k}:tG/_oR4©0t"2saBIXHU[t? *jl%pJ,j]VK˭xYރY耼f%p.1{|=ZpxW2›YSXS\`91ޣdcNw:tu>yi"G9x3^^wDCc`dW}@p ~FxN>ESy+SGʼn5qb==iƙD eX hu0.'gai]q}MjLm>sݭ6ho/uEݹsP.cJ BU¦^ؼxg?vVU>#"W)VS%|D!n_(c &< Pr~-bu*kirmV} y䥴yD{x;b~w-s6M@lPcvN)IyY\6 ڗXpVK.#Q>RoN62ݘճmuyXa BV!Dy/ in7Lr ЊҎ2sFAM)4Di0tksGQ+)`EҭƖr|b M2 qa޴#+(V#I4T6$5ܺG ],TmS'.#kX}iQOuάRCh2mxfZE62 FqbFqK0Ů~Mey ByQ`) %vp ȗzNxyB6 a?hr?&53gs9S.k$ɶAe0ƗLja{{6Wt0a8~0x:\LuIͱ>Bz^f8zfB8ήl4]S~UeU 4qy*%>hvK-7ćGLi9:)k;iFc-2FAjFY2t)ֺs{ w/<:mO*E zƀNLc}{nmB=mmj"Oa>Gky+7fT2tALѱpL\s͚h`rM]a/&Y E!]JO3Ԓ17NNS)7fް294ht<үMR.d;w[i#K_Xh;*X /մunP)$YOUJw.ki &B$ŀH鑞G(oVveƷ #䛺ɨMa7:[3'N F|kKFe;xFWJ+.;zixU~T:V:rհ^@HH 1n=<9wyDVhWFuIqzP9׋Xr+nhDT1~1UnﮫcXVb/z}E^tWeHZle^wjowEbb85eR|g8I^:߹27N%c 0'e)WZDGcm*A:[xSCS=J6Hh''Qk=iLd.qt`' oRo_7?=v6X22Peҽ(rmmaNS>H'kX7,HQs8ձiV$=BLPkq1f$i c N&t߳QZMњ+,?$q>.vr-.DkiZRDSOȽon)5өW%Δ!zƠ#E#žv pMƛ#X2[{-cFѕT!V6EuMԈN)hόԝ c:la@gMN&cKR$@ dX4 n9Q췆}֒a@ro-/ećFiw[Υ8Hq'D䷉`)Z׋,?S"`}ӏXW[,\^N@8^:A72@I/^U*ʮ P4揽9}X;llT R!%yUʟWg^GXΓrbJ#g# Ŝࣳضz~oodi+l<xXBRr5hnȠ g*H^sħ$") #u0'm!9 TȘ@\#H,KJР_`=>4^{LUq̧ܽq cG,%hP90560Նӡ1)OX&#!`<0B@m ҠX?tۥlf'D{B@'M/1 qQhS3:GQڱhI{tB,) zXYBV)ajZdkiqy-lLDe\]YS>D[ 0o)b J r!-:KV7v'ĝ:ٍ4>W9űDٖqxB%DR DOΨu69o[tGx V,t8ʴ 4xa^#B>\d1!&.L[h% b:F$ oV]oQ!D2g 2?cO S YӖɍ 7Gb-oY0&NaA47C:qz3.9&lDky`ؼ@D,,i [l3ځm5&1{bڄmg{ddkw/I2PVFkS>ηcQ B?D$C#:[nsyİe(Xm6ʕlFeuI[czTx9+>pDXVz ׶Ɏ`xcxՇ -q}ϏExxեs1Y7|k5Z{ ){9spŸe_zDSwlH'Q~K*Q=U-r`}*茦✛nt i@wbf(ޟU|e7I舭fPb کs[ 4`~_{GkSh]6Rׯ"ou%obsiHzC(z#(gi"FX<І,n/R-Zfak",_KO#H헿jdؙy-G_le;3n82QL]cjOFPfV2ynV4lJ`H^&a󻓫/9X ^@ gn7LO\mw[4" Fžhn=0YUHuS?Sl;,LXUWiZScM٩G uhŌQIhˬƹb$菕}\=d*U\2ٍodo[]ט .5fX"Yi̍4 6'genjFbU2iBz1]%X,.R$3GYMedS3®zؕ-*k9Zn3uŸ62=[4'xWo.`"t1W]-i_8gPT6_BdHcY; Laeq^bm4 b>bRiKxՇ ޑQ.K[ƺNq0'{wzXX;"b6- 5 =\B+4e6اk1Ҽ}lM)>3 CҳÖ%g H-B?Ӈ8j®tdtchX# 1ޣXp8XiڿXԙn">/9$/<]nDrI&WR&j,R5VQ,՚V:lJcA^Ʀ̩Tfy4t>Ȱ$[Yo&č±6oLaI֐K[ @e/@8\@m 6ZbW O2*+`\\?3G.m5RH VpSjJȜ5 #u$nbn/BgƓ}vzJm28-Ƚ7phep# g C0tNJehO'͛ܕ62tieE70=DV\)z5q!DI —-+m![AÓ4K: rFL++9xS{INq+hIA->k8[U-'CkӅAOM-ͷ-ZbMdR. I cM}۳YlE.AOBalHg9RwJvX9q1iutc$BILdT"K3]AxtC=\,!NgРad|Q;^c~_U jqיk#6p LX4ZzrȲ@c d": R^򼪇 %k4詭3{ieex 'rU,i"g ~nl'QߗFݱgm(*8D k4b"Kʈ8D> " b>6lL+C :ws6lI1bjaOr'KVcܜg4ՉXMXj0Tڛu5v-ɻ$l #]C79YjT6Ya@)6!]l-\ub0/uLs](' ~P/l&\(OMަcku$EopXoR!ш,Lc37Mfq ŸiFk +}ޤlpj3S&D/kgMIp9@pR 8W_TSb̩o:^. Rft+w7bb0DOf4E qIAefX]BR0E~!oY\8<*\rDʹ$N Syʍ';nu܅ZY*ZDˌs"ޣ $G3Ler~p|2c::Ļ!KS yNLmce?1Q3}ϢO bsQJXfpC{DF|suͽOUwswl v -dSZK9[_޾x Zաm̥Oih,'OlEb#łV VV7moMTZ9#K;ib"#Oj2]Owz|U 5&7F:<uŷ|GWx7ԔB~ΨVKUJ/ڢ:nc-cyE=P/(=U%OhJYJ;{`ےVϫFmeGՕYXƷ-o#T VdGCym#],fi O$pUҰ|Nk|ynZN%1]cKe*lurOkDgVWUX*++UњFîMnl wCWJ~kg)fKw7Gd?6@&^^ )A "mX|eV2OoM3D&m Y1 #G])isŅ66`Fz!ԙsģp/9K3ȠԠqG 抭Ƽf26s`Ռd:TYEI=P"Zx P<\]$T2h\G`BL4 Q&=Yl62O!bZ IX#l"kc@+id/JEzmp J2ցKJԣ6($">G4'|VTH/[5\hX٥ SC;;j+w2"cϫ/jEUM8){;ǁx;X YGqH-#w655+'2WZ(]m~,^>U5WYe*DZ LN$G&vq5"\,gj3{ЗG J$A"_d,IhІK^N$U /hs| (M%~Rxd3!3sSaAq*n ѡ)5Ӎok'J甪e_"&C~`2J1EUDhéT$:[vdjL#rFXe1yϫELQ20䜻c?¡eDvjD$1M@*S BSIPB6^lSİe^3#$Kp Lك[#wo:9`# H QCl5{ ca3Lg {̙[ڿYMGiPZkupL2jSjtAd=*LЎl"l+!N&>| "x7:P>H 7gl8;T@(@Q\i\h6큑  չea\{留lWԢSؽ^zU=VyI?JdCݵWxoMPrQ3#`h8:P X\Z#0?&Sk)rnVwlP|HN^5N?[@jyAx„a0T_nC*jIJ68_ؤX?ev>K8hanV&eb[3-gdYƆO ę h0<}]7 TˇYVr"Ɓع8:P@+$O-pT<8F-ܞ Fa N`ND Xv1 /۲a4%\=x88[U;hA*ӕ Mj`GSksͬ .T% --gY TC r)Wh~=Գ([IX1 3j,0-Mzֵc34:ۍ蝔} Iˇ7%Igj#iYSq<._ѴbP/ f_Qdm`khÑ2S]-2- #1RwٸGmn4M"ْxwf#:"L[5 jqBRhadCD pE*hoMjյ+JfJW!}]ܜ0{T+(+0GJP6}50r̓Υ޿`#ćrx~FjЇW=Z2HxgEfr,& b(qNX($[yc<64\Z P\c 6Z@x:ڙO԰9 ~{jߠY*ߨoy/24'VhISȳnCYk|]-F 4sY,+Z3 Nb3[QB*Խ伣*'Z#oOJ5%K'8,ΆeS& MdW)mM : (s`|5Bg9A/2cVTi '\hg&Ÿb,9:;&} n3du$OAjB8mT &qTI~JX&^Krf 8X~)M¢*k_N8/2ZK1.\h夛rq?|c%_tT*V9./+](x8NS$h(ؕvLENő%r=Tɔv>R N 홃fH9)K*RlIv0MWFNy[""azdȴPG.-Z]-'Eڔq j̬ kIzx8)nѸy K/7`-S\SHu2捍x0rĨG"rB,OE'"a`x.Yw`&dIAU5`VlKP  *`\0r0:3fYd/O G+Ӗa6d5j)oyW1S{ͅce0\~ J ^  %o,fP1K<+ŪكH/{۽׳QBWo<@Oo1"%{ٌ_AߝN[)2s@lDL |+Z}Fo +XlO &;Z47 _m|&77z S} P4CJzIPR\ʝm> r б;kx4sfr28v d!~HTcʀ5I$Uډfbm)e</t;DX'g t!eaB,FNNUưt0}l‹]@Yk Ɲ}]l>' $W}~#h7H0T9,}N!NКbAZ,O-& |ܰWXf=*_PQZM,Oo4B[HY*G FPynX3 0ȴU* (x8#li6RbA_j@sT|FؚugUT)xض)؋ԴzW3_A-QH?SXX/TہڜWP23g0ڔM#EA` -&< Pbm*?ߌfՃ"" h2g@iL,+s쀤/0(/L% p*KM&VdPp͞xׇD|?A@Z: G0A@Yxy:mEpaeLm hL3@ J:6 G *>H*Qb8ğx0u`U` -&m%;uR\SV/F),*oZ/IO:JI*oX11H|zGZZ@-"4u::::::=HQThц IC+xvh?[źFȼ "VxL+E% 9q*4`1.~D#T|kXܨwPA_oR;u|Ӑ|>V>/8Ged PޭA vJ}*SVOւ& U~hՉ`/V^yRJxv JP(Xqw6"C\ vMJH̘/::tԂ@MYWƈGIp)q2q+03iXI 窿)&S׈#@z fq  e`AM A!Ȁ@T*cV||=z@',-X0c#>VY:0c.>=5(Pr Mgԁ~#Xz"gA +(^l`VWK E"tt~%{I3$I7_Q9͜KK4lpxh (._dttz::?ױC$ ND􄨒.,֩Y4ֲ( 0Y)rGC@V-0cBecav&l  b%EjUQd&\(0b#$(`0f'Dtztztty[ p NE0cc2`%]|$+ h&tXTJhĎ4A1Nw{E?sjXSՑQ- LZ YZ1mOU ?#DŽ=P=<la)}iVTF,J44',a~;9"9K%$ml ~%.&c21G%- A8#*wע~z|a=x`i#UvF~,SgB;UZ(8=OO:3=ͪ@ٛ__3gGCn: 34Nq3-{rpiMt?U\>ͅi*Ki?)]*^x.#(]6 ^G8zrZ䒲,DRt`\_+}2S:d/='c/jFeUbYsQ/wG YӼЩ %-QFK:T eTVE-F)m ]8D ZEtĨ15/--/%by:O-G/:y˸ j6#m 8q4 'G G~}b"aVi4Ϥܢ݆qbKW6\\L$G;=0`eڮXއ]5pX\];i ߸1$-bA|լuG.F]<Ü< &LUI|KXp ts4{!$;-$l2.}\Moh< n|&ivT?=$+э٘~LZxv9,xzMn*- d/h >k*c@~+Pxk |eq4XjWzvi#̻~wLr3) $GurѻFvagXS&,}EdzeU0NnFb,N [%M6V@)pݠMZ_3..d33 MQ8$ZF`[5t*S$g)장z%򭏮Qyi{D0;|!|,H鋒>h&ߠ* G_8jbeJe\d>eJS^P*.g>!"3C̹oٴY[Iֆ[?n^A\@GDdSs;IbR$씲|95]D^,"bo_#5rX X:[kAGe?Ɨs.*)Dӟg@^S7ͺ]ڄRqvm=,Ƃ3^\Nw'OXk4JIgL>AD-C7^/Vi)#˹6WC/WtbP*vʫ'w in?:HA$F0pib8XJqqpk0zDN*B@wW%ZK7X麤`޼tC0J?pWh8O)hu;)6*(K׏pC,.̉]J׍`]!UǶYP暗`=3* k1N9E]=jq/LSNJwP9uv>_&Ř1d(9݌f)-(m6PnJ!!>Bd͹ 190z5aFYp| \T~wwt6nX%<H4ߘ>* NJ8e % 9Y\v=j}J?>\c(/W*7aN!yIkLj5Lp)!ߵϵiZŀOfރ&R~/.og@ugTԶ ay..FP+I%9ܮcνoV\3tjvtǻԵ#̍xI7VxI}:lU*ӋMg/!%=! `S8gB:F=OeTkA2b܏+IЛt_N*kѱ(E~9 VǗ`Gm@7x۠rӕ-{.Q=CR?bHB,aAv͓PLtӷ=FdS,&OoNGJ-=!G0?EHYU$A-8iߓReí8KE$Qe]=ŖFo &$i-=P{ɄevVH?2jZ83؆u rgZ̪XL}$,9iUĠ #Qݐ?Y &*$Z!9m VqW#a |jJ@pH|!֊bԅ`'GypzTR8"n9Jg-(,L&m';o /_Ջ!^m/wdE),F˰OdKw>] ,_Q\[Aiv8mHB Y|Ogw "Wy-'3!6+n :N +r-*R~Qmjx,٧{Krj(1߻\ѧ_bވ\[|gC{yeڂ=G `!'F4.Vm:(Qm)m>A_ϰo0خكϧ;"qOPtNzT4I{Ԑd ~'ilw} ׽&\r?[94ݭ59FST+r}kc,W5&PFv;s}B<7:RnpYg ?hP @Uy5+: +ƶb-ȞA'!5e[3ڋ=;OlɨGk# VrKhLG r (MBupbWg W:1ՊQ+664맚8)!ҚpW 7yKUz8s3 |1Y\7#1j۞NI6mp auGlo~)%tƅWHO)6݂>ߢگ,-]K9x]H Kg9:bm;iEM$@*f3ʞ"UnM@jm&|K"[DlQC \킦`K˸MU>MZ:*=a2?Gdt#&L{{48Q=!Cz'ARY ܨlj´2e4iS}Ė2ug}5=-5N/QE?A9'cªwͨ"Cg.Z'Z_O 1$v˱ ,cNKt%vzO?"5-Aݶqn!n->^&陜Iר_al1)1P;h!{rBQϰA0&n(;{~-ǵQtL RW p|]B0}~NAx8P<ksM2C[Shp+5@Q7Vl1 ya6l;LHM^M5)u n[DvE0@Cp4{b`R5l؁ưa4rI #[m|Mÿz/d?Q|L$H 2$dvtGM.FUR#ZI TJ:.{W*ckQe9,+o+&-h{gaUѿ__MAsa̭j8nb=Z4w! H.5dKo]R +6oBC.qP!Ox(/c0aQs8OD]O[a a}.A؇a.mw͚|a~i|_A&Y:~d4|.HfVB_I -;(5}*¢a4CR;7h(bLMg;/p^'cr!*J{(_j2@OA4\IU7Iak4IgC/"m F+P/=6KCmK);CgҵC[W0I-} 2_ly뻴"F;PnSh{IKd2LW׆M#WS: CޢR[@"X}fktd/PO(RS3(e "ܭe:}loW]tN X 3n[!ײAt^Z~Euԛ`#"PWsѝe9`'qpFmS:[cs2m)um]̉lF^J4nZ=ؠzރ\7i=lUօzrؗ[d`fWѫׯ?m 0]s%p{+q.+FkkZK(Ox|3*p"  f; Y-,|OiwGM'۰d3:wvVD|دH翱k>`};Hi ~C`4Qfvc/Łk+)h#L(Bʝ@|Ӻ@w?-OF7w^ZooK KtӬ mρ :A!lB_m+"ג5~> VZ?_F<Q-z Ą]0yhogh3Brjc`gcge~chǼ&3Y@ޡ!7l1Jx7;EaMuKq'0" 3h?OTΙ7zBR %ast;jGn`r}cM,5;D&q1 ٮO*T f|O|‚zu|[6"L~vɮ;Mv2[Y$ޮ*Z^@u 8ݪ$;&yq0@?22}@X$&嗞oL#^߳fGʠ|́;Em2bW'J]n\{{A8.>[ׅT]BG@".ȪKqu6.@˼mڲ]Hw[&_[m/=҄~m-~s< ;z7<<{Rxq L; ߛt'3AW@gwZol)%%Pzc|ÀWTR܉ l-&^ Ұ}#\3Y';5)f7Sb|A^q"D^wss!hJcG̐%=U+9' V5M9oEx%R$e/2 H`)7`/2krhmB"@y}jFMɗfgb*=Ԩ$UVӒ4}" p:N[ьA^xqo;L6$l: wdgP*ӿ)^4O\3mA6RA=OCpwQ2+Tx1 6kL#;Q9$5XGQޗHK TH6ī#qͶ|oR}:B>׳!6%,TCeTq6֣mꃮSNPY!|VQ`x4(-C49R@qf&YEnM Z]ly}/ϻUIR'(tEuo#F|K6I3$wXp9vA"9Ym b`3L)E3[ DuCG lPO~-Psp6͝PC\2`]9 ou&\ZjGC]0.IEl۱%Jq79k^?~7RE+i돜sq@z}[CMۗ\Y!a]݈{ DiVa1/Rt(fʏd̄ب*Aص)~Vk;B–}Ho-GG`[#UZg:q 6!X7="F bzӽ(hb!6L1QT5d*H`O'2&8@9)"T0u//0C1X! d9J}\>xg6=5=)Etb# n;O"蝾"dEp5G<騬{ GP%>~$n yc?s4` nzѨm(j̔pU6OƍCMSj{libfaac 1.28 X& a!#35yaU?gE/Y~'?Fp=i(>jC=-I!-  )4( ,ABSD7yizNjݚ:j{)'VUR/SMAAwOKvNsx(HG,rvD-((s3XAόѝVH;d,$cHMxȀN N_O2y(w=.b= {] )au<5܌滁S; wD2,MYA65dLpT连o&gԫ@37yady+&Rwd8bՠ:[h}3ptZ@ xȸP|g ,% Ǥ3[YKQTǀt Dyg [;3^,A 2;?QE{p=gUu,`ېLamJYQՙEo%m鴺цr}Ou۠S @a͙Gis9SBM e9bW)ZH=lYEh$\yFz Zlc 4](&M\*c-Lj!wKf}0˧YMwEۑG*]-ǝqCt6: NBiUdrݝ⦖@'>wrk@)M,f.‡QS"/+1M7L]l6𳞣Tg E=Lo'3!f%i8\BKw&WRΩo ;/ޫȩKg lt^=to-}RX,Eõ:׼ί푴B#\p`^Xl0!rCE! c~ۡdFw.i~G]ŠUQOlSA* BaUO/9wïMRN7NWGMgbsRHoU(a/7aT1U#-F`BS*Wbuv/b%\{&cJ\Ch %, :qO Fѫ̴ ^e8]Wl7\ԅTL ޼rL 1D??4h;jZĚ&ŗ~ҕ&8𸕸eKDzXt?DMEzV:v|Jw@5(F/_G$ff&4kȾTSp CF@͞‘WJ=.:+\_VO5JoPD= ȩn43rLWj,%=i{Pd@[V p @DԐl4 P, BF.Jk|`uY}W ]m}پ56WVO$[ݝQ.5È^57BxzʷOC}\sH)O5r1dj-` "H&\ AcI&SD<`%E'7!RzFr琈R}w#NktVkqu3&9Cj^Uй*BADAV$gf&jON#wX3,3mm5HPf07NA#1 "Mޥ*?RÕϵb=eku8[ vn|`Vv?1Vea]w6> pdLiX@>ڂ>1 4U1NkQmvuTI-2vǗܨ sGL * $P A]{$׹j+ W{D^r?K@v8M>ME5 wX/ToiKqBOg;OoR9Jcej?^%)up/8°Ri&wb> GFtgfP'Ep׶<8XD[I_qxOڊs9J2@7Rŷ zh =`MEle$ Xny_ب>Kzb,isnBho>C!INIBr ^5l=1r=$^n{Ej+\}<'*;t9tP2# azS~&y;{,44"IT n m+XghL&q+5*] tȘϫ)-a 'R(=bץ.P^,+dq M0c[ jzeĺLAi~ܷu\D'~2:U^js6s .s0.?8#wCio,hQhf~)k3Gqr#>˝ؤa]7"0= AˋJ:$ "eSyK λ)0'6~EQ+|@ 2ӜQX@f1Y?\f?wg~>UqD7 i+`Bz7(tO;42B̯cl|O .-29 yqFBhx!K: o{wV 6*P'{6B:GK^qi<zkSbId\F-BtN,є Dc)\%(#9mV=Jw}s*E̕jiX@alDq5ѿ,\m>;ӈJNH>;ڛ|NL.pϮ̯ޘ[SgAB|<Y@O^e6^1Y$lPڭ؄>K0)5fj,"lLfT.{gF`α^^ B@W'2;StFCd`j}o1&vz@7;xN! `Ȓ%9iUSf{qfVM:$7V>Cw֯WM4 HJM7L5pe^U[@ sj3$*M@7/-x c)W.cNf6*z#_ NQxZ]B&#Fgؠ'Vjw$Pp#c)fsoaU.Y{DJuFig׌:},kSs0nVNA/m#†><}G0KO7;f@5K5h;;D=ʼՁ J PrN"~Tqq&YM:o{dID&.S杁NrTԷi1 t~lpJQRLw40CvRr!NeU[)V6^/ԅW{b3 PE d)Lor҈6K/kJuir5yv2EV%27X25U6y'~^A g{ҏd"3{.*p'4-:tO9oP+=cҰAO!=T$hIC7UHT`Сޘ5@j >Ҭ5o0>X !a(%]&gYTym38߷菊#G Pz; %ɿP y? ?Gu6dWRUڧeZPDl%$l0DL  0pD(6 0 0oƳkU"W_㊔3 'q׿_ZU-G wAYx?UtFjk[;aԠbD^3$U'ɏ. d'GlM}3EVgF`Te(+8%k>e:YiĉSlh" oUjf4!vfq5A/B)FCMtQK|Oz;}s<(@l:ȝ0͊93l2oCjehV3j8fћA dCQ71'mxBK K)9A5T-e\m&hJdžo!V~ÄOa[p IW-4!V(KUlP=$}~_K"NgL\%G8}ԜL[R{_/"fJjVc^\,NˋSQ,A/O!.oWkt:c(@zBr[.q-;) =081l= OCZA+*z%ǓNƨU# 򎼉X=+X=昢 4/h@ ^A%nӌi(CR@5/0{;ZoԺGNZQKbeRXng@wDCN5˜gVrO_ԟmS`Ĩg.^>i~FkVv-^mLp٠26jge's;2$9#LRsZBt+{h7 _ϭhӀKv/B'!4 8HGVUx$Plħwsұx|FC!&2ٜxC f*wpo:X%ָ>;NRFC9JtKP)dCBU[&I/]1Y#ٽt Ҟr,βW}7!GC&:4aMCz_h܄|nd~9Q*!ՄZ,[Yc?/z_ 3h¿l3I%KL=3f;t#a2qGHMZ3(4i֦(a#IhT09:}![N`1:X1aؽqǵ~hw #6 EX`+"j/Ù8{G,"dC-@l7MiDdgEn\l~q%.Q[@# aˌ$1nQUdReN+oc户|v톙Ntt},$|=>pot.)5K`w_ed|@eî,Ƿʕ,(C;AM ^^ ;CG~cC"IB,B!F`+Co)@27z)gbU3B J[c췓"Xy.J&V,Dž꣋[{X{o j2\n]3|7feuĻ %|D+,^kl_Q|?/i³DLƚluXU0ﮮA4oeoaQ0jo>ԪkKO-LԎaUj2xXz+ 4?q\:JCV.R!FM'%E%x\{lQ#ꕂ`;Xe&XO'UC'&9qW '!s^pcaTWJ zC)7g-1@"9 ƀe3oA%9LeͲ;#_fԾ)ͭ狞7m?t@iBjS9D <;89x(rE:!"rr3 r^~LwݬƳ[vңsUZ s&ԢJ_R_74bfhh}euP\)빧 @&h vǼy lb9znV[]O:_ӏ̛C.DY4(q@o/[g 2wŲԍ?<}҅+Ie|Q ;y\X r+XR'KR;F)4ȘeZ_%*)96<"0 UjFځX!}J(aAHT3̧يVH0NM~_~#C[p2LPE|kf~;F'NCcYIBڃę?ZPEh@Dx5O-J`|q%̳/EղDP5`A]xTу~B[o-bNl6L0>͢1 :VzEri6&*bQ&#kwiU>~cT x6L !U [ S. 9f= ZV;!=Ȇ H 9pa%!o6ciK<;L''y0.V@V˔/gZlI:P9 xgza'7:Sp(ȾvnbzwpChLp^TTl 9k~_zFq[-R" P1!0ӹ=R 1\8jP|-6TS1%[2^$)~A)N?t[p}J:U"-<]^"FmW{̽j @4S`q%R'bl GF&E>3GuŶr:W 9b#oVCn+ F5Os'OO/n{2c((1C}U>_10f6f `Je7spf- n`r9͋ \q0v4ʞ9Ұ?ѭfy19MGBA.rqMϗUV9+~Y9 Ӵ_y8(݀h̨@dq`bB)l| VH0dJ2_&[ν7v?AԉJq%;_d Hp;|Qk,)'`9q} y(*>xtL/-A#l GvGn5khg͌jT$Z->Cn/I)\'-|8Q0ax/b yu) 9;+(+ -|:߆0YU/OEZY6ڵ4;g Xd z"ǜްw=d )mh>:#d~mVm5^ ?WxN97Q/psuF[\$8ONB5m+Gڂ\>+PCDž_T i^CQy#\B|iK+ |q-idlQhd 1qI|#!> Bf fJrp"o[NY`fK4S snAǜd+,3ӪZH.LӘX@?Q}~ DsʡZq+^lJ#h9Z*'u{&Q/?d6ҠBQi-MEw##~lLčGyku&_oX^h #K~1UL_^|em ZȨass&Pt&Jt:Ga3QYi"CvETpa1[?oǡ"eq`*ʘY=j"9lu~ \#e>kMI|èUFѫ+}/,bU/Q"W%'HGGFC}lkQS0R,(w[[X9)li&_cVɡyWDSMRh6sGDWۀ!!l4*)pk\[O!鞜лeMUr;W.Iγ١쓓h{ҎL-\E#.JbF9D΢n~[$t!~,dRq<pǹ"qvh42VX?&2O Nn. ʆ&Hv)OMu^I\貑/b Y$ w=CUbJ=urƭpF &f?)9`A،S.+l*Zl:2}|@(1 ;Նs2E9#C;1OYtQ*Evtni)'aDn~;ԋ*5sbO6$u`<3*S"nJFn\fA+uviᣃdL6URʋ-: ju3xD"C3ýMNa(;~UͥkP iUMs/voN = =~0Plg^)|q+‰v G9nN0_O[[%D,$X*:1oj:cgu|RO~?].$WG꒺w?4Wg[m&1Q dh`  @@>H& ph,E @T( Na=kzP+E :v5}-`nĸbi YV'J7P@nd^']-سy{Nu f,.̕yws}کnA G#bRk:96CT6WZI0K̐N qGzx* ]N ,x诖T&EF!1+UNd E]-WbMbsb'JPz"UL?6:̽k_fPF d*6Xm`cA @n2vGݡ/q(5MsԄa`J&Z'NΌP=[`#m,h17-bQ `5f_(/,bEwEd`-,WRimv3i4Sx"¬repɓFf`bG ;e)qhFob :i<,h䜉xzA8(G;Ne~죓8G4۠Sȍ ?J +B뇯 ziWFRuWs8=k&<<+#8;sEtFts_MkMA 9v8Y.a2|I6ܗ"i-79J X$tI$?@Ҽ0֭Y1`K@nf Nu]@gbˤPSсz+29&8o˺eQ$(o֔ ۄzq >no$ *_2T']ì" -1r7`'U5Ǎq >)'iNЅU *B}h|mШTk{D s'EdG}SK ^Olwl98vo>@nu5&7;|BhOg&Ozq5*VB9*c;`YA<j=SsVknr$<_1;KQ+1$MhKkoU ^D6P(I4FE,2XpHnIi}6k1uc/`GLZga5'0w{OPVr֜GsSfxR#i: yEQ޿.OfRh OK5^6.j4j4A6hb+(5y:&dAq ?K^iҦTBC*|dR@B|Go>ځLϣ&:kT;k'(s0ߥp G舦Ő/C2ќ:^LuX7NooǢ>]GR@9n'w=OR<DwҦ%}^I+EU|x\A Wo^G)y> Ҫ2q=SYғ La4Sҋ K /{*ߟ][hȂ\*92?W3 K_ԭR\KV2VVk")i(ei5wvD r0N2Js"|XL5덀E? ~Sji C ^O!|}žkvK.U~#Vp&'85,(Zˑc+C<s/xw^Ov+4g`a ;I}Tt1P# /;."tT"қDs n8Mj(E f7IH~A%s_Y)e&p_U\ZYMlΒx\򭈡 l/OXݶv;F/;f~P *bϘJ9C K2nTLDuq$Eػ\L g\yMۉ< mX:./ o+O _%|X!DF(A.jp+IQU* 쎸l۪-"V9Ƃ x;'tbBگ LGZImeIFa/b-y ::`Zpp9x['ŃgV<)̧?$m^pzZl]`Ę [F<ݕ8cQgg%neTgw{wYg2%,ӟ@ џ߮_4c-X0`#At[\9̏) ֹM.-J]̕U R{Q$U꧿~`^Tr,H& #9HK,>BDOHgFܺ8'L򇓇єC4;\UL$ocxJ䣖' 4ki<׿x5C (Z}ϵ?O$AMzi B}{t/߶'zbs}>+xaC2Cxr  @a`p AI&SC1$aU 3^d663V*ߜR)>/xTrW6ۙ\9_d0sh?B~[>II:9/ၵ]ԡpy^gAg;rmƣ^D*}{ތ77G[IY8w|LN|v߲8w"JTYtăJoIO\Vq=sE3AQÅLWCC0/512/( 19J#1v} 7;&v4i| ]ujXuĩr#_Dd)?`9l ,U#5H+$xLJIR38+kݬ9>T;1#$`V8|C8, P-ɔGFAT֩y)2ך%iAvl5ީmmd/9Zi/nE;zP:jP"5&,?^ &$eOI!hf}8{Ql۟G(0"9|WiꅖQGb+O]WMƲ B6i)/{șT<;`8JWvVW}fp[.L&S 룖AƉן7oZ2`l哲1uvȯx ͫG4c< ^ɮ_~) h)G <;N؀Zxylm9L$8D1mKȰ<ɵ$W׎O90;\Z(CJ nrc-RG;Ayb*tG x`2GG>ܯQL@tI(~ ³B"?̍ܽf |a`P';ӚC -os'1OxqX%P"f0.;q9*2z̞gw=4 G5Q; fF-[yi-eưŔ[8/hg36fc<וyةXw7y >cʛZĭ{oiQ86&/s#5(@7o ܋OҞiLa \ղ%h/2^Y0pszԹ OQ,_+^+hC| JQΞ2eᇙG،kg^&&&z0TpJ8]p7[p;{l=r̅U!o-6JURq6iMj^śML"6alm UcX֍˕(05>{&NA'x[eϴm[ÖeV :ʫ +̌Yb?6&D{!v&$k6%wsugB6GB3Rm fkU׊I'{!^Tx.p[ݸ)VLon~7$Mu 慥7@:2Ɠ .w $p̌Mr;ê@5 -4ugە.՗seHpdJGȱˑ]N:pX/:,|d*hz Jt^i>gU86_y%^_̞èr{=o1w**24:w:s؛y _(UIK!_bJ\m+uycT:LI/})[w\T( l+>-&I*[PK AkD$]))3<#,o~|8pvBj9QE{zg+ 'e[Šcr_ 8/v}l)w6ԣ0݀ 9v^rlv1N0=WxBl D*dT "nAI&Sjf2 |.vLfJ'+ҭzݨj}j,adDȁ-K ×[Y .nW3`Z(4 ]2ZKD6|x5mkK"pERT`evNs{)+LlMOfZ?Ϊy!oS] ro4bdW<|9zCYό9/bNSpVFt*'P%66$txPZ}nq0B7&tǑgzI49' u+># /zh~B]CbEk*8Y,"4;=)X.a]@#ȪtAC߈{7\iǷHdvA IT]ǿ#Y-)({6aqOUNcSI/ z'KxζRC5s#W$7'>&]_y8tBdh?^F QNhO2W6I!_H14-<ϣ20D:2zfԅʾY@W >DRq#.и{%٬&>6aw>8x΂E䲏-}PߧVԒ?njZ3Aci}QV֫KQ}%@|2'`2r>:gݓQ$9S`ViWRQ](އ~~fBsE,3ja!Ry?.| qf6-q6tBX= ?0𹻨> 'g5d-A7/"AGAaHdο 0Oں]b>v!thZ;VO䳟jrΓp2Pf7^SՅO&&>E97_yY/Qh@[ź(ίFZ[S tg1 )`W\ iӪ|eqx9m]Dg/6bJ ;@!2ɎPk`3Ƅ;I C3c<-FXz߷>lo[ZNΆ_җMrS:1ڹ/ǀY(eIS&|y ݝS"cij~H&jY@3:NplNz~ŽJ[т HљnQg Z2(i,}zۿʓ0b8Io6C͕v]Z%ANۥsh8~<2dh79-k'>㢚x@g(j Ȭh~}RbG9d~." iI"ϡkeEn2S\ꝜkMP󯮣Ay1s1 \cIY}[ џsd4[tVP\3)R8AV'Ns_iB~i#H#O={%Y1 pW lfƙKgˠGDW¢Z Izi29(aMr!T,2\U|<#~(Ȓ4[[͇5~_تx,E[ЕΎ`i~ytbNʱr`-$xU6 Q]R7wr p!Kc*#5"efL6%OЁ6EMۨrtijVcDFP?>HXX¥ŢZ4;A'*aPnQFUn}!f :ΰ)̵܅aO+|LlRfGՇ09`V)D?|XubN'_GvFhښ 6' Î`eLVՌWvٞ-rE @^n6L"[dztHܩRg4|+#ONςФ*n!vm~6"<ƇM25m^0ĺ,bp]ŴiVfω ^ ;fq 8k)ε8!ԃk$uз0"`65<.<ȘϋĻqܓCxu9ഃeL;ypF-l%E)T,Mc' $9i|8^f-Q]~j׍ ?#]v2rƿyFJ[oL_A/CaAҍ<`U@6$x+Ղ+SZ8p7s @=%Dx̡YkM\!*ԭ-@%=Htegӟd~Ϸām0 UU Ѧbqu75f?&KvDRHQeʞ^4JZ|ת?ڎN|aIvp)o 0w6T*JŚ_42u?ňf-\?a j6>u;]O([v"ά%s%^L6ҥSbV 3T)_sd&sX[7&-]eA׃l^(teX[u1>$/u9Jg۬ϳ0{Պ44LAX. aT"3*~Լߞwms<]Lx~1Yo g'UA@_96 zQmޚY_M( y+:F@` @jB2u2&cK3RǻOQQ\yDz,X, ́X(݊/(>س~qZNdbxb>st_J'JY8ѵ}XhHIyp`)rRVI%ņ deXs$m2-WZ,oǿZ`񹼑]7QDoo@,PM ~*r_[pDp=Yz:->ثm^3oc§+UydCc޸C?졇. T#aH4 mNoO} g 8 fGW煚Jvݡ.od\-湯SΩI- \apj7e%C7H(xE 䰾.\vz(Pp&_܄P%jE!Ӳϟ!nX1@3!B cM~\k\I#IWx-gAͮu4,fו| dpQ("7 J79ܽ}?SKg2#b"o1bp8V_v w3MTŸA r3ӻ_M%Զ.=  B< 9;'WQeQ-T{0>q 7? B?$<3U1StbK7$'PGΗݕ>[HJ3,"*$l@$:8z7\M6rO9NMPPMQA<`ogGCJRnnm|W 6- 5gՌbO g|۸^4`d6W#V1kSW~Ȣ&~0Hh=5&+V F;rN2 ˂iW5'}l;ƌx8_#/Spu_]$ve@¶d~~ZѯqiFOG1hM{_)+ )>Ŕ7,&] dh |mh4_Za6/4ؚ2>;R:yV9s~-Dj£@Vgjſ|բ5d`)~_Wja4& 0X( BPP, DaԞnwy>ҧp8k~;翋qXn$^!wayHyA';"0T`X?LBQ `TTT>,HAP,$ 0x|MmܩU>7Uߚkۖ?afV;Aw/Γ\^$&Yn[7_*ԼJ"ZLzqہ!;4@_ fu)@,ARrd0]@8 FA I&S"@\I .֕j&I- wW#FˆΩևyu|g:Mgtղwj 43 HIjv(tlR2g:Hpq5C6/qu8SՑ jsUN(~V }/&AE`ShS@K n|WDUd31&y"4"x8Y@p {0E{uN]CafCf >yz0FQ,uh2mbRfkuYORRX0&f7f[' MԌ>}ǖXgbYDD4D֏psVc)hDdEL6CH16^HMzϙ<1/zNX̧`%I Af.)WRմIδ1l iǭDǙv!ߍFzWvp3k>{#v1!fs-A՛@e =lBYV(/͔8XԯX4q{6TAoի3H{l}w6Lj}9K[EALLkr"U=,2\3'aQfD4O50 P헓7:#=1#D *V!=kdG:hQA7 De)ӇY6܁ŸP' #%LƠ˶Mҵ1P 3[S w?]eGo ìTbZ}~#Μnl0)U26f[{4HΩMNX{xg.ٻ_GOe  0%n O3(9,Ξy5>J>fT;0k d?j4TԼ"[{G*а^Vt=&*HDىR8?d_QS~Sb\'°t&% +8$ lMsBETWjl /HBDQ≜m!$!@vX吷70k/M)%[elv6=T?\ gy:ߑ}ƚ'WNK K;,zxwL415bI؉n`|I|jўQޅ PPՑQo;ϔǣG=nʏ')`&eOX܈ 8zi.z.ދ_ug"sEAcѾi4lM&2oph9> 󛐐 $`b*}:d*ƫCI݁3lMoD|iK<1kUQ;A]?L;jPdDU;"puX7̡ÛpXl$* <^N1 8#-Kك!Ƒlu[~c"r-QasyռžE>kҍ]*HH3]%LuU9kлb̙Y)v>4yU- +-uH89Ϟ_m [2@8 w2+桑?ްƷyjjM/ݣߓ ٚ}J]KL+-<+Pϴ;s*ټy˺D^Nxƿhu%Q?v *oF@`]8_\,괁L6X?Ы agǛ?)s;DӐnʥW-. X? qdq@uv_ l/v&. x\?=J{|;)qQ* `薪vnlyb[l}Pwȱ$}_WoV9VP%[Q}~D4_H,!3zJgfQ[eFεn'&Wd߭aFF=ﲢEi c~:OZ836>@]W&Oerz3)QͶ9 輭a{S!u kdfj6TSQ;lF`!|h[vaKi(DY*Wϻ7QM!+"f3ůpyB_q#pt p%9VdQov0\y '!VpR=|7U7.DW|bdgV&ϫ&tvZ}-emp6Z+Zi Ms[cdd"d4IT$<xGߓxDǒd-4k_t"|!̋ $AŝuA|Mwhq< j/~Š3O+&sKXV+NϲVr̢^%Iѧi@] Kxmo)\zlh tʧ-1ˋ.+ K ? bhK֩}VcvWsG^+24SDuIw^BP!7\>\\TUmS@#[0ڑLvH߮͞.wO4Ca1Q#UZW˭.""ZHJInI*p&;Y;6AgǸ^~p,#5IƏ=Vh: y~H)YH&v*, f0P@ p*p& `P,8 PDK|~/+S/k9Y>$|?=aNbht~FK_ CGN蜜-C̕[ܸ)`3 "A,I&S<%EdRW^ftt}[N=*6-5Jqpr#cԿn=Dsrњ]*+W2l{J4\3>7bf301iţzyN-_`pXY09?UK4(5 D{d{^ eLMv3 t hP.Q9g@ t`PLrl-m0@Fz)^9MMX<[t~ 13e.BR+_XY]h R*Sfecv~:-ae;oNqޝH%YؠISiB[CHSXBN@ܓM< _7$Or4k߃MS4v+l^YXtH`3:-Bf2L{n„ ,+Pih ϔmp߮rUY,K$hhj&A}l[O%$5W.f }"QN,wx3kTEKzns}g.p'[\n؂B26r<i~HZcKNϤJas<-.1 .zZG[d:!10D2㌂ZbZhس=:j*g)І.՞b@XI,TKy[r+Θ\WE^V)u>~@ÜŖ751Ϝ'#AC>ndk"Z'Y򧼐jD?vl3驜WNo(:m]h$mjK1VM4~́nH $WZoF QJQum9kqo#J3/(ͣ,I5Bļw9/wVIۮf Ep5z[FkI˒ Êq%7#AHfF;IhkMWCڠz&ftTp#'amN^ '+l `uL3'(+O>VyֱaڇDs mٯeysу޶eN /kjC_]e7VnY&[{&޴^ (xXn!Jkz dyQxOAoG ?(|z7bRqq=;"=4u`1 Z ;Lf6.zl0R/띷w^!U߉($5vduǨ!I S;Jmd#YɞSkk:gS:7"Sj=%Ԙ Ȇ~=֝2G[-9`Ƥ`p#Ah f6<i[co)da ׸3ʠSkP,wG:ueuo&Tzs V*26ԝ)P:3 K܌jf  saބDk vIР_@}unr]WzbT'A,\dz"`akaBveRn2ԯ˪ꤐseJgyr #VJ6R/lqMv=?]m.<76;z*qrk~&="hU^Z]08jfN/^F\6gE ю Աq vh V~"*$poCXX?UwTK1J3 CHbC#2,(]J_@^LHp@6҃ёCcb苕&GPQBr};9NDxٽFV dB?WVh!Td)(6c;lsd\HOn#(gHm0yr*p VFj4) Eh XAh[Y2N C!RW#c Py%VLED 7D)K!Eҵ!*lQ> 5 7RVC-KSVʤ+>}mW~ 9Og;[Lyc8?LNtT+Q M-x7N`P"50vpE'd~j~g|$0YGs@؉ ;b2[>v>dNKi Lx\ F42>LYW^:j+n߬my}/g+g =omck,':R7N-31&: hXF251LV"T OejWԵ-BX5RoLŅFzCہa.] /2IFP_+!L~:&|f_Fۇ~HJ,Hǜ<=.$A@_+@S4ġn诟ڔo U:bԆ0:Jf&fL]gx^E?͡s?a;K%?L0}鐓IOl><}0d>?{/Wܤ+IuI~K8ɆrX ٷ|.^aZf56'h#vOZ[^&Lc9{LdT3e΅XwB ] ^ip ov@A/ Q YԾ06{F#oD-S:Mb`$-nͲi9~E%~u/ڒ`5`P)~Eg~N>vFJѸ*@+l礓`hk?=M2ލf{],^AzYYbz!) rwsP=mɀ/܋=J+c&eԤΎ|\X; 3щT3~ YEXxs+t8+w $:Po>jƼ$r} g=P Rocnv4; ~V-& 9:{]ӭ풹KR2u,c#s: b~U~AΛAȔsmh ŏ/-xΦ<7Jf砰^> {jS;/?@?p^TNI zrS- q.Br=pMdd$ލyfJhhC˜I(`g:IuH ߪjnAN2$-*ײcS~3/Ga`1rCLHCI-R0U#|9@ ]7;;?’Ym:3 phIg͗W4z|&͖_ϏHIo*vBpjXи:.b%5uaGLɁ ]ΐG CZTZ-M܋}B~xpl3%X< hX τtjW*\ VF,___q$k/Hd XѲΨ)9k6nvȎPݪ"Ο:Hfea̗|D?c7 p->o6s\b#2P& C, BbD&SkgWw{]x)wOSG^DV8H|ٗŠ/ޞFR^ڬu$Rמx+P|Pw|A1_Oٲj婠ڝ$g9P_Ai,ɉa(l@@8n hN PDF Tλ5ud\p{~ޮxCm4mKUƂ7"U_Y]:<ۥ Wc~ok/+JjmBT`= Z% ^ pe EDm " AMI&SٻtHJ4}2ϧ(B'}+g7[E̋V h[Q઻gЩqӯ*WU'(ó"j9!Ä {|>(J*'\B 9Kl(xi_-'E%߄9"maP#d&G\سv>m}|v\nU[@hWSXE9ۦ@iwx5a4o}?i}Y1[KIsi·nJzlϾ *IyK!Ɋ2 Tmr"I,~0撵2 f#JY!_{ 6W?ه_!lT|~?4ω\V\;vc0}!फ!B%-(m`?bQP# H$.=};I3(YiR?eU$*)C̯JR>?\<m٧#OGLmyMns`&L"Ls\?[A!RH<6ܗkּR! .AG9F|r9 o|E+=rjWF5Z|I_/b] _/)ZsvE-_֔'5D@=zZZ:6hlw 3ϕ8D?hn0+pBCxD\d{vxfZ ]V?9 O]?h ?cY*K@uvRc:"1`,Z@as$3/ O,l֡nmm!X)%̯DޙPx|M<|h}ҥ5gÔ6t󽕒:V0`I@G8 )²àpqY̊Q\ϝ'eR/*CBY@2*G4@E6J{]Mzq}7~R8(Rm8Ù3G X,Da`/( 1]܄s hl+c8VzCjrt'0o+? O^I&i3Wd9?[<瘭/dsf*K:&o%oڀN%{vPsy7[hX]///t-zƮa\$Kۺ=8q!NH7}U'ү;])B[ GtCȚZ mYՂgڢ0 9 '^\G:c&u(\)f厨/0}(trk?xo]Y<#/၉y,vsP0, `&7eͣs hhGA6> ~%+(Y%;ܝ[oZs`ܝYeD0k=~o$bƣr<'B{oF5\^ Aji/6gbGUSku'2T#7F k?p)g}cLˍ(yU!n gO8}|T];:q/|t"'cjPزH.3`ʦjZL{LMҶXn TiU#h-/{$}?zX`aRpgz X1{h$tRa@20,Q6%IQHd/ˏ B5J1MdPg&7µLt8zM\)Tq({S',PfIPԛ`Q-7m=kNOV#, ]R:? mpP-s.A^(w+0˥ʼeì;9W>>[_ig7FF}Zj*IЃJ**(q+BzbZyU=ϝMg{Wċoun,^_Q#JjO"pg{bw$Oklbϱ$aoo\Ƣ&#N@dPMӐKbL $ql37 xe"s$V 9g)Sw{*-#(#~}><")΋Qqz8/G{A0*^= He¡29^ y+eKLYr2)(6VzǛnƖI5<oUu-˺o,+pkr;}-.o0ב[=U* R}vBBe~ݲO @M_^:Z盋QfG<Uvbðj]J΂K `zx <& Ϙ)ГƲ=qjgqo1* 䦌bp(&mx"xi~asD هv0X5KͪR|Pߒ!|W>{㤜Qw/ѡJmo!1Ql)oO޽;)?6һB @z݀:E)1)]irEġ%Ym{U,Hs&8'2|:s0;RLm7 \ E1i|VY)62(IT87&qV{DzeRvA]ni`twRo[;^4=)&._DtV 牚|/_2٬v?dؐ;fےG@hG|n6]9lm ,]& rI3hXt9 {|U[Nѳt|R0v=4w~&Y+0k{#IdS-T\) `ԝ7kQ7;yj9aB5^XJ33/Zhg?[yrg@0}lo)ެy*uB&:Qv#Mny]Q :B0K6!ϗ}I ,@O]D N| K*^u$z# k(&_vn]813me bo-9ⶾ$`ĤB][<@!+u,.cik2uQ_+ኼI`M ͪrZĆ଀p @\xH |ܧ'8m:f<0dc/C2jq%TRohS +eGF̫oLC9=5>jG/V?Y*E2$֠b KxqШVJY xޡQ?&`8Ӟ0YW\5!@+Ec8srX3 39,cQjHwkJffS`=$1Fru&/֤HݭlkSjءUk> 6h -' WT c8LNE0ydAlhKD"L 3[M*l_M꛲Q>BZ K| zYZqd wUJCWMo^~mGb ݊G` &$TuH<y_[m=Q 0l`kAь`τ⩝ZuL"P/0 n&X&>$[V*fO:nMf޳c^vp9/* 3eK.>\%ͮ\RқufqVvN^ABL"4*yw DMೠM \׬Gu߷ GƒY߱,nMu~SOנ-~a: Ǽ4!Lec}OE'P-mg] S#*8d)ϝ.K<?,#6)ߥ€.?uOױ }5ܖO08 _oW +&{$"]Dˁ[a&Ғ.):u2K]jJ[[hNx J+D`ZbӽQB\& DۚǔMB!3IcNP H3$uќ.7h3J<%e<+ ~g# RLZRVar nkIPE}K891Ϋ茅R|A2̜?Qx=zg'Ϣ{U~l?&˘^v;2ίR5@OE#gyWwf'!F9z' >-md [0rulEYw@B(oX?M_㩌)/O: U(PZ[ j`X1?u5HQFrM]Aj-$9 ad=UM2VYGy67w v(欽8uKʁ jS4uJ%ע_Y\S\Cڟ1?omA0$y\m„a=-5C逽<Mʩvs>گ"~{,L͵C3k**&;҅ 堷Ȣ3[@y_OҖG]Y:ޥ ,[fInǝ= !gMkb_0%|-H K?u3?B\ 2@vb,X`Su"qo:K({F,G;TFHgDx1+#K 2E.dyſi^~RӲ ZחU_g2D%1?pD8.nk.⥚wsD۪i<2F .sdE`~"je68۠N" 9Yglt@?v>6AVQk-ŅnQV`?,(+ h0* @D1DS%{:T{׭V?O٧lOHo}]T<˟C$}tY@A{?WC5e1wa"@%m <#h2)W RrR^ӃX?IgY 9P\tdzB_,T~`iݶuyw@X?}N`='X"17 Uѩ8 { H/ ͌DW0[l}lZBKG68kᛕ,J3OcIJ\&&uE`hN[ :h }*.gUM>)驪;3On }˒.x?~ƄXkYσ7H/SBh謊N:ZTK!% Y&GLr -PI"k?!N`^ ٔyFmmj MR>ULT6.VSHslx<b_#;Blύt+G ˹RA鈰wόRg7Y!|(YQvŵ!O۹@E>/-nf}e[7(fOp/$%S2YOCUjWq T ^4YY:5P ]VJsEܣ:8یɌNȣpG! oW3&Xy`ʱ%@~ٗf >ZBуA0,AMӐHpO.'PZg!qs^:Q"A X@7gB!]-*ex0Lb24*Su U"ٔ^_k0? b&,㲅ҋLM%A 7/ A(oB%im"CF'/y6*̕iA-'4@igȓ&p>ry4@omZYf'nR RT^(8GAoJ ;N᳧d%[lb{[γ\ɋ͂ey`el;\TK Kt,]9u{WB/,v~yvd#Փe2AN[<ق,Mnq݌?r94.&Y 8Ҝ.*Xy@R5|֢b5XY%ٶ/6Ξ JRەl;O `FD-qr.2 D}ҒW[ 1\ $>nj?BJR}\ t0XJ֤bYyu ~vF^9mcFPO4VQed#f䪓v/[fH&[ a 8rX2 ߯ =poM[~Y`/cz o1quز!~tN@O,2sUcbkj,5]v =.Zc|乷CIo忣#Y !ppN+ ˮqв V1u##Ў<oZX G,-ר{*.w FіQCtr(zHtBD 4۲`y)sՊY}#:"l" ݘ<=KZHepM k1+>p3kYDހsr(^dktb5х@lD)#i,VpH4{_E,G*i#!Ei=[x>S\tx+}zUDE{<@S`<ţ%/q8Ma걲OB|[+WVr)6n)DF~u v—HQ{eq.i[ ̟4c|>0r<:%Nnnn۹"x(]5ّJgri(Zd9s0?9H?qA9V<,{{:ir#B VPa,xMdh5s֛E8bj+VTi3g t;1Npߨ GnP,ad( ٥0G}ܲ%`'.s0Q[e3*r~2h얮P(U[),pO),!~BW+G|M?|,}!Lx³*XLPM?ӣbvGI,$2ZFי{2>ak‡ 4o5m88e1pOi c\GE5j'#z0O@5閌$6 40}ӰGWP1Z  >[םTz)(RZoVXo?۠$CO NYZ8Ȩtf[YD]cďbYvcܶoSZKΕuRSBbZ0PZ A`V pLSrs5/ߪo~rk?>;O=:wQh| yOѴ"K-ϨKfE4۵{,18a] 8 +:30?l )ގ.5L]B-rL U8S$A AI&S֊Di7;?IKhWD vF TEn7 nuF ƘxtzVdc}#٘Q09rmg.OA bsl-wcxFK>`5 dWK;W+g s܎²IVa'`mWSK^ hYkyE/ ~C qygiܫ&ՐDXV֘ႇOXV=[JR ,; zc 9#z+8Qe{r(,AaЪK)]w_ 5:NE&m$[ί'fhY֒YP'}*Poa1&oŕ7:_cENQ#xƳ2]% )wq/(*|&6iWXk9~3 v֒/hCH+ Iiw0`8_{'K KWEhc }|\0xH?DX}Hu^ݖ TwO»Z)C6=]uDU_P1Ovk\SF2\IBAUG$}<=EvLƸ}@;/Zm i' پ ˗QMŨh5oCƻ*h%OZ4'b{ϒƄ: Xh$Vh}&3!>h`O ꋳ"uD-`Ҹ{s9-P' RvS,6p]7/2 o.}o ךUd[YAnDSdA0 A{|6D0HwO]%@fIW>2ėV{KHZ0f!ՖJ˾x툼{]*<.^8i T2Ls*}afmUp(]=7 T2m}4bxxX/"#W3ƻs?adCQ%Bq\S5>f^gMJ1wLPN;!ZQ c[TFa 1&ڀZ>21FrN IUFnE(Dֿ~PUJ-<Uޭϔ%ɗ;zn"06xNI0.=$ǩCZ(ITM%U J$X`?H+ib':WUًyZvYaB$]ۛ;rW:rnE͓{#ڝ|cBkz9&G@ۀ4wn4W{(@_gţ:Rdmv|)6t^z:*De -eNj_GpAz|Xeږ9a2;S<@<7hAfjDkpYu'(0_hWSR&12L~dƭVϖ p {fjXt~&'v0S /{F. q"8{!2_24ߔY<-fr"ᳱS.2瘁u&'un)#}&RϮWvB'YDc_q Xb a`s{/ꙓw#mh&X_Ѻ ܠ#Sk{$LT6]nwidQxM*i揹";~:ڏ!"s_٘R"}#Yx卐}aŪ4g?'aڳY;kϠ!K,k;l*5bgG<#"TŻ-ZhK:Tztk]o+3je8wuT8z3~+[B+7y^ӎUn=, :.W]١wd$)jB9W4N'׉3/MHuñkݐfEFC 잗?yW:97|NWn䤨dsrs8@3WB_x|g6]&>NE J 'TE]V <5+l?k&֕-9k3RP)z]vT,K@p $PK5NYXA ˰,Pќ>:1L`w>S){}p i&,=),چJD_KJ) 7f|lӝNs4{ cCvPD"ev;ˁĬ.iӆ -0 gze?E hRdrE K\ rFk>`6zP[2$5޶7?]E:߲`]V,*m+wm).0 , B`*S*~{5}yn?o<{}w _{:P^gɏ5킫Z^7O 5,ΛϊA%|4'B]%'so˯<1C⠾1 +`ùHJjlH&a U EՈi"Rcp8.0j 0l0* PP"#+[s~Ǟ||}5bٝ:u뻹+?|6X)ܙ|U{\ߧ vcAYR \HN4I [L+no3H-?d!kB[h_RCK TIDhX8l IAI&S*qa37Xv5cX%fܖO?A}Ѐ'Ey'z=g4GΗVsFBpgڨͳ9iÑE SXS*HhBBY |L=}²Z8l-[y pW@CL2 {b3Kg^ZЕqiռ?IC։\Q=x?LܡGK?AUb4f|TB{,n6U8 _1zFO~ bW4??I O5 -_Y# avZ4DPkfAgjц߮7ְ K & SxM 92qDģ=FӁ -FU.O f#fA7rFD7Bc&³Wa}x\c*T(]c% ,s#OtXp%d u#Y;=iqu$Pڢ _@XϨI^9B"4RmӋυN T&sf*~"Yz\[B($b80ҕI]Dv*@"!N[>pF(\$C@CjXPY=O9VϑKw,i.sKKt˺.712\wExrAb C迠W`y >v4`&]sJɳ'ʗv~d Féq,͠<~%ƿPdfƛ7G3Ee0};N R@">bBIgqOMb; ԹޞY{Oo ˒z-oj8U'h?[J=LDLPo,PݝEb@:P2ڢ{HVPtix`3 Jr.iX9'L}]zE#n"=thqvDxU?ɁpF ץ '._d6sTj]I̶i+(T8 Z+rZm|qve;3<fhXrfH@ת2w`% ۈ3)f+#@7$fFB7! a UGw=+҆ 0U~ﱨ.RWA/ݗ NԃIhsm :)ܷJu9JD|\mDهښaTo4tN=%L@em/FVH!?ə@&sTL+BE5ԮYICTw-jiAKw|hQMc7+iuw5ڴƥ}E-&cPj%UpաE$̱Z2VWk&9%{љğҍӁrHBؗS+W'0 |GOx}F>.mO(;"Ú Xr{Ft+ A9oQѱ+s>q;Kg)74FV\6 )*^vsoY?"/M47 K{e`[GU$aq&HpwvU_gUlΪ`)Yi)\!jywTB˴ v6)rҜMRW1ua8ocLWqZ^|񝮼,E^[4Zؓv%ٹH,)s}o-?+9gĈD \mեC|aTIMb8 E m\b\Mr#.JWϸa`]LuRG 5>J#ci>|#u<7 Oن66] = Ŕ巠+0 ]ST:MQZ)i oXNuG4[8s+ =d G"F؃~tMS-4?. ˭QHцт֫x a]K2zkH, [M-sWJf,35 &;z,06 bX0h2 0L"XʒӽVwC~vs~@ΚS[HsQk˻zx/m$I ZvZ>C(~/Bӝ5@x2s[?(%criѱMH2gH ɱ80Zr "0$^sV??(k͘|~当%p/I o;tuM}8gS"ìګf3&dU4fj$+b~ OAڀˌT#?G_ Dy`xqw s'E.K@!J@G *1 AI&SۛhJLIŹlYT<ޅTS+D4*Khv%&gw\0ߝ('W7PK 'P\%hfI 4Llލ&<,DEg~[ޗN B.0O3i坕un>maW= 3t("MԱx3@Ÿ^y("[k!"@B+qѿ𸌢 ܴ ]@ZVvPmC0 W=gu X2Z|C5)6o<]Z]8=q97/7#}(pQW~p<8| herxq4%dk4WQDD@ѭbzN]KTF0nalJ/eOɉׇh^_Kn>Rvޤx 5yQسPթ@'R㖬q:XD7$A߿@ 8bTS͹ h{9_cm 4m&GE2w z8huYX!o:סxC[^;f$BA2YXzQoRl^ kuvL\z6*F9v'԰sGDFZ7f%IYXiDټ~yOv._Q/xJ*ʎu,tEI`lWzDjGO!}ٿ"V鈾T<0ܟf%]`\rDxdѕYgp} IϬ# x)t2Pz;@字Dd{D>#~R÷GGۣosRH%j(}1Ui˒UX^ɔtѩү9nQr \z+J0 ;Yw5z&TzȤKjzsAR ys&u},.0OVc^ Ñ< ktT1l62W 2C +YeF/>{'#<#QfI # 0ػSϐ\iU}jK+N%h)^=dﶝYt:H Z @+UgQ%}=";SVC" 3ւ|C"<ڶl1òP}1m9SIs~j)1/"kTO3 h\c-ќAӰoV 1?qoFDXJ]rB SVOѪ`D5 FI8,\ƜPcE_O80*`C2:G^1WVtڔ7}ȕͱy r3wIGM732FBϱ/&l=#cUQoPa( <'wK~ =2W%K1nHO=XTسhWhZ'фcU&[ MIg ߨfC˖9Z%TQY2Ґ:pPuj™'CaE#Ys-՘ H ?h%"ٿ^KIWYvUA'X.%D" ѨF<[0f0Tef bbv50(ބ8֣e=֒uǏ r楚J@^Wߚ>ɉ&kFJ#zUZƜ-S1~ǣO Qs_;˜Ksi-cXy敚&>bbP\jŗ-UH`{9 [HX< O6zɗ`+ sǔ?b\O9%0fA ?D9ՐiV#D ^s6lRݹESבb#iZ?_|f5oe{2e͟[l/Jdtgd6Gp}x6ha`u/xC7g*Hl`~GوO K^oY`RJhJ-#n-~@g‰:@N>o2h˯!k=W)в:.% AР4& !d.% Ba7[}xz]:i>g>=y=]f㧲bu(O]2 /CL8?̜/\ˢL_j˥gj&W+Ǧc9s3N@IU:48z@f =5iHPw-7VQ3t 2yNp ,exj Ld} ?zR m_wT iMt1&A˷ɣb ]Pea2HQ^5zۭ%5 &vFSW% 0Sp}̟Y+a~V``""6W9f] MFNXxaBlQvS_ !7buk#DTxӗ;{^ۈϏs[Z-lw$H5cNQ6-ˈ:OBB wRhalS &аUXݛ)ET|h[8OR ES!TOH/]WSw?"OK@"=dVq|Jr<]>Q$Q`=ׅ#/KTSx9A.h;$ؾI{r}eb11*Gx1Q7/r4O Y'3%^ se b#]D4 =*1 0F)wFlG'߾j &4i ]MLB}*DKe3)0;i7 gŲ5W32hqg?NVFTH=K``  ț qjjQ9~mluHsL#pCԕLJA^D{7S9TLya(؁jP 9=#`|!nղW? >\j$xX?pVkpW n.C;6 FBu訅>xbjӫLPhxdwvxc ܏V<)iӲ2ÀaińIBu FՅmF?Rl "h1 Iw>[6,i戱$?GIHʖ? q8B NQ|,V8o02OIQ]鍬J]fQ=eA]R%^|ƵUc<˴NMP֏SĆ<=Y#pX;Ly<5>aLFyv(YR,+pНG|Vɶ& hŵF@"l$W%8V_|Iۼ^ߤ?GDƀB˅ėd @;f PL3p se?AhzÀ^{gUbASYr3:%EPxry QyԠ&ee۠xkYi6$E]?+zS%Jطa!5ogM8fy^!мտӂ0k&o6oq$VU M⨳O^aI~NjN%u= '7J- I6 =7~a(FULYl5a/(S3sԐGD2Tj>ώPHREx#Wyk0+L}A4ۙt'}9;a )6-,R+@Y\dbj0m3!On ( o,VAS>~b"}T^Lf1:/U,ߙA!_Gf}FEna+{?Ȯv* ,T? wM\RBy;.C䣟|hG[ώX;ރua S- !`>8\rRHbǓ0-n}3,вQ TJMx`{nڟ%YCx=<xyNi c]*Nȸ<[U$4b.a:`RVZܥB界K+2t(>Y//sQ9A ~VN,a<ŢG۟<VL+ak (Q]k7ȨgH[Ck!Ɛ2c~uEUdx`cO[ m#Zx1:*K~eܯ$%W{k_J64 3m`}"B"lP|o$%)"h.YO+^: LWQОZ=}AQ\,Ӵ)> vCH9~bk$.@)5\bZo1gjЗWB?X>ySnp/a,*h Y3mji g[i/B&F<9NV%N'а[s#ܳƈwmّa$ΒFϙdA^c=HkO輆N%a6;_LAΕ#,C268&F5\0Q[SZGQ& <:'{I E0S 0q p]R:v"Mg+qE c?/by8֢aP4~j+(”b[T3$$F3cdx::XZrH"&Ո"ն^,;*z^eULo(PQV&$K׀c =Iu|&1Z 4T\_гYǙJ *M[$Z ʙ'oZJu[uMig@CH6Z^sǥ/{Kj@w*5~VO'OG'V[H:ؠe T8,P*< @X07PL"MkYjSʾdOyk igm/{/*]V:b^Nu١j_L,s Q=X|t%HqvЄ_31NF^ AJ^Eӥkk_,y*L)xq҇Èà D`.I:DP=3jBU$SJڈܦ}l$(I.wH@fdiHRE /TY)*20U)9R@>n8Jl?1|#Vو!;dLR 5pҊje߰OL[NGj˙k{)3*]F3N=zV&b2Sݍ?ʁu I/c7`[.Q LVcBX_Wx흥bZȁR8pgp&->ʁ-#TǠ۟KՋx@?hp v/X̵^vHkSVrLE UE ƃؤ#m*IV Qjwj*hZC=[Z"*k7)olڞzKBxhXd~GV>~a"^' ԁ "ZF#'wǜXbAZƖ [=NCF Y%4Yh6IYBr"Zopjc`6wbM~9$EW?': s<ߔ#αQ^uhXu3igj~s\,ϫ#Az7Yہ# 2_\yۀxU nkۋb\tm-i0PӋ;nWRZ;$׾@4w(Y⑖Dk$yW|0%j& &aDj>@ ɳ>Fmi.WFv.hQ$U)ƃy#7W%QN1lh?,rv#zjVc#+$2ʣ>~=*0\106#tE#H4̿-2^IrDJ#V1JNrG jfה٘ɨlT(6G-DqNiTeݕW6րx&Df }8 ,#ij ZZ&}-\[ySË43h RkTOfR eyCԜFo w'B|l\RnOoOaĪ/Lw\d @Vv]ѱ)̓D.{RGtPn$.aB߮ Pj6E*Jct?{@g IiSW&4kD2VfϮ$ A°o.>Wǿs_C'zZ(HeJB?WeL\(<&cj/7\ gR)쓾&"Ranrxi_P Iֱ9E94&^AA_:9xo5óiXw|}>pTKhǴYs`OBoUi ZX-,5!n됋Rs_p_Q$ LKG?M'۠@v'@QwEx Ru1aVIB$Eg я\%kvFE@(K"™ǠOə[tsk~skqס>Ǫ!\Jȗߊ^n{0r] ȿ1`[!ii4.bx#qVgf]7|/yĆ;ȟ~K˾ItjB>XX$_uUŠi_˦5zJ D=>ӭNY*2˒==Bi˦D9Q8*XAC_C5΋uFVs:^߁T3gnҠ N:~HL5Cm1(Hoӵ^ܕӳsMaas_0h|aUђ A<$F߲s~&Z,΋K_@okYzA/3`E4.z>_~%#`Jf|iyQYZZ7L==^Cj4߈Oo,faX&\kQ b&]ٝ3cT>0K|#. 0deĒXiۊm]ztИ51*X;0jń:9Hvik@5( iSYc.I B* 1rp7iF#!o`3؁_8E?'PHj)ok%ifImg*,/ <*Jglt R& "n~R?.@]Xĕ(}ލ C=F|J^Zxlx\S> `ZLeD`2\VkZϽ15<Ձn)9}xb&CŪ!#du_/;Ąc N IT$m#RtL1he%)F[ I}AeŮ#F ^G>GҺ% -N_B*0_ڎ)9I9EcuIb_Gy1웸rC?+:mHo5: Qj# ?Q#bQ8g +_ljиq yy łn& ΈvdJTeQp_[E pƣjz/kUvGɻ],49#.ցHH?S;Q*U(@XXGtP2׸q{QBFH<"@)8Gߞ)_zx9Z 2=eEΫbnlYX_ۄ+68vCB߰7qpµ M),*y.2=b>/3\/Y#hZVVGd8Qw{^]oz|vMMaCSA.J ߑ+[i&G=?wmDH\2{!CNƉE""^fE˨Z,o"uC`X MU 43qțW )`yX7tig+u6z؋}'**'6z~mTq# a,\&t{#~x;Bۇiӏ~R_ 5 />'+&bWDζ> :_38֛ک4$V:Y qx›T J*<$碟O(6Y+Z+hUU|,%e y@sY-Wng8d+xLMPbmvڴϳl/thYJ 2,LJjk-Nh&6K蛲KngM5X(ݱJ[t0W@wzs-*㺔ڭۋn@@06(uT҉۶MƞR1HնO_qimhوKv4o D&=)͜B*|  {eq\GggH&-y鹗$UA259wI*R.qj[Λ%nRa+hDat:1ap?Źf@` ¶K'Cd r,7#O8-Xe~LeADbf}7R"#]Ӹo͉Eq].w*Ϡ?( F#5 (X2![z_ Ȏo噰[ypJ@7_k6$E4BIcT'S^PftӪIbrM_+mǖDymi"M yú>l,dh6gۥzJy~2q^S1Wd݈| DW(75k;S"Z7^As吔I96)Aa>\q77bjfHy_:B?q #ư-+~Z朱al*tf U_X5ayokK(륵eR/7{{I{m '\?""Jy$Əp IzOa/Ѝ{<{*IavQC-D=O:[/m+P{a^즘6Ȫ,l͑f$O_hC*!$AӦ7rW}ACj6CShb Te0ceuJ޽٥:?QM!CϿ^<ҁk72@8IO,|J+doBeW{ln_j )HXدQ&Mĭi\SR0(rL3ſyFڵ)~[ *nB(n8q0_ ;Ld++_hF5R,rTruũsջ1ˮ.ITm Z8޼|5!ȢХr"~^dڧn (CV%§j>&L{̪ xB G_CM|[pƅ ư eR9eJwvOPZ]t*¿ ;/G۝VnoS$#Y*P5AZc'j1.5Vmw"O ZKӒKe &P઩ ܷgEr.5aD# N܋jN£m՚u5 +gͥ||7` k!q]ZbM #L-1698mm%*u3̺GD~ kFe^݌']_qNYƜ9S BCb*3v-BR*O@EGM f0;Po~t-ybrI$(!q&ܵVo>Þ=zDMDa Gf %4CZ)i kd|QoӮxiĪڏ"i]# Ahɑw?6|3E=8N Kw+, H/fؑE]>~2ء& NzXhr30Wfg$qt2-xCPz<ҊObyjc Ѭ-?]ns 2(T9ŘƯ!:,uBK6FS_{44HӺf|Jb4QJUU[ѧ>yk3zFs֧ޤwp "ۑځ;FԃIQhp_O1.-,k>P}qq.ÀKK gB*WI0_+o}f˦6~yߧKFvM<n<R]ᝌ z+?I &o~2Y\9d$u|v>c$^kl@&g{< 9,Mz~MK_pz+8Fc{ AwI&S3sOkߎkd {LVM X}Kx#1砇 Xs)G:*%}"Y棵_ao%͉\H8}۳[1T0nfK#.q+ȱrh/_ UZj^* (~=#DOZ_}S]-"}Ri=w7|HQb4f j m8l!zЦʍ{1 (dx.ֽp re>',W=;>m'OS7MOyȲxœTn!.)'{Sj$N@es)!/:S{䲁]DxPO,XPNjT,"ڮVa-;[L=GmyTJ6C7ߵ[MǙ+P}gTK8Vv9C,UMן/mjLD3Q 5:D@KApJ [6e{@,\+M%Ο亢55ngv2~[&rZz*ML4 | Rmhv'CCoc!i 3DFI$,vp=6Kpܿ~G; J3 n9 #dKҧo=T[޲Q<&!pUvuA77[3ԓrO}_=IvKcvxNe] j&Iߏ }j?Fdɧj90z5|7{W³_o#$Guo} 1yX~bhB푧Q=ff ZE{wU,,NDp YCᷛcezQYi#vS=^,8(-"v _.om̔W,44eG6At 4I=B\ dT84c=K !+P[P j^9PXT>!,jNH%pc~О<"'L$y5?AV %%P:_],7?XG tNZ {<^pmf*$붙mͳ?8Fk +yѧqPS sz@hHi+ld9)Hlx8Y2S1ް&!60ˢpj!Kf$Ǟ9ޕtQ_wkrӕr_6AQ#=_<_!^F(;MvAocs;D kK"iB0֘0(ܨ)J}k4ڤFBDNQ82I]A>iZ14Ե/wINNeV"DE'm؁ gޑ~5Fd/ j#^xNTٓC5:n4HZ=1o^:jO%6$9~G*b [ zEuv}M^fV>Uc2*X@eCw!K"o%x! CXphQ/9!mb=fs7!$Y[E .nˉ TPyp{7 `Op/%[=N dXPTe甉E~M{#Z:Dm>=M 5}S~ T92(V-Q5 BR{1mmzb;y hյ#uѼ4Hj? OAtKFep?PD-wuaQְ_ i-& eG:J"V?]~i Sx*"%?&ʾ)*>v4"W*7QG1N}JzG/YvuQ~`MV1Q'@#z.j8`n;,g9DO̶S09's]a0v`]V}qmckLj)!.9-]_vg`0F&3JlF )!M+7l)Mѐ:;[1[ S9$+=#1szNm2iVoJ4pô)dfMW I0(r?Yֵhe:cr{CU 3 \9XH\1"$ ;0z'~97єY:CuX2sE1YJ,vU3l}"#kV|4TbnH;>m%dlmWm…XE'r#$%4EzKv]9h5Npᢼ!-Fh^B"֠ (~ N>dsFߩwUwiƯн3|"B۔d2Nt/3E D¢8N% X4(0P&! JasܚW77_CN''WyZW'??yEWq*;oMRŮX\Sm:}F%XrϹ|Ëe>o 4bOP>Y!'h7 }xД_Dy@ bto` af\*E zAI&SN/\om-[}ڈCٹlhn ۭqGk;0yMY~Ldh=U׿gEoxG1>RMlh|1e3L +!='2&ƺ~lagQF@X./ B"J@€17As7'bT8zxD?l8)wD/GOʹ~:YbQ;0!sc^NJ+ӍR?Ip)ΦyĒ3n[*. zmȓd%Zk+N>FVp ;VJs*ğo7a RS]]T֌pe8&M:8ws+ BTV֘nL샖ADϚy%64XX+,:Pq)p86>)! zCh&0C5q: ht-1n|lc#CDK[ev6xZd;m]WNkztdzRdO1\R8` A>nif-c͌ TD~,)z!~hላ-+ .q󩾔l^/(k)=ͯcz.~~4N{P2yd4rd+kɾ7lrh;hȠv@}ܴ>,, G evUٷvAXXj*&rhS !YKnNʮܳEӔ>3qF%r>:f؟O}q ݦ x&G'#U$?5+u|h&6hYn¼3uO:AMI6ғQ+N J@$H[K`3.+0P'ky*]#CR !0Wix.2(iM`%6؀Ed>hI l*J;M^VoswX.ҍM}eK :z}h[/f?ekB]9Vr]duh˒}݄~CxIythQl=`8CDX_I uvRW$/zim#Qߪ!_Q i{-T~Jj}@BIjyLoSEE{ pq?6XD2iE&L/r11w2 'Xf ~ul/Bq :vBx0 d~"| !V1ܾR hqE`Ec jm qY`(>tZ]>R\Gg`K7kkKjx N, uMx)kM5N)܄$@-688;oI<言t~aT3*3<سnx_Tѷ D~ 䞯>cڍ~/Lk*S45r.i`kKCyz4,&p@lڽE,6o*H۰]7?7gJODm*i)%cqGϞ2X!-B-qSwޒfO}oh/k.=b/uZ:uܙ |6 S( +o.sԿ>+S,G^̎0c )%n!/DќƂ%2D:ⴛbێlasoG5j@Kz>M V2l Z _غ+a?MZOG k4DQ44_8& 7\e\HjhԷ[g!!$r@ -}Ź eȁtu-GEf2O)~N/U!a"2ŐYz;Ìq7?.TP6 `X( aDF;홾U|~UdI8u{}/j[7v* @2;e>p4jn}o;6oYW՜K4|k]=0`zi@wѹ{=;`?WtmR|Ě8 kp36K@ ~- @P4KJ AI&S p n"t# _3Y+w{GrXQ[ 0VG.wxrs{:7Eaآ߽$u"}1yUό ڱiH()`_CM@>R˦N`N@:nNQwj,Q"~μWGveJzxwy@K$[!au jN:7*c\m.{ o;K `MQM`pVHgq(ࡴ4v"Hә%DS F~ʹ,m(GsG=Ⱥo4xrHNܝ+YdQ Q fȽh}Mi/?նOJv*˳M1ܷ)b0.ZmMoNb^(氯t<F-+ B z!"|LHs$dhuBo;̮[,?. `41<}ܛ'>wom[aLωisk_x`Ʃ]LM Z  9b+dd<!k nWQ"-pn ȴ*ٌڌD̟.Y$'~t&ݎ7gnD>-|LV^ q82)bHd˿j w0@ZlbJcGP," Q|4"-?XG`~0D9L*=32{|~zdYdŹWʳn\cB)fL|+Ӯʓ$L%uֿU}W}6tcU(w onWQܸ֤-gU֏'FFct?93G6|oUm&Un?p?})3=a7SKIWCō1Ou>h5*a i}%dU O.51M'P!~Y>DOM\L/Ozߋ7A#pթW3i[bm#;!syУI\CĴl!RT^F4iuqxPF4t'&UOLZ|ݏylvzi3\a:&9EҠXE6āzOY쪘76]hYNj ҘYnZQ/l)-GکQKYrg`@b-O\ME۠b{ts R7Ow,tSm%e݇3l+NT}/eQSq|Qyynd{aԥxݰ y7]4cZH\5աҍNg݈+8O6[dt\Z_i (>$ :AƵD73k ]a]@REse;E+ϑtvE{S%qq,(s %3u?ju7EWu+)8L:pN.@?O#b[TO!%K^@TNvI%J,wk+i\"]E1C;*9r|ISdEv+ mA٨ nO[Vr|ҏf!\9~S('ERaUe H1SʆʜjLݚ3>Q.ur|L75νFʊVF Q2ܮ13Ml#aflFHRjwO}Oh<9Xw"+<.vV>E\:a 6 | 9|B4.Y!2$yz_C2ث0qʜlW}7[q{&a*yQ#fmj)Vy홥7$wbqh7k*w\Wsqj ^}NOs.q^5|H~%MSI4 6HonIš5M$ΎgS;8,S[:`gG56[=-!%P}~ kݻE5uRyFx[V>y&3Kb]|sS9_fpDNs)F)(׊yjs @$Zy6|鄥SOU@{`bCDBf'yqWQ6ǻ THiLX AI&S;Hiׯ[^O-א?.@ MI{ʺGS[. 5jaM3̤EKC/Nse&x>xܯ7 vk=3,=/#Z5=^{Lmk CJeN04"6 6Hb vvdB#4EڂfYW!kς-*Zx {#cq0F$H$۸&^8 %'۵>6?R_&^!p؇n:Čj<-$5wIdDDԷ/7AffC *_'#wXkV2Nx}%J/iA#'JnXQfgҩ1ޅH5$`RLXFU} @{ęnAG$E}UKJjrc.i?nKv_W !|[ehdt_7ޘCKfˮfokTő61:${.,x_#~`ؼ4UёO\:X~?nP~勻:Y5bS|_xR}y"Ț:+\>Hd !2ѥ*~D}!sfT_8Xsut6ճ9?p0m L;w 2"Vܠ9+U V^7n)gP,3lx&(h$'I6PwUʎu{6ݺ]oR)Z0D\ ̇WoRcnvUʛr2ЍΣ,h+g&`(%JjJ䗸F [V+/>2;}W^ [C`(&!ҦSj(JJ扒?y Wrs>olc#%2zOY,yNmZ<N ;Z*پ dyHho;OCd9(S] ݩǢC nk9Q[!NrM<_iK^9lTEؠfbuA@~9ժoE8@Y}>\J#`WNQ)T$(OV:2 -ַoE]Ore QfA#vCS%,8as"_ C ]y- j=' 󨽷;6C0JuXӇiUbB0U*nAZDo}Bـ'Y])48 $!-Hib S:I&:}*>7r~ߗ2dN-r5W8MZqfCc3;H8T1Z!#P, ^Uf~f'Rƍ-ٶP35$3'r+k:GȂTISajFtTEA5McL>3s;B+ Ysޟ8)j]&;X1'H3CeJ7mo a=suŚN>m=PDzazJVh8ۋsAcLR+'Sнxe<Ԙ0Z 0 DDF D][uln]_O(-VB'w(湥fG+z./qcÞLj&a;#) i:+ߋtU/aO8&al@@||Z=>26'3ᙬ+DGJF@kPD" :PJ X`4A1(DF!Fkl!S$ݮnRn<}>_Wuo}{݆m&G\8w3]_2V\ ;^Dk>/`aWVR֜ 0/3삝ݠAfJ;^`s{@hbϬT4<1% 8 AI&S3d-x^m#kqܖ-[_RVj(_#I !rqX-hZג6<#ZPя*Og>>g}Jnتaœ.})lyS~ǜv\=O΁r-\RwBS10j)m'@LIr kW4Ҡ=` =(˛2ђӤz 5PݵASִ}3b[{bO_&2qy^`d j/o6Hbv3!N W>uzDlֺ>*P5{ܛGDn5~>jej3?b(DwW\ Lv"a,qs*g1k7j(2tGI$/HuX791QB#U˝2?͑}g=:LR猍ft?E4mYa7|C9B*~ؕ" h:ɤ_wnwqѡQI";H0Ո*?%E=B>6S]6Qu]qh a]gwL nQUl;_.@jIH~ 5u)jU9 ))bnlr5"N-2qkR4!B#>5&J՞ar~=@ 3YHX@zEQ'?nr_B qSڣnNϱCAG%* Fi$c>$7fC[Q YkLp6,Fd_;^9Dc`Tf;u2,ԥly`NZL6+|Aj4$A{c6tQ鎴[j a2UG|z{U.IJ݌)^t$RΌJU*@V-T@4?9|Gb wuhG\L|NI}6N҂ϷRю޲LƌĻ$O.='M4iBM@#b]KQ#o?[a+gMT$j Qðe{gQyCPp R5Î۞GDgslj*SJ/pj2j_5S8:uN jtZ#.'(@uF%$n7"Z"$B sr׈mR}l9;?~ k>pOTНI`qT"YG>RUո .Z<)"L 9K EpBV#"1phٚ=&>ʴj¤GGN [naF)򢝾$0k9&2Szj MmdYk`"0f5~~V;$nϏߜQ?N;>Aʋf/ރ 5_ q:"̈#$ţ|)ˤתyn3*rmsSu P/)SMlS \УUW)/\4nB쓑l@IJ"$ʶ\{Ş%wN\dv PPCFLEN&wv6R@DiIWĻNf&%yZl׷Pn}/%2NwcyS&DKvlMzB.W:$%/ּ+?E29Svf|#h[7<8:E4`<9y.kV!N]dzA#[ Fu~m0{XK-tQxb`dR>r q"3& TäAO{3~LïnxO^ޒ9%WoB|jsZHIY ~$([FQfUkS^ȌJZ cƊuR7MJ&I44A䴷J<`;6T5bN:khn0/FjPsJts~mp@Jܑ̚ r 8M[Ϊz]alf;e.toKg!v!xO+="wmE53F(P$(0* \* !1 m׿iJU_2%dM]oͲjtg},xR4>'7^} heW8r}NNnK;Ho(!QNG < ){xS3p_7y,2qc@k|<ޜs^VEg撙w +G~!#׆aSH˔[l̰+O- P,C'(gX2QP. 8]e(M+P ^l;$ۥOSC|7qEW֩7/bM^F125Pͣ*aˀdJ?A8Zq)=$Uzy?PC)9/Ȟ"}V lLw^Y`ZW! 6^@,ӀOKUU<<|-A.1DP1SÆtCHEVK$CtvIm BqtBߋqU7%C=eEưZHp0Ԙ^A5֒VGzP`yeI.'pBy|+xh/Ρ9G~$ߠ dCF@e^ύ/M`7x~X?fXU6vx^ i_X+Qu"Ikt]RS@pȗb6.ffmΆR,}9$kYDky$+^ r}vsm*|ϱkvVV t\BxF< 3ӝ'.g7wZ [<7x+>Sg p;Crzro))yV JMu6^~|}&,C;?pupdO1$k%,Bɀ; ̀4;AM3I8yTM.=q"5/ :89MΏ+I:Gw'EBSU; ft Զ/{ Y ]Al4(,O-qX*޹0֪$Hnu!F4yH~IΥ^f=c]b7FG%P5E;>.EQrױ WHūx?bK铴I1eskUIJa|(1RlN`[Ք]s 58Ĩl5k>19ɚLC CYLaXEyT6) b Q,;A{WOZ mob#~Nu 0pA\i0!rZ5eI, L榸A-fB[7?eq:u̡bOd>K8 猫* ZLK}\ߟtV95ү~ 7WojruU?avn&ӱJEmΒՊ䭓&BSۣ"#]QnDwH!mH|=F6ByxPG"J.ѻ|H<#rLXoPPmT&[248.e l=e @?\/)%BDF~zMZò̅@ _5&G>Ԕ_|\#}ǟ&IH-03#t[aRմszIu pŔg[xUtud$W-`j6.O(Ril*pN|=LZbpNqT<|'7t51iWךTݔ<>R_ͥ;a8H>6KsvːCgb?} 9~.~yf6R$ ܄ȁҽC*BE\lCsXM#`$4*2Ht1;Crj{V7FBS  (a%8' asba3%gwf}HdErة[90{Q}_V,YG |W20& 0 PJ!Lљf>11S/_Ӯ߶/805;(WZ.>&ytwRm{OlbU7W=4svi>@-ӕTڧЖTW^ÎC>p`% (m K1pp,H Aa) B#sLs.w8K7'6L|͘{v޿$)QL9uEUQCG6 &ok5cտ-*XFFmٱRN6:ma/ _Hg*c&BiX%q/G{V]wċd=A!cJ[=eI/O9A"Ltd&7O d\|00z>-WK*_ Skw0 Y==o'Fh$ \]= BȈ&ȡj8ʙʏ2/xiPN]̕_- QwxDO%px~NG!AC½k+u%Ed<9 YR!ޱwG]&"Z51S;xϋѕإ| \5=fV0 H=Q3ǡ-$I1? PO6T{19T=yG/QZ[v ׼J] FEgHJÏ#׻ܼB's6&hH<ͅc(j@7tSfm'l1zg+Qx=Z[X L)޷=0 &QWiyuu<H[nu _cqaRN;ZA^  w])l v Hn!;:V}P[ވPaH+Iru_)*h|Jep32<5͹cUmJH&ʪCTdL',yAluBxAc!妴[߆mJG\5&+^ٷ!4zA(nM~>LS @=% k3U5 6YmgT}n®ߌTߍs=zf1"Ĥ͗Z_o$A{OH4wm3Xu?ƐE:{GBH*Z:GلV ۽q9!o9 3$~.\H@@{0,j(R!$ڀS A?I&S$+b ;F$]T]·gw28S=%&"Z'̅G[y.~ya[d9JrD &4f|8 IU[6ﵪЃH-IDq˩ӌ˪ijd\\eۡԝsXZ)s^n$—xwj"K+h' MQ2KvZ۫V yEij"6"fʔq~Isy4#E1W?liMp=D&Kv-jdAɢAρv/vD*pS,wxK藧:7qb-e ]mǸG^7!uDj)m Ƀ} kƴ$~u-$ɢ_4X{AڳfazZ??6{TǺ~W\k5@l=f+"/Ito&՜^2U'z'h??֌kA] vM`*>E iʠNw.Hfq\rz#5k0UJ1p,`f9e+UwxjZRR謡y/X-㯼n"@%`?o#sl 1HEa"׎J $w&fHw ~fk! V!\3q=eSk8fq< Ź*׎9怵jSi /e5㋀Q_VEĔ ($Dˏh|b`/MlԎ,tKA $=?("EUR2u FGi ae3쓲5ɎX>Ԟ4w;}fL` uG7dH F[CT., 2gnWO#TUg <(y7K%`v HH˸h(Q2HM<͑R2QݗPH1?q1O,%B>i2`w9"szRDz%+Z|?5\̨-:k_98PUsxN#˹hԀzļ_Oji (䲃\ {>1"Lxg{}׃5i3h‘' T)?lpsD9,fkm$TLk $$yOAdU׈; #ֻbb``(9`v޺S:qB@Ea"xR4(5?nE^ALv*z<,# (%.^#]s/ m1!x(iDGohB 7dHg \় 9"oIpZuE".Y1Әs tsd5G<U LJSJ;Ota d\ D)KP KǢF%?_Kȯ26j 087tmɖf\ G4fԘ(CRąxNΓoA=a4 ڼ,;D کzc vߘ y+xŅQ]~Rxǝ+b=h2g^z6)lb7٥}$\c7"}reE !  ׶[D ifHJwhHuz@4Rp5Qe|.hJKBS),q}* *Q`TjH2|66٠y%i"#'5C$OLY!euQ o3VeYA_tu\>c'`+\@opIW̮{`k#MID6t AS6:3d\oZA*]͗0$t W(`䄒9 /I:s:8f5cWqyP#4cpJeʋ/˄N~+@8VB`FyKWF6g5ˉת.wwdkb[KYwmO͙$|k\H>,; \>^s!f@2r?e^ZhVdqLt,mMFF ;ꛥbC@šXQv5͍{~Bo2e1fru|Zʌjs3Np#H+qtK).Q6,n!eà?H# ;|eʙ`e?$Wdۭ!$JIχJ]wt(cU: =F*|'۱thY##ɦOb@!gS.I}&f٘Ͼ#b赣sy"\8ҟn.$uduK|ɿo.d7/^+tSxzܻ9~i)j=mGLB^MNOn?Q'W/gO{u?)Qٖ^ϟFTtka<$]U{ۀ4"Lva)x|V<+bXx~h w%8̔@wL22,  a`h,( ""0Īfr3=iw߰gP?'#*W;_e }UvF.N `jP UsЈs·JhM*9(YYd L>2u NmqP1LUkl Ū,yA_i++j,G3uT ~<>LJUGjЈ/ ޽7$u_C#@[ޮNKƊ"G3;vbf;Ac fޖxms"Q8.Ua6/.+/<[%s*inqXц3@A;Hdu''}:jH[dnpX>qVC"NP5,ˠe}UT`'` /k?_8咁c04um%|iVNl$>*˶&\R{_f=w-Peڔkfꛌm3[{{GiQ ?`>]߳c}WU͌Zv kaE9oԦLwDYܶ j0LfE(PԜeT#rAhQzd!8!?U4w?FW]z-LM=hhɾb`(f2;y9T: k\!&fE2}FEW_e+ HP9ňA"]WZu݅dKa{-5 N rGdնOIx@?B_X7kؔ/c9^{V2Ŵ^IoI&9P- $@9W8Ň~ n.C  "fl,F nЖbƳ3 u\{}e @uhyfl|O=*<0HWPϦYq=EvL$̩+G›vb 1CE!drErCI loDvG,!=%|aU~]:B/hex QuԪ/QU(C^\mϖ E8drF97Ve\QjS5p o =$bE8=0>c 5)Fp'* ;Ẉ_\Ώv7MiEsI+'3OިI$g@>N')S}$'ߒvZ+6\{Z#Kw.MO@slzZ 4(:&CɖxW4+il(\r܃ްiA!R Vl"0[5;/4wͿ.06 X`T pL(% BbD& Ͻyg^jݯwҹW9U֎vv?˿h]QT24$hRΆl&O{|YvmΪz|#7 uN&<ԛ62~CۺcIh,;,ó2X?C]A@N>22NPoO"Mrf Qt;O :mh-;N[/iTGi'$jY J<rO bJء347Gv6lA:%IhJ>\%8Z&rW/սrg} lfg ٜ͇ьxC>}T?6hI. z ǕdBcȏ,JǿE>+a\m>t^PV(̏KO2ę՚?ЌQXU ydӠv.ScWy[ #Њwfȑ͸grj3N;2{&P5o8|p]dvE~d{=8u]bӍ*dT]VY|% _y"ěGyfeB<;^eaÒG=Ɣ{.Vk.eT^$tE%nwqBXp/]uy 4xx^ggbɠUoB&.c+~$;j`9WR.R4ꃩ%2nSl"=.UGыX\ KG "/1q' co]XٻbN( .9< v{Vgd0_σZJSx] RǛd K.+ Ҧ ?< 13!7k꣆rjWq34R'V+EhkYn7q1y6 qf0UEy{L⭌$:845ET0ͪB(Z T+\ܪO.%V,u> iYN/; @AwnjxP#H[?Q-- Q5kFSe+6ҳ>3¿Ⱦ3וCL=o\nU e@YA"VK9f[R gi9c<Ʃ J_J0x+o2d{d,bu>K Zz$Dq..&TA JDX<@ AaI&So*cy"GUsHnۥ`2hRazÊ]Ll˶:K^p4ERч&s(NCj'Jp g٠ VR`|Y8}5.ٽGs&YGhѓ@r {8@!#C|RG-.6-̺D`5]-cxUup lq{uHxӚ5Dq АA79ކNf7m1wS@.Sj[]04D뙝ʃ[=cj_?s,a Ps<  ٹ&M$A`}DՇ ɯ{K_Y*!y[ m%  /Po+!r.olͥݖmJZ'*N7@q#u G/JZc`gW6'@)F4ެFl[;wY'`lq mlT:!tнW^YBwsq[Ylc\>ml)uYƹ|+1 k{֦NK4{!OUv"ʏȆ3n%n}^T<&hOJ24z(SqPIbgU40#qDn(Ʀ}dMGYR)'wn0jⳮލjSfN/UO8*KSL85b鬪YpHį[C 3Y#L.`Bg>gA+LrHKܦcY`ul#!\m!.Da#J ,v(y붟WtW?E~/1!+j^l. u1F93E&<j`Zi ZY!3jl6⮩M|84>,x舊MRUd)[ ؏ėOP#dd oLn^]?2T`W8nj1z ,5%! D$Y)odٺ'Cs |F'h RPbt3M9zMF.pvD.z5#ǞHv qTGKgjd'OS Eݒjo7e›mgAV2 s<~`X%Jі8oʥ9XJI%/Ckr{SYeBUNg'c7;y;ʼnii۬щd MYm`EZ<$F^j8e+u=8ZCux]uŬՏDLNYVΑ1A[g|}%efL'xUa!^6V $`_2@5X6&rG[[Cm. 5v3lc~Yg3 Gd^&d;q!epNBA'%$Z"P>T0J hL B`, A1T"3^UW[|c~w/yZ>]-y> ׏?d11ɼ  ~31Rjۖ0YyO΅|<+;֬ :j|3qN m'p$ׅ)q?GCR`88,Q4:=m.nZup(8Q.[Ĕtj-J芽2EOb| &{ 4z=t疛fUƦ&78~4DEįu5:|™9;(i&8Me@im j̶h9"T?`cw^x0QzB|"V߂ 0@֨848 AI&So;I s{2VZ>U 9> 0v]Eqcy .6p)p f!htj,&pX7\$id|#C>;݉*Fyg3,k)OmI=z03Pzv:F1h/,\3Ȃ"pL\}!V4q̞N^ &pQeh=2 W>4p m9M6/Ѭ!١<<yt rzEZC*S~ӰayIIUrx-V?+@n, IWy:!iۢ?}ulijID俓Oh=x[ YkygkؙQ%m#}@懲t%|3! 3b)>\;=6߮XYycp6<}nSW FVeo H $ v`𚅘'=hz}%sFk#M~(M l@3Wm%#FRhB #_f2AK?mY8ݲ~`Hflh_X{.xiWSE~T H_%^}Vw<ÈSC5&ݹk# Ҟ~GqUA27f2^ _m41Vafc'%,Q [W3m +6zFGĨsQpw:=0SP< O)- Pvl 6tp-nӄڄ;R:?r.E{MveJ:5ziSe x9 78D&+`^I\tCT}ϔH"&ڽV_ZB|7yMa<)* &BWʒJf˸cU٣# ϯZ =Zyy_+iAڿG#/X_yzG2'}Wc]N443+rqWHǮ4f;WzKYEM > Y@:H"Ivsq66>Rg@!-mER(y3d il,ͣO *r'%3{Ye1YQvQ"yƑnEL.lPz& )XzU2}%Y4x `p`2{&Ӫ[>1\ @<}kI7SB3F2ycPfCB I1 B `v|+gzX߰T.1,}AZȣhӜJI\bK|g4e'Hj;ڙTeTx Be)h1ёti= .\$J.1Z`bK,W8`<`>ǿpyG5YF}>CюGE50Eg#2f1P?ai}Y-vFͲ'G rH6аizǚTŤt']֔Jp?29wz™&&6O=yOL "/ n9q|H77YI iwގX?mQbjEUxZ61{Eآ5?)1O|0456͔S7t5jC[3Z)ٌKF&3%#c\(^#ì-!C%~sCD0OeOe2~myL+ɑ=ќvM#Z$d'$t%]F~'17J2GQ1^M)p-&+lNVID }ORqkQe|>?!=6FRz{DGUY/ aSFdAeXĽ4uT+É*Dv|F.g9 [m0Id"ETI 8+Ls9.#n صO]/W8)mK)皂(jI #(-M"A洱k2T3`^hy 3hѩ`(,VqcA) ȟW{If2c__8*3OgY?9R|PӚʁJYJ5WJa+i_:@m4E[o8H!:7`3#+d Eޗ w/`}I nu#`֩w ] ^Tl@fR'' Ra~хB #MM>z|m$/yNp٘yg>YWO؃W#NIȦ΍*e_ʱ¶#w{YVضfBP*@t^\粍_ޢe(޷n)A mxq6 bK's)eg4gM OCهEđьg-㒒^3jAJךG/0ҷ7-JU2g7o<0!ֈ#[nSMrML0ic?魄,5-[\}./SNZ|F9,S;\N3J3췖YO;9e->I/I5-:4dDDQy?PQWFu(:Wk+o41S_޻6L>yT5doz?F5ړMIuM>; , :㡆 O鋚-H=Nkxc&|'렭Cܘ8\AI&S_TXCB ֜OQcۋQ%Їﴡ6<>F6N"n,~zTCF?m,Ӫ<^G6 4Y_i}_{~]C~:$Ck_\z;BڡxHY(o!3z4^)nX[SE_n正𜜕\;l to ?0i3m';(jb9(>O.*:^Dg GM'r둽XWgOL\{T;%Jvt/(mWxOqI {ȸZKeYQɰ\8@iH0W|0m]UJ.IV"nL"cF"/ͨ0ՅI~0%"̈uW !'$-[K"!a?S Eb-( a[.[P%L9?Af¯3 s iQ_hLҁP=X m5g”R bCdw"$vI.]pMa-C/N G0L4e aߍ}A/*7S2N?NPWH#=F "XH;j# l$ǎ^j/[':L@zBE6 RLm|#F)PZtK$0RDžmf'n Թ> /qmmV;>1n~ژ?'U(uD)(u'!`w?9O^6EfHH |pY,[蟳n <*Q}ƕҞQV;#~LÌ߬VߞaED򪡾I Bu NlI#bpXl/n,̍5, jD+'7>8!#EFfş^Ϙ\ Z?5:VNkk텱KU㌗qjKSfwG?ȈpEPH0] 7SpKZP1FX$oc/^a9Zƀ`QxOtTDf_{oD4AQ+kQV\@Adg tx0 2i͓4XYewߙ+쫶ןnGl!,"+R3o Ť'X>ŵjzj*}q65-v_Dv^ksr97wϧeaUn X_/WT 6+jOfc3TsQ'6i[C+ [ߥK! $o< x`ܸȖmv>uUɻǩ#xRWfakCWXŸ#c ݈NOKMp>kW鷸0]BQ]2^ o.搾A?' ksLƞ%nNV>}xg~>>C5 ܭ>]xqoO<Ǐ"ෆ:RB.?GjwTy?0Ys9fԃHŽc_j̚5$Z`~yu3?nۈj;')1NÕ ؂#{]~A6ܵĠq~MbC&oY"G-ɚ'Mvچ ;'PDڷeϔX_ߵI7 ]QQ/]<3Cs-";]=Y&Ox;$iZo½BF2NѴ9kVמ+rTn>mn?ޅʁMR8ǿ,dۤBؕliqJIHT񐖚Pz7ƝO["0@k/F)PTL(>3@s_)r.ğņ?rOi=Jϩ{Uz4} HÇؘ$q^xu`YBTA(S~/??g㡓8V#a+*E  QoOYXbLnMA8m\ZɾGT(HOi˫wa+Es!&n61%<ڑJ^Ĥ(N~_ƥ{~xp./=a H:sriRAW)רmtkFD ⑓q{0S+>A4v٭h5 #}b]B|[zaKD$>5 ܅6BSO5-V$GUmgokFRa@ Z[?6̽[ Ձvr=1/$NdslpmJ9 Aneߨ<ZeSz bb'Tw-sҥ},*u#G bXsYݩI6Mg_o 0xhGMtvP"?SAv^z _`t[fqaَ)P"&Y욛ˤ_3o}v^bJ>?‰j|d:ۛU]ecTB#7^*[ELLOͫ;7ke?_O|b WHbY k<,og>m [lm M#$M,b, .LP800*A`4( p\$ ¡1L"#\kƫ}6oVѽO(gNԟ[z] PTTgx}\?XoT__f5Fһ\Vs*3tW~Wg& 9Tyyp.rDM^[2@%l `jWW:SEp\@>vtcɩz>n0+<˳}d?R@znh9HNIQ u57vM^P b,@9SD?2byZ ^1xzW=|S/"h}lz=ʛf߅ R<|EgN2qX_ݥb!JFJ㎶߬J\gՇuHI2U`wB3DꆶNܶ%#uToſ藡2Y(PA[R:*~b qT]d/FǗRjzGifOUO"\1^ح{8BM'IaTT jU9rTAZ{7Xp(ǚeiO )ٹQJiV=o`+z;HɜQfa3kIcOiZ%ӃUM:EbƉy3]fЦK+$Ƙܺɷx>.~IC.* -j m-H~Q:88ӈ}>%u' UC3MY4Vy/f;]H`*2ߵ^h: pO(\ ]ruPl]{*9< hFv *x1Gsb/=fXG&V3VorD Ysz0sNH+_6j̲ E7=aN`Q`*[ p^6_N49/<˫TDs疋 -0-$e׀mƢ Oe.VNNuc;XrkޯOq t#TVrq)-%˚%o=[ħvPdH3JyڡX&GΧQOޝ1O:tU9?T2ME6wt|፭vlkoSAW \oaURb측_  hX1xMܲ1lJ+$5L-YN > 6CA`6,D?"r9$΀ܽ [Qi% e}ņ[G7igNԸ[CNUM^ޫU4O8΄tkPtr vs'l&jh4O\ͪi]QF Rŵ'4}eP\Q䩓.eٙ{Ty&m b;uVm ,Xi͑_e@p܌"/-I`5$:*O)1sȄ"0aԃl<_Ko1(o, 9-G0&{"4l?;YGWf$ݻXE>RDrQ.423AJҢL^n%3O-yFI{hQ}3d Ho?9qڻ#BU2taF'Ine]kt7+H\//UC;_,NjS%b:$;{y,CfxB=DY ,q=Gx*7EjdWd95U"32'H#R 1e`$JAyC ^fW@<߸wST'`6sW>/D Z"Ae8Lo!ھn;j0;2=b䞳տ#N8;ӐW/DzO+]>\saaۻn'6b gy6&AnNRr5~bRLz>E}zbSx⁉a8]FbЊцnIE%I@sv:3cةGj'bp6peJNtmQx[f" C*{Z9yYp;i#E slw>TgA;t )&dVƸп=9A&Vb$6://[ڗ8ucRܗE %,3ۤԘ˦687k?zHw\!{3J~=Ya"K]zDP4t}f_'C/tM5L:([{]ﺑ7vczFrn:W%W)%0*P EыR9b58-r^ zVc%h)8dRwIw"lcۚJ\`a0LSiuNb8 Io[ȪVb*yGK3v52w9ta/#?UBp塩C `JQ/Bn'wc2RZqIw$y_h;hrFmm>1Hٞ-5ѝJǏAf ½eTf|Ӡ3p'a{~mR#K'xsu6=ò*p_ÁD) Ghqop0g*F D̼5 Crڍ'ZmQE&,Xv$&rӕٹ5n 8ޣ% q< !%7ҮdϨo.9ۍҘPc97LI3 Ї[ʄ4>(¢ ukasv2S7.Dփr67:d.+S9p": $!eKAZ)A0dgcX94b<^AM1{mn/ Ѣ-BA?R$Q&":zoBm\6\DB (}U8]^*nxTsưlC/Z/Hԇ/^:2נ$:Ay:o½۴9(0ш@i4pD5PAJ ~}"qKI&s EX f??^gs`yx tcRY୾[swm@|@(π"aފ,݂= 5Nb8VWkLv):)6je;]v9e%N Nn ?w;zŠN]}kӋ 2/$F|0j'xY9f[lgrKDA!8U3 !61QY]-:qke`,WfcJ ~Ux=\>\HIN\ZvyD!UoM-kiD]>3TksA|y@"q8!oSSp\j+Z~RRGs4SJ2$xlZZSe_BNLu0(^=d (<u @c tjSbJc:31ť6`'. &/0UrA Nci 2_bnBDm! # I!z\1!s [̧mu7=>pF_zbJIPc3zOh8Y5!cxMc8& +'."v>aUU]Z{CpyF.Ǡnߊ c| ^(i(BWjWJ6PJbPT( B2 .zy:YZ!O~h~~ ||1"z' i.NE_iG>3R;L٦?Ш 54uquYxMIz<C#0R6~xf(eJ*O~h$C91)ak%U㿉E#DØsTx@pܗG&#i/'I(K; \l|E=edJOayj!rNk^f lqe@»bYXC KPkg\Xߴ"&+w>n8I 5Q̃xa!FZ\1pn;dKӕqm .{ڢ#Q+2 #}EZ35k >?q!ar{@3Y{VB&veܸH y/gdRS&FǃxU[ B:[VlmE,7o34$:-Ǘ6 x_BuS2z!f޳8f[D6F_hZ>~ 1El˦ZG-O?ۊWf~1 vr]r ~/N_i '{rIETn eW凛s+,ՠhyi+1ºu"e3vokD0Yx=.dYrln1_ZA20=[۹_#n7Bb\2TX*u5HeF v;muGwEBJuڢJCTHY;{NN 3DEp.d0- &+X+oǑ.OZIk_1PӔ RPX<[ )hyS~3`˵*E4vp0GR5$!8- x6Qn?r&xwA/=|~@>g~=7u?ll+V^,NQ8[kbyN-R}יnYQM.:=CK[,q.Hǭ9IVOmxu[b62l 4fSuMƯ=o_ vc_ၪh^e.Lb 'd D PfvBsSoI ޷iU| a˘[EB~[ݟ/S4@i%NvѨnAf+GOSˎiUFCֿy8kJݱ;8Le9-4J_C0LG|0_H\{"Px+ZUIjPS?Tdzac]Ԍe;221.9yf Va]-썘>Eqnz.jjmpT`1oB9Ml?%<crcx(\)־`d!i)Nīmog0@RL %YMq48rxBIПuÌI+6"V+7|ڪs.:CDV@n7!U%q$GALrjdJ ߮(N:z!Yh(Q PZ {yVMޟ75'"!eћ(k/FYD(uP('Z 4f ̬/O+!B2UG!0 G5= r_R~'~qΙ-.s4 uB2NΚ&ڛ#>k1^ %D_ï伧5 >ƙ2{x.=wFsK6>(q)T-kDoJE`yIek07<ʭMn-*<`/! >wZz@fAI&S?Pe<'6}ґ?.--$.4,sw[])muw5DGUM9 u%x;sP!"Uqyl0*VU2^L ̹R&{DM< $ˬ4u7v9'c`d\$&U%+pTx #c5{4!<!h|>VQ6onŸ@S.?\M,Lw:5T HB4 :zP ]%ኊ54B}$Pyl<.f)+Txu(k>>2;,f+ac5 yHV[T>P[;Ekߞo^\NȮ1|U(n5 ,=]l_8N *2gj P bqX*sԳ{dy3מi'[Zb1o dž q `bK.WgAL>ܹ$ٜ217+hzaxK$$FtosLZRd&nO UIqIA_>8> n1d}I3>D`@pͰ `rQCmv ,r̔ElGI8AO0 Pf㧍qw4Ԗ}1u,%44$Qew4^ ᛵ3T)Oʾ *,h,l Hs{ke g\UAfjQTtI9~5 #{FL%aFBYc'.ȓgᱠvCËr VT5~ܠ.Sq:`kd~QpbIpq<לty UPi8RDCLy~DdN&oֱch!NL&| cAШ ۋ8>PnM'l!i%~忛F|dHxv ϙԇEX 1 rеӊ~/+n?lxuƿ!JK_70ϯ̀3s&- ͖eqnU:mUqXfZA׋le!Wk+w݅rN< B8I\eX'Ha"w廤ј _'ԧہ C+;14q ^W.Z2X@R@FI`͒V4CJtm\*gy%l|G<&oeHXh$"uѓ׃cp(B iXsI1dQg+\c_H4!X/T sa+'kTjZ]?uDZMW;Op?7KEl[ŔGM|c^(hツd= _>$`ULϔH|YkD|GOrQ6.OQ?]/&dKCh`y<c[om}ebL ]x(j^79yC/!w]tuF(YU)]==Ws$9ׇ1aP~7^fg5 5P4O]!o5 0WwWQrHqo =-=e*-hD-&' y&@p$QJ <]K6MA6iE?N&&@Vq 9̾$"Λ+&x(ʷ8MKI삕2&MJ`ȫto): = 0:vW̺&t?EAmQfAYK~&^ӣ4[k$4褷dgXoY3 CB!"qG$H r%>NOx9T ĶBxC3'&\F6e7ev.ȽO.,>Z8a)e|EzYI1ԂQCdxxЊU#'eP4N[OWT/Ebc93`E˔l?`xE'yM$<+oKP/ӏҏrc>Q} er\E9j;;M8F5[tpװ0gGns |MwVZs܃>.Qӕ>M:dWRo0\bִ8Tu4^| l]m=pd5Krktdش󳄸ɗЯFXٙ(xu&@*CXe 659'7 DAtd /C""UmAtpb ;+FV2Ftٲs gu{x#[Q+ߑӀ # 2e7{VMO)ȇ\&x&".fVJKM4e}~a.*l<ӥ8)`Ejh1ǐ7-(]74R.J6$/r3hhǪ %|roCVeeDfGZXlͻaA(~mXz{ |uVz`wyF!(!eel SwOq)9`~:s?oOLTJA@ w )ddV3h0syՒLoaIP 3ᕿQ* gsj3.[t3Z{y&ŔV1@[~̍ TsIauPrgZ\mHvK"?Sq{%YV.\|ѬGyԮU @샮 ;[_x]g)Z 4{_ <MeY6e)U8_V~zF6  |U0:jl)|;wٓx(|LVeZVqGifm%qxp[j<poӟՀp 45m1zWXrx|vߌ_~Qt(YUfhrIn$N64cm=7Ha# #̚c}Idt ȧwG/&OIhk#8aܴ򚰇`y}X'nmc\WSf8b,z Ё1 ɔ8VT<|-)O'E,c瞼(?2mkJKd),(;xaIo<їEM k=g'6^ .8BI Xi ,p5VoZ}=2iʲF+wg&x>=Klh@O anbWJ2fq D"1QHqx|r}aLG-6n2 p 6lOJz ѱ2"$>:6.B?G_Yk;i9.$[V (Q#f|kQG>d:~a˕|:,ӄw^S2/5R|U nӂV_WfI g1qLjVR?'ZRTq~Y0Bi9C}Q9aN,W?l;éiN3*uMڪIQi+ZϢM:٦3ǞxNXba]U't(Y>CT=P>kkijjm*8Y5I )&Z;>[-Ft)Ib&)A_5}]cZwڜ|܇Kfӷ)3O7ΪzۺuE<(gUcaVA3́4v b`4 \* BbPD&3x&^_德ߚAR>M N`ҳ~x$Sw$RW&G[GsUL]Q+%47Heu?vFd_@# s݌|+Ưy#9iߨmf"q/<kKL0&2 J#]0t&`T pL$ !0"gƫʽ{__U7;|QOПg~={)f>Z2[PUU_VDGX5[)|,OA8l|'q oWGԪmV91R~$y; ϸ& 5 T B,a9l'jEtaB\b1-h~l!=Bn *w(nڼm.#r>+N$g)^9BߚBTg+F0Z?y{uղ?w窧 r2 $Oj4t9*@C}✷dA_Ue cE[9p QeI˨TcUES?=^P$uӧ}^K1{kx̺-Fjt 4A"c'810=F[A7燃W$>\I \wNbb'(Bw raU':'ɆΨV{bLS{ >{obvi}6RFL tJ*J/{@MK40zΓiuz9 j^~1k{ތ%3|x"leTQ< nv1}p *O4&(U{Am KV| IwnU7ێ*"HΪbja&7Rg(S}RT͕.4dX`.Ŋ'02QR2Q/gʴUyׅ/׿w{*L7<hg#3಑KGZ,,n6~|{r ~'(83$Kd\]D>-ө09̚ & x{[$a  9{vŢHҽʰFSpO2Z4EE$\f˝s `@YHGs$./LXs^ɶ=c!"萼HE)>J<[{0ұ7(JvX׬ufj$>%YkscbHE B,5yƹϷ'7b{X¤+D[&ϲTa(ӡn bCiS [cDaʀx,P+h0>B&93Pؤ|{) SbrL5<>{Nnkȣ*0* b0 pD"0>3׉;랒w߶xo7O fQu4/_aHCJطxϹcBN->O+܈4rŎ;5T~9DGmOv[;fvj7=k&0k)TJg>(!Gyg@T P4w4 A)I&S3܋|wo|G&󥇳xIDFMN$_9%PDl&a:a( ',UEαǺMO:})9Nv574QYb6hw14o1hhͭ0ѫCcX-<)>yZ*1&Qe>#뼙NJgfXe)mNwYW<+Ѽ>Y T|sEI))_MUڃ(I;  A5J'$zGYSq[`'W` q*FΆ`tqsېs `gg B_@k:*V,S'_ʓ71$%JE(z;j>x_HZrfQmVN}q9q"3#[䴢7"oTYu8U@xHX$؍!Ը4?XY phQazIw3h,|:5S51\CLwx3§'xU(kHU݁s-aTm)T<AFѻH1+U򾫊.-a/o#5Coe\4՚WG)&Vyișъg) tt iZO0/*'(r+$XcS. 杇\bd:[ܮ= ؅AVPwVӯLwYXk.ћؖN7x PCJ> v"eF>/v89  R>}⧌b+pPè=ĐFn:e\oU5z Xn?i;''uXWIpU-*& ϝ ;0YB>k|"V\7E'rr!)RE|oh_.75 pD00ZJ: o JCCf Iɚ(]YM8 nJ3(4 2[.o$;tX_Qxe Z ѱIi)N!2H8BMaFy)Ձ:K?YYN&E6t 1be6:;w2S!pS"}DxѽҀ31}{q_@!j\#TKO,x?aI+g"mw.xu*-Yo_=v"nDp4?ugkc2Pa<uziݑ4p#Pݷˀn/gc7K"ԡ6dj?+!?d'7C#&Kp?Scsupu8Q?>5 ;eӚ6KNv"Ie 'RU>8Rw&pբu!3Z'J @&G~t.er{2Z=XO'q p[5܆d9.B:kEZ|P4f$H@jjJX4r8{'ʋճ cӉJ as`]L]LS9Wȇ p ܎ @,R' Sо׻T,+qz2ՠOX~M0 xFb|1J"ӄ^hraf'qE*ICߨ{b}>C / xP5ٿ[uQp+ZNuqvh?xBVθHAuBZ$د8=LO~"&7T/ ԡ7$6ٲy,c2 2ޔEH`TX.=5j4.Tbd};.3NTE5}RisR­$TĬ.1@ `*Y0uW#E~@|u dx\!iť! j^Q@ELsI3߾ ﰠRYm$ 1&r !|ar;N Zmq܇S w̦ۅƎhGhh't^9}in~R?sL|@97(ҘŇG g$QHvW*!IVu\ my]>lۉf6GdyW2I=E]eAXJX=y0gL.#9ݫ 8hPϹ`QDurϗ7rS%U^1q( oq}U;v?!߭ŸN`Ow:NYx׹D% \7 5a0dďpZ^oճ r7{ֵ$&)C*p{qRUv`14p!͛E8OޮqeGʥreq:(@ޒ@>fz'%>3J $5/b'WWmK\hey W{"ܱ1ɐbi=n.) 0aU..yp0PF @h0 `T("0ߏ.n/1s>g3^{Z9~}WcE"~CEE> ]tW!+Nw%,F\ e&W4ܰh9?i#)zlͭۛ1s(v|9P[|=)w Xܵ h e<AKI&S=$fw6=8G Gٰg:ȈHo ЯbU0,s#B9^%9*]*u"}G"N[0Y_ԑ'gBGfBmIu8Zwr|b^\cXSw!qKl5yد/I 3+mq6.,qzcʴ7c3nzA!!HQWV ~fXqg滹ϖ:2)+9?ϚBY'1i l \pNӳBx}3BPshoC*ns%Jg)}׌ܟ;&v3㎐WB-aIJr8.^-D %zcmҮ* GJ(a'pE8"77?$&|{H 4 F%Jrgf SmP!H (>,ä[>hy8L-׆3 2~ˆgy˲lJR4rlE #F4,!-Z| %F{X{ˀ i ى%"$B3Xk q`^n2wQ pr 'tZǪ5D}D5d?4e2$Z9O&>xL׌7u>O?nf<".3w$$Fzqq!:RÀ, LQ/  No_MsVGȫ6p) Nɲh"{X(4~{-ÜӛF[hfo!A 0ކ67$1}(L Q~- E-  @N'\+eXT$Hu_c>~z[l/=$ʎ+;ݧ}WxE`„@Z I-nߙxh#*HJV?VN1w25ڊ03 شekG+JT! ($'xhd-%g%-1r Lf2{H 7 o3 G4FP9wHI[(P*1KTl$b0_P(j;Jw9"!zx`&) m"A˷*QzͧfYg}1v_KLÿjr{zPT aqAIW|P'޴"d C~pJgOX2VpHx}K0~[V+v6Q]7|6L889'<}Ϙ8^ObhaȞ T63X?g7bn!@Uۈ;|(do{EY%žméݬ_㏌ƯLiHSaom:r&i'kE+ Ry(ThKدw |S+ud<˰5VHO^Br qvj~Wxt|KAZ_*xzQ@k_ᢄ;%s׏ЊmK裢!_mE$rWZet.TX2dxrʰddS)4Â<ip+ Vq/6 h*3S$Jx$Z(%c[_nCZ~&e(  L8!W/V*;SZI]!C'fYӪI~2 XL\$xwuH{N8 Bp,_h6GqR8cU *\T8}S+5g/ڶ@u|#ک)%2$mqu`nQ@:@.qT׉֤%nE$WEZt +Dy7 kp\ fxf)!fXDnr&'TrMnEw@į4Znܿ2vθ !'ԏ/ѓc`]n+RUM/40iGr?R:򛨻p~1 C5~5Znl ~ɷڅKWޜPXWH ?!q?g֠'a 8 3D"ǧ\>!oCTc~2uD;]dnq`nKy>a" w <%QJB`(;"NT\.#*/iK!3yUByF;(LۖG3cw'sm2l*-:J[nF t M1)3Gxvp*aqh-ErwVtz袱E0!Z 2\LV}-nBE=7DH5i*I8QҪAdLo9VOWE>uU5ξSUWl[l/6rW![Ҵsi=8Gܚg\GM zu'"ꟖN2D5㓪glNb"a}|>*rۦu& O[L ?4X zn"cePGXgA h<8$ Hy5% ZJqv ׵IY\kk^tm ?+V}d,F$ y՟&1ư) Å/>Z&Z GeaGN:#aFZ3R]T2ـމ5*~L^jA+|J>Qh5_۬f̩:*B ,FF逬tys]RK X6 Yʌ6R] q:4'%F$#׈Ty'-{Yy=A_+ =?o&h*yi>+o&Ikh_όxs(9oqZI$x#ÄzX5˾KTcЗdXޒ>q95ߴ̏T򶞡|EL.V/8"q4y2}A[xG_5~J&hؚZJ$Z+p m#B˅Ir*5ujZ)ܳ+Ԉ-6_P)0݆b5cJah$Y>U)j:d!bM`GQUuhBZo3i/ee&+Y{,ӓlLÆx/q1/:Zo@H)aeEh>SnŤu0pS é0z\LI']l4e! JU/!NJ km88mwsrQz-~g{L4vV3@TbYk0TJ:1!D0 Ҩ5\~?D-1Xi6Z4=O&Bq =cb1:1&ζ0f䉗3 N~ MCOf78z#:0E#k@*1S}L$ Zk'W1LOք/^ǒ/48jDtsYՓqd^F DO#9L<8b=N閣,0F `l0& AP& Nf׭u=]Mqtsߞ4e=?O'|fF?nl^f56kʯo04߻o՞^% 2ʙ,lF41vJ{{GyUւ*}SϺa,0_H՘~Ki1"~Ճ8Z 8ЪkZ OӴ?i)oAmI2};9X#NHFHe^_}Α5 ?cZ5r|n1)`\Aɍr'hv^ckb$?</}֢pZL e>)Wʴcp~TIuFC1IZǯRYE`hdm SqЌ(nM`H qq\Ñ` sTO(v-ӍW{1(JL`f]ELN5\%L 9"|7_&J) `ʄ"QKrJujx JKƔMYEDI\/^tܢ$q5? f&D]%%ttgz0!I}z<{j /ExbdIIcP-jT L*V F[@ዱnp+[&sm|6 EWr58FRǩf:1fރy;s0vb|kW,vbW'K 6Ӧ͐Â{3413U(3RkKR DWn^ɐCo=TO b*= s[0ͼJxP@tX)_޷NBv^F4] ¹.91pMƺ{3!a6+ZfwhMuD'̘ ,\+*L-uN㞗Fq% ib=҅w`?v!. 9ɗPKܭ6`.i &\'FF.,iL :OX*)Mi򺵆q- jՌ29V~7^BLM̼2e9C:5["<חt oٕ~LO㼡/*zr~IaB#nAl} ._, R HKZ(ة!jJb= ݯw%^ЅG)=D>|+B"uAզq{+L`frBy'ԫ}Jlڀ\!/̈́H@7p2B;g蕹9$/%mޒy{ҀL'r{b*WўF 7UBtpIbÒ9꼩淵jAw뜿4.޾+0"8Q3 )P\ 0cs2g/H]]*W,dmQ;мSuBon;H [}?J@ [2S@]#M;2iQ!Ur׵;K4'ˁ*UU *>mJAx6_xzʻp!Ž MQ~:|^)/KQuRit Os $EmGDt20* AРt PP$%&s7;L\}Wo7du4uvKL\t[G>~Խ_翏+X(?+;b |Ηn)t|f_eZ!)"G٣ / }[+ [NI2)M pnFg aXOAmI&Sw*ÂIN L3&WAݬP 3$KM!%oP 2T]HgB+ecΦq9s|7 Ec̨8- `XPs|[BP ;(- +ˊs^ =zJLlۗꊢɱSi{7@UCX_'+%WUBF>@aIg+Λ!ߙ P?/=7\{B',GŊZطyzIG&Nd )رDv̏ Kbi{ew|Ztlxz,)mI!ui(cAȰ}:L;2pD.}BQTLޛO8/:jqgdI<%g~ \*B0aO=sep Uҷ\E8kR&/y[ۄIK" M@z+ -eYnG\>Cm;{Ѷ2W6JY`OUSQkj1p9_L݉b)Wn  m " z};q%ĵB&ZVG'C#\X翲@֐n zޥOtpV|wa\Pi w׶H\ /Nն '˘b:Xx渂ox*'ȩSPjr(^/0d0\5 ijD_:,N5؊{"jVlֱoAw\ڿdKę_ơwɞyifݖ@5BDʎ:eSܟ rtz@BjА/Bռ E.Y/jřY&ԭ3&fx*i[EBrXO3 PHCiP2|f8.(GI͝ʷ¢а;VG^jlF4í10AM. JreALxV>vVk@doGl0Xe`yP#W*&E{uc)Y r/JM繡K:m˨ mJD`gu2j-nmߗ!WJA3T`54RTӑX{Bzuw*J8eOy»S# _G0 g\ mxiPkԟ*nɁiяc1ydk33e nwFє@m,w!~J&XJ,yD?g׍*BtS[Ds=ݏ 4ՅMH Hu7q'8<*y xw׽(R*X{R4kw W<`@ -ݵF**B6eq9%؈Tp+j _ &o 7E]i%RzwiF;ohAl[Y_P%?*:EKBzO MOn饉7ݟBښ]OPqjZZzy䧦];Ed*{e1)F?P( \L7)Ʌݣ)4x_[uh#"73>)+M _MB(/7=C;v]H䯢Ec0kZH/>˥ r%u#t!LFe Y^1dFǃs B;{MMxfXD ]X(岗4--F+zrӚǔFHh1 QQ}&εeH0glDR w\X2,Acu$6C-sT4uQ9OZB){>ݓ/K54QſW>Z^ 88Q3 LU x,_ +]ܻ$oE ;˖K:~W'y!<.sHVhL݈]@>BWJaI>n+)!X: EQOЏj"֘R^ _$j{JSP77IrzѻK/{B#6̍K҅KX"y[ =MG fzk#QC:'AP5c^ГbWt埫Y'H9)rZa#Sp ܃HF88=3O`BbF{'\?!YF>N`ŸEv&Hd֣0|[k|S9`>;)V,k SU-KTJv2 *X^Ҵk=%B%8/e55h޸Ǚ~/陟9,zC\J2x˂]|=_=$7®TkK z61էψʻVNI'"24 LLrOw`Xڗ=B.xUXB5ՙ7g!^vI-6w YzCcۢ](!Ov..QKq\h%9cPE̷Fq9xH1!<)C+Z㓵k1ykF.kӒE%)wmķpjԣǀY/C?| sLYhaҼY_G.^s/2Do3zqy|ǵ5cxK?E/JnrWi,Ԝ-L6^3 FuF;Wo,PD8ݪ8'y|%+q,m6b5jY*SMHxP{}S%qmS2.wU+w]U?1/Ih .Hކ.O԰}a/B/Uasr--JKTյK/)SvÖ+:u;Bm+!a]VϜJäO)9kMy 2B줛*5~0A`V80z%Xpa Lb!xnYU:%jwzwUnWǐ_ G{yį܏cO(eˤt[89mCqFp= zT^_w*=[wW7Ivޱhj8N7^i>JT;H!:}@Kú `$wR:0 aTDPDF J5Wjgs5_VW+.?瞩3៹_"[>+3:^'8mRЙA T]js{uK`c͵K|?wXrm0y@_튐׾<48&xTi.Z嗪=pEҏ'x @,U[@jEi쐮DkS  #~*5ܾ sνϙ3{.Lb0$2K[d87W&WGh8N d `¤`a$))iT _wOmQyo;Ģ_C/^*ɴM' 5oiYtBY1Pa}[\p+VQO8W}c/- p틦[Xh /r#>@.@Q֯B>+57a*̌]KTFXq)[Z'3#d5$7SYlu\FYԖ^r)w$ۤ8?Mn Zcj<?> R\zjOj /U;,!i~C%vQ6QlϚ, Y栜q{"s N3 >izԣgCFEA%w`FI\GEMBjY ;?\9 UD ȴ iw8 1^]'qnylj 6vwFCk)!a~0yy*βLf^{"1>/П^NoTQ@vB?  ' & ^ֈF>tRtPܷ5{'W6=P/ORt8Z *Osqak![#MN ]+Ps]!#'!\qD`7(x. k^e^!^2("߱N\.`JPq%^Ϲn XvZ(fuV}.6Q d(|gBL.P2m3Lbsx-{4Vmӻ0L[,d〤?l:ŚGvM)Q 浙Nwrk}}ݍrvx_K8ZUW =HgH!ĭ }TCw"8KU:I]P!y2LBPX4A& Bb_=xu^ju0{*U_zzjuxOk̚ﳟG=;|ren#h?˰ c`"DGp˖37 O|C{.̍\VݕMFȚ7w^xe:ܶ_?WU&f׈ @6%@ pAI&S;n?bpԃL*ftkVՐ06{1AIE(F<ٲ{&"z’tዶULQ!!V:z}N*V6xlInvA.|ҥa:n?+dݵl:2W\iD\5-/ wi"RCx=#Rlz.P/ F_\6Kg/z ay%/`x:XK9dx Lo0D>P^tl]y`@*Wco9p%>f i!.jLE\2@*fNf9FG3wϝzhga#w@hOj, 8__/aIC+g)w[ؚ,Y$+^&+DdN06x],Fvd=qianxe6P%\yA%ȱv~N][R# ~oQTRGEYtSo4@e8ӐE4,;dV,BmN[2dQZ;pqvVβ"Y7ե呋|@¤"qWvܸj%@ڸd&8- )b)-FiơPũ]֡L"{nn~)mSM:IK׋(]Ls:?x::B~iZwyOb7M ;ФsB W3{AG$E^x7xSӠIO˚ZD7>21fƬR&qGz9|wH&?o2qV.j._އ}Z9NWGI%%` 7#E7=c\̺m1JɐٴT\* #ҧ0R6Im237 !RSd u4{@vbЌ_njuV}Ԯ}:;NMG#(~3͛{Ϋg&" xEY CiR^h4+B ?-0`* qB_4>c=?Ә›LfD2ph͹/+m1J)Q@K *0m6G}?V4|&iGxu T7f' kFz<}+ }ru|&+*DBGuX;\ct$!o .4+ͨbD'n r;"VߩJ. Zi낲z+ NHO ROb6*>l2LiM"[e]TBD"ܢP1^VPwd5؄q-䆗) M UMpXA Q|ILz˞e?!-TFREAd4|;f`&zԻi`=؈=$_3V¯_oᣑ/UYXIn+Z^.5"Mf%HgkRvhp>HЬL-L)Y ӓeNAY(_ޫFEAb{o8Oi=;V<-\߶#ܾcH0cЙoA G/hMjBetN kb5$6@Iˋ6z.*e\pГ%͎Wqe(Hs;8j0iҰ$"HOۛ^x 5cL#)魃 4v;&` ý Y122v.MQ՗{F5@`& eVQ@w[|&s3OοfB"H4iDP.$p_*GoRdf%i}3@OƘ1,{gk̏щLȳOy{)~k%:B|Ή_U//1]q WϪ ;罢":N8˷W&1h4zۢK9# zqbctg䫔߉|à-+7ݼ]^n('"ϑYE1I1 p ]:96#yxSs'ط1'_l耾Y&.y57b(cP"éX8|7a@ձtEl y8E(uTpcŮP`mA0naouviTyR Sni(je5#}+ WBژsX9.  ^ܒj _Pn j5;86.$qVfkm=r(`TfiExƟE}"+Ő hQ)L:M.gzJ/P8s{afLGZELugod4#&9k*+T~{򀘀Ek d$;ZO(Gگ]5|*ξҡI N;q >/AV˝i\ b&_$/*foԺ,IfrQOLB01},h|h$jcUfѼ}I7|XG9ޞYM+*3QѬkgKn>>HX6oFh!M[,Al@9XToxQ95׀NʔR&kn5쬜uꭣ´qv;*8tN E,v,+\E&n6(4W .ەFݵ53'H.Ҧ@oj0< (O:uH8z/ʎ* sv ogFy! b ? к<Ǻ߃o=q+FG-Qzq0_ܺ$ք}MaOg)q!Lv> DNa@On@lWϐ7Fn; +Dhs mL@Q͑a$9.G̹,ʣx͓}oNS=uiS[бÚ!g:1ٮr %A8v($֌\AuwO_>J:WZSޏ֟#C߆OVPHK>=ooJ~&r%B#|?jx Bi|_ ľ$ 6_5Ϥ: \8E< ^ r>ǧIDF-}(t_ehӭ`bub1uO,GU1H }W+m|V{rg> &-HVkMTWGJ4\*33Hn^h*<-ëylWu *LM49On_djb鎱wHSu+RCGALY|r쬰'ao5ҿoK 7?kr^!k$)Ӄ ,sS~bo9ܹ 60* X0f BQD&!HGͰ'yc^rwIwm7ea^24blTڼ)IzD~a-ZVL4Q A:CUC\~e!ÍLK@>( iVP3JK@4.X `L !1B'&qL_ϝ+rn]?rg׸䍋׳~ܻtKVcO# kVٞgkmR@` s ARB5DmyxӣP'*k»Oܭ+.k8O.(ԠFhQ/./%J0]ܒP/ AI&S+Nm˽ZUߤE$lC̖5ct8ck. Ei_MFg=|n3b71ǧ6qC ,0r5 yt9Y>_ ,n#]Q6IJ>KZlx@ `(*/B ؜޴,4Zr1⊛Pƫk Oنݝ(`Kd,5.XOHM̡Z1:6g4C(/O5#1<[@Gھنc!P]h5@. :5OYo 5zCi=Z>;(߃ra.R2έ.ofq ?hi.?+u&KT9Vf|p@ ӹ S,o)Μ L[J;b.. !HɏPpOg.wXFϖN; ^6.!CaV KO\ռɼ+.Mk؋ L5iXl3BmF/31ᓫ Xٔi_6]^wR;!>#о2˨WlE0[T]~ p9(քN !CWٺ+v rS| 6GutL$%m],x3mw ;@Y7^EK[+ iWɠ9%KT*+ˢq$k"ۤc E>P͕ 앶X5uzzpv&SƯ8ڇ"9}659 DcK OVdj@x>Om,FxȦe H~M>M_hLO \,ln=UWpk8^{n(A#z y<6sbT~Jmֈ`8VK̿2&  p{2(vm5^uk=~|2j؄Usr" v* 3y|PIQy ?*xV]+F1@WuH-*%J/GQCȪYd BzSv I }a64R%N _zohJg{e+LPAQnp:P9[6HjQAI>ejǻs RM eyp;+!lbKm|嫶sR(6Xs~9u3F3z(craxL?7+,-Q߻[lLzbwg<||#㾋-=>䉯CBX=,)Lx1ߗx|.6f}ԡIG7G-q7Q| >C.^v+o%%4hg]50a}ya&NuTvݭK B{Ėh̰}Xtz(;EI}B!LIc%nR6#R@2z3 ?hg$_ExZK?hQY+F'StWoQ!BߋKg4}/ܸЁ w&鄴x$rE7ٮRؤ7l!K{ B}Mçe6ڸūhpAC.c ėpû"g]MF7]~3-s IIZbs%Uz˴C[<ŮX3*e3 ~9C=CO˩OnÇX^8jT%o b.MS] w-뤏ܵHrOF:3ߝo,S$?t +^)RN8 aP {;£[߀?d@]gjC7ce{Fɪ#e03 B2’Qf٧mTlf{olk$ {+cu9fYb׺/:rlW1Bτ6Igm5p$E!1p2ڌz[#wXQnUf:0s&)0"I] 3_Wn(~-Y{%p"ڋVI'y϶m}`ҵ?uW[6RG Y7DG8zDՉJB~yO>}q^XC{ab-ێypnv[OTV W*&Gc@jPHQ }&`E ^Pwl6P&Ц2 !P)(?R)}=.Bj,܈vPUEH"XWd2R|/#!b*78"sS6kMwQϩEEG#&ʏw'Wn1"LӦ <'D% ۭ#m$D}0( f^6$BK}+/%܋FOPa4:`Y*00 FDwd!.0˖C4G9%WJL!~-XP0n ULZ/0)U1frGf9f~w+DH8\mH(984>6.d晶sfl.y32,aX0J P"oϭEi\sw9Ħp_[m _Qo_vr|ndUS?mnσӲƵUlנ piu&UlǴ϶D~=ΦK23:'{yX'stp_ YyOIa%r+r@gAI&S3 &4fLSؗ};k˓$ @bEq*whQ<ԋ!Yl;v ^,A*啑HHXlΝ~M"b}hh []ԋ7.PS`7JVʞX>79"ɪ@{= ;,@ִ|3EÊ57irAѽUk$`yMʵ㨅wPUl؟OR {$杼[X{MQ*^wԞsdߝC~t0>iJgƤ#腐eOj%Jh gS<xu hJEBoS+=_˧RAʩyDIB`0NsM>ι*.Lo=&`#GF'; }*\j\5tx7)C)]yRٹ`ykuxR \P2oT-]޹*DHVΒYMFlG 2%C,~%&HJj8b4Vjz߄LWqy×.j drwi@\W1QZ\(:8) F,mFn2&᫑GqAg+r\AE`[{+_ݎP!%SJ[0kVdnJ[83] y!ˡ}Avc(-/*aL RB4t$QFpi[VSJڟ1~ͱ]K[-!X|(US TFf;Ig !ޮD"/=HnNdې3NE#(9'\74%S nt SHTcdkhЅS,0 @@s1T9'w C'A5#jȾ#x؜vmEce#_{^M6`wUv`hrՉ σ({<\dn 3%bLqeک(᱋cS}.X&ؔD z#ty|{ÙΔ9jo[H [>5k?y[ DtGfF&#Y@8u rÖO|D<7{}|a1 __8U>`Y1J ??1F>^ǍfPxA+Ä|cs[ Mg 8,@g7, yN={>$ ͍Wƺ⼬( 2ÆTր ~"70|R]=9/b׫ZkzdE쪘_ЧJ2x+$(h KKx]#_Nm/cl|HI+* c?:d0 [Aw}y!^6B]қ{5:aԋ.JR6S ;aju="ҷ.4ӞR7L;<1J;TkT3$+wptN~ǰ:mQ:X<( O]XU9Lz\o"+`IQu;asw|TZĔc'6}p L1ee-҃#n6&B_kD3N)*ŵ=#z&| үÁMej~X +Rh#NN{*wG|U҉ keuAJu.eyBCYVDrdZl 5oC֑3M`(Y~ 8_\.50?:.G\tFkF~ފK }ӺЊ[8bǹM JWs,"ݖU U|c_8RAEbv9wRA$ڧ?(R^%z`z޽0 D`4)5ytEInX>,%D\eO֫] z/&ѫ*>?Uh4Y[(P׋/åR`D ne/n%Pfe= cFV$Nq+j SphFv<.?ԅqц=U} |vws҆5X z/^fnϟ }CܺAyJ ˻ҫ6H*LWHW^b Їspxi] >>Z0b@vRX ]V<(|T }O_.b|,rB6 1ݣ"bϔ&(3 ]jOFF:&5 i}4\0& ~0%TɚxFGwKK΄=rt]n4VE6Zo,~AX'ibk2Qﲳd};qSb#ڮu/lφ#tA;4&\%4Ht f9P_u$)|.{a~#C EOu`\ S_5LvE9;GR5E_yߝ ϗJ 3ոԏXWp:r(M拯3CȞxMAy09+\"HS}0םH&Q\l+R)Զ'}2)h׵IM(0 e 0ÞAfq# U;OBw~x0G '\]dqezV${OS?$̐˗''+P3Oc '1K+ݴXӨI.E=BQs2PE΄X,3SJzƿ{ Padh0fq {zȡ!3ٛp=$6ɚt- +_ܑI.g_s槷q,GCصX6`ϭI7@+]2Eslnڇ]SȷkMM6:"Qu*/l_~ؾ* TJW32j(_=U R!%`r1PD2M֮=_.*"uߋtS$*o⽐6Nd ŐN'{F:SW`;YN ֚H% ϝ#{I}|("V=ӋsICuXc4 Zm- ]3L0on g=6mSǶh_lŴlK7@>:C _.:z+q(m$zJEhPzD~V@Xa깳;il* SiyexD2s \Wr@) F}<<< 4 Nz?+ye:(&V0ޏ|L_;[dpԱ"g c^V?GZKŷ* hn vxDSl32]j߉F %s6j)7(8f`G sjn {<yP[r@3DZ4Tئݰ׹ Ѳ SB9>#uؒRKX/ {c( ~ZTTByJ`d"<0u+9Do):_4h$ Pe2!Q >φiGJg;(l[fL %f98Ϣ!{oLv9}2m<2@-A1#[F޺aV )ς$о4&em|BY,V [2Gh}Y'wi>eji[c[K>dB|S:ǫcܖjo!Onx`UB@>T0Z%`l@LB"0W%Tkw[j:dy|q۹[ӭv#/^7Yį~ͫ:WGr]wT`M—W,aI\q9~y.x~_ ;彗KG :VەR`阔 f{ f0Ł<lQ>G0STşg`"xQM̃ tsoc,}Q/#ÑXrV??"NF]pdԻ{Oko: WgID4,5^hRg0F2'2KafaO8z ]Lludj#7zƵp K䪢 z:N*`18Ʉw: AI&S%XJ@R~'*f{H-Bt#Rm)ixKr6 Ȃj8>֓RMa g= m̌JPR?F]j36V~'ڜoK/f:d-1 `V;*h&Zx=aؓ?a`>axdPyq=nkag Ue 8'W{Pkż&qhu"Y7)$a' 󸴬 BdՂYJD*(?NDZė-Qev%4A/M&R?/u*ז(=B9R ǯZ{LgU*FU9h8c2206zVHn.~|1zn6@F? ZlL *"S~/~QpactEmΛNrJQk5R\z͂F`._7-%ְŘ.cP܎ݢ^_I FCe&lG5fN CY y)%ݔ!~ۀYF_Q!i܇jāBʃO<܍"ێѻ k$v?FY {!T݌$j4'(wNV kt|26z>ciVmus~a (vm2ARjbK88lvwJYwDfzg&a#1B, Rx*wmQ;JOjzdžu޲nI`(šE/?TbMzT?Й6{?3tAT od|k$7"/ᝣOa !K8<`T0#\M"H%#0WʣTʡ{F} nmtKԮ0( Hvpm`[FLXY`&!!Oτ—mwǭ$P)&! o,@MTkCEktB#:10ʶ VQQG]0gpW3, |jzd-HG8 ^x"Pk`-pIJrQW^sƩg={/tLOZ9ܔ+H,\qV3,N.e,e绀/+O{y` !b*þ#N{*!wWK[D&E &4.\N۝/Js;1,32b}6$)jd `+-braQsoo:Ibu!lϤ9yPd@zf ಜm ( ;gcIR1lBmA]_͙f"_9W~cDtݭT¬a'G۵ /!k5篾7|c,U#DelmvJP]Qswq4L74>ҷo*P/[D1 Ie̓$^Z:PIRj:D8,}u}P䦷Ny^f!Aj |0mdӒE/+1Mщ~)W{=@ qyi=iom .7v?.fwF[ՖݽxvIjX'nti%E!iYm7O)4e~*A t+c3,Yc%Hʷ_vz0Y[YvuD^Cʌx t >0 n/EF;eYzɷK4-'8S&bܝ<.b eb@]˳!dϸǂ)Osz>̞L NAwjkNw×c,?tBفX1@8J/.k3PӲe>Ѹt1R`L@J61rϨ@y]|"lաVew ‘/[¢VP$.F)jy2uC* o޸G,jZ… E{|? >3bySҾlHQ}cW3”7mjŚ 4%)I@!veEn,/Ug|Zѭ?k /qBbGoF$aF/Qb4\TJ V=(q =ݷx^!(d~)nť${*쀕B Ln &ԝ\0&g(hTk9\s˄B;ѶYFf&Z~kO}x/ Xu*}m$۵"Λo,wH4k:kT'NW$!yS"7m=k`wmgR@gtM^,'u(ɾd@~Ĵ:Ȓ+$F9i B(ׁ]=zt+/z},[kA^xc0W1i>ͨ~t4J.ԗ0hSmtn3[8rjL :DQsv: 6ya!(*Hx*?6, ^YWEުQӺGʭ@OuGFy3&?gam]/>JsY4B詨Z6O٘Ic//͠3H88z[-gϘj@MLEFfX@oG˲# iܨ">,6K kb;j*H˿ 1FSp! =bJ菚bfm ea_ʪ[ZC$L3ly!DΠ A&G_SKdoaRо7%mϯ~}t]y}x@Q` )DF9 }S\$S:]`ӆnA =Cduټ4}Gq8cHA^A8feM9 u*ʔ(v43/XjP=طIcK@%#i$u.u5r45kef| –ְD!nUWA`LO=\D[fOůPXwxjl2큪4bqh~xV&1F=}ڶ^f6*X.8ZxE7 رd@w:|#\̅&x EVn ܙH+zyIOݣC#ԕ[VYL \^&U?&[q(G $[I`# ՎB,SLO\4n{$c֎$S6#+<:!(g)AbV-\y c􆜧 xjYgi6]G+BvE4:+w`=sbaгg]3&`q V ^{ҙ!.LҒJEv!sjᲉR$6Nq+uB%AIlo,y;öƕڭ~EM;.@ZUFAڏn;ۚ"n";DiRts'Wnj\BۿeFy@e1yj$ 朐:R_ s&$;;Jq,a *VInԛcqv ͬ_gͭ d ~­7Qhge@.\V *4 bK݊=XxQ=miY&p1vYp^$GQEI|^7>MZbH6b3CQhܺ1SLAH=*~x<]ZSD84Req bVJ "%,1(W p!* 9r |_좬`wVi% 0yogJSf)(2$ɶyC6sq[E0~ɩ@X}5A+6< 7JvYSTkr"]qUosL1UA۫t9H na;JzrЦ_y ,Pq: ]KKjbp޲,"v$J6X^G\ e`4Jhx GjX}f/e@辫\XUVm:pgK`t Pe駌N #ޛ$g`̖DAg>\J[]>[yS{5Gk|6nvw*bPYy Qz2+NJR R][JrA~th.Aٞ!f K\QO)%$cTt VMj kkt!l+Ye*n1f5z^ITx$W 'X_N^[dV *!YkLBSOg)`.o(c%:˧ qAT~2I1xF B945o}c%ȵH_ځw {?L%~.˨sٳINfce̬_g[~5i%n[82{wz[MCɡ8zDCm!E8؇~EPA~|TU= wtzsH6S6LBW+bҽ Z](^?fB..r|ˎGt7Bgn}*@9I1QG*4- _)[#\Lěن_#ؔj EN^ v;(Y rg.Ȟq  )I#+ &DX5uގϧx~釷4*% tQVRI&7S #!V܃j Mz>cꖰsơA5:mi| Y:3T4>$|+Ĥ#< Ze)x`;^\D2p?nR,^+os 参mC⯮Mx jYuw%lXPXn;iDӴ3fj-5நH"Mebb9b4 ~.ZA1BGa^\5g' m[r@*M*2 "; 4"<ĴUhn$M2gg;W#rG{%@b$Q)ƸBK%;iqGng@WӜm;=z2..= / ]HZ]{-{|гDgYL*, B45 DF!9sn.iUV~ޜWgO]u>h.zJ׻jxSIt_ mY<|F=RQ쳫|S*tNoIhc? {<|~5 {8Oˢ׷p<{En30X ` aTj(‚0h0 a@T"'~ۦkrWT:Mʕ9꺯.ӑzߟdr^~Y3{\ϗWƖOu u]Bvw/X`qwϝm+¾5o"yW]ZhyFۄqQP'vxKЃyw@ƋQ #3jB)Gf[E>V&YCmWպ"}H! /m=q=sAP6'7 w(ƸC|{T;?#JֽhF,ɺ. 8v!-.f``L?Pz޸$;ҭMy xX/mF#(4gBal.X$ycVr#S Dz%"oɃmΜt%V-/] qɎH0~v෵iV )*yW[f])WF]ݿ*sPUM?yMpb~A؉푊jSKrFn^[5.9p.=W00PTWT py\Hԫw0XB%?,V3qzKy+LLf' JX-&#2|Q??=.^"˹+}1WmhL]U]t93 E92{5w^w]Cz-PjϝLQ  _)5"p*u$ ,=]_H 8)nxo/(E/݌P(?4y_0N8l/yāݵsbJi/&mK7j@vU,Q1c M0)-U#.ӳJZZRń[z)d=VQ$*뎞Pbpl (|YLؐb*lS߰rMȩc3r\ |kjf#"`3x7I=WMb=UuC0.w jJwMz71Ə3kk+H^T/Md1)sky 8Op~SK)`އ>nX:i Taě,8ZgRh|,`KEZt/Ijy;O8cj:E#κ!mVB]WW1S fӳ2gn56kؿ$kJ-IeA+π4^@w;R <qm?]t.rM\?1@] dZDd9hN=]BG`PQlSF^q։0ޡCvz3=k{ eBvMė388$u<@,(dE|}~ 1)@aZ<$Mi~\!'<^zq'd ]>!2tX{wWT59ҖqRufO&C¸a!9*;yrTA̷[YfO1 WOH2ՓPVO<vZE'qӚ.0* @06 0H& P3^8RxVq;<]}3_X>OlG:-ˁi"t>Ly\S|.]fU x7ono|ƚ>-L`]K+Hx ?@^8'A?)F{YpPl.U vP,d DqA6I&S<%ǘ#\!X^|[L$tKxk*yx=5KDe0L^,`'|Z *Ʈ2-bDrBa}NlfIo3ϙH6Xeu;1e2" OaXb4- n+Za>" <²&prѮד{ヶ~lAX܋eGxq+| r=΢ Wߏԇcϴf KV`ùB'dXwxmA\\ `Z+"NY.II9$j(O-q@_wTX =_[|'H*z%;&)O|ly ܺ 8-˖P\EAfeÒ6 7>:B5+fvʖiE! po~&n!*h5 /(F$aՁFXV2!J}LP K 7L{ʢ 37Y&B SC]<)fq]PlQis(=Dw 36kn`yqʼn.&3J&tj[X볃p6]jL [q _xւ1zaB,mch$$VkK8LxT{۽ *&Lsf]kF~pg: ь@j`HLUTHZ*c]>$3l?~?FqY`2}#4*rp/kA}p8tLoRDMNhw~MMULnDܟ 4dN^n,KiME w&#|*bi0,>&d+vaښ}!mRu_'4g,C$mCV e_C@}ξ00 *i᫧7J-ǘ%֊Z}\nn2I N+FNDѝuOÇ{ ʶF1m޲۽'x2mF(m +[\%uL\CKA`*HCų{-?ۣjŠ.ϸ=]uI|㯗58P)qCu[KBKDwmLnyI+7@G@ uz>"~iX>MF.y.)Aś ,@i6jOj=L#&6)tk›m4*( v<lvXO2g8)9 `(>1QJ兹g3ɢqqjեTWT)xE!Dgf "q&4c!-N޿m%I`sr#"LtMYGhjV/ӒL)O6}-n6E<{8V,^[ HJ '9SjptC1]+ˋm֗wn㳷}0ףV>gUmո@,t܅K; Ƒ 9HڑzK0j 1R2u}ݎBڇqe?8!yW~?`t gp<3&1beivb1 W_sŬ`:R_ rJyhD-'TI y]=ǔ>:/b筙K+"8RqCTٮQ WNJWj:s]a|;,5 Ă%̂ߑ4)i>xL eG|F+V\EKکZ ?,yj^wxJ~8JT|&*i Y+*ϝw9w[Դ#rԏ7v4>jR6hwx2]+j|?LJO*| - 炰v|%1 <#c7&Y`=CW]6|F>O|kSH௒$QeLUx5|3[gM6L#72ASp0Ŵm{\lE]vhA ⦍HNף#$.C%vYKpFG}}|\wi S?SПYx&%HLHkwk&2Hԫb sck@u)ߴK<idP1(/Л`{-ӛ+VHCF%02)9ɨ@OzHU )X ('_FܘY﹔vwϲ8JqV_x ,`cz0)l"ʹH @γ] Rq;&ZA.Yr C 8fDA)/#GS^Up!< J蓩yK&/O1<)k^Y,#gZ9ƌ+͖SȆAJj+_F/虻:*W7`}C]iҭnMF#ɞ+{s,C~Sמ.~kXѯRg->PUĖbFΖuq]dlB wmDnWOa$YJyaKH~ <Ղ!^`@r'|SVvNR1 $#xt$#߶LjFXyk"N _> 晡Z+A !(ȋ\2N(~--b+df K`LjBdT2;|lQEi-Hy#U\.  vmCc@M8$RO y>iPr\o8NX]ߝw}-1r5/֘7r{II.rs o9ܧqd WwbV .6Np]]ğj+)ωUt~ԏ[ňfD"&sF^sÆuabFIvMr@Ng΁8 ک!kb@"x %j#u`w4"=tQ/[Ʒkd͆ njP ՏٵۭJ4hIIt$'f-{d.4g[`h@hhCE1B1tе74cV}vG-T BjSПgR< 4Uk,UXݹ*$ JyBm.͚^ u*M4}kNJ?Ǽ^Q.n?x J2pV͝4AOX`X 8of\`Y:HL ~bXІ`Þr` Tdh~=J4]%>`z$^ĝ@.\Ǿ:&i]ia4$3D@zp$rCl3 `XwuP '0Z:$VyG2ns#vH/n}<> ^/$ű9!kd3-Ů~嗢 !_{`MFKӰt~&:9܉-U+VjθYewm KCM^ J Ҵ xNJ͛3g  e|R^i۵} < Ow"=OIQAFgIe5|uДR,3R,jH+DAoʤ 1jWVJ N.pbNzLM0T/ ȦC^ T=q\5_p?7ӗ˵CӮ'\W#d>^īderm H|]Gb>o|u SgϜWq:v-o`!  WXn ]ΟHT3TM2?/{8.Ms4 d!ϲ/G'gѱݜ]D߀P^[bl掻I9[jMxa''P !OȰi &GMh ^sI#atɫU yx(hn1(8=@+Z4J'B#Oxi1&"ӻTXp zhBdDY6)uӴ&S3MLºcbxs&Mm3}Hnsbv#Kp-~#k#ᦐi[<V$B(eԋk"8:0* A`4 b($##1 k̚nf_5|<>IvdzYXǾemK0޸W6-~'_L&Miu4vu[1 peVO%WGet5F4:{l v)R7c4XoU[}|!l'-b仠;s @6t( aLG 0LBn}|c}RRjӫ':q@fGt XH8_WPbL?sj>[dOfz?e?Q樑6z>jO6>޼⼣z~5W`|Y1o`*s46Ҁ؏=byw$c}cE ckUjBՉ#LoWiTĔsF BZ)oj 0lQz<^2:ݜAY&4JwkfB= Y;7f .V吩.qևg,idX{fLl;,bBD,+y}[)߅yd̅#InO"pT+jɀRn2͢e Gq ~S"P|uϠW·v7ĩr)zq 8(tnŽ6Gf`_.NviSIl-:PznnIylIoBT"8+oxĕrR61R.,pŔzW?(gGE}_/*Cod6%EGTiN?PŅO⻔.S 0mwEۤ=_)Ҽj 9s1=D hN!NްP:L2蝨CͱMj)) Cone<ߖLp}WTt5ѿPi*痃Šjߴ>ʌr9ȰEt&kV#Jb/}Cg3UqbV~Ou6<TĴ z2ZvjMU!~EXĒ]R{T]E[Y?}kDU|<ɰXͤ^:sFѦ ! G6#˾sFyN"*dx ˔4_XXK3F+;w}0y&_0<7b2 386qbADfW]oiq4{ʖy}%mFנ*=%4TFQ +GJ &Lnxx+A0f!'kߊŨQPI8dn(,z8!}h9[EIB% zriOR[akCqY.>#~g-1 aZ )پ`UB6sAi!bHGU]H5 M@6LHu.x# 2?^L PPqh`CEG0*ʫ>>vrıbuz[o zF—+R+WDt:_dB6P5ۈ 7 OZC?7Xf5ڂkb9Hyi뀔w]lor P o/cH"8 y/޼HCDH0%.bP&+~/)=Cޕ%]HhU 7غQN!-4qg%rL=,ЁU +a>3ozk8?VYvUƒCwWxz{Ҕ4=NW 3HF ͮ[/T2Tt(l8 "L"$09ּjD]U^o۽: lnOoXۢ=K_oZ*U?6!fUQݺRMr{M}?}T);]y DFGlY]x;dp`=8 AWI&SO3w^Ygm 7k=pE=ŸH>Xc `#E$8<S'vʤ);WD_C_uo)㕎F6]ٔ%"^]oOzYaMf;Q~}=9XM|Pi]$Ŝ)SӺvθ&щ*)~oz"#VB& qk]=Ƈ.s_'5nuQ j4R[1F.TV| 7㺁!͜bݞ!' ڈl۳ڦ\ivH! C<*rc v4$l;@ B֕-qfNlQ@Gwi&|3mG(oP<{͌qϱ:~89HecSH8"{e}yl2j V+UyKQ@48&xMx2%%O~xiT~{i;I`9l `%ٜ@ Sm#uac<.KrD>IT"A!8[1%A8(6xCUāFݓA/,f!Fk-FF?d8QwA@Ws&j}5po!Al:+wG/T_]֎s'y8!Q=_%nǣhAGP=裗lˊh&iL([7&?9gKθFvʱT˿ ~ 346-( l-+iŃ,qK [4Ɛ,p1rM6 X}QHɏ΢i^=@9"pfTUVn@dK\g VmkzCFcb j#57E. b }[9<n@~G?]z)9t`3 @tH*X}+.jxk ص>~dy V91W"X z|ТHei!Ѭgsb.%l{TGG`ГtuضX @' )봂SI[6AtGq~Ԅf2/C%9bN̴N(H&T7︜Om}Xvؔ>y$icPdTJҹnIBZwlUCz,ĜjbmZuCtHnLl,}D FQuz_|Jyh|n=$&*" {ڃ;0$Swt93DJ5D/' p*>6LmHIp m[HxɌSBū2(̳;%dk`x={yn+YV`BŭH'GbVcU<-6z?^Bq6Qšeh5Rѥzb=.A^"jT^ɮYpq Ra8gKϪT:,JU ׬J}mr\׿πЌX<9Mܱ~.2 -;G#AcB` +rc"Aw}"e/Ng$ li+KK&"/[T 1K.%B g("XE:qMsu5BMj BLbT*/zkzwF.!+JCL-:@2vy+-?L_4czRM3ۮ.vt`#-8=LRQjv+͟+X: F-e׼)~")c~uOmWKĘ_`'8Ds4kjdhfB%Blm{W7nCp[}"c;`kgC1@pD:?g X71mEbY(WI3C u1aSU1&38.JE|Sށ ש>v$:}2MH\ *z_h?֋dx._BV>%FbFKQVR$ Ї;B_#bacg#('w+sG)^5,: d/֔蕇 x$lQb^M=IGPœjTO2"zmOxN1:68`gpHvhZ=E 26΂X3@@M4 O/!+f6ũ)u9_([A ړEZ#B.I`q +\j8w.Th 2ί6öe^JXPnAܗ鱼Nak?ی:U֫W^thWe$j! x'y&b2|Y+ ׵z4xG|=#׏\ Qb0˔^֜FaZ:b*RK:,QTܧzmSg/կ[Ǧ~wg\ܺe^z_1:IH +XFNJMnoW;a51.Y}W_kcݞ穗u T)hoF9je&u'$,?ߢu2Cc˹UJ2ڶyHL(T=REhb) +5jo~?|ƒD8&HH2KҼ,D@aw|p箫nC66:˭Buo:7LۋùɹR4ѥ4ḑnZHeއ3Ǎ-TWa?i.G,nAͷiDZq X Z pbbI4z$@ k7QpL@\@6n'TF-`l$PI o;>B΢CfBq>tg8fY7KDAxI&S#lG-т'f j2[-@0`Zffw @x-ة Ih>8hAFz%4r&gidP쉿4~xʙ;z`!`tŖe} ՙˇ_/i@_OrJuL3_5ߤKAk/u3sYŠRm^lSJh޾Oc(WT ߩێBA%"FbN&4>R-78ĠwfJCf`6zCB?l-Xk?Jv_Ug9^jU 3bo @'?rjd}WT{/b tQyȫ`s[LWK %L q0vݫ8LC~UfRrMITxr.`RZ ҶZOu4 5V0P=(ޡPNt`fG-ILUP,AC0qbnG>]́O­z0lz4i)r^?rYDV uJp51OKch|eh lSe_c2 )m@s&G!:% `\/ԕbd7^ O@K?)t?+dfbp۝;ƻu׋r@E'2Gw&ў4qTyxG 9,mUJ2duLST=osJ6uzo) Z`38p0_13'Ğ>L-c!!nUG#5 ˅/>8vY.!m`:FP#,ڂ+Wޥ15hMo3툠k+l ԉ${{@/ Rd2{ٓDkYZQPDZ3B#Hͼ%gUʇGe'DM'S҇FҦ8K#ll,$b͌gپm/麷_>pRh:uӧdxoxPyOX1aT3=O6?P:MU~)f6 ZO2W(~ză<"<5AZ2'mw)[ܮx_, 0*m*xFf u EPB9"p6";(Ȉ=gH*'Yꗰh`.VJ#語8=!^L2շ1ù2*ەCkUd^NR4QM q5+:vα}VwRݥ%ëƖ`֟MX?X3\Τ}f*`/^+\7?|XyYɢJkVzMDW]Gw[囒Y-^Wdr,o/K; cz沉Ryj\eaeAA]Vm&XGx$pufΩ'0l^#v5j=ӡdQ 9F&r;3s`^C* =, -%um8˶&-D$IW7ڕXKj QnV"+@R9QL?"-@Ji `ˆ'{ٖ e &h,7{U sq Vx2y,t % pR¦;aSu%!)lYX-[^-(Qő]y=d]&$J}X &M`ۭOjZsm?:/5J<0J8@!8;{dJd*S%GO O(26gb]o"WGp j`~"8suO2أCWEhKb1iLm}QO IWuX)ر㱊XNC9 C;t ClWui!!Nlw9Ɏв /n;u1qAVY?LW53[4rRiʀD @x䃸 XD Btp GAI&S_x\ya 9GB/!4~<ŇșE{!tj=ӽ=^մ  ܌ֵ7_k4+|,kbasT:0v$?PmCvܖ5\}"Yf$恧E*H.-55P["ZW;p wRU,z8 Z(LZި7@`?O$mmLW$N$U1ߊ)huwNh rDL EkSy󫪯2>J3D 突kWzv!zxk.rI5LsGV9O,MD|F4y0PnZ{bQ x`E({zj6Hn\tSG@[uP#P|gDktT|Γ sw$vuϭQ3QVۀR>~ʯ㚨=GnT~,;97I`7öK h 9 gp*T[Y(A]V׷h\+" St8+gK * O9?)hd&$m5Xл}̀;ځSɫB87 Xk;tzxN1bP5b~qU75TNhgdIWpdvL2ٖSz+Qa򲐽]>J+O#F<4ePP_4)T)%HX׽4( (Rg<? !0D3CE,\{N6*\'zn)#Jدpq\>YVhhjmMN~vޙ/wpKY^RV?쐫PT!ö3b+z KVGDCoqIvH>ibeEZOzNA|{ڇy39ݍ! aFXCu_'[;G8*@yToA]',3ua}2 AK!`Hs[ U lh ZD(!d](zQȕ@O~XidFN}buo'Hbjo'ʳӴq316g*ĮQd}kcymuk ϑ/oޯv?m(%}nܮU𔌵D;A)LWNO.:xa{fFU^=87xd gM0`/`c<;BF[e,(xvZ+VVFTe}jP4`'/7\د۶À(GQbZVGA,ǯGStПVij^T$F3T5!QBфR("cF)ĖdI5x线MxωՃŚƪy$ $_Lx9A\(rY5J;H>6#/L͓(mkY-O^/샸Mȳnt5QEPo{nİY6ηD0^XLvOԻjKT40: h0Z !L" Ja=׷u4R:N?yu*S>,'n۫ V` >ň{yGQ"zl|xzgB! K[=>up[U=\F6M@鏬@<2>~O%foPI#):@Y@J,] AI&SnXCltr&spbߘW!<2 dox06J!N\,/Zy'A#xemBG"fb);[JَpxꍧalGw<;`,t}FH0?MS޷qUY2޼F);ǡkXYTK@N hzj/#5cK:#?+BOF?:/&c 2SUdJ?"RS*-e+: +^%'`J>'jl7)$F=02+ᭌ$Q>9l9\x{ B{v*;{!k4ƬCcKaU)Y <Z$7W1vuA1Ɵ)v)[} ju6 {[?CW7{#1l/2P-e ,Sfxk6؝+RJ)O2v7p $T&rvf W`ܑlw4eΒr.N|v2o ތn_})N*ajM\)d.κëpXWPA&bh#dY.:: V|CXOɔ!t{Lwfju;+{Q@=iSna!"DC,`vJGF:>f;w2 kQVIZolQ?+L $Y呱SrPM\e{xz*o,5b-EIRŏuԞ„T˥> a&RozSqyXnM"qvAdNQ}81|B5)t*j?̚ 5AuMfܢ~Pap|;IC{yA_ӥ]=n8q_x7z'Ae#A7^zz )p _ʇmFK4"EOa0ayp- y> )'&8L=;s&kO`qSM(^=G%Q4?z-9=Birނoq-l3ݳ+*MSVl0Ҷe6um0Mĕ٥Zs<&lSūlzu C4p4 |\9Ti:>;: }2u0`@ѺJ鷪I~-֍7"O$*Ŕca(>Q Qò_w!6'nTKYPkdǺȄzO~OdW:AX=$10rk8MgbJŶ f+ZBt '֚AƦ]|QJD@ ތh|t(5ch^N)% ǔ+Iƹf {/쟓V{pկ匿D9 I YC,*#MJ=,m j D|݆DܗZ 0,H+KVk1<VGWuR. ǎ4!ΰLj>8_Dj{kf*D=iֶ4x$ *"xh4Jo{/eS*]ƌm%D0j4|+@@y]ȀJ@ßXGMr;O[m&%/Ke+n.x:wY+wАtwI̋,"rQQW d~h>᢭󤯙l+ H JIAna@{O&D橒{.LMp%Ih. DQ`qF.x/ysEG'ݜDa_>gkq1ۂS.j~M\U%@ǝQr.TM6sRQ'P)5U gV5P^Z6CnUle;Kw8*ݑWu't&a@u&^#YUםY^ kn(Uzpl0o ̴"Ӣ1Mj(h3yԓbaCu_#i2TYL$\:d2{7` }|ڙzd5'1©T@7(zTmZrQ%5Bq?lQrn[(ފ}L}w\쟖 =?6{k6}{NHAp\U"Ύ;'1+ ZE2TE( F5/?(PT\& t@T0& @X0 aPDFa\I'M%bnjesJQw9rDU $J8e~5X%UyY~-UO%@/8`?W O1OgE>:8B\M!yF`-zF!H\a8:(2Y!"$Jh:|94뭶nfB?zڶ0oJ|ƴ,spSkU qGT9z U\fO/se{O?m? g*d٤s%竿L BJ%d;Ȣ9 Q4Ʊ?ozLe$qm[idDcNtRph6bC !TRAI&S=i# Srv?_}x/0=7+}f&ccFHF.r$ԍs=OCN8 ]!zh?WbL濠ÄԋARY$ɞC/[I}5Q46|Zj^QDE̓–S]l.Y:mASjxߕBo 3Kƀ+%`).och.M:cVM88bQA}s[6 jګ7_m"x;(p"@/ml:28C٧ctBx 0R}7skp`L}λU3]Vncd-]cwVN0yReOW6BW߰v#]m m0' -z.)P]Eu3VqS(Jgs0MSYEWιFpZ~;%s5z 3ѓ'Pb_ti[XGᘉ,_R>,dM8DGc|D2Ԗ k8rzS(([\|aʵ.ӭXWMRl|ao-:Q`9%yS-~Rf[޾pJ >iǬ˪IIu6 c]?TUmkaeXײ kI1zhWʢ#VH.`Z+{<oD~ٝi,ljR/ٚhM]~Ȁ6[V+W8L5JIQpv ۊ}&tP}l~E,:T<(o p7,y ?Qt^|f9vPh)Bj'9`g#\j=VpDZל{/4cd byyu"nQƗmqhH'fR K+̴`422g+͠C5¢X4"RDs2o|yC8xe AЀM{X/ xD]FLGI,HFoz65A@:3M(()*t{x}('lh= +`K})_]]4uY +WxK||u&26iz`Z '"kֹ4H[G:0GWx(wtSeWv3h\SzH ]\H2YW/Gy(t*H$_7?cuĶH웽~eXaʖ$O͇;u3{Ľ5ML>Y0?ZY_e_vv4J}UI>3Ug6U;2[˘y|NFf2Q,SZ4GbvtNQR:`Y@7☾w+m5:.<Nwa7æɓCp.{$U){w>ݥ5ҋ ~21V{{_wCv[ ?8|<hLS{}AߒydцNEG[Wr6_s"ϴs U셪m wcg)JZ:=jBf 6F$ WQ^Y@*_Lri?qv3 nC_E݀đUA2NR[} _@#?EAuBj`B-ZxHihjG<,sG[Kg*x5Rv* -`=}d{X@Dc_Bx)!ՒJa[3P9IS@wc8OawaXf>rv:Vz:=U/ Xq{fwqގ`N-Jn &wRkXRU|*IkՓ!c6212 3<&n`i %(ou{.O} [ kPJf !}rU0s- Lp蒂r#A(^p`} /w- ;VxQm@q̤ wYw0;p+bbxTt! ST{7ϫ|OzqW48ق!5E5W((Sxqf%{ckm"62yr 5B#4y$|QR&yi.rK 50fIxn@v˦C+iVө]NrCoNc8TqgͯMyY1z8d/ܷε\6(qL$iFPQ*yP F'uU>Uyп8xV*}zP[(KbJ'XvYIP*oa.i=P,fX5.jlC38Q )6.rs+ 57<6̳H>h!dC5bnEnR1PKMmw4 1]ޝ݈_vʋ' 8*5oTs?#Gjơ~8EoU{ #❁|I2_b}sB)YuXk^?vr|55׃#&iۂKֻH+|):1XY􌠬OuB>(/DOͿqhkuI5gzy~1?%P>)\xIL./[>iNrG@0NKVZiHO[oxEȧovfsuE|5,B-dxGʼ4cSMft7\i/>ZgF^Slvy|2W-,\|2DU`Jrz Wicuyrٮ>b=UCɼn !TSi1v +dSs`a^XDPzefaO`ǚ2 c*!,)!3DH_k>bNt#i7 Kh#Y{4Mŋ͔YݓwK{%@0·/RUW`i-j^ y6@5&; cut]Ggmu>@O+2x1 p9v2+F%87Ϛ`XF"67hn b ܒ#Y)JveI /^hcgE("s7.a $kS76`s1+"Cؼv),Ku2z0Hl;Q{%? L,&[Z|[CW߼lO p:[&p=zAX"9+z^̡z JnE8X-͊:rpr( $>Uѽ#asG+HvXS~EkKXtӖWV mXd098M$|FZN!y cq׬'Q6WT/^'kV2'[g/_=$kn<~vK8%q6"P6pkƩAճuf]8Tyۇ& (5MHA|yމ EsտeQ:F **pT@hԜ'g,JmڞJKWA^u%VA*IʪF9SHw:AHTBp M4H,v=e=W=_I[ .`cvs}RLvI2܉f`If6 <`޳g9Z8aP Cr 9@enut5/V5 OπLj[DZ Re"Ny#~vS+Lw8-L_\h9_64-2#'?tUv1& mZ͘ U{d08>=JT(oo`v *6NuC>\ޘ7GC_iM3Il\X>1㼄O*ug Yjq "0$0,5*#z=:UYo>gAKV*kX <,*#;4idhL[rB6A}REW`'Ủ6.ԝ&osUh90DANxU+OE4+cGEq={jËGOU@p|ꈗ@=,9iW?D)z2ϩ#6 Ky7AxS_ Sь='MnmKsbw v}dby|'S]QZPD +V7 #*?KQZ}3D}ϔ)hC'GV%n9I7Fiڄ٫8Xq2)7Q]'8 jhjFEnbaQE餴ژ˒!EEo6?M#ȽIЁܛםܠӁi~BiBt- 5 %yO=bi~ؽ_q }܊- ljJ k 5Y?GbazZzP+q38\F^ci~wOV.8￧lZ Ug_I>3v>ĔZ cSfJX\ R,dX.)3?w^b7Z0&O* %~-~.TӺdaznm7Kyh):0}P&KwC -s:0)6k{5gE ZMֵ܍"nm ΀a(*,ڊ mD7j䇲s)XNo0&h×.EI.9힭ZYv֪ 4:i{#֒dAb7;Qt<ټb Cu7-tَ9JqY]R7ŽUCsa&eQŌ a5`u5F 8:4`DDIu{~DCnJSfAd 3h؇}Õ (3f!A Q- ĝ%,P 65.&ǑMe%3Gs9J3+;&$4UET[`LpkK/uHam tq#/&>0ξhcq])y󘀔:W@HOԙ6oZík 4bpAI&S=[x$YUc!.;훺XI[MM3˒''ϗXPZ[||dCI"1觯IiV$e9[#U+aotFwva{M.f7D÷ira{=VƥWp^4BSBWU)oSo}[B֥>79|O;)з@T ; ~ oY@HACdrņ|wO9?9I?^4\-\M9kYV{4v)V>fjfPu!T ;u@'e%[ps~Teel$|^SjFفQ%K ˓b5A5P^OIYO8օx*[ecdقH W!1-g;? fqPc2U[Vhe3y]H&5TK{Yb c`YOC6#ʒwXdtX%A&'_螞|-SzAE3\r,.0.XJa ]A5#1Ⱦ㸬V£vg0Q&}tõOnP"a*Wc;{TNx!Z ٪jnߨ&c(˜|2d)x j;!; ly٠F¶y%0egl>tسJR%D)j| (d0'A ޣ>V*lJXHq]pYa5۱3UUKm&c< ;rԌ:cv/tEwߌt^v "^}9= ;QAroIy|]*6Wf5(s#V볯 l oA[c"fx(s' :P瀴n;ݼ&Y'ig씢% ;G*RfzI&Fo^/TP=--5l=}L呕WÌ=*.x;Fa1LȣӸw=.5qZVW ^{MA&}xWHV2z) W@ h Q3\Sd͊^q_&Ϟö^1l]\#C\2*/_|RCJ G҇Qjc4q}K,'="ISI9mtc(]RO9)zuΞ_Et}L "Ֆ{͡h,[}LfIloET_6xV,'|K^(ri\NKX%L' A7]Sp.Vk/0}~DOWErɟ$ΝG, ';l+caC MFSٷf_雃z5y ti~1B]x 1BzI]`lCSbsXC- QyӽNr+n`P{DP4=>፱^Ƈh481yeWֲ&n>W^ݺ־T)D QvųȗGCT{2T_/עvLL_lAs'P75s m3VBRgԆ,4&hP)^Mm ?V$2D}Zt:f2,D#p=귲Wy)g@yQS; tmy$sk(5VӺ @^Y1s\/Lo$iLӅR5V:S_=ϝB=.Tr, 붸7I| ZtY9(gv*[#*ݓʀ+'嶛9k4ոAc+zg?j2mQvxZ#gq}|Pn{aR IB5LN"wd:+u.TȺ"@ 7O}H+Iz0}3F#K,dwXg}LWU{Wus_,#KZrPEVz=-{ ~*{,DCNNM94SDxi?`Yk̛r_IPwGFq<Ƚ=̀#Ѽ(c}MWaəxP3,1un ɐ8,Rn:|}.տQw9ܠ^_6Ǟ/:#i+xH^"ԋ? mOPN$U[[n;g:|?F:ݱ1]QG%7MtwS5܇נ*LWa^=' VqBSap,+<r6.Pwb1%|)+iͩG:QYD*OytZN)gɸ #E_qW f3 _k%ߑK[ K"^=/d~z(vǤ22췍H2sm&L<"d)>CВLŋ0~|Đ60'rrjTD-NUI8txMece;ZS#hJӀJ_iP Q=h]"<4{V~]U0Cf<@H߅d54fk&7v.Н''Nh?ihoN2@^Q5ݟ3刺鿿Y:?OsRzyBVG|W)>*5<ڦ'IҌrEϧ'5;!psJ=zWREή"MlNߕ@?Ee8wЈyAlZD)3Lx]z:Ѩvn* <讒$ ?{52T3/2h䝟+vQ*ҋgT$fX)"5(C\ AR8gR|A*Q\<更[}B4!-@=837<`4|{Q<; o_Ac4?Y4(ҭޯAfy>΁ 4l[[6d=ŴrFjnJd-nmAbnz\dߑ'7ګY-qRUX鍽Y >XP'9dkjw*R Ґ/nbˈUU"bMKƦl.rv񝗟wb՚sڅ_ |jwRlC#NmȒxy[ .0hn|j һխ7Ya3&̖%(OB Ljc,(0GUVakE%ϖ]V\\J!=feӛ[u(~{37vYOQ'=Ae^u(#U ?]t,H,3ƚB12EOٳiD\ܐ#O -h%~<2M ] zn@0=,ls26qa_ HX?qE`"P>9!r̶Ba|q͒Lw/o* V]6yMtSwT "Q鐻$ zCyha@il2; wPzK=3o]B4&'^it5kӸ.?B6y1_! uB9eti)$7;rDD >& 1nmɱỚ 'Rql(HES^,vх/e:K@eta]#{!:ԠL A`48 , "0L"#ܮ\w걻pq1W}ꦁ^8t?::v3^oow1'^>%̻۫fpO43 x 6|:6 \<ǞUȅхn cIɼu'u>~]V+C5Eb[P]nDc )j:}iC'{Y,BX;8T;`^)% \n7sܧ8g.ފW)T)ַsgMz楰/}m2PʄxAo!LB>I Z.5C-~pE$6$˜]͉B 2$%»Pg(JTC׹HDF!Ab)/BRa>or-lsOQp@x#aB#1yKIOD>pvkm8i!~ mF71MR$Kys?u @g{I'WLJؐYy'Aݼg9UxӖ/Q0Y23w z&UV 2ʄ>g55$Ƈx>M"3șіz̽*hNn @F8 t`Jw }R}:| ,K*%vSG`Enla ug!~U\E@VQDɨan8|@*M'A3}[ :3,n`QΈհk!Z()2^$s80R?=R3lmn3*Y!ozBTu2loWSm0'}̓P:[AרLAj`U~SN瀤۴F[M3~쑍(4Kϩ2r[ 0<oaP̗ PY?ڣPi]u$xb@w. *4o;7y  Ga@aU.sp{oQ:g$Y½RyF;i9a[&f )l݃(63c)ߠ3B)f,QivQ"h@vP/b70g5TR_Pn2!zl ӇZ]Հ^@,m%!*6i1UC+K؞SBÍv2 qY X҈4U-'O4틵I>rɮ5+'!t_3ԛ;GM/rC%?5W+ֲAC`k5RR;MpIwSf,Y۹ > d_Hjgj;=0QovR&0& AР4 CbT$#"0_ַsxyfqR~ҹYs4k78p|?WkW[lCw.*ߍsɻ=t>8uw m h09®_#,{_;ϼr'IyX0T*qmM910O88*PA`Р4&`Xj !1L"CϏǪLޚ3yު_ϻ3^O]/amhz{>YKsijTX2:/W>q ^WG#U#y،|`9.u8h[+WɈ @ ȁ0ak]0AI&S<͝pp_*>aV,Q:Fh$b *^#%xo$/6E~c#+ye4kT "2cTVrgGBdBpZVh^: 8Lh uy Yz;ąl1x'=6xDI^6 lWq'ZO,j/0u 1sulckV?ڠGXWj4 N DPҷ?7bo\$f#-T֊z&ybͮ4J[6k+Pf̚3|o|PhU"%: Y֚^xz >eS{yײ"9$ԻrGi[HmsS^OD6LBt@јH:p0+8/TW\mξ$jNk@qgaUUom~]O&Tc`b.zRj=8ɸآ}>|C[HZ D,m7+8d~kN!mRAwYVSDpq¢θmM{< +Qq@ޅ"*N]tI/;wx95ܮWZFR_`YbFiMh2/M[nq2î2v)^}i$te^y w V4Iv;SX`+ruE=ߦ(jcy{~f:Q&ۻm:/Vܕ7fƕ"EBewg,mT_fr/c`7u_(iJv|zSw&["6<~:7 f$6W2Mhy> i%BٰB:`"*UӸPBܗt>.6_Y޸ȶr$ #޲B1"||O0Ó /  .R㲑H)Z-vøt+'A6*Wƪ2]aQwA ?`+(2gUͣDf}*oWԋ֤T"C Nׯ i۰+/XF`w!l j>G:hà cY[m[.*"i1biI8uY J`B6hީ5' 8m K>PBHvznWVW4.Bp 19O{?oZy(ž?#cG螉VLHcP'JCl;|g+U\O`y#&giEX j&g i 夨C!sn;ousd=:(&C;ALn#d3ɚl(PoR x15r:1yLmr ymQX}t4  laj9*s]73s6|.H7m,I:Hcs 5/M06b /<-}F +hqʙa$d}ctx y,nГ}wZl S"o1fAV"V5`p)); S5J[ˡH9o2 5n۳pg TzmVC:am}?~Vz r[shNi ?+6RPP9Đ͸TIy+m,mR,>Be4FD Wٛ3;הd Pr"+(vY?OmNLtBҖsY}y?ZV=ZnRAhmzJ6S4IbS_i[ҟ?mZ˪ ^ Cfq^5~UR ^dH/ᰆm8ga&iN< P+φʋ':S{s ߓXHxOrJnhs[=[uEp7 )A^1:Oz-;+X ݏ UґfTERo8/RHXT]&PJ , A`$ "0L"gUSƊy2s7l~;25__i6N ?>. &^oDj]C߳Бf86ZV㙦 / <B6@w1] yrP&gX )$zdӹI=ݵ<-h~.z􈶅VGu)ZQX=iV:a{ C۫ܬ:4dA:@}LlA#Ilqone1o;λ\Cizdi1Pq㞎ەfmka8bJlkT(E~º}؋“u999msC4\U \6ŮrtKkwl_:2p? ZB/UH G$;/>d>XJ[0weݝvg 2 r^;"=t$~1rRt"hBX9]e4pw`ż{JcCRDiqOT}ܘ2R%c듑O8}.cuՖ\ :00z.ퟏ g ӖlMhIHhxN_B,/MҮwb!ςڐEֹ3豹s[Z)MMlh茁r&v1`[bq5:-9/&-E~4DKv(t⭦Av01z{ZGEHD|hA*}OZhv%P_2zcCihCO | Pil-9z+(`郚ѿ$## 6M*Axu]G0dAmY%<ヤnӺn,Z$ϬI+]up\MBX" _8.>+ I8ʑHj̭5鲻8)Vx!ٽtSÃwF+/~g5a/ [z^5[5'cu \`qY/ud*3rMv8QbKק(<-[}KBTjd0FǢoȣ-H.MRP}4>gnt= N~K32F~'H{*[g.Xi$W-)YCyJ u ELSVVҬQ=I6SUiw3{$ܳvz Vd k6'yt:[D!&BbrVz@X(6 Vfeh1NCkU(U57I|O+apʂ~{~/_m(yy(@,7ҝ|Ǐjڭ ON 'Bŵ~52\,Hw'd8GJR{bAEcr5k1If&q֠ؑ앻Fb$VSXDZv.VPPQ1$DG!AWh%>Ŷf ̚z0 Gh(8S|no'q|D94|3+ƥlR?R_JYފ>-c!FlaP{Gz Ep`:4zvN.44 jz Xy!쇸.*G4hwisfZǤ4"&NSx<l)u&)9gUXy:9b#_L,UIb@7VXpNw#980sLiTsn"aq<6ELBF^&[ /z<f鑵Ħc'\E!!.d\9GO2y0zZș=g`G兌ɄQQ0m/!j^ ǖAs5s7 oQ!VH%FjgC7bBҍW0nZSE<8D\ȝ=wR- -.e~.A' V9JeFw'v9܁\JExs+H/ԋ0mM v2of)2^Pz[t7X}8M`gF&Z$Brszmyo JvCz__b|HUcO M47l ͽM1F~[3L9n~df8վoGD[!ӡaCFHs(SKt"j 39[{P,c0fA4vV=_Q}f78LqmPLXKy3jeTIp*{y̩b/ilok9&lۢ6+w/Hw9ީ|~M tLgHqHهB}˖HmµO}L$r%+D4EOx XdtJ"h:Q8mkj)!"X/C6Lo?ꗪ~^_VpZZlf57L8P'PR}`p/˻$[Ccr`4H|ICE#iylGBi<.ǒǼUtk=e]4I<cZum%!u Md\>!V&L10h42+HQuN&@EY eͅ~_y=^n哊cNiSw*sԬtjMk//--7_j:?+BF̦!|!a< VV#ZSnfI5_>iT7b(`lA)fg( z1E3โ/zkgodm Cy|;$3|ΘХ{| 볪a;XןXL~3H +TIu`9DZc=W{3i+xVΧV#o<cD=i5|3t `=|4\>U+zSDx| /p ga q,paGy`bk > cK>&q7@63qG̳DawcpZ)*g_qvVox8h z>)Cުh1{p5U9oË K>j&\ bC6#X6\:Ñ z`qz.ZEG`~3T7&|𝩬yL{ZЏy.|w\1#ۺvҳ"1|?gаLStv/CL.YE/곡Nm)'NJۯqVsJJ\(Y㰸2 t9 IZΤ݌^4]vhi}6wX)A>DQ`?> ֳ ѬDzԆ-\GgnƿT x];ΐU9GÍYz3Ǽ jz .y) 7olĵ59a ݽv>_~kfSNQxfN:(TT:~Sw.59Vds/4潾H~٧Jzy]nu,zh1؏0.Დ^b0! zzLn=ua[ ^6j@^Ɨskmc.Ccv ajoь.daLX7ǃ(!vbyz?jXώ Lb/\ѴB ubCt7H:/y"d:Tn  aT P& Da*u굌>kUyңzgTг?(7a.lc׏~Ș?c}Gii3-U,_g^9 B:I*~|.şV|kX@CϽفz7?8Gx.30b:,eSt2)K/3'٪{z1I^J![ "iG{9q=ByqBEb<CgdFq+ AW#)_P)yMۡRtq`esB?K%avEs8*<0gdG@kaMhw+fc E;c>Z ?ZRsIrFdXL?bюMAIl4?PNol~eq@\ CǗCU 7j[=!BH K2Z l#fIНt?S#eLz6AݨHf?%kP}_5ݯ،\g$5: /UlMh 50ԓ[i= #?K.P%1Y)X1M`RJR $;%5Ps u;/^8|8\p/ʲy^ א)|Բ[IW@5^AݮIF2 > |?j@᫾x0hxsxEzfxz0Lo|Qtsy&(HL٠v:)㨝qmNP6B_׎stB1 E%_Nn00L=lSl 8/-WHg<($/݋S1Ra4DM";$-v$G42t:;ͨv&oVth#l}J;\+NFOJ/BV8x2$˓tUfj$REcFgv!>jA 3hڥ~7ܮBoa.H'\D„t4ڑ/6Uiap0w>&eګerUx:kr5LtE%.b{VG_.uL ~AV҉EL¶~{x,(PR%RLP&:"nʿv rnF ,r]ۥ kf?~ o>s'6f%1R=o-ޘG pn{PH_Z`z1ru_[Kzҧ]b>L}^=3מC-3vsrjf9fPY Q^KÆU vz47oZm[ VB!8Z"R`5۸msT-PxO'V,4~#_'EcW>1'_P)јwC 82`~>ңR2#Oլ wBp A#sYgWEna/eNiiIxu1ZSoلIVrg*;lc ʭ+zM/9v>Ulz/:o[ʸq'PHá_)}|-뭬, ֲ ϭ u'JI-8@gO]i۵z%0L @0?'T'9AH3ir:# C qsMԊ*2Dllە:Gsn{ڞ˷Ԏע/ҜXLu&?7۱eg4Ap]x4(gƁq .sotz03WZcØ)Ocp>>LkUcw.!I)Oi쉦< A0ĎY; 37"/h-&բZ]#u8@ÁCoKJ _;aVsn[ rSKE5gG\Fa{b.?`Ybػ^.nQ0RUg8 c8Eo/ZzvH}Kp4B?X:KJР'rz ͹jKUHZC3L  h ϕ 9^y:$tLTqu?utFpvjcV^H]B4ե9J GKVG=̈^k8lF ]U" MH`J4FX [ )a!$?$/Wik,!36 dM%Nk>(2)N8r(kY=1W A.Y)Ql=YLC:ĒȆdI`f.{bO[.!NgHAgbb5¸0N:+ݯ/$8l{,a|6ꂴeҢ繌tPCCZIP*QRG Vy$Tb Pn(,rpT9{\&%˒R U ʹ_OH7̠i8I^G$_&B|cK @$ns@i+R:M;T;,!gD]ۡL@:w?AXfRmԔXϠMѥy%6Dw﻾WU O]֙фd+#!BRE}.03&r''.~WvY\R{9tyEkp-\?*3d?mA෰<m(ՏR&I'oao Vc|Ӎ [ P CB{y"C;hC GKr,Ze  H44B0yoP)-%x-` *Mʻ KȐΕf(Zބtex+֬(wĮֳ`vvU%He0=u>nk*THH{Qݐ<:M-췵P߰&хLrsW\yݼ +, >J;n7Na'# ZQO빗vbKB489yrlLDW86F`-0llኢv +UWl^aV1[JʦKN%:W3K[meiÕᅫ&q c/Y경,Q `$/)yPdg[f=ٕuu\"JGDCR4Q쏪gQa7sSià^$@sKyi9uEDXe>tvj!=*HaՃ9#te"s**8HX"uܯq#]z`͙?DXLsnu?9+B0:`4KO^,b{sE]Gi:4T`TˊFڨXB(ЫprbSe3T}ʝwr_Z[AExT#̏}S쉞7=&}ч:H_^b}B[ܴhDa&`* 'J HXCcI(FXXd"d. ɍv#Ah(*E[Dn*Cr U1msE\ªl2`}B]Nc5Uej[;pިɇiQtV><)z<ON9짅=FF87՛;sX؎hDW0Ƭ1Wjm6X %'+I FŪ0\&?[|5؎Gh-em!Ss[/l+ s5"ftB.f4_pe~!vQ#Ǹ'U^7[j"7KڗWXc ٯ¯k5g̝)nc[7TV/s&pz+h nAq㪋H=9VO2ȋ*4F¡1TtN~qp ?B5,A b=. /W27ͩC J8>OC\ڨq;sC2($H/=/Kh= ,BQg؜O 4OGhQaW| NA߬VU5;z5}4V&s,?>{n&Mتλt6X+"^g݂8g˔1u>nޖ3"=Z1";O'}Gť|Fk4CWScoۀ6vI!?N,p Bd06 a($!03/*]ߟ鹘y >W'Y/w Yz%7j~2 ʜl|-lGYکKql\Jlpv ''\eʠi JN>^N75<1, "m8t`48 9ب8bjET#q#oq9ro.!va:xqYZd\%Cz^ %Z1y/Z%t zd*#2e}T!=@3F6uջ]B7RVh@4hKsV* 3C<5VbMrfX,YJF,aUzNv ݒҋ:6ּ}^9SQd1ϯ}έ/ePm޳GXAu ];ԜKGN}h{ F>Wu1spem h×n7]pEMľޣ >p9 ]fu̢ u]OcUΜqW5J *;{p[Ĝ RxY*TrcZp oQ*.vo7W/QԴ=(l3[4"M@+8"hh^__"97Ut4EE9o>|PZeUÒ[TQ Y66,DQMæQ}T[W=Tv^(xjRGd"Jߐ➄Z#ɫ.>ș`*7NQ 6p;OZf#<6wd;~}24J |$øZV+2(4%cvM(AIuV,7846v|hs3b<06 0?eBxQ~EVer(!y`VϙBI!uՈqZiuNbi6i Ct%``4r$9N䱿 Z#)@H?ij͸* g7MuӍBdF0%R iq-$ &ϓ<'WFbOMGZQ#wD/8|,/Ճ l}BmzB[D.;(E 'c}Gړ/m08Osd;FְopoB> ~jAa:._| k<+TsqA?Hcq[hGӍ~&O8-$xp'me"{*QL", hV AbTH B!0 "G߿댗 +:sL=}{>sni˥{m:'9";܋_?__ox/ _4xqCѶQV}VߧETѿ4WvF5}ĕx/B=$f8=~: E3V-%0 [0zH^&a$J1@Q PY ~t ٻ%ʫ}&h*#P=c#{h=..4P!uL4BU=3ٖH5YQ~'C:;0(Wa䃰D5-39IWӲ?-E@|2%֗kp ʂ[XSkWQt/B ;N71bpWҎ=ĬP.F/IrߵqH& Z=b<+x1o3,x4*bH/܉d643Ԇ?2pJGyygC۲ t-'Fќܤp[`Tҡqn6MQo\M1V8JhHk:*=-L|V:ֻ-RwͲ  ߼eq?*j9}kvAV ojd/&xN#zˡ1z&92U|v]2ZD2ԭrvlT tjgK1Lc]Brq8Ttoہg@0u*~AiT6H#0T3)auKzk>4x~$ers ;TlH&њji#-= zieS%=̆)Y$ex:UhZHa4`*#q~ݡ_3r(Tc 4`$A:#[G9IVeHI$v3Z?=0N_@wMƟb^p&-iD~= r4z/2Tn pQV)&b=raVVf)YFRM{‚8e/XqeψTx;yo0s_m._#{IkSvX$sdR{2ݗ!jCɨOoL_⭳zC0 N,)}zP^\YUS4"\ H\pr(;se5vf*; έ,x*MnCg>а?>s?7U})k 8gru*8'*!/o\q 5(N~{RR@F&9aQ3>1dې9 PEpӅsGc0& /ͧIƜq8|&za?Dɥ/ƴX m!f{Ja`򰁵zS*`6Uǯ@ɼ@z{C ItƩ:nm9>U{kw5j'Or_)z:L?7.Dž>+j%AzoҶ]\XV40GTKZ Nʔt9Aܜ0Dx"JcU8p LLћ-_CL&|YΖbmzQe]&n;9RMt(5U۠wd0)s^ ~@HH L ,#] p7"h$j椳4nvdN91FBύ?94]kM(Kb̟ Y15f^xAUeX"^ѳ1D+ᔤKtާuˀ,LtKۻ DW3Tb^@C6ןCH,J.RFpұ6(dUAH c.2sP( PH)Χ} z6k#{'=~k`$y'.;r.-t^?{ig[h7G*o]jOI)ZX\L>$ˮ?Lk rgy>"7zf}TOiO~SsY`iispfl.<~aW`L}u*̬Z3֧]GyRF~Jak_;N+ٛz}|Hz: N I`D8wA~]@8h̘ I}k5/x WĠGag|$SN̞s i GE/Wxo lڡ7IN)Q~"N¡0EIa"vUq`ATƵqCW0Fr@_y6s2z]ƚM-?j45|BK֡]" l7i{6mbVo7ۜ>l|hAx(%cڙx vx<;wdM1}>ڌl(_+%MOn2{8$x @+UmUB4ko p"2H~X@Y ;HGa^kqʞZ-ys7$=ܨEuP4c8`5@̓;B1o,'1] GR _&ZS`]\{_N`T->K(AZG)]OfL4 @+o^`QXhAh;ÃZĚ>uw J$Z iι9(}V"Bͣ!)cL:zyC֌Aqn2uq\.7@#'H2GJX))iV }_F)ZQWS dﶛk2 @P9_GW;YDL863(BZ5{\.a̤FD3ܑ1r[=AB#c#3o۽A](#ڸg*}peŴ.PwRϻz=knjB`7G"`2Ɲ4-Y iR $s4> !:qI=X>̒zA}U},LjԂl̊ t뤫C 6.c53}*ښxQܼ*r'ce69Uq&"mG>y&~0sLB&L?C.K)e-MnwޙCUM&0=n0d8 ذϚS9됝: LĴ,|[fz-/֡1aP@?EwɃh2-O4c}37ZFM+,)j< |֪ hG9d`8mE$:VM9ޒ鄦2 _=L3jdhÚ) hιeKĘމD7v)k2ꂴE#nRM W=ܲͰK(j4iJ JB(4mKj?|!| L\r'mS5QϑtmLy/.4JH+GwE7tӍK?@r|ؿnBpTֽ&weZ|8Y*1ۆ?rPRh2M`B&nDw>R 8'NJhвf=s}#Lx) ۶ ,H]#Y R %NjXKV#u~X׻j%[4 EXM!18*nnғÀlRUˮCV8p lP T, e7\Oo={wsVb߷۩:{4#ʿ[֕ȗ{]޳ln,? N͚j˲\?2`.Nmuߠ_۾sY~4@騏cc z;< {yK>ؚQL<$W\>0~t(8P; c0`V `& B&B}xڧwdޱ__No4q?x\28үfzDNqOF3CU+'X?b%3Paco#hy>~8izо/y }݁-޾ ~,KPVn@=Yi<̨Xz0= DJF=S \AI&S#!IwҰ0>XÎoGDGK*E iɇjiG- e MOe@yŀoQh}O pJd,Y+cP_PΞE+l@Ȏ f9W&vPEy]R|($3. j`d{T 2g{Jmt_iQnY7GN =Mi3_ju1]<~'aU5?BxDK$ljLW!L7&]U:HmMxFte qm5ʼnCۓiD{9}O#+^NnlIZJSjêTr|ۙ.L󿬎0)pX^/$ٟ76Kel~l$:!o+I Y4|WP*HdJkA2$pa3=Ig#C2Jr4 GBaV(NsiQYyzS:]Rx'1*=/6tO*g(Dz4ɲR!4;eSM*y4{INqc!d&T cZBmgK8V q|mbFqѻ处4U򢝅o O~ى:$0985լNb>(y_HX>-=-]_޲:6?cΧ N?c* οop rwlNE0ik =uԗb>6{b,Onoq+dۦI) VEGnQTOק94Bh(f`Gpm{@fAOhq[=ʺGNw42,i &h NK6~ݭP=t{l`%wsd@vwHjq?8R7dc,X(ZǛ!We qE#QG.kMN|;4k8&9:^7xkQB~,7#߿mи9㦲Vw]~1qAr$?]-9$9GW`74YD,`%;gdCE ӊyC))4~l_ϴ mo/| 0ysNYNzE?o qK@Tӫ&O8[_2$D &?_}dU6m;C.MFfKP>H[n[lf{e'4:OS/LB7-~AmO }*23{AXk⮛pR7c~/eZ_t$@Ih';nH9M2$9 /~ m:݀ %~ߌLD#82tL7VYTJuY0^ыA͑>VN9W[W(-fߤIeǾ"UݍfL~wL0W䡄:=} 'ɖ/M􄐽ЍVKc#6)xQk17T~HO뢷SM̼J'KLQpg&V۶`91|KVT=5B(lĩ6 A{Kd5dg0(]!|5iVAyI]Mʃ ff.u!Wx㕲%0}~[K3(%kܡ0Cvw!JRl z j3VW1_P9)pK%>lagحܜKv-L^#Lwϻ@+^~_5? ٬8E4c.K8z`/ATx:s4_n{g2R.!n,-1l$tVTaӖ&aOvw/0V/H0*2 bh, PH( Bb=_Z~=u_o׼~F].?e3ߏHO4ƽ¿ofJz^?-]ÆW4}Q͐ Ǧ}ysW[ !ނ%\K%y$4AI&SM?\lh($eBo[ .՟n;!Ni^3XQb3 j awKUݯIgz@"ybqkkxi>1(r N|S~pIvY"؅oyGMp-gmD#(o ΨJ?fqN>C 5Li8AhMHnЈ <@3-2+͌;8bK1xˏ&@Գ|:PqR`͹]"%BaM pD9Y$7 :iL KEbOn{X#(`Z%tkyw %g3 ڑvwx*^,uX'GyH)֫3.֪HDRY`2(֕^r|ehCFP!m8EߟR اBq ^rc0~2azeguHq)?4q޳d"VF)ͧ(|`J!AOɡlƿӆ..M'Zg( _Ҿ^^ϷY1; = M7.cb{irTlD %-ni,/2SO$XOW%)J{XyKv9yƺdi@kLRK|(cjVV#uh':a7-'p6UsRS) >HiIn^;,?rRǗ>eq˘"'^nQ]&=yRFq~%nnWFjMj֊9[(P#֩FQG~Y߇֔rx#uSr6_CAr[Uʩٻm\P[7)J[ FJ7N6YGQ_P\֨2ғB{ppaӖ!Tæ6qC~Dn ud}yDMaY 36YyK&3]Bnpdz!-h UL4ei2,N]znvS_M=PYPL?|32ƚf+]/#w8\6/" q[ſC_3*;Pd 6+h;~z1=3A)6əX2)c 4d.*r8-$i\D 5ޚI׋LRp4K)wNU &a хQ4@ %+RcxHYI-WWWD$GXamÓ-/(OhTkK+q3oQ$щ_`q ݀ M)+~nA7TR n\:ρ,8<H<,i? -)'KyC1+#tRNuzOn%Y ]1  ozx"<>FM-q"sSM_. \PFF{ٱ S.@V/,?uqaֽCl_i0#hH"i#!@_?ܹBCޒom xcÌ*Xm J ŏ4I[o{f)SXq tJ0X.WS-оkhQĔNj؏֎y4@r1\JpQ a|'e`-vx_֛8=4yO13%^jgvI>AJ9a1L悬ffM.R6﯆๹0;;hc;aqf)n[j m4M6a ;a@ %m8k+hG#`Ԫ͸T?*5&k0@7ÙS'Vf=GL>@aU/H*鍜棑HPdϜ/SH)f5.ԅC5 "i-I;!AdGje~݆* :0p @XT Ab(PD#B!1"&Ƿ|Ks]uRǿZ}3sWaiZu~ib2GN-DDv*a_VGM:_'oNon$dzsپ> a-JM"A-A>FE,=]Qq d_nJ`<,@0 ab(F Ja3랹>4߷2yK׿ϵ]|<('l^ϥؓ1uwyz?+t=y&#dꔛ&4מ?tt -J ~Үhؤު09#H 't|KB8Jn@ hN<jG&ʇCx ߇?|^GjIgɠ.1rNiv {QKW>e=wk%Iǣqy(3&0QWZe1;%$|q:x41-&edH`%vW@[޻J]VJ<@tB><.4_]b2]<@0$]fFvnK 9׾R*qGpC!>6rvtQش[cYZOVk1;D></]M)hV&!ϬTM]6u.ˢ!=׸((L[?YG($}^&PU1jgf \Q]f'@F n')iu/惏h^ԫG= DR5I2@z d&#mQ&܃? ^Ͽdv&ɄQsYEʝ.vjE]ccm/ʻzouA05RKl%t@KF{8J5˿jt E O7D7мlԔ EIsseX7e@Ue %Y@a469< EtŵwB_NGƐo |%?He4||V VMJ~AiZl8 g ~C8+9)m) K|"XHlpv۴>G冫$0FtsCnD ̲hjEZYtab)9O(T7S,]qnGo XUS$NĬkR ěЌ``SOhI5]vUV@Pi7LQ}uf} Rή `rbxSak+ 7%jCi2#Iz[PrFǒ x7ˇ h,qVB|8aT`| T;1IM<~ ΥZ^Y^\;9e)+ i2qJȰ?<NIKh9jLԧ71 9 G҈ []q*<{U/\a$GI5Iʎt)%4#*0[+2F7K~= 17сQ1K0ėwN~ OmuRe\mvd@nHtq58N#zji<4sg<8u0#cH0ACH^GOUGX:gUl68XR7c:锎񌶔*E>QCLmzD9WV?o6BBU2&k&pgw'!iR!K+lX'J &9JJkh۔Q㳂{[ ?eZ*ޓf!3FOW5[#JR/ =*Nhx!Ռ531$吭uKznQl=ϛz,&A\Vy[͝Ԧ&?@r}!EN|;L35clC:`8NE'o⫒dߐJRȎ5~Sw{;r,c~iq`ypʫބuP. +Po~ě c*!nBD>\6$;wϰT%A~5I^عJhQam.UW3DBEUi[n\z|K櫣˅jϕ$>:WmݻVT$iq2]CAzt Jm:yEKqh;U|y4Ai?mjjTC[7AѮ#J#W`7'.nވX;Hi]SHgs?(ax}(WXԁgd%ѸܵvJٻ+8&6gԥϻLW+3pF׿>U?aȎFiHF1=Z9Sqk;vnu{43K)‰N(rX27$v!4Z irwE{Ã/}$%QE?9J&@`YBܕDgq1ou)F=NXabDpEQjBHNǩ\|Q@A"9rҝ0 }`^uٗytrJo}s MF5i#DۨAua;êlzB5X)Uۇ7jWO'+FΎ!ڧ;@'!aHz %=@&LmƘ%N{zA,_r![9l Y5%qܲP> ~YV.ufcw>eG{}˵JŒAu=f/RbB]VopYƩUdYHD\S,,[XX8\Dxzk4I"G)>&FTySNYX8߮+tzpY 3*}\X2AWoƯ)#}/S?Չc8kEn ? 3T"n&X hpWtc{!\ TM$1b&ӯANC=w[ W6ojEr#9µ㿫rx2W .`2ܺhN[iNk ?B̓3׹ex nڵjZ[-2g邦Lב}һ: ds5ݝlFij}hͦgkxLQ^ySeGT:h~0k_; 37"t v(k|6XNKz3n/q׸_+;0jYS./Sa-,8Tab {%0sYN0ŒL~cPx\ b}i˨D7#rphMQ:q]CSpJ-0o?+*ь1:SHbgڇwjOe]ב;7K Q@dt/Br"~wyj.<3Jc^d4k*p(@MD@,p&`,# A& L^<|mW[__ۮgjF)οt(mӓcb'lx|5TgWcGlљJÃt@u" _Q%0qoRutEP,[n*X#Sƕچ#yw}.؅G@1DEHi*8 AI&S+|i/g5Ua|&䑢 JaMbYuӡ3ʯX[lAPݒS 3ȢPAm[Z o26zFFOCƌj}oZ~;xQ*xHH=&u(usZ?v̿-m*?Kʂ]_l6A/0wx >[qMHQ0b"1%c=_6kz`LiknĈ%$k%Qx>L . FsryICQDM/` +z7*=ܴD=}fǕ&FÙ-OΪgg4lK1C^1(=kuM\iVҫ6g.0|D%!rNCHL%P/cTZؕL8Q47"&,oƬbЦ4Aۯ$OT젱 ,ɮy07ʓh "fP4=gGl?.6l]?ˇ[SGMb`'J`mg X! pa-L#{+ rͺ /vJPlak3A<'-Nmj$6"YZ54RfO9_3ol IaDT56>A;kxԷNɑMrSs>7ת.e[]ެz⋈vtZoO L}k AǨK}^A2eQßc^ ^ `ʶ6oє;BRV 5.9)n.T욇 <;nҮ*NmeG&UHI,RHA%?xA"_goVRL#3%tț2OwVD2]6Alsh\h'\8^{ ls Katrmw@QR߅#1G/ZAUq}6^獦|V@>_⢩FZACѴL?#%ΏDpnO9VX+L{Cdxako=!2wCN,03Y]a瘙g#aAU?hA wX̊zSs -,3}qRO\[}-%;[9i۰;JPT`#wF"dOnw01i7v }(ӾG|R=BA`th@:V4vԾTzt@s*9.{{}0x"$/̉03{biO\?0nM\5[pȺm YT^M$wG=i}=!ĨW1J=t mv8Y^+XGxB FH}\Vw!U(]}pοΫA7Ce=ᏔC1 ,!_U;I*Wm:BOڨ1|^l81T`w$*@Twhs.H|`lajt;8- #MeJ7.%qxNx,s57z"#A"#N!ۦW(}[;!&El(A \<nlei.9 Ne jl_yNd=s Wr-IPf;Ke'qLknsvTh۟t @<{C̀)d7{_# Y~ˁuTe!:Mu$ O f@ߖ{Y:,[MN4wtq<<:Z6)b/ok֋9Қ)vGTd( qW1K"nsLc{-LFvx'6!}REQ(ٱxfˈ,,e7BiD}ԼKxh$wn]C U  !\C7OLAeh՗b MUXY`|cȚ `jL&G1a_{'YdcD!x=-YnmRCB~OirCG4%#L>¤9}e9Qt/&O#"sUP~t7@Z\|s޿g.\d>skFf>xҫ/wjΕEz?P_M޵XHmtG y0qB:Aq\+h anM+;.-V>|rQj}PdOTxWZzSlCd ihm/]ɭCّz"%djq#Ն^E[Ezp2Sβy nҁA2kּ0-(SA_ KP5W8@W~wa1jR;/1&%\VG1Q F!.RKLAƉ5^^z. ՞WD; gwZ8n 5C8["4ӟč)!:${adG[U؎Z{jl^J&~ ¤XxIWҚͭ6(L#eiLw-Eэ]@]Y8YyYfQ ]Xr0Aq2"Ө޻(IA^8.^,X>)W},A WU} e7Ջﺭµg)3Tro|6a,dέ q ~sƘIhfhjc&s޽!9~]͛ʟ\jf3uBQ1' {INHbIf|&=_ub ̠{,:dΝpBǪZ)=$βޥZG9]TZf-ʰ2&*M?*-^Pk kJp_IՌ.vW$0ߦHZ*Z^=?"xsA Fxʁ E(P}Co)$缔K0m|RnӋ٤,DʔI)r R0K/7H' \7e4!jߦ} '1 iKUksɓVBÏƭ$ANz!׼޳-Ǔj2?\&rEZ"=q`-))) .!RZj-Z1Iw`nv30֩xd>MCvI[jQGqhDT`i:U|6/D " h b1& #}*:1>GZ<*9+-{:ޠ{=s{_KY qg6#15ѽk.:OfٜŁT,cV߽e!]Ү/q% B|' & -WA̮iu9VcNyir L<=_!H&YOXV$Ȯ^nBa;BdC_qHeiƵGa۲p~g4SD$ׇa5Տ5[[$ZdV~r+vsRîl "[|T $CNv*wҴe)F_zW$yޕR7_'~Zx0q_8j^ݚə$oU ͌q3re?Ke]jd2ftބ a}W ||7Ao +O{! F;yQX[71s-T:H" I4 r@U:O]9Dk̩g gw :)܌+-yնĪh r}wwY:cI4;uÿzIn̫x)((2lZ(u?Y$9O)N(AݯgOO/w)=/ ¶g"oKFtZv- 2Nkdd7dt3u@Ӏq8̴*qTJzlC6B @d:fmg-5-:kp&_Sd+ZvV5'2pKFZ 8|`=%63MESC !E@KXؗhL_|&g!,ƿXi1Py4]_Iبz bݷd\pc۾(A6WYYtzk~+Kh&Ə~[z2SLkabٟ/RXPzgr2!%ݻ)7AXo>8G^Vwlg NF-4Z"rc +2 TCHŚ L`GOf(ae Fz71a¯k<+ҿvby\kĄmb=\:< U:WU Yy$83=F~ Oʓ ~G\.ҳjqs򯷂q<@,Z{_ Ɠ+^a#\+"#tՅnA+x23+Q@>|KUekLʹ9 ɋM\Ҳ{$wU꫒"55U|#DP5[!vaL2G*Ӡ|/*<ӓlWxvH3`+NRE0`\R~I+5&3emZn@V"nJ 7z27Ƈ֕">J m,y[k\'=#dO#-:}ܨjYvgX<_x7a .] ~ҭ /o]PRc&^ޠ\l)5wL\fU}9XhBӵ'.b+ȝ"8G>Ƭ 8ʸycYy.-yԵEx7 X%<o}s 3[f<$]loѿ?c/ j{arj<)j؏v0Ȁ09ZG0"}Q6Ifz(#tD#C->`)Z ]ԍD,?/0qfgڠ ~o+ڑ=G+d['3*7Zаo w^aqIjQ!Ñ5yMlw!;eJ':̽PԕwnQMu;djd@RwR:K܄bl89SUqZzBuTM%Ώ+Hy g,fCB/E R6:{qQ>b>P hV'lu{U"e ?!P!Gg0z\n\ʆx]،VdB9%fT%{xEVhPp @xkyKrQ}QuP0=dE4E-\ w.z7,X|\h%c:veL|~{W.: q6Џzk\3ǜ ,kņx'NsZE3y%:`$ts0[*09. oj!ԭ;e$p&d0 T. B!B!~rq}u=>}]Uڞ7QPqj ]:?}z~_-o?쟩<N"Y;> 0npe)8H硵Im!}2%g3";ۂ;*! +jFӰ |`ճP<=*/DloK Bdj聭(浤!/FuM+U>o\f7͝|U> 8s>wGg&y*V ƝT+%PdJRW֩`z՘ kEµބh-3U"?(!!/Bf+jM: jB-li8!,/C0H.zjC" T LﯴAH7 Vܢhl40ieg ֯HOiX}D"Vs> 9kh`XE*aKw|ɺSIHth.H,bqf,6b~vQ ¹%R8}t|xHwv);R众ݧ @t=mAI6ei5w1!46o}POȈU~TjDJ$ YO8d? $~N)wU3 )Gtyepr#]7rTₖ*S˷ev> 4T"|\|Rߺʘ0J7/F~u:MNOɷ9dѬ8WB߳hb0eXo\! / pn7D&__k3ɀShZ~vr^2{"W_Pw޺+Cd"bWVcCUjRZtz(aٮ#T 4@GsJ}o(i2ΰ-c}UUVe=@*fVj -8aZ/=5˃9۫3\r/x'ao/p @$]|(,TF83Q+M|xKO1Z=8q;B,5!LOLoLk9I x m7qlԦ'~(GKzWA3D:Uw_STNM/N7@,ׅW4mN`o׽d\ya9w+DT`7=fq %:nY}s",uJ1kTV/#{H]Lt%BEbL62C^cmp/7R?`8cK ud.&$g^tZ z0! Rq?IzzeHn`6፳ x$ zl5ˠIm~#.+^'0hγ=#x]O`.C1z"Նhz.>WD-Y gLjJ=WSOjz.OhGR,, n`2n b`0 QP$!1L"6{j񙮷U9}f˪OCH寶V4?N}_5|"Џ4|AVM~FiMG,jٟӄQ>];1!]O]}5vp~5$풬95t>0łr< &K A`4 (BaD&||u{N8O;U$Ά=m_C/gYp2nχG?IN5񩂠O㠷8*NUOYƑnլwz^_E˰tF>JqfUEXk`ŸFP *z!Qzm# A-I&S?u\ r g..2I+uwULX31G F|>Kʼn~;:\[ҾZy^yRs:ZFOZ*xݬ2T#2?e9O7i6gh9YԎK,D g@,m5ECdJB̶t|Rv(O,[~))O7B+dO+L<%RF%W H4 c%NO?2GPGGTTYQ[  % w'[#+ lbU2bfᛷ-@(8ݔJxcYz zWOJh$d诅!+b|zK Z7J#N=sv$tO؝'޿=lO S0)(񕇮isɏHg(,InS)E(M±ܧH1:?f¿)ǖ"4P5{RFn"eVhL~eH<#k9(LhxLH sTMBl[p "%Dy=-N$2Kvz݌$osv?3_-ĕ3؏?.j|SWtED<~/$Vg_F !HX>ZOGmHY#U F%aW|QṋSD@R@?!tZgQv3n;M) Dxl\~mkLC'YjA>0{#`ۙQ x,#K W8DB<+_:ksL<s P&ѣ: BQ&F!e>Juo><䡩!NAB+U-[P!P8ŸԖ.&Sqar .wTU 鍊iޅ#0_+A5ћm8n,L*' WMDuG4 5+Zy OsbۑjJx6UA]ϣmL,Yg{loMa1ɷShd,iN %'a2\;z{.#TQDŽϟ(u-=b8c/f2bakWrɼBmL5 ⚗uƽj9\ң%a,⧎|i,J;=9QX*j&y6<ߌyUm_ruv_cXJ*"EoM?N'7(ʯKC5ODn"ߣVl⬖h- nb_'T9JZIa~6sEv)lR6,'93T+:@8"YJ'<%7@ -e|TbT^ĀܯZSWpql #ILhlj,3_iwm#0n0ٲ3&Yޞ  .|=gv4ɛeFmݩa}\Sl,LgiRO;(>2Ue2~PFMx4-\Ԝ0+uzvM֥isvM2]C9"/vZL8K˖x \;NfyX>'Czh{8_?WʦRL/n}lR`1E(.'Qw#Yy",Pڵ.۪]Ơ5rHdo8<)ҟPIx;bY irDۙO 1m~ ,|Ab[sfoгga &C>Bmpl»\Dh(QqI6d|+9""‛H:gKipZd}Q|z*^6cH}B'̼eȤ>oqdnE. JfzJxmve Ul%Z;:KlA}0*hhr4pfB(,ޯU)gd;:<1?vdM8-$5 Lc5>nx~xm@ O_810[IB$ߎi6ZtD:N&P: a0h0& AL"3)qUzzL׶:;=pۣ7gMެR86-MUzon(m#\=>Jφ?֒DԈ@*M]첣cYcVS=2+*dĿ-@I@T(چ1

    ADTxTKAOI&S<j0Ds0}E(e+*%)L^}2F8E4*rKhtsn}^֓2Vte}뼊|TU)Z1X_$1r "}h'q&XD)54`UZV8)?bvO.nW-!lt!k,CagY(|C.4v6"Nk`̅TtˢӢ4u}!jQ/<5X['.K2@At1ǟntz'MqÊe1Z^@W|<`m-?jlU0^d BG^9U;=υr넦f[PnH哲=ٙCx֜{[D&5 gF.Ryh<9qzټXrw2!vRɏt0aLoI K䅓~jj6XF/c?uoNa|+N7Klĸ~|A 2׋ =ʦBݽr$R잵~aGd]F='X?%QF rT{]`n&SpϽѻp<0XεU!waK<Ϯ*|^3{8B56a0dt$mG@ ϝ/JIZyE^/44n@#cDMUU;aG=pj9ct g ]6UU]x>%m9-bG5-bETp bB%huW|LdOPd8n"QtOxڋT M٢/XD|'~yC[: :Z\zF)/wkHf}줡$&xr.wu4vuYoiӝ A=\O#*<y$N5{MC lxM<ዋ.3Y9]Tܫ&[~||{YDhTBn~@i{qjWs&F=~5pb*^q 55ias/`+U.@3p"41X) ? d 9^47uD³NCHʵ+Ə$ΐWuI@1 > [φ?M7KM~$j:)5,fJR zͱWZ}ڼÞe*sؒz@9XHTLi&'H;[ {T $ti<2-p&]N Vy6؆.m ~툑?~Yv,b1r-M*-ycHaH5FF X/ Vpb_Զ@&KkQm.3/5N5UÚEBi_YDr#[uVdHlD>ޠmDrD yzi!Hϼ$8]90ʐX# 3h 9hU`_,}j|X03ViI(bw$<{TWU}d%~gŪMz< ׁf'f> (DIcnC.sMϰxiEw7Y0>;\ۉy  ;L}# lGD 3·Zbǥae6 -Q>˞aq-v2!`̏LQk"`XQr7mV(O0.돚9G6;kl[Kc3)1th,m),diS7{ Oȱ"M=Tihso;_vhdyr_*bR`I5~!}|sV|ɾ?~_JjHN(!~25(sn& @VsPf;n2iF_VK~OSLhbFỏX:0L*,E]+1uBĹݷxl2Җ!FMP,sڡd5g_Ѐ/_kgj]珰䉍 t dΦۂً`{2X#򭬟&0_,'NaIxg!-S冭pl&5a x )F?J/GDH{?=)٨}S8qkH5=c74=R&}'@!5_^ C.ئ^y-vo&d6ڽN@QV3ğFi9p΍QTV:NrHf9??gG:IUniZ@xԖ1D?3iYn<h\n>PyՎYi}7&A%RVϨ?b"Q NբPo\ fHN_Mfjm 1ãA{2XݗsUxf>/ -_i8V fˬۥ|BdJ?h@E^_hI}K;ǠKm }E#v&V(ó"ʛ`aj9P4awTڕbb!#%@1%7g|gb[4A%7`?W L#+,+,N<.Qc@8%unO~}^W0kqԛʻlo tx>4T%`ߡԦPIE?_hkC`sm/B)APJB*Vӵ+4t'}Ϯ2D௛+*՞`p-ZFLѶ)zEX(aJip 6ucC+ьD/;!&zaUJ,'̿XlJ=h?b*PlɽM44?s$Y#t3RC]L12#H4vt2 e2,' CX0V*aP&!3L]%_d9ֹ_xkyO!&s`X4_Oj5eת{`ek*WɣͪSٌ|5z94ˠ{+Fhb.o`""G€=`#"n2,@l0v @H&a3ߝxyqj O;Wg"%Ζ7讖>B&:xEdI[z֮ߖÇ[ܿ^NN )A+]U.!3늡ZݨqoT,?#@BcXJd,@eF)njF5:/h;Ͻ rs6.JMcy9,K؞[Q)3%$n\w|=*pFl77;kÚLM8OfEvU9z?zX,3xΎ|"\(i_@/EiUUBv֦gv3,b$u%~hX+saz==xL2@z+Y~͖79^א_7kZE> rv[D7D 93ܿ&y^ёJ<*K8TWV"'Wh2@CP.c7 zQzlGsu:;*s.cu3SW=i'!co,"!+Ҫ>Wku ֌ѭn[R-PV%~lj :%A(u'^sz@_-' ~ |q|`pSj'i@θACn)}<4b1KC8ܮ "kH01x3ywsƵ>'ݷ / 4*qF`?0n'I5h\wh%޶?CSK:CFS(`Z wM[ps7)8P*b`h0VA0""0kޭ/Ƿmk羦Kfn|7loyi`B76S?ߗ/7SZjtzk? vOxDT,ѻ@TFs)t+/d4=J=/#4'0gt"mG~@ ApI&S7+zr<9[^KݹsïXZô32JpKoBe]GX"'&L[g"tgWċ S+a 8ܣU 1 G8㨰/b0*jE^C"e'67=N.\ 辣IQ=r(Ft֖eH4\&H5f׵ㄬNd*,@"YK[+E8k&޲${sAfe `La]{E8P:aN_*#rpqm, HD8f`ok#_2Dfy$ +n,}.(7ApP<]rwB흙3*+~fr8JыU3hn^G/" _3?DgGqý{`L+ 902M#ǪwAb6{Y=Cz /=DDPр 2fC] J¶,|(0J f_7 MfvƱ!HA刄~8:qOL[mk:Cj8:њt-V |l=gŹ [<+YACf׶ Vl~̘*or%W[nPXIA;%IX3\6pcjn# Rـpg;;yF vw}U qn!C/ܔwG^ FּHw(tU3?H8JL,|ur@V;cLB =тUmkN*V/$>[<ܐ2muFF5mO M.93J/&_(O%Rah:Iӎ%69cyuH^5 l[xę!5CZH({uuM6fe* %:m[sKvv5d$Ac$!'11Bs-ǻp!XPD-o,(]E|G$\"|q+9?+!*fL^8'qD'}!_{1 32{o-s(W?/ʆz=%p79t8Rbv?oĭ$;dhYm :ZD9h[߼L/hʡ>aHh /Pmz4x\Vg߶C = =cz0(x _rU m.TqXo?STO`Yf˄+ح F{f{0OdJͥ}ȇurTWZJtK^{2}2B2bc;tځoX! 5y\Orvf?.~` E=j:I`%4ȩ] {%Y#f}XG'5QVP6d3Kb͡G+گo#čl}]!ǁ$R[ \h$DDq#V=Q.ߞE?#?]ן݌5ᗀ³pl>쩌fA9좤ܽXD%Ӹ?;.<4, ؘ4& a8TH(%|9˕_˿=ȏ!M@w|V}wKMJ׾>\5,]S Fm?%HGP&9`Yߍ)ҲI ~tgyT5o{4 [}܄I*+VFX 6eOJ3kutS<` MY,)6S: xf%@LY69@Iu4 b XjvXŠ`wK ên38')(grLjXSIʂQ9sZEn}wd(G` `ekz鿲xYY:cp7P)Ȑ.cu`k(dYm\S~7nT =pLܯD@<]yB^1V|M#ŠK\S!#F%^o)4j1q&UЇ9vݹO}Z$10.?$xf>PУe5ѹv1.=HiZ'JaH)HC:dTUyy  Y -pO]G.l]7ez` 'Ϭ*r+Sr<}Qr$G0PBmH1!Y]ZwݸvYSLwVG??`lÛ?zG~Veay$GFzP*e0i5nQЍ7nd_6RO]P&τ&Iܓ&`i6rt2&wF@Qfxس,UbG b0k!Ukns4on;h]}Pm6-n'Ŕo8{ @66PUlK=8~T!i}\"J6V77A/5[=< nO |Tz14} R]ԌN>ZK$0'Z}$:pDJoeUIa4-N~X%K'jHRĉG/bI!vfWq}S) 2Sqŏ7:iH[F - Fk-LfMlLe5S'tN$m.81%Ct<;5z b%+ =oϤ{'/$y>]=f7I7f226p=K|o [tHpL5d<87c%2yL |&I,5LvXziѫ*r'=#o:nCkyn#Xq8Ȇ_ @ vۈ:$mS݂X= bD3ֵN7)g, aSH(FȼcS8_gQ (Ϯ)$XU7y܏M !^y] Rn-9Tzv \6fĵ9g' W p]82TZlDGu-R=hcjCG!J+ʭd;|K)aK$`AT`+ BԞ;Ab@60`6 Q !{ּp^s3U:}U{}||O}~ޯ9ՙ㯜 [!F^bqo'qkG_uk9ΌX2xz7Z{<>u۽M1f&N(1 @{!02Y D8 :0f A`6 * "05+WyS۟ s-;#~ᚃgWzQ.6QwF>0ݙy ʧ8BumѶ~wmxµޛŐ_'޷@n'xRj1;ИwhPF6ShAI&S7*28cۀVŚZRV/Vָ{s̭I{TE桬uDYN4a7s7c?BCA2&M%¬:a~f RPs),Ӳ|4JtmsӭxH4~.}o?9te4/;!ؖ[CeZT뵭A#$*%yP?R^p{b!>신ޝ fWo";/=@o }#P.*yӲp 8ϻ&0J,Pf +/:e c8\kDc^h|NcoguHtxoJr<] ICD{2^Hj_TW}|?YV\b_]<s9=ͬ!(+sΟ ZѪGwXf,^PUjUjsG~@d-s2m}yUP jc0~RBxk}hé #dIP=zhfe0Р ԬqPtx&E"-t&Ybg2I,]Q`eC{h b%"@,Y0hhB/[@c=5Z7S~QgO}Z̖]P-+=k 0)W!;ƦйfG}|>]-S\[bp1c G{ .1vK*h`!b⶙?_[;%ZٰJfj0vw@eOpsJJ']bZXs>Ni#wzՅ [ 0[BQ෮E׼20T9(ܭ>-F]{ꡂ *fȖl_XyNZ'i D2A\$O[J JKrGld]V\5>]-{ʞ~zQȚ\~a"^?\}ul"OLRp]'ee .lͪԜ*$PSk-˘NP{+]7*^`Z7~0A9SӀc*-ud;ܤ[p xK>b Zln=hO)닽dAJgh|&~XW KQo88ǿ:YUxpl4դ/4ki|+{gTVv4ذ@Uz6JY$?~G+ _h&lfg|idYU/Sq&pE褂Y"@J\rFeUB$014P^IJ9vjyE)!9M/S08k PXrEMQCEC| N eUWVLZEaxQȪD=XJKa[T}_Qͩ80A*kn~\nh{l+Z/:Lf8JG\5cOVFWDe!e\<-߷ Tj[B)VRS&_ymRQ\HGz@ʧ|HMl{hg;MH +LbѤ~BEۘxԶ>nF`Cܳ;F{B)ɐ0a;ԓԝuWQ:L`?>@B屗|gQ˭w!k(+ad6Ri&^2atT p}9H>(}J#;0 7TWRE[Կ))k"'GFqHS,u:@ʪPF]Sw7qf:2^9-WV:AV>8aĺ!" ‰qIJW>$#'48aBk};%}>(VI;6WMHQ sl/ӄ.& fWʐ^ #e8 #s!\Vam 4tn[$P"HӏbJ5[g8=Sj?,=@G4{?ULhv1_E ٍK\Ӕօ9TW9cGP:-Ily oX190 !4pְ}#kڹh7S(W2׮:@^ D{_q=}Xga "dqm*"d1I'k(9r`}3ӝP=BlHFO&DMl z1kQrz<_s_|_DV|nh8@cEG}!W7ƀP{߇||brĤq!?j؝- ;DCE-}i}65W:{9b_5 %&5pvf!MIXyR;@̈́"V?! ieԦڠ4)  2p$LJDAAh̻d, \f+Xlg/bL5,\4TZ:Cۏ-G(m/ -1D%Rî0a"d2q~:%f"[*>M1Zljp{Y-CԞp]nFD{ !tN4>yG[ufdI:a$OEuwy-ْ`ew׈N+/.#mj,͉WOmTwܤZ+8TjV=`XRr@H$Cr=;0^T,({_:NMr)㠀nL ~+gl3 Er޸mޞ-8taC0..M܇i+K(ȩ-ZDԲ]ڽ8u,9M2=E@۵sph_loSD-iz8&m.y\)H*$R6}e4u57w+8t38DYPШn!= $V3 ݽk^D\DAPnU_aZ/\3t(fjnn7 .Fa|La)o W,9>O~"b3~v{ܛ[xD)e F; m#;ᔮjF9 ́W^?Ӆg.[ {eR,[L\2 =aj]R[VC YDХ@5$hhuv)wM+.>LJE niP)߾E\S .e8r^{CQ;ͺa^b綎8Gz6&p-Ӡ1(d%QfCwAj'Nm?&uyA4(5mÑ#")>IyYs'<0YDqlkYmX/n:H/J|)~9\6֫xT@!4wM^A;INb-_rm;rV<۸Sn{q!, ;E!OehQraĎ8`,5h 4ǐS9UİZ;Qq<ֻcCb<>/CzEa"Y?t)UbKV_ޯbĊ-bNק1LRٝ\7%mls l(WmId &ɱ*t>'O2ᛌ`jUk蕸~?+eVPK~bi丞˘ FU4̷B%acQ*8 ef,m6d sKߡ⛉;jwfGq}kEOI0 ZsPY-W|Ufv;u}0*'H iO {9Ϝo 62^ ފ;ʉX7E޽梯>F$ @jL:=ZgSc3ۡjjmZ{y}ml! ' έa]Zn(-* KG;T ]߈ʷx$Bقaz.zס?G $[l C4E̅xub=`]B;+Z )]Xĕ3>EPYhi`Ƽ;Cxa e@ +񈋆(OۼXr8D{^ܭbU s*fH f!"j"E: 7XjXIOux yԤf[9Ilń S%P>A ;פ'OyB0FkPh= 8J3dX}֊-EPԵ5˶"h@~q<7V÷=B)> ,J )P|Rs( f4W]]7C K(uƗ>6 6kwn^k λ[92>-ۄ`;iOU]8h)t8tiv%Vk74 ]G]iͽ\6V/@\M ۗlŔQG]6 q5t@ae],R@z:/8K֣*]>b#|dutNAe*R/1leڞK8Ytp649E u)k FJ, \ S߷\_5czw_C7wn鱊!bdTS |I7eGs K8 4E>!&^Z*a24P7 7 G$Oy>X)+l)a-C1oo^}:%dфVA:pxI7 qP!$R5lvnNy]YqN-1.T[w!Yq8bm; 9j}j09{3nv=F{b"u 78‰< YhoB;/Dg Pz)R@Pw F0`m\( bpf)AX֫{,ۮ,%^< 1 4 ? 7d3GXҐ5'Ƚ0L%bO"VNƀLV:@[oX$yo_@N(@'rCb%Jr ͆ףdxt3P*WDy?N4faryIp!G*Tßwu'kt=eSj/H8N㿓91~oUn|U?`NP qRm=tE8Wj_E+rvm&Z J5 q`Y4Kq/3l.rwOSxoĬQЍ7梫 wlVl c۱?}TAߕK9q1/20& hP&@L##0839bR[hW6Q%9=-P1l, "jB_d{Tds& jD4Zem& #I"L^ amL]Ⱥ:/s0xuqEokIE\t2Xw[!_35 Yjrc,ĔDDC@ 1sp'AKoA Bˮ©q{mXmFߞd 8;rs kBG'yBG-/g%*7$8}Ȳ~@)-{ RS?E!~.'mF3ן0ρ7·5^L]XG1L<&3-):.Yz7ZRPK(h~Z0Ȳ0pOm O?igjbW~W.c%Q3$:+A_@GvTf85@eNVas쿼UQվ%e])?kCx40yn9o;4G4߮v AkC r@D,բpXЋv,]4{cR.2:Tm~KkJt5+'qt~1*e*Qzmގ1O&6pY$GA]8P^6З,ZϽ+AwآGMSI{t8ٓ++<.H_?׽Z@쾅2EtH,-w/2*a+GID~0R]C2d Y6Go_%SnO1Gho x)E]/ub w~9s;WT)`&‚?{ sO&S!FISԾ"==] aH\?[LrފWwոFhT\pZO*F0:ڤ񺽴?F_ S޴?J+_Y+S,e`b2+ `bǁǹcPyeEIAFHE p5y٭Cy¾y(L(y@C|L(\U0|P*SFZf1@bYxTbUa/)JB4BvΡ#l`G>N'?59f. /j0lj YGKgjl,ҍul.IgIw0^,jפCCv2lټ4r,Ead,|@oBÜKU:}/l⍯njz0 )x0&9j{1)GDsUrgs0W z'?6iݹ7 V@6-P*Y B"2g 뇄XpsZũ5}߇ݗ ?2&PQ*&,P !"\ؼ֦$W1|y|E jOv{ťq}ʪ.qrNI!1\Ky ذez -.mq `OҾ^e441K~]R87ɤ<'3۵?`_Tًt,NLIr$MʹS"kb*^x( 53$pgY0#䒳11ƯP;.%'n.^$t~{7G '4oeBo#r O#> # !1VeV:̚ːVVF* WVQ#MP)SZ0_x($G'P5̣!4Q~f-v=E0S˼vck46aTYK7' vgm8Rl50QO9:PԦ.N"x~q8 ZFmTT n 0 EfIT5lh=F{@>}UX𳷯.7RЬMCq?DL?3^Jk,1jPAoHIL>Ld]BmB(s @:}&[&]F0AjHw:j;gW[1s81Ha֤OH7X8"El{]_-Sؐp³3IVj™l 5 2@y<i飠iCɟfϫsŁ<6]ZtM`rIΨއ%fZ^%QO]N ~+.%ꥤw]{Π*c^Y;3b) ^l], |hK^ ZoQYHɗg}PnJ?&=ogwg/_'e{3 G^sk\:D6 xzdcrҶLz`ˠhhҘ1T \:,ߟwC)@w$ wg笠G7pX)t'#?c 9t*0FP:K9GQQT 4 {L_YDR9߅5"ۼШpDn]tkwl(+dL[RֻI$TƖVdL/&_IǵI{ (s WϷ*;]CE\Ozg+銥Ue>!h>c4O+Nm}hN/آRilsIeTk,Clb\c:¢y!a7H_`!Zg]i& 7:I6sz&8 g;%d16">v_WCIQ^{l#c 7( SIK>ϊCddO:.XTeK{}J4!]8d1((X6D?.(O9%ɲ?IeTzV{3|㕭qbΛ-)D iAI&S_yciG%o b711aTPR~0!wwtm*:zԯ;>W/Dc{}^CR'r:Gh*G K#1zIGdNP /qRL(YAwN(z=E~=jg<;,oV}4 9hGmoAΕZy;:;6u8I;ڠbխ'ޞ4P7&8(GR:T9)Ħ'H i{ΉFR  {O! (DŽ~I0IWsMI:\Y@pvy/ 6K˺![z~Vp>[rW3#eSzJ4?H 4'Q=9G b)/J3CwGoѹSmu#S]E *à낢#*7.j-_~I6#9x9bmr{Fz`;{řOl0q]b$$.UƤr~NorD'|4G?f{HO!sV#XVʭ$fIl(XB^'V:c~ gu EN''z"voH}OFz%x W|mPmgJ3{:$l>gr0Y΁qMhscAxVc8ḧ́0eN*^rWo1^isKeY`|\e }WWsG\)VZ$sF Sݘ$N\vΧ"())M^2`=b]*ePeLfLzSx׶8u%HsOj1B]lChReH1Y TЉ#C Z6^W "f_>ZjT7"UX+M!δqgFOͬ+9$t0Fa F:D? hV<@0j6`MD}l1zNH+]I]F!]+(kTq~S.Ƀ-iL8Rwiwu#ۏe0qƵdt:%RSY%Qf\KZZAKM}'j$  c5dƘr.zq{ !V 'pcsst`I.t/h%+Edk T4DhjQ8=@8T{eRE!mNL򧺷c >J'p6ce[ӬqX7x_> yYl#wAFjHrJs2jAD֜x׷zy"^9-w`@F ,ڮ)S i$l%`Ȝn!R$_a{%4ETeAg᫣Q:Пynb:;$ Qg2l$O:q擗#~A&ZVk~9)r -RBTfP&/]UU\Vux6y6,sx!(HFږjndߡw FE׈:qZ08OIKz&԰WR|[uf[6.7tך~qM)e*%B qrᑒZoA8ֹ|ʪ-fnxbɘ4\;ʂ}")Q3opR~E/z1D L+E2=Obmvt).ǴЋe<7Wk*0a1eMsmsygyI{O0[&uIo+ߥbL]?pmdLo'SYͩ9 _K٦S(jat(@d|=acz,*uֳ5PyW7EybgPiG?fǮͰ✱ dǤwձ%7=8:ΌM.ج/X|v÷/jgA`,yOi~ח#B:D@ @iPp4N @Ԣ|;7}_fĀ_u8'vCQi髃dY]G.ڏg:nSq_p3΄p.A幱7؃Jc5 ߖA$#m^݅?Tu8)tߖfF!=j0Q(XM}m\Cb0$XOꓨ/I_6ؗkf!M B=€T5p;:jA1Oj4ZOۣ󀂑R5F`6~;gXNndyGMg1N Ulo Y%aN*J:IzLNX,^}A|D$^8̀dtVl4OȻ'=C 'sDH'=ziSyN'5g߶|d1F@mBk(Xd-((X}¶lZ癚/x}N%u*z0i. RSK YPm .@p2$Z$ UZc|{HY;kZflgqfrO@3vZ5D,*Bj p?p~ng6Z-B~*sծQG:um!NVO&AT h?BzWSB`1i e=6xMXw\<|Ϧͦ8hBeO Ac0AYRf:?PL5cJc-,ĠeTF]Ԯs~f 4ŖƒXڞ=D`]s3,7?awq~ZLMǣxt\鼾fM@B@?tҹg`V2:>Zη6\~G* e5Fc##4yUiVB3=-vH's r}I3$ڡ&aƃ *ns`/|?:U4EU$l{R:0\sEcVY u قq%̶D(/Ӱn2YGD͟@^dՆs]}$ZU'N:t@Y5F/}7`:q"V))~my8o'f$IV*^iG@yR H*Mϻ ƫ-g3RC|v&>$|ڡԐ?hE>q&1]蠶>>k]&7 58KMhWPʜܛPAްSJ]@)Rso1y"`ouf));(֣ch#>:<34.X")M M%T_Otw( p>-vabՎFS]Ss|C.sl_~K<[$kms Պ̽eI +|dy}ޣ7\>\~q]B .4IDN1i&!9HOjoheHTHXnM~}Xٰ*cBA w+ޱjg-[ތ '3Hs3ӀAI&S?}pJU~T3t+ƷF?L~8 u8GROnpW- k56 1U)W$)p獤geOQ03ȿ^FJ Q;vam~S2N]F?oURpSĦ?' {7[[wݤ^f` 0<"D‘/- $%x،mA~+\V>>2"eh2/x6T/6=,jb$orl1-^ m2P4fW3B-;Xj۪nq'3h)@1~ 7tXz6_*$a7?B4ռ$0G39AAfO] Odt>ƐJKn} [B8bRbKG d>g CkQ4e}%,~nVf.G~=vό9ڏm>b.n! koL9>&bl k.NwtAB\cf3pΑ9!4.%iߘЋf :!h1o[^]ЯGN v^ġ ZƓ5TmoF5ێ腜2k$,Dw[c ?Pa^w Vb7W0gdzD[[5;!.̮+"\pR#Bb^N)UsWTŔv]SnupbsGJJk-s¾.`= iFA.=tѯwuKo_z)gy3kGW1:( _iWqɹ F=jwD_m> 2TS^B*UjMs=%=kz[* s3>O[H\:H\,Ԥ3\<z7 ݳtQGDOmռ_} Up(-&ַ[W2KLāȝSM#t B oג~bOYaDE^!jBD|˂?2AtQىp+n dUC->)a;]bozޱuV3N z6RP; [SWnRךǒ9&{PU__b+LCۧ-aۄ(|< tU|]Eض@M Ck7}R.ӻIeNY(cLڬsϬMK:~vjXm:aا=^l[(CW)5+Avl f$EFmeJ"'..?Ix B;ZU2< m'Iq*Rx2k&M#Zn&lz6NsKG+'l 8[Qe!/4KZHi*01t pQʨ׎kT %MӲnڧ/ɬKxޫ݉ka;u#r~!`K/?춏?]f'ǂrw$eJ{27S9 &(dHK5X ;{-$"q|-[E߻u'N9{Z4*ӳi54կRv &&6geB1<2슌@?D=[.qFK' { RW3߲;ęrfeyX=ϛ#!!>Hy;;6 > g!CRǙ,R+~욀@R=-. Rۚ HvlC .1tg=I{?5]B ZH`̕! 'ڶ['@[ߔy#qg !o$?hJ1\#I֬:n0'É9u.}&n?;~}-sL% TOZۉa'd~@R9ɒHoJzJ 5tY88C?xQlf7E$Y p|> {!T}\F(NѲMr}=GL-xm :t$t~&^TH!NH F2@+5Z>щ { tK[F|c%paU*8Cb1ٕUp{T+H.[> =t^$yhx"ѴйqFX~/mB*2H(2 XM~^WʚzVe1wB,vcؠWwkfCXz {Zk~\ J+Np9(hN.E\>?Ui^LԝOF Yd231j#$=IEfx\<(͹y7,IN6(xQ%/9 F-,KK^'+;^ob~YlIJ Ϡ̰ϫM$P+5D{{\paCKڱappVwOu$7^h߈>vdPȅQsi .K -Bv`4#U 8`R07ӻ8ٛZ^#kft ޥ3h5Y+9:Y?IY4p 46$݂R XΖa9.*ؽz#ldrYX-gҚ( V wPU6HLM7*W_ۻYa1iSeP/"dZ72tkn, :1BLܖOxhn>SEfVj_D`ظA2ͲkPa,dV\*c>/ iٳ U9t5%}1#+J!Ӈ:2`Njܷ- F{:sBOd m-aѷ!kT-Hq]ap>'5LɟzFPU2vg>W.BWj̞QHwۻ1Xq 8ȡ~pg&9P3pU1ISy ^R?KEĺP8jA|K qKrОd9ͦGǭOz1u<@r—G]Z۟f[cՔʃmga`/<1 ZJs`uS `~2fljo{TEI`D'zs1[mT>fC8!{xqun_N)zW)of ) :QPH!1wLSՍ 0*Ij}08I<'7֜ :~_̱뀖孋qZ/POˀԤ"amqZNHc[y'Gx\Df G:~@-b܀d#Nn`~PiI}@Yf}62-r6z/@/efV#RلOv-ñU%? ;`0 *夆hπQ~t8@2dpUX@tj5>a#QY>8?V~M }l:"roV<Mߙ 4>*y޳N1 D੐iJ.^Ue]ڤ7nZy]CZy[^ bbC`ö/oꌂH`ێH[}XjKǮ-hRq'8\[ XW|(gzPsP3@6ԘP: bL Aab#w[뜗+:ʒ8o8ЫtqiB}T1}#W*K}M=3s8 ]9[Kȫ?߬sA&dK,[΢m*`+UBxCr, Y0\wo"/(np*-$R+8K6jḬ%cAufk0h+0Q3<2jW+WDi\g|0ȨPȹq&(X:û+uU,{:zo${9Gpc 'zT3#EeW+c}|N(9y%RL_)*Cu)@}C;{lGv]ћ~N5ݴN[\^Ekr ݀xGE.6\wL oO^~o\ƣ Ő,%8ydwƧW3uj heHȭRy_G{J(wV Qi.#3)9u@?Em.sv ƍu߃CuQ>Op*ljkUk&PlgxL/.Rlrn,H{WZz q\k i Me@+Dqq_ ,(޲H+Z4(rw_jT*Agt &ͪ?{2¶!`(y ΢  /L<'F~BzfKk#p"=5ˋ㏞B~ kY*J]n$ $ $Ӛ]煎D7 8{%$"#/&؋?iTL%۵R׿yhXW^ko?ʧUD҄Ůi?rq 0@A D~d4yS 6u+BFÍO?Pp Ц}Bz@IsM( /gG3PBo1 -N'?5Y:&qlQ>yV CQ!J;blc1: [A29~s5?ElJT1Գ#[ C(Y]ҷшK^ g_6i=ݔ~gJK"|d1blt73A.46@PF!(N_Tc ^1x X6\_80JA 5> 92Oz~*o".3 Qk1abb(PL7kTveNR j'wZ7wک/ ńz8~7(JF?#/'҉g@k?uȨ\C86+MBOEy@1۹ڬ=< .ӌ/ dK? (i{_!VQ2} .2 boF鱬*!6ǡHI\nx Jk *N{cS POd{ Q'_FBgn}/5䀳[""$ˤ*ah d*ۨfSj>l,uy:)Fz~y!$7,K.q,I'X9oVŚ˖hKt%刚#1ZK@i`Djvs1{~#{ JH5_<΅CHdgx~p0 x|2Ӈ^T0cXu!xV♤- fɂxA'ɨo,k& Sxam?2oo_[$vT ?.mcoT\-#tXp(]u`c' 5).8 QpreWڳ$+tP#RDT:MCBb*F1*%\m,GWFw2}#Z^O}iSהr_ 䲗wF B2(AOBjSv'!*BТw vվԄ<" (aE汰41VëzA?O(D|wɺkojW&ܞ }QW"ĭ" YZ S}>0nYGŖsx,;<&[e>'Dr 2UƝ, kr!1n(ڻv~%dE>+VMT<5DJVi#{ F M"hf?1_o+#0!4ݓl/WLgR`R.o5FA~j[vVxG0GUw:žjq]n ).gBU%7V b ]$ue$QkU0[v/|RN*T1=pyDUΝ(Wv 1 v7-{]BlDn{LWbWfa^JFiSEw:2XeWs,r~""*_uț7[z{K'_L`%.gOu0ceQČ}}({0p=<B>ހ6+VP q/5GJa^>g:G_3:I;I¶w撗G297KBBJ@+m 2YIx6Jg{cf6 *N^zcMLr}R:M\HTp:6(25U:*ϡXV##=zQ:KAI!}I6ǵu"޳Sє$<Z"ZNnOVTcyQ{Bqj_5&ƞc;A`Io Mf'_*wV'x3CO?f$xH LsOUYui;|HdOjXˠ%2eڣx0BAYI&SOٽm,@3<0!c>EZuMt?ocKZ<+uK70L䟝NPŷJe[%',JyUQc,ͯ.~AkьL FmQ/-M&!]ơSAsϼC4l#oO JEf…&|3:sLSQ3s:UTҹ_`"[\5ƒHP[~fg2Ycژ@݃H~P|*rq3' _cZ Bp|*3 79 f)^o R~(Lt+@]i ~0eZ I 0i2.lL)͋ЉWXn |_;(ë'AJ}s&cH^g[?s āSKw"Szq~Ͷs]{{et 02V3bB>PVq,3,C~Hc7Nxo͏OƥUuC\ pY&^!EA]:0LҕU؎X:Rj Ǡ)< h.1,\0^E#p8H.ckƀ# q" H̊ u8c } Kઞ9r* iQl(O=xuL ;k KRQh[]!_q@w?=e=pϽ4wxo^^>ֱzES7 `~frߦZҙ0e29"x e?/hk}#!?h},w4k tOd^Il/kYۺ{_y@QN_-M!&4ʝl2!0lU;+ 2 v岽C5L3/w;8 l%EJx|<^!fiK@ǙTe՛5mF Ni,"N)h3!E6ǴO,Kw"cpv;}K㖻:sondQtcK8_L901 8[ :_{_>kQgtU-z)U 8K=7((["B_TC23!ԅ:9:54n5/ XνϺ$5e7=#=4d6{h1&B TsgDZ: ǟ'}yoA9ġA +AOކvŦRZE/ʰ#5j>='hG"Nl1&!th_",}# 83CPW_rsPT/2!Gt3^xZu~$m,gXG  ه$EnfU (}$Jr+{a@MDj/fdXBY0xЃ=>yh.]r^ >q@ (FVG9}Io0SEǎ]oX?w$YqۿڊWʛW0$ _ 6y";I伈.)I#CwɉC̦80Vǖ S]1\RE4-1/"rkE#e`ӷ9&?BFXdՅc5pҶ g]Ӛ`'pYo.a 2~mYF ~~QؠY0}样6mMks`;nTAHz(et/*%X,_&/&* T%!Û ֚ʐ/__0Fs:xZ8MqRrqj2^USuCXy$N"V| /1#(?@ًyP=Ɗ= {lJUrHt'W˄(K֗/tpTYwlkw^U#wԺ3k wk&8=a?,jս]z[Fwt?<&_fL,.ʣnх,fj [2@y(|JkGUX]0@AO}[L&8J~q_tSga<ϰvEb`~*8{⼜^z f{FeHps"l8{ TՄQ b;y~ m 8Ԙ0ATAFK|]I]OEEӿ;]PݿzR|=#J[|2z(mmuZUZ3,z;e~wgIDWn[omU>iki}2[z-qAMddb1kl"(npTi/BPB%TFL`AzI&SY&rEÐO1EhmJKu=m,>)-I9S:Ie& /p"mΙ; &J,fmB,M>۱>kAZrK X ?kXUh`o$ OEqcS5&!x@uX P%+m(oN(4 ;i ~A7b z[-F;EHOH$N<%PdY=!>]d=Hߵ$KF[U E]{zYm͇=\CHޫN+ѢQNZQ2" Ea̎CkZ+פ>@}գ kC#r7I;@dO H;.Hn2! ~4vk ;a3mkAET[nаoQ4J.-)b%N %';ÝIM."nCR F~G3$.!ssYщb6(j+ehVKcK؉Ou5Smdrl IE5..p5mKRSFڤ"Ōjʬ@G1 0f1B(x&BƳT,9ߺ5|)fOnL doy]14 o(ý ڧGf~,ķt(K}SXLE.=W&m!g%]s!%a}Dl}ibKBQ3gn܆*8t6)-O&b:ăK"2헤oJ |]j ?!E_r ^ Uvj8xۧ"e"7҅yPeV iCsݿj{p!bW~0j?8p?#[=u+v" $t=*Y^{e4?rVU޽ȇ׉7rQf< WRfM(wAiXa$Yӱ [Զ^1(z4jvqoE`4Ii`-MCuB/.qE9׿>+kߊiZGl+.8(r]_tŏXuIoPpѳc5HpRRBv%ԋ'LJǞ`֌^cTð![RN>.gji}F"R|y~s%fk65HLʑ7RxVڔeMMm Jo$yJ*ns@+ ^ˑV-;ǭPiZ 3C [%?M| ѯxߝOG_֮Nh=sMp#; j4 6f tɠ%!!".P: Ah06$PTD Lbnɤ*cz=U9|YV, @rKfa5xY;@Y!)joB?Q媑 ūvI4p[/*:uL\)-}ceV[&xx{@h4! 鵩M'uZ"IbmQhpAAVlGDgGx*+Vv69W],"|*ʒJJ=^?̅ku;1  Z;ۮ±(@ޒB4$ zFbKϼj&CB=ZᲓw%0 }a#&!ɸb_|g\ʩti;bn8D~e670݈g h;>CJ 1%Q`?h {.A$[cԃ,e<,3R I}&-iٿ'>*/,sf@#m@G \5X FZHʂ5#ˤqa+ԳPazŀv`dLK2ࠜA+6g8n*mnZ'VzÈo*OB3-r2j.=?j4ByOXuE(&mU/d  t<ƿۓL¸]+Z>y k`i j,ٗZg2y-B v7NJjLMÅM >#@?iA_vIhh]m<{{EQ͚# G@&zhq.gfmAE]I3c|D,YYK%~ni̘ y q4[I/-gT+kيDzE˧TC-4쏈HJU]m'vO..D"rxKoy pV^t8CL܉xYn+ Ƴ:XR`{]?_n$]6=ĪhDr~&Vֽ<o `4ݵ,,z($>)lą'ڥ z?Y> (z"Jykzbٕ=>BŴH:l=/6 ӥgÃYγ o0eV!!`tGD} D}Fۢcs]&n5%ѩ\p2}׭'P) P.ds*lAA[OI#vk)Hh! Dڴ-:Ŝ(.e9vUsYos%!J\ )W->kʴlRhxkNEQ5$5|)rm[{`fʩn>*Mʄh+:xʘ&]l.-(FӘF%WZ;Ij(kfL': *x.). E.O-Z67aItYl@ Ϫsw‹][[z^CՎt aJ~J6LD˼0A=_0ss <ځ8 )ɤhք YrXK7`gX4N6q!cEoLJzo4{ F?e|SV?)$2'"jGӼTgY (_хj6܅Z0x>$mo[=8Q0-<聽6l^#V(\x0q{Ϣoek)Uq_b wEhFJkz; ĸAHоr~ 5k}ds䠎oĒAjŠC|J}q"Q7L\-B60*X`6 `0a&37ˊw|yǐ9Wǃ'DCP̀ %̯$R >'ɏB\D>n@HYT۵}4ŚrUV pabriHwLjՒe"UMӤ=t 10 ֞ΒS Fz͒o.=Ŧe͗q`peqL)(. $ & aURytGbuw//pt,.Ҁ+\f>ɳHޯا'q (I 9EՄ,[YR4s,'ɷ`ʃ;9DzDL@VsFldEz,iS A0s|_Df(̯.Nv.d@yMLffjVeǾڪ\уޛ*V05fk졐We1UX$tp NXIH'GE܃5-g:8\(he,?t=%n3N.UղJ5E ֞!9qbk2 ◑_@i[Ɣzq7&freD M+~;"A3;-뜊U} 'm)}b2iͲ@KlrҁTߤ^iX\N%hFj 7gm_Rp 9Ӿc|BCSEq{C=a#CFTv2DkL0sb-4  2QIFkClV`8&2OǢdz1ib^bO2E_T~i Djg=CB6h|a?]V-3uіkm0-'#Ӳøs:oP-i |^!,TfV^{|;}Ƶ{aHM^v55Ҩ7zBB%n?2d_:s-D/Ɇ!B՟''Z` G1į%<}یF@ν#Ǻ>/H~YλN+T틧C'f8זvzQ ?K$в`z/N̝O-t'L Ԭ/'qe\3RhW^!:BbXt݀XqPq(SN/'Q2#-d,:/I]q/e{ɺ k%ʛ\lmL_2r\y5 y^-L92e'ƳL^;?}v>rm)lm /N] Zwe!O`ɶw @-lH4mtّ>pƵ%W!sc֝m{ s\Z-~C0|F`U0-^ }Uh\n[v"\{upkYm SzsFvIUnfJՍx{²םTKisX tA[^Pfxß &<ҘfJ.4d(#6)r& ] K+@Vݤ Lb?=ƙ&פ疿lѻ|Id(+Lo8;D񣈽@ >0W!Ƕf 9}0; q]1OW/#5aM}'D_D@:?UG6U^5C$}Y7Qg&5;gLHfHNȪ`G~uBF FmV&?/խbᙩvSEIZ L6r'.*y ڜw`c>rUamŻ SJC:Fn]uM dgYc-Z1I~PtgA'{vX߸)pX磕PRu~yl󧺌>;ԅEQ-jc:<.كU, >e1vH\n׵/!:A|:AȪ#LhhwXtu[n[ }PFf $@ St?g-pѩI n fWޚ-Qm8Uժ gWp3+|rk;v^]RʾamZuEhIo%H-Y$)1$DXrt<6<9>t8 a0, B0BSʹjA|OU3i|1Lj?7s.ھjn=4 /^ BSf%{ݖL@E#;iQ_ dX{iK*q ]( '.ge^-wHs_Up DTPE <P* aؘ0#`&DaDngu9ߜԛ/:k\V|qw;ens*Lj38Ujb{1s}-M@>_&ݞ>>N<[pGg? 7 ~w$.NA?pWfWrTL'=-{ع*P;RJ)MtG,m E60p TAI&S_)Pm1Ҡr+g[X!^@gȋʛA?ħ ru"]X`ti<ز['oibmڷ54aJMtH^֏֝MIWx[n>@<Xmlf"쿇kHTWdaƿL?Fk&_mh:F4oo]@OSK>}e?sR8VC_P4,C ;m>s{YlhD9$.Ad]0DȬmy \O69`xO:Э>aJ.^'Q-.< ;ޛ8`nhDʊm#4Mz{KY1.A'»"R?y8ۓR7;aˌU1$_k'0@cCECS.{H{Lқ m'2vǓTx}jmGKh "aMtQM1Br?:`@ja?ﺭRa}0';>oP4j"A^~A޵tyO8ΡG6 ]zBDtI^Cf ЯhGpH_rJA@6ٛ26 *j !]4{~XHgg.xnSmd0 Lq׭z / 1 Rw>Gl9sda]¤U"mcIԛ[vƆҲCl'hpD;>'ywBo@aМ~] b+t0 q= = &փRqv"MHIؒCqЯ浈mMoo!}jP//)2Njusd4Cg0K%2^RW$YE-mwW7[TXhqVwn lZyOS3jДw{LO:ܳ]k(LDU][N:#Kk͗q]8[pFI{.nBV< u}gmQ7;D~[f3`C^dc78f]-TPM@<ϿN/gd2 -> 0lD﹎\7Cd h,h /\FϜXg/|Cy]{.l$\-"@Y\-!/Q0|_wO&G;{AxDѷ/ekvf/z$u1-{"'ḰDaUN:3՗HبI Q_@ yQvnZEmĔ3 5z_y;zu}lµ&Ζբ6oG4>k]b_GcwrQ/6dpFz:|h0 8'RTmWXEޅi:\5Q COIKWmŊxobY\IͲwpEY毕 +,ۅ2¡f{"7rLyEp_ڰL2fcMhco߼R" bG.yߨѤA ԖD_ntf/z[OײS.wD7<¸/XDkUiG3U@婢<ƒEhL7+hT".4f\#qr*˼aA2Ef1>yF'քZ&sٖ] j~Fv6Xcɂ~V9%kZv,uzΎBoP8]ʹZɾxki& b~V8/Oa|t4 +RF]슸52 QI73)#}kASMuel!ςvLkD$eA!N.L(5BX0&*P&!39Z5/w)o3^o5|ޏvg|^ Q#FÁ^]a̯.r*FxO}P!WE-nZ wQA/oy R?yT *h+O:rK;-_ ;wj5+weܥ(]9b$h%H+0+1Ml_Z[uU۷^n;x̶ 7wO'P.~Ӆ'V/.$LPj\1Y* PvkPvRG1:DlO'윽DPч6=%3+DxƬ-jN<yφ~rѮ%;sv){]bj5D0Osvh֘wT˱Qܨ(N<+qLZ:-/a^m S;žOXζ.` ܼͷm猅TkHz%a#E\K[QFWYN l,IxAτ֣lCA`"Fm۶fx>FX2xOKV\l%rm6e+`gΛ!Ts&>[Ş; &»}"5#Yjc&c:,(gXЪ9~x [5)^K>,򱩏yA Pv}SSvv)vt>w9n=լtMv;N4G)N<3aں&v+MRߔ0YyYG{w >crBHXox8 $'àl8VQbw)>|&I!;qU:# o7 )Ks${Mm~B߮RNxm\ mNikJJޝ "cP ,j/{hXOfy"\Qm/X~"a ~Gj5~qEF5 vSBY-Vqgqc[t}\.ϸ릁ŗ;kV-h*vQYs K4LO,Gd7 !:Qn:W):E}R]L(W+oW0Bmu6ƀY8y;+ȯ\,TU>ܑ /XxhQ(f,QIagm8?yCy-YmoYkEA2IG]):0qpvF.%`Sh_TM>)o!s*+m0kY._p+9bˠx/uB}HnjżxmT`W:?fle<` ?bSnLч]VtOSqs}؁05VNqUx3uyA&ARBQBɶ⌶^JJ%Kϴvqe-//·h~Ax.(E{u\H+mN0XKE^8xKK ) ܤO8.F!TmA_OC_>( Y(QvKVqޱ6~c\E?a뵺`$ʮ'U>}&wJ Z%A2wC$hUSJGhɕ&dI_f ΛJ7;yC+jb-OE(BN[f@Z5V9k CM?11γ6p#2X'fe]#B<OiӴAy˵)=cf|f/ A%.;un]1'y\$iW3:Qhuk nYӾ1=Ss>S\nU@ 8Z)ރt2x.͇.%:J-7 :ݖ]u Cy{ZwX #G `y٭sval8UkI*fMs_XvF>cxW&)32 U3eR^[-7mwejDQrtғd!}$2Ѽ>4QK=+7m@#Uq8ݟ0FLbz/בSۣk@߾xp΁rnbZ6.kSD%?g)K`S_D>0;;BjmxJCtw8M}Wf)v{!Y\iG:f]Z태\7BP/qU 2,'v\7Sg, qI Z8$DO&lZTu`2:)a$)Ipm:~_S+SV^TQYGй:a8H B  )Y?WŀMcoNRطekؑ k奌:OgȠL&Xw_ůĽ^8=cKz0\ ۳n7ik•wi[kdٔMrVYܯ*|u[mbrP&p'O}1KθRuk,[НnFQOϷﯜ׳ #<,,G5X6CHEdGmk'bMkо5G&1AWLc_3r$gsr"C-[##o {7`Έ9Tlϧ:v0;?b{+w s2 Wo#Xu͍0jdQJI;T`)^qѭ +9wӱ47RA'Z^yc&ccn>ΜfNy?L*v3wѱAD`×;ZŅSCDEع GPpgCPӓ 5ˠ`c.qUVG\jPrDRW_ grSm&hw/jDyx[gjj/ mJV K`'H+qL44[+.lW7 $:yz[P{ Nj希1#4tvM r\zk?T4o6UM=D{/~^6uN{eUZ3YF%Yj! ؋ݗGzJlh֥Dn)ɓal"p:x +( j&ʽyg NDb@D<Sۇ5r 7fEwhȓ{'h.m-7 O5Ԉ(Lu_v"lxJsI^3^\|ⲃqk Vl!QN%XzBg q"G}.I a{նL&4TG) d@1:NhL1Q15EDDL DOwfFS~ZQ&H6ëJi4w(NHvƝP2.(ֿ|2]3ֿ A!)%$-bJZd~JQjy(ƏzbY.>vMsf=*b;*bZInqw ǷOPƩeEEv>}U5 "a:XCggKJv,DՆCeaemZ52Vu8}?6GVyܝb}`{#E4M.Yy#tI/}we0iKNV'SKΏ mes⭦xgm $#`O&NKnONmRBda12p"gvbuSxRRo!":T9&์$+cBg~?PvWk~zW|\X!cՙXj^͠!BI+EYˠ_t+v!rlT"(K*ĞrUIk4YNP3,! )FDm=ZsY΅=Z~~^7mꓷ%Ay&j ]S[;?jj))ZʑEcCD%{.} qú[_k^:R`ע>kH8_y0?+}b#oH ҵ=o^^B} B)Ʒ$R͂FͻT?.6TCܕn _'e({r]&dkYiLj)rgw,audiS!kfL \6=ֺndw դv^I8&}`0%vv1 kŚC|"5=)@6ض1^eFЫ-)b{/-:V4nS_kCXV0 {t2$וn)  Gs[MzcM&55?L~v dZ?QӦRLl:xi/lۼ&&a@ј\燁iDGDi[lyLm}4 G Nkdfz dn3ڜ|iK͊/"pׄ.V4~ϯ!R2m>[j$|$+߹ꄨ,5U8Y-kLTO?]qSR vdǡ.,п}DhS޶wMϧo}c'R6o^D'Oec6?3lM6%J&i(زRM5v$6\[B1 M<=l@` xM aQui@P5FqbPTS3Δ!;020HJ?GٵDYh wu꽮$5O֭{Z-!XU0,AJf<=Str^DqѠ;_#t?Irtb-nnU1C ұHٗ`H㶿C~/%`UCCV)dkInf̞r: *_W4Q A9*h"49?1mNMdHz[V-' s)Rf .F*y;rnkalZԂa laJtCSAL)Z7 ɕXǢ+52ӗk=R̩c dAt'sQhwS9O;e&Q^lS8/w p7WJ٩;Dl1 LOu~J_RZdPWFf6]Y51ϻ_@,[JymL[ ~sD}RлWAJ} e.Ms*~0r!C؆F?(]-(7/0܅OL"ڎnSmkaY1ِgEd2;% uiPhI+*=0_,@r0 \yP@AklNwgfFVЮ^_ nj:<71AэRn/fºܵb͖d'Y^5xFgZrӧ7[ҠAYHa5h|f˰FIF4?"*W侧 ޜ@mg4Asi/ J%L >Y*,V꟫uHy7f>ON7^GW6S4M/jӐy D/$܁.1](̰0ڴU%u__+7zrÆ;CT5yFb8L]I @LB' aoد6j^ ?I3.ssXj;p$y:G4%gM+T)i}8lM%䣆bye9&Wc{.qO8GrS@bG(|dkrQ?Éξ! nP<@Lpk'O!ej uZ1=J(Ӆ^ѕ dŜjO3Gc6Fͺ2`+Iݜ0[r u֝[7'E6s&MFX)w])6w_1ooQ0ؚa`N4hB~*h# bkp߃6T C`0b L"xj"wl?6o{i(NE&(tK\nj-KU5M7PEuryC*yHl{'ޡRXU# [q\>^CQG|P'' &[QHR*R*\= o&)62Xen`YDmQ3V'd>щBoYvDcQ/̛x)drt*_zo}5̝cH1ҏKWSR}o~'|9{O_$ ۋ[:0ϪmTKhtMGɍHHOAiwГ_poUpבbٗ3ً&|eJsy ]UAda_ȟ{a0Pl?jIyvCQ <*-?Iy~ Q{n ЬyT‹ ת^ނ/*PtQы#~.%;fo E;̡U=*)si;y5q]2pidAR/;|o≲~a]#dD?lgozB\ (>a*U= B偆lTo//8Ru刎hGf[FOĒ"m192!+؋9\8hiAc_gn ]Ivb ʘl9/(GT<-/*O^ 0#>90~vݴ7Z=8AD@tC̉L.tab`H)F%rZ~݋پSthZR¶z<cA˃h\>uȰs%0(p%"5=)㔪V*9bF(5@j Kvf2FGX7W1 {a|%l\ n,@hۈLL>'h߸$>i.!=T?0 _ h9n[/X0B,A u$ !.cL~|iq,wrqm. ClR 'b\-j]WJŒ}C].6 |??jT#G:NAJBA/7,cv+@ 7,a_}GT nM8{zzigd_N½JHh\@`iX:H.aj`ʠh.ԍ%-(C|13@32A!I&SYz84 2Anffޕs}d'wKTc0Mv;{d5|[J0r*)ayT{\^VYJ}yw<।{qyjsJmJ"S+} 8uEJz uGSh.U -- U#({Gw%`0Am3/7TLɶ$%}_(}bJnj[HIkFDz_3f|j6??F\'p!}͡N5rap F7'} R{M?8f/9Ԝu+S?>m/ uӮdJr(3M4Y61JE}a,:Uٸ嶯&,dGOy.2LiX:6 O?B :qPcƣu %պ8n>ༀU9P[VMp[OX"RaSAh."೧"7W9lal/OXM3 Hl``],n+fj)2y?FK/pc+fi 5lf XJՒbp1Vf,*hW+x ,hWt ef[pl̈́yO]'=}3;U+"Lrj{"p/^-*KqQ!"om#EK8Jow9slW$/U$CG}Jϝ˝딧ZAן,}ǜ=cFO3CI[o\E>7kxV'̈́2.6%-nR1je!ho t0>WKߝs QU^حRL@ . ۉ9UaQB+A TNT?iR4!dAbV8։tw"r=m2f;Q[ꕫ > ꃒv-$SkGQUh3M]?54ް In8/N ;q`qL44:HrLX so4. t *f-MSs }OE@b[V ƘC QC-lrn6xm}jv4N#ogfb'[P4U2A8oLC(%$%< 菋".aMzCS!}}Ќ;r28 ^j|`r2̼'o!|;}ݲ:B mfV&BEVA:rZۖ.:j$Zo"Cp${+C~qeT0x: :InI;Y\իNbeߓ~z,uT`lV),SRlD[veFp@o53G}nS4oW 5}d%p-*H"4uֻ) !x',i3 "@M]:t\t a >N#]OuBgk3Yqn3m*aѡN=JQ>-DVvqWmR~lo@@C> tLT5ޣt֬L909uFq&BH7V5H&ʦ ouե6wzDyE\E2uŌ:x!%,O`fTk.![ R__Ef'-Hu%[)YˀoPPf%DA;e Q0F=o\ y%ZqP11-dSS\9RBD[՝n?ಎlpu@ q\p y˚1C$km;IM+{EbExAquuLWQ:f(f:^v}hunUb["?1BR (ځOkJ90u-w+9\@dG@-YRh7[vD&7[Qws&P| [EiF~qFY#;X/$ +WCaEYp_Ne\"cJv|[t9NHZI%*Ɩ- @HGH!vM?;e}Q?|ySY J̲φ!*PR! "fJSuIs~m9^O#CΌ%Ub=1mɱ!;lM[P3w՘APyPB ;s?3"da ]Ns K^I(xTI1L="~ T;жk5#r^ NzĨ6j)nd$5ȅk>|ѩ*ƷFsbgFHn6A#M,QXyxf"DDbmĞ-Ŧw#J{YCx=) C9*?XyɡYP|ux96]\>әě,CkK/( 2+ /ء3f nZIxG$đX\c2UC1=[!<%<-}E qm=U/Z効 dRאIMC2jOR1<66 r, Jx|ߡ(RV;.TpͰho]GkڍTjsat|<U=}K^DG }PZ U` A8嚷"tf(v:c)s[/<Yyw[_{nվ!g. )өST{IITZ9atgeKGIj7Uvq}#3HV$:݈Zq)A#; 0=#CgIRy  EoP]CB0e^~z)^:7-=!@CٖeYѣ .ŭT]$D#d3_Pv6?C@c*<: E!^ 2'ZqP<RQPszOcIq&Ndh_ZvP'412 m8‰G?/nDž۠Ӷ 4mT= uTal>R!1aaUk8%<=ϛ*eS mɗW8րB%5AmC~$]8ٷoAdwݪtޛqUZ x[%HtPv dp]rw'r~/e86hDDȖ| ~vϵ[]Q&5k*l`19Ɛ96sƞ˖`]zRX'b~w7AJŠE"yٰKN8ds%01|yū($fBi8yR 13.QSK/$rPc?`:<)z-+Gf/N'j&)8Q)e8Z }ATUjw24nj{etD#/9.R [ڵΗah|͗@P]}pz*]@mY&.e+ImSGo{ a*InD:"x dO2-~\ı"OG[i/%5Ӕ[|=TշdXVMЛ|W7t 9]"T'TsDXUEIfu4z$ ̀$8 ACI&S39?o_9IV:=op '%3W~kA}'/xID6.|ҵo6Vp B_̢zه9ʚ3)1Ìo&#{~bnZWuUڐ1J aZ̖jI4.@wH4)> Ys2U[ κ\J}פ~pm¸ؘ 7u@9TaA ~ϰ$s0ї[ e\SZA`!UIF}#5U2 ]]lWcj㙬{E@}VÏ+$3g7&9& gPhxj{8A*/#{'~aj_lg2JR%7ݔM4A$AXM2xOqIF_jo:DL5Ї3!#Ć͑RKBo=I-y"EV:rh0GX3x!ycb;&Rrf Scl1UF?j{y7i4LŢ, RYMρF[vsRS=}͡e͠Ck]سO@mg |uFb~'մuPEǚ"Jڟ۬vTaEI/+(ɳpc1^^Gat7/ѴmJޖ'ˆ+>a2UEyɽ6ˣ K7:۠[9q sS2V4w]["/N+M}N 8R{ɓ0k>y#^4WHd0!P9t됎oַT'~t+&$񠧽ьMDzyKv]Eg0S -(c0T0t}.{$okwwCiE=D1 Рt(e dEb0'6e?-[Z"rָ(3fJ@0 CB2&Hv!(ԾT/7jCR'PjP"P&?8ܠ\?3wPL.@.rSVjV+)X$n^R:[c;#q]IaGP)! kٸiҪaQC,'38awYo${bKdTk ]g{v?TDz3 Haۡx9үA$ye! B^1:aT\z䮏WP^wٖ~yM.hŐ%g7P vfagX8<{ 6 뺧e &sjwі[#VЄw^ބ24( @;;(@4ss~ϼB6F:*$*JO_ o9㻖EَKj>B]}"}f84RI/ Ā(F4=rh-H&<,}JsA#΢4iITC#m7oejUڷo@HM" RW[~>IK)IFUa;#nVG&Ȃ3/řBM˛itB>R#>#Q=}2 "mpJ/ҥ7E|ȣҰ O<+;jȨ44RDS+\: GɖT7+V PDAQik喫o޻ǩ KNV';>]BܮuB>RxI"2[8H0PWq |B1c 8AJEEX6F5pՓ6T.Zs[7t<>wU-A)#} \8eM9sbz0Ga)x0bjI<ΞEOF'CvÎ8ɤW>+ݾ;f \aPK+~69ԞhKaLٻ$`D̄'B1q/Y <&ל<t #N>loZ Np^K)Zƹ͈XBGqҥu26ލ4NGosE~?!%+Q"oVq+'oSnh݃y4U w|z['꫹#w;Y׵ռ\OWp:.N<463V0P~U/P#b%Rŋ nYߌ.Y@ecM RrJ<*hoK$92GӇW 9 c~nuPzoӽ&,o`fw8a:չ7{jٛ{\3tk$uhh`45(9|lإ~!Ҹ8(S~(pc[613s_)duO;-i'Y)ۉQ {ĵ#Z0WnEr?J12% &>a7u.Dx AIo+th "8eE3qJL|@٤T~8BHC7./s0ԘPAl06 a(Ůkq*綿:oWCWC7=fGD)zv]<`mҨr&ûozjNI _8,Әg*ϵ!#)KlT[<蒾ep-ݨ B@X>u :AdI&S_LA/&KJUY]B6ѢɮԔyJ eY[6m]7_(zl:`vKFsyȍB%h!ꘇ?6P M|CS /t!`vJXY@dw*sT8q=h`%#{*R0haEy9@W*Y zl2IaIw$;nY8;VBYjVlʡo6$E%*=n`Y{\>6N#F p#?Yt!x|7M*b5}5!M~E%`,ݕyi1@JfMvU+[B)qJosIC0n)^W-ŒE4{\Q=#hTNp= :[*3C!aUiUwl'&ƴ$1gēj1>yF]?rAcN> [TXF6 qn,z}n| >HxC %Lt}lB ~S5EЉ 0I`p 6a~&34N^5#7vCRm0it]Ejl\BLzW (ztQo ( 'Zx> rTc)ښ'?'Ѫ 97GޝZ6k#eCr%MA$ti; ](Kb\zx&t\Xo1Q Gncrz6S. mAH21{rckɡJ\/y"1 ̹_V'Tm[X n($1ϭ6\#8Mg> {GY;SBP*M\B`xN;L6X!lv!a-2t9BT铬σ;N \rQ z\;|ܐ!A7557t aö́&+lCaRxL(Ť^+w&h z@+6ICYBP3 IV9#YD,tO^3=t]*ßHePiZ,dU6mH\D'Jy%SZSΐ= ΜdZU J9Ӌ \ӭ"OϪ!haC1C6YFfm%;٪n/=HkRG [hYKj2>G pw8FAe*TsĊ Kcbsj4BA6phmǽ? `|l3f#O=g#$FkBZZ´leZh&'6+?9p`ຕqخ6!\z #G32s,> `j1zCAlor=D8tҺXxJi$60`! ysM= |zZeՅ0xr a҈ȁz G[*‘g#-bg]')2&GN' '|]5qPg]S ^9[ tp 3|6M=Kg1&XYw_ңŨN6T5"M" ##hPVqbP!f=%'>盍0#܄i'_m&ɺF Gɪ\+ra1{\!3QxFvȿ;ݍ,ÒRf2!%,^q!1ɦck\_hA16Kv3(keԊ0qBo6C"MC1r#IcNgcMgݳ0Opogv,SHF6.FOk2i(KGn.MO'.l^FU~| LLoDr 2]2R"B2RӠ#`"W(ͪB{7x(z"%fBޡ#z Q+jmmc+ Pm . |3'gI!#K3ɵvsQk)՜$)mh@a; ]P -bꟻ?((8[hIRھ?"m0oU78jD҈FHj\,4'Hھ r%u69O"+GpՖIltxK/kX, oZƢ>HoyVL.J)q桝lm`*pؗLTdl^+T[CHxm&nMJB&0QLĢmGS{>\`b)v)T=S] [ L݉k,dz<1ʙ%QfCl&Fi/ {P&8ڮI|HI<1Y[PA]r.X-m&M$Mγy {!SwYaQ'5>1~s9zyf}hx}oGrt~a_Nߪz!v_._a~-Qd GܕԼSʡg}!kzw8"@k}wexAHqJ.J9N94̘>&!'SO`f)qeۅ( gd }+NWO{r5Z37֦7-,_SMT7fPS*^,f5m'53q-^ojI4" v aFCMe@P+_Vy-F6T98hz6PBK˟/utOpG{d6͹e̵ym_~;5  x2鿦\?>F2•%b^3&`Y;TMEAe.Ӯ`nZՏ6P~$ԓq*9{%xAXI^_ |WwԻ&Y+n\E jKI2}hEYWN>ɴ3!>]8E#6˝JOڐ# ia6DYe{h*G3~kĆBx͂+<=#3^ϒgǻ8  60Tĩ:-u!k9[ReSWTy _:)=A*y݇[JrzʲOQ_At8\v>EА;n*3o>B0- gKዜ>!a_nxH\i&5&+5t/|yh=[WF8#YEonsj9L^^YHu4Љ}G#4n`^%0rwp'cY7`yp~r o { @izg*<V%Z=x x8,z͙Fڭ,Po};%C i@O\TB+Eh09PSkjVh+n"wgR^-?"7[sP~d Zм&.j僬k#GLIW%t6N{oՄx!Cг|I:+؂ȠGB\{Tv^gcss#1#5(;2cX5 p/b?vz1Ro1/:ݗ | K^SVyHU<ę zMK;J ??ZE\ X&!pWT$F?cyFcۇG~^l ^Tg: GWWeJO"XXj?_|ɋ}H+RrH:z,VsvħծBMDVÆ S&*FJL`04KRW,R8L|E;MxHviv-.E|.ݔwɛ^yt"1;NRUty,PS0ǒuo7rJ>ʿ2 ga8KNDe}1 O#̲*2`hWkħVԟT~kKy"AwC@kn% |V@Od?s'TS64]FQ<9G1F_[$aP[-9'pC0(\7n w 5T9bP\#9Î/hxQ9$VFb'尫}Br].l UŮzqw2m \8qcft#uWw2+$0 `l,3D D&&~Ƴ<9Ru2/j4^nqcvZ>Ryؒi&ru"㵥+s _0Y On[W_G&gz'.g8}+֏>\蕫#FyEh8ߐ`XBEM:Ҁ8.,( A`6&@PJ#!0:22YToxxx}ܘ?Q*V35LMhE=w=jIk{+J%k-אe&.ms˳@]e'߄kl^( cIOz<߼cl|w[g둝/ݏ¯H+`m?+dsy҉D$f.$qBxph q}n,r5?̿uG$z~zB\\XO3N)ohÏ'-H0I B!g.Yw:3G 43 _F}# g2 1؝Lg^|]~Ky6ƂGsݎmf_;d{R.M wK;-@uD _ؙy(c4hK۹%Z@S?.I_/v7=5q91VBE&_wﱵZ~`g')8ZҡQ,tRG%  .k@!7Å 'd쯖I;Qz{Tx=|5y^Sh0hs58`yK`E}ň>DY)ɷ19Tnr@_osT#.fOYDQoô9҈O:6hf9,%;eX/W9GeR/\{ ]$Mgd7z6y]-ꁑ#r.aI*&͖5Ú#z|#onLa3tܽ(#,*μ*ڞ`\7 w]k4/aɕ 40*e2 'ڙX.2uLx,<ʌe"B\1LQ tmq1%gAwb4ɃEqO}Jw:^J R'UE' I5"\.лPx9eDr5H35 e-%`r?4- Q R.K`|ņ%(o\YVO`0Z–l]heyVtx_ƅa֚Igj>X.. l `X*$!0"g~2N/뒫IW:3۽:jl|o:!PZ}o+U-m -Ǫ]n5m}%u3axSoenG>"N@I^//yjt–ҟ>ݚ3`4)P@KP AI&SQ; Rn@zs,GQ凧IpSsh_4 P]ʵ+ .TbQ=R ;,n,]TOwшy(kwoPR pgr `ڣ4z5{.>uH}4RT*d14酊a¦R?IHkYZ^*4n_"GTv6|,Qzy7 /]CtUՑzb c,QJp^BuI?Ig#SpTNha{[gٵB?s!pz)Z3G0soD ({gqLܢ^3;:Ê_UC뉙321{4rx͈녋p3{/QpIr>)uF.4gfΫWbdiF9NX[Y8'2%p%ɠ=\JѡϮ&i]k%Xi ~iRQ6r,GK&c2nd~SYe:qCߍOvs jˬ+Elz]zؘn>r.BnCq`Jgcr L t^X.~;%%]<u'Fx!ѽRiN]$sPx';}.{DhW,:^_[pqf`9B=Vf8.-=~vC#_J#ۧ!wRQ'%]G C|"(+Gfm?gCS)v(~DuooRMt߾ѹ( yn$a}얍xv; 16"J_TDZ6ʠQ/l1n2(~0yNykyƠs_8tD;yRrve9֝Uw0fHyV޸v<097`M/m|K8>7J Jҙ5PcpcOݗ$` D Rڵ" o j,mHXrF4,*"@An8h:7jQ~FŞ"PyfP-;Aq h`CL-J34FB;>ZJ~3p˞[>ٛrRw+W2V5\3@[|W'\=/61Z>/*!e*e \3:ҿ2p ToE>*Pm`]gdCj+o>M{+ж ɟ36:Yl7X9y?rTl劻>RrZ x?nQo 5oG٨ Lh=Au$۴1qNBQn${QCOW0LQ-b< sxD"1-T&pnΤE++ΘUHU/;UJEM w>W[d@Y%8.Ђ9Br#< e${$ˌ-EՍokEN xVE_K\,# aF "b*`uv}|L9n |l`;VZւc%1Lrk/=ZX3?0AFA.N,(acB`e +b_]8fHH0N'@#zv\sl?ML.l>9FQwO؟U҃ [E}Sfp-(6"\SxTxۀTB\c; U(})ȟBWxP_Ncw̜:Ao}f}b][gUvB{@-8J5T<.C8jhWϗ3W1$L%a5!0"'SϾ*|y:e2w]qwY9u97IzxI;wLbe~9IXwsXHZ>, l"4.p* `T pH&1 Ha>%*:ܦS{VczdZv_^gP9,z=7Ӵ-{\wMFu6g?:q+uy1oG?t7#B>>"O߮ {ȥtί9A>%n~;]Q6p=a4u%` )AI&S)zV/p5#vB?*[Ln{JI(g; 0S{VWMijtLla$j.Q1y2n Mcӷ4)0}Haۗ@rYscgfaSu+̛ }.Ujul!aSm@saB3_4yh(;k l&2zk* !/d .o]~Ծpig%50 / O'Lk@iu)$v"q-}#uH\M*rq5hH6^o=E]I^sJf:6I)xh|7uҝk6Dqx:p -{yu g.u w> tߚK> ib0kO[Zp,B<ȴ(VIcOI(z *,Iq9 r[rJF_2cEo4laX ڹA^ # IȞ&ۄņ 䄕sG,j†ba]TF #mI-3Ag$` Ri8`9Ȁcg) te+4sE˶e!=%x $nWƘ4|2"ڱ^CI9w] X6g0ӹ@^歮u;D/"s~ڔ&_/):@6P5c[!Peއް:'TIm8d,i7M ̣9G\ɐN׉; GSB=Js-ݎG@㷩]1,=s,!9k*צȮI"HIP[箫{qʻYn 0GYrFd\}]*du^~kDWPtDtc\fG1B~ "$sը(nG&ۑV^&:0C]\e4,vgOq/"xOU ρ?|UyPI ::{L@o^䕹@OpELlTFNn|u2-mnCY/5624ֹ'AnS9*&I ]$or'-X{Ȧ2n(C8 Xo}aS,DBN:5oϲS_8l䬕o\VqH@Q,t Z򫫁1kI|N&-W"6,_z'\v$]kWb4[>]F]Ӓ>vlG Gv㳪Jk O٪czK'䧟2v6𭒶* ŸVz8v"|~7ԭ5G5q⢅cI+AN9Kώ(zf FٛVeA(I\ m"cs׉hG-=CNCGvg Yy$bTB{w,~_j,뼇*.d !O_.; HB4~|F3gۗ[XUdT"$-Om/bbό/zvi9q ?U}ę~zS%SO8`}c2T$eR ncw6s!ku q*1р;W\*v.t_&se*< _]_M~AK:uML!+DDfKb$ع=ADLnNxo"ڧae|d#+O̮_1ΎtZ(c-6ǴaԡdP4"Zp Dƨ\I0/pUZvQ/=).$#jЈ$t%@h0V" D&!Cu\\2?窜η:g/;#{W??[f}?&m HgRņ[9*-BkUrYV:SCLdR%]R {r'%&ۼwY_q6l&3Ч()X|<`le#a`p AI&Si?\o!S tm*Fj;(Թ k"g^ rcoY 1v~O*+Bv,:5Wk={(Qs1?]4X@xG3ȳ`w;H'V{р@%|2P00(6P 板1+HĞO4XN%/sBDcuRq'L{X?!䪗 fg KvWC(ǔ؀ɓN|`<`QX[$zj.-ݭZ 7Jۙ=hen촰leQ9s gԙw$Qg%HdLip[%+ B# >evk뻯@XIY"$PS@9܏+TD>rOPqޖsSK;/Ei!*ʻovN&[RHq}.[PFi{qv*ҜI(aA!Qbrq$˧W-'Y;Րvlȗe ~GNƫyͫBm#O\mʜ =~i( mme`#eVDI8e>}zryd,՛k v jŖZ]җibpPC0P\)ܜzUYJI)}1eнT.cP)1K&4Pxrz8s|5yB UV cTr8hjxǤ ȇNP)*A`KH'ꀋʚ-rn>$OǸB汵c;HU?iuQ]M74)E3=+W6pL NV47/8|ivqMB! DDN:-8Y@ 4cHAF_ |}5rj+[*pLY2Qgl`N58pABgzI̔ !3넎ze#e7n1vN# C`-N cI"Z %#W H0 EdfZX a;)anYLԄ9Pg.P! mLkScCvL O(hr|ZK^V[bYC4+u i֡3<1a,fdG7JYf#cNRQ})szlGZ%t{`X/lO im,m4[ẻWG|w.Nrj @I<"Yv:=+Y -fT1#kQsl%܃dIsaF>cY~|xo=X_ ,g;ؐ 0i,N3A+t 2`bU{][м=o&`N09(al:O ƫ0'Lo:s"{(Yj0@Җj56jZC{8x8I7X_H`l3@V*vC/5'L+-T!(w|Xy_KRBP`l+;Ӈʇ`2xje=(o6-ڨGj@`Eqg<G2s$(Ѳ,..l5!j[9ƣŦ+2ס@0a8i@Up.</Q(k -6?bAuD0!(Жp{]Y;3n.O2Hs$]8CrWvm:"k ܦ |SoQLc3W{j=rd)WB&rsQ=lP.vvncT#zW\O?%6<ٍ)Սn(CQ_$c[GXigx=CXcY',e s`]^4%}#oU,;6Jz?niMq[Cj*`DEs(jEP usa^٠jf5 QfAUe(Ҹd3./4}SA I&S _06cd^.h[gIV 4$b/eM>3 ] B>EbqUipnF zPKf T,h5V>|CrQ*ofG[uw[Xty Gިf'c5E Cf4g.{K`~R{i9.Y a%!v~WuZc aIzdO?s[b h TzFbvS$T3Vb ER(T5|@,0!އ+$KjqJ٬|'BJlDԞ ] (Yd/V5ZKA ʮ0 ʞDBM +G33 /iy3=gz_ҠU"/\(`nSĆS>}ʞ絰0 !kGoSia hG SΎ.0 Տ JtE/^X t:Uݖ|=ͫ$0l]]A>/!֗|-'| 9=5⤰vɀ<vE$\]a g4z.},=Q ,n--˘*,wSPb)9_O:.B /^n%_KxE޾^k|E UMI%buͯOi R%O(^2ӄбLdzS_g\6Zco5˯VSR-r;\G( Ŗs =}i xCU4:]ބ?D `, so}ABvI ۬;nuWR,Xw*g'Q1EXNJ+NsV6m>-tRRX8<&@7~}Zeb5=sb4 |#iR:S_1)\h`z.fC<5ꯒ "-v28κ:KW[lf.jn6 j_N͡~4lV|; GZxʍs S2 'XS|R)Jj//$ L]ٸ!J ; `z[ՖgK_>sq)rsN -3gLRZA*QS@fW;1ꍂK= Chfd?> J,q&SvفI^C~R^IXVlcg-ζ!k}w2,.WSlݛ/7XIȓ_x.#qwrp}苤j/ v=’`=d%-,J6.28Hc kL%)M0/{q;Vspd4Zt+,o;2KĹiz&vCb(k~tגʂoF|N Z餗7v8q%6Ya$iE-eϝ︽%6W?Bڕ'>Fc&S/-K%2"K:vBEb $JZmm$Ia0ѧq 'lKeFJL&Dz殀v33+t3b "V=ޡ ]%k lC5`-?M_Oa6fq0 kxcD (q`>ΡkOɴٽBv>5dS,٭6)>\=0 Wb T%R$?N^ٍ-R8>pIGwKK.5/Z1`-)+ۄr[\[(j!8kAI*S'TS‰Ğ1gr,'8>슸[dA^ѕ ҕ7Oaoڰ}(>n3^M~V' CNϵ43/b5)FţJ k]7"0>`ޭX(0Z B`, $ BbDn-uL7|&̏å^o~[o>Xm }D7aWt ~Z>O T>߮Szwӛ#ʆ @y4#N]H5_g%og]vP7lj5 }<ei. I30$=pp00J `N &0^v˹I_nS-׭I;h ^*&mȕz Wj)Ӑ7wѩf#j?{ҴٯJkmꖿ0&I{+˺2_UUI0hoJM?͒#?J%0`@AH QhA+I&S0i> cb©(emVL/IT\_"K:xYۛcRU[.IȇㆺA*ױYz1r4䙫ZvNsCaa\G*|nX/~BD|}'> FyBgz .4DwHŻ?˿Q;臁y`q=C3O\a` ߱ᐲ'[<0ax* )]>hN@c>mz(#-w M%^aIXk ,4+;v5q  06:PC"='ʡЍY-d!h6]sz]n~ęN=X?"u.Qr1t=Aٶ:aV+!q&tqE. NE(JԚ]vDIBL (axϮݬGowt%3Ӳȿ8Lg@80Gmyҍq} PUʺU< ]G>tfڅXo&bBWq,hɝz(.E]Mg'y.-8wE }JzəWQ>/B>Ф=GG#չ{e:N4ڴQk@4? N}sbWbX)F:z{@O1z{N53;bc:~ktcTyE;JJuwfns` EQ^k؞E@:/ѡ'N+rD`!_ÍYVUfL͟e#eZcdƿ12 ߟc>k27%4뫩],m,9n{0XG| laI 4kZ'δ ӡ ] O!n|s9Pժxd #^EՓw>I$?b_ >[C`{/õG7CspQ$6VADx,pUm 9{lYW~DER\?w͉ύfGS$;XqynfcL tEina=X'D*FrL/pJ8;),^{=tu>##cTHWsFBLM+m}@BkV4֮JϽ(7ghՉ, =3 {;mJg|U+nf=yl#65e]Bc>if6rli>;^PI%d0O$jR!4M@c.JjʨoOK&EHO,-¥Cc0!I0=u- ]Wj[9nAb!90 TEB_urvc WʴpNPMOPd躂Rg5f|spe zur BiQBK-NQs~|z.s@/S fͭ*n ?w'(ƫPXNBNtHJdgR[GF N呣C7Dݮdw/yq:B\a&H1A j[tzY[]?ߞҭY&`#{'&L u\վYs~?O 2ryjcfT[U\͚PG V<2jH}%Ե]p |GdI 29NA\ +ԉeeTB#j9%9πcq,.*i<w\$B4l5ʺ`0ְQJNpw0UD֜Ї s:KEYMΔv. 6Ӌ[׀2nJ~2B ߴ`Mu|DZ1FWy-CƎe*Uސd(bQ$mX""3Ni*̬F~ױqedlG8(*^ȱ;c9#D<Ij*Vm60:J$BcD~unjfh8NU+ssSg!e-}ur=7)~?E f1$RPM#@YwoZ5}CL5-k2ikb-( "{>>|} )b+SAMI&S<[ 3J[[TÄW*]~G)87%>0,!.{PjY8X %:u w0S_HhF2 Oe[tn+ e@xR:^0;G{g 4!o0thY8\$9ƛb;;jP}CgyЀx!+IrE^[D|AoQ>[lppAZɫ֝]h-?*xyn܏̼: 8fUpZvĿ?\ok/˨YB1XiWm~壷}/ʮ+y1`)@l3~مFRͷSu+鑢4F?қpS ZXUSo8PO.kzȀDQ+l#9+ON~ !*N/~^yxf+M3GNMKXS%OG41Sx@.NXfsbH|kV Z1sZWA/?sU,1Yp8fPM6#j vĔ(*Jz2 "Vs wǔ:KHw`|l ̀ye%()OEY-ԝ! BɚNZb~M6yêh!0~jd~کYɢ6nQM?`t\ϴRYYva qq֭|>ͭ"&mknhAPYFgfb?2xq c(?f"weAvYr\vM@AfʃIftPV'aoгdPlBoc4,gG_Xn=ܴ?u4 ctMy3!?˹]S=v&!^1mf AO+ G7,3~>Ʉ6Z$Æ^38>TD".3mșd ʚ,CwMZPm ST®g`8tu* -2<.yh͚/.6W7ŹNw ejD)"9`OH~VNv8'r?Ѝa~b_ #GP$6Wɖ/R嵀 ڿ'jջo0Izr_vXÈ4%xhOr=U(]Y5=GXU\Hk79U%* 斐,s}0;aTt΄eT&$Iq_{NGѧ0^x= 0Jʴ#DG=\NY+eNcb%yKDfܕd_zhqCof.K\풻FګlC"`R,2\O o,( FxHKڞ@2؝j;U:SmvZtn[`j{{(PDhG J4{6ĵ#,/kq7ܤ~"w2(q/@KC۹G&֞uV [fpBj^J8}dVU=Z jMOL@rvM kKZBVʽ6q|h"4•qξvӌTbH *@X%Gmd7u҃(Y0գyr/_pr)Q) S^h)汩JBqAPO+xn'K"v?YP;mvU'ap4.$ .}lϑ rτzQ D1~ů%Gf~8epamZ@;72$!N)|/,ٕévhL]J</Gr/dtXgu3+2JWoen&뷫 V/A؋ JAfBZ.O0CŔtKsӔ-87]6$.%]G3v(3EϒqȤbmXhZl ?fy`dk(< \Yϡi?PtU!0ĹIXb%Oǿ j$ 9+Aȧ%;;_l8\4{5RLF 'Ih2PA+H78wyepQ-h,oBt42,eJUUS%f'i̮(~)L'UY{%aȭ*=b#5n9"cc>6\G z6E:Jӷjőu:#2 箏({6w:.+v0S<4@~d#ꗫw>5/H9ZOE {OyQVG72]fŘv)_Twl=B$%^uljIF8OkdHN )8!i ɹ7iKvvfx-Ro|U6+V >ĜuP0mLmnKaQ5t=`V3Ρ.Q;wҩsjr A˽@kVNt6[ [^`Fݳ GnG?\um yI/cnsaV9,s"ib [7g[_Xx6zsJ@;F`B+U&¨ }GJ,E\tv }@dVq2oMU2)(ePy?qk~&jL0Z\hjDϰ[Z@{`DPU>2`멧|F5T 7Qg-=mY3!gXJA46 1hZn%eL18. ÙXs6_`L,*N=ˑ][3ӛ~6.ɖNSnM:l*-3\=I|GLVLQeiT%G5 m{}r<)̶Hasno>z}pN }y\/j0_tE/ǡFz/(/lo;UAB q;x36k[tgE`C@E0{p w;cfcE)ŕ;-@b'X :יQ^IHz=IXR= ˁ.~r?M*ox!aYiQPf/-\r}lS.Bo2NļIvORSW;`3 X8k1 $2G180@5oO8>N QnۄnTV}v.&':^I h- <0#xTao g |@ 3vYD WJD-/0{  cjq(M \ 4&p|AoI&S=9]<&QwWp8 b4?28Uke"m+Iݹ-:[Z?M$/Hf-#O'jN<"!Ԥ3z$rX!? MUOca eG@`R@ºL2/CG,[򇸟céAk mh #E"[f+'u Tip9޺_ݖ40-j;~Ý|> l(|q볁$< cLqdjĒ^ce#MBH%6 /q@7a: >O֩f h% ! 6v c{CUhti&|<Vk 2W7.QXol8\Xr_*zeρ$+^%TQUt{羞1:*gd6.C-夑34:J eA6UpyF֓sb`O"¨cGZNY1N5A_-1K;l)R՘ Yߵ ߛU#!6l!$[o;AJkn9MYf%x$%`)խ`'  +hh/ж&wAkR )/{.XGsj~^LݥeB㐧^F EP՟t[At5n5?Ҳ[5G#a(62:E FbH2]QP~ȔwnEO= !A̳bNt4O IOVX&-o]O!&ↇ+3޺m 4ThFF3MtuI^&Njwh=&ibWT%v,:IǑ:i7jt/뱒xl5!ǩ'e]%oؾM>]^6"k s]"mͱahenO͉cŗ%h6Et%߉$H*m1DNLDŘ(QDC8䄈_KƐXMOSxI(>:Q3vۡoSi"?UR ḓw٢˺ l6{nc, `zƌ]FQa'TbPg(K 0uk{e]$a=b8 P>xe0,H&w͠H f ,^*h/ ^ՄsV*ڡ".HM8;4JxQqCDlF[*ǩ!3/O O]72w!g' @ܤ˒$ $=Bg$v1;^XG:P$pnl-\p ="Q3 3gNȋm{XiP2]=޳SqOg  =ċ,Y%[^{eN(S٬f8?^G5lÃcܻRU|Xt^ExWĠtڹ߷9؆~o;2wqJZTսS/ 1Mz5 kŲdC)G5uA m:7u/SJ6[΢Y{=w8 s`cUIsIK?/q`S3-,lcXE۾5sC-]{a{XNU?E 5qN bA)cϢe"ƅN a}c97!ョdˣlc9vQ4X.-` \A̠R]>C1c53jp (OP+uY,t`>} !Kʀzܠcv7Ў;I xVҴF,Yk*b&:fV|4[ .\lq~dUx1G;5,E D~=}B ~8t 51G][˟Ռg$2SV|zY7L|A bL]z}"u瘂4MUEIsJ =A{ U)`p)W\ɯc& 3ot)+iu2׽J|lţLCl=6"jqg|VJ2@[zS&l9Kb^!vK Az{Dt./i_:KWlB4NbDTVBo,*x7G7ui3s7|ew1|;/qxx2]qWti7[t!zkz04ĝ&Iځ) 8\ & R];9 a]RӺV1b\׫e֌\G+vmd7B/>dyGPxY0:fHn ^uK f@u hhâsN 6'EDuNy]mr1ȽaXSM4v[TYuƑ'@xAGDRsy/4;K0ǙgȩtƝ/p>R48 D lBPD&!Fa+3-Yr$𭫬u`.'(͛M}KknW!e/_Vڭ֧IgP_BQ1 ֭XLèSQ۱=gާmfeBO>?|*pOS^[0\WT1Po<0: AXP* @Lb#z*sU.Qi~9jgU?Gs, :_L'C !U|z/^$[C˫Ow.|B کA7U H7;6H[tZp:!bYur_5@F'$[p~C,}QQHeH,C:"1pjW\3KAH'k7S9QU5ѷV+H'JA=hսL^ Nq4q{uxrmBl͋ɕ S=z>tTNa909O&@̊RZU^ Jxf=S;<Cn\U->!j5ܸ%ESDf!RYP4EF ?qWtzK"w C,&)gcM?qZa\C'ãPUUS68:u&ÑK\L|(kD.A9+^Cِ'* &!}ߐ- Aٛ9+$gR݂nT0BrWU<Aw2Ey+!$Hnr^TgwF*&YVxj~9 c8PD[4_o}^ fjg.i(YfJa_Y- <eM.x3"',+ Ԡ* ]*/ ϹF=Bp>4ܝM#Ͽ*(AOlLTjċx[l mPd KsFL>Am}1T[- !=e,MUޔH0ya|uq"/MFcF}eu0PY6WުB@)ޡ􁩏X)Ūόt+ѽ-n 6P,^q|`2Ab =3/VOZB=1in1tg/h~j$K>%@)DI9dzULmÞCk͑` g.JغR~o2Yo}o`k݊c4n׿k;N WYdhk3Mr| WD< CРL3B1L""0ukq7S+s/:H{ý7*?f>KfX-7=,cgc*lq`VĞ^;ХieoXVT188>J>X*?^ >R;5_W絺 Ŝ;MHoy<;Bdh͢Z00J CaX0 P"#0sUnk8п]_;Vɵd4{,W,™ڮ(9aI'oI`)o=^iT~M4PEU/[[y0?D:Z(`q&GwD2ΨxĈ`@O`NM큜JQAI&S/rW93$P / _1@0n_7[t6фIw7$/wŨ|_=x5No+HoJ@1@7i]JɠWHn@y#7S*H[r͢H=h`2w?uͻQMNCꙤg*'ZRQ)8өb1ʲ"I"MDg|N4Ԍ?7RϾI9f@ k \C_Pԍ0|;?9lw7Qr<^tHv?TS&p3hmo0H?-~J_UV?V,>ĭ{ٝĈtK'Va+v< 8눻V;xl#WX\TAJVՑYF^CYps1鞒tghg[`×bl!,~!A)0!ᯙ|,@DLnh-2:}o_p@%Lp 9'8cЫ -/92"& F8-2&a{̽ɛ8JLM3CtÚ%ѡk]B/-5m9q1vZBȣn"z.v6WaʸMAځ Yx2udzz>B%#MGrx RAWZטpxV @3lup(+JLn^^6+ʖ08,&J<-d)1q؋pujjիp=0:E`p57QF_T{07{t.*Q3(W-N(,X rӁ4DЛ_6!*NW3ʹOYW韴]\ǝ E?xO;%^) ar+W3M"oIJ% l}̣WD?ZSc3-v iQ , C%Q#>Bu ,r OJ] m?,w- c+<=:]W0;|:$AhoSI%(A?YXD $dn? Mi3'$-o(y[ <={h .L%\`՜b)ۢa´[ќ~$F)a%n.Vh{V0p"Ib ]z9CŠl1f0b &ت NU؊B]κ7pb35 j&FWwAR׸?ݼV2E3L=\iK8D=1a07T {yL6)KFYBkc~VSn2k{8nJz MY֜R6wF #5wwg>@m͋Z>g=PʉKmV/>8H/\*8#VE/AgYCnV_ 2V`σ G4@s;DaN"|9]Wr,W Bqu ?5jG%g][a;3aKt/rJ1a~T.n;=e1Y SQ2sۑ=8=ȳ1 9sCCB#lGϞuƫ~驜 n>#6EaG>ާH*%ϣ!|P 0qM( BGF]^0g;Nfn u?#NhBq |;_54" XJBkY}VS;0/pē_>>FI1}Wd2Z:~ӾH䉎L^R=>Bm5:/cH5 toNOT\} [Ɉ<;}8Էh%Ɵ U{2&4֊fzxyP>ƔXSk[YjQ==9*v֓5pB2*@T]TM( n!j+0o#M|VpR!M#gS=NCCm"~'g"cs6;yv؟I3mŹrrsK$KȽGd8QoY\l d~Τ2DA Q^2pű mdܺdcVkhdhtoW]ciY?Q~i W̾~\ؑ>"څS˛q nʾqXDǩ˜X/rb ?>\1BP5BHPVLK<$bh#8Ƃ\hDl'yL#C!%. aݑ@([wiR7幰P\$=YN-:еvUiGe`BdܗޣV"y|l98!Y Ҽ ,(/Dt׉7© HhRUgTC{yo^k8$ַhAd RDx"h i5jDfޞl8.d5\ !6"8 le,vPewfHއlc"CFF+Sh2$[I;/~y]pXVO  aN}%$U=5kΏdCpז,=+ߚEmB@&2->6걃FOqr/ ʓĤlg_7{^^dRu IZEA!Ati5"2$@cäg՟ 9 fl;n }gS;g^E>BǗ (Ȩ'~t&('(7d~;ڬ^3~q۲I$'أbx͢I)ݩf޵Rmvğ}ZmLzyL PJȎ_E[`E8tBc#[~5O{aj[i &tvnWgPm$%N˒zZaہsO#ȓ=kNS1"0䌏tK)Y94hȣ*zKC"(r.U0(%| \{nRv4u.2oHlȟ Hۦ62DmSrLu1nowgyxq8bhHʌ@"k$D7ְo 3B$ ?}Q ZN$OPf`LI5Fzm8 O+(=T@t]q^"TṘ\LzKب>Sq pY Qp(\yeHZJ>ЅvA˯/DrvF-ً?{SIy33Yz|5KKga?LaQrݛix-09zZy݃85c7 |U1mB ٹ̾ &>qC9vJjRRJ&@ӣmA6pޯt"! \\<9N6--I7X@G V/z+ݠK m,4e❝/%fíH<J@cXz,60: a`,( DB0B櫯U$i˿9y,qw+g9ᷮ(op7uֺx|X,I%-=zsfk>:׎OI1J­Ğu J5Yo|xQw6׶yiGEO؏Ŷ񃾘0; -0`3D)0p40:a0Lu 1"W?iqwzQ+xϿa~sZPk3_L*i7cO7g76uc=ݺ6=t"93= r9h3|{1o]ŝmȓ҉Os17x<ӁhKbQH %px^AI&SUJ Sa _V15kgn|~)ՆX|.Jnnh)|bP&$ڙ3eߚwO 2غޯgZzytSZdߒj,AH~FpzB #.kjYX5sbxb^Y͌aZWVZPGe"Y)',T1er']t=#9iA1H!/FfhyO\\Hs| UuwV$}_=o"7>*S(p &!tQdQHp-(ݮnÃ('&d)S Њw=p,||YۗH)6bĄÌ:A.sng_7q}D/ۙVj2? =#;<B'Ⱜzuu},`{D뫗<yQ!k( v1˷/"HZ)cH[M}ffwL J3f =Qi۴'WR,O3I7 ͬAP6R#jk&MD,&GʐV<&!*)H޻Q`~OSHd mz`vYTMDy#^r]D Vbw!4"?Fm~L:/]^Nl}pk&2JdVu˄A/κ*uUqV r8jׇ.сUp/GY=c9̔vW Wk6'\/OPyBCw,V;=;J!y.%Ճ+#- KIpCl'<0ajS-iX[P4rɳ ?^a%HKzMJ@Vr1U'7x+[w{Zx9y{D Sf{"៌$"dXÉIK@4ºpvtc^#i~n&B92#(hMX!N\!zz6o " @Aʐ!vq-zt)CKQ{~&Oh]"`= 2!ތ IXG& KbA%d`@ S7u2m~2~*m2B^L&cgBùlG{(׏ڦpv,CX5SׯHPeja Օ?HG:N` n|kCW-VrHڞ2-NA,H*wCLBSG M:f(=p$A7vtzbD)YQB `tl"1$Z6$sRv}):uox"^:^qV;E.d:^9"A~1>Ƶ#T.57(Vo(x@A؍⊩ _4ݺ{1LRyj҈GX?4Ԇ^,^D Oη:: %'z^[SY0ʛ.BU"vKT.g=p/US D6sJJV]wB&F]Qw2rl .`R9"μwrm'h7`[6ֹOTbF²,G@lA}B`ZN2xS՚TB(nEs Kex 3ڄ[EjɃ Lr Af!y>-bōX(0*g(c65aV̄}XY;gG#Kq֧cżB܀<0 A`4H \, Bb;'P_keͧۼם1jRb!Sةzdq{uF0fB_lX:3)o?{)'d|~F 9Xp wѝEcT|) c۴~Zwq-l*`į{n(CqN~o)=B:!# BR" ImkQ81>~ʻxp͆ZEW ZQ{Ûц\)]ݼd hoM4&K`,, juy* Հz iՇegD@`h{fcΟt)G+7L~XdXΧeBYvBcj_zHh9NƞPYji{ ϋ%qveo=yrN*h,嫦nքE {w囘N0ÔcALHz XmH !3jᮻ1HNq] ȾX fM8ʧx!"#ڹђ?eniJSgluuӀT5)Ka>c^#Fl׬t+{SF8 ]0ޞ5•?Z^d6I)KH)SP5c9p:o#ǎE98,mQc4T??Б6jz]\l$E7IxǗ`h1Cz/aC,@,k/X꺡 X-_H4JzueƑ_ B$1(B 6$9"7?s?"f!H=,Y!Oߺ#>\!zu!՞A`A.fFAw~(s]SJ;0qǺXAs06- QzZgA\Zf-2`l5~%t0] P9k6 K\W J=4bYـ >fRztLP-.` 7z5FLY =Ũ] ˄q?,01UVju?Gwm" lIY6 )r:Nr9+{ i_6c[=i1٪ Fݴf)9qv!nH]vnKK ak4ؙ8WChC8pn'FwQ΄(Z {ubPx { 3d@fLx]kQϾ'3Vnswt7"A:OGzhni|\^|@/Nb$,vI^_Ō,}k|E`m V5Z1AOOGu4) m4fwPf%VXDx&3LM2Pw8wᴹr=>?FѦӕzR~ WU [mDHVdؐQIo ]noyht]K`~ B𰯘>lwa*8ZX9Ϗ6(jnP)ap[G $K&Ic^C/^ fb2'L¯ZKmȟ00ˮRi8h&誇 !/kyq9 H_sAKT ݈|nv55ĪqnұVa\8w]e*>`;7`RxiWLL{:9 GS[ 3aRͻ;~kk6zsa9yH~, ɤ2g6eY,l8^2?hs4N:dVA8 DSgm 6 ňl_]Jؒ>p4BRfNf!78RK~ ӅS;i2-ߡV{ח}b  M<;ݼkJ,^9AZΟywUqdEXdW /UWʝ hkbqhelZ5ry'noތUq"{ d(-UpRbj٪q+T$f  ikL%dR}qUЦDLW547"?FI/{gzo_/!~ūU> jk>Pkwaҋ;#1 6S0s'ue.ϸ\.)4(,eZNʽ r:[6ɯ vuyΨʍ3>Ӈ_.=q5,2<,1ރs~c{+"D G4)=mvm&Ve˞7ssd 6g +CJ2R!g \Zw%cƵ G7g6K35D]rTKu97Łoi~[<(jn6l3%@pKϿS%@jMOE6lM ЌM3g(;mZ}TmTf|(&t4l"RE mSY k+:I:- ±Wd#$^it[(`eB=k+|x~OyJn;b(;ShxR*nHQ%p F[㵁"uzZ,7+^YP`Ij.q(9q (D=IOUE}=0I50u<2AN5!/h.@nK/Ѡm{5&4$!>/JL%JJA cPd\1&iYݔ} QrwŚ3H#F޸_)H[ފfj%݈XRBG[dWSG)ː:E`{/vIVuTtAV¶-Oa4:Bɠ+wն$/"g""݅BoS| ZF!&ӌF+?*dXmdC|\zQQdMn_%r @;83K ^0d/F1V֒W,vRB9&iM%H4].&}ߙ^Q>sŔaV\1sPۇd|At=5xڔpML@h$dPA%.)^Z$Neƀ85ϊ2 4 uV-'@:ij4!¹JH,I 8q]9KAM?gh 8'O$D +->|e:V8$Ri)-^+3Erj"G{r9`xkY.'`Z0mRUoK[++Ԯ֯J|Q?q#m. z] %Q6SziT PȚ"PJ[/tـUQ#| {U[[_sɕPanzUvPU= &gwy/*FQJ3fS1H|O3Ơ63+9^Jļ%pb_'D\c?Zg*BS2CJ!lV_ HKGiI9<Dl 3/$bUê$qW:Ԙ0j al B!L"#xuRI|5ʶ7y3sk_Az>aUP@]ë}Ì۸]1Ggޯ/VH6_rhѴ<{R`" a9ة]A_N:ys(N: ܢ=ns %Ex~*SOhQd++S_FEbAI&SڈXZ%+V ŭH"#HN9:B nxjyd`X^Ԏ%x廨 .:U K:h$iW%O5ԫa+2?3&{xư"_8A7dCɘs/tw;~ f֢@\/MXKH&y[FZׁDk|{jbAo2+T0ǦgSO*0(U0~:YE¼ڃtk#gv,㓹rN]p99AF2dkʙn[lj!jK*xWYrq$O.Óu$_Iű@P0=g"/UyR/A7 y  qbG2G wtrc'H!z]Ά÷<-i{FI,eZE4<=q҄)q=o oaXr x?cqL(t}SFJ4,ӢRR]n:DzȈ1|cг,jȶZ|ZBrj֢`̉pR ii@z`W#zHU2&w(%R o}#`3 g[_5lbZ>=cأiW~[eTժ%]m [<L F*0T'Ò fmK!@ڴF:׍'vj_Z#PPA^ln7[gK\kiFW+K'-S3wA-c/{pj79m[2|Vݝ#msu ߡk`K)u\;^mPwUcW𗛄OBHJU 1jDJ:yz"GLz,!& ~J_*@SO򻯾}%| Uܸ{Pz^xT$! xh p$5)' P!î I Pc\4( vt8J7rEp]:b/mƂ<{jW7C̃DQx z~ogJY7OQw||>xp:E \DGhbYeo0'%kWWvcޓJAfYY{rl^Uj(s=|{D4]f:&pfgHyTpOL)mюlF\jp $ڋB͌mADJQ}U2mL9'gpDU C įa>C65ʗtJFHKCE' GXKxt.@".EjrA:t@ k 1 1Pe0[33~ Òf Qxy8,ry?FqhD|_sG/1KbSG]կi>w;aǾWu+hgIPxGNe?*uxvcv$ޓO]lۖM˦]:pŪmK_jALpP8FVhC7}(i3,wo[PC _!h+K_f ( !&A 7cT;Az OqШe:4Psj l^}a"g\@FW1&'KenB. qAyYmeftS0!ZU1+Y2mzF u<"}(ŏ?E0~hw΂.7[} 1Pց9<=jx~:6*eĚiJϱJۜ+ }9d0}Cs'F-w|4bJLTWo8_dd)™;&> ;7Ia#}DnrM{JLVH`j y\y9 k*JQqj(9قs8ʿ][ uͦ&Is(PL rT ~(3Vˮpޑj$3 [BFN3KwlW يѥJ8KUA.9r7IRه8<gjd Ο۫ͅv}" DidQZt[*bGMlq^U[hYWi~CBxH7UB(ru%K$с).ґXd.l $ͱ´O„rY>ya t[0;qƘGRS sjmCC|29nVi/,=Am jRؐ<v}J&2PcUM;\#5[r#wGemăWb 'jsU~{&8n9iNY\ῴ!e+>Zv)]gPgd&O%ڂeHбrsQNЫli}'y]S:("$}oWi[=!f'גm R._ <+9DϢOq>6Y[jĺ-SqNg`} )*IuQ_]=MaFw{!M$;Z F[q4߷ a5.Qѝw6'AIkvUF`2)?4N50 k[ :a 0Gsro=L$m38مHñoe||z+A؞Q)뗊U$\^k,d(@Lp8v~SAZ>gp~Yv 1Yʛ`Pʢ0'9K!BadJv{(A+QciGXXP~2k@? '* Xc^{5,f}e|XГK=@a&ҼX㹈stW3_x3҄.8&鼍F| {w9+쑱)@!e r `m&|@W'DXc)i"Iq 3b̏S_ |tٶ*/,|D}sU&g'<|t`"' 8), eb8 E~~ MVBU0Ԋg{Oc>07vv7o8 q`\!JX!m#ak6qA H%7aW _{TT{%NY2I}'A!="kXaVbud.MWezN3_DU(#~1ί"JV2L}n'R91Lդ03\`KO+Q|=#Z=ca)r^5Ye:v1`i-Q{88Ă;^'; ߵQGd)=)hU.٘)LY(jQ GR4 b.0 69- p?Ac4Ӯ[cQ*/3H-t"7cy!̨^ُ+p/)Z L^>h{,İOBg!of-S/&Χ5ۙ[Sj862M=t_Qo{dJrypX Jd-QՏayň wXm' Vi`Tw^7ѿʢ\aO|I@(ZR74,e#zA)Dx8M.xz5SnH3U=@i]B+zq8tgGDUۦV-vBn+[3@ۄޒk l äf*;Rȶ]_U_*dlL`=|rfK]eQkD#*b:5'}?=4\H"$VɎk&0_wOm x4z?y.יE]&\joI+G0Hd>TGM@0;$e9xWKqʦN&J]I/@5n9 b'R@Pv{ŭ2BDxjeT.h[9FdX~'XbY1s Sb{ԏSj'XK/}0^aASIԐ,|ɜKL֫>* jQ7d_EGߋ kdʝoO'"/ '< =)^Ҡ绢x{JÓ;_+_ \ ='F7żsT7hز6;Gx0{A |DqEPsa T8"ayUyqm+q!J*R lggH&e;:'vFGOap*~)IΰR 7`eUO?.cs QG:zfųfZ/q1ad(YX |j,>]їT"w͗<]f 4[x`_R|lԿ1/1y ߒT ' +6# ́fǼV֮/(̵qS8mڲ ;h#gxX\Eh3KKO(ۤ8OHk,î Ae,U9Ҷ.{}}?aAqOhm)j8ffp Be# ٍC_ pl?d97tmFa<&;[ m 쪸An \ SR9ؽ_(AغCY@ʓ`R;]Ȝ!v)0<\w|ŷwًKS[EE`3N1E2@ñ}=  ? sK;_קǬ쫐0]?:J80oCsҲ4;<$~ШYq.YQ \\k alrdom>5::YYzX?WgToԣOuՂcbD]`ٶ[D8ܲV#P 6"=MaZ6f='*kLEއ,lXvͳ$tQ&5orzQ}}W+5 z!t¶=&}ҍӮvֈڒ IAQax<Jr j'ጂ"sQ~w?z<SR>u0QpaZEc )9A#3Y-t |fSqUU7I~{ҍT͘,>,ᡉGd{_~`(\PRwO".$:ϔ+@gxk$(:%R.8)1V_ Ɋ'}'idx,]F>`B~LPPX&>QDk$7dWZrd Vs<Y8.'G^Sr]٨<^O90r؏ ah%/'f7 l`(|8H0nUIebzRd,8BldM"-*P7I|i]>܎z;ĽF@=ŷnןn^Za?p ci&P쐑]LSp:Sϳ /#gj |!IkT!.֋b7fE#F,L6m3!?p˂+ptS`qU SO򄨣n\wsf2FV %_Í]xŽ&7e# JIQ蚓i񔱩WU4P 5.t)}:˔1a]1BTWQOV+';1wSo\@8𒃞y/>!G\,teSP!6=2W>Ai|A\R`$T,vs;g[C-zgiԷ7<-q=LL_3A+y ض6,A4Hu5?P|e敋v ܱ[u-W JDRZbVV]a'&:S*vn)u}/8Xm|WW7tdcA+P}6r^߶@wʮ)b  2ͅZpn&|It*J2*bzEy{J_[rrRzŒ84_ꬕ.ۜGDZf/Ē/Ả]?c9w^5 I6Ҁkptהԙ [zY̤n3ݛBIQ<` MRnޭdžVUV8 ~[;E'G)$V6) P Te: ^v=&wdՉwLQ`saϛ;~ΪW[fGyݑDJa?0Sy/=kot" ;ՌLnf65q纩u˶=H _O %.R64BXT B L"%0Ӟ9*XK\Ԧn㟍 {%G=,NׯV/"Eys.⯥A>rX;VBjg=u!7>Q{4ݛ-;=[NO㪻{'#sހ=.pTpy-5o{m3?`< b&p7jG&y<ļA6 02@3YH,^1%S:'J;> z Ġ= 39Gщ`( mؕcMo RUG={7S¶4&8V QgMY7q"h@/{ GڇCˤ^B;m"7D6^LLqck@KvBV']%n^istTЄ$ w,!Yw; ]*Z ȸ?-]-튟2ocuzrUmÑTSYu;Q({6 'MeS= `_,O1ub6mlI.!Cbhװ9c:%?֪]9s& A粝Ig+ O~w!G nE >ĹA۴dxb3 }fsQLڒAo-A\eF4ŤI]y8@BL߭*az& 1!KO̡a'<,QH@/4& )͟0×&{&&s1.DfA)#i'I2c t9Z񜦹; &94߿vQ<&C@$I]mq6I@켢/skd WO~t2ydƿ3zz_swl%=ɬݠ$Zf{^WCRj^OK7_m%^$@NYdW%4/UwF4`=nTΔ<+e 6%(r1L807 X0F b@T$(Nj>sEԺ{w]???+n:9šz. /Nݷ>k['3O;~tAG{`ʛz&`{H;XR&h#0L+A9I&S=q$ϔr]ar)/deqUրe ˓<޸8qYW !sh=AJX'G܍H-"ɵdZ۞oR$fC' QJͺVI{lB~ǴsLU`N3Pw tQ8%TmܡtҾ7kFTZgZ*-- )p7_6zD +|zm^'|iEf̪c!i:""s\m)3s:ϼ?-cbǟHd. $6Hh@=4> /7,/ 59 ek>>Cln0uԊOߏ]]SiϵLDm9 x)Bi}eK'`|q8rNDIv~[9nZ_Nmշ]zK?FHuؠʶrxC[86rWl9 hՇN,FLF)J7$S|x><$ړA^-/’tPWB7lRtd\9I,̧/R+x nkU0 ^fb,-U0!f_c:xM/P7{D+-[.B:ٙ׮Ux ~;Y$=BK݂j3wW?Y[zjmcc.Jk99% Z &}vwXrƺ7ucyA5M_OIQwWx3iWoySG X;Bt,RLߵ }hW/,i?h}=<ﳧ2>]F32I>c? p[^=_5LVrJ MQӤ֚Ñeq4\)W@ofFȥ٨sJ%AQMM i'>ʺ d-ruJZ"Z$4"Nl o ,j+. |cn\Psi[]s-0$P\OZ/}2F\QX ѵQ7 ]ߓ*r @0T hjpkn`kto3 ?=sq\ hZx|h+d+o`C_Po]>@yJ =6h|&L6On c7U( SmKVByW^*K@bD8s0%Bb<97]F^})SBEkh*WU]R\}xZ! R'IM0#cL'jxPK׊ mm}:n b~&~rrO[[Qŏ:4SEmwg^__) V%b l(8 v$Q$pflηI=H)/n;wT7m'ΰn R"!ޜ|\? Lڣs&JrrQVBS,R R>`r |'bV?^$*9 a 5<U@'<( jq،֫}A18&8΅/5Y3+` o] 1> 0%8>!+>UJ<+ۍ$w\-p'V C˜N̲R|i؉C _@- dNxɞ}H3Zv&j簎o6=Os}9vVgD7|wu;${f ip>Z(Fi 5N P|}=pUR=[-vr/$7BM:GuRqmrS0OT2 \Ϲ3otwO ."M7[5I4Xn=~(piݺo,f.~) PP4;vQ SvF!u磓gVx7@Ŵia8ru!`1wLkH ci_(=NƿNbr8e`n} C]N$HOKa H!-ή 5;rP;`D*ǿÅQh0Av >B4![iHsT\n+N"8si1(SXN[)oɗ‰RJeH KZF Pox@3u!򽐽^< 1Kz:hÒX%l\cckc೭ψ=}2=,6,tYĆX'FӵFtIH j+5g2SSQ)3Oxd9DƧL9>cP'uTќ kMFM^ע&{C1*3IqQٮ 袪[r+IDݗ/K74TEł! ~lGܹ"Ǩe+W ,_@EF=)I%{r'*-KoZѩw]bf GfL+,^ٺwx>bK(Ƨ^ftBc;/O2 LQ-q}#U%v>F.²쀽p ai<;x1wnou*VEp|}IC#{4Lf}Ua@|VKZEwO"߂:FT zM 3ب0wMzu{r:dz|E-HIHAWfԣ}"#'dDg=Wo8֫Xabo>bLN}ugwm`oS cp9>e[acOQX )IÇ xqfi\4v_y >Kߴ#.#d_<@n:Ⱦi@yJiv^H4b__y؃pE}*0< "/_EKt1!u)Ք b G 7pцud mZfQ t[>_Խv#ՊmXxjQd"0}誙ǏpM }P. =sڛ)CܽdmPR+GuAoy|R:C.'X*(`uPɘ+uZ-;:!y!wwP ua^@'pAĴZ$EeL m=ybNTNvqС?3G;|b&\Ҟٰ-#;d9ɵsLadi]b ~a@ȡ;Q~B82$ݧt{|wS(Oo4QCPH+9J˹28%X`,G BD&Aku`*xg:=w59zOc LmSON +SwaBxdկx0j\2A¾M< 6^]Fɂ͡!_ UћvP3c~QIzAok@}N#k&=1e`|`HZ B:4E l0E Ba@& DaDOyS-*2S8K Te"qlP3:j7=\d3Ti  ULV>A(3L~U1M"`^ߖ?htu'J/,%u{0Y^K,4 zJF/PZ !!-@p -A{I&S+ڃd8 puF·mՈi8}k@@L+ ձPie3`Tc$PEr2YsHr7,˞`h# PaVd: NM܉&_\&u*#XX-'8p9k>bk6rRNS(bwhm V ] b/oH}HgrqWi˙A0]" š+gn*qBZ>\ޝq)p?zO(gv[xt)ij 0v9&οˢo9 ¯R3 puǜs:sbo[ "uA bcPM|t$E+ 33HPm(f |_Aʰ{ͧ*Cn}> N+V5µD6YBtʢxOS6 2gS[su\N~}-C 6$zW9܏ZhG ; ݡ|9 O NՏi0;dG_Yt^ALfxU12rG )g9 *H.'E)UrzDfZzNpoTn#2ʺH%FY`z֌~P OJn{Җn{P_Hbk0 v]xAt#"]A;$YDU T rͺrXQD#~]s)MSDmo5J<$ݖm:9FA EVhpJ91Nu"0!Q _N4B ?":u\KG ^?T6V :lpj:dɑp%BS y?vp_c˭IJ t {Kl 5Jjyǥu}F toQ64e *QH tވ%OE9J2Ͻmd{̍㢝7N'^"p56kUV <@&^VgDH°g 6_T =bph׮0k!S6:A׽$O19UUuyV85|uDDv꿪:F>i#yᄅ,;% j]׾tb7V֡%w1tow}$h Q~Q KE%nc4%LnYL~aC ď `_&++ᏉL^t4/ ?k5K99YREPwc:vqqe%\kKD8~UqjLJuK(PnWH$Hͮ jtx^,pV$mֈwLhG.spl}%NTa̾sd2=Cu+;D'a=pHc1ϹaXIչf]=1}ʪp_ދqUQ'`9g B{;<>JvYy0aoH/ V*>Z}mNS!c2Bg=/,iK}!yXD8bt! J92RgYryV(ΝuygYP{BuVʈ+y[2_!2ܺUЋ%Y韏u$ F{|3Xcvbt?xG5,n*Okg&v3~R&H[ͱF<#m~ǭQ!ZIIW-}u"#-Pk 4z#e/XZot(.J2路ݒrU |.iX"Da*,;7AL\S/+`}}{>}zMVo=53\oBhX]dUpЛ)/=q#̮ẳ9ue4* v'uz4!2b/RQj4wǠ1;$ dS WN6٩f; (w&AޗeE VaKe@h(E+޻g7]l)SփT;yb!8ZFEAR]% $@`AI&S<+6Jjji&-Ruy ^mt t'Q :d+x7 {P5ks_̟%huDG=?/B?ӳ:4բBއG~W~k$dM3"040]³8?b laX#uLpbZ 6R0V/ 9Dk>~|ߦc *(3K{>L'qSȷKg? c"cioWZ{D,_s @X=zIq0SPS82YX"uYYhWpmnӡ&Cd/ .n~i3E[bN9i?!R.S(j;!ID"5E[?B9^uBU=>DVzIN%vZ9/g A}ul$S݌si5M) hlyJ(O-(EsmLj]fM Xx Ґ.MPhܫnbCKSOU*k+Gm!Y>9 Gr{N(c|R~!nJDו5QV͖ *9nrB5|C(+ I)PO~ELlh^l@fG88f䟞~dx"0$3zADI|iк3oHA[~LS\=:IQg]~~S|GF>sEud7ϝo'a1U"͎w3%cP O!'&Y^Hڎ5`<CNY3M<~!gD+`'>ArdH^_ |~vbdXiA/%zXgڔvЋv+H|7~OX V{qvrh3n_}jK6i[YQ]2Af)4l._;Dv|t梻Ν= $v ,?vk>s3Su9w?]h;^j}sJG!⹋N'K1 )GEg· ;Kqڪ7giE&COc&A1,@U>㫒IJ\R(6qޡ&#EbȀp5 ~<|\}"wP#0/hEQh*41Q!MA4LX  (i'4B,+j-kqx/ϋz_ɰ%-3&-# U$W˼OwUoV ` 6^R2Llpp $ }(VZlB{JB.^czX{v'::PtFSِN{ttr؆D>ۦbX >z2Up[\>ݿpKXZG~"ap!.pCXL)eVpd.3R1 pP`x>9eF@;(Sjmy&8k_tZTpcK 4[cFhTQƀ*^Sn!h^:eB^J;˷׺Kd*C#gG>ԁh6L)/sn*8K!`]78#&TN8jb\םð_8fPCQElǵZ>T踛bī0 ,n\? Jq~#ٍHn)[`Yai7O)P;v^b<]TEF-I>2+pGl*-~ZŖ#ܦeLfQ-yڸ$wX eDmjm#Se!m_4s(ݷGFTY sElq/QWdFvW^G߬^|D 駕&X*k`*\Wьv3vZ[%ΐK'!y{W\o$*c%+*c4_ a1S\ 1msk0/OBu#1N`x-UZ4vV Nb~ZĿu=AHzC,G97_N[×gA~<&,v}Q;B(dXU)x+1X('#Pn0%Iu6AO) dݡ?d|_r|5nN,!Hw#71c8M`UӉ*f^aڕW('NdMup<_S͸If.P0+{Gk$hE:?SH0:?S4s ݒc-&֢+{um5ygR eLtM'lV'`جT2[Z‹k9UŨȋIsEGVR;rwv[kT?L؊'w1og%Ӏ#mX=J (s@I/qT[`(uёh'saop[B7̺y ~TMpqŒ6G =ìGUp*ZS48%G^2Į[M_5^ ܜozM;ҹ_O9dN"%UP{GM5GlS+לd>Ow<RĆ-Zs:<焿|+̊*jqmW|oP<2)rXfA<tD/@%'bۃP0L߼dhR0e`83_ϓRv^y.ly0D{9^|.ս0~{~=oܝR. wgl!ǣ(v# 3)ߒIN0]pښiC2p<{Y0l ).ɬ&ƽ<ϡ (0r<nj6&= %V&B>mzһ'\F=y 2 "G ?o!.*peypm.h]J޾d%sF?o*` cW?q s[Fa_ (MGi|)l^32f4{YUWyF&F6Jr9ζ}MH%D^]Tf'MIh͢Nk˯,n(]bԞ{ykjW'*V[Y_v-XՍPC9n,dА0o_H9H nw0<B(C^\`Hv_l@QdeEKDD`9޿^(+\o|؝䦌qtZu1g@)4 8t,vR㶊dcl}7~I}#Ywp +zEb۷ 6Z 7$'Jtg5iT>4U}9L2XX~ܭg(HsPbE@b !&]GJsamJ{bX Ep7JXTή?%AчOsfB2[]ͷ5rbs ծ N7چꏼ7<Ѵ̓QVI8Bc,ov3>.\81Лsp`GBe`>ʼ5ll\b>ES4|3lQP\mR>|k3?[s&UAT)NњFy~ "TX*#eLRY !IH'EC:]!6HVOB_I@tb'JYz| Fk%U$*yVK<װӠ_s2'\}]} 'jVlZzCmǣr1u5d;俢P܌uC #E@ou퐱:agaƹeR8k&qߨd8/io#o‰VBl rhrA]"4 ,%!;@.f.EeT[\hC2;ym2Ys^MՆE=30C$W26%Z|CljnN~ߥ`YU9Q4/HJ"]m̥wO>R3Lo,-к \#[Eb6i}.duޝm1p{^1GN 6UL 1fZ ׺*n33fkY#Q !"!vV!l7Ro}|U݅ ՙ׽Q s`ZacLRg&(>HdPSkAGݪ~!+jk=K|҂zP|FXK>7ޭʜ I#guQ-_uSWF]~cZo8n-TTbPL;sɭ^|E ]0!E9> @q{ ~U.$Zrv%ENENQ5NG%c3q `Is3۫%'3QV^8W=ƵT53o f\HM~i P9=Y'#Z7 y>pjQGH&) _e SYGEђaI4J]spv9"Ѡokq#XFΕ^_Dv?_06Bw?A 5$zݗBKʊ"2k+k=k_6)J|QKPZҝH*ZHy}Udj_lh@Q6U_s.yԄ2rIBlfR>$[x=/'b\737-CAHtʭ;q%>Y!9*At0# b6D1jj;Q /Q"c;fݔD3!6~aFfTڭu?V{]\-X; tYLa*EDGE S.C w|ua 0Om]VWI7: `֊eO]WyM!"8S4{e(@]u#z/H,ғ2rv\o,5`EQOL agOcg oN l8 CCN x&q2*Rt2m+kB…a-E}/qk柸_[{3 &KY8{/9G"V,Gū-น|<ƬvN"^8KFK]%K`^=0]iNj!CfF2_LݵG p-htL8ʰ|qewe_4Ϲ71YPm>MrfK?;PC%z˼NوK btCJwޚqekdWVR9"pS0Q-u|^DYsD0FlSM`;Ҋ~pErP,;Da{pp>T AP`#D L"#&w6˽]EDw|7n n (SUY۟sc'ۯ]cvڡ}MixÜ=>?=q]@_)DU _.[RQu |;]ApGE=hom'.yB!߈9,xX@aDh8jD* x6Qo" ʣ/BnON!ovgHj@TÂ#1l5V"˖;@naZF}z)L^b~%F8gwR;d^ I[-kGuq֎we lg֬|NV1+rTV)#kdVG&Fߙ@iƇs}{Mt'dz2д"oJLV=Pp|KB${}ٺp! &X &IC h jH>Tin*i*"Ƃ!sY$w*4 VwEP6R,5h|12 wVÕ0iO3 $ %M%<}jQ=f,?u?J@㥄|la~ x/}s*x UF;$M3dTXag˗4kd}y\{ӫ4ф/ySP˚œCsrpHUfPtX# ڒe-QubߡYS+Fcaڱ@y5|8{ppp~lUv$SPj/׊ȃcF'&7I@Yum윐CRڝ{,>r 7x)*ߪ|]~AȸYV`g:aǷNeu+qVNӅ D_߫,[: WE\ ;ns~'s;j^@l\V2ѓGgbw"zr&x\9v*zFpK.?Ǧ&9~d=H|dB ^okw AQ\ p)'&!{Wp:tH CPD3 DaU_<1&\8~=w5)^Qz;Jܳ쿗6[:]sIgطո1/Q;0/+<]koZjrC=<&e//^ܛ]I]t7n!9{@;dWl; တSK`*K N=@,\h^uDX0ܦ0䝐z.UxßIii9ᡟ;j25E$|aG *g;Qqʙ["*RO|a7mٟ'ޤd6Pf ۾n.Jt{`oq}$-ڪW06(Ikzǁ&3f.,6οcQ6 Ջҥg8c@ۗ-L)ؼ8vF\W2]ȝ㟳i;~8~:('ؗPKI2w:G܁tRsH ;L @Rj_jC7,\?Ogk⦾\ L vnZYWWPV[Aa 7d.@ F_NRG]ʰ* U-W 3fll84b,2oۅ"5?\ڄre %5$OӉU%=Cwpwhwuf\JVz1Un:[P`KOG&l,f!+%VG'=WAOQ4QlAtyar(%v8Y;HNU,C2Y# yU8&Fǻý^Բ;I Mp__]gVqdhFMș_I,gp'oF{9S;5⦧Y7Ô żǜvBc# <msVn Km%Zmi](CHkRoC9q@CjA8dqQ/G=E^LF 3T x2I,CbVщ8U%N\ !hhj>ՖG$Tם5$p5஽r;3a,cNQ!U hp_ j<3=;Hea暒"-avpPew* Z M@%vqC. O%*@(/pk[},'J2?պZol7Ȯ't!7PI o0/D>5`&SN`?^k5jAhZDx2P e}ܰaiy %zЍck9#3ZgOZZ~i.okT\ћ3 [ƷƣvJ.(] .K863PΨYymajpWRLƃ,!RB!Ǎ.lh3LO3[֍xleqT2of6H~OepXQ 6툣hؙ[imF vx>On-PJ[TPNPUA] A%;ڣ'@nA#">@xW 0hY}Wu`8 M S:1 r87٫wQB9oHM+GzBYjZY:O@=qR(jcbmQ.. l~-gw;@ + #-ձe=Y9@7`ȗlLۀB)j{MVOtGG,QM2m·E-_`Sx^۠K.%ᤚfLz j1QZ۪Q\;^w!{u/lkVD(mbE3صڌE,^Ru,r(EtKPT;i0my]cJ(""O9FM=hZ;A,v'My0+_II2cF[q2RIձt]1,F c2ʵ V9'T۳{C)Ϫ(rnq|2BǨʱ AdA9YP:PrMyd׋2ij+)::T& A`4T(3(uu>?9#{6E~C9B8UgimvB }S/꽲ˬ|?x6pE.'WSVS/89F0Pc^>GTL4Wq FlvA|"y+cܫB+Ol}L1,Cw,EOמUj9nIlϡNXf'.',X(1#:!ZcHEoYzuΫ,u8pP=8?CoV?`剁QNU6G!nEY PVXŒbI urgOFUY1T>wKx9ȒamuS|t$yuqw̫tQx]f*]4%9 1:=et\yoQM`; ςɦlyW)D3vR4"8򤏓kp_p+ JbxbwFq&ZHF-EvU+W~o:D%ˌ! ^1?İE5cRZ5]ʷU7S݇pQ`Q ;n@Muޜ3.-S4RooG\w gJ?bI! @[kw>c61h~bYBD5dU|rf߽4SŐцCԾig*̅5 @ O)B-&3^Xc"̩mஃx<HG!W^,W:-XG`"rJ }CD^trhh>]ff\vIƾypBW齚f%4"aEoש~*MA"N1$+Rso?d櫤B(0 ^bO hJ4u,yk1y|XǶèհ༘_\0.-3WAMp0b?8~9y^т$hg]Kwރ\iʪl2|!\ HDዘv n/|Xf]nS8:# ƭo,Mr?57)][Tz䱚pv|ٜQF2'Fhd%/EMɿ EFÌY!F ceiX3Z?{>[C5)4wva~7Qw׆-;PgiP2"V]LFR4K H3~/6qߗ_&Dr=99%w8yS&XY'I@#c Q\nV'uN 1m^(b'ѩeA޳kbj)RvF>_7ͪ$B"I)>6/rO5/O7u4.*tJ!b³Ec<, CPlPf bPF!9޼\Ry̼f@R>ַzcNAou]@ ܨg;E_(ZSK {ƲO]'gTV:ַxDE%{\3j˃=T,>(2 bghoy0K\sAgUz2T-AP`  D Fy$#WZYuRۀNtoSdtu}nFM|_4c_[Y2Ϻ%EG *m U4)_~տ Z2(b!7S;# j޳|DkH6_\˘sA,+)lEJ\AI&S s,_ZD&FDA"y͸oZ0Dz+17r=lx6"$Sx±Cٌ2\`ۋ1zM$%ԒWF $eR9λvVFE@p>g! [3tf&zxլ4N:Շ F/r21ar;rU dd2.?Vt:Ck8zbwFkD7cӍ~W^:pĉđ/»;N7uWq#FZ+W1U8SP;x? Iz|j$Q .ϭm(EI4E) @2d {6ي*PonװEwPcmd`ZA+h&6&:kvMn!| ڌM"#obHaFIѐ俪H;d(٧fC8^;#Um#zh,-&B@0,VI"$N(,S5p|h/IAD鲴]α<6js}A~ּMyD:|In+^Q!C6qtv)sD/Kt#]h8v51z\ !p4VQDظygex.Mz d .ō^5E6L,*4a u d7Bz _5շ` a>L.J &?[vr:;7ec,x |H_*q zD%p1>,goOtE8&Bʤ.#ǿjkҸ.طf7o˦ [ux.bo=TlO Mݵx t~~:D+w 8BJsRFƀ]zѫ^z<RnYKhH9ѫ ZGp467UwY;WB >W3I `yll6rg/.R{GJ摯jqd v_̄$gm+HU77Q<5zy5*t2恏4N"dJwZk"GUr;V(E1aٙ>R (au: Ic74\3 e3Ly(ZÚ`?ܵaiiLϊ3e!gr)9^'~p(YO/K׭7x" <3IA;03ԯoY,KiID讜]6EDjEx4 ,'VĨV S;9TkQV#b7J;둦$uZ^Z܄'WJۣ"l߹/<r?n mEKt7LO.ֻܜ#R6Zu9;3i-NΙA_=2XѪ|v<gD!xd(FPBC!0n>x)R!a93}oe5ߘ/d>G\PAٓrS:1yxHC_ BzTzZa\<(O,qvo$볁ݖU͟sm|p#~|A'qQ8'bywVR8Q؀'dP2[klnY땸 5 lw&̜K 9dv4-4~\RulI eBTltSMvjorbx6i`z@`ӓ0l2 M IYzC.?{ jZ+}y·Ԧ$0j[Άϋgm]2WPbA;H|xG0 άVvhtJE%fꌐA(BsUB #ENs{gxg߄ۋӢ* Cc,7`zXRH}dAs"jԷQ1.>'ITVBq[8+2Y!RhTd;_ul,{Jg֎=' H=={ߔp?>bռw})38-q7i?¿cwdQDGg׿{|k/2MGZp %=K9\D-f`JjAl羑G!+&.9?n_zxaC_* })n l`@H+G2tPG l'-=8T sjw"Fn,=- p`&@,WS!R\wO]$=w8!yPH1К]!r!v@ 9,,ŀ.Lnk?~GŸPuܟ|5F0|5idU*ojҙէ>vZ {Iv{o5'ŗN#z3\ _v{ 9^'?ۗ{X (y¬RL|Nh.h~5UY^ȗ֑x^HxNT<\ye$op iA.H"NeDc4A/wj̝KtG;vF#f^Ю:HkYhC%^2餂pZw+Ӫg0EƼ;/OH.766VSx+"X<7?`]o^ HAh"d˞[d>%wܤS% `2uϭ QY.ȳv}*މMƊ[jE-1peow 3dj ]#iorL?0`/H3ˀ8)0Q%2,+.3Dsr+ x"6xлy$ 0k5lOJ1i`{OfT\h{˾U2κ/ofE71y ڎ*_N]|d@R)_dnZh5,%-H337Ūp;ϥ2HMu%G;\ʖt.@o=XC\p86ԘP* CX0& `P$1BaD[Y:T|:T^kALO]u^V>f#˜St] jB@һ׼? nObΓ(avzojfbH\[ tvH 42|kZiqŻ9mWnbM?eKJ։`S@P¨A%I&S<Q#EWɄI}:FnR#_펶j>Ֆﬣs>od1@Eߒ auenINmR]x3L[5xXcpuVp@GSw'38~@IA L$YAFw*ֻ]QԪ&7.Iq$mđ `t@{7NO)|RpJ?fx`Iq|0  ׼U!/FSZq;q'` ڞ)C8}/CkW2"*4ZMAMB 0N$6gղpd!N`Vb BqT ;Fp^n" Ӕ#<ܢq<~*cfC sF;׼}c ԕ/u8K^>cߍtK{i} o<:2(K8ibzK܊R_j}F\h7jV]їg/>նz=C3ay0Pu.كȂloU ?*1|Ei/'Mq^^vtT*'x۷ME\aIKllr7gb<-Ί2_^5VcQ9왌"8YI.7.EqCzoP4arVd]1xƞQAKA0bQ_|j+;<"Rܘ<1}Lj˫/9gU3 !5l90xnc;EǜV>Ձ|kܤ.<u9e\ѐtsȞn6~p[uISjRLdeڿ$*!Ǟ:ʛK6bMinEu{Z =R"vњG4|9EvOZ'QikGWf]b5ccʔ1 "FHop;C>OۀhMʠڽ_ge! :ӄ.$?(GvkkMLpe!Mg'Ɩ6QRDH<25Hs`6(Kx"bP5l& a[c V'K 3ȡZ4W8d{'l Zg͗4)%[b[2s𝜺9Sg @O?Lx3"7[cf86hrqWw|'uquo9Ąjx!yhhQdhm2cOYGwZT' jؑݡ)Y=xG&z0n@D C)&$~Cm<2tT tG)z:oBX3ߒr}" iyRBxp5ϒ$3Vh0Er%EfgIkΎbdY_U.YaBt=)Ϡs/ (b\I &wOC(lhP>W%׽fY" nɡm 3n[9t%WNע%ġk?"/0>񟗖j|9 vGBd%LyKP!'6_C?O1Zlk럷Sqޑ)8|MƖl|"Kt6oMzu*PG# JM-g%bλ.bG%BFoI>~ڋۇ}A V==k:]|`!eҭMNtz-x^t;pD!9Ԉaud(ˈ?dŭ=ĔZLudʀIħ6!E>W1$q=f͕~K!8tYTSPX!6}2VCnfH+#;7)Z8Vm>fim!"K Ƃh4I̋7C_Ψ4Kl@hR6h`\,OdPR^3sGLzoS Tivt/chIH2Di􉩅p(;Y +V\A v[l1]`_͗kWHY?d9MStEs,#iPOz]HG%ŹH0$vsƦiX HZ^m&j1R?Q [~elJ^lmxFy-6MN2!Hj;("B! [MHty4\) qN0'٬ fپ셁WD9/R (U7~әVO.mg SYJ^ĈJMO0G h Sl`!3etEġ~M/,%ǯ6S? 'C irn?.o)X}J A4W3-ΗW~jDB1}i3H`GP9+w tb)"3Z6q-~I%M5 FE? +\%.&&D ï TɥD=M;G%;~BJh>m[?zG?6Dx-ʅ"YK\z. ޔVep aTl"Ͽ{}`T{t~ikal\&.[xC9~@kFh|ilVX1 fߖ8)J4;Exȃ;ll^,q ̚5H"4j[SD ƚ'Ls, $($@'*Ґ׃ Kg'os2m6c3(eN`UVw`˨)5iM#{'= hbc&YSjiـ`<{^x;45?"tZ"Xcvcm8M->qPI %ŠM'Tͨ7nsOpFb>)T8;->u *v,oI1|jnZvG8fF;ZZ0ܝl&* #+q܆-Jy, ͖3ay1@PS;iYgt /aL T#[I5HuޏIyF>VesT8>I`SElp%Q0T0K N !1"!~Lk%ӎ߉̙.Sy|%h4ާDacEm8v6KZȞ'PRnWPuҘW6T/P^>{-,؏jPgfr7>}^2-@D>wŻo_b>v\K$w ȀXL8<DjFa/76SfJ0r#CoKXHJOeriR7?=IEkEzP**$bZZu8L وxh<`'TRZM!wSӵ'Ǹ4aa-f;-i~a%/tKK\D9rVV`% F+b 0Lh>,49vd E kmB:ioUy+MeT:T'JkmJЈ AC{֞ S%Wdl`ҍyPX)Yhe "EEF$\c3?y*pumHwY>VKHqkTH- *SPHŧn-vwQ 8yFleH-5b =WOB}ٓ@*X'SZ䪏2 VyNԹTyC?V+1y.IJ >GL+2`A +UNFU,Rܠ;swʣCSZGVfBVbP\P\C;L5-~ȰaW;`kM.[t**1+?-ڜd66f6Opda9jKRq&I^觹a:O6DZn̒sż9e8*3ĺl՘£'HU? 6̘?][{+qapqUHh"*k|L#Q~\~3ҥLAF҄ͧ[ݭE3wIHy&kAsؾ<'m GCb!Ƭ~[#Ɩ8lQe+~򦤍:ws_>26rw[ܿI>wZIon}[ּTp-]A9jglmkv쮾\wưňHTň:6(2g[iAkհ?^l՞w&KwEyټ^[ |;䚦Pr{벃eTN:޹?*aKI`durf#⮴HÆ#HqΏ6u8󶗙&wg5!&/= Dn]9B~[j$oc$$H8]Vk/ՁZ9%}g4*- L0'J8_r5brXL6Z AGI&SUٿ7"CϱsL}|D>rjH eNr7eAZ{ F kle:P "JE5]rƋ7Kov\>m|[ʢ_3YB<"]֐_o)Q)έR48PhQI)J [%XE6ԣ_ {&-`b[n޶4<客Hף2OHr{c^5āIxĩHzj u qǕ̞.y &a'GV©sɾ^mq`"x`܂qQټS8_M't6@es`}%-f.čc#!x~F}nPӋ:_&]ex1qgգH\,ġLObV~C(c]gf}5N)gIZr=!\ͳ3֞|3q_`CܠWuG3L?xOdwf=/6MD+n'UY, Dҵ{kh۪Gq92`L$O=!゜e4VH<Iir24?9N)BCTP7Z0j| rw ڭV0G8m!](yPE7HcmDlIEp;@m\l_t)ZIEI8:Q',>e<i;9^[Wܧ9ZM8^3B6X&P u{U+Oa4Gaj } e;cwR˝l;\i03=lME֍-2zç͎͠*ˡ^s^?t uJC O|=_e[?Z+4~׳wR0pYP{dg@tl6f^8]~)[]uBWFs@ Oٗ/c#L&8kKwIdR@;Ћ5?P*SYZybg;ז5a$h2]{Zkl{ga^ծebV3fPLWG14mZm_x F x,jU/Xő3}NdC\IvQ/iGmn7X:dKU4d(A‹sB}>l1_/-bUi_Ѳ*br_%ʄt=`GiVfOY@ebȩJgM5!1jË6`]l[3r<+r")Ysܢ-)GPhPIwL=`lyqskg@a 84{mSpڴyI ߨ=SbIKeL?(,.Fv|{zQ*g,)ZܴUNpØ3dƃP5WY QnDAZ`O(nE}1mh'q|<pl*W RܫAyMâ3 2yd$n"4WJG> 4}=S )ĦkLOtPҙJ+RՉ(2ɨAK Ygp! bc3입Iq]4@ \( f0oXń(Jo &tǶnWj8E4huҢZfp(VIM2h_P _6i1 uϕ̬N)&ew ܊TB=T2gCƜ])PmDOI; >b% kR8`&˪$na?ȁRxSnS.lL1Bq hùr2^YM-%~-a-ٙgRx:#*RHbMMD@V4%1]V2L5h7ۢuʘrxgjtbm|DjV)C1L7#kσtF|cَ#ԱL1<+r8+tUd a Z!r ħ pAE|DSO3)ێ|[Νv8:u7D!F!>+(.!V_W幵Jx'V񨤅gy^Nn\m ޲DXIRȫz=&[+`G5=~WKRhT13B b.%xooWʨ{9ghLsK"꫘ljR^e% WpO2RpK|.Q[[&u"R ] H?&]h"wF:(,?H&")0?Tl q_ `Bg^zvДRzɾUb~H9H<$}_FXvhXr3-_TvM@@76}Jь'k6 Eqd߁~̣IeJ ;-|R2U|D$ ;g@dž1P߿B0C-mR:=^4P+Hc|υlvc9]~ ,F ǚI&,U͈F>e~/;F90)y@mUІ!I8PcQ ٦L$"$qq H"|ѦRUpMY9$YP_yݎ<vPqm2[4:а,g<`mI4:/! B ?K&)R A}mD^K=)ϲ9}1܏TwͬYIc^-a`_Cq-UMʋtچx C z-yw}w\YS[E8q.yiP$ޣݍ~ >.9VThIN_3nW2n勲o EPg*Qq#_)^0rg&c2@) 3K^P2䜺Wdk?>^_jt^PCy1`x8WI9!LxJt !] T>LUTjG5E[j7{'ۆ/hh6ey?eh6?Wvت= y%*Gzpn5 wWhn76TsBGO|bU1~S]v= ,F.;қ+ 69#qXgL :TY!6c+USqĤzm%9\rz 睬+C{!UZ&5[MMa`k$YHun.J~~"aD &DIuX"T2jHpy82 n)SjbQJdc"$ft4^0NK&Wc'#0uk'&Gu}':C}xWs=W3s(Rd1G8?IC8:9,Qf Ւ3^n‹DZΓ^k-غ|//ce Z-cv\ cMmՅWO$7.{9tO4kb{j˥`:[pGag0&JZ*$hcip-`m$6RDlIzgL蘇DKSSCJ:Z'a*c*һl*Çf#ιxgBlfjF\a`[2T u 5u|_>EiA<&VҴW ƈO\۠y0~P-֌jƌ` Dԥ3AÖd4Txxu|f;X_{ό>萕\74sB\vhzQ ua D m?hh"USYUpm8@$^݂ /u{y953ҩz2'öPkVftԠ`%Q囃 LӉyT30=7Bϳ{3FꙻDKfȠ7"Hk8O`n#$xQ4X (m Ngi f!ȥh 566|Jl๱D?D,1nOJJ ʬUy)^9u!ic*P ,trg,VAf966G `~#J 7cV{E-?|Ufŵ:zkzZ7ΤAm6zbY7rVRu%`B Gꕭ6S:x3U+Pdo&nPM)Îh36cQBJ".p!ޯ v&86K\ T AjA68, f: ̍__Cp俀ԆgnؘFc(ugB6Z^,-QӢ{0“YSaxv4lpoG$*Tw- ["-1fԨS)w2=?Ӊ H 2Ch fY"ƿuޑlܫFs? 'PZolr77Dw^w@RP'I ҕUUjm@mcseWK$D>g$ߟU|h S1k Aܺmo6zPvELtUKx: ܐ^_ocAc{/5{Rj`!#_ ]Q/>2&^I@߰tMPa067Ԟ&'-Ql5X.Pr,X% 6%1w$cZY=pJ?f1|3b6C17(,9ox!!ץqIw~㡜s-y2dE('ln Y;>7Կ{|]~8Pgw{j3Ŗ3a'@.Rpf_8-əֱ.{NVkPz형M,Y;Wyw~̉x?z,n-ubC>SsoNpX_0<>%wX*+^a~KrXe2@!ȕƠ\R͹c K.",׵".'S4rHWF" Q߳-2W bS4V 8LⷯQ뱪Leg9B%H|Ṁ8!"><9lSk}xL H%SӒYjg胵 l^pv<8dHkK {cܰe"8]LYEєK, #HLvY_:7 X}`ky]Bɺ^iX ؿS<{uгH鉑rwx2lvvL?,UYEiV'$[: \V 閐+-z65l6 CW,рFlP0 *o9. >v0H" f'o.?mt[R Ĕz\{LEInDsI YJx)I HωSI g2)u˚jb"[7q+TnZo[ulR~*sε!'* l7`Np Bo3ܙqnVc ΅e^3^(1ޥei.˲EGT[N2QC_iֵJIoz7|t҄6I7"h 2=VI0tU #~!4$9HTWTHWӬ׷݄#AA֐1R,xuG8פsjf,҂\@`E8,2f{SćV ،IdJ" k,ͺQ`śc]<t,E,ι5]8v4bj6xEɼ$ci@-l⛮KeJ)Z?L "NIiՐGB9`[J:~uZUM"4#j2u|ƫqƯ@;ۑߪb/+14o"ca4{y:82 p*m't{{wO|+佦RSп㈞o89} XK]]N ?I L) 8_̷ ZGO%Zx{QiA)khݭ6K3M78|{s|P sB=ZP.QF4޼ ^z豁X9 >S#`p9^|S#?dEhxg$[СC6J~Qꈽ?ŜBc~J(9 fk#|_, NsPITmɋS #A'sK2fχSV|6;9~@뻘<@Aݽ RtI V[#[FQ2oJ&Cj!LMI'&[z0WV,1KS8JZK?s1JޗL˲De" P/:-:lk$PG nc gE(K5]T`!ֽo!ȩV8۾kR%jET(ΒL-W@Va$A YN! OVbR(#y޾|t+PWW[T4B(nmBx[F R[0řo/ٝ4 հ@+_[j(@ b Ƕrd/gQS[ڮ?\}ķ}C,b @5Q*{U zu"R*[k8 A;%`F-S qf PO.Ԙ0* AX* FaDkߝJW\Խ__IRIO}.w]5齿bVvhXBH2lja]M5+y^Lm ØvK:yo8wrC6v?l$ |̓Y8h&kO# ^!@eiX)4tBP`T PP*&02◽bI5׫{{x?Wc_o߻os-*g|U\LBnJyQ1#gu.jS=!۷Fۜ.sxI {6/[`=iڢR,"s @ AI&S<ߨyтs}[2$R<\mqmqw Bς6j;ע0|E^~Exb{92$<=,_٨s{-WAF5ɘ[y{EoW3ӡ;K=/Q. 87NX7&(Ir y!\fIg<7𛅨L`&+n~m=6~=TZ]P?E&!ҀxsW S=ߞ>a.izBW ,g#е_.$2@I[ܭeX"qS#OL4^K#Ts䳽qK74>r֦fr3laJ:qĈS x7#3m_+[^doaA$CRez#}NGށ|Д-mJXI:ۈ ޔK!C̫M {~ox?bV"5vx=T#l{eue MOvAhf7⚆ղP1)Fq2j}l#sNIrpƨd1ĞPWg\rL8u_ݻ:*= ssPA9'֪6jpZ߂sG5Gʧ`/yDzBIhReA'K$$C459y7\VP-l6]?Sk;+5+c)dZ[cJD7| 3xYdM==2li6nV1oA: b _tE¦xx&!M+y ,SJC2**\ʤ+Z1F'b<:tvԖC5ߖ«dzFs #a#$(؃:FztйAaA,QϵVV786ab UA9F%;ǂƟL*Qe SNf6,T@L@ i^'J㳑 Q z fB*ţ*xZP .*[2#O;`"Mn|C_cw .˳d(Z8;J?K `/CZ(UypLWȁ7?N7C"|}=Ԑ?ogR܇%5_3n;yK uFlSG? p W&$3$wMG!&Up*_gJQs|٪d;кV{K~σ=7W![ 56Pkqd3p8 B~Ef3zfq3o t3FDPWH@$ f=f%7SѪ9^Zf}im+o*i#EM^LaaKxIwP*0nZq qM7Z'sH_aEx|Z`vHQRuگ Aj`vc[t/v>JmʄSȸqq Ր7Ւ2Su d-)]TynyX(s3; (Jƥ M̭ӫE fDb.ϤN{ _W`^}B2ي,$h( _Gy>yO|zmMT+7P G`fi;|_jCixzרoL(#G5]7!q@ 2d0iDR$L?\:Q=Gڇ+ ?u=9yp۰TW ]_ou B&bkgv)z-yTnzlNlOD4b|osI4+mOq1-p!]ծM>xsp mv|wS{컇 wJc_c]<_| ̗6jKpCFga$> Vv7m3}'=es޾tt(OҾTp#ڒ!^ðY(G^G+zP.Mf&|^bC(O Hj*=pl[ZŹ/It R(%™S k{e+'dDQrk{o#U`{id9ҫ鞵t]>Jru{44۽9oJ3i\5Fe=|)Gӝ,PҺRw13a;IU9zqѩ"?Q@P[La;D\bETꚱCoGRNO*I־Z |ߠL] LO )qڸ60ZA`,5!Da>W2&]Uz)ηm}󻿢Gp>-ι5&R.#,&8< )81a"6djD otK߶o^N=4ReFа~)ڋB[Z(-[Z##"!lo6fH]e 33^W&б\sBccu5PXYdܚ"LvFղhBt w_JzĀ01E?iy :OnqVƪ,54hou*K~_96%ȔaRq[yҙL ,]iWUo*j .j\'SRE5Xѭ0K.oWT,8rlkT؂o A7aK6I6cVW-~j 9`F:բ"PT+[Ђm~5)Pݽʓ~UZOH!=Y-EH ]M|p MqY2m>RSbq,Z#M\P"UzvP1*A4ҝїAByL'\0:Q-òfM՟b!  }L> W2kczoo`xÕuu"@Q[7 {l-ä0B3"%h$>|*mX7F-eq& -+[I}=Ѻ\@ ))o% tr'ljZ{0UK(+\2stUx%z!eXSq"5 ;'}ԈymKhlm bI+~+iaAjy¯_gOWb#*P5o>P=ƹ7{YaI[@.Uϩ 250I:9!B|x򀺞Rd4!`kPNvQ<f*Q"XJr 2DRT!P oV6CX ŀ^>f2yG}.ء:h_-k{3% WNȿiE"v6lL IiB>yR퉅SLZmɝ:?MFBymyq$("dLVY^ lj(PCWinZ`+QVJẻw<$U$Nʤ& <7ZK߻˶,ʈ<+X̵1M1.BܳP8ڔ*9d`RudX%k=Jި"F~fkuETP Gd/ٹz+ha_{up{+1 9=KJHY_x𮫕[LxŻ.+6G,9媋'ү>wj-[WM`L߮b@DV73q 9?x \a NW2?57j;> N}0"WbvsV &OzC0yHU4uO7ڙE0gMF~HQ9EjBՐjW4mz^¦t~OdkQJ%~pXOvT9A Q޿`X8LM#e'U[35Ӵ$v+v޴iVGi6u] kESx`D RjxJ00L5a~m/-`U(Ë 0Eۋ“ nmDe$1D㮷aJ=[tk{S4BV@V2""&`2ު`e?/ Ҏ%u(g1(BR[oܞ*B6tyS}~xba.{ch{3$'jw`5cEnĨ18K 6+Ǜhهdyq\3[g D$"o*DQ}|Һd+~ef@h&dL8 hCRnԧ3^:k`vjH¥*@~ tDK5ٮqQ=;iI*?$ƠZvlkG{mebЅN'liM )Lѡ%HQ@]®sG$Q`Y'pJUA $*-GTtф{v*tT.J w᪍>Z@6, A`T#$!1">>nWV~k9e:syr?o|5:"? {.[*D;"g .Թ0wGUثޗwo6͛rE׎5Virxq [ѠD#p/);j78`Ҁ=؀I~ (2`gPpAI&S⨯Iin,&82a'~R"~Cѥs 4T3-y|, w W岺CRª\uI|+jG p!E g){j(/@ٲiTIIvMq垘j}8_ Bɟ1|7XcFkECW)-O|Y$QT'>oKZjf4VLlB~O_({hj w3ˡeUiԊLKPNOy$@-\]t1;&#Nuyҽ.0Y 3;v/NB A5?C0s;7*tp\ [8Ė+N7CMvxCf3(hHY1K0WRa`)jD*Œ _7ɾĕ2f8KˍbL]["Plmt޶J5݈lbjSI+hZZh)=H6\Zk[+~9j:ɰ|@` Ԍ ՂA.p_ Hڥk'֙ͳ02SQz׊DPϡnkXhT%Ѱjb^|8Cl7_Kc@4I7Y&n%CP6\z|REW|u@I>((KKqU_2.%q;r8T!:zwCp bNMb5:ݑYhbBִ֏!dK']hqjRH:;TknjŏIG>sg^%}Yhnia^8Z30)B6Jg*ͩpC&vI🬏ʗ -7hS9M13KD}A`Ԁ & Z+wp' dWmS0$ ^x ;'@d:^!20w)+}X5ol⻬a<,*=hAw" ipt̩Cwa8M{5)Jq#a߇e߄O8`A[,ؖ;u_F 0Z@L,[@pKƐ'=pD nj8Os 7˰jtyʂU:Gy3dj}15Z~_&@ էpKҀ1h$ag[ 7v& })vt??YҰmJ{Dfcb!'*M42fY CX`m3-/q鈖Ee@u R1'0von $)1g44Zai_g0htw)#QUGcПXo2A(SRʏ f|O+(|CuwXR q$}sf0ӊmTt6OuG&[BgLkb凂b~p5e?|S~Qw1ښ277"ʟQ 8R: gPwڒ$tҤO9aLr(:A]@).]WD/veMM"FhQ.@.f.6Zb[Z2\U7_V%9~ gj P~mjvo! xUTuA e@ua%+Or̔3Ѐ !|7>`hJ^J=CCnu u5#m”=sul:0׈nSWgQdDkl~]M8} TBfF71 蒉2 ]:HneubyUY󛈺XkYD(iFz c=%l Xk? 6F-Y`֊$Qx<\T81Uyw$BOߞWz7=EfTy1Zs нc_:' ;v| `(\dΚbci6 fFV<6y`Zd­xICL-s˜% |0?˼KL='7$ﳜC_ZB+GN]r+I;H Y`!E8 7H'M-BFtoڈo@ūGe:I}8, I"h1b_lm$l2x͏Vh8 U,KA8R_MВէםW p+* }Q[:ևs> / xQdqD~Db'pG[0P:`$ B!0_TY.k*8P?cv%~i]|l>C?] x*/UV[p%+'zMCmQ%LPoÇm4yV:?P;6'?X,M9rL}K?hH)8:T(B`l Ba LCa*3\ܬwS|x@{`I_waåL4;7g8:OSzk!;YǪʝoW+WafB) &=9ro;C Urtݖo>`2¨G@LHX3úWHtjEeTGDi-W,<גJ{yH5Hw!2!VUDCRhU~+3@f@ 3=/7_3;z A 5tDgEbYm_9, G 4?B)\ٶӽ| WP]MvMiP_ȡ=sB`8އWv"$쟃@-x3h5\ vآF0'^MH!|ׇ Sksĭf.oLڤ{[2 ?==J7@^SW*RjTX}h7^fQ#:co8oE"b&tfn>?bsZ1Eҽ.fseW.ǽ鑯+VT&äܸxgK~ˁ Y`7* r ܮp?0дrB;'uּ!2 4dT"~iR]YG^IM vs"EHYiL9+M} IJVz1fgAwttu7 ˊt*)f 4rzQHjDT/{ 8I08 )TK @L8fRw1ҩ^}-d7eD z(.eSV'}@YV<Ԩ}\gR#>Z0T~ZI0eH+Ov; $)*T.zBWk-ɛ¿|n 6D, ;dߍNbwVs-[k@Dž>_o~/a5dDc˻\E8} /Iwgh͇H $ Sde|w992B`JA 3~݆ .DҎoa`w>I͠3IWsPI&SWv}5jNEݱ3#q>?7G "%nsR+f]pfe+#Q21'a/tO9W-2vͧGK&a_!/\!~L.+w7!l(ZShƏIK߽$0*|tKZKq~{N5Cf؊4=(lhW057,#ЂK-醜}|9,M)m,uD&_dkm4!xy\>ku\1qJ ߋ(B<$ xC9>s^צ^D73TA`#&,؇d08Yy˃9k عt"($ȵcJȸ.U_b MAvCŽԒVĪXi(4Jѐqŧd^ oC[8ߓ'WqwT"f ɤ +8lN\/3TiJ=\Z(,-g x_*S䇽<7#գC/IRIS09Uvsug<$ yu *n WcR 3]!=2ɭhi {4*]zBklRVA *%!%)s~+ Iem[.x1pg-LC*XUwh,1͎"kW@"4$Yh OQ>NƭT|_Iߧ}"M B'^ ^gפk8Rron}5M1WD#~箓]HkE6, WYq#0acDQPX9*Pc% u𴩍W[&< L;b6ݳ{WV託 E ~:U\ٴlOJ-IbX(RY{N~|`@9޹Qk@_arh${E6NIؕBUEF{jZ'B*[$5jv_`]h|MgU4kprw}d7p8@?ɫ j̧A ꎲW9ψ.ԷqTUĆ@t!!.fc!ONWD/!$V>$O$$_=sb)7WLa vD qvI#,]J}rhH:SUˤci:ilcs7L#X(W#w\O|j }S)Vc,Q;#HAP* (70K̹KOŨ/ЗR/qjԟ:7ӣ.u䣱cсǔg2'P5=kP˄jV/7׌Y:7YL)p9f ^'Xщ$G\1с`JLd:`|b P suKo~ϴ(MvC vޡc8^-Cfm[]<ϙ5^LӆgRM}dpd1pLS0kM@gubaʌVcև!8*_9âV()$hDd'$Tq]RV\aw_GV2 Ġsak>q'`x9ʈ$u3“:X/iu%+R_n[MP傫YGc:-Wed^c\{ 7-e[C2z MN/zP OA$' /"SɦrTjZY] dǦk'D _ Aar۩^uʰH| Ubl[Gq2*!:2k|BE*_@2 JS @fL!mIT䊽n| ^F1F4!(DWsՃ~~"LSg d1֒Tl곓7 ?wN T eSt0s^tH gcRq:,rY(suZ2֩)}j 1GДz_NήYJڊ>98t0_ȪZNX ʮLy8'%_Z20SV(rt5~c)_P|H Hs MWTJ}KoGgޓd-|_9w25zw̎IJJ'WSk;M2QZ sO_is6n@ Rp-9KSH{H[aF}ŗFqMa5HZ!V>0;#ijU630zNIn,suf"6PDg @ቜ{sEGDGXo=YSm9:a+,Pjp۬iRj\_L<I+Kjsbؒ-{j 6sĴ-YM [6"pXrET"ƕ[ K敖RtTtmN^%)H$7:$qF+д$*f+y#ΘsH<xA3rʊ*]cmxk<:~&Z\F I1ei%7'!Ex'O7X)`y=hn-[{vp;R F~C]c0_e0fFZ+iSw$o K\mPA4JWN C{/V}7?~smj3vC{x$Lid3yq"|ʦ&$TS !V<MS)JA!鰖>]swOD+!<kTUaCXDF9=qs€+Ugb!\tHh+?E;$w#d+w :s!ZawΓoZ+oR$NgRUhdՔLǤ,A=$kS2|eș\y, \|JR=lF)хNz+(N,J?3DEa,y+[ 6b[>YhO4G ݡ$8W@юAK[n!66E+bV{_IdL'u !}QCd?垦Si@'6}NFhoZŠ#{ۆr5)X[0&vŒN,F0NJz;K$Ֆot[mɫ;L1'-ΥUp0Vv++S)ۚLe]@z z}PH`PXg_SQ&$[=UᴖkJ-6u"+(Q>he˜OKґ!e@*N*IrIɯE38Tf2jgc'qsuxYjQhJ-'tlwBմAg6 RR:ӌ)\؋B^*Dv^  G<_h J wN久=T~0W;O.4 B% & J+uRO?[_4 L BE64A`,PPF! LRKݒ*ڟ_Lޞo;_ٍ`*"?'{aqK'MBo9i~6;h0omUz͇hJ͗'ĕKCbޏJr\Ex&ޜ>B&}bJk Ϸ' nd^ AVF"^(*XGhpSHAI&S3ȊHТ]z^s )shr4:DF {Wj \g4x3E<6 YԔu>ns)6#q#`慻ܳ}&aUǿ+[Dr('=T7/X%xVĽ^t#?[=TIby|EJs2^WE >qz6GfO&>/$\#%*igjgDS#6#t {27&R;,F4$P=t8­6)9Rr 7RXd, u@dp@` דu#Աs6<~hBVHBDY"vy|ǹBhNÂmPL`ښ˱P~GkZ5=~.,znj;YU@ pmk-R"Yzo-D|Lv *;H^.Jf+¢XQ h)zZJ cHv#[H =+Sn0Wz;>%%It >d`wI9;yv!ѷ6/8 xA(@= I:\I|V5={=&0PLWd =vIwtFGc( NuNpv{! dnk@IY+华i^ɓ]ƣ챩\տW-;cw+yhPa$D@cw4ӺWa$EO]M] eLvIG]/H OA]zޯA!I!+ZR1ꔙ$$oD PUdQp+Zuu8OuW&u0->@*{&W΂bۓI=ke?SS>U!a&n 8ڿ ۅ>t5z@#H;W-H[Ά НT>8 0ޖIM nK~*rR)aSR]ۇF4Rum#?͕. 6QBZTw1,ѳ.ZO^#m ޡDf\li}/^"6QFqK\mFPO> tW> o؟80uJ.. H?XH{@=/K>qzYޕ{`U9C‡<$~}TUv=.Bg ʮ6B, CLcb6 i$IVV6%J}ri/wfmrs=/?$CWܵq1 !l섳=g!/bY>xk$즡ٶ{~%G.mӨϩ vvYnMbʔ51{{>/>2(ЖCOj÷I= Blw|P?^5Ċ TrD,EKW+`{57bڽ7[Njl[)[rÈlbz[o_~^b.LZ|y l^{g ?34@A3 lHn8ـ/=Y_`ҍ˅K1Ӂ;H a2g ?{Yb~cDhޝ7&q+٦~\4=y) [aع08&?'>\saWF`}qwɾ+1 8=fWeWXgIIO&ʆUx!W|Ζ-_"ۥ`Δ K?Ct~Cj CCR&]Gϡ(-i;kCBVkk85mDՎ) )j3P<ԫ'3^f(ZF—-N|k@j?I%y !Xul\&1,B:<ﺵϷVl7%ZW=I]DRqGZH:5J[Ń"64=h\ X*hv(;bFEj|y?>5гIoD,?2*&NAGsG$@A[mҟ1hd ԢiϾGJϱ~no̭)]0oI'OD0HrRE (9rbw[`cip$$*>̩GQo2{P9vPkwo2us ,|O~&;f]wT8}(h{u</E7a{(\*_&ɯ\OCyuޕA20? TjY$BR0sc҃6rc(^4R˝7qooyoV/iCڢ|Kup|VDV+*LZըnЏE-wcSI{Ћ՗ό+HV4 ( } :}U>gQ\"<րU]7>L)f#ҷ{0\F;껝Tx$T( AР' 1L"SxRd*$> e?{UtGzf_rǿp61pe@R!$0H.0J b`0F A1(LbqYZMo.Nxzcvw4z<ǖ|~ߺ:-Tgɒ{07A:ACoFC453\k^>p/?_w]neJiqbq{Xde"NiJ@)  gA1I&SU.V *@qxZo$II830H_d;d0h%>|Ii<VPzVM⒫D:Kb16^,U8 %e :3k,^RMLumC8|.8U$dH;⭬vVUd6kC頫`8= Wo6[ILY!r7{}"Ԡ~WPC0vՍ̛3$ٶ(xS<{wg-u:-H"HTbj HjYW_5+صta8H( 6GЬkCE9'7_C˖`tB7*Z7ɓڡJVGTM"C0v,c[V7%j0W=$(&0aT.]zY#Xz#2>A\Ĵa{zETJjw'2եu޹֐2<0ĞRCV;U;>EHˇ'J=4RP#yԭND2OMRfWA~!ă5:}+X/T5? mRy%x2mBmM%**LXj3%+B=5ELֈp{\yNԗ@+1y eLu Ak"nwFB'h7s)~,C>R,"yS0U6bd‘h!ɝ}]eZ { P$ZѢ0lQ7C~'%4S-;V*]k-|R$1P51MrG?1;S –}p堋ݾA"1}bmЂ76*O\HIxn~?3eC>&5yA* /hQ Aͬܡ@:ol򻤚u.oV%N]8FC0r\Fr<-u!*RȸFps5&<:$Tb$/ m.!LPBoJBEgPɕDE$z԰*_OO~zS.Ų_|mo/*!>8.s j.K1Piljߜ󬟄2dqVa6޿i X2Ï:a :Nb˜FUUf~'?;"Jִ*0bx뵶`JH]Hg&岏hg[UJV͕ #nhpd\R! ew,Ky0[r#;1ۚPxJLHq:S?rcՉ&L f!ۚ:! r5(%ꍵ2k.kW>qL\7jlե_S_ִMUQ@Ȁ*-VC'abV7:27j)sؙ^+I~^E@m dfS8y ?!ΤEl€v64mi{fvW~vAt^ªN9a]02ݤso&wy+nsGEqi0vA$Vv;s P ox{LܗV8c;=6 4U@?#{^3ޔad:d} lm+#ȡ%*n< vdeAUH݄vېVRkQ(3;K]UV3}KZs)1 GK9\gD_'L[d^ȱ? Ku2GmgyǠxߥQ}kƜYbX?̞Ddh)Np[C{Ś:C#.P, 6$ok) 3WBȴ^˴B+˝/a$~ i>R;"zINLl*cU_}.rqW&wkC?SW`<`t }JΔ˒ҁၪ ?'={帗2"#AI¨*r2f~>Ic(Ufjf~ml`4t(`5!2 "'Wg׉DjYu5w6O@|v9OKm/`s쵍90V6O~YUȲ0ɉ\'B_4e[;}}O` Og%~JF"1}3m#O>P" P>h$8PjM<;I+~SrVK4oBIJy&D`TNx"ǣB-XUk1}^QrC Rj%S)HBJ͐-7x'v$[kgB2!ЂShuNJܞ ~63Z0U ~z{TP:Ms)1˚ ݓ-@yĐ0:U"g"UYh,up)HOvn!9!-Z mK^ w"ϩmj,-$a=*%+58 <#֬<޲ pGC!y1Aaz%9f/|Tk n<Ѝ`nd v&M>o5|1vA*\t`]A7[S~)Ƶ.*v+}utݾ ^wBt>cHG}-p]MHc6`ZB{?HDT8g?Z׷Sd^"] ]`S3iA fZA?q4|ؕA KcV_3x4E7zPYBEu_ :Xjv, m{j.zWp%P%뱻/&k$`}j3lj}xj< @@n zAM::N`!7%׫$g L%sR:2Vp:c0hn3/crPۜ ?Q?SֶkQBlpVk|fSm(Md %Ēo}}J\ KaW~>K-;tDawQAMve]XȽѕ/,.__S An[jr_)=Y}\FO])7WTb1 n'99P0 al0AaF Da_/.nU]ߟ;4sl7htת};K# 7iT+<8(d~|x .O9'&*V} 7&<;Yqo_b zף)>v9d?P9k Ceјܣp&'TiSh) y:=@62eĎ̾nfJ>Ί BB%5Λ7w 1BsWqy(}8]S{Pd#/%N_ǑN yDE&tgrB.jLgI?kXhk=]}M8عvBiU4E$ "LCvnOP --kaӏUȏuE_4;I(u09gKVa@!촆(7c-(S50M L#ow-:jc@c/Nu󈸿%:?ߕ9t/$t]j BUwuh*C f;K֊K9Ś jf]$ciUo$ۙEB$c 7ІvŬ=(r*-6y力8 1<~̸;?"Fژ8+z ?7g&wk#Dh7(n(UmU9DkX)'~lMcgF_H\Ή-RPC%/MF0uKOTg>}!\# ?[Y68,@I1jG TНy6ռgN'x~‚÷PٱYJ,j]+oe ֪M"" OСb.Pov|u)ncXz9}32p6_6f(3g+6HJ[3 O9H/'% GݦvZ>RO'=P$2#xIL.ljGJ [mї` zSB@xRvKwwW UA/7]uY?@1.ˬ,z=7!WJ0K ZDB*G6t*J")&RHHǥ=AϗЎat`t4:%1O2Oe7h'ڏޮ!OfXZf/HZ1Ej8Xm ᳯ:l,si~]bDBP T:4F2pu<78$hc] wHQJ͸s[V0 PvxglܝzRchimZdS$3u] \Hօmc7OB ,/?X&gQJZgR< wS z-MBGܞa4#uD/v_-|uZ(wCX5}լ&LL`+F;'_DD]멳莪![W,cy4ɖ/@mBn78yrB_-Aғ=sJiVo=} |( r@2Pz~%NPUw2E\!P}ES81)Fc9#M0Nn6 18]׊̝a=L2 )]xzrCR-#$%꤫#Rs1{h16^^9r7K٤b8M px6~%@ߵ2za~ YV0)U뽚[RCoC1.^1Y_C`=` R&`lg)!|rD"V=4ѳ*WOO\1ln|YHxsIXBHl%}i5;O t(ްߎRt&SC;3?L4 X$i4 ; D\wCd1 g_ty7^0ObnNMQ f_6VvgS&UhN2}9>cNԳ|n K=S|ܞ\eEx[a\տ9hnHC:|hxF\h< q6t6)q}/ŒR6Ф7[r? T& y%z2RUukD9B Gc` Ȇ2ݪGz:ëgGew&7g:tUf:Ba^3Ŷta< hG.\:kw޹AKjVCC6|ӛ$PoB.mA}2E N/;O#R{o+6mΎ{}trSd)R辑{)?]cs>= ͩa(<)"mL2֕zmp&%L di[A^Ϻ+yZޟ9OxA9ȕ.NAq.$w'Zr[ʤ #1Y ]Č QOk\wJg"DG9!٨wG~[b@5p>!svbe*D'&gfhF諚:֞z9Q^|I , =haaP< [ %G; o`}4t,,z++ ^\љPSs^8(BSA3iR,5͖ݧmoyb v?ų#Z^〇@y8{Ff>ܚobΆ*H5e ֝>=JoLjqӦeT{6S&p-=9-%XSqO̊X Cۡr G >9|lѻZ㌦="W8F= Lk@"'H{=y8C[eAV^}i.ndd4TGQp,bۖYi! `2gp|Mϲ5T|X-Hy9ŷ趟 SL̙rP()|(bϣ,!_hpm>z=o%;)J <gvJ\|_GKg+[TrTUV$4= -Z]6  |rE68e6,4V(€PJ3"0"75̿?iߊƽmzUt1d||ukxibT\WkNqC?$z>c-I~Ut:ƅ:_ooɋ7rTCSG'sJkYJ { >k b ע<- zX A1irjEKz(-Ou{o'>:+uf\8gV~>Ț=SVmC+P6ѧS{QnDB;5'PxfV5<-HWVj,CaMv^g6+6z+nr U?|k,̓#VclU%Ps [ p©ҹ6[0y%%VpiB.G %Mjz<~9j"f6hhGpX,iH"մeŜ3O.w VXmm{yo`.7]M sIx3= (4D%Ӌ9a<Y#׷(;r/fZ?{#߮ ;UQ^Fr5񠾼^&,scRHjF ۘP- oP>#>MX*EPRrBjMKBQ3F]%9(-9Zjpf+tÎADг( 3D>l'OE)^C(ݠ'f+F&'yO@(dkduC{Tۑ➔GٳE#! ]OS?dW@O#FռrO龍[AnhMeϋ$pAQ|Gw 1uj)6-fxa}o[E!|A1cNjM-CX9LfrEs4su9&iסcjq$_VR5FSuti+aoأzw~53Lp|EUJzíg=LYAl?=C\fP)x*xC!qNp[Jr7Mq0OzxS+1_00H!X?ѵitoG<4WiFIP*$b_#و>| :_H=[&ϡN颒7Iǡa<=dTr Si;(yN.5ndRY|}0PtOZYD|20* ب0V a(L$ !1L"g|WWdq<|V{{/AmNfP'h}ϵЊ:~WF~5YUS$OMy>85vxWЖ~"x]fǧd}ѬtQNHq}[^NAv]K!Wn;M I R9@^rD'Z7r,st;O?e! R_gS4us^e dMAtI&SNJyEPD4|0 eϣL634\5!%} ;W^(_<Up]2g!5q UXT>|1jYCSh s(?C8*g!xE{^`!w8*i<*6 -./TZlq.h25ffxg$fcƟ=QDt;"V曭tQKDtaM.7BOF+bf[N43y]ˁ^.# (t}3:XJ|EZjBRDRo47R9ufn{ X:VpcV jgίJZDa̳$"9NJHfPMYoҽR,SFz&0ru e<ߟuB֏1-BFITj^$rO>f-uL{UoبEn<3wֱvA.U96ptG6awbB9UY)pe=A"J _; 1=X&_lc h򅢁Y^T.?֎k Xg)dN(Pu0ǤD8#xI&B|>x{bb@!"6l4]:ީӓ*Fo8/@D$9yHRQxɪoA:H AJ&mU7LHQ,Z@aR$O"= :-)Ƴ5Dśvi/o @ ."áhe9^Ѱ;ߘU4HV?^>+tdI'xXJ&ʪ6'R ܞ,o4l?k "tt\X?Mxx3x_*{ -dTV-.|ƣoX+ I&S (|ɭrIQqsC\ :k0+ZWbWH9Ԓj7L/0+0Ti)xh.Zi)3O.ŸG\jñu6;;XPS8CzBpȺoZܠ+kWxk"B6eIS!{K".]zWq핦5[.n1ɕ sz.v+&-?RR#v]IKnǗ#53Rވ)7k!LZ3i њgR0E^Z@V̜rRYX ?ݦiFRF9UJкC;1[-G8hK,w f =|Hzpj,( NS*dV)_p"Cf6=phq3ȬmSbࠦ~+N ex{z-< KwrGv׎V!7ҼڥP_=ݾWἓyf唋5?J  NR _9 )rd` &</Z+-RMOF | PRJnї$ֻΈl=R]8ڭYCvINX0pWֈf.X<<La\-fs'ir^<}iwP'ekut0yA 'ɯ]a J<ĵ FV2J'RxIru?2KexGtdRbnq8.*1 f,F]3ƫ~ڢZØb)W3'+{oxy of[Rk3hA*Ob I6J5n8[^"^1X'dvT2k7MOz(io( [yUN})%( B!k8)Z,l#7-I@kRa0 ̳ D<*EOiq sK:B <%w T  ;Y#'}6;Fr-f /%.d.R>owޒG մ]a\/l4_8keɐkݡVO$b{Zx&0qf/H$/LPg:%(^%P7{b5QMvG;'j\9N/nDϷk 04G{;m|K)ᙩ;9\FGL1Y-[YjClY9CI` #-ޓ7ֆ&!‘9}g݃ I|BP(X:}WfsFu+{tyz rU3φ&{_GTl${@?wj</ Q2+@%=l?  7!5Lb3rر{̫+:rr`~r̴SX韩D-)L60(fԁ .6#kX-d88:[LVTƞNշ4=wy!<#|d/b}'~pg\\(YS7ڣW΢ G_:}^ 1βa N0b3/7 iE 渄t{: 9WK*m棢 $ړ`2Yd"HȌ2MmQȑX\Ԅ]KZ1Gl;u|l>eQ hvk3lY],z?4rߡY.6U터O⫬5xtF zסǐEv"Qb J%``UY7O|=R㺘>Gň* O} tP'}oGb[28Gfn k59 ԒKb X+X$i,lga$5?9VYQ# V4GIa|'JfaސAR)#:6,韄2Q& TkILN**˖wC4 B}+'G5ɱX_˻1V8@2X/\(9; ̤ fCZgy@|qcު )R`$&na{'N"ΰ\7 !r%ןr?hV=[;o _/T*6Q]յoVPa$^6)l%G_뤲2 Z9aybgHϸw ijЧBvƮKٻEFփMS{w*)zt Ө]J;r5b&v[FZZ`xʧc+ޕo(MUw_I~wB|2b<XbI" za[b{ͰMmf|84`Bm],)kissfGM$, P?mJ}n-$ x|#LWytfXˉB#hPd!!6KVAPWXQځJKwpGj7qD1=ݘJRW )lMFiH\q݂S˺gr2=tGd7RLʱwñ `^t|raԐFK4=o [9MloX]8) }anO"h`}..[Qa0! 1<o)kjKJ8\i!&56㓗Lt|"Zdp?eI?O|e8qEP&#ホ ȩlj]_y !# z-!F=Z;O586:]~+4LP5&x|S.MkaҭAH2e{wt3*fiaT)x0Ŝ[?o&geY!%YV:9>W~j;4 梵`ᣋ>rS]2/Tw1߇/8<:J{_LSR/a!mIl͝U =6! YcP};̳.cbq;XD,E4e2_Eg^cc4RPN-H0e;I=zHz;hr :=hWY%I5~45Y"=CEV}h/ܔxK-5 󓻽Oݘe٠%SI\im",}?RvjU-R2=߇}BsLeO\'?%cusnVMT()]ay=XOϵiSGS.aф0"GZӖ0 #>^Kg:m}DǔS<y,6%%bBo\V9?ڱPW=Z>w6g@%(J6g.;f4/ss]<ճZMݣu@M< f+X f8w]vU>Pp[,W~k|i'GVɠEN݋YяgG&9x &NT9GqѸu7(B7-YПU4wH F5dIDtS/G0H V[)L֖($ZV+Ps-.f{EAsF Ϛ(&UE2ykh1~Urȼ&=9d <8Ԙ0; ATBPD&L wqï߰s8xۛ|#7}>/*~OM}Ĵy[߫UiFF`*AK,?Oѓ,g@~C]hž5ftf8B-Nܮ&,O,)xA,4( BP" &;K$UmeMx_}\>h9bRFuZƓ7Akztngipbs;s_yy LVw.IFWG[{>-$ 9TbZ8@]2\( o oAI&S<ԩ#G.=*Q'Яs3sWAPL VOc;}ȏ9_wsJ~$OgS6>7g</[tb8U,ɭwb[)! N&Ae:e$ESM3JQb'$ȉ6 +F8שe j%ǯ9 g}o+uINJ6Q{nnmP=oE^7ep!1M?)xP1|ilk`[N%^4Nrv[h9"[s܋h^2wQy65zʚzt"R̸`nlp8 POyl^NA6W7hCCS }5@ 0 I%@VH6=czr۵?]E0H8SZ$ #f]tN.ƫ@DjcLܘIںD]}U}%[$+bKl*tTwqj2& ~@Kk6gToWlW)|šݰhzxjrG?e/ƚ= B/-y;װ:u1[OgevOA*.$}v -#Onu(mܣR_<bKjg*B#{lQ;R7V zf-¥CR$iHl_oU93sE$a~;T4b{KSz3?]`wҢŤʏ8_ W|2cIo,|Ķڇ{4"SEHއ{`[͒n|%V 騱6I$sÛSqO0 2鄻bÇƧ`8I !Iv" Zbo[ ܠ)e9c[{vma md@3>+c0F[zQ `yaL:AwjbcZ*Zl 帡âŅsqN#lM{ӓ OT/wj͋D)(7y}ߗvyu |Jn][<\ӐbrIȬS77 6i]$!$G&h @lVm$vi7/qNyzEȘiNr~ ?c3E=?s&4Y2:$_X+5mSy8ȱLDx-!覣7<&UG65*c򔋾*L;[K@EdQbb2G 2x\ٟɔ斓jdd.$ϟ Elz>|&"s;V1QH&З,M<RZ }<7O!DijDUB.[zd71+,- B=o("0jR7l[t]3^/fS+c@5}ȹj~U[)盯+H #L Ķ In)y@x3OmJ/#O`mv_.q?>V%F[(,`BӋA4E6%hUkϵ:lV m"mҞ"!] 33p8B.em/E{c%DTQ:2ZOD~92_{i $v]%EB-d_Zvȧ -#CܠygEy:JqxT"UM*hGR`̩{LC4u yH^;@#0*Ca͢s;4a t"{]%>[$& 6,5ܵJ%td>Y@18ȵfoJ6O&-}? rw6H.?w;0ivO;kOi+?C9(Qq+".E/xY Ѳ>| .Ȭt 11?q-UIӣn2߫fȘW.G0 >p%MW8C2 +\UVj2HF!55j{F5~`|n߆쨙t8_ -z >/}5[#2~#Ɨ^{hl:C>$Z/&`ˋL9 P" ځyq9U A^~0)PGpLm/hRF p0|2)VuA ʈ~z/D nqFZv |%19E|l4q TEᷤ\_1%YeCQxϥud 9Eŗc&V"_4 mE4Es,ZK2<jv}.}>VwNWO]+Aœ Z|\<턔 _wxLJAFqm53Kt8!I"d NiS9ZV&to,SIjr'^ӲUg7 ,3v^'jwT:j@6fŵq73%w&9? %O*dǎH kEhG3.//jj_{>^T6G~#_Tƛ>6. U3Ba^ ]L=[QCef:,DrF#όT :YT2ލ>z`hkH:cSL|'Xޞo8#8C*g #_3ZUwOX,paU"b8[h; z=19'ꮒX2h;H2MJg+ x%3HO F]*,l+u7WZW,_{:. 5pcۄ*EIִ?ԡr90W,ݗx}R픆c-_)]H\ hn!E>:4|v|0MϒE"u~/6+)<f?+EGTQH`@To 9c= #49p{i6וU(]^y\hזTVwa=Wf+A?%=xp r͋])@8%NF H9҈3-;L9k+]WɁnK2HpGe| c"ua@sHڙVtfRň@n9x6ӓ6uGrB#jN0Эy魓PKlsʎZætAU(#z0c33aJq.t١#C" V͡~g>-WN9Xyy7o")&T|gbkЩh6 N]J3*b @Lt" p@ʟ WWD+ n_Ѻ?zEjIS* ygif嫣|5q~K,LŒPi;fYbB=!;:u=pSC+W_}+;ކz#0^[g+ġ9i;O?% ,-J1:=M־%͌J޳ʹ=[H:FʍD3IkǤ:ru1. }S&>z.:eRCUW[& BGbi-ߣI\-8PcΟ3(u.EN~$8k/ef0=H QCJ+nSPĥLF⑌#}fF|#qfJXQЭSҾk/BH[DnHմwCYQi>8kuv)c)HԕzWHP]d0 ;WO-X `]O ֟\]_CMSr1p}޿WTa1BDFy7 LKgxjAZ=ixZpJҦ7Z~ȅ.E'Ju;jjx(ols(KLGӻarkdE]-XdE˅L2.6~U16L 鈓ׄL8L [DI\/evg׼}~mݎ@ѕ'om^ơ$6/]i7wkySS)6,@h0J a H& Ba=+xU\skV⾿/5@ݟ{^<[ו-&^n5ouuhuu"1>@w0E_ 7eG8M80VထNM˘8)F KqOIߎ/ #ْ  'm>T4hUA0(!0 "G5n2W8nJNx/;a/ev_Fӑ{y"ڝ\u5eS:X&Wn_ >8+rON+ˏSk?' c/ }UIBPBpa` wq0 @8QjE1 !ft9 j6z?jlK-]y%7ksamKQ89 )G. oT\a}6~iQ8dg`+5-WpIh@]"FKظ9⌭r -lj1 B`FUW> p d|{ n.^[ A(MQ[rH#UTɮ(Mƨ7g;륿Y/K&+.EUnҎM\G֬}nXmllѼW~Rߖ}ƘIkr$peeJB3#oV:zb́of zxw4V;x[jPM,gl7lJLᾛgWQH`_qESG8CFprfhG%h/¡Ds?x1ѲZ=Xf; Prᙃ8}<6 !.ps`^{v[`Ҙ?<٫f-bȷbu<]=pƒxv@fȶi4H6}"hGҴ}9;ϭƵbd: 8آ~8.4PuǿA2A%LRR8kު 嘮r;9C1Ò#T5{fM-@av{mem Yl85nNVf*H3Έst`GxyП(lC&uPbv/NU'x|W12Q,qae”dDo sKIA08uyj|8V졃K 6pe8NVSԣf[Guړethrj2P!gxߋt{}IgeAMLΣvǔRVXs ׿`bރ lZRWo[SU gXwTGe Bq AI&S=8xH9z1D*/p_}D^xeoT*g{LPG,hQ2i#=y`T4~ܠʈHlCKOls F!n3W*1>ww ALr&8@&1^,B!DJnhr/ +((5,;1=nM; 2IvβI/8Mm"Ĺ~xՂHrq0<KB`iLQfWhq "K*w7jT %N :LD?gMW~n}_v?:g}gXc*kjTs3zGѴ|E='vwF+Ӱ9'>a@.W5Sn֭͂ Э a~gxKs)DtnН†eP=NxN73Q/f/D_Cor%Ap Gq1%aLjvtruJ-bZZOεTw]žYq(i`CQsӵ[ ׷OeZ?s/FR} b|>-:!5q/A^Ǚ"{9Dڸ61phAU 0$*g'R7Iwׂyh#I-q/ZMɡp FPHW!3Eb 0<|(|܆4ahh$!Ni/({{<k43%C 4 HP¾bҊxЀ): E%Y}4@:Pa_ǎWRi^x ŠSPL~ix+/_wva[C,[oz"7ŏCttU+3zoE|Vy#ZjPr9䂹.tMxTvO`uS$C"qxƾc?]sR0q&]:Pb;K'{EK@/ϴJQ1pEЕ@7&葧Gx`K̵-Ԑq_'o'Vǩ:ER!<: 5F>f!K^!pv &iY y<Jib/E ;s ,.~Q rt]rEgdQ7i< v6&Rk>sEa獲=7Jٌ[jɫqob8:O,1OCPy"܌ڀ9$E=\BkOcf18O mDVR͠ĤC%t2Zyaʞ%m^VaKff".@ #Y>fhbF 2ǕDtARȃ6˙uF$MC nXy` _~o[l+^+~#H`vYw)W#8[o2zsC3vDLEӤh+OBR1e~Io0$vc9@b̦юsZXTA%L'yä+8E ejON%[T !c#x":aPaQN+;יAz1(slKL'\uhM 2QKxu|^*ɏ)  PL` iV{q&{ /ooPd}7 WU`03j.7)4?nBLpfY$ږ>Kb[DB`q#[n*i]ꂝu kko-uQg 2&_"k:?o @ҍq)ߩ@<3I}˼eL=*+2?SH%mOO_;E yHXsnRh~ѿha$ _Q ܸ:AI\,i.U_O֟~71 S.ϟYZ^ r`%ȜdD7۞%J[˼,=}0%y[魃h) MH-8˸gLR)=XKzʷԀg_'lWĹ\e7q5*>mPBPivڹ95IM7QRP.m|ɤhlUV$w#;BjL"Ϳ/[os=Lq%~ cܰ ϥ e2"{"zF5vaVF5V$Րz43SxKg+޿8֚'(.oy$sa 5BI!v cyi|zª*PʱD rXnp{P.[6λ#89,U*t3UM;\m83s)^6"V ǯYPB4lO(9H,p/?[ >Y?"5Ҷ)fy]%E-_4||>0zmO]?XI:dT%̦1bP(5;>HO!|;FM6Eڕ)ΓyoQ4__5B-*7zVx{H.Ԙ0*$Xh !1"WYKU*8qӳV?z+lbaQiX?qddnv;bzUdh29hS:&~6]XU+~Hp+;  G*o"f<XkeDEH*(" GtZjM-I.N.'|̗{T.]Wjg g6'ꓷN&XJs@y#`9k x\̘Y;E0jγr1;y!̀|̤.!p(ݟm m:=NT)~6GMr`Ԇ=&dd/gE=@I;.pG3Đ鎸7~gHy&C)#U+I1,FlG=H3q|h8 ݻ<\foLCA8pp/:RS/:$h 97I3;lk*2eiqZ"cB_봚H&n2#gퟻBxR̝8I9)&76BԀ]j@a^'O_.H8: {zœ(kk^Hg Ď U ,bE=J|<}5 :7ipঅQ` Y:~ bW%8T=)c"7WXț#JH"jejAWԸއ+1YosY4^z(JlXDK pȸ-?wtքD{|p`1ݴ֡^syo1xB+00*$X0F  D&1C_Uj(uɡb{=FU?|^NyEMOqt|7kڶ]r39i6mk+X|tيaN|pb5O$&_@u LǕaIxceI!CMfIL AI&Sg;j$m!ݤ#3.M jú- Y׍1t G!:jJb q{XO~?%w7,z6#'Ijv@bXh/Z17eɩ[oL%,%eU]́}rnU zS%-z"aʚk>}ӭ;};I(q5:Ϯ$ZAfqK(8yȹf Y EKUBBsG&2|icL5~sq3k3G="jEQ(V2V@]ss@oTNs&Lǹ1OSv\ڜSQ_2!VmwD@$Ē➃fy@ E?1Of,qn!-m=bJp4T[!sb- h6 YjL0cc71rSLHhVygKZDRJ#` ؝ې.[=#N2ahFzkRwbaR%?{SD4Ό҂X~@SWe<Ϧ,C[&wk $=G?,*I\˭ee>n}L"fo#I=Set"2-Y +@4^L_0M =`2-ϔ yK[^c\ /:f!NJ\I``T#9| `2U$uln S+O]4l-U[x"tu$=X%?A~ņ?KU'^DD1o=r}'Z`&2TPL腥jW81bBW(:Քs*$+=SsxI.bQ6A)I>^/bNzX Ū} 6g~'[ͳ\K+"af#|d'2xx20^Ahq:jڞ5.VljFh au_j`*0nU'dV#~F\qKH[9VH[ONyiok[YAB[?j|\ilyD>,v(7+ܵ+"i@P}aL#=w&4b& kI '_[ºrU>X፩Qj6M[R++Ćx{h<3Á[V$4 d "\^yHEđeeVze(̱_kz!eA/Jq ق<pfHf#;KWUXHPZW|,t(ԩWXy93IRI]SAR[qB"1ѯ\2;HJ3Dr@m; P]m' Gc5Rw8I|Xq'ӹ.ǼYW0l[RoZOkc3=q䶹Ѹ| {S(Ɂ S#(i8X9j0bO<-˄ 0E{ OzR~ֵi*֠W'Ivoyq?oDqkq1W%w}GDM.t?PQw:dTju/*Ͼg?iz W'<ˇLvG:H$R_ s(4~n -ayjd6kmjʃ{k-:Q#dƌSU"SB)M) \ʷ`'aೂ=](xOҫZq_Y `7b@n11 *,0Ō{;߹" ~&A%nP| &is>fBv_f'9$JsE*[ӹ.vb%jCnm\Vz"c hd&P\p4o0_~bN4ũCcM{`u@;T/&-YKp2ɨ^djEM~W ]sdqMP~yhWά}Lb'0OMXˣ m83"$:LD8gR֏䶐ۊhq*2ݭ—^h䧵ir#?zwp6)!40: A$ BbP"#uV%D:Vuޫۑm]}`7eX܇^Opjod sXOωeOT_i\~M3?vqq8dwI?=ĤB7| voӼuZ9s/9+%s  iph7p:T0J, aXh !1 [Fuȋs"WP#sfgG'w|o֜Zyoc?ﴙiC)]^%^^>d_oV2vy$>NUt֦;UveW0d1nR Ax$dl>墌0BYF5@)jDfط'D!r/ sʵR9 d.t&,Mn%SϗI*̆sJky|%5rlH'l]TQ8ShL#An7-D\t[H'H\kJT͖nA`Ni5HQ* $d.19 pdos7y uՋ]ّzie:w o ,cmE6Pm#d IJ3"&o,~ZZFJq?oNX */|p,#l+k=S=AuEvad<qж Y-j~3zts@ hϥ`B:r'pō|`)9Y(ϼ+?(Os_ng<ݏed x6d!3BlKZȔ;Q gQHڧ y%?C4-,{څE6 kĊZٮT(/Lk﫹2p(茋c8]Ye A+ C\T&DhgLȺrE8*Gɀ8F(I:>̚!<7PPN(퉘,ԓM_mK\mw\ټ׃)v߰+3=14vsVe6:b;/LH:G D8D\lFᨴoZv纚Ɓ Hùj-O ;ֽM#Q_I!4N:)j t4O U)kpۣc} =h) b$Ƭчh܍&5 $ -R:\J3́qǫէ<>R ^4ݓdOp"ͪyR AM)E(O$L9x!$TG?lp;jaIɖ2\p_s W_DvSj&p &4 _nCI$b.Bl(O7zO[LE5e/Z9 Zw!dxKvh[)8o{nr=Ƕ'R, jYI\|w&0@0&Ef/UĂ ZȀpu>h'W`3'Qң]Osuqx^} l_S%W8a))]KꏜQ2kh1X惑3>ԓ9sFp",%%~އA$v4G@E#ڣ{Hn%U 臱 0͗1WPv_D[ \;xA"'Zҩ.6zܮqu/).q4Ewv&01)# ~3TgVPA+)ΥhN<bA6O%/]7j%:׉憹go+;ѾBԒC˘ zsT_3[ B@bǻ)Sx2L!ۻ*X>]|,ILŝI=lG7%HЀ _>j%Zx\oABL\ q6uNWj<[ \v^]"v'RV T 06Ř\h-R~7k%YopP?_9g:~x@n<suĴO¶X]6n7,%K”[&DVAy@P~U;N> -j\Qjuꭴ[tI%/Ks)tSigpӚBg>I{v7G ȁqՇlcOo>*GyR(΢%k|lOu6x@ެ}I1B-8ۗ%R WR.E K6B_-4[ETA>W0sYE HľnI{ FBi[]5pDfԇf\J.أUl|єCL#ߐRj`w X BiLΓ.l~1@?{Q}k $"XkǸMGR1rt|ǂBr'/B{L+3]r,0W@!\ὑvzaӿz V)c3vx_I@fkiw+,!۶$b8 ׸u`M%sq} ~sf#g0a-znYc8d8:oDg'̠Y#)/kT p_Yq;:(Q^E}E\P~=C3LoU^qW:^RF^&*E;26knHn)G6 ý?_cNm{`Xb{{fuJ;`Ŕn/>Ww8@&`&7 _;a |¥X=KrNgd^4e .[p25d(('3gqW n\2ECEIH|&!!m84`RdIZ?爯#2iԬF3 ?j:c;R 3/2gOSsc>ľwTa |nVK8rV6*6%T[ai<@J>5Qi:JS)!"s,Q#..BL8 Q% JHcYE1\I|0Ҝ9ε=dLL&(3l*%iR%ZsFӜf+Qg͓4 /+8 [Bf4?bG~#艑bZw2Yȿy]<q5v@8Ez{>ZKgO)=H@Gm Q1,dQ]ʒQe߿&u>h:Z<j}̈́(0ϙ,X1 YncĈ % =!c_źiԝrL8䇋 I b]k:g  |"F WLYBe(r7N]3@d\ 鋲XJ+DtOC$ CI5+ 8g[D2g~|~yJ/iN( =x݅kU}ͩ,{9JSg"Juㆁpm|oI pEV U/mAR1+_m\ |Drr"Ǖ,U0 `WWLbJpUeݨb7:\^~PrNk6q.X$q)hp<>"Q`/Qe-4cLijp>Zh77tQ3o[Ł,dr,&;]J~_Uv%!~:0%g:4!"(?+B89Ni{R^,=Ԃ?}϶=2(j1Ӳ=1#="N^8 R!*=xXki,p߾L}CT/RzWeH~8Tۨ͡NXl_lfFR#:a԰HLpHuJEJ:dn ,;fŶG ;εRDQ!r A?I&SӼ„9Qn4̡JD9s6;*&z*j8Ahس[Nc;3w?&,9TZm_QM-^<}FCGUtџ OWЎ~!&| .iK2˓Ų53##R[XiCJ7d kr4C "q[p#`ŒTz! T Ab{FXTDj&=!q\jdd;2:nU\ %‘.K u?f}қ<RxQF=`~Q4!!=h4r[Qj.STd(<3" Nu$S&yLBc[2 Sꈪt=#,Wid=ATxGӟ\X n5͘tk"CmpB̵78,).X!Nw,nyʥB.UE>,B?pxI5ZVEg\- G_2m|ͺ_"W E=/-fE^Cwz59'q*`* R7 }L9>mWZl¥ل:6t~}g2);O-*26K H/J_6zeoLI2yeVonx 2uc"8-BVBÌLB6` ?ɅX ߱~` 8p&B͍zw貚U_`lT&ow M䥷>o0dBi|y#B fŃ?RS̱$b#fPciv !t[hMM&jM%~MFPL0?鴏w?`&ƍ\cX, = \l)K%!dsb˶ wjKz:ddco C#+4P(c r<$6 Iv&}DÙq6Uvx&lBҾ܁w!i<z4]bOLw 8^iwj|Jy86@ p3ґRv+uG,vo˗1ڙ?[N mRT^<6ir+/Ou).Ql^}eͩC%5s]׈o,W8OUs!%OvBZ_$)R2":Sٍ눍ͶdMpmGތ[e==?V]75vE0*1 "]"?8:ȄBLګ_ *xl7<ޡ T U+ O2Vt\CsxKg/YK4 Fmu+ur%DmV.b">Һwg_ 78n].1Vy!Z#m[ D<*"23=Y_)C6}W^ݠ'GWlJ@%;J Ap|k' lF G ^$ Iu[PtET)'A}#UI*mZN/6AHOh#XyU߇Ǜ ɜ7EO< XNM/<yF k;q"tK&AQwPBzĵr)-W>ԠtXA`, A`&LaS"5/ U~6[0TMgMOzRޡU=w%}AxEXX\ϻƣYɆF^]rpc 1WtsH 9tm[ݟ,;S)WtAOA:buHBXDM Bԡ.x˕ /A@4; A`L `&aA*v_u)+U`n˹j3^z;k)W}'"ZcntmolfWvĿR^NƗ:^gIJ/%2^ۗc𴢅eIB~߃BS6QO=.31QAm^jEbY)5ͯN`.IՉ@b-U q|s+*Q`Lt"1ȁqBKEVڙq&;)Mxn&q 9ɇ+Hd xЖ5:{_O~s}POd$@yH&`TYbaS9OLTb\9Rgd7DVyy4% [8 & H"|8D ]=P,(.l&Ka_'ɒav:]\.P E@d;tبAl=-xTY #?6Nwgxښ1(/MOfZT9AsJƑ@;{ ȏtfpp&L;$sW[ϡH7;; j^haXʔĤ#{[R¾0A4@=M h}f@r &,%-Fix|iPv|'uyV :Qi-O4(|1g:Fbh>$ E[O 0g?>dkK[,'ˣ!J+ ;RUSժZᝏ! k K/p/ UmR6qF)g40vSXG`U70f8q̔wR&>Ro`}Aݾe; m8]bg^QGp!2s G/Wee0S|UjVfV T6\<Ь$ 4|,QJ̳=xj-)l"+iq?gV{ <ǡp>09R]dISs\̏XNjay%N欤:kPXRQpH@t%Tt A, Be;sfVD_ʲ2KȸyL:^6.yޱ|ۣ7؛rM^w@$nv%2Ҙ2h^훶w}UV'?a4!M`w$?{[32F : ˱]7)o#=Á!/\[9+M\qCl[3eLk:h+;7: M2ZZ ÝAh%f7ϋo˙Z#e @qE#-+CSa==Q AAI&S=v$NNNjm.UWHR gfT 8m=xm߶ArH έ yKD֯ڶҎk^/!%'qZSyp9i r(Z[ڀ@PvZE<ŝ'IUD秶@z{j&-!'LEO}O .>?(a*p^dstZHF| A*lZzm&*UүaRW@ot:Fs8`lTXJ2 IOc.Ya6m洲H9ewkD[F rpcf^n l 6<4uj1`̭èvn!w&-S1PZoН!IP wAZ;&O ˟/6I4KT&"A>OY[KxmZ.~C_$uo*ka4ێq`Q 4_}.|ɢtZ0eb`%]ؤ 46ԨJ7A3*% ;x]\FlLi/%%O\lv6k7U)PbWKb Jފo'>F=*1=XUyc1\G*t 5Ao <}JRJ[ZDzsc^gjKB\)h*i;sPu&6ٹ.B .ymY&[{ωނ#O9 ~Vևe4|$H8$h|&±Z0DdfO r1<Qw{7-[QBh ]p4۳ttj΢ZŏPf|ܰIΜ68.\?6<+4 ,0Wj?7wzA#&$SYf5Gq!JLuwI-YRy?-v(ta9?ၷI_qΠEP6-WF  @I[\vEMZx+nyo]"`oM_!7=ZK{al{ |_'N[mΑ]Ɏy5Sqva"Xc8Nc"TK! ]DW lГ)UPK݌Y? *BBC("~^~U8uXte|vFrWϥ*^J|VjHuBiDėhI*3$uD-|v]mHO*,lI͍!x<'2ENÚXr'nUͨ &"SS(%seyXy$(<39u#R&sW~yͲNc%Z@I@p⥊LІxfX 3Q$Zaa_dI\Bn$z$skI z&S3FLCn]2TXCFcǺP}7UX:8#^^-&tXLcnO&(erײGzs3b *'-Snu^$q  pN 鯻U8GCzH% [j$Ӟ f6 Vv_B l8Cƽ߷^kPIKI]etw5[yɤG.(_ n;_"2)K(eq`&YͅO^ fj87DĬBnw}&]iX螧8 ri^7V#1׻bXE>Q`WQnؑ6$9㲴l?8# e˚b$oq:9,N`뚐OCx8rL+ce7y_<6oP2ʨYNa$ c\5fM7:A#95*R1;bb?_hOvoAviV;)?P,P))T,z{g0|+ a<8HQ*ðYw(.){b]1yĮqG=WL[= >̠4 &/&LYF ~#iWV[( g!^WvΧҰxִwӞ2Mƀ,#ڞee1^l|۞e٬XReꍾW:kܛGӚִcwLr; Tg,\f­)'$NH ?)RĹ-СbcFXX"Q{_oZzwR^ e[;=-p wh],=yyS. o}6&?NUWmsΛ~N5#n*LT\z`\ z-Q\|J3ͧ{C84j& rI^ ')3_n AYw+,$'XxL r<|HNQ.,4@,o 8*PV A, * !0"7칻ҥ+W|o-+ffL6`}DE\yq#nޯ~SջܡGo*]$?\sLx{soZTo7rP»\YKL( OLwxI!40(p $AcI&SߦT1#-Y_e"٨H[Zk1 FmIO,$.hBQ^j: {oE^Ě{<4itTBNvh WOsil8@{Y4iV\eyIUG킜ړS^9I&;Z)`D&PaY/VuKqmoےh|_`]>Ġ5~3! 4V2Ts4,A+ 983O4wdR<}70Zp N/L^S(^)3}5t` i*YTQ xwTp6I[cp]2P״zò$]F@5F m<]٣ɌqB*jͿ#ut9{ejWtL Y*Wގm9>XpQ4sP/ʧ1md[1Ru lg|qv6PTB!L<\5ѳYS$hK 9`Pez׎A`om/%ދ `|y^0]2q@[|:%!sG& j&o2`<6~ 1{IDGX2bF|Rm}if@L kN;pFCFcV`;4`ơ%x4JI %@_\,`9Q'dǃ% {O ! ח8H:XޣSZMHu!np,(X/O*hm[UU}y9 7UU!<52E2J:4+FmjFX;Z0wM,\ܪU?#uFe#v sP"şO=^*=YWִ[9Sʨf.h޹D[*) J=I6!/vR9lZAAeIuqDZv&>N~Д ! "7KZ3#U;ӹs420Zt3~W] u.K+^Sۻ C>wA!OwCkth ūk;a^dm^A> ?!>/<@B*t]șN]6&]!Җ'/;o]N D (D7\@!XfKqBY%4UahamI:vcB^ Rݓ-8+)N0mm,BpNoo~K*5ӈADSdw ,yd#jgrN9h'#N]S 9Z٩<-Gv{z0pHDʘQ}Fiw.G~eV7UW6VɚNRIC`u60{Y:J:b]+{mR^ :H*)Z(xm mvĸf-Q>TІpNv͇ۯYCv s[/^流Y#;| (GN9:p rx^;3qUkjQ[GO6Tl /5Do2{6EvPL+nxm @gJmNT#גKN⾆wv"c'\V3 9ŷ5ѺFq/pтKj_wϻ`A$bS5)S2 䜶tq\i-.骛a^/Z \ፀ 83GިerN "6\' Vq1$a)'/ӹzpMK);?k)z]D,ِsHt SW+lcHw;DxHjё?j} 0}G A/,ͩA;㩰Җ^x5y\ o[Lpv26nCONh0Z=Md6nɡt s}ssEU?5ZqlEPy@2ZТo~HG@U펜?F:\v14`Vz?͹#3Ft / ǩEE6q<_6 :6ͻbEH<{A5b0 ^*oǝJ'r-V:^R[JBWz^ \wݢ(‹' Boa!'J+jTj/c?ŽQ&NCh&}?{IBOD+D@Y,O_8l nG[9ErXގֈsƥ!3Z=JG =!2nbh,7 @D&!CEVmUV͖;k{\n6%0=8^1X~峗-ߞX¨꺨ot2t('o}X:Ł_1K_%8}U}y.K;ap!xP jEWܲb NPEu3 9,GFn N}A~L$}pKku(4uk`XnbYr01 OʮZ}Ezڃ2m$Gى[4sC;+Xд@%.@ya)Clj>5jʇPU&̀Ǯ͌HbY<&[tvb6BHPڈ( Ξ&okΌ,qy86fNmx3Nzf-K%WHy޵O6sΣݵ,fEE/P-Bkx*[2I 4KhW(D"]AIHDľ `t|R5!$xL곗Fm.p!~[yhHQiwӡ/{{ N ew(2)-t:$< "Q9 )`C- zZlȣO׊LKɌ1k:&xາYE;d;kÓ"x?bDOO:5b${43ɧKG^n{gkM}P)|bгHּI/`s ԯEGS~xS'XzFU+]j3Ь7I?|7D \gĈ χʭzgV~r圹+溜VC^ɥN.Xz^7E}! : :VI~"yqmOD ή|j"r=wwW)V-KdGD/v`PFّ7ͅGy}ag/˽?>BM$37m9g' mKh/{Mcv&P8a/Mf* *gO,nS1İ61.!|fy;sЭ @ϩȪ @)Qg6VZd!\<]qBT^3ȇ40b`, ( "1 L"'&n珯|A<|f/G_[ڝ:I vy&~cmBa4wȹltзwǮ^Ov뾃.[|~ސnvSz9bXoBYCwXˀUPR#U;,0* X0&`\(" BbDFswRKu<ɜwqwZ-+?u'߽D5g ~_{66ֿ.weIԿC~](Zo5W.=~)e gU:JuS"Y6 8*Kih<3 "w@F`@`p AI&S<\H,-lz]= B0rRBz\>5>Xf\WdwJ<oZ| :pjq1&:o)-FA9 ;qYNCq%dq^kL0W#NdRMOq2!DZ.we]+ dQ7$vϰrT Ղ(6-]o^}9VZxd,l\&G  Wg^{jM;Z \X(\GK *(/t=cyUfEz}LLB-?$h;VK3M>ɸQdyPBE7Mq>aCp=eL! SqQڹT82ORv`F"}6En6z7'O ~%bP\sm@Zcm 4؝< 76ϦC˟w+֞ixr;DVH`SPySuFPF lMJܶV -̚_ IScVE,76igT ewDl]py3W(9M|6Ȃ#vG$)9WhѠ# 8`?؆-)FE0$ԵU#[)ayS,I _]Lm82xUyeР)UYB#พS-S҄A2q&$d!&1؉|_Vڃ3Y->\F{g1_'V3úNwm|k`GŨؽS# KyGU"`T!hآM:prruuv)ջ{F--CH#VIc%̸({^:vᐌ\ҮoTTֶ;NzQu~$|E{1HO~TV'?ߔN'3br !lw.+6eIkƨ.B]u9 \R:6e 7RkalKIʆφ,xZpLnH𠁏9ٝ&x*pⰚWORu9JgyCiMIS=ZXQ إ&sU)ݷ!4t[9KшՇxi1REusnP8[gE۪Hk|ܛJ2)-,,Z&ǘ a0ȎJb27 YI.Z?êSd85Շ|dO3{Ԓ;({z*9|r%йқ`T & ]xPZEUW{B"4чk'K-Ht&u. |e^>q,nK?2f֠ѮIbznu÷,;XEK XRu;p;5r;/¾7φlgXI(=`#6u'(ZЄT^J0תc7~t =+)DO_rIbH)o9>ꖩ\wzr~ >@Hnrd%s@qdBiA=Dۑ}P&ߐ?>Z 9Ob*{%=NܙvӍj×:%Ҍ` E8'[<c7MĻv:, B]biPHXZdHdz}aC!e޿~<O l}֙_~sfOoH/D:80(uTe ֹt'3)LJTB+}t[S^V M0ɾ)y$j!0mg 듁4V P*#Ў4/̘X,x:m`-c: `F [`.Eg|4!Qҫ "OCG}5cH:^<3-›6 ɫ?IDfqwBWn~a]w&@ kju.Nx zΜr+jt8x>SF ѫR r\pr#j݋p΀.QmHz֪q=q̖z#A7O}u&3w1/|BSuLFDe*3kbpYG$nyH͙yDޔww] {JՁԹjp0C:ɝY+b6u4Md^,:]suNFG#-'I!:sK#2Ɇe(aܬzui:c[ lʿP~7Ɛ;Iȡ$-i)_Exca YQww lnСSK'G6t'z>!POU oB=m7p"se㍵=ҡ+Xߩk Y46iQRTY [hܝTx,M{3'+G fOD⍎:t(D`L BAP|®$ֺ[H\D~FeشHʾg^-SK٪TyLjc[رk֥zeL[;,::U`[`V:Ik7:q,7.phb+ F=#&)Oa &wjB@P4=Z_3"y$P5e[Gnt _Pz5ɃE!nvҝHwzIt5 Ľw`n'+vvy a,U0V~ Cϴ8maE3=0Xkֳg+MfLM`Rw lyu5$]0hu)p*]*D gӛfMq(z6^G*5~=H|;@Nq|WFrQ~e˰Y*؛%۲EE׋䖘fcu3^72qx*xrJp&jUgn6}i!E)׳;=oL?0/cx r!oö,A|) PL2osUƃB֜V%8.'XH|Crw (bllVz{BG#z9~]J9C}F/)HmAO^ ;.w}xםb *]phj;ȲL-۳:NUNᤄ{47G'Ԯ̽ӻK*V7,>LsPͬmIC>:y~;Q7Qie ʍvg{VkS`)8A9K(AxPc:!BjOm\D ?C&T 뚌F ܺ9ScC^%X*?/ I\oͥ) y:OE[R"qVjٌBnQ ޟ ti8Bcn^f.*zbB  S( 0Jx|m6ZE T аku5R9Rris[/N_?x[\|j*-OD#Ho:R=$X4.$DZ˵C_38b7Q )F W| a +5U`]7@]WaޕMĮ< e'-isHZe[n T2ɹgvlSFPc-m̖7Uw<b)cu:˰b=n?Ϲ۽إ(xz^mvZL8 n7Mߠ1*%OԣuOxJ0bo/5[r[;M~TQO)0n۶'l n)a2R2|Z} 3L"I5,4􆇢8kzpͩvc IA'%;L ,|U'h@ج"a /"9\:^tyMB6o:Ihuqh q䇁#gfmfU| =JXᛜx&oX&49]GksϮq}^}u $16]o4~^M^lS1C)E(xݡ2Kml9y\ _V2%h#k< ڊS:nO?q/esAu ̀?%*1Y쏑og>3H<獙t@bCO.ǼD;)K1,G]HU*Tf j'ʛŒt7f>cI0KcRLƻ阓`Ո`IR;Q$+Fk;nr8< iT# ]bht#@(N$-J)m8;Up"pON[ɹ㸟9OY{~i:ن!@{Ĕ$)=&yg)c=AYH&]0Z)obʳg11mڼ#dIδLW|lE_ s܂H%KBV0T՛Q&Vcn[Dw(殇XH6u r|o{713 i%!W/(gު" 4VMk\YW)4^엁=67oO)(CKNm)D?ӼPZ0(5VK7\z!+hR%a-n ]L9թТ^03s'!VN4.2<%{sw,.23}gVM*^en ϢJAwn=u~4 AQ4(P"|7uY2>ؿvL#Ӻ\UZRjGP}JȤ:AځqqRԧ|*F>/w 6 ֳ} N`, },~P Ɣ D/(0*&Tw @B4( Ba B0L"3.\U\3{Nkrq5>/LW\[;Gѽ)??'.Oݫ/zX˩8*d/.o޾EKC1;@5|X{ş4KfJXQR0 T `8jB EFhW~5qYfzzKox`oExX%z. |=?\Ȕ)E8tdDi7&^ǵy QgCԧ 9ioj`ر%OlJnHo PB/'HYu И!fMYs (|4D~FBHJ/& RYWͰ$O/XgJUiKVӖSbUp ڪ$eUs"Os ><:d!Q7!d~'8zUo?}A1P 7SO=O})ap;jÌ]{s#RE_cnU$U\G=Bgr-O ԗuoc5S>eox$ɸCn'/ vlԽrmO);_B7%(ȉ]sPvـ/PtQ:/)$s/9a_t|Ϫ'^P'" r#-t(4_9%y30@lgȒB.JxSU-f .?H?`}Aa#?q-24]54T0(P %0L"7Y̺dozgkcݣw}G/wf{ߩ~ֆ~_@#v\'/ V#UimbMPUcAhz+8jJ>.R)9zvc1E8*;>{raƉЏ1<eXD+ ;G ϖ tVOzZ(QiW\T4[I~cw:|m.S: V Hq{d!J>S'ѡ~MpWTjׁ{O٥!’8c1}ȩE*AeGY(._@- 6ChGP,ׅz[CF\$hκڔ2 Yt%ۉDZyu'(94eqd?h<5 BnJl"`Nj%>Z##n L>TK'].J37,?ʫ8!ځXSƳǚ8Y(wmEddO2ь{o=i,W;Ezk:@A(PGO\=2Sˁ:n7$1Њ'y5o8-ae~-]+Jw:-&v6gߎu6A!а8cRt Aj@bJNA@NQ:cP8v$gN'`8Vkkl G=:TpFp_JD:'򔭎m7lL΍KѢcTES;:&ˆ˛C3 c@D  q`dC0؋7v`h?!جlِq"9\ˁR0L1!8s=AA\_nx\JzlZ|GῘcA٣|?}׼)R-\7yccu,WG\̲R^22d-4\wC^2ll]l}an3 ;lV M~Qfas~,3Q P)VoH<Z%:#݆ CS8܎(+ޘgUճ*W!bK*N%άjx԰&75$BS1u51W$7~BoeQ7|#絩5iJ1qLl"ww3K"%(0T[ӚxZ?(k5ZWf`:(,sү^Evkz(Oqꄺw(>LvnHe}MrZe6Juλ2poi22#djƹd#I|-p۫^Џ_B_J)kI?mf\Dv;4IT*k˪86٪*AXD=5xMi%*',XL4quBB~ 2M:rmz%8CL0$ ]箅ϠLӠ8),QMZpڏKӏd^q׼[RES%u>!ݩ͚â?e|žϼdx֚f-8]}/@xmk+l35j><`m^,0GԏhsϾ*zWUNg:Ĉ͟ _k5u!,Xc6 *W9HM} &n(01,/ $:C ng`ެ~gMp aq AI&S#@hueFXxJ?vLht*J"f@mDgByȝ Qkjel0ɠb I"F t|SOAh2 uIB5 \@CKZ2}d4ߑ 4_'=HI(j;()s* @еĬ5`P-N/KM/JvO*k oXk]@CRSs 1?-? l8QEkp}o.1}m|c!?M?S["eVr?1` &`SAE{6-8 '#Waf;aYMOTiB+dր':N,So,o&{oPVm߇Ebxl+m|c+4';y/QBw+V!@V6qL -s"+O[OKXHYZ"):tZG.7vt(: k:C&.{=WD}K NMSv-Q҄jY-rlSѰ4Y :7IB^Lo\eѯ)]mUfa#;tW/i N|QZb3Gap;L̨J6{3:Q+`T9Wl)RtV"8n7}GO-cb(DrOq;ݎFglh2~_-b&k3'1):ESEҥ _=MRDƽQev 9A7yKQ1QvwK$lc8F^b?dJ|EĭmPTkB7"v{-ğN=Wz<7w3=G-̬E\ !g79>lq飐R;)V0kq|/Cۀs6[W63DS a|/H!EVHY$N9Ff3~q*lY "׿Fυ׶|Jm NA΀"鍒$a2~} նcCSE X / '3@gE|9KfrrF.9%79h"qM` $|.J-LBVךk+kcyL ?搒#a/vGq "GTH Ϧ\x 5gӬ3XK(h`esfr y^IʠYZtwXYOTh,#\;)KfG!3s0G1ll˻=PSBMFMȈ.~N.>OWw;f@m&r7 턭c4) r3$CL Ɛvn0@~>t5`ڂg&E}*J\86dW&S"hl=Kb_< (8b'*YL SW_2_fNpHM z[Յ _HtrhjVS!ZM },J0;J i]: 9m꯱%PRdi 4p+EĦkW*c=_8"cS])d({G'zD JG3'Q: '''Dəq ?ƨIM-~E_dvr"8_+ruaVPg})BA11:VRoK'4)}hAZ* '-aU͏{[@Fc'$I(PƻTD)qQ"6f`$jVGs->ɐ @"0E2O7ȑrؽQ k*@uHJbyN$;%keGdj'j4?< \72{YQ={+s饡&[%7M)ɜ4 %IbX&$bAh`w~ ';80Y"e<"9ѓ7:s]T'~ ۚ9zӠ=*39շڂʵx>ݴsB¿+[v_;9.!nyA>l 01[D9{e,**t¡?txXX>#qX@ݣfBi;i+ P1EGA6>xo>V٦Ur`Wg!sR. !l<|3JJJq݊R4`8Q^2XI͍S isʃ0@% L X ƍde)Dىwah&lř0%;|otޢ-0T^VF!3l$?!A\`Щ=g+X]6XS>}!bUx/iT&D4rjWAңof+f1i90h6!{+U`>/r˔\RxѐeJ] 4_KE,t(/2L^&[>z"2x5Tr՛D1C 2VTV{&Ґ8Ոno~!y`ZC d&-'žtlԊ\'?74-Ŕ×^MHZ&&s taw(ik`!rzM5R(WڒIB1 cؕͅr {6??+) =O4v+ĤVY W[O)lBm|_9葟Ή3Ot7hI3sD3ƿVM*IPOtg1v&[NI@}a\QfqLy :f8فH1ss驚45Rġ9i;Ej\y?31_hqّiِCȁNGlg)5j_m6 ;t'>qb[ AҙUW9Ru9;? o \=˖"A-4+St(V&3Z:2 q^_7~zOr My00z6z|#R?ёR #Bu!lW]?{jQ~Lk. ¹C&=JMHkJ*ظ_/!]bþ%f?vbVW Ĉbh)TJTwwC9 3_i1W*ꔎ&^#,Rl9~Ûr9 . DԅuXBT %}uƍ}L3K !d{}b H,Wbb6 7=.bBMw$SIe)z̾Qy>k˩aN!d8XlHޏT׾bQC,)AQrO LםPrk@[$z]v"";ƔuS80fIfbOӲ} ޜKi &1΁1O rJ n:񸠩Q=UlUu6 m@%_4^5 LPA < | '()"53&&k' {u2/e!lI,׼԰SQ`.NÛuMQۺ<5Lˎ"vΐߠHKF2H>O8~G&aɩE{m >qV <\j#cJ`w!'XtYǤA,tx3~+ΔCDqe5L;)e!W{JysUx*%'Ӻ\4JGlJ:6H*[p8,O_n=G5H R_0GvߧW.qe2%pmsUȜm l063U!N4Ofm|; N9Jʋ<Qos}55QRU&`F+0Pj33mG&SЀĜmc%*e^|GK'^à j>3eÕFM8}ko˸_M,8^z}E1IV),r-ë%r3fBf5t=dfEQXGxk N-f6|Qf h]^|7ɐQhmω,@$(nT~n^'ZG-@,ݧz3ed=*jBmuQT(m?yh QԻy(6B  jf;v۽S8t%U8Xaّ3mI/6Z ST/MAM`-^L`U FDG^">>~ _ŝݒE aAxdnZ k&3\nI |\{acU[aDSzn26a@']=ގ˯˫ 7pNLj|w)̑6?eIxkl 6kbؐReO"MySrg`1Tpky<%)GE'o7/v'2T$)|N0CHUSA:YtӠc7~Q%fH\, 0mבw uxB߳;T!=69|*>oޞg_jիs0K( P`i0젋|mݒH`f J$l;Bh! 8E.ve9YY Cb"u^`;IV4y*~ZV?l].~9=&&*;$Q&Y#,QRVca曤J,h[X-XZ4G+ӘEnUG U|Ԍ~eq*X&D8Ð P aŪ脆D &_DI˛(TnI'k6 Z Ղ=  Pe %/XB"]ះ<3L )ԋ1<28wH ˷x*ü ;}%` }f*N0~Α,85.%"~?w;$O'H,*tXC|j'쎂N\֢ȍUjTFM7v:%ǫ0duӏ~Й}" {3ufPL;«DFvFn޹`o28ƏHGyr 롯 +>ިa#+L,<wVhQ;Ѯ]3#@ ךPɿ 0" ŵRbx8RPSnxqlyy >l&3yEp@O 1ٸk_O4}F!0 #mcf>$L)ZhmLk,Z@^:sf_Ξ/j}W*H:IJ$G^4I4$t j-Q_܉okzl+6Aa[6wh';6R{9*;Cb4LoK-? Ca\o&Y:xv k4i*6InnAzgq.S`d5<2ygSZxKeAi'1U9 X`5| y~i>vm~\u%pUqE9Lقs qĘ RMuLr[ش=[> k~C3Ț!s{ f5\exhED!7jdr3a}XF^^|Gn\࿛JlH`Stgbp-sXA6h.mbP;+KODW jC u 4ξ0EXoMW6\[3K~EQNQ[|D ܟWj`p8~ \ )&@Y6諒;| >.=N@35goqZ|1#+L;-UÀ;bY`k;i.d|ՆcM: P1` r/إr ^$#f> MB4FHL$yDCS%ϕO \T#C1oZv;;->g5 {Mvnڒҧ ]Zʡ3aTfDI23K]gazBhLjDRQ&J]'6 {# 'T:pI w_Δc?<&F@'ȸc>0qIM\a2 ?ShX9Of\#~xjMTM:\O#zٹ{@{Go&d; ?JS Qn)N }pמ 0Z dYXի K_ K=tdp * D#_ r T> SGŠ/^5M-ӺKʩm|8GU9 V]UptCpNu?Gܾ8~e\MA^M^+ 77 &Y7!¶5~sSZ[z ɳش-B޹ jL7aڼ9|&$gJS?-dR!uGh;g=KfCT9\tRWRKI Zu# (v{0AuCh&hQJȥ!Ce9oP5:G%O@eAGR!VL[+M3Xܣqܧ"=" 6h*|Qر\ M<~vglLa/8.FJRT}cvA@qCԮk9Pe:.NL 2 CH%08Uu.|<6g;^iGv^i~ݗF=O,f&xU^bW6e绿fy-ggçy,qk2['џˎƿ A=2?V.w/mK>#FoУRsgn2ʢX `g@*@eF<TA` 0"w)W^j|+Uߝv}=!n͋Q$˽2/[+y>ݏ뉶4].>/]Q:6bE܅9Tշs 9iMTf<,_T"ƣDx&>AQ1R>AOI&S<ߪ֥1t{) H`̒6r"!d^' <ф,GEۦ4 EAӞX瓳f+ +Pj) C-+>}Aʘ9T_-cE#<%z*4h+վKY56h#Ĩ>63@( tVf[V!;N]B8a@=iS] #g$i03]lͰy}qݯVãD|gwu3TJGt4]7|SЙy9BϏlf$ `gbϊTU=pVh+LjNO6߀yfk@E:bjE"x//윉*7 KmaEB%BBh9i48!11!ae] Wr焜%?^ԬALո,]#<_ײD}\"8QO2{\;\vZu;_c ;í}Ow1k\'NYiۙ&D4)`ү|BvPfUXGF+nD R(WH(.sVr [!w=I;81̆jg, W@Ww XzD5@k ;" E#I}Np C6?f ;majVA C8lDc,oȮhVy$2E~5X1Atl띸6@KršS,<вow(١vB'Ͻb̷{Rc`1P"DS{' aCuV%b^ waUT-Pu2=j@a Ğx%>O vzk OZQZxrn+X?pO{\)sQs>O!Ctښ(DpmNf)4ޞ4cFiT& :ӏ(}\{r'TM@/s} [ Vx ]tW$E0P zq+5&1X|]2JfG}dΙL1)CHB+>^@z{ El^w5g\Ȼ%skB!;tS͋!(P%+=FB+0}ʝᲇ9|{,i{i0|%^ZVSgEr:є TE/<\a/)ni^1Z֊`5}P5宍UN@kF:? .a9΍XP}ѧZAAf"#kt`G!J۫ I{w+Txd7̿ӔxӬU V %r"vϋtχ㋽N<6h(q!@92*9yX0  & -{f߱Nul>BA"jq&wUj"O7zIOφ aQG闊lKh1,hl[KˋVKy#5,?t簴'oQ 2;79_!*lELxS!6tH A`l%bEyV:joZn.O#cF:tzŴM.U'˟Ne6AT9[4{qY ].bƏČ;j*:ڇ\՚GT 6 ei^y`z$ye]h1#\0%0PpPnjDl/SlV(P3)SE!PipQkg iAZs!!T@LlTlZ(l`Hgdϟ v!jP.±8Yfhe~flMY݂~ٕWdb?_o ȉC~Ö|' ߢ cz*?2݀p \TҒLin{Hh*ɷ{ڝO6aq UAc`1KR;U P [dnkҴmD|N(/^n&>wY~JÔTjf\́,oK;ͮ.ݡ[-Ѳ<뀃rCX2zo|CVxHOրTi7lOFR-@2~@zz:wX/hO+;^.;2*$[1;1pu5/azeB$ZDtpC_c=RQx 9jmEvy04( BP`,A& (0gβUHN^e38w{6oxԚ#[Or9a~`咫e-eد#eZu}|hz٧?}=}̓!G,-r|uN4*{i R) #XeP:t8-AP` Dbo]ժMYύUvxsl]ið; U(_ F6Q@+_k.>T˜!{t4YV,:RO+L;=]5.5l+_`z@= (7\hVaMBQ/Q< [ApI&S=}2fLD 4ؑԝPAE(ez/ۺes2 P8r 5 H{SBW9ODQ0Q0<ڶ<+̢k(P- =.aُ<屄~Ǡcd_OX=(YND"ao)fpl 7 ށN4&HSÛ,-@)X2.v)˓w{Gnܫ6J>"V2[I…GB_JR"^pp7o-a g A48>nGwA #gK^_ : sh/$VL/nLU͛5[*EsǯEjd[ >bÙLwǿkpӲQIQ6@rok&"8[@Zc6‹OT+PCZUA{| rSV5 B#sRac鄓OE+՘{ψ_[{0L?iێY[7|M?|azV_&i\@HG'/4~2uPzݏ|0#g ;=鴷ґɬ'+cv=2bpKJ{4ɍqo?r20QR(\ pAVaD6UR_BUn<ǗAcHHK]Gp (O~pħAsQxqxh_،Q* hc&.6rbbBDs:Z,.u'br ݗT ST]Xk7vhn;0}%Hq]g˥j7")۴DyOwKo[sT}O#4yc*W"U7cV|EZyr&0tT?r4q'l˩"@1-إ ~% ='&*!},[Dkjݣzj0r,qoTuE#ghCvO 3GѫRcQՁɢb[3i hh{չWң;; XO mZ˄s : D~r7Wvj,fQ~B&]5Ir`|); T榈[b518=?TA8@T ?Y!VL"e#«5_̖tIW4'Hs ȏnrcSƲ@NkEV̱ķNcO*ďU" {W=MPff *mJ%KT>[/uo@ (BRMv߿vB܏4 a4;;0 ֽMp"$6IhER/'"E<*I/If& 5YVK?A>RL<)NTʬ[jyS h6 f"!Ʈ|בOs3H d&u>EY+Y]0''ir?L^<ߖX~<6ֈֿNp&'e_eQQ_Ԍ܀k|K)c?g'ē>$f_TA.BDD+P8 AAI&S=xGAS: {Y:]Thؽ$:Ħ]E5uq)̧Ot1Eij$SK6kR{ٍ [ҴF'gɔpsU]j$7*_t}GbSlwMrcp`.8^Z,Ël-*(ܑLO[mu]bW2C-ؑCH䓊f̦ Z6''-JmW q#d5-w E@(y24Z{tt_'ы^NCc2ztLw>=z8ö0-j}aEc! }pߌpߍHҽP,J@>rCl vl%)U %_*wg} SKc$3)҉ |1 }X(.Hc]T΂yї;7:#FPMSXe^GNu]eMWZtQF fU0Z=rAg }SoPV4Q |6۶M e9 'N I u&R!P;2V86b{JڡLp/ʨth< E6i\lAS7r>PI0S YKަFR5GH6JB-h kPd.2}ms9 Np <$,xOMYT XGXP DY=uovu;>Xfȁul)ҨEJr%4ꚭ,\x9]?%0;yԄaq5Pa;GSaSFoʷOa˕Q~^%͆٦|lWܑOGtY(| |V{'"U۳sniX` rf2;:/dD+dwX3b3{Gf=l+W2Y}OQ9mʮ?d$Ie8l_,>(/}jxbY߁ATYΚ6NC*jg;PS  { me%k)!Km+WNH>JI`^OKal "GcY`%SFNҳ"xnB6l7FSA12O Vx˜ӺanxjU:#Č2d)>g##vbkɱ]7Q\*_#,A//58 "hvL-oj-ɰEvke{27M1%ƒ.DȻ,U!<|47}C,HXr o]M4ۏ9c}?Ǝ&OؗL*6g57h\c֩4ք.@d`Vz.ď~r,zz$𴷤ĊwoNM!@!:np%uI ,C<</a'X4;8xVqMa`|"rf:(C !=QTtgybжK!"=w/G:3 s|zzxj H:?0?hLq{uXsaU1<&/w+TOExd"< ^A?%3 QA` 83q:P԰{Xmě^zX7H+9Ƣ {NC7%`wFfhx)X@o1g%~LU#?i"D ?`WAk";wE)6a Jiy+6,'ZD `rñT|8Mz] y|Ҙ'1]P aD@p7%pI!2MQ60*0: ALB!09ݞ]D7y{T鷼{s6]m 3j8}BUﶈVr(S3pE~n0%oR(hZ*e0@90ĨWM. ?%23#v%_%v?>8P` ¡@T"$wݪф^淹Ry<}xw?l}\=/jn9SLνPib~Dͷ"Oo5[7o/Nu'fu'$Hvc@ Fݹ[%By(N|] X@=lAx&njMw%RKgXR\V=n8V_ɚ!c'XG:T?ڐcTZU'\NHnA5x3]n^(E'Ƈ)mܞ[ws'|=9f1Y#w \c_u/H)2>k+Z}I|ӱa+Sӫ9WvP'>BfiRHخG/u:3Y1Q j?` y39S=J!-jIRELi34TA)Űxy+K`j#@wT4S |5Zdb?),T. z( (@C$4ڶ8c:,Kh⽭1LʱU+QDb!ZG x\Nnzlf$TchFn.3G|FSMO߉Pbb<0<+^1 $ʂC:߮^$& UP*'11wÙBz5A1ZzS8gw)}%A.΁[16 2T3OtRW:XGVwTۓ~ELPm1D|4T0*$X` c&#ߕf*'I\fqG3):2on>arUL~22՞Q󦠉ouvZrQjї $FOGF()v>zo#绂.yv{ؘ '4l;[kF2Q%W.69QPp =AI&SX}VQ%>K)vZs Vr ')3_Ɏ9WhN0x>%}6y-˖To:Kok^L3z ۢqC_ ạ(wJ괭B&3N=Oas^Ux|ɦu֙&x<mbgڂV>S'++\}k + ,ŤcܻC%B &6qI  \&^ &iEBr; ߷9@013;\0{WzZ> Ɂm"Ye_qxln,{m*"{TP$gku$[d~ϳc(К12.0TAR7-LUKqZgW)sӱ2,cYϰт7];xOukcu_!a Zؐuv.nH%dh ᯗd_{bbz6sEp{ت{9/k_FFѭLgn>M,*ՠm1zuC,T.Ol3| 7(g?b֮;/[-+$~sIvU4-iu? MV>ZY˰?$ʤ[9 y<}ZkzhT-Kk]X_Y уdhZPu۷*K`k{%Ypf=}U'] Gov)O肔:Dq 0t6ӿeSfح .Pocxh!p KQBCUzI}6j z&. =޶| 7\sn草F&1l&,",|./,,NkS oǔ,C\Oulעɢ<1%kDjqC*$Bi o.C}Ҍ܅6cpk0Or. cY.XՍ{ á0}Ʒbrc^ߵ( vt@zC9W6aYD$}4='{"ۖK<<7 /S~7\_\]1q"d8p'{s;  #v8N#)Rwuԓ '*-k9Oii%AfV &kQD% Ocuhý1N|_I#ziuA۳iSAЅj_rq^jYs`H( cˣWpϰ r23pi q$aLv3K٫b_\WfwZ-ûk}d?aUݧ\:m=žl^i3vcf/Lgc23l[ >X|xShI"T>3 nJ 4?I^U߻(gQ5h?I]4iMegpnvB׬SHX}Cf{@r pujM>o3C>M8<{K[lV'6$U$K@.n`HX-vOf KCuԻh'٠gpes$E+d*,!7]!'2a2̜xQ.(YOG;$oy37k1'Ș Sd$_#t0zlOآL3,R`X7=K~Gdo|@V$Z7bH0HCtX"S̥ ԺJ9/XHe-ԶJ\y)$6b+Om hΛ~ew Q16ڋ:?p \K"s&7~% @Z` blE7qFe=@)OV̡)@A7cC?i%CՐj u\5aj Ō7kLԇ,~]^qrhM_n7SDktsK|k]^p#℔"ix (#b.^, B(wQ@n1KY.|lK3PX5GV.:2`X/O"=o{픢)EIR2^ Hfu&! +8#,ˣ,U o*wU~½Nnq?Spa| :IU/Xe>I%D!8Nʂ"ss%&VμW,,.`HQQR-}~W<<H$ܓըV@, C p@ 0AI&S&mgE"_lP Ħ5')K+t[>gX/nM̅GSG]wɄ@,VOS#I6GNUؕ"l~!ǩ \Nnes*p]~ `L:ܒ2+P1ML(ZϨզPt.qW8|gDnq7M!w!hQD  Β}J̕R"TԌ޸ehO&MBfP˫quZ!a[ 2ձF&0Lnhv-nM(KKƏQ>]} 1d'f3+0ū JL+QBֱ͓O+Qn1A40-'=GqZ:w0/Q@sa:Dzg)ŔM[Ŭ]" ^2,G;Y()οtN3g3S.q+9=SQl=nu4/ d!=?mNLБi ̑sf_ G\8u}RbYgy@yUŐl߹@Sv՞^a"~jsfzgvSz`ozJmy-uWV=x K%qO@B&b3[(QG#;'*מ(]X+qtl ґ. =U:M2gTGB] KƏGV~]Vi\ΒRJ |>1 N@іLFyьıABڒqAsߤV+>tl !IBHR!)JāP.JGLϠFd5a aBLKRx ={aV^߁I\fHd" FrYE|a6&靮@[r&Sq,̈́'i\j&(8+ o"8_},J<;}4f&Z<߲2%"FՒÉ8b; )*kXqV r ߀n<(m#1@ֺqM Y@wNKhII({Tl:#\a7T8t3qf1ÏD2YzTaaQz]]D~k!Z;Rh28[ |6Hԟba\81褷)@16 2'AF5# 5 m\P*F4W{:ҀSۯ d2K| jRašV}w#>~(i]cWH:TM~B%:H]Eݩ!aPA&2P'RQZ26U ,.ʂa - K3&݉c;XK&)KW2 <8Ti@%GU>m¦GF?1pC]Ɂf1<4G&ȱ GO];)-u u(I](>6U+4k_}\ӆ "8* N* hkނbox|! ya_@1t暼>2]5߅Ue^ubĔCk"z&Dz|ksfH}o#I7$XyuHeqH kJs8jIFm/W&Nhݷz|3ItK>w~z=ܩ;[tJ.mRa_c@}}#q׻럃9L\ ӐD <Ԡ%AP$!Q^׍k%^/j_.u/v2VZO3wyX)VY)ͩpw4&Iv Vl[Եݐ&]Ync1+Gi_m*ņӣ wM@owQ% ;X:m /R^`p#PL уjF8aZX̐'UIs JJ˫U oi34BA^ mM*޻(%yh1? uyMr foKNj?o? 'fF6~C}mv?[TQWV \Zc*=R ܋#:xܛf$O>mR!t0O=oOFOmb.Ri͠]eAJ/2 nE {w0u5 ;3i~b I[iOQ`N]<*b96$ǧXbBRݎp*gޒznKqƺ&ڑ/΀Hn4!"AW<1FC봠arÞHAy.q8n /M3R\xPyFӶX^ơrdIuZF z}yXMR>ʏ{(rƒ4˲kJL?.?Vk`lުAs`C#F7;Os\" (Tb1)@_SэNʸ9g3wuVzeKi;9QRhX`>P߈4 ĵ8(,QO?v ַьEԆ[Oav/C~"|JCC]( O5ٴNۡ=4ڲm±}mZExλ ::`\z9gvէZz$qpFpĤLgğ!D7=HH6޻mHl03z',GƴXu IV+z|0`aN AI&SgDqoȇI, "!*Kujavw Zۧ7Iwsܣ=L̐vz*n]*cD5t$Uib"Z=q9Xɳ QI!d{$*/_fƠoMHLͫJp%,Sܑ/р;h7i-\Z 뾊IQECM:. Aa;J& Z%G@]5*R @6N?{TyG4iƝ,Pz;4!>YC^+DQX,5烃.7~*M鑛LCshT4 ?yMo4;zn>u IGS!TXV x ӭ7k [kc)7gd?IPrQFMV6^ 7r9UMJ̴,D0Ko SUcVA cSOI/^W讔W0(?qU|gWr|jr-8%xV 2M= Dz~I`1&ijŴ^YeDgycJtڅ)$RL'=ɑ{8s&ZlҺTpmCP9 ڵ/i|hPP$[y Li˦թObw/RV@vυ52X|!ךu@.EיASz6NL4НsEwmuBy罷AyY`ī$rkdqXUb%kGz9w03$%F*PV}WǺ^-XT _~ MЇ" [ݍ"B_Du1S){ìADw!FN'XW*EƗUI/jLh2qmxp ieC~1B(-:S-]4 x2?l$4dp V;o:~e?GWVCझk# ekdu o8cS&UkmM,ҙ`S<>>Tu82Ũ0p?6?y6=yjU`hHqaX&٣lg{>!8q^_73)at0ȚY5ʈ3VJkx2vd+|^Hmxн ᥎&KqGP}Ur-j;"j.i?xF/KGվX\.~`>.X"$ʵ_N>PnqaW4w)iP4I~doz7/Z?zZ2Z^}p3qwY z7s]IA!:ƎJuuz9b?E9rVDž9]s1Pl}X5nճ_ ༐~(6"**sFv?{dӝn^' #e=h:]1x!R/CjF[C Vm!| ) VKĿ (tnY{FEqvәx޹[@A1odtʚFb_JȮldG&Dד`cqLKQo\~s!]sS570 ug,?HB&&+&GާW@ uB)Q*qBr#lEKN=##X-ikET,>8;s0mfs=rU,U,INAx !/n'*՗ڇkwxœX599]u@ {"E2"(#3G `QD>%H ,mf߲D ]'d~2TYP;네V̡ SxX\NWCJ`z9׏bi]hI-נZK\7mmCi)N3A@0%q -1^ IV[[ q*dD-҇>Y*2:9ƯGzx2#"\!MJqF1@9i|i&Qf%Ϋ`DM S mV?dW6dmmA.U'8gGe9@ <ԡVa@X0&CE.U|>jUjĢo οv zۇݗ+oaׇ)Z:L|+jcA=q<A;gSs̻^3\vKn}…q&?Oq:gs.\AU=)^K~aK1 J14, l06$ATB%x"*|`~aJg{/e|da%tmg?rl߇ NeHVf@v^rӹ+! }V}Ow&v9JGaUtĬe?p#h0/ @l>AI&S##byqʤ|%F %۪C=TM _:b0u .jUh~eZg@2-LTg1wlM?) TNĭãg^@Zkt8rw"giD_%y 3Ǩ[5OaQ_DtBV'M(ks1Y̾ʇ-Rp⫠c+.w|#A=U=ezsYWB~fOD`1S5=F|,f\0f@:4T]%f?7RB$| y\&,stk4a}nG*-2Yt맰ڌﶶqP6;-8>BDŽl 7Ada{W4Z:^0jN%\rB~sN1ꞥߋ)`sፇNo{].B%JK}gAa,p`$u`5n4s*G7ic@xvkQСwvHBB@M. , w٦9UŹF9+jWt >3`s ϥHp^ zIIiBtE!S?$Ψ"eQbI93:6e2@nM4k;ܧZݨ.E:ٮ`Њd]']3]>= zl&ˡ3l P/Ү摙:|[D`ot}b42*S$i@(“<+!HI4NZ3B\矁vp?KJ0Zf:(CNp/xc,mn4:MV x5~ekd8,*Nv]X zlL.a N'7|MaHssa6/cʹљUM{GL30mHEOX. }%ч'c#!A`n|G6,#IKW2uHw/ = tK[f,0ȫ~'gw9B7ƌ j~WefY"fqvK UڸJ8,_Ӂw0`n?uĸ90?\>V$pb`Xģ@&Ba?g~;z9{w`| {g(d] ),w~Yxm1Z_~fsY];I'F[xC"z9',B؋|/J-dŻno>  `p A;I&S?7|p W1x[JQ ES@lUhƪ~:<Ȁw kwxF۬"KLZyg'hݛ }CZ+igӖeKk}|=K[2pmR(tޖK6X VV[L>>+T3rމlT-{Յ9|W'YHM@+ 5nki 9Ɍ:Y PP=?$Σ`LP]B^9k>>2!yȃ2pO;CD0 FRъS}w6)),M:+L7Pڞq V6漟E&EK`|;VG4Nφd2|`P+7x`:ɏf'd'fPr-jG6.Ȏ2V4[H5`a{!~l,%r[ tƂ' ̴f2ઢc-juCND{ Ez*&;-!0K/qJ0fR\ 4i:/ޮ.-ɬ?Ze|j,D]Q>@7BְI@G5s[t=,VO;ӾdlX58 4\8 5xU0#w*0U<'Ab_z>0;j-'w2_6ȹϓYRb gcucS b9q+Fp w6 39M|*`  eC˟|ZZهzC۵^B U+v%u5QLJ!H7!)؀E;Ɓ;?tFZMקX)S3v c0ﰎdHW ^sͦ֩f6 M{ie%R%Dt|$Y| f8Su^TPTWNj*`vIR~d7 q,0PxN; naUp'jsao:vR{|߬ȓ ^ɤ\m%6ԁn\vK 9| ICL. %(f3pzh-ǃb"L ,P: 0`PD !2"7{Rq29p)o#wno^=%ݬ gB٪cyzJ<9ym~Kroe}FHrC _C}с~#9\Z:2)2[S@b@%x -h.8ZjM썻:x|]K/r}']F[iͰs_q`1x!Ҥ2VEB8:iuf Rjى5n>ժ3o?  &ŖIY.{_r!~ԏ/ILc[Gxa&,.dX`~+18BϾ.u9T![G⤬wGBD]auQ#Ķ܃'e]ɚu߈@6_nԫuG'xZhyZMR>_ r9-5`CL HztǴ}e6X˒nZ"Q%/گْ LDݞ:gǗ0VEm05@Goe\[^~ w H2O5tBt? ,NQ ;뇓Cɉ &jm^QYkNѺQiځ{6Bo=luIoWNE4dRF2*چ+c }UEyLZ#xp4fAuWۦnP `&F#ч,*BT'NmIV[ZY,6F-8weRaEz>aϾnfQwq_@C)L'@6H CРL FfDn/dz{S2nd ##Ga\!;";^}OKeRyW@H$ntM7O{ro%B0qәy(!Fe)piUH@;hחmNjhp3/ǀ;aCqwD;ADA%3w!ÁdA]I&S= ;fQP5V~ݎKQE*cAڍb9=K*7ѿA.e fRmC]|o|*?Ő1-G]@=ڷIBxM.IW_., !9Yxj'"w.cb7QQ}ۼEɞ,>IEFϫ+:J!Sj77syV(i3<$O!CsBaK䞿F2`PSSʂ:N~&D?4Oz?9B)<n9ZLTV8eQ̀xzw8\i&|"<1ݏW* l҆N31-d|wl|<*=>UZ01 +.Ghe6 h2!R-t ,7Z߮{dj|;iQ_ت>smpBFG$ͻpwzªmG+Jt\* QɆ]Iz[߀({ Chb^/&\evb)U?Dm P壥A|m3rT(~~0/~*0r"LR CZ#3m06JcSERdq-/:ǴR?m[- \pu@IUHjE@ZdX~\y(5EHVV[ƓnmYf/ʯ>٫A/vz@JP%`f|^9S@FOʹ0"g>*#ߑ㶽yZtECd#Sޔ"Dwq t֛_ P`{Zئ^*QD; 5y3Ƙ{5[ ;dѪ+VP/[Eh] 1 |-᪃KXȎ(\ /t}3d A^ޤU~%3LMQe[\紝ԢtO(}shn&cPX̦` pGɕ#SLA3ImIr 89|g/rMp#p膴KI)̙*r@+Nƃ*[ba74O@ 4NussskA2 [;$l=;H1xOEM`xB/Xy eB1 : 3OȪ# !S_^AV{VXTl]GȾ|/I ݐъ"#$e*YIfJ >6ε!蟸+FR5,dճ5~(z0kq51n k{#A1x(9ډ$@xAZj%RMRZL-Us BV)=W,~Ձ 1Z3f8pOROB0Ǜ767~4a5 _ѫ OyV/RB0|%7ڜ!U[.(}]GjOM5҄SܹW,^~ Eq͘ e:Ş:6,mj)d+\W.VccUxTW'Kau,e=1=\tpfɜcG Ipt'6Blp5]4LQ^_LxCt~FtGR EugnAۓ|4;5CuJCCzfHQ>{kl7$(?qHC(,-N8XԷW#/1I)M2YOT0 9ዔIqQ,ee?fT&UE4@їf$ a0^vC 3g?B,*0 A`6 p& BcD&ڷ%ƛlquuW7:6{M>yOpտr{|}K[ط!ϲglIWLRO_2ǣizM إMeHN}j~c:v>4V~֣/h^3\P_x0b'$340& BX`6#&"0_:ɤRf/N~|y_y<::7^uYi+Ms(P<^Qhƞg-$&IMwCC|z+SKk<{[+ ;!ncwž{0`ĥSe[D `bLIMq4ACmJ|jM%a3[x>: 9oX0Gf|tNWt0tl உh*nG$Lh Z 2lMܵMAM]<=`'IxDI;Xy ycD2_g[nN5IolR1kŷ 龣8+=(} "5 sry0GO[O㈞ 8|*j~~3JQ_#Ip$H@3*b3 ߕiw|p(w0T9rZ~iF||㛹+#cj!o2@:yǢعV7 -Ν5B5բw%AxKw$fHܺR ٝ`_r>T0& `6 @L"#V1uGO π=Ng}ޛQ`HyRHzOR&cZuwgi9quMui[p>% SZs/5n/}w24`Ϝ=yjC69;K8Y\SHAQ`p:4\BdIj^6 {cNiEN|3y6JJzY#t$G-CO䭾OW` ֣@M=v};Kc#OeǡZ&51[rxIx6PfvEtH. O'KvŴƒ_+oZR- x_3[;a;_ez`Ĉ PψMʧ qAI&SPV°Pf`=h4`EOZ[nK7^i*êmB|V\"Ɔcpg,C?~24or`ɾ3J1ܯrKa?t!ѾiF~4j Tefq;e>2~17'S7CVzXB*?RasE{Nm2XL RnX>5lB =!j | ,NW@`.HGi|Xl\-:Za_!H:mqY{_?]5 ē]Mo3 P7]z3R̕S%l k ~@ڏo>wTaLa͓42xsnj ^V4zY%m4O{bU`ʑLz o`C9h^gUf Ɍh0Pl03mf"*^W.z"; ,?v Lh`AC=pq,_~ri_df\\Hʌ4Vː}PcUQ{zO({BB[t+p9[z 8#P!y1b3V;Ewk]ZC *rߐWͨ7feeN]h'"kn>)&$8Hb3 >\3 M3nAm,"}[u K|{ b +ijϮ;O?81ʓL𧣂d{hlL} -\֎D äœlCgN0#'4a<;k𣊤@2}K S@bGqFPyꑊbZf;%J>?CfK9J`hTk!C* Fh3X0آ鏉 .*}S|C| .ʄOOsxzK_=]Y6A ĵy t5"0E>zB;˓#7t _o;yRE@!4Gkz`A/#- RTLeu=;Z[ )7<9,Koq8ؑt  B(r[uiN }ёۭ?T}z&LӜu 7$'06z-bO3BŮuݚG贗)帙ޔ[\ X>kb=jb  =Lk;4Zªk@c@ svvU\zdtwx═ld^gT"3ꥆgA8kV_|I^1飀8NXR$zӏjw<Ur=BYlZ9kv:уa]ΰaWf;laLdMN(sQϻ]zM_K?KzzƷᒡMbTom[8C_FZZ',8OL+>ﶠ*P$&>3ۄi\^fDI']7WC9~N "F'AI&SvC He;-+tf&;L,-3Ȭ rq|/o/ܖ]f!]SB 3M ԡA 5fV(ULXs!d2 @kqeiOV8%GtY-tC9hGo{} "zwiUS@۱@/Hj+<^E11؝ kn3RHoZMj֔g^?͕F]+%(sV,QźΔ%ԆB]CsUJm6^[j+&pp%$M/ViM83 n|ܣ<[լ+-N~_ACQqRT8~FUH56u.wxx~co!V(C2#57l!!zvbd){@)a&n)\ OI5` s-B:5=zdZc/dh*|"R[Bz4ei+ER" NgvGT嬡D*[])tWLT5}claײde!0paQ_: f+^FYՎ9htmnn)z BAō7z a<&pZ*2-+R 2JLp:WE~PԖgAŔ؍{lȽO\D!~ ZQ)a.q(sWw!Z=e@\M cuA3j(^j̓/iM?]U K'Κˊеebh5aLj8k@SiʘU2EpS4k]5r)dF%A39R*3btIR촺.#6'w iB6.?\OX8҉NO3^ή}D'y[xUU}zJB74GgĊi:;WФG&K;zI􀟖m҆kK=m|)ЖBk'tzae JE++;.H r`,SC/־gxѤ} Yd,׀wJʪ83Oqj{Ys j%ˎ\|{zDnVS{P\facsMKx2U8QMzuunB eZY>W,q3ëh!agj[1bxTcĮAv:G'\(VHȱZB_`w»'zL3Š!U,\>l % ncAN8`~=_K!DQxa`0K5|v ԘR*wAԑ s hw] )S|{_@ A)MTfB(5l-]GMa3Y+4 @T݁$* XI&Hqcݞk_yrV ==yq~jΊ{GEƔ?tp2mçao8Bjb ?bpFt)qy9,hbrsC8w5ĶM>=E) ,Z]7vnjMQħ+ %g&Q-5@'e<#'ܟ L `;[*G:a솫%c!64_waD\mm k{ G>u,4-l@m<̒}72>3؀x'+úWWvmDюh,.쟔P) ?p(rRa\Oٟjڍy.υ$ԡV AP`. ! bsϾk_̵fK*//㧏JP֪4 +T*lT}Wdi. nzMEmx0)i4]ǩ\1Dű{zX}}=CG 36קp/@޼4C|xX=;p%" f\GjE 0/f+zQ[Fl=?- }6tKS F#V3H4R?(\vmwBDPB65$G5{Եlѳ[.TzhTsQXtZd*,RԴ]i 󵙇"TJdj. brmwJ qlFu@+suv ϵK5Xec#ңS3ե{:N&éRcYDX' ,寰eӨs#. Qñw+莙@Diqn/T%h4J2p9g1s7 v`dierUMuOtwHQueh48WY$‡B8If9>Guݓ0V.Vαӗ[C=zЎ; ~"t76}6s䇳VuT &(8, `6 āP`24 Y̜'uOm'B f#3J\ϡB 7=l˫ۅnUQ(מ8D_7 Ϲ?NO*͢w=Dp%!XH༢,Tp6 aXX*¡@&!Jaxyۯ;fk_,=0Dt@H=z 5/3QWNƀTawdqv'ƈgyyZx=8kvQD bAI&S?e_+z6 Nyj_몿L֥hļ M8ٱKB%[ƒ>hY1,b7dBg P ΂'n3GIe?4o8y,Qv<P((D* @W۪no3/OZ$mBXes E7Z#<샭E55PWwwTو×(2C@o@gӥ֔sn$U >aO?9۟,jN?Ҧ&7LyJԡڃn4ՁT\@W9xR4 TeQ9(-Mb~.kY;s'ϋgG(bCb~/rikNS4.U-1:z]⠊ Ge#֙3Tcٝl_/ Ueѵ{B =b Bǐ /rP50ȸ܃fC&oR(u"Xf>YQ$P1ayĆ𪭤كDI lW;%K<:T,6q6m3Qeor4%K |em,v# "ܣh4aK}]ZH$%݅&0859]/"啡lp^㚳8_%p1נ\ϻg6_A3bWHÏs%*x!w@le-,ď<#k`~AE<~OxޙvJOL<Ր+}RzI(u3Oϸ6K=CiZObxFe67 2}C::H?0$n~_4(7.bgt aE˦? .! 9pZ{.+onK}$me=033>rүyv'%ZmD~CH-3 qx)hB1BuX+\LS E/@m$Y8L|2Z%cFF]Oۨk_VLSTQVއ/h0jQG^zt޷401$:.yBQyI+P/I5JW$yD78Â*C_ZrVz 9xwAmCG9tH moܨ+uɮ bf0%&D?NV `ߙJ)mOUAzx LX.=8E{spB #Aaigc\6ozhg5b mg>yvUfK3m$ -,=e6"nb׏o\BA-)nށ3H+5{(D"n›eW{#H_pYfvo$k1iДҨM6hfˇT[A5fp|vA 2`MRKAR0}g;Nh.i'MǁvI*"aR};vBS  NPwE-ߏDYh>™-]+WeĊ v`5"82NLߝ?=PS<ُWY՗̌;)k]3BK fIǙw0{?ybTڿӒ+uGWnj^$]*\SqsB:踥gp]?J:fXbs\IU+K0R#=˲e[{@eIl蘶GbMPnĠ  =H\O~)h rx({opRlgX vd4>J?[Ũy.:I1vVnyF$ &.qhEZH,Q=ގ%7)WևܟWV(ęz vPCb, .4o:&pۘ*fU/[e ;\w@B{ ēx>Zk]cJrRV 9(Vc]i"=w+Vi +x<(*C?r\Ӝ (MW 1HC; {h|sQn#yeMx9{wME&bӚ`'Şpr J,/JC~ 8֛KR :6pP e~|8JzP,7ԇ\1pm{C Q~2 9g9n|gwNM4,Ds *!7p!tz4@})!fCŧgЭ}&Y;l"iadą1FŗGXTTI P~mR0`>*H¶}g\&b?IdKP[]*S+ e,`'9#|5|#9N'3k?3J(wDXP*S~$->U >yY}/4 LP 5cœwH\?-sipN/6RY!")M ζfvͫJl;l)>IL>+R`jxP띓MHSV{~g - eשAK;No2I+UV>د8\mw"~?Cqp8Mqd`μkAaD; Ӳ =ڴ`L(F!ium@:Dm ̱W{/UkϛE?OUBVϻ򕐼1\A9a6FC}NjENK>>TUj*!q˭jg} g Z+Okb>#}+YFW?.tR1s2Y0/7eǍ[mMT \#}hk(Kyq }& EK704B}Wg^pr!Վ<*۶SM>.XHm*(H YGB-D. ,j"s!&i296 + B&4b@]jForcECژuo<%50kkf'2J$V$J &2O43+9ハYv j,~KE0{//m Ńӎ|]I6J>kPK軆<)Eԭ) .dCU@PO-M cVvhR@  f % S5 ޮIk$@viٱZy4׷L?9ո.":Kq :x|OkKR,n~5`[dl&mD h6綐PmK?6fYlwN!':Pn-26$}@Oqtr ]| Q&*(T;,.қi ӟ ݀&'EяYp +s@u^^#o7s#^ !B#֙i"a[i֗ۋoh(nc6=J9SImHGq}<l`$E)Spu[oS;s?ǯqK_>ā}r*hNA82,Qd{:]`6=Cc|aӭ:VopY61ch68l\Y%x,k~)HL.M=gU$})⒆{ zfU1=厠n ^s RHxm5d LG a5ab +iU^f :O͹P1C >*e|J7Aq+ rЍN<Ԙ0K Ah0JAa8T(# #0%b'ʺ85^I;w#|~W"0줛'uq rעomb]JַOoűwEJyf ٕx_7j1ǔr-{ : .$xx`lBi*B|g Y)VcAI&SO&dYe\7壦f&"}AVs*&i\A߬j".[p1@`Ǡc Xtc++@~SVl2Kopy,d'Fqcp]D)_fDZQӗDWyCgɧ].xq3ܮdhKWfǯ2v*#foW9,&WޛԶޥtUê7\fX2(mwOp'I4?NyG\|*1ʙYP_e^ۣ͗vVA`x:߅H <6xwF>1jDlYBS`ͦ*; jQCWrŭz}]3/XCiW *ǑձjX#27aP-w< tMʩbL "Kq8Se|L 3%xL cg"~wπ>i=#+gj=A'c x; Iy {d>sԥ&pEDMdg_7':%%.(%}2?G*[& ӲYWKsKZ򁈬{\ dg j0 hs$*bF)AZtH *]s0ٺx7!dSh2_)WUsZ ^]}y4z>(k1o˝I ¡宺(71C7)Cp!9 &(|=gvs kZԨT& )1QYDu6:_}MMiЁ| -3공Gwfó:Nndm07ۨzs_ Կ2VX,{Ҿӑ+U|FsUQ GK3fj Vw{t0* @hP pH&%BaD&7LWyUTwv?gR[l_ȕ15k$K5T-\)(z_: ;`Hew]|F:>Y1Ey>*TM/{mO>P'ϩ(!崪   Bpw' pqAI&S?\["((5g&0&#Ss Ei2-}.h;S<]LrP`yLRP/B4>Mᄶ_ęEprWS_hhSM# džp8# W1Ѷތ.vJP Zqg㉍t.c8(3<OX |'pT̆Ee /IYȩ'$_cT'3M`^iνL!!{!>Fs̞n c!RWRLMO ,ŔP+yczťwyF(1Q9ٸ?}q>E}J]zUZC@?{-.θ'Jb+CiT]b:DDj!Up\#cL 4'bI: ƒW:f",,noJM@z?r㶫]MhbÊc Fm`3(:m(&y[8UHOqT`" !l uh ?Z>ƆĚt?} _^unf۽!bq0rijeni` Dj?g &bT2~ʓ! |]7A$#֕=DOz !$/Sn̿wv'T: ĽHC҉]}sؿ8Mb5騚t:+2 \Y꛵Eb q9ȟ,=;/; sUu)/̅Y pe˘:j>wZڹ8ߕ+DI II ljJ>aED()wqc[[)]s۪Si S6EǽYFOΊLF3K =K5z\#wBE'WIpfd2UO#z ibh~lF5[n]vTBù]b$md-ͽv^ZUi,,:ŠcI$ֆN f|ulx*Sln♻>ڧ`j۞/jei 7Ax M`t4x+U'+R%WK+_bN's_?֨?nlYAmgv<|ݤng*4'a_+5-ٳ|j~E_uk.V\3(.ЋɂK+I0^ 2@>]W)jp9NغdĩsqԀYb]^9GC!aU쁘wOnTQVhd4r˞J!D៯z!U]3OB=Wjv2&'0|-:/n;:q9gg8&0vFx\x0Gfg畇7*PHkZd}JWb-eZ|ӽ]8@ޑ-ƕڧ (?)`s<7W{0Ѯv`fTd $^fxDL{ _.ql5VZ6oykׇeWh9]L ` Foŭd6z*}iCJ{h49&#M%?-)$ˊ k<ִ_B^4`O|xx͘`dP;<9`7$諗Tü>(]J0f> LQ npkdREhGq5Hx+@"r`BXYYl$ ܴ)V\mt dq NhشȽmҮ&kȤ}WDВ *4Pa@h0 bh6 B@TF%&|9f~ٿo^8}myYr_͝]M"?U搎~c_̠,?Ei&CGYh k`鴊ˣjjF<tV_&I!~>y8X e@"; rA/)M).;h<0) T ¡@L:Ntp}Nk8s#ϙF݈lMCH:9Bw=?~&'z Y HnC)=餎WDv}bzeUjwǗ̺ߦӥb J'Uw&O h<V5U7khPT@c~ )Ĕ ;-韶_o D眹 5`?f xpDq`20J AP6* q F%!1_fWߝygͷ3^M/Su˹W쏭FOɱq@I<[;m$HmGk?РHK5:RlrSƜ(~質 D{p `y/K ν:W紁?%H  R;nD=V܍A$ EiRiPErjd`^ =,U!'tC=NGj.iP4IC4Vvn&0N{V%Vt}.J&]j(>U e߷bZ&B#Hѥ[x滷 Gi_1_nx1dϚ&Oz 0" -gFڻ`vc*!y >ǭvtyKCeҋzHƟ0Ret%i^$n&uzh 1 (iqmYy uHVX8 zӒ>]R +ʲ}fNuiL|ƚɾ:Ln鼯A`kn phz8J9gp,Fg_EE~[gѢz?:Q^Ԁ+Ԋlgtmח.A 9NX'C·CғA~h,>U¬` Ll0:WTPXM#]{Vqj7t]gzPM{{ ,}> ؑ=ǒ+T)5BG1QZ'~AnC_yH&-YļXg|lޥo`+LR [~ԋT?aCd\`x?Ïp[?{IN[Z/miTXJ&ś>S(Rem_PNkkZq١:Z= xzAea1P6#̳1uI%ҪR^oYpSܜ4 A) ;'@#W}Eo{s y/UQ&RKQ5)fF٠3h¿@m͘}D%, e"6A=W2In>%2mhvj1 4LJǃ} :tV>>4CJRfTH r̪0 T; {/Q5od_9D&纽s5߀ DNbF+4k7gׇ*q *)6ˏ6I9gWHv ay;ŭng圡wP]HRx?B%E5y8uQ'#zmQІIr7](-0PҊz-_b+ϭXnsIHL ͘18{RPē3<90s%kk݉L]ĺ/C^1E"'fWe_v#Lחr[o$ mD63 "kN$'//1obj ( m l9GǛ?%%F<^lv"O#usN#ky4JԌJ"X*R/͗}|7{ڨw3qWDVn.-uW򚱎N$ @KTGpzjLA (ؽ!:qLvB7 ܈CRV9DR@/sPQ+zh!Z H BD?9}|~J A2115zp];!7'Hͽ@,ق^k ˠ::8}Yu|b΀~;k[x=]h4 '"Sw9e:LDBvsp˥UK PhƊ. WҮa^!9".̜wR TlH;W3ܞbO'eZ. sk!N3KO Gkz'vԷG@ߠ%(-rڤ3Es7)# =cM! Z,M Ɩ $hVƗ\i|w"a/w/FvcGIW :̩!<0J 4 PT(%Ba&{g\]f걯M>+-&wZ}gϘ=)1[׽>*E򻠈ޯ~;W8yf4d]Pmjݒ"uP _Ҭ~4 !J2RHPz~VҜ}` Xo QA–$ qK_mDY\g^&`)fg㷔K,MDGyGcOŖ&:ʐ%o!Mf.:4g`Һܛi'&(.`lz9 RT<%nL ,AWX"p][ZŰ!&PȀPG@ߤG3GA;}B'`j{"%uE88%K'2zO|31۸aFL$1pd;Aɠ۵i3_pHd.Y1S1.2D"Ag׮o:X,:2rI{vE~ܬ<؁0Y'vtAֶ"`i|r4WyCP:zr)P1z2b9:^ Đ߅ % 7,_,ROZذK@G|C hLi3.g ٛdN~G+ ^Ea' vb35B2XB 1f3e ˤ5[z l}T=.6 M`<][z+u1ŁP6-=6OYl0 eoirb;.5\GU&a!܉ ,^;1URSue._2<1?hn2*L7/ |U7e ʼW)L쮏$N5#>qwmD~+$=R2DC7$,gښʸ|W{/&4Oث]Y{?Ɇ@(amJ dr_f9I|09-D-J2: $[Ig81KA5VG_le#ڣ,EZ4aɏ==k8ͬ6$<<ە= Ow.$6Fw&3yOiB̬Fx}ve{Q{kV5=R`v"fNm:z-5=C%njrʈɩ㤇˓)?yXZ >9 2z)ZِEF[l'0r|Ԇc)!+=M\(.ౚ#S}pSRILag\Ț\?*N=%5 p pkr5t<Z+Fb6Q@jΞ@toTc؜B*c"B}WĿy cfBM vهԭ9CwvO|8&yX ZLKEʋ9<8FS,{+G?d4?tzy3F,pW'yNEImU?mJ_MD粴zQ(DkZjM_U/J/E_:ks ˘@Y(@;Yh4MA- (4=!+0@iah-85D]n[yFc( v-dSWՃo$p&L87 R#Љ }sлd y6wUc Sga&E V}9S*+Pv?@ YLlSJ(qSq6ر#c&>T0& P`6 Pb3"ojɜrs߷7Gk[~w>Q6~P42i7}MKb~kѱŭ@w"76oA 8k~l,e,kOrF}߰Bwո}K$-~o[C"Y~R£mTK~6Zy٩XtHjD򪏩ި<|!f"[ 4U:d2q:#P<&sOFʃ:uOaD~A҃7g&5$^j/]sK(dJU8;<k1F9: nC>08>{x[[rmŸx.F!^^/đ(Sl18:láKe4}Չ5)69xeWbM dblFgW?2HɎ/֤|qEF ypIP4YGf.(ڻݍb>?V_wj/f"fEtV!ȠXx[Ĭ0ڤOPTcz3B.hnM%7 Lר+%۽рSiؑ F1@/3>d*xP6)*SDř$* M qbp0ģ.j4fWmDU7(4,u^1UX0i':M/<nN)ho(blA/|觧R"[JH(eF!QFI;cޞ (b"\q/wxF و.VOWIqЬ"`hy>2M# L( OtIx7Mx~~gItwʂ\avA5!D@'uhlCnQՍ,fZW>&tQQ GWcl04KATdNm^,9o:Һ"#q"}4|WWa鴎{&}gnk &ӒO6O8)\\?ISbzOV4_ OJD!()Yy|.i'kjFu39_MJ(zVƢS_^"26__uG+ )asPꩿPyf6"4^msi'U&kC:6G0d/1&^$3ڏp;2_vidaIcɹUV`98OMtB0sDE*-Rkm(M'Rt ]]]M2~ݤX⭚HpB`w.:e{ NSO!(͋vP~ʰ#I.>n{D`sD վd L Ek\ {kR.NQ@1KY'4)|DifC9߹j?-=*ڥ *!;ܨ8Oǟn)AoWm /%F`ݑ&~k0tx OS8u&a-{5TkpՃtGUy6{Ov+b.:HԎBQH&Yєi6 0q?t7#x*[VD>C*݅]үn)%r_b »0%GiF]|V`oP̛8ݒDrbF8ȧ+΍!SI6| . ֔\yT*'-"}vn;AlVU4ҳ# zhcEBLFH<8 zLZ!wR&`dn+Mgo̓իxfǓi=פS"vHNJ@dzs\A2 aM4A2r^?CӐe[ϼD5% 8/{3E^- ;5 ąOaM ꝅV*~.Կ';+3y l ȕAЭ3[_OADDPC5'}JdP/Z~Y5K7< *. #Bi8.dTɝcL9!#:agWzzkuhċqK+XHt/5FzJzɆ` EpV ׍9z{E4l$î^u"Ө\3>Vx.H.4=$ .5$qmM~cMYTb`ng+<엟ņu&[È0xAΣ7bgid(A(#tC=vtOdq9 AG\ĪN)_l'~G ,G5 VlG*b%皛R38^2_7̋9?JEj ~b˚I#%}Ɩ֣TM FFBUMh|.X :?y1`1-,yy/ t\!Dr}EFa|+?ݳpk-tmwtE U[25$cϝ4wdjfMΚE9ФS2be;0Ήu$RPb-3Fl3Wz K] s-~CR93wK$Zbgj2)5js!]<(oښ5;dwx'h!ɹ:l6m4Ve+S9M=kgF\r=_#qUEa-|oz )_2"h5L h~{?e{BOq-zXNV$*ghbP@m>7uAk-:jV )>_Sw1ŰU^GCJdޢ};LUL01qv}0 ^kXl8?n} &W` -oņv )zT[} j[ c!xdQ-R ٧ ({0g:+ P .j')^^S|%,| y*b rr#:T:ү9qo8]zCOTlR&DB .^;8ᣆ՜6Ym]5 d[+& > 1$N:;ȺYM%78V 9rE f*WUh>؂v/ ֧Vc05&=u!)/J&{^daʤGzVt d^V:Rʔ} ZeoaܓrGS3^r>gR}lq̡Vd+ΎM%Q=^/ 0K;PޯީE-Jض*4U(Or[2GU}u"#3=S[M-őBɘDZ+q/de.*U nqG3Eʀ^/㨿DFy73C,5=Л!K ,i.gUvRAp,mcN05p8&HLHo%8۹YR MoL*~Q|ZfcM;(6_C#u<ڙo1v\9/b.]k{L \ *"%))tAA##vO6`c\K uuMt,w~2:zؖV&#_='2W}Չ C! \>)3:9,Q)Z{%u2rN`Q\b.47>'%/^m:N9g[W#c!^m$'fki:m\_5$S 8bFYۍxδ 򐛷H dJT' 3F_i`gL&W8X^3-ȡ~$:47Ĕ6 ~jjD|#iI~`Vأ,nִ?fPY3l mdtT Θy!*:kRo_ {Q#)G}/!&UXP^PC`a.bqh!۰?)OWoBɿY,VHfWŷ3{Jj~<`_ F둺~mCsΪ5ϡ,Žp3Q'<hPcZ`r3[F"˛)R/4)n8y^93ߣ"Ѩ[rot&\l}:էGf:tFlOxgj|\TmOC`]p :HHI\qϡzsWd/:.hvܟ] ͱے 'Fht,)y =qI=;f-'{:En@2޵s}+GQA&YLh#sn&@G6s$ycuzn):.$}'A]oM } d}kW (ދFk k ]AmI&S=[BW:6d6r8 *Wj=:TlW1ђ G;[s<9ΕOMUI>"nt H#I/FJo?vf/BjEpfB0[q9Z聹ogpf3|1>ъR~gͿ[pgpy`@VAPW;]Yz][OXG\.kˤ?rαZq-)$\и󮟅ZͩoN&4z}";$\Gh4`}Pnw{ 6~O 5~bT) ;bȦP ވ4ɻ/g2`><&{[f"8[ :):6cgK3vt |oJw*j^{y>ChiѮ6Vb)7Z(d|N i H?S\+xґ21YVC +ao@YnVW8ӊ`-`R-JQ,92P/5U=`5J=XGm7y{Q}ErsFw"oacExA\sRoC>t~݉ue_SڣV3|UɅ qd+ cH-+8.*ɕs RS"\ 5IѡB@WhPw4&^'͈H0J4pa;`P|Z8䝣[9Lư1QҊ!u?O^X ]&J,Z]۾ M& fiL/XTr%ZVnATբ>ݳ9%eR"Zm3J {5B*F3bM`eŔ}wH2HkaFTIMWcMdx ѓy0\_xb.l~{zOl p pL/(mhbGy#1O:=wrdag#kE"74q-/P %QBgR1aЦ=_(^6t'hKqȾpevɱWX;vQW{!>U Abߙ }k#tWta_\TXFѝzܳ$J+XRۆ; QapO02{I7B˱c']__$QnŔ^q-72>Y]bIA*^BIg3u^exǃD5L2cN2ϧn } 璄O~(_?okQ,NY=$vY705VWY5@`3(Tc3[]{uN3)f~( ̽Hd72 hsLZI?y^pf$ale`1mɜ0v2g)h,^fgQ,#8|z_0؄UĭcXxUNx^ Cm0ճKa)CL 6O+^04HcAE#ЃZ,궬kTI=h\Q%<rC=~;ϱ$I{N4e?Pgc~5Oc^Ju4&4zԣ r*G- ?-e5}:V{ҰoZ7h)+tm9`ZR,[adtEƁv~8]Hݐu(Ȇ~d;ENQ*JxG *>MPO) U"/LhXCaewA!¶b'LK@>=Mi=[Jl j9@([hQo>%$s4US()ڤBTeoNMiS 3A#T.O#@CO'[k=[rUw<]0 @/l>if; ({0~lQw|+H .ziGsaޡL\T'1舱ȧ?.(M@.2(dRN= ?" Y|lCrn Tw770"}M0"4/~&cOe]^ԓ)K!V--dd$oⅫ0]L,Ύ1Vtw;HLpsrbkE:l+m:'&06 h0 A0H "0n;ީ*b}iz5VS)4 ~uk\r]%GNfƠzxyY3OcfO?43ev{7~1h+V,yI\N`zŽbt;*.̺ 6R1-p4I.0aX`L A`. eDf[xJΣ?u~_×+/N )U-kߙϳpN?&"gdhHzF$aVᩀǭw_gC._!(s4O_L>{i{vXR${@ 󁄈, /AI&S<ߧGWUp9B{0f>n ~i8S"9%8 zȕ"B7!c\Z<9Bg)$ fB3?IVi8b~:P>1ctwWz+@-$BYx?#Cc| <}joy:~U)ɷ;J4G1O_mw:=# 'T &`o^a+*yէ7+C(Lrjt|rmm-5xVgنvf=Lꐅ,JԌl5 <uo})e aUffm +vhd\z7inmr- i 8LFuE:}ljh`N77~Yycb3u ߗW=tZ>"mYE2ɚz#/XFD~XZ,Sΐ@}J}uNKk٘yk00LfEpvB5=ѳ)N@@!Bqe:k`x'Ea;NY RCDU/-~VÊ ϺQv 'dKmot⿘HSwg)6W}>I򈥫szlf-j|@yz˦i  ު-qxX"nFm%1\K2-i9.j.8 ĒCD>y9֧N#\@pVQ<^ +n{p̑Ff]b2 ”d$ Xޙ_<%iibg+x!^Yz7NKvOs*p>AkGD|G@Wz0(‚x;=4Їe<Bt}n Bp i0SJŠyr'Ր0ֵp[gP3r05@ݕp"";CWx(J-DE 7^c+)%%m@BעpvE=]1/vU)-A#/"&ݖ%_\PsheTB'Ö}% (rDѤw&+LQ}'4hʲFb,wd$t*Jq_lHLCC zc%ßf[;9&-d0UO3BGQht:qn`!ɭo_hG?D,J&E1% p_\<󒨰$Uֈջr#Vp'4߫"7a=Wobï-ГUuo?xexܪ63lȺcr&jw,ڊX?FhRsF`uقCdt:s 6a]GLA(p Á0`L8 @LB&;׭x~>Y-qc^^Ǽ_Oٳ~Yl?MǫFzo yRA=c[b~ߗ)FmR&*grIJ٣TW]h/f!#kΓ65[WGCګXHDsER؈5OjE,C:OAxá͟3U^Op dFϞ*3Km场 쬿 ɊUZd_ivpx<9l:XD,lϽ>Onm~yV.Bg/ubDZH?b'[ R!{X˷N. WoT7bK{УmVc#;%?iiɨby^Dza&⿝Q`12vPl$讀:؛po@ڃb"*% Rp#UF8ĝp\G@C(J$pT(" RsʿZU' =7y>;O(c+ꞡ~ }v~SŨTU f(عmpV=c/ݷFS35qxUWoN TosNWxHwdBW7CghEgeǹgp?w l԰G ͗R"?}o<iڿbx!urf 뜡ZQDɋ}6_% Z:mxbhHf0CM82 J`6Һp/ 6V@^{fd!(T|ѼgޅBdwh3kj+њhJ;4@"-[HJ\ObLCdBsrƭ4dkɨءSwo6{6J! .lkSSSB}[jQ\/ rz=JAЫSy&,Cd\֫-GWv 2`+Cd\9 #BmB K67UàOG=^nrY|}_*_3ˋЂmo;`3U!nj~O~h\& $3N.R75xCGrU5oaٔo_eBB՗Z}W(㶿8a{Кe]NJSzh㍗{;k2>4o8F(v.!Er)P%NwPߏD٪P0Nnt|xiڐ3y=Y-:|@LL8] WB<>o'z)pMtc)6ҙF+Kү H>Dxh,E@DheAPQ߸ӕ4=đNF-`g9ZgG#)C(?©I|;h^%CgwY)WSX36prʹwsZhOWX0[4lt4ợP| *_~dzjmژ0=[9Z,',3l'z:^"34ķJ\x^mTS;gz8HF葭G}I5Xq~[f$͊'L$ `E3ăjFc @&HJqQ  t}՝hK8 nUȯ<Q"T, 6RyK'u:|ƛ@nN3ᵡ1Ĕҽ]\*T r OԎ[{Uf^r_Ql9kJ>$Bl'yH*LDԢ<"e:V~x=/*mJgYY5S؇4yKDN+(]ocHi|PX3{mMB. %}hŌ @ZŁF}7]:yQTI+y2;xqE tj^۠'ٮ=2^e̵!^ _jweǃ{=pdE@x7/<2)~$PsJr5U,,>V4TT(0 Ah0* P""0߲:㛷>f:}FVYu=_ŎDy>uwAKgoգj]A/7=7 |7C.3#pR"^{eHD[5.'ƈ3zl7~<JP,]BS3x{v|i=(;"S)[jFI^q\m+j?,:V)ШRԫw[]|~2*tnX"jU3dF3@0ɺt]qVJh 5[`$AW<Qm}wkgQȷkK~au5xaKbnMfjxinAkZ38R]wJO {6QwJ9s5i0|٪xew Fx/x</CfSֺ/,ݣ{hKvo2 a67 NY,ߋ:,pݚLEQ}:5;Ш=)g.6B DGf9NS/7d9@B{9ʆGNS̐Oyr'pGRq=ڿ.\ݹh;~nBAǡ7Fjz#:1E4P& aР . !0BFsoRMV캓u&횽 z:U]7~%}sX1n u~k{oyV^O/},$OÏ`Z iq%cV[~(ā]ۊo;`ӸBfNCUIkg aB wA c~z# yhWSdL%iuWurOwX&.PΫ鉰YZ{rNa-GbU9h o'I!AI&SQ2X{0=3m RrGGm F1KGU0Z:2x-bwV{9Ss1q<7BG01 FRUK $#dUk_Nf+ N.Z2d4iM3+?LcNHlw%bxlZ-q4SާٝGvmFgIU'ɏ"t:g7d) -N uG5<~ h6gdڈ 3@wd; =@8X. Wt)0=7rNKl LO<5X#UłG;} $kbo? _'yjƖafxz3@ķMDN09/Тq='˒7y?.L$Y`xd գK 5">xgeG X%l/DXH^uq?}mD^|u/}Ǖ5`vhpǰݥ,.&3a}8pd(;oaV2.jss1k{@7qZcOO+|%Me-vE %ksiQB&5|龶h2x%ϻ^I3Ԇ >;ֶ֭VQc/,>B+,vp~*I|Lѭi{-5ۆ+@RC/XG\v?![q;1݁&&42H]'ۦW5pR :_s=HRd$nO @אh'L*%hR߹8 BQ:oO\S+ؠ>ÆO&bKܟg>a~ZnD38D\Vvj3\3WQ{݆4-"z{r'P6%z)XnEipJkX&꒽ދR5!6D:ŭ$VHb*\a%1Bb!f7}Me_@Nm^jT.//Ҩ0م~q칐}3;'L:['fUBejA w퀞kePPV9`E7,q}#8V2ɩ.Ws1Arnve#mo1L>OE- # .$@ i!;8FIf#E>).e(bg5{oN?}<Lm#_sjGWD[f3 .MUNhsnV M b&|RQ3##y>!I+Xy{Cp<%&jL))þ*{sQ  6U *ć\㏨A#C*c%' nhUmԴ#T Z4lQͬ-hg)Yux =^Ps<#ƹ))K`|KjkƉ[&R0+b(& BbFxIFne)wu@YѺ?NO~7zn&.->\)8=JZj"e;> O:oAzz}w yϮ`װsJ(˹/ta#c=!Hʀ=lf Q4ZT<`8jFx5p:0$x*l9ŌJ͵Ϭ%[z \Ƨ1kiX~qP<)]sX\̺ayW@[)c&RCܱ&q;nˎ+E)\.SurW`p[>@,+hV.DK=:Nl,c[6e(gD',<18,lXȝo,> {0IsZ'̹n>=;k=_vmd53J Y*YdaLaO ]^DAL`*yrKdU%S&@qx`'ls÷Ѫ|rAX61>ʀ.kE*-@(ȥA$Iǂ݀0T0d0ȡD 1s"qsV;9shy:1sܯGъjm/t{m7/ط %Q@ڣ^4t_qNK s|,}ݐ:uF0q^< gY+yAKlAI&S<9'WQ tF=|ͳzQ6Y}6/o̅P|0-ossE?^9PBV+3QV CP>wTJ<_1Bťi5jrf1(WGsT)ɦOI,n~r֛Vl^b *0 h RXFMRĨSӈd:))(2kEh~*9s=vlױ2\ddx'}XVl+Y*Nq\<@TIO.zٞ;٦JH3 Qwh Yn'+TflNzlƂ%"XdҼ>#aĂşGmkEِ ($ֿԥ|N :{v#QYj́-'uq/%g˦7X%(,PwYx KVZ!0 5DcY[JZVr"]3IҨpٶx_hv!/CSz+!Ìm|;rSIF X+uև\>a`x4C0=f@Pr e%+1I1ez˨?봕k$8@Y:* %w2tampb+GMx"ރ76FbGل͆3@WO0nzȺh*%̦* :}E߄j)Fdť?>P&'ftUzfZ+O#ux#"rpl@r ]Cv$0=ytRU7Bs$=]L(]fy'Wz1ƙr?$ ^˭䚅,H[W65(<̓[=#-a-71VdJ(鿊 ^rZ(W?%wvGфp߁q,dǔbOwKe4d`iՖ6[~Yjyk|%Y4qvWAzvguBx%vO.|5}9[Z5ba1'W"|wcOa\][Rv:>7M'n,O Wǻ.=~*~LN #߭ՁǪe6_W쏋,}L27xl`7[ ԔSCmŘkK Tљ/D!6S<2՞$i!KuFXl8,Q2O?wN"|TI)/Y;:7KoPul '~YٝjXxdV96yL뱒N|6a'M)wA;ח.' ~=ң׹ {N|k 50tUjڶOy{7}GV+39]c#z]x |Mٖe͖ 2+^R6K.6찛X<8,eWW'BKґ+>i;870mTHMm=ts[L~(G1qɱJFb12|snj=c\ɵQ@AuxTaYq4\yHEM?{{;6Ip_R2.<>e<[E-1ь|lAU0HGlVZM; N## 9^DYH&5T*gl׾ըX ) |nnȥ)l KU SEF2YYY/9=R,잎ymIV>=9 \72bkxUwo89,QV#\54(`fc{ G-*Cdm .6[+0 lH8o]^ r#_>οn+V0uW8OX8}č=l.^=7Md-tα6ɌWMle>?)OA018 bNd$ HJ/ #ݟH59?@? ErA*?'2= PAI&S<ߧOz)&:ʢ0#ڙcV^ ~1Dv|[ $7 .nN$,J&;bZ4SI twEq[b2;MRvϡ(J{;y+;I7H'pf<{Qd:&<.F9Y( c}8rH5\M#jy?l)\ #iLE7B|8{|4r(AHM ex (7SkW+ߜO )` \lN]NN4+ʦ]@W37ӽX&K<,Gʰ?#X"Y/ٌ "aULˋ8q|LIQDe|8X9 7U;|ر/p:> m{a4*2&cȧhmGn6 tBtI/LJ,OIkpQ}ű ,O J\.HX=iz0sEq{>@?^tET}#)dimEq sʿ]Ϭ W4"t&w ן Ke+^!|h:h ؃}0<һ%pGڻe2kςTxHM#kڝnz+9AUkׁpNo^oVATF ! Fe{_|p/ QF|)3B~m&W>HZހmhg)"+9SS|afoY<*4Ğ;! >lo{o.RIsytGqP x29:U_t# {7|22b.{DT=,mFCwr0,h$RpFBxb}ht1bF.hmUٵ ynˮޓʆa.gD8* xЛ[\ۗ9N坍M+9*PGv)ʝoI/d7 +tdLm5S9JTA8#u f~UWmg _W6O%tZ|o$>8]H@`rJ]sKJ&P`\߄hYCjE"vN+";D3?2Q)@S=qnE /=C23 Nb5s~ NZy稽']N^I7[yLKb>%B$a'6sEfƆ9T叨MpңvBpzNkhKͤ ~6Zp!f-֊w IʗpN8'.6/Њ=tS啈gRa|CaaMF/C44ϲ7gڑ-sA]֥ j I̧a`|pנՆqaS^X»'£"DI^ $N7;7CxC:t?|N`,~_VCkG\XaMN+كq50*`"U>)YMnTEHlu[o,Hrmjh>*yհ4ԠL CP,5 a L"ۊ}nJzOK˩JU!lul|COz9tokSi['acS2/~5]JHwש}&輪٧'`7'& o)cCǽs.p~k|YeqgOjTQ˜>,`4AD&! DaDlynkzk:mUo޼h6tu}=µv7Kllj|ecʄ^"_#ǴljuߍxoPMPD&|;=X8 5>NĝwIP*4S; yn<4j^ @ |*@f6jE*TaqΦ.BT(01p4t?4D?r7-)ɺ"9n7IG^k9)8td=+ KS$q|QOc3/N ʎfNj_CpQ  3 o=X 1;BG,q; o `>n 项QeEzDݙ3E5h:]Q*22 xfmX8 b'y3'tR?_"ڌ_ 3䲷2<'`yR=2~1/NӺ4['kzSD {"^U0bBvǬ{sohj `|ji[kkP o<N5kã3'ɉ OB6 ѳ-VK5F hZo}$&2 3k1]tHFL $*瘠/yhمJ18;/vLS{}7ͱ+ (^~VDLm 2k5+2c9;PM#btbl[™Q;Pj) 낛=Bc,T 0hPV  LCU_*Ë{]Y/#IP4}sk'j+m3Z{3}g)Һog0/EB#H|J$>Gv]zvU?V(#C)$y@<H  $k@@8VA9I&S<,Ij8o #u j_F0Cfc#~x-DDaᔠrsM;ja`BL2FɲeP{hj7PgޘB !ES0$:?Kłhnc5$Ѳ(H/14dSՀIW~]9JqXX2 ~IT'?/+\Xҧt3U[֮=P!6) gMХ&oLVwVaw;ۨ.yBƪiW̳Avu {è^>pLi:H>i*($j\p"j.KP+ VߤȆK_0w;"mR^z7IH?"7fra? !9+msG:Vo7G.=-!U{e.uS-|ߢuD Iڒa(ܤ:>&:k"t&U'\kи|2~sw:29/s@^@$rX,=CyaGWػF(gmu"Q%%T e9CM#qiDO8Z#Q6IksWdv-!2 z̛𷷶N&ۏ{ګU 7#xSl>dXsA1uwk|D?|2f֬@3cZ&<E.OϬ6?Ә=j *D/~T\AI~}tژ#*Ku%r##l11_Lx*)Q|3·qs$>8&piLl@*ܷcshvݨʌi4CL@CΪhh)p:LpJUiM#\s4\$A똒~@ziꝖ\6yn=%PwD#JWи&FN~x!+&Q.$tbO=aÒ ۍ#T*JrJ.6{37#{ /@`հ#&H \! 7 :6fZ_/kXP)(vMTcԅ(Ig~&QCϴC19+{)zRE9?jNޡm:UؔP5%耯-Z̃&e+Yy\Gl*M<1?XUBO@WH|⿊KǪ>~ @ielŲF8Oh׏zcʡ3//<ޘW+]; 5i8}Q8{[#;ey494%ԺXNؘ~M%uu{ gB R-X)BKr|i%'R,$JkȴOzF2&*􄋉nr`ׄ':bse#=l-XxQȌ띒@=IWq_f&?w[ Sg2 tlDǥ6{ni`B^v 83r≢?gY a ;|5`p.ʊ^O瘬EWvpsYK[ D=Bd&29PuˊX.쟠۲6 C9.x 4ϋj'BqMev3'>WȂx> 3cǢ .,,.FM'j"+wOvuHbQ NjUJTeG <ӝ"l=/D8S1EbIy4wB '{Idzy$ @ 8T,NNrZ BsEA6LA` BPH&AH۾Z*_kPp{ǔָ>Kn{,]Y|#( h*ȁ|o.VنM= @Vݕu";]91Qv #&6/BQ}X"x-p^E8T,-Cl0: @b#$w1w3Y7*%__ѢY^w_;OZm9 6/2w%Vʵȷٱjg#lRR],c܊xIat!?!U~"7UY&8ԇk ö 4pq[J Az E.@\XjEFOmޝ.ܗ{{,Mmo2o8F|˞s20n*[Z7W55(b_=G{l HM zMbw>btm:x׍dLp>$`6D@A4JO_xӾǰB 4 E0P#pb4dSz"84Y"CW$!t.R Z>NqgcͿY.Co@a%2"X?q=j44JҮ\rG4Bc~@ZYh)b-."ʊz$?X Ft-S:"T^=胵Y]ڪ {ge-[ÇX&^] s]{^ެ +Jfb6VYQ/jA^A[I&SENQ84Z(/4&`֜ K/G zQpWeD-9G5 aRyAfJ .= Uԭc5{l3͐DͶ{˥p6 VsK0K-=ۏj"uA\fm)T] i4>MOk _^EJdjc`mrj$aeZW6DI3Bk ἞\(H- GճDwL'L&G$zs~d$N/LEleK" (9d$r<'jVg:6o_yJb-r[i0v'3~y)!BaA7Rulb5hI- j,Eΰ븳 }R1mm 9+>%x5@a{e%yJW=&ˁ7̩TBL(`ڴTi6_E|9qwbSAIlђn[k7(9Ƶ;4c]1h^"oб%yӎNtV`FH oS7_lDopv"qybkO5T+2v5`g :kh/g ¥Oߝu=T$ck=FHvN][kh | چPYF lh@Bt27t2TVB|_3 r|7 ?1WLi 9Z[VMDZN˕7`y}i9S}$zJ(\`M;Ia>CIoR᜷vri.e0޶ߔ= ^vg00øO cN` I ߄5Ϯ g.*`\Eoa0-m/8U/Pu.)w=ZE8PV$޲N"SB^l}x"iҦ"{UZAn]^$kHLؑԗ( ; 0>X@f`.Q#t&&M*F%OOXݽ?=iC\>:-0J+\PAƼbvG,-H5G 9kzV1 $WĒK(xhzp!fW){gwzYJi>7_A٤fFiY76΄/PX=z/11 ܵ~Xf/+[[d0OL/ү MQ _)ZUFxC q|SBuX%u>TҭEr(rp$+8̧N[}dP ,huBOCyVy}g4}  7}ν gtԣѹ|ir"Kx;;MrM#liVۏ4L͙%0w}]f)˦w8i9L+y=DNI_H7v]5z,jR0JTFNcbŠJQEtp.Ԙp: ``t A(H&S}ߜֿ]hBΚo†>q{6vٰٙWl4CҟYo﫿հQ9;ߍYw3૰l7 ^?g}߁]riסH+b:Os8C2 Bò)bEb1a"qᴳw5>,/e\ؔw-Ag20q.?!FE]l?`k>2P,[5B8O&7)H0wcA>ܸGۈr3(l#l-1_(i_Y6t lNҖ(cW6{w͖ku% @#k!dtpGrbmy758R}52BtVVi4LgF($(loTT e8`SljdP0Cl˅GcAMBrW$:[*kם1** Y2USJ<P `T b`D"#1Wff]=~(2v픧g r%dXH2_9g[.iB=~u_RZdbՒR3Èu|^7pTc}'Ȩ,sNJY#NX ֜=0 -PD > 8A}I&S#@$:8Qp054#Е7 m_ɮR7UF es頤s6lRga]-th0 +g٘Y2+hj~P&ឺLWH5{Wo(MyP{e̬_xؓUACE62;Njź*#=.\ܢGɅ UB~Dmx#Q錹  岝s}E8(#Fosv* wGnLW]2=,I9Z)6Ņ1} MxUrk[R@ƉmuĿ޶-J["x1$ ƶ*l\>N.LyguYIog̰8. u/C[jq^y m?!Ɔ1؀Wm("HLQx` Sp7߯ eM9<핌p'|ڜ^fH%wJE,5[m 'nWkHG*E`D&'J*,ė]Yl ӹӯU8 lc+oCCt!b(a k> :{!S>Y) 4*J025ĭ4 zBX]//iI!\)9g8{زqQa<FF<0 MKQO&`} ަΈU3^hLפM¯i L*m/QPz^42_jy~|*&8YBte-ngã3 FqQz)Ztم0ߓ3\Ymx wI7aȝ0 :&S0oyЧ;)C5;DQ r֏4lN+]jS.GNΫw[U=Qh"OQujXsxC7$¨vyrian;%46sY$~%Nu*:jraK ec6$ƫǞ$ IH֙o (o(<~q WO a'7QqLXe˴Wq ;HuDc4L%ɮc󹤙Q-r@՘A|k}̋S,n\,*7:A̼ -JyÔ8G }^4HCD h`[Q[FFj)?ūܞ=Z8K]E=5}H?U}H/PCUB Y՛i@_;X٨^5J%#{"V=3$' f,OۅR؊,pn!b!.]lP^R1huQ 1E #y0kr x[h]L0&F\{M뽛- z;_R3l {nB\JĶ %󊮅!SzJ^LdЄW8RU,}tMݗ. 'bcxݰQ|ulrӈIL|$Q v]wBca_H<3KW d7cui>Z~(뜎 )/fIMl1w+BgUWہ0,t ׽]ܡ^3B"9< {,Vus! !{j.T($n%/U1}>ڥmuŋJ @RM?\ XLB^I]WIqV~rol^sU+;f.q]&˂4R1blY260J 0d,+B( Bb&os75ג{W{7}ng0FWi$OW8 8xv˝Nt>w.-grXvLыR"lQpL*Num`izI(.7!% =SL8= CPXtJe84,% BXh0 q(HF5WyYxUkս;,}JGg5g~7D.O{cԥs$~֗v5lmg?U% ^gOd:9*v3GrGWDb*ՇӯyʪB2}qkv [ZzЙsf{X^=`L6,%AX`Pj"0ާzʽoz qoڲ2jX}_a#wiS'€Ϙec`_2Lm,4R|z!Ʀ6go8[q (ψǓyQ.>qH,-yٗţpY~d߁' eb`P%c@8+ Al0 pP& BeD&;|f܋s8=^5xV]KPKtN/1D 嬝s2gfAL-K6,d~:^~ō~)5 +@^@u<4 =ݤ+0]ݑY S0q]b~Xepф AI&So$ jX?ioabx9[/w.f@!T%(}.Dq8(vF#wAqhjNt{'s;Fɵݡ$ QxKʗ8p[ߛc%/;UX7lmȭ WΉ65},*8 ҷϋ~"fاCLqT/v)؇^P<2sjG>p*7%{>Fo\W8:E [;3M{hiV_!>OAG_RDBK -:3&!Ĭ@ |אDs 2fK+.3˸t\&@kgEJUlZ${ :~9\d\ztIȘ"M1a+s3f46㔧W&F,f˦!BLYp2l¨Ӛ xI7=Uӷ?t,/-s~%<55 :QD>Z[XZX"}P->WYan$:dP2´^u8W4.m⬈%~Ԥ9ĉNdJ)z8 Pw)@|A& ܾ3+nʑN L0'njkVٗ;֫]y *d Ga ET y Ms;J㰽  ®YT_xFPF&s dRΘr*,aepH+IIi[oŋu:c* ZnY  E,%O mh@[Gm`ݯ[C0 w %F)5yPT-zsˍe_޴Uty!vw_aTPi&LFA,&ǩlBqbd//_9C]qTShXeѢX6(\DD Rl]!:cf$0<<'CͭkHO"]Kz?)ޯ!x-rݍsQlrx%H9&SlVBW2kM**k3=6"UP5*(W#Xt:_i]Y̛GRQB7(Ď75rhz8Z4Dzo Q#Ԉ]Ku蛝60x'3x&\Q"Gnx/,Cun,W*Bi+'Ӝ,Zd%۸l5Nj,yA=3Σ,F:Xb%>k؞|]pƷRtDx*]Yg9'{SM1"+Ɍ`;KZv&\xS 9{d>n%NW Li:~V6@80J$ `V&QH)۫~in۪r'NHu_[񯗫 zt0eS-[#KU ^A? QdǙ?< @fn AI&S֥Q eQ4L]SM QZ< QQ*w>;ʈ9TkL7ڙU ;9 lXBY( YNW `(?FUz-,PXCþ5Y*ΤjZz]X #rO='δ\rXxJVZYmOGm<"xlj*49=d1{}_q~W!xyT"Z~I%r:(L& SǒMM9#k$ʏd?Xց#ovݧuYckVF Is0V5B~W#@.J%sq i:7qvIx`ZE5lf<lsHY.@VKu.Hp 2ƞn0T#]mz9B2"#q+wxCLr+x| Y+\ ETm\2l(i&6ګb4߰e(e+C*xDЃ(8ʣ ト\TDŽv7nޣ1#Ng^WZЕX86W+[rsNy7NU24 !w沊~J?}-HaaPmg4Grҭ,6"Y>\x:؃v!H2e{SB$ .1HO 0(O|Ħ.$05UFC$t7Ε9Ax3$jdHr~p_ya?iϊjV;.NC(9!arTbbAxGط^t\9)k#Ug8>+T9idQ.ٗ4ϚH邮v-:aڼ CB%[: '*f $0NErmn^'4,(`X4 PP&E"07ljWSV[u:|?' ˤ|ٹvyןv|T^xX3 ?P0o0?-x  }d8o/onC ZuǜKƺ}PSB@FMh-`myHF18Tp:4h, CD D湕Wu__~ޫh|mͷm7k7ۧG|L{$<Wt5#ܳi~^Waф?}ۻAۀy|Whj#}Ob$E`n0rpzjF+ExM[)6+YXUXDlOQ ѐ=W4[5d5Cϖ+uѽ65 &x2J${CcS~mTK%. 4D<!~\2u"4Tq!OF[ҁPBl H hc TB.$4jU|JH^;(84:ce25q>oˇ7g ~5섯UZNo8!۷pZ5Rrӌq|al{A柆2 GF,")'8-RMԾ؀R)yX]ID-, h#ʺ5WflIT^(C(M)5r)=s/YdNƉC.=͉Q AeMͻGm3GQ}k¯`"MwuK"j9P1]~NE.(Fn!ʸœ!BHxhgYSK[(`^?l[@w><'ϓ.=OvHV;sLG>lY6ȿјdwzNԡ&Bۖ,HB!K)'gT6cG^P z`yɤ?%n1xO!Ĺ,Wܵ[agnP)v( GjW4מ"l$#JΔTBo$fa}#ă%mpD0[]7`{|Jq)|mEŒS MC&qaXҟ':k aY%Yu@XeiAa Ά!I8ʀ(i>+V!u6(G vl|nP*~Z?ԝ_#SBlEI!8c/%iരC"j ΂f>UW\ G`+?o?\~Svj 3ǒX L}r M рR,*dH8 !gSnvZX{f]HTՙݓ0͟0NÒA#v^݌5 ̟tQG|QM}pm\;OeNO ZD/{?>YsnDΜ- K Bö?1uF#Z@?n<{0 j˺X , ,nrˇNOʻʣ',,*ܫ7E[qàg=0tOɵ-+W%EGpk6|B=ḹj^Ѿu.>׎  ? 5GOvWH.8E$7,Sk-}6>c7z>P@6'nEc&Ԏڜ˚絍xAS(uM|1F=+Wb2>bvKp5 h| iG <IU33Oc( M3.xT?YALc3^Ay %!Gd~+;|ֽ:!}o C"eWsHٲHcx,g\vPoԢyʽ nU$COc\DG%8Q1;Jeb'6K Դ%3vl9̱H>ټ RwMܖ=U Q][5N8UX|Ч:LSi |U젃W.>8vimIIdev++WO KBlÎH0QNutIZMR@z"㬍?tJqa%tٿ/w*j~*wqY.s6q ozLiE]:My`fOWB.XTɰ@dt spgnzS%j"u^Yk"dymL 趈%w[ 6ѯ*vڹQ%nFQ s꟯??$ #DIĹ}#W){0C ‡{7댤'D8rSCWdؖ㱍-LJ⪟XFW@ fQhPpϦж%_.֠69w=o*EU Gq[+Z!4PG{g_tBs)A=m/^hF )͇2c1G˶avv eZz$IbFCr3ɪ/Ѻi_w)oo5|sffrˊ'Bdzܱ5cf\َCׄ\s:Ԙ0 @l, ‚!H"C̽o{sk_Ϊuлϧo?ٶ]xo`1`Lv#a} U'C`LfNSs橬9>i2Q0խj^(NXFZu kY 4  RmƓ"c\H8jGdwH.z.[`u<$+F2]g֟k^?W9m_ K& 7$ ݚـلF&qpup&e92dӷm() L.B5͖VCyJk͢)fOd9{]Inv^N|>/I>w;$}V6kdaR̯vGd0]~R+/i xxY{(L vmAF_[Go+}EkW.aD\$sb h8j_|ҢŪ,!\RO͒ @q14TP*hP6 PT$0u[Y<)usS^W֧V7W?r;6:7'ȾELGr x9,O#TU: ;/^•zrY${t >AS]w_G>y-6禐|HL&2FX*P~ 8AI&S X|B)ouUh̽5דu1/~A-v)cv̉8g؟5d!sOf3l+qz#ʽ[2K,&dٕ&uԴdw͆L]ĤQ详J2D&ɘx=]z80хt%3#Mmcslz\^v(l[1 >w E#v%B/5 мiUw$GoNOMI_5F(Uͯ\#.l9|pOQ{Sf>7~~m=* 'ҁvhc =]Uis#7} GyQAnx7mɲZ7(Yw+żߪ^zLE3F> miT=.SswnUмJLaƤ=D[t_DKǾiL^#h-䞐 }b`CMFw}(UJ/ahGPK6$V\YIĪ"t XK-IU}Fۇ=lI6bJNmVȨ9ZLF3zw{~L 򤨍-tBK0 L!}=^2㚾XHC3`wMS{ޜm\ygSaLcu]u=gyy=|2}YV^Sn"C;"k1JLk-g"twT{5H{~$dre5Vf0䨸m4|aiYWlf6FyVp%sH X|Pl&L8|3Ad 3` :ly $GZ 1&"᣻dAK?V=3G{=&e#L4j r+\3Hv2:*`A^>>aEvvp:nPIimo&{-f8M۫%`-ic9g0fпNLخ(o-~.Ojb13:R ɞUJ$䊺;tb pO ։Q&:=A ?E^cb<!SZ#%+@ O'}~?TO-7"zne)z/+V|:󇬦w*OP di -v ]W3xX>/wʼKgw 0Use yw?/GS&'rՌP*v?]=_tMfVjG+X~;dLh9Cɿ0q\O\u3`&CqPsW&d}''+ Z4W=e e#1'~@W^av%Oҁ x?92kPoJ%Hw.qwoS1G"柷|3MϠo_i"k! ɧl>aAofEJg򋛳mu~?3W6D%V:G``ng>e9+7nbWsߘ #+ :a}nad%1/ñ$zu2Y!^S\6I3Dћ$`+F%R{!Ѫ_y9`/<+4ܗ JM^-64dDȖZy6 TeZJ]q vI>8o m!+\zb?r8?`xLeUz W͎E?<'D<蹙&3c>Sge1qI߯8W &s&m_:ѣ4'&Y;kM@|+*[HPk8ͺWֲ1`^f$W")?=m{Zg<4\DDII܎{qTF!?hA2;ݳҚ3?z5;\8OO~{Vg®j 2qQXc ?:eY~/NVD{}t-QUa.P=7ߔʟɵ7kɿ5(95ܭô iPj ?/@6Y-71R^싙#Ӫ|DsAI&S)LȊ۷2nG ^+T_NCeL0A_ #9[LAU<"88?ԋQ_ O;] ß uuɬM^RiW eJgY t~c_oe[ĘTʹ;1ee8wZA+(O=8 ,ABu,&6R2/taphZiI #ej*_ԟ<)"q_;,C@>®ȚM>VTw\{p_sZE(C-*ah1lXk6Rh sR@*g7](&G,[YU ʂHFYk,Ibu0SƋѩ)*E}g)SlfDXc bIv/<(nqȷ(sqPMm<&8&J"]ƿ dM 7?p"u '\Eڝ.RzT 0=>!syr6A3\ {t+Ql':v?єan :63}̧C/ݧzZSMNXC|چ)@Q4ǜ ]b(WqQghi~`?WXKAû3Fߌ᥄kk8}j5D+Ӊѓ5=nj&RP\d-ã0@g?с3cIAWhz ލ41iPDžuG0Ɛ=uR^na+mwRe1`o ALo ؟. |x K|`9L}4Edj7ԾZ dDƖR%dF f"m9/mW tE NX-I\SXB1X׏;N+S :|\$RL<Q`.=JޱɃP5iy-T}>:iGd >e&r!(׌2sY]) Ʉ|L^Z?CbZtDdcL@Y*]ż 3n_C8NM]wkB[;ì2D bfl$ϕ,]HtF{Ɍ$QF K͊9D+S<˻ o#_+Agd[.WpS/TԦ`cyl-8uCmYfSMh. M&18Ԙ. BhP: A(" BaDf:~w{5{/E|z6&R}=5/L kosξ^?5㣳Qj66K-4jK?a?]Clo> IjƓU\>e˽PO/P$T`TpӨ8%jGCV`;ܶ *hY_AQL0E„؊ 'LoP[b4Xg4)}LJ2CƠpN@t~!G?9cjʄFF 60J AP`t @H&!BbD.;3J}ҳ^8+G eoz Z+8~mVPF^M(@Dm"2iԾmI kߪTQ)Yt'vOAnDg1~>w`ㄗi9(Z4ppsˮH%  ـ{!<28P*0`4& X* !1^uy7]I/BU}W~13T! _gy~=Y>ڰvOr/.w%pXAnuUu{1C c_( u19ۿ<~ }pD{0h B+[A(I&S9akʅ1+%jK\nTg6K|9KqXcdTwc'7bͭ%YbprcQyVU,*91_'d/FI/$?B7ҁ!.^Z! +Ēzb_WGvfG"jTD@0@/"D`H# 'L!)4iVVԜw{y(jU^>9#s3Y)uo(n< E{_0涼$K/ڑiZ/6R آyO*nLM 3cG>ΰ# m ?=w|'`dE[n]$5ôl)XW}9)_}}DF:STMrG5Q5)̈HӃ ^k:(9!1Ǻ~QP'OClF [\DgKFVW0,O~SX(AT3*׭ (ބSLvh4WKU.5,Rt{޾3$d P/@f T~[ elouvXDwvnSl(tv &>-4cȒUzESFImE_m>Zu,|<^ q1-Urc]sS?3Vbn,A&`m[;pANV6З4#D 2(0&ha,ـ GjGVkyz]p81 ]OJ~}`bLfɞ'p?|qpJ* !}=6,f ÁsVjqTknGNfӣd"(;Wmw;kjϊQ6t0XU V_·(ZBZ$U,YaAܜyBFQnֶ.W[Cҥ^^gtj~Sywz7x q4tǟS'ЊPir︓ya>H<{`.І\&VLEb*4r_ # ]7cW^xyK[|#܆4}ҕnf=rpz4£ o,r~Z~6ɸ]wܘ}Ei;<\VR?Pꐷtqo^V]5a}̭GŔ&..md`~xřZz\:EK&XĤF 8c}7ɷL2,5A0 ‚P&;픔u5MN>?mss׾>#7:~˫yL|Mȴ^iBߖ i'=lq3aB&=ݸ-?xWx#8~\uwLG2#u+\lA̦G*L_ t3ȸ).,-A0`L( DPDfBa>e<\o}[2%}eVӠ /URipo~(s[7Yg19u_+DiY/%t_ICw~WO"ʏwA<1%+s]_ (19Ijx}*-qUtPpt AJI&S<*M/?LWoscԨ+JBMi I4١oh%8ƁvjH9 $SY[Z<手hC;Z$ch |Q5"xEPC7 2mEG?ɦ!N1DbLv!IҲ^8Jv6}P!HpB)  S=JZ:}YՈvmV9Cb,+Gy)XCTj`LhFg Gړdk'Tܷ2'rI^ 6;|pgmY Ne~l >!Y<"yDŨDm yZ(0`:dE1Za0j^"NL3ݥ@=@^GDJ*mB!iGGyAel`CILaC׾1&Ik3m@ rB殘5 S>:A331]Ukr>~F> pէG:tבʌX738fѳ336]bX_fDY ?j-"qRmU҉@|Yj9E8#T,k*нWQ<$?᭩ŵܛւ@D?:`x%rm x~\m<iIJ.vŪnhCpmBх7%[ぴnGR" 0o|db25leAFѽW/NዐkX8M eV뮸l@WL5Raid6&[Ǡ%`P%j leZFa1'S~>M5 L8Pz7q\_W@ky)q)7&B*:)w"Kkբ T9HyGIrUfs)|֞<ܳ_ȸoP T@~)4Vy,?߮ƽ*.8pkAh0<-O4rWV=G9\4T 4Yuҿ&MR PaBg@Dx ͽjhِPeg"`IiEDié".ˮiY_fQv }Enͩk5X6Bf1gY sBϑ7 p/]u=K*iEruahśL+i5Tv)z$gFK';a@.O`'U|<޳虏Fw2+`ںov]͍C}W*'wQxp)"-5_yݧU!+7yE,`ЬFE\esJMtd -z[q{le@F!it_ytk8_L3BXoqҟzU[@ K<*LHѝZ c;9-a/EԚ/SQ!'~ɕʈe2}֌#A.] ,qk%Κ4Ts పb% ΅5w"jFIVi--jD/GrI0hÍyxZL^K.=ϛN!&zH4fQ8j@1a &~r#Q.}%n6K>AjPx dl'Gk0]W9Wh5-y ] H.2ܗv{kUkgc$ ǠYXqC؆>}V1x@D٥7Vpy.py)wOMmU8+Lc;N#k'~c.P* ah0& P&! Lۗ[swj{qc|s־uYeuƖp|?v~yQu385[ _o.ޝp(6z;8_ӡy eǕپ}~4;htbZct8W@A\[y=g%oj~F>)j,ұ`Ye/w !:ZCx3G%\n9- ә^*Qz;ՈoMF }!d&k4fvz4G|f;}jGD#˪OٽiArW?0:Y@_yi'c|i-G JCaE-Œ#XٞxAd#Q#A(^9@:ݐ|R@J礘@%j{N9u\g C )r Q׵TYSh=LdtT $ Cdک.SXo#^SO g 7q}| H7 W.7' `ܯЅ;h?y33_!yD'J?sU.,7A1RO͒Htپ@`$Z31yGRdD)7^̪ E=?rdqRWm*Ȏ4cFO5J#t@* ܿ9=A^Pe SJj"ߎ@"`0_͗B鎇Jz^󽚼63|?rȴx03 "I7Kꉪ}@M}=~Ol^ꃠцMԗc90ҫ@R |$:QtWH1ՖU _E w'*cʶXcFڢG9ܣC/9 Qz i[bs(*\ ЯQ ,d$ɍ  9f**`B.m,f\>i7 d0?kj5vV"08 [ MvziK(])fE̓$"Pg5$3Mpt[y]Q/O%7:?M?ݹ(3lFp.N !`KިT=?^DY) \$Ƒ}!Nnsgo:V`G~w 5F6c@zRiЯdGb_Nf? mO @ס%kfg4|Y*KBFQ<{:C~Curg;Wc^JT8HZlfG>=MPT$W|x6إ&o6_ ~㏶Z|%MX*[oH{( &D\a)&xvf"!^JUeH޿8 wU'&Q n3la@pGe&' wd*M4bcԌس678V]2;.$ :v[ .%! G_R|6G!'t`9}-i*pLTж澻YŃ8Xɶx) @_34b34TE*VmMU+FYѾB^G6kIj }Ixzx6&5 }C"oDWk_Fj#[peXB_Rui,pb/O, m{#HbJ"d(PSZ"J''igj,Վ^ k NhImǞPD7~9*){ͣcv5Z;R ȼIK3P.8[*|*7N PB0\!ZH[h5kYɬKľ-3 WrKLbMb'0#h]1vŒNcFV\1c/ϗ>|Gהyo'iw<PMg6^*]ʂH07ɈM۷ ~=DLK|I[^OY#j$|WRr-cs>?{pK 1`jMEwב_IxgW, xF30#d6<5X4 m2hom#dD 7 @zzzU~Udv&BŌ畘cr5ͱ&:PĆ 2r P<66 PxPNUI{Zc=gŠPPJȜ>>/X3\.@OvnunJLԓ܄ĊHmBi _M3D`^x/ =0MCG̡({owO.MT0"#N.qxjDYSr&r sFSY$Fc.bGdǴ=@?޻g?q$ * {\ғadV뻭H , -c8so+VϽTn6}s/:/f[j YjpFavZhzW7(O^wؠ!\ZN׳$b ^ ;4lG> /%џ2((Tob7SL>{H;'>c-78@K`9O'ACW)Bsa.ĦG3e_)'pXR"dA2ApF/C?{kG=Xʵ/,dv7RmfM(Ej[@UGK] ît$e( x?rK||tgsDŽXB]S!y;/O_'p%e6Q4f[j_!֦+ԧ =4sZ5:9,T+ێ}'%ļÎ-|]volV̸kf G曃͙JUMGk6qڷnÙz=gcu=~b梩HA1jۂ9m2Wx4Ut8y17/YWu[s7bNZ(X8Sq}?-Zߵ[]\ۅM.yefz8ԠL BР8‚!S/]"i o's|e2ηWgS=8uhjݾ\6XʌnVyee2S^8 f~ExIV=]X:L gEdʋ♳g m RcIe7+C:E`Ye9@5FqAI&S Jͽ^ fkv];GUyח/%hҶm/'{ xowU?-SR:xM4vۥ9bw+@Fu^OXH^ Q,ˣ$S Q:d11dюЀ/].@5]V .tӮe9!d2S?P ÓE-,SN. cۃɈ؃O@^WD-\ħ@(/3 >(MՓq bVxY3rjl"(;ksMCw {K_e<c2K!6DP:*xOs(:>LL.k҃^K-o砷x`)䄹 s]JyeEw Yq7wđbQrs.R{>>#26`)̒@S {&Hbuu%JOo%R)4.l/}}G".T%Or2>n~g"UM{`UT/ld 뇚0 + e@_VɀDF\=3҉geѣ|[)C+g-`UgF1!;~#ٽk""gFY̽b{WQyApSQpH(07qK Y)aPA@_ڈ,| f%4X;k#6e00#Z"`3nP h2=A"ϭ][7 X< )HrLmDCz:K$bW"Izt[la6E"=XC"y85Y3 ւjw}`@ .9?E)4ۓ#u =gkh*P%+rN,>1i񠶖G.>>ҁKm Tqr>-,pg&^呂,jtqU4'$#$JFuΕLXpCژRu er6M7O? pJ@ |O 6uoQn?}TίSy$߾Ga[̚S 3iN$_Vhg5 DN3j Y⯄j(~-$Mg&c%Od ZӍ=KNq,;87!n[EȟXK{*YAZ6KMu|"aС`@L3cn(\JG,}VƗ6#XX%$}Uۘpl=9Tz˦#/G4J񃐐:M1I!YHi6x3=>xctrد0 dc$şQ 1xAt]%T]K%>`c.$C&g7Bv`Bgz!'@ewE2(%gM N-nU~/8,(C`T(#D0H& N+>"Y)iRj|Uӡxh&Z{=nszߣp9K{--TYu8N6Ph:3 H +&ߖvx&s}ޞ .YA4{\Ԍ=)/!Q$gDaiUw3^'gMG$/ 4[x"CNЫtn/4V-I]8xQYؿ6j q!*kMV% G{Uu`f $w1@BC\C&=8HjEuWp er ,rt5]嵠ӳNJQ\w7bmn]/cY$ /6_sdh\uG6E2$*a]I`E>P  /"ɩbyڪq5Hp/2]G.|bA1SIg.]w=5HŒ9}Fn@rhg,)!ϡ= 07`R(ʔiۼl:/G f`EԼ3I"٪C ,K>7o<>!9*v̖zɢu<~ƒ%ٌ<.ã@,,V[nu`q*0eiâ/.g LbN;^>;{cxxorv#=_8-s!ؕX[gwaB4gt̖h;Ý͢y*L<յăTY9w--/b_?Lb@3CiefuLU~Id%wxq|sLM+*-slK6P {GA$8jAI&S#.?I+}n:0E8`cΰ#}XgсL} JH{RL >gl|sE1%?2YK*lUևL%s6z'ρ@ МVx8vIRh.$ʛvĵgNF~l6]@̵V)Y$ ^Ψ\^>ayVoͼu.c&[/n-En7uVit i כ]*ysZӰMb *L S#z8FUH&ЧW ߐ8ut1#.$hnX#R6e3+7 $I`BH2ِĕ`bP3v HPJ"O8W4kdEm>Eem_ ʨU]oL2в+O؄.I2S=QПGw7l0GMCs*. n"ٙ3Ӑ\oe8qkQ5#s MQO 0캦1|ݗPLl<&G,+F u5Ormz@tUG9iweJ.WzLSo7AuN%8o-7EvyY'qN]wo Os(*yUP̤x:Ρ-ΚV3QJrExc(/s)ńj+j}]k>sl[@?*\9 Fw ~{sҁM_8 ̺SL@_i)^Zğ4O'a(H#gJ9 TGQ+M)C/`3}M GIC{Yhg/&V';U oŞEA 7zE@g1GXh{-sO9`dz09"$5Q2'xÆ ʲ d=!Fet`P97ۅs<%l-avB"e pQ95xE~"c1^WϡNbXۇ>e_:!>=*`X__nb_fh51AMSԤ]/bJpt.@r1{3M'b :j'-.L!ď֒}3 d?ZZ4B34ME mJO>4dd<ӏ".vvBZ(FupğЦ,iM{nJX c=~M7Â&GU1@{D*S5jN!|U.1OG(:GAwLy%;m$7p(xP9=ڴbE.UWɕHTVX{%Zָq:{eX+v{ܨ&\pҐyJ%/iخTU gr Aa;[ɝ-ct6?oQu67,Ԯ)Vw.J!)@s<:ǘGW8Th4I"MC^$JgURq&vQutcB֓+Q8!x`I| i#xm8Dڍ10+ϴ+ߏ+74ڃ@"D o}p={_R3[j<ÛՅ 7~ܲU;s  ?4G 0uo51aiȶ.uzܹҒ`dćx"+PDV !Y:p9Bao7nln{b)4LdN!| Vc犆p#W Q8jLeK$v S֪|{9CE̓-9b {$y鏔u͹S[8nnyݗ}g/=cG$odtJjsHPܐGuM0 F:"A+3^_$0=n%H>^M,5/ _/=C _p4,8$Q.(臟nBtGX4]ӛincS4P -m ZmYW(+0˲yNJgiyc0&wC(랩ˎ8 m\;~"RR;TPl &ՙ5[DuOGGwFM -J: ǎ4з'k&?v~5̴L0AI&S#˕ ocir$FPdyevUVVzP I+B"RV70r,hB!?.GxTH(DN" .hEh !2q't1ai% k@eF\NS.X(BFqa̓sDrY6yفŘ js8?qwI I^,ҟQ??'?;b6R-]6 r2AnL SJ} mԆ(|2IOmBh_;UΎ}uqkT6}m/rӒ8l0 -Sx*84`ܺW>Ȟ~d,koWeLv =Y`[TvL]ig$ աay+/dMF=%e=4J; mL>txPy8z5^&蜫Ue tnLM7[& ʊk.tY5+Q^a'WZkm$%ၶl6*2\ܒ _5鱋kM`jjm fyKMJ?1QfzB~ 3:K.͇"픎S됼J#Dx:xp4uOT0˲j?/T^PEX7^t!2eH򣙘[G &4 w/-nM{qzZpJ3{pUR)fPV.cxUa8^.WNL[xS^hBN3c9jֈpP,M~+*43 P΂ F0ҊEvK?'K>D5OF.an+#F.SJSn(jq EL=ڛfJ ]i}'AȖԪZqe;'7nR'xglTzzZ X?Ȧt‡+?k^`r1 ʰXC?\}ړ]VB7Q悤>&-M FN읷yXՑxIX4k`}˾MsVc""w 98^E{'< 2iv6g[%Fw:>zY?")V'}l _Tw|U/7,QxPмb Zi@aiR*+&Mx@hz\<yCRg#1f(>XqÞi/ ;մbcEQjaui+%25]G2Yѭjh/}vA%&M1>9a~q+]!s[?:6e mPLȼ/(HI u6g pPӂ }'Y=28U&*ѩMMϺg> aJTq!>@k:BSa*_P{SJ({;fIjrw)`@F=0԰i} " ⡵_8FߚAJfKq 2qc!K+o֬R=/ft @|T Qb'%NDvn0~ {L"_Cc L%f!H=,^&z+;W69`i]Ii;=잍zthvW7;8/04,6}pcj@PK[l&񨛷{x4tq[)ޏ5D& h'obp'f.P1y`x)pGI}.^ #3ȋOF qٴ2Xg‘׷y϶a[E#% '9&Ri$ Bkh .ec˃GNoe08 RMU$쥦1+7itB:&q"WBߊ"ZI^@qG1#-bwQ`B.eeGhcR^bcV!vFpl9NZq&լ\jRZtRiwQx~Wguqۼ~B ɕ2֝q]X7+HXi U+fAe߇֟9bb-;OBWy&u@~wbE:5#2+܈!?$gjG'C $?f0݄e񂒥K!n5 PdCP?朽xx:DojǀA%&- xG㺾=9_mr=D%&޽ ),ƦCa‘e^4FZR`3|DRN;% reF, 1|:|0md:i6%;ѝW TV%ؔipYAU}K!63h&\=Ҕ>HG o9㾲Z?aT| @Nn>Vc`Sb`Aa3{3+~h .t\2-}<>wq6`dRbe:ШA72z͟%Lw0lm߳OUzn~hzwt.VuDݻN}A u3OP9 \꧑Ջ!b昮(ѹ[ϲHb+QP O 4@pw@~C^?mkziFU$z,ۑ !o5EQbM72]qV3t68f %t?$h"k/R$s@w⽰_J`PT4+= T;4-"RIs/u<-f9,a6(t.hމ$@#ߔq_Ls X6D Voj_NŞQ|W> gZ䆞UDԺ1 p^^L{-ih ^ÃcujcD}eA2~|N@0&t0Be"OnmoSlh)P~! Q>!H{?iWTxK˟"&(\W/\pQLu~E؝axf:?|l[60*BXh0 T& a7ϵl=7s/ǟ*9G*Už#̮uv_vpdڱg=v 5cb}r$ѷ }D2;dѽ'jkHF9 yi^|IFFcSx݆4S֑/Fs!C10=7u( .P*a@h0 a(PF !0Y|kZy7w޼u_=?U_'LklPMU/>2I:." zfHoco/%-Tp;#/g_%Uؖ69<|_?W-@|[\bwmN/'% 5ܰR'Y 'Qn9s8P`@U AI&S<vyZZvdyAhjte1\3 G='0lߴ" CnJHR`#;08H*!,HXԫdD Vg[ x_xtSx5mAX nt!;C,86F'pDlRfRA>W&4UKJ_)s(QOǞƭYi0Փ6/ %:dGf{k &|Ÿ'h+LUٯAkD4OVavWxXtۤ`w{gi<^m:)u<3j8|ScXV"aR ]a}M;+dͻ?Mv'&`79zcx-J_omY: ZXSyUekT9^djJϨ 6UY)eOf0 c`儤77X^7h+P7`#F:Z]J^pKP̛r"S_-6~ ")w)1&.4T5 9VuL51;O\$O^>Psmx8WKFJ1Dorn5i'Ps!%Azy1&)޼ h@XNXxGG+&` t09CƄd/ c9"MZ@W$ (4$g_myڮ3gasjeF | 2zz7 #vъ.,b?oSMjd%<|y@^ TTvVG}uMso{['Q[CNv~8F)QШ8U({@ȐXumkb)\0m<=|)^0e% &FV;Joʱ50>;G3Zb.hd1-jWØ(B:UqBA̢0ziES4+DG|;>)q R gW!g&Y$YæE!#):GCF-Z]*XR55fɡ;ʒw-<7}frAKqha{U;R68`s;aeTĕޏMBF{N+ӷhBuChRդի%R|y6w6uw6vl :=wJ#Z:!UtK`6[Z$Փƽ@E|=ag0HQZj3Ā+q@n.V{ w0HAs` Qܮ8E;o QpB^s㣁:dr1Ns(:1(ljoi0\N)yLCoJKF鼾 ҽ@tmW D6\'TR,qo XC-mqVVLA̼K%.>]Yp$˭7|ins RY8շUapǣp[1ʀLNֶJ2Z1A#tYs9 ۹;q_Ӱs$ ĕGmo @jG1qv(μ^*P^bL;gln|?2eEm@%\cIvͫM[31q2k+/rkK'ӐF-fc1I6,=AT( B! Fη~RyYej<^.^Gp 7yu6 XcHf'co^Gb;kÙNzIM3ݿ.' 쀶|8i6)"ߪ +z^IPpQ2jE춂ӷc)HhQpP썊 !p"5*.LR(}jUEMoVRF3#/$ba2lM240Q2}jҎTmHNyw3F kVX1SrCڟ) 9 (_RPgDo;uRJBI8Ap%7ɘ[ :)mԊǝSBL1󼠕]9Hڈzn2 kFvSgؔ-ߊ8r{2O_lh^Čׇg |kϲc::L 2O\]pu  JM $ @|qs9tT4g2 u k,W P;)ңq;3\g^!a(ζ״ǐbqnАnA0 `:\Mezև3HG{2]~Fٌ~|/.CJ؞ ܟZE,p'7t7t87].A#1$8;:kkoc8~ ?5}_f0 @0* @\&JaoWT߷\w| ~p>ӊLB\Ce,{ǡX\o/e3sөM:O?tvP+3Bt"\v-:OaOSvK@vL#RbDŌ:0V bL%R5x_]ھ?U?\s(dj<[9NvKxoI>MhzmiolQk͉ۓEߏo]VzY4._n-E$ ]sm^{ڲ rGȿ2Gk0W瀠 =ie8A5I&S<ߨآxY'>AڅFo`S9Y5OC$ 'Ln$bG}ق/Qjš}?t)icq z-bͿ7Mίn֖h$}NYEcɛ>#| mMVid ^ 3mo!)WS!!!S6g`M3E#4r)Z..!Q`v38tmv3 䁺N-#pbr OUqᦲo4HuځF~QFBB0>z Fn_`z8:\ #~bEڻOG2AByqJWm8#уָ?%@pb@7hSC +F]S:Fpeezװizy}vh- 9l;^[wGӰm5 X} U*Ҩaj-ĩy!~Vn;?ofԉtb\2+bqs5 vD-/Mcj1ۑE셫`-(f?s^0!51y  B]9Zn pVD-egV,E;\Jt­+jGh7xf`YCnpk?lJL@=o+pٴ(XyòD2g#, 8eӡr`T5*sLb+IN_ݴ]+zZ-8gRTٸ!AS6G-:o1]7(Tr ;+(#Q/gqE͹^<]1d@k%SLXTwyhwK/#|n9o^\RlӡWLKX5wH!|freS9EFy$ <>9vds-ABIlXT[TqApXljɍ`Eƴ\!j)PԵsqx@e)M+*[–MҾyJcA.@eRMfay/Nܷ kvE\/?F.G7al_DV.Pxa杤jR6cHqD4u0d@ANR?NvyA?n4kgz$h>4-|u%~z=;+M9K"!VDU9R߇5 yD]T]}e^ g]罠_+2&nCt9#\Fq"_(]0rO# Gyײ=s(m2}pHDׇO4Okv&m)Eʐg>afa9=Fp=H^@0fQkpc4wW `EK8}GTCή.} ZnC܌ .m^W6(.X` _ɈQ32Kr*sF ^QR{ @2l ؠL* ALB3#~Zu;dG{mN?W#Riq1D{~F~8UgeLdbn?_sd[ܔF؉&+L37i`Qe\8Y&͏}y l@iHԉ*l?nW&"@Q\ސAQJ W(0a0 PH&ADb^繍k&\]_}W5{ߦ;_Lψ-k>j/Uq>E׍1ƲR[刵pTRdzL /}@l5;/o ^e8X{}H)`|K wTjF_( /UPqO0\nWAu%uQPWEjlhBv}T0f3Mȑ=2L|dNwpk7 vdI>NКm+䳔XAurkT/8;rg{l#.R|r_}vh,tiS%!,H 5I~Վr\=0BT#;*y'5?n!Q">K^K|4[o9+ur֕A=hz~b L:l/ 8r8?m̪ y\.:5 2QO4zU'DUY1Zu9ăC=[f&/M=d︍׍GRGz^f@KӮ5J3SڟWb["Q3 $ qWpSC9y"~oUNҔ1\uL1R\w+0p `JRwyqD*yxߏ;Ka߿TOKkyM*JlйA|e[T[iGݨ`t>zd/}9O$)|vP7Rp ]@z1 #F2 @K AWI&S<ߨ0 vֺ|IQجҰ-kFʅxXyttܥ A3x d`j=`#[ Vi{mqn*k6&z}f&/4iGJPr J"TI꯿5 Vt\Z,`:;/ P!YZ%uR(G(!6օz3t 8ϢktW ^6yOO=iE3"1t?O1I>+p [1q$Ir3@|,G3`XvkcދLQ26n#a:.,ǃ-TƮ^--WxT_7Z` XoRNGd)QV8DZxMOyCs*aAdC}W; E2 -%o2_Vtwض,n[Ee7d?".?sq *GBXi R&_=i)=5Sla>~5com37l w^PyX-YE=4;2[]E.;ze|"w/>)1UJ]; ޸謬GQp*bLx,i_/?:VE$qVHTT;=-.<1 g:γ?+դFOnK=8D dVWְ@bF1Ä[R*TSijP2lҲ L*m~ɿNX};+19`QZcjSqnkҲe_o`|Tz;8;'dq9GG ?]6Y/$h@_TJ sK޷0ɋg 7)*l܊s^2=L( cz>N]k<9'%GĆ]Cw|r-uМe<2uH T/$tTel1$ WKQTFG6hL:1rn9.OU2(ptk$t,|G}H4\YF7*L}!i%p{ Ŏvp%DYĨh|,7BӏBxf54vτdxM1#@! rNqmPmY>jE&gy5F ̮a2AˬaKM$Hxk߆B<XⅤ)5,#I״ ʭ`defkC!u0$gkG n%{l X59ֱs̖r0yB r/w^QA 2ř;QodH./" ^j\L;Um Liy3w 궶Ɩ=En>D_ OBYzݱ귐y:| Ȅ 0<vKv%(m^{>..!q[XsϠC Q[vPԇ"D>.~nJq;fM-Է206 X0& a L*!0_mwyty>ooO\W"[RnOgjiT}i cG[/T.=zm Ӆ2^0x|i 3. >BȀK Ut,,  a(0 p& B!0B'ǫ>:Dx2달5?Fo*9]hgwW7l3hj}T1em7r9 @"Wl#v~f.~.j8![w˪~WB3&m﹒J` DwgjPQ`%tdAzvjGVC/Ùۂ5AS"@~|&G5y23n?s\6p LLDzges3#En+dSºm2 e=H0)UN:S\,>VX5'W-dvhB XBYa\)}1y rKܑ""UXPHY^#4lj Zq7h" !>bPqR|ޭvcxGzN0A<'DmK(6APVMY4> l]o6uCn-9 -7aPCOS7Eא9 _ADca woJv]tѴf|G:Hm>9[IπIݎ#6:MN':Wy{aOC/q{x!ȳNpޡ]m< "[ jYSvc/i5'&X5f>uZ-l-0&!npjco+;,&EYrУ{/fi aV!(XqC6/Q ?D/dX944H%B0`4A@D&!)F|^sn\潿S0y[zaD ^:~sUtO(Cd=ʞAH3@+W7JWg=6]]ɯ}>[:3)dՅN̛ݪ/H?na.AS{t|ljx3J6f(@pR),Ah AyI&S=_\bX{6p,Su[VxožADCʌD$)h} ?J.\g bsK֑·9i.43e07E&-s j(9Gk>) >YVkP1Eg% @s/|Ok CnKCGbo.RG/Ќ͜IEfGQg:HV(Ͽ. ,)IR Qz^1+ɲ0q\ reѨw#&I^O{]V9siMcދ|tqU E=+Wz=K8+\x /M0ccBndyEY'Q۪e6[''Lf#~ֺ,?-=nND#/Ö"[)vyy`"#dd[2ZMV-,hSR멓IxCAS@ ǸνRkj-н.3ɑb KAE+;?*xo XFWx5R[ַ v,lY%D-SLj 16ā%{) tIkѐoxO%3G qE]u4itI}XKSC֚[50,7AKqqI-u9_+T͉fwf0aRHd1qO`8>raWR)m؊Ŵ@] o"Bjh PyB}7<R~C~/=9:bp,0  ʎo$=Hzey"jcZ?%F9+YAu<,3m;1X,A8 dspI6.gXݩ/4_7kP⇧3knf/=m* شo,K 5ʖQCdM(BuR)eccjrx=->诶uQ5܌XWZxby!F#z6Vm LTDBclN Ue(( aguQe$O͌$Ȅ'FKV{7p85_WETP hœ { =q/=9HsB[dδ*G-G& &q0EOƄ+zS`HsOϟ*7;W<'Z>F+t6y!>>Z[-A4IreDq?fΎdcܜD5/-=[ܯiǃi.lsB% `+VM0u42 U'LڀLdY~##>1@p)ϪӺ3\6^AQG^>_T$!{O2F`d_nW}zyfT_(r¢ Y֚&7vupeC_S5pqNsMb|G v'+vuT EQ)QhYNrt(oC2,R~*eWYS뜛Zڄ$1cU_@>)z钽ZbDB(&ԞE[mU ,f:qlԿrVHs`]xfDCpbg H6n} $#!i;qG:?s~WR({P|uRzu 5.\ AĬ0֨야8H# uQv /nkPONFöZ/艟ˑ\_O4plm ,%(FJ*L-9ؑDh%$hIm8?2Ռ 1aO9=/!3ݘG'j$pZ{d֯ ^fyH6{=['% 2OdJ$H#JhX\ ٶ :K:l,i-C ^(+#"2JkFO`)DϯuIk57l 8ަ ) {|@34d 38TqZ2*0. B*qH?:h]e)61R6;5~hxjF` *!i 5Zd`:%n3y>=/|rjȝ x}w _o`-fX`'-DW낧!O%{R Ae:PX")[MY+ۇ2CO>ҙ>/cja#s;Br4lz۰ c ΞnO~n=E; 0rE<{4[eM L^]F9;tD@ fM$/͆&} u/HT#zo:sj'<߫c]T'* kQ|\BGѽaѱ'1 AjE^|M z {СD%nxnZ*#> ئ O_Ymh{l0w,AhC/ MDD}IBx(Sq3ą*rފNcFNA חsc\Z5DBx4v &R\PC(W B}br)l@0Gˬ ~d- & {+Ř3Zƥ*W_f$v`я'SϟL`)4n$dd-w[kZ, w$F!:>f3W(j}`ۊmJҁ9U/ƂpV`g\z s5+QڏUKxH j#/puEed*Dl w _XhYB;܎3OCiCHjJp^{l.)a@bĶ] {<`flF?-('jZ:uDYJ f#,_ZrO-k]cP.f'^DҷAK8 LXT]=Rd+8KEiiY7[-C*,AǻhsS%G dBJa K%x60Y!2)d[D 4j=;c ;~/*1_6@!g;St !k 1>"]M׷N'&ҿoΛ}~S1%'4ukrUVݐOrɌm4&d;#md5tu°0hBG])캧>{u-_ҥio2~n=k ̇Ane 5Qs^B\S$$¸`[8j gW+H/p;%rmJ60S 0=#5=oTZHS3߹U LDul\k Q3qT\R-('8AmX'd<2ˌC?F W[BpYZdVƘYAZ(.[ڃ~(XfM-o,NY㗡xyz Ѹ/OХmsfX[8JS%\rI}c{F*Տ!(NwMp${QNY-1b1#&]M$uȴ/?xk M?é +'ݲbȥۂmL)wR4uh(9\8ʤpj_`Ohy|M7z!&_87բw׀Ξ8:(ܳrDXX*ȆRV9|հ+1Q`1l&ɏb/CDT~g}H8 ^@+K{RUM=7Zv~@; VPX L8Si}{2\s~ _kn;~R jY'T .52ű8Dp ̆J9azG-&#Kvs-{P5jFItQRS)ByϞDZ|rwlPusmk)OA*}> #4m5n$Ypl~>&9«ϭYTKt|*-3j#+^=`J晩oy\fdJF]]3naNBz὜`{իdj2q|";{ߒ 0tMC/YBDXڧc/MXҭ<|Skq^9^Ll :@"&Jnl&wp1UیǵL5bکtGY "<:.#9fvh ˽\H-]#fO e'F.qf`?,.e ޴3_QfSw߶|/.s~ 1"hθ*ShO*h% 0Ixcޤ|RT a\ܕ ?4+ ˦:>EE`ml|QDa]̢bvf?yWO;LGBMӘZe:4W!b:R@ըZPp`qy樎$A%cԟ:h.c/sjl GŝE~ɧq׊-&#R#}ƁpehQ6V26IXC]k؈Bh586dp_)vYok?<2}?#L9 +oK iWq ,wDj-߇}ۿw`Aba!setX D +b [09p:@"okEG=ME:TSL8!T5u6WEw>05o3!fjcot5TxGrc{mP"| =;)tBJŽ5 l<ޛbdY7 zKl6R.БiCR"}LkvG(8%Wߡd_JWGPzL__|ٴd<A# G98Xbzbv $h85_^AC#v["ؼSwGGޞp=È0Gnٽőa |ӭ~CFNc KNY4ikӚE َi.; K \1 ?ܔ!<"1gv;=eMP7. ~kn8f9.0@E1s4Ž5ZQ><| nP!zN =9s[!v]M@b-01,Tr$$,9E%5׭Mн>/ ?hy)*ū8jޜ/aI0v@R<^ >1X20^Yۭ`M3yFz e*jo&xWPڕ_&I' ٛ%\|yܶdTg׍nws DUMAب10z5nq1pT&#¦X5I`,![NK>LعT&JٛLuزCch sRYiRF(rEDxp$l~RChb#;_tHbO@ak6"z G=%0OԿdrWD3 @No!xbt.*u"A/I91o%㵁].KpEo?(˓U/BI:=?ێjl>pg3uX~C+ܹ VLضN ^G:ebkE"-$,LV$P;Z}͒ q]nClHrv ]i .mx:)$JLe8x~Sw" 4h!J\ < d!US6>j_K p7V\7ܵylMt`X:ᚗX8ĸR!MYMa"/ xU7o&ӋLA2Lu5^2a{V!Vɰp.s :L5zBE2 ڽJE%qat2sNe/st\a6PQMzK gVٮs˂[Q'TQԛmt0'r]t2mx x A\e/aBP^gCp :tepEaCA]2Aq.T*E.`Hu 4*JU8+%kul/5Q9dCKGYffK~b(3HrRGu胠pLvr=4*;hqGO .]g=^{d!ZݎF4[%"Y78UTp@c~?dT&M4irl4hwv|Mƹ]VT^cIN:9qtQ0G2 BsڮT/?5W&gD]2ăG M)[Eq]+BmsS^tLybs2Q4L@N9Aby6-u>{a%eZn 1*'v[2JvfKK/&j*城.J'yWvю9Ǝ_ @zR2|0ypyO;9(Jr}#]l^Mkz*8)xgDREJņvNT-v##Zθ*btsZVɉ{2$#d/ 8 ?D?4>bm꡼*T>9?K3ǭk'HBd,㺡*~aZSnLe#rA|Ti$i{Lj1I!C x»hV@ ui=p8Y.E.CܜB"{TI#qƑkFmi$qukUXՀl42=C8\,O+=}U56tb} D7FiiEUNF<|J/=wU w5=ukQߏWh/VxsGz.l;{~ GYѼVXbXHV=e髂DTˆBNU^Tb{^,RLhvi0@FmAaDX㗫"E(~<֨lVpϨu!;2N[eZ.|${o:(E^2<^_"@3sp~^=O93IZ/.螒8;G6j w}f v2wiSt,¥]5 $ ggI4a9VU[~pw,,5vb&p1sW}Q}:n_- e㑷t*:@?Ik74>Ű< 46W.Zl)xX>jDU*r}dH8iJN3AaL5+rqȀq<ӋDC1[&A?G7IѫωkT=͜<s8cF ^r)PB~uŻV$$7.I߆w:mgൣ'ksѲ_֍j !Qq ϥ ?`jƃ9ga[)"ؘ5C~drT<4I΅-DŽYӷyTq 3+Ir I܁@5Nci;WRVڄІw9 ?t}#0~`5;Fukd Ih2G2.# yJ pYQk @`Gd!RER3сZ&T Jc+}j\\X]AmI59fgX龈(Ɓ #{!yv-[#jyf#sW* ޶R~= W\Q]}?KLmד.,dƩt:"=̼0S@TEZH.YjJ2g?\"{++oc|>oonZXewR͹ܟd{Vw'כgdS4# Dn@Lm*{tuVm;TE]Iۥ$0O`Izu{ln-iۢH}b5bsNetvx0uE]*y||4|qfg̝Afh:WOר) ?BI4Xw<0Rpk+i/0^lr/. B7ƸƲIm(CFq7S:9$ԩ“f?A'|Յ.eiwh ;qKc⺜9lg2O!"}w (-^Mj *|PNSWmz["XFt|}Ap2lц> JVi0bXy^K..ˠVV/"J~l4YP620nRZA9;:*-XlSuN>ny鼌0ߣ쿊Y%%i3ve/xYtGg 05FkS 8+V?IM]{IlpDW#Bc6 moS5:$@Ǡ@L m A"lD69 "G.١ɨ_At!$4c74$aTo&fk1̅ :#CNNMbq*8Tq"8۔<&1]`2+ōX[L-YD^\lϜ`^BfbN \ֶ#hng\8TҵH"Hw W`Y[dEO"&/U;_Jͫ!v\˹[|Fg{)?*zam=(:T>DNCg ]<2n}ߨ}GOUWkWXqvॽb[$rgiEOn Woh z_fl]gƽɉW'OwX>k٦AbL[m} x>%8• h$}e8qb?SHsDiϞ MP]3`q:GwWL_6ؤwaP]""ӿލ-UR(t*},]V&ɔ%NwX"<}P| ON<4KU*j^sCnRBW4~,@8k[. "**muㅞY=b v*+aA<Ӆ'Xw1;RfsNKE+}'Iv1 E8s:N]Ad67߀me ̀(/pw %&DXX)w+%En}!)>%HBQCL\ @^m=NKM(R|Z_hB7YRaIy[#&KX)6C,(H^ӢzԬ PJ&>:CQ^otN&UE}gE~>ZՁ)p*ZfLץS~z2l15Q'w⭙x9LR!GvΆ4Hl_ Nnh4ɂ]_fz+t~<ܴfY膽zr#!-Uh Aė ]Ŋ(+/oYv1;lW{QAep00N=?"]"vd(>{T@Taߒݐ6KN[b4w&~$naJɁm:t\4cRrjQYMro m Oig-LK#,A"ǒp#USx QX>Q P S)8|ҒeYӾ5 &5.ojV*hJ$ |ksA%ouE[$ WW˼;fJ阮կؔ8tIxAcԈHҘslS6|cqϔ P. ZϭP i+*,ʖ7Vb 0Ri& {;zwlkԾT~ye2jQ; H5 %k}υ֎Oo^HʭaM47,QT.G(B*0VGz!bGwoI`~_?Y:a 9~NTԷmsF6k}w&tQ˓z9=^+20PqY&v8Ml4ڄݘ̴HOѵ7:e60$$66 f<.|&x {m'ˮ`S3`6DOs| ADee7^"^f3jax 7 W$WJ\|P ,I7ax/¼?W[*6壚 4;,XQ"_!qH&WJsҡpbPlnIa>;Z{}akC]TcН}EkZ9+PIV(<0Y~ki朽C -, hw;mz ђEg0kV8 )UMkC u"WVٔLsN{Y_Mh!AF'<{WLD5hLd}B#a[|7Bv#?fۀ*\% z>1!a2YvtcRO7n|,ZY(@Qilv,s䅯7z0frI2 v ϩJ1,P\IT·i1u%WȔ3,`!w)GЉҩ[sFxeؾ[>L$˦`8|m,il+?xLK976 |ع7an{ tե&э;]b*]4ptLEEp <d#;Y<5V|h|d f+Qbdt[!RGjÚj+S W%m;t-x" I@9cձfL .hpmk>*,s Vre:y8Ԟ`S˙w@ k<9Le ꏑOpLVlQbgiV=ydjEA% "D?QK>Zg?f f!BBѥ*Kd URޗt>Ѹ2NFi]5Qe+2kT-qit,i⺵_tOXW ٔ䰍z"UE h+Т n5'Ͱ $Y YM1jc SF]_<{Onj/y+D9끅 =g8bQȴ8/PڏǾqH-Y(<ؐ۴aQ[ \'Y;]^C[=)hyZT9MoB/_ *1ob053+} ))la,ܛΘ<:eߍ(5-qQ^6 ~%=YA)8m pb&EI$ FٕGԖ^LҨPzD41Έ BY8Y67_OIwXie& pPxF;#m r=3L_yo+!",04!&?r+9- )%AR9@zؙ9䈸/_vk=n[2ey`+ЅG-5(R162Td @H b.S3l01 i:ZfԬ Nև~eІ.Ŭ+0A2s@T M`2fWQ"MC1ѻn'쑷3wKu%(5} wpEZ܄ ]2>EK0l6v' vB7)4`KmZkLPQK{;]go&8sDP T*kt3!_=פ ˈȸZVXgS.YueY-_RGR2By:tQ/ ~&"FoZIݐ GӖ{TUGQA*I J(~pC 98?[ljFlR )qr%7Xˆ..qaMUӎNLT?&3u9$7f}պDL(QЦh!z#zUଊYʟW+;O@a4cnGMff}uv&4+0X2%UynZYQȑpBĿEFv&Kuo H/.uϸ9/hw#NEvs;{p{Q Dm=u:.HPhM%a:`E3 }B l2$0[S疆0tGI)26}4cC5 Z0A>,7(L{ ,&t2N.DnjԝWxx2Ejm@Yz-+\VjqeF[&**6'U@)xp{h0zH-AgP7*``fG2A{ev˶RVϬ j~mm, wڃE)a)/>4\,X'j%; / 4deQ4s]fΗI"py]@c}_ >Tԝ ]yy&?r\S춀84`BdS]USeuX8$bic75OAI[]߹3CU,Hñ.<T5<6?-9pEL hDxKq}m'.y٣tD^%:x9 Ωs8c8pB@G&F R#sF.lCRyj:%ι |ζKs1ehKd+U^Vhؒ AfI&S<`xQb++sָ7?9"1ʦciiCy$dA9mqnuXH@{lwK !nTdmklBڕʨic,mpxr7|VQbNZ4Fa0F`bRV(!u1[Eȫ0bHR;Lhk!N/(vLćwf5 E>Zy㪜#tp b.;h[,GV:㯠&|26Ub8"˹ `},Xk" A?r)ŖskZYZ=9R2.r-:!ݟ<2F|Sڼ]lDղH~<M. GYFAČe:^(P wY~i?cY ȁ'}-Udog[HPQIӊ-Dn,-~9.uYDO&9 9iCmE (0>݇?q. 0?kTޅO/| DAJܹ}~ȫxyH-Xz4Vy(swTVkvx)h0YSͧh9.bɑG{Y̕ɩpLϥ)RpV U}.{H%ͰjȂjw!Ÿj8+inSV Kl!ER6+W S/Z^;_93!pi9vh+⎢`j'GdG_^8x ؆'AxfudͷY)^#Op6Elݜ4M?5:gdJC:/BbD< }hXbĸX Dڴ!EZ{sX`xH\FMdc7&v%%h'0K@P3wmTд~gLP&8=?;瘯ځ&MC%aE{MF#kܸ3 xׯI+\+̨Ϛ(k- ">m]UJwtz HpT3"/$FO/gaet@ZBvܘJᜃWŸTuZgd*es]Z?ؿ[R-T`3C,eNI *DM"wqPS2I_* C;? 5(% ?3{sL5FrYe1^g>vJ p-jUծ'b9D.nMqze=lX矖'N!hGl79,+ ]|`Ƅ\ӽc`@%Pd>_$1ryԋpjVL!\vj6٧MqU/g8D7*uہ O,;E9OF_r?{Ѧdë@dwFA> T"`jH&k'#ޅ ]'(dsaīC-ub i30Cl rh?龟lߩXor8y`jDBGGG/I7z^kԐ &1XJ+k[Gc.ݭjy[ _rn~0ݢ F-LK͟@uH6BωC;E8~RbTPӲen[̶:a$zs2'Q/b&vn A.Ag4glkf?9}L.)u-PTun:nKKlHW,f N% 1qaAZw3YɄƷ"N W(:cvw%y ߾֐2]s$K}>VF#])h-৑RDFoWvoGO:%K7zDtP|ys9@<2ݐ` PTbQIZjE{7f탽4Ƒl㊕L"LhKʡ?08$52KPZ]6̖f쮔ɟmC=jZZNG2 $-f)Ħ@ xW;9 [ tyA,AseCWfzPwhD@. ?C4Eyb^6W_ⅳpSl%/<2FbˑԞ^A#;^<["<8z8:ڜFrӝ%7bQӨx8, ns I\ꒁ$7:C5J)&5dodl1"=Ω7CX3Q+1I6b,@ƈ<m@ۡr[ iyC̀eoٟ迡!w犮ֽ= {ߜ*IbAD. +]NIdp"ȁ6MpMJ|&Zwk?:ajq2p$aXPv1L"#kS8u9'ƺVlvr~|;JZN柸j#)?4QdkRb QE!z:;OTV7 O_w j/X}sJO;LY?L>|#z -.!+ XAI&S<ߨdyzߪWZf>Зz0G lHܺ~8;fjL_2kOB7N v$ >x?ifm3+WÈ쇹1O.7fzG2 su-zKpW@@h.t,s5F m]_@Hv|Ў"-/D…o6,b41 YN z7in#!I`kZx=ņ(xVM_D'>x"D"NmomV<2/2GZw6}'%,9`LىO&dX/{+U0J-b=F8(=#^3aveO +$VߝItɑ h,\ČVSK7gL% F!rE x! 'kkwpR"ILႄ @zpl,Ѣn@0Cdzul2Zԧ;]Lc3K;{y:HLW ɀW$qn=n^[Iz/,|cJ2YG"vը8!e]Y't 4r! Fb)3BTV!?9&؛):Ġ|FZZ_dodȖBlTV:p9ˬQ%1J*|In Q~Djfm8)$$=35$]A ]Ǵc-ak%:sB7⍱TgC;dJ6I3%mX=NnkkLr{xV)v)[U?gEUKni'U^=l"zC 3=#3,@o|8T89jV"oߧ\F!r3`^֜cab "Tn)anRܚ:հns0(@uЭgTn|Bh $f8]pDDIy^؝ !(tt",sT²QSUd(Qt~l=7x~ mFhEpƜ5D,wۚXISX]PΩ#x>W򨦵QM+dL`Mռc{;f9'?}ЦD{r`V3 O%*4E1,áUxK`T4.J._uGFbSQy0#ǸfKtvf>ky(PRzdubY y =3t0.]:@sYAI9Gi5nT#7Sjy'SRT<:Qq?l`Ӱe? (&*y900>Libw*Tߛ nQhMV/]îf(g6=5#-O"h+S~Sཝ՝u|ݑ?:w|Z'y"j7o O>6A_%T0OE~Fdbj3ɾv`MJP#`U?*\0tpźKhB` O W֘ k.>w1mf10^-  C0(~m &l8S77 >uRbݞ%;Genȩ (n^A~dg&[8;ϞBrFF릐gKPӹZo~f.鏏`Ce>y}G EꚹB@vNxy cr ?SC e)6BP<جc)oTEuG%$VЩ$Hk|n1)r{ٌ͎l UI^C'- bÎ)yܣs]IOq'e)sxl1f u56AUWOn`/zXm҈CL&^:Z}ۖla; !Qo: #JٵO}Xb͐E4vx)'o9rI κ.Mro6&&'ǜϹJOGeA$R3Gss2,j ƞ/?2ψ\U9-H0pqWZ>D ]S{lם|Z$eIbjctbR suz︍=} gI'D}Xӌ)UP0ѾƱܘ5/vDófMpcܵ`*D'0 ?n3"v4`WL5|ےdh6tҪm{ .-4ې.lv(x VZeO+r ?r`0ĕy-h BlZBZԮHTm|\\@Hf(gb?CWZ]Y;uOw*c0߱k*,J^qČ*EPJR&W͌o谋ri\838{=?}YTڇrpz(d[$fZ׷se6Ïj ؇8aR/Kdus $`N~XBOԤ*G&\^]>|fS,uIWPq9M6[[z'e|_+"XWIfa/ˡِ4>\М^^+Zi:P aXPa(*#&WRez}Ww6_ª;oO]V_Kry_85]~Ol pVzy|\5QMkHX}Z;?^{&C.iJݜD=5R8EhH@6,=aP`, pP* Daus[:k3;tV;ꮉXαzMd_Cjn_ ItTM>󟶐RL[$e8^5 $&qC} }p˅42?'z~0 xCȀ8UjDxc_Nhڃ,/JG3V„~\U5[v*nͅQXv< 7kcp;ãA;$ |=ot}d2$F63zf?M|ZaU0}=/QJ+YB eT çefNHҸ6udG\Ga"w:.Gn0xp>2K84éG.-v75~8LŌfSAQ×?@Rd;fI+5QNneaLf^Y7䣂h$IcFf^?n':?Bhjգeo=$a[ 9S~f}|ۗ"$NG2!5n ^(c?%c~kfaҹ-t.<5Z?D]j6'vTʼnu "L9^~QX]8_J &b  ?+t$xA!oy$k|^gE00V$&:LP)`'btR_qnn~љq vޡ;w^ksG,/7d$խeOJrO%Uk(vf\a1~̖צ]pwyIwj8iU$:ŞЂۧ{p4vl BJ0k:E$('O3f&֯.{owZ ̲/S`NNT6w(X);)HUߢsĻ.iX]C:\:,( l0 B`, ƂPL*$s~8Ǐnnx9ߵ{uZQҽ_x2_Y^*Ye{\:*Ѵϡ Y^,WA?oFxEӟ֓Ivƚ?Rڙ]ݬqja(TA xw3 UAI&SBg܎r!ry vlduq3ۇ% _Ba]Ͼ8 M5/p9ς!,F5 ;Rsڍ;h1g]Wv$U#M\ESq˼HG/(KZg^zvP o(hd@|^YtH (&f3|{?pU7]ý9Zr# %S7e au2jb+ YzΘ &ZmnjfI@<|x|,]-8)}`P{iCgm%+ h4Ytϣ=DXy#s}%$W3_Xf#Ϧ&Fnu$)nEIahT_9•WMb%"YtӚ^hؾ|E1r4kѾ]Z"Nv0X <_0 ȇ3]~Rџ7vAD0ƻ?`G)kc| KE?]4ֻ%gh8)iL c}<_~  mkZmJhaYT2 #ZZ!.0Tpb3V;iG R:Ա <."Ez┨eĕF,Q5L'è`*2~\؁UwZ_ .@җ@Yp%ZЌp1 wkM:Hcv6} ӍzXiٗƑXE'/akc*fYPK.+DX;=O:W͊ty;e A{=Av i˞Q>X6~SВiAM?\USz+R;na]58Mh2zQkH@LAbGKE/#ض<6 4u ,=Te(խrẢ"<ԀimNHǗa#yGiiW/p"×7-'5G7տ`b7MI0; O%,{=|B72Qʵ f(2m[iyO>pqE' t/0h_;j;sWѕVUt90UH !U>Z)ȧW)Z;[W)!;'A_sk@C`Gռ;6t&(9y)z~Hmps=1K@_#+(OU1ϼ*QNOzi|~X<ǔ zʖ!(l˒ӮMg0)j}t ^ᶏ I5| xf5)/єGD}%ՆLPI ɮ HU&+?x!mqLaM ԽURpVǿoٍsn0/~,6ql -q|'Զ!43.*CvSO7-bdϟqs}Lr4x;:%-3tUйm;Q8 %1m0Q!b2¢OHLgvuU4_.w|0}4|)W)f6|AdE{ׯ)&;RH@J"ڤ-AE.ruqBuVOP%N&A[z4D"#O͘pB5A!]L|hFTc5 N3c|aI v`/+NC_7}pNBmfHRz(cL]hrIk[CQO λp՘T>Q?AJ5{B4*3UyXkPK(NrqϘX>?>|?IkLrX}rjU)u=(!jes |J)0} 9#?[2 D ]x[Nl$WM*dْU4&SZ_<ܞ|y',6%2Wu@% "ψJg ݈^m'rtם X=ވ}9\5ZP"7{ z&WX|]TP2)[B%(cEkj$g2+ bKzpĈ@CH.GA75QRf1ת7wbʕbMv(bG̬Wݹ☈{X|?ܢ ~e$TiY{0NzذjOAJjJ `,P aX0 ÀX* cP&1V{so6CSՇcٷwP9n?Qw|R'.ȄX}x6u^f^bBIWRlN^hۣ2Km^L2?{w'$؅{v?)'}%TO뀗P+AHUppjEpXSEK:)(s.4σv`=֣haW0" Z~v~g0cD8 &$Olu}:Ys^kXXyΡR"(MOn,xճ/\9vڵH {7]mOI%,hT%?]ydk} f=ӔI~=pBvY0"P(4A>t<3n}Co}8{A T$  *PiՅMY>q:Twt,*))| '-%w#!0h1gӐWrWܑf]Dl8H*w4/%$3H6-hx ^ILKu\Ny_ |ǛPb+FĖūACqdtB,}g,_r=jѾ~13;`,[,"=F;}o_Q r|s<yHO 0s=9=K"RFEs}t{dӽd>#i4k6$ 5s9Md,R$ lVQ3fUogNHu597SU);0^_ )/֣+yV׉f{Yr9իFxtnejoÈ8lQ{+Uyi37<[39 ]CbhfZ αؓ-ǶmKp Hi.3ȥ fzN_~Um{Z Ӗ[hΏpwgNI:\v6&si`Qu $2)e m,oCk"$'DJ004Ne{ߥa߯T5hJe\4b846(u%t!Zfܜ!~}Ir q ֗qcENTdx{%n&j6ؐdq_6U7suڄ{ /a4k=?H@^SnnTL.JK+b\8d,XntI3FUN)X9+٘1T&=^4NvPp-] Q*Cv tP>YTA5:.W!wevzTz+Ft[;M R5h{@AI&S=\76pA.VoU%d&tn+Fhv_Wx^$Ac =(渳(}.10b>lB&wm dҸM'.W D댢WULTrz0!K%/pj98\*5s7.7ѽ# ȼ({]uq>*Y=5No2_2D늡yb7NQ]|4ǽKo>D{cCt遭INJNY2FO%\Uh@klbz/X3#ǿOD=1E-ߗ{❼>`޲p-"T ¶^*[8;X !9f=^4uzF^P;ӽ+Y5 K }f%ӢH8_?u9wUFc$(hy8;1t~l/Q]tOufkd7q @V-Amb- UnS>7,SJ$]RIITߝmyfk|jy$ Ӿ)1|G'zٮT] ^l_ËD>KLu8:x5E62lO;*A_dҜcѡ5:'bM FqzV睊}DT41Fqdx"*C j 6ɗeGY,rj18yo$gC?Е$ق8OMBe5r-<0F-qRRP3ołY9%Y}cc${iRЮH 38#CHcNEya<^?7:PAzl`Գ}Uj(eS"/'֖]"z6ʙ@7=Qմ3nyQ#u":Gf'_7ApAW~,>@.y%=@רCAAyțV$3p77LF 9ΐo49 O0; @T~Ի?g< y'(EFEB8lzHexpPbWlM=[# Z4aR|z\+ݠTVh. ˸ggd#ygpܺ t'b) !M=6t }jCn*)U#owFє=CHe }C5x޳ ;|=I+E2Lc}/ZfhŵsU(ߧ7.[(^=&̮.'!(C܅2yHGJzLL/p7N508>ɳ2NW_d֪Blm|#+&f̈)٫`> yJ}_➉y e <*|ᤤ8HZ21#0sT#nչENPP.Ҭx, 1K'v{OuKIkG *st DYzWaa7ܻBx3_ص ƇK9l<1#tq`w6o#|A3yddh3I*R͇-\ #l C5 i b zR3ʞ lM Ao!g7,QV`T-jĚ |[z`ŠV8CJ/HccuQoO?.uL8ǖ&^^Ŝ=:mn q7>܅r!Ev 9 xd^v;YD¸X9.H`oWvv_a0F*Ì-_M(ˌKp9=N ZrP:\Ͳ^Ys7d)l*0[jktYPw =_*X;iim`[BڦyúV?}‘;TrKS n9r^n4~d5-lP<ΈyWnJI**S1YC*~W}4Sky{U|;`jnUZ:7᭣ޔͷȿP4 /Bh2C]g 8r8^יl!]M2(Ţ B8a;B }\𮖅: Yd{%BYV>r0 Oғg}`,Zn Gv#<OZ_bsZhWFx,%ijYzK:5?q-(V!?ݢKpqڮ,M^1̳T8%B-qߎ=?:'P^1wc[E,$!#,yZKvf@5pOP ؅%pᰗXe&I›jY @RS1j4X%H,UQ2*T幼6TuƯznO}p씟n's Lo~=̖] :إ8"crpz0?Hvu矃 V~lL|8SGCc\JQyo PlDt0F|= 1o[^jrP(L.I܂X\i:>Y56~uiNr}]$1iǐr~ye G+B%cR<<ҋݺB Q㞺z˫T7+-u(T8d5[eAD|bG`9u!zs`(S'u;wUlx[;KS 2̛* 8+ E3x1%Dˆ=j swCxF4w2"^EZcI'oo1u+%bIAp^ugo1B#I`Q ̷n  MTd6eI+XTDvVd)BI1Vg݋=LCTKI i8пsv:hDgsJB~}6H,Q 2˕8> pX+ o߉xE0}2sOY*ؾy~ȧK r_ʅاV\M՚7niQkzVsɳqFpx0 d,mY r ,ԉ)ٱ(OA5,1ӂQ% EW0k¾94lɩ&u.jsLhgnr_+A5Yk4(zk{L:( ajDus+\v?(BeUUG~і @r 6`ŠcIA=#'fx d`0GDZQGY+@avLHZM7Ilt߉`^8{N_oMrZdb'iv³)q7\ÉѦRL b+ FGӸXӏ3.Ob ߛn5ګ?"m&/Vn%?W* H,1倄dSlWcX:N*2*$Jt96ا[H65*/n-p&/5y8Qu!&VRc bp$Q8wY0 B`163̤ ^huE؃}kBFX@WDmvVMx&,=PCxwIă5>taM/9|.ؓ9)"}hŇ{ bXxT8׶&GAe™#G9 rѴ,$#u?a}zVRar7CG!z`NqKc+t+>_aQ*Bnt#܂<@~|Ĕ]ց2 [1՛ o2q'Wcm|5{!V-a; ŷ`?5H$ ݮq|g\8f^\~k`ic<ӄ3IVIq9GZ(S'lD/gF Cbߚؾl`@gPΡV}'B;ظ`fE٨-6M=?n  y3\EOV V/[RlpAH-Ӂ4A/&b3*JIwL`Pn\ڗ HvG3نcc%Tc鹄 2ҘθDY4+4`RDȗ:P=2Vdiz+1g.S"|7ʯd_V;O#=EvYւt IG#NXlMBFOhhѣ< n+:F a3rv -K٭<"e$s0>*Pm'Tg3Rmsc3J;sͱQbbY:yݶ=6*zj:I\++r8PdDDSz< 3Fk{t1K0P[B#fG Fׇns!sRX[֝^7ϗ]}'(%勀zԩHpK} Ȉ2Er5*Z+k02XLٗv$;%5Nvewԩ0pr8113t rHŒ 8^FٸzCXZӕ ˤOX"9 /U>]y%Peu+%yGOvC_S<#}fQŗt| }/{ 42?^{)ͳ?8cŸզZe Щ.yr@4|{(8֘X,>{-/'H67\݁hLtEy4ev֘&V7+M4Hxc-﹕9}Uqɯ=^l-iK/~.{ z]=5Riv3+GtȺ);ʱqZ,o@Ο7݃мI)N">=gox)s-W}̙ Af @D]zCz ,0=Ϳ;?xeTS 本ùe u_У# oVvtw?QtT:NpO룈qEq9WKU_^)JQ9(v?j *U K%w\8-;eP,O9ė?_.r>Ú(3%aaf; y^"fI>Ezox}݀r%íg 3lZ#$г@ ]$ǣ#$H-sd42 :]mu%ˆ=pCf܍ed9U%cr.w}y+'[yx+ApPyR_?Op[C{Dh9o{h>q!/6숓G`˝Vh2G%cbw7~7w.ޱ~ =SO%}\:%UعbxyǺJٕ|'rftO}vBi'r|6H֘ɯS~]dעp$ N<+ O?V޹$^ay5UVbY!9@ >2ɯG>ON]7Ihbn;Z%(p}]5AWF9Y}r| bc(ljvFt:1\l8Q"/2] Gz\z51Q>K:Nq(qxBQ*\O4m0b_$RqGvpUsp2`v횠~@~0 t?CWRU횑<%3֣uo\>^A.^fCrR)De CRZTPJhMVڞThOf  j B1vΧ:׭bѩ|mHqLFJn !f[os/ZyhԵFaџ$K7CfCO0k5 3b2N}h6L3?]:v 3Ev#7֐aBAPI-,%-c[LCڹ<f%~5ptƒ{~\-X&&VI8FI„IڇgFW_4n`[T'M}V9KMϮR_골=txj]03ulWZ=t֌ @MwQR6D ˩(#ư^\*p8ebJ@E3I" =o4+~i lAL\*t.,"ٲɤt& _=q ј}DzVK; =-i*89,QdgKe О]"89 &ysQo!\s(\4. V?Ac9RFaV$YKƪ-͡_}Z|hLgo_L.e%FLGm2So`~ &8$:<յ00vik:jV->5!Axz0.Sh2c(- jEM<~ xn/? liGɋkp;lmaTcai‹R<1N2NP2BTǝ}|'w=K|0pDO20v`+U~2ұ-gGi{_ R%^&5TmN o+-M 5 v\L¬?`=w'J~oX2ہVђHm!vnWj표؟KRܿ)f-6Ax{sվV#A$o@ܣ5Z-*cYuc,#ѬV-\nD%U8~oe_XEmDsZ29Q#&$\QYfKTk|;#(ByR oc\_]|ёCm9HB c9މ5ҚAmv9ٴ0P|_mz6jI[7-MUϘD1⤄ . 1cQ\T=25)@5¼w%<*-0j Ew9ۋbpTdڪ&!"v\F'1-7n";3аuyWS0\ֽDWEctpvMiSY8amL1ʊlTL﹝1X42r8Z1{?|zs=tI˔@ܛN߀_W$B*wB[cEp ';)׈ډkd9=C>z)twbQ+=344\7Dzҧ[3iKG z(HT84CϏE`J?$*9QlXF[2];#^ <R`ɑJ+tQ{(Z&{V|Ɠ7&TlW! $dnR/"£Tgb7ck0RɜgJR[ -~.B173mkٛ陳_mW o,'p#mki[:Qcs{)2^1*W&k=K}vB^7C*6_t _Ra\[/ i^⽶"jZsNGCĠ\g'^,DTj) x"fO))%s/4(=IP|%nl;tB?5 ~xM2?1|j@ tffxl@HSb`Ћ̦,/ʟ Q1 dTY{<5ß^q'EabP#dU7haR =+cOY7ͅ+>tYC ovd9FN4 ~d*ͽ _]EF8ggX ثƣǙ3ITGnLh&w0~9;r\@Dw Tʭ$*uP]=jZCA""t"I;kzȨ:?Έ0VEk3Mr,9X5LA9;uA&ң!eI-/wxD[#=7X˥R4^HF=u[gn7eEasqF;_괕kh+D&s&OpQ[#pt ?)ur? Ϝ6~G^BQ0 ~V$HV'<#jh/op pk[`FΘ?hz󏃟vt gCx>k̤QA aA?=Rn* Z!öҔ=?ba:"|s~t\W {}zDˆ<|uր3Ao)f+d NV `|e{Un}Z,ٞ,nٺFz`E'[m`|[^~.D6͍Sg;(ToJ>-=^T& @hxLC/=Ӳ)N\I facեL QhPeҽ"~cw1<ǚN$vpG5υuF {j!|8Akqȣ|ƨ!{O2v?;nթ ۱WK,qF!@B j5egI}s1U5? t.Ni/d#q`_ Dʛ/DM+n#+ [z;C e+qz6<ޜJS|B3EBx@*}^'!-Ztu/|#Y&A BC%^;n F!FTAP* /2 cX'w"*j57q> YY= +%^-Iݯl'SC"* IYyC.Sb@ b`64dDDȕY\8 ٞύ]#OX- u1\a%egz'R=k8mvm6E> 1ק5A5Vg~<Ǔ}GtagbLLřL^^LP߫$W+gC p &K'r"XW tq|(ya1q{=Tmͩ0gp/jEIXN D\Ώv$~&8rF%Ip:RnLM3@p9w5ɷn(2ӯD= *LB'@n[mQP]pwC8DMA5X!ŤW!gܦ|6&hHdR6\_!V;2Q}2~;GSbb\uF@,tu2'?8̍fDB翪8& ֛&9 Nz@n9+ft0& mʲk+wan?p̬V5}G`ğ葖3mu'&"1v.`#=2(}\b>ťG wTs՜9ݰ7-m3JcKUb8A{nGV} C\Ŷfn2G e\ M/iMG1+hXe}`ţHAd _xG#"{j e1V@Y9ҏL_<K@3TmWeh _YVݱYwwf"ٔX 'ꇝ/S;ZJ-A:),QeYz~DvYh3F!ɦK |w)|-Q31ssLC8<>3jg $?:XUhœ&L_t#OO)6W]g:H on4,]P1g6 y&v mnWUpm t>H.OrKF7\%4ks8բo#I㽀،(ʧ8',QKИ,=x?hU' =7_Nl+(Y5_=zRr,{-G&~jin/a$⹯ɴ|U}tfᅧUSga0Ѫl( j—+h p7hX =? |06g!! -^)J~$Xz Pe;:"Jfȕ|H ' A2I&S=x b#0/۝HV}1 |1bfLu>)[8ijfU[p+4hfIO|, .;@GJz0,/ oAo=SmLOI-7ͯ]'ڍֆBarRiJ&y$ ߜT'#mIߡ:ClB PtErPSWJQefv3`. 2+u!P w< LkX\ț~ͅAڇe6L*}nqXH{Ҁ|_p脢%&7`5<0GjArX3 96ۿ3𔄃Jc)0X%s<i Ձ|N^eć?>קdrKx|B*EGUx\ژ7?Ld\7i\2 0 g`D1L%sWu=ُ;M.ZQu`= j|k,enIjS8*A6eYXH:jdo/B[7"S>t `#>~_36LI3c6G>_P{Y>N x3 T?n5| ,J%8WrwG^5Ky u!+B.%mPdt܄@vJJ&F/}W39)#G)Y]óTaPJ'/蹶QS"uXJ\[ӈ9 &I M}:w]׹4V?$[ 1~0@^qT?]J_Ee ؽU S?8Xh9p<5>! +uP`$n #IZٍ3SqAY Z< ["'Sf ^j Cl $Bp2Vn D2Mb/ ocQ*YV1WXEѐkjOS|5Zw+o[ހS 4 _  ̿eJ*LU9E\^T PoZN)D\PCƚ/WfD;>O@DҌ)9 W8_0S>Mu0,K:*&W#f 5slj~$rkJ WhJOӸAcEff-]ΐ1IU{ÜZo -Fr>8MȀ#K(_g;% +򣨚\A3"ϘW1t[ݤ=&IcwIQ`G*I1pPe I/sloeܴs E^vȟO뵵ڡ;NJt;jBq3IM)>Zʹ4 DP~oY2Ϲ{7ؐ΀9Ӡ=韂:jAr'_XEƺţ2KZUedB{jJiGX5>s"bQ@h|9+sul|{U&H@Tpį  {3eT{TjI8p{f1dTDN^ }k6泃PlН\$@ꁨ!u!XbO0(7;'$zOאEͰl- CBl.M3Qϼga`5,`  8E[Iq~tZGIRH#Tpp:}/wЋL&SޒlUcPbGH@:s4w"G Op__KAzsRm :0 L55FDhyf*[EyUYE4H:k%yuZD4Uy}d`ld$ Pr_c԰-y/s)GtRQ`_d$$jEk9NC2D 5X|8b[ȸ"W3]قSaW_ZIG͡mUH 9u{[G"=TC*^(*32zޘ4slhK|݇71%0*?i\ ΨXoa=^Trj%3[[`:W7S AArYM,ܘz!JD6$>-{Vd@ }y7y6O!kt6{& ewa*%lkfAwh峮XtKKZWwXYJk~ O?oƙ![WH};I.p<`4ȵJ-I`;W^p(zC}^Iӏˢۥ,=YV w̋|[eڎ: OI/bd}c~C(G^Ycu+ђCV(惲K#^6OH4~h?WBux!tuS[݃׈? d+y|qzQފyXD[|lOvm@1SS]u`Q p&Yԋ$pZZP,b+}Dovcp-G⌟V%P."~n2 39|E@p- vϳ$ k]h~1Ȇfe櫄-]  =o^ٮbY^FG~ ޾ϫ;B&쁕•Sθk֦y B^T8{33p'0>n.Y5PEJy8N0X,"J}ȝ_>7Ҍ$DzaP0ZQU>'P V:(,P"(\KG,Z8ӦZBܘvꨕlsM)luwuk BC|Oe=mc1lKfl;@rgF*Bi,Mg=i"W|\s|{򅶭3dg7q\oIo8' ?]QI' 2H` P'2xO `:,Pd΢#^El8f¤kF-./ k/nG;!]LKkLH8n񕗻 "/kh6\P}g/&0H06,k[] %x4?V s80*~HZ9dO@%l~qP49d]-& bۜg(z-yl!9&'8|$_e PXq 'QjM,0/ =aXFgc7.jNj $;{bj<CT@ Ȉc-jTK7}H t'*j ۑvHG6TeN&:8LBFwRv$R׮WO [5#3pWR,0+ɽ$LHYEwVgqv04"Jˆ\Gμ6 #wi?ӊGZVf4.&n6oxɋFao@R# CNvi3؟xbҴQю3UB3g@`jL8bH:И}6E;me [E+^m7 =o91i*Fd~-S\mTvx {SЍg}sͭ%\:vSUFgq ]p{R 뤶jcSq(ᷜmٱy"0Ǥ1gf1L&]-8AA+#כ>>Q!+ȄS"T6^gHs0֥ huV{Iܫ_t\FUaM߬zɐQr 1B2:N.6/l(̼֜HP2ԥ?a:Uox <DX@k-ƩDp v(~?@"Z5[_n%Et] AG<%uإC"zedXjلo%2 X_ZhZCasWk6JY[,kPjOS.n/Op%E72a׈ҝ*mYEyq2@lng@cᜭe$ Yw4Z /VXoX aߤ$KtrBg6jU޼1M$2,QUC \D);j܅rĖyA{*K6iyN"J:-鶶wtsi]q x2mOz#4dp7qn繏$dFo9";mH=ES/=+Ab3*gUx(7Q$V&=cwJ^kc}seG tJ|<(&L^fI%+j?/ĉqUO6fhzh[g{h*$:3jΑ .%BPڝǘ[{IΊ: jXvЅ>]]AQ Acꦸ{$cߴ-z•RißIHuzr_L31縶&L; >*qp*y2@bY.f * ߩN`0zuf'D<….jF8#.6=mAnYV"%R %V9udLꜜ$dBQ`j}F.B_g*Ģ[, neTS_i?TRrfɅ+Y`ko#Coၟi؊uVpEj߄uikd)Hae}Άj]=gzbzu ڸOGG;4=7[ nQc)5E(KQvY=0V'"Nw&D@^O ‚ BB  z!9eSpw7Zc/9yX.YFؐ'n'_*0hW-^AU(L 4l{6&4cM@k}7)%uשz72>~Mg*XU+8TSih(++?U|FJٳA^ emI9ew*_ɂ'!&&)"K˰@x]Jawrx HGLzC²@JEnͤ2Lpk4꿴wp?6b龜e7愷wbWE ~T elO}S}(ՉڠUʨqF@׵];}Pժw9c>| 4/H`ʝa5[\^c|.'W=Y(Kxr 9V @ 咒8tpn;DiR2xӽPWU*jL1ON `i?JJL;OUpF9k 6Ǔ#lPTO4),Jor8_~6lX>,!_DMz zJIp0[)쥝!^k ) ͎d6XSΝQ=Oht˿x`ւYSc~8P\) )@ _Q{wdy>`«<$'RxoQڙQ'lQJPngIH-86ԠT p: "L"#czJLKknspx>mK?{Mu_c_h6·[ZGk=:z-A4U)LnMFτ5_FV@oyS-yb# w&\lҰL4fXsjD).={P񟢵j5[ (t}f_ =H]]õc_jO`J}ׁ`' kj6$oJCQY1&%U-D̝O&O77QMUeA+Hx 6~ĴЉ>vr{w Z:+&"%zO?t)Rэ?"֡Z"U+h3,Nv5=GbѧΆj9q)Ljs#c]#C"S4Xkb2^{v2utꙵ7VFe, '|*>mԎ>3D5M<)` %KӉEyUf mt]N59)umפn*n.qbByGZӔ`_,]eS]K_o: O&LiTg'u~ g[-Iu˗ x1H@K =A ] h'Xr?q|s穉{wu0jWS<Ћ#VWpP襍ר>,%A02L"#nkw}Xֵ]658y5>G((v/ᇭlmݯGT ~Acz\3ne;O- ]^qvu9펟~FEj$NLgӭ~_; X>&𮻣kց-N6Xh 0 2 : 4AvI&S=j{?vKlUi0l}(uw;5B5I]akTZ60>=A_:,eɉ}la{LlwCitd/{d7~)?/F 0MeLPhQ{hJA"\~۬]'*|Zʞ>k,h(yn{([Wm(k$jg>`fSKqgLZؿ^\9_0wz& qZr _'G.Ezכ+%8PmLa·ŎƈejEGh[5P0x`.VcOXϒr? a zgS!rJ6NRQWOŵiz1;N7n.K?`ayH;a}7 Q!}!pt+TA}܂^pc@NL1_-6m0*v-q:.ɏfH|c['Uӿ)jd, D8כn%BY=d#!fYGYtk"2 o(s5'21mZOsZ_E47Xh^ɦ gD:,p<4<"]*c+? ƣ@}Rg:ML珮0 /kE&cܣG>2P&pObqw MOj4VYw>X@6i~ pS9!` %|~ MJ] uG hQ+D9vf6;vE`nAN!~u8+Eo@h0glYՁȰw/:v}J]L %a/"ky{0ng]2Ė*8uB^WwzHPpa/g0]O9ǎO)4mx.>qT\gc;kTI*fUkʾ~U }FԶF^|ۺ;- ug?1f mf}'K֞8PZP9%zԪ-*pg罊-\kyJ yH}8?AKl`L-Bn=Y+V: 4) uWy,"Kn"h QB֬י_e 5bD ] iz-Ǵx%Z;~P5IZDMA[bO^%%J`F4e`/ %2O '3;+wxO Gǖy6/>;C1&%3>v&- $(}(ռVҌ}؆ g1IKJDIoH 6i!`t/ DGcVOt1 XI:\]ufx( ^*t6RRȩuEx\l3V^XD~?YȤHI FP'}#FWW9z9ҰbX!x1[taڠC8cHُ\כԷ4bi$8h1&\L ˤ0 #]]-7q'cs奄{zJ6K$ګd5A"?XV ˓cif+8MJ,FT>vz> spBnkC4s؝~Z[r면U!4Ĵ"i%.-_5Rk8fn.zku-Lryyn#oy5 zZ{S3b4ngVZBPLrQB׭y"UWu=ޔ mțevSθP#xbLc }#ɪVXw Jv'ړקs)Nzf;0k9\֠kSVlU}V=AS;3N^͐{1ljGX0` mn#<+Jv 4+]{7I6\Ey4jխd(Ǫ*Hŏ̠w#XV\y᫽.!Yn$FGz1MrƦg(RĨ(-a0FDPD&A Fa=&^5ƧzW|4~f~V?#9^߳386^qǀ 곉3KMUZ3[)Kox|kkmK =cp8OSrވj7B!9-`9j gfTۛ(boMI?٢HWo&w`s~(JLv7| 6W\*vnGwb'.b(Jx4.NBj J7ߡ]Bh潃K3idpOt3 kQF "vb ,ܩ @2]Ze\9Dn~}l;gڍFWSv m2шѤO Ӱ:2Mߋ&&bDtMAH&םл2; A dgxvm,̜cs5 )7:Ucjjގz.:t1GXjsfUx2kB`g!)_፴;5g'1uzs)zCoF[k5Xϧ+37EP7m_WRx +s=2/oLih407 a`h0 @L}O{zW5\jTj~|y_/'5̯nד!e#"!@xBYYY%&=r_%[K3+@ŠǪ}a`i5:0֑A G #*c]u\Oo7.pX&x+A4N8u]5F&z0Wŗ:W> |-텶z,)1!ptO0%ftYoRI뺊o\0nI6'b*+L],8s.4*'N_:)n;zqϠw|t *[`7؅L\ݘkܔvxbǜެw7rJg2 DRwvdXwu?dbI)e|c7yrWSMh+:wFDD@# oX><4ZgӨoƀ"ECUV=[Vaa^aJ*1Sى+ټ,CЋBt6tzǐ/b˦{gmuDApMv.9^}n)Xd=UFjGNf)R撍$/sgLR9fAozL +F!ɴ8beNMmɂ@2z `p-h`,0 `ؠL `H &0_ϯ>3.&9ϞoIo3^D&ʪrWrIO‡]Zï̯'U`6 .ojF"EPxv4+@#K}\9qPlXI;;h :P)-jEܙfn5p%`Us U5W ZkڥP 35ٵ,-"aDmB] VpN;z$g%*)1,Mywcֵ1`̗ˬ; (ۥ4tΊqw%dim}c.xd[S]-ᬥC^E[ZW4EPm NT߶:J8{c;ۋFUC> lA6 ɚ8b/z!$  (<=ֹ%*0* `L8 PHF! DaDF ?oKn9}s|sx>ӪޏDwK~lètѧ6_Vww}Qm [)%_sjQwLSGz첖|,Wu Tzx /%A! AI&S?7cjYyGGO5Tժ 5%j0nC%OiIW|J<995`;z2}A.\B <>ǦXWU\_O^ gbM 5karbDfUJΣL-S0D* J&:g~oJFCғAϛ94B $j`PpaӖ")_m]>!dsHUɊ(xS+T{g } n:%L(T \ջojIطeNG~E ymfў6'~U9B64Fٓ{I9/w:ŰXmK++DU}y/sUz6=PY\C XM^c6S/ %-ØrBn-:[5D!%F*4\yYJTY<l,ȆpiͥJfGvnj.L {/1n֧hkZ5wI;LGgR!hƶ4_5'֣d I6EҌGVt2wM[`qݨ\תs4<*&i.Aǧ.ä%ш"Q7Zq &z H2?*/Woa` {p@E #!'0Wv2.?L_؈qy2&,o$8I J`WE}۲q7H;jSx/@,>|w5"^i4H[VƚP} ؒvJUUxaxf~]o w1 *-?* f:G ,fō$zLN<ӑV.8EQM3< ЎX}Uq`ɕ.tɈkDQmp"ԁ:M"B]cOpc}!ۏ1)EUOvU!34 vؕ,s AHN%l~sݦ%\M:X=. gTp෰.|U޵*Q+aSM{Nqƺ鰳Q2W<<|w\E9Z>Gؑ˞ ^jx ޯޢ؏Ȟ:_^$9&ڶ?zR.<gemn? 6uuP/}g Tt =>en@cՀU;!!6&HL2˓ԎfaOFtu~ ո~:ģ{׎ (ﮜk~fK:y &d1Ea۸׳ 8VwӸfHzF5k[x`c4 1)ѫ(&&F#{.)n-Q^+O:nl?U.l䌟LŻO %G2jE/-P`V͔d/yPߙlýRd܎CVlK V^UKN l8:oUy2sufזJh(sі{e﯃t/?VFES˖l#eloHXJ#@ va ccYT$z@S/U߰ +MWIByNdtR9GA;OS1`rVQqUn2% @eV_*onei5@-4pt>墔G g|cX(gu.1V_Zʯ6fPzs>iE@}ވ_kYM} >"8ŮeU/8D$ A|H *e)\Oڷ\w3Dk< e$<8Xگ)g?TBH nxQݾxd ~UvPqTiw:]v 2'!"2;(.uEmea?)?8&HHd.&r^|߃0,{trI[>N t?ғؗHYXbm`[; r#8r9'Lmk'Xz[_C> }EpMb">kԎj3gPGK+!g÷1ts aghT 1bg`@gg= \\2&ޥP=G魎 yRv=&ڦ\aGAA8Ԙ0$ `PD##0|-! }ե0,cOb-*k  AI&S2X%ϣ:)r5^zk{ PmXv&'eDZ~:*D[WHUR5F͐Qy7}L(7 "Bf!ua/m^1 mMJ1޻b&۰:-NDꈲBkEXr jU>a6<~IfhA#x/\^[u/b{v_ $_LЕOIXl,>8}NtdX~{'gώtL4"4֓Cyg2t+ox=×* Q'oY )աR"}~?3Y-F 5bo@̝=)$bA!ejLHSuAi/_\#e{\Id)vOu*k' fFkIS)DD\hW}|j(adTϱ>>99✾ND/427ќ枽RzYݭL7 M_b@<=~CtO'"1ϻ,&rwnr?/;-x(U@7gʹa#xRdO;2ؤ^Kkpy&ԃR?ۢC۰uũeR>0/\3<^k='@Mt}H u1ĭ=%L$lIlwJ88S|T02FBitgtAuemi r=_YJ$s||Q/Vmy20J XJ$RUdUߎ';} }v?^[p:ץq*}޳cH&Z,%'av>]&5Rth^$sHNaygp=ܾ ro"S5*à :1Px, j,%!eD8jM8D#y_^PVh UUM YHbJ?5hNG9W6STC-9EVZz$c#mʞ`O>`7K/?' )K_Dy>U]S(9 k\D@Xvn^t[X!~ 琨'r6~zL9Λxf`8H m?9)ZPe&=ˇmu!sTԪHNP0wQDr +X枿~Bp#qnH|g k,s $"7Q덈_~a~Գ˟/҅K`H&p pc<5s r9,u S˭;beX#?m>[]Yq3j|K̤qVB[7+dF^+T|=W"_BS {ۃeӟ,;ʼn[sSG)ia ^|$ !O0$̠ Lo@P{FryZ׌5$7Xuܰk K +LCHm|Ԩyb|^oV 0y d@+|ķĮ >kWA'/V6>t^iK[#җ[vFܖψ3TN܂Aʼ҇湔O@!4wi|Y1cզ=hF,X  €(3("1L/f[kWׅ{;;l}M~:ݲ}HM~OE稴=Z64lh|`:ꗼK25qHQߝ^}cO;sJh9kN3X(k~ csOUhKh((;. (&1.`z w" 0ZaAD BaD2WZK7{>Gз_BOsSnHt~!?lfLohgx;+\zrt>4OV?y7,?=![4_:C(arj m*A?t7L ?B21ʆfb&/ 7AI&S?@/{J5Ǒl{oߡE"Է!7\Ȱ/i0!JIIy>K| qbޮ1#}"_5O! Onq7f~X~TNP;Kx#!CQR"o矘•zA #(/9\r.ȓ6-.:OU&&Af};)@ "7J?G"Xk:H8Rڤ'XڂQL}>c o яP¯Wџ +=iCaqKp6~kAF»tt^=H XC6curΦT(+Pk7z|s."ҊjIS+g Gdp8Y  \R kI;R6a|a/,oƚU,ϧ \%$ =&B?j"(ڪ#e*0K?0Z=zl01f,9HԣTz b*=]3O T$˃Rs=(}yJ$N޻# Ve$E Q|Aq|m]*;6wjgppֺq~vA)\wC(7MݯP&LŲ+ChB,oj#'dhs:>qCG/[ip^@UрZ! SN`v6^1q {t_ U{xe[$*"!',## |"+TJnj, ?ucxHi[Zܩ2/|KMD ޿C=6s]U %I/p@m dja)c_T|'DvuzdA5RF6#tQMl#B|VG~Jlϕ,; >ideJp~ ~E ۰^"tH&V5jiX忨qHM!lB~],ʊ^ NJ>YDC"5'!Ԉ!f``~sןJLۋąg!Oc+z1fȧنAol˼h}Ahyq^B:ћmhJS@tR40#MD,l\Ga:LK@w@.Uu`@e n"F&ޟKGV־uv qԘSxqj&&[Wh?NGN׮ 6mOڋL]-ra5ԉV~X)&>tPMo;C(h2CVԬEN^V9ٿk"cAln\pq`h΋&L(e$x0`kGf#q"& fla 4˒Q3w(=؟(^K;k*9±:{.%x,(ؕ}"vyrAUƌ,2}kBއv ]YCW rNOk+_;KTHd;vT53AZUQ ']%kMU_0jZ>SkV{Ւs h)ȜQwdo^{7ŬQeg*HOǯg$ͪFn?Gooy_Ӭ1LkJ< K!&h5уOѲt`Bvd dPqX2P)>?` w߶\6MOL5L/m>ךd]6KXWw"F &D%)n\n @Н_}pr.ػm*u%e0pRMJN~l“<'CP,ʆKө<&Q$$RB`! Yg?yi&#u1Y4y_aeU]z|Qsl0pnVe;ŨpMbΚ.كB--+5Ncu,zm %8"iw'*Onmh /e7uR_V1%D[H&^6l}Q85=zUJ "o(׏ XI(zA4653R4 %a 4قHZPbJGx0m.;fdsHKkT=% ^v? lKfظʷ7J k"P:`X0"A0L"#wW5||_8_͏pݲdw"OKƦ.Gw/㿗EpeGת~x]]M€ f<\4Czu mĤ7B o%xCf A4bw !:jIDϐ8  >$q-{\gHt&iHm ֱs'q!@нĺ^_/K%jF@KA3wγ) aYWգmO`V5&[ z);!RY=Գ }(8=וU+WK dH3bM9/|nݽqܑYJloDuZI&A'eG8ډ4r wf8$<]VnydhxSIkOWyK8Y-k ̅S"t”NQQ+ 7> 51#V_3l'}CؚP]K5uP#dPsj| 8N2{b^m%VEixUl$6χt8ad=%i Czk䅺c X4qUKq:wp}'MsBmkq/C%mF3~ɂ\#ԏfs}}0, A`,+ AP&!!LrmU,N'sڢ?$寷9i_y>'`櫊y3ݷ$]V8mZw7g2s"w 4ZM̾[ˣJRszsξ\>7/͒wC`Q@D28TP*a (!Da7Nt%\B/%{ |y>{tOOڭ~1xG[^n.Wfխ|:mKgz8pn3|7sثiZ!z@E,_1೪?ib E #h q% T 8AI&SOtcoSf>cu5d𩾝 ˑ*nxpsVʌ.v0aժay 9co(_)KޠTWh;V߈mL)L=Y`c|yޥ:LX#Fb 6 x }{GPv;g .}6XRLj7f9iCn}v;FEyd(rd>H,Tа"z XT?pȤ!LsP+'f59Z~8Yb d?$[0Fe: ޗ_`Sbכn_6J!ʳi1O>>bBNN-MbW5^JOo0BjSAkxa?C׃/rm uXX9q\{Yt ~(\e1&c")Qߛ@~R<;JR2hy |U]ڕ}!'4ۇVunM :등9ϐ2*)tw3? i1BM&.Y-A Vs/N6$&xͧ=E-'hhvTQ4XHD iϣz J0)=7}rvo*S)0eaC w>$f''ZWAaϷ`bQ$`kP9ja7gfP>2R-(|!Vti}-M`W_{%*FZoq'(p5i Dռ22/--E8mh]nVcldT qޜ.5r{ bOX|bt|az1Q<v߿<=ܔ/UtmSNW;.$ObRl dsĹ8ƨڊt۴9pMB[pM֚n=wئ$WCq_C(潜xp .3]]5}$hǀ TJALӨJO)GS/6Y SXRhe&9-Ԟ@&Jf*8Xp{Jpկ5!~E'QJJB|e/+̼<uxq< ׅW%7k Si᠆ChQ@JԜw'@u|ؤ m!.|UK.llUe_Ž rp( iNl6U-al kLPiW6(l*xTe_jd6O;%sqfLș Ҹzք8MEi o,){~(}+ULݞwV]{<]hDA:^R# Pf|0,ڦQ ;]9SݕoTތO*m6pFC -ؘ[+nt;V u)m%~'ŁEί=m6t6;)3Jjʳ7ӥHyu.K(H8 bp aA!I&Si"&'>Q~ky\%\uTHx*R=Sd֚og^<~3Fd,D zn5.]J ٵ(d},iM蛪}D=A-?k͊l\rRT=7p rJGB)eؙ}K )O/ۂyPtK?,{#qQio;= 5ysVgbSOU+z[ucL, S?8Fml=W;$pȑAv]Qt_r5%wr(BRxwdw19\+[VDX 49OMPrKp =v-޵_*<_;ֲɜO31W hBE=i|!L>+˰XQ⋷2Z hG՘ z&NdaVfЩpHUK'n{)%Lì96uyGמּP:ERe MZ,c-$Q^ܤSFmÚ>tJWc$WfMf!q M#Ei%.N&IJWڵN/_R*-D݉ύ>G;.`Q3U|6o7)<\{4P՝%iNZk3ᘛB"oL8S0eLhܞekB @;_陏[jwu)}u\IoIC+ ='76QA|0()M7;Mat)FԴ2,:@DWYr)`2>a'3uP%!e@jY4+mb E&o<y9r{-t14q k)^,7aN"BP  ~܂ɭW>ʁd32x( φ Ⱥ.wxM m*g ^*56DB7.E̗!D&Rd}z` JlA򮒄4aƛY[iڪ&f"|=F6}^Xt=54 9s:zPC*~^g3"797'VސNwh(Ya掉WwF^7>48!sP?Ǒ5WPK϶ԭnzj'ӽ׻ԁ,j}K=?VmE_(>¯1YÐYf94; W ;/ev)R*domo/ދܭ9XExv3ZYs񵥐6+uwS@maT!"1|> hfpU93wT$7":Mۉ,WziFAaFT'dD&6 5c֊oYmϯGw#lPPT'x'PN q}=\-]}n4kk0M& Lh&F5MJio%焷ǧR%!zƦ#`dh2`+fU(!Gs1[,zo|>p̣fBG)#[!/QdG^2kU1#A=|< xRر5wѤ&t M^z5 aGKÌCmB RU=f6$4LD !xB܎G|;Q?2O] xI_97 k0]YT %+Q&pl{S >+%s嫜ȺXY.(܅QGth}?U7/uCp1r ܁P3v.a2XΨB:vzBFCڸN; ;=,"9:51$ Aiߍrs0쫡 ?#.Vqŵ_/eݪ 0ʤ쩏/A6 /pɑMK BMi i+B9E;b&%/"b\԰΋,m81gWZ36%a,yȜ4# NMikc 8LU *8!6ōFq ȓ)!=Ih+kbe*M]:foW~M@6mo1[^i_hud=ebiH%WN܊!XTЈ T^bNK7x'6nppBҿұ[ccGn_y蕍YGv5g[s~{⏧\2PԂ@4DdI>?yrO)h/7DLo6z+~_A>E?X8rb(ybv VfTuw|)NUy[Z{Kt |­S ~owS]8R].`SWD7D?c`׾d''s kپEvڧMSւ[eʟM~t5^8N<8,Qe%yڟ]G9yD}΅ &5.5-\²yW}zð_PFG,Geӟz7ؼ4HUJ&{Ǒd=('^L.}(:d37 vTTA%ne-/{s.L"c:ظzAíoZ$R8Q";(08|@jE]zu39D4~?xط9=xKg|,U`,rb^Z֖[χf B^F<\[suprIDl/&:iO4,۾[\Vx&﫯z54=#bI4!LT~ۇ`^vkloW@L=NFfgw[a2ARb{̦^)fo?ߡsQqʪӀ2F M{ErlXTrxm2|.Z+ 'W39y`BK߅l<#y\Z!@&d/x C xڄӯծA|W6'o=Q\h1L\#k׋RITp6{+c:D_|Z0PJbR\ҴZ a^Ѵ.,IiPhhơ꧹;hyĂEX6g^Adh f46;9/g?. kid< >P;Fّ]dFWfXܯ)Rъ5lnHy@ mW(rԒ5.im&6eX޻Тtz= e.]/~"LzK⥜;7թGhށ_sx,Xh%Jy"pgdoӁצ!%[ekl:47 RONƟk "W9UcZ-RoA/(ϸB~WmB_òF U})w!`wIFh?g*{eH0 ?ODbkYC$/˵xQmK 7i;z_Bαk7t2g8)osHT8 )gaGi^;FvP^>`wA>--FCQ?ZQrX@, ;;o.HGУӍ'c%&.kH̋.؆Ρzu< n]: 6)a^aO`-7o H17m` r5ְc [0"a]$\C]0R-DS>s3Y*:Qj=q.](Q8^Pi:~ " yҥtJvy&h>C=KL;RaiJd" tqHi#A~r]񷁑q{o 7d)ykvB=<@RvWӈgei{8e9Xe$'yndXlx\Z I[b)tA|QݻyvK˲ORynuSr*Ώ}6#J?$`;h`Ab ؝uwd(z9h_SmF1{ZLL6GSbb+=m&\^%4rmkqdF9GC"j[d: bzfM`jP2e>3)G(NV- Y[Z:y/H܇6M&oTmA5`MDIudvQ^[f! .mIĤmƞ +/A*)\kݰS&Njy|Ig6gK͸ e2Be´ #l{ר-Uv%aJ N22F $Vl&Dn&c݈Zf AP@THoU=vtu5XmZ6ERYSMQn6qz}]sCMހ݈?@M!p9 j@g)"\#gLf6V36@/Xz1$lٮY+e zeU߈>70Dس$U|A\0+x`?>,yM&d8H {8wl* 4yAFBbc{Јg[[[_k.?,.wX/1BZ9{8K?*Gje @#-g%:bWK5{=]|!2 yo}*GDp [9Lyl~/^mC&WxoxDqI#U@MqIQIyw^PXK=̀X4=ٱHR}Cmjf/y qqRo3OՕ< cgϷDDQ9PgYP4EC>:/=^wH-=OAPCnh4ULq(vK٣ ph o ҷdO7Ғǭx NV+(2D ESnE1 4_V\Vt [dqjZp1MG gHFI;)?XHE`6pSү[&HBxpp{lPnh#x`hs?eX/O^CT&,fաm,GuyR5B6yf繙NM9iNX_3ο? SK)TdܸRtX~+5\4~ج< aɢ%ijGhh`ef8>q0lh WE8}a,4"ۂ1A7Zv~!iO|07qsCFmh4oV[krVIg5,c WV:;i9g"TvdJ;w,G  ^hL,O{wvfq]Ye|?!FiמKm}z'٥lzNy:\H]}N0mB {~vKy6`+ϥ'o76[2nj쬭D}ދt+p-| \;kGWL\]_cNQ̫3A>H}xt!-O];F>sDev_T*0t}:90X")ZjХFl+0{jg Ts ်U?;p{8}geHNHD*$6%tM`~嶥;}8Ilwgvu<>v5(/q BIV=ڷQ~a<[ocp&gXZޘ:ʗ @, <'@>(LP\vp)ȑɰ$ǖ_X]kRe?]`c8U7:*,}TP;_n?j^!Ьr >p ԷNe R fE(DECgldgtvIkS̼ hoh`q+UJnl/@#)$$,7a=?3<4`DDI\:v'Jcm' 7ʹ)9;-|3(ov= r_yΗn, ܰfA'EWdeڷ5/^(Z;TwXzH |&zC>gS# dgIv{릺0}'DłfICEnP66 h'\d(07_8hqW[噆ҫX bl'\p AeI&S<ͼ+c`O\J>}T5n'mn)]ASP.;DLtR/̀lpV$ BGWo984ÜVn6$ʹ٬EHTdȧ|e<^L:,EM G 6V50O"}.b^S)[n IX.=5&}ґSK\d wUZpc qE Ic=6y^?9VXB(bg kAS(ģ® 7N="!918\RC!zm Й_=Qǩi\' VsOwc<&6Ӥ?`Fn( ˶enoEos0n$áMM[8| _Xuw+/rwS2,tS;Y>&AlH@"u.M }ܐ%W$3cłULU<"U1{ JC#UԚ$݆ǟm)"3@ G:cUhsCS3Ξ!-$!mQ ,`ǔgOj`b`>bMO_\wt(^C0|?]]G>NQD2F*I~iU TX7ߵUqۨÁ_Ҙ:mזoX0"L=^0FIc>UOO-kǰd;X.o蠣,y$*L鈌1J痜{9tKhVby3j.38C:9<5Hzm{~&= Vgܞ3=3oB5jnB?J0 ?_cz_TEV[g){J576ז m/Tw,g:N Ef54ظ>#m?oonB_*7aLj!cgnaW]".;/D4&Kژ_ȟm~0$7FmPWzVNuPjS3 wq4l2g{A%ObHO,p8=%V/vb] :b RS}"hG׏W9*=l 65q<n|_RA@{c] K B'awtKNҁCͺWJ'43qC`:nv>,㝦f>Tl) [_߾s)v݉MD%-$w9.~gP rT#3r+pi+<<\ ,2(c{=2{3t ըX:LXn3`5]sbIQx q 5V:}gS<82v+KO辧D-QfnI U3.wSO +M:"@MSV)aK@jdS%0SV9A8f)Fg[@[%G-,$=yI$M_42->r+-[e6>J0wi-URc_*޵y'.,͚]CǤ_Lk .|]j@MVSO!mXw&@HL]?$b;%[b DE}N%HD^5m=iIILэyG:։AXΪm3ЂaJxa\j`Ư`8/z,ϓQgl 3V;}6hx}ܛޢ֗,-}L71 ;fR'ᅺ5N6ʮCg4#$Y-CzI.$ Hځ;difHܪxQɿ8ͿXC^s'`_ -~ZLwBױxe)N 慽rua7r5k)BxTBRxȍK$@=#3/Y2)`{cUnpFJaW [kN`*uoN-Or|~UFsfXS؉P HcWX/'ϤNFV ] fɝ?l4C,YT\O+yȲQ 3aQQG̯hzb%?y?VI>f)4J!ӲrJ )h5<#EJo*1x98ʩ" Q*kۀ9n_%U?l¯h Ggk&SAw)8,)TJ!Iux^>܌X2BÑy)Œbx~LI4,֟DoC>E'0r)kt yeczuF5C 3u9lU Q.h[2Pn](X+w_w_R;BS] ~]WXJY+ ,S'ٌ] tn'ڵgYO Zٮ8v1 儠@xEDjE|{u!-q)m/s*@G ' ( Y ҍOD^KgMlk0*\GSۛB]ӘLѵ2&kciU]iFP̎LL^[x{Z6s< mFb|,(E>Y]ȸdpG`ss }\Vq?vбSgӯ2F z'kG8h,( ­`hk^c ^N-r _QKR~(5ߨ_56W K hx)IJhlPa ,YS%~ZՃ;LT-Ry8T0(Ca?K]ؐ;%!2}yȋf@ڎԖie 2Ei[ 5~#TZw d4 ߚV9Db *̾[YACeX@| 3\`EAB[.YtsLF \EpJ9#uJۉT$Wf"jkN! \,F~ibQG@yGB*H3;2iZ]RFMfШ1dYΖKZvw? {v: NZ>\|+UzR 3B/U[&-D̖^+w˵uG/1RL!2_;YɅj¦ 4*2SJ-vV Iƻ_s4|OU:>wzoh/sĤz}c?s6 Z?C9o bZ7࢛&Es}VX((ޮH|oNPվk(LLD4VB[QDpLHeIp.Tq?!D@2\Oqgv~pm:vcIv2 0S6&˅<g!ʦ>~VrqL:-lxLf\omOCRWy݂) `ΰD ysI"Enǎ5_VD`YmABtuv;C̿2:&Y&)Io;Azu-pR#:E\w/0w ُ7a f[/mޔ7'|%Q ET̟~'Nuf*n6Ny4:&0Ӄ_uu#8 cObA-;>*YYz|Jr7*:5*=n情#LJ 9QV]V{2 ]݁M1)IHl=E 9?mqv c5[X酐U.ה*cFrÌ t*Hы5;}5_I.r?x QG?}Ľie#@H?9Tn; H~<,f&m.K(`%ލ +ab4-` M1x>4ͷ}>{cR/^ۊrP'_Ւё+9@d$~e7S=yTmBEZ`H¦%AZZVXS ELrXSI̘'̒ź$Ƃ=). rB"7s%3/9sqFxU`t ?逗W?1+&v' _fBC Iq+ Ru>~Wqo]FҞ$83+  luŜ=dP |D"q B>{vA-/Q34hi,B`X'VU7c_mg-X#nC߸LY?Y!糡nL3f=ir arZW&V{( "^bvt Y -LK'68Ճ=@3SlhƂTi5o3T侩БW*<~DNeR} ]_ O@u83_ <г>j0vq=WxK66KDTV]y6-2 J Z*ӟz #?Z-Wϭe& qiq~gz1#!~/$D=/AHA\A&Rm yo+.U)e\&bmA=Iݸ*ak*% q/jMrͮvD-ZG`EtiP%6tzRm2YD: `8 Uxa]D5 P]-.|Uǹz鶙xt_z*k?%J`5D+[ ܓC"+s "&{rʡN}y3!Aj6K(_:)cq8R>ShdUEփ~B.Lo^q{}\ 䎙FB>[| Ci0 2vpg";&OԎ[by zG}u)Cq?a0m#Eh죗fLɢ 7disV}Raa/Z9tw\w ̎LZqٖ&7ۤƤ\I-1RVG1fFΧSs}fD!S$W1^JSi'Xgo7+!v5 k |BzEHe*am>lmEsr/Cgź\B֭`M^tpcgb`ҁglW󙔵:s-%K38yQ%.45( R1J9:@eʜ>d" knAM?(~ ʅX8PaKUy_r<ۄr^E5:7koϕ=҅m"l\҆Si[Pf6 _w[s5WԶ@ +>W){0_EQz1E(l!; u{WLרӷF7]j"(r 箕r(~,+> hmj gJ[6q4?3 #%>(,Ȋ]%\QHH%:Ba-;%s ͍M߮}lִֿPV<;:mb9>Ɠ< ofURΌlrZ&r]\;}p;H=_ir0%.֌!Vp6aI xVfM%5H(ddn{t bbO~"W\d\jx`DEUt>XӻAVғu|dT!i.4o>INݑ{TzbǩId'\D+V+t(@XoB?KS>^ cJVΏr}␎dP GB bǣJ,W4go 2VQYp{!>+0I`*?e#If+̫?CmD] 8ܡ4-eAW  gl[2a:j6Adr W'*HWnԺn81|p% %n+7I? ^Y2DtY9(\ /ˌ_D_ڧ6ΠSDW^͌Y E>nxƴ`ңV6u2qYl(ؙl:UFXp;Lձ2h EwaJIz{)ŌҮk1HAc3r7' JE:祭٤T!S$jjtmy9z7gX H/Q~R_bq{{EF-N#Cjێ"FqP6yaC{;WlhT`zqTKaTh B2˱aX>0ipZ*> 8:ݒj,Ʌ)=wȊ. {*N2Sr7rfYZ7{-Q,-;?%XDMmL1c Z%@b3OI$43Z0$"F"Hr&FS. Hw?Q1yOowmpt95;*b(2BfjڋC6^ Jˀ-yN7?)@sgSNuPN0~<؟M31C@WQ/ H97G]w6r7UBl…? 7>PrέU"t̑vV 0@2Ŗf{+X9PwknJN+L:pA-S7O϶#UF5kGUs`Td;蕸yFIq"dB6a D|Bެψ<ۏ`0rY1Ea4@LOy_| g,G֫3:#z6[#k:h6z?6},t`Z03&x%2PCX٪R& zP+b1t-2I|)hm" }Q*NCYQUj̍&&Z5:ϏnDžuLpq@ /w;x 5_& 4ܱUXfɭc,HCg8%ű(z[gd7 >s \ӐcDY iz(Q~QE%'%< 2J#gcix7 ^ta<;3K5Rcb735 {(5~ wl$A=EXEwNE~ nMs툋بL# `}~9ڴ(wa_"s 93rW{RZ.C'S #F4:H.qFPn78I]Q_>b %i &8MW#RH!mb  qVcG,l8YsqK 3A8\_t^ABW_Pxl~S^J_m"Uӝ#U]e4U'4iuI *gX?b*aҙ"1=;r^}턜^ٍ*OE'[+&r(ax, >BQC~XٜW>Ca@"|q SjL؍7:7Xqp LrBR %KEZȜѯ>=0tuӏ\׉afkybWJ憤 |wɍ\,<^-W1˅Bfq$ced8) Y\܈,V :|`+gcMQ(eEmk-gow qۯv6k@9%(J)ሱ0A5zϑ@4!Ҷ=m\Y(eA;ǒ$\- # i8kE!xtot`Tm;5~;Z##2C"$eD,~tj1sPEQ$^͑T_^{ ǛwOBcT[x>44N£ Qd>_j$G σ_!k5܅߀Fj Q[I5Ц | jq8Ǩ ]OlROcbڭYو v++lKBBTZ)J i8thHxjI\Our# a5žQF-U}u_3C:Ѩ#'Rƚ=mqF@I&B)R/_tmsT/usw 7wSEk<:Y>Ԙ0:506 !(L"#0.wLr'F*OYtJ!;fsӽf߷cYEff \̎)/f==$h-leĺ8->Kxe͛m`dݡ^ၨ`>6P* hP6 a(P$ La=o3ULk%*}l~+xyxz_+#Zש3o;N7Kʿlj_eg)nǣ_ k^c5r:5t; [. ]e]+4g 9@KbdRR -v"QjF|ȉ7~mS",%6^SYl0դa_!9|xH>fkGv{(+Jb5' ga? !Diw\SڗL/]R„o5<`UP]a{X(9\( 遇#e>03 <@Lϓ d܃z`\!{ dz7+xR:*M5ˤz=@Wa 3 F \VBH׊Wh }꿄cqxP]ٸ\*g>OªєU' @M,tpa<<+RRF;N}DkN~3y:4vwrq&k@BFxMXPdLLр8sr_j1#_;6Q(ES]Gmu- >̽ȗ9EXT6ΡuN-"Θ,ԗggϧnmը+tL3 }3i)94m>JfFQ[ƮvėqX}Zݟ+ .L$ Bġp쌭pI D%X_)krSk;? Ix*IڣPZe,eIV)Lҏ6P#LSpEc<`OD녪y47ŸOS(m9.߉E+͐BYێH{P#q1?6K/ h`?0g;'=B4Ғu4;Bs]Ovi#40j X0&DcD& Dq^NuV^U^cS:oeƉcWfvD%x_ <~/`KOxw@,R+PoK=#)aR%p_W<0.6a}xp!j@ AI&SOqpb^>=~?ksJEH.èTۿ=9;S3 }lVlRfd--j. Om6 $YhvbǚMi"aCF;,K'- ԟAѰfLL{c ɘ zFfYgJF,4wjXQl!P-Ps@CE6Zxy}P_h&X^3gŶ _b`AL&ȵ6G˴xň1 Z| +^1) ^%{[=GZEj,wHg UYp }NЧv $@Ey$Ue#985x߀>R6)=/aOiOB)G|0z)ض[!^BAv ^fݵX { 1NpHy<F3}{hwGxx OW'պ8JXꢍn$߄9y8e>~l8&2O7-PN n»9)z̠ZZV|r@K \{ Y!)y?[3l/d6ok Uq7J 030Ӂ b=J~?*\IuwV兮N:m/BA<U0t(|;X]ctjݱÚ'ίD\s_Y*ʿ/@B`IcLnK~79݉.ַNz~;+Qg~ ϗQ!iR+aaEkImF pn^_P4?e8b.Ņ)"Yz֢l頙qxVbᥔЗY^@Yڊ!{7.7ԍ9DnW}l?Y@ߤir9t 4~6#ugguɾ P`Azebɘ M&y.SY_amjIC1Ggek 7hXV=D8wF ՚#0 K"1ˀ]75 l' lj..Ux MkPxTt8v/L3g!Z982w U$ ".8>Ll j;)\2pXH}РO"&9i1utتUEpoI"k#GxxJ~;>zs3$á\Cm{. 򓟓N˃7}|ͧ< K≇44@ a3^>f C\7l͂?DNuXKI0VcF?yS?%ӛ&6̇(rt 4>1Msއȣ__~~l-Yuv;|P]iRA/\Km'HJF{b+ t}W;0Rd VV[r&?{i](?L6ǠnMA#;g'=o,d¥q&@xC}#UqB-SyO>m'}NAl~Xvȣ &]PCL[ \ِ]HȒwusL0b7dLf2z;w{cw]6ݐi|tn28J<çɗN_DM/$ï!iM̴`ʄ(6}QN={Q;jhϋJ_5P}Bd*vGs~ ;B `\y34={a6+;j=_ݡ₵ez8ZI2>g/E7sAG=c{TazC6<,-@X48 Q L*'0U|~nڟ5y2QٟDUEQNu "To揈:id%'olc}83ջvՀi*==Qw߻*uĔ#|hSџB^` xu |d+껙 *Do/*F jm?ZJYOL4_xrQϘf೚&yX5v_Dd#j5cḴNx!ҽW EFS[֨׺yұ ga;M?ڢ{5 XLf?9Y*mp:rG\jMJx( г;J }c iXLjk |!*-wOݮsy!CO-%Ґ|]erPkiJD¸3+;wPm̟jQA,WC|:s} RnEDLJ3]oU8.^,bp̋[Twe(6ZxĐ%:RQXb05q0չ=/& B޹r7m36C^Qabgcʰl͚DRB#H%HGR]csGsbeL zdZHB֮af-x\5QحIƔ!1.f`f̎z{%5KG<"\),1'!0V<6XH,NC/}<Γ6o.  |Q{ⓟcvtkohM6뜻tߖ1=K+ {F!G T#bKaf4LkS*D'R*3GsS8aNFw `UG~ ru RȰ^yaI!]5Sfٵbĥ=1H 1cQɊ b>(O\6Y{CA[8^l f.>7"a`|!;K$ρ'Uwrp_nmo\vcj`M0I( ˤALu6T׻oX,u9zd;[RM7 }D5[ <FfMP4$To+@']%z(2LDƑ!c5L]Q%>G:=;R/ΪfSܐ"UGvRx1Pɹ`nM=e$J*A=&,юնH\n_^oG>%4ky;wn,RrEچtJP87@\@^QdPB  ޴ hٗϾz}!O i~saE ~Nj'{~$5LcWU~)~o=j=ccIϒ=dA)4>,zŗDZL+0)?܃Q9KLkZHjw﹄4!tj/¦,$l& a8xg!#Xm6rK+~С*5=+Vq _YŔTF̉r;ݒjTsf sIoIG;[%fO =ߌtMRȏ,+: 6auAtSj>b1gNL4|sf #g7p-T !!\p*%ԑX#̰vu::0l)I13T3h,lc(ں⯂ jB–4_{9ՐA('9g/ם17խ%l\{7$W|b490.DtaDOmA!0ͼUr$Z!nnA^,eP5骡/  Hy*ޘE@19 Q̀CÝĎ Q&"c#M!7CkfwQ$}ZPF('$<+gbE TF3'S{;Z>Y^Oa{{E՚{sZ\՛<<,jfuNnV/lB5^{@TXQO[)_jmHpе̻BVKnn{ֿȍg-Uf )Pi;d#^-yawAf;gB;:IxU'װ0U~_֙y@`^+]]~zn۲T_6{R1D\wʛnoV4 ZZ]~Pg1^PS?5t_j(5j 'FoCTE01G'^ k$0,%h6 A`0BaE^2uL"5mW={v=?y]H=(<~9\̠/ê?|xșJ㿮a:XD163N+A}*+x 7q@֔d9f?^D_c,]Q/#KfSϢ(͸] DLb(kM@8| jENU&̺HTl<"mqLQ]4іC-RȺG=-4&#J$}@'D._ig@j-=e f(W5\\fMp.rJ얶h웾o[ hwR6)s#m KC81Kj0Ő\!m ;dU` H_G\?cE[=91b+RA=ֹp5 VVT9ၴ՜#aG%+2S|( YϚmx^"X[{F*hEj]֯KUnDH');X(fD:SϮpkz3B\y@& J2j*G> Kz =6MlؔjjI2QcpzN0}g}8ӌeZ~!A{wv =c@wy٤t'̡CP?0R9;^9 xPk"_/1Q]C}}lJ.7PH7Q=Xy1I|=LzacR>,(%B` Fb<]^.x.Ӄsu׎jw=:]n2Fo} ?lV~kS&{>; X$+oZ׌V?VdX,V:‡BgVտ zU0)&t|>^;?dweUު'c2oܳmf$PO]$}Pc Q@F AI&S"BXZHzY)F5EoC7]{֯-eOcv)T6 HDvK$^|F[Z?rټ[kU"@V1/`BUC) 'l zܧ4'#à `OnJo`` 9 tV$>-vWE'e;A*߆X@¹l:I܉ffe0t%0OnjK>IV?PrUAǶ wJl2ށf*rr@lI \kH* LQ82\I9XEY:>Yv 1kopZ[ZYP[s`+xJ V|Ɲ% sӤoCo ,aoIf@Uwĝ4ˆ٭߻̠7/<"z[ӫ,[5,ҫa)t7Zm۫qXfj4.Y'uJg#.7:Hʹ.,HmL@1;Uhj\TГuMa<(Tw+Ee !35+S9&dG}qJEޕr|h4H4_JݱtGdDσe'W"w4$C^b+` ֆdxhs1+gh\+.$YP Fa7[zi*vhs=*-x~dlv@sO:¶FjseTl&Q@/)ۧY s"UV,ص2i{i:e(-2?F hE'+@zIk XuD+\E?A-<9xw; .p'Pw\Whi,|] a 8dqHm H^u~E*:%Y[w+YWH'Cb(*7CplO4=?[PHA:O5\8gP՘ϡ3`/pxت~5V_d907HE.$%YtՄ\TVfЭg$  /x>D9䞺Oab+>eYgq|T l8Mm%eAF`@&d kKaEłKp6 z(hj_vc>㨇/*{u s tb{dC4.A3O<3H,Dbټoxp]n:gL"ޜ4 V|Ihg~34qKHCNa؏U`NrMF%yT`#ͦ\XzUJTy :aKsA}6ZDXټAs.Y ˅iSL23Ji #"C<&= fs.xE> D"+!R*I@N1؇5Ԇϩ c ʀVUK︭ DdRbGeQ[]k ;%Cv̧JtbKސ@$>NUͻ…gQAoy`(Go,1[Ø vokf/)`N9hQ~~NSz|&)d VեCiW:rۛҜjagj*=0Wcъ. iMƎn0#ijOtKX܈r-u9j;W 쭤eIm+~. ~M?$*qbW>e6 (qcƓo4't@!:2omZ@/ɱh_筂nGq9-џDoyDfUe ٻ>$()4PB>τN:}%ΠU3mqG&*|~Q$d.sfF5*%4eǥ3pKI>.b7 «/ \j}&d!l]֜ 1lofn[3jJ̓ȇIY$R:HRX4Zf`vXk1J% R~}bqHJ[_*P86{մF .*),JeĜ+uonȂYA@}xW:M9Zɲ 4Li8{KU(؃m0XYp4R){FKNYA6/a֐]VGH/7n/SrYlKC\06#t NѠiZ?u<8a ӯ]4L+7ܮo)JM cᬞ${]"p5FL6䰤BA1s@eDG{ #eEDk=d'^LDUGKT# g|>Aӟ>[E\Mjoj LՃ52~)4 Uo8! {-jBJN$`q>Bko0;Ԋe< 0'RxE;>}EATK+ځ:ͬkQ >9VL#`Ѿw[P -AÉ5+BT1sj`* 3d֌նZ~FM춚 kQ,r*= 3/H0gy иYb@A^MMv:ׂ@b @莽*AS{<|/*&p)U+gBq;W^E GԒ X(@mY9=¡Lhبڂke6wط0׆9bU=+RC{Hn\&ۇ>bSum< %TʺZ1 F,>D'XɃYoBO5:i׵u^R1 2h %~cf3/j{mO!f:TI)H]|CX ^+gA %ڸy n|J䁝 M1QWe9uo;Gj'A$SWyOdmKtG$2yW,1|.ZXrX LM aSm\žtЗX,]m6u~Tm@8TEaDq|@T6Wy47-`򦸶FHf~uXd;@w8,*`  PF BaDsXIJ֯rZ\a23T0+;1WqhkET$KMqw fe23"*N?#xGo|Pgfa۔Yu*[G|\OoH'g . BHAp p4P 0&¡@&!JVZ?yUO^:7ƨ-X?s  TL{=Ir5:`j4yz.=!>wcc:3|IƠͷo#P QbҜֹGN4^{r\$2`x#,&kD C@x [<@@e2 A0I&S,`#KPg-=Hqe?.EVQ. Axs9?V며wjޝa)\ȻC\w1f}c2D(0Ǎ^XbO=*u9y8g+ &@ cȍ$j^4wBcȊN.Q`@^S-<֭l>XBP*4Z*av:KS#ghz4uA:>oˎ+O=M-X«T"TJC|iUnoKúMoIaץ,# !e?zj|rHepLu̺o&42ʏfaW 2AM.:3!gr|Dl2L~A(+7%$/`q>} oS'G1'#`a^N|NOsxn,^C)}3-`µZSyJv!n\KkS=)B{"vha7A_B]Pwg~mqAqEr6TUpy4|EO:}}yV.K')3;HcYKؼ{N%b^8GWWzXw{ Lf @ TO365J&#}*|…brUP\oS%>ienxզA<̋ST5?c.:XB]]Z&G M0 RzeKdv9U-* >L89EHluu̪c&+Kq CG.L1bEm(1 tgi(Iv׼+:": C-v K[ %fHMn:*635h p erDY)ܡۙc|^.*P!P`}?[!{r!եn z#)3 ,+>da76o&o=E Ӵo9G!mC]!Xݩ Ջ/lKkUޗFJmӗRɕ}ryN/IMjpE+%I"'hr2Ԙ9x&2dPu9n -R?_/<>43)Y-=Nx~VMX})@Jy/a%Y'q<\-3/'G~NO:.DD'M^`y%*@FGu!o]nN;h}q)()qY} J!Y/u^K\rzIƤl5y'&c_.Т><=g##S tࡋz~h.cMHՋ;O=-]2XQr"_qmӌU Oܩq?I0.;vۛ|C=Z^KABM=y'5P;uު!u7 _77i|rY!x9Ri "pސY]Z5H;A톞թ.疳Yd;n|f5'7zdx43+c)L3*$c:eOzQ x/ +6ad{+4 `ߟIwL똽72&ҵSpFNG9E/lջD( >3;\023ލ 8 y'd-O%ϣۍy0pPzKU0!(JHO*4=%2+ mB,)˹M.6؃ g52, h0: `T(" Ja_ MV8?9ZM'Ojoƭ{gxۭ߿]k߹g.5Y4} =#v֟-Li#k.?0k 6q5. N5==cF|+`/z CjД=ET#( mw>OjGGl].q! T1 +k/ss9TKWo@!6oKHG]GDXpO9bt•"p7<>(+G Q\$IP< E*⼋N!m+Ҳ +,"RE$78cQxָajq\6sY ळ vƺ@ \o&k-e! ?[ُDNvw_>!LQ!yhۤ[FdWYgW 1봊6궽Oȗo["f` SNw Ab)bn8w#3ugPfĽ@4V KUNVĔjt8ZN7`kM%Zl=" ތ%귈qw bYz] m)hrF9m=Ted;‘Yc;D o*8rZC}w' =D[ {9S}Ҿf:N|~I_Fol fF0u={+?h (zՎW$ mʿڡ>K&+*<'0Ȓ:'8j zwA#,,[d7xOTW5k.:lQ_kE<=,HÓ i,Jvya%FRt "'@-N _:p*hl#@Lb!0]?Ujm6γO??oϰr<oy]o]ح:|O܃ mV-Ygڤ_;dW2pߝ%lԭ8 +Dɗε IzM z z>10O|JB,b0pV a@hPV BAF3|g^3;< 𥲟ߗzsoWɼRŒf[y?0noٱ4yw%+y6V|2@pBҦ} d` H؄[EmK0؛X[%6x"H rBH, eARI&S=sl\̑Ÿ|nN?-0C [)EmZEqDf!brX 0.Gj@K.k͸~#~ce)t^0$>gBB$AHJW=:;7{,L ;5ZOx>],ָ.s2JX;LXS}R<ۯSɵˠtGPklWW9FTFmz?Phjb n ]4BQ_+doO&:40Ո UU;arDYm{"E.f3ts5a=-C$`Sa.s%H$Nn)ršw.XTZ E77x/:9M\nRb BZ!4frMʠgߌC&O%mM oHji}-( c~|zk,gXحqM~#b(^؂Fi'~{-TzSGi~k q3$t{6F |.i[7fZR( կQ"$nCӈ!*ͯ=RL-K,ahtK,AL}Dc~l[邲ʮ5d]xo.PmJK % 'hjmcLzȽ5 TMfew2 N*-]MN#skSYwm1b'FqolD~9,h&%1Xt`Q\0ky %BlkN>+_Eަeƹ8d;ZLA۩z#|UnU*Ӏ\uFoAMc LLU2lE|AJƑUde1@H7ms?Cvq{n2Gv7@-4lf`b + KH[[q2T$?<%?Q_l}*}C .Q !2&̜6 :\qS_ȉ<>"o6PHX$~{d*T=l|?)Q2ʕoBR85Y>dٹ eSc8]+:b$ ᐽ!izT6V2:t%BC IC$dG12{don*ߢOdk\ 5ly :|}oKH. CFqG"־ݸCgIm^T)-JJ'YO{*uL!I@F{m]f0? L#Lgc$vdZ+%hPܙ4)N:%nOut|q9A)-$e,1*^Ύ0^`"(-s웯HUiTyJ1.s/ޒR[bRi=rԈL讐ySpTQ1]GDrRݨ,pOAS49ߖ'2xpJA2rl$sd/Pp(MIi[>w{7M zЕC{+J>!8vdef$CcɝYN缁#*ld| g &^'`Ң%$1huXƕt)lKS-ge~U}Ǩ l1IPW=oԤFl7zAV OVyu qAJ(ʕ4'] Ne@lB¨e~ nJ֋ Jwcm+_ pձd/Z?t&ZcBH)pp a豕d.z")B UZv,x []vJ/OO"5J>e)A'~h[ʪ%MgLUVN="E@ޑC=:[)&rM9Í2?%KB(DÇ{ȩ*ARDۥ٬XWEh;+gDG2ڑp{PB7)jަȐdHc$ߙ_6^܉-Ty ,4{iS2 AK- ݌+y:xml罅BEk,F. "|Q|kS7dΙOF ^j,Nd x۔xͯ'gu[qs[†HTmV?H|L .M'{ U\Ü촾.ؓU=S VW\[KGpH4=,9RXwc)?ٙ]I}c JQ#չ4zIwXU<g"GuJ\}fsYQf\ʎ!&3,~52vދi:Xp;ظA{FdWpߕgjz\4Psa jE9 MM,9 mX{Qحgaf$`%︔v.ȵd4jsΕ1څ8f:X̦Q7 ks Tc=jiϡKMʛSw*k7ʐ8-]([쇿׫e|:y&δPo69#x_e0]vb` QC^N$FJo$O>9u7-CvÇ Ṵ"z_LWD[Ih%־;d@BAE(K>cuXCfjGֲM9KҨ܉C#!PhA|Rx',ӝR|\MH>58~X6l*z(Vd5xםy65]`xq'%hV |B@jeϚrW5R.(Cq*f04W:?|{x\McY^ZG=p7ب` qW0[c/a3Yga*~? Ҩ\Ԋ*0*]^N#J^SKq|cQOUK}3|YnjllxHNR-,Mzh;Z3.e7Տl^ 41Ӓ[%6i) I-Ꝟ1*]BX|zUi&Og`H똮//ch[&/B-DhYmbMlY(uJ ~*G0fΝ\e !V ^HF&ix Dfp_.P pP `Р. b&!+3M5u~s3Ϗ;Gg/"4}_kTm~ᨏ;ǟQ6՛:6}?7ܲ% >0_)G |G0ocn&$ w!??T.yG3g{,.yS_ aPN$0 hP p(##1 Ŀ}g^/yS8>2ylw>)9|4ۣy$.fj?r{T{VQ2=bjW{Lƥij4&z>^ڼpۤN]Üm9Y{:vKD1EE#TCJ$K%qjDc*z ͢q_ݚ[ZBGҀ ~i1\6 iKQ:.g7gCF(i9{r^4(ƫ@Crb'V<{sb8 oTqnGȗ-19.k4VWPyW^tQhif|^<^²\ ld ֐bj, /@b@Q>ј?ȱfF*]X%]<7z*.O /loꔆs55˚?lpcמa,/^_)[8&ohoJ~Op |[+gwVN>=]bʤ6e6>{.fll@èᎽ# iA'lE뙰uRKApLwnMi-Z;`VGeީ_LϿL7#GLB b%KO%Tш %i1Q(``كlH0˷o%Zekd>4* |o((bp>hgDmޥئRö^ѫXB-?'$91:E"Yo㒒U.c"|7IMAa.BOiSL?أXt OV&XA}X6`١l⾅=Dz3sB wOLjVY Rc)ဗmDD*!0&` E a AtI&S [ܙX0㦈^do^_-;1N'ԵT1%s«+9.L'8߫h$nDBw~k^0l> R4xZSФG*N[d OM>p1Vwrϛs垥Fdi/瞐ًADx&.oaֻ343HjUtO5K.'YS'S ܺ+>ъ- EF'7ż/,.zB]%nGԑ-&$y#\hsHO&0 S02a?Xp 8?(|2;3krK_!B13:p?hR&_Bps/%l,ZRy Ott/૏RJnK^j}`m6ƥ %5jfMJc톧U%*INyp Vsf(G$_>9>U]mo  ='$Pq`KHP݊W ˾Fr\ An4h:h)ge!Ր2$>~B87h؍ i%MG.r@ވE^\Yϭ3Tݘe1"T 3NQ)lG!8 y+G^;Dw:J}ۅ |1&p+uڂ͔W /*ld%׫‰ocܓ DjKK &|1:{]]挬i{cľ(_.3a/f-!\!'vsCw (YF_Q`*G)96I>[BQOurfg"حjoEŤsgO{idNqɁDmQ!⇌%mB;(.BNé-! $!tVtӉEzrJ/mr&V!/19;jDS`tDe G@qQKTf/S9_hf.*Xt\Aw YAݲ_f2lC4&}͔=/ 흛K/[bE,U[z3 tw.ה+_{H$ʨfYV›ƿ)M!qLLg{Rk/𦀶*_[zL`@g e4[Pz9gl;k@12q2i3h0dbuG"(ʄvc==3ae-:M>n J#ąVQT<~V=Z- N*B4}>ZsS!|ߢZffMX_bWA\B `o"NkrG1cU a'f?v\j?t=<pPe\h75do(!\a&  `)ʌ!kS#~9c ?$q^U |zxWq IǂGFL ޭDƀr ͈p4IQW[{8e{Ju75`?h8*M2D8>IRKա+Y"FEEzZ_+tw@$\`)a|E{/hh7p:apd\m|Xo$[6ܵ|S$ MI\&ҊK7 pM/8PoāP3MgN*;XI ?$zz9MRsV>JCc3x4!d>d0D=nakc՗rQt7YTҿA,T0& B`, Ba@&Ko^*nSQU._M+8ic~:YC{{}u93/H7㷾Tߧc/'b#]QK{^҅]R/q;w+f(r4;dZ'1q@5>C0@2'g82(,[N,G55Jq7V͏ƴPN[4PXؙvu(A.ãͷSZ vu֮ȻlJOn ZDw}򫝻9yz A}%eڵ7LDIu;igtj#H\b3Myy 0)sյ7pZ :b=]XOF̴ HU9Ɉ$3x 8jWזW՞ 2Ԣ9P[۔&$7'ukmh.gh"%U Qs|α C&*>jҮ*ut:kpK4As5OzJ/\ܑskpZ8)?HO ]][䱺B767rP?2Onlө;*农6kY(²} s}vـiSQb@+YH 6Nfxl$#(m%Zѧf1%T|޴4<=YD}͇!&;iHG̣f c2 VZW'4DٳbE3S6J@DNu߻r0oD-vFZPD/ekP\ץWʰlSm=1 A J#t&1oN17 2[ұ`,v$k,^t\jnhp_S "ft/N#9T=m lӉK8,eRO?W" 7dx6.E\WxCe'Xaygm4ˡcJƶ(LqLRSr64Ju{B}óͪ:4( \Ȋ9G:)KD"*b1aXm24m63cX%n!x0cl,I]8ڞeRc3_D]AE aOG=IV>Vxl6H(H0c@>x)AI&S_/TJG6T"F~@^T{PtԓŔn'?$t2J =J%sm.1Ri{OtY^+R #$ T턡jUFNJ{}'SƠ=(20$|Mf@>>,46)wFgi{3 ~tq7%2 Q&ij|yqu`wUfNՁ A_ mU{u /X:%ƤVO䒬2Zė2X4r(klw՟-l A֭LHx"po( 5}< c2,[—ǀڐ@|IB! FSbm| eK)yA~Wl8X)Qв(%ˑm<:їҚ= bIױX47lDXaU75e [ALiހOTٌy$yR TڱdS_)< AazĝjEٞ 7FH8.G-*&٪=JNCp^,Ał=SYŽ[c_eC#%_֭!g,}*WaV·v60(tvOIqԓ6/+Up+XoM~ۋWќTF%MHLj9M$R_Ɂ0XF~kbe0ײBCah0F$Z5l%: +~% chM!="w{/N>zLpx3H^5TѠy#lL~i0:Mȡ\,q I'obOhRsgdY91;-4&h~򙡋_;M(4R* $:!4 le䟲:ڝr4Y bGϳ,8Ed=t^{~~ v7DE|..GTXI!()#Uqi7${}spт>: O6 Ĕm[]^/.\[U=sqGj[[֬ Wu20M&lA{AMwE D/f!S>>OۣЇa>01- aJ >б񘑌z37 d(0an Bce<|ZױWiuRT>*i^σ;3KpU~~!_U[oÂԧKgfȾ`-HtFk7^P=~'%%=*,FLTNf8@8X& AI&S? || m.^FEK?84f[I/=b6~/(%!v /!/i`G_7߮1em? !6^~*N,=iWLU‘m.'?u7I:tk' @RͨzkevEpojvv0eu쥶G'ȸP]et=ۘ՘W&9mi}ȅws78ɇ?$F_MjKz ]SBMϾK1N#OrfbJ1#S0MƷ2MM ^_Xe V*4Z#_;l4C`҇-L@V0t2(0b7xS{Q[_lȏM,>efbJ3t,zĉtdÅ@2m1+7=%]=zi^̈́q;`.:KDp-&[hfZT!|i:9;:CiDjp|kL.{urJ$@uzVrv.g&=FB Pdjp.k62 vdQ5>us^R©͝"Xn"^C`jJJii45{V8菅o?wIӀ,fgr[ǐ YSY<{Ea<觸 IU3Q'8g#ʏc8h6?9+ 'N2(q۫Fy7\4㠑Jh"Xخ&:g=EX7eI嗦8P! l#d@xCSa(v}b3m 0>Q=Z;XO͒Q4# Փ^QCN'fD=F .Sʔ|o,vQԚsd&SEh+lzEPT~Oc%Ȓv] j>M:oCfV\ Ne-NNNZ( !t$V,tJFꢧ`G0i>,VPXJAAyYjot=2FLЅtF.eR/ ZFq-oyJ2ɀm8CmR'ӬV^J]>뗈EԳw. [2Ą-H"k`} ;5SD=< >34::{ 9u-NW zqp@)QxRʞ] $5Wuk= ᄒrW|)vzv($ KB_!P/ X 覛e KT%3b֒d͇ $_EGFO> r*?Mp/,j|T5;PSe{1gXدq 4mHڅ"nܿzy<+fzǘH`6Aɖzh9W nTs[knǭ0dIߗPw@Bw BJT}m١\A\,$R"|qX?(oVlM4ew/7״1FPWe %B [¤4ozCS꿚{G%#~ b~¼*)+,Q'Dƾ]OW+3ålr`όRno`_5x\߆g@[t4B+e9ʍDW_mQO'>>"/ IOúQ`[ct؝7r E|*[@ IYΖ&kâ^gTZ;Sh&WNkyAL'cA.[}[L<:af C_!VފÙ.TP @P& PHb#&~{+uzʿ+ʜ:?yZx3v\w //z1w]=}LJb0sEry&T) >8@9@)G@|jW@aߴy 3rl&"`uu–iNdFJwݵiXܴ5Y%8S Tj=SmnߑY#Pv.$)>΍ݟ)CܪX&"h#vdA*/0&bE2԰O*.w߬LCpDUA.}H1UGӖe˝~}G)ڗ~9wbȉRF[{4;}q$; wC-8>i+bxy/u~@S LMSOǒ-& 72T53t4jq8FҤ0UǛoy<3AݍhHjҙ"EZy6MSg% ynRߴ_jY,x,E. 70TD=j_B Is1F:%sI}/= uYT!z+~&s7~*E>ک:C(L#KD vǟѷֵkJ(JC!oJ"LUד`~h?B)kA'[܀KH{o Hf$7<(N`zdn~yJfdo#˻`TH)F72(,Qܹ\5?>bє/m!p|˅uJRZKv?1|٣iٚdK){;InAdj:?2ζ?,e;U[vƒ%y~-kij\^}1w㎙ꚪ9kN5Šߛjor`Yyz[}]tOR4:(b~>[?o zjz?:qg)l1|x?b{ؤv^c\2_wZ]o!rċL8"YI׻d+ ۽#sJ|{]i:ǥS}<TwhO6yݛ)nɼAû$I[,ElT Ni(a~WrJ&D3w.0 0076WPVM'#n`^ª5, [ ~qa.9 ͍^Dpew"56]U9(q%@>E1Vzm@.)x{ɰ$U 't|iu<2v"հp{ဿr0TFcGh?,maSxO0!e;$iO5snƐ} wR _>ⓟJU.yF ie9T]e yVE-5T52vohLQ5? O/5]0r(' @]BBm3u|)yIb9}F 8>)*o2d9Gw]}h Ls,x)YTnHKG|XC//ݺqYƦ@ht˴T+C4 RA ]2m 4a3!*T@g"s%qtJ%`l8g>yِFe!ﶱfͲ1|%_DY_0Iv% vjHr % T$lZ'WNEqBl҆MESۀT3 m d<tӢhԂJY#Fu"DŽ]+ټa񴙇&}FbRa-'nd+w뉸Dw ,"xĕ2eh[<֛F>,X* y(Y< h q~PcI@ `wBBJO953 t(<4I={˔av(ٯKM0~ AV抿诣h5ꙷNǣh=0ԅ03NK^YҗW餺r;+eݶ8Uv ,,@n ړƳg.KV\O`^ HP,U(z%*RU§YP .=uaY! 7"3Vw>_J$Gݞ='2Mi&eEjs#jÖR9{&STJeq;ؑVo\*>ݻ[9RÉ<B~?UH8##|νKs Ch|0ċCGCTrfQ1YPX۪\ߢwHȽ7({=n'٣Z w(0c)mmZwZ|iWvm^< j)iD ^b9䢬"HSW1Xգ y^7@_|p5ԓ].8$~K[K"kqDbxȲ \t,]aX=RP6X|d A! -S5yvƱNwvhBxZ3?Ԃ'2cm`)UrNM`ɽE ;]_ۑhepFTr0$YJ_ ftItkעƘS;g6|l.bs7a>RݺY*mL!dٿ;LӸqj#K6LuUބdъ_g$0+0uac{Dk;\c!\+Nh@ȱZ#<V}SV1_i9Vƕ%xJ$)\W0r?rUA;16"|Cow\Z&=R%it"'FosK W#qt,}f`^#/ڦǗ!RcV냗t~@1uF*,ku₴y%h)Jiw/1=5aUB$/5b,sxsUt[$?<\>^2Dq}Y/Q~ mNߩ wPOlKq ?@>kkTD#P7%RI^*itؕfϰB/br XՑl21݇&}tFR44V9/Ӿtۨk[}Jp8n]ںmKNC|HH^hi*Y1(g6܎k6mTw[<Ԙ0 a@PFaD2t~ǩr= ||G3t+7DٳI}ux|Z:{,{FO;<]*/. ~ }^ϻ~A}KCߔ{zo"0A je]I$Ԉ=@8 op6P*AX`# B2;odƦ{Y17"Qk?>=vd7͍j |)|¸7x=ʺ㺽3._eQ`xmâ0?yԏ-uNd%>K* {F!F2;‘d.MzGjEDvqF8o^(b}tC(ѭbFR[?;ڴXq (E~{I%vGP;*ͲF~ZHX~HH iaJ"U\Ao99DABWǰ*M-PsJd (3Ξrm &(AR#r[{C)~ ^Pג)UTxvjYKlGOXCO c`&8N]_ΠN"6#ެq} g@9_N1jTMgg֤$;KCbFp $6UӑSm"Λq%F,[~8\ǹrx $6g=xbr"[2z7((rS1OJOVjA~wC<HNhKKŪXֺw)Z٘Tu\CG ]ATqOB `jBAa/ wwTFT ]ʕ~63'hﮌioBwns?Jƕk^ vЋH.[oQ0*טˢߦ4T0* A0 A" LaoV[NJZ:]N7vNteo*oBmtǯ>oS&uң/K:^i(gsjDkuI|Y'vWk~)7^2y&~.u^m / @ f ,'@H@N A jAI&S'odz:6|N3byH^%O +xڕs?-W4$j[8v1A2;eyLj=B s#Yb#9?MЋ8D~SާzҺ['h&>TH4u91o{c/JX-:Ko^y@N=`@mJ]5rfZJRtLr9I[4 5",fѹτ;fayO7PVXqr1sƵV_B]fYۆgR M^ W|BhUd>37PqmfߟAQF+~60(,\Fhj,y<6#QaNW5MTXv$8 %_DQѽ5KrW|Xw}$9a6_M%TqUF͔εU3: -%BFn0N9. r 78p kfqim 8}itQ.++/ sflUq?1,N]{Ԝ1` C~1`/ܨ$35FgT1S#NHb鏣WdDX4lbMށ~ǟ0Yn<)|fWpyqwuN6NQ9!Esu;#rE;sj#6OQQ1S$ńH=CG^ 3d{̃|N/١!\Mȕl|ɯ e]=B@dz};!A=!"xrKaVOCwkHВ-< elAsϼl.F3)(S#[>̣PE$Sk Wg3.u$AWFU`YW-k(n*> T .ʾ  ]Ւ4ľ׍XɆqL3R/K1I?WO|LnLoK[$٪t"( Kd8tFRe6 MXf] aA~^JJno2o7؁c)x?~V#š%:ԙb"郚1K u۶hϏ)<UI]57ش0TV0\;d윗 J p †u޷!^lO`}.t sT!@ľ׆& ޗ9X_Hs0wy3jx³K6K8 (BVt yƫ̀ ULkL}Mgd*%A̓9Y]C>rɸגuL'luēWH"tfew1_]cxF`wk3KČsG0Op=+sFdi9֚E;hqsNi9[\ǟWB[*a3OCaWB>3;)!,=Mȭ3U d;2h6P5ᦵ]*qԠ"J? Y#pIl?z;OЙwfS-/DP!¹}i~SPdb~هo9:G'?N9γ>r;5'  cNj I]@X?۠ Z5tHݹJ>ڳpA~&r7>JY]6a]"0:0e_8.sf9\Wu {}3|lȦkxzflmz9_ەlͶu7,4iSq9hTZk!jg,}OL Oqo*,g/ ͞P>pĆIyo =D_`ߏE;39Wo7 p [*ZB5Ju*$En,}).>oWs&SG[GlNN83Ul0aR(P0D#+;ʳb X+EwI?m.ҧuv!|Uy$$q~x!Jd~(͠GF Z|3vʯ#:}S͌,i;0{O{N<ۖCT6{dT,84dD(Y)˓#._sU_WZ?ǶN~~o-~uO>3fl\ ④][e}0zuz]U>H|jK mM^1mM"^= \!P 3=m]_4lP faeewLn7&3AZbȰʤ^8[?0<ݷK?Yt9șo,ưuh/CqT0^CH/5("#/4SM}?av tf$OyUPq1y!;YbEw!q8QmA =`w xx>Rp %,(/89F^16phP QF!CQQR|Wd__kWoSdrqNܞ9v"%_ڵ9_VzPAGuFLSCkcvGʮkrZc-^*A#]`S~_{LDZt 'Ӝ | lB c-rpYE6;}RW}fA.{VIcXG ( …U`o'":x RN67;@yLB]D Uao^i4䄃c#|+7?N6fao>OYi\k{g4t9shk:+'pP n d6A`>-Iq AAnQn-Srd)h%cY[z>X\J tMɦp Eڡkx8WSd Z]er|z_vUJlUi^YmF`QиH*_̂ҥ`Kpq f^r_3Fw5Y8%GEF "(ZB-6Ċni:[gDYblwgYƱt9kD,SB+/ zpZҠN94#䢎 ߛn:eJdz6zHc_xe\ [<;< /n]m=A7vzT 2=6sNLkLR~DgP\o&wkƕA;:XE_45fmj+^Tu?]@&fb1It/ɆD*^4 v-CCc!m%-bf`7(sVv &tXv6Io] sCӽTy@r_nۓ"kSU(/-@ t7D/mZ>&V! (A,5"U3z 0 ղ0]>7Axվ(\B!+7` q`$9dYIXGGa+N_="o|LPؠeW4g_Pn#?~L^$ 3]["Nv& ;\@ma%vk4M=H;y{)A6ٿ^ q=JD*~ :>MpyG|+F'}SM!c|$sRqLr\ XIOR_K 5s9WB41IL bdd ɯ?-26QɪK8'O|]: P|[i)Ԑ4[(s VQFf9Uk͵R2?bK7=&mیIg`OZ~a҃@J )Dcfea{aMɖ/(-xs;nk 71LT|ͭfLDv6BSt%2Ba#> *>^).'2̠vN: Aaggj7MF|=M!~? +* B}byH$lF=  fuP8ާ+8-4Gi[vb]$<1 z<}Q.!)'܍r*<~_45z=~:[#A4_qv!c$ +o%%OFR!-SR'xfPdo L" h6!  $1l8J8s@ZWVf(b`)5H.Rd83_X>z gĜJyk42|[~3צYZEIS`w u!{<С ]6Ǥpz5G!7 M[%wQzꮞUg'򋟣 -%zcG圷. kgQN_ 2` uxOK|,|ZE>%Tb/]xkXT!"/&?+F\ cy䤙_A5o=k#f &v[= dQ"H^dDaJ:7z@[|ύc{B]wz")y >GΆRa9![Ҫ )c>H AYΛhIйǸ$~p2˧ w[>< 7ZFlan4 X.[Vp $h`5x3kGs㪂o+Z3JOw>CB6TEDHMTN_u/E4g*!q::-kc"Z7͌<@vO!bG&sJVv3`N ?t6$muFRxd. } ,^}Y v*8'v6[DJ4jY-B0_>!iEGo%qC JIE 1)xǙDMY0Kfpb'V(0uc\OO?0wSkՏv6 ZU&' mKT-Axi*+RypE#Q3;l6}.7bvq2b,VEzWI,`QjѓB##թR60: 0: B!D&1!Ba3r]zTeKS9t\* wTl;C9㪥ޭ{K 7A1bz"v.הu4yv;]ţ+†Ljno.|?O|[x_|v!~[^QO)*V] MaCĈ(0*aL%"0={骪W|9Y8=,,//=f~9uZu*k8>n}?/ij{O3Wδ[)PݻWԩ1L}s :hw*y[eQY5<^  3( 刉 `TDDFd[#`86+*[P낳-^8gkiBjpw%kp%`FzJWT嫱 (; 2ܴ櫚ՀH ?hQuܿO{&&^ʆ_~|i}2lOu_ ٧I.wuױ1E@NG!M6'kUElКCq[HuIrAśՂ` c43F?݁ɅH/yGfi+ڥn:0'_vFL"6nDW7Ƒ<;Z\0Jj"dY%[:k5`3iǤj-(Ӻ,%~B==cWp&i`倷S,HK<(׻wsg. njnZnŔs@|g"1gV5f@rsPo|}9N\LosyިA\W-Vza NԿ‰3|Kp‡eۿU')>ϯ#I$XReD A=u+ ~P1 B3M !@CKe60 (0 2L"7_?kTII>ϵe2V||Y.]rTw;W+W*<Q7 QVksIŻߦ? !??WJME Bo {4 wV |fӇ-GMOX JC (ո|x]@p uA?I&S<@A8#AaێmMXi;Zu.#Z‡i;~zA0!A 5dv8PwlIkwGt[F++pXsFa2Cuy >`) >-8[ѰkH #tJ|mYL?nG)Bom~Kj`M<wv=ZRXqq* , Y^!Y/ S ^ x,ꆶ &:,2Y 7+~kUDbAb1=sl\ ▗&+ *s$e @qqMy-1BmYϵpgA %BFumw[_)>!N:! y;@G5|QSylMy+cd)2ွdfuqo(V>q& i&3S}Ω=WN@+*QT V)*]q"kI׿ϰԡɓG"X6iKZK蒥{:Y`W5\]@snM'JƎyYe64YLxJ2|t¬ *xӴ5vA@2)fbX8V0p0|PXVz*uٰ |V-{[^kXjc:fl]ٌP2G@(ԥٕ_F8샢:AvnLZ2vVqyD(b(M* L~Z=7,Ü+:귬i\Z7ϊp]5a_dӽ`|NY>hvLT@w$n0A"zrr@:z 8w]RnM*e.CGSay Ii CVi-L3PqlޔeuEHm :4'*螽0/-8L;4"\Npt{VL5 pN%y(։.d"^P_"\k8 KnyG x懪 9a"Y~rs5 J-*g)$j˚ÇT<ʶ;˃[&c&<Ĭ>qeܲ2b`=C=K US#S a \akE~Cs~ٖw\[Mes/fb%ǭ-<<#;FQ~14#ϋS$ī yv?Ԩ'LxBa\C1 BCd`LKEL lHPw$fWhXnj2~69rqm4Phˣ(K7u 4&TOzDcTbnbze%Y*qm"~cyICv߲mtDB-|8 Z}=ΣyzHǦl<ףu9h(b}|wƀPa:;zN+kq)B,V PFouVh`v{ۢkά1I SACOxYOXvTA@ 9r;ٙ#D*$I}!CSTXSM֛C[HMmAGJ cp5e;Ggi4eN'^+Y9!:Q,)X =f{M=1?=\z:T4)@b߬>Sfڶr]d|R(]\"h˸6^qV̈^ q 2Daq|8B2 iyچCXF1/K {oHّfc Y%篆ZVi(S6b2Z-P{B]EXbm ڣX:t\͹zbahU,M ~IW JvuP#B݅}_89Webt4HVϸtJ&5hӚnMG+ŸuzT k骃Ι8K+LJ5y5+ kG>Y:vlxb[TY0,m834 32vER80; hP6 `TD HaDn{n|eU+W~ۋ̛+kӅ;>R~zr]y&/NϢVDKTwt"_9ϗlޗmyG`yO 7`~b݈QkEp t0gc[(w@<`)+҈880*, `, PP* BaD&B&k-KkVRw3?Ϩ޼ Q]*k%nsL+?sޞ3-^!ܢ}hxKfGEvwe :=?p&.LG7 p Gf Ob>٦fl 0;"#([LD^jI}&䊫@:'6@`/^* )_=j-UBKsܥ =ÉZomd٭tF(pTةH̾͗!f/KQqpSzd_4ږ|'^PRw=Z-Tn?1zf # n{f3uL*a|b:%ޏIvcPE3" 0hZlBngL]X_>NM[ƺ X3$#\/?|kjPezтwf( bʱc ޳P#ǫw̕ZUbv. 32~HZm ͘|9X4FN2fK)J7 M dP4!-ALcZXLyQƚ 7Zqϰ<:C"5Fqhy"<ȧ`)wG6R.(NPMmt_܎l%p[dDWYSpH6jdu6&\' 4*[YfӨʑTlB`- sBP*+l':؃td"cn>0yK,x@&-O8bAj#{CDǰC?Twf)12/ѽN6hBiMw8%%`lP%@VR O~B{*A! 2aF5O٢=]kTߕn#̻?+Fb!zg6]44 DX`4(+B H&! BaD&TjZejLnfحޞcu_7iCdqcs8-A\m'r)M5ҋcTRai^=fl P7U.@䴝=p(Jƙӳ.bX(հ#x`e&wɛDL& 7AAI&S!ܵ׾8K3w2x','ml^xwy2YbQ *ۑm/,qr:/UgKCP{#^vuΈ ipFT`>aa:`D?I"Sp^3v4.iĐ.3/~PK%VIc Mѥԓ1lO ,ێk^vStaC[#tG29Lؐv LʐgzpLN<7Ô/@UJ)%ʍ6L?!akܴt#VKfM\ G~3hB̬|&V{$R)FEз9\َӁpaJ&CjE]]s*a(z2 \\D`̮mGr)hJ"ה@5~.~~d[g,B~A]&[m{NMW D!: (.z5M5Ҳz}|sQ+ cMo聑/C=֞JΐvUԈ:hhJORo ;3eFWSm'E Qκ>k&A[3z`Eq@; F(9ǿ>ѭ>+qbXЎ_iHӬILYwg$ψ:7&sMEy>||hhYqIxFeiܭ.!= &o˗ Jw3,F:h]BJL7d5SሊC{ɻ'i$'e/6r>`oHâQr`-UӤuH3/D{>-庒jbh/į( #%S1>/]~C[ދj+a vҲ.n8<4.mȣÉ,:A ۔<ոWłihU0ComZCgδ`K,YPl|*aFz700LobL6t_ ǂsݭO~9jv4LMB+[~6e#Q`@i0< 2|{;-;K:fFc|xYqDx>XN:/),Ƶ^HnLRNnTM'޿7dI=sJ_4 v~#9+ _G:xO` bUkWjkK mbXΘWő(" #vxPŅ{6{$ʿNᱰD_^9oVjs6M)5} ؂m3r2#ZWϯu/D @実.j!$s DZtq*@p6K\c3#_ mbuU᫤X$\=UVj5;dM=[T (hj ~UC(Ua$BMZZ˪tͨ1oK !V E0)X+hHB*.RrsZ5Swnwdzu HoG?@I%`󌡞N|[b|H/:VS|vfo›E}"onVnҜ8mNiE([ᛉԓ&{M7hT,T5|Z?rkP"0"J>DN[փp fiB$8ęz{# Mg.?n񅫛2#R{":t143YLPN #lz'oJkTB,'A.$߈޻Ruc2<N)3!})=w"( OY S+R0<+j`ۅCfXϢ2Ӝclr>Q.<+جЩX[<dJ#?F߂9T#V{}Erϸ hŒ[ ~Pؓ&5nNPKW/J}č@q ۴7m4iߍGe 8M0~y5 {:(oI]'[(y @.fE[%D:Yg;,ǥ(Iﵲ%B],|u }e;q IM} ~ry₮&aPqK;GeKm3J&/.y5?[ql"ش I1BoyT~mp9mu\ h$`Of>8-o. A4lw+[)/pcSi ֞]2,a4\(% BbDϷ̫^ʥ׭]t"~ݵg~3y\}߳y`WxL f!v'o ֊_W;_GF]qr2U_vPvGŹ:zRHI~44S5DRJD\cT.Eb\@3T2,84 A`43 ‚ Eu35*Jz%srg~J-KdY^o)aw}i&]VK*/xlM:)r}#gGpVgiҙhroO/]| ]yO88;ih?rq4gFK=C)""W"+5Q8?`j_Y.<g۷/{qs2|џH(]NBDz%BK8a;sl5}ұ#UZcCv-4~ΟAx *Kl E/ 'y̳W;dW;^Ah0HE<"Ωڮ3%+z,UVW9DTȜ/Ux3}؉c֬d)\| B"]hkz;dn iQ"@t{8+kM.VdKh[ DIzx4RWh;-FަqT'Nb<ҫ78;Wl*4yT(D*-20 P'Uϱ,}@I< $gc~*SHܤIhE/%f5n'ZOK|EBp4R.nݗ=ӄIJIJ0,o-4w|GotT-wMt]}:F߼> qH(V>XUO?F Bw^ I;Moq'+s|>0V]ufaO %HwFL9T7}=hj#@sND8-joTIS ם`7z~rL`0z}OϮ d^%||%E]S|Z;_tJ*UQggI75 v?ɸ'BN*gnŧN[cn{M{>Ouy&n,|!3ޟa,ipi_DFT0 a@hJ @ "3Nxn.Sv*oNf~ٯ=m:͍~ Aݯ7?ʷ",?ZGcIn{XJ$ qڒZ5􌄾OӆaO/R?vdr ӡ(id!M Dj)PR\:V()"uЮ{go=y%.֑|7}d>XzO]8=d۽Tt |v添ϯ4FfջYYFp}U݂]p~\R(c`q b=-ye򢼌6}mL9`7a*TMן]/*V:M+{:7Fȓ'Dǩ:C|̃# PAcI&S*ߜ%3[LSiuI뗅qh+hedH5KdЗhYc9UYY ,kDצ0Lut]SA՝}6g?xs ~6'Tڱq+vrs,=H=/2.8xdzao\P{WiaAGl ^#J[*lLCٟOI'l VUm$%r(r~@{W[?QfjW_1E"h6N_wXZ@dgQoe\ޙc>U`wE8Pńɪ9w L9|bց|/M|vp ›*`c =\F25P\ 6"ne|7*B (!py8asյPo[BxL{$~c 6_U2+/s~`S@M|@A|dgjԯ/"vV6#R@㍏?Z@n@$So!BW7$@1Ct;"p2ymKu4d[F@Շy#܀;`-Y_]Gjk, <Wѩ[ ^L~x)ڠ.pl+яMNb+i9X;t`rPH"瑅OjFqj (􀯻fj98+z9zIBU!!_*Rc7!:Mc@L5Sa݀^Mk/Yc6 ~橣zo DJ~a^E6 LO. F[ov RQ_G,;Jm`؟g.nOˌS:pSam)I%1@l40i}w21폋s(ᄏ1d{>?Qo_v8S8aﯚ fE.b@78S?WS@jޭ'/  DsY84}WZ:yTdkUSTmDYWi.JIH97Q^3ʢ75R92=OIV38pBjP̞>n/qOݑn2\ޛ-y0G7K3%eiw0T.xn2]^:=+[Tԉ||g\Ofd^5>Zy? r>Y /WڍZ3nSt3 G#?anx`9>l>DŽ`] }4^oPQ Z28bU|}7s a&t%qQt)713\rP,;[s, }^`Se)_Z@}D#( JFgkiҔAXps6mCG9EË&W멜.E54pT(BsIK)Oesr ge%s'N%y/>w%E/@0plhрՏMRs TyhF Ӹ׻QBlune􄏶)g[&eI`zeʏ7L WG*T4v: ]9W.Pd6틍<My0n2/pd֎QɶMq.v#rܬ_Dlx^קB%--)$A^H~^>f&yskEw|mYc+*2hJ '"opq@?v3n7Ω:KK \Sep@y[/^6xU:h K8y0;q(K>z(c_LsP-"HU :\_ln4lF2 @yN3f Fp6kU3}j1$%H(NJіVNJ<{{܃G2|3UJ[ifC0D{Ci)ƯJ]`C2\> UZX>S\s_ #?Br ˨?pj򽆤 :Тh5 !AzjW 'gXÅG=jdrȍl ;앁{S r6FQ?PuG9mߔY28oC0eyXf8)!}յN)J|v^&IDDh\Ru(Ƨ@dɊNe,N~h*pzuy69"#B|;h8a-0)V#z". cxBa+\CIl>:ݫ\>="G0tEhz|ك[tၩLe'pWƼ쮘kWZƌ['0IH7"K9rm'$CW/3yXLϺHܫ`A JV'mxu|Wߡ>mؐIO)7L|'#kDԻi7^&9зwc8gsMaq _؊u!_NX Uxv2ZIK;wxe *qћQ2qOƴJ2s@O8ddmBϬ(($Y}*f7SN%!-MYzݶnr/P86BVVEśNF 6\7YtB3Wm@Jtl&mg u?AUm 1 kAy$oGL(c5@CO&['0!:).R'3t_ſҸ6ߨ(B}wEUJ$KgG4҉Uiݚ5Ɩ8ٝ5jMQ$v Ӳܲ./X[fvx}Gˊ-׿}ҋe6k3|<-N82 =/e_U-c)\{*xWdͭ2ϼ %8B-/6i{'z#!u gȅVѧW9J[=5i_f}1H/̀}}|ER/4pMNu݄F=Tε(zqCb%^!2VJ\gӊ"Q]c>! G֫)'z$RLI$UnrU0A*1AG GbClDO˕Q[~2*Gaci"G%,)7'z-sddf! 3?$hoVD!i[H@<x8wcޞg}ᶨszsc6C6EX P $$18U^5 <4`Di_w NAd9ӤH'Po9D;^Crʁ&+bc囶/l+.V]96#5< ~n*|řoJc*KfV'Ɂ҂4Q& L),M[?VsN$0;r2Cu2(+tJ`5PH`dFY<4I@3P(6TUGn2M,,M8 IT~Nںo] HU ODprQF6FŊ*6DPM3= 'AI&S?o9g{>.}V9c-Cz*"ƒՐiqkKQJ`ONf-'ξiv !hz'p)PD&j{ޢb p#>9&{O$G ܿm(ܖ z77= zaÈ"9ƭ^Pa~ w{d4lS 9GhHٞ7k> re΀]|e;\U+:DYu4ZW+j<|Cz z 2TxA"f7D?d$*=_=Zə"([yvk֯;LW(} S쬸ϬVk";}0d?aLݖOG;OF,[ eZ5PV|Hg L'koڔ\]u]Rf ϮCUHeFpQ}cAd9KoIOW~b+pbg$**iO<:M4E^ʍyR8LØhv||j)ŌԞ`P>h6%{/pC)[(\ŔXI~b,J,xvg0q=cA|J| yDh.(̀L){ **ܡɛAA/'+_X)$Z@50u%:٪m%m͜]r2FZ@:gN s[:%o69&46ğ!ZrDN;?}<>9J=wpKʮTlt5v򐬧Y/ bnh@ܙ-7ɞ`HR=&er+z=Ty2Q'].E\klG(:s] \~~ 2 LRne)%AP<\Y`L<>I^Z5mX2śCQv{C)S cD+ƻ*dq<%ӫx(էTxWP 5A${. wiNLZP]lp7%bGGU;Uy9&eE_ٽ}PbfN"O4ja@=Ј[{@zldLk: Ftc}ދؓ}!Mg)J@o*#VD0]O,_6:",*+-v4\)7U\r#wcTk*4;ۭ)55FvU*}f(bQCnS6SМ|B8>wt݄?6c]8¼x ˫6@ʦ9&}F-=14M3^ű7yhU؎~wdǑ _h50{Cm7¾1Mn"^6@E&l-R@'r3^@6a0v0rV$\"m[%{=S_gj5Uָ`6/VP)QonO\1zs<ēhWoaC~]//dYW"sG/{l ĠA?& Khִ}},xGNv":Z7ڎј}1W L/S "ќ[0d tFвT~~Nv?bb$'DDܘtQ֜8z쿧0Jƣeq-@ ,{#.>Hp:ױ(е-L82YORȉQrKru; S)%tVꅽMQ5&\:cAsi]`(_( ۬..e?SSjK?\t}ncqCޠ#wX2 {QbYn5oY4 \r D_[x' 6zC{1+',TPґe=: @[-U!}VT7kxD?L LTuguH=(JJ 8gsx^sOχИkhPyVI'Ş'3B,d6+$eټg1kE?;H$Z.<4`D$%|C=NV@bb Wt=F6#A3j^#N׏;%Ɓ?!^l^@ҷ`p;'p7{]_b%1~Xwδ.Uw|H$mꂚ.SvOD*ﭞgJ\jMxЙandyQ/kGMſ]ן^pR tN )ᦐE^a-#Zj_r@|gս/l <# =JTdmzY~EmFi]`UN$0'$%H2D$Hv[J5ɻP-+I=)OKFwT;Sy f{i#9fPlbd+9.;s|)ErTl`L/v/͒ƉR#s6ec|kh_"0(Oȋ nrt<8n;;b $ڟPصϫ.ymt9#!-w ]NO<+#3[łV& ¾t4xY21g,_:p5| |o&jL@V౱8Ԙ0: PFEO{WT*VLךָ*VQ~W+a9<^⹞}_6K r|Fr QS{Or|r\3 nu\U~YwZܥfduziٹ6v7Z,hak޶I,ea~qTפ1} ̓Cp%AR2ZAji|^U@Tt8AРt&+v⹖R*qJjkV 1wbO;7+/Z/pYDTؓ?TeI$un[_UaoJz>*ķ7SƇ1)^(tg~rvyӧ\V?4dGlNiR0!*"C)X]*B1aB AI&SQz4XǨ.EܻgCŬ+Ɯ&=32){%'{Cs4pr?xǮZ8W N".zgkf.'tWu% UёD'[ݏ< &T` prVI0*B=hD GҴ mj\C_!2#Z d?26D9>mI0e`` fs&g$|V`bKN˯Sho8["=`n!\)mj,5/d0\;:1a7>ʒ2'Q;`y"B]3?j7[V}"s (Q4jǔ <^)@ٕTXS;)9J2O%ny3}W.FOaYıP`7Pɒ vzjGH+ ZSHs 偺)}!} mB_9|^8rCt C5K-hga@ѴVJP\OdCͺ CʘmDܦmϯ &=Ǡh[mTJQUSם EsYS9(OUk.Tk2[1jm{\ cKU\I.iW7JZG@Q!po3rm "ч6$y4?ZBPPe)}Bv 3%\ۊdXmmz'쳭JD7=ɷ}AǼ@o1Tkx+5@1wvc k|nrRִ$7Kj7|7ϾFw4Dt@'y=FCsR:Ot/B2 \ء&&zr$m!p %R?X;xE ;A!U$9Ф0[̥G,x+D *9vl(Tlc~'E/IThNi+/:aZy*FnR=GAMRT1}ԍ8 S*xTe Kyhb0عݿŔ:mMMvG+eBO[os#cnM̡k |yG]9USʤXmTCi{'yyU1eo!TvJwWng5?i8ƔqGn_ф򼑦`h `%,tOisja> ح&}@L"HXt4 wD62ofȠ[{ z? qko}P#r6's/Hus~LK?kmuzBMѵmBmZ&;RK{P3X>y)J浚~2x\\K+ef;еP59͚a9a_ Hzy9a// b-QP}";tt&cC?1i$Fq=ugҋ0Ԫh,}!tِaHt umS$v1`{GHlK#KDP{{N _Q I &՟I%L=!WRG) ߴl^LQ{W+Ƙsƅ7jXpo "B/#Ȧ|-0hxdC gXq`)0Xn=^6pjb.V!C`:ZŃȖfDjw2Gw=d 8C7.dr!!nL ͯ[ctS8仅9Yӌƻ]zBi@6T1i lȧD*ǓhKz?^ߵD>OAfDd0D\ 9rdr*,2Ad| 7&5Rjew&Z^)r蚤,!Gn@յ/PBў/ߵJN~G:K [ݱWI !|Q$K=St@qbu AN(^zZ5tQ e&;vMOL4e9i0pӔ'}$VLSty*> KC, e8w7t41$a?҈4V+~2?Gts/Db 9^mA%Wn?QRA0y|UJgE^80X"(G_(6[.ۃubOU۬9/peΩo)jF7XwF鏚|k1mX=6U6bz{utszxث"W}Q~"M8&wn};sb[zAFެ/koiX^{+9-VDS$W9ō\'9̯s;אtlz~S<3xo Oc.|&yjI@Vg%FSeO 3pL!f` qN{YtYn,:Ŕ 6Z!BI^8- >gY;oW~4/FնfMb~f!Mm2G/gCS* LŤ'XmTV ǂY$Dfv_cgjbgn@e(p%FNsڹ5bN(7;(Y;!ycU½z.6O_ގzFnOd7`p+);%{@UjB3+e7Mlt)I^y=l|]hk 4&-nhȷ\G {8.n3SjXFvGesv> :ʘͼ T>E*TDJw#/A9~K0@c=YPnCl]AهQFfy7f.+cƶN?m8 >,w%f"r.g4(gӢDeС ݠ&iڷ؃}|=\kD?vHxvb9ԃ=)xC~(L @q< ^MKa|F+/.%#{?! M :?< nTCѴfk5aɮPfjL}v^wc̊F#*|!3\9Ta v'r/hS~Ն' e o>Ԙ0j hP:  H&! BdD*\r2JΫ[Cτ/|GԺԡ;':>WeGZgUЙuv@Di-3ֲطtɲ3ky<|~Ɛ&*uhGuS)#$W" yщ|d&;ߧ"ӟdۜ*ӽ\fCXŃ ¨8>T&  A`*"0LB3%UY&D5x<렞;iȓ&3| `GaӉ~v%U_g׃s}TrLk}Ѹ2VW9)2+sÜe&cRܮԕ',^v8,ǶmxFPiP86AKC|?OPB-+i}؎EZobB2hD)SǕ?u3plH'ˀ&{.mj:9)QAB/N:g Y6'=COjıGZAuSLpz`CR1ڲn%¦u'Ұ-9ٲa]4О=6TXqs;+e-&g@_}z~ǗR "XGcY vĴw ) < 8-qDd/A\(3omcE'عZ<߁*}P'^|J2b2Ѽrb=]ߩn%\ dù~[Ơ}DR :gY6voqC K^+ t_[7 B.6XlURގYmoQ҉%6H EjV.CZN\f쭀Fx=hѿVLeV!zME S;ѣ2G!f6"SM1*ė 2[ntzzBvd:)J|nhsp7p(oXܡ6{3`ŘUrx4mAmm.YmwW2'A u@K/ k}7 mZܕw22j]$D4}:.ÊH{ooSS{;X‚w$ߕ0Q6\6$Qۍ\c5\qf&b-mLb_D|qwC6bBQu[' !;*A'yr1xFfK3r,B+.#RѦfUN"wGߒ ;&Rs$ao_/t&(S[X¤Ijj/ۿ8Pz {`*$9zlpe#NkF8Wj3ii[>{rDڤ1-R GOZ;stLV&9!20xuJÀg *nXCV.d7攄񞁝@uM]'n̩xi7ĹW0e.N?S{D{~3'elVlDĭK \ߍYOO3Jo'V%'AӡЌ! (pI=A]yBK95rI:Ka"ΐ~vG~39¾[@r ::m||\Xp q chtgiU+K+RLrEBV)P6)Il/>H.? Yy jUל#cg*z~6݌JVd]bІrxV3zL^OA!LXH7eH Idd5a8h8lHoĨ7},uMl BW𤷰+}cb&$͚?x|ta)K e 6gp ]D\dZn6&w⻀5\۬VL[Jdxr\lD&\w|Ui_|͸^N;9dd~llc.8zpl#>syڈsi|7,a,QQNϿI4>~%`yDgYσFl[y|JT?#_t\ڜə}B!gzqv8 xL]Xٛrgw0O ӲhE-=DH ~~k2r+Y.p!7@n umW켳8+Vvt8 H'~u0nU /~ ZߓGml]9S I^E.t _Kh ,F=lUsfDXNau%$-BEK{𠦅n?gzЪu<9ض`U0`Z[ω5s*L}r\[ w ml*#(ޮyXKcs-KA;-a Gu7;دLQ9_6_d_nWnNNɹBC)S ߬GA!UvZ"QNfy0T^GW4#S0vD3Ũb8.;ESe\\Gr q!odK >m^4OX>E1hJ{L"QÂH4ٹ:^_[5W5j4w(2̭a 01F;9ٝl@t=JH^`#O^\?^gc+ \xɩCs ޺dnPzm~>.(Dh!ɢf&~6`eR=ϸrRv6}̤Gw]ΪС1 ػ`fYߩ^VeۡǽǃzၦCEM0c9|AS$t-P5CyTQ!v9ɶՐҟ٣z{'umɠ3E )7Un]CʰlxEvuɂaLT*tmOMLx;NTO@D3Rk Wݟ ǢWvx_LNvKMܖw$ߴ/FFQ_$C70mI=yL/y ѷ{.\C230&+\5w MAJ5~,eF0!&,,w[~~քWf"<9,/p$^h27$ȓ!ns!0"fn0٭YG(2X"(MGA#OA _ee&i68?q4Vwt %T'*ϰ=Xc@gب<25<5†ҡG\y,Kod^5ѧM.Hr/ZeWR̓a5a5aK3u m 蕸00 !:6 _%BV .s>@| XQCAI&So%HdgX~L6ΈX8\faGlaP/\X⾜0OPe$0Te΁EnHBK8=yjsA_.B7y/P^:zs+*ȥw9RxS~vQy-NpO4)[OIshAThϪE>",dN.]Z skuA0L#EhΨu-=&0dpE?̛nH"XunroPPA_· 47*#4I-tI惂&+9V6rxeC9l n:+X})5{Q ۠*`.O42Gs&t: =it#}S2bn9cq Dߑ!"vy&[wa7=.mַGYc}锲O 6=F(?#gTq\1(~d密y.C"H@\.J{袄|W[Xt=on4s)>UWm4Z./75sVQ 0_(F,?Ĺ_E~>v92 WUVγ9끦n]h~NkO̍߰Cmj 'sD*R,־@85c@TȕZ)^wXloQ9f2 tyӨפ}fTor/VzYV?&?_,MGĬžg EÝ4w&T #L*hg.26B&E7m*j{%-hWBRٽLFmׂF(Л$-3K cp7ɇǑ5\9hNOW 44a}ɸ9Hd.$z?1*kT͔~+<>Elc۱R"9$dhe|zvV~%(yQCxq}?B2MOGaqxB'GN1s ӕbMfG&чA-X x6ཻiW?1] !X隴ApF+㱶ETaKsP=|t!!5m+@5TۉL,gkvy񯍜PO *I=B?|tihcBp+Cj$f=죛,R?OTl6UJDAwFYpX ,%\aC|2Jޘ8.|xA0@:aCP~4lnd<Pge[=uW8סxx fRЯEډwt܉EM|7M7=~'VT* 3Pnpm:x(5PYRӦo˂ϟ4 ϲOT!Q@s*v4 s~dG9%ji}'2޳ٮ)1#SA?>K9HLo/Qlzݙ,#b7{'^_sʧ MQtd/qV,k9y-!'qV z9{q1:2Y!2$$n+ X뺜QjnU 2 _-z|\ Z⸟(3*?dD#83VVp)./*_L7|<}_*ݡjS|G[x[}'ikޒsHc# HeSב0cSH$i ]ʯBN+~kC 8K^-<>Gsn6FDz?)^a:7"mDD@ XA I&St~u}IGp ۦ۳R-_\ٝE͸cMҥ7zzu*o1iv%a8}Dp}nȺcڎ5};5=˅;Y4@k{҂T^ܳ<_I؝;Gj; IB$p/Ck[`l/*wuzwSq#ۭ#|c ]fٲ(BE7쮛~ľܸ{")WZ^,J4Cω$~@H2谰d&9Ul;bm1AR5RElsަޭHΖYOc؅Uee]K\}ºy#b 껛TMbv?#*t+?4XƯ+7Uq^)'q xlyr!"0U5F"(:wO(`&m'('-mNi+Ro)am?Vp uBX%EmL#@{K|a< N!h-Uov4Pwfߩ|w4%՟1b*RՈLa[XCγ쐇]qYHhpPE6{H;WY`xoa 1H7k,zzmG^g#$`YzϺNS4j\'trWABMn/AadRlj|LPB&ϻ96ry[$b ofHU06b!7NQnN9hW,%ߝz>X}5_-'oi(s bXJ;T^X+Grh2scg'q&9w˧ȑ7 /sLw6PH[ey^U[.&Omd!LAĿjt?H(JS+EUu%ygeΞGtx9dՍ^[I  8 v%V*(]Ό(6+ ة"YIK •q4=E=D oqIK`r O.:ؗs#x<ĕS,+ Nc 2 E|8G.i. Ȟw逹~=mԍ^juC(ar07 5)Y!Vg )@LA{zW1BӤl16f;:K]7BWbyߔᔬtS͞\bź9ٞs $N f rJqY|)^)]I*uEe IϘ;RkhzHgqm7%5-#qb讀w8hP ըo.d.H[;sQ|m.M-'ԗ~*ZgT+:1(̉Q5eEO95m8U\zBs/M 7jYg)w!_ </XŠPs8nX <#&z2%>zMXԟMhfA{5ltSs5 tǡ,ƌՉTEx/MSE;6yyD4+$d E9AJT8#P WRxTŞk)  p? gE#8\/ʹ~f},*[n1͡oIÀVַxa?Lw=![+hf[T--Ήɥ!hDKq?+b2 "@ hSn_rQfWGOp6٦JA4ni='k<O]>jdU`}JKePh|3mؕ2Ne]N0Bi{lYn\\h}~3*᠔5s^4BjgߋsS(ck Kq >_Π r̮C㧽BL=D˟e>":z;W.ԘP6 A`hP& !D&! L+ruI"TBm}]lz 'uuK?zַ:E|6vFA}.D漞^'w նuZ;?<ӗƚtݑGkA7= m)<8BQR{1,`&5G0p60*AP, LB+⩪V5^z=s+Wew~ yyDF پ'@ֳ .TK]w;ַ\Jo[d=mY9tˬG}=rjd #} fsMʂtF}H%;=ŋЍ^Jc4`qL ctqX]u8*jEꩾNⓏO# "E '1yZE7;t.=5) Mz,ڷ%sa]w1#w/o .\[j{AюdBՒM'+6:Chv/=T*늶 hv{*Fkpsk%!Dzq{{xwHxE_N@W?ri6M[N?r0 tB,v+moRU4EA^8.DsAPZB]>*憅;ƣy֢M ѵY"o8 g9[6LzjЕ|AС]NH 7#Txfuv SFv`dX=1Cr)$E9T6A&yrQä$'={7wZH^h:xZS"+x@`#8Ӯ'IQ<~)ƴ6N:tc\$L6<2Μ:oSmg=%TʢgwW\hϙF1jQ|'{>T4( `L PH('{s~{efN&I5n]g6ywxy4<(or-?WU'ƕ-&rpl#`ĸN 0yO`u[w4vy=4v HV_][kM.rʰBxbG^/ t;I9+|W!CC'~ b\1Zsᒭ5yM+N|whȆbc+@ˊ0+3EMfy[2k=yAeg1bKE 2'fub{ᆳuéOޞ-e5ez,#]$+@oզߤ^In W3W~D,yϵR% S\yjCAy>A;&4{:2Xn 96<=$ G-b5p7C9uL n"rtK׬YRݸ6|جynϪ0/t'e -tQ넨AN:ʺ|W dm4F”2+m7¢N w @HAQ̐Ih~(Hד,/0<#j "Ȋ%%.pio,tzxubL]ła1u=7yi/7f-:oI ^viN%X/= b&{Rkҩ.uFC`e3?:{$ FrAnA$RӇW^Z.݈SԸ:Erl\uL4&{Bd5*iybad5& e5h+ժ IZf }.;VUʊz"ږm`|AYAqZf*s" :5S?-XŗIc7#@w;iCv0&6s _ݣ또?0䒩nx'זnf:7xZѧtAFxܞf焐]2UbLCށۈ@NL)@8 ǕN ugv`6y|$89,Qe$uډYpީ-9^BmvF0>%t9:ށj谂P؟`|y^ 5vw2{MeZu'vuٸ|'z}>G.MQׅ(<]A ?D>ohrl%4]M`l93ggmF`qv~-z_w [dvCxL#82Y)6I}LAߒF{K!- X䕾qO߫?kԱ#қE ǝ8H~53h zF >Fɺ%;yџKt˫^=w,.EAz颬JeJez{yhg H9|7<}kpDF0:OݜV8@1v-nHD?>N8),Q$ןPНw50oI2{/|5:9)!'(Nx]ѯ-S u; 6cy'SsdžNީ8x}1uϝЊi?W>LuOm}0G\\ [O:iC/P$'b_~SS̓;װXegL듉VrDKR.'CՅA5*G=F`qS|M6ܧ-8hy?FWLs/3(. ~0}= 4c{̣?>{yx}g_}}82fmoovlmvhd*@Ltrak\tkhd*@T$edtselst*mdia mdhdu0U-hdlrvideVideoHandlerominfvmhd$dinfdref url /stblstsdavc1THH1avcCd gd A`D 0   r J X M  5  ! [/5 A ` 'j }S  /7'o H K i4wwr `@ ?  O  "mO  X p6 > B - W 9b   1e : @ i@ pxL kVm#3sU ^ -    ( { `  T_ Er Ay 4 B  uK fu ux@ ax3S%py TjZ`b < ! b_  :dLn U ~  *  V  \Y Y %1 5   8 S   ; e  H X hU     -   n O' yH ;C T + : \(stcoF0'4?PpXTftoH.mUL#6CAK/VdrsC::ɺ3P(:C=T.[l"ywlt(J/BIRgWm;_c] qR"/D8vR_-c0t|%*E\#1@ER^l7v ':1j`e!+7GL[aFkWzo3_cʊk].5 G R WdDtrak\tkhd*@$edtselst*mdia mdhd-hdlrsounSoundHandlergminfsmhd$dinfdref url +stblgstsdWmp4a3esds"@;  stts `stsc     "#$%&'()+,-./02345679:;<=>?@BCDEFGIJKLMNOPRSTUVWYZ[\]^`abcdefgijklmnpqrstuvwyz{|}~     !#$%&'()*,-./013456789:<=>?@ACDEFstsz(stcoF'2>OW4esy-tHTq !5t?JfTbrniȿ^'9[BpR[ jx^=E0`7'U-8AH:Rek@HҞ99 !-6R ]jbOrVtqf6h ":17>DQ9\kot,;qsiK l! )6FL Z(_jy=sdsn=,;BS['mu$ÓC֥~M /t%10;@jLQ[_htx(7M`BJO  5 $F - 1 C G~ Q V _ b lN o ~ q | - 8 a f   « o L ' ]  k   )| - 8r B P U b? f p u 4 ' B [   3 , ' 4x 8 F I V ZF ns t  L L n 8 ~ o ~ f  . H  ' + < F P V ]-budtaZmeta!hdlrmdirappl-ilst%toodataLavf56.25.101vision-0.19.1/test/assets/videos/hmdb51_Turnk_r_Pippi_Michel_cartwheel_f_cm_np2_le_med_6.avi000066400000000000000000012730001466211133600321330ustar00rootroot00000000000000RIFFtAVI LIST hdrlavih85Tu@LISTstrlstrh8vidsd TuL@strf((@DX50strnCE:\HumanActionDB\MotionClips\hmdb51_30fps_wBrd_10off_divx\cartwh?JUNKLISTgmovi00dbu  @W @S <(0DivX503b2816p Oȍ0:jZj.,}uvU/P{ l O%3-RUJ[ʆuTg7w>4ʆvsU s>@x}m+7,B'魟R!LIҩ|?Ό(QФh@R'[-e.~Y>AQ%" U M[.fy%I1=w+/Gvq>?Hf)ae>k l_}ΠR>J(}} J Gjݑ*flg}1]FSj~!H*X\>efXa"SiLYZ8NFR4= P5'^xqYZr!u?#f7G0BbΏޱe(bU~md.p0<>;0&{7߶+yarpjA s.^tT-*":Fq74* ؼM+Գe%!}DgY_"=#2!9 d@4V2Ό&TZx6^΢>2AK * 䴐qM^Hs{ޢUD좼58001rM#&W44&hq81)ꅏ**{:iϢ:ƛ_~gmݤbZq~[EϤh—|]uEڶ!#Whe?gMB *8a?vtM#MG̈́![2زbm2@ 'NP(@Dkk,&3u/QҼ K.S6 Dۻ3kP٠`0 ʓ}02`R@o+Wl@Z;*"W+myD.B@q_pZK|edp}38dY 'ZNݶbtGvn-|8W-[KeDLA2R*N҂)`:Sꧠ؋) ?m^ ې [T-D^Ք &Zj3`u{ n~=RJI}I`cy?ҧTpgƛNܳ؏I?P:Y;x) z\GJG P`0(}CtJUK9?ӈm ZEjZWK uJZRHHo  |_ )4Vʯ :GpCR"┒6⸑>}on(>TkIY,iS7jmi HC?oj Z[R)si5w}sTMY>=M z41F+c߳.瞞b)Ovt3s=Ow (1FJBpUMY8+vuOQWg`*}|W UW@'8P b|Ow-RßSW'TT؃w.Ԡ8MbyɼߑJ o9K, jȏ'}fj˶晓M."C7Zy? q 9@WoD) >Úޣ=-Q ̽`8L]M(Ұ6_!mD˝TZlQ9vkgAi>pUkcXNKv7bļ/&70U`C*xX>z3gino5\X9o:+\X6|]WGYRڷFM+b5ŢAr1Wh,]aYI#6+X׸g1<ޒ;+IS8f9S$8i01^zȔu*$M#]E`Kao dA]o"ThGќ }b vDs/!?hNmǬl *( a0AUv^^b$R">r vҶ?-} ͳqRݥWTDH9*u~t"}=7xfjdP1"K /CU3a_-D_lͷH:I'zleOG($JqnL /%XrtѠ^)RG`SW1O1Od|y 6\?7`,`.bc#C:rl x?sS w{Wzx:Lʘ!ibNLl|Ԋ',d:.}7DdΉ Xe`'Ӻ3 ݥTL)䪁_سąmYv[@t;A&Y"~ #>p24_DCxSeJbbswM\ 7m-JHz( :ΡCn51D445߷}''VS}9[hdh]41}5ZލnwXF_d=foTh&8+P>>8L_(2x8P lzq{j#@&eIxl۷e>* $tqJYLK$OdYݍ  B zmeEΣ Pe=G,me)n;- {-M;lG*("ߢ %muCs򬹢`T+Fi ۥh 5VEs)6-5 F dUv 0U䂤dD+2@{%QM ݊&lVdE% mlrNjuEwxBKWM#н68IS|y\Ō'__m-^ _n֕$K?w<Ѽj IxI|V3m&DBN_cq"g#[+K~n@@F)݌zboKCuOy|?@rCMQr$'j8L&fV} R>#7hd`̈́}WnOͨa@8`XMZUa~oԙdlh]R+"v; E.gu~>@/I8GWQ7$ 3VQNU!>?L:(\n^N "ݹHTg{F--?uT|: gw=M“tMSeMl0[72i,]sWh[_}OK`~~v(A2[ 4ﮬLdEdBw o:jVl$@ _ _wR`ż9V$o71Fyh*+lcs$͵BўQMۂشyqŌܛ@#s Q`r%6_]l0"e"73'֚gj"o([cj IIʋ~Dͨ{ߘ7v1Wz5P`, pxϿKJ0rU3lT!a5%ʷhJ,/KwE8%ʰFv wƟjpF8GX`MQ h)Ձ0AAˡp$j*7Mms I×4@ 1?ձRb+YVrr 1sТ`0G_JLjQ* V%XZ f5sKQL[Þ= '$n#}0Ap0C Eʳkl@2^>L;m6#ͪGխ\6Z$5E2&,u@^ i^c]F{;2L&ZVxI)7 1T*oȏDD 8 9<5U@xE8q{ B\[?<ŵɵ㩿+W/ғk>UbEmB#~ ɭظ "*+@&"W;ʨԗYXv<=ZBib{"9}Ft 47slzqT E˨ʄtsmΉ߸Uނ-Du,)k=QˢfRJ]amgiNLG!}Fdw܅h ]%4=y3GԁS Cy5ZdOaxI{]&:3<\?"U@`Ƅ^Jj b1ڤӟBXY <_h7sV!ٝB?gcxq\reֿ/,X3=cܿUmv D@^tr ֳٶ֑dEjrˀzK/? l'LѼH"qqZ򷞻9` ^`? #&oX7"1~]gDmOu 8K 4#%_.a<EʙooL2G>e^IC敃ƙ;6pApZEA@q ˂z2p( nVy9ZA ppxA2xKԐFJz[ʌ4w#'MjY* 0h:0CxGl{/lO2 ZRІ$2mŋplL!48JK<__忛 SzH2x{AKLd`q<mzf ;m,'b4 x3`HիH\x6m`4[o0 ~Kijǥ'Y. uFp( ~"όA? l 0a$`a> Ce:Mew}U+IVJP ,| P͇=H_ vҭ/ l:x<Iī*Y``U{eEǛUA^=y3o66$U`WCh0 A͏ShUa"uMl-QC00B7)mR}+}VJ V@lTe#9rXmnoZDŽvǠ+vpvKhSwoyرa;`xthyrU 5;fg$$DG(|LFnS['8! 8upƇcbj-sm[j+2o(^6ky03"w/Zx[)߇  a*_޵V՜jS%7FKgG\G*}*~ dDFcg*J=HՁh+U6 ([AbzzF nn̶V8! !sf ײ+~# f4J.W8zXn*Nי,+͒ :"=? `O zϱ}Cn%Aksb^2GWS{b ?1oE!MAD;~@<O*eR&1~%hZL q~e]kqK_W& |Hsb9~a|eLٛŬDDD [0^+BmCZ_ě6أr@ H聍Չ8c^AKeغ X/*Q2zHSЙT*he y+56pJ/d]Ck OK>g͓ؑZJLYFr]2@xC.M"y羞y ?pY% H0QK ĥ`Á8n=A;W)NBVB/ffy4͔@=\3J8 ۩ư5[X `StEG?O]^;gHlh`c]i 'j9!ẍ[aԵ^ƃ$$ | A(x|Y%jӏ՗WU>o"\*2PA0І!$H>X{R=feڴĊ ?gF~hX( FhI|:eyuEڱ b> CxpKpxMCg2Iney(j P0x:`t9xht VWAިid'^2p v^G;[|=hZXF0f42B]<NЖkB1sU3! 7nRܜ0?}` *x/ 1!`;J҉ TG)}nO H Paq( F108th@Ѓ[GM,̚{D>#ƪ@^"Xy Hh@A,eC|&YCJ0)A0QPf5V6+@N?h٪٢-Y}<#]bpx+Āx-NF=h`p(զSH~|Ca`@0)D}i{b_({zDDz :0( @0f(x!#.x`@e֛f4Y4C=`<NtvP?/y,gmL=/in_}Bt17U5F,0\grBM_ۙ<Ǡ @Ue|CϦ+He^-:< 9tPp(HP<TlGL:Xmmk̗4;qҼ^YbX]ʵY8 Կo.y?AWQQ3aN2~b"(2_nq.J`Pp~ڽN} [4%n2cFw,.Z,3ġV]>J8^!\|DrnB$eGڬGK k62g/Q :&!>5i`D.T=GñH5o<_R+i[9Q G!0 G2ڿ8[[*I+l NP B5Ṍ1"d2?LRjxT5l#FAꭰc6pՂP}G̏XiTnji 3@EN U UAl"hafK5j䆡@Nݥ 7|,oj)PS@AYmZ;e?4lc>N4s.] a oDjX(@`nIv,p@V?AA]x$&x[Xi^n#w }weL2$SFWB A 7v~Qj( ,#Dġt m`{ R4h(P dg@V+,,W%j˄a%Z{w[VhF6t< a~ =_SeN.1rUJ1o&OY}F?z ̫!v ?fFh0̜s.y ?f)k7j"$B*7u'C2.}/+*>ފ*}*DmS{QBsLxFVjY.oh- KxBS-%+0f`7g 0`x8AStJOS r~ 7psx =b(ht8(Dɘoä&TZ JXLKdnNmFx~GI /LȂeY3A x%?'chB<X }Ed% )N$[Ӵeȳ,om[Q9*T/7Eͣ56%PAlA2Y[経LSI@x0&sr}YE/J q ձFlA D} ~ɑjwiS#ԊZV!6jt u,J}gQAD ?'3mNO#)E]ugwh&h $~;.`=/JҴ 1,H̓@If`Ip4 =`}G2a3YYx|,UehFvjbBWDͼ@jx dc,!ԢRF| |>N;c1]-*ˀ<2~A,x0>1.5,Ihv;N?|o/جo:N odI̓&aG{)TZo٫jT`B LJ PAFmA ;^߻n`>O|ԩh QʬPzĻ//atKHpMkm۷UT\嗈u0~`Ce`Q\n,0R<ՠx] {|TH?  }Ȱ<T ?`H0 :>/ =oue0Rbِ@1潍C6#!|0Ħu u" 'fƠ0Ty9#P4z }j6ôgKE(_b?2 |Ҷw )07id~ΏǴ:eVlHTc9&/I0 "N  ɻY~#N- T}GZD @p0fAR|v˄-fC:2Zđ F E[Nt?% p<==*݄I#FJxg:2A| `AJ|%cmX0+2򅁁P ѝI^, ,N]yTRRCCx bRv7Q5Aph#o68PxA?w! :Ėc%<쭂|!.K /JtD<!18<`D pĔ,nZ _qG<'-9#Jolba tʫxi0 l`pE@xAV$%[ub| wlDr@ 4!6g=W]TTP8eDLV *S_zpk?{mAۂÓ>0c J<ίgAlw(HKp(GOm^S*s]05^nB|pXlC *n≼ʂ  @XeYx!$Η-ا[j€B`Q %).2a TƔ0>^^Dg[.[* uj$%P(sy^ӡDf$njlU6p8P KMrϳXAB1 ڜPe*aεdA2M |^#~:v#)"`a@YEV bԵ ,> mx"|ՄI8/FYR& D7k'k [ĉi#('ʈ}UP<$T}W`F+ 0RS+xY vG'nHuW@xl ʸ΂^DQx+C+aIU:dƋT W$J77ɶ)e/p:KVtDڶPi7mLJ+e5gg"-A /?vS&QS zn[Νh9䪓`p#Z?X]Kj Wa^5TP-C 80A2@7ǰwŅK,@gRt<$ ܀agT}3,۾"TB|ex8t"#Z[ܧ*!% |EiGZ; v$f^8kT˓ciB V57ECz%4R`";KjЬt7T`p`n A%?Y}SvlS$dy=USWK(g5ɗ@<D͝BxL$+H?gPQnus[ Ɩ7s*> `V t}闫AF{?'@BIJP 1?TS֐Kغg/r`@an])KU`aLwYS,-A_~]_C+zԁ#M8+"9CWK8Kb7Ҭo=W]Z[V44+@WeSz҈8Z)F*JfpLJBCaF<^DV*qyB0Yz*d oyu<"w ;aʂwjKr--`et Rb5x)G_,Q*?}4%)zfskG:Ab2柁)'CoT{; !L *&@e/+?Jηy xIQ[oZ1Mj(mڴ[BG`@L00<`tR/,`: ɞ~ƛJyz#xl (JfQ~8"˖G8@ y[T L4?eN2F=DhSy!1sAcD4fQ+V{NhZ~VꚩX+y">cƷkӨ*Kd)ąQr}Pejri`*] [ Srk@x&,wJ8~U$ ^/\PxhgŞ~; iGX%6ʈ;Z8֭QVAHyosFR(Ybϕzu_ިf(L}Y}d6d?':x8@y?|\U/eT]m x&A !`@080K`<,H ZD/zK |"X# ģfR29o:UajxA?Y'$7AJ 2me[D|,C0)/8ݑxm| m{QgAx(7ȭ?Eq7<@8 BBVjFJ}i 2U\y(F8S2@@CxJt<z b3@rꇃVH|HA qQ~@:<;``̩a5M(OM4nͷs.$<%V6k8f`IToKh8 y{@x?{T^>0ǰ05'K~g(g5.Tov[ y'*o1(~?e--(_eBH2ֳs 7xOct'g G 6 S *Uc3ڿ;3-T`|wt {D`lW6>' .jrbނW@Dx*҃&_` e ̏?b0` le[[g{ OPXbX8;M֓~U}}TO]5 " H{ TYct)5A`i86bJ@xD0a'? ptdxEd^BDID@7a" DL꺖ֽ䬨̺W::zJ680AҶWP%T 1;$r&v=Ձ,~_8yPR ]%F)M]~2hJ.S^+'ݑiNjr(3| x2A q/A*a$0?ĵC(wa|;WV9A2`xB x0 %2lǗescKmc`bu6X9p$4%ZW[2 ~7pUxāB`> v$h7K7 2#Gc}j6!@3J:bo5ib |P'߃h17nHʢ40 >xG,Gdz"<4@!bZxġa{Ia0+lq[/f+`)\eZJc:A2R"bh'At2X^0y;,-VQ&y}>ӫЃlcML}-YrnS5!o(J'a!&S儉 I-@Oڏpx$GN pD\/lHN2aަgQ6^Uȃx0!}<H2ReL'7Hq>&jc @0< ;` J֨,*2bI5}$Q޸`%A0Bi^?`t˻K?% @(s큫?|^9y &ҤS\~Kce` X(@2o"K! !,4Qp/*ɞaSYa{ر켭(+ܭ{r&`DJǐ1RL1iI&DKCoꜫStܮ[ 6K>߯/#%ev;^[K_b1"%Qyef;{& 5Ý]A-~]F a=VW q`32vҗ/X~©uG ON AQ*W1Z/Jџ2TN-Ya8< =_@`> X)HnGci90fA upSaA}xvQJek"(+ܕPyE5;veB҂$'l#^>J b]T ^%K0PS5bi:We ^!f(l+Kx 9&.- sk`IQP(XH-(m Gj$p|%eDp` Av-M*k^鼔-J 复 _.g+wTV ۖW  A?}`!2G|/4 BPi,a0 xzOV)l{.4 #xˇv$ʥpÄZj ξWgEPJϬcBݜ61=L}Dv0)w2>,j)A 5kVcQNR}S@Bz%2|MtIc;b[)Wgy#0 j Xra&I`GgkQ1nCFTW-o aDfe͟p^ũBrxobBтL@RPPH 0`:#| Pޗg,tSL7}us]ʃ@ =&/D ^ :?CS]QnxA?ex.?qc`CC2v>=1vRJB$\Jۨ(< G5e=;r[ﳴW`AB X<`H<:#`KLb'` L0 75Y5Y_\&4 (mdzzY0'Dֿ,i0\o9ݝQAW3H0 A hP`AN gъ  ^0T!Pp H2tbФ,!s m?橨*Q! v蠬\}.c`a_6Y|@ða%`HKIDɫl><P>x@<a@ WUקh82Bj#x/҃<`̪.LY-^YPqq34>۸F O )=iJ.>Hp`Q0kvHGi0dxP x)A?oupB70\0~;`|vc^!zpzxIѓVmTf .XґLX) 0xM`@ @xA$N]qn9yMh<cGA?V$2oj׽8ovaV}ɒ962ap%f(jԨzE9PGA9a2`x&@(?U`I^ wkXK’x+U`D0`:*H }dW][+| hzS74Gj_ݚ! 8Р< x"h0;x2ʶS`3y;a< PkΫl cҝ,78Ax)A`8(R\> [c2 #4IOHZ&()"&J[xA0V PP%Re i(S` ;f@CL!i]F`!/d` V# 3! !KT&JK2*A200x)| !!a'6ĐA~lFcmUwٞ]/ƾs!d C 0(A /4KA.j}}ѿ*e$|XcdFC{S{.ƲC%HOpIhM̄ H jOxBUjp漢Ye/7@aД$ 0#TV,4jYFjO@<p$qaAC$ F}H8+73]^ǖ+0)>?T^,y"K,O7¹Y#Π5*o3?eS\蝵AFc\\Xʣy=9>q #`%8 %+bGwӪ}X&<  <<~Jf0rXca&{;,aUmWLx)A?y< 67`##U8sS=`S#pƱ3exȏvY,%ٖ+gݵ#|r?{& _|Uz$oꨰ}>l"O +0%U-_v–,dSȧev~(< H  Av  !2btF*/h|?O(Ib$r#'0`Q i~u`i,6^L!1O"u $&/HNgf͔8baC-Za~Van˝kQ~¯n^gm1Qe aA!CBH2Pd:'gQQ,x~IF$ x@f f<ؖ{ttl$HYk dQx`=`\2zT0`L#ۂBcj[Pik: D80!T ܶ<`9 BXAv W/^80x >eYV pWod^KNڒL;Yfʫ"=f/?7~ 0* P`\Vս5 ~h<-_ <í#*?\mdնscivAbA8)AF KDpeC$|~ Azlh_qv}-0!0*6'3qGg ~ A+<bS( p6ϡ 0*sQ \ALf9;PA #V!۲DwBP0)A .7ATVx!K\H~!gi5;oP<A%01V  8*7UoD6 }XJ :Mk>pxtz9~ _ 84Yf3=-!%u` *=N$`tK<4T]F=NQoO A G ^ұĶTPɚ1 yS gQ5ddZJIjN3 oRǩIRK҃ȶLmz׶l?߭FП5{ ny #3!eBY wf/ Zj,I&N4Їz#x(iIr#چŸQLH<,$gA߉@Ձ͠tv>,,:k> ~ *Rfl(;)-;f$~. fI1R$3^P(P`Pp(D(ĕ`P*徛)Z(„ px]P0CS UlhJ1p6rFBmH0x,? x.ā$BP(0P26'p *'(FYQbFq5^G^-9j_rIsHx'?+ Rr#t$JJ@4"LV܋H&?-h(d6Ȕ% BP6$Szݧ 2a 1l1~C9b38xA  0xǀ:V<f@1v80v(#+V9TgBA(-A%S@+|W ;;'bnM"v! 0> Q0:T;aYu KRvfsC*]|XF#~GX0B?tQjO>|~#iu.rhA -rCHQt<   | 3?4x+L¦3pGTYOo&yztP> 4ʁcրAx|!F2Ȃ[bBy0G- RmP*٣ t=/J)g{CIqp5.$乭Y;C7<#+IP ?r9   x 9p2tF@U|J6+j?)χo(2a0RAf \$`/1YOx|[imh F4JL^&Wg?eYqW3~&A,w-Af$p)hxK: ]07W.Yc4HFT[τF{cĶq^q{W#jcn)+ uP)uJYۡy{Q@f|l<"H<HbC8ʇbD-ʡ|R+UI3_aܽD@4 RG`t9! s B2q%rz,tlT<9VT ;.C8\ nJ<xXhx(k0jPQY` HD3up{7 Sn ?erźW?Pel+aٶdzPj^q@BB?=6 oRQAJ)K,߃A*]z|(4P3 ZH !-gEtʦw&E>h`d}j /x$NJ2 =:Q`p!1@7@0) ƵP0B O!7kPSy)4MҰ`;m Bk@o$&B1S>M*$`$I,^ ?b5@=2O'9\ _# ъ"2HS@`as6/yJV[Y][lw?c.D1nHP桬^IU±IJǤnUla,E/ʾ^ER7['^綐GEYGӳFeMK"%EEbP2[mZr\lt}8z-'J=; l~Tx;.oˋSP!X %o%M p{xˁ9[QAyGiU^5df[mU$M< e 6&ڬ>0]U+)ۊvE݋ġՈ@uP˶Q8tuh) QgTM%"1~]y?5m6<`ȯ/UE\*k};`-Fc`> `!tz}'JަXn)IP zF@PkIse-şc<ͳ*Z0_IVE"LݧcŬG{ lq` +9-ALbWE 0_:| K`,A ;J N=l8L1e^<2x%Y"!SiKU0FQ%s 9S#D4v$U}|ϙH,# #%,#$|yR? _{<O81DYjx3 &LaP !PBRrfQA$-jB,m`E:.0P49B) 0z&Nчd`q%,ދ?Α[,"1sVHS0lkCEɸºcv 7yLIW y頭HgseҴJy[nt<\O4-Ԭ#Zw z v:WPXu?$m 1ouZtʉYeĝZ%AGؼCGCSrUaҩDmS0xszQ:!1ՈB/nO) ȉ2_EO-ў9<`68=!`C| יAX+i>H^X(2TABh<ꇠA  @a| RL>wA{Y4-KyVY o@b^Yrh1f&CZ9JʁJ*d|;N H^e2- ‰v!Xh#6 f1 |H( ҨdA*>m$ a h^%? `7>؅y[Sy ̓A<z x0!F<t<}PeZ~T@&- Lf@bvר.( 8BM# JLd~Ȑrx;Ax `8إQX9H%dI`@Ok:O,Yzf%PQv k3Jh0BI ڛl@\R>UA% eaj*(>d@ HH5Ch#:?n) PKJhE&]hCO s,[tKH%p5Ό_?@a mZQR\8iNJ}ޢxJŝGјD4;"ȫ&Hp4Yv%dHy`?^PP 1B*~;܂EorFQY"Qz0}Oʚ/KYiz$CƋTyf"*_0ay:(ރ[ շ凂@<P}rF^~!OWz^|!6(eClI `1g0O j7$F z.X n$k %w;Gxi&=V5W1 2dE Z@bDvm\SVG\P"@ < ؐ@>>Z`S5Fꝓ'~5Ðaj CAyR[~ecp2B UiT_#SVqyha0; R'Ĩ!a$FiYp8%d|M[X6Bh<9.OYN?ZZa( @ `@ @*qx2Fjm5-fNҚ[ P onUAD4߯E 5d_n3@^{-L)m$bDž,r2")ط:NfvZSb(NۆlJ \  l&Z.+2lty,5qXXNplzd'SU~8JžhQ`0h2xw/(+K  IҦ/nT8IoꈽQd$]j3٘<`<,"PU@t!8Rq0!˕[jt|68 $+#! q֢U~# <ʠ]U0R~V THtx v50>.*~#xK{Vs#NTB!PLBHU 3~8iTN:n84OJ>GW(1x wIh2rlo"8A!#<~]`<4 KP~o4a(+ٻ [p 5-0x wcRT>T=Fy'(Px~b3`~Ձ_Aʀ^ @,>Q*WI=0H$ 8&`Eh#:~҄V0y~ q/O9 DRWΝRxGC`UM5OoZy;ǚb4]CǪ$#Yi)7cR^@x[6#4͏fiɏs!*H0z~v9ʪ= & TЂ%Y H40 B:on{z; udYaOޮ@zy@1&I0 R<nh<_1Y5I^jDXJ\(}/SD6ÚB "^k`pA }2_xI,耥%XK9o6nwRM?R@s.[n!Mb`*TuJH9 <ɳYl`z.%HI(zmq:l ZmS=^M·1_( ?qtxO^uVRDӲF }9`Js`02R%SXk fMb8x~Sa"4*3wQI.*PB<^teЮA>x% 4~ OQh!Sg9`B0<`02`x 10f Sa KSi@?h?TTJjLA ND$ϪqK)8$`"BK[BgVqaJ/ njS4[i^OZTF8H@{҃ 0 C X1po[Ț2?%XS0+BHH~;W&6{>SacSK+n0lZƁT{JɄYH`@/Cn4 PwwPH2p<`8(A4CKpl ̧j=Z ͉.O.U3r?ln^/@Ƀ <|;C> @@,RB~:$0 }b%<c>Ŀ`sdL#V nDV~k73hea<0< @;BH І!p<@L$ "H7CG@Š:2 !|K/ZpC`%[czBq8t*U^x s.2^  Hd~ 6c^K[wD6J.A̓ #2<`M2IkP 6`Qw4>ejpRJ )0>MDB@0!B:o*Yh 3 ULA?b@CT!-hW}_'zqC<,PEaG#@J0@O k?\!ʁ@DR0$OK>[mvgrȿym\H0`AtFK0| PQU;H}Z@Uџ̦Gpx`.e[)EBIG {Χ E"I,:ɁD̸$J^,_?+.2jΛKĔm}I.,bZV6&)aTF+MBS<   %*V_3V=;9؍UAb @<DB/E5H f(\ߏ|I>80:_J yД9_w&^{ō00dc00dcPd@[V eDŒ6N3Bxycs=s˧8JV>.WT.TT$3qwa(HU{B@WB_Spc 2BRlQR,6%a<z{_t]އlB ZT 4[\$) # X6`#g2BZ|^! -K@g~vv^ec~#bam4 V3h)ddtv_tzcEzD'XS#p^ {9܉P8#7>](}Vbn ETT?OX1'.lDkOH/::>HwbO +Q"cIxG+}H2.sP=&}@~k˿!Mh̪ޖWf_{ݱhudr@`&\KFCjlG%DA]2`UX}WCclOـ[<) 0ckir'k_``A]EkwހU?BJ5 #SdTZq3>Xk`5AO`)="ꍌ4w86T1hRՍGMU~tyƑ'cMOD~-*=_Up!fQ,.SAA Z'\5@^c,@_ȺC=1",!1 aczE8" .2D 2}M)T rhuusW=@ms{G3{Q|. }rhHF>+j+RC>UR__jR\;"e kJ^ P̟mGRۿ sЂ%zQmٵr3\hΏ}{|%jDnԊž_.<^,T]A?!rbj@x.:_?~\G8Чgrz>) ǂS"IxYPL t H6WNI|Kq?yAIRypn߁E_R [ v\Ɨx?W?E?ZZnUjx;u_Q͟3.Q`/\^TֹG3#h[O@"_ծ mďM` Y6<,wz_ADpwavyd&?ULG !NXJ$[c\dl-nD32 ʾW޲# `ۋQ)FjA+Awؐcâ!``z=CXR DIVJ./E%rES4~%J>P>W_ؒ%YxPֿVğեݨk˯ d1PeITAH*~a+T+?e zï6LLDKR;'@D'U˿y(R7ELɀLEcIn[|<3Y-OR#%X|2J_oE!hFCwIgIAij7&=ւ4D ZZ[lF砊?VoY~?"t蒯eʔq xX*L&l9pHBP< a8]-/ 0G?û3d3XK0YulFQW(g~Ub;0A"@C%xJU=*\|>"{`"幒&j¢ђԃq0W^D,Jc@(?Vx@0[X% W P. F+MSҌئ|Gqc2Haw]̊ҏ:=J)E6\u=g\HM,7׺ )f%.x]~!.U$}1flx&5jYteO3(רjaаK/HT/\@P}{%mV ]A#F6l"]7* h<A >p %NЈ |o6_LC*uUjM;bHdI B3jTƨgI9b OR0$Կ뱠̢0Pجz\F{er' )N.E? 2k h"3W&|4e}2H#Ѳ4GNJsNG&ӧGGGGF:4FJul`XL0YjP|Е j4GGhFE a":4GE+VFӭ  aJYrh"CN2 舍@O ZcdKafMN~`ucTYi09 7 tpt{mvG DeM1^ ~nVwZ@a ~ ó~Y1 )xťP9pbwȊ A0nKr1\%2†3Du/;5O FL2fb6%/"aPP4x$ǂwn6/8@+ x5T$ゃZs Ϡ<|/5",L. t*XZzuE\Va0l<:T+bA plt"jX;wxi(\%Wt?iEdWD]o [ӧCHrZ8t! 5)./zqZ;p{Gj@+u*c9uvGDqQ8pq)ڼs'ӭ(=E)zu+Q2$/Z|P\?ߛ<bes'z+b a"*0RҐ天Ń#lђzR85%6TYX ]+Dx,DžtTZРjK~oD|<\\oF+͘[ #YOတ+'37d4 t&a^"=xґ)䃡xcJ)jh, g ]/Y0I˩HWոp4y˨`>i DBI4ZQ8FN _g:S.ઇGGFK2~(jʡUXx% qeXR9%itպ!V4%bQ8H=Ex @PU4<(= C4gB M =Qx&6BⰡ)JЈ'_ kcc61TFC꟢H}$)РƉI jd`FQŀ쑃p)kKB 7/P:ό|J|$֙tNˆ?0WtnQG#TJ%w6)CT~NTd651iUbUՊ9^VX*o3 ,Fm4gBǡ%‡*4lz,YS툸Kr1vîӛZ.|DWGY o/^* #)gCN7:PʝբQ~ Qyp<'dUlH@AnA/r@)E:+T!=<%S˼[KDEK/<3`:Ը}/K=7[TՉJOVPCPtE`wOk!Ouة_anGE<oS$. J?>T);cimi 7{2OuA݁x/&\.V+D$Ǫi 5.K =VRϏXSZ ՏAzKā)QrlpK}du*m_나N)UàS jC&Q !0g&| ٠U)w|ǿmD@a7x@R" utf%]|<ɅqB}H +֙45U)#2`P^s;l`LJpoN9PĵCŸ.C|XZYwj/SZ /l sea?0)ޣJ3_n7)uU/j`UrpKAD*OsR@XL\`kVh)~%A,W, Nt˨}(wVՖ# rc\ͅ7Wu/W@j#ATQrEڪeGR=U3U{orVbڤEh1 SYOlǿ{8sMx^yBz>C~^OJ*T™a0gn.3- | 7~<իĀ;;^(T SUBb]+ xd;OZ P:" z*;~V;|Q* yٹ`a\K|_|7},?̀)jX ,Bp) *P%6 AGwp|T(VjT p/.VO|KKNJ\`}MP4]slhIVt~< }~Dh00pj-h9!s #5޲hX1RӍEVl;]|yV 낍jWEDZL&L^Džݿ%ވuw1Fez@l-q<ʽXڅj9WmӁT69쭱9o(.!BLZ]nJU3֠xmAƎ 0_׈o 8Ɇ0M;!qhy3B2hEQ/tNP O0Q"9t>ʨM6(glZ.7Bwa"4VpS|zꢯl3 uTr|yחcz{wwI'YэN/ Aۑ)U͇_QםMP?~{н߄yrι]ՁU!T<XSy 6&% KA'ޟ/U q+ti']A<Ҝ ' xOp;O)Dž E|%X %F/Q|g D+%K `tdy]&0̬7,[}`dƒsY+b5/GMH2̓̈ ,es?@alA8IGC^x-,ۘ<toģo!`ƄAuO!3]ZQ)TZeӢ"—+N o{T=۲xxL\_=wQ"H(6zA׀͋MwI s#Zuw|^qn)RrAFGN֯3syyJPN5j1Ce63Z=k{h7ı<钦cQDhTL lB2MxhE|F^sQQcC5sm-eBFfڽ0|Ǔ4`'*t }3H`8݃O)MgG*[Rn)p0V,- ʝ+ a0SO|Sܑb%>!$7B+.VDt%@btg2{} u?%reEJ W%OtA ~ K qs`j _G J @D91A O!h:Nr2$ Tf,0'4ō[  `-ĈN}ZhZeIr+G}8dY_b5 1AeKJT_x)y>{ ؔ$czǂ"*V)pIG7h8<V2I,Q-6= `dGtzFx j0nWp .k'梧{eѰjvr˷BaA|qP߶|[0t<6n8)7M7Ho}Om*A WjXJ_xk_U_D{TԹ$uNy j0tmƂ V+C~ѠI 1oQ"Sl7[jOMCV R# Cd iʨoml*%Ŀ=/ O.+ChF8H~B>_(!"Uy$FʚmsGYPNZ'ITHHCވx| dB+'UO"q N5ƋN<=30B vtKCث7ņbRgW]s)~( V]HiVj^X.h2A `á,p/ĢcF_UC-p1S}SFX-u.13jK'6G^WRG6!L)kPz[ Ev#s E@n%c{5.S,Eܪ%(p?B#%ˆ-Ypgv(EʳU~jw sweܕI|EVMr_,k}xGWuQp%Q텐ߒ/e{ҫG~ S S]`)<=ș{޽<}'~/_5sFPr, TN ]$> md㡏sYP!x%ݠ= ] N.f3P2?NAKJ,Y*_@tZd'S2=Ul.tGWj~(~+d"0_}6Zf9Ӭ/'V)@eՁgDvrLsL<+|DvFG`[h^tSN|Z`3"3w>w01-mDc/3%N=HnE:rO( 䛡.ʣGl72J[PW`wUx\>Ux|g{(.}(89JeSm ÇeNB,ҝgm3¡YGK\,<_7O2ϲqJ "㔚MQP, j{qz@e̅RZ,<+5ӻGѮ{̩~giQ|#A"bJF@@9SL M6"㢟Ao}%jGf2#_0ݒ4;2?(Ϩ7>n%۝=^>Y;*`_-=JT{5kk[jwb_Q iw"TDZ⍅`&K1fciS&qx^"oGGE- ٙrŬb ryWޕy#M6GMC#k*,@Xh!x}4hsX QF"pT^zdNץ!0דe-F6|T`Nq1m(N $jun$:WreԤNFҝ4GGdr&p82N LY !iq R=9(1b.= 0FJ,&A*jo.mfUOf(NgAg Ba`Q+>lr5UB5&گ9x:t{,ST>^z mE2G[l`Uwuxo/z{W)z@}gf`;rU{Z{|~ o\bbM1h73f-$tD3UAҩQ}[UX{:߼"ilrAhN%ʔN^C{E<"?ؕ5 ̓624v;CɬPwyhY~#f׿ ߍrO5 e?W̟@Tu8]iO2 Ɓn]n8MB<.N'tp+$>0B PĈ n;E1$mR/;Uvw,Kg*Xx!ÀLRT Y}Ǘd+S`b}IշVm;lB1IT/?9X]K#Pd8 /Dh˭Z)1U*;؛5G5CZY_.{SZs"?U⒧)U?3xb!KJ؜~ ddp5>k*./(^H>Gj Y:)kWn EmN%v`24S ?b Q檂&$ihn! 8Cahn! =@<|=o">ї1qI6s>Oc7(U+3B?./2*E WG~Pjo|0 Ph_ܠyO5V{ كy KZ/s~ASfNF1C# 9'lT':DM8fuŢSI_lkH#R*|Bc3c[NvP.&1m@4uB0,@83I S0v>#TRUiyti,O|TEnvNA P|aqx{963Oks c^HPJ YkHFbRuY;j4zޮڒproq S9#z:Z+Rx>/O*0P7;mBjoիh}o_6a+^?'^PU9e{$-ʦ?/f\BE)&b}lV /Sb:xD:(M*TTV>^$QJD1 wNwtwIߐ=+?†w|}ޤh\{GΏ5lf0;뺎fIF &ɪU Vu:?2 WPGժܙ/!y]sbSEb5g~/HJV ǁb6UގxrMn5j{QOM%sTܵ4+7Qyt#7)h:H=U4z\l\b0S$8 jfbج( Bo3x/=@A,TKăCMy@G:|\<޸F#`[uv$/-0tFL;4 Of2=W VluNPܓUg9ILq PM 5O*oY1M% E# O`0MDF=G،ܿE26](H8ִGHd&\ef|f țH0ؤս&Бҷj/ʲBS N1XҙZٖ>6[E "~VNn3S"Abe\aYbW#!d`{ xoRX 0dfo!5Nx `)yeaGy|7EOǛlW]dLn[-.sB&¼ w1lmd*YX8ȸDFLjc$vĢ-+8SjY%:s;}i d7 dFpa]ϳ?~',,5ä͜NUOƙ'|00dcQ00dch"R r6 ]|" uDDCt50gJ$(2r( ' N&"S<#Yz5.WϜ\ |Ж\ ӲՄ H|R*yW{މ==CCqd`,}=(mg$7'mJ0PN҃"džV nu:}O2ymQo(r3*a0^$H65 "3QkɟU`BB]ˀte/ ]KNy' }li>>ɧL#FYYU-U|xlSe#48Tőݵ_}V'ǭw&86&owױWMehBxs5t1b1EeFmP. ؝$m~+0 u(FNx=TTV)@ 0C8?ʻu.c317 [%z}jnWD ;aPdӁN6^\@˪[,*)ڪZ;˛aF_Vw  l)/n>-+n#JQo|&u8hf2G3ޕW6h^gm'i|J.1Զ%k`3]ΣJ2΂N9ۥQXtؗ2n/s -EAli{ZUb*..U*En֛:6Iv 2AJg:]X^Lj<(#* _37}nGdIgTV0`|)UMAGKb ޝm I(R`3rWh6 5j"Nu :3!8PvcS%eĽȁct *#Kp ď/P;H®8Vs6R{!W0"2${@xBHx+/_# +.~e/_+P/ |pL"Oz<Ȉ% ]X!  .:>-tkAFq_J@ܒ#u0kd֝ErC7QcJ⨏ufjVƌ( XSVl)3#r|u~eHDr ?4 "MUQpn`٬Uu?*`  ~dDx `yLk<lW\?b\IMI>ˆWY ¹QP0AD1( "woCo:{E VH <Ҭp) G  UE$ ̸) :FFݳ.f.lAP!*Uz%p5ǩZ|>3UC3!O0t`>d ߉~8PAS4P2a^a%+J$R 0x]x8gQQr{~žV S*JM>~J9._4J/APei`0(^&1$ RځRDeIY `9SlS/guGتsvAjZOx!@be>l QTjMWwn:- pPQY\bo@м)԰I`OD+z?W2R#T%p> BU]ݜO?ꄏNHީͫ%J!{L`p7|(DHpG\l)B0:U^Vgt95e~.DhyJ7K^ꯄQASש ;x%}T?GgDɟ$tEyZ`<w"aE#YEl ڂQO54Xv˹h) R ܛ`A$8#䋨xi/ C ^h.;^aZ%ƣkB]PTqVSD;TUG11p{[Q==h lTH;RSb_֘2%˲״tsQ ؼP r—@"9 J9JaYin *gGW YdTEKv頽oT[I~(ׇNUiQc doECn$R\yЦ(WFi|JGeZJ[,EXi x}Sr"YwWA };#m_[,v`wRx0q>QJFaJv׎Ap=(b)~WUeDJ?]/X0(V]|cJLRe9x?2!V|wbU?pS y1S͚;Z#>4|pc dK^1Qg )rBQ*,mSMfb\o:P@ČF"IpuώuON5aA BT΢$:I=$N8Z;ƣQ*I*zZ Pc9& c'Yn2<$ A QQf؅vAڭi_:!/AKCP/_vyVC&IxKJj6hʕ{.uoZՊsj˂?o߀&h+_AŦXHHnB]K^>D\'F7'8 .u`ӄ0U 2RCOyz4cba]v6"2΅CIa #- E~/.بKF_6"2./~^] <؅Ur.aL-Qw(HZU@˿<"(`<ʕP3x|HF^Cc0py!s\R9S恺%J?Ճ<BS@TgB\ݟh }V>D& p|&t{Tu4GؐƸ)A~ͥ) 'u̞߰J.dx/`Ҩ$Z  xrUJ'>[zؒR]/.kGeW<=zz.oli ,yWWy:G2oTKʒNjneoMGuX\?V J8 \$9rkj"Kh1a`Z;ـ]TUo[WxxC^W2Z;tjH|ohpf)ՅSf URGSCڪ3ڿj#+ianCB0i-LyZkuL#:DU/@3?Rmt(+7 mGmb ~<)/lUdB],(AQ_N)a!R 4v6M|2Xbf%RІáxPjz:%#_I{]Z0WG)E*T" #_#yu?}A5?N=p Dm-ֲM[ƍ㿮hAźAL=skkDԾ!s4KXkaL-u$ ~i*JM^~O')j-eۘBNV$QǪ2w<7! ;0G+9oN Q`_*9 ڿϦrx j dh?xKJ*]K}D/PUCw=* H.苓PߡJ\X%ci)P-]VegU{-/low5Zg~<%l>;sގ[a K#7J*ƒ0c.#GႱ׿%yd#5q"HȘGNԐT#, 0U$B54,Alؔ+GNMxQ-#Q BEp.NrN,JZ'#^D ց ^?@R6gGPDxęGLhBj1ӯѪ>GK$">j B- L$1DREI+l}h ᓣ)r}G_ٯnyGE0l-zpDt_~)u=:^]=$Ncu3ɴr!@#F@AC06rt:P5)l1UsxyR8֜3fV}Z MJ$`!K!`h4O}P9l;;߯=Ȧ=Ѧhթ;y/2NG P#E#^7X!,C^&l3VQ ɖ35[" yP|^M>q,}g`cl] P POݍJmԽ#[D^mb.&߷;R6Eq^I@fCnm&,1@S m,I.8?+gؕ_twLv=eƶX3~'E*^#!q/,W}{A K |p]QC,JW GQQfJjkjؿktmX},4%ѭحDn5q UJ/RwiѠW%u8@@Cm^ph?؝@.8mPDwS%ؠ Co]NF2)؉Z' Ơt3Hmigѻ?S:?@uX_oQFPc_/W\F4!@x0>gRn1͉ ԸK1ի 6) uvs 1'Nf5:#3yOeG\7p,IiBA?^KM0qM{LLHΔZ,c8\xgbn+uj,DU!sL>D<pxA?ς1ypC.ҥzP )t|͑$+˄~ҞnR] Z#Q51m*Y{C'DGF³2'.bnwZ IG2j/16[|~PƩ:#(S±7AMƖ^"mh >B< [p!*P${uOhh{S8K" #+ W;P tx\ <ߨh[ORg!=gL#OY(ZFãF')EC6ʢ׼rrYkubgƒR;S0{Duez=PgoB^pH-yjh&6avA!)€R F@5#6k6`>m_)0bL97[dXe';oGyx :'|}atm8İj.dzo*XC~N2N6b!jr͙Ύ Z:`2a'80ێT @ U6:cX_QzN8y1w{P =j%0 SK}ɞ``$NFGa/CL8EAE`YɺSRc%LPUHl=f76Bk{aP^?}OΣ!*I-L^B"4۴dTV129ꌼۚZbo[9Οh&aEJ'KhΈ;(p1aȨ.fh 8kD1x* #Na98Fxj~맰üYhYxcnD,BpHr5ݩ(]Dr 421tD!75=mGSKp ܚ~C<PF2I 4BOE6TU;XqVpv5f\Ĵ6RM@*п2q31#ޙ=6tTD3l>6EG)%~UC V ^:>NEٸ̖@>?V Xp"K*oZ6<*G\xdL?±j8dž?6ʑ2y,'FI]"?߈N2 q566x&5]*#àھU1q`G#ј.9["7˃@Ê#/-1=PmN8mJXG[WƼ^$,iȮ^\ uG`~vPRVݣjLfYHzaa9=!)=b8̄凄_5Bƪmbƭ:00dcR00dc#S 8l6Z/LVF 7<>{u̍7[W/ eBRuLfsWKlyKr_teNhji3~W#MUa .Y-cg>Ê 4J$6>F3,괡rU9[/S}B0%s{^#H~}aooF|/pwm65g @rFios8)/Q]߷Qh>_h}PR qNϤ^7Q]pVd#y/gd9'^5l".ogǀrOY/˞=B(kO8yM%6(KEUb ĉM̖6\߿./ PF"k# m6Avʵ@xOBIVQ6 Źtp{hnnڀMR%VE<%4w"Yc>ڝ ;-B} ANHGH\#6 /gڵL("E+-HN(>DBuj̷dAѲ8 -<;L? NVŇ~(ER{^с6`) xKukf0ڶbwiG,PsQr1$ .kN>fET_S7>qs3a0W*Mհ`~ Xr`wʕO~iLKV1I~ݝynj42MJ^GhIi@)s꼫uHCGD;3T wX>狕ގt:iUP|jZ*1=R/}J%?fT䥕JRQxeUR̄V_Q@,G(l=EA jT]6pHM*܀]~4IOx+: q1[*{.+^UbVꃸ,3;b j8L#G1g$g~0.E?d^]]O!Y[D<: >}H2@HDZn0V(0]Sgèe0QW,xu =,c0Emăcz'5 cieZpG֦Df'f.'e4x/Iđ/ ": gNO[.^aK5}0}y=2h1ߩPNP\~ބ9`&$*OTqo%.+TMSi"A}jTк_"OL`Xҫ֚~,=0 DdK>.-7o*?x;/vN2Qn_~(ggteydNt[Nv3 lj|- YuYՎl/QM'vywPbbn,6*m?$c͓$_v܄@Zif&{O7zTUG ﱟX.Xx쐥J(b6.; ɀ9+#DqG uyʼjYV:U( , )6|uаx1 AwB 3Dma/I^񕷒 DQ@S- 0GG@չU@R6\ıBTWMDKPv{ &7E`Q*e3#뿓"SRf`W|QIsUE ?2>;5\%}WVˢ>nJ&+*yDO ޼O'J/l^q hY0mJ留"h.-!UR|==?W5Gs]n|pcp z Dω#ÌIDwnLQ,[`" 6 Elnҫ]~ uM){]ΐˎ kOSg㖾^=cW寧@}WԂ@uM8-uh2u/`>C@B KjCoPՁ#\$`qGbj&JfP)я(*{K PxTTTD@U J(@ү 0N[y/7bY9+Qg<:bLYMá+G_7U>>>PW/ :T!xP:\**@Xjҫ@)({K5aᘹT)QPdfo/©yMzdv=n"F]OJ|wlUG۳iQýK=AGn2҄Hچ~HZ]A5o~NXk @R:=AQz2UPz܃sR Ǣ^>%HW^%x} Lq%82T*mUI\ת{`Ux0W=6.ğ (z:0h7U>fYǕa @$X:[͎LWin0'PCp(K"VU7/UxzA4pv#Arf`< lbpt%, xˠQ[!{ϗV+MWsޞSSFyI 0/LP$tࠕ+SZv{*PDU J V^{@Jā=OQZhC4&DSh'DR+OxdyDfVP+EԨ :"~ A/|TX;V?ʙTWm6`)OX\2PC#]<ye܃燪TP1=@ ]-- CȊ,yDPڕs\2e:^yH%{L@G2SamV{Q)zR2ٓVr4T KUW}B>#Z{zcvVhW2zxAI{Z;MJ߇&ur V@nko[wgB+R>lI࢛ؗKpx]6yp0?S's0jiAeF]t; P<#h'#eI MwE?@ 1cR%V Tbs@_J{KSY?=/#-."IN(yCBñrPЗo@vBGNDpH͌ø;4[W31syStw'fi[2:M}y?r3v0bgq93gSc:@F;+ .eN8B3epBhB!aHղ WWGT䳑f"6#Q#2?3{;ew˪w3R>F8[/Qp)IW ;eovb=u@K3`ĢJ(_%+P9U٭N0k"HCY"8 xwӶ8.dL O&.ELDbnt(\ƈCCWU{VP{o#om&Й,+@Z*8t")ZaAMqjŠCTd&ui5"ȥ9o@ͣL7Qpw~;M`xտ@Z00_AܙvpGN3i" ،^2vL9-C7S9 dO灗V ;ⶑ-W[dqbzZ1wIM2 S Gőp`T@dC F0Š>aЧKt}LGPáwz;9p6~&0sgbsZPya}ұex/,V ,=ڥ@2O·<:`yەԬ+UgCW[>_ynغ-tgcu/qX ,l_Dl$d  XJ>h}xN Wl q¦2>(c[hQ!CK1m7'8m(! CYnêet?s--?ɽ#C%&$ ̭>ʑ*RVڠc[%mg߫ꚀUV_YKbAB% =Z@QhD%YY"*fYt6nOz9iWOpqg\Yw݃=W皧zmEi?UylfZakD8wDE/8ƙ<hSt!J>^?|Ji)-&']^缣qY[O0lu)%.FWh0:F۞f4h᳒U$.[6Jh^TҶl-^6ܳ%x|~+#k[>y{:[ݺ8&oq8c-ދM/WV"uQ ӂ-M9 z-&_*ODfD>]S7jdڿɋDž˄PRPEDUYt]0iyY b\3* z\ L1PI/BmS[.dh`Hr""wWbփI GGFxL$eBH~U<;dBdttt7gVěwkrf%l&tD\d4ɠJcA0(+b ׊-Ca)hvP- 8MfM3j\̀ĬN3Z,I>0Y F^ܹζtg9"qשэl5(?L%iy1|l& XM>Vëen"â2XXb:M\1Ӎ['݇k D!߃,$@xJ(ҎʭT2_)X<#[]w~׾#{Z2t@ړIc@P/HchЀ.5X;ٖ--DMׇg"qV h,mOp8Rґf6N@V2ahz~0+uRüCCc|7K6f87nVRUR'uk.n7\|i\z]lA.zY[6(*H (3:4h' H^D2qq ts`Hx&dhoѻEmj'@m§ 1c bӡ1B [(F{yeY"U)Έu(ר4P Ɨ-=qk{HO:d]8o4MhyH[@]9*J_=v^\C L Ob$1q`RJ@N FfHbmZ,ڰb`d/642hB; x?`PJLޱs5zOm("ѐfa[ώy6APlc;۲Y!*pL~[khÁFeK 9CXNydVjXh4~S`9i&5a>00dcS00dcjT ɜPZ(n|(̦h9TNPQcg/e=tG\ ϤO9%N{eF[~Z%B@BQ<(=7dk اxm@kpϤϽW>:S M΢Jw@+mQl(ʀQ"j$5GQPҐ`9 ַ+~L.2^}3OVn3 io_Ka| xgJ*Q& J!8{uLeȵe q_Tެo ›B껪ԱSHCia ʯ;y0S;KU 6kz#(.l谺VaM+FF J#7:tdVfQM|M=.]PE%vEoJ @r fT>>Ӎ;, _@n`lўv@D`W0+Pwrvi8X K^%f3~:^VT< G]3 KJ9=`Dƪ34ȖFul*vQDK.Ҹ\2W\%!AGQcpm/rV(Kxx)ߗo;;ՊOl'U'- ]VCckD_p^<_%o!Z.ߌiF_qSJ'~?HeϐzxXBw@< o?!XwFՉ-T!.bp:]';]\_]Ȣjfjz}Mb~&ۚ'ig-ћWJTqqGwfI,FY\ dslM޶3A[x 40"p2tFjDbFr2`7]J3_j=,IHޗ&J^ Rݙ;FFW3:w6rb L` N!4cz8`0+Y2 Z Y_}ܴ*ՊV F`CV K(K~Ts# 4=Wr_l);eCâ)0*e'0x8)LU|.Z[Z-[x3jy3[noHK:dnX*L5L,YeTPU1PEjeN>4G+ٹ'6{0.'3?4M32V{^~CDOEbV{qAz\W|gM|>W X(gByK`)|y:UqODEM4ќnOO;V(0WG)Re6 @2Mȉ042D3aOrB0x]9`UsچB 5G0PI˔.~4T~Rd%f_(HإPV|(~=9@TZ92~" oų N}ַV\NUMCagUKz*1 5 ͩosS@~caZ~a^MܗnϢO΢(' edI0$h|W(I@ʄaB3h4DFs d+L\05{,,CTqB:(,j՚SyyyEgd@4D0& `=<ʣ]i'h|vmSe,30g DJeHhװRѥ< o :4 x*zZe窮wuf?iZ3ocaX՚B*[Gq+AZף v+eNn3([4Kz[ !t, =@D=n1F75LYxWԝ9O3]-:};ccjoyQ$z6CLn B'25̿F50_?%ȠYO2~ǿ~#wd%4 0 +T #Ae|>{ b.0/}v(lc'^٪WMD4E/TcA"!Gm `ЈUAsT˛֪J!V#)H5h}ɋUS> :_G~Q≕(TWUQneMn4h{~l*K|Oh_v$_u$ʩOaݘX|w*mP_-;׭Mg*At*ďۊ%^?!D4-*NH#! r\^m4zj~w[뼦c:Yt . vPD?dK(a|{z@®᯺;1UU~|+x3 j#g,^`Ө}2&7O"5. N0Rp Ι Ȝ&pߩ0N7G5 0P62? P4_[vc:6]UO(ܹ%֭e젢ꆩ~Y<ʞ|G-.( V sX,Hso‰T؏M\RHۯ@?b{GޝqG4Qinj\<#mE-\:&2'oxdLe"4 % Aln7k#E`Zeu_־%b7,= mQX &8 LTЍa-pR & =lcw0Sr` ض$țw;̄IY%e>4:GQ=7D|q 5@_ɌMKSmL]s'S}4ZjWXX3)c'H xg pw&hiqJn?41 NmH x]݊TأRjs@)rSC_{W* #w؄! zyT0Y=yR,%k)PĀ?*v +2#cG|T*/h`l_`}ȸ'jু"bE6]`1:vKEog P2PfVLw;Yx*z ̓+*̪;8r' oejʟ`a1?hz"7Ne"DMɛ Y#SYdEME}#dyS$#_?U'`0eY"m)0!M~TÇsb,%&lmT(%Uq;g)4#"ƹ])>\V#>hKV1GJUzFMUW⺦舐U)ۊ(-5ptQH9 3w63$/Fͭ&*0aQ! Uq#E\Kh 6|Kai0O׶~qΤ5xt" DzGOGRQ)lGw#Z,eBpLމ4{;Α73pƏC>.8 J#Q(-3qEZG3} "RYfuMsyHNC E8P m]K4Bl}oJuLjHe_UXb(2_ݨ w^rP0TPaq[e,oOQ}-xLn34SpأbG#R#)) G!t\*QcZGDV@}>'6p~ X˲̲I^QUI#;Wt 9sC{ ӧKBAJgo8+GGHPr/H淢:M060d^ԶVp9#B#p aHpcL HCP?4f$ #b(%]#xO{ y.ظ76#DCj~bn"%JmY_P0S:A  83T!9PNa]q%?QƋEH L1L$g1!ڼ?tp{T5_h,SNaAG 6\GƗ2: Ս7aZ q}vlU)^IM) I||C;FI!5j]n( a_T.3Ҍ)ӣΚVcU`k|x[6)=Rő3T71/ĂÓfӇ{T A(JsSğ?_ˊ(>0G nY)h]G(j H6Ɓ1+9uGe;YՆxr'>(\a'R%<$2DV|M:QmE.z6o] Rp>3 O@BީA> Z_1f쁖90D}xFN# / kӆFAà zf; hYl`qJ й_ֽd<#dXTt0ֲhR(Hd.6Tj5Z4fVL!>lv1s oY~r/׵̖/+mSng,?UJelx|g c92~D i300dcT00dc,U |ӕ:@caT79b;S;paQ6E#Sa "+|(ii/ d( ¤iXi:AX@m=?!cG 81<)Q1@3rk~ BLN曨T?:F8;DqcٻDq֥uǩxEL C'±Z;ng!(*Aψ;9Ie<+߂ӮX F^u8򏬶)iZd[Yy7?< aO}x(۬u;^f۪$/Q-<vg^??lP Yte~rU]UZ :3bYxȽWlB8|tl)26U\T^ !E6O3x=.k:5S O#j-T=gGӛEGpWA=LPv$c{v&~YSՎh8kIѠ0Ɨ")e6^P@ʙ?["]p,jB[l]K3yq[ix2֭:,?(NDͼAMO ۴S]J;M+heJ#([f OZxRxrj=LwsA=ΌIv/sAL)^<HUeҐ; YGC/J?OSIјS8PA\+P;RB` A8 cU@3޶1AScAG1%?Uw9I t\(S|=S9z:pX]6-HC.չ.+x>%*Yx0^]Y18Kl*Axs`S^@/>h#&]q` `eS&>-|EbJT<ި20rQl޿HN#h`o($JP0MT`Q&R E;:^:hQyTzۘ#sX3^Wh)hMXn*[lP(^JeO u\sz$(>D&($j-hN{yhZnX78¾^Jnr>ANEV@xhꚜG7r\SAdDs=>11.*gJֺ~s da`ZW`4^*8 6B V@[Km]lz57P0qX4֕ٹeWO/,m%WDh[N\ɌJYo(><^eЄ p JKf`qPnx|=C*HD % P8}.ʯR{8; 1i~B *iVbhocv ˾`Se9!WU燐_ꪛUS0iY?M^yu`02Wg_ `KY\N(#>NRφ_)%4=伊 /ͫ@*%UYZaHK*™EJe_%>QfP|vtb7` MoVuX-u` >*uG"+7d*%r6U65/݅O?C̳:xq+* x=~@:y'=`!DP[.aoN]T|-h Tƽ/4S^MOb19H$;@fK=T?WpGr) YESܣwJ'lĹƿ<\%|UxILg>T_ ?S[9]˕§La}S7%PHUѻN8rЦhyCvU VįU&$n(ZEG듆MAunzX{4J6DMC>lࢽ:MUJ]%?$ _);<)*_N<,mh!NiG)@8}$79 I7 cS[hmJ)Y %MOdw8px8jC6hGdƜ_|,d~Ky݅9P1,XWT/uBaT;Y~z]S;,gQWhrb^@;E@ƂoGIoqcuy>IöZ햮hGL|)sRhwb2EɏB ~OoO c~r~H_DRdx!@?#9voNqцS+ nOsNYyT.]2134h -}")=T |N'^' v@(ivwF!)Aiw"0"G.zgLVakRTs%+A~E)8SDo (HX1x0 *.@X0$OP*D3=CUK~)T</_ht{U- O(SҡB+'x6%EƵq4U1F5 nlW@\^ j +[6ʦ)?pZ߰%pF c٪H@$@?$PcKAOC~8)x00CH{0͵hFgxJq2y⛼%Zic6F`}X28mCCSFͣЂA!PQҝP! MrVXLst{LL_ d>QH_~qX??u@pVqQtk҈XBZ$$ֿʚҶۤ=?{g2e#GT%ߪqLʨlۉ!| |%ʕ! iK%Sw^Y)uIdCW%bʏQMkY A^B'A]{ N`<<SmS+fz ;\_9@Gߠƥ Kx>$|BĨE@ɳD NJB@Цos?͞lty8q.tQpR7/Ml ަ He˫VxH4{6#,l4jAD4ir CM0=%|^$hA E 6[4 n}=T:? 膀Pɇ/ϗU%,}0R]Շq~Do16: ䷈w0Y*ue0u9LF3iA.LdL!hPj]@C> bWՁI=gb٠_F :V }>[OPTxR\$|ׅ0u 9 \._aX|*ka|=}@|y|\[]VH)3}Yv.O `KlKMYVpv̩WzEPnK?WJ%Gl)GC{n ry]gKDk{ݫR5J<=.^Ww`(ϹYxSV}DuժRh_wPx({nȼ>TbSTn5÷+(]hoL\d3 L1zBViYo $E{飬ͻQzc ]pH/IV$D]^=?P%O kQWIfAQ(P̗Z@pĨ=Oq:^_nRU7 ,!Oi\GPݛGb4J>gVؐ)gŲcp@V:pWٲLZcӒsߥZIK_:_ʸ(eBnmxKWo8=P#2eReC{; ȹ!ec ~}E`0*D.Gl(;7e$zt+kR@Re(!*Xe`7P>M)?\z#8)dKaSFBg_KK!ܕJG{%c*!!Wn=MSM@^0*-VhU NƇ{ʼ*֏G$N5)}ӫ/WOс`DF7}@8TuP:]^Ƈ7u_OARWn}*|*tgdt K}|į8іm|l C(!b}w qtq| HЭVFꏯWdIqpIJhX@ۀR_Qe%N -D(P*|p6F#zs&VqxBU~yZuEU}jf#Hp}׈iH?Zje40G$@ vDAJ@jORJTwW [ 킄IP>Dd)v_l7?;D6>SREUx(ZC_<%xDFc ՁC{S?EEؾM7":|KTh渦ֱ$elwWp$̀=x._"DMiᛅBť$FTn d9h4255dyX:NPXzHf.DN]Hގ ih C S6fOUdu};" Y> h(2an:ޡC, 5CSp~pn0I B-2㚌{ gQE g)43Lt6f׀A\){LpN,0Z>XAa,(ݍ8 QSdhGGL#"P8(󠐲bPf + +L)T<:G5 o'_̍l"8B@EHڍ30|SA7B~n,3k eރ*u˒Jr韓-V\?d?-c#KhS>+NX"6 1>#nj$_̽. xU@:  EeB@J=U< O_j0x%p\^>}۰TdzlFb%l]h"@x6U~`Q*oY/*bU"79z|k)lh>h|%N!f^ +}t0B*l:>+< q#Ru5 )U /(ok*gO÷3jUT`<̱ܣ"#yTH.<U@ f$wlcFs\o+n!HmG9"_Ł4=Ԫ̄O3h`Z+aL(Sz3,cdguﰬsY_y}!B4B|cAѥ ܬG?Uw겪Mƕ!-#^KW[h/֮0Q EʘMHk#4?}Q-ָo AVYO@:?m[sZ28?`ٴjT-q5Dv "`|Z2GŪP_z̈\I^5=XzV!m괾4ȰeȤ6 *e"LaG~>N˭0a}=.+BoG#+kr͇B4FgG_k"SEVb);}yz?ata qA٠^ G`\+ރ4JC0 |Ga ѫkѫhZK4?ی`챫9Z,wQEc46x&2KO"RG9ghCgR C Fˋ#{碌f1`EE2>ZgU\' U4geCӴD "͌!m5w+<}\w#c\#.SygAET+Z`|z!UaP|'c EyղfʯW)zZ@~ \iMS&: 0rd#Rz "&A*5,Vg"xY(X? c8$^gQrh+ 5h1ߊiW`!zb=TͿEҵ!#*KH^< c ))UȺ_ѐv'‹[x]>ҝ#DJ`}M鳲nUּ|}Sn|0,77n4 G[GSV`xlhJw`(:hTZně ldyz+on4;ڇH~;~Q8Ǟr:::Č8M|m_JMZ+T ʄG"Wm˷ -iǂA#E~,5 zyhuE }r39ϐY"S|QF!k%Xh .>jpx6%KzlHK^^kͅ=9d䖄ڇʵTE .lrKp(G&E)7.bde^95!87 6,y""0i!#D܅/n JSMpbTK .)R9T0g삂%/*px߻q<#_)ݹƦm)^GtK3i쥜Au>u]ipk a7 am{@b'irrw00dcU00dchV U0u `"wm[יQAx 4`?R^G$&'sc0̙G9)+qVfU\U?)=o[n|yNuy:.sj+Oh)7 Otbaָ{)Lnpg+Q" u@EC :09y),KVQbh#lPd0:־ ߆"h0Co RHx] }|N X]'QO}lL U-'O_VQR۵;@moա!k᪍r;1sۇ?;M8VۍY~mqمa-g3٪O48[fQR,y`L;W"maBt/S@Cް{.2<7oPi6рO) c _zFذ! SQ&yx١G% kэA\"ϩpL# $x*%\S/E56;)}k*(k=bQ,0DJ@b'մ*\|6 Fi駄{kt;}!,Z'X*($4jücwŤ ،151 /QP% M*$2P%U*Z5,;VTW+1<ɦ@xSs꽿q/FH6\^%Q/;1X Z?gS^'ߣ13DH`1ЦJ!kW⚟YM:BmhD x1P..$ȌG_ͱPYbi1i1hl*(osCd5 5^" 1+~o,=X ޒ8j% t &n6 *;zxW[,:7%X D}?&sk)MڂDHCKomLS{h0||>QtK,eɜꚡD#TU\́._/Ksu,5 _-{ClyZt=Fxfg0Н)޸Gv'BrGhb|0pͤdJM,u#P|)Φ#8bȉΆB?щ ,mdu7e SoS:VS.(pbH}.W$yBUF6v~ljza.ػ x%::y]z%~OYaBGzuA̬꿗߫`#C_1U e0b㔼!f :vF2bh) \ İeAz:EuƪG1xP{GT{ZZIe‚Bm sIwHx)N?֨eFZ [ߍqCTCVEW@WJXSVl&DOdP;сpɛ{L{TMpI@m_P9ܚ] '0@~JҪ>P҆[?"& 'zhR(Tx\XyQ[m(۱[E#A<Ƅéu@#2-OoCx:, Ca( 7@Bow+i.goԲ8 XMT{FL!ֿ )S @@ %xJzծ9!Չz%O+]}%04\ox!(hC ~1-wt9P!Į)PQ(w@c%Ѭ%cR_z<.ap;eP^Z3$w3OS.|e]ə{?0! \ʂ+}SbasC..=um'kI.zns6'IxsWS? 沨~\C3 մ[I9PZtFڀKaX?//Cr _ӭ>51Ab,Ε4zL+Y90c!  %D3W[&j|;#+X;L3`/á[ 35zF xj?U@G#gEÐf+GB_05U"UW+LAwj^izkJ&?xʊȞ[rmh~w!%cz[MөlqTz/?m-9e'p!CPT< 9KpleSv Nb5wIž㊸Z' p0 |.FWK HJpDN.:ݕ 4 V bd)2/.6̍mB1 '? -=é88x8Nq*! ;"<8mFt-! QfVW\8`c(v6N-H"9 _&"`Z"g=L4=SХ`ճ*֪"AbvNhe#_..Z 04qp Dl|zIk Ԇtս"E'ј<(hUb:N#f"7?&*jZo6oXƴ O& I g<T &7%k ʢqY"H)_[^dp0`A"pjxN9o0IGf/p$wO`"dT/w{S?j}6!DH Ctq 3RK"h`~(,ceF@ϐPrl!@!(x00F(!$I6\ׇAGdU`yf2[q-F%إV#@|"'Oi* H=U*3V$Yh3I'@=X(U5^Q|۲7uV_*ni- NN鄥-AKQѐ(3B9LY:|HQ\VGʂ+T'՞?bX0 1⎏$3)]}?GI6蹳 x4-:y~*g.Wą 9Q-|A"oO0nONDޝ:)Gƥ1=x*ݭꕙR,SW >8UR{r֖qk_@ZK益 xw@#gpzZ'nnG Heډ/M(1;04JR@lk#1:!&uǤLD}Epͧ &GGGI!ttttqGɑӣ7ӥjR"6}-"oNdf'4Z,h ,Ax^V"6 6D O_\Bah!0:::8iY(9Kh00dcV00dc$W c$%M n[Ns (Ȯ( Q(eoFR^ỽzeJ~8A'ãXsmt2S T]S~Ē֛P^d1fhH>u=5^ l봞Nr %ī,C"L- ɄϹ Xhɂ-Dps% Q8;XrLl2 AR.Ah~ro8ixǠ`9=B4u:5nvt P },@ 7Q^}I ୒[h&  t"Pz7AH-<= _ypŒ+1x b;ΗgKɦJ="\\hs[&xb)y[d~O7\%HE9ӛ:h:NFSsXյ49U>`Q:;m־\Y ܫ)1{I[dC.2qwW9j٥0 wj4zH`ÑLK뜍YtxR&SgTsKN8)ٜUWQSba-^@⨡DT>TrkgGjQM[˜Gf+l~Dmd|^*C_/N"6SwG̉c -BKT Z_p 9pX |% _q\m0DrS\g!c<. @ 2 a7<;7T*fH!Hɭh>(Ž7XŌHbJ"@+WDMON y B;>#O=2TGWE[x3Le6}\?uLù^DNDܫK"۬] aU4 +~u-/e8 ǥݷ[gTƐ¹&@SHCyF47qUai4­Gcud ž^Bly~QKgu'Q%pM&1JYr(![O\<rHģ`.5XsA"tT 1[Mw&˿./lA{An6)m0 e tyie&>J^/t.ϰ tYNi#4#ـop.=2' zi0ZSl2W?!XHȳ}4 ԭ\S] inA2T+ UN:> AÁOեc[7uŸ$Þ!pzS1ACWb|ElkjYn5+\cta 7$1 Tpj{Ŏ k-EUJ g0~$ ATJ~.5Mg*OZh uYn2o" թm50 |$P0>aYlʵw,770O=uyG82#SҠkq' -tNP5ĖJF*A1ґB?&*0P %W{I:,&e(2T\M=p xzQp6#QjXmF!O ̀Y-DLImMPٖD@XDR)Zr %'UT)Hc1oܫ)ĀDJA{=<Ζ+9ŴNS{Z؍ 0WgxAT3/Jh*p!"X>iHџpQ)W93킟>3~Q|O`^js?zVQf< $5O*#7$VIA(o49}≪[e˟ N֧PhW WM|ˉwةw3Gb!o2T|P<תyL+zPϗ+W*2߳?+|uEc0 -I l|$"pV(jۏX-cITTPm'1TWnm_l#"3 y}+`2X-yH%5E5R32#4;UmR[(0Kݘ }^ЋΉf`AHL8=1p` lj}c. @xݍaF $;aT2 x0%CoAr4x:CTZ@~=V>H uW,H@d`Aڨ^ DDf" b`#bb!u<ʕF<1p3$T *%a y9KV^ 7 @P*+ʇz1 [v?V~*Wd܅F206R^~ v25Z|2[8PaQAG}_f)J|tG'}0p 9MbB0pQ:tP0AC8) p.x(iM- eX9Rw+j[JƵgNVs#X apSE-'d 7v7g cƃaVuAE9#0>>WnEcVu*`X+x*F0FӸF/Nv(Np9SB B3xh22ՠZ X%^R@/1{w=T#v@1YEO)()At $!cA. + @QUʕ)/I+NtRJh{u-ل4T]v) O KުyU"LF8SnqXjiE "Mp5?X2*DM]jD">7-FUC޴ԱdbT w!:#xD|nP2 Ayht1a=\8%.VQH,t#GIߏodZ> v~#/򳙎B4}S \y$E|W_VhUc<T~sh[.ᄃ5nFV_L]- Ap@%ĥ4}Yy{x &TfV3hHJZ08ʆ$ ͍^Oh&ML7qd*@l"{[Z[B:dN(G :4;৥͊2XſR{M9SZShwji3~N!M~vPmRVl_ɷCBt%W9ԚY*PʕJ@|h:. G&|$DxFyɋd;<ҳ*GUB}%7<,ᄄF*81 {P5Lt 7. p82#z{ʕ]}AQmE% "x#= LNoҲ)/)a9wS01B.՚[-+eiI4ț$y],UĺhʾɫnFGA!eDj7# _jI姜0IN0 o+4@"* CLXg4A{FcY茊9Uv~0<6#Kcf}zjzI0j;R ?6#r[Xm."Oig.f~wXNi#d↍RE>$Gypah Ɣj_ ƻ6%J: wԎITf`}S eeղv@kWr3ZmcUQ^QE@SR[GVYUhW"jB5 HK(,7$ʤ <42 aʕʥ/V*}{ݿNV"J CTe{%Q-]^S"XPTfgZ0oE9 x$q277Y5DDŃ`hӭ|8H/&3jQB1 `BQ-w V@7 bjztRYtp"GE2"TŃcH0 boYkE}l{'Dȋ;Լfa׊ha)hs9a .3lTH[d"8n<\:qωj4c TH0nnd+;IBy9"q܈ ,¡$p+eziU쿛3odj'ZLݷ}xw{20W;F Qp* gTŚdj?Um*ת &y?Gt{ard*Xͫ?4 ա~p{o&+V]~ˁax}@:>h%#﹠̏"oBysC%+(Cd#VȨ|%|Ї|!*J.EHJQ@ω$.S_ޟܿH@'ZcQ@cꦔԺ0 Wtu[bWpMAj9rC{W6ҀGzdC1ލt*#B7>1TjY"[fm[N=6V#^>ermEJc^ ĵ^0>V NvhB #`s"^>WߠxZ?ΧFdz *Xp;GCkM'7כDĿG“~P(0_A? MEt ZXD P,[HG‘lá@1b#ie? V  xP-&܊o @垌ۛd\Dp~iojL^l`*E\.xb߃]0ST}yeWh>\gj VM k\XJU)WfI#>hVˏ\!T)"my}R t|EU@e'ƴJ. X^,,Ӂyх_ƛ7UR]Vq_UqAwqDT4߳=пnѡ8d`!S ȒDMX&9CfC%- x~ KІceE瘜oTT3$m̞k /@UẘDT^1;-Yp UJ E \ޖ*Q$}yF\WVgQz^D@P!p ]axH!d8!r̾x2ETTN?U(,dj+v&P2mjJ93 nQ m :}tF3 4Ƌ4A}8RO7ٝ, ދӤJ8D# ckiLeH% @9Z`)f̥o'g[L}W#DSeyDf:Jj8xZ6 ߵFr"^KBe2!T U Ѧ[J{?=&ۄὙ.S?֨\$hZB'VQx>|KJ*7<0xy۠xu6:K;3ޠwիSQ۱a@۳sPAIRPDUvU2yLw ߃ ǚ} \ ֙-ABѐ{# >|tZ 7%|=%ibҶi8YƜ 䱞;{՟zxJ ψJ}"ƒ -!ܔv]Ʉzzpb/1AH9:lIԤ/.sm&i:M[, YX8;`n?%Bx "ڏ,Ld 5>?j "s_edqQPKcDb >f06 Pm ZO_xD:kN.\GAnclcYzP:<ob%OƯZ#3ڀ'QWB3ߜa ʿ>鰑s/>jՙaY#Z4tiO>t(`|H|\:lHx 8_7P`!Op2=@mn&9u2Q(ګykzz }V&f.Dn7=U1$*(D>X>,m3Kh2`_K7Xְ<a J-QrT |2T[a@ZmTp L,5ߦm9/`uzRz ɪDQ :Mz;ryRbmV?Q/ꅠ90Vɺz#D 掽 >>W2N'iUoh :=c}$!Q:^'V~3<9=,),` _+BQA _|dx] =mHpL4M0kgJ<| Z. ݙr߄@}DS&ߒo h c(nJp6$kumDңPX-V9 jqC+>ݘbN%?Ps9p(t>.tD[Jjf)A Waiz ~O`3=TI*,U(eq34/l_zӃ,]a*fK"MX]Z otGZcɽJ*}oxEh۽L+)-L&//jCHn)ecCh Rr#ȴ$V9؇" o e«dք2vpD->4 BҨWB\Y]@{w¦4jڇ;$ lP6{Ly@t[@eU:HڿU3oҾrN0HzݩV=}|a_|^&n1SBX ݬۜAB!QVk"p>aSЗ 1rSCaU:#RU Hx ҒC /D8`D\#RѯFHoΌ9h WsM,TnֲVZ$/+$\H4ah8AbA1Zfw 36 A'K8;5ZAkc_k-pˏӶ@`7oe[9ftm0ţ+]ҪmF`OdRUo*# |][K DTiTݖF3fExI:L yCb )QY G]+GŅ ž?Q V ,; rNեl%D::Dž"H;< %JةOnԗ/R*X2GlD8:ѪM|%BV>ۍiub_: ,꯵pzIEK UI4"BXZSǾ"u? a|hagƁW٥H9ab"0:3f(j2" nl"'ք_8yNk`Y0"PNQG3QH R1"LUR6J^]@Ϩԣ&6(<~ "a~Դ|@wxE;*sN;BJtJVm Uǁ&g[o(LՒG{.I2CXl Mb'~=3V?:h4PfkB7&> 1˼X OFa̵: ն~Xy|F~ 3:/* jfMJ1|,XDN E׳f6a Eۦ6#1vޢ ae%줯.wP.b@ ]oa2cAn*ļc$qB}WU(`K.B]ONƭvTClH<= z uT{m:6&ZJ[+`C RS㙭l]CN|iEK(a-`tX[Ԗ v EIM%AgN,=w^0d_&d>O O-'.D*!*WHNC~ u鵽m{Vj˄*A/.ȋ[W %$0l"yDS>"xZ~TX΅4o®܌>wI*3H F f,Rh,(RB@5Y=މͦar\W W<2#|- 5/D~\P[Hl)3`W#RKU+jmԦsqF>h5@#<OǞKF=TzΦ1E*Izlu[uP;OnXR'rw7'܍e%U΂Nz?mUEU#$5.T@%:4'+ =W亣 e d/>"7Lӑ@IɇFeG+yJ q0p0<(F{"M=OiizƌYG\,KHʭ 6:J:t~_(&B1st? D3dIWduT6@eL~(ZDkO(y=Q:T^Zn"։'l Tw[³Xt&Gk Biɲ'i}QnFxe@%$T:bٽ'tEV7Z6a)GTrd~dׄށy@X)ԻIx}U'ŊEzb|U'u9CMK jeN eꄅjG/Ә#U#]aJx͋eSQ"yUBώ@YSv* @Rc!sfLNk\FkU,iϩVT_: q j.-Z4Lhj (h(``1(e֊ `1Y+0k8&:ϡr4掺5bǰDgE@<^#;tEnlhbYўc: U8#]JDoFTo+ˇꁸ^l]Utf`v׋gsOzxYʮSlbf(~/jtF xw-߱:v*0߱TG _dj#ƭQjȵ'Ny(FH-T~QvK+,_\\ǧMe*Wt  4z@UB.GParpVZ򴊷1!w1рV2V:{JJk8f7 E@_/.10w< /KЭ2qdQ>c|ӑOs2 ƨOi AzHBltɑK# n/XjVra!k֗(%ޒaJ7-Ovp7WwN>WUC@T[==S2,+:r7< `d\^ ?z}VZ;%n[nrtYoȦ3*WDf~BµCö6_:nQtD 2ϻ t4v !d3E#Le&aAIJQgcQGӇ@G0:hRa 9M|h?MD}v (y 4b?F%y@}_l @xOwB[9KIgwnV<*2}\G}nНPN_zȅTxd㖵>%,n2¶Ppȃ%kyAG*L2U1fx%2R6^_i&{بK)op\=Ow*M2TQ}:t6:^ӧӧӦӦ=:cjKSzpH,j:R:&EijuVFjtV04m)\ԥ)KB!l;JѠ>8IZH.0n| ?ư=:)K!XRH.Wطg%Ah-EgO)kDzEϝQ!So:@G/]:hf+#6#BUƎ ,zܔFF`n26= v/M<$4B!x}|Dx%) ^5вvtc߈Ƕ!QUJw #@6 <=JLD!Rǂ[޴6A31 0V^(>H/:@2{ X·'aIhx_'wׇBXR>\T6*7 S(/N?P s }K$ڋ)E%W#F~/VUWTC~S ]uVǶxQxKqpW$ & X 7, [@ XS7TX\ U67.@>i<62nSP`$V0'^F4fT )bV4wAx$E#u ]l%vsV"tPS+j Ă۷Du f]},)XVRNEAd.(I K,^;̕{B/8{:Kpsҡ<KWG[H|yv!x #ʥ z*R6$)a>gZpbv~͠90b+{fg7Z<5T0:KRރh  Vݘ2|ʔXbcNJ(1)־4ug^.pFL8?t%7(2|O`:%ty>#oѪ%G|)Q,!)NuD**/J <꯫x7ExIUIRGVxR*<`b*%CRmV_&O*10 fg? eꇾa H?moT0@lH{A/jx%|_ |U*X"+W{,op(w  lRDt|>a00Qf{ۋ^=dρߗ/f(H@>x¤gF>˕fjR`AWkRPkx][oml2# e+ 4(,,Bu^X 7Z s-&[_ʭߗy7(0wƫ_ DPآ*RAѾlzlTjYU*xDV 3_3SM_KwA ?L :\}B䕵bA|f$"^!Nt*rF? Zիg]PӔ凕_YrB5O؋Qz x\]o:E?> 4˳)?}AJePv?G0j7N(TxQt)5Qcg0MaGk47pXg:1B60RZ?Q@C!20Qj1jP_+x}}ʦh .WTOo!#lKHbazo1E{*GRSyCTp WV=k< rBZB74 zmO8GKIݶ=6vIn@Ș@mgA K%r:i]dS &xtWƦA"$t+`WꨧUWE$V~>3 1"H#\=U,kA kw5oMR) {yT+SGK}V!N_e,f}W ]z"Li@> u@v~X^o4DijcGU؈8GP;{,NCYΛC Cf§F) DybA * bsɂ'{&l[5jX_o A#Q6@`1k-r er3ylM&Qu< `R6 0RRD+i:`HX fgBx;ag'%0!h q)0:SDT)Uug `Tz((8pȈ ²`(z ߴASL?{-V}eU` z 緋a)CiPBK~?z;s*)X)/QN+/(MwU:TΝ `RF /z AT\mas*A'jђ6#XX)D]CU0x_`0!ԡpQwJmjy֣Ļ*#dҍ4`Pw߃A.We?rZ qjI:p W|B ,W}RS}Vѐ ; Auj,D<*R_q͏i|N k j]Pv&JȂf4J#S1*2\=) I B\w p\OĀ /hf%*?xyp)*}pVL0Nj~joB[k;#Տ&o?/GL =U*Uz;%M͙(]:$CrPVqg' BH8zMҪ 1i6:A5 |IT>Z^q0t`锐sjoN5MGoJ" =tF%htST-_"\Bxv}->43A{C!r._"Uו[6)Gq-5R:䪢TEJKmo<*~^=W{-PbǓH쨺۪<<bMDcz2M8ǙMVXdjaA~FpP|grmWMf 4 m{8ZAT| "sޣ1p^>_V%ZUQ }υL5le:/P C0pf<)b]cI}o|>/RGe\>W 2xF (z:QWAzbP*r#rF2 %Bx҅j5AX;#;J~G*jO :dpub?RS;Ru@*fOZ2'`!UR[J m?I*8^S &+7DAZd~$ıkf#TևRO 5)U^%@xhy:m8|^]g4ޟgԪcR.S Or}Db0zw߲\.z4aQT(ΦSORJV.dVWѝ43uq%G ~j[Ѡ1B%SP0anWTL4]0_y@mJ7k`g^ `YtSBY]W50Ĵ2{P@# !I9U_ו"=ZɻGXP5@_~:2P1Z[[GSyO݊(+j DS C{#Ȱz#^&-`<,?FT@t_L;T[>$ J*{c:R$A(|x>˿uKS:(zD%oK>yqRɵEVPĿx\^ {̫oԾx! z*UoO:8%xSQ*8?6f r%"_u큫SJġ(Ĺ<$rJV_S:>GxdBG  ~x_Y5pv$~ bX߁);~p $)_BZp'~(W˔ UpH4 .ugT]f]`G"BPKׂ# h`$T 莍) ^^D`q0dd>Ҍ\ yD:C!+ pp <`  Fmm%G^T}-FxZsV&t:vھ nBc% 0}vP* Ү`6I0DiKD'GQ욧5''\h4$,J Tj9Op) EA6`l :ZDF]#x|'sxE={un4J'рOV騼gP޾"wSA0ͧ. 6lFtksDRqD?Ϊ&pG*8\C^e_& )$Q~R∺EZ>iMprEpaym/O0oQY<46d Ax~JϹ,(ҷr)bo~.*jګ` W<| ͭӠpy4o'cw!#p"#?"c$qČ'xG8Kp!c~%U`*<6U<ҁTk 1$HDF V>+#N g˕eP֫i5Wn4~e(ʴ#nTڲ廒Yv]~nK6xkc\;/U纯KV K=ڛ^?KꁛU+Ux1(*=/ޞ]>?TJA?@X #S?r~9ةO._fϳ>!x՝\(lJx+8l-%R. ^nhwS'Lv] ZwZ1!cw2KzσiY)8~faz/HεQPR(DNrb+gD6|BZmQqp^~GUnf+xxx`J0! ~ 2@P t͉Np0![+/!7yXYlUB3"Y3V=TU~ X@< bPA/J.QuX5̆ o;|-ʻu tkxHqr:l.PfbQ$egѺEA-ꇾH0~Ęk\B";wֱk"3D\L?v;W.R1T6I/@]ndPX UbD%R`?)Wkf?z'p|k0.0jۤ 0^޸Cfm7FAf'{cOi@;#Js;$V?&~2*sa!hB34o @z N4wq gh#UW$jv߻s#kwzzp45&t4Co'jB?DU{~؝NŘPuң JLB{ƵV`)G@!*h}Xd6)=,xC>0VNFYoơip`Å Rf`#WaS`$xoe. T^=Un}JzF~UJU/a@`>V]W /0m}G틓3 br|ewQmVłA2VutpIEe*rk: Ƴ/QK;iC*`$w0T%*t\mkйwvəӊ4f +MQDStty'@3)KM5bOڿH"W68XĒ=EbZGK> P `r1r!AVPL|Ca#qИP{t%GN"=;UoұK0DURK(|25g1J|ϩٖ&lJ _*S}QqOeE[Yڐj)e: pwʉ\U3T 1_mu$ρ;nqV?oجv''/#&[%|Q)lpvVqؘC0`sjА P 8P3GD8e)p|.wb㪞Cՠ.t`+ c2uY>`2Ya`eoY 3:ގqW~J%`}i@ PbfTij-ުY7?v|PdOJ*-f)OGFQJRE3|,h_[|#UWqP au]gom,;DV*̷+_J-yoˮZK1>&zQ+QDe`kԮF@=R;F56h00Xi8JiO4ݎ쥆OڲjDA0 MS"o_6#I'Qx~uzFWZJF/V{!GTb@;{Ev5G'/MQa8lG)ow"HbE",CHZ,]T}v y'b@PJEͭࣥ@~8 KQՅP|%*߃VU0@hNmeT2pcwh Ο80xDohjdaVO >'d>Vfr& kY[Ԑ}oRg${5=,4yۋ*lǖŹam "AP4KIvK09A HbHi0P{I! p'n$w/,T'Me*b&eh.&l5WJDƵ^$.m]EEUy Q@#~r)I/zeLC2IQT*f7#ڦpXˬRǞTxD^H_U&_ܣ1Nh/:,hR|G#yQ70'U<#[,}vjxe'K{@jG00dcY00dc%Z /?OǟBN81 [Yoj`pԪJ϶ 1O;FcS  7.uMzj^ ;.}R 7"lG{z|G#|%0}1өxH{9?[[D/oi#ϫo2&5Ϻ>mx7=fR54ρl@Ĩh0A§࿀W]X /ߠ< ?J%X ,R(FT>0Wx#0an`0y<[m%&qm\GV jHY_j$qyzL (&4(H[Ꝙ>ώx`П{}lZGtǢM>8e@)&9CZסhKC*SeR'V Q@7JpdNDM뀜#j V.Os$- OZtL1X5c- C?`ttM򅧎$0EGN{D3ϗvcFlX3Vpa8 QʯJgBb#2%SUK?ST%zEej(T}@K:QZ3*k(+ꩱ|T%ɏ_Kp)W:# _*R?VT\~=AD?NX1@j`; )$WoDq+Y{wS}(Gt_npX>y5%pȋ՟T5"eeQ龛zi IWlЂ?LV$,B(߼lxV=!a#*K^KLL~(!AAHtP . . lJ^\ d|bDBwI Dг+_# > 1 KtP`*$n_ @MQt˄_7U^u@05>V?=vzρy(wqLΉ^xSıoBU߁+P^U^9*ЄyX< Ҭ=ߋe} U}WZl)^GcyWa95@8(@]0^u~#r `%+.bkP`|{|#5jZW;=jPf(z^% "`Dtrcg1 GAQ- DŽem妡8N6#rJ>݆G(.*WWBӫGi0{TaW |c} msPb¦dV&4l8JAF=ݕB"  ˛w^8(".\ +Pc=o/Vة ϗfn0CFJ<؉Uc|qЧWY6<,NtUMk3t {忕6v de3*Q6^ UureT?ɭ$y*aD LsVHV96JOe~?Rcnb>Y.ܵddFF"%$tAkzXS$g:3[r,7S /{Tz#EE, L(ʤh 8C_T|_~C)n0*/r_^^s"W7^<)pLXKJjH*P$"քB }*!^%lM0Q׶R UUP{Y? bV9B$AN1@-B,4[< ^$@{ x@D]g iiwS t @|h'N:T]<cϪ [<ޮOQh(f?.KJZ1lIѨS]&l#O8մd˶~KwğKnuAr^lP\|%z(D&{G]kT! *aH.0EeH,3)EPvυ?:>` EqO%6Րf [=8\B ;QSz):?F2LڎVnAwyb5r6Heы83 )I0~ߞLaDV_TQB;X_ٰ(̭90W(Wg9eZ2!MsK9 k6tTOUU 5qƇ_ Dt=:0GIJ—XmG9S*T:ք~Y0.j_𺏽QUQ5I=g 61&:hi2OYI낑5_6qzTP]ZGH,e5S"OC!/#,d-oZ`PnOӽ' cYzv=f{kp 0aj qO xt\%_*x ,H{/5<8xUė5J#cFw^J`՚ )*179R MybL qm̫1:f}.ԶwBZz.HNٍlkgrlF4 ;,J3Dt(bĠx/@8"00d"Z0,ŠvGb@ ̪U5Vڋ溾wvU M75!j԰Yތz j%{`9bUW$[E.Ue_أmO˕~PdI~SUERy瓶pE@XbvڕE.N; Y:i1hFBl GI%[B(2}N:p(ĺ`p-:RQWh0ΟTvTUXL%*T`p!%[ȪIa|zw6K[JőP("_eU19ͯ<׸G?}NHߘ?=R|FPAݼ}€$)= *D`&Y4羯ʔώQ)'٠y^F.2S>+2 {z;Mbӥ'+_ uLQu']Sj#yﵮByO* A0 { /(bnu^N"L*82LrFtGD>ה)옕^ERB UKK<UJIU~9\`e+iBPWd&mv%$F@vRVH.Uw)US{5#XZr~ `_ ^ G ƈxh1H*B;@܀Dl_.,T> FOECT]KW"IjEo/ jyB}*V^9V=gԏaoUWjûH'yjĊ>sX"UF\ġOS"'yveu]~[ʘ۠MF@)sinXȍaY`Sh"^> _%:ŷLšH^#WV$0+T %X7đ+wK깗> R"tUmjEV8nH=0wLd  P 2%lwlRc)Sh6VʎW#UV>QiRmY/cgפ'_9،g x-7RȨ.otfNtE4ܟُ[Fb0(Frlf[N#;/}.U|KyV*o +U~P?T%CT%}hݾ*/IW~C ߶ P-`be6D'kkg'AK-tkjڵP *>G-y+GʤTZP(2 y>E߼e\*.:؋b&T\=tD pb;\\VjFɔgDBQ| QW=qB(#c:0}xTnUPEꄀPa=ɀR*O'uW?_U`z7U՗ߊq64hh'1aBG\h TcJ`jj:F±P1gaaHk` =y/U*BA3>PGZ΅_Ӱh;pSJE~6AGVE~PU4# fzDG]4lJB؆- C\l@r1\B5B5GTq)b6]aJ?ir(沢tz䩼'1DM7 2!܉]x y_x;P?e^pS;K+HToWͳ>WjTϼml_P Q=H0 ~ثtV.//..>#;9hjPWaɸecA)H %~<k*]'&/xK5+Ba pM_h, F`{e4ozH0_a͠2<%h3 f%ڪ^;TJ{Eئ07Us* jA.ֵ5xHo-s8^4\>/(y=r :PЂT2\-׼JД7CWߣ.k8!'/[J*SLzdF:SC,IHO8)yUAD$sIe.fPRhntDjµeWU[l>?R]0T=Wd|?.T(8DfSO~:2.hDŽp!/BOՈpVHjQz튱?DSkEqJrGlfArre>ZbfiKMjH>?QҪU\ЊܫOJǣwѮA"AHdݤZo̘6 GGEt({m'$z-G(t^AŬn3ɈnP`t-{ʻD6ft"ic$TYa`.KiJtiK牞~S77ӑPK:J/JK`"B2GțRrIp=9ϗ>ڙ+lҦBX$Huaxg\>W ( ¸VB Khv{GJղ OFψ [>O甩c~ad/dO>~ZB3w~N4^dI&ovFL"7Ҧʏ-h~2{(*NK:6jrOx!*?V%vW3LX?Pz'h1 aƮ@  $xIV % `>%PQՀ%I)w?I?Vӣ+|3H=^;/#'Th>l+!FHb:.`@Rza].rٳᄒJhh<ڇ @[>j[{*KlY}րqxΧ L_VTqRjXG> /U12qV7:b*.K]mdCAil }@lU% `}zDa_K)M6H/+%&p47.t %3_0~4 7WdrP`EK]g)dVRqr>^{@35}6%jM[{Hx$8|%Ioo.v* UO>zOʤ?ϰ^rL5 > `+91nAѴH9=rlԁk"j2vH3K, 9`1wB_ՠU% R>PR?ԧ" K$Ix}%S JtFKHUIΩs2¹e~N~sʿ};.&o,5-B~vczbsP c Jц ( Elb9Fa>8<\x 43a>'Eq~<Չ İa Em燐3o V_1,*Qz'UPb&cg kOH1{{u aL  %33R75 [f#Ph}# xZE9YqR@OQAEjx! #Rtv9o4 (@ _e!*)O [ԫc Q*à(0JlV<(^ŰȳdL _h,J DD}n/r 3YU#{N?w_6;[sؽn9MoT]rci5>/X3ZьbE N1MhOYSWxP{HNZ/JN^=Z[W_}ffk<t+@4H#"fmMԄNl{eF VK 5SI ܖ9=[@۶$۾c^:0Zl_`*FGr4 U&pQ Mpm'"]jj؞}S֭zoQR0|4~\wPdj(ٮ\00dcZ00dc'[ G}p4H5?/)P+gX / 3tޓ0uSq"k^XUfr\E%mIfn̍,Ȼw*!T*DzoH8P/fg#4)΅0^C(eC XOpR|^|^ZDu^t5}:Ղ!wB]KB ˄^W*_}Xᘃy­4~qMz;]̀,)98KT|%z lB t2M"Vu.|IX0 w-ddjM *KޯlA/3lAN ?P}_j`>gv{ci4؂3n>#zenpPf"94n7nox4Za(t:@/fA4A( YB##j! w@xg0@Z%0e)4# CH!uc ,VMS\KrPW@R d□p0)6;tyK}$6#PGyȗ[׺T2nV\qveW b[әnX:yhz\|P<ϚO>Y΃ko(d A !o( oƠٶT#pf<Տg+OaOQ"BGGLVS0(@7 5.%azV_ %D  UDIjIXpnQ ѐ?PnPP> ɀ\+DRj _E`wbP 1@>C$R/e_MVծ }ZlRYl*b%CZ<â68F81E}P@ƃvPQPCeBBF3T)_to ix-/BpBSQxx5x?@bBj(WUST]nzUavtG.I?áOx!%V/(J-ǃ^3J~LC\OXv]^֨^Eðx=@M] K7P`*|F%brB1 `LHyLT_2x"꾩Vf%2dUҠg¸P6Έ৪ҬɅ^/geA⸫4薫{`JQS~Ǫm~ [,j|bm`TnOY6DlI2~P8D9ټx=/Pηwc^嶨T%^n4LUQC aȢ$Nʇ@Ў-M-kd!Q egN}ZVw;J?X - CP7C#!-HY^7_iʩ|WȆ0XJ[c)h{UskkmNYL?UAqUAO},;K&9v5P ƞd & %MPLا'pboWFP҃aMj$< `W0|>t mdF>UGyzޚ. pWCJ}q3GNINq dSP)QGr/*{ hJs ~2*IOZS2?!%LvuD#^_d[V05P25*f @|x .dtwN;3E/XDDu8Yj4~ՂK] y~>UR((N|X_7GS̪bUC @;@~xh]*/eU}^êG|߸)T^^y}|sso0{CW뚥2uׅ0}3_:Aj˔jAqa>Vbu^PUn;™fsDޯoi B/Wb`á+gH;X<ƴf#W,)h:px &lb6؎^|ԉfv|k.k xA 6GBSW0O5~ǚ]CUʲJ$@Ge nbД)^<^T{/;LE*J =*bRSpjD-X˔B,Rw{'6'kK^*>E$V>//bjT*Xt@ QnoG{wFV2t=+0%9g#1ƄHݰh~thPh {I™sO6ZJ& 7 '!0ԲTPYOnO PV)ir G@44~ i cR6x 4 mL}I~>Ҵx僞7t"Xi[RKYe7o{܀:MU340 򄣜$TxUk/ۙ u8baU +?`=Q|9[rr,$3^5(H,y-g0nE4E*4 X0V_=Tj( +/1SamR1<9P lևIʨxFfahؘ ;PC悠*6܈uӄo%a)7`gOd0:{WIu4iX\=.{g.410?T @r/wMm5Q1(0Vܵ˜+#a z`2 H _JQ!J| # `:S£,N#keuqs”F)hUѸjA= aȳꢥ`lSHR^ϗxoU ylReyZֽ #( E\(zVO+ߕ|x^*YG\E}_V>Q"Ж1KX#)Bz oK V V}(.2,UU@~*]GLTNz#w程> ^!DvF8W| ZT|ʛʤ jMcjBScS ~oR@E@͌6U%ջ/ey*PZ/T0vX0V;U]O dmCkVVX|ȑKcWS'V* T}2#v zh`sUrFĎ.>*,aòNP2b`u[P*eV2?hK꺟v4aZJ)wzz1OAF# < ?fQ y%'+M ƎbjC>9'b}xP&S][8'1X1^ɭmIa4sbJ[ Pa Kj%jdWvYgcdP[ڬJWdU(2?UgKnPUI'o|hhJJYqp3T ZD~ _5LU51Z6?7ᦗ%AN%2Pt -UlkOsͬSRUyR*aU=Db|t0 j4:p,'W9@ھVG:°P5 AH _ďET 4kiK =Ud|(21!`$*%FՄ+˕(/0z՞j' AbӟP0] `w(˩V :3`B2wVe9Z c}Ti_,}bN-0&s/ BJg|z{2HҿH۾)$HaZe/I=.Bꗠ( ܽJi9q[( 8Mx|D]o1TLq!8h)v1$@'ĿUE.X{TGb(K.>x0~$F*E%)O0fDJN:^~.L:%b>aD?H2ށ1#`S:@DpUUqjq`RJ <o7 :W-˿мOٸ!xͥ w _} 1MH(ME[ ${|KWn|$PlUZGP @ZaXMUbI"a|#$z|r+V@2('dwM'yXMM QLR7FTLeaJj1>T_0/ p)O O3E6n*TЎT; I:$]ںc@.MRLU5ׄHby?h(Q}樋w߿wFu;UK˕^{[ 2MF)M٭/XEs&f:J#ۋ {ˆLI6(|V% ̾Ďtu~7w^/<9}צa(PfKWh&?XdyUw G0`GsQg0L[p>#C6dkq$ Kƛr:Ȝ+f#5>;6$;=|)hS!zP/$rJ~1fG_P֊S"'u)L:wH盳h=r/^v (|P pbAïh)ڐm ա'|x%j[82ݞiO;A BS*<4 bh{+Jll+A xyOURk0;R j:oI\](. 4L5b'W5-Xajva"? fpg `kT*8CUQḤAMH;)ry1_(7=JQ9U-b*@:s_~OJ=/%T~$)lJf~uZRE#a~)x`{cꇳUϪ/Uϗ+Z4s B@8%{D_yWCQ ѻ/+UU,mKm?~٠)EߥR`*ĥ aliЦ 9\T'ڊ֔u3uw-uհ$_&r[Zl׼]VH085/((p{{?1;2H"(!3LH26GT;t|%@~hpdT6NfGE(Qh!7TQdUc2"h$Mtttz:=dRJyȘ j:H!73eG6L=ئKc#:U[˙`w BZ&SlYQ"USfҮOo1t%⿗yBw[K`*V&HeUW#`W=ҦYWEt;>Q\D$ tJ?.:ԸHR?.T*<5 ~gYD1 F$ak`X ٭8NTnV ?ZK.1A*BZE/lu]J$;!wI$J8 @1l"Sih|Xh`̱rS6cL +|?RFrkƴQV=cm)iEp!ZU ˘1 +X‘S{kba"G xh= W>#1GUX @\ HҷmVd?T@Bt'D"(Pjgw8轸B1NL|L5e0WPhR|>?Tbag`pN]熾߭[ĀEl` {YY-: o2Yc^#'9ZF֍1ȩU¡N%CA<Ұ-2Udvѭcr˥Я~F|_-n4À[ &r eG$y75rN6#<3:Km̓SyvP zeBۈ8r-Ҵ&i,!1r'̜;rHR*޽[v"H1xT_-TA^ k<]emEܑ\aЋݑ#'VsSJ6i:解7<Ќ@8|4!Ŀ0w<=uTo /%ɬ0r#WpY&[A8x`z=QX%)çTg2z=NlpG.[^1\Zx0(tyBD'6N[ [S5hN b> 2|cH@~9 "E%ȯTJ`Uo@0 R LRURA#) x| 5ydg;t 1tttRrƹt8ȒTŒ|`BbE&ݧы~ R,"EEj`~Uj"̋9q+ Ct6e( L5&x$Pte8H &`ƨr(tJ#'\}K8F]"y3JRQșP,hhJb`4b녕SJW_ {d ^[Q4xIAȚ=0^L ]1h=Re\ `Ţhh6u00dc[00dc=#\/SA !*ZmA! HR`%AP~<zaǧu .YW;z_J7o>r:ɫM7@$^q(gpb<6*z}m<} 4ÑΟh àNgQÀ!VR IHd&MP5 Ĭ0H=ڶc -Ÿ!޸L}|}m'<>0G }0x %O 2Ƽ &u4eU ".p*[ {uZgk6}cN<≓.jͭRbNoUqpQ iRoX;*tr.;nEQ@j"Ko,+K':nQY> "['ʙL(egT#|v!2 zkgܚ' 5~Q'MM(j⇏UProN uB_lvZ& }^w+,0_"<>=L=?[,} BRڨ[d6v6^ZxU p mG.V`b7X؟ #;.z; 1T|fl Ƚ=4zEo:@ 逪b'V !<>ũԥ@2E{d!6+|9a@c~96XR7V|D֖a&XR3-.59Ү(?+ޠBذ+z$>,dZ8 I1T\:)N/N2:2flnV6=<``RFQ}OrZ̃@Um|:}!W[gEpb `ܽBm$.^oV` gpgE\ -JUq-&EQ+eN ŚC^;Dn \66 [,Ym}bG&4~GJ8XTq oL~$A:1D|f%k%xk(xXx[zGal$' j `=p{I<"3qcZRߔQIF#V V#\(1U'˒t(XWyb,%@xC%z_{#t6&lI1oPggf1)=1Q=w/"W) S0W%[Z7`0).L%+7<8tDgaOќ/ ;>sјU_U l\VTt#b E*؀*0d=U'3Ug%G5{W̛Y΢68s{>_B+GC{6O-?/bXO w|^w3(S*Q;G@xߪ ij;SQsRc2?%{YxA&Whu[3;۝bj'A_ʢl-9Տ>Fy83@O~^A}79!DKDޏA Q5U@ (Uh{AB:oVL0ɸ5,@Jx083 WǛ |[⏤<7дs8mkcpzI'WG-~s ӆ&EsKrXUJw0~؟bԆ+:E> 8Wnh)T~Vde>?@ E Wuh ՚$R)Yz*x xe޳WY9w;7^"9{qr\H] z,P0ļmTJWMQMW.l[`0ʰ+-WC-Jtt(Z 3. j/CntiX'6]bdL%3m^+~.4i_Fx6bAx9{fMJ7mE\STrI 3YngX`6bPJ !'=ľU&kG˜v#+Uv׻ yz5G2p @ !xX!^T\nJJ / <P߅ީ l)HGesBhL( dwEǑz}bg[/^·c \1- [ HW/Jf?;-ֲ#D5*.VSŀy.j"aAW9x#Re[e(Fb6G2wkE,3'Bi00૒iPE`P#FmI--oYc}e`^O(ytdޤBi~FIcF+m_⋌mEqTE){yBPTuOA N7cF桏O;:2p30uco 0&׿RоjezfR(KBQ|Yϧ`E"AZ-*{DONpH.35b1&dmx#S8Vj1UIx5%*^<+\gOb1@ =u_l fաu_bM|?N g(=d}N 7оQ彶oe),ûƦ\Q`ɰ ]V_Ֆ͒ &MRX}PaeH~kS ^6dw`5?4 ±mHto?3b,iZksقru5M<{goooTY ؕlkLl>!XtT\^hG|Hc>ؕV*B0D7C|淨A?}V(QwQ=U|]?TOcMX T! sp ߗX*VOt2llr*Tv^Uw,z0uU)Wsb%:`{3d&9FdKO.SM 6WS jH.?xix !4!*bAxK,-Zhzk1' C#sV^6{4ڄ)O+Ir"r3I;/Gܞlt G_Bll>O~kd]M`uFkO?%`%V?z0(Sk;hLSUђ}IeKoF\%*mٻQ 2ڝ"z |IJ*yDPy~f"-<q8F%,=OjCz6m<[g3yИz &݉+0X+'#{ )Hi=_ICEJm`F>(^JPRhfDY9ݞ)=QM:ޮ m;8֚OV "r_Hro'[o v2̙l\`5"Ap+ѠB%!6q(P%'3iG^MO{rsxEQ瞍rL"DAD)) XxHT3'D"(Mӣdi$oGuB2CP8L2%AIbat^B}1" ch1CNV!   C'd zZd b'<  ,<"6Hyt'ChDozQ`fEJu fE/Hdp *J R< BIE`x7#O-Mv?C؝Mf+ϥUfDx' NU) 0^`k@d*@g#lX4]a30U Z 9q\sQ&ܚ¼k {gyp?K*Ψbic@p5!qpʕWYzjK^>.6%dJEQ )zX{gy^WF^s5O|-oڨK+H2O;ep:(,S)=_mW'~9JS/|7 P-c~m(W~< tTk -?uG'loĠ\aRJ7@7&|{=sL%kZBͬ[iI Evo"ұHNNipEmq_)v菬w=<|a}[_WP;-FqtwDyd4/%+T`?qsEwTƣ&%G3,%hie2#T՚u^3$8m yCdRYj>*LpJ҃(@}XĨzF@ r_X)7͢vq#: b\pyص wlm_<6Fv'A[gc)th)miid '++T@j~/f2pzi,Օj%Q{Eiď;>TSzsj?؅FԵfN[:|/ p5<.AF/pzl8Cѱ]è5ga> ZT.R 0 ;,_Ƕ Ui;l@::Rڈldhj~✶S羣OooHTuQ-XKK75*VI2W-grf[{.T^\\\n*gnP1 :*ՀNaB_mi@+`1gڟx yTC8bP(oG#` @+='f;ΘˈYF xDThBߟ0 (wm,,hE2?j~(WmW=wv[#I$r/NNPƅ 7~2VX3~FL6,He,ʻL<^fqj2JB>?;͢xGUD=zR%uM\gqyO^{џ֨<DͲL~' dAnF@KD c)P&@S)S4 a*MFo,*,:|: 㿭a%.'Hv)j̜mgjkktNVD,'G1$ZM57ɫ:enD J'U*y ~_W`27l)>=MZ 32F.G2q:3fߠ8u8|Ώ/.W*:2u|B= ,HK $j D*ʕGU+5 sĿx @`ɠ`0H_C5-oc߼ bxa\(^ lgf"7pckbZK.O~Tjf7uJ!'"RRxQ#r!^ (='N7RVy B8>BReGyoTc3͛AZ 8eV&4nz4S "I~Jcn%fƛXAh%J)_*KkCVH!GtRWL?y.x&$86)GPAP|BG}}D %#-(1AN5# ]+ķbf{g슪߶(Ah:O_;`]GmGS?'xT%]o*Dgˈz '840aoՠ\w7/+}('] vAվmi&0܍*b>4%bX$ӥ68oX4N :(_T $:0628ׅrZX ˨|):\ ~ejĪ`w^QڼQʖ62#t_IZ=QBE/]V_ܓ4#>jl&>Vc$[E͙cRjvuJd7:\- 0ZRȋ׍sh,2U4T/ugG,-6&f'+ıBQF7?dڏρ8;Įy-&6T~YD+njDyZ8|p)0 O00dc\00dcb] Ʉ[<"oGGaZK {!̡pPOdc!'LJ^z X](|yb) *Jq>*^D(K/T{[a +WCRWV m])gd*bǣw9b?4):Tm}N3RX0WoYP 8Cـ Cnhl rgj|>)k?L# X` hB6T 2x?g8Qg0tR K@:pGbXTؚ:BD'k0w}wBȟ`a)|{>|ka(K+.~!MMM{bXJD{crY`K$vl({%& m6@ܽH6}(|^>>ST`o|P4_{5G; %cZދ=b`J.HţՔd)A +U ^-FEo^C]#ZJɢe<*V dk38 tB@e?t>$ْieȣkX .q5%-XSRCv$2u_/.eDe ʋU^J xKoT_$U}d(j n%A/iP&c3W?w8-@†F>+AH^`oz<oYdn}OnpRĵe*1d$د3F5lda)`ЩgN@cIT$*jIT`6J읊qpڅx c j< |BB'qBVxt Ӓ>tKVP(2c+:BMD~$@BT.Pywm3/hp˹_E+P%X|~(UU%c!A>T A'9?/W<>ޞ]lԇ~I~*R_,MZYքGxSL9+%t%r:$+j)/aK.[nd&Pbp, `X0$۪@}.V{R@C(1)Qr~{ʕ +k~ǩ@,c6~ 0C P0BPa+IO^\R|t z#jĊUe/T=M79<(OLXhu_JXۍfͬsJga[k< ght >?ppL1BX?Ը~RUV:vIoaJ}|!V$Ŀ⮏KdP\?uei?@xPQu?-2,pS %`$`BP%ES<J|_+e̜EeߩީT Cެ~Ŝ_@UZ<}e)J{&KSQ$Gf )}+8n, 5FhVB]i+7Upt:hj#~cy?Dc鿫5 GyԘBf}Nʕޠƽ|:"RkU;Xj%< y}`<* 91Sx-dc CM@jeCyL򁠈9RkF5 fFkG -^5P\ɽQ҆ď( 恏zj5UWWXUP)S﯃2ӁMzɌz{^sok\eD}V n3"| Jg%v[RNY0{0dh7KM߹JE1Ш)JVyz|^?M;4z+Do}UiuEթ_" %1B0SPUp~ ?i0P0Ah3[UwGkTČ`ɺ1$JH>[Zo xvbfuZ}E7b]:J3_%Ye"f0|R?SA5㦧GW;< >@ed8D%T٨ }B*rۙ' rmi~C<1ػ Q8Zudm7`1,lUQ4XKT޷gMUQl.]blHSU=N*LW.W$Za} .#/?,PxאA'(8Tr.ZPq.vL6tjqlɜ<56# + ?p * ă~(lPTedc Ŧ~ <haB9(Y$L4}tT@k|F_[5_/@uҫ=&*ԫ`Æ|7zIHk:)'P 5F`ITgLJUf#`H.&N;aqEstrcG|OH#Q[F\yq8j{ cSy?w"V>2 %c[9dLg@Ɯdz?@`7>]> GоJĵRfj(ȩ:\%U_3Xcbg}n@mE?F%V2nTVU])Oa+D vzo="%\O, Nba|%ظJ)BD@TՏCF(H<bTCh\#M4'lqrO+PVv<"tmh,4 BUs߾~ogHe!hSo"/4-P2~-:!!| $U`ĠB0%>Kwi:f)#& d0_yeͣMMJǔ|cMyyn(e^T:3'tQQ!b~h%J|wAM#EA\h  j8,|`cki88 cA ^T%2gu4 ʟ=UXZz0|`zjqC%K+!7<э#\d_! F|U nOe/>;ܒmήpu0 |{G-˿)ퟛeT&mz0?B m0tZppu*"k + e0鲌.ƫxIa d`5T yS@ GM|[r@,A q@v*u% 6]bIH8(Ɨp*_і9mdz9hz* doļ$ƣUoSpٮF *=~$F,0m-j0a<1٨hUpq;T{E3ZRƙ7mp>>T3["F!,N,e*pT%AAF:XFAQA ,zCpbm:j,) ԙ```3A` uI>Rc`JuSnҽuŲJ2ȗPASr i8 ^ԺLLYl!_!c0c@:t)0z16iϘ% iaOVheO IHXH&I'OӘ:|2á ZԴ&L@:$h']?lWO(Bk(CH}ݖxu1HD&dL B!T$$ 00dc]00dchUSH9Uɽñh aylG?Mn3%kik n% ہ9-8u~,q,lPف4)x@;c`]O8|Fn4 N ^Ƌg\|J>Ԡ^b"ÂbΫɆC06XL{ΚCtYљx$3i}R,Sc9dr'lCX|+FW,b|ٶ7v:j%aЧ&ґtYW7TU^P`74 "3å^ߗK`Tq `sWqYYe_ȧ[`_TvBDc%a+/lG B;| #t*i 86fD\>B@tJ.ٹ8u+}^7@VEdaPRJ[ _{eW ~BAS vxd|___Qf\^Ͱn+/ 6ǬSZj>TP œbЋ;/RyB!#ZhQ8V#8 & ']G-R8+hy 9w˭}TU5N֎kdjGT\W]QAJ4=smNZ"+JIÖ80 |E./9p.d"P?HVⴠ{G.ua!~'N*`)PeF2]/'di cW;ryEʇ٣C?SInL@)*[/h)mO9OgY(/qfF$﫴EI&Nr|ƿHx~0ʽUe+x|utoX )R@yR+5L/z 4"bUj>Ȯρ@h'RY!q}mF/ 1jlKk>x.ob4q3zwh0ų7} , -P#)[_Tn{<].F:)쪪"\ }D[d `%g h{{WF.LqJQÆ'[afbaL+Uˤ)Iyx*t<]!,Qg>kC2;)({SM_*6s.C`_WfUĢ7Ҟv]ڸϪ?f lz z\(WNmgj$zu][PB:W- -,Z<$jP gOeqaa֪hB.VlHIiJÐRAew;nw f.j Epx^_1xh dR`ve^X( @wY T_Fjp|QSj-ފ1>{! X!Fޗ@ -9ao%BW_TEZ=^Kw$2Mh`˶':ɴ''`Ưp3%Q Fab7K[LM"VY`[QDnv zh\$zgzAm1IP ~1T>/QڪXG}wbr9(87.dJ,, hXeڜL^G-N&;NSq2 byA̟c[Lf񧶙H낙Dhf[+"]1SƣR3IֶG8FI$*.Mw eM͟Լ"53h:)njOM[{z8fU ݍkq_(WQkkW[fY~sVe"4 ::'8fm,QxɬS@a>D!w5!G@U k TD~Gr +W`dlE.@dEty I_\]2dC7g GX݇_}Z+V@Ϫ_Y٠ȭP'*W>q!b`R }dku:LL֚`n)C9-IccSMSxܭ+D3pʶ((W3Pu"#Xϸe:!)`0LR%9&l1b?YH> ڦWZ\K g})HTVYKUgmat}w4n;"޴" އRCPdg0{T&8 %75%nm`2_oID*v\*eQEXJ*\3v)N?}R_\f)2y_-!OXcq)u'\JK@6 ,Af1/WWxE<zO2$ >Q(HK.W{V6_]Ύǐ{q'X\ӳtPtk)#6xW4R~J7s)j@ j n%B`0Sih/Z^$YVRS$yX?dn7E#18tp蓺[g.\3NJ﹮KFLJ.;d+'<1~Sjا=DLIs3Rig?geH? Ve0yͿ)x T`e0mh!~3ir))0+ȎUQTj~P2 ;/..ѭoSqa{J)ϩiPO[L"@<FgT|"OOI̙x~g% 0/i3diA/<sؼ56#ާ-ad-i788Xg~5"щV"Q[354#)G F +2yqPiZ2 Dp +QD-JY |=>t8~6:~|h  tHZz8oa; j'I[hI@ķKT0pB>N06+";~>el(Wy{d'o'V_U!ߠhJEe W LWz}q-};i#T9K[i$xLX2ue΋{}ޜﵝ\ ˽" )`UK,B>敁*T}Fh]=/8,KԺ)îqy==>}u9LG4Y:A''g݀@78*LhymϾz|Unr[L9aM6n5d;tC\6ՃI9CKUʸyXQXW}7k/79ַ5gY_%d1rjO83 St,7Ez<P%UTx_bBʵ䯹dHDr6Z#V0WfK+_Yvdb%Ӱ.q=7fZe2;c*D IIH4ӭɞO4L < 7GT!7gF旑-FD p kZgZ[s^iU"{: `X'H. OҎa)~1qmmT;cl:šG"Pylhvsy Mx_篛8{69V1K0 sRY +a-3pE#Ng>dk1K'~x/uc:msi&t'ȏ!4DURձ?uBdM~yLl.U$uo9*ޕx=JӽdSu\1Ed)h@$Pz_MB`2efQҭWſ % GSDpl?]lOO j[U75ZygJ.*d_BA:ȭ0/:)f0-^' C As ZB }X ,$V)wHǓ~|˩z>e1e>!bWOTu NNrcG8% ՉbP?V<./P }ڦtSNۜչ(Kq*T^ǿQP{ڢۀ؜ .bt?,Q|{{>TʯMU {JY&IՑP{ x1TI:)eE~ ˕߇-l͕:-P4+.Z3>!l+1/ǵ%@|5 .t)Wl 2bC゚?[ȼ'ưS&,t_iIGS?\mL)U*U/BC,JV>eCArQ¦;,M;V#'4}}Az?W"x:oEtIƂ.Zy,n!L!]R=#O* q;j%&Ƅz~NygWlW}G8=:ؖ$&ǢC?Jcj-ctYJ*yq' [škβZ;g*g3 Nks4B+Bh1&3m8X\0P ʫov Z= ehR*5]OևRzS'' ζf;O{ 5{mٷ_v^KV %ڑ6P1d~ N"~? tVQQE8h%# a-?lIQîۛ#bVP:)'[UzY,N?9'w̟,*4:*v)_+w"p{:[ܵ8ms"f[εTHFpͥ G,JVSzНӢ0K`2{Rz#]?_D*"5>ڲ җVQ8HѨN8F KA3#= Pr!WJ{U6/^8fʕUcLUϖ%!8#7Q}ŀ 6Ճ&W.vڜ$4&%S7YsvS6mQgEMb@6 04 Ӹ#U.xك\R\^+TaK.NS_!r W"m"U|?50!aeu_]L`.O!,TXX}e T܆F\<Ph CQR#X^);"P0~~=^=@꩖ʼ>Lk{_jkFWGLxj^7?)嬰" ();Pp)d ~3ܔNͥT/}ﯭ_(D~cDѻĹGKŎg83 }SM3$w+U-kwvmYDVs"Ɯ 73|l @d>׾"?'{Ø5Vmְx!FrIUzujɄS0vB%zn Nrx9b|76 gT &2i;KÃC+d^6 a\(F0AMx6(b% l%S>DK@~!#,0'VeT/N1K/DPTV -9=y#,|Vdvt_&X]"v+ћB( DLqJUWA.w y]8;XI\nr: G 1AR_{}IOʐAjp|HҮ*lMRA?'!WUѓn;̔vDZU,'j^F}$ņ_|)*.JV5ZaMQ9hK$=UzpF65@#Z jT!1.ktq6̚:(PZL()ZfZ/T}Gf|&ȡ%+^Q0 px^|uQ#dYhSTR*Sjz(c^зxEpѭJ1^ yFa-_+ aS;Mp4R$xRGwDvMj3pz}T"p)9!-SHqI82a`x) 5#OCc'JҊX tP0<&- ĮX̅gZ辪N|,X`¢g+!pF*6J#)D ~ XG#B` t!Ai?ݧ2!.-@4%6c090$.oU;{`3`=WRmT3T(Vڎ|x[ @A ;].(ly7w:5ېeO% ;,*t?[`D!k0v{ƚ/I@΍R|Z2Yy0KK+ /J1 qD\,y`*:`1r -  b#msIRE>Dģlam-Cr^S5GCPB[!ؖE~%eqpopѱK`]dWK$3{˝)ptZ4jFdNT+yh΀١-+ L+0u qKA0h0 ~Nii\Zl02?,ي*rE"oe=LU9T}?}2*e=/N)V螖AhIZÜM412daJRufMk hfQrJ8Y-8n#QPΞlC'6p;led>5pT-fl"4m4 }y @]9=A%'u)&c#a較' &QP}%N#fȏ0QKUES33L3i82Xc$~`FerCƔ^ GLi ?@n) T-IqR brj%oE0C-'aPB&Dxj;.]Hkf200dcP00dc2+Q m玥F{PSK~/!+9N6v*ԄcN˗ b aadْYj#j%_2/]~}̤} DpRLt)zD΁c)L L|)޲)dgx|f6%sǦx3pbXws !W8aٗ!(R|av:txS茶\dQ>ʩ/wA`rurXҪF8SiGH 1vm!':'u:bŦZWoZ B٣Jl*6ʥGc~^ʙ!Ǫ7K}Wp4td7Ax *BW%ǖmJy8pHl2ÉÔ~:[v5߯0  R! _pKtxm2$_3и|\\gMMb0!E)[=K%_۪Ղ0اA"MZ ,?|y_v"+b7Ղ\+8}Jfy_G܃nK@>$J[>L+x8D0WO+w΀R!@P*Ɋ?X~ɛ=;'pϴ ˻A V 1V`}m8gP2O!L'>AEU>RYp"$x0jăio,p4<Ӧ[XR8Ssm |Kz]QV\1-Jz9EIgAMG5\4!bV(hEzm%*r҃U{>K͎V?:R6 BeۼOyy\QiO`EJ_8)E(p2WJODfaSPZ|#\.mБ8%P~%07_+圊1/<Cv X_ xHf%%[X:e*awEbX7@_Y5z' >%P27[ڌ\RG0:1 ;D/DY6@'4#K:V]/R?@D!MxՔSl#I!PzO*"KL~&fZebӎ4'8i>U*,yO F^+LWhK*$1 &MhX|wo"MӬ !Qډ- L3xEqvy8Q\^TQz7xs%aؤن8%$4s㵶- g)p<{wytnJL{j#%lIg+EۂѹXX8`>yg縄zJ༟$f4tכHЏ7ʳ\RT-b%;Pe}ޭFelIJv@1Z$ x0ei?Mo̸(ΰ,TT@Lpې ?}4fKe>mOFٍM!cx>WFiB8-?I)ǭg Z\.*.GU_6^9,Z ?T%Zn >ӟ/+WAT]pJV%Oکb Kz/$Uq\^]GW&xtUv'΀joM|H.0@)`^2&/>C{֡޶ދtU<)PRh*GCUpz^;%Ze[AK~ -yPbx``)*h!^sM`zpVU]])*e_Fg ž<(aNτKUeč:^N ςxZ7d~S# /?ʥ |>zϑ+VߪJ8H.[ PtIma~uW=)tQmÿ0k:xO O*xOnla@l4x)GyPZ9ȔZ(rWazN)WY(/DKhShGzRBPUlmoU lӒGJF $h\2 {bsWpFry\2jR>ۅ>ꇚ g Zr4EF2qҁ9M(w?YLH$) tE`ʾ$*J&K/W5 NJbWw6 z#}j:܍;$~ `T]gBXjJ? RJ$)JAnl@rԱQ0UϻHs /peUgmK1U\V]iPhwF؜@!{|V pkSĉ Lܒ[J P+|tT]ux8 &RU5{ H q3W/*5^I64#h?K=0h@G*!G尳Y_nǚwhYZ,Nyz5SBh#57 t R^I m2 aLH~Vh , t#@y1a} |2 bwV *9\k6 EN⨣\>_3^|2T<- W4# zP@r7X>qo< UZmHe|_n2 }ꆙ qWl5 >{`Xh:<>4g4{"+)FJd(R>GE_n'k94VÁgĨ_OÓ N+1?99a :n'$@ JV:*/"jǃŹj޷tmB_Ġ,nr?*cڸ4)`#J,KAtW@WȰiDFKIJE\?T$W^s6y<%߷ZcL<;dyP^I;J#y!'8 V ߕƄ0̲%ZVѿj&zI5D1<# xV(lOʕP /YݥpDPSk b@1@ꄏ]f76*AqUY6Ej2WXE &gUߥڴ|PH\&B|@e!8llGl|zVZ)e 񗧤lITxn+)`)U~WTW.áM>",a4::!ŒUr~Q E1 ɢ3 )'瓑h @2X<+޲ h8ю&oY)I-)hz7>4pMH޷µ 4 ܉^6.&*UY/OW鰨&V*0yM^k #i+i 4{g[>o˔*R}ԀAyuy@&n*lGOAU/vP3ISoW W@ҍ1uSf6%\|Tj%Cp P jg}yR=(:bx)c=Ģ⬷AUZA.j ?hq1ֺkHzrc-QdžyM7ܣSu7)hА\t_O&B0"DXnPЦZQ<2KF% cLvs[u'*QxX4Θj؜kf)o# v'q5X9{تD',t\>*=u<@%8!+P=/NoF(Ůp7V1X4EU{+\aWkk h!ˇXr3'jk )UYuOL;pl˅#3?L?ԃ;qϠΑry]F%:pH`K;8TO06  aD$U@%$K"_ J4w7GUyY|{S !"O@[U%2}&4YEdkb-TUO|Kێz{Hyz y}AJ=țӐpD>RlP1Y0GpR]W*eiSA0sa@!ʁh lQ]|^mW+=v1\s)#4JAT۾cQID/O3C^hvUKEQ'*RX"L .I}I5rD"a=aF xB0? 1p|/w4& eQRf4\} շ b5"0fvԎ|~(g G{& g;[~@:BچzEpQD\.I$gj0p @)fц4|"1x Bb{ Ճl./.hzWYx>PTkzXU%i[ђځdm wJ\ S忹+6wJMpLr>,PV*Kzр?HAh }??,zI/g:ݵ oDzEN}RULKx҂9R^jHLUxKK*xFT$,cYvdd^E"Q#W@$GYGs5<BȯQ*T/#SV,lq>-C HP,o[Ћ }zECp6ӚGZAPv۬)NrVI-ZȀrEֶu4: N-%($!lՙNZDz#-PT5,3s*جbAnHٍ֧rf$+~ҫfO_=l=DYt^ˣ@+g2ٱ#_*rQE4{~%cUAP-[7Ao%/Q}te`; .1cza89 sF@\:h'ɀCt*!e1F(#Q"Esv㩙l٭Aռ:Mq: լ@Tբ` Wˉ(D cJ*X?N<Cֆrh0bE)n4oֆњATpȊ'P6=me6P#.6D",D#Yf$DKm1|jURDŽFZ0W CE6Vw JcG ,P燪./Lte@YT#'P @UNrNUIv&ErlgbŅߌѩ?z _ fKQ[yҬ/w,76~WJW“hO,֮I-[u*{ p |.h*g.Z&6i31ppn:R_ej2BJa3U ıy_ժ w``T񕕂 a0K~j%ą@e鸯A/W?*U..xXxAHI ^X\3%VP?"ւO24BP79CC@hxwC`%4tpLg"AaG =.ցdtΈ9M@Mҏj#"P10`(gr dbԶ3?"ygYQ[@j*/b!?k_͎o3hQ 7ȢoӞ]Zc\6"K(|/BOGGJS ْXׯ+Sr}E|S(0Jg^˖cZ;?'(ZL=IF8 mbwuֳJCu|uR)-c#8at.O0`֤ RFֶ qPǫͬD{2 \ f^~p@XF uھ dc"8ė[: <"rЀ좆,4>0乃nԩ35dFoO~;o5.y7'xN3rePlwArخ.s.]mUgԗ>tNjnwnFsuMG "gueUڕu<R?H N0"MOt_ヱDUx'6|>3C30<oiӃYs?~_Q*:>svzJ@H)8&m2'Ê&vUPX H )ti^;%+g &͉`ZoQN8NPQHnvytZO6&4.i-QA.HMHlmWDo/BsZoM`Ţ0TuDeNʨud"~Pggn͚K]S."`3~x(w?j,p0%cDV{Y~w~_>ꕂUQGػ)"d:HZ-bPN`Mܔ=gFN4JFۍȊ>SԙqiSG(MgSE 00dcQ00dc/&R ՗M8G  =FBcq((L |)^V#}~`_  }3jD}ٌz&ƔUQ:zenhD:w^ּ>31yӧ%z u,SZtՃ'pS0ʬ)s\% NEq_+\ xU@u]1hFSϣSt}TDqqG)zj,Q0S޵%!'1ytxČW\1rbji7a5ʦ^g@gh 5a :a>mh'2|AȜK X ROI*Iz_U >hq><Ôp!6"ѡ5p#2Zp(8l$EלDݺ$ \Ԭi/@74%IR3< =z4*N#^ Qq[·-ӋPR35΍kצ pCaɅp ̺ 0 >6w3޻~ ˜aI|"<õ )v'4 _笢p<1n5'nDV:-=k &͚<~% P?\LR:| pcAyЄh}bcL6-sJfmTDtHgS|x)ZvM2wIF 9R42-x5qm,J@i0 a+y()<`!{&Lz$^9Hءl,G H{8Olu d$C{ݿ7B9g(Hl)p$=4ʌqNwFǬ/yM@LV(St3X*Q8{iN4s&N$'$ N`|)Dw{䃠)^ 8UDIwi @Uh)?βX1Jo%}(-utζn_ jYU%?`Fr7ֈBȤ/t/ d;#!̮8m٫^UVg "qhSR_c67їNj_?TAuq8ZC$/}\o]OWU| ?T_@7'|]x(@1,U뚩PPUOn\OatE|y@w3Kxyer zSyωe#r|Q9nDJ)1xMpX;Xr~ožC F~vz'\_!^MK?R 8<%`[ E Xkn |(HtYsSxfkQ{,+z;wBT 8߫ IB"š1 Jwޭ~1ܙ@"{P-j-8iǀ9+Dar¡%Twz@̀ci1Coggp PbpBa[s[싉!zˍ^+orڏ?*I{FYq qIWɪquKoW8qs˜Xv㗹fN}|O"YIdY2:nFi _0cĿMDF+-+y:Z3]4v wGҥ>3 |߬X$-||sKlN;MbgC)0(?4p;JU,B|o䣝1L繑Lr.thPa-=pm4'ߴjF:4 J؆7? -J:xAH𔑄./Iu=/`vB tvUVǖ+oBШ)kbPxʁU@-'E?aQtw-No taN`)z ?>%nf'5QJ /7˵܂0tFkgqSqUWMވ]#*Aj8)tx p$tI~~uߠťsϠ(5OVUm}B(l(xu5ŵ*.:RDdyc~cBB5?1nj恚 _l+ԩε58*"͔ތBAQhnUttC"8ߙ:P-1ߪJ.wmUU=#@R{KwIfSѮRM:֪ +фsm[0l(#QURڞ04Ue)=$ x~/j=RS%E# }KYS+> `UۻY+/_Wwr2_%iwB_~qFL9UgIFRկD~W[wI0 vSP# t(3@K곋+>,8 @6KeAU1Kž jHTEiZ7w}Zj V8tY0n2{?% /xJ.ԼЇ!"B4(Dlb"r$hC@p dakU}dQ LԩWVg/^rDRޮ 9,JV(4h9G'SN o `G>$|z%@e0K(U}WI˄!Pxt?WV\hwD/|`U^S~o^s=s8 4Sɯ03i-=8E<ܵ?ʐ<222T0j5l ,0FGwγ ?8#^U?߇P kf@oFtU jӤO57614~Ԏ(q_1ѳ 13 7 FN < !M2l}-T{@ FA }@.jH&htu9{/O1<X(|TOyTa*OH(}O7a< `.T A_mR`C<Bz"لugKO?%IY'*BE`#|tjoK2jY"!Lοqtg2Z4lRMƩ8,!aV2N8R6K#X|&8jatN?"俏C?;ro2/ !w†ri8g0)z ?u^)a f G8/<9{̈-iV'yDBhRf]@*Iθš < Tasj@;p?$?x"^7)3fNO0Y}}y+>5P5%:#UCQ^WBI捩N=fd`#q~ô ЅJtB3lAG`j5./u8 3jQH3Pwvz ˯ joWdrR>e悙sgrTi?Ec[Us_{z:LQ T=ܒiR?MmkUl)a0L:=/*U~q{QIL?x%4.m"锎7m jCZMx, {BY4a%v++U+.\YOaHaS tGF  ;fa*p VGǂHe pB}2>X!}S2bPò ! :Z[dt++(jtUD| ϗ^?J^ăZ:# |I0F \-Qc Uˋ Q|x|/T3+hSF=w:*0i*0 2r=ۂEx㒫d:#B{~~ \g p놋*9 3_i*퀢d෩!Cdk >b꧓l>#Z_ndaWZ}C(E{~TX!:g~OAe~BkTfn7:J~ڧo=R{yDqBښb"VMSU=ݣO=ZM~keQZm]!X쳥i}"৫y@إ^T8TGTޭq>2s;o9(S  qRgʿ?p2Qt_?ށ]M;T(/lX//__:19[:q5^O*zV[JU-WZ9Nk=Io0 W(t_>9v|H}UWqx.M9{i~eW<2^TwWa !|$E!4!,Rԧgjb:f0>'X "=)K ^菡1Ҥihd/ڽ;4!ZTD4SGQT (s{!v4_9{)GF"!@r&l69O֥;fam^@Ugr3()jE[q 8.F Wä JUjވ꽓nqTFDsܚh5?)0[gEb3[lz20dFNkkYFb7yź[m'Q%)? jYr.Jם:,(wfCXZtdPwAS,sx/Vy_,#0!/h#e]2w~l]Q@+YQ55$fD{A=)4MBltјɢlRSaMDVؐ%:)9g|Ri8Sꋔch)F|mEGl0zfxr5*2PVXb\i[ilh3ۖ0&.W^&0% 羣ѡDNIzghq:#幐Da{d#96ɅswU&".kKwiQFSiL{s&xa36]nTyN`^ZbS` unkd bLiKGUU+fA8eiWRr --:CA|`TM}4)pxSQS$7H1p4,y6|m~{pœV#UDlaL+/ec: uI 0DY i;X*d-QtL*1!FAL+.C=-x x垧~â?/T]w~B* 2d?hokOjJ)R!$ yάuԆbԽ^k@>B#b7#H t 6+ =T(l!|;O=_~QT^T^"b]Lj~ilu,VQXD,gZ&S6{ xz&Y d^?,qC,K[;֦!XC2\)[mhw%MSg>w?_,(1<\EώLEovkRf&cRcq"KJQ) $qщz("Bo.V\<Ե q#z=7 K0>;JC^ (Fz":lQN}iS}03{t>&)+0YH3kq<)GG JyHE@P2W(Y1x ?D-W ^ǀBTV  ک8| ]Wr4ƞ!~4> (q@0~40r3YD85 >*~K=-4>?US_qElm`n_tF/v:rBqϑ+ >^Qx<~]h|CI< Zx}*b#?վ,?uuSHU\*?yuʵ@m7n'٤@D9Z 'jw@-m6pX&@B/ &K|&l ުOU)mA$OQEbq '=h#xA!d郏BqGoqFjV<3z)6|HhT' ^*ꏁh231TV۔IyJr)PVg!oH H?8!BQ{_/.~ZOþt.=3uNRa 6|͡= 9Kq-S}?ZnH˾=JU+#tz> HQ|0W>B\?/ `VU*ʝ@WQb\xln%m&ѹ|h օ E<;E$! [{Ĉ4Zj iҺ:j%wdkYMJa4mD(/.-N6fm*QB<{Ǵt 6[ EUET~Z2 } S4Z SfXf;_1^ T9u3EPu@4'Aԅ8Ȏ@8|Msz6)QGLՓ2q|X5??(Av9RL#kbmFZWxo0mx`5\f4;&PV[Z IڼPn4TYhryFٻڟL$cF./򯁽m\ C1WļR<׶1\I{r ]Yq/0dOͤxdd9 cPNQm@T->i3}l-a`J|f2+Hc| nuR=aEӌ9}' VpQ :@0<jFdyVDVem.TTk.x+KÖPv#lS4W?/T\]ꤐz}%NZ mFRToͤlz 5A(-&@2EX~D`A^z:-@\YZ\o͝؈AM KV(ؔ2$~Bcn]b];IydGSk6#ct93Bth蒏F# >2PN?tc֨R#}Q SCBbیL3:htlKٴNQpyvpm?I`0+$`#p+KF6xΒ)j=hdV*|#JuVWs$')vu^=Iq-54lx-;Ad|GS<$2z5x86ъ)GH-ug{٭a5#=\/JUVM#XAhߤ2q%P&=P#5`  Ac"ףxDRNBNB:=qgYbB { EA hB!m/ Wf=DpJn CڂH!ɇu(hR|x iG5c3BTTfJ|䟬r_za G mm.R'ĘRPIX ԢZiGz'x[ыIz|cXR1j~`p4bM%1$o̬!* O/GWZֈޅ%(]b|o0RXP '.r) fbaQQ%D$\а~%QC;ě[JRV?^cWgP1L¾ ReP4kH9|{:Ἆ|hw|v)Xhdlǩ ܼç\ n}Yz@R pGwI h2$N$s`|@ KQpCPXW26\% C#$Aw.** wܣ|}\[ PjxDqFIY aBB>~ ۔ 3B}QܿW^8DȱT8?U0x>jY .mkHz\|5x $yk8唽^'VU"0ޕ()[ɸJS{Cc;]9ez=Z"0u *d0 }|ܫ D:P&>0rBAt@im12}uLG̫P{Jy8Gp=Дf G͒QZWө53gG'cB4y68<#69a c-^#Rh1  yYX=Tb+EoJM擄9gC3mG[΃S淦}cl20xR * B.(`6^֗m| - ȑDPm k:^-+YHo˾\=CjN ~]Ux?Pe~%b`=C<z m\(s 1!8 SɁ.*.WT> -q"9G5ok<(>Ut[Dk(ݑp> ]Q`S~|X#~eJggHS` 94Ϫ..$بH 5Sm0*+udDHWCb{gY|) =%W<)lNQN_輿ǿB/˳C5MMƓ߀){30P%Q/TPaB.fwذ pT a)V.vj 0g"6 ;imTRAB^%뉠u%i}0`:^KK*Gp7&Rj0r6X-<^u\|p|ҁm*>4?ď)]yC?fOyR긧8iwSwGS<=QhQ%ƂpeA x0gʲRxv!{@FL?A|U. Pbz뼐FLGxYAȗxT% LuPE^*CVy|LՔ`g3}/Tق5 c@8- -4#`A6/FMV`OTHt?k'T3B࢐Ayfĭ A7Q"$J mL"zЗY &_7nAM2+~((N:Gq}X6;A_0[RA@s_:sn$53C^wIfÒ}>%x}AJ<^h^#x~ Ȥ5wWT٠o+{]V@W0@/!Z^?b@0^TR/U!+U(o _pz;X?hf@QLMv6y:iPmxRB2yFvR _ =?J_A?}M$L s3s ,F HG'Xw+{?}2mߨTŽeX"5V0@p!(G6ĵ =I[=خ(WS P: ]a+GB _f`J=( iҡuQР j] ʴbaPQ+Wֆ#zfLgHn֘ se5^iKGX U=8'&?(VMۈ `%w/Dx 3b&MX@ p !pHO_K&)m&oHEʀוz " *|%}_E>޴8LҌPRO7-n+ЈOQI65hDRo>=\/D8u9RT"F5gޘ!_>vT/IڟQ⋄q" 2˄ :"?*tb0B@+'/ܸEKw𺶪|}/oC!!V=eR~P{5H.y`jAc"Md՗ qKx/tI|% )rb7_.b-'ԫVQ`SUXS+Dqp0)?h%{;9~7W,QCAL ulRV2/P$2lT.@M!0/VJR{Z~_ K2V2u<)0'bsCKCT|)*\;.T>T]wAOz}TwuU)yn)`;JGS%(""VW@qBR7xOõ>̪]4 8{OUdG3h/)TucT_^;(R%77~Iqy>t4O~*T\0%ua" ~S[ĵCfN1)^:x=/gP%*5CCK;= D{[𥳐\624" }ߗtW)sZb)>=$})ev[`~P:++HXyZ入.UG# 9ç6 ,>j Rˁ ~QJ^ktl7ZJO{[.kh֤G&FIz$dZ\]T^N>4K 65\mJ@y06C_;$PDۨ5c.7A\*ԫ;Fg5H'O'"GaeޟN06Ee2;2Ջ߽RT H¥J,q4ǵ CMI {իٙ<02aQ/;0:3ժ/1_R1voR/tt$2^$/]4 y_5m u=R`+@BbJqPE::VP B#cnmJ22esVPTbWePLZc}-U$ʄ,24| 4Y*s\ϼ/OC2 ' nZ:j77ɞ]\myGծȿfDJӆbFժ.PTʲ]r1Rj- ά2тTZ]Eiণ dXScGΓKTpkg տ0P+Fjg!{A)^Vv_RPTJC챧 u@2An߁ߥ|c{uUL9Ygz%izT.<ڻm:=}]PAZʈj|R޹6pKIp0}"~_ |1heMEcNbq,ujԵGtFme{k0B sU7 'mz7Pߕ"](v&K]uSM4xbM*RkU0ů(Ppbdh}2Yz)xHp8$ B>0iA)z!T^xp)*,z?WA TJ(TPWG燾`S 0_&@~LSAK?|8rz˜ˑܪyU Q O!"V3m /ֵ}(%A>_UyVW>O۵cR "׽"3x3\n8}, +>\ *6xA˝ʥ$`U@ax\^&ABK'jksb|T2TjO3^!.WP~?0UTy ݃߱h0XSmRpFpu: *ufyQ)BMw/N f tN[TIj ۿ̅o£E@~57 56Wk@\(G.Tt{}ގ=0R@1N$nr7k2HDjY))b >WF}˾\ϧGM' BSYOJ6Lj Rf CB2:5GN:)N:tY`Ó4GOZ8{BV6A(!BY})To\DEDU$]7 Ño\l9'NX ONEKYќˀ0ꋔ*[ Tt#$HeR[qpW3nF>PΟ0J]@x00T-N* p& w#1޳ E|Œ  pb -.||,|aVC0Y1ţRFljgń)BX [{Lxeͫ5QgpjgDb/n&XuU*md%?UGJ]UʵӦ+FQ.Д*tl; Pə`AK@|1bµg0 4: 0Vb=Dj&njbj:_Qry goIԱG$>ga 8}KSu ln,{,@1 2wT n4o+zNA0^ 1ov aiX [ 6px* ژfpqiah[ N3@>/6P%G :꼓3h_t}wLJB:e _ HC"L@ 6 aaC ťO>a# : $9>`l nUҠ @.8w ^L\=+'TE̍M,8#D4Tha%"{K(wi:I_tDÊZhp<;t'(l@[&wC ^}4# ŇN vأ@[けac sa0KPtz'XET>eh%DۃZ|p4k1ᡳ B-X^HZZ2@"Fa BA Z0蝹U~\WKF/7dKxQDc3z.UI"405U!<pv|Wi|!;HTAb 4ɚLN RhGE,'8` ,'M]pb> )-HJlЃ9. R`$XSJRФ-EECL'@):lلOp8<2 [ I`Y3(bS*^:hFBڒFjD17}'Nᐛ2k83FDʽ=ɫ;WスfH 9:L}2 PCGks(($I:ϨI a4K4gQ1A[{&WS6wUcy$pS/sDpFS}{*J M B$ڮ|q"gUR݂-U0ï }ΩjU9>':^voAӺxI`d[P 9GEQ'ͨpz·02 |TV⯱CU,_ɷ͵3|g%+M}YXZȌ8UIokgf,G.!sJw{#RzinW0cyuqW'w:[uO8TZrU&?1H|JFr2WtԶ ,$O$ 3c_gB*Z..{ in7[eø׬c!ف]ގFaV/8|#uP`ʧ'tcޟ\{˶u3dQo@pKQ7UaԬ2g,H&Ȗ=I))JyzNЮ\y -~8QsMP3BK~zҺA xP[<˳aPCU꼯_J壵c+W@*ojʬ V%hC/(aÎ}lVG3D}WK<.xXďhV~:燒jR$s<)?.U+oN9τ+>^>U6QJƃ䍨s[*s$mps" Ur6] !O}NFz6|)8I& &yh g'>:ɩf>"Xo(oXLeJo{FS( <(e7Tsv @}6#("`{Fl8wτMo S3@}|n"_:LrJ,jNCT+&ޣQ m!&ly ȵ*sYѱxCV^UvJT:BS>nڱkpɼȯ`0:V5HQDF} yŚ`~d>YzwKv<)V_(=G@M@'i^5 C԰b-O0΀\z9C7%^)CP\@ux;oG*P}YJ}?tE˃;&*W~UO2J^B'qRB^^~^%UJR=XNH;E`rzLX8;^ERUqqaP8 |Z2#\CU[hVX)#9'QGm)׍enV* }Ξ6d@0EEk]*!|BLe2 `8 aļ^jR* orHx#@= O7.J_B.IMT Bnc#g[.KP5f5IgWD0A<8QRDh.;fwѮ/!B_ ؗɓ+}Hs+%qP`Q2Y{EmK}"k>;Z|3Y'30 B<$Svp9x*pROI,x yS2( =w`ĭ ȣtpL&q<"9,9xp4ɻiesuYbX(~`ﻺ T5|ojc1(V'ꍢ2J^ xPH`tFԼJVX"?F6:2eПѮH)ziGF= X8Mn(sxu}Pxi^$?gp_tސG{8͘SytlCo3E1_RXkH}|pރl1kH@ynp-:y*(/>]Ϊ}di\t*L=^ G(S T|Ov A~2 AynE5pSj]uK;.Jt:7?W(lIJ~()1焯DB8T:^T,.J:p{S ^X<_ %Ƌ J.Ty_&/(W6S*M4Sx_z*UT/Qr DO\=qD<6BFGtc@Ƥ,#N7&/3:m'` )=!OhAva&J"' 1T%aO.:&v96+XU2|R0tJM=iG c%}o t.i0.xF€`vfQ,Tι2yZy6gtTBb]Qǂ=_P(`@\({#e{j@1jE[M Cv~~*ȯGf5vDE@}:P #4@#x_n!Ux3Ht0.uu|_ [ x$꿪 _?kY҂nQ6 ^,:½+F ,^ VT+!yJYhOhfsIҚ<2 E _R4nKY}W}7Uް _L iN08ǧ6sP['`iZܑ& V;"? b#$͔ΐJmLWނ>vK9뫐:Z $m0x 7w7fG0&P+IcfXPpX\ʺ0bbs$/ ~&0g>"ep||*\o U͞WR{\b+!./ ·|+cp\ ?ZT+?3Gհ>>@2^]UR daƨR_GwV Rju3x)ʦ3xe+`Y;OUO InNΓE ɢ%.힞-9[h넟*֢ 5G”jrxf7: 9&)ީJ%)'CNe2I)DӧNPƆ )tDz:ttttFNӣ4mG>Gӥ(-ӣz=dz==>S:d~:x$D1$ee?6::ttۦ`D@ ʦ 2D@ZByT0<f|#V+b>PtD`lOf 3[Jj|CҚZ0_bl .@$ `~Kx||0_A 5A@>~K^PM1(U^ G3i/崂۽(xzt|2$ (FipԿ5T% %P>K` ab5蟡3rō aÈ`wXcq* .>.0iӧGGGK~CT 2^Qո 9 Wk E EϧÁy vFζ#m@2=VjR)f SD:Rӧ(wL\t B%dM$J-^lx4ӝ l`cf_٤tJZJZӧGY9 :::9C``kNS]5ТQ;zlц#pޖJSN:q N'G"$pre ۍ Ξ,f)! 00dcT00dc!Uw3\UJYy3iBm&B._Q,YfOp {__TL{C$RmOxt1 &eY)өrAQ+YI.([ c5^xDhb*\ HTTca>F "8L,aQۏbɚ6yy'4Xirb7l-r>DtC oG,'4Vis\4ws{ ޲3J=03z vB#\17"y A'ƃ#W 1d"+T 'VyW0<8n=Rg7θs 9-`Thc+q(9䕦݅#,n=F/(tTS.Ĕ+ %SE)hw(VܤZ!Q,f g;#R6D4w0Ngt>揨66$jS?GM9:Gx]GVmx {`WVC+lKtSH{nE[CV&N:hg.v\>4{M# * 7؊`)'%S jz;$ki CF9y ZʼnkC9=jH. }?^к!Q[խGqQN$s>H׹FyK7">lvK~,oxbJW3K*mVbёSpzP|L ‘' uT3ٳ7w09ȕ>ˍ%?45/+\ waA?V,R"l*OT%>U<v?fxzA/4Z|;CᅊwyX1W`)xS?2?l}S)0TMUPƴQ+U (8\fC/|K@}y؎]o+j7g}Ce!lFq=T F;z utPefɻF10TEk鼧AIEneZ/`? &RӫciH?|Gət*K2Efz% jQ(PF\ MT?QYio\b@U >j`Ϡz `d}<!A=߬܋c 윓}oz^R?8@pEhw{3X]kI̴ ֚1e²-btAV$ypS`PS*c_G ~Q8!:1 Àm!(!6%w㝓crPVK&V_`2΁T#<kzZ d lf|q!VMbiW =_AAz\k?,%W,ܱ|V/8O*\ 3N4/dM>9obh(`QdKteԪ$- aТ_l|Z(QJ.c߈,ɅޢGUJ뚮g}*(_?ߵ(tBJ|JݭkBU(kcEk =xh0(/rg۩uXFdmH0=Ln!OB]@/`>jHT0A^eJ$1!. GPW3 gX=YMn O"fC__w0X2!,}9Q}q?U^5-wVˍ)ᰧ a6^  *!-TuH (Da`[>6ӠV/_ g\k g6S{LZ!yߍs"e'STH[})Tu@grtksk|uUU^.}5(<g.f6᫧E~$nc3@ʄ?&O}N-& RJDDɦth.iP6cŮ=%sF. @p|\:3z^Nsh!,atSbFǣeZ`s:oFRb5I"N 23/Nd3PENx ΄^(9I⚷7 64_90c, /E7o.B;v2j]H/W ~(vaImelOȿ(J1C\`$@Yeع@*KU0!~VpKUQC7*4`)_O52ߏ' #ܹ=,iGvt`UygF 2#~5=JY;85bʾ:s͏)U}U1@0*1SY ])z"ں,ݣBZ w& `M*iG%W}UO.5+T^sK;7ž߬1̏(E0Ƭx;`?gZިPBN.uqreҥT7ܛfrX/B/hA wGkm{"o&Rb8_3~SzTjd(#UcK/.h %~wSx*9s) 3>d}ZxPKځ &,EV B@18 ĆG"*hqr7eqe\N2F`h0`,&3Im"BF5l[72t"bX3EXH@im\V#"J V, AFe~lG%3qyшSyј?:iaB '~[ 0D_Ldja;n/H|)AF$+.KՏ|,l'9b0T0˲z0b}p6 2$0=T\]d;N>fܲ7.a%ӧ+-i#Wj2L~:"<3TO 3b?0O ח9>K7mj4nCd ]^;xEfb1 i!^SI>Ozfķtk*Oi;0BƮl^;{ٷG W=c%n2u#}}`#.vi٦,>J2W?0GĿ^rFÀ ToshL=LG2JAL ?@s#;Ho[[8@x5lbbӴ==8)D|Rxm0e0%P*^?RQgr[2x̤%SXy񛃮sp` ]juQ?OM`b ?'nXԶ(nͼQ&@]AuqcOv@Fr?jj?gK}i 7W-(=GUi70u4YѩxMqjYwee +ӥqYPJt "SN8 E@?䟬41/2* "@8A&ZA9\=0P[߼K>KTF-=Rm -ɄVor(U@˒xC K H4J%62Fig3 Y6!"\zBbZOJNYs\pf B9 ƀj<хy1n ?#S zqJv3@xPG Cp)>A:"ow>WA*//ҝ_oIj]r]DUS/< c*3?ivL\vvVs;FDxc",=hw*`?o C3/"9&JʱmSQ&X{YԖU'h"<#N7)私/)_&Fkqd?Gmg:0ߓX1ԾQVu> n{0gc%7GC0)z0t#?v]H-&.[ۣ_=`ZOȅ_߹F7bn*LrkJn"oD#lJPj@F4wtq??FP葑[mF #7$\**Qѭv(z&X'ՏlK{Q]@P|pR ĺ$ٷqRa߃%&[:M[@w Y+WHR%hnxE o6gẅTN)xuꐅk95֚kufIam>[<#pj.KG0Q!aVE! T8`TD=.K׆i}(KԪ P ~;x|IOdR41 `bXBЂ^%|^$d =(U4T*x01:ɺ"+T߿]{ `SgVT_Uw>Q#0V}uQ/^!:TMa=UoK]]v<"rHiU𩶴WD"&6 Do#T_4yֶ/"S~EPbnB)P//ohʜOV)KdzsjiOn'A R^]dDSԚZvXd])buv'*5؜MFdbFa-;#z Q/mVJ2\߯ oTN^ߴ 7̙/md5.UQ'ny]nk:  _2IӢԴLYStTd@ p) E#g>p?H2t=:YtDc! Bu( N[MNYtC&&(` B)N:tjQîp8hpsK:h ),ɪV:ty~0`dӇu*rd=1޷LDd:iӣNH\}gL>YR#6@' -j ;`ш~tWIWe5JF7Ä ӧN:,! 8&~I/vrTA2F~,!#BsQRDI>4Y֒V("8#ľW p^Dh62^X8.ݚȥ$UUJ=>=e]5>~{XV`Kp:NBsR?t=Np#B d'i,yۼN6zt9Aȵ`Ut5׊|P0>ڻʻhS'6!Utd~*XdTPI.+p`U8/p)M$qz3殦.UA UJ[8?F!0\ "g{ M1Bs)8j^{@CR{9?/v(ygAJ./Ό%*%.TYݪƑD$.a~<2҃j6%`'8@ `^=r?qGc%X`*-eQ&?V]jWWL-1hxrҿ0G#x{BBh1?W~b"s i:t鴡\XxX4t#Uc:?﨧<|7 I kz`>(pX6(V"N>e`N$t(M! ~Vxj'Ƨu[OT{aKN_tY)Ҵp/7HTo;eUT JܹK[?7#G Oc4,1MDRfm&P'h~Zԥ1P10>kZib%1*k.F^j`"rXNP 2xJt䉝' ,>k#TOcF"˓{SaKth$'ƕHfÈf5V8"0ptmM-}_,Vv6P\lr-DqH$a o^؊Xf83S.XNBLʈZ> i5E95Ves#hHۜU<:rFL)Ta DF'|@4"D"7y՘'gLd00dcU00dczV M [;θA%~EѼ S| ȋYY.'93XK{6ix;"M伌P/Q^-.w FwLZS¤8GH [N}FjRݼ1/ѻV\z]RZA!쭸B3X Y*w(yt:㍒ OFb+ .ɚWr=%E3pqH7k8*6ϑ DfŔq(hjW_z{}݅&}g돾}az )"hn7?fr3nޮ/VST༙h`ϡMYO+H|?M{߫+~ߧ@?{zxvk ћc})-lS<>zjaIܭ-mǽ]IY.޷,ݔwy74);F2(ʬI;n ֬!T} r{#.zٗc(qb7g|'P RwPRS* u2 ^D-|Fβ0 (nr~U5@k !-] ~Mzk\D_?vBzLPI p٫MSZ&KU`(%gd137xT*c@|0*4#H\ohV:3fs{+`h:=5Pfan~EnaQ{l;DH^\dL)`~-M IFsYUS9YGQ tЍKb*?zdiQi_@%Dn\n6sDo`R"c/Rtt\aB r[2uã\6· /R?cř\h]qі6M0Az3DN5vGL 9N/6f҇ s'M-8+!r|)v@8IOQ2콂%~ zi f)f$@ ˕QUm툥fxa4 h} 3>; g&|c47Q#ŹuA+\ C:kSu>-QFjيlCn7X!z¢LJv/KZ.)5! XCU0Fj;&"U W֕ibOW]QkBa PY*Z;V!T+.K0ͺ4T*€ɵ{oņѬεQ^2t_F^U51l4t} SF0DKΕYSMk+Yvod#gsQPaqL;TKU~pT#-yh)TP,.)AQñ7Ȩ$lGB]=LRe԰ZW}oUK[U*' `Vx^`#*/ G~}J'8<*XW=$T>;ul&@ͤf~* 8E@9,~uJȁ[ex(0( iU:F&Ó- %0&SܹJyzJvJB,A7#i؉-WYl9E1?'\F' l73WJw!`)\Ԣ&D^(c&Rkdv&2#3*SoWȏT`)QtmO"iD^xB~_=sa.7^풘B/@|/@0x2~66=sдB5`$-T&~'ĦO(-W߱&fP TI)yEp TF!Ȩ)w@YhF=tFV/q̥n{TQ6?%>J:+RWR[t )˵ +Ep`-DO{ߩ4]6 +{Bn `l}ZT]&./W`1ۅ^Z<g1|ҭUW8(V؁N:Iit]qt RB6"Ma3UaGb5R !5| F,S؄ #Lz $Z G1h{#{Fp>=) Z *yu7!xvP Lb060! ANb3k5; ֕S!;i_lfYVjYg^ x*WUe-> D p;aYY]&a Q.p>%NJO%Dʱ,_ 0(lgSJ:u,9jA8me; lF$"1n9R;ll8z2g4V"?i[,^gmȏU2}D!BxB&"85 ?#UOfnVη"ت98{_BOe3Q 7O4` tphl)XUjSUWe%THxC `vc. kxx j)rZ%VՏ_ cHP?x;a\eUtĥ^c<[p(e$sJXkC~3c+8ャ$NCVagKEOMb,ksG5 -^&q0ړI>]F@V\+2w3)ЅUc2YjJAKrchi$23_az>$#ДcЖ Z Cc NIA.O*IWWjU6UipX?ˊ-MFkGMTRyXS'Ȝd.QkLvVFV#Vd&GVSTU$ԧ#`,82 q4p-0J's͊3q&Dk3d#뎅5U(wlt3uJ_Gg'Q-ݞdfk\>R"}`)//iK *K= XOTP64I}5Weւr*"+;`Mq<6VӦ黶Yy/ma8Rs |YU>aN&5& 'w>禋3Ղ,*xe2S* v@76'@J[*W Ŧ z~ε:2O,ªZ!i`*XpC-oNV.EVEWQ,-}7&OP 9}=޳V`gTA7/#j pq]\8)yO .An k%#>:S 6$=l@{-vA 9iRY2H:6JWjtzqKSbp@T`$ Hc`J:tG*S̋QJt1ؑZ#ONSӧ؄1mzү0u^44T3ֱ+l,ɟ(0CXLmÝ+BV! }2tӆSJ V Ъ-N& c:Ă*`|6)Pg#"h â~||m^O 1p$a(7ALOj?Vݝip@gExp6ᤦB`NIQS@6& N  Q++4J>2ڑT@<ZRjϵT!z||qoڻ>]>Wr2qy@+޼L@Rk102!fRZ)N"R]U]|F?ƝW4yy$}ÃReo@x鑺F4pTDS>*cYbs}_fHͅB@a`eiD" 8IcU0h:ttYcjd;Ԑ?l9 ^X5dc @QB64##ԈYRT#AsëD)RS%bLe-OOfI#"LJJT/᥅5)!S1U g,8>Ttid &sVa^ cr"N>"0->9MV< /p 1d?xTF&c!az6ONy\eԤD~nCCA-]#EviJ(P:y-VJ8p$c ZBR$+I00dcV00dcWem= IHjmf8q%vm|̔qӂۓd1z`ftuf014;.v=OIoNWo*! Yd&|чL8Z#me:CC,ocX#k[`v @؊"ba>PZL \ҽ}WWWYaϱ3|r7)`(iGrVjWX>*n}}|!zSw"LGLaok%"=?h[U_JJn*jQQɯ>F_nҟ3D{!O5U$d1N{{]g[%7ٯMW1ЦZOsܳTV8:U*J/}D-~}P2Pp)#Q0z|Cx Dvq! smQ;T2:Ons{OlH!,*\Gň]/eU~*J*w yeg`u#ΓP/.dڵCxx@MeVfTyk%N.UA@j U" H7>{`ܶ_Ldc}`1\NH>. # K˔Q0QYi䉨 B.ҭWK%_(o(h(xCSB=xGU"UT BCBXA|}R?߈jؒ}h)1[;@)U==KM?ߠuOn~Ǒl 8pp)Gȧ&r-i)c#R`>: %Z TBMX?є77p R$ IMxxM`D\nd}k)>t\ V9K{EMgE°>G_cZYd@R v13ı-1{6(R,Ǣ`l֏H†BˍiǞh }V_b/)@O0U-ϫDV /QbDŽ~o2t4YER U*J\t @ A#yP_c>&h0QeѱߢoZMY_1=*UJd*_x):Wn(VPB@P{o&TB 6 %2p=l7ʊ49dxM ~ʈ)SJ#Tb B5C?S>= R`)@z\*U@M~^r7>Tj`+ T$QrQ'۽xã>*"oj>*:_֖A!M:B2| RZcT?Z@$.\wn50 ʣY!TEer/FxS^ՠJVPax~|]إM;Tsa ?~^hY{שGRLvYmbp|KFy>+QMj`P%6 7gyuU)Gx|t!@ٝQHz00' ۍChx#LI D>ha P9;2<`TKցq8(uRwԍT7[k7%F}ʚĆ|}d}b0J T p L-v[N#}?2s+s>(m)BX0X%S ˭U4j"X XCՁkD{o}Fq{oz1`l`x_Z;Z '^p#~O]+i og&Hm莪( ]aOWTڛba\_ ?YwDR [He\ٖV<*{5p/Q"Щ8/0w{Q-z{udPăCQiNFaˠr0 YsWqe]@'/_uCZ%n`;-gQ7ckN4)n*`͌L;n-"Q$stEʊ?> s,SZʗIM򋜽,r~D; |E_U~ǗE!.FFRҊ\n0d?Y>$t#ض>*`( ~; GPéT+a4~(/{؝a*?AЁk,*}Dur-GmF6#P7_Kˤ]l$iD]/^5CdySMVs G#CE߾t ׾z^ f0WdM2YS90\)To]IYԄE6[ѫK/[S*\eRg! FdUcJ3Ȁ0 hF]״Dt]r5l'O}\]5gBG[/2-3Xm=T9H% /{ԣ $WTb#bP /)B&e#qGM[:/z FǰKȭR¦@- fvbuº<\IWW>8[ 8lC5J0mqvʔ,!3➢F`3[ke\NP+Oj!Zw檄Hηh[^U#$deXd j|gQmq>-?H6DƩd[ iёKqxpt ؙ1p\÷EuFrA7z2M$}5zDPJyW@X*Q=5Y׈<>bϕj4G/\i0f8H{@c::)M]x0 #-W$!az I~* J.b 5eÞx'?B)TS.}ia'U?`y ڲd Jʼ W?? IHPZ`1X/RsP'Bp+ B!$+q8XB V, C WJ a`u {٣@ba !]U~7xbe~fMP#F壴Oɓ#Np s*Sp҆anatiOx/8asZNtE"[jk3SY /ixB x38} 2S{*!9#QHx()]W/B+UqP #[0 3TC3S4#O'e'.ޞF޳OP; 7|.mQ8=}*hZac_7Y6k ãGsEUV(W +J(bx'EaoVN?nܛV1“%"p0#Z;E ՗5I$":|*-јT{'N::zRp;m8~ oNvqLZhPxDCX,XTII)a͜_j ƫZҝ::Z061; ?oXrd֩͋l9) /@q$UF@70)bfowjpd#|i(/ƾ˼/V 54j(˷Ɯ`Z˓>+Q#Ǜɂw>up{,:PTR{EKH-6yAͼB}e"2:JEet:36V蛼Hk:Q6؏[6Sb/*ܭMjs8S&s',ɦr:}FER5Z#(ѲcC<>N:w@x&D<!L-=" jrˀFә}xrp)9&Qkf͔?7e؋,:)v7 O )\6"SQAF\dq6OF%RtSiL{)Ac_1IJ{~mT0M'G#& t '4ZAȓJ=>ӓm8R rtD|sAF^fxS%c5=VhzAybY2W[gh7,M bU ިI݉*xlᇼy>ړ/D os{r­\_$F720'H2i<a-@J ?͒l3,^A& yRv7|m@1:mrqڕ~PT27lS2<~/B-4b/]GPy'fDϩDxSYTmSUY~ϪP;̄%`FbrUƔwxjAe޶\3@P1޵N4 `0*G苄P{ ~"U6nqT>)U |=.]Ra߱ _V6PUa_3CpO5_{Z0A/hD1MSQ6c)mnKۿt0Szߪ[}G^|pOErPl,D+h:DO kׅ35!X!|zDgܓsbB48|l'll*|8uqV%p)+w8 QΆ:+%JEJ9WN!/6%0 ;Qx:]wiIf߿n~49\~!ֵ_7$T 0qewWNpp|>T,me=uuW4નx$iw=c2jTpgG7y z`˨ .B.Gar}WZm/̊NoSyyֿ`-h xn s#~ehu| yn }vh%V zT}D%EmP.DRZónc UYaHSϫUV mK9KQ,#>_9EqXrBz6 t{߸ZZW%ff5*p+eĴa/qISgHԃ=}>%gr5VL.sQ ޵ݣBU˕/aT{;jWwO=U4EU/dIGP nB~V>SR9Txv)_|Mo3S:tڧo/{ܾR]hijA%:F<Sa6 Yn0;|O%qiJo)蒒%ʛ Td /ʩba+ qv pJ rr[MX#QF#b#f iY:1 bNo1b~]m~!^kI,)]3ޢK͚:2|BGjDE'Y_sd逥?@15v687a8:w7]xhwq3Sl+4 >ir+Ԡ LD&Wɓ'$Ť%/x M˛;,<|CV 8$T o U Dp ]}1Lk(n+6Y( 2 3squ=h)DA P[Lwȣ˗>Ґ3bΓN56 iyr{aՊ-pu&Rk@8!+iPߙcnUOmFS<1GUO$yOS" xsK/()N1cE~`4SF#v[)K9S_A˘dL5J 4gdEOxD lS~uu",Pp;pcli%꽾cz_Wj*sj mp0WWq&.~jU^PS5P3>BuNQSqrC?KV(]X72GP "x,RAq<ڵ{su5P f˄U?ɟJUFxlW*#咷`w*sGRuz:Uˀ{_T zeCpB'B 98}6ٔ'ǖDkbsl'z5=&oVAh2 NhCJj&;Mr9<'sWh':A4'5O SvyCcGuDHHaXI,ڪ*U}t=eDCEnѵTЖ^#|Chߴ0T8ЖlS|jV=3阥jvԫ͋@@cT=kc[\Q'gQt&2l*\љ4a3LnsT7 x(S=Z["xp6G7$N ͇94x?N\!AV<=)TWw7 P ?`Smԉf(PU3ʼ $aKw'x')Q \񩳃FE(ܣQ C%@1&~?.}ј,dZ4x6ٓl#4 V5Yι!@.i+< PP-Ś PU !_ĜTܕӔ ||%l|yG*oEB `ʁGOuKOBڲT|RD+oU^J㌄1>Ѥj 1n 8=O'w?b}bM2Ԛ2ٱEjU,Z[44HJUSV(_,SrgռԘgX=EߍKdd0f ] 6͌× '-p6~S~cc4L]TeKնaЦ˙$"i" a"Hbq3j a2FNF>uhF;E[9xٱLވ[ 9)Цb; *./^Ad귾dCwE~U3~w3l#N]ĦL`O,A A?Cy3isT%(/^=\/81n}E~`FaU*32 jNJ@;pu͆_0:H o9̯zNdYYHeSDB_:60L/:SR߄OVyA\Rv ,.z#uQt.TʀϹT, <>%P~V+f3{ֵ?G'2p:Dj}wYLRTNT(!͸g;:?LܑHH[Fa=_0ѺZ-U!*,2PDũů$a Aר_A:fѯR`u[Yd40[)Z>IU#)%F˭!cRh,^f 9m+E-XmB,EijJEФvhݭ0KzU^Ku7- ",:!GN-W1TH96g~!-SbDs°_R)^m{(놕)8v3ѫ~ '-SL`G݂Bvz7Zҽ0`GiS}J o&jx \͌OwxFf[O@;6lU@}FǙ'gVL[L{|i96S}a&)P?4;/]y ~I-ڣ#\%7%{]Yl͋ƚ٠^Xw:أf"z.zڄċfIɗ>d5"ROss4gc2 d;03 cxU]]T`,d@(;xW9)Q%p>IB3bY,,F̌֩R M91/N{݉E< b kA sw‘O)F!`caMHzWWįxQW@fSZSwS"dHي{ΌmFkz j'i:e49O?[w+֞6umZ="˄ |wW؍=3*cj/v?撨_4]|C3O[_Y37)TBfv)W]# ˏRKVgJ7.3,Rʈ "*| \ʛ$݂:lSrj%rk-Qe%۷n" <g\ԫ;~MdGO\n;jnGM2HތgHN eQ„p`$?ERY c/._EѪ6dZG4`(VQѢ6GBoGI{HU>\NGܛLo|Zg`Ab"[GN #p"K.|H*M;M)l +N!K-؞3%bF.םFR| zTa}Lh"Ax|Zt.W AUp bPⓍi'>zߨuN]Wmҷb֕j2=MF ~&.P`SOZV ˝²g!= 6Xp+N8`f\]Wya_R)Jb|<>p}tJTqj~z R*G:nYnJZ.>|"߲s/PgKE kȚ~ !QOa:^eXe y\4Y Ůbup+NϨ>U7}@2Ö\y|_SM}'KמWnI}!-tB0(oDP>%k*3S#.[S0{1EpFWW~@S \Fޥzx)wFi[EZ5Jo (ӶudG򧫶AJIA"6"DaΣhAJQD&22gB3fn[ф" Ba'Nj)E5pTkFL+yP|^ Ҍ%9\1*tƥqvF$8Px8S K(ٮ)HPT&KU:| IS[~ dQs δFA X1p\4|ztZE2&*$m CG;XrnႴ4YԫN8 LI>2 a`0kJ§K k S$Kz0p&9W_r Φg00dcX00dcD+Y .U䉂n#s2tF:>^HNab> 2'8pД5zᨎY~V&<|;q&_`)U0Ў(\̙͹(Qqˎpi=L/pʔQ_@U EnQsտB|.z"TpSZiPTq,ڿ0tGtalDUdDϰ'WǕcspnǜ2q#BD<*2c>xf3p@8Gh0FN'v zWav^ XE9'?$ãSB&t40 G٥j7I10x|C\ά `t&0V%eR_V.g9pS|0)y04#kG遙~Npb5*İPO(>,_ׅ>uZ^Y~$ w9xOz-ۊ=lU4xEy}*`)u=".3Sƣ&Ix7~*.RM /bCFT| U#SxT;7ޝJ X0!G,ApxLWP2xB1j +W[|=L|Ќߎs!:>DU =m#>[p>ֽٳ6+N#! x$|}u4CEK;N{nj5(M3In(?UN[y6 ĥ_/@CPQ<<;m3*wx؆"I꽾t)E z\Ҙr}(B]`0%ZXȪ:Tx)Œ_^ Uˠx|^0 ʵ˪^qLxGzP2X(B ՂmxJjB^dH} ܂6ޙz?L%%lGWT?*;Tjzق/ǐIܝb/1ǀh)Tm/jGhASM+^)zb@x Uw`0 uoXxQrK% yxK//tWeTX sKŠ0HK׈Rp\nVs^W.;=t<,$@lK Ք(s?/:dFeWQ$CMEϮ@C8FdJ#1,`xi}-]250EJ'GM Ń$.a3!QÃOF=B˨(`G? `} xgG>4T%i@ƀs7ёM;K y_dZ zAf!^+njȀ`\b Vո[#ՃpF.gz DUNNӍRrph4tB6"[ u~ YPKOwʿ>EgmQs Ñ~^;"#0$uivFXlU2v/)V?.VJVGM/S > Ā yp+.W+6jP:&Cę:b2NeI")v.Un6ʷz;1 .S|aL ҿ z%63B x,pSV?8\+ /(1<>ܸw/BP>l%8J $Xz xı˽ 0!` |X& 1/?Z(%BGAˋ7x/?( R^uʔ*Jxc5NuNTU(K|)B}Dl UүżfV$bB.ն$_(⋠تE]?v?KIl1UUñ|.7U|]ƽ9GEG.r2vbK7sb64P#x)w`RAV @j%!v2'KN0|fZO 5ņB<jML^)}ac̈B*_!TQFS"$9Ӥd0C!CH4r5A5^ EU`R #1C?=N:.<*H7)_F<(?P" Y_z3?~X_W0ӄ``";ZYn$:~MT;/띣9}$6ip2ua KQj|I]AoATJ/ xTySˠŏ=7F%H tJI8 I{pSq݂0>!#@جK! U@*+!cTlXcTER`f7p۠?f(.9P(v{y/R_*T-8#U0xUl/PGsqL<[PSfJa#]@~mhWO{8)hFmX<^>G˔ٕBEaN$彇vi46$MW,00N pd#ڭB&IvlH\>8_K_9,~^J(Mÿ @4PAp >$~) `f9uF]`TU0z˷.u<`<߇KFڜ`ځ8 g!,Gg @1- FI^E/MWўq\e0 T\RYȠ5k(2G a؍ʀʠP8%[j<uyq|ˉ)Lx,t4OwH#OR<5jqfA1Yp}W+%+#V+S2l3SgSd>\U{@}T APP>Wj<-Kj9)8S9%q&OoDZ~GN0@`/E?Ǹ0v{=8ـŠTx^q^T8*1z2e(^J3t_x/CP`BO;؞Q|S0of89Y\NcV>GJw4GޚvK/>v6ܔ n4_߇+$g9F<}ώS `ّ#,!Lxi3C0zⅅ_,t`Z0E }${R?65T|iJp`OOA8P n`U8YгQ Fn4f5ېOlIgL#[@pnc1_`zχm[&F'Q$H/-\_<ެe|gȖe/~IdC4}ɓAu[x+SgsOd%Iy:/VYsFi'ț ll@R_7ZUDt)×v q !:QR >Y"Q0a?MBWW,%ItP-[JU0$PP+/Yc#q |\H O^jUՏC?av~XDՀxC/ĒT{ҽ^Pf$TޢA]cȇ/ƪ@:KmPP+JmJd3XhO0+9OE:(\Y h1(HC%e:@NV*#e호I̭os&U:4Ҡh0  FL:Ꮜ ^*LX}Ϫ`) K?ftxZiem7T':o=-OGګTx~$@a@ҰSN*gelUˮZcQBo W3JuڬK;JxC˕XRUcvx{;>v%SGЦ_2o'=5k'B~= UU~%TW.T\յyw7~DG1r%=e4:S<S~O(?bkrS2ujKN?G"IӍmy/ 8REu:{|(4<EBͶJt]0۲IzuQ!ǤPޗb!@H%7m&dPbb -"0ՌFLV{‚(l۞t!7c HR J\(01R,Jm&ozVPD-<4,Nj38|`p4jR01P;ܠF6N:%:R!ɝ'F3,3y,BN|Xy@g}$heS1jp)C%V[m5h,X. F,<T{Sw5MiG?/ւ1U$q1XDc3&d +Z ߽'5]{GߖFKGFk˙mæ,}8N^OoĽ2 +2 ,4(pUƛ\T/cLW푋d86N)>ud -OECu@nZt!7d$OL/NAkձG =AU+uZCfܔJחDhx<`(v(#=+!;mT4H*y jYH';?U0뿐t >4#Z| +oP %W@j7ƕ^)e` R JofY4Uծ0?0^@:?*5[ *VG cj qw^_NIB'.?AUuZ6Um+5 xޫ{ĚF^ómH&hf|,i/<҂R R zMyHZ`}G iS0pba}J*Ǜ=:m՜4zª8!Fx͆F=%`p1](-[ ,kq2{Q}R0 -{~z?Ua+⋪s3lڣD5?G}\W}Yx~> (+˒̫`|JUpc<.mz2^z]."ˏ>t[ͺYıFOm坣JVn&zs=Z"T5"0C~ @-s6f Ux #> 1<~) %\z *Q\(#jWo'J)/x? CJ_^taׇLA@S~4#4bg^T<+7" \~\U:VQyV wڢAՃ~nmY.˻9"uY:lTmc ,F!=gpu[^3KQ8Тp1*-F*8tt3Z#CKMNOJ"H/5Q[r˕ז7 >PX=Gdt..8[f1(|p9CB~*LO@2h踼#=dT;ꁼ?..T^<"]Bo_,r{uO=鶤0( Ú`[z(g*@*V=*WN_Q@GT R7)RY'4au'ޒи|][MFJ߳lZEM|PEKW6@W1aI۶$)˼>]UmHm rKsײݑ=i 0`zT ĕOQT[#ƷHԪP.  /0f j]묶4:OJM<`m"7[ӭN1՞>ּI,^U\H4O5K&^J="k31̐Z-[ŠteXb~/ToE?Gn*&sɶQd;8u38Z X@aPaI z) BY9{TW 5<aO ΅l1ԨH(F(6Lx-#a j9;pQҁ71ڶj~Ϙ0ϩPO!nӻw3!S>(2aǧSqVhSĪǴdOXczDpds-Ktb͗ZQO>E[Ŷi_ 1s*b(nNcu" /e+˄(~|_=W>ǣE{/. $P&ɌH'z K޾.LJ,Qy|.LgZ#ߕT$`|mh pf@X`c*dS{*)sw˽ˬzmt &$,(+<݀w}s[֓% lS?ctGgGFA ؙNGH[NNwꢏT{kW|:9Fb8XP52CG12czrd~KviTTK3![h"{T'TDU*{53}uRAI<|m a9)nodKK ܬ*E?sTVo &:j4K<1$"fb@#Io@L@I`RvFホn g ׍R.qՖr^ftjv*Y i:;Ƚ'P,I[Uq\A,_4s>xefP/_jHR~f"pX&,VRnml:'O"M800$o$oŶP1RyӦ:lwa|8cJ7h~&lGn -Б'w{2nLMq9i.y3J2p݋ycj"ybP tE; ݕgRܠ¢jDTTl滛9DPTeD&zLbݯh0LsoZ6QeqOp3ZwD}_Ls^Z),#00dcY00dc&Z3{Iwz_+a0Fw6BX+=NsL يR`6%.UBJeމ7}@z@bŢxj:U~U$$6fr,u}iN>%θG2ypa:`1[q0:9r =}M!f@\+㢜:ӭ!v70bB 9VX^oNqmEҝOZŻQwmY/,S_X1U\)W`ch )8usۦp5}UV%yDa\U= _DԸa!ূkvA1T/R?BQpusyv_V啣&r:#0]FZ#͗|e0sQGm_E YhJ9Coryʱ)?abmѾRC7+`UTcMof\@|hq\A_\;m0_AF]U^*cR@S5Ix?%K+>:<_)9)W*` LĵgaF<>EwG@"J@w:vk\Ġ/,R$}mPzSknJ V3KWg/g`QB'`Jx!yS5&o8yA`E P>bd.F<\ ˄"q9v'vKki2E B{xҁǃS$hZ\EXr"P!O4I`+l-wկ_c& wUDW{hRpf@/_A_7x _Z0`.꺱r!(|>LjrS\A#OakbS{Pڅ\5ԍ1S?.WqNYA +r%.^ / ܪYgﭖ }>]{JiN褿P-lKh_My */ə5dB 9c`U$nUblV$UJZR}Foe$R@ihFivfќg3` W-_ey0ZpXrr+ cO@Y'p^k):Z|3 `]h)(XxW0 (EJN)th+| A_F=Az uݨ*Uc}^<_Չrs}`fl/թ*(laݶg="{#{kpdKUEˀU|UrP;8V7(S _'dBr. af_aTJDiHx/Wcց_+ѾQU"0e+oޯaP.ʮ\yZv>%ʎ D^)w4 {_^5J\%)ֺ}*ɍW_]Witf34_[}8ʿ.E<~xZH*y3){u4gw 2a9`[ShS8@Io $LMC SaE0/'ԪVb3PQp{UC?K@RڢRB`ynlN@|)$J/éU~b"@\$+'a >HsLSJ7ڕTfS\㏸EO A0) Rd4졅:ﻩFyI'ֈa%o/x 0 hJq-Aڱ=o*.Hen6pRAؒ8+U/xJk_Sy/ V1“!LWTy_P#M3(OBOOK 󾮂ryyGj3??<セ,pxT|>C ][h|Gxinz$y?˔L8Eҟ}WVN 01 ktdo)[}2ܙ8v f)c,4 C D 1|l,FYl~KiT*U-WEʱ5pi;udOvg4:_c a~IQ# gY*Go m5yu|R|]AȞ+M6EQ-xPt/;ox.#štz_yDJ*On+RV*3ƹR oZ\:5O ;ժ,z/*)^jaYrķK_}-螄dۢ<ڂs+81!*,ȱ,!*xC*j羮0' TQw#)ˣ]++fu[@yEUUln[^u s=dƠ+ž;MQ>u2U8#j/iJWUC`S9`H`7J2Lb3DqvQh_)zEVKlgTfwBAMO^UX[23ltg̷0ytu.DmiH|/SqH$H[pw>"S8ƁIv"vh@фVRl3J4m^IpYѪ}RGh Pf˸ث _Ue8QakI*Y_%PQ,TO #KDb-z<&}yTP=iEW`2OWjM+OazG! t(op-CQpX{lKXuMH"Ode֤DS3/W6Ic>%se1$3:= LvݴVϨM@$ "%OM?J+df r`+ zׅgh.@:L9 0I1 ]n &ޣXܾT26)WVyxyFHŠ4V1Oa>x?T T_ ;TrퟀA?v΁aP P^#MWe~U&/+>YFP {#jGZZ%&nMԬ#)icc;KgU>^)lME9o<2eS/fe+sA2HJ/E(VFbD3C>J)FFGMQҚ:=Ą!4ӥ=>:z:uNDS|g4ѩL*x\ B%"?uAzh*mU0!,vUh2:,SN VkMH8b:3xDU*oA>$x"\%DcuKvT޺:ŞG'ȎnܨgX Tcf-V g"0g̩0G^xp/hP.ӨhM@#}m ;V5Ƙ)lZRJ::z悀nGGGFgM[W@SK*na1]J*PU%'Nh x8;ZNtttҔE } B),D5iphHam663!#h'+::i:tZTkLA@(a͘hv! 8>G,s]`J_趒t[˞>m?ԃDC  0 ChdnI!9WGGGGڊAЖPrf4 < Ƴ- _00dcZ00dc[ϋM[J \$Fu*կ^2o[7lQ>*p^Fjێ2KΤѡOȁ686C4w};k7X;)/g`r58cWSXgkOn !\2SMX {O0q0nF1SO|EAg )* x D\fEhuC\؎FF^7R܀S>+<0u}cso>Gڱ$dkf3prۂ=$IWZSU1qMi(9]xJ,03Uw\4:?{ӝU.F4Y1rj~iMO(i`[;;#%WRn}f\ خMb[nDw*At oqD:(?fk}4魃H|)q (R}gQLu &d}GQJku/NhjEK~U秠}G֣NEAlUs˹LW |ҩЬ%ph0BUexII^aCGzP5-cECU g<Vi=H8bd#|%}$,q_ {D{x=^uʪS{Aq9&f;f=pSY: "|h IV1<+sSۙ"3`QW[FƝ=ɓH$<;)tv%AfE+~5< ?~dw ImDvD{!Gzhz?M}x=Wɻ1u|lԍg2ٴoap0)UYiTU0ʙ?x Sa Gq֨,&SѮ㇉-G.fM? 0\$O@Ժȧj6&mw2{yR,deRT_?[W8Pxc eOz0W˳TOy/(z H `ϙj"1`Wd[mFN]9dUhGŠ44#Bd_(d ٥  FCP(5ZAX`1(T5#*NbNҵi[m5־ph`"C-]^#fAƃ"ne9~@.υB9:^ hsKCE#]ScbV IogNQH7}+ O#kuRvbI0٪Z@aS&'tFV]쑿z1]FE6}1b z 0icŸϵϩ*_s죫G0Ǫ/֫w/zPW'Mv 9{j*Yvj/NvO?D g/&PB;k,w;X$ il_ `2$햘זּ^_|xo^OCk,=n)lw`/T\>/c#J|VSS:PFɀK[ P|vb`VDWV/W kϰd)s07c`Ir86u2c93v R k'14s!|GL` )/--rVWK%C&;L"rJ +os[m{e\Sb0*IzvQ Iy?̍fgHWC.2bgٖ^^Iʿk̍{r`v9Lmd 9p5j^=gp!z4YLJU}s$BڹaD=/ ˜4KIw{H򯗁J )!J.%^.z{D53ަ ?t P"; )jV0l|aϒCd6b2h٘ki0q3!]c6:8<$#GG/JvHŵ$#3J-xZlDy=S*eV4iqz˿zZS$mFe k5E`DZ = q $JXh#^6y-+sA7dꙂ+:{7$ P>)  "UB.`..5lHBSBLJxuI}Zif#k E~]_a\*f4쩎|)~Kc~C+G=ĩd!xAՂI9=wx3v@IT$߫2; GKA}OnH .TW7%(xL);iW4q[s<)Y,#ٗ\<ٷ䜵-A0o$L%dXyhq;8RF4 =? *nRVca/Qp%)pRv2*%b.d$W gߕJ(k3^ս:(ŗoRyr_Pp)f>|)Ē lڈC+[Ϸψ!D|~_ڿOf7gN~U%8Zm=< P5-["Cxhԧ;p zxKBPO+_1=&qbı$H@0~HK q|"+h`#v}@f:✶/-jc[+$iPhҹͫAkc$[W"8ٹTbu5*> !nܡty;%b/ wtwb{YtB@5}ml5n[|`rěX5%>#l)L!SI>"U3a3rԍ$Ÿ)~),tTE";~_̾e_fWzVzFOo6!&jo3@7y`1Q[Wgam4&>ryu Х L'olkF)x/AWò`T xZALt ξ/3ٮd1#YH0h !UTR?g24e߶[ض]*plPf 7B%Fq<]wlK6]u\Fn(o;"4G)@^HuFP U~SK1Oi,"`F#ȒXe8BOgR[3hڜtP c|d"ssm}7KQwӛ8)8+nfiF[\JYz Fiq ‡tAL'M(p؈QLsFDC5kO*6 Df[^-ĤB?)C%6t);{Oh2MM{% l뜝%sxx"qP| lE>ψ5XܪGNT+kyŖ/+ʤ 1^L% AM՟ª;3 ͭX aMFeczԣ m9IKy>bD|uUlyh8Y ׈;2H֚zzzt~-T၃N:4N::tѲtLPN:ttҍKSNHЃ[i4OtjRތ\:::tɞ^Hװ&`BGԥ:m  NƏ`=:Z\a$>iq#TrL٣nPbn%(xTV-&h@N!o{~&2r@%pHkӒ>ӅF $ =/c! K2V H_dWb8&EJlOS"XBK*+B%AsS?gi~?x} jm}Uz_%:k:Z,~?~E{Wdd0H/ODZdA\%Twn([k]Q1_iK0hF.xޣd3mGh1SoYz֯/Rшtd$T `H5Z c$m~?WDKq~8U2Q}sf~/_AҤH}JhDvuDHq (keIF*cܝ?B(aJ8*6BS G2 ii:tӧONGL7+- 4>fتk,F3Fv\mjZ:>SM4z)EtiZKkMFFҦ 2u:|DLBO=8:ztJEn0Ch36/0.j[!m5ӄFP2tӯ_[Fdcƺō/XS8dk%2NBtޯLTzpÜ+xBu!෧OGG0oNJuҝ8~0A0;X~:tӧ0ag ªqQ2db00dc[00dc \ ƅ#aW oDlxc$W XQ{ /5},@5OF=@ݶvUN)QϞ}ݼؗt"W pH;#'2'i([S%q(xWRS\>Sido9B+(y7;s4|C0՚5?\̀T 4 G-*U]>eA7 I~P͂60 mᆈ~\(epZجV﻾}%D;\jzX=6B{Ām_ZIأc|1Ͳ(8mO |T^|{o(ք\CQH)A&'n;Esh圀RpߺI# A 3 إQ EV+g>BGjA:c_܀6A8F,1;F]gH+xA |:.T!2T:;2_4%\)GU:1BA Ac^5>&Vx-FA Q+Uyg?[cF >4H)E&ixtGO.3+A|`rA[4a(߭*ՂHT>ı.*$u`Td{7낟 }emJV@;!i(2J/}>أ]E?EE6\m&U9XIV*Mbb`0KQ[Y@zzMӡNSc@G2 G~ =QC;Vܐʥ8p)mI0]$XDpx/ę[DjxwnU]Et>4&q@ VAA fJ.T*h!J}Gh&%0(Ġx˅ئ1U| |q"a)Ȉ. z5 F[7=R }: C~yD~` uV݀d< zڡ `םaCZ/@u M41x 5H ˥bBUCH‘E_8.L ͐L$Ssi7 Wcp0oXá 2K ]`[zYG98H  $P"d5D<>'|0x_ UyQD67?;乐s.H%$VU#ӁuQ,H772=L:ڊ3уa0b;M ݦ ư}Vq= 0I?!hTPh#k`>B*$Ex 5)KCaRKO4&  v#wKM<-bZ,GhTWҢ z nߒ܅/~\Ћ@؏"MWe P>DccP, CAI/zh/Ȫ)Wzaؓ'ıH»>̀2~Ŕ z)j`y!*UABp(˚?ۗ4.T?xH\cxC>{GzVp)6# #;^elQjZ   D2o @|t[D;ش(gB^#GRBeD~^GY-7=2eT:!$ゝ3MX*T|ֶFR۰Sv'bTm/]⼠d QuT"";~mZx|Ut,eEn|)/**h5[&Dwj:@tAJ@Pek?Dj!m"+gE#<1x7 C5Td{m*u#d>0~$Oy$k31š/I<仭&f~N-M*6J9ࡳ` JLت8*@|T@`G,$z)TcS@_͠+ bQx!a?ؚyE0\h@1Lko } P3zt GCG| "~&BduVJvǩJvb!AP R*NWm[&e=&JJ$2U8!T\GWz|Rx1j`/idcJ}[ـ߽&TsU0weMo3R:/BPD`; <[ʱ`|| V6$TOHuJٝd2 m߶#~{eվs_UZ#K8.*P=SBg0]_+V !pQ4DQJbBËL{8 x1Austo)#J*c;Vh1TR: vkwb*%L.m5qХ?o4c5jlm alA DR;`{ DLli<P >BA' A6իn^`te%ggI `tKIZbG͌imZn<@O $֎cČa3>odžpC#zDͷKv@̪lϙ"F@wo(R'X52 ޓC.+`Ennes+R.BTh?z$ p+$gl;Ƣ:ueqb"TL~E!d BL26-T鲀H@~8Bf+4:OƷwe2 ؒ$z&X 0氰֛̓SL^EBf-O Ty/J@y}H+&`ıCdb;m]c;ƍY8Ԅ4O߉^R¯UK,“X>.Y6{ rR=@šuM`},r8aՈfQ̒ 5Z/7@2 fSVzy.!GѢ3/ ˆ;e߅cy:rV, ͈Quz(-k%~Ow,[L}/1Y16 B' Ӈ$_ S P2>'XtN,;]2b]?W'_B UNWg(S!Ue1O?TMmiWHҺ*2;5 +o\>ȪggKo軛4"c_,]("`$ӿhQ0Ȑj*0 3cJ1maSh$F`\ T `ۙ|.x\KLyLYN @A@$A/ϋҦ=vxR y3.F QT_! @Aį(_z}PټH>}7X;_.T>(|>Txh/+y sS[:S|H1䷢@0PC"@^?"J$T]BAUxN((+,% _qP/*9t;R?@ %T@3rYG> ڥ ΅??(꾡He1KSTߠ6[a6T4Xb qht†D$hSq0./RL r!qwĉX`+gC]6He,;pqW&N頧v'~h WayzXDtH6| .5't3Wdhuz2G@RLR\}l):w4ғ(WGʫS<1<K/^2W(wv='&*u 0FP 8n;ћjUX`~.*V$G]b' .%TI (f$^HBP 3FwV^ jd;d t6%TA(+ >$X^ 8=ei@Xi:ʘ>8 eYr "XJKFp(1=j{Wc/RtdRѰռŏTVZ^  @TKV=At @ĬxBA>l}TQ;Ajў6"Z$u5 =}RǭTbİ| I."kjĞP1}da8{|'OV>ɣ`j.ch .&_+qdMS(0V)rG O%uFPb OH(PtQ O߮4[o7MHF#o$ z;*=H!5hȌ)J^0(kPCMBN6A0gZ HA-IhTmۃBtECUPyGK0"IV?/?Gu߽jLJxTHWfQ0ʚM\B '"eԝdbjy5#)V|C/K;**A! YPEs{܉C5U\%P`g Oa 1=n,g^m݄ ;f?(*m͓ b?MYc޼n7F8|  Oǐ#HyUcoí@CIzޚZ~QhXmiQOʪ/iTW~P!&ϖ(;Ms~wW7o>';Z㨧DN+A00 f{FV9::863+$z8t#c+8]O<:..Jt|tϢJ%z]Ѷ)ҝ4F˥x>:R4@mAz˿+Z#1?(_SյGVgw MK#4Ɋᬎh &Zl%K HϏ xe})Kj f eGKaT GGGGBHap$0].NWպ)]5h81$Qsixu,&(z:::8kkiXE$GlBĄDt!tTc"%"4lD.W ' й:::hcH[޶_2$4hC.|-l7ʞ8<#<RQj-a J4mNm db*2! %ư&DILNηyXtuWoAL^ӐCx"0]`ʲ+a00dc\00dcM#]ݔ&\O޳*n292I#R`m!!37\6ϳ%RC ?Y|>pPXD ! P! |%*U\VmNjCGzjMVpJXS 0o@ `.$xK˪PmN*,#oYzՀYjDݰxAF^^^+q8hf ?X_{HY}2<;pku]Oyo$b9xBiBרP[<;ӝ_{uo<w9 8zVxaO&OsCw[#3 )[WWZքZL*r-zr'7BG\34A*k8kg]4,*1s7uU< ?v cd귧nSP lIpK};'#~I&T<(k@\egԱQԩά{U&/pR*4N[^cuMnh1=,>A /վ Dwj^kF b,\;=~؋ROIҢ"0mDxzNw}LFxF CsXO0;I !@ͤW6ƕGÅYU6D`>De]y7_۪)܁B20Վ2QX,plzsڢeN`0K@.^e| HiN;g= _BxHK1(7Xhs"\۳ؿSh"~A@&$>oz)W 1&R0PUJ2(2|_yZJLllAzw|dd?ڦvSgkzQ&VxF_{iz!C q9M: iY;l(SC@ l`u6y R& K Ç&-U'Rpč oֈo6ށ gq-7@2t=`!ET\ Ih}*-m(a:5b;1 数+f#Z7 yڅ;K*]Ip J5S  g aT&׳5nPS0,1w$^.gAqUC>!TDN6^c V/6ޢ07QyM=\,.W/&$5DrߣjbecQ|[AU~Y~lxQt`<"UeVR%@'Jzq\kW]'> *!́*A@-P!..٨UjdA߄@r< NP`3EC1  ,^,+ |R&/:bWbs׫Vt.K /aDT/__GsKɈɪQzj@ɊEr!ZV=d1ތgiЧh/N}0ا! !-:4># 25dDqh, E_]bjUr U8!Q/5WD]VXBH\Η(+{+ Nb/mAGt\y2 F(;Oh`|ʗ5G,wo8#qMo7mJ7pT xpt x^%`?.z R`6!'o`joŘYl=$)bMQ&m{QC%ؤxw q/~ߑ.NȀh Tje x#RyügAQAt < ;'\Pe[!]\_TWg*4J4`[ 9f}PIm}7וO$AMJRA>1AD@+ظS˛N4<*E?b`~y8 `3SG@dcҸOTz6kRYkbVO`!w̪WR~ hg!প$ e@Q3:*ȡM|C`P8zAh ce4~\ $>^]d@KWDoe{@JI;+QlSqP{].txnM!TJhsU }#O$/%hgU2PUd^-#>P4޺3#Q'(2tW`& vTUոQ㆜*>/pOAF~EČ!1ydm8BV A-Z)) ڠrbEd`Ɯ `Hm&mEƃ"#![-*ƵCq]l',.dQ'8Ei8#&5(F.s;ՊT[<꾴/M $BN9]Mp@Gˋ.x5oוⵜPN) 5C=4D'Ri46#ߧe,W99C2\ qihs8Uqkp)D 4>7wU|GnV^9΅Ba|TT*~]|=g:6HhWhR{ѯHiay>̵^Z@A kE'7&ugK ʼgӠO~+6 #L T%eOr2}Ҏ|?32j߶tw4ciE BZYG =:_q!|ZGRbKFeUVUB_ejHiO2NWdUgSNfÒ/JAO>{GTH]XSFm!v,qR\hF9\XxSV#߷oX˟;l Nц+r~;^0x]|#sv'ĢNF4;h pe9QQT*/wach5y4໩g:5Ns&݉k7PۨYNwqGtg(2lqJ12Q' KېB*hBtrQ]\^{-mwVP#1vGj+)r5NkIߐ`s2v|ڍ\k:4Mֺ6%3 F*~~b v9,Yl.S2Z Y%J-g>Y   kBM9ce6;3SfBL`V[y"#0!dknP2}*DdgT8")VP8y4,m>̩eW%ɉ+@H{h}U$J̖}䤃?G\۸:Z4RQZ#\L!(q2:"P~.*+*?ҜdEtAtz@:R5y=7&ȍ{cBog Ճah u`F' UoWF`Dr@GP,&L|[chI <l `<P:\#5o{58mƅLRѰl#''@(",Aa`x \Wu3&bu/4~bc@_qZ1qy:+ b>o#R-\?ٓ%1[9 W>7i1Djچ9( A5x=_*a\;:ʄz~};S<3DT*PdIpN`1[Vϲ:Jc0|<#ciP ȋ f8 "B3&0%VOSQ)D.wGrձqp0}4$ KA09MߎGvp^B}/Ut;U8Jtd=T Km[u)U(1K!)R!=(l|]1d|550p0ɬ*E9Y1 ج^-"DT"_m]Cld&bca+}G^k?*d20ps:@&uQ3M' Dfx5`K5Xji:Оm^<壆^?V!,x7]@;G}$z\\p2*. 6_lq\ 0{ժW"ѿZ@  P< `ٖ}QsJ{QUeS ~BXc%# >=R\0Fixh'Wv슙.USi|.bwXB5J~ҍm bѳBdٕfFLk>{}Bw @Uh'qH-2dwdWuŠ07udGWMaQk|nDC#5PVQ ,dBn{KԉDJUY@w޹vzd{a߁ qt̨qaw3^<t !K*yHWWV PTt';Օo0=X'i|tK. ,SEs;W?SyaT4>c q%,/hfGQ5Qp80?hyJK^hp SA^'3r8vrpjZX{UET 㻫5{Ko];qO~}D€d¶i!0v>p=tGU5"ئJɦ.Vɿ`V?]ܮ̪a&H2}R\%X z|Ew$uRs `_V< Ԡn߃Eu %ĕa+/+Pw" xJ x!ժW&n*}Y?fXL^\ ^$`7h0_Qڿi ?sxiw0 _Z|_=fu@Pg/x }W bWبI $Ro!Z?`2%>?T `?Q~P,T__^r?wx +,PbAia١Y&U}~k | >dd _«Ay|yGR6$~r-pQS|YdoӒρp~;y l)AdіsmOaKHZ 餥| 8Tx"r"GN @v߷% |d捌M) P ǰd-E~DeBTUu6)Dlv]5-@Ҽpoꊊ4w#I(Vjt~iX T ``UC{^X4XJOr>;2?&كjuw"`iީih4vw(`\tLR>8NFGFA1tL5J lz4E_x0کYx|́px f./T<<Eyܫ\.,De~Cn <_{@1*+[ŠJ86,LO!pfxD,`&SLŶJ9G-4@r#m'/Pɻ('eF;JQ`\n#iӣMۜS]ViQ60MyF$1OhfU2(DCv:GJv<}gyO[:QT㸃,J(K fؒb)"~MuI%B0 ӫ h43Htcxl. M.Zg@pDU,H_#p| UcxKa0[M*T*$ƀr,4p83@t7C\"|Pj_Z44]Sv1 MPݞlcTs}8heptEi)hHp*3bv`10}XؐFG&yZsq;䚓Ksl.nDP-{MK#0=eM??VV(ͨ" (  KGpagÃRi2X R0, 4|]#V<* xqurCd!/r<$ F44`(nr0ie.].}{'Lkoi$x eOш3@>eU$uWz;LE#%^@Х(c)(j5OXܭ$ yQ 6'@W&_tVWp|wjUדwB6>1vԐ`+ B],m4(-4FSƆ¹o32\>gpj&Z Fz5xn5Y򳩲烀"#=<|c,QiYܼ{M!vP OF^jDAn/ޛ`OyZ,D:VԱ˜tb18*~U>e^+T5n5ZrX#lO,n''mBfבqơ(jVDp41 zb)%yo8teQptF\H{w200dc]00dc2'hBL !%!: DŽ\ %fg,6!<2ۺj)U`aN䑁 ){a#al&;A 2P8᱅PxfQ( z Է! R~RmWBD9ӂ?M煵r9b>yΪǂ#&hĜ8\u%LuVP2εn,a4O/NӃ>XT7h PDuiaV(is;7F~klm i0J/u?P[0I@+u<=q]+)QcP1PK_tt%)a5\" {reMzJ |ErɜeUR]A5t!(;s!=ܒ?zGQ]_IVEB2ʭЏ-4Dž?0D&I7 :#) 0'=ʆh+iQw/vnV'bJ(֍SQ<ƱGD)٧)搖 6LZyʔ2Rpaw -^J&GxO(31?q/lIh0e3|w0h%~( )ߨRbV069{xZ3GAQ$-BQ{ `{4HJ-j;ʷ#:FSwSVT\r E5h>^dl\7OtJHn՛[Ʌ嵞dCmE*z`f3ht%0fQ ʁ:ٙ,?e[tPDڇ6ĐT% BO˄:T`u_Տ[_ԞU '.I\yp)E+F23MvI ?d6 y3jP#ߠ%˵B[T|)߁J{Q#mSÿu{W_Q%΃h3^%ڧ+#@6Bq]U4{*j+Dr@#h2B J *OQlZo=u)UjCz$ZI?mwmi}'] (XLi{^V}y ?.Zcá0Snlo*F]b>^E.%r g+_P;ᝳ|,L+Ftx@ه]_OjȎUt]vxT0xE<`퓴?%rIbK&&ʈ80'kQ?Jekb=JÉ6 BЉ2l (@шӣC!Uдuek:ٜ_K mp)1to0 W*Xo<f,.MyeI}gG“۪ޤ

    ߠs k?!ܶ`l^sK%8FDx lKeqo4pN>!>GIPfªjR@axXɓ4|'EDž6ﶏ=~_ ꦰ2"UK|J>xخTb:RpnYv e )x; ï󗖠P-%.,7n>q*$Ƈx#N% NXZ [xS tm. uK;.jΟ"o|) x ׅ;pFTuO~K=˴CqCa&KMZ;q5ʺ*9 J٢>=Uƺ]lQWN"^^4I~.6y~<u9g`[ !R {k2ɼ>Hj0ԃdj$[)mx&.CKy’ YMl:DW+bI /<y (I؎ηlEN<2=fM'@XJ>R7P"`3$G<dH.1ՁT4Cd}ڹc*= TIL[,`pYA 2~:KBU|5UF D6!&VR-dxDE BQB 3?*[7'%PXZT9e˦W{ plLƦTxPL7uOoi#<: Qzvw;0$@ 1ad5~ߏ`@d X54tWl4^/Op8qqPIz 2x_o۵.U?.CO8)JExWʢJr(KI)ܱCVݺ{ljY=PxJOgl묦Zv(  ]3}p^ 6oG)%Mߜ{y?9"A8(|:7rԵJ4_T(Vúb^m@鶸W͈d-U )˔VW~!w>ʶO*R"ECW&(e3%/.\ akGP2,]D=! x?`1O˭zS)JU7O k ZnQ` :!L+ ?vҫhOf %vyI-S).6 RE@/JRmꨯw#fbRVXUP]bqh(7GG=z{Rzgwgf*]$V.gR[{),eN3DV+q|Ѱ S?Pms]b0Հ>C\_T~M !,|վ/.Q!yw|U~-]8W`L],NJx(/1N>p:!]5H]&"Sd Yj+:q*|%hRaj?HiJ" HOS:)q8*8V>. ypQyzS"MM=e##V4S UrlT+} Di&j34@JEm5 v=ȩUg,r\ϊ$~42w9'M{"yfQB?jx RV T%h+zJEX0~ʋ%&=Xv zWUUv>Mw!oTO}}xw5ƛ~ŬT$ԇޣϏOH pwB*:vhwP jQzR)ךG<6p6}3@V9Ăql=!kK6í^[ wYqZ O=) (I}zoc\׻er"> K9GIc@O*d{-]q?*s)[hé`΄<5`s4tPY 5+D_@RđNDvH4_/UBp /0EQzQ *O)?6#J-'jP1p^fSl ()Lr+G )B6?JSjFS/tUíE%/חR; >ip4)?Z|[ъ1kA. {@]]E5GLxw@0NZB Az:+MCJU~ ꖕ`2Y"?MWۏ 5L*6EmՎ)y?9KulpTk"kQ>|o V죂1MDTe@Ƃ#F_y,>2% ,:wt>`8o-/ |  ,5pz 9|)ׇ[SG9鼎vR﫰E5kKH"sF}U<2pxSt3w3g!{UW<G$T*zNUٔZ&g#FFP_r-5#O-Ws~Fmg[eJ8rc[~7(Wݝy 6Cf43R\j&x*r{p<MpB3u 8 =1dS!J9>lb="m!d`\E"KăS .SbU&p[tڜوyi]{<Ț;.8"H-50 GUpɠ2cVQ<[0QH0Αԇ^O_Z3vdf\iYؚ8) :R|X(oW<]u푝WJ/S?f+) w✹T; }Uoﲏn, 7o~;&Cy2<$xxձVNPGq[~S};TY,Xrv/;l7P#GUl+RvfEn)"H<6x 88-ÃΚ&41a`ypfnKSIg""Q[)~yj&K\N848knJ5%oz4GGFȵ(Fә,DJ\oMd? 6tM>(< tl !lCӤzr,RȌdtSHfKGAnjȩP8<Ն c h`Á@pW=$#I8!7)`Ō2Qr)BB΃g 1N3 NHƢB$4 3) nIpf e,NHPaK<GZ7Qc-:J RZ13:vNYR`j#kj\6IKtc.fkp"*,6g3ɂBT>W k-}@띚TN}օBa+*1A W˾Q $bBVER'@'GLµH|8ᖅݲ<Է3èRt-T_ƎFzޭ]72d)$= yQvO{ʯ?ZɘOa7O{m8KEXz-Uכ?+ Kmq7"xAk[,4dL[~c朊x!p\ M~uҡ&:2S%Mcq ;h*狙3sAfU^yEق7ʺ:\.UO-;ku(4}mWUケ}X):z `Bp͏?ڣg.MI./TycU*V֕bREO A~ ?`T?tB`RN;̍/0]*/ Lhʩ?z']OQ &/nkIJL%=󋫤gXS{GJwbx3[93F¥C!OZSVn[g8~5` K,$&(7I5E(B0F͕c9=Z֓b#Xs(f6~ W_us -N/ص@ĨQ5(ؕYY͌Mk҂K"J4&/-%q kd߶Ͷ?';Zje~o`r3ĵC_ *R$+VV_n J}\TeR`K"[gĒ^ȔhAUC TE\N.qMR #c%P_⏁dp$dWUq41U*JʭVS6/ JSU|z$|D/#ONrX[96Q& -ywˤR#W_o.ϳ]5MHtd~a0wf"?fG=u4j :!%DsΝEPanԂBGDtck %TSo;[JHDWacZKJpP5qBQe ޘKւN B3ҟ!g2kd_A-DA HcKGެR8 bBQK ك 7kp KUD7k [|~\ ҁ =7I ! TU< :T_ DJU3GZ/D-STTQ|Fm0@Ft\ ՜-˄+Twj+Rn:?g\F.* #il1`!].!,0ATTAl 8MV?ꤞ򼭏{+b^UD?7|~?o*xUcwW&oBևh`pϟ4P颴KdldJV޻v)YTb`T'0;Bf祝2Ae\ ImV^~.U4W@+dXQcb,wipcZ:8#&ɢ4$aZZQvbV揼hlMnqvЈO|WfsGDz0DlH;gH³]q Ş"p63 ={W+bN3nyTD; I.2-*[Q ڃ:KbOJ 3Y֓~Hzf5h^u{o)$%8pȆh p' ip]Mj-oɓpEe\3Uo-GM^$A 󦦭+H4e=52>Qx艥 m T <N8T\7Z\TL9{ѡ77 X={;xMF#EDLQތF!o~W,ܤ˼y>@Ww2℺&`{@V~lޤ%iDZc'I&30pv[iH~]a(ܕ!eܙ镱y5-:AN6!)&\ssguVލ:ł8)X Vx6\d 0β! Jh,1y:fpP'|/aI:SkhZVYÂ#}\cCllEys{J0YnՖ"Riֺ |8;(APg{~QJ$7W#tiNTMNu(LUAXF$$p+CC&rkyPCkK4^zGmͣDvq0|Ltc>uZI;]92sB2Md?j1DyX6jrhU\L8<gp'8D̅\:<28h$  ! *<~p9D94ȹQG(pO3W~:ZhA'|%s3٧3!+xV ۷6eqEϾ+N84Z3v5SF9O^4 Qi#4gj N1h%w)yqfH9uiR3,B}Ah``KF`s0㪘Դha/\ʔ0\y2x+ O4(NxUǣmB8I{EL6m{3 |ndI Wsю%WyRg۞OZίY\V ]?*>۹ (!7dxvv&bb B`|*JYբ;ɰ=jnp̔\{̛>Aρ@d Iʰ{8 @z">āvշ[e9SRaͧc%>gAe/FnmI *fxoyHxڔ2BBx\kϸf6\|V ]MHBī|ȄU :Il9C]`]6c jSҵXV߃zxaN&Kۥ(pnrp3 [ "4O҈u gS%ނ3XVK꥔EUb#Wξup{wCoPJ45{ĝ-G(D& Yn1PR˵zR" ʼ-{D퍇^ v4u6,:mVi~'..C5?D!jS[! @}QբE>TEc8He'@L}5rB&k^5QB&D)-_t"YÒl1R] ?" ]ݫ3j:ʹ:=9GAg#RR {S \37F{g{'furqciU,ߗv>Of]x5mZBLj}<Ʋ9y{J &prSS\ȵVqX)|/^8Xh(JL tXI}]o힔?Mt~uͺ6ϳ|hZX/Yfq͡+ 3i Eh9+܄@VV7Hm&p+r>>ȕx)ĸX2a*3<ۡeJ0 ӽ'4]&; 9/g /8[h7XM9[CbgCq8O X;&ڤg34x`Dmb>`qlΤ2~NЍeOy-RM!#5G)qC9Ʋ: O˯ aѪh0aΒ,- |1c=N }㜚ddK-oTMpV+q~ t_H?Caz wy3'/?Z|Fa_K[jD}ŖjrHY[ʧTNIe/OeQU)˿DJ̽}czх+?ܾZ WMeTN}χ@ѩ0u}2T~Sh/ +:^0o]M:6t::=,*OGtoGӣO[8bJ]/ND7fRN:t1OEzlo'6#ϨAhAtj01'& 57M00V~m *qvFj"!i,zOE6J>0UT*@r̶f2X} IG.&5ȣpp R2%J0f|[?vqeӄ"Ht։bn%𸩿M=+]JtRg(eC<8!ʇHk_k.Vd6r#8WOapbX` Anjfح6cMX=+j``G1BT?ȯx$tKkӫsgCRB)xTuߖ,b4E>=EU/aV{xd=_tȤKU[p7K/bjhMꢿ_/Ue;/6 (2? <۱>btON:-KSV10knl9J=ZC/GOOMGBY*&u9,b= ӥ::OGDt>q#"ھt/)]tKZ`"NS` :GGN40uގO/$o0oONOGӯ8e|*]/'00dcP00dcX#Qw ܒ0}npRѲJ HfM։ !XOwk4@9RŬM2 MWaU0G~L/`+,NA׀ǮwnKNO!y`bsDuY:[꿪3J%/% `Pj'bܻ?QrĪ] |U BW|+3Ͳdf#˪t?VX *\8йTm$48:N_LC"Džok%>1 1<;iT^c|\s vrgRQ(8qןrHr:)osbm*}dO Ӥӓoޤ Iu 99=6S%YTۦOuu`L`}6t @#P>l P>ls* S,YT as7 L/pwRx S񋰤>o:5ϚpҐCkQ8GW5W|\o[{kR>n~Jpdx4Ra#7hi*s8r4rᴶѓ+uFM+2x)ƗG7;ڴ?EcnU8Dd(},܌􂎁MxP"24#Ѝ0VڪӶ ;0얳@EX0߫2")#IS(>Gs@z{S]~dk.&i9t +*~<"1 ]V T)ӫ =Zdn-快3 a.+Xp,!F8ޢi>jv A? zx5 ? l|E(DuVFbyuƟ};NzZŧ7Umg^Д)%/# >V*tw +xXG;3ͅ>U G*nfJ` Y Ju]m &HU鶲MӫUP*8sR!RmaOǩ%p(xp+?RT^ S%IDV{H {tZ=gyD@+3E߱8T{9eW^-"Nlw7v6VV%r1 R|A/7_߷6~i!>7':A.#2|?wE <-z@f&a!ZS]@5 a5sQJb  lT?Wz]I|ʔw4iǁյƳn֦iT ǻ kģ(Ѡ/KAWhdEQ/#?>Е£*c.X휣NVS}?)EPBXoT%|H1_O0)QP_n)mA{rЄ): á*sWX^ wT$_Vzx%w 2OmP]E4۾]TxGjN$~Oh)gv8u >7Wh!(_|3JQQ_Ĕyؒџm7=-fQ>2T+Z)'jdBb鬤7ؽ jh&oAvAOS-Bp4DCc;ȗSx՛U~Ԋh'%:=cЌR+Ao|  #YXT?yT%/V{*AfyOտZ]+uOyJ b֗|Ϻ07[.#UE@0vrA>l< $M%fNj!HZ/\t_䒶q#TdY4y0G`0nEH:pϴ_9Umn.hˁtSk?mD |< ;MgK(#53mbR5똥5}\C܀-@4˴r}@=Sg'I EMdg(q)_*NP, R2 ٍz-9f9q}GP#ƽnBBc | S9&`kF+A8gIrNaX|^Ǯ TUS 3'fagVA/ {~ښoL6=̤= ~ gQ`/G9֕6)mQ= ]o!)21o* ~)% |P`"9wj vz)F(|)/ {˄.(d\\?B$B(%}@@(\w^[GRyUrAr#ݢXڽgF,Q]3eTܠvuL͵C*i3U;ƭ^d=?vZ3Kvϓ8)`pJzXGJ {C 2xE:^QJ=@eƖ8w8)qh=::;=8jg&J־pŠ0_3 *Vܢ/kbR#}TƔIC1W]ǣG7Ud&[mm4 43M2s\윁ӠA %T\m%^>߶D'pzC堬OSe@]MocX_=|UbX4B@T@}GZ>///w䜤@_2P+K(-n$=dj˟g.9Pף0%$ r1*u@6#L0(< */V\? V._*nr/T^ޱWv>:g*@;qӁH+ \h_*_Z~ѫcp8ƟW o8NT N`/V^.Nv e{(I[i=1,Q٭6Dw>#&2H*"Upuj;:'($_iT]0WmIIl @ĠCW {Hʥ_g+V\%ƙfUR}XIVն2mM^:|B/[ ;˹goLFo78H73gq.tdJ;ț82{\>*+ N<:C\)} }Z'4e"%x"p_b*JOqWҎ)K|P @Q6)P =?]J˕Qp1@ulQ=Iw0RXˤVe&J"=*ъ5=A6pT8BU]N빷ܹrvpժW?UEŘ:^%A wU&@+_KAOu,[OW'E+o0KT!S, |da De兦S}'#2E: &'/gei։s}r_J~׬tZ>~w"IӧO>mWљ YY=gzdBI%ٺL0f3qcB3o-u٦Ynѭ%NHZ`{Lx( %εQkus' ,L`BHYDc&̓ⷣ ISA"pHdl贑xSw-4XZ5 H"]>")d}3#'IA+AUNk_O(͋׭1iJhH !`HJaa"4Cۋ bbZ& |Dڶ{B:#1Z ˥ۋbmFxfIj+vQRJB{a2z'f#iޑ:Z번1UvڤEe&d>xg㏌Yz${uu3QX>_7nsaQow}@j^w׼ʡX) { ft' `$\4Rn`|%T3 Kfԧ 1p($0(|)|cQB`xH˩/rX?₝c\Ftl7TJyuBI'xܰ+N:l[kLi3bF m @+$²\ыgXapu4^]j["cj}lJ/P0DU;)]fҜ>|Rvme,Nڵ`jYrx!?+TeM}hy7i$\ UCX%j˔&D# ѻjD`UacR =e0!!(M_^5nl*V>T`/;aO<~L` >$,o*PIJ _*mҥ/y{7tEt*(X\O"p)cR}lѧ廳!´Լ+@Ъݦ0iA0݀cRUxD6"nn&ƈ^ FIZK4G Jiv`{3"*eէORS%;.[Ҟn3cQߕjS niңL'cF7 `t (څƎ0F*-ݓ[XMH!E~\\;1jh4`~ %)Xzdsmߥ|x^|DWJR2%Z٦.X)|<}Tbށ'2 TI8Lr f )&@}FztpP$jP+r) =I H&𢻃Qpn(OUw3_aYqk9l1-_QsԬLAvKQaī;pܩEȓ&s25XC1N8!E`!XYt3@ F,r'؟m KeL!8>ĥdM1eImԒ ylE sPCi$8T-8f[60DFLuI"^Ħ\z;\kPϹ=d7BN6Mk$K*jQ^ -CF5BaTt X[r:LT"oi2N,{jWt*rn]T*[nSEWIQc*0J~NG-= v֋E D$M4\93m+p."@5:@06aNx|[2'78,(\d6,-J`=N&eNciLy;ЪMRʀ.Kh_J .1aIW}Ypl7IgWn00?oCml^Xγ,E5UG3k x8/200dcQ00dc3 R㘣s(F@L_ʤpjT<9eӇ0¿ai :%Sﮏ~uQQ \(#(Qy _E$L#\H(T!O ~m_`s2 f`R5eΡpTB}UTw fO'>=RqꜾXOa&ty=> VgQt*g0O888˄I Z![3)Qnps(}ϏL`!ޝ]'o0.Ћx rQ1 V,sUh` ߁@dT7T X>o0ĖA|KOBB6='ﻺy}[2$d.P4j2819{,u,*\*23F@pdRB3s`l+RGol>\BN(qg< uޕAXm: բxHÌ%5 aAOq}Ur|!?.K%:Le4CR<ͪrLstQK(SSҧyG戕\␧b ZSrdUC |vS/bLhl%ܘ3Lx)2JQlؘuVdWz=WKnO0^ -|^?{/uHO3%@1@UQhc^%!e߱h]vV.3;DiEJ4ݳc:3;u$uz|b]_uC`v Kz.WwC!?D`$TbDxdԸ‰̺yYb'e/ M-_#PuƄ+p|ڀ$=Dms}=Z*03V91,i b|h~TjYG3Xd$=?u46)I *ܹ'XAx#[+Y&~68GR[EC0ʖXW.Ҕq^U<.>%֩i JlYKEI5"(p>//b+0?m']C"_oxv"UjX+3Շo:2mCԎ(ԗўS.PdVCSU>J3PmvXUR]7$TXp(VM޽R2V `/U R4%NJs;M%%(m=  JJ](>\?<^2Kǘ ~PX 6u:A?v(?/uC%`"_J,yJ?ۭ0g?-jT B@)@'Z$Kz *i*XeD9O(?$Qab_1]/'zw>M$+ɥu2gYJk!AqݢY}dT\K9ŃA}V "RAqp)Wʊ,Kq  UN sF  @pq8{2{oQ~?|}6GʗNH;Jԃ[K}WЏ>b(ܼK>/W 3M8xSsOH8e1$7iɂ=g}LjwحMX5UAd 0d#n *!vǸ՗*+W(Ω/z_׿D""/Ġ*Β0xr7 -UKF@z>G\pJVPRyb/*V^yW }=6⯗s=qЕn#p% / 0˿*Ja}*{ܟO6vY劰b(Ǘ:[_%I7}{b+sSc]2I8.!N6 ;m?A`#{ !f w˪E*ՁI`p1p ^?W>$ #V-|/'r`shzJV_VZD#T෡yp!X_~[yLIP%pKt  TBX,OPi->63ݞё5eo]CUU U3jX5|#f%>ܡF5UwI!AX,Q9({@3^L^@5d()tىoF*9ԖvpS_d'M.co/L"XFSkيƅõ>c*H|ir &VQG]O2 0R7PWs92~pR&%ܘ%j(⅓{5UfFsõ*S=Mfr~xJٞZnjIؑ;O+P"| Y3DNeMF֩Mʇ"ղ ) T>V_?K t9w2;CCS7}ojv :3:xF87#.GH~oSW +pT;%H`*#ʅ˦;K`L/!Jvo=8)KhIKhw>[mGfᣩ̉hWPxZ_C'&jG&@*xuX*)֞ +r\>ث)cxï[l4Z7_dP |rO}.`qO3i9ɍCkOpS/4Թ?.tVQ)VªWW'j#Q7,k +`w%HSjT̈'O:V3|Wn-<='/sD5O?͞y"*U^IoRQ'nUWPfY ednMR9:萶 cYDrѝh]oOxA-6%׌¥nQ cP"KQ5+,qykq36Ą-eHZ~5Q<.vj Wj&1 }} T`}{ #;V0%Z#}l 1ٷ/X߯>ֿ//>BXyUU%30FO6&#MbɓYNQCyGB-7[mcS q"HtsP%2m$B i:=r^$B)vg i!ϗ:EC!LQ8B㽕D(\-"`=~F˘l &'ic>IK4$mܿGJSӣd-G]8 C#D ,a@9 B?+T0^hd} zUOEI2)G cOƆS2=HN,8-j @jQȘ(i+0Zǔ ,8wϖtĨNiaxdt'"Jhr5("@%) q3q0Ɩݓy5LXH^%*](b/ A _}g j9.CO@cSLDt" o[+iO|j2|{@/bef ki3y-9z !Z~uj dv>5 Pϖ:`, y;:&(˿2 @4|KV! +)\wvދcd~ᆾ..kT*U\J}7{ćGĕjpz)>U#^ʯ[ E'+U]/J閌FR`pfÊ%Aa C'OE!A -8RtkCxH52|'h"3bveG {10ivC k1ɪ7[<8U>[``}l(AI y*I󚖦35yX7{Aȁ4F)Hz"pP3 "!8șqN j ^y -oZgtJO9Zt?G*,d-vTLGdې4yS3"J|b]F.i S觡k0aHD2 :P lQxZm(jH=/u/ʺ_`ca0X߾Q}r.oVQsN=ߪ|iG١q`f0;W။RИc1p>yΓL=Zh_wJ[:[b@|Wk!9"F 0rءύ5oualIƺCz+1)e!A&(&R\|%e"dV3@¡{[MӦ&:P0$!c$;JæcA*1z3lmI! 9 )yCmd0OjbtW~%@a@Gy@OR9\֤#e-Ϛ2@'mi ٓ+(4+V.v3.X9<>nؗAh8Rf01S浩FzfZuc(]b7ș`Kƫo-{8-*rA݌i荫=QOR`[B~f!^if3;w)ݬdd{ڕ oZgBنq󣥆\[DwG CA&̌LW/g,a K8D H:ٍn#7F휾SVA0o]'w+b $1Bx~᝴^d:Е_00dcR00dcSόӮp}Wq $?SE'3N&zF"i|}G Ui\l8mƆ3BGĭR%بyG5TQxue/N"Dfs4GOdrq %ɑ-S}r'&FvSeTA42Li=luw"ȦW4Sb!%7Aśs [q-jPd>deibjH[겛u.c&7cix.xðuy)8f泯>yW; }lpk=7 =q(7[3fnpoc% N@* .[ 96'.ips>=gUn60XZ3h`2a[kAꁐXT0|"M3K %@/mE'M& +DtaF *!mϾ._wC):}l6 ) + j\Eɤvf\᜔7U;Wqr2fZR{#δ\ =X|)f 5np.~tOOfUiɐ,nqվ-ۇvyH~>oIA)pl*\R(m`Ta@a}{&4aS@iExx[5(8)쥀T_H1QtKlWdUk-}N7sQn4Dy9ZB0| @br'[ *XEvئJNP{q>}GN}BړFd%Sғp`~0fm4U`HA+ zhQ{J|ݙs@sm^L`u 0)V(IorMF9|>2'lObG@<'bV!B6[QiSjV$fT|b%SC#; #Fz j&. u U4uüBUx!M" o!{=`TIȗEZ.-B`QF-%;Hel>& JijEI_ XwDF5T-e z8 6\` uJV!.T@bT-. 7}t"W?m:|ʶUJe>M ,guDF6H_E#5L\FB7@i[oE2r":`uU_7V*b9!Q6#ͮ>\?g(jڔTNzNIy("%E0aCn}Z'l:1; un5&3R O@L^BY @C[_xTֺJD&%WRG@asTSaMɬx_J|KuWw1yf9%䟜έv HgI@0X >>}/ *'t:৏|G>P![Y]>b .Qe |EW@=g@bTҿE(^Ge*:ESet]KBQGPO&['꿩gSiLt/ |m`R~elڟxv)յ?*K_͍]"nnH:& w "lƳ!HH > k3yOV+͗{?(]VPAubebN9BԺXK\F޲#m4 9dz.!T$u:"4r:elwRYc3ۋ '/v'P(1aϫ_1J/t (|P(sK|E_#.Wk@/!uBB9u`C߁: %BB7 c#֎I?X72rqoFl\?K.JyѸu_'5o?>˒:` m~ڸNy/.zsI1hZ-^ss9]F @lV&i-w㘇mScZ 5fNջH>OꣅV؃?j$yT+ O@Z$FT~6¯{UڷU3xx$^5ԝQ-;Mm!m$mR>oY¹͈7l¼^M$y> l6]SSݱZ"; ^J%F"MTj ^$pB%*@6?Uo>_`8Z;T\# a5>*/ʫx .9wc++QSE@#3dN/R5a|'x"jw^حC}mmwZ&}xS/`եG`d%jGE^%<ŞD錔J"ɝOh7Vz\On2BwdT:TU8ΑUjK_d2I:oZ+b&_um=* |MTg5*v7ģp:{vƻ4R M~*2Aw\I<,L3I--dkuDzt Kb{j-= m  iUr(T>ԛUZx;/ qZ|.;vUFT̪LRV> _~#0@1QSPZm݀Q{s%/CzBm$2_JJVPll؞qţI4z?]껽|X=J:3YɶMof`pP5J^Ž(`5SI˜q` 0`0("e}]Ucju<%P ĠoBApp??xx|^TE%BZP%2GAi e /I"똯֣R%UՆ[՜67`ӎS7)͈c'3KMU$W_*)aaˁ!={9ܸdy\]3AKUO{^j HZ#jAKJ @ߠE˳ʼ<Si W> Z!9# zSao`pjB+KCo9:QΚ):d"18(X|<7yTָѫZ϶Juɚ\^/)x\Ęuɇ "ʯ@ENBs'lSHBpb H]< W#=%+>ʪrdW )3l}ߎ圛uv^yͶZ G p|?3b*D/pe.E?Z H6(|FUYuu+^W&7$,`HU96^_, ˞Bݕu:sڧK_^v B!r.3dB4^=+bJOq4=%Vˇ~{IDʅ#;1>گDeH-ߌ$L/GQҩ$!ٌ @^D"qEURH3zk%C/;0hIU) &D~4ӦzcbW2f镧F$Tt ).uXյful"k{{}UU%ks`%E{L q[0D#X Nrỿo[ьUg:hSpОAz!6 -35*TmeJ~5Ԅh%-SsfԱS_߱=u/+/_KߎeLu+~g1ʔfAһsTU9*ǥUܠ6'vkH'C iUrs{QyW>.aR&~ҵQN(^ptGS7c1xr}ZM7s zr͍T%԰ʽKU^ = ~@* |]hfY8ZP zAypX90y MV*a[tNʫ8Ab#vjq|?'$HxFԌj@=꒫!2M0Dq-\aT@ʵPb:~c##`^zy45fkQpX L<>ǜ|Em@;OF TL.LHM"WRF"#VբE[4T/ WͥPWc~Ķd(ݝQJҨ+>|.Y1]p8Fxz^;@*zAʦ`w/+ώ˿:F>m>;|OlFH#Qz9G:<&Ǥ6y5OnwLj'<CiERۗw Q"vk2H? #\'#ҝ J7CF@wE>D/0`ފ,%.M?OJ7Z=::7EzQA 0)YsF)J==:4GGGE(Ʀj)GE v0Xr:::8Ť5u *\ ikҔ  RtzhB/u$*Á\dGV .ßS ΘhNʊP [2ѨZLÁd |Axɢ* bHC/@%*5Vs@JT0N6̣͟ )G ig  >s0!ޔ\ԛQ(`.RO `NDn/Xa07=a?U>0 G#r pt ԽCJ7(yhbHj'iEqx`d|#_4p^ɚdFlW[/x!2~W!"tVXXRj*| %U>̔@y*ǷIQ.ɾ]P+L_ϸH:GX?ttZWI?#lC4 CbQ1b&'E84 ::GE)ӥ"t^l@ 3b\vDz,!-z7{"H A!tӧNAGk4.0]I [FAccgiӐYFyjgB%::rAQsdj::::h:xiӝb&$azzJVXxb*RPgZQOm GWǽ!1GLC~'G"׋زrDlN>.c(N@\e< -<7qo00dcS00dcuTm)蠲$$H~|>$M۫|COt}Q׶5=nE}fXF>+/fOp >m*Ous8c#4y=hC&;gWs3S1(YݗeR:QDAJT+k`2K]BO<3OU|>lyU+RmTFFS[d'0*zf\}>!zJuq-#`pR65'F4vA4op^ *dO78M}+ (0 <>ŸF&uɽncƩ P }<J +Ӵw뙏N>[Ӆb3@Ck9d{A31PHu8X (}}ޘɝF[J#2WU QNψ +*{7`Ƨ§σ$2QڹQ2 Whi^4mER; I1+aZѧ>g5T-C֩T^[*-j`#b٪Esoeɱ%P3袚6DR_Ił?yBBǔkx>]mT;.lT]΍3[6>7@p1Pf-PoPMO}aUr(W%xhb&޼Akc2~6>R"[DPǗ kptOs+.V & W%o,PuA V@/)vh`>Z}>ֵ/of0RW6۬ Ÿ&/8;>>#*pw\"a4J̀G Y$ v]ܭQ_>ݽ__r=ohf;ٙUHLB4j{Q&Q;m0JE:b5r9< s }N<Sa R"S[Ʌ(1!J3N޴O_Ɋ]7 bQUoOk'BhԞ8sh ĴgpĮ Ԭ*\'-[ ! x?FyVˍY=]` ?eQ-r$ ,P| C@NrR c4 K^UT,YVoB{*.qw^1ȹd# vv33V)T?VA'ZOT7osy ?v g*<ر>2Mb0?NJ@5]ќeȄl 3B=rεTgڕeYz@OV]OQP}*%_nLM&[ߢEc҃(0X0AV^~ٍONU*@^Mvwpʂτ"*VQ%]P0W\%$H # 5(@Q^Qe=D|l.+WUTg.#@!7\q&v| İ"EξNDg裂= ^0RtG1fw ^FT%ʬSU움Qj?F Cp *Vg][]\.';p)"#}Bpu"\50\ xatKPfd}gvgCde[c_7L ajf޷q "iMA^@%,BOEMfk+-0& !T(Eo[l=^Lw,XE"$Bh8Kt.%z@aSs1RgC4JG6O-'Y? 1K'WuLE' !+ʌM/xR  H?Y@ax)?! >T#0"6dw܀st4'i_~(d!l%Nta5h$MNגFV+92jA\lk60!4\-uPڱ{0.1K& K-m?9& &ڽ|O 4'BTc,g 볌D] B:P.Wd d;.UygHB+I&d̿ E;eΔ5nh)Q.~S';>\+}tayX2OK'Ȥd$ `ʖGkCoʅ}gTŇT)J ߞPE]nڙP0]݉)c’Ǩ00Օx Ҁgv))u `Pn#tyJX.mR%R+~ /RH}0`(=-TWD}OKߏj'?!yN<+ڤz\U_S|]ϰ7{X$T;yDk>#W)M:ǯH-JfH`e a|/:ޮڗ3YŸznl!pr=2H">:wI@^e^ŸztwEZc͟O,Fl?PukضWAâ4zlpo1-ZQT^Y@В^ 7Ef(lK3{68iC#C%:< 8 jom,D|@bI˜v2^Y( C`>ԉޭe❲mnP,">HTl  -I\ݟՆXFp< ?ڐ~'?۪p!@4|jb{証o*g86&>NE|xƵ}ңd< cF!-i*Vʄ_Lz9s $υP]1v5|Wa?*pvq~@f {EERUw^+_-?MoxzX*? 1m& [>]w&&%Ar=XO*W>\lzk X" pLsg5V̀w+aK.B˞6#>cŞWXD7TxIǶ7#5ɶѨڴ]./g6!=<QjXQmAHM%k4 vD*T|Dډߊ..Z?Ձ 5f@|>V\$w˕5ʘ%3hZꬠBlf 2oG#tcOPCF}YjtBa58pOL3]%.~K)/"R\ 1mP37mK.?%|hy7 ~ 1Z_+9T~ܘ~IO] c*jg4RJgGTEDO[./^UU8luʖG(YDo@U :{Cd_F,[='T~)'dad~=.'R^SɳPtV@mL#63\9ŧoyGrrd}6Z|eG/sq 's!՜ݵ}5L(RR u=.]c1 }f7fJT+0Y]Xh4xx?_Vw{'HO1B!QJHjYl#i\ PrW1q CG/ R "A..m_.CQzZ2SWҫIv;N &Ƣ@z`]yzU~;)e!.I6e34u<%jگO4Ԓߪ`(guGSu!!M%)g[lu!_jWa o'Y93q1H:3|N:m)qp!6peP"߁#U~U2?VIǫb.I{6̌uPQe23-ьܶ1fDʮAR/#/c&/*ܮOCqބuG)_FRi0[}% 5@**g5EJlcXF ͍C4e2H+N:tҔjtӧGK0J!H+ICH' C(Ӣ̊QӧK2=4JQԥ)T:tt::t,:l84 , *fzR:zSKRPB#'Q:tdJSZZ8L`NH:ZL%$B&J (HA& L[AP^L'-,t1!GӧN&PBK,IV ݿZ%KOP-b%'D_Z&kE3 "BCODH"Ƒ ꧕wVN?_M/ҎvӄFx20BaJjާ\ h"PgoRj] CMGiLqi`]u2 0IÃkB1Gm?b[GNhly, ngrKŔ C޶#P˔xP)xҗ)W%0aeϺO9OW.7uߞt`G2tAʆ.Fijp1FÃTh:D KkѩC CMfӴ' P]KQuG2SAҡFQC? D7;>ب>]?ऀgzR|VҶ; 2Tb_tm/.ap6wӺhSEWznf'wC/`7n,|EVLSݶ>Na_h/Fa-]3(M;:#u5HsM=S_EhGO:!yDLKr!ҥ0 uҵD ƴ!.  vLHy'0E A#K۫B!,!$Fa( bP6{!BV> ڠ[9)FldWBD)Z$#5e'C2l~1aQ*.X1sI #d=~Z nKR b,JIAe9Ŭ#* .U9D)ȾGN<ƕ wx0I `j=uZF??A ~X6+y}9jz 2amX%_"Ap% S(!QiP˖~1L]]VNPx+2w> df&tfW0ѽ+?rz]@G(`P|\LM#~:PjZH/ pMm:sklf FQxTMۄy!0T '0Dab1X#oQzшV!:0%1Wd% Hnts*e۷YbӶj$'V%` 'JOp\ ]u6IS@[W;Ҫth xɬ7`GX#Prf𦣐. !ZIf`>̓: }N7/L:k.p>ߣ\,sFBa FDN+,j{j]|w}d d[iIL,> qi(' 61~2- VoZKI;7JT&%=n.no #Td4 ƫv'Dzʼni*чs8O :%#)D+Hպu>QaT}8@@'s\@xCHo_l@wwoNNbE {*@ўg#JGmp)0^0rh_O-r@43:s8H We0hP4)+ \_ Z>d(ðC- Ʃ>-$ WJ2ԃ +X3%ZZp*exoC65rp=00dc:'VYT7:4vǣZFJN*/,ҦeE#;S9:yZM]6/LO0Ms(0ۃWRP)ycQ )`ZQ \k+ 'ln]rlP:T_7"T{<د3(^xᡘW1rSb'Ls¨vxFN&1&4OEq>ƒX1 ĩH,:"IyXnX 5*|CޱGp HlcqXAvƴC:wM'>,: 7)pPXG"|G]3yƬSR&O|f3~16F5=Sc/޸giҔQ``>g{0$b 6٣j-mN= _<{ƇEi x_=#>Y)qR+yԬx )ܞ|]-)bJ/#B /S"9c@ǐ9Èк&{o'}F]to(L;|Z E:B֔q!o8 q`UPb0U!̀*BhzI)?2Rb0HHC Ƕ};=a6&'}lg*"7Z~C.Qo3 41 }]oSp)]B+NIإ^J ۘ#݌" ??yb\h)"5&4sڧKANT K{L5hNt}`) PanQ AW\ MPt(#1&Y:9 i8y$RLʀBnXKVJ~F%?#*][Q/UtRa֙' wl|Z,2c/}6K:CցD?B><- FS٫w" QYtGK5?s(E0F o>x)*jgZjǪO=H#*sֵMi~uK?paʋk׫j7Fd\SR<Y= aa^x)U5tSUڮeRgTO{3t).QQ oJ[ƽS zlx)E˩r@̲ #J%E@ב$F8\>b̷OlUbUNfeB18B%Ru[{hd|)(.(/u<.U͠U8L\=ͣ)>̀}?GUA Z #Ÿj{-]/HA,|Z:0"zUkoS?*<ؙ u{§ Heb_A |TV+T K@tQm.wDY97ɴ6pz>DҨFx{k &px~l$WIѠ({(.?s灊ߦKeqE)W]߇\j΂v>L|):"feDGkjc4ugƉvG Dr`;A xS7 \K|]%U?~y.NV ,GUw=7bT [|;;](76AsIaYWOﱦEvY&ykus+tF AN`0ܴq7BlIǴ]rU?V%[^%ʊH)>$[T;"9qmS3\?M+Sk;`8dZ]k&&JB@DaT€ QzͰ?!&쇎 &*1x j d)@Uc 0!}@/!Q|fPADOx$a }at#<*!yM퀆n?w3C W%$e"\eLD-)z{~vL<< *KXj^*={k̠͏U|SEe~?eK>ґ J/7 J﷠aJ'~?A碞Om9TU};dV$VԷFo[QmYunS{=S`gx?C?G.oa&VSDcٽ?J#K&l)1Fik[)2p2kUqSm}M9.sXv) ZVyf_`DQ26ձ}8p'<oQY[ڶޫhGC7lS=jc.+ FI ɸ?Zm),.݃%SMNzeeG@1_wR @ B?{H%6f'ScC||ufoU|u1~$@Xd483t҃r_Vc_qu*X:cF |lG2J>$~خ|MQ>.*U7!?0!Oej~tF=ͽ6>dIg?'`қc Uỳ@[jST4zM:>)^ģCoR}bQ"qrx[ jv|:f5*N;萱1I ΅1s>7'"|}ÿ<_cJCV=xF+V߬9}Wx8<) z+P]"_/;IEZ7WzL"+3g⟈1j wr/SDUz4bZqյ`ɍ.K?f}ͬinvUmA01FrZ{2{tV@1Ddw_FFpVpB}sMZ?W.`l۵ tpuO|N?v-]~<)"أA͟$ "(!k$sJ:pSSMSJACg?UV0{STKT_dO:j3oGx xhRC34bv5.Pn UJyw7[i!~cIpRZ(> +x3FN`焧|U۷ {dt ;vc>\_+fQkL5vb'(@[ňE\%I4Y{D2rZ0ju %8#9b tH*i.^vh-hPSUcytLU@Ғʋ UzFʀ6 u9j~: jE`h QB`)Y2#qz|y>|GUc K8gid;pSUV"$VvA3^RR꾩$5_=77$MA4ikSvP9K%3% @bTg燊l^YW}[c>[]cȽ,,44N(PbgwjxA$IՉBR-W=}\f]D5P}֢;h@*`;ΌĪ%MS:jgթ{Χ&.@;+lC1(][z.:aYMc~tWG5$8Z1?TR\05C iєzhW.<=U>Qx#\g?9Qs>>gVޑ̛7Mt)>\ح__ϩV=S?| 0{ɺ|S/mz+৩ =خ#7(UwOgvֺڌJެB"'q[n5?Wy<\Xbn̞ zЋTb3bϳ)9d +͏薜վ4vCɂ#ěXG<@eKԵkRǪǴ~?S&~V?/ՏXWKXƜ (kIw2GJoOnF3+DT3*6T=#y MqT~8"r\>1 )3KO#:,m2?[ u SF!3*[Q KFπ=KG,M>~~.V%p3j.־_orD'(n諸b}ES tR4B@ZKޙQov cA1= {>A>*(o{ D"ӟ OElbܵ%O wm(/j(Upl:eG\1`4c](B{mfw˩?2O>#0"s9٭L)ڎNA}nح[^~ HXU呭nUYhE/O*C4퐌a_JSI#RDk6H Q+FCAD0 E$`c`ul[:k;e e&<]t}.Wg3U65ؼiخcŬ BnQ~ qW˳*y8PNy@ʼM[27h ('i~h\K ab`PUf"8pg+{hP^]_h0*W5~S"Զu+ڀj zJ&Q7mSG&vFUL֭JnW,(֚W>z0zSghKVB35)64AÁ٦"H f{8 #ZDJ75L <4L+GU&Ό9P?@E9APsɆv-*~E//"EHuC0Z@5&xT[Ofı%ZU(dWۊbR[8I%_:3&3 ygp  gѮl\1ӡCT{S !]T 7#&?}TrnK(hx܍)3/jVq^p H\3DQ橳6`$K.dr5x~i9݀%vs 4j<.8V<<]'a72\ Lh..}֢ѫfVk#зs5 qxlxMi 1l6Ye:t|dciX@F΄&tN&VO.$<̈yu4I{Ȃ>~Xkav<. {7niÍy~ȴ%w;5pE$-}xzGnXxVfhxZD #S 7. @p)h2FN"L?*o #8[^]v32;>Υ^,9%zp0BJ&Zyڂ\# Hb/Zd ~=a⇙[']ޛ%{?ȢL^agZU(ܛqWX3l7yvV|S7$N#cef$lWod?ɬyꄹz)G^Ճ+r_m 6>j$S+U _=T_g]_d|¿V\ 0 ?lFv+ \0jov1m5k[oe8Í/qI|Eo1_ Y&[x9OIed)A¢ʚ÷QD /3qua])#3qda.a[n7R6qdv@ksܠFJOFK,8҈GiţlfP`?iWOze,^fuKhnltDiγ»kbagޓް*ַ/wo ]f>ӀKGGj'ى.D>j7EMIHv D|sܻ i2ȓlwmi ǾIT{#H%*RҒߎ骪nͨM_QlbX|}c:[xyTV:`"h?@a(HWUpzI˾^xxԪ_ʷJW;N*j2:w5V!9OS&s(*W}gc,AHoz/^ZѝaoJ "#RvmA1(cߙsƒP`E`΁cSZ~kSjp0:5E7fvn՜iDbM +p?XO.ڲdx-@go0CR\=8PYiϏ:뭠V2ikG&]Ns2NhVU 45,49O lsqYpӌIslZȴ2RB976`3D3ʗM4 @3:?}RNe.)-{'^=& a0%ȽA6ypqHBeGѠ%Ȥ!T`րeى4JS".+}GI1y+ʦpu϶3wRX}l%8gHKfLBrޣؓFO FCO Ldt !t A#P}z 9$Xu^3@B`igAKwF24Qz&5_Cj ɝ?C\ve }d.+L"~ $>`4$jR lw[:0F \gQjG?SEWVWC Ç4u2PRB 1EBd{ `#xL6Vo{Gcc;}8ZV/5(Ycns*JߋC+k리a\0:`|meH~0ơ?Yƭky6xX+WW}Lգ]5f]f4zԥʿ#Ya0p%c)zmg @}jmn-=[FMb/45.\nEuۿ)aW[S} 冮}dX̬b%# Ʒc#@o%>pZpuhh:HSuùܢu@ULt+'V?eI ֒Liͬu1[\#g8:u!MXPޤvASb&'0?>nL~ksx-y\gW/ oݗ\#췷6qT5+ vl)s}5}鑹蘌lzǏXon!1Bh8(! BF{ɷW;R"ZJ}'|4'Ͷ-+_0jiRƀ(><(f#Fz @x TFF 3'x ޶]*tƭ!53qZ臨!sѴMZpzv{ֿ"v&8F2,Yũ'877*J̱u'RryjߛN3ZLMVe+@|',IXc%caPw@d%J3;twb9U3Y+'V<Q:H%:<00dcVY00dcWSb#:t%yԾ Ֆ, ~`otDKtYwyN>ůmi HzHnplu"cCIБ}u^ *.\ JTiZSOb3@/}UsE#vsM);キc|)}KϟDA)Aaa y4 t ̀$` pRecýZjKa\G;`XҐg#+sj5+\ Qܯ_r|MsJ!SRm \b3pOX_tإ= bUsD}iu ~ֳ~^|U>F9. ǸbF#“|HT%fmgW*YAyc9|{/sBY*/<,޶xF;YuJG`áOtDg:[ ): / C!ά0ma %Ud{3*ƂDsEڶ_t_@L5c-wyZR?:p)%1SV 6W>Nm٩mO qbkhԍOPR-Ttȃ5hFQqGQX-R[^?P`וګt_m*Utq:_/*k9/Éӓa7;#SI7j +X!/f%d1nQw9UJ0<$ SZOn>v>]b85dx$eXH.F3kU<~7/+HC.kأM5.q6{"}TA@l(8qVŹajP}jjo(]uu j*Ti"|,0:>cޚ <+mk^ zXD5W@R| v?=vkՑ.Py%>$dobQ,J佾,-_Z,<4 KeCJ^.;d Q d?.Oc~ͶYcS h01xĈ<0oLyf`wu"y5yV# YPdfòRSNBlŁD@\ց v*ms/r]ۭ!?TLB9P¹AOG%V*j4\ّ!z{CֈXA.z|g'8si;"+#VӋQӗy_+;|n.hF%HG`_ȋšawH܉kfpׅ0t *h$F B^&"SÂ6bsJE0T'UFkDLxS<N R?B)ѯHAȳ'HoKK@Pj\Twd)5j AiXʺA{D1OWG )_Uy۰ K%U1EvG1\_x#P;&xzm}JB<Y⸪+/Wl꯱DiT_Qt \=n V 0pw`c%ޟ{!K8 osj\k؞JsmGUB\]OLitj?SUk/!*eELԩ.` H󏚉y}KJ=@=>;XNU=xLbjG>R= ;lqLvhZ2l/![@=@??tOٔ(_`0#tuP)M7UrK745Q!Vhg%ˉͦY 3{# *$M(1[I\^^%?:"X4<%7Lo:՛Fćs^x(ȃ-?_L$knӣ@҄w ,7U.43bWq? z'g\thXw (*ڝ>繤ϒSG龭ƫ@aq.[w-] *}ul#OUR |Įm0Ot[;d>iPb`)lPPSJzflQT %o,C>jBHhKl'MG h-a}>/:2x덡PсQi#axfGH/@+tǴFtjg}Df`G^%,US.<=Y? MisNzjԞY g F?..h!aH#|<>1r%0n+(NL&Xe͔Q{IW8TE*XEBBԱOst]ؖùs/%5]X_u_'8 U?QBho*V(5Rj~NQ֣W(PaM#xfs0S^V :iXv#" pp\]Uovd-|ȕ/EX89yzԐf/KE;?ԃKG%qvKDi՞H:%RuP<<t HU_[yK"\#6V:E`wcPmj0=2Y}o wZ{N$ozĢEmn':6GSVȭDDhh\A)Ĺ!I1י T'W4# cƢTf:xpnpMNR0>fhR,# Yn /D__WU"Lf$?|ٗNWʛQ٥{FyƋXS\u"\\ PӲL!L"D˕,Ttl~T4{| mB$ B2 - Sc 4=ɹmE+qPja wm'=/t oYK燷'(/apw sZoSm\oZζ N΅O#?z3c$ӱ|3 !ޒbͩOrǿ?cW9j?}:Jr&*HA硣BDU**A{-`&R X ,|vȤk _E}'#3iA8"A5n]j%x*ńjDS'm Z:aJ!%ZwS nU\}lfʻw[tbT&s00dcWS00dcSXMFsex9dLѦ/\XaNQ/SH#^zZbkxɕsFO+W ȩ;P{>%_zuX2\H1 ' 89wa+$(5Ordf"R|xRxCV?@@>C^m/GK9Ƴ!6}fm OGWi.^&jchHOݬښ4!R"jAOSg" u{&C|͊QsB8u\oܠG\ 6THd/s|Q3:}+yBx{7/RA T`P ipb|T.E8EX;Z4P96L 8@0x'}Lo&sԢ(e+|^TC^?;f&3] mQva=T ڠ`+bhT(;:x P̰jXF/sθ+j´j3 ܮ`8u_.V?_lrcy\#?UYXfmUI4`nF)r>oy%|6ޫr.j+wA D-jmES"-oI+?)D>1q+;\5gT+U7T7< w?á-W3SvFp [`kZ4z /AM|\^T!|}AT JVI (9X!3?[*=ACX<RH!lˠP^p0𶫿w~\%ꋸ$F½d @a`j^]On22 z*^Ke@Jxy~%T^^K>+Um.m==ʀo:wC˽~|W(}L:=Mwwe^VIq\Wuz_%~Ve6jX Ƨ1_DlL8d±p`Sy RI&"7lK2#QUG §#(Cc}oﰲ؄x5Jǁ)WdP*p-GycYch䞓$+8^fR0P3VFșF(;! `>f:(4I - hhD:n,<q22ypa6%ۓʛŹƂ<)&a+?-[lDA!><zDlzDa(y/SNشS _2@^Q{H?{+5*Q3G&:_>v;Q<6Y ā@xđ"ghiut<)ȜHȋ/.JAxGcOTA(vK_W%H+WOy_PeՠB%<`B`˗w|!/Իcb_*?A8UI>1=L}Hv56y[ '+O'9GR 1/TtkH<׫}of5%1H*?hV\Ƃ^ vJS B'OTWGhYbƢ;JGgٶc*HL0R_2SWm/T҄-B[B}htGn6٘: {n0^ 1Y*ʄ9F"T\ -;KIÁK˙]@A-B} j\|GU~rxI BEzDnĖ niU YuOGb5f/)R}PAE[\? e&8}1l)<>(J"O1Sњl M?)EAIrTWN@0[8tF [@baX2P %7Z&hT|afĒUJ*ʤJl 䇼G |~]m@рSun} j=V;/<=Y4cKwm~۶_!)w|VSFS3ӗ: CRx>~%?V_(2\&(SǩHX޿XHjeџǶm˜D{nOoPOtOq;׋r, kPIŸ|Oj@g%/:Z6~;ugE`ƈ8^a*~<x$E_?=.0W~SP) W6E;u`('&8S A$X! bF%#Uxw *SL:b.>/RSv3`ۂj-Bv2b wѽ{@O(|+xzuÇYFN{nBM:s:U%hE}.T,=xvxhGD偐Ƀ1`Z2fWGBm.juw2 ^~ ֱUI:=u bׇ2rD-T+~Q #p^f{:+_DtR2n-$4h* EAM>+q.D3xL3NA8 {3TqTO2 -O*DaPQ)2=W]r$\ea;ZT?Be1|I#0}A|o a SJ.HO=իUU++jtz->.>x)R?_󟰺e켟 a*Z^?j2W@x|uslUwZFdSkaudjx<_*0f`+Sj 2ΨVwZ Tu_eUrrtW%:GW> 7FeUs푋ZG~\^$JGyJ^A}2KѬ2$-DV*~v?P J'O*7 @*c%H. bP1}bZ,!d pqyyGÑ6˱yU,T ft $@p)UрS/t+.,mj K6w'13˽ȭO;@'П m`O^]3GuBj^-dSZHT@b w~)J=͵B؜h=:$OinP(WF к)/n~:O!鐌)yjJDžC6_'ãSarnBjxtF_r$6L_|ӚI͐gȜɥJLY])T<v@811SrQ߮CW Ro4 F" MXP#g4yFM|oWb{F_FvOGQų30u*U CcwT] OϵiJ'T""b+J*IhyGq 3G=}G`ӌN}?zpya LDk#1 :_!Az*iz v'EK Fo,?F,L&4[I۳ T ~` /keCh(Gk㦴t?5`ΈFQ7@ة_x:THmYI;I#vLO}X6 0k&xH)k4 Fak>+.يK(1mZ8-SP)Ժ_ciSF4zN> -DpV>N]3A|0WhHhC/\@* '{éP9ܖ gžC?VX/./| +UAW 1rX<Κz!`S7GJ&ҎL2K~ɤ b187o؊I=<:<0a3^/./6?q,qDtXDci%O K#5"3}:{XXϴkZxPBl゚:Y{ <a,/✷;]K7ؿ2I H9*tttM| ٣Β`xMT f LMӈ]/NjzKRzZSM"jttP(6`ZX(4%)ѧ4ttubt:u҉|ahj3Rt!V:5JTc+`h2<&:t::q(G9  *ePNٰ|FBR_E=~[:ȑŃ|,gGЌT/=QpN FiCU;"r =xo 22mb U T ,Q?VӃ8ցްfH0#5ٽςa("6  y|j3E):tZ.V/6eA> oh"P= R_ѐjNᦇp5ԅWR5ጾSnW1G 1H I7@Q0kЂ-cm/PQfVB"m-h bGx"֏j;\Њ|"ʼnCL5}_Yer-*X4p BԥA1< PA,>Xօ̎3Y$%xu*phΎT 8MT?40Xa-(Gr5ʷG UB 4GZQX%HejmOв#x$ @D4Z!:BZ@VX©K.}n~xb$^4]"̾rJD?vLՌxo4DD^TZGGJ2:8(i ,£:y:%6\kb8sC~FhC\' AȦӢ"'JT,! ` `N]x.bnc}&-8"2͌Ȃ#S֊ãy"SF Ҵ-_GGGGGGkp[643 2zh{6X/AV}F֫wbVhc'HDžmT~^HJ0@_W: brs]V@VA;պ23[Xp.hLF8h6}zNvt$h"0$t:::tqٖ*) tASZ 0 iDzPxiX="0Oy8MxuWR8<$ Qj:::-G\: hfjCŪm ƭ+B/#gZ- 5φnD]w8DLJŵ`V‡00dcXM00dc=YG|[N("YHLxL[UhV[#2TH vN=VQ= *j3O*V_XXd[+tGvNM;OE}鿪$f-](3E΋篻j|P<| Cc(|XT]VA:+qQg$|*lGnd4uwUzAlcSݪGe-f*s;m|6An, ss'^r>q}p\8rcHu};PK1t~uY,IxC&rPn:]ةOz:Qc4A<- ~Aso@;aQd >=`ULWAQ 2DRtg`4FH>ůg}>ͻc$Hd:rqcvO,bYvXFOëk S'pVrD.o"I@DdT$%L4KWr^T#nk$L~I͋ <ϵ<$ chB!n7XBbyЧ\R=r}@m/s;U`"%AnM uQMm6;{[_adR W% tP [k/7AEL/R]@U3ѩ't`Y~71.پH&. \Nxmo ,&mpܶqMo)ɬ24cD*{}x ã%ZnFxFjrX|Fk,dDap2 <įQCH T_:J|G(f!t Bb 4#k^rA~j iRR冁O}jŴdT|XX0{苧~~@?ĺ }QxݫQwIŸ 3Ll|ʓ4~Q`@c`6?! 5N4~U0%?{W8QiOMj(%\K__,\KsꁄU}dad8oH&vP/(ZRb %x(Zў$!p? db[ {:fJƫcs7uy?8!r۠) 2@acMF 9X<3gO_ uk 4x)9, {тIy>Z*eZzGc`%UfX NURY,K|>`_MBAڽ"(pBXDIo~0ݾۈpo{VҢH=o`DPjŌ)52_A [k{)AnJNը#5\>:fX6OՌ2En0VRm# r/j* /?[lV`D7)$0~ @Ʒ(ݨj@#%`ypwɮȄQ|!j44VBUo7j.o$KPSUL|/TQrsO{[aj˯cVTc>Bp!Z>/WofRO2bj‹X #6=&z 0%؎>=؊³Ȏ>ݒ*Q٠IJ+HZV\$^~Ǩ2xON]0S!wcU^ ړ(PgjEQê:rjGNZ$od%p3wʕA^`$l*]m[㋋V{å#tenKZ}jwg/gA9f:ުω^e৔cKz׳ _¦WDaeKwE/p*>TL63f?:(Vb 3*tC\:aO(cSOJ#ڟ瘍UiެyꨋT [A 5)|L}}J(Pb';J^d q|~%Ϡ0΀,> /As|:) ` k 35Ǚ&MVQz}UbRi2}Jpz=ƭ" :7(3* KUQ]TOycaL=Ue_mVS*P=WGSxG6ժfKuG/#V[;MH߶eK 3Իgs3MAx%eùc]V;ːSҿ̈́$Ԡ8-yKC+{:\hS/`) 334$Gzmiw#M(̡=\% |Sھ8w(XǗOw8GK-ޘ:!t6;/*hH6h24/B2 |ؘ_ڶY,lyguߦzيU2ϤU\|RAPW~CwS刎4t`QU}B_[g=@ ȸȜ0Z"++>x)ĢX@P Rdˇ*4"0(vˀ'/ *\yUJe`_U BZ`PDN*ԙuJjv9%A9jS&2"\c8θ)m\oxpSX4Ҩ'TG^c:.M(>DTzCWB/U/Pڡ1`ښ,J.u%uJG="@.ᴠ2t5j> T!KF +Oxv@Р:M-JtIF47eY?A3CJ|GO~;_y%V]⿟}Y>]'TpR RXG0tQ@d*ʲ ġTT^\]j0Kd:U* Yd)2s]~:3D`S-1m_77Mw6T]Wҡ"nݛh{(ShslϏH}Sg| '>d\7}" (X݊9~BIy|uOc{oכ j՗}R]Jq_*^D8٤AZgw9fC`vi>i3?q0EmSيj=kF4 P0>D84I,&qB:)>@G)n BpS ըWV\[%/WW@C5~=&u"ɳS,F[S^bjnwۨ\b-&NKY7fhUp)1r=ߍjWثFZ".G<;V))u^^?9,c$l(3FMQűf*vQU a9{Ze0өqpx R{B8_H (OYMrFjXWv-״Lu!J*Uj8U>WfZjػrM ʕ *WnZ*QHG hbfl;phQ7/ S1v U@%_ԁEj>=/}jJՂvw\`{RF*G\X6#zDGXw:|+>Ƹt T˧,pDzZi?ʴy˾oGDx )VR(qG@^ug(V )z`giG(VHS.D5Q ,rf[iQ\bEJ@$ txf}8#KKWڪQ߶-k~?Cgrdl-Y?L27oY81Y9T_Pa #c֝<3/Ilk~::RMK[TH7 FjkvC1Or}ߴR\kh2M%ԕiBסP1Q5O?=VE*OBkޭ Qe_̉n Fؤh#qg,U; D 3W R1{ &!?lqB{R* `(mP$OUV)SWZLשּ@a[W.R`Jɹ[ }x C:PaHnZx$V:V$<L~h0#7pˠSR>_z ?@z Ikm%wؗ3O`tCWKV_%WN Y Wol>ꭶTWH7EY2^΍L]65V(<(-0>~JC/WGJ \JyJFh:^\K +0\ #JL?.Y^+T-Ɔh(V:@b~<09&vu6;3f*/XubE꾎)ֽG Iz>2HJ<89Di-7 St4(BSvc@,6މ$pObJ2ztttr L8d{#jW:tu2tttѺ:WE:=YbXp+‘d ŀ´1 fDF:=] 蠭3XtaP5/V Uo[+._U.+'3Y^L$ţ"g 48بGyL ч]yg'8=ˣmj{Ay|D+'jPW<*׉ʵ@bu`UL H: RDd8L[.g3(1DTZC0Lb80?E]bHHRkRԨ,:> gUf)roR_Mi<@ajQD@x65_`(v(.0lHRBf Z?S^llt UV%S6C[겉gFp63+ SlcfC3U *eBnDD 3DHl+C}2ah0$ 6\qM e}(V!h,A\\ aqmGJ+4 !x1ldpFHSZ0x9%JZ=MXLc@́nΖ]Q>82*:ze3S)9oVx!L œk]58| +bP[8P@#Ux+.Ro_5vC>6w*"}^"<`$xMF=LtG5W#\$#6&0n H>(#D8-?GO5 ~KdI5&PĖu:ha,1SuH8 <|h'ԷDmL hҫmSjdGNp/(: `1 GĺVi>- M"m% i`|3la?$$۴u{R_iyK?/'>D"˚aq/H00dcYG00dcPZA46A#Z{֓oXob޷W$\2F:=" $PR];v{%CƿD`S9#z:V>:Sdo+0`҉:*;.CGz8h 5֚շmX>m)AjJPZx&\qcH^IIdg)xKXEܵ.ViHCb8UƗ+cDեaQ=uY<LfcOz)VgE>ڞ)>3%=ESx WQ, /֠yVA3XP|27dC/#Sc<]qcu[WGB3hPͶjtoRֶK0@ڰP¬Jă+Gk` Ս:2//NRX_De1yvUB "aa~^Wet 3d:8m"eupfBOViG`0?G.WE+3:FP'dzADm/HSJ]x[4.d)>h2sdBVqO1[ / ƾ #=weX_-eF[(2 X im&=O!ۻnȽ^@<;Ww_Ƹ (/p Tt)cE?近F;~ G\ jeA4SM֦0$a|q3:;֛g.( >׹kSrјP@ɶAXpFZ𦭭FH(ِЄh3)c GHnT<1p.xL_Y1MKov8duR{YG~k 3s]`@/t[~ &wvn`d0`^#E 7c;?c!UJ}+,YaOU**W~&NM#q&n~:o1Lᛄc⹪bo}~z{TۂĴҸ_eQ*#O>ƔYvZzOjSXh/3jb_O_ն^8/nD$;oעYWsd93A3.\79m ¶ E"ȏt n>W'h-Mrbߏhevݛkmߐy_@uC7!~b)V=I,Q&aM\m_{dl1(wu>XT往zVо-(Q\cꣿƧdO[֕p I\SX(⋣5X=dm-ϱI Ocѵ܂ LRI|Rnb-{֓O~`ແhg'K]Rjh+Af] 2ʕؙThKWGVߠzI~;b2(] /*LO'Q).:}T0gxV܋U23KԂdD#N,y=ctg ܟı$c xO[(NI$=vE=c@*.lbB0js-(Q9t^N։&鱚Q[=;wz#rzFW;T(wP@-e bړ+fNgK-O "wQ Z}Zb%WnQqFQHWIi_d]&nL_hWA7Em's{nD_(jk&~UqzTG]iMzI>q$OBv&ud5$-;nFV.:tv/*BgMpWr3Lvx7өUF CTvUK:5Mf'J$ 3qWB9@)۷мm4. 4GQs7T7d! TY#pZjYxEZzv:.WKNj{(3Jymâ7:`-UT-ruOߣ~5:=V>@ܠ?CGVvbJGI_u@ z6ͳjԃ\>EK2J9tNppF]it̐(*|@?/@Ur|G&_2IȔMӧG,F4@=Xr`#_#Ҽ84e rӧN h:tJtD6ztQa'NӧN4M"2Teq9gij P@Jb B XAU22Nt)IӧEm 1@$܎U -4)N,ӋؚxRS7 X[4D!`ԩ=5G "8, R,J:,  L`P&-"l#%\<::qpAXR(_N"<&|TK">i-*umt+ ]nAXDQ>jL-y]]?x0JSO=ς׍2` ^ ,Z/SU`Glb?<7)Fo93VO=icsOaGB1AwվE:.1y@c I0)+z: j%.b63_(SӋ.0jA@\\?c`B>+ogT4Pq_x UyWUx^/(ڴZ \2Wz_(zĆAf&ցXӸҴ2bk*iTƒҾ# ƑUB&۝nMkʕ2TMT _`|}e$*-V޳ 0T|ż j3xtª";&Z5Cfef 0|S]UĆ8ZN]A;GQ8|"21p,Z-f> ,o%Wtcpx.7ļP'ms^'a@a0ApZ]U}š0X @ [`sht:-iѐ؈bXz3[Zt{h|5Ft"o-pp-X0sJ!倫b|`Ğw[M9PdQ gCREj~A%_4-_яSR\/'D.YP n&EjYOH 4 ܫVA: L~56ML7(!q *-Qʨ*pƒmɪ Wl^ySEA4|+(8rpy{rΤdݷm-I(2hijtomR1ѾA$229tC1y~~Hhx|\/ŔVMMVE^ӣdt%vP[q-'U>* +|r1 }d8xJ`Ӟ}}|[Ypд7s0,5+ \hjy=bꪧm!FlrtvtG3#YS-_h$^ NDhƃ7*{xRr!F(g,0oD4|%qnY?Pd~7d h}GNj ?a&>$y K(Z%V!8Qpĕ%*niUt0!>q˃I=.5!n}g5״\,+tΫA^yuq0_qPm@Pakʩ*㫍>3ev9P83xg^fw}[%Bc asl,%ZE>Հ0o7K9B;N8!4ld灳c}Dp-އt,%/gƽݑc)ޫLū& D!r"O-y,W"DO( |71u1})|5V=_tj;1ΖL6S| =it 1 /tR,)ꓶBsWGNcjq86d~]Yẓ^4DA#1=>1=eZO0Jsny?%]j^+IG~7y(j#k $( 0N:|Cir7t3HTy¬6ּr#dU1sZTg|vmXE=n PSjejx@@q xs;wUSSS$KUWl ʔs,B ܒ+..K8);8C5ɍR osb N 0tbcSS\#{nCZުK\+iedz0R;UlγZn)-Ir 퉅SEئH@m-&^#tǽ1@)8C3SшSR j"^>&ΰR9]wVֶp3 Zt)K/]Gu9_S{=0x2 Ũ)9y[:/ONlóF[TP4ʐfhf[13qĐU9ӅnɄSPK~틳7?AWW>\dai_OjelȄGrP\3hhyNϴKG3Ugoǂ0xI!('`ૻS91cHQ~LG@-0, ^.4̲ʛGj4d=7#~h@@7n |JaٳT>j'69vL>` Պ:teid _J2`k \;|v!禭ϻLݻA Vq%c_^^^>0Suly"F2RQ(Ir \,\ԗWu$1eVMA~zNOF8XU_܄``#,lKBGUK/}BP$x$İKV!Yp%|9w'dE< ,U@{کJ5=L/!@V\Uz*U \P]ȧ_i sfAaiðAx8t!`8'8B͍2s% >*=Zc*,QUJT]QQ׽\,5L*>*> u@kxS_Q{ttڈvۭ‰ yյ6{[7wɆI:wNRU@SM4z}PZs/;>ܴyTdWIK$s'csCS`#E *S:jo=|=cLl6~FjDJ:ğf M$"23v}(ŻM3J5PrAߕUKa,K/N|\]AUi;"+=7T2PPU,}vXŌNH7{&S X&{ &V#*:z)ЦϏT)TGO D(G0qߥQV*ajȥda4q`p\` F)(=r"{T}Zbpzol0 x:,6'6ব`,j۷%9ULweܔ[a7%O)T}VQl5M%x@b oA2ޞEɕzBf&Fsn{Ck#"ć Є)˰ftӓ,2>ңv%Cz.#P˪`ax0 EC4"w\&{%^cO/O~ TƦUA{75¼% ™L͊`gl)Z`]tv֧\~uG7ցErOEcʴl b*gNm*)A< B9Gw|X֑s.P0t ;s|3p S%"^ĊҴrD;UGGfQ WlV#)2HoNp<Q 'ONJM;+ ]o[J:iM0c#Gҝ-n '#EC $~:}=:tGpp4(,-qPԈ@N$ӧGN6:ZCPX.băhTx(0ZA4:::)Eu ݌0_Ж:9gf.7fVm4j -6z,Kx߽Ms: fS]aQ Q=/B/o3> %8F@&::Bqb~*Qr^Ta4x  \UR<~̣V[AZ4@x!4c.6BQ3,RPM2OGng(z Z{RF$+zXSVHEc6pMyqgVv 1KR.TӄtY}:J Dpڍ@_|b ֻjZj3 qj^.ը‚ 1˓ OL86 -E(t7d_oPRi0KLH&iPSD쓂$aSRaj3y˺X/x>>u4Ghza˛3?.60Zȝ&%FƋ- hɱH&0d"ab<ƕ 4qlMH}tia%p2\:9G텰9r]Fk٧idx1@00dbu00dcu00dcu00dc00dc,D!00dcx00dch"00dc00dc#00dc00dcj00dcB00dcR,00dcb:00dcr:h00dcM00dcM$00dcr00dc*r00dc(00dc8'00dc(00dc8%00dc00dc'00dc00dc=#00dc"00dc"b00dcP?00dc`?00dcT00dcTB00dc`q00dcpq2+00dc00dc/&00dc00dcE!00dcP00dc`00dc600dcF!00dc00dcz00dcf300dcv300dc^K00dcnK@00dcj00dcjD+00dc00dc"&00dcP00dc`00dc*00dc: 00dcX00dchM#00dc00dc2'00dc+00dc+00dc6<00dcF<X#00dc_00dc_3 00dc00dc00dc00dcu00dc00dc* 00dcF:'00dc00dc00dc400dcDS00dc00dc=00dc400dc5P00dc^O00dcnOLISTgmovivision-0.19.1/test/assets/videos/v_SoccerJuggling_g23_c01.avi000066400000000000000000017407521466211133600237570ustar00rootroot00000000000000RIFFAVI LIST4hdrlavih8V$ @LISTstrlstrh8vidsxvid0u@strf((@xvidJUNK00dcvprpD@@@@JUNKodmldmlhLISTINFOISFT Lavf52.31.1JUNKLISTrmovi00dc   cXviD0050" XPn p`8ֺaLN[[2|6?ӖW|(a)"崓~KӺPv.BrX~/IrԶ#x-A_]Lw%C&1e.~̢z-!E cߔ5{nv[EUV A1b,KQ*N=yyj-uðjl+A巰fdv{9;bIke[bw)QSYJ yW{p$I}{nuc[/Qu=1mӳ*-k瞥G%c- ϶bY\1gD-Z8|K%Oi4r6Bc Éhۤmz]k(8f*W4 :N!`ޅ'i6djMCDeN Ulxe,(ڍx؋Jږ=W*.2RV*Y)  g:<\/Q|E}<'@Ȏ פNnώRQT?h0`6ڸKQ$[Ab{ 3'RBv4ךZ2aa\a/I 4vMAThۥ yT\Fp7«ض"%M*9\ކ@SB]Uv aka!4 J Y)Un9$}V*' BaH6 iَe]} _@.=N 5Ud~§ ֿzw ž/E r ?se|Ԅ.hy9Sa&N'˫6sP "d򬭩3FrW.qg{>x&lR=S,i"jkBmLޑE?#ȝoYNi70H"Nt9%3Y v):B=zAc# č$y/TV^pV%u\mP|u`XujfR:p"/EŠNJg!!l^-ëHFP؍v(AXgo'IQ[3 \%~9DoxW_¼s k=LZ$D}“%uGk5#L, qcb-6r")k4QxCTò"/ǵH19t뭌/0);:q.Yae>/zD28!J/vs9~[!>5dTEӧPeA-lca$ZKzNTrǂ =XWq \q/ - xLn^-3"'DHN 0Tq#w\O{oB4[c[}?H:v4jC('g;s`#|e]&$xOȱͧ e߭~ZչgTGwEԉ08~$k͈r0hz6meE識U6رKEE[mU=-?4R?<:Dw sQZb8$8lN[B96 &CMC"?$S#lEVyNC kNrO;!9C OS3B~q~>ܹ+* C㓫;rs>V_WN0H MZQc&Ks#xK#>,>INQ -S'փ}+RBx^Ġh=NK=&º( ad! :BV&]rgNj/o8yA`[e2I8|EI/NF|G7l\hIsZy=yޮR.L pHF2{ ƺ֢'[>iHb F@ёI?Jr#ߴM;=G>V\3?_z:^';g TPS@uƓֺa[I_b 3.UTڷU{yꮱhՏl@ >#Eͭ=4|l"ꔞЎֹmS*E&X:`yZ` 3tX$VFM QGݼػ˫|Npagz,ja2tz_ll#e4%y"Ј)!4qG dV!0>"Ct(|COjDnR4Σ"^u=%! -"8BxA} ™?lCR" ;W[0ڝb/,Cem֭ԇyVsg:Ym.DՏ>ڍ::;9G!;QݻOJu' uA(Ge{+OEaq-&U\f {$XS}B[H:7U3f/89MEOsNsli[Qi5v(Cr`I^#iayTTնk=w-Z9T߽^ˉؿWy^:P(fbmXSaga gdoqҵ;Ld[n{E6i,_ɗoo:ELButɛVȳs-; X.=yb.yg;MQ֠樦eڍ{DJN4.f. * *V]JXճ $?=P/N?T7s2#oZL(=!(Z;i-)/i֨ .IbIְUϹW4y-]^^b.fN9/8KhMꖞK=WjAu0 PzR@VDXw_RMG)z,/k>9A9$#ŹQpWrm2M9+rUܕx4vqt(Mz|BY.-^"q-re3yc!KѤˉ% lru"kzF.DYid{D}*ڝRtO{gt,\Z(_CR $YhvOl̞o%~ַ/jP8r -֯7ygUG*M.S/BT <+'j r)ryV |•(25,Q3Siyo\E>n[-Fm^/8'3}ehO6څb `e5*u.8yz;8vG`cr K]FB]\O|QKdDst+=6vCXWyoo"PrP~[Ͷ1ӷ,;-9C'9OY:u2awlСeX4JHn>HouDEºoCذz6BMb{5~^q-=vu)̸9҆άG3;7"Wۈ>{#f#u\;Q")_MjJ_wD -\#wM|DLy@M%6F/iAMuw.P-% Koz.: zEٌP',Y_Is9i{(弥!$O04j]̀=0nʉ~JڅC0S]oE9MfH+rPun0mB)I׷tvtoJ~v}ҥX*/oUVDk<9݅sF.oz[vȣm$8˜nHxEO,vZ#!o^fGʆ&d$sIwD[A [];tdMc~00dcP}8?Flcy.cXrn&a[[_R)])k_#B-c1w3Rٻ5vnٰv LI0`ax0չI<h1A: b5}ѰaSftǍk~e}}F `l 3@baR (J *o0T:&*Rb`3mϷ }|H$z58"Bfzhw߾ZۻnYʑ m1 ǀ,_m׶a킍Wy*8 oo۝[vݛqw}xvb>mA^1(T>LgM 6s6HE;6BX@ bGCA3Ӽ &|$G2`a^9qp0)~ Ng>̓ ݶkvݛb}0`\A/ )x?w˱H2`>;@{!1,x߀ A GT^Ġx AA!DL"AKW`;>fyHȃ/w[uaﺾꅡvaLL %J`7ðU`ʋ,J/b@AUT)|O<$X@ A!ìP 5zaaӻX>/`5~ {<"0: +!UN>d |Z'zZ%b De\.vpd Wm|灍 %#.T -ibww=1nY0|rwܓM}ޞL`Ð|?7inX{۴a1}q0|"pbaje* I_b 'E@&*'k(ȁڡ600dcP\ 8_؃ ^vBU-,@ Evzl qN~<'8ғv9j xTN pc@^ )>RN+X]U :dvu`. L\TZqH>_hx>4UA a>kP>Lb ۗN V<À$>nK`(>p0zK|Xn4,>,,ĊP R9i|o- ld gbR€y=R ϛ$u2APy P q[oݬVĜܓۻ OGJx#b!?c5A?FPN;C9THka_ه+ Ǩ>w'> R|Sz${_p.TX0鷺|3ΒaNdzs]>k`|X@-[U͈U4{AP&ǀumpbQ^Qd_{0J@ @ɿ!mč`Γ\ӌ<3{P>ᓛm=^ԄTθ~3k`!22M/̄!,KI(A@(zX>7`]ۿhu18p!*K5$Jьhp%P|S1USц2n}N٠|ٽ866`  \#B^ K<P =J<%ohKeKB`J`d 3A 7~Q8x | Đe`L@l~ Kyp  A `! Az"H@P @$ BO/B>0P|_Eod}l0dS(Jƒ`_H1p0$*V%p|(`@00@`P0!H Upy|t!@.?꼯5Pz0(ǖ%C") Mm1vnsOfbvSq;ݭl(fniVC1PX /.+qP<Z@$[x14` 0e|R mH[6k(2uoڊ-2'iO+sͨ|I% ,\grٶfLVum`{bP11ags7=p߉&'mgmϴ!}2 B9 Ft9jūˀ&r7Sғi\JE Mˉ_00dcQwxnU7` P&B 4d&:7VѱosܘC-:Q{ٰ`L [C( F 2{-Uī@ =|F.wn'[&N}11ځz<pa0?G@@[80v`3}7Ѷ81״6 `POu 1(>$f6:N4uwC@ʆiҋ ٽ:N;p:nڌĉOp T `|D5.V#|  8>‡}&o? 3{︮W!EUxlj8n GJeĈD@ ;{}レ|oE` * BK@H YD P麷`#)p8EV<,.PJ,( @ wB z~.^;ʀ'^6< (0KP!x*Kğtt.TFowuj76T{}  +Ir$ t#p) ..H@ـuH>\B,0$G}3 ~R)$   tݒ1;opbF;Oxt JA )z/*@Q3T a fzvM@Ry{}uoh u:96ݛ{M;m(VaAmz HN>i A=1v0|oaҌ?@0}zO}jɀd3}{ҿ@1:!λ)Nި00dc"Qry3C0Lf,8g&wv}X>wlApd# ` *8 *ccŃ X-c$|uN{8 ulG| u@  [YF2P|?l=I  PH3vk;iVKW0T'* xx=w?r^wMLPE+}x R4 F?/={sNw;ݛfNr}9>Uޮ#Sc Ѓfσ@)o 7M>az~]m8ݡ!1HU|~ b0 MC1l0b0\0* wV m 鸛ztݓ=&Q)G(:AGJ@88>1JKL:JJI|)u{}w}q'w'ֵ`:aı7h0J?pτ>ˇ< C`0 5! B\<@ |HAA!*VTV=0'hrwwVޛB E/ xaG$)Uc߈lHT  9{z}a6 ޞ}wn{Tp {oz>no=o 4 F8X1 ool`NݧM3mN:nۊɻϾ00dcRq 81VƯS `)ll*d z mwx`O;mg@ @ }+T@cAʀ)*?}0`$>exS@P09aC <8{wmո a|?&f r|I ?P|x<|hNA ,!&!ɀ%Opc ?ԃ@;$fTD̀X@3`T2c@;WoA!d![ްm|ƄR۞7>=ӻWKt"zFj= 0*fǠ2!fླྀNid` zr8֐unr0i㒹5#QpjefՀZZڮzjR'hӻ;Ά4)ȁ0{&(m Rt`ރ(2."2 mZ R/ u ^Jȩ@cͻ483ҧus:4qO{40`.? G (/ItGH| ڥX `(!ëǀ%SclBw;tk%8l2A swkQ8>d{3rPxHA` ` #C(PJ.V<X:>%h<H>Gop|(}ޞ/h>L鄔 $~^S0eJ+~>>,`QuJt).yg>H_`δJLbaޮ i`}V16`vT N,`۶>SMwn=>nCA }lб>oW36z lZ={}-E8Nk 00dc R 8 |owl)vf mdA6=`>/1N<'`͜/e20fA pMP1X"N >mAP@> 7ցp0 -`l |0FAxf>c\g699lڹ+C 0|/ `0z,o_8>T`pf9x2@3@ۏD: `|Py>pZp|Tp|Y&76}&q^ `*F( ,Lni-ɭG]Ki zwX "9#7ih* "Ba>jKaiS/P;IEeHP1}rc>TW&`+2@/!}{C`,p }j5c mCGG 3L;X>$6D'LcV^\ iZNm>.mgz\2 X>$/`z+ 3 `x'&``/Bpxh \\D<_#U# H!P`> x8x 7Ggڰ|Xk `fB'c'o:JVVwoٽ< h&P0L #+̏AJeGu@0 :40DÀ|/78 o}gʀ$hn ;a  uvs҃/sy~tj@@vSʀ%L}o c`Z>L#ﱫ<Ѭg<}`o]ww}Ww[>00dc Sk D:f ݏi ՅёC^ atAժdkvࣜ 5M{W((PN[B&z )ih~ "J@0(18rX>V 2^h) _Z Y]Q xGWZ N=qুZx CR;bq*AxS}o ? }<}:f'_Q—~4? 2aI P˜p@Y?=]ӂ:+Ja-kEAg\N f`5Y2W g u=ERP<dǑRm ̓=I@00&-AM($BAu.cmqCcMU pqϊSej@&d +TA cģJ@wG>:Xg7>bqz lhW`;gW5#|zڈ\r" 0x/RM_䉴 ` ' t382"f"IO}X1"`FcPᐇ3ak=Mgxd 4Jo1'G?4c>!HOVxg r㕞 zD;xf?mcߡ:nĤAL`O#hjx,"01㮧i" |(@d803@THefc˜@B`nBj꣛֟rTnw#dp J2 A6xz(10VfAJx1czY{via!:13ЌPp8_3`/ foxߤqOG4SG\3op`BpΓ7`Ȩע7U/)DnUw@l)~ap࡟gX4HP0 D)T.L NS+U Qؔ o&%1@xBp` U 0c6tA " P+p0 riz>= ey'aC 0qmpd#  g>yFa303 Ptҳ ˜;Sj od0L Iת|oqYVzȸ D'+1 Ց$:/J0f PA%*|%PCBc *`}A XDf VP>?` !˜$ qx7$P^$jGm b@0V?T=ďhcOP1\%+ gO3,Zet 6ġPcc X'y §.HcG +Hb3tioBX 'RSKFu/ɟAd1=)@f> 遡A6 0!XC\>CAX5o@`Aˀ] < IT2~..4@ `0B< `_U@>el 8` 99ET>*װ="x_' oUANDoAa(m3 (U4o>#i9hcGT(ct`#b4$Q-J H +a“@0 4U3 MN<4(j=XZd 1A#`4F܌ގ[u*L3JC'Oi,tS04s=9?r\dxGS^gL >es(13dB j1^}Rb6p礬hł7exg@ht\t /1d"{#Cdˎ>t)ޘXkc"W%h7 L2d8(3A#C;0Ӡ u8 ӞDncx̄E`DwC(dЈ!YHy&|kz;V8f# MRI"c!ᓆ-p0lRw#U ᝼0 1hf6ă P eέ> w68ҟ:ai԰- aiR|8E;Odϖ Ǹ)i{h}{q \,JC6fC6g>!y%R?V] GH~C 3*y։# ހ%:* ̆c7PTU)צFT\R`t4$0G3o8Z/=̝#2X:`>?vB?=ejCč;!IKU22e#OfC#6C Ì'iꗷ|H2300dcSSwaϾ뻾o&aJ (}Ͼ˃@ Mu)je=Tص5]J@B}E@b: @昧gTPS%@1 WITsU ԁo c>, \j Olw};}&onvi'+ J/ !  c(1{{owib!#ʕ$DPcaz%FVM";E<l/@qsݽZNutN  U#14uP>)^1h1(DE\bPAIE`?  wwid;N{vݷt@AV NeٰQG^],4F?`|>h~ ;/V-op>WdVN)n P*p# Q(~;Tԩ./%ArQQr\Vԁuݦ1[vH֞?1x!6 $+x?5%eR6:%r`W063}l{w{}۝Vޛcѐ , 3p G] TKt7LmZy}:WqSix yh0ھ=cFxb:@o09Ms{}7Mtjà ^ԢϾ ozٗޣCN9FX{}fNi}W_uu00dcTf8 egƃMN2)F 9Y;VO%C@.J85(`Kµ13!SV70|fDw=c1 `=8:m"XwcEbw=GMSGRή&-N=n q.<{ۺ?~;L) }b_o\mҺ2 @&ic!IN8~~Hw}0j Q{ɘ赇;lsV[jﭽf>ƵV`1xϽsߣ7!bMO>77[Kgt?uYIBu΍i̹{ 5k﷊ޚurRjۖRU2Ky->{Go&opdf\D~L3z0Ǻwo3o00dcdT\ 9*qգ=5+<Se|J |^ Ӥ r;|xyqI;Bm˳2i 1 FfAٗ \!m>|O(>/mnh0 ̶ !Zf,FِC4 sɷ?ɷ@|M LGV^:7"w>՘S80cYd({/W%ƀ`Ot pcNg2|x0Ѐ,+fi[l|OOT8><.|o u,4tV= 9x3wr͸^}dHk˂F=4H8A>/ _ Sxz p00 LÇٱۆqb90lnz}A l9Pg&@?>\=#"H6&/h.5 xAU@ǀG2> <<`@͗%  %4?.XjB8Ðqշ:s<}9ӺqsەhI/B ʁ@e| JOh2_H/#( S3PxB@In7e#xՀPՃ 1 sM7nXH#\snb@wc><`@A"W4H'dJV U@ 0< 0K> AВ=V$|^…bXC4xt P6{F z Alp|Oا5@?k W5}P9?p\)9n]Cg|(Fj=Àʰ }K6^\bf X*dܳg|VӠ<|iM \Հ[(t}Bc@_䏫= DžnUwcsx>gm[ɖb0b19 G}NtV9nm>{HJ@00dcxU`xwPAZM#W=ik)@x.m;D˦-J1S`X`P2B]`3JVxH:AWAr8 %4` @x?D~~ ecǗWc$0 s jD?3Cx2z vf '=`F|\X31<$Gr+p0gtTaeq;Xe._ ;L. H0 !@ nl\4tjKgpзdRtA#8(>4F2qV V:yRo2EwKxtġL001pAE~t< P_UZ%j->$((Eh0 $h0(A.RQ<^\u乼K*04$PP. $% f?`B0@_֏f AB =@ 0!@. |_Q3<,`P3J4J$%QYbs+oNo4'(K׋;&SL mϦ0ti"#kP2l!.ȸf#A2` P7At0)?8@<7|8A~ nxABYt!BAx!@a0ٷmP{ exJz&y(1t&@w4 jue4NӪjD<,RV9 $*{Z%L&l^L'^`S?tT5GskFƍ&͛6l(W.=Mk&a9QIT=Oi쩖3g̤>_0L7)xh2sy !{@枳ޑmМ^S :`:t>1O}<W9\}&os}80 dB!NǤ gN#? !Y؎t<ϢgNc{ǭ$pZHiHk*bF $ vrMC'lUGyD(̭Q[D}-A00dcF   cXviD0050ݘ X`6e 8_[wJ|la)9nZ PmE~4r;[Y/H̚]7-f1#,x[w7u=} Ueͱcd-'~(%jL.^-#Yl؇ 0nU >U*Lʴg-_ՀLU^|DuECѲh wef:X*0F8oSyLFܗgZ?ehu5 p}Qst$⠀yIa#Fe8@3Cl+灹ijC6iU Hns˯ז4巅{zX+[OISr?@l 1&_[QᎧ!q-6Uwt?U$h1[bnXy˂_@o#2?F]C }h<\5ҷ덪?6irPw?-I7Sbrqq@Y8{ze7$gCsY:O&\k` 2e#M.Poܚ˨K3s1)+Fb9CAZxrI,m`УCsE"G.5oQh J7tz RLH*)P"Q\|L-`Z1RVr!-QzAXLn !Vt($}ZrOraxHڄEmƻA? remS @ "p8}c̤psaıi_ad 0n NQ-ΑS%BsԊZѨF$s %;^ LUUH$(An1^noҭ8R}i(C?͜ҀjE O%a3fMoy)R ml4±mh<戽@įq|YKfZZt @ (T+,DD2!~J:|R$-Pڡ)#mgARl PU~O7W &c@VАzFH(@2ed[ t|Mv89+L-4;%ԤNbTa@\l"x u\18{>q)[^o[]t*PIN{ ;\9is,jWU||㉁0׶b4p oGdj JlOXjs_Jة}A>ttKKޒt[#ͮO(0Q[Ef>\|\-xbLړ<A "Ҳ%rߋxy q49?M| ,sqD >PR0&9TbYg|1i`.E ,L=AlvdzXL=ոqo AFOn=c i2 _ϋ,+yh0kOGME]\ g=w]Zh*+CRS.S *@XHn*ր$_GCfj@xy1q_ڀ•ᖬ{2aE.zC~zSWO#Xdѡ>qXMjtn> f6;DeM5>I0`1WRr@F:_jS5L&p>O{N~9}􇸝2:3~19E2Y =mvŔL SJ~# @N@i H`~U!oA\5Mθi:~뾕F @+ebb77Ll */7kCWuJ/ -$gٚw1ۤ o ztɈ5HKt^F794HnILQ&z,&]m=٫1ȷ XqύTôC6PkM3Jtj&dKO$xm[|΍\0B?ǪG:S0LɒVʇJRZt|C-sfcW`޸r 0a$RtGzL^|p %Yx$`upao1AT% uH X0J{\rG۳4{L,Gn _!JDqdan:L{ubyQ nL1l׺aj> * ,rSgG\wSWN =;r(gImR mN 0DU45,*S|M* ߧfe# V˃~*&eļGdE۩A0 dABOm]le^h.5tI3&TOO(~C]4 pt Ȕ=j| ˆ.HFDhb%p0/Xu`/Z"OoӪPJòOqc,Ё MO z|?HhHZsp؆.j!l!!P[IQ*&L0<셗ivH$^X-җt@ uS=Ŏ }GQ iN|T- >HC,2R4$ ĄjD~Ҧ&#+`P'l$a%I9p T5jL IG;ZD JUAbhCHosbܱPPMf> +\ЈW: >:{q Wm=!Ґ|guHXvMD&r]\{\z0D5rE<^R iaLhpbVhDb.q'V,* -jp-G`ӛb'׮X$"x Ug{_3[@Q (]lUJpOʑZj -?v8ׄr@5$J:eNPt &0ږ8¾ Hhd0:6!Sʕk B4?а}0؄sY)H@gtSӦ'{:D%=2ZoTsW?/0Ein>e|>}Jc(R~c7ѳh[!O<6LW!ŨwS\嵙uI'U[wD~4i Geh%`a7k"ORj$(ISNo=I!;B )kjjT~7=+ M)S['GhnTKpnj5P!jU9eV7[<#`X(SEƮDrv$<2Za "74!7>sTO35Ӟ]/J+ˇC_*düso oj|\.LlN!Nޢ"p&fK52n)F\h4-eQ\W]z{ͅSTC̤B84K.p.pmG>9s˅VZ6}(_ gn+)KfQ3ic x,FF벇Wko03؀zҢ$?,' ,v=TQa 9:-:G>㠶|&l(=,\6kh=CtI5;YWmX qK (8?h#FAW*}_r.u~=O/1|*\)P#Aju7ZnJMFUqFޘYV0 GO/3mˀ4ͷ#kެ@aS &HȺ_0 (RбT=\s u+1ְΡpIR+]S7+uk-Tȃ R.\k^L/pr*Z2*OWw}BR^1Ib@^[]:&chA\u]gBUU"@ܾx mc=;Q2:˓%EirGo8^Tq9t'Wr%7{Ъg꟠9wUnWషTf)iAcS ﺷT:G#ʌ]=܎HWo-%%B?}G&r ~\4p-hY%5nqڹ<̿&[m;":VN+ܮu ~Y- |`:nelYs$ֹ8(z ^ԩo =MQF:X r]E=$tj"R9̢~TtS,0#;HL0wjpl p+ND=* ZQJ08/cE%so-`-X2ٺER[AA`\40 c'J}f7}sR{(#t)yҋEmoin>v삦JR=\$oMAyI)ͼॿ,S) {}zB7;nꅝ{0$oM](wb7v 8ړx)[gj7>n ,d*8h [00dcQ VZ ~`rƃd[€G$? xH\ jN+Tmqp(\:i$(dGz9:>>6 >3Lc4tf68Tq썅/S AgC m?D<38%:3fƖPk6{zV#]jftX2`U1zHR&cܺZbdG(ժ P#`r,Z x sBZam:竐8>SD|@ҠPxHHzɃ@ODB x&rL)Eaf"RDS3LڈgDZ)qP*dd?0&` p7GS DΗ_pkf{Tr`"XOkYeRxF|ui[CDq!a#,-hiL0& "3~q ]~1i[3=@SF#4_fq$1` ̌'ѥ`ZpCZ&l`xN3GFjۘӣT4\ Fu@pnCJ `XDи LD48KQǟaP|(F$@i(u{#pRG. ͆jAI xˆۧ83!'6`< ѳc>?<؈SОp\ _8Ё6ysx{&zgA?&^Wtj\"UQDl6 KB!(Q&^ t X$ቡ0|^,2[MLlȥ^|@^tzy{-J-z6n TzQ,.uL@0JnJڙeP0A` >H(ĒyRҟ.~ P \|FL|# ^ :ZGσ2a-P$!M1 2  xDa!arC$o/)XQb[2Q7gC\&~|jLunKn)op9>cQ |>c''LH#/A!0l 4%'c0xĠ \ /@?,I$ `̈́!%_pTP>$#|pa<~bX 82\%3C+<"=ø\ 0@BL|PhCW :/` sy"" :3ϤiOLW%~> њ;^ƆGPJ#"O q0աN lkh \45(2 m6_) #`/hGMbcSEOe&MIFld{qX;D MƧҤtHՃ_Xdy;qs|3aHߐNrK:#Ā%i di`-how@& D)]U~~(2Zˏ8G~C  0gc#ïrm sv"t(>'pK~vZ7Ҳef\97"6}23y)4ֱb92niEbPhY^DJ01Üdf ɜJ 2'6 :>0\Ny"]Db;#017A` pLLGȞwuX!9͒9)Ӌ=F:΄u"Cgzvy2r $}-W1F'0G t&!&<Ƨ)ʂ@}Hh#Gtƈv4z9o<'a+\4dh4!_Zg:)Ĉ:4>1>J/58{D|vSS"ס3BhB0dǐ6Pc',-k@PhD6*DqFG,95JdɐDZS" 22".<؈@ЈB"{{4~= dE* JБ"/C3M 00dcV ;aSu28ӏQ8fqg R w}QGEFmw6wm=sx#vF2%L䖸X'`*cU$ƀȀn>l>͚0yO܋ 3M^ J'l p|` 5` ,z.\ۑor\Ah S _*IX| Ja f 0܆pkh/c3P`z%H.8JxJAby<zQZ ŀPQiP<PxA< |?'sݷ$&Ɏm8w9۞Ok60L.:Gt %D`AT< IV=Rj 0P@& oPe_(*A@/ 3`(H<aM L BPRx?˼ `$"T pT3gw@=pfJP Zu6Nƒ@-\WvQlYVY7,k$g&2+:t^(ZLy8CFɫimlBӡQ| IJR c 2{le+y0>TX>#s¸8d$淭G^ip3 4s4-k>᯸T9DСޚDۢ[00dcWT َudo Ҁk9'[鿸aM0f5ywiq ''l.vsGC7="۠>t.z;׀ @`( f I@p #m0;0FLB\ Q+Ā`žǀD$_|(\.p{mlc( w H|Oаdr J$&J)>G @,G!PK@T*ƀZTg0|1֛>|(ܬNp oW@>Oi 06'N cC*w`{uᛨ c`ζ"6;wޚSv0`jXmI+3omw"*a>")p1@>L4 xYP2Pg1<~#2zq>| Kĸ 8 :(@T;ua!6FsvΚ0g9wi L8, (JĀ$I\ l sꇃ`$<^ 0V @g4N%X>T"Ax3Չ *lsv8}[ӻ{xRzۘ6Wq1,4K7AՏ.UX8 4z  0: %K04V>~8 d@ $e8!H"/A)|"*2T4Nmƚ;js6V4a |1ۮEѕmRByA"};XHAos+` s|(ڳ ҹgMa |S2"pɪMS'޹)v?00dcXO8 ֠':"@12287{\gzn7xuSl #h*D  tw<8W xt`an U:p}oʁն=a`Sֱ>d)|R?'n n@) >tlP>ohj y<q(>'` P>'`>\ Ʈ_[r 1>? P1a aMϋ<>L* }}|_˙0oiw+NuqqVͺݷ)v , X 4Mǀp]A_X9smqʲo2{Lq<|׸ \%`0*$2zH0Ճ6 0*ǀȁĀ:5J?[7A@.l(*G̃ R$~ h6 `&tKx}He 6 |h'l7Ou}Y7>ۣwmdÓ-@#BB<,꼨 x@\ 2|/D`AX?) K|?@4L ۹4fm`?^u}++ ڠ|_h i/5wBW]+}Ā+Vdx2m/P)N>?`?#0\$ L{^pt) ͷ1!OPd۞} uCKX1q8>gooz>-`= m b'mcosiII00dc:X\ [- cZw}P15tt 4\75(AÃ\Ly{ 2zn6[ 2:dpܝPf@ pd͂ c̃< @p*p1v`^ Pd`3e@8۹Uƀ$ufa 8\> <|(pR@ y A`P2 g 5€7յʀl۝MYܘh4wBd 3<N{Tn $j$İR.~H@(X1|/Q?0`>gt,x^NGCWqX)a\=',aǷ;TAH)T\ Ҹ?p*A<PxAߏ (`_?Qxz^XUt3l>49ӛE:꫞z#Flh=0[w:-VW='0mAx 5u`?. +0z !*yP)`h P@<y`D W:s<4f7M@PM>.ﺽ5h x 0NH>BΉ:&1@̀굜t3-4t9#J8z6-`NJ:gܳۘ"kxr<NtQ=gcsnw<ܮLw'W2tx& X00dcYIxEV xҵ0f(;s ~{j+P|/y@EOBP=Cl{Tf ?>CPSCCn8Gc'6Uh)Q&YI'GV  {f <0)`>>\/>oUG@`SV8 pUluRwXS @;2 LVR>r9j񙌾|)۾Z`Xc@]0#.%hAE{s..Q@ҵc{#x3%z &PO/z=|J3<ÀJh ,8?2 G~~DyX3V@Tv1N~P*V^?8r]V#)̃ #x]eȰ> ~\pSr8 "T Oz^ @`#Ӎ Nm'w S  C/b{Gf : 1EJ*}ɤA}\@Prpx16t رh(Z/HM<A1: PasmVl OR>;.V"z55@$2 j 5EKb ǔ a$F(Dž7Dq΀AN8f2Oz /TGB(늌B7V%`~>ZӒV*)Q!A:mq?ϛQ/G/7@ )&./FQ""ejM+FW x % !頦0 c91|2 n 2JwVWp`fE8jq+ gZtݎV0'~{S>@prMW!72!VƇN Nc 3 w`C>"NH>?g9G7#{ǜ"EA3ᐈga~4`S& `h+@d|f<\*2e@ "X< ! @= U|'*@t0`e İ`Pjh E"` ߃ ˜`LP0B+H ! z,K/O(JG^#ܓ@/V J bJXo5r1(}9:UuZL8P1QK̂2_QA11c1q83C${ê)>Os4 ypkkFP#jtB`':{P VG *t93sn&hedpM3 ĮiNx !n% a _>!),`0<A8Ga7>MAip/0 (X ^J|I_..5@Kd20J=X0BT$x %z+ bE1W@A . 1*O,@^\ ZBxKf uX>Dj"~>uP0cԓC C$èFdS™2|2382K m4H|oݓ  L, wC1#]E` I5l$Ԝ ^U̓Ζ5e: L:rO?| Driu # ! xI~A`|LE|8[>7 p # _q!*4- k|/ǀ>exan`*À%9|O2#5 #oǞaM7nàc! #Pd1ǀO+ޞpɣSMua`|OG#!~=V8H1]t<\`Ahg2 f@%B/lN!Jn>p ?ۚA l?m4;&d3?FUWI% wT;~i6rCT:cbSi0=!Fc _ s5@ oi#ӫkgsDi1L=F5Ā dvɱh| p2@zy0]rCT2ȹS0F`h0N@JINYTpC; i 9h|E0gx(>w4\xs Cq4l `sӣ>SȀG#nRTZ=Ei3^,}䃼5SW=5k)ĮZ{zJ!Ɂ f@>ofF`dACCG8T04HP~cgr+d1*z^ SHNdp!p͚>8#~L[d1E]@ȊOq]V NP@D!Q+. îL:Y )t? *^ 1|: V00dcnYƜ ;ϻ2U(W A 0aҺ;}9X~ ̀%$ȁRJϹݹt+ AId |XT)k| b8 L:vQ 2P:A;.T #U@(>4,@|OAKdx f^f͹v0ŀ%\(p֥-L;FxJd0tlAйOq0292@76 Z *!'y;`͌`_0Tjl80/^4>T-`{鵐4( p|)Bp`mι ,ݠX1ۻ =R0 A` `p)!Ɂ ]7@CZA"sn۫n}HVjx @ ` 0`ks[nۻ|K D  "Jf) ǀ @_+0|(tAT`1ycvj?LCN䤎@_0 za( YpPE|pfT02PgF  ԁ=E/A|;1ULX>o&]Y\@t 3` zN(fwM'_`Dk$ev%83I`PX[-.4T;P9&lKmݷI`y?ҘrN}vP g@gڰ}XOe2 3a@-Hm﷌_}d |/'i![tOW00dcZC 9w_uwWݫ{rwɺW{uݷ+{S+߸ӝ4ϻwW~w{?P۽_]ӟ00dcuZ v:yܶf1|(_ qk?tw;jp>?b‹{sscnppp& A  XK,*a@8F €4bx' <@X>G#yT!s3^n`ǜN{n79>>>g'D\/r {`bWteS7;K~s0^4+e@ p>,a"yA`':|būL@K;2:'`P` *M:L=;&B qjsqNw"`S @ gx6@&$|DV Ҡ`R<՚6ޟtݱgw>eHDd .bH1wf|pRˁ*` PAR$Ax^T8||^ ./@^Nx3%P2C X Āus}w:QnsM}qpD\ P `aXԪ2Q|hw}PPP HP0) @PJP<,(!t&|(՗pl0@a$Id C_t: 4:`B̀[ ι_}3yۍ'9md;,s&sÞk>|TN9Յ:%vKYW@;}}}Dٰ :-\L'Ensi\='fDnܷ_~\w~Ɨ00dcL[= ﺻ\vʊH9-1 N xAH /k˕}H>md0mA_sK`1j}ގP;/>->i2ހGx' L 3`t 4)O(>d`hDL p: <\ pp*A`N< lIgD+cX>g`˃ |.h/0e8P@!p: Mb4`,H2`Zp)H<>g B 5`Dπ%@0ŀ%>;n "У!{M|(Y?~)3u`ʀg)@ý ` F}^IP`mm۝75nN1齺xnP |/«@="d˃6 LP|(ܮ;6;u胖tx}=Β3#V %6 ABg0 `;8f dH0 0*K?HA @1h@xI-,xĠ`BA?VK! RgWv`÷|P|M=!=Ȁ$mt;GXl #=20:A.zH3H6`< ?j^l u S8 ;*0jei|/ސ6a9Onm 0|?x  {x>Ok>Gg7IՌ-ҀQDa0 Ecl/lH`A#pfA8>/kN<ۛ" Sƒ`_ַ,f4'Ȗ>GkX1'@_۞}0۫s|ՠ|)@Dm#׳Fg` c̀%wWV0|}ϩ `P5on-R&tqmPż~%`}-00dch    cXviD0050 Xp "  >o:E`_ o͐y1cb's o3]BF~3oF~--zsWʉlq`ԈbCtJTL1-R庾PHݼSj'ʮ[PI,92.[ڥ ͛WzoiGh餩4K}[_q[\CIGCrea 3Mm \Vt]~_U!-a{^cXk~QYl(DGJtϋo%Y2ZYx;AaZðWgo8~2-Fo٨-.r($g-SZ5efa)ǿAρ+C8W0$a U-cN:c 8&LyAU`+}(+ :!d6jOj~ o BEK&Rib^ܘt>ܥj(cnFjK%Zc&6 -}rE>t9 OH/ SЇҿ -;6^Lzq7T, ZmS{R+'S`rO}Zӗg,5 G M<K6"SS6!T>[Z8~}dۛḯHvj [U>cE >nyq&(] <{A :jר#ũK@Qȸ- !H/X^p:bU&0+~{?<7B#6z<.{m5oKttsS~F͂E*BTDdIs̀p'փ0zԹO}2-YIɇôNZŭIU+V@xE'=Ѵ儦Eim&4e@ }Vz2@ 4!jIR֓޽.ȷ9/Uͅ0(Z 8<sys5aj]ߨW1U`ʳ yzH `ey?@W iXI\`Z!lQCazCe6*Ÿ%T A3kO@hf8NHY"xZ{ʋ̛VqKF[] ,_dDM@(?7^lF;5uW3N%EB.tS0D`B<}o;i gL2qْ2Y 8qX<3ƞ2[Ag5A5nuu&k 9A $"5b`GYSD6Θ;ΊVܥQARwaJ'*=)X٘8akߠŴQgFi__)[EcpvBӦce2EZ^:<ŝi}UM{`7 ֪f{WJ/ @#]O !tĝ-++ H͗]R/*MLu"dVHњzSp>7? ! SЖm-1^Zr ZkWG3[@0 6*I`a05*Gȏ % Mnl,1h5d-`0uD ;VJ,hOi5[!T 7Xﲖ"g1CC:{g>gj޾{#=@?{۬?@|hA?i_{G(>/|` Ax1gH0LHty3́Vjg|6N(ۣW#_3+R{7p:I}}۴0fE|T<<#v f^gTŜ @,A )/Zؕ庅H@*dZ/ HW3n71&`pXe$*TxNDC:yG-B/pŞ4Fµ(nW# `>eFmgMg8^fd_Oo;>®xk9\p~a(]@StUt~}gPY?>8E=+g]8I'p!:g4@?:B>QHógGՐ: pg43EN7PR?~+JvY?v0g$fl4 )WH tt$bs;Ήk>nF=0! $*t6֖fr!)'4?oX גq+x~R=J8jah0A+Ui9nT&RH<JXOfy|kbr>HހǛeG ?)O3`2yn^.#Oi͟aDf(w~`x(;[+wVA]cB&8~;5Sփ:s} IVxޞ]CN'F}G*?N0b;< [^,wO~~"S֟(,3""w Sڤe(L|(`%+P#'0$5!`2eBP: ߍzťX Y3= x-| VRA2Z^M} G, 3bUN` Ԩ$"@> l}/1n:re"mJ"Eebvew_m>)EYIe;?l;"o]"GgwF#^O6%>}0pdl;ܒW*-"`R0ge.yMR{IEmBVNB)j=)tY³݇&B(=efeD'|U{_`d3[zFGM9渂ՑCd"fǭ^ߢ}-4bY&]ꂞʠtғ S /nTDq [oO1A,6aeD?3вޑi4-ϝP;n'KcsՎ]={刺g1um=VT&R^o ]u&ހjG$jU/^P (d ͕(5pVA^ K&_|Ay[I1ƷÍ.]ªx6?wgUBH} "qKb8(Aðx0i ñ*5@bBT?^zZ*xF Ab; >RǣH֏b#U6gҨdA {AH S `̂~$wu,LKr-BH0 0d$0 8mSlxp2yc2"Z- \O;;Eqa5(%9S3O"sf"_arw5&7&ItX*b5u&+_y0=tpM%E$K/HZzP[ Z9(N\ΈYK""5T} x T2|fTc*܍4PH}_t zU23ͫ\m1g9x*oVzy<[U}ߡjŦ9.j3, uIֱMY<.*9x]}$* K3Y1@{ցà:f|Hm{Cƾ R (S/JE0  ژt 0>#*0t`)VNai`O}bgIϰc7(c&< 6PF|PIc- :-,USYYw koo,Xi3 mZ ,7#3Ql ~kg{H']]y^,YBŽ޲H|kR+_@<'kM(s_el$;%y$=~ A7~҆~ wPk7}@*jqGozkzcjU Zk4JG,. T z9zSXTzNv*SKU$ͧ"AM1T 8uMz^Rڤkw֪9=3Ӿ2yh+$l]nAhjn!, ý(ًtؚTbPeV 2:=L АbR3+_b @Sɋ2Zv=@E 1S.tdPEbd}9gеvN8#[3XPij%Rj~XPAёեtcuJ+R6D[W:op+g1f-qdECx+zE,"ڎcGی8}XZR'ąDHi\v u +Mr=:&r+xDLq ,%GAY\9 et^TٶTEIcN5e:M߆{ 0.zRE}gl?QwA xؑA}Q<5~ KSt0? o99~$ޙTs}ydU-F "Bl@lRҥ*aVJ "$˯lr9tق W+GUZť-T0JgQ0ܻy(|Jb14f'8R}ɓ/yrAD" z /5W7.!2хF\8xNprhWᆱɋEWD)O- A@{=;z׹m 044OбfTpǫ=Y2.@4ԊHt:AI5Ek=tT{;[έ <ű@[Y!bZHqSWT,楺PCݩhj2Z9[X(|89O_k:@ 19ޞ/H~UBT̄6{VY2xEY Z\.^yT=_ATaBUuFbf~)&ؕQlހ,Tܴk'Q`KeqG )'LXQ 8%oY{WGyvR)lm$"׷U/TJ+0p9 %H'& j3^(X4$\7 .\nq+^?VhQpLUoYZRY- k|Ϙ܊8IUur8 *`Wz{?~Q_81~;_*Oh?xDdUwdm#O7=S;\nF5T֦["I-O",{b}T"XvӸ69~ zW}2||8fUȒ|ίN߀R jpw"eچ$nzZ ͝`eO"#S o*@)~b)z&_ܼ@;kY,R+mKMW0SҸ,H~|NLHW@ ^xN8qWǻ>:\Sly=).r@@s8 ͉-cF/6 a$awd0X;:9}o>2tc{t ɼdVt=-$ Bw=02om} .=P?r dOh2FD4dIˁ_b'AG}9<}mVYpdp1)cC j7><f`TP> \3FhDH>'"\A.?UJP\|<U [R'Wwٲw9]nDR^<0RB^%D c(Qz $eBRm~_Hp|Xx|\\>@$ax%:x0e;Oͽ\iXhnP7r(XPv<BE[h<^r>r&3ĦxPaeӢ2bXfˀp =^>@ >Ճ"@ Fu}\1wMΓ >sJ8@-х12uYwdX0GFʸ J 0 @U.48 >j1x7N_=øxA %xP$P`@ ;B`#E: qTj(ʜzp8e[s;6 + dd!0PtPH(<~F.x A E>0p@r$+Qj|A>` x 4v kx}`\bo|8ob5nf31QϸbV&iAnDBX2p@UEꄰmp< R 2/e)0 PD1 P&q^;j Wgw{Ctܯ3q7m` }`^:YaAݷU)=W6u>)- {9gT<%{V 80CR` /vK:o<+o86B' : a00dc\\ yqU@}1-c@c*pG˺ ,L!AP8< !YpS|v P9|˫Gͩ@ Xo>,g_lۛm͆zebknnx&aQeY3J@@,Nb &r0bfH}ݝ ;7Ixnpf0P8AQKj}w}IW?b 0V0?|=C0|ѲXð< p @pR ]7MwItzk톁Exf#< $ HBT |_r;9kĀ%@ԭX>cl*ˋdF2a/Š!HP \^%|(Nswnm€5ʦNN=hӜͣ`xBx2 P>/"3N $@+@ʄ>:T=T^! Đ TVҵ@ CB0.7qx0 *L% @ Kh4@AJh0#!Bw5V_fF_q~8hN|lk3紑u:i_8ښNc,Xgh0C>4"HP_0PP MSϪ<ֽȀX팕[ >օωx?@2/.`$ lRy Tmħ]]n6ͽ:y}ukr|\mc{guo f}Pb`gImO5Z#O\ O@&F]00dc]2xt~MYuN1aXcM0$ul[[{VC8Oyrd, umհLޜlkc5бn{[ͳ}!v/ul,kmF2:ݡC" <5~J?sXLÛ}=;PFN{KQ{pi9ttfݿ¶ﻶ6W#"v8+o86B;[s55f5 ^u_]7}:YǶ[RlC+8W4o5D lQ=Kf6Oaij5hނٕ}}mu߭:k H+})Ж}Z޵cwuNq00dc] OaK͉fmLX5S4eL{|yMK=8V}p421b5t`0^>=Lri (òd qePU:-Rn%:G*>"V59pjV @f\  x A<<));Q`V ip>T~AV0Ӈ':@)O|] 9 NsrJN0d#q'<#`<`|WP Ā.6 <ĀfA`p >7iJKBBp3 <<YYpT(?@?0(˕@>Ah(PӁD]AF)p`4d+axA4 `˂;6` lِJҰ<?q bbcP|l? 0330<.Hn᠙'EdNV %`VJZÀ-wqp|8V@>(&< Uˁ>|)AR?uD7xAzj@vU8S;X0 QIc &FG.9r,H1ÎTVe#4]|?\%Fpt+y5`6X3}2hH[d8N wZB!pH ;SX|+slaⲹZ8u9͔f+~]7pP|_@^x 0|?NӅ}>q!9R>9Vi%rE!=tc8.cDc`{WLAF\jŷ<(ۀ#a.v  !h(egܮ$j+$mmX0xυ*=xpZs-4ptxLB@8ϗ%x WV C?xXP16Q*?" T$:$ > |/4bG9`ws(ud1#`|ÛY^('9hPpB/%0EBo(%HX(G/xʁH `>x(ƀI(aJjJ(Qx>|zːﭸ(M^:FG9)N;琊Bɽ Tdx!]o3bP0)~J,@sc0Cjb$a)C.^ ɀ|<PA6˕āp!T @ %0I@ u:C.!p><# rnV ͹$  ^JBœW:|xLָyNl^ p B|8=^#Px0@?BH |(Dfǀ$I.jE<3`?@6 xD|Hˁc>s_3'pdL yA1r{ @A'z\L*ƀ% lE h#x2!HD\:]L(^мH0~\ DCh0t N6 L XaS#dQ:IsꮒB0xm Q>mDFޝs{wOvma7l\CA]e6WOh4L"'X>/Hi) v= j3\#6XJD9w6\sM*V͉|8T,vysqsengpU KHɉR>>T'H>:2D5#x\yMĀ$R!؀$jDǐL:82ML"dϤc;fB;{*sD&sFc+:d00dcf ^,)c@AR ǂ0 )ApQz+U~Li0{{'O31 SN %`ä`p+PP$ `0!"`<<D$㨠 `  `QX2. @_6)]B9S{abRn;O4FՀ>0d @ ;&z Y pqg7PB= B;#D}5 18a41|0>|_C52H%|1!7Ȝ(A bBy%. C.`'Ta2:6 K'pd9Ro{?xgƺg{ơEBǍGĩK—i-7M >)Hѱ À& AH` pYm FBᘌCzu=:#`(3paӇzي.xOn$:$ 7b`à`:z8 0dp Ny43D|<2r9z&$s>`_>f+@0K0> 787?| ˂ >6)9Sqw6} wXM{2tlύNS$8ghNpHxQqV><_eli'I hP3 c  ">@ H!@ ]0A|0xxA*  ĩV{Cr9(ׯ\`P Bx <`!)18SD\! \|Xh~$l>xj>x8AP\Yp0>@p|DB Cŀ,!0)L :NFOE<x}+OF8Eqm8n<2sQpד4n``˧0͠,T;@,@ A8 KA` akr;M N $d3Bm٣KF A)/>d'0?F7MP|O\2x Sx :`0]bv4@ԃ@H0@+t^ "`%Xpn| @%p`(>OX6T|`> o9̹{ϡPe &t9gT;8>)̴UM&(ƣ ӅOP( P ]*ҁh(>T@|/MHfǙ g'ySdIM05JLt4#dS1ns&N7nkP d.ucxd-dfS@}?xb<؍N4RIԑ :!=L` к,À5`273Q)#鱨1tSa;Ld%k4*S6q3R,F3mLА-Y$ Z"MYJZ2P(hP$pXZBЖpVǚ00dc6h{~ǻÑ`xˏ)d!09b50c tl{8X dI|lANH@`|8T|^ؔ\^ /2P<g}W3@_<`6w` `*@L {L>Goup sx0,K|Pd`Pzi |ImBÎM9la44 {pg{qsso\=`H`րe`^ yt %A e*,|\ˣsohpaӺx@>` B@JĐ f%pe ` c@(/D%z[l3ǫЩoֻjb0@oJ QqypR>0.mP0p>< @ z^.yP>< |AxAp>  xeh>R Ax0p> /vswW;46h0 yqr4^\C.w`~B=VQ*P(  h ;$0`6%$@|/82pm) _8>朓G}1e0#`bfB xAH@x$PFr@A@A\U\&4 Fp)\\ AF6 0 >(p>H3Wsu}UWu>g E.P x\{i79>ox0f:q|[oaks6 @͗@}ίoOd`Ã@o|ƀ(>F!Q+ ztorGNKď00dc P 2=C)?)Egp҅q j4+k}TY>_|(pɠhi[f$:Vh\ {}b )s`UM_7ҍ$HUZ #~ԃnc`<!@`AT@$Uj)@ qQiK.7-`æKVSYꟺ1Bʁ Io'L G%+b: +.0 %B6l`xt[Q8@@C8anJZc9bpcgLS .y [lZ:FSN7(1`; }Tw+!&]SHx#Q(_&EF\ۂ(GϴȚKFK_OiHbsNcBˠBHiE꼨 ˠ'"#.8#F 2 WQGlI߂[b:DVOxU;;8w02=;Re)mLzwj8^jݯ [/%`3p0dܞ'9/a\x{H52jWyu ¿ 3f!8 37ȟL<#dEX!%FyB?D>;X -?q"sfvP`*~xD1؃ATb, <#c54`0*`ٴA +Z *x3 xJ a/@ژga3\F B<~N4|iKMh1񯪠mB3V:SDybǜ3ժD}/v*sj1uAEh vIR `o#=+U;p>fJC-OlR7.z.6O|acO@ϛF@X<2t<:N=J2 {?26r B' X|)ڱDMkb0h?8S WBH#`]<}e a:(pɷk[",x)y MP >N.r8*PDN./XSfw{# ^ 5"/όP9f`OT| ˃ |(MNn 2ZƁУ0g^Q7M$2 *ԟK' fh<7 rg{5d,01@ N=dСMcD1-a |!) `z%Pe#RG`-jhj l)BBGc>2FX7хK &_a*QJq{v|-gN^-Asxf0O :IhAcPC4@=》<ƀDp j7&MJD loc2uYr 2<\ 6\h;/L V T0xHU ?Xhg9p)3X.NqÊo:pd+H3 x3I`u,Thb69À5pS s%ƎD*NFxEP N ~< bXvxUǕm֋|G_3ceQrE`?W 8K`< `@ |Jt|^:S񁧔4 $@@b= r;bHaC:::5 @ח%G1( x4 J(28@(C ra2DƎOמӴ g @ >'*?@G D\$pEp0A<T|Dx^H\h`8<>oP_bzDv0H0w:@x1_*W )\b%޴pׅ1*4 bH<aBx0 ~ 0PQIAg"eAV8!)> ꟃ2%ؗ_| hHoZ =%x.Ǡ>/lK/E_?OX/xa*3H^!!hf/@υ, QI|܇ 0c; ]%Jl:#HM‥ȡafh`s =Vx303aJO He 1 e"s %j0п)zܤ*eY8մ3`1t)Bњ` J,^ OlDf]8] l1|R^|wr0}>'/|õ8˅Qʦ 3>Naޯ$؎A^]1U|3{HJk4D:iĀ̞ NuO^ 'jG4}"O GV6q vpbNL<"8U-/@|C&Զc27Dpf{DeX;}~;՗j6QKYnn0|#&Ȋ+X$.6;b!S66]:񛻬4MO&p-^BJ}ZɼeDi>O.(2 :{4 C=r4*\20 1Xd`DGd("_pᳮ)mƨ hC#K3 0F#3oTpN`%=M#/ $U4h:pUca៰ !)z$X ģa6Y Q#|Nn<'e mt1SceZHQAp1GdA 8HT >j8o EA`/00)T% `p Ec xĀa7[P00,z ՌD @3T%X`!v `V;P@pGR V*]02| uLPpei@>ĬP ax(P Z0x*/P 0>> FωEtmΤ6iCRR4v" E'xfŸDl94^ ]LAAQ@#AP>~~`1sCXS6(IlS=6Gvz K BxM'k$sDdf)qB1#$Ɵcr:v 4#ǀn](YCKI ȋA86;@@J @`6`>0E@%Ɯ% ޙ0 Mp Fd50DHbx/.p9x2c>s4f)i|NrNJb`SS93ζQnpo'€,3HN(.k$ ѩt3SB3.HT78A kbd\ xxhɜ3\ٱ:Ԥ}$L%MFQ}$,{ipS%f]?|HA á$P0)*lr`RA `RpHq  ` 8,G`2 @82A` /`|3`B !h0T;œG\AO!'6p 2Df $iIϢ:Ƃ˺F%NQ횆c&tI2tfnlZxn7|oWhy0n4bBocg>/C;)ߛI @~Oiue`Tênm0|V}Xd01 错ѭ<0`fhʘVyrLtppe8ƌ9 q{=<l2FƦ^97W'/duϨѱ;w(?N [xR F5;)]Б2p%*epBXo`ZiB 'r00dckQ{8 ?`+sq8#\$ |bb71 %U8(u0_B ?)T*I`lP˅f˅ w w;iϾDN=PP >4&p: SNG|:6 ql*.As( N΀$Ͼ8_+Oǀ$<,80 U 7||}v8Hp1,21 o2:`s`K7`>L۝Pbj剃9ğwvLronC|8H#.Ґn<YYp(3ݵgݥ ztk> P8N0%A<<6N 0Z2}_ 0ɀI"Ҽ4#lp@A1Cj\z @(A @K G /e 3 )T>0x˄`6=.4 0< np*P%a J\( 8 C02`RB"o0j xB @!(Xx #' e"xNl. ݥ\ "45_RH1 V 0|xA+ =%P )(< @4Tp!&̀8``Rx ^$< 0dt Q>7`A! ` E\P>G` U@ X`?h0@0v%> 0X2 |AV>^ 0`>H x>/.X}: ds}->Le_sxfѡCL:W2>?%p2m&rO\i`0ݷwin UǠ?qx7 A,pax0ouK6ӚXWK*|ݦ@4Cn}l }7[>ҹӻNvk+5:of>9Ӯss>۹jxo(s`PXf;s︷rk00dcRux P}94峯Hdul`V0&)T`E=vp>#|ūӪ@5@䖧&0d@_*s̀|S}?D0|а,)G}oA m?2T\;^Ճ;vϊ{cǀ%<6p|([\Fq8|_@2B|^ > p)[\^K\>  p{}| |ϊOc{R |/{x3I7 g>AKTc`[i'|W>p.<-lpMU#,A0U)q*``!U`tdS V8X>,6qp]g{lÿyQϾ@`Z8$ zZhr8hQDvdAV GA`\A y9 E:< 3 (\!KԼx/@x?˕.%@" 0L</P% Rg їPf@3J ??,j`"@C\ (>;qI%o{aNlF_Ov,$XWV]7z`1<$⠄= "|88 apdEJ8(#Pr/@@/L 0RBXNp][]}m|"xu`k{`Ro:9}c{x>oo+ܴˮ+dw00dc!   cXviD0050 X\DA$ ڠU34@b<_ I_=eP)ŰU-A=!樳C0k-?c*'g&($3P,e%ۖV+UhEvw`bO}e;-DsrvW}&[7nՍGgҿغ?JoXig!-,V)Q=@1ک]x4v>Lȗߠ0tYެRzG23-!g+ğ[gljܰT-B[ RX9T/!ǷOXz; >}]eNS>m"QxCt+m3X.vYvֆʣC;$[*KB𕵊azE씻t>`j %0P!~?j}WՉ o~i][٪-SG ܦƿC MC #)lIǶ7XFe1ۈ;QcQ3jKu^)aHrϽqr!}p^A!HҐ`Ȉp@> jܡ ] )5jϜcDН,.VL8 0c)-lddduBAc ua@͏v#޽7r7s+E[0Ձqy~k C-2WmۧŔ1jvy͊RITz zl<1 I0}0BJ6bA)X/N|j TJ)Xʹ=01?e+gTڬEPc N i^ydŵ{k\Br=g˼T7")\墊.J#L}#[2sdE襤U40C>NHUk{K u7BCqB26Rp57P)J)6=B`Px?jur>i80k0(CM(EϤw NާmJTE:?id%L x3v!n( 6oPy1D\$c-[][jf5cS\[4]X2vF9J֗y*F0vZT0M& 92"ܿ쀩R1`2x+ۀ DA$bz\ g9A߫**,i9&cURY> 227THD%3UY ?`O|gV\uш"\ڌW]1&^@1 #`0| 8azx~Aˀ'%IStf "g;UnlQLP,$Ep\|X06lsES|~;/"IoMΣBΨqŽܨf `C/a-"WZDlT ! Ba(BswRmĻh&c2>ui"YHhN&-j rWrա-Q>[)AAvv>5e #lDsc+ 4fRBX!?la[aX?WT~,o]/evt,*KR$T$D̫FгŹ-O@Xt% ?֤a>-/+cͥ@ώ-Z#4ՠA!ʻY N䜥@`MFf 8 B<cT"8|$4q#Sq^ ?+eݸP=V6Mjj#M$GAϗ6`BDIˇ2?ci呇"ؼ8 <cB@Rmqƛ]SfqL$&A(1xAn-- |x @m0٣*_;PI Öbxb8Fd8y:{gR+u L>Rv Om>kK~BW#:B#fm#` ..y]o!|a> 6XOoM.q6Ul‘.^d<~,iht6^Х6sUyՇ24L`,>c]M즁WN >4"oIZ;=ZN앒V.4/&6(c-jNWz? 9ڳ`E &Amo55ԉ(bЧV1~ӃѭL46"4 ^v+L4,YޖoT$U6#`^AފX`)qemۜ :'_5?D0 &5T#pMw@5qjfTCpW}3>2͢ݤ_| Vb5YN/C& QÌ8>v=G~wi29*a6ܚ_ j#JsU}?BqLZ ZTRרQDu4:j[cb|;]^:vL;iwH \i0ٌr6 ;@vl0lnUSA?rrڔgK.x"Y䱲~W- [uW>vq})"#/g(2?ys#_ޠx~*3hR?i֒z׮zUT]>[ܜON8LM1{LeEOz^]aR~bhQ 90p,IJ #ǬI4*4Uա׋a3jA|DZE1bp6*LSHb"3T']֦ؠEw "qR }^XB>v}&?u9G;#oYaC}=l8( ~ڛ)-eQ?;zj?&d0OGWrhX>xF `, :-s|?Twښ ~v)`0Y^=m'dF.9Q9+̗'i\i[MS}#y5 N<uߖI%XˁǦ x*V5ӎ:0 еa@:T!$行 -DZ` (}P8VV">GhQjhAit **jVJ#ήJl4jo|f7CB7BlQi[PDS6eovI٣x A@$(0^?hz>jQ- eݐRL&nUT'Nn.ic8O`'4WÓܯDG> qWAdw"!Әo:=: }c=@l sǖ#VAk1viNź sraGFvxrGc["1D`Yas$GRլ4 AѮadk jsPD)k@bbd?.h0+x0l$1U%4€4U`jxX|FޤNAY+@ 1ZP`A=<4BxLx1xEAtH6{AîK8SzTd <ǀ7@ bGQ)DhFش#!B8;}x_U*F ∳0RBI˭OmPԭQ*0d/pB)H>hߴ-+ߟ,m"RuR|vņxֵ.}2 LWpW9W:ڂSшsR\6`XjH_TGޑoubʔ?Lπ4{PP+1 <}$sk DA;Dq#r|h[;/j}e6'NYN-S)}m@D6`?-Y0ҴAF_a/e+ V*BHQ~S3p8R[7MxKB:lnn9T} -sa0t=a~$u8#>\s+z<ai Z?dڜ< OA,{=-Uȋ-@!_rs.R h 2% ^7τ3[;P")̴]XU]^B1<`;Q@LZ)O*pP @!1yDž&d @h?hAQD {K(bjGZͤS\=!==Н#g;xpo484s3N= CfZMXku)_n:xs, Ɲ*U"ZH&~abdZ]|v~G&z[Z^Џ96*%HH҂>"@m ݨkܧk#? ~ȰK#ԟ:E>=[lbޅWCR`S謇[n, c&!B0}|Fc`|쒥CDD<c)C`}8BHʞ435k,Gjsns!DQfo{oSkV!.)k%! 0vGgZ-,V+Ubw& l>I(Q@(B#"i:UohV]|"AEׯuY$_s"O 㺎6[kG9 ?KwB-oNb"42S9v:FmCtא''*RdGrQFm pUV4.{ yq`jGmڇNm8Pң}kcO5[hQ,*nMfjvܭjDuxH.PV vH'&9QB ۷!9ĜV\xp |cOQx @>BKֲ>m4)=`ִ:߮k+jYT5YwP.7l&|TsdM~A ðAPh(dɃ檰+>ϪP/p$<>/hp[JدÌooO>ϳ2~nQd6ȌʥcFb(m_DP,ʼ<,:kG 吏l϶K ̀=w]\cNHG9:^&n-eԞ[i4Kܡ&E &Å0ŧ^W§{wH$j@![1217aqr*"wCT&΢Ƶ./TO!W]ۜ6:Wsڹ2_3 Y)^1(V[|ҞPLMqyH^[UjnQx ({USVDaUpw!>TbǔI_7tD|(Pw(GCG;% IC@Zïӷk3g'z3Jޜ>r"]=ڤ7s7mՖ 2 RAWgKLl$XƳ)>?/C/)3XCɅcr  njUD4V{5|}5 ,O"NvV-j-WW_=aHJM-ґepp]+:6U.8BR=eS1~ >a%D*+FUu6 )(VA 0N V#Ȗ%;=~dK );lsMhV * Q(0Z@hkaVND AؤۿiP)v SaA^~:>Ѳ#k)(|KSxNз&~׵nO⚡u^^~OMz)2YG7>=ъs9V] P\wb*9e֔z(P×oqԃd80 \Ċ.g[ _F fS~!{|%=ȈqǶƞM0U6@qbY̌o@/ ݛDo1Y-h<8џ/;(6间۔WJp>?,(,!~`$m?P/rWJڇ-8OlQ |B R4nV*j}FթV`d{Gx<_ՖpzEqG4wI: 7d-%À=o&U+ 4C{Ǧ+[hA ) ZtCdڊq3%UScJU/ 7,U<$u'Ӗ?pmsl!SSEkfN#46xjOZcŠbQO2.L?Qn­Xp&_\,!T)zW3I߮`}JE oN2?,Zx-ϕϬƺ 3' hW)YRr̲J@Y'PGiEZj }qdJ-jGʱ,a8R GgV ue!Ndḳf6f#"QGd n:Qk#廽'^m 6A'{_S՗jaWdU IfC*ml=#0Yx<'ufC9ucH1APQ UBp)PX0A7`#{Tq@B@uPIE|P UP(1xC߀P4|?<` O ./3Aĕ"9"0(Ax #g6ppsc`;q졆SFluzA \5'?2T@ }OP Ƭ*ˀ$I tI 33< G=&X M:O LJ:v< y9XŬp/CTI"vN-YL`§W(>o :̀,~XF`Uhzr//e^"NJ>8[!X#ep p|Aڃ@`ɆKoֳw<6`h }YƍWr&ӊL*e^Bc7>bMO={}mI1`|8MC$01hUAjC 0|/ /4^T F Nӑ {d+xfu €%P1Q+a;ύmmT>Ie>. HHt⎃>ɵ_( ܮwIwFmǞ078;0nŕpp*A&@J!b"HE EVBcE,K/R8d\l$J@, C$proOoZ==sVo'^yG{굂 ?~:>\ Dt(| ݇KOR]4^Z@ Q؊wk> >ޛ[{ |(ޝ_M3o04 ˆP C7azF)F<|hAl3+qm } `ݹ9<38mMޚ"<Ѹٷf+Doi" et=;iݥrӚ{}.i zwY`Ɲ^MzL ?nf͠{Agp.aX00dc<S F\Nku}laKB `" @|?wİa8:(Rb  x "Ja7E0 Ā .Q(!JDa ^}@¶1ڭ,_ǀXAA >h(26=8&. H>cPiGK2q @n0flWl4Ll*o|O^̈=P2Ap|A?O<_0` H0* mZޟGbH>#P@2}>c淵}K&yDď9ɀ jmͪ[ÀjwW}}ۺs{dPp)T4 iP x><j!p{b!8>O` X A&to>T&6g7cDP3P c8R|(|C6Y;o W>^RydtJêʠuJaH$T˃ $ب R\~ʃ 0.`P\ !(DÀ0`&^ 3}{{YOOc8L#` YhEI Rr@> ̓ e<> @z  $ P<Ah@òc-K﻾>>$)AEtK`0 P| ad|(0)x>/ @p p04dpBg}3 ^Rͼ҃4}M|G> ?A` M 8C# @lGR%  4\ "xwV2W]^w vS){{}}®@H 0>dO{z}mA}ͽ{eF fWWZ [<˃@wv%totN:&C|/{00dcTi*@}ϻYB60Zu>nѠsF-!@-fYݼ]2L{x^J CIou\|d+|WΩ݌owkm[WsolFP,[] ai·BɡqjC+(˷q{oI6}6.Xpڵ5}t7gꌏL)H,f]8tj0{G4te\3{ƌp[{wPaUna%wwv[0m'(Jr~rc۶)o4‘PDlmַ=XwgZȟ00dcT 0|M{2͏xUJ!j@s>> uLdl`ulXᓝsmuR|6<  ( CƀV<&@\zQPtU K!, qX>Ā%JA=Sb` c%u~2 xG}\ |AF8>D/ir)2\FpN7s}Yp|_]ޛL`~ ޛtR۹m(> o45kԀ%-u&J/ [X.&wJ(|bqA08^ p <$0AjDP|Ousi8pb >D 1(7~?.d$@Qp<>/0ej 3jA@ <<(Pa+lp}O}mϮ2 >*\p{۲vt0" >\%(2S%UYp 6 &xt 0Pe2x?3 2^  | eA4Q( ġ,yHA6 siݳ .3dݢ@3NwL!7 pRh@ !,zHaxİBT2!<*AL\XM(>go}>?sk6yɬĎf}Zp|ݶM[NLʀ|اipʀ>o6(>tag =̀%p|\n`/{ꇓw_t w 00dcUd8AӒTT sPLFS{7 P z ;79 RoCpn zOH%xA ƀ @ T+?x \؈V<à|AP> {;C>dﭓ|o'-@Tj818;OĀMmX0;0( `ܦh> Ơ fl`  `|HP3PmS€%PoZ7|\+{A f `SP| B`ڰxA=P6 c<\ |/ٷ=|ЩH>$b<+9\I>H0V <<bX% @:PP|h]H6w%Ɲ+Pcw+ۑ;nZHp($CD `}( PXx/P` xt q,` €,o1,x/i@1H0o~H_N a#E|IQJ x1fۄBHA|]Kh*8#`P `XtA?P|(DS`4K` {Eo~{@)Dφk{'Hmߎus+f{ѷ)$|ؖ*G bBP0|?5x>J` :*?4:{ϦwauKis΢l36m@#o>.Lvm7rll2sn` 0)A1p9VJ` J^ AB ((  Jh>&4iͽ4ONmȷ*6ئS̜r>U7p{Lsҫ {Nq*_@?0x2ax(<X(@>Hpa00@)1A?V? (d8*A,P xv? A `8h0V xAR ]"I12˞Z::@eΟJgA @@(A P0(K$ A+lx =@0BKD PxA?PxB #* @> `ð`Q%c|AB i۷Zam{z B>kБ4q"`0,g{4f/4D%p3i'glcUx0f >/W@>r sN?0݃@ڰi&tjsaNmр>'? aVtL5xx(No}bO{c8f>`oOLfDM" D%FӫЍ\ G00dcU\ >cF24‹X58Sʊo7P > ?DEuW_~E4Czᗉw$ (c)SCK0@?Crn-<^!QVeE 늕~ @+:n}@hJaKA._z$A缟cHpPh0rl,ssE0c\δƗ1O3|X ؄ƞ{4ct;gGTb0?Ao8ނP(ڨKJ"P|FMPd 9m@QBdզ ;E&kZ.iIGf?I((ţ@4TXA//|_ĥ tP͖1!B~̊wcS, Ӆ <ٌ$,< -z a%s̸2rv,2uv3CZPsobJL*cX8 - Fp,(kӽ{t)FHX!x(\jJB0Q(PQ'$t>2]:Nrd.BT,Lun!%8*D:2}DۙQhAZ.4a(F=b ƃ4i 7R8ɽeb<,Cpdu|buԷ8L8"@!jHrֳC"OxN1Γ ٛ{d̐8 #x^=Av笑M:cqfגx/ ͗t v !N ^-88.=sOzH3:N3F\8pꐺx!` x<x(Av .p<.//.|Azt@xA>"R(|~: 5Ax2@ X W=݅p>}WL)Gl(34m)'S6߯N:1E=QԪ>~A< 0>g@HT? g@vQHT :İ\=! N>⇦:7O6cGLt}#Tx2 \99w"W:8ᇱQYK'Fb3uLTl*x3`t # %x xA ;/`<(BK<đ(|<xO˾ C"Ђ^^_$|eՃxy8hyfR'C loN8T*f#{/N둶pȋ=o4g)NzNt@rSBXċ.H]Ax=G !U7@AàB@ p>g"H6\ PQ*.sѼo\DݽT%~l<*qЭñIlYގ'їVƇ'D̃C:Κ)kDzdHI%D)ԃ s 'YyǥTP|B)L ^m4u{Њ3N=eh&!eK{fqs4D·bl]Ls#L6zؼVNM[dhg.ߍ9um*ˌRȣOZL LK2x! Ǟ?rYh6+yͤ>+"ŭ" $ ˒fυ]'2P!8Єi00dcV^x%oN( G0 V9((@TRwʀW=D`gԹ\P0P o=T4:*{JgX6 }&%>oW3 Z?V@?|Wi( <J Pv/.a$}P%o:7/bB 2*_G a  x#": tIu*.H0 JTZϏR4EL A2(ՁPUоY@>:|QX&/%(V?@ܠ%31_İ`*!r( p#0 CT@b{^||m?`1ɥW0vT><&$!/.t |4J |ՄQځ*)@Se2ģ\@<3ce b@X N%0 _ mpjPcRh`USQ 2yW@lK#7!(DbT.J 3a FCgcG:LĩcrcRs|%P#$" QϜ# v @3'}b|eb! E`>S"9b5=Jh|h"gYqIM w#.gSȈy?Z,9?̑)VJJ`0!đ)P`?Z$x^4W <" x({AQaeDe~b tȧHOk@S=7?auA}]Q+*<H I"O'RZ}e6(h|zz^<3B`%EHe>{t~Ќ[*la@au1?g7rt\]1AW ro1c|#P M`2̠x0` x9U Px?0|壠*`R2D ZcS Y|/T: pg)F g*ߖ?0hfN[8#VL ? @+ɄgPc.Oj/(a0]@0ư CB=8D @\;GU$[}DOr?$2t .1c:=?  |Ж;) S85.ۣ81`*BQN{TGhn:#&az~ zA#sB"s. ݔˁ0(Qϫ6ꍠ!*O#MR| 2 Cc$AcP 0bg#)'( Qy`bp>҃xpP2h16#nUJ`t1њE+,~e $CW|F1 AHCElQ@p(I_ !M3t ۃ2] c"s(G %V{rj#0b2:V= e>6VJ)t0ջ>tPȍyv[2u_V=I`DRGG<$T6:[ C f@Ɲ`Ƃ ?)dK pX<2E`6M!̇ Ss8y癊Aox̵S Ppqv~u|Kڠe m  ӯGGAt5c@ MbK @? @ U6$^LFxBmY9.לg&\!(ޞ $F+~&ypf"ժ~)У#T{!>xg?=ZΌ9xs,<\)` Lx{$}%H7@dVF<0T.B0(<4$>%B ^? !@Lp@P P | tHl!% e?|*#* `_0#5V _#C>,pT=ǹH<3tBHFS54|ffpW c{Us@>~fJ q Ͳy"GA?! x2 pg0<tw@tIKu|X@.O4PmV5(PdIA@ XA!BAxxAKV @B@`0~U _H(B1J v R߹P\Ҁx/@JP"/`|/X.u,g; J27mza'u Y33%nqIeYS=FcEW.޵giM|bS*dB003Ox1Dj9r |f<Gts`U[vcXVm<לlIcsDe`=6 t!xJ~%x?Ā`? :ë 1+hPlTF  H !+  A@ a@w֏<%ڣGCՃ:Sbq゘bP>7O]V> O L}O3&(a,$;Yy:`D19[L8䁈Al;Ҙ_0,KɍuuDt1U~ ~ (cG #G1Ʃi_>c0,hmM1ރ@wDž *X1 #op/U)A|zdO+"ubu$eLXc|` Pxz lD08 J3'jLT9c7Lzx&jF_.F5M&eto* N&W{$| G H P4H0 [aF˞ mgz~>}W@#)W<<Ցt|{'?=w|K-URRcLjҪ;4JQf}Sc/P\0=):IA]H,R +`91)RxU1(ǫ)ܙ0cU|fhdADB+X%%8p)Uc/qM@<x^#$#*S @BbW%ּ0Ӄ wm.vh>DȺK֘B#ȁB10rl2ώڸei> ~8m,ܫ=q 1!c< ?' j~|(@lH(d0e:5(6( qLM ٪=Bj1l d4j:Qg`%;C*=,!(8dBWL Ŭ._-s!E1d1d F&.I ¡ҏn0ԁ@3mAB|h*nb4c P>,r~ `|^P|\JlG681aC7@ap !X0,ƀE(>sA&v{ﷺˁ b^˚$r7(7rNw$v xb" ?~:JXZla P 1oNi܊4&ljݷmd)NsnGBWİ`: xh0) 9 İ ;BR$ |q$~ ;#?@1828>04\DaS_@da0/,X>=76\{8ibz{80D D !*Sl 0%)p`4%|!n3b]tt0ڨq\4ҘO7nըD0@#ĥ G PdQA)@{àdﱃ Y״dfYbuŬzF/J"`! |! `c(~ DxA@ BK`mj|D'&R);B0s t| aXAO| Sk m -{6;֣8D =Tvijv AC( G!CHC$a@~  A/0A`|%v2 /N8B@x}>h|Gc€F@'Aɡ70^Kf^m"aA?ȀuZάRW47Nt |UH޵QSI1i'$wo[8n\lí6i~X>Dl$*} zsӛkszkrۛp6-)'tPi>*GA0NV MڃoO^PcP!X-rO00dcWX lgwpzd;nW~vٷ;jWo[ӻOWmwvzy&nmvO݆_;ݭ7{[wwz+R>00dcWR9a.01-l`UpY iEp<PĘ JOMG@A 89bP )#Pƀ8"ql͹sH`>Df2g}/cdd۞hdV>*s֦A 8OIP|LAI*H>0x>yX>wb `<4 ;Q@"x 3 _<)ᓠ( {NFPp_sqJDž[/pU {s>g+ >LE@0R>7)&w% AtD1& 8x Ij*?g\*w784Np>nda+'9g ԇׁ?@xK>o.N20>Gni]`)}{M5w[}[#p8#\.v$FTXz\ 0dx \29a0(pWbps$xۅ{89(^2{BpR" ݭ(n 9UPY+Gμ0Y:sd8AHa ̀%x6I >g (2@x?A` G?NNhsc([18g,k{ [Om@Q@.Ped< cxGp<`< xK \(`Q,%)0NJHK&TTNz+$ne$2wxϸ{fVf92x>T|xxM0xA /lp h %Q<e\A1x3E ဢĀbxA(ƀЦ`#P u  /t<6@ ? PPJ;'tuN5i޷ /H`P|ZFyM)Cރ٪6:Q6&<SP@y 8tF0pg4< .]T]  a(B0!W|x@+IJBX2x/1G@0v`€X!x;&; >gi3$U|)qQ֨V$9mCNrBpcx94(X p ˀ*صWv6{c8y퇀[ۆ݀͹nX  }Wf7Cw w3n_w![n\|?G5#a^>B D<2cIQ8nѧ t$i kx2M #(bVJi`ŲO)XJEb h'LX, r)컝u00dcXR {guۖj1#14(㭃0 Pd0 `x(< /x0+2R"()KMd d?K`@5  Yu @@0Ҡ`0fŗ3}*v0}aC\sBX aJDU `T 0fU L=X00 0x` Ͼ&5@``R. T 4`&:`:4 @0lh@L0V<  Q#+j 2o }X↓P#N-3+߽>G~B? ` Cq.Ҏz9ӫ݆Ol<`߃` ؐ ʂ =H N]슁8 ! % e#x DnE@$~ \~۝eu3rZ#l眓}I>X{` 0!|H @<`2``2 ĎFQ HT H 0Yw}-sNiƆqC8]Leι_}*󩉈 Gĵ@l!@6%(o|td2FG= <ò3`˩P0X}ݥ.wSnmJc$iC7r۫ vܭSoƀܓ`V|cg_b7_᛫I 0|/XvItu.00dc   cXviD0050 Xe|o (yn׆kFPU܃8eFnPYo>}M4)ϖܡe mq>1rq?ƮSW#g0D7ktޟ[˔>UpZb5o=oc$O1Sf2m`3äTƂ s vbfŋ- X<4m@X@l2p2Z[6,{? 7x\ݲ k~p;L(ݳ(Z`ͥÑPa_@lWH )~"u2rQ!?`ʥQWl \BQRhݡbCUOao ,7[a(丠qICUk 6R~<cUeHx@L&_*GT-GknY$4(KxJCumڨɝ\*|~'~clf3v@SEŠL۵DrݯMDC) 8]h-23LElio20\BH5" `16D )> X(UDX<fY*Jb #uUj2V?oP¤x-.ނhX:ei|TaVk%ûe=|SFM0g>dQ,BԹx o[jQ-PTH|.fmjJ?TeniYC^󠎠,hDklX3nxW7;Bhp33JqCUC}ɀmP`#}0)ffүJVCEsMAf+N A/PYDK{KuqjgJ= K lyVV< T:Dҧ>CsST_T] "aZ_G.5nYF|'N %^YKdm`b1@F4_q0*BU0xľ3Ɣރ f*+Y кALLaׂ/_Qd0ar(*c&ڑ!0T$ >&Ĭb 7U% ,7x/}A?Frcj VSL sܿ-9eETg6m`eJu@&LS4]"Q\[%6M s}PcDp2~6Q¥cpWm5pLfPv%HT%h, IXnE',=7*%%0ۭ{*҆SiR(bp9l[X )jt WSjOX0{4EP'6Exu(xsG0!v3m)U94<`9p0*@$fb,[iCiqVkcn 7Sh~imSS%#c5Lt>V3 s<ƄH5+gجx 2 @tHIH$77Fj<8mb9)w3Al@ւ*oDa`oQ8(1(\o.8R Y/&isUC]:r:{Oe[}=|3@^zX.g-zL20=0d]&KA{iV aJ )wR.C108et Ztq35f6gMh=T頸|uOh\ mʤ@Sj5W~OQ"K@C0UbڤUm(6-fՕ6d O$OmPDkUŏ/*cY/H+/ƴfpxH0P8Vt1Oۛh,䋳+!+@2)Ia%V=[g3d: Q͆m!C)yWNgj*@RB9z*ĉ5jVۂed~,?O&@Iևk`1*8MV'U 9t^ *`m`b' #eG7ٛ6Z 0-}EY]p"[4<F1F'SՍq5hAP+xQ:@`+Jvq` &$6T 嘎&`6V)RQP,lT :`x`#x[/G*-Ɉ"P+IS.H RC nu=O>|Z"<"p9?b2>ADT!SBQqV1$ &.,f~%d:7A3zk] 5{.ҭ7g8)Y5`y6f)SήZ+rUv窾]Ʃ?[x |9:2{ KSW \ׂE[?:{C(^mM-b=@33~;GÐToTi"ՍDr 9-QQq`I*lJo1G˜X76z|ƪB4¶}0"P}h!xITKJ"+'l/A=K0SN & @R@Ժ%ho7ӇAf )N9J~2'B sRt {gbA#zvD8zs;A~wɹ橃F6e̳WL}L;v}TyR=Y"|p[㪋:ld;W P쬐pj=BV.zPe>p*p2cGzE! v$APB.;P"ԋV PP 4$ꆂtL!iг)yŞv.?.LgGt!&zjGs:@tDR:V3t-?_0Ǖ7l_^Sql1F7Ӷ{iޛ' "Plo`~ bp`:&1gу@&K1 GJNC:@w=Z: S8(cy]ಔa HNMgż)Z5W-9vܛ؟Ecnsc_-+[Z?;j h7QMS&h+h0z l!1A-6?m"A"9m"@xBJ<`V* C%  0#@#dOIB z4r!"ɸ3x6™SqSxBנ )yɌ!EٛkX (ί8ڷ2p&V"a#D\*Oˆ܎GW0V' ӷ/`5H.ժz8,$>ӘcMPȫV+T8q'Rsl iOW"}Z텚hn SGtgAEdL+9jl"~Yr.Pp-Lr&–PuB]oN_z9v #U燣P]lA-4-A^\9$1&˶86&ͅ|Rs qɾ(3k9I)j O[|ΜvG]sZHZ0ziU_6(} #-`)!jvWP'WLHIgAh7Gյ[X?bZ8onAvޟs)gPα3:]*S 3%{ sbϮ|өAt}>X_ o,SO}|u!NDP"B=v;K8 -ȳ+A| Cz* b^밆4֎|"Ю[e"Kκte 46 Wǖ=|BW.:敀XrjoaS8܈$xmTTZrn>)"HpqL?93gEt"#]AgZ&w)agր-|$?'naO *u4DL| V ߮7>*(d/%4=vtHM#N)?\`εXt7kzއ'=6߁N9Ah]`[O&nh.9+vVkXQk §k0W\U[:DL-# {gzG}~{ۜ`\-Rޜ) гsID >lVWyO¶}c N;'̡G~IFGW҂&Nc)MH"Jw^^K;C-b є;EdxL8o^*Ӣa/^鸊Gd6IlWO;hɔvInvYéo00dc> YM8c:c r!(6L*0eGfjs io_P¥'X<`10@0A8!~ =/0UUc Ixz !, 08X03m@`*!'@Ā߃ #0 z;>$* =(0A<V4*Xá񢑧Cq]!˶h0T8@Bp!+r Ԧ̨JH5`4H 4cƚSۈ%$0jH`fN$0H5y3dS n/BaFh(B@P$@xA@@"H0X @"P<|a #}N lJI3<``&|h]ᐧ RP%$p`Q a:,F(ˁD R<0 ^@@"70,t!H0 <X0RxfF`|?ɞŚCR9,@* B ba#@Ą`ǽ4\h<G bjPif<>x(<1_àap<V}_D_Dbq`1ץT H o&aVHΩ+ o{'R"^!d&ׅex8A73gtJ_C%(GLX,O PgadrdA넚h);@(lHIN=A>š`}IpT*!0x0,72~f+$BՄ=-Evuw ĸ3zLyOvGO!:L@ߤ8Z] Ra" 6EiZY$-OᘎϦ`gX0bc <j  8xz KǓWpyb+ݾh2` 7!nHk=e4f/2㛟R`(%=0x<+ ~%YbX*. * 0 t+S9a:mcG5n8i ct 3C7ހj:/Or\b ^},&Z;SXPp_TwƜ^%QK.`>%@S@^Up o/< ꛒ- ~ U `x?xA<  U7 `.z>g YH4 |*>o&WWRb~S~xԃ@(2A`wԕ-2p*}yggl!0E e/iLhkRw޶phZsbOI>{+Oz1k8-F2o˜sAN0` $AL+O(@f , pSbx >%  U0%h0)P(>DxBp@@ Q \%p~$ `g4>AMAV JH(| x 0:-%h*"0|kT.<݌EbnR&ny6Q u<֦ ax3i/MoH%kqI,Pj,> H@<a3@įB x?BX0 (p<#hfɑhpaB2>Dlіo h| Q9f@ƆEAއ$J:? 'i1h1eY>$ԀO]+v$23\ۛY6(MyĄ㌤U?MHl_Ne$Z}%@p.0Gq(OjYәjha% eEE憯I(w4oSIϿ᧌+Z"`Q@T5b(pg2tc€$C54kDKa M p0ohg'99 3<2 F Q%DE Xd$@4 tF=#hAltAC2vD|J0.l0K D;!AԗGݤ 9hA;  Kz:ѫAV2'{=N/XL`cY00dcY\ @_甃@a~ - ^3W/@ C*e?"01( 6%&lxDx(`0H8reTVIK?B <sK@U%M.e@1jςtv8!PG)NX~M<@b>7k2: DPlr 0` PP f@ JX!3 ˗Ab}Zd^J@|aSPKo`Hyۀ M,/|\ P(  p" #5xEQAϱ>#+9 ߒ5>̀vm3トF -|x ŀ$ [齻97pcn?Uxz8@˂ `C0*@>7?zuw{&܆6@Ʉ bS)J^ ko*^2n"qʁB @͞H~00n%!X?D.1;mQ&㴫79O`t;>x @?,Ȱ8\%e %`pc` A0e {Ir@`$ p|ULG  À{zs& F}b;O=;@3 %`((<|CkB /J KV @^$[0 "6@?T >DIT p20@3E74G (F G0.L ?N%`Da<x(A0; J߼^t|{̋|B( 0!,5Ootzk"kzMb8XqQ4c`bP_;ƒ2@Gu}Oa|(_m}lY;yݧT<Л"<ҟQ·> _}'}" uY8Mbnd@T:8q>wk ͜fuˀ$:H6bH>jdqj>>11kdo=+xO{0׿00dc}ZGx ޞ~wwv_wX;޾'֧?}ޝ$}kS_}{}w00dcZĜe: (;15s)2>Te:P&3H(KfEA((x"C06ZɊ <^ AB0( +vˁr@  l0! JG ċep!*?yH>`lKBx|I o9t u@UaD$:*?Jt W@K (H//fP >Rx/AB H^ P``H0^$A ́@]H0P|i]sx4}Ӂ{m &TK4q,|)HGZy8 7p4D `` ŀ-v}P$up!>\nFf$}(X_5 6+6ɏ-q7B <'  a;Q /6\f-CP|O҃Mҹ‡€5Uy,6 ΋Is{"nTsS|8$usY77aڮLf@` t4d#4|XH<j|>Mc[&S{+'ڨe^9Ld:AQȼ3;J 0yp>THap>0 p3P`>^0!tZ`4^<'X q,J`ŀ5Db/AKԀ< j 9x9"\8 Bg^|XQٴpٱ8BlZ)l` 9Sn9@mnŚs3fp>y9 t k@v{\Q g00dc[A ՞Y2bEh5S@!5x0/Qrpc (ؒ\ˋJ,U@46D@.f t| g" `݃ӺӾ<.}S?>H0;|P`" %d\ARH< H>L)(82|hQ2z D*V0de(D|XAmQ@ #L\˝ ux >?j&9ŀ.m(()`pinے{o/ɀw..K)=܍csOU6A 1 4/ c< P|`dB|j-}D}B&\ց@8><VZpxXAM0}K4H30x |AC!l 6;6)[6ޟ\cx۽h2d3`# Ād Ja*P0|@))@ `P `QQ#p(88Qn@ J <' d;A n muvNa;/ > X60fz$~84b> @V  X< ~ za}΂fX0$ Lj |@m.x7w\.P3ÇBgBH@~ p04`$xHA@2p`(eA0VX<%BV<\!.ZW`Q&|(J CP6Q r곽`RﻺwtPa`Lp|/ ÷ @_(f{NIKqI |!AF`S`p@.`( V y߿+B00dc9[GpO򁼀ME.T@*63Tv |2(<4|x  < bH<,PAx0(C//|HTa~{X(APx A a2/`ðQɁ?e΃?G;g$W\$@|A`xR;΀-BWSyg{`Pt&rJ  @p(A ,@h.`@<`3V<$(08!kyAp0@Z*:݀58>7.v]>/>P|UQ 6K|!>G ·xޥ`R@h'#H03P` G p|DxA"ץ?p>80)h<<?{:5g=W+k-p`.kvRȀ41-G7պl)WwV|ܝ&՞+?e4-^bX8iC-i |?^oaL0# >ncGiӀ$x Ѐ5`0(AP ޅyӃ|deTl*!,xG`0 2G 5aJ,6% xAtnR6}PdoI)1N{#|݌3wA(?` mDK >W?@'x A6Am\|h,~ đ  \|<7X>?Rx8t 6 #@\m}€$| n|A? ` @|oP8&S ^O8dϞUWi^aөn{ɏ!T<@NX< |x8 ?@00*X<`pvàx_G_@8` 0) #P` oS3<H`2> <h>D`!B xDxA x4d %h0@0|#-Ovv@0oCiA&F7s6&Zޖ1p|8Z?," |AK w\:=6bu{Smr7QcXͻ'a;@|İ`  >,hI$iL|ԴrgI8,Pν5ѻF7U}ɀ%2 ABSBfΓ^ Ți& `~`b%t  @80 _q0sohv{Dk>[_·.,?M7:ݐ7.O{ 0`h" Hh0R\5͚ DXR3’={`>oBp|O\. l3A` xRH+ 칐|/X(w# ˦ΚZ:00dc \; ꔂw )/y)EsL 5XB 9OC: eT)>GWtc vJ& (ltwH A< \>[Vh0\T m@V^%Q !deH`ei>$oԠPpxpoPkoh<#\! A X KV]pW|ҙ"C/T(Dj 5N !Sl QJr3ʛ`9uS P8Pʰh1,O w V0`g. 20g^uQa5* ` N @X_*.!\ !!rU[]tq"W-< fnnd>B03W|H :Gnmvz[+=-LVvJ{&s F" >#'2I `1t Fhڰbd &>Й9JWC?ṕ3iC _0HÄi``'+z+rdTO< :1NPd]Px}4]J<@֣^))6Q"=T.8aS,}N M1sq;Crw No VJEM S|dq:.NpSe {@[ࣰ'YQ_7Cއ+G&a.) ıCXvbF۔5@ 5`0$|Yt`EC_AIpf3]Y#dcCKC搟W ľ,T%7PݭH|c }wx83כ8]c{{ۙ0 H aY:5O3s-6mL1<$5| `6%ʁ a`< > %_J0< `Pa TJ t!O#p `B58AtFaJ*4 ?dK E> k<oo2tD?YwS=x |d !B $~>iOjA @X !$]` StcM5G%U~|g) u:"dxM <2:ɰp2Pc M#zyߎo4󒋮`@ x(T(dG6C90)Vsqp| UJ@rZz(z^ nma xg#x1*:iT$cq϶}xOg櫃7Η9#ζhLAmycm'!Ċo+D`6®kV!d($h6$h`a~6Jgo߃U500dc \ 40f7(`ϟl*6 . [>4q 4Y2W)Hp4M2pI BN AP˪|dyOyPhH*4q}Fs`7? ?jd"|il`)/\TNԾZ+ Bu4 󂹨`܅D$iӃ6>?>- P&pSw#< $O6F̺tE=ZqO;^ɲϚrpޱ)3MU˸'4FN9$ t"xH}dG'>Ny%k`ؖ#Qݠ@2Dג >& 6`o?Aq)eIǓ4P8FgSb;ؠ:wI6sqƑ1d63I!A4]F;P`7e2s~PK9/kOj'pκ2n98|)9H×2zw}À˔j"t:=pS ؗ?^a#X#T>x)Dp%%3&7#<z<Hdk<Yџ(ɳs9 oI&񦆠6OLN 4qC6֞ゖ52XFr"}zVB ܇•x wv>,'#1H|Su'΅Lc\#G$ѡDݺpN}<"d<743{!×Ii঺v7@"3#=$!eOШ낑)DyGCY͝:.9ADNQ[f<̈t֐CP20|N3\󂳸'C%s&M8s ^Rab*N: ǎ=YJ{Dp *AAos=cܕ wᰭwz*h34T"7G@T|/2LF8jxu0)MzZ2c!\c>s\F׆oX vƮ MͮZq}&#sl[c>G.4%.L gsf 1!Zx\^C`(F>oo l~ QjzS.hP {Dzp?c|+\q\Χ\+qf܍uӁF'w$8ֳM 0㡛ATxۜ+8bpgN)C͏mYx> e +SAG`P1 ~ ҕ> o5D@4HT !)H\DgAC:/1^$_ I7Јa⿫Zn6 @0RIr}!8eyA@`pfx JpUӏC0LG=-h׮Z:}tk5ARi )wJ}L8KOrI$|tK+@>.jAGڥS ^/hE Kixc]@1"猅7G̏ P!u@xx|^?/ty $Gz:xSKAjH`́ne5! `| !Ay-Xd:ͪH,y6sָtO3A#A&ybhZ#4~sѷOKO: xƎ;0r@w4 ^t"acknpH8" |GYf>p33G18\8AfaG˚8N29bxL/GRGUG[QpOBX0 i0WE"99wEH@$V<),f(ixƹ6f7@%AO '\NyAcG8(o Œ~iᠰ1 csB!`OޜcJI^ @l|E8/z5sDC[VP<|:D">$ʜp)%mox##@2=# !q^t#2^a;+pPg,_,Aϲ7=әl͟^P@ i{M6Z}/@I+]:C6Kп^00dc`]68OQ0Z f|ME4#&2&SMS,~S:E5^y^M\X)>lM 1R!kE(9ZOhXƵM)pX A6\Ǐ7 /C3dX!"t'O3(T!`beaTl!/|ljy͝I%l2~t6y./_]A{~ѾSBOe1dkkxύythݗ(Id{צ&jβm5 yhr{TdC/\lǴCHLم4!j]:"c#j8c z$4+[IJ9>J [vB Ehfdor{pB,e3U#/ xX'91)40-(ƏO:ңN'HS@̽mB=:qqKr;MxyDŽ].p7x 'IQ>'BGIuЦ:!ϣ'הOE!6oOzgO2`m0V<<3Lk\p+f?uN<&EfKJ@熩faFyGb38tJF:#neqOF:4xp%:'rqGa<4gԾӗ x¿ cr,/8Hg43ϋxhO b 2B(81KMY`:qC9<@i-g&gXm2{s7f U7[%.5x3 5BT(: l~ cfu3 'WT+0>'g cj>LG^gxD(/p\sVb<  &` $NﻶӞ)8㤄N;OV-fd&| p|OĢK`0=elG6v}H#svnuK u H1) cc@>$|(3`pkgnrlz'nm7:| N L! ?H0 . * <$x 0*`c?/T `w° E0 ~ ŀ5ίs[.v0cW4ǒ@ @灇K?OT(6 `TI.V,@/@0t T1|x)G@<4@x^FnaIov$}hӛL8X1C eH2 c`Hԁ`c@o0А0ջd79&jpnTh0[}Ā%[:Ŏ q!ϻϻWmzo&}:K]Z&P͊؍0|/Edﻻꄮsm{Zfoe"81̀5scy@ p>OmAm}GSB(z00dcD^0x ?;m\vl81ڃR:&l諭 JA$KQ p(K O/+UVzeX><cC:XC@P? O>Wjxǥ|pa,GPA B-q"q&9} @H8f#ٶM`va=veӒF-+9h{wZ@]K`0*8b}:mj{V$'aH@%@"#, )x?^X0X)!+tHRf@-Ā'ޞcݪ rL]:R#g@ lX<`t\ 2f* ׁ*w}Lt[ܣjƒt`G" IAc>H3@c@x Qx !+,G "x8l|ˀ<E<; w}L7G^i\rڰAtM`).!0?4lh ^ `:$ j~\1ÿa(H|>'j`g#Lt%xIRt$nCrol)~}#P?@+.b(1ġpe0O `_  ai ,p<'~/.R$x^LzfrD6uݴ @ۍmlmjc zr  [pb`B\&[4uf:]]7M{o:9:4rq2rOoyL[ݞ}ュgޞNQ@{{{n[UP?KXf(K*+L'A)aJqba{x8͢[JׇB?-[ ]2xsfR66G*/kS eꎂQ>C+XV>H]͗w 9lp0T(#D:HB8̉"0.-x/AaE4 @!_y[Sq}F[9VB@"86X>|lZvKOXi|"ÀxB\=m`(@X"l>2 b8B< W4l=@Wir% &Lz^*Uf)hz*#ϖj`00[8 %b53߁x}zj~,lOT}E;oZEp!o4'\=:_DO66 MUH|XDZ$QZ:.ASn#2;GxT}'f08abNC-'SJ@\:``a4rHʪ93L[}Э[`?nMO6]|NxͫHڜPu ­Co鯳*K~6;RHA+.yФ0A)弎M/,+!i鋛Ups CA_m*T |H-仙9*PϥeE&Gsv߄0XR&Ui)J4tA($OM۳ei{e<S}[<4L0A...ԣ僙>êؠ j~[y|^=µ_ŖPȏ Kj(ghaˏ-}y| (;P7Z;L= 1 ?T^e@rh|~XA(B 2/!)ڧJNNma<ŀMURj4ps[,OG N)͓ S%ę%Bs %xJ~oaѲ.~GC}cԖVFY-?69͟VDW:PxL2:~kHrbjU0<tVaDGuR)tWcMvXuݫ3sLsct-%FbbO0GL| M[HǠܔAq.M:=Q6-ISX|YIUS[8]1\0@HQ0 7ŎFh -oVEB:|jf)(¤߰5E"ԟsaV E n@xC$ 5A?U*p0w0[<|"@`: 8!%0<U|<ꎅ L ~`Dn Jg1Yp1t@Ck־ ;EJ`+h{> 6B'dA2mQfO5y= 2G)!jDXhyM ĥYH!xfipBC^N(\^F_E"3o6$}0@QUynRT80C`:Ȍ=t._# A̲NP2 bv6xtw>WW ް*z-}.c.a WJ Gdd:X}>6@yTmgmSE|[RX?FzR`~ PΞQܜ|Ƕ ܂_jbK!/h: AÑɭ PxH@$gV|@b88F6F! hPѥ ; [{e>F idI/UՃ)=Ɖ\(qIMZgpsR[BN⽸18aHFU D+oT=f|ȕGh*p:]֯H(i+Un a;5ŸM(F|x(v '=8p R鷋@4B8NZ -_:L9P`M.M)ۜ|,vo^s#QkS@>ϧm}S : dt,ce'mp?m+$!"X*abkD&l,j v~,wsͼ!I˾#%AG ar8" ӫ?TD? ^L*lWF' i*pS@M)A WY T2?gNpfh0 rFee櫭nxA@p*Ĕ}\T&@bS`+[~(To6{d0(:`D5t{VӰ_·nmrd _{6u< m}v]qK=CoJ8'ec+HgM}:~κ?O[vg{YOC \'0=\"33NN٤.i곷:?_L, ڈ- B%z =(2PY75 ACPav37G3 )DS~uu0cј)0A ڗvPmЌX$ 8H$vJn[W ņAp9;`^QhP@`yQ]Dde02p[А?:=g 6D4$] kP/j]}A?Nc8Fþ{䋜Bj}\tBbۊ|EDxMO`,4p𐕇 <\ qr9O9G1ۀЬa#/?[#>=5;kr<ϯ_-|wqeO1tT)"H14C8GW~tgާGނE:E8+sd3tzH8>($S3܀c?`xXAZO)Fec%PWh lb2Ph?3̕kcZeom?_ 52 q"ΎDpizh~>Wk^DyPUQWBEà$Jұߛ-lHς;_xH%a3`xX@<CC,HoB oXFEP=!-=  AhAC&SdBF+Mk>XRU^^,xGXu!ڃrNwӊ)<ôD>X3wx$Ŝ#O5|3(HbN0t L K zX/QӞ>ķ=6Ûε$ۊ"!@ EAmK߶Ia#0YWEohX?%*yCa5KS'dakSJ%r+BYY7 9%J?ԂP nͻ0UݜF"}_| Ѱko}T=0M7dBtu^v/bIayQMH~X8;,U f\FU%-wܔ|CM;UN$B`IP9XXXmhȄXu$p 71J[B:fDq76'4D%`jFM* $"&h"DiZ=5"E z(מԍ1za(IwP$*h &׺6nۖS&tP5ЛiTS ݱ}rt8^XCp&԰VVS,. ucdAd*t+ۈz{=ncnqwQŅ9A?sZ@3Z' ,`k] kB*}mQ% /Vsp*r8\rrTL{Phz3Yó>%|nkU='%=fS^{++4z5޹b n׿fe<ϭʚ ̤,XD76K!ѳ!g6]e:z،O{4*v~^B}eF)xn}U/*I]韛r vJ%쳏i{8ni9}g2yʭ?%#%](QN[qb?q4Ws#Uj1#2ֲ[HρJ>YbashqC^5pIS}:g8zyS{+d g_up{ƞ\**ԿW5gH Ye/h~(ӜyyNxpeڛ9 aZw(fHG(Bs"́(U\0|8^Q>AUջkT;vİc}YbD(c]=)_/Biɋi梜,#l嫾%5bȤ%x]^zDrvD:t?5.2o/!]~U[\gQp)AlI-n>ZzfuE_jWva dZpfL@-*ҫ'Bau&.}^or ZCg_1AyY!%i8N(#u/e9fd-RytfDt*2`>7>dhH[<Ǽ"۞Os^9?ɇtk7!ROCŘU+|~(sUݧ' \,o!2~PMmD ضFToJ'Z]nʲIT:t>i + E尞ㅌu^]긦Xbͥj kD>KQt,-N1E W̞[Ȫ:o52N`fN,Ef#nI ^5)o9n>ؤ9W@bo}c\m F٤Zv7JkqZfnv=ֻZQR`"n>_ %j8˰*ś"oBYӜ#.=  ޣ 3TT]nǕVzrڮT'X}d@c^j)\ <ٙSө֞uKm݋C byzHr Xa6֞/gdXS~{WjvpUH8`(̀BMI~i ?LX S౼'u߆uakS`|( voi#`a)o|E҃ݦ@PG`G([&[&PלJW/P)TSX-U %% 5UIv% lU)%ӵN6J\XMS-&-P00dcP z`D(}g`b@ Sd'V<SQH8]0GS c*8灏X1 9` , !(I tLma  j 0g/c@1&@ަ @2c/h m6 HQ2  cHTK #}ݷUު!cV;F83z Hn`(*l2@DPҡ0*e̒C# O8㹃 ^iﻺ6;L 0ɀ-VTV =7FY7-aqpCl`! a0i; 麾OzX82g'Zw7O% H^>f{2{fFvqؠ}T10b=S7Iυ08`&`z  $mb2xĀxAJ\?/UA@䏁ao~%_BH_r7,}'.? *$0 ?$ *c_C{i0Tc-V@0 x+$2x@B?./^0_7Ɩpɦ09Û}c Hh95 Ϧh`[[3I7m)QdVJx+Y`:U^e3;.#=MfABDϏP!vUpV@~ x\ @8`0AX!p<0,(*/r=>Vs,*ہ{h;4D>1; @i]7vBȾ`lP#`fB  ~ _Lð&N HٚG9;7@īP>gnD40>Gn+n0ksW6-˫k`ЙĀ-30|D`cK } tܚ2\7&ܛo|h1 Hq X>?wI &T po%n `l38vu.00dcQ sgd܎4mm@1Ճ)-Y9)lcgj;6 h|Apΰx@B0J%U`]AaGF `0h*@pqq_wsAw0 nj`fh xL 5`W 7 phc8Τ鷧Wު`L`\aJ>7/7!hj(0\ ' >/ *@@)ϾX0@ͫa1P kk4pZNVϽ7$0P|(I(@Onﺾ!)ǻkp0K`xD?Ā,K`G?P 0}xm |HK@:2 `2l>(s'7t&o£<$X 6"ApB.d<6 <f Cd"ׯg^SuaLq=@0 %R`T 4 >!(wjFfap1A|^@p" (@0ZÛ}OKn}P-\}Y (NJA?d % 1|<P @x8| tv1 0x8 Gl !H5.@%aڀb&}3k47;niw};I`~;@0(xuݠp1P2Dz ` @AdD 0P*ͦycsJ0&f^?>E>;;0xWw߾Ӎ!ۍ=ލos&bwWVS6eޮywm:Id`828 ) #+os7I{7dn۫ۦNwT`]00dcwQ~1CS6ee>+b_hs-_ ckїo o'c{߻,[wNhZr-wIBc{?siCKE^۶½(އ-0p\h;߻nm*n7]?Nvc74ݶ qͫk PBvqPVsMfZt2«Spu\v+},Wj3m ^MV 3M=m߯ /O}k#o Ӗݬ(00dcQ uwu}}7} a0f_ D~n2\6 ;4E|\oEBc @ˏVD yp,s ;n<3sm%nZ$@";3 1ax> l8Jv K> 3hr2+Q' N0*?R (T jT^ ( J ./0ʀ;(ff^)>?8 H@f8>,$$D pS@YEɀ$2Y#l6)` *% 'xw}/Qp6: f _|Q`wT :L\&x@3 |#e_ðR(+ƀ Ac &Mp@d(*K̓9@?IP8 pa>O/i̲ Đ|/YPb%`@pd@AҎ9ͶP ĊH T ʼx67;.  sޞ\  x> dx(<]Ā%!@4İxHANtY2@QX f`Ni>?ZΧWkw 4Kn@ 'P|E]}Pk'@$ w-2>Ձ?sw`> =!G+7e>wջxQ@X s\Q0` u]]u :@  >O2F۰͂c0 7g>ιn{t? E < BP (zx1D@h> Ѐ,; EM@!twBH3\{͹0 zj!>?1<  M%`0>Yz< M[θ3 pU̼0f!™ǰ=%҃<͐<,` Ra#P|_P Ny |W7}{c')o{F9a=I_|7U5W{Gp>L 0B @ðxxP`A' `0 0 `xd>G`Sl< pQHh0*` V$ !zx/A`6 Ž0qި硚{#chgiIVBuqPFh>4 H@taX<\p@; 8 ? %aЖɀ V (|*vh0(HJ>?9ӆn:5x17o{P9J& *`kIB*<jA `S  p)]ܶNV|?\` cZ:3{} S!cv{.spW%[cHɄL #(}8q키_=6Y޷guxLy/`p2=9?OQv΅ [o{C3n@"{z wV0Z%}aܞt!>/a#﷑?}z00dcR\ p1OF7)fr,JǠ25>pgC-p|o |(}t< ֟sN Aƀ$0>GP82p|h>e`tp|o!:5worzL ժ$^{l8)*%o ra%1Jǀ%lf?}\Ɲ`D`j}&w}ϊpp*Ah TsG}|Y wwv(1:::Qp D  }˜Fo>+€%4?O|XAx@#0`*Jm4@>?:!x |XOP `̓L|H>,M®`yƚ-@鷝y=-3 >HJ^$}GJGS K64 "`3@>' P;>?@_\'سiçC!Q&@fA!|O\1(02@|OPf͹5gP3}nv+ x) :DR`&>>SA  00a(x x A8dtzl%D @`x d%8>$K.+7˂}p rUh`N+'~`_4 (Hf4 X*p>yyzfA0 cf(DQPP)| P` |AJ_f B )3ù팝LYĀn8|/Y4ؖ :U@@`tE0d3g[a|E|/W( k8n6;(=϶}g-^!(0^8 eՑ>/oo3遲owu}g}noaہ`[pg8oww}߾{[00dc Ssx7)f>8T:c ; zQ>G)L?͈譃TGe8>,,-B7@ {DjG%B'P>0,hIzmc8$PD!Tށ`D{Ƙ!7PC_gh><P5 S@TB8Жa<!vt t tLn bpȐס pBrcn` W%>'`E۷N ; zbQ1ڧ:6q$ T0fo m;&WGtt[ Vcɴ? @ Gb6! |H2yGJ` ߂ pa>"6@Jz)ab x_A 1 !-G@0ynxvv a:KB\  hEP 30߼)G01c  %+ÀLF#lp σBa-Pk& (wǃ&4c: \Dž W8:H,؂pgqxA af!I40Y3 >/g [9`e 19r}?N4ܲ@U I8Fu8<)0(a-Gpʠ=S<%%z@aP`Wx?a@xw@A? p7 K@V ;İe TH`Ū_AD>AW_)* 1x<'eMG@A<Ca׸; H(.V9h>7fЈ3͵yץ۟O=O"4 p 0̧  Q׌G|} `11 VG\4 >3s HKK6Sx "|;`!jxO^%Q NX1xDx?/!*DJ6X0Cpx Ax 7.}m+` Pp<\@pp> Z W@cH gΏ%sΚOjQp󐳕=b{sG 4YG*n{: 21(1ٮd)ߎ € 7S MyQ RjGןAD4+&!@6=-Ohf !*{Z!!X xz%PQyP0:I| R_xBx18$ aGԸ2d2}Ǟ 6`͂B00(OHz Ki\3dN}2Q< 4ܘc/#5@dl3L;T dժ3m!GjE. )ACW݆#$\ eIRΗW4RPcCVTf8=!8AZ İkU|/؈-6B]D@8 /p)#߄B#" #0 A!go|_܌f `17!I\C̊wd (H (U I:j|vە(#€|?p|X) @X1ԍ3d، &Ƨ^a3 ma`/N31L)XW݀ "O+p`/Hf3*ci,2x 8ı, LSs0o_1FҒA  гĊcO"ρb2wN I#xf8^ cE2F0a4uQCA%Tjc]MipöNuOQ hB!9$ p3H1@ZEj@8lA pg@+h|N&Qcg `u0d%68)S {2|'Qv*x3#'u>vME0 BLDP|HKg\"/0  qӺ s# º'=B $ڗ5x1svAa )*`*=G`dڪF  T1p8)0 6)67Jd(Ǫ~ p?J4fW  6r mɐ(w00dcS NάxuL}Σ$74ۗNcKc5@|t#+7Àmj]82ydyq 1H`|/Ɋ :#@c |X^u PfFPLdG |珵ZP<i0< 2QA ]U p\ ,$Bm(0@0Þ*6#σX(:قG 3"3@0c*}hAH؋+#3m@!uF@U>IF*Xɼ> _[ ʀ% [!VĆ&;n)'nn}( >c=A` FJ eHԀP>'nuͽ%8u4緥$ Ճ%3 ``. CxH  ` Q@@) ))dW\8%| 8! n=YX1oS> z clBC瓙!;5s{Kkm K!Px<"X+(JP!x!| Abj  H@`PP(1zA`9'u0R8  vPuy,{qޟ}=4 p @%2 CP|(D`0$5A!e)4ޛ$1,,A a |%~%xF 0~\T|bX\Ǡæ@0 mc@?wp[0{r'Vɂ!g9J*\?0Ca3`?h(A"`4 #3}I`5lN^lBN9,jNOb@|8^ڣ>䒆|tH>_i  [=L6ɢ7#$4x>?2sF`̹Ur,bƔE! |Qww80۝'V|2S`1sx0Y uug> iVFH-uՎ@C@cM-ll@kl;kdz N&0SC0 _o0L^}e00dcTmdPON cﬦ- n0~ҹ OiY8d_8:K{/;SN- kvh<:k9ثo}m{Xɬp~Mw[\mw{ۻӵ)2QFm[Zvl=XswUv4Շ 6yziۇrmQёawc;Ye -:ymƑ>ek{څhkdCpfFs`0ڇW+1b Ϋf_ ޑ[iŮsVX9Vhn{;o[3]_0V3g9 \7%'QUOuLs-9;[1jOV nv+ģژ00dczT #g٧<=g3kk2c|l(0j ~禽g:ӛ2i`hm4N㹧A@ڸzǓ,:J=恀d'vP<2}\pe?sd*8k ] |o_p0W=,ˁfAT¹+%&Op|Ò%;Of>'鴠ƝP`T\ 4}Ndw< ^A2`3+OM9 & Fl`6:PaL#]!Ɓ9lӮÛ{r:*ʄ-@Ebl|X<,%,xAoLH 5N5 @H1z  h%` OouFi97DHL0IJ./@ 3:< `*p< ĠxG 4ܠF#p2@ɕ<<D@A a0%QLĤӐ+ݷw|(ޖig^@<)P!A?p$,| %A߁@4 𦪼 J~; 2@? ĠlUxoDJ!h(3X(< J`7`̎_!)d}6ӷ v9dR3(TtӍ8-<ĄB(&(@pc?R`T%2 7^%ط7zH;nb}~HtCA |(ϳ|v !$ ax˕j4mE2sK.8_Gu4xﱛb,Y\1 5c> 4w]` 4>ys}<sX>4ﱶƀN>vu`P|ݧ:/pP}ll0.myGtn<00dcvUgϤP}@_ 6` [0$޷H$-:>@0Ht,/w!gt1Q3?C1#o]>LGu7:wEa"Q3"?Sq7xG^.v FK01Jf{ Fhid˅îNgQ-Bx h3Pj!)c2 #ѭȓPW `c`R`G 7 dFV>>`1$ߓޙ>z)Ҧv*H 0FzDŽkI1i~=IҞ+C:3m3v+>sc0 2h8k%'ֆgC0Vǿ>GC#L:J# na疛[9:@CSAM-:`)j%g/ PQ^=s2UsGѵ hv./]x : P= *Kluv&P6pGP6 {c`AsP7jH7")QmB Tftd֕ Ta*bA}O>pS=3Ǫ::F<牽]BE EI 4p= xPcOoPx,)+4M5pf6)Uã<̀4f9[[o"xQ'ށC AL3߱|oǒ }C?paFڊbǁDg|_,l2pM'P)xxѢ;p@(bh|Zo! 0(??NftGlZjWpظݻUV a~T@%W/lı*?MTVßv~x*u' @IP r<_DRTqdgG1ICGfG0|ըPdžvY183:OeT 'XSR4wkn_zqgӀ3Qs?MH˜}R H&JHMa|0|8C!]t2T3xdPSz p;|qqP~Jxx3›#Mczwd'hx0#V ߾hz W&9\pF@ |GC!_MSU4{s!_g'x8af<6Na`=\2I|o/F P.E >#Yr4i;s3n|=1Ϝps é l|'4[sj=+Vn.$h0F(ic! . #Q|71쬮X(1πJ`BqY#*?!|/> cG?O~9N: 1[À 2@4!"P(FU `IT$`) O  =Qv&!U`"̻zw!qY>AX<y>@<mCA Q `;O20} 'C(ٺџ 1ڠH|?ΆgF+7)381a?dbd`"L!:HeALM# $j'>a瓢a8d:ל n;u0ΠN)ۂ^qG@<0A"l~$`ɼT<A?Pb0V $ @W0G0)/A 2*q%X$Q19a \?h Q. "@h< *?pxA?U'UPx(@18%aA>dY_!  7%@!W~eJGm#(CC30U x,_>yMπsR]O y 03Ӱ MTS1AQx3` Tt3sO h+xz")@< A@$GY `4 $0C@((x4"Lk"05@$ͪAF%_(\N` PT `C 8A =*`0`C3)a1*t!m!,}P`pH0P%A`Ba(  0XQ8HY%?pCFwdy:9A8Nitj}L1ם 1iA™6l6595!w܉:2qP10g2iƈB(GaQ@ aCt?|Rl3rf@{O!sw!c#moSꕍ;' b`1V$@x% `  0xz?@`:>Pe@ >::Eңz OIrؐ!BՖG'BCfzt׀5'QV q;ݠh2 k}&`VLc0O Fx@|]&E[Dc#~p)v" h3xQJ,ϊ鈦{h1rp4w?8tONb5wpBCd6˔'@wy2ON>#ˠVI^禦:0F7NCPF[+:"I . t hvs'p(뚘3}?< F|Scŀ&FMha5; kl@ s ᗉ^"60 p)ܠ€<ý8z:_TIb>uɷ؝9a>oҀcz2\?N wmX>fTG8몐c(K1FD|f~1 ,)TA8<;%xfԼz]g50fZ5TS8s?! 0l 'o @>fJO{H H0>UqM N?O,XpS+4hHC)HKǨ1 %hqW`x2 i~c㣀ݸscU&O-^")PzΈ)5<3h#8 tC[O}LAS_$DqOV L"QT1SA2 Pc!M5 JsZDOTZ"0B$0#mPwU{"ktilE M!p0faHh ]Q`^uM=s%l8 L 4 :Lv/~'e︿A{a{? :{ƅm/̒3jBfO/|v;R`0 e1Ds00dcI   cXviD0050 Yx?A0Pډr!:XrڥMDܵ,0|_r;i52Q*g#/` eO^+USX'責n~ >}1$8mE}ZeĦ4#,Vr 1gq h[{8){X7[E-lRُgJH+gMp؂ +Gi5Yoc]SuZ3  ?.a7}{Ecg2p7QZWuFrIv2m `j5_À<`_ˀ-qchRo2RZ 6Ke ,r;GYyrO'7pWZotX%&Og'nɴLtP4U$k\R\m@8 +ACU7 (g>oзh@|[B1PKoň|ĕ-Rw>8Eq[=LVepiKUa2׶B E;b F8iڢYi6H -xU( ̮oԥJqfU:c}P 2e4%UkKAf% k%Pa@(aҴCTxݣ O<#64;n7H447`|%ȂeH>T!KѠ.AaPAqJH1+P>&NX|J{}4Nv<ة`<&T V^ATצc@IAA)3PƼT+&?WRDmGZ6Q!  =*qcAA>tH LmE2ߴ,1%DՍ`Q<#8&]ih^;xgI.[T&F.) YZܮ#˷A&o1t@pmϠ'C U)'صJ8k0 C i\ (348Ll 5)^oC۩x hJP %4<Sol{/LZ7 4/A0<#P|V*Ji^hڶ#m,@cdHbA`&-Q^TOmA yt*@1kr`]n&~ (P*')p鿏#[8 Y#jCP&T"~~BpP3"ec 1:Βf>)*mE .C,@b#0hiCfyJ'B@0~lrimbW7wv tSA")ua 9e4W]傥/(cҺ>>%l(b~1ێjwwy o@Mt[eu01a9V C N,Ζ<)feɀ˻TRc#Y;7]#&yX}@Z-$t)E1~(~XY)*sʥ=V%x396TFqhȂC/(8Ƕ-dEkͮ,5U,}1ytG+C@?ݘl܆:jL$-j ZppZ`EeT$|r(d˸ R${+`-?λ=|?O1m| sBjvTj8e[c>qn"FYIr_+>;O ^g-:Motў@M[potPCAV 43!j*"HGzSPrm?@.Y}ߺv(9"Y,:'z8zli6!*M+$FfU0 p5x ̈́ ҸP`TQ{9n^=L%}0nU0<$)Ah+a?7lj-"WHr?zy/0nz'?9Vtp9M=4T+8}*ɒz@MsÉӝ}T?VGS.OBqjAl$ϥqgEjD+0>bhGEC/}zͨ~Z`L?z"}7P`8/@ O篐ۅ̓3{eMz!?>3\Ym7R~x\nN3>@W1q||N>L ~?nB+reP8䢵m6,`H. cj;iX@(b@Ҧ c,|9m-MIH< Pb%MoAP9A`;pIGW0P1u.-|R ְIK$gXh>H¦/d %6 [ȹmt/gyȑ6zj؊d:;^?]3~ׁތ,y ]{g,DݢHc`=r~ {2/ۨ$^[8:=u7L|(!6CeUMA^>i,;7oX0-(2BX(B>-mSJTc` Pᦚ 02P6>hJdĠ$, >i. 'p F#ʚT%-,F0xfAֶ>Vl%j?5@XCm$2%a^+咚Ppbp!Ԫ%RMÆljS\gVڐ8Q1@]S'04|e^  @>-{}RL>8׀ݧ=">Uajf.jAq7YߺuԘy RVu(I}A84mS @sc%!Z#yЪ>e>ƜakM@TNRH!cC><<p|xp i*i jV t$MNobo čdG)x WcQ? J1TUTEꁜd 'j֤Rz(,cR)ߩJ f,I:r+{}XbNYa^ם_`M?e~:)x ה"Z<"" N<֡:&~cM$ ]Cnٻʔgژ)]8Q~|!,Ҙ~;\ø*qGm/0ʡbJt 3_yV򰙀KTRPZb<88 tPGE[u𙭠YV"s 'J@ʁhbXh ]"Nml#tB"j@%m;*z%V#6✁U:VQΘw#*XZ;OҀ-bɸyuUg`ȁ&nCϩ*">|13z8w;H+&Q£Yk΋>wriQH -?I ?)2Va O63慬qtk`ԃ 3ڮG{Dq ?CKqbP7@nWZrp=8rcyc-HU-wk-p1:db ~ >g|mAƨlW%'hl-<gm0?5u6ŠwVvia5F'zr -RL$w)>Cs?XUVrI^RiW/Mڒ`:86[Yp'éDl´%|K/|v% v %U#[uڡe-{+S \aI9?zTp`  a߰,lVb(b#g;qa_R@,JLQVzo!+ji2E ѹ f'׮* hwRaƨtfpKzcu90_L7DSBvR޹ )Ű#9:PwFf[00dc Vb8_@S`<J6_/n>-\&lX7Sj(0#0]`(A` (7U)W>.b\H/A@(p%q=U"FT : \:#?2(X@]ˀ4t)*9tB0sڣ H& ` Et J`A01a(<<jA Ӱa p`Rv xx 0x/A ŀ,ؼd<>t|HŠ ` N~T#NxAjJ?xͿ` 9@4Tt/D@|hGz |OUL4:uET;z_+Rn"Rŏa0x(] ` xl _708^80Cz] uX>`ǀ60d.%8R꿃 k=V p\T t)Q4%'Vl xl VuJش$&T=ö &g#N5IN=*A%osg̏U @ @|B!p P80>Ѐ}QT3}%o{l }  - гwz"ᕷLOuKO>2} \GMT e wA |?8*@LV\ P|hp6"SC0Vt, /Zvm?i=O|ϽaKg"H xB>@j $yQˠ$$)v+nYN>F[I;;}?g#:2KΡoz>*  %V xA+]` 01pA9I0p(\PQ"xC#$P6 bX0!Z]D!T>Kh &:bx8Iqx`$_V<c  `aG.yxV˜ xCAA8pD<؃~<`0a  p v>`0(!(0A,TJ%`ʕhBD? P0*@ĴpxAxh=Ux !oG~PxP 3AdP>#+8KC"CPH[ӭzig2}1{[8SX+YT->o<L,p1x0wa @ԃb@ xxA ?0x?7>pa*0A<j8Ǡ0Cjժ)R*ƀ2 ,xUx0R>@: e`Z:Pa 0hDa@p 0d<*0xG!@r 0x 0NBRB|h ;V &j B<@@<.PbP0*.! j  P5  ! BH< \$xc`KҲ PB85`~@?|cgѽ€<i>h0\1T>q'L׽B!oH  ;WGx*<T P>$ p+(HPx`? 2,!  Pm8ѳ.m SFxm#k8ci1x>?/d4y,me)JR{ӇjV% .έհJ.tޅP0<# S͢z&cpa>)u2}\lnp,)b汱KݶiBͦ^C|?0`·EM^Ə0^e gՑн|?#bE1 ӑHS{@-t2qLP>ox: bc3 Q᷊yГs +aǢWH-Y0xΰ>)ޞh00!0Z;@0푟tﻺ-QĴ100dcV\ w+5aάSM`Yʂ&3L @APpx6hvDNiBP@';:[$0bPc@  R ، A?<2P`0-A)T#$ r` PH  ɶ8t}p0 3y!Zccbuq@><k`—oF}\|+pbpa d00>l`?J 8{Jef7q5@aj1;OV3ɁK @Fh޶ۖӹjNrF .tݻM9*tw6ãx@ &1A ma)m\qA<_ޝirpaܖt) ))| {?KmP\ c`/V%PaP0C(1P1Bx} 1d!8p@Pݿwq.oprp> X  T @f>D/=P^^ Ai* P|F)RfT,"|8Aj{0 ;q}2 #BPxa?0A(B @ a @1R4Ġ :\> :F *c|x@0zU`xX` ``0れ| 0f,J?JX0)Dx GQp\80 $ ` đ(@&%\ a@@q)a Y vՌo'2wm'(pc/}Κ Wz˸PȝP`k,QՐcPHd qwsm=9toʀsnv8}iVc/M$ >X0Dá#ͬuo&}vJ81;>L6ܭ0Ft71gKj'аa9wo Xhco>a{1H1;}ww{:00dcoW\x {ҞޝӶnd;xw{wotu+_mQw3_w00dcWٜd^` Q릁`}Mr a[FsVhpc!X |dÀZ80@ *8ɢ|:iY4A8t 8 aZ0ӑ㮓p?zMSb1`Tt.|B`H"|h9&@2̛V8b|x(P XU$TbX0(>|0 e>(mF61CGOBrQ  ᔘB_: !h"0|8 p4\+  |A#:/þ~02Γy7О٧i>4.lÝ|&0 #x=ã2 x%x`~ ڲbc#A~BP1|A| aJ"a͡x,&d@$ P  rIvl YMf"9u) Ɯ}82|/f3h(C< ĠfA 9r ^x b@/T2 T 0\  0`0 H\ 0)?)@1@>H\00B> `// <8 # 8?/\~ :K ˕`<\>4=ɀ$/N;#os' ʹGt-+s{Q1a8. P<$à|C@-h00Qt@* a،x`SJ*T 3tDԴﲓ@{H_=T>OrL<'sm@[`3sOƽ/hDˀ%' >$Z Cٶ^-} tRӞy_ i՘<}аpbt-e&{@h8|TwO8qD%W9Fi3gx>o﬐>Gow108Ē>GgA |H€.Xtp}W.t,7X> qNX1Ƈ>\M9|_w @a6N/<%k_00dcXV ;Yˁz9k<_wYՇ{Ӣvƞ9 _uv3_pa8fڿ?) 0D}wMwwX`00k%_{_b}Lzw;76_oK!́J^?M0uiAP BGiA G羗$ޱ\Ԓb``2^47q]'}mz(8)G^: _``Ix0@> F @bPc@̃h1WWM}ImB (l"p` 4 1, t| D  'a1*@KNWݷuvՆP  > C @ca*AT# ǀ6P19vU`i}Z߅V.>$ŀ8?a2j B>Aq+tx ;Ph35Px(@tX(*$ .<ea'aڠ>;r]Px3`HT j7_J{ý:$  >?:"|B0  h|! A{zwCw}sO83>,;(>ge#@hx1~i̭>W}}}òIc/>!m/Y? ŴMu{*1 5}|PSwulhFq߻00dcXqsNle"#ыޣ-\>w8w[.W%uՐ>4PsswޟL G=>T`Vqyﵽnﳜ:|3a{h1#﫼.<1<D+vR*`vJ;#f^4d`oiN3|Ev`9&J$OTh(AJ @@ @l۝_U1լ߻B `. 3R.< ރwP @@~<b@0BD> A@Pڨ )9_4dx7 @#` NxDm(8<7A0`S@<n%80)PJ32Zh>G`L|/,|,8z(>l9?c?GzlwEӆX~80/,|?/G !`7 CtIz |Ih@>'\,2x@IX! `xH<"|h71$x3P` 0(dy?d wL9ήxi8C&hjD0  xA QxDa<P< Pa(?( x/AB <0 @ H<hH ˁ< XxA@ aP0\%e ðxxB0d(ؖ>((|C0CV% bXAQ. `RN2shG%{ҎXelsۻGIp,0 M@UfO00- NsO p|(Q>hg€%F}ΒRum0m\ӹݷ{j)mm@s^e;ˑwr00dc7YPpW`L9jc\q3Sΐ&3bL0T`4 /]4t`l 1(3vZR( @y@$**.F̀$ tJ>IP>_>|DeQx0)#(2fAe _ )(q(ȈwP x; 0bL) wðQ `ˠ:.%t t 243ĠgA4¡1×810`DŽx0 }H#N)H10|;1,T `>-PV)ŀUD`0J@c`w8&Drڬ"2 Sx_İ-EÓ#EgA` zDՏC4HOE4Kuep@":_<)Hmd}1pC4yM HD@a]X$q\\:Kñ> I@&;?#a}(U: h4 I APUyz j@!c P" 1 ]2Z: >`>OaMa!r9ȝHA=>/}>7 ᪨#.D30d!: \@ u:sU6UO)p3?.ՉGJQ@ARr@ qɨA@S. U^uH1w Ud H2# pg t9:w @Q% 0c34, H`p@-Xty,Ip1al%!BAbP*<8 |!Є<Є a0c  a DeMJ&誄11S0 @ A"| xVP_",P`* P|8h@QR<߯ ( )/fa 0e P)|'#${ēF`SC8gxi|/^`lqX<X<APa>`x<`? P8^|>T % 0BPB~ 13r80bx <uKa AÐf ڀASTA@;NAC@`DP$/ 0Iτ, s$ |JȭJQ@0ƑP|0 O {:%pW9 g>x3&c%`&t]D`|EN83; pcE|=ÐL  h x@U ^X01 Pi(>`>j`)2tKlm>j>W*/oBTH}?pSB 5bOsBLȔ8 J0%*S %Ġa,{aH2A0ACtF9AJ 1`1~U+P s ل>!a3 ›ae6 )A8#΃TĴ ;)q f5€/̏B(8}Rc#! a( A,P ` ğ+?AҐP4!L@< @<PpĐz_*h><.`?@z߿*@xHmx%?E zh0KB$*GJ2`=|xK+z%TA0JF DbAt`Qm@KP k0r%O0J Tf qYxЃ cJVp"2cC@^@^#x01Б :@6fa }<|fe02})Q*HDp|/Du8#gPH*rg€ 0 |Q SH2 kbDe`[ pglA|?K>B*Ā&8Q0cA9|H_a00H3 > KNb7nj@j?pdN2&SP:1(C8j":u2o1*$H0tN}U gOp1׹fn ;/'C,€$W1̛a8)Jj<#4!^ 4LΜfȒL#Hpw)01f$rĿ S?' 4Iwud$9 / i`chD`[!0>,#0ܠPǀ$A، A L?(12c4+3W)[NFR30Y 5> v3@[]DT{8 xGP{" A8"TR qjNh>$-&ͤ>#` ÑDCf"@ @#0 O@%?C$c|XEqG"R)1"@L4i*tWaK?atY@& .RA4W2_A:&eE&^DCVJ c=2Ej{/ d.h?00dc`Y ssBwPNOo?{)008*w$zNsaNL܍kl0^oI0# .LX1X /+k@/}O , 2oㇴ8)Dc ¶ JoC9 }&Jŀ cafxJ8]`qRbEpag`V ZKK=?TzT2c`gP'+ua^x13j a@i ڃg2.IE`dMRsݦ3dM} & t2pC0a/X ` e` b^!@2`S|?A F:x'p|DIȀ%w7w{s&qNwF%vp|8&A0be@ob?ze*xa!`w؂X>iwlf! >_ 䝛ڢ$ PA6 , i|( Q0 <\G2i$\ #82pyAD20;j` zs6퍽 2f`P j0cˈ ۘ>)Y !GBX<\!2( > "dJToL:u;x) cF ww>Xn>0md |aR|Q1JD_0P> G顁e880)L@p&``C)@"|?Y[xȁD-dM`羲Nm1&HF4ou,dD0aq: *Z6 9ݬik00dckZK8 wdݼuzz;jՌw};oB4H,wS{߶smG00dc'Z\|HbccCGR 8ZWNU@I CdG(;bG BС3+~V@UDwh wĈ{68dq;n;mDŽ\2J#'sjpᅸ t":(g0GPgTXx< _xO@7AD |x\9W9Gsj:4d`U 0[9?zpds3Ew>#g$pQ`P&w8E>l~8\ >$.0@"7( `> D@|/@(Py(AHdpwK`_Ss9A 7r LSppd)xO4R mj "|/퓇ppR|8›x>, á("<P P4^D<2`S}XZ&ꇎ:<ߵ2a7p7IU>t^ c;0tـ'A@& x> !PxUpWH`ph2|xAL C!003ܑܶ3[XP:JKw7:*h f_.Z쒵lۤs` md)dǶIʚD"XA.T (x(P0 ^|,P0.>W jǀp2esx`1x0S>t àxĠl P0U6/|((m;o w \;M^ݥsno$wm%@ne` p`0.P$p0@<j>0K poHn1 qfK[^GL/X tzZПnUt$g8~H`6x}`_y=pdtd Ҹ>'ܓC+Nj@19MٕZt{ɀqoǀ4U6>/wGޓ0 Bs8‡X'8/B'@cZ+l~kq2 u 1snvNb"isjni8[rFKe lu~ M۷[iemҚ00dcs[Ex wSZu}MX(7߰1#Nws'vs=Ov}WH2NP2`Ey@>:1G@> FPilg_c-i ^σTAV E`xJ  "QH e@0 YL ba S8HjI3{Pno3Ƌmǀ0Towp7Qc0 Hh#5NV< RT Fé-$~]_Oݧߴ /`F* 0#Ht%DRWڣ{[+1ޕL`Pc]d63đ!@JV p)D@gViY#t=ϻJ4Ӗi^d cJx?Ād Sq9^7nwQh"Ɖ@ T0`< @0)AR%| `!t>,v%v /`}678ƞrNҔ|m~ R\į `TyЖ%BW? XJQ%:tt "xyHxoLo[Q4ufCӊe@{*%)R ;>d',mY ۴Įi%9ۣoMf6sesp}(]u|[Ous=c H3}uoL۫N7snx>j `fy{v u~~00dc   cXviD0050˜ Yx? xGKΓ]- :yR]l-*>~'V[L|,)\Z\~#*eAMM Ti!e)}t^= 6nZQMdYnrC jD3 OA#YoW?hATV#ZCz~9n'=:8<ꒇ vGd%:fM[*~iZܚK%`Öc?ṮiҠ!n3N  +-IJ?&/Z`B lw 6ʕ ΥJ-.@\%HMb7} ?_ O]\~Q= J_AŠӖx3 !uLfϺ^)]Y?cNKY2V{1T l><$9 FN -6 lͤ8mY}q ){<e) +6!lUױ+hDzepUAﮧHk0b*(H>z*F wizlP-l#*"&g6/-[lfH $- :=>0ǍtG?h{q GTkt _xFE2O*ݢ`Ļh7)N&j>z`0ұAڏWKbyp+7X_V†^N%+Rnoʜ2j1oH!.cu1k7o1gЛ&폚B$zk,7XS ?jG_J @y?Th0vpb@EmKpZ0<) ۅQ?#] ŧh>]lų; ؂ NaxX%r,HUX ¶x:e .zǬ(U$U]&X@?OjhӪaA0oB0C/T~dg`g{JƠ [`vdJpCsfsNCԭLLDF~vA6#N\F``0@C[Sյڵn",|0vfǃPDdps}'c!XX!afM;AQ" aLgˑ>7TMITA"GJMS~Й/S#ƚ P8pl]nWf}~gدqQngylP"'UCQZ4|gF@)1`2+)-X+)q"/3it,=ALS'5jXԕwk0g^5d<"Bc#@72* dH&l7QT E\~   ptW(<< >IKr-6 zMz@ܥD 8+8eS8-ι i\]? z>)@5!)U]V*`AXR-ik BZx/_"t`/MźB׮l!x8S~V_ |g }>ܧHNo/tuӖ{;]-nLs?kЏbB#TIQZ܃3*)Ql A6"?0`^a;ˬ/Tܯ xFJ7?JE"4c9"zY,VR|Q -\T2J>/Hpr96 M0l4¦Ct6A,#!TBL$GV&V2^Y 1E<`CM0J`yA[KlH22PI@ujULə\oK9ڍTB!*Je4(P3:0Vdx8)l. jU/Pf00K`1zasևEڧ6TA(<83@W$ ե`t%#{@:TXJ%}Za%%a_vP<,;ja 4 jqNI75fd=zA;bbEԵzT0c-c4wGbASZ ,,mUMX~:]Z;PsE, oC>ZV[ccB}-ccpӼ v\{?uVs~90Ai D[74mb2OR+bڠReŴV t8;ign$$L'czi|n! [tL*A_elkT).G\)A qPQ+iS%ݥAZUO ^r')<|^ P1:ftzt-?[ ]оF9Rw׷T|``2Xmdj4! E(x'/h*o!AI)⠡%B"+̢UN?eL0`+ Pμ\ XU T*R=A?i!4\#Jf]Pme:F.@_tն .bzѿP[A,7KfJ%hq DJv6hwc6@:P7%5PYo-X DdMde"Dxjwe:` z kˀe"hޞ%_M@NOGsKy8tI 1xCA06˙_l>XJ9|xD)65S^K؀Ph1AIh`yEY,`8 )ȷp셰`e*81[P-eߎG =ڧ%P q>w-#PF}TPMg%՟R J []ZGau'`^gPgNyA[e*qU6kbx+DG`|yjJT6Z\ FscG@<8!4А3M&%P4!{UE 6kS` ˨IP,\dQ*WeJ-ףeP0fQ]*#^H?4ꝤLF>9Ԩ9Xrtbs(%X]I Jȴ?H--:L9ARMp)۪Os@׷s/zo[ɧkflsݿ{^ 'OB)O$#Nn!NT5p?PA,@ 4O>_;ԂM~!&fo8N2hp Ÿm5)ŪC&RyiiJE\r|z%%WɁ +G GMm#c aj߲ig a(xR/̵u^Quf)+Rhd,Lev.@cQ?ӿt~T=;:[}\Ku~C]( E3Qm1l[|EO{mdDy<EixiI}7 F%wKQT$s"a/9b*N)&G1L ^:n􆚡=h{MQpN apVbskFȷNuZOJ~D&yrZf0`\9P->Ǧ8g-w.\Xf6xKOLO4I/@W ":VR<01r q[8Qx($>OPp 6WVC^4-jr:]+EtIsuuB*jϢ5)*7lޜ݅e_m چDiS\B-B$55TQ2r?&Tmܺ;ux]=kYDStsw8}" ״}"2.85T(N)?r k8TA 1ew5VsN F#;<0r˂~T@wKcȜ'*V\N$Aةȱ/"ޚmCڞd~t}4V?]jLi9LM}vJd,J Xa"Vl_V=(Y-!:j \D@ΙߢiMӕ(QXrMWt,a!j>ş x35Zjbչo^!;AI{eG?H/mpd?oJD htP1PVEt8-yMtZ=Lwk, /t^9jۅe@;7 T_kib*A5]+!l}|v$ ]@ƕIYbܴLpZu4W{[D;*a58L)M*շ sZܨb0Yԟǹв)'c), / "~J5 y -b7Dr^XY5+= &bʔ;8oV xr2*:r/.DC(2odo;):FiN,WGަ8vڥ{4e\ q?*ۂe?|r+Nѽ0R+MU0~[2*=\h4 x+Ue/;[ * 8VedQb%ZoV _͈=,[#8B v; 'QUl>sk֠""aeA{",$E94"(kE-NbIS9nO~S8+ jL 0J`q6X6j^C^(*.e>W-4D))v98-1esw3ڴ^"M_egll O1r)sꈥo\C u}S\2€6!͐w H۶eX"Wڐ e&O'*+Sb'{/l)Qi>Nf "'9XM"+pmJvZ~TYCQ rfV,c)XYHO~m?}Z>'*;Q>Xcb7vJ6!^J4j@U3*$-]%qzmpVFVm0s·NJ^TD@Ċ/i+VtxF2\e/OS*M{1xla57 &+CҾHzYZGCZ6RBj'N/:77 pܼKyJ,YTC=ߟ}K&#Hͳr/B<n0(8 (̀Nj LILi;k/n䤦[am00'6ڽJt(jR+1wNd2<}};zҊ10y5'ꆗ\Z躃0׸"VQ3Ѧ:LT #_:e7mp`< @1d$8>t3:#4sݿ#ZT )/ej$M83 l&Q*S 6!dj߻^0:8 pỳY]5MӡL9?2sZ*{EtGf#us0ʼnX"m{ n'Tui!Ab!M%` x)ߒ%+60O,> mJo3' zS5OY?߆#ZDƲv7.@4P׽bZR g"h@ k0 &M> x+e40uUs[pGk]6 #ܲ5*GV)VG?̟Y+@ƿ'7"Fht =IΖ4_i""V 1Ц <Ɓ;3%0^u G LRbm: >^w[43Nv|3:5z rt)_)&X aO\X Gp@5d΅j=Tl“\_ t)~B#SW#uT5<.j2>_1ϭ?+ /ԧFmHq[ , UmMaZφaSU~'9s,96+=Ο_?Bm|`:~)%aY/+odhS#7=hwBj/(bO~Qo)ibp:/.PR(T]_NAO}*%Jcl `2@>ռ\ ԏ{b\ T҃@낙Ѡ1~@6=<3S8f&+"8>$97JC1aS"/XOZhˎ<ٰ3V P2t H|)?=ng—;]=0~|(оx(xbw}fl)ea _V_ta$JK!*RE#(*PPZB_ix @ @X$x0C,]6l)\$`0D0 c.=<2H%B ۉX6(=z@ =<CXO //nÀ4F.0|GVr\_626#] fG Wd:o)`Z4 `|h `CᲲ cm kS4vPY<lSӽ\ (=ZӔ0P գox*x{e8>ybh2f)`ĵq`GqA7ApFwoH iȓR$udܔ3VhҚ`5ZaN%2 @Q,0@j`j[jYJ xAeI@X}"Pτ t~0)X:Zsʁ A@ xA>|HV `% z4I{ á(|L>P R|Fn؁pcU N3M|(R Z4P4s#K 0#k)NWM"`7I}`pp_"QR1tK6Z 1pSjt k`g/h1Ǹezٽ y d5O9Hl3ju1/̧)Sr V- i{GC lr\e39[@.2J x/`0ZA@4ITт| H|FmK:`Jtx%$ <և{J&, xA 0xA CB1.?pyx(pwKĶ` ; nA >_J'HA[㥚&=:<6 `b OpD>}-Ag&攨߻>(\z3uGƅzwA ™h%kƁfkO0 l(1; q%_ȁ i4zrS] m7G}B&>N m1wOIL e ݧUpf! j54zNaM8! 4!1,@$ $!@/t|( p kGHS  6_߲"ۦU,pI9ZHXc5/Ɨ ~K[5. k[> GX٠c_YI6ঝXvpϹ7=e0𦼣ߢ ]φo7ܻft)9[aX"s2m=K'Cs..y1Ӷ`ɼ Aǹc;9̇i}~N ^ԄM7. (<3EX>$~Z?̙&M %j^aƹtkRzn_ң{!KTǂ?Z׸fIӯp?F.rd> v!pIY: 4f 81K fxX0ڟ5x uO u#G (>D`3Ōa>^5 pV<#:=w%<as6wAI:M*s> dyێyF.M@-sD3q585Xbp|Ot1+57Ko iWX3]T!lJ^R_/R ߸"B:pSl .7.ǂ.82Lt҄@9ˑX1kUqNN 3G`XtY Pb|W#52 gW9oXiAk Y'ji}yϳXi+>LQ8Og~ s LTIäzk2N Y('0,_`_ H Q1 0z;BZKT+GX0 < p?/rj;P?`R d:`X181,?Tk> #?ǀ-} c8vC؉`S`1`  ˁJX (R;`c@ 7@ sv=]ϴo|oڰ`2y;wvo\(,y@!?^R%|?o#hz`b`4z>n 3v{w/ip;rnvLƄd~XHC $C<`04@g#pa|ua1rW (d%xv Xw4nv:OWQӶ@0#pdGA`J<1c0 N%*<tP1M9]C>=O`d_J  Ƈw͢:tzsON5vXwhtz *?R?b C0*XŃ ] tC!㠇 CЊ B:߸fӕ|ݷ+5&. 2hco|~ 0| ph^/ 01$@ *n 8dag4I >'{7ݼGHF 8GԄ?{=U1|GÀɐ8@*%`3vvޚﻻONc;sOqNsoucc{}mvޮսݤNWwǤW9;Onݽ00dc\]9 uu{ӿww+-ww~;w ԇ600dcw]#cgǝ;[`C0-(Ղe3: PLeSzmФi SNY$|<ǀ% \<P:xIȚpdڀ1Y [C`;p`Sېc79x>hp|8@`ZH>`. Q!Qqx<b01J(Kxx@*x:pg0_A?À$`gӲt|+(f"i@cP>#=&痃|x`Ȁ%\`Q@7,a> L`2X(\|I>x>`|Z |/4@?waxpFB xRpQ>n`ǁ m " 0#6%&`>@2` s!x\C9(1ۃ@^K4㡠Ƀ@1*$|3W€4aPA|)p>7n YBTৃ4 3 |Oİ>^KI0xB S 0 {6w'aT!x^ ,l Qp@xx%xH`P xX6X1MX>^J\ޝYh835jrVD2}yrm)P7#'+ ` 74X< p@ Q2|x`<  i*T\?0g*AE@J "Rp<a <Ȁ%xX`&Ā'!99f`Y3l`0ŠQI<<\ʠ|?P 7cO7HV<` G(h|\ 0|xFj B ;0@F%6%Xˁ&:n9ڭW94^[Dۜso2TH^'X2cpPn@S.  hVK[t$va:p|/Dj% `! p<EAL |K0Q" 0|hU*7. TIpC.H|R0>$n}gl pyhATf3xe>t.]  p>`c `zN@>67!HZn:>N{I¬2r5>ongV |H(ە|oܥ]r`"&w1tWq̉R&ht;@^@ dikA` ` C"yAW-9yx/?r 9(ͧ{9x(yM?8{_00dc^48sLJ_aM=E}G[A'Hdܶ qK^J@ q(gŀ% p|hBA@2H>,zW.P!X |AR DfAˀB}Imk7{  [p>4j`| o|lM^x@?J\:_>5•0>l ^(gb Wヹ qHۃڠ|~&2yǷ W %O,i opAPa~>*\XP5V 7.+H0& / `(X.`˵;0 i=BnJOq 牙N  | x 0 ̃?"H24AA @_&dX0.S'6q8g$A p* `@>@<"H0 np Sap*?p pQ.̃& {ͺrm<I0"|^?@P "#8NcjD}gm{X>.z{ޛn3aQp.x(T^^\  P e`]Qx>+x`Je?0 Qˋ2p|/[(>T)ʼn[ Pthҹ7{}C +À$| Td|3n"h0!x >8i>on 'R`P;s&r4p>Opo+0 <$teTh<xe` .`?0... p`ˤ 3`L`yyx>O(,>G-m^$JH>_o4£dmYd!rO[t Ӭ 5{vid '`(;WFi3XDKs>ln]^`BP|xA\p*ν|"@P4CXvw}¶o00dch]wV3exs}GQ^AJL p4h.x~\3UP(B_ RK@XG']&m\=1@b{:Ns4 (X0p D@ǁ1r@:Pf .5`ŊA&0 T 'G%)J}gf`x qwĠ> Ei'zWL2ax0 e`L4 HE ko[E * %B0v8;Sb )#iͽ}tﺬᘺ{c-M®۳osmя}@afƤ "CX|d7?{vN{XXHh3PA*A@eJ*T` 4 $@Bg _8<< kxλ8fuȘ/;:r@C6Jq0a<~'T8 bb*pO?uw+]Wդ޼+AJ J:*(`@—Vg+JqC{ }M  XIZdth7AA X(b ^$ ?@| xu WGP eUhDHBYqxqzׁON:n&:|nv}dx3Д f@@0WB ( `eG@o<%yX 5T۪/A /eeA_@ANw}'֡il3a'wwww}e'z}$}3}$=ʶMo /\usӴ='-ObT78Q p Flǧ[} sqSǯ00dc,Px|#@^ؐ>V,P]e, -@ _@ rz\%PT/)0LxMg~\ f|Zy/#*`"Aă`\^QvK`ʀ@ B :~ _̀x < j`%@P^_AR<IC˜,<Jb@@6p̢RxZ jAh+.UzFoz}0|0 P|ˆF_`J QA c m8$vaY/x`ɾ:P  a0bO*@X +!`*|'9C49cK`lc(|X^!GX>gW p48R.-|hU:G`Ǹtsx^ @cH @0~W 5ƓM` 5c|& b+xHK0tɅ&(1d? [<}'h x;Cnt͗p(<f38c , qZgZ1QMUgTdO~&g<38AfJ +83xSd.Pf 3 |Nk>v"g'Àfj dvh$. A_q@<|ۅ1ng:秿`ft `F)y04u 7=='8t==k恞oxf4A )8FKxJ*AA@%p@ G3 FkGa<b@;mh<4>-"BR#r A <3 Šx`|:;@įC 9Ax;?|Xu'H%` UV#00`%tRxgt84)H1x<$"LV"Pp``a<,ꁍ@j %` `A? HR[}G0p0@C`x_T xl.Q\\"Nmi9O9 ׈󡚲釳݂ozo])j6@'zmVRs =hjCX9>`d9 aZS g R `F(@x x_D @  6* _J|H@4?ԁ(. "qpf|y^##saSׄVhğM'ߜ<)I4p3HHا'J2ΆlNk?z['i[7S?)`ox040 <X0o@@v?V$ %@`80> K>$ à`Q@H %`2 9x~ 0$!~?x1qpP"p0!2~7|*xxc P%+*VAC$'E 1=z,_^qNer%B r ,\ c fanB `S ήzZ)0fFu<3-p~r !F 3 I2 @ ( !#%|PE|xĠ(@Հ`<ʁ aJ. wS)ĩo}wP,HS\<*'pdb<*9iI>D-d35f)1kQGeួs0c 0͛<^*`_W99;1M P0>DqqT:zb"3WH3# >)"H0 K?}Ab@Ġc' D\C1 c1=4)eO6uGypfcT m!*@c##@-.N-cO'N7(R>L/[{TOBLL0Ks]8 50N@>G)0\+Ϊ [% ƃ 'z,#Mõ!1'6e3^t4! Bմ* 5NMAra ? hd^y -It3f@ mtd,U`ܴw +g~NgNH`~XQ)êx0 @ T1 lG E'JFa םAK}ɜo-XE~R`cg &t6u&Ԙ ho0|8UVixꠌ >/eHvcAF\`>(GK@"Ƭ> sđBc!LASuZEThT :%*Ȕ lz a#/hϠAUnIU& ~(P}dU `^ aA}_֞!ZX( S`U= *|/ՀCt=yo@\0 -ëMŀDIyn<<~: ĺT  y@-+@4X>سNp0*`c⌔$Pn$>=&x1kss˙QZ Ωޢ1*lD RajjB pQKAɂ Vt~Ak!!4}/}ODO$9g괮Z a!/d,&+ƙ f&"las,,%^ ̺*Àe`-adZѺ-P|/1#yx`i[_u 700dc)Q :}Ω}Bchx^7 $GǴFA2 j#([,WAd=TG=xN q?M虀 q&@;xA` x>b` ʀJ(ƀ%И:8%*A?PK* m@ :<0oK|H@g!j)aͻgs [[\`QUD aMPbtJ B!p>/jˁVB`?x NOd#AG/cb#҅#rfW9l-$;>?1`]\ӛDt7wU#{vHwO|L)g$MP0(~80 $y%!fv>#kgYi75hUL!AFTia,E4>"HBj..̼3p*AI >HCVG0@dNgqh2p g;܍sq%;WX  Z "X<@0H Gpn ~T^^ oP ^ t PAyX pT J !px?4P#J ~ <@K O ɞdދ<r +z̦X ީ.`tk&ODPͼδ6Zv xHAE 0!0p1p0$ip\( hQ @@0*T^%R^ Bȱ$-`4mOfcMoijsҵ钀ʋ4|e UX>#:jA ur`3}u<: зwg\=ǚd`[Ioc'V?smݼdIA}|mFM3#l[ҝ;J}b[M"v0hy֞0zWŻvd+fm7CZLFM{m`¡S8I&7FνX iMry.n*̓u1 /g܅n&v y־ͥ{Y *`jy,00dc%Q 58ʊtT]4%ďc&2)x[@)PJA㰤5FutPbgMĜDᓊk/s81@'/<.@R=A| @(bRa(J?P /UY1lݽpbc+)bg9ō1Rchez (>4 l`尵4"QrJLtX(AJ B~`a#|dd89ӡ绦}Tqqʁ EG~.f!%`<p j>Ԋg?L E`l5́ĝ7mUpd^09z} -s MxA0ĕ?LQYyx%Q/tJ T('8`4=HJH1`tbPU2bdBa{$Ín N }4xh)`%`|r$Є L p ! IMP0H$x8 =R >p0S>* [s`'$G-7o Onp]m:pۗqvPͻYEO=ԢbF#SL O>0 qI1tid>R̀3zBQ:BɘSϾJ`u}ca cYu{}vν[=;Y6n3-00dclR|P`UשּWt T%Yޠ!PSãN^1DΩ!J b@,H 朞0xA)|O"f(IQ, O蕕'`U8' `$ 80 4( Fh0@T$exw@oJ$4xGo{V `0` id d2]%or}TAƀS>? `2xd0`$Gp|G@p(0f> 1(! ?d  %<J, ",H>4#7 (>tX0 s{NL>Wl?NDhqGPm`Džf}1u 43T?l*ꤑ)xhQto@F^ "(d|PǪY[ZG>{B+-WNl/,6 MBT~KІJX`|/h `4p3@/._$)BP6 LZ|(gA@ ,`ZtTj\ uf='Nu9Hvɀ\5pPU 'f}@`(:!A`P6^ `!@C`p0N%/AB P>.Ȁ$G@|H8<,eȁ%`<\`àxA bnxh08P `Q> ;:|_]Y$`fsЊAxe QmvN8բOI<&@Ey8`4$H> ڨ"RQ`4!(H<$h#n \ "@S bH!XL3$a,Ax Tz%`RU<`Ax A| P > PXB+{%h|o[:U̓@5d ;`.>q)>f Bzإѡ*cN6eU9 @-h12 8-ӮB"OīUƀ%b`! |o\Ó,SKL[M1+ E`§p)ͱ@yx zmC?&BM(1EMՏ}$[_K۰b6[r/X}sw00dcf   cXviD0050 X0bxNI`>o)Lz46^mkw,FSw*K6]8+OJ*2Px2@:%ujmX?8\ʂ#b&(z_BhᯘTFm7WWgCBb~2 :*XQ#\ Ezd0@ DpU*j:e,^^N08yb*M> aBZOYuQb]x!D `UV +VG*XM( d <%07D305l! 4^qFeFJSjJ}[k'F *Klap yABG T A,?뇶mmiu^Upʻ}` uSŔپڷ+=_5 02{{œ eiSWQ>gT&P [ \"x/ҹ&ׇ-3-=)5{ lv3HXH\)<7~»pGдBh(SȬ,˞X4^8S'9n.B?/|<flĥLH38ڻkH :x>m>Fl~)]0Q.聪l_֚0ԙT/Nהo8:0\,0dJt/`$.?9#ے H*>.ztA˩$ʋWǟ{/1~m[asZd(EJ2`MޒB?${aP`< $'`Gl}!W<=l 0ҫ땄S'ð~IOx^5EE 87 V$6ܼ8l*cQ2e\ݡ@ՁV<+LWҎСd|<~Zs`!QK}0n [Q(MYD;*>-8/`XV}|b$:­U$*@04k4;I GFq< j3Z]'|n_dNHGu8>dx7%B`zvX9"h 7Uk(.'Orah| !00+0c_4?@ؚECP2`x?ꆚg\7Y@e 4>v1d@-^C P`N]Iurκv9o;TJ$9]aFȏ/O6>LKAPP~;wN^l:ݜ#Հ!ݤC,> H~7'!9U>0NɭNRޜw_*#[zaM%=ǟ\@ӗmqz7έz<>kyߝyUmoHSIS'O 29Qk,OI5h1YAyY`8p1eL 7j.Zng%fBwa(&hL*`l X}0U2ibw~E= yzOλc#qErDUӴ]Z=qjGy->q*]B׽Ya6L{ꗤ!³vX\zC~Lb+fbr,YK_+A{G /_p~1 աmyЂOS\$t͵6=-;1t&gTow/ݦAmt8mp$! b8)od,HAzQ3 ۻĶէegg, QOEDr@? ա alSjׄj:ͅ 9K6{=RBXF kRH==j8L:N~8ogg pۅpVDsc脬J`>'3FCEcx (G*IX~n2 AĐa %a7%Afg*ٝuUA J f0 Ҏyrv O80^cIY7N.ɚ#Pwܥcig:T{+*>wI󮑴ۜrůTw/_yô* wXusDOݸv1a)g>|?&з bfh% XFR" ́m5![3k }A@H<{knW MU=v*X<$<0~3$i`SA ; ބGsJ[Şl@ %@UMy>0*L%,(.YI˄~oS;$#LE$BUNz"cYO4zڦs{(fPzgS-!9uA׺*-jPXi|.1ʂN;>KYap}8{>ч?>5hb7һr:M{]h&~|Xp,9,Ρ .gttZWxv78ʉp:TM.pӜrvEAjZ8,bCPHt^\^32#ݒՆg[ _!F Vk uXZ0 *DJ  x@?T |lT*V28|~>|J `9%uy)>}X);w9;ʼn\Me` RlA諸bWQOۦ`".rl&R;[ nˌg-9]V6PXX -t`p]޻6'\֧WNXF oԬLW,EDoW׭ƪ"tڬZy}?0zC6:ShIu-Q c_)ب^peәO%t xS=XݧlX0&9t+6w]yBzA'y8.<_+hY~El@t@ɀ?G ʞ.=@ܭMxEoު&GH<$%Z`0.R=KZ=cEBNoan)}:mo1`WKzEm,˶o(t}^Gܳ..eB4 ce aZ2,q71QŐ"u:2ŗ F!mG2!B_ց*Ѻ:ȝ[$|)i0fE!SRkUEBnҘUC-,vYT,R@\ឯv3˜lSR*ۣm8+ypkf0PfE* r31@IcX~EjJPax\zC B5i ۹b g'iaeuV}=f9$2&/R5`[TrT\uL&IBB}.[sP mFGâ;e_<M8@er|0ɹoVS EQrH~e탆V^W+H?,, }#šƀ."ttTZPr e=nz*jAX{0M;L'kTX1MXVWH8p$p9 @t&zF[窅᥌ӽ " C!jn{*wv?AecvݠAd Y{\ 83)Ү ^S-R7&$ XBڴO_1O6œ+`1X) }}dh| n 2{ m>$`WW+R0ɬV׀l3i5 v?@<}{ax<SE_C|(IA MA>BVL Bᓎ;;IDZOrn%CDc?%{owe1Gه8u66fwŀHP>7 L  a끎n 43 ?Alh3Hwwq3 4L@6<i #n@2jSP"ͅ+8qɾ쉍:3zf>=pJ%ePV)12wq}ԏט|`8wa<>Pwroo{Ia;= 3xf[4z,ۄvh/q?A !g/i#@)w\@p]hguKVKwV̩[ǽؘ޶ 1tې0"t݂9HdLv{cĽ©0?Bzම) p |!b0 4 AޟUb0xA C`! , %x? >!}Q/ AVP3f6Į#o[Ԗc+`Jufz|260͐VXsg!H h0>4.! KaK 1.Sgh0|>R@ \<:IZ0Pazϑ, LU |Oޅg âΉjIz4^:xfNa}JςYx18mI0 $ t([dx>G,"4x1 L h3T#zCNZ̅\|3ݭQլ.v['PcXfՆm`?9o{paI$u,M3E* lYLX i({b }7pbpcB@-7 ,}n(1c,U$D{# ,It#,/00dcS\}οQp}x ڢU`@((k  ``P0R " uEH2eJC0G4>`Qx;.PmX3ޜMɵ`Vg1$(R%R̀%b`Ɂ?rk&0 g(e3N`Ɂ<?yĠ`*>t(0O*$Ġbb@4|z()4cP "? 9:` pϷ=π06?"};Pp)@@e0xAN^L1(8 q,PNjE` 12ǁU=sNǝ01 93vgKhFټ97=:?zGNܮ27>-o0 `dT'v GS]?1sl(xM+طM] }4Ni60Hǀ4K\x_?H>,#`*0(ŀ%:7dt1f38>-\naj81.xA \2H>GaL @\ X>Wpz(AEX3J<4?<PUzqv\ըn=77 km֙G@>TA!%*h~ 8"P <#+FPeV "@BJfuJ" ElPP ט(ADX>TnwB)xe+XuO2yg02Ճʻ5i@ٳBfL|D 1x@̓X7@|fBDPxA0xAC  %d \>T\ (8 <AB^ \A@ $4L.( !@A(AÀ%ihZ:q%Pz'Scep(½z`ŀ^bu!G84!$||%@PN@6aQ` _T0CMH<2b( ` 3rjiIINcE0km{Xq&0wQwHs&w8uX -0h"{5}{p|^ޘυ9s,Qxa e)ԞޝmT{vLgv6r,TkvN00dcTqx /׺]w_wu7{W]}ߺnku}-ɻߺo{_~ki+Vߺ[ޝ~uW߽]n?~00dcT'$q"P^pՀġSOOС-Q 2 QDA׉E=$HA$6$* wu $q@:~0 p,9=Px6t,l0dM) dIUKyA{~r(Z ċ;3+ vl3Nj(S(dyY3)ZE0n3u< v|?X!&+W@mh0*A@̹@U;?/<)ϊΏ\ނK`#]tU^P2Rn<)1ҝ.U&@(tDCRȒXfp3L20?PZ8 P|hG oxPAۮNB`;QAo>e|xըf 悞$U:sP!E0}OrU(|>pt q㳡MtƏ}% >%S@ć<:J= 0Rtc??sAI0DxpϩS8Rzt~2ij০HI;eGCȤF.$<|KDIv{-" |υ>M.C~DϗjHd@9 p> < z8S8c(1JL[>1|fبtF; 6`3  :hcS,< u+w& >h*<B<;$:B)v9BzF p0\ 6?TeN:#<^D8p<)[l uOr_3x1ӁOiL?Ո<<ІC[: FDF|/`qNrc%ۧ%D #m pS* 9`e^W=!6~P d KI4 `]p|8,mpӣ2 =3@xG58F{ =l x?~=驣9z<8fn L08i8TnsC;4hKB4~L$lxGX# X0%|?jwh2]C"WDwwmÀ5@ـï~pzN"/P2 UD9dԀ0$€%ɞxS)C=: d1><3Gp[7 (`cގSO=:{ᘉ joDU0|GqyɄ 3: rBh3 Q6Ў|Z˜06,  z$ĜUt%3D]NOl^œ:#5pC `?`hW,YK~ pIxJx]p jӫx98(B{f ^>Cj_n x" μ)F8F1ӸJ ql sRpd&:8 h_ƁbNA !X";DxA ;|>x A`)fY=>sHO ?n#+8h< Hx2 U0YfɵI@ 0D(F^%%3;0f3N όm!np8a#3xW R d,UڢA:0ӬDM\A R[ w#f sH%FxFh"Xd}OWNgi:H0|~~R|=Q(1™!nbIF{<QZ-A !@ù0,0(>)xd)0A K hoDb0pp$Ru~Xbr o?:'F\bXN*}6cѱg x/ļ%Fjcb x·(|]A."s aKKA6;%c=e`0@ Pc~ Oapɠ6Q* *n2]N6w]q~Bir/ <)Ξ iSٮt0g7ǿ3S>,Ma8 p'/$xJGT{ "3zTVơG5rV Nw8kfA`2Q ˎ%P`P4Ƭ4yjhjchX.x^Ҏ_`3: R O(ޓO!RF̂>03So=;"!ϧn@v i0N=`hU@1q s )q^|fϿ0> ?6 "v i?Aa-`j9LqT5@U2aԠ0 ɷW3|  iY|)YkZ2 ̬U1Z/eÇrN3La=ό2ʇ,e&@!w3J8#^4 0O:*o!Yѣ5<P̗YRN6~faTi&s`G00dc<Ukwtf}lZLw 3YFbQOq1N=L`0j` |/^ *Ex#ނ!@x` nUYV_p|ϛr3z:2T2{jaQ'BV`H'*:6{A7|J&ipx%  =`|_Dt'h>Ұ<-I@h :PP@ P*<]sŃ`<;sbg|U-^3҅O}p |98sOO>/= Oˀ5)0h2`x|T2EU'}A>x jqc8>'.Yd8wR1 avlw!d>3#{ w;2s{snVoTO{34 300* 0A` xټ;g 2i8cۭ/MG%@ ;BH<_ bP pѤ8>=:9{zm{{& *wn x'.$h%2򏗃@ WAr|_o{hƌ6mPf,6IhidB :5x AĀ>^ 0a~H<`?@ 1(QA># À6p{xfcT4OLin#[V6xd7̦)a VC< <80pڞW,%1{HX0r:sɀ7@ %w>hUR`$?0` ƀ5+D>G$HJL)Mi 3_> 4H&z{ϷfwVNS:=7w̍yMQN0|? /r2لL@@4iGtXm(ܩۮM7,d-Ų|_t%ԙ`P>CfYAմЗ&S _ x}hYkW Xxc0Mz Iݬ@ }ncoJ+h ܅ @ȁ?Jh4t0`Hh@Ȁ@KX2c;Jo{v BѧO{_zӹVt|k1m4nJ& %Jp1 Jk.`;:z`zj>' #,2G*/.9<1>W* 1ʀtOinWIնݥLH(t@p#h"`1 | VX(jx pB@ح%ݻޟuj>$Bc|AH.R%|0j,@J|u€!SC$@_,#sMnމ,x vRc߃D`>p*6`P<^  4 dG{((<#*/ܦ1uܭ{LuRF %0H0xz?JSpv,^A| 0<Kj !>/ T_ϸC0 i #=oZ pqcz`)p`kuhWw+ޞImޤU  ޮ{IWC €%smafCsMn uzoՃu~goX5~}00dc Ve_7[g} Ā;qLP4ެ>8P  F<*Af;_#C1Lāt M ' GA5 1mX;x1C1 18@$2:* J*~.h1EER]L[f${"0 Z dBV@:UH>T/9uƌA;`{cAh7:2g tk Y10(t3.0 -01'?P*Pd ``ȜPUF^u1&a@|Ek*ttN(A+V|FR$bONu}4 V0`NS _\6 t (O >' ǕD1*: &Ѿ땏A=^ t*X>~:twf@d'V|@Ɨz;4T!>L"  $E ЅGAnvp_Jl%/7i0Ԟ07_cL(١A2( ;X}/$|<@S' ;f~#` l mUE0@6*J Bqxp0Ca,U kκ@ 6 l"%@)?@c~t1]cB\(hܕ H'32~q\;rhª6;b((Az V@`]:& )|gRW&uA"JA K:,`TR{ap!$vC5qLg?a!+x*\Za pPa(H_383B >RL8aOWM=8-80cLடif\qhFMOt>:8\e=("02@kv^5XB6 JeXRñ3zxJjSN)\@Q 0>G}}3CS̴ >4!! X xgb@<߀2οn)'~tF< ~ |K*D\x3 O) E(0@Q1(AN09T=tnG cVDNs aO`bAϞ:#+>p3z:a@ 1%ijO )oD03&0W D h08I./<H0x(<  Fl ~< `4QC.^ << !   "H2/.v 6] FĠx@8 0J QC(zoA `B `Ճh\<V(>a& k {jXdm{45J}81 9QU!0]R k# 9N)\}23:۰|OцjA 027xf2>x.{ CbɃ(B A(H?T  0<`X l@0! ^V!It0hIC.z x(nLS/Ww 6gOMc!/t>!aj(;>,P*\2 }1|(4sĀl! enzJ6&03 @=W(x,t>Fp0@A/0B a.%?13S~^\#>!wĵ @!H? rdؐ$>=ɂtj mٰ0s$jD,3Pe%x12D?C3#P) ,)Rmo ? akLd1Q1(fO -vxpqS H0`n!ӈZt-3xk:nmPu',S:p}Ӓ蜑@$5kԆiD8" Dpb' 0bq=玹Cb@c9h@ ^ d€d { ͪI, o ( ϹpbqgHBn 5@`3Dt r%0c?>Vdo01H t ӇQ`_Ml`d )jP[bq P3{:C#W'8 vJ cBPc`3Ab (X€Fh\g@S6/ ӥlc}#cb817QDuRC4'V4$lWv u u_ӂ!ְa9ph΢V>j\z+t\g2QTdlt26 L\h^" - URHTgQՃ0 9.K-bjhte͞sXhDqʞR p(@ ?AP|xA #ax2P. `OJ T a\v  ^` 1@(,$hÛcrL03Pp^c$9 L 8ijd;%hv 1n$H1#>Gddh?4 H&A EZx11a=.ʿT 2$nhyIn,٠aTޛ"m's$d\@1 OcӴ}W# lP*@64#+,4~ _BxO<<`[sm?(VH<<`@>$00>O) TR DV L7a_0gJQ{P0-bbt^ x-?ݭ[ ٤P8=E/%6j^ ut}P< `>G8IhtIg}mPRgH\$PA@hxO<jp`C`=`Tu/Ģ`6>*)Qp; w {s&bn>2[[ޝ5zt GpfU) ? |P>zh{<}& }.Ӟ¸avhm IItu,$ I=7sv_0;i'cGW4˿00dcW`8w(`5[1Bw.4 '/u0*Ar,`2:d8\ F@ 0lBh2Y@)VJfl,pA@<7`x1H@tk s$^  a\>4`P>7`\@ ZV'0@@0Ndn `}/ xX<!Zm A  @0 cnhp}h >  s ;ޕ`";{|܋i_\ RN:\>,  `np*1| Ph<|/]EKnu{۹e<;;1›p\{rB L֏Wz )-xsJ@?~pkDx鵏O  7 x_` W@f `|]}>m g|*&p㟱Nr6i)uI?HJ8< |!@T|x(n(00)A<<`WvF\ȍc}Ճ95P|8WD _ `6?/Xa<$ A?M?9X!_&\K4g5T;`c/24o:Osi\ù#@0'Q(&>iJ.,a$0@` |  x1x ́xXF€,RxA0AH@0JV>D>'/LFa a?  skrxhb 4@B.W{@}qhAp)APC. |"C @X1x0`-`Piyx7xA(0 0P>պ@' b C81/&J0eoPaa>lϬ>9qɜ \0! @X0<`?yӬQi_f`PH>gb@Ѝ|\@Wi ^b@y5>T"w0>,[3*|H69Y=YiNtIVZNxډ(*8qȚ(>nnHxBѬjR |ڧ:o'<)L3q=><o&|ONZPQ2 }0f%sWA@dKр84_e$+U:%pk4$I1׽DOzP|0>=40< x0 @ 8| |hip0% AKA0 |Jν`|~|_‰ԀUxhC'CV>woWVf A{ :0p|V U,zG0"a>Toz<ϣa#P|(Ѹ! bX>OP=Up\ ;.z[kA` xsewo/RXݦ547x>1" {Dv>T)t67(|h<<p|k@Px =P UҲ+8t̻Vulhil#XSZ0n"0@À, ^% ǀ># 3p pZ|H^ 3` j$p |^`@& `B `&И{1m=uH,#TJĀDG.V%APxXeR2dTPCV"}2WM[ˀ'\W ζMM=W1@x<@7A?#_iǎzn pxA b`2+}2|Xm`uk>4[{l3{ Nt2Fy X{ޚ3{}> O[uJ~=D8l4,3~jV {jz{{t"CbZ|R=}zqSSޭЕP183@+2 #lMeXZum| 6󏺿00dcS   cXviD0050ט X՘:a A R |{jnrJ& -[%"mli:UL=[1V["*Arxg:o^31y?'ITClLjٛ8Gﰙ:u=VpoWd,h=b&LTlg.VJ3W.$8-f撏V"2>"8;?)G @|RLú @fDq(J)k>7eP3a` d"t 6Bnx*j 7 .&OvtUNciQ_,u1QR퐴WR<"3YI?gB|1R[`DmiL?Eg ooA"44ʡ.>ŽTُ' -+RU,m4{"y$xiRv@IbbnO.41eV&M'GχB\DՁs% q@Kyh4G|n^I `x{Фesic!qqxi!n|כ 0d[_$&ϳh˧kd kVZOAY,4 0S Ճ(= *JP&/cUv%MNZ)^8T6y_bB5Տ͍ SCpxD8أJ'9.T%zo&WT*ep`UՍ޷N?BNJ ~,s+xA`ei(- P0û^+A L Q/CDi(כP%P02w@Ȭ`ksQug<"@6um+Y ~'f ͅAmbt`H#PP3ɳ31u0A6,vحCpQx񦾮jK-Nxh| b2,|99WpfJ~-O2$G],@HGm>_(p  ?`Q5xgF:u`ƨymxOo:ыK$8Ž O[W};6B)Rs.gaQDF0bzze@pxr9`00W'LSa'H@ǀ}$e0܋K8`:XO_ۂ꽊) @ 7bVyčLmF $܆ȖgAgd\U !82=@V'MMBdby(_}蝀 m:?ֽ ?w΂ɧՌ*3};c~{3 ]>,p-ya>߹O,~cUyWqTë[C7Hv]7:(xOQl~Lyʊz|s;t@seNvY`*ڷma[zO3ЉAVVt×n8{{Ohd1yq5zHy-$hARr `ϸ>aRf(g }~?͇껿x*mb|, _@ NYVb}h)Lզa!u؆l#-aJ${zb ~e Rx64/exTSj% ~!<,,/e0It#ؙOHsH{gǸfսd=##=ȩ߼~CWO;9_|#i<;& BV֋ 81ɳi}zu.)4t:GQg~D$Qsn?b3͏5hB֯*qJ .81/T $ALuA0oC߬@sp,3N@<`iSBMhm%&, ` n0Hv>6p6S*S]No)bAxZSve͒`q~> +ebtEaxq\0.6"؎SrA$CZGޏGʸ?A!'k=fB  Kxޛt.;0};|Tfv0`ԍ=xY&=%'\is#w>" vM` RUJi+e4->ۦ+_LW7FmNzA*pQw?O4|#u6,Cca%`4{5Kb)ixACUTsj^`K x |3iv@A?`h!VYnRhXƉ+ iv̖˓yإi>hA߽D30ηQj":/ $lyK.U{k#=d5`<%beX!h0{/GXǃܡ~B.Dpa *xAWJrcL{6bV=p-8x3!:@[q==L'ܳ>9 ]kqq jjLɨ3eȔ돇LGhotSoAq&}\j#6 )En9 _}{oۧI+Q &Nv**mJ߱մ#Tۑ܂,za]MkfLF7s~%7#rU cZOR7YjWdgTN[)MP<m"OXo/Ԇܜ\NY{]Rh;E‘CKH VĀ,v _@#D鍈ae[2V $*RNaRj.}seh?ښ*\9v4;UZ9qDNI\8|] nwU&s\"άڗU VgHh+l;E Ӹ-8G׼FdT >! mڬpO p!| })b-iVRj/]EE;i  EԚ<5jҲ9z% h#E `Ex2QԼE xS'Y@b ŢP3Ep`0Bi&#Ǟp&Q#LRqmz ג-XJj8Y'ӓ;NJo?ۻ)t{]t NG5B'/FqZW|2@Ѣ#Gř(05je[I?UQ0 YѸ SM^ۤGYmE7[tPs]sE^jL2E&ڽPxj3OHz~==5I{O}iEBr0J+W)<(nczGkz}Q9Nr6MgH e>`+dkۓň@Jx oҨXFҏ %Ao[/i%*屺=Z$ k,5ggiUDrRbrR5)K1JF}X`|Exy7o6@䭏NqNGp0HN'˫+uRq4Q;/o'Q0Ij(O;KS:ɚz0Νup졼[/2rY'뮗~ͅ%UB[aIgNPD~u}o(LEbЋv,~Jb3j^VJ^_ mQMOE<niˡz\U"8N߷Ub[!dka1*YnZ.7'5PYxH7Q06C+aHTan_wqZ@ 3S 7v(Y2W cK7TZY3^#(٠%Zޚ;'2;}4Q:^mݦ+֠0f;J\6ÉBŢhQE"}*5G*(-*(FA2v0OOe\E9DsFNJbvvQ]Et[ .&U/hJU NNbR[\aU үt`F= 'D,Lis@4TH -_qTVa9;ň֧OF( U-d$KӶП.ϖ^:CNGS`b'>ez'lGsN`Y}iO3|Z.}(宵 'lsNn﹅k\T[~wh*AkKfK b* O_' h^$9o3:2|w7;ӾgtZ^|35$F {q7v ǨphgԇVӹw?Ͽ 5lo!֗yI|Fsc2}9F݆qyNNgѰL \N!?)6OMQtY){Lj/'9נ?pv;-{>kny8<_;'S' xP¿&^~TiIWAlҡږrvs@=bXxg77,ʚ)#V{o57-S*xyT{c[W ` V=݈B9{k@Hg x&|=.*Jn @BZ௵Z {D^ˌ8ey(RFz&Ҭ Cclv)Y/H̰(2@srqE\ݜR7M([Ӯ^Bis,o'E }怾<  7n6@\f&n^oPbP@A ^'I,moͺw"+s (-UEGMKʿhLI&S/۴T袩ڇosơI&콺5n{om?%蝽ߧjBS@wԍ[t,rR7[Y'&?,Ń.7=PIb#nONos!fC00dcYT _ö*lv9lTXԃ_CE H!)A|=T 3tHjV*:҃ *=(T. :D7 )`y!Ĺ!4eeD H x0]M 9bafV x>?/q Аt}4려( :h+R@960 htAeB NL3aCS [Y cȩ_DWDn(h+܍h1U ǰ>g %bpM'6 mVJaccV;١011;YpBajص +" o")q#mŃPaHPG FA3@6 dF ''(0ŀ"Nm>=ۡkƅOw{۫ﶯ}ax?p1P -j`p hON==L4q'WXL 8A "+oT0!ˇ`2é[U2X||0)PxwT@>|ǀ$t :z 2 f ʳc.+`~0*,akλ}<ˮze(M{676N`0*h 0 ?S* 8`'}xA ;` ~%`_c8i60x"`q1$!RX,v J%~a#8A?ʼ @a(!A?/.0H!5bG Ot&no}]:m(`6^:9 0P$o Y@ /f#H_>)/ͨ^pĻG г ?T @f<~`=@7JfBQpB$ҁḯT0_qM9l`Ӷ$zy7i >m XsS \?U Q 8 ϪW%TکJ?>H<  cL#<`@.+3$xj`a*@4*x H:(z12(ݯ3X=!;g&3YyyΟQuWi /@0xDe)xB0PtB&& a`0%@s X(DIp5Bp B0`3+ hd`Z<0еt&[J qm$}%1$y>pFQMx]/K t "2=ul TͷÍ& 1mƮ L˼jO{}ס`W5 'v3m`7b:5=:81;XՖ`D#y>,(I ,} KOXS&:?8x3%(+Rcd`U+Q7᠓81ރ9Y @x ad [f /8$o11 7 ×aYX1p J 97ef$êeˀh9ơ;Htz E00dcYE:°Ac\ Yd aP|#S9TV=0,r::L` P0`?r7((1 ^bx'^O'Z@O&=ؑ4>@{H>d^/0G  `/&3u[fk> zxNLHdx<0Q|HD<_p @h4\|A? - < ɀ, "P<=cNn88d":d| @ %a<4 ph1ypba0B0F,Ո`& # BBV d@%fHz A^ r|O݉ ns'wdINsDjz}T8@x5% @|!LDyOA`. .İ`0 @<<ʄ@@0Q*Lz=X>W`BİxKD:A0̀$̝5Eni#kmCf 0k8i%$/e`҃x  |fᔠP< e0 c`Q !  >$\?삉Z<@<ð>>T @p[Mϼ}UƂ8124OiCmTƘ`ð`uvC0T 8 Pa@`=Aa"|kNυ ((U ρ d` p>'Fwm4a'5J Jԍ7ot܂EMFu@>Dob< ز7JՃ4_OܺDm9$N;HݛbcV|XDaISigVhҶ€lДOOMQݽ;!B 1sY0npd;Sp( v'>L.jO:BKǐC`^&LKZƀ%΀03x揌}#H7IS#v˾wm100dcZN YH.~(Q0΃Gu.cˏ0U3H,!ab7wŀ$W0cC|C  dKVd`E80\H0JzyhA \d@̤8 Z\`dba~R``0c8 Ydc`"T0@pZ "ҽTE@|8Q`̗3< 2}Ȁ%*a2p|~@ >$-pfˋ!xRa@0,x2P~/TXҘ>7: $`?h}h_hNl3vOWm$`12axPyz_]~ı2@x@. |ƣ,+y(€$P*< 1(I@ xn-շQx>Dck`@aS |]<7èIB=/.@|p`( ( N p䉶%.aL ` T$><bAzA x;(0`1802KAk VsVwc6=o5͸>>'jEڤ|  Jr (l% @l> z `%@fP^x>?VAAj%/ HH2X0P3%. @H2V"@؀%b>g=?k}@uQp3`Pe@<`C'd&zIE&@^j՜0F 6 Hit`pcV` D  5[4Τ wnUk Vƫ6X>_6>v%ch|?p, md6 PxA$[J;) 'J@U1|[$& 'ǀ Ɂ[?TСFqx  xNIC/@ @6u Pn/A @gEPX>}oA?UX>$!W'[< , :>\'@.'?tE7cw00dcZg`nuaA Mc5Yr~L2 T /~X1;M墳s;chA+wo9{wo7iW*`jv_o-&qNOo}нY_fɘߺͷb7uзk8xVsuK ƛ=MYCGZًr {vzطc}7Nc9c8<<(ŁVH9RyO5{00dcK[I8,aGCΜ}a PZ F 5@Ɩ5.| v 1tKH4`P6O{_s~pu(N' fp|?z X>x {}4!;!Os(I|^MϾ~;ͽTw=]4%sFtiM$%0~A@-&aT=CwՇ}MբhM jV#\7UDZ(jDbC7x ӔhQ{<o{H`>=V `"  @oXCL 116=e;jﱜfOp3A|\Q{`oOS#@H0 o+l=Z z%T<L @ P @| A@KAp)A/t >waKPhA@ \H<R P<H7ĠQxX/.JAx/(!"P xxG>=.s +ބ:(3 VJξ2-as|H(pxXZ |/_cȀ0cg_}C0 hݖd4M ѫオ_Ri_b>4/?O{45Hizy;g6BIT's p|Hۧ!+{K#qY祬m=^{FKPfoUcm<2}vL,Q:@@瞇SǞhD|o@,a?s>G` `\"|(6puC'pon0ajccN00dc[\ 0Ǿ4/DI26yA|=C)H6s ޞ64ЖQgyb[ ׅE"zjrĀv ~4$x~(19ޢea ## h}jf 6 Ag#ؠvjNҩoIBxBobCE|\ ^$)|DDq©b(hd*$4Ǔ·͈IƬPdL5wE9pV.ae0 "{1KS\x Q!E78HMh3`ȁ €8Keǀp;0Ɇ @L'"=v<?l{{Z|~?x.>G|80OpS81 @g6-!32P JN>h"^2 dFWc7㞉@iƀe@5,%':b:S貼KχaCoNx59ad%NEIHp8%6Lpy^d'8N: u ٗW:;8":#³0[­Nx{ެ['bJ#\ٳZW-\J03c5A*lK#x[=ytN:j8pp9L"N=<+{#AI 4Tm{p@Ġ|hKC &J흊vTMa$Deâ.AVPC 1Ā@ : (Ħ1$xA?qYx83dU z3+2x{ z3C/BFL4Ctgfnx=.R`oi{آ`T4LZdk 0?:P`PC:%bXp70  ]</Px_ M偳Ge Տ6H63HT xQ@LmԍY=/Ӑ,sWt!sf˄sFGͰeXrs9F9JqǍ3: x/T g |3J+)M;X` H_gu t~}?!H(64 %3S+Z x)<'IʈLt3h38 Co :l1 ~ Ά`PRDڌ,l j`1LdLVz}n yxq~dl ,jcFoS 6)$j`Lnp:2g ?00dc0\Cxx =: r##y#sdGe`_4 |Zak>$慟{쓆 J:oj0@8d2b+`ĆĎP; ^^|#cL~L2c42txhp)( W|ZT~A qNG(p PcOyQ/d]JpX98!`Xh|\,K>~EyVy@4T,j.\0{Lʜ ĿhzhP` S@ P 3@`T`d"wP#p];A<)d'* ?T(6N@]xZ5T/>j DAN]Xw/?Ⱦ#j6(r)++%(0}Vaf!I}Y#cp|_ DA1:%cAjը@t`P\>dEɀ,T z(P @"} u|aNx}`l>OtC\ T>7cT ᛆt^]AЊĐd8h ;€Hz(>ıR>.. Yx=aH' 2lB|G nޭP2Pa^J.iO1(lpy^H&.D V^0 :6 6|(j>I+^\pFeGR> tA? 9F)+N PR2 x!@|$3xfC:hSNp)n\L?ABf5X1PwlT8>G"$q>ej(&mg<)0`P<LuOV:f ?`AP< T?.ہ>v2J9 {4>H9cK8HAM_&g3 2eÐjt*<ك<3p3 q89a`(ѻ`ϧ p} Ey  (O ঄^}ߐ2Pφ|(.HS8^ڳ[7tgؙlwϥLӌtU)z28h)3y&)UуE@>`IA |zD ` o|!]<-[3sJu#3~> p)XG@$xJߏ:gL%玌ӏ%sB:hDG\ pmrH@x2 l07Q7yR2;^864T<7@79D2 |HA H)_80K[&?@paDhS#>9p3 p@!/x;8j` 6"t?P 7(|R\A $ %0Qgx@m>ᐄ`>?f-o6!^_=!x:83&W; |Ê4 >We2f` 5<9Q( y^HI0BȾz^@8`A$rގw֨  {?x|%(PxA?` @r\"HBN(ix/hJ]Zǩ\phLV {8G G|ĥƆv<h\JT % *V 1< `D$!`/@T=ʞMցF@I+Ǩ1LX:j)!f<)48Np>0xzThH - TAg lbH<` $~7Px?lPh\\ -H0֬7H8A A a X}XpՀH0bQp><N`peH2$Zàx AHxA 8 ؍SPS@ H 0a!PA+0QT]ec(!(x+`0>U::u`0 xt )QU `r@ƚHOPHZp{2FDιfWjM:4dugW}<)&vϼ'F) 0x1ǢIR_0> ?T #0!~~ K.Iar>\ĥBX0<= GX4x~Jۺ ` R8S0\Ka,HTK* BX@RJ\UjT0!Aa IjK~{&40 p??2a(\Jp ">yV-Z(Qh! _{C >q3G闈 Pd J;̙t{.G=*@"r2L"h `xmAq3Jaa1ѽ1g :@|A` PRMu1,dtF@P!xw'HA ,xGhK/MX |<ǀ?!|8$)B`6 pH/T |)<( x 3yZA ![4=: aV0uA~,y4R>i ӿx?m3Pb @KR*%0B9 FRh`tFHsG/+!j>arʀ,> `+p H0b` C"E Q>RK@p#p1#@t H>Wa2o Mը6Ҁxz;(3Z|>翼V u;/ 3{hFɴ3@>7cC=1_$ /E͐iޏ$돃  up1yBd"NcRf5x?_: nw.@0DX܈0*IE =L+€x` 3< @r6 >'i.{I(tゝ n@ ad̀'Lp)A |(!_OR,D΀\A  `|S5'ƣAہ3QF@? >dšea+޴):jNԑ`X x"SCq $S]L;#pSF(|O83q`O@>`R@?Tރ` zkH;''#^@ aϐ\Xf)AO1\|(@()>_|X#V><|_O'f}J^"x'Zi> aJpTNEƑI[3; ؃S6T?R Xx1ёAD h1jE _|XK@a<^ p)6 2!U0P2pvaT~? pA UJǠŀ '|1Xz 15:`0<0\`ƞ#h)q0|1AiσqvaYǠ(:m(1j > €-5 Da|(ox O>/`pO4T2 Ke700dc\(%+1l[#wY]QQd]\4İ`BGK0|VcsUg},O<|@lCF` Hs0܍|XU[ pKA7EJ 18wPT{9t0/܎'(@_@3`?QJSV ڀf?(NeP",`8 %º !GDb+t$Wx7p0fYbJ1]4ao+&`2 6v0`rS ,@ ]W(vz?20!`"T31(0))0n', Q`LcOQ'9w[<)Z=|!u2@ h C=W Z͸3tW8f5}TϾOns  a(X $`x! `><< 1 H0H>L H0^`˃)UP0*U(h!|8mBHP8Å{M2jΌbTesCyi8[lh݆mp`U:L@&E@ J14><n7A@މ@l>tك9 ݲ8ہ6L6BB:fP{˜r:% #QX<a !)Gb {00a(DT x> `͂p0` \0 "\v|a :x #H~=vN:'6۴J䂚 <1p<'>2, A` $:`|] TBro000a< 0!%J @nA !o7.08<?a|k͐6Hj ]Xmω#x?@$ ``R!׋ܣnrE6|-̽6ޕ%OS/񫝶UIozۑӞಧuЍj>$@P 1.p`@0Dx_A@X0h%`_ @<'"Pf(W9 BLin wU{R&ڸ0@7 F!"QX"A?ƀ,d"|zed´c.M]樝:pn`6ދ1 SM[flw@_wpdS4ㇴֳB#oPZ%N H 4qk€-3Qad綑l+l~yv'#w9½y۞m&qŠ`?3 Jsos79^={ڀ~خu{rovPպj=G00dc3]= j;'Ɣ7:3[[{$Gyxo\QQT cGV<?:00)?`,805\;|Xh3h5^Ѡ|hF:.n` vLP1dNɦ@cH^CdQrm ʀ[O|sk8|/lampc5P}wU1(P8urxѣ<Y#NDn0|@|A`Ҁ$3O@* Jx_f,IP>o麽l w;n(;!0&=!)^>*``x P .ǖsY< qw}ޝ7;ޞݨQ1 | `: @fAP0 #\/OVǾϼb#F ^!T pP0 π-ʂ@Jap Ā|XX>'|| Px860A.xAR8>'l0!AxHڡ x jHq{޳3鷦;quX>_k$|86 h p|Hˁ p~$aB<\P z =QȥJ2 `CCU@0/!x!x x~_zTG+;<H>Ol#uk{c$`6 dq|36 eVZ$6 Yx0UX)ǂ8ՂeJ?.D@@ $0K˼<P>Xddq[{mmoY 0x~% eĠQ+ /V>`,#z}rRGk |ool8 5}U<>_g?B? o%zk{ņlYسWpc`Gw:)rv2U ?OU7|?Vh m ΀Cy,?X0 J p3rppj>(nqj6D@%# QTtzGoV00dc.]pө"gDgBʲi0nqf38ۻ;w7,g7wp}݌YMӇ4߳q;Qs3oz+^<5g({ɛ¶ɜY{+Ѐ窐T5 ΏߺClc9}˫7Iftn~N^퍷]Vwv;A[:|XrӾWOzɛwuݍtmw<$s%s:m{rzI[}heL,BW2}np\ф,Cy.hɧ.Ȇ[ؑ}`SL=F]l |t|Wgﱋrpr1)N>p-|hql_{¦˞^Ę8P {ҷAxxꉞ.*0x> #|h^:`;A zvXf;# 0`QN=㴜1aw8ѫk: (><P>d=00 !@Fõ2@}X |mxx GPX0` t~h0a#0|>,aE=~9Ǯ%BOx8|xk >ro{ѻIrkF kxl`1&H q(İ`< Cŀ,D |G@|Ad~ Cxx|>` ?%&x }iw+4Daǻ̝Rolɐ~@+@BX(0vKbBĀ,)$ 0 |*`E @ <$xB0 xK4A.eAK` BPt R0|/^m= J15s!Y9x%=6c&` X>K a(J<H !` >`j?C?@*$ 0eA 7mz>PF0|/{6dSݤxK `l~ C€,{2P| ;P<$#B> k"zbO|sBM>!k<3)їթ z\ކ0W4w xpO{[„wC<|⤍>?{x {a+[ӼHf ++{ϽӅT =6Γ{<|ă|ZoI<ݿeuN~‹00dc   cXviD0050( d,dH*CS`85bj,-x W[bk TemZd;DS-ϖp61w6uCjMmpֆSE H!%l~E _Yl|Tsjr}Th]Vݳsg$j6UjmQkBSnX+_ڟQV}e-[Mf*mf-]ʥIaS?xmGW{`F`zr)e˾Ͽ8t3hմ>CYK+a@V>S5 Dŷ:S*JD_]尢(G|ԣ#*#b]kVU͂s>:RJ(]^=-}]Xs4 R jL$v\ PZZpڀpWx^V*PrY I3NTR48-Q >Xg{t6`m cJ?Vlې|"bp`@sKsaOv 4g+/>gm=1R?Q 5+2MtD.VX]#8&I@G_3~fD .0umnUioR\y=RkVR8Ud:jB;ͧ~4>mߏMYݧjr!Ĵ甅c֍ao&.aii.`|77jkR)MkK qGL7L^1d{a"*X|ʡ 3M7Ӹ OEb_Ljht'cxҐ1:'#w Tʥ3?_W)l:J^мVQjbX8ǁUaB,#@m2kP0 SJ<@X;ib}pT }$ ?MOYZfkaLYg>aڢiۛ#}; 15j*Ijc:öY|x7 (/}:aL+hK]YPϱ9N,agc ](7={ ;Y+'IT玷)g]ԑW?-"P$IS;_zejA>B?R{?/G@X@Xo0ijtk0zf?aSyLDJj;ab} I8qkz :.`BѸ}6Z+o < oc @(4\u4"5Q栮qʌ@!@T uMd,>(֩0*fŤmlP 4e{>ۿF;n;laa.nX}$ Lީaz\M0&RC7j[D}vSsIR: R6qa@¶X, ŰJT /oiRO]ߗ(o8+zDZ BR؀8IH/TŻEMT)6XDA%o`+4D)*ҵZƚmnAr~pT8|\,M0Q *8GHb}<vB/#Q"8lðU 2 aoҥC-"t( <~N>z??MqΪ:zV}wvc5AOv1ri?b۳wzf&gX AeGYgTTy㏇6?B8!+KR?saQXD`U~6]Y !۰-Lf[e[mЉTwFJA|ޒJ7p9*UM -̻jAXǰ%A}mFC3@4Re 9!MFE!QsiwiΔ,Pʓ> fAr(C<_>BJ]V{ L.pZ~]X>z{0sp-/$WsӤ-W  [s,:B &?ߚlo1 #`bTEKl=,T PCoi XlA6lF &BU|Il`geVeDUh-%Pa4Fk羏9T{ ]#/t1 |wt't1s%F;r%u͟L=#x^'t"?] l悦`F|/ M͜J<=oɉ㓠!Rk 0Ei􀪾oV°< H$V"+hERąmja%+TZM0wP NG CyC!ph %mb\]B*LKlKm&pS~km" `wZOZ^ͺ(|0]LV`֛%N_ -)̼[#"?4Rȁ/CKbly2NpS%I) Ǹg cA!\ GQ.$' DwL=R *-2p[*aq0aff.fnz<1 W)QA= /p~Ӿ d台_G:Zxau\@(c RL*PrFɊ&Mg7ꍶiE4Ї0$2;D oWD?|-B0jk~hOsA+ΨHb,00VgT# ~rC =J4Rw'>\ SȺ¹'ASwթTw mq>Ic Ö+P6H2ޖ&AIc&ʃ5'0&sBᆪ> *2``m\u\Ʌ5YAbG[swm<,JLu.pqսl>_WztRH,(˩^O(Ia=6Ms~jUB=wsX#!X]{تcT$W8rs4Pg;["Kdg)+U:ᅌl}2˄yXYwq,뾶 To?6 :{aZv h2O06k{S>3C?r7]ʅ_P;V ׼QH}&.\%?0&]Z sL:¨Gƒڃ O@)v-:-S Obf$fSezQʄoօyGڇrdQ`G )"q'suvDeo|C)Ma,&ޕ=-](75OʼUvtRk1ma:UFF:mSL@ %~ak\X_ԴrnS)|m%a3x xrŀ,l vςC̅UȇNr>[P-PTsF|k3hAF(#bŸᲅ[TRB( 茥9KjQBx kt(~F[Kw7ܜ)R 5D37=-*аkdW߅ij}r$S@J|P}Il¨GTRʙ)1s`d(Qb_yť*^(ؠ[ /Sʥ_j)}M4)< @VˁR ;M.K @!K.π-#j@\ aX0zxbiR _p3 䁀>T62Y?A@ 4 x&@i0ba`9eNj-pʤ$@z"Mʣ T82bSdbXAT>,+ *P @czt#: PnlFch p|Ǡ+=h {9Ɍf^m&p#zW^m}sY  @b@`Q`8 P`RNłqQW8UȑA 8u[:2Ƅ'L,oXM #9[~8œTp)@."B<H t ; *ADO 6@&q<+6X4rqlhmlqjٷU֍&'rhgyfԫtܧFZH)P0)>$~c:2xU! t͏* #O_>0`R(\F68*J)B1cU ԏ . `e`|-F%ƎEtB]7_@3̦uvNr(hXmܨ`:#Egu>v{83ѧϢ}ZQG,Kıx vh>xx5X Z:+ fP%T V\%ap!YlW(1x 7hm\I b(ZW=0C;A;f4ENLi4]H0+g "2~.zivT%2m<Ɛ@B"1Z ?jx(CV`8B%PRՃ @> p`R| p,f <aHD',?%^AK@ x@ B>V!* ^< 0`0*@9x<! K~ 5eJb8P j0xP08<`P `_<4 6$yX3ð|_h73l{À4HC>$@0! 0 \At4Ņ<]ɪnhO8hL&F-e g"~:f!S"7Vk`h ƙq(h-UOd48/SyvoFNH(dNm\1"DixY̞Qpm05 nhfH^B 1qk$Q1ɒVVO9Ӊi>,boyeƏ`fw yzNx)TC)מ ji쩣b& v` *LA' b|O'q57upx\:)VERd=-@(34 >Mʁރ|X z3I {ҶkDb$aiD`pM#*"lt odY y 4OٺmWGnֹX-_00dcgQ \ t \œ}g]YD8€%K8!Ek u{{}2zE>4 w0xG X5, mj `0 .W>c6D8rcMgz]!Q d -tI߿nfjAI`^ 5c/ɀ]R`Gð|_ %3_HGOT(R B$?$x` 1| j'&l2x>4w~N}A ` ,\Tw{v.`NVǠ^ |8ѳ KV@ x Ģ`PBJzP<Zk&-ò~(0vwiϺJ?U|Upv 1# 0fS@0̼#( a< ~F e@dgp_h!A Њ".Q0J/JYqp c`P5,>O`X"O{ .M( X0(A `oR P N=>`H*x(8JxA t4@+}Feܛ-g d"|WR|ǀ?;Wz,>|O@  *p|TA4ՏS`ɍPhQ{A"(<#|C0}b@0)<|@<\ 2xA`4V @ DSap(A` ŀ$% J,X.`< PT<X wC,H_H=~wk5ϚF!:u { 2i{œ<è, D #| N`/;!=Ā$ܙ2x?B@,xA`L$@$e`H(* pQV_6 4zmS/kÀ&8݃BU` x(0x\ 0!3 l"`  6ݦ64)ǜeO{NxVı ~ *V P X0(A .ʭX<_`P 0``_` %A l0|8A ؐ aK@mH(%r0|%`2?\ >?`Kİ` 8Hd , @>$dT:[Xs^ۡ;>'4N25/B )@ fP! |`6x3\' |8[GMF;q`|ܣn S6<^ hkS9ǡmPޱ}r#+|C͇'=s|d.  yeM v/ ;ŀ$MOZP|@>l[P>h{ԃ@pթZxO{P0:`iAP>w!> x1|(_] @,[ `D Ѐ$){mJQ`PS88-e+e֑ͅ{N 100dchR_ yxtǻuu`/_ݫxQ wwwo,zߵ00dcR (=G^ 8><0I0OvM0@@P>TTJ 4 קPZ 1Y>DS@ 5@Àb@@80X00b@|o[tU> "fA .6  *wQ>7 't{t?%\(T L><o{8@3XWtJx8daݫz| b|X7n󮦞o)Oaͻ0qJ9MV?/ꁯ ʇP)\WGU`(|Ճ %D+Za0?pJwB%'GNsmwaTc8؝y4E7ıJ>T 0R;5 $` $`ð?_/*`6 /J>ꪀ&9A aBT&4] -Htib"C2ð|XAD 1c`Uda80bPd @9xq#ct?43HBP0A+` L b7I8٧w7Oj=&D` A` >W*A(L2].@^ T -24^ӹ{.na Si! Q`|?T|p(} tGV%w0B"Zab y, x*HQx dJ0J!~%A,4 m| : S9p D L=ӹ+4ݦ|q"'=TFJiJb!`2HB(L af%hJ ;0\ MXf H( @@*|?Hd=ڬ&L M[hE3TDU0 C,#1σorosﷃ!:<{Nd݁f?a?KX}n>46#kfޚLj -{N @}p`½{ (*N۪a(v7>4`" \d vbW@ *xC7JAD v&oc73x jՃjg=00dc R=elĘJ 0|~Ks$wx(ht s}[u {gzLsIc}AP >/-02z` `0սg$ |(^0&I_ü SY{6q&?"H~=p7ݥ]s=3Q, )`A` x@<7 jH }9mY]1{:وā8%Hp 680  Q&h*;0> +0@P@X! 0QR N;B2syIo:qn{[I/BlN$?.80À4IxhA?s\ aRxQW0@`BP< "ꁅ>/oOFia=Еkm[:%8K <xA` 20p  @$>/!I5FgL7XB7w *>na74t xA>TN?v P@>p03x`?XH<XT qp @L@R AxAv xKV Do`%<ك*xOUP`T^=`P1H`TԀ$-Y]vS`:2a  `?P*.`ˀ<'jyX( ƀ<Ga(pPxA`.LęZsշ={8rvdnC@|+W8n{ڨ2TPA€5(ai2w_*#~2`{Ds{vJmokŀ&PUwmg/J泂М@,S=[x_sx neϟ P\m@B_΀$6vx +o_e{00dcSzJ _p@mT / tQ0LHVJ1 bu2 9G5]HH娶-&~lD/|A8BR%?В?yb~p4~DP< GcQP 0ChP(X3%+P. x?ԃPC>Ɓ81X W2V w5x0)p T^lOw.%JEx">!p>?`P`@7j1;x(P @΀$x1C8>_oŠA v N ? X0 0ecJ!}0 pxHU @0ONt)=MRF)@dàU C|x0(@ x 3 eh PO`)` <>,!/~<`X@`F=J>Ot|@>7 cR*߂6%DS@ |_|x @$ 6;&3ޏA|/^0  eMqSh3smBhd ? C|<ԃP @7A>`t q GA@dxwA6Q CC'-^ٌ-x1M>Hf+Ĉ\#nx|h@)VqXf}'OS{zp3 T ?`@"%" `vp`@0< R`Q Z|(ɏ$@O@)Մ|?į?xU _`2 C qX7/>L4 .!P /4B4| j6X>$`{Е㧍 `Ǟ'[7B{&0,t8'F#&#MPx(  pf@ PQZ}JP3$~~C !<@ r$ Z ||@% IK@4 `PHAqaQ.x@<wA/Չ Fݠnq?`R5`Cϫ.@Càn* 0I8X `HJx5x(R8@0g|8\8PaV€0}炌 ixfSh# P27A>7;Q Q%(*60Bji+NPR  ` <@G@$)`xA Q?? `@jA > 0 nx!@Ax|^ MA<`B| 0z%< A3@@=&^;"r MqPB!8=&: oF Ճ@O8>$ `8\`t뽸 ji a P|XAp>L,?T[E~<F#,JV7ĉl( HTp,X7 z^(%|~le`h0 r 0 `@1P0PG! p|A 9I8-@AX@/PGD.*P7İ%^x?B<0|>l0x?@5@<, ?p<>R(H)AT+ 0t0 L 2a6G/ "?@JE14t!̀S@äfJ&;&z834:t֝np><@pz P|XL=+8 EP=Yg@0 qrr xf^ "&*!> ǣ<PXD4*   @T\@a5 0@6) |?PC@?@H0C`Ax U<` !P0!`>%*`H|Bcbx?A@0|b>3C|hJ3uYpy` ʀ6&S`hH8>'jo{  b]Xlj;A`L=c t IwQAU7 #%>dx)t 2aT4X16a\ 7G1P`.%x~p|aiCĠntG2x0!A,GT& @p8 ypQBHZ + VR@:d E `,eA,d0|\# |/ԃʎ8tI>Ghà|(x !,jЎz;'xj@(#`*A/ yRB<4XW2p 8(x )}P. $s ŀ[.}yxE@= l  , X0oxQ2\}8`f~?41g#p|(1ї 2T:w! m7B@ a͝pSP ʀ4}Đcz[,~ A }>.pQD_B\R`PE` ĀG|ˀ`> aM15C|/Uf@|Xt y(-XP ;ǁ@|?O|(!C1|_<|i VA>4o AA83Nx<8#  :X0t8>> @P@f# q@S@`Dž?LOV x `` xBpgc@ #@ 3H>A` xttaNrpzS.u@U{J%gX1f t~ (  @*bvXa 1:P6,s04? `DA3oP|00dc S Į), )5E)L9O0&+DmE0(`(Qc]#XR%>[s[w(zB%)%lvov 4oh 7)GcwOQ04 )@Ğ\l*ˇ'P:$ro|1 wdV efip2M3>li`ߕd؍2s>tÂjmL&&p1n$Y7A'OOZ0tR젨 0) vk@e.uBl9']fUHiFgbqndq?cZv-_4~83[]: ӷANaKZb5D`x u owU~3F+#`a_@uW l ca OACRHhۂ(˪͟l2$CCO ¨hRtVnGǝ Uj&9"$XEddq<ᶝ3v{DI OϺ4NP> PNzZ2O0fC9.ÇS|Oy:LgNGiQ8pds8iqO:4)RK-`y[ w]ByB$D = +nxr{(=@! NCׄ Jw ]Ȓ|dApnyӢH8a4z\%'9*゛-3n{ͳQ[lhu^EH;c6T%Ufp:uJ4H/@D,_gAsIU4@2j4 *Snt2 4?a+ɤvraQ<#W9 he/@p"ҧÇX94E`\u6%x/`ŀ%s3 <^X |%=`<_ lL96 d6:l6Lxś:}›78F_82dӋ{o F{~ 4rF1=M>Cm\plHN)_z.TzHHPIAeꁸ 0š ^^|2 ^?SǙ~ Jxt N{ka}<"KU$Z >vگGM7GWTMz 8Ja T Lsѫ!:#3"Sdp§{r{) 8@,I䇃!]'{"T:xm2lJ/`hGdF@x)x AI$h7` .@| A/ @<$Z'j K TD@A~x ; 1$)/P0KD$"P0Fx #$5_% P `yH?D s|8v|?@xHAG}0@>dcfİYx(C/A =ޛD44}6̎ Ɇ*< TȲ,8lcwQdV #%\lJ5 9F;.r/{ 6Ԑ2|04p !wɣ@Z;dwK`h|AL x }N<  ,߃&Zzc`3{ɀєG8s8q.kt\ F \~5.pPlKun9;;JlSȘbtr~ǞmcFƚa™o΃悭|Jt&C(f8F T+FT]A #c{, A0aRiHOfm8f/_@!22JATk-O yכoM62aΓk4FJ1!6^~6df1߸-6HvYlYs5t<6L, t:$e.&A-x@C?( {`h@`(JfT=gB_9$eP`f{6]S k+B9L!C!$|e^!R00dcm Tu8OkT6cR[`Mb6)зS )Nd NԇʈęhQxI]xC&TZGSF/is 3 28Ip0: 6L^BI!tZX>osC$ m*y,d"5eڰ>?38x!(!a&>&8@/63btG|7px DKӔP^`@ :ŀ5803dxxA@>l`P3€4G@p 6 0)Z_.dFߠTx|`@pá>.Ұ|H= >?!uC̯I:/&ZOm܇Op¡.A P6pQĠxh aK` ym9֔|ΜzFt):>u\:%Au1%h&4֗(u' <O=۞6FuC9cӂ2j8g"@>`2 eaPo ӌ!`T ` H>?8ĀRσtz x| 9d6Ήjal2'sj|a(xA/,HHF0@o0*#|%+ @OVJB@A0p6(>aP0B.oB7|?}C!Ć@#@*FbXXX(ABz6]1:JM9"o'0iL:PBW266wQ9 ]NL}L  # xC xHC0a7A@6  ?@ P}?ġ  V \% \A )[ |$ e@ A q,I4ʀ6i+[L@3v82rJIEI1=ֲ]ξ3{ѤL|0 &4ܛ ;`0d5q):4 pPBC n?@ba1p0)@g:F؞Ӝ䌟M8(x]0Yy;' :L͋:0Glɳ 2a{fm=sh,GV#g&G0$|X3bH0!l0|"B`P}"rÎj{&9ud0Y(V8aXtb˲4>6}nlZޑC z iCSZyYm3^ & N2 O?AN(d}`R1@u b°` >L[خOQx0G~d%d;&2J-qn7H@`cp>4"ё5>$y5:'XƔ@uXj]=O%i0wvMĀ$2rnS0ғaw!Y=!OXTpژN^?P,usi^][qQX1N?|ǾE"D!E+7N}ORt:&.o` XؽsAAc>sck9b-vqI.1 00dcUox  4` ߡX>ngMp jN |(]^->Dl /@AÀ%.=>*Ue8(hA gWcmZ`~8>Wl@kȀnzf0 wwt{~{0`4|İxA|Pg?P1Ճ@^J  /€/8Ix(@0xk|'*>gc _ |$+Dv , `0<Ճ@& x4|=ax `|/bQrC u@xe3SP1*P >d`IxA!;H p2Z%P< Ăfi'*\ `U7B\6?, 0ovde@=x0C  `ʾD?@}Am_<  7bPxA ~` $0 /`!Px@=X.V2A `p)A6 kΩOр%u{m M>CdjIh>7k ^@pa3{k Zbh=k&mT3`0-W{7{SI^Ҍo00dc    cXviD0050 X`4X2xD|{^et…emp[>п" poC&ѶͲmy3aw@YoslL%_T ׇ8ze9 ~Jyaց?2Ʋp^Zm ][ [4RA:FԵi2-~[qZd!cR@$MebFmZl>]ޠUkO-* AQ:F-hE<ۛg\h/6%hp 66Bb-h`.YmD` L 6;@ 4^RYꀆ#`ZUUuV#`hPGk'!~mkbBiWpnP ?Gxl TYúr]$ Q"tHI$~P^\]Ze!ꁑ@Ja'MV4%W瑶 MLBCԌL)EyD) l՜_jr 0 K0~hP`]eБUz& Ͳjb0xy wbT7 D}UcL*kP?(=/Є 5z#-^Z TNRq.sL܎f64`0ԝ7BJgB=h@F $h@j|VǞl |Cd1Zr<jof9 #6Bv(ܤQ4awts-6@)'7 Vvc`CGiZ /B}#']\4g ӱ,Hګ.\JAf]dW#1B ȃ Qba輼tʦS 9UX Dc315zu H IR4SL_-ML-^3@A߳@p&GĆj__w *pka ?1FKjP*TvMJMa|*PWs4V c .bTu/ Y`0Yx aaCcϫ) VV,E5NGui$XBX/2m$'ٽ0ޯ{VxyZŒ(ƲLt`.W*K樭>ށ. ^@&h$&D}Fw?z` .dC}Rs,*[o 2VA}0 cM0K,cPVÀZ$QCm1ȩ1d4&jަbpV<Ҫh\mוr^Žfr 5߃ 7z&>G5{k?3r >T M`I`򉉷 $N ^4 }HZh@Y}; 0`B>97@3: "u? U&Eq4`H~H1R 𽔉Ӗ2ڥhؘĐ" m8%,(,m_(3J)0%Thʚ-*e@ mX19d< ¬SdTnx{A@KL L?li!}A-4Z'`$oQraXU;QZZq1ɷtO ?7I^϶7i+~=XzJ'Tm9i+ᔎ7T(:sEot }?g+ NWˢеRٲ_d4S)y`[7"`X-\Z:3)pӳt/@=ZcRM, Rah0V014b!Zpn xb {*C,z _cޘu^>{Qci4~i;Mtk2 y^ Ŗu~Z׾@zIĐd Gܠ] ˓uQp0H#a@WuwYJ7| ïk;L 0I]SC3v0+>cxj\f"faٝlM'̽_DPQm<뒟 hhN{a|F$a2z*abZez z,@6 k_H6=qΌ?]8_Y1 Ӽ!^РtϬt)1|v;QrA?_@t~ƗjZIU؈?^n M4n;D}cƪ!$' {iF^i+3ppIKz|V0 ;KU# oݙl|je ʄ&JʧI֋>c8,m.Zg @G pm :%yJu4 h 3BD ~U%jW]AJ&WS4+Jmp^b"Ru3@1 zhTouڑ.V>|c ~ 8 `Jb[Ԙ[ th0$1X)11=0` { -+Q٭K@Fk`74 ר,|/cӶ2X}O&O SR': $pl2~ _ @{`ܜAZ%J?#(o-8F X98P .pC0x.]8Ӡ,OH0$6}+ <0|(~\ y1jSL09C'q,=WM[#oOB?t#`K @h-Du4`T2QkhMj`#@`D:&JH{W?Ce\D4~}_Z @Ms|ڰ`>W|Pf#3j0x z%e\DEQHr4N$I;}]n°<_ j#6[ Ia~`9R_@x/>D!{GvY.[ ƁABKAJt( ؔ`bw\]0>酱(|Ќ! #S0ݽ)|ʼnTzL1Fo*=r00D#c1 0ܐA"V`aH((QmYIj 'OJ$y4d~Z@P,E7pZB]ǾA hAl`l sxBJA4ў]UN`0$1ƙݚVj'%Łnp˥?YaAb8 }}1UAχ4bl.I?J (pX3mo tm_2~(d Zy&+Q\JcB:v^xXHP6>B ҃Z< )?R?#= dCp6+epi*m^8DmEqq aNj" BDekTMGEӦxr@V ~ Em^v'|@`"G|ƶh-S?Jp`0gi"A3r#!FHBS[B 2[5FO$yn쵟$E+m,-YOHQ20or6#1Sx";Wf[QCz1y@T[9>#'~ZyҤk.*w+` 'e8 x,.:* "a0~ ^ N¿0XlGѩV<;bͩ8kY-,;DGGd-" *ÛZW;)`r Ss[^ -[)b@D 'F6'}.p-̐DzJr~0s`  &~?h/,0V6 l*'z@ƴ|Z+&- -RPTLQ Ke-DSl᠃ fg:5ir ߵ'T'Y49:MVNY%6^`;%A 1bNLE04?JVi\W.8l}dV* e4(pOQm6g[<9UeeAIP( T hַuH{EM2usgZズ^M1i(`, (Q "UTA#z2 *׻r=iZ+Ƶx`JHҍb|?7{xe6C^<oK[W/[X_铛t$RnXsU9%* I-ZmLS!(_Bԯe]AA7\,ӞC)MTh5TDz5'0YPqJ,,SBJU**CCN!U9!ҀMC4 Q:hLYG95oj, )@:8SŸN|XR,F|zy ;*Fر`aJB,LpBTج",D)In^" Z"^+m$>7 TaRKh?TCL, ^XSxF,?۠e`I *&T46ݤH*ӥ\j]m6N=էT8Y{AG4dݬ̳| 8)=MBϋXЃ=(vraKJ4 SW_z P .Z:L4[_ Q|Q3o70TȹY6aW?Npm# uG,+Z{wث)3R\ZטN}PhQEpVjG鮸Uttpcs@g\R )DޫUiRtkW645ɀ/}ZQS 4@S:;UV 'w=.XsH0 QX  `[*[`h@aU.R"G$iuk`)A\֪ҡ1TҍĂ.EQ{@DBv,OTQ>hG|p l;h,-,,*b' K#J8+ ʥ8hO" cW.ó@Ӱ7܀mⅯSyKh+X$kp3$\rXL% Ӵ30mCC=׷vӶb&-j2\Hz P }tP@1mca47p#aѵtEֽ,5&F|42=00dcVi =4/9;De)?u,Dà Xq< GAéUf xJ@C0ni#P` @H8V J;&(st0G$2aV@$\;@\ER`1}@S@bab5ha0 Q Uǂ%R% :K$ #p\ףּd)Ӄ7Z`ʗ3&dҖ6 @b\@>oܝۺ(ֱzAW+W-{7;/.FQKQgT>uK|v }#Ձ 1 Id&.0~ uuz"B]G"ֳ;p2Q)P>`/.VH #qcE:#.#QD3@4r`| 0R 0R:0Woetzͱcnۥ½DwH)wI`0F:\ 0`<?0@cTzb1@dN /JQOFQd hcuwuᛕCOzݭEg'T(.{$ALpe~a JA6ġ(!6 ƠD0H AAمƞ?9AP$k4@=DQ%W0>vj !pP~Mh L$a>P Tfڃi4 1BhM`04Â, B^>Q "Yp04 ߃o.c X6B?A?X<ꇝp|!DQzCd3 Y@(\\_Gw?Q jW` p`Y WBX6T?. B?I64 04@㻹]텡SGސ'Tf>* JjP \Px 1z*4 * *RaN&@1#Y jX`Uo5ᐵZ13Ĥ>"0À-NhGl_(`a'0 j)<: !*}>֠P @uJL8ځ c  u}0|sh+ /L4p|H%E`p0#Wi\dp`/ H wm |۰bgLF6@Up|_Z1H0/UA cMX^hG0 Bml] dhiďo}800dc V|*>7"ϱ|\iP< 0x2@y/`x3w}pZ>N p`wM^NrL`͙_7MwvZsxo2p> Z1`Rx8A 3@?>a.1^]C1? 8_O~)(ŀ$`?+HDA_Տ # QJVQA?N[ kuVm8̢;2{o v֧$jY0M5b  hHKP #*`Լ`UAx>< VZ<0S= cx8DQ* Z> m=Z<2*q:5iw8InUM,~0 TҠ|/Ā$P0xx/A`+(> 3D 0` ![xUB!T/*`JP<` < Xtl_#|~1 `Qp0) A^6lúm5\i" 2 |oA`x qx3%t ( ` 0 >bPB5`PPjl _?,'pe@5/ ʨTe <A |hA mkT^0BG T xLx|as`@X< a)Pe <%>`x`@f0?a(KD%(T0h<"X! !xza p|@%{T=Bs= @ѪW4XUeti<'`H >| 'hJh|_\Wke}@_Hba"0i? 4YIS vЕ[{N}>չ&u}h~gu_lH}{u}F^ &ݥm|EӭMY.m"۹BS_00dcWc:Dqd(ыOI=1#> OŴ58;O)ܼi@!oB{dKyG lp|HW0| aY0Z|HVאgeĀ-L %8 M<`T pe'^< hC|&s@yi=j{[{+|XQenf=ja 㶎=sq6cO`dupI3k^` <bX7AB;pCQ_ p)h>T+De7Q~JVM*8_M5d:-o C+/T]GEF\:X< X>A*$2%ZEڢQѩ4 b`U"c'$ 8׾HyȭOH`wlu+"3DrV0ɠ\vh<  0h!K0>J \ `/R =h,  ~P$ $ `OdxĀ`BPa>d >c ?p)!R|/] (T `: 0)~/dش㝃ձn|sOjFx egmyISɑ$ ͈*Ղ~ a9XƏ <H  ``.>3F`"x0 @p; JF ԗ(b`Q< 3@0KzUtA"}sc-C1<8szyճ( ziS85AD ,}R <xT ࣠xDxB6+UH$>jAYWt5@'iUg`A@7`+ pxH~"&`|xAAM, @~@P ecP)AHz `U&{ﱜ_v L q#]:;E]2`jx>7wW '} ?h[!)@Kޞ4m{jKUN|^Ѵ`cs(րMʀm^"Qh3ŀ$u@ wL l.w/ Z{ qz{J}Y~ 䝭6gne1~00dcjW wf}קiڻ}sowMڻ_}{zwww}ݫMwwwzz;00dcPX^8?XzԢ1e8j=L*0|``&J3NjKs(?{]Ā4F$3\p|hVˀ%ϠJ`dX @{R[x<_A` xˁD  ׃.*9{@ZBMa$Jƀ%.> 0s^`paf[ a~巛q9x%@"oa(Gm߽NNx<T}P<`_AN x<@d 0e?>> ;ޛ?L=^ BJ+%|! *JZ?wJW0c;Im=v0|/W?riP  ;`<d@a,A.@d ; @ >2u0APPX<0 wֳ:@m'|hd ID`2\^ |@&?T L`X< \ d * `RX0x %*€%P<?xK0 P<,bB@xK {ʇ2P3?#c@P f~ xA`5|O?z \(1sH $+T`(^80A .c 13 ðQ(À$v%!<| P ` €&]{m=+]ܘ @.<P0!<*@00* A` 0ecj0u@RZ`6X3sn_Y';i5AX`|x nʀo3~OCJ4!\^"Ja(|\#1X'nz@ v>/.iXz "FaЊl2<{o-lYxJӫ1t|HUiIo{Mwq Κw4n bb@75h `|o^::{SPOz3{L + {4KȀ%ڰ|o` :w;X  ='k$ٰ|(c`00dcX\9祉gaA 0)`}%}€Ϭp6€%1n}Ā4D` sq>7p>|/2Ua7LJpxA ժ&Ā #h0*F  |e0$@L >`?/9w.B_we\;+k{|?g:h>w O L˝`~N} x x8<  |8D`(xA @0(s`_OHހ&L䊰:U|(x1 6-9sjnq>p|`€4 p @p|ܣ|HmP|K`$b |hA?|AM ;X>lPg; h2.~@0Jx_`@*0C\P^%+.aR xoıdX> < @?>XT|xsw%9sKı,B>D`)p0v?`J @<? #h0a`yABjA X` |x .L< A Y/<`Km@P<|&rH%_^mB4 'r7>}Ӝ˘ҴXf@#9_ˆ%-V[:7$* =woS>+kÀ%2wT~ d>uhh!. c.?8(G, @B | А ^ ́`SH0?/@\3P8[/M4J3AivIw=ÃҾ @>,-2@ 9Wu8@,f*rMpτ2}mM9 )<:I$w&$K`|^8pSX>Pnȹ@Npޜ b|x6o$[jp oF00dc\ YXxE|vkLlIU+NVX\=_F?QpD>@cL~q4i杖N1ޔI;cjm1V$AxVπ%N{ӟM<艫: 4S/x18G@_ta'd@ruG)*Z7, `x~ 37 ^x:yNC5LX= ax1.ou< lg + ,R/MA0JgXiA`Š @&3bc 4c^<~hr0~~P\T jhG\ەQC$֐qv 4j4"`0b>`h` 1|x@(39AR0#h~Spv:RQ(vE@J ^tȤ 50|\cI3&sO  @K5x)`31#;h. 更Ц`ˈƞ#hİ {2(ǰv 1*m+ ҨQa`0[0)Bzꁈ2 F3nr]H V?ƁpЁ^t d)@&HRDq C!QB( B *N> vb4f:?^obޥOJ 1BC!@;Vt0Tn84@?}Dw(g@ fR\ :..  ā)@A Ga+ՃAڎ( 4;~: ]tͱ`pmcH`_ !ShXWT0aWzW۴؎#|ۙB$VR/V\ xh`@H1pbE 03⏆T!x ;x?DA > @P `ZapxO| B>28fms e j=`10Pσc*`uOف %|Hza' } '  dC81/A.V=?><et2 @cBzx_TAЗ]bQ |%@PGɀ  5jA!$@<  g@SaL<ĠC/fv%`lE3tD!.`( 2>A]8|ˠb2:|3My>blG R sp3|<4x1Er3N9 `GL8<@vtoyDP ȁx< %0ATHz|O҆ {? a+Kx\|hEA+ pG@UQdPkA!dC0Cp3_rc}|o^% @]GdT81gpE`) ۦDXǔ|O(}ez^sĵ|_|8BPa<(. v-< |KJ @xD @ ep^.yxHc0\|<<=-@<$AAB HA<0x<X0!s@ $ h<`X6Ġx8p El |  >J1p,H4 * P"8(L>2AҞ){-(1n<ؠyf.#1"^` 4\ 4>?z1|/A{ l h1Ǵt|H12DiXC."H@P@Q_A@<H<`  A? }< ;C@'AR |@4@ˁ8x8| \B)TK(#AT$ t R?SMJq`ے(1&p`UG :Շ쁒"C46`Ϝ2;4ЈM6/}[3E>`΃: ܍  454.%F$ xA@ECP=/j~\$ eXB`6 (!a2!H `t~\pv`_*O A22`=KxHh.~2ފGEʚPrOr2K)B>qp:ta {!&iRi}Ȁ$3TB|xת re 8~Q.lώQsd 8>w@%va6hp|/]yM_Bӄ @0|?ܙ#H'10dA0bx0hơLfJ,t ܅7że C#i$Ā&>}r3`N&/b*#$6g8)?re" 1 *#@GQ .1X!A<"ƄW3nǐ،v>d@|㪐|o68yP3?u< /J|_h1c1 cb9,UĴ; Pc(>%9> pF͡0σ!P Ξ64o^$|2R 5 G P|HTgSS&1-C7٫f=P'!R x>"4`@"@[)0qu`SwY`}l wmk1, 5ui0|/H0lM½(>ooĀf H0͗ ! n ,< |70\ h@5ԃ,(  qex{VKEŬIHFt4s6H}0YƗ >43kV Sg \@[MaMm6kQ`$@́`Ā$3vLõ'nFdv:!H 2zV H{ bξvoaϰL2NĠP..Đ`: J0)?p poa>T6t9{4`< X3 ?T%@dP ~u`883pQ |Dƀ,2X NWIvO[`l$BYp0/Ȁ%P3İbPp)Y0 @Tj0 ̃.'wivn{`mo%ZTO%xA  2$@fF %Zpq AKB.SA@*  CxH̼7 3'(>D"HX3;ɉ\{bl;ŀ%9s&C`Cx@Db@x0!pE @Ȁ( :P @l,B|AQpA.b@>/-R\3`K5q+A*x\ 0bx_xq(Df`M h>xx| "~Ap /UQQe`'ŦPaS(f{hsX> 10bfڠ_H$-@Pᣦp$ y7m4ɘH3znld=@.Ͼ h avڃ՝}ݢ`m[Ҁ&Ӄ@j'.dpTX15a |@_Iaj1\Z{X.s}f00dc`ZRă(>j9 …Rӊgx;̺Qr#VeTW4 nf7= ϵ: y 9*NSP<,`p@"=ۘ>w&9 p| ;΃4֦Y|% CP@A`b>0 R xAx7A`>?/Oggx;͸sNq;1[{Y+<<3cXaƀ=x3^+4H>l 'W}TT/?:)gF< ߰=8><' l+p|/ :Lݽkp}K'8V"0>,;HW}6vJϟةNSΓV?D ǪA`H\qCS0U#y֚!OH{gԲ0c/׺u:< `P @ Q|p\<`|KTx>x_Ā|ACq|ӆ!?/0>Ӏ4 P 8JX>\`D<%dzՆw5;{k4G_}r\0d] &Е"bx8A?/(| : x<  f!@pB`> =̟i%E7=$ /`oztқ6V}zVXuNQ@ʄ1 i6P zZ@x>4l@0\3@ pxXDo,D3Q!*s =ȇIlmg9 20g[rZ3kD`xX@<">(Ap`B*0BQ@ @t|X>/~|X@0@8IP% x/DxX A>Ol`87AR/$߫ͳx=7<\h3{6 &GM0y[@`)p<\%@ pxAB ;> `< >PH !E `><10,9x0Jƀ43€- }g8ɷIv>*Ep6yK8"!i~o"C!t=VL;mڑ:ġ]? &)&>-.6L᥹Z'|/` 9wth xޞ\1a.8ttz';aSs<~ !$(wjm9iӶgs00dcZYݧ?9;suاwnW^m[Z㮛5rKm[wۮ?w{ kn~}ޟ{ww{xݍ>ss{YmOGOÎuQSN ?00dc[LV :X>,S` 9[FTq$I`0xvWh\Ή c*/@ɛf"Ľ>$]."r_@@^FL->0S% 9ZŀLڏ}5b! (wX=.)J <ȗpI \|!7dHِg; ,G0:?lwvAj}"R2dLIЦZ;^e36hc60x?(! @a1, Rphi_ &bD'U)v!2\mfls 4|2x_~ڞf ܥ c㪥eB3`w ; Ǝ:<2% bIǍT372h<#$5?+Cx8sQ(<' nF! ;D%iP[ \1 N J778*}1P3^Gf)  3T>m6 O u]54=<"?3I̝"(z:ǽ c\:%98QJQ*.+ C%@P'8 $A$"L!fB5Q aMCRcb `Pˡp6PxM`%ރ@5P#W"f )׀X̑Ax"x|Ihӌ掌 Nq]μ3 …3C7!h3na~!tsp3FA-y&^$莧%0%4  ,P(x ~kP_+ xtHT'xmS` 0xIK l0Jx T e1xľ 6/@/A B,`~ A@B)7DFJf"Pǃ2apS'Hh(*炩C0c<bNf1LIRcM (A"pfJpx0YOHhz0>9bH33kOtӂ  ?0f< % >@2x?(Ā% AJ ^3NZyx(Ge^,=WEyЦf D$Օp\O̺oUZ .* ə:= 9{3g aC$1P<4D1B fwOhJ  #Ol 9 \6~l˄Covp683 q+2< h2 aWB`||YxꎔX?;c<} fEe@$xz }]Z)Ĝ@ a1x2 V^ I$(.& (#`t2.=L8+1 P PҺlIP@ *w>? |~ +N&'vtk9Ȁwi 6;)ɇ\m!߬xӆk۞'2AFXͩks1 CdO Q.'/fHc^c~Qtּ,t'E_t4+9`!љ3ɠ }peS\Baւ?B0dS8IT ?xI  2%`I`.  `4{Ew38 ͗@%@xP @'``  x<X7ˁ l<x 3 sDt_d#'󬙁K|0GA"0tht3'2KSScrgޛ]*`n[@`t()ٻL_ǓgF?`{$d1džc:['ani)3~4#S#F@.6 H#|e`A@^GkwN=;yziE ✃?$2hx6|3xPBs Eià ͤTiP7`5Bo M#vot Sy뀉M b&S!7'd.MYpzNFঢ s~RX& փE/G|@c(): h8)Kn ]]= 7:|KS?أ+pU#3G4 1(Sl!qvsGǏ|=G`gW4HuIUl"<(O Z7/z3[a8sX%zܐdǼ)`ưGRh|4S:z)ex56o2 mTƌt@x1(:̠\An<3 m| BxDa& `g! {#ͶӨ6P|mX3j>S/c ?U#%%n|JE#rF @Nm೧^׈lj'OՕÐao3Tglk4Z^4(`qqER01j 5s[]F hT^N*S Ymbk$ }_/_VDShJebx|J\C`mEy.XVyPaGX)-[{vS-#YmR!V4&O4M}]~[_i7 o/~h=ulphԠrL}Gqga9 7uC >m,*$!>kvc,2TϯZxqн*ЁI^PeᒠIoб;ǫ5/~fpD.`=×݊MA? 76"ԹF0"h(yk7N7DR?QEp n<֊38>5bp/LLHW/I3AxKňLF@Ҷ`V{@xBҚwAaǰ 8!P*f0"Px`0Lf})* hڡ *c_ EbBA]A8 gw tGg$!2`dUDO:5AL Uϯz^U;#ԮMvE!Ljq(d  &;(1b6k*@1@!V$CsAXaU{*at她А퍟mTE`# v;cѨ[R2sJ#t יVJƀ(PGPY8\NҤbObbB䀪IQ"@0da`w_A K49DÈ0 8#ؒHR|0> 2@o+x hvX!V p= @'ߣ %_? 8'bVEdžv`HLȂ81&-W 罛2#iZF"hh~p SC@_d$`kR~؏[OoI_rWbfC@ #4VFtm bѦ *1a;o urX}bCf:`* ىffןWf =2%ƛ0c,)Kc`t0+U,ܔo(*IU\ex1ABAt e* dBS0^i^Tנ:Դ\[XL|?Tª Jx;H*}qc=g𩺜t ?d- ?نb_.U=iܟ @dg7/L Dyn \_G?A;dy?}Ku]s]0 0HhHV0 ijmAI@Ca ?/WV}k*XAF2`)xzP ~ B_imLb&,h@9n*T +ְ Z)P AҐC uQLm/.Fךn e !}6LDans ;ۤmL:Ys89OB#nW;ڃ{〩N(F-y =GX^-Z-(1Gߗ&;I |d?m ec"`PZ@,L]+'LQ(v>-mGbR֊ڜYxZ"rq@Pڀx@]\9i@ C@Օbvz)uܱaby|蝨=+M;4|VͱzQ:7'?\Lǧ~Tg;^'kUoG!ǠF$Ò)Eo>z9K'YJ;7=I|"0NAN.92Zxo.o%)hg:*Dw`N rҪ 7Gp!4U.81m])2W3D x 3 ~@~ƃ Joae]8)=CXͫDtЮݩ AK\eɨ&mB)_?spvi1bPrrB$"0Mw;VЊ oI^X=ۊ :yo̵L?{x Ļ_~#E]rާ;>t X;`&؞zr9w J[rQEIEN0 JJk)VĪφFUX*i zSk$k!hS%*%0l@@Hb` ֙R"2^^^^cW]E !bᥡDYܡz"_G([b+^P 7kKT1E܄P+Odn9*7^A8mZ?`9J FQPx}h=ժS]?[ 2NfEi olvBjvY΁,eCǘou#1nt(H\&xzBn4G z:.r!f),QꖣjpE0lL<bX!1j֧>偄P((KjHRCE: Āx "@(*eDDğ*XV0 CPq`wrO텔el:mHT\pM)grN6 ?%Ȁ`PSg yn'uURwwrOF7: ګYş;|Q;׭T(+(T,堈st-5J+Zg^n9"&($cPu, ,_nGNwQ9DT鮎B~j#8SeP[fǰe&:uQ}J;.uHLYQ)ʉo.c):AZS;_2AaQ& {& =V2ϩ@B-n1wSpMÔ,Z 6*Qq4?Bߧ ;忷ACfsN#OIc9_h'Ner**ƓDQ) zD=Ahst26ͭ" Kc^h>d[P= >]twܮONh DKHtZ ^ũBN%/֑R>-cU„^AY#Voef,W^V=/ T*W{&Yq}9&׮ 9/5R1$lb|?oQk$3Gí9v.@I5@ֶX TI đ x| 23 `yl;6 o~Oe|ކYdL-̰=,&D3{،oP8[Aa4^PP|-$`#`.l!`T 2x/< L#?|?B%j Ca>P>,"@K.6T{y2f`$٘fj6wR{ޭ-Kƀ,V bm}MItTeҍ@PxY;hX oS{\c x}=}Rq>|N#Pa ?& P3V`%`+QRЖ<}.u8Dyه}8W}4jqƴ.G|;:&$HKaX>/!>ix?E@spe1P@ez# xxG X>,bf }wװ` :z}AQ''z KLSX.[ecx(A0BC>$}0C1 p >ğ y20b x(?lK%(!|z# //Uؒ 3oc0 <%J20@%Yz'a ?/+B@t Uj,J>$">g}G5`.= w}Jv'?A/V C0)|%|`/"U1(҉BJp \\z@=G7}Iz8SxAn0wA-|8+.^jsǣx?b4tƃ8. A>$)@W3:/@nx1p0@|ʔ6:( rFu[{f5GvGUx0fm̫cQcX/xA?Kv1x =BPx@0plT`ʀ??Ta @0A$x İ8  $`@%a1<$*<#Đ5 xA?xa0Ұx @7 Sp5ˇ P0Zx/|%ǀ̄ >I| y/GO1{DZí&4X3Xc%l9 (o>l&4Fulv&Ixf `0ba!H< `P`Ih'y$!gH`ʁ ve1 `Ġe@|}E P0(@x o €$3zzUV"Yy;zniNQ$bQ9!`}0F |As#0 RGX8``H<` pĠ8 P GǀP ^x HBT Pd@8N&es MWW8@PL3 1jy(HiǧIJ!>xu #g*`0@82b\nb01+x>'cL3ޚ5;hld-@H(uJPaqQni%<ņohasSݥ-HUS}{*pȤX$DF٤a- x>4:0€`7 ]V& oDnB>ڄԇpAAe?00dc`\\(a:ҿyZ)?m(M<>AH 50y Sm.`f;( P&!Qk+{@p TV2>_.@Pê`QTQxÂ"Ҁc3DBKs΀SmݛJM/`sÀ IcS CkgDuS62mZІ2i'iF7w3~NaV8A@ n .Z`秷"MaA] }heEx0ekju+W2`40>hi~c( P a0> }RJ^cN@8CG ÀDBL @ca)A80KlP`YU?Fv<$` `a>O ? J4?y:MiNj7mgKqw"I6D2>.B0` Bpa>8.xĠ|p! 5a x(! ,)ޅG]R&Qh0 %@_Oah{/otij_.0`aDѩH 1ԝ>.1ޓpO60 :\$0`P _LAH<`?߃xB<  |p|pK(2%x#DxA?|`@%P>T x_qqx>)H_@r ^ `  Pfx8 @8K0@`A `Px>tom>SОms\ygs/>:;G 1XM7($)C5S2P   UK1x1~ =`3GĠxx2m-B.R 9°|Á[{hx 0<յ€-O˂k)#&IGn:Nt| H)(A`!(`ð|^Top0!Bx!j߁ 'o4}܆  =&J?VH!(Vq6%^kmrET P0|87V03hx0f*gWIr0f߆懲Ա @ Hmb^ۡJ祷-1ﷃ _i@wzui }s1wf:nҔasFrwW00dco]Ax .o α}gXK@5 B&fhyg͹%069>+`Í٦BhEf&HA^T 4U_ 3{ޛPcV81h`W1lX€lf<8tGH 2 C7>T&Ո?-_f!? ["U+dh3:t޶0˾j0 u, T  uV0~Ӻ~{OCAt5m証. (u`HUC/5,2aH1P18,a@:u}ɺM04PB8>?{<h0h '@ N6e*AF|I=*1 2>< M{[!ur ۙBWŸXldp40\ b?@>$x bp0[P-4~>?D|6 q=5 ^wN>K{{).jU.Ġ> KFc 4ı"+|sĮTYtD?Ee>$,pc^0Q!TxGiXRP *&+P(/Q~usC(dvIʳ2vi^ݥ [6 ؿ`M)!U x(TO8 B@H 5>Gs%>$灇a(!0CX-m193mja31@Ɣe3PIG_t<W?V3 aI%JˆJ@S*{7d" fʨs{{O6Tt&. LjF` m`ݧh m8>hs{رSﺽYl3],iuzn҃cti?Xp|H_wxFc1600dc]ɖzr[: =p'uP`cHw>*_jϤnk9k !7{Ϸko'ě@nFyе^PYgߺ|^Mvp2ݖMcf+hM nGpoo%wﭞbvo7IЎW:nYvwO ]y k]>D72c%ر̏%s[:F`mY; ʶi4pv3d۫TK[{.;aooozGh1v<2G+NpZ/a+]sz}|qm:n۹.r&SINi;_{i Vޣt {00dcq^;P|/liê_yMTWߤхE}s0{ᄊ^hOM`B|90)X$pzA͌a!Cg<42xd$ c Ǟt'FT vxN{;$&@Pp  rx ` N@6 A&{dr(a2a >>x^'¶-ox˽x]I x3px^hP|x}AȀ$͸bN;8 .fgs><4n释S}x>o I€4xL}iMmN>7FXd.|Lpμ3a@89'! F٪4z!f/mڷI>d+p`S`\3`."0>c(~ <4%0dA1c蒧[4N5}=Bl3z qWXL~x324i3Y鬒M1Ct<  zx/-1 A`İ|_D`PF` gxxDbp*KİS6 z yPN 2@>t @t p|x83{.@4Mc!M%HQĶvkψ3S$H#u_V{ñ>6 0N|HC ` X1x0(!}p`8^6>$Oz:݇Ro{$oi Ǎ=ƛjΝk{fO8̟OOO&ڻA sׂ=f`A,xB0!@A%V0 ?C @|m. u0 X5xH@X( $>a,5/`B.K8p`A,o!p8 #  ` >n2Ny%\[hh#ID|$GD!m`x1oPg=Raᗦ<#w;y:{Gу$F,t3C̜a ;O8ydƎQզ$NF&xhe` \ m/K@|>l  `e`Q %CLuǀ$ wnJaxCh{QeUH35xL=? xSRLyu{mo撻M"r*XcHHytd$|xWhHexV(h'o7qj%@_=m|/!_4omS$ȳ&QHxL3R7 ¾Z@$(18f ( V f j|>? `aA=6HMG:Dk %00dcAh nT2c$)f,Y_F[p0ϙzbˋxLzWX?}ܪvm8JU:yaA)j>W % HAK QԁK}RaySX3 pb`2 C' $a9X@>7`(0 X8@>7oxCC r”` Xa<2TV ̈ġ$T8p>\^"3ŀ%&VC'MϏ܅@u3ᛚj LӃ|lc ڐba3 \M)ܚn}f:mod}ޝ'w< e5?nA:`WW7A.﻾pb0`5u0y| XY\O{JC:}YܦM^Ʈc0 Z ƇH58y( )ŀ%%F@e T@eLH>D`Ā=-0 u}NJK~À40`/0 pΉ?,E09|p~| pC@€$C|h@$ÌOY>ӫ  ;"PwD}hAR"+0y)#b_}H%Ad}K[)nDnoMX('8195+:ޟbůog=ΪyE\>[{ojJFXctf3o'ӟaEN&,PF ݹOh[Hzv HdK5Pf> Zp.<+clLvx1!27o'A%0MvZc 00dc!Pj #h8>aL=xJYX*zp/P TG䉋O+Q9,HMEßWn4 J 0)bGۇb!^#IH\$G|>!\pc#Y TUeԽ!YՃ < 3 c@gRh2P|@-4cARIP>`Dxކ`>:1x0#BǀYp+& .T=Vx eC:=btRD"vAF@h*vAR<*Ճ=|x)9+Hj*P| WTH>7 0b2` O c8 R|_A 3(6AR 2:<|/=Ƅm`@ rCI5ԑPb^T(h?T;a> /lwN _> 4< yH<ÀXB@8c`*"|(k`t 3QJ>*+€, `=Ġ9h: ``4 3@Z` ؖPcB0 sʹLYjNJ1 l\>)1xP(- hz|( RZ( fo^z2`TnaF g 0΃@ ; jԽN (3B ix3ˆX1!7$S@ՃpE!![0 @`0`3V, ^㉇*r?4&*:  k/D8Q; `t៞ܛhޛ%_|<\z>~(p),B0)T+X>dH0C!("x! ~ 6:Q0:= cx0@a(vZ -T͡-@1gN %NYN9 |/2iJ4l8 *B;H0D%q7# 8/i#CcB'g)ʏw0x1ǀA f1x_f?>0KVVq)c t `pE`}A8I0 ?V=D>L 2d8\aA! \ Paꁀ |0B a1 0T=1& =.8\b|O () }Yz<3ߧte6 }w{˜¼そpf('p DoïMZg }!9`!f2P>>#l 1( z:̀Ճ^ P`P+3c @R`" 2 z%ި|;4 HG$ ?P1,`)P < 0 V p I*=ޞu=|Jg[ :€fJ@,3I38`_u_mu:8d^6f"5p p|_R$hH1K'I(S:p) P< 0 ( p|( pHꇠaH(:= 0/E8<a|?@ ~JaP?h&.T [x2`*2R};O*A):1 (e~WǐeJ}@/b` ~> PLZ,ʑfE͏'ѠM_ЊpJ!gUJd4B18>RPҦ(`2>'{~ӟsx>$,WY€I3)] *m#,(=ǔ9 Pe@ a Yp4)X1 >/z# DAzx@.+%j,3Xɺ:+DP|>hwIEC`\|HVg#>tj.. hz\y J$Q\L*y,2 M<-V!j,QI Y >`U$ bF+:  TX3*2Ā%9|h~ p\UBy3 2f>\01` J0ʇ3M0g@īAJ w>$(1 (1 p:GJGp@,*Vߌtr e`l U#ȀhX3Vt T%:7ALH>lyPr|3A  tnP3l H0t @b0T  >O |?` DG1jmWKĿW"@?V-rT| c AD6uC\XYhF (4G į6#|8SeI wOSuȒP4HP>7X p,D7@( }H>`P`|pJXB-gGA2€X>bOc+ aPhaPQ& J?^%AL%T P1Gᒱ%juRJW<a] @R\%AD;Aa|;$:!@P#Pp*Ect`1P(x>,C< m*g0+ CT1ig5pcؘWPJM0W>`>`@f EÍaj`nT` k ԁRj `sPMD`W00dcwQ >e )~*n mU_t*S:@8V@Q>Lep˴0T;\1X rm sLB v#>d`l~(3`!G>?- U(  BÀf#Ȍ0>tz# g4X0 t6l301#LBXbsC |_pp8>`Q; >w*ctcaؔKʁ0A #0$a3Y6Sy#0b9?5FPS52dҧ)9/vBJw4h_Fd 5{k&k<6V T|X(Q ~`FX<4[ Jh0a(?<  %c|%8iQtg/ebr`f_t>rوrDc579{!j8< $r ~<`xK>hx<$ |<>P`Ā4|(B(`< t%!P \?[-ᱪxDQh3iOFgV%!"gnt)3jqHxA KC6 # @=͐<P0 | _`\G)@3@7zH<`ʀp0!!IP! \>$1'I s&尭l-e5`D/YξiLO$ BQ82L:wvVzucܳQ%_o€-C>@ V[s?@? Հ@xխcipB N` @ p]8P@ F=sP9€,QPǖ0><.,#rANOn qX>}X1֡c@ǭè{QmC;00dcQ8 P8~օ`_1z[8>R:|zEw(u@>/td`::Ѡc++|H4Β4B`@C`% @ GPH)q2Уdߔ`0v X( </ǀjg [>witGP` s$> H> jHK|Gݷ[>?:D M@ME{iRɀ /y,>mӀ-FA |ԸK7:bCZCWQ Nz<t՜>8qްDa+80@>$"+|2] \ P|?< ]|hQBOQ}-\? UFoJdpDAݦwӍѥˎ0:{ǧ@I`x.V\;.>, փ@xB$x@ AG3Aĵ`6" p"%` 0&0P AxH<_!?R |o 9@V %B00<P@>XF% P>'}?vlj骓FDHy^sW |lW\j!o{V:N a!@3@ g&z50UP##G: ʁJ< 0_ P`ף_zk[ jG r+8@uǖw:Y8tn$N??:0>,_`8ZxA#H>?`P0@I|DcS,q% ɰDC=D6N #=K='Si& p8)A  4 |/ *e`>$T>loQiopfGg}#4{>DX>/,fr+Rۤ,Ѵ"O醩NF-1>/1cIr 2@(>]\Ēuϥig^"521s w@Mc ۞W.h1;ƞ g gr> `bJ|AH3šV:v <3 18>/p!$ # B  >tX> `(|OՃ+ ?xW|O,  JxC>dX;2l(=C|hF<€8 ($ v`600dcrR\ wwK{{[wi;OOOwooon{{uzrN_zvN_Qx00dciRxX!V"B;I"G&P|Ě^H; =XU0 G;z5ѳ(Oσ  @80)A `=R%"Ë€D -zC bJÔ2{`R@ |p{x΀-`  y24`)>a>t7x{ƌO{1a*>$'P`T "@Sq=/{?{⼝4<7Iv` `D;^[`Z)SxB|^Oc):_x 0|x@0hX ޏ4Kŀ,6q.So}䅽$ |/|ey4a!",F$ZOOz}2u4a ؐ鸐%%+@ |_Da< S @ 0|?’Dh@<\0!/|H@0~ A,?6tHsV$EKO=KlV7G":^pҹǝi0|(œP<0j%<<"X0a b%`0C BIÃh€$ A0`@X>lTb JA@<)et J@p^ 1@ǓZx~{ۨ{O}848/{4笰 R^3a[$MI;w|?FDx4& xABf`<Px(İ BX< (`!F\>:^?A<,J ǀ-  d{ &QthN3e|_)` v\>6H#ٴƔ| XLu2,1( `|t @ x PbP @lG İ|D:$ı`x?@8|\ B~_!@ xAh1; _΀p7A  - <귀P> Ȁ*x@ bOK` '~X>+`O İ}HCg` )AD81׀P>bX 0fCc‡( -{p(~$fXQ8H'7wj{q(.@00dc   cXviD0050 Xp  9S2]9{%5qe.gWE")#8YId} j7䨖 iG& _X~(oR %~S,ɵ{@fG&o{M*UBYmA^X">X>l?uܕ:on'IqNrVͲhz^%&JD m lbypAEYTҤJD}H+iRE2{yV7"\DYn+Lʣ%8,mDt=W; -҉) 'v[d*Rb[) 1:2_l"F¿ -;Igi|tD6*Y,V1-,i?3W7;}`V7Qc| 0ď2t|jptd,R em셓}I}&Wà` ,h-/W*e qCFmf},ĐNϸ}]$x}/MIEv} :׿,&?o'M?Ŏf_D.(᪮'0zx._A:u-- .cN+Vh}#EȡuE`&#k"> eta p(ތ!)&$M"DX%m9OH_2PCUy ȎJpB2C|Gr_xT1`*` PKJtLɩ$HyvRD@ f[ (˚O g ~{ ,<%%yDQWC3? .W 5r{/^WdP#77Z@u=*6lL bHYMQ.)4N҃ 0xZ ~.L?6!<-/D#1O(ⴺpW۬+YKVJPѭal/+_g}oT._8ty}@4U,\N%L?lF,(\qbv, G.8sǦNl=m8Qܪ8&oOOei0{ЕlB-senv_5đz T>9AkmhQ~S.ߖo W"nu\&:e^/NSa{;Տ<2'2?j^rRcl( Hdw# =Ո}1÷.HgPy.F@lo"3ܮ>@>O,[dhs;^.,ʆ$.QV-ם91|SY XYpQsRlN+IuX%_ , Dxy%kߢݪlbn6܎Z9Qdn?Htmn&F}=AbiYL}?; !l@ ];\Mm}wzϷvòu 'ŷQ7}%PbK TިXFct e!U PH %//./^-=O`ʄ&HX>W:sn|qugX^CIhl~9sUT#oB]y=)aKTڄ0` YN$"7M/Bг7"sUR=>T!Lv[qry?.7w;9؀=SJQ,?#1.d *3͇L9D H༇쯠/t%>luXuN-d[)Gi趔xz%^0O:׼f0ϏmZ{ Lν޻9u䦪uZ,͆x8L#`)F"#Sn( FZhHN|zXܝ5O`q1'|OyW+[ܹѢdR'LSL%}`ZBٗ]5ɀZuX>ɝskQ| hO8~G/s4\ D`_:ݝU`˻{r#"Xf\EEYA@`e^NjHs;ғKߴ0 Z0,maIh8_*KVKO7Vq! 11> }v}jaLx| \ H07إ$$j3sT7Rs+*YH`BM[%|)Du~U"<)39!І?~}gf,<6vϪ XU.Ŏ=3k qꊾ~^ڹ4Y"P9ga=!d`#(@CyB׽guaֵd-Nzz [?mKDIfD8nZ{`$_U}PqJmwH6?RKkݢ\k 3=#رb.[]3y}yqO?+V~n-x7EZ[Xp),,#}/ Boi-ĩ @`Ж#{&%_vp0$>0 /d;@ДGI" ^,fDX {(J.-* %Le%6(@mv9UVʥ!t@ \3؛> ;l$d@L -qԅL~gye]T+Y:>ɘA)za']q' թ*8cL؃g5,bXM+Ҋb>e )՟CJ(O)⧾R~w(KemgI*NW9O3Q|Ge$ŏZqS}u~S.P '9Ku:T{ϕb&w 5Ib@`)WCT@UA?MV9R:F,'Oȭz8ͷb(}v-K0q{ B,u FabGt]^:j٨7oN U/RQ~ AD2_qZY ׊nQ,=?,o l![5S+ i~ UBUN C@j'QH5NDrڠա =/Y1q$|[AUN;#meQ`0`52a0q mV5p a}Zq$Qk`%P8G՗mXY4m4L)L C .kz6M}SX6k{-"fSx,0 AE3WV$.W~-BSeq"ZQ3M̡LxDXA>~qqGvg2eGi[Ss/%&4"==!+af>N\\Gw8G7L; U,T[/%)&vc ^ ߞ/< #+RkuUDۣ:Rq)3u"+s}=ZQ)vi`?_Ow82sf(jg2MEt#ns~s$G &r=j~nS'\~ hNm{q9̙$s}s;(2Ìn3W:VŸD 0hJ{ 6=NHCDq^E\\Qe,.I Գ>ݣ;FD p=*<⎜iUmDY΢*"!z v!b1YWQ("Ժ,έPh:S4Q`"mD!dl Q]dLC($vyO%mOUoUUY6q떷aT?2ޯiA++yh V>|sG6sq4f\*ŨeZrQ;wI\*\7[' [Bݬha[ iv+އHn|5RVꑽ?'!E?EE0 Ν,mVS>_Kv=KuezEX6%oP6M3e^/H&ffKR"nRCm19#N?-BNID W:GF#Jeƥi.ɵ1 3ͯ2љyXB^s75>ajcQ7-SXf=-IWu|Ƕn*4[3=@\ꅄ Wg ;Gdʎ_$Ӝ.)DS]ZҨ=Fo"nP !iY-p w(0gt=+Z;,z9[]rzjȔ> hJ;6u-׵XSK*'`DkU\y( ˋ0~*ܨ7Vp^t9fKij?Ln,+H<"-sk} CܐP`ZoЃ4H2M[:%ʿ_j" [gQWReaQn8~*O-%gѬ , o2rtJuRoBN#{oɿ+ S򉰭 (Hr(01`7p ש@XǿOoش{*JU4pX0OK5F 1?ұ~iL I%~f;M4>=clҐ݁=ٔD [IJE=4Nmk{NAX0lZRRXf遴dLޔt4j ~TFeBKLo@fVcM>駚FA[ .,Xd8WG7'W`1&y00dcS~ )_00hǟ,B5ݍ(0Ѿr3fX6+Z5X xW! J(|s 6 y΅%X *>( 02)(xHlf/σ _h\Mc<V2ԸR>bCU UHg${I >,}WAE@ FFܓJŅ Qxbd@S§@A?΄xKxj<CCͰj+T?hx6QẈ&,&焀 ` @<|<@Kq}UA8S K@ă?Gxf:悑 &c @hSA *ޤ\' t)_M-uCDl-1,`š| yWIIBj0_, Jhe` nT͈畏ɀ/QLs2 p w~۔3pct96 #qO7Y9w[/_ S0))wu?Pd? 47<7{E*(ULi P˜`0sU_Q|.燒/LA<)Pm)3}0Kֹ^ J6+&;cS`|jp`J:WHU}tw$J~|ژ:X:~F(dX?,XHtf"vܨN<GHl7wj t3qt3 a >u,;sš1*E]*ީRl2]W_ ӁS1 Į ^i)N3'ΰS.qЪMÏV|3Ci To8uÔpc ;0(%6mO{x3 8si0!z?k"=D-Wc9-)HƏPl}s~ SWT,:vAp@߉B*xH禈=ͪO_ hD:iw7xxgM7GZѕuu&yh"{͛ bS\ۅ^ \7&PIӅV"TU baMtjd +> % ƋO .cq !3X7qSAMW%F< xG0`ZZ>PGS eW6) *)3Q=ǀJ@ǀut}ToB-V\&vͺpx(V{xg׼dqynPt:% _|J _;0IJ7A` otS1UI/+,  /.zV=Eʕx `_ n>} %FcnlP :э?L31,7%}pSE ϺqT3 oyHlq]pSȥ@%KNTHJ/T<7S4J/0 U@& ~uV` ~eL~|\&3`Cꏂv۪ lʰc|)2˄|>.A TQ0<7!YeUx(eC0ah6x}@)GdO@m=?2k`T? $lz3qɳ`W/}ð 8@(\Yɤ#+3#"43 L;OnxLpR+⍿&s}H2#W|;c @0IL;.0 .T%@h^a @oD@  A?4  b/lRC(1SoDZ;sOd@ dwmqSB)v`cp-xSچ>s4^uueG@s-@cW L d3SWd``` 7jtfɊx3q<͇6N3UWTlj5>|hth@ri<%@!Bw|%8@ =@PRxHv !z!O1 yl|31EҵimMRq[NSSLs›~ nι:oU-6 (N/6L7NqH飚"`6PaA92cJd>< '͇$n&"VPbp :#r-ĭ4\h3T*@h< `^ (t|<g4ؒ$ |K/.t5"@01U./z)F^̀ʇx@<D(@ >.]2ŏEj?uVwpD-#PlGL3={z ViЙ@rkՔ_O!2׽/|?[G}*!d̉IӬ g4c'|9C%v8xۀ fN`17OI1?p13emY/W6#Kζ`+.fx@hH)s܀Tdp)S X uSd~>13)"oOV`2ȕͧK@%f/".pΈ2L~kZ 2 pfa=ct͙H1ِ@:2y j?+p9{j6ξ%2%I)1| HCB@9`azt!'hڅ&Sg]ToF;p42G8) \ܝ0ԷSa034kC {3GC8}N;wsǴ2mDc_gbIԟ`R;ϽN|8DX&%{t`͊S%J 1Ч^,uB=Gy:h9݂'Qإ;PF@4Au4\ɋZ4>RSyvGBGt?f<ɀ((RS )b7:u(bf*+;lT΍{\b#FG(Af1KKGYǂ0q3/R J lfu)€$}r {Bc iQڭ[P1=^="nEp2SNΐpʒ> pGNj!|4/ @ 9[]SJcQ(StnZ+5/So 50(DH:gۑJ݈X?-@\%Khx]VEpScqKmh;~>?ݪ@w@!KN qٓx|Jċfnߓ׫<at '( ta\,#0X AP3AX@ŝ 9v<ՎuqTz||?˄Q0^= U qڅ>ڶ?O`:ڬ$xS â4茔J 1$> ;E*i0@#=+S(+ʾ 8 `wEtIt}x(smPCtz I@ )a)Rθ s`=!x) PB?'ı. q$n n"pF,c6&mFZ+ @*L@^U~Їerg0 ~3>y_ ArN]zxS`^$mogz8k˜+(SC X HrA${b3 ``at?*v_W(24"d3F?aPўa̟}0˶ZTv`~z=A! ~ C:_`Mq J2d`6tc,C|LYMD J!xXț.]o)!_!U18FT(>AzT A@2 UAd4BL%00dcLS ì9ڱ$HVޡ 3QT˄xu%k94QA$DpxĐPA( a*W ?7?6)8fT@BW[ K&@_0s'9p0 0၎0 HPxSApsR:t `gwMٽ>maAD NG}vwwVFim;}[߽B cjx€Ixnj%mW+ wuT:&BĨWaGP)P1> L\?A2P*B@))4?8+6Q̃} 'H .ꄁĨR;_ w6@EH ,b1p<`hp2R麾mӚ>=^oǾ:xJR,'^:@%Jc`S&x~%```UPxx?]XwWWVrEjw a1#cA HA)n jBP Ax0| 17G`wxӶҝ}[IgB]ΜniB͚vU$J%* a< 2` (#p|Ta<Pv\`||?< @6%)ĵ lD{w[>elfHG84}*:!>gJЊ a{g Fo?Sg$ Lk8d;ڣ J(w[l_c6b(}!{kzNlqny4v ϻ}зLPdO$}o<}xdٛuY}CGP^8ِ>co] xV` ,^c| 8 eL V؋KB zXaQ A8'?.4 @Ѓ܂H. A?mjn?00dcTxV-N/) XeX^ }&@>:pX xA=@UUVܹHޠ]XVh?x* \?/<4 ^00* "@7+>7*@$44e |?A?d:I#퉁 }$0!BN' a> 0>/ܖ|_\q* H> P  H3 Ӏ$8(Ttx38tVi<~h~cGc1μ&p|3ݔm7<{¡hGoNӫƶyT'(!}ɀt=#|OOscxvgF\}4 mWӍݤnlDHν9]nx8~_xHAu@Q|(EPBe$< 0l@aeX<7׉ ^>w)fCtGt9N4H͈QfnG\4IAf3 (2u` (q, a: >w/N,!Cc/RВ@`7F` ƀ-y:2a |/cB052=6qi]ejal=:(lb P|D(J58"pmMX<7 @ /M@>`@ɂx<_ , |x[6Dp*&n᳊CRӧa!>W`?'p1 #Ϲ1N2z{΃&8Fpӝ+@2<A(>' R?<LK.2` ^ jF"dt & PxA@7 V0B. ?(`:(5:x :W۾9O,dq{bϦx(Kˁ@)@0HD#^@` %l(0`8! \80% 8 A?{;(lmbJ{4*{7U a>'"^"DU xo ^  `@8 a,H@)ĐP6AD@ < mFG>D@js#{pB:)KN0MMSգoCq86:x)[ HX"UH ;ܛJ׼]>>Ku'l`zWx9\X̀%Q3oi` }1l^$h >\. _?T@ 2!,2 (Էo~i3ܶv#QC`ǀOx0RR*=.ŀ%2<A` ǀ,P`<\`VbHT[ۓ[ڡ 7Mݺ&ȍ1mI-xs$$!p<XCx @X< `⏁@.XP2 eyX7Pg94| K0KGA@%@<4B@//x/(pa0A<` Ip<|JtJ\0dٚs`.oin{K8u+aP\'#0 xv |<\20˂74ˀ<x!@<0\>`mx :/B=ۃEl @ex6hoctlQx<:c /d?#.0x@ lK(>ddJ@:z2Hx>?8_υI@7A#oUˍ]'L;Xd%ssυmY(uv0B=xVw/:Ѐ$e3xòw[m9/i@(eH0|/>_GO!s"o J! L2{?}eĀ-|{7﫛zMt*Xd9jۭ# ]>$aan[ޕ2w|(Voz:њO{'<ʃJ@ D1RA${J%T ﶥH H wo3 00dcU\3€pl)?) !cP v> S2achT0{,`Éw=}{"|/x̉f0 Уs\w8AXsy@NpY;׸6dp 9ό,;o9Vιw=8fa`{$,Ba*A p>$n|}\Ntbduتylz',Q Ġ|_  Ɂ zct>;}Kn3N5}3o:NgxNV hˁTI3/#*ر{LU@>P|'bj`.>2^ˁ/E0xHA|A%x"<$xyƎyﰂ3.PdMz'ע' (B|AC`0 #:@*%$ NH0 4T  <2BP h$&~ x4#0.`Apx>`H|%xIŠ,xAP ! `?*E|Ae~T hcǚw |xޣ eMUF=kΥaosBf$CLdLpʴ< / >%4K.&3|(P<P iZ=(z ` <  o6 ?<x1^5yTvi}l *$>nua1Ѥ9: >'b>u7`< _@ x`" >8)B B/ð|_2 (|pa4ze` b9rw9<{Vѧ€/DiaQ):-)SC<{C6?h՗̹u'x e0_ [>7/BmиrgItl^0pzoFۅ祫W6t˙3:c:{0C 3K€P{P}/Ps#F1PPJa aDlޟ49gmĦT)}F@ }=r3VY->?.sYؽ}[0&BP>.@0xA Z2w"/-jBg+<<?00dc] VmxJέG ٫)1&/e!Wt\q!Hf茴6$@}0BG7M=EG~)D0P;L T -| <cU9ҷAS )ƠY^ J?U<PQ J}n(<'x8V H`5Pcģ1!D|٠Xh1 \ $@$SC @_5bWU "<АL0(2(` TNK (" ˜@@p~Iax>tz[˜0M@Bʸ1êǡ)_I<)!e/R%c9;,$kO bWK1' R #/1<'O" XH0 LX>l’#}€MeASuxU,  4 $.ƃ x0l^Z8͌ubOF#_:!( 1!1lւ*DPb;U(hKl: KO qA b  m1ӿ>9m ‘:~Y_;t.xY79Ԏ$u [:s!Ӟ0כetC PSAx%JU꫃&sR4΀T4k-<')x@`.!h!3@B6&$-e>j ;+O |pzH[BxgqL~rz6 4 š+@A`cUAvxߗHͲQ `!nRH>Tc|XA? `6A<381yC5(8)s_̄`6 ӪTď$<f0KSP;8 b Y (ŀ/G~t~ʁF9ÇF_IP`+ D`<<r*($hP 3__h#& 9 rdLtta3^u$-P1И}qf{M{b@ i4#` cn lv;GB=?x+e^?'} [吓4i*ki !`%*n6 `A>>8 B 14 xI4^$' ad` f0xa@P4@evT $0}PCpul -HbXރF~=J#p|4mRI?*9beY8 [8 D N22n6:${;hf$![4Ansc6uPKOpfh248l8ʌ'9|IP/!/xwA] hH 0 DBW[bCYxCeEGvA@WG\HK`A&\Tb+/BX %x SP #+ɞ G  Tҗ>0  `  h$ `I@BEcB_RLJL_GTㅦWa`M dM ᛞ`)f14Мn評q6',A>pӆf+z['|vP2Q`|(Z ʀ8Kx)RWA$C< aׂ|H`:=[}<Dp`myȍPz B3H^ɑR>&񱪠E$Ip˺2.+2PߟPf@3ߜ€$tՈN>ˣ<*''0c>oCd Lq (Rw Ap|ܡP1棼H8>g ʕM3WƬ} .>u#{}Zoҥ.*$s1[n8c4A0>@|/A1N8\3Z cOr:HΡ|O/T |hKǯg4O#R0a`1̀PD-J(Æ+;cpQ`<p!A! ř8|xH1ǥA^= T^<2pReD.V8lkJDp|(G ep͉`bX= 87|y6NcM6&"2m$(:$|(R5bPa0(N{tQκONu麡Ýs NYIlJ H `v C|?  3>zM۫9؞`%'|XK`l p^< sfn!Wwv(S0+9 "HA߬ o@<(48%?O`a`<@3vF`B.V>~0U̝Wܷd{N@cvpAER@x| $xBH+9#MNp ø_0~s! 6v(@ҹϷ3`?ȕ䑌z1FaDB:XR`xA 7AX0(1`%B8>tN8<"P<Ƀ@Ԏ8d3(<a< `p0@:X! a(P4I^ @?R< Kԃ0V |?0H(ATjF 1`@B֔nT|Y\@L=1nY"۹\hYq;(0(>GŪMop<a  \|?mCL @í҃q]Y> ,6v|^ۘ>'m8vK@F `cj 50|?[P`泃@ 0"c%}#qo~ŷ``7f@00dc3Wgj0c1if\ pRƒ@6@۽Gxf9z$r- <ni;.[ExA _6({~jP>Wc{Spd`pHTJ`S06 |0`RxKT! co{J $v poj섬GLqukCΛVopA-p|ޗ@>\nB3;ݤI=ώi ut$lb8x_A zNR\ @\aP$@pb]>ř{Й5]':项?v(0r0A5 @0|Āb R`(A@(7 G\&`RxՃ@@-1(#Pd x :! @V%h chX4)G_M3UC8@h%i 0|h@yHS|U0%!"?4Dl  BH ;)T:8 B3qsiF2{Dʹ@?L8h0fBP ``> 8z]D`6%|GBa)EV'P U.bX10K*CR`x4 V ) 0@@ĀTXDx A< c`<BBn@"?1H>4j* #4 ";{Ẓߍ VV̮ |8qN3s;$>LtOVusK V`< bP0@!1)P0 x_7j*CBTP hq(!,, {cY$5b~`OƨzVI+G`>$-aKm9s5ЍG!h'L}蠸) IV L;0`P|»B8<'(`ڠ *>Dn{Ѐ-t鶌2I:!C':Ao+}/rKzC *m'(w _Cp|P>lnG&60ؽĀ$;@}z!:չ=CB7̀,|_qbM rE4#@ې&|8^u5p1 BӐ˸0&@8A4 7H"㚣  ?m2Fю܍00dcW7sJz^?uv}{tK{wvNzw%y}waE}kTuһžk6ӿG ,(mȿk7vinSﬤ-lmO00dcXaH{İl&u@7I^=A?0>?tjR" /‡O}iO{ӠZ}4:N9t`Ʃ=v 5;N< ǻ_P ~Mߧ!4`΃o~VAŻބ`60)03W+n>QJu{tj/s(3I 1P x_P  00 !x!hFx,w pK0(T |U%x!P0(p`R@/z8=yIoc 3`x0`Rh0K43zzXl -<X(@4e`@%@^KՀh<,E-;[{Ca ) mP;MP|XEWQOLDeA}d?z xΑ }8e9{b闽R|oU (wnl:4Ҫ<3O{qϾ:F@ {7=l;-pdp}={Ҩ>$},,g:sŴC<{It% {4C@x3`Pl ,P)p};=xkgOAx0)  Qe$[D`F$B=![>$00dc"   cXviD0050 XbxN |e&QdnV9-}|σ YorPwmv73WK洊\ }$'a,31np5v)Z[QobP** LOg*|$g|s.5tBWʦZh}{W)F&-H!-#MN{"<0p i( 6"vsOԉgg˳U+ I ܫ0.#pa;Q">QıcsDZ, -P`u~b]6CuhqAet h<_*BYk(P'Cֽ􁃰E (OMnZj I e3wAnr b~EV^0kUҋP _Ԟ{0HKzmܴ7 ;b5ϝp7} M{Wf" qڞvGW_j`&(կ!fF&xC`l"ҩ6x'2?gif57cMѸ|@A섀=iۙXߝ۠ E#3*fLjC-#3cwKߒdN;wO;ǼOeYz벇S1mCYotBIv&QhZJD0).CH*.yC$FSHoȺ{;>eoI"|PcYIY=("pw~c3Z{EO,ad9y|;ET:;O[a%U C2pR `|V4iZ'_#Ɓ ECp *ω3 [8(8\<}qwo# F!PKP=px5(cԲ_hA00ȓ_Ra wU9* H[8c^}ZadCP--(f>_='._3\Ri+ZeuF] +|z"HwG 9WP0 8 X@`_JjGXS~ V tITf?0-K([0͋D&-#}-,LJ:bS=4jJ V,mVAQ8䣭)  |z;0F[nt͔B@ST1ݬ?ݑuZujG*(b8prnlzeOҀi*N/'C zT%iP*{CСYQsj& Er ֡}tiKn#eG3ADBPP٧1X|mYkQcܫAڔtԅc>VVr !1_*EoZ۠|=4~+5 R h-`KV R(‚ʳ*)d0-j5IߦPQƧxmӌ[=POrm(Ӣ u#(d>[跚ALlupP@ZN ]j;a[FZʷDAVF&0☧s^_N?1AOz?t)Hg2ׄ?ܯ`hAXYs)z Kv6ϦqF)0 gDu81(0$+ 3Ѱ q``>bPxGQJz!ڨ*͎vb,tԺozJ'7T-K˿PIE(@NdY|k+Y2KX_HԕITql`\"h{ J]0԰K/\;G+کRYjMw&9} Y\V;GS5^V$>#Hu<* $zk(S'IߩgԺW3h(XɁquU!nN#rެyAUKib3uNR JU򍜐el1 Eo A3ߪ!ŹAs L ~j :v=h+/hloTu,`$TsW+ hĥEO~Q>3͔0]p;.Wr)X{\jflӜ-5OL*[O-PJHS^|WWwn)Ew@X3gn,L1-!fWqytW)+╝ &e姼pi.|q -s vԡrD+ҥ~ 6 r:MQ+(~A"A]F c^[(UW^@E*k(?]PLpvluӏ礽&&6#!6"f:g8s [A+>a ` BkW4=hCۮ 3sݲ^!*@D-qK“ yȴUƊ|W\-ȅ){f~ 7[\| y;}'AMYDԵ͵2:-)p`YJmhVE0bNݱu\0~ $U{yGo) 8h*,Ÿ0-n˸7WFia`l ct v -Fq>p˪Fu _Nr+I: u[~W6Y EFݨZkh-DTa Ic8Zl-ܡ!Bih0LɍZ:.Wd̀)YW,dډ d/n}-q[C0w'Vh~TAvٶ$1-XfCλH1raPPe0_F' &o3O*8(o܄o^9< 7{6oZ^Qo=2:zHGb Lo^4߅ = 00dc_ Y\8ScÓGT^PS__ld€v\@\6 ;a.JtrJ>lٰ*ê`|MTwSYJ5[J)rd| EE=cH ~ڊm<\ ,I-ʀZa@x!KtDTm1>L#AXYnjYsecڧOQRΎ۪νxΐèHino6$b4hhhGy6Ezޞ ˌFQ 5*KD "ʁ $M{ep#M:pgAO{Ц`ܠ|r4г/Yk>"gxXAVa ^ (A JC%@RBg2Ia3$|GpoGaf YιtvGKh\t͍@3`p@tK0Ax Od 0|?p*>tf `l8)U7)0/8˄@P _@@`|>T0x~~ lz?D 5:mq"oI<]1ƎvְM@ͣEN|Cub` @0>? X0ރP`xHR}X<yH1 5PBA o@rĐX7ǍPx.&$qW2ʀ*X< @j H3qe\>$DA c@|_\ٱzq2v4kȷtjt* 8tl9{;:LuYs20\ a` T׃-e`H< PV ʔ"<| xGPm.ЅEGe$a0qj:ن*ٳ6HKM&&q.pdNY߀[JyL`5N6#pD*=B)xd)0:lgҴ= \8hd&d^0? zJ1A "KĀ-[6iSĘNHNr.MG_^&CȅC*E`+,tóR6G 4فƴnra /XV4Sͤ9PT0`6~ID ' iU2|/u)IAOgpYj<4t>  =/x'rq`oM!3^BxH֚%697RЈ>&hj쌘':B4#Tapt `n[2"dNQhͶp <ɡ'n ';[%Àϳ@bR;_ǻ _SH4{<=l:)JF qb~~00dcY\a'vĸEpas ~>igS: 0)uڛ/S@  ``!бER F:g 36[x  [0>a8a*eǀ& ZY j<Ὦ \w!|\aX1 >@ 0|hA>4"% Dʀ&x>p<< Ю A[fxsfwuw97=ws"L8P:8)0%| !l;Nk59Tljq4usnW&z4tI%8 <Q.  Fy;Ġ`T`R虂0`Rx(̀D`<x?B<̓::iݧMش3Nsw,#/> _BP%(8f8!(6, _@&!H<_ Ȁ5$vɵ6A@>d.6J;9|a;iNF82?*h0T UA JD%KR+U9^x@< +Aa$J"Q NS A` d'$a!> (KF~ `sp `Q ĠaS<3smoFٺ=c\ͭNna|_QDmj e xF) `QA0T H0!@<`Pga<@75@0!` #e݃@*DxC03֐dN;e ݥ79ޠtX,>`p:Cְ[ŚLR0h0|/4i+rAM D 4J8 ., P\% ` AܟЃ r6C x>?$xx! .C`x O*4ӫҰgR9ʨ>DnO=8}#8k(f%j>'0KxU@!>\a3lm}G3^?#kۡޟa- )7niCF4 ȁ۝@kl\IiĀ%YD=,r<Ӛ)A ]\z40>L+I pCm#RvFq_00dcZVx QNϫ(0{")8DlJE.꯫Xj lI^n#T0 qLMFC J MEL:}`uM;tC~ hT$Vwd񣂣bP茛DIP3T Tj 6Kx=c7UJv;1#,wƆamSԟY|/$̟c7%| mT>^‘()EzG@!xG x"_1ʤ<TYU": [ň[Ip頧/3vtk (1;l2T+'u+;C!il{62} {`"UZ< >|:e# 3~lBe@mr.)!cSM80.dviP }{W SdWl"u.+Re=MגžMI,C3F#Ct”gu8tcD5( uO4iʏ9MGόt100 J tUmRdxѠ KƂK<|n ZxU9$ :p) }V RoC0íuDŹ4CT|RyòG=!'8Q6|c 8%OIq fS~ fKUwgĴQF֌  G@ﭼ8tB:xQp{0|8`Ą#h`%`!o9zgf9 Dr.aP6Zv{6.)u݇›@Þ@?RB@ͅEA[:] TNMV`MA8x% {c}rh>;QnU>=w{.h 3joǝpJCDSMp1ЇOc,|s2zTa:prxx㖗\!aM3O3CeGDɛ0|Fd/= 6Z@10`BV Kh tvЅB . hBx1)@H6+Rr$&nQ4 `W8>6:jc^aS| DC ^>vU A$ d@v\Pg78o(uRO:!9;3&2t3qwxѷc*nqz 8p<[vAHWA# dS M 7 C D⍰KW05AzzL^ @Dx/DhP$G:FjM|cFDWC1w m6M{ Ɯ3xxC3e 8c#MP!  'dXg^kD C7uXp19tˏ2+Aƃdڕb74KX6# v>b80A tp 0Ph0P$P0>{@0K! x/Ĉ$ h `$ TH8 @',|y`giў1=o{p6ALkL<:DQXnUQ\!2U81Q){HHu:Fb``1DHa3d2pǹ):p,.U|9h fG^v xA2p`AA+pBQ8Ap< K|=.aJcxA`@dx$W8;8:L0-`0ퟆO, PH낝~W.!I8> ϫntmK>ڇ GDw^$.֪>׽gFV[)r>ְA3LP1gTA@'ƎMTdn >c1 m2Uj,` J+T uA@\z IL4V 6S0XaJ6bH(DCP{ǁz@%X(A`|t Xi+Wq8ɠG>M=5ܽj2@%x4$Ѩg^320KAxZyLHScZּ NOxƴadg@McJp3 9:L G&ptϐJNhu>IlR18+ǁt,Fz@R8{p&WAк(pړѧ6%(`ǷŭN *1W::L1c1y< 1q;W9N[#7L4>x03>7nx'w qa] 9o;"zyT8 2t>3N2N:FTst゚ff֍Z{$gC'UpqC6C*OD0Gi0/7!?\@|8pd;e9<`BX KPcj(G5?\zAMϾ]=<F~3e=`5E*K2iM)+ Pbl=뒶b><䧍 ݊v0'i):zix{,"B0tFHO*|Sh`XAky3H5 Ymޒzq@^u쾥~F{/ ]D 5  RY)ց Lu*l.i':;}pYہ*?ڳ"^QQ̭C)00dcnZӜ DZo?t۾/?-ƻ{c({zNpwnz[?{u_00dca[P !zÀ L^v: gG!l3[8E/Y4x/1P@e <=L=")*sۃ3fHW86\l-ؒ`aD@P3xWf1 e'zcP|B<xqC h9d& 𣿃 i>b;:߅ 9;"U O@%ɀ%6/0q-lApx_0\#i P `p|O^6 |RH>>֞88>LPytE;h.'` O`X ^?8(i*C!Ǟ63[ܢ2C7!x^FVpwfk{tMbI@NGn{` xU<62hPW 43}>s~RcrL#r7qĀ$z!U<笉$3  :8>/ `Q CTH | jZ80x%P>dV4 20ce ^0 'T˖mGVnbA,1ΆWY |yyhTH2 @0 'Pa"P0@>$(sq2a  teJ: |`>d>pA c z\8=e¡V-P>D676RꞆWJqth><F 7;r$ 0eԂx*0>/!,2z}A@2LkA P P sBA@ﱚ0ԑ>lڠ|l(M 3*>*ɀL J>/p|(0`< X(@ xx!@< `x@<pxįz%|I`(|1p AL25 2'e,80)5`H?($ u<=rDdǗ€`%<+>Wg۠e%9Qr`zFK 3z a%99S0 Ӿa00!jP U@ @ CF_! >B0Bpe ̓@h<8|h(QpQ7Pd !<^R: q0*.sxU76;\1800wRs.摜`2d8a(>/o_yK9jd!6 Ԁ`Q@ǀn@ (A@ o2d( JS:,47J:p1(i絈ҩN6q u۸gDA\|,m ^sY'Ɋ=4!K`s |P><g)@xd*O$gD;2U=U(-[#BRc JpXd92@  (LF!S5@SOX>DQ&ɷ~%@2p_@!X0ـ 2 䁞 p*٧<TGƷ Dx\|(<.p ((hðQ pf ceGX;{@@݀% F>/ F<4T8 w j̓H+n'#;GYtd71T:m?*900dc[[3їrV([P xXĐ`+0k (~-M0Q`'b< L{ډb]%saؠZ1E8U;(d.P>ns'I lT149@m,X@rn&Άfh2(} C7h6ᑾ˞hЫ{JnGXf0fڷ>[gG|8 &LHvp@tEOI 7 Cb6z~Z7CLK!2l.[`Υ@ ӑ#Y萎88.$EIZÉї'ǀSщ=l3}ga +q| qx0 -rA07 p"axL Yz`0eGTK J@)4^%@h!PKAA @#׉zIJP( Y>4( ;X<B!>\e%+0  @#nK!Ġ`T` <|<0!A8A`R|i|2>g\ <0B00À-*)M߇}nxr"w^G䶌M$BW9 `Hi>څ 8>wt%@%x?A,H `B@KKa1jpC4 0K(ɫ+C {vܓ"u';hLJRĨw:}ǫ֡GqfSg0\t_p0(A@h>P+̀-HҜz[sۤ9$2לB\i{7ܝFNVfA'& I!9lSyy ]W=[<,N[u|%YC'4-;IT#&h%ܲdoC>1;Rt!^9B` x>x|(Ŵ%0Z<2pVH<%UW` x(@>P^XP8hX0:>A,*T9{x&: 8~D` N% BQ a\ 0*-000dc \J< 5V>Q4.Ā^ ,`3S/츼 Wa^h^ \(0A U탻ԀH TY4G(g'KՉq( R/ 6 S| RvU}RG)G4a,W[CYTB0o@` *%q>g`X0A,@GpG<@I/7b(Hj* \- P<`?A0ܔ9,ARX "|$ gRX*;@$Baf tB?><` r@Dp|  `  a .C0P.%oD(.Ҡg@R8 er$(NJPG+AOaP>7c DGi*6iL"uXH>w͂f :J4`|1c[@l1Knx -gos V!hx= @R sطo Ff)Cu SF$B0b`(aD>/>\ 4~|)-'24OS;Ҟ1$םs>`@pU+UA&0ȀF*x,2@4 X>w`ĢV|3 5OL qoY*sXAn$9x0(aX]qe8uY!;[,"-6@) t%|/ՃG`"q)R+ : <?JAP_Ka @>0Fp`)RT{!APc5qJ/T Ta ɀi ᐉarg6*Fa21ӆaF1@o|x2@! a3/GX0B3X<  \ Q>\`xAMP`ၯ ? |{. +q>$?je@K@|Tx2r/s@$7ӏi( 03D΃te{FGSԗӺiS$Vd2<Ap>OaLcj ?ɀ@@v Z(@x 0 AR p I|R X ,V ʀt @PgLL|= > JAԧp ժGA1,"vyW@LzzsRYOsXf|@yu%OCbdR G=ђEg^ A Np0OvH5[a#8{b`% DV20`2 P - "XAA*P= 2`cJ~"@^?P0y~>=/PH <`(I/U9. J(S @\*@X J3sꃆӜ?r@}pX@_>{Aܗ)߁n2r  b0 [I`m=3e8q <'p h3Krþh1Dy2b:À5"8f i 7\sNd41Ё9Ho\'<1P@c! #V{հ s!F,bׅPpL'EЊb|Xh1uހGFD>  _|LF@j@(=MCPˁѵFR@ t)J:"ç*oGG;$DHc% 1+h2loP@ `ˇqvmRT0>81| €$);e:V4Skc8d'? ;b <L Hd!(:`>/ǀ$C8> aPtpf`)B步CU~Rb3@@#ɏX10>c \ <gïY`1 T(TX6 E-b:>l4Y@faaTp?.60gx1|/!|L%@ cG-VʛD -~ Ր p  Œh` AF |K8 @Yn!* 1PC p&6$hp :>0 GC )HcVL(6C*L, Y V |500dc\ P+4G$p70g@ 2Q Z<\S'4AO)€)D" a 0PV=@$ PXO @ʕ$Ѐ Ǿ@I1#%p||4|~ D'F,'h0Ā w>'ad|/ h10d5mr]n!+̈00baL00h((Bgngsm6iY?`>s48sfmYh=osn"pp<؎ lt:b8dhYp8t:urqӇe:N;qƃ/Q9{q8m+?d)Ff &. 64~ c ˆOMi $YﺾꭆqndG(yǑHˎntNa10Rah@|(މ1R=X>wX؇@| o D Q:=TV\<ˇ#u@&~1V2j9>v0r=Cu:qpyQrl2f`8$4 H "rPnLy g@!<= 2{bsԗ }i#-dft2lHpbu dr)s. B3'Axđa@HрG"Yp1 _.+63"H02H9νJ (#811ۣ00lɑ$>Dd$1; >o-5a)0ﰐ0P>7m`e p0Q ya&R!U @ڃm#a ]`KP0$9YKP1pg@@iн_ 6+"1c@>PhT S>  f7lF3Ni!A>)@ @Dž0-c`°n@ 0|(TĊ LdAux\ x TRJA㚄 qZK00dc`]E8͇T .:Z,@І R;;~ n,Sɝnw*aL*aY2`΍DyD!H ڬσ4 }..R%*@oë-Al <f1pQ-PDa$!0@_T '-l dDr10ǑP>$nzV@X3,޼=;9VN8N DZ= 7 dYb_ {И`|iɆ ` lmol `Z%!6W\?8wG$ zMLjίNfPB ؾ<:Oy##Npt'!j0fk<'=t lSPRPՃ@AA su3`ƈBH2 v>C:ǎ*L'r'Wp= D !*J7|U*CE< r" iK838>T~<a8X CP0B>_cR@8π54Ƀ3jȜ":|o7Эƀ_"x0f3CsýzkH L<4fX>@0`$?< P0@䩆pN+`pxA 0|?ZcI7eF '1緛B͝}e&Lx|a+=Y瓭@1?> |/R 0> c@lKpj>@tt  A *.4?<<A,+0xC%كPxHAg` &G 3ćЌ??z"C&Rن()wt[8dM^ HCNCTfB0`pjPP :?<~1x/İ͗0E!<  V`'ܸ21P0( >p7PP `80!Ax0 #> `WV1IŦ8كnwi;?w&5F$恘) " 2sn\hR@E8q#V&xd:|0 H|J8A?/֏AxA)|t(>c ` ιm0D i.i3m4;"}`<ї;톃4' =Cۚ.pQ4nxG:!3`@"` `"oy&J16C*[f0ezލibDYծth3-|(ęIx> aM>Nq\?|!ˀG`o@A B0o1AAeMx~(լH.n}00dc]\}bT Y5s]NY'2vj7 ڳ[dusQ 9$Mzc2oY3fͻGG۷scm'=ӫv+GEihֲsN[M*su8;ztG;0wN9t㝄rolYo(00dc[^?x  !B@xLPP[@`wĊloS8J?Scq |^>OmBTx*'y=OkX^Y' t,,Sܞ+sF'(QO {ޑ[{]y ^7w x fVͼ~cӏ{}ѹA\ tx|/A0f>%p:| bQO ޶5d^,4D פnFGxh J0|Ae,H$ "(`>x_@1h>à|@);zqč2c6u{O{b'6!S;l9Z' X= $`0  p02gRv>?ebPdmp"P0SXC8% J2<'` d΍=?}TDuWp%$:ʸ@)ǣw D0 x p3b@>4! ^ B&׉j{d<`؍N:0 cPz+nIiZδW= Jq÷=>$bH<$cxġ>Wƞ3f$`À$Aj Ġx/`!Tx!>\xH@>WF0(|o IPn=oXYb6Ex|Ɣ}갧΃8%G^*;ީhh3I`pTxuQ<$X0@(@ o+0l/~ 0q@w0(| (K|HKİ x8 ALPB̀45{ jzm&hěp{P` a#!o !aN_ntHh-H2A/p|/qJv ՃP0(U |~%$`0@V ʁ<ðC%@À* >U{i@9b8P3{M_G=Ӄ+1si(\,1 :l3pZNCkowE-`P޴ x(!P$zăY|Ã<` ؂Ġ|[p2H,|%@|m00dcN   cXviD0050( L d,n2xAV |vܢȲ~RKL& -te~[ / 'Q`mo&7c7n[Dt?Ac[׶Ji>Spm}06e+:@$|0jUuk AjFq[۫\:b&"Uͪ:I]TnP&KOncymxfjF6EWUz$=,opK>+_[KKdKH[>Sb3v3bhl9Q&,oXr?B[gZ]J>s_'"8p/ mȠ$> j̠͊|ޓš0ƏLmt-~`d͂K ly0Tl{{xb=I=37*J?F-*Zh*v#I yTdTKÔcG3q`&)x3zHg?9t)hݱjQ&V|®޽_n^zC?s;TbŠooh05_6Z`-0,HM-2xyvg<݄(xzzçWgž $~8kE\jGxP*'+9|Np2bovR)o.m^ϩF<ۼyӱ+)}oxΫ&ΗKOKHY 1Υc>0n}E0ޱG1d!=*#CY4ŷ݀W %zkVN7woabpf#IsaTdz]*0t0S#-+fAl3 x5jusqq--}^Q0tO`AhK}@Vφߋ54T8`H+`? ʕϸKms pYKOSvB=:=12 JP=]9u̢@UioO=:wH \2<  8:i3)P׀tl2Z2qlc l,w /m[loW Jl{ KT-B*jJ`[ K#mE*z[gB(0 ='P4A,FgǛ+vOmAyٽ 1 - :Zoe.V >A` *)4-~oMEɜ8{7{^c,lFΗ3CQ ٜ/RRtxz 9bkN˂- :=%umz =whci9u~W"9ZQθ炞Ld (Ct?J3]"w>7?<i[P>`VZΚtɪ疸<`?0[t'mz0f x!p\!`sw=q8|* hٱ,> D@㈙ҷΈcAaC̢%UMBuA)%h b k'<:K*pbA>Шrr+vO:[7P`?\afB $ n::˸;폻s̨dWT]G>NWT_N\nT" A^0Io|VY! T -U~\cF[(LT]pVuFFGbX"@OP~LqZZld %pb@*E|N:+MDTr`Vㄪ >.ZsǝT%}𱿩{ʘ[0 Ui_7/{u&ﳼ>Y?gFȾ gÇIϕU2{h[w 7ɤ3c7>VMgIr}=LCF(T>V>99f/zHصq1* ^( 2T00p 0>7!% HT+*N9`@| 0&e,5V6],[\Fra5 @A D6z@> *掇 Ќ {T!nOos7]MqF) 4 &E|s9Zl{DTIG#PY?-rf& oq:P5& |8L&so_%9}=-jfVTbԟKPr'p(ЉQdPJ.B;ˣ-i]" m·㖕+Okz[ɨOB YLr&i. p* `@t!ndĔ r CU 08ʑ>*X N[3;.%l_L>6HFH @Yh Ad뭙Wm _Ϫ4hm)A"ɔ6؛g֢wJڃ8ѿ]*1-h[Z=2Zή,;yqŘ.NeR45 R~AҒT=5*#Yc7rʍG3TT@>]$UTl,m{>q'a. 8SJz `ܳpW}R欣Ww| ;WWoDEʊ⃼1Z*uU< :/VA:.TNoMq}A 0Z~Tyjޠ<_ʈF_>/ ǿ7BRہg]KL*ҺQcPI(&B( CR:}n)S*kkP;n B;l?7H P;tƸ* !ʁW!*4yina̋-SCǤXY|lsfia7}$ w8Rz?X|A& _0[ ѳ֢:5'~JUg-C4]{QA?͋:(EqBc8VGaI׶X~ ˜d̎AT96Q)jb*OY1JIОe(Ԫ+#L@tgt,Bȯg)op$!_2J"x]_sZ\ ̈́\i!B3oxotޘZ)D0hq2Hg/2WQLɎh{lub%`|aȕ"#pHR, V#9:pJze.cq_jP>.xfwR(XcFޠ3A&vkFuP qeEH-0Z!+חE9MȠнXqѵ_nvOSy1 b"ڝ>l[h0@GXK^mDޡJ)32paORX(Yr+C(څF$M}Q0&3 8湁g@RJ)#QJLqcEuՖ %EP&7*ڊ+鰯(pj-,_(PoeISSA`;,eW bWV->qIa qTڛ2>ǒRu?9?'0Ub *-(AIBQWJ,>0Yk2[ 5d/\El=)ralXj\i;hXP'-jyΉ, (< [ 2[qO3x6j]H-O& # P/!@wB7P k]XMB'I4Ůl}ӊQ$4} 40s YۍV(Y3ua:*:AP _650 X>qÊM#f( dTz*1Pc@P.7pe @| e}( 9X0:s3{I-r{Dc{x'oU@y*IztoGFMfO3h}ݢvJ")~آdZ)FtǟifiJv$>orRY{S7:  uzo3M9iSa [M~oxR00dcP 1$OGc|)Ter1*G/hB+E W8 \d | @)LHl 6> 0 HԎ%*P`>q!b@0C`e@?.6?񏎃*/. HA%a+X|# K*`?x0dZ >XP<A<a``<b@0*Z Q 'xA\ @H 7qw~TN#  wyOnq6^] .cjZeSxXBb URJt }@3&xzƂ)J @:8jQA nV}>c oF`f x >*G M1 O8H*=m°*GY:+hOOEo8f !y){7?V  ׏kla!P:@_x` p| 10 :8\d]>x)[qU`Ъx40 #Xf;k3Ν qg!h`O( b׉V `bMH:@`>jHؒ6 ,z_vVc!c6/ ީoTtEdwEꮘ;S_yk˜p_ӟ=3 r!Yr ڔ"Ђ%x| _zg՗AH(hwܼf Pŀ Ǡ>vy8EAAD^Z \Խ4EP&^"ZcN noKIa,FL%}_4\0f׺}&Bi)EeDŽ^:3à%}̫gva⫺qux˾'x>KmVHu `&p<  px ? ( åeh c%0` yP   \>}%@>V p)JGv1(@⯃%F4@> |H< 9`ʁF B N?i >qpΟӭ?ɞmW#¦ T>~ &$Yo^?Lꇣjol#Ǣq^  @~??JrQoĵjn_^tHk&P.?x~ڴ| > v ޚ:E|gBNO3?F2$ zt i6,0+l.T% C%&%@( PxHPV^;T ` h:攧Q9"x1$t4ۑJLgNiyCVQhBb1JC)A,ɦ^D'8@$+pQQZ=駯L_P(|( b `@4H C$x\K/Wzo_@` ax PA~%^PUZ53~0x 7A< ` |İ?VE~!AH@}_b>%}-, /  <0~UO2AאIbx|A_ϩfq-^yO1ĘÆxSa2J=6$)A E<px0!@j^AB :"  `̃ ^ "x €7h.adf^OEgW[! jA,)6|qlFpR `H^o8ƴfZxά N |3tfŠP~.W+qh1tڒ`G`uȽƄ\͛ѯc>cTc\3^iGgG F9fO0dUpg4l)hYxǽs3/T4k)711c"4kd[a6iiF x)^:Sp^y].)ӎMW|hlڃ <SGޝ/ AtnG@ oMQx)=;U󇂛?]9ŇX1:CL3U7A;<ӽaRY`>'` mDI)5_5OP5A#'VhSLQv\R)=vڠ {5|({5NqSI=&]Fd\|R I'{šT |p1hNؓ ܨ^pISGlAd?TI?n n<멒.+8)#^ cUUtl›<){a-sw 4.4Z! C26| `0 V$$5|(՝a, PXp*>G՚ ZlXH\)0! 0`_A09A0}/$I `FTJ pã\~p^A g 2*|JTl`SĢYp7O_4~uR|(?pSP\r'ƃ@0fAyX&bx_p@?:Bj 4Tװ8l,چTAf. >JVUP8V0=v>0W`Q0  ?Ӧ$e@0{P$k H@A7"SIʹ>);}Fs)oYI00dc= Q (x xD-@,wO 8a)pbx>oPe@2`b$Yp+pD\# }R)Gǎ@?zY?8?'8|!!|J\\%}JP6xa<%BJm:a#@8h8 K!L x+Q xD/€,)x˧uX @(TfPO|/PdÃSDPcӴ |)x0g ϯufï;&p:jp|7`Qe{}U#pY^ucL?eJp~޹>p1μ["t2q+t07(R a>`|AOhpxAŒqԭ mA@Rp7m7AbpEx>bYTNp9dOBϣ@-4#˕7 o}dP.e`%XX6`հxİ|h > pA0 A3X3D0W`PsFlzM=fi$0 &LqÉ`F4H QdP>W?@ ߏڰx/<`@0@f<01. >`B<o bH<0 gP;Q5cIx!؀hYH8 dGq0BX^hŀ< 1,AҠ|X@$Fx(@r ? H0P|/$+W@\h0f: A?݀~X82jZɐbo:^!%W1HI.U~IBO9 IK#AA,v#0xĐa J< ?00 Kx <P:O?R`SA4L`IKD!M4jCm h׌k~HtdtGevEBq ] * `R^QUx`4j(L 7g* {5cT@3&Ec`wJlP׋5Zb7Lᦚph<8B"iXd2 bEM֌:0:D .8dۜ£#&2VVAE]8Ƽpd"˄Ή40bdu\xr*40\mPsCDpd+rTtn0gOCO FpҞ J Z9hlj` &pf)@Abos:ftt\s˜"yUy\< @$bX(A@x@ƀ=E 01 υ s˜]8#,Į"7 `2BJ xİ|/\"i`搹b&d B > K|0G F\ ^ ` XHI!L(Na[*@Z >3TRζM00dc$Q݀ĸ_|o x?H HSP0J P@6PĪ(@dX>"@J)tvP<@A^Uc* 00f t)x \w>H@C m.PQ`ؑĀ|B>OH#b|?ްׅpYS x.& B=$(H}>`ވJej Х S?r `0C8tà i9^CD!iv {64-{=־XD( |C:R320|ǀ`|T><{(} 6O9+ 6 +z5>|3wvi϶7lGG#@^8$Ƅ<8)A` 0j>liW!U8Kfwi¢*Q~$lP/p i` G`ؙlgt;릪fެOq \*<A` >Gl>>fc@$|XB*A0T>M3Ce΀T)IOiw>aQ{2"6(iѼd 7M !e^fɁP x~ AR0Ȁ41:B& Axx q( mAx Dyp@pR0˧/]E4lt}AǢ&;pV)GoL:302< 6 ~0`<`DD"\% * %`3BPH@$<*AN bA ZD/e #b!<0#A4x<̈́ xĐx A1a(j XBUG >$\f J9p<7PO(b(>`-1pA7@r% x$EP`<* <c$ ,1,*(P|4~`P z|pH0bz̷NGXfԃ$n0H}?Dzqb#{_{˜iLƁ ;/zA8AF\?c /GQ(57|Ax88hxMOx:4z4'}N8`Ah%7L3O!dLB,Љ92m>48 @976.xB;y}ϡHjj] @1B+"N5狄{]~v$|1X)Af €%bI笁p|`l 18f6z$h & &&H oz` "P>h?j><gXx>`p  1d_"/BA` f7 ]00dcuR  cZS:vvw߻N]_ηt_ӻdwO/W{j]{_00dc\R8). e pI `>@"%P d%ڦ>}(Āap>*(2({P_Se?MO(piA?@B | g`vCuE(g!W9O?OG ` whP~ 'D0x=փm`ǾyY5s i=ŸOЦ phx .MtN| d?@$4 h06A@||tOGDSν ^N=R_o z50%xI\JdE*IsAwa3 +'̝z ]݄BWax0kr#JAa xA(p7?P)  FxH3x8D|x8#w#@0(0Wmzٖasc2s'=Thtd~1ʾ]7Đ< #G A?̀=f'>0? _Z'xX/zJ@q>€Cn>#6{X(y~SWiJ! @>1p a?H>?pf-,K/"X<!HxOKDG`0 P xA!@X*ReS%B  C6"+PlT~xC " @,LJ>Gb; F->$c,nm*\ ldyintg~ɠD@<X0^x(@?,oxA `R>,52`< ~ `X`X4ozKa,f;>.v%l$B%'BPc;`|4,B }mSd&:ԌƸh6D1a౐1a);]0%2̍ ! xZQ=G>--P7A sCUvWĀ$h ^5}>g,9|oFwƒ@>4g UX ț>'> 2C8>l`>  _$rj"M6g@ = P>c +pa@fhH0d,6 `:0PV@ǁ`~ N!s83X$?- Ȁ%l` CX>`m0XXP`6>ǀD2|x%">b@0`O<>"` f *@|ۄ;,$Fل00dctS\ P1+ W UP)a|| 10+E=O˧`GGrňUam<$Y Āe X[9G}P&vru, -)7o@U \-€FpJuw@HxT_AI?|W opMA*S: |(Λ }(<*,[al^ Ax1 -jbQd0+`Z@$Ѓ`wh*K{tcMW՗Ex"ZCR+ mPc:pCD4&d r |cB:tј:5eC }g LpK@&C®< ⏗On@)bӠ:>9W }Z^RG$b66 tЪ9D6!*@zHQH2 AQ vK! i raNý4aFC ,s2 i sSEH؊ePu\4G>=OBxK10:flj4\N`<5 ! p(s@gxd]Q\p9x1nс YpQC 0r1OCᛲc+ x> o! 7ɾxORik:&x e2م@Ѓ\ӢDP[h1yAMjAe+?JDaǁÁL 0ĿY NgF=0pK  \$PmrwBX1)S#g7Pǽ<2 !.@)II}0ձ0m:p3 ądPD*Pa*H29lh:'= aj~ PDPxAB+җzՏk`  A|Z ⭳`ka~X%x< @~]obL.QĴC `@/V @ AJU{h< }hh AT ,2#0(A@MȀ-t)jHAF%=dt>$6m%Aġ1Ӕw'Od"}9P vp1;9Ӄ=QҘCZ\9\0t Rk 8:xVP 8 i@0;ӁߜƾWze55O @$) x(h(nx K -PxH2e&İ`P)WLMA  q_ܪ5`?W1_ d٤:l Ozyr\x[nijiZC0#<$wd T'nOӑ_3Ð`e$Jh=t3's;o;~ xwv 1sLa1ڢ%6A!*ghdw2&ﷆ;th@-9~;qg.՞ɲ{Ƌ1gw+ m+= u P)){ qsF>A̔{,1/&Ṅ~{bˠp~Tb!33t2 BQ0Gl>1MG9Ɓ6PTL< ŏg֘]kM7h1g/P V1>ICJ`fZ7};#ۯٺC1"y7 v*`nb11F~(^ ™)ϝR IDz i2&M 4=HC0x|?`3Át<p+&6@Njpp5 xƜ f614.un8A~VW&3S osi]Ɠ}EU <} pB!tA 922pb̦} ڠgOVFK d|#LD!2I`DŽwA @p2*Pz,zrϊ} {ƆAd鳩|:&jR>F):38Vh)i-b7=2{{~JrVƿΨ52x2wYtQPxA`:t)`x>ev;=AM"bH ׵g%Dt~+A =UB?l]`hxl2T٠8 s!LE<ܠ|Jt1(O&9G$JL3b<k 0҃(uw7tZ` > NH" F_)p1, İa|(1SA`*$o`<;2a$*p|?D 2>we_H̸Ip*F X(ˁ@ilRP>oE.7A VT8J|/hxT-|Q8>PuUj `g4 =C>kp @?0 @xJ3*`_3AHd@_cA BՀAxHx3 `fgf09&5`ܫ^> 0?,e:LYg" ?\s1xUa @f* 83@_8\  m\h! M:(x>j\f ,ЙVF8NomomOۇ¨0ڀD2 y)@`,77 {xQgt&28"V:"_ĸ^<pp4/s@P pQX3j0|^   wxZ2]Ou0*cSig m^!fp2Tu熏}\_. HJf'f?ޅb ~praD0{Im # ՉâpЖ;xC ,0 -R Gˁv->T-̌L1  b1~;T0||H G`@df |)A% h 7NZ`pvkD t3sos1 Prm:`zSΓP0>ʰ 0b,}4P~cT(Of$@w`U%V;VZz `<+hP(A*x,Y+ 0>$07`y,/%/< imxS"a\@68̀' NCʹ?rD,ր}€Q0҆̈́pQ`?ǃ`!{s toX{lN |T 7! ˜8N+X px ibj ,~ 2~ #pBDx@0ʁVA` ^[> x40a >,X2 (A//. ?DB 3`İe!K@` S<``>$ %px!4:@J0qAc`hAǠpThÀ@ t3zBz6L(O)Io{$g3 봕2TG]% bرUAzPax>'ժ> $jİQ6;ɀ ƁR >%BXx*˜H`mP0 ?A(H,J_x@tgPAH1h2ƀR*J㏤s^-^E:)>|(1;yDԋa&4 `X([ap2 sǗS:!2(OxfOBa^KD<J \:?CQ24xh-8 0xq12w=́ (>Gb0P0xG`CK,z< Tv A  @|H0!P!G7x^l>$ X(Tǻ1WXd|(x0dFOF1f^dO_>x(c@!SܸCs6Ν84V181`ѫՠ|8W B;A Be XN  +a>)T'IRT xdO a` <@QD8%x^7hdsPzb{A0V>T >4Ax;ف6fVJQd?s(J ad5|8 M)0><@|?D2xm>\F$ <pg0=(: eB*/'fA` pB2ǁS8J @a|@TE8xVI_ mf"<jB0;dJ%qU6)׉DL>)!逨z ›S@ÿɕUPIO!ƀ?> e``4;&T\O` 9P |/@5`x08cZ/=A ex) VPa>``2|#d@(>,d1Q |SS`€<2. l|?F>eǂcJ DX>K@8(x0aT @jp% iJ|h^=d=p/>?5ecFx\WFߎ:搂 wvܼ-kgRvq7JZδB]P1`g00dcS rwᘣ43[0\>qA\rЍA>=)eL+(`Ph&u7G ]`fQ78S2lgbK0w&ilѥfg@d0< 7>! \sr֒ pЎ=i܆G}:+2Q @ z|K0DL 9-C83{t,ޒGZM k-wd# l |%ꁐ€$Rb,\0>Y>0AP<0ɋ2-ʹLUmBrg;NrvhdÝ`ꡎDyo`<"G+;ɀ$ʁp#v` AD#(f @aCfP3Tb & a >(J|G(xccnDFF#q՜VNSud(Dh 0c2<}L1ˁ̸! H/T]x CM cӎ@b@a,H wσՀp(""bBA,U`d:jԠlr2ѓ`*\fLbuN0 [1;4 |@&iX<ox/ =_/R,* UP0P0 *17@|U(e` H3> _}@iP eC°x2Xzh2LL=y 0Y,l0 ԳɷM[hh>P1 <~0y/Ճe4ITh>g)g1 13n RAEX?`10a0*{Qr6`d6@8U |/J#u C<\% :Fp|84$'WuajdL{1+ C`0hp N4hJ ab|UjAX4`s@0cUu6pͧǀ$(H12 n}G '6hX6|/ء@_}h2c4䙲g%Sլ2h2}Z'"n@V0ճ Ch&sk3ÀD`h%`2 dF !a`sNuS`9%K<0\٥Ð C!oz]1 =p'45>?`s` cKДâNN Dm!`YͥL_|H

    7&cx'<[Ghth؈;ޝǟ'm 3m`N' aB?)ѭ!>>38Ĵl\舆nT O'@?pX 5T9X>!L<ᛑ5O8vp]{i=M*ӯIzir>f96lf OX90HD>ðx`ws>`%1X3>t*4ET㫲{Ơ>D dGF`mOcC4s*}BL:O *O8ifͦ \` p0\v?€4e@a`x@p't g@\UZ R yaqǛSFH `i%s*&kz}1O8pHUp2%VOza<j`!Ph~  T|fF8pa(}j o |8ĥ`4H/ "X0 #;;P LG5 a :q&HӔ#0eS Σ:#>l0}ǂ@p61$tIx@)0 h#|(A"H0xĠC<5cd.d??M${;އjeϭ!Xz!H܇G2HL2{)+=Ј 2F ATTCGĩ 6$,p( K@2x$P3jA`@` K`߇x/e`ǂh<a!@B~0xD4x@< 8x0Pz8<'`0!(` wL:07:*Eo89ME%xކÓFNC`R /6t|+q>a3T qt1"  tw(V3jrrMIBCV_ꬻ"? ]C: K{%WoK@8P0!@`4JD/R "w@:*A 81 im˝c`8\cQ='%2Ó7^2AHMW=T @|oIӌPTGA`JA @ KUB?TA?H(@[U@,z }P4ħ>7:Gxf9uр- ~ <-'H>_ivxa rt:d,2ɀS%Cce!`P<{5<) MB 6p|/{{C_``n4Y>_&@:̓W@0"p|>7MFp|X;*H Ju|KnuA` {|#|?NCL  R'D:>Di[ |hNSx>bw[p[ixS|OxB}x R80Ȁs2 c,"ރ!$ FP0PBw21*BFga2<_`*с#c->ncr01(ƧŴyMqSdPL*Āǃ 3c0gH<<`e 0>lcmS00dchT wW[W:now{f]'m?nں_ޝnztO4V00dcUv‘F{~y `xh~JK&I. d&'?0†KP>FI8g*0 U <,̓?*`=H>D ̓g|>i5_`R|/x-$o{M=! DIc h1H&d&wª#@t ^%5@zJ%-ẍ| Lax(x` `A5T<5z \#bB2P U JD`h!   |G37,~?@J?` <  <` I0P# `p`:i؎S bc˜I320'!ї.Y:޺#} t:L\%OG\w[xѧdaQp9$xG`>0| @0.Ԁ$ i1n  ʁeDž TGiI>$HY||rǻԠ|޵ iuA`zf3و;z|(^{8d;4WzhFL>CwgN=z z >d 1;>oxA@A C}xxVl[ǀeynq7R#Ft]\uA=00dcN   cXviD0050 Xi4pxAh섓زSf KL]eąX%R N[ʶzs?A'[䅾5x" #\۸Sb\ `wqk-?n>-7(?ޓC%sWA\n3\7񛬷g4 9nl|kEYhFK yn yp"XQmzt%֙E0*cBڣ`T=dbL{C. |庲9cJK[CO0G< [v8Jt1Sjd"Ekm}CsyѨVH~bBSV"v9M"vf[r{T9?DuFe#V6Ѫ]]:l?9LL.N̋r6?*8ѐ>Bd&-NxGgӐ3RZWFڷBGa f:c uG)S Jv= F>yA2G.::pJ}UL>RoLmSMך@S 9%yUEE[†3.=i b*xnFR< ^Ϥ:DڡY~ ?崠BKq2ZPgo֯6=(VD'/t,g˪!Շ)DH";ڟpchuƉ@[ʇn렩 Т'2[o*~&|-٤=7acT'asJzI_P Шniq'3mQ@ƔΩj}m\GtY!N7lpkTX8䴆_ioj.ȯ,# 5@BO/9x]A0:83"H}#@׃3#I8re)&KKYAr@)7ÙapͧڇǃQO38hi$;yd{!5~u+bFA`NES*sߡsn^.T+i2 2x?@-,w$eJNm{~4. \o46\(j bP) @Z؞DBAMfx^0x*8IjRz¬%M5+{(f5q(ßpނjk$rjGT ߔ^6c~. '}{ņ`#qY0D¹r02?hUkT#w'1l)tW(#}8 8E{);+{,z¢ ~}ȏ{H:@Ǖ-+D'%JOEE˄s=#A7y8[Q_otNX{k(w.t-.Am_jr΃OިaQrmͿtۘ[k2=0K~֦AK߿Eaj\-.`Wq_B).c ;-x}zޮw&cz~BcOKj*bz5[Hc0.&eՈn1Ox|A7Ŕ'l:C6BZa`v|%ϖ/kj3hCW%Ii-,N Kʸ, ֗t o9'pD+#>y Csq5ȁ`!81%6f@g}sf:Ob'kF_,d'A,2(jđ~6z0x:!~!I /==H⪐UsM9rO܂Es:O MC2s I: t:Zl3` ަͫ%wug!3Z&Bi!|,O]N{HQ^\w"<"W(0-ֿq8%=۟U8]8K\]jTEYTC;Ͷ!ukmYdubz~OX/{.P[mE 3YvebȈ-cqb:j?vcߤA-5a?rup\MzWkH>ZIjħެb4 9Mw:DmSyO=ҤcW&>d8)vZjŲH<`Tݼ--{GwelK(u8_YqNxQj`b aaށ5R\$cu+Ql:|FG"^q$U8  :ƈ7i\ lUÚ<07.!@1qٿWއm)H ঍%XTQK8t9.q@%ͭDPOLmJhS% E}<N-&}:-J~TKBUzHa"J;_:}5DͰ>]łd5YR (룭9=0!W}S," -zxEN; 8"KT~fpT@Z!\p[{l_SA=/{W<ٞ]bw)΅GsQh f/nyordxSȄhL+E!K`pD/Q" #sRO-b99-Rqs-F;(~m?QNIۤ"#ֵ] NzeMd5n%RZW<[VcWj8C Bl|0>ӈMosȄE |=|y <<VGZbgk>fIW")F7A9Sj-|u"wZ'ܿT5٫@W8U mt8?{(Ywڲbg* ߯`@Cb#ծtlZb$>W6&ɔQ|$BM_fkCرx 9#ݹ,<8ËǩL&eqb5 1jW?Aj|?Z+\}^1lfl*׾>vsʗKtTjP ),~ǿ;Do ;)by9G:D5GwU< q6\e~W)`$v=!c/r [H`<?ZF, a7[aDe=.z¾aq}+BcyٖOoxT(/@E?zI ع.WTL;MT&osJ8+{&jg-U_Uss3r^cNifEhJC;/3HeT݋ɴ>Ք(PhU{\[4lWQ| _1")t]և? ^H6i]@-6E.@C?:kʡ 2pN؜\ -ۈ .ihUTƽاV!Z.Z17O6cp]k#㋷L3߭yѪLcLBH {\݄%Ey EkHٺG$dl&V _TúdEA:8XtZA?u14,!v (]E܅7/]c[<[n{H=ojX h%#-2ޯ5, }nP~k1C<5?}O7Pju=S;m"f9^T@i)b7;} f;e i-RzqSV-zA[+"Tχ>vAAb٫A_ПVOAnBZcnK Bd0ފ-5D&e '|Ζ[>QxMB푫gX#o␶L>L[hA @}Өncꊰ0$CL~AG[O3- c!Wu:9>XժA}dE]2k ) --HhyYgo;ix 8*|Qdn1*#UlbGHK7,P'mnb5D{mEH{J]fA47uG%Q`ϲzz %mI%qG*M;w蔮Pri?}t=bjے=yǮYu".ײ'-n"\Le| kZ!nPA[~-&~mn;7{\ЊTxWL춬C4M<-nDze* ): Ra2mq }u"b iz yS>t?|Prht#( uJbb V ڦ,e6^].mhZ~5<:2ZFXfO#ku3;pa3v\9Zư!LW!R}߮(AMQsvc@A࠙7`U |̅4~݄a{k[nHJgcM+?kia5y ~a1.wm*xL4oNη{~Vb oEeV6eTWzG+)ҝ{(y]\ߊA Ө` MEcaM KQRYʲ!Xf6ڥтDQv@J92(UvGwW0X@L7.[5fvpC}x6on[oO00dc Vq8 1`ǘ>c@S/IƷG( ,11`0$BzX-/q  CPF8D}CH/a恎ME4~ <cj®/(l8 aL$<M灋7 ^/:!.t)A@ A(iݧC*5^%dz MF єugAN5QêY=s"cK<T]Hܼ`|8^vAZPE]Ǧ PƩ`?0fqS uH` t1mP:tM #1˚ o 6 z @a!Fzj|KA"' R@hw TspTaLS||zy':2gb0`J(0wc^C@jgU@ \ $ pE€4 @ |%ĥ@)Uc~p|=B`x| P@1B@P9c[8'ΓD;Opi3QE{F iϜM'-9)k42Ope0qlR }< k0 L%B0\1h92hA,p ^jA Z6|~<$ 0RP1c6 !Cv% e }X! x P>k08L>/ÀG5R'FN]1ISӄʹ2j`cя9&;:L >޵9`KѲ>H^AP! B0<$ T g2P7@C )N`5x?>/ s A|x)x Aq(H3:ݸ0/t9cL" _ 3NA#o{d}8쉰h``!<'@x `0)I(j? ƀK4L |"X(A>9D MqL>Wͺ|/=]'a+ P)P> aM xHA_p 9XX@<8֚l <E"4`lh1̀ CA:|(| #άDP!ʀ)~P7G թ>Ȏ^:A gTl2Rʹǟg~(F6 `c,j |tE b((A` b( AbX b5 p p`XA Y"=2h}x>$XEA > _LP|_Z>F끜 JSiY΃@X.$עH|xM;_Dx*S @\;.U(p1T=|HݑZ@Hn0d+D芴v ,KI@ #`"4R%@Q(>s)#녲V8Z'lǢ.-!hfшeP1K|5e:&q:ޥsn+@2;00dcRV\ j` z`]#uj(_ X$c_5`Op46#sv#4naad2fsu:,Í @c1ȍ HxuLATscfob N7SYμ-WCzw]\}` xF ʕ<#d@d>T#x0>, U^7G:m28K19:4D(> p`(#`Tp(:%'. @jAl~00{n\u}T,$hA?T?< 0Sbg}zg CRhWg,/ R|[c/NV `k-gcϷCMƟ}eoCS{ôa#X^R~=| } Cx<w⣢9x>,#x@2A> GA+D @tP F`nn3 Q+t`7vb79vՃ`T1@`#/L@o|=H3/ =x|I0< R\BB!hA@0 : .\RBGݧ ks{г&Z5`DZg9'S9 bsx3_v@3@Dm}sX1h3ޝ^{u^N$uWwFx.a@>t(Z`;&NI0g>Ճ@M`7=:J(dMdY92>--Pd/s 4ؽa `IZNuzVm9YA+%c i3n% 00dcWkxX0) ܼ|pxA$60`<>TqH3{%` A02 (Zo0xӃ@" |u`gR~%@h KPS(%Y"H焐`P4B($`G/Ȁx y?~?1$`x1L K2?40nՆaQr` TP vAoDald}V6]28H0fbvBB V9ao & لch$ @|= p&q]&J0vc4,4b ,\f#5v2 sf0 ky>MzJ;!Մy=dG(A PT;?fa׏?GiOS]E KÉT 4d~]0=>n\`5u<) *a3x?V` x?4zxA@A0 T<`H0FU`,, 6 eKsT/! zrJi֢gǤaFbaSbX` P@ S!`0j#a 0ԍиxS+F{ }=ϻ$3 42@,[i' d ,|J ?Ġ0`SL P|A?80%h  KB @<co@zˁ0x(A@p |B%>,t @Kzic׳ɻG"F}b$20 2=Nm^˹۫ۤgb@P>,TDxB * 0*(D` H0f?<K̀-跲-VSQ3V֠c^ݟF|v9>egjurI݄+<$H}BC7lx?J ?xĀ`<$xH@DP|Ԑn{8B<P` 0e J Dǀ4!ipv8,_2?g2"|(L,LrR[\Q>DLίsr݄D` sL606չt=}> q6':![X>4$UrAd蜙uv}%e _j2a@hOlV3oӻt Nɱ3p2V = >oibFY`{ζd;00dcW7Z/w{$?kYy77+1Zh:ND;}.O}ݦznv۝u-tܛ{N<ڱg^f7MPW}n=4W]ۯ=IՄۢt]X#gs{['Kni5f^Y_3[۷dw_yu00dcXe k`!#΀@` zڳoc ({jgA0U+>la4__x.V\>`xM_ 5&4{lɤf4:H3ATmλ0  t/A;8t^a>lb0AĀ~ xA L(z q䴞gB9q!  j` [ ԪhKaJǠp|X^:ez{e l~iMh8i a  ` d`\0 > `g*SϺmW+ꔄH^A\ Uq`R^3 >4A 3м8TO:.54}0*6 (1a<'K\p;x/kS p1 :=iMۚhP|8ޮ!! Ճ`$ AA?/`R|K `ʕhP<P0 q>WknaNnssozd+j8=mP>7aH !0C ĠC 1ǃ*p0@@0fE;m@p`*eX 1 Mͬt[ RS#bi'+n<b 1LJ@x0oІBĀyP!wz p|O-V$>@y4&鞘{JҲcA :. *RK :n$] g=WV y 'K$CTeؘۤQl0 U}8N$ifަ>$:>gPg;nɭYp>$OHF?seRsI|hV></nXp|xz:M20 Z-Zg [AB@vV51L`*Qyߧ7dv+ 84 &F00dcX/.?ɀWh1(leY[26%hjtd {,D"lDy2e x8\NCQT70^'jci׀=ҶiZ€AB`< @`H>!MK(1Ӡ9c1\ESfq!,z |?p朁A Ān$I<3wUE.CIƕ1$ǹԩxLj9Zu<7*(0( 0@" ĀfQ@X>,px8Da2v>8>!J|v >3s=iNr3Ia-ᇚ`et)W Q2€ Db-DZLAİ`8X6|)aÀ,˄x"$xHA sp`v # @?h0)J 0|N/+dȎ1'Њ2E%ɌnNe3|84} ifڹ# d@0)g|A?A00 L L~8T%JBvֶ"9Xg_vi I=АȃDǨBvT*ӊ9+W uĂwvaAAx ` 'a0a#b``pxA<.dxA?,G@hx?E x(` A@"<h \\^X<bZa><.QuS9 :>Ozrt%5O䛁-DNcgMCϣYnl21[z]  H8o <`BX0ˁd$@>=1 hA?& A|xA"i!ri=>85r0b97~edM絎ܿCgta4k ϰzSGp\p^ @pp% ,p|xOB0(`c#@@4G"Ցj\^A_ E@h`D7Y\u =jzy @m bvQHfWeeqS4|O#tBG(0du".€,] Z@"@ sP Y SɃ@LI@Ę*,HȀMt|_7KL,t YA"W<am,;ef&cS҂f'hN00dc Y_J 7^`A$*|OE:;OTBIΫ a|>*zAR]Su!ϱbtd]:gѠ'1 Rؖ %(#L u`x 0DCGWeؑ1 X 9 3LL_ZƆ0P qGT |S=\!K p:\H2UA1|<)Z{'.ׁL|?V#aeA bwP1+(7RV,1 <2 (0( <;b6 *LJ 1Yco{P `&\8!4 n r竛,IM c$pa8 pRn@0KP:T%@>2İT NHe( p ` j#zR%ZDžX3 @2 R[{ ̿SU9SΚFu) @ V% |  xuHKрJH(P '{Χ)4"ᐊ^zs +\ u`_.dž_'=hQS;dq xb0Qsb2 8(@|mP (õ`0JX(( H(KCV` `ðP^H7?@"{› a@ R|xİ#`x<* x$ p#$J8; U|/Rri}5ќJwP>G <`_cBfxdB21% Xd5AX%X3)0ϧcѤAƹKN):hncZp@ ~`9:G*ů!JT|jま $4t!PUHHVA %%`R$x@Jc i!(< :,yq313 8$)Tj(\#{!(0)DyH 7˕^ zؐaNAaE@oQU8 0h @+:Ϟ čFdW2"xP4P7A/VD3x3€-{i .'UyylB0ߣ]|C!>'y&mw"? 8A^ O-@×e !1nj߇f}^O|n9"IP>ꏃ hԞ.h!>O8*< ! j % `_ a!G$/x<' ڥ "a X?a+0@ech(H0ŀ,z  Pt!TՀX83@X< :?ǀ!t| 2`I~| 4pP`D!v\  1x0 0X\ 1Yx7`( ?d(>,20g&2pw@J1@ËB!>,FÏ<2WS.JÀS@BR:kT =Y>'sdij5?SlTCw ~G*| `d!6J pxA ;Ja V83!ƀᐔ@c0XJ !H,C_,˜X`u4$x MP r|(ޤ%@x1p1x<<*ǀ(0 @ X1 `tx!D: B*@ %/ "P< j2 ?P(@8v\@ 0*=A<_ǂ@P :9WP4.PR1trm 0f5zm:>|8ӈE3.ރxh'Pax=xj_4?C9;E68FecZ`˧0f3c|2@1`bPx~80XÀ- j`P2`1gE'Z$`tr&25CcR˽&'aw&&J~փNJ!F͌n p–j?:qTPd<u@_ |ԀX0f f'ȉS W .. Jx2P1A€D#D.@C'3x*À)AJOp[#M ):%x3A@TO$A€L!Uvp7g|]/៿Uád zG6i.;L2 A :-L[ňG18h|lӎT3U|@p[X ЉP>,>44@pm9ð i( FPcd >,[2;&<I @jb? &HT {0@(@͆p>/ p'9P@14 ZaX3¹0c x).$z_(xPO`IN|A!~<(`|1cT> RS7z#P0,#tbx1 @ x_@(NU RT?)N@Qʃr|x-C|/İ d*ܼcM@>LP1-X1׋xE5(TrJ {W5 PXT"PJq(ʰxSD>'j3xB,ˁ< |ۇYc c0(1aġ(!x/,1uj~#p/vƓ9cpwgLHGC ɅÅ ɑx>$=&00dc=Y,x xXĔ!78X<,>o~RAO{>@T -B z `>o!`@?B% ?vhd *8K.L xOB`6%@Ip ax%.\ AP0eX2"xĵːag\ *bH0)˸Xǟ]Ջ|`e$A/QW*\'A \=ϋA2&GhBhc.\ aX."t /%,!8P+xKF1P0e !GU1jϪ0'@+]aޞeVLT - @ ,()t{e(fgz : ;o0; C' b Ql {]0)~:AKf#XU:_# W?ba,4$~ diP0> j3lׅ" V2'`1`NoC&Äޒ~%5|()c^\]'>` iInRSN&'=\0~q 4>c5s-ʁ$)$ L$Kb" xe1dSPbD2ܩ: @,2a<yӓ ‰``/|UVM<1Dm`Rfx":M [!m8R?yp2y]xɓ㕞B-M 7580ʟ w 0\8>χl$2d'š @(zP8FFA3y2.)dz ! pvQ1戀+ r/%K6^6Xh~ J7l TʦN< r$P6y_p 2#XT5pƜ3:xP @$E71/A$-65>O8OKA{^ʀ@fIR]ڪyv:T8Kj j p~>,.hQ ":; aFJ!Ӝ gCÐ`4 x yC=pt޹8|OH9·6N#JQpS9vI*%s›/8T8SȻtNqD xটILpFdU6^;D p)Ip bT.%xZEB| J[jA p uswB"7AOT;懘fb v??4 BP0UwxﮀHh"aP>DxGedZ!2 ``icAvXl> '"KC'SJc?Ψ|dĀW H3F20tДDž?dw'1yxmP4j>%Gl=cԘ}췦(fL`*$) 25KBP3ce⓬3+e5(GW2k!79D×~{WxvK_)M>'jtNL:"\]MA8v" COg CmpH'à@bw<)1z20JOaᖗ{7 pЄA_X< bEpxjb82|D)^%(B yCwAj5wX3#戆!PmU e.s m{ǜ 0]8dAM=7|> U!TaNxĂ)01V'U@˜SP*, 6 nq818dIFg[=JwmW8)`8#pc J)uB\L0U|2./R%3Z^f@0P !Ҡ?%rQ g1l(\twL5Xa@e7ӃAٴb=:> Fvx{}TƁ lz! ) `A #MA|}`S=ƜJIOǹ")/DaLS"=:OҾsD\<}uSD]ek&)bPTcLRxf p|M|OaN]%^9qЧ| vsӠΧ—]ae hC/;oC"}*<)  cj`TӞAL[w  Pk0zj&pS> sճ=2^vM&)'"=%<]~@ 6ɽcDvM 3{A9OfbƋspSȸp'SCz8}~_=rgqï26|z;1=B2g (yp0Y^^# 4 Ի@  2efk4e7G?2^WqP1!&6?g>\: &:=ԔIq(Cљ'Q0ON<c3`eP_pSKqKpgL7Ae$J~Yjw읠GD64D\_{]G;p)b>T;QBS}@18p)WˆC?[~8s8_y((H<40h p)T#L>EW1ُ6\;0 d5Dbg=@ }F?̀L-y b0@>/1cMLoyCG|g$C\0" '>7c W 0;NaJ:LOdvZ -f!zr-LX].* %UO>1h0=7 b@l.k mw da5 Ҟf4[> P0ѓ]iwJaG`8D3Lo,bVd"dlCB82s00dcZZ8  81TP>U1 @.ah<U@x>VO(x(  Da0P7`R+0Ȓ CaA`N`5`yXpK2`U `Gp61P0fox y ~ MA@``|D|Đ`B* Fyx2_@0`<$>P!Ѕ %Lyz*忏6a!0fPxHӃzR0p`8\py3͝: a Ga4!{p}!x108y;/Bǀ[@;t1Otň-An`mVϺs3JqӢ҇[Ͼq3u1^πK62Uulg`F >qÍa9 :)*`pSp|_ğ`Rы6Fƞ6m_u+є|6cdTȖh7x: elBe%"5"`(BJ<og:@* lBOsmы8=ٵo}:9ScW/#WĔrbK@"%f x uC|A} 7f}pu`U}XbX1(~P)XC6xyB)0t3zoANsl`UaBaҀ`4 ',e6_T=D 1$~ D(~.t0! BP D;P%A@1*c>b8Ǿ0 B@Az Bb!(Dx|X11Us>t-wiЊ;fqRaأ÷0 cT;p1ZNcõ*AH Q Pc]x}PX* ui˻ 5_&<4>=,&a6MA}b J"Sx 1Z6x 3>ywIݤЦP1;LF&Sfm1 714 -&m'>sj Jedf [W7@+S.mΥ8Tk5{k8nCTs.|?X|]'sӪ} b* {Ĝ%Z| D m5 C(rXEl5tN;00dcZ\ūp([N0cp^s[AB8z/L$S ؼj(Ʀ¦f؀+ 1,6˹4lA z(pL},NЭӁX{yN66ΛG_NtMgŤp,+hWo8atƘs=t1g>UXq9sbLa&Cnt50jO8n2&(*%du.mK81ìcZ(ZŝjZXgmou574ALc"[9rujZB{|6ڛWzMk'um۹J4/-[t Vk%jXx:aBn{*8lyy Jj,SsȞNmlle8% u"F2#‚=! Erv27ͶtqCY1ݚ"BXܶ9(:[ #L1wa41ٕdIr ¦2:ۘޅ-5#-a淏Ɛ=B"7>PBlϞd/&Ž'2h00dc [Tx x1  iGBHlЂ `z@ j 3`h6#Q/ ܦ xD`0 Z7/K 4 ŀ-Oyx( !ؕJ=I1 2 k,/ |z@ Ȗh>o`'a@^ 4|ݍQpv.x~Rуk! .Ae \qhHAx͌'R0{ސRڋH'5{a?lc6Dl׆{= PCOcz3 8f8v&Q/_8tc> PO4p19#[Ô\w[4=4udtexTp+ކ_b'A`I<$!x>j$ pUH͙v4Di)&><{ | }i-mo͜Ff80()X><AQ"8 {j`(($+V 0}AD`  ., `xxp> ?sh\mj#C 9ācqQ?AJ0hu-5tsEkP@8ݐ >!AF bfAH>d`x@P1("P`l x 1 ` $*b@cZ`2ڣܴu= 6|l1@ 0 a!PK` | J@`AP)?xoOyEYPx`ك?W$-H  IÀ5P.UvIpvtF`IC9D ' 9H,|X0 $cCTAYzK@BĠ`:y} %D`,H`<``U!/V;p @`<$bJ|9x 0/d7{o(ɂ^8`SN;QdTժ);x>-!4 jdW=C!qhϮ1caTñ@|`8 %?*A@,c;dl\ ` ^ tU5`OTjyx %}R7&)=0\< `\ \$@ p| pH@lU `,Xŀa%pet)e4tHkⱨ)N֚&_%#咽m\2s٭$8?xAAcSA@ j9#.Iϣx6id" N{+4oMVh2{t4EDoĀZ`jyk8>@Js6L;X>g.zd<F޺6yyx0i!o:-6zɜ"s`p W{kȉPDc  } e}00dc&   cXviD0050ј c`x?A |@X4[E{).Yeuϝ-ZR{?a#ăF}|זji[T@L|pUt/-D"ܰvp }8ڪXgL-|2%5 Fڮ#ymTi*TY(j>Y]Xqe~,W5W44R)5X0m"n!kee7Ydkɪf~%,%w~곚 4RӖ4?-:"I# [qbj#6XcYf֮iWb5]IjDQzE9S @x`seN=zY)*5ʉaZn8 g$ rxC*,8m|h\/BwJ!_os! WXo*O&`ބǷ瑩o\Fb%&r`[璇ϴt.z"`pWF'SNꪑ[ ugYL], }wMGIw=LBٍ_nn7K= #ه?{VX7& D [,6 ̫ ICzius톲Q@~g}|dzaI!Αs 1yg닒 VOGn`q_5xE7Hyc yCMwփr$:p,*y^,ځ^x-yT-als]T 2hfܢ92rDG ^n3%vsFs(;|T0ۘX` '&#oczݝE!5yK&>52N>OZ@i5s4>YJ0Ca! Ml(H27tVO7PsBmwpm'\3 pZ_/Dǰ<}kUQW墚 W#M֦ڌǍ6_ˇ#|A4!E$%2ix0!-B엀 pn6lmCWԆ "pjhBhpj( a~ͽ *ղ6?M8P2_/$vk22Q_va .o( VET+@rn Ka`?ў,SǼ੸5.Oh&&1֙r}…\|yQ&Znǥ>ǝ?AmvoPi,dR~A\TcudZW,0Y à0(A3p $G^/JmHpp}eSurQ99m2&`&497P)BP-+=`H4%yYh1*T[/ҕJlEM?ԟ`aHpNPaxl8ЮF!XH` <:`,}#0m'H(x  C9G\U"RA l 1I. +i+ 9Uih H-o~=]_Bɓۙ @]Fh :#nJD=ry1酘倳Zt'(4y+];f:5[)1*jB@0Kf^fCXOotN)Dʶ7Ra -c& x{T|2EEq#°xDz'IAEԣBJ.-*ZB(0 &GjVmf !DJ 'J ~xF:ӯdf&AXHp2pʐذ9P8(:#lө.3p£ܢT"jd.-s2cN҈|Jx1?,C"opQD[ !y[Sgh]Ekȣ+y* )ǫ:w+tAZ2SӋs~@J }@7H > +^@ H702vG걦A Bʲ9$ ǀ-9 T}Jʦ%> u2H$F 5MX>!Q%xR#U`66<=h3- 1x3}W駤0GxM VuPY_򮊭* XNTd#N8؀&#Ym ,Ln_?)z<<&Ln( ʀqq=E ##ҖR}Vr*'Naخ+Mw:V?KIxvi=ۏaf(m>Q_(._t;$DbU:|.` "hG buDfs0.c{{yi͹h%7 +.1H0ZlRFqBٌ&3N_t-pAi2t<'͚A9M@"+7+ݨ2z4\wIoĂϭa7Q)LR4cQ7YjN Ρ%z/֓_G#m:]x _vv¨9;=Gڔ$MRQB^;H,0"5Fbo`'ĴEW0 `'hl*p 崈ǔ͢:DM `P[e=3zMUZ'PWXzQ6+Xr'@1 jڇ^W˳ BS{I%+ClZ#R}G >l.G2~fHg8;w r9Ҕ] |>")6MKC-Ȳl\؃}^&jXQ'5 l$H5 K?0sShb/-]YjB} 0/~)σܙ j1vP!EuxaoD0sYI䁹hlyG700dc \Nj(LC {NtA1,G+-!) @ l7 iPV8>dL^ Px`h>TD:>_Rvst)>q"㕍ixT` {=w_5bW<\ `FCpv@x>4px8 @0? ). @(px4;P7PyA%Z0x%h>o'ixPd` ?(AB K6`3H 8CYM1 b>FN_/!G6 lg0c"W9)%s)01J0L?g2e@K3 HTrKᄌ=]3ǁ$axC +hQtf6t% `A1 04@?#j(NyP0K`z `|oD&Dg_Q"A\>iڳʞ hOIy=X1TᖤJFz] б}$CLP*Uh6X ^ 5`àx(D< P`S|8A> @ J 0AĐb. x0 a($1 ~2bxD@A A 9ej?/x`qP0)Ajx ' lx|\8!% *AJ\@ˁI|-){%*D6O 'A&Pl1k 0E];*qu|/Th)*o%B)ת@ABT%|=`̓+I T dot`*t0^DyӃ@P hBZ`x@!Ap|8h_ȤC/Q%P@~M/M;LTFO >lHN&f^:n:-瓪=TGX\ )jJԤd \'O>FFCUb#6Λ ˃1>o)A0!@@xU@`P`y`%APh<` ~ x0 J@&  T B?bX | !aN s8/h@0t' J4D<{i}46uI7d%Zu#CDϥ?&6]l#ve.Ll5:Yc4d{ h:~+$ܝ0tI%x,&iY'Ȳ$<^9%zki<i^u#L'lkR&u.B~$K"StF%2`p i3z}0|8] T#F7H9c#ɷc3/s*xD%I^zdykОi5'qB=g 'w` 8O:5zTZm! k>Zhp`` l.l.sA'xDjĆT1S`_83()-ph%~ c=gڬ(2F7p>p8u`C%lB@zbU` H<.U_p2e}}xBy{~F };\|P>n.H?ДBmɖ8 A>l4<~ 3'F]N@ Dx(av @LƠǃ4iÀ%$Ͻ z`E   3 $Ԡ<AlJeymht a{&?%LN^фMI$ FΟVa,e{i>00dc\Wf; Bb$uPHS 0=L|V/`t  cIp>/bP2>l`4~)``f=4:S&!1 >6a- L΄!PF`SnǀZ8{s4d8q7G_RCB^8 MmNk47 qv̬קqZfs7U %/xP>Da up|85xj$iBL:~rnH>mztt r p @xˁ A` `;\t8~籕xu'p4 <ihƳ#d9x_A?~Jtx). Y"b , g'D% `a2q ò P3g xϾ#;>G'gY,3g(#x8)@>aL ?? Awt}O`=W `B?`T;JC'{R>™,{a(H2!O=d4Qʤ{eF|k^2-MNS0憧\UK \iwUe` J8A@π,`_ B=X<7`|˜-x 7$~$`<yeBX2>J% ֪ j$e@߅?"X@BURA% I|,=@Y*׬Vσ+a!= CQݎ6Io ףBì"vK[V - z͹8:$$J.|?ܙxA@PB`âB1pxA I<#(KJIƀ, *8BĮX'D3Hv}oh^+Eiޙ979{<;^,V,T9p0)%,|.(`nH H#0@`AA 0 "X00x@<$a  ;J@ @99 L>ttA#h2>DGm[8}J-Y"f1K ywhL)I5.7j.41܋85qFtzd <#tM&pߦMxJ'xm":$K~HP9'I'9Jdzǵ_#&btV-Nt|"J9Lk^ CαKaHR":qmb#QP>4߉ e ,O%d$`@AHS"Pw Xm rNi{ݧ˜\ȳΝk{% =w {9m101UX0f7= e81J@ m2j4LrݧW}ګ 0 Bp PciN\ <x - `]d>jO{OONWuP ٰ Qʟ qiȞWuU,t Pd@y|_|>6 Q0l| bD;Aqธ!i(p i>D#%˂pc0fޝ!OzyIś6a72R<>7',P _/.ĀA|֯ Kʡ,FU2` E9f P kz+S{}U2+Wq=[{zKF%24=!2J1>\`p 7j !0@xA6?T =f`UYp0eC#@A @!6 Up>/(о>rߟU^e4tIo:F'*o+Xee A`aX1Lj/.AL`t #P؉ΉI@w!׆t <37`ŋۑmV5J@P|#  xpB@ ~J@p.Q*qJwAO& o!fuZ_zFωvnz_:H2mNss6L :[?o;hƍ3MbcΓ ɘZqb713ve!tf#/t>s{|)xlaC|/'` <a+0 CvVu '`hh@h3 ]@7 |)*3Դl2`@h[ɖf  +1V xD8 l~ P0f%@ x1x,@3@>_0Qøcg 30g "Լ!,1g=Yx1k}B̶9,$PO%00dc,]7Lo8þu&S"yHd-8{RF]Bk9rw'Xm!bvݿc&N}y;޼^v4r>oo{Vi>+ ׶@ѪufݶUMDHXk zJH4m ɥAKYh{B>hFKhM:54{ذq"?(*&>\gWU^W!'[nM3sMclQ^q/BεX:|b2-ƝbU2TmsU׺DZ6uN}l%ز'hGIk7Ĥl6'EO=9pUmgk'E=ռe00dcu ^C8P4DxK@?*&|Di@v1tcpxA.& IA.<` &@ A G!>L! | +ADi|IF)( |Yp2 TVؐ P<Gqx2BRUsU@%u<U`B>ABV L~0| f ?gA~ B.#D e HQ!-2AP%o*e`P x`0|* {%P%Bb|T< CP>o ?` L7np0P2:  . тz((B{ JpozP:=8)J@$@?=eg@&-B*zMOPc;wT=tf!|xG%(2P@Žlh2ŝEP<ҽ '7=Μ׾g/:;`DÔ@AAe>wEO[ϡE:ħY{pw  82yy1 F@0=̀43A@7ڨ"T*HIQ*|/8#`K^ߖ|Un4$ˎ.V_g˄e}P<\'xXS(l,P}5 an!X0/ﱽ g$qV>995 0f_E@?)E+(tFVbZrIz)]DB/.!xO/Q˭!U: )Vl<*I `ڃ0xA?>% ĀCP|$^aϚ.,VX2h?.Y#/RTJk{[) /;z|Tx$xA`+@`  X2 .H0PP0)1p2,1p0 K  Ch4p< P AB |OA 1x(% P<,j?@?N7&cAU^f{6 ^')Bv8y#5(GBf|OA= h @ "\80(}P|o4@u|jԆD{I D<*@{@`\`HBG T%GΏ..Ā, %O=pCcEe*VhCAA {›?>X3W`P @ѴĿcag |!pj`PG1!X>DZl  zpg0fbQz@{A |> x(T0lJU><p~ yx( z *qLPgc|I7hca00dch .TR` Pa%h*-Gq0: 03.XW@7.R@$|>K& DcjPAf#(O"F > P>LᒁQd%K-@^&z@9p6S ¶|o`֐a!x2Ch;8` ,œ <=A`ܳ6 sf==waM=K9 0fi}P)ED9>o}.ksr 3!3{>; $A`MSL[xwM/NVP `x bV>/ p#xHA+& ")P1`>o R`]x0$V;T8< ?`T@VϾA]]^-l %@x>?` #j0X1:pPp|(@1|/[kS'$l;sᄆ'[PPd T3>"17>\  PgFzj x@8Pa I8 `|~yPOnmdOoo!ˀ<*Vx~? @L L^ >E |H00 A (S%CaRNǶ+DG{zuYkO}MS"90ǠP4 @NJ? 0xD@x|\>N  ڣgCΙcM>6FOl(ѬAx(A  av%F 32p|7tv @|BQ~P(`Qc8amϾo랕 jJqf{ =N,:v!4u`pO{voN}VM3}}}0/}1zul3p) Yb6Duut7tC ^'2"0gr0,FC`CݰDMIA 7H>G`(3|+e pgn-@gb  $l2 |;kc?t00dcPxH@GU@|b/JX> b'%T`> X<# e *_t3''J恰!7p|(G@eR% x$!H2x1aiTt R*2Ё<\h ?fAUpxx P n`xxA VB>b&6J?>  lw=abFW~dp<#+]iC*|J.De#G;)pVX>o XK,h9p(K(?xS``N/bHvx3qq /DΪ^>?kP$@aǁN$DUZmQq|/^  +ҁ${@E| xc n;ǕT}, 82g(8t3"pS` P|(тiϸALyN@) LjD tێ 8C /ÎAhx$޼xRj#ʞ8 T2ڱqąEH䣵 jgT%HGx|GP3/SHWA%e (?Ht |/4!)E@ǂ` uPP!yU12 3A!PCS1`U<3qX1U@qY|Fg NW)O1(§@& ! 9- DhnS˜=qঀit~R(Q7x@ fbu -axPNX1xe)cAe( ~ Ƽ<khfE׏Ǵǁ ?;OϽC |( VA<xgZwc7?zoq@,A#6 7ν<2W34-!1 jzygt $?pA1p |!YT|yZdj r)>!L %E Q|*gQ V h˜,JO)E940 \P=W|M81'ٚD fmQ[&`i a5 (D#e$>URT {|:1sӎr/oݿ/ #MJsa100 E*Mj,FMSpf3$] k G)`>L(8j@>(6%t/a4T @ƀdP c> ;* 0\^^ 1x* ju#@~^H׃0x QxT|@~*uUEڧ tVHpg eХIF2n@ Mߓw f%Mh= YP>/p F-Dj˿F@=ʁj%Que'bV{™`ק<2 a·ksuy͒0/V21i%AS0#f]>35jNGƎizG3.4V}EyL@|H~@`A*[4HP X>#A V< ce :Ǡa0S U GZ ?V\?D8;X>$pWѵPKcRl u-U (pBN;ߐpf9\zXtc2V?./RJJ.>qɅ}auA 1phT pc\T8﬏xād_P I_Ft38qՆ=R*>ndӽy8Rsl>fJgs@?`15Mm,z@S43N f?x{4)L7( R `#?W+/˽&jna0@!^/.g?0 { $z_ 1^hya𦈹Z$@g^>~ ;K:b#ڟ apؕ'RoxQva190Q|p>1&x' (PoTgs0%z۫ lC0D7)uQ2|<sx2:Z ,Ɯ+W ۆ<8)S8c v^ TC@P#4%Ax0ܳHd\Jɜ3S5`(T˄g sI|ӕD'uJIuw& hQw^f_pc>^J e߶aQUAX4u2 R;Pu Uފ721:0%J|<ۼ+TuJ17:}A:T<%$TQ@yÃW2DO7OL~|S+!30ׇS`2.L0L`)UCpp[_AN J=:q@1j]< nC9G1uRW2xSIϏ e-ØwVO^.UsW!3pf#;@كu )N#Pᚯ"G@! fgpS [:+NH3,1P(.#`>? ?4 Дh1WC6 ; C x ( `R` $ dՆUuWxS2W}a-./|.%8^(I#( '<3 a.n$SpSF c>3>d)s1IsZ!l)>;#..1뇂5n\1C4@/ N(>t xUJ Z?πR›ʪꃷϥRǫ% `@X 0!`>/>$@0f< )&VA>`3ja>g|XXFc€<>׀X8!ڣǂJQ (0~@:LT g: P0Uw 㡜@>0`*@S %Z}Տ Di*D@4 ` }_30H1 XZQW(a|رh~RQYoBw(?0^K1- 11*.aWőn m`00dcQ&`VP <6‰?qJNrpj#J| 3=K d4۵0|M)"cKe~šޑns%ΐ:(bI 1Ӣ65AP(1X<ȀM4n60|Kx .{* 5R}]zD= s|h#! sJ<0.9$:3"W0?€Q>ˇ6qtTse e|]cm58`~'Ǭf` 0H, _< qF`̓6mC&gW n ܬ!pf< xB8'k*58x 'a q:nw[ ‘xxYp0HH368J,aZ%"`{K\ D#6?cL"tɜ!P X |?C |8ܺ`\ * -XA2@#@1 Gj \H4(Cd/`@ 3sq;3;q6<2+a =ڡ 8!> `= }X 0aP9(>4xƛ<2NT-9_+!>O{>3zt{NuY5e*78 ~$@a)/.À s4xO% ^ a>/y:pˁQ@lS@4 yՕ|A= L4D2/O&<svG'2HξGt(€$̀qr0^ PP+'% KT 0ox`4At!2A>z <  ` ~WiOD(8  &ٷZM,A_܄0d92@$i5'BxX>4-&+V#rc ba #s 8V 0a A%ɀ4W=8ldݦH7 1 PĀg$u1; ')!10͠ Zy>煥e=@qahH@, y xx!ȝqN9.Lk #`00Ea p>7qNL +?8p$xj;81h>gbP!@ȘrG&,œn@#<Ұ pȝg |?ѴM ` rLpAӁ></t wp>ll``)T@HL3ϺKxH/`Ǖ Fؠ&, = ` 60| 0|A&_b6jİf|DEr83i%@|0/"0뜤 @( F넳aaL~%P1{p>m0>˰00dcQ x]^ǹ0a}޳Gб`|oϮh2P&<%<z >V}Nw+uZLoT(S\Pנ`& 9x`G< /@R0!X|/b:'Y^Op9w 4 Jʺ @6 +&E`T,H^%| L2Ub @bxt x&K2G+=0|?WtgX)IݸJB{`P! ,n  2\c?0(^*A 0Q0esRuÃ9أm /OaɌUM1DFyĞM$Ol  b(U_P ^x` 1$X(!Pg yxmF;V#xf/r1rBC!jb01h [{ 0rM2Ud˘pcNu i aDA2}8B +m˻4 =!cl4;xQ < 3x hۓs@Ɩ:c-E1)cOKSޗW#+pg7ꯃ `l,$B$> 3͌`( 6܆B|8AL+$6ZM(>G,+a8 }& @ 1z ؒC/pa0fA 4"ᚔ@(Ԡ4@|^b2sVQT@<2ma1D?/t h SТ{Q:j(!4gn? ڌ21ơه f:;00dcR&sL^um?[5гzSTy-٦8knrQR^M\fƌc&38nC<^G:b][o{stI6iWaN/{[퍷 [I1; :4[ vqx`);ttᅾ}h@/ns{ݺvL`S{Mst]8"N7]*5&6 UhW0ih?{{гL!X 6t0[w-Pև8m봒5Ő;,峍;0;_{k8iqlj`aj¶=Ϸz =-Dm B&,w'0V86LG8P;Bv"s {͍cuoE邲׽ooozgp[t{xw00dcR1ߖS,@d ph b7>*c'8/1;T >w%y|~ ~o>Xʯ e 8/V@f0Qbh +A|z|(¢Be~_;ʊ =4[ UK*cA0ȁ `wמђ@< ()/cbE ) Zr {pDd5. z@# s)TƂ7x\`WA@G>Z^ D oa](6Na?\e S `À$hp:B|8¨U ` 1N`:+Nz3O:5dpN*424 ve]Η %7_Ih)n%;Hf x,n\1! Ⰵ먺eĘ[X]!ժO4xEuz"3iT׎:t-n8 q2|}#D'No μ(cK74)" H:)/L tFoUɴy$›Te ۠tJN4ԃ}uxSL>@+B:YG`;~/luK~EDRyDB!wn"3&nfAB_: r=L:xe /ZT Gl Q;iZ\ UU4Kx5eH#pA AdZ]mTN FwS"9gKySSR*ó|@0ɠ^aђsuR3ad6 p3:3ᠫi#:H82g1n(bA ='2C(n:4s0? @.͖w+mXs Aa v?41*@؋?c^P/ !K<zYAoZX#8< `ʕAz"?mLlEH`$ji! ńPcAb#H0&9Txf 0dY:1tD|/Ν8#fϣp h1ǃ@qQf ^H)Hf%J>?v1 uP!XA/r#q^#F J%P\5h0OC™vڞpxH.X뢻;)&9!a ]1`nؐ]96bQw |'Pf [qwC3x1ޚx)=V[bTkdrrΨ>ͷSc|_iP|?FBO՞|(1P|D:" q((  op|7{e⦕N4;Z<0؇ʁ S(<x焍wZ?_Aez @P h@a(AX(0! x@6vjT|#i\b=\2%0e 6`902BA$ * a$PM"_P)oA>7wIcۏ fqfb@; za2oia0}0.Ƅ@c]< `'8@|DNpbGAΌPJ> <kċ=@I X M?C! P݀ƄuĴh'otU*:lop|C3D0#0Bl0 u:t||_Έx5keUx8A D9k~ 8 e,xx AB@8`%2nPxXĠn_:f[GS+@?@; /t,J7)~x :ytzeT P WlfB7qQ C`RX(0x` c1lj$gYp0_{R n,5/R% H0xK\V;WCJh#J|~ Pz:"D/.!z\^ 5L6:1pOʀ|H˔z 6 r}̺HKʃ5@3mA0Ǹ)(A(f!葊` W :ѹI%SR>)Sm`|~:4`|HFE>85zccgĹ ˇAQ 12:Ӄ.pDůM $@#QxxBAN6_rxtTFBP E!>,:=L Fl t"PB2z;Ҝ|\ D4vHz'B1*@w#|21⪌bR|uOp"|/[wC1p8v8!zc` +T#`gPO"#:oL̆ 1 | >GTЕf6>Ė @i N> >/1`7lfҖBc]fr5qar0XR9p21s3)!p 82rk JP E炘rB|T'1g/M/s;T:|!~| _Hㄌ6 X1#'= CH?{ #%`r9%@Bn)=%WkyL0|8qӱə;Z}WB$@|hSq#D pH5Z&63hH d0q LESE1;n6$ AHxhCACٷ'Jx1rhRu'>ObF} NCcg|oפ8><ԝP0$U) $rƺ m:v0C^0 <Gt"|ޑ6 t;#8brp` M,/9v}H0F7A|V<`ADRN94b5/TGĮ|tzkGJzh`,6#[ !@+8šEߛՉ)&؊#NP #T}<+zM+a(g:T$2z&C Mp>$ awAgAXhd5mS:f pjΦzCy;[pIմFJQҢu@v9{Ǒ:y@<_uS>clA: } Ŋ+S hFLb%^h Ir4%zɔ￝|D%cMJ$btU1` @#Ts>gQ 1@iQc^§>қ@_ uP9)P]BӡO'>-]Kp)LK|Xx J$0P&`0ڛ |aB AP5?+G> <\a vEWl1 5X`;Dj ;x?OBPY?>\j̼S|_ƂVHl)ʁ e/r0ȁg),dU@wW2z^Ok*lREc,(exV0>4eoWP ,)aP6x޵ eռ/\/B5H߁QI gR; *+P )XN˃@>l=Z?A6.0p|(;( L0̔200dc   cXviD0050  Xj x- e9U%gYmP ] k-F\Z4(\AymLn[r.ymh*f۠Pbzl`/<Ŗ@bITuyV[P ~Th>L,*%-3$h¹[)? \%?5Gt¬ƲQ/ ,JAbX}sm.yozI#FF0`*"6cvX}i&xXlf*1:>{&2 7*΁ hZfMWr")nFC(hJ9T<0ÔA$paQ-v‘økN6tPG.fqW3 -] SD"5l~_ռp,}h}>SGz~GިYUpZ8+8 Qk>dv)aP#VHk2PЕ)9g^ !+bI{eUb*[`Łc @/T xuKq E4 t#3.Bߏz )TZS^ #.Lu/5ӑeM7J̱( c pG V;V&`ҁir& y@@`3 /РU5Bi#<>Lx+N)(cq=1|(/Zum*Tv6k?RN P>S1;Aoq#K85D$8/H]T+5cꛪ`iN`X.HmBmeZV7 5Ej3s)Z0l5sp 3@ȁ} R6HX<"NyOưq0R.8xnx!Mz5$8+֒@S9mx,A@uRg #;!gBҕߠIg?ħǴs3J(vD9i)sD:3* S!79KQo@McF13BH0lˌAL$ B@0Uc4|fereBy1$ _"V #L |X co)'Df҉m=Zړy&v3Gǘ1 (h=x gr܈rՁO,3̼:1hˢ _yvⶳoAn@ߩ#rYXkCb%q8T(!6_1hPEՎ &u``t+3ma~N>lCLmg'z$-$Ā.Ѕ("ݕm 9%B\[jE{/0 ŀ<h LpG ɮA# -ⴓVVv9BED#2ÝJZ]4FxFA| nɨkE8bNkK[L pƭh`a:1 ڡ;dI>5b%PxT%A?؁`(!4\B+  aD%piT t?J8@ "2Al,ccp0 P0* Ja'hvڝ R QfER1KR{-IOZU3ِ,7\RZ[AJ`t6 mpTk&-eCGE=4€/eEx>qZS@'zH[h" W|r$$Bćր"xV*ke`Z /&c%:5LLwAomK+b0 BE4| CZ }Ԭ  c0b8%)m;@wPV6DŽ0~#ĵJ.RcAxvIcj[`1du#d1(^vivd:Bw8}X#aO+& iuX>w&nڟ~-`󴁊V ݀ e q4@d4NI Pa1sX .M\-hr `0Z&}tIS&M1!d`>jrtW A@h*Qꨅ%|ꦆ}d+t` TX څP*QZۭQ|؈ ),<{^, ^("1)Qc2x6$h$(HᑎsC!RЂr@'aßf@J@̲R-SmH8 1yB dzx̅Hp [Ili[5f k[_p$vZ-  D w5@80 P yxk4  y0/_A&E!eƉިug;Qkɂht,2e镃Pʍ2ӿY9 .G0xA"`[Iힴ nJB|za SҦW`a"ʕ %AYӶ?`7lY|#ejH5߃@~MaQA%6Rs`[2փJ  /p* 7p`f11OD HZ¨6lH;m@Zri ™-< ̘FTꭁ[փV@`KAjd,UIP.f˩NdX8Q  ( r$B] F= VE6*cՅz87 |O˜Ww٠7:t25&3TO@.26 S* LqִP}60R#q4UJ(M<#pc6EQc 4]D@Z+Qk Si͚|h5Z0!mRfS'jteiog6`8Q/T-.CM k [¾gv6(D l ot ˍ 'c.|S`(,``7@*ze%x[ pIx-HqP)SG_T ^82gQɆ S&`a$ցpI74 5B`_#@`p ~x m*#u[@ O@ʐ|xek:`+ xZY0S(b$Ҽ@XjA*ij`'`\ڙKZbke$PR6^VQLRc [À%1@iaiD(L \ p#lo*^L) "C~/*dҽֽ^s*R\PhvP(A_b>kqKPn`(^qx.A(+3<"8<~@!@ Reb00 (2 &2{AL xf }ݛ@;^S5A[ESf<8[03# `JEl pj^^<( gF Dڠxԋ6+/}(D76t3!  ģ1p0fА|q7c!hǝgΰӪ큈3mrb;%$LC`x^`!,>D|Ф$X`xJ.>x!( @AJmV*"BXX5) xjRs۷\Z' PBCǼaR |l8z=ΨH>LM\JSXxAyXz%1bWA`Jp|K  .xXZmQR+MA#a]/AP+P/JJ<f ןvACAh jL=6LH1QV>//J5 l@x 0:?( p  aQ@z j/7~X1þ;DsψW`|^>jA@0JX bTC߷5`1`;D]`_GV=Q_Wi- ARX:-D:3 oDh@|}j)z6ElN*|)mx>"k6L %*cP1Fp()V|| _(0S.$KbZaEoN A@G< c'Gh a` LYpANbbC0V L.%z*2veɓ :mP<4/ @ xD:4dC`Q(K`p j *R1x>?*Ǡ$> % J`J !`+*Kx@ˀ@> `K=X<  J, Đ`6GR(JT #8>g`l, p`|w:4dh3IPY7Cg2׀R4g뢅-Lh-08Q9DFMtLq0 D)Gb !2P>>'iP>\X0ʁJ x/`lJ&/t +H) À4JT x(GE0x-0REЀcK8 5j}(Ɗ.Bm!i€C 2{C&pѵ xbi$ĠP ίp T ̈́s:r là|#hjb3p C3hpgZXTukth&V00˻7P .ާ,j2wDo 0F=2|e h0pc+!灞Q$6&H=,Ѣ&G Vbv@ &p>?#+A T>g/b,/g& Ȁm ՠ3Fjպ4λwr[%Hn >'i B8N ƕHN<M$,%O~ M#uG@pH=ߝ4} R4a)t$/@|?{=4ƧK|a > ><Ut_,N:$\&GDڡʴ=yĴ̀%P>T 0T`weIF'#h )~TVULFڹ+s 28N ,$s |/0(Si|8@(3"* A x@Dw(X+d٣ɡDu^ECP|M_ƀNXo00dc;T\?۰|VM³  w)#CF~5PL` ?{zsޢn6on4J@U(AP|Մ.C.(>/#900ʀ> <$jAJ :ŀ$X>isq@8Kwa2(uٵ|_ThVi&91UO|Aŀ<,_ Gx ) .ˀ$ @&<|Hnnb n7W)`G{kкu׍ٯcHuh§gP@hBe`x}|o >?nL@uP7H AÀ 6zNY  |`^5mn`p Rz0dGܜ|`\$HIHJg,qHRDxI< 3@E ! `bP>`ؐ$0˓`p0a<b@<`p<H`5<`@ xhHꁖ0>bP2`@04bH<4 p1{e+;`1[p3ˁa dPFUv'@KI?& x0  °`"^ > " 0px^<à6z9Ȩ,BH2|(aZ8-f42rDq'3t6f$ `Ix)  <P^%Q6H/mX>d>4.#6$;o4^IVΡոed݃=)zSkk-f$ Á"yL9 o'} T|OrMƀO$>_.rN>ml\!`ppd۹qp|,`P @c8>D F0[k|hPN,ˀ>BP>lnj?q3pɶWڨL:$|[@|17,>k4 R mqӀP>nn& Mi2|vsP s00dcmTx 5 ']l;&7d ~!a7;ѽP4Ws˓R@>p1MB>$ S+(\fTX\;Hi wMΟv=Ϸ9q  MU =3@0^yx.˾:.V ?G|O NEzec $[0t*|2>$'bRƵ@gp0.E ` a>4v||zo~Y|oذk{*J8 0@/1P@??h 'A,P>60|%4w@|dp<` <TcQ@87p(A@>@p@g2?uuwwUΆk+G0f8aA K$7PO_E헃 e'00`B'bd @p7 ^W< F>g`?R%0:IH2`f%0rT?\& @6Tx/(;/  Q('Pc[K>mӃ!8>/ pz[=>:X>,nףּ}:X0\`|둴 qQ}ڰ|Z&|Ooڀ%|A z< PW3| P|^)ߺO!ÿ00dcbTT52  {?=5B*g۽6OY~oc Q͌,E5'<ŝS{oz^ﯙ;Vp6S$}Ncu~qu{o`c}{b7vz=~+=Y5moMg^bm{(}lW{޶-4B>&qNpB﫽=q%00dcUz>Q9=} 6 8`CR:Zx=R8Q sAocahoxmF2CaSa/x`IC{ƍ+77Ajz] {I=O+a6W/ xRP?T :`R\> o||% `@2B@<,"HWp<"X<T3ǃ߉` xS< 6@0bP< x A ;|I< \.|A<  xQ6x/ĠPaP><` ^ :DqPx6 5>_| a `0xAE K?Vx%|/?2>H< _x$k A$O a(J@0)§!;8%O{m |ixlaR;E8< tR?=4I@^0xH? X6 E"P0ŀiĠ6 '`a3IZq KI8L01P Є2p|"1Rpb):`p lΊ7Sz q#NsfӃ}= 'P{Щ  B>D>t<3AfB#D9`=p|F&ΜW|)o{ 9@h5nC_F¥7 ڐ>??nJ>/.` @B׾Ã7>@W{-+*|H뵦Fz{`>Lnx/{f-!޺TW2 rt` }\d5;H1?svU00dcU :?GK IϙIӮp a\Cݠ6'Qqno N,`.˰îh z7^=I*:} U9P0< Ш2t b@`BgAt|x7J >O ni\j&uWCF#2 2J(0 X@5\  `x<cfxA@|X)]`" b@2(X>7 >}D͹mHuoLpbcC71,8ˁp` `̃@%` €DPa$<X0.%de !q{*=jI|ʂ(3$\c," ~Z6qRuzim4ZH'"j-T@H| rc n@y8 A `e@>!L( xBx@8   @ ^4xA<%@>  ^Aif(` v ^8b oå`C z6  U5\_Pa"_T(W+/r*$€$aܕ\vN ;緱ԗ, %dxXA3̃@0(x<4%P r0`R`?3D (@0T P 0`<^ J ˕ c2ʭK[m&4X5.:`ʋ^ C(.HT:v۰|6- yzY`#np& b:H(~ LxD`caP8m$lxOG hp tW dtZB3j8 ҃9b@Ĝ2QJ *`nP, di9ӻTq@x<\`@ޘx `g==>g ޞذ|_y>麻>7Ooʀ-sM}p z['u~J`?,Kޮ4=1O[dAt7,?m.NE00dcVt5` ̓,Ճ`dž881X GD@^ qX1:cNM)0`3V<%>PRt>#GT7?/XЧPXbfX> p[082 N>:\gObS@>  _AfűC# Xf|($ > V"xf€c p)U[*7熁 tI. SX>b\0 xQ!Q"ǏV|`C!gHC1AV `~>9rQ e8. P< :Z@d +Dx@| q)թǀ,c&*{():d Ab6%!P脸|`5J< 4Ƅp )E0'(õ@ `<yP)AD Xo`01̓"Jp@W ̀"cMABF@dhLpA0` B HaN="67IOӃO.ߒZjCIG a(>8x'Bl)T:H315`ԉ`J^8 xA? x4 @6?V>/aLChCRO)f?ׂ_–M %G+`Ԫi aA`%VGdIZ@ЀDpe@tJ±  % 9.Ճxx%yRf~ 0@P $ (1o!.gx7UXի_x'U& %p2{7˫@pnUL>)>,!cjp|h1/p7vHT;-6F xdEIT@- Fg)_0!Qpfﱕ$0 m6]`ga18S*|3.΁US p? ]=:fҫpāQp eLP`T $vX(<Ę \ Y* t7TR$/! @CĩT p:U5{ӣDɐ`mH12` TJT $ C`h6`  xA?#h~?@u@< =Xp|/?~0@a | @x 0t $o|B?ra18< xK4j! IPCkRA@ `ÿR @18< 0B Ja(Տ VO&@dj`˜a@~)XdpF'` b4@COpёT@ QH>y1"վ>qbo9~1v&=P xg@ *zDhl!5j1ó*uxS `JR^ %A( `Qg;D x%3PAV İdp>\a0tx4`|^ G`<6 ?@ iP1ωj@D  q(t A0(>/` ǀnUreQ@TP1`2ꁗTR`*,h"`WPp!LZ4 U|X>?E xZ#@ *BQg M7q쬫$S4\t2Cq>#Sj=ј0"C1<+t |0!rp2A!Ap c)TŠaPX4'HT ׼X*t^#G=P) i` ,p `vðaWlr͹ A9A$tG˜G>;Uگa<^f5$)t&dp!˃g!Lx|:  Cσ߰tEd;>0jR@1h0)AP>N@ 4p0iҠ< `6J: ǀƀ9+@~ (R2n>6:G6(y09Dǀ>0ftzeT|;|UFͪ2 x,1@P |'>XgO"|m6>}tJ H0TX#`P)UP{o(zK`#L!O( Eط\4nF)w|A0< M>'afˀ, |D ƀ(2G%@DE@KJ#@N-K7?03 `7G;ʔO(zQ`fiYTHh8S0QRD3=6n$p3˜YP#vP3@cEPخ jNE=:j6^: |Xt3€,fd[g0a e0d\'0 &ghʁ@!0X#r;;cSpD@|L 9U8pQ h9jK 9"BOn1v, }3E80d0g&!2%x@S߆#|H_@ǀ(` y |?h\:aB018` @J@Pa3D>T bGؼgp|x( rF+PMP;ptl *Nh( % p` pbA+ Au 6Dž \? LpcĀTp|?x tha>/b3`cLJd|(Ġc@ wS 4Jz9 >t`C`$3 482cS$c2<^ T B32e QpA0Kdx@h{ʨm@p!*q4P .P4$Df@z;\d@;T1D"rC đCDzc00dcQVH2HjLK`()@`0]и@buR8F/x 0΃`'ѝ")B΃9#m89x-{vL,q h:q3f>}KM8~ qjut'@)Mt1r삢 r|/N9E\3Y3şs v„AܨYʪ9P;h׎ $9t(#%ܱƬP>nhtlRjH *>L%r0 F5:$m:gu:nD5C:B1"87GnᛜF#x^BP*A2|ojjG`ST% Ġ 3@xH>"@*<|X S D<ꁄx A `̸xDx Ĩ%+0@w$C>eoμxIP0 ^ < !6*Jh軞@ ?P  \JV\\=0< Ľ>%`?@ T+V <$ғ EK;; $@Ճ@ /mӧ=ΏM&dq`I=b>sB<9p<; Ā.@t3#x/ԃDG/V||^AÀD@%6 xĂ|/8 BP0F|%m08`|_:dɁ&L{!MQ> hZKi`lqs>0e94$P<չ:?WxA?R8<` ;߃xv P  >mAH #I`1:9>G)gIs]Q$2G nly4 gGm':'n"Jm$@x>Gor!| vw9&vPbPfŭ;spՠ` s3&pc)8hi8eHߏ>ԄM.8^ 0*t?VsMÀ=Ǒt6ns}4cuHiT2;EK}#4;;HP1@?uݪ>O, yXDp|?ANMs.=>w8 `|ɐi.8KlZ Ni0|U'ptZN T=(*9|P8Ns]8(>~gSLFpTOwt;FsH bj!`00dcfWo8 { {ǔZ ^< rP0{J@0SŽxۘչڌjnFtraݍ;oB:ĭlZtn:o5@: N j ;8j(V   { id 7CNLӶ, z<<LP>dPBT۠R !cPx?}< , `R |8A  $g À-Q@ٹ%ID|IL82x` ^`CS{: 10>$;P:A$  0! `4^;`@V J"8߇G!ؓ:׵K4 ݓOmP )R"P00lK7A0b  (| =R;(\%hBR=@0u*xO# K'xA CoYrx?A(8m` xh7A@ǁ4x(A$ǁC@}mwݶo3m>. HO6&0D >B (GH4<p|B 5.HFV\$ 5|@|`ƒbN2c6ŃQAa]e Hh>,&a>bG‚A0f@`2_ ? ~ @%݇ rGozA9X("\ y%?q3Y0"~6Hmȟ}f`so |}e&wu_"40liڧhgfۺi?YAڧHr kn}s@p ]ݷ* 7 / zn2[{o!uuzmaXbP|o6+x8)/LHP0`0|AmC>LQp0x12s#j_00dcXW\4=lgc-8~4ݬaC\duYZ:{8jmm(᫧܇o{^I{6ydvзos&wQ ~J*οo#OloB;+rsݷe68 ٭mb{{[淭(c<*dwum4oo:+umBTѶ{r%:Lݭwm݋ŷX܋\w>{v?s;]]v;ś00dcXix@?2p` ËRN5ar!/84C> k/93@(MM%SQ~4\*mSWa0fsr0z|/ݷW§tӂ |X364tb}=BC J u&N@: xB!PH}CŠy]^*' D6O{޻{7xA_P<,FheC`|8@Pu@Gà|hA<@]Ā$pxA< XA` x̓|0|(N Wjl͹*V` 06~ 0|h6<M1p<a80a` @~ :ÀNA` ` b|ވ0xA  Ax0>g`APCx(A0#` \~@0 #@pPw fАd۠gN=Ft2 9Px8AF (J@x D V h3 LAĐb@0!<x!@Z|?#\ %+P ! w{p|]>!9e'Av7fMMP|(K.0 a|aQ 0|0pn@'At(IOn $"> |m_hCI=icup|H |/luLӴ  ax?G@8Cޙ7MSP5ot$,ֳqjZez}{ak^$$apdF ){-{8> p1MS =te0s>[x>GPm`Ǒ X>}^wOwcz@!t@:d;%0ÀP{+@S(V׽6»o{ޝ@*w3M  p|(x>oߺڰZ~wӭ;MH%ep1絪00dcS   cXviD0050 XdtPxh07'?>,,H,YoX j@}l9ۀ1,Fۼ)? 447AkmI YILfXT WIO|+Z7`0oaԤ39?q܀;bgka$30*4Vs{ gc4.1g:k aymZ eXqcuK@[ف(g7ҋ> 0/~Ֆ[~a o-榃p7,snZF,yo5gS6a,ŭ+ӽ 8n 0Ep=$GLV>Ŝt{*kXQZ)⏌r:קuOٯ3$Uw.K~UHoӝ"dP?%ѮQc ?R~{t0<{&UIi`c}sMU=JvܤU׏ʓ4grMMR"iy%,s;~sg;?Ҋ(-,|M).Dm~3XWb|"jCh}|m&QA]Z5ذN4?ʲf't=ET"eRF,}hyv:lwC5:NI+OS#Ta;|< ~y4_ϞbD@|Ηf!Z 5BX0*IZEZC&Oxqb0 U.mO, pK05jA YT;7~UfE[B67"njV1ot"€E&׋Ǣ6L0Eg'`i-ϷiE1.>-znw>,GqtKtf`.١m-{NS CJR?u3.-c6y]e_^kݯNW׻!";U<Bzoi6g@[V5VH龖p0:N HO}yT[0a$KJ[2lt=7!4T݈QZJ Kh*@xgt.2O\p4(*5kS&}C%*V4< ,ʇq2YW\]qVsD^A[ʖ:ݱS b{V(Bc~ VlZ>iT3jB `:GIPIT ܀Np1vdNN6PX"=N,J. :^L"XmHs'bj~u"uN>~rPN8=Z!H~'IG"r\E/\4rE FrG6MSzg M?ќ|L1O'fC=Bbۣ|GNFVvzR($ECβn棪;Մ-V|&Z`Cy D܎TjEFVe\Mʇ>D:mȦ9T=h0 -7nΙ_΄͘hD_VfAix`%y䊀 eyj`BL%^o72[AI oN>(Pa0 +Ƈ}e[<j5z56`$ A $$ȣ@*U4w7T`Q0W} h`2]4Bu.g-NK L~0Y: zOoǫ+7_6oH 5 bGkEtH" +Kk];J:H7ܻ{bCW!A|Tem8(A;-n4ҏ;D@U5L!85Z,.BŬ툘HMݥ\iHB6@",^-}UCו wڒQޣX": Ġ t~<'l޳v}D a )x#B2R֚+z@@/Y^S<Vg79ڧaC CeS10p3@B $wg[fE ?qt03@0 8%O?)Q/fЪ4K#)- `|/hNS`D4  A@=p$Xc6 /|.ar mXXG*OZ7|=zP銋LGZڦ@MQp<7GG C*m{?7l[s l};):mP~gOna#YmNY5b+x!s0[%m⌤Vya:ez\]R ϵڧ!"ΰa0}`q$`w}*e--V^,@$ OM|̪2o6/)iϴ ^K%|4*ؒID[[HhqJai[yg^9W{L;kpׇؚ ; %ei2;t :qe#2Z'8tA-j]0h(S:6?%j ?axY!7]8"E_>Gt,~ssv#= 3;^ dz{ֽΟQA"e.rnwS㖪>n41tV^tH?~Ӆkg($Nw)Bl0rXE"ԙ.ݏ۝Z/zˈϰrCl'HTPېTj~rTq;)b}˕'T*F6Ԣ"1`a!-CScm#Z,?+S\@l?}3)H?i_TRݝ$j&>.i*o\^) !4#N bLQ=ƿػ As T[WPwwh5nGjCiF|_;75jFcg5柏J sF@E|ރmj, `Fn=dԓЦs@5;h}`"om[*uؒˑ`IR}vGB8,7dcum̰^i8t){j=4le@9¥7)CnR،Z jp} 2I{XB_'=vY|-^\X0-YW  Qڧ=hd*Cz[[B*^1?ތ*ޑTY2TB.O$7*'Fae`z!0jr/ j¯AB|lR_)8~R;X(j|D4N[hV5\3ZgNrx /Q6ԆtMm6^,Fm!t ftC|,]6S9Y;ѩ3|9Ar-Ga.K BfY_$Bsry֭h bا:Jo5*!,E 4wש@bg%G &h-̂([ `"NkhڷX)ÌAf\!@jgj2|аr^rA%,Hl9/ܴʩ,ej+<5‹TǙhpwJo'2ed'T9^٘WM= --KeVs-ŀ5\Svu$72|lѣPD]ʶK at,n(^ lhTlCvB @{sh7g `:x0>n 뾦m[YڔEa󝏿zRf^[*9o_ici NXbm]lxfG*q^W1k/*fj_E+ش;<,\ºVjְ[58DP.})z2rKGXSSeџ5)/:Sm?;TQl`'OZq~,QJT6s o" ܼ?XGT0"¾mDW笰l+T7=,lЦ&^˼a[^7j>2YNe_l"6R-`ar.χ۵v*_c➹s"&] E"4b FW[Jiq?,wf,ҿdXX\[cn&B(o߼Dɛa>\vh[ iB`W}p6[?af^ Kj2e.%}_mdn `@C{jҗLĸuOP5 d*]&,8Ҡ^nPBxµL6Q<8C̱ ߇A!sYN1ulmGlTa7N- s\o}歈X^./#_ !lzLҦ_L?h b=W5ҿ?Z.Xm1k:~g(Pٓs`bOXqEd6v #VMi]wP[wWN%*| #`8D_ _R@-PPx絑(Ѽk.{oiQcM!۴7N*qur>1k۵e""t>4-/ʡ\.-U)h [z.PMTRFLȁs.kM3cWyь7ה,܎ oKP 5橀\omE]LXhUŎ@_MFܡ#lmpTp_cC:aY!k`{ [ESWԷQ$a7S@@`[75_)?yTo00dcK Yc )`A`/B%tI<7AlAMA@ T%x< JTgƀ0(8!xT#:4Yx(1,3KX&`cǗxX0- B@SPX19PG:A aP, Q q(@sB{Cb PZ*mmȝP(DːX FH0}?-l7@'bP"jX<v~L?Χˏ4x>1mʨu ÐY` x%`Ӣ+??uhZ_>80Ze :ˌ#9y (,2:g2qS "8φgC1{`ͪ|1Z *vQ. |Җ |9oAD2T8b-!Sd*dg^ǜ `|?ܔX9)よkZ=fnj@*\>R zrGT] /I 6 JƇEOk8 NS|(7p1A` yI!׬9;Gaxfƫ8\xBVbC8QIN?[[o N쬸M`A.z}w|P ؉anV|/c›!~]cx-#@ !|xTx˸{301x1"wso8ap2ʯ5 L<Ё˼ Ī ZQzػpm-UR"kMkBʠ07@vo0A}@TшJ>.HX$BH<, KOUR !'b2+"T߾" Ux٤¥qs(NвEqiR > ꁕyp PxA@%E E`âxh1p<`  =Ꙣ@*6~Aý6 KS3!Q hBS /cS;u *`1O:ݓx3]bW!"i \tLó#5?t))_+V yHj`1Z/.dVtk|=4%S9 W`N'!Gzu~ċ9K;LKzLկ:80Kʈg0_|FZvin!vxf:pVhy 8hOO2?bfBWb)c*-HoN€ 52ٯz&c`ofԘrD6 hN&cGjC]#ri3ԸF#!IO|ʀ abmۆ4.0zjHɰ+ޅR-z>hSr{\F L繷G. R׈Ft_4Ӓf: dF]O!ך %@Ǝ"e_|’3ttPHhSG=I QИtvNT)19LjC^8t•QD|GBE4d9%p6Iq$%b8 `0 B]aڝL TP:1y3L{μXpSMz"i!t=yTͽ 8]d3  !d.FiXѠGFY pt;dABf|(FLc|^ f?Ph`8=VuV|U͔BwϿ00dcY ]E+K{GW37ժi.y9cJ OT0wEaS=kTPics (/hTЌnhbk ƦZ83ԡлczD@#aYp1=M Sg' gAM#?N4-8f[Ȱ: >.ettUI'8WAd  w- &8r x@g9ӣ n,y׸c gCVr~ZAѸa@0v\\?#: Q1ã#HlV*GG&p۠ xhG_P!7`air(28B@0*` x+0|HCn\=L2|`!82>]}qLjL)_} U ~sžiCFc>GG9M xG CLP|_G̓$0bPM %}ǃ@p , n@80*=0mac4Xu! 4( gqR63@Ϗ8 0n}ȮуTNÎm%U(1W|B,~FgA%$IER[WD9lle#aSˁ?>Db^j>?K ,x,㜞sH:n9J EGtAOܣw**yaZ;8KhHA ܐ1(t`00|_O?X!@PnPB@0 ;|F'Ԁ4K|s= HM&}xmaA[:YqL/L61z!M8p9_fFxVD;"!qV) P@~%p|˜xA?GpxA<p B@ #` % @1( 2`\>!<||?  "@\r@lHoYGCGi:h>`|O;!r]tA KSI@,xxeh1!pGCd20A~$x7(x8`<,T0bx`<`t>`R` !>kgo\"% 8#B@"&nq<<&NH@>!!ָlӜDbF vqyLFtm#0>/X0 4 +$x@ǀT9fT h4.q"$2(Q䭋{93-|xՔCP^2j BNɥZ|+!p"8DD4A=^8Pb3i|hSI'pdLi5Ոa UgԠG(Ȁu?Qv,i<G|d@ɡk>,G"CGM0^}ӧd19;!vCnh"!чHFi0dp :RH;ӇowQgiiC'''24hۜ3 Oʁr Y$\MUhy)A<0G޽"@\NHSE >!S8 Üѧ%n`azб KX8xcX> aK|gA@D@h0†z,3iy.9%`0HǧXb:_ u0!;&'XJF=+a|)>cA3p `P {yy}VЈtGr~d8X>쇟Cn6q!|X900dcZ]B )x> cLҞP K'aXpǐ<_` /v=0` 41Ȥᇍ[{(pQg׃gv m5uѺ2{PUt!P0dvk_y4b<=ʀ.3g|?KhJu0 @aؔ^! |pV 2:ҝ$uΘ1_Lgnnm+ŸfXw <iS a0T ৄ0`<$F bP>lo">iw0|X0j䋅GDO `@;c) aWQfAh0=j{Ѓ P|$x)p00aؔH>@o` H |>|c|B101xK%6q,aFyPp `_Oav9Uu8429EsTKtK:6L3 f &X`HK!;`d~ y|XJ` ii2fr= ,H;2N&0f< taMq6GOssqfN G9p `SܼJ ˁ`)/~ epx_%p|A?V80 B./T%@| ra ~?d`AdZOFdht+Ϩ!pQ (i^CG' 6ѩ0JN jjT,tȻڞTv.B>4b0qn x A @6$AIP P JT<?l\BPo @|%r M@ {N֐i[\pX'nzN$"8%h1g5-9bf͡bqzbE;|թ^q3(`0~HFb0?2?@r2xB02Lls%JK@h @2xAB Pt0 G.!;#>?A3i>*t?6KZ1MiѦ5m6FGx`BѨ{иsL 4l~f!,q(6xA!\ 0|=f}lVħ;NRp|ޑ 8"HBjN'8qDƕ-> [މ#,AEDD,G 9#M '7_wL2:Y}?ĽµR8e^MΒh0!Y3]A?ݩANC {Y`dDc ;R`J䭐|XL ?}P2c [b@i>9:^xNFU3:<*ɇL8!7 Ʃ A` z樍%D2ÆN2ia`ɜV^]c`p``&h|?Dr!,! wX>?h>D/JhT5|†|$ C\` "A)e@jji Y%BP1B#s!feb@B#T3l$d,̜}00dciZ _owu~zwut}bW {u^K7O{(ݾ?uVAwnu00dc[X8:$ [oDe2!@:  nB 7w8U2` P`Ɍ ` 3*8o)jǔ "@?p|/0w 0` xRO iƞȁ` p(DF'aLt,}{ސ(g+gl<"}orХ7Ko{Q;dSp 0,.Py-{ۓ۷DNt[Qt|k x%3C{οK ,@OupƯs"J :BV> ` `)` j\ |(Đ~  P@A?Eb^2G@)OM'Z8Zh Y INsަ[ ]|)A?u>z^n{ǔd|;)u4p|?D:[u`2 +dZ`rȔ9@`< b(K@84Pw"0X `@ @P< %! .І^ p0@| b= 9=c=s 풿DdbB!7Y׋'{Ό|+rx0 >Lab`<<`|`AD@T P  ˀ<Gp &%@ A^=lg[?O.H(M8\'t[{"|7 F-+ܨb!pB|XN0BPKlxA?e@0@v% xX F`Vp e`?߄"$ <@0.ŀ,>/o&f 9F',q>y:+H0b V-+iޝC{:$C p|/4@w$_^#̬@4j9>/VN(2qd+@x> W[sn]# G@ Hjakr/O:yJs$fa(>$),0<^?`{t2 x0 J`PsJӅ>b}xDSis#PU.+.P`xWq5-m[39ϸͳ2vlGF|SR00dc[\ď?V\> re1B0!8 |޶ Kα}?˕+S8qê`÷ϱV" Æ@ A@|Ń PLx 0@as1*PsɗCxCf] Ӹ93m L9 %:Phh(6oBz;xJ)19}yâzL8ƣlDUP>G `S >?Rh!@1`?t Q],G [rzZlJu2!y!CMCʮ%M"$u tDsEoU, >G K @P`C4Px UV t~G`Du`ʕ@˓C `R|(`!!Iw㏉C#L]9 `^u9Ӿ22+xl3O5q9tr7c'P hB0h@P0 "XaKs›`3ܨt Hؖ0h/q,dP> @ p(A 0QJ(A @xA`Ox$4!  @x?AXĠ<X%@Ӏ%*A 2~@{QV ANt$5&'hD` n 4 <JM ^} s'v緞L9 ʋ~ `0=3cA BP `0 @X#obj %P<0 <|Zp`0Ns|K $10PI n:y1P[{y$5yץzW`HT ]>#"tbgt9S§|m3e"DӀR> hF7ẀZ#Jϑ7Iۓ#wdAɧ8TZR9` }BkIS x(v3w€-T(|Hr7gLze#a\q>QCW 9YLgZț80.h#|w}7!:XF L$ԝT/rF qX> b|B>`P'x| 0 xZ8"€,~X@Ę> |A?|{& /cJA  pca?h,$  |00dcQ \RxLphCcgFP0Sx>o*A(ąP3N `!SS`.v@|dx)5Jh2,?A`8t.:^@({:a@1,m  TF\1 oQpR>R\ ATcO .ˌi+X 8 H`69 G:80d2%je=^  c(Q9P1``)BHz"z=>"C|>!f6bsƠ5G>b`4 cz}Y<(MP |/UP1cm>P2Qb7X3ƃ I[&Cc - Ug" l|9(3,!Ӽ3Ma1I>4NWn?MP>H]{1 n*q#Op>␦0Ht l!t @u<J( İ`P)|z<0>7j |OAJ+BPA@:%|_UXS>sLcjoPq"3 PXrCAI@)HP\i `^= |mG$5'M=_XHxHGh <x0dYx(B0:À~?p2e@Ip< K2 (T e1=W V Fǀ}Ah ^ C%Wx~ x( DBiX7I8S%`p3p6x@@sP>'=Q. f.0 *;'ӳ%LJ-@u!@pLIcԟp2q$#:86+TAPh#@Da4`?x?1b|_ƋJ@>%,(Jp `!#@@_R $ x,hb#V4;1OKp/Pʼ B@ sfT%.`2 d *䡘1 O$ ,x :x@ 5BE㰁NgȀfsKnS l8_/:3F {Ӂ:s.=:dx~  ` 50 `?>?uP1x!@0:\xp 5`ˏ@*A @ \|9x |ڨP  >oxG^at l'898NJqJ7>cjϢ @A0< Tςw=3`0gFHxm GXǀP-RSzQsep1`8"%4`BPPO!T0@ ˁ $hA| o~$5| y ʋ PxAaBC B~.Qq NԪ(P1vAB,st١T*e+`tj e،+8b31âLC>@ ` Cx 'l$w{w(faκ1Q ?u(UQԙ殒iVX a_A p wT{s™dɕLd\;8;fG[|љ`l3DarWXF"8z? )J!)J[MyPȘc``V @cxh}=C,:ޛpAxe6y.V:6 1ǀ40 t=BT@ M0dcR trh283yʀrd;']@((<;¥69_[xw\xg@E\&:2|)Ub5RA x+ĀĀ岆@7P|ޔңN5|?Д(>Dw6#@>B8 ;4AA IT:bnʀ,c@Cpc*(ٴ (~SyƠN 䪞|8_& `?b&lЎK&P HxрvXp1gp`_01 D |(.p1$\ a7l3IU_"j<(l' Ο.ǕUca0o2\J)5p K_2x0aa/H>"X1ৠ>궀I$0R K|(t gP.<$R?ƀ~ x).OzYTL@6@x}f‰|/) "B`p< Qy?a4:83#PX((*X1~X0f"*u8@ڠHSu@’cpp ` .j?< \c@$` a-~l(UI%Ā p` Dx3;c1Cp6u`?1dɎ1ШBǀ>5s̅8]!!`_d8^6Wz N%)Hp8eT/uC00dc^\Ϝ ahH< /"+wEfd@ZJZ*\g@j@^(Ft"0 5N nۜ1dWG}#CSG^"d>l3d gm`qg.m^{G @|K*=ކ ׁ'iEgiXH (;6;l$ITA P0FJT0` ? 3@|0|$4}!k| Q*h (dUx`àeĀ| /U2 p3Cg=s'*yW,ζq\!GaJqʒ?xz "˃@ x?pDl0Ճ`:( U'm'DWqyKXZwT@R6Inoլ#h!')^R% P!=ax>D.iV(dNEg\4yk%EA12;ƀڪ=> 2BP`),Ċ^^ xA"h'Є10!."P`F JuQt`*!*4 zO(U{i|/GZ4Dh2zzZ޴5lb0cb&;:\ `a >%]R|OI`~@RگU=@4X !Sdb@A]soNlsoOjnW;(ԁ`P}wwH2B-81oL P!:='968dOKP0+_ }wvNWs5v]﫼ue1lC@ P0Ղ@ݧ#wu[>à bɡ%JOOK9UqFX>X1 lɬ$'p0dS յnӦ xN^߸{Yw͐s8> Tat~ n00dc]L'ҶF .Cr= (†Лs`Ə 5lǶ& r$:ϏW{2F~\^7sTy9Φ:t{)Ճ]%d>'Wsn{ޒN@co}nˀ#P76%<A$+p @Pz̞BL+Vzèh_q`{NJd;X>cׇL\X0)`?>o`(Q).bD<@` !:Xtxiz!Ϟce3w83ލx%TD`S{ӻ [NϷfƀ0d zxUcBG@^"OA/SHhvbP0 0x*{:#o>h$h2|OĐB ?p 6 >$J a‚`yL_ݣȮSg3n s.lj^ao2iϪk ccɄNCf6?{6t3Vm f)Hs BUW8z>E.00B|t`a= ?ЂB Da4xXA-X>_p?J4 Cx(A`<?N@P< ?rx/A? u!ސ 9m2 N#$8SZ  ɚ RQD lCxAF -À,   x? QʋڹD=@!UPx4a  ~$ < C/S|Ih2<6$H%*$H?V ?0E~2b`T|~a"`_j%%r:pk 6 mgrC\ʼni#K1lۘù'Bb |O%Lmh((Q#Q2%T8.wAx B-ܝ=bdjX>OE2]!H\KcJ|_r#Wg +zFa*qwQGҲAΨ S`H@Ӹ~d8"$` Ā͸3Szz=OK v2oDp5L7w}#sc pTӽݬۛqϮ)ރ8ۤl`P&ݱc#wӗzsT } >l>g[ͷ.BT€5^LȀ,P\bp1dO}R|xFx0 o6&0cB"ciD)VOr,jAȍpUac1;· Fm.#-0 +P½͑?W0Xpd8Z00dc]!Gu{wc>(kf]}lgO w,"N":Wt5s[9X uY7r-l\rg~ӚXߨp;V0I|ZW[ǹ묙tewwM)uGk=vVŸ#[4A[ ;Gma00dcv^F߸'}[KxfӼ, |cxQ 8Aց0R{ v=+w#0x@61426/}vn .{QNJQ^ ʂDN'81 8\|CIH pX(WIf)"NGNI> <LBd?%x!%@"T 0h`q<_ . %@@0(3dlg^I0 7طi; \z 0?x1 g/@D @dk_e >wc7SEp )pxǀ}8Av<H 9aG`YΦƅ}>xEH^!]Ӊ?No8=%Lч$/B_H2Ͻ'IA a  T! ? _4 `B`@ÿ@P |G>$  \XPS`< P<j0!*2<(x @0RǂH ,l|pxA H 6\~˄eƪ|JtS@[zM>UUb_@MoGahɃn] @m $z1&cO_4bj<K*8v ,xYp0ATKCx@ p<08 0He00X?-P z("Qp!+< Q4t`W)  Hx ?|A(  P2t//WA =: EtCxH Cc(ի >%>ۑ+n!OO7k3m{ @P7>g+ɉRf*}Ēӆ$@:p< l BJ``0 Ճa  >!P \$(q  0 J 3@h6HH YGH t *h `Ɂ@gp(7{A  @ژo2g Plx zDG]Ls&@TX"sB!1|/$9C t[4925W%b#bg8+)HA8 {IS #H@Ɠ.aTgP><|)jcޚy75L@xo@ď`aa>{GӺyDHHPuF׎7CL?p z<0@Ā|30ax  ǁA3¥ރ@'N "KՃR` j0gj PB: h!P0x&1 |D>?<$3 ǂh,? LЙSC$S|6|Đ9R?  L+O:p>! ;1nTCmcla`pͅp,{idx100dc00dc00dc00dcH 00dc$"00dc.'00dc, 00dc1 00dc>S00dc&B00dcCd00dc`Ix00dcPF00dc.fQ 00dcp00dcfu00dcv00dc{00dc":00dcd00dcRn00dcȚ00dcZu00dc؟L00dc,h 00dcD00dc00dcp00dc00dcf 00dc 600dc^ 00dc200dc6k00dc00dc00dc !00dcZ,800dc2<00dc700dc900dcj>00dcE00dcM00dc:a{00dcf00dc^g00dcbn00dcr00dcv> 00dc00dcT}00dcښ00dc00dcB900dc 00dc@ 00dc`00dc>00dc"D00dcnM00dc00dc00dcw00dc^00dcd00dc 00dc 00dcv00dcv!00dc6#z00dc'v00dc69I00dcM 00dcW00dcF\o00dc\00dc^c00dcf00dcl700dc|`00dcJk00dc'00dcs00dcj00dc00dc  00dc4\00dcw00dc00dc"00dc,00dcP)00dc00dcX%00dcl00dcf00dchA00dc00dc00dcT00dc`-<00dc300dc7 00dcD&00dcH00dc|OY00dcO00dcUS00dcq00dcw00dct}00dcF00dc^K00dc00dc000dcܤ00dcr300dc.00dc00dc00dc~ 00dcg00dcq00dch00dcn00dct 00dc00dc\ 00dcd m 00dc00dc00dcf 00dc300dc^9 00dcr>00dcDj00dcpEP00dcK00dcvQ\ 00dc^00dcc`00dcj00dcj00dc~{00dc d00dcx`00dco00dcX00dcq00dctA00dc!00dcw00dch00dc@r00dci00dc,00dc00dcpL00dc00dczi00dc200dc&00dcB] 00dc&00dcz+300dc100dcT200dc7"00dcI_ 00dcS00dcZ00dc.hn00dcha00dcq00dcw 00dc00dc`00dc00dc[00dcJN00dc00dcz= 00dc$00dcu00dcj\00dct00dcJ 00dc^00dc00dc h00dc|00dcvN00dc 00dc'R00dcL,00dc 400dc500dc900dc^@ 00dcpO=00dca00dcg00dcj 00dcr&00dc 00dcƎ00dc900dc,00dcu 00dc00dc00dcR00dc:00dc.00dc,00dc00dc 00dc;00dcm00dcBb00dc00dc00dc00dc#Q00dc*f00dcL/X00dc000dc6S00dcOK 00dc>\00dc(e00dcli00dcDm00dct00dczQ 00dc^00dc00dc.00dcvvision-0.19.1/test/assets/videos/v_SoccerJuggling_g24_c01.avi000066400000000000000000023004721466211133600237500ustar00rootroot00000000000000RIFF2 AVI LIST4hdrlavih8V$ @LISTstrlstrh8vidsxvid0u@strf((@xvidJUNK00dcvprpD@@@@JUNKodmldmlhLISTINFOISFT Lavf52.31.1JUNKLIST[ movi00dcJ<   cXviD0050"b:^\  0" TcC`08`0!(@-c 8`A`Ah)QV E| ȁP`+p|oEP  Z Ȅ@e"@dAd@d,(1`!0!N ! l^ d@Ȃ 8a|/&A2`A AX X8S B #-xd.l F ! 5D @8 X!"Z @T-!3 tK`" +2 `@a'vB\!^Ȁ, 0r €,\!!0 JA`"x|8ǂ0l r`0<_h aZ/vLx< ,xo@`Z20`6L ,2 >,vL,KeS5Z 2 ,3@pJ/Ņ Z 826N " 4`Aŀ,h@` ,Ȗ%"0 D/dAaS0 x @q^!B 0 AZ AcȘ`Eh0 7 X26ʀ,53BdA`^ "+X |/0\Ȕ^ Xx0/dhȖ 2&A HE_0 xXV  \\2"p)@S'pV|X "0  0 0TB%`E`d@D XdZ @d@ap  x+ ^>? S2<4` +AX 0  h>ey,d@ŢP`lƀ-as,l "%B+A/.D,i X).aA?Yݐ|?ٓd@`J AN^^ #D 1a@`` @xK., bX<'  ddK p`9A pd@_> e ((J ApV9`>,e0bS@a8ec`KxԀ,)L SD`рa#rL,L<S"..`,zlJk ?Vẍ "D\\h\ `x`)LA.MV   <% p1(CC`CkPOD8!@0 dL!p>wᕆ)h+A!/`)L0+aDD ^>KˁX  PX8 /`AP`0>|b)AX   0`σ@<2V0l% 0 >\c"D6Aip x`ݒV20Z, d"ݵC`L%CAeVqC e<"yp0n ؀%)`x0 <l#ܸ5Xa;m  0 fR820dB"0X<&eDAX Y`<$l#.`6X€,n5dAip+d@?"20d@  d`@S@tE` 2%2 |xŊ ""dps,2d`:X+D %#exA|H-`@@tDžSȂ @/`* h K`)0<$lbdb0p 20p (l rV43 b0?,#dE`A`>$h *cQKd @`@ ?2 LA/.d˘` q@<l @.X`)db+YAZ `,`  Ved@>7cAY`AݖAP|..`"+Z\ ;qP%%2\+ Vx` L X Ͱ!0 x>/!2`> S0@L!N 80`@` 0 p"ŀ,0X.xo Z @"S 0SDL<\` ? 9xO!|(̂@Y`AA 0]01yqx0 ȋ;D  <l B d ,0ZsXJlD-DDX QS @/Y Y8\1k"[,Y8h0r, ,"sk (+?,%0 X gp +00jxN;,ALD00 ` Ņa@Ffbd.`V1Q,@d`) A? bCe(`20r02 `0 {X.0 "#`0l+>eB X  h+A`'Sd À-1C"0n "DPx x20dB0n @YxK }8̲%+ İ`@`X>\{2q[%0 xHPV "FYS\ AP`\ edb/V%FKDD6Yh8̂V c,2 |ؔ^ Z`P qp+0|eAF " 4@̀/L-0\bS 2)?b[ XAL ""aCpVa,DxOVAZ    ~ϲ " D0>|x"+a`ܽx@|EX<`n˃@X'&+S2%"8\%`ؽX %"D  :  X<b8X<\b" @DJ/Nx0l7Yq`)//eaA/F@bV:.8 `S ` ,-XKĢA`/q#,@A T4`@0%`2 S"0 0pX>dX`0" 0 V@D<\` @xP| @Xi8\K, 2 2 Kp|Ȃ^!,8dEA ,Bi{,2  b26KaAPd@`A.Ad AL+A `>Ma삘9`@h0j(4%_,aA0p0 "b 2K`A`KD  BB`@DȀ #v BP\ Z0l Ad@x %̂DaɀLeL",00r>7AedeD`Sp|_A` e)X {p| u؀ @ArbbAQ8À,x#4 qxd`#d6`'~ vXܹX.A(\20V(2 |ˆ0d,0 0`J/Z 211ax0h+@`>dˁ d`2 V@s,0.?A\ "980 ?xmx.h>$dA&a*VXG`2!7p| aJ0+ d/px [ X/` DAD"|O0X`?ḸB%"p2".V0Z v h >$a(0 "*\\ "`|J.` Y-x&J//d_ , Șk ><eA.AX 2X>4atJ{%S%20r q|1<,-K+d `9d>p%%dAF3(20V 0\ ܉p  DaDA?Ud@?b/b \no¢0Q0CX2d].8'XPp65 hPBh0N "Yd70`A`FL@.dEa3uX/ip+x `>@iIX.00 `t@˘xFXp^0p :/`AKDAX,&ZXBe0xHX "@"/@<_x/Dp0`2 d`Ȁ _˙h |.ρ`U0d@ {AZ+AP|0+AAAV0\ /./cA8&a:b`U)``20`Ș`È,@^ )̈ +Abdb?d $,2 ap)`021q|/L<% x21-xVA  `S<+^!,8v! P@]/`0r d@+D`D)dE,>|˗2+AZ+A0%BS V@X6m80c,  ``yS2]B[u`ѐxXX2&``` @ |๐`*`uKр,`>4k20h Kp|?ϲ^2 }AK]Qxv,- pV#`.`Abd@?7pSș`A`AܵX D Z>,b F @A@S@&˄XA pVx_FZvV{`f 0xhX K { S"-V 0KX zvȀ\ ńDX=2 ;84, pp)`+|H0 E pVZ 6@'}r$AaaN(K;,00l 8, p\,lE` 2S2  ` 8! ? `24! #`5bS `J`(0`0x0 VXb0r  XXAc"S ș`262 { 0r8 َ\͠c:U ƂHHQHx!BPYV2]Eq"t=^;fǣ2E)@J\ ̀FƇ`%y1s@q7,-+F @<Ip C`/hA@ xdp B _D-/.T\ 'p ?݂A " `@h"X)7 ;+ BD  <p!3vAZ V0 "@>+-2b "Ys )Z;, |o>h0 "@>pIaEd>\ge)˄2x(V Ddb`eVDXX>?B9s + + X 'k bS Q.K` P,0p /`<|!))@V6xdp+` |8@ ȁ@P?v[;i5<,>p ";.S026KxHİS0 , 00dA.a`Ah$ax A VAxʀ,1h)q{S +v` DJ.%0^ v !>A Yd@`+DAܸ a,KL Ad"0SȂ  j@C@0z^ q `V `9`FZ |H0A`S"8ؠBHZ9F n0 VT @IbP0T+e@`դ]`EQZL/HkcZZku}7EbӤeN ?,Ot8j lA @/Pd Edx+AN L>'A( PHaR$Kc/qrEI[/e+.NaTB T܄"ׁ?2>,p^a} a0>aD@A|Gı Bi{ .D|/--4Y€,20d` &O6BS /aD^ c,Jd p "7F `J`Jd 2\ `\\ ;  , 40% 3 d6A ,-@`1X ;q `}̓$dAL q@>O@n`x Xx> +0 YV " @><&Dy H= y@99 X zȀ,V80ZtdBd6AN  "%D  P|@)dDĀ.ˀ)Apy(A 0d3 (K ȄV"d`0l --cBa0r>_2bYp% L L.d0ZwN V26Q(A@ (@V "5T @*j/tV@|?Q8%F=DvS$̀-ANYxGep|Ɖa.Xܸ3d")k,tp " D 20|<51A8G)cLK ǿ8vٖna#)H9T#|/H hvs 2 Bˀ,<1fЅ1ד$jw64 Z9[ ~T8>wA$i Ka1V,Jd xxX 21,0 {@  J#$ w>'иJX3`ò: aK0j\2_bX "["+A`k @pB9s"P1c, @hDY`d4`@`/q`, @æD C `08 0r "h3b<`âa/r|l-2 @ X)AP|<b%s &AL ր,- €,= V2^ua|8><l r *hNIj 6qp>|?˰|e8xe>v"Z)˱@%iSM"@l'0>vQ `_%0)Nx `̃ [3+  [,^ #s-#6|_`   €,_藃X'u4,\ 0RYZT4F"L)T " '7zPH2P 24< .҈E?d$<t@`?Rg# F#Ԍ2=&nBU/|H !d(Ew[A{#u@Qć DʴNb0Z<`pJ`J.//d?MDd 0`d4.0KaCp (0h2 dB `betePB.k Š//0 qqx)ˁp`*` [A`Ց(:dSS  A h`p)p ;<,ݵ3 + *\`ㅬkls^g Xa|_nS d3)X@jLЀ-$ 52 }?HX |/Ӳ.` 2@ǀY?LôȥjP``D~SPҦRAZߊ"D ޔ0|/`i Ɖqm`0R`A?L-X wDp |G 'Xm+`nQ`˰iADMѭS1E|̴ `|?H8amA8<6 A!2p//˶ `|h%o _I2>ofd LpY À,Ii%̀L:Љb`2)a D2yVVl>4^ؐ ?L^?VZoYP-Bmsb!A+ϴ\% -(X_N xǁ`[\^`^˿fcztp̀8mk_au@6 %L t [@6`5Ỳz,6߀kk\]0c%Qݶdw<e>``Un R ! x/Y9sv8 Ǭ@8t5%ҙZ>J@sFGG0RU Y멚W+0Y0Z%°`o1kyy9n4Yq`X,P`"F "2YH  rYqź^$î 4~x`0Zq ^ 5ݴ"P̾{D 5,-u&| 1```}оRJǁ`P sb8%&[R J8? htҮbD4ҭ@qt$;G[i +* GT+`A l,0,p @0X, ChPX>>`,# l7->? m{F̃SÀ.,+%`f4Da|?l{ d0[B>/ܺt0~u0|EQBb- PY 2/  qhWk,>Y6@i[ P@apa?6_d x!`(Y-i|/r aeE` l7V  E@Q`>$l"A ,">@ܰ0X,f~H ?X>'Z@a `Ȁj%>$i@2 xɀ.3ār bCdU3ھȁ?݃F  Qe^Z݈>h@ . KX9 `| ` ( ŶP,b0ܸ8^0Xd6Ā-`csޒ\,D"+APVݦ X0h |h0 #z1`>?3|8}x0px><}lwv~l2,3׷@,(J?~>A%X>$?>o10|<> > `% (Esp` {^a>,`x}HVq`,@`2>g>40`~Of HLEŀ$~<X>o}`  Kn ca X%X7!0>$SX >$ 00dc{P\ M_?<`6>_?,"aG`r0 0XBŀ<D`Q?x6@#&x1x<$H0P`T0|?E#|p`8 b00dcQwxl|p|X1<,"@> ?`RX( paJttG>/"H(A(޽X!h-by vXFC| PyX>'*x0dP(A4a>dm`>k x?  v`8 8>.D;@8ڀGq$@ǀ<|а(BC @ ><1<$F6 i =?0e@$  h>T( | < P |U; A$@%"2xA`?(>O8\!@?Đ<pH>7`_ɀ<a ?4(00dcRq `?lv 2` O€<0|W`QI }ٰx/ ˀDJˀ=|0|?!MB y;ƽE&`2C`8ރ?N@AIl|< 0|(A<ʁ@?@ |D =m@"},<`k@< Jx|x>$ŀFdw@o A>bQA · ?‰,`?@/ox/A`4_>OtgG2`T qa|x@)|A?$!=P pp<, Pl >}>oa?txATbp||ÕA6{@<n< B0CP< `_x_At*x80!2oA ΀lp`< h0ǀW?x/?A |ogÚɉžAtp`P x>` @.6Wٓ?X8n{zXI00dcSk }*?}8[À=` 0 @"x>^> p @&x2|{`Pa>7H|ӡ1h>7>΃0&0npa @T |xHA`m ۄA P<< &`[͜|> ?SҀDxA?T< A`=zx/> P7B<? |`PH ĐettX42@|4`UA?ŀMp|Xq pj% x2|`|A`X00dcFS S&60|m` >k` ﵃&~#+90|(k'p`Q$"A0a<)\>_ `oހMl6?cGj xD| p x8D0|S|X p>di  >/~ ><P|?A€D>\``x>(|/?ͼ ?BH<0@?`<@< lD47b@A@P P<0!h0k!" k>`Q* p>\k>'`C@ @#CR |@2x_`sRAE|8A`ÀG ̀<+o ` @""T>   x>|cX0ͱ/,`?00dcTf8 w`{ `l0}0@&nx ?l` kπO}(z? 0xA`c€OV?<!0A [<$s!ϰ>oLM`#>opCxoH<  O{~Ճ@'w/WAFz 0@&><`0lHB}H\{<x> @" "-.D$*|/ң̀D@>`_MD a\)x>`&$?(AƀD Px(@x >\)0B0xDe 2e`P )DHDP|A NpQ  xX7<] @"`g p|8?C &.|Wh|ƀDxAL 0 @<"0|/ѻ&}~` ?@">;H>D'ہ`"x?W{tV\0|8<`h1p7떃A lhJ<x_`!@kgPYcz.>$ɸ0 >0x(A 97*u<#o\\i͸ |8\ xOrbC?d#P|HpX>W @:93޿``!*< `|]ﱠ}my6p}=]iO00dc2U`x =D(x%bP(v  4;~%)"W Px?  "X?( |0`0 "]B5.P!f)*ˁ |Z 1*_U4 7@J@HZ (A Z .%tP>sbP(ALX>|^(BJTF?H0)?h tS</`Bz}0P> }@>stGH2Rx?X3C7T(Ľ/6Hr?S۷HK$H`>?L֩A.T @|/2^J  tV+APA@yoA@ 0 m?蒤Kp6%]FIT.) :"Re8J@6(%T3opBp*.i80Ue҂ZxK{c/ElK>aμa(*/Vpy04ࠊD,v b[B_@aЊ#'P0%v%JF |8Ÿ?PgyP0`S x Ġ|?AUDaa(()=m#`0. c%mP@U$_(Fa`0A͏} Qu}l@ʋI. + C`1AAV 0#u ˁ d|t =DUJ R. ?#P#X KA$vY^00` :!%Pa<<bP0J: C0x8A@àC0((y`6{"U 0)v `pq(A A`(@ܢ^`!@&  (0hf aJ*@h'^@`6(h> ?l YbX<,"_%G}@(Th% j(J t| 0*M~¿:K001*?ꕸ @åj˾^.daǠ~& 6 H"p -H0)`!o/]Q||EoTtDAE   (%̓椬>pJQ0xACo:}h0tJj|%@, TPt XG(fGhC.7A C0@#@T#gT":oJan<Z[`2pC1>;hv`Pn?smX?4@ϰP$ `X׾ aڠ`2 }T@Dx jJ ;_@`4 u\XJ׀?GH4 `<_:%`7LxĠ}l>W?.+TJxy~:Nґ 낀R/0P `QД`0qA K2uc20 R : m|IRuP>ħP/SS[@%/MT( 0~?N=V ?~:?>@xorAKO(@.8h1Dž:CW<_P.0.H0l YH0l2P_)KG `pPtt ?@~^JP;SGò,vD]%*eұҀ<2Pl`0~ @ntQ0KH<$jA%j?^%yGˀsKxh0@R 61;|C!(PKV h;` ]0 )[ p0o X( 0H%0pcO0H0(`  3P0)c_h @dt :H>h"xàC `84)X: GGcnGZ w@(a_# {ʂ|\!R J%xu'u>!SQ GxT%3`R`$ 3GA ORP/`-FB+UP6A @F+(>;x0ۢJ%KG<p ! 0Q(+áT `<$ $FX |oA8)%PF,ȓJxA : >'\%0J>'gPtJQPJ` J`(A@ q@`#uK9 JS@<@ Pp2 %hK>! J;R P @İ`66Eh.w%oåH<$v40K7C`2 x(@`0ix#)#/%Pa(aH0)F W/`R0Հ5S@ P L$(P`~Yx%l%}"Ẁ6ҡ* `ÿL`RFJ%H @ Cx/0AO0!,= `(wD, %%Rĺ AN" Kk `6hdJ p͟,R6eN'`?{X<e 0 t (+ߟ(P0z `6 @l (T+l@. @ð1"x>aMyU?@4K 3d(0*.h<<`mRɁA{A@#0Ft"/TfTE}V" b@@]TJ J7fǐ 6 1|1 #) P +A@%x YRoH>7(DŁ ;P|pt%A(JX ;?Dh>?OVeՃ0"Pl3H H( >,=/B^ˇP0G : a0JP0Zb78_|_pPPCP~ ̃pBY(>?e 2O߫/ }0| ꋇR(ztŀ$ 34G R #*Df$(π,Gh(`5@J@^Ʉ&* Pa|$ _0`S ` 0j @ö :X(.T 08(r~ &ԏ Xx)W(3òc()phR!p|8Bc( ]_J?.iWt?5|(wxJ+X0(xxA B;P0e/ VN * jWO4 7wGmX0Ί4vwKA eP?EdKʁ.T'W(P "!՗z^" `2SU*L ".M]A0Ñ< xJxA`c<;T #6>]! ngXv%!.h0@> Paܞ`t#P|Dq >d || !A, ( Cb>,^R#Pv^U4K08>**AƁ*{!|Д%:|8GSIF>dhP000( #P|(U*`x80 PB/0! % @`5Az y` K ñzb|(!A $l)Rt !({3AHoD8f6Bf+R>m.WU_1`>7 D`>4 t$1 <5)p 0s Y"P1TAD BN^` ǀDQpGA>/;Q4@nTp b%BR&h) m<܂X(pJ@a`à0%?k4|` P'8) ͨd .I~ 0?%J)QP;SP 2A!L>C%31`,P I(A!qB|f"藀Z~#pGVX8Pı sPPa J B0 y 0 B|XJa!7@8 ~Eje>$ #Dx߶(|\\R_T<RkPCkX PD: Ā/n|B`~ 2h/w|:7h>|?v.}8j/xH <C 6LQ80)aY>ك<tyKZ n><rLd&JxEx σ'l`C6zix0R&0e >`\v )SU\& 0BXR"@`: `aU2$t )8xK0(KY8 ;(h{{KĨ%W' v(e;g⟏ZQϓ@p߁!\ 0 <<ƀ5ZP :P0/0D$ b\p 6Մ!#K2 ˁ/د J /:XH2>̀%*kGX("``6 H (paJ|8~%A)}At"`6 - //\ K/Mw~ޑ(z3Q8@3THa灀L2D=[](3Ѓ>Y"v~?!w#MC"Klv6@%@|xvcC`í(? 0 P`6 |Htx  B `5x %& `(V BP xxĶY[ |AK /a TUB PPt_մt%aK`R"|8\Vavb`TWB (.D@pS@%>԰Dɀ5 + (vM&x(Z>|]*px(FASH P%@÷+J ab)\ 0h|x'4E-mˤ5T;p|([(3sJdt pa cJJ xDQ,@M@l 0)J :@tWWľ `a(1eK0*>O >÷5] ̉ `DDQQqpCN)a lhlJ@`PA|]06)( QFdLHyt%U/V$"ˀ< gK=(ր}YAM| D ư2IP~.2>?yREbF <\p)_ 0x { TB: B0_ :~.DV! $/.w㿃u|o@`>у,IІ mLP ؐ <`Qd0|?x@5 ڶ[r }|B >L"p)8)PQX @X;&Lt!w, : "]jP8 50!pGx0gKxF30fN >_T%5D (n9 a .=M)/H(x^<8΀P1׈)(J `TT |p61nDTZ~R$Q>4 IA`V"@10߾_`2H8|>4x(6 z yP7  %}_B? (B <$`0G X! h<l$pA8v)xċB.A%72XJQ.4CZ<< x<ðxˋէA'#"Gyx0>$+$a`(F#P `4">4$,Ap:v%X%?HB@0#P|XG%#{ %th>><B((J BU n@0G7JBP(8 A@X00%0xH@ñ*0ĀM EŽP8 8bO?BmPx:5`ƪ|oi2eXp`ʩ> nxM@ €2LCR:(rNS+P9(C`&s`/|c wt0 >DǞNY"0Kŀ< p|/ž^ {uZ9x'P} AM|$|JAxȌ%yx8Kf*S| @%fY}: )q>"t0HԐ#D<%$F ~ P0 @0!P|?KAXAV?x?uBPz Ȕ\_%Z;HN n|vU!h$Nb<:IU|/AXJ =ı'x`J<)2|H?0HĥjP(xAH  pdX%J$QmQ0vecfe@˂`? x5BX(jJ6 ,~% >l|K(7WopS q3W<F pQQ= 6x>. T>\Q82 tG p#{C Pp k(zp8 ˘RN+_p(ĀTf! n@|Xu B d5`%bXe U*\ ІaPʍ<~%4 *D^\%0 @*v$P$ܸ P2|AW! *ǀ #@LtrHSPnᧀL0猄 N1`0 |K":@4yD|{3 Mr–7}HdB;xdLLP:{}PI@SuA1~ n<.P\F2 ( j0ZPP4~q\]<\P :x)AxڼW?@?҇S8@$Fߗ~s!a}`< @1QE>P1 hDpK8;':^^#aO?ێ)pxSt)/0|(5g+q {€나|0,Rx 8HR|)P`c )|/0V 0|XC7@# : xGCꇃo:`3Gg*3>"68|)4 "@R ;(xS0ġv~J$An qPTx!S`ʵX ÿeH1 j@Ҹ%qY/> ڮ"= p<$`ŀL F2 7s @N9J vxS_=pfx>1 &f`%!xF !./n{! `xcbpd#wxfV~ jAP4FLa2o80dv J> T0d1v {^ hj|>U@Ϧ~`|f8> aL_5I ALGİ^Xd'l`H0fC-x0f1^ƣ,2 1Чn s@xdbA )OxfB0g!45`)TJ<ɒ!L 0g I 5Ȁ-rP- 0)mA0PO 2^6,2 @yxX0?p|t3xT U 3>k|AXb -3 h ߂8>7w[" np>Dad12> !ANP|1A?C0.*""fK0fA*5 fP}B|;ˆDš_{RŀS8dIz``S )T3p|HB7)kYeAR7H(>n  xDHdx>-(ҽ€'ñꕎ= |πMxZ#dPJp103Ӈ` kUA00dc-   cXviD0050ݘ"b00t1<)`<$l.xH Lv:L T T T2pbx̪p L &@0|Op6cxHlx` RxO pf0vx`P|`; ]A e)?``m0>ga 'av ?P Dðx?@<遊?+N @d]0 x Lht`@lt T'd@0 @`?Iipbp`4;<0xPi1PC`<# 00v:`@<< 'b<h`0xoA?L V! l;=0>L10B@i?0p a&'4;ixx<7`8[3(<;@htvH1XP0y<;N@I`+*40tN  S`i &N:NL:p4  )<"4t+40|<') <`4:<;L1P>gek:8Ixh4(<4@h;8)Cp `6` R%ɀ'a:<0x``p`4;R dIá8G`l1XWki`x_<4 @x>jL!@8`x_`xh@v;N |͎8 h4&cxӁ0$\41ٰbpb`36`y81P880t A3y0I@`x6'`h 8<"6 x>gat i+L;ҘxAP @i>僀 z:`t:iJ <7`P`0<\@&rA@qB@l0'06 2l2d<,? @ *P H|oɀ`|_8cX8<$?&(1X1Z`x_`.`0xwh&xӎ`€4iH1P<4@m81X@ g1@4{B @0@-UMÀdx V&;`<$Ӄ x0t b6x0B< &*'bxH<7`l#0x`ty480vzpy?@8<)(L pb`;B <$hv81Z`xHS zpxxd0t`4x_<7cTm8C"q1X2qk0t x1P<<À> @:6xO#11P8Nv@ d/18 "l L;L  T"0Rxh?*;Vx ŀ<á0bxO`@ !&`l:N:t'LH1P>7cltH0b4 V`ctP0Rñ2xX'<;Nyɀdɀ1Zdh4yxh\t@8 M4S`p6!e N T81Zt铃8<<@Q0L zp`04zPd@*0+<0 à 6x*1Xpf2b}$ ;L0<70x @m2`x`<: < LţR0xHd;`@LPRbpxh"!&<i4 N @.iix @hG068Bbx>y82<Ҝ:L`x ˀ=p` @_>D~ւtb` 2`lv V8<$@N D?,c` @v 8wapt@ >Tptt ɓ|(N:L x1P>/a @xOD'ce h~x"}&`S|Xǃɀ<`N 0@<$8 i>$blv;L:0CN:`_t<;10Ɂ+ƀ<5&' U2`|(L`x8AN{ӄ4@2 Pbpe  x:`a`6ӎiÀ=8}8R xb6 T T`d*Oq1aZNz80c8{obQ$ 駍UwB` VH }*L&@2JӃ0tm:`xHh)L @4 4"xO`b6 S@82xH&Nx8VH;<b|Op *h*:<, Ae;@+d:`x<3Jv zN C~ǀi:diL x>DA@@ӂ @Ӄ@x0vJ l04  T a@N V Jp`0b6!T!L x0t-8@Ay0<>|1XT~@@6zh4@/lipy`|?0p4 <,`>v:``vI<4Av >$Ɂ3_'|?2x|Ӂbbx_Ah;<+4:}0<'`l06 x46!>`30< IL xπ2`e S @݌<'` `0 54x1X>Wbpe)?$Q8IӃ` À*Ȑ @C|( _xH+Nxk\!@ e @ TxFL}N 7&p)I &} P4 z`xHD84(!l|O)áL;`/c達b68D@8U11R`b`"@PRL2`6 x :Il €=S@< @@@ 'N:@``l&688Sӧ @8ñЄ%VHȓzƔox:arMQkA^2]$x>Tz&nD|7U9Oy8ޭpSrGqcgNJD]P+3p L"#6vӧ@R` 4@0t fL~;'ib4/<2ăc` _$6`6tӃ&<p.!bxo ̒c E"$茜 ަ\08ԁ d6m8MQ L2I?i&< ml.:pp(x&0ǖ'Yb#pJ#Dyd,_'RJJS:i99&РC4SLlzIB$fx'x 6iy+2.Me"g!j*qÍ=0 _䩛LwbƺHGJ(>(AkC͌&wROyȮxQ ڿkJD3ey\w>(P"@D-׼ njǖA̼&Vƃƶ!eVϯ=~QY~n=V}0a v8L{ Ht !p82 1RpxO:iӧ+iţ3m024 @h3`xH@0 *6>TR xS4!D04_&ôd31 €<:xOAn\*Ā=%`̓pL=!Bj*(R̓%;7ўS,G*̂p6< H)Ćl)m7 t 4Og0e ( d~8+Nx73)񍎁s'uL8[ׅ1{yc\ŹhRbpGʄUHq=K]((C@ vʛu55G nJWy{TA|#=;MؓݜSdZ.h0x9& 3@Fi]=^j&g*L|J'r.,Mf'E0`:ci2t_@@UApR0!xO p "mump |8;e+/e6ee *V`t6p 2t`aR`ZPl}X2H-"юg¬H+\вӴ\KM0dP}F-a2[&iQDQ:3r),x27#0wջm:kHHM}#ik F'P0v8ڈ5nгiFm6n,P'mFƛN-3@L. Zc_Ѐ4=N Tj OّЇYmVPN'Oӟg" [ 鋽F7dRi 1]Mef8`xjw5ВF*@`HG|@@8DyKO@Z!U6e #iO#ЛU;iACX - n3iluۚ5SŒLTf1?[^_ T]@L@ #8SR7 Yx8N8 :6`n6P@5XӄUpnp^5o?pi/!V6h|j'kmxmAUٰ MJeWP6kƣA=plFNv>vyDg"AFXt(Cv9JKM|Oe9Kċ|OqkD"@|x/UԶXem4_tȀ=mRp>|,8`םxÀ=|١()7yx{p>𰣍zh4PHl_4@|hBAcZ`|Ǝ-jm#[%{R@D VQPƕ@|π=ÀA-00dcVZX?80$@àx/Da>bx8Dm>$ ` <@k `>鍃|A?<|?Dx?A?](|Q<<@>ՠ`: ǀ4rb @0) X(Aq$ P P[40CBq#Ax k\0|"@pD@$  Ɓw>Ѓ |_҈@>Ȁ?1>Q`ͳ l BP ;ƀ< i`%.00dcV_đ0!% H>P>?j$ @0pm0|(Ā|Alp|Rx0!h`$m21,I@0`h< `P hЬ0a@>_`Д K0?z>2HD, @6x>0f|O @1$61  _m$#o$a@?@ P|(A?hPQ 00dc"WTFo4Ph>`Mā |?ĀCc$$sP%P    Jh(A?@40)A< Fp|Ġ `:P>h>| ǀ5|?< |pP 0X>~|h#|8D$EPi$հ|h bx(A ĝ`./T?kX>4bX>bX>/ `R A?e j>l_46 İ|l ʄ0}?>$'@X<`Āa>$&@hcWKğPfĐ|Eb00dcW *x?DO,2ĀTA⍨ ȀL P|`kl~/@;@& =La|80`>>`|30 =|ȀOޘ<x<  @A<`_@&|f  `πL`@! |SZU[cAoD XhBpx@<   0 a0@& `BxO`A `#V 0|h>D!M`<'`?`<yLaZ>/k &L۵0|8A  x>T`0 >`0(P|(v|[g?r@/`?2 |ZoM[@> >o?>$` x>T3ǀG[B00dcXO8 |A?M8@"h0!h?\* 8><`?`>gP A?* 0 `?4 8*0|A.5w*D􍾃+> h>d{a| x0|x2 =?x( A*}`h>|V<,|Z4  0& &$B0|Ax €U !pA€E >>f9߬AB@>"6 x8@8|At?|/t?k00dcX\ xA`x>X=7 <|_F0|UpxXA`p `Lp`> =@BA>P|/P |@& }A €Tx!?  )Mx>?` 0 ?0A P |Ap 0A \%"x>)S€Lx(w@&@&> a `U4` x<,  `?&80@"h>4P BˀM+!>wd  kXAʀM & |_RO{f@?>X@ax>L-8 0|H[@$!@x?΃ % ! DOt|/?[0)AvԿ<(w00dcYIx @+谀> 0 \xA l`^}lڞ <0|(^ `p > @*%|4xA!x?A@"@A2|_A?ĀD Q{)$@*_[VF<|0>i<` Wm̀Ox> >'/Hv |/X@P B x>-4|Ѥ>Cb|X>00dcYƜ}ס`\Z_® xOA >\`kT}h> P6|| >`|Zt8&`lkk{>l`PJd%BW<)CLPx?A2 A`|/Ӡ|A6(>$ dx/t> ?2汣X2| O6 +ƀtXMo5ɽ$`0  >G>7?`>O|E)j9`k Oc~F%x >,`@x8CΫpۗH_2o@7@2 ?@2(<> {Ƨ  2l߱dl xVWCnd,&?熛o:;I36vMǻ00dcZC {D|A?6 < !"˃ >o *=@?@0x`@AwP|OA`[հ#@ ` e` ?`pI.h<$:   |:_Ϙ.  iA|A`0x޳ b`i> @02|0@ lS|800dcZ {X=,`p x<4 ˀM>_ &C~Xx<\ ?0~R>d >-`p `_@#X?moOzA €D;|k[?`=<G0|?x>|-p 0xOA#~A\J |ˀE`@'0xAĀLg@ða@.0}B0(&h @_&>'>ni |xA  >F0x? R&0|>00|?`}<<@&$"` `q$PxoI`? $xp`: xH0x<'`A`.Rxb|Ig@<$ _>k P0ŀL?k` po&0L6px>_zApCz$`C%@Lm)_@N<'@$(0C$@&x<`">i>o 4|ÀM0X7ĐxĐlAF 0|8A'Dl  'sx>` 00dcK[=<`<<_h0xX >cx(B x( -0!|_Zt6x8 {}%T @&=kx8ALFcT 7}h<$h `p +WKa灀<` xL`TE*<@x( :|G>T `B@&x00x?-x/x8 Q(J/z )Tx0! <"Px/B  ><<8px8 mtHA0P &0`QaҐT:&0"*0`ClLx @@& ^ hp \h<jh0!pƀOw+P Rx8`)t PxB<`; 0px(T&;T?R AH@*7x<`v(|xPx?p .:DuexA@*:P j@xh=2@&7|00 aԪF?|(B@&> @<|: =` @'x?| @"#%Ёe  __tE| ARDzp |@(c_#`"(JR H0Ux_A0€T w7qp<4`mA`B0Ph`xX{Ÿ~ <$x0!||8|AVH* <P a`P /(@0Lt  << .20! =ZL`> h>O`WPx?A?p0yXA? aAAQ0<5K@ ̀DGAxB!t0dOt@ ;x0(:a0?@1=T Tp <`0x(A`A R8<x/`Ax[P p>/ L< CR 0x>|`30x<x#h@HPx?0 | ~`< >AҀUM`F @.<ĀW`< x<_x>w?G x?G@0 x>xHP X>,PaB <'X?AW|x)@8 Px(p  <̀OWjARypx/ hzzP  x>3( 0o߄ > Pp x<UP@&[Ÿ =x8AP  p`P+`> 9x(`<xU@ XSK 0 AO<\`|@VtxG`<0!)J yxh< x_A(?`€Tž>8`|px?  #A|Ո`x_T U`_pX<'8Px@& 3wx80(oxtt0xXA\:;W}UA? j xO@La<|xx @͉`| MHRCpA`>** ŀT> @ p r< @< }(ꔃ@0P}z LL"<`< 00xAx/B>}J x/߃ڤv=x_A6)`=;0<`P Ђ A|x)$|@@A`D@x(AL]A T`> < (dxaOL!<,` <;hP6 <,HATD1W@*0A0Px8C<x<$% ֤L.QXS x8@88 |  0 HP@a7A<?x8[C2B0 h0a<_p ``CƀNA xV p `< x 0|_* x<, !۟|8At_TXC A@R <0)B<`|7?@0p*|T|h m|!< a3x XPc@ @'@0*P|`xSh<xA?<`P %Op )V at<'  * _`<A< & |bx?A 00 ?\a`z xXAd &ž@<? zo> >?ŀMO>p  0‘ 0@ x<{P |`@"JaA Є2xXAA +TG `C ?@\x Xt0`> =|~T;|p`>A&px(A#9qP8y`<*h0  x@& Tp  =)z <7`R9@<$`P  a 0ڀLxA<xhx8A> oݐx/ԃ0҄axh0hA<p`BT  |8@@Ux_A>@* 8<<@>.;<q@/x(o? x<7*|wA`( "|0| `a<ߊ~o@* &>D` x =P; 3P &v~)\x:+p [#4rx(< @&<TTKO |vj<|`І"+Xx@_ @.+ TA < 0`>o< x/0;0!|x8 :<jO@*h0'ڬ _)"a|W_ pS0 8|L# a |A(>W x<$` F<?A@_`?{a*D < HA7@~(x<[: AB   Ѐ h =hN&d @ Rxh< @.h< & ?T<` *<aB>?ڿ@. =?Ux(0x)/"`P A A€T|x@,G X <ؠ p a!.6x(Px/ _DEA@&U@gն@<8p`< JPjo >A+<?W|8h>0x(hA Pa<`@x/tJ:GT x@* xA)~ >,_<zPV0xoA >G ޜr <4`_X#{L"U@g _pT  xO`C+ 0 *# 1<p@DA @x?~ Έ x_#ƀ^^h<` @B* ~@xSHD@axO  `<a<'-pxAL 0`>ԃ<,aP  <Rxo>,tC za.A& =Іx0!mR =ϲ#ެ x/p R>>Ohx ?xoĐxxRՄxO7x<[_* :&yH< Wt qx<J_@.%M84U!WxH=`xTPa>gv`<@ <+<`?@p /A  0> 8@x>,8|>A0|A<\@P8 :~: Q,0@=P!!xXV>(Ճ%2?R;x/A&/0 (@:)tHbH`Q. ,| `!ˀ< V$A|H`=d{A.< |@"E(!#U(  x(A<_ +p<8@+B Px_[x?AC(R ` h< `Q ap*40 >'p K@c`<p <?*h<'RpxG| *x<`_x(o<#PxA` <`A z <<_xXT a<p Ts8z#)o0 TP A`*zx(@8 A\+Px<xxA 6W |D`xHA{_ 2* 6T@+dxh*xAp_a<%`>G.#x p_w}(c |z <`Q(<T 0Te=P )x{Tp<T'|( _ SW(0 0xAUH<_m Lz!j A D``C`a>DA xSxT pBP @(0(: x(Ppx8dP|P"@* 0(U~ h<7 lRk›_*Uxzx}F ) A zA!``0!$P<<Đx?AQA qP3`+|@=@2xoA )||T$A2$̀P 5.0 Px?A |A(I`!7~X<x0!0x/ŀDЅ<' P xX>O`p @.>x?AO=@)<0Gx8Ax>~ڥH0(@* `e4 ЀA>7DEJ 0 |@8PTpAx_@5@< @'@>Lŀ\,g߫2<P & AZr{@x? ˀWP x<p w`G><4G@ Cp<'x&Px?l|/x?A ӀTx  xXAP|z h7p gS eP p p ~  xS0ȀL?p8WǀUxf5`0!A'A`ME *  < >/ 0T`ĀUM \`_P <|GP 431Z~*;܁ Bx(Ճx/A/S 0a0P:0 @/u_r`L@ (?(<`x>'SıU@4v]%>"P7j =P $dp`CD|(8`).`?@CQwU6 >J"ò e`0HT $@V ǁ*:%|K:{(X oSRcx8A _ı(E07a>8  {SpPB!0`xLZ 2/6}X<ר: A|E<ʀL026G/>TpxoA",paz =3xo|=0 D -˿  AeaOT = @*ب_|O5P4 <,DAm_|(`<?0+ sŸTp<``Q* h<0 QJ0 +xS  wTׅ:0=  v?Q!0/ %x8A<0 Fp p@<* p|/@(1kĐa| 8æP <,`%XLR)lFD0 3  i)pxt 4@@V >T%2x/:ؔ%hB<` 7|9\ׅ3˂' u(@L*9x<70(4Hox d `$pjaf80a19xX(UE. Ec$ p/SQt! w˅NBAK 7XxJ <L"** <cM`0 B 3%sĭxf G@*AB,K%a0|\x4@&@5X*"@<x h2x/A W?x O-ٿabR PDlIqw՗܊|} `>yI> ?`Q">W@ ~Չ;9`VD& |^x/LxB #: hǸ,|0*h ?j-h>Du 0 *CBBV ?Q}0A#ą`|CE\eaW08~ (>/Z,~?0)uX0 x60xˁ?{axLJ|^m xH|/\_66ypȺ/m$FlN)P295.0jq0x_@σ. jԉ"@x<` j8> dD` x/4$?=@ Am[aİa PZ` |%K>&f Ur!V<=DƀG\  ?|zM ™ `d?`:|<%EpN!@=+{ü>%`.Ok{B^ {2SIx0b*_?8 u `?X> Usœ-`PX> hoV =r|(#vl0ch6` h<`<# UU7@< ɀTm2xHA`LcgHX0 @*$\A |Bh/ ||#hM AJx;@0)/^\!oQS&^\ʑk.ZCX83^~  J>|>':|@낝H?ď }% @0xwغIAL`tR|hD`xO?xS=G:FC c 8)yp<A`=V:9P1 {YDž2| S] pP@hvL!x<'?[@P R.xb.A=ŀUO e4>$y|(?C' 0eb@;/0$ Qx?.6T0D4<|x(M=P>4fU ΁<p˜،W{J`)X (N7&^>xs8t{|`AE h>4~ȀE3xS1uP>PyX>sn|-^i׈S-n|1 qG}P>4f|Sj)>P @&nX0d X6)~xh0}ᐧ p|hʀLO O?_@*?@*>XR9T <W[,F_x8A rdTg€N.& :0|/\H QA #@p x@<x` z n:ؼ` BFz> 0->K\}ī\ip> ?R AC ,e >\. -R ##@2%0x/AD1?׈ <$a *P}(T.]<px??>4"35BOQ0a焽Q{_)@*&0|#-b`|Oh^=P <&{}xc4ĀWm0 0 0( T*/~5ppQ71/h0~ π_0 >'Ƌ,E<w.MV x@ 3.WP|Ot\ 0x(Űa@*B> 3& <"и`S|#FaOŀV h32B>,P! x<DvN4ԃh0(A0`P +,)0/xAAgV>wڤ [_~^aLh0!o ̀Np< <$!!`€Gk,G__|Ax`0ApSbjh>tP ip}?aM€D#ɔFOAS*p4,U7 P 0 (/Zj t S?2v%*oA  xh>dj7a0|| x< T *oFp FA_>oMJ|0H0@00dcM   cXviD0050bR@hBdɁdh0xX<4`m01PC@*N;*< 4 T60|_!!< IN V`xHNdðx/@! xxh L_P 'L Ӄ@`1àb6pe p4 Rthvx0t 02a!ӎHӦL VJp6H1Zpb<,iht)N;<:dð4'bɓAI Pex8Ӄ0! H0t?*i?Hbt L;*6+46! tbxo`<2&*0@ b6z`6"" 08<$`p Gep`BLpe i01Z`xO<\ l*b:pxH?`m:`b`0<,`x8N HL; ?`0 ('L x @ Vd0P|(Lp:N! x4D!6I 08X8 +*ai0BL t;PӃ@ 8<_i'@EN=bp &N @ӎRx>Gk`R0HBL T :@N :p`:+N:e0>, q:`xX@2#04Ӂ|qR V;<::d@! Ti5:tb0b4 @`80v2px(S & 10t #@h 0xӁNiäe! 8xpxHx_?N!@Ca :px/@xo0v0tz v<7i  `1X@1X8PBB3 i &+00t x>L0L;RL;N t6z`4 >cqi?2e p V0<,N:ÀdAxi 0|48B*a 8<'`x?A`.L:Lt @cxX@+R <4Ɂ̀GbPxG@lv800`h:=80<\iӎŀ<&&(bQ=`P4P *2dĀ7a!(R( 'd<'`0t:€d @?``; 8a 0<)0;N01X+L <$'L @X @?`:@Ѐ?p68+++Cp4@AL IH bSL xXtl  0x?G@hv zt0 V &L x<'ibh %@<,Pt  @`;`@ €<2:ti0I`l (t#N:`__`+< +L@m0@i<0|( I?c<'a H*+@ x1P'L?N@e`  Cx/A` N%x>7d(@m8_nja!8CL8iӁ`lv0<<xXiBiɀ<7`>L0t:L:ip81ZdL x< P  \!p6b`8L xh$d L<m8@l @d >4@a`bx/*N1P*N4++i`J0vih:5Ȁ<Pv @l +i'@@ *0a0(d &c @2 T `b|Fa 82;`A2ɓpb`0>$r<i0<<pa<$,I<7i7NhH<'  IӃ4A>I')L C@x0t.(JL/zo l;<0|XoMm0>!J:4:Lx1Rd<7i?Ā<< Bp 4|e 㠆th:d@@P| px(@Ax( G`i2`x_`8N Ni@p`8< m00v T `6 L?`Ci22`4Ӄ&cpxOPt >x>A0xH`x_pxH?i&i` 2|:<v V`}'`h a 4 T pxhN @AS 8CN:IIb4@h iy0t:L `+ `AH0 Ӂ@`x>II#+`ixo@<,P ˀ?L21Zpe 'N:`@l & 'L4ɁT6;'L 4ð V `b60 TdG@i88:`xX@<`HWL`d@<,@Z!BLI'L&N8 @Fe"p6;` 0I4Ӂx8A*@l/06C`6h!&*C44! x@?*Nh)'`_l @m:py@Ɂp:L88t`p)Bdm2p`0<$ i .`81R`<')0bx?S *< `eI(+++i<'i Zx]NIIOv;`i8+Ȁ<@2 €?L@ <7`m01XL xN zpx_L CLe `m2tӦ<0xX(:Lt:&N @=0L옴!4 Ɂ?4 πݧcIbxHxo a:`6(N xX 6 <  zth"}BNI&Lt>,'I&e2p`@L zt8<<6d4 ŀ\@A`406 x0t|:ɓ ɀĀ=Pe#m01XLYNL <30&#&Lwla tàxoӃlL04;L 'Є00v V `b4 0t @h  <0B+<0bx'@X&L„!<`_xh<6S'+A :`4 `P `6!e2d @@L:qptvlxxHd>gj TI`4';I*;K8+N>J:L e) 6 x_bbà4 xt x/Gi<$`@0t T0T|8p8<$h `b`v `2p6 1P0t'@̎2`4<0bxo pà\2>a]0m01P0t '@l#0 iJ x01P<'`,Zda 01P/hIx>L 1H `8 N ` e ܀>A 0)S@ Ny *& I82bbtxXΓ{0 'N`x_?Y:pxxbx_N81R`}Nm80v;<;@8Bii?4 D t/06 x<`Ia6x)8*N `T`l4lt0l'}t4| '`0 ̀< I z`x/@t<4p`40h:8<_`m0HRb遊Ӄ@I`KN T?\7`'P ``0D ( <`h8>\e I0xX'`cph3@%=c$2 { 3@{D6T P Pp(*2; @1I 1xR:N 02i80t ;LʀE:p@2R T06 T xӀh (<`f|x0Nӧi0t =8N@}[L6 N @|od0v:P V#0b6  V'0NBdA&< N p6 Tx>D}0CN2d```v;v 40P4 T`Dl`c2ɀ4tt V '+€fS060*<0}  8<<)x1Z`bxhR`81X@ IGIӄ$4 t`|@S'N 0x.;L V40eA`AI *+i@i@' ɓ&@c|8L`h Ɂb>'L Ӄ@_h@+π>-i4N L?oVt2N;` 0e (L Vy``40<)2px_SiP `bxO I`0$d :`4Jpxoӧ@*L x0tôˀ>%1<#b_`81P<, p @L )At;L:LÀ=2`}̧&L L VƁ!'IӃth0`h:8b!>OhLTxv^jt10v BА'v:CxO'<&xO`0>/vzp}€>ٔɀ8hv>G%B ]uIxO&x ǀ,D<, xh 1q(! )@ >-?Ha N0<$ S'0$D @Rp`:LHP80v2: +xoNy@P>ah ^N T 40<0bxH?@@ Ym8> Z_a8t$Ɂ"0>HdoatɁ`R T'Lt(?-[< bx_V0( 2+0pI>Dhp`x`@PÀ=)S*/(P0 dXkO@Hm_[oIXkQFB)-گ-YePI\6kx Rf89@i a1{i%*`b/!ӒYJV b C`$1$"Z% 3rDiNp X!uzuSFibX?h'4l ^00LGiӁ0@ p(]L7MV x!x?Gix}V?Lp^PXK4XT ֜ Ɓ(5j[[Je鬘t At ;i2bxOh32 6pbxxLV0 '0 THN+x>;@ I ``@!Bdh2x/@Dz ;I{e 6U2p 0Hf>滵C-H0 ㋂` P8Mh(2 SbH߯ Px/S$h@2e)`&̓4 Pe <$p4`i8>4僀 p'a :tðbɓ V`6m0<`h#06x<$`i` @l, N ԠGl'f4UreBҮht1(!! X>lvz?uYp.F*E{lxAMGԻ֨-8IoE`0C(dK`h䱖$E8)05G *W TKSa!H T)Ȃ 2o4$@ h%j 9e>RP)W&Y"(HLxw[a%.6Y3ߩxWzNĶT>q{C̖EY a#bx]0>lXhA" G-Ұb0JU $ʸ8M33"&ga">4  e !|/!VL<V.2/󅠪0&O(~D`K*Ԫ.Mh{Kht3F*eY6!U^l}R.oWr2"8dK*he|!}[A x2m^ W 3i~`b%>E4mRMi>'K-8VMF 6?pB,LEAoAfİ2Ƀ@p tɓ@ UL:`4|II"<7`i\հxEPp@ C-URNx *.jv  `]./݀@d% yyrX3qv]Ɂ . s Q $4, @xOS1X>,偘N{9I8q,Tov{L[pEɁD76kJ_+LH#ѳh3:5ܫ}V0p 8SՀՀgƒk+\<`m6 x0t >/ah>3c,`:pb` 4GNxN @@2W]4:L} 4`oZm8;LARQ:M9@?> "n@x?A`1!2xqfoP'lF&2px_Ce:`bxH20>;lB 1Rp|x8J n?F%F(@ņ̤ܦ( n@C6 V K%6+|UcMf{L 8+ nI&|qZ86z ltzms>?vpUչZ=~[UEjc`2s!#%z~< Tv9}n#d^44bàx(AQ p; `0 8'6?L}H<4P<,>,  k%ۖD h-6;N?N Ӧ=2pb|<2|H:p}ݓlP@dh:ˀ=xH`s0p1R`|(A`80 @-X04< k4/6D> P> ɀ<>p|X>@|ӭXEX \ @<$݁xh$#@0txH?`h>X< 萘 &Ā=@z6)`_ h;5Y1X>L:΀>[D4<Fxo?^'@\8Lxͻ| . <7`@xӃ xpӧŀ>xOL 0tɁX `i`hS@opt >|NN|d|H0`5[4{_p> &b}8>k 30|?4in@Pp*Ӄ@H @e8>,`x7W$L‰)= `N00v/>gbx<4 L @`PZ {)tb$H02n50`_2G/ `L00dc]\88n_W,l  0x0:p| A`a3v~Z nF`̀/wm|(nW00dcl\\& nV:lpxĠ>w`Bn/SV\% x04}(052,!@>00dc]2x>}{>v~>?@>w:?o.  ?'Hb.i>O>[/ haW 0Jx0,3|A`|8 ,?|Xՠ|A`  x?l`kpx" 2`J `|`P.7`/ >`Ā$vlC΀-\ ]f` kL/?4p`~ ?0AZd̲  aVd@>op`Rd@,`"p~? CX0f |/[|8p|oH! Ɨw&~% K` >/?cxPC0|Yp>X200dcp]|x><`@m|0`%`>[̀-G0)  (A [&R P6|P0@C x1x``%p><`(>D`BP` , `4  i0|Q,,V`hK0P ;Ն`0@P:0F6h MbXq[8>7͸IT :16|?D, ðP %Jd 0)` 200dc^,{X>t` @c` 'İxA H?@??0b<P0BbX>xA(A!p İ|/^` x(8|B @yhA`P, >! f h\0NK! MpR J??ða6ͽ` U` U0_` _W@(h>vMP F҃%mD(_:€,<,|^HP|__#ˁ |A><P6@!p> 0>w#P iUR#H.P\מje2TPP ?ͨ0C< W00dchkx> @00|hb pP0WĘ2$I I8 JP|R8%m4kp|/GKƀ,;P` W4(.`T182`P>LX$p!(İ|/ޛ(>73I L|06]8Āp!@xxwd& >$``>@A x0"F1x* jJЀM;}=;X˳3e :}8=+٠|/C30xOĀM`>xf> >4 @<`?x>_`h>b0\`_+h>`P@#ZzCÀGoɀG00dcPJĀ7`P *x(A =:gA  `7><V@P`|S1`4>`_c0fΫX0x!<$`_(0>@ àx0P(Gp@bP<_(<`0E2`ˣANT> |H 0)A Єa>' 2А>< &C A 3`@% `b` À< 7Px8!()80g,p` b@> P0 |?A>t` |/x/A> (h`k@00dc Q{8 `_@'KO{k xoA?P<0|8>/bH<, ax?CD =A! `Qx0`|Āx_A`A2xD'aǀL(xfL &A`xER*"IA_<$$f ^z֜&>g6|`g6׃ |_ʀD6$}wa^! A@&xMF?zf0  HCa0|(Pe tb-ȀL@0C  |/^ ^'l!<'`@"0a #6p|/00dcQ\ W'6yA_.|}X?``c%|H?dx>mz>$|Q` ">\`p@` @'\0`Q4R>`àxO OL @2$!`0 xOĐx`PBT x8aʁ!!x>X<$ gʀMY&x0?€L@>w p @&9>D`" @ PH|/Gt }8]?-@&|BA^>@21,Ie@p@" a>` ``*`wHtxO `Q>/<" >4?00dcRux Zp0*` $JS `2ǀ42?`P#ǀp.x)t ZX"FpP #VxK0(ShT<T: !(` GJ@..< =x_ de*7j0$ 08p`SRj=>\`7{O9i*^ Ӏ4zA oH Xj,z A` v`(h?p|Q`9h>d`Q+?/8

    epx8, 0/@'(L |Rp|A &p}?̀- ` [ <'DP(@KA`4K̀4> C|oPf?_|hP> 0`( ^6 `6zh_@@cJHG/P #N+<Ph<`@X<#<KxA`  bgWP`R$ C H<?(|%ߠpAPb3`x0H>D`@d;xoˁ nɀ5u0xx`|U<@|Hǥ<\`30}?<`R<@=[=,`0= L :j[~H Pp|h20xA?Oр?hxh!+P|İax @`<B(AP>GO{th(/2 x0, ~4:ԛ ?`(Py `RJ|HA H?|x>7`?@I C< ҥ́0-*ǀ%P򼾊0}Y Q0V# @k>;x>~450~4<}o}jJ<<0X=\`_%C BQp#q,&xt`>'. KH%(B U>,j2 W˸L;h>W%xoˁ @ "h :/ð`:h>M@ | @?|(+[|8D2h><MA ;?ZT ;€$I<KRDxDU ?V@xm*`!<U`7>,2$6l@A (@Uz pB aЖ @*P? pĀ;2`R,.|A6 }8@>>? x𥳐Po>"|/0>:T`2/6A.' BA@ iOw3|K43z|oS20RQ~pa<<`Ͱ|?v|Y @ ` ǁ’?:q txX /. 2LaB@yT+U*~S C]$Dej ~wo@$+R l)TK,[P$l/!~@/j$|\RqPDF|ԎD(&`V =|ArRJ,2 v mP\$~ @P0)G`3%_ À0$jDc_R 5@ƾ\B>/@@SAJ14<~%`T # |ˁ`>%d4 P`}P3`$9`< P`:ȁ,3M~=/uqv xxAX6C#,ZAþ|78Lƞ$T)DU7@ rP?7 0@h)jzXb "Ia|b#x`3 c@B_V Tm!3("p^AMB<;P  V T@p :_ʀHǃ |h(g(V !  O/ڥD b%O,K{ ٯTM+K.V0 jDڅc9Sk0 HV_tG>x" + .P {.?yhw v^ ;QA1.4 P߂`|//\ CTx> G0`_U$UJCO=L6Ig`.BgA, ZJ  z\F\}tiaesdCx^1 >'M&@;x}Qc?>ɗЃB`?|GdA(x`tVa5tHp< X}W@aN˴~LXAŀ5%jKA xf"7=~{|K A#Ђ>.|h$h }Xo"Pd݀?iX9PaP0RO@`06'0`K`$ p8>w00dc,L   cXviD0050bR@hBdɁdh0xX<4$G@A &'L Tvb4L680vhB@2 T:ad`&*`|_H: eht8R;`p`0` (LL`Nk(N`GCxx4pxHӁ|HB`_7g0PHbbh"26 a|8<}0$P NĔFNhBpx/G@!v H<41P>7ap &Ib4 +<`&@FӁ`8)?+80`:  603 vv01Z`6;`<')pb<4€<1`@@S#e)Ӄ`'Lv<'t6Ӄi Lzdy th  xH'LpxO  0tm80v?L M`R(`4 x_xo`x%`R48S` +0<,h Cb``!`0x`̀wɀ<$`h& 26 T00vJd`́;'L 0>10!à@Ӄ Li 0<'`lH8L V @Ӄ@  JpІ:N 0CiӃ:< x|8`0tcx(AN x`0 /0+L8<7`i01XpN @x<7`R )SӦA!@`x_A8>< )&`<'`'0'`i<#6:dt@1X2BL p` )@l:Pq`4`cx`e0>/dB)4! 2`xXӁ6 &8>|08<'`p0b6p4:dl:L;NiLp:L+<{1(0}(ɀ04P *2dĀB@h;d Lx008<'cbx/S@0x8 H\L x<'i00HhR8+++Cp4@fS'idR(<82`l48`(@8>av V &L x1X2?`IJxX-1Bia  @6!z`6 Gch;& 4 1B:p` Ӄ|(1Zd `x>TBv i@te h1<$@2x>4 Cv:N T;`h"`x @i8<'`m0<4< J]I< 'L ixoL T x>$h @Q2th4lx4P x0vyp;A 01P Pbh:e2px?Ӄ@?&@i?Ҁ=&L@h Y8B€<]p;LBp6 V x'dth &`l N) JeL0t <,CN V `0N T H< ӎ6)R T``: @I I`<;I<.S8hBNI&dv V681Rpx@:pe#6:N @lm00t `:tIӦN:j``0!N:q<$cx<$#le# )<<tl/0`6y@ ``t 'ɓIi$V-$ñ0v T$@RɁ t;L0!L#4Bt@l|p 2 h2`68WfN `e#681X2`/750J!dt 4d6;LxH<,GC!dh0`&`:& 8CN2tP <x(A?.pem8I1P0t `x<42Lp6 6? @2`e@@l001P< '@h 'L pxOӃ``hvt;Ipb`4 @bh(L; 6  'c铁bxOB`pC0Gi21`` CL*R 1X>oR0GIIe @lB`xXdt_81X0tq p4|80BV$j``4Pi`4 eӃi ɓ! xpxhӎ<:F%@` &=7i6 @>,$1PN@02e&N  V_0e 0vL T C>!@h/4ɓɁ >J:dt H1X<  4d@p4 @ %)(i_ v&Ӄ(e2dh  Lc 0 @5|/|8@2H<7`4 ӀM&` &< e00t x1P ' @PNL<4h4@:€>"Apt;L `88O&Ilbx>v p`8N4 z`6x  tt 0b6 V01P <_`l 1`|&cbNt xI1XN8<7i!'L 0e!4x|/̓0682c`0 @8t0:`4 T T x< `<"ƀ󉌇`A4Sh1Ra`481P<,@206 0x(A`pv\r Ӄ(L;@`` @@-L;IH TL~ P'c  CL x(S@!@ztl4 ?'N V @b 6&N81Zp6Wv;`i88dt €?L@ <7`m01XL xN zpx_$0ӎӃ@2 V :dI1Xӧi0\|_L.'*PP :<#5`N @ ' B@@lt`NL '<  '@P +L `xӃi`|oLT 2d㠆 '+ 20L 8A xH0<)`+i@ T0R!BNNJ`x`&;L:q`4dN x>We(A!02;dtt0b $pa (il!N:*Ix/ӧLt !P L V:=0N pBBxS&J|Lt!4:Pv'L ``:`xX?ɀ<2at:L8L:L:+< @& 2xH*L |102`m2q<'icb6 >'dA*i'IZc L 4 x<'``pvv@1Rp4``?A00L &N81XN<4_xӧ&CN:`42tl#0e)dJpv!0x_?+L e0<` ]Rp}Ʉ40 < LN R 0y_|O mdlt2tðb6 T 0v >Pt >'L 'P0< * @m80L x'l8<cxHR #4遃|~!&xH<< ɀ<)20<$Ppbɀ @ (@h8<<`=:tPL&N:`4 >?i6I|t8͛a !`6vt pxx 4v52piL V>#xB20b4 bx 5C` V>/bCd}(ɂP: 0t x<0S00CLd`i2a< @_` `R'`iр=0R&Jpe#x/@0vp4H0v V:@`<hb`6bɁ+Y0<\?X@1X/0|(Np `I`*8@ 4 4t L zt@/:YV ">+F B_Cs|B( 0^ (@jqJ«?QEbqN(i@`b4<_`@J;Lc4 `6 zpb '-N02e! :`xO@` 2*L:NL81X m8CN V`4H0< :`d`N1dq1X<4 T >$v6t xH?x>cp'Ӂ`CɁ60<,( xG@m8<7i-'R0< @i0<,l  0;(*Iӧ=0+@*L T0x_!nJtð64`i?N'Xv@G`_:2t@0!(N`tðRIpx%(<$@Hi$@+*<  x<_`$26 1X1X<<Pt01X1Zpb|_L;'.|Accp=:`x_x@`N x>00*<B :TN6(LzI'L  Tx>'t8>fd@ @ >GkӃ  tp i0CN P T;xÀ@ Nx<44 <1Ӂi:qƀ>v``dty`R;<6,2 &N <$I@>'~S'Ix_Ӄ`~ `42 >@Ib1P81P<'`>\q!&&;3C4!`  A`)dt T:`x_'*LJv@@24 L V V:*L `Zpb6 T;0682xOIǀ`m:dL T0L"bx_?Ȁ'a! 6 I 61P0t 6 x0t <$@0x_ `<$ &(0LN'IӃ'*N xN  x1X2 ḑ'Lzd@?@i02`@%xLHH2ɀp6 1PN00>/f@2@0< I*70p(0]& ` Ipb1X8CR zpe)H4S'P2pxL;i:|< a 8<$@`m2``2`bxӃ!tt2dh|8t|@ x @200t V:€T24Cä L`|8!&L3)I'ii0>GqBIt_8*LNx8 4á!(++i&N8xXR&N 80v`< ++DB24 xXӧ<@1RtӃ xU0(AZxO xd|o @x"|6*jJL`-H!@ p:< M7PKD dR#R5hH t%qG.:tɓ<,F@` 7lxS&L>Wf&Nj`|Pp&Y:d 81  0U(HA-@& S(2|{U@өHb}RuC'8Ҷ< }Cd},ɠ|?D&S 1RdPa)'70pq $D`0tJ|:`|X`` `p4tJ`e4E0A?L:d1>ge81Rt`"|oII'i)N_4GCɁ}0b})p |K&A'` ah ^N T 40<0bxH?@@ Ym8> Z3dSÀ= 1P8 9N0<, Ad`V<\%@1P>'t88Be (tP n3e΀gd}8>N-DYћl`zZe)\'n0Ʌk,1 cD 3`Df#J8| 1ES3{eM<J^ 81,gs6*.HCV2~x6IU숪Őg;dc@R`N+I`L0 'e0><%>iI^& Ia7+F 0vHxղ\ڱ(T!P>h8WWf2 Hs?I*\R1NLd Tv:+Iӄ41P> T#ɓ>Uǀ=RU  p3M0 p8K~+(](zI|G;0%_5ݭbYhǐD0eg\kADZtG=d8v|ƀ U0BL(Rv 1X1R`|8AP @ 0` @Ji8>, 01PL@X8 BvӧL;*L86 ,̃02q`x(cäɁ2xX68Đ,>*N)@zp|h٦, @pƾ8l;ߣ >TW8qJ#s[] 2/Ml"ꊴ6Ԍƀ=|_͈4 01Rp|xͨVH8q,Tov6 Te|/M` |/C/&$i6movSnU +W8V`x)j3IX ` kx6<:0J@4L0v81X0t#h <  +&ŀ<Ȏ0L 1X>vh| p|M0-@1\ɓ%N +ZuP4I\EW5tժ0ԟ|1rڜ4nuJEiGcĂoU_*FDxfzM@ ca@:>LG pYa8>'v FKŕSlCnX cL5X81zc 86Zp,Ku5#3cI@nM@dҀm.WQ, ahhxFy 8,.|/CAd'-`6ydfUi/KȀ= pm6ojB2>f&߳rxl| B| WP\p ŀvZ8E@ j9>'v_` {gw Aqa) 8![w+Ng%`n>D*k3ƀ=J@P Cp$>Bee­Z8v -N!v`8 @)޲d6  *ՁxgTUAM}q2*GP PXs {J)q䃀"{` `h pxh3`@@۰e&++<s4`;EL&1P>p,&+W6v"jM0v C$#hL0>,;X`p/ øKWv4@8Z-m@lv 0x``;@h5&AӃ@^-`[0«r t:uA` "y遊ˀ>uk!ִ`L(@ $NxxӃ@z)`. y`I`|X'L&`PV x` '̓Q8>'vz>T}`.~\7zP4V`B@ x>/w`h 38.P " |*+π>-!x<4MxF, ;D #+ɀ=@B <40a80v`xx>m&%`|O_vypxo<B &xh%$f V8>, 0`W5m݃ i`'1X1P? <08#0| 40<Ӄ`<'`?j`h &<6xIӃ@|&À=p`4 VÀ?`x_"m0>m h @px>i|(BL|*䉖XQ"7A ‚`+< @>d{ ׾WO*D.h[ p`06 ފiǠaU@ ^\ * /00dcuSo^|(0}>w`pkހ7X>0|A +@ PyA 0 à}0>L0(A bX0,|%nR|H8 X7A @4xAi0xAn06@qBp`ɋ Ġa>G+3 |OD,t qŀ700dcS #>O|X>\};+{x>?l @&҃'P =?{,T|c`|2|Il~B2x(H,A00dcTi oр?c?x> `_(l:<e p(L:0|H\'}Az'P0|D|AM}x( 0x(@D&e@$& x>`?c/j0(ŀE#@(@&>,,2xxA€E.>/ ʁ:E{ |HBBÀGUo$@p `! e@6{xC/c]00dcT ~hx?t~@& ?̀LAN)7k`@&`%ǃ@&> H  CL30|A`LxoA D34v @@@" I`8 x?a %b82a 6\\^8`x/KL `xO.zh< B@XR*J"CJ $ ?İD4;gYP79XC_ՉEQ$!zF # |]0|/AAa>4)H.ЄP0|O`Qc0 3m<'`Px/D7ŀGMx?A V 6#p|H? P x8?!f0|H00dcUd8 ?x(X>_ [?t?1 IJ =.Z&>7 ">oL@>t G+0(`Ce`0 08>"B=!@"AL@>g L0x/AP`Q@#.TBV AD|_& Hl xzz8 @{ DBs e@0iA`ie0Q$? (([˄h xD,|_00dcU\ ﵃g>kOX>6kǀG?7އ@ CD.(!B` >杄0|H\>' <' p " >g ? P̀L n`U~-A? Cx_Dx8 B e`IÀ<`t |/?R%9T$!>\.sn <GI@H@7?M|q$ @"$@&bC0ˁL{y͒Ux>O!,!$0(<hB A06> @6 ^5 `Q Jk00dcV^x {||<, 0@LF|_ <,`P < ! |`x |A?L>` X>Dm3'x]xB<\ t<'`  8..q |0> aI-8l`?ea`@&#@<`р<! ?">'& x><_*€t!*Ax|A L|x00dchVۜ 0yhAӀD'"7~{X>/~8` >5~o@ ?Tm?| [2xAEx0xxA X D)F`E`&4q <> nIBW0|X>??D@x7< |H 7> l4 ڱ$[.xA0 L`Bap0!Pd1/V>_t |hL' ` ( x42bxA2xNxP1iyyx0 ) AK ll 0x/`|BIde`?|?A`<`l0|X!@ʃ00dcWX`P|x}l20{A lvo?|I?s2j ?TX<7yp w4d@">'  AŀlH>C׀< 7<`p 6 TA|Uh?\[`5uiAg|O@-l7xA?yc-VɶRKA@!:$px/Ad{60|xڠxXA t0(A`j00PA6> h0!@.atp`Ph<`_xdqսo%Zg?}k?00dcW z>T}`'[cG<' x ` >)%۔v sFP㡒GL{$0|@8IĀ=&x8>l=HH<Co|H@<`0 0|ޞ x>?+p@|l>7k(>I<7 PxoAr!0BR >T #xOȼ * g`r0>pCb `p0x8A0 x/€=|DxO>?)@&'}/?00dcXR xALV0 ` Z$@ dX(@8X>/H#Xh!\x_0t P"mdǀipdxG. P-X2OT-X?<|WP4#X>4.L% BP `R'`@ @|<7`?z$@yA@j,BpxX=h>Wp X c?`  @z7h>%A߀4d @%00|R̂>`X(`?03T-h>7"PPQ@ x+ <%A`  0@ "}Q?@<%x(0xe 2pxoAH^ @ AV?h3;Pc~HA/Uu@x!<\p4 ip`RHL  0|A?}S)AL3` |d@PRԸ)A y N`Q0 n @`(>$@ðR* WPRvj@t0~<P0` ;0*Da(A Oh< }?>R+< ̃X>/`>`ȁ`O(<4P@ Ee 0|H X03}P( e5X(|>/,`p ``T3ra>,X6 z(A ̀=&%G `eH0*A@J x?ˁ?@T<Ѐ6@@? |Q@>W)EP|GP$V`OV(eT^h0Ȁ48=`AJ%X0*AB%@ ip €X3h6 Wh @`S4 H <ڸ4 `ð` 4 @`T#50`$@p z\$@<, ? xA 8\>h<` >t| @(>' h>Z<|O@(|_ӥ@AAd`R 0c00%* "C.P h~%2B*DMiHgv [4wRRcRs6ApD#=0Lu3tr^F' ?}xQ`^~#h0 J X5@<\_L<ĵEP.%vP/à`6 x n 5j8 z`̏0ADǢH?S_o$ug?aJ{CW`SzPR` A>!.>L +=@: (^t: #`0>|!yPA=+& t%v 0|2իR$)Tx փt#HK.|DtnA?A Z^o/fBS9@@>'8@=DPE"@{>tCxA)cL.a<*0`` 26ı, A `5ȗ  ڐcAM@4~%bnb.?BP$2bH<bH|Xqr^›^y\x+/LV1R2D@J^l0\2xA@0P3%U<-=X @d?0ǀs8=tnp΂S@`D@hhͿ%^ѣx֮%<€4)3PC<<T1QJϫ:ЅX~0Q*U-R7|?AuC `R +A/>W%rxHB/`PgA)WC`ɭZQn Sɀ?7K?f^]ziX0 ™)V^\>R6^E/=00(}0CP^$ `^E=/ψۅ;~|(2h~>#%4R#SzH2SekVqճE ?kрj6R u!*|/G(X*c(Fzv =_h .<,JC=C@?PS(!xBc%n Pd> xTl(f 8^\aP>LǣNα@Nӭ804~l+tb;Ȁ4ED!>)<080ᛁ L?._vݩdo"ibiX9À7j?d \ H t>'o00dcZ   cXviD0050ba$ n _@.=gC@7A=q7fA& =D @q| x/?cAD 0x8tzX7?A&0 QA`C<,. X< -XHPz .=. n.DaPQtx/\&p|ǀ (@ x?A 7 X0@x'}x<Lx0 8` @.<' f6``ʁ@_A=x nA 7?V=T  p 1@t Atz=x  P`Dpx,a`hA 0=(x nt @.=  - pn SX ADA`C`Dz=@tz<PxhǠ\?ajx8`%<'`_A 4C<x7 xx`H pxHǀ_<`p Az x#ǀi~ Cx?ǠQpx<'`(7A<#<$P G x8 A\x >,z _@j< #<>Gv0"@\ tn@.X, Ѐ=! p`D Q<'` tz xH` _x;(x`CTGHAx/Ǡ@. 7A  =z ,cx( G\n@.=<7|x -Lt D 1(Ǡ@Q@\x<`.<2QBDA#`Ep xǠp  zX<|_=P  ,Tz pntP Qt $% ʁD x8ǀ_X7A`@.XP@\z<Az x`D xH A\xh 8 e` q/xO, ai aX(X<cn X<,`6tM@. X>op<z=AX<`\ am  =7`0x A xxX<`0p`2xO@z<€\2@<@\ pA=x[iЂ (tBx/\xHǀ0> Q<(`A pnX<p < <$tx8>`\ |R( B0<A x_ǀp .`QD  x/BxX G7Ap|/4zY`DA<`tz; |x@afa *T _p  <'z<\p|_ p B . x?AY@`D/p Xz =<Q7A@xoA`. pzXG|6 x/B<,A#`Ez (妈(A%'aP0"G_@.z  ntxXz @ 0x8?0 @.4AV=@.XnXGxOǠ_A<>7~]ĀǃzB ` n<P  <<p apQxACn tz@AwaDz< A pn. <@.: Qx?ǀʁ<pxX7Atq7Gp @.8cn x8`\z?@ $ p!tGnX<`#xF=\p $Q@. x b`x( A tA\px/xXP @. | @.ZcQzA50" x/?<x(`E!z nX(tL@7AAPx/A=x/p|(<`\ p tx xOǀ . űAcx8ǠP =@Gx_<$ @Jq@(F@ A   >x( GP pz X7G x -RS x <$<cx  0"G @.(<>Oc@n. -(0z $A X7P @J<A@. |OɃ.DGP dGnnp.rQ@.T =<`  xBp`D1 GH0"pAt @.(@x< x_A n a  x?A%  X<7`P @. pxnA`S<x?\Np<D<<t+|A <`t@ x/@.?ZeD 7A\xX((FAX0".<tzwa>D&0"<`  7Bx=<p@Q.<ʁzA 0Q Px/X pn.=<,P |/ˀ_L x?Az<B<$<_p p.u7B(< x/? x\&s`P x/AD z<Bpx\0e@ ! G pxX%@xX Ȁ]90=(a x <z= xOD<Px?A= 0"@J0j=A0AD<(QGnJ(A_ 7 A B@e 0= p<\#|hţ ! p<\p x_q((?AF x<t A\ pn`P|xzF x/ǃ px( Gx8\&q pp@A pp( n 7A% $AAA77=tp \z=\z=t?ӱxX0" n@. X>vApz,X8C| X7G_px 7 A\.1e`ʇnA5(zq?lYɊ`aQ=Pn<txWe((F<x x?B<`@(x?"=P@A zBA=(ǃЀ7p =`E<z(xX@\x 0"tcF =;xX?Pn.Zce`8`p`Dnx_ǀG @<x= <` pqBʁz 0x?=tq<`#sT 1<Ѐ=  txXx x_?P t @.p GP`D%X>bxo 2 x/=@x_ǃ<<'c:v a Q@.x0"A?J x( A A?x=Gxx >Wg<#<$x8\zX7A Xz=A>zc@e`ǃ8@ @JxX3<#<7c pntx8 A xXq<,At x \[P p_.<\@LZ xAp<'cx/7A π\J?7Ax Xz?@.GP tn ai`pCx(5Zr!PnppxO&px8ǀĀ\l Qk8AB x(Ǡ<_. x <x8ǃ nAX<<%(D70 G 2Qz=#nG7A?Q<x%S8G'lB qxA<X<`P `@ x(<,p A V nA@. x_>apCQJ !<x`% q(8`<xxJs`pCx x <_ $X7G>< A<+z<<΀\,ŀUS" x( A 7G><8zGQz<\Px_DAX<<At q8C<4n,<_X7\x=xD  @jX7<=\p<A <'`_X@@Ҁ\abdxD54 . Ⰰ0*(  \x< |Ňp Qb`Dq<_`P <Q@.<.\X8cnpz>偁CЂX7Gx7A!I`:TS /BR`2la°x/"-` t 9Ux($z@V:h|4  7_p_@. x? !<`x xhǠP AX<J=/G`DPQG.=\ |A n z7GiG=APpx X<\AT=`zX\ Q0B<x?A gahz 7<P . npx7?.xG pnGx8ǃxO \ q<x`?ȏz< =J x/ǀP = a `E _=\x(ǃ<`P e@A(<`?qA<\q7? XI\ Z,Zd(P ="pn <_` d (<`_.@=X |_x/Aɀ\d=xhǣx?X?>x>v(.\z<z X7`\p|Oz=8Cx < Y=\x(zYzCʁ= @.X7]zXxOz<.Xk px <` HA t.XAp qn.tV<. 9\6p}(ģ 1<t <$p t|v x(A`Px뀀 `*pxhǠ 2wB7 L<\Ox/#< (xH`XFJz X<$x/A=. <`#'A=Bsb8n. X7*0Xk,Z|@`-x =/KxACM [a ~z!! `0$pnRx/ %0^YV{0 T_u}(k @ n  Bh< :U*5&"{J!RB(w30E @Z$ P 1xX<c`EGGp =x7A`\'r`zX>\p7A`@z<\X@ <$p Apx/=€\(A 0"n(<x_<4x/>=V  3<<?@z 1ЂxHtx>lh=<c z n@J=#x8\xO X>/i<cxoǠ 0Z208z<`x<\zXA<\{p < x( Gx8.Ax>p=\+<>$n.Zǀ dAxtaa7vD `DA A<$PxXA<`p x<z Ѐ<=tz X0"<|/p ʂ<x%<c|Hx<x 0"AAX7AtxX<$p ."<# FA @x/p<#z0 xG?@.D2p(x<x(?t7<#}o=AA?<` H>e&(A=h >h7px?x_`>̏7AtX> 뮰<A Xd< @.0z >4x Q.X>"@ <$<  H nGx(ǀ`DA@.=d  x(q>@. -( X0 ^ %2=\XxA nG\x( @.Y` =À^Z3_|XQ`ExXQx<x@P .opGxX A pn| 0 xP <z|7D AP`D\ (ġx< pxpnz(<  btْ t!܈ |"VB77t ekpax Q>U2PGJ 3` t^4pM@hR1֟S< A.X>wdx(Ǡ. |DX0"[n=ATZ\<<p n.Z _ ?< x(X#x( kP aj |/J0" |&<_Ǡ^V+(] uGai|G;0U:oe#,$.H  paPxXւP"8a}R(12 sx/ǀpG3<=<$ X<paj/`<\nA,r`NF=<#x/>2p(ǀpDX7A\x.@x8[/ؠGA x( xo%\ |(FApqolHI@.p_ #e`jPa,t9R`0%Sj`0"R@ #..`)4 G@0K҂\%d\ ``(0 p|˂`F`sbp|.|8ǠxHÀ\b07 2DAŀ^`/v -6HXz[-)),m̀> `XrdŘ`0P|h7Lؖ2Y|x0"||_n z<><B 0  lz=<7` AaadA ԣxxɓ|hY0`U(*yp$wa"Rd|1~r |F|̰ -J`z3 =J'ʋ>!^Fw1FaP  J `EVcq@"{ 3"^f8)ry|I}&gd@Q"$nX-,!%@l **#A`!4x ~`q(B,AgKb`\  \ IPE*!I/g[Ys`.`?ă i6moRcr^faEj`n ֟.V%bׂWkxaa\pxo "`p͌<c<`p ֈ=7GP tz>Dp `8@>X<`?p<`?ā.[ t pA|x_|T a*⏫U8H `Q@ZⴌJQP~Ȁ[Tx32qzS`ZA!#nK=ViYb0Lt`%YZ}ZE Y":>2*l0r) -V jLp(>|\0 8 A?븜Y׭4?փ@/.X>|X%Qt^pak#A0>px뷨X> `Y0YkpakLWA4?YVjFf0%Q,]5M]D0,>2  , ~ǀ  x>ma>bd> rm l{ajA9 ! 21Xs7Kp8 kw"`l :DX Ѷ"*#JaqxOTsz9~@\\;p)(  0 am/_<ɀ^yc|?.F#dpZrERA|`-@.=<c~L7Ao  Īƛuv< |(_rEy`p[rJ&j0Yn34V>Gk0|Yz ,`<xYw |0>  u0Qp| `DÀ`|>  ,J2 <'`A `r`[7`` xhh >4 X>TD> +"p}DEn@.\"?>7vׅjT &"jpac$mpEDS `p 7A``]xm`|?訅 )TZڀTAp#<'` .Z p P7X[ _A /> ,x?|pQn ~nDS<`?$A]x0 Z=.<  Zk'cn.=\JtGn.@ .X<`?<|(~|x |(ū n0/YA>'>T |˃@+.<'`:Հ|r0 Apn@*<$݃ppaiG%`@<0 @.[<_/\[ ֲ ɢa7 pxǠ0 @. -`?A``Dv> 偸 <,<` p~@.op<nX>| npz<\;<AĀ^?[npx>l \ĀJwx?V70n@/`P Zσn0ppʌ ~T }/RYX7S l:p`nְG <4Q_7 X"c:%k00dcYM8}[ @` nm@@>$,`>p| `(>D|Xpx1>0>T }XA`}Y |xp}/KI% c7A mA3%p ` |_7z)S#NUWUcꗝr <F0VÐ[Pa$B%@>` €/00dcUY\ x8&g` PnyAgZp@>g |xM@&#l<Zd@'A A`L u |0 >  "`P@#xh<ʄ|_pbeBH>{Vrs]/>`_5İe@> ?p>?00dcZGx oԀ= 0|x?w}|2y `}ll }hUpxxƀ?|pe"H> t7||A`.}H>,?|XP|p|2<_`A? P`8 0AJF>`@@" >- |_[|>G p>0|A?`A!(5 H>'`)uDw?kq<'`AA `@BX =$bX>"~>$00dcZĜ ?ԀG{z[܀?[ڀGp}A Bpx`ǀ7lpxOb =&> uV|A[ 0eP>, x>7`#P|R<`?`: P@@2|A2x>l"Gʀ<'0x?A5]ہ̀<|Q>7b@02|8A`Gn;^@$h< |D|^N8$ ? ?  A q00dc[A 0~X?f`0|`. x>o``x> 0\|^V @|ĠyA <<"@6U:0|8bXCJȀ<`A`]?IȀ?<$P@"`0x0(` ɀ<6$|lT_xD>/P!  'a>/Bl~x |8H(5p<a <`_h>`0<0 @ðe Jŀ<!Q @?)yl;?O~>' q$2|X<0xH#KM@yĐ|Q8C@$$ $N <P 0e ǀDx?w6|B> ?@"0|R @  /%\ |(?o<\"X> `6?qiD P0> C̀=t`Na aRPRGp<#IBX>` I>wF>300|(! 6 |A_ʀM`00dc\; ``y/AcĀG?C 1]@"0x/+0 Aʀ=@C ! @ex_>$"H<` LH << 6ЀH2x AF A|8SـL0e  <0|א :x2}l@i>& H>PVp #ڛțhHE!0`>7`?@#@x? _00dc\0q [%X= l)k`#D"64# P @.ʀm` >? W_h> _<H0'dx@0nW) << p @v p@c~a x8@0Lx( >(0f>tZP8]b%+UTgQ{)O*R,h`>a0  0x/ֺFX>aM*/(>gnp[&}D0x(A?\8>K>4 IN h|HA?Uaf `P@o@*B x( @4p|Xܙ x EÀ]oku[wCa Ճ@v5dx/`\>Tֲw00dc]68 v0|Y?|hkxA`&?O??|OlxxA` kڀN0|m ';|hv|(_}X@ ⅃@&5a@(!xx8<7`|8F AR @p PlcxAF>,iM  D;`(W"@>'b 0?0o?`2 0oN@`_@ !b = )rx|`Ā?w``P<,?P<' 00dc]\ 0x?A}v_''0`??TDPx_ALZe`|Ax> !(=+` @ 6)60|8Ā}x`0/">,i\ @& Vx<$! jC8<4g`*(>.lA P'rst0|ı#UU)N"82 B 0x<bHBĀD |RA|hA?~%<|>'+I00dc^0x<^ # yB>D0< .AT0m//8B.@@&-`0!+AT,`$oG00~ >7<\|CaFL!#?<0yZ xAQx<@(.PR@&WPCT^ :TVz>$@>FB0&P`0X0'<P |OA(/&G <ŀ4~*" 0`UZC>q <_lD.H<L,@.^ 0a|P`0% l@JA>4pB`>H_ >?,Opf ǚ , z>6 @0 # Hh<`p2X>  A (<, aF€TB0L?p`BL/xA?,!<?#}# | <xH* "J"N ~%plzQP[@a30 q30*?/8# x @X0 +pC <̃@ |/ @>~`C ~S@x8@8AۀO@ff˗Ɂ?\H@&|D<>l|`x0lp|? @&h3@&j0 # `?` >xx>7`<`@<7`xAP<*h0P>G<|f@`<Q0x `QP0( =>X>˃  pn<8OA?V>L'zzpd`Gt D0ښ60py?AP2yXA`` @*\p  #o0H  T$@!<`?=7ApyAH>$>ET"PxXA`,7B4``0? px?A .?$i?@`IT2@P @0@hDDxH cG``H>)'$Lz+&$KT.H@* `(/I` 0(ˁLJx(DEx84 240)1 p.@qX7Gh pD180A/=07` s>ep~$h(Z0cC.paf  .!<"0` ` >\4 pfA,~`>qx< p3!@#px(T*]D)AĀ${ q7!p0>P 0`(p6|X`Ɂ > `yO0>7L @< n^ x/ xA0H4x>$+oڨ3Tٰ|/D2@<~`2 #&-X>OXB@0CLaB0$R0`P@.=_),`8X/@x_r}`pf >d`@p`2UA K ;|_^ "P|)`m@*<`>0ِBT CjP,\ 7X?,8 uP;u^D!4>R?x ;2 PX0<v px_`Th=(!7Aǁ~|@ p|BQx "ރq3#}@pc@=_ pV #@A0)@3(IDW8`Q<   v%*eJAD  Ch0`TT oմ"Q  (+``3WꢰE O<~`_]@.>Th!&'/x(A<' x7A` O8,) aO0P8_>A^^Z^3`+AN< _X> ir1`:x0W 0!"OSznzu6@" <'S``:>+BA@2|_ @`(AN`$x>?px8O? A` O{+!#Pn?€$GfA < W[|(SX<<`xS0|@5P7D0Jp|A >0xA?LH>$` %8!p< * @ %>0 ;@g@O ;'Q>|xUty?€W!&  *AT`0 CxAz^|``0 P}).p~>/ :P@&$y/A,xփXj6[_BX<C'@%Pd ` :  p>wI`Q @ OM߇`6o e(19`Gx3x!C, +u@\Gǀ,`8>x |(3\` OWp,^,v3p|HzC=`|V ` ׀T)|T HBCx?XtCx4> x!Z xP JQSH|َc X4` @ ];か@a P1x0CbRaUAPKև}z DBX< o0 &oOT\,IpB |"|X3|Q`(w & O|(L=pyOA 0PA_x> >MA@#\6>?  @$: 6KV Qx?)|?Jeix  0 }A~<D'|@4I/Ax ;^%t: j=> 0|XgxA( N*;G0o_Txvp)zϗ 4yIf1p<^%x}HI0`!>0Q@.>  <>\pxP !Q4dp`QL\1a0>$` `3AO?{|8^6wP B!6xpiڟ`).Sn*(ƀہ p'UHfd'q!GAp|X 3XէPx/><c7#1#+A<3l!j %H(w#^XUx+O@a Ap2@&$@" /Rv>@-Mᛑ@C0` O{)xPQ0d wBJ6O{-:/9ɨAf9 0`E`P }G` $~0fJ?C+T < `-8x) R<`(B0 1 >>9 2 H$HA$|P<OƂ|Κ:a9 JK1xuޞ O{0 f N8h3O{IPp3i<1><Kx c_x>np)><0x0(>XBP|P#Ā\Z Px7Z<l |Xσ8X<_։,T@%"%.W˰6>̏!, |D[€,>"1|(yx>_:<x1|/<1 _:: tx1cP(1|(A`@H>x*%=Z@ s^TNHd ȃN|#OBe9`P@0!~>AER4~ a<'ARZ?Є%B`p@&_T  h(ĒgK8 (0!dCwG Ț7.zx-=s x9x?p\䛜|7w~JsS[B`6N|Sˁ`.M|7?#_)`2 x`FT|AGGʂPp'[ pZxܞ s`lDs` EX>.S Ss,Q gswX4 g&۴$,؊8" vB'Xܬ0|M35g(-||Xm`_moG 5$?g~€2EdA)#N1=xf!%'WL900dcH   cXviD0050( 16L`4 V T &6dN 4 X*@@h:`L0AJ* px@ dRa)8ӧNN x<'ixX` #0;,NJIl00v?0 ;+L `87gv%NJN  I<$铦@`m8<'`A@, ]2p)58<%`0b6#0 d0 'N%<:N0f6A` ΜSl hK< `+048AL80v T81Z`401P<;N x1P`P6 LN zq,;C|/@%3"P1` İbĴĤR`601h<4<,Mh06:l 7h``81hL  x8t'L +xjN  px( S6pxo2p|48 x6 x1Xal0`h <8<_i'@EN=bp'ӁxHN T`|/G06@66%@l:@ؖ:p`:+N|X1<Ӧ<@60xXӧ@bX@`l8pP< '++'@xH@IĠ6 V&6x>@Zb,@X0b` "|_Ā%'NNJ=0<$ D aK |̉A `px?@b 2<,%00v < d<0|BRt8L?+`M4&N @ɁK@@!DɁi eIJ;<0  ti% ӧI`xO1h &+ i L8AL%N Z iӃΘ4 XNAN x`)^`%mN 2t``ɀN V%Μ::pb|x, 0bX +L0   TJN%i<,p` X xi?L &N%I?@\2dɀpb?!a 81X i 2`xo N JL `4 T >'<  '++x_?Kր<bbbpd 40 4% `bbbx_Nxd00"b@b68<<@( tĤ%L X ġ(*` NybX<,<'i`.S@ ;N H0t V z`x%xm80v? bPL :d@@iL V T T8=0i?L 11R`aД% z`xH`+`S &N V @ N 0 T `j 68@$ƢX@L tK*LӁbxX<'`1P>, @ <2 ؘJiӃL`x&`N Zp6LD[p Rp V Iؔ  %,Iq)0<$x>b`D`q( X1P<'Ӄ:L N Xpbxf@ŠJ%6 Vbxh`2``8Lq-2`4 1X<4y pbb@&I I'@X#5m8L R \IՄdĤR`6%N Z 4Sxt1`NyD +ĠUpH`hJ+2q)2tZpb4px_$y80t'N:N `@hJ 5@@iNobpx( S6 X80t Z8`x|( @ @m0x$ ӧN%Id`m2`x_@ x1PKL 'l2px/&m01Zth+3?٧@_lKL`h N VӃ T T|508AL T8)ӁӁ x<1ja-8@m8oc m"RpALJL '4I`i'IӃ|?b`0>$,K0t T| xA& 60xX?+4 6 A &Lӧ`NJ+N o 1X8I6M`|/ `Fy 2 lA a,2`x'L?i?+L ʼn<,h &*@Cp(KlxO0L x1X8H i'(JA @^ l (:*@Il)0 VӦN V xN 1P0v, xHĤiӁbRd`h4P0v|pbth0xH"X<,@ML @h044yɓ@ T ' @PN%6K bx_=80t|0dRd4p`8d鄠6Ӂxx@鄠6;NӦ&`x, &L Pb6 @hh0b@>\g iI'N6 X p6 8 p6 P `4 |̃6 铦Ny ;l `h  T X x4&Ġ@ &N 'L:dŢZ`xO`6P` tŀŠP `'bXAL &a2p:p6 'L V L0tJ!81h  V XSxxq,J0 Tp|OI/6p4 bm:py@Ɂ*N%I'N:`4 ;'Ђ8L;L x1Zd@<:N TL 8``i`xXӃx2|ocQ,A<``m8I?N*h>x i2dɀ81bdhĤɁ`;q@ A2dm2px?A`xXpxHPAi遊&xX>,H881X  i 40ӁbxJ N Z ʼn&L XKpb4v@pp0 X"PA`; +I I N 1P A:`4%@J ;Θ06 1` &L% x1P+L8Gk `N @ 'l  I`€=@_I N V4ɁN ΃rbxS i@u8%(l;L T@p`EP Np`Ea(KLpxXd$L ZK=8<_A4'N%@l LxtZb@,N8 @00x(Ӄ>'d&A-`hKN%N;NĴ<Ӧv%x?D`81Rdi`LӁ6B0x`2`pɀ< 0IAL4Ki00v0<,M2dPJL8L2`bxH<$`Lx`<0b x<4 X<,@`<4̀4)8 ؘS&N8*@@DlS` 'N:`4SIXL V0 xO|q( 6 Z4KL T6 `ɓ62py/ `l @ 1X0vx0t @6x0:pbbh À\l(1X<7`@iSBP0ӃΘ`4xL T Z T t6x0txKpxE8L68L&< Z i8:L TxL`8S8JN%&l `h &+IӃtb`2p`0<'ḭ1h>, %(*L z`xO<:04!<`pA0N<:v2d<`1XL8><2SiL:d?΀<,ŀ=S&%@Jp60xOǀ<')8 ɓ*<1(K@`l 1bt &π<`a+`6 T:t2d_<0b4tpx>_p?,L @xxӃ@y6Sb0<$P0bɀ @@`8 i1`@@IL x<,Ӧ=88Zd铦@m2pxH46'L Vh  |ٶ%im:tɁNx>a0 aS'Ж:N"P0t00v V :`xH>xB1jd h  <0@NxOLJL:`}(h<J <4S'+A:`4 `P*p Z8<`L0b4"|h"P0 N:t8:`xHӃ6x0v x><:`45M:dɂ `4%N0v&N T T V %v `hFAJL `EN Z p6 dɀp4 ` @ ı-0< @0$88@a(J@6 x,100xo%`2`` xp|/l8`;0>D zp}xa,J@ `|p j`|x8**N/6:pxO<,@ӧ``DL:`xhxht`@i>:pbp@i<;Kp'+NӃ c `E8x%U18l *L0 6 T1><DP:1Zpx@1P>&-08a0 ++@P 戔%xX`Lip4:pp@P1P1P<O3 p `0@`eP2px0t x<`' 0`. &L+>wf#nӁ0<4L V1h0t:tN T8>(%&`l @l:`bb1R``;Ӄb|O|& q$ N X ``0WlA |:InAUȦ vb|$YI 0B'%іCT!XDH{ Ne킴!@ܴVvd1Aa0FNGNZ ɥIc[(Pph}iArta3;q1?VĀm8AL01X1Zp6:px?ӧ`@N01X<'i6 x1P>O`L X K*ix_>aT ;ˀ<(-;& L)@ I NxON X @ŠI`@Ly xX<ptɁ8AN8N &i *N@}['L 81P0vN z`|8LA @i?+`b`DN;N%@xӧN`}` T8]ؖZpb40<`xL("ɂ01h1X px/A1Rdh06 V|(6Aİxx@ '0xXHXN `01XLxg@I&<i01P<4 N 'L2pbbxh6zm;L @Ĥ`i8@@N:+<0% d?`tiNx>?c FxĠxHb6bɁ`J!a2dɓxXY0>&Ybx( DNɓ>Wp @[A,d @82`bm2dNӃ X `bxO &L @ TL%L:p4 bm0h 'N`tt 9YݬT3!EdAIoq_ ڦIOVE 76QR"Szf5; uI,|YQajcb$Q.ԗ &*RRJF7Q Fvu;.ގ%A$ۑ Fſꚧԯғp A!#PJ7"CqZD6oNbd4{|I'px? ̀>8Lb6Jc%'-L XpxO<.P@Dl04J* p|ªa,&+L%xHӃ'N x0vx>7d%NӃ2ia( @x>gv 1Rp|?€>Ɂp6 X)!p.m00vxOy.D   ŀ0 x&,A@$L@_`#0}شBN<F[ _btɁ i:ti:px(&$&N =:`| x<'`l J€> ,@"݀@h4@| `_<,@ pzi+5fSx![t( L Ɂ P@L&̂tp@laL6 T'L.%`( x Đ4 TLshJbbb4x<71PV%LL `4/2@6hب@d8 )%X<4i `_@ ` _8F؀1h<<``l4?`D,+@y( b`C3! 'Nx灰|/<(S'Nx1X<ŀl&铃@<4JH%L+5I\u5O?83d drWEyH :I0>` <$``@BPl 5`shgD55 b83I(Ӧ;2 '+< X<7``@_N Ved0t +` V V x?<X#0b k2:`6{ǀ=WrFXQ1@@gd_%̵|hyY2 CLL81ٙBWLk%$T2dpp8?AiAL4tl0bbp  X @p4`i01PL@X8 BvSL2d|A0<<0I6G@81h<$h0x(+€zȹl &pjz>T遍`-™thIL p$Z" _p8lM0|8NGѸ)(Ӄ! C&/?pB&Mrq!b_ lV &>_g`ʼn&2`|_nN2th&L08 <7`q$`@L TN+L xhIL |^k:^!(<<`0 L "8(%b*yXd|10 8,ڔ=`aЄЅX_DJ}dΦ}GG&@9`$(o4&p2X8\B-#Efgz$|`K5q` X E%&|f0v81X0tS6*6:Ȁ="L 1X0v73A}X0al(jnV30G}hjהػRlK<4 6: ;1( A xGƽAˉ Qp80,(>Ԣ3 FUqXz'$H )ZV=xjd7g[|xް, Z`,5|vpbx[չbEz,CL*[V `MX pulB͠paaeݻԍkL8FY0 Xx 8kf!8ϬÆH`,0<iÀ< 23+4Jw``|/ml &L >'bp8KL :p4 1X>?߁x( K)8<$ =8>a T%Jp|8 _p@1Z`x?xh"@v X>//lh' l,) 8", &*Ā=1Zp6 V6U[`LA 8+ n8kCqh7?Z(4`ŠmyϚ WA ,P\XkY*. @k)xo9Z7`p(84NHz h. р>"#06 x>4|X8#B*1XlL;^;Z#j8X$&S+OD.X`m-eU(SWr^uMdlP@dh:ˀ=0xH`s0p1R`|() >`4/v>T> ɀ=@#Ń<'`:րpX><nAslz @&q;,R 8" ́bb|`L@ȀD`4<mZA#+ɀ=@B <40p`00|?0<<hS6pX#2|HK IL80v} v`xx``_=0< L{@ hG8NDm0>m h px>h|(BĀD8>D D!;<` @&>dNHWO*ѵ"Ɂ]p4q~2 d }oL NTP.N@`?/00dcP ^}?oހN?p@N0(>(n>?L`h@<<`K|A?ޞ0AJ>$`@& ? |@&x> ?0` |PCˀE` =a<! 0< |X0 *  *0|.0|R =< xhA`ɀLcF mD 0x ` p|@&x060x/ > b|Ax<`p އ@0 A?O@&xCˀL|A  > ⲃ@7zT)"x< ܃@X<0p< :H`?'X~ ߵP7T:`W #WU<<<@%AJba&x@Q)@ʹ U*`Pe0(>``:>wS<0>a|h>/A  L\ h>gD̓&xAa?UA0|X = A0bt000dcQ~ [ͼ|Hvxx?x}&B>`A<  mƀ<~> & CD 0xHD `AcH60h < @#lHa @>i!P!, =)$xfgJozC3 ? Dx>l l@0(eiB@"ڄ0xJ! lE(XIlHB xA0Cx!60xA*P|Ҭ` 0(`ŀ?1|?$x>)@e ?x>0&Р |(H|A<?І>  >aL| 1O'< bP n*}P2%?x~<00dcQ F>x>7?&@V ?lL3m>/ +x ^ e!/xA'|Px?A`d`A`!d @& *0`<x`A P0|HĀE+<_0|A OxB<'`L;jA'>/#BH<`P @0(>`B0( @ @#f b|A&0A|00dc2Ry8 +C_/?` |<zL0@@+[|?W h>P< }Aa`D>D Ph0x?B<< `<7B),.P|Az<_>4w*5(<`0-v x/@<@@@p &X|p C@&Z2_(@c`P0€>Q!Xd?4|A0ƀT3ŀE h>4`@@+ѻp @"@?yxHA?5` p@'kp c`VX d/B`>$4xTH2bz@ $8 \ W00dc>R\ +}Ao0~I`px> [< P?(ա? ) xFF@0@AE%dBA`dlx> `<h>_>F|HDe` |(PhC|Hl?HSxA? 0 @& h<`/Lx </|P| BĀO@<')>O+ p< |ATIYA{\p|A`x x??N1pCV )/U0|A<ZffduC*OQ `_xX?T_(lP|XBڔ,``@|< 00dc[Ssx ' 0 @'x< ?' cMln:>Wz[ȀOkMl2p <ǀL x_A  <|8<"<\`?x>0}l0| 6 |O0x/A`C|/l!+R 0zi@0 3>'>?E p @? _"| S`7A`+`?^<D060 ?`_>0l; p"d`kL+|[A>$?M`CÀU˶2ze27e7@&2D|B<,'\  @&ÀMi00dcS [<?px?A @'8<$`@*0! [p*$@& <\hH &P @z  B<0ʵOWBpx0187K@oU ˯aGde0 6> `TP \x/?/ |Ґ`|(?|AH0V0|A`P M<xO \P|A@ |A?Xf?60|_A bˀT0x8(> B|00dcTm & L@ '[l6?@&>g` &| `g#0|??~`_k0}>JCDj|DAkN`plx8ˀL0y -=  ߀M ȀLb?Ɓ`VA <2|/A A<` 1|x% =€tزP|D`\$| 1+HG8>J0 ֶz@e ?A!@"+>d)!I`?x/?` 1xC`$"`` kՠx_AŀM>T`@">`&0|Xِ1x>``>'AĀD34 dA|!@&[%|AaQ@l{y00dc[Tolf2nZހwW뷄xAJׁ`0@he@;x0'0@f <p ` p%'0xA`15X  |O<xh ?||Ix@o)>h< |OAW3o X13+:!< 6,|%-_ x |h<A`z5?\2v7kb]g`!'IVVP\ۿkzcD`50|A3mh:ŀm C0"8Ip>r+߹@X;k^~00dc8Ug @?xtI A0)|%tGĐxDx8Q"$@<.h G`8.0DwAeAB$@THߏՃ> x?Ć?%$@x./ǂX(΀4x6 )ͰxA n>OaS!lI遀ؖ\ BKvl` ;Q > s bTn x(tH 0xĬA@X `6h0<'bH'qHKBQ}8 N H Dn$KShH6 `R`(A`2xA R$tI`0x` Q< @0<|8A>O]BAx` <|t?*A!x\$$ͯ΃J0)Āx8@0) > xSĿA@6 %H0DX  lPaE``jN (`Cx>L"Yy|.T]|%Av A,_ĿXAt 0x(t.7p43BWj_  Ȗ%*@lOvt6D'X6x?t @9xH<$Ps(M[A?sՃeĴzK4Z$H P$PPqP6 M x< @0KDД (F,t R? :@y U*T 9 x$p &(**<fV v4> OxO@Tp?<SP|}hDx_A+ĕ`UP P`<7e `!Xt @" 8]AA;B /qH|IPi]'AP|š@l k FX>7l`8%@>`jsxHH %O?1wI/!ɱ@??*X<#Ji V* >h()ʃZPUd`?U HA V%xOD(6@A R h% `h>7`G,<t$'AB$h<XWyx6{`0D H\ DH `R `á(JK h |H@̉xđ,Bh A@ yx!<^%;q81q~*fˡyyy|p #M d;U6 j'+ͣ0* x_PĠ`9`xa@|灀%Pmjm fGn: D@0*A )6@h`) >? 80(%H0)A V͐`9B06 ?$`D$0PA{k~$pX%ARbxH|HO6 AQ,A>|/Ÿe  '[ j>#`(~ AX  #ðl 0P @_A?,86 @>Tu)K~x|OUGG| A*P_A0R"U$ z,V^%P`T`60( àxıt ppR|H>_n } e ͉`|AP n` E`AMxh['0Rs `:<`0@xT.1h!MGxP2<<XA@CV bP yel x> ~ Mv?zp H<"Hv%"X 2 |k›pK.P4  D1H M{ž;F 0 @<'t#Pl4_А `R+DK4` dh6 }DmWAF%h<IJˋPJ4फ़\ #ox|%BTOĨ ĥGb\M+X@2K$ L r<'lthdGJ(yH }8`_ :{J xJT(|\:!)n˗ 6%>ǞVGS@0 0D?dJPhx x$% @0( K`> پ#P|<0P@xH|A$pB4P`P{|xJ<#*V\ ^2\ _P3cfGj. `e T_!,|7D%AB4#ʆJ)<{ m?P>%,$(jD@a(<(ML< 63=<'6O/X0  0 [BM @>L ï+*xAm$4CPNChE> :%ʇ<_s !(~}~"}~@PcClF =~^#D"H`'A?pSx@0Daؐ =`I-A  <`I'aH>00 l@ >w0HPl,0(kiBe=`<_ tP0*D`9?H"=h \00*D'?р<1h(050(?AB%< 2V #Oߏi`6ƀ<Vpv? |(#Y%.D F>RQ`(VQ`f藽S@8hPP\_>?: b4ЕD4?fP`S I(KK/UhseWg_\./BX^ QQ]@2 ö(1XWW}ZGՏqSHqF=Ah~%l @O^5JǑP(`(>!N?AW:X  EA < @y8x(Ե@/)pK>|AM=M`+`p `T7AQ$^ 6? zhuA`yxA>4z |\`eDfj|o@%߁̓@#<'d_6@ৈKO<$plkÀ5R ;|pKH$m @<4 @x>%x8A`D%k x6 σ0K@=tK<vpO< HRn=à8_ldKVڰa vMD@yN~\%x!E(H$]L'ÞS PxKmC8DH$;UifB7t)H0(jK\Yz?!p2=_CXگK˼%ATx?B#ddvP<_m_`*FA p~ h>W `: 6)%J p+P`:$xIé(@0)(>aπ|Ih2.@aփP@#&a` x0o0) pSM_ՏJ X8.΀3+P_|}y WxFD@%6P *.^M ! Q_.`| `xZC4~?@t 8lB(h<'`t?>m y$v A`%*L0 $o${  `xxc`0S z{A\K0 ~t x.<\da->PxO@p@ 0pAPz ;c Hb2YK{fAHǃ ( G>T%ތ  Є߇*gB(@vx?ACX@#xXALA `Bt!%)lN@ð|@,) ޱB.+S)4 JAJ/U|B0xX5[EP!zL$pOQPEQVĂx8g t%+?AL\ p IY*x x! zxއ$)Չ }AJC N$PaFa0QC6 QU =V ꪄ?~|0>/~+Fzx?`0Hppx?J%0a< Pp 0E"B`8 `<O G$@l* (("$GQ0OmP0)`w@ 6 A =M%3e F;>\D<8 /!G]uP=ApSǟ=M46pҺBM>eX,˚R."TU}z /{b)m=A/KD?!0 K/V:T<!Chp<x>, `}J=~.SYA? ˁ*/VtWpg €4ELQǓJ:)!!4"iliFPJ6CwJU?)%jg@\X34RP7<` ;{.!p|(@- ~R@à`R],p2H0J$ @$J$#P`R  mldX$>7'_xv{#!'`b0$sD lth~ :ø"PIP0`4>Ah0l?l&02Ā@< G$|HX ,# xXу@"X0 UP^ "`@7DxHtx Sjcx A$A@=ɪ| AUIPze@? D.@ AP p x0 oġ2O*2=ǀG!0e H<T %w0X0(@! JT !$ $0x7%=%|!(lA 2MQH(<7, Pל n#xA4b ;l @[šT!+ODwxGP$nip>|*TOL ;H80)̲`(AZ fDTpƀ43w =GpF<?h,P62΁B :?A@{X0NEtJ,v"+Q 0 ^X;5V'8:Q@ l `j$IN$]ܢP<,SquK)D!JW@a3eL3&UA^A)JPO,%r_f\ N 7.]Xb2bi> ~V| `  EpKV;l=-!A(#?AG`Ry_WH(l%Ujba@}/jf #naM|uIU #EEݢZ=byp6l P`P ÷4Us1A/T! X||Dɇj)AD><\|H,`0|RUfUѨ _ƶf$&3 vEe)-_%EQ@g /̈Qz9@ x3 qh0| o@(6GΪ1$I[` >qpeA?ǿ JV]qJC8^%(fnjq1|>]HFqG GD/x{| P>PQJ8JwKDm1tKkwH@|hF||O\ҳh&UjV@c!*/M,ı ǀ*$禝 "(¨!PQ+'xS`> hHt: /L_H.~h0xEB.<x0EH>7 (^#Pnä`P|KA&pCv%6 |`>aN>QAz ,P@Ip>L`` p #71?fA|͆aNJƍ*6te"EĀ< ( p4I򸣔>YfAP T=0 8#EX.r,| yA**@/0iPo@$O`@R%L|z$h>m>'?*`P[ ˃0L 7aH|?𦒠6 l@3 0,0ᘏp>duX>xd$} =Gxˀ?X0@ * ~tMG?>(y|Fw: |"l|?~ ( Q<\?F f< >t c< t)!`{C U ˄6$Z@>!M0)p0: J8C.*꨼vٱ,!@.%%PW0!uA&|  x>xSBe@`k=xWgpQ8= 'ہrwA J4lE|@?\ S: 7g~}Z|NaMK =0{i= ˜K6xHTUB?r? #z*ͦ>d)7 $1p7\$`>|~?+HBE?Gg™2aI]Gk4((Ղ`yX>|AT lgӇnx B@ € <)|` q0W(1cV"8yӴ)REکuP7B_pE Vxt|8À<y&OJ` {žG' ›O<20c7{78f`8FpB*]x8ˁx("`Qo $;ŀ@> C1+V @,H%mĀEXC\%ޮ Y˝い?0YpU?%eʁAI À>%W4+ bՏl xH> A> &`T&*( +l!W=2()(ft7;pS @˜t AHx! f/TPf1' Ncp`3{@$_ۇT xf8AC 3r\2:AJP2 x>oH wU> %/! @,)KA S .cPc^6JDuxwjA-Ghjġۅ{00ĿJ1dаH &0 0ތ*h0\Al,`orcV27?R Ha3iu P:<ࡳ€,ওX>{`xf  AP(|/0H3{`XR4y=8(0fD?tH\!1I»O{`}m(̀F_'`>|zpFT1!wJ#Sa' 2@_\`zpW% h>,m AeP"6=(1 \:0 t 7AT >$pUp|/>np2m7j2c5z*$}4=Ġb5c"xc?#d2-/Opp|/3sҪj81 %:Ϋx ~@*e0aQS.*qP>=[1&6 0>1 # ;`ȝ5=Kd}Rc jAR2H(pdE{D`S(4 w1PC4L #!^ @?|m*Y(622\*itϝ pͯVd2zheMRM&VS(l@dp>p0|r`'JDu@{A+ 4Dᘛ #1\00dc0   cXviD0050"uZ`Uʁ Pp```*=,*P``* >Ox( ~>>?P]P2xHǁ0ǀ4&V^ UPRa|0a`F0e*<'``xU@xA` A0`+ۀ40p?..|DT 0.H+0x/`qP~h0DL=ǀ4-0`>Tp`( *Vʕ@S*cz?TP|GTp`*#>'`@^!87`T X|  ǀ4:n7Cn.!zZa0?H7G˃,bni4 * PuP#ꁆ ZJaz<*Ԑ 0|EJNpn+` ,h2P S@=T#+V<TbX~>e`R`t JT 70n X0G<`TRxA?*=A A?. |OFG<_ +`nV#>* QX++V 2@u`Pn eXK @tPU ~bɮ@V +ʕA a0 x+P`( 6}Dtx<\l R`:P0T 6T <7j@Zp 0| nxC`W Y@ `( 7H~<apx?^!`0*>@0`  1V=\z=T xAR RBV `"?a2T j0]X|=Th>T|@+PEhz `*h0X<>t`V eTl Gu` Jի\ *0* `*.[pyAXap`UFVAX2X>VE@˃ 0?T 0@<V1Pz ` ʁJppe?uB0ccx?Ǫ+|= +P|?C8>T0P?^~` V<` ̀7R_xA` A! b:` 0x0€400T=ڨ 0q2P? Pa> L020`* Q!7Cx/ >la>a>N G_d.pZ8#tuA`( 0˫p,x U7P?>\0V`nP ʕʃ|?{<cxU֬?`"hu@G X20>4 Q`|* |xL4=\ӠpzPCB80 |#Px@(3@.?`xx= U*?ԑ0&a?z 6 A ̀5F\z?V 7+G+, @((@t@0P0 -1x0*PP|OF* A` @ea|G@Ճ xnـx(ժVP0P0Aa7a`x(? _0*#PpP2\>|NV=T >7 Tq0#QX?2!`lAx FVhz=2ꁀtT *V.7 Ԣ)PSP*9X<j`VP2ʁ  DAT p@|Rh~ - `tz A@<`QX>U` @`W,g7A4?Toca q<<`˃ V|cZ@T* *?T\>BzZ@e`H u@Vx?LB-p`|(Eb+=V p0 #|V>AxUB8 0`l?T 0*DVq6 U ` /!>'PxA]X p|8TʈT``T@IRX~l axU@#P`WZxh`T`a<\qZ` gP RV <4`PGTP|#`n++ۀ5u`\?P  \Cb2 ֨``(u@X|ZJj`X0\? =aP2ʕ֬`eTh~i%JՏa~ eR 7ɀ4T> jTp` 6X#P|JAan, C`* >GPxe`@ @.>x>4@BT 2ꁗp| 7TZ`WPqX|aN 0< ,7Acl`p|GT ATh~`U`*l 6R`W._0=]P>X"ib8@ R`" x``WMH_ x0ŀ5- UCPĀ4<b87` 6Ti@)}G, ` A` ^ATZCx?zP0+€6LP!+T<x` l@XrDpx(Շ!|U*T   \= 6ec@@NӠBT 7p|/mX>A'2È6Aj Xn 7V0 :_~X0n>ՏGx(?4+2*UT=T 7V 2D?Ў?V#p @.pR`T 4 ?T >V>Vh[8B0|l Qp<p?>p>)@CAJV (;V0a?V 0+ \ 4 2Rj\h Z \peePh/!J>\AǠP-9XR@ҥu&Y\|p 2<VG:P2X`e| + "0*r|<Ā4(h?\F0?*>FT=0VX0V=xH`x0t`a|V#PP0UQ:a|@`(>/D`B2Ax(p`WE`ne` eA0+?@!.A*V 6!0 5ob`e` BG0*i%jc`WP`F. 0 n*IX!@~ 6VZ`TU+T V=tx ,.* PGa<QiDplX>T=AP?Tu`ʀ4^P72?4 xA 4#)STU*Vej2>A n ` 6V>?Gq~qZ`($x/^ 0\_QX>T A`* |B.xA RX# `( AP `p 0zpee@>l*uX2_  +€4X=p0xA \?ʃeP0X0P2#PT Ϋ! [\80*Ah>az=UPa|@GP :-p>'j .>aP6*V2G8?7aJ|NNJ. e\N`T`( 7V a0+?ƀ5`f#`a<Ȁ4^X  Ca|-<_7AD>TX0.Dx n |(FVh>ڰa0p|NLX<*dP|P|  UNbCu@PGV=.#ꁆ``*+V >wcbJX 0*@,5~CP|E@.2@tp֬*xA cRee\p`Ẁ4<qX7An`(P0 exRj7AЀ7]VuP|=T` X<. @zcxHZee'0~=0n@>\bn. ?XZҠ0x8  b0G\>@>,axX7e?Tizd0RTH i0 #5i0R7Ɣ6ƙ}Ux?x(`|ODJea=Px/A7`xCee` `0a?`W@. A@ 7\ 꺠CT=VP0@c`2ʇ>,@V >vTJxA `˪T5P|P}B؎`X>VX0P0@tj+p emp?V ~Z>H|FJЪP0*` 'l yAр5`P~h><j?aAT pxU ?R`@U@@ 6`[ؘ\ HN!+7D  V 6@0#U,bX0 6]X>wXXn 7ՃPxU0VP  ,J a0?@`"aD?X >TT@j{e> `4n |iTXT>t`˃@.0* ʀ(] A x/l>xe@PeP]rv2K2p@?2:| A|Rà4/1A)_2? *a`G!0+Z&ލCDgQ0^ PM-zE˜ SٜMF?b1U2̼p(Az`>#06 77(Cr^Nu*0e`̀4'@. ~>ˇ@3P ,G x?RaՃ.l`|8DElP22p`W֨ `(.~v alt/PP2"T# Ye[Ǡp> ɃXUP<0*?eˀSaGP>\220E@X_Ti/L,**T pxADѰ$@uZdX a0]P>W  V`Pj@0 h>,l+Ā7+X0\ ǂ:`a|oGϚ`;@xU@[*/`tP T 6Ԑ"lʬkH T*J`IT<ʕ~ e D@`D6p`*p|OBzJ@ T `n? Pl>$!0 TǠP .xAʀ40@.\pX^.`P<4 Tp|Elttzp`*P 1莨 @ Zң@VPZ`W.UT=Pz a`̀4\Ce`| `T`DSYX<, ~D+P}I0* XX.DZ  aX0?^BP8UV+]P|P>w  Ej2<2X3U@?XmVUXFl. >Dl``WՕ<PO 0 ;Jժ@~6~ "@%V À4_L#.E>wJV <$0 0# @D >q8!D@H?=X>dB02x/|#C`?t>T!` `CVJ+U`Q㋪DdCXaI6s&y*YP`ڙ hR P8^be}89>`r>F$duy Q3` b!`p5L_:o@y *J@/Te`_ e|S8 >?€5c ʥj >V V@˃VD|Ʒ5)eJ"=*J(0[84 B2>cxA `d0*A X,a>OXGV?YR|M"87A I\z >H<?€4<#a?#H,A^i|@z€5  Rx!:_[TG¥? OFX Qw`?ApXdtA9 7Df>jUjeQ  EnT1g_x6J#0U8^X2jx>w`OV@" _ \7,oյXmy$A«c#wo kqZ @|H`z@~`[L|?Z@p\bU@+_ ^i`Y%dޕr?T4d<Tʄ)J(<'C4RBzoynOZ,:H6,8Zn4Y6lܧ~ Z ``b k|i;`Վtp|?Hu]`mu\zDpxX}?M՗ 0 Dh>.pmXv_J}תH lx!ǁ62?[ӂSDB3 {QTlR1;Pgp8=J<-Ǎ.KV?ǣdcdZ-`X ^_ar.{(j2]q7l6(W#Rr϶6Đ;Uc gy -. Qt4cadSvH>\sSx\\#JNːHl@$>4US1nNRD@kWňʤÆ?-;c@Ld&6{; Q ֕ 3Ẅo ^l2JD+F{am[ hnxeR)|v{B|/n\iYk||+5`v#AH[NQkøM )-_8r+:ی^w?Zk€5€5ooZx/ԃUL#>jFƄ6(_NfBKdy$5(~`V0 `*FvJҢlp~~5*s,%[^8m@0 6V`)xqRmH SnkDά=3׍m8[Q4,u0 $h74D?@Z#`>'X5?$Ox*iV*[WpkVkB٧+`_J0|/X>u}Vƀ5δ@0 |?l;>|?V֫ 42Ҡk``3`k0 HY}bARe40ŜҨnL>n84a B,00dcVb8.0xA `_|1> N @*6 32I`0f8!|0dAp`R@<X|@&? pa?`4  ?B1X>l <<| xx>`4)X~ 4!x/G>^ `~8ס,q, IP`4  `|XAX>ǘ@p|FZ>'Ġ|A,w7SpHp>?Yp03 0`p`6A,İ|jM!,#00dcV\0|hf?>TPX% p >:\ Z 2ı( A !K>LP0f1(v0^ 0|OA4%Ȗ%` a(PP`2 ``S %<^m|03(FH7ˁǀ$ o4% `p6\ _x߽K00dcW\x_?~ < \PQ`XS|ְ`2_`?6 bX R Pb|Ӈ_` 0AD`  "̀,~ "n #`AA0ȀLKRV<#pa`P 8q0|7>& ,x@0x "@X0x>_덏` Ѐ/f6h @Xq,c`0 |_DE/Pks$<`0t44 &x8 X0dV0r]00dcWٜ`?` b@>?c |0 %l pP@?A> `_`x$&$vH>$ؔ `?p>/j6X0H>[A?H0>\`ð|oĠ|SA c`4%@ |İ\IȀ51(p=4р$K0H0x_ @ #o# |A >LQ`>X({a@><@?P >'P2H0C!`S@x>'`ph޿=00dcXV[`@̓P x>@@< H<b \< P h` `P@ A`@N`0 a`d'p` 0)A>dڄ@`?, P e , $KA l>,? J0`C敠|/*>T`?lq>/wk{00dcX o:>?ΡP"sX|8:?|A?cL?p|>i,#w% |OAo¬?Dz` [0(>.sr05D|O<b`! ?xo<ALA  a>4`mD h>'< b€D|_а|BAx<|?v3gNtvxC<7 <u%x<'x g x q$+|/۰}g-go9gv3,!0Cp<X%}lӪgN)$J`H x?8H ^qxzK A@O @xK.#ݤ:*P1NBGGA6p lJŀ=00dcXYP _|hĀO _P @AI x/<__oP|HAx/RLB |/<m}{1*`7,`>'0*Te`?  xA! <ǀLA8|x 0|xAL7d$@x8A hA`0 &px8B>@fB3v)A)X0i {mA,_@'5t>L|00dc6Y _@'lnh<`0>! P|^ۃW"P|g< A?M `  x B!40<,` & <@*|_S@<$_@*AFA`|`; |x?mA\<4 &01&x0bHBZ5_@z ` ԗt & p2bxD|A  0 ,d$ 8tE`B€T@C\#A``00dcFZK8 kʀM}`~?z?L |8[À??΀N?cL0x([Fz7|lRx2|R1x> a `Q@" $ƍ Oa*X> `ʁ D P|(d"@CˀLx B< !x<'`?(0x8A<0 0Gj!)ؘ |0|/A?G= p |X?u|h?? 0(B >7 `` ax >'(x`px2@&& 0(G"$V@">)|B{\I0Jx G{J.D7>a20<`0||Dx?A>O)2`Q@&D"0x? &}   $|G%|_#(<'p &j6@@"!@"w{Ŧ5u읧00dc[Ex `#K=}Ճ@/aR#dcG<q@Z(ǀ_x^"LcASH3`E@`>p`A }R=`R%%N @R X>j)zNP00 U9:FπKs2@i03@p@?ʔ/ -> мAD 2::(02A?pϝW<>A[W$0C?T<KZ8!< ρ2S/_D0xAІ6xGl0}|(0>//D'A_@pzy zz,I|. }XwĕZ@=3 @@.΃3pS4h<1-|(!%@@`& ,xRAH2 >V_ _| xzT]AQNxp}`QQ(@"$P *Zļ؀2] b>|>FSĐm  3=G`` Ѐ' jSx_A@A?3H>4(Ig;>|ի)(ϫ2|C pTT?ďjS2e?=W2fARDd%%@ x>O"Z@S"f%AA#0| ܯZzA>$^@?VlTBc$6oA`~ >\)@0VF ?A<G@p<$TP`& [$a|8\2Hda\23t"6_: 3Ճ%* (L)0*Ԃ5>/ xx|/C!^ Fd"X3K˨> H |ꕄ,$xGm0z\ b`PjO z|?z>p AH 3}(0xL> }82xM{ < ৸2s৽T]xw`v€%=Dpx /2 >_*ˀR*?4j@xA %=O6P"(<_`;%p1`0",I*$BP(=Z%]2`|x0)hAFR@ùAH6N e*(0D~ xB@$ 2|KՁR}hNC<0(fX g'I\QP4"?Ux_R>bZ0T q(v A:6 $%>07 +Hx)SE@ŀ,?"lZ`pJt=]A@$c?8 x l`@>l#DK> ?@AA xKȁK@ / z` Z -2` '`˃R -_8Hvx0d6>_2PxACxS]` )<x )?ǀ?` /$<| ?`A?{Ÿ|(<G%Ǽ)`* .@J><D0g@`_+2>=Ȁ?!<1,p} }l1,pO<2q,>/ zI`>`P |/RP|X7>σ'-SK&iX PgձǀĠkt < QA xG`pc|ijZ7GpŸ\K(h<|_<@#zD/L:w&>pI!P870` T^ @P . ;` V _v0 !SIBX0A|(DxO@!`6$" 2}^ :^ *UU.&AAH@#>w#/*^^:cT?2%$1gv>T iP1 Ӯ@`.m `àP`( >`1|2J|X|_T@AJh`|/^3Ǡ?Ah> r@8:lO=DQ6y(_+=CX0K}~ "t ~" T<K^TJ}A R%đ*(p!`3.›UT%./VՉJ_Jĥ`Ў>| Et`!QdL^aO/@s`˃Ep>'`—}h=ׁ|(C7 2{`L3V >D/gZ1pSxZGKJS`sKog0H0t~<π$X?㤀c>: sxP"`Q: Pd@?yC Pa>$D  0XJ<ꔆ^ k=/V%@6<_%TJMx u)\srD @yL|<j4J0 `@./..bXďW`kx%_ǷFxͻRK.<0)A X`}U  cH/2?"DX!*D&|8Z?M= .{}?e`0=fKo;A` {gm=`߆G~8d1x8)0;x_ATCޞA`Xd?(>T;D2 |bLFh xA0e*?x8A @P)/̴">aBP2}u`2 N17|A HG/ 0P=U8|ĀD)ICZ̰U) JCytx}|\8$G@t/V>@(D@hA`%@V t> . aM \j 0)r`1P/xd83Ճ `0& GI2 8ԫ%A,J.V%H<c{SLMBHW?kGʕ9\>L@õ`fπ e\N3]P 'pp{୹x[;78KVᣄ<3%d:eGxJ_`>t0fH@,›K@?5C(8d{xj֪%*`!pg^AzBU.Ŀ cq(Tj|8Bˋ((ީIp>/ f=6xfphWCp 84IV ̓ 8)>"θF9Ӡ~ | pgFJCs~@0cGg0ƁԒxS@X0@ fXfo{,?9"O𛤿RJ }W  ™DpdGߪ/`J !^% K?8=t@0W%%EaDxh(6xҳ4 af)y" .` ad3dP3/W<2Ά~׼d X[jXfa`1!>H ^H3bD(Z@煬7<,ox`): =LP> nx3ŜbYׅ=9O3 ^Ճ%encjϼ(3 Xf[3  fC=<0`W` 1`p0:/>  q3/ 9NNpX0<)0|-xif^/ `aaA<2 <3 79OsaAD A Ȁ,/`V2 b(`P pxG`AT9Aŀ,_ t2 aA AAs@bbd U[ 0  X20aGp|O1`@ ,8  BX*AF 8,9  ?P( h8X?F d`P b`DT8eV0X>&(A`>gĠP|2!| _@XI%>dA,d X VP l&Y16Px c "B<7PxAV8` h<4Md9ʀ/LZ%V<`d!산(>0|<l0Ȃ 4 d` 2 #` X80h A| C ,cP+Ddcx8d~ `2&G`V@GPa,~P0+`8`d V@* x`V2B`gdP*DȂ0 :k0 X?,d~ @`*fD`CxbS_Ȅfh+GxXA* 0> XC`A`V0 xoYP>g]|t1`oGa |CV2 "80`0G "G사A Z?ȀT#xHF``UA V (A!J *ZOx(V U "s(K@ X(0J #d'vDA?fLd?X `AX~  0j "@Ġ`<%`V%?_d0+G`5F.0 /Dd(!4Ed7"%b0+Gp6: ("ޘs[#V T0 aVl0X~>T7qAP|P\ `V2>`*̃ `VP@n8l x_A |Xă@+DX>T0n_Kh>4f@0KBX<a |>`KT~ +?x(V1hA@ȁA`T(AS#x( _C`#r,0`T K,2`V cd`șD?+H ex&Q | `|X0ɐ @(20xhAFA` `d@8,Q |LLj?0?k"X db+AEƀ.V v>%!!Z eAPa_#p X?xxǀ-e}M` "Bd0+4JmZP>,bU0 V #,A@(!h x/Db`KDVV+sAqB dT "| A?7r@d'r@İd@`?0 @x +Yݲ "? @| 0 V@>V?|>0 _<,bȀ "` `A,#A#AXS+20d@p p `DP+AZgKE+AX ?Tr%a@*  5h<*V0h0r xi`b|?1<b <\`C #dEL0 "#-X,@ˀ,H p*h0l A,E AUD|XUb#`V4h0j  V~ e|`4>""`ba AFD>TbcPU?? X x_AV0p x@`|?2  ܘ0+` 20l @\UݐxhX H0 0U 42h<T0p caV@Qh n,P+XX`SD~P0l 8d`P?A2, `AG`*d@ȁZX0 " +A?݁MȁZ x0|OŠc(b+A P|LL "" ,>`|?,"  ,5S8 #pU d ţJ0  d@U"d@ǀ,*A@UF<$`Q ȁV>dPbX0p?@0 >ڀ,|LZ1G*5,PhxhGA-[#V8@8@#tDbAT UEAPV4]AXCT5ƀ,0 `V *_  C&*2 Z X>D`<<`Š<`(h>w,jED0Z|Xْ0>,aKCT ` D  (*V|KP1h0p |(TJh|>@C8G @U KDx(,>Lv e*xA`  l~,7ABxDf{'pa4"Z }8d` s,0 0P C"PV#FKA&`E` [2| @eAT D`V">oD  `V20l 0l "@d#VXP (~ &!kP(UT2 dl_`d VX~ %+GG| xDB[ -G?l*l!4`׀|8ČȀ\gX?€T܀,,A5`lCd ~D+AAX V # h/G | `2&xX`>a0Dpx_U 0  pq(|?h21,9pU* sUs,E%V!k\;-VՒ$[`  Mv<, 7!C ~ ș`0 2 |H+X-2 U"2 `75 Mk S # ̀,Gp|8da   pV2 26pxVs U6 x/`KXP8`ȁ`0!| DU@p*` `K6d/|KY0P~>$e*BP`<'d` T0 |_Qd `6 p*q xoYV%?+G @*?`RxAP`ơ ,8  @X|*  }@*X>b(` # `!d~ GȄV`UDU#'pdL,Jc`ea|?X9>̃L3"X<`(OAA0rX 1,|>TXDd +A@V @6>`',0+Ah0p `?q"P|  (@hd|P0h +px``89T 20`#p|h D),@`2 y/ /A 2?`vyp` ",2 S,>mV7Ԁ,'GŢ+X (0h 7€,j A р,d20Vx> X<a#pU*|@><d2~` q!T%>dm 0Z Vˢ%~>hp^#-Q-d@#D "~+?(0l  @ŀA`Cp|d0 Px/P[>d_+X V@L 0?-,X<,#  @*!Z *-}0X2}U~X `VZ DP -! B?`@X l`V VS * 0A `6 `U0>2τ!0AG<`X`}AX> `21Or `  Z>`@.aCp%, d@ldL`0Z'р.p>TlfY+8 67.l#YA?d.DA A?&>X1Š#ܵ8 Q/qP*2 A`< A#Xl| -*Pa@edAD`6;^!aK?@* `b0p *P0xGȁ@xHA` h1`1h*G̃F2&AL*,|h>o{ p*VX+Ad>2!0p'>,bYXADpV"d3vDC0e0+AZX+AA 2 B` Ad@݀|ܵL 0+TZ }++Yƀ.A d#qC`@x@qG <ĝ`;h05a/Z6%l]ex_(P0p +ɆA, U+A X! BX 2 xF>y|8 tJ`| <,p A?AX e`|H΀-2 V a|[, AfA?2<`03L * #,p!L@*L@ +AP|`! #`q`;X>l|*0 cgTd@_0 `1 ƴȂ "0n0Xj U@*% +T `1`<$#6PaV0B* UX0j  2 x A1<cVVX'lJ@+`>$p?`@)4p?(20`h- S6%*mN :odLL"rKHNU eGFІ=)KR֚lpu֗fgB/GReW+*т7S%yp*살ALd&!?P3pxx_S0x0h0jBX V><:E`'q"sf///x3D>dW9{8Ol!݀󁔝 Iʸ`-=4Teܖvuk˜J&IAXD@d"X#pxOAP}h @ŌE`5h>oa 2 "D >deޖ'AZ ;q*0Y 0 me#QU~,0r>da{`x x<5 0Z#l;2 ZTAAP$A Y adl P+ApV>O$aa>l0+AZ |X+5YAݣ11,| `R L6 `, FdA<\ >dUωcDy? @* Y`5dQ `x iEYP L| XGP 2 &%>kㄗD#TAXA#z-jY)l04JIݣQDzDp8c!'p~O@ү\k2SggHYZѳӁq&0N m(-gnM31TjKj "+0+@ȑ>$fxwpZuEB\fzDp -9hh"(eeQq.$]1`?%`hFMdYĽKe }a%e{C@ bw1YE2sPZ=SQdEL8iބTTdwɆ@`~> ` r`ŀAD&& V|(<5e|Hݰ|/K=WBeOcY  [ NL X>s0Z0 I2#>`l Ld `J`@T G?@`l U 2 @`arX c d!U k-X0+G  ?€,x/G 2>I0 A 2jŊ!X(XXҠҥg#QoD+-ɔ?䑩"^/urqkmrPP0&RS*mא#@8Cm;I5ۖ"j+V|>g5A8Zq89j *ᶸ9kw,$L45k4)YfA !: PItp03@cm\L:hL7bLkھ؋ A6΢/Ph_T6*( -+ K e<^\P1) OA'$A}u ,8<6|+wU>SThHH> \^0Yvo8`0 | 0`p ,Xݽt j4v/|x)LĀ.|``? g- dXÀ.˘,,Be& nbDaYcrIg,冩蔝#ui_lL, @%|bt+OѴYЁ :@ƥPVZDXkDH=3OdCΟ /qc`AZ d#$["+w`j-P  ͍t[2 ]\Ua kd>nR[;`Վp|?QÀU ȃ>]|(A`h>Zk_%}gae.L0Z |(Ɲ@̀.l0c7ίGK u`. 9c/5z19XQ`|hPpSP~7 ,[`v/Xi칐_Ǫ 5jaeð`o,- 07qx0 X1U-Rm[hDf>0,ho G?`3bvqr!7owG'lp/T?h D5À,8Z `іA@XxC -x(`Ņ I ,X,JkA=vD"0X<@0Y 3d]\qp8kø o  [m}Vj0`̀sF '[ #+6 21e, $\15݀A @`FBtXXX(.%E`exU@0Zo,N+w0Xpf#\@0X6fhh\KkXㅡoXZ9l /8eqQY:@}nY<|/VZ -؀% X(Xu?GXԄ#fA &_5F kF7;Ed~@:6,,$ +?`o"`L- " D c8k@ MM DU65!@ ̀-_)`|B|l~U g, "D0X }Ҭ[`8ٛGl2kw00dc\? Ds|/?BрD32|[o6|P|?]ӰyA?!@"2o =@>?ӈ!0 !!0|O@ۀDH!!0`Q@& >!@B! < 0e_ x< a|B<' ʁ: |x e`P " l |oB2|XHR@xAR a. !*|P0рD/C>0|8A?  "t>,1W0|(00dc\>T[7cG^o?>_ZU|xD, Tt0)` `[ `4kXǀ\ĠxH>T>4@>/pa>?KILv> 09/ĠP @ð` Bq,@mJ510 a(B(@a  A`Kh>`h>* bXB%bX0)ABAB   à|X]W00dc]9 `[x>$-`@X?}0@Z~u{A`pۃ`Q@`:CF р<xJ$"}?@<0xB>gt'Ai .|A@h<"@Bl4;0eC`R@% *+t!" >)T }Đ (>  _‚>>>4J|/Aa|( "DxR@"%aTA}OQt 9dd'00dc]^_@ @o`X> v|Z}H`?||X}[zF  opxY>$H ,G€=V 4p}84|> `AX>/`B0|` p|/D }xĠl,|D|H(0) o6h>lx0t,|/p0Pp>'vİ|/ $ 0#,0> $n!> a>000dc^48 筊[Mb>/h`<`"[z'D0|X||Hj @6t7|AxhxÀ< x`>w&`Px@8+,Px><  xOa>(xAD?|A0ÀEi}8(BpC 0ǀMX8m8Sx??? `pDR~Xܲİ(? Ix$>*1p< ?@" H<4`AA`Pxh 0|o00dc hX `<3$@"=>m`@">{>O{X>G5p~EZ>o J|Hz>|,nx_Ac>{X< _ˀ?xA?c=l2~(D3|΀=3}Q">|`+>l0xA ol_@"">hyAtp⅃"< ~/`G<|(>T.C ΅@"x?k$|?>`L>?a ox>g 7a R`6`<'8V| S*|Gt AK%0< < `R@" HG;> >'i`0 0x_Da,!0(,xA Px><"HD?3À5. A K5#p`p#H! @h P |B2|00dcPx lcxX?>(n{)0xX``p>ncŀwoȀOpAÀ=s@ Rx<, ?@h> iM x ` # x@< `PA @p$x>|`_}!P>o]~h>,(h`솃ƀ<|_aY2M0b,A@&\ xAɀL0|VFD@&A`Vbx/ _ | | QU#Шx?< !hpxA|>4nċT `|?x0 p \00|.|>?00dcQ x??﵃>d~@'vx>G @'1`<@&x> Lv `@+L-><$`0B>`0:4 `CL0a>/ <@&  ԣ@ <\`|?ᰎ `C!|O\p0.L r|_τ0S@&P?L;@a- 0P<ð|A0eP @"0@& m|F{  0 ۃ 1` LJLuB|OR `p >iFDp x0'B`HL>1@|xJ0x/̸ALx\txxԏJ?ABH>L@ %pT8BpA !A0<,"@KAF'L`| ` x< _@CK?)MW0M c2K!!˜B uЅÀ$@@V>o>;Fx@0 U/xA?0x A P`Q@&@*@4}|HA =  >aJl<Pa>?`: M`<'@& @>dvLP~_U0x?A€M |O" >鉃@" [|0 4@0(`m`0a> =Tљ@J>'  UC|@>4_ ބ Ā|/0 @10Q@xH>7@*" 0x@<x/`s,a  0l0||˜(H_6e:AzǞ.V>5/V>P lLp|x 9m aZa4 ,$W'5 h` `>< &X>\|(P|`Z`@ʀL|A|?&L ?CP x>_)Ђ @ 0|xA1| @_ |hR2a)pa00 AÀL|Ax/JD@ x> %:T>0>& >L @*|8ǀ\4D> @J0x_A0xHAT|O!0|>d`PhȐ|#+6 > ns` |@< @&1 ?€Tx/ # VpK%p ˜, Gh1~v ̗tz ij>i.NTh( Pa>``< <  00dc6R| .d&!p80 7Px kZ]`6A KP|/A!^@0 ( OLIz|A =mxԓ Q!pNAy3%!U`XV{(3x0~h3eP><7 >7: `B|4̃Qtm@ Oh '0À$ db@><΀$~?<^ 0̃X>/2` 3W \ Q0ߏt|t> >0!yoA03 v0 |Uǀ$Q$_ .i\̃?2p|(G{*H :kA !DBp> |U`ƕq 3j(#x>4P@" }W4 B߁F A|oGt.\\` _ 0R `|op:=>?"_0Q0|KMl7B,xHcG\}}bț]PwK3%`<DSd|3p)A`O<dH(@*(x< Pozg̀>v\H2?,lEF0) z e*` >h,@8 ~SӃ&./Qԗe` @"\*\x 3`ɋ>$)0y8A *?xK*L eğ d0Hp0L xHh0>Dp`22 >"9x7PB ( OEp@@LZ 1(t^ >L ~dS ^S  `Q:FK֘ >D?˩p02XP|/T <0QxxA4 @"|ʀ$@=/ `l>`>?) 1p3xA /x' R`ULȠ` M@/f|`d`PA΀$xA| 4%>\#>)tD>(3@?@% "@"_@p>)x1pfAPx8A@'px 4 x(#XL A >IW&փ>iQ` ; @˃ (`9|oS%EĀ$~< V yx)?4?Bx!a'pf@(>=h8>\i0^h$APH`:xAe02 >À.%ziw260  0Ș6Q@h 8!),*(DÀ5-`xS` "P|StnA>?)`lr>? @ ;T?0@^ QLN0 |G ?/W>0|Gp0(@N0PxA"@i d=GAHxh(A O A >T `d. `xAK`0ho!,'PBxA/@! @xD׀D~\xJycPxA` Àq 0 A?0>G ǓЀ& #P>`x@{~A=phGM? %B?0pK؏d€$< d@Gx @ ,H3D0R ;@>j` IX>< ̃G w(A}G>x8Tm)0wm1}ĀDX6ZA*|/K<UT{H & |@0H$z x.RBXJ_8# (^z 3`_H1>,)5EPPx8|^\ `*@0G<{m8O>w>>)y̓@>d|_A{0hN >tzu#"8 0(_`@|=\ A//T]h3Kah0JYz̸6|`P>  ~x e̓#|o|80*>)p@)>w lxA` |x >,4)p< ADcMpz,4% > `4$ޏHc>x!AD^>QxBT>T:선!_ !Z 6B\/PBN`J6#3`A?0@?//`_X>')zF`(TFHo-P.wG2`;nĵ دʁE%p?` 'π%l xgpOPy8B  z;xv ǿ@`?@r5A I~X|%X0Ds~ yA?4 hl&,&|Kˁ>@v\=<=$AD DaGF>,`Y6^LpebYx }A~~ 1p@UXІ {Aɉ<T ZPx?A T<A7Ĕ  ~<0KaꄒQA*P\>)8>ɂ!yzU*'w">`JAJ| e#卂(@%pGCYh(`@8#JD,[Bs28A@V #ay͂\:.=`sj |/g$<P2p|q̃R<3zx>O6? }&€%0|XCl`p|Ox( |ʀfA`9fF(At2x/0+>@"S`<bP>EB_mx(ԃAE<0J./ V!{3? @: ?@?= ȸQ~O9@ %@k`?~tb?HD=#x~{W^%A(JaGU `b| |#( )^m 0 я`>%XMnK'ǀ$@[sxVvV4k  gD`bns`& :;82P"z'ÿ"x??׆`P D)O4 R=B0|^fP`S =P@|}|]yF5oO|@aIDP<< G~*Wͳ0<ۢZ *l ?8jz @T>UnmF/P~3RQ18 \zyJ\QH>* , F# B ~rsN<}/fڲ7`S!x/(y\/cXy8S@6[> ?x|~Iڦ2``4 `_p0s8tIJKWhaJ/ :>:0 ^C/.f1.ddBq,`?')'?c*P"H |(NAdxfaYU[}P0_8 |XGN@h0L` >W_#A>&Xn>`!"bԉpyAf$"D@#,)A < `%<7)AxĠ|Bh Q)"PEH% "pxX"PxhA2 ) % <J '#a %D"D@xA<`bĠ `#>/AĠ@D @0" XD*@J PD\ \<AԠP(Po R*@`,R@6 J%%DA"Q,<DXDJ@xAf@H0z 0@`biJ` "$ "@xOAR$HPY "`P *A(#bxA?8x_AxoA&|XC@ \8" @ 0A`=,Hx_AKxAf@>2Υ`Ҥ#P@ -Rd!D@P"HŠ0z"S%J%JP1`0A(& <KJ=J%*@` $d@"" @"&A(xR$P(0x%JAD&("@DDxhR(>-(JEPxRp|NA[lAd.K "CgN D@xAY@EdA3PEH +xOA|oW/A, P(<2 P@xXDD@xoAPxR*P|LPD,AKJ@" >! A%BZ@x/ bX<'  X<`"0@X -0^a JB/Y"AH0xK, tX;Yڦ*PP=H A =J$0xJ-""("ŀ (<iD`JJ "P "$@|?t <XL#`DJ3f%@ !< "@"A- =)P (R*T <$ G!KP`xA(+$H 8"H @```BZ@DHY(%H  <4)R@"@"]EP`, "pxhA=+$^ !0z<,  23}*@bԂP1`<\(<< `.p Ax ŀ<`?_"EMXxXA?JR"bİDTA%J " @DH0_xHA A?>,M@%"" 3I?X@-@`ΦL  Z ܀DDKJ<4 ](g!A`=/Hxh : x J@ 0x X%ۀF]PxOA 'p,A(@Jΐ<E <<i4PD*D @T?A}\ @Q(L("@DPbbԩAԉAD ∖ X(0H Z dH | <$`P @xA$Ԁ"@"] 0J xA3J 0x +A 0z%%H|OD``"x(҂L@ 3@ 1bT<$ ( (0z%`(0€D^D,D`J҃J 0z:J(( iAxhA*T_bx8 A@A1`,e0" 0z 0x"dҥA(#܀4µ`T@:*Tp$6 ` 0"J @`, <7 Y>l+ `?"Po @@6PxR`Y_A Dɋ`=-l=@8"(<`\ " ` dAJ ŢP0H%%HPxJġ, (<' $ĠE )e"$A Px_R>'0%xPb`.")Ah(1p<4)A<\)AĀDPj i X @bxA`3*D 0AxA>!,,GY0xP,I X` 8bdH"("D?RH"H %Hp  >T$y "@" " >4#P4%"Q-*Pb`<D"zA- <4 (0z 0z0̀D<P0x", bZPEH *@E 'ZPAX^("DH , i`=A@xA@|WKA"xA?̀F`J%JH 'RK?ǀDA*|A PA`PbYbDJK,%Q(`.$D@`?.% bP" >"( @Y"D8gͬ%`xxR @" ,K/ -(0z0x0x  " >'"(D- 1`0"xAxoA K6 %p (<$ @)0z",Q)*PbEA?Hzd PE<i"D%J(=J$d`=H 8Ah=H`2DH <'  ^ X "TA@`, <$1"TY <bP,J @" ,`DJ 480x 80H\.|X0%=PEA``  >':D"("X"" >!pJB Q,?H (l"4p p`.'R" xXAŀDXAdA  dPD,H | R8< "DpyA@DT@|L@@x(05@`(>46 TP8cP πD@N-A*x(ۀfeo@hHje/ 0)!A , 5b SSgA6`P 6ȥ``r XGG 0l)JzQ38 P֚cKA"%& P0 0&DA*DXP<$"X"d@"("(0AxAd)J ( eHARA H 0\% 0x>- < "Af1`0"(<_ F "YV% iD`(" 0D 4AJ@xXA,=a X " (K0 `@ )(xA|HF(0x 5 8:2 \X X ?RJ YJĠ("6<$ p!JJIDP$"@<lJD&x8,"@6%%H%(>,( @:JD "TBP@J%%J# P|/Y2?׃4 1`<' ? 0z,JPDJPxXAA"@xAP|/E -Hx/%A`|8FA>', @x&|`KHQc, pp,1q"DD" >w#PbbD fA# ?@6@`&|X`KJ ZRH<| f[bU"Jf+mɥRALj#1ؒA86"$$@Ve+hnco`.c1J:RH](ؤ0Rcmis2D0BYs{)pxE`ܦ)T:Z7 6*X5N3Qq%0Eb 5Th$%HZ+ãx#B0~ AN * 8 ڴfML'+pR&)k(0<X"fXbc t>g(("@""PxoA KԀXKD2pp,˱H"RȲA(`.w:%l#QB0+}K><f@(ц0(<5Ġ@ΰA"(/'İDJ 0zP|pp,#AHpm@_8h-Ƨ[fU4)1ƻ0~ $x0*"E؈ a= AYb4Qŋ LfEˍVܥ[FZ\ z>ͥV>v8< 1J+ B_9  R'A\ʤ]0>hrp0 8j  ĂZ@xoR A& X (>O(Lā|/lA dR@"@|/SjiKZBiYP|?PX>c[|8nVd( 1rDd8[6HL>qk| x/DxAp(A,D|8M"'ȹ)R(0x >O&A @J X""fX<4 @63|(L҂ ?#BP<v2`?R\>6 "H%KVC^ʥbBP;Z(,$8`*Pzɴ%6 a, b vޛ ҃pBVb=E00rU+2) #l}H+AW [Cdкh~n\ \( |8P$|.D֑ |/`pPX IVD9M?!u Řڗ$k+V|x`p "@>/*] iE8U>/%X` >-Z@|8ltxoe֫fէ9זCP2?ud!*B[[ab?[TBJuF% :k4t#PHml*Zrds J0z8[263<<(XPNlHXDm0J4R.|`g{TA.J\T=PBZj,Ȱ>'&Z|pІA5Ѹ` nj$8Kn[ݦMua>@`x |8s@0cu(> GiY lh>,(C@|nV (*` F @CUpgcy0lPVgC`C89AVBn< vAgKlvGI̪2AVlhx"PU!n(| <$0 | A`%1 Vzq+֦ ʑ@p,<"Q*E$t$0K̃s zCz? )jZp%1[j F ) (>%H\ %< БƢp-bE`p,xp,ɸEr8o㈆;p,_  &8m qm0YX>G+@Mѭg_Ӏ8HP̀p,ZPY8L0ʁ_,iARɃdd+ĭ*&8PF˘-XGEv@8whƳ3 n %@8Onn!6>6ZD0 ` 4Q^8Z%M|d.;X 82qÈ'а8FuxxA}H%"D ' e" >g(|(KX(X?GX2x^2k[n$A`p,F6 @|S*et8>0U0}WƀF@>%TD &0p,B>(7˃ⱜ5@p,g}& {"d8ZeD-"ۍ R0>00dc&Sw8oـG[ξ> x=D_`|@|` x?L@ "0ncǽG!@0)A` {6?$F|x٘2g@n ~?P6WlBI" m€<Є T%9ꌁ 0l A €=K<&| ƍ 0aؖ >"@0 x< @bP7B Z oH@Ra 0|_ݗd|VH`˧Y ĄD /(@0"Z) N#TQÀEėl`?@"S_00dcS\ o60}v3`_@#|/ĀGa( @*x2|O>< xo@<|/| = /ԩ|A`|]|^ '`F3?| :q@*0!(p>ڠx/A!@<F2|M|AA z<, _D xA?V ^h1p<'  PxA@<"<#|@0? hPT@Tv`!B.QLx>W00dcTqx `?_`_>O-0}=0A>  x>'ڀDAh>(X<`p@ z =8`Sh>7UA@ ?ttPx?R<  Pe 2,Gz_KP0 @BPѿ beoR\؎L m(>Mr> |A)|z ox5@ !)l5g#|}I10L>h< A`|? |H@<0xˀU>/X8>_p|o$k?Gn?00dc T|~@@ k`p?X?_`_cÀ-0~Ā=t0|/m`,K?€42M0|h  |/ 2`, ` #K4Ba_wKh+px A?D1p7Jh<#b,|S`YWvgDߌ;(OZ#jUj.V\b ~*t|+P|(A@ @` < L,@$+%V^%e#UtT)E(0f0|X`PX ` |hޗH  "|_|8 %穃h0€700dcUk }{X>,{▱>!g@+oĀWc_Lwk!|/\LX1x1p<'@z0!0`!`> ?T0h!!|OU@*z?h0c>? x(<!|?D">`p>$ ڒ`|H0b @`xH>, O& 4>'lAJ(B> j uN5e{?{_!|1p |?A?|7 ޿ P |1!@*P>w ޿00dcOU ` X>vyok|[Nx>z@'`cۀW`{zAU a>! ~ x0fv `_! AMF %_A! aALI I?|!&zl@& x1p>`2|P:cbUh 4!. iYxP(oFI'M:ؔh>x ͬ>><U`G$0x@ xo`P  0 ZyJp| "?g{>kH,_`K0x/(?dx,ĀM|JT 0@'#$B _@&x>x < @&>|00dc'Ve ` `*0}_l*v0a><zx>' @ K` SpxA8e@x x> `@8<z>4t`_t0|XqrjX2BA 0gh1x>D?p|(@`a<`@p" 0|?ÀLxA`NAK` o@;N zGQ,7|D$zLa>,`bGHt@ 0|H?Nn 9e `ĀUܠ30>EEx +@#|8а|` h MA<,``>.D5|_X6 @r$ xOA @ADv(<0p H>$XCc> bx?ĝ1xXKAc?o?MP X2|(B>GbHCu A`i@̀,aC|AK<,` >ɃD|BGlJ<H>,)(v H>T @ x8\p`Q)!x8 ,P|H d-P `4h4RxA?2|/&> !?HM2|X+א> @;Bpk{(/|XA, |ݦ`BzzshiչW @6 8+.Ìe@@"  0|)@&  >dkc00dc>W`8 &}D3_o6?0}?L7a2x8cT>"x<$`&?E! | ʁ `ĀD xB<$ _|(T>P? 4@(> %h< xC zx>`0! x> >  `Q}5΀<G|ĠxO?<' @"< `&Ѡ|o0|0|FɘyPaAn{'6lHD(H?€L?.?޾?PF.L|_p|QP> P@&{iA00dc W\ ߷z05 |'}?πL{;?Tk`k<3X06xAoMj>zk> @p ?`_ ]'0|0 | |<|`JHI0|C`?`F?`€Oc00 &>$ ^Cր nݬX>P1p<|L e`A,@ x>  *`ޙ0b x2|B<'0 d>`ޔ.>$ xOA kxXB a 0x8tBX0!0x >l6Qx8x/`g>b@A@͑Ԉcq>$ɘ>|/8`6 '3` B>@P @&k00dcXZx`(p>l0:xB>w 1p0XPxpe 'NxPxT?P|`&x20|/ž$pFDz\ <<P ߄<<,@0 @*W @?V5Iz`Q(芤@*GQ =l0xh8Pa>,`> >;}B20fB0a|?B<@'6 P hax>*Ox( L@i0Br|_xBðxh@<7p(THÀTҀT*w' %<< `T>P|B<$ I<4 0 y2P   @6* x(A|L`рMR@Q&jL'xo>'| XS<_ !> `P 0ˀL\Oa<^T;xԈx TJ,K>Lꇀp./A?h>!K<  0ǀ$HKyp`& >ŀPBd 9< |ˀ>PQx>(!x6yZ(` BP Dog PP|B6x=ʵ dD/`x/AEǀVP` <4 _ @ `T~ x>OxA #ĀfF `πTHTyOT @|@<4 `>h>@ A`ǀG+(0pxh  xx(Ar//.P0'>G*` >OQ$A(߶{3@ T` T 3` x?A @*xO@<|` x>B0`X>.O@6=><xoA,0Ȑ #@22xxA.@}DxBc}AHx

    ?xo-̃ڨPef8*"P>ja x>\0 NP# =ǃ8x>iP h<<jT Tx<$?/` <ڞ\N ǀLxALf8pdqP<P7|S(AM8+}x^ ?0P?!Ed P|(KF P݀2p|| yR<+A H<@p : |(< x@ x_pR@yAxx0xpxhyXޝ dub`   (&\ A .yA 8G@8<7 @|@( ET>Oax(A?LC|OK(D?7A7vTR 85H>e @*j} AP q>P1h>e@SރhB.0|3.@*x< @* 0`?TxOxAx>qx(Jjyp1xATg|Ă`>H.x<$.w< ox>4đ i@"I+̀NGd 0a>G.0>A|A P@xh>W 8jyp<'/,p*ŀDzP|S@ @y(AU x`Px>lhg|xSK`>g>P}X-h>ǁ2/Єh>J_2`< {OTx>$n>*`xs >D< 65@?<jD:|/.A )F|`p @*\xF%.xOA=?p +ˀT)5@?Vw$ɀT P3)H04@82pCϞ6 !LC?ȸ O|DxACJ @Ɂ G2rL\ ?рT_P 0 RL(3_{а<@ /Q48B7` ((9<?|@0 t[@6 EĀ`!N'veE2x(D.< bXA˰xSox_A0<4t$@@3J~ `5.*xB? K /!*!Sht\txAŀW@>T|1Ɲ* $ x( >L PxoAT PgP<' x>$ \;|(`g|X`P>\ `6x>$.op>>@)AD[KO>4@f}80fP4 h yIr( PfȀL) v^x0R$9XC./jx(AX7`P02`xx< \ (`P"a<DVA`$JʋQ2~@0C a@Ӏ(1%ce@(@8s~Ԁ4/x2b#M<  6 ";9e <ψ>IX@r!K0  1)󔗀h @< x@x/R͡ƃ@axdA0BPp0(`pd $||0I0$Y`'Aʼ0 5sp!/x0CR"H=3p A0!ʩX0<Pa(| $a KRBBA@ D @ ʁa(a-HB Afb P 4|)qxe>ox0 <!09*E  {d%{'3hZ@_w\,r1&N(){yv }|?Y` %@\ >9|\>#@@ÁNb98>XIp\ B@@*hAT B Zc|Ff̗08 h0(A]h1 G("/a&@"@<#@0V B?2  xKx(A?C!%Iz0(zx1Ԉ-Jx2It\};0$x!@x?T@ \ j< %В!g$>#L X3@h@0_  x?˾ |P|A%^nF` BHP A`< "$ #V:)A`1EOsއ@S{ns=NB@ʸ>w` |/"H>< )<x?  ;aq5OV]`>zIa ~ >>T]0` v!;PX QH BAxDh!C4i"_sM ReX=Ksw92€E&<)0 |_€$)U$`?<:P D ?.jA|f 2|(P麠|/\ kx`BP1|(SΎ8 ϓP>"(Vpx (ƨ1! Xr70d =0| "8T+HƆ SPx(]@/P " p칠.@ <) ώ|U|!փ;x(pXx9yTQ_m BT|`|(`8#t |AF1mD0a E'Tp`3p8>zm `p> o epf3` ALQ8Hg$|p3()a8>PzdP9!PБ lp18P p>i C F`Ā@_ؔ8dP99P1 C2rdAR\H @&@&LPpp>TH0P>R=: P\ '=-N sp@6KPT X "P!9^6 {@7B L7P>iI,2NJ@am'zE?2tj\).@I_hx! f`|()L A =KP@. LP!ꁏ@&P!(> * {TH x/t:p 0`:6T {j )S\=900dc5   cXviD0050טalժ@xOA`  B iPH>d``*>/>?\lHv@Ҩpev e Pl. 7?E;(@,`enXj`( A  ` >A| e` ;@;@lJ}HBx?U 2!@x(GjT |A p` aCV AT <,#@˃)@pa><Av 6+Th^@>Շ+€4`va8J#a2?=R`T t+`˫T UCR?*t2e*\nHP A *AJ,;R:\`|G`p|(m0" ~>p>7U p i ZCjJv:. >BP;EP0+(XE`;d``TYP>?* axA4 : `*xoA  )L X<' _XJ|tšv P| <X +T P<?T; `%TYB e T;T*xC|OGv`aJ. U. A_ 2;J| @XA A<*\ |V14aR`˃,;eX< .˫4Xg Uj+Ճ@2:kPP@V>T  PZ`?@2lp`* X2J?VdR&C@ҭP p y?@,ڠa0*\'PP2e*u@ + >* ?T jA .Ϋ2Gjd.Օ2`( e u`DpxCe Ҡh 6\HXa >TZ>#ce \v&;V;Vv ?eX%H2P@ +VvH2X Pp!rCX2.a2a0P~0a~``" yXA 0c`P@ *YP| (\`xA ~GjR?T ^ya2`W@6Pe`TA!`xU*@, P@a0*A` ɀ4JCP| t ~l0e!<!~#>L>4A2VXX0Fэ:fX<#`Uʃe \TCS#t!2?, CKSb *;iJ@*e JՃ?VlɎ`CeD?R;d?@0+>tAJ#xOU@xAX_U@`W 0 Tdz U` H|H.e` x/A?X>V G`_dO!)]P2@ ?\v RT`*)>`*j }QH<*@)+@0*A` *P:@m2e#xA?V*\t ?*6`|)0 ˃@dvj:*@2`,2eA! `T 'T@P.x_À4<,PP2 @Pe#e 0€60)Ata2u@ƀ4'@dJ@ LZt:T AxA>'U` V 0VkYX|;ɀ4p `#2x/U ee\`A?T VP`( x~  `_2ڠa`Pt 0h0_ٵc@!AX0 @˫` T:,'R!cBT*V >dt v GcP~ +T?2tAx>$P@~ 7P􎁁a<< p  _:m`( J.2|/O2˪xAd2ж xA~|!!| x?CeV@0@2D C}OBJڠ|G?U2YPg! A>**.H<\_P2a Ճ.>cC\t&T2TpxA N(ʕ,`W@*$T *e@@xAƀ62|:4?ԅ2t Tj ,^:(vh>,YVeXec~t'Dn*\x?A ؤ +À4(2@P A ( 2ðx8AP ?aa> !v;P>T:0VP~PU@`*   `xA,j`A`  E@?aH| >&0" RyAҠ;ꁆ X0bc| /!+T 2`"* -S2@+?P;4#Q`;v x(Apaj`T@e ڠa<,#`W@2;T)+dABeXj4Tv(0p`Wh @rPZatPTcڥj`e J 0\΃) xAXd_">Va<' _X TxU(Z@GcT A`"t Atʥ`_Xpx/U@t;P`` 2HCe0")V;]Rx8A< ` X0P2b`*Pe?.Ƀf:@2Cd @ƀ44T <*p| 7T Vhjbe)0"( b A<$ A e@p+0*xC`"jG@CT Pv0V 6dxA_ړR;1!@b <!0a %t;d -+(tq~Cx/A1p0  jA<!P< ˃PaRp`( >H0\ad`xHG`EX xHB0X2xU'(S `P<`(` V3xA:~?V>v>kV$eAxSiA=?&C* P 4?T 1P0. 0 #j:VZ@A2x8ATX0H>4X?\*Px_UR 2PAUape ``T,|66|&?AdT -B F^!xXA@BA!0\+Q<_jQaڠX(@Zb@Bed0l:(T Ae@`AiR;Tt V8)?d .:eP~vc`")h0"?Tu`ʀ4P2t.t >4Z $>H j:Tvʱ0t,@AH0" ` 6V>?@1R Z`(:ꁀT 2x( A`*>'4 nd?d+`dx ``xU|HE@/LpGc@T@Ph| b@?R 2ꕎ0v+RX| Z`DVy/A :`(`* Vh0ƀDC@Rv 0+p02Ձ%,h0 A*@ˇxA ?T+gjAP`TÀ4X+`@>t x`9)>d?<ca"y_A` 3;*ڰe% < @H0+av:`eՃPe'R` Jj?' x8 GJP<* peĀ5)TxU+,@P0\2|u2@_2`e` €4AV;V >>  |Ik`;L:  <5`T>P(p>*U(LBgU`(H|>tt @pe`(>oH ~0Ӏ4-*d  2~ v:@xA``(H<\ D<0BT>VP0x0 Ӡ` ce`?`CTjBV`eTax>d@P \p}XB`2ҵ`.0 `0 ~ >$j@a>a03SA`%TH <x?A ?T |k q!2,jxA jca0ŀ4<$rʃeQAHt P?#Cv;dn 6X1P!| 2˃ H~2PAH<, QR`" H>D"A0 R v xU@<*)T*@2 < 8NG`@P .>V. <_, >?@P2a< A?\ be xAր4| 6  a  ˇŀ4V Ze20@d@tvj*?j2:]X<\؀4v+d `*+h`BVGjP8<#~,0p`(àj:# ހ6cAaҠ¨tt;V   }H*˃r: @(,.:T5P|2A +N  t >V, 7?0ue cja<!< (@[>`` 4X`a>4'P.  F`" 6ǀfJՃ@0 Tt>*V:ƲcU``` |P0`P@`|HUe@0 jĩ |oxf>ƀ6Ճ,j-``DV>X>gyVa2| A`x/A a2TՃ Vv>/A X"`MP2x_UPAvh0 <ϰX04Jõ@P_ 3?@ A ˻ <+XCP}DAV&V >uCA>pa0[>a0!Xx8G@pá< ceD?D .@|OuvC@2A?X4*Lt AV;P A|Rx8UD?@>leJ1 x/A_ v:dt:te^ ?>Tp!`"l  ŀ4H AAc`T`aa|op`ɟP2X|` 0` -2áڱ< |XP 'ʀ4#:@ hv:P |Q[2 HPxL aAЂ[`eaWR]FHAex6Bt"A%\%A^P S`_> " .t;xHGa0X0*A P ,`e` VG@`xA C0"Ճ.,@;*R Dlkt (Ճ@`T.j(V:e?Ճ" @:ex(A^ >wTaZ`j``|HY !eP>\2ӀAl >4A!/L-@ˎ`԰>$#PxCe '8:נ0 D 2 A@_0 X>'Ճa<< _@|cYC \t e 0+e? #CT y< `(xA` Ҡe|X0 E{>  QҠa>b )9.%P0 F5MABa~ >eAaRx_A`&+*TCxAj)x~ A0+P|HD`:t < p2>T  QP?ŀ4*A€>&3 +V0+Ճ|`  A. ~"vA2@5VH!| H2>˫S&4`*  '@˃E xU|/QT'P`W_@J0Re` 4 6\1mo t0%tc;eXeV@Q0`}d @2kɏ e(p`* 7! (V <7!`*eP2`@@0 K˃ |FA`@pU@j>gYY8< > k`p`">4X`\`)p|8H>Gj<~P<$ EP>@(j xPx>|XX| v *Vej @PR/@|P|sYc``SPa2P0V)BP |`6QAP]J@Ș'<`!ԠAۅ6I[EK?6BcHWA>5j F;h8[,m*7 Z0 t%)rP?넠Ue KxXU3r&7庈>*l ӈ@JUx/ra|G0na,P 61AT *1%iВ$6W|ÂA~һK٦ 7뎄f@;ѩEGʙiX N!@K8H!"++ljУi<0 oMDQGLlVڀd `CVt.AK(!8CA`wR46 aBBV IZN [j1)61ݨe.Z|HX]MT tH0 i-9"|=H>( ̈tHR@Tz7>N=18T2e*`?@2`W(H>@? @X2e*0"2xH Ak-RH| H<*?€4<#a?'c$ 0`TY|2@(+2tK+Zұl@2 ,,DP`U><bp$ ƈA@E^JՒs?Rx*R+f|@ <À4[p|$HڥMAu</eJ`} P +H | v9 IIRaTmP qVVi@Fժ J,H:Q `f *& P;V tt2L*N$UMѱ,?HD|@%$`|>TXR \Y$ᖐ`:X 7 O6 0 $AQe񻧤r׎ܴ&p .( T)Ā=1dURX| j `Ȑ0 `&4,) `ZDbB}G>ge2`e.PVv3A &i,x֛m? .4>JЃ/I^9j AQ>'o^tr"hn8M6WUtˮ 䆸>mFDVݤ0 uc`v(*, (t t2@|\^&Z1X;@t ?ժ{+Ե@2T$V ?X< Á5d=>RXW;F{`RQ,CB l`|ðB>U!l/H ݀Df`J)꫇v?ִP Ҡ6TK LP `5fT`@?T4)S񌬵\mP@D$۰c,ȇ[F80 Lt|.P0#D PBbs3A3P0z?hF1%&8 6 .`SbZa+U@⤔qVX'* UqWU*F݉DG i +!`0 &uvР :V-"fVPӀC്7 kE H)0 nI=>Z6%Sةs0|(0 |(f``(0 ]ZZ€5V\WS@ LX0 *D`M-`0 ~.%n-xk l4-a0 ^6-.80 ۈZ 됸΃ؼY7NӍTƬdsY3 * W`(޵,?kN..Hlg|/k@[A?k@>'dXFǀ5*f%0 ѧp? @ѺӖ`_*, p/$tՐ>P0 @% Q0 öDdUՃTV42@(Xˀ?0}c\`YkW|Ӱ|/_Z ."9`h` k;Jd"؀|Ylm0 I+00dcYTT?|V lJX>6}u|/V?[`o?[$&[€&Oh }Dm/o70~}o`U@Slg2`%e2QL7a.C M|Ag'q,|/Pbe`p||X&hB >  E[.0e{{\"@@ xK LWhA>B%e|>pa<5<\0JxĐ|DxOA?U6>d >7e`f?A`ڙxADIp|x@8J/O@ K`?2x i5@}@6$x<`P,, @͗7>7@0|/mb8^gk|8A)2>6j@ dt*|00dcY Wc?[; `x>lX= cM=laC ??w_2 h \ \"><, ncĀW>4p2x/@8>/@" X?L PxB<_  H>d[  0 ?oÀO|&<|_As@?xA E@ PB p x (`0 P  0x ?뷒@"hIp1_ mAk.``< @6ĀT@/>>d`ĀG=;OON_oUHrFF;z7'9v!ph`< 0(<#ޥ"vnB#t>zkN J@-$!b` 0| _>}? 00dcQZN+>{X05@y  05@|8>`?#0ڀG^~ U` ?W`#j>`h>$?l@͌! |X(>w` X> |W |ā] P@ -@`(2n >̃B xOD}O>hThKKBA 4 `xAͬ! @ t A`g`PՌ>3`jt0 "s;o?` x>00dcZ `_h@*j>n?@+[_@+>` |XV ǀU1lm^V7v|hm @*nP ?0~u0|ЀUx>lP #}(hX>O`*h<'X>vh>'`j>k`_ ŀ\20ÈUl>_x>G2I&F Vc 8>O?vlǀU"p78 Fk@@*<|_I@xP|ȀTP`>>\eVA`4 ŀM\_><p>b kA€D21$@<@>(>@ H ep`>h> j>, ͍O{c |A`P  oTl@|S{00dcS[I8 0|Z X> ݿ `Ľ?[W[LOְ|>@+0|A?O 0)?-ĀTJ|P|X" L  )`@h `_(€U`tp|5@<`,Ud`/G!<ں0\ Px_A`2bp@(5>/x>4Zh2aae x(A vKc9]xhA?̀Uݮ淫X>;LHM x``|(A#PTL( =0/alְ|m`_`&3_|w` @*> @+p|A 00dc[\ >P|/X <~x>` |O}l.V~vހE4,&Q 3ߵ@>g-`_|xA |k`*Eh>?@'kŌ6~Z`x?`p ?D€<`̀G}8Z[G`@FP|AB 4|XP|HP|@<FPp>;>tx>}=&x0 @*H>@BxA?"2x(A&t?\!,ڶ`wm v M0x/M  |_A`xOA MA>  H0`o€E0|Z>g >(>?`p @*kj?뭃6R@>v soWoǭ@ |s?00dcJ\Cx @'oŌ5|l`P | |ou|m8>xoA @&BˀVL0|` H̀U LC[@0 Rh0BU|A` @*h* @4! >|[H#|/?I@ >І0! x `#|<"X1x>De0 @~`0!@"02|`p T0A €TP @n L?_~ 0 H_- ^T6|m` x P|T xh@8&P|A EְxhLݬ?/ w-0|P A Nx0G` @*00dcc\ || c<?> l'|@&>` Ę0!`> !|?CW@| ]ex |8 ;x?A>"4 !x0A ÀDxbɀL4i:$@.`0 h1p@x?CL c_pStY_=Z$kw|HOڙxASK[vE|WlJ! 2U`[E &<, 0|y;x>`O[H&?i?J>? {w|Đ|aAJm` a!p_cWZ ` @' @+@' 1]E C` @+>00dcL]= @&|Px[om@'oM5x ckE:2| nƀ> > _@&@&k L60x@&݃@ @&~ >w`0@&Ox>~>bP>, @&>m 0| k|F< ?nx@ր=?oM "kN0|/R$x<'&﵃@'0|HP AxBDЂ(< pxA<xHAŀTx<$  ;`0-|ADx< H2|Xl?|` ףּ@'{kLe1p< @T`@&?ڰ`/L4x |A ŀ< |}ǀDBP~ `> ``?>,ڀGPa>az m` h0Re@*"H<`?@cÀ0 i2|˜T|2ˀ'o;T}=gM(\10|A >m` @&>l` @҃@'k=6|x>z>{>k` @&1@%(|0|00dc] @'oO0}}|!"?ƀW[O@'` <?@*H>TV|h05Ѐ0|xA|KP<| |(Ap|?Q0`AaA ?x(Đ`<p>\$2cHj0e`Ax30xH~ AWP|8] %zaCl 0x/A? bh0 `ڔaG+0eP3x>肑t>/`C =@%0h@*j< @'H0|R`p <`_[Wx>! K 0T.PxAxH&2|uP00*l><' ðe ذʀDHR>*`Tp0?ALpG}a@fx(<\?a rC>Ղ21>V@/(|J燀x 0|x6P`S`4:>7(< A(b-+PP`4:x8AD c,G| `a z/jDPyA@.\_ ">P)J#(P>? BF V$h":.8;c4Bw8#p 0x7%@" (A?P@px/D@x_B<4 pP~c<3(D& 4I`BB_1P0+> e, .%h1X>!bz>p>GS A 4$K\'0xOA <|%}i 4 @"%{à`TxpW&yx@@0>d^H)P|K>@" k|T@ $D$ N 2O! 9נxB|A 꼠F@" O}|<q(Q SąJnk!0(BD(Ab?8X<7 u <Y@H`<, )?% 1XW3:00*A?UBDVJG=р$KjP>0DL ; ԃGR e@`;P}A@X ߃ 2xxP|K @ ff|uA?P2xA ĹH0F +_R=LЕf%}P6_pPah0xCExH@<< 8>"Raښ <,dvX0| Ahvv\C v%x¡PJGGå_yHv"dS<|\ ȕAEBx8@|(($x~ :6"@"\ P< #aPyA` xnChK ð4 7&@d+`f$ ǁ*츔@3VHP$A 4F5xA`?$u@0(Ŀ&P%Q0)A?(>7xOB0*` xAB |g`G`\!Ja(AxЎf#^|Yp!-x<4( <'>!tN1XDp2 q,.`S.`)!$D1)GQ >f#F?t H*@(< AI?>d >P! >*O ۀD*?a0 xA.`$z}Pp  <7 PA95x8tL)M  oA?@`F@Bx4 MP 1Zsñ x >ۭ($AǀEHBG8|HO_\ "`xA0&`RBDi1$f" J]!x<DxH!@yA.D 1A.@j80)xAb=V2 Da0(?e0>43*}XdV ypV:n"#%gX10"B AP a,P=0)A:]<à|(T)xHv" t@լC ( :P;p (RR(<|xEx _%xA(8Pa#P Ps> "<}RCRX_>/0~A@\;``Q@PC/@PM B2FA|Xz aS>S+@å `LBwQP @UcTS\`C`@% 0{},Kmu"0<4 P xA! @lH@"$$~)/10(P ˃HT ";_.T A;5WD E *A` Ġ`ĸ&0뱐*AIT(h0L aK%2?O.'0T>``?% `|8G`5(D`xA".A O.߬;E+& 9`xA,v +=GZ`@B́@}(G p_G€?8} !t@@#g 0|TR"OH<,Rt :G|$Mv (Du ð`SڐxHEU1(JPJXLg _ Ճ8xhA` L P @}D|x>Ge(xA?ĀD! @H  X8(H>w*5>L'D{*GǍqZ] T/8DJ @`6. P"#*ʯ 5 P|KL@vj@P2CK_P áڟt<7 R>0H(0( H?ħ``QUYSB=U D#aP%Q `Rp<υ>{<>ҡHPB tD`xA  QpW$C$bTT! Yp0ބ6A?TBJ(8€3O^_=A` ȀD}}}ąQEX?or*b%?/ B\\ )PO _đOǠiXxXe`R.AAp,AO~:D>SxA` _>S/0 Al`6d#@|EQ#|ĠA@ 0yʔĒ@#}8K4ieT0(@, JƧ'G_h1T8y-FP ;{ |yvA xdܺWHHt ƏA=#c*rT:7t}AC>4H!Q!J+(vҰdWA}/ \\s>, $a!0f .j?Ae0@/ef$~ / (/V|2%D?@Հvwg ^ʀV՗z،h6R=@>'0tP>7 ÿp aOE>,!W!ꝀA e@?"%\P0)A`  )x@C! p pT (!(PaX>/az@> #Ar tH`H>>2>x0fBS%X# Q$d]dJ!:x>ccb.:l*€hP1 WA@"\G ưx J%J?>5P:pa, ` % 8$ؑa}^ JB{K@< $ e@ T`8 h!! u*qf3z@7 HUC|BAQ`P8(p@< }|o|Z*T?eApCT h0 < QJag, <ǥ}Zb<@B$KS|t"(:u#WB<`@"H3~V|;h0(AT=*A  h!A'lz H/cB/V L>.0 O=b 3%N< >~~&O ` wvx0>?``"lJ 2K5!`2 D03r>3K=SK`Tdx}<`DE$+(ED\DH iFKR @P%.<< 386  B( H2xB>o"@0Ae`/J!+2 ?2 B0f0<#P; Ճ<^T 9* wrʀ@lԃ0(Ȱf^ AOǠyP2aA`6R$Gǡ Xgh  (T*A#)Ha>?| /. we< *.. ˋ$ľ{WG)!,z%%!'E8t 1@ z|x|{=(08,(GPBKrƈP^^

    g; ı.0HD@)P1ԋ|%ӒM#p ad\@!5i@H02 װv|)?1؏'J0d f) l~@\^Qp!Yx B'_˜[aTX<S A1C   z.%1K T`µJ0;Ɂ`#|DP"\  `: PPZyxصH1 Uğ~>P F0ʝv=]r%`p;?SPx(Տu!x(z>> @=x+uڥ8fj 3[ >0z^ Nhv 3EPf7idI*Px u<"|Dp*A߀8>#- |@ 8B b1 |ǂaր@CV 2>@ZnpBgC((0|(32겓E&r|Rx3/f(3O 03s 2(2:ŝPe C%Jig| ĞP H? (yp|ĥ_ A>ǗkBX18QW 1Xd 0bpgx @>b@: w;#`T %8x0f*7 _-O4^ ~(ntBS@h28#a0f}  $HH|100|/1@(2L2 :a p AAALL}jh!)8?m^Dt l” Up PS /V?@,0`P hHAO?2B>e!a`4}p(6\XP@B?@CW J@>`JU` GPYK@͸3kV1G0<3F22 $*|zF0(1#;:`P)E,|  n]P Q:#|Ua(@ʳ"@XdQ( |KXd1A00%G˸j`۠d% FT c#Hp> p`Ѧ@*7C13 ,3 '3@d ?>E.^;zv>Nc< m\3t>cA!r211 M@ [v2W4R` \$^ w|3D`@f$"1Zp2 ``a O`Q2txSPpf&c@SL@3P 1 C&@&APCPdRH3C;U?.| x2 { 2f>N&0\!gf2~ N> ` $SJC20| 3 Gj8PH =&>? 00dc1   cXviD0050(1| >l?ǀ+T|X , APz,h$Ճ| uA<4VP|SV!*V 3P`L\> j`WX0+p (7@ H1X8~;A822b|=YP"Y). `@.x2ʁP a. J e TR` 0$CCJp#Pa0. |OF<_@X(>֬z C``a2p!`nTR>pe.#P`T@H(A!zA`* 6<CjV pP'Ax 0> QA P~ e7AT#UjQ ZiC@|<H0f}PD*#Uj5X0g Z`jʄ!|p`( eV . >*`*xAXSPeT \&|8r#*YP>2ʁ xT V ˫Ȁ4+e<`x( 6@ vի n.@?T?}HST!G\ ?}(Jp>ـ50`*,P2+nhVx*o ǠDpxOՇT ^>gUJq>tn*J}H[Ma2脬 pT<\C RAX| U0>`T@PA`GX j xA$z ?TȃJP=T pxU, A7A0T `TA=Re?4UP X>L`x j?Qz<Ǡ*\?\n 'Q!pxpEի˃@aG `e`@?Ȁ4]R@?V 7\ xH ժT ` NʃaA~=@ee  NJB<Ra0  |=T 7, `WP> {]XP2,NP>T &|Ec.2.#V@8xlP0+R eՃT?V 0X"a>'xS@ jժ0 A24 <p:RR`QX0~<V `Tz 0+n+V@% & Qߕ*?Xl ǁ`pa25 |P2˪]X~ C@?* \pe>d>T.` .>$C 0+2++aX Rz"8!~ l;`"5X>ne\1|!@B@3Pahh0`W,+?tlX~@b`QPnp 7TocX>J?\pn+*Xn 4_[J,h0*?Y|OP}G@pIv V Ax/Tl 6/Qx0 T 3\~Le,^JQX<>z 6T 6Az=~p>*>V0\P `( 6``W _2+@!T>V+P|Db<_<X/u@P0V<@<_@ Px ~ 6V!h0hX7U<ꁀepaj`T<j`P<,A`ꕃ@` =` V<ڀ4|LʕCn x0XV R`+V~@PV <4P5jPcj~ 7ʕk@-kf`* oAV֭RZ?V .}L:eJV 2˪4?ŀ4ZX0|<R 6X+P|IJ7CjTp` 6XB PX|A~ 02d+\0xHAT 0*A 4ʕU@ˇ@ea<_, 6TB<a`Tea0*A \!<PxEJ@0*A`?7ՃB PP0X2_4mTtzP> D1x(A˪rx@a0` @G2,jb<uP0~."\> QP~T z `* <$?V C?\+V]?z=>7v=*\`a<|T @pxO\'PxA?0,@V j A *VP}d jcu`V17@. U@ ^ 6\*e y_AZ~*$\zX0~ `*R X`Zx/ǁ|+?P|_B78X>@2x@/LJ 0|@., 7x/NJ<a<j~ 7€4R=Tz ǁj +]XPx8 X0qplBl4:ج `?0hH` e0ǠP;U@p|hEjA0\uJ@ PP*T ` `WlBCnՃ@sVՇʕ+T|(S(`?݈jĕJP U, T `h0 TX`(>\pƀ4&xP0xV0+\QX>7 Z X2ʇe`@ \ x/Ǫ+U, U*|8C@`u`eVV`(0+lmP<j`Pn x0Tf\uj0e~ eX 0P0Z7GQP| u`?TBG=Vl?X4V?V=p Vj#eX eJ ,X7%@~ 6VX0+Ǫ<z AT PG`DRxAP`Jc ʇ`*ꕃnPTCuJ`W@<|+C`=T +T 6  ?l'P|XBǠpn+T @P ?A0 pV>T ~0T A` ԨB<'ꁆ2AX0Ԉ|CVc%`a`˃.. a>dx(ǀ?h0 D!ZX~?XV 6z|KXz Pa2\/Qj8zX~`e`"+ǀt'P @&Հ=Z`ead*+T|, 6\&|(FB7AB +ʁ^ `ڠRJ8z=+4R0eV xA p >%`Q`>VKP?P Lj.P22TpxA *@+P#Pa><4Bx/A0PlhZpl<*YzTa2`|[-VCYX~4 Xp|/}2Cx(Ճ.hM`0T xhՇ` @`|HGa`(~h0Ԩ8 Ճ. 7`0 +T*V Db~ |=e. ˃@-BV ntEA0΀4B<+V+Tl @00 [¬>z#U@ARx(\U`UX>=0V+J?X`>V 8> z=T a<`p`T@.] 0`}hJ\?T 6ǂ20*` txX7e` ΀42#@,`aP(кBVAYP@`* 6V>$ P9ZnT x(V? QP>>+ABx X.PX p.!Ճx( Ճep`TTzPX.]e^ 6?[VRX0*AT +|4 ]5@@ 6L[Z9x ʁ| tk7-@ <>V>X>g]TX0X`tx`"`˃Zؠ?H7`e >$uA00SPh~ >L0*` @+\ >Ā4N*^ճCa>0x> jx/l>`5A?!0 Tp|/T 뮀>\Zо>` R}DceǪǡ0J`"6(<$"<`pxA?X'P|8vAL.b~<_>z<Xx<* x2~ 6(ǀD*0 @|XD` n~XX0Xnl\f`T>op>n@pn X0Q`  0*d>rX0V Tpի `(05X>7XD >+eK@`0 ʩ%V?I>B 2.,K`0+?@%J*F`d/[t~-ā`J\ 0sRdnzeՃ@k2˃ o+T`(e YvT.PP~ +RhL\`X| .x@(`z<PҩP0~zX22ʁ0kG˃x0+ P`(h>|?V> VhUT -&!JA|(`X@~zib0J\x `Pp|OBPCT +xɔx ?4>`W+À4+ʁ`\@(m 92[ PTJ !$L¡>T>xh0,QnEaR`"0T >'!ZJ%@ T `n? Pl>$!0 @.<XxA` \*`~Z~j# 4x+*@`_| 2xCjY@p(U*2|F>+P |/Y2 ?݀p~P?\'U@?\/P xU|/aP'P`W_8B_V <@рa>'BcҪǀ()<P` 8Lml 2P=(va,&“"aHJ H/ȫq2S  >^Rq(4Z!$PPV* D5@ X|B@,"yx?@j1` fLv!]P|0@x x/^>1"C`_`(=0?ƀ4`]C|o!@p ~Z` >pxA?1]\#R}@a04|><bx8` @ Zo °  ;V=xCx,_=Z|uA|H`p` P>O43P|H.0YU(x/2@b<=T#0z<PM Ā4d ~P0*|oS >45`+.z! Z<LTp`" Ҡ:N 8 p6|pQbua0 AX(j ֩RZ.P>Vn4 ~ +uP0VX BVP2G0 bZP`ST ˜5 BTc X|< < %xꇠՇx8[Z*@!+pX7A0x0 `n!?\z qrj?u>S)dG,JR D-C`N10~ >cxA ` nÀ5p`|KI"je*`n`\t  | x(iCx/Ǫ~F L/RhJgUcA $,jbQdp `DaPU*x/ǠR`"?x> |+| < j )€0T@2n\e,LJpx+8Bcx/A Z(#>xz<@8``g`a0=TAV~XxA@`xOHA 7xCT! *XP %x  ۅዸ8M`|/^C+`*qm+yE̍i BjQYS@nQeUC\?e`ՀL V À6ʘJ`_0 q>? |>. $>$M8>+j ¨ZDQKiQP`P(> Nn4l6xoⶣwgZykԘR inZ+e7M Aπ4,:ā-B4 `Z`"x ) $-\vH qmx\ Q3 _ <Sa#^0b1weRϺ.\lPpNyÃ/~Ԡ& Q&6akj[M PtlKaOU`) P06n4 +cz]R,/;RmV]` UQ A UE)G*cH.㋷6D@C2CEm+^B.!>%.UA,p`^ U`j|?B~Ȃ2Ӡ*.X (V!YbSEl5Ը̄ͩqEi;p&ՀS,y׍ @Vw*m˹ÍN|0 ZA_0 P/J _ǮjlÀ4 -aڐ @`)j`a |8sqZM5R`pZE` ME @`P6ݯ>XM(ՆBI ,4xF׍k|`- hiTݰ`jֽGXۀ55`cH" /L> y|(&^"E`^22i" [I@`񪂅Ȁ6 cNU@|/0 /`pںȘ> ~zL@hLq\D`>o| sb*.VMP0 k$ π4 pj(k^_QP``JIX"@8ҘȀ6Sπ5s86m&00dcP8 ﵃x>@ 7"X>`? gV_%GF?$i0`0xHĐ|(1`7|? |`P2`P>3A?$P|84$0`X2 @x+p|? vXh<X|` CPc H Y?e W`D ^;-|Hı>ݨp0d`? P%`6|(B$?00dcQ \ 6  c'(AڀGuxHAȀ?@`@x>$,@?}ÀF[ŀ5 >< x>/>LP@*x/0xAz>|(QAh4?/A |_A&@<3|A ׀U`>h>!)@B<,x/  `,Hu0`5/^H Q cf@ ՃQ<%PxUP7)á @c}D}W/B" Dl0xB>  >DbX0H'0x`D8<P78Bx>0|@*>ă@r$@< P x< *(Bǀ<m>v*x?@<P|h_kİa, p|/A?z00dcQx[x>c׀7lx>}| p~`k^0g`_ck<&>>`? ζ |h``\?p|?ŀ/k3kݼv}V h>/`P a0_!0PXq>J̀, }P,| A?Hy??2| HA?^`  oDn=/KA"|p|/@ @PrξxPR Ē>eT ) <$``=CAZ@_0ݜII< x O, n$@`4BH>$`6H|/?U@[i|(k00dcR $#o=`7x>:>o>/`V3o3`P W|OB0!k>c_,`Q@" x>"&A cޞ ?V;>( _)>O?J >o`ZF@ `%o@ xA @#*~ l` b >A`8  xA`9t| >,/e }O>A` 1pC9 >ɀ=ӿ#?Z:t  (V>/h?00dcQRo`Bŀ6o?g[#Lh=lǀ6l^x>O籃h>LB`4>u~7__+[x>$|AgߵoӀ70C '_Gh |R`p>`ȸ`d0@[t%0hB % |?A0|h0`PH>*6 #! t>oX><bXM  |Wp> |)%   fy?>nG `,̸03P|$A>g`àP[H`?c?3A %1A,;/@0Y _/00dcR 9<_ p@"M`#X=< ? 4ÀN*k5"|VFOpaxAG@"N.>`> R F(!`p) ;q|XĠ|xx> лzLK rf4` >IV%mH# { `(ߞ 2a1x1w0 :fgŀt0}xB> [00dcSz < @"kͬ;6}^|?`@#`0~cElzB>< 0xA @"ޝg70~_[@po_=[x?gu~x>|i0~A?ҀE6|?l` x>?x>{X> j}cɀ?`Pz<$ kϷ@[`Q" |ҽBk6" BH0xA~`Ք 0|Pp|S`>0|_0ZR>T "`IAx>`h<$ 0LPx g`v>w` `0(Dz5`:>t2?`00dcS hX @"<| @"?<:x?k`߭#[l}Vk>,`P`">`?"?4`"X< `㭃S+}?r<  C?ҀDNl&p|A[kЀ= D}Q&>0 ` D> p x>,``" 0|DL0(ր<=|G|h[ vz>T`@#xXA[#p}?AĀDV@"\jxAрG{X>u|P Z> ?<@< =/X?7_zP}@<|Q(>!  0x8AREpxA?#ŬB|xVޝ*>~ <$ >g, @``I>/}7MP>` =R>T!|`uA6|0SH#{@<0>C.D n428>L  |`t} |×ٳOvNFwka>{S > ӻ]0bAz;4}00dcTu8 >z8?lX xAexOj`|A W-`Q@*}[s|]oͬ 6DP C`0|ݒ<ӏݷP|Px j|(v~tof00dcXT\ _MFXGoI` `bOÀMB?̀ bH@o @.ܒǀLP|XZ$F; x>dm8v}Ui`>| >>0@&x>b aa>W?00dc-*Uox < >oj(G#Ryp2_0!. xA @<b@ e=À?UA4`S6}X2$!CP B`*KTD x+tly`jNh&%G 0.X0|UT0 В`WQ0mȀF3K~ hh%  ^@:WƃF|/˄$ `gDd=ns<`_(xo`0x8%|̓@ 1 BP`PՄ5`< 0(ALFN= e8$ ̓@ A2yOAdH- _tA>|Mzм@liW!f\ x <4 ΀>jjլ\$??\H(0ـ=<<`U`xĠ`Q2$Jl.Aflр<*ރ.fǀ<)R`S"o$*p>wjBfgp0.|@pA`RZU x8ꥁ@"3@e]V p3R 7<lJďx Hl e 0a `60`Qx8x>b<ꄐxhA@^ AD 2?>%Fh$k@@ @3Ŀ tA< >W0(GD`U" z~H >- AkAQ|x3Z\ |!@> 0xHˁAT 2dp!>b]x8Āx_AD@ 0l@/aOQ&Qx (4$xCP x>? 0b? x8JĂxXxA ʀ?pm!$Pe0`(2x> €7h>b 4 0!hdAD |`}|o<' A< :h2|K >j` kGG b/ .  0Xx>axAT xBxA? 0`RHx_A ǀ?AAp1H< 0\jZ%%p3eP@]xOK3eHJpH3A3At@h  Ax0( ŀ4gx [R|OK0H(AD >/!;2AACKh x Ĭ) >Ip<ip2> PxA pF|/CT#-@B< AÀD1 :.DpE>DK<| |J0(R P}XAR@aO7xA`0f70̉đ$x>,Q"a(<2^" 0jh2Q @xA`Ax>0HR AP J`eĘKĠxHʀD 0`R`jF` Q>O80)~ D``:"v;B)h !EP=><.V$O@ai!G$PE |x @P>z`& !,<em<0xOA `ڨxA>WH2>awax(`K00)A?€%f }RPxA?Ā?ðQ,= 0x8lB 2GtfB@P 崙A x_>w%,G>%@fh(A..$*|/A3PeD :3@بGl?0l@>b_^G0@3@}XlD6x_AJ >?4 Pxİy82`y̼2 Ÿ`3A  |Oy(= Gad@"H>8@ x>$Ā|$}XDt?U@mxđ$tHga þ3R]| ߄ ?Aˁ  z@`0) /.3 FbZf`|@?`[s|":pS@BH: Ј c`6f :.-P*?S04 Q`Co@ThR|æp#qx L~J0T įxJ0@lxZ=R " 6*Ldi$ <`p'0|/T`<'`@<0; <<| !h< @Ap0n@hz<06+oʾ7~%)H *6rjG-(@Pj]3xA?G@ |01$1 m`Je8\xDxX\^ ?۾}" V@xA.D#[*R^ @ @ a(AG@~0x?4!/FK nA<H'5 K`KD ^ I#Q~Q`p@>$<64$@" C/ϏF B!A`xK/ABxxAy_u jP+>AD%!QrP=XP^ e?P)xAAAD7T't<|> Sq$y@p et_#B,`9>?`8(bpD6RfA?`> xW| xA?T |)@P>)s`n_%MT%J+#0} :@Hƀ,F @@"0?ނ`?IJp~ +>ʀ, ">?(>?CjkL h)?@#Nσ}R k#?PD B GsPID-@C|yxF ><? +PxA R/B8> Ԫ'T@{L 402@2t=@>$ àP@O@<gP<|`@T Ga>: Aƀ>xf`:B?03 `?2p|yK6@ AԀGH0(`\+h`xoHI`@p0( ʀDwĀȏ!` <"H00|/Dx>#`5/Q&3@(2``R '~T%DJADO0dNrjĠ;ʾFH˾pyC5cbP3Ɔt0~ 1)$ AFv{ ?\3+@b__jto4@$ePxH A }_~^4(`xeʁRz}WD@x`3x1$ tx?D!@3p!@|(Aŀx?  yx(AAx `@ |Ǡ <f3=GV #}Px1\р?Q@?A 2^ GX xxJB2PxoVq< [m`àQ@"_U "/=AD^v ?@ 1ATYp6bzX> f#Ē< SxA  &R > |a>/D,m< Px>?  A /`n3*a€$<<@CT}A?>>I|?A ›etFV T 0a}9;X.|H(0ShzvT GA@ #Pԏ^^. 2V? BPG`znC+K5VǥR; !2^#AFJ u^A <S`|O6 v>BU@Z?A{ m+#+P%h>$~{ Nc|X]`tGRG?@R4>QK<~@x.ŀDf(xd@`QՁ(74@p4 p`8 x< *UN e ˀ<`  yAb|C G`|?zP0*#ԁrx`p3 ? @ X KNh3|}|@,) ,SUtqx)~t2C0)O *ڛ!=€4 )YrxO*y30c^!@tzjD|~ʾC/x\ j~ qP0 #  @h7*6(<_ADD8><!RpP0+lJ̀<|>Ez p401?/Z3}Aa{<H*|!ÀERl'/Pf3`xA TPxh@,2 <4>U@< [V30͇/ D?/{@pfc6TՂ ">'ec `#2 ܠx"|A|@1 x(<j%@J J _P7Aph \=TKՎ`: /$| D@fV8 ><* "*T zH>aLPigLS..P(T  1"xdHt:<2VR, p | Oa3Q`k P @>'8 |A>0(~< h>_akʀ<3J>tp6|(`! x~#?~]Ȁ<8|PQq|OTPCUxHO |!@0U,{`g2l@&Sc|8`-CW (2 + ,)2 09P>*P3xP`{`  _XeQ_ ?>A13Z6}xH ঠ8>KÀ$x>!MjAUo^Q1aN (pG A  //`*!x>bE@@>,bOeAZ`| Ɓ`;^R"fKH  |/ :I*(fK 2HXzug˜D\Rd肠 @ġWxft2 qP1`afaSa8faf0|A? 8E@Fґ?3՗x~`pž =<h5xA`7` a=Fahx`.0^<(  ĠCA Xq, Z҆C{nA 9pGb_Ԛ ! mx0[ 2 `$T!43`1A,zjjA>1xc2i0gc2ca 0:y)~ %oH_d a8}pd`@! ` 6acD`k8w4fX 2|,3D1a0 ,C0 a aY`Lf<3|? ,D,3 4"@23,0  n,!# g`33 0 —3 –0a`r1S †`af;,3À4 h~ @c|1` :>4"aU_R`> c<0 e1,afAx1c+7_ĘXiX@>@4fhijaՃHXf ( ^ 00dc2   cXviD0050"a|` `|h$K)A@|I.`@F8 80T^`@/F0.e`2 YD T^`PVL / Va)`/ ? H0./@Kh2 VZ /F]L5DAK`p@.d  x,blX>b$;` a @&ypfB xVXa d̃#F  A? XB`g2a vQD GAtKd@a ބ "0`DFYxOK`D 0^#X0 `D80ax/ i A; p0n 8uX`5 @ P [(+P|8p 6K@xx`i8<,e^0/`75р- +Xh2 `0l f[/F^>,b\  &1X>藄DXD p 5π,X ~TFc6GO`yT̗, "Dx|c>O/ ȁ X_(XH N\? ɋD\ 2<7ݑ`-5À`A9{"0p `x`$$\ X>k 2 V 0 q'p|_pY@aIH{  y/ɀ, pSd.}BH^ "@|@/ 2 |wL9 S 8 _Ȃ @[VDS`D,-D@?`\Ȃ |¢ }H`S" _ p+X  Z$@-3( "dv $P{2"$xhY0 A+)p<7d@+<lxđ&Yƀ,`#r `0  a$# ' 9aLA4̀,)00F "#,u P"yXAt|AZ+A`aV0A@0j^>gp 14ĀS $ `  ?`ayp07?ѐ$0$ AK?.Xa0r <_ƀ,`"N8Hd "`"@+@`Acq) @d r%d@d px?03@8!A08S`k8<8/.L`4 D 832 vX x "$2-a$">bbS\8+AA %l0Zx+AA` 2bHA/`O.  \ fVA €,2I a`E./F+A``~0Y`pp)$A`88.8)X  p`-`S 0p `V9 X80Zd +,@&  @,+px` H$SFK` ܉d? ,|hA8 L{,@&_>~lQ97 p)P 0 r^ S& x0 qx?Xh7,TeH^\ 0  (0 A  ÆXaX x8>b; @3"<|`p0   `u)0-d`bd@S*`@`Yx(X`0 2)X>% Xp+F0l[ ) L\-X| X>exoA<_P{ `p)?D VK 8IdAD @drs.d+DH0 "'p>mex(AB 0^2"V\>@< (<0/,A00r3P|8ߩS\  {P pS,& +d`S0 =Àx_Y`S#" >X+b 2 0W+Dx PAeV "H?gÂ#xi0<'[,+dA X20`Aƀ. h\XY ˄ah26A?XAs`,s`Ap0p^ A p@ ,x<_@ p/`+AL  rX  SXA/d ,A ./`Ad68 @ ! PdL"t@q<상N `V>㎔!` 8 ``2aȒ^ qPa6 P|OŁ`*Ƭ^ @d2x` " x "2 `xh8N\^{ ee fd"1cP+i0KĒ`0 2 9`+h0XCB\%+K` qEGĀP !./uAȐ^ 2 x8A?.dLD8$j ^\%`6`9d "Ȃ>a0Zm X fA $d @ `0 yp @&\ `` PSL^%%`+`>7 @<X `)"H\^^ @{_ 6@.Da<,l,@ ܓ  "2Yxh L3uYŀ,,)4K@ `0 S"@0r 2 x7H%KZ)d?tKdl" Ā,Y|o `Dh?821p)`0fAe|_σ@ " "qfA TƢK, fA?F `@+A?6/8b),Z\ 2[ #ɀL, P@<<2 `xD  `"+LH">,b ˙. N 2  %.d` I/eaOv@b-/dH/d2 `2>7@eD`5a Ðx  XdEAP}/L4 " `Aܼ60,) 2.``0 (@aV@>mdDa$ `,#a` x)(+A&^ +A"|H.d@Sd`5˄|̲ 2 `7 , d " HAVAQ Y}8 &pA0d0aq p,%+Ш$@& &6$@2 a#q?Ljp02`ܼspNdbA` AD Ah nl(x+?eS [F >$e8@  , u/alA0 `V@ 26VȁD \ @k&y{0>ᵀ/N A@aȐ1x0 xoL |_GH9s *Aǀ,50$#?L@ai@< S0 >O I/,  20aAh/ ?($yp+ALx8AXA`x0ZP@ %`8ÐyZV-0<,`,baȐ qyi}.x?Y," +Ap}XpZ+)p0jFL|0`)s8 "+p|~  fDVX  >b@`S2^ ><@Z %0`Wx˄V vV`7\/D`V1qx 0 "V@,#q p0Y/d "S9A`|ĭ `2 xÀ. @b  P@ˁX$ \8Ȃ S ȁL `DyĐd@ >$bpAN , ?ɟ axa N /p} N v+A? FՐd@`>W 2N 9`(0j `Sd Ȓ A0<,``-\X20yZYpV"AX{6d d/`@ D's dIdCp|ðYdBp>,d 0^S>ӣdÞFH*l   єő+"[҈*dI 4{Ze-x*fUx C`P/0  2 `0 "2"aÀL&h0h "/K#pp0"  baA€,Ip+A `0Sx T̗ A`ݐ`6π,/  H"DS`@ÀNf  |Da@@.//dȁX  $/ 0!.k& A8d0 Āt|ͳ i`dFP)X\ :v>L`s ?Ăx?AF p u@+AVA@|/1pYbdl4)p<$` x C.0>W$7Àx(X`r%>ej`33v[ĎY//ed@1` &NS0Ȁ 1$4\p Dd` 0(0@.`gX^ "` ^$I{ά 2%Ȑ$S<7 ,6{2!6܀`lB 8> cRP.e`;pp) ?^0>G|KnF D H6y@<^   jye$ 7a  ^ pS2 O}H`0d` _@ `V7%" K|OϗA` ΀-MU`@z`x?X`. A~j0E:cգxH~㏶Zpg&1$K@aOφXВм?A !V BX l`p)ˁ /`20|x ^\ @x/KL\bAt\ qEp`8(@< x8DDÀ.0@pA./,H< ~-/^$$Ip^ pxH?0> PP0^x0 /*5Ѐx `0k>d?׃ ?D0 0" 0 V_ A uY/,2 2 @!8>`p`r,_X0X 6>P,fqp0 [ Zȴʠ0>a|8Ԧ,SIh CŃ|^saBi|?Ldx/XS, P0" ``>f 0 "H> e,$2 9 t]l t N Ka@ 0>fAN{ P.I̐05> ^PtAa -S X+K`"2@paVxHLB0A P ɀ,'6c L||`I j ~#_*~<!XHph\#ID\UvH)  wxK@"Gkð^$aqyx< @&lP |@ $%Ax+A22-fI`@8H.YdS6ĆB@/y<dɂ 8a|o°0 Pp)F9x>?>fYm+ n,-J|h5hY#`S8  L~IC `G'Q޿BXh@`+@neP>v@|_&Be@ @X̃@XXf|/ƢH8  nٌh}A?p{*\/A6eѾc.#q͸H0YdÀ-|O4)h٨ Vuӊ? >|ۻ^$ e:Gpjbp Dv/U6$ +Afm02 | 2@1 EtAf@6$-@,> <>BŁyQ ʁ2B(Wa, ":|/2%ʋxfG2 0&Y-t .wMWJ" p: XX9@YXHz1J.+=80Z^] H0[S@0Ut @Gm15/f G% wQaR-AS@:0r @lvyOZ6BXw 3E|.ץ8 `*Q4A`cŢɑPQ> gfAA?|AkJ FA 83 _. ?vZ,6B>'R,g&fɃhq XCl",Z,hh0|/ДY> 0 -Ap|h5>wt/Y؀.  WͰڂ0ZwD_U4>^q@ ̀-_`[xP|̀%˾q`h',@0XXD,E,qh>n[`XrjRځh> >00dcViui x>}l3 @[cp ><j` :̀,ռ/,~ x&0xxl3`!>G2}_pyL>\`>`\n| /10)?@0d0aF P}`à` i0|x]8p@p|xڠ|HZp`.ZF! `0xњ >GkÀ,d|>_%|O | 0f(F> b0 Q!@ <~ ; #C``(000dcQV o/cҀ/l}xKZ A X)ՏA[>~Ȁ^X>o߀K8<`_``@0%1|HҰ}(bKx2:Uaʰn:n3:@?@z@"@Fp!` @`pp| X>4?(06P>giDJ|?PP  x|H?ˀ%W,^><k l:p >t *\?ON>/m>O)^ x8B*@T?"ǔD+k[e>4`<7zM 4wcA<}.z(?߭[Ѐ/`px>>'CTt0,$@ X>b1 Pt <0@* # 0>t %x0?6}0}P xx Cp|o8!/X2xP@!@7_{8Ga'p|?;Ex> @ph.n?>Lh nA Ж00dcrW x #M_@ }To4n` ~w$ }h{>K>|8E#>x}1xAJ Pa(X> H`>|":xA,A?!>x2oa?`pPj%.xAWQX0ˀ,΀,va%(<4]>1* %(>oiANjFƀ4TXG0|peÁpU胈0bP `ı(~ 0P` I@!>/i00dcX^8Ѐ7c! p@x>|P|`S_h<%@*xA`%( ,` LD  }A` 7:/Aht1Z `CT:*@||ѣ% E80*` _@T X^>_.Y0 P>?<!P(? \<0L P jIxBn%Re@tK(Bh>d0|2P0)K iZ|?Ag>/P  Pa$db |`(0` 00dcSX\ #`X>|?LA0~(X2<"N6` V a2A€DK`)>_h x`7xAN0@+<< @"@@" A}/3 `"mɀD b0CІ0|oR?ƀD|xA0IP xh`?ׄxB60xxA!ŜIf |x <| p|ƈP0€t!P A#0x/@>,,>?p|ɜ3nPo+T J{aH!xHl!#U|r<`a!@:xBD _xGh*00dcYXx| ߀7X><h>W*` P#P|XĠP@ؒ a0*AJc\~AJ0` Lp>l"P`L\@ `bT `> `S :yA` t`0@ |H>t\X2`PATNh P@H@h @_1 ƀ4@0.` @_Hh `6h0(0 @p C|[P%0$0|(Lؔ P @̂V[_00dcY՜ }8Vŵ|`>???`Đ|[[_`>bX>5p|=<0#>`t6݌H>???ɀ4x0 P)o|X@;X>7?cp!|B0  |D|oSDfE@|z UZ̃ A׃yk{?PF&>`@r   ' Φ ̓)`: (TI\JAP|(@/` 0x/AAO| `p 0(CKJ p|O@8yx(,40*? @:ACĀERadHl>?c^k` =t$>40xD`Q(A5a40 luV@ e  >n>CǺ@yptNܿ=04jn d !@6#0#0xxD?\ p0|Aŀ5yY?>`|P~~}h3 lX0 -޶?l}^{x>`00dcZR ?c/|m €GcB>l+`p`?k?o~${x>`p|(߻\Εz%p @.h> @">L-_(5(> (i*@AHU XF`E|]Ȱ>2r@@ QJh>`@" A"XÀF.* B 0 A *JxOA<$p0@a `*`؂0+פ+>/ 08>  < |Ao| cn |ho@iR  x?zph7f |1hM 5€DF>?=@ xA l[v0|`0| 6,!7o_!?I00dcjZ`X_`>?` ݬwV|k` @xO@ Pą"X|D%Ph> a I Uj $ `(>j p|Dbx?`P4 `S0(D(`棃@>DK@$H(!:pA@@"?< <, ?0P |HA@L 0e pA |Q 8|<>?jq(  Ҹ4A P |_4/DF> 0|>'k ("X(A A  h>i@>$ _ְ|F>Lk(7BkA?`6|kA?/00dc[L p 1(01t~"aP#Վx) `fE.ԿRd Ƃl3P%)>/X6@ t3p0#HXf?߃,@;u><=İ`  P O/0x L`S|> R?O"h/xAB# o_^-J(B()p'P. `0 @aX x00v 6Ѐ/1R:xB gfE 4p`6 N^ p) .>)H?G<3p0 %x? ^"Ax1>b?=|B0 @jGa0X$/,AO x 2"` 8^^HC@0%0xD@ ^ 2@0}~%|#|h @x/ Cـ-< > K(0|@0dF*İxhPPPx$2h./ 3H<03 C4` ?H0i|t&?`Sd `<h3 X>tH>O!%X1, , 1@>g"X\%F0-aX0f^ 0b2v N^ A@s| //R\"́P|?~x O1tAXJ:0%i@`Z' T>Z@18CȀ'0 1>G |x\ VXfP7Q,"ci9O2 /3h/7>< HvvG|F.` 6: 0v"D/2#POC'y8R?ܼDPh<_ L@0 QPx?A nE:% )  a8><4 ,GHE4!xO+P0_0p :ĀDF`Q0(}A *E0*An%?G`̓ u<( J%%ax1:G ,XO0`_á(f?dx/P|X@?bPB@"/pa>|İ|cW$EbR)X(_H C4K@ؖXfx:}@1H q3R^ y02O AD,Axɀ4KQ" ?/ bF_ ,Q@0 akp` ` {03 %@0Yx$B x `4 e?``lt D^z()0\v#>'i0vO|D<\=@3K`~ xK0y/AJzc%/ e`T`π/` Oτ?.1@1^ 1?@c\T]4 `kR)F Apx>'!pGTA>\\A$bO˕$`>,I!Y|^"TӂX( ` D$Gc_aPdCxd:=R#Hx*\ _!@4$a؎ Ak>Dc#,FG>'<Tp.0I^vxʰ:<1|G8>X08` /Dh1qʰaW?O ?b` ,<3 %@13`$i|OPbP` OW> %\G1/6%C<F  D|ixf?R p3O X( :C0  @; g:Ix(G.Ix1.BHOPSz P H> f:Ph>b01x!v@2|Ղ{1<y.T Њ$`P ! 0|j?)|jotʁ%ixX /"xA`  h!J/|`f > |?w,( r`  Pv! +|@1 B,~ 93IJP5 K@%/Rh>wxg X80fd e˃/ƾ `2%c_/0Vxn uW3#|FJIl2< ircCgiX`@8%,K?+*AP~ P!^P?0ߗ#K"a( Caa0)F @>Dxx < B6j\ B@C7b!qxA: Kd B$j//>#QCxOA@. `T0+>JT"UA 6(|BP( B? IJ߁>.P]`RD?|eBP> %?x#>CP`,>$ `Fx< % `00`xA,D>7 x bXo@\%>Ģ,_Ϋ7Ćc˃ ` $4Hwaf_A#G]<` r0l3T!f e. !AdfI08c=O"L^5`703K`xc!|?A? V0`2  ˃!, B\ R *0r`CJdQPP H(B> f İ+vB >$ z#9\3 dC26HQ\ C l20"x$f%pax}Hfƀ$>gUM&V*fg|8n^Yw P(A< zACP@10Ŀh0b_hC 0EB0PQ `40!B@/xv(P |F0f -P. @͎0Q^1,vx3OÀ$1[`#X㧃%BTE8 gca$X:8f oH4|˜ gAfac ӈǤ$R' >0D'`0( 4 CbpU_0'l'Y0BzǞ2x?A\AX1aM| ( 2 t߄!(JV f$pxKq(_°A  )QC<3 Xf1X1A(. lvP-DD mP\ %z!l3EAf a@^1!>h/?>' !0=# 0et1@> °|`0탁gqaA"=` C7A0 T>aL8cK]8!fau`16 8l0ᗈ?aG43, +8P KXf@$R*zIy(kD D xfԁaf%!C/HAԕؼXAPJ!#3vy`B w~4 ^%C<3Vy 0]T[(cI-@#%Aɂ. 3 L'* gᓃ, D΁3ϗ<34Ӓ%v3Aa8 '$$FK Faؖa!dޚBX1x1`Ff ` !`>ጁC^Ao00dc :   cXviD0050e*@p!p(Āa"%tI`$0ЀDR$=H*@xXR%PEJ 9 (<, >P>!zm ( @xOA`, &IH(0zxHA9 0J X"P@"2@,4A@$" 0aAA€D/%*Q$ "@xAx AIR" 0z (<<)AQ |/CP Ào$ ("$*@`. "P`, *@x/AĀ_PaI*PxA?J"} @H^$AD:|ONx~  )DxHD"@ ` AH >T"Y% "P`DA Pxo XH0"( E0@"@  ~ " 9H0x$4@" HR@ PxOA *xDxA a < Ԡ DN PaT %t `, ("*T"@/J\=рDx0p! Rx/AJ <,)<7)d`<xHR"pSA:  @"%PxOA<$rPaA)AJ <<)A~TFAԀ)`xhAƃeo$H t_DHAQ yA,EH  $",Q "T6t `|OY`HJIJ :"ݪl'R+V :lQ$EJ *PEA?@0x cX|$H΀DVH "p|Nœ6$$ P} X x_R" a(0A"<')?H @xA%xXA=J g:@Yca$ A*P$EAA$HDo?A !(<'<'?&IH A@" @"RD 7 pa7Ep! 0z>" ED"%H ҉)0z ""Q@(!("d_ 8AB Px/A A$Ht<"`p,R(<' ,\ \IAA`A/߀DY$=tA`@/̀DȒiR`xRpE`$J >;.̤IJ|$"@x_AH`(A$ Pp! R<, e`p#j [J$@>0P`.DEP` pxhAZ  xXA @DԀr@0H @xXA  @!? \$H@"DP⪘  0x (<< "^" *$"@yhA`p.MJ 0 ?J"T@0z0J  %"YT 0z5AxhA}%@`(>O$A [,$:_|OGÑ$ `|hGJPDPEĉ?#tÔP$ :=A"PxoRTp  ʐ&Ђ@xXDPxOD  xR A`/N-L!y"Q$ "@E`3|D@<TTA#` " ><!r2Q I|a<$ "$ %D <$ Ä(4 A"IxY IH0z *D?H  0,r H 0 .P|&2TYp`1!(0x "@" R`N <, 0z Y* @azPD  P@xA$ $ J " <AA` !Z@Y 0z@xAID=DZ0@(0x.ĄXH tpp`.IH^$HT)RDHJR@" 9H $(! !dH0($A !BA$p$ HA @" R )`-k"T($!,H R À`(0x  0DE EP`DQ$xXAA$=D+@Hr 4&ԂH0z$$\A*D "$ $A Ñ  0I*|AHDCA %PxAız@EJ$" !$A -1@ S@:p 0x /,pRIH <, <>7#a r$$t"`Àp,"JDAH' AH"D H>o$$H$ H@`DE(>'ATxA?2ŀDDȤؒ `p<@xH Ñ$HP 9PxXR<' ?(>7* !҃pD/H ʐ=@xR∐@0x Dt$PEt`.<' P 7xOA \R`EtAJ0%@"Ag;\2q$p >"pp"Px/R Ԁ"A>L!dA>TA3}?HD"(0z@"t, H DŀDDrAD@b\  ?!IRR" <)AdZ0("%?H 5J R"Px`j%HA"}(R"0I )}0$R@:B@xA` iRJ 0EP|_C0)H@" $@Y5H0@x(Ag)A  A R<' xOA`. (^ 0x "@"kd AJ  ÐoEA008k$ƀF$IkH!<4 ! (<' 8H@"$N@xHA ɊL" "%HxOAA HH EH 9.J8a\ %Àp)`πD. <@0D#Eg1R (0x < Ô0 #$: yAo $ Hf`J'ÈDPp!``D ̀D`0("I9S6h@u(<$ >O# 4R(" )R 0x  0DIP`'Y 1!$RÐE (<' HDR R)pG"XxXA?x/AHHH, A$RH >,"a@PDbYdD AJ>D+ "TxoAiRu 0z$">#x8A ?JED@`.1% ? @"<4@`=|8FH0z " )A:Y @&Ry("("@:0@|_BPB *0x$Q!(" ʔLb@<7 _,j *PaTt PD€D@o)R$(0zDJP` 8A HA?It=(>D$PԀ0x]DB@DH+T0 ? H0H"D "hTAx_A=H#|FM$8Ҩ\ 'ZT DKƳ5`$A0%@N<J pt T:L@R R"0B|OJA?PxAHHD3J<D|(QDpIH`,`,>A(" <' b@<7 ҥrlI "%Q%(>w+@|/vQ "A ÀD4xBPxR\HD 3 A "< ΋b Ep\P`, R <$)A"`<$ \Ap0ÀO>tk$*@xHA  D|PH` ʀEx(R5RD&`.` 0z\+|W$`P@`;|E)>D8G2X ԠP`S% PS   0<Ńx DEA ("@`7|/Pz&D0EPa0zVIPDH@`*|D@0zRJxOA``ED62` PxAD'|8Y]S! Xl@-4 ~8ƚiN3j 66+X%u(1$Kez:[ T؊ 5{ ( a,|?U 6liI@/J<DE ":^ "@*D`xHA`"%D`,>G!p4A "d@"&%c$HA (0z ><& "p}l((0*PxR@" 0xEY`A  \ց1 a (%0?}PaT@<$)AA> "HA0x < r#`P|/LL< "xoA<< Ô@|B!pT 4%X %΀D( "4Y2J$$JrDp,@ÄxHxA?"4 ȂQ%("(0@EπD|/g?`ĠhsTG 4nT I : MJ ڀ`]@kBtA3{IxWfSqhd!JF")mhq7 Fh D1.L 4w' !@a0$%J ,(xhAfx@P<,J !h<YzJ 0x D *@|(B@PS`y?A  (0E(>W&Do 0z*$HDxA`,@HA 0p 20) Pa@xoAH >'p p|/E\ "PxAR   <u 8ba0z <$ P"HA1p;ua+3@L~B #M !i]J yNZ 0_l.B`"%xHĐxAf "@a0Ct %A!"P|8EIq 0<D6xXA80H4H0"*PDADA>ع(0 % A$BPa<$ >*P%IAH,8!Ҕ   P|(H0%E*P|GRP`B@< 0x  ("el A"P`.IA"P PxO`ga<R/FC`@p,N$AHŬf! : k( %tTv$f(H"@|8Ig Ya;>3M`_ R   a<< ÀxoA2DH8E#XAJ"P`2  9t?:dEA$D@xoAH>' _)AX(9H@d[../XS\ "J2P?L 87 H o E!wh1X-0"AF$J>g$9:T(> "@xAf0 t.|/B8e? !đ$H B!0z0g`TuAPxDBV @RB?K|I A xORU,P` 88X Ԁp`P0%xp q$k+k$MFUP-'l**{[[l6ȒD%"A  %A'J 5o, >0Ҧ+H4>/$!p,ɀL:2Jd4(>4t|fHx?[ ipX>ܡZ`HUV0!<xR'o0,t%hI4eN5a`aBr*~? 6R@Y D.6㚄~4pdw>+8JX8gA_;Q I-ua>*:UC1akM.p>gGiA <$>*& s|?Z@Y0 FR`akT 6Ridɧvb(ڔ Tap ѕ B 0H R(R (> %jҁmLASb])kZA-Fa80ѲttSV:,hAh| CLV(f(??؃ !-iakA$J&̰ plW0Հ`2bx RJ[k f5r($'qf ae+vD%H 8l>Z,SEn6Z Y.݁ ¦8P8ITV P`& aĠKƠh T A0+[z v#J%ZoBRp8 !bT ]aP1ldpH=FM$Sˎ4Rp,VBA >qh.FB?D^5Mq8ɃgR\,;Y 0Ů+XeXjH>n ,R@"* +8Pp,5jV`kP.)uQ=a,|55v`g]D,5f h"6pi p|i60e h# 0 a@p,2ԋ%bZɚzPEbAf{Ki &X56~, 8Ep6 X0- X$}Xv`p,Mo@0 ,8KmuQjOl"*08M k#(8Pp2IZs @ǖ- @p,1Ys9 JAZ/T ,0yHA$ "&f`.p,@b0d rY? p,qɖX?O"}[5X">ɚYr4+00dc\G8x>8>pG_`0|~}?Z n |A *|A@%"!>ð|/X?hKH `  @D+`|D,,mBKP|#€4t%`€4K€4J+mP]00dc\\@|8cp}A|HGX%?x(D|A` 8%\|U@ð}_@K `P e h< (bP0@ǀ4l^X> ðaKŀT0C0 \>P~H!x<B a(@8|8[ ШPgv@ `|D|HXƀ4Tl`% @ PP q ~[lZH `|_A>/v` ~$`0z(ƀ=0|`? 0}x>=7o`>a0ea Hp $|> +@p0eA€D`h}8>41$>&!0(?/1  @"$ xo@pxH<6` p`> 0(0>4 _> ?@p0K@:$@x_bP>,->S|@ |%az m6>h6"< H>?1  `R@8<'?|X`: A?QU|?^+>>/_Vu[?j8[OMo޿|00dc]` ` YA [V A` .ր%( |?h@P0?р$@À$| 2|H?d|H l@%@ ^?T?r0V0 f!(Px8F Ɂ?* (B`X 0P p /p^ 0`x2|{Lhv%^x@  >1A 3f( @2*<bB|AAgYĀ` F?qp>, | ?>pcDPxPD10P<` D[yx3 0|ˁ{_00dc^; |h` |[v|m?ﵿcƀ.}y `}m߷ A>'0 ^`6 B \")80`%x66 @̀DX2< _@ 0: AL,a;ᇄ] {cׯTxA $Z a!@.3#(`"P@P (À4 xGP xA@ `8X0z|SD0h1p0x?AP>T` (> y2=@vx<$S6~?Ƀ*!P|A ;1p>`$xA/ |у<3M^ŀDwA&J<`Q6l|W4L x/A% ƒ[ XÀ=B0x(r<`RUP)-ys?{ݭ[x00` ܏k 000dcUh nX5 [x>\kx> w mk_ `[x>``?Kg}O- ,rֱ$X>_ ` {X]3@ @kЀ-6Z>k`4 "@"$4X 7Kc}0` N "P>l"@0)A$ A a̿~ YR6 bM >D`Pp<P>o `P@ʼnIxAPB` 6 ` Ձ!,&` :h#P|8B : x @ _P  V|_^`?@̓qho u>wIf?c>,€,#py/AL _` 00dcP moM`m?k߱cyX>v;¶`ߵ/;{`oc؀40|R4tN4 HD7_@F /.H1x< 0Ē|4 -X<A`?|Ol N #AD%"x>(`?0alAa , cxAG>_ 0|&xBà hCÀD"|? >?-3/; O0 @"  x>?4`Da,0|>H<|'yO_X&@0@&> P>`0 {|k{00dcQ  筃S|=l|o0ޓ İ|A?>+`u|ka|?k `Z0f>m`>`޶{>zA`S ﵃oͬ<}KL0`ͼ<O0}[.{X>`z>;X>x>㭃S5|?mz<&|A?X>5|m`k 0@|B>7)> A ??﵃~}vB`gƶ'`pz>7N4 "0P>4àxxA?p|o$ adY >?YЮM>@ à|@0||/`J@"BE6` ""GՏ!C3xGt0gc[^<$d ?{n[F$ŝmg5<  ڡx>t$?{ ^8<,%@A`>7|x|DE ?4 |A?e?3%/ ՞ ބDo f\#Ǜ`qͰp,/Q0|>`ޅ ^  >p *u|? gG C'S?xXl7 fdUXb.$`޶zx>`G٢(1 {Pq42 ar>`4$HƓf TK`{x>+> `K8`X>k`Z6%f#`h36v%Y`-2h!妄Y%0'D``0f10 A%3xf?F R !0f`0f{00dcQ8 x>';x>>' ox>;>|?k?X>߷ߵޮ>`X> ?|`?{X>`@#B~߷慃}/B@ h0Jx_?|oAi ?w0|`<`? |A ]7ƃ }@<'}hATxOAFB`D:|HDa<$>`x>WI@B>64mA}/P|AxH`׀DxOA`.A D0CE! axA/1  >/  0 /xNh<`<"(€!ǿ!I*>4 >T1}m:n#i0|/ta <x(A-l.wkwm?m |n be<`ַYg@&}00dcR\p__[c_@>0|o`v_ . zؒ a>l>,_`06"H>' @2  4Z#H0);̀,`K,K@0Xo_g֕! ~x # `0p>Qx<$ CB€=|x(A ` - 䩃$`d2jxʕ%lA />b@BϤP  _r2€=ŀ4`|?0"@à|/0|?t?/g@O00dcRx `S0x/?6|Oz|OC1> !@^;/> K0`xL |՟xRh44#i|IĐQ ɀ7* 0m׀<3 mhg`2>A?@&?Zxo ̽HX>  tI(0݂a<@àyA , O>0P*HIh>/'` ̀,3t H  ?0 Lջܣ@CL3 đ2pC30f) ;pPx_Հ4 Yx>1 X0d ^y/R P|x`0y  ,2>4?0xA8>\`y}oà}OC2|?|3π-.n$ y=X0 x``* A ıZxf/0)>W Xր=|3 "`<0i#8ày/Ax0f9X>xA/0* O\CP|AH a]>W `g@cyO>'C0 O `YyF `z.yAhxˀ-<3 ||(SH> 0x><<`I_~+i70>?x2 @`T + 8n'a>`J ` #l4'p|oDp}?  @CnxD,? `?p0  ɀ7AO/ @ 3$ t/p`q2p 1-@7, @ p!> < fx+p|O-<3 73pn xo6t$G~Apxx?`0f?R!|_o ̀- X < > x}OC5`1'U`0B}X6h>e_j HԼl tpG00)JhX>D}.p0)` ̀<2O/p3@ "P`|ՏN@@%80d^_QP% "@ #a<,;p`T@xx!yA<PPf^yz|h0*A!h>> e0<# P@x@ yA l @n@ |/x0?>/$`Ph>@/,e?@ Ip`3 8gp|o@34a6@x_/RxT@xx? x0@ " 4J`2 xG0na;0`R:=AK.4#Q(3r$ˁB <hd#ΫP=/-@0gy H>H3C`@BQFԩ0#\ ` 4/P>o0dz$ *Sh'?f2C`P1`<>d€, #Z | L~%@.ax0f%0``O/Py?FBfԃ@XX( bq-H2 13xf#ǁd <@0f7B zyAp|~\ AO" R"(RIx2aX;򟁰xA/PoX3DH< x&@0hO[4>B|K y< P|@xA2)_p81"Jʾ A)BP?p6ð ;.Gz;@|/KXJJՉ`x2(wWp>O#ԁfO 0 qK!AGX>GX3*:x<`X0f ,GaP>zh0d(p|ޞ=8>4 (18f#|HC0 @ 5>a0d "Zx0f% ',><b&%!aQ4U6^B t|0fx6@XSp V#Kˇ <K@`2J01(1€Pd|}~ "@>CP̀7cCSAm0R ҟ@f! _Ŀ  A_/A@>l̏ԉap|Ճ+QqGġp<cbCh3 )6`A@0\ڟ1P0|DC0B >i$$b|K3 J #\@"k?J{ PafR`f X0f#,02O`i1C6?DRcWAj,~ vG.:`S60d@0XA83FZlP_ ?d!``~ a K0>T !!$v\/x) @@(V\#˄0|Df%Q> K>_Nj,>L<x}XyX<?Pixt0rH%ip2@Ǎ1V%! a `6 ?/x0/`$X1`.#A2 2 0&af"`  `H1Lx1 yx1`3 It p<21` \3 ,2E`f_0PdTG1Pm#Ex.i8%(|:@1= O 2 4)Af/ Ԡ2k ې(%3CH3 zA0f"a0fI 41|1 X3Ն`80d l^;!h,~3.|2aL%AL0&Q`<P>')ؖ>t?tV\>$#PxHh>H<$ wA _ :\3 1? d @,3m1E@5hX0f $nK ,Bwtc~R H a/>/ _{c a(R/+!$Z*  d@P0R A xJR. aO LTf}H>"81=H3 3~D0f˗ ą |Dp~x`c!x6cBVq1x_|1 |(^X & Ѧ>hO^ C5JG"@~@>'?PҰx p B1q@10.?|`.>G(70)p&?QЃ5C|Xeoz`qo{JnЈȞ`^ JǮrd҆k`a0Xfo Ӱ` /<`c€$~ HBH1`c>%00pp,`\3/!0V|!p0g9aH6`8Cd?3%60Q9@,3 ^3v9fMZ-Ug2ҨXfea1 ``,3 -`-00;t$B8Sy}V=<~` p<3 $x0f l װgb +؃0 @ hH (0`2xf Bl(EW`30f & /€bL3 !mBD7O00dc9   cXviD0050M*@p(}C}00`xOD <?0"A E @"'R=H(W#A>,eA <D?pH%AԠ@" >D#8 A)R@`HJ<D|oE 8AĀtH*Pp,L蒐HA AT$@:p EFX&|EtH<'"@" " 9.H zP`2  )A?ŀLM "u((0.JY(0x  PxA ` <' Ex 4*Px(R(0%(<$ Ð` Kt@" <$ \(<'xXA@xhAT ` $0DxA ԉ?/J`.H$8A) )R$ &T"3H )RA HaAEJ @" e (ԉAR(>?!TB@<@"<, #ϰ<`$@:`. 0?w!ApDEJ$(0IA)AA Ӧ9A P@a"X<TAJ>|oX)@T0@3 QD !$=Px?R *PxOAHD0x <4 DA4pIH$R 8AxoA`# < tAĀDtRxoAD\}@`U(" DxhAgA H3 %O8> aR"TÀD <'%ArH 0`p 9JxHA̸0HEtH"PEA $H "p}HtIRʔAP|E@` c@=@>t"DHz@xOA @"p>,!$=݀D)J 8P`,p +APEDA$$H/P`=8>#x@DP`xHAfĠ&0HIJfĐ8 9D@ $A=D 9'YD8H "I. J "N #J"HJAr `ARP8xA(0* 8DX=J ` ("d_ 8A@Px/A A$Ht <$ X #A/)xoA|XD,HI@`.$p`A`AJkfPIAW0 q%*PxXA?V\, ADIJE >#"fR @EE(8i("A`A$7p,Pp,AڠxHA 80x  Q A<\p,ǁfXD0D@`=H L! E(0z< ?Lp,TTR2@EE.D`Ô@#a 0@A7P "R` 0)A<$ ʐ `<' ] \=tXPDH <$ R$ "A"D <$ J%>*@<$ 0zD`(<< UÀDD`|Q(>$AfJ"T@0zR*PE@`,('#`EA>4#%("()À` 0 ,HD#xAװ V %A*p, DJDÔ,exoA<7 0DR @" ?DH f,/ <$(?#A)A)J 8H 0u(0z R% >7$D T0xR"$$%DLIE((`J$%E(Ap (ā%"Q `%B@,P|(L("d0z 8J\$Px/RY"@xxAd`("$T0zEp, B@3)R%e(0xA*@xAxA?Ġ$@`DTH"J (<>0A("ʐ ('6$F$xHDAxHR) 7:PYv+HHAD<$xo0z`6`.fpxOA?A/|`R:J% 0,̤J %JH>/$)JIAGR(" 0ȀDlD@R @:".!R@EJADA$t" 8Y <!@"(0*IDP`IA H$AH0A : 9|/L[2\ 0p 9tNR)@# *"T?"xA `D"Q!(<R A pD q(0*҃`,<DAAAA%|?/R@"fE(0%D'`,>_L*` t@A 7:gA"@EPx(A0 "ހ AR"@:T_J >#xA @xHA?ՀESԢ@xXR"PD@xOA e(o2AHRD < Y@<' /DH8,%t<D-l0(0z  "P}O ÐfD8 " "@" *H ><&$I8@A` \PxAt*@`.Ä <_ _`MA\pR@"`,R$XxR"+0r(")p"@"A<< &Q  `!    >'%*@a?#$B@<$i ?0z3p,AT?2)AVHDD`.2<  X T_`` % RL=J  &/P[$J` 0LA($$`./xDaȐ`*?"R A<$ $$$H ,1p(?@<_DxA`l$ԠH(" ""pxHĐE ?8<AVH "@">,"a R%RJ$%Htj .` 0DH 9H(<, >/6 A€Feb@0z 8AEH<A&H Pp`.bxxA`>|OQ4ԉ}pԂH"H|XH@" <' fEe(#x8A ?J <| tHR@"% ?A D<|OJ 0x @"(0z "%J8G@&>H PEPDt3`.p<D{|B"o+A%*DA$R 7!w#u10 @"@'`ÔH>&@`#R{"H@DP$X|?ZTnJ$(>+%@Y,I0*P|Ov0"A ÀD10 !(tv TH @# <$ t`D<ǀD<8$(W 0> (0PEHxR$7T$JŤ0T_ 0J0"$`, 1``.`DJ P`AxA1J TÐx/AxHAD px_r l"e`r(<J@xOAԠX}FJF!*PxA < ʤ7!Hq(" >6<' 4DY 7ttHH"@" >G"$ DĶLH$p"d dp#xHf>$@"m̨,̓".[|x`H?PxXA*P|u@"`|oL `.(<$ _q P}P/=xA`D&$a>W4 " >σ ԉ $ 00Y,˞pdcHzPDĀEY ;H$ \A@" P"A!rPx_RpxA?H .R@`0>7䠈$ 0x 9(VnÜi*R @: J@8h6Ȁmj$f 0Ek`u[jÚ l#h*`[694:  p *RyTqBZy(<#8$)c[i%T *`(D$V~Ҳ|xCFLtA`DJ 9PxA`/X`(" JDA`+Ra$D >'"`YA "d;H =x_DA`|O$:zY"`\xA"h "2W"P tA A<\Rd>$p rD 4<$̸8C4ډ ̀Da>hX 4Đf$dPDA& Y;Pap0x(<J >G'TT=>g%R"gb! <@0x @EɀDX 8ÀE EH 8ʀDDp YH8bQ%(8FYX<'PTG X4 -V \~v8iA I(O! :Ia*D\IA"P, xOA`A ~glf|/& 2\ *H=҃ueAddQ̢ "XI$H >0@YIP|̓pl` x/RĀ@S*Q$A\ 0x/AÀD8LdP8HJ\<@|MA @xA΀EȊe/H<4 @:3|(OAR@"bĀx?Đ|2Ax0*>2 90>?(d. ŃdP(,dd(%Ad.2z"X`J 150sh#&$`Ytʀ5NxVJ$`@($p`<\HXZ(J(L"$`H*PY`@àQ q(tT알aQ p! (0u >7!<a<  %\I˵Edmd6.ٱq  {pm=d"0$V"j|Hp@'PZս x_A EReiV 0 %$TJ.I`nj:2JPp,aDl0YkFUvW{J@"@cP UX2zHTgDAkA13CⴊʔhA+P"` 00?h?ԣ`JLp,?n6Za(n8.mUL#p gsY6n"k>xt]ՎdK+ÀuU€t)AV X0z@X?Xv] Zn0uD(,KJ %gM`{eiDeـIaATֈ ] M6 nƆ-0?,!( 4̚PQh"H, /T?Ap,Zv 4,"ɪ̰ p,MX )v6,؜[ɧڠY40 0 -Y*-4#1 p,ȉPEJR$D?@<" Q(d Ԙ)M`|/Bpp,Y!Y4AKiF0>|2os m/ÀF` 00dcS~|cxA@Jki@`_v  լ7[X>vh>Tð` I `q> ?x3P`@Ԁ4RLbPh0P>-p0BXh0(JP @% ?8800dcSoX>cլSU|_ok`_?o`4JP0#P|P|O4[x>&}@<K(6 @%Q,7P}A P@ |xA oπ7%h0)?P|oQa`? `Rh(AM@0ð`S%"Xh0v%H>X >|`<hJ\E ;, 04J` @p>$ oA!@% @` Hh0;S00dcTx %>`0{X<`?@Df|ls6|?F3cFm^z-z>L筃`#kk?`>`pg4{xGm`0_W 0A>j5!#P$CӀDFx?A0f|oP|O\pH0`  V$@88l`,K0|/D>T %x0(<0|(x `0!h>OiP< a|xV >ȀT" xA |ҽ>G`p_00dcT@|b|`а}A` <_@[π/wp|?`p@x=p6Gx>` Z,.!>`P >z>tHC`0>$0 0f @ M0x?pn>$c D>w1 X>D)0!0xX>"P0pA(``0>׀,t A% c|Ġa |_'X0!`0>x7@0|M |(00dcUs8 x 0'̀D|`yA?X<$[߀>}YyA [^k} =J|}lJÀ- 것>dث$`xHA |Avmx_ˀF@"85D|9X>$"u }@Pа|HhCL"5A`! . a>0x/6`Ba z x>'+f00dcU\ x>m`0y`P{ls0|k?D/>$=H>gkyA`Ҁ=`B0Z T|A?`LPxxAD@@`4 2M0|B>` @?̀-@">.M0`Q +|hDa>t De P>X>n^ # a|m&A0xB>l!@<!! o> xN`?xV@_@ꉼKGA TX0gPo@"0CWD@Y00dcVmx 1@0| |Z?F?h<0 >D?€E2@|8A2|AZv%Ɂhc (`:x>T0xAD 0xXH< ` cAA` €=#` ȀDe>/pep|ŀW+P|A` WdA>7H> ?h y#`?>Ā4*|?}!%ğb@2xXAa HC`P |>,"[00dcV]t> p @}[>X/u0}8A` I X> \a6`T9>d;lxA 4 @>,m`0 n]lW[<3pzAP|[ @X?'?} -Jp|AOSÀ,&,j|A _:pxA ov|Xm0~u|[` 筁> 0#` 3p}k0O X> Pp|A B`?` G`|?@C`wPx( c̀& p|X>,2` `lf|A_@N%JG ɔ@ %PAD>ȂA`Py.Ip3 BB@* K/C< ./\0)6p~ `~^Ղ>4 1,Fŀ%61,JlDEҀ$K0c,|(B0T% _<?} #&|p}T @|@ <.> )` H |e`~%Ȁ$j'@ q_!$ 0a>< 0`J` xSUnJ8]B\ָ00dcWg x>$=kxAXkŬs5p|:>D""€=}#>M{рG`op~81@#E@ (&[?k pxxAJ!$x?G P`6 >! z C̀DxxA?}h_`8 |Q&p0 ||Fx I|&Jco!hTkv_> }h _h>0CP<0<,@BX>' a`A@4?89Z!ۉ >`?0y8)6/,HL 8>$ X0  |Xנd#0}>G Pl*0|B2e xB< |A 0|8[>?t7ĀDe |]ӝk/!daJTA|ܿ|8A?N j(7x|A<  l0 <}@gw00dcW X>?@_L$ AF ``CR ⚄0|o>4aJƀLƀ52A|A?R x(ŅV ?BPep敠xXA@ &>D"q$0  ozx>` ` R<' `̀=`: P0*>)<+ox>P0`?Ɓwu3$@.0(VA  @H2  |A?JT$| pA:x( EV1B' j?`T | Px$= X!><h BOeS+CFx<At=(2P|0R0|ǃ`t`: A<0xHH0̼[0,>\ @cbZeyO$ lI VǠ@ȕt6Xca`0`x7 "!q<`0>/b7H#@>'~*AC ?bH>?` = dp|HSR@h6|U"p)xǀ`h *t2Py?OJ "T)H2p)/  z،<VX><|J "(@$?V>| 0ƀ Pp)Ԫ0)?`1h>pn@<ŀ`@x8Ux>d<xc@0 8[c|oĵbHPG(X>o`ǓX>c` b2E@Rx$P1xV)AA 26n?LVC0yoĐ|(G q2 |H '8).<5@p'@h;|8Yzd <#H6@x>o`ɬG?P_Nu1ǂ8!|*AxHp/chfpRx`EހOc`O<.}N `|o2yɀhp~>/(|/~V%82|AL P0=G`|V @S(< }D,0% zdjx A@bd><<V|Px2x?P|oJB}J0"& Gpx0#>w`RS|J$@$y>G`<HP2d>T'"x8t=F`D8<`p>,87U |x>xh@<A>*$P> wʀ1 04/p`8=|Gj2y T PxoH2 BH>t2ObPxOՁ8 `p*-~t#J!$@$Nh6 0d"(<$0xUNU#€_?/AKxoOz8<<  >,H?Dtz "|8ǀ >_iŀL01ct >$  >^T!P>_ D|8|ժ@xT xx-X?o t*8<4p"x6+<,x(Ax=`m< *`Հ=P D"`:8!@~X )`G!(̀<>p|VxAC`8P60`Qh<,_>gcxhAǀ80,B:=H^<`  &pdB(C<B_Q$h>\ C0zH `T.`l~\}Չ @ )AAb@8A`>pT@>_`ax #" R:`'~ǃV;0>` بx=AO<`ˀ<  x8pm*T u@|z0d14x>D\ z p`8#T#=_az0x@P&jՉ!pH<BxxĀmT%$ _|AL z J `p<' _h+x>) 0Vz$IxOĀ<|xU<bH AF *<_`@"V A @?>w*`>`E  5`D;xoWV ># OV SP*Aixp)?H)>Gx<'j@SAL<*P0c 4`8$+`P?ǀt<|4x!04<<.G"Hdj Z*V>lEzG8~<@*%XP>/`p1}P|NJ_V |hF00~G3}Ux>bJxA *|?G@\Z%\[ "$^UAdh(<`U ?|<0|Xǀ%Oy?A Z<` _,(>lɀ<=&x<\"H `>}(Ճ &` | `0lDFSAH?Ճt0PІ P`P06 3>U(P?0(<Ay20`2 >0@P~?&!dի8v xA  ?DCAx~>V?V?ǂA( :C_GB``4JA Up|>#<<4-J Dp8 @l @SAT/2@|?M(zJ] @ |/`ǀhǀP@U@ P"?%p_0|tJ@!0 A`T UCax| 8>!Nİ8 e`p |:R:DBH0f8'xHA$~;5TXHtx2Gà}| #CIe P ajbO`@ H"^b`7m $H0>C,}BR0`0x Ā:Dx *dPx|x!)1~ #t6P^/V$t:K6xA7 v$>~|(8xZCjqP*JH`Z[8@e)X>{x1`P<`Q`l<3`cP`PXic~c h C$2PpAQ ~c|0Q><0><$@Fۃ'3P>Zc`0<|/U @ JejV?`090dA H7APB ˂p QJ@@` Ȁ 0|ZÀ=20c<>,@>(;x>v0`Ά$Ml3?b|8@?'R |!h?R @>aLhFR!V=pCH$ *TDP|^ ExP|OA` &`ͬ25p|(8€2[T0|./ ?@ 00dc3   cXviD0050"aL! ^ +Y <74, qVZbArAZ^ 0^ d:dAX\ xXh2 `6 A`p@` "D $AfDV0a0p \\ |OMa"K @9p+A0l^X^d2x<$l < x@3 ÀSZ`|l,2x0 +Yh 5 pS) A`dLC Ip\)K?.L@ d "k `A@p @AdKv` &$$0.,B PK0 "``//A,dB0p "Ȃ p}Hဆ S`D,-, 8aQx0e 2 0qp R69x0r  yx V'.`E fVQ>Dfɖ/h>fBCt!\  H0r<,`2 a)00\ {0$dVx(. `/xg^ ]  2 D^ [> p\ $0\ qAK@S`:pefAӂH+Ax'aIX^>4cQAa3aA.ȀL0x m18197 K Vd`ÖY0)Z <'#`0 , rL0 b`0)a <`pa,0 L X..` p`@3"+A`|X  0,>7p p`0 X[Z"ix)a#qP A`  0 ``D XdJ|/J0\ +F 0  pXp>\2C (˘eAF 28Șd'pxa`Td7dZ |+AS2 Āy.`@A9Ӏ.p0[S,$ 7ʀ,$2Ȃ2 ` py`hxHS D 0axHL0p1&L!&DS,0 "hX0d?, "Pa0xH) ր,d$bA{"H @d+AV ?p /./ ,@axxՁdd@`A/.Z0j p`8 Nk yp+ V,% - Z FX)X>/Ć0x)/h0 @ @/Ȅ`AD^ Z6@tgNqps Z ," 0 x`amex(AFs"/`<A2a<+DadB `0QaK` x(Z8)XL8V` Ya p +,p20x_ D{4`0X!GҘpja I./c Yx/8산 @0Y/.edlX0Z{ _ډS _PNX 0 6` 2aqp8#dA'q/?p! C ^qx+A AZ |o@bة2Șe`7DZ̗ <_`L#3pV @ ,IA?h ..` pd`[ ?aS2Ȃ `P ",YD`E GIs̈"@+A5`IAdV  p+ F ^  @[ p` V`&x 1 `ٖKx|x`Hp S@&0ddB0.dAdI/`@*/KKN/d,H\  a`@edb+At %`2 x` ,x, 'Y/`<`9s Á!V6a_ 9q{ |xLu  PxD%`0 2 9X`<_A b@(˙dI00/`DF! ˋS # ix+A@x ApxOX bV 0 0 x(DPd`eaÀS@&YfK`06Bs,ax X0 BH^%P :@1p0"d )A X<Is 20X`9DaV€L3 Mix+L_Yd4 "a)D I`@h0"29`+0nYxĀx/p)Y//a%VNȀ Ѩyp<X `)ՋĖ X,Aib>Lj!`+L$$&xaA/.DDa0p<'? #{/.KV fDAdL7tK+02 xo Ā,Y|ö 0 PP`6 HxON Aa`0 p`0, >xH?h>j% S& "C# 0 f`0 ,xh8/x@2 \a/^ "@0j "@XYdAx` 8c 2\ 'ES aA V0  ``*  rDS`AA@|Ȑ 0V !X">O3 `y?`>$a }x@.h<8D#h+Xd-kb2&XÀ, mV@@dl@ 0d+pV@ 0 )D+Yh>j&-.tDa`p,A?` 2!Hd  DA 2  ,&eaȐx+?/@;BCd5Ā,08x v2B\ v0p VȀ |/ `0h\yp<$`F p/B0,B0`! 0r 8 t+PV"|!@: Ñ%VL Y`6f<VKd1@DX>daD0S&(0XH0V }X"0 L/ ^X21<\b+ X 2dEA@`Հ`4rj/^,@&^ "a{,<_D  +Y+>,p^0  qDQyswr "xD\`aV#,,Y`A lEa`b` 0X0Xm)d@ǀ,0`Ws'X+6^+Dp)+p`AĀ,?2B d6Z+ @`ـ`T$ e2 |?4;4z^ L\ #_l.lAh) `@`^0 "DEe@`` xL\yB Ð`2 A@xL0r  À,pd a~Y +t20x,>4i`T V0 LbA `gPa<0 LȀaXf`ŰXH/ -yi 2  LI @g" 8" s 20x?` ˘E,qx^  * .cd 8Pb0 `  2\ PB@q{ _ȁX X>'$ ĀS 7€,8l@&\>c&AȒ 80dE€,V2`?߀p2 a@AZ " N+X݉"@2 a6D ) Z@0; h>'p2 |(2\ 'p|¨"@2&@h0Zx0ZV2 A@V X<\`*a@< ARX00 0 * :@W(0)J7gt`8R"6Gb6',>*- G`E .)PZ;U" 0#$"g7QnR )<p2P8K8 T^c-4B  l .X pd@>W"8I{ #L- S , `zm\ S"+Xd6dh A ̲ @ȋA P0[,B p`;s Lp\ x_˙d8 `|Ā>?ِ| `|k#pV@ 30 ' <`+v9`1U^ 9X "" `Heaa fF p!,_t P--y``4$p)V"aI ^ l @p>Ā6h` LA DAlp; eN! 2a0j0x4l|N 2`B.9x ̲ &<3,v 8b pS p)`9d70@k ?Up̲X  jHBp)NX0X@ `V0pZ,0>,dTc@4/Q2U^gsWHBFH:TKK<p 4*Ѷxl qx:=~[&(;` |D \ ,P!0 "\c`5lv^Ȁ `.H X2 xZ `CD}JZp) @vWPVC*`z 0BʋA!0`2$A e|Nl`/, ")d0rȀ4rŬH/aI^x<$A` -`AA# d4`@`/px`XBM ``0.AX0eb<AB|,- < `+ x/Dx 9,F ` p`rOX-3Z63`c܂0{&i `Y8$,0>~"Z0 +J 1S0 D\t aE%`|?mld `H`@L ^ @< L 0XP|?| YeV?N )?:`)x0l ?€,)/d\8yH*dP^V€=  @gEb&sd8G*+=^`8H)jUl.DB@V2 Ӏpr (f H2| p Ǽn̵Hۋ57Y3S8 Z>$p^0Y>OY @ h ea`u&Be@ɼ5΀-S2Z 0 ´ȃ|h 6 7 ;'V*)'L80a- xx+t A fx(U >R#$Ѳ)W-ZxӸE1Dp-ޓ+R`Hlmp /V@?|?ؐ>hdY mBtA8DxXAZ\ ?sB>1jȀK 0Y @_ bab|4B/$m">+|׀ƕdy$8j|xot/H߇(4| GaԈ=H1>(spg(0XZKciP @vmh, ޹ n_`6`ڒݰ U @6e-flQ@j0Y",6a ``%0ɄAYR"w`6;  \3' |8%>勁XAd"ѦALYؑ#*V 0j [4@TW`!T$>  %AŸPd,Y ,V 0Y_G.4[X7-9``f 8vߜ mGvb- >Ln.v2lFk X0Yp2C  "S0X`V-b8|P[Fam¬%op# lsv6ݷJ2٘Gp 4Ap^h@>EZ%yְ``k,vd2fR=3@_A`b@`b>g읃@e|Ok2Z,bK`cx,ѸEhE` p  b> l2Zl"YhȀ/㶲3>)@ VDdAL [,AjbD2|ɀψZ}oζ> fA & |(_ D,Z.DD,vȰ?Op}0VȀ. >8;F )2 AD/00dcNY\8  p| ̀7[ɀ/cĀ.  >d_p}hm`non PX0?$,J80f A7'P`TA tFHJDK4tX(A@C`?p ,|/CxAǀ4`>` Dؖ(a pCK6aA0 bP>', `@ ?q0_O_>Pʃ" h|'X> `hP(À-+`P A` * & |O0|8WPxoA@ P(A V |@?v00dcY\El+}u}m``ǿGcW>ocP|VD 0< 0|(Ҷ$8J4t% ?ˁ deA$ g(x(İ} |8A=% 0g`˃8!yp(ŀ$PBK2`!QP|W gT0 |(٠`U8Z_0 0|a64 307 K @x?[]$ €4B%NJ0`<< ]t'!Kt @  5 lF{Vnjx00dc"ZVx MlfE>_6O<^}ÀDj> LO=li`ŌX>-`p @">vxOB??`?cx>760~}-x> (DZx>;|`_@&>(J`@"nkĀEG|O&><!  |?Ax/A` |oSP|MB@&x006X>$!x<` `HG"A` ÀDzLG !@& \ ?@8:>D(|4!@X0 z>a v>,  y?AH>' _cl7xXA{X>`V =Q4 OP|@ )#r`?R>a (< )sC `?ApxB<' xx>|(G͚5[G00dcZӜ> k P}@Qw Dƀ$0*Ȗh0TJ%k`S` {lal2|(AJՀ5<PPh>$M@ `pZ ^!2  ,?BX0`=+` ^% (D(X(A@+gDa|8ƀƗb@ ,P w@%a>(8XX(A`x>00dc[P ~x>|` c?0||X??@ [€?|O6|0|A?|Hp0#>< Dx! "H>Gh>g*X<7`<}?BX>@74@0(#0|(A <!xoA ǀ\jxH S/!ol|50<k=8Be=UT ȀU3 0A|e:GH< |HA K A?TH0(A< D`D#6p ÀDH5Z<& p<P<>/nQժf I@tG8< !0l -pw[6VB P|/9 K@x>ƥ@y`āg/N T |2€@"x>GL@n  [?@ k?|@{{Z 00dc[:J<8_z ˃H>60g-: ^8pg: 0@@>+` kr3#@>|x~^X3|z3 C ףּ9հ}VX3,x[3lR;>l`;`@@͌Vgovx?G-`U$ebH0.@̓%yH0f<#e S>   9&O(hI> `_^\\|A?tXÀ$A A O!@CrL pC?0<XC h#0`U10x< >H> ʋB B _x( oݬ`jg`L 5z\>@bPj@4K|H#r0<H;A%Sᚳհ| |/ @(2=<3[ku+R<ưcv(* `{or3gmX3os300dc2\J {_D-u]ε!y|>`n[v|͌B|{X> H߭[s{ݡn΀U[ۀN~+W!`Qh>w}nWTxxxE>hx(F > އ=>(H=ZxA? @@#e$`Tx>o`I<`IA2a7@8@}(` Uh0@Hpx k(<`@ >`x |@00 {8>[s xA ǀ4A9/|^`~&Ɔ۷;9m3&-Z` 100dc\ `%@R0vp` ?@ 0` &0` k;X01籃V V` V` 0T(?lc` cxJ @c,(<)0` c @k ` `@ S` S` EP0WWa B(` [U`h>$ 4<' 0A QA`iTհ` g * 0 07@m`  Bd rAP b`Π` 8 ?jL2Uc@60=x?h@2$nZyRN7U 8PcD$S>f () ` Z` M`ÃV` S` c` [p` `05SS` Y*00dc]E8 @*<0|A h>`1h>  @*Zh?'  @*? Wk?x>Lh|A UZ>aF;x@L7yA`[ɀW oU^?` ` @*>` ﱃx>` W@+Uy8A?@*_cW ` @+B U  ʀTv% |m``V cW @+8s|^?U| >( xA}Y|`M<`>h0TIĀ,?KA&<`PxOA`ȀTpa<`ʁ a't|A|@<4, |}Ѵ><?`  $H,@> l|(_u h>I >l3yx>~P|z6` ;ޞL 3|>4>+d|W3O T2-yI$?'"kVT#@>9 @*_|[ b kW@*` #x@+E@*00dc]\ @+|(` o7l_kW|"60>4j *TX>  \$<  __p|A@* hW`q B|oA *vxoA% T< h6(>T>,`?j cW00dc^?xPa`jD, h*Aa8/ `.7W*X1B 0f#s. G(]@  |H˄p>h`2X1AS+pK2pxD^ 0|(U00PyA%Qx<\#$@,ʫQ@=Rx8ap(/<h0>x?}oUj'!x< _L>b4?/F(/8À%W>l#j$ Opnx(TH2pf|`B/xP< BxhP!U%. _@t*Ehx >T`(#h'T)R=0P@N 0 xeŀ$| xd!\)z;zx^ e  `0^R<e`| <_`yH'p"򏂀į 6@@^g)$z  0 B !:ޞ ,X(`C| `( C_`#`(X>_)a߀0)AH0€,|_aǼ P)CP x`d ?3@\ : WXt0| )lb0!v 9P4)cxKt ` ^ Az;0fPx<2|@x 1@)<Dp|6?.J\ >d#b@|lG݀y/"R O.2F =2@;?E)A*P>t>id`X> cy>"<}C OR?x9Jg /w<`$ Dz:%%) P  `P| PvT^@ׁq$ #dQ|T8#y?/&}|?&O|Gq0v0'Cf'bp @Pt_px O0& >P]ax(@pf N 0<#@f  ETh?"1x|%XS`eՃ,#$@lԁa@t ;PX q>oR 6)1M: *}, }P`T3@>,|#9p|x@n2@>b7 T@ @>0a0P`v 1.0POAp>L> 1#^h~ )H!A> `x1H><|D4^`JzTG g(R@byHj20}Ux> ?@B=Qp3`@'H>o gx\@:. FHfde c0F)G  BGp}?`" 0@&\J 㪀` OJ @1/_ 'ȸG 6'?)}U=PxXJ|%>ꁀ0) GX>iC\pyt`@|GG ? @xPgP>%`;P ̓ ||%@ 0Q* > 0CR;>'*>*,/X=H>À$G`0OV2@3>PZzfˁ_@c>/>|>>,7X|HS)h <|HC$N x )5Ӏ%P>O*.< >/@0f0# yO lc>>T |S2 @xO.|P P'Jfπ'y(H!*eH1X1At'C/`/@c}Cx & F 0 !0NA$Ǟ'` }AO.'pyATO3@/+^X<$x6]a   o+|z#jVBĀxXEGbHXp| A< @GO| ~ EŀZ`7)pCUY ͏ | :<|82x?T-,>=Ph  3ju@x?yR/b$ Pρ0X1HUA?8P\}C!(i>7 bP|(5|YˏR~f Uq 0x jOx  | F3)8x\FQad`2WXtG^>а}@0, IAx|߇`< 2`x@|/K}G>4j<< /ǀ$+y>Q V\\ 0`$ b@B $*$3P@pG?$+_zC`ax0$:`!A?HW˃'Հ&`)1dS(` >/* O< 0) <(|~59.`AgH1 R:P p3ci.|ɀ$2C&>d@`G ̓# D>^ < P)Q1yj qR#`EUϏk^ |/ 1; C1ج`~>V> C`8Zx0 z;h(q!+xA:?x d||AF b "7#?G>B>C "ˇCjAxHB00f RO(}R!@lSĒj_Q< Yo.H!.^C<˕O^ .V_ D f pI$RcādMc 8#/O?e?<kT0d 0S #P `. LLd21vOc#/'63( @3!  *GdN3hE |)$$ ?g `9>SA<bfA\uRA@ 5/ՁV; 0ͼe(2.:#Q"~=PA0dHx1c|FJF OA$) ||D*A )*҃ BH2!>/1> ?3ꕃt A }YPz^_DC$n@%c;lD]~X1#Г€$ KqE#@`ߏ h`(芐1c> cB 5 :C010SLRP}˼z d|;|d NEv|jiS827G<Zc J#X |3D(Rp'8>:>|hc8 O8 p2T|B(wbax<`2D8>` 4&@|*z`Q`5s@#.o!X>!zy"DDx?AP`&D=ÀDB @J  o#A$ <p*H NA>!CiA`Hj]6Wb(0 |q`Qڍ!@`0<k p0h|@uÐEHnTҐ`VP^0>|HAHpÐ(0(_!dIH 9ItV  7aPa0*@nt<' X dp x?A )R%H:@EJ(0 0z J8>,oJ 9D""0z *PxHA f`H"  R @" ` $($<'@" !0x 0"@x_RS$@" )P$: !""$ <<AJ "P*` B" @"  P`|F`0!"aȐIJ$ A?A`$7H6H0x?A @&m 0z 8/J*TDPE(0H_!<Dx_A`. 1@x?D `,$@" 0 2E <, JA$f BA T@" H ^0x <4 DAH 5Lf$ IA o#Ġ "$"< txADn]AHHx_A?ŀD/R@"AM(!ArT<7 $b iD_6n A  PR "08kR$JĠBH0x ʑ(<%J $ xĔ?B @x_A("`EJ("JDS 0E)Aa!JD$@`.# *PED00z D !XJPx8DxA :dɉ >&A A%4@<,! ^ 0`"P`, 9  <7)%DH"@x( R"@xORD>D% T`*D0A?PxR0xR ÐDPDtI"BPxhA DH>d+APEDA 2DJ 0z>'`=$](0z >$,$ !*Px?A("%H(&^a@`E0RA`K< R߀D\ %\,̃ cAdp  0x"@xAEDTB @"͗ PCH$!xP"$.P(!| A J J\DAʕ@}J0`%Z t<P`.R(0<PEf8 6xhA&Do@xOAH>!x<D+xA`"x_A @")H"H0x@xA J>D$)€FaHL@("p`.(g0EHR@\?*D @"$ 0"@" !0"$ 0K` " YD`0 a 0AEAE("@:$PaT$T`p,A HH*Pa<7 8J ``|XX"``.R@" G4\ ȒD#@@@D "& x(R < < _  H?Ġ\xhA?H'|/B1 @"3 pBP|/M҂3)%H ҤH() $J"0|WJ|8X 3$$ *%("pyA4"pTBPa0@D?&@@"+_#bbA%/J  %H0xb@0"@: 0zA?J @DH ?ÀEAjDa>0#"J@x( Ax?A" <' RxHA0d@`>$AJD@" 9J E!Ԯ 8.H CAp`FJ(>tcTP0x$  "ВH 8""20(,*1Px(DEJ(<H0<@x_A0|_m BāID`. Px/R*PxA0z $+ `G|O.H ?=PxA`^ 5PoA% <\#xOAJA R(0I 0z("("pxoA  "BDA $@"$#RZ҃  <D<3@?EPxHRxA|Eb( " A $xXR IH$ŀE˃d` AȀDX y PxB P ("%xAA0^(0" 0z$tL'xOA`ǀD%DDRxH AA$=a0DR"P` "$/H$%DA$,H"TA  / G' ÄA!("DA(0z@<Pa0:|HEh$PEt`.<7  >%@.A?pEH a0xAJ}O~ "@">* H$DE " %H?D  "ļA``0 8 GAxAD* ^IPa< A>/!p <#@`. "0D<dx |IJ D <' H"T("pDH@xoA@xA "@$tA<<)ȵ Q!(0x$ 0z  1<("*T P`Ȁ8 @&!*TAEPxxA ÀD3"DA`H <, 0 D( &@!D A/tPD ԩA?(,%*@xHA0z. <$ (>g:`aP`=A H >#ÐC<4r=J >l9 >4+$ `R`xhARA A 8H<A`K"T&p $``,@" >" %RR%@a0zE|B@JH<$O'*@a<%>$!AH!0x>d(  0Az$xHD Ԁp`Rx8mj(0J'S@"/J4@0x  <, t`=_=D YX0"%H AԀ &+PNDD`E 0x 0Q!(<0N "@"<APxA?`D)AƀDp,\T$$AxD`#DD5@ J>$$488#BD0ǀD\ 90vLHԠ %HH $AǀDTH  p @" xt$ }*A$ d"<| P҃ A`?DDP 5L1$.J tA xA>?!q(! $AI@xA?Jp, H! Ԁ?X%JrAX  0x A>'6@"@xOAfAR%t (%0z.}XD @0PxR/$|HԩRbxHAD|(TH ED@" q0"I@xHDD*@xA}I D@<')A?RxOAdQ(!>$$H DPH` R%A?LxL0<D<.D=  A)-`<{A?@xA *Pg/m(J )R0*PD5R &|hC87HJ?" r>#"ȥ ? iP`PyO " >+4 p|L*@xHA  $%A`ȀG |OG6p`|xQu >'A<"p!yD`, >$oAR >1"%P7AIJA ^ _`. <7 "4H(< x/A"_d 8H0EDA P&S*@a BR( <'$X/xA Pa(0z3Q! < J @"C \=ITÀxA<, > {a\IH$Jo A<78<,* |  "@0 Y<$R*PDDR "PSD `Rx 0J (<'*(3J b` ! EBǀ TX`|HWtDT\ @" >D+  ("J$|(I* !CC䃦 `SJR@&VȰ|$`Œ 7 PDH|F@0GA Rb|?VB>`@"⌘[H T]"@Y@ExA |8M΀DTh^Y](N\&2 8`@xA bBT " *A@"B@x/AI0J}/B@R%J >7$K@|oGF`0$D#xR@"H@0+dUAgٰ`Dq @Y& 4e blI(ȹzPDĀE4_ui % ADY"  %RAJ   0zKJ 8>JH"ÐxR)V  #@,LRh7<' <7 Xa@` >W, <$ P  ';xH ~_J%  >O!4<#  `p,A10PD <<)xHJ=D2}E@CH@x%AHD)$@Yx?DbEDHH2RAh,R" #U VBp, .D6 q0C<.@"7 7tJR7 lĦ UdxGiF$$VX;)H"0%0~4MD` ~>Pe"I l%%D P`, (WA%H/}m 0A @`,@8eX\P|oM(8FA u"T>W%Ż2H< &T >"R\ g @J>IÀEDJ 0z "d#^ 9@xHA#"D\|N DJ0 Y8q k,*ft`WWryJd6y(" &GDɉ"@)$(  @Y 0 3|1*T`PxoA,Ub@"N@" !Pp,ÀD3H<t6YlQ$ 9€LKgDpEH!*T >A1H$fh>% `D0x_A)x?@xHK҂*@`.?J 06K@"\ԢB@EɀDH 8H %KA(>l!GH(@ PDP`,Ġ_T蒐DJa P?cp%a: pXhr 8 K|m JUD@AT~:P!^/5_K 2!([3Zn`` P|_CD $IĀ>#a(<):PxD|U!$ 9DI@a<$  0x`  r <' 0|A "("$*Yp@0 R(0xPBJ zP|FV8I 0x$ <>O'a%*P <,A"1h"@"<' A~H">ʁ$4Rf˰p,D8rҲI D,> i1`-i "@8b$ÀD8p6|iӛg  " "*Q$AT`_` <' 8Eda*TADA$  iRPb% 0IDIJ(,J@)D@<r ?" 880P/0"DJ @'2"8MCZ<$p,pL "7kƃo*Lz˛ǀGI"@|oUm "@#)(>O+ >0f, YX#@H +ɀDy <"@pt jKj`6;J ժꡘ, -jK0 &e`MlǀY 'g>P`>`"0V@Dt 5UR|K|HLp| 4h\ h~<TA0p,AdX83 6; H?@Zxp> 38 <. "-@ ` k0K5e(3ڠp1 Lʍp `Y–Q$#IAKYpp,f8bju>HeK`p,Hy}0ㄒw|0p,8I8}@p,)  <ȴ̹|m`Y]:k)"eT 6ҙn8T8DĴ VXv/ # *Ta0p,=a&v}]r-@YN6/\m,P|?n$ENpDS'@|?beY"@8O08dMeQb0ʴDAXPYҪ "@'# &ȶ`|(Mp|oX>'GA?c"`p,I_;YVѴ" h# &R%qf>ƀE=k` g@p, hj$Y& `|/a*@~Z@ES@D@"PY|DHD H ;\, TA!@8J&H $i(p>1u0H#Fqh >%Kp` 00dcGP` oǀ-n,>ylwv}>d >?0a}H`[,F|`cր' oV|VZ yhG`_<_X>c@pHeG Px/O.ր,3g@@$6'Id#p`UH>w_z@G=X6 &*CaA @o {!>`$f` i` D51$H$ H>#0̀-(" 0_P>00dcmQ Y?DgxA* ?O``P;x>u}oX>WX>@k׭cX6n{>D,>wbWŀ5_`(A@& 8<`/P|J|AN x> ` H0)A` p1x A<7`$|h"H<'`mol/80H Đ`R ;}G>`$$>-&zb EPCS0$gO!(H(0`_ |o%BIx0@/XAx JĀx_@8K8Ձ>M8> u{wmO00dcQo|x $k`@K|m|[(`cp  0}A?Bp}/ASl;}3EPKrg62JJt | Bf EQp D'|xSl e`"x00>Ģ|XR>gc|/>G,8>e*@Pp>O H0)?yxB`%H0Q$>҃*|_@p0@&Tjd5@??"|O_ XI+` 00dcQR  `\`0㳃@"<>\>.?? ~X#@c?>g?"< 8  `ȀD 0À4K_X>)Pp< |H :P>T`@ t2 :R0(P<, 0B10!*|og(> ! >? XBL>! `mvLF@0%|?[0x0@:%o>00dcR8 /$Sp|oπ-lv}(``p/Ճ^i*l0`X>~<\` n` ) 0|`_J @a%C΀,CV@&Lxo>`t0` MH> i?P|(Đ`B@? ~GĀ, 1`0 pn L&`x>>ni'>ǀ- 0|8>f4h7A0BÀ,j$% @>c|OX!"êH<_|H.o(p`00dcS\ z?/`#<0~X_o0|x>4݀<~}A [Db|4}€<y(Blw0|xPx|^| Wv}}`P>w`d@"x<а~6~``бH?ou}->Wv}lnx0*|xc@z>d"@ 8<@Aŀ=7`@">`0x?A?À<C?B`Ӛxh0a5P>'>#p|ʀ<|ޕH RHF| n `~}px2p|:>)<AA6xM x> Px_0(`x>! HÀ-%PmPA O9@" $@>o{8>`$ʃ|D_08>'`x?Aws5 |ՀxHP`>nĀ%4 |Dl xA?rpİx(I< >?00dcSxl2Sǀ,kv}GPx? 0|}[``0}Zp`$+X>WPBxGX>l`X>|I @pR0|OG?><a |GvC|[[Sb(v +0|L%@ŀ,~xxTUa, |P| hm x ,ˇW EGW`?0  00dcS &1p>|(|}ӠxA }S~A p`5DnxA MD>|A 2~HQ< U\y_ASX>u|8V`ƀF>44{ `" >*`ðyB> &6πE<0yA`Dr,}k`0޾>4;/>L pC #0}A@&< PDszA?xAD}_/>+`i⅃(DyA`b?,P 2xB>,# " 7>+`ۀD|T?` <`@"!)P>;8>`U}H[ kƀEĀE\ }]X>L-?$ @"L7Px(>#x/ DJ3|/Q >``2|oR7A0@&pa< _0(}P}`#{wB ŬkUH> |A %;x?A`Ȁ41 xXB>'!.|B<$0xA"! @" =a<'  >/!- ={X>$>  ?x/?!8>' P ? @<'p@"2|棧e`?9wObR`?~00dc'T| |_QF>/|?A`e}A R ƀE+@p <\0 &e?x@>TABl`Dp <p|?Pe B$@B }oVjpv@΀GBH I@7xA ɀE|Ai00dcT @'[L2[ ~D  ZT|(A 5A `b0` <"P7 L&P|A ] `8 A` 0?MUp oGXvd|=}3?,*3] | g* #`< A %K x>jh>X> |A`gA?{Vx*o"@楃x |haT&|[t @A@ڤ !X V {00dc/Uv n @xA`Hh00B8*|AJ `S>J `}X`0CFB%nxA `xA /4ry?A #"`_ PxA@8 +VU p)ANp|oT "x̀4 q4? ,xx|A l?  PXx@( :@F?Pn@ڰP@dSQ! J P|KժH)G>DSS@h1a)Jå@`CCN`0>d @0)? |8Ԃ:xA` ƀ4G Д ,0ĠxPJ?z "`-|?G|<ġ EX # `@% ;8 Tz% 0`6>4<Jp~T%z Ca4KD}oKꕏnpt`XEN # >D 6= !`R`4 ; t0~?K #0`2 B ;@P``xՂ0 #@`X  @D@ (A"cP p`0>L*PC x T`xAa7`}hh0t P G87<??pxA`RP|8DP'pB#U@@ ;*|` À=v(JD/TW0 A 0)`|S```.)XX0@H0T@ 0 ? O@ #d@B0x` |@D!@h0*A-<^a0j(H<EE@8>< |XDx0 ;! xAP`T :@h@%><p%42pKpxP|A <`_@ (<\BiA!pX>< h(A TWyX`~>0>8=P0*X>w0<\`(?0P`2}(Dzax ;R%0 "߀4@K20C`\v J@ (PyA,cpR`R`(<\@iPx0 h0)G >?!x7X0@h>#?* Py/` C1,á, ZP@|#h>\j #='PxA#ǀ`xA   P>< JZx@c!+% 0bX>$<Rh>l|h.`TA` T/DxðzoA`?p T @ P`6 ;` ?:xA>|`_|`l7paK @@=&yh@@ Pn+h!0   (O,J y)P| A` P01(:`4 <\7A?BGD<<`? E`0000€4v ce0AN :0x_.|/` ?PxA @R! :D&B,| v # P<`?PaCpP "@ a0a0@ t?`! |AJG`Q  ŀ4 ~%`@DåbR`4 "+t x?A?`€x%`4%j!`S0>ljp*R`Rf|O <0)A`_4:J 00xGpxoA>wfJ p)  ŀ7:*T@pJa0( `6 (00@àd>#PPK#q0)xB4#Px` 4GV>@0>'<h J8!P0cxA`Ca! 0>TN #`2h0H<<?pK x0)>/PPh0 P|Xˁ tXlVx ʀ5PT@ fD ?t`àyA *H xABh>'YPFn`4Bp @ # C"|_*2P t0 : |8?*4v n?0a><`('``R@0#R`S xA h>W< xA4K,  `,@`x0@d*J?@@0 |(A@)h0` <h>w@}A?!t!zp C`S@ ƀ4(0c`,#0 GP`6%@dxBV |_PXy` .cS@Hh>,_`6\<t a(àx >/T CT xA ;xA0h>`#@ǀ)׀4A >$`l ð4<_0?U@%Lh(A?(!p(A|]X!hXKcP|İP >,h?> `P10"`2 # #? .!K!!@;QGhD4t "z `a|L 8%0|AJ%`Sp*A@#><n0}?A` G`S E?P`RyoD`6 `@ `T#p|(x0)A` xBP0 # `2>, PxLZxALh0h><KL :T! :0>l_ àx@Pd`(0)A0t>,u@>/ `Bʀ5< qP>%8GTX*dT @|hDxPH700H0)z @R+8!XCH+Q,  T 20|?A 3jҰ PS@ :@X2`ˀ41(Yx0 "R`Pa>,GBX7`(> @a~ P%|h Uj`SX= zJ`TA?Ra74p|AJ%`pv>@#>_ pB( @"( hx @CR |X@ (A@"A?C`n`7UCxA J(h#PxAP%T 1l qB ;v`V%d[9pw<.aKalA?` l(AH @ |?A30 T8ɀ4(S`4h<<X `S@R `0)   xĠ|ǂP7P%h!>iᓁ(Jx?84JASp`S*>4"||>oX> ilS0!XSİ4 4? C0)@ # pP /܀, q!|AC: 5c`RJT` R b<0~ (?@80 :ŀ,+p`61h7 .Ȁ4+pxA?€,GjJ T BX/h>#(|%j` 3P|İPxT  0*U@0x/A?5@@#H{a 0|h|KT 70>^PYX)@t> š! e?T`4>l!H0o x t?/T%h2E*4 p /.0P xK< @ @0fj"І%enc0 +ǀP(A@&||Z M|/Ġ|Fx@H  OpxA`"(ǀ4 qGV B @|8AX (P|_A,Op`TjxA` T €,G@l06 @j|(D1h>\@Z&@] jp|?AD @@à|FvAacj txB%bZ-XVx+P2BVBX=V@+jG!*`á@iP>$Uр[(pJ_$ LHP> @_PSX-P>G1( J0f :jx>4 #p|hX2 p>o> |?Ip}`4DXP8$՗=! ~>>?~2 gA` *İa %`RJV :T R|S#` 3>$ڠ|A C83@>4(zpS3P`E5Ӏ,P>_>A)P> |/™0x< %!]*Z lA P,p|_›J|:(z>T%*2|AH=A  > <B ˀ>#`b` k |/,H` v``˪€4)X0>*|(|( yX?*Tp VB٢|/(F4 !? #aX!Lcc8*(Fz1(G uP!bXz Xu |G~cdT>h@)P>|U֨"ְg2`p|/6 &$daٰ|(H`+?9@)z@0P3` }DjNh>D:J~Y$&$ˁ?TZx>? R%T >7%`4 IW <f>p |p| <`t @à|SPvZ̀EP0)oP8OX>jHLJ׀5P>40Y@>$>Ȁ<2VjƟ=U_̀4F?Hh>gLd=~?T\  0@>OK4Gq(P`4c`Ӽ`T p|(AHjb`t z0)JDj>>4 ˀ5P>Ѩ0*AT@ J .4tq ̀-P(T%}OAE]|S@0)A}T P`S@`R?Tl(2}8>`P2@}o_00dc@<   cXviD0050"a` |je2˃[Pz$qX p0P0+ \I xh.PV a< aeVH*NJP@.+j|Fo+T "a|h<7j^>Be.+qP*V$ Ճ t ꁗ?dR,<\z 20fY,Z@/Qa!X2XP2ꇠ`>lZ0"`*ʂ0?'ǀ.q'`B|=YP<@R+cJV %X~ V 6Փ G7 6VAXpe]!pp)ppe\`nՃ. Ap|8WU0Ra0X2n `EX2,hN TX?ǡ2Ճ'QMu@_qX<Ճ@.>VX2`*ea abHX| jX<,`xxJ^ \u```(2ʕX0 U@HJm x5*[uH0 QP5.TT 000Pn*]a<H0*[xA &1V=AC`Tʕ, 7BXX Dn |B@ʃ`TV2A0VP0|h>2-b jP%h>_8n@ IQʰn*V=V*Veŀ7U*V`"'UT uRa0_V?@``"G L(@7`WqPP~˃cqa7^U 0Ճ``W@ ! uC~Xp D @hz 0P~~X-0 Dz<AՃ`ea>0?ժx 6p>Q$ `˫Ȁ4` a0XlX@ * X0uJa>L  @4?x070!>,~znhPRCnj& C`T R . `*hx@P 0T V` BPTT  jȀ4\ZEX0?TR` x<_*\p|HZa!Pr<`Tt?Vz xA? j@˃EJ UXn`e& tɏP~ +T 6\?YX2pa0+Z *xA` _€+*TZBB`ujի5P>NJPrZ7A` @>T\A>@~j;tAx(20Rx?ǁ?6m `DP>T @ˇ.GX~ `W X Pe ـ4;nAT<n X2˃T"P5j. 'P`Thx!0 *T<$Ȁ47U`W,o?T @@: `Wpax/P ~?T$V 7~Pn, A|zh>TZe?2`T*VX* Tpa*0n`>VT `ge>T 640 @e/HhUX<pyOA|hB@*2_A? p=. @`,X0>Y5JX~ \ ꁖ ``"bj YZ` |?]Z`@v/LҰa, A=p}F7U@: 6+\l 7T \ÐexG˪T J+]R|dz pxhժFj|\S"$~= <jR T<ej\4 |xCp0 !<TP 0U @<V + #U@8$@ܫV eeŀ5,\$ #X|@`W(,qP72`( J !P~Xpa0T,P0Apz j+0l 70Uj*T A ¥cJ `+TꁀC`(0 x%jl`x/@ >gJGT a~   0*AS. 6ײ2_h>t0=T(0~ `u@Pn 7XT ?e 8Vn A2`|/Y" JՀQ P~h\^9~^X P|X0H0;P $ TX3U@C`TѨ~B2`P t U@0 YPxX7 n `* ԇ࿯x??PP>@0p=P<j*\?V Cj` Th>'$ eC`* 0Ce0\?/VMbPP2EX22eC| xAH.P~#>WT ~X<ZeHOU+.=Xp}K+~=YRa~X>7vG >V~ `˃X|?AD*n ʁ ?\/Sj*T 7VzX0+p`" *Vn*p> =tV"4ebJa<ӭ`/P|EϪc!2@?p|BJPHV 8*Vu@˃, AP>?5CC@| $(ҵa`D>D6A2?6~UU*@:+~`e2˫T?*ɀ4X7Cx?x8>U*<*֬pn*T.pxA PAV$, . xX t@˫ *4*@ @WJՃJbP$AT@. Gp`(2pQx< @<0IVzP0*G4j:GAT<]P0T,đ~ ? ŀ5R&<A 7G2+P>***P Te@YeժjՃpe` <0Q )@z P00 +Txx rI 0ZxA4= eǠVnRP0. |_JYX7*!UjՃ<$nA0Vp}/Cjʕ. @T j. 7Vh|T `-0`( A` (aPP>_Lx <ˇPp}D#R+T   | U+\``(  T . | P * |(eAPz 6X>T @ERA0TR` À4^ T 2p`|FCR@e```T*Thh7G . ʏCx8Ā`( 0ZeV xA ƀ4na2L T 6\/PxA\@0u`6V Ђ$V ~?V `( +U??`+x>wdĀR 2"P0 HAUjqR 3za0n)3e@*X?P>( ǪǪ?\``(REa~+0P?T<+V˪\>ƀ4eXc5j^ YP<AXx/UV 7V| `Tp>`T+T j`P hXhdU@. a0 @ pxA `Tz ae^ X20 a>a0X~e.$V A\2X˝xz ˃ITX|=T 6Q lP0>V Zea~`|OG HP<4?X`'U`C`˫T Q1JYiI@P =0'P|C=JՃ , `*HV 9V<`eJTX<'`.hx ?TX~HVReV ˃@h| 3_nVX2, 0*Ut ~ 27P`Ǡ<]X˫]ZeJ*`e*0*A?xDe xH~  =AT`eA<| ~ 6+T'PELxI&|WV<* ZaeǠp@|/G@˪V e`*h| |?F[a p`"P0+^jae0+2ˇP. ACz?X7Qx/Pn|GmX~ xH?Bj0. R'P`T bH<$_>D < Չ ǠAe`?AHXne@pV?TP``T*4X7 V `*|'P`X0T@eP  AyRa`X?Bx |IKnxX@ @TP2T uJ@X~n X>2_i2`W.>' |?!0*A QPP 0BJeA]B H` T0GP|Z`Ƴ*ǁ0l 7x0Ѐ7Pj ]Zj0 jx/T e|U,n X7A2X>` @>,"B`* @P|IU @hA VXV Ca| RMR0Tl*0*P ƞ>T @@e'SjyA<j2#P7VQ?n+@|E*C`˃@`( 0+?bp>Tb|X}{We,m+V j` ax/\=*Vn 7p~ HCxUn e\TVh>Dr=ꕃqP|*H><VT"e*YPYR`* ʁ?G` xA0ʁR |OGj+DTta0p2z T7e@!S|XX pnpe?+]X<|Pr % ˫* UuX0 @/ZV0 .<*Uyv@ P\Yv5%8mBat!+[cfՈKT=결6=lDJX2ˇQP>G0n*VTx$)ox(|LlV8#X~ a2| <_,2Zx(`Dnl  P0zDpeQIр4HZ #`*X?|hUTp^hPxe{<A*pˀXP7UA 2˃ 4=pBR| 0*A *Tt>|xI@. >/!0 6e ,pa 4h><n,/C|xDJ`l`` @ H?| 0P>Z!X04/Sa|HJ`VHA0*AVu@`4HQ^Ya<Ԙ>QtpL20ԁɀ4>V>T B`W?MRx?xhĐ"n*ƀ6A>YX~R`"n0T >'8zP0P2>nH~ Ce>d~>\ q2ʁ]Re \3R`@.<P>P0K\$*TV'lU@PxA^%>8@xz=*pjxU ˃x +i||h0;QH `W. 6@T`Zax5P RDSJՃ(h5j"0!S kjA[ #oZd, *.YF`0TT]Ґc`"f  7ě31X>BH^ @lCL~r\8+c. `AAr`0TڱP1 EJ'5x8İ0_#Z lV70@ A<48ʰ|HJ``"iɇA0 +p`"hx* `p ^L`p`(h0 \x2QP0+P"|8H€5"f5`Q zX2e5R|S.vΏC`|hYmQGR|8BHT<xV <?*=ÀxC`p+nxh` @n,j!~Z H j` <YP>R??Rj%Tх`_XcATn 9X`n ><@a0V\b`L Pz+Vnjj iP0"*Xx X<0 H?TRJ\i%@>L,b >?"pj?r  ֔`YP<Nl8Æu#z"H -aMx~*R"`$Ɣtp? عxU l#\ݣ#QІ;ES`5'!q X7DMT0%Ci b@<,mT P%T>'@>Oe * SͶ>Ā6@-|xp>,c`*h Y/i"YV/2ə\/RًG,PR@*Ā5 grF ~c&5Px/U7cx@)(<V nh2,,QVX7ATX>$B7A ـ4`>lA`b@r eՃ@p>l@|iP\>ˀ7>,ҹIP0+R h> >G-X| p[DʁHZJP| c```WXrBT|Jp?Vj# *H*X0\*xxSKA 5̓h.Y0`)0Ԁ|8[>hUKhi҃Nۗ>G7(l KD>Շ)!CJTt꺰 , >ꁖUmP0OU&p>G!Ppx@(ZxAP|J>n0p`%  0J U-M]0$X0$W<o| tl6\r8|xH b@`Ha`*rjR`D6d2ʛOM$ `qst -0ZmүjN-m5a<`qyA,j@UX~ ~ked>ƀ4xJxHC|OTlP|Ne(<P  )@a{70 ueJՃM@-7c\ցV0 \@@nX\.l7Zj Bn`a2` A`**~ 9,mEZ`ߕCbj`>0Xmp`zY^@k,+>-XXf-\YST ߀-u*vL3˦P,).<,l`^jjZm`>\ƋD si19:$0KV+0k( $bƊn68+2&+ J @0 j?Vp `mjX0 L,Y$4v",`)|jĪ땪\_"܏#F>$Ak4RNt`6 9mq@`E[ |(REUB+2@3[& =r; f-°}X> `p `T@$)7p'02`X-5ST!0e q`}OUd\WhsP0 \ R 7S2m|k8ڌ`~F[,2m DǠ`'ip}d@n |(L̰>GCes4 ə? `P+Y(T`*P0+Q5`k&2Vh>*Tj@0o`A *|nDX߭Rk>Lb̑0 P+(>L>jJ&>@>4_%@ +{AvP`p|X~ Mh`Tр6ZN,< @)ZkP0F?4`->Ճ,U0@D" ` =nU*V >pJՃ`TUP>X<\PJT.*ՀY0``T}K^> *F@FLP |/VT 6`LT"jt(oP|EpxAik@ 0 p>G΃@|8dz ?}00dcwVq8~`m`PpP`, !` <'p~3p|kŀ- `x&y {clz1}yA&}@ c B Q7?`>$PGy8M|(pa>` `D,r|xA+PC̀- H @_E`t*P! b@?Aπp< p`:X3cP>ɀ, H?p|İSs@`P*$€,up|o o o0|XR%x @%p|@ `2wdQ100 0|$ zGB ̀%)>`@Z>|u|/X> u|y0|аzAF<`0e[̀/` #@  >ذ` G`|0d#t̄`|?ɀ,` Fl82a*m}0 |?`0`7đn  $!x40Dj@6Đaq$ N@<2Axx?.@PĀ @> k`:(H0ݕnGp`2\ x%X0 i|/0|Or |HX1h7JP`  C }8> H! `0@00dc|Wkx}O{X$`oױ뱃`S@%j>xAĀ7`+>4հ}8olV1`SOj(>t4PxA JyA` Wˁ@ `T ``+b@3bP0 `@%c0@zv%`TJ?P` ̀'*`Kv X @Q$0$ ġ@!`<`00l Ā4  p` >$00dcW0}|h]<`>X0eo,~}`P_X>/|Ȁ<>\i,kp|O?w\EZnAڀ,; `|` J>`p0)B0I> $+ x0|(AD<<,uQ` "k 9L0l Q2O@cA I/)tF0 À/B. .d1^?|`3@?' iA?D0B> `0cf Q>@? |$!> 0.Ao 00dcdXe ,R~A?k ,~Y0fA!*X<_ @Kx>,d`5H>>#H2p}A@M0r,/}OA`j >L?`x`p>o Wl/P|Sp< >O p /\>$yx0* >o `8>|?t,|A>?)  `ˁ >  D >H>$?b  |f V$AV\ 0>=`\I/N<_ P` @T8>?L 0xDr>P@j .@|8Xp {#"Ax0 e<3>@^x>700dcX|?Vo4/V}lh",z|A?F3P~Up~Aˀ7g$>,6X?7|Z {C?=>o px>_oӀ'[ױ`?ol'?HDGP`* G'ŀ6@/€4Kր70P> 0`l`  ` pQ1,|A DBB0 :̀5%`6|ǥ<ц!( V0|O0@0  P @8qpJ턁HP0̸ P@a(R`4`Մ0t|y>|| ;x0 J8>P1`|@0Kp~7 d0a7 =wu{3 Q(z "tx0ap a3|! %0aL>CA0*0j@&,&a>|_pG6 #@`? 뫁/00dctYk`P@+X? A[X>z ŀ,p` L+p|o [݌;V0a,!Cπ5<6|XA0|(A X1h>`ͼNa7v0}`WGp|`>k`cĀ7c?o܀/x?bH> p  ݬV|>$)0<3X>/`\vX0X>bX< ` ?N@/~< `܃ `  p5PC2xA W@0@ZGocC` `8>GDAu`TpX0X={V >q`` g+vS`xK>.c`>?p`oX1x{kJ _K00dcZZ8 _x4`3À6ƜO0|?W&<_`p<~B o@>L[Ʈx>'+f5p}`?`pa ?lf_kg=0|up`< T @">\"}A pAN!ScA bHBV|>>pL  t~x>>@s`>   x>/` ;D@PJ \@<c #@*0#GxA,F AV0+A P0+A  p ?+0|xӀp`|2oo@5=o#`P  PkOMg-cVs_80(0B=m/gNvgVΩ:N @ _.>hX0oTk{>?&00dcZ\//k݀-uoLnxA!||x>'+[Ѐ/V` V Q?ihq,?M/|?>T d|H"`B>gh~?@8!xB. B}[n4%!t"a` xOAx|8$@f|(A Nq,KU@àyD|X@,GL P`SxA@lK@wàP ``S)X0v)hLP!`6 ` GX)@:@l>|h@HhKR @xA JՃ'p@ð8 ;(,z )At :azP|OL VPc-0a)U|URLv P :(>h0:A@ @`4<Չ~ EU`pL0*P0&~Dx7@薬KCaؖ P':xxA(JH a-X0)AT%"a(@%`\ |AO@~%`4 ?Ā,4_Q, `S.P.>P>W`a<jAxJP:T  ?24L xhA`TP)A8>,T( `SK@p8à|OR`_P C(G0P@hx=\|XbXv}oK?h,Bd@l,GB}U` AP@ƀ4T` aؔ ` -, $T>DpJŀ@<_'̃6`T<<X> XlPdt":h0`+hZ`8_`Th>'aؖ.\p xA Ҁ4t< y( IS#4Jh.߂ hJ!`4 X<`(>lX0)  ,a0L%>$4N X7_A)0*D|/@)7V>(2@x@(`TU*@@t2tX0) 4J p`Th`&?P0*D@cyİ|@,*<34<3V<4`X0)5X7` ['<bX0x>'?İ`X>'/ y/` H>`xA ր4#p o0@_?j Ox>0%L ;P|(A ̃0)A7@h>?h ?Ā, B(€OX7_me[:|_@-jp>`j43S`  9X'PxAoV :̀5<uP>,B,:0` ,,-X0)X >bX>Du` : ?Z,fB4 zD|A$ @xA V pR@ B:@EP>T Q`6%"Xx!EVBTP>0 #,0)@Ā4|Aca3@`lx<>7`pDĸ*p>$jR P0%@$V p`6%@%)Tȗ 'x(U@ c1 j1?x1>,`^@\İ|/D>'? tX @ `6 Tn=[\ mXfCp)@@~/ |_Y@ap%='4E |h>/`P: PX!Ճ.?eP1XO` Չ@(U>`V+()8(>D(^mcy[ghv@,Jˀ7bRdJARPp>|?AF?`mP*AB X`ˁL V >І<< $9P!~ @mP ;D=8%28 P`R6|i/\̞@)@ $` k r)m''sX0[0V [0 m5@7UX  ,HVxX>/i1-XJˇZN 0T%z%k&? >d>H`X)˜< @6 =B87A,| 7 7CB1x8| 0@(NK0@GP)(}c4x>%S€ v0cg<,A p 6 `<gX `27?|꼫=^U<$~3z> ` x3Ҕ~ Ҡ`V|A ;.(T0Հ4(P2@8<ʀ4xXX!SIϗ<,,3C<c? hT``3> 02#X>'DgR@hxZ<jR `]@,P>c<,K>z`3` H nxR&?  ,,M` = gc03 0 pfƬTlhXޗx30g_;xZ\,-7V @X>m` Sb(Zx3,3`f8 q\>Z<,(3m`` X3tx=&`   $ `,3/0g-\--00dc@<   cXviD0050ј"a`C"xA\ EXˁ/*>T e_ ]RxA?Ae X)?>?`~>L)X?'Pea05` XQqx0 ʀ4x3 .>MX|@60~ z`WR !xo(ŊxHի\ .X>0*AP:\ 6.Vpayp0/S/T82ꁁP X r>T @pxA€4`ʁ>?&0^%@6+Ġp`>V'0 ꕉj`Z@JL^ `S.T r`W& fAL \ j˕RSlKT 0 /V?_Áyz`QX2@@l>80P 6x 7V0`a7 pD1-R@P.l^Ce> >TX2Ճ,^X2S,^ Qr,>LX<$``>Ճ  0LK0bS2u@˃. N | ?/|t 00TK\ebRjN@jYxV%aJT?H0> €4'A`JˁNP|2Ճ'QL| ``L\.?yp2ˇa> bRe&`#P0.ʋ 4.a2| P+P|8C` ʃj0*8>g A`T P 6V 7\ ҵa2P d0.JժDK///V?RX)V pe*1r`T0VX|*X!Jժ/ ˃. |8CA@pBVjKV ?`S EX|n ARh0+Zʁ@*Vl?~ A.EU/xAP_?!`W@xU@YXEj `*4+Qs)N.`q@| 7T0 \dX)+/V\`|XoyZP~`PSJ!8~l 7T U bP!J.iP pP0ظ>xOJ`ɍKNQyz`WSp2˃P|(A%,K.* @&@|L``aS Pa~ep2A(eNe*pZx/ˁЀ4d%`˫Ȁ41T x2T'U`X> za! RZBP2X0 + 0ʡ-Z@ŀ/TP*P )0!>,P>.V>ˋ *T>@Zl rn <'0*_T UEP0À4R\@`J`(pQPT b@`2P0*Ni-2*ꕪV @@& e @åEš~ `Yr`T+e|h>'LP|\P~ *ʀ4ʲae`Tʃe f&p l jUa0 0π4p)P0ܼ>V 0n``" 7ƀ5 e0 ?V>rSX0~^ Sl@n-h~eR`Š/./9re@``T |hG5JNA~ .T  ?JX<!*S`S,D eA0nh~ 2 */+ rA2V?/V0*UP>/BZ8`0 ,l `"hd/ՂQyp8ꁀȔ^ ) ʁQꁗ VP2ɀ4B^h uj@`|DeS./ Ā5>+Y`_0U@u`U.j@0°6!ʕ. AZaG P~ `"\*T  \ 0*UJ?%!.82 e D2DAN`|h}0ƨBx(N n 7T AP CCB0/0T81izp`( )|oDp).>CBe@1Д!`ˁ S Cx_\?LA1bJ*VP0V,J%*T u`š0` 0ڠeE@peՃ@`(jWcpbeT `xU*\n0p>$eep0p|OEP|*`2h0*A?& ,P0?Xꕃ@ >BbUEjV`a| ?T ,. > @Cpy_A_Y*,1 AX< u`˃.`Pn 7ViP`T+ժp0 D P ʀ5n`  V&YX8pyOAT |?E xo0T ,n +pa0V >d``8 `}D`/>.µJ<>^`ŅD``* b`* 7р4)N PTzdĠ8ŠN P`|EEP,X0Ճ@604 |xCh1h0*J`0 AL >-Yp)C./TP,+xUT `*p`a~xA t Qx|B/ jJS, %X| CAyp ˇDQL5 @ reT^X|@&P?>(?T?*+T^ ujՇ 0@|(WjeL2a0+`( R),Z!J\ (D *0~\ K~ 6*ˀ4n! JX~pa0X +Th\@6X)΀40-2*ˁXP0>L+UK KRxhN 0 @jAVꁆP˃ "08ꈈC/T08)T a| AV  0 ]P2Q)ReN X­P<78D, 6aP|X2) P>gԽ-+˕@5X|^h>l CV NX| 4?VʄjLnp`(U@P/Vh\\ x<'T ?4>L ˕ *\?X<>/...Tu`˃jS+uJ`˗, >U+8~^ `p?x>7,Qrx(ap~ `˃X|?-3jĠ?ժT 0pe8^^ J ժ/V^ ,n AX?T*` h2 ̈B Rx `|?Y1@) @>xHQx\^X0+ˁ?V B`2A)K՗. )P p ?.0 x)`TnAuP2RepS*p> ?P~ 6T H5+| p`0/0+ 2~V CeV ?5E.d UZR`"P`"k~^v!x<ae,T 22V\K8  `xA>44U*J.T ά *T x0+  X 0عX< Շej.JL6 @˫N *4/*ƀ4fdiT x$ `2^Yr``T 6`*X0ŀ44fY`QX(V S\ `xUQJ/T eV+RSBP  Ra0.2`* 0?Ԡ< P<!0KV^^P0*K+Th8ժn%*/.n .*~_Z@3PB|XKJC`ʋ˄uJ\*p@QREu`aQr@ ,#P/S˫T ejի@0+˃+P'h4 J`T@d>T?8<`TlDh^ )``l2|OLeZxU* x <$j| ~p|EUVjJ0?V 2_J*. e@.Z@Vh1e@H PxC 9Qr|Q2%̫\3Pe`( >BAT^8|\ r@@`SB0TX) T , `T˪€7DAT^^ 6X>T @|/H/.V>0*PRn CX0*@()Yyx~\P0>Tip0Բ\Yre`( 0?p|. >V T.-, xC|K bZ@aZ|p|Q0^ ;VX|\)R`0 ||J€5p r /L^L!Z` ^ xA ƀ4x0?peԠ0T 6\/PxAZ2`" A0X?PxK?TlD@e@*007Q!pKT p>V^Z`W˃,  bQx x0VZ`na|JT%* @ej@@u@ˇ1Jˁ^ YP<ANXT. eĀ4`a@??@D e+ j~.PxAR0|P2ʕ0а L`0 a0 @ @hR2Sb@_.\^ E`T'P "X uJ2ʕ+"xX +VT`e>02_PLd|\ uJ+\`eJyO@-PS˃, yOAl ˁN eի\`S 2ʕ0ԉp) A%,x~h0+?€4YP>\X> eŀ6NlB"(l\`eN%>\`aJQh2J0p)˃,jˋ }PVP0P2p@|/G@˪V e`*h| |?FYh?T%. U*p0+-Yqyp0nh0Xp*eYPR>p~ >o5`eP08~0Ea) nh^/@@ :  5j``" X0V@%tnZ@ʀ/LVX Z%, 0>80V )ZA0X2ʁ \Kˋx(L ` .4P) V `*|'P`X0^@@*,.X?V|oBbA`( | A^ AP CA20*+@>GlU| x| 6?T0+Rep>VX0\`U+YZ`T PEqp2ʁ $a YrSxX@ e@TP2T *Tƀ4aa0*`p\.ΙbeP]P0+?eA0Rj `P 0%YP>?0 k* 0GP|iZ|v*˃a0n `(j`TͫVP>o@0*]>|ʁ><*YP0+:^X~#h00T?V 6YP0*A?o?V*6V 6˃3P`%LJ ŀ7j@ej>v^`W `eJ >0.ՇN>X7Pe-XXi B?D Kˁ.T 9p2.P+Ӏ4X @`*1,l  (\!~V\l^ 0\-Nzc Z@`ed$h/Ł<\Dp|O+ €4.UɗJ'n 6P0T UE`2T; x T @AX2p`" >ҰexՃ > 7Uh>hv eyh@ V2fj(D7pĶM ЂjO / {bZex2`e>$0bJ`004L 2S N UE?.*Ճ RkR:| 7X> X02`" 7T 6׫T^n^ua`WU`,F!k*%@S J*Xn@J<\`W@*T^%+le`pb<ar`*h| .T^^^ `xH\l )+N Eʕb **V uJjNh><A \S˃n }T^̇`V 0P4H)Th>W~hP|#P|h`` @ Ap~a}HLTK@y(A2\ 7@V* p~ ` dժ]P0*@,`4r\u@.ʃ?|?UܳŀaP<_.|8p;`ea>4|`|p>,4-[{ iH`K,6\% A`S aYX~R`"n0T A? *X2`T@:VSH~ Ce>d!~>\ e. `˃ @>gA P>P0KTĥJ?QYrJ@cq(B2jUX2`7PxA> `Ņ2˃.~^^`xAY0p TP)X?P^ Da| ~ 0XAV /H@yyr|?FY?Th0VX>D+ Ā4>b  e 0, PPBZP0 V!>D.V8~P8|R}OBJʠxOP 6e 0@~T\P2p`T@xA` :ڀD̫L 0?T |ST Qh0X P LX>Gp`"i2b X| ˃|8Db/8)L>x>G$ʕ A` (r Z@@ip)>4a|m*V g1(>V <?*.+ˀ4|X>u@j̀N`}hP)/Tp` \ |(Za~x>U@BR|NV>L!*X N 7.V 6XUX~p}K1/T 75Z@p_"P>T]Yqp~ eI,RxA` *|/ai{PEtIV=V:v@xJ` AABUrfT lE.>T%&L48S0BL$iFkC°. AP0h0 *vh)EفT9W*A@K.( //.elp ap `oV^+RT@./.\n^R@P|hEN <)S. \*ՃqVT?Te@?.\?,o _j ><\Cc@aʁ-|hTI$`nf Q_-`(T\P2X?ƀ6y`a `ꐾ01?_.T՗@V  e`00*A` \̇P22 (k jՂeJ@aP!@6 X~>tP>,@銁N?/T  hQx<ePx'P|Yp2(āh1h| 7ViS>@Ms@P| |R|XEAYXrK@Xp؜HV[Jԃ&lr yȱ@2%X~Ұ4 Z 6lJ/X<,Bpb|Bb 9 *4 h >`=U7J2`dV}!V$m)JHQa$@ Tƛp`bT [& ]`p YI3FeO>GA LIP| 6hX|RJVYXX:|(Pk,Ua>Gʼ |PS4i\ @X>V A ?Ա`scAe4U$`%49Pl`X-Vk#Q!?x>dRe `0 |O]%`0X#k? E *~.֠0[>[Gmm/ f 0 8GP|_C>4WTN ~jO-LiŪ ?֨ faJԁTZ4XVȋx0 bv[d1eX0r )UҘ%C`kp X ق m$BԀG`+/`"X>W-DCx/U` v  ?\~Z _i@-Oz`ǀ6B/P R €6,\[2ˀ)5UG t[4T/Q =* U& *TM@`P>l gYX0 `[s5_X VH&hpR,V |/LANDN\ fKT^ rJxA` (ʱ,ZeՃ,  \,i`a0 K"|/_+i@>x4VEi  a>oT >/@i7J\\ ]?jazs0 RA_€`(o8A[`[rհ H XsI>lt_]$ڀߦ-6 P6u b }JÀ7@@D*|PK(VT\"OM?T0 |o]lf-P`* >'|8LmG ʹ>iA `)FQ6\e !TX ["Ճ}(hn|hd ?@ ,'9YC!>'"@p eJf0 7ޗT 0@\̃@jj-`e Р`T|kŀ7HZWTQ`|xRIΒpʁ>?M |UP ](\^ԁ M )P|Ȁ5:)e@+I,p|X~ WH*?\0>_T[z`ܦAZi ,O[@7P|dlxAPjyXxU@+e`T* *A?,RSZa>Z|?X0Ծ|*Հ5 pVh>S%Z`ʠ}oXk H5R  $0P0 \ j\30 0_\ -+C|X"@,`Pڠ0ƀ50`( 0+?PS9>/}wV?À6Tl00dcK\N[݌3|W?/?π,C-l3SX>_6`2]l3`< ?[x>/0~C?̀$Rlb> ` |` oȀ&^oݼ`p|`  >7X>t`Ɍt`0' a#p|S_4X |v `-|Ӳ pB?|Hl~0f=`@>gom@G  `M!*|>lU280d u | q>1 #hH0dөl ?1;a|X2|8P|/00dc\` >G?ip}h?ڀ%l}? x<`??w޿$?|x>?h|AГ0 x1!`! -17  `ÿ@|Xˁ  @xl~?ƀ,| iP`:|HB!tgl2dt*`H1|_D>!$`|(٠}H 3Aa ݀p!?|N0xXc ?n 00dc]HcpO03?͌#X>7?Q>O?`zK wX?,`'K>?80B(0@T< E?Ճ0D^O |KD_ >o bH7F g$||2^ !x_K` hG/ MK N ` `$ >)  򨼸" [c@`Q.\ 0d^>7)Ԁ,;\Ã>@@^̈́ uJH`|z |HA00dc]>W0yA${A$dЀ'ckxAoR>5pxAʀ$6l lVyA ??2^ pĀ%h gyqp0f eǁ 0Q@('"@|@8K@@"$<\ P|S(>< @"^H3HI}A @f2g6 0 B> |/@x>'  xK0}A,/\*`}%~>`P9#B@7AF@B.`H00% F," ݗ" €>?00dc^C8}V6<B C3><,C|} HX?>_[H oȀ/|(| c>/(/plǀ.4thl/x P0h p|@ӀTĠp) |(0~jT@)Oh3@>@='~ FȀ,e?ƀ$ T!x< 0jPCV )vV #@0 h?,!(р&ڰ|Al+J2C|?XAp@ >Woc"00dch .hx>,"|XF)g2?p|P}_޾>l4x8L @|?[W x %gD&}ż|έ ,}U xAπ-.`ZX?\ "p]5ƶ{`pq>|v7x><`J<, sz< ?H@|*`^ (2e  x<4 0 0>` $ `<0fo~LCxA $p`<>`? H`|HGTPa<`Ap|P@ǀ,&3p|P?R A [:wF0|AC0|K  X0?WP۵k9k9ƾu3?Ӓ;6~ _:s[:u+ 37,vK 00dcPx0dS XK0g8?W:? [Àlfu`_`0|OXR |(0>> l+3`}ݬP>?a3@> ? <`@@tBX!6Zx?~ > \ `B` L2KpaDi`@ "|^=\&cl0<XĀH0,;0M#y5@ k1zA\ j #'.ǀ%00dcQ ,_0y~l̀=x?6}(Ax o<7V0|HV>D0|([X0`΀<e`< P |cb<0x?A<yM "H ƀDA AK  >?_6 @ p %2R`0xoAAH!<`Q1p<'`?x Ҁ<(TIP >  xo`0?A Q?r8uο8t"x(A00dcQw?|h`  .]L|X>,?pp@_?|> 0_`V0C@4a!@H>D| |h%X0( C |@% ~!X |  |X|OA |ҔxOAi,x?tpmPeD} >gAv .X2ȁ` 0|UPx_A?\0|>Gl`P00dc"R |h0~AĀEl7l{xA[ĀD5p}B{X<|?[ À=Nk€?WЀ<~XĀ|x 3p-xz|hm_My8`?hX΀=:x8c><?x oG$ p@x>/`0~x<7 P@[<| P5*g60xX! >H@4!Ax/4ЀxB@ \ lA!>€DK`<``>BH/IT4W4〄``l@0! H0( zp|(H`P @>?;pH/=0 <,  4>|Fd "XBPhA@AR5>   0x8G `p0|/T'>"Hla/00dcRA:*<l 'UJ`T:pax)?S( g@H x  (<pnt `ր< x ePX @2 t `< oPB ߾#*D  <+R@ "0" bw<`x0B@Hh -6" | {#0 "n `b4.:0 @00V "0H0 n t p`v P?G`Sqa~G*~ADqʀ" C<X>pF+P2!|xtAQ`A'G*j@1aX!uot PbQx 0| EpD "6;0aL>q)P"HJpp*e() d@@H>>D@`,`H08P;LyTc$Gb$ pb0l T 1@`Y1P0`nP  4 q<`v!HX$}nðx>'($G`!/`\t'a0`aa1cD@E#d1H4H)"ba!p`2畈GTj h&d u< @ !tJyH`Zd= ~ B 0+ `h0'4A>TPAf pd P*:X  !v;01P8 X X=x 0 -@n

    pG ԃñ`PW`ĀA% Ñ xv l R 5s#ԃD1KpgqP"Xr@y_ lG| @iJ`H0 4 D+`Ȏ y`PoU`1P0'S@/"@D~= ~` ` )A|)D'FԃC?XP #aEP%#3DȀ- *AJ0d`O 2Cb`Ed=B  <jG@ "(d @d0S&@ .tp)E0hFp @"(4<8* @b aT0=P0HN 46C@!&"`?A/cPOu $x IX0;'`̂ <A~ڰyA $/|(,F S(>4 $ "BQu*#U%8 # `CP"Jo 0|.`. a|G`@Ȍ aE!|xAv%X<<`dG0.?*P>P7A @| #OV`@@̓@ t T K ( 3O,U@ 0H*K @a xN>iA]3*À`F%2@a@Z87A #?#0x$+@ V" | Kp|hB|`04ƀ- ڵ A @>G`D`ci0yX?0#@0ɜ VEP1x" A`aX1*x0uah#<>`R ~ !pajxAQ0`" R>azH00tD zzBE`@`_$)# xn $z: @`ڱ0)T 0;)Gc*'V  =0 P 4#b8#t: 3aC1Pp  ~ !0 /AA&M0 1ѓR1` u S? ``| 9a`1 f L aBxx CftX>0" ~ʀ`^ J ~<`BJA X0t;0sc90| @ Rpc<1_Ā P& @$~>SR7X1X0 yP@/`w?0Xf #`BVC~3@h VFU* p1Yp3,K<>x!4|$"T 9xH lB`1! #` cc>` P" & ! `11ĸ?` !x0 $ q \ @؎#)H1a0$x X`@`T@k8<`…`0P#@a N @tubup׀>\AQT:P>%58<  H@3@: AB!0 @R`0< ҕ``1p<b@( b$v^ >H1E$D,^  yXJ pDal|:24:F? xA ?2_@$l px? c€-<P_`ĭ`,WG%<)0 `j`A ` %\ 0cL@$&R `AN *p}0X"ÀU`aR`= `!c Q( 4 |$E\*(1~%`0 ><jK3 hvx@! PRX * b@L|(P`8#f=PH(2D4Ȁ& T80+$r tY `_0;0c`0` ( |h qDj OT JTc6P':b:X1Q^U@p T|`#mA~$(`(@ @(!Opc6c -Vc rS[20mH`&E *`1$EȀ$2O1: 0*u@ h =G b4<!1|8x1Z,fp`"R /c5جGO$P (>` l :*` PSH#8uH1`8E`QHg\\ #p ~xd q/V&^ qom$2a18hX$˱bɼ3QAm:b 1xf" ` f gC>!. DT[1=lV-lt:0f0c ci0\1x`]l3kVPl`3 o00dcH   cXviD0050 aTU7 7>H0H$+<bH|* Āe?]P2_ . qn_QP0+ xA` MpI2nX?\px?C`p X>/ V$G2ꇀD>T xU,hX0VqJTZxAŀ4p n=x|>bx/UATik px=Ճ,<?J|M$`CB@0+H2˪4p|OLAǪj>,P @RCJ2$T7SP>?T |x?Cx=TXZ%Pq$q~x>PZn, >0=V P7\?TjT?0P>_`=@P`a0l?ǀ5$_*GPP0*+@G+V V=\+XQuJ` Lx< G2xA?)p p l `W*V <\|/Jh <'@7AR ? . 9U`_T 7+ T 04?WLJ}P| >Xz<?T?` 7T,=VCe+V<<@|@V q ~>X`a0nia(nh0)ǀX|]X~  . 24=|t`GxOAT, eje. 2` |?uae XS ̃ @xǀ*A;V=>1\0VHV$,<_Caʠe, `T| 7 a| |E!<B`(<uP| n n? ̪TP0 VA#PnUQ -&XA'P~Za>|H`.aCHRTW|߄!#. A , QvpIVZc<$ `pl 6T 6]Z @0~ 7 V@. 9jիz@0bՃp?\pp`*ЂxrRT,n Ape'<*rea>`( x(ǁC`˫ Շj 0ց x(ǀCc`(<>=G?z<:bcx/X7C zP0P0l>V?Շ |, jX~X2p0Z T @ |nIeV A0X20, >_0JU@. a?T G2@0 U@1X~ U` ֬P <+4n 6ʁ*(~,`ne@?JxA0_jAPѻ`>  F`G a~`\e@P[jՃtxX`T?(~ Ijz<p`*h>lPR>R`Cx?G0_UA0`}E@< #ApP0R`"@Bn*x0. >gq3x/\i !X<0 Px$ 2|C yRaxO*P<7`% B@|\`xC iT AaRx(~2 HV *˃ `A n2H @p|L+z 9PG@aʠ>T Ce@h C 7A` .2@<x?ǀ˃@`( a hP2UX03fU@. X~ e?A tT 7Tx P``" A^x cx? VQ b ^&yC|OX\x>l`0 2, \>T?`*T?T>Xza<|_p E`<V$`_U, 3U`*$0<|7A 7 8?@xX7H8X0p0V|P~j Ճ䊕*>T`*,zP 0 [ +X|?#I+ pӀxR``x/A\?V 6\x'P I<7`x( 0)\uj+ʃxC`(KPp`(#0  P`"P| a0&о<(~peT. @\z &zB^L|<`Ptp?ejt_><$  2*Xz q%XH*V 6H2j?N x/>A|4r|<ppx?x2˫T 0*`ÅjJՏ>b x$tz 9| 8V 2X?x>xRn* tz 0?(>7 P n+D>YRe`"  ~ 6V=V4< n @\ Tx|<@.P<`P2P*X>x<+>\x,'UC`( ~ 0 ` ,``W@ , 7ԕ`_fU`_,X<`˃pl Ճ@LqjJj>[&|>p>p@0T| -Lze   0 +X pP$AʄjNJjǣ`nUcx |?E \`(X0X~ Zn@xHR R+]Ze02в| 6@. AA| >-4\HYX~$.PyU@dU*7GP ]P<`p x8* T= ujx0Qx~xpxA` 0V a pePa\V( ?*\?`@JX7|=@pn@Vpx8,<cn֬xa2`  SL|U*\a a0 Px j*@`a~li1!Rn*uZ`0+` €5@> x+\?ǁ|?X0 Xb P0>U@˃.< X 7 lqX2p0Z`p`" axC|BP|`X>TXitece@Pu`T J]*xHV$Apn,  X!>JJfGnx("px(+P|FJĕJǀeJV~ 8BP2x//Xx 7?0|XD =Th27A+Re X2ǀ+T n.n֬z `jPx_X>T 6]R|HY^ JEA<R|D!0n h€60*A@Rx(G` x?P:~Zx(X|<tR`PI= ˇꁁP a0 ?nCz?'t> *a|BH ՃPXx+U@pe. C>0R`" T?<je, ]Vb@Ճ. 7\>X?0R Aʁ^t$ t uJyAYP2E@ |oX~=T Tpx@)4à3#pG`_\>@S`V `e?"8?Tucja0|HG|x<+>V0*.anA` $R0H`V <j`(=z 7h Pe?+GH0 Á%X|2(AJ`t7 x?ǀp@0xxC'0>tIV=T<@8UX0G,B`< =qBTp ԋ pd}P? ǁ7A4 @hJ=VX>T ~ (TiGpP>JPHAL*T/4X2ʕ ucP~H\ >'gʃj NJ @J0 <j*0xX~h @xo\  e20T 2 BHVz+ ]Ree` 8`PCIA?_T@.X~ |HH?lIB`P RexOի|XC@`eǠpz Al]U(xu@`X?P<` < ,"xǪ\91h< *Cb@<c`˃tJ0<j  X0 pnx |PZ`?C2`?>qG=V Xz @P3Pa À5CPn>ʇ,P|<X|E>VX* D0+*xA 0 -2R4x?Xp U,xC|CH u`}P2xOj!0V<Đx?=.0P| |p`WÀ51n,p PWL7*7AB@˃RaDtnV7C@e`UX>4Dx/@x~ 7l<\˃,@ *T 7ƀ4UZ`k ! ˪T$ 6TX0T>'PHqP?V<``nVX2˫ b*\ P0*C|Q\   |Q2b@020n exAfUAp T, P7A>?djpxC`T?ՃHZnʁ@ h>$vh2A>T&xC Xx$,0q0*A .Ha0 V R0IN 6Xu@_ɀ5TǀP G<˃e`@|HX+TL4AJz=P @>Dz `px/H7A7@dTMX0H˃ M2`V Cx/nZ`T?ǀ4h=hx8V |2 k`( PzJeh`|<4 ea<P>'h8Gx?xPe+d8#S\ @bcaET<`PT e@``TJnǪGV. 20XP@<' TR`T 7$uB@0Znˏa>4@.2V<x<$ Ճ, ?À7U+4 P @j!px8Ճt#Pa0X0t$HVqP7_,pz|in Ӡn xCxA &2h<jX|?\/P`W@.e+VAʁ\`P/@:>V 7 D@. a>44p<8A@ˏ_> ժlA0V 8J`Dpe@rae\d @*V2V xA?VljbZn a$>@n>lD@@ 2Gp] 6ɀ4x=V>\ pn 2?Q0x( @  xt10V=V=VAYX0>2_PnLdX|<c<`P V<a20 n+P ?P`*)Da2Ǡ˃, xA]P/<$x(t .€4@SEC?`( G00P `X0Iˏ @`*hr$t˪ J`)T.GSe?V X0+>?Tx/Ǡp@|/_. pxOՃP. p< xO*T `W@H\u`PˇP ǀP . Tx @` 2Ǡի0\>m$ꇡ<p`"Gx?`*>g}X8UpxA2`zn=X>HÁ$>X U.\*|p|8S8 @HA ˃qX7+7A0T`"(TPP<`?H$, `n xU*@.`SA`"n.@E ?*V@˫0`a<ՀPR`S*V J` \n x x?V @ @.lixĀe 7+TV 0#P|/N50N=Az xHG\PxX2?Tb xpeՃՃHP7H~@.``T$Ge€4`Hp.:`* U@0P| JP ꁁPiq?V 7@|lq|?d-8HX|2ꁁ^ AX|?!0*A x`]P]@~X0P YP| | `( Phh`xzn <@'RbBa}hM4"uj@h> ꕇ`exA uX<``T. N> AP2zxA]P0pxA` ``,NՕp?VMR%P0` MPA0*|HF^`*>T >< 9*x>Oj`T. <$P 0<cA7Cn,xCeC|/OC!X|CP|EbBVGX2 BPp(P<ڻ ecj?Ń`t `W *+ 7p~ L|V P2xABq zX xX.P7@?U`?Pz 8c`T cX0*GՃ|/D0z ~X0z Au@p|x=*`~ 6֨l  HqP<a0>T `tu`@6h8@0?\ <$@ 4p 97CJā0z0\??7@.j. xX@? P0ŀ6AL*T=V HǠ˃PeP<J@u`EX~$e@ ˃ . ><`x?`P V X0pn?PxhrX<`P =T 7qR`" p|8Gʃ?T!0+>/V@. X<$>T#<t?@j !,Z@|X?<\Dp| <\ʹ6@1Re\z 6P0`QXeX7Gppx8*ʁ T=V20'`TI+AH<#`( `e`˃ +p 9P0lJ O*ߖu`VL   jv xHR*!+r@>V|>,<X|֨7U@Pa¡7`a`*h.0)A *@:>\UU@4À=Q2I`a|J@(UReLpx ,˃ j`T@``|ZOuRV$H @` a|>GlH@* (&Āx8ǂ@Re0*-@`* >t "@˃t8|W~ |D*a0*A?X`xX`W@ @ pn. <`u@k yX<$P6|V@0*UJ}/BXG0V ,P2ꁁRg-$+]Pe<ƀ5pp q7G`Vx/?T hxe  +nʁn``*h7UAˀ5S@:$, e+\u` :h0 *n@.<`p>Ta>C@˃ Zaʰ`TV@.h<` P|/K*$z<2_ 7\7AR `W?TGD T-hli>xnc?AT @, a@. 6V |/D!  U`\pn 6]`(]Hye1d+JX)@4҃.]")^`1)G)7XH2PnD-LF 8TҪb10P AQ x$_R@"PV\UC`+WGS'=χET= 11Qxr+T| A n CaX2g;wʃx=EyX0*$H  Az$ |ZŢI> p@.` V 7>ƀ5AX<T q0xOǀ_A\x$,Xx (0*X>w?0[at`eҀ47U.xRn >+p~N07uP0*A>T 0 `u`˃U@?U@ Dp @]JPxhfp C|xK,z_)1'RP>7 A l;U V*+> uRjT  Tnl H ~ +\+Pnp> P>BrCGV|HX` <_ǁ2. Tn|D1Ce`"2`%AVG*D<<7P|/HĀ4`€4ǀlzx 7AԻ P t.|D +\ f2 ` e` 00<_VhUVz n0eA7U*Ȁ7` Slx ʬaJ@4V$uZcX2@MR>/!$jG -LB$ <.x$(`"XL@:|N%Kh3, `Ja J`X 8\ex %| Q)HJ߁" H|}Z|_b CA3*| , I$ >y=F2t*-=H Ī$RU\@-DA`cp<p~ e@ TP e\n*X?T+ƀ4|0YkPeC`Pn@|A ??\.vҡ`W LN `V  e]R`_<<=>ـ\`#P|hH\z$)>tu`x>lT>A .P 0+ D>` '4 j(fbHJhHH>UAo*/.z<j$7  AXX t&x?ŊF>0=; Pf*'A"P|@x/A`&ρ`=V<Aеf2r p|_ N".pLT X Z*Ikb`H]hꪯs5񘒯>G `Á>?*T 6h]`xxP0 D?z 0xA EET 0zP7`  7|HXf4ƀ5.p `/k" =>T l ҠeՀR=CA>X2>*J_tA`4 ~hÀ50|O[.Re1?SDZ`*⹥i Q|#jp֐`;֘Xtǁ|Q?ˀ52YT:ƀ4=d Tv0Z|LҀ5R)@)8We-LZ, 'STc(%+_ղ -M-+X  (Vx0?̬UATհ=`XzmAR$(xA,bb5`Vk0JՁJi@.T`0 Qdȃǀ5L[զ e@25  -`` Aj=Ui[ 0H QP$PP|j}X0`sTS41ex,0aU2DY|GIjfSr vabc L[1=e@6X DU`"x(%|=T+OAގX aQ <uXE/Ֆc|4 " [֔ŚFA +.X0Y*Ā56Aˇ_7 `4۩b9)NyLTxR 0 nZi@E B<ɀZ?eZ&E3c$}h|,>YP(p> 6̀6VViKKN`@ @e 2f @|?S$|o]o Cf>7" 7SըjTR?D. 'F 0 Q ItX|`*1h>?>N Qx>?H>"Ճ}(hnA|hQ€5`|?g2 ՗b*_0|X0Wk.o](P0e`l鬨?rxA MR4nXѐ|Xx3_KUJxA )An\`~xSh 0<'a>LnkLRJ\'B kj7e PTd>Xp|t PՋWRP>$@>80 y>0 DAɀ5`ɏ0*U`0 ΃ LjR^\Z` _t P> Yx.|(Q.ժ@.0]@`T}JuP>pn@0 0 t NTzFPm_ ` R`BN 74Tڀ4dz@ @˃#V |8Ā50|8X<`*c,S8 ?cP}Hmj?` @?`0 k V}X޻>`p[־h>,`-<@h>'^knX><@3>?`AB̀4 x>?OVh> h<_ |XՏ ` v}?ziK4Jǀ4G|B>,Zh:`f0P(A@ ="X :X<'`%|J!R`PL%B1 ;47CT%@hpx/A|?+`@޿O€ p` H~ @%1GVys@#yM\L?f/ Gƀ&a a7 `SxAH.'P|A J/P` ,Y0PD0|OĐ` Tax>,M p`T0@f><   C0` L, XCa0((vox0)0ɀ4*p|AG4@Qp%Ǡ 8J0|Q I`pAd> @ P0)` zH?Å%P>`ʁÀ?ag.q,Iǀ4?I`_zxX00dcTx~Z` k0xA o4CP|x?ST% `ŀ4 €5LIV,0}A` ,>|S4th 0` ġ(@8<`(pTAB |HA?LPKITJ> `4F (A@ PtK @p\_hpa>OP|4Q, 8>`RP<bP>'< >/'sҍ aĀxA0 h(4 `4˃8È| +P`R ``00dc\Tx>|}cp|8tX?|`.>Dt<p|暑@X>`Xx ;> `p~h`0@@0 _><l`pp.aKq0f`8>G@h4YX$`_> 0 1A!<0!ā4|KR y(AH |h?€/Y@ hKR%  P! c@4W% 3a  yx0 )U#"@?OUyg$C>X@ 6 0eoP>`  `|,p|x@>?p00dcUz}~]P?L`HJx>|? _!>w?~_x<$A c`8> `( `|xĀfEpapy?$jxʀ,4Aj0||H|H?€,I|60Ā`8 A  >p2e > P00dcUoxAO:`x? kO @j[/` 7Ā$q(^,<%|VPaQ xOAF :,+PP?LKf_(I İH2b`Qx8B |_Y(`x (!_gTl,T@?x_K ?Kc0\(xx@P/00dcWVt #I? "X< 4@">/(3>P>O>4z>#[DyA?R> ?< "€D3~HA?żBDe "< oަ%>'-`kMbπE < ( R<, P\B(` ŬÀE}OA@'|W?"|T`^4> @"G~< _V?k|_ǀ_x>?+?>??`Q\v> )>   \2 {X?d:A4 6@aH0d RR0pp&òFA @20|Xޕ5P  P|/~>oAeE&[6$Dx> T0 |Aa|0`Q|?^XA0 !@??`Q|A?i` DR` }%0? /  pxA`oIu=u e|ؑKUWi/r˺W0ؠ> >`;|?L 0b`B>~%><k& |'`з 緄#00dcV`2kx<`? k]|`P>tm?k/n`?>W6|/k[-p|F_00x>/z,R," m6,|Ux }P|o40ͱ x_FA<``|~H1x!a+0|O?uJp|`F`hHA t A?$ `8< x(A?,`) *W~@R-/A >^O_`A gA?< @C42x!  ` ~ ?4@ 0`Pp0 `?@?W700dc<Wo8Ѐ5w /@Po@4հ|V `T@>>Փ@z t@v^Ȕ( aؔ `  >2Ѐ%Z>a@4$ @|xD,|Āa0(0&b. $ @8>OǨac@Q`4  /00dcW\ 㳃< p@")>l-8<  <'!JȀDZ <\ ?T, t,`⅃>`PS0>pzA Nڸ/c\s}{= pzA@"+"{x(A?_&|oYɀDJ`<~?~l6X>-H>_ 㵃BD>L,lo< >? BL!@" < P؀D |HF5>G @"xCż|GEe P}AOoKA'_@&|Axxx3`ywx|h0BT<bXBT^  į;x<$E.σ)vX 0aCP?ÀE ` C(Kaux0 \> ?ED7)AL x|>0 xOAP>G3€Dda#a!|?xAh( M4@ƃ(2xh Ā.p  <€Dʁ<' _&# ]wڽ00dcXixERZpyGLB ?|x0"(/`.  -xNV?E`$5`iO8 $ )Pbt aXP2(RmON  1:a |<*ו@ÏQ0  1P@t &80Vb?7LH\ @€ |G_z '`+@T 1~S `Uo&2 pdc WGj pb|h 4O@` ǃ:>$`}J v TՁ@:Ǫ2H)V)1* !)*G~h Nq4#:j~`:< (<= .PQ8g8!T P" R1PdR`" )`lAGOԁaFR)BJթR$< ~ `mV:P80*A)H)@+ XPH!d)T Rt@+ꔏG0aW%8zbHT: Ɓq0*cPWd`St\GC|(I1@G!pF/(~ #f""JB 2 5گxf $`|0@]@z8|P# @aՃv`h b0G$ Do2__00 `Pa1XPc8; |"P1aX"v< V:R '80 pc1` H x؉&*<A`v$HqR*HH2@R #`v#@b?*81 A`tϼ;R2RڠTD`*BxԂx-8)X)@@-p*U\'`E6R#l t , H*@02Ќ p)N +2$o/d`<$2V p|1([¯x )`;/1L>pS*"8|@VG@1DP$V~xGT"{PiFŀ/TA%*K7Tj R=`x0yB$B@X)To62v`CGJQT U+*U%|?p2( P7%H O(0H081H8H!x'@X1:x2Pa`16 !yFVEH@G6#ԃ Z;C1R`tFT x>$t >~:ðRAR` 6"q0%)~TxVb=K^C!@H201a H*ԃ"JȀ+8) H>@ c Ab,[ Q PR)@6q;<  d8 / >?(PI., #)%` V> X8Ln 1O`H|z o*]H+w؉b#H3E@~ HE|ER á)@|t8)@*y@@H>F"#u?P0=-c t~t؈"@3*RK) `(C"S:X@d>D@:#0c"x zH61x0d G# sj@0.; f Fx8J,@:;V:"ꁁZ|؏R:@<Ip2U J;P|D tA`S@bG@96 1G b@BIrX3JU$,iRcSꇠhx *`><lt;@CA<p O#ɀO(DD"+a><8=Dx2/)Rxp|xDz#xF1BP@+  ?P?XE 6 D>D`FpSX U0ap: J tDT<\T u:R#| @bu  tEdtCl  @1 @ģρ`Sàx?@DRE0*L43a1_|?b  N d*` =?' At"(>`TTx Pc`Xc 0< J: 1J2|p8 |؏c4OR<`qڿ@RDv tu%H*8Ht>"ecED#80P<<qHԁT}@8TA_" *A?H2/ sb80:P؏~;|yJʔPb0aw`` 3R) J`b0㿂@@>l2_Vtf@a}*RAH?eb`, À2) uOV:0uj< >7b:I Sa2"x(`PǪd ;&Op d| 68 `8"@ڀ`bp` `pP Pc0T0 |FR l GA6# 8PVv @B_ABzaH0J#A; [@Ă0?WfԃP"4\rPdȁ @a2z" DHDT*@qa`0JcCc<Ga@@0T"x~`a@1;Rt:,x l Rl"uu*A'b? TS" `|X@S U@"@2Pc2U jA'OqB(N#)À%@0Eà&2@AXyD2OJ ş? #@ ǀD`yH1]@C3Rx0FA+X3P# |@bt@*T >#G2 )@Ab0c)㿃 _(_ʼJ!? S @? `0G Az;2I1j@18P0<(#UJ@ʰd @tt"2")X0#J `8( ˔|0d P (0lAH@ah=/BF`" @#Py@H)Eߎ(aB,81ߩpEƀ cC("?*>>,O`:@0B<>U%`&P>EKN aԩV @ ( PU}@fP1C1P(pv\F:p)$ <@\<>lc2d?@ c•0a@ʀcI0b0:ǀ   qP m @T`EG"aH!<j"|@f  1`#a8)@ tG H°:%HF@1EP  U`À,8!@RjB"b`9|?OA 0)A OF8 ̓"E2`"|!(L @4 gcbpl8t /p`, & _Kð`PzTXZ a@>l<A" aPaBMOJ8 H089 A0]@0~* bU@~Ԏ X")@c!b( 30 : A'P(>>A,<@ c`z PIp|QP1R ?N@!Rn0|/TρT8Ε| @Ȁ~%`e^?ꔏb1x0x1( @X?|\$/Xt 9W0a,HāxHt"xA01d@x1ׄA2 % qG>:|8 c0Rf 2C,G*V":P 2Gǀ @XS7:z 78>b @tzD`|01AKʼ?*U*AP _|^.!xpEE"(:$(S3 |^k;@L1\101cx2:iLf |3T E@jd0<:af<`4 d?zJ`!$HρOA `ʁ |/ Ix9H3€ % % I]l糆`x2 pl tx1c`!|h;p/V@@Ұcԃ@p #<'bWf@>~L|>n@*C c181cH|8X1t|)Pbo JүyX)>@l3JL>!d w0gc f qgk f r ulXgo:k`ǘͬϵk:: tx11k af u00dc@   cXviD0050"ahIe@b0n<`#SL#21AA 9D`ـV0r q#`Z D`(>P>Lb)bS2D;` 20dl  b@'k "+ |xϲ ,@ad@,   ?0 `@d7`:'HYN "P `A A d,(SL +GiX &d.|/è `6AXX d ,8dA)`HYLȂ șA0 pANq@A2&A@D  2 2)d,@L(oA@`vH0; ;k"`0XvXAX }/aSqxx`AYY< 9h8 a@AA3p``S@F0 ؂0>d &B2$06A  )`:eiVA0 " iaYD 20V220|oɉ"@ :A@`#pa3q+e,00+X` `.|1 $/hDYa"2&h_@P;" d(<@4$@DV `4c + `@txC"H$$q" 6+Ai80r^8h206 "2 eV, 3  ӂXdvXaDD AX  (A$ ,8 0 a9Y? ZY &döA`0r 3md@ 0 ,$L "  Ȅ`DxiA ɁDa0j VA@A@@axӈ  F,:BC`  *F &V,a212 |8Êp@kd0d`B ',@Γ 0ld8A``*|o -1," #؀5DAZ  8`AN6e`bVxxO$'eD|/€L`6 '`0j[,P #0 Gpx *aDYk"` d28ށ H`AL Ie:vYDdB`a5 FLL| Vd '`02d@L@0vqȁ  PGL ZȂ A7 |y81X S,0 @1[,#e3ȁZ fDX VhD`YD "   0$ @< ApaA4:'$ " ݆AVA.d;xoXV2ȂX>q ADV"DȀAaZȀ<_>n a]8L0, VD 2 V<@`#t0h0n2!0d@V#Ҁ,v<\` >W\a:fAV L xF4)D2 c >e'vYQPd@d xA\X`v$ā; `ɘL:adIXYF "0l :NeȂӲ `Dlh0 ` xv:`vA+L  "  `dBtk xA2! /G@`Ad a; kȁ $$$" ,Ҙ0h . 'd@a?k ȁZ DY``NȐ$&d@eV ,Ȃ ȁ@|H> (i`V(0p ,>i@AQ8 S'L  '`+A`Ֆp|h¶a20}HN؂ ȁZ8 "X#,@P'B + 0 5`J`0 `ѐ|р.&A8+A 4$< |EA L;,,dea@ApV 4T7Lq!3 VEA`݀`AxMo *d+@ V  ,0t2AZdt`3 l@AfA æfA0\u0>|f&Tv:e; dA@؂ "<+A`ld  "#ɀ,tɄiNt? 7`>caȐ`t+F2 xO6 Ama` Yd  `2V22 d`_ x+'&h lA %@k" " .> `6 *d DaDA 'YRq0t;`@N;N42&`V">ueV(X0l d$@fAZ + 2 qS )V#DYd ,b ">4iZ 0) m`axA2Ȓ &`a; }0lEd:L R zK , L6 a3 2Ȃ0l 6 D`De@k"AFXb0,lR|_.ȁ@d` t, Px` &2&S  0n "'a (V5DX+dc<<l9d`e0l V @AXYe< Vd 0  Ș`0DpbAeA?7Ā,|V 2`șa`-St04 "b9DD`qC,0 0rȀ ɇL0R 2Y`0h `>W``+YA#q>7 AL  Z>_0WL@F ,>OBbɄ3F "Dh7+`- pL,5-`x4: ea0<`eV@D 26A  Yad`Ȁ,eZ PȀ Ypec `H,L0+A Y`0 > X:eL ,2 bXL,&0+AafA Ȁx0Xii  0j ">dau<:L 2  qH+Vq À-S@t D2!E-xi "kD "L  ?`5Dx@L @2  7MvAV@paL  #ȁ,"`Kp|X`@aa8 :AvX  €-, &L  d@PA*b`V D@^ X h "eAZ Vp `;AZ d@a|H@@Abd@ӀV&À.?eN:N Ђ0r `Ad&V+P|/ƬđH+` 0 GiYax`20xX! &̲&ATpx/S"<P 2!@F (:&`H+A,AdAd5+e3 ӈ`$@0,"dV#d  m2pxxX|/XA@V"a:papa"+`&x>  Eh>AeVĐx` A'Lk A0V AL2 h<0<8`VvDd`pdL 0Xdṽ@: 2 `ِV"" 0i`v:DeZ+D6 "  s2 `,'N4dAa`@݀t ,0+`0 " h2! Z Xd/`0X̃S%0LtЂ Ĕö@h20V#adb>$bD%o2 lh0% *Dá8``S'l7D`, T$0pd`h6 ""N ;Pd`( A? 'N:ca"K'1@eV"0r>擉JpxXL,a; 2,0+D ,0f+2 T<q3#0`V &X`A|O2fS0 P V&eV)e`+YD`A€,,@ D``*Px|`t>_$4 # Px Bv AX `A42 `H #e:  7p|/YD0p 0+x` DDف$DX @`D 'L`dB0r 0 F  `DAŀ,bt;" d3 P x?rLpe A@V"Axā82!db "(>G̰r ` WfN ;eDP(!d`[qB0n&Ȃ  ÖX a@V Dƀ,p`00 `,`h++<D> 9edl0`@AX _`=Na+X?` €.dL0 0t A`d@0Z" l2 2YN 2 VĄ@2!0@xж:P t +AȀ,@mlf  A@V#d A?e4X>O=dt20aEN < xZ |Sbau + axZ\#`@XN "2 tx(@e0 aӓ , ><a>t$"d@Ñ021V"+AD <74| Ā6xhDAdV "`bAā Ad@?"ɀ,n$ӁdA b0Ȃ xa0x(@ ÐemA 0<'`+`΀,F~,"C,0+X2 +q*Lf "`e" `d`a X2 a9>8 l,AZ S0+X,Q0ЂI`0v  ebAh P , 0@AX "X)@P,X2 `9F`xv:N D aÈ,2+X`'q,-&@20V0 00Ze8  p`/pIXa48<``d+?d6|A,D "0l,#dA AG`i8 ,4F a  E &S0h 7q lDS0aDЀ *=1dAa80h "#D}q A`8A. 0eDxZ AdE`+?dv 9L  0``@xX>WgA2H i41[ De9d@AAA2 06`8ui@ 0<4€,6(dA S2@`4@aLV0)dAd@XFXXaa`ba@5A,"h>a9P0 0 #PV2 +: + h0r50$Y)e8c 0X.<@ed` ̰  >GvL @|( KL$2:` X0 [P  E*`|h0Ȃ20`@d>A v,X "0h PatD`@ Q @a%V0>o0Zm` Ȁ 1eV"2 a3p|A [fY Q6-m>(NȀ V:A șX d@aa6ŀ,4aȐqAh0r 8A*:a;ր-`a,t,{b+X>k #Dx|ʰp`Aŀ-pdB0l @4B+><eV0 1Ȃ  1P20aD1[ "+2 `0A8;*d@`Cp|   4jV#ŀ-t̰ n'AAa# ayfA "c lb`SȄxĐd@ <$0X("#A'`0 D `" |@eZ+Ax" (>,ieDx>O0:SS 0l`  hv+a`00hX+ƀ,XAe|xL21́+d0`ȄaDA(,rDVi`Cu2.` YD 2 |,0pV"2!q8AB D X+aȁ@`0(eV S # ȁZ +|fذt"K, 6A AA Pa+"AXH+@< >GS@YV!8 Ȃd26't pxh `NAA14 @( V0n"26A@`32 };,'jf(W  2&,-@ЂY$ظI2 0+h+Z T P L;L-b }1e0 " ltv8 +A`6>W6 P & >vd Ȁl>`/r9Z  d5`d@qfDA AZ t&|x hmp p|`0p ? Pt  @HdD` `db"@0j0n>)0AivXk <- fp(L}?ci0DEf /> 8*`5F "@Ht "a` p pAI@x,,7d  ҏiCA$AXƀ-a Dd9eaba`''aa,@F>$cD؀ 0`ADV,>\j +h+Xdș,xҠÑ2vF +v )aZ> ȘH̦eA Ȁ TX+A At+AZ ALcRL,D (`AD "X0 PE Y d ,`d@ x `7` > qc Y  q;1f]N:@3'dpYd2db+A Q820xsÔ"60j  >goaՑ >NB#2 >gb(>wA;E"ƀ,~&xAh-@>Ta|EA>D| >df&AaV2 "0 ȁZ @ǂKBX 3qL K q(2 `+vA? dX6D >wi m+AXZ 0 ``}(dEFY@j hpa t` q@0Y _#d0r ">ld00 $#a0><i@@ R>G`-p`>Êv<Ȁ2&DV"H 21S0j2 x`LL2 dB<\`a@dAd+q`H>BtN@L 2@h+Z # d>? p 6iq0r>dc!Yx*Z  F t:N Z}`SB`av!eCz`?P!A-LŠ-v ĩ0o,N9ap AO!%8 %`:-0>Ga@cb& 0 E0 &Z )a AP|hŬ0 BYLv \l PA`>t wk0>rUǀ.+M`4(,1*|/|?С% p` t̍ nfA R,hL L0+b">4r  2  R-J`f Ðx/0 hAe8 |_큦A`4 d`Ȅ`4Ȁ] A`@dA -q%XN dDF$H<$?A?h>\m|Xʈ 1@dAN Z 0 _ }_d6` >cpq`A`4-c|HU@ @08*ATt ^0-6,CZ9k &d2u1T;`Cp@ (Tl`1 Y2"`eKpL,?>UA %[)ۆ~h0 U(i5%l |0ȁKbȀ 0D|20[G@9+ /XD`gA 6 8EC &b,ONSÀ- `R ~J 00[YR x?a9 4XՔL "NȀ 0m/OK z02&Yh>elJ^tDa6cl,teVQ# 5 ֜ݰ`0 $t__+``S *`|Ol%`_Ao`~$|*bp ʘtUaȶƀ,9"*ɖ><t֘0YTak`|/0XX W00Z@0a] o,ʀH,lx 3 0d.ME: d9`bӰ```A  k J~]Wɀm&#@kz q80A'd¬`-@,ȁ )HlADXb\HS4a4,V>A恂neV@ (>gy("ZSӧ_#h1xnA `yϰ`0X]Ҁ6A IjM@m fp`'>u@1Gl@-Tc $@`  @}>dn,5ݤ%ZX>E}P>@}OHjon_P`ԃ#D |O\N2$,N9Q |,P9rۈI !i*SNȀ (<`,k]0|/e<`Zf`bb+ZҀ?ˀ-@a+x,%Ŗ `+A ( 5AFA Ҁ-6 x À,d >+ ?@[F  ~xӭ: ` \E` D),ܠ>?j0X><e,Zp;ȓL&b+Z^P>lĀ-0|c vP,#h>Lk"?\7`#s>j"2>RX  /RTDHKQ xd@?X0lh-;0|?xށX?/wڅ2 "@Y`aaD}O, ȁ dv "_t  d` Z`0\0r$ >e~0X+A 7NA  u@d@>G nAL@@:)y?#,xTj{0X0ZP` "4݃g:&Y0}!À-|8q00dcvYckÃ@-X>\o cހ/!zZ+P catq*FP<`%J !_` >)P}(Ҡ  BH x~ |X!m`| .1 #P`2Nf?7.}!P0 q0f  >`P<`)5A ?>2H`Ax` `b A% Bq00dcYx>`@H>bX=&@0X>ꋕkBvCP|0` `?o0?` tx>p?@[%lrt<Py'$|AÀoL8 S aK&` [R @|A%l (  0V<|_ z%AƀMd Kp@*T=A`ŀk-ΙxOA\Ѐ X>4`|/ ?@``Df` a@ P(_>?O2X?d?}}lKP~k`ol#]+PxA[7}u46|/Z|8o7 }AN>d|/@(G%@&$&H(A7΀\ 0xXĠP@>lX! `h_ `%ð}AU>D˸_$Q`0x$ bGAA_ep |xp|_ ڜڈ0(A(xA҃0|RX>bPJ\  @a0H l+_PX>j_*x `|xA+ `3}| ||?S ~<<# @h*a( P`4\ `h%a08%  0F$o00dcZ_X>Lm?X>hX0X>w?#cĀG`_kǀ-|? {Z0>P.z ݡ0V #@bp_00dc3[X8 yA) 6}(?WP |O G|8c X>Ompc0|[tXX~`Px_`@>j h@R |c??P|R5A<$9& X x<`0*x0B 0x tD<` :Lx`S@Fq?i H`x % 0 7hI8x02ŀ> {XFUq  J$ @x @>$ _ 00dc[\x>m 0X> m__@0@ !`[>4,*}ol??`P  o,'~X<o׀-~0|{<`@>LvzoA ``p'X? m` I=D _6͌c}AcĀ'oޅ>o*^O>j.>T[`_@X>*`[+0#}A?>k0<'"[/l|W΀,t;/\`p(>~WH>W?Z52. ߇*<`>H0}(҉<(2@$@">l`8p|_A` h0i|P| 0fr  t2x3``&|OnqQɁ>4 [00dc\Rx ò%r|`\Jf? } р? |wc΀-~`\>yS<;x?Gm`|>`_|X>lz0π=| |`Ph2`yMx? Z` J#H x>-`q$}O/0|S?I4|AP` #A0 ?p2 ||)PxH  D a> plGX-L>ne]xO?|OЊ|޿ 0|qIp0|/>b00dc\Ϝ`0@}(Aʀ&kx<KH1yAS@}Um `@k>O?Fh>0}Ao7kĀ'-H>|  |m`M_LK`"kx 42<,Pg#A՗P(@ }^MjVj`0#@ \ |HG\H1ra1|X[)p `P >J1$ʀ5*c0|1 06 `v0|oJ1?`W<?|=G =o</k`@p균_`p)]ൌSk|70IBł oN3À?>,`_@*>'P@$h>@鷃@<`@`|D<$0e p @x0!0|<?`0@&@#><6 +|hA|`-40|0* ` <5(|Hր< ƀ5s ?`< Af>p T2r0@p_[>7ozU+P|QT|^700dc];| `[<'0|o>!x?j` ɀ/N<~2>'T @ ;ZD?t3|LA`@\ #xXFfG@$0|OĢ`:^  `(>pP  >k |Ӄ@2p  @p`xP>` !$2e7A?π,3\@_|X`hIx>W6@p x(AOr|A 00dcH^FAN  "|x;H PU ## :y(ǀz%*ATx A  nA _PCq!`SS, `2<`#X < ĀmP0>VC6`0Pb?6n\"pxHUd0SpaX0V~#Z:<@ bP>$c: =V SX14$ @GJ!!ph"X%87AqqX0><H!~K0y R Gy0XP2Qd`?,n"j0x%TAB`3B灌@txv>R:@@`>$@mPt uP0(0R *t'p2=DX:pa B  8)J` qP@@< T A`xT>``0?Ua8v rGHڰdJ*L@ @|8$LXH # 4= x H'`RXW*pz a>`l @b <Ǖ?pd@TXgpd@P$Ԁ'p(XSxx@3ʡ~X:a|/S"}? Pa6X0ST"*O0<0,*b}?p ,Wq!À"TB<`X124p<'#pC $07``0?T JXG pc?` oSX<ȁ O6 R " p}80X7UJ Px0X>$Д Px ?4>~ >Lꄱ0lp (*T X0#uC~ǀ0J tx 3 'pd:?88PX0Z|> t*0R|?,H"nH(A@xAU*/yX0ǣ. "@0Bn~t Qz ʵ`PF |O<|_#K<0R R *-;4T`S` Ղ0p~;@. P:ŀG; L:~z?T A? T?,/JU*-X>c|iC()%Ǡ@ހ-R 2)FFȀ<| 8D,xx*DX`.0& ^)> 2@>/(0t 'WA8\#t<# +PA ":4 ST@|@#@ 4O0`0 y_<-8(1O T`V,*|* 8!>_`p`02@x%CzX>`2 `aScPP*lp;6 Ճ@ NDPdS*^PX0 CZx  Pn Px0)<`?X<paP)Ճ*SA` P @ln|/4 x`dxxj R V|oG8GCAX a R#V?L< &S@@28 ~%|(NJAT @x>Tc50`p,A`  0FՂHpB`JAR<@ QP #A B)" spa,|? x  -Jɀ,.>nxx H2nx~X?  aP1h<<`*GpXRa L>/ a0Xǀl|?tz"2XP0)0>tGP #b)Z(!A/D#u@H0  ȁx`@p8 "J:x*dJ8dd A 0  `.=߀-=R(t `y x@<c|H38>SP@l  0 P`'p|/t `0?`-P| P`,7NA`RJɁyOD??>oE7?T | 8`>t`Xx@l'q?t#!X0 }L @`0?<<`;,~E+7U~ @R}a!@8 +>8qX)8>~ 8>48X2A,&@S~|X%T NA "`@>À,Չ@lxG21>DX04Uın( xy ƀ-P(AJD=4J?LLx(>  0aX*$bf x@ 0 (T }&@`Axy? U@9X2@| FLz_pxL }O` €$G.`08,tTKpx|O Z`C x :5!t~ a3tBǪ A)pR}ڠ6 x_ X2ynJ7<pxP`n>o B)AP 4T pS!! @QPTCBP ucJUDQAANS`mX!x ?, pqH)A@ X>ꕩ6:"Ճ:Ҡ`Rp|/)|G؀,GyX>Tj?<\  @|B( 2EyO>o8:1ĸ0?,` "d -|p|8<w8%X!tWcq>_pR,pd `}8A B<`T@0n 0:`=JxÀ t p xx1*iJT qBp)TUR}jx=,  nPU@ Pgca  #(0<_@I?@@  x0 H  #) h7`.:&x` 0]\x0;b7`:$ k:U6`0>(dqX|C%@* P|8xGRBAǀ,|  |ǠJV`wH `Cˀ,#j0aҰ8%1p |Hš Tx~XDuP4a c:X>P \BL~P*@t@00 m15rP>u|(^LX>`P|_Px `R<`TX>D`@pc Se@@)Pf#?wnj D(UJԪ*)@!?J7-.N+A_# u@`Ht |K. 0)#P`OJ T>\c:ov|O0|/oU0|R>7`0|ڀc_F> `p8Wc X R` C0|_UPp` ۷|PWA  |p|?(4>b6ՈP1@ |p)! ŀ_)1>ƒj  *|(w|h(6 X1, V (΀V ,CTx C`ժV:R>LM!B2c@H(>'_U@X=R'qu@l A@0b8!]8/: |@)l8D@w c0|?c P`P` u#9ɐCT P0%R@ MaL(3o )`70LB0 X0do\1 5@l|(u|H0 0 iAP }[`L`[: >'_Ds0dKj- C)P>p -`lV(J`V0 3$?00dc8   cXviD0050( 0! A k (dHa+G 0DxOA0 <0Z 2 exOA``@F P$6DXZ0-h>TfɄVDKq*xoY A*`U 0šA[ dEaZ @d"*A `4D "D*X D`@?V0 dEɀ,Eɀ,΃ XQ!"ș A ~>d@` xa p(A@#ĜŶ~20xPVXoT "$ Yh 0l Z+`b`0j4 D&<@>[D Y_HhH,̲Ȁ0n| @D Z "!@dD`8A"dA.>* aU 0 ">'0l+X`'X0,a|_6$2! `_h0r>Yd2?`~Z6@Fh2 `P `tIe`Dp*Z +48 ? dAp`AeDV"` 2 @8| D+,d 0V `V d~ V =1 `~Ac,a+Xb`aA`+p,c h+X@d@? ~ G,Q A9€," 0 @* "0 " c |$$  0nc p(Yd~ IdA`9PAq:L ȁ? ` LA0h  B (6`A`>wȆ  P~ H)2 |2 `~>A  $iD x ,G X +AX]Yd@`AݖA@|oΰ?b ȁ*u= I |xψCd!a|  7e|tƣUDU Vd4`+AP|($$|$  <$0n  "`V"`` I L#d@+AV<7h0r2 |8 , _򏁑`V A d@KWL6~Ȅ$0Ȁ `@Yh+VD^`IeT `tbV #,) 0p "@X@`Cp|р.&`~ |ωP8`0>A 2 V$0+XA`7X7>`p20x`݀`Zb!7V>T+XT"0% V >dH`VDV "ǀ,*P@c F  LLT`L48dcX"d >g dD f 8>g>  Y4GdV @*  dcd`l~> AVȒGx?r>`A`H`?X` VȀ26A cP |- 0 BC 0 X @*#UAF2!*d+p`v Z`F>#?AX dc| U l>` XDA?e`A ?| 9`EDȂ #e`A B>d<\`@<  d@d@h+YX  ˲(2 a0XTh<<<G d`Àdb+A?Xe0>DeA, 2 `/Lx7! x(AV 20dl A` A`~ 8B "9Ta'q@0+Z>CXT>4j >6Yb| aEAZ 2 @*X0DJ `V x/D>G 0,0 x|t`@8<`) XZȃ0r;C*@d @cS0 w#V%?BP[x " x t@42 e<h+D`AdDF |HDXdZ @Z`+X>b U " `x*`0 l2Pdb  xoAX "`9A?`+Aa7d|--9s  CF>0 `~$2>20r "2 0k ">S P x|d6V>T 4, >hDad@ȁ7`V,@ h>cŦ]0+Uȁ1 P21 "#X xB XX<$ V`ш(DXP2&P` @ȁEF>D`VT |lX0 UaaD `ā<78`0p d@_֘X 00X* B 2i `>ID`+Da`р|H""*X<4(20Vȁ?P`MQ|2 aOv` ?d q H _P"`PA V Ȁ dBdL + #h0 o +H>OL9|IdHdAF V ˀ, ?`>@B*++, h ,̈"@Ȃ>A`d`? Vҁ-u`+G2 xZ>Lc%(AV?  A6,@,Ad   BAT?T d@>tz] op*0?GK ,dAY|+V?eV* 9`A ,@"@AHT~ 8/ЪP,#P+A X`@A@}ġH `U y:$V #,2Ȁ |4l?`2&XA@`3p|(Ō0 a 0 <$(+A  ` K(YYd9P`6 th1l,P Y V XdAD>oxt@U@ |x`(GX>`?V 8a7 AP|_H ȇ̲ , X?P26 "`,cld@Day(jc%  Æd-#LB X0 @hdHdb@@aD?@`2 `V 0~?`~ ~ xX@Ā-pP0 ?`|AX 2!8`Ee`-22 "2d|0 VXh>w@`~ x?G̰+D`4j?At | " 0k0+ IDU  _0`S `*# @k @x`@΀-Ud`p`40 0YAZ>k,_@0XZi9 |0l ~PzV?"C"K"H21xA2/2?P  Q<$X0+A>`@dpP<770U0>AV0l "d6A DH@?X20U0+V "dE ?(?Dx >e0l  >G⌲><q3H>| @h0p>'|?0>0 @:2&X>A?e~  xhAZ"eaA #8O!#PVc*ApV"h26:# eAX 0  |h@"D "h }?&K, x(XA,", Adp 8dL2 "> P|_b@`V220`'   dAX*"8B'A  +A-]2ÆDd`(026Ya`cs사CB U,,D9 P| Ȑ?Y5B@ `V20V !$C` P|Ơ0 Xp &p 220UP*X 2 0 D "2 "Da2! 26V|dƬ +Z :A F \@`8DȂ2 dl_GȀ 0 Fn`DA +#V2  |o`P0Ȁ ? 2+D xhX\Lc `8`郀8~ 1@xAXh xP|O/d| "-X? 6X>{,bbDU `d&>aX.a$B0 x/G 'p|"@~! ȇ 20aa'pT  a0l2 @c 2 hblE&}H0 d~ AX `r Q0r .e` ŀ,0dlE,;q`PD0+Y,4"0Z*?N0h 7q `;" aDB>tcc@Ȃ xHA?FX[dH`0p "D`CeDxaaP"  -1*DV"  db0 @$2fd6 "KH<$ |>dapȂ d4A (@Y p(Z >l@d|><Kpa&d`p(D+YX<$"x 0"   Dx 4bq XdPV  "pV0Yi~* * y/?\B@aDXSP2  >h*4 8`0l +X A?L0r P$( \I`AeX 1dEZ\{6AF]2 0M _ 8exOA]`V"A` `2 x`|X DAP`N`'r#`Z@Lj2,? 4A00 DU#r,"r?,2 X 0 &.,0X+xVAP|cV$,2X  h+AZ .BXdC2 h0p dB#p`b?Ð`V'px_A#xoApa*Z @Ak+A``0a*0$" A EL`V@`>dr#A@0A,Ws}(ع&D&X ^ h1[ ȁ`9`9dD GEdAd0h264`"VT+Xx2!Ȁ7@+X""Ā.@c8G _0n0AX  + P ݖA P>Y,>h*`20V,8.`pH~ Ȃ pX 00XIxHXAZ h~$@ǀ,F!0 mk x $ +A9A : Y&AZ d&|x*XX>W嵠 .`@d#p|`0p  @  0p #`6|x.!aJ|,2 2> Y #1 4,`&0x20}ĩ&Qhx N -> 8c  ">lVV Pć3!Yd@` E`݀|/?M @ap*xhD"U0Y@`@c" 2  "Pa`V0 8`G@X0j "+P|D'p|1<`VAZ x܀0~ |?`H`E`> 0a|?"cQ Bd|,Y `0+,E݈l @h+AZ @* 0n x 0 ' 2 DAF+AZ HD`` }>e`Nl@0?`Q0Xp> 8` @ ?X`@ds VpY@*><_qfU| R1;P B?`|a0n 1agP-01Ȇ;e:A e ddE  4 ̃0X"EӀ, B XF>g=+X ax X|$ +XȁZ x? Ȅ} lB " :  >aV# 079π,i0?L 9DH5`: F " `V  @YP,`0lP1+a ~(+G+AX'[ _ !~ãDX̀-1A$| `>D0ZwV *@|hD d,āVl V@j1 L$|XcaA P>gAT$ȇ#adBXLȂ?h>3A`1b H+V |͖PAad@?Z `'zAX] _[0Z`6 \ r3~ e  0JA IJ"5a|G2j(0Y$?aVD|hټ@a ~\0[_>`@T ?,X0~* T  d@ƀ-AV dAa%AV d "0ad5|(؀  c,(XN[.P&~#Xa@`|8M[|( < $2ȓpRx0Ix2 |;>LD0>eDA00Z>' bjŠ>4avXP dPpZc$;,<-x1=HK~:h8f29 7TM5ߥ `uU8Z\ԃI Xpjbpa΂-ZbyvATYa ^ˁP| @0X3,@Nk d˯ $^ 3 0eĆ@m 6` C)``H>d`,?-A$3|x:v<P8;:gÐ`@2դ\&hV1\b?L/fA Z\/-`1j \R&eC ۂ66 9/̘Z\7`a! 0r ```e&8K-`ck]2Se106]cND(0Zh,&70nݑ%:X| |Y l!;kH8V<Wrx ?*md-T * ?h H- b |/DX+   ɶcFeVR`5_1P&˧: (0[,ME 20X*k€-8D,7 + b_2: $I 1Dр,, =@"̀-5j%.W `~B`Ȁ-_K>H0Z۔ߡp`au(2 |O>o^0>G.AʼsHI|e%6M3#AdE؀-P|H rYU`_`JF0|€.@0XVݧY0@*m0Xw:20jp 2+AFA Ҁ-6ŀ-x`À,` >RY6؀20|r5 >Lk>Le` RL,$Z bs>j; 0|J,DߔP>l"l @ T% 9#h>Lt Av?P6р-D 5`,+ Wd@46"ݐx`0Zw43vd`APd@@~8͗,0Ȃb N,0 0[0xd.|(-X|>t U@`8߀-}P`Z -NAŁ  s` >-$ Ȁ-:`op|@` ݨ[0X0[ (0p\ ?`<ޓߴ"`300dcP8?d0|X 0|om`0o`@>Om`0߷@ ?@?ZP*.!K x.|zF1 #Pxo >d|HA>,!ݯ鴐0_4 (@0 KavCP` l0=?0N3ÂG}HgbX?4ݪ>,|A 3"@ |؂`plV0b|2F"   `_w00dcQ\|N ` 8>Om`ﱬ=lV}h%&~ Ax=tp?=LP|?c@'8>lzx?``D>c|  SX~N%81[ł0?,'?Dl+X?L@?``Tp7)!# P(zHE,c|_J:(0턁 w[T A 2txՏ:" py8X0H8T V 80(Б?1A 4%*Z0( 0 @ `  xZ`2P|/1|XA?F > x1:AeJ*AÀ-00dc1Qx|_@l40~X>X>v~[絃?_|XO`hT|?H+J<|8< 6 *V=P|Jؔ@>O`0&v$>? P CRaZ|_Kā0J*@ ?J8 =4H>, ^X@J, x<@t ?6h<(@0Af(oP@xѠ> T>$ ޿c@`4K,806 BK@¬5@%J *6jA|0\CD =00dcR3X0l6|m@[0)>(0G,J΀4Ġa`Ġ p > X@€4K0>O``!h0(UA`zU2%Xh p(@#T  `$Gd @|/A F p x>p0!@^% @@A?=$@   0H@Մ!>7c  !%X|XǪ : c|B>|00>_`p.00dcRp|/?,#ur}P|OVWs{xv0z?`l|x>@@W'p|/o/cx>[݀-lvz/?|xZ?\u~~op|/ ,{p}?Lp|`0`_k`J(COt4B QP }A,;q,2|` kwMhPh?M0g€1:0R@@00)`|A "@ I >,`K !, w@aH~ ʛFқ,84C  |A $#B xOL(,2ux-n>T`PP00dcS ՠ|x,}l{x,`_u%p`S! 46`x P0Apn0 AP|?` x0)>DPf>a *eÅ<@a0p ~,"|P|/\0>x "B0 "|_a>/ Ā|X>(@|A>,!x>'B@P P   }t|JFPPx<߂D2fAH0d i0|Oݟ00dcS pxA cP|`? ;̀4 :<#P|hoξh0Wtx>SJ}O `x>u~O@p` 4^?/k`1x>G`px>P}x}7 p~kp"-3xT}Goz>0)AB@z\|=[ͼ{:_i_@0@`0`>uk2U >`>l@<0N$t%@ |Om`0a6@xHAyA pj}pA_5 x?_(|ĀxbH>"@<P*?P|Xݯmi|"@ B0T? @@$@0{LF`x? :?N@ h> 0 `4ypXKPx>?`~%>@|gPa>Lt|80xC/$iO1x5Ip =?`0)|Z:BN(ɃJ]A|?D,0|o?00dcHT|HZP|_Yp}Z?c/@>,j[?7_#@ztJ׀,B}A`M`0@>'P>/l">4sp|۠|wlv8> @"? w 5 |(ЀEؾ# >0@ 07A-ܚm)À,Cp|`̀4Bn>/xCʀD &߂ 6 J ?>_\ZP>K/g8=Ruk`0 !h0n[?8>/` ` 0T'F&%2`(ŀ,)N)z<*@woA07A>q> mt@<`p{v/׺{00dcVT8Jl%P|A_0X>4nTm"X6`|H? |O0bop!0C`0>/:$@&  0`|Hڷj`:@ > <@pE$mĀ=4N??S H0d \ @0|D$>400|X   p|(@`P< ?j`0 ĕ  P|?\)00dcU\`_@[ŀ76}|X>t`pit?5 / H?$<>/k(0h!@x>'   E0nB >?`$x H  *|҇ R ?x>$?zyt0 m|_@a `Ġ@>@ڣ(:X<aK! A %UBy0x `X> "` H8< `Ām`ǁ M0f̃E@>7.b0P|p@!*ǞĀ,H @ @ cidx100dcJ<00dcV<00dc >{00dc?00dc2A00dc6C00dcEK00dcVG00dcVIF00dcL00dclP00dc>R200dcd-00dc>00dc*00dc"00dcF00dc00dcμ00dc|00dcn00dc,00dc00dcK00dc M00dcc]00dcndl00dce00dchp00dcxi00dcvk00dc00dc[00dc00dc00dc[00dc800dc,000dcN00dcP00dcQ00dcS00dcU00dcnW00dcYX00dc^\600dc^F00dc`00dcc00dc}100dcޮ00dc00dcƲ00dc00dcZ00dcT 00dch00dc00dc 00dc00dcp600dcq700dc(&00dcV00dcr00dcZ 00dcn00dc: O00dc"'00dc$00dc'>00dc * 00dc -00dcL500dc΂00dc\00dcQ00dcP00dcS00dcn00dc^J00dcc00dcL00dcp00dc"00dc100dc00dcr00dc$00dc00dcQ00dc00dc00dc:00dc00dc$X00dc-*00dc1200dcd00dcfQ00dch 00dcjr00dctm00dcoS00dcq00dcpt00dc0x00dc&{j00dc}00dch :00dc~00dcD00dc00dc00dc00dcU00dc&00dc@00dc00dc00dc00dc900dc6800dc*:00dc;00dc>00dcr@00dcB00dcD00dcxF00dcnJ00dc\M00dcxO00dch300dcN00dc00dc"00dc00dc|00dcr00dcj200dc00dc600dcд00dcx00dc"}:00dcG00dc m00dcn 00dcTQ00dc00dc00dc00dc00dcv'00dc 00dcX"/00dcfQ@<00dcw00dc..00dcd|00dc00dcd00dc$00dc<00dcƜt00dcB00dc00dc*00dc@<00dc*K00dc~00dc$00dc00dc00dc00dc00dc00dcB00dc"00dc 00dc!H00dci,00dcl00dcn00dcp\00dcr00dcu00dcvW00dcL{00dcP}<00dc~00dc00dc@00dcv00dc&00dc2{00dc00dc300dc00dc00dc00dc00dc00dcfH00dc 800dchE 00dcG 00dcI 100dcVK 00dc Number: """ Count flops for matmul. """ # Inputs should be a list of length 2. # Inputs contains the shapes of two matrices. input_shapes = [get_shape(v) for v in inputs] assert len(input_shapes) == 2, input_shapes assert input_shapes[0][-1] == input_shapes[1][-2], input_shapes flop = prod(input_shapes[0]) * input_shapes[-1][-1] return flop def addmm_flop(inputs: List[Any], outputs: List[Any]) -> Number: """ Count flops for fully connected layers. """ # Count flop for nn.Linear # inputs is a list of length 3. input_shapes = [get_shape(v) for v in inputs[1:3]] # input_shapes[0]: [batch size, input feature dimension] # input_shapes[1]: [batch size, output feature dimension] assert len(input_shapes[0]) == 2, input_shapes[0] assert len(input_shapes[1]) == 2, input_shapes[1] batch_size, input_dim = input_shapes[0] output_dim = input_shapes[1][1] flops = batch_size * input_dim * output_dim return flops def bmm_flop(inputs: List[Any], outputs: List[Any]) -> Number: """ Count flops for the bmm operation. """ # Inputs should be a list of length 2. # Inputs contains the shapes of two tensor. assert len(inputs) == 2, len(inputs) input_shapes = [get_shape(v) for v in inputs] n, c, t = input_shapes[0] d = input_shapes[-1][-1] flop = n * c * t * d return flop def conv_flop_count( x_shape: List[int], w_shape: List[int], out_shape: List[int], transposed: bool = False, ) -> Number: """ Count flops for convolution. Note only multiplication is counted. Computation for addition and bias is ignored. Flops for a transposed convolution are calculated as flops = (x_shape[2:] * prod(w_shape) * batch_size). Args: x_shape (list(int)): The input shape before convolution. w_shape (list(int)): The filter shape. out_shape (list(int)): The output shape after convolution. transposed (bool): is the convolution transposed Returns: int: the number of flops """ batch_size = x_shape[0] conv_shape = (x_shape if transposed else out_shape)[2:] flop = batch_size * prod(w_shape) * prod(conv_shape) return flop def conv_flop(inputs: List[Any], outputs: List[Any]): """ Count flops for convolution. """ x, w = inputs[:2] x_shape, w_shape, out_shape = (get_shape(x), get_shape(w), get_shape(outputs[0])) transposed = inputs[6] return conv_flop_count(x_shape, w_shape, out_shape, transposed=transposed) def quant_conv_flop(inputs: List[Any], outputs: List[Any]): """ Count flops for quantized convolution. """ x, w = inputs[:2] x_shape, w_shape, out_shape = (get_shape(x), get_shape(w), get_shape(outputs[0])) return conv_flop_count(x_shape, w_shape, out_shape, transposed=False) def transpose_shape(shape): return [shape[1], shape[0]] + list(shape[2:]) def conv_backward_flop(inputs: List[Any], outputs: List[Any]): grad_out_shape, x_shape, w_shape = [get_shape(i) for i in inputs[:3]] output_mask = inputs[-1] fwd_transposed = inputs[7] flop_count = 0 if output_mask[0]: grad_input_shape = get_shape(outputs[0]) flop_count += conv_flop_count(grad_out_shape, w_shape, grad_input_shape, not fwd_transposed) if output_mask[1]: grad_weight_shape = get_shape(outputs[1]) flop_count += conv_flop_count(transpose_shape(x_shape), grad_out_shape, grad_weight_shape, fwd_transposed) return flop_count def scaled_dot_product_flash_attention_flop(inputs: List[Any], outputs: List[Any]): # FIXME: this needs to count the flops of this kernel # https://github.com/pytorch/pytorch/blob/207b06d099def9d9476176a1842e88636c1f714f/aten/src/ATen/native/cpu/FlashAttentionKernel.cpp#L52-L267 return 0 flop_mapping = { aten.mm: matmul_flop, aten.matmul: matmul_flop, aten.addmm: addmm_flop, aten.bmm: bmm_flop, aten.convolution: conv_flop, aten._convolution: conv_flop, aten.convolution_backward: conv_backward_flop, quantized.conv2d: quant_conv_flop, quantized.conv2d_relu: quant_conv_flop, aten._scaled_dot_product_flash_attention: scaled_dot_product_flash_attention_flop, } unmapped_ops = set() def normalize_tuple(x): if not isinstance(x, tuple): return (x,) return x class FlopCounterMode(TorchDispatchMode): def __init__(self, model=None): self.flop_counts = defaultdict(lambda: defaultdict(int)) self.parents = ["Global"] # global mod if model is not None: for name, module in dict(model.named_children()).items(): module.register_forward_pre_hook(self.enter_module(name)) module.register_forward_hook(self.exit_module(name)) def enter_module(self, name): def f(module, inputs): self.parents.append(name) inputs = normalize_tuple(inputs) out = self.create_backwards_pop(name)(*inputs) return out return f def exit_module(self, name): def f(module, inputs, outputs): assert self.parents[-1] == name self.parents.pop() outputs = normalize_tuple(outputs) return self.create_backwards_push(name)(*outputs) return f def create_backwards_push(self, name): class PushState(torch.autograd.Function): @staticmethod def forward(ctx, *args): args = tree_map(lambda x: x.clone() if isinstance(x, torch.Tensor) else x, args) if len(args) == 1: return args[0] return args @staticmethod def backward(ctx, *grad_outs): self.parents.append(name) return grad_outs return PushState.apply def create_backwards_pop(self, name): class PopState(torch.autograd.Function): @staticmethod def forward(ctx, *args): args = tree_map(lambda x: x.clone() if isinstance(x, torch.Tensor) else x, args) if len(args) == 1: return args[0] return args @staticmethod def backward(ctx, *grad_outs): assert self.parents[-1] == name self.parents.pop() return grad_outs return PopState.apply def __enter__(self): self.flop_counts.clear() super().__enter__() def __exit__(self, *args): # print(f"Total: {sum(self.flop_counts['Global'].values()) / 1e9} GFLOPS") # for mod in self.flop_counts.keys(): # print(f"Module: ", mod) # for k, v in self.flop_counts[mod].items(): # print(f"{k}: {v / 1e9} GFLOPS") # print() super().__exit__(*args) def __torch_dispatch__(self, func, types, args=(), kwargs=None): kwargs = kwargs if kwargs else {} out = func(*args, **kwargs) func_packet = func._overloadpacket if func_packet in flop_mapping: flop_count = flop_mapping[func_packet](args, normalize_tuple(out)) for par in self.parents: self.flop_counts[par][func_packet] += flop_count else: unmapped_ops.add(func_packet) return out def get_flops(self): return sum(self.flop_counts["Global"].values()) / 1e9 def get_dims(module_name, height, width): # detection models have curated input sizes if module_name == "detection": # we can feed a batch of 1 for detection model instead of a list of 1 image dims = (3, height, width) elif module_name == "video": # hard-coding the time dimension to size 16 dims = (1, 16, 3, height, width) else: dims = (1, 3, height, width) return dims def get_ops(model: torch.nn.Module, weight: Weights, height=512, width=512): module_name = model.__module__.split(".")[-2] dims = get_dims(module_name=module_name, height=height, width=width) input_tensor = torch.randn(dims) # try: preprocess = weight.transforms() if module_name == "optical_flow": inp = preprocess(input_tensor, input_tensor) else: # hack to enable mod(*inp) for optical_flow models inp = [preprocess(input_tensor)] model.eval() flop_counter = FlopCounterMode(model) with flop_counter: # detection models expect a list of 3d tensors as inputs if module_name == "detection": model(inp) else: model(*inp) flops = flop_counter.get_flops() return round(flops, 3) def get_file_size_mb(weight): weights_path = os.path.join(os.getenv("HOME"), ".cache/torch/hub/checkpoints", weight.url.split("/")[-1]) weights_size_mb = os.path.getsize(weights_path) / 1024 / 1024 return round(weights_size_mb, 3) vision-0.19.1/test/common_utils.py000066400000000000000000000374561466211133600171740ustar00rootroot00000000000000import contextlib import functools import itertools import os import pathlib import random import re import shutil import sys import tempfile import warnings from subprocess import CalledProcessError, check_output, STDOUT import numpy as np import PIL.Image import pytest import torch import torch.testing from PIL import Image from torch.testing._comparison import BooleanPair, NonePair, not_close_error_metas, NumberPair, TensorLikePair from torchvision import io, tv_tensors from torchvision.transforms._functional_tensor import _max_value as get_max_value from torchvision.transforms.v2.functional import to_image, to_pil_image IN_OSS_CI = any(os.getenv(var) == "true" for var in ["CIRCLECI", "GITHUB_ACTIONS"]) IN_RE_WORKER = os.environ.get("INSIDE_RE_WORKER") is not None IN_FBCODE = os.environ.get("IN_FBCODE_TORCHVISION") == "1" CUDA_NOT_AVAILABLE_MSG = "CUDA device not available" MPS_NOT_AVAILABLE_MSG = "MPS device not available" OSS_CI_GPU_NO_CUDA_MSG = "We're in an OSS GPU machine, and this test doesn't need cuda." @contextlib.contextmanager def get_tmp_dir(src=None, **kwargs): tmp_dir = tempfile.mkdtemp(**kwargs) if src is not None: os.rmdir(tmp_dir) shutil.copytree(src, tmp_dir) try: yield tmp_dir finally: shutil.rmtree(tmp_dir) def set_rng_seed(seed): torch.manual_seed(seed) random.seed(seed) class MapNestedTensorObjectImpl: def __init__(self, tensor_map_fn): self.tensor_map_fn = tensor_map_fn def __call__(self, object): if isinstance(object, torch.Tensor): return self.tensor_map_fn(object) elif isinstance(object, dict): mapped_dict = {} for key, value in object.items(): mapped_dict[self(key)] = self(value) return mapped_dict elif isinstance(object, (list, tuple)): mapped_iter = [] for iter in object: mapped_iter.append(self(iter)) return mapped_iter if not isinstance(object, tuple) else tuple(mapped_iter) else: return object def map_nested_tensor_object(object, tensor_map_fn): impl = MapNestedTensorObjectImpl(tensor_map_fn) return impl(object) def is_iterable(obj): try: iter(obj) return True except TypeError: return False @contextlib.contextmanager def freeze_rng_state(): rng_state = torch.get_rng_state() if torch.cuda.is_available(): cuda_rng_state = torch.cuda.get_rng_state() yield if torch.cuda.is_available(): torch.cuda.set_rng_state(cuda_rng_state) torch.set_rng_state(rng_state) def cycle_over(objs): for idx, obj1 in enumerate(objs): for obj2 in objs[:idx] + objs[idx + 1 :]: yield obj1, obj2 def int_dtypes(): return (torch.uint8, torch.int8, torch.int16, torch.int32, torch.int64) def float_dtypes(): return (torch.float32, torch.float64) @contextlib.contextmanager def disable_console_output(): with contextlib.ExitStack() as stack, open(os.devnull, "w") as devnull: stack.enter_context(contextlib.redirect_stdout(devnull)) stack.enter_context(contextlib.redirect_stderr(devnull)) yield def cpu_and_cuda(): import pytest # noqa return ("cpu", pytest.param("cuda", marks=pytest.mark.needs_cuda)) def cpu_and_cuda_and_mps(): return cpu_and_cuda() + (pytest.param("mps", marks=pytest.mark.needs_mps),) def needs_cuda(test_func): import pytest # noqa return pytest.mark.needs_cuda(test_func) def needs_mps(test_func): import pytest # noqa return pytest.mark.needs_mps(test_func) def _create_data(height=3, width=3, channels=3, device="cpu"): # TODO: When all relevant tests are ported to pytest, turn this into a module-level fixture tensor = torch.randint(0, 256, (channels, height, width), dtype=torch.uint8, device=device) data = tensor.permute(1, 2, 0).contiguous().cpu().numpy() mode = "RGB" if channels == 1: mode = "L" data = data[..., 0] pil_img = Image.fromarray(data, mode=mode) return tensor, pil_img def _create_data_batch(height=3, width=3, channels=3, num_samples=4, device="cpu"): # TODO: When all relevant tests are ported to pytest, turn this into a module-level fixture batch_tensor = torch.randint(0, 256, (num_samples, channels, height, width), dtype=torch.uint8, device=device) return batch_tensor def get_list_of_videos(tmpdir, num_videos=5, sizes=None, fps=None): names = [] for i in range(num_videos): if sizes is None: size = 5 * (i + 1) else: size = sizes[i] if fps is None: f = 5 else: f = fps[i] data = torch.randint(0, 256, (size, 300, 400, 3), dtype=torch.uint8) name = os.path.join(tmpdir, f"{i}.mp4") names.append(name) io.write_video(name, data, fps=f) return names def _assert_equal_tensor_to_pil(tensor, pil_image, msg=None): # FIXME: this is handled automatically by `assert_equal` below. Let's remove this in favor of it np_pil_image = np.array(pil_image) if np_pil_image.ndim == 2: np_pil_image = np_pil_image[:, :, None] pil_tensor = torch.as_tensor(np_pil_image.transpose((2, 0, 1))) if msg is None: msg = f"tensor:\n{tensor} \ndid not equal PIL tensor:\n{pil_tensor}" assert_equal(tensor.cpu(), pil_tensor, msg=msg) def _assert_approx_equal_tensor_to_pil( tensor, pil_image, tol=1e-5, msg=None, agg_method="mean", allowed_percentage_diff=None ): # FIXME: this is handled automatically by `assert_close` below. Let's remove this in favor of it # TODO: we could just merge this into _assert_equal_tensor_to_pil np_pil_image = np.array(pil_image) if np_pil_image.ndim == 2: np_pil_image = np_pil_image[:, :, None] pil_tensor = torch.as_tensor(np_pil_image.transpose((2, 0, 1))).to(tensor) if allowed_percentage_diff is not None: # Assert that less than a given %age of pixels are different assert (tensor != pil_tensor).to(torch.float).mean() <= allowed_percentage_diff # error value can be mean absolute error, max abs error # Convert to float to avoid underflow when computing absolute difference tensor = tensor.to(torch.float) pil_tensor = pil_tensor.to(torch.float) err = getattr(torch, agg_method)(torch.abs(tensor - pil_tensor)).item() assert err < tol, f"{err} vs {tol}" def _test_fn_on_batch(batch_tensors, fn, scripted_fn_atol=1e-8, **fn_kwargs): transformed_batch = fn(batch_tensors, **fn_kwargs) for i in range(len(batch_tensors)): img_tensor = batch_tensors[i, ...] transformed_img = fn(img_tensor, **fn_kwargs) torch.testing.assert_close(transformed_img, transformed_batch[i, ...], rtol=0, atol=1e-6) if scripted_fn_atol >= 0: scripted_fn = torch.jit.script(fn) # scriptable function test s_transformed_batch = scripted_fn(batch_tensors, **fn_kwargs) torch.testing.assert_close(transformed_batch, s_transformed_batch, rtol=1e-5, atol=scripted_fn_atol) def cache(fn): """Similar to :func:`functools.cache` (Python >= 3.8) or :func:`functools.lru_cache` with infinite cache size, but this also caches exceptions. """ sentinel = object() out_cache = {} exc_tb_cache = {} @functools.wraps(fn) def wrapper(*args, **kwargs): key = args + tuple(kwargs.values()) out = out_cache.get(key, sentinel) if out is not sentinel: return out exc_tb = exc_tb_cache.get(key, sentinel) if exc_tb is not sentinel: raise exc_tb[0].with_traceback(exc_tb[1]) try: out = fn(*args, **kwargs) except Exception as exc: # We need to cache the traceback here as well. Otherwise, each re-raise will add the internal pytest # traceback frames anew, but they will only be removed once. Thus, the traceback will be ginormous hiding # the actual information in the noise. See https://github.com/pytest-dev/pytest/issues/10363 for details. exc_tb_cache[key] = exc, exc.__traceback__ raise exc out_cache[key] = out return out return wrapper def combinations_grid(**kwargs): """Creates a grid of input combinations. Each element in the returned sequence is a dictionary containing one possible combination as values. Example: >>> combinations_grid(foo=("bar", "baz"), spam=("eggs", "ham")) [ {'foo': 'bar', 'spam': 'eggs'}, {'foo': 'bar', 'spam': 'ham'}, {'foo': 'baz', 'spam': 'eggs'}, {'foo': 'baz', 'spam': 'ham'} ] """ return [dict(zip(kwargs.keys(), values)) for values in itertools.product(*kwargs.values())] class ImagePair(TensorLikePair): def __init__( self, actual, expected, *, mae=False, **other_parameters, ): if all(isinstance(input, PIL.Image.Image) for input in [actual, expected]): actual, expected = [to_image(input) for input in [actual, expected]] super().__init__(actual, expected, **other_parameters) self.mae = mae def compare(self) -> None: actual, expected = self.actual, self.expected self._compare_attributes(actual, expected) actual, expected = self._equalize_attributes(actual, expected) if self.mae: if actual.dtype is torch.uint8: actual, expected = actual.to(torch.int), expected.to(torch.int) mae = float(torch.abs(actual - expected).float().mean()) if mae > self.atol: self._fail( AssertionError, f"The MAE of the images is {mae}, but only {self.atol} is allowed.", ) else: super()._compare_values(actual, expected) def assert_close( actual, expected, *, allow_subclasses=True, rtol=None, atol=None, equal_nan=False, check_device=True, check_dtype=True, check_layout=True, check_stride=False, msg=None, **kwargs, ): """Superset of :func:`torch.testing.assert_close` with support for PIL vs. tensor image comparison""" __tracebackhide__ = True error_metas = not_close_error_metas( actual, expected, pair_types=( NonePair, BooleanPair, NumberPair, ImagePair, TensorLikePair, ), allow_subclasses=allow_subclasses, rtol=rtol, atol=atol, equal_nan=equal_nan, check_device=check_device, check_dtype=check_dtype, check_layout=check_layout, check_stride=check_stride, **kwargs, ) if error_metas: raise error_metas[0].to_error(msg) assert_equal = functools.partial(assert_close, rtol=0, atol=0) DEFAULT_SIZE = (17, 11) NUM_CHANNELS_MAP = { "GRAY": 1, "GRAY_ALPHA": 2, "RGB": 3, "RGBA": 4, } def make_image( size=DEFAULT_SIZE, *, color_space="RGB", batch_dims=(), dtype=None, device="cpu", memory_format=torch.contiguous_format, ): num_channels = NUM_CHANNELS_MAP[color_space] dtype = dtype or torch.uint8 max_value = get_max_value(dtype) data = torch.testing.make_tensor( (*batch_dims, num_channels, *size), low=0, high=max_value, dtype=dtype, device=device, memory_format=memory_format, ) if color_space in {"GRAY_ALPHA", "RGBA"}: data[..., -1, :, :] = max_value return tv_tensors.Image(data) def make_image_tensor(*args, **kwargs): return make_image(*args, **kwargs).as_subclass(torch.Tensor) def make_image_pil(*args, **kwargs): return to_pil_image(make_image(*args, **kwargs)) def make_bounding_boxes( canvas_size=DEFAULT_SIZE, *, format=tv_tensors.BoundingBoxFormat.XYXY, num_boxes=1, dtype=None, device="cpu", ): def sample_position(values, max_value): # We cannot use torch.randint directly here, because it only allows integer scalars as values for low and high. # However, if we have batch_dims, we need tensors as limits. return torch.stack([torch.randint(max_value - v, ()) for v in values.tolist()]) if isinstance(format, str): format = tv_tensors.BoundingBoxFormat[format] dtype = dtype or torch.float32 h, w = [torch.randint(1, s, (num_boxes,)) for s in canvas_size] y = sample_position(h, canvas_size[0]) x = sample_position(w, canvas_size[1]) if format is tv_tensors.BoundingBoxFormat.XYWH: parts = (x, y, w, h) elif format is tv_tensors.BoundingBoxFormat.XYXY: x1, y1 = x, y x2 = x1 + w y2 = y1 + h parts = (x1, y1, x2, y2) elif format is tv_tensors.BoundingBoxFormat.CXCYWH: cx = x + w / 2 cy = y + h / 2 parts = (cx, cy, w, h) else: raise ValueError(f"Format {format} is not supported") return tv_tensors.BoundingBoxes( torch.stack(parts, dim=-1).to(dtype=dtype, device=device), format=format, canvas_size=canvas_size ) def make_detection_masks(size=DEFAULT_SIZE, *, num_masks=1, dtype=None, device="cpu"): """Make a "detection" mask, i.e. (*, N, H, W), where each object is encoded as one of N boolean masks""" return tv_tensors.Mask( torch.testing.make_tensor( (num_masks, *size), low=0, high=2, dtype=dtype or torch.bool, device=device, ) ) def make_segmentation_mask(size=DEFAULT_SIZE, *, num_categories=10, batch_dims=(), dtype=None, device="cpu"): """Make a "segmentation" mask, i.e. (*, H, W), where the category is encoded as pixel value""" return tv_tensors.Mask( torch.testing.make_tensor( (*batch_dims, *size), low=0, high=num_categories, dtype=dtype or torch.uint8, device=device, ) ) def make_video(size=DEFAULT_SIZE, *, num_frames=3, batch_dims=(), **kwargs): return tv_tensors.Video(make_image(size, batch_dims=(*batch_dims, num_frames), **kwargs)) def make_video_tensor(*args, **kwargs): return make_video(*args, **kwargs).as_subclass(torch.Tensor) def assert_run_python_script(source_code): """Utility to check assertions in an independent Python subprocess. The script provided in the source code should return 0 and not print anything on stderr or stdout. Modified from scikit-learn test utils. Args: source_code (str): The Python source code to execute. """ with get_tmp_dir() as root: path = pathlib.Path(root) / "main.py" with open(path, "w") as file: file.write(source_code) try: out = check_output([sys.executable, str(path)], stderr=STDOUT) except CalledProcessError as e: raise RuntimeError(f"script errored with output:\n{e.output.decode()}") if out != b"": raise AssertionError(out.decode()) @contextlib.contextmanager def assert_no_warnings(): # The name `catch_warnings` is a misnomer as the context manager does **not** catch any warnings, but rather scopes # the warning filters. All changes that are made to the filters while in this context, will be reset upon exit. with warnings.catch_warnings(): warnings.simplefilter("error") yield @contextlib.contextmanager def ignore_jit_no_profile_information_warning(): # Calling a scripted object often triggers a warning like # `UserWarning: operator() profile_node %$INT1 : int[] = prim::profile_ivalue($INT2) does not have profile information` # with varying `INT1` and `INT2`. Since these are uninteresting for us and only clutter the test summary, we ignore # them. with warnings.catch_warnings(): warnings.filterwarnings("ignore", message=re.escape("operator() profile_node %"), category=UserWarning) yield vision-0.19.1/test/conftest.py000066400000000000000000000133251466211133600162760ustar00rootroot00000000000000import random import numpy as np import pytest import torch from common_utils import ( CUDA_NOT_AVAILABLE_MSG, IN_FBCODE, IN_OSS_CI, IN_RE_WORKER, MPS_NOT_AVAILABLE_MSG, OSS_CI_GPU_NO_CUDA_MSG, ) def pytest_configure(config): # register an additional marker (see pytest_collection_modifyitems) config.addinivalue_line("markers", "needs_cuda: mark for tests that rely on a CUDA device") config.addinivalue_line("markers", "needs_mps: mark for tests that rely on a MPS device") config.addinivalue_line("markers", "dont_collect: mark for tests that should not be collected") config.addinivalue_line("markers", "opcheck_only_one: only opcheck one parametrization") def pytest_collection_modifyitems(items): # This hook is called by pytest after it has collected the tests (google its name to check out its doc!) # We can ignore some tests as we see fit here, or add marks, such as a skip mark. # # Typically, here, we try to optimize CI time. In particular, the GPU CI instances don't need to run the # tests that don't need CUDA, because those tests are extensively tested in the CPU CI instances already. # This is true for both OSS CI and the fbcode internal CI. # In the fbcode CI, we have an additional constraint: we try to avoid skipping tests. So instead of relying on # pytest.mark.skip, in fbcode we literally just remove those tests from the `items` list, and it's as if # these tests never existed. out_items = [] for item in items: # The needs_cuda mark will exist if the test was explicitly decorated with # the @needs_cuda decorator. It will also exist if it was parametrized with a # parameter that has the mark: for example if a test is parametrized with # @pytest.mark.parametrize('device', cpu_and_cuda()) # the "instances" of the tests where device == 'cuda' will have the 'needs_cuda' mark, # and the ones with device == 'cpu' won't have the mark. needs_cuda = item.get_closest_marker("needs_cuda") is not None needs_mps = item.get_closest_marker("needs_mps") is not None if needs_cuda and not torch.cuda.is_available(): # In general, we skip cuda tests on machines without a GPU # There are special cases though, see below item.add_marker(pytest.mark.skip(reason=CUDA_NOT_AVAILABLE_MSG)) if needs_mps and not torch.backends.mps.is_available(): item.add_marker(pytest.mark.skip(reason=MPS_NOT_AVAILABLE_MSG)) if IN_FBCODE: # fbcode doesn't like skipping tests, so instead we just don't collect the test # so that they don't even "exist", hence the continue statements. if not needs_cuda and IN_RE_WORKER: # The RE workers are the machines with GPU, we don't want them to run CPU-only tests. continue if needs_cuda and not torch.cuda.is_available(): # On the test machines without a GPU, we want to ignore the tests that need cuda. # TODO: something more robust would be to do that only in a sandcastle instance, # so that we can still see the test being skipped when testing locally from a devvm continue if needs_mps and not torch.backends.mps.is_available(): # Same as above, but for MPS continue elif IN_OSS_CI: # Here we're not in fbcode, so we can safely collect and skip tests. if not needs_cuda and torch.cuda.is_available(): # Similar to what happens in RE workers: we don't need the OSS CI GPU machines # to run the CPU-only tests. item.add_marker(pytest.mark.skip(reason=OSS_CI_GPU_NO_CUDA_MSG)) if item.get_closest_marker("dont_collect") is not None: # currently, this is only used for some tests we're sure we don't want to run on fbcode continue out_items.append(item) items[:] = out_items def pytest_sessionfinish(session, exitstatus): # This hook is called after all tests have run, and just before returning an exit status. # We here change exit code 5 into 0. # # 5 is issued when no tests were actually run, e.g. if you use `pytest -k some_regex_that_is_never_matched`. # # Having no test being run for a given test rule is a common scenario in fbcode, and typically happens on # the GPU test machines which don't run the CPU-only tests (see pytest_collection_modifyitems above). For # example `test_transforms.py` doesn't contain any CUDA test at the time of # writing, so on a GPU test machine, testpilot would invoke pytest on this file and no test would be run. # This would result in pytest returning 5, causing testpilot to raise an error. # To avoid this, we transform this 5 into a 0 to make testpilot happy. if exitstatus == 5: session.exitstatus = 0 @pytest.fixture(autouse=True) def prevent_leaking_rng(): # Prevent each test from leaking the rng to all other test when they call # torch.manual_seed() or random.seed() or np.random.seed(). # Note: the numpy rngs should never leak anyway, as we never use # np.random.seed() and instead rely on np.random.RandomState instances (see # issue #4247). We still do it for extra precaution. torch_rng_state = torch.get_rng_state() builtin_rng_state = random.getstate() nunmpy_rng_state = np.random.get_state() if torch.cuda.is_available(): cuda_rng_state = torch.cuda.get_rng_state() yield torch.set_rng_state(torch_rng_state) random.setstate(builtin_rng_state) np.random.set_state(nunmpy_rng_state) if torch.cuda.is_available(): torch.cuda.set_rng_state(cuda_rng_state) vision-0.19.1/test/cpp/000077500000000000000000000000001466211133600146555ustar00rootroot00000000000000vision-0.19.1/test/cpp/test_custom_operators.cpp000066400000000000000000000036141466211133600220340ustar00rootroot00000000000000#include #include #include // FIXME: the include path differs from OSS due to the extra csrc #include TEST(test_custom_operators, nms) { // make sure that the torchvision ops are visible to the jit interpreter auto& ops = torch::jit::getAllOperatorsFor(torch::jit::Symbol::fromQualString("torchvision::nms")); ASSERT_EQ(ops.size(), 1); auto& op = ops.front(); ASSERT_EQ(op->schema().name(), "torchvision::nms"); torch::jit::Stack stack; at::Tensor boxes = at::rand({50, 4}), scores = at::rand({50}); double thresh = 0.7; torch::jit::push(stack, boxes, scores, thresh); op->getOperation()(stack); at::Tensor output_jit; torch::jit::pop(stack, output_jit); at::Tensor output = vision::ops::nms(boxes, scores, thresh); ASSERT_TRUE(output_jit.allclose(output)); } TEST(test_custom_operators, roi_align_visible) { // make sure that the torchvision ops are visible to the jit interpreter even if // not explicitly included auto& ops = torch::jit::getAllOperatorsFor(torch::jit::Symbol::fromQualString("torchvision::roi_align")); ASSERT_EQ(ops.size(), 1); auto& op = ops.front(); ASSERT_EQ(op->schema().name(), "torchvision::roi_align"); torch::jit::Stack stack; float roi_data[] = { 0., 0., 0., 5., 5., 0., 5., 5., 10., 10. }; at::Tensor input = at::rand({1, 2, 10, 10}), rois = at::from_blob(roi_data, {2, 5}); double spatial_scale = 1.0; int64_t pooled_height = 3, pooled_width = 3, sampling_ratio = -1; bool aligned = true; torch::jit::push(stack, input, rois, spatial_scale, pooled_height, pooled_width, sampling_ratio, aligned); op->getOperation()(stack); at::Tensor output_jit; torch::jit::pop(stack, output_jit); ASSERT_EQ(output_jit.sizes()[0], 2); ASSERT_EQ(output_jit.sizes()[1], 2); ASSERT_EQ(output_jit.sizes()[2], 3); ASSERT_EQ(output_jit.sizes()[3], 3); } vision-0.19.1/test/datasets_utils.py000066400000000000000000001176611466211133600175110ustar00rootroot00000000000000import contextlib import functools import importlib import inspect import itertools import os import pathlib import platform import random import shutil import string import struct import tarfile import unittest import unittest.mock import zipfile from collections import defaultdict from typing import Any, Callable, Dict, Iterator, List, Optional, Sequence, Tuple, Union import numpy as np import PIL import PIL.Image import pytest import torch import torchvision.datasets import torchvision.io from common_utils import disable_console_output, get_tmp_dir from torch.utils._pytree import tree_any from torch.utils.data import DataLoader from torchvision import tv_tensors from torchvision.datasets import wrap_dataset_for_transforms_v2 from torchvision.transforms.functional import get_dimensions from torchvision.transforms.v2.functional import get_size __all__ = [ "UsageError", "lazy_importer", "test_all_configs", "DatasetTestCase", "ImageDatasetTestCase", "VideoDatasetTestCase", "create_image_or_video_tensor", "create_image_file", "create_image_folder", "create_video_file", "create_video_folder", "make_tar", "make_zip", "create_random_string", ] class UsageError(Exception): """Should be raised in case an error happens in the setup rather than the test.""" class LazyImporter: r"""Lazy importer for additional dependencies. Some datasets require additional packages that are no direct dependencies of torchvision. Instances of this class provide modules listed in MODULES as attributes. They are only imported when accessed. """ MODULES = ( "av", "lmdb", "pycocotools", "requests", "scipy.io", "scipy.sparse", "h5py", ) def __init__(self): modules = defaultdict(list) for module in self.MODULES: module, *submodules = module.split(".", 1) if submodules: modules[module].append(submodules[0]) else: # This introduces the module so that it is known when we later iterate over the dictionary. modules.__missing__(module) for module, submodules in modules.items(): # We need the quirky 'module=module' and submodules=submodules arguments to the lambda since otherwise the # lookup for these would happen at runtime rather than at definition. Thus, without it, every property # would try to import the last item in 'modules' setattr( type(self), module, property(lambda self, module=module, submodules=submodules: LazyImporter._import(module, submodules)), ) @staticmethod def _import(package, subpackages): try: module = importlib.import_module(package) except ImportError as error: raise UsageError( f"Failed to import module '{package}'. " f"This probably means that the current test case needs '{package}' installed, " f"but it is not a dependency of torchvision. " f"You need to install it manually, for example 'pip install {package}'." ) from error for name in subpackages: importlib.import_module(f".{name}", package=package) return module lazy_importer = LazyImporter() def requires_lazy_imports(*modules): def outer_wrapper(fn): @functools.wraps(fn) def inner_wrapper(*args, **kwargs): for module in modules: getattr(lazy_importer, module.replace(".", "_")) return fn(*args, **kwargs) return inner_wrapper return outer_wrapper def test_all_configs(test): """Decorator to run test against all configurations. Add this as decorator to an arbitrary test to run it against all configurations. This includes :attr:`DatasetTestCase.DEFAULT_CONFIG` and :attr:`DatasetTestCase.ADDITIONAL_CONFIGS`. The current configuration is provided as the first parameter for the test: .. code-block:: @test_all_configs() def test_foo(self, config): pass .. note:: This will try to remove duplicate configurations. During this process it will not preserve a potential ordering of the configurations or an inner ordering of a configuration. """ def maybe_remove_duplicates(configs): try: return [dict(config_) for config_ in {tuple(sorted(config.items())) for config in configs}] except TypeError: # A TypeError will be raised if a value of any config is not hashable, e.g. a list. In that case duplicate # removal would be a lot more elaborate, and we simply bail out. return configs @functools.wraps(test) def wrapper(self): configs = [] if self.DEFAULT_CONFIG is not None: configs.append(self.DEFAULT_CONFIG) if self.ADDITIONAL_CONFIGS is not None: configs.extend(self.ADDITIONAL_CONFIGS) if not configs: configs = [self._KWARG_DEFAULTS.copy()] else: configs = maybe_remove_duplicates(configs) for config in configs: with self.subTest(**config): test(self, config) return wrapper class DatasetTestCase(unittest.TestCase): """Abstract base class for all dataset testcases. You have to overwrite the following class attributes: - DATASET_CLASS (torchvision.datasets.VisionDataset): Class of dataset to be tested. - FEATURE_TYPES (Sequence[Any]): Types of the elements returned by index access of the dataset. Instead of providing these manually, you can instead subclass ``ImageDatasetTestCase`` or ``VideoDatasetTestCase```to get a reasonable default, that should work for most cases. Each entry of the sequence may be a tuple, to indicate multiple possible values. Optionally, you can overwrite the following class attributes: - DEFAULT_CONFIG (Dict[str, Any]): Config that will be used by default. If omitted, this defaults to all keyword arguments of the dataset minus ``transform``, ``target_transform``, ``transforms``, and ``download``. Overwrite this if you want to use a default value for a parameter for which the dataset does not provide one. - ADDITIONAL_CONFIGS (Sequence[Dict[str, Any]]): Additional configs that should be tested. Each dictionary can contain an arbitrary combination of dataset parameters that are **not** ``transform``, ``target_transform``, ``transforms``, or ``download``. - REQUIRED_PACKAGES (Iterable[str]): Additional dependencies to use the dataset. If these packages are not available, the tests are skipped. Additionally, you need to overwrite the ``inject_fake_data()`` method that provides the data that the tests rely on. The fake data should resemble the original data as close as necessary, while containing only few examples. During the creation of the dataset check-, download-, and extract-functions from ``torchvision.datasets.utils`` are disabled. Without further configuration, the testcase will test if 1. the dataset raises a :class:`FileNotFoundError` or a :class:`RuntimeError` if the data files are not found or corrupted, 2. the dataset inherits from `torchvision.datasets.VisionDataset`, 3. the dataset can be turned into a string, 4. the feature types of a returned example matches ``FEATURE_TYPES``, 5. the number of examples matches the injected fake data, and 6. the dataset calls ``transform``, ``target_transform``, or ``transforms`` if available when accessing data. Case 3. to 6. are tested against all configurations in ``CONFIGS``. To add dataset-specific tests, create a new method that takes no arguments with ``test_`` as a name prefix: .. code-block:: def test_foo(self): pass If you want to run the test against all configs, add the ``@test_all_configs`` decorator to the definition and accept a single argument: .. code-block:: @test_all_configs def test_bar(self, config): pass Within the test you can use the ``create_dataset()`` method that yields the dataset as well as additional information provided by the ``ìnject_fake_data()`` method: .. code-block:: def test_baz(self): with self.create_dataset() as (dataset, info): pass """ DATASET_CLASS = None FEATURE_TYPES = None DEFAULT_CONFIG = None ADDITIONAL_CONFIGS = None REQUIRED_PACKAGES = None # These keyword arguments are checked by test_transforms in case they are available in DATASET_CLASS. _TRANSFORM_KWARGS = { "transform", "target_transform", "transforms", } # These keyword arguments get a 'special' treatment and should not be set in DEFAULT_CONFIG or ADDITIONAL_CONFIGS. _SPECIAL_KWARGS = { *_TRANSFORM_KWARGS, "download", } # These fields are populated during setupClass() within _populate_private_class_attributes() # This will be a dictionary containing all keyword arguments with their respective default values extracted from # the dataset constructor. _KWARG_DEFAULTS = None # This will be a set of all _SPECIAL_KWARGS that the dataset constructor takes. _HAS_SPECIAL_KWARG = None # These functions are disabled during dataset creation in create_dataset(). _CHECK_FUNCTIONS = { "check_md5", "check_integrity", } _DOWNLOAD_EXTRACT_FUNCTIONS = { "download_url", "download_file_from_google_drive", "extract_archive", "download_and_extract_archive", } def dataset_args(self, tmpdir: str, config: Dict[str, Any]) -> Sequence[Any]: """Define positional arguments passed to the dataset. .. note:: The default behavior is only valid if the dataset to be tested has ``root`` as the only required parameter. Otherwise, you need to overwrite this method. Args: tmpdir (str): Path to a temporary directory. For most cases this acts as root directory for the dataset to be created and in turn also for the fake data injected here. config (Dict[str, Any]): Configuration that will be passed to the dataset constructor. It provides at least fields for all dataset parameters with default values. Returns: (Tuple[str]): ``tmpdir`` which corresponds to ``root`` for most datasets. """ return (tmpdir,) def inject_fake_data(self, tmpdir: str, config: Dict[str, Any]) -> Union[int, Dict[str, Any]]: """Inject fake data for dataset into a temporary directory. During the creation of the dataset the download and extract logic is disabled. Thus, the fake data injected here needs to resemble the raw data, i.e. the state of the dataset directly after the files are downloaded and potentially extracted. Args: tmpdir (str): Path to a temporary directory. For most cases this acts as root directory for the dataset to be created and in turn also for the fake data injected here. config (Dict[str, Any]): Configuration that will be passed to the dataset constructor. It provides at least fields for all dataset parameters with default values. Needs to return one of the following: 1. (int): Number of examples in the dataset to be created, or 2. (Dict[str, Any]): Additional information about the injected fake data. Must contain the field ``"num_examples"`` that corresponds to the number of examples in the dataset to be created. """ raise NotImplementedError("You need to provide fake data in order for the tests to run.") @contextlib.contextmanager def create_dataset( self, config: Optional[Dict[str, Any]] = None, inject_fake_data: bool = True, patch_checks: Optional[bool] = None, **kwargs: Any, ) -> Iterator[Tuple[torchvision.datasets.VisionDataset, Dict[str, Any]]]: r"""Create the dataset in a temporary directory. The configuration passed to the dataset is populated to contain at least all parameters with default values. For this the following order of precedence is used: 1. Parameters in :attr:`kwargs`. 2. Configuration in :attr:`config`. 3. Configuration in :attr:`~DatasetTestCase.DEFAULT_CONFIG`. 4. Default parameters of the dataset. Args: config (Optional[Dict[str, Any]]): Configuration that will be used to create the dataset. inject_fake_data (bool): If ``True`` (default) inject the fake data with :meth:`.inject_fake_data` before creating the dataset. patch_checks (Optional[bool]): If ``True`` disable integrity check logic while creating the dataset. If omitted defaults to the same value as ``inject_fake_data``. **kwargs (Any): Additional parameters passed to the dataset. These parameters take precedence in case they overlap with ``config``. Yields: dataset (torchvision.dataset.VisionDataset): Dataset. info (Dict[str, Any]): Additional information about the injected fake data. See :meth:`.inject_fake_data` for details. """ if patch_checks is None: patch_checks = inject_fake_data special_kwargs, other_kwargs = self._split_kwargs(kwargs) complete_config = self._KWARG_DEFAULTS.copy() if self.DEFAULT_CONFIG: complete_config.update(self.DEFAULT_CONFIG) if config: complete_config.update(config) if other_kwargs: complete_config.update(other_kwargs) if "download" in self._HAS_SPECIAL_KWARG and special_kwargs.get("download", False): # override download param to False param if its default is truthy special_kwargs["download"] = False patchers = self._patch_download_extract() if patch_checks: patchers.update(self._patch_checks()) with get_tmp_dir() as tmpdir: args = self.dataset_args(tmpdir, complete_config) info = self._inject_fake_data(tmpdir, complete_config) if inject_fake_data else None with self._maybe_apply_patches(patchers), disable_console_output(): dataset = self.DATASET_CLASS(*args, **complete_config, **special_kwargs) yield dataset, info @classmethod def setUpClass(cls): cls._verify_required_public_class_attributes() cls._populate_private_class_attributes() cls._process_optional_public_class_attributes() super().setUpClass() @classmethod def _verify_required_public_class_attributes(cls): if cls.DATASET_CLASS is None: raise UsageError( "The class attribute 'DATASET_CLASS' needs to be overwritten. " "It should contain the class of the dataset to be tested." ) if cls.FEATURE_TYPES is None: raise UsageError( "The class attribute 'FEATURE_TYPES' needs to be overwritten. " "It should contain a sequence of types that the dataset returns when accessed by index." ) @classmethod def _populate_private_class_attributes(cls): defaults = [] for cls_ in cls.DATASET_CLASS.__mro__: if cls_ is torchvision.datasets.VisionDataset: break argspec = inspect.getfullargspec(cls_.__init__) if not argspec.defaults: continue defaults.append( { kwarg: default for kwarg, default in zip(argspec.args[-len(argspec.defaults) :], argspec.defaults) if not kwarg.startswith("_") } ) if not argspec.varkw: break kwarg_defaults = dict() for config in reversed(defaults): kwarg_defaults.update(config) has_special_kwargs = set() for name in cls._SPECIAL_KWARGS: if name not in kwarg_defaults: continue del kwarg_defaults[name] has_special_kwargs.add(name) cls._KWARG_DEFAULTS = kwarg_defaults cls._HAS_SPECIAL_KWARG = has_special_kwargs @classmethod def _process_optional_public_class_attributes(cls): def check_config(config, name): special_kwargs = tuple(f"'{name}'" for name in cls._SPECIAL_KWARGS if name in config) if special_kwargs: raise UsageError( f"{name} contains a value for the parameter(s) {', '.join(special_kwargs)}. " f"These are handled separately by the test case and should not be set here. " f"If you need to test some custom behavior regarding these parameters, " f"you need to write a custom test (*not* test case), e.g. test_custom_transform()." ) if cls.DEFAULT_CONFIG is not None: check_config(cls.DEFAULT_CONFIG, "DEFAULT_CONFIG") if cls.ADDITIONAL_CONFIGS is not None: for idx, config in enumerate(cls.ADDITIONAL_CONFIGS): check_config(config, f"CONFIGS[{idx}]") if cls.REQUIRED_PACKAGES: missing_pkgs = [] for pkg in cls.REQUIRED_PACKAGES: try: importlib.import_module(pkg) except ImportError: missing_pkgs.append(f"'{pkg}'") if missing_pkgs: raise unittest.SkipTest( f"The package(s) {', '.join(missing_pkgs)} are required to load the dataset " f"'{cls.DATASET_CLASS.__name__}', but are not installed." ) def _split_kwargs(self, kwargs): special_kwargs = kwargs.copy() other_kwargs = {key: special_kwargs.pop(key) for key in set(special_kwargs.keys()) - self._SPECIAL_KWARGS} return special_kwargs, other_kwargs def _inject_fake_data(self, tmpdir, config): info = self.inject_fake_data(tmpdir, config) if info is None: raise UsageError( "The method 'inject_fake_data' needs to return at least an integer indicating the number of " "examples for the current configuration." ) elif isinstance(info, int): info = dict(num_examples=info) elif not isinstance(info, dict): raise UsageError( f"The additional information returned by the method 'inject_fake_data' must be either an " f"integer indicating the number of examples for the current configuration or a dictionary with " f"the same content. Got {type(info)} instead." ) elif "num_examples" not in info: raise UsageError( "The information dictionary returned by the method 'inject_fake_data' must contain a " "'num_examples' field that holds the number of examples for the current configuration." ) return info def _patch_download_extract(self): module = inspect.getmodule(self.DATASET_CLASS).__name__ return {unittest.mock.patch(f"{module}.{function}") for function in self._DOWNLOAD_EXTRACT_FUNCTIONS} def _patch_checks(self): module = inspect.getmodule(self.DATASET_CLASS).__name__ return {unittest.mock.patch(f"{module}.{function}", return_value=True) for function in self._CHECK_FUNCTIONS} @contextlib.contextmanager def _maybe_apply_patches(self, patchers): with contextlib.ExitStack() as stack: mocks = {} for patcher in patchers: with contextlib.suppress(AttributeError): mocks[patcher.target] = stack.enter_context(patcher) yield mocks def test_not_found_or_corrupted(self): with pytest.raises((FileNotFoundError, RuntimeError)): with self.create_dataset(inject_fake_data=False): pass def test_smoke(self): with self.create_dataset() as (dataset, _): assert isinstance(dataset, torchvision.datasets.VisionDataset) @test_all_configs def test_str_smoke(self, config): with self.create_dataset(config) as (dataset, _): assert isinstance(str(dataset), str) @test_all_configs def test_feature_types(self, config): with self.create_dataset(config) as (dataset, _): example = dataset[0] if len(self.FEATURE_TYPES) > 1: actual = len(example) expected = len(self.FEATURE_TYPES) assert ( actual == expected ), "The number of the returned features does not match the the number of elements in FEATURE_TYPES: " f"{actual} != {expected}" else: example = (example,) for idx, (feature, expected_feature_type) in enumerate(zip(example, self.FEATURE_TYPES)): with self.subTest(idx=idx): assert isinstance(feature, expected_feature_type) @test_all_configs def test_num_examples(self, config): with self.create_dataset(config) as (dataset, info): assert len(list(dataset)) == len(dataset) == info["num_examples"] @test_all_configs def test_transforms(self, config): mock = unittest.mock.Mock(wraps=lambda *args: args[0] if len(args) == 1 else args) for kwarg in self._TRANSFORM_KWARGS: if kwarg not in self._HAS_SPECIAL_KWARG: continue mock.reset_mock() with self.subTest(kwarg=kwarg): with self.create_dataset(config, **{kwarg: mock}) as (dataset, _): dataset[0] mock.assert_called() @test_all_configs def test_transforms_v2_wrapper(self, config): try: with self.create_dataset(config) as (dataset, info): for target_keys in [None, "all"]: if target_keys is not None and self.DATASET_CLASS not in { torchvision.datasets.CocoDetection, torchvision.datasets.VOCDetection, torchvision.datasets.Kitti, torchvision.datasets.WIDERFace, }: with self.assertRaisesRegex(ValueError, "`target_keys` is currently only supported for"): wrap_dataset_for_transforms_v2(dataset, target_keys=target_keys) continue wrapped_dataset = wrap_dataset_for_transforms_v2(dataset, target_keys=target_keys) assert isinstance(wrapped_dataset, self.DATASET_CLASS) assert len(wrapped_dataset) == info["num_examples"] wrapped_sample = wrapped_dataset[0] assert tree_any( lambda item: isinstance(item, (tv_tensors.TVTensor, PIL.Image.Image)), wrapped_sample ) except TypeError as error: msg = f"No wrapper exists for dataset class {type(dataset).__name__}" if str(error).startswith(msg): pytest.skip(msg) raise error except RuntimeError as error: if "currently not supported by this wrapper" in str(error): pytest.skip("Config is currently not supported by this wrapper") raise error class ImageDatasetTestCase(DatasetTestCase): """Abstract base class for image dataset testcases. - Overwrites the FEATURE_TYPES class attribute to expect a :class:`PIL.Image.Image` and an integer label. """ FEATURE_TYPES = (PIL.Image.Image, int) @contextlib.contextmanager def create_dataset( self, config: Optional[Dict[str, Any]] = None, inject_fake_data: bool = True, patch_checks: Optional[bool] = None, **kwargs: Any, ) -> Iterator[Tuple[torchvision.datasets.VisionDataset, Dict[str, Any]]]: with super().create_dataset( config=config, inject_fake_data=inject_fake_data, patch_checks=patch_checks, **kwargs, ) as (dataset, info): # PIL.Image.open() only loads the image metadata upfront and keeps the file open until the first access # to the pixel data occurs. Trying to delete such a file results in an PermissionError on Windows. Thus, we # force-load opened images. # This problem only occurs during testing since some tests, e.g. DatasetTestCase.test_feature_types open an # image, but never use the underlying data. During normal operation it is reasonable to assume that the # user wants to work with the image he just opened rather than deleting the underlying file. with self._force_load_images(): yield dataset, info @contextlib.contextmanager def _force_load_images(self): open = PIL.Image.open def new(fp, *args, **kwargs): image = open(fp, *args, **kwargs) if isinstance(fp, (str, pathlib.Path)): image.load() return image with unittest.mock.patch("PIL.Image.open", new=new): yield class VideoDatasetTestCase(DatasetTestCase): """Abstract base class for video dataset testcases. - Overwrites the 'FEATURE_TYPES' class attribute to expect two :class:`torch.Tensor` s for the video and audio as well as an integer label. - Overwrites the 'REQUIRED_PACKAGES' class attribute to require PyAV (``av``). - Adds the 'DEFAULT_FRAMES_PER_CLIP' class attribute. If no 'frames_per_clip' is provided by 'inject_fake_data()' and it is the last parameter without a default value in the dataset constructor, the value of the 'DEFAULT_FRAMES_PER_CLIP' class attribute is appended to the output. """ FEATURE_TYPES = (torch.Tensor, torch.Tensor, int) REQUIRED_PACKAGES = ("av",) FRAMES_PER_CLIP = 1 def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.dataset_args = self._set_default_frames_per_clip(self.dataset_args) def _set_default_frames_per_clip(self, dataset_args): argspec = inspect.getfullargspec(self.DATASET_CLASS.__init__) args_without_default = argspec.args[1 : (-len(argspec.defaults) if argspec.defaults else None)] frames_per_clip_last = args_without_default[-1] == "frames_per_clip" @functools.wraps(dataset_args) def wrapper(tmpdir, config): args = dataset_args(tmpdir, config) if frames_per_clip_last and len(args) == len(args_without_default) - 1: args = (*args, self.FRAMES_PER_CLIP) return args return wrapper def test_output_format(self): for output_format in ["TCHW", "THWC"]: with self.create_dataset(output_format=output_format) as (dataset, _): for video, *_ in dataset: if output_format == "TCHW": num_frames, num_channels, *_ = video.shape else: # output_format == "THWC": num_frames, *_, num_channels = video.shape assert num_frames == self.FRAMES_PER_CLIP assert num_channels == 3 @test_all_configs def test_transforms_v2_wrapper(self, config): # `output_format == "THWC"` is not supported by the wrapper. Thus, we skip the `config` if it is set explicitly # or use the supported `"TCHW"` if config.setdefault("output_format", "TCHW") == "THWC": return super().test_transforms_v2_wrapper.__wrapped__(self, config) def _no_collate(batch): return batch def check_transforms_v2_wrapper_spawn(dataset, expected_size): # This check ensures that the wrapped datasets can be used with multiprocessing_context="spawn" in the DataLoader. # We also check that transforms are applied correctly as a non-regression test for # https://github.com/pytorch/vision/issues/8066 # Implicitly, this also checks that the wrapped datasets are pickleable. # To save CI/test time, we only check on Windows where "spawn" is the default if platform.system() != "Windows": pytest.skip("Multiprocessing spawning is only checked on macOS.") wrapped_dataset = wrap_dataset_for_transforms_v2(dataset) dataloader = DataLoader(wrapped_dataset, num_workers=2, multiprocessing_context="spawn", collate_fn=_no_collate) def resize_was_applied(item): # Checking the size of the output ensures that the Resize transform was correctly applied return isinstance(item, (tv_tensors.Image, tv_tensors.Video, PIL.Image.Image)) and get_size(item) == list( expected_size ) for wrapped_sample in dataloader: assert tree_any(resize_was_applied, wrapped_sample) def create_image_or_video_tensor(size: Sequence[int]) -> torch.Tensor: r"""Create a random uint8 tensor. Args: size (Sequence[int]): Size of the tensor. """ return torch.randint(0, 256, size, dtype=torch.uint8) def create_image_file( root: Union[pathlib.Path, str], name: Union[pathlib.Path, str], size: Union[Sequence[int], int] = 10, **kwargs: Any ) -> pathlib.Path: """Create an image file from random data. Args: root (Union[str, pathlib.Path]): Root directory the image file will be placed in. name (Union[str, pathlib.Path]): Name of the image file. size (Union[Sequence[int], int]): Size of the image that represents the ``(num_channels, height, width)``. If scalar, the value is used for the height and width. If not provided, three channels are assumed. kwargs (Any): Additional parameters passed to :meth:`PIL.Image.Image.save`. Returns: pathlib.Path: Path to the created image file. """ if isinstance(size, int): size = (size, size) if len(size) == 2: size = (3, *size) if len(size) != 3: raise UsageError( f"The 'size' argument should either be an int or a sequence of length 2 or 3. Got {len(size)} instead" ) image = create_image_or_video_tensor(size) file = pathlib.Path(root) / name # torch (num_channels x height x width) -> PIL (width x height x num_channels) image = image.permute(2, 1, 0) # For grayscale images PIL doesn't use a channel dimension if image.shape[2] == 1: image = torch.squeeze(image, 2) PIL.Image.fromarray(image.numpy()).save(file, **kwargs) return file def create_image_folder( root: Union[pathlib.Path, str], name: Union[pathlib.Path, str], file_name_fn: Callable[[int], str], num_examples: int, size: Optional[Union[Sequence[int], int, Callable[[int], Union[Sequence[int], int]]]] = None, **kwargs: Any, ) -> List[pathlib.Path]: """Create a folder of random images. Args: root (Union[str, pathlib.Path]): Root directory the image folder will be placed in. name (Union[str, pathlib.Path]): Name of the image folder. file_name_fn (Callable[[int], str]): Should return a file name if called with the file index. num_examples (int): Number of images to create. size (Optional[Union[Sequence[int], int, Callable[[int], Union[Sequence[int], int]]]]): Size of the images. If callable, will be called with the index of the corresponding file. If omitted, a random height and width between 3 and 10 pixels is selected on a per-image basis. kwargs (Any): Additional parameters passed to :func:`create_image_file`. Returns: List[pathlib.Path]: Paths to all created image files. .. seealso:: - :func:`create_image_file` """ if size is None: def size(idx: int) -> Tuple[int, int, int]: num_channels = 3 height, width = torch.randint(3, 11, size=(2,), dtype=torch.int).tolist() return (num_channels, height, width) root = pathlib.Path(root) / name os.makedirs(root, exist_ok=True) return [ create_image_file(root, file_name_fn(idx), size=size(idx) if callable(size) else size, **kwargs) for idx in range(num_examples) ] def shape_test_for_stereo( left: PIL.Image.Image, right: PIL.Image.Image, disparity: Optional[np.ndarray] = None, valid_mask: Optional[np.ndarray] = None, ): left_dims = get_dimensions(left) right_dims = get_dimensions(right) c, h, w = left_dims # check that left and right are the same size assert left_dims == right_dims assert c == 3 # check that the disparity has the same spatial dimensions # as the input if disparity is not None: assert disparity.ndim == 3 assert disparity.shape == (1, h, w) if valid_mask is not None: # check that valid mask is the same size as the disparity _, dh, dw = disparity.shape mh, mw = valid_mask.shape assert dh == mh assert dw == mw @requires_lazy_imports("av") def create_video_file( root: Union[pathlib.Path, str], name: Union[pathlib.Path, str], size: Union[Sequence[int], int] = (1, 3, 10, 10), fps: float = 25, **kwargs: Any, ) -> pathlib.Path: """Create a video file from random data. Args: root (Union[str, pathlib.Path]): Root directory the video file will be placed in. name (Union[str, pathlib.Path]): Name of the video file. size (Union[Sequence[int], int]): Size of the video that represents the ``(num_frames, num_channels, height, width)``. If scalar, the value is used for the height and width. If not provided, ``num_frames=1`` and ``num_channels=3`` are assumed. fps (float): Frame rate in frames per second. kwargs (Any): Additional parameters passed to :func:`torchvision.io.write_video`. Returns: pathlib.Path: Path to the created image file. Raises: UsageError: If PyAV is not available. """ if isinstance(size, int): size = (size, size) if len(size) == 2: size = (3, *size) if len(size) == 3: size = (1, *size) if len(size) != 4: raise UsageError( f"The 'size' argument should either be an int or a sequence of length 2, 3, or 4. Got {len(size)} instead" ) video = create_image_or_video_tensor(size) file = pathlib.Path(root) / name torchvision.io.write_video(str(file), video.permute(0, 2, 3, 1), fps, **kwargs) return file @requires_lazy_imports("av") def create_video_folder( root: Union[str, pathlib.Path], name: Union[str, pathlib.Path], file_name_fn: Callable[[int], str], num_examples: int, size: Optional[Union[Sequence[int], int, Callable[[int], Union[Sequence[int], int]]]] = None, fps=25, **kwargs, ) -> List[pathlib.Path]: """Create a folder of random videos. Args: root (Union[str, pathlib.Path]): Root directory the video folder will be placed in. name (Union[str, pathlib.Path]): Name of the video folder. file_name_fn (Callable[[int], str]): Should return a file name if called with the file index. num_examples (int): Number of videos to create. size (Optional[Union[Sequence[int], int, Callable[[int], Union[Sequence[int], int]]]]): Size of the videos. If callable, will be called with the index of the corresponding file. If omitted, a random even height and width between 4 and 10 pixels is selected on a per-video basis. fps (float): Frame rate in frames per second. kwargs (Any): Additional parameters passed to :func:`create_video_file`. Returns: List[pathlib.Path]: Paths to all created video files. Raises: UsageError: If PyAV is not available. .. seealso:: - :func:`create_video_file` """ if size is None: def size(idx): num_frames = 1 num_channels = 3 # The 'libx264' video codec, which is the default of torchvision.io.write_video, requires the height and # width of the video to be divisible by 2. height, width = (torch.randint(2, 6, size=(2,), dtype=torch.int) * 2).tolist() return (num_frames, num_channels, height, width) root = pathlib.Path(root) / name os.makedirs(root, exist_ok=True) return [ create_video_file(root, file_name_fn(idx), size=size(idx) if callable(size) else size, **kwargs) for idx in range(num_examples) ] def _split_files_or_dirs(root, *files_or_dirs): files = set() dirs = set() for file_or_dir in files_or_dirs: path = pathlib.Path(file_or_dir) if not path.is_absolute(): path = root / path if path.is_file(): files.add(path) else: dirs.add(path) for sub_file_or_dir in path.glob("**/*"): if sub_file_or_dir.is_file(): files.add(sub_file_or_dir) else: dirs.add(sub_file_or_dir) if root in dirs: dirs.remove(root) return files, dirs def _make_archive(root, name, *files_or_dirs, opener, adder, remove=True): archive = pathlib.Path(root) / name if not files_or_dirs: # We need to invoke `Path.with_suffix("")`, since call only applies to the last suffix if multiple suffixes are # present. For example, `pathlib.Path("foo.tar.gz").with_suffix("")` results in `foo.tar`. file_or_dir = archive for _ in range(len(archive.suffixes)): file_or_dir = file_or_dir.with_suffix("") if file_or_dir.exists(): files_or_dirs = (file_or_dir,) else: raise ValueError("No file or dir provided.") files, dirs = _split_files_or_dirs(root, *files_or_dirs) with opener(archive) as fh: for file in sorted(files): adder(fh, file, file.relative_to(root)) if remove: for file in files: os.remove(file) for dir in dirs: shutil.rmtree(dir, ignore_errors=True) return archive def make_tar(root, name, *files_or_dirs, remove=True, compression=None): # TODO: detect compression from name return _make_archive( root, name, *files_or_dirs, opener=lambda archive: tarfile.open(archive, f"w:{compression}" if compression else "w"), adder=lambda fh, file, relative_file: fh.add(file, arcname=relative_file), remove=remove, ) def make_zip(root, name, *files_or_dirs, remove=True): return _make_archive( root, name, *files_or_dirs, opener=lambda archive: zipfile.ZipFile(archive, "w"), adder=lambda fh, file, relative_file: fh.write(file, arcname=relative_file), remove=remove, ) def create_random_string(length: int, *digits: str) -> str: """Create a random string. Args: length (int): Number of characters in the generated string. *digits (str): Characters to sample from. If omitted defaults to :attr:`string.ascii_lowercase`. """ if not digits: digits = string.ascii_lowercase else: digits = "".join(itertools.chain(*digits)) return "".join(random.choice(digits) for _ in range(length)) def make_fake_pfm_file(h, w, file_name): values = list(range(3 * h * w)) # Note: we pack everything in little endian: -1.0, and "<" content = f"PF \n{w} {h} \n-1.0\n".encode() + struct.pack("<" + "f" * len(values), *values) with open(file_name, "wb") as f: f.write(content) def make_fake_flo_file(h, w, file_name): """Creates a fake flow file in .flo format.""" # Everything needs to be in little Endian according to # https://vision.middlebury.edu/flow/code/flow-code/README.txt values = list(range(2 * h * w)) content = ( struct.pack("<4c", *(c.encode() for c in "PIEH")) + struct.pack("1w?O=H'>_.,bb>$? ?&? >o=|>&?pyh?<L=0L>x2ϾnG{+ m6۾UM׎Uih=% =PKcPK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPKcarchive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_convnext_large_expect.pkl000066400000000000000000000016531466211133600257530ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZp”??)ُ?f&?윿Sz.4?J?mjf@ =-> Ǽޡk+?NQ*? >Ѩ4?)>FZ?>"?=1Wj?ʶX>қ-?S@@1>I*=I=]Ω?F1?^>PK0FRPK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPK0FRarchive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_convnext_small_expect.pkl000066400000000000000000000016531466211133600257710ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ?}Ăq7>u? 2?>LN>FmÝ>\we? ?>O#*a?x%>.=t.i_>"=p> ??]=ǭ,3o= >>Щ>'><>LG?>N>b̩F?pe;c J֎>Zk>PK/PK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPK/archive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_convnext_tiny_expect.pkl000066400000000000000000000016531466211133600256440ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ? '>'>0;/>"eag.?6.U ?S&7?U>U?z=}'o|:ҥM>P>8g>N??~%>?yԛ H(?ۥBP7tz=ZfB?>%>ކ `>ֿ =KE?N>x;|8#PKqQPK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPKqQarchive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_crestereo_base_expect.pkl000066400000000000000000001013531466211133600257200ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqM tqQK(KKK@K@tq(M MK@Ktqccollections OrderedDict q)Rq tq Rq .PK6çPKarchive/data/0FBZZZZZZZZZZZZZZZZZZZZZZZZZ@Ǎ+،]ϽҽY\н;ѽB,ӽҽbӽIӽee *'ܨh |Qʽɽ1 ʽO̽4t ҇) ,+w,iN?.>OfpH佨M߱JͰ' fL Z Ѽ-.-I.XY4D =(=K= ===P=e=+нnѽнϽl$ԽӽIԽҏԽ~ =}DF>!>̽nʽvʽhʽJ[bz,+Ӓ,,F!6/< -9 J E H 5/+.6.0/ITɳ@ఽw =(=E =>(=\=R==8"=,̌'ص ѽнՖн&ѽ=ӽ_ӽzZҽAӽI"0VHN_$d˽ ˽ʽ̙˽ m:"P,9+k+*k; )dN<>潓zW  w ^.--.@3*-b氽~=1=?= =>y=b==I=ZC牌>ннѽӽҽӽ)ӽxҽcq {Noョ.=򽤝˽Jx̽΂ʽ̽n8P+8?+*G*3x85e߽XE귰DGϱN@ O / ! d-Hh.-f<.ᮽƮ2 װ==s~ =2: =ؚ=N= =\S=>  { giPHh+iRXS SSoEST_T S ?O:?S>v> WV*>&>>  Q ž FPhRhbhgfT )SSDRb5TGUU;TS?>D?>YdVV>/W)) nUbx2'zCyxHa_bWbrbL:67r584@L[lLMHKLbji0kuj#PL}RQQKqdUZ=U=6= ={>jD>L>> < f @ ihi]h|RARR-eRrTTTS@M@N?Lj?/XzXRV:WwiҼwpv FyxE2cYdbvaE8h#808g8MLNKlj!j ifP6O(QQ ܚ֞====>h;>>ҍ> | q _ dini|-irit|SRQ)R%T:T] U:U'?@?@?(XIW|.VWńq ބx xxBy0bncdd9l9.7D8V*MiMNdMMYl.jju?jQPP9O(Icjfy{c=4== =y>7>z>~>a7_)^V[ -]fEM}L~LNKRcbdSc!dCBEKDDqfD%f7feʖ\65Z0Yrn[jYjI?Ɨvx> tq.׽)D׽ݡսiսksc彣㽺佋Anzl7Iv>ps>t>u>v>v>w>u>[va(^^`,LN} 2LLp6LcM5dddgcEDtDQEp6ef TfIfBx앾땾v2YZMYgY$5`tyDvPzrgoS}սKԽCս%սN"zὡZoD`.`^nl:Tu>&t>jw>hv> w>5w>J3w>u> ^c\=^& v!L{MwDKLbnd+ dJed~DC6OD?DRdf[zeqd rsc:ZeZZZ_D v~x rpԽQAԽDԽڽ~O%$7%DA`*]@:P8eu>(w>5u>t>yv>.v>bv>4^]s_X\* ! T P,LEL)LLؕczcade*;D CDCkCedkee-B!ӕiYYݳZZ6yttxֳԽ`5׽vԽ"ҽ56C㽫T彎EBX"6@i,u> 'w>j7v>ks>v> t>fw>u>[G<C$\JEMX  }A\?v@K@PN\O*OM!@p ڽ ֽڃ׽V׽58,b&)(٧'ݽؽ߽}ֽ6"齈 (}GNa]L+VEJb@zp߃J%Kȗ== = =r>$>^>?>Fw>w>gx>grw>LHcD1O6J y[ ]i@~/AFAKvA:Nd2NNXMM/o#rԽսdٽL׽&&i(a(Xfݽܽ08۽7ܽ?q_k彑T 2 MVS SNRZWw3j v:q =Li =2=w=̱>/>Z>g>x>hy>b_x>Ux>^GVF>4#>x#>"x>mw>Xx>Zw>fKrLLFGR: G@!@8A?zMqaMMJMRv .&,սDֽaٽuRֽ) ))(ֽս޽Pֽn齠㽸5d fA!KpH UP֢F ej͖4$o_ҧxP,=N=5= $ =*1>$>Wo>+>w>*v> 'x>Ww>[^==ط==Ĉ=Ps= =ü=?‚ Ž KĽVZ> =FJ==T}=$pe>e>lf>?>f>P>5$>d=N=`=&q=Z=v==^P=}8Զ=½NĽHŽ.:kـ=m1==}=<$څ<<,iRc>(Kg>bi>>;>)>2>=P!=,=ռ= =漺= ='ʽ= _BlýĽ+B0 1 =<=g=*=<{ւ#zl===1^=j݂^zw {w Yq7 d>-g>e>f>>a>>(>=A!===_===o=Wݯ7y½VOԙP < ==x== (dg>4d>nd>,>r>>V>X>E<< < N>>C>~==E5=:O= ;`o;(;Yw;J=UI=h=bY=f`=H=)=&}=w>}>l>p>8NJAVO_tC%0pa)5>p{>}>خ~>>}>w->>1<<@<3<<%<ţ<C>=>>A^==pD= =0r};@?;;`:l=(7= =fR=SV=[==*=>3>@>B>hMAe+8A\*i FXGhO ~>m~>>ui>Æ>U܆>'Ն>y>\<hBXԇK5@>F >>>ז= ===l2;;f;` _;R=+&= d=1==̰=J= =>x>u.>>ޝXdy3: SĻ<~>>#J~>&|>>v>Q>> <4X>W>>g===6=H;0;pC);;=J==ѝ=L=o={^=k=>qU>`">>  6 GQء} 돻qw>G->1}>g|>{>[>ӆ>>wC=:E=pE=-hO==O=l=<=<& > >!>pO>rT>¾Q>0S>?=*=D==<<=,)>>y>}3>y0>w2>/>D=<==yJ=MG=-Z===c==< <= >|$>">Nj!>_S>3R>hWQ>6nR>L==& == <p>>O> 1>1>1>p1>B=5TB=E=E=%=X==#= &> >>S>i$P>R>oV>=A=;X=%=>M>>C0>2>/> ]1>H=^L=YG=IB=\=f8=L}=I=E. D:MƸE'd,1"7P=܈M=JX=N=t9=%<=8{7=:=83 |====w-!>T">">R">BdP>ҖR>Q>5T>==W= =H{<չ=qO=.!>>7O> >lu1>,+0> 2>Yi0>F>8=i9w =0&<*p>]>x>zZ>KY>]>X>t`>_>`>^>؈>N>y>x2>yq>r>p>q>Qd^>Tc>U^>a>$(>%>i &>\)>>>,>c><>z?>=:4=P=H =H缤޼L0bkEu>\|F9|z `zz콃q|˒ƽDĽTƽUý>>>ݫX>[>&\>Y[>~_>{J`>y\>_>j>.> >v>Zs>rr>Yq>r>YXa>~`>`>^>'>NW&>n'>'>>9>J>>>6:::s:(u=yE==C'< 9,b漶*.㽥㽞11~|~&z;轰`彑1j09ýq>Ľ#Ľhi<ψ<< ~<by<>r>>N'>a[>i]Z>Z>V[>/`>Ua>k_>^`> >x>K͊>R\>q>jp>8\q>kq> ba>4_>`>h`>f'>,&>&>W&>h>>r>n>l):7/>D9V=P6==< p罃佀㽗ڽz}{F}VXrM?ŽýɽQj>#>=Y>WW>\>X>,_>4a>`> a>>>> >q>)p>ip>4r>_>`>`>b>P'> (>| '>j%>6>>>fD>B>:T>7$4=k'=o.=+*= 8=^s:=u;=G=DbP Er .%.F.-j);r+\N)s*~q9!054})2I*=B=s=P=%x>>+>>=+s>q>:o>dI> J>.?L>J>\i>>>S> =t[=B$==$f?@K==ٙ===̞=-=U2=.=0=+@= :=P:=0=sCRqGe(.-f- ,+*ɓ*) UG+`9;<1-==U==P>>1>>:n>ds>q>4r>aJ>]I>\J>H>(=>>0>">g=q=@=ګ=V?Bp>>=l=+=Kޙ=^'=ɦ-=^u*=j.=Aj@=gB=E=J==(@6gTudD/-.'0[+3 ,+N*!9?[2a+7;4=Q=Ty=+=~~>>(>>/r>s>Uq>.q> J>TI>o9I>M>Y>x>> >G===~=H=)AN?`l>^AQ= =]=V=e*=P;,=,=+=;='B=jC=hGA=BA!FӌeH|1--"..L?,5,*‡-;$Z54V-6xB(==^=49=.>W>>~>غ|>p>"q>t?t>r>H>}J>DI>J>b>h> _>C>==xH={=`oMj|4plڼؼlͼk`vq[bu|ŴxmO|pvxVؼ^俼`x:s 친k$ "(yyyyYpwysu85F^7N45,Y  `zK@J0>->0c0>1>>|A>f>^>2>>2H><>(>> >5>Qm&p`"qp༹ܼѼFؼIs'B_jjN8Mt歼Tn`l+39>;a!!zaz84y2z=su4sAtnZ454-5K:{p8 0rpÂ=A޺-->S->D0> />>u>d>>jN>}>ʆ>>> >@F>/pmml= ݼKἵa`)h o|x>ۻl_ֻHv@ʧt0jۺx^ D: #!!`{Cyj5yz5{FtIQtOtuH4?:4`4q}549웻eުf0>22>S1>*V/>>I?>>,> ><>݆>;>V8>$>>b>osn$sMmT Ѽ]TۼhmiB`qN[ лP Xq@xH{@"9F#Bg"h!!MzHzj yyt,rs)v"5[4 5b5+8G(;@ix`׻0>1>2>$ 1>/>P>5>U >S>>J>~>>H>E>r>m\ฝ@ &/S!q02.A,=S<=X<=7===U=_=A== dbj\tdo?>NJ"A(ͽ]˽νȽU==wO=pL"=<#= !=‘$='=5>Q!> >h">V=V=v==CM>SM>}M>zM>]u=%=7x=R= 8#9m1hT6JS */0*<.H<<!>P-">j >.\=)=Q=o=K>K>nM>~K>OW=#=L=0=%. lqdGJbI5V.,j1 ,1o<=ca<\˽ = ==5=R+=00=~I)=_ =!>1|>~!> >=So=YY=<=K>RZK>L>M>E=s=&=!=rhkh2>B^d.-t+җ.=(<<<⣢=#=b=-=Aۃ==:t=NJ=hfgZX+ybh[gɽPɽ νGȽ@=J=,=[='-=,=)=l,(=>T">z>{ >k===D= K>wL> N>c>L>>=ۖ= ==̐)ɻTO6&o .$5Z@6ZoULw>Z>>צq>=>E>K]>|X>=[>tZ>H>J>J>K>ͻb{ƻ,L >cLDQeXULPIX<}>V>.>?<ޒ<Ō<ΰ<6(=J.=U=#=˼="==b=x= En=fr=u=L=.=ݴ==Ip<~<0<1jr>K><5>K]>PTX>Z>][>*K>PbL>9K>`I>tĻ쿧Ȼ_ZA_,0<nNISP<<Ъ<_$><>t><<7ק<<#(=%Y"=S$=.=}==T=RQ='k=Pi=ǁk= w=M=6t=>==o<ܰ<< >^>Ͷ>>pZ>Y>uZ>]>gI>I>"`K>H>XǻĻRλb⦆z \SJ<FKQה<<<6/> >d?>P<<<қ>>_>-[>Z>X>_Y>H>I>!K>J>wVs}6EVyPjK["h#rxG<1ۗ~Zc>v+d>`b>ŕ>}>>Ȇ>>k>?>>{V>b Z>X>{Y>'>D">,&>%>~q==x==p >o!>,!>">L>~ > >">6p>ޅs>~(q>,p>3B` xj$ `->f٭b2{b> c> c>L>c>d>F>zZ>=>>B>pU>3U>oV>,S>b'>$>&>2'>=8-==^l=E >Z,> >^!>J > > >f>r>r>+q>2p> Нz*$뽀_ 'c>ld>ed>Ö>|c>u>Yn>t>b>:>>|V>V>yX>V>#&>%>5%>Ѷ%>6 =Ȝ==]= >u >k">65">r >;>H >ya >p> q>{Mr>s>Pr޷g8on:" 1窽-nM޷֍<c>qc>tc>/d>̖>>⡖>Ԗ>>>]>W>"W>ߌY>nZ>q[>'>S~&>+$>U#>^+=<=3==">+u#>">!>,Y > > > >Op>[q>!q>r>ξ8ɽsAݮ4ogҼ?ݼl_qJdFjf=`9=P=8= =t=n=a==)?>@>?>p>>$i>~i>i>k>2>>>b >G>TI>H>oH>,>0> M>i>ї > >m >wj >}>>=5?>p>>;C>JS>.O>R>!.R>[>>{R> ~>@< vٸiÙ(38ҬMʼ]¼SʼX&j?aܡafz=R=:b=@Q==LJ== ==>@>15=>^>>Wh>Nf>j>j>,l>>}C>[> H>F>G>;E>B>/>>~w>t7 >> > >]?>t<>x>>>>!Q>/#S>DR>FU>}>>R~>ղ}>dnҾH翽 轤2P齽뽙fhzU!Լz[ϼ<Ӽ{ռ#ecbΝ`o=×==.c=Ɏ=d= =M=6@>H?>h?>>>™g>g>,h>&j>M>>t%>>|H>AG>I>6>>>> >Ga >b><, >t>>M=>?>=>P>S>kQ> O>Rv>~>>">#G]+Yo]뽯 @ Ǽ^ھ0ۼnfbV^fׯ=H_=!=ĭ=H=Bm==^=|@>9@>1@>+A>fg>kj>Lg>?g>|>Cq>ܙ>J>d6I>H>:H>NJ>f>>[>> > >(2>z^>߮@>*?A><>?>RR>7R>Q>P>>v~>>>™ Մ Q<7>k>&>dT>[R>J U>6 S>{>{>y>{>jxl>Hm>؃m> n>%>(>׀>{>UT>=S>PfS>p_Q>ƙn>o>n>o>M>u.N>xM>eO>M #> $>$>[#>"x nKG,<ӹ<9ơ>>N>Y:T>T>9#T>cT>p{>z>z>ry>n/o>uk>n>1to>n(>kO>>>Q>S>/R>jR>o>m>l>n>N>QO>O>N>">$$>^$>">@cB'0<=2F=^cC=*A=Y==ۤ=01={>!E>ɀ>~>T>YS>S>S>_|>|>|>2{>}m>-j> Em>"n>~>{>Z >>4S>PS>R>YU>m>%n>3n>Ip>M>ǘM>RM>DN>$>g$>$> #>T o >>>tvT>3BT>7S>DS>|{>{>!{>}>n> m>k>D l>~>>J>>0\R>?R>|T>'U>o>o>ik>Uo>ӣL>p(N>N>M>ŋ#>9#>t$>%>u; ;;;a=m=lՙ=xݝ=_=j= =====f=;;x;|o;?b==h==Ϯ==$=R=Z=>˜!>#>A >=v==qB=*IN>ʚO>N>;$M>^(>'>q'>'>j#6>25>8&6> 6>z/>->/>*->X>U>|W>bT>O->F->:.>_,>3=q=ҧ=)=*;;;"a;5=a=ӝ=A=Sw=_=j=S=;=ާ=F=[=(B;~ӕ;l;H;== =:3=== ==>"[>]>s>=/=b=M=M>1DN>cM>/N>k&>'>'>|[(>I4>5>%7>а4>->,>.>.>LU>V>V>W>V,>#.>],>,>D=!=6Χ=Τ=Vd;;N-; ;==v=w=iA==B=G=)=ɍ==>-=x˒;\; ;`;=='==ѭ===qɬ=>>|> >==ֽ=pl=RM>M>^oN>&>(>%>7&>5>]85>Y5>Q6>s.>G->T.>A->&V>*eV>W:U>EV>,>t,>,>->ߐ=@Υ==ϩ=BB;;Dw;Ft;ԧ=====³=C=4s=T=2==o=N;*x;_n;ꃛ;1ѣ=Ѥ=ϣ=Z=2=Lͫ=d=Bɬ=>l>>W>=0= =D=L>N>VN>=M>'>|'>P&>&>4>V5>6>:6>| .>#.>Xx.>R,>V>HW>&V><]U>,>y,> ,>"W->%(=3Ӧ=?===(=Ѻ=W=d>}>y>>>>>7>=>@?>/>>qM?>b > > > >B7>H7>!6>08>n=: =7=B=$=+=2*==8=]S=x=w=E>!>b4>>.[>^>\>^>x i>|~i>Ќh> 7h>N"d>d>Ld>d>>>?>=>C?>0>>P>>W=> >> >w> >>1w==p=^=>>>>>r>]>h>p?>!@>0?>?>O > >K > >H_7>47>6>g6>.=z#==w===f= =.C=@==4=>f>1b> F>{^>*^>E]>`^>_h>i>-h>i>qpe>Qe>d>_d>)?>+?>k>>C>> ?>>>Lj>>>>D3>|>!>e >qu="{=m&=| =>> >*>>Q>->>;?>>>g/?>I>> >W} >] >< >8>L8>m6>M7>==Ƭ=!i=nH=y=z==J =?=۲=0=&>>Z>al>xh^>]>\>D\>i>@j>g>i>c>Vd>c>d>[>>5>>->>R?>>>;?>)>>/?>fZ> >)4>>8=Q=쮢=2=~>q>hI>6e>$>>>V>Jh>>ԇ>>ŏ>>(?>. > > >p >7>\9>[8>9>NZ=^c=l;=l===l==| =2=E===F>>>Sz>]>\>]>3]>\h>,yh>h>i>!c>ld>d>d>>>>>>>?>?>?>>>J?>g > >ig >><===8=;]B>.v?>@>i.@>Q>a>D> f>]> >>M>0e>Qi>rh>4ph>bu>u>|v>n v>N>>t>>X<>H>>%<>t5?>/>`Q,>1->޶.> >HÌ>}>In>o>>>y>>>U>>ą>o>]> :>>U>&'>H>d{>Bw>y>y>KR>Q>TS>"Q>6=67=ږ=#=@>D@>5A>@>8 >X>>G^>>qB>>>%g>(4j>g>Tf>u>/t>Cu>ru>M>>^>Kw>z;>O<>\>>e:>'/>t->/>->Ѝ>ʌ>Q>`|>k]>;>]>.0>1>B>Y>թ>>A>^>>:> >s>>wy>qx>My>z>=S>^S>R>Ef===Z='@>xA>l@>@>7>>g>|H>gI>1>>>dCh>rf>Sh>ah>VVv> v>Bu>$@u>}>`>>9O><>I;>>>X>>0>t/>->->>֌>-C>d{>x;>b>T>\>!5>8p>*>&> 9>>|>>>>>0V>Px>{>8y>*x>>S>Q>Q>S>=dٖ=s==mA>{A>W@>E>kI>Θ>t>d̴>P>9>>&Tf>۩f>Rsi>"i>`v>w>v>7v>A>~ >>8>K<>”>> 9@>7?>\/> />,/>x.>$y>z>Wb>>{>>> >_>H>ީ>䡩>k>>dž>>a>#>>ś>mz>z>y>Qy>ǛQ>zQ>R>eQ>>>>>@_>0`>G`>`>D>%>b> ԇ>>Z˅>s>&>&B(>o)> p)>)>6:w>v>u>sy> =,'=(n=-=..>E >$>h>=(==X=W(>>>sq>L >o:>>i>>@ck>;o>cl>1 m>>c~>R>]>=.=j=r=љ>K\>y>J>ě|> |>h_|>A{>[>>ʽ>#>Ta>3`>s`>}4a>,>=>c:>~>L># >7_>>(>(>}1(>6'>Tv>x>Sw>O==Ʋ=r=2>=>K>>j==8= =8b>>O>g>J>I>>w>0>l>m>їk>l>C>;>2>`>=:=2Z=.&=g>O>o.>>}>}>}>{> >$>O>^>`>>_>P`>_>ȿ>>l>q>^>?>x+>z>n'>8(>(>&+>#v>x>1w>tv>=ܴ=>==>X>@>N>=d=r=*=> C>6>X>M>>a>f>k>k>jOl>,m>>>M>W>э=n=j<=b;=>u>>\>o|>?}>P:|>{>&>>d>>Oa>?_>zq_>=^>ǧ>ć>.>dn>t߄>,>V>M8>x'>_(>W(>U'*>w>px>Lu>ރw>P(=M===m> > F>! >====x2>:R>Ŝ>>g6>1>U>>wl>k>k>7m>pH>&>K>v>=᭐==(Ԏ=7>>>q>Z|>:z>N9}>z>=Ǐ=N=]Ѥ=&>#>S#>#> >e>͇>f>܏> >r>>t9>:>;> D9>>*ɀ>8>G>2=e=:==Ub>Ne>Ec>sf>GvY>>Q>RV>.U>:>c(>> >??5??հ>Ս>!۲><>As(>,>p)>2+>=[;=k=Ǎ=(R> > >h>El>vl>m>k>_Ȥ=Z=2=q=`S$>*W">$>$>4LJ>B>T>p>Q> A>>(ߏ>+!;>;> <>G;>X >P>Q>F >y=:=fg===ab>d>Xd>a>/'U>csT>vU> W>^>\> >">;??-?9?> Dz>:>tP>*>Kk*>D)>(>==N==Y>Jɂ>U҂>Մ>:l>o>m>;m>٥=z=p=ӥ=">$>R">@ $>P>F>:J>`>~>#>M|>=><>g;>.F<>*<>\>3\>`>^>n=%===d>fc>f>yd>T>F-Y>U>_S>q>%>؈>>???n?>t>Ӳ>x3>T*>c*>f+>(>qE=K=͌==>͂>D>q%>6m>Ym>Al>fAk>i==h=ڦ=$>@z$>QD">p#>GY>Մ>S>>|> >Ґ>g>_:>9>{:>O:>>b4>(>Z>J==H3=*=_d>e>q}e>f>KW>W>JT>VS>T>p>r>\>|C?#?^??۱>,>gS>><*>*>+>/->\Ր=$r=:Ԍ=:=G>>K>Z>{l>k>m>k>O>K>N>CO>)>U>>N!>mqp>~t>Ɲr>9r>u8>?<>9>:>*>*>U*)> *> Ks>s>s>u>& =۲=+=y=cB>F>B>_F>pi>d>Jf>d>\>>J>Y>r>aE>>{c>>S>>>v>fL>b<>U<>.>d{>>HR>'>>Z>I >ǒ>m+>\>:>rO>L>LP>ԿO>҅>v>晅>梅>T8s>s>r>pq>a:>:>c9>_:>)>*>)>+>\~s>]Jr>Dt>`t>T=蠯==ɨ=$C>A>?C>IB>ag>e>)h>U=i>E>>Պ>U>>z>}>>m>n.>Vl>@>>鹏>o>KH>T>N>+>ۖ>y?>)>T:>>Y>f>M>+>N> O>EN>M>>>>0>s>2r>}r>ϋr>yq:>8>=8>a);>*>+>*>p(>Hs>CIr>r>Ct>s=A=n=Ő=D>B>C>F>f>!h>vd>d>q>/I>>>ׇ>>I>>>qS>>>>l^>G>8>>j>>> >&>>4>i4>lֆ>,>t>JO>TP>2O>M>)C>>3>T>_(s>r>lr>Ɉt>I9>9>87>:>T*>*>wL+> ,>Yr>Zr>r>vq>t=Bޥ= c=Y=6B>kG>!C>C>f>9f>.f>Pyc>rp>>c>Y>Xf>>]>q>>x>Ӽ>i>{> >f͏>>>b>>8 >x>̏>> >U>V>칇>> d==8=(=R>R>P>,S>>>ԋ>u>ŋ>K>Fǎ>2Ύ>2>q>r>*s>tr>}>~>}>MS>pS6>3>hl6>+5>$z>/|>|>%T}>Z>~>>]n>A>>%>E>>-u ?IU ?vS ?A ?[>S>>^>$>+>c>˜>ƒ>|[>^>#>F>>.>>G9>>`>4>p=ކ=jF=u=;Q>C S>R>, T>>LM>Ջ>%ˋ>5>>>4>r>3s>fs>gs>~>|>t~>! >~&6>6>L:8>Y5>|>Uz>{>Iz>V>'>&>>>>>k(> ?)F ?N ?0& ?>J>>|d>r>%>>"d>;>k>ij>j>52>>->C>>>>a>>x=)1=rK= =Q>S>P>[R>qg>Ћ>*l>WG>ю>;>Ɏ>Ǝ>Ns>js>s>@js>}>x~>V~>}>;C7>'6>R6>5>N|>Wz>j|>v{>i>ɼ>>>O>*>>(>f< ?m ?E ? ?/>>d>>;>j>@7>C>`>>>>jU>\>:>2>>'>E><>=q`====Q>Q>mQ>R>9>>ޭ>> >'!>>x$>Os>s>t> r>Ϲ>>_|>~>&c7>57> ]8>H8>N{>?$|> z>{>>h>޷>_>j>,>]B>,6>i ?MX ?^ ? ? >F>$>d>+>>ʜ>>R>k>f>/G>>ڰ>>L3>c>^Ѐ>xρ>އl>/h>*l>l>>u>B?>>U9>l> %>x>xO>=>7>W>Ň>N>/؇>^؇>o~>ـ>~~>>&O>"N>8O>OM>uc]>:__>17]>p^>\}>/>r>E_>;>"a>>B?>0>>>">>bk>>u>Z>X> >->ex>>d&>>>22>t>W>s>?>ރ>>cl>1j>m>vl>hu>>>8>>>)>F>> >t>@B>>W>>U!>z~>ހ>>]>O>VM>iM>N>^>e^>]>p^>>k>欩>>>>">:&>8>I>׿>߰> r>=>U>o7>'>0>K>$>D >>>>>lD>#>>E>=>`&>}ӂ>k>}k>Bk>j>>>>>B0>`k>b>>?>x>m>M>>A>>>8>^>e>~>f O>9O>HP>>[>]>d\>3/^>K>F>l>>W>1>;>&>>]>k>b>?><>,>w>`6>> >u> > >>>Jd>>2> d>A>>xr> >dl>rl>il>Zj>kձ>>t>r>t>>>8>:>4X>,>0ѧ>0f>༇>-G>>>>o<>0>JN>&O>xN>M>6^>uy]>7\>^>>>G >v>>Z>d>x>'>!>R>޻>f>Μ>)>>Ӛ>7>^?>>~>t)>4n>>*>>>0>>>?>>C>B>nC>~B>gk>|>4>,ܑ>4>/>1>>UW>>v>>(>l>>>嬻>xT>z>>D2>#/>>V>/>z>>Z>>]>>>>t> >>#>Q>R>:>|>iؽ>4>M>o>%b>>5>}>*}|>/~>~|> r>0m>9o>4n>}P>LO>P>«N> C>cC>UB>C>t>Z>̑>A*>>tL>&>,>>>l>gf>0[>>b>Gw>N^>˕>E>*>k>>N>̜>Ƥ>I>Τ>t>U>+>O>}>=>*>m>~>K?>o6>>>葼>g\>>>+>>v>x>z>-@{>{>y[z>$2n>m>bo>o>TP>\O>-0P>O>$>C>=D>F&B>B>=>h>/>(k>`/>>:>>,#>.>{>>n> F>]>̺>~>ּ>A>r>t0>>*>>,>*>L.>1>>睯>Ұ>{>J>r>慸>{ʷ>F>Q>>d>>>YO>P> >5>Fo>|>z>5|>9{>|b|>Ko>]!p>gn>wo>O>(O>NO>TQ>C>idC>B>1C>P>o>>w>FJ>ݞ>#>R> W> >E>7>|,>>R>>>80>=X>A>ؿ>>>> >>d>">3>"°>Ư>>>L>b۸>~>|> >8>>>>+U>Q>>F>>X>Yz> }>_}>E|>n>p>dp>O>fN>3WP>%O>&Ƶ>V>>P>p>jw>>'>j>>>>@>>>W> \>>>z׽>>K>\>K>:>4>6>>E:>D>P>>q>zB>>>?k??0?>">>S>>Υ>lפ>gϥ> >0 > >pS >+`>o>>X>7>6>7>g7>&>\&>nn'>c6&>F>f>>ὶ>>}q>=T>m>!>qH>b>>>n>L>V>>r>c> ">>d>>P>>(>w>y>>UV>>O3>]>>>>Zd???h? > >>s>>>A >-4>5 >_ >" >} >*O>g>>9>wU7>}6>7>J8>&>a'>q'>'>狵>-ε>3O>>:y>>8>Fr>>>:>>>o>si>8>>>z[>>>>Ay>>>=\>i޸>ퟸ>>&>.>k>>>*>3>&>g??C?By?v>s(>D*>D > >l>)>؍>- >GI > > >>2>%B>>7>7>7>6>)'>a&>S&>2'>_>r}>p>ՙ>i>>f`>7>b>G>M>L>:>82>(>>>>>(>C>N>>>> >j>=۷>> >>n>l>}3>\9>oE>>LT?D?3??>ľ>HC>9>0<>sˤ>h>>7# >6) > > >>>D>M>7>C8>C7>5>t&>r%>p^'>&>y>y>z>y>寝>.e>>ě>>j>|>Ę>>ȕ>>>(>1>x>֧>>HԞ>:Ҟ>NӞ>#>A>)>Dʮ>[>^>>'>R>?<?r??\ ?r ? ?J ?ͬ?fo?x ?h? >t>壦>BӦ>>">6!>+ >X>dY>PV>bY>[>*>l>.>a>> D>~U>y>E,z>$y>z>!R>l>Pw>>|߰>H >>M]>>P>iΖ> ٖ>d>k>(>x>>q>.>V>I>/ >q>ڼ>>}>->>?(??+?t6 ?? ?K ?u ?*?k ?T?v?>>*>"_>"><$>Z/">">Y>5X>ZW>=X>>vO>q >FP>#$>X>Gq>q>kx>Jz>x>%}x> >>>:>H>Wp>"Y>ΰ>ձ>">Q>0V>4>>c>3>B>c>1>z>`>y>݀>ܮ>_ͮ> @>]2>>J>k?!<?Fx?x? ?E ?-i ? ?l?8???9>>dh>>#>!>">n >W>6[>Y>Z>w >Ȃ>>>@>>(> >z>iby>Uy>fv>>D>u>|>>N>V,>8> >c>n>>p5>Т>'ߜ>p>> ž>>*>P>>>>>Y >>>MO?y?$??͝ ?0 ?R ?S ?A2>̥>L)>%">>-D">$>Z>&Z>$X>lZ>*>DQ>>*>]>q>.>Oc>> >>o>2>pz>q>Ϲ>3r>>9>2>Ar>s>Bt>xr>DLQ>RO>O>P>9H>%>_Ђ>ڃ>>>>ԯ>>}$>Y>Y > ?D??%?{F ?-? ?f?|?X???q>>>U>`S>C>>>>}>>>ɮ>g>+>i|>CW>h>>,>>х>>>t>>>>һ>.>'> )>Y$>Xr>B s>q>)r>`Q>O>]P>P>>e>>|>گ>v>x>u >>>7>b>r??(?ү?R ?= ? ?d ??i???|޴>>*>,>>/>9>Ń>8S>>K>G>>ԭ>и>>Z>>•>>>߅>f|>w>@5>?>f>>\>>3>j>>s> t>0s>r>%O>L P>d,P>ZP>>⚂>o>=>>ٰ>H>e>>.>>>J?-??ٍ?U ?< ?, ?0 ?=??W??>d>}[>B>Y>>Q>`>>Ѯ>(V>s̮>z?>>mʸ>j>>>Z>0>Z>>]n><>>`>>T>- >>T>͕>:u>Bt>lt>gu>*Q>:hP>VTO>:P>>3‚>>䉂>:>~>+>կ>s>>>>P?-?j?z?n ? ?` ?< ???]?c?*>>>̏>>G>b>ք> >U>T>z>7>Z>>J>ݿ>_|>1c>6Ε>l>>7K>S>'T>VV>U>`T>Lrb>Kd>`>b>a>s>Ґ>t>W>5Y>Y>=X>!>&>`$>#>[>X>GY>\>>Z>>>>>>>1>Ǻ>>>m>>2>?~>>k>Ms>x>'>쥝>>>|>>y>>k>>r>C9>Ӈ>>te>Ddž> >>>$]>U>jV>ӯT>IU>b>Xa>փb>ha>ɐ>nB>僑>מ>8Z>N[>:Z[>Y>7">l$>\!>V4">X>X> [>r\>{>s>>>@ >F>k>%>M>>>$>*>5g>D>G>ϒ>{>{h>/>՞>@> >=> >T>˼>ν>D> >K>~>O>>>>T>ҽ>>G>U>U> T>U>=tb>b>>a>c>j>R>>L>lZ>pX>Z>&[>#>l #>\#>V\$>pY>Z>FW>J([>>m>>X>>F>u>>>v>>ƫ>{>Z>>3>\n>>A>tv>>9>0>d>T><>y\>q>w>/r>Z[>>> !>%>M>F>>'> >PT>T>/T>4-V>c>~b>hCb>P-d>>Ŏ><`>En>RY>V>iY>5X>]!>#">w$>%>[[>ƶ[>0Y>fCY>ĉ> ؔ>->>v>Hh>>>C>]> c>>_w>>P>H>m>>/> @>&Q>l>C> ݝ>>>_>g>>A> N>=>+>_ц>|>>&l>n^i>[j>`fk>>L>SR>*g>m̝>>'>۝>OK>ޜ>~ >#> W>DU>wT>U>R>1R>R>pR>Bڇ>^:>n>̇>`d>_>Q/>`>>>>b>>}>]>>Y>o]>m>>>E+>w>>%{>_]w>y>cy>H>Wf>K> ̸>x>I>S>>N>XkP>YaP>dP>j>i>k>1l>>>ٹ>6>m>:>t>& >6>­>1>>,lU>KU>U>V>(Q>.Q>vR>obP>>> և>ڇ>ޝ>؝>)>2.>.>_\>yk>>*>>>c>l>Fط>,>u>rװ> >>j°>y>+y>Ny>b\{>S>w>ܸ>><>>m֤>+>WP>MhP>P>UO>j>ԡk>Eej>:j>>Xù>>>G>ٝ>>>>Ǔ>>C>"ST>wU>HT>T4U>aR>l0R>!S>PR>X>j>p>>I>@B>d>X>vi>>|6>kU>6>~>r>>۶>|.>>>̺>N><>{> y>wx>[y>Tgy>> >i>>>2>e>Z>P>vO> P>O>l>Nl>k>i>ݹ>>Er>>(>>>y>q>KR> >b~>T>T>/U>LT>Q>^R>=T>FS>! >á>>>}>М>Ϝ>U">̨>>zd>.>Ԏ>>5>>'N>µ> >@>>>&x>)d>y>y>a>x>0'v><>U>J>> >>Ў>F>EeO>s6O>feP>P>^>3\>\>D]>,u>ߨ>B> b>ۧ>i>>>y>y>+D{>y>G; > > > >O===V=>&y>Dp>>;=>K<>J<>$;>aT> Ƅ>P>wF>D>ƹ>(>M>>@[>:>c$>F:>O>4L>꧚>2+>)>*> *>RZ>X> |Z>W>OG>E>F>sD>V=L=03=*=f]>n\>V]>^>>%>z>>w>L>0>ᯧ>y>'y>z>]Bz>F > > > >,v=<=!1=0$=R>>F>j>S<>w>>= =>b=>!>->q>ʱ>>>Bױ>P>»>q>>->韙>I>k>>>8(>*>&c*>g+>͖X>cY>ʭZ>]X>˿D>lcE>D>jE>b====[]>:^>Ps\>k]>Zn>[>D>&>>^>?>ɧ>y>`mw>CFz>z>=7 > > > >C=s̍='=C=l>>>V>>|>h;>1H<>:>ٗ;>{7>>>H >ر>e>#>Ј>;>>=><>I>Ҥ>~>^>K@)>+>Vd)>Ƀ(>3Y>V>cX>bV[>E>xD>UE>bE>)==7a==Y^>*^>|h]>-]>*N>͛>>>>P/>M>yѨ>w>y>qy>Cy>> >'D > >K=e=/=<=C>(>BO>h>!l;>\6;><>r;>߃>+>>P>>>|>x>1K><5>B>>>r>R>'=>v*>4z+>+)>S)>W>6W>Z>>V>E>C>%E>GD> === =Gnp>m>n>e[o>>%>K>zˢ>U->!>>*8> A>B>OB>A>C==<=N=ڳ==´=x=e/>W->,.>/>cS6>*5>(6>5>(S>R>dR>_S>!Ww>s>w>dt>Ћ>Z>`q>S>`d>e>aUd>Tf>>> >*>>>> >>?>>>.====tn>n>a@p>Y*p>>̢>>~>>>z>s>,B>A>0A>>A> ==:=}=@k=*=,=p[=NC/>&e->ܽ/>60>r5>6>$7>5>ñR><-Q>R>Y]Q>'u>ZPu>x>w>>{>,>C>md>c>Rye>a>>Z>Ĝ>YC>r>i>Y>‚> >>Nj>C>==!=I=,@o>~p>n>dn>câ>>>>oV>V>ǩ>|>T.B>:B>B>58C>=VS==\=]===h=/>,_.>.>6.>Hd7>85>87>5> %R>S>N$S>S>'v>Dv>y0v>t>B>V> >%> c>mKd>d>d;f>>p>r>F>G>>a6>>j>b>q?>;>p=B =D==KIp>mp>Ho>m>Ѣ>> >P>*>^>0>֩>2B>^A>@>B>====x=b=5=+=a0>/>ǫ->:,>6>6>2?7>l6>VsR>U>GR>R>Vv>u>.w> r>>l>Nj>S>vd>Me>d>Vcf>(>>6/>Q>E>L>>>L>d>>>O=M=-=D=>>E>(>12>W0>2>x0>b>Zc>gb>b>s==O==Nj=0==|=#===.=Wd=qO===g==== ==~s==D>>>>k>4>G2>3>1>/Z>=g>Z>g>V===ϣ=^<< <=hD=@=&$@=L>O>~>d0>=2>o1>%2>Z]a>/?a>kb>a>===9=j=2 ==H=V==}==p==L==T=J=fl='J==2="=`3=h$>>>Z>1>f3>3>d3>z>js>J> >==,=}=w>I>>1>1>0>y1>a>a>a>:c> ]=X===ۣ===>=J=}== @=b==Z==eC==3==`==̅=.=Ҵ>ʚ>>>$3>X3>^2>H2>>#>>4>+N=v=:="=&=9>=== A=<`,P>h>>1>1> 2>J0>\|a>b>'b>_,b>j=J==f===o]=6====`==$===(=gږ=b=C =ъ=D==|ͅ=={)>˱>">>1>2>J4>k2>K>>>KX>υ=Ȣ=w==p<><4U<=@===@=l>>>0?N?Ɓ?H?,˶?rM??(@@@U@@@?k??:?@ @@%:@Pa@{#@)@;,@;,@;,@;,@>>>>0?N?Ɓ?H?,˶?rM??(@@@U@@@?k??:?@ @@%:@Pa@{#@)@;,@;,@;,@;,@>>>>0?N?Ɓ?H?,˶?rM??(@@@U@@@?k??:?@ @@%:@Pa@{#@)@;,@;,@;,@;,@>>>>0?N?Ɓ?H?,˶?rM??(@@@U@@@?k??:?@ @@%:@Pa@{#@)@;,@;,@;,@;,@B?B?B?B?45?g??mr?e?W?zJ?@ @6@_@~.@!@?4??TJ?@Yx@! @@!u@@Q#@&@&@&@&@XV?XV?XV?XV?ەl?q??xŷ??~l?@?‰@| @dx@:t@p@?w?!?;?i??o@?@T @Ɯ@9K@@P@P@P@P@P?P?P?P?|?ԯ?,d???2?@t @6 @_ @@@S?c?sY??և?o?U??@i@w@+ @@@@@t?t?t?t? ?6A?b?k???@ ` @@F @@4@ܒ?P???6???2??g??hH?Z\@n@m@n@n@!?!?!?!?\??H??4?M@M @MK@@- @Z@4@ep?@;@2@Ӣ(@3@@V @@V?g?g?g?g?F @F @F @F @ @! @ @D @ֻ @g @ @ @#@I*@ 0@6@)=@sC@I@|P@.M@B@8@<-@e"@@ @|@????'g"@'g"@'g"@'g"@\"@H"@P4"@"@ "@N!@!@!@e &@@.@"7@?@9H@P@QY@_a@`@gS@#G@E;@/@W"@@H @-)@-)@-)@-)@u@u@u@u@n@a@T@$H@N;@w.@!@@Q@7%@3/@u8@A@J@:T@|]@[@WaO@B@df6@)@rk@@p@c?c?c?c?@@@@@@ @+@J@i@@@@sZ@@3!@P)@ 2@y:@,B@SA@5@,0*@s@ @z@??^?^?^?^?????]??׈???J?z?bv?X?_?[@_ @@!@f @O(@m&@t"@{|@@ a??&?2}?8׭?8׭?8׭?7׭?????? ?H??Ӳ?b??̜?ռ?Y??b?=?/5@?@P @;= @@???54??LK?????9?9?9?9?܃?7"?g?6??48?}?3Ì?R?P,??w߶? ??1l?E?d? ?,*?8?D?OS?ls?2P?ٕ>?ڕ>?ٕ>?ە>?ڛ/?ڛ/?ڛ/?ڛ/?$91?s4?O7?:?x#>?^A?D?8G?S?g?[|?\?؋?޺???M?=?Ž?}?o^?>?Y?>>>>>>>>>q>F>]>> >a>k>@>??q"?`3?OD?=U?*f?w?nr?V?ȶ:???F>B>=> > > > >`;`;`;`;6<$ =V=.====b>N6>m>>2^>>z->>b~ ?A?)>Я>Y~>8>v= K <4<4 <4 <4&&&&s>X$齥: d4P>}>> >V>Xs>s>Y=Gż5TKTZ[[\&&&&t>X$齥: d4P>}>> >V>Xs>r>Y=Gż6TKT[[[[&&&&s>X$齦9 d5P>}>> >V>Xs>r>Y=Gż7TKT[[[Z&&&&s=X$齥: d5P>}>> >V>Xs>r>Y=Gż6TKTZZZ\WWWW܍䜟ɢ٣O,zqݶAAU2Ϫ/me DmnmmWWWW܍䜟ɢ٣O,zqݶAAU2Ϫ/me DmnmmWWWW܍䜟ɢ٣O,zqݶAAU2Ϫ/me DmnmmWWWW܍䜟ɢ٣O,zqݶAAU2Ϫ/me DmnmmKKKKѵɉ]1٦?twfYL>W0~)}@)kԕ~)}}}}֪֪֪֪cjB}ڬ8ԭ0@+PH`eqPf۬!gC7ڨڨڨڨaaaaU_=% ~3ܲò뤲Gvү&Acé $´´´´*Qkxݸ Om[T;"? ض"yqAh_lڨU3ѣ厢厢䎢䎢wwwwfJ޾.ڽռ9bһ˞6k7 tкf.ĮZIiiiipEP`ZRei-̿}/Ђ,`?)@Vklkl.Z.Z.Z.Z ;2XU~ov}BvyufF>΢^&K7K7K7K7****RBv^F2-e%|xp1QCMVu`+js}O****C>V8?f ̏4Vx &5iuV;o4]YԘs㙽T[4ޞaAAAAwc+g8ߢX#5~kU,<`u9F˜*L{|{{vvvvȑǹ3i \r%}sj:a|O"Pߚlo>7N6|O6|O6|O6|v-i`B+EHLNWD|uuuuRRRRj &]J̦*沊JU)NvkWfWfXfWfp.p.p.p. KE}/$i\ۍ@+`~]Ï)u 6|ttlc____\\\\]yb3fjnartnQicՂ^XYR3/{ tn'>haA[uXuXuXuXxxxx !xw vt]s1rqp,=qstvmx;z ||[~%|Ww r^lpg"b\VWTTTTxxxx !xw vt]s2rqp+=qstvlx_>>l}>39>_=0@=̅==>=.>֛\>7E><>3>y>oH>⊞=4F&h"ğD ʾa;AVAVAVAV ? ? ? ??f>_>>l}>39>_=0@=̅==>=.>֛\>7E><>3>y>oH>⊞=4F&h"ğD ʾa;AVAVAVAV ? ? ? ??f>_>>l}>39>_=0@=̅==>=.>֛\>7E><>3>y>oH>⊞=4F&h"ğD ʾa;AVAVAVAV ? ? ? ??f>_>>l}>39>_=0@=̅==>=.>֛\>7E><>3>y>oH>⊞=4F&h"ğD ʾa;AVAVAVAVY?Y?Y?Y?l ?!!>m)>1>:>\>)>zK===x> C?>mg>̇>b>>>}:>:4|=!r8ٙV׾ 4*4*4*4*Κ$?Κ$?Κ$?Κ$?A?L ?D>Y>>>>_`>!> >)'>C>n`>1}>ٌ>!+>e|>s`>>N< ĽTcRMzѯ))))B4?B4?B4?B4?w,? ? ?">)>2>:>f>JN>Ie_>p>#̀>aZ>>t>>>>=꺫cnyʾP(z9z9z9z9D?D?D?D?&5>>>D>}Ћ>>b>*,>e>>ׇ>u>= RQ..4`f7!I!I!I!I,T?,T?,T?,T?L?=?d<-?Fi?* ?>>9>">W>>>>(>]> >[`>ڥ= l>T㲾ns6"FXXXXd?d?d?d?*]??a}.?t?k?2>W>>0 >_M>>ϩ>>R>J>J> |O=Mƽ,z8Ⱦ /Uqhqhqhqht?t?t?t?Mm?^?:N?|??R0?!?B??߬>*>3>]$>>>ڛ>>m5>Y<! {N޾Gh=Ddxxxx~?~?~?~?B}?n?%_?P?A?z2?#?]?_G?G>>+>Os>t,>>>>@0U$ā"Ks{?{?{?{?3z?l?%_?Q?gD?O6?5 )??y?L?=`>>>/>>z&>Q>L&=T]{mcGZq****|h?|h?|h?|h?N_c?hX?rM?7|B?م7?|,?!???~ ?mb?>4V>>>>>>>-폼+ @X 2^ssssP?P?P?P?ҊL?0%D?;?Y3?L*?"?)?g?+ ?_ ? ? ?p ?J3 ?%h??d]>v:>"^=-T.BQJKTaJTaJTaJTaȠ8?Ƞ8?Ƞ8?Ƞ8?T5?o/? *?7$?b?؍?? ?I ?A??fL??$W? ?a$? ?k>[F>X=<.h@L7NNNN ? ? ? ???Y?Z?0??H ??M ?r#?T?8!?)?z1?P9?&A?c,?>>D>="LJ =$\S<[S<\S<\S<g?g?g?g?] ?Y?????4??X%??;?+!? R-?ox9?֞E?=Q?]?!K?g?Z>VW>r>r>r>q>Z,>>>*\>>`>>p??](?8?KI?Y?9j?z?Hi?H6?z?Z>G=ft͔ ]lRmRmRmRZ>Z>Z>Z>ȴ>ڤ>>\>9>">3>F>_??cP>(>(>(>ơ>P> >>y>~>8>x?U4 ?x?2?FI?:_?ou?х??&??qr?ڣ@=Խ ־־־־f>f>f>f>/k>D>R>>h??LB+?9?dDK?9`? t???|?ۣ?:?ݥ?&Ŋ?Y_?')?D>s>@<t>CkDkCkCkԜ>Ԝ>Ԝ>Ԝ>>0>M?;?v)?l=? Q?)f?Py?I?>̉m((((>>>>^>>qo?z*?D?T^?x?KR?I?v1??%?|??+??Y?ݭ?a?m?6?^>{Ǒ>h^=j>j>j>j>X>??"??_?J>z=x=w=x=U>U>U>U>>@ ?O/?2T?z?$?? ͵? ?a??ZE??(??k ??N??7?z?B?H3 ?>>'U^>&U^>&U^>(U^>*>*>*>*>&>xH?ݿ>?B7j?S׊??N?k ?C??x?f?n??2E@p@??q?`?O?}d?[,?r> P> P>P> P>m>m>m>m>F>?0N?Rv?Q^?y??G??*?Z?F@@x@ @ @(@?0??F??ԂM?q?u>u>u>u>C>C>C>C> >L!?U? ?!?8?O?zf?@? o@=@ @s @: @y@G@G @?~y??m§?f?^?_%? ? ? ? ?B>B>B>B> >M!?U? ?!?8?O?zf?@? o@=@ @s @: @y@G@H @?y??n§?f?^?_%? ? ? ? ?C>C>C>C> >L!?U? ?!?8?O?zf?@? o@=@ @s @: @y@G@H @?~y??m§?f?^?_%? ? ? ? ?C>C>C>C> >L!?U? ?!?8?O?zf?@? o@=@ @s @: @y@G@H @?~y??m§?f?^?_%? ? ? ? ??????#@H-@E@^@}w@8@%@O@}2@Q@%@ڕ@ͽ@@u@ ܏@f@x@G@*~@u@Rdm@e@a`@a`@b`@a`@?????#@H-@E@^@}w@8@%@O@}2@Q@%@ڕ@ͽ@@u@ ܏@f@x@G@*~@u@Rdm@e@a`@a`@b`@a`@?????#@H-@E@^@}w@8@%@O@}2@Q@%@ڕ@ͽ@@u@ ܏@f@x@G@*~@u@Rdm@e@a`@a`@b`@a`@?????#@H-@E@^@}w@8@%@O@}2@Q@%@ڕ@ͽ@@u@ ܏@f@x@G@*~@u@Rdm@e@a`@a`@b`@a`@V?V?V?V?\@ɾ@ !5@JM@e@G~@U@'@ @2$@'@+@)/@2@y6@":@f@@"@3i@E@*x@n@e@`@`@ `@ `@ @ @ @ @@-@bE@\@t>t@4օ@/@)D@N¢@@L@<@ן@@*b@y@|@c@G@f@@|@Իq@ֆf@X`@V`@X`@V`@s@s@s@s@(@f*?@U@l@K@@Wŗ@,@d@@q@@@@ۍ@@ƒ@@|@@f@yۀ@Ӡt@g@`@`@`@`@*0@*0@*0@*0@:@4`P@e@j{@$x@:@@.@@sέ@@_@N(@@@*@@ -@i@5@*@>@҅w@h@a@a@a@a@kB@kB@kB@kB@M@a@'v@\@@!@5@0~@@ޱ@#@jƳ@г@ڳ@<@@@]R@,@y@ @@jz@si@B&a@B&a@B&a@B&a@`U@`U@`U@`U@/_@r@J4@@і@p@m@3<@[I@H@6@$-@y@ĺ@@\@qԶ@w@@.@ma@@O}@Rj@9a@9a@9a@9a@h@h@h@h@(Yq@@ U@G@@Q@@6@@x@H@ޓ@s!@ @<@4@U@@O@_@@g@j@1k@La@La@La@La@-z@-z@-z@-z@@@u@O@)@ @"޶@7@@\@[+@@@@Oh@7@9@V¹@t@F@@ʌ@ꌁ@l@.`a@.`a@.`a@.`a@]@]@]@]@e!@t@@G@@ @m@Ͽ@@@6@-@^@C@@@@R@װ@]\@$@e@@n@cc@cc@cc@cc@}@}@}@}@˂@@.@T@||@h@T@@@@@x@,@@@H@x@S@nN@I@C@k>@9@3@\r@xWg@yWg@xWg@xWg@nvy@nvy@nvy@nvy@Wv@@b@ٖ@YO@ť@;@@{@@z@+@yb@@y@@@ J@@%+@@> @|@u@:Kk@:Kk@:Kk@:Kk@HAu@HAu@HAu@HAu@A|@*!@!@!@5"@"@"@A#@@ @r@.+@A@U@fV@z@:_@E@,@@@hߐ@ņ@Xy@>o@>o@>o@>o@! q@! q@! q@! q@w@U@.@j@@@ @h@sw@@@c*@ f@@T@@@IA@@@?V@@@l|@2s@2s@2s@2s@l@l@l@l@r@@؞@c@Ǒ@xܗ@@@@(@ak@)@@ @Bd@z"@j@<@@Q@@@W@&*@&w@&w@&w@&w@ԡh@ԡh@ԡh@ԡh@x@n@}y@]@'@ʚ@n9@ؘ@v@mf@8@@(@i@d@0@+@l@8@@Ȥ@@X@@@C{@C{@B{@C{@ld@ld@ld@ld@ki@s@\8~@D@m@c@ @@ݝ@G@d@(@b@@r@|5@(v@#4@@@n@,@ @@@@@@ [@ [@ [@ [@v`@N=j@&s@F}@e@X(@@1@j@#@vܟ@I@N@@¿@x@c(@/Ϯ@u@@Ø@\j@&@@~@~@~@~@=O@=O@=O@=O@S@\@gXe@/n@4w@@[@ƈ@" @L.@uO@p@ȑ@@ԥ@F@@ @0 @@B@@S@1~@A4x@A4x@@4x@B4x@ÅB@ÅB@ÅB@ÅB@F@N@V@_@Bg@lo@zw@n@t@8@uŠ@K@vՑ@^@w@q@@!D@h@@^@:@@v@Qr@Qr@Qr@Qr@5@5@5@5@ߋ9@cA@H@iP@}W@n^@vf@tm@t@:z@u5@L'@#@ @@@Ď@~@8@@@R|@YAv@`o@eol@eol@fol@fol@|)@|)@|)@|)@},@L3@&:@7@@HG@XN@iWU@z&\@0a@f@Pk@Dp@t@my@Z"~@Zk@R@&r@{@,w@s@0 p@Kl@6wh@f@f@f@f@X]@X]@X]@X]@(n@Ə%@d+@1@7@A>@7D@YJ@,O@ܱR@6V@Y@@]@`@Kd@g@i@g@f@e@d@sc@ Vb@ 9a@`@`@`@`@4@4@4@4@K_@x@G@ѻ"@/(@,-@X3@8@wq<@.>@A@rC@TE@ H@sJ@zL@N@ \P@Q@S@u+U@V@f`X@Y@Z@Z@Z@Z@@@@@nP@) @@@Zk@2@!@&@)@*@,@J)-@O.@v/@x0@1@ 4@8@"=@tA@E@J@jN@R@T@T@T@T@!?!?!?!??9@@ @ @ @ i@@mX @) @u!@"@["@"#@Ӱ#@?$@]'@v -@(2@f8@>@@;C@oI@O@vQ@vQ@vQ@vQ@!?!?!?!??9@@ @@ @ i@@mX @) @u!@"@\"@"#@԰#@?$@]'@w -@(2@f8@>@;C@oI@O@vQ@vQ@vQ@vQ@!?!?!?!??9@@ @@ @ i@@lX @( @u!@"@\"@"#@Ӱ#@?$@]'@w -@(2@f8@>@:C@oI@O@uQ@vQ@vQ@vQ@""""IT0^ Hh# ѿS!b?Og<)ߛ.Vkcѳn|;vJqkfcccc""""IT0^ Hh# ѿS!b?Og<)ߛ.Vkcѳn|;vJqkfcccc""""IT0^ Hh# ѿS!b?Og<)ߛ.Vkcѳn|;vJqkfcccc""""IT0^ Hh# ѿS!b?Og<)ߛ.Vkcѳn|;vJqkfccccQ^Q^Q^Q^A2  )~>Bп贿ZEءWZSPpvq'؉394yrFoFoFoFo    1 Z ܿοu;pdzURݪ:>|r h^TsJ䉿@U D A~"y`slؿhͿbXK컿Ix_$ּ17h3ˢ6._6x7x7x7xǣf޿Կ˿4;¿᾿yĿmƿUAɿ<˿%qο ѿοǿIk!xi♿♿♿♿wRwRwRwR@1m޿g׿пɿÿ4¿5ǿ6̿7ѿ8ֿ9ۿ:;忈㿞Gۿҿʫʿ]¿ ±"t-M-M.M.M俕,޿;ٿsտѿ4̿]ȿĿſ̿[Կ&ۿT0㿃꿲n2]B忖ۿ 'ҿȿ m~bӿbӿbӿbӿ*ҿ Eпz_οy̿[ʿ̮ȿ<ƿĿȿ߭ҿ0ܿT'&<o+`6 #׿U̿$"%"$"$"ׂׂׂׂ,]¿¿HÿĿcĿ4ſſ-̿iؿjU ZE {,b񿘬ΟٿͿǿǿǿǿwwwwtڹplBfa]^¿YĿTſZͿ ڿC2_P .c I-u⿽ֿппппBBBBWػZHܾ^raÿ+Ŀa̿_ٿX翀(`aEӞ Sܿ׿׿׿׿ , , , ,Ӻ=#r*¾a¿Ŀ i˿ؿ6n󿱹zG<,` .i:1 ݿݿݿݿpPm؊ ?ſrÿBpʿ׿| [K( ř[%# e\1$$$$信WWWWͻ 퍾xcN9¿{wɿ׿d)Tm 5u-O TT XjjjjIq s~,,忿ڝV~ȿ^ֿ㿰EY:V *\Nzx  "-b~ 9 9 9 96666kƼLDӽY྿f쿿`sǿ$տNa ]n&1i Mb!C>h뽿?羿<8(ƿ2ԿH~#d7 &x+B oX nfMMMMAAAAM-f~sǭK୿{:¿Ͽ,ݿ j |E AՀ޾޾ݾ޾p挿ٌ `B3wً߬";Tmaƿ?ӿyv1VHUTUU@pY@pY@pY@pY=X7X06W*RV$nUTSR_yx:f~ ػȿ\пԿؿ#ܿQ迀yqqqq/&R7uKԘ\*R|2-Kc|"PQtEOĿ˿ӿLۿZCCCCںںںں(ЪZަ좾%Y%dؾoU_O4?LJ0d |罉 竿J¿)ο4sٿ$߿$߿$߿$߿ĒxZ]PpOH @p_uQv;!ؾv@Op'1XTLjb~@Ͽ0~׿1~׿0~׿0~׿">">">">&(>@(5>X_A>qM>Y>f>;r>r~>W>L==[#VVFi`h?ξ,*ނP-vl썿jlƿϿϿϿϿ}>}>}>}>>BF>v>>>>0?f4?R>O>>hqh>ε>k=: ޼佲xE־N@]E1{rQ̏ [鼿1ȿ1ȿ1ȿ1ȿ ? ? ? ?D>>6L>}= =ӽ>,^]Qڼ0(]Ŀ]Ŀ]Ŀ]Ŀ ? ? ? ?E>>7L>}= =ӽ>,^]Qڼ/(]Ŀ]Ŀ]Ŀ]Ŀ ? ? ? ?&??x?T>E>>6L>}= =ӽ>,^]Qڼ/(]Ŀ]Ŀ]Ŀ]Ŀ ? ? ? ?&??x?T>D>>6L>}= =ӽ>,^]Qڼ0(]Ŀ]Ŀ]Ŀ]Ŀ????6?M?օz??;ª??A?4?o???????2???L@ U@ @N@J@ H@j@j@j@j@????6?M?օz??;ª??A?4?o???????2???L@ U@ @N@J@ H@j@j@j@j@????6?M?օz??;ª??A?4?o???????2???L@ U@ @N@J@ H@j@j@j@j@????6?M?օz??;ª??A?4?o???????2???L@ U@ @N@J@ H@j@j@j@j@P?P?P?P?%p?%F?xr?ȏ?f#?:~??3?_{?}???K???9??W@?i?I@<^@r @ @L@@@@@a>a>a>a>B ?^d8?c?T??v??D??x?\?K?%???R??R??e?:?\w??@D@@@@@>>>>?*?1T? }??o?7??¬?tA?(?j??@?(??q|?Te?6N?7?????O?O?O?O?>>>>v>}?@D?l?bj?Ch?$f?d?t?q?mO?j?f?c?`c?\(?-/?w?w? ?Q?e? ?+?????>>>>/o> ?5?[?,?`?+?fɺ?%?l??????͝???P?2???+?P?|?P?P?P?P?=>=>=>=>>^?3&?K?o?Y?2Ĝ?.??i?A?g???:ز???Ϝ???F?n?ű?ͱ?ѱ?ѱ?ѱ?ѱ?z>z>z>z>>W:>? :?b]?KR?8?&??de?>??f?ͼ??h?cG?M?6? ? ?N?ܶ??R?R?R?R?WM>WM>WM>WM>\Z>w>I?8)?dJ?l?@"??;(?_?4??@?Ɲ?M?8Ӝ? ??v?!Q??x?"?o?ӂ?ӂ?ӂ?ӂ? B> B> B> B>u>Sz>m?*?vL?~o??o?ⵢ??v?@Q? ?Ը??i ?R7?Z1?b+?k%?s?{?'x?n?i?i?i?i?X[>X[>X[>X[>>>?ts>s>s>fΣ>>R%?O?pay??H?~??D?ο?X?S?"l???ƭ?ʤ?Λ?Ғ?։?ڀ?o?]?T?T?T?T?@3>@3>@3>@3>ਲ਼>J?4?N5b?vՇ?F?K???r?V'?'??E??i?J?;?.? ???k?ΙU?J?J?J?J?v>v>v>v>X>\? C?t?5???>>>]>R?hR?̓??p??????l?@?????|0?`C?CV?&i?|?c?CE?V6?V6?V6?V6?z>z>z>z>J8>)?b?J&?C?a?~??b@}@61?g????i>?C???,?D?\?^?=?_0,?_0,?_0,?_0,?@>@>@>@>>A[5?"-q??qh?`Q?P:?@ @ @D@X@K?b?; ?n????f?: ?=?óZ?k4?? "?? "?? "?@ "?>>>>M̃>`>;6?[q?(?n*?h???I=??ކ?+?r?>>>՞՞՞՞16U^IL>>?O? ?'?6?B8?9?;?@=?}z?,j?Z?0H??5?Lq!?Z ?Z>> ӥ>P}>oU>lU>nU>mU>}C}C}C}C?,V.X 16=pe>p>MN?a#?vf?#?<>d;>>p_p>S+>D==B= G= <7PƼ(FoxnxtxlxOțOțOțOțxڑ{@FT,n@xU@[(F j6~侜 @S@A龸v۾w;6FTRRSտտտտRtͿCs&RV0=)=}QLeyu^]E?ÏtLvaMu8#:tJX@hҿv ſrةQ۲fǿ\|ҿ1ݿwݿE̿ջҪxΙʈo^^^^G$G$G$G$T"xfa R%}Xrpl fa5\WcQ$!@ B俄ͿZőőőőAAAA @t<85p1h-N*3l&j'r-[3 D9,?EJ4P?L=-,:cH,|ÿEEEEWyPWyPWyPWyPdO#L?I[FwC@=,:b<7tBHܖN.TZ`%frawP&~$"s}P ,GoݿWֿVֿWֿVֿL'L'L'L'/)+.0P3~57q:M:ԋ7472hF/,)'S"""܉:XNῴq8q8q8q8;9:.d<^=? AB!IDJXCl?l<8Ԁ5 2.:+t4&uh V\-쿮쿮쿬9@B9@B9@B9@BBC7EwZ;f8<2}*"@ EDCCWHWHWHWHHJFKrLKMNOz$QP(NKVfIGڣDBB^?:0'4ÃR] 6 nono%cK%cK%cK%cKKW,M$]NOPQU S QT=T3RePNLWJ*I.\GMA6,jc"G$ yU迚迚迚nNnNnNnNb O>PsQR.S`UHV}WjzW>VUSRNQPN~HI=t1&˦0!mzQmzQmzQmzQ:RPSlTUV87XpYjZZUIZYXMXOWVQViOC\s6)N8ȚBw!!!!TTTT%UcVWXZ[[\]j^+T^=^&^d^]3]]V{ICT; -b?T/߿/߿/߿/߿WWWW2XOuYZ[<]~^N_aa_bb$Wc6cHOdXdjGe^"O*5@@H1V["ln0)F<ܿG<ܿF<ܿF<ܿQXQXQXQXQYZsw\O ^+_0abUd)e&f#g"i j9kUlqmR'fwVAF7.i' &῞῝῜iWiWiWiWXZN\_ ?aincƝe%gkik[m$o pLrztIv'o_ Or?\.E06 uKVuKVuKVuKVfWG}Z(I]`b̬exhDkm \perHuw|5zث|5"(xogRW+F}6&D=-U-U-U-U:VIZ]fa˂d.gSknr}%uIxl{ ~ـkb9C`p_N>?-Xw) KKKKTTTT VZ^b$f)jz.na3r2vy}2ȀJiiyZgVE'l4lF# ҍ ҍ Ӎ ҍ ,R,R,R,R@UKY^ %cggl` qʪuu:z_~%ڃXՌҀ"pX^MȘ;*8QQQQpTY^~*djhiXnFs2"yV~vV6B^$gxf=ThB0UTTTPPPPPPPPSzYjU_/eK kp+v||9%4֏Y’}uVnni0\I7Fu%VVVV$P$P$P$Pt8S%aY׉_e^QO]8_d$jQqwB~]\qv|Ɠuyng^gC`)YUUUU]c]c]c]c.п^ tkz!Ȁ4%GS-CYi^9d޴i0oUt&zhy|rr|kd]V(OHt0Et0Eu0Et0E....UБ߿Kt8*=I!'NR9"Wş[Q`ޚdjigaIZTwSLE?X.894949494\\\\#"|qzȿG~ 637? CF JM QfTC X.sV(O!IiB; 5_.'Y$Y$Y$Y$椋椋椋椋zݾ?|IFٿRmQ*l5 78q:d7Z1*EG$w3uuuussk% maÿ#5a ( }N+,|W./y`12xi45k}3->&L | P > > > >/,v09肿V6׿Q!0!!=""`K#0#X$$"*o>q쿒0濒0濒0濒05\>5\>5\>5\>GJV=ZH5mP_#ʿ"FTE;A#= 940,(FI 2G=\ܿ(ֿ(ֿ)ֿ)ֿ5*>5*>5*>5*>a?=>=>=>=2@͍gE"}0 'n 9 r  dh Y q `Apݿpڿqڿpڿqڿ'='='='=<l˹dpۿI#,:7TA\b c|?d޿ۿۿۿۿDP/>/>/>=u<Lz=璾Ǿ^Ly>Ly>Ly>,|=O,=X}LQʏb  t1Aܽ,p˾<=n=4=Pkqm⽺&Z'ʇ|>|>|>|>>Mh>M+>=:E=;a$O[B <=6>1ց>^>>d_>ǵ>:0>J1u> :>=G= J<Q>Q>Q>Q> >n>Õ>j>\>5>3>=R=U>>>> ?;h"?W18?U:?4~*?? ?>T> >>>T>T>T>S>GR>^>uҵ>>R>>y>%]>|>>ͬ>a?m?y2?I?D`?'}c?ZKR?A?/?? ?> A>:>;>;>;>GR>^>tҵ>>R>>y>%]>|>>ά>a?m? y2?I?D`?'}c?YKR?A?/?? ?>A>;>;>;>;>GR>]>tҵ>>R>>y>%]>|>>Ϭ>a?m?y2?I?D`?'}c?XKR?A?/??! ?> A>;>;><>;>GR>^>tҵ>>R>>y>%]>|>>ά>a?m?y2?I?D`?'}c?YKR?A?/??! ?> A>;>;>;>:>@@@@@Ž@\@+@B@nǺ@@c@1۩@@@F=@]@~@Y@ @F@%cx@:X@8@@}?j+?|]?O`?O`?O`?O`?@@@@@Ž@\@+@B@nǺ@@c@1۩@@@F=@]@~@Y@ @F@%cx@:X@8@@}?j+?|]?O`?O`?O`?O`?@@@@@Ž@\@+@B@nǺ@@c@1۩@@@F=@]@~@Y@ @F@%cx@:X@8@@}?j+?|]?O`?O`?O`?O`?@@@@@Ž@\@+@B@nǺ@@c@1۩@@@F=@]@~@Y@ @F@%cx@:X@8@@}?j+?|]?O`?O`?O`?O`?Z@Z@Z@Z@j@@B@~@@@.3@Po@.Y@@c@@@3O@@i~@h&@ހ@Z.a@@@ @R??̈y?Vj8?Vj8?Vj8?Vj8? R@ R@ R@ R@@@+@6&@C>@NV@[n@f@#U@ڬ@_@m@j@I@u@%@@99@s@jQ@_0@c@Q??d~n?d~n?d~n?d~n?@@@@@@@@@@@~@Q@\İ@7@ݪ@@`@@w@@@@b@@@@?q?9I?:I?9I?9I?r@r@r@r@d@F@)@ u@D@@@@M@%@9@Mp@bѵ@v2@@@#h@@ t@s@P@ .@ @VG?AS?@S?@S?@S?&C@&C@&C@&C@ @@p@u@DȾ@t@@˷@I@@@5@@ӽ@s"@Zq@(@H@Wh@(@Oa@=@2@?G]?G]?G]?H]?@@@@,@m@'<@ÿ@K@RӼ@ [@@D@@r@,@7@t@\@@J@@\@N@q@JM@(@@Ng?Ng?Ng?Ng?@@@@]@@@@Jk@ν@2@7@@@@k@@@*@@F@@j@ݩ@f@P@t@@\@>7@#@Uq?Tq?Vq?Uq?>4@>4@>4@>4@T@@%Ӽ@@DR@ԑ@dѽ@@<@LU@m@@n@ζ@/@@qj@W@7E@2@@l@E@K@ @ @ @ @x@x@x@x@E͸@T@{ܹ@d@@Ls@@@%@j@'@a@ @^@@\@ZL@l@錳@/@x͍@}u@ P@\*@|@|@|@|@:@:@:@:@@@#@o_@4@ֶ@@N@9@@6@"T@q@g@ @@O@;@(@5@k@=y@U@1@Cv@Cv@Cv@Bv@@@@@@z@j@Z@J@:@*@@д@PM@ɿ@`F@@r?@@8@R@ @ò@<{@\3@}@AG[@8@o'@o'@o'@o'@@@@@i@ @@V@;@W@sB@@T@@1]@8@ @{@@X@V@$@3^@A@Pf@^@`@?@i/@i/@i/@i/@@@@@H@꠫@1@xQ@@@LZ@@{@5@@*@1e@@@,@TY@P@K@GI@C@>@trf@lG@gb7@hb7@hb7@hb7@A@A@A@A@{'@3@^@@L@BY@e@&r@~@nQ@@⃲@@T@O@@@\@zx@d@M@6̓@@l@?N@[?@[?@[?@[?@@@@@R@Ƥ@@)H@@cɟ@@J@&@@:@Y@x@@@@_@G@|/@R@)@@q@UmU@+UG@,UG@+UG@,UG@Ū@Ū@Ū@Ū@)@Y@Ο@C@J@-@ڡ@@@S@@@X@@@]@c@@ʰ@X~@2@@D3w@ʚ\@NO@NO@NO@NO@I@I@I@I@@9@3@{ҙ@q@@\@L@-@[P@s@Õ@x@,ۺ@@ @@N@仭@xY@@@qdx@_@0=S@0=S@0=S@0=S@@@@@:@x@@@93@_q@@@W@@p@˧@ '@8@fݺ@8@ϸ@^@h@@N@L@01u@{^@!S@!S@!S@!S@ҏ@ҏ@ҏ@ҏ@~@T\@:@@Y@ӏ@@]@G@ڗ@Rn@@@E)@꼳@P@@蝬@J@@@Q@q@W]@S@S@S@S@@@@@‰@?@@F:@x@4@ܱ@/@ӏ@՟@k@8@2@QЧ@p@h@(@ݥ@o@)G@@@n@"4\@R@R@R@R@\x@\x@\x@\x@@o#@(@@\@y@O@@ϊ@g`@d@i@.n@r@^w@{@@a@@ٖ@e@R@|@mk@P[@R@R@R@R@Bv@Bv@Bv@Bv@x@ |@v@x@;@@1@np@@&*@8g@H@Z@j@{[@@(@P]@x!@@ǩ@v@,dh@}Y@R@R@R@R@h@h@h@h@k@o@t@$Dy@}@Y@\@@y@P@d@cڏ@O@vŔ@;@@=ї@@h@4@q~@/q@0e@X@R@R@R@R@UZ@UZ@UZ@UZ@]@0c@Òi@Vo@u@zv{@@б@v@x@{b@~@@l@@ȑ@U @܊@@@Vv@Vl@a@פW@lxR@lxR@lxR@lxR@S@S@S@S@V@]@d@j@Bq@w@8n~@(@̄@ @Ka@@@@@H@ԍ@`%@|@AԂ@eW|@Fs@*i@ d`@W@^jR@^jR@^jR@^jR@S@S@S@S@V@]@d@j@Bq@w@8n~@(@̄@ @La@@@ @@H@ԍ@`%@|@BԂ@eW|@Gs@*i@ d`@W@_jR@]jR@^jR@^jR@S@S@S@S@V@]@d@j@Bq@ w@8n~@(@̄@ @La@@@ @@H@ԍ@`%@|@BԂ@eW|@Hs@)i@ d`@W@^jR@^jR@^jR@_jR@S@S@S@S@V@]@d@j@Bq@ w@8n~@(@̄@ @La@@@ @@H@ԍ@_%@|@AԂ@eW|@Gs@)i@ d`@W@_jR@^jR@^jR@^jR@^嫿^嫿^嫿^嫿岿^οܿ]t.u r wG{пPF$&PyXd`-Phx;p&x^嫿^嫿^嫿^嫿岿^οܿ]t.u r wG{пPF$&PyXd`-Phx;p&x^嫿^嫿^嫿^嫿岿^οܿ]t.u r wG{пPF$&PyXd`-Phx;p&x^嫿^嫿^嫿^嫿岿^οܿ]t.u r wG{пPF$&PyXd`-Phx;p&xgÿlӿ 3'Mѿ!枰3RCu]F/о]rZrZrZqZlvlvlvlvB}[,tތտ< Om4ҿ ¿(DQ㩄lLO (3n!kg?h?g?h?5555dM}'NPyǿ߿h k1B俕SԿdĿkuUp cA+~{XkfH"H"H"H"44442DIۀvL-տN* MP:տƿ`f\YI[3Jv ZʾGv˱*!*!*!*! N N N NtU0׊h˿`^8 ͹V^׿hǿKxIbR3%:9R=x#>x#>x#>w#>HS=HS=HS=HS=Oă(B5q_LܤP },l翂ZؿHɿ17%6r|xI ˾2N@IȻ%B>,>,>,>,>XB>XB>XB>XB>>jd,=$LƎ/X߿h Az&ٿMʿt"Z#xOA Fפ׽h=է>G>G>G>G>c ?c ?c ?c ?<#>=󢞾C(HՋٿM Aև ۿ̿ qup83K|j>>o?o?o?p?4?4?4?4?)?N>Y!c~rLZ׿64Ê zrGҿjĿ,8?Zh){(;>r?"?"?"?"????????? ?>>!5CskqdݨٿG QakݿпG2Ŀ jAa3VU%$t08L>μ>????dJ?dJ?dJ?dJ??!\>{K- Xpm>ڿXs kd̫Îq翲Tܿ7ѿfl(͵Ⱦ.L> >e ?e ?e ?e ?$U?$U?$U?$U?Ӕ#?x{>a Eo0YܿjZ| l =޿ǿ(@=DF.D[=Dk>ۈ>܈>ۈ>ۈ>`?`?`?`?v-?>.xkH2n޿|$x4 P kOmBԿQ^ T΃hF>F>F>F>k?k?k?k?X7?t>׽m ߿ |s.8 6_Gs/ :DlfT >>>>>jv?jv?jv?jv?|:A?Dѫ>I lcOX῞ nv~ `xɿ[FM{{/TǾǾO>f³>g³>f³>g³>????`K?->~j?㿰 .jZr  { I) %տڮDBOb>@>@>@>?>0?0?0?0?I?_K>YR#e*sT޿ ʋs|Ww 9r mֿ~Ke\W=Tj>Tj>Vj>Tj>zp?zp?zp?zp?n=?*>"LgZINӿ) wU3rD˿t(Lĉ^NT>NT>NT>NT>~a?~a?~a?~a?,V1? >:t:߾OyHȿq5ZX$B߿e҄M Lۧ]ٺ5"wվ2TE<`BguY)KDp|ѿѶ'r|M@Nžg6ǗǗǗǗV3C?V3C?V3C?V3C??ȇ>؇˾ҹ:̇G<ܿ6Pm)޿ٿ>dտѿJÿ>p2L|4N^ f؇3333 4? 4? 4? 4?ez ?Ou>2r0E.6jοV_ۿe׿ҿuοɿ0ſ F=uN}'zh獍獍捍獍$?$?$?$?#1?V[>O /%n0пl̿ ǿOÿ2$榿IUnyVO/[[[[3?3?3?3?>@>D lV^)O5+V hĥ"DŽmT$HhpO7&R))))X/?X/?X/?X/?>>3>iuV񦋿OA;⫿%3ԝ$8';.y d/Pm;&xxxxX/?X/?X/?X/?>>3>iuV񦋿 PA:⫿%3ԝ$8';-yd/Pm;&xwxxX/?X/?X/?X/?>>3>iuV񦋿 PA;⫿%3ԝ$8(;.y d/Pm;&xxxxX/?X/?X/?X/?>>3>iuV񦋿 OA:⫿%3ԝ$8(;.y d/Pm;&xxxxPKT^PKCarchive/versionFB?ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPKۖ?archive/data.pklPKT^archive/data/140571262037920PKўgUarchive/versionPK,-PKעPKvision-0.19.1/test/expect/ModelTester.test_deeplabv3_resnet50_expect.pkl000066400000000000000000001214711466211133600263300ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX140571266022160qXcpuqM(tqQK(KK K K tq(M(MK Ktqccollections OrderedDict q)Rq tq Rq .PK3PKAarchive/data/140571266022160FB=ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ`=`=`=`=c|V=MC=0=@= =%<80=x=h'</7<1*#6'ټ><حɹKǼ0$xTF[hUO4HaaB <5Y/!AP #ü)^Y]t_*M[XZ[='=='=='=='==<"N<:0$^җ3fH$D)@;^{7$3.u*( G\ϼ~qJ+6A餻餻餻餻#=#=#=#=4=*'J% ClۼZ_ zY; = = = = P =bovu |ZI޼ʼ'ݵ3:99:===== EK8S Z`9gþ l5W༂HҼOü5R4R5R4RT=T=T=T==^9zT4/)D$v()))~<~<~<~ۻU+ӼeNC!"-j8C\/OƑZ/e1kg^fVNE4%=ΰ4h<,5(5(6(4(!;!;!;!;b%; MIhNoxmڼѵ4 o03n?l LkXjehqf~2OP>NP>OP> k: ~߾[<D (yAY mݭ{(z˓@niZިȟHvnd R\wI\wI\wI\wI75757575Sͼ.2kFMK^h+vJ،fmI$&j⯽;. zŏtR_iThTiThTǼǼǼǼ޼8&{5LY'd!}{ti{rٛ@!KvtŽDνN̽,~Vp^$lu_u_u_v_ T T T T輩d-/D[ms TíRZp_ ƽνe׽*ս Ƚ纽0ŭARd_zrXeXeXeXe T T T T輩d-.D[ls TĭSZp_ ƽνe׽*ս Ƚ纽0ŭARd_zrXeXeXeXe T T T T輨d-/D[ls TĭSZp_ ƽνe׽*ս Ƚ纽0ŭASd_zrXeXeXeXe T T T T輨d-0D[ls TĭRZp_ ƽνe׽*ս Ƚ纽0ŭASd_zrXeXeXeXe====֔==,:=B=Y=pP====*=J==b= =L3== ==:=Re==պ==X=%=%=%=%=====֔==,:=B=Y=pP====*=J==b= =L3== ==:=Re==պ==X=%=%=%=%=====֔==,:=B=Y=pP====*=J==b= =L3== ==:=Re==պ==X=%=%=%=%=====֔==,:=B=Y=pP====*=J==b= =L3== ==:=Re==պ==X=%=%=%=%=====b=B=N!==߳=)=t=}=@= =#=w9=4O=d=z=j==k===} =m=\"=K=====Zߜ=Zߜ=Zߜ=Zߜ=2|=ⵤ==@)=b==O־==1e==F=R=(==t =)z=(=s#=n==R=P==2=׌=׌=׌=׌=ˤ=ˤ=ˤ=ˤ==)=Խ=Q==z=*=@=!=Н=~i=,5===8=c==6==='= =s=!=&=&=&=&=ⷬ=ⷬ=ⷬ=ⷬ=!===z=i=W=F=4=?=e=`==ټ=V=&=M=ƽ==^=*====Z====='='='='=ȴ=y=[Z=<==4=}=ƶ==-=B=0=="4=µ=b7=_=J=׶=tc==-|==放=[=[=[=[=k=k=k=k==V=(=˷=-o=t==Y===$Ү==U=g=D= !=ȵ==6O===]5==ι=(=(='=(=|=|=|=|==4===<===D=ㅫ=u==,=)d==LӠ= =/=B=Uǥ=gԨ=z======<=<=<=h=h=h=h==m=$=8=Ku=^Ͳ=r%=}==^==r=<=ϙ=b===r=s?= =Oڤ==,u=B=P)=Q)=P)=P)=O=O=O=O====.==@=ɬ=R=%=m==E=D =Β=Ԓ=W== x=A=tv==t==Bs=۲=ܲ=۲=۲=/=/=/=/=>w===(==`I=٬=:j=֘=e=m2=7=̑=͘=e=b2==\̊=="=3=U=Kx==+=+=+=+=====Z==="=]=9R===8= =#=q== c=Z8=P|=1|= ===ϫ=bq=6==¦=⤩=㤩=⤩=㤩=====>==0}=|=ǻ=[=_==9ء= =ړ=q=|O=L-=;z=m=nn=z=݃=~F=?==À==========G"==o=w=2=c= =c=w=>^=D=*=9={=m=h_=z_=m=t{=+=====ꖤ=ꖤ=ꖤ=ꖤ=߮=߮=߮=߮===Ib=r==l==ɧ==r=I==Ҁ=q=Faa=>Q=P=,;`=no=~=*=ڎ=<=\8=====Վ=Վ=Վ=Վ==<=T=n ==u=:+==M===Z=f)y=g=U=B=)?B=R=kc= -t=h=(=x =_=====n=n=n=n=P=X=`G=i=r=z~=;==V=V=V=V=p=\=RH= 4=g3=hE=gwW=hbi=gM{=4==4==========W==d=52==uͦ===T=W=oy=1e=dR=>=wB+=R*=<=eM=f_==q=d===A=====)=)=)=)=t=8\=C=*=S===nȔ= ==z=i=YY=&AH=|7=¸&=R&=J6=eBF=J:V=.2f=*v== = = = = =km=km=km=km===3=R=n=====u=h= Z=L=Z>=4&0=/"=R"=0=e>= M= L[=}i=w==2=2=2=3=ٟ=ٟ=ٟ=ٟ=g==Ӝ==҉=f=C=>Fv= k=`=wU=MJ=#?=3=t(=Z=R=*=c\7=:C=fP=\=oi=u=6|=6|=6|=6|=E=E=E=E=<==rI= ~=Ney=o=7f=\=S=IK=B=܏:=22=)=x!==R=%=c/=:=E=PKP=[=e=Gk=Gk=Gk=Gk=1=1=1=1=^Y=oO{=!q=Ոh=%_==R="=c!=[(=/=" 7=bd>=E=hI=hI=hI=hI=jS=jS=jS=jS=AN=E=<=L3=*=!=V==7 =A =L =-V =D` =[j =rt =~ =R==b=/=$=l*=D 0=5=Yy8=Yy8=Xy8=Xy8=E=E=E=E=bA=-8=?;,Uu׺Ǽe)'¼$ȼ"μA Լڼf]꼕B FS    q3q3q3q3)ü"ϼ"ϼ"ϼ"ϼ֍֍֍֍Լ)=#C査x ;Lm<΄a=o=Xf=S\=S=CJ=;@=ފ7=..={=<@<;]*;'BԻ}4<~Sɼ`ܼ`ܼ`ܼ`ܼGR>RQνQɽdĽxE{((((-Խ-Խ-Խ-ԽmKֽφڽ1޽8Vt뽸co ע潐׽4Ͻ+Ƚ!}"p[齽b½UŽAǽ ɽ ɽ ɽ ɽ˜˜˜˜u*MJPȽѽ۽hSyF߽Pؽн'ɽ@½kz_7_la)`Ľƽƽƽƽ󡧽^ܹ2½̽5սrR޽b߽xeؽYhѽ:kʽnýpsvxwwew+wvvvb½b½b½b½ g܅;3ƽ\νzQ׽<ؽ ѽbʽĽZd诽0AuN\h>vķJ$쿽#쿽$쿽$쿽FJFJFJFJJKZL/MNNOȽPнѽʽk.Ľ6FѰ]b飽qrmhἽἽἽἽ~t~t~t~t-NcxjOɽɽ2ýra14tҤo<9r̨ _@)򷽩׹׹׹׹Wٟ֡VjN½½߼{1 2RG\lyvW8ƴkͶjͶjͶjͶȋȋȋȋI՟KM/YW c/Zj+R zZJ,ó,ó,ó,óIPIPIPIPQTWlZR]7`cf;=ˬCZ衽LwT qՙ9}wesɯpppp4444I*Zl}랽֤綽k-Qro3$ؑW<虽0xR R8v6v8v7v::::֒Q|O#A~ɵ ֫gBt1Ε'iT&㭪ڮ𰽲fی͖5R ɣl?ܮܮܮܮ=Q򭡽 f2±W=׭q #V@ڗt'ȵjX N@⨽VVVVρρρρ)z;ʖej [ٱ"t4᤽j<闽 8̖af8 IDDDDρρρρ)z:ʖej [ٱ!t4᤽j<闽 8̖af8 IDCDDρρρρ)z;ʖej [ٱ"t4᤽i<闽 8̖af8 IDDDDρρρρ)z:ʖfj [ٱ"t4᤽j<闽 8̖af8 IDDDD====9==K=Z==N=z=ڤ=`=5+=R=m==W="===ڻ=%=n==}=Nm=]=========9==K=Z==N=z=ڤ=`=5+=R=m==W="===ڻ=%=n==}=Nm=]=========9==K=Z==N=z=ڤ=`=5+=R=m==W="===ڻ=%=n==}=Nm=]=========9==K=Z==N=z=ڤ=`=5+=R=m==W="===ڻ=%=n==}=Nm=]===== 5= 5= 5= 5==8=N==?=l=!=F= =;=Nk=== =K,=\=d=B=!==V=(=={=2k=2k=3k=1k= `= `= `= `=<=h==S=y=*=m=ʊ=;`=Z=GU=O=RJ=D=]?=9==P= ===p@=N=,==================uz=A?= ===pR=<==_==ސ=)==[==========f=ȷ=I*===VO=== =(=:)=K=^G=q=e===m== Y==D==0=========C>===Jm='==Q=V=`=ٹ=3=l==<=x==(=&{=/=6!=?t=F=N=Vm===== = = = ==(=;=N=a=t=====+= =jD= h==H="Y=8=N=b=x=I=y==A=A=A=A=7=7=7=7==X=EĤ=/==@=r==Y =?=$= ==ְ===&=I=l======l=l=l=l=Dl=Dl=Dl=Dl={==L=@=ո==4^="=`===J=vA==α=i=)=Z==y=c=N=N8="=>>>>g `=g `=g `=g `=Eo==`=?===ژ==+=/=4=9>=>l=B=Fȡ=J=%=z=n=4b=U=I=D==0=e>e>f>e>F`=F`=F`=F`=mn=K^==ꬡ=:ԯ=="=)J==T=g==EC==#=1===ZA=j==:==z=J&=J&=J&=J&=`=`=`=`=m=2=}=ɞ=W=a=٬==V==8=t=N=(==l=U==0=s=O=2=p==!=!=!=!=&`=&`=&`=&`=X+m==v=B=tV=ƴ=6= =F=:=̹=_=U==="==Q==|======E=G=E=G=f`=f`=f`=f`= l=ف=Kn===5,=={U==S=a==^Ȟ= |=/=="=j=ڹ=K=P=+== =====/a=/a=/a=/a=k=r=f==ؠ=‘=J==K= =4=Mʢ=f=t=I=d=t=y=O===p=ѐ=2==C=C=C=B=ia=ia=ia=ia=kGk=v=^=F<==Q=԰=\=`=㒰=g==ov=l=|=h=m=4(=_=֖=&γ=x=<=t=====&a=&a=&a=&a=j= |=V=X=Z=\=^=`====5=vM=ee=p=*]=b=ŀ=Z2== =z=^=T=@ =@ =@ =@ =^=^=^=^=g=zx===:=tמ=bt=P=AE=8=-ۚ=$=q= xx= d=O=ؖU=u=<=&C=k==ߺ======OY=OY=OY=OY=a=Zs=[=: ==g={=í=颬== –=ы=Y=k=!V=X @=;F=ei=-=t==P=L==6=8=8=8=\S=\S=\S=\S=Dn\=m=m=v=6===|v==T==U=.v=K_=5G=0=7=\==Ŀ=jf= ==^Z=====2 N=2 N=2 N=2 N=V=bh=-$z=|=ⴎ=G=W=)=9^= ==(=k=zR=I9=!=(=dP=0x===ʷ=$=*=.=.=-=-=lH=lH=lH=lH=NQ=c=vt=P=3===ۦ=Ụ=m=v=z=(d`=AF=\+=v=h=1C=-n=b<=a=,===d=d=d=d=B=B=B=B=>K=]=o====ߙ=?==;=]=Aq=DU= 9=p==˘ =Tb7=+d=z=vߞ=9D== =#@=$@="@="@=)==)==)==)==/F=L;X=Gj=R|==/=5=:=@=0w=ސ=D=rWg="%J=,==i<`2x==X=u9==CZ<<3<) =&K=,~=== ==#=====4=4=4=4===@P=qXb=t=kl===̞==}ы=>x=#=====4=4=4=4===@P=rXb=t=kl===̞==|ы=>x=x=#=====AoAoAoAo|i]rgRF`R;/N=$Ʋ4)du0 W$Y3BP{_|1nt|΅3|3|3|3|AoAoAoAo|i]rgRF`R;/N=$Ʋ4)du0 W$Y3BP{_|1nt|΅3|3|3|3|AoAoAoAo|i]rgRF`R;/N=$Ʋ4)du0 W$Y3BP{_|1nt|΅3|3|3|3|AoAoAoAo|i]rgRF`R;/N=$Ʋ4)du0 W$Y3BP{_|1nt|΅3|3|3|3|qqqqk`KTPH<0(%X_'Ed,:HVd#01^?XM-[ix!KKJK.v.v.v.vpqWdIXK?B3&~Bsc-U5,V9Gy7T Uarn,{zzzzr{r{r{r{\uh[O\VBʔ57([]_ad!f:hSjlތ(,4x@ƴLX_dpSvRvRvRv]]]]zl_bR$E7ƨ*jx9`vIQ1=:$8/ 5:2E/P$,[.)fkkkk܂܂܂܂~]"qgcU&G8:V~,xy_E+,PsL)3_=#GQu[l`l`l`l`\\\\k΁fu0/g^XJv)09v!3b]&L{ yCE&.6v6rB>FIIIIcZcZcZcZzL}n_T^P.A1_" z\.ҖK J d7 \UNk F''>-64/[;+>+>,>,>////y:FqpobSD5P'ܪVZ  \7kO{! (h.47777ZZZZe*rd>WKI; E.$ '=Si x) <$k+TO2ʧ5ʧ5ʧ5ʧ5""""gI*s_g.ZjN@Au5+x%zxtnx h uѾ i!M(/Z3Z3Z3Z3ffffSޅ,8 $uip^!?SG<]2Z*V"ROK Hq3Sv$Z. &a- 1 1 1 1܇܇܇܇#UFmvOl1bXhMBC09-F0-&-*B) PN|\{}ϓ> @# *....˄Swne\SK@5k*)B伆j(|z ywu dt(s,s,s,s,73737373Bay @q7~ibaY8RG;;.c!зܼ׼X%U* Yӫ%&*&*&*&*|^|^|^|^oKz$sy$mΐf$_yiYNz@ 2#0ӼμEO߼G ~<#''''XǀzRsl{eCw^rWmPE݃7>)| xT7ü`м;Ly T####b{b{b{b{,vJmid[RoIZ@F7،,i/ tA.dsݼļWƼ5м㼁:A,2q2q2q2q!l`UkJW?Bh4.C)Pu缇Ҽ 1 󲨼WѼGHqqqqhhhh#ka5TGO9 ,`|+5) Ѽϸ+x8}=\z~U0ּ p WWWWZW^ZW^ZW^ZW^V%oG)84(CY '׼Ѱ#dsʙ~b~qc0IR-żdܼjy= = = = TTTTKo:R)m,ǼL8<{xNeR%?,a(XlM ͼX弧#####JJJJGA-{>`缂șew9$."mI }cӻ̚10c^JܤY׼{T....LALALALA6! ]켡q2WZ+7FxnsjUɼN  t=== ==c<W=?=fC=bG=J=tN=Z#R=U=Y=9H=!=r<>>>J=J=J=J=l,O=W=`=4pi=x1r=z=ف=:==!ӆ=AÅ=`====s= j=g#A=U=< 2 2 2 2 , =, =, =, =F===ܧ=r!==&= +=/=2=*V4=5=&7=L8=9=`;=o<=]:+=׵=b<6v+5+P!0011 R> R> R> R>/?xBEHPKNxQ)kTV *YX[ ]_ ad Af6c !\T,ME_8>46D/++++bAbAbAbA+/B>CLND]EnmF|GHIpKOURUX*\q_bfaPm\8#W QLDGA< : : : :DDDD'DCBBFAds@T@DRI1M81V+F$_T&I.5[=EE LaT((Z^]aʊdh8wkmncrttttRGRGRGRGD>b761 *$!*; v(&08#)AdIQWc#\g`dmh2muqvuNwNwNwNwC6C6C6C63L/*l&9`!s&E`%.b6H>F7O2U(X\;>`cPgIkdnpppp$$$$IF#} ٳi!1X0#+x3n)va^b^b_b^bxzxzxzxzP ȣB}i oT&K.)7&?GZ+MwO QRTV X+Z[[[[߼߼߼߼;⼨:_Yf [ 7aG#3,ީ4 =2ED~J=K62M0N+O$@QRSTTTT6*|ʼӼݼQL漳<m"S8&!)*2:-C-GHZIJJZK/nL3MpMpMpMoMccccV៼ܬعZƼӼ^s D'*/78m@$ESEzE+EEF@BFqFʉFʉFˉFʉFWWWWeխݏqS5ƼӼ⼿F9-!   (T-5/02!74T5789T:S:U:S:ϻϻϻϻD 2#; Sk΁lȍUEwμۼV鼾?A;r PP _% #( #( #( #(@9@9@9@9D*ԙz~ͻ-#8}McbIw銐̼ݼO 7777%;%;%;%;`;3;;y;:8;(:cX:2 'GZ両l߻|0Q, ̙[k ˼NI{L{L{L{L4Ug<4Ug<4Ug<4Ug|<

    <;9Bq0%!BCCCR =R =R =R =΅ =B = = =y =6 = = =SL = =@A==-6==+==" =D<@D=8=,3=3=>P8=Nj==MB=H=\>M=yR=kW=5P=C;=S'=a=8<<<A<7E > 7;7;7;7;< HCFSfǮ3}}}} < < < ;0; ;;[s;(3;h:qdʺl;KʈF޳DeLuÈTͼ u؂ Ao#Bo#Bo#Bo#u<u<u<u<(;[;ѧ;;{?;P;%׫;";>;m;;V::g+$9._D合BӻV! |YੈpmܼJY''''w;w;w;w;Q;;E;!;;pW;*;⌤;킎;Y;PK;ܥ:X y92OS :$,q!zKǍv 1եWżżżżQ;Q;Q;Q;;4;v;*;U;=;;;F;h;V*;z:3:#"9*bvHûkWU)>M(q}DxDxDxDxQ;Q;Q;Q;;4;w;*;V;=;;;F;h;X*;{:3:#"9*bvHûkVU)>M(q}DxCxDxDxQ;Q;Q;Q;;4;w;*;V;=;;;F;h;X*;z:3:#"9,bvHûkVU)>M(q}DxDxDxDxQ;Q;Q;Q;;4;v;+;U;=;;;F;h;W*;y:3:#"9+bvGûkVU)>M(q}DxDxCxDx = = = =A===`V=#==~=3='=X=0=}=ʼ= =Re==^=:=fѬ=g=n==Vv=]=wQ=wQ=wQ=wQ= = = = =A===`V=#==~=3='=X=0=}=ʼ= =Re==^=:=fѬ=g=n==Vv=]=wQ=wQ=wQ=wQ= = = = =A===`V=#==~=3='=X=0=}=ʼ= =Re==^=:=fѬ=g=n==Vv=]=wQ=wQ=wQ=wQ= = = = =A===`V=#==~=3='=X=0=}=ʼ= =Re==^=:=fѬ=g=n==Vv=]=wQ=wQ=wQ=wQ=D=D=D=D==c՝=,=@===Rb==ժ=n= a=&=K=걽=w=(==h=I_=+4= =ݔ=в=c}=&f=[=[=[=[=T=T=T=T=L~=?=0=#==&==5=U= =®=x=/=~==pR={V===SK===)@=#y=(up=(up=(up=(up=/=/=/=/=ܜ=7=4=O=jE===S=pԧ={=#=kʬ=q==f=g="==@==[=H*==ƅ=%=$=$=$=====;=g=8=|===EE=q=S===J=y=L==}==9=˄=ϝ==f==+=!=!=!=!=.=.=.=.=d=И=<====쐣=V=Ӥ=\="=*n=2=;=C =L===TJ=$=ٛ==i=^1=E=E=E=E=͐=͐=͐=͐==ɞ=@=j=i;= =ܢ=&=aR=D̡='F= =9=ϳ=-==ˆ=V˙==iT==}ݞ="=f=====k=k=k=k=W==D=@=={=8(=ʢ=ѡ=o<=,==|=d=!R=޼=R=$=i՗==W=8=~ڦ=Û=f|=f|=e|=f|= |= |= |= |=}=b+=H=.===s==Q==1=c=`==v='҆==\==ؚ==T==г=====˜=˜=˜=˜==/=4q=h==7=y=2=$=!=O=>}==؉=X= 4=6=+=l=#==j.=o==P=P=P=P=n=n=n=n==d===Q%=/=:=>E==)=8}=I^=Z?=j =z===ڀ= J=:=iܞ==n=7=====&=&=&=&==۔=ݮ== U=(=5=LΓ= =z=認=T?=ӈ=.h== ==Չ='=Py= ˜==n=@=====H=H=H=H==*=M=:==H =ѻ=XW=I=̐=؉=` =)h===?=P=*= =gߔ===>n=H=5=5=5=5=r=r=r=r=$===P=z=r=k|=e== =C=j========~E=Q=& =m=Ш=5=5=6=5=P=P=P=P=2=^=\=Ʒ=1====ri=ւ=n=3=v==~?===x=ԇ=6===T=m=Y=Χ=Χ=Χ=Χ= ƅ= ƅ= ƅ= ƅ=w@=T5=1*= ===D}={=;{=}{=@|=}=J~==H=K=뵂=)=====mm=X=N=N=N=N=====iN= = }= {=Bx=v=z|s=p=p=r=u=Iw=sy={=}==_=~=L{=w=:t=p=(m=i=g=g=g=g=====9=؀|=>x==u=q=nm=Xj=7f=:f=%h=Ok=v6n=p=Ljs=1v=x=~= ܂=/=S=wd=<===؛=؛=؛=؛=====鈁=}=;x=r=$fm=8g=Mb=a%]=Ώ[=]=Y`=Ob=d=f=mi=2Nk=up=x=hH=[O=MV=@]=2d=$k=n=n=n=n=̈́=̈́=̈́=̈́==~=w=|dp=@0i=a=Z=S=P=R=cT=gV=(>X=Z=[=O]=Ab=Mk=Ds=$|=#H=}==f=F=F=F=F=====Gx==uv=m=\d=[=AR=J=o9F=nG=mI=nJ=mK=mZM=lN=l4P=zOU=^=f=ժo=sx===g===========2Rv=Tk=v`=U=6K=o@=>;=ۑ<=x==>=?=O@=A=B=G=nP=+ Z=0c=Wl=[~u=~==/=/=/=/=====g==u=i=\=dO=7nC=6=0=H}1=2=2=K3=13=k4=5=):=EC=2M=V=M;`=i=Cs=T|=@ŀ=@ŀ=@ŀ=@ŀ=u=u=u=u=U߈== u=-f=XX=0I=;=2L-=7&=h&=&=d&=<&=,'=\'='=',=y6=[@==J=T=^=g=q=ѵv=ҵv=ҵv=ҵv=_=_=_=_=W=E=jht=Ed="T=C=,3=\#==#T== ==q=j9==a=C)=3===H=7BR=Ɂ\=Zf=#k=#k=#k=$k=T=T=T=T== =t=Pc=R=`A=/=q=7==\=`=#===m:=:=]"=-=7=}A=bL=;V=?a=vf=vf=vf=vf=T=T=T=T==!=t=Pc=R=`A=/=q=7==\=`=#===l:=:=]"=-=7=|A=bL=\#xȿQѸ=>?v>h4BT>NwZʾ{>߾-нq=yL@")&$S>T6P8>Ľڛ%Q=$>Oġp*>I7=m> >r惾%>xbL'"㾖=>M>|+E> Vvision-0.19.1/test/expect/ModelTester.test_densenet161_expect.pkl000066400000000000000000000010371466211133600247660ustar00rootroot00000000000000 lF jP.M.}q(Xprotocol_versionqMX little_endianqX type_sizesq}q(XshortqKXintqKXlongqKuu.ctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX140601915307600qXcpuqK2NtqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .]qX140601915307600qa.2>-D>q}>^VI:X >Ts=t>oMԨ=P<$}>K>`޾<߁>u1>i>MI|B|>D= >tk?SP>8_f= h>:(vf>>>=ٽ>\J=_$< Qvision-0.19.1/test/expect/ModelTester.test_densenet169_expect.pkl000066400000000000000000000010371466211133600247760ustar00rootroot00000000000000 lF jP.M.}q(Xprotocol_versionqMX little_endianqX type_sizesq}q(XshortqKXintqKXlongqKuu.ctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX140601915361312qXcpuqK2NtqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .]qX140601915361312qa.24Eݾڥ?V$H\;\8>@>p e;F>>>α%(ƽ|=(B'lTe=bLR>l> t>'V>#cN?2ˠ$s9?$H/?5>1?ľKC>?f9ř/?rWf?3<'ONl[z&?\E >༾lo9?3?vision-0.19.1/test/expect/ModelTester.test_densenet201_expect.pkl000066400000000000000000000010371466211133600247610ustar00rootroot00000000000000 lF jP.M.}q(Xprotocol_versionqMX little_endianqX type_sizesq}q(XshortqKXintqKXlongqKuu.ctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX140602333648992qXcpuqK2NtqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .]qX140602333648992qa.2<.l̾PyNqcx%?⪵>o,W?oaXc=%>=Y>h>Ά>N>s?"~>(=y6 =ʾA?Te?%=.CQ>i=[j>l==Mg>π??p=zy;!n^*yۣ*L&0rF*t0ԨXSL/T/*@ȧDžܩ@x2ȩ)?()JSx)*֩-')t>,uQD,PK1őPK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPK1őarchive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_efficientnet_b1_expect.pkl000066400000000000000000000016531466211133600257620ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZވ)a")0Nq0)ܾ@*t)N( )85* ^63)jxL*.(n(*@zv)ɾ)pD)b-)K)e0))b)7)2M*}D})~'(QGfP!*2*Т0J)Df*bi*2,*|PK/*aeΩʁ( *y訊MD2*rȩ,( ;*!*)+*S'p(#*x /@)۩T D(* (  Ɋm*Dd)kW*<*W-*PKrFPK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPKrFarchive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_efficientnet_b3_expect.pkl000066400000000000000000000016531466211133600257640ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZW&)Q[)^Hĩ,3)ux h' )GW)gQ#'VƩ@y%z)N), MZ@ 'DjU)4K㥩M1(XƧ˩n{)冩0c)xm%)"0C$V()G)ۄLr(PK*_PK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPK*_archive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_efficientnet_b4_expect.pkl000066400000000000000000000016531466211133600257650ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ0O ^up(;ѧ,`Y('\|qZQ58#'; (Ũ؀&x((v(-(h)L&n^)ɞnF) ue'ܧɽ(uE(ϧPK,h}uPK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPK,h}uarchive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_efficientnet_b6_expect.pkl000066400000000000000000000016531466211133600257670ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZեX]4]!'\O''8B'Z'ƗGe9'M' 'R~%IH&h''D5 x'AO'鼦g&Y,ۧIn'&&.g&Kjק%~ݙiK'ž' +Φbŧ4' Y'į%W6m&ɖ'p&PKkPK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPKkarchive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_efficientnet_b7_expect.pkl000066400000000000000000000016531466211133600257700ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZl&8tc'] S(ْ@8b*L''oLV%p'UЦb&mV'O!#'%ȧ|˧<'Nk;&n&$視졦H姀 K' ܦa O'_&]4:G&~b%'^&'@X'; &'PKdPK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPKdarchive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_efficientnet_v2_l_expect.pkl000066400000000000000000000016531466211133600263220ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZuw3j 4ó$2ԛ1ٕX}3F43%.4<4s3Q49"4r*2t63)3<4c3x*43#3a=4c8362=J3*&ִ 3m3Y73ʳs4^ڠ4y{4]U Qƨ4Vz g4n33>0PKFPK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPKFarchive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_efficientnet_v2_m_expect.pkl000066400000000000000000000016531466211133600263230ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ21~%2148ֱ1B2n_X1Fٸ1 1H0Z*0sc1`x P-nvw20K 23[}j1i8mp0p1}@'2x1^U=-0?2ܯ1=Q:200\Z '_PKe3 PK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPKe3 archive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_efficientnet_v2_s_expect.pkl000066400000000000000000000016531466211133600263310ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZe5)5ƹ63m5ݘK`ʳ,9 5HJ558;6I^`^5@¡Z5@s~6sA54t6*vNu!96x4p6Qﻵ4 FW!,Uq6X5A5A 4А6u5865L<=66(2%5Dx6 5 #xXCPKmPK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPKmarchive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_fasterrcnn_mobilenet_v3_large_320_fpn_expect.pkl000066400000000000000000000100151466211133600321410ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZ]q}q(Xboxesqctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX140429311173760qXcpuqMtqQKKKq KKq ccollections OrderedDict q )Rq tq RqXlabelsqh((hctorch LongStorage qX140429311178912qhKdtqQKKqKqh )RqtqRqXscoresqh((hhX140429311160736qhKdtqQKKqKqh )RqtqRqua.PKciiiPK archive/data/140429311160736FB ZZZZZZZZZ><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>^= XCKpCyeCrC Cx CB\ C CB(A7BvNBBrxC\CΑCyeC(A\zCvNBBB\CB;ByeCrZC\zC΂CBrxC7BΑCx C(A\ CvNBxGCrC\\C+CCvNB\OB'=C84CBB7BB;BxGCrCΑCx CB\ CB;BBB7B CAr,A^'BTBGBrxC7BΑCx CrC\ CICB(A\CvNB&BCICBrZC\C΂CGBB7B CGBrC7B+C`BތBC@˩B'/CJ"C&>'C^'BJ|C|pB,AڄCTB&B Ba"CMCArZCmp!B΂CyeCB\zCB;BxGCB\\C C_ C Ba^CMCxGCB\\CB;BCgCxGC(A\\CvNB_(CC΂C_B^<8#4CKpBGBrZC7B΂C|pBS?BړCJC 9C &ACCx CrZC\ C΂C B'C&MCJ|Cp=rC`%A+CyeCrC\zCICGB#;7BA$C<CBABmp!B CGBB7BB;BvBCCCBrC\C+Cp=B`%AB;BPK>?@@PK6archive/data/140429311178912FB2ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZPK=  PK#archive/versionFBZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPKciiiarchive/data.pklPKӳUtarchive/data/140429311160736PK>?@@archive/data/140429311173760PK=  P archive/data/140429311178912PKўgU archive/versionPK,-YRPKPKYRvision-0.19.1/test/expect/ModelTester.test_fasterrcnn_mobilenet_v3_large_fpn_expect.pkl000066400000000000000000000100151466211133600315550ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZ]q}q(Xboxesqctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX140579765863120qXcpuqMtqQKKKq KKq ccollections OrderedDict q )Rq tq RqXlabelsqh((hctorch LongStorage qX140579765853792qhKdtqQKKqKqh )RqtqRqXscoresqh((hhX140579765869904qhKdtqQKKqKqh )RqtqRqua.PK6iiPK archive/data/140579765853792FB ZZZZZZZZZPK=  PKarchive/data/140579765863120FBZZZZZZZZZZZZZZZZZZ;Ca+C$DCtCtC/CaC$8Ct$CKCMBlCJBY/Ba7C^PBtHC.B–BIBJBwCBlCΕbB.BBIBt C4AC&ARCCaC$ Ct0C.BCIBRC?>$ BߌpBWXCgaA@B C;CC$DCRCPB$ BZ8LCWLCkCvA$tCΕB.BagCIBtxC_C–B$hCJBkCB$tCΕbBSCaOC$\Ct`C-͇BagCIBtxCCasC$ CRC.B @X@$C+A;CaC$DCRC-͇B–BIBJB/CagC$8CtxC#CC$,CRC-͇BBIBtC.ͷBaCCIBtTCPKJG@@PK6archive/data/140579765869904FB2ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>C3 C`oGC_wC@J?9 C`0Co.C0CFBԥ C@*Cd1CDBrB`C .C/CԊBWAi1BK.C,C3?J.CBHB&!B`CB@U[C4zBiBABB1BvAvBBBB`CrBb3BK!C?CBr5@B6B܀B;IAⱄB~BBlIBA CCBWA4BsBkB} B`C>C1C`CHAuA+B`CB6B`CӷB6 C#B%BBCMC| B`C˸BCBMgC8 CB`0@3B`C6BuV>CFCBtABUB%CAaC45CB@mASC(#C"C\oA>Cd9CqB`B/C}BzB`CBT3BB?gB%%C^C2Ck COrB`B$B;B`A-QBTrBvBϒA|BhBdC`C1UC(ACB!CO6Cy:CE Cl;C@CP@BB&4CBY7B+BBC$BQ+C>AC@BB'BRGCB@ BB"C&B&C9CBaBBB|.BVA OBBCKC`CICB@C/@CB3CBB~E BLBPCALBC2BRNB:|9CI:C&CpMC+CEBC`CgBr1CBBUfoB*BpBJJ;C#:CC35CE-Cv7C.WCB@z1B1BB"(BgB`CaBK;BCBA BI%CqBA`(B'C[5C]UCa6C_CxECQ^BJ7C`CtiBpޞAVBB@/C7IC`C *C^Y/C,CXC'5C2C7CΟ[C:xBBCO.C /Co0CXs[C+0CBk:CPKC+=C CǦ>C6C< Cf8KCvB(CyB!QC2(CEBQB"B]BٙBZSBB5C3"CR}C]$CJC1CݐB`C!B+4CMC6CqrDC2C C)HC/CmCr,BeCP CC&3CO C =CPK؀B'@@PK6ModelTester.test_fasterrcnn_resnet50_fpn_expect/data/1FBZZZZZZZZZZZZZZZZZZZZZZZZPK#)  PK6<ModelTester.test_fasterrcnn_resnet50_fpn_expect/data/2FB8ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ~?g}?_}?2}?9|?x'|?|?q{?J{?{?{?${?l#{?5z?z?oz?/y?y?x?)x?x?x?nyx?Kdx?VBx?w?w?Hw?{w?sw?]Ow?* v?u?]u?u?͍u?}u?zu?mu?3,u?t?t?{t?ft?Os?s?Uis?]s?3s?Q1s?s?Br?r?lr?hr?Jr?oq?fp?Ep?zp? Wp?Up?Kp?*p?<p?H p?o?`o?\o?Ro?Dn?*n?Cm?bm?:Om?6:m?w m? ~l?xl?l?fk?@Mk?*k?vj?mi?qi?ei?0#i?E7h?g?rg?^`g?f?e?i4c?c?b?stb?Ga?`?PK,WPK7 ModelTester.test_fasterrcnn_resnet50_fpn_expect/versionFBZZZZZZZ3 PKўgUPKnM??8ModelTester.test_fasterrcnn_resnet50_fpn_expect/data.pklPK؀B'@@6ModelTester.test_fasterrcnn_resnet50_fpn_expect/data/0PK#)  6ModelTester.test_fasterrcnn_resnet50_fpn_expect/data/1PK,W60 ModelTester.test_fasterrcnn_resnet50_fpn_expect/data/2PKўgU7`ModelTester.test_fasterrcnn_resnet50_fpn_expect/versionPK,-PKPKvision-0.19.1/test/expect/ModelTester.test_fasterrcnn_resnet50_fpn_v2_expect.pkl000066400000000000000000000104721466211133600301000ustar00rootroot00000000000000PK;'ModelTester.test_fasterrcnn_resnet50_fpn_v2_expect/data.pklFB#ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ]q}q(Xboxesqctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqMtqQKKKq KKq ccollections OrderedDict q )Rq tq RqXlabelsqh((hctorch LongStorage qX1qhKdtqQKKqKqh )RqtqRqXscoresqh((hhX2qhKdtqQKKqKqh )RqtqRqua.PKnM??PK9ModelTester.test_fasterrcnn_resnet50_fpn_v2_expect/data/0FBZZZZZZZZZZZZZZZZZZZZZZsBMC{B`CBDXC#4C`C/8B[BBr7C CBCR6CߋB0{B!t~Bh@C C:?B!Cc /CMB-C)C`C C-z5CCC`CmB"BsŶBoACCHC=C`CC;CB`CB?C`C0CAEBC`CBBOiB6/CyBBdB2CBTCm;B^C AACB`CvlBuBE4B`CB&6C .C`Ck AtoB5AFC9B4uBǬB3]0CTBCBg WCzC.BCi!C%C'-CT.C`CT$C?*C*5C`CfŪBZCB`C5B"!C B`C BWBC/BEC% C>CC`CC C,C`CKBC4B`CC7%CCZICu;C4C0C`C,BBR B"C@@_ XCB`C}BB`CP BB#BCCCv6B3CC eBvQCp1B`C6B¿CJIB>SCs!C C+/C`Cb>B CABn$CBaBIBB'BAB+l:CBLB.BڄCRs@MlB,#AI&C!*C C:?C`C CBO)Cu!CmC/FC$C`C{BZCB`C)BAk0C`C;BC}%rB`CUiC'\QC,C`CnC\CCFECiBC(7B`C B%B9Cm;CB5CNBLCtA#BbA.CB$pA`C؝C05C( C`CWBB9CKB`Ck>A ByA`CخB"CB`CKB(,C`CXCC;CeC`CA#7BP\AUB`C CF\Bz.C`CBB0tB1u'CuA9BBdMC2֜BBBu 8C$2BB[ZBX7Cx[B}-CdB`CoB CB)C*Ct+CC`CCzD1C'C`CBC[ BV}6CS0CBZC"B(eBC6Bl CɝB`CV֌AJBj B[0BBBX]B6CBBىBCC՞BʏB+!B81CB%CV*B`CBBp C5C#BEChB8NC>.BrBQBǧ:CPKSmu@@PK9ModelTester.test_fasterrcnn_resnet50_fpn_v2_expect/data/1FBZZZZZZZZZZZZZZZZZZZZZPK#  PK99ModelTester.test_fasterrcnn_resnet50_fpn_v2_expect/data/2FB5ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ?%?R?3?}???X?U?#?1?&??U??Ș?????-?W}? y?@t?*@A;A sA+DAܤAPA ëA96ASAmAAAڶA6AA얍AACcAFA*A A A A Ac?c?c?c?³ ¨?>*@A;A sA+DAܤAPA ëA96ASAmAAAڶA6AA얍AACcAFA*A A A A Ac?c?c?c?³ ¨?>*@A;A sA+DAܤAPA ëA96ASAmAAAڶA6AA얍AACcAFA*A A A A Ac?c?c?c?³ ¨?>*@A;A sA+DAܤAPA ëA96ASAmAAAڶA6AA얍AACcAFA*A A A A AchZ@1@^ ADAg9{AtA9AAųAARYA,AAѻAALA}iAAArAt4ZAҌAA95A95A95A95AϛϛϛϛQM8=[@@@BG!A2nVAʅA ^ApAAA.'AMAkKAݷAoAŵA{߬ATA,A-AFA`AnAfAfAfAfAMMMM^ Ϳ?@'A$4AXhAnAħAoӴA$A\vAǵAJAjA6A A*zAA+AA.AA0A.AqrAqrAqrAqrAǿǿǿǿ8;nH@J@@/A9HABzAL&A0+A 6AFAWAwhAGyAA䚵AA.A#AA,AVAAAAiݣAhݣAiݣAhݣA====(?@w@6+A[AA)TAđAAhA8A ABٸAjAyAIA5A FAڨA AnARѸA$4AA`HAaHA`HA`HA????2M@@QA->@A*oA AAVA?AA?AA>9AȶA>XAAA7hA8A. AA$AzAKAXAWAYAYAY@Y@Y@Y@V@@'AEUAQAA䯮A^A]AAAbJA:AA6AÅABLAfAȿAADAAA>APAPAPAPA@@@@d@*A}>AMjAJAAݶA}AtAAAA6AhAA#AAAbXA.AA[AAaABBBB@@@@e@oA,eFA!rARAͤAAkASAAjA#rA&A۸ANAEAӯAApACAAcB$ B(B(B)B(Blh@lh@lh@lh@E@@0A?2ANbA.A5AQAAeAAWA A$AA"/AA"A5A AA`A`A`A`A@@@@@A1An[AނAA.AUA%0AAJA>AeAAWA A#AA#/AA"A5A AA`A_A`A`A@@@@@A1An[AނAA.AUA$0AAJA>AeAAXA A$AA#/AA"A5A AA`A`A_A`A@@@@@A1An[AނAA.AUA%0AAJA>AeAAXA A$AA#/AA"A5A AAaA`A`A`A A A A AAp}ATA,AALT@L@`s,?3Tmh+'̿Mp1[C@@$A^AtAvAyABABABABA A A A AAp}ATA,AALT@L@`s,?3Tmh+'̿Mp1[C@@$A^AtAvAyABABABABA A A A AAp}ATA,AALT@L@`s,?3Tmh+'̿Mp1[C@@$A^AtAvAyABABABABA A A A AAp}ATA,AALT@L@`s,?3Tmh+'̿Mp1[C@@$A^AtAvAyABABABABAZAZAZAZAkA=A _WAڢ/AAT@a@?̴龡CC) D^(xB:?ff@t@B3AIkAA+AAq Aq Aq Aq AAAAAaA8A \Aa5A|A+V@ᲅ@Y>?'?uK?o#o?h?@?B?r??z U@@AQAAAA!A*A*A*A*AaAaAaAaAWA A`A;AAlW@:@v!@?@?@9-@E@|^@Tv@@"ؽ@$A]?AoAA A A&A,A5@@W@젇@a@B"@@@"2 AxA32AZA|AAFߩAAAA>sAAAAALcALcALcALcAn9AA#oA|NA -A- AD @\@ ؈@X\@@d@t A6A.A@A[A'AcAHA۶AARAbAEAEAEAFAAAAA`/A쐉AsATAk5A6.A@h@ϥ@@_@Aw)A?ATAcjAA(AbJAAAALcAAAAAA虡A虡A虡A虡AQ%A#sAFAAA(AXAABA5AA]A B5 B5 B5 B5 BzAzAzAzAAAoAAVuAWAΫ9AA\Ar2A`LA,eAeAsA"5APAA^iAA,AJAAɨBYB B B B BAAAAAA[AA rA”fArEHA )A-H'A;@A/YAk"rA늅AAV~A AdAcLAaA`A`{A]A"B- Bm.Bl.Bm.Bl.B~A~A~A~A)A߷AHALAArruAVAK8AC45AMA3eAa~AcAMAǣAAǼAh/AAArhAABP BԪBԪBԪBժB{A{A{A{ABAֿA4kA~AȓA(AxeALFAX CAZAdrAtPA7;A%AAAAmA ~AAUA`Bw BPB='B='B<'B='Bx"Ax"Ax"Ax"A[AA @AcA$AꖉA\tATAp QAShAApA]AAYA9AdArAdAABAB[ BGBBBBB>A>A>A>APA5tAA-AޚA$AAKvA9VAQAPgA }AA AA!A_,A}ZAݫAAIATAQfA}AῊAArA4KAP$AlAAAAA@A@A@A@A Aa̷A#AQAL)|AͮUAP4/AҹAK@xAC AApAI(A2Ah;A^KA,bAzAbA?A.ڟAtAA-ܼA,ܼA,ܼA,ܼAůAůAůAůADA@wA=A;Ao xAiQAd *A]*A@@A ABAA[&A2.At>AjUAalAA&AAAAFUAFUAFUAFUAůAůAůAůADA@wA=A:An xAiQAc *A]*A@@A ABAA[&A4.At>AjUAalAA&AAAAFUAFUAFUAFUAįAįAįAįACAAwA=A;Ao xAhQAc *A]*A@@A ABAA[&A3.At>AjUAalAA&AAAAFUAFUAFUAFUAůAůAůAůADA@wA>A:Ao xAiQAc *A]*A@@A ACAA[&A3.At>AjUAalAA&AAAAFUAGUAFUAFUAB@B@B@B@V@>ARBzB$By/B#1BH+Bmj%B7BBB B(lBRBRBRBRBB@B@B@B@V@>ARBzB$By/B#1BH+Bmj%B7BBB B(lBRBRBRBRBB@B@B@B@V@>ARBzB$By/B#1BH+Bmj%B7BBB B(lBRBRBRBRBB@B@B@B@V@>ARBzB$By/B#1BH+Bmj%B7BBB B(lBRBRBRBRB@@@@Z_@| AKu/ARA:vAΌABA1A.A̓AlA=BV B%9B B4+BQ-B'BQ BBBB BXBwBvAuAvAuAZ@Z@Z@Z@q@6s@Aλ;AaAރAߖAATABA/A}AyB|4BsBj"B"U$BBB$B BYBAAwAxAwAwA:?:?:?:?b+@v@<@$A>MADuA>AAzAAA-AioA/B'B BxXB+BIBBG;BgA^YAJAzAyAyAyA|J|J|J|JݢAq/A(A(A(A(AttttLd]?6b@@CA9A~QAWA]AcAֿiAoAuA{A(yAmAaAGVAmJAD?Ag3A'A!A!A!A!AyDc#?LL@@;A-AfdDAqHALAxPAәTA.XA\A`AN^A[UAhLAPuCA:A1A(ArA.A.A.A.Ack?G;?@.@Z A5!A$At[&A(A+ARh-A/A2AG/AF)A"AAAAPAA<A@@@@----fKT`gOJ9?^R@uЮ@ڕ@@di@(S@<@&@s@8@$@ԍ@@va@H˵@5@잢@@=@=@=@=@IIIIz:Thr3꿠>x@C@&A@7@@Mx>@߸<@t:@ :9@z7@0@%@w@ @ '@X?x?^?????eeeeWB< ,)#AۣtCD1NH l贄YdNtbzIƿοֿ߿effjjurJ]DDV,nڔ3 .d-ןI0mQ [rJYr[rZrZr ˉ~i~Tlw?Zo*Gg5_jTZfl~ @|oĵqC͉{ ) ]..-.ejo|k|YGQ6|0L6KDа?d;-8-8.8.8''''{)iRӉ흃ʖwךlYΣ7ˈ::::f.f.f.f.Mި訢s>RӉ읃ʖwךmYΣ7ˈ::::f.f.f.f.Nި騢s>RӉ흃ʖwךlYΣ7ˈ::::f.f.f.f.Nި騢s>RӉ흃ʖvךlYϣ7ˈ::::ٙٙٙٙ8oBR%Km4db?BJ@3@@W@X|??w?+?>hs9Tٿ R+J &Z &Z &Z &Zٙٙٙٙ8oBR%Km4db?BJ@3@@W@X|??w?+?>hs9Tٿ R+J &Z &Z &Z &Zٙٙٙٙ8oBR%Km4db?BJ@3@@W@X|??w?+?>hs9Tٿ R+J &Z &Z &Z &Zٙٙٙٙ8oBR%Km4db?BJ@3@@W@X|??w?+?>hs9Tٿ R+J &Z &Z &Z &ZVK]?1/.CN*>>"<@@|@^l@8[@YJ@R{9@(@@=??('L?b>N 8.?I@ί@i:A1A3JAA#RAOYA^?aAlhAz[pAwAwAxAsUdAOA;A&AAt@a@Ƽ@Ƽ@Ƽ@Ƽ@""""\R!=,@ҩ@]@t(A:RAN]lAvAAA-ARmA AAAA;A!iA]QA:A֨"A5 A`@`@`@`@ƹƹƹƹ!5@ჾ(@f@R@ A IA\rAA%ˍAA,>,>,>o?_@Ȱ@H@B"A$EAe-iARQAAAȧAAuALA#AAA~AAA A%A!blA)yLAAנA;pAANC_At>Aq .Ap .Ar .Ar .A????L@K}@͸@q@A|3A^PA@mA4AlA͙AۤAAJAAA.ATAzAAlƊAsA|$RANp0A7A7A7A8A????$@@!ܹ@@vA*AzDA^^AvA&AtВANzA($AεAwA!A0PALAhAiAAsgAEAk"AAAAA@@@@ A@@@@O@Q AԌ!AX?8ANAfAAEӋAA>^AA6A.AqA汴A4A2A~AhABA4A3@r@r@r@r@P@P@P@P@j@0[@_T@M@F@?@A(A)A\CA]AwAAAZAAkAAA2mAIA%AkA@{@|@{@|@"@"@"@"@5@[@߀@@o@@%@~ @0AA-A(DA~[A4RrAݒAA }AD(zAmVYA8AIJA@6@T@oQ@mQ@lQ@mQ@ ? ? ? ? x@@"0@/I@:4a@Dcy@(Ɉ@@8@@O3@nAA4%A9A8MA`AY[AA AQAō@y@*@R?XCνpCν`CνPCνV?V?V?V?&?>?ٿ?jt?*??Y" @o@v9@~{@V@b@o@AKA!AA3A@:@kO@?)a׿5 5 5 5 >>>>`>|>X8p>6>@^=Ո=_2<{8>7k?v@Է5@j@@@ ^@@W@?@dN?@=\0,,,,NA˃zcɿL쿚3y &ʿrx>|t?|?^Y@x?R1?A WAؖA֞AA܉AAvA XAlR;AAcA@^@^@^@^@;1@;1@;1@;1@lMi@8@@mA`v*A!FAbA~AA-AoAAA5AwAA`YAHvAЧZAV>Aݜ"AdA#@@k@j@j@j@诨?诨?诨?诨?`@d9@VB@FK@A4A QAnA~}A~A ~AAAMAXAќAE4tAYA ?Az$AM A @@Nh@ҏ3@ҏ3@ӏ3@ҏ3@    wM?u+@ﺑ@O@A"A6@Af^A$mAkA>jAhAXgAeArdAbA˵UAǔj>l>n>SBSBSBSBd@!?6}@@y@4A),?ArLAGAAA4w 1111QQQQ_ y?o@~@@\A0 c- Υ<ϥ<ϥ<Υ @:E@ǽ@J@fA 9AWAj\AݨGAO2AA3AL@1@G@b@2~*@?xh?=eX~ܿJe&>xB>xB>xB>xB,?,?,?,?>?DV@@I@ A8+AmHAeA1hAOA17A^A51Ab@a@r@!)@)?'߾Meک/JHJHJHJH????^2@ @1@KA~TA:A2WAsALsAWA¥;AA7|A@X@<@>??$>8wXg>gȿk8NNNNGBL@GBL@GBL@GBL@?@v@@eA .A)rJADeA0AlA[_A@Ap A8A;@@R,@sX?>H9Q!g׹2BSSSS@@@@@ Y@I A$A?A ZAtAUAA1gA4DA7P!At$@y@X^@¢?4XY`s "K@"K@"K@"K@}@u@Db@' AL#AJ@޾)@p<@"=j>p>d>h>(@(@(@(@J@@6@@qAI,AiEA]AZA6c&G=p>%?a??7?S?S?S?S?8?8?8?8?Z@v@)@@AA5ApMAeKA.AJA@>@'m@?p= (>pb?F?3?8@2@A@A@A@A@4?L@8@p@@.@@@@@'='='='=?Z2@R@8x@ҝ@AtASA"A @}{@2@l"@L?ἾԫJ>F?f*&@i@Q@_@o#@6@6@6@6@ސސސސ| ޾Iv?@t?p@ʤ@;v@{!@^fAaA@lI@@@&o@#@Хr?,",?j?i8@B@@@@AAAAސސސސ} ޾Iv?@t?p@ʤ@:v@{!@^fAaA@lI@@@&o@#@ϥr?,"*?j?i8@C@@@ @AAAAސސސސ{ ޾Iv?@s?p@ʤ@;v@z!@^fAaA@lI@@@&o@#@Υr?*",?j?i8@C@@@ @AAAAސސސސ| ޾Iv?@s?p@ʤ@:v@z!@^fAaA@lI@?@&o@#@Υr?+!,?j?i8@C@@@ @AAAAŏAŏAŏAŏAՒAZZVA %Az@@h?xҜmdT4U?8:@~@H@!A1AMA7jAvAA,dA®A APAPAPAPAŏAŏAŏAŏAՒAZZVA %Az@@h?xҜmdT4U?8:@~@H@!A1AMA7jAvAA,dA®A APAPAPAPAŏAŏAŏAŏAՒAZZVA %Az@@h?xҜmdT4U?8:@~@H@!A1AMA7jAvAA,dA®A APAPAPAPAŏAŏAŏAŏAՒAZZVA %Az@@h?xҜmdT4U?8:@~@H@!A1AMA7jAvAA,dA®A APAPAPAPAtAtAtAtAH~A^NAAL@*(u@N?R ȕ(hſj?.P'@!<@-@ A$+ApDA[^AwAɈAPAeA2AAAAA҂A҂A҂A҂AmA6h>AA(׾@ ?@<~=<`&^ t~@@@A=AN2AEAHYAlA/A4AVA-A-A-A-AatAatAatAatA]Asq.AB@a@A @|@j_9~1 ,Y?=bb@@\@HUA,l A-A:AٰGATAaAnAuAuAuAuA.cA.cA.cA.cA=LAzAp@@?uĿꡌ& L@Y@mW?9W=@i@o'@zmA BAA,A"AL)Ah0Am=7A:A:A:A:AnQAnQAnQAnQADh;AA0?@R@p>5,?^=2qlN>7L@NG@h@Z @/@JT@x@<@@.@ @@@@@@A@A@A@A*AU@ @@p0F% z_qH>c?/J|@@;@@_{@0@@Z@@u@^@^@]@^@R/AR/AR/AR/AA,@܆@-? +xf[ BhEen`l?X@@"l@J@t@:{@O@@d@@Ø@R@?X'?/w*?#sS.A.A.A.AA"@2k@B@8${G'|ALRS>?P\@f@x@҂?Z:ǿN6>A>A>A>A+A~AtQ@Jo@*?RmP dklhR 8F=국?&@Q&@ڪ?0=m@$nƄ20102020NANANANA*=AA7@{)@6<@:h8?n`[(U^6_atVVגeC~~~r[_Ar[_Ar[_Ar[_AZNA+,A A@7=@@Dž>O<)>@Ͽ2xV>o?y?pčB-FxffffBoABoABoABoA_A^?A AA._@@Kt@T,>`o4#=(۶3%n_B%p.!.!.!.!pRApRApRApRA?A3fA]IA-AQAM @~u@^q@A&@R??N?=Y>eľTzܛɿmcNZ$Z-Z-Y-X-AAAA΁AvA ]ADA+A}A6@>@*\@Ŏ@a@5@,M @d?[^L?=WY2sTWڑz ^X.~"~"~"}"fAfAfAfA[AEA^nA2ZAsFAB1AA A @@(@@6@̽@D@ˊ@*WV@?ӹ>̧@'M{F?*@*?*@*| A| A| A| Af5A8AAUpAb`AQA@BAR2A(AZ$ACA5AA4A~ AAO@a@8t@ @n ?`T<0''''RARARARA1AȍAAkA҅AAAqAA]AԤA$JA8AA֌A|qAKIA !A@s@""@????ףAףAףAףAAAAqAbATAEA 7A_5A@AKAVA bA6mA`xAAxAVA 4AASA'A@{'@c@c@c@c@IAIAIAIAavAϦA4)AAܳAp5AَACAAYA%AAfA\AAFA'AxAʩA~AlRA|MVA%A=@%@$@$@$@AAAAHcAA~Ac A˜A"&AA@A &%=;g#F3F3F3F3YܿYܿYܿYܿ8k,-?@ex@l@@ A$A+A AA A.@,@N+@)@~@,U@ > &%=;g#F3F3F3F3YܿYܿYܿYܿ8k,-?@ex@l@@ A$A+A AA A.@,@N+@)@~@,U@ > &%=;g#F3F3F3F3YܿYܿYܿYܿ8k,-?@ex@l@@ A$A+A AA A.@,@N+@)@~@,U@ > &%=;g#F3F3F3F3,,,,FW>?pB_@@6@[|A A:A)BAf6A[*AAAhWA'@8@2@tQ@V+?<$9ZpR!Ka3Ja3Ka3Ka3&?&?&?&?O@b @@,@\A0A.ALA`gAGoAbA4VAkJA">AG1A%AFAY@G@Z5@x>eRYT+2T+2S+2T+22u@2u@2u@2u@@ @* AP!Avv>A![AwA;A2AˇAdAuA*iA&[\A.OA6BA%AK@\@'?$7{ ]0\0]0\0h@h@h@h@@ A+A IA#gAA*A6A¤AAsmA#ÐAAnAcyA3lA4LAɋA]@OP@ <=bDzjf/f/f/f/AAAA5AR3AoRAČqATAnAqAyA*QAdAvAAArAL‘A(ՊArA?;AAܗ@+?} eo.o.o.o.@(A@(A@(A@(Ak8AXAyAAA A7AbA@AFAMATPAZ AaAhAnANΌA\AK AE@@pN2xS-xS-yS-xS-KAKAKAKAd\AU0~AߏAAnA6AAAUoAAAAAP1AAKA<(A6~A"ׁ****~8A~8A~8A~8AȊAAC A)AIA.jA}AfUBgBvA>AAAeA=AdA~AAp?eA^A@ Y?ik$&&&&riAriAriAriAgAGdA`Ab]AYA~VA SAOA@BAA@AAA?A>eA5#AyA+_ANA@z?cVIJJJhAhAhAhAAߞAhA5AjABAAhA3rAA·AARA ABAeAůAcAZAh>A@?2AAoAGA A A*AHAfA_ AF7AXNA&A@m?iLVVVVF-AF-AF-AF-A AQA A,A4AAIuAAHAA AiAA*0AKAfAA!A(IAA@:Ͼ? kzxyx<^A<^A<^A<^A A̤AA|`AFAA=AAAAAAA5AmNAUgAPA|ẢCA A@v0?.crqrr0A0A0A0A5"A=HAFnANAVA^AhAp,AAAA Ao$A:APQAgAAJsA=AAߣ@?v\пlllk)A)A)A)A(A'A&A%A$A#A"A!AgA1AA!AA+AAFA$7A[A)AC@)@?ܿܙ*3*3*3*3WlAWlAWlAWlA,sAjA?A8AAA+AfA#A AA AAAA#xAC7\A1A A @G@P>, WWWW]=A$3A6*AJx!A^6ApA{@i@@@:/@>1鬿J6Ҹ@Ҹ@Ҹ@Ҹ@R}@@e*@@x@AEAmAAܱA@2@r@\@@/ٴ@v$@T@VT?2k ?P[CUiZq3ŷ2ŷ2ŷ2ŷ1@1@1@1@h:@K@]@9wn@@@,C@Z@ǘ@rǍ@ǂ@@o@Y@C@H-@@?&>H>L?,8?E+?>]>qh8E01jQަrN=^`V|;7667`N`N`N`NNPRQ RS"4U/V:W:[,bipw~sڂU%|I]m@"ٞ 2222H}{wqkfH`{Zˤ7?ٲt~쨷YCݺ\ܿ#\L[ĦĦĦĦG}{wqkfH`{Zˤ7?ٲt~쨷XCݺ\ܿ#\LZĦĦĦĦH}zwqkfG`{Zˤ7?ٲt~쨷YCݺ\ܿ#[LZĦĦĦĦG}{wqkfG`zZˤ7?ٲt~쨷XCݺ\ܿ#[LZĦĦĦĦvKvKvKvK\82]t8h {K& %WP<|6Mi3i3i3i3vKvKvKvK\82]t8h {K& %WP<|6Mi3i3i3i3vKvKvKvK\82]t8h {K& %WP<|6Mi3i3i3i3vKvKvKvK\82]t8h {K& %WP<|6Mi3i3i3i3-e -e -e -e Mw9 .Xv͊()߸[_bԱiInoQDnr pv"61111O!4NBlʂ]!4@AmBLC+E .FJGgH3ʕ_hF-\^D_Y[[[[_?_?_?_??̾?迡??LO?2?2>>jY Bx<< `vf/:6Kd*ɹ,IC B B C zu@zu@zu@zu@oCr@1k@fe@^@}X@@R@K@?E@`9@e)@8@@ @?f?Ѝ??Liy\V7!pN2ȩgggf@@@@ M@"@@˽@렾@u@J@@2@z@p@f@X\@@~@ԏf@e{N@?*F~N#z`Ӽz@@@@`x@,A>A AL~A AZ_ AA A!Ad@ʆ@@@^@:@"E@St.`PYH7LooooAAAAAlH$A(A5-A"1A"6AF:A?A^? p$66QPE-Cpв\ A A A AAMt@\@5E@-@@@@m@@EX@f)@jW??>@1r #kC \GAG;41111@@@@>@Fw@MD@V@^ޤ@f@nx@\@3@`}@P׫?g?&Wnȿq|ğP:bs4bto@o@o@o@@>z@+@v݋@&i@^:@ @?c4ᗉcO#:I^tK&"tI9k=4\z > > > >u<4FX`f{=ޕc*؄<|lk%ZjM* +W^u%J}ttttq6¹=fC \J.dAjb :'0:9QPVu._/2u469[[[[Z v*F$,F+D3Z:rBJeR8Z b6u܉_>|"cDADADADA$CEHb8K"MP_S`VBZFaKvhPDoUvZ|/ׁ2>n\ܤӰK˼9kkkkwOB‚ r5n<,7ɐ|v?CHWQkDVDVEVDV\G2Ҡ-D6&cš'LƮYxd!O<(M8888A2&"tVA˴viHC($J2pLf3yg?̢4ih/FiN(e5 ,pl9W~Ab|b|b|b|4yg?΢4ig/FhN(e6 ,ol9W}Ab|b|c|b|3yg?΢4ih/EhN(e6 ,ol:W}Ab|b|c|b|3yg?͢5ih/FhN(e6 ,ol:W}Ab|b|a|b|BW@BW@BW@BW@(ɸ@Ys@B?nTOÂ$~|KXd$@PyS?٥V @q!E)18E=BXjJ[}+:nƣiiiiR@R@R@R@@DǠ@SU@2? mH޿2[4M" N2݆FZ nϕݚݚݚݚAAAA@غ@@95@n?X3ֿ-K0}?MřZh v1UyAJ[ >""8HNcy؇QQQQ^ A^ A^ A^ AG @X@k˪@~@"-@?=<6d'29)Ly^p)H-D3\7sԊӊԊԊAAAA̍ A@.@z@ǜ@$<@xu?P1?@n&WrdrdrdrdAAAAAA@v@@@ d@(@|C@??9?"u??AwԿl`YVYVZVYVAAAAiA? AA}@ #@Y@'@@c`@,]@Y@V@S@VP@M@I@z@I@2?Joc8'9AAAAHAX@@1@g@u@<@@Lά@@h@>6@@М@0@k@y@z@dh?6pZe֕s~rrrr^@^@^@^@M@+2@@@9@@}@[A@4<@ ڐ@w@@@Ӣ~@u@.m@́>@*?2G>6{0tgs:UUUU.@.@.@.@ #@ @@ܤ@Ŝ@@(@~@;T{@0p@ e@nY@+N@C@8@]]-@G@i?,wl< vis88882@2@2@2@k@@!^@M׆@zP@Ks@f@wY@0L@׭>@+1@h#@0'@@E?A??|&>1L`῔}.x l 6_t@6_t@6_t@6_t@ io@|e@[[@Q@G@S=@3@)@ @* @??n?L?w?ގ7?>AM>#KPB _$<{bnLPZo `-@ `-@ `-@ `-@)@}/#@td@k@a@X@O8@?g?+O?Β?k\??9>;ȎR9S~0"(I~p龋+ ? ? ? ???=?ꯥ??DŇ?q?O_>c cB⾁)bAğ῔7N1 R7s?FIqJqIqIq;M?;M?;M?;M?>& mi\Ծ58F7TaJto}X'A7f6iVHvJp̽̽̽̽FUjs>d1( ¿J!𿵐ҿoĿT޵M29;FZyV݋D:;;;;70W) `3Hm]h_ M;<)"s*dVs¿`<ο "zb@#^V{aӌt$t$t$s$JJJJ󿛒 n9Y SBl ~q_~naDV(t !ݿݿߥ n(7Eb~mɍ--`,`,`,`3333=B`2~@?P> =;8~hr:Kٷ#7l<.@ Je0׀y団曣団団@m@m@m@m~~< {~N n;^ |`2 4NƺitI!ףףףף{{{{B;9*v8ķ 0#_30צ{=TDT9SmjWWWW22228\w> JR0; FPH?7_`NF [#><"V6ot&T؝3141313122228]w> JR0; FPH?7_`NE [#><"V5ot&T؝4131413122228\w? JR0: HPH?7_`NF [#=<"V5ot&T؝3131313122228\w> JQ0: FPH?7_`NF [#><"V5ot&T؝31313131z_Az_Az_Az_AщAAAAeAJA/AA;A1AA(ĂApAjA۱AzAZA:CAA΋AAqtA0AcAZAZAZAZAz_Az_Az_Az_AщAAAAeAJA/AA;A1AA(ĂApAjA۱AzAZA:CAA΋AAqtA0AcAZAZAZAZAz_Az_Az_Az_AщAAAAeAJA/AA;A1AA(ĂApAjA۱AzAZA:CAA΋AAqtA0AcAZAZAZAZAz_Az_Az_Az_AщAAAAeAJA/AA;A1AA(ĂApAjA۱AzAZA:CAA΋AAqtA0AcAZAZAZAZA7AGAPbAYAYA:AgAA<ߒAAAoA_eA_eA^eA_eAAAAAA,A A}A%!A*At4A>AWAA~AQA$A(ARA|AÝACAδABAA@A0A?IA|A|A|A|A*A*A*A*AAQAA{AHAaA%AAgA5 AѰAlUAAA@CAAA1AAйAE AoApAAζAζAζAζAhAhAhAhA0AuAUPA4ApAA֏AۏB;B_B[BAARA3ASA$&AάAx3A"A@AtDZANAԚAAAAA"A"A"A"AKAAxBIBBF BBBHBBB] B* BBBB._BTjA(AAAQaAAܲAAlyAlyAmyAlyAmBmBmBmBR3B^ BkIBwB_BBuB BlK BUBd`BjB[uBBTBϔ BBBQB,AAՁAvA}kAR`AګAګAګAګAJBJBJBJB@Bp-B BB@"B&Bt*B.BK.B,+B c'B#BB:BBoBZyBOBDBpvAZACA,A&A A>A>A>Avj!Bvj!Bvj!Bvj!B#B]&Bê)B,BD0B3Bp6B[+:By9B4B^0Bg+B4'B"BT BvBB BwCBAxAAjAA A A A AM BM BM BM B!!B $B&B)Bđ+B.B0B~3Ba"2BA-BX)B$Bލ B(BB|^B9 BBl~B rAAAu\AAFAuAuAvAvA0B0B0B0BW B=!B"u#B*%B&Bԓ(BH*B+BK*B&B)R"BBBvB{BTF BGBBrA:AUA+A8AAAAAABBBBBoqBRZ B5C!B,"B#B#B$B3X#B2RB0LB0FB.@B-:B-4 B,.BBzAAiVA%A1AAZ A8ĵA8ĵA8ĵA8ĵAQBQBQBQBB"B?Bb\BCyB#BBBBB9FBoBW BBtBBAA^AA2AAApAAAAABBBBBB$BuBmBJB(hBBB#BA@ B` BBKByIAAAAAA|aB]JUea)mJx^.Ǎ.--->>>>ᾡs%ZO .1,$).@3 9>T)C7HFQ,V^ek@uxe‚*JяYWWWW> 3ц ,i%+4W1V7z.W5=D8KeSZeatlx)OQޥ4444R y 74][! 'n/7x@FjHPYealϴzf7sn֤ + + + +W W W W S4(~Iv!Xf'09LCKLUA^gwes2Um&țZkӬӬӬӬ''''(*S,/035A 7!'x1L;"F,PKZjdun.zCِoЛ1||||PPPP@# y -!!&8"'F3> INT_jVu3|׆1ڌ癿Bb%%%%Ư&Ư&Ư&Ư&i&o%R%P$;$2#$#"9H(24@LWc]o8{Z @_|1羮αααα////i@.,+bk) '2&Z$"(b5B2BO[^houE3*FמX⠪kwwwwͭ2ͭ2ͭ2ͭ21/bi-N+2)H'$"F|(5!CtP]Tk$mx߂oш vD}}𢿄*do1o1o1o10}.w,:o*f(]&WU$L"{(v5B_P7]eGkx?⢌*q[BFIMjQLӞLӞLӞMӞL/L/L/L/[.w,̔*(}&T$,#%!'4|B3P]ktXy釿҉oSv8_H<<<ХХѥѥ - - - --,mo*(&`6%x#!TR&4BSP^kSy|Oǵh6υ[5+++++)k)6'D&Rj$`"n!|i%3AO ^(lCzf/L2˂bcN'}dXzxxxx5*5*5*5*)f(&y6%D#"m '%'d3AOa^Ul3zNg2篁Z~eUy0PtJoEj.g.g.g.g;*;*;*;*s)'U&$=8#f! $73A"O:^RllkzAy~onʼzt|n\hzlZw>>o>(Q>%>Ѐ>zU>%*>>z>T?h>??]_>>>O>>>D@>W>W>W>W>PPPP@͟9 Jx=R=ʗ9>lZw>>o>(Q>%>Ѐ>zU>%*>>z>T?h>??]_>>>O>>>D@>W>W>W>W>PPPP@͟9 Jx=R=ʗ9>lZw>>o>(Q>%>Ѐ>zU>%*>>z>T?h>??]_>>>O>>>D@>W>W>W>W>PPPP@͟9 Jx=R=ʗ9>lZw>>o>(Q>%>Ѐ>zU>%*>>z>T?h>??]_>>>O>>>D@>W>W>W>W> 0O;<6=C >kH>>^>>>>>%>F>5?Ɯ?W#??9)?I?2>">>>6>W>g[>g[>h[>h[>Px:Px:Px:Px:. =~=w%>g>> >&>B`>G???Ƅ?C??? ?rl ?}???????Ġ?Ġ?Ġ?Ġ?<<<<$e=d=B>wB>w>>\> ?h??i?y?hq?h?i`?W??g????G??ҷ?????P(2=P(2=P(2=P(2=z&=%>7^>>A.>j>@>d?#???? o????.??J???R??"?Z$?%?%?%?%?K=K=K=K==0>Tz>>h>>dP?<?*#?N!??-d?? 5?|?? 6?.?&!?%? )?-?1?4?6?6?6?6?p=p=p=p=N= J>$8>Zj>>>~?%?v-?+?h(?PY&?7#?!?<??Zy?O$?C)?8A/?-4?"q:? @? E?mH?mH?mH?mH?====q>c>>F>>S>;??s/?W7?4?u1?rN.?'+?0(?$?!?#?*?s,2?bd9?R@?@G?0 O? DV?Y?Y?Y?Y?[`>[`>[`>[`>;+>'|>XT>/> >?`%?V9?B?>?1:?C6?kU2?Ag.?y*?&?(?1?:?C?v_L?^7U?I^?3f?(Sk?(Sk?(Sk?(Sk?>>>>\B>ƈ>_>_>>?#`'?K,;?&C?>?I:?ڼ6?i2?.?s*?[&? ;)?S3?6>6>6>wY>>mf>F$>>?!?Ս3?:?!7?_3?@/?,?]o(?$?z$!?Hn$?W.?f8?tC?RM?W?a?k?4q?5q?5q?4q?jQ>jQ>jQ>jQ>Mq>c>m>,Q>4> ??`+?O2?/?+?(?2%?R"?K ???[;*?.4?o??J?T?z<_?Ni?8#o?8#o?8#o?7#o?l>l>l>l>Bc>3l>#u>~>>G?rL?P$?m)?3'?t$? !??!6?v?6??_%?0?;?'F?Q?W\?g?:,m?:,m?:,m?:,m?G>G>G>G>>N>~|>>v>?7?u?ٗ!?bK??r?e?? ???cc!?,?8?yuC?N?2,Z?e?=5k?=5k?=5k?=5k?ű>ű>ű>ű>ۛ>/>؃>>+>? ??E<?b?R?د?^??k#?I ?F;?g?(?o4?+@?K?W?0`c?A>i?@>i?A>i?@>i?B[>B[>B[>B[> >>4>>[~>>8?u ??6z??> ?F ?F ?y?O?n ?j?Q$?70?>>>PT>p>>1>>o> >???"??&??*??á?n? ?-?p9?F?ƓR?q_?GPe?FPe?FPe?FPe?t>t>t>t>/>ӿ>>F>>|>r>4?~???g??O? >p>6Y>?0a?Ҳ?s&?V1?^>^>^>>A>z>oC> >>6>e>><>">>]!>>d>4>?P ?{?E?$?س,?L5?l=?1B?1B?1B?1B?IM>IM>IM>IM>&>ߐ>h>O@> >>z>2>g8>>>uH>%>>X>4>~>1@?$ ????"?(?o+?o+?o+?o+?4>4>4>4>>{o>UV>0=> $> >>>>>i>+>$>8>pL>1`>->/?V?}? ? ?6?Q?ޭ?߭?߭?߭?ݎ>ݎ>ݎ>ݎ>X>N>D>:> 0>&>>>gs>:@> >>>s>\@>0 >a>c>>>o>>z>>i>>>>>>>>>'>,>1>6> <>*A>FF>dK>>̖>>>|(>b>H4>.>>c>:>>]>>3>l>S>S>S>S>|>|>|>|>>Q >>3> H>L\>p>ʄ>e>\>U,>Lk>D><>5(>-g>=>d>>>>>)گ>Pӥ>Ϡ>Ϡ>Ϡ>Ϡ>il>il>il>il>w>>M >0>T>nw>Ϛ>/>K>C>;>4> ,>$>!>+>S>d>b>T>q>D>>hv>f>f>f>f>1d>1d>1d>1d>\o><ق>->/>Z>>>>>8>C>^>>A>>>C>>>%h>6>g> o>MEK>9>9>9>9>1d>1d>1d>1d>\o><ق>,>/>Z>>>>>7>C>^>>A>>>E>>>%h>6>f> o>NEK>9>9>9>9>1d>1d>1d>1d>\o><ق>->/>Z>>>>>7>C>]>>A>>>D>>>%h>6>f> o>LEK>9>9>9>9>1d>1d>1d>1d>\o><ق>,>/>Z>>>>>7>C>^>>A>>>D>>>$h>6>e> o>LEK>9>9>9>9>0 >0 >0 >0 > >>m> >S$>)>6.>3>>=#p=x0<j3188OHLXIhFxCh@N=4:88880 >0 >0 >0 > >>m> >S$>)>6.>3>>=#p=x0<j3188OHLXIhFxCh@N=4:88880 >0 >0 >0 > >>m> >S$>)>6.>3>>=#p=x0<j3188OHLXIhFxCh@N=4:88880 >0 >0 >0 > >>m> >S$>)>6.>3>>=#p=x0<j3188OHLXIhFxCh@N=4:8888Iw>Iw>Iw>Iw>]>*>!>'>->^3>+9>>>έ+>=ѥ== HAh  R}N_ A++++z >z >z >z ><$>+>C2> 9>J @> G>Q N> U>F>#>>q=Tii=<(G?Vo<σrS4dgegfgeg->->->->1>9>$B>VJ>R>Z> b>k>Ab>UH>Vi.>}>d!=H=p=.3=#<޿:>޿:>޿:>+r?>H>_;R>[>e>.in>w>1>}>l>)\>OxK>:>*>d>N>=9=`==-C===ʘZ=2F=0F=/F=0F=G>G>G>G>#M>ȺW>Qb>l>9w> >BW>բ>k>>>9>lz>>s>l>d>Z>L>2?>Œ1>R$>>s>=h=h=h=h=AT>AT>AT>AT>Z>˞f>|hr>-2~>>>ǐ>y>>>՛>s>䙝>V|>^>:A>d>$ɓ>->>s>b>~Q>G@>J7>I7>J7>J7>sb>sb>sb>sb>h>΂u>?>>;>๔>7>>)>#5>>5>> 5>>5>Һ>vF>Ҷ>]>d> u>>R>Iz>Jz>Jz>Jz> o> o> o> o> 8v>h3>J>0b>y>>\>>4Z>w>:>>B>>H >(>>>v>p)>B>>A>>$Ξ>$Ξ>$Ξ>$Ξ>_i>_i>_i>_i>q>,>Շ>V~>'>Ϟ>`x>!>[S>G>4>!>C>>s]?i??R?>>vG>d}>P>?>6>5>6>6>;P>;P>;P>;P>7X>2\i>+y>>D> v> >ڥ>>> W>A>v >h>a??k?v?> >+>?>T>i>Yt>Zt>Yt>Yt>,8>,8>,8>,8>@>r^R>c>Ku>a>g>ה>>>b>>`>>^>>c?M?K?&>>>>>>|d>}d>}d>}d>>>>>|(>`;>M>s`>Or>‚>\>K>';>ԯ>n>>H><>>з?? y>L>>>>>k>T>T>T>T>4>4>4>4>>b$>7>K>f6_>8r>7>>k>}>>3>l>ĥ>> ??>q>#>>>9>>D>D>D>D>====m=/e >">6>~pK>`>\t>潄>Ց> >e>^>7>u>>`?q:?>>(>)>:J>L>^l>4>4>4>4>====L==|( >!>7>kM>,c>x>">>;>>>(y>>oh>'?gL>>,>> >|>> %> %> %> %>t=t=t=t=,=\Ӿ=z= >#>X:>Q>_h>7p>$>>>>>>>C>ے>>1>=>]>~>m>.>.>.>.>j=j=j=j=p=z=B>>L.>B>@WW>ik>T}>X>4>O>>>J>~>>B>G>_>v>}> >?>a>a>a>a>n">n">n">n">3>b*>E89> H>XV>e>lt>>HJ> >լ>Л>a>'>X>/>?[>]>ݸ>^>>^D>r> > > > >'OV>'OV>'OV>'OV>Z>d>-m>Sv>y>O>>u>>>Eǥ>Kw>Q'>X>^>e7>l>R? u>uC>>G>>}>K>>>>>=>=>=>=>>֎>͑>L>><Õ>a~>9>3>h~>>Ӳ>M><>r> ??:>>j>.>G>е>!$>I[>J[>J[>J[>LT>LT>LT>LT>Ŭ>L>>o>LS>6>>K>(>5>>S>>>G>>'?L?j>>>>P>>>>>>>j>j>j>j>kp>{>v>>>>>>~>>A[>>f8>>>B?< ?>n>>> y>A'>c>s>s>s>s>>>>>>N>K>>>l>!Q>ք>K>ӣ>>TU>>>_>-\??>'>u>>>_>> U>U>U>U>K?K?K?K??? }>>4>А>>H>>Z>>>#>f>>Jv??>>>μ>>>>>>>>H?H?H?H?G ?GE?E?j>Z>J>:>*>>>n>&>>>V?Y????v=>[>B>)w>5>>Q>Q>Q>Q>H?H?H?H?H ?FE?E?j>Z>J>:>*>>>n>&>>>U?Y????w=>[>B>(w>5>>Q>Q>Q>Q>H?H?H?H?G ?FE?E?j>Z>J>:>*>>>n>&>>>V?Y????v=>\>B>)w>5>>Q>Q>Q>Q>H?H?H?H?G ?FE?F?j>Z>J>:>*>>>n>&>>>U?Y????u=>\>C>)w>5>>Q>Q>Q>Q>6+>6+>6+>6+>aC>>t>vg>ª>'>~y>>?`??P>n>>>5o>6>z>:>>#>J{>vx>4k>w_>7Y>7Y>7Y>7Y>6+>6+>6+>6+>aC>>t>vg>ª>'>~y>>?`??P>n>>>5o>6>z>:>>#>J{>vx>4k>w_>7Y>7Y>7Y>7Y>6+>6+>6+>6+>aC>>t>vg>ª>'>~y>>?`??P>n>>>5o>6>z>:>>#>J{>vx>4k>w_>7Y>7Y>7Y>7Y>6+>6+>6+>6+>aC>>t>vg>ª>'>~y>>?`??P>n>>>5o>6>z>:>>#>J{>vx>4k>w_>7Y>7Y>7Y>7Y>(#>(#>(#>(#>Y9>|d>[Ї>Db>->>>>(O>>W>x>1>>>N[>F>Ȅ>>u>Pk>a>X>cN>$I>$I>$I>$I> I> I> I> I>H%>,FE>CDe>->9>D>N>Y>+j>>[>9>Ԓ>!o>rt>H[>L>gG> C>PO>>Œ9>:4>0>#]+>(>(>(>(>>>>>7>w&>:>,O>d>py>$>̐>/>>x>c>N>H9>v$>>Y>>o>>:P>t>0>>>>>>====CL=>`>=>#>>->U7>}A>b@=>+>>w >;j==^=Rو=fz=xm=n=g=`=VU=O=H=Df=Df=Cf=Df=j=j=j=j=N*=D=]=w=j=1==޽==0=q=;==< ; *໗ny;^zS<0 <, =S6=za=P=====1=1=1=1=X=֐=Io=<=2 =?<S kݩ@Mr/RNИq,'EǎRǎRǎRǎRCCCC>(8N0tt ƾپӾA3 p2,gja8;Γ< R#=8ǔ;{@lEϽ 5A0oTffffT.T.T.T.=\|t$b˾3ľD:}Q=ԼF =bC=(^kD'=2sc=8m>m>m>b~>ӏ>_>>sy>C>>>>>@>>k>>>+>0>>̨>d> >ܰ>>|T>t2>t2>t2>t2>m>m>m>m>b~>ӏ>_>>sy>C>>>>>@>>k>>>+>0>>̨>d> >ܰ>>|T>t2>t2>t2>t2>m>m>m>m>b~>ӏ>_>>sy>C>>>>>@>>k>>>+>0>>̨>d> >ܰ>>|T>t2>t2>t2>t2>m>m>m>m>b~>ӏ>_>>sy>C>>>>>@>>k>>>+>0>>̨>d> >ܰ>>|T>t2>t2>t2>t2>`k>`k>`k>`k>BW{>N>d>F>)7> >|>>>>>@>fo>R>5>>> >$>T^>m>>>(>(>(>'>g>g>g>g>t>E>>>>>P>>E>>:>>\>E>>->>l>Ӯ>;ij>٫> >t>>$>$>$>$>b>b>b>b>n><>7>2>->$)>J$>r>>S>>E>R>8>>+>f>a>]>;Y>T>P>bL>H>ń>ń>ń>ń>4]>4]>4]>4]>~h>g|>Z>>f>Ц>>D>->>9^>>F>+>Tp>۴>"H>)*>2 >:>BМ>J>R>|>r>r>r>r>ZY>ZY>ZY>ZY>Ur>}>dщ>$>>x>ˢ>>а>G>>>=>>.>2>>1*>>⺫>9>K>>}>2Ig>\>\>\>\>lT>lT>lT>lT>C[>Ch>8Bu> >;>>Z>>̠>ܦ>>k\>27>>>>A >꺲>i>9>ƍ>u>bHj>Q>YTE>YTE>YTE>YTE>.P>.P>.P>.P>T>1^>g>p>K7z>Wǁ> s>>ǐ>pm>X>@>(_>>>P>P>H>@>8>0B>Pq>@V>0<>(.>'.>(.>(.>K>K>K>K>xoN>"T>Y>u~_> .e>j>rp>=v>€>4> >>>&>/i>7ڻ>_и>K>ƛ>8B>z}>q`>hC>^&>>>>>I>I>I>I>J>lL>OCN>4P>Q>S>JU> W>a>It>W%>э>}>)>֪>N>U->3ף>>*>q>HT>Q8>>N >N >N >N >K>K>K>K>I>WG>D>"tB>5@>G=>Z;>l8>A>yV>i(k>1>B>a>>(I>5>%>F>Ug>i>QO>5>T> > > > >('L>('L>('L>('L>HH>.B>Έ;>4>P=.>'> >L>!>8>%N>Q d>~z> >k >>ݝ>t>/ >{Gw>v`>I>2>>}>|>}>|>rKM>rKM>rKM>rKM>G>=>+2>Q'>mx>ޞ>P>=,>R>0>r?H>_>v>)>֒>>YÉ>>Nk>W>C>0>3>A>A>A>A>oN>oN>oN>oN> F>7>J(>> >UL=1==j=T=>s,>%E>|]>pv>>Ќ>>.q>!9`>CO>!N>>X->"c>b>b>b>b>O>O>O>O>lE>;2> q>/ >O=Z=ؤ=R|=R=.=>=> *>fD>^>x>\~>p>b>T>%F>X8>*>>Ԏ>Ԏ>Վ>Ԏ>LP>LP>LP>LP>D>ʈ->>==S=i=`=*=q =fyx=.==:>O+> F>Vb>yj>^_>DT>*I>>>2>r'>U>G5>G5>G5>G5>Q>Q>Q>Q>+D>Y_(> >h=ɪ=:f=ݙ<(;$<;-Z//>|K>(V>mM>E>=>.w5>J->Y%>>>>>>IG>IG>IG>IG>&9>>$>=*Ȕ=B:=_<+-\<=f|=@= = >r!>P,>)>&>3#> >ʹ>>b>Q> Q>Q> Q>h2>h2>h2>h2>&>fy>=n=N=$08=<^ {ӻ: <2<=X=="=Z= A=O=#]=0k=>Q >3>4>3>3>o>o>o>o>SD>=.=*=VՃ=Q6=<;<УV;4<|m<޹<<T=O=:=j=x~==z==|=>^>^>^>^><><><><>==ޡ=~=طv=q4=W<?<(:H@n@`OĐ7ZS;)>>>====F=ܭ=={=e=ɒ2=<\<;⻾F:@nőB?~Pȼ`b:<_=¥=2=h=h=g=h=ƭ=ƭ=ƭ=ƭ=%=■==x=1T=0=$ =<<$< E &f3Lͽf k׽YC\DX<с==K=K=K=K=H=H=H=H=P==m=.X=^C=.===fdh=8=2=n,=S&=9!=jl{Q>l{Q>l{Q>g>A>>>>dJ>>>m)???(?n"?(?.?C4?:?H9?yv0?V'?3??- ?[?L>)A>)A>)A>)A>l{Q>l{Q>l{Q>l{Q>g>A>>>>dJ>>>m)???(?n"?(?.?C4?:?H9?yv0?V'?3??- ?[?L>)A>)A>)A>)A>l{Q>l{Q>l{Q>l{Q>g>A>>>>dJ>>>m)???(?n"?(?.?C4?:?H9?yv0?V'?3??- ?[?L>)A>)A>)A>)A>l{Q>l{Q>l{Q>l{Q>g>A>>>>dJ>>>m)???(?n"?(?.?C4?:?H9?yv0?V'?3??- ?[?L>)A>)A>)A>)A>:T>:T>:T>:T>$i>>>ն>>>>P??(?j?C!?'? ,?2?8?"7?W>W>W>W>Y>Y>Y>Y>FGn>L>t>>^>>:>T?ޯ ?<??sV?O#?+p)?.?4?x2?)? ?Z???}Z>w>a>a>b>a>u6^>u6^>u6^>u6^>ir>(>>d>>>}>? ?K?(?i? ?J%?-+?n0?.?J%?~?w? q ?Mj?>>ܲ>ܲ>ܲ>ܲ>Nc>Nc>Nc>Nc>v>>>>0+>>"R>><?9 ?ݑ??"}?r?ih"? ^'?S,?@*?$!? ?;?p?Lk>3>">W>W>W>W>eh>eh>eh>eh>.{>U`>S)>Q>O>M>KM>%?h?m< ?t?z?:??#?8(?,%?X??b ?1?>S>>> > > > >M}m>M}m>M}m>M}m>{>k>>r>>x>>~>? ?iE?ӣ?<?`??z$?!?c???u$>> >.>M;>M;>M;>M;>r>r>r>r>z>>L>>>>>P>~??^ ?+????` ?P^?d?x ?M??>e/>y>÷>h>h>h>h>w>w>w>w> >t>&ޤ>G>A>>\>>t?!<?R ? ??X? ?F???2?>>>*>:>C>C>B>B>Yp>Yp>Yp>Yp>ƶ>ʑ>ޢ>>>>/>C>=?2?J ?cD ?{??K???m?&?]>nT>'>>ͫ>*7>*7>*7>)7>қ\>қ\>қ\>қ\>To>,>N>.>>2>>4P>>?› ?F` ?$?O?ԭ?Xr?6 ?1?}c? ?J>q>S>>>}K>|K>}K>}K>$H>$H>$H>$H>1^>k>~>u>nd>f>^ >.?aq ?QM ?B)?2?$?? ?t$?_!?\Y?R ?L?u>>r>0f>_>_>_>_>v 5>v 5>v 5>v 5>L>w{>O.>>+>>>;5? ??>???T ?$?(?%?ͫ>"/>x>#t>$t>#t>$t>b!>b!>b!>b!>:>vn> >0>>S>>;??q?:?? ?$?](?&,?d)?E??X ?|>>T>>v>w>v>w> > > > >vV)>,`> >L>p>">\>\B ???b?6?k ?$?(? -?=/1?8-?:#??} ??0?>>K>ʜ>ʜ>ʜ>ʜ>====>>YS>}>N>d>5>>H???2M ?ӆ$?s(?,?31?Vm5? 2?0'?J?sd?A~?0>c>P>>>>>S=S=S=S=>E>>ݢ>">i>XW?|O?t?!?.$?;g(?H,?T 1?aZ5?m9?D6?&+? ?j?B ?6\>>>p>p>p>p>Q=Q=Q=Q=.J=->o>6ǘ>pù>>>\?A?b?< ?$?e'?+?/?B3?<0?%?x?1?l?K>>4 >n>n>m>n> = = = =ڲ=B >,L> >L>>>n?t??"?y?k?&A?| ?"??L?ۛ??|s>^>B>%M>>>>>8;8;8;8;7==(>1j>+;>=(>P>b>? u?pE ? ?8 ???dW?k???|>|>q{>z>z>y>y>y>y>p :0=X>#G>w>\>B>'>e>>}>_*>B>,???>~b>?>$>Ä>>EF>>gW>gW>gW>gW>΄΄΄΄:&#=>=#>ee>Ґ>n>L>>>>)>>C>>]>>F> >5>f>O>>ӫ>5>5>5>5>W˽W˽W˽W˽o!Jz=0>A>Ł>t>q>>!>>'>>->>04>>*+>N>jr> >>Hݦ>>>>>>Aн\ _>,Ȑ>>캿>4>R>&>>>>R >s>>>>>#>ʨ>->_>`>`>`>3,3,3,3,l PPtd==b[<>}>>S׬>F>ﵟ>=%>>>&s>}>z>>Uڂ>>P>΍>Kt>Z>Β>Β>Β>Β>====_ &м:==*>|l>Ζ>e>ϛ>=:>>>z>Sk> \>Y>b>ok>(u>DW~>ƒ> Z>A><><><><>====_&м;==*>|l>Ζ>e>ϛ>=:>>>z>Tk> \>Y>b>ok>(u>CW~>ƒ> Z>A><><><><>====_&м:==*>zl>Ζ>e>ϛ>=:>>>z>Tk> \>Y>b>ok>(u>CW~>ƒ> Z>B><><><><>====^&м:==*>|l>Ζ>e>ϛ>=:>>>z>Tk> \>Y>b>nk>(u>DW~>ƒ> Z>B><><><><>T$lT$lT$lT$lN\ͼy ==>V>w>|><>>>v>4>x>^>x>>4>lLJ>>>>1#>1#>1#>1#>T$lT$lT$lT$lN\ͼy ==>V>w>|><>>>v>4>x>^>x>>4>lLJ>>>>1#>1#>1#>1#>T$lT$lT$lT$lN\ͼy ==>V>w>|><>>>v>4>x>^>x>>4>lLJ>>>>1#>1#>1#>1#>T$lT$lT$lT$lN\ͼy ==>V>w>|><>>>v>4>x>^>x>>4>lLJ>>>>1#>1#>1#>1#>````$A Ꮍ"dL==a->wj>$>/>L>k[>>Փ>Œ>O>>^͔>>>5 >>o4>z>v>v>v>v>cIcIcIcI)ZaԽ'n*̧<|=#>S>>>>&a>>.إ>>6O> >.m>v>>a>ǒ>.>(Kw>]g>[g_>Zg_>Zg_>[g_>2222Va\T|P==x7>y>ٝ>.>j>$>ݷ>ԗ>Q> >>!>>>*>Z>>q-l>)T>'H>(H>(H>(H>uuuu]򽽗Tp<=y>[>'> >>v>.>>*>zW>>>e>>>>>졐>唀>a>@>0>0>0>0>hhhhK½|ռ/==X8>t>>?>M<>>>j`>>>>;;>v>8r>Y>A>~)>"~>U>->J>J>J>K>pڽpڽpڽpڽᑽٸUt=>dZ>>>yr>]>u>l>!>>݋>@>{?>>p>>ԭ>>8{>NJ>d>i>i>i>i>ڛڛڛڛB|Q<0=0>h{>>>Q>6d???tq?4?$?~ ?t ?y?>>Og>8>x>?>@Y>*U=*U=*U=*U=}}}}:/ļ|O>>b>o>l?= ?/ ?"y??+???5? ?m>3>>6> u>4>9J=t֧=u֧=t֧=u֧=9999/wiLJ=>Z\>J>*h>>Q?n ?1e???y}?:0???O??>p>Q>}dr>%.>=8=9=8=8=hhhhp?@=>3V> Վ>H>K>>%? ?( ?X[??)????>B>j˻>>tp>],>'@=w=v=v=w=m ˼m ˼m ˼m ˼Z;S=\[ >- P>_>g>P>9j>%??^? ? ?5#?>?oZ??b>s> &>>km>*>=t=t=t=t=tmtmtmtm<= >I>>>>>>>?|?L ? ??Ǽ?MM?<>>>">bk>k(>"=f=f=f=f=E7<ޢ=ݗ >WC>|>>✷> 1>>>>A ??0 ??? ?a>>F۶>>Y@i>>'>J=/Y=0Y=/Y=0Y=;;;;==6 >=>q>0>b>>l>4X>>;>??H ?v? ?">>5>X>Pf>=%>=mK=nK=nK=nK=&4<&4<&4<&4s7>g>X>v(>>!>ŧ>h> ]>7>* ?| ??K ?>5->>>Gd>t#> w=========<<<M1>'\>>>>{[>س>V>:>R~>>?f?&F? ?>eG>#>᎑>>eb>!>m=/=/=/=/=ރw<ރw<ރw<ރwگ;>a>,>?>>,>Q>>J>> >5??s4>d>蔦>#Ň>Q>3K>SW=o_=o_=o_=o_=L,麄4=4ك=(=>'>jI>Ik>q>G>Ƣ>p>>h>o>>s>E|> >Ӎ>4-k>>3>=Æ=====SSSS:] <.H=|N=A= >Y(>dE>4d>;>\>}>%>U>>>Į>m>~ y>#F>Ȓ>۪=I`@=)˷<(˷<)˷<(˷0 >-a?>`^>}>x>>>R> >{>TN>s">==9r<;;;;3޽״X{>D f O:<>=\>@|>p>X>r>WK>+$>,=u=~A=G<bbbb1>\ŽWˤ:SG2&d=>`p^>@a^>+7=> >=q=f;b=(&?#>>==roU=<˺xd.+d.+d.+e.+ ` ` ` `a\TgMEHn>r6t/'V߽l홽<(8e5eݽFҌB5dݽFҌA5cݽFҌBy^=׻=<ߗ9.gꆽꆽꆽꆽ2=q2=q2=q2=q9nGNiTda^npY|&TNIo>5dݽFҌB)>D4>0>C-><)>fA&>">?>>z>y>z>y>,>4H>c>:n>Yi>xd>_>Z>ԺU>P>K>!6I>!6I>!6I>!6I>ȾȾȾȾٹ:j$}C~6Xо!==/= >F*>G>nd>E>& >ܡ>e`>>y݊>>Z>>@{>mx>mx>mx>mx>_Bо_Bо_Bо_BоVEk41DE"z )O===%>3>`O>Xj>OM>>>>e>&>>>i>{*> > > > >1վ1վ1վ1վ@ƾDUA <ݓ=0K==>(>s@>'7X>o>O|>8\}>h~>u>A>pǀ>M>ԁ>E>E>E>E>ھھھھ˾VS5d_(Hٽ4B2<&K=⅍=.&=|=d3>>)>أ=>J>oQ>oX>ם^>>5e>k> dr>ux>)G|>'G|>)G|>'G|>XuѾ`2fXs8 ._>Ձ%>1> =>EI>i V>,b>Nn>_t>_t>_t>_t>]徦]徦]徦]׾txٝ1>EIJy(S;i>L.>.H@>Q>c>dxl>cxl>dxl>cxl>xxxx꾯ܾäψøY!ӽ8 H sPG };g*>A>2X>d>d>d>d>JJJJYEyƾa+j3YȌ]#G⼸/wp{C8j;=xy=}==>1>pHN>\>\>\>\>2222;;|󗾜z@VE \~k}.|7zֳyuvx9w.2 /#N<i=h==N!>C>=T>6666l˾FﱾA|H1 ý5/6r)몽%(׋,;,)=^=z=>@>R>R>R>R>羖羖羖羍t۾~¾n^Ԑo~(>^h ~P;Ȍg!:_N3J;<,==~=7>/C>V>V>V>V>CݾCݾCݾCݾNѾ#dy Hcs3Ȟ]}wԃ㋽򓽕w.V0h;J/==Xb=x >oG>kZ>jZ>jZ>kZ>XҾXҾXҾXҾ(Ǿ3>IXVD(a<֙au؄Ў ɘZK>+^>*^>+^>*^>ȾȾȾȾnv J 4LfcB{~q[S4ՖAk ;j6== J=t&>N>b>b>b>b>bbbbݲӝɈ~gj= Vҽ|Z6Q:mHW"H򷻽¨;y99=P=^>oR>f>f>f>f>yyyy98oXo0n=a d@2o_~gNӞ5;qTj;^<==ޘ>}Y,>V>jj>jj>jj>jj> []rphJ*$]nE .)YQpt拽"!DCp;?==>K/>Y>*o>*o>*o>*o>ТТТТl~0چkhr#C%L8*%$NJqoJVܜnsȒf ; A=K5=>0>[>q>q>q>q>ТТТТl~0چkhq#C%L8*%%NJqoJWܜnsȒb ; A=J5=>0>[>q>q>q>q>ТТТТl~0چkhq#C%L8*%%NJqoJVܜnsȒh ; A=J5=>0>[>q>q>q>q>ТТТТm~0چkhr#C%L8*%%NJqoJWܜnsƒ` ; A=J5=>0>[>q>q>q>q>lȰ>lȰ>lȰ>lȰ>3>2 >>tni>{G>$>u>&E=)Ϝ= =C===p=*==?T=x=D;=u= k=pb=`X=7N=I=I=I=I=lȰ>lȰ>lȰ>lȰ>3>2 >>tni>{G>$>u>&E=)Ϝ= =C===p=*==?T=x=D;=u= k=pb=`X=7N=I=I=I=I=lȰ>lȰ>lȰ>lȰ>3>2 >>tni>{G>$>u>&E=)Ϝ= =C===p=*==?T=x=D;=u= k=pb=`X=7N=I=I=I=I=lȰ>lȰ>lȰ>lȰ>3>2 >>tni>{G>$>u>&E=)Ϝ= =C===p=*==?T=x=D;=u= k=pb=`X=7N=I=I=I=I=r>r>r>r>tʞ>y>dQx>U> 3>l>=8Q=d=7`=i4[=VV=xQ=L=,G=^B=sb>=nF:=i*6=d2=^-=Y)=T%=N!=L=L=L=L=ǔ>ǔ>ǔ>ǔ>>t>UqQ>2.> >f===Mn,<(9<4<];S;;A|;">>>Kr>,nN>E*>^>=>{=H< Rۼ^%r74\ ^g2ܼ]\~frppf^>f^>f^>f^>)L>+(>6>xm=j=@< cJ[D9>D9>D9>?'>2>J=d^=d$7>$7>$7>T\>lM=XW=ہs, @5555fp *SVזvʽ.s 0CcV?iJtnf]qU(L3D;NM3////lͼ|P@n W*_QFͽ<-!E\eY`[smVFQLFA;?;?;?;?YYYY:}Xɼ4 jɕ:k1%Sc1nM3, PLS]w[YvWU< T-RRP4dO3dO4dO4dO:$]:$]:$]:$]kB Z Q(;Bc@܃pǽL'<IjUFb啓ɖ"0`d˦neneoeneUȽUȽUȽUȽ8½UJҪ[UT}fͽD&Ffvx&H|䰦D婾Nb0н0н0н0нܹϽ75ͽʽ+ȽHŽ"ýXC۽^ *AHf*^|gFũf/dƙι&9jٽjٽjٽjٽܽ` 6bEHnF=0*Moi pĜ'v⼾hHNþ(ƾ ɾ̾ڊξڊξڊξڊξH⽦H⽦H⽦H&& %B")k:UPpؒ0Έ຾E(þ^ƾɾ)̾оl9Ӿ p־پA۾A۾A۾A۾ěěěěw^ Yw :(w2*+Ac 'osfHyEJ]@$bU'4?XKW$dozV5555[C/S=&'KJXng3Q::ApSɤ!-zҁ VlU·=0np.,m)0'k$["j*)*)zzzzŽV-kSNx?ʴfsLf&ًf"soggb_]WXOSGN?I7DAAAAl秽l秽l秽l秽ν}U5\ȁ#LvϨR¾wҮ-pX㚾A>Q/\lnwQ#p}hdddd____nCؽƤ'=eXþg˾Ǿþ~Z%7Kq﮾L5+ !蚾ƕ a3у3у3у3уRRRRɘUDn#eddWd˾վKpӾѾ+оvξ̾>C˾ɾ,ž&DFիe\LLLLDrDrDrDr% nLwL=q./Ҿg;޾ ߾߾Lᾏ0sQ侚ྉ"پxcѾhɾWF&6g&ȦȦȦȦ7Kǽ7Kǽ7Kǽ7KǽC 'VTPv}þuھc꾦#dCC",3_꾋ᾷ׾ξž<˼RDRDRDRDlϽlϽlϽlϽ6Xf)UH¾ؾZ@)߯şxne#[۾CQԾ`G;}=ƾ¾¾¾¾d׽d׽d׽d׽"k(PyԴFߤ '4;׾w־1.־վKվ_ԾiԾӾҾU2ѾϾ;̾beʾ&ȾƾK%ƾK%ƾK%ƾK%ƾAAAA*>'KpB~{!ɾNž8|ƩS׹m2_tH뱾F2ּyľVǾ ɾ ɾ ɾ ɾSSSS1A&P:G`bh7ń?YGO1Bʬc`/ȈWeuȾ̾̾̾̾9T$wB, `Қ}<_'AJ|³p&[`FrJ޽fYQġz/CɾkоkоkоkоCCCC@ }#=W5q9ӅВwΟIRM\RfjN3a80(O\v嵢@]ʾJӾIӾJӾIӾH( "8VOel |B ub h]f: ^@^GӽMʘȱʾE׾E׾ E׾ E׾++++O`!%/4FYglhsru]4 F½^!dt<>PK0$ModelTester.test_fcos_resnet50_fpn_expect/data/0FB ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZWUXVVUVV@YS@YTQU=RVWYXZ@XT@X&U@XY@XZXWXXQVRWVTVUVWWXPnYPYWYWZ@XLU@XUXTX*UXYXZXYXZTvUUUWUWVQzX RXVaUVUYYYZ4YR@YS@YAT@YTXUXVUWVX}XWXXTZTZQYRYSTTTUnXVXV_XWXVVVW@YT@Y,UUkUVU>XYT@XTXWYXYYYYUWUXXTX UXTX1UYYVYVTYTZQWRXVkYVYXU XVS@YS@YQTRUwXVXWOWPXXPVXVXFUXUXDUXU@YOU@YUpJcYLY@XY@XYVYVZTrXUXvYRYS@YYV@YVYTY,UVV WWUUUVV]TVT~YKTYTXTXUoWTWUUmVVVWgTXTXFTXTRuYRYY@UYU|VUVV@YY@YZXVYVW+W}YSYTRYRZWYWZYTY.U@YLW@YWXXUXUWTWUvUmUUUXWYWTXUYOVPWTVUWW^TWTXPVXVP|XPXwXdXXXUmYUYX~SYT@YU@YVWUWUXOTXTSWS5X4XS@XTrTgUTUPK\  PK0BModelTester.test_fcos_resnet50_fpn_expect/data/1FB>ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ/t/r/n/l/e/a/^/Z/V/U/U/G/C/=/9/9/8/8/8/7/7/)/)/&/%/!///// / //////////..........................................................PK6!PK0ModelTester.test_fcos_resnet50_fpn_expect/data/2FBZZZZZZZZZZZZZZZZZZZZZZPK㢏h  PK1AModelTester.test_fcos_resnet50_fpn_expect/versionFB=ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK2F>>2ModelTester.test_fcos_resnet50_fpn_expect/data.pklPK\  0ModelTester.test_fcos_resnet50_fpn_expect/data/0PK6!0pModelTester.test_fcos_resnet50_fpn_expect/data/1PK㢏h  0ModelTester.test_fcos_resnet50_fpn_expect/data/2PKўgU1p ModelTester.test_fcos_resnet50_fpn_expect/versionPK,- PK PK vision-0.19.1/test/expect/ModelTester.test_googlenet_expect.pkl000066400000000000000000000016531466211133600247200ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ0[<<`'R.4S)ѢjRR`]сQLXQGѤRQxQķ(SoXPKPnpPK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPKPnparchive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_keypointrcnn_resnet50_fpn_expect.pkl000066400000000000000000000064471466211133600300560ustar00rootroot00000000000000PK:(ModelTester.test_keypointrcnn_resnet50_fpn_expect/data.pklFB$ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ]q}q(Xboxesqctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK tqQKKKq KKq ccollections OrderedDict q )Rq tq RqXlabelsqh((hctorch LongStorage qX1qhKtqQKKqKqh )RqtqRqXscoresqh((hhX2qhKtqQKKqKqh )RqtqRqX keypointsq }q!(Xmeanq"h((hctorch DoubleStorage q#X3q$hKtq%QK))h )Rq&tq'Rq(Xstdq)h((hh#X4q*hKtq+QK))h )Rq,tq-Rq.uXkeypoints_scoresq/h((hhX5q0hKtq1QKKKq2KKq3h )Rq4tq5Rq6ua.PK} PK8?ModelTester.test_keypointrcnn_resnet50_fpn_expect/data/0FB;ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ1GB`Cd0CBPKC`CZ_Cp>_CeAT_C`5>_C@_C?_CAB%Cx}A^;C0C1L^C؂4? _C: aA_C2@_CDAPKPK8ModelTester.test_keypointrcnn_resnet50_fpn_expect/data/1FBZZZZZZZZZZZZZZZZZZZZZZPKmg@@PK8ModelTester.test_keypointrcnn_resnet50_fpn_expect/data/2FBZZZZZZZZZZZZZZZZZZZZZZ,&4?K>>d>]>>d^[>PKz PK8:ModelTester.test_keypointrcnn_resnet50_fpn_expect/data/3FB6ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ5dgIT@PKpPK8ModelTester.test_keypointrcnn_resnet50_fpn_expect/data/4FBZZZZZZZZZZZZZZ4/f?ɜ??^:'=S?}?D @~Q?ݥ?`-ܸ,>Y=Y??J>Z??>?:7>Ҏ?N?={4_2?$?ҙEL==.?dĠ?!x?UN@V@]@?'@B@B">?>Q$@-@N? b? ?Ÿ?,@_>3JBBdhBD+BfAzAGBAպ@}PBB/BB ߚAABA{@$@լ}@@ЊU@w@!u?==07A<@V@=x@?L@@$%@?Õ>;f:?N? SS?=P)?l?<>^=o>uX?=l>l>7v>&>?\=PK_C  PK99ModelTester.test_keypointrcnn_resnet50_fpn_expect/versionFB5ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK} :ModelTester.test_keypointrcnn_resnet50_fpn_expect/data.pklPK8ModelTester.test_keypointrcnn_resnet50_fpn_expect/data/0PKmg@@8ModelTester.test_keypointrcnn_resnet50_fpn_expect/data/1PKz 8ModelTester.test_keypointrcnn_resnet50_fpn_expect/data/2PKp80ModelTester.test_keypointrcnn_resnet50_fpn_expect/data/3PK8ModelTester.test_keypointrcnn_resnet50_fpn_expect/data/4PK_C  8XModelTester.test_keypointrcnn_resnet50_fpn_expect/data/5PKўgU9ModelTester.test_keypointrcnn_resnet50_fpn_expect/versionPK,-3 PK PK3 vision-0.19.1/test/expect/ModelTester.test_lraspp_mobilenet_v3_large_expect.pkl000066400000000000000000001214711466211133600300570ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX140184532563392qXcpuqM(tqQK(KK K K tq(M(MK Ktqccollections OrderedDict q)Rq tq Rq .PK3;۵PKAarchive/data/140184532563392FB=ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZk=k=k=k==_=D>===H====›=ڪ====6=L==0=j5=K=a=x=V======k=k=k=k==_=D>===H====›=ڪ====6=L==0=j5=K=a=x=V======k=k=k=k==_=D>===H====›=ڪ====6=L==0=j5=K=a=x=V======k=k=k=k==_=D>===H====›=ڪ====6=L==0=j5=K=a=x=V===========Fi=F=$=S===_==q=C=====[==2=VH=^=t==B=}=====j=j=j=j=={=XX=4==v==3==β==[===0=w,=A=W=,n=h==߰==V=s=s=s=s=======i=D==== =o=*===^ =!=8=P=g=}==A=|===0=M=M=M=M======^={=T=.=^==޻=V====#=J>={Y=t=c==۹==T===)=&4=&4='4=&4=h=h=h=h====d=a===B======/=<=|[="z=Ș=8=u===, =h"=8=N=Z=Z=Z=Z========u=$L=F#=f==&=?=[=v4=V=x=Ț===L===2=AH=~^=t==========u=F==Z=0==\= ==-%=J=Np=ޕ=n===#=a+=A=W=n=X======f-=f-=f-=f-==(==+=i=.>==1===8=a= ====$=:=8Q=vg=}==0=n=====(=(=(=(=9=C=N=W=`^=k1=u=~===6=e=ٔ==="=C=wX=m==+==N==&='='='= = = = =]==1=g=9=n ==C=ֱ==H!=Y==x=2=7=d\=m=~= =A=v============K=t=C==u=>= ==~= =@L===c =M=t===y=V=2============Ѓ=Q=$ =N=x==X=ed=n=u=}?====c=a==g==l==q==5=5=5=5=====Ȗ=Sc=/=h==~=b=.===]= =2=h=='=uy== =0=Y=========v=v=v=v=w=B= ===n=m9=W==Lq==%=M==4=M=_=,====f=4======kt=kt=kt=kt=Y=["===<~=G===A===o=]=J=8l=&B=Z=t=W=1'11|00Z00001>11 1 1 1 1D2D2D2D2 2~1N1 1111b1˧1ʉ1k1M1/110000k0H0$00000000W2W2W2W2z221L1111d111 k1 F1 !1 0 0 00ĥ00040X0~0000002222Z 221\111^1 1m11h1B1100-0U00000H0y00¹0¹0¹0¹0N2N2N2N2O2O1P1P1P1R1R1R11J1d1C1:#110+0Ӳ0Ӷ0Ѻ0Ѿ0000000001111C111D111E111 |1`1E1)110(0Q00000X0&0000001111611171118111r1\1@F1/11l1$00m0 00D00}000000+1+1+1+1+1*1+1+1+1,1+1,1z1i1~X1kG1Y61F%141"1N00%11 1h 11>11111t1t1t1t11t1ʷ11t1ʑ11tx1/l1R`1tT1H1<101$1111B1{1!1$1*(1d+1-1-1-1-1111111h111h1u1g1]1W1jP1I1C1n<151/1K-1T01\31f61n91x<1?1B1 D1 D1D1 D1111111111s1e1W1JO1M1`L1J1vI1H1F1E1E1H1yK1PN1(Q1S1V1Y1[1[1[1[11111K111Q1x1i1XZ1K1C1D1E1F1eG1MH11I1J1?L1O1S1{V1Y1N]1`1!d1e1e1e1e11111߼11C11w1Zf1 U1C1J;1;1<1~<1<1L=1=1>1@1jE1)J1N1S1dX1!]1a1@d1@d1?d1?d11111s1*111Pv1c1O1u<1212121|21c21K212212151+;1?A1RG1fM1yS1Y1_1b1b1b1b111111´1~1;1t1_1qJ1.51@*1)1)1y(1'1J'1&1&1)101T81?1&G1N1U1`]1a1a1a1a1818181811\11ߊ1s1b\1$E1-1!1 11w1`1J13111&1l/1(81@1I1bR1[1~_1~_1~_1~_11111-1111Hr1Y1?1&1611 1u11I111[1n1&101:1D1N1X1]1]1]1]1Z1Z1Z1Z111X1%1p1U1:1V111 1s 1]1H13111011(1g41?17K1V1R\1S\1R\1R\11111T1&11Ȍ1o1kR1<511-111p10H0004011k!1(.1:1G1_T1Z1Z1Z1Z111111r1G11n1P121k111C0o0000 0j01:11+1o81E1?S1Y1Y1Y1Y111111r1F11n1P121j111C0o0000 0j01911+1o81E1>S1Y1Y1Y1Y111111r1F11n1P121j111B0o0000 0j01911+1o81E1>S1Y1Y1Y1Y111111r1F11n1P121j111C0o0000 0j01911+1o81E1>S1Y1Y1Y1Y1̿=̿=̿=̿==#=\=== =C=}===^===J = == ==(=1=;=F=N=Yo=^d=^d=^d=^d=̿=̿=̿=̿==#=\=== =C=}===^===J = == ==(=1=;=F=N=Yo=^d=^d=^d=^d=̿=̿=̿=̿==#=\=== =C=}===^===J = == ==(=1=;=F=N=Yo=^d=^d=^d=^d=̿=̿=̿=̿==#=\=== =C=}===^===J = == ==(=1=;=F=N=Yo=^d=^d=^d=^d=1=1=1=1=====6=U=r==$=.=:=E=P=[=g =q===,=u===O=n=c=c=c=c=====n=S=9=======m==v==~== ==p=7==ì==N=m=xb=wb=wb=wb=ř=ř=ř=ř==ɩ=w=%===,============B==ǩ= =N=k=3a=3a=4a=3a=====ɐ=>==*=====t==a==N==:====L= =̦==N~=j=_=_=_=_=Y{=Y{=Y{=Y{=w===0=l===$=9=)=========V==ң==N|=h=^=^=^=^=#l=#l=#l=#l=&t=*=0=5=:=?=D=I==h==8== =r====b==ؠ==Mz=g=d]=f]=f]=f]=\=\=\=\=e=w=n=:==Ծ==n====j=K=,====5=l==ܝ==Lx=e=!\=!\=!\= \=M=M=M=M=W=k=~=@=ԥ=j=====@===O=== ==w=,===Lv=d=Z=Z=Z=Z=hR=hR=hR=hR=[="n====== = ==w=#==|=(====[===b=p=`=Y=Y=Y=Y=k=k=k=k=Ar=Ā=G=ʝ=L=Ϻ=R===X=.==۾===_=٠===7=Vy=vo=e=[=V=V=V=V=====݈=f==y============}=u=Eq=l=gh=c=_=[=V=vT=vT=vT=vT=0=0=0=0=x===(==I==j=G=t==ȕ==t=Ic=tR=J=K=L=M=N=O=P=Q=&R='R=(R=(R=ƴ=ƴ=ƴ=ƴ===A=ؽ=p===4===U=}=g=TR=<=&=d=%=P,=2=<9=?=(F=L=O=O=O=O=_=_=_=_==K===%==`==== =e= K=0= ==<=$= ==#=/=;=G=M=M=M=M=====I===6===%=ɽ=q==l=mM=.==j===o==&===41=B==H="S=]=h=r= }=F=G=F=F=====*=Qc=x@=====:="=~=p}=|=z=dy= x=v=?x=|=*=====r=====Ϳ=Ϳ=Ϳ=Ϳ==r=W=M.==)===w=,=w=“= =V===ʼ=9=====l=۱===========Go=>==e==}=o==~=l=[=J=8='=U==+===m==D=z=z=z=y=9=9=9=9====O====s=`g=====<==a==E=E8=*==z==F======o8=o8=o8=o8====X`="== =bi=_=V====0-=fV==i=v=,c=O=;=R(===G=F=F=F=L=L=L=L=+==ɩ=h='=|=a=Gd=Z==== =C=1r=== =m=h=,R=;=$=K=====L=L=L=L=+==ɩ=h='={=a=Hd=Z==== =C=2r====m=h=,R=;=$=J=====L=L=L=L=+==ɩ=h='={=a=Hd=Z==== =C=2r=== =l=h=,R=;=$=J=====L=L=L=L=+==ȩ=h='={=a=Hd=Z==== =C=2r====l=h=,R=;=$=J=====\Q<\Q<\Q<\Q@<ы<<.<]<Ό<<<<<<<<< <)<<)Ҁ<a<<<<=5=+=3"==g==M=M=N=L=~=~=~=~==,==%====Ư=1===gy="b=J=3=Y==L = ==u=.===z={={={=o=o=o=o=Hv==:==.== ǯ=ԯ=ʯ=#=U=h=G=&="=V=[׮=2ܮ= ====e=======$`=$`=$`=$`=h=Vz=̋=C==0=ѯ==֯=W==W=T-==خ=Q=!== =î=ή=ڮ=======P=P=P=P=u[=p=^=ћ=F=Ư=.ܯ==k==z=F== ߮=-=Nw=f=y==&=<=PƮ=eٮ=y=====UA=UA=UA=UA=N=g==a=ҳ=Dͯ==&=)==Xs=5===}=J@=.=H=c=J}=}==ˮ==2=2=2=2=1=1=1=1=@=^={==^=ӯ=<====l=%=ޮ=,=8P=F =v==9=mZ={==d=߮=_=`=_=`="="="="=<3=T=v==븯=Wگ==.==+=d=2=î=:s="=Bҭ=====7=`=r=㰮=Uٮ=========`1=lT=yw=====&=2== p==Ϯ==/=߭=̭=o=!=L=w==#̮== = = = =)=)=)=)=;=_]===Qį===B+==ӯ==aH==N=6w=|1=n"= J=q=I===%=7=K=K=K=K=3=3=3=3=D=Tf=釯=|=˯==8=/="==)=p=k5= ==N=w==]== =s/=%T=x=/=0=0=0=>=>=>=>=pN=Ho===ѯ===W4=A,=<=7ʯ=4=.h=*7=&="ծ=ͮ=H==2=T=`v=&=칯=ʯ=ʯ=ʯ=ʯ=H=H=H=H= X=="=T==ͯ=f==x=x==p=^̯=L=:=( =<= J= J= J= J=.\=.\=.\=.\=k=#=ƨ=jǯ===T#=A=NH=Y6=d$=n=x==ܯ=ʯ=ί=!="=$=%2=&K=(d=)}======f==f==f==f=0u===ί== =(=F=Q= J=rB=:=<3=+=$=k=#=9=O=e={==(=>=Hɰ=Hɰ=Iɰ=Iɰ=`Y=`Y=`Y=`Y=h==?=fƯ===#=B=Q=O=M=L=6J=[H=F=D=L=^=o=C=ؒ=m==ǰ=dа=dа=cа=dа=5=5=5=5=F='i==魯=IЯ== =l7=BH=G=F=F=fE=D=C=BC=H=,T=_=0k=v=5==:=========$=6J=o=l===?=+=>=L?=?=(@=@=A=rA=A=D=?J=O=U=Z=_=le=j=m=m=m=m=====o=E+=T=|=ƥ=ί=r=H ={5=7=8=4:=;=Y==>=~@=@=S@=?= ?=h>=== ==}<=+<=+<=+<=+<=:ʮ=:ʮ=:ʮ=:ʮ=C=S =c8=sd=====,=.=1=?4=6=9=e<=?===g6=/=(=C"==== = = = =q=q=q=q==a==K=B{==ٯ=# ="=&=o*=K.=&2=6=9===D9={,====S==߯=Zٯ=[ٯ=[ٯ=[ٯ=====뛮=pή=={3=f== ˯==T=U=U#=V(=V-=X2=X7=X<=j5="====ׯ=>į=a=====^=^=^=^=y=~=>==P=~=?====<=b"=(=.=4=:=1====ͯ=⴯===v=v=v=v=L=L=L=L=h==c׮==F={}=ٴ=5=@ ===f=&=,=3=F:=/===ۯ==ƣ=͇=k=]=]=]=]=L=L=L=L=h==b׮==F={}=ٴ=6=@ ===g=&=,=3=F:=/===ۯ==ǣ=͇=k=]=]=]=]=L=L=L=L=h==c׮==F={}=ٴ=6=@ ===g=&=,=3=F:=/===ۯ==ƣ=̇=k=]=]=]=]=L=L=L=L=h==c׮==F=z}=ش=6=? ===g=&=,=3=F:=/===ۯ==ƣ=̇=k=]=]=]=]=hhhh@s TJ  f!i0A.2,#*  {8 u4DX~JJJJhhhh@s TJ  f!i0A.2,#*  {8 u4DX~JJJJhhhh@s TJ  f!i0A.2,#*  {8 u4DX~JJJJhhhh@s TJ  f!i0A.2,#*  {8 u4DX~JJJJɔE >P 8 2J&*#_ʝ  = ~vQnf_AAAA 0 \ ( < Qe @gz%Ǎi * G k YF k ototptot4 ?N g A %P /z=L [9 R I &Z_VVVV]:e }l s { E ː%%f H ;\ % l{WWWW&&&&  pt Ji $^R_GO/R Ϊ V rf  M$4Ef....rrrr k m NP 22bif?  de p /ML( ::::""""&' / 8 B Jg S7 \e L i+ P t z v[T0<XXYXf f f f 6j ' v  ` X {J6d   (#_)z z z z e . Q ! Q $%jP  :| 5 ? j F #P`^^^^* X  K"t)2|9A I Q H /b A    BABABABAq .  7 JRld /Y E X "  ) >Sh}2222&&&&  *L P vX4N  h 9  cG+VVVV    7  z R}*R6: ( v Ɛ r z W&.{.{.{.{    I  f >g8.?|P+b t 8 *U = Pdw1] ]   RxpcDW J j> I >[\zmFGFF````S: ^  (lJ>w  P ;*  @ju5555&A  yHuWhק%q&e W #3 ҸsC!!!!????i| Q. ; $ DmA   M v@) 2o2o1o2oIIIIU )  f:@3"] d  !Fu v q?mpSSSSL ? 2:0 |x 7  \u.o Z< p    ]]]]=. O o X  ԓ } g Q; 4 ioG<cWdWcWcWgggg|hV C 0  o Pq . l  Ԗ "<ɤɤɤɤqqqqK(P  s M P K = IbOY!  mf%8 0///{{{{ Qo    { Oƹ#tQ N 0(o????2HY  t Esrdpoz,  k*GfIfHfIf2HX  t Dsrdpoz-  j*HfIfGfHf2HX  t Dsrdpnz-  j)GfGfHfHf2HX  t Dsrdpnz-  k*HfHfHfHfm=m=m=m=jn=9n=`n=n=$n=Qn=n=$o=Ho=#jo=bo=o=o=o=]p=1p=9p=N)p=p=p=uo=o=:o=o=Mo=No=Mo=Lo=m=m=m=m=jn=9n=`n=n=$n=Qn=n=$o=Ho=#jo=bo=o=o=o=]p=1p=9p=N)p=p=p=uo=o=:o=o=Mo=No=Mo=Lo=m=m=m=m=jn=9n=`n=n=$n=Qn=n=$o=Ho=#jo=bo=o=o=o=]p=1p=9p=N)p=p=p=uo=o=:o=o=Mo=No=Mo=Lo=m=m=m=m=jn=9n=`n=n=$n=Qn=n=$o=Ho=#jo=bo=o=o=o=]p=1p=9p=N)p=p=p=uo=o=:o=o=Mo=No=Mo=Lo=ln=ln=ln=ln=@0n=Un={n=:n=n=n=4o=7o=uZo=yo=o=o=o=%o=p=87p=>p=?.p=p=C p=o=Fo=o=Io= o= o= o= o=Zn=Zn=Zn=Zn=kn=n='n=n=an=o=;o=:^o=}o=o=ֵo=o=o=2 p=R&p=pBp=`Hp=!8p='p=p=bp=#o=o=o=o=o=o=o=Зn=Зn=Зn=Зn=n=+n=n=No=%o=sEo=eo=o=o=oo="o=o=p=Ap=4p=Mp=Rp=Bp=2p="p=p=p=o=o=o=o=o=o=n=n=n=n=En=n=Ro=8o=_Uo=qo=lo=o=o=%o=po=p=p=N.p=Cp=Xp=[p=Kp=#mo=bo=bo=bo=bo=vp=vp=vp=vp=p=p=] p=p=o=o=fo=(o=po=9o=o=o=o=co=-o=o=to=o=qo=Yo=5@o=e'o=o=n=^n=^n=^n=_n=/p=/p=/p=/p='p=p=p=o=o=o=vo=eo=թo=Ğo=o=o=}o=ro=vgo=f\o=nHo=+o=o=n=n= n=,n=N~n=on=on=on=on=TDp=TDp=TDp=TDp=7p=p=p=3o=No=jo=o=o=:uo=Oeo=fUo={Eo=5o=%o=o=o=hn=xn=n=n=in=Hn='n=n=\m=]m=^m=^m=Xp=Xp=Xp=Xp=Gp=-&p=up=o=o=Lo=}o=[o=@o=+o=o=So=n=n=n=Dn=an=bmn=aHn=_#n=`m=^m=]m=\m=|m=|m=|m=|m=1mp=1mp=1mp=1mp=Wp=_-p=p=Fo=o=/o=Xo=.o= o=en=n=(n=n=n=Prn=Xn=Z7n=Jn=:m=(m=m=jm=@m=m=\m=\m=\m=\m=p=p=p=p=gp=4p=0p=o=qo=go=3o=Ro=fn=n=xn=|n=]n=?n= n="n=Vm=4m=m=Tm='m=l=l=ll=܉l=܉l=ۉl=ۉl=p=p=p=p=Yop=n=n=zm=Um=9m=${m=Tm=,m=m=l=·l=l=&}l=%}l=%}l=$}l=@p=@p=@p=@p='np=Cp=p=o=co=0o=qo=Fo=o=;n=n=|n=CIn=n=m=Jm=m=rm=4[m=LDm=d-m={m=l=l=8l=7l=8l=8l=}p=}p=}p=}p=lp=Kp=*p= p=qo=Po=/o=o=hTo=>o=n=n=Sn=n=mm=Bm=om=im=Vbm=[m=Tm="Nm=eGm=@m=K=m=K=m=L=m=K=m=wp=wp=wp=wp=kp=Sp=;p=#p= p=po=^o=Mo=o=BDo=n=n=>^n=n=m=8xm=Vm= `m=zim=rm=X|m=ȅm=8m=m=^m=^m=^m=^m=rp=rp=rp=rp=jp=[p=Lp==p=.p=p=p=p=uo=Fto=o=n=hn=n=^m=/]m=e=m=Wm=pm=8m=ңm=mm=m=m=qm=rm=rm=rm=Xlp=Xlp=Xlp=Xlp=_ip=ncp=]p=Wp=Qp=Kp=Ep=?p= p=Jo=>o=n=8sn= n=קm=%Bm=1$m=Mm=wm=m=Mm=m=n=Hn=]n=]n=]n=]n=fp=fp=fp=fp=-hp=Mkp=mnp=qp=tp=wp=zp= ~p=Fp=No=bo=n=}n= n=Pm='m= m=Dm=~m=Ըm=m=,n=fn=n=n=n=n=n=`p=`p=`p=`p=fp=,sp=\p=p=p=p=p=Ip=p=Qp=o=o=2n=| n=Ȋm= m=l=;m=m="m=Bn=`dn=~n=n=o=o=o=o=^p=^p=^p=^p=cfp=wp=Ӈp=p=Bp=p=p=ip=Jp=Sp=]o=ho=qn=zn=m=l=.l=a7m=m=m=-n=3n=fn=$o=Mo=Mo=Mo=Mo=^p=^p=^p=^p=bfp=wp=Ӈp=p=Cp=p=p=ip=Jp=Tp=]o=ho=qn=|n=m=l=,l=b7m=m=m=-n=2n=fn=$o=Mo=Mo=Mo=Mo=^p=^p=^p=^p=cfp=wp=҇p=p=Bp=p=p=hp=Jp=Tp=]o=fo=qn=zn=m=l=-l=b7m=m=m=-n=2n=fn=$o=Mo=Mo=Mo=Mo=^p=^p=^p=^p=bfp=wp=҇p=p=Bp=p=p=ip=Kp=Tp=\o=ho=rn=zn=m=l=-l=b7m=m=m=-n=2n=hn=$o=Mo=Mo=Mo=Mo=>>>>>>v>I>>n>Z>F>D>S>b>q>>'>.>6>>>}>g>Q>;>%>>>>>>>>>>>>v>I>>n>Z>F>D>S>b>q>>'>.>6>>>}>g>Q>;>%>>>>>>>>>>>>v>I>>n>Z>F>D>S>b>q>>'>.>6>>>}>g>Q>;>%>>>>>>>>>>>>v>I>>n>Z>F>D>S>b>q>>'>.>6>>>}>g>Q>;>%>>>>>>>>>>>>#>(>->1x>5d>:P>M>A]>l>{>J>>>R>>>)>:m>KU>\=>m%>~ >>>>>u>u>u>u>>>|>>N>> w>c>a>q>>>>>>>>>'>hx>\>@>(%>h >>>>>>>>>:>>>>p>=> >v>u>&>>Z>>>)>>H>>&>>d>sD>$>R>>>>>1>1>1>1> >>.>`>>į>>'>]>>ԫ>>J>>>>>>$>Ž>`k>G>$>;>>>>>'>'>'>'>[> >>>>J>>v>/> >>>>|>W>4>>U>#>>r>K>W$>$>>>>>7>7>7>7>.>> >>>>>İ>>~>>x>>r >>l2>(&>$>!>>z>O>$>>>>>>KH>KH>KH>KH>{?>->8> >>V>>>>>>,>J>h$>7>J><> >>J>v>R>#>>>>>>X>X>X>X> P>>>->U> >>>c>>c>">>'>^;>O>b>iS> >>x>҈>,V>#>>>>>>Q_>Q_>Q_>Q_>VV>^D>g2>q >z>>>>>>>+>T*>~>>R>f>W>=%>>_>>[>)>>h>h>i>h>B\>B\>B\>B\>ZR>>>*>>>K>|>>>P>> >h>->$B>V>I>d>1>>̐>b>g4>4>>>>>3Y>3Y>3Y>3Y>^N>8> #>e >>>k>¶>7>>Z>>}>>1>2F>;>>>>>i>?>>>>>>$V>$V>$V>$V>cJ>2>`>>]>>Z>إ>z>A>>>>W >!>5>i->>>?>>p>K>]%>>>>>S>S>S>S>hF> ->>Y>>>I>>>>>>>>>%>R>>Z>>d>w>lV>4>3$>3$>4$>3$>P>P>P>P>lB>9'> >>>l>9>>>1>^>>>>>D><>>>>A>>a>D>5>5>5>5>L>L>L>L>q>>e!>X>M>@>4>(>s>Go>> >l>>0>>>$>#>"> >>>m>T>G>G>G>G>I>I>I>I>v:>>>>>>>2b>]>!s>>M>>y>>> >H>>>>7>rx>c>LY>LY>LY>LY>F>F>F>F>7> >r>>E>>>a>[>l>~>9>>>`>>>>>>>~>hw>Rg>G_>G_>G_>G_>D>D>D>D>5>>>>j>I>'>q>g>q>h{>/>>>>N>> >Ε>ي>>t>i>_>Y>Y>Y>Y>A>A>A>A>>4>>>:>>>8>>t>xv>Ox>'z>{>}>>>>y>s> n>5h>bb>\>V>S>S>S>S>(>>(>>(>>(>>2>W> >>>}>H>>j>P{>7u>o>i>b>\>V>TS>R>Q>9Q>P>O> O>mN>N>N>N>N><;><;><;><;>0>>[>>>>W>>1>(>r>d> V>H>9>+>!'>+>/>j4>8>F=>A>!F>WH>WH>WH>WH>Q8>Q8>Q8>Q8>+/>> >I>>>g>>>>o> Y>C>->>%>>~> >>)!>*>F4>=>B>B>B>B>e5>e5>e5>e5>z->> >>#>M>x>>§>؉>k>N>0>/>E>[>>m>>>z >*>&>5><><><><>z2>z2>z2>z2>+>i> >>H>>>'>>>h>B> >E>k>>>[>,>>>>l><->$7>$7>$7>$7>1>1>1>1>*>>>>[>5>>>>>Hg>v=>>>>+>r>Ӣ>3>>>T>>)>F4>G4>E4>F4>1>1>1>1>*>>>>[>5>>>>>Ig>v=>>>>,>s>Ң>4>>>U>>)>F4>E4>F4>F4>1>1>1>1>*>>>>[>5>>>>>Hg>v=>>>>+>r>Ӣ>3>>>T>>)>E4>F4>F4>F4>1>1>1>1>*>>>>[>5>>>>>Ig>v=>>>>,>r>Ӣ>4>>>T>>)>F4>F4>F4>F4>:<:<:<:<Ղ<<<\2<4< R<<+m<O<1<<< i<,m<O<1<<< i<+m<O<1<<< i&&&&)&5GDRafpd+!ݮVϭknp$su:xzN}~~~~^^^^B'5qD Sa:p~^®sJ%֭z: N^   *' 6DSa p~!YEM󭽲iA 謽zyvusrponnnn{{{{ (g6D$Sao?~YS.﮽&­^X-t`,YQJVC<4-))))bbbb3#T6uI\oւaWUJ>2&E۬q82#,%lZ , , , , î߮G6RoM8eLat$N㬽xBrA4@>=z<<;9`9`9^9^9uuuuuծ:"HboŕsDx/íXG쬽{LePET$X\_cgiiii7777!O%)-߮14?8o<耯<:7έa2[VW_UhRqPzMKHǙƙǙƙ^^^^1Nz ®j5o4!Fحkt菬/`Jne|Ҵ¬ɬɬɬɬAۭaX讽+n,,.RQ⭽xt j<}v綬 ʬYݬ....zzzzP7;Ԯ!nq#;ˮ\<}Ts/ܼ3լ6a*b*b*b*<<<<`g轭pj nůHH׮gf8 }" ֬f.KZZZZ:(:(:(:(R:LlG90 ݲ2E׭i4 hhʬꬽq ,L%]%]$]$]:?:?:?:?Gaa{魽-q˵=*,fĮ\Y%U2Tvݬ !22229V9V9V9Vp!٭XBw)஽#ʮGhjBଽ~4!DgAѬO8m8m8m8m㤭ɭﭽ6R9n^h' 0>4@UA@@U@xC`C$+Ci?uIA @z0@A@윻=tD? A(XCC?)Bu?A%fAANB`C(vB BDC`CJCb%@ܒAr\}?:QC(C`Cd4Cȶ@UC`C1{ZC{KAl@0BP>0@(DqAA"<C@ C`CAB>C`CnDCօB.VBC`CECB2@oNB$AfC`C(CW3B`Cgl>W3B`C>w=?x9Al@A/7AaB N0C`Cb4CBdGC`CaJCBiQJC`CuMCUC$NA^C(Bء BC`CNCOBWcjB ECaBQB%C`C*C?CݦB`Ce0CA@QC`CYCPK=@@PK4ModelTester.test_maskrcnn_resnet50_fpn_expect/data/1FBZZZZZZZZZZZZZZZZZZZZZZZZZZPKr  PK4>ModelTester.test_maskrcnn_resnet50_fpn_expect/data/2FB:ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ }?A}?G}?C}?.-}?B*}?%}?|?s|?Sa|? 4|?Q{?{?k{?U{?4{?Uz?Rz?y?]y?Dy?d"y?Wx?7v?5v?u? u?t?t?RDs?Һr? r?q?jAq?q?p?o?Ho?in?l@n? m?l?{{l?Dk?=k?j?(j?!j?i?u3h?g?$f?yd?vb?vb?Zb?ya?_?_?^?hw^?x,^?\?9[?6[?Z?9~Z?zIZ?SX?W?W?oW?@/W?ʢV?DU?h T?/R?_%R?Q?B|Q?P?O?"O?xN?)N?F#N?M?M?M?;L?K?G?JG?6E?pE?`D?'D?f@???s>?PK ;qPK4ModelTester.test_maskrcnn_resnet50_fpn_expect/data/3FB ZZZZZZZZZZ}®?PKPK4ModelTester.test_maskrcnn_resnet50_fpn_expect/data/4FBZZZZZZZZZZZZZZZZZZ4<~?PKPK5ModelTester.test_maskrcnn_resnet50_fpn_expect/versionFBZZZZZZZZZZZZZZZZZ3 PKўgUPK%6ModelTester.test_maskrcnn_resnet50_fpn_expect/data.pklPK=@@4\ModelTester.test_maskrcnn_resnet50_fpn_expect/data/0PKr  4 ModelTester.test_maskrcnn_resnet50_fpn_expect/data/1PK ;q4 ModelTester.test_maskrcnn_resnet50_fpn_expect/data/2PK4ModelTester.test_maskrcnn_resnet50_fpn_expect/data/3PK4XModelTester.test_maskrcnn_resnet50_fpn_expect/data/4PKўgU5ModelTester.test_maskrcnn_resnet50_fpn_expect/versionPK,-RPKPKRvision-0.19.1/test/expect/ModelTester.test_maskrcnn_resnet50_fpn_v2_expect.pkl000066400000000000000000000115721466211133600275510ustar00rootroot00000000000000PK9)ModelTester.test_maskrcnn_resnet50_fpn_v2_expect/data.pklFB%ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ]q}q(Xboxesqctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqMtqQKKKq KKq ccollections OrderedDict q )Rq tq RqXlabelsqh((hctorch LongStorage qX1qhKdtqQKKqKqh )RqtqRqXscoresqh((hhX2qhKdtqQKKqKqh )RqtqRqXmasksq }q!(Xmeanq"h((hctorch DoubleStorage q#X3q$hKtq%QK))h )Rq&tq'Rq(Xstdq)h((hh#X4q*hKtq+QK))h )Rq,tq-Rq.uua.PK%PK7ModelTester.test_maskrcnn_resnet50_fpn_v2_expect/data/0FB ZZZZZZZZZZZAB^CC[[_CkBo\C+ C`C@BY@5B$?B~@UB?ҕQB$@Bz=@B(bRAKHBtC?TB@]ڻBY C`Cڬ??;Bԩ@& C4A?B\ACރE?MB&@kBw>lB?ثB@Bp14B4CJ @dBd_ABR@@zBKAC&?};Bڻ@TB'A,f-CpAqFCmA^C`C_CTAzCwFB3GC/5AoBA/ABZ]@pECARC@IBAB#@DB6%{AYB>ABA!B#NA[7CAICVAòAA=RjB ATB6ABRABAָAZBc7@CzRAXS*C Az6CB KC+$B[NCW=BqUC~@{BoA!޼B>@A, Bј/AFBlBKAA(Bf(AcByjMC*\C`CC_C@ABAdB]@ CvAk C.JOCBYC`C޴^C4rABAnB0bAA#B/A(C<A@(C"rA YBQAWB@ BNxA. CA-AXBxA8BZADBJA^XBA{BKHAfB:0CPC8BCB$`A3CU@8BXLA@zrB @ B!A=(C`CҐAhM+C@`CqBfA`oBH@BBAB1BB,A67B|FBdIB6AߠBm/B-B'CJSCELCOZCB CA5TAF'xBABABĈ,BBA!E:BA |BAvaB'A C͵ABACAoA?BTBAZB4A;QBA)B ABA=OC8A1: CXA"@BmA4B1C`C@AvaB0A CAeTBmGAB#QC]B`C=B/KABxA C4C#{A`CB#A۾BζBB6B+=>>/>>]x>>7>q>j6> >o>>4>`>wϘ>`>T>,ʑ>{V>>\>Ç>A>q>b>%]>W>S>YH>܋G>6 B> ?>);6>N!3>0>oJ,>*>s*>!$>?1> V>>_>_|>PK惙PK7 ModelTester.test_maskrcnn_resnet50_fpn_v2_expect/data/3FBZZZZZZZ+fx?PKD.PK7ModelTester.test_maskrcnn_resnet50_fpn_v2_expect/data/4FBZZZZZZZZZZZZZZZȅt?PKZ5zPK8ModelTester.test_maskrcnn_resnet50_fpn_v2_expect/versionFBZZZZZZZZZZZZZZ3 PKўgUPK%9ModelTester.test_maskrcnn_resnet50_fpn_v2_expect/data.pklPKb@@7\ModelTester.test_maskrcnn_resnet50_fpn_v2_expect/data/0PKw  7 ModelTester.test_maskrcnn_resnet50_fpn_v2_expect/data/1PK惙7 ModelTester.test_maskrcnn_resnet50_fpn_v2_expect/data/2PKD.7ModelTester.test_maskrcnn_resnet50_fpn_v2_expect/data/3PKZ5z7XModelTester.test_maskrcnn_resnet50_fpn_v2_expect/data/4PKўgU8ModelTester.test_maskrcnn_resnet50_fpn_v2_expect/versionPK,-RPKPKRvision-0.19.1/test/expect/ModelTester.test_maxvit_t_expect.pkl000066400000000000000000000020661466211133600245670ustar00rootroot00000000000000PK)9ModelTester.test_maxvit_t_expect/data.pklFB5ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK'ModelTester.test_maxvit_t_expect/data/0FB ZZZZZZZZZZZZZ2O>* =cҽg(E>Sa 39>Uo>v)=n|>(-==>i/>ZN&nB8>-}7Io2Ϧr=Z=ʾvͭ 1kz<"g=DڽldP=>u=ޙaI>Z=D=PKPK("ModelTester.test_maxvit_t_expect/versionFBZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|)ModelTester.test_maxvit_t_expect/data.pklPK'*ModelTester.test_maxvit_t_expect/data/0PKўgU(XModelTester.test_maxvit_t_expect/versionPK,-PKPKvision-0.19.1/test/expect/ModelTester.test_mc3_18_expect.pkl000066400000000000000000000016531466211133600237270ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ= .)νR:O=02=#*=Q= RL =<.=H;<0^7;ҽ>= =@TU> =((н9==༌<+޼"=⬽;VPKa7PK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPKa7archive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_mnasnet0_5_expect.pkl000066400000000000000000000010371466211133600247020ustar00rootroot00000000000000 lF jP.M.}q(Xprotocol_versionqMX little_endianqX type_sizesq}q(XshortqKXintqKXlongqKuu.ctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX140602365065232qXcpuqK2NtqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .]qX140602365065232qa.2r'J5w4h4*ӴR;4P'4y|f4AeBm>변b4WnP {4>+433o(2T5V 4N4ȗ28}48  b4Q ĩN4P3sQ嶴 Z )hӶ245ĉ)kϴ`@~I4#vision-0.19.1/test/expect/ModelTester.test_mnasnet0_75_expect.pkl000066400000000000000000000010371466211133600247710ustar00rootroot00000000000000 lF jP.M.}q(Xprotocol_versionqMX little_endianqX type_sizesq}q(XshortqKXintqKXlongqKuu.ctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX140602365380144qXcpuqK2NtqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .]qX140602365380144qa.2;2eͲ>1KͲ2F]2]2L1c1ZvR3ڱ/űSm3`oYl2PZWw\43O>ز71223;%A4* tSС36oVRT20({o32j+M(xm3#920vision-0.19.1/test/expect/ModelTester.test_mnasnet1_0_expect.pkl000066400000000000000000000010371466211133600246760ustar00rootroot00000000000000 lF jP.M.}q(Xprotocol_versionqMX little_endianqX type_sizesq}q(XshortqKXintqKXlongqKuu.ctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX140602364844528qXcpuqK2NtqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .]qX140602364844528qa.2`:c1"-2z00p[,۰0*/hTc}ieew2dvkÐ.1p24gvV%2VA±2'00qa'1L$0w10Ĩ1G.<111k 1BF1&ɰb/X1Vpf/ 0$v$1tH190$42vision-0.19.1/test/expect/ModelTester.test_mnasnet1_3_expect.pkl000066400000000000000000000010371466211133600247010ustar00rootroot00000000000000 lF jP.M.}q(Xprotocol_versionqMX little_endianqX type_sizesq}q(XshortqKXintqKXlongqKuu.ctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX140601026247856qXcpuqK2NtqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .]qX140601026247856qa.2'hEL(ıPk11ν1jɰvV1R1E R0J0o5W0/)iб@1?0̜1vˍEmV1^Xw0J@A 1GIŷ1][1~ذriv00'8T1±9p1Z0p?131 ΰp=.i0vision-0.19.1/test/expect/ModelTester.test_mobilenet_v2_expect.pkl000066400000000000000000000010371466211133600253160ustar00rootroot00000000000000 lF jP.M.}q(Xprotocol_versionqMX little_endianqX type_sizesq}q(XshortqKXintqKXlongqKuu.ctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX140602369198032qXcpuqK2NtqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .]qX140602369198032qa.2Վ.9-[HT]/c:(.L{f.hQ/t$..H`s&>J^E:-9ۦ.L .r.j!/4ܭ_x L/4pϭWTtt. '->(.k.*H.- /.n[.vg.WVR..߮gDFli.ǮpvW*vision-0.19.1/test/expect/ModelTester.test_mobilenet_v2_quantized_expect.pkl000066400000000000000000000013531466211133600274030ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqKtqQKKKqKKqccollections OrderedDict q)Rq tq Rq .PKGȚPK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZPKPK/archive/versionFB+ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPKGȚarchive/data.pklPKarchive/data/0PKўgUdarchive/versionPK,-PKPKvision-0.19.1/test/expect/ModelTester.test_mobilenet_v3_large_expect.pkl000066400000000000000000000016711466211133600264750ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX140510606067792qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PKѢ<PKarchive/data/140510606067792FB ZZZZZZZZZZ(gd.:v. sOh<[kJ.N8.:خt$L5V d/*0iil).6ʮj1hE..Ḫ&zy.mB.x-" .L ,P .2J.lC=-ۥ&W/A)Юh ._墮X,0Gn,/)x/AX/VΫ/R /W,2Y.̳0q6`e4EM/}//.|ta/2/ZK/ۮȪ/-A2 / ܮrp3ou/ .PKvPK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK`GWۨarchive/data.pklPKvarchive/data/140510876568064PKўgUarchive/versionPK,-PKWPKvision-0.19.1/test/expect/ModelTester.test_mobilenetv2_residual_setting_expect.pkl000066400000000000000000000010371466211133600306040ustar00rootroot00000000000000 lF jP.M.}q(Xprotocol_versionqMX little_endianqX type_sizesq}q(XshortqKXintqKXlongqKuu.ctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX140531317944192qXcpuqK2NtqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .]qX140531317944192qa.209z Ѹ8DNZCm?[ 80U޸t$8hԬ9+9*)T8o=F8 _$9\>8%*88]v/dVx 8|\9y3*\8=8NU9g8уj973GO8 Rx<9t9dz7 mvision-0.19.1/test/expect/ModelTester.test_mvit_v1_b_expect.pkl000066400000000000000000000016531466211133600246230ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZcZ9R?)P."=h*e?džFr>FDxϼn++==`Ľ&'>DDK?"lw,>K?P.sT˧A5>>{%>~?k9>B*ȾtXu<Ȋ=?`>~==Ƣ>?>x3=+Q?Rd>YR?^?>PKRPK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPKRarchive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_mvit_v2_s_expect.pkl000066400000000000000000000016531466211133600246450ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZT&aç jL?E-&>z?sZaT@:Ae>=3݂?L0? S$?qG?B? <6Ǿ ~>4>>-8>>u>4žWD>LʾQXNվ co?eQ4>=fUX|?>>Y>3g'?*4?PK'JPK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPK'Jarchive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_r2plus1d_18_expect.pkl000066400000000000000000000016531466211133600247210ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZJR=нbT} j= T=*<ڣǽ2<+=D3;Jw=.0z=0{%?ބ?ԯ?fɯ?zy?3??l٫???4? ? ?xS?^ ?a?T???i?5??G???*??bZ?k?b+?D? ?"??{?,??2?~?|??h?k?K?,?u|?دz? z?!y?ܽz?z?y?|?4?H??5?#?|?.??>?vݣ?2??h?{?v3??G?p_?z?|^?N???_߰?a?Ū??%ʫ?:?y«?F?K?E? ???b]?Y2??8:???N?S??2???Ǩ?p?T??~W?*ϴ?x?cѳ?p??u}?d?ؐ? ?oG?/?N?coz?Mx?Ά{?|?vGz?,z?|~z?.z?*M?*i?*i?^g?4?Ҭ??|?s?ݣ?u}??u?Ƥ?:(?&?D ???:?\ϯ?2?ï?\Y?I?6?#q??n? &??Z?J?I?b?F?vS?6?`??v??jY?,? &??n?{!?&`? ?1?d??&??@?4?[?D?S?!?~ ?"??4{?{?"Uz?y?4y?<{?{?{??%?̫?z?D?ѫ? r?Ĝ??P? q?G?X??ܵ? q??ۥ?? l??Cگ? ?#ū?fQ??t?((?????ѻ?w?Ȥ?=?? [???@?!?+?r?|????.??s֪?/?q??OP?S?7?b-?/??e ??Gޢ?5w> >:>iE>>t>>HӇ?O??HW??d?~?O?ׂ?h?[W??t?̃?>? ?v?l?-?D?3@*?-?:?`?w@?]]@A???k?l??#??E>)>j> >>_>zD>>?x???L???T]?`@X?k?zR@?L? p?js??{???v?~Ѭ?6?s?%? ه??e]?ۆ?˰? ?c?B?ހ?uz? :??*$~?w?!|??O|??Z?4?p??j??s@v?@?/?QY?\U?آ??ş??|f??"?0?;>>>Z>>x>>\>??|???D]?a??&h?~? g?{@{@q@L?d?O«??Ь?`??@ɫ?Q?DY? ?(???Z??@݈?ђ?e|?+?A?v?ρ??z?G|?Sv? ?|?M???7à?.??@Ց?:???D??Ӣ? Ǣ?& ? ??9?Τ?K?->>V>9>X>>x>>?@c?u?Я?C?|??R?T@|B@ ?T?i6@@L?5$?٬? ??H?y?4c?p??Ȭ?̈?R?l?|??&?l[?)N?(?(D?Z?z? ?6}???MW?d?$ҟ?+?w?8??ߟ?v?6@k??q?v?3??;@͠??Y?pj?Q????C?A>7>OD>">>>}> >????!?v?{????fV@Y??V@9@C???z?5????`Ĭ???4g? ڇ???ڇ?ۅ?G;~?^?B??ԋ?h~?r?U?:Q?? D???pU? ?(?L?e@]?`@@U=? ??鏞?f?܇?d?^4??K?B?dG>>>&>>&?>0>> ?B,?Z?6??Dc?8? 9??F\@&@)/@ @B@?,?@???ެ???^.? ?u?Ϫ?&?W?3?c??~?.?H?[???6^?0f?g?ٛ?Oś?N?֜?p??̟??=@e?K@??c??|@њ?;????:n??fm??Ru>>r+>/>,>>c>>?G????F?:???k?g?+?T?0@?? ?Ƴ???@߫?>?B????ч??*??La?m?Jl?E?@S?h?n|??Eh??.?Rs?[?Z?`? ?0؞??b@g@9@@: ?K?>?k;@?n#?1??F$?NX?Z??f>>>[>,>'>u>>R!@ @^@"g@2E@@-@9@%@K&@"%@%@a%@%@/%@$@_?Z??,? ?e?@??R)?,/?.*?,?ۨ,?-?'?+?>I!>>G >>1~> >>7>m>>>>>p>+>??%?: ??b? ?v? >;>w>>^o>a >K>Ǩ>Q9ו>C\FFAMI;P{(]@ @@@R@Y@)@@$@h%@&%@%@%@$@=%@R%@??a]?Ӹ?^??Z ?n?.?a)?'?)?*,? ,?'?.?>fW>V'>>Y>#>D>>~>?>>h>&>X>[ʼ>5>??`?i?#ӏ?E?k??[>{>P>~=[%>6=~>>cOwGKODcFJCRNj@T@E@m@@e@=@ʅ@I%@$@$@%@Y$@YH$@/%@m$@?Œ??H?o;???i?*?,+?(?+?2+?o(?(?ɺ,?A->|>j>o>d>p>ܻ>>>>J>> v>>&>g>≯=F> >`==L`>3KT&YN[YJ^C*@.&@g@@@@@o@$@m#@%@%@%@&@N$@M#@jϓ?'?pҒ??1??5? ?fU-?_,?+?,?<*?8C-?o-?I*?z>>3>*>>>d>>>>>>x>!>Q>!>>?̐?v???ݎ?=?5t?M>>=>N>ƈ=> =d/`2xPQ#N0JyWj Zn1@GN@@@@j+@ N@@O$@S%@%@c$@l%@$@$@$@?Tǒ?[?6a?$?V?ē?̈?(?>-?.?/,?*?j)?.?'?t>Q,>>B)>>>3>1>ε>ȼ>H>f>Mn>]>M>>?4Y??Ő?;\????g?Z=~>9)>i>= > >=hA?Y&M1dIMZP\QA@v@g@")@z@6@@H@.H$@1#@%@P$@-#@~$@1%@op$@y??? ?ߒ??י?߃?")?2-?V(?Q,?̵*?+)?6'*?*?\>w>&>^>>>o>1>P>k>>~>>>>>4ʐ??Ŏ?Q'?Đ?&?;??=>: >>T==>#=bGPV:PZj^`Y.ehQ3=;@@ r@{@c@Z@@&@e$@\%@i%@$@$@%@%@o%@ ? ? ?B??ߓ?3?Xd?&*?A*?޴+?Ѿ*?+?w -?,?yq-?+>6>D>>>>>>0>%>Z>>>$>i>>0> >%??~0?%s?ջ?jA???`>B&=ƭ=>=>=0=urc/Up:7QD]/JKGN@@+Q@!@k@ @E@F@$@l0$@X$@h#@ q$@%@$@ޠ$@?y*??7J?s?? ??2K)?\,?@-?\j)?x*?i-?D*?1*?J>>*G>_>>>=>>>>o>>~A>>>6>(?5?=>\=v>j>D>7>QWP:;ҩQXI!V a9@8@d8@l8@4T9@N:@*F:@N:@ԯJ@J@uI@7BJ@UI@J@J@OI@q?>?+8??>r>>>dl>3?}>2>ݫ >a>(>a>)>N9>#>Lqn) ٽl4v>u>f>?>c>> k>>Rlm|n~o&p4lui/l@=SF=SJ@`H@^I@5I@J@.JI@k?̏?? ?{?&??cl?lA?\>B?? >> >BD?l>k#>0>N1>7p#>`$>V#>7A<>7%> P4Խlݽ)νrtʎ>>3>oq>>>Q>>poȣjV sy]l=\qmjXX#X3SXXURXNZ8@3;@`9@o9@FT:@L9@c9@l9@8J@xI@ƈI@T4J@'H@9'I@JI@nI@5]?RP?n:?v? ???P?>>?`>E>?X?r>n\>3>+>2>&>}$>*>M+>">Ľn ߽NAYսjNԽ@Đ>K>'>>>h>>>h[m/@q3pp.nU?\VZ^YB5[baYWߟUp;@zf;@8@%9@&9@9@9@`=;@I@EG@πI@\J@4K@J@H@iH@֎??!?Վ?W\?q? ?̍??>>>>]>>d>5c>|*> >>%>o4>P0>$V,>ar5>8Y뽖?k>߽ս۽,ܽHK>/>>i>>&>0>G>c>?h\aiOrjmf,;pIfp]^-Q"ZhXYW|[4\Aa9@N:@7;@L;@59@9@ڣ:@ms8@~ZI@I@tI@eH@I@>zI@EH@=I@j??!?Ѝ?(??*??>>>0>,V>>>6>0>U>V->A%>3H,>0>$#>'>󽬍ܽ^8ٽIC>>4>D>>l>,S>>ĽtmtatVipln~irr2UZ]B_;@I9@H@tG@YI@\oH@,H@XRI@[I@zH@>?X?O??%v?+o?Y ?}?>g>N>S>>s>R>Q>+(>>!6>'> >1>3>m(>[ͽ~ FὺqY>mf>>w>>ҥ>>8>v`oh5gpsfu>T\Yr^nr^)\r[>TM:@8@:i8@>:@d9@[:@ 89@-8@H@NJ@I@5I@CI@J@cI@J@!?> ?A?$?(P?{?t??>>>>>FT>p>M>k>(>!.>(>X4+>'>%>&>C\>۽04ս Ƚ>hҽ,>~M>} >,B>>1>>J>&edoerCm0wm6kp 5qd`;YQVZ~VYX/:@8@8@;@,9@9@H9@ =:@I@yZH@SH@GG@*I@iJ@bI@DI@g?????R?L?n?>>>>6>%>/>y >i1>*>> >_0>.>4~+>j,>MܽԽqolW^"]>T)>>>>&T>|>Cq>dnrkq1sqlhfg"j8XWT\\B0VsZ}_L[@Z@GZ@eZ@?Z@,\@}h[@[@y@ x@w@x@nEw@w@y@\w@fn@?@.@e@hx@=@@:@٪?8]?_????A[?j?z?%y?t?9x?u?z?t?΂w?+ů>Q>:>GҰ>?>>DJ>|>>.>>R>L>>X>(>ds.H8kĨ髥 }򐞿͟j?š ̠cdF[@)Z@T[@Z@[@Z@K\@ \@w@y@x@w@Ƚw@:w@m y@ww@[@e@ @@BA@Jp@W@@K:?h??(????^?t?x?s? x?c\u?Nw?xx?>> >IǬ>>߮>ƌ>!3>>%>M> Z>>=>Z>>-h,VޣsFcuCBfߝ+좿;Z@=]@:[@[@l\@[@R[@ڲ[@x@jw@bw@ x@v@tv@Vx@w@X@5@H@l@>@U@^@@??x?R;??F?œ??pz?w? w? z?Jw?t?3v?v?b>h> >I>̫>vD> >Ю>f%>x\>>u >>4>>^>_2ta R.T`!6bV^뫡N+r]@N]@Y@*[@:[@Y,[@|[@7>]@v@w3v@x@=Vx@qy@ y@Lx@w@3@@Z@@@>d@5@Z@?ov?c?k?)?t?w?|?bz? w?dt?&y?Fp{?y?z?Dv?஬>">j>9>$>Ë>r>>>P>>_>>/>>f >>;iD_ΘMX5$}'ˡ䢢y?s}5[@8\@}\@6>]@C[@>>e>ѭ>e[>C>>|>>>` >`%>X>>>\22&ĿoFYB٤HSY&Q\@9\@Z[@\@2D\@ [@U\@@ [@v@%Hv@iw@ 8w@zyv@~gw@)x@v@n@@z@n@(@T0@@6@F??̋??~?Ԇ? ?M?w?`u?-y?WDx??t? \w?y? u?L>>x>>)~>&> >>>->H> >F>>(>4> #œ 娿WΤ諿➿'XDץPrGTu\@Z@hZ@SW\@b[@l[@[@Y@Aw@)x@x@7Jw@w@8x@"x@+y@W@@@@&@W@L@@?^?j~?62??6? W?N?Ty?y?2v?Mz?x?[y?l w?/0t?>6>Y>,ݫ>W>R>m>I>>H>LR>6>I>0A>v>>8ӣ|=$ ᥿5\ %lsϡ\@[@.Z@jZ@!]@4;[@Z@Z@͕[@w@w@,cw@v@w@T3y@ w@w@{y@W@S@@@ @$@0@?C?0?L? ?N ?6?H?x?w?vt?w r?u?z?hx?qx?X>GL>Ǯ>$>J>>ڶ>(>z]>4>:>a>>>`e>2>0}B!ᜫ4crƤ*j-, Zio@Ho@o@n@09p@p@o@WIp@Q@@(:@ؓ@΁@?@Ƃ@ 5@ @ @@ @@:@J# @_@??q?*?һ?b4?y?:?@?>??±?a?$?̚?g@?=5?55?p1?E5?$3?{1?6?R1?%?%?$?$?&?%?'?&?m[*$ NZڿXڿۿ\ݿݿ7ݿxݿvHAp@n@@p@|o@8p@Lo@Tp@p@D@辂@ﶂ@쾁@=@h!@b@#@, @) @m @@c> @e @!@dP@N?l? Q?'?,)?*'?a%?ʈBEϺֿ„ ƺ`D1ڿ$࿐7Zܿ$޿'c$ݿq@+Mq@%p@[p@q@zp@p@/p@0@F@ F@1@@\ @s@@j @P@ @I@@Ƭ@67@@?t? K?w??!Ϳ̿hϿͿϿ˿dʿͿl¡s:9hn@hm@n@n@tn@n@bn@2Do@!@M@.@9@?@一@n6@^@H,@Lz-@,@Q-@A-@-@%-@ؘ,@??֭?k?j?y?j??>?x??a?>D????E?P???;??X?ऐ?n@Zo@p@~n@Zn@o@m@l@In@|@G@@"|@@JD@,@~,@b+@+@{-@,@ ,@߂-@W??Q?R ?9??R?;??U??h?k?0?2?j?~˒?k??V?Z?^A?я?%?4O^?j]?[^?)_?\? _?%_?q[?5ҿͿƿzͿzϿFοPͿοwQ 0R~ Bp@Oo@n@Wo@o@Eo@Qo@˿̿7ѿѿҏ̿ҿ>K Wo@Om@m@}/o@n@n@In@Rl@케@@ۀ@@@n@Ȁ@@m+@I,@-@U,@.,@V,@-@ h-@X?O?7??h=?Z? ?1??i ???PS?????R?J?i?ɑ?1R??S?}`?g_?[n[?S,_?^?h\?5\?Y?fɿt(̿ZBϿ`ʿ$Ϳޒ̿Vο6Ϳ 0cFySun@qn@m@{p@Gn@κm@jn@o@@>@@@@-@@|@4,@XU-@5 -@ ,@xI,@9-@,@ֱ,@X6?Q?|?'??$X?p?? ?>j? ?'?L?!?b??Bב???:o???'‘??v!`?(]?d[?=]?2_?]\?J^?l]?6οοпҿ+˿ƿ˿qο6</M7@16@607@36@6@Y8@iL6@6@# @Ӝ@`y@C@@@>@k@:U?нR?X?T?DO?|cL?R?¯N?B+ h=hgp==@q==z=ʟ=y=Я*=<{=V=H=@=`k=@*.=nO=0<()=' |84(pw꾁((&Q&?)%h_'W4& %4H11pv2C/c2101U6@7@H6@7@Pu8@7@܁6@-7@fK @@M@5 @?@c=@) @j@V?U?PH?>YQ?^O?cuL?ڒU?XR? :ts9">6B JA==(D9=4==l=js=da=N=8=`~0<*=0+,=< E=0=꾎7jZq#_<5&',('}%rV'(R&%22y2N2<2'1z0X51M8@9@,6@j7@26@ȫ5@d8@ 8@@>@Z7@@ @@ @@H?M?oV?pL?ZQ?'O?*@F@\y@/@a @P@@P?eP?jT?1O?J?5K? R? HU?l47-Zh!k~ t= =f=?=Zx=h=Xt=X#=ȶI=^=x*= ???pڍ??.E??ͬC.|Ҹ nmT^gҴ w޲إN2ۻ\tؓXߒB[2G0w D#ؿؿ9Eؿֿxֿ5ٿN"׿տIIs?I7HNIIHNSH1*0o0uo1W1`0N{00?0}?`?H?P#?|1?hF?}?b"?l?8? ?J?hߍ?5.?(?2drj =R !ܰ#qL6~,{19꓿p梔5㒿v峿mҲeAിΖھ:foֿmտ׿Hֿzֿ$}׿ ֿҚؿKG3HHJH(H'CIPIFmJ2B2/ZW12Dd1j1Œ0:P?g? ?=??D ?i?CT?3J??>??ߋ?ي?\?#?W窾hѻ׭^E#Mxrw7f;TDq9ʓԵk:дʧ8ؿ׿eҿn׿ؿؿԿ׿wIXIHGIIuJ/II֥/ 82r22 -0F0=2p0n?99?|??(e????kA?V?s? ?3??V? E?[ܭ=9Q pa Wɴ90Ng%Fl$KRwInLSĴeٿտ׿&տֿ׿"ٿ׿K'H5)I .I FIܩI|nIv J/:1-12001/0?? ???c?%]??0?/??:????*?Y#/ϸꭾ[iz|򙴿9dzؠ^r]Z蔿5h’f08a.b;pITֿؿuE׿:׿lؿ/տfԿտ& IIH eH9J$HHG'2'51/?q1S1(1b0'0q?J?+??S;@>;@R:@5:@<@!:@]ZF@1G@G@F@F@r6F@G@^E@@K@K@,L@nK@OK@XJ@M@J@!@3w"@@R"@!@!@P!@j#@b!@@@@@@W}@$C @m)@a@@0@@ 3@@ /@@?x??0????*?<@</<0Fz?$|?+}?E;@y:@<@::@s;@J;@\;@y;@zG@F@H@JF@_G@|G@~F@MF@{L@K@UM@2K@6cL@L@9K@$K@ "@c"@#@"@"@"@|"@"@O @@ @@@Z@@@@@&@H@@zL@6@~@̹?7s?r?)?V???e?|<0I<=@<&Ey?s?֛;@,:@:@:@J;@"E;@b9@G<@NG@hF@pF@F@FG@NiG@HF@IH@bL@J@K@4"L@PL@sKL@J@L@H"@;!@-"@Ã"@#@"@H!@|#@ @ޗ@@C@@E @V@ @JT@d@=p@o@@@6@b@?e??l?$ѹ?O?3??<`<8@e<0<@<G@_F@rF@F@"4G@WF@- M@(0K@(L@J@l K@TXK@K@K@7#@!@"@!@!@!@U"@!@8@ @@>@f@@!@@@i@z@@@a)@e@@&@^@x???"?<6?o?F?v?@ e@6@@h@@ɜ@Z@@@@ւ@D@@Þ@pł@@#@ @\@ۊ@@@Њ@@@@(n@oo@n@n@o@PQo@p@o@(3@8j3@E1@)2@%2@3@3@2@ [Q==0=!=}=ce=@=4=????????-@B@8@A@I@@c@4@@fe@@-$@p@h@@$@m@@@h@`@:@(@Lq@@Pт@@ʝ@@l@@Wʂ@,@E@P@@pۊ@@n5@)g@n@בo@o@o@Eo@m n@+p@@o@21@ 2@3@1@2@1@\2@2@.?=`? ?L@Ph@@Ay@&U@ӛ@zL@@@UZ@@ƃ@@wt@ @̊@dt@ @;@yx@(@@@!@ٜ@@Ȃ@P@@@<@s@2@@@s@i@l@@ԯ@\@$n@o@o@SZp@8o@U&p@o@]o@51@42@3@2@u1@i2@2@<1@Kk=pF=<ࣸ< y==<8 =Z@??i?c$?.?? S?<?@:@8x@.)@φ@D@D@M`@ ƙ@@@(b@@э@f@aY@@p@œ@&@y@}@@贜@@@@1@4Ȃ@@B%@v@I@RՊ@޼@T@C@@@Z@Ͱo@$o@p@҈o@io@h[p@p@n@2@<2@D2@N2@0@2@3@i1@2=ЮN=p|=0E=PS= ^@-`@^@| 9,L TS ?LA?n??f*?<??jn?ġ@檡@@ҡ@z@ò@ @@Z@=F@ @@Z@@&=@m)@Yɢ@a*@t@b@@@@7?@č@@"@@%@j@@C@ 3@&+@vR@-@2@(@j@y@@Ց@[}@ѐ@i9@U@v @9@`@*^@N_@@_@_@X_@ ^@_@/-04$(^0r<2?v??e?k?D$?? ?\ʡ@h@@bȡ@'ġ@@R@@[@O@tB@A@]@5&@{@P@@@S6@M@~ɢ@@e@d@@@y@@@}@2@@@R@h@E@$@p@$|@a@s@@L @@A@(@L0@O@)`@Q,^@_@_@o;a@U`@1_@^@ШlzKL6 i!۽a? ??vu?:?+??H?@ס@ϡ@4@̡@[֡@@أ@@E@8@B@/@nB@@ @RH@gĢ@@p@@@â@a@A@'@VC@@n@@@X@@h @U@^@Y@%J@켣@@@]@ʢ@f@t֐@*H@O@ @>]@w_@R%`@C_@n^@_@^@]@^T*T8 =]t0? H?h?#??$??Ҳ?1ء@ԡ@ݡ@@Jȡ@_ҡ@@j@{A@@L>@V<@D4@%@`U@0@8@2-@W@Ţ@@̢@@h@D@~/@d@@@@@ 0@\+@פ@F@@ck@@@~@@(@~<@ @w@k@ @+L@BK@bÐ@r^@ _@_@^@~\@۞^@`@cY^@4!L~%8H:4XrV2???j ?\???.??f@z@Υ@n̡@@@@奡@S@\C@ =@f@I@W~@!@@ȫ@@-@ũ@Y@5@K@<@@@1M@@@M@@r@ӣ@@m@@@v@?@@P@V;@ x@T@ @ @ @m@H=@E@Q_@V_@F^@*_@X^@_@a^@ԡ^@X!` Pdc H"0&1? ?-c?@?e?J?>(?2?Rơ@̡@@L¡@.С@@p@j@LF@SM@>@@@U@.n@D@-@@B@C@z @آ@@L@Ћ@W@a@y@2ʍ@b@ @@p@I@oG@@@@;@eأ@@G@)@@ @z@6@@]@S@J^@s^@F^@]@A^@`@W`@P_@\(>##;%-N#p,BR,+bzR?>-S?X?R??X?X?\N?|[?҅@ʱ@@@v@س@@²@~ʆ@Æ@@ކ@t@@. @v†@㴏@@P@@@@_g@㶏@܅@̅@:@@@@6Ѕ@݅@Ϫ@@#@ܩ@n@>@@ǥ@̜@<@B@|@@iD@NŜ@ N@5w@;w@=u@u@| u@v@0!@▜@@~@@#@@Dܜ@1@7@Iu@Ȇu@GMv@qt@v@ƾu@ v@%u@T$A/ǁ$A)_G(%(&RQ&\U?ܠ[?QZ?tMV?Hc?L|]?6V?I[?@@G@@j@q{@@@@&@D@:@@t@_@@z@>@@@ԏ@@Ï@Ϗ@~Ώ@/@^D@l@@…@@࿅@@b@@⮩@ _@\@!թ@j5@@@y@<@B@R@;3@@P˜@w@nu@u@.v@ v@ t@u@xv@ /c[, $R&w+a,,07+$n)(W_?>k?AU?R?"cO?}*O?`?4a?C@k@F @@@|@@v@OU@J͆@(@;Ȇ@"ۆ@ @)@{@Ԉ@ُ@@@oy@TH@dz@j@@ @ͅ@߅@(ۅ@gޅ@#@@l@$"@x@@@p@[@%@Q@@O@Ԝ@e*@(@D@@v@*u@u@Du@w@gYv@DDv@t@>"(:3'1=& m#,AZ?D\?Z?Jb?"V?[?ja?#LW?$@@ƅ@҅@t@@j߅@@`@`͆@0@t@ՙ@f@@@n@@ge@Џ@@ҏ@A@n@@t@V@྅@I@e@N@@@e@;@%@@풩@<@P @Mۜ@f@̝@@Q؜@"d@R@Ü@t@u@Xw@Ht@t@t@t@qt@Ï&U*-B.Q%}I(@0Hk vze?@c?Z?a?Bd?]?\?5_?y@5@fz@@܅@"f@p@ٱ@%@@F@ @@8q@dž@S@@@X@@@rЏ@@n@(@d@d@I@@ID@@:@u@_@ZX@V@u@@@Յ@@ޅ@)@#b@@@{܆@@ĕ@@@ʏ@@@J@㱏@]}@Տ@5я@ʅ@@iM@@Ņ@P@@}@4@@@@e@|@,@@Y@͜@O@@?@ Ϝ@@@Ut@fQu@>-u@t@mbt@w@Ev@v@ ΣF0Q)0&89DmӼC<@;!<c@ed@wd@c@,d@@c@.c@ Ld@35h@eh@h@F-h@h@h@_g@Xh@K7w@rw@^w@v@w@~,w@ڔv@tv@g@h@h@W}h@h@h@Hg@h@2@쐜@<"@a@i՜@@@{@ڙ@^@ە@@2@'@K@3@vg@g@нf@6f@1f@jg@lg@Įf@럿[.t"𵠿!ͤ^k;P! @<B G vg@h@g@g@e@T6mJ7̍>ڤ貜"; <v@'w@ w@ w@v@BOw@#v@\g@$i@fh@i@F+h@/h@h@4h@G@y @Q @Л@ʜ@@!ܛ@@1~@l@J@@Ѳ@5@@ߕ@d@f@&Jh@&Of@"f@se@e@e@fyţؤJ6:;+=pY=צ;V<=(<@7\< <ec@Ud@9c@XGd@Pd@[c@c@d@{g@\g@"g@1@h@'h@6g@h@g@v@E[w@Pv@w@|v@6"w@v@zw@h@h@g@ރh@6ki@h@Ҍh@rg@Yל@@O@q@Ü@轜@@N@ů@|@|h@˖@_@@@Հ@6Fe@۩f@f@_f@d@e@g@2se@cןNȣ+ӟ <@i Q+ <`<`R`. c@Ic@Tc@wc@Vc@)d@d@$d@g@g@h@*g@ug@8th@g@g@v@v@iw@u@v@2\v@}w@)-w@Zi@@h@Th@Ih@Th@hh@#g@:h@0@L8@@ޛ@ @3@М@ @0ؖ@.@Gt@-@d@'@W@pՕ@wf@yf@:[f@cf@e@g@e@ e@g{ ;]&,؉`ẅ@>@?@>@Z?@>@?@Z?@vU@U@U@UU@T@tV@T@ U@fU@tU@4U@pU@iU@+U@KT@T@!E@E@E@D@8E@"E@9E@LpE@@@; @@z"@4ޒ@o@Ȓ@6@c@Ž@P@K@@Ɏ@@F^@9^@0\@\@[@]@^@iA\@XO"Lh2`Ó)V[~ZNI'VIS[R>@Ʀ?@L>@b?@L>@>@F?@~G?@BU@U@NU@U@xU@U@U@:U@\U@U@RU@B/U@ VU@%rU@^U@R U@@D@@4@B@s@m@@L@@@^A@Z@Z@0\@]@4*]@[@T]@<\@~\@K\@H~r``WnCXKOּNc|ZIOjTP>@N>@?@Ժ>@*?@2"@@{N?@z^?@ U@RWU@EU@U@ƑU@ U@U@ $U@U@bU@6,U@8U@RU@x!U@l(U@PbU@&E@]D@E@8E@E@E@#TE@D@/@u@@AÒ@@#@!@@JI@@ʉ@@Bӎ@~Ȏ@P@@^@.\@\@}\@/\@[@{>\@]@)Efcl#GOISZCW a}ZUF0HVR?@)?@>@,?@O>@>@>@E@@SV@{U@T@}U@V@1U@+ V@_U@T@2T@:U@gU@ST@rU@$T@T@3E@E@jD@^D@E@ZD@E@}E@X@ʒ@@@v0@@@@U@@C@|@b@O @@@e]@4[@o\@\@4^@@]@Q\@ \@u%`Hڻ4HZOO:TPJTULMsNSQ6;?@?@v>@?@>@6{?@?@^B?@T@WU@:U@ V@bkU@U@΍U@T@>U@ BU@T@BT@mU@T@T@ιU@sE@6E@FE@$E@E@rNE@E@rD@C@ @@Sɒ@<@eH@̒@o@@Ȏ@@z@~8@@H@N@I[@8\@ i^@[@[@[@E[@b[@.nYX8xʽ֒1IE VO&IP>QHK?@ζ?@d:?@?@@@?@ ?@~i?@eU@oT@V@U@U@ΈU@2V@6T@"U@"EU@T@T@T@ U@aT@BtU@D@yE@yE@F@~E@R@E@E@D@@V@oz@b@B@\@I@@@#@:@@/@-@C@z@,ˍ@[@`\@\@[@CZ@[@B~]@c \@0ny|BRywMW{XOIQpZ9ZUVY_g?@>@&>@>@T\?@J?@?@X?@V@U@P~U@|U@pV@U@ U@KT@:T@xaU@^U@/EU@T@T@].U@`IU@E@DD@!E@D@BE@!rE@E@k5E@k@_@(@`̒@@@ @<@f@w@@l@"@@ˎ@o@_@v\@V\@I\@\@b[@:e\@@C\@)\@7jnKiTOwOA,'LZ/SPR?@0>@>@ >@@!@@>@U?@b?@U@JT@T@2T@"U@U@U@V@U@U@U@fU@T@U@T@.T@D@D@olE@\E@`E@_*E@pE@΂E@/@*i@xo@R@@N@3@TВ@s@z@St@ʎ@cʎ@P@@8@[@\@Z[@n`[@b[@^@%]@p\@qt*) 뗿>˒HxِS6@35@f6@5@P6@6@66@6@UM@ M@M@M@QM@L$N@$N@M@;X@MX@rX@,X@X@W@X@W@PN@G O@~N@N@ŅO@T2O@O@O@@A@D@g#@r@|@:@@6Q@6@w@!@h@Ȏ@D@e@tU@FAV@@T@LsT@5T@kU@4V@>~T@xM?@*,1[qd搿d޵z6@5@5@=6@p6@/6@5@6@M@M@JN@M@N@BM@&LN@/N@k0X@' Y@"X@]X@hX@X@X@kW@"O@{O@4EN@]}O@6O@pN@#O@HO@@G@v:@dϙ@Z@;@2@˜@@@7r@@ߕ@#f@D@뛎@TT@ U@_U@ijS@gU@tT@T@T@@z9ĉ 8(.P5IŎ㏿瓿%6@G7@x6@6@6@6@6@Bs6@:N@(M@2M@7gN@fM@[M@u&N@d+N@|X@AX@X@W@SX@X@X@X@N@NN@LO@O@VO@O@O@`qO@@s@Rl@͘@V"@@q @ @:`@rَ@g_@n~@Qi@@@܍@@@$V@S@S@T@kT@1T@;T@aU@|jTr eV4┿BݎIGƓ␿=6@I7@mk6@76@Ě5@`5@l6@D#7@N@lN@@8N@M@N@JN@N@@M@dW@nsW@xY@QX@W@ؙX@;W@!X@O@O@N@O@iO@AO@LO@(yP@ @Rۘ@a@@@)@@>@E@;@@}@@;@@@VU@S@T@T@~V@RU@eU@S@kp :/g9ȡgoSx ݐa6@|6@E6@)7@5@Vs6@$7@D6@JL@N@_N@MN@nrM@M@+N@`tM@X@WX@W@9W@TX@W@ W@>Y@N@(O@"8P@4HP@O@O@.pP@O@l@!@=.@@揙@|@8@[@n[@b@B@N@&@=@w @ P@!S@jT@#V@nT@9T@RS@AS@pT@%bnQvًXDPӐ9͎6@7@η6@7@'>7@ 6@r6@,6@L@M@CM@gN@L^M@VM@2XN@ M@X@~X@W@jW@DW@OX@W@ X@ "O@aP@!O@P@/P@]O@O@3O@ޙ@H@͘@I|@[@@Z@j@$`@@@@8ݎ@j@@@ES@ŔT@T@GT@yR@տS@xU@S@nhWǟU 㲒 €!HA7@g6@L5@Ҏ6@nd6@q6@6@S6@rN@M@M@ N@AN@"ON@M@@N@LW@UTX@X@aX@RX@W@X@X@7O@N@N@N@QO@O@O@O@@{@r@ @U@@@A@@h@SÍ@U@O@:@!E@)@}T@T@_T@VU@p!T@T@T@ZT@7 ȡ"MT*ؔFeϗ s#6@>6@<7@7@6@z>5@Ȼ6@C6@tM@M@M@tTN@N@N@^W@X@X@NX@X@,X@W@W@.O@N@o~O@O@6O@YO@ rO@&rO@(I@@՘@e@0@3@Ϙ@d@@6@^@!@n@@,@(@)+T@44T@0#T@FS@T@ЈV@l?U@T@,',!]n8MŦ*y>4@l4@4@a4@5@+5@3@0 5@S]@+]@_ ]@\@^]@\@z]@ ]@w@~w@Tv@ w@w@ Cv@fv@Sv@MJg@Df@Qf@abg@f@ih@Mg@FDg@@\@2ݚ@ʚ@@bs@@i@>@Ž@XԎ@@&@ >@AԎ@0@4R@j`S@%R@R R@Q@yR@^S@)R@n cKhc\ti$.;k8fEro"Φi4@m3@3@N5@t4@4@V3@35@\@^@S\@ \@d;]@\@]@]@\mv@w@v@w@6:v@#v@v@(R@5T@WR@R@,Q@Wc NQӜlHTܣ\ꤿh&X4@5@5@5@-4@@5@{6@4@T\@\@p^@,+]@\@r\@h]@(\@Tw@Pu@4u@u@w@> w@Ӂu@3w@g@g@g@g@KBg@Yw@fh@/g@pmg@Jg@Jh@yg@g@g@ @d@ɚ@ʻ@zr@@|@f@Ϧ@5@@_N@d@>@-@rt@P@R@R@;R@P@kQ@IS@BQ@za#QQFN0UWz'梿2!5@U5@j4@=5@I5@4@½4@A)4@`\@{\@$\@\@\@N]@W]@]@Tu@v@w@pv@Jv@}v@v@^v@g@g@f@$h@g@g@Cf@,f@>i@ʚ@@p@~@bU@ۚ@yɚ@湏@`F@{@Y@x@BS@Pڎ@֎@R@xQ@Q@Q@tQ@PR@lR@v(R@iM61XHo#:Pk4U,55@J5@+5@5@M}4@ 4@5@4@Pf\@\@\@*]@]@ү]@H]@J%]@hv@!v@'v@*Qv@bv@v@gNv@%v@Rh@xg@Jf@g@Mg@g@Ag@o~g@@@@@Ś@bH@d@@@xC@ώ@\@@@J3@#!@jD@rQ@LQ@WQ@5:Q@'Q@T@*`R@R@YpevT ,? 0_/Wv%,#>i>ە>>\>>} >>t#??TD*?.Q!??h?Ł??jt?x?:??w&?N?8ˍ????"?w?\??z?З?<@T@H@s@@N@_@6@@˲@4@jM@@7@3@Z@?t??PM????M?@HJ G WuHBlC>>;>>Ǽ>>>>D'?ƚ?%???Z&?%???֕???@??n?B??2i?D?-?_?R?J??Ae?@G @@~@@O@q@7u@n@1@@@ |@@@@h?x?2)?y? ?+?6?n? !h 2 <1 "g ^k]p>۳>*>N9>>>j>>$?Ս'??I%?L!??>$?|#??V|?mO?P?~?ʌ??A?4Ɨ?ш?gԑ?'ܗ?P?ౕ?*??V@ @? @!@@@r>@{@3@@P@Qx@G@4@R@VY@[e?h?U?V??H?:?W?!<"kVD! \ % ]  Vj*.D  F#>>x>>>@>>bL>ӄ?l(?M$??do ?:?&+??d7?~?@7?x?s|??\y??+??>??{?*?? ?= @2@:@+J@&x@ @@ @TV@2@@@@.@@@:? W?P?r;??!?6?` ?i !"2!Vʉ&TOD4"`->H>>>$M>> >~>g#?7&?` ?v{??!?6"?|?6?^?8?̐?,?w? ?L7?,?֤?櫔?43?vŕ?>???@@D}@ @Ez@@&@@#.@@aS@{@O@@dQ@P@??g?J?H ??w?~(? B! E ! y eM!!$R>4>`>;>I>O>j>:>8??!?"?(?Zz?2N? ?<?~H?Ў?JG??$? ?،?_???m?5?Y{??#??Ż@oo@RL@@ձ@ @G @ @M@s@&@@t?@e @؀@@?b?Y:?3?Jq?ޟ?|?t? r@n`T (! v`h[DA>>>>P>f>Q>>,?N ?!?"?~?f?"?ؑ?e?\[?:?: ?:?2?D?꜏?=??+?Š?ӌ??@9?c?e@c@q@@ @@@h@p@M@9@ @T@%@@"@ *@(?>>l>{>#j>V>e>Ω ?,`%?)?%?,?k??G&?:!?6? ?W?Ԯ?ɬ?y?%W??e? ?D?=k?f??j?$? @Ug@2@ @@@@Y@]@ L@U"@ߏ@R@N@>@B@?@??v????)?gο̿ ϿοͿϿͿͿ鿆j忇ض翎Y@TUȂ%OU?I 7~&nx¿}m=N|^K%Lal;¼ЏjWӼ nHv{)LTLN:3;.I2,p>> >v>T>>5>Z>P?WV?X?S?PY?wQ?HM?cQ?ءO?TS?U?(S?LT?8O?P?JP?ZͿ ͿϿ.Ϳп+п+ϿοD濬ƈ过W翃忚`U09fc)bF |cs?xꌛrRXWlP@ezlH(R3ppTRkEIQ0@,B<2,sDV?A>>0>h>>y>m><>WW?P?M?SP?P?XT?],H?NR?!P?P?NQ?hN?ݻQ?=R?L?BS?UͿпmοPϿeEϿѿZ.ͿϿ|t翈pz忰6"&i刾>VwR=v̦z}=c'C,㴽ؖ8K:X"A8@8Q3̞4Io?ԓ( ,WO`>Ԇ1>\>>]*>>_>P>>Q?mO?P?KV?T?O?Q?;S?M?6sR?lOP?ѣT?O?GO?ҊP?T?'"пȥҿd\οȄп?ο&]ο(п^οd⿌[*9濸vЮjt_爾qj^X&HPς琾Ä4 )p捾(E6qo(e8?`p!*|E|J,P G78&4;>i>Y>>>d>>|>]V?:V?[P?RoS?B8N?dN?PS?(BQ?mDQ?AoS?ԹP?R? O?NN?R?O?^Ϳ$ϿBοkϿ9fο;ο`$п}οH0,忦̗G)翖6w6vk̆mԊxy4D{ʈi9.Xjmg~r(#`D[ݼ&ΙFR>((=:M{1D>Yb>m>r>%>h>>>O?R?hX?U?"Q?:kN?.U?R?,O?:yP?,W? Q?@O?L?9[O?UO?ѿFпϿп.ҿRQϿͿ/(Ϳ0㿶忌BqU( ̎X+̐K(X ꄾ|+}gz)#H[pF/MGPu<+6|## 4pU6^>>h>>z>>>D >|RS?PT??S?V?VX?IT?sL? P?N?S?S?HSS?T?R?M?KO?ϿKϿA̿EϿͿ+пLoο Ϳr/W濛俆2㿄)濠7;CD ډjr) ǘ"Ì쇾Kヾ„W^(wdsPdY.p#:+xp9XAY746$)h4l @>(>>~y>b>C>>H>R?K?ȳP?( R?MR?T?R?46R?fSR?cL? O?O?M?Q?*R?JR?Ͽ'пп{;пͿͿϿ_ϿN3t忕 翎 0d迠翴\[87yߐj75Ε_H(mNyx\Ж}Ƚy\:t8"PRbYp@-G)Su/ 9FK%>>`>(>e>> >^>FZM?tQ?h\\?,N?L?~]S?QN?V?ܩN?Q?U? N?ڌN?gR?O? Q?PK_ PKCarchive/versionFB?ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPKcarchive/data.pklPK_ archive/data/0PKўgUParchive/versionPK,-ҵPKPKҵvision-0.19.1/test/expect/ModelTester.test_raft_small_expect.pkl000066400000000000000000001333531466211133600250640ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcuda:0qM-tqQK(KKKPKHtq(M-MKHKtqccollections OrderedDict q)Rq tq Rq .PKcPKarchive/data/0FBZZZZZZZZZZZZZZZZZZZZZZY @-?@Js@@@.@H@b@~> ArAAH AA=t@]@E@.@@u@r@ke@4 AA/r'A4A,GBAOATAKA}BAf9AO0A8'A!A A A AA^pAACAkA$Aʀ(A{,Ad2A8AK>ADAJAPAoWA85]AScA?dA dAcAm!cAѫbA66bAaAJaAd`ACRAAA1A AA@@S@'@?0@'^?@ċx@ܘ@s@N @@AOA A\kAh@@)@yE@*a@|@@ @j@ueAA Av.AC&ADA4KAPQAXA^AdA fA[eABdAcAPcADbAaAEaAF`A;RABA3AL#AXAA@T:@ᢨ@dj>ɧ? @!"I@@.@@N@@ A+A @iY@@}@E@@@@Ƀ@o@k[@# AAq(AZ6AACAD JAoBA;Aƽ4A-A&AGpAsVA<AiAAPAMA7A A$A'AM+A0AJ7A2 >ADA`KALRA YA%_AfAgAfA{eAmdA_cAQcAB'bA4@aA'Y`ASAuDA5As&AAtA#@ @@x>>/?@\@@.@~@έ@!AA?@k@A@2@D@Ū@^G@6@u@t@@1A3mAҨ!Aq/A >ADAڟ>A8AZi2AN,A2&A AYAAOAOHA@Am9A1A*!A#$A'A7*A/A6A=ADAKARAZAaA,hADiA}gAfAeA'dA_zcAZbA:aA `ASAiOEA!7A(AAJr Av@r@@ۿ??h2@z@N@[@h@ZA@/s@l'@@珺@%D@c@@vt@ w@y@n|@@ A3BA)AD8Aj?ADN:A15A0AB*A%A A?AA6AA1AA,A!A'$A&A ")AP.A6Av=A~DAeAmcAbAj5aA_AnSA]FAN9A>+A1>A!AdA@@U,.sk?@z U@@ߙ@#@)@@@W@o@u@\@C@*@#z@np@@~@ @@AA#Ai2A:A5A1A-Ak)AS%Au?ڕ/@~р@ة@@@@@p@b@R)@CC@i|@KZ@P@wj@@s@@n@tAAt,A4A1A.Al+AL(A-%A "A AAAA]A˘A8 !A"A/$A%A='A,A4A4As0Q?@@pT@T@D@+@C@tê@C@…@f@ A@U@Z@N@ @v@@@A?A AG**A)A'A>&A%A~$A2\#A9"A!A AY`!A!A "Ab#A#A7$Al$AY%A*A3AK'A'A_'A 'A^&A&A`&AkA&AB&AB&AzC&A)D&AD&AE&A9F&AF&A|+A5A>A(GA:PAMYA_bA8qkATtAtArA\pAmA?kAuhAcfA.cAaAlXA8NA EA;;Am1Al'A9AA4 Axǎ-@Iſ6?7Z5@^@@@@1¾@@Μ@@|@p\@ <@ 4@r@@@@,!@^ A&A)A2A%$3A9e3AM3Aa3As(4Ai4A4A4Ah4A3A%2A 2A/1A@T0Ax/A.AZ-A׏3A]=A&,GAOPAwZAdAdnA2xAAFAKAm{}ABzAixAuAVsApAmDnAdAEZAOAFEA:AH0A%AJAAO?@@@`@@`m@@ZF@ײ@R@Ћ@M@j@5e@tb@I@#v@@A AN$A3Aug=AT)>A3>A?An@A0AAAABAovCAeBArCAA?A=A?*3L@@i@2@@@4@ȸ@@6@዗@w@ԫ@@@6@,A;AM A^/Am>AGA.IA.qJAٳKALA.9NA{OAPA/RAcXQANA/LAIAPGA sDAAAJ?A=AރAq|AqA=eA\YA-|MAZAA5A)AAG\}8E$?sX@W@is@@3@Z@4 @t@@I@@v@O@ @x@ߣ@I6@Zd A-A*A9A-HA;pRA3TA(UAWA~YAA[A]Ax^A`A`_AD\A3XAcUAQAqNAKAEGA0DAgJA5jVAlbAnnA$qzA9A:Ab? @ c@0%@P@L@6@ @ @@@@ @@GR@h@@/K AAa'A<5AxDASA\A8_A#}aAfcAfAIhA,jAnlAoA^nAviAxeA+aA\AؑXADTAOA KADRA^AkAX@xAZAވA=A㜕AA"wA}AA2AA ACAAAeAAzAsmA0`ARAiEAh8AH&+Ac1}v2?@C@xn@֠@q@f@T@8@ġ@ @1t@i@F@د@%@}@A9AH$A42A@A11OA~]AygA>jAmA+oA9rAGRuAUxAbzAp}A[o|A"FwArAlAxgA=bAx]ANXA%SAYAgAptAA"ƇAVA@AAA3CAɹA`0AAA$A AQAA;AA˸A&~wAiAJ[AڣMAi?A1Ad%m&=}?(@y@@@k@g@7P@8@!@h @@5@@@AAC!A/A=A*KAYAogAeqA@CuAxA{AAQ-A?ЂA+sAA-fAgcAC~AxA/rAlAfA`AZA?aAmvoA}AA A%(A^CA^AyACAxAAIAAaA4AAUAAhAAĀArA@dAIUAFAS8A`U_\8>"? .6@Ĩ@:@@@@N@g@x@ 7@@6@m@^@AAAL[-A-;AHAVAhdA/trAȁ|A7$AAA.΅AAӔA&xAx[AA#AβAAA}A vA-oAPhAtbAUhAwA-aAoڊASA̙A3FAuA8AS۰Ab6AqAAGAAAXAɳAɜAPAtA!ʅA?|AlA]A?NAZ>AF c2&1y? ?{n:@?@B@B@@@$@B%@_@}7@NA$AkiAAA$A*2AB@AyZNAhr\AWjAExAkvApAjAdA_A*YAQSAwMAGAzAAYSAA+AG0}AvAUnAܹgApnAWz}AAAƍAJKAϜATAf٫A^AAIAAA6AAԩA#ArAA˗AHAdAAqAbAe,SA)CA @e^m0>~?,3@}@@c:@@@@@O@@@@@WAZA]Aa.Ad=A7gLAQj[AlmjApyAA A#օA&A)A,mA0JA4'A7AFA2AؕA~=A%AAhxA*qAvkA^xqA8A A6A_A؈AűAڪAAAưA AIQAvA۩A AeA+AA9ARAvAAgrAcA'UAuFA;翊/y,>?+@s@,@@@@L@-@?@Rr@f@x6@@;@ A'Al*A:AsJA;bZAPjA>zAAAAAnAOA/AAAAAFAOAW؉A_AhApAzAtAUnAtA A6ڇA_AtAAAAܩA+AAFDAA뺫A=A1AlA4AAAAfAAAAsA!eAW#WA %IA6m⿶.>Ib?,$@6!j@̗@@@@@r@/A@@J@ج@e{@@AcA&AE7AHA$ZYA3jA {A}gA; AAOAtA2A7AڎAl}AޏAkAA@9AWAvA)}AewAqA8wA4AaAA(AAkAOݨANA&AAA$AVA}AAkAAAlAǍA #A%~AvsAhfAYAKAy12ݿB.?e>Դ?gg@d`@@/@@@@7@r@'@0@7#@?^@l@ @?A;#A4AqFARXAjAF{A. AɒAdAA#A4A.AkA:AAAT]A!AAjAAAfA0A͵AjݤAA,AATAޗA1MAA׷A,mADtAgAJ[ANAg,w׿ ->E?%@[V@@֫@@@ T@@@J@@@A@V@,@܊ A:Ak1A0DAIWAiA|A߲AWAσAGATA7A%A(AAtuA AӟA5A3ʅAb_AA}A=xA}A߄A>AAfA>lA&AߦA™AALAڨAAAW3AQAnAAA-A=ALA4\AtAhA]A4QAlD'xҿ9,>?@L@y@~@ @ @@@ӻ@@@@#@g@@Nv@A qA /ABAAVAiAw}AXA壆A:A:A䅊A:ыAAgA;A.AAARA䲈AwATA$AXA{{ANAЬA AhAǕA%A&A8AJ?A%A9AMAtaA\uADA+AAěA A AwAnA;KAjuA=jA<_ASA "'Ϳe,h:>g)?@/C@~@&%@@@@x@@g@@U@@2*@p6@T!ArA-,A@A9UAiAF~A@Ar,AZA؈A A=AoAAAoA AA$A0A.?S`@s9@Ѕr@G̕@@ o@[@H@5@"@@@@@@ @A$O)Ak>A1TAiAGAAAƈA ׉A/A?AO A_Ap,A؎AAOgAAAU=AÂAXA,VAA7AIACAʖAM=AAZA"4AS4A4A4A4A5AO5A5A5A7A|ΎAA AJ)AvAlA/cADYAhꞿBپ>/q?r@5@i@L@ͥ@@h @H-@(M@ m@錠@ɬ@̞@d@@ d@#A[(A=AQAYfA{AڄAۅA ݆AއAAAAwAA/A-1A+A)?A'ƆA%MA"ԃA [AAt-AdAVIAGאA9eA+AA AAUAqA ABAvƟAAAAK7AظA*ێAzAABAvA mA!RcAÖYAv hHy))?M?ޮ@4@Pc@Ģ@~@5@k@@ס@ @C@y@ï@v@@4A=A'Aj;A-'OAbAxvAr؁A!тAɃA„A.A޳AAYn?j?% @4@@\@<5@T1@}@ɚ@@b@I@z@F@ܒ@O@_@(7A˾AmF'A 9AULAP^AdqA}AdAAwAYAhArA`}AAA!:ABO}A/AυAoAA}AwOApAkAe/A2A A$'A*?5ę? ?m'@J3@lU@iw@*c@Ő@'@6@@N@B@@u@)@?@9AXA&A18A.IAZAg)lAZwAxyAF{A}A ~AXA?A&A A'AsAHA AXAJA_}A||A{A0AلAA+AԒA}A&AϠAxAAJAAAEAAҗA@AAAÐApAAKˀAvARKlAaAWA>?&?[??c@~2@xN@Zj@@ @@@w@@ h@@ Y@9@l=@L<AYA~w&A6AFAGVAfAqAcsA; uAvA_xAUzA|A}AAA]A0~AL}A0i|Av{AzAyAIxAfc~AAAGAAīA]AAAHABAAs'A&A4A.CARAVaAУkANmAnApAOrAsAuAPwAxAyA@yAxAxAi xAAwA`wAvA̟vAe|AAҨAcAAٕAAOA A~A݅AnjAAAAsA^AIA\At AhAdžA&A wAkA`A@FUAJG?]?t?@@C @0@@@NAv\AeA9gALhAljA lAmmA8oA-pAkrAIsA^msAʐsA6sAsA sAytAAtAOetAgzAA뻆AADAA̙A'A4TAAx#ASYA0A ŠAA0AfA{ADtAPA]AjAyTA wA%kA?_AYiTA ?? @t@@&@0@:@,#D@UP@k@x@s[@l@hѬ@c@]G@X@؍@@D AAA%A1A.>>AJAD;WAF_A%aAԬbA4dAbeA*DgAhASjAkAlAߙmA@nAnAڎoA5pApAԃqA*rAixAAυAA%iA66AEAVНAgAD\AA%AAzAGTAAAA*>A,OA-`A0qA3Ai&wAkHkAnj_ArSAi@e@a@J]#@ Y'@T+@P/@ZL3@H7@>@Z^@>}@ώ@堞@r@+C@N@q@ g@AFAA$A(#0Al;A6FAQAYA0[A]\A]Ar_A`A_bABcAqKeAЛfAagAhAjAFkAplA4mAnAVoAkvA AA1AGA\dAp:AAAʢA^AkA*AAAeAA#՟AhAAAۍAŇA쯁A3wAkA^ARA\@@tv$@+@_3@:@HB@1I@1Q@b:[@Ow@@7@ǥ@ҳ@=@@@#@A+ A\AA )A%3A>!>AVRHALzOA QAƫSAUA?WAYA\Au'^A2@`AaA$cA_dAɚeAfAhAKiAxjAdkASrA|A*A_ӇAA̙A}A6`AlCANA A[ՠAA\ARAAAIiAәAOzA!AdžA|nAi*tAwgALZANA@$&@C'@`3@V~?@K@$W@c@o@}@@/Q@@s@@s@Z<@@i@@DmAAA"A;+Ay4A>A DAܨGAzJA|LMALPARAUAXAe[Al]AƩ^A_A#aAd`bADcA$dAfASgAmAywA݀Ap΅AJA%AAבAA$AAAAAtAgAYALAPADߒA:?A/AK}A6pA ~cA >VAHA@^J@*@:@ K@bc\@)m@}@[@@:i@@kv@@@3 @ʐ@b@@@N@ǮA* AAAQ#A+A3A3:A=AIAAvDAY_HA>KA"uOASAVAXA.ZAmm[AA\A]A)_Ah`AaAbbAiA sA}AɃALjA~ƍAĒAy×AAA4>A`AyAAȞAbAA0A+A9DAk]AvA{ARmAe_AǶQA+CA}@n@,@LB@W@+m@M@@-@[@I@v@Ӷ@@ \@@;@)@u@@@AY AAgA"Av)A/A3Aw8Ao\A?Ԓ@ʪ/@I@c@}@Q@L@G@(@*@-@/@!2@4@(7@9@.<@@@@c@xA%A A}A*AcAF$AR)A].Ai3At8A=ABAGALAOAB8QAzRASAtUA/CVAWAXAa ZA`A*kAKuACAiلA/A A&A@AjA^jAQADnA8A+rAAvAAzA$AΙAx%AHbuAyfAWACHA9A}?@w2@8Q@o@(]@@@b~@J@E @@8@L@) @@@N@X@T@@?x@AA Ad_A6(AJA$ AB%Abl+A"1A6AA'~BACAUEAWFAGAHA1JAIzKALAxSAV^AAhAasA}A:6AxAARAA,A=AuNAa_ANpA:A'AAA=AbAW}ADlA5\AKA|;A:*A?+@=@{i@ϊ@@y@7@r@K*@@4@B@@@[@y@@(@]X@@@2@y@I@z@M@4@Ad A5AxAp"Ah*A`y2AXJ:A4>AF@AAAs CA3oDAEA4GArHA2IAQA7[Aq@I@T@_@k@1v@O@q@@0@QU@r@@8@@z@~8A@z AAA?"AD*A2A;AFCAbIAXMANQAEUAI;YA{1]A'aAeAiAYpAYyAnAAiASQA;A%A4A$AAJAA AMAAuAPAsA-AA ƂAuAeA0VAgFAh6AC~@@j@z@KC@ @,@@e@>A AA &AA kA A ARAAOA ADAn}A#AA'AB`At Aq A(A@Aۧ$A5-Av5A=ACEFALAQAVAW[A)`AdAiAnArsA zAˁA 4A AAoAؗAAAAΡAڡAAAAAA(Az5A|A̓AA^lA`xyAjAZA?WKA;A@@d@@ @| @ @7!@!@AT(AgA8AA& Ae A Ar A?| A A A^ AA}AWAA0A AkA^i AOABA4'A&/A*8A @ACIA`aPA3VA[AjaAgAlATtrA("xA}AGAcȆAA*A[AՌAA A* AA\¤AAIA AϣACAVAAAO AAA-}A,6nA>_AFPAUOAA@T@_@@@<5@m@ѥ@@:AoALAe( A A, AAAXvA]AfAoAxAف A׊ AՓAҜAХAbA`AwA Ax)A+2A:A-CABLASAsjZA`A}gA_nAtA{A&ҀAȦAŋAA*A`AAˣAA8A/AA#AeA;AA AAAMAGArAAqAZTrAcA6UA˧FA@#@[@i@@I@3@j*@QA=AA=0 A A"A=AAA=A?AA!AAA1uAS AtW AAYA}XA0A#A+A 4A-=AOiFAsAOA>`WA^A)+fAmAtA[|A~A8AEAAÐAhAEAAWȟAAJAE A`AAbAA!A@RAAԲAA|AqAerAY_APLArvArLhAY&ZABLA@1@Uf@w@@^@@WA+AA3 AyA*AAANWAmA܃A# A+!"ApAAACA_A8A A]AOR A PAMAK%A>I.AF7AD@ArBIA.@RAZA cA:bkAsA{AA3AKTAtA 7AtAIAFӜA\AAoAASAAxxA6_AEA,ApA-AAǥAAØAXAA'AzAalA _AXQA@@6@d@!@+@wA A%A#< AAiAApAB.A A[$A'A)A*%A6!ABANA['Ag@AsYAr A@ AAӎA5%A-A6A*?AGAxPA>0YAaAbjAsAN|A AARAdA|AAaLA8AA䃤AASAgA.ArA:AtA6ʩAAYA|!A=AAUAwAABsAL{AdnA"aASAj+@R{@:@!@ k@@mAaAUU AAAEAAn^!A=%A)A*,A0A2Alj-Aۑ(A#AAA-AAAU ADh AAAUo A'A/Afv6A=A%EA#MAUAh^A gAOoA!QxAyAd˄AA'AVAȓA;AծA!AAAzAAAxA_AFA-AAAᄠARߚA A@AAAvAJjAi]APA|@@g`@,@C@AAL AAAjA A$Ai%)AK-Ar1Ah5A9AEY;AbP5A~G/A>)A5#A,A#AA, A AAvAҨA-!A'A-A@3A9AAAIARA ZAcA1kAF tAZ|A6AIAljAEAÐAAAA=AA9A)A5A@ALAXPAdAoA{A AȖA/ːAd͊AτA}AqAeAYAZMAM@a@@5@@>XA" AAA 4A"#A8(AN~,Ae0AzZ5A9A6>ABA0DA=A"5AG.Al'A AA{Ab A<ACp AH)APAVA]T Ad %Aj)Aq.A5Aa=AGEANAmVAB^A gAyoAAwA`A#9A9†APKAfԍA|]AAoAAjAԛA?A9AjA}AAQA*AA=AYA|A8xAwlAPaAUA3JA@>@@?@@@AaA!AeA%Aܑ*AG/A3Aa8A7i=ABAFAKAjMADAŲAӃA/gAZAA#AܷA&UA|AѕA&6A{֔AvA&A{AWABAKAASA}A`rA۪gA\A>RAGA/q@H@@I@TgAS A>Aa*A$A,A1A,6A|;A\z@AwEAuJA$sOApTAUA2LAihCA,:A0A 'AByAx=A A3A A: AJU AoAAaAAA4A $A -A5A-=Ad=EAiAuA{AAoAhAyA8pAgA]AY=TA JA\AA@+/@EJ@^e@;@AMAU[Ah$Anv/A9Aa?A DA:{JASPAmUA"[A`A:A.A\#AA\ A+UAALAEACAA_;AA2AA$ A}`A&A-#A+Ay3A9@;ACAJAQAciYA:`A?hAoAwA~A4AAfWA)A܄AAtbA7AA*A3YA{AssAIjA|aAXAOAGAF>Ae@z@p@h@A+AA!)A&5A{@APFA%LAtQAPWA*]AycAMiA"oAfpAcASWAKA>AC=2A%A_A2 A|AAdA@B\@@ @yf@5@,@0hA AeALAA1&A1.Ae5A`=ADAbLASAd[AbAfjAqAhyA@{A|A}A~AA[AԀA|MAcƁA|A[tAa0lAdA[AmSAąKA[CAu0;A͡@@[p@W@uA AA_z%An1A^AdAkA2[rAHtAgAu[AB OABA96A|)A9gAA~PAAtgAA@@*@A@X@@ހ@VA?~ A$]A <A A&A-A-5AA.V6A@Q2@@c@\@AA4bA`.&A0Ag8A.@AHAPAXAI`AhAqA%1tA hA&]AաQAFA:A/Ag#ANAjAW A ACAA(0AMA8@2%@/9@pAIXA# AA1AAm$A^ *A0AA8Ao@A)HAOA[WAX_AgA/nAtOqAdrASrABsA2ctA!(uAuAvAvwA1pAuhAf`AXXAJPAAT4A)AAWrA(A3AɔA AjV A:A AxAWArA< AnAA'AdA.!A=&A>,A4Ay*NA3XA(cAdnActAFjAɉ`AVA,MA`SCA9A/A&ADANA:AA11A|A'A A_ A At A/AAA`A9ATAp"A(A0A8A={@A{rHAiPA`XA8X`AxOhAKjAjA"kAYokAkA lAgWlAlAlAeAw]A!1UALA*DA]A5AL'-A1&AW#A}!A6AlAAA:A_EAAuA"A]Az8A'AAA-Ab$A}x,A84AAALAN[A mjAsAglAeA^AZ}WAmPA\IANLBA;;A 5A2A/A},A)As&A#Ai!AACAyAAMA&AACWAӯAbAIAO$A,Ab4AH=AʚEA}MA1@VA^A[`A_A_A(_A^A\^A]A]A*]AwUAqLAj`DAc;A^*3AX*AP!AJYACAj@)@@H@ f@$@@^@$a@%0@p@XA yA_(A8AHAZXAiAsA{mA{OgAH#aAZATANA}rHAJFBAF=A=:AC37Aj)4A1A.A +A(A&$A~"Az AA{AA|A A|#A:AA; A(A1AJ9AzBAqJARA T[A\A(U\AX[A[AoZAYA,YAEXAtWA3PA|GA>AM6AW-A$AA{1AFz A"c@҈@B@@"@W@0@r@@@@@kA!A]3A|DAgOVAQgAsAHnAiAܸcAp^A(YASANAPIADAAA>AVz;A'[8A;5A2A.Ah+A (A|%Af"A_=AACAA%AmA͗Ax'A$$AF-A}5A*f>AFAOA.XAYAIXAWAVAwVA>UAAaTASA RAaJAAA*9A7W0Aփ'AsAA AJ6Ar@G|@z@ڇ@y@@ym@H@y$@}@!@ǔ@6ARA&AY7AGAQaXAvcA==^A|YASANA4ZIAr!DA>A9A5A"3A0AbZ.A7+A )A-'A$Ae"AK{A AAI*AAIAG AhAA AAfiAOA4'Au/A#7A>AFA|HAHAμGA\GAFAFAA~B6A).Ah&AAUA A?Ai-@/Z@hnd@m@ڄw@ @M@D@؎@}@@rQ@@m@u[ AAA''A16AoDANABaIACA>Ad.9A3Aa.A(A>#A3A>AAUcAAAvA֬A6?AA`Ac AȁA-AAe@@@@mA?pArAuAwAy#AZ|*A~1A:}3A3A*"4At4A4A5Al5A5A6A /Aʾ(A!AC~A^A= A|Ar@@j5C@ݔL@QU@S_@6h@r@r{@h@@o@@@o8@@ A8A>$A1A:AH4Aw.A])A#A6A0A_Az A AoZ A[AGlA2A~A AAA%AAN@@@ @K@;@]@q@@1@,@iA AAA2A}AA A!A}"Ay#Au$Ap%Ak&Ac!A;AAA$A)A[@e@oF@+@R4@=@"G@XVP@Y@b@`k@ %u@胁@ژ@D0@q@@2@}AoAAj%AMAA&AAeAAAnB@@@@@q@`@O@>@,@@n@"@=@a@B@@@`@@V @@@s@u@>c@@gAKA} Ac5 A AbA[AaAA`A9AA` AAWAP@'@@X2@@@@%@.@{7@bA@H J@0S@\@i@f@m@s԰@x@ @%@FAȭ A3AR ArA"@_@#@E@h@\@D8@J$@O@U@[@a@g@m@r@ @5@`@@5@Z@ @4@_ʚ@@WX@ @غ@l@Z@@@1@p@w@@x@L@JAMAQdATAkA3A~@@@@#=@L@t_@5X?;@\ @|@@x(@T1@0:@ C@O@pp@B@u"@S@2@@@́@@@ߩ@q@<8@m@Ʈ@̍@T@ゐ@\@5@:@V@s@@r@K@K@Hr@蘨@@*@ @i3@ Z@R@A@,@I@@@vף@-ª@笱@@@)6@9o@E@U@d@sS@@@5@_@@]c@@f@@?j@@?`]????@@t@P!@)*@5@NP@k@wp@-@幞@^@Q@@@*@ۖ@@o@;ۏ@[G@fm@7?T@I@m'W@ӳd@;@r@@@r@8@ @F@\@qF@n@;-@f}q@c@V@mH@5I@T@I^@\h@r@"#}@µ@و@%@@ڛ@9@ث@v@4@L@cP@x@<@X@@=@\@!@듳@2@zx@!?J?r?????p@2@@/@ԩD@|Y@Pn@@%@d@CΠ@a@r@փ@)}@Kc@nI@2/@S@?`?ٖ@m@d&@7@.1I@ŗZ@Yk@d}@A@ݔq@c@ ;V@#H@9:@O4-@d@z@@ @^e@ %@+@Z2@R9@@@TF@U@h@U z@@ @@%@C@a@C@Q@@@y@wܤ@O?@&@@/T?gu?Ϩ?kZ? ???o? ?w?@X_@'@,@u:@H@`/W@/e@s@ x@u]@B@M(@ @ZK?_#?w?ަ ?,>@????R @J@ي/@D@H@:@C-@@ @ E@6???vH???^??#?s?4?,?)@x@Ǟ+@o@@_?U@j@~@$؉@I@@J@I@@~@C@L@@>@@>r钿Fڿ`vV5`LYIB}sO5P.ϱ z邱'}Ae(~ҥ)]K9&e'o(ׇ46BVu۠™ x5Q7tCMZ%&/;>1'fD@f'88ǺY/'7ɰw\_3׭zQeD ꬫPZwԷG22J?UWl)ŭcܦs4޶wqtgu[NQZl d[ْNåC9lϧX-}dSJ*#J [; >MeC&Lrӎaײ>}:ayB#6mᐬس֮?blOiÿC 0'Xs>¶ܡx*cDN]9w$wJM1ӵ$vl0mjG&$aᝰ>έ9]iFɒ#zpg^ULZptLy}?2ifȆ`(P4C98I漟ӿ6i';c.|ʮ.,]ҋ&#xQ3&Gdi-z 2޼/7R㐧u=1j]j!Nj; wPphjaD*ZReK?[r7Ϝ h)457lOg19 %" 9?:+ 俛!E]oYsU7Lc-p|; ¦ya_K3B$TGpҨŬ]-6\G8"S Rl}{ wqJlff/`?[UOQ5J:[t0"ֵ{I!pGtn>c{-ed8EOCGKLPFUYZhWzU3SePN`LaJ Gv\QxȣƦm? /QPD;.{Gy<>¿7-=YMm ʭ7FdbW\ U@w.v澵VO6͚ )HzgV2 *[m}؈j^C=5f |#*292AH6K1JJfIHZH3G5GgFi\8zDh.8kk&cހմLFſ,j6 =~ ;^i ȋʢ͹pId5E%!q ̢O1CUVґEL}bTQ\%I-пr%+D @ S)2507 P8o9:;qPꢿd↿܈0Ivȑ2Z f;]<_ʝ?*vPl MBiYC3ymʧ͆x7q젿hbVZ UÿNu̿Oտ@޿1翍"|6z$ klC1E4*Yyl_7ٓê#suOc)j Y >˳UTNÿa :UfHe;Wv >͹qʰǧĞ•( 뽚Z1άC#$IkBI:'3FYƿK:D KDSzmZa9ipYxlmLjZ17ƿҿJ޿rfr-6;rJXqgquZ\|=AijcL]gljA_>`UL*Uǀh8I nλB|R)0kJpYҔ4Е if.GPA)m ׿X9$9:5z.?&۾S־Ѿ ˾a77KVui LyPE˿ݿ{𿗺 Ou0'^0O(Fڿu[F g[VK">n?%˾Aو ޿i|NE0p ʍMѸrkZ̴D}--ޞ?yS-lDnHvxt[ @7$@ ۿ椿2\0ݾEd >j9L;;Z=h=H>9>N> J>ab-wm9.C$i%Y{&fſͿRֿDro,(ԾXH==ˇ>? 6r=W/|Ҭ 5G_3+:>_>>n> ??h6? M?-9?e ?>غN><{2o+4Hh0,+)%m!7QYh)t>MD>>?X7?/(=bTvͲ$\N]xo&eɦJ-pX& F~StrݡfeZNw*CX7+Wޖ忙 X~%Q0c.Е>>?v"?+@C?c?H??y?E?Y?魏?l?8?S?>=椥ajr*kV>>>^/ ?,??ʆ#?N,?c5?1=?F?mO?<>ľyHֿ Jr=f֝FMǟMBVUrtc^RUBJ1*!3T+޿5@tT\j$DUʽ 32>>G*?RU?"?U??3?jX??l@A??ػ?MԞ?ρ?I??>k=V9>]>?4?uDa?(?T??????ߥ?5қ?Pő?j? W{?B=g?>긏D}|ؿoFs)tCaDL77(wbzDN96%{пWEfdB*<4WH<:y>>K*?!S?f}?z?@?r?,??[?)S?s?I?ě?c~?vE?rm ?Ǧ>=U#N>u>>?KQ?.?a%>K>?P?7?VR?l???f?Oa`?1??8>> X7*ɾ] *=W]>>?Z=?Jj?Y???x?l?B`?S?G?R;?/?sF?ž RYAgJ2kB|ݧg8ߎ jX Q|7A\̗տLe1ŇhIBfҜ#k|PN=l=L2=|*>^X> >E>~k>-=JAȏ+.Au?cP$,?b @žwwȽ|l:="A>V>ں>:>>W>Z>>>|y>G>7?_˿/Ѷy}ʡKIRFc& 䌘yUx\z@%S$j+dؿl덒_k^N41L־ݾB뾔1G<2GKyd} o :K2#|ӽ_Bi &75 ؾHP!5Ľ.z9=>Uh>b>O?1aZ^FBUkW*8! yL@4:ےy{7hxI* vڿr䦿Vȓ:=n [HG`Zl٘oqhu|~RJ^,Ŀ=̿ӿڿng2"4տF˿W૿i^e^@N. k{.bͼ=h? \.tB+;{+{>3(7vZjcyw<=ȑsvR2 1ܿy̬r}Ştlkd]o$ʳ Ŀ9qտkD濟i_ S%B#2!#a }wr]8նi߿͑Ŀ蹩⎿Rhd2i U? isI n#=;QעEpL9 , AI8$Ҍ蕵Zbt[7-V߿b`^貿\ZPWTR쳿R }fؿCӷ2c<)h5ƔAE(rCAu@v>.k0ÀqΤ)}YiXi0[~࿤忎xDbLGL'=SiŠ@ٿ_abc(d3e?fKgUh]E$og-/y/BsU*7-YTN2 =< LHhFl 4)VD`,Bwth ZrKH<<.աdlCӌ= isN!)B{  xNZ;F eD" 9_QNhz=L˗|lR<9\Ҍ|>cxeQҘ>*vې^5I=Wު}]=}&&{amh *C|]5Xr/d(V#IX;- XιaC~V.ИlGI(1k*# 4.wPrnh61OOh趀EԙdxDgܛѧs:? ֆψI֌ݐ[( =훆g?Bpb]إ^6|j0'S.|d +CBYZ=nm`SDF9,J (C|0<59>C@HMQj XRF;ˀ/#F s "U2M%gV0ޛ 66I\ Bߒ{|fOP9" %W'qKH쿃?9=n)l?kQa+A"WFhy\oPedDY8%O,D 9E/+q kF0Wc sbRRA71_ ĝ|v]R,/g@ SNcbjXs:M B6+z J tA] ܽt\Bމ~IijTN?2*&-տr޿ 3*Hvf3# Oڮ5蕨M f|] Xh<Ųs! a,oƁaRU"t=_?p,G Y-A?PV^[TJ?n[54+ [ D۱. ('{Da"_8J?]Zf;M)3Mg/˿п'yFheLzg mΦ"/)18R?7țFYz2 ֛{,ú_k[X#s'߿dlٽ_6?ΤsZ3.'V!.>M_YKPPFV=C3a*4 l% C{uqO'gґDX5TyZ@<Ąg¿jG[#KD;e5Z~>DФQ] g:73.k+޸(Q$ 7#%v]A%ڿU:=R_l?p˸owR"/r>ohiE!6/8ҜB?d~ϔ9PĺiGr{-ʝ!xA"tArAl/c:'|ֿNF=n1J>/?ݥ,$1>p!e.:OG5Qm H>5e, ]#1]%goyN/-yG߈ l!0KR?*N lпUTϿ3&lGF$esSr37..n/kpްQ1w;H y5r$+4W38ARſ9h >,?r-P_-tb Q,,@E8/^DMCH9 0)&aEa~49ހcF)c E/r*nkPL3hzm8n:/Gg堏ѡ ,?OگpuF}- cR϶; ,dDJqzQ>훠?-`#=H*5lAT9Jg?{5e*-ȑ ޳y{Nl#䍹]+]֒cqVZ<_"PA=17"1P hwόo gI[,ܶҸqȺdW Ľ0] vVOfٔi:s/?Ff;0w$@j42pcU'G69F+Veuǧ4D=tsm\cgE`./ZOA+3@%Uj  wÏC0EѶG"rG=%Xrsh^GC ycn?/ʌ ?oí?1/.v&1; 铗UDzܫmu`sSVFDOOǎ8;?sYBẌMc5dٰ(z*=ZI?~?Z=0 )2:8ی*zW"qn+k.Dseyӂ%j%j9?Rk郃|9}&ksМi{_&V,TT[&bhho8vp}!5gp"ݪ-Tk%A\g~O31R}fQt%!jꙿD8><&_?t?TBEA?(=0WR6o'w -KkBY|mRZg;c>k to|ak͞8Ҋ)Lށ|yvV)o3Mhqa{`w@dqihmlhpbt] yY6}7sҚl<q zK(.P28=UG nW"D޿ yӾ>`i?D?=W` \*3%-6UAkot+kxy|䘀Azs m@fx_ X:QUKKeTX\Lem3v~#Ƈߑ>~(Zj6VRFH=12}ݓVzl,bN5}=g?s?&S'+w![*3{Ez?{ b+&0:9OZBZH~8p([E]2djuq#n?j~f7c_9[yLX6SL`DF?8]2+I%u#4&EYVgxq+.ը|#\4q e۠b$bCj$,详u,|SQ'8t#j<.?9M"8,5d>8H^]N.>-w* $řlyq?jvbZc(SKCd zcV ֥,׼vi-ZNA.jP5˵x`?da:1̿ Co|>K v8a'v1;CDN `TC[3"V ^qhu?in^gR˼F;)g/%1 :) 8B͜ؽ.5Hao{~T#Z~g-tܷ:G`i~r{ڍ5Tť,Hw4'MH#񿰈=es#4#b,6t@!5JaSbZ&Ij8' 76 j3y\ y@\iYI3Q:٢*DWT :꿈iݿ"пÿVtοn!#F@^|ASF: &1ٶZ?ҥX" KM_zS-Z̆[sJ_5 oÿz^ EY% R(1;DEOYe`, <ĪbJЇ1@"Rs ed]T\[arɰH%W鿺QNX",27j0A[KކU_dhf:TpC1w ~,?ݗ'AhPm/9z! b~E<,3^mUTL;{ʿ d2XP]*ihu0#b;پUP(!r ZA6y [17WN_kxE%/8BALV¿_f|TZC1K 83h/fafYMN34 :fѿWà/v\ȾC*nR 9)[PxۏIڼ-Ӻ''^z͸ g J/qu 93|^'6~ՄW`77 ȿ\:l4#I+3_; DvL,T,YHr_8' v+F0gv`K6C o) =m˿맾?jxhyzϑ`"rFyVP?ۇ_l-S涯xɱ ܳ14ZaȽ/ Geoqp"I!h<+X"(/$x5/;98BCH>LHjPe_:}*hijk"l%m(n+o.p1b2 $o N`t -Xo4eZQPEl;J1&VkT* FNG޿ϿAN(ο9p1D !!I-<8:J^}s/_uQ[- Δi>mM/<|NQzo=PUcE q!9#$ %ht%t r)#^&X*jQ-J1"D4~=76;60>)"ty <>?ܿ @Ϳʿ9Կݿ0\,]<s %8ERelBRbrAH;4/.'!o /nVM>-_ ڛؿ䪗s-G.>9#}*06c>DKIQS SzнĦnYq_ NK*H:ECJBY?ix>?Ur@5A1ABC@9l1% )!R  !Uit߿Ϳ/qbpjF7rտ4~Z. &ҴC&۪V`#vQt`[M"1`Gw耽7>TW? !LXś !ET7/'  unWHֽ,415B#:g>CGKvP+PG?|7QG/&'ЛbjDd[ſrRIOiZNq8˾;s>ݿV;qCsn·ա#ij+%TaSs_\-E\-KRRV819z>;2+??`8uP i)dzI{f@ɜpl/FԒ*/Ar4a9Q>eAC1H MRQ\IA8090v'WIvԀ< ڿe$ `Jgs9:=>^D=M[K*IWہ]I%#Pa_ygb:Kp 4ӔϿ:IW.5~E=>6b??t<h 0 y,E _y&3@|R36/9uKC?\>(\Bdνȿ@:aIfˈrK4 | ggS?V+B)\¿IՋ#**tr C>p?? ?Q;y.l2 px#؜WGTSH;_>?>@m@ݩAN_BC6@M`7.%2~ 3 ^-Կ4w6g=W>A?T? P?D >B迖EH s] q"ڄwxXg*VDG3y"sFz` JսY>CE?mܚ??p އ ]\*xGP4iBkpFlE DWB5A?>f><ؖ;R7J.B%d:32* !B3"޿ýH@ƾ¼:>/4?a??ܕ?|?Em@F])m+p|T}%-}Dnb`RuDG6(! e\^־<#>l?#?P? k K +  $x&k^ Hp#Wm=mGx?PͺL5I!EK,Bu>";ȝ74o.=5%4 JVۿ4ɿY/lȬ em>?/?lq????^f?>|}x̿ 5]9x_CJTMI[=e2o'yd6~տoLJAGdE%>v??؝?D?xe /z|!Y'$-x0"IK 7fتYTfNH"C=7=2 ,%`E l쿿ٿk!ǿGK5:#>=>}qd? ?x?@??V*?E x= .!Sa1>MAC98g119)& !S%ʿ3%$i2>[1C??~? @$l ,Y&N-p5x: ++N`Ds2 cV[ӗSKD}Z<`4C,&%թ- j nVٿſ/Y u:R۽ˢ>!6>?6?^?)@]@@?A?>T5E񿸄`$B#U' :jXi~S8>?g?s ?E_? @`"\+W'!"+4b>dxD!47%V"m-@lbXN@E4;W1{'A "pؿ&Xſ۳Ik6H ڶ= ?~?͸? ?Gb@1@3%@"@{"?_?q>VootYB+SA#,WhվS=??*?F?@W @s;oc =)$/C;TFHxN8=&- '/tui]JRF :!."\! ٿsſ.鏝jb#>I?m?'?p @͚)@+bG@e<@@#??u:?2>4¾nnUIѿҿԿe3ֿ׿Jzٿۿ-ܿd޿VM@X3F>91?s?J?X @+@oA6@fÌ&1}<D75̢% xrFH+naTGr;F8.X!wܿCͿtfװH6+Aŏ>0?(І?G?g?N@SF7@4-@ @f?[?%?>>6ľr!fɿϿlտ/ۿ࿜濕x쿍;tÿ@qͽa >Y?b?g?@{9չw#5.%5U'i( \@)m0-}bUGF2:,Uay ڿQӿ˿PĿ鼿H{N `B~ >8??H?@ k@@b????e?(>ZD3}Fbѿ[ڿm.ϼoi TtYo>~P???_Ypؤ< lD9&s EO/ң.aVdHXh:k,osvz迦̿h)꺿(Ym.ﹿﰹ!r-rU$jھ(6'>L?*??Ə@_?ý??ۈ ?&L>Bi'.ynؿ忂 M T=, S ߿`|)mT0xٽn>}6?aڏ?6٥7{fa+d 33=x|up0EJ;0-} ȿ᫿L45gپ2ſe̿ӿN׌6CPq=M>T??h?B?$? >?أ>;AͼLѾJ鎖ǿX࿖58zؽ!*C2*ۿqKv9pTQ-> ?O(<=Qey+{e^r:k&Ճ_1)>/6[w*ǿ#NJ^z@Q c?tsÿѿ٧߿ oݿKˮ '#SzZ=>^R?q?W?. E?-'>׸=av0mcͿ4(3@"O0&]>0jL:uZDQP2B5N࿬3lV7c7x aО?%G}`(D`' qO3 2jf"&濚ǿ Ix[S%C?5?>P=o6N`E]^8ԿnOZJ3| '2>JBqVuF2@ lAVſNl}k_.A[u긇y%#<;[x \_r?5%Mh3;ʿiѩgQ(K6wqo#{Z̿=a ^򿌳ɿko@n7ᖾ<>V i=G侶26s+ԙ Fڿ aR$1?f?MZhNZ_Hp6%'Jp޿!gpY.6'Mc߮zˆ,z(Ə+\5t9]H>FB/60 YMϿ@8 Y U@b蝾~YMeu͇ѿM iR yMȿ! wؒ+FunT󻽭YQ 7E8l`JſyFyq-Ao08 &-ֿM鐿\}I L300#`PKzPKCarchive/versionFB?ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPKcarchive/data.pklPKzarchive/data/0PKўgUParchive/versionPK,-ҵPKPKҵvision-0.19.1/test/expect/ModelTester.test_raft_stereo_base_expect.pkl000066400000000000000000001013531466211133600262420ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqM tqQK(KKK@K@tq(M MK@Ktqccollections OrderedDict q)Rq tq Rq .PK>aEPKarchive/data/0FBZZZZZZZZZZZZZZZZZZZZZZZZZ8 = =-M==XЇ=a==(=a=bW=4\=7c=/] ԚN隼l蜼B#R;8 QKw^Cd <(y;2*<;w;@V^-gA@-歼pf_<<<wGݫhT[ܧr6^;38(kP[XzÝ;;!8<< _(_XU}yJR9RfQhVqή1дD_E<7>>z>\>D2Z>X>4X>?>v<>tF=>^=>.ޮ=b===G>&h>>lW>X>X0X>X>ab<>:;>Ӑ:><>>===֮= P>=>>rUX>1U>DV>X>n=> u:>R<>k =>k~=Q=*= =<T<<\Rz>Jo>>hX>tY>U>/WV>~>>=>)1:><>p֯=69==@u=<<<4< G>a>>M>>>S><$>y> >r>=p^=,X==8~YKkmDt<NEM8맾ŧم>>ڗ>n">>έ>>`k>tz>>D>6ӏ>$ַ=-=o=7м=hV<\>>f>>>*>x>Ӎ>M>CA>>{==c=t=<"<E>/>rƅ>>>>}(>m>>S>o>W=Э=m=>=<ī<}<4>>Ym>pg>r>k8>c >5> >~>>T\KLNIgȽ2ŽĽ)½]*<^-\ \m\{ zy6ymhf$g6f94y1K1<1gJǡH[I^IUkhh.i=.h~U$TzITRx冾݇tʾAɾ&aɾhɾ4ZWx}ON>EG>>n>Ȋ>^>C> >G>>` >>FlOL;ZLbi&ƽvĽC_ |Z\WX`~\Xnw.{yvs\ydXkfc gL.&1x.D0lFIIzEoItfg dtgvPS_QRg x+9UʾڋʾLȾXSʾ㻾eI>>>>>aH>>>j>b!>9>&!>ԦJN@EN~@ĽBĽN]:8  &Kt\DY|5]YzylwyxLfdVYg De1a/x1q/DIJDEIӛGiKflj`(etRJRQђS _g}ʾȾKʾȾ zb >9>T`>>>G>>rD>U>> >1!>`HF>d@8ýn>½*>Ѿ z[>ZYYyxvxRgygx]dje>1o0."/KHpGTaFFFheeJdfrTD5TEhQ(RCQ ,]>&^]>B^>5>V8>n5>k3> H4=Y3=<=;=L@@^@*t@킾ڂ ゾC.wgy;]nfᆹxQy諾ɄSuwP#p$.ugBvyȰԪ)ƪVtPΛn# 9_ -̭pj׾־W~־k׾涾"'9]>o_>/^>j8\>D5>M5>N6>!6>h6=`0=JG=#;=?@K?@4t6i򉞾Gy9S_jX1NPjҋ& d鎾 :43Smd<g˭vN׾׾DŽ־׾+EEQ^>#]>^>\>{4>6>4> 07>x6=zA=74=GA=A`a@!AV?V˂wnM̝!Va%DۿeƸcǸ举CF-ìמּjQ!Tc̎{.骾 ܪi ƚ(mhtBɭ~_ 孾׾`־t1׾Fq־f|B[>\>6]>r^>\>P8>&6>ǃ7>W7>3B=4C=:=D=48?_?T@?΅YApZJg#|3:eF긾<[D2n ȌՎp6:d0.;tk>"y@x(دF&־FվR׾ ־v0*H<>:<;>;>:;>a>b>)>><= =d3 =E...L..tvGRv-'uwKuU@Û1z"Dy`t̻W$糾a派| ͓*uwKIaµ~([1Օ 6HE"ϾϾϾ~Ͼ⳾ vN{:>L=>;>;>Dk><7>ZL>c>x== ="D =E.|/q.x.uvqtvr՛. Htl8ۻ纾س派t:夾#룾Uϐݑҷ鷾ʌꛖx93!J@Ͼ о>ξE[Ͼb\|벾B;>:>\<>:>>>[v>& >> =, = ==.N..-uMuuthța{u;>Ы;>:>2I>Kt>>>n== =P=U--.|f-tt/6uduPt`ԇ跛ܚIo@G#廻J2}CB6;lk/ʵ&/>s,/>}/> >Qi>) >t >5=<=@=p>=f:Fb|F ji$i`Uj 䚾 { Y<,䡾\1+݈Pn`q,no`kbv`e_[iji i)kajYrNs. qMqwӤѾhоIоh\ѾMþ6ľľI¾>/>y0>/>oS.>fq > > >n > >==vz:=;@F=WA=`+6ͷ jk1jui푚=*{`٥rÈA߇pWnBqoBqU_VbM^5d?Zj^jMhjj.hF6sT rrErpL{PzоѾI$оNоV¾^¾p¾¾/>.>/>.>> >L>n >z>;=C= ;=IZD=y7JAfƢjtjRtji'SÚMU8;^mYom;oasLo.p"`%'ba'a>vjjj~jᓾR"_L'q}rIprO hڥʦL Ѿ4оϾdHо¾þ4[¾Kþ:.>)/>>p/>[.>=>` >>I>$F=HD=&>@=E=0W~hh{jHi~najoN>d򇾘㈾7p(5q#qCoa=jaa/`jyijiŒ}!s sssa ,}ϾVϾ^Ѿ "Ͼþoþ,Iþþ>)>v>>=8w=9=_=`>>->c=K==Nd=<&<&c@5t`#JsE7sprph%PmN+RNtnHAlGFpKiUgk=kfl2l#*Klx.mn_l9󯾡ԯv',~aϾUϾξjϾ#R>>P>>h==r=>=qgȌK6({M vr5rrKs3OYONt:Olllkl#lmAk+Ll)Eɍ8lm)'om!,njXsL1ү6^0ᾘϾϾ Ͼ*Tоz>z>>>==zf==ԥ<<<ڱ<-Q,{Z>Q?O?o>甌9틾MI6ҠqqrmttcNPOPePkXlKm mPkSFlqllԍZ:ۍ9.om4nn^Ƃ鯾4 ʭҌо[о\о(о_$>h$>hi$>;A$>b_=v'===<<{=b=߽(དྷbགྷ 87278<~oA_rNe~}3}}qZhWXبYHcG1HLGQV{\U>VuVUrgrrsXpp>ppxnf:{vⱾ$ڸ'}ѾҾ:wҾ Ѿ#>%>Σ$>_#>|=?=A==3=lD#>$>#>'===O=<=<(=fུiSὒZr8 88^N7?fQ>:a:"Γ-"|Ɛ|\{y7}YU&X(W=GVEܪH G=V iURV{Ur rrV0rwopo"obeNUϱeJ羒WѾYѾ оddҾ#>nA$>AJ$>e#>83==I=6G==P=<.=W߽SNy}q} |z{XjWPVVGfG7FH*UIUhUUxqLq@rqqYpL`o$p+%>c%> <%>Z==== ;'j 2h XI%=,h<=8=f`n` _(`mix.yx wtKℾJLp%0'+j"q[#JpBp䊾ᎾҍC]!3 U8짾 dtᆭjj|ѾNҾJҾw:Ѿ$>&>b%>%>~====`EW@@rr ۷ >;=<:>`>``g_x*y2gwθ{_օG҅|ᆾ,o>eJ/2ڊr4썾Ey`+, !POʧ$5`b , ѾоZоMѾ?%>$>G%>}$>h=Vu=&=`=>б@UA x J 6b=p;e>;H_`uT_f_rxyy PyxgʅI+2g>O|h芾芾tI.rYȚɧ먾#QE|゚iѾcѾ@о1dҾ$>R%>^v%>$>N=h===ঙз&]ga3<S|->->->Y!>"> >z>(S=S=Z=Z=nJѽҽ2нϽ߹G HPHŜHrwuR2w(vyZەW8,ْ|f3Ò漌1&錾r/ɦP/1*2* qrq$/>.>y,>T >\ > !>} >V=Q=8 e=+T=ͽ$hӽͽAҽtF3:IFnGvAv:vvm6R8GFy;)h@ܓc ](ڌL.R吾q%r8qdrq͑I پNپؾپľ žž0ľ->";->\N.>,>J >!>>">Y=aZ=S=sb=*ҽԽҽн|HG.!HHlv/]uvu*Ox20Ε{9/J܌$^^ c싾,Ɛɐ;ސqrqrk}搾.ھ$ؾKپHؾDžžþ(Pƾ/,>h{->->->4#>;!>,!>!>, b=~G]=p7;>:];>,>;>c#>$>̵!>` >,ø<<<<ҝ X5]S܏RmQRb\`v],\[&rsrq<wwyEvѐvE>UVV4@UV8XkYZuv(guTuq(^U2VVj;Vw wMxɥyľþՈþmľW߮_:>n<> S;>1:>C!>!>1">">NP<"6:>d<>{:> >Y!>>">扷:;>Q;>:>m$>B#>1C">9">{<<<|< 8 7RξRtQ Q\\I\[rrq+qv_JwFvhEvl6WDV_VWX̿YZ([tyuM*wu;S.MvKW0WVvWކvh-w,xDvITþ¾ľOþQ6Ưn$M`B>յA>}A>A>*7>2]9>+,7>|6>R8=rC= `F=^D=Z! ͇&]zX]^T]v4vɆw xe||h|z}no$n0o <_>F>=b vc!!)W(lJ(݆(534@484(b*_*)ZLߌwϾξξ?Ͼ|9ˢc䱾m@>B>A>-A>פ8>7>ܲ8>3f7>'H===L=yH=f~_׳].x\HZ^y vWyU~v~}c Z|pUoKq6o5Y q!ô"" hW*(E((5M3A514v(3*t*RD*䋾Ja)GRtϾ\Ͼ.ξ0yξϰpGyDA>@>A>@>k7>'F8>~6>8>D=zK=>xA=]P=}yhw^\A^$^ww֗w'w| }8|}f\op o{Fp>r@= ?.]!!} c!S(0'|,(A(4{5D54F*+*)J*~⋾Y BOϾM;OξξmNrV򸰾x@>jA>ҧA>@>~9>S8>V8>8>ʭJ= J=h{J=ƖU=T>N]g]O^^Sw1ww(xW|z}K~k}*ps.p؞ppL?>K> r? !!I!3 '(y( p(4\4O4u5\*s**^*@E/ξf&ξϾ_ξ*@[K>A>n>›>|=h==$=IȽ(½ ǽǽg-e4e>e*K(KJJz? K$3djnD";#4#X"+<+Ƌ++f**(*)].)QBbAA|B<<0=<4X22u3$[̽2t2;̾˾6 ̾VZb>Oh>>x>jq=w=~\==`1ǽƽ8ý½eee(fNLJrLʐKg/k&Ҡ{"z"k9##4*)+~,%i*u(o)(/T)BABB@;S<;<g32[d41lJ,ś˾̾:;˾\̾,?A>>>>η==R=O=fǽ)Ƚ.^Xe_d@dcXJ|K)KKK$ _:m7"#"lW#zP++h*Q+,('V(?(CBcA/iBh B6=͝>>>1S=={==F]$7ý[e^e)Lee:OL)LÂK L8OQ"zt`Kle#p##_## y+6+t*n*(((#'\B#AIAQB#"=T<䤌GۊZዾngJt"wMF.j~ҟOQǜqR^T͘4پ ؾھJھU?305@Ἶ*L˽1r=r===8]'X HW(YDUOWSd_o%ԓIXߓ&؊ߊtꘉ&f֊6T嚾ϛe7$כߛZ}+voa.y39T1䗾—jFÖnھI-ھfپپ< ":e1"򀼾dև=du=F=(=P/(xi8YUhXNxV_^`\_r픾y UHf̊Cawj^Dv:xޛ ʛZ=OŞMIޒ웾OB\\ᗾ=XJU'ھؾ5پjپ]iAk4gl3X/=d=a"=,=`c9H3V2VfVU7ٛQ+X〕UekLP~`-VXuUء1ޖ"yʦad ķقPEи6—N,Iؾؾپ?پrC̼ʽ [4`7ڃ2텾嗇3҆QǁJ%K"܀j[݁!܀Ť fǃaܛNٚ휾 zg iޮf}i<,$<T ǝ眾h쇾m.Ɂ'1f MI/~ׁౄo%Ą њHSa<iʀijiPKM^PKCarchive/versionFB?ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK>aEarchive/data.pklPKM^archive/data/0PKўgUParchive/versionPK,-ҁPKPKҁvision-0.19.1/test/expect/ModelTester.test_raft_stereo_realtime_expect.pkl000066400000000000000000001013531466211133600271320ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqM tqQK(KKK@K@tq(M MK@Ktqccollections OrderedDict q)Rq tq Rq .PK>aEPKarchive/data/0FBZZZZZZZZZZZZZZZZZZZZZZZZZ'o32d@V^X_F]^`#_4S_p__ɟ*ޅ*,+tן]Ѿv)ѾjϾWоFѾ|FҾ9ѾѾJ"bO )ᄂx]BG(6UM )Z-򾾅"ǏCFǩ53 NA=s^`5_`^__^``kv}JEq,gB'о~Ѿ*ѾѾeо&~ҾѾ Ҿ&FC뾤xY?JlWD\:ni\UH thOn㩾[MF ?f2I.X0AʆX`~_NWa]U`_%_ҽ` 頾j1iV5ҾоlҾyоҾYѾоLӾb?i gy4쾛W;>Lɍ32v0󾊭axK~72j#).@'% ~ aQU.lI6O_l`P_Da` aax__꠾^Ogz5:ѾPӾW ѾѾNҾFԾѾоn쾳쾇 p3Z G((l2KjV}2O _n] A4}qGs/-`^`6`\aH_ _U_jaɠ+"N頾ѾѾW<ҾѾѾѾcXѾҾG,kN 1f/Q'Wy) |EVXN䩾 6Ũ$n,=IFk>Er1G~aQ_G`<^b J`F6`@`ҡZ{ڠ; 卢}š,mDӾH9Ѿ,TҾJоSԾҾ6ѾcӾjHsLrC] Lr2z^`@8+_!`x_da9O4^ wOˠX!Ѿ_Ѿ ҾҾxѾ оѾP|Ӿ?.쾒0dDLDFg; |L@Eq#(槾η  K־A9վ־Tվ~׾ؾ־־ȿȿX~ȿiǿ$ʿ ɿKȿ$ʿr2ĿĿÿ ÿIƿދĿc\ÿſR"謹gp%y?xUT,$U TuU[T/TCV־f ؾ< ׾]־$ھ.پkؾؾFHE;HH9JF³G-銿ezd.Kg 늿En*ʴ$߷sN?TǿvɿǿNSɿǿ9ʿuȿǿUÿſVÿVvĿc¿ſÿÿ'&êi]-6Z%RT$S'USHQSUS S׾b׾N%پ ۾׾վ־ؾ*IdH,&IKIII:KGvGOfHQˋ,h팿P挿 쭵K4~l,&FɿQɿ|ɿ7ɿdʿȿEȿjyȿĿ4ÿ/Ŀ6ÿ&ſ¿5ÿpÿCYBpP髿4dU TTSvU$qToATCSھ0lپlpؾf־uؾ^׾־վ&JjGG@E܋4&M4M=ǿzȿYɿۇʿ͌ȿƿȿʿ:¿ÿ2ĿZĿkĿ2¿Ŀ ſN3`pe=ӫLzRR/[RjUqTh6ScSET,IDG:JޚIJ&H"/I޲HཿڼaʖDgӼQQ$M,2]$v##)$0$A$$t#10611h1 2d 2r1|S* ))*8**R*"*G n $ = X ί  9n&G554 񻥿bHLLIPK8J6HMK]VI]kS"gS%ed@\@T TZp?lt##@%RJ2Uv&ڔо龿*W=qF hp%^#$l#O%3%.$R$2`01133x1C2 *)*Z)~h++,*6* h> | # l1h ,l qe#¾FC$㦿DI2K4JNJ'SJeKTL}KQMp̽x[Ͼf1I̷rW .7$$T-$$E %##k$6%011}f23/11uV2T)g0*&Y*&*˻+i))*1 :7 PJ P  nԤিi+SB]6xJJrIKKWJ-?I/J,K@H:὿]abȿ*=m-dK+s ]+w=\$*:$$.m%&$#8$~M%|1712 3201&2))* +^*)*?+  w '  W [ \㥿OVdA,rْ6,{^xW I R`  r !878*7D8Ւ77g7ddfd$dd3@dddE{xOx ,xlIx1x[x5x[xiiiHjiBhjjir~BBGBBcB-"CBB޿0߿ݿǪ߿_ݿ߿ ޿cݿHGؓŒ蔿6’mĸ[ bb 0 - o7738K?8š7v8ܟ8f 8,dsCdXedpd\e~e>xd3x%xx }xixxސx,xEAj_jLBBeB1B|Bcn߿!߿ݿ3ݿz߿2jݿBݿm߿|Ԓ#TْEf ^* c 9m B E f &877!8;7Q88uJ8d+dddكde׳d$dWxQxjxNxGhxlxx@xCji i_i9{jdii4j$3CeBBLBjC$BqBwCb߿ ߿]޿t޿޿xo޿n7撿^쓿H ӋF T r t78{}787?Z8887vKd'dFIdddӥedxd:1xxwbxxxxxii#j\j[i4wi~ii C)Ci C (CB%Bv4BdBkݿ]޿2޿8A-B޿;BݿݿݿRj`擿kjؓv# z [ T  87 58Y8P%8VM8.7p!8pd;ddmdȀdddңdxxxxWx1 yIxFxNjgj:iIiTjixip-j2CCF5B-\BBiBBB]߿#߿h>޿ݿ࿴߿@޿޿ǯnqZwh`ޒ} Y `X FI N 7  :8 887868774de e4adCdddd+x8xs}xE4xxxvxx0j(i8qi1i-[jjmij!BLBBBC9}C7CSBN޿Oݿ;ݿ-޿F߿_A@b޿޿eddnddbddeآxoxsxxxxqgx̋xHim{iiVjO(jiiBDjj{B1BzBB)BBB C#޿ܿt ޿W4߿s߿u޿o޿޿X@ï1.*ZI`"*] {;T+]NNNЁNOcNNN wv-wTvj/w&v*v\Cw҆ ;φɆ@{C{R>{d |$zO(|{zTȍT\SITSTToXTz>e?5O_)qx/zmHu+\o *nA(DoNNN~/OcyN6OUO֔Nvv[6wtw(vwxwvqqƆ/`{p|]{!{Y{zz@8|TMVTSSTSSnTd*m0-r'g+𿆄<hhݰn߫i]I޾\#NsNN "ONNNռN`v[vuvwv&wvvΆS`k ƴ{~{{z|{Z{*w{{TRTT̵SUf=T5SU5 wY(Ԫ*":{OvaJj ,PmN7NXN]NN2O9ONv>wv=vvj|w3w'{wwB݆QφԆ׆{j}{{|{Nz,{,{T!TZTTjTfS5SrT#-&cfH*A篿vQ& *!ˢALKQ_NN7OO}NNNNvv5włw1wvwv0>؆ ^{ |2{z{v{O{!|*TŽT S TT;DT;T?.TbAcS4<!ɾ}L￾ɰి<䰿~:ӯVR<P՝?dTnN=CN3 OONN7N"N&N|wawMwvvvwXvIچ:Ά${:z{{{D|{{!T3ThxTITTTT ETRES<&zFp5Fmy(_ڥ&*.1,avf86| OpNNpNNO%ON{wbbwv vv7wDw@w^GP׆?zz·{{{Q{zi:{FEThmTvT7T{TSStT3Q^4[+L'.Knܱ\ANm|+xHP bv%.(rO,NNNN'N;NNVw]wwvvbvwwԆÆ@z{<_{{ښ{{{#{#TSTnTTΝTŀTTB<XB￵p2ΰt7V¿J#2r."e..v.@.@[..uk.&gfdeyeewffQf"fX6;>*7ԑ@ґṑฑޑ&ǑÑvNNp[<qNdˏdc3dMcqdd'd \\/Pd|DfM¿¿ÿH¿L$.q.{!/'/.//~.e effmeEf f fHy_RfȅrZ걑Mk֑ӑ$4HYi>zLchdVddtcu[d dcxd4]8wf¿[ ¿Ga.t.ӿ.`8/`/..f.. 5fe8fYffpflf4Һd}}ffe?f< SMR:3 ܑT‘֑$ޑ`đɼwqw7y{yefdcdOdcd2d\ eV,'nW¿%>¿} ,A/L..[..=.b.~.&f#Mf,fLenfDXf,fVf7;=>&%3J/3/3@%ّґۑّő J-(~Abdžhu0"dk drgdMdUdde-Sd>CZ/λ|yɟ¿8c¿_sIÿSÿ./A.9.G.l//09/fGfeeUf~Yfff\e;BsTjoPՑՑ,ؑIU+R@U¸΅qD~c]dddcdAc!cud)^ВLQmZU¿xtJ/h!sͿ%ͿϿHϿқο οeο,9Ͽ55d6sk6Q56696>n9n}nznnj`n`nn|ۉܪ։ȉR{37cr,, 7H·q=*9!ggDVf,gg)gfrg$)yaTKi 4z^Ͽ WϿο Ͽο7%ο_5οnͿ>666N76S65 6(5q5FnanlnʎnBUn(xnrnTnȵ̉NljΉ9y͉ lj'6)K* 2i%Lf*f g+g+g^ggL3gěKnϿ%hϿ:mοϿοϿDѿbο6r\6 6V606:66\5n=nNnڭnJWn>qnn2hn׮ȉ]Nωg%X.,91#> RɇއA"~LQf"5gXg-mggfgfAgQ;dș^ %yϿHοϿEοS>ϿGHο,ϿwϿE6N65wI6+6ߴ55@6[nnYnMnÁnc>nPn{{nĉWE=lj*ՉvR׉6($?> 8S,!( \܇ gfvgfbgfg5g;ggO`+0z^xDVً< uP}TW~N&&&o&#&HP%^%J%mhAh@@AЎA?^@@dK%%%KA@E@b@.??J`@İ@JRXJcIJPHIwJJ/!<|;|6;o;::o;-;> H~rREûdNs[>eN)|7#0LhB +3&%&١%0&o%r%W%BA@A6=@ A5@z@?.J>qJ@cKBJ_JIʭIwI<;Á6;;;P3X7Ƶ~( nֺ򳺿̘HT#FFE1@rw"S5Dw+N%6R^@&?8&%$o&%X/%A%UA@r@ @AzX@??K*jJJBIK0JHWkIT<V;.;0;1aEarchive/data.pklPKarchive/data/0PKўgUParchive/versionPK,-ҁPKPKҁvision-0.19.1/test/expect/ModelTester.test_regnet_x_16gf_expect.pkl000066400000000000000000000016531466211133600253730ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ:=_BH=zO(<K==PRz+$l;DA={ӽ5l=ak>:<==@#*=I/b $Ҏn1=@>;> >F<.=?W=b~==yc=|h=_`-ҽ(=AB<$O>硽 _&@;`2^=RP6+=Z<@Z_;ݼ[{8=8]:=owvK=E=O4=ȤVk=ĩ=ܲ<*>i<@C;=j55"oɼgUGPKU>PK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPKU>archive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_regnet_x_3_2gf_expect.pkl000066400000000000000000000016531466211133600255300ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ =>T=~=;#ry{~s½.=7P ?BlN] >g轔ԽoA>dSo ==Ƚo qܼ"ؽcTw=$>4=սj=˽z== Qȼj=PKPK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPKarchive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_regnet_x_400mf_expect.pkl000066400000000000000000000016531466211133600254560ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ <5FѶ\ /̟;񆽤X*<Ǝp<qݔ;!T=Pg<D|b `:PK(`PK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPK(`archive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_regnet_x_8gf_expect.pkl000066400000000000000000000016531466211133600253140ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZiH P>Aܺ<@>$>On~P>P?z@i=> ocʽ?*>w>@3B>jz+>gixi?6)9,rϪZmK>s:>>A(;9>︼D ?VNHþ0? 4c>v_<= ;޾=PKtPK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPKtarchive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_regnet_y_128gf_expect.pkl000066400000000000000000000016531466211133600254600ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZc;J;?8p:"!;ɻ0\c?;; k}c<C4:4a%J:>PKP1PK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPKP1archive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_regnet_y_800mf_expect.pkl000066400000000000000000000016531466211133600254630ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZMv<:/;eC׻KE(<Y'cg:6 8 L;(ҺI˕e <õSKFJ3J(JҟhJz:0B&J8"?KQTKHbI~Zڸ˔A˼ɉJ KK &ktɡ="VK^: lJQ4K-K\nK.w$̾KkZuKɘ K"69|K˟DlJvision-0.19.1/test/expect/ModelTester.test_resnet18_expect.pkl000066400000000000000000000010371466211133600244020ustar00rootroot00000000000000 lF jP.M.}q(Xprotocol_versionqMX little_endianqX type_sizesq}q(XshortqKXintqKXlongqKuu.ctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX140600188431760qXcpuqK2NtqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .]qX140600188431760qa.2M:?@?ʋ>g>2Oi0ewOdA>9A?,>c ?>m?9P??c=d>>o=`9?Y>?67<>N"K+v>>]>n?v?ҹH7? >v,=G>$?֖>(7?co>| l|k?\nga>vision-0.19.1/test/expect/ModelTester.test_resnet18_quantized_expect.pkl000066400000000000000000000013531466211133600264670ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqKtqQKKKqKKqccollections OrderedDict q)Rq tq Rq .PKGȚPK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZb&?b&?=ҼPK1PK/archive/versionFB+ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPKGȚarchive/data.pklPK1archive/data/0PKўgUdarchive/versionPK,-PKPKvision-0.19.1/test/expect/ModelTester.test_resnet34_expect.pkl000066400000000000000000000010371466211133600244000ustar00rootroot00000000000000 lF jP.M.}q(Xprotocol_versionqMX little_endianqX type_sizesq}q(XshortqKXintqKXlongqKuu.ctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX140600192537520qXcpuqK2NtqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .]qX140600192537520qa.2?~GAZAb7bs+=XZB8.B C7CLAA! B C>B8.B C7C}BBBuYdBZCFB`C]AдA`TB BAAδBgcCCVBDECzCB B9B$%C,=BBjAC4CݳBW C C`C,=BBjAC4ClBBʗCC\AiޤBijA\BA&C TCB!B`CB|B ABݶBnT,BCB`CBOB C6BBS)B$Q"C#CB:BDnBB8BoB|BbBB}B;B(B~DBB6@09vBC*B7 B'B,B6aCB3 Cy B-B5BB/Bp C,bB%CBy"CATC9BBcB0CKCB4Bt4CP!CVB 1BU#C{CeXB'BⰖB:@jBS|B*MCтCCB/}CBbBbBuBNCg(B̤ACVB*CBkB~BsB|OB7fCBB6NB %BCyB|BCCkRCB#C_vBA C)C ~=C`CjBZByUBBMB8(B BWBsQBrBBCACC?1C TCJBtBy5B0BDBzBޕC2B)BLvBfBښB&rB6B,B BvBF9qB"CQCBJ,BR{B[mBۊBn6BCGC.vBIAhBjGBi#BL*BДBhs@uBuB?EFCBtB9!BBaBCБCBAABxBGmCvBOC CBBB CB=BBjA.CBP0@̸B[B#,C&AIBBrGCdͱAZ.B BӨ1CCBxNC;Cb] CB$CCnBtS=CqC`CB>C7C`CBFCByQC۵A B BH,AB\B6B3 ClC`C/BBmB<CsBU.CBBtBDIB2GBbB5BIB>eBEB|nBBBBAjBB!C&$C CN]BLCECYACBAB8BΈB 6B2BC Ch=C C`C@ByJB`CX/B8CPBTGMCBYF;C%B`CVBDBLHAXABMBBFB BݩC߈BB!7B8C4CҊBT Cz.CBCbeB/PCJBNejBZB&=CC/B)APBvBJ5B[̆B,*BٛBkB'dBqCB}BBB(CWUBPBjBX9CBZ$CC8C~C4B`C%DCVB@i@VBBdKBB΢BnCˋB CjBш#BޱBBPCBpB/BB.B rCC}BB|C #NC*Cp`B`C-C!?ClB߀TCJyGC jC@b.BXSC6B)AIB6B&xBCB{-B@CBsCqlB҂cB`۱BBPCiBBB!yCkBFBʍCC zBXCBk/CBC Cy.CVBiC;BNCO BPC6BNCNDAnBvB"CBxVCf"CNB"BCB1B,CCuBABzBRpC.B$CpBRVB@BpBXASiBLBkBA AeϰB]B>C&!Bž-CBo%C BP}pBӕ>aB-BB©ByB^CBJ7BkB[$Ce'Cʣ CEZ?C6TC*PBXiCjBQCgAB BBrCAl}B؟BCaWC"B+C-BCY~B.CB$B:C݇B;CS CHC%C9C%BBOByBuBA BBnjB;B3BB-CO#B)CXnCBBz Bw'CT(BB֫ CCB9=C*ĊB2-C4BBpCsB"7C(6 Cz7CI#C`C-C4C2C`CECRl*CKhYCYCF{BiCDBUCFAW~B]KB5TBکBBNB'C(@BB;C1JsB皩B_7B+' B2AXsB|sB#CRVBWl:CBCCB(C1-C8A[YB CiBmC6BHB|@CX~BΰB,ARBtB4BABKB CvBCBT'MCBߝ6C2 C`CDBACXBZ3LB>nASBp$B>BDϱBHB^CA+B.BBSCBBC7,C8BiB`,BPKȹhPK5ModelTester.test_retinanet_resnet50_fpn_expect/data/1FBZZZZZZZZZZZZZZZZZZZZZZZZZ(j(O(K(2(((''}'Y'V'='''''&&&&&&&&&&&&Y&V&J&G&D&1&.&.&(&"&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%~%~%~%~%~%~%{%{%{%x%x%x%x%v%v%s%s%p%p%p%n%n%n%n%k%k%k%k%k%h%h%h%h%h%f%f%f%f%c%c%c%c%c%a%a%a%a%^%^%^%^%^%^%^%^%^%[%[%Y%Y%Y%Y%Y%Y%Y%V%V%V%V%V%V%V%V%S%S%S%S%S%S%S%Q%Q%Q%Q%N%N%N%N%N%N%L%L%L%L%L%I%I%I%I%I%I%I%I%I%F%F%F%F%D%A%A%A%A%?%?%?%?%?%?%?%?%?%<%<%<%<%:%:%:%:%:%:%:%7%7%7%7%7%7%5%5%5%2%2%2%2%2%/%/%/%/%/%/%-%-%-%-%-%*%PKwMXXPK5ModelTester.test_retinanet_resnet50_fpn_expect/data/2FBZ                               PK=` ` PK6<ModelTester.test_retinanet_resnet50_fpn_expect/versionFB8ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPKiV|TT7ModelTester.test_retinanet_resnet50_fpn_expect/data.pklPKȹh5ModelTester.test_retinanet_resnet50_fpn_expect/data/0PKwMXX5ModelTester.test_retinanet_resnet50_fpn_expect/data/1PK=` ` 5ModelTester.test_retinanet_resnet50_fpn_expect/data/2PKўgU6!ModelTester.test_retinanet_resnet50_fpn_expect/versionPK,-R"PKD$PKR"vision-0.19.1/test/expect/ModelTester.test_retinanet_resnet50_fpn_v2_expect.pkl000066400000000000000000000223651466211133600277300ustar00rootroot00000000000000PK:(ModelTester.test_retinanet_resnet50_fpn_v2_expect/data.pklFB$ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ]q}q(Xboxesqctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqMtqQK8KKq K)BCĄ^A*CChB>9rgBr*C䆦BuBdB_BNCؖAuCɇBiXC BB|BVC??C.\B>?C6\A<|B1'BBBC0R'CYB 5C*3B`C BB3zBB_BhAGBfC(B0@B ǑB_C9A[؜BwBB'BA28CzB`C_tB@JB~B` B5qA(sC@DBdBBB8)C3C?RB[B`B.R"C}BXBa CB?BjBB C4AqfB)[B$B`Ct@COBҖBz0~BmB֩B̈A+BY?B;B4A))C3BKBC C`C1A'@BhCƋoBGACƷBB?9BAB]BstRB9ѱBƅBxbACNAB(,C BkBBpABBA;B;*C?BBCA0B8LBltBB]HCBw3CB#&C.B@CϒBbC8pBd]!C TB`A`C`C8[B:BBCBCλBCuQCaC] BKC ѯBBSAB}%B~AB]B?/BCB2(FC`C`C|BN?BzB_n]B BhdCB*B @B}A/BdOB0B:B|A0 C-{B(C1/BnpBhC CnzB,BBj C8bBdB@B ACPBFLB^BݹB2qA\Y3BtBR3B B=C^BCABCdnChXB^B'BP3C-BQC`CgBIA8 9CIXB B7B&CC~^AB` (B:? CƬB@iC\B1_RBB4(C#BI[BG~FB "CB*eBfHCkCw,C)BX C*VB26CB,C>C9#C*(BCCYC7BTCHBIk3ChnAڬB3rWCfB~zBc}zB@BNB|ӐBBBw C(BjC؀B)CB4yBxCB͞mB0BrABtIBRBB i@QB'CB`CoBE]BB^qB~CHoNBEC.dCVBBB4:BxB2BDCCD:B;)B/OCŖB FB"CB0CǃA2C_Bu_C TB#C+B%@CYBBfBvWB|N(Bv[EBxBIB:B6BcBFrBC\Bhd0CCWl(C'eECYCmOB7ACduBBBB1&C5BBjB3CB2C.C`CqU{BoGBHBH܁BhBWւBBC3B' C B+"C!AFٽB^B] C!7B oBCpNAjB$_CBnCjB)rBJClBƵBPp%CyBOBCqXYAh6AB̤JB} CdBMCC>B  Ca C(CfABF.B7C-B04C.BK+CLPBrBCZB`CXB(CԽ CTEC3BL׮Bf:CZ CmOChQC`C޷B6 Bd CpB2BȦBBB8BsB AXBZB?CD3BCB~{ A"gB BoCL3C`NB`C֩B̈A+BY?BkB`C BНB|B0BB3* C9 C#Cǡ*C*B`C8|BrA`C+x'C0CBChެBm#CB`#DC C`C%JtB9 Cw 9Cnj-CbAyBAO_B@uB*Ce ChB¥B+Cm"CI8C!ȠB/CChCC95C XYC~ArA@BBF9BBCB"C]AXJ%ACj-dB:}C`C/BޜACg,C`C Aس@ZB ~BzBJB`CoC@K AAZYBܛB߆B$dB0CcB+CiB|TCl0BA`CB:JB8CbBFdBmBBI CԆB_B,9B6;B CXBC+jBPK-}PK8ModelTester.test_retinanet_resnet50_fpn_v2_expect/data/1FBZZZZZZZZZZZZZZZZZZZZZZ *)))))h)^)Y)T)T)?)5).)))))(((((((((((((((((((((((((((((((((((}(s(s(n(n(l(f(f(b(b(](]([([([(U(U(Q(K(K(K(K(I(I(I(F(D(D(D(D(B(@(<(8(8(6(0(0(((((&($($("("( (((((((((((( ( ( ( ( ( (((((((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'z'z'z'z'r'r'r'o'o'k'k'k'k'k'h'h'd'd'd'`']']']'Y'Y'Y'V'V'V'V'V'R'O'O'O'O'K'K'K'K'H'H'H'H'H'D'9'9'6'6'6'2'2'2'2'2'2'/'/',',',',',','('%'%'%''''''''''''' ' ' ' ' ' ' ' '''''''''PK֬XXPK8BModelTester.test_retinanet_resnet50_fpn_v2_expect/data/2FB>ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ                                                          PK` ` PK99ModelTester.test_retinanet_resnet50_fpn_v2_expect/versionFB5ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPKiV|TT:ModelTester.test_retinanet_resnet50_fpn_v2_expect/data.pklPK-}8ModelTester.test_retinanet_resnet50_fpn_v2_expect/data/0PK֬XX8ModelTester.test_retinanet_resnet50_fpn_v2_expect/data/1PK` ` 8ModelTester.test_retinanet_resnet50_fpn_v2_expect/data/2PKўgU9!ModelTester.test_retinanet_resnet50_fpn_v2_expect/versionPK,-"PK$PK"vision-0.19.1/test/expect/ModelTester.test_s3d_expect.pkl000066400000000000000000000016531466211133600234260ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZhٺ UA*?>Y+>1=̏+?#>?*r=+=>H?ir;YI>k=bj}??VI7?F ?>+;)>ȭ?&?S>2E>??j>v"?>7=8x>>"=3=vision-0.19.1/test/expect/ModelTester.test_squeezenet1_1_expect.pkl000066400000000000000000000010371466211133600254220ustar00rootroot00000000000000 lF jP.M.}q(Xprotocol_versionqMX little_endianqX type_sizesq}q(XshortqKXintqKXlongqKuu.ctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX140598969272256qXcpuqK2NtqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .]qX140598969272256qa.2[s>\n;; :9o<ѳ<-:; T;d=b>.:>T >a'=;+=f:J<C=H=7}t=< =#s`=8 :==%::t<7ý=6;):F5<\M<=>=Y6>e;vision-0.19.1/test/expect/ModelTester.test_ssd300_vgg16_expect.pkl000066400000000000000000000154151466211133600247640ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZ]q}q(Xboxesqctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX140266537677936qXcpuqM tqQK$KKq K(Kq ccollections OrderedDict q )Rq tq RqXscoresqh((hhX140266537664944qhKtqQK KqK qh )RqtqRqXlabelsqh((hctorch LongStorage qX140266537535552qhKtqQK KqK qh )RqtqRqua.PKKiiPK archive/data/140266537535552FB ZZZZZZZZZ             !  ! - !"     !!"! -&      -" !! !!"&--!!- - ! --* --!-#* PK!/j@@PK6archive/data/140266537664944FB2ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ??????v?B?0?|?Z????_?#?U?5???N???(????1?A?d?T??@?x??"??;? ????4??8????(????P??.????E?X?#??g??&???<?7???x???? ???[{?K{?s?r?er?n?i?g?f?e?Z?U?qS?R? P?+L?C?>?):?8?46?0?%#???????n?/?d?~?~?-~?D~?~?x~?~?~?~?~?a~?~?~?~?I~?~?~?+~?~?~?4~?~?~~?z~?Oz~?#q~?j~?m`~?UZ~?Y~?oX~?CS~?@N~?^C~?;~?;~?};~?;~?.~?[-~?|,~?'~?k ~?~?r~?~?$~? ~? ~? ~?~?}?p}?+}?<}?}?I}?}?^}?}?}?s}?}?y}?}?}??}?0}?Q}?}?B}}?\}?Z}?Q}?2}?&}?}?|?b|?|?x|?~|?Z|?|?|?Q|?|?|?(|?q|?PKxr  PKarchive/data/140266537677936FBZZZZZZZZZZZZZZZZZZTAByCC9B$CCCCC!C}[CB:RRCCNSC|BCYC CC/CCCڲCBC*CC$fCCH7 CBC}CCEBCdX6CC,BC2BcECCGCkCLIC!CCSgACF$A.[CC ]C]\CCl^Ch)A_.CCCKAV-CC/CCDC6C*cBC<BCCh CȨB,sCHBcBMCC!NC2CںACB]B CGB+CtB~GCCCQrC-C_CAlC%CBCVCCZRLC.XCHVNC܀BCFBCCCCACT?B2{CBGCvC nCwC zBCBBh2C6CCCCx8ACBAx.CRC0CpCaBCbրBJCt&C:؋CCĉ3CvTCp5C9CдBYCCBgdCB^"CbCC Br+ANǺBC PC\C,QCvBCBBYCC [Cz+B]BRBCYB>BCΗB@nCCoCC ACBOCCьCM#C BPЀBaCxBCBZBCbCC5@CCWBC "BCdBCrtCCZ.CBoCBQRC͉sCGBLhC|CrjCBChrB1BxB CC4BLZZCBvC^C)yCd,C{cBCˣBBCdC]BqC`BƐCB[BBmCRtCEWCΝvCC2CC9\CZPBbBCg|CvB4BtKBWBC9BCu" BC1NHB9CCj:Cȅ(CC\*CACC !C#C?C5B!CCeCC&CCC,CCXC CwdCuC0NCrC/CcKC CBTBRACJB FCH^BCNB.CAxC,CGOCCC C1rBlC}~vC-CLACHB\3CP(=B`ynC/CC BCB_BCBCACn9BABCm B BKKBCpBC\ C㭍C2C C'CuCZ:CʞOCCvCljC BBBCC"CC:CJ\XCsBoCCf CCSwCC6DBC)B C0.AC2A}CtdACPCCIRC@Kt@ECClFCC|bBCBCCYCv3C?ӌCzDCPCUBCCdC-A^nCǽBDdC׀C}BC’C( CmBl)Cg+B CBCYOBxC)3=C| C2@JBvbCKBoCYgxCEC5)C#Bk<^CBwc}C۴C\ CBB3C۾CC*B BCC81{C(H@C|`C$UBh|cB.CْBqCCAsUB CwCC*4Cy vB@CCC^CCnL(CNvBCo>BCp3CCvOC4B/AGCJAH'CBBC+CmXBŃ/CB|SBA xKCF`,B$C+BG@ChB BxB'7BC>Y$BoiC|CBcCCؔC8ABxBmdC=h8'v>b?|L∘!~?HQ>Z>I>=>?.z>; c>m4 '޾X=佇w>kʾꩾp3>a0ڿ6|m7+)j>TE>i?>ဿPK5PK("ModelTester.test_swin3d_b_expect/versionFBZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|)ModelTester.test_swin3d_b_expect/data.pklPK5'*ModelTester.test_swin3d_b_expect/data/0PKўgU(XModelTester.test_swin3d_b_expect/versionPK,-PKPKvision-0.19.1/test/expect/ModelTester.test_swin3d_s_expect.pkl000066400000000000000000000020661466211133600244650ustar00rootroot00000000000000PK)9ModelTester.test_swin3d_s_expect/data.pklFB5ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK'ModelTester.test_swin3d_s_expect/data/0FB ZZZZZZZZZZZZZ-o"@r:?>-_y>@MBUX>~.K2>4ndo=B ?C?Ό]Wc(VeW>oT}Ĥ z{:3>ӯUF(V]?tV?+?1cc>]/?>?w]?=/="><=7N>6=>< a?PKnqPK("ModelTester.test_swin3d_s_expect/versionFBZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|)ModelTester.test_swin3d_s_expect/data.pklPKnq'*ModelTester.test_swin3d_s_expect/data/0PKўgU(XModelTester.test_swin3d_s_expect/versionPK,-PKPKvision-0.19.1/test/expect/ModelTester.test_swin3d_t_expect.pkl000066400000000000000000000020661466211133600244660ustar00rootroot00000000000000PK)9ModelTester.test_swin3d_t_expect/data.pklFB5ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK'ModelTester.test_swin3d_t_expect/data/0FB ZZZZZZZZZZZZZh=]kmD> >侌=8} ?aĊ kvbY!N>N?#,=X྆ާ>çM=7?h?噾tl]>:g?$z@>,}?@Ӈ?)?DP=jԿ>>v>d?3]T>'=n\ ?0@=z-$?&? תpξ?U=l|m>))~%?R>PHjz*;Z^7?>k>׽Z ?'?6b" -9Ѿ yM?`?k>t6|G4OR:h?ʑ?TK>Y?$PKPK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPKarchive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_swin_s_expect.pkl000066400000000000000000000016531466211133600242370ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZl ➾ʥIp>*><6ta.*:>;`OaSE?٘>k>]>~X>؍>5>?t>ݾ=8>jT=@$L>B\m>x0^>x>r?]Խp޽^󾒯>PKvёPK;archive/versionFB7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|archive/data.pklPKvёarchive/data/0PKўgUarchive/versionPK,-PKIPKvision-0.19.1/test/expect/ModelTester.test_swin_t_expect.pkl000066400000000000000000000016531466211133600242400ustar00rootroot00000000000000PKarchive/data.pklFBZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK*archive/data/0FB&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ@z\A>@;>R3]8ت>_2>l>n?Ǿ1?`F;?u>kǕ> ?/>i>>>:?rh ? ?>UmƐϾ>C|?9?d9CdϾ9X]ps|5 ?<þ#=F^.ZyvN>h@>ܦ>U> LQ*쾐Ǽ`$վ̿xg?b!$xR?! $?Pv?40)>>~كT:jJ>DRCmᾂ5?8 >di?&?&Hx(>|2?K?U?ؽ0(?p+?F"۾7B>%+?PKPJPK)!ModelTester.test_swin_v2_b_expect/versionFBZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|*ModelTester.test_swin_v2_b_expect/data.pklPKPJ(*ModelTester.test_swin_v2_b_expect/data/0PKўgU)XModelTester.test_swin_v2_b_expect/versionPK,-PKPKvision-0.19.1/test/expect/ModelTester.test_swin_v2_s_expect.pkl000066400000000000000000000020711466211133600246410ustar00rootroot00000000000000PK*8ModelTester.test_swin_v2_s_expect/data.pklFB4ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK(ModelTester.test_swin_v2_s_expect/data/0FB ZZZZZZZZZZZZ!'??9<#?=(U޾2?R>i98=*̽ꋃ?Z>&>?g>h+L=_?ŒQ׽3h?+F>n ? ?t=/D>҉>xN>L>to4=?|l=/>PK.PK)!ModelTester.test_swin_v2_s_expect/versionFBZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|*ModelTester.test_swin_v2_s_expect/data.pklPK.(*ModelTester.test_swin_v2_s_expect/data/0PKўgU)XModelTester.test_swin_v2_s_expect/versionPK,-PKPKvision-0.19.1/test/expect/ModelTester.test_swin_v2_t_expect.pkl000066400000000000000000000020711466211133600246420ustar00rootroot00000000000000PK*8ModelTester.test_swin_v2_t_expect/data.pklFB4ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX0qXcpuqK2tqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .PK8|PK(ModelTester.test_swin_v2_t_expect/data/0FB ZZZZZZZZZZZZW^H ]=XkP'=p>QؾF=0I<5?FJ5=L_(G$T@_D\ ? `(K?*ahQ=a?z>t/>|\=1P%? >,U#U-F&u Ly=dΎ!l꥾ Ah*i|>%@` >5?PK>y?PK)!ModelTester.test_swin_v2_t_expect/versionFBZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ3 PKўgUPK8|*ModelTester.test_swin_v2_t_expect/data.pklPK>y?(*ModelTester.test_swin_v2_t_expect/data/0PKўgU)XModelTester.test_swin_v2_t_expect/versionPK,-PKPKvision-0.19.1/test/expect/ModelTester.test_vgg11_bn_expect.pkl000066400000000000000000000010371466211133600243350ustar00rootroot00000000000000 lF jP.M.}q(Xprotocol_versionqMX little_endianqX type_sizesq}q(XshortqKXintqKXlongqKuu.ctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX140599112955952qXcpuqK2NtqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .]qX140599112955952qa.2xG>( Ⱥ=^=&hxK =k<(;%;hi`Ï:S<~3'=?<4ܼ oQ*fJ ;t(D,<9f<`8 iy==5R@I{<@5pؽ;C Y֖eGp <0oLR_ϊ,<1-;<;qbp==J2P<}=vision-0.19.1/test/expect/ModelTester.test_vgg11_expect.pkl000066400000000000000000000010371466211133600236560ustar00rootroot00000000000000 lF jP.M.}q(Xprotocol_versionqMX little_endianqX type_sizesq}q(XshortqKXintqKXlongqKuu.ctorch._utils _rebuild_tensor_v2 q((Xstorageqctorch FloatStorage qX140599121740288qXcpuqK2NtqQKKK2qK2Kqccollections OrderedDict q)Rq tq Rq .]qX140599121740288qa.2I>(Ⱥ?^=hM =gߣ@Z$:<__A@k?F@`SAЭw@H;@1>2*@eFAt@;# @U߰>:~_m?-m*AA(R^@'>kAASV^C rvision-0.19.1/test/optests_failures_dict.json000066400000000000000000000003771466211133600213730ustar00rootroot00000000000000{ "_description": "This is a dict containing failures for tests autogenerated by generate_opcheck_tests. For more details, please see https://docs.google.com/document/d/1Pj5HRZvdOq3xpFpbEjUZp2hBovhy7Wnxw14m6lF2154/edit", "_version": 1, "data": {} } vision-0.19.1/test/preprocess-bench.py000066400000000000000000000045421466211133600177140ustar00rootroot00000000000000import argparse import os from timeit import default_timer as timer import torch import torch.utils.data import torchvision import torchvision.datasets as datasets import torchvision.transforms as transforms from torch.utils.model_zoo import tqdm parser = argparse.ArgumentParser(description="PyTorch ImageNet Training") parser.add_argument("--data", metavar="PATH", required=True, help="path to dataset") parser.add_argument( "--nThreads", "-j", default=2, type=int, metavar="N", help="number of data loading threads (default: 2)" ) parser.add_argument( "--batchSize", "-b", default=256, type=int, metavar="N", help="mini-batch size (1 = pure stochastic) Default: 256" ) parser.add_argument("--accimage", action="store_true", help="use accimage") if __name__ == "__main__": args = parser.parse_args() if args.accimage: torchvision.set_image_backend("accimage") print(f"Using {torchvision.get_image_backend()}") # Data loading code transform = transforms.Compose( [ transforms.RandomSizedCrop(224), transforms.RandomHorizontalFlip(), transforms.PILToTensor(), transforms.ConvertImageDtype(torch.float), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]), ] ) traindir = os.path.join(args.data, "train") valdir = os.path.join(args.data, "val") train = datasets.ImageFolder(traindir, transform) val = datasets.ImageFolder(valdir, transform) train_loader = torch.utils.data.DataLoader( train, batch_size=args.batchSize, shuffle=True, num_workers=args.nThreads ) train_iter = iter(train_loader) start_time = timer() batch_count = 20 * args.nThreads with tqdm(total=batch_count) as pbar: for _ in tqdm(range(batch_count)): pbar.update(1) batch = next(train_iter) end_time = timer() print( "Performance: {dataset:.0f} minutes/dataset, {batch:.1f} ms/batch," " {image:.2f} ms/image {rate:.0f} images/sec".format( dataset=(end_time - start_time) * (float(len(train_loader)) / batch_count / 60.0), batch=(end_time - start_time) / float(batch_count) * 1.0e3, image=(end_time - start_time) / (batch_count * args.batchSize) * 1.0e3, rate=(batch_count * args.batchSize) / (end_time - start_time), ) ) vision-0.19.1/test/smoke_test.py000066400000000000000000000072401466211133600166250ustar00rootroot00000000000000"""Run smoke tests""" import sys from pathlib import Path import torch import torchvision from torchvision.io import decode_jpeg, read_file, read_image from torchvision.models import resnet50, ResNet50_Weights SCRIPT_DIR = Path(__file__).parent def smoke_test_torchvision() -> None: print( "Is torchvision usable?", all(x is not None for x in [torch.ops.image.decode_png, torch.ops.torchvision.roi_align]), ) def smoke_test_torchvision_read_decode() -> None: img_jpg = read_image(str(SCRIPT_DIR / "assets" / "encode_jpeg" / "grace_hopper_517x606.jpg")) if img_jpg.shape != (3, 606, 517): raise RuntimeError(f"Unexpected shape of img_jpg: {img_jpg.shape}") img_png = read_image(str(SCRIPT_DIR / "assets" / "interlaced_png" / "wizard_low.png")) if img_png.shape != (4, 471, 354): raise RuntimeError(f"Unexpected shape of img_png: {img_png.shape}") def smoke_test_torchvision_decode_jpeg(device: str = "cpu"): img_jpg_data = read_file(str(SCRIPT_DIR / "assets" / "encode_jpeg" / "grace_hopper_517x606.jpg")) img_jpg = decode_jpeg(img_jpg_data, device=device) if img_jpg.shape != (3, 606, 517): raise RuntimeError(f"Unexpected shape of img_jpg: {img_jpg.shape}") def smoke_test_compile() -> None: try: model = resnet50().cuda() model = torch.compile(model) x = torch.randn(1, 3, 224, 224, device="cuda") out = model(x) print(f"torch.compile model output: {out.shape}") except RuntimeError: if sys.platform == "win32": print("Successfully caught torch.compile RuntimeError on win") else: raise def smoke_test_torchvision_resnet50_classify(device: str = "cpu") -> None: img = read_image(str(SCRIPT_DIR / ".." / "gallery" / "assets" / "dog2.jpg")).to(device) # Step 1: Initialize model with the best available weights weights = ResNet50_Weights.DEFAULT model = resnet50(weights=weights, progress=False).to(device) model.eval() # Step 2: Initialize the inference transforms preprocess = weights.transforms(antialias=(device != "mps")) # antialias not supported on MPS # Step 3: Apply inference preprocessing transforms batch = preprocess(img).unsqueeze(0) # Step 4: Use the model and print the predicted category prediction = model(batch).squeeze(0).softmax(0) class_id = prediction.argmax().item() score = prediction[class_id].item() category_name = weights.meta["categories"][class_id] expected_category = "German shepherd" print(f"{category_name} ({device}): {100 * score:.1f}%") if category_name != expected_category: raise RuntimeError(f"Failed ResNet50 classify {category_name} Expected: {expected_category}") def main() -> None: print(f"torchvision: {torchvision.__version__}") print(f"torch.cuda.is_available: {torch.cuda.is_available()}") # Turn 1.11.0aHASH into 1.11 (major.minor only) version = ".".join(torchvision.__version__.split(".")[:2]) if version >= "0.16": print(f"{torch.ops.image._jpeg_version() = }") assert torch.ops.image._is_compiled_against_turbo() smoke_test_torchvision() smoke_test_torchvision_read_decode() smoke_test_torchvision_resnet50_classify() smoke_test_torchvision_decode_jpeg() if torch.cuda.is_available(): smoke_test_torchvision_decode_jpeg("cuda") smoke_test_torchvision_resnet50_classify("cuda") # TODO: remove once pytorch/pytorch#110436 is resolved if sys.version_info < (3, 12, 0): smoke_test_compile() if torch.backends.mps.is_available(): smoke_test_torchvision_resnet50_classify("mps") if __name__ == "__main__": main() vision-0.19.1/test/test_architecture_ops.py000066400000000000000000000023731466211133600210540ustar00rootroot00000000000000import unittest import pytest import torch from torchvision.models.maxvit import SwapAxes, WindowDepartition, WindowPartition class MaxvitTester(unittest.TestCase): def test_maxvit_window_partition(self): input_shape = (1, 3, 224, 224) partition_size = 7 n_partitions = input_shape[3] // partition_size x = torch.randn(input_shape) partition = WindowPartition() departition = WindowDepartition() x_hat = partition(x, partition_size) x_hat = departition(x_hat, partition_size, n_partitions, n_partitions) torch.testing.assert_close(x, x_hat) def test_maxvit_grid_partition(self): input_shape = (1, 3, 224, 224) partition_size = 7 n_partitions = input_shape[3] // partition_size x = torch.randn(input_shape) pre_swap = SwapAxes(-2, -3) post_swap = SwapAxes(-2, -3) partition = WindowPartition() departition = WindowDepartition() x_hat = partition(x, n_partitions) x_hat = pre_swap(x_hat) x_hat = post_swap(x_hat) x_hat = departition(x_hat, n_partitions, partition_size, partition_size) torch.testing.assert_close(x, x_hat) if __name__ == "__main__": pytest.main([__file__]) vision-0.19.1/test/test_backbone_utils.py000066400000000000000000000321031466211133600204670ustar00rootroot00000000000000import random from itertools import chain from typing import Mapping, Sequence import pytest import torch from common_utils import set_rng_seed from torchvision import models from torchvision.models._utils import IntermediateLayerGetter from torchvision.models.detection.backbone_utils import BackboneWithFPN, mobilenet_backbone, resnet_fpn_backbone from torchvision.models.feature_extraction import create_feature_extractor, get_graph_node_names @pytest.mark.parametrize("backbone_name", ("resnet18", "resnet50")) def test_resnet_fpn_backbone(backbone_name): x = torch.rand(1, 3, 300, 300, dtype=torch.float32, device="cpu") model = resnet_fpn_backbone(backbone_name=backbone_name, weights=None) assert isinstance(model, BackboneWithFPN) y = model(x) assert list(y.keys()) == ["0", "1", "2", "3", "pool"] with pytest.raises(ValueError, match=r"Trainable layers should be in the range"): resnet_fpn_backbone(backbone_name=backbone_name, weights=None, trainable_layers=6) with pytest.raises(ValueError, match=r"Each returned layer should be in the range"): resnet_fpn_backbone(backbone_name=backbone_name, weights=None, returned_layers=[0, 1, 2, 3]) with pytest.raises(ValueError, match=r"Each returned layer should be in the range"): resnet_fpn_backbone(backbone_name=backbone_name, weights=None, returned_layers=[2, 3, 4, 5]) @pytest.mark.parametrize("backbone_name", ("mobilenet_v2", "mobilenet_v3_large", "mobilenet_v3_small")) def test_mobilenet_backbone(backbone_name): with pytest.raises(ValueError, match=r"Trainable layers should be in the range"): mobilenet_backbone(backbone_name=backbone_name, weights=None, fpn=False, trainable_layers=-1) with pytest.raises(ValueError, match=r"Each returned layer should be in the range"): mobilenet_backbone(backbone_name=backbone_name, weights=None, fpn=True, returned_layers=[-1, 0, 1, 2]) with pytest.raises(ValueError, match=r"Each returned layer should be in the range"): mobilenet_backbone(backbone_name=backbone_name, weights=None, fpn=True, returned_layers=[3, 4, 5, 6]) model_fpn = mobilenet_backbone(backbone_name=backbone_name, weights=None, fpn=True) assert isinstance(model_fpn, BackboneWithFPN) model = mobilenet_backbone(backbone_name=backbone_name, weights=None, fpn=False) assert isinstance(model, torch.nn.Sequential) # Needed by TestFxFeatureExtraction.test_leaf_module_and_function def leaf_function(x): return int(x) # Needed by TestFXFeatureExtraction. Checking that node naming conventions # are respected. Particularly the index postfix of repeated node names class TestSubModule(torch.nn.Module): def __init__(self): super().__init__() self.relu = torch.nn.ReLU() def forward(self, x): x = x + 1 x = x + 1 x = self.relu(x) x = self.relu(x) return x class TestModule(torch.nn.Module): def __init__(self): super().__init__() self.submodule = TestSubModule() self.relu = torch.nn.ReLU() def forward(self, x): x = self.submodule(x) x = x + 1 x = x + 1 x = self.relu(x) x = self.relu(x) return x test_module_nodes = [ "x", "submodule.add", "submodule.add_1", "submodule.relu", "submodule.relu_1", "add", "add_1", "relu", "relu_1", ] class TestFxFeatureExtraction: inp = torch.rand(1, 3, 224, 224, dtype=torch.float32, device="cpu") model_defaults = {"num_classes": 1} leaf_modules = [] def _create_feature_extractor(self, *args, **kwargs): """ Apply leaf modules """ tracer_kwargs = {} if "tracer_kwargs" not in kwargs: tracer_kwargs = {"leaf_modules": self.leaf_modules} else: tracer_kwargs = kwargs.pop("tracer_kwargs") return create_feature_extractor(*args, **kwargs, tracer_kwargs=tracer_kwargs, suppress_diff_warning=True) def _get_return_nodes(self, model): set_rng_seed(0) exclude_nodes_filter = [ "getitem", "floordiv", "size", "chunk", "_assert", "eq", "dim", "getattr", ] train_nodes, eval_nodes = get_graph_node_names( model, tracer_kwargs={"leaf_modules": self.leaf_modules}, suppress_diff_warning=True ) # Get rid of any nodes that don't return tensors as they cause issues # when testing backward pass. train_nodes = [n for n in train_nodes if not any(x in n for x in exclude_nodes_filter)] eval_nodes = [n for n in eval_nodes if not any(x in n for x in exclude_nodes_filter)] return random.sample(train_nodes, 10), random.sample(eval_nodes, 10) @pytest.mark.parametrize("model_name", models.list_models(models)) def test_build_fx_feature_extractor(self, model_name): set_rng_seed(0) model = models.get_model(model_name, **self.model_defaults).eval() train_return_nodes, eval_return_nodes = self._get_return_nodes(model) # Check that it works with both a list and dict for return nodes self._create_feature_extractor( model, train_return_nodes={v: v for v in train_return_nodes}, eval_return_nodes=eval_return_nodes ) self._create_feature_extractor( model, train_return_nodes=train_return_nodes, eval_return_nodes=eval_return_nodes ) # Check must specify return nodes with pytest.raises(ValueError): self._create_feature_extractor(model) # Check return_nodes and train_return_nodes / eval_return nodes # mutual exclusivity with pytest.raises(ValueError): self._create_feature_extractor( model, return_nodes=train_return_nodes, train_return_nodes=train_return_nodes ) # Check train_return_nodes / eval_return nodes must both be specified with pytest.raises(ValueError): self._create_feature_extractor(model, train_return_nodes=train_return_nodes) # Check invalid node name raises ValueError with pytest.raises(ValueError): # First just double check that this node really doesn't exist if not any(n.startswith("l") or n.startswith("l.") for n in chain(train_return_nodes, eval_return_nodes)): self._create_feature_extractor(model, train_return_nodes=["l"], eval_return_nodes=["l"]) else: # otherwise skip this check raise ValueError def test_node_name_conventions(self): model = TestModule() train_nodes, _ = get_graph_node_names(model) assert all(a == b for a, b in zip(train_nodes, test_module_nodes)) @pytest.mark.parametrize("model_name", models.list_models(models)) def test_forward_backward(self, model_name): model = models.get_model(model_name, **self.model_defaults).train() train_return_nodes, eval_return_nodes = self._get_return_nodes(model) model = self._create_feature_extractor( model, train_return_nodes=train_return_nodes, eval_return_nodes=eval_return_nodes ) out = model(self.inp) out_agg = 0 for node_out in out.values(): if isinstance(node_out, Sequence): out_agg += sum(o.float().mean() for o in node_out if o is not None) elif isinstance(node_out, Mapping): out_agg += sum(o.float().mean() for o in node_out.values() if o is not None) else: # Assume that the only other alternative at this point is a Tensor out_agg += node_out.float().mean() out_agg.backward() def test_feature_extraction_methods_equivalence(self): model = models.resnet18(**self.model_defaults).eval() return_layers = {"layer1": "layer1", "layer2": "layer2", "layer3": "layer3", "layer4": "layer4"} ilg_model = IntermediateLayerGetter(model, return_layers).eval() fx_model = self._create_feature_extractor(model, return_layers) # Check that we have same parameters for (n1, p1), (n2, p2) in zip(ilg_model.named_parameters(), fx_model.named_parameters()): assert n1 == n2 assert p1.equal(p2) # And that outputs match with torch.no_grad(): ilg_out = ilg_model(self.inp) fgn_out = fx_model(self.inp) assert all(k1 == k2 for k1, k2 in zip(ilg_out.keys(), fgn_out.keys())) for k in ilg_out.keys(): assert ilg_out[k].equal(fgn_out[k]) @pytest.mark.parametrize("model_name", models.list_models(models)) def test_jit_forward_backward(self, model_name): set_rng_seed(0) model = models.get_model(model_name, **self.model_defaults).train() train_return_nodes, eval_return_nodes = self._get_return_nodes(model) model = self._create_feature_extractor( model, train_return_nodes=train_return_nodes, eval_return_nodes=eval_return_nodes ) model = torch.jit.script(model) fgn_out = model(self.inp) out_agg = 0 for node_out in fgn_out.values(): if isinstance(node_out, Sequence): out_agg += sum(o.float().mean() for o in node_out if o is not None) elif isinstance(node_out, Mapping): out_agg += sum(o.float().mean() for o in node_out.values() if o is not None) else: # Assume that the only other alternative at this point is a Tensor out_agg += node_out.float().mean() out_agg.backward() def test_train_eval(self): class TestModel(torch.nn.Module): def __init__(self): super().__init__() self.dropout = torch.nn.Dropout(p=1.0) def forward(self, x): x = x.float().mean() x = self.dropout(x) # dropout if self.training: x += 100 # add else: x *= 0 # mul x -= 0 # sub return x model = TestModel() train_return_nodes = ["dropout", "add", "sub"] eval_return_nodes = ["dropout", "mul", "sub"] def checks(model, mode): with torch.no_grad(): out = model(torch.ones(10, 10)) if mode == "train": # Check that dropout is respected assert out["dropout"].item() == 0 # Check that control flow dependent on training_mode is respected assert out["sub"].item() == 100 assert "add" in out assert "mul" not in out elif mode == "eval": # Check that dropout is respected assert out["dropout"].item() == 1 # Check that control flow dependent on training_mode is respected assert out["sub"].item() == 0 assert "mul" in out assert "add" not in out # Starting from train mode model.train() fx_model = self._create_feature_extractor( model, train_return_nodes=train_return_nodes, eval_return_nodes=eval_return_nodes ) # Check that the models stay in their original training state assert model.training assert fx_model.training # Check outputs checks(fx_model, "train") # Check outputs after switching to eval mode fx_model.eval() checks(fx_model, "eval") # Starting from eval mode model.eval() fx_model = self._create_feature_extractor( model, train_return_nodes=train_return_nodes, eval_return_nodes=eval_return_nodes ) # Check that the models stay in their original training state assert not model.training assert not fx_model.training # Check outputs checks(fx_model, "eval") # Check outputs after switching to train mode fx_model.train() checks(fx_model, "train") def test_leaf_module_and_function(self): class LeafModule(torch.nn.Module): def forward(self, x): # This would raise a TypeError if it were not in a leaf module int(x.shape[0]) return torch.nn.functional.relu(x + 4) class TestModule(torch.nn.Module): def __init__(self): super().__init__() self.conv = torch.nn.Conv2d(3, 1, 3) self.leaf_module = LeafModule() def forward(self, x): leaf_function(x.shape[0]) x = self.conv(x) return self.leaf_module(x) model = self._create_feature_extractor( TestModule(), return_nodes=["leaf_module"], tracer_kwargs={"leaf_modules": [LeafModule], "autowrap_functions": [leaf_function]}, ).train() # Check that LeafModule is not in the list of nodes assert "relu" not in [str(n) for n in model.graph.nodes] assert "leaf_module" in [str(n) for n in model.graph.nodes] # Check forward out = model(self.inp) # And backward out["leaf_module"].float().mean().backward() vision-0.19.1/test/test_datasets.py000066400000000000000000004226701466211133600173270ustar00rootroot00000000000000import bz2 import contextlib import csv import io import itertools import json import os import pathlib import pickle import random import re import shutil import string import unittest import xml.etree.ElementTree as ET import zipfile from typing import Callable, Tuple, Union import datasets_utils import numpy as np import PIL import pytest import torch import torch.nn.functional as F from common_utils import combinations_grid from torchvision import datasets from torchvision.transforms import v2 class STL10TestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.STL10 ADDITIONAL_CONFIGS = combinations_grid(split=("train", "test", "unlabeled", "train+unlabeled")) @staticmethod def _make_binary_file(num_elements, root, name): file_name = os.path.join(root, name) np.zeros(num_elements, dtype=np.uint8).tofile(file_name) @staticmethod def _make_image_file(num_images, root, name, num_channels=3, height=96, width=96): STL10TestCase._make_binary_file(num_images * num_channels * height * width, root, name) @staticmethod def _make_label_file(num_images, root, name): STL10TestCase._make_binary_file(num_images, root, name) @staticmethod def _make_class_names_file(root, name="class_names.txt"): with open(os.path.join(root, name), "w") as fh: for cname in ("airplane", "bird"): fh.write(f"{cname}\n") @staticmethod def _make_fold_indices_file(root): num_folds = 10 offset = 0 with open(os.path.join(root, "fold_indices.txt"), "w") as fh: for fold in range(num_folds): line = " ".join([str(idx) for idx in range(offset, offset + fold + 1)]) fh.write(f"{line}\n") offset += fold + 1 return tuple(range(1, num_folds + 1)) @staticmethod def _make_train_files(root, num_unlabeled_images=1): num_images_in_fold = STL10TestCase._make_fold_indices_file(root) num_train_images = sum(num_images_in_fold) STL10TestCase._make_image_file(num_train_images, root, "train_X.bin") STL10TestCase._make_label_file(num_train_images, root, "train_y.bin") STL10TestCase._make_image_file(1, root, "unlabeled_X.bin") return dict(train=num_train_images, unlabeled=num_unlabeled_images) @staticmethod def _make_test_files(root, num_images=2): STL10TestCase._make_image_file(num_images, root, "test_X.bin") STL10TestCase._make_label_file(num_images, root, "test_y.bin") return dict(test=num_images) def inject_fake_data(self, tmpdir, config): root_folder = os.path.join(tmpdir, "stl10_binary") os.mkdir(root_folder) num_images_in_split = self._make_train_files(root_folder) num_images_in_split.update(self._make_test_files(root_folder)) self._make_class_names_file(root_folder) return sum(num_images_in_split[part] for part in config["split"].split("+")) def test_folds(self): for fold in range(10): with self.create_dataset(split="train", folds=fold) as (dataset, _): assert len(dataset) == fold + 1 def test_unlabeled(self): with self.create_dataset(split="unlabeled") as (dataset, _): labels = [dataset[idx][1] for idx in range(len(dataset))] assert all(label == -1 for label in labels) def test_invalid_folds1(self): with pytest.raises(ValueError): with self.create_dataset(folds=10): pass def test_invalid_folds2(self): with pytest.raises(ValueError): with self.create_dataset(folds="0"): pass class Caltech101TestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.Caltech101 FEATURE_TYPES = (PIL.Image.Image, (int, np.ndarray, tuple)) ADDITIONAL_CONFIGS = combinations_grid(target_type=("category", "annotation", ["category", "annotation"])) REQUIRED_PACKAGES = ("scipy",) def inject_fake_data(self, tmpdir, config): root = pathlib.Path(tmpdir) / "caltech101" images = root / "101_ObjectCategories" annotations = root / "Annotations" categories = (("Faces", "Faces_2"), ("helicopter", "helicopter"), ("ying_yang", "ying_yang")) num_images_per_category = 2 for image_category, annotation_category in categories: datasets_utils.create_image_folder( root=images, name=image_category, file_name_fn=lambda idx: f"image_{idx + 1:04d}.jpg", num_examples=num_images_per_category, ) self._create_annotation_folder( root=annotations, name=annotation_category, file_name_fn=lambda idx: f"annotation_{idx + 1:04d}.mat", num_examples=num_images_per_category, ) # This is included in the original archive, but is removed by the dataset. Thus, an empty directory suffices. os.makedirs(images / "BACKGROUND_Google") return num_images_per_category * len(categories) def _create_annotation_folder(self, root, name, file_name_fn, num_examples): root = pathlib.Path(root) / name os.makedirs(root) for idx in range(num_examples): self._create_annotation_file(root, file_name_fn(idx)) def _create_annotation_file(self, root, name): mdict = dict(obj_contour=torch.rand((2, torch.randint(3, 6, size=())), dtype=torch.float64).numpy()) datasets_utils.lazy_importer.scipy.io.savemat(str(pathlib.Path(root) / name), mdict) def test_combined_targets(self): target_types = ["category", "annotation"] individual_targets = [] for target_type in target_types: with self.create_dataset(target_type=target_type) as (dataset, _): _, target = dataset[0] individual_targets.append(target) with self.create_dataset(target_type=target_types) as (dataset, _): _, combined_targets = dataset[0] actual = len(individual_targets) expected = len(combined_targets) assert ( actual == expected ), "The number of the returned combined targets does not match the the number targets if requested " f"individually: {actual} != {expected}", for target_type, combined_target, individual_target in zip(target_types, combined_targets, individual_targets): with self.subTest(target_type=target_type): actual = type(combined_target) expected = type(individual_target) assert ( actual is expected ), "Type of the combined target does not match the type of the corresponding individual target: " f"{actual} is not {expected}", def test_transforms_v2_wrapper_spawn(self): expected_size = (123, 321) with self.create_dataset(target_type="category", transform=v2.Resize(size=expected_size)) as (dataset, _): datasets_utils.check_transforms_v2_wrapper_spawn(dataset, expected_size=expected_size) class Caltech256TestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.Caltech256 def inject_fake_data(self, tmpdir, config): tmpdir = pathlib.Path(tmpdir) / "caltech256" / "256_ObjectCategories" categories = ((1, "ak47"), (2, "american-flag"), (3, "backpack")) num_images_per_category = 2 for idx, category in categories: datasets_utils.create_image_folder( tmpdir, name=f"{idx:03d}.{category}", file_name_fn=lambda image_idx: f"{idx:03d}_{image_idx + 1:04d}.jpg", num_examples=num_images_per_category, ) return num_images_per_category * len(categories) class WIDERFaceTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.WIDERFace FEATURE_TYPES = (PIL.Image.Image, (dict, type(None))) # test split returns None as target ADDITIONAL_CONFIGS = combinations_grid(split=("train", "val", "test")) def inject_fake_data(self, tmpdir, config): widerface_dir = pathlib.Path(tmpdir) / "widerface" annotations_dir = widerface_dir / "wider_face_split" os.makedirs(annotations_dir) split_to_idx = split_to_num_examples = { "train": 1, "val": 2, "test": 3, } # We need to create all folders regardless of the split in config for split in ("train", "val", "test"): split_idx = split_to_idx[split] num_examples = split_to_num_examples[split] datasets_utils.create_image_folder( root=tmpdir, name=widerface_dir / f"WIDER_{split}" / "images" / "0--Parade", file_name_fn=lambda image_idx: f"0_Parade_marchingband_1_{split_idx + image_idx}.jpg", num_examples=num_examples, ) annotation_file_name = { "train": annotations_dir / "wider_face_train_bbx_gt.txt", "val": annotations_dir / "wider_face_val_bbx_gt.txt", "test": annotations_dir / "wider_face_test_filelist.txt", }[split] annotation_content = { "train": "".join( f"0--Parade/0_Parade_marchingband_1_{split_idx + image_idx}.jpg\n1\n449 330 122 149 0 0 0 0 0 0\n" for image_idx in range(num_examples) ), "val": "".join( f"0--Parade/0_Parade_marchingband_1_{split_idx + image_idx}.jpg\n1\n501 160 285 443 0 0 0 0 0 0\n" for image_idx in range(num_examples) ), "test": "".join( f"0--Parade/0_Parade_marchingband_1_{split_idx + image_idx}.jpg\n" for image_idx in range(num_examples) ), }[split] with open(annotation_file_name, "w") as annotation_file: annotation_file.write(annotation_content) return split_to_num_examples[config["split"]] def test_transforms_v2_wrapper_spawn(self): expected_size = (123, 321) with self.create_dataset(transform=v2.Resize(size=expected_size)) as (dataset, _): datasets_utils.check_transforms_v2_wrapper_spawn(dataset, expected_size=expected_size) class CityScapesTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.Cityscapes TARGET_TYPES = ( "instance", "semantic", "polygon", "color", ) ADDITIONAL_CONFIGS = ( *combinations_grid(mode=("fine",), split=("train", "test", "val"), target_type=TARGET_TYPES), *combinations_grid( mode=("coarse",), split=("train", "train_extra", "val"), target_type=TARGET_TYPES, ), ) FEATURE_TYPES = (PIL.Image.Image, (dict, PIL.Image.Image)) def inject_fake_data(self, tmpdir, config): tmpdir = pathlib.Path(tmpdir) mode_to_splits = { "Coarse": ["train", "train_extra", "val"], "Fine": ["train", "test", "val"], } if config["split"] == "train": # just for coverage of the number of samples cities = ["bochum", "bremen"] else: cities = ["bochum"] polygon_target = { "imgHeight": 1024, "imgWidth": 2048, "objects": [ { "label": "sky", "polygon": [ [1241, 0], [1234, 156], [1478, 197], [1611, 172], [1606, 0], ], }, { "label": "road", "polygon": [ [0, 448], [1331, 274], [1473, 265], [2047, 605], [2047, 1023], [0, 1023], ], }, ], } for mode in ["Coarse", "Fine"]: gt_dir = tmpdir / f"gt{mode}" for split in mode_to_splits[mode]: for city in cities: def make_image(name, size=10): datasets_utils.create_image_folder( root=gt_dir / split, name=city, file_name_fn=lambda _: name, size=size, num_examples=1, ) make_image(f"{city}_000000_000000_gt{mode}_instanceIds.png") make_image(f"{city}_000000_000000_gt{mode}_labelIds.png") make_image(f"{city}_000000_000000_gt{mode}_color.png", size=(4, 10, 10)) polygon_target_name = gt_dir / split / city / f"{city}_000000_000000_gt{mode}_polygons.json" with open(polygon_target_name, "w") as outfile: json.dump(polygon_target, outfile) # Create leftImg8bit folder for split in ["test", "train_extra", "train", "val"]: for city in cities: datasets_utils.create_image_folder( root=tmpdir / "leftImg8bit" / split, name=city, file_name_fn=lambda _: f"{city}_000000_000000_leftImg8bit.png", num_examples=1, ) info = {"num_examples": len(cities)} if config["target_type"] == "polygon": info["expected_polygon_target"] = polygon_target return info def test_combined_targets(self): target_types = ["semantic", "polygon", "color"] with self.create_dataset(target_type=target_types) as (dataset, _): output = dataset[0] assert isinstance(output, tuple) assert len(output) == 2 assert isinstance(output[0], PIL.Image.Image) assert isinstance(output[1], tuple) assert len(output[1]) == 3 assert isinstance(output[1][0], PIL.Image.Image) # semantic assert isinstance(output[1][1], dict) # polygon assert isinstance(output[1][2], PIL.Image.Image) # color def test_feature_types_target_color(self): with self.create_dataset(target_type="color") as (dataset, _): color_img, color_target = dataset[0] assert isinstance(color_img, PIL.Image.Image) assert np.array(color_target).shape[2] == 4 def test_feature_types_target_polygon(self): with self.create_dataset(target_type="polygon") as (dataset, info): polygon_img, polygon_target = dataset[0] assert isinstance(polygon_img, PIL.Image.Image) (polygon_target, info["expected_polygon_target"]) def test_transforms_v2_wrapper_spawn(self): expected_size = (123, 321) for target_type in ["instance", "semantic", ["instance", "semantic"]]: with self.create_dataset(target_type=target_type, transform=v2.Resize(size=expected_size)) as (dataset, _): datasets_utils.check_transforms_v2_wrapper_spawn(dataset, expected_size=expected_size) class ImageNetTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.ImageNet REQUIRED_PACKAGES = ("scipy",) ADDITIONAL_CONFIGS = combinations_grid(split=("train", "val")) def inject_fake_data(self, tmpdir, config): tmpdir = pathlib.Path(tmpdir) wnid = "n01234567" if config["split"] == "train": num_examples = 3 datasets_utils.create_image_folder( root=tmpdir, name=tmpdir / "train" / wnid / wnid, file_name_fn=lambda image_idx: f"{wnid}_{image_idx}.JPEG", num_examples=num_examples, ) else: num_examples = 1 datasets_utils.create_image_folder( root=tmpdir, name=tmpdir / "val" / wnid, file_name_fn=lambda image_ifx: "ILSVRC2012_val_0000000{image_idx}.JPEG", num_examples=num_examples, ) wnid_to_classes = {wnid: [1]} torch.save((wnid_to_classes, None), tmpdir / "meta.bin") return num_examples def test_transforms_v2_wrapper_spawn(self): expected_size = (123, 321) with self.create_dataset(transform=v2.Resize(size=expected_size)) as (dataset, _): datasets_utils.check_transforms_v2_wrapper_spawn(dataset, expected_size=expected_size) class CIFAR10TestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.CIFAR10 ADDITIONAL_CONFIGS = combinations_grid(train=(True, False)) _VERSION_CONFIG = dict( base_folder="cifar-10-batches-py", train_files=tuple(f"data_batch_{idx}" for idx in range(1, 6)), test_files=("test_batch",), labels_key="labels", meta_file="batches.meta", num_categories=10, categories_key="label_names", ) def inject_fake_data(self, tmpdir, config): tmpdir = pathlib.Path(tmpdir) / self._VERSION_CONFIG["base_folder"] os.makedirs(tmpdir) num_images_per_file = 1 for name in itertools.chain(self._VERSION_CONFIG["train_files"], self._VERSION_CONFIG["test_files"]): self._create_batch_file(tmpdir, name, num_images_per_file) categories = self._create_meta_file(tmpdir) return dict( num_examples=num_images_per_file * len(self._VERSION_CONFIG["train_files"] if config["train"] else self._VERSION_CONFIG["test_files"]), categories=categories, ) def _create_batch_file(self, root, name, num_images): np_rng = np.random.RandomState(0) data = datasets_utils.create_image_or_video_tensor((num_images, 32 * 32 * 3)) labels = np_rng.randint(0, self._VERSION_CONFIG["num_categories"], size=num_images).tolist() self._create_binary_file(root, name, {"data": data, self._VERSION_CONFIG["labels_key"]: labels}) def _create_meta_file(self, root): categories = [ f"{idx:0{len(str(self._VERSION_CONFIG['num_categories'] - 1))}d}" for idx in range(self._VERSION_CONFIG["num_categories"]) ] self._create_binary_file( root, self._VERSION_CONFIG["meta_file"], {self._VERSION_CONFIG["categories_key"]: categories} ) return categories def _create_binary_file(self, root, name, content): with open(pathlib.Path(root) / name, "wb") as fh: pickle.dump(content, fh) def test_class_to_idx(self): with self.create_dataset() as (dataset, info): expected = {category: label for label, category in enumerate(info["categories"])} actual = dataset.class_to_idx assert actual == expected class CIFAR100(CIFAR10TestCase): DATASET_CLASS = datasets.CIFAR100 _VERSION_CONFIG = dict( base_folder="cifar-100-python", train_files=("train",), test_files=("test",), labels_key="fine_labels", meta_file="meta", num_categories=100, categories_key="fine_label_names", ) class CelebATestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.CelebA FEATURE_TYPES = (PIL.Image.Image, (torch.Tensor, int, tuple, type(None))) ADDITIONAL_CONFIGS = combinations_grid( split=("train", "valid", "test", "all"), target_type=("attr", "identity", "bbox", "landmarks", ["attr", "identity"]), ) _SPLIT_TO_IDX = dict(train=0, valid=1, test=2) def inject_fake_data(self, tmpdir, config): base_folder = pathlib.Path(tmpdir) / "celeba" os.makedirs(base_folder) num_images, num_images_per_split = self._create_split_txt(base_folder) datasets_utils.create_image_folder( base_folder, "img_align_celeba", lambda idx: f"{idx + 1:06d}.jpg", num_images ) attr_names = self._create_attr_txt(base_folder, num_images) self._create_identity_txt(base_folder, num_images) self._create_bbox_txt(base_folder, num_images) self._create_landmarks_txt(base_folder, num_images) return dict(num_examples=num_images_per_split[config["split"]], attr_names=attr_names) def _create_split_txt(self, root): num_images_per_split = dict(train=4, valid=3, test=2) data = [ [self._SPLIT_TO_IDX[split]] for split, num_images in num_images_per_split.items() for _ in range(num_images) ] self._create_txt(root, "list_eval_partition.txt", data) num_images_per_split["all"] = num_images = sum(num_images_per_split.values()) return num_images, num_images_per_split def _create_attr_txt(self, root, num_images): header = ("5_o_Clock_Shadow", "Young") data = torch.rand((num_images, len(header))).ge(0.5).int().mul(2).sub(1).tolist() self._create_txt(root, "list_attr_celeba.txt", data, header=header, add_num_examples=True) return header def _create_identity_txt(self, root, num_images): data = torch.randint(1, 4, size=(num_images, 1)).tolist() self._create_txt(root, "identity_CelebA.txt", data) def _create_bbox_txt(self, root, num_images): header = ("x_1", "y_1", "width", "height") data = torch.randint(10, size=(num_images, len(header))).tolist() self._create_txt( root, "list_bbox_celeba.txt", data, header=header, add_num_examples=True, add_image_id_to_header=True ) def _create_landmarks_txt(self, root, num_images): header = ("lefteye_x", "rightmouth_y") data = torch.randint(10, size=(num_images, len(header))).tolist() self._create_txt(root, "list_landmarks_align_celeba.txt", data, header=header, add_num_examples=True) def _create_txt(self, root, name, data, header=None, add_num_examples=False, add_image_id_to_header=False): with open(pathlib.Path(root) / name, "w") as fh: if add_num_examples: fh.write(f"{len(data)}\n") if header: if add_image_id_to_header: header = ("image_id", *header) fh.write(f"{' '.join(header)}\n") for idx, line in enumerate(data, 1): fh.write(f"{' '.join((f'{idx:06d}.jpg', *[str(value) for value in line]))}\n") def test_combined_targets(self): target_types = ["attr", "identity", "bbox", "landmarks"] individual_targets = [] for target_type in target_types: with self.create_dataset(target_type=target_type) as (dataset, _): _, target = dataset[0] individual_targets.append(target) with self.create_dataset(target_type=target_types) as (dataset, _): _, combined_targets = dataset[0] actual = len(individual_targets) expected = len(combined_targets) assert ( actual == expected ), "The number of the returned combined targets does not match the the number targets if requested " f"individually: {actual} != {expected}", for target_type, combined_target, individual_target in zip(target_types, combined_targets, individual_targets): with self.subTest(target_type=target_type): actual = type(combined_target) expected = type(individual_target) assert ( actual is expected ), "Type of the combined target does not match the type of the corresponding individual target: " f"{actual} is not {expected}", def test_no_target(self): with self.create_dataset(target_type=[]) as (dataset, _): _, target = dataset[0] assert target is None def test_attr_names(self): with self.create_dataset() as (dataset, info): assert tuple(dataset.attr_names) == info["attr_names"] def test_images_names_split(self): with self.create_dataset(split="all") as (dataset, _): all_imgs_names = set(dataset.filename) merged_imgs_names = set() for split in ["train", "valid", "test"]: with self.create_dataset(split=split) as (dataset, _): merged_imgs_names.update(dataset.filename) assert merged_imgs_names == all_imgs_names def test_transforms_v2_wrapper_spawn(self): expected_size = (123, 321) for target_type in ["identity", "bbox", ["identity", "bbox"]]: with self.create_dataset(target_type=target_type, transform=v2.Resize(size=expected_size)) as (dataset, _): datasets_utils.check_transforms_v2_wrapper_spawn(dataset, expected_size=expected_size) class VOCSegmentationTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.VOCSegmentation FEATURE_TYPES = (PIL.Image.Image, PIL.Image.Image) ADDITIONAL_CONFIGS = ( *combinations_grid(year=[f"20{year:02d}" for year in range(7, 13)], image_set=("train", "val", "trainval")), dict(year="2007", image_set="test"), ) def inject_fake_data(self, tmpdir, config): year, is_test_set = config["year"], config["image_set"] == "test" image_set = config["image_set"] base_dir = pathlib.Path(tmpdir) if year == "2011": base_dir /= "TrainVal" base_dir = base_dir / "VOCdevkit" / f"VOC{year}" os.makedirs(base_dir) num_images, num_images_per_image_set = self._create_image_set_files(base_dir, "ImageSets", is_test_set) datasets_utils.create_image_folder(base_dir, "JPEGImages", lambda idx: f"{idx:06d}.jpg", num_images) datasets_utils.create_image_folder(base_dir, "SegmentationClass", lambda idx: f"{idx:06d}.png", num_images) annotation = self._create_annotation_files(base_dir, "Annotations", num_images) return dict(num_examples=num_images_per_image_set[image_set], annotation=annotation) def _create_image_set_files(self, root, name, is_test_set): root = pathlib.Path(root) / name src = pathlib.Path(root) / "Main" os.makedirs(src, exist_ok=True) idcs = dict(train=(0, 1, 2), val=(3, 4), test=(5,)) idcs["trainval"] = (*idcs["train"], *idcs["val"]) for image_set in ("test",) if is_test_set else ("train", "val", "trainval"): self._create_image_set_file(src, image_set, idcs[image_set]) shutil.copytree(src, root / "Segmentation") num_images = max(itertools.chain(*idcs.values())) + 1 num_images_per_image_set = {image_set: len(idcs_) for image_set, idcs_ in idcs.items()} return num_images, num_images_per_image_set def _create_image_set_file(self, root, image_set, idcs): with open(pathlib.Path(root) / f"{image_set}.txt", "w") as fh: fh.writelines([f"{idx:06d}\n" for idx in idcs]) def _create_annotation_files(self, root, name, num_images): root = pathlib.Path(root) / name os.makedirs(root) for idx in range(num_images): annotation = self._create_annotation_file(root, f"{idx:06d}.xml") return annotation def _create_annotation_file(self, root, name): def add_child(parent, name, text=None): child = ET.SubElement(parent, name) child.text = text return child def add_name(obj, name="dog"): add_child(obj, "name", name) return name def add_bndbox(obj, bndbox=None): if bndbox is None: bndbox = {"xmin": "1", "xmax": "2", "ymin": "3", "ymax": "4"} obj = add_child(obj, "bndbox") for name, text in bndbox.items(): add_child(obj, name, text) return bndbox annotation = ET.Element("annotation") obj = add_child(annotation, "object") data = dict(name=add_name(obj), bndbox=add_bndbox(obj)) with open(pathlib.Path(root) / name, "wb") as fh: fh.write(ET.tostring(annotation)) return data def test_transforms_v2_wrapper_spawn(self): expected_size = (123, 321) with self.create_dataset(transform=v2.Resize(size=expected_size)) as (dataset, _): datasets_utils.check_transforms_v2_wrapper_spawn(dataset, expected_size=expected_size) class VOCDetectionTestCase(VOCSegmentationTestCase): DATASET_CLASS = datasets.VOCDetection FEATURE_TYPES = (PIL.Image.Image, dict) def test_annotations(self): with self.create_dataset() as (dataset, info): _, target = dataset[0] assert "annotation" in target annotation = target["annotation"] assert "object" in annotation objects = annotation["object"] assert len(objects) == 1 object = objects[0] assert object == info["annotation"] def test_transforms_v2_wrapper_spawn(self): expected_size = (123, 321) with self.create_dataset(transform=v2.Resize(size=expected_size)) as (dataset, _): datasets_utils.check_transforms_v2_wrapper_spawn(dataset, expected_size=expected_size) class CocoDetectionTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.CocoDetection FEATURE_TYPES = (PIL.Image.Image, list) REQUIRED_PACKAGES = ("pycocotools",) _IMAGE_FOLDER = "images" _ANNOTATIONS_FOLDER = "annotations" _ANNOTATIONS_FILE = "annotations.json" def dataset_args(self, tmpdir, config): tmpdir = pathlib.Path(tmpdir) root = tmpdir / self._IMAGE_FOLDER annotation_file = tmpdir / self._ANNOTATIONS_FOLDER / self._ANNOTATIONS_FILE return root, annotation_file def inject_fake_data(self, tmpdir, config): tmpdir = pathlib.Path(tmpdir) num_images = 3 num_annotations_per_image = 2 files = datasets_utils.create_image_folder( tmpdir, name=self._IMAGE_FOLDER, file_name_fn=lambda idx: f"{idx:012d}.jpg", num_examples=num_images ) file_names = [file.relative_to(tmpdir / self._IMAGE_FOLDER) for file in files] annotation_folder = tmpdir / self._ANNOTATIONS_FOLDER os.makedirs(annotation_folder) segmentation_kind = config.pop("segmentation_kind", "list") info = self._create_annotation_file( annotation_folder, self._ANNOTATIONS_FILE, file_names, num_annotations_per_image, segmentation_kind=segmentation_kind, ) info["num_examples"] = num_images return info def _create_annotation_file(self, root, name, file_names, num_annotations_per_image, segmentation_kind="list"): image_ids = [int(file_name.stem) for file_name in file_names] images = [dict(file_name=str(file_name), id=id) for file_name, id in zip(file_names, image_ids)] annotations, info = self._create_annotations(image_ids, num_annotations_per_image, segmentation_kind) self._create_json(root, name, dict(images=images, annotations=annotations)) return info def _create_annotations(self, image_ids, num_annotations_per_image, segmentation_kind="list"): annotations = [] annotion_id = 0 for image_id in itertools.islice(itertools.cycle(image_ids), len(image_ids) * num_annotations_per_image): segmentation = { "list": [torch.rand(8).tolist()], "rle": {"size": [10, 10], "counts": [1]}, "rle_encoded": {"size": [2400, 2400], "counts": "PQRQ2[1\\Y2f0gNVNRhMg2"}, "bad": 123, }[segmentation_kind] annotations.append( dict( image_id=image_id, id=annotion_id, bbox=torch.rand(4).tolist(), segmentation=segmentation, category_id=int(torch.randint(91, ())), area=float(torch.rand(1)), iscrowd=int(torch.randint(2, size=(1,))), ) ) annotion_id += 1 return annotations, dict() def _create_json(self, root, name, content): file = pathlib.Path(root) / name with open(file, "w") as fh: json.dump(content, fh) return file def test_transforms_v2_wrapper_spawn(self): expected_size = (123, 321) with self.create_dataset(transform=v2.Resize(size=expected_size)) as (dataset, _): datasets_utils.check_transforms_v2_wrapper_spawn(dataset, expected_size=expected_size) def test_slice_error(self): with self.create_dataset() as (dataset, _): with pytest.raises(ValueError, match="Index must be of type integer"): dataset[:2] def test_segmentation_kind(self): if isinstance(self, CocoCaptionsTestCase): return for segmentation_kind in ("list", "rle", "rle_encoded"): config = {"segmentation_kind": segmentation_kind} with self.create_dataset(config) as (dataset, _): dataset = datasets.wrap_dataset_for_transforms_v2(dataset, target_keys="all") list(dataset) config = {"segmentation_kind": "bad"} with self.create_dataset(config) as (dataset, _): dataset = datasets.wrap_dataset_for_transforms_v2(dataset, target_keys="all") with pytest.raises(ValueError, match="COCO segmentation expected to be a dict or a list"): list(dataset) class CocoCaptionsTestCase(CocoDetectionTestCase): DATASET_CLASS = datasets.CocoCaptions def _create_annotations(self, image_ids, num_annotations_per_image, segmentation_kind="list"): captions = [str(idx) for idx in range(num_annotations_per_image)] annotations = combinations_grid(image_id=image_ids, caption=captions) for id, annotation in enumerate(annotations): annotation["id"] = id return annotations, dict(captions=captions) def test_captions(self): with self.create_dataset() as (dataset, info): _, captions = dataset[0] assert tuple(captions) == tuple(info["captions"]) def test_transforms_v2_wrapper_spawn(self): # We need to define this method, because otherwise the test from the super class will # be run pytest.skip("CocoCaptions is currently not supported by the v2 wrapper.") class UCF101TestCase(datasets_utils.VideoDatasetTestCase): DATASET_CLASS = datasets.UCF101 ADDITIONAL_CONFIGS = combinations_grid(fold=(1, 2, 3), train=(True, False)) _VIDEO_FOLDER = "videos" _ANNOTATIONS_FOLDER = "annotations" def dataset_args(self, tmpdir, config): tmpdir = pathlib.Path(tmpdir) root = tmpdir / self._VIDEO_FOLDER annotation_path = tmpdir / self._ANNOTATIONS_FOLDER return root, annotation_path def inject_fake_data(self, tmpdir, config): tmpdir = pathlib.Path(tmpdir) video_folder = tmpdir / self._VIDEO_FOLDER os.makedirs(video_folder) video_files = self._create_videos(video_folder) annotations_folder = tmpdir / self._ANNOTATIONS_FOLDER os.makedirs(annotations_folder) num_examples = self._create_annotation_files(annotations_folder, video_files, config["fold"], config["train"]) return num_examples def _create_videos(self, root, num_examples_per_class=3): def file_name_fn(cls, idx, clips_per_group=2): return f"v_{cls}_g{(idx // clips_per_group) + 1:02d}_c{(idx % clips_per_group) + 1:02d}.avi" video_files = [ datasets_utils.create_video_folder(root, cls, lambda idx: file_name_fn(cls, idx), num_examples_per_class) for cls in ("ApplyEyeMakeup", "YoYo") ] return [path.relative_to(root) for path in itertools.chain(*video_files)] def _create_annotation_files(self, root, video_files, fold, train): current_videos = random.sample(video_files, random.randrange(1, len(video_files) - 1)) current_annotation = self._annotation_file_name(fold, train) self._create_annotation_file(root, current_annotation, current_videos) other_videos = set(video_files) - set(current_videos) other_annotations = [ self._annotation_file_name(fold, train) for fold, train in itertools.product((1, 2, 3), (True, False)) ] other_annotations.remove(current_annotation) for name in other_annotations: self._create_annotation_file(root, name, other_videos) return len(current_videos) def _annotation_file_name(self, fold, train): return f"{'train' if train else 'test'}list{fold:02d}.txt" def _create_annotation_file(self, root, name, video_files): with open(pathlib.Path(root) / name, "w") as fh: fh.writelines(f"{str(file).replace(os.sep, '/')}\n" for file in sorted(video_files)) class LSUNTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.LSUN REQUIRED_PACKAGES = ("lmdb",) ADDITIONAL_CONFIGS = combinations_grid(classes=("train", "test", "val", ["bedroom_train", "church_outdoor_train"])) _CATEGORIES = ( "bedroom", "bridge", "church_outdoor", "classroom", "conference_room", "dining_room", "kitchen", "living_room", "restaurant", "tower", ) def inject_fake_data(self, tmpdir, config): root = pathlib.Path(tmpdir) num_images = 0 for cls in self._parse_classes(config["classes"]): num_images += self._create_lmdb(root, cls) return num_images @contextlib.contextmanager def create_dataset(self, *args, **kwargs): with super().create_dataset(*args, **kwargs) as output: yield output # Currently datasets.LSUN caches the keys in the current directory rather than in the root directory. Thus, # this creates a number of _cache_* files in the current directory that will not be removed together # with the temporary directory for file in os.listdir(os.getcwd()): if file.startswith("_cache_"): try: os.remove(file) except FileNotFoundError: # When the same test is run in parallel (in fb internal tests), a thread may remove another # thread's file. We should be able to remove the try/except when # https://github.com/pytorch/vision/issues/825 is fixed. pass def _parse_classes(self, classes): if not isinstance(classes, str): return classes split = classes if split == "test": return [split] return [f"{category}_{split}" for category in self._CATEGORIES] def _create_lmdb(self, root, cls): lmdb = datasets_utils.lazy_importer.lmdb hexdigits_lowercase = string.digits + string.ascii_lowercase[:6] folder = f"{cls}_lmdb" num_images = torch.randint(1, 4, size=()).item() format = "png" files = datasets_utils.create_image_folder(root, folder, lambda idx: f"{idx}.{format}", num_images) with lmdb.open(str(root / folder)) as env, env.begin(write=True) as txn: for file in files: key = "".join(random.choice(hexdigits_lowercase) for _ in range(40)).encode() buffer = io.BytesIO() PIL.Image.open(file).save(buffer, format) buffer.seek(0) value = buffer.read() txn.put(key, value) os.remove(file) return num_images def test_not_found_or_corrupted(self): # LSUN does not raise built-in exception, but a custom one. It is expressive enough to not 'cast' it to # RuntimeError or FileNotFoundError that are normally checked by this test. with pytest.raises(datasets_utils.lazy_importer.lmdb.Error): super().test_not_found_or_corrupted() class KineticsTestCase(datasets_utils.VideoDatasetTestCase): DATASET_CLASS = datasets.Kinetics ADDITIONAL_CONFIGS = combinations_grid(split=("train", "val"), num_classes=("400", "600", "700")) def inject_fake_data(self, tmpdir, config): classes = ("Abseiling", "Zumba") num_videos_per_class = 2 tmpdir = pathlib.Path(tmpdir) / config["split"] digits = string.ascii_letters + string.digits + "-_" for cls in classes: datasets_utils.create_video_folder( tmpdir, cls, lambda _: f"{datasets_utils.create_random_string(11, digits)}.mp4", num_videos_per_class, ) return num_videos_per_class * len(classes) @pytest.mark.xfail(reason="FIXME") def test_transforms_v2_wrapper_spawn(self): expected_size = (123, 321) with self.create_dataset(output_format="TCHW", transform=v2.Resize(size=expected_size)) as (dataset, _): datasets_utils.check_transforms_v2_wrapper_spawn(dataset, expected_size=expected_size) class HMDB51TestCase(datasets_utils.VideoDatasetTestCase): DATASET_CLASS = datasets.HMDB51 ADDITIONAL_CONFIGS = combinations_grid(fold=(1, 2, 3), train=(True, False)) _VIDEO_FOLDER = "videos" _SPLITS_FOLDER = "splits" _CLASSES = ("brush_hair", "wave") def dataset_args(self, tmpdir, config): tmpdir = pathlib.Path(tmpdir) root = tmpdir / self._VIDEO_FOLDER annotation_path = tmpdir / self._SPLITS_FOLDER return root, annotation_path def inject_fake_data(self, tmpdir, config): tmpdir = pathlib.Path(tmpdir) video_folder = tmpdir / self._VIDEO_FOLDER os.makedirs(video_folder) video_files = self._create_videos(video_folder) splits_folder = tmpdir / self._SPLITS_FOLDER os.makedirs(splits_folder) num_examples = self._create_split_files(splits_folder, video_files, config["fold"], config["train"]) return num_examples def _create_videos(self, root, num_examples_per_class=3): def file_name_fn(cls, idx, clips_per_group=2): return f"{cls}_{(idx // clips_per_group) + 1:d}_{(idx % clips_per_group) + 1:d}.avi" return [ ( cls, datasets_utils.create_video_folder( root, cls, lambda idx: file_name_fn(cls, idx), num_examples_per_class, ), ) for cls in self._CLASSES ] def _create_split_files(self, root, video_files, fold, train): num_videos = num_train_videos = 0 for cls, videos in video_files: num_videos += len(videos) train_videos = set(random.sample(videos, random.randrange(1, len(videos) - 1))) num_train_videos += len(train_videos) with open(pathlib.Path(root) / f"{cls}_test_split{fold}.txt", "w") as fh: fh.writelines(f"{file.name} {1 if file in train_videos else 2}\n" for file in videos) return num_train_videos if train else (num_videos - num_train_videos) class OmniglotTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.Omniglot ADDITIONAL_CONFIGS = combinations_grid(background=(True, False)) def inject_fake_data(self, tmpdir, config): target_folder = ( pathlib.Path(tmpdir) / "omniglot-py" / f"images_{'background' if config['background'] else 'evaluation'}" ) os.makedirs(target_folder) num_images = 0 for name in ("Alphabet_of_the_Magi", "Tifinagh"): num_images += self._create_alphabet_folder(target_folder, name) return num_images def _create_alphabet_folder(self, root, name): num_images_total = 0 for idx in range(torch.randint(1, 4, size=()).item()): num_images = torch.randint(1, 4, size=()).item() num_images_total += num_images datasets_utils.create_image_folder( root / name, f"character{idx:02d}", lambda image_idx: f"{image_idx:02d}.png", num_images ) return num_images_total class SBUTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.SBU FEATURE_TYPES = (PIL.Image.Image, str) def inject_fake_data(self, tmpdir, config): num_images = 3 dataset_folder = pathlib.Path(tmpdir) / "dataset" images = datasets_utils.create_image_folder(tmpdir, "dataset", self._create_file_name, num_images) self._create_urls_txt(dataset_folder, images) self._create_captions_txt(dataset_folder, num_images) return num_images def _create_file_name(self, idx): part1 = datasets_utils.create_random_string(10, string.digits) part2 = datasets_utils.create_random_string(10, string.ascii_lowercase, string.digits[:6]) return f"{part1}_{part2}.jpg" def _create_urls_txt(self, root, images): with open(root / "SBU_captioned_photo_dataset_urls.txt", "w") as fh: for image in images: fh.write( f"http://static.flickr.com/{datasets_utils.create_random_string(4, string.digits)}/{image.name}\n" ) def _create_captions_txt(self, root, num_images): with open(root / "SBU_captioned_photo_dataset_captions.txt", "w") as fh: for _ in range(num_images): fh.write(f"{datasets_utils.create_random_string(10)}\n") class SEMEIONTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.SEMEION def inject_fake_data(self, tmpdir, config): num_images = 3 images = torch.rand(num_images, 256) labels = F.one_hot(torch.randint(10, size=(num_images,))) with open(pathlib.Path(tmpdir) / "semeion.data", "w") as fh: for image, one_hot_labels in zip(images, labels): image_columns = " ".join([f"{pixel.item():.4f}" for pixel in image]) labels_columns = " ".join([str(label.item()) for label in one_hot_labels]) fh.write(f"{image_columns} {labels_columns}\n") return num_images class USPSTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.USPS ADDITIONAL_CONFIGS = combinations_grid(train=(True, False)) def inject_fake_data(self, tmpdir, config): num_images = 2 if config["train"] else 1 images = torch.rand(num_images, 256) * 2 - 1 labels = torch.randint(1, 11, size=(num_images,)) with bz2.open(pathlib.Path(tmpdir) / f"usps{'.t' if not config['train'] else ''}.bz2", "w") as fh: for image, label in zip(images, labels): line = " ".join((str(label.item()), *[f"{idx}:{pixel:.6f}" for idx, pixel in enumerate(image, 1)])) fh.write(f"{line}\n".encode()) return num_images class SBDatasetTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.SBDataset FEATURE_TYPES = (PIL.Image.Image, (np.ndarray, PIL.Image.Image)) REQUIRED_PACKAGES = ("scipy.io", "scipy.sparse") ADDITIONAL_CONFIGS = combinations_grid( image_set=("train", "val", "train_noval"), mode=("boundaries", "segmentation") ) _NUM_CLASSES = 20 def inject_fake_data(self, tmpdir, config): num_images, num_images_per_image_set = self._create_split_files(tmpdir) sizes = self._create_target_folder(tmpdir, "cls", num_images) datasets_utils.create_image_folder( tmpdir, "img", lambda idx: f"{self._file_stem(idx)}.jpg", num_images, size=lambda idx: sizes[idx] ) return num_images_per_image_set[config["image_set"]] def _create_split_files(self, root): root = pathlib.Path(root) splits = dict(train=(0, 1, 2), train_noval=(0, 2), val=(3,)) for split, idcs in splits.items(): self._create_split_file(root, split, idcs) num_images = max(itertools.chain(*splits.values())) + 1 num_images_per_split = {split: len(idcs) for split, idcs in splits.items()} return num_images, num_images_per_split def _create_split_file(self, root, name, idcs): with open(root / f"{name}.txt", "w") as fh: fh.writelines(f"{self._file_stem(idx)}\n" for idx in idcs) def _create_target_folder(self, root, name, num_images): io = datasets_utils.lazy_importer.scipy.io target_folder = pathlib.Path(root) / name os.makedirs(target_folder) sizes = [torch.randint(1, 4, size=(2,)).tolist() for _ in range(num_images)] for idx, size in enumerate(sizes): content = dict( GTcls=dict(Boundaries=self._create_boundaries(size), Segmentation=self._create_segmentation(size)) ) io.savemat(target_folder / f"{self._file_stem(idx)}.mat", content) return sizes def _create_boundaries(self, size): sparse = datasets_utils.lazy_importer.scipy.sparse return [ [sparse.csc_matrix(torch.randint(0, 2, size=size, dtype=torch.uint8).numpy())] for _ in range(self._NUM_CLASSES) ] def _create_segmentation(self, size): return torch.randint(0, self._NUM_CLASSES + 1, size=size, dtype=torch.uint8).numpy() def _file_stem(self, idx): return f"2008_{idx:06d}" def test_transforms_v2_wrapper_spawn(self): expected_size = (123, 321) with self.create_dataset(mode="segmentation", transforms=v2.Resize(size=expected_size)) as (dataset, _): datasets_utils.check_transforms_v2_wrapper_spawn(dataset, expected_size=expected_size) class FakeDataTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.FakeData FEATURE_TYPES = (PIL.Image.Image, int) def dataset_args(self, tmpdir, config): return () def inject_fake_data(self, tmpdir, config): return config["size"] def test_not_found_or_corrupted(self): self.skipTest("The data is generated at creation and thus cannot be non-existent or corrupted.") class PhotoTourTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.PhotoTour # The PhotoTour dataset returns examples with different features with respect to the 'train' parameter. Thus, # we overwrite 'FEATURE_TYPES' with a dummy value to satisfy the initial checks of the base class. Furthermore, we # overwrite the 'test_feature_types()' method to select the correct feature types before the test is run. FEATURE_TYPES = () _TRAIN_FEATURE_TYPES = (torch.Tensor,) _TEST_FEATURE_TYPES = (torch.Tensor, torch.Tensor, torch.Tensor) combinations_grid(train=(True, False)) _NAME = "liberty" def dataset_args(self, tmpdir, config): return tmpdir, self._NAME def inject_fake_data(self, tmpdir, config): tmpdir = pathlib.Path(tmpdir) # In contrast to the original data, the fake images injected here comprise only a single patch. Thus, # num_images == num_patches. num_patches = 5 image_files = self._create_images(tmpdir, self._NAME, num_patches) point_ids, info_file = self._create_info_file(tmpdir / self._NAME, num_patches) num_matches, matches_file = self._create_matches_file(tmpdir / self._NAME, num_patches, point_ids) self._create_archive(tmpdir, self._NAME, *image_files, info_file, matches_file) return num_patches if config["train"] else num_matches def _create_images(self, root, name, num_images): # The images in the PhotoTour dataset comprises of multiple grayscale patches of 64 x 64 pixels. Thus, the # smallest fake image is 64 x 64 pixels and comprises a single patch. return datasets_utils.create_image_folder( root, name, lambda idx: f"patches{idx:04d}.bmp", num_images, size=(1, 64, 64) ) def _create_info_file(self, root, num_images): point_ids = torch.randint(num_images, size=(num_images,)).tolist() file = root / "info.txt" with open(file, "w") as fh: fh.writelines([f"{point_id} 0\n" for point_id in point_ids]) return point_ids, file def _create_matches_file(self, root, num_patches, point_ids): lines = [ f"{patch_id1} {point_ids[patch_id1]} 0 {patch_id2} {point_ids[patch_id2]} 0\n" for patch_id1, patch_id2 in itertools.combinations(range(num_patches), 2) ] file = root / "m50_100000_100000_0.txt" with open(file, "w") as fh: fh.writelines(lines) return len(lines), file def _create_archive(self, root, name, *files): archive = root / f"{name}.zip" with zipfile.ZipFile(archive, "w") as zip: for file in files: zip.write(file, arcname=file.relative_to(root)) return archive @datasets_utils.test_all_configs def test_feature_types(self, config): feature_types = self.FEATURE_TYPES self.FEATURE_TYPES = self._TRAIN_FEATURE_TYPES if config["train"] else self._TEST_FEATURE_TYPES try: super().test_feature_types.__wrapped__(self, config) finally: self.FEATURE_TYPES = feature_types class Flickr8kTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.Flickr8k FEATURE_TYPES = (PIL.Image.Image, list) _IMAGES_FOLDER = "images" _ANNOTATIONS_FILE = "captions.html" def dataset_args(self, tmpdir, config): tmpdir = pathlib.Path(tmpdir) root = tmpdir / self._IMAGES_FOLDER ann_file = tmpdir / self._ANNOTATIONS_FILE return str(root), str(ann_file) def inject_fake_data(self, tmpdir, config): num_images = 3 num_captions_per_image = 3 tmpdir = pathlib.Path(tmpdir) images = self._create_images(tmpdir, self._IMAGES_FOLDER, num_images) self._create_annotations_file(tmpdir, self._ANNOTATIONS_FILE, images, num_captions_per_image) return dict(num_examples=num_images, captions=self._create_captions(num_captions_per_image)) def _create_images(self, root, name, num_images): return datasets_utils.create_image_folder(root, name, self._image_file_name, num_images) def _image_file_name(self, idx): id = datasets_utils.create_random_string(10, string.digits) checksum = datasets_utils.create_random_string(10, string.digits, string.ascii_lowercase[:6]) size = datasets_utils.create_random_string(1, "qwcko") return f"{id}_{checksum}_{size}.jpg" def _create_annotations_file(self, root, name, images, num_captions_per_image): with open(root / name, "w") as fh: fh.write("") for image in (None, *images): self._add_image(fh, image, num_captions_per_image) fh.write("
    ") def _add_image(self, fh, image, num_captions_per_image): fh.write("") self._add_image_header(fh, image) fh.write("

    ") def _add_image_header(self, fh, image=None): if image: url = f"http://www.flickr.com/photos/user/{image.name.split('_')[0]}/" data = f'{url}' else: data = "Image Not Found" fh.write(f"{data}") def _add_image_captions(self, fh, num_captions_per_image): for caption in self._create_captions(num_captions_per_image): fh.write(f"

    >鯐f6m:K,` -##Cz6fϜ HzzCPkh!"hN[2\gP">B(M9 ?Nb =Mu@:nhv˄µP]<ցi626Uёvh +!}q~z0-]'yN.\$j6!N46.!_!E.l9A xrVn?ho;IGC(癿Ǹy4jJX*fϙ˦ӕ1m!Arj=(j-TiF]Si/c6Rl~ !.'(R!_ȰiJ)gF[/.}ۃ E!ԒYX۔ǘvDC̙s!DtN G#UC̜12F$. lLn:aS2L9chBZ&L=TTj*D[*DZǝ@{{'a:S|^o\ȩgʸu`d8K06˙gqBس[XI⋸⊧0nLIlJ^N!#AEHKQ. S!h$D(Gij 2 uZ#OFQ(ZCfS=,*xCos\؊z %LfVnx jRFۆP†ڬ~n<\/@,Ӑ@$yl#Rghgm K/{㸣bҤNf? iz,"df J =BlB7b(tvĖvkaCGٱbtp)J[P|\yVutj!x\G$F<1/)@pZri&_Dkۡ8nϯeog+hkZF7b3D$[P^ZgfTUelI PX+U4D 44Nb׍]miݏtwOy/~{AW_\r9by~1u<|ߦ tM#EH :rLLx7q'vƲ m]s]ñfnO,>.1)Y$SQ ч~Hx[&8 Pp*(QwbB8^M"(u?У\ڊ=( 0EefRɩh￟"#tu"}y IqPm  |-MNS;BJʧ`x80w}lM9S:>u~K-o}/q=hQZ&Qq֛Ξm,C>S'q GSfL&ʪ600\dh ] 47A|zn% H G6sdPTTr&fb*f1([y" d֡XMS*J_hBRAtz:x;!J$J<@!C<>z+dVP ?$Ԃ edNoK흓D-7f$JĈc;U hV?(*A(& T-NH(jbFq͋迗Y(jGϱz2~c J]$ 6o"&M%m1::J>jӌ626R (Y/MS{׬Tms&n@gLVsaǰazB>r-|//}QX8ۖCQ.fG@=s IJ}_eddehmiu[T4dzhH$_وi'Ny6H#Re=BK1؎M<Ԋ'=, -FL"qc5$&'xa F"w ]u9#&>Pԥ28TT*Y?_})q-Q"(H3&Jj!ZZk :p DU4Vuq]Jeو1t]0(x̑ro^s?B&<8>V>EkG' mN=!~2nz%/8>f泟03fcx$K@ j>HfR̖ёѴ4wjE(B_u%Sb[cx *BF :!FR < 40,16p$d6 l[KNzߣR.H l%hkmCQk+E H"T+}yb jSra(΁(mUhl6p$*BPu|+޻b`GuA0c|td]qqf"J̼y! ۶۶p@z۝dbJ1? qõ݈֬m ,gSd j6Q*PFE<1  Of՚GY;4/tSz?H"pe] x*VˤIQ R, nT[hi=la Wi uRlp7'vk:bHDSURHzBI[[+CCC ST]b.H0::B[[S&OeƬ0H$B4dc(A*FUUC!$ cC:3g=u2z(#[‡?NnAY@4DJI!U(U]vW)Sҿu?D ~ynPXʂG)LnXt"V=ʕk5{)ihN(>H(픉&)7v -v6u/vnJ'WF0~*!\{qP5w{e>(BBܚ^4~3cc0)pTp]E(D"a8UETnkK!3Lb.6l߻=x?iY~sşr̙=3kZt}-b8M[ihòj\*TBFPh; _C!71u\ wy3fw5Egy96J)wb@$CSur,T#rӈb;PF&\ah EQEdn4aYD r]47Iڂ뺴K. Ah|ltMac8^9\WPSf;\'QӨ}mSx98646|nj;bCC\udre8PXmjB kaj¬9s̚Ŷk X,M|vjؘ]>\V ]!>[`YU̙͂E4ǟ\I\$MWŢjlD+v 8^KU>}cS.w!yB@E:SϤZ)F$2illa9T~q%b#@I$AD֭Q. il/MOB*:0PU8m'QuF62u؅M\A oؼre3! 5Ɔbݓm0Bv8ϧ?1;d_Y4p4XU0ݍ:(kHU | C#ʥ 2P)U,UIْخN &E&Wtxt5঎E*J1wBHA&aͪ U:hlD$ I Jk0 smjD{PDcY\T?y7~_*V⑩(qL#E.+6> E ENCpC0&~P0tTMctt(WtT0L#y-誆ض)(eUV Kaz,O>:hJPWU/DH,Ŷ!3EL:d67GQ$S9oFt#FR 2ck1M-vX$ʪՄB !)@&WXK[s!s$bd2OP`1|;>鯐/_hcc>| l@UDHɵ1͸C&ICG O["p3Fy9crmBl߫Ѭh:/v^d *=2"wʼlg%FQu֭I4%Bǃd*m4cc ̐e ::T(WrhDT,xL*2a<-͓شa5ECGЋP 2ƺ1TrcfE<2"_@CSRb3ISJyKCQ >craUT]A0@ ֣=i.e‘pmGSAƦ&| d({vRJ<.oBUfD();Ҷ43xI9av'YHjue XMZ4.&uTb6 0SG0QP~s M̈́tk  kv^p4*L*(ĕ45&_Nl$]CCR[^B0<4BK x6VȬ' 8aUˢR(baU CH<^3 !޻Beltv~onO1# |pwOQ]s;; t5qiScJ8,uWrW߷SP nfՊ?aS(.ˬ" hrEQ$ ä˖:#a##bR.nfT*xCR$ O`[}":CX%0HvZ[W*D"A\! k*fRT&$\׫m6:UbBl,˗kP 2e*_~/v q/Ɠ -A,AE Ҿ .АAŮ #x+z5BQ V1TJ},9T?x;F ^QDm~H}K#0 EQZMӈF#Z!=wr9bEU}|LO~k4Ms]zsEQri>J>f4B4~8`ohieH<jsđ)OplLqÍ|>xQ 3>?p{憅A pt#ULe5JuSь42RShJRD{a>n00;]Q=R>l& 6CL$2.Qs**ff]!7t+3g%˟x6kKcc [Gp}U),P(\7\bR,Yv=MM-EGT"ݴ AJI6e8vƒ%X,EatӭX:89 ,;8D|ߣjYK6O>3k CC6poh,ШG૴w̡sdDBÆOaYU ]g'?f|[1| WϾrM—Mߏ"(J\hbDb>aU{MoDz%l.,{ʀ~Gf$Lޡi׿c#]]_jM !pߓvJD\&Hrs<* X.xrX.i3AyI<6!7\ ,IJ*Š+>XwM6}`Fw/T $yiat}ĢIºE$s/Gg#W>s3uT9`Өgm9t߻rn|;A*f, !%є0ɆYdF,;Tk.U{#"b D"8n2,Ooaq['A,A5˱(+httt܊≗eUAQjM1's9:::V*tR>xyDsy[Lׂᆮܔ|v[xx;}wY۱= dիhlj}<*g-鑒sTM㧗_MzVVO T,tM|J "E^Pc4LVfea_8̣]og> 鳥wh%۶1&ժC$!L9yv5l*B2⦛aɄ;Xf hPl[ǴO;g 0&hr}}9<$Q+빴DcZ 5Sw^˯︝%K%N ñxE膎 2 o}[yoB&D?24[wiWXQ&uuq}D*ɥh8~c%A J rMֽ|>9-N>_Κ5g{S>Fe1G7mGult;cpbͭ Ef'D|;u]P<:JFGGIfdɭ]/DZk܂@r.BU HRw>>|d/{RÏ>RB:kĎP'tUT#$'8pϕ/|]_srN1@̽+M(J(z?8"|L _ȑlXjU㊷W_ʛ^v8EVDdS,YBSLe.~8b(#C[))=c %OH-%srw_)QEmrAf,c{T-p8FTBsؕq{K_K6/;FLqٴq\qϧ^eBPUE_jc4Ml?Q*s8.#c$1p[wi_;q#vt0Nեu[uDsvm":W RBGG+W^~FGsslY s_qRx˓^:j[1k[{pm7{&2߫ Rg +`Bp]]bBZլ[T;4Ԛv46'x۹_SꞼSW|&z)s`5us/Xvmv;6q]}K=qX^cv'b/jK{']Cţ/#v߻>n Ɨ=xOo/{ owL='E"y6'ދ={}?ڒ Z1!׵%y=۞_x/xb^g%^c/$<+w Z^ U/e&]c/OKbnI zݣyI kSɎWRW t'^I%SjcOϊWR׽$ދ/ufHzZLewkB ^S=^L^Sx|؋{cNū׃ K žJiMBcR;{1xM{`O^`qxJLF'bj/{o9D/{~O{<%^E.f_I`+Lb)!}^ 2L#ڞŮaB{|P@lYU'3fLo`<&O$hD4Ek[n硪 o/xEvRJ\NFI(\x: fq gsC\i 㨃:9襤1Z}f: xeI_~v9HraS:pd - F5b(I4HBNƁG8" bWWjWXj%xWN^ & DQU_߷"uQx;b"@"CoWiO0`u>wƶڋ&kaD^KrߕYrd [D?'8QFK4ihj<|j!Y gZ򹷑N7^I 3 'x|@k+EQ) |濾ɚG%H|w-,]s?@@mO㻟#?q"GOJF$q *3C-ŋj PFb\oShjR[ĔQ7BǤ㉥gT9iNb0oيB(3?Ŷ,dܿ{zoy.N . 0Chm@O.6nNh_/*L|O%f`rSq91"3ڥn}̖ {-Wՙ !P$ǿs8ꈇihH!GfȢdl`x;S/ZU fikmZ.C.<]2l޴ d^|٢__S(hYIrA[TE7f-E:Lftc7i[X'ȌdGF(fTJb7G$/>'|2o~;,Dc)t@UM[ilnޞ Gvv/[bJع,~'=PDGp5HT*Ʀ"T;W]w2ߣ\[,MR B ꫚97/^wN8bBgG+S'J8Ud p_SN;6En̳]k .> LGgXqJa4OӤI]eF)7bXZ*Y"33h*\O+|)阣S0mt% dh47VnhD"1( vLf|D";wöE \p Kim;L6ͦUNkF_F6ߋm <*F(z8VGL;7 < ToXd.uYbm o,i"jhRdhD< > ,ZPQ$nٯ^!t? RJaF o n'̛; /#J 8Nx|,涏q;AP ]r=:1$Y~[\p] @!JR?wUBA@frQ@f@֟Q@PARH{Ͻx.w'Pdv LKϋc <űG'aUJ[fWK4f*g{>̑g>$`W/$uEQhmk9)Ә9s[natdR&_`;;`Lb]L~B YQEkFc@AAN暵={B\gJ v;?&?֯J)bO>HSs ],\W,BQxɧOOo?<g9ob. x@8Eԅ9d@2RZu7㕱ʻ X\ MQ\,+z8M(z_}F.tN8 UDakA;jH8D8Z#|ܤ"&p5%Bk̥kdCHk&AM?׾L1TcC$IFƈ'QPјU7s ѿ5k=+ͩgq08]EU n<+"(2JCLJML`Y[Y"(,9tᅮU'_ȡ b|.CSC_~_1B5[Zٸ~#ͭi))WzX#y6x>R+RA _s9xS.ٟ8P< CQfB,R?$>F ]P|M/@砅h4hJ q<¡0Y\*{ AI5ĸ>if-;F(5}+}D!_!o84Rz1#K 0${q֮]njضH.B{VɄ N ! Dd)Tخ? at۷|Pd2Aaa, S8^JiP7p,arMUR@:bnVǗ?7Z# M\_ӋǔE%780nR(Qx'xY,>Bxј{):vJkk *BH$S2!@!t*Hef BAV@ڵ,)ӉU%n7*sC3Pk%!:ۢSܼ  p|.e+8#.X"UT> s󍿢("UN2: ihGU kwl,A7¨vBP X uR-z^:@-J @ {BoWe 8M%&] Y?-gҤf*1MbMn ZEB:hjS T1LCqrtLߗ)"IwL>|b9?DSs35E*Hp_^ƾ_OtMD8F(=x4>f/Z+BC@G7tw>? s7: 9sakLR `S-+.?)=]xqQ(* I u0t T~rT4i3yLӎ/*jԟS[{.Ptݠo rϝRJ A)L0=gb/bwsٗ=I#d04,D2"ƚM=?Kck_Bb'0h<߯9a\=O`ַ}ZscEB: ˵H p{H&TYgnN 95jQaP[g,D"x@H$v hRJROnYC P#HAib?أm䩔32(gJ܉?S 3 ׵T(Ģaq> xgq][ȝ1{2z3֏$!"A H|"% vB:2hB]D ҧvT!.Ƞz [Sw9g0(%kZ{w{?Ts9¦5)Q$B29o}}RL;CNCVe ]'T+UJN4K13%ʸ5R .qu7r=M<u00RH@P}qSs'l:!im˶1&2׎chf[evc~Np>#,jBiz>tBCƒ6{?>2{&UGbh,XF9CD \[j9}&O݀j\{uO;YWDԆqJx/PD( a&pu X/PQoF<͵SCUT,Ḧ@O~](FVeV6l}fsDvΐ[QFPTea!u\ti MfMc{UZ/bUF"@no@xE=N!DAmḇy ^v$+7.g8ڇNsL)P*V9C 8y~p/RGobڍZG0'~7~4X|"ǶMb{(Dbm=+E2/芆\H4>i& ؎g^BDɚLQk$_zMzuDO׵eNO3jPsfL宻g}]3`Rlc%k)AN73ߋ5KJ2mds>__0grgy?m̞3Khhjɿy$$B]~sk!P5܈gwFZUͅ٨ma'J<[GC"Ԣ#{F ;vA9~k(E~`:?~틔H4aTό䌷G[56LS:A.TL+o>Y_q;'t"Ɔ!Rh U!U iRAJ)LRz. )qXQQH !ǭ}zm1'S4&LHDJTiœK*ťilI҄tm^uu9C(K\pBcY;-nWyl㺿]$䒋?CoOW],U-@ԓ c5XUkqz#m>r-~%rs͞1~b"IR?m%]H%{2^1K<[ !PU244,;>Ky' Q\#Nctu#+e }2oN#"Dz;f,̿3czw\[g=CEH8D#P,UQCnPX~Uon8^{@|?vgz~u\ѶYYY'Hj 6l"S{&q?[o3̼9sy"wu7t ?y}]9jNS<ܘR1{\~ïq'c;U챵$CSx|O? |TMf{Tu;Hx A* Z>Z"l" o;Z8"~7xJ-"3^MLtdZ؍B۟cʕtvc_|_ 8-%զ\YK5Z{WQO2@URbz2JlCk2ϝ5̘=)AqtZ}zQ>㝃v @*Ⱥns7S{|s={wD͟._et3>ٳƘ2r~}qEKhnl\s ghjiEs\̰ɡ/cEdK/䞕YI&DǮbBBUr-atuwS.Q+.~`f=ZLro,s=A!1\ ɀ?-(5ei궿>u7g8Bsk f(Jo!;$Dg|vؖ};9+Q4ޭSJyfV2@ul& Ռm+_t<օ{?oG>3FouFxP"JA'l#8c.F~~E@4$52#O._P,1iR;{x衇gto:tZ}<)犔 1 hEp+*FǕc̳AӵZfYζ0DR*0 .9 D "@UjNpC^]6 .}ϩ"_¨z1TaItrdB/S# GXL+Ӑ7^7`Zm>m:B>LeY$>SaK& |QvF/g!Žw?JPtu]_Ŵ%.p KMP\x.+)4-UALW#fI%ˠ-˲3l0L2'M8Ңsp+iO4_s$D 9y3.ӍGf *UFke*"= hUbw|aom_2A&(|?@o%ùv\v2y4(`OLulB>.ad&P#Ҽn"%2nOцTRVf" c G 1nj&I Ӯ$~JH7Qc8)W}v֯32O@0|QU2'^^g$-fjHo> _/ȑcLOC?vS^")q^@a`tw4rw>QxVÉ|>(g.NhқH JWtU\Ze;q1~t- Hu"kF|=jxKMmTD-N{hMafv['Fv ݹ7p/RH2!(]>H)S+ġ 2AʐD$qXAc`h32͛^VO6;k38fw_x! <:Q _CvE>ڭqf"dHttӢQO;M۠Ǵ|ɣ~w/2.N,lnwdl|\z5 '_?RFU L<~3KD$%I T cI@ՙ"}dރe)r +׳Kw-O'ԈdSw V  јDE!p2*mZIa8ôǰ2wm/cgx͹|o翐 $boﺇ~`0Wui&Iw]jzzQUNC%p |YZ>nPBHӺR*H)vM^'+e2 's嗞}YbEQ;Wxt54:@7T<\w0l"9{X\|(Mߊ[_x;/}_ vP/=CAҋil6Z z7B];<7oy7IB,Ǹ{x/y,18P>uS uv}}/K X>$I__G as,fJCfQ?fZ;K%_pkE=cZן24ߟ0G-kNc?k~k* #g)h8kYXPvFFycע;}dx/O S"l!G)Jvo7cOa$="x`ףTeg}Gvju0DiYtTYVQy N=p"6x{S٥X/<%)DQ*a_|۶`an[ofbȆ mŎX}5/_UCc~^ ;CۭaY=T*[Y:Izt&qa|w X+A)DL~64MCЩ/>kF ? !3\z{g!Qp B(e6 TzJ_?NUeVonB:ҔӨ7I !sdݰD5{4t {zfWBtI2U)J`%L_Zi/|j"w~3|m[7/}댄mȧzRJ\㼝/@ |ߧS'J/8LOOg; ќ0ڍ^\?fͺ7sC(Ew=ⲫ>wby7w DSJWaH<1t膎D24?Me B( }EzӿoAaj.C18v9ca 7OHnzKӓF zǏ/~7~f&yzz{s#^i,NH_Gc9dAy$(Mf{8l/qȧ)_%TȮ%Wh)ZR3J59%-_΁ݷѮoro2Y%\O^ RT՗~# BlظTO݅ש  7Q5vQhyhm/JEБ2A dԦ>v'c;|1[>M[30޾2GsāN68 PU%"AӦ09XA5iz"}k#FGI.k=A?W[ZDjչk/Rpdl]$@ 5 ئN9ћs/eхJcR19 yGPE@oѠ7W#fT>w 0.^":,q4nON"ٷw/ R&s|M[㵯_宻 =B [bR‰;SE=C. jwejͽq! Eإ:݇N}on M3E 4_KbvcUU?ظn3A~T3 niAd쪫ۋqE2DkWr] ={|Wyѫ72+<^BjGhMcXUF|;WމȤkTn!ݜ)] V$)J1/DEzA6mɿs]w+G~s`~gYV>r A"N(av߯#P bd8qIu%hkأ ĊRgҬ^;H9B?hѮOF. ~~V7ɥWUU{UA(W^ Tp/L4b1qgy঻hP%r=u =B%JaPisi0 {y[E5/fIbq,{%ĂX&iE.ш6qK+b{G|s_DmǏq|~ #ذa7 ^2L:c9@( ߻i?R]'ŴH|⸃iQ5AYXM,Q䢩j{f}G}F0ȳdV152QFcIX(|@F xs#x/c+M"+m ݤՙ)oAH6: F&b8F+o`1s89~dLR*്l1p]>^r) q$SJ㥛 ?ZR<f𽛾ű8vf?8ڱՀ@ '1>i ا٪b6Q"et:㸝)|bN df´lF8LS#LR_G qa9yNRk׍ }K|%"wlx.`ȋi375KP3uuFt):  [Z.+A?ߏP䲲6b&a&iΫŞ_~WJ%]?9M eRX[8a6~8;Im N$vVf,,&gMzVyb£A h8av0,0 HbÇMיE|n5Nbs( ayPUnQHNaep;ȥ3?cnfRƿ{{.? }khkLO4pR6ǵXEܰ-HQ<򃓴&|&tz#'B%# J1ǹ}mERiN.|X,7O"d$!H|K_v*<>&Oӭ7ti288*V* g Z?O{Mlc q e(j4P5R~1 a0EerLաXO~Sϓ+ aSS0ju{@$B9OISO"dHkW]{%_ 8}rK1Vfgʀ}.C(dOAz.C>&;hBV4Vj|;r8ZHVKWy dS s !po5yky&b>8t8yu2N 2a8V$;ae1-*{9zГ6~>jjZaЭ2(Ԙk*(6cjc#;dÔJP9yFUѴR[_:AV4h6[}iT02BUӿk$-v=W"O/2!F&躉(LL"hBk&<cp@(04XIDAT$բnA}ȅ>kkwc玚̆)8ZBֲP ~ {o%ӟ}THbA$|ߤ)yt'F" Uպdc1t[B>QDլ15=Κ럔;cdh4XE"LNPzV;bT%vxڦQIT)U~HtS7y{ǘuk2bqat1hQE a#V{|y+}|( 3 pP{}mw0xE9w qhҡ:+0 4&1&}>n?^4}_lc6 AQKbn>nUs/X1#}yq ^I 54Aar$I9܋#_qwA |EUt@(tc\~z;@d>~a$횵Q!N"B RhzVm7i3L$*r%ȥ0dK%T?>$Hd9;% q?æ-wn~8ݪi{1 E !R'Ph %ie/-wߞv,EI7:cF rMq\vq͟9Wɑyֵ[7(Zϟ'IBn3rLH^X(Rc՚ux,1lNgar7m&l/xtZw֬ӹwX'ᚋ4ʕ پ,C("~EHu&CZApt0XdK/o|+{l P=>5+9+Ñdq15y~ |l]H$Jzn qGݧS`;+@t݃yѨ' 5CA>)DI+R!e۞,H0"HNsRe30r Av;KЃ& NEz>z{qmϑV'`rb [p]wpӍau|3Scw;)\6ԤR>U"5- lEW( EK yt*e&>߿MswFr"N2x~E tb+~I&pw!`wwS )AU4M!BϞI4\ɓ/l`{u)''63?LFǝ%ffvG}Ra=IDG$%[)b%fvOR|ͰX?D3+Z~ݿJY1sNffEl?_{x+~\"Xrw/K]} 7PsF" J^m`p=y&wݏ92P\yW; c>ald|Se`VwBDŽQeg o%1z ]JIV+cLv}by =LB02 ЍPp2Da -DqBEk6anX`Z9..0ݮrQn/07;e;yk7[֯oa{AFrˑO1qj Y(nbjA9#;݈~@I$YѸ)c&+[VpىVƖD~8N~,9|JB!I.{ৱݏj $,kj8"ȤHbmC0DmTUE7U wU8J ^MCxSNM+YEg|6 #C([j^/ .yI" W $1qESSS|Qn:Vo; G=÷ _ZT>Xt`+,mWf)n, x2^x)'OGEݝWv\p DGP(142Cn4)ģ8[hYX8I(CSoM#ӳqy$9ipx,ass3ط}xUzzΧ^&]TkGU$:A3:˺sxrf)#%~EB"nw&'|u󱊆iJ?\yow淼 }->9 9pwiR;J/[)'bP "yﻋ:S-oZ=;\RQpP,{3;*+Z ޾ i5 y!qXŶ"7Oǫ7D2@&RP2'|ڵd38rz(ncEא5Jb [hZy,?W>qt БI?.`eN 8z1nbXqż_Ú mrw}O@QtfJhկCt*d!CBJ?èB8@.;LTl'; 5q )Td!ze6K6|>"кZ@xnMK;sY{)DQMaeڭ&c;h'CErjH00x'{% hQ$ {S" nwZ(kd?1 &<8}qw ә *}bôiW}}zsXCU 0 pfkC6g#3r뉓aB/bQȯĉz(Nj> :ulf+qZJ SoEU3QNlۡ:7|;pioOr5oC5RPMozFPR%ʒaY<ڏ=~cw~\vI:ᅴw^Ldϡ|>ɞ4B9="NRi3N(Ov!~V1Z(8Id8L/L(u)&K$Z?~PŲ$"!_ךCMfgby=yT83T{pi,#0L)Ls MivB?!"#ͥ62cj-B/D9ZD\_Z!~mן/x o{ݵOd߾G6K$yW7ML H]Ke=>Y %/c3Ǐ>?'xeO4U!Nnt:- ;v&V]$_`3wQ"[ZMǯi4Oeq&6Űzidaͯ"  7X>odqq7YkTDS $2^aVhT,k QdѨ g4|f`t3{i}w߽/}FĪ!^UoP@JmYL x:i.xnBn:rL`9[E/iBU[ضEFx-agMvBw)W eav/$ QUU^htE(n5K8Vri=׎F5 s?m6my|w]pgQ&33wE4[9 ȚiѨF5q,$A;1EB0bnKcm|UgCA0qv; ो ()< 8 t[R"d ,n ~׼'J=Tѥ[ 3:2,q:Sy|by-L+C}^0@ѳ(B4%WcXr1fi7fÄ(i26 ŵW6QAG8vFּX1־|naЦ.IԦ-*ӳ1?(QfY\"Mq*ͪG[X?:HmFزy{_rR)`h]B3rds(JL*Yf Sm,iq3q~2O$YJ'Ri1+8*2=LЏ!Ӯ  Er~LsFcf4Q 0"(F`^6_f:'2D0_34fz|B(OTdRĒһYNk,Qϓ8Fv!6{&\~躱 v:$H$I/M~ !U(:G-jȸE=NǟAl-zԛH$0FS }l a%r5XYjc{7>C~BYep727y[F[뜢Q?h.'[ZHT:Xvՠ[C}q(tp}5&k@pd/B%! eR,іF|-ixlbɢ(JxBL BdiB <ŴL(ݿK2BI{~Rs;t]GT$G=M;+@,ɉI""|qL?_Pڄ->9Au36)֣y4JrcıIJ DKc`iSYb:'xL~8=Wrۚcx|M'I\A `mpbf,1ڝ*a]%gE>n5B!4fgZC)QH IdmI (63uq:SH&H~|~=(^{Ӵ5  qDu"q7۶|&=|;7uȪ&!exc@i r2!1* 2 ! SkM7+  '4?so;ygqѕ"L0AaBq+AFW=^Du!`]dv~Ň1 FVlq'2<}=|??{ȑ<{#Qv;5M?#Cg;;OI4N͸M)W@;kכAihO[5"Qf~a06`Z46heW0 9Qid ,,GQR90m IT2߻ exXz|v ɌjP-T!գ/BfzDqh)d B\a IdsW7QUMд<6|s$o{˫g<ȃQDH$$( :㠪Q lO}#WZɔOϿ瘞3+E! Qg5?ftsiuiNP(CqEuPZZYL=Kn a4:48}q.(ZdʌXetưOym &I`$Ri{ XfU9v+ "GyRPk±1\mqa9:nfC' (:Yjq|srW]Śu&dh|cVEORGa:[M%Rΰ ĄGX$d`QͱCG<;=K/Կs5נ?[CRPXX"QT W1O|V4J$m]nA1i epYLOѵL*,VqKsMǨ1Yfqa?n8}x," SF BoW0VL#ŗNv56 ;>)#eA)dh6Oa(>Juv?At8PT0TJ&}_%0Lg뎻䉓 J,qeWy9lݺ!Rե eYx^'s7c<1ΕW_cXazv8xk~ks2 iԫpçWi)?!"6*=y->|s8c)"&#ǣƶڭ*D&Nk׼ U@5A)v27w'i牢)"sC+LP*c(F0 V8 ll/CZaT2I" #*=qϝa0nc#DLb*f,5L˭Z=𹨝+L~Vq²q;')7qM6|C#^W◾]ט<5wɟl?\ٷg]x|ֳٹ"\dx̅W^NmJyD4"sEW 'O#''XQ_hFwO*4կg!E~c)SĶz d_KRoT]#LDY2YqELUe۫5k8vQ̔XkFi6'(נ hԏP`qRgVx3DQt|q3Vvlf#QA5rdsHla5LG1S7N.ѓdU7-CQk=@pR*a;Xv@i*) dB*KؒrOyuG)%{k߿w8>S.KxmtLK =_<Ύk$"pʠ*-tٲyֱ>@=A0LbX%$Dmd[ ĢM6En9lݙ%d~ڭIZi\ T0!t0eFLlv4(&&n<㔱s t I*BE6;ġαz%H$!A,rhEh oyӵq]KKR7 FGWkͻ~Xn59W}Y t:-$ Z-{ﻗwTx>p/(8rH9ʛ!B*lذlAJ%R&=0>ZqJŵ~@.ۃe=(BdzA*ZG>Vc If (x`T E7 $B,2 QDL,t"T($7Sϫ vKrhGiehz2UEzL7xho!ڕ:m2 !|zٸqFG9~m?^!)> k4 |prA$- ;Ouv_tUA:[ZDr\X&7gj}39ߛXi{UU=m`-$Bˮji$YCv Co*Qv:Q!Ј:RuLMށn i /_Jbxt_;p9A^mV-[ZQc9 LmĪO;NƶQ3^4ɐ$!?ַRm4x5W q |y~}_o)OA,cզKN;n;8\En_eC7c:i0'O~ % UO8"|a$1(^i jdy - di" z 4Tzb%aGд,3@qȭ0LOBԳSw(FpQT13 4-C)$h6GN)Cv\-^_Ee㖭\q sQ?J k4?3 &C*$>q@&*v\@O/p;+DJ \Tkmc1ytl(W6aLK'Nzsf} D3 IGRi6sqJmY5@Q;G,*k4(U6Ȑ0ri6g(ư!"%r_êTp;G]8TAly8O-n^Bryi=>trwޞ (^)JfI$j7( V'9r(5J"0?3߽z&_,u38@(ޞ[ja6;_(L[u,nL23(U@o,vay|8N@8y⟈2Nvrq'G(0LOE8AXܻv$gcQ4A t57Iy23L|.e$%^麎uظi޿Ĝ[Ykط8Y( H4> G~v* !aa:Q>BOU FW^۶_-p)j&k7ld; }+s4B KMطp/05idt!rNS'[ɘ%ʕ F0.2{E"T¸ Cg-B>:v ]Qi4NE( "]t040t}8@HP j}ؖBs~~Ks񥗣¨܉S ܝWqV)=ulR~ on}A ۙE:m#8XCLч$Q}(|q;*bXYlF =JӦPtnjszW\87ulę3FI!_" *'e~~0|FN8EOoolBs355#GPtԃi9(B ds=q2IJT6n#0;M\annEyzKq=~ ~MG^cٿ 7I"o_*&w0L$M 2nZhFH(RQijJF~,|SST* V׾e~eok.⋯]wcylظ?0u8&c baqNMl?7C%ǩdeϷoEz*a/l`%tK隝ytHvF4âј":]BQSU; 9IlGhJ#svz*dM}!4Mʕr:RQ=)S.CB'tSS)N& $!iu׫b0$cᑑ+ pLӳxKb+=(`t _\)=e?;̷"߾ )'ؚ5DD&1NB&8|l= ez/ k6̳n;λq￟$J;y A]:I M(bn(fxi+77pH-ϪwVT7fFVT JUXn-T"'[8 rGSQCp;5t+Q]P)g"8 m M5) DO:tcN$1ǎa ضml)^Qa!s3רTz2<4,Vg~al6PPAL|? I*HUn|Ï׼l qrF4ޞgI @U !0-ɩ~PyhTkgڇ bfjFBBCTJ9HS^12f)o"C&0>~|Xk!NBDZ(,."D !Ip?(Uflj37a,$ILZ9j*=.l 2s>97oh[|;2 *ayf:nԡ( vEHEv{k5C&W`} K,.c`h3U|nF6oX>wrV];,L6{ A?Ċ"?9H(;vG)+iUĸgK/O>9YL3K]>@OiZ ^V?ieЕ$ Qk{Ќ}F`KC(V”uZ턌Cur1vq> L#*@׊,r!:8aZ,6b$~bHfh *Ezw3 %(q}I6a$I|45Je0i7<|}S]\@(UٸySA50PתUVxGE.$B iPe8yeߣy-_oк7@QM`xdE;o Q1553v\i6ZXEIx)@ȄZãgJ'"Ӌ /|+q;.7FUҞGeHԑxy C#BE&1^^z 3\pe| _O(flnMCs՚LgJS:I&3cQC.D 4>@\@(5:gMv!ҘST]NB*`&V!43W۴|׽ݻU|B붱LwQTzNTjn}`hEEF74Pc(Qy=rbd*(qD7RJ|'q}8"ᵯ~9O w0[7Z_@J!2J2;84M #C>_Ʋd2=Da lSf(kED 8r!Ilc123wЯY%4A  y("rV:{ ^T-{Tz/L)k0 /ftl59rlWJOX !R c`X&fP585048iA@F45|%R=C΍_^Z~~E@'pI~2 k"bZZ3M.<]ls4O|r!N,T(Tg~aU995IH ٚôN18p9R4*LϏR$ jVıq>RFkT)d7ח%ƈL(JvxSa0KaX'9&aR),̶l͚uɟq߿vg<ǶCE"HrLB?$شm")+8akH4{*i3:<ȁ}ny8 #4)x.0@Q$!q4;YbEQxGqEa, ##cgpͳ/'4]'%P4U*^|/CͧLA9BNHН B/DCtѲN/ q0khuQ"IMӸ/0u|~6"I}?r=e*!27Xa36nIuؒ{﹇o~l>g[9UıGhNHL.-p fhNͤVhAv_d:mN?ȺuʫNc`*Puj8F,o.e"T$KU=~@j52y8 if`pӳk?s3X(cɰؼ|vq#$PJ. J= KOet:St$IMJc'Mz;i~  ]BEV2"m DyD)̱Xym],!KG2z3֭ET"8!C "QӰX6PZǧKC!({hm!9|({33S[غu+mc ,..;PA3]?)cO< IalZj6n&FF$Ig' vfݚ==tLӳlennSg0m<_5Js8P11\ R1_grb[E**&Pߏc(8GDHOjYڝ5$b/XdЕ4Qz rej%q3sZ> |"G[J {ދx ǿu8 7lںѴYS <0MEQ]QoMՑqLPJs% %v{"B;@Z#mvVZMӦQ?0,#4I4Q"IɁP4NFg 4(&I! nT?>1,m۷?*zr*(J,n<qJ$Ab6 REDEBID Tlՠe`O Tz0M$ QQI!$Qa9\e~q$epj#8r= n>?LD$alfa}w˲0]4@vuQ1:&Vv$NL~4 Xɏbek548 ^af g&kq1lc9B|i;fN额51-57r;0q+⧺h,ޒȄt]'I2AD4 ̀V; V-am*DƄQ@O' UU~LU5D)qD&]LeN|p7Wᵎuģ[L$&C(Z]$I6nB˺iB¨Je`'3Sa% 3eX=$hOaBH.r=avzs!aJ [=)LySH3_'Q,~jQeiBS ¸bSZMvUy8(&b4M\%/z!| R :)lBal3M(29<5Q$C8[f5i( :y.x;R&H!фݚBZ~EU(Joo/f iL Ӡ؋OuZjM!dD{89i}LMjc8(JL0LE8V?2)"G&v^{Ngh QњE32cdAt~Rxg<o&y/{sA)PEZ iMEj)u]:nVneI6űmt]'Ǟ!>I ~)VvE>WBNmKD+̖t=0OfS|?2It:8pᑷ{vWjBD4k{RR9 2GQ4': Q4 gcS\﵀KEشmNP*]Du ae#i<DzziP.\iTJ`R>B]8jo"$h+_Bi,UOgHwM,&L@L*==+O\[ ׼f=~= sfsa@:G`5f ΐ$12Hb?ɚ &wFy RU'`h j=IGn ^R̫(N[A,.\<0]D%* qL+ؼ|ilݺE9tKGQ5߫cZE(8"uGs?l(*!gѵn(4݁b$U ۷uGPT* \$P(O;KC\˶]eW~mcJU-Տd8JGڏ٣iOΤI)Y\P()Euݳw"[y$bF,"%q v LBQeXDàˆDI.2H rz)yQ pr ˎ :no-l#en4ⵎ"T}x ]$pH! ]I_vOGj4 PLtM4K~<_ Ɇ[M[kb[6{.aj*=iL,ci0+RqW-t-&ҹlQLMC!~;Zu\23$RT*qJ%Ҡ>L̢9cdӴ1-ClKxdk4gI*}Ca[ePHؙ,Ri#3Dt\A&S!\ !b KYz{+Pq $Ʊ@>)B[DZSzg3HvH$N_BnwqUg.#=3kpBClwgKݸW 3 =R~U== =is}{^y^! BĬ sIĺ"͛c "QIsñ^Ex ^c* 7x]$) Pl)qta ]2SHEq4L;űZٺ`W DUը+SDxO\lRJrc# bޙ@HhK>c8ng4P#}{w3}/ћ=g.~Jg0 RHI$Ә2tF :("AIXBP3D! tX-+;wdw "pxP0Q kDb=("'gcJ 7 Gy%TElO#-t4N&؟ T*^4F VRU&нX,^I:Um &du46z>Rd*C{[c!4d0Gvu)Ǵ= ;Ke d·S"زm5!XEʽ0D2+>XV|@P %AedVpt黃fL=M@ xB) W&a)G(I64G7F6gS/sx7jtm7RFB? O?L'=Vac%`Y30cӝ*cx~ԇb.9vf)in=b%O>iR*l GtfmG V?(iTUñ+# G׼#Pc%7DUl%KL6L"PeIJLLBtԤ%=455U1)l߱e˖i 1tTk+/- J$9z4:޸)K&@63U1R@hl^/JhȦo\졔߈IYtN֭ARL6OL#7\E$I;؃8CW U tUX lݴ&r0@'I. 66cLk:bo:`rٵQxU$I)) uKKkw~3Vgꇒ)hj(尌ڧ|&UAS涭k?GF  CF~Mid#7ߍa)F2 p!R&(^16Zd tl׭elo0 /k"Kɗ9#A 6ʥAb| <6x E<=; j{Ն*S2\A{ eCepPlb)%6l O>SLfωtjU~r7pÏRuJ n2Ù]Aǐ'( d2i uXV16{mqтVs$/$䬣\vѨrqtAsK3`2$~DUTܝTFƶ ThYKy˂}2kKH`iMe e7Sp~?>6M(B(oAQiBVx{f9m'cNI3N|:(XQz{w2k.H%p".;oUW7Y~|g PTB'b{2[7aH)1(fm ]3Rl޼)ӧ3}B/> _҇ehǺ sь(j (͛7s~Eؕ~|ߠR0x^EHѷ.f̻lg1 3K2({@MC(q~r#qTA2e;۠> |G}Ԕ<'mx^=ygMPQSa080)wO|گ#H$Ķ˨d󆵤&โoqB\bu<{zrClܲ RnZFiniatd .֮Zņuk\ d˦͔ǟx"_we,]X`^TY_4zwR.dtt+=L"5h]҉YTjlr#[C p"ve)!l =t%[H&N8DVٌ jM w!suiф㘦*n&ՏL+ꈪD6Db wbkR?@JIXy>m`9\|UagNrcyb}CFXأGG(en>hh JK\aF,͆{JnqZ,eA;7.3c$i^XÜ|NS cnX\܉i)(Vx}׿`46Mo^W3nVq`hxֶ6ebĔ)X~ܹy xĊ٬L;xś)F/F~ˌ `l.X[osC#P؂BCh:H:=˚FKۑ5I2A,A"D၇ ?8Bˣk t2Lh[ Ou`ICe`[ٶos|)kf c#X1j#lAvdu=5ژ{˦M uIp&";{zqU)GߓJyRP"ɟK敼>I'nFYi^r1ܴ~K6HTF7trarc 4N2Gvp_ WjL+C|KC|%>dݳ4bS41sV#[6ghp]D:f\{"c-Xz-4fg/,vGhlZF!iuR)Hk8tǶӿcE&)N_~ ~z;_q7} Hɼ5XU0`tt%b~d!%R ]r4L2'Wĭm$Q.Yx ?w( lݲ qYx)FVbVwʗGak3mteZ~)5 UH_k8c<ۤIv_@[KS)=hn:x'p|,]'bGm^tj:[~OCRJA6X8x3[ 2<͏@lLU>k?!f#Pι/BP(T:C.cƌBTQOZC16V@,FGsضPs\PXJIntL&*c/hmiNƿ.ޞALmGh^~%/jl\->(^ 9vʼn456fFPbh*Qٴe"8?mk_ }tvtqG3cf,@(Q(vòb<}m44weu7ʫQumnG[ nDbaX|X&2ѵi=c 3ExT*46]2{)sذfft@RЃBe4ZD|:"%6vBhS`~]=6HQ.(BP.WSxeڵk6/ MUy+3~rgKuDa,UwށzXA~iZvc!SõVa Պ.vL#K&5]Fi1VX&uA3`x6/=ڦ~M|J DbmvL:Mnf4QxQ*Fz]oSNR.cs:{4ʒ%G'ʜxl;o#DWLtFscfJy;*:YM 0x)GC;m&m$OE /r]o7t#iJbyR(8$bγ,ߓ&[u򹡨LBccS>Ti8x';;|׳q4}.0CsO qҩ'2w\L͑L$5{. }yBF;cgK􊁦%pq(>:U' a*FqSO¯T$_y>vE{b!@42$ݤ{Ӧ#]VL@!"1!顡!qnGs>=Mb=C[qp8PgDZ 0V<ƒeK"KMv ,X4= /e#xկ} K]e41Q@Li= ql\WR) mn.`꼙<?F&@.7=>1җ'KB֎;E%5w6n /BbVmLgC{'`q#97fu:^:.bw /u}Տ3M!aD.RUZ&"I0 Lf$X1իaf,ʶʎm[9xǥƲ>j%ۦ0vw`bNn]S݈VJŌ+!wLJnj21nMpoԣ Y;d*t\GS{!BU(Xӫ;˹!H81q"xW!wIώ\p1l" ̾bIԧB<H_Fwض샨\4b~@"߿ǰq&[$i$*1000:"R}ß?ib8Jj)Syw ʨ&tB0bKH܌cq\ax`Y :G"jP(jO0 )"y16<07GA`>EU HLѮcRU1*^DIў8d+$i6PvLBU=0+5W?:!HOQ+ȗ-|E4  sFΧa9A4l&(RP( mɫ^*OEG]Dԅi@`q֙| /bgO/l`Cw9}<IwBrxʦW_ۿIC /+e/GGo.9#ʹus8Ob!R.\5_9{&xx2ȣsW[EfdW/!rkWS)k_ƍGuU5|8L.!c# o+qwa4/a;ϒ|n\.G*ƲX4O'K5}>0Ļ2jg:9kx~5O/W8S.LB57gL<uz8<gԙ{e;?h酎:x>&Iq_}@'_ԙp[ kR&Ν<3jAzn9QG&u:I:QGudL O<]GuQǾaRxvO?TP_hꨣk<axإXQǡzDuQvaE\GuA@E\m&uQG&6v}*A9ivMԓc_GvMԉ>/|ޗL;s@/h:P ":8P')ۢsvwǁ:xAd!Hg )%v~A<5uo[Zuˢy{P'D>Q_H8P8䉸=qQ'::x ԃuf桼NLl6x(gu@nQGudq:mD,xV2 >2jb$ %G{!J^6\G(cׄ% ( jJHmG"8ĞA+'HyJ" xx*4UE9|F/Q4mwi򓗐j– ι)l(\NS֯kˏP%/]ƶ.k7ba3kl:hiIyʼnf쾩]vsBZaK""$?4sʲ j/}q#'W+9, PBGSK,bVNx/Tbѯ}*WFu:2@ ͔$m-):;47$ilJI&BВPJdF7Pbo.K:7xyf&TjB?C _;tQM*$a %hv~~E/AӲrøn/QIHsLoGY883U #V1ACihn3LVsc\Ņ|5%\ƆֲlfE… љ!8[?2cOAh{XXľ(3{ ! B4="n׭|7?v9qB~'WSE@h̘QƿI?0$B>f,zo3=K0`pTrۙ?o׹wϘefd2>o)Y-N:gQ`1 RGu- l̞_+O91 5dRȰL’p5GvWP0TIS;fsN>򎕬\/dڔ&<|?@U)aa lF;0J}KYl0 )%>:Qk:,,}Em!bՌ7)A*0JTSgbæt"6(Ev©w͠wgD#d2fH6ہ<(*@:Z[vBq&t."E7`SO26b߭|]>>,[-U30@PBN>w8:/x^q  y+ D 4դ/c*Ww_| -lސ" \Xddri k&Ў Rnh1n^L2Ǹ'1L6B)0 M\H>fncSO﹀i իaYW7e47e  ICx~Y_aI޽5 ddUaN8JIRHfQG{ hnXBHђ As[ Pٴi>dq0u `*V,iٴ+N1|R_D@d37nKϜE״Jqq.?wqf\CH7%no^#M^~AwuM9 aI{;O0 !hcd~r0}&^?bx]f R}~ 8fBXq(*޽"QA_o/=[lf``;tvNs*Za/`gO7֯#ͰhR=v9--hyؒ j}{)$}$ }ݰ3fnQVՉ&}"d躌*$%İ|@c^nq̘FHѥܶz '϶ij?9hIx(иࢋ:}Pϯ35DRD"A|; oo|;S8㔭\} K%T,LBMlU .TL\??70FKeT6L=A(=x@IX)i(BR,D Ie1dz{_\?Kk\xY(43a5?y}B$5W/\2st2&N>lf̘Aǔ6Uǐ2@YuIB׭gˆ,=(N=,Z%1]Et:? h<ì8S7}g" C<CL% I"bYB %1V0锹Tq#44 JT <bۨzd2TbI$K;9mޟx[s-m۹\y=D ް~=SOcyY/\̔iӈc chBC6(aATIJ,'_ȡ"T"Cl͑,笳A׭=huB!Cć6SJaT\{'x˿ƒU~ iiP*(*4pPG_'@!/3,"o8,!5#Ie2)!A";3-ނ 6aO8YXzͷ5׿TʪqmJYp糽{*hnj&S.,S'cY&d3XʓH$Œh، 6b>λbf͚]#j1hO謽.:;_Ag8[sn'G,PbF3ش\ƶK ٸi}O@uϦHJ>J4Egtj E314Bi3TL+dS]xRvZ>x C* 8+Wrۭy5J=]ױu?r1@PȍD< ېŮhmk#}8*jXȣb6"Ts) F5V?KqE#0Յf"~4!O޲~Nj>F_S%G"1!ϻNuD8d, Qmysy{֓5o5Ƿ3c&w߷_e_LwtM`SI&y%QU"t@G7U aP@,bVB0yK%_L#~~} ,iw\,4StbEBPW@ aրЍ$B5$Q) Ko.ikkmk9JeǑ6tN;?Xzii @(s>oٺ!4$ -vmhbؘ1 \P,E!5OF $6!|AD dwɞ!a)nZ/$L&jH$ۍ])na w/N9Ӝv< ƱB{|KK<&Q(7;E L X%h;3"%72{~w?Ķ/'ZPXæMkF*^b$,|h0+ ?o~/rꩧGCЊjzvc|+ߤi35k.rsYlټN>ô3{lM2cXV +GQ *toũQUY3P\JIDATJrtxl#B)} OtATu+sc0 _:{m324r-Gu,_S4f͚aMMN/13C8M<1 Q.fld;z= f-X3).>)P# (?;g[.gޒ.PǫؤSsqkt{9p=0'ҁgR)H5Q(c*+N nF !%4Gݹ }|(=;a:g}.gϣkj_= ҘCOoKn7S=V3#uLC5wC)@a:J) ed5K"v1#9.}""o..4CɖR P)&kͤ\Cu.r`1I$;Dw#M\aҗ&ؼo|@לPl%k#4 YMLaݖ5ƿ}y P"m8(P1|Sr7sg83]r9;.q+;9s344Ȼ|cBS$6, I&Ӵ#QHe@L&+%266x+_{>" sO$(yQs罤q7><P n ENUSYC# *FTL T;5"c "+ uTAU:"f!:;j} = t2!$)!nqJre QD MP*m/ bc 4˴.f ׋8$x葀ke6{3Nw Fܚj46DU3x=MY#"0t 1F4@3RV 2j0{ /pYNgvojlxx\sхs32:cW^RY\EBu ,q?7p˿XL"# 0IL<ۃ ,(F ÚJS eEz@$ci!JA|DPF$lE@<ưT < H1?* o}iӻ=76:g>>}d*ϝwΥ^̿n+x y{$QΏ j Ì!s\7*G"fu{.aT˶%_F2z%]`+^3PrAӰ@E./\M要T|/*w @CfϙUP C4Mut@ ZJ&^QU+zdcE 4ƃUs=whN 5BʽWRJ (]S\Ƕ狸sj3ͦMV8VsFy+%0H\tz*4J^\&B A /[dq=05 ˤSM$ y{p-;тM:(M!O}O~|ß`F,V.?|n1^@!nDJ2+[qJJD" %cafLʵo~S:;A.2,Նh=;(63kN;gWY(@s:N!0u C4]~W%xbĢݪjUW&uag`HZeQ'C ]06omxBX={x-l߼EB:e`p'}V+Wq I* #Gz(qO%= G(-͗&Oɱi㴴00<5s '+*͸F7!D)RH[69[`dj1b:! M3Puqihlu=*Gz#Rh@bW*t#H^T5,nZfd:( T Vjw W*?J5W-ϖ.RVQd(VW!].gv ux?f yq-^W|3-A p+NRegAzWnν1,.a%h U1& q#TUŲP8_DR(JxDV *Q8\}uQ׾K1 eFG9JXsJf@j+Qm&2ٌh~"}fR҄%Na ʄ^ߵF# A!dOvk-xX-B,c"XHtj5;E.K\|q ]ygQhJJyM(Zgc ;Bú3sV~d;ضJ$o l.zEj oۃlY<[Ln#)$]fX, E@kh.zܤ}eOz$ =;W* *7{ٰ3Nj_|9't;nxVnwbZ Ss 自E,70 sՠo/|d]̞3388k^w5D@7TJow6\'NJ5A(BC(!ȽoWW ~U OO(kAa n׿w"%)V9Jɪ{Q{B%"Z1NJU!Mh+ꮊCRnY}+No^qWFzeܰ<-Aoz 6sV02NzQ SB3TJ=%fu}BF֠*]3ᮻofK?\t 3;;e٤3I8vB,"8+6T-{XfXܵW$MH?wY,j`ժM,Z</9SҗS*x^ǻ^㡇dzT~_ *UWq@]Ra"TA{H)OhAH!i~O}e5AQ ,FJEQU[TT!'VV&wgw;ްQu GP $x t]R4-zmBUEQaX]vk-dO$ZE"3 =OXDG0 [gre20؃EP.ʶQ.󿟻SOAZZF5EjYO BUPF)^a|!AUF5TU% AR@V [{>Iž7G7q Q>*}H4M\E7ttm!c<ПJhaFdDmJĻ8O%fM5I% t 4cӖ߲1sjJƫN=$ iSt0/-鳱~V>p;'-o% m{W5Ys)QOy1S35nW̛VK"f2kV+e#q܊?n?GƗsݷŝ̲eG]. DUb[|eYנMRTMu\u=bX(dbq<4MC"߮:%bT5!ȪQg G(Qu\Vw`ZfRQy!$3ٳ*oRH[ @!BW G0fqdUI,~"HV N6uғ9qb2ٙE@"2owa38o,?mxJȚM|?/>ª蘱O?f4_w\X~ٰ5=afqÛb{|.>0eRno" +7q=7sQG!Sv&xm8q@QcJUqLvBEJzX,FҐEA*42 R a8jDh֮ğ tń5\htuPEA%Sj:*dMtOMBDn c,T&q]bf}4X[n^ZS,\x]~ZQ.YZ AU?W0DBj*Wjf GDe @A OzUn2 %N7q("r7 B2Dy=hwPwMG(մ-͌o\G2_o7Dǔ6-\ yض5rf֬Yw}̙SPdnXغRelZ1l~:œ˸]?!R#nYA(l[SF5(l?cť.>3k>)&3; {7 }$Rnɧ=jڻl2dRk Ոk:aJQ D*h89;jRԊGQ%yH{|+c~XmլU!U qBZ<ETrG8L1~N "U7Eic aqu 7\~N?Bvto-.9!-sdS?,Yp?i?OAC,\luqXϑ5.8W]^E(sΤҔɐI15 o5̜:efz{9|7+Ͽ>mx 2 -lQF`! D(*!iOD戅"5ƷԲ%W'X~Ot-L0)6F5 D@(#NEk0eH&|5}F{cSYsGgԱ?qX&HgsZrrsđS(UL]R?!,29ӸzfƷY"k"4COm~wݷX6m)z6hF ۻ{9cra*阉c4$*04sahp[عwH;"lb~;x'G=*UV{'V\}/WW-u)0 % QBe.v['ZSOM&!)y:M/LxB,ReQ[gꪨUNtQ<эi@|)u}szۺӫѢK[ =OP7P7RJ ]2CF?ǶihDT Zظa<|7KZdv6Nc: $cITSÓ>f*A_ȟv7b$ϴb.z~ы8EgqP (WZUQUul}):G{2:;">Xإ!KEno7Ćȇ?Ï`6+m`px M pe\p,\4]Uq2( tC#L2 `7I__;{z9SYvRwDePX0L2Ga֭z)dR 6Y'ǧ>)jfϞE:UC#qq* Try>:OObY~@T$]@iwPqȴb2hddEkZBBF`=BhxN[ дU$ǹ;gGW9L*6]א&3T>^Dx2ZP&T=PP ndd~_˾E(FaUjD ĭ`&f@(hZ Hb[-Bw3#`B?4Պ27tlxZu~ROulO]=uaFR2~-u]@B{Ǯb|P=5|Q' zl-K]ŗ~D"\q"V,?0وIxa&±K$B:&qVzET܀[Ѝ)SSB>x i:,0>cL BXM2N/ K.#9u*A\2 JիW1toOƿe O8#pʣ,@Ҩ+ /\t^SZ8vbZRh|iy]`j4v?_d)Ŋl۶׉loflhSO\93b1.oß Ǟ̼Y]d1]«zf͙ S'H% U%6C`3Ĭ]ȵ OEQF8.4T..STn٪B<:Gk([dz ';'Ð@eG]D{hjRe)~\tBqʤSQ[$!q|U$URiD*"Nssrb, &,xBH( N e m{o'm.]ʌ.EQ4GQJN|0?nK^}{/)kќ IY\5_es1MWbǰK>NZq4[[6Wdf7tKg[lkJV܋/EU!` UKQJI>'jQuꐒx>k۷/7gIkEG e2K|;KupŜ],BWw }}m`Zg ~P}@chHcXQd9K<65P-UɄIDADR(*j$˨9=&9Sa4n#ÐJ&C u]\!FFG*S*ۑHqD"I. 8a ifq&4MC3 \'HTO\. DQTb1kxUUJ"BV㵱UJ>=Uh/vOEϖPWD<11DMbUW7#=M34|b^hc~xrDU5IUBղ("Ƶ9 3kDUeNJe§RF1 2ށ.1+An5!̚5X*K<@a~p9c(L6 )#R DATku?5w.;Kd.i̦PTl- D\aݔ*Ab6Tu?L@QU|uLDKIRQpMDjV-B C9! jZ֚ד>Äkh׆, AU?޷:/TT5FMcdx%:!~ Xa!BzX6*^bf3(j=aTr$mTt5B񆈙EVc.xr-b tUM%ʹ" <7tJ[HB<o'No[!jFh&S! 0N!_Cv{io՗"C׋wq⡙:7޵ ]x.#ۘ w-o7>DR=U1ny:?Sw͠]~㋰N /yb#x\-h'`;2 q2$CJ_!( EPBT**Xd*M:F24x,A< ~U52p6q6QT*۷ocwbQ!JzRS(э D(C~ CKj*FzT}x,80d+ T*1ňU0 ϣZ*E&ӌtȏcppˎ?鳎b73ܻcp_¹/+GjBc֬~.s/9 Od ?wN?a,BŤR)ccbwa*>o#ԨΝowQ*晽h1 K 4cy躎Rvs(nIzqQF|oՕX,f2F2@8ʚF\1s8N##?d3w| 2:<ȗeqbcHflڰ?EB,ӈ*D{OTA:V W,u0<9flڧtqɧL$4dL ?y֋Xv-xLTq5ՄkAt5i&#%B3VJcl@GE2xi$R&V\) s>q'ie@ܴ(Bd gۆxοp򹏽VGٶ`?ӧ瑇cM y}~{tNm%:a(t?H,!Jw~}}Q A,sfk' ox=wyѴ*CQ(rO*+%O2w\TEER!V}j"*_ۓvvkCV;Dox h*-"?s9Oh51Wn`i j+vpNN=0FEZ&$7JTjZ"tbv*Xz#? GP>D+_@w)ٽ芎Ra+ӎ!}_`KeBz6L'zWmo5`` zJe5a#XV C()tDzRJJj(qD' hJ<T <|ye{'Ӧɖ7I{e*۰T!\Y$8.RҎahx(8t >͘Ɇ7p-|ˊW%_.{-iN[B7^BO_77w 46664T8siiiaMQr9'p98Y:;{ g",#AyMT.fނe̙(xPdD=yy\ ( IJL2 AU5t]^iF_&U5B'D2`9kvMMl۱\ȲfLj=%j$[=w;^͝\;1?@NxexԬӣt<4o4222칳)J^5kᾇ׼t:g?%ZT~9㌳)_yإO;F}\ ja͔픜>bFKH00KS -($ |\oL)Y+Xz@zjQaiVcrkQ5AQɼEP 7V@h&SIإcO4;.JL Mdq2vnZ۱[xw5{.^XL:;lXwn)O-BFmfbRm1L׶!T*C2Dz,m̃ϒ%ޱw翱xɒ $̤l;:S.X̞3۶z* .K^I*O[-vN6BcS 1"IaX1,$ʮ-w.2@x7=Z.rJ9ҐBP]4-"jðu۱1 x<t vQ/@I__/-MY djg]Tz6#J2Eȓj"a9ҫ dupCBɸ Ȫo d|Sx̘9_E!?k?-m#?\.'Yp-mO{唽"\D[HKÏsWxJn*,+C(zH$z#B$DnI hBGc4u{ sphE<7E坴Fs)TJaT-@Pud E18e{x qԀl&KCk{'fPQ%Sh"dg?9ҿq'QTyd—[x˘9L6}fs<ȶ6khN*kFa~t&{.iBau 9\~ a(c|' PACbi*~`VO;{]Nkb_r4CĺvіOb4 >Ow7m$ ZхIe;XZ>pZ43CӋKҤmT1F?'W8DHu;RRqG)x7 ϒύ$Fʣh" dBI,U&+raLaˮvYWл9} ;v"t i}??~?ӷ['~w;zwW?:-ÌM 69YBȬ |qϔBJ3{p7=ցXs9}n>N|q9!"NFMh֑AIcH¨BI0:Y*1L0jPL MGY{nvTe O|̣sR(!"BcFK</l寢Kg9z?3?@BpRu!*罕WKZk캺pZ23g-D]PNԉDz'?ߏdNr ~~lߊgKC8rmôqsy s\xyͷxRA1ZOSY4R6+mtZ[! $!Y0*XVٯy=P67i*6D4Qs6m'ϰ4#_ڄĘ(nq"qGHX؆AԗHדDAP )A kƊSX%κT#,͟Aaz5X5vUvlE NZƵ^Æ 9zL /"4 ĺ:xIc'3^}mudfsP|iaqOs{_԰4$,CG1i!I7!KtRC##ml:RGR!,R$!$Y&&aHQ"D EdRC)mR)!\ǣZS+0w |5|f![Ʃ <߁>1Vo_TP@;7=Rίf6oJhͣ>#*,@׋~BhrS0 a 0F$R~(=X&"ű4\O'_ɄF&d*E8H1m$HAiqa,Fa&HI,080;I^_Jc8~_MSX`u`jvaХuhp~ê|ƺX5: sV+&+@ZaUdR՚By{m$a~?r?z'\{ݳv::0ǏF5g4/![v] H\'~'x+^29O]'iFdU >~$w}0RzQE@.:eH Sۯc#0J!W"{H-9M"S>QTsƐD:JiHM!ehC%eIH簭c7 )\#~A^'fqe1M~)b4QJ`at ._vڔʏex9^ѓ>~`dG6EmcuФk( yy\, 4okSLMR:an@@aQJT,T"#u ܗsE #.f f*36;bĭ?0ō#RHdqLLM Mc+4-0L0E *JV~,VDY]{ܸ[Ϳf~5hW,Blu`~X}X++}Z`ͲlZ+E4# 8> MӉDZ8sw}R09{]u;ƝzmFGIF}cb|ɩi,erbccH)1mopz20<ONC Ji c3/] %Ib,4,:&|ŹlJ$R&>~_íR(X_c]r}W zY,/.u70ЗJ;~ ~)suT$)[:f iRŃP\5YC2GN4*3 zƤ+ {/SiD^GBnOdjBHcƀѤk&=t]4I!-4$?}buH>ǽwϯ7(= s@;2v1g<\X]{mUH8JV,0!ԅ%U 5R\xσ4OHt:- MP&M;/yq8s^*$K|pwQxx +#!Xt4܀8KSxp_~#E6z 4dT]aM;{Ll.aUlyD!%Q*)(z=h-JB#R 0r6c: a&PzfȔ 2oyrm&m< _.]5pW,V!ՅXVXko[mf Cg񶷿Gm9r].8u8iZt:]JQˀ~w8$ˬ i4a;U M$IHPiH_HNN{?;V4< KJˈeR$iX:G!7V/Bъ&v ϓn dFQcXy[_gx?? ¨Xf/~a%Feƫˮ2"Vv#bB(ʃB Jk@RXGM[ȥYiYԖ?a،G'O宯}ZbB2H5c:7޼$Ґ&I12Ze~~e1v^Ghyiv$o?OI&Ց ]gS,/$Yǐ %'Ms&I.#W%}B -z qaZi#5U<|vNaQHJpIT+$k)SĶ^,;6#uw0Nun&IB WvH`4&G]nzΕw~KXHӔvwGa,Fה299DMDu/݋#폤K{\13?̡ fb8̾CufB?"Mؖ dU ʡ8xȡ1/5.$*#9s* ~CnPMaKXYOfh"2t|ޣ:6mט{⑇~u*SV0IPB:Z&uVLwCI՚5Ly&#]p18;V9i ciNyHbS'_%^}B<2H V1lJXm`Y.JHMCb#}S2o[YХ3/ٮC~ ݴQ"z0躎UH$gat!4OJ0m:C09I5؆=?^& ͥ=i`MdAP4NQ-n=Mw-?@?19S?ĵZM =Z ^nB>"8Bs0uTEXg~Vvځ贺p7nuHRaYR]GɿGA4M2IsmK GxtKıH]dQT =G/B4ˢtW7ظؠ׍hcpU{d$o̦myF/fxi(ϥZ2E09oUK1|"'8~o7|>ҵmZ 3 j^'-2SoBy7 C3}4I/c >D/>~^}/#2;;~gyI{E@HNIdhhض 2ǁq/FmZ#!MtS.ıCH'!BK!!ӐR&'-&=ظ=坤nmoLMϷx*/v +p+鷺|&9׵-|&BZ̴BFK4c2=_"۞M|@ DH\d`&.*)\q^l! «M9xW>1A7R"|iu\ is1tiLkl5c/r-$x(WF%A͡Qi:\h5Z-$<(Fi~!1}!d=rzj>RI΋pq4ߟEe}Zy\ Dh&tݬ+ZsG()# $BG?Ζ-/ϠEjy:%(=nɢXJS>;w_űaW27{$9s+4huوOE>BܮVJI>) eQ̍R{'sq-p13l8k\EW)i[Gi o:ePP(R0t/n;w9s33D 4qG,t[!qd"Ys #pt1W^,ib P6N8u|oƍ4(NPԈu>W1ncZOɐ;>He\ؘɖF7M-EġXήa.^޴^u04{$p#;-$?z\V\hԾbtuK]4Ϯ˾"VWg $R w4l6w[<>NggTՒw~|yvI2kB@fqa~Q 2,#06#c) ~X`fw}n~3o ۾Ef8hrhI$CsV"K:9\җФM7qyW!Iݙ6g9w#"*1 DA0"nMFALgvs0/lB1CC'Ш@LRin§TF4¨E6 MWx׽O|/|b@& x۞s LHHIAFZfXI2L`H931Ur6"+ئс#'|+W<`b$Ewz8',lUl>NA1YUWpl?< ASR-妛\ ˴HUM.j]$?^e9\ XW*@V#&?VXkp%C^?Z/ӬLcǕW<AϹO|SH {NU2==Mkb&*(P33sbi$QaYBƘyo"e.۳Y4ҸFIJ跈:ʟ0ms *A* 41tD xn} Xǣ>ѫ28u(DQ Ï-;b̬GeiY$iߏ(U/S(l$M{(aXڇW&~w>U~{|i3FCHMQ)O!'rٕ+_x7S0K^wda{.-8C!5VAfttݶQqn8߿WЫx{E&xF2IKSs}$"N2Ɣ t@)uIk0R1m\C{g6bIu4\+[⋏E(p8f98C,B6IsLr9)6n}wQ"|}C,n D $=N[';>ߨ"VxX5f`BR`YիX1X_i6|>{|qFY^?û?^~+ۍpuXZkKzJ9:6%oЈoF<B WӞ5?n)x83% AHIIt5q%AD"ґTd.^n4p)dY^MF, i#ex63Nߟ'Sm!]4%!0@z ]R(C͜:yJ}m'e&A CPp>%CM/i#GR4;:qRr4SfF)# #t Kf; o!RNƧ?q|gtHiZ$lԻ~^(Xv/X|Z쬋QqaXk %|A,R4Mp]S,/-mnL% y{{^Д{SrݞQ*(dJir`d8RJR "iai]$BJ(L8xhE菡iC4KTKO]Jܩ ˬXV!sFFf],-G.֨V7)67F:6ly)RdPD_YBlc[j* gfR[|r(4бQ2%6fPi@axBo "Ptu\.#α¨P O|_|m /:hrUj+. kz;E4LΞ9Ms%Y)'yw0Zs1HQ.Y/Yj &JGu)!l1]04E v/df9Hgb&6'<|h4mf[`qx4t &aLq@Z$YFft,UkDbZ._sȏ_ ^[o{8C `&[*wewiAd:(aPu0!tݓty#M[,6#@S6 s;tc߆W~> { )5P8bh )WwswQގ=k,KQY[:?/ N&& sGڃ"b\C; NaH)x\˘@+uR OrX >;s`]i5$=oi9hZh:t1("9S).vu ^6ٹA+ŨDЩ~Qv5E}|_rff޿{7L6oLZAHmP*PFV)hnA J/.V:GKMB̌HkfXX*/޳/~yɦcNE!sdR)$I}lEQ.hQiڤiJ@Q$ofǽP_ 1Hx،[0s p"-XHH&H,@#"%S`Z,Kv2P;IUJtT;&oaiq?3I]= ߄䈓>YHw: bS^/Q#7ku]R2+4km*2s3Kڝ 7ejx#P.o _c6}k|jh ff͛9rJٽ4 ^7hY*yvcsenE)g4j!F",IfBQ,;## xɎ7JIAF+t bZ:]|,fl,CbJk8Hע:gdA:(&Lj> ~JEt]ʕq>}|[K|gIBFf+Nspx?/b\ր/̔WARAx=mד8L?pu0],ĉCW~z_e~+ +8ƶ\4!"t]'IS,[K_z) \K3i>WoB&c[)f1вtIOk>,)Ri3Hu+Q2u>M,o}3/{+ضsjTjv;[FXݞ/I@^Ak .݈RG{/~ KK5Gg?64AӾ~qgmײpãcKQd+}Fudf> qa:ɪߑ GH)z^Wi=(@|/*3sn?]aqr9*ITH5#ef1\ƴ #!/&9J5T@qRqnĵGiP-Os ldaU&&n&Q}Sh\#Oiw(xq,M1* gԦX8wcl-2m I XymdM|nE6]Eh+}{M[6!IeLMM|%h9n,3<2G=+{cnm0ɶ#-UCK ӈ>wm1 vdILrl&PEsg`q`,,3f[IFԡ\\rs\1Ǐ  05,32'PYFuH[ M/sF<4Ng,/mǼ~͠$Rl[+3U؅>ً^m]߫4uz/Q@[ IQ,ދmr,/}8z?uoza:Yi~s 4ڇ9E5s&9wѫfl։wc#`j6420 fn#B4'J#w@q.l!E]P:J; }v,lGAedət{>Þo-o8e4xo^W161Xhؾ\Xw]s;Ɯ'|!o`0z<^xl_ Y_~ӊ/Jaꊫv}ǀ} }`xA_ջyq\$$}fps.#C$iFPqʎI3y>>~jl}o`g1M?2\Nu8ND8cͣqԢW_qqzyñSft °kF5Xn԰a8W%Cz:#Iz=@FQ'@FH7ьcp'(`e# aDIDgk0GXt۪kHEtHT?+Gع?cn1can%sh)=;ÎTX>qq9N:ͱcG v<4{^cxdRc$ лڣIYH2}04*4X< {\Γ-$H=c"2\ -Wiw)t(3s ߏ+(->o{[ޗ @N'Vj,l޻*!78b/x|q6>]Wh|/5_40 y=o&bҬC#3?&fͣL!ulA!=hD<`hT˻h1L$uO jV?:\rPI+$N0 v #"E -#U=,C\ y,BIZ(8y m$"8uSFːFD#Wedt+R~̄B! jnF Rb]G et][jт)'+kfHE1Q=:wizg?eC"C da'}&J-OtQ{G}R8u=]IpA/F;7>c,N54Mq]v;wU5r >0~߿}\x'I 󄁏T+El7?2JtvngN%ۛ`tzYԡ; Yg?JRm.ˍ{ضGuO=bE _r20;kW`0#hHqXz3{iO fyw tH%y,3TO# Bu۩`K rn!c~䆛nƵ-r^ 6yӁ]zǬǯ[z0g'fJ@$IVjv]EQih|+wҗ}CtKuB0Ѩٳg8y4'?D wcmy6?Ƌ_  Y߽/47>Ti+23Dvk=NqQ ۥzFc^{8P¾4V8n ]gbb~2s vv'^-z6Y"7l<&}IJG 8y8&q^@\fqa{366?c|p?{9Ϟ,4ˢ 1t?K{rq#~] 4'KYƲJfnF?F ]+`[~NcT03.5Nף9K5ЅN Oz!$AJJR92`e2 L+dR,P@6hgq42saN:=Pʍ7=71= Ôa{;76Xy!|\fbsi_`u.%~g=s%ˬ684 05n{sT(9LVc>it3V84$IH2L˼`.ſg) ~P ؍iQEd!qA):&Qahz8$hwe@>A4Y֧qʥJE4]{ !I3ng-i6;B58u쟱o`inٓ&wBmHSEr%F,# ; "49+aR/dlbRJ# (%#'~[nX@*;"GN~^{ !9y6l&]Т2Dv~* JͅyVjJV-m}.uSNO7޸koF)E\ȣp\quM7g:!rMĪ tuP*"c9ڭ8)Xf(j!%$T܊Gq<ACDe蚇!u!m%>VsmfBg)Wvm+ml#Ha02r$ yB_\=5TwU41⤃(ayA%覅h40 xz#dGL4.ã{0Bh薍$C1Q"+88"۝3} WnRa/y_4#H}ir EDez#Q₱_u΀GgϜV15)z=]dkNi_g&xF$H)/)ZJA@J6,2,EQy:x߻ ӡj1::́GQ_/k_*Vc|k+0V$nfɓ'⊫AH* gTTͺیxl*jBS&^nvwCwAɲ>fiyJhG%Fga~$K$IvsAoύPO33$`I0^)Tlæ^0ch"i*YZG=,跛űTڄcH Y Jnr:!\JqM ¨E tQSڂaVH6 T:#XfUchGHs\~(_nLjˣb4$Y,nCB(Fyjz?5#,ٝ%'%/x^njN݄(貴8^vuMJ?\!iP+%SG]&H3mLm܆R(:v((.|̝R 0.i2 4K(҈À\oTU4u<殯}LwM|SAG) )%.W.+@Bezr*o# ^V]#[u86{b@1G\qG ,;O?X$ Hr" 4EuѡݜR~ qI"DBS\Cj&}'y D 0I iDq4 u:T+Ҫ9[ [& B `nn k#M<ҸmWG=4mnwN(o )QRzR,/3R!K#0C7+m,/#W8pu;7B}ϭBKu שe CC:K~%M7]r=غj:~1<+v=g\^7d˵ë~fcj gߏos)#ڀ~#@p.߹j̾~9M4&ֲcIM^˿w{t8c\vn^MKNj$, MъXh]LpziF~$i oK)lzoèjDt ,@.mFezMSƉ.I*K1`Cj:R꘦K$( -v8ی ]& :iD_0zVIbEJs^ (qbys EflXaEP`yRoMe¨3`gxS,-?Ds Ju )lP"h$AM>O)qCC.n,&i q(pJiæmWrClq9G f;u8e!%Ϣt/Sޛ~pu7 Hhegk'jU@jrEXSXLJm >>;^lЄK, z:Mct)8uo}zvM>(Bj̫~ՌOnܿ9˙g(KHmЌS+VB@G(QBCb@c(Bqp|/*m_g>OWP$thæMϧQ HFA?s؆IdY4X$~΁T;ulH'lPl%z($e}$q a⨋iX{=Hqd!~0Or i@Ǟ\-p(G {E:!өQ)OR,\iWx"ar8VYF$qH>Rr4" f1IE3TD>WD+,׎Ɂr=C0 "#˘feb&ir"s0wrՑΝ(_X̳Xk1TtJS3T ,8 Q[{4>X1xЃ`Ťv|V{ac:G$^gPJP.>des ffH;3q Ugozn aeʐM9~(#cT*Cɉy;4$?Ī $/bRNV0j29qBshO 0t4 alf28QG-4iYB+:LPqn(%1 qGsRa]d(:hq"QG Au"N"ōv|AСxz(9vѥM>7B)ny!)6f.n/P,mehid*],Go񆘝8 ,iMQm$:F!!Nc0x:v(cZ%l+GM=QJ042EZ"8¸C?-/Yo>ذaae)gYHÔ3gfŒabQ.gظq#R+4aB0(`.Je3 U@LvCq->{F04 ][mSҌ /^۞l~Ļ>/ضC+ IS`uns*:A"S+ڐsi:hi$fm (1{癟9Ǧ-/O:f:s]Yj9USLo~K LG~*N˲R&n>$m6IeDΒ\uԗfou*Zcbbھ&]7%J+dO9q^4=MޛR Ą8q%FFq(B$ss4m**n۶iwڹ) ~MJI <4Ӵ3rhtN ADQ!5,HhRaHpm8b`A vL *C z!^*C;фAΛ&NB3r;Dq(jME!7H!jicY-_6JF80f~)TMFH>+ngn=eFGvI30B{0<ې2b _[1vS@.,BJGW.<&Ls;YЅιϑ/n 2i2:zI9%/K}2cNLB=GqscDATJƞWGe a!!tRa~;¦//C zxn8 (/4F2 hv@Bt;g6SF3g#Ji J-4gc;ޠΟĤi̎[1MIʺon}5<@.҈ccB:)6 mbv?C|&csdEN4G5Jq;Arz=_Ʋs/=ʩ_FiPB14 H5f翈)= r|TVQ[ DYaU)*~l#,.>axXVщi7qic;[[6t Rϱm+IYCZ{(bO:L%^8顒.]܏i,ˍ#=!K]HdP\E7cU`r8EvQ"#JđC):6ccqӏ~Ӳ.[p8r(w^ũxӖ79Q^7fN2]A-93ދUԅˬfSB'H!Wf)NG( H>0.X FU}|_>aO??2B \.ۿF>xp`4ƄYaؖ4Mh;n<)IeH!_bP[>rF+%*?3{ŹYuw7.,[wߴw;Ȇ%NhwhcES0A 0tMVZoP4"I*#B(&KS$e|l~^_$i J33g>|k_{ڵ?|l<8膆i v3A0h%IB.W$jJ)۷o0̋7e'c ͨSRHN<-۸i-/%#-E54 +7 ʠ:H҄4ñH6qai˸I$sHa*E4q,]+) @&qA,Ls$#NI ","M$It:sdi ]Z$躍߫ia#Kڝe*qb6i,W<ytӢ<(#DF2IԦ;En*av*,,Aq1DM dJ DmD KR,R . d- An2L_#q3$h+n5Pm``e-γ# 3L)tsfi2T4} ZJ4IDhi$InXCm'8f>Pu6= TFjenxLMM4xȷT Vg>)RM M/U F8N)UI3€4>"͍'| 1EԡV'. d_\&DrqAJt&#J1* AĘ `^O-%]dI-XFv$U0L#@ؓi_":H)a% %Ku*]z$m-b `~aJ^ƈno.)̾M|/k^K qJt4-, w(i50T(яNXE^XLv Ө8S(yojBIɹEE^k٥߃&s,/$WòeK87(qfnrKncmke?U^p^->6lNR\%34%22iд@UMt[hbe($Qp}e Mr!&H ,PJs0 3M߽//-hvj%˿Knf^Bufgx9}_ᑑ4 ݱ@9C!IAmE2( q`YN/_l4Re@dّO<}MhOdqH02a9eTE5#vn+#M:dIHwYыtK(9%=(@GKF^=L CIGq)jGq"z 4aMB&(L ˍ!4h'۷q̇ڂ&"=2ffAWQY(]XaQvwK iӮ-[wnছnXƵ򘺾&'Lek&XaWPxPS_ɈUFqA6 CeMOE '9wW3>6c0=">Wxǻ̩ӧ>~dQJ$I]edd ٮj7%ȵ8]3B2 nI(kFNOkow|-!ڋgbZ#i@*:QFq 4 H (UIT(cU!(%Ѵ6aGձL% !mt:` 2Ka /7L$KvtQ"|4$Mc8s?J3@P$_zôM n lmbloU\{v{4lS8 FG"rdѡ #zb[F3gq.Fw|Ӳ0u  %CR.8iN8CҨh26<;yv%}C#Z-Gĉ|/K/z7iOg]ry4 sx2&R1(C$$Im)%r#( 9r_ൿ\g3;3K.Wosx>LΞ=MQm6fgr 䳟$W\qYr}:1q7u2ܔ$"B[12e`噦a 5&u,Y+K<)Jl0pWq3Ncyĉ$K[M,eWѤ%*K\G7G144!DB\vqX 2ŵY"Msvq0FG"Gfĉl|zLeriC7P~8Ʋ=°cQ)tXvM$,t!m̓W5OCLi!uP_Cj$n;w|2\o0 9e嘝 I ]wh xuVyoj@ҁ)i:<9w hx`eN}vVA}(ia>[Yft*L{[/㕷CHmHΝSI/1_هشy3poݤrYȑp~cۜ>|4r 715-[14?+6&ؾD^Hu>gkZ! . ۪;"4⸇"LEy#`C+oѺz Mำ62p6s'b+X2'R,[#2.)`@wpicg)$^;γ1:''?yٟesdXDt)PūFk$_1|οgį~mA Vزy?EQ(ݞ?O1l/?Z4mۦ37σy-ʁ seyi{3O0j,eqǝ0R9,." ڝ&ѐ|G Is j: ᏻxswi*7MYZ\"*,_kjY6a*:nJ|JfP(dIɳ,+p k ̦:Wt4j>K};]V_`RYpUs.L'0hYZ.zhS96a2VY$b4 J'>H Md7 !CS# q'4UDY'AUNӪ`U@*hEVdYD 5^ZESNh+x>A0B7C if:wS\Ͽ4P9s{(h߽H!%n&AG*H(rI ؖMwB_,h6NPƨjP)ʠ3w(& Q*ǎyT7Rǭx,-o~Ko3v\~y;>KZ~wiwZ|ӟn>A ln@7LY>,-ܳc~~Cs4m_cG9to4'r8VTB$qZ˘ I0@k/9/GՠEA 9},wv_`wTg($PE`sZ^U?Jr&HBGUs81 BQQuUlf>?أX""1Lf pN :Qa4C7lq%I覍Ej}nEU_M/шڋ:}_[(G]*YW;iC$`{+W~>̑o^;IyUxM/kq*exdty*Ns)  C?WmS8Jq9tnԩzMxB I@w~ D zSVq>@01heBx+ofz5^_^1Yzx̱'8KcGvqlg$ Lh,?h|۩(ȒAj]wEFwi4V UU2{?UnUoMsӈH2oQ8dZSj  HL ǭ'|@O(dQ;N"3O^dߠ²},FdB9YGi6Nf91ji0n"2nW&&hTk')BU4!k-$]lܫH!uTm̒)R4{۟$ALnb.RvP93-nM~ˡi/eIjgo5lOO |;xɧLݹj1?:QM!c<+[|IZ t$b @ʂ0 P5" nW\VI\Mv'>6gϞMo|;go;NNp_xE]4jw0AȜ3 4D`)9aTWQIRd4h6q v贗  أ.$},gЭ*SjeF8B4F UU(,QDJ!#uls$KK'iw04ҫ(hP%"=C! t]G2j4m*qi CidYpԣǞc4B>GdۻNB5 CequG9؎s2g".1Iw4V("0qYv7ewq\w;8(80uTxf8cܪe8$aO^,.>I1Yך!zL"RDd$i3ɒ!{O6U(% YZ1.al%4VmD?굨֎*Eq'i4O#$Ķ($jJA!M,FQJvREW]jFQI ðm,W{BNa6BN0ɳz,$jxpBVλ_E/JKKy>]AEAyS$6WOu[Ee9t m4V*7+[)@lx<{X[0XTU {{MTfgVx׻ΔB$@ʜ"eo GfL9* |Bo4Y;gU,T9( btq G.ΝW0UAJpVDZY&cx4X dQ$FSmf"NHiiU D&.0 Om$y0fb۟*&Kl.gs tƓki2? DENP\ mBtWp4enX +Fd YNRZDf/!yYi qVBa)*! RD2I˶m4-V]c{{un복?p.kkL&>ј4MF,/hhZXVV4'IeI >~ K[F L:tsir ]cm}0Lh4ZqضCŭ UsW|"zEQP5%~c~xހmWv lǢh`:ǎSS>vvvv9s,?}w;|;$Ǐo)‘cGXZZFQL&ʴ2y u. y44mm ILu4M#&2ff*tf? ΝJrӧԛ(튾˱MVi:fE)=2 z͍TU8f8h4a[׮)2TNEe긴# #$F*j$)J i.EPtJEU)RY5ґЦ_7̲w\)ѳ,g2 .jf豓ض`PZ"%I R7]/#[×%8O?:|DQz[)"Ig}_rlȳU^8uq7a6 Q33E8DaLgV&M n; 54J]&ITrx0߻ʕ) =?V>O&i-oGzXK0 0tZII4Y;IN1[膆i0*U'M},!I#fGLVH aTYk{[4gEN T Ec8e1uỴ H$hj6x_r1Պ@T$%RߧVa6x^9XrJ<6B`ez,@(YFբ^oDQjI!BGt,EŲr}9 UjDdYFR7B`9.RI*I"@j.$ә[M0IV׽,ǾIK/`;Ûh4( ~, 1M㦭Po#ܸopqOc?s<+βDg G#׹y{3lQΧm}Zۨt`tqlkEvu ^EU`݅e4UO0IqQ% E RDODXC~ ?o;KyDi<$> JeC:]%M}5*^\fxQTd:a|Dn .2ԪIt?&Lmӟl3̺ 2 B*,{HC6oS&wy;"TC'>IF{4 >a6J9lǡ`; {tS(ʟ$SLgi=ZVeh@U5 &s$)A(t:sdm9iZGAQ'>f !(2-(@4tBU\ (u tSG<Q&Q0?NzG`oRëzc%Ic`BLH/-Mޓfcc4+8q4{]Ugfv!eqd│D<~\CN{_ i'tx21(mgIO?Aw ϓĂ rjGI8ǫ) z?$fc .g['4V ])`<1񻘖 e?LZ~;{g1iC( B=PT`,4f1I<Y9DbPʎ*:RN%EJYQJv 0Pl a:BU0I#b\0JAjAmE:ed`OQdiJ,c:aK$I0,oi*ϝ$IÐ(>˦h0;@3C^Ƕϻ&_EUL ,0ȦAei q sQDaHQ1IR/-q WxǷw8B)¯jlQu=Vt׭`Yp++GSO=R)8'%Ghvwqٛpi+\LJ?}C!äJ~IjDmn;uv͕+(23ǵW:q$M14ÇO3 T0&?ќ1 dmuHs Ic4a2f4dyv,"'f0Pfa8`CBH{߃}C).HIRuYJZŲl˲Kݎ4ƲL,Zs;S:2L1iK6L&aPT\ץVh6i;[3&BJ4#"Ft;^M,09u77E@~}=Z9envM!%i1 |\!$*r C'#$JMטF}vv*n 5SNqIZ_W)9׾XX8 TU@<iNz b|-q s2C4&s8ӟ~Coz;Be;Cʩdb~냿܋:GafzatftKخx^u,8u$-MXU>Mw7+/Ȋ|*U_uDQE0-Cdvn|{$Jn-:Z"QbE/ꕫ̑eȂ`2c}cy^=}Ǐi )(E/mo`wB)\"КZs}ש.px绾.`@ARkn;s'A1mVY`Ƨ65i; &IfI$QTH*ޓXV'=^ux} Я1uvȍPt菮8M\Lq+iR&$IMl ?[,E}UoY NFm,iEIòdq=h2'O|38wy7k?vd23OsU,3,-/Q7<MS1VNL)h8ƕ$Ҙ^wť%T]'2tU%JS$!2,u0µ]`g=fgg(\L!]W._ڵ`#@Ȃ(JPd QhNgv~G0 4MV+Qedaa[m3\b};?u.H.YLA0lcu<{/gYYK$v8~oFTbq^/ OS"~Х(2, N{zj!Bb{*&~M~LJ¨*'7Ѝ i"Eͩ8G)pAMbF=(RGVGh.qUı?q "OR}mkXv]1fťffgq4K !K}u:"c(r.׮])677xWl_~\1zftƧh7>I~`jmѥ@* KK,q\l"/r HEik([Vèی7VNh̳}zm 81젧!(0uшwxTfb;*isa=`2\2ixZ(6,5ۈ C TLֱE#hֱ-IE @ Ӫ)^CȀ,gi`˙E)qmR")=."Ԉ$vW=rcd2 B|.lB|Qjgk={? cum?q*+hʖc;yA,TM"PI*eOS CG5 0tt]+E|Bd7vVyV{ufffv2|7+_o'8D5[$yQz<7Lд$1xpGTffg9"fJru5è,?E怊?}.EP&MmM75v~{6Wt[ ~ihQaY+| Z)z&dO6㐥Ez羏,ׯowއDy<1]h 2i!yw_Xa{m,OQUC\<M-,hr 5@SLSYArZ8 yMc14(bY'˻d_4#DBPr°Lti1;!4cUlzxlo?F]^]@H0Sd>AAIZ۩x g}I:"Lk]ӈ,s\]/b[u,A y9nT+-,5xB 6mc9Eǧ{݆/[7Wʟ>lKx8vBܛLlmoPtj[44EM2(F!YY9(&%V3uRsv\TFo4ItIQ~1C\FQ-MjcMSPȲkkN$qh/t-UᵴaL&cT$M L@P{'! ]GJv:,+4k_ +_N?r90BXN0 9z$ɲlџȑ|?2ɧ _Ғ>^Cq uSke=`[mSnұn'I|&CsHui4FN9k4[$ii=v/<)*'};;OS=ahd0i1d8!g>Tf y2_KZ,o˂ܻi܅iDA>?հ7jR)x904,ȲS(ln=iβz,w:ke/`mndyq}Ab*aS2? 㤔w4 z.`eVA I9HԿ)x[Qxa ,S-s42 bZ&i؂/ln1Q#yAѦQoQJ6>:G045in'N7iT*bss$cF5ë,$:Ey4CCY(hS~a`(* hprMsh@<[9i[DaӬ07ױ4N3Eu!/Lf;6:a8dińO1H=yLt1 (pB)ۄQ_PuPt~":tw)RZ3B/RYMVcn~q㨄M$۱q]bi<# IR~W꟱z9$j8.ia6Q&Yq8RJ8R|?Ӳ(JHEh(B(jT x=vٟR|?DL,ER腐8iyyYZP+cr'[. ?S,,, DIBy6IɃ(P,/Jw4?58tU}>|c8Qe233Prc:>?&cZ S$Y yV2hiضT5zid{{ڳ ޳Sd1%6ޚ!Go{_#N3` ]Sn{ h` 6?S O_p8<}I[[7nz$gk}#TtE84Ӭ*Q21m4!(Jġ !Pei7E0( G3?J|.Ӊ勬ԛ44B;T:~~ )&UQYv?C{{g]"6iVdl]<150$>L^G& ec%+R4M#300Tph-Cd8N\B3OA܈8 IpCLW  En͢jP*RW5p <7z~# Addiٻ's( = 4T4,vfJFL /SUBmG1i&MPh ) q~Ty9~њi8wǝK|7X_UӚgfv4HR"*4M0`8D{{ =fqk>|)!\EIgY8A!05}Z""%._ (T*UrL$QB S._ZPE'i/#c=EwHo& D:!3\[}M%NFXfN .Pbs.. Mj#3\Ҩ-_2\t! K"R 4OQSze7ԓ?NqŤ m0F88 4S8Z.LĶLicyYi:obaP9`*˧ !ێñc9z8ox[^;(n5^ 0Ci:YZ: dY$iB^%x;nn]sӜxz= !QVq<2 ǻhiHӲ}A7QIH&}-ݽ⑩'Z,&F$&Xmɳ ;OtM:9BqQC,j6R&x!֢[Ŷ$þBF>%T5PuҤYx Ap02fJDiDtf^CV-k[P՜peTejYzY,ϧ e*-A(~OePHZ6H, tCaw{J%Kw}HOHUiSo{ėE /GK/!QabZ攲]L+Ӫ_LYueBR#UUS9ZMD|Pծ^ǫVq Q$q]:VeJ_VOF ?iދS?p:Q0A&RŭmQH ,&24uL<$K3P`.@˫PԛzM"%ӨLU!"$Ǯk&RFB Je4i2$qPUP,$YZK/`M^Z0[E72LMu$ɒn& ^8~p.ƱA8 4j+Fש 1+Cmi9abZMr%2-\o4?II|"WǮYkr1@E9BUoցV0Pj))S7EQ0B:i@=+z(>ۚD8q4Pƣ'bM-e$BlA PF&ii/SV.j^ѨŋY_*TP(YlY8 R Pӏ?O_-$kpI>n2^4<$IFhF)Ϣ?ի蚎looTu4)833l`9,g͘(r$ W߿BoR2쓤C\MEZ<-($65zdywry4v-4BU lC7T`Z}tﳵ),F})jx1 Ǐn %7+8V<.a*6Wf3HEc#emyXvBfDd2h6,eiD |7sԽa'!>ofcCXjh4@@a HUSvӲItzPA8&RBx1 R8XV mI6BW 49vNV\"I, I"vv6ȲzqF.6ne#ގ{loT,QP0a<,{tAHBq#Ǿ8K v~,7ȱmZ)y>M*ݑ,GQUF1Qq [=K3L$M(F48u0 zԪUPUQHs.~&2 ~ifIӬt6rzϫBJ^)Ն%E_ p'>c^m.Xkh«tn5{ZDdhJ ȔMzw nxGf{,-Z/$ao'NFՠ8)oG8Xa24*, dN!3g?kmt @A%NFY(B jBdIK %F 4AS,kLɲAIG+`(Ų\2j܃j,V;*gY H^TV4Ȓ xe0PuDLH !Hy;Q iT E~2Wّe)a"28PB Ø(V*(Jū(bqyej _/aiJ0vRvʖ vʲ,8B2 ) 1%pķL/]iZxG$9A z T*j9Lxh?[,}EFo< OTmKs 8`'$2q|0.$GGP䀢R7t",/XY9Yj_)x0${$j~:pyV{L8|mtpi˔\c9Luj?BכX[̉㧨lllrcc8`)W>˱V=C$ojIHaƓ :BɋxPLMIĄ JFH4LM1*4YeCH$cgsE+(m&4:G?)Tg)>1)?5E((B0LM x (ضCSMuЋ['x"My0nUMV\8. ,'$ɴ͡Ln-/xE& uy"Kr@QB%$qNq|^Ż*Vw}7Rf?/ͫ,7u~^i"TvAUʪ(؛h9N*i ],A,1ĺU<@}NAel>˽wE1,#Y`ڴg"G, Vc8Z#ū*]C4\\ED*a 8tG?a|M8Wמg} P@7L(T}=& ze6Q)}j99+$YabU GWE0 xe̒fZ2dQhGqOFs Ihͳty-h] q`z>[EQT &(M òR - 㖬K͏8L|n!y8676TjhJBPT$,l}—שjn8)H3,Fݽ>j~k/8>;4AUTbg:_{|4w."_]CT^PzEJt* ,ʰ~$g)U* "HeB!'t*qCI<E{jչqw? vvıF> Xea,J& 0t$.>yY3쎯ǏC=y,u<;@:m< @5<$f!׻"FH' Hl#t01 UTaaU#,( E)sŃROZQN ,cW?n.]ƃTJ49t,e4F_peff_]3/Ae744a2TkU@jZDsNbFikX(i~SBf26U4)/gTKĥK˗yN La0L{DZyя޿,,,`=r ;U T- IjE>m\ =]wMDdEPJ5]װm̀A@z ;] ss3|_<LJ>x!ganl|J_>)tGcTAsa%LUkϡ2`Bөqccv{.3 {$QU] B(58V=DlluBj2&C*3TFaU躎K({dZN$B}08`xD ]kZQY`o3 Y\du ]079vѵnubmT4 <İZYFPz1;QҀrTݼ~~K. |uB IR/ʖt{],0LҬVP5Sy/}-eI1VU2MLSރ]*70t]gff# y|x$իc疈4Mvq]PUIsO$~#n Ae0V[hJۥ?2T^Ӳ~0n4-T|/]l%K kPNy[ނc;loop]`y6ɳ4'#b%dqKg40;@f]nÏz¥IJ ,V9Fb$2CUY9PM^W1ge!0/P4eڒ%yV.M'RL"I2<׹IRKr%#J4M1LUS9x>͠hkXEL1Y+(JGUӠ!sLۦcTT8JؖL ׫t8t(Z,gވE>\ǫ`f}"K3|zM0FXRDq daI8r&>cHhg( }78uA\<{?ا("t Mu1 io$7p4SXwEƙs$?c9|Q,ɋNaW_ِR bH7Ey⸤+Bem3( H֜QN[ H8?VGj)E0n?#7_͍lx?¯?pxy^2eH6lmo2m # GA%کJ,SXIM(Yd(Y S ͒Tk(Ay,n)XHxаy.Iۮ1*M!T h/jd.o{ ݭI _zwa+jiG)]pS"W2c1}0LiiQHQ@Eai:aV{ `|'"TE%Kל0 ,=,1uT쏫e$%=V;.8ضP^.SsOG~cO<.kWJxE1BUp a r$M<[W.rTUO^@Q75Lʉr6lC(ϑ%qxd|w3YWV*Qëެ37g>?+w}_injQB(:i2  єb8M$YRP,75@Sus,8svfp"E; {]lfQd>IawQHQ$X)!~C-r BWٸGg,:ט]>ʑ˿ \3 WD=,)7)O2ky~{Μȳ)@˶ڑ$ID&E%OJVPiN*Y0L0-J(Mc!9YkSsaT /+~V E-S>@ ׮]u=*^8)({K_;! #wv dDR)"M rIgu^׿w»뻹{oj4@ 9{]?!?$+ ץC$mOn GDaB@UcwGЬtI<0X_g؋??#W6Ec*By R=M;]uoƇ8r03դP ŒJc~ Pxïg">Mo3:u0<Վhux 'p C0]2X,Ȑ,86UŘ"P yA(i-h `07YlA PHCWtBƌF䲁YшF1͡ Wffw->ڷ?/l`Uj҉8o}Zl3?ffD_@_(IT[˧jHiz j!hMU!*gGǨ^:S){8M jlXDQaMӦ_ys OĥpƓO<ɑ#Ljp0 KR Pq}ٙ&?7~PBstZF37#2g{k{?]lKؙ{8tOZ@R=?^>c%z#H!MӰ]fyr3l^WA3V8s@F 7z ۻuYfHQI7 C8%=֍-nXeۣ2-N<{($:MJm"Lf},B]TnxU'o&TyahpWȈt߄}^&9z]ƛviIǙ#C`vBp ,ލ-ri.~d\ٺ? 5xuLAlak3 xǷv]֬!W~IPJI$hz) UhI#M(PآќaO%]|R8@l|?d<c[E^ i31J]7ԩαP_a§}JO֋ ڵU:$I C0g4]^?C|q׽GeqC+$IN^( Zr䫝hd뀮5 ٱ'o=$>r'Q_-#&NnTSZiA# ׉!v۶i4,eRTP;tdIBѕc> ΎQTU7Nш) +;hB>_u8K"@u4]RfQH~2;^7T7< CoBRZFQur9Il~CqlLN2=5ͿۿS; ,.G76NGEHJf$gF-<Jk6v؆xVZi$Pj-oDBPmz{{p]T&CoO/#(")Uy5X K$=JmGJFۻ\.Ƿllt_{~OaRЌގjhzYRUHB`i8aK& pE̓(4tV3黒i6 9l "s]~E 94$]@OieT-pSspwYz_QuWԠ`Rt]Ju !LV<6RlFШ.%IEY,Gm|rJ"D59 yG"A*4g ΋ ]Y"h锋%dYAUU]$5?mTh/TUEw^$d,+M 0 ++..]~]}sxCMFV|*r-AQ.*syE")uYr ϩ餅\$I|JYaz{2IgLNNvZ4UCRTMGR4ܦS.(@A("i8iz|!$Ic{yٷgf˵W>'λ={WkOxƪU+ ݲ3d =4yͥfIYuD``p#O l4-, F߫bVI6 1et!2R6opH&'.BɧnI%T9A2yp5e#o_!=+4t]h-$N#E|SB׍(zo|M@)y92`#CmDKv >f6=4 '#|Ja%6jl&\طnrMv7pj^zƏ QAsq=qI'S_|~,::yQzI^fϲe0 +ʦdBUF-u%z`ApT2A=AP+O\?ZM C MF>vRi{v>4^zjV\@ GᕯF7"P ZBhsBH\"O~;y[;rVd+- cf*`&u\BRg@IíbIt THg,CXz''A3䲗NqȤH+*_#6;|N*3ES .F$ w0ַn|=Y"J2]3Qa(Iw"&XŞ,oMGeK,ߺ 5f|2 0u:At] 41M Ӵ(16Os  J2Yf#HBZ#JSבhkň0Dmw#|*.Ƚ{ci<7ZFTA9zto|dE=kJ-sjã#{ұYN#`a8% OAz1Z>$' *2a0=ss?ZS'?;Mîuc Se횵d2zzY>6L*DVd4U9[P(_ٲ>)| K)JzH,T:Spͯe6kzَ<k_خ&I&vmwIXCXk3hFUͣIl,˧5.9;w$5O?E(^ f\k֮~p E:~cI0H4[uػkwy',#n\l6G*ZRr+D^ N}߼o~;TYHJc,xN}?cc 2Co2xe4k_Υ ?Q7c&" Q5IQavGLT4:&]ݸl6мHcgwEddY t#A\4-$dg2@2 bY Z- 4!x6oO.F:Vlx]L:n4dmGyag"L,Z0&I9d2*'Ӵp]Ry xz6D((K #Bիc͚59r4KZk~NK+{ 7aXts5Q(gXFfKtYj{fBA3RBFQ*T G21L=̠YD>:]+!D@fGi4JUrUѴ{E?e9Jm;01NgG*;mCV-GSKneh`N&bQDL\>\e /j&VZgsƷa h8'ز|_披B^ҙ+_#Z..&(Zu$!B$dD[MX6 .D ]@I %*]HdPbFBC=7AƺYe+V{r|²l+>q??`67X洬HhE O*a$##Ck.V"P+7žף;Fdx3$3ze+>L6uHmzDSO>eh!欰< MFZTf](e%h88 \ETe\2FF9ִIJ$~SPPu"K2|λY?Ƹ592CG嫱t/p53spgk7a$:Zy-cjAadSG ôIFIUA:/%1H&\ n0CfSaeɎMO׼ZA٭1]&۷m_"_r[iθX0d7l4uSԗt͜W`kp"^IDJh KVE"ycv~k|T=B_ap`Yzx~J󦲮U8 /~vUq&L o|g#,qkjJ20 Jm$l=_gE EUٸi#۶mcdaPI&M So[n~?WoA 0K,?ߦ3-:Vf:rru4GJAmLQTq>BIB `v Z,UVr<HUֳ:5w!}?i"o GIR{˳Q-!pvL&M!_VLdp(aכZ Q6Q[DSVV7Ps߽_qD]7$J! Cݏmj /_ LVfmdIg6\ ܸz#n5\j[W×%~ous[~]\q j3Cè昲,7[S$ M# b ` 7Z6$*:!e155M\2 \A"T8HRt:}9/DoeAD5T9ϋD5M;m[}\~=7l]cc^4Τq=]d3K}4Kѫh7Κ!>9iRkv/I (YUU<ϧT,݃^覉jgtw,/nVlٲO~v^ykut{+BC. 8<%/8G=n(3380Ni6rtmcS ,X$on9.!Hο';KmZ !BȀxK^n~6X,QձA 0t0Ә:/⼉+sކqAV /$%r׍^@ e !<%4Na P::)" p4&26ӗ5ıe ήwH/1'vec$'MDe`& 2Jv<^gA[/4%a(kQ{>HːSS$4 DUTZ * ss ]P,55VV/}^9߷طs;S0ǟO5KAp g݇֎"+*3SG6Ӂz$j$N$3O38؇{b]'IQ.q`|?W]uВ)if˓s?{*NIxgӽ̐jȷYvCCT*e*9IM/c.JZJܾΜBR!u*:brr2$=ȑ EgʹBΎ$9$ۑ]]~w:ǜQLG.Kg.},mJʥ"CC}B!8T*eaVĩkUҙlS KW[2FbTD mO>V){nk+ڣ<!D<]]lx_m\yOo{G<XWkHvo[6֬]ņ`!!>y[ySGCK6P(ro|,jA3YlNt:渼عo>7׽M)(0e 3cBhH3}\8 <.̲e6Y<蘳K>'o(%I/nu_ *Blc=Ⳍx6N j \@8fC#&B%S-x^WΡyUts$;Te?ƽwߋx*0:2APer2M&ڔ|!6K' |!B|JsiM[_,5meeih i'|GQx!>,4P϶.Fr 2ŋ9 Yfgcp.{̹Elcbbb84sAa"JsAbڙ#YQ3טDAm̩Ljc.-\{1Nb7KLL̅I&$ ^L9 1 2 1468 1104 1 NH@IDATx`ՙ^]޻,˽bz!l6B&l:I6lz T::06eKz9.۲,3339ykł%@@ٓ(0h ҠI5*/ xT'BЉP;hl@#ķ)@@P;hl@#Rvu (P @h(|nPAP!#_=%`k (o GhzAk  GN{nx.  (pDJ( 0(0h A*p@x & 3avN T ~X'7+@@;::dľ&o|ф@&K!9bU8p8.àNx  E Pˑ#ߚ*vĿo`xPoPS4(/@@åsz\{}#x?m PP)0$@|)`|D@cG#}r =л<.A#){SYA>wSR⠆8WCmm8uOuH)P @@#QM sx' (0L8j@<26nv@'NxфwIs_OO:he@Gr8Q@}]'< e(PP(0,2CPpm@N4 @|/ #sxd}a$/%ၯ-@ ;>r:Up\Jp$@@'&#n(P S9Sӌ` 7YPã?ãu pxpFnz ލ0pٍqJ;?N_l!0AU (P`H(pH@<$On݆r[)w6P @@åfb\evdaڬz|aoUTG@լ-klu OL?V66Qభ۰ʞUKOj_hD[LlvXZjgYRRіhiKHL:]Ȃ._t:t{|in@MF셗s9̰"۸#:{◭83Vmwo%Oϵ11o-6;%ɏZ}c=Km׿$ۼVgS&6lYNNuv%$$Z8,\GL?IE$ r \(##>&@vv؟]0Z-?֭modۜvXBJ]ɖ]occNqt7eq7ڼ%Kk-ڶߟlg7'XMue'e3fY Wo)%_M?i&;\vf6̈@0Wq\UdrIJtEQ'%D>=r{hRo瞔d!{Z٧/o;vV[vJXeC%ħ[^aآcmɋ?̬xG,/"d+*6Zn$w[TOQڭ(7rR &s"Io}`@YDסE8I^' LYKD8Zf0& I։ 8٦M'_u{'_l5b2nEՒc ,.>΢b⬥eۉXXTXFZ'aa!9-l='kh$b hC`t!a.DW٤6sJ! 8D!d:IKMȑS``Ze4%@,[` CJi(Ξx){ig\fc{mUDnDo1y G%XL8 nH&8)9lIрs;f#m V[2J.ך#5nohX=n;D;Ա6cJM4ѲQΪaJ:7X8 }=3v G+Ȁ$'ceK,|f'ڸqwwڷ|liVU_kݭu4-5k*T낣K̲2>vkn`m-3fıpƽX[43  wYMvK]p^=losgmu[b&tu7X^V;qvƜivisC{Cv '/QEQ̉„ ;C4{SvqBCa[! :Zz:GhqVQa5څL’TKH e6-o-|HeeYYf<-ZvV[vvdA@Y]8X~{hcgH##<h'8cćqwuu[¨/M0wʔvgYgUfZ>h9zoR=~07`^5o--]V1c-gu EX[kӮf"H5m$J"fK%fі#Ɋ&\le{0+G6: =vE9Yݗ j7،6>o7?O88&C'ZPSO+z )&b\yM쮻[o5{-nz7oRkCZ{j~rJDc]c3gb1ĹhEW f;jՖs{7W=tﳓ[zJ<ʿ8'6#9%ZvZL\^uwt mkgg\ '?^ƴ%| 8*@p(Bz0nx{qwva;hex]~yvɶjCiSͲbقC!q͘m/<ӎ[ h_=R%?ڬ odbX`Җh=ʪ<ʫ`|MW g[uT<@Ϡ\'[oq!vzN?Ͷw{q~eaלh4ߨދf<dG~;|ϳS G<ܚNd}Bi1o[( o"xlfmmK/ڿv+|9vuhhfmUf _ae#6*vKLIʭwOKK4Z2ۋȤ%_zJխ,j1ᒫ*ƭd;7v) 0O@L95f>bwiPƉ@S8$Rܾ[J%:[3Xb %!Zn~/Ė,?bVn1xHUUEZ$RbrkkX8km YVx+o>ɧaoI֋\9k5;!Q6XG_ۨReXIaMf_i7o?[r,ϼib鰎[ECUn{;Ê+Iـ}=k.s+V0)$C0)+*)?[;iο%q"GHk Q|QHρ:&0SN=vv1WoszQTXoG1&"pX>Yb䶝uvt"hHKmk5v鹋l|qɵ8L8'#谸d8VKHkskxN%ڤM/ !eSlkU=36u \sev9kP|c3ye =}hJ]eQ;[wr( =@|(sk/T^z@bdp]cYq9w(*weMjl | \rqR GYL +-j7īǾʲV--s5bSHk@' eX_3T cNo'#E͚UlWT}o؟ZZ|egYKw-z%K7۸"z }pi9mLz)_黮r\ ;,~b9g~XSlJs׿cR8jDْ7؂ NS]p/Ԙ2 d*ۙ7DWgEE8 +i6hX/1J 윩UTjlbi=sGz栄q sV -͍րwrr 2ylu!.] HxR$%^`:m9"BpO#-gWSw_ v_dž#yG|m70s:< yn.tޯ~x/yv{>c6M+qjlh}Zc6nRYK?@Eqlٲe ZlՖfftAr&T_k(sFQC=c]ܗCDtTrGT:V8Nܠ_js#OhnALN;3"ljhEq 1N"ަUݍ+u40t6q\b5aш:~'zak.=gLۼ0mS4YS[5GgڅYr%ge؊ ̣۴ic,Ţ˱,VGJA=U^_edd8xf6|6{O۷"_غk+;f!2 G[A\_zKV}揶ÎV!,ܡhQFnL \bKb떕 <W\sJFyʅF<Ekɔx]Z[n6 ncam)ɹKy mmvv%$(-p\f[6H2Wĉ%)v?$~ǐfԍv/c1A6tv=ڕ]dW]}5),eiGL|$((Ӗ*W^ecƺ2 UC `U`2ls1c\&RM'Mخ,e6>h;O!XѽBS-%5HAGi:;9S$L׷؃NlS 6],ydX[ʞκ+ d,= ʇl +5D1svUGnM)U :p1YFrm[oē0TX]m->`M|dΝk&g` r of&$ȬbrYYmo1'Q|L}NHġ 3rRmLQWmYlU'XYi8m,.  ƒ a]z'up1d),̴3*Ilpc|[`D@.Э-L(u TW41+Z[sG &l׾n6qrm`\E6.jP/~[K}םv%Wh?.xARtt܋ml/,@v 0!W9ƣVsAa!S"/7/fzзKK@CJQuf{[DXUm+g _[d_dr%T t%NJI&E+"0YkbۘN[#VWnu Ä] 70KVFBa@N=6 dAdRkQYVƮv|ޞ~fΚjPt8 T@#%5|O٧5NlI6Hgnp'wa8x=Ub q5Ҍ$G7mo'_@ﯪwJq~Z:G)|(Z yZDoǎ)K3v2YeP͞/X]݉ NM )ͤ#ubdUF4߄vι8,+fL(F@2.9rWT <+N q^|Qb#'&؊-۲niͷW'aG`M{6U!ڟf xl/,*bE2\iG..ڈnހ \2gKLLƻ0Al P6[R'2dmh t0X9Mu 0 ,\¯oٹg8P bA(h>p@&,1i5Vb7mZny ӑs_ kI\cܞZqη榭'A,&KD;WD+1khceǒ{uAf T~p#aqR%ʹʕ.;"Ipn#y/KrWO-z@U>O?jJǺir'8R,8c4[m^K !.^;{lI&[+j5;x:s_3xs#@^ ěcC*68juZOG7ji1.ضӷVN1W5SNnݭXk|wܢO󈥜W:"նl 41!i#]Vdɉ Xꝵx19nH4JHHF+]"@{ˮƍqɎ4 ~5:6`8p`".0], 2-唛wܩcL(Z[vd{+ }d!q\vyvG@- 1 cp =ӚKSdB^^xǡZ:]qu#䵘ltm0S. y$dI47Q% '8Mt7v;wVCN 1N; }{[U K/?տjm |}.<ղNo?P?>gsvzUb{ 8o[vF\pH ڎ%QBu`tky2 GVƻLuup8BRD\y1#$`kXkGu}UלfL IWpPSleÝWك@^[FŁzh':}@@Eq&Z# 79r*ȠddɂBNWV˦;BiD`7GJz1%ŶW:$MtwɜK Ek #wg3z:* k8fa 9QGNg,b} $u. iԉdz%%g?.ͶdE5682 k[leDVK%f@1 3ZjšPq);HG^,qC "ݱSlrm<\Qi/= A~ 3ljyM<eO5t\c=Πc'Mvj%k MfjRbSLɏ&c"NZru@;r:`^C9ؾ֭_G)% ټy@6o1dݷ9䃳^3(q-zyq9Fτ t^i8+)ȶo±gÏۚeapdH¾@pqYeӦOdB cf_`$nǒ#^oNwWWO P'l59[tIvya_m2'N6Xp,Ѐx4=kx{%k&zGhP *G)~kjpVRUUVNO!Cbq^pv%1Xh S@ &1;`YUY ,w瞳3;Lkf j0>j~w`> f > =d5:Eǵ^wQ@ oisHgԡMF|Ht-!{h>b[+0k+@5VKhO<qyXMp:RqbK )^6"섣p4\pbbEi׺͖V gݘod?k21+:wZqQ ܚuK"6=#^fcƔ#}@C>mV \ǍwKvW7h,DH1DE`Œ;1D:O{ފ sgAhBR:&ֶ;ƽ9ݣk`s}>3 ;<{cl D`*`tkDN3>u}o\kD]L8`ةcc+WړOu2C23Jh| rw5ocEpUbNj#|4#9(Ձ"/!>. 891Ͳr ĞX( r'dbaA;sݯB= .DvTT haF9y jb9Cƌ!^"^d5{<\ea!qLN$頮08+9NYf%d Xr`\^#YA{& Bwe'(kv" O|0?7DuP@`K\煚4͵isS.3KbSksNk+USOG#G+1Cͅ\qq)L4"ut^5m5vJP!9% _*g2٤TCO7/'p-ЀR$ XMve@`˭{D҇)X"7#:22$+sĬ;bK#@Z1K\ bZe?igHAqup3]ى&ԨZ&wލ3I烅^ |wq jɃ~ r@+Į#2>'֜rEw̵c}hwQ@}a"}9ݤG{߾N:kƚAާL-ǐ!$ZuZˤBBOk,ˁV^7x!E `rʞxdk93K4An'Dbbr"^2;{NJ s)O(ǓOk@;hv"#rG jjăx"M5r$';֬~ؖ`vpec95u6Әe neHw-89&kLlꖒ X`{l5LQ_c J8N@ Yj]dij -a@vqV4ξ?6hT1 >:} ++W^~3fO|L:nehmjjp\#긒 ECLgp_z2`ֹ Y]pQ::cL8w(8w GINS %B։t@PUa=޳{mu|YѾhH'omx o4S񺊦aVe?XH! L -ѸGɣi#wv+[b] 촥bGj'.(QJ*3-wtMKlB2JXe *wn%@TK"mmp!۲JVۤq)<<0\i?B"yR.ۿϝbcǖy)>"I.d?nk+Vy%s lJ+.: CȸD#G2d `MJDu7'>srvA/CYn 8;m-p;] 6p&^ak׮%]+ו$]}Y3 B%cJ<FEqk3Vp*?R1nXk̲ h(T<"prH=m% `.ƵphiBZ&3P@SO8D' l-^~f9ߒ "jyﵑR))5:>Ze6{Hu2}Mq}_h=Y.(d2Up^JAx+ w}p[x Vp ȀE^+-Gb*FdĜ"xu3+sKN@;ɁH>`G5cz3X)W9XQQG G Xܧ{ ?' hӂ._q(`ёc;\ZO=>{lvԁ+etQ>8Cf[gC`56t"{%ɼ\sN,vVb:jlJ5fR9 d2@q~o[lҌqGMxaf&XCm琤#r d#kmz:pe;ڽwٮe6Ol{+aΗq _J.\2ow"AmWYc](RPZ&]]Yp&;j|f@=v񓬴S]-ؐF#?nocḻ{q`^ "︮  82< Օ}SE99,m8d\ yoE?ӡ;4 nP!PP3R @Y: ["+ڷr>h鬄i밆XNX6lkwbiQdbAtE/8v'أkiv'YYa[f/.`>Ⱦ_.]nť0ٴRrͳ"~q#p(0JȵHcq2^`>}MTC:v,%쟏>bBmwqNm}spP&QYMp}Ƣ s4q5 $h4|fMNʯ/t??azΔP'X:۴E_(Po&@P# Ir\.,(`uw8X6<F@m @ݵ<)Xr^4۳Q|Wg`@a0{2{{s]O [N p=waZwwMA_vk`> n<'م!\f﷿v,y("g@Xrn.I`A7oĺq T*ys/?sM2 =D;h'QfSAm!'N'B#{ ?h [V—i\weqĭO"QfтʦTJ O9:՗Sb! 5JFtn`qfQXt" Fulfpa:s-V<x0Y}VGݙ܆ J-w YAN ';&1k0?8e@$ G);ʣQ˧cF@Zގ&^#$MlX< @&%XE&bsl;?N K΀(/a9xх‰8R$Y&YeFViᤩj˵pl1E樇9$arṖ8}` UU=Ow}ѱs3˰\X ͞-:ȿֆ5ٶn&lYye)` ܳغ[Q́Mq.pyB1ebVTg5W&n))"_jy܏%F42|`ЁLzRvz uN"AF,;r `喚e+5-,h!F̾{;Q]k/~)޻ڣ{N?G[a]`d!?Ff kA쉊 }WX].v^3q&Vܡ$q3RGALdɽIe I`ւb6&sGK#b"sh#lXJ%SUI39XX-v "K 'r,ZQTr{yqrU6tpE cK ttʯBfk-utvE0K@. -^4%lhls&ET"fEmn ྡྷ@2,JzBkffNܒ ~SזAա$|&&#p,i'v񎊕?wcDZ>ˆ5:"x녻B}F+=ex]prⷖn)O+#9_¹I$D6CJ:~eeL@[-=E5杖5JE!]Xp6afK>f77 P?ls6aX*n/f7p)-ч>1-l-x_̸2۾/x&pv_cDEu`N7ffƀJ/)sD+K$f(&DVیc9#XҝQ((50ݷDKa' ńC uXW(F,Gd!v>E&tӷIf4HpӢk-0^n}ɄQ3py4|P׹` ?~ʺå_L d=2駷 "8l=Ӟz*o.\_f3&e(Qþ;x^0J)(X [I9iI~7m$ZLbؚ(\S^:D< lacB:CJLK.E60dod[֯s@,ph}K_q.zl.7׿ɜ8a sb`ϝ{ l"Bb(ޖ,YD _CQ3\eLVzA60k`V.҉xc1v+d ӓu8!Yܮjr';:i!kj )͙q<: ,UsZSW44cH(0sp=:>| ^v}s7YVǰa;pLqpntjkkmdLfĽm,ʃk@q@!H Eh HELc2'݉CC/SX@k "Nǥ e7J@{2`Dl"ean,K͙9yt2(D9(Z,zo_pl"2i:aUVo_.`DH!;WH é a-d)Leo-BQ֋yqø'RFD' mwPx@#VS65$n/8eLhշֶ ?]>3n狆k@Y?7z iqSczڨkW6Iy_LdܠFg|9 p'Zu;i_qf88誩phD0&KG/pQqؼ6~1lE[gHTl=Q9Yoɸ^ 8on'qwĮKOMy ɧ]b]z@$l 0[h-O {F1VFC~s h:.v ܷ eq% >l?,=[Yw;4K ik ,̉κ֭Yf`g} D73`$iq>dq@*́m_<@q]߷/vɑxvmx피\ܓ렿x:/zZk@8hmڮE󑶠woKdxb 8jm[1.^BҸ+^DCJxG4BSI5:VNdb]f+cɅ'zj#z6_ ^=2s0Kƶ \@Pc=*V+qdj&-p D3$4MU x 2ss`FN*xv۹u^>D9({W>a$`>]pnp'{@󕙕{Cl`CT 'G6Զo]7Jrf,vY6څPpa0,R!AެAD'A:~`y`~觥o[]H񃹳-@WרZˌMv9^ e.w6HEk}W{m,ٳ;BdE?`c)տc8Z@'Ҳm&;NnUls'4WGb "4oXb뢄V%eJc$V"'e 5k:b⿿N5 z,"IYVQ\7N,ݹvo~}e&~B ?Yky<|[Zsx)dN#[1nJ[/D۲qswdĉxqoy\CP}`׷\"fe&;?}6 Zue-81`(1Ӧϐh%0;?(ŖYӶ@Iߪ1ONS`_8zgIAe A~!U<+o}*-]vĥ{P/JЖ'#Z+>F 85+0C]`2M۬{^:k}@1]J2/dIDEl'>z! EX dh=xgWj6W+˖.dMmW1V"Me^]o‰Z\nlbn$Fmݺ=M& 7Z[~u3i~2fOW]%MDZN'RUs H{b&] BvQ`/ v/ >EGBͧ>y-[QgᮼЗ> јᎬTI \SAkWbq 6g@c*>Eh ?mâvViY1(L.m8vdIq +6[kAG\\^awvõlji-[PPⅅ?N(yD}/|Nƛ /w 9n%Wv@8Io: K KMC $k傢W".i8\@%9gƶP}\/)mPz\5t}__q^r_\)KKqR)q V:ĉ%< u" 想hG4\s}  `■dxonᤀ؁ݖ~ݎ;8?'>_63KL#\j>ːYY1;#[P&u9?I{J_W8z{fzi9y|Jij /3 Vf|7D: ⾓XEEYľȷ*lyr<ޓA֏R7!?uJ͚BJz0ʼnIJcqqHنB4̖̚.% HqKo~nLD}k{,)<$Qdr!OT69FH% u0FIX쁑pls WÅz>ۺߵMk@Cμ <=6DsD^}nQEhBa>M `q^}GhE~,z3? Tùp>X>kS:Dz˳Žc}k?= k_D'SW-k<q< .諍o1.hKzz6t<Ιa)'ӱm8" l4AVV33}R 03)޲&O [zm`aBm3&0h0xb\qK FyqLWf x)׬Xi|_ `:P]Źu}J9m鴮ӝ6w hk,TYI(Kܥs]xNڪXuFa \|~)}WWOp(_g;n@@Wa8%C3Z^boaNbxyI|=oҿ] u;9Z6":kGǸ2t>ozIsm3?9.B48np@l̫\hqůٗv%5ȭfN?j~>.TL,Cų"VՉ,H38Gyp55+Z;Цc-QVg ڋ"jzX=F 64>pecw>(nʳYt}í8=gXK^t~gܧnHS4 &ML TgB5],ZshB\% j@rRs= { *-YW׾2x edOՑt+E툑b1SpN 9~O>D;ps?ξW[4AlvrLt,i;vEZIAEf'ŋTGQv4r-;*{٩Ͳ,8F Չt~Y']{Wۏ~rδtb]oW@8 ,=vu~D|~@\.T2Φ&\1qP˲KtW^[NHQ*y8^m^ܯb+tjmW:kdTtik^oSٰĠptkP/ڈ TmJ֮{wOc[2z`9(ͥO#}QgT* /8WMv"+ʞd7ʊn{]|sVIԎwyyZU.>+.B}[l9IȣmktLPj ;[En$VnM(NV> `Cc- .zV"ɵmU[ﷳϜ:ڪ$RHfn^~Y7nsNVL}.y O~O -BcGw`\y!2Ā!dБ\XbK[ ,Spao9|q sx-8`@}3n*s= 7]'fL Ih-)Յu_{\MK L < }z5\;}m::̱64ɹ~VM, Uvom>hw3h#'jC[~fg,#'rx:!jl:|IskBQ~cϮa#Mxǡ$ow&[duhۊi{y:l1?핽/}/s>NxܡCc4Z '娦p: V%-K9,gbHqrTK <NX_^]nUɪ!-]Hr/ύ:}8/.]DnO+1X 7 ރCLĽԞ&i3CƶHbЪ[%#BZ/촪k90ymPXfr-Y6mne16>8Ǔ%e\iZ2텗7{ޛo ;+.<{męޞ[XN>B{e .ղU}{sR۰q%Hfr>`Aƽv@P1J1UKA'9p\(B" /t)m;Ɉ@u`T?Qy V8; L3}܇( -|i1=_ȻW^ @<|.9MnP42{O(Nr =jjW\yf<:Nȑe&M$ 6@:74Z^A!e04+s̰SI4:+ ko ImyQwJwө7D0`S 1vc;c5-v qXBHBuw;zξ{EBƷһowvvvv;ίEM7l\Į LZ;|x'n.zli /ܺ~믴[e3maqWnAe"wi3KOĎW9~:*' BKV +)Vj]2BDD?hN4yk;}gsw۔c=j-8ꩶn(-H8Oŷ!&ưWVvVx2҆d:yŗ7[)+//HKA4nl`&L,f`gL Jl9ۇ+.oÓ[]{b[8g=* WϱE<õNԱ2֒!p>:#iYtC`Gd)VSҷr:Um5陼2.kkOzv\v =t=E`sҾɭGF@˽/zT?}\!CVUG_ @xr+yr'~~(vhUvp]}_i|=sv+O, Ikf̞ Ѯq'`>]bVy`-UbI1ﶏ7,m\$(p\! чzjuv" /4mrX|Se -i?ITqݺq+na8;2#IuN*ET,@IM ]%vsTV.O0tM@;s q~O+A>z |I^<!Uϡ:;zϯ,6wV]W*1tG%qj +|,t5:bg@*ϖ_x]|%DK ;aזּhpSzW'NlsGC'bU+ȌnˉSGLzyo# V^%3&ϒw5ZVshq"_-f͝9RX#R$+yPjbv@/bk(/R(}e c ΓFNM<Ǔ#X iwvU~6>ʔ[6LPǸBψ$,Ot$[՗΅ ]FP~N{t{Kkm! ޗH4];;6Mb4Xr[~b=ﳸ&@ I:nFM-ߞy.ByWZv.F]mN8&y8 Oaff!)܇]$jgwڵ묤0 ^0-xaAL*Kخ=X=ju1 xiN#>JhLzWm<@:h%R5I"(./,Pր@WLЦ]^u^yW4dSmD7wgpo#⪣4'؎/ۥdo=w" ;\u*mv[KصoWvIP^6^zu̱u_}tϫ}~noM -8:)v[sCys/2Ӗ.J& !˘**۱}]bͿ6o8{'\Š^ۋCT+<" c 5p]8הr? NYfN6Fx55m'\òѥsR`3,Wg_˯\hz׻mK+j ^<@U8^:Ø"%}Bb=$c=e%aH>b 6/< INB{4ދ4-.~%b̟])'lx]CW~B@Kϊ>2\蝷+-@y"%n^b6ahh%Hhk5O=dea/Ze.0 @.gQu7`?ƞZ]t" /H[l[}7W>vf沵` \L9-`Uui㼧# HG]8 ր&貲2,_­-- e7I8T/]w%HUչ(UX叙huenKvE+$pv[[m~[d/~۶֔"*_ LXmK>Կ E6sL 5}l,wNMY^=fw{#џ-7=Κpҋߌ\=C6~bwW`-)BD*p\F|>By7T?ɡdgF܍1s9l}DˆGg(zlSZQ&R&^\$Q ߎ)g= j):Fs.HUu_1.W>Jg6],|wx;p+o#yyyg!w"]| Й@?[O UV8i2=oosVQWUg2ECll!CޱGQ`[Oǃ۹˯f8q2TFa D]hy<*oO<'hR)4=%G_h 4KZrї]"`<|j_?)>:Aj_ Q[ӸAbu]9 >xǽC2[?R]⺵Dwe)Bx kXs,"mú8޿.sx6oS91r1X)7*h Ҧܵ$cU:~χ~xpWn}{^O{kdާ.QW,h5뭃Xt~𣯱MDJL-'!ۦL:dmY3AW8 F*hq3xsX*> #ѠC\yzB2TNM Ko}.>_Ĕb¼*e.[W{q$~魁?; ;魖5WoJT2>FYFv2SK\~spmE[wY;.1,\}Q J?DxmwZulhV,&؋PyD~cqs9V8g=bghJ. .AALyc~bqIɎtoQMbI$[q93ھ}e3f`XIICHh$G4$aT(ݠ=?<qH+-v;ӟv$"F[Qf矿vE׿u[8babɉy}cM҃#&~tX{sǶW}swe/%JxǍw1A"k-JB$xտDP~&Iw#Ԩfb5@!]['{O F!Š×4h<6>反f3IU8x+Mn~h`ږB~o/~^+ F=iثTg|<_c}Q=#S~DGy>6N|ѷO:2j< @ЄSlj`>{QsN.|^AY@czdAҊ{-,~uV@[Ȃ]/qV_w91{]x# [ԯl>/oǙ3fڵM$Fކ6{饗~mKpTX>t&AɠA(!nܴٞxj-Z )I(AY['Z&jlKJN|@,x]I: "巷2`ȡ}%ep5ɻ["Txg03¢#a9ًyf6s ={7vCw;0ڍ JYN6/aKS[x[/%xcWKUJgGE7z/{x.:&dl6XZ43y>+<-IްVU]mOoyG?`e3 'sH8ud"VZ3fOL8yX;;z-zt*u|N*H!7߇aKc-HUzȰ.T 5Jv넃ln~m`458c `s#GΥRB!W\k-%$Pgm0!`E~Y,;%`IyQ[']iD,18=?aJY=h b Vc .?iHin9TOcvЪ+# / 2$hFZrUI-GwJ +2ct5@c,2@Lо;p'cUKsEgQpy6f߄I%g_MTdv ^8V!km1gh4|'pۑXɲux'gp-VRNҏ'8mk|CHX[輪\ qTVX߇U ,#  qLnZo)޻ƥGZ9>*.9o4_uϷ4L8)B9#Hg1iX|Rۋj h9޺ij&Og|dN @IDAT&NXp$`Ԏ^tuն{wm{+5RȢ lD:̓ ?!J"ee\ngdE1 Dnp le Cer+wf]`K_9 Gu*# +~noQ xJbƍ8sΨmFiڈkKAh$VK&`!:Z3ј#gEt }?{K}soc"!NmoJY*d) Yd!!JS&$aݷ0>b_`G=qғY3oX2왓m϶-v_qQ,`_.₀ s}E34"z@RN@c_kXcqjQ2Dvl₋\-Zlw{aZ(X;n,w)0[zΞRA(qgIO:hG'~7^p@(0ùs6ӿWȑ6&SpaIR =J~0g@=mn1[t?||=(Su,ĥF !( h밼ϱ$muu޻jSǩ})|lAn Ϭ%0ǽ6u$|`@(^(w6;XkE9Ѯ\x\3Trmkkif{0/Ūڬ,YE`!u%6I@IV0sī'] =;FzPNoq[^tih(ڝBŰ6 DA9|SS<ѳoV x"Û_`>Ǣv\h$|4rxJd& fZrdJ&@ЏZZ /7?Yu]+a!/l@w7Ѿk]'?e+.E>} o|llvUV|Sw 331fE(Udƭm8}\ Hk ^&rDYGj#E7g ۽РuO/ͬAdw,J>89(:T?7^m7`y>r܆ʹLbV,ƹZlo0@۠u0$㮶 \-6VLJ{+@Y˄J0AOf K{{*΢,D[9st-{`_oXԵ:j34q,ʛٔS+ J"2yajvPT@|5}teD`0^Z$w'tĆZlYVax◅![7-):ծj[_`'AĹ->vN  I2XʞK`z|pI.Nt<,kyeQE2MEhphHUgxk(h3RPN5+6MFSOZvVtIx|ru%TY]cD}+80hUFbʌ `fmmUDi8>9*-@ Ģ "z+w[N7O4Lo_x%7! ' `%D+ٽ=|ݖ+yi._"=&/] &cb|!j[P8E"As 6Xko݂Nw w 51 4nt ŀ$Q9XK@^[<'fPym3n2_-GJ^ButB-ee&Xh@@0#џ3&Xpjn`{ɧpR4Ŧc37(ol/mv$+_KM6fe㻞Y~N#zmތ60fL`a2Z\v4tO~-Z~9e <<"f|0X$-$ cq&/nII 4kL1ױ @65 <#RξW\)1~yzՆvI=MiF2_577Ƶ0j1U2Ւf[n5z) .Ֆo[{]; i4$:ﰰ-_GG=`daú׋vA"r>Ղ 3ʃZ^Z[ޞȦLg{Y~'# BK ԉ1嗴 -(ڄ3(i,ia sfL<2~f I79߾V䴢ǹKZavM̊r3XJ@:ح.Z2R+V|;*o+"[PmênGN0GsGv@W+ /&怌痤1Y@[Ft'<q딁xLQI_f H/X|!tv6=@&/&sHy`}~Db`&4dڊ+goYgn־_wmH:"F!8.4ͅVh#m8&3ѵ[mƤ<[Ev`Qpa|>0Pɰ~DDQۄfv<<&XJ}s 7HIZuһQ_^W'ا>T.qy{y{ ~.Lbv|0v[ن@[@.͢T\cST AJ|q$C>-Lڒ9-5՝πq ^"ʣouVcQ/4=Fc6oNSO՟_'\#ǽk΅{*@k{ʫ3v/Zh*zNmO{a9DF&B:)tC$%A#ѨܞngBb0G׸ "PEF,Q״W>?c1t|u>_Ol{,+EFR"[yC}c_?1;"4@f!z .#bqC`B_37-鎻ՕTT2:z+48 ^K&@w8^\Xy}][nia {zir2צ: M${n<Byu\EN4*D.]tuEza/oZxpWU 9g7 z_ 3*[VT5}$Y(o~ɮAs+`ɢ$: -О>H)Njd#&␄ݴXtn|; ?#bQM`J+N wb4UaZVn:m)+Awڢ3L7ȵIUr0u;ϟjsX@1)Űxɻg#MeO?ٲ}׏'?z]{y i@5oxɮْEP qcf(̎ .ǣQ)K:]'rY6% h[t@\.'s$rip#Ioӝ:qd__I" ]bsmuI&KeEPvg Ћ^k@ e j|}C9uo4õW$zy\(5\BzWē }fr<&\Ŝ5 m^,bXڽs+ví,x!1-Q[iLÁZ#İ8?Hdf(*" i\Id Od $~#4$vH{E|򨅣Epn1p|ϊ1;Vq5ڜEn*a.s^:@Őj*}g6)c}cW{>c;]gi(hq ilGOM[voZ5l~ԾUXb3qсhn*o_vȖ->iK'Hc$f|G(BVe$j^KfI;Ny;TM33n5~ӗUc7NAXZOx<AoES. " ە]U@9Du\DصP*KihÞڸȀdIE(3ZN:޳FYϟ-*/eȤ4tTԨo.1z ;S"l0EtSH5 tDI1k`5\tlS\bObL.h,!sț)(A=8")&uOjj܋H[wn#bB]b=L+;ImYG:{MZ(;P[P߅ޡm,}?ش,D!) [eOi첋ZM0X,e\ muP+66+ھCu(7~6GZ?FwJ3Izk8}Z)4xzs>&Gɞ-:馁mެۗ>͑av<{e`0\8gtܿfԽ# E|dhR^38rt%JpO'k!T.I_4ri$+قtcERw|_R'gvځXd 쬚g៦WnJh*+0Ձ[զAChU;/h=]u\+8zot\A :)4nZZ\q)W1y@t*mYC#Gh+YsP)16`Qu|>6uVܹh[Q&,gU;"+mkϞj29˶T,{7R!$)kJUuUvHxMFxWKHHG :D8teL26 :iD%0ףFຘFpO$ tsN8P{Fx6ϙ fη'%%&M^a{n ~kVwM:gM]z޳ WwEEڱvoiD Ѳs/;veKPiM4[xABb6Ĭ)ld%6$CIV+6yl@d,JK79k Ie eεϬzږ KҞUִ4vSAB·~l1FgQ84rԗoH&W؛AcCyi.V!jdNz ԩ30Bj~gA5I.j005q9y{عs##$ فTXZk[)͢KubӃwbur<,3cc.ԑ& H e! n%86((rAZAGY`T44僚hoG CL_skks/1ڴ+Pe-?~z׽lgܛ05D5'7V\v3joڇ? ogU>EK41`S&fLC%CÇk at뼩[TdC-9;獷b$`lWcRlʗɖfamA?^[Z__>J2V]h [4TmMhHq q BM}NiLIz-6v@c0co%@Y̚5^ڸ>#lmèn<=첫f!xZN[10M^;h|=4E`L7XjjIIY;LêX`5c  <  #iSYN*l,d25ĢnCHƃoHc p7 ;lM:Ϧ/SZEe)wEt5H6e$;k۵h&ڢ'wg)'Iq$!< ʃZ̪6 {mرe0K~lѹϜ\ݻf̘i{|i6"نA,*[U9 |UMf^j:+- -)io}<̠>8vQ9݈b&Z}v+¢q#w6_*o J#wQ ~o@C][3pjr]EOjZ~%ُN Ny̜:F#67 *^4m@ q^QyalJiT,m484J8t9тP%Xmp«Vh%sm׳?῭|z[փ 2QSMC$dFsWryR_χ:wF6ʼ:iV4z~5I#BGw=nmsfIJ2sBHy:l]7o;7KSUmr{mN ?N);9 }odÃRCurt݇?Sا;*+'R{*V3EI`4=Pb~k` 9_cBZj$"ǬdeL1l@j0 }Xu4C6"Rra=HC5~&#qnzƱ$">`!! xZ)!*Bg[#>}[X}8թ W%Wa9 v{gwǟ SO#5洩3CV{{3Hv}ݞQ*͊ !4ڬ- )3lLq֓j1,4!Wrt?vԙ)VW q|:xm# Obqk@_]5>ԧtaT*m\R}B|t,ޑڥNt\3$K[j/nl2ne*`823BܮJk?j ěĩޜ3@| !Vjl^p*YQR(8F$԰$9+.ZVi>x˪KӐ5Bnj_Zb]d!k|-q۰m9'[mS!]g~K<:T\ 6Hllܗn6L()P9ycQO?'>}m~y3h*zxVkB}Me{P*/=ާ;~Tdœ;E̴IVc-w#nxXv: EiMο x@:5bށb gf%t˖]lK hik 3+W %.S;-XIOvڑ^o VʧS,ȣm3EPu@4LIUnT=]q;Pq[ܠdNJP/k+"qgF1-`](#F| uT:7YrlvtnRw Ϋ>%X} U ჰc>8;D)mJ[i7ͪ"h4!6mz^~aMx)(g^qQ ~E} |V7#v/6ڬ $*DOϾn 9ۤB#HOTK7/hTҢ#QPQq]J},N BD#Y,)i9P3S̺l+ &^Djke,WeinE緕hJ;Tph b{KGYu!8jp_?­4|4F#:PݍPm4hIx_C&bb+uk*w> ޡv=y;z;7[1`3z|W(ʖ(gnͣ3vq~b,K\=G~gV>pmDq͛k>OUTYUMYG;tagNAб &p.g=jvx*Dmm>xa$m[wMX*r&Ԛ{GH5U ^0;[lx/:g]e̲y S6>8\jZt|EZrPM[4tmRBm 4e kG@ړ9xkR\Ao%8QfGs&5-o߲fM8yF{x62of:a<`;uyyy鹴yԙnæ6m&SS]kO<J"76f5 GQ۶ه?~f_I}]e ‹z%xZ  zom~S("UTOh:M_VaD+1O$q,rjЂ&DFju2t'uP0LL/;@Ǐf1.!> 8 _nY>\vp-+>Rt /hk 9n{A7mF#%-ϲrq-:(pk)i$6'-5#P/mH{pcɳ歏YyM遼EZ<vr#)7568:'?<ĂNܰx*;g<\f+.#w w'}JǴ58b0Hi8\m_܂àh|LچCtfixK0U:'8)*Z^^TEh'P D4 (Z? EVvLKZ3'JyOz<*W^Gw0`{ԃP͆l.շC]iVb]&Ǝ-4tϻ Tj xq>g7 ; @8tm ony5 ^d?JA言? "cY|‰{/z U9iqZxJ7C[K FLYH,# YNa#g;7O^i_Ge!7ѩcw2DRCb@x-D4RB:Ĵ:>%EX$=`- D2,G̽\?^- i䥑Kߡbtu`λ1KgTY`ٱcrlť+QWkNqsȪp/MQ퍶`|!Q?k}~,.pp& VO !rw--z˵|ߓ=+.I0NCk88hIˆGj RGP"t&L:k@ (bI;J{ZBZp+@z!ϦLI`+|f!EҞfl9}f$äŴW\A$1WU#͵jA;KWZs|Q*owa(?3E_pF G0eᆛPEl=NrZ^z=pw ,]}f} n1pEﻞzidllyg Cuv:oޒk8zY4)kJG'\O%R1A:=tP +iCʃpir[hO|;$!22Ont.dUNL4fQj,T"1WPd]5')| >B_Zl.oh.[s&Ohtkkzl[vpMg=v c,ή*F6+Bil9txA8{nC| c,U#vEt]rB!K6Bn S01@%II%Mk6"`ٴ/0VD Ix:ۆYi{ ߡ pZTg$]r (4R2M(hK+d( C Ay{{woS!U];ಣ6ZׄNy;&?MY5kؽk7`E[e!G8p7m!=6"{+gEϵ;/ ;J8Nq7?bǜ{3)զZLQ7 &I78Dqk>4I PGpRSFC3 6phU a TOlβNxxz<ld".s 5Ù8.4mHqZ@ċh:uwss=i͍ևTmIcT8M'C Y鞗d$ d@d8_cػugZ[P'f\SS8/`^G]rŶ_dPpu55QՂ43X \e߼!8lH,L@S;Ve4ephYF('"h@Ֆ۞_*hlȂ@"Urd[zR:X6s0wΔ8m swc9 40ڊimP%fdRQQ7]uF*0rQ7Ò*avC`uhVI[뜷typ=uQ"/-ϩ^{ۻ]wqJKAABG٩Ai ?%ZnuzzFsb=f-[>&C>R9$DcϾyGu5:k{vAJEcKf21"wvttLq ,KYxzŲTyO eZrzehRC& =Lu4nl`vGE0E'o&!HHLVɠ3 mъ&l'uy`Mŋ'/IW1HpAD YqSq4vid&ϥ6_oƲYSXo*qtNLZ.+|,&;*Z$B/tcAǏ=6| ьu^'1ւi$]Wv8 9J%"ST4e$H$r/@ʯPWLX;emRRSA3a񱩭Ѻjm{ u`,J|*;{Xh0`@KvO nv?X'5{TW*2'g^{8P# {r4)޻q_ޯcSYq\$j(=ul5/X,lMŒ.|3g`vx /o$f:XӢYISZ3sg5SҋV06JJ렕mϞ=! 4-0>(J {N fGl,ړC[z$<\`BjP^eNAFh$Pq O ; [4.C髋Z:ʇ, :.Yq$1I ci,*q6"8p1{1=nnm ?Ip ȏo'SeH})l2@^[[ȱ"ʘ`A$ZqK{Av5 \wrG{+vd!>p_\7Dnsϰo[x *I`x^\,MCl.H48zo.G1Sh j"JMTE?'ɽ#(`Hmn$2Rc-E`>Z*j[!7;4%#9ݏشHt󈨲Ɩor_Y[p6YɄ6k9v߼=N۱oFB|S>ǂp(ÙzP75<8ҩ <#ţPAtoQ@2a}{0Ǘhn9K fxl9UVA,H7u":fLLێE26{:~'z8\KZ(eK$.:O̗PP ukx$Œ0prיy090KYl +ɶvݟv嵭]Y嵭}k,O*(J"H @@49_Uߙ0Q$7ԽnW91='„SBVV#mL "nt6,=tadE1YkԺ@ JcƘ1tzo$" C%)mEQ \C>$iW SBOwץ@RxxJD otPkwW+3׉p&ˎg-y+<{Fۿd`#XN:/%3rTg(DlY$M  A* T¥Z<ڏ5!Π,iTS;# oFC:51{V*T3hvCFY% J.[Keɷ,_Ӷ`%c9۴s S:岅'=,Hd\S"FJ 2yra>wnv;ivۮݻdۭ@@G?FsC{[Y9k\ xs]",Le G]@0t& &e;,zC;/1/?C'IJf3µ9 = A)"ll)hɴfYHntL qRhB\ ΑpWӸ[ ձ T@XUߘZY3i+G넃stU-~{1~VM 鷤h\XZq [ r)<{{{h{#?YG1PO>nڗmgW.On^ CkR"~~-+C47ѱP+СGҡ0dy#ƈ5<1;zV+5$"ckNYܜ" n$y(aSǃO IӀ9gPu$1`gH@䞻N;E(NdV}$W`N*H3"  b 'bYGPۅ@;2xH4%KZkc:hXh!n_\I/ąɝs=aC=GcLkj61-o@g/G~ifP 4eLZq;y`*gŤ Jr E# u*ԛeփ?Q_L͞FV<@J*+yB@"ԭ'a\;.춷/:):o` @C—zҮ~x ^G+xO-ڮ*v@8ҎJ <72=@WpHp}$cu. َ+x#GNBa;k;mm&;Pa饘{e?i=uBXi\Zѻn^@"ua0i z^:U3yX$[FB+KL^ B4֤ J*|)G4ҁ#)c bK3Uqp},?ThraY4p]9So#-%;lB`H|i,SeiBfcV-_b[jѧE/VvKP鮏B\U۴u1y\ez,ϖgK0GJDR0c8/nC.}0u10 R5PBw:$Jamz&,ٖ)0d>)lKrcY[K2Tt,8r(NwA,Ul1T3r.t+1$a=EJW貖-j6ڡr~z7iX*\!Ջ5_̫Nº*>I0B$ܺ6XCe}_gqZ P=n8<8J@d%â!2TT)i"InFdp X 7ߴߜ>S`YtǦ&2:,zQ7E= ѣO3JM0CSđqf a+-49QDnGд N{mxP NbSORb<m5u:K2R̫./} /\`&@IT@۷/OaVl N8OOHWc1BҴ_"wp[i/jpԥ')1&qgHX$ UF+|ObGyⲤBgrAaHKg=11BHgLk1 Aq^|5+wsR`7 \0#<ʋPFĆt G"Ox։gϠ$5ClQAJHiTFK%WM-[nh傝:A5EsQCu@\KЁ*sե HtZ-g뀸G]xf_Qx%OƊe $̢!L/àz°}N6kDPUQ [k D>6iOko9iTFoDz `QMPQpr2X(ՕH-a#LLW2{%'4jJU;a3q7z@Uڂo`ʋεWภu iT \Puϗskk U:J(\)Ŵ@w4^G=.Fu'bf1fI@V_ǵ䆵k ^3Zc) kȏtrLxZeay)n-I56Pb%Wdd  cDQV MFK 2&>DϢ"8 w`iu.ξucVk h@Mq)I#L) }EEՎ6׆wIԨ7lXƳŰ5 Nz1dVլ+KJ3D}=1;$EJHEr/yxár(D$[Q{jCOs SJ)%u;ŸdgK%[DўTNJQ E#2zel@gjx="3*Dvb,abВi;5rTSDWKAN35xJڃ=-uڒWQʕ̿E݇ld`Tۑ{XAp UO7x1Ȋ/^~ګrR- aPGIokmQ\bV.G\tF!/=,R"VűiA' tT&0 J/)uKP7Β:@ksaq-D@|% ]ӟd!0SOyóOeW8I]=qF{/"!Й4t0 b$I Lg1X9>i_z䬭!`G;(Z"ʠV7ų^u 30e#ZOZu$m ᤁs Io)F'&xX!Cg$iB_n.tU >O/I+x7pF8lg~lڴOm/[;|+- &#6A =i Z8"Nˠ:cp8 XdynI[ l50:%d,seG}\Y<*q؃ظ- r:0lnA&w]==ɒ%5FLX*Gku>c0RfwJ)LMi5Lۆʬm#rܪb Z{6 /Iфeߺu{7`YR*"GyiN aAQYk2L|1{O} NmTcZTA Fꑟz<ҡZ}1,sYe%G_Py~3w\ .n6q48I)*d2 ﷕Y?go26p%*QCRRҔt@IDҪX/ru.'J T}SkK/};W\ɮc*~n㿀G&<$kb @A: A3QE< ޢ@J o6qO I4BI<@%s4u"img`4oǪАJCZ$R 7#aH.ѱ#wHՕK $OfB!lCxU6= =j"(q]CPAO[ba7*8LRT6i<.%4X-z/wq-;t뼮<1H ΩK҄etЯ/w}+k}|$3(h{OZ{3v+eچ/kpq_OUdJKmK^]ŌḞWT۪4XCUD *I }#`@+1 er jƴBT EoI.MzIJAʇqkXyNj)2<W>xYq=\u;q`MUa5w8t$?qrv|-8W{^lۿbۻ _b/%cl߱c| h=$u8M.,/RIŠ=4X7(ç" @#jk ;kpuh$Lg>9_tR41s%i$[+Hi$k(nE䛋]/k͒e1-#@ kkQ0Vʣ.G+ %NJ8cW" $*bV/Eڭ'Qx@9Cx>+.%;.VRZ2.@O? e% .ސʅ05#P/~ZHKdPM-o؄ k9e }6uloHw1]_guAkǘ6%m &8XcعΤL >}іW3 W!a#xU85{bI9}da=/IYNB lz\[{7xߒ' rf< /0 s䢠).[: SbۇxS`17{ٲP!| W>Zw*N#q]U;p'> 3 2uY`uú6w_\)WԻ}t y*Փl쯉~JfE=cMzu̢dr 7ˤ2Š[g?y`o_bڻz̴ҩ#&859u!l* z`,%.Xz11ws )H%/R'ss4 12;A8b10 !Rǽ{Q4"!!*N32kbI<$W{y0|P%zB^M劉[a8~9Z*Xwυv 3ڢ7b: ,Tdg?MHcI&$*Wj'w)(*=Ccp, cњN|Fifomנu#IcXA֔2בG9aNj^_n}: NuޏzOOv@ж=F$zuCm!qVF<:($xҊQ8JU* ]H%pK1)")|({yIl--' *(q@ ;ZC/"2}mQܟc(u_`ZG?gor% HgwuC+pK dT'_Ca$8yvmIc){ ;Uu0SP7P}eKj'tM_UBy"ppqxor>oG>KUĩ2 ުx4Um`=cղ} osV_4@wPV^R G&+:pt#p5R]ڠrH5C>L}*;ڵ ]7̘TWSŗᾮ?}mvj@ZA5.]Rj;-H6L))JayHbT@~|YX 5$(x|I,ZkI$!(M fEbHS35"HIŗ%cwsD$;0T#gmed{!ʪkЕ2C@_'2R _rz~r H@Qz\=M`f6R%M+𲂇$ VL L.p:ἰ:+c EsYV4F통v'nU) W.٭7[mW |٦{pe}g{@e'HjSodQҢCg=hGAK cٯ}nsG/[?D_18jC0P@N#$4 ^K+S@7- ?y@) |6YwǐKqZǙ4:~ `iyьՕ\qmw\S?xfӛV3aH3cHwP`W|ksa^֎\P߫o8[Koo6gn_k/|v )X= ռhi,NMpᵮەb|6L#ZYT޿VurۨDN)t ..cG>Y#X TzN,Rq?`0ɧ$|8P(XtDL UF'|YXmFa-pALA{B!D1_5bkJ@I_Ѝ߱h"}53=皑K8átLZCi(UOAŵ S1U]A8ZC)n.C5|>'+~c}D*!\ugP }+놊P*N i.7An8;$.$}#$ِ:,y1@\n T`eI x`$$Zm- Yn&7^5IVk'87\=.ھ=g9쌆[/+kPNm7}–_'!Ϝ>m3[Bw\FpYoU,8?V]x؁4*Gԭ|-"6'?~?cܷԥ.kGne (c1kj[)քl \-WZ[ވ},.27dKUsWT 2`CjrA߷Ͽdo @Rf P:HEZb 4Q$bMaQ k@_X${xN&NCK;s2Ɍ`B-P@b~x}]vWB{zoxg7uѷco=Krb7#(XJ`@o}~㜴I^n-IZBӃjWکȪ{o@ ~jޛ?OpX)+%Ε%[we>RhqY۳rqJdb hG:`r.|<\ N_d-=zii)v7 bLbaٯu J60EmPn WN,Ld] T㽼q8,.cJZldIV)+CS-يNSqU g T/q !,(գL8BWgIgaN<̊Bƈ51XE:[#.ք,gKPV)h<$IAGyvӑEd.ej-6|@;60KZg46/ i`N 1grfɤG//lR@,GESp%h6ĨF2\Q_qKh&9H!۱Mo|{ɲj)3=.knb7g0tfFzmINtMGlϡ1ht;v)MaW(~A59#1cZv-gQ )>^ع`ⴍsADp@ӝw߹8VUݺſOݯ, %f<4Q, ž!{ā CoKy@iXƺ`J% k惝Cαε\y#)L,k#R?c6z g29[b6 :iFUIMDT6>uپ@鶵kCl\<BNkJ ㉣HgRX^I3dHsV"eDI[R!ҴY)xJM~vpygnW=F^;&YR%۟1o7)FbW{] .i$RIX@Dy!`+J!TQ;1jEGDĭ%qݸ{Ύ3 }v݈NrUlֆqwB"WQ@[SNs1"%`J] nc5t0%;/UT` rTHNF\_EBiEt> "1bV)N"MXʨw;PHW44|fx ! g1ţ61 |}4Na!%~Dg._Ex8~h=:|fqu^\1sb,,P;E7F"K8Y=EhţğȦF1&@K6?te'hr7pHWlj>ċfN ݠ'nKj8Z|=t[d\@7=,g'j{jgLHBx%]0#JNl3:$/@`hlyHznPn}Yr!Ym"[\V`ϐUQ?rqn hHXoTz];/ƅ' yvkv ó;BebPTicN^P:h xD)K1h5XJ^h }/3Y\#uʓc#꥜,>_ :WJ* wKPtң'џ+L/m@IDATYN`LӮg\qC-!F+ (Ӽ¿F]+u+mH,rO# Ǎ(TYbziD͕+.]%GȠAqܗ{{P"-A5lq)A (ܧDtryy=Rn-ԅʙD3F̊)rEH>$FFPCCHҘ&eWҲFk<IR]݄QO";(TMW&S գ:Bk=Yp\4ep 1БC tmI:dJפ&9cm `Iq<1CT^Yf97LyᑌoO0&lQ_Ӷhiؚk2~kD7ՖX/qS^trP|IvK䫊UA$ Иڷ|7,|[sѼd*@Z NFUl2p`Ab@*I4[gȷH*倹N]Sk` ݻ< $ {n7FIy0JBؿ9{߿o%U*Z +户Mh5!w~8e:p0M\b8;L:ol!AiWFQ=,&rA8W8ֱ:(`2LZ45wW9iB:VtaibLCeaDEmz +"L Kqt.$.nQ@C28cmPÊ%P|2I4\P8UA'B%"CqJMdS)(QiؑH̸zR*LTP º_$K[ԁ%%N\^C>N bIjICNAN3G]=;GRk`b#HRdRc|tڐbK |{}M<+pO#3=g^x 8p8oS4C9wĈjv1E7=|){GwO?֭wP ":j7lfjDʤ}} 8'!ryD7Yi|/(WWe)\+;w[;^߿U] G[+p[X}+?}ߥ=\AW=Iz yJ2[B1ޏQ P =_@/KOO8/^ռ)7PJWҁ/"M`!4*.f0DDAV02O@y)BN^@Br&ljBcN1$+= +UQa9'RDBVhe 8< 3L+}u],I)xKMM(G^DK.!hPvMr[w;~n~t@Z :kP~71. F\g (w. Q>WXa!.F9YRXA3X_h8=h 7\)*Kx_p]t6(|Nԯ4u eyG_&rV_!qD@ߪĘ {:n2@_@(0eSzgkJmYY4Sb9 ڙ2{X#0lUqd76 .1a]PϠ+Ls0PA4%og Ϋ?L +$ft'aq>)h9.Y1o$趪&;R:~[XeJET-o\n{&x[sRGuu546X[qT_H+ZV[J }: `+ z1qˑP ZrZ* FEYؚJ<]0zݢ\O҄1G\&0QJNMeoO& P==mVn~ǓIyUHwW:W= - V H^P%NB^GnvL@Ry۟x>?ao|_R?t@ֳݐqĊGT@ϔK@GLPcA^~W緤>//qa^kzUA;w/UYBç~[GEOL:tc`δq<@  IutM>сb:9ĕ8)hR}dWC,iv1G7+iFFϑѡF;'٥Ң1/+ܦE#RE&Dh NpYH'! a!B<,VZMt B8ItF%vd&F˚.(SLEja wjof[W8jcUv\HPYt X1# 4gUA8LeӶu4w)c藕% ڭ ;ED7u"F ?3 p!(jWԐDFqLAmS9\D v=wۛFiƚiDث#j[\ؽqKG [% 87(,86w p@D`JPRN'IHc ٓO<.y~2 J%g׸JfH.UNPbF I?;!03#׵^JMpd[{~֐?`dG:@[T)YAz$%E.,P01֢KM&ȄNtp=ICIeH"!u#JHaƹHh+4޲lW!)e=Z'`gpu@ȒO$./BJ8 )ti$b&OsUGPT&GmoWNTp%Ju 짬ei]ꦐ5-zUk}X+;iw#%0b/# 8](Q#,`oUK#)'0(F', 9ĉ&nxGl\B]6 P-~(zҵ EdP'8/:T5HL i9A܃Ct2R0 ],z tjXsA|%HkHH[ =9+W#f[ #4 A 'xunAq.#`(^ĊU~G5VVb$<]hpBw{OĦnP7oTq "h3/)jT=y![R[d;JڙiÍx㉰GL '3J Epc4K9R*b=*8zAUo\ie5sVhςB I$ySR`RrB]Hw#58޲ B8O1FtTc6Ɔp6nG.?h0Akd/1;*5/]BksBӤ5`tU\v}l;澃̟=*k~uS(/ u~ek;zhgl嚕զ{Z~̀$]^%0)F&Nirw*LL|;umWpo/mW<~`dxdv곍[GKKgXF:4I^*lvhea'.Q_eJMEB;ZE D!ףT&F@+GIɐ)`p3*O^`цI *ERr8LLVBkNa0dA TW“HԠF VZ 4a< PJ" 4NŬU5Ͷ^>`Ձs:TBs/;?SL jl}VGޞAع H(v(/F a:mj=c 3xd!o*(B+j!Pꊐ-mnj7o,-!@O2pb4DE} d. ;qv\Q63#I9ˈ}BEQ XY(HE}cqK)vٮ];mM"Tona9c?>Fsݶ6{b[]OW X^UfPdAE=7+ch/RP^֢#[x Huq)46 .Gt7+`P-zW8lsNOp+XW \\1*l5UEN#ZY/,K܆zOA'+'$TN lvHGr9SyMM``:`+~8\,!]i)TuE+S+}J$DH i$PH׬F^٥ ]aX4P'=p6(!RLP ^n+QK$OEpr $bQ*.X 2J+Zo{=HM]F(쁯7N6SHZ9E~4EmRTMR>բzdɠO֓ݹ%j뗇1ZT F=\YUƕriy]nRA SJϞ(J|G|F}e'p_W7a w\l=w_MsA#b4poj$Cl[m`}!(j=4~9u7ݑ>,Vw X]v˶ۙ呡gR-_xm݂VKVX>tЊDzcPZU'MMMթ65isWv-j]muUjľzma,}bϤ[,hA*eL%G'+AU*I che!R8$z[*/nLt$)58,:JY}2{rDOY=*7 O28bk(X48H#Q@ l^r 2P 8N*C`*^} #`4rD_/$E:$.:Y/\G}D2e+V!.OG~߻/~G$IhD#U 5I8zŘvF4 _YVOq7kxd@GSvj0"`9%T#\, $G:]guG'ɬ'MrNBmWʳI5N~g2HoJ#\hLe頋,JXĞ3w6 Dҭ@,KYb\fh$I':6 yŨ$:[wYSK =b6od7y-a(;bk9xSJ-buk ɉc!%e^h ].F?+)$TjIyH X-gĊMcc\&(H+%F-JzgZ6m6 RӶwSY/+/,w?ҿ^2jpr]o}ĉ#f򕫸gI\zK61ɀ7X6 !4kTZS]z͟@vՀ/5HIb:ia!0R2a='a:u)lHt:ܘY,+|+.gp#938#]0`xyʴX靋/j$]ɛN)b#? .Y,D9P 4LZb];aDa'LkK3t2d6W0'j5H r"!\m'E^#Cy۽) TUEߺeg߃pm:ηc6{Цӻ 1@ӌnXn@E˗"a&:و$L:ʧcNsMgVzN<'/'/:pe/C`0I#R'M6D҇{҄ݜ;uowlbf {iЇ>!0?ta&iAg2sHAss9ssNu~.PKIW ]r>dt׮$n+Ɛ]pVH'wùeu+&g0< j78`!%IPT\ߨsq'VG\j:cEzv5-"$LB m!# Һ4(fSi`ah?7>v zZ&k>eTSP. nF[2wt(ԡǝu hF(F2Vׯ|u?tvER)$~"F u0CP+Py e0Coho=?گ"1x|ٹ満TTJ'\1*fH-o<PE]8z=Mg׬^cd;@3t#zDFcǙą @zZHʻYަ4A*DwH y8D =†Y@%Sy<=em=)۴¥Xj;B @QXk)÷![zO' ZkDw)vL:rxY^ߧ0k]%xlRl_z;rYpS9l/7Fѣ؅sgw~qdA@BdA)?Ѫ M8HG<;*"༘Y1Iy5dHڎG i+le r<5$l g FQccxGPp 9Q?Ưa$,ƐFw3p؊+,-ʚR Y~r@ H`-ܿp]mY.`_Ue횻yۚU1rQa t5;{_Mi8B-< >@ eEn߯ ^X-Ɣ_+tWܤ{ ɓVjI2edl%ЎaµUԴ%!v0lg$ҹ%XjT ~;eo (J%K$a]:K٭Q$t3j=cO8ko~)+'K;ޥ4 u@WED[&ӜS K}0ڥk6"݈{4-cgA7|v{{S~b<(EU$ %h^LC7>Ļj}?4> U+6",bP(g@Y,]dǘ1S%,㷾MĿ//(_)S0S?sgnY:X8w ~cq0"R|,\|h`3z 킀XцzAcֲl9/*ڇhkU]O']ŢЌSLj&],vᮁҗ򓞧z˩s5:]+3~-`,I6;URDz}j @;B**X/6;-za"JL$Jth(g1 ̓ϵ ZCwY#G!fɜcV&)$$ y259 (*hn"]C^B+m}!T,P){.q 9ݚ4xh]Bc%ܯYyrv\o{|lԟa @kO)bPzҗ6:&Ipvi i4DV;*yV:ǎŰJ'U1:Nu|ˠc] e=,2U9ʩ:ܭ,u+[eYq\ x.335<;0k6N`p,Kr+ZcuuUu|ԩk>n cj:aǵֿz+ݝa㶃]=Ps^X U9֖pp? K›.$9#-VBLdaG\k\bK7Y/y),l?Yɫp *b=ӟHw2?D$2245[.?ߘ:~&R^ k.ǎn@sj dMw\(KFQsqTNlN<@Їq&Zvdd"ZRգlxZvb@?e]&an91OL P΄&/氒C&a╄ka㥟#-[ BJR4GCT`Obk-i5;̵τѡX1AsʘAPbś7 oj /XZ .B1佀+&R~ݏ肀.W oUW|jbř33__}Onxi-(qyŕWaʛB @yp@-ی:V#R{%~snt9/\{{UR}"ݏ{/\'lW =dFB@-u>Hأ?{}E3ᇽ8òfWLA=+-w[l˿ A}lt*92NH kڙ 1 yF̤ڸR_V?-IrN&! V[Y3e%x:U~wBgy?yV8#},޺u B{@MKH>T?M, I{W/srp4 )N%FpwLGm]a]`S;n{HIDE6O1@L6*Xw|_NX#ɆxdIe!N t\2֬Щ> |lUF:&,%Q&q1{:ƦKdm'$=yBFREobEp%2U= koY 05=nC, Xt"nEF-U@V߆A⨃ #?,%⁄|oth >j3_Ff“?IVՇ+Z^SwlJDKgV=Ygt0zdjl2Kkw vc_DňJI~ЛG9ݖoEHZVvpŮ_ _?']o|'8\؄ix Sصc{3o^j)WT,+?G̲Bg1NgWEwSĝ:ɀ:ͯA% !H!٫p P r 5Ac{bˑ6ܸ*,9IXןD\Gr ^`<ɟuRי|7 Rk C?qZIXMxǢĕW\>fGM 7z ! g@yy~N^[٥T@9+̥vnbKals9 H|22|L#ۏ8gFwXsϒBET#c76,d!=%栅Gk#~*Es;)>_N٦k& 붾qYo'}slyx ;i 3$/=OŖlJW€p8s|S3Xvx$^~nbϒ-v`-!iƛo#-{5{1rHOWعiUzU'lījjiǂo1Cs _^cr~{.;AT|`"64<>׾5OM'U2D&;߱Cܿp3|) O kv ycu%h(cHƸr˴nʗ`)K"yqfba">SH13!d Q,Qի$+IAFo8 ّy S4SOb#\ybM[wmeX8|ʈf:QQ2Z8؇)69V7tP0Vh^i*, NQt2G(Tx(!AT/*#OH+S6QdW}Xr5SLQ(hkFBg>h"/ <6;+C`dT@%/œ +8U+Wm;N {<qW(\n<3v9 Gཤ}T %9K(XR._yJ6M2H9ڎ|o`lw-J|k(mY@q?Scbٗ@r,_ϴit&ßs)?}S3"K;ߦņq)B9ـVH%ٿ8Z|6s GGЬb;s-ucrZg@ppӭ~2R 4^(gṥ|Sh!kM6q F疤a#p^=`jC ZnH!Q%W"[Ea;1}D̺qt8? +eRlp\בEE>8O([g-mŶɃZdY"A?ip񹄓S¾ 2Xc8%*Rqn*F\COC/402ǺĂ9q̔"-!%:ȦyI4 DC3ݏN=VƱ|*L dU͔(Lha6<JKhA%<贚밢wp2h, ,16qրuhNY\KB/%2o񟄇 %<NbN 3N@5z '!X}tOն}vZx<^ZXYX\1&%=8qFM<+{I߾.7 8nO?? sK/φ5..{ "UMAUpq&>1OTQ :h0K}m8.}? y #b1_ =,lŶ ė#>zχ>/O- P܈8Nsŝ*4+\.^SdoD珕SPKDיD}P`;x|@IDAT: g׾|ox+[ }L zdE _x셮+]ni6/#G3-u_fP|QR;Wq'y~+,76lbH/̤1b Ņp 0ND)Iqv2& _&.jd@v̸i"bx"ʎTpTxF"SDXXȦ- F1Pb8?YG2".j%!e9Kn˰ HI7!R >JzknIF!4-?֌UP P.CRHVV0T.6t {Xs8QMb *Q"BZz몉 -5U;*ާH%q|'DTղ DuhE a|nB6Pux=B1+郂u#h.(F\$#vT^><&>}Z7Y9?/tv*Dwc]uu0bs4ݛs5⺞"\uomn'~>J跳]>i_˵晶2 )g:*O|Ý,=G)$v-$а,4ؖwF?:]x^kk 6}@? 1y4{(40U''4@  lĆl$mx9Vixin *yq8` !YWM ӒC6";pӯ +"B8N,::Jg`q%CVw3I TxK ̓lKz0 hg#4ʩGjes|}EK/#idS:tz,syh,+zZ8JIu5@ 6سXǥ8p,v9,;}=L9χ7aҕx`yX@pF"͙vӚ~筿nr;,Qm:xSSThCÙ᰻ Mfh08Yܟ ~x/ :Z0v[\̻<7 =1N8[jfާs?s1/.u/gF?Ӧj~ϚA44LKtRSΌRR<ʴŶ\-|ベLE^ ֑e3scȆ390c" P԰n\c0d)hBQAV۠P i1WWIi#%50+Eȅ*8iOE ?M=s8P@:d !Ib kyxDa"&fܜ̚;iEB|`'Ѧ(%mȁbk DHo˩eՑp+*0FVLˍp9Dw-0ǭ$'$3yם៿{90? m(N)sYQլ 4e `zny)Tο/d]ڢoܼm;/ڕM:~\mǛ'W V^z>pn~]VLމ3 v|z#M E81*jYξ#ęn$H!V),>?{5XLS+o7~yѯpU׻RtOzqYo wבlk c \8v0|x.녬K]ߥ\K5.Έtهt-<ֹ^~^A|9+|0_,ٶl':p4,61,]"2Hb֘qVJ'1#r¤*~QLHh3Xԍ s e1o&l@z덡V[2R }4/eذFkj5G SCC=c->+*%'c-1;0s XSiP7}ک|ڜ5n% ,q-վiJ!kgf9(/"XQY76E6 gʌRAH2rk jS>&b0AkNUW{7}7Gx*{urRHbѽm@cNKu4W)Ə΁}$/ϽN?K r/$j/‡vu}\&>q=W2 </]9Eo9^6 lůӌHoCt^r'm#D)i9C?m}h|?.u>vo\UXqb׭yEIAl#F8ψ-fj/D`[v_e Yw VAMȳNe`5YF 5"&A7bt,9bPcTzf56mD qÀ8V1C׷f7r8*HHh1|(SٓXXX|7HXXq{PIɠz4JKp$ں#*)o_M:gAR[i CUfhCJɴP*MuWOR38u"y ᣟJ4\c 83gHv:_|xٟYڐ:V3 P, tW~__jYi჋Abs_S)_jio("Lts==g‡?Wo~;$-Q4)̍ mtM =yk~>/<[_kv.m!:v |W_X.>6zOo 7%/rPﶔhi/x5Sa5ixJ8]նL`pN1WRB*ВJQ Wy <r3Lkjڰ:Tc/_j֬8rXb+>$\r9:LS ?Z$zxd<372l>#F:K4Qcȑb9l;N ?Mϳ e/YyN+8 (OKBp(gY8k?pAux%vn\^kp݁^ĪP %QS KZ ]>?O 7t3>GFЦH ָ v>kڗؖ/7Lpf8dghC\O*Ǖ,SH:$r_(؉7 $cnPFwDR8\|f<+AeY,RU"`>O0@&qpV84:$ezWxW{Bg{XXL{ g:O]eۮ \-lY_ ˊO?h܃h#Z0aStk>]q_a¼\Xۗm:Fh$'uFY/Q'oʰ4-ZC@v 3z(hU #m~a+nXǽgM[EM~/hF7oq4c_JY"ffd#co4 TCU(Q?:хhO;?1b!wފ2AH(tݏ_Z6ΓYS)1ɢ;φWXCaR 7FRQ{/ ,31J"}њUusA);8YzYqSXv|b.n5 Epԥ@mD9ҿ8FSMCԤAbH!1Rm_{§>o 6]3Gn7wR)dsX.bu\/V؛BeĽ oSzJ C/ Y.I2ޝ[ ?Mhs_Z<䳙מ?>|}Huںo.O<8;jmk XO?RS]D'zoK?~xA L-n;$1R+k:?Onx)PPxi_?~-OVakcOtWPR]DE~LTgUi#l1DRsL뵂,m Yϐ⼚)pZfTG QY I9Tr bXJR:2=Y>vkFήy\YikȁgtXRU+]^eP`y?2e@}s߇܊h 7E5o+ {.ˋ% sPˏ}h~}J&~ ąCM}/ XoE/a8Q!_KѱL N 1@k# ѵdQ @T%=PVgFb,: 0R3EF# (+,-ǃC3uS*.:䅛4*1q װ? r $i/d fr_>txI[f2F,<#χ O։vo|5zntk$_]Se8Z&yt ͛빸ib Ԏggt\4?O;-Gڬ;wa=#/ۯFj(716 @2Hb2V_x:&'jvp6y,) : &DwNmkbALu>[9СIf!TρFQ\HIȔ6m0!a"J?-2ީEl'm~9Rz"N[~xoNqO +"Vc^h򽜥o-;Y҃:ŋK=v-ƪ;6,K<9,r-*Ć7u\`vd4ܡSkbVPgjVe_e@3.da1kaYR#JK0HrUA* 3$2P!gҡ!@<fxA"z-H8F4G֖(} ,qaTYdM>ziCvְl5Y`L N<#p@~u#Jhx~]+op+cøV$dDZ%),i(8 aI2m#r|lZcR jMxM5lK-eqbi"f`èecu hNRi]ȑg% 3jOu<`ܚw$R}HҞ`h7HQzh8LDw9aGw p MkIIEEiʎ6AtF=ujWZx-|f-Bσ(}0{k1Th \m7n;YbM6mZ} `z#\I.pdr;z6+oυ'&Th)A4.7K[f O)U `w`o 8o>8FDp8V`L[hGFjGY4[?zk£*0lz 0k|-: k ߧ@wq;2aSa6kF g_ña>m9v3|<gKn!i7fu'Ag8ԑEp6Hbk#>7ץ5^wY.lq*˗+Y.//= L~Ga^/ +x"%; hƙSd8ޜb;NNu4}7a1j9wZnh֋VPQbr~CL_l48ޞ'hA̠sQK,Yk-۠&"XG='3ͤj8˖ xDxgAx l8B Dtb~s( ]j olqttڱ'U P(!! 5:rn *Img ,UMNcwֳr{1o^-~D,PYFW"^\Sp8;h } \'se 0 @Os3{`ђ osm7؈r rZ oɯY`X]mKĹtx~uW"È@iaKe939{;|v͘;ە w-.DYĝ._i( GDk^ˣ\7gkiCl3i-9 .z3Ɇ~@Ēc$Ng`F/Sё92 jm8};("Y_G&op/Lr$ln2“Հ]q,A &&O1ġDY&IArX3uDZ;Z_zh Ǥ4@f#U'XaߍKYA-9:xuWŹ<OUlK!zbhxHd\´_ME  "bY$mB6"Z' k+"yy()}jb$4S%Lή縇w\Cyt{O_꣡w, G0 ݔ:3@kXb8t׫ }J?`DX re'n/NLjYާpR-܇ kC 4~a"l}l,8׸=TA\ Tel3c0qҭ8q*Z?e t۷vvgpq@+!mi1-[ǤHtŶ,V~%[Li%ݰ}Y`HX<ҏr DeYjҀn#{ajǓy7('zU ~ ] R4:?;,qAM?$$npD̈B:S˵֐3@Gk%:!N_O}:,^,eXͣ~!Y/kaĊ6l;?9d.r> .H`3tnAEB^GxZ^0]Ry}f"R)d/4l(sBCӿRgOhKkhG ~BCxs~v|Xp&h:iN)ٚ_ )¯_ws\  . l#h-bx3/v-/-}YO{1Bzɮ6CTN҃U@}DDLkXR `c`ꜣ.ڦ|ɭcԺ^ÃNBrHl+*W ȗ/]5 }">#RK!pGp[%\t. fX1C '>6NbR5 W_}uLv#v#<)z~#.:PTlm{?j4QSEfW%erb/1. "V=Vh=#m%-W)f鐩]4prGFv8 :`Q"GI ]i7+:tQ\]?lG2me+҅yO+ǭ"c%8ym+3#|UHcLE>2p$L+1o6<8f/oEXcX̔ 7"4̰3䫌}/]~[z,aQ0nǪ= CtRNcV8a SsXݦ-WǬBp)NEu >u=)? 4f=%ܭQa"dgV}=Օť<$2ghP4$Rk'Yp5-$yVkf!:|( h=ƢF Y'śA]Ns2;;y 39xie`UHfZlK%*Y?Yx9:b6f} i42bŠ7lu<;|2pP mԃ^0JegX]+7+I71~`?,U.q}SsK>S?߬ φ/ɱ.>Xt{7\^m 7YZgD .{=9qY\u- gS.nV h:-8@=3~%JB]߅_T'~jjF+wI9#(uYK63Y0^lˢblxF[+׆PԝJ̹^xGH ;ߙN ]}z #gz`52#]Qzj93Rh( A7 jZyfPy~ 8pQԦ{/t24xmH:`,/jLM4t֖fҝא }}.m?>|khh ;=y4CapJjBq& 0.t&}> ]!^}}1%ׁY0D7ݵH]{9'1 j-@O}"٫`Ӣx=Vxq1ߦ"U䠴p',m+?sɯE įDSzhA^zh빏bB ()jݐ< 0ЖX WHŤV2E ÀJ-`5`=NQ_.CEǒJvD#`=N듩s`tV(3NmOemn^B,|6Sc'\Ҕuՠwad%LTg򀜕[|<&~;ɘ"-αi;{elڠbJ7pQh+(c TE DZ"u߳êΝQ,xp@M>:Oއp΃ ~4]y&퇈y2$0]xm&/^"#Y% a@.Z}?p\؟ZN;id3[5}؁HP" Z 岮]:~7nij\@+3s  5M> r"Fg,eqR-d'|*v,08VŚlhfC`zMn}}cR3Wou bֱSAl=?֙ӣ٪*kabq3`=sA.R9FP(oZsΚ@jM&JTU<;nV' d ̞њ2a69A"cVdcDw и_:6lx'**}8.jMFchlY%4ھwcMng=1(礕^2WU= &}7ᢡ' ZQ Ut; wn :8xڠ(Q9@Մ{z_=][6bcm'q +Y̦#,;:}?_B /?\'ށHKB9u.b@!$s _ ec{H# d2V_}Ƙ}wkt`+$mPx{ncnVdDgb\b[rbihXO$Č6։.Z0-O;ùMtu__"xwśhaR: ]jRiuU\N `\FȒ+5 9 IbW/OCwxL+80IȘ$OVEP!P] @ay4@S\F{1PD:t.N9(~QI}:9Q':S'x/QRnZCfUV#?G,v-\$&0p@I`Zv:|fĐXE+^ ExH ~ۊA _z2i +[ʹt|N;VabtyX3auGqѰfTsf#sQ!A/x>kj wXG[fK8|m^FI2>"zŘZ_ ??( r<5٩p~| Ԑˬ@XaKضm;λ2Vg1-i;8~\~)$-*'tC71jhcT41˵->2L ɱPFŤxAKQFb,9qfI Tcf.` VC)bX8rpťfxcc5CIQ:<0L(;N<ұ&UsIMak @/#4*ñ:v(v]5;tIahA;@[l u6ߏ],>9/lfAL$5MJ|KDh]<8,kB8 \1dӼ!pKo 蠭ӇT$eSw{}*ݾCg² owq[NﳓXefZ]L}M36M6'({3-ÅD *τ@L 䂝WZj,w{<>s+iid.þgD?'ypı`U%_mI'/,v2DGB@vm򯖚(y0dȪX(ce f | Ma%r]{(vj #xVmM0~8 (XsB9'&Iǰt,̑_48!`8 ; d4{c_\}bMQ,d$d_KrE3voGN X8DLmuTZ17{u8<˩kj"a-*V !ՙA5نCgNjG:vm0S, 9wĘeLw`!} 7QS!A0$Q u6R=?aD1{`)n gz塆3RDxVG@IDAT#cz&-R] "T4GF_9cÄ~8|Z[>3u j=d9K(6Mѱ&mIchYphFLBb dg@@>cee9rp}N}FFHgVUY>NQ3C\;ƒC}'r-ko* gΐjaeaM/!F.7,Ăɣu f—5V\ j͑^m2X*͖?*+yOEqLS+ƂtbR\^tt "M IH` 2aoXkm^];MccSضu#߭SmE[9|g~W8i~9 zRIZ֯_ 7땹 " ތc@yN[:Yv S*Yq\Z/8vZ*kQ^P%2U-As !blaZ tÞT bᔇ'u9OA 2RB$:`5ZiR%M>fqÒ&#Bzv9ií W!ՀsTA )ӹb3H-FPpܦ8鸑nAd4^Hl@Q``9q*Xھ!ԓz۰9 p 8O$*@TXF$cXGN}{'3=O.S~Gf*NZs8'빗Dg[JmCiɉ _Gc5Wnu 8[#U`I;{ 5@!>O 1g֚rUE"3A:o@LFL[q%Te55vO E[EBYמ /?J)54]&vw k֬rFr8HJnk)ʒ]| r@r-juU?LmO:1l&"6{J_K<_ E6ů+*4Ly^gf ^BZ!q`u`;FQJqNM/a]yi$?G xqrvUR5cdu1Jdе1u=}P;pY$T:/>G6idTBJ|P|sphɗ]Fq lJ*%j,Y~ #%:L%L|~Ux g0w :D. 1+5a8:h&yA7$,jҞ"Ut6Dҕ\㨳,_>E$4Ra8沲zk8 67p/rXC $(<O,;lwIt觔o_x T<vxëpr K-cibfŽlgx- h[D0Y+Ghrn͵5|A39: ^P|ur >iWgn|>ᑱc&8 g(9kcGx*ŽW~׿Q, ) 6/"l&X$|c3:÷ u}"nX- ++|}],Q)OB*JpّPFF4D) ;y,;lu\̧@jWQ lIlb5N?LLl9p%Xck95Vii2Djtðb9O`Pe73P5X%f]aHQb'X -L>IB0SXK{1}&£Kwg-=yzUJHmfrVt0@APaD6 ldi m7%|(L`q'O1))Axt' pMX4ulۺz|9R6UH#Yxk}ot ;_nAt" _~'.w&,vBj)E9c!U(-v-i~ ;6Nꌓz$( 7.: G(dJo{S]xo~ 7N^s(ܲFMr@ t_]X55H8@qfaeV~7a5|`\A6YXΟBI-Hil@|yoVM9HrKL״t2T0yhaV'UF,uTA$+AH鶀՝!Tɨӧ[@pF"2DW:t(t:7zP-h@$TE9æ-M폏j֏<8p=˗{hl@Mx|mf?nٍrـx] <f} ZB5((he#+Uf݁6Fإ^qRq s9xALXcTDzn#l[)y,Aɘ_9[ԊqpjWGLϣJCjA2Su.;@(^Y1F:XmR|gR,JB!ey`]!=a@$HLTp1h *jDL3US-׃E-cKd Pڤ|^G[k#jun οb]*4=5?MR3JltO_Sa1(%aetH.K .JZrY8}KdCIdMrvn1v ORgᔝ m ;v\̀7csg?k*p "]>@ H+i ( =s%#ĉa=NiZ-~g?8Yaʯτw/k!cK8LQxz!^cBK:Ҏ2fb-qzGYyAG۹e%!WCxVZq, HE G+kq6>u=)O LyxEܷn1 ajD|$Jk*7"Bs:-.oCHuĿr|f'fTDp Rpc򻃃'&@)OD Y*/9`<2tTfy_?6ҋōQnpWF_Td#`RAt' {JןGn hf X_V`jh\@Ѽd 8iBp38 ħR{Rh9B38㛳WB?^zNW& ZZV i+4o}9|$}g t W^9 6| .[:`%V,Q%pƂi8q|jEǪY><E6m|q(zQZk_:l۾k'̍!h ,k#,?@Ge&*Lkk;-BQ~~/|S$<p!, iD=Q Td@wa;pPOI9OtTz JP-&8 !"P"ڊ8Y uLuo31|I(lChEaUlNXP)UFgFIs]FS}BcW˔{:'z^'W^_ffzbGਭ(8"PaprIš jKc˶+94 3^eNh|NuP)jU @m . —$&Yp].^II/y ASqy'DY1tcq7-_ZH-a$,%[ql͓ZX9[r igqA(ǢY 9BœA|QsCERVШ;<6?\^jޗ0J X~]XRনG:EC$ D*I ѣGã<9fyё|%<؟9vB o. B=C,.:G,-O'`7㏅/}ShiFi9?8C?vQoB5-,2󓡯w U s o W'`wO'E bq?@_z3u|G:%k~N# /|9œa$Fm1+T ~&p:6a.H5~-AL2<#,IH6ۼZ vY&*4VX \e]r+[$ |N\|LRW|#lPkVڣU7Jhԉ1q2-+UF!5@kͰ[Bab!%/ԉT*#ȸuxv4$_zyW@Qzk%)Q29jXۨN8v~+=`pV[5X(TTqfٱT碮U5Qd˾0CF`>ɯM:n`pO?H\t1< [ O}pX'O+# ,"]v݃,3UWi{x~8&_ ɟ:aAƗF@F`uZyyf}efzG+9Ab4MU=o?^m^nVgPv~Q WJXXN ExJ8$`?Si/|!:3_'gLX/,zIod,ֱ =E6gpQd"m:q+u@Qī#HjcO.(M/1 ɥ9?|;xN6@7\R(yʡm`us$>i4ĕ8m{"G~`3 (ün#iM[fr:T3sXOF9 }ebYEVʳX@XXXTW'i+yunQ=Ù-~W? (Un#R vu~(4EPK \ⴴZ!~fySTu?;"pw E(@*IJH,&: 7Lxp~L2&ɮ`hߜ9e ȝ~6ȖAR<'+q4=Z$o8^(α "MbǒQ!Ei7IU]L!:^ 1SO?׿Lz4ڦ_xfm͛g`p}Do ^'֮ ܛN ƚn(>앥p{Ї@@PQlj"/SuV(i\L(eZXTbS+iuNSj^2EYzle $ddxU( _7z%Y(]ʴZR?v!#w,ond"/-Dc)W[찀+ȿ2}^DW WD9U,\zqT+Tڀ{^i[Xf})BאIu0^[Fmػo{b:JͿ%wE_å!ɲBqP}9z:U+iDhH9B/ڠSCgak2.d3#~4+Z8ƀ`mƽ*P|8Røs-^ }$_ Al؇} 5H,/-[^^c D~?+щ7o?c%<3#aއudNr1)¬ZII>f6'4I[h1P6R1Z{w\;8IxWspcj1VTB3[lc 2:x'_Ik 'SvKlm8ݖ %b>d3jau Kg!@XX:\`Zx٪pE"Z(ij.Фī0_m$;ֶPXd^+XZRe~;6,,xPae +Wc&"ֹyZB+\omjew3 б7Ezs_ =/w+z_?3J&b *:ԻyZ>L;P˼K/ Ʈ5; “O|3}-~ ð10#N8cEsr&EF?ݔ@ıvmԩĚ~;&̆e ]-Z X<1 >z]'$?pMW 61~${;N?x:u:gQNY!y@w~0; 'wC"NsU&:fWiB؎S0'M+UDrXKl|3+M/?>ӏ-c[~w{Kxml?U43FwرTЇҷo5~IKnJY9iIKW ֺ0>7~HCXbhtt$|G?UEQ`۲wc4S\wCH`.W_UǫV`NણG~|[(mo"+{p+O:C1c}),ȷ E,(_Gkbۑpcf+> 4CKSC)LŸ AE ϝ'da"V1,2%8VB ݂>ǂQ'dI>xLzLAkA yR_ `& 3}D,7gOǜғ1@DN9c0фe'/Q-MIݟg\a22; kPQ# \JCW#%'͒!  "xo)঱YJ$=g!R*CU$[z/waVB zua" =R#ZmGr['y{) ɫo[dp>Ç_Z7w83p hJa+nfrk̢E Ljm ˣ> (%\%6S9 `ͤ䜬*0Z9(p.h4bk$ B x[e#՗ aNz-Z rn&Xh;dO&Jli3D%2{K6NQR4sgI/Sax ̀;"}XL6T #_&5%i>Tf¨tU1ȫ"`Ƽ3,g؞?Bh'D4&>s\WO<e/[??ٟcAZ /B>N٤*KvH n{N-M3kjwD>=>dfe 'VxqwG>xS@V5pXbIˏ _ _Səe<t1><+,xǃ捌<%RfDE&rX38\X1; g:&5\2P+0\og2-9(嚠7P2-$GRiN ,4ܮdZFw3.R%r`y$Sc ?oI|Kg m$9i餛Q6 9xF5Wa{(742.\ %jNC޽WN7/`_3arKgUx|?BHj`ݩYR / gai[o;i|Vj-oi-h" +dL~2hЊŸ:==Y@"| Y') aMU@Ÿ&Hհ\"sJ[{?oke`"(}(i^Kw Z@ (@4-~ `9j&,ϤPEЂ"nj9ZSĴg5ƺD2 H3JZIkɬ SYh28ř$y~7TX -f_v[8f#nXR*Pp}؂J#bYk4b;-vOGЮ'ɘo4wk;M__cA3z~sϝE7j n2}'wϞp":2S?q8oہn\q}*~<ܙ!4Mjө`wƘV'Ӛ_EF7-7׬[FIu޳ȧG>uT]™4h]2ʜyzDl軻-^9/RW:L`25F8J{7'4;`]{<-r.-=K8Z7Pms@=an.M BNA&%f@/BU`C^ 0ױR!Rnek=g Ȣdʢx5A{O#*(GtFHcLKt*%!moTY2io!UM3FAv粀r[ VHXބ[uŢtHرΤͱ~#Q-3XE@< @k LcOJ’X}15!dQk2y{ɷ~я}ߥKǷzJe%cn(4r?{=mЫkTR`,\Z:5a!N;7x"._}lW}ؑD-n 13W*3sLn h6> _ WE{w VY!K8&ԃN=+i]"Čjmik""I~Z2g8:,TYxbu+ͼi-\jBmN@jPj5 bWS̀^Ξy <~&3Lof3*yersw3 iY- ݉;@O%de&j)^=Aֆ6?:6([Oڈ.2eUJ*Rͱ 0߼\ Q>CnONI-P'lPMOY%/f8zdQ~,iH,q+|X$vzR@ɼ k8Z1i#fzM#*ťxhjK;X %b@3);uYR NK5M[-L>Ju 4A$3hB3TBEϬ-0s*IqԙMv`3B+Qw&ly͋au&$*X$0PIGb *9e5 +"V5D`:I@h[4Ti*c: mO7`Og!9g/fe$D /hQ4$`}(;=cZՐ0ÛNRu[DuDT/KGk~X%D Ւ&Eڢn4 h<kHul?l;  ac{.`}VpaUhLdk(}P`/GG=bŠ @1Pgg 4BYy$a3$_m6] LBi(G֯-HQy' yƒ5} 7&&Ws%kI\jpp}i`)<9 ^$U  ̶-W=u+ԍ3dxtla>w+&YF bd.neUBB%exh*5a<7בLrC ȹ^*d ZHCC G6j5-e@3WIaYAdHU,X҉ 7p;Z4l[ב۹B{떽A MFؗ8=tÖϓGC\5(9|O5JB&APqdSD9,klne#NhěS`3,x;;戠H_-_9Sݰvұ:66ᡡ~$@q_G/.SrUpK+A~.jqmw/<o_ש8=el:!e<x38j[Xm:M:-㥵yi^C )OvSa:ZqjE7 KdLtd[ lCH:AS~~&+ ar5WUpmRms[1q@ukH &i1G)Q  ĐEs_шZN%5nuY&V=-L,a*- 0;Q#/g,ok$2a-83/EH ךHN Ԍ4t3xnf*n=`6asg:q%5DzY6ȅD^)ֶF[z%U7)bqC=B'5#1[Q0dov!Xj6[zmD |G cۮWG 7/FWɣ;;hJiX\=ݽAk>x ֳԓ\]vREP,tC2Ke #X׎qe;c!UTAWvJkĉ!={/ VlgMv*?~7yvC L% laqxv ΃'L&#Dc0^"4ՈnRu@e>$Y^u E%(.?]:&hm]qFDUf;1> &̃ n& y&63@G5'Bf\U#>kĶ s`ZB҈AeS[JFi۞^ky`YM6[H&2r^D)qI>\ o9YecA\,w%+T%Ɏ+*O2DxMi{.*|loH)C_olVa1'YK5gI~':۱1 =GAmzj :2ϸʸf|B'>]Hp>L'wa ^3ЪXB%QNrz5|*78iK{'c3C0 U9`p\Cߙc+Xޗ|;~8pnBiH] [`$τG0X=Q'7HTa43 p<`grClZw);fgđ V9pO=Ǖy_sVdX^&\9w•#avQN@IDAT k= "b .H1yZ&ͮ]r{ñҮ:$"j1ׄTJ.3e) 5A8T'l@kϑh(nWh $fub1٦"\ J[q י.!k[G1UBl>gh4"-L|,|&)sT!УsEx-$ Y:C2gga5Z1֌k0)Hi]"pӀ^ |,'\`ތ[6$8`x5Uנ9,`JwfyK3*^p3iKu3p6P.(4!%d3lxNRK+i>K})zw  bi#[ݝ8lc݌x vw'[* ap_ IMgXC [8%piD0Ū5!HkBk9Ez۾>c lA؃26E gsX V/{8jo4̂2Cb K3G0Ӱ^ e@[ :i 8q NB!C{Uڪ;3 '; W]saviGJȶdW"_Vxj M5;pl[; V"N&Q<&95J81MY) h!s/G;&r~ܟX sטkpEv\qf@/8" u 0iQ!eC 0襑7c&|g>ĝS6S,@¢, 5WEhKIw6߫1#-rٴk+=[O%xrYΡߡ cC^N,=U(A j|Dpwo}IgFFSt*@㏇|jl'Nc'C`Jm-w؟m$Sq"8!Ǫܖz߱kXb|,OC+!w'5 <>+߮L/&&΍XR-im091 EBg \X'Q#LL\(A4+*o1W.9V-vM )fy{TmPp,)BP ṷm©<ڕ![Z"[[V1!y/hb 筅[)E~&xTNW5@WQ[;P*#FZ \KkTplDPw{@ Nϝ7'N,ZX^ @^n߯_}hR(4(H:gǰxk&rl{n}ζ6$h_LCZ}g4U(+44O 'ޮ ^#<]'5* 7CsG{c'gW!w QY@uW{?@|8f%pq5 AEڵ?HǛç>aTge.Ͷ3o%em1 %:sr #Eم'0ı"Jɑ|,rgJօ҂W1@71C0,S XZ&Z'I-&fDEd8}P/2 հ:,z\w#'(ɗ#_q <'2':ǹ}?_o;}9/21+i T ",h]hDO!h2|;5ٝ-C98Q*AtbDjLՊqm~g82{y$rnnb p.1R 雯wvu:wu"Q3w<8a:Mj33B ~6?s'<3ᱯ=??£| {ff<$ ſuvQr ig@/`8l5 Zq$" r&/A9KK8ജ7lqx%_X kca7|Np9yȇ-]J Z37Eny409*(&]F^W|5ubx`a (F,dG,kS7ΉhU*[ګjX=1273M;ðW99ںΪӼhu'0TDX7V'Cmau{oQ B>x֣YߤZ"#8V=Ou|bU7>xu=Jc LRZQ#LOSu6\V )" P -o+(s|Mi->\Agl^fp.2F5,ҊbO a6h}%VIYdic]B#1_y$\뎚%hl߯FMA&``/ *L:Ů_ =pAo֪T_/_/x1?Wݿ Z8x0>qdE$-˞;AcM.,[>nsDgobR-VMWn#yB̺HN:4.]FXrueet8z(` ?peh|s/<KUk>dn--(,X2 Z ԁW`!zD5X*uAX)zc l!*$͉E7rwsćX@QYGvuele@ g.s]rlsX .{ޘ+OkT74JFU5ܸ>%1I(KmN,2wIdpcF>'o{՟oNBG 2-%!B4]͡@s$1XP5h u=s!  @; '{x`(A(! V ?ki)S>Zɝ:uo$a\pk֘3]i9xIމ mk_az{&& ЌZOqU0pq __$'e3Ҽw)WvM/':LJAμp:?q[2Jef*t $$Ot.·~xˡYX#ݎ:A{{8>8쏣8mQ('{jb J΢m?9n=VnL~WIUA2V%P|,-[Nk[9:v Bn]hZ:bSRXI/l[yb-cB*%b-H֡Nߣ:5L459Oc-=9+/k%ԛ8d?s|]|U@zGcl7w%f.* <|8T/X@iyn@< KMH' :rn=W̮~Q7  ?S?m{_t+muB, \D{p;mav Pk8T(&W"r/ tA`J8{۩t1 ڿ{_*et:N%gZ-YҬ5SYg26hn+Ȱk"RHs UDnZUtN;z&)sYtJʴٔ #耯FgpȭD>b2;w?5WEQfx˳WC~E,m ϩ8'b݀@lj#80- N\ZrpWB<{g@&3Nc;/}1gi*U8f4a[[籖K,N۷8UF_G{Ё?΢1lr46NvM܋usy#hM|[ ˁv=up/Rpo>x?3z3~8Vav X ɟvo=+Ԣl-N*Ty5=lt:*PZ6 wG>'7FH ö0\ݑ4:|.Q* HW9;z],Uǘ,ǘis@^b @"Zލ%r jb;n%E4Saa-?;4re s*$"kp:+wyf24,M,c%BV#Ad38=סI@,di6PD^\"72 VƧNn@Vset(F\ C,R?AVP5+ .d.޳wOTnoS p﷿+G2"Qg<>xӗ{~}O X7R ?gp> .J#Mn ,1(#yְDmTi Y7Yu$K)-<A\D8,sg)*U;zO ϑ8k)h FY hv=;Ҥ9t mLR8Jpd;O728)[_R\ lYW+REFx@ ~-*4HNcw,E'Zކ=pPa=]q4Pmg7B.ftRE# zkT@z+|nLxеp@J2$Z%EsA$ҷMMpd+ 6!Q؂')g%Cg-X]UWs6>1GpYDjW'i o`𖂜C4̸ʭޡ!+ +WF4.;_p}Lv~50;o*#܃ k\(XxL i TDK\=!\_Մ)gLѰ8\\4'BGVuwk 'QýY3Bl?xйvr.\8~~;ca`P>3H+b~,Fuwm,: y2vJ˳y. (Cx ~T#, DWxpC$F*;yH,Oj_򘸎f7u#L N.<jzp2v MQB/춸:8|#> >Icb I ,-ôwJ\_n$vOyscW1I+4]+d2*+giŷ{ag&aiU o8Keb 7i1b:G0g{PbQXY a&.@4^wu|ބ'6UlK65_DE!5*le[,9O'ih2V|& f5Nn~lN> 6q :T}Z]]CR+mQK@ϛ`y-+|PJSTv5&tww!_;x$8DO@'su?0uk̋%[vJүL=elme'A9!F 5NnrbjtLXSW3e )N7lcl4~nvkhJZn)3XM0E'*7B@u Ο l39) R(ƚ/QAJ>d!ZF= o\L9RLʘ.K!Cdy”WH*/`8v:sfl'@KU2Ul.]F;ihKLb#OykJ֭,Xz jF5yp,|h&U.,>@ܬ܊u)gzsgɻOG@߻h0n;P#A6{Jz]*Qg;Xwq'%'hLx;@:Ϡ7nLm@,sTXN=bdb;p1~WO?ُˉ(S,Z&vtDHwu,Hu9 QNof՞YԔ $\Ⱥ7f0DWHLe cmRKuMDtCUU'XXG`l3 ᖮE-Ӕ.l%z&  ڭUk "EC8yy!Y%}P2e1qBr/Ⱦ b}Kaj)"̮D:Y -GwX ']}V#94Ih<D,%Z#d ,qZ%y1' T,Q+Œё" -pV~W|̄g{ȅ×~wCw'iWx]XrZRN~%eQ P_w A]m(q7qa@ ܅SEG<&;£w,LoP^;1ooWr틓Jܴt/.M36ŭ 5Nhm$\/f&Z8X%84< 7BkaޔؚcTf,e=:/IR#;ȸ)?=`TYV6j<NJIxryr5tNx oZ2vA /l Cb_~% T'O>DB=E5m!R*ub+O-glQgk64q],O^j jrIJ%'v3V20*Us瑇$; )լup,zֲ DP:ty=+dԻ7\Fv/Ƥ8=|o}d| N/DV z h&@=\ 7Wkb$ɖWVȳ2tYL7Bk%0x m.$&kW!xvQ&>i)ёS_{ýOQGB~4@)e'F}Hx4)4Qͽcsg?˷+r\39^J^~${].5+ZO`\}4IgA}M$ oN&cμp*a"BQb.gDT v1ʙ֠!s[ӉsFr^E5;<% _aBkΘJ[-)'sNkHV2hW弖7j 4Ȥ }=8OZsdB X*,ZuCE]N2|](9h:v;n5ddkm􏖵)CqQZ %H_XMTuٯʨ "Ze4 !]$wW>y$~yIr}i^AٰBJ=$l6KH *kD]*2c9e4эX|QêFyMM崹 7K ɌVHS= S' qzivL!t{ oB <3MhhX 0H[sh8jQ ad^]CvNG[p9gR1Ee;D86BS]nZIιbR,a gU-z: aP*ְZmrߟ9-;z´M?pP'H4J: X:~D{XeZ/c)9Ξj2hX+h?iy )1g3ހ ;]@mɘԓ#Kq~1\GC a A?PR;o؏~ p8S7T8l'/Z3x~xɻvέ@E~_" dcb8LB19|';U;`NDrb`a%[C>d2l~4`dL7x::s7VusG+dvjbb9JMX6Hd2:;Hy"+lWW7"#/v-^TI&"pjR.:%Dv]^y:FTKmL%,ZUz5zzOI>%Zn T,&DKu󔍉4>~3o|9|G ۺnVB,77Vjf X9$0?ι^==Dt!Xk9@0O^¿ ͤD--]hw%2`PLJeqUH#FRuBCQ/]RV1ՙ=P-eLRNCLkl/ oqXhOr˔.j4~.$U&8D2L4J[˻l/ v`5B)XtPQ#\-Z&ќa6OOG`+Gsmm$?a89r:\ GGóO>y)Je+e8hY< Ip=8ȓMSs]-CЋ[r5Z4Z;$ƈ>rxm 5O bOb(˗Gv勌 X˿kSPĎ}8F67صph `S#&.2}ifo?s>ѿvE|ۓi)T,q{if&3Xc9^>fg.p9 (VZmmHzJ bp5 6mek\ؼ"UNNu,Qcv6s5@urLMukr8yVPE.<wϮ(]V;Ja-J~xzh!OKN6"pnpT<>xGEh XiB5egmp_4Gbڮ$Z%&y|b|Yָ7Zmq@+h{U"G_B6_z7}@ m5ǤIs(xN>l''N_{ EJ咰뤳l\>e'VW 6>ȉgSjϼt{عu#%D;aw9n dL`t Z 3c dIǎWN4}7q1z^eS2\iBtX yX Z<_D 2Dndset++ZBT iʅx.&@/ `P՛"TKS9*!&,OwcYB=ֱLD].GwVav)CKl't }Qg>"bRN\ O>sͮpWCId"l,0ۭfhevv/rn>]b(Mc1R,X +rĴedq!f;{ɱ ˫[I> 7ٔufq :`_eʀmEYcndzv95 A/͂'ؕ6ƃ1ÞR4-hQ%AJ 0(:V <7wFl-E-j4X`rğ)EMn>|=-絭LU=ۿ5rff.^2 gr,-cp<'!,s3qy91vuc oR M+`:l[L~gql9I􊠙X5 nevRCM@"tEҲĩ|u VhŻ04 NKoo77 ]73^,H4[9w/i1eB'n+z@]"\ŨgzpA m9Ä1A I?kYv6/D̩>_Uj%tr1@*49JHhf9C}ݪ$[56wrZcWƳԟ|gy/ILA'_8":Gtn.TvN.~cz__ #kUGtr7cfܺ9?Ƿߚ$vb{w}f0 q^2Jnkc=IL,S)Z/9 : c]]Vp7@ad45.szՄ?8ZZOGg ƫDͥ rGeT Gy@6R8:Q1!ei΃H7 kSPoo/,*Ν4Ҳ(6ɳx x=9)'DXl=7&n~*“>-j6-BG'V7,i8D)1G2.B5ڇ|RL{} l&j9FlƐJϥSSZ!Pd=[VWZF陁D*V#Z܏xS|wLb"yOĂ$G\ۮoX+>[߮wdv ;U*$VX*QU ֗ٳgICi%W#KX9xWn? +i†Z3"-?| ĴKVs?8X ¡?nL>9aݴ4HJbai{R¡A:9w˔Ts9uAŘH=Eq9~S:En`bK܂RvG,YVﹰ4=edYz.^X ̢TJr~\4+ }}x<&vj'7>HٴֱZ8Pl},8>}W)`aHk(nm TkJC;m$_x $?ɥ,[s" 0p/.tE2n[_Q-R WP98?.&J]Ws RۄQ"-4sqndEQy*&IS+."{tX;?ʜQ@RV澡,V NHφB55#c[Ǥf2"S*ZmOՙ}5^[ [KM+xm\}~ _]PGTTz*Y.X2Cp=&m#!9sM*)C3Z:l= Wl_O` +&|ފ4@V j{3TϪl|~_7Vn l_u=ē7k*䀀24PIr zh3't]mX,uËm&U;.-<nݧQ-z5,ex} 8H1m#N7 !8tH\=4p~Oy4#X9L*ԣn]^{ikIJ-ȕ4Ҵ>Yu|gϷpz7{8&;d³Qܬo`0:uo8r;&#JT3xZA;{q{8|wHܸCɧk熙|^pEr_:u$qH6_DF5&bq ; 0~2Qʸz}F s][;sFG/.A'@IDAT^7sxSow=6uNLsRFS d |>p㗹 -=Q7Z{y#ꮩe0TPZ2pH:H0E_ >uI. U ^Bu{cFcrFUZ뤝lo9¶I5Bن$)x&Zu`ߧ'qH9ܦ[*eGmb{_">Zc <:LV&$I7KX\+:u."̴eь5f*q Ԟp*IE2WBRyJc5G"zcGek@ln=t[!i kvΓ jλ Uֿ@2tTJH190̨AJ)\hO-?\d'f_KEH[8n< (#c;Up0Y-NZ;,X ̯eΜh&\otϧr2& |wUJr:K-u# c 8͘s̳ߛm챱8Ru9k[1koGۙ a#;ٚƐ!iNG(<4UF,q 0 "`LLMûs5sG]Y1Nl\V2l^u[{+Ua Dzx/IAF & cxfh3ǁ,1rK.Sp\2ޢ eE5d*TP3zc8!KC OcbgrOdqoث奛tj: xa-L4wE,>~;3wcL3Y)Opv4,ɳ$`p@2TgB^Y )~S+Ù[9(CʓM옉o\lOH6E2q{5NK\Qgƶ쌈#T3vM3E愴*8 #`as+r4s1<q܊'zޅ<ĉbAwN^42)0LK |JzTոᖛsaɏM/} .tU W +ȯ/@Ra*G9|hq|88䔎 1em2M+Mê1؁5c$Wz`8u(EmRBeg\ t9RL]IoIאָ6"Ip:2^a*CU";vl$t_V%q=8vU6K@i.#)cm<ڬq 5j[(@ ?$P5wv_'+kTWRY 㛋BEi=r63XϷ[$.,+ ^WSdq^Y1L=?:´'\&eXl?2V1׳24 h$xsIpsg.8. m&ibG1I4R犚6,^iy~kC/;=߇k4L+w5#(,ksfz:znp7x#o^vW? B?kѮiؖK.N`*"b,E{Y:;; c=[~3yAHq.dgDI3h]xD~uA2"+1mr ` NUJbkƠpKduw SካըpL%I+Ak8ê I]nCm8qXoذ!x!&9NB h&0HBY 5Yšn'vNo(Jennr`y'HᦿjlO>BEWn 0GImnX|\Sp>CPgyejБw=؄!ɉ3p?qqVY I觮_բ,fZVdPHt=Dɪ| nC; d<.-]ܾKpt#N_u)ۿt(t0Y±ç9)ֹJDYHcZo191^LUǩ ^ *=_癅4|Ъ52C-=Y99xoq1Fk|v_ 15%v[Ub /$PIhgҽ,nL}Y ֆxt/[맴6/TW6==g=p)Lջ#b\=@g.7le\  `K\5V "YI s 5VW| e@[9x: yV(<6v-<ؗL7)BTy\Gvty}"[(`22qckPF"Y}p~` 0]k/e+ðCWRȬE)TⓏ\%5XĭK Ssy% 1T:hx WhcGGA'oMx}Ԫj,`Q :FqBW WPX-g(t_Ra/H-Vyc5H#{6o`S(xVl1<<CmE6qV _wmY(!ܺL7eA:h5Z2Ȳ"t˚!VtU7SRvý=īl#MU F$ ''PX+m(YF,u :bEcS89tCv`%djbxЇ(4q+È^] J!,dѡXמYG$$Po7/3Al)n#ͽ구p9MYoA B,.}Obԥ.4 RF5K~#h,AJ=4՚{f r!BC>"oNQ>3P:O=\,rQlgAͰ UAOas>Lv^S‡ǫcTfObLy(/xJM{3Z*^ǷЃUq8?krL(s~2D|}k0#j|jq)Y 0BdPS`@]mUSCNmf,}&c"ބ%ԙ0cNbsd'i7YëՃK0uJ32Nx~ |xkxVrx "=K23ccn xkd]IWX,aęNzgf,:bQ&ql faDYZF ܙf}xH`lXT4c0FPY *;,v0O̙--/3@!.ƛ[ZQ(ܜ 32F ҭWWWu` >N a"g8ϳ` BfN(~ybO#6|@UU%x: f ;ȲPsy,mSUr| cɏ|}Wq).Jevo gN2ǸaYJdkrY,(W`|e ɜ"=}!~wlJvd@ 6K! #IF8>3hO|=&lDPN3@tktQ5AA O\Iu 94f0B,6[d:hgfw>] R7.9^*vnْ/úPƒ &VAF~Imc~V>6]"5KՌ>~cG朷0Oe8qDOI9Ib0-YMv>mUg'pwd6W4ɒ[7X$7zbl"y6nA`6fY$ (*,D'j2ʕC%Q^QSn1 ԥۈl?ҕh3bJ;?e0jR MNW申,uBXYY %0e@d0x5 Q~l_/&qcj+9"^ޔy7vy\ւWuM6U -?C,ImhzxQ\Z}A4ǻm10]QYvĂ +0ORZ@ (q.6VU<4z mѹuo1뱁MvF-Vߤud,`YÞ˶өJ%C'>+&}wm[lBT4X!㙦#L6eTVzӛi"=A 3G핂&pr)qP|!ص8 "36=Gι9҅`p]u aغԆD;pb|$\6㍎`4Ȅmo.b}0Z;&;/ڀQ 't5 A z&  Kmt.-29rZ0B`J3IB-n2-!x`e8PY-6Lf(9@WM4i \jL[[d0iC.E>#V0c\HD9Ncm~(!Fj<05㙖E݉X LFi*3!VHn`O}'š#܃Qy 5aY8S2*sShZT-)f"+B&ba,K[4$>xӯoinŇJ֫=G=|ϼxnkTu huh /Ğ%qby=dditOڂ_ȿ-r.I/vP '*{浖k^(ae?O3hg\t0-4Y>Aģ =fazz҅hǁL pp V?cLY4ab©YqFf mBSy &sHJń2pkLx1q.-m [㵥;M#g%K ';VpZiSPr\ ]EPȵzЀ%fBG>\ ,l '2 sOzFPL  0^3ԩP;gChƦ򚻔*<^ 4)ˮs/Li$EYxmDo ;zôrll P5A ?l}դ-z-IrJɹKJ/{ ewHq=}e9i_'_|vTI_t>vBn{LVhjBZ45:s6|36Z‘5SRVUjEMEk"Wl5"'Rغ@Ě`dyx9dF5zZIW2&@Y=(}}SӼRY&#P||jYjL0-RHH<"SCCk:>M4@'6f ᆲRK:4q14B=FqsR>ji y-=~ܶh4-AV<5zK7mtsd(!4j&,*-i^ĄB8Cj8oTh;e7HTYseӘIWF0L$3AUy9<͍f:&Ҍ+=e0bPG@E`z[-}cg8!8b՝tuDYEg|{=UI9c@_hJg` Q8E^<tj k"]µҼ9i<,"@-R-EP{$@"v,:ExUU47t{KsY(yo_݇Cv=b9 & Ku5>xL;ߣRo]_m}z*25s΄FK*֧>[uAor?X^'8O"<^E+ٶ֬)RE#예n+)V%m] c55 .{?thcxyNBBkx&HYFhJ|K =8 *j0]}zk,$c..TLp/_&zyE1zCb<8sb&Z&Xc+1mxZES 78a?L0h]=fҝA8|yN14x#*[s c#:arifރ7J0ҖuRv|D'p^4 KwatRXAPs Ev `N'\kwذ쐐L T }~q/|Aa]sQL7dBp5]aFϒ4B~#q.J_E^ӆIbv+gd QgM-/.-Tbx/"\9B n7~-}06 mnCXf/oq eӦp1byHT@TvTrX^Z੥pi+ f`JS*"u1ape(vm'=7I!O5Z>![vA]BQ8DKö$:w R*JwaAp.j(N7PsTlCIP= ]!϶BJx 744 rWްǬD|6(ʹh` P #/!M &47CNWo1.\!E_Q_5{5fK_Ɗ{Xu#ٹ G$Bt" ņx E ICDX5N> zkBCCa6l8ğ_Pӡ0887B6.a2x i%a6"U;1I&>.H07\bCa7Fty!gb ,ƴ2Aj%m P[<^7QD/I[uM\ I&̈6Ip8ɽL!0ǃ~V_j#0'Py`)Ay,I;T*9)YJU_zfv/z`^N$w\_} (bpR/+6s;~Ny-D%/(aWVT۰ 1> 1k$pWajNFKD;ijPSW޿; ^SSslhKW3m'|=_KڒG_4Y/"gC4fe )8:AtY-[‡>Cm7\sc͛ Wlyۡ0SlI>FCSU1Bhm_f;I-6 ^ʁqS ̬>@c`SwFEe1rtjx |r#l.0Rg.ഖކ{Pو0ǚbP`3Ȭ@ZƊpIΟH)J73:Apn|x%l[)ҋUg< ?&*C>Hx7NA'9XTp[E>Ec NdL!C/L"r9A]t&Nз*71e"XNYXo>"}#k1X=11r'1M%dyZRBN!c}:m۔ sId3PPu]5]wY8/Z9C!M9z $a$5umgmٽak]H ~%lCx=w]eޯq  `FLB [ JBZ c i͌InOFX]LԸg^i3va?^7ǔp0^%<:2C = b|5//x)WY$Ir)\8 R6F+[m=桋54Mr<{&Kv@˦м=n4T5{x;tp8я>j%pA{u}ek2H.>|Hwu8FZX5@7oư gEOB*, y؞gۉ~h?{GK#TMfԙqm7>SH%#۱J&' ii܋x$K N(EsG1, .`A,3ώdp<20 P^\ExK0GE#ЩgWrWSbT RV0;Xd6EqiUuFΆkbd@3bbr] rG[ͻKQhJ5ûJqx#KJ(eQ\}b$/ƣx6x CX%~Z $DWx#fj\t4[u%}Xx-:GOK71XPZp͵3>~vC#tC;cp*"Wn ȡD8yAG=i gOf#>՘\yoϹk<jC#¹x9Co%29s`ˀP#㘏qZ`Ϻ8c z,ةl|8Pc g& )$y衴$V;*[9ʤpw{4t/>_Ztؐ8h癴+P%U;6-y Db,lh?9ÀXo 4 bꁭ>>F@`~=qP^3PFFEBSkӃ.|Lcz7ޮP[PMFk?ۏG mPz/֒ ΛFpg.ankDL F3"b"T_+vOj3[ dK/̴UJJ`kJ(h'#)Ou-ōP@CD^ t)csa1#E* tNDWaXXVa~sWԂe2WE*^ PYHi0\*z4Ǵw,L'f:H|)~^qQ^4YPֳcAbwjյjHisǛٮ/K26LLl v# - P ܌-3 T|K#~~5p.WB/'"Ǘ u!6́⪰n'ܫa Uަ C5F1ix-f -)XZcbO1(18ѝ(Iޮ]fTHJr7B-&gv 3Jtp4@$تމ*G"fsmK,|zN+fX!C,\*l`6 ^sX8pz0 Ҥ6b孜4vFgyR+KچgрTe'$mo9V\ -}sg?D'FCF7CcU%kB%A 5)7YR>th^ j#6{.rŀfl6 ?X#}C/.kz[\]?k->/%N:d) xh؉oX,([W]#o|࣏“`o Sin }4LMlH5eYa|(SV*FD]w"nuӀ:uᘢ2F>W5\'$ v͕%lݾORl#d)I|^pqc RԉPGg.$jXjx3"#S!BפYy[KP dm`طsO]L=FYtL_((ذCb2 N&y JfS!#S\ܱ1݊"I  =^w<X" L+L2QWu uZڮ y( '_mM0S̪wΘKe BcqHeTh'h^ǟ0P wPn~|.%x%cJb:Kem>_v 1EZ0ZƝ#)JkTlku8 g_b|7w[g2<knZ\`0(lqM/0p4ФI_6AU$O&G"#` 3(@ M&Y82ѕɐF8ĭ^h.*l[#Mmc}W tzP8{k_ _PBiSͅDJskalDy'hœB `N ifA ,6ӇGl&j?p.9 d *D !$[d|{Xl#8GF{& 8^m*]b0 I#9Jr1 ׬fT=Ũ-QOO$VWuZ> SJ8MAKwϣfNڝ56* Z5zal D_*8ZCm6o( ZQ\#_[&Ahq,猇KXd0$g6USPH} € [7S4jھ9yLg0 ~FZ0:ra_e$s` !1 a̤åHhfK, JZ3XD\TŕB)6p`1 g5kY vtcBO^,iW;b<8C`gP Qׅ榶;O/ ];X(&\eQIޝ|>.Ḗ?^"OޅgZQIS/`1˾n@Ku (o2?9N+`0:L(rp1qu_71 &F/&_1-rѱ$&L?1^0YiT1:n/7R ӆ LV=ͭ_ȯS©c# \-nxVIr?B?Ê s+je0S v66n`!)x#/BQ2ܚBwߕ0.&1HSn gڶfem AvȀO2שz /CŸlXGl&.E jǟZ"0,;a/Q(|`^)OvKp9P19^!G2@|NO_ZР4h19Yr/.O}k^0gĘЋvQv!hCH.r I首wkLRcgnτw^/Hyi8}?3@JȎ?cx]`ܤ2Gzd|aMuBVO2{SF. Zx9*66)Ǿ衁F;U׿c?yWo{ O=5O~'n \7m91j&6T1F 6q(|O\O<(]ix޳jk*3~b֬tϮBp 0Ίʝ%OEa) 9ϵ m(eH4^bDeLÛq'wE*,|mlg~>))!plme];S#dO *zIا>nip ;#<./.f+<ί}) ׿-ѻ=~s$:"/̡1r=6gtӽG;g$z|ӅipVx͈۳J| _x(x*%;l] /F OU___Rk-3Y؁UiR/ѬtkyTdR9zsMՔe;#? ~#4e.m$pF5d,VZ.Ѿ2w5sg߉<)p~ ι\  P Lhڸ1}S[ _ \W9N'ȏE0g̎y}Vl]qSX9p=HfV'`lTL|LOif̡45,6͠'a=Xn[\>Fueg!-|Yi{  #2| ;Q1yyaRAdU#.31}߆'C!M4W%J)=_wCc'2ol oPv %.fQTbq㳈ǫzzޕc[ܶ& !ixs\6~g>ey/zY5wEpT<@8I,w=܎yHG908O=;խ8ZzSJEh@1l슩|3DP[GǡU Fؠ"&&N' O?s?8Wy<*J22Nt<0@AN &%@xg2mhk' a Qt)__ >|3\ B0I!l%2Q1hoK<م]Lvln^U؝z*]`ki y8>lV N8(tVꨮb1e,ᕾ鎻gfCQqF 8 } ]o9rkÿUW_6 k[K3yX'~ġCP819l-DAKQdۭ`\ vqhhȹbp[ :J2r񬳇8݇/ W~0*pF56"3=SKl6558= ,s0Sǘ{xPa2ȑqeSS-U,"$j*`D|$(.bX:!.-k4|f(7N_)?$ dJ踯ڦǾBv5 `a#) E͋}B,rO#]±>Ef`{ )-fqtA{6>HhogTr'd, Q%X1~1jT5.xX0.wl5fF9h\vӖ M^Z[ISXk=oE&;?_o,w{C$P޾9v3T31z^+f[^٦*I x?Rn W^poO>q0{ܼs_hlV818"C6 ~܋2ΒA"L;}OO{d zx,@zV%?CsN/VR sм岰&=27R\a-<ĺ 0<=}YEpmvήo8ue=`Dz؃y.$8dh*?ƽ\A}Ͻ׼^s}Ƴ}53KXdS|C63{~(y)t<&Z۷ʸPI/\jHSEj/_zNj`ShwvwSh+ÇC3 6.Je(hM#̓BtWaԣ {c PH[R&ufgyFް:3y>Gз@@btcB XжXC|{zx<`a+G7MCu"V0Ƴ'KV:a9:@%ѱ<ၹX\FŇӢaG֣} ljoH8p:W"cˤRRSEw焆8;wlIP6S؊\"[٢.DާTH,o?w%e|翛h0I3fDy}S+6gN}4'<FB.B5۱e;fYq}7A ?t3p8<v6s&sIEtE6FgA0:)4W'̏#ě+'ñ;PW9\wlɋX0#-{ V0(2 ?J| ScπȩSgG\Yx9̽ΆSdqoo,D B)aS PfFda?laqe+/Tv7cL1p1 gB 8f[ <8GӅUS}vAe͍5v}ARzkYC,kBiz9.+%$ 5lġ=z"sCOgbEZJ_o{_Ài!> |!X݈e :Rq+Ǭs_ S$>LI8,܆ )j1I2T6OZ cZD $FD""]w8di!׌; ;U ,%VmUk)yhc_#Dtg,xͧwfEϬ39k U.ف8v4Lpv81UTAKc-;Wȶk;B}FK=;h\y.qC9vgu"0hxGv7\r8W̸Zd1 ÷aqOp:E_ިUGћ֣f^影vAyԋ/1~,b!HSF[@XE;P' #رQ{ ֱ%&69sl8y4ği؋AHzÜ7 _!*)RVqFnWŇIAHVb)%{vΡ$Bd1ɸLj/hq1M`v4Ygnp]o oVgÇ>KPn%/Լ1wk_WoЕqq]߄3rdU1;o-:+|G?~VixVIO6mX-SUI| 5^v1pB! *O{qX1 C ?Gc8{SzFiώf*`G YR!`ۧhhK^3uY#dN;it弋Z3Q͔8:=\h|i):#qa24H9JA^%Sgΰ|`q qhڦҾgMܒǨ,$[Ao`L=_ ^+_Chz_ۧC5 w_wB.9:LMR*2LhGz=z^up)IxhsLXA撪33u|rӉK""db1MxO̤az*8p wWC<~?L'5^bBZr4tץᮻv ABQ]{hj:(!GkOJvQ)#S~A|\$]Ѯ0[W;Ut>P.JxN>0AexS?/UMB.`Z-B70ji Gs澐qw(~ܴ1T׏\DLk7f?ӉgnBۃ~Dx_[$q$a;+?8M%su5")fɩq^P<{Dbxo߾\_8oD7goڳ;[qgz̬$;NX{}Gg'X-qftQi8&^?ԘU(Hix7 v5\؃&/5XB]\n"|m.[^y$LҏQOCEB704r RizSV] LTp 5{s93GC-e~ք}BBϳ-;ƿӉcm,3שׁȺ; 6&%"Ӄ\ͧ81!A "S} wx #rW4N =ϳ^ُMd zjA4DUpAgv*4lO}Η}LX5DU7qg|[C1ZL?(Ν9 ;iYaWA(? GcoIAgA$S^kW}mШÆ 14xnbc 7&]7$3;v=ƃ]G I1U51-y S2J[Tx? fAQ.H3  X h?詁 Q4CmK ӡyBͰFk`E]#iz+a5Pcv:n $+ww~OUhꌙy`9/~"qM ;.WZ[ǻCѦ"#$c).9l`rƊ9w. nkWMBٖH%U q#'"i udh{/L[K\Bج#jlYٌ9F$F+Vyn)jɖ͜eC$Qnm?=H螺!Uwb|0ˆ\pn\Qw YBccy䌎Z n|SD1DR]&" 0?}ؿOӌ AL0WmŇB1nW;'K;MǮ<|1#ІI=,>I_l~ha~tMڽ|# Aj-7}J\\(ȗ.:'_ `*`VI"MVnɣv!;|4n9ZlKa+8lu%1K+ ڤ9D*K'v,}}Oі*;"[҉b|6KseT)iw+yNIw?~=[+\9$.dk -\g %< { 5?9 e}IR'$j CmߪSqN #C$GϮtCcxkuL<ؠNfCnR Yدq:\@ ٦tQJjި|\!Gxu(RF_Bs+53Fٿ?3[i(g'#*? 7z93 .ֻ7vn/uH(#ߍ6T2b D7FYj hLy$ 9!Lw.r?RЖNQ-)K.t{6>wT)00יcx"]@h/u7}N>HȪv'@N$]ٔ\U:5Se*^\:Q)WRDG.MJ$'1j4kЊu/Kőb8Z``wඇ7ߔW'N2Ν3.i:OScݸK>싓D[WΕQH|yՉdn8P-@~jϷl93qZ#9|H UXБ\ ++X-U,捍`H(pEƷafbЪ)aƨ@aCBF ޺u[pB[RP-SQ5rƥ NbU->ckj;Ż&BG{wv?jO=] Q۩ fe;big-l.wފpRtƜ>Ksbj?v]w'rw*L3d hzyT`SgNh)q;Y1`ScǬ\m9~"Z;!2 XAN* åt\7'\IuŮ5_h\6NhYu26%)F'^*U : C*LG^6B>]'t*&"0V:~&AWb6k6Yr򃖄+S!K7@&KWy(|Y=ҡڹ+أu#F7nQ]'xlVNgE}x++4;BR(BH2EUG3&#>ǚp䊬 ^$u"XX SL2+/;.r{*9zV=OU+ǮTX&$s2uE%ڌ\Su݌.+d}AA톦Qa7pZE<dk&@V;vl/v-3:(Ц^Qr'B4ҞxzK}w){?fb(Fg# 3'^[/,wDߝ=H;(x:9!0avbp99a]gg8.*r 9}6Rr*R{vK]xꕶsR#(O v Ge2LrWiQoJ Wf#Eۧ\sʏWΘ1&JR!t2o\mxJUBB~o~GythÎBs8:Ips$bmJ6PKKօf"79MqgJք<r8H>v*%o_ڐ~ږ+:HɽΓ{ʺ7ګW9Ee3hH*d?mlS^KFkݖl902<3~ZٱV'j 0h[%0)7&ȦV0C0};vTNRRɳgٮݛ%yvҒv8l_`Ͻ7^+XҰB/aŅ,ࣇ nU!k9,|*^X-W1.yB,IRk48[l;,ol2ۺ^+ O\٬ue~pt#qu '埞6a u("QX%1!ҵF٤ Y ыH~?)9C}hkK?(U݃Ҽ'~1{p>8 [\?1nuuq_1yRP͇iW_}{j൘m)Dܗ$ .)o5N8aݣE;-bR۰~2A#d@)[p'W@wc(e[3-"jYsN.Wy:^X܎}&3rKg\cU1d`$p٪?( \enV8FE#rO#9.>i`LC\bVml6uԫ]cd `>石w5Zd>^JMs%R2eYM)+teQbз0wl횵v߽K/Vz._*ZSXX w}[#WyR:7J4V~EzPPW1{lvoo KIDAT4OO9k5R1nRåvP\K%]`ugnz͔1֦+ig#^*L̺Kچ5[,Geoi%Y6I^0Ѳ^.vwKjǙz}}O>QYv똩"Դ -,9nFTqp/Ȥ ev*ٳ9!6H(.C< }90]ʕ+瞗 O5v ,KW)isηo.B+5[F*&f 8FL(篟~nϺU^>۶& ޻ҋC}=#`r0N,|=Hu" cӮ΃F0ݲ R D8|Q,;J 8ʊ P+:(}֜bȱ;*ò^Fa0zT :9W8]#:'^xyۺe}oKo[صk:*xÈad ҊV[޲[n}{O>&!z ̟VmyF/G]&^ ђ1,G1A [> lJܨ{RQeW,w6q}c$i 8>h?-.SʁT2Ӌ'؜1Fǜ/v5v[e'sQimC}g[o{e31vl"&Z8BGĂ@U^n6doJ$6WJGXl)W4I9$hl<|\Xpaq5:&zՀ,^ɑͅf1E}]l?+N Ll &c:`1sKwyX'?)hRx[E+@n`YKQ0^hXHdpdb0CŚ{ƚ,._7t-W5z[fΚi_p͝7_Z۶uS#"ja8kv%:Gx?YYЙW XvmSbiҷJe})MR*H̔I~9KOEmPrO++zs3%;(Р SQlDM1QRK(Aٲ`3jw<N,O&G ^ " X$eO@@p„I!O*ӏ4]Ī E49 I@?'BWo# RYy}\DF1uvJ2s2nu֔ޅe"Y@FMq cI!=p;Odr^!e:'WRe?m3< oV/2IQFETz%V2Q)7e}_;I=c:デ@EEN yM.1i^BcC *lkp"@/+ZdП1b%T)ĥ'˽ tE{{U: #_T87#d0bi~و%vyF;oLf9ɩe ףMQ|z7+Q /Gz?{p=$.–Κ7eF$GedK#I7߰/ ?}{Y!6}noV(^ ^6VQ54A37gөE\dYcĩtǽr/3 V&+PzSeD+G0_Lva Ǡwx;߼c1/t,V$*|yDp1 0%560qvT|~Ȟ>إˤ]_^a[rr$QO2ŵ,J7MeIf9q)LYYE8 b]q7lxZfۿZ5F|2= )0Jz ,ǂU-Azl 8ܰv^ F P.]ѣ{\_1q 9\%فv<^>lmVLR/HL6 tBC:P#NP3RX ?@A˜9%&ɚ@ߏd)|J)5Fyہ|7\Vm;R]a:$ Ebɋk.[m ,eivk\UtYi0MHzؤ7 B` Rxr2GLh= }'m$;ߓ)t"w-t? /xxפELL+,MRhsPoH.Jlݚ1M@-K-HDmbNINI XLKm#%:7(AgeewT0΢M(z8u0L1`F0IOHjsw|vԵxL'e_q&j_;no,E,"着gPs#Wh7J^8];]0#0W=j/1&s0pؤ-XpI.re5jT/c}zq,_VL?,e6oBsV]~_i7\I-<'Cs#տHbŷ̸E9q(RIeQ'X곻\/w=|@`ĝ;Hhyc4a+NAHT˓] wv|7,zH$.='LͶK8tm~ 8&='0.q`}ݐ"y6 s$ihj(/*(P}cE@NR=κH3 2?"<;|qY\p)gZbnhMqËmg)>ϣ˖O^|_5*@ 18Ln6v ^!ɷA_sgz?\Y.mtzD 8<4Vj<|à7F.*}Wz8K#y (ٍF"ekѯU:JK|%)ȋR2Y6l'kR$It1jEЁ/qTcݡ)k󫤭؅'p]2Rj5k32aa IJ:NSFg)<20hD3ܪ|p8Մ[,Cka{w;ޓ&6|pd)gBɶ]S^yyǗ4fJGGWudqwd9(RND)UEZ&:(ݎh8T)J/yN9l#PAy}c׸L {do`٥Ɉ1+1Yh[mΝN]ںisz3@t>H%*(Q{ W^]%̏E͛R4xT+Ϝi.r1Fx: d RH&܉ rtP0!v;wk_Svg蟰NX?ǫ3c,:cY\N+g-'g9:l/:Ɯ::^7\#;bKv(HSޫh'tyv2 '@} ?l2ptMPx$hk L+N`rQr?ڔ!b@G#DB) 0+.>ð.DbL.d ץ0K ϛd0DQB9 h0U}gV2f8';T r:xv=%Z ! MGYsIS PKҲ(3T¸gik.?(bLUSL+V\n~X/l>@f[oCaQ4^T(5] ?& {? 0]|v{Ȣ}Blמ-wO}pŇZn2߲T(E*f8)վ€:6q @v7#V+5T 716}[dVai)<)ܒa xfA{Җ ~@Uh[\(Yw*_!|"f GVntʚV2 k0cBe܋x3qOTw~ɢMf ~#yݏN<#f> ѷm"[-u ݳ1νm%sEWFܕ|;;R1KwJp@\)uYDfˣ=Ldb`ٔ2Շ,Wx\@V(qVwD=S*όw52I?2Pw(TYπz?gYq1@1!рlF`rX)6A@D D"5.̋%.i@`i!cz*jZ8&{ԯTj T8Y곗Z#K!v?F@PMcRjE܏^"N5~nb~aS)@F:30nѦsgi{Tôu6T#Gt~ # }yh{2z%dBo 2~В ~R 0T)8ݠ%LxIn$9PL*)$?0L0a|RS_w*04\^LcwlUD (' DG I.   ĈA"N`&f~B@f=uJ~ĂJ)8A1/#> nps̴70TG&7(Īp3:Ik"]    H Hp[`@ѧ{D8c`q!u6 C[NT~( $y\qsL렒imbHBqYɌK&3ω$ÕgbfɃzƥ1_k5Oquq:'Xy`ˈ:V3[\c{U?=ԫUO.N X{$-a%0M>'[@VMWP &b0 A"z(( FAM<}#Nn@@@Q`xj  Ęh M I(NTO50ͽpR3xq /oXNHA5_fzhg)s T&tN) ܱt=K-J`*M@]!#uڅ;cFT$u!4gR &q1H t;MY:bˆd၁N1aĴ5D>%5b}(Qj}@lq[[UTa}dn~|:3dƱd O Q?[}5;V4IENDB`vision-0.19.1/test/assets/labeled_image.png000066400000000000000000000016001466211133600206320ustar00rootroot00000000000000PNG  IHDR?F5=GIDATxr Eman3^ܗLڴ]Ǎ^`dYZ.pRWO([eU\: `3uk-|D^qAb  :pЬ=hhj|Dt/j.YyӃG#>яC<B;o ;;bjD9qt'bX7yvBA25Zί]Ab.:8  sx4I>pSL3Ak?) ĿbB7M}4JMm|Xb!_+<&X(:L?{0WhvB5C&\ ;?3- z,tҺE|Qqi>:Ū8֠'`P;AOkkDCeŜ6M> wM>>3 }}A!Ч[|788/`8gdJ 0^&dȘ fcin0d3XDȐ1Ȉ9#S`D'!c>M 05#{f@ #CFk¤AqPjU[僭Z_Ǖ?N[Rl*&"0u=:`)L? 0AҊ"9wED !rL R pp`R΀A%ԨvL q`j\SP@@@@@@- B!м9{OLXpIENDB`vision-0.19.1/test/assets/masks.tiff000066400000000000000000012603441466211133600173770ustar00rootroot00000000000000II*(1 ]{"shape": [7, 224, 224]}tifffile.py ]](] ]](L^ M]](^ ]](_ ]](>` ]](vision-0.19.1/test/assets/toosmall_png/000077500000000000000000000000001466211133600200735ustar00rootroot00000000000000vision-0.19.1/test/assets/toosmall_png/heapbof.png000066400000000000000000000000071466211133600222020ustar00rootroot00000000000000PNGvision-0.19.1/test/assets/videos/000077500000000000000000000000001466211133600166665ustar00rootroot00000000000000vision-0.19.1/test/assets/videos/R6llTwEh07w.mp4000066400000000000000000032264671466211133600213010ustar00rootroot00000000000000 ftypisomisomiso2avc1mp41free mdatEH, #x264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=72 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00+eWҾ2 sƣhTr<7$dP.X4ylJ0UAThP0@ޢ33\LHA)vuNmS#UGLPP;b˧iӄ@(/0B/sKt9P!  ܯ.償n]u(?[ͧ@% ^, _FI صdܝf㗟 Ŭy#~!AZKdŊvgP-^>#:fPhCGcו R`93nX$5 a`k/[dGlU ~+s)H'h&e $] @y~43{-M&V{z=x DEn5s ÁZ噍mf󳞷l(`"d0]3BٶJKUb ^|N}jW@幇v@Zz0~Mn inz*Gy^j tC&,αiY̆9/>F NpzI>r}4:=el3쐒t1y%qr}* #择o(4?ypT;_*vQ))Z3M/ک.[Y^KhWFkHZ[)Q$xɍfv/TJw|uVrG jy-Т}JZjjELY|*!j"ΧG/L`)8CVM K)=SpwEV,@t,ޔ!8q~6tA0؀' Qo5neZ6.R4 WAE':I C(t̕3MvxയYv-dhZJyPwf%)Fi;Ev[eഒW#%h *'yŦQy{Y|as荫;<_Uɦ4pat^wuz=F)c5u!a]]l W1mt^;>2ܡ҈7a"ifX3 WÌM*Ӝ:QL: 8D?n>FA7(;l>n"c;-4{[~$p;\jm [pl LU+/ 6&{xaL| #*TU*!ߩf`c ))Q֝Q)~b]:9J\"QL2HkIx/׾M4X_J( J/z #U{xɪ=Tm15!DCޠ}zvJ`r.gy^in!9ЙTBXۍzd"H:M28 c252`F*1bN@|p vX)͢NZo4L&Lqw}bpmDLҊ~Kh>R(`^13rN=Z8m}W /qk+ D#]4|q4wJRDsȎqcY5E\+[",6wLҟH6N&8C*=y(kKfz"=꺹ڟBG4 s*"d‰hp S-.x2a{޾Xf60SRΣ6g_Ěs[1mZt= 6u̥EFkއ@S~بk{I_*x )S_3#4ZU%rQ)ĉEdJ#]WwMygCT 42_C,S#i+ł[0/Q^%6۾U5ZivgD>;䬗)1e ?$Bgk(+|_)8<Ɔb*.܋ * QV:4$W -Ƞ^@Yܯ|(C ~D{ս84d(ʥ}PײXg7LpZ!AY_8j3؃+RD11SP(15`4)c-09 oFYKA,lI38$<%sC'\Zqa_XRkDr6+wri.$@)J~ VxR8I#(H ';^cca9 0LW[іjk7!%K 39e;U]Q|g֋fH+Žx+lq%bcK5J]W/b"k`4XXHjT[WXB}␀}`xLM77e UBFtaM=j-(lj@"Sf)G ]Pxe9eS& T~HƔ$͊C.!lkۭ$jۼyޱ&01n;P xwl*_tBi/UN+xT:3DmԌx7R#]\$10c<.d(⑺*q!b'4[@Fw:G#-FOE^,fRGK%EHoe8ue_9 'b GԌG9FEN}e(c~J~=R) Qȅ>=T,X9&F u1Ty%KE)J.~_q/ z;tQ-ug.Ɔ%lϏ:5+eU"y-^D[s\&riGJ@)X^M̝pP֞ +2ئ>VܿPGG忑#p7^b8)"dvr kM,"GKHef  Om*&9 SΉd "fԯYrA|(v0Na4+ 4TxGZ+ꋡ?aOӷ@{:YX'Lבm[]=% 0(9UȩX*M =SOJU +Rb$1D6Al{X10uFoE&'k}2 ChQ&FAL2.KB@@. ooW Lu}WCl;TQ,hz\>^_7*2mi e?ȞݡN4~9C5d-(ϚY^!>GM88EzUSQ6h3Fuu>|"brBA:nX69E[Z1k#.`8u噤NqzwB eЌ,} rDs"{6N},-` {_g~@n[nɳ'<'wT2KRWe3Q >&` ,6 7pk*SM{nWE԰mnv;EnaCmlP~⫃8 էɹM a O`:@R6?rkjḐRAn3;X҅ eR1eSD#ZBS s>^Y*di)M \X*xC[d ) o5+DGg㪞5僮XM[S.; !oZ/ぜ&2bW28:FhB,vQKhzs#]?Fov(4LQv. w&ۃϳ [d5 .wD7ٞܥM^@ )-U}*8_:AggM%*/.dq~ Y01`c5.d{q2`2̰Q3ȓKp[+ X_}DD! aO@#-rsVpqͰ-'֕} h Oڎ6ݥ͕{k\(d2bXi!iCCDR[SOdlR[_fr[r`;8AxޢN#O޹96؊yI3U,1=Gm'}g+L=Y#әro jgkǒ1`c ^-Aǒ)d\\&~LZ;Jڿ{KG ibHcTy’>sv `}}Ϯ;Fy;@ZطL0Hx#$:43ۃDNRysF7#ECx[1) /KutHN0+#Bhqat< ,ҽYpt Q2$ݯK=r}IGU$Y̧z.yi 4b'0P/jCPL]Vs'ļ}"V =Sv\1KsI%H % ޸NQ%?М=Ѯt:DO8#{;RWuF}ͲscY P01[ŏ!,nxkYFHE{RL?P#l(aHchyB$}Z4 QmSK5k ln%)a$ffW hl'WN?O^@16ۨͦlfFr OJ6,I? Q)3̬: ,fE,npIUlmS`~)#W⡔`Ll[fY*&E%S=-h]ӄ7Y?8^8˹ 7+KeU>:]ajXVR?m]:y3A'oToڟwJ 1wZ9Dpd?&^۳py$]xїi_ڱ.{ǘA ev ٧/Tl04SJmB5yu.1NZ"9ԎR7[Aujbw/2תtg1{r"WյV Q{;`z0s3F{IB73prQK%;YoכZ|k6G4#%Iѐ:GoX4MrZ9HDUgb#>K$g'Ȳ62}iRX{D5>ć]՝ tq .D7/td,c)D7(P45/Ęm?s܀96!6fz-43ȽOm!d=tZrJ%fxZkKua ٤rM~+ͮQ+w> ypig<.=ʱN]5X%No:hfڈ3(-TދՄ6¼VYkNd6bt&#+ʙM)q8BRIhe%2~Oݛ ]pu .aaB0x3mCHB۠\+4U،ΪDr5h0pϕ?wF⸉,#t9חU^YbeߌdvfuZb܎rWfy64]ن] @rmdtND+e~މ5䪘Yl;abt Ql60Qqɔ{6JTFiם2n?)uHD2R5dPE3984i Fu7$@ ,ߊCF%<`lP= .YU)OeDt.o!nj7[\qU_85 (%^G9݌QXtuwf6_=Wҫ5b*$Ŷ6L1sWM~@xW;=2؍K[HZ]}$ "aAUWsc f> JyU!mZS Z7>GN_q=`M:R~yʾ2$c¶ՄSIޞDS6/ Z;:oFLHi,a|AʏՄ,GtL}b162|}Ļ(&ߐJ&H=S%>xqpۚI.cBi.smbslMk$mr&["ХFBAJx~d} [Sթ-;WɈQ|]jP d2SI*㘧yzz[P0 ^LJq Ra| y%>~r%C&bWEɯ+O=_F\Pѷn#6*X*GlYbJ}RʉZ'3CjE$Gz w/oG~vϕwm6ȁ%HfPD\B+& $8w^]S;?8:c `b.jD)&neá>MMDhN6 fW SיX-e2]gqmSۥ0_KNæFV>P*Dt7\=9ATBc U pFE {`jVWtc 9< ,M9 )Wrai=QE 9ulWIDbmƥʿC25qb'8ld*SCn F1B=:Z h4EfZa_vj!h|%HԵxQe߽-%ɣ%v.~yj, ,kM5"{2cUj>;}Ny:|,vեxfʎogv5PB2QO1EdWniҜy"eȸVIz"ݮ߽lsN *Ǝúavm$T(i 'u&d liNBbQd_sH=Vo(Rk/C39zO@'RB.zAHA.?J:3#"VPaM3W䦋<-H*9 Us?s;0.j8u&9Ui٠;V`}?$1W[AМ/ .=7c"kʺhRaXbG߉eݤH:`iE@sv:果4Ө]VEAvЁTdmƀ+`8Ppah/" Cc&2`1:Oo@E>dv,p ܌0Su^XA83^.Ծx';pSz{eMnjG!'I>M_u7XTM5>gUXt=U O?:Gg6$MCHCn3"&oC$2:x{knҚaa+" ~3V|(azmuKbYн zѹsUqO CL· hM'3NА\yI4~mvAlkռ".Lz$۹o Ԑ%}ao=īWtӹ. lNțx]j 3sPMhڊuurYc`ݮ`Е;6_! 0 cA<iz!chagC%Y%^LVVC^`CdpVO6R=E4@e@I.Cv2j|?uGpK}R:DʞcNޏPHky,ӧ`g{_ aL( s&c*w#ݬJ{P't4gAdU&8j=np+]0hвw.s='&tڤ,3xN<$e&{xۂ"`yPui=Ў>)2KI3fb-d͡K(0Ge0N2MT ſr(=l4aD'gvkDb{s,ʉ bOS%eğK$ojuJ %а1\_ b!+ZHVK$&~ݵ9ɏTL<Ԙ0u$h#Z{LNڗl Tຎ kSamHLht*Szw"M2:q5T,wѮG~-4KƂng*}TQ՞:\XrCÑ*T8!OJ"9Mv;J/Z6biQ{D2ǨN|A"lD[;_ N7MM2i4\܌Y܊8']ckg孮d(MUk~Eȷ&L΄.gȱ: j /Kox|np@k)%mp*+XR,?$Z5X ;:} _Z)Z*`5l݅4{g«r4 mr5?_e9a(h` ibфO`mgr힕'\2_m8hsKe%2 AN|m'c z?= _u6d{GD^gk|~ X$.g -3hе/Ai#--v?YI ب\XyFohD]I:u|-,z@trӓ ƛpQWx^)T(Nji#\ji+KUw8>=tEGJiMU\%h}t9ܻu/ s [`Q+-A&r} ͆U/ϐxڬ.tFUu{)na);bPIΟ3T"phֱu9*i+WsZUh؅uV[缙Fbk+hTUX*xa"[klihْ.ٟXUTr3 ޜa=+ C%qbK!K99.6ׂ=qpl#j$=` ^&GB^:>K=\k3lmι Ee@@Rꇃ(ɼ"M0vX" ^i3^aN a8c@ܢAv}gb{_UBIo{ⴕ,} Y낔>@YWLY4VPJ6ߍ@$i ynW1%sjsK4+^=󊒍sϡԦ#s _H#c̒>÷]n;e{h;ӃbuP9@@g!ӊ51OJ/r* Nj8q=' Qg\&Ortؘ[| }ѬPE+R .R{ {-{8[Be==l\@o8c?ߵc j~Y0b 6Fy .s̾Sx"6t_4ʹ5 8_چ6cBj3ލC2sEk3ݚٮ,OU*ˊ!h7DizzHg.,Abد< ]'UHL^0MǝN,qŚ .j EGTWm(R>ľ+4Ӏ$rcWI7 ٛ }}<+%r/)&pwhEuf4y<#Ӕ;!5Yeܾ8){|I\ }Ɋו6zJ" ,=aW{|(kWᓽLLNj;}bާ4f-cRflxxf^09L0x!Da~a+W|^e͇;\ <.b2[y"xз+1't# b` (kP+[f&!]2E=Jsm1Ю SB2QEY对V&+4:,5 4Co7nS wnG#5u5$y=WE \{t^L جzuBKBF`YQwb$ IS|I~ysYx#22Қ<8 Vh_Ȱ2:1wUh&%ͼKV@sïmwLdy>f( j BG3.w = C.*K,a o`.AP˅_w\NDHTQ{fA-x jmOpTtpe]W'~L`-K!8[KfQl3J:&0+xGq rN˒iWgfғکRV@4Gcq>*.;C^X4Ъr@[ƒll⹓/u :ɰJ5swa棐r5 jIQȉQIjFmb^:9T x 0e?eFhy6l(0#{<i 53e8*@~< 2YLC l32] ll>_+#dl7*hDխ uzKo+Vo{nJ'@jGҠގ-ړ!o[d<mUgo4|(ơEx,0so18tT1w?r";`8^q(MdLahGp!],t {K+`w1 {!P-Vt gpB$Ҷ!}9Zw6iQb#GOz)T4 #:^Nҳ_v eB2_aDCf6Ws\=qRDHk{$~ڠDu}dIAϓ#$4$z+j7t`=4+łi>gF|%libfaac 1.28GhAyY9v*`tB_hq#cxBe&/ ֽ d5⥗a<xf#v1[J 9U< R'|5(3@FcU-h=s}'I ٲ0&a{LuA,tDϝ5=Spǩ n> \+=%pim8=CSE~u t\~hϑX\$CoMzoO2K9|Iw(ul\7y&j/8EǙR2$a.bP:pvf/a6Q}buN^EOSE- Z;^eVfDK$U֢Lo-0 c0SG?8lЪЅZ4OjFxlIND3mZV1ÿ'T<oE%d8/Y"h$SZl*VY<gxծx1"e0%~άAzÔ"=#t{$EqespK/a>rØ(PQ?_{cToBP":qu{9q@)U\g P2Щ:2^a a)5L& 皽k UOpCЎ{[ᨮdT'(,#aMP8i%Q1mGEܞ]!<őD`yIoCuRmh'\v6q66!^ =0+t]dܗ3WVK}x}=UX yo +@[7 5aA=t[k7ev_LSjV 9="^<:a8|U~-u%6Pzo % 쏑nT)J%|h{}3=1fngvu!-N7JK ^r)c|ͱo#0Kh7&]ͷ02'[C+jcUHLZ˹- qL?@ItF38d>uX7T&IiՓODʬ šqS禿Ѹ Dd`Gm phN`٤NGŔI`A2:e8DٽVk}9𜾯c?b[rj c%Ua[贯6VD~kϠJPeqq&$0ͳ&2oɂjY+DokYk׷,c/)RRLqU'LV?[fUL+2"i'dR8*S7~W@g:mbAe̚QGI2۴|濿'pkƵIfz#C~"G|jwil[~Clak2:}R|i8r'rgyP5L6 pJ2ӫ')dбmU**fdܑm6@%z3Ƿ_ðcF^y|~8 n GȪ 0!ކp6՛Z:N`5Ζ7&Q[qktOS#^`L02wgk`/g2r'A;fUt"4u& jQO{+͚ ^RjQLJm܁vCKH&__ɹeꚻ:LB~nhKc$b:L-v_95P ހv8%FіX==Pn˘CVr]̇wS= CE*]wہzU=r1w|oP<]x1GT} Xt6}(c$tO+6iuOGU(7eU.+/2n286ic5n w.km&wҸr6Zpu#vȳ l%c> Aƒ{簦d`?GP> аetkLL|#eƫy ݵG{߉5ƈpsIx,gk/ q֌_&6Kb u/_:c T WY 8X-瀡U@ͳX;ǿAf&+v֑v'ADCpos(YDoz-RvG$[1{(:OLBfJtA7'pSGy}H ߥT1H0]q^k4rW1&ŶFV9G᝼xFcENrfKXj S/ixw/viO]fꞰpK!0>S _IbPAumyҘQ#tFu4edO^AC'] TEKxi 27V=l'KEìJG!M|JF9hEJs6eL)PD8{/ bN475ꏄw݃"`%J+vRf?#zbZQ;m ն31蝀Ք΁b tV7T蚎׆ h.:в%xiԹOy} SzIH 7N$j룯.XYB@ 3ˆG&qnO% H a+]aߢ?%ĚH>:8$7C9"Anߊ\zz_mՕb'Js1y;9?[&?r{=`Vh8՝Ea8,2EmrU~fbB/}V9v αF㼏q塼Zީcd ^Kp`u!wY8WVBsv3[$2&M2h2OJsx1o+oa(@ȋ!vY[EOiɍ>ݰ&jWP-Ox!ǦEu\12T6Rʬz>:zE8D&#=Ĉ8E lxjM+W%mx!]v{٭a9K//h y+Č-bk]w~AkbZ٘ؤ8_;GtNy;H+H!lvej$]qc[Ayv֤1hJ3(>d >$-yY.I;Vz)"YQjSιKUg pM?~JU̟mܪĨ{X } iw&xY|LNc<䅣 ~wBڅ}41-?m\[r,ݎ } qH:N_XFQMpXhB6tr' Ss#|}0?,_I>Į @-͇)?;U$?StrZrߧoA$&hT2I5wW{T؁Z1c9D9j]*w(cD#oG\GmsO9(ЕnUջʮ]LJFW;؁dWQ/)+wz5ܴ< vzw.K{l7OY~Tzr<Iivet$\ãAdI&S'bYE3́NqYKP,[X03n!t)Jʖx6Ck{Vj;ܜPi޻'^&'uegѭ59bCEWR;MA'zdF_6f H:;$H9b>xhC W--#kj#`{~hDd|3ȁM~o -/%W#.S95h;TN堵qc4 rO6zJ78R"Ś0g41R2TN5I#C1eǀZ0iǤ9"V̄"1OB"l_ԮffAe29Bn\5 m@हoӞ~VW~&/}3%yfJOȊpk<Ҟ/ ''KmS»WdD uǟJq)1c5Q ݝZ |pk*i9pFMqctc3YɆxafdB_-b*mGr L/o<16|DKw}WeU5 !VѝA>hѿ#! w$*qL9}@rفSDK)i ,'ӭ2{ PRo9i)pXszAZrtW Q}4vB~]OHi`ۇOz:Dyr[v,D/6lBO7 O.'GNOXM7%A TphU٧nnCFd'u{06R|LkCA?$IL"!Y份 4i'k``8 l뜌P:h3MI`.,5Q27@"  )ܗ#t6KKY8dXuQQ0/I`+V=yV@\nf=ʮ_|2E?a0MoS"A\2O rF\Z@B׹x @$JZLW,.,ƨ$W]V3<>XP2El 4s7ϝ0:@^ mp-HƔJnPGߕ̮'tP D-p O5}f]9NV+]>ZJ$- 3UV%{孯L+ُ}y"\=F =CQaѬn o_;ySʜF" Zƹ"@S vx]FYu :O GwB;K^"lP/)*Ai].aeYZMO'~ beL'{pnK!߼g}>^'ZUA+-RWy!l>G)j5gk!R7@#׿qJ:|G.Xq= KOf? $Ȇ#uer-n)W.Kd8f›QL.Ga<鐪zNt>inQfnɲ.==?wwcYyII8cX[Qu}^_E,2q#aׇ4NreWlɨBSK:^WjmV˨(eGe$^rU.2*+,ϜMIjSFqp8}SUskF4z-bp. d:/7vVnNl>(r'Ӷpc`Ab3P{Kף8:rbz.BnaV>98HZșNgkPj.-v&аĩyd1ٛ͏8rhU&W~Sꃨ Fﱞ_?Md>`>k_я 5U1{y uXQ7:m$$h-V.!gGY-eVhXݎ]n6VYJw2P8 %(O^nD́H9] R% h$bz68ДH-fEHr[{679IBЯ$) ];8U(K\3>2"PVǠLפ=z= cn/UNx׆W, Ttp FY4bqIߵ.P_?c&u^DSۼoA} ۖ'$G1tķ> KmJY'5y[ȉ<ΰFO|i#S@COg3}j M??+B0imp5)P.4(3 j 9[Y Ȱl#I+4tYąl̺,)C4ةi|_6Z(fJ=:~ "HIVFJ7kl7x[`+a%uA̴ :*i\7 `\<ؼzCz[޼#riaR >tQ>_*lwބ VaԠd6H)3T*Qp# ʓcAwvU$XisA[|r^aA'ً.J"d8 (^|'~HUw?odOUdK@׀sCG#T76&-T)eHlhwXvFkJ|9@%U{w‹JZ Bfl z$=t7NGjyp4 O&6pr@L@~IQrpI}!Gk1wS +.6 K1 ;oBY-lVØCUmaIض`JEHev2?Ƽ#㶋\\f?Ţ(9q kB:OnV,8)L#;<lA@I'E }:~0Z=3_m6e \mu"пu| TLJ!!_k[OM4ҹ4t9[#6Mbo;Oq"yf+f2jUCLŁ0շT +*2oƄFՄ|+g|>Ndc⏬H_b~<]['m{w?}6k{%OiB.čqbcF&Z k!2{}| _I;WDKوpok^=.'1G5{!$.^̿k;@zF WTM qEuE;.+""2@ b7r-oR0 Uˁp6p $O{$CEQv $FMBciGԲ#n܍I -1QIv4LёʼNQ#ڃC!Bc3,s8Ktgnׅ^BH0S|QB+a(^]zMQTQc%fƮ CtF; ]ى;*8QYmZF8imT3gG/e n TäijNZw>} M%>N0{3 Ք,)CP$T Bb!L$ 󒵽)*&tqfѫ=> k<^sp泯+NwnGҷƃQ+G!O萰mqajw'K,H?.A\6z{A/f z%&5\n y=#'션M /xǴ<]9v8 y\+Q 0& `XH H"ADFy:ugŭiIOE.û=(t+[ؼA?-)uX1 ߱ i:VMcpNwumtKGgyJVg9n޵L"E'ްlz5h"Znשڊ8AI&SGٴ>Upv6bN]7%֕ނ!iFf y8S3kxޥO{~H 4_;*-TVJ&#^"3趪?a,pOEh8A(dQ.y6<'mu΄~Vwޠ^lf"i`B}:EYhP:QiYi@|Vޔ|(X+ڶ[͵MJ*hr9ؒkhș nvp%kձr3!z(VX%< йv5"4ܽ?v%e \=3W8_ۃjNU9}ʌ[>.F߄Wr< NY<Bb9 CQI 1z/aMu:@/$܎q3/)~-גR֘y'rJP4&Iڏ-Ie,PHUU;?<@:3uK tHz|9&&rypDE;*}wBf%PQY2azh%VBԷv5I=],h>`b2N}-*os+H$ڪ|pcyMؗ!f:bKTЮ-qo(<5[=P&~GÊ#]iy\[,y'J7/ =;U,+ 77= _|ə_H`]/"VG,bt&&]?ԁ*?@߄7arُ^Bl4[>.zB]Yi,&UTٺr":1/ckEnv27$xHb<"۫L2!u)wI?RO X*b<;xtqh:d6|M5UG.75v<#VJ%whk) G5so\cs܉84^_GaƢ;mLh(5XD2Z¤p5l܋YO/3lGFa7?2R!uNmJ2LͿ L { .x(ʮ#!#–=\pg/2Wbh0HOn)h<wҍ bzy槐}ЈêeO{zaH:\ MX "Fc,ڱM"Ԁ)->#A"zn:Mߺ]0opo/>Y˽VwtVlU! ]ѴlGpLP|OE_Uw^đff]lw/ڨ2%ɢQ،ÏCg@(a 'AI CnK,UKD]tVXv(f^)a+ ^p,U3 ؍2ºQP\%!r\ϟcG9^n'Dz 5'h-rHBem:=POl' GYkKk^iRhm[ ܬӷP"^gnҳg67@6(39*{ MG[`43oG"|?KPX:OfzO)/Ћ/ڛ1ȥԿTRZw .dskgP$]3>H[dZM@AЭ2RM+KskEP "}/y\U }lTG8$U$969`D!b,qlۭCQ^.?nE)Ô@`s"dvuhi3z ` J h6w(cvé'J}d#)Upn(+\h2EDŽׅi7eSgDHy%ʨ|%},jɀAO݁ܥ t*kTxU7) ]#$x3Lh~Ggɷmq|J]ɓg!{OR3b WxIJyHzt"SR^@fi}J<ڹdd۽Yg| w8Y< C\(11_I9,ou#>z$#ƠF` o5zO&,fjxl9&Q!㶕Dsǂ]=Uw!BGJյUlqt!E'8q8#t4`J@^{jV;4sGfW9c[ %1ʇgݦoDIs夀=2FUL\Ob|#}}{H|^.,ī|yɖ x\\j՜~׋| 62{i|\yMI%JS ~0i ErhϜbHQ'1ZSl2;Wiw(dhGot1Fݻ@2*/AY6_x-۩W&^XR> iiy7>Uk6MvK.F>Q.KΈAq` >PF~qKYB v̶T =aVj"0YWZ\ေT}Q{xԬzw !~>9 z00!fV(0 `*! E0L$3ߍMkw$EMTTUnWCR;#ޜivyDT|u¥.G&翊?7qB2՗ O}?L*]Jƭ}&߽/a7gP̓;_,}pk=OkMTYf{R3_q$*./;^*5?f?H j_r`ҒB1 Q!>oo@:>ܮv#gO&u3f5FeoVӃcjmS+< z WMF2oHڪ_o| dO"/>:XVM!7P|my׶ZD`GFCGɔˍs]W!~єkik*gdbnQ_-wcm^R&oJE-<39n@ROgoS\QG"' yn YѺ)񮯃{5\zr?^Ui2e& 1o׶pQh:$jhb gbC*zc#TY#mU'G׺)8ɮI#n"{bkvP:D6J6 35#Jw+-T8 OA*;UWoVPAÖS-^6mbhu2  2e9Sӟb{ -ҙ#x!\:~޻u e;w)l!OyKGmɅ)O% x"v}Ią @I^}Hɝ_/zMB]ut-ś᎒ziJҰF;6gh<`AUNhDXl١ۋA*­L$%/'AވTJLo p$y=y^Lǜh ?$fƾ˻GBoVqHCGY][EmuM½g(U0V2`X(b BP*' B0T&$&jU*Iu[J{et55˝[ЛONVgúV9?+7+|`ͧsOr+irzl:1zѾ$tLa?_fC«Uyx[`J;b%89ewI{dÌfi=O5e }3Յ/@9ePUf1U=pzԥTꅐL(uI 7lD2۽`URWQUP2&Jv>Iju+PחppPLDq]lNd}L!gMU}他p`xpž+C63? R-Cur97WfJAӾºQ_={yCH.k FJد,YM3}ģ˓vIW8:a!Rt.]ݘr%e] a! RDºiaK) BvQ!\7L}bسk+}}\$Rv} gF]VaRR)W0Y,*\~k:c&ZQ O_/k ޚGa4xd]\HZh\ʷ:ҽPaE@q]S(`4Wر| YZjvW%WΑ ,YVZ2ٯ @=ѐ12.e~86bVJ;c~JrRxu au; >aqDxƫX ~ PU¸>)H Qm%y݉u"kH tE/~6;"l>~o"^Q8HWˎ^Sz+"ﳍx.-..x3^3!1}NK:s1<х:>m@?R<:a\.jG, u͋a\lO}cFG| g QNdbNf;\۪L+P,EDgˏF;dH`>g ]hh M5n#u02Ħ1g{b%$}BG|"(5"'CcYѡiY[P- s2BkVw;n@gmxFwWQd]?o@ѷw OzCUoʾIǦavڿXz#\\"]01Aa7Ihh7NELd<"&[YB Y@ 5j{c9zR^+\*4|Jq/KxǗBL/[C3YI i>Lj,MSMoCeQNuE[R3#hLA)k=7"),ߝG>X LDtsv1y#Npm'TTՅ?Eu5ZhV-e5ޖ >Km:ҺEt[a]&p]SJ2훉Î&W&"WItϖ;g=d\XaIW 9$~}zh}tk:6RvWiTS!NM ONۉ:ACGj2yWNFh9|U斒Kq-ퟟ&(,p?2O9^(2dえC0bYti-dW$#4:EZsG ta%mCIDܾ&?b33Q<Q޹BTJ=j%KJÉ FcQz49*+1V2'‹@&%&ITʚ`y}vL?3>tQ/jd ןX^~8e~\Bz2~]cA1noĽ,vM%CP>S3Hyޭ42/ܙTIDc< b`2@Σ|K=a-P 1l5g=X  V6vzu7+7zRDT*G9j6-ېN4#ղmD (-E'Cd&'rzXg -JuFucHa@9p |R4Glj{ #L>K9tZ1T5OdŚyEhX՞1y.Tg*f>ju# hz렴 !O̍#"࿷Rga3T[J^'9*2ROc/jo|+F惥ВĘ/'qm BDl.o_R}PZm-kx{~bSa{G2(A&_c׃`;0(;Js7 Cook8oB=J'(Jj8Vk]~;h) H7́o#tC'/_K NfU买2`HzvyM|s!3 ɐu02@ :#)tΏߴXQUN}۬>*s;E׼#\¦9ҚNVHְB/HTSp'H&"!Foodʍ6)v/?g8d2,P|Cyx DqJU+[QjXe؂~ĉӛ۩]g>2ȥY(0 lUuё^ O#3I><,P mPoІjT'/K)aG ?伐7&Ɖ;|j>,2!3@mG,x/h}qפm{ }lyޯ{(Qӊȴ~`&z$uUaM0#L` VO#KF,b<Hdޖ Z|{xawT%tua{q񓳬tŵ/#bN+Mia]vEHqt~D(*oW2^H3Bl㉵#9A82]*"dSKwfycc1ۜNc>{}ItCF$[eaN$Q_;M{f| _ŽFZ35GxnjڭIEĢmq WErkFrmQp73\h1r7A55p:VTOJDJ7[j_*lc(@"'["U+wrߋ/GWU1v(`M{(G!*f`{V+&;J}i*>!Uk7gg4a<`WuE>k(vTO"3]G_==3i\bDtT`iE6_\П{> ӴDOxFlb/ԼmJ[I Ǜ-Ŋγcзm#xP:k F#=fIֹ~+CTO@ژh|vf@ G؂T8;SrQTAM[!ʢ+%hvЏ3?lDrs B]z3&j9ր5::y-:mIbizM˲VIzK#_MmUɴ6;*R - 5NZf+ytP̅'_ 6๦ZjF蘁ٹHj|W08A};zh7²Iof=  oFcZzv+h4s @!uyg34ͳqZ  s~U)Nɐn#M)<f è+&_6 *y(=%6\~kiU UaNGx@okm?LiG5;RVuCՁ$etiWc$)e!j̆U{9;;EII2r( I|[1P$| ÛowzXy$i|J5i1)y23?A}Eb7]B@ٽnVVQd=QkR]f(ѹlk8&Mo*&(V48%bũQQNX )֡aOJ? -c"Au?\ǚan)WߥFzKM"I=<7 DZm Z 72{|ه2MXBwxپ|x'6םkΙY/r1a{Lۗ[뎬GluF<ⴢ%fƸM"I`B)!JsJ$=eqt# V\$& ':^gl*Tru Wƽ]NL;I7 EgOH-TsZ>.2hj $@0W#^Y%un:I x!G~w7RvLgΣS 3~<t^հF&2hhA jrIs1јUƾ@YX56E?,GZ.Bj]OsٻY'5nhvf=G-hD}ibaҝ}E9|:/1Y=0mQf04KZ4 m^Mdh&sBI:afZފ],%HaB9$ɣZM贛3Hwp7xߊc8bnUMЀPΫO=иԊ{徔;,?7, 0=|5j,)KGU!1<k"f9oĝp?axgam/J į#)iM1tp״tTW$k@D:rIbJD.vWٺW :PDk OݖR}@U0CXt-ד9+#_BvԻR5x >ʾ)XcCep]M_\ۼH Y>qOdE;kͨG>(}*{631($wЩ8h^aB{5 s++_oWĦme% d 8#紫<>#蠛G' I/4,&;˿ip.^ 2:8>jd0u(;pkF55b X.٭ D_"kQP0{O/T*z$iFhGD( i?i ѐNvC@ذ^64d 0Xw=.g>Dͫ=ga8؆Y69$-Vc}_il%:^kw%#[Qer _ʀ_RnKqSq?$$,vʣyQ&|̎Z~(.klmX{b!ǃؼVҍ=?9TaI^VЋZz HR<0{}; QpOjZyv>C!:kL @矎wkjef^BsR uF{b_-a%LDh"NΑû4$J-85pe,\g3T!{m3Ix {GjxZ}8% V]=(O;~t],#iaѦ˩\GFPrK/þ!RR )zn2~x++%afo#")sL #_m'kDZ:. jgv8E9)y\57(͙&?7Z ufIX}%\zW@&}B2?xM.+1{3J9!u>yBr> g\9F贗7`5 1i AjiK3'>z JJ-3cC1&%ܓZ WW:3YU+_ͧt̳EU5/#éaj@b̑5vr?܂.`^zai5>F(2s@-5]53tWjsYFitI /aĤ7a6Nu3U(%]'9e ,ti*)HX~}"n'i}__0Z˫a8*%NoF*|KdKo\"V}_+V2xQqа !KwL<0%ӇAV^ߡgK!e-K̮N٨ĴJ +PqqӨ&qZ#1Kв^d{͉>bT3Sڇ?dyyNkBD&벉Kc%F*R*h(:d*^_agϡw^p°Th1Qmn0 bvZ MRkon zUDډcdv633 h*n+€4ɚ%OURMAV&ӜlmC<|T[/Oğ?XcrA WJl`?B[w9/ndj)CkSohQh_obѐ؝t4(5ne]D:LjmV:RًQjWb4WKaiϑ-5S<&p3k5;duц@&Mul[H-T}[A;,Jt?55VB~>_ oY HN?1!uެM[赠rH`6`ˮHh;j9Uk{=Uu|7Fr;D8e_b&GJ`XSAбRJ7RBU^nO"<6sY}s"`ڶ^׬wT”>:O Ba'vuO[k׶D Sh2B416#n=E[<Ԯr˓cĴ bJ#Cfk0xC|Q@fkBt|4yɌCpwN,ł'};_yÙXX"JUXW~)YRBygnGDn9sVEveQ[ɛ6?UXWl2<[F K#V)bpd-y,?ưmB@No\_ @-$x!ͥ]&:1D d¥B@F qwƉs/ݣ xJHi6""-W> yksʁjZ_א_-xxt9f!1@` -8g 5_ߟX"TVqn6p&~GJn AmQ}pK?М?*ƥNA$ˏ3Yx.2l Jd#~YHHCc{|N]` n4'j?qnqLjMBRO#N.1cі}5&8$`7V:0j,-_Hb:㗆96N5n ovuA,KFmIK*(: ז`z(󁢷5T=e%`ۨ2f3ve+-2 e3{2gxx.!%X)#.[;f] .[;O/~*mfe.qSA͇e9e~Zme0itZ YN>`?4R x42Im'f"Y 4on|Z'`ŠBRYhܠ*3&[VUaO4]is ӮlS5HL_Eg[AAEc٣␢8u8nžEjF/h?6JH`w# 8{$uatxX|b|]N :^{5fZɧewن~o!WsXM. Kh]KoQsrMdÍ^ x2W/-/{B:XDD7`yG38ЁdC(n Pl6 R,S(BB.QZhMY_<@k.gLd cEar7 6* }pw5~V3>w6wWSnbH3/<R[~A.њEA6NuX6>&b|hgT?zFQ/RWZtL0U8ݾ1I1&l_FpD8Ao@̳?lFQBf,I0ûd$ӵ"œbdL@Nac +8_OTu8yW3qȷӧ"Ff^ޤˬ BSNIΕ0Q-r`GDÈ?Ѫu کAޙ\dsо&=Q”bP6 Dl'-诐":~cziX_а#9?Բ$g|b(O I wV)JP(B=f֬,SD,joyΠl2RQ0,fJϺsN_S3D.2Qȗǩ*-n0 [Zj?]/OW;a=n%B+Fy %b/bw{+ t_,T\2EDT M4j_\7 ]-i:m$h^R҂Qpθk?00+!xxA\xU_6{!DuUcq]ٝkF@ɬL3ɬ4пo7vaptwza~ =rM]c xye2|cKjL^Òbgs:><#x8U0`X ӥԭ34㋓}w*WPQc﻾Q?X7AdiX#޶!MW樄sAz>OrQ-/pɈtܒcc&9txe腲D`n!Pw%#99Rbu0 jWϴ֚` -U\X5T"#g͟櫶86JQe[ m+ o!lX_z;b=ʡ10I5Qsh"$ zq9Z p*â-TMZd /ߚMPgaz gy,UZk}jX W6Lip^?Pm9첪dz!hso72T)K"gǏ&> +14S1]ם9+ [ЁyYZߧg]iy<GnxL¢(M՚+6bHDJ!/R,6^]#GIi;G w* qA}M(?=/-L,?H~$i/?dݵ Cd% {m&]D0P|)Cd{!԰R8U uS2 :-Z欏mј?=vʶhw mVeJQ6d㚞\/ڬHr ꋞ ~`<?gr#zq`xv瓣F+ܨ_n% ^w w"v=rnWb?b\m`f_ `D bYC.=IʏDܾ3;3>& s㩏|jǤ{gM [CέPE +8_L!g |S8ދ.i.1.P:/fAـ#_a2k?i'D"K*"" p`IaJv~wzoye/iZJ:!:E12zzfb &T^ժ!jC7M͗tp:ۤT!*{eE@)H~ϢN(6}u@H=L<ʒyu6X/SiNۀ'm^x:%^mڔ.Zf(ڟ؄/C_X'T>'d!4i>jnw"u4z0X2Zdn xɈ|! HuDuir= $uKoFd=T޽W>~`Ԝܘd[}41œ::>9ᲫrQF)VLM/|$dC<_xȰG QKF/@>ٷfFgC\{~Rh"@lwehaU7B#D@{iߦ|3P%~r0BATx̀5d(e=}j֒IN4DU@Zx!&W5ҡ`;' H72F2m:<-H6)yA@)]2rerbdp&+ Axa$db*;z c^&v)V̛W_`3^?su3V0^tG5$y$P}w^[ TuKvƣ+5XQd͒ɧbqRVbxdF6Yޯ}lTinRB8b$~ӰH?_MH^:Y`in**z~R3넥E/˅F]؂O!f.-)ҁcY=u#&]8lj3`w/@ұK.8i)f5ͼuEwF)t| >W= ՚m` =xu)biLr4}^c+C Icܥ:@᭭!vX_)$/ Wὓȯ9CM{vV3JI 35e_D++5ܝc jڒfHf%cv6g<.̵T˖~Ut9Xݻ5Byg6%cUJK`r?@,`DO8z'O6~vr4dL\2 ;v} >H`֠rkXz#]?rVgYϼ2|ŭ?!_܅ XTp0ϣL}ΉBeP]rff Zp1P3D-2!/힬jѿ0exMAlƄHH@.T2$ֹXLpG]-{^GDSײz0zlnZtTU Z p>]9G.`Vx7.4>ì\!,hp5N =1:]Jَ%(8|f,@<[“Vr0-/ju[磦] k}2q].8-j_"r%\}%lߥ'z6ϻSum-;:!dsѰ^$}Gɶu9Q6qW)`kFt];9Gnflhǿ)tL:t&lV;\!ݷ"9V ڟ}B܃\⋑cE^\1VTAT1^r*} ʫCKr#ኣWȞH W$ Jw^8@'(U'; >tgzx5[@m 7ֽ#{mz)g+2$¢Vsێ*K(1f'; mڶk+Y{G.+q2uf47SO;Ǧ~]O@s^1&hT@L8A0I&S?ʃBUF05f$gigywd^f[t9sZFeQG 61l\J83'P۪\6^Nōe~Y!B^< (kџG(4(΅"#RԖIޗHw(Symg b t'I8f~sփ7F{sd{{GX8'd&QUQd#7gΏ s\ȳXjQGkW1\T(͵7<.o_ 4`tÜp\.USG|,Vjsl3yT'[Y˽Q۹TmI4x9>rëv:[{`s-\I7\6j^tMFz_^UeV=ޕyP*tB(qt+f#@ ׫29"j_@foFP <>--,,ޏ"iVxV OafM_5P4\+78%wwNicٯ t,j3[p<  aZ^Ì^)ZUO 'qj~^A6pI >ڝHwq۹e"•)٩.FA&H^7bXb/^)&b2NSmݑI6c}3F>,ܯF(dشhnU`YpA`71zZZ6eO CظIy j+4kY #4F! D>Z[q)ՐzCHIXoט)@{e>U$䧎zʛ= c eT1?Ⱦsú=nro [.pkT[!)ZڅM£;+Ղ\ ,4c(|y};k"ކȦ Ppy 9MUلG3gnGTyK|ׯVn0E**K` ~ڨqlՓ\Xϑa] xC''Qt# r[2[3c!p](uK$qqDS^Ds/8"dq]=gdVꍻ. p $bc7(9V VleW>Qj\ P7)$'YQ#!D5g49@9NFBkf,0)fYXТ͈ͅc <,JxZ1n ܚ-4KnkWe)K|r3l@Fö+kM8k+P\WS3*;~x|J˔AO|S$rr`*j F%֒ǁ9nyc+;s{ʵiErzQtIޯhA8_lOjkw%Ge$ AoѽtO*1P==Mhk6qKMR=7d + I,LgZa@Sh6OWS5N,>Teӭ8iWl{*HqAAAAQR৆ .'?IYsLԋN/u'EcٷFx}?n '1ITpj-#ӃpؑU_=*qkN?eUsL0#yDȊ}KdçJ1SFet_aC''}_!1@ֿ-pgZCjٺx];NF/ҶԥUYGnL6=DDH`˟B9'N)!ҀFU'M{ JBӛN~94s5K6&P@$,@>!"AuLAS xft`+>As7z->Y$ꔖ N?eX쎐FY>D.y!d РGL_8j/IeS{O]-41|JU2Kb6R.yPx^/v ʷv\0S 2dҨ0] [tw; H 1`cxsӵy@IePPF/FYad)Jw\t?g״wƒSXP.&ߏec.,Pǁ&G(lFIPe36]3!B /l$F/%&~`?Qȫ`8b"6t15 oB!h`1N*`_C'ڞ)VNc=ari&nGV`#@Y~؝gQ!*v D "C_R "kOFs%|z`h).U}Q`o Bq8>XhOjY&JSHˊJk4^RS"!.(i˓LKkx.I:vIvqQ[5|,<) ;)䓢2NMq8Mw8z5=hor\/%mr뻲>hiLdtUZLH0_:9 u5u1qW :iؾ݂fWJ丐~j\_ɖ:Ϋ- YWj8iԽ @"5AMdT_=C<3e?&GkgQ"',&4 OLf1_S;5Oc*eL%Z.x!@% 2&}ƬLd-GewZD`&ھkwux:[xE2sWoNV;A=j]<_P'2sd{-7Bҿ]6[c{I7lvpE`?P ,Ր. LD bDFK|}q3Rs2z}z~5?Q:<$׷kE3K $j@dҔI mqy^S^vw cqi"3tMULj=BxU0 d"! Du7=I3=sPu1{3 /|B7(sCe)` g拥 6V25]sw 򨁯I8eؾx>5Lb:z_# dW#W=blt;=:7ܒZ@6#EA}9OjEA+5;dF (JMl:uY;kEd  KCZ&SkS،eYȵ~pы: Q{QȘrp!QwL8!զ=B(YYI?||` fy L]HhQ ug` e ]/GR…#tF J !_VC9#>H&}pq&*{ٓ:DFX{˿阳[rV.<4Ѹ%v(u54ܻGDZ~a"\pip!搾hպ̪-&e)R*+>[o/XhW@ˡ~F-FS3qbķmYr@R#?P m[!$OZ7bDiQ$n+9}0h*Vm)ؘVd@!g?6 M1qql++8Ik2*"$d,W׭s@ μӠ/=nl^W9 {aYr[ WYayx6j~_ @7\~kw)J9UARKCQ@SU%N7eQ9]s]@Xn8ΕcIs F= y_ |ת/m>:Wun/r3R гM1T4^,bA@sYԞokkk}*.!D2UGv^꽋8M~t0{pd"?^A%/DϩlCLbYH ݁AG<|"l`tڣ {GCFcK̿sO<{pvrGcgHR2@j@*__a^ܵ{!45bDZOWi(B/х8Dz| {Y*z]f#k,+?ߒR[P]mnmg~0 V@u'(st$*mQH׳N .Mߒ؏A$,M 9 .oN9?L|H'—tR:оZk1=6p}j/gbѾ49 ,* XJTm}O@Wm8Z{\l:S.`S;ON:qEEۖɻj2"I'Oz*o=ASz619H<\zJv7gw)ގQvˍsr˚|{D2 mAPܣ>*կp%67m _J!j8mlB4g䘸nJ4,@$%+!XU"v1lX?ا?k(֏.XZ"Gsyaj]\my8nC 8#5m|\mőE$Ǟky%<4N=_t< y%wZ|OpVڤWI/GxJI䚀 1Ŷ'mQ&E4 @u뭈dۈM4-$Y?HG1Cx+D= Yj(W өۜ#ǯXgH$FРaW77^  YPe GdF<D|^?CﵡQ1  \ad Sz8l ~Ayxɝ0_EhPeff:Q-psv')`&zc+9$P˹!=`H^orމOKk0ppH}Z]eӉm/UR:+ @")RRےS{k?xP(Qm(B wPuYTOp@c!n3X'u+JaY۶xl?9{>>U )aUAH庾ANqFɚz Bc` U-u޴U/i|6m*=HZvi޶ͩzU:梣hp;"8N| ?t7 p ڬ(t VHLa-qO6*LY^wk\%\M 61SgvH,(c 1:?'H61UL"rwD Jo>yԑج^XHt|7:_|pȴ?%)oVf`Qjg[&\ൂ'PHLע0*hL߂t-fn s9D6?Hb 7Tb_ oT.ne # tnX)x#u;]<䊣3YhH {$+\f`\8eR65X z#=E!M-e:ry*`IBjra3*p@=t d3/'k].Z#t.ܘU#So-e$_ U?icy?eֻ G-P'ٴ[{pubC#0}DF@O^lFora bٹbpT+zONQ7z':8g,EPn`XG-#!Wl$q#a6ޔjQP4G>P"mR Qs%@hY>@ 1_Ԋ럸$<[|,!"92^pA었&9ss K+QwݫաͽKWI(޺CiW^B3ЭP<) 6?Rax_pDUs> ۑ㵔f0{܄mb>QE$z7~N0#zNԅ)U?ZhDS]]mfw!&ZpWv)4dy՚)[gG ky#`Y$oRD,pșs!mpAҔiUi-XT0Үvy`췿 dbq5Ԣ AM.~,3&ImRkfu7Ծ3!e$JnlT`".ŨQG}Q[{cTڄDO낚ROI8x{$:Gx`TEʏgOo~X[l.͋;YNÂhʕƺ4!*_c_(-1ƙDյ# ؇1VptfQYYfPB64#թ͙W0֥`)쮱,'/~)=VPņ(d$O&W8y|קtbBjVEkd ҍx}iuzZiwqNbB_GI[:EߘdA.:kiMjI8,pe*8R2 သVq7 buz[9{`:.;@_P%J;:I$N؉e>)y4q@H+7IT16?aP=h[S{C<ߨBޝ)6ƞԒ#aJp$w21c享 cM q*\Y#RLܳwU> Dhza݃kqSv,kUF5@dPQ\b!\!:3!G̋IPf237ޟjnJ$U?_<yL_1|+Ū k~Meask hw&UC2t8t+ٶzqێN}y\۹z/#"m"ZmJn(j#L'PE⎜ͫLqDݶC{yIզ,@W'DcO6mq y;% ./pу/ bkY qp~ƥ^ =Îg%?Vrא:,\jSn}PWC՜j/J{y:ƒ)WE7Y+8vU)vgH*ze^8JWc'/ R3ز)V2LRQ/bqq_ noO>}^rWA~YE/N|rpoW׈(WH #~8ϑJdnK5[-K=w lx>J{\_*Q~.}R'<罫tK UĞ}tCfe2p[>A [)p"| @\:[냢 /\VE]{=);/ ?qj_WǞAdL~} Sʃ-ߏaTId_YɁaV哼Lz ^[s.=gpxDi e[g跸︍[?ʜ'/esڲq4~' }d'` 4+X3@BQK[ +$/C]oZcxR]JxODwu{@/2:"Ђ頳\~&垮'Ls[3vE8 Ȥ,_:DR#qg荶Qd54 ^ɠ'+Ij\4q, UUѕO$.ZrPd1 h4uL*_ጾz*qLyt/e Nk-al 컏ص~1j㏍G&{#Fv7R=ûk-scNlKA++ f0=mnإ0ON)Br]hc˛umN-)5aZY% 7Oߧ>R@3y&nFdA$dڷ1 9LБxw.8\N1$Kw<;:#'iT'Yo+ڷ ~ +m8" af{4`$&#pc@~`Orи`/=G%I)Fa$͉A:(VY)BV bZ@&RM<[Gq99%A-ԝY\߹^*/a~E՝O E/adh/&p@/U#!KgJŀA1؈HRs$ BjqdP9eāWJ#^35 .hyL^_zʾ'+)4a^euZn8.:(4dr59S6M?螼ܟȶ3c(RKYE |l*v_Pd3C2OW>YWznj:2)9N䑮ؐ6?Ct{u,'7߄bjg5oEO;3e~`*Jl%G9)1*]]bP`-kr5Ie%Ș3Tm(-(h)lu#Z/ߗ-d8| <&dw8/G|pGuެip,3;Y9n gɌp:^ P8s9 y)Zwƀ+{w>qz3sD92 \6Qbodͩ&@ Zu+\|PԮvDZ>K)|;`mR/[;_%Oo=LjM!.MX~LH,Mj y=kXʑ't]Ҭ%ef{|B /(>"5!%:|mgH BPL+0Z{lU¾Пm_؄ MBMl8 `Щ=Q~BrB=d1hi qs*@6r2?`/sO?;PR,6v+]N-v{c2jkAOo5hB,eŰy9r}O {n@ES:(ⶮUx.Fy1ͫG#/#,ĜM>$#, P=rgщVqe+N_dO4qw2)~]=@ϊrʹ4x ^%BRgM`ۙ"ŬU']:Yc gQG*wl_PCҿ7׹ Rdv d͛e =$X/M isalvJr=Կ]g~k6IPD13SS MExxBjE*Zb$lo0*?sϞϥ3vf~9= qO+[.fPQY4O!A z3ptVW7#c4ךLBD/9圌D3tuNv5am<_Zz'^r,nW**KWp8>*pp.95.wߔSPݼNtPmՁZEdl+tG9Kpkz<ϼpWdSO`ZgCf"G^\aO5_N{j_RCȮ~? f` `^Q^t*Ҟk,1y˝p@C՗xzfph1r9GnS X0[3Z^+b[fTP+ EBT"?)_lwmf{ICnC}*{pϫ@4/uf/U?dz(L"|_ oUJV,oibS-"oy!lB2M䍱gjUT0,@%0O0웾.9BʍI2NP5t2ybOwsL_ȳ@p%TT "2V5m yd#H &/ez3ӈ d &&8oTОR,* {?"l܃D n:>j[H Ȁ/Ș;5i ²榴:eG:E1( >͞G novKM~}3w@CϺ?[p֛?_Z1UƷ섟~-ĸl2[iY!X9'bytE0;:-K1gyi+wX{әy'?4jF]b_| 4PκcwkJڣ/"rbCD0I:M_Zx2dNG(Zfq?4 2t hHH)*L#6BܹS)ZmY{L/z^A0.%VvP-#c(}Dq1#j')R:( 5%橆j75dPηT]KFq_6, nE7a6LP'¹>VeoВmXw@lB9-lB DLy+BN+9=VX_aJ/2]i $ KѢ?;lp;aTHВ9K;+"z 7TrkhS8~CKTcP3' 0P!R⤒@|GE),~/{bkYoU_7iX`Ra(iwA:Q)$N w)lj~F19HDij~xKk sN8ƽذhFTϖyM_Lhyϱ-`dLcXK&i%,ps @dPמXg0R^"G!VZ{ri3fđoZ_{gƍ&}k†G'w]G+L×-uX\(pBjKIJ(~i'վ_ 㩤m?d3)[IП6 ;)A(ՠ,C0-7 Ms."*P*d:{vzj]Em.?=߻w.I+Wo)%hE=>8~-s]M V >ېacU*̰?]VhU9~'G* V`:nJ 6L-cxu[Pq(mI{~f07k0k꾩)4UP6iՅRO<&0c9!a@.ӎ56fO1JW]JwyؼzP7pO4 P[kx|ߡ0* `X06;aX*B, ~k4yiJfTEGCu=4齞hږn*y~:f{9_o*Ask_m~@UW>_ m> ͱsÜs|9~u_~y` =syy *<6/Ǻ*Z:`mνj۵yyB̓,U4>ajRP4I;"ؚJSQ(AԶn6V*F1nƢ3wFn ƛ8DŽe8ye[ª%f]i/OPPLCTӘ@|b")eec05&Ia-Kw;Ha,6QI绿\NvXUc6EJ~󽧝q7(A{8JQE2%Up&)gڔI=iF `aRGbAjD;yKHf J])(qt DҍlZݐr`{6 $7N"!q(!y_0=ipkIXRbZ3v|¼SGG~v`:ăXSV7R7CE҅rwn~F?LS ^,*E7D;8ɸ b6KJ^ 4~t.[c}u+w\H#SO=q}tf.idwG. wަVx{Ryk:?G.Co/yT g1V 1Jb*Q3))z[bt8o*Ɂʨ>RYJ嫆(zTg G܃KbD9:Bʚr^5 Q^2̊Z iSw7 s_Q"w#jU]»y%H a^@kVQqΤ?HmD dz\](6b^уsx#i~~=N<nu`  DT̋U%_aAmj*1T 0&-[Y7O% ;nla$ƌ"YABTAwr6t h ^bkd.h} cm|Ƃ51VW[23ی=\IMʀqE#P)0]D!42_qk-W.ZRGĿ6*@43gQ<%??.5DPB寫^jj!-ݢTvڣzo6KM^g8{ B;½ TCQ_h2 Fĭ])T2ra<8ŘnvBe0)[u(rK'URp6gGjE}RskP~Dž}AXJ+,Z8o㜘wcOx@cѻ‡rT?768\>fN&MЏx@g᚛èkj64CTIǧVcr>ƹݪE9P\@XIFAa%„΄(#$5kjі%d{CR^؛5)F6nc 9&h`7¨pxJ+~KsP9s4Wg>!y¾jo#IpXdiv )d&l]Q5y` 0*w<&An?Uz" ^#S֜=WL[SIQ^<kf[f%@LKg uߚI3`݅Hr"'ݱQ.t.X+5ӟR^\gղ ]!2t&9-^ M)תYL5 ix,v"o/mDWJ|Rܲ߱yė Ԃ N'T灳o#N~ZuK ڤUI@N9 O.RSYC,)א*D9jI P牎9++$ 6:&k381yg&;A}#lRzv*0G}7k?u/5\2vXǐ6dG  N-3>{Vآ/bZx"fGcɮ[Gxm@X!߹~&$Ue[%E myƶb{CXI 0R 5WB/savp1B̴/Dz8Ȁs!W_<9 }-["٨*ۯ)tq@=2q)S#1$c\O's P1P(=YIUƚ&b .FF ^#sf-ǧ A&(r!8 t#ā0, @P,$ B[rUԈ{"uȾUfwOr]}4~}}y!s$Ӯ/ -+㫳A.eTUE>kp q2 0 l0- 3FbuMnޣvm:; z' s:S-BO.o< 9yOWNz<%þi'8BLL⟾fg%bw_^yj jnNzinj8jK'yK?765Eߛ$N. l˜ǔu,&W -AֿroZ`l4ʉ lby]9lbBHdNJ 4?_WͷN* -J lĶ?I~G_wN% PdXp#CU!PH GOʱz0&b@GWsc\u|qBƿ :}tv` "rD/l,?N~7Z,)G"'XD3n!1|qOS+ uwW]3G!v؈o -ɴGT"e+mq6 ]$1ὠPF a@n `T,4 b_,KUVDbU.| c}?g5\׋UçݻϏm{׫æ*z.Gh:*0J/0Œ-og!8`G暜CLj-Qxuy_|$my,T%j.֡Xez\?pZ G./ˉ]Kop, <[y\<ǐ8 kAI&S/hغ+PIQH=!G,J_:ߋm gP(`zBnMVEoM/GCknDʊ%]]d 1kۘˏސ tj0al§6>U<#9vrTۄ_̩?/Q7"geDd)ӁDg:Bt./^ DyK&"L!9`7FX)wY'y`j'WgَٓI>O`_M)0p ~h!^i09,x0Z3y%;'P=/x=;o-c{ɵ9|xnx$>*lRK|t2ȠIᷲ]WS|CE\D3_^O7iA+i˼%1:\p2M|Q6CF%ۺOeDyz^7-R 3 )ծjm~GF$ҷxhIx%SA ^WUS'hpեk'%&SqY@d"Eq"p#CTKwn\R}MVzg2GBl5{H,z/(M -ȹ<:2}rK5{}8}u ۞Ra]^=:ϑ֒35^C ) $']>qF yRx򜾝2󸸘?bk~",iH7ouȘp$%ÂUֽ7qwKեw8;&(JF! ч.!ɲ'uZ6k&S<|E)4)A !XХ!/OR܇ӡ.V%Tgn'ӌ,xpX`0sM4’ȭSh%9.:ٗIcX޹`֯KKEP^bAx::@܉5#]*mzx<)Bu;6\UZ3L;@@3kbCr;_K&:1ZpZ!)٫BVQ-ȒH8[a3Ijژ'q DiY|9jKD 7Nypgd is${c_Ϙ(C v%_ܥhKZRM*fd#:[t\b!w?ڄdY43d81ɡH+Bxp[ t* &sY(6meFM'dK+(t-kJ^ZE[7qxZq\<)Z\. 2(}wNks:Plog'5$+YwaN~~7' PujK gEI''  $ sWkW@zuN)^lB)2jot9i'' uxw<=1lj행)cm .WI `~M{tn.MA NGto_`6 oA磮MAGG}%!@. p%JBVi=8=V'WXc-8TJ*5ּj I"[l̽r'Eo/6 ڛĭz$ FQwkgv :Wu}lF0Y+?k>"C$ܼ)~Е l! }*;|Մ\WG3[zn4++ Y 4fLx|:mP?.m &Ψ K#.7IZ I>bw$soE"\q/2u-VXu!LqX 1/3S2Ϩw| 0"p,{6T2Kar}%Hɀu ;%H*+=X \l?Wmk]z4D S Eh^,Kd6i]˄]o#WzGnJZ&q3ae ݳ2,/|h-pnzL&*mWzv{<-Qp/犻m2Yݟ]XgQ`;w(s\m^ zL60(]bWѤG\"/Vp<š[|8xGxO3Dށ{ވcCiBU,4K'Swӱ$#݆(z\cƲpO܅̈M:OgCF㦏MI%AŪ b}Yg.Ҿ^ q GkE7,ۙD-݊#Dm*3~[M5x\`%ڻt 7omäzHKvI&miaz4 , @PD p]j]!"9 ]}ǙG?'Kf.~}!ZvhSW_I7/8*>zAa p n5rzBۋ -Pmeab[(̀*Ι#9n_?goVXU-kW#$ՒݷZ? W=a47}|ҧ/8u:v缄_F߂=^ߺq(N:AI&S$d^`u'g=-! D+aꂸ^p*]g".AI)B0ss N-!i5FC ɧ6cbb~XOKxWXuZF!/ydóIZ__eL-,{\s}Adl$5*7KFy᧻u9@wZe3 h/T_ TMgǣ.*;9!o!@i㗐<1['qf5ǟƷhhă$Z_+-lI"SV"VKh#"&!ˇdGe,MzVk }Eo^t(MRp4>ӹb펭r(2 o o7axjG *K1,nzh_N+Lڝ +s Lr~p~ P Nr5ُks+#PpO bTRq /XYSPQ)2QcSb8IaiǍ,gRMDBfJ!/9Y^R&Fj:m;o;51< &@V]$?ؾ[>7J[@"j"t4bW bS!gJU$!Y v8S I \3݊]KTR|_n~Ƞ0net5=ʴqln !|VB0O lXoL5-,:UQQl?.'{G's-|TW$UѬx.a$ڻ1}VV>q*kl08F>\q6qCO 5l@*{.(KgS! dž 6cU>R tӏdF@Zwsp~$X㩵8}{/c&5Mn=ь[0 GH}?;͟ S q{ȯ]I >>){p$-[iC랧^Oi+o ▭F~ñd jX C+kv;g!Wa) Ub(6s,dibKzҴJVKvWgMv!B3pop3zD-69.Y?I[9QkpX6N$,XwV݆$SXͼB _/7=G >X/ .ŞY>DW#J*GB2:7=Kjj)Kݒf]Hg kJ  2;n~!eKS|\M]>%)#b%=W2p#@z n-$sHV@%X~Y6@I"|ϱI徭ds7?נLv.7J(8z  8hm0CeӇ97u˞* 6)xgR_N7zHy ,nðW6OSN(Onch\aSx‚2WxބsNe[k͊Cw75XÌܒ|3b0l m^[6>FtvkmmK,ܞ)d / `sxe<ٿeR<AjTO1=LL9& .04$&x6:2i fW7ܭS G/z Rن(u53CPUobVF覠|9@yHݐWvAVzL&%3(?H_ st ,ϽG>M.uo+'iިId9*g7AL?yfƸ}툙r.vD АJ>vm@ [HGSTsr:LMUsF{3inRBSt?gHJ 3#@ x։e6U}NG kv@إ7¨J@1 =)K@ $%⾘!d;MjK,pSpʑ`K]7.j~ԵC1nJΐ;~Rg ~HH6IQD'3qNO*(>Z*L( `G ^GԀ#Ɣ)z""`2QQ)ర530}T~2ݔݲX-) ynJM}t:&in d؏ S5 qW_SPtwEU) LD+2N[`qa)aE6+ qb#YJ4( ` !BP( BP\.jSwywKLtCʺ:ޑ["߇l4o׏uVSǤQ>䉯# 6W 8qڂ2˘gE_V=ngrD!{XUv)W ϓǓEV$E_0vG8w`Ie */m;/ ؏k^:獫JͿ\^G,} Ё"'DC9~:uz,`a*B+:U\SwrUX;>Ǘahgt|_q{7!B$X3L4{uyۤCv{{B޵MCQpsq9ߞϴHy֒g|TYx[PeQUUvo=B(8VQ`U۝YV$k u[PF/jqϡ~gۏ}lƇWBК?v Ov84ezjfpjK<8@s.njz8ykM Usm6tb|x BɷW"_w oo0P<_ Nd>LR| ҟ65v|_- D4w2IV J{Z^D{SR0դ& zQ. g =_g=& kQәȑ4IzfPƛSxM+̽c>P}B귃~MB#/{axxEqE]ّ3Q,L `]d8ޝm :V>mm[ ZR'Fj箌_iFJix'-P5~ҋ8Mٹ1 "yL-Lz?NPMx#ۛؕI[6|"L)UVK4./VҲ&5EYo&,HAm@G#iHo s&a{jg\ҎGWJ1猺r+ 1\}(q%)lva,'pMӁfqc4}H;'<']LGp|lqQɥ%O{oDcK ~y> P~#=vO=4ѶE)ƐY2!hbU&ysAPτ"fƩy~mPa~:AɜAT#€XJ+FP,$vbUk5 U*qyW7I_7ᶮZgQӂk=/؁]q04T0֛ͽm-Ϸ 'ŀemnus5EEm.GyÑ+Vs ts }'r>?3 K 9 Iaʧzox3oѳHEy̌_x1AŗTA"M  @Onr/s[u'[~k_j.A^~ AI&Sa~`;H`hK<*{;4VF 6:X0w~{Z&tA$@SO3Ry֧wUzb>r>ii5~ހ9";@,9;#z$HG YbElTsTuN!P7*CP蠊YW%U" Y4{:%V} -v{cmM<^.`v z%-*kU\?Q TFJ{BMȾ&6E/h.q94M\ZSő5ѩ`#TzmS$l:k%?ba(@H-=(A4W$-XwG>YEG | s|}mF-k.|ˆVv/eY5&pLL^INT$vA#C?YqpjN]bFYӎ/n*s֐.kbgdWfWIO&Am\y12#VUq.% )ߨ"5Z_|ւM,+xR<{$&[28,21+5%NX.΄UpufF?BNg#-b4΢NV_ UΖpOESU1=~* ѡ0܌IioWPF|kɳO˾C>:#a_0 2c 'E!4N1ǝИf7i=p' x1?1˛ktB]iׂ( @Fz&Pnr9O~+Bu4Z]t`G:p7 /f"K.1maWEIJ|߃6}a}ҎEpfS-E`,GԚE'iRE}R[X(x\9EiejtIJ߲^2!?Lz#'i~ e,}?M0+N4 ?_Gl75uRO32KYYzÕ\_K(1_دjug)mkV)cWAFp.Dׂ:/c"͞4?KѪxf Uo%aնj5vpUֹ2mOǏw5<ׂǣZ{=?7M&o;/EuM@p `ez 2wx7AQS(Bgaʓ|B:O|s'n/&J G[#7'J$ kl6Sv !j' dՏXDZ5lw))jZʇ]%h?]607e ވ It C/*Pʼn<{6h t݀ܯ0!ڤ$ZSOXzm~c}/l-|$fl6oQ49pe -;Ě }2eGvtRnňR~p9QӃM=n(zӞ3T\3"[JE답U|l3s,y>FFj犺<+q wշHwk1ۥa`=fhtz [5CK:D!*-6-]]XˌNfpTzSXP/Y#gA%q$.`j䟗C:dzsÐ!lB)I5}YOC`/ȡunfgyWX2Z@wk8P#z֜Zl!q5xTBY/ghALSdiǝ-g70@&G@B;e2{=HU"vci2)繌gQr cYZK,e kCNv|i;_-Tᕝ.ڿDT4kW{L'h=?7ִ6v/)/lWlOCW99Iǫ,0CiٍZe?Qlߕ{rx~JWssܲDd ґ譓AT9bRցIv`IodW8\ICr%VD8N=m|J"l >V Pɀ͋ Fzg8 T3n*~rF2( c8@U4L̃OdH4m) {9~4{|\Ÿiz|ʇD߿)G>o h\zě'w >}=^on_%wz>àK]hQpw}וA׍ixۨt18M3^[{*&Y91u!I7_JǮ[_U[0 h p>ڞ7_jV8WaԹZav=r98sF v'[~WVәΊ̿վ$ @p<?~Mg^> ", a@.:`X* PkG{J[3:UVt_OYfȍ\ܖ['}ܙ!24n}zo"8KAkğggK{ߘ h7h 8Qڰ z=3!};333+&rr.QgU;${?,û =zK~o;5@ _-DSg47`] !AI&S=֬oIoZqŭ9JԠ&kƈA$'U8V;v'h6A_Q ts 86퐔? lHՀerqie6poSݓcW* юD!h@KT:)b\]L$vnmNBjf *u.pbs(œ62Ƹ K5ie3$ Gv` u&$/2z_8k];tnd;d6班%"H; 8yp!W c;/'1t}J >"vV'Ogנ4+~bY1!.ʬl_ 73^9XUO)dX(ۅxޏ*M[~@(3*ϫn@b:stIP7ek֖w4o7'SW"!;NF%=;ֹꌺ׉V+Dam}DM&w4"]ɻs0X},ѰRD!AeA5P\^FVwR_f, *~oqy e@c0w*{NvD>T>|`LeYTDwc`-J3gBK?VcvvO2?C6ʶS:vQ-/5 +b섺 P N}pn,$at[wcvZ1,x}Nǀo ӎ9Pfݕ1.şB ɶ9vv$( U6>xPT .Y1~bt9,3JLKU_tDO6R>b0r%|eh/\[ KPb ̃N7gqhoTKX/vb/twK8T2mi63Q -NX?  .=-B)lg ʂp~^N"l5j:HHKMƦIv$i>l6̗0G1t:jތBpDtjBxEE0/Rd(e{:f~A]0vgE|:yr 0\]n؈׊Qu_w*ÇE%HK[?;;'_M0d Ր]J_<~^O;i\HνktLE~eޑɃ9Z/ h R[R[ͽzs{oNן| $9# ԟ0gu9#_Sr1C;l1c׆\Gsr3%MZHPEآP~nDS`*܌`-`Wp,Jqڂy!L^^졦х*YnHMgoߒh -9($UEAٙUb \[OHgq;rrF0@bD {1fYPJ4edX;uB&T!ǫ+%9W,8,:t"\+hBA 9p'P/6Wsf]bwoiV\x"&4הQpXI6c\G }[wKD.5 =Vcp̅̕H zcV/܋Z5& |Hg8/w5>3g&mnEA`M//6l\vJM#V He< A]ҚY54ZQ*.3nsՁFYt{2g 'xf;4I\Ff J |JAɍ^+ :ū\, ix޳j**mzFiǖrK16 #[U&@y[+mC$WmDpʾJh:lS7)트VKe?YZZEDs66 a%jGϞ4*msm}SX+DoIIfM3|]CHHrэVYT|* Qmz(X@{Gw{<]n}_G$t*x¦IDjBlGx?N'EEP{ _Ń{C7uDze?Q5}d;G}bq|13n Oۢ"':Q_爪#Qw~Ī铢(O?eQ²7=H,TMۘZV6 kax!Edf 6%w:fwrnpĜ"& ?E18vgp}G1&T-Rf.Ӳ|};S`Y_15ol$, āL4 A@$U B8ʗy*U+[Z(wMh~?_m;HwN/OY_uO??#&9>çJp0'IoJ]40H,a\D5Z=|hS_ûiD^=K{BҬJ 1Ggn˳:7˨|}yկIS*z?0 h][^bVm"U^Qd)t/=)l8U(J}=,( {)5 |:^ X"8h%< #כQ3l%HL Nzխu8c8W8"}6w=ٗZ qZ`g[  PqN.e9&vNtRynϝwֆnWYNߗ8o:̑,z gIYv 0uLH_.@'5<.G]> ,caf7sd<P$C|||a-"N~g9Ue0xq40`LD BP$T TujSUKĩ2GW|W]w"ӬQA>^UIS5^QV6_K궐v68E]<\y~{^#uN=UwiyJ[w^l.Rw~~Mr Gw=}ͳN##}n=E<#@9BP9R?B|s;,OA?I&S<^`%6j<^˔]$}A` 1˾nQe1$#c0!-*hB^$TBg9b%*;N$с"=E\@Adģ] JJXGEZrzN-~}?48_$ךwkȧA&S`Mch-$,tnj9ÁͿdml|;?ōBa>C > hk.o;)w!K%ɔΊ]zJ.PS˚BƵkv}zEeoK|)gkhvm߆ XfVK0qCRr_GZ?dݵһ>~ZT2D8Ȝ7vr9/  DӹpOz84eկzQ$wHaOPax

  • {caption}") def _create_captions(self, num_captions_per_image): return [str(idx) for idx in range(num_captions_per_image)] def test_captions(self): with self.create_dataset() as (dataset, info): _, captions = dataset[0] assert len(captions) == len(info["captions"]) assert all([a == b for a, b in zip(captions, info["captions"])]) class Flickr30kTestCase(Flickr8kTestCase): DATASET_CLASS = datasets.Flickr30k FEATURE_TYPES = (PIL.Image.Image, list) _ANNOTATIONS_FILE = "captions.token" def _image_file_name(self, idx): return f"{idx}.jpg" def _create_annotations_file(self, root, name, images, num_captions_per_image): with open(root / name, "w") as fh: for image, (idx, caption) in itertools.product( images, enumerate(self._create_captions(num_captions_per_image)) ): fh.write(f"{image.name}#{idx}\t{caption}\n") class MNISTTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.MNIST ADDITIONAL_CONFIGS = combinations_grid(train=(True, False)) _MAGIC_DTYPES = { torch.uint8: 8, torch.int8: 9, torch.int16: 11, torch.int32: 12, torch.float32: 13, torch.float64: 14, } _IMAGES_SIZE = (28, 28) _IMAGES_DTYPE = torch.uint8 _LABELS_SIZE = () _LABELS_DTYPE = torch.uint8 def inject_fake_data(self, tmpdir, config): raw_dir = pathlib.Path(tmpdir) / self.DATASET_CLASS.__name__ / "raw" os.makedirs(raw_dir, exist_ok=True) num_images = self._num_images(config) self._create_binary_file( raw_dir, self._images_file(config), (num_images, *self._IMAGES_SIZE), self._IMAGES_DTYPE ) self._create_binary_file( raw_dir, self._labels_file(config), (num_images, *self._LABELS_SIZE), self._LABELS_DTYPE ) return num_images def _num_images(self, config): return 2 if config["train"] else 1 def _images_file(self, config): return f"{self._prefix(config)}-images-idx3-ubyte" def _labels_file(self, config): return f"{self._prefix(config)}-labels-idx1-ubyte" def _prefix(self, config): return "train" if config["train"] else "t10k" def _create_binary_file(self, root, filename, size, dtype): with open(pathlib.Path(root) / filename, "wb") as fh: for meta in (self._magic(dtype, len(size)), *size): fh.write(self._encode(meta)) # If ever an MNIST variant is added that uses floating point data, this should be adapted. data = torch.randint(0, torch.iinfo(dtype).max + 1, size, dtype=dtype) fh.write(data.numpy().tobytes()) def _magic(self, dtype, dims): return self._MAGIC_DTYPES[dtype] * 256 + dims def _encode(self, v): return torch.tensor(v, dtype=torch.int32).numpy().tobytes()[::-1] class FashionMNISTTestCase(MNISTTestCase): DATASET_CLASS = datasets.FashionMNIST class KMNISTTestCase(MNISTTestCase): DATASET_CLASS = datasets.KMNIST class EMNISTTestCase(MNISTTestCase): DATASET_CLASS = datasets.EMNIST DEFAULT_CONFIG = dict(split="byclass") ADDITIONAL_CONFIGS = combinations_grid( split=("byclass", "bymerge", "balanced", "letters", "digits", "mnist"), train=(True, False) ) def _prefix(self, config): return f"emnist-{config['split']}-{'train' if config['train'] else 'test'}" class QMNISTTestCase(MNISTTestCase): DATASET_CLASS = datasets.QMNIST ADDITIONAL_CONFIGS = combinations_grid(what=("train", "test", "test10k", "nist")) _LABELS_SIZE = (8,) _LABELS_DTYPE = torch.int32 def _num_images(self, config): if config["what"] == "nist": return 3 elif config["what"] == "train": return 2 elif config["what"] == "test50k": # The split 'test50k' is defined as the last 50k images beginning at index 10000. Thus, we need to create # more than 10000 images for the dataset to not be empty. Since this takes significantly longer than the # creation of all other splits, this is excluded from the 'ADDITIONAL_CONFIGS' and is tested only once in # 'test_num_examples_test50k'. return 10001 else: return 1 def _labels_file(self, config): return f"{self._prefix(config)}-labels-idx2-int" def _prefix(self, config): if config["what"] == "nist": return "xnist" if config["what"] is None: what = "train" if config["train"] else "test" elif config["what"].startswith("test"): what = "test" else: what = config["what"] return f"qmnist-{what}" def test_num_examples_test50k(self): with self.create_dataset(what="test50k") as (dataset, info): # Since the split 'test50k' selects all images beginning from the index 10000, we subtract the number of # created examples by this. assert len(dataset) == info["num_examples"] - 10000 class MovingMNISTTestCase(datasets_utils.DatasetTestCase): DATASET_CLASS = datasets.MovingMNIST FEATURE_TYPES = (torch.Tensor,) ADDITIONAL_CONFIGS = combinations_grid(split=(None, "train", "test"), split_ratio=(10, 1, 19)) _NUM_FRAMES = 20 def inject_fake_data(self, tmpdir, config): base_folder = os.path.join(tmpdir, self.DATASET_CLASS.__name__) os.makedirs(base_folder, exist_ok=True) num_samples = 5 data = np.concatenate( [ np.zeros((config["split_ratio"], num_samples, 64, 64)), np.ones((self._NUM_FRAMES - config["split_ratio"], num_samples, 64, 64)), ] ) np.save(os.path.join(base_folder, "mnist_test_seq.npy"), data) return num_samples @datasets_utils.test_all_configs def test_split(self, config): with self.create_dataset(config) as (dataset, _): if config["split"] == "train": assert (dataset.data == 0).all() elif config["split"] == "test": assert (dataset.data == 1).all() else: assert dataset.data.size()[1] == self._NUM_FRAMES class DatasetFolderTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.DatasetFolder _EXTENSIONS = ("jpg", "png") # DatasetFolder has two mutually exclusive parameters: 'extensions' and 'is_valid_file'. One of both is required. # We only iterate over different 'extensions' here and handle the tests for 'is_valid_file' in the # 'test_is_valid_file()' method. DEFAULT_CONFIG = dict(extensions=_EXTENSIONS) ADDITIONAL_CONFIGS = combinations_grid(extensions=[(ext,) for ext in _EXTENSIONS]) def dataset_args(self, tmpdir, config): return tmpdir, datasets.folder.pil_loader def inject_fake_data(self, tmpdir, config): extensions = config["extensions"] or self._is_valid_file_to_extensions(config["is_valid_file"]) num_examples_total = 0 classes = [] for ext, cls in zip(self._EXTENSIONS, string.ascii_letters): if ext not in extensions: continue num_examples = torch.randint(1, 3, size=()).item() datasets_utils.create_image_folder(tmpdir, cls, lambda idx: self._file_name_fn(cls, ext, idx), num_examples) num_examples_total += num_examples classes.append(cls) if config.pop("make_empty_class", False): os.makedirs(pathlib.Path(tmpdir) / "empty_class") classes.append("empty_class") return dict(num_examples=num_examples_total, classes=classes) def _file_name_fn(self, cls, ext, idx): return f"{cls}_{idx}.{ext}" def _is_valid_file_to_extensions(self, is_valid_file): return {ext for ext in self._EXTENSIONS if is_valid_file(f"foo.{ext}")} @datasets_utils.test_all_configs def test_is_valid_file(self, config): extensions = config.pop("extensions") # We need to explicitly pass extensions=None here or otherwise it would be filled by the value from the # DEFAULT_CONFIG. with self.create_dataset( config, extensions=None, is_valid_file=lambda file: pathlib.Path(file).suffix[1:] in extensions ) as (dataset, info): assert len(dataset) == info["num_examples"] @datasets_utils.test_all_configs def test_classes(self, config): with self.create_dataset(config) as (dataset, info): assert len(dataset.classes) == len(info["classes"]) assert all([a == b for a, b in zip(dataset.classes, info["classes"])]) def test_allow_empty(self): config = { "extensions": self._EXTENSIONS, "make_empty_class": True, } config["allow_empty"] = True with self.create_dataset(config) as (dataset, info): assert "empty_class" in dataset.classes assert len(dataset.classes) == len(info["classes"]) assert all([a == b for a, b in zip(dataset.classes, info["classes"])]) config["allow_empty"] = False with pytest.raises(FileNotFoundError, match="Found no valid file"): with self.create_dataset(config) as (dataset, info): pass class ImageFolderTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.ImageFolder def inject_fake_data(self, tmpdir, config): num_examples_total = 0 classes = ("a", "b") for cls in classes: num_examples = torch.randint(1, 3, size=()).item() num_examples_total += num_examples datasets_utils.create_image_folder(tmpdir, cls, lambda idx: f"{cls}_{idx}.png", num_examples) return dict(num_examples=num_examples_total, classes=classes) @datasets_utils.test_all_configs def test_classes(self, config): with self.create_dataset(config) as (dataset, info): assert len(dataset.classes) == len(info["classes"]) assert all([a == b for a, b in zip(dataset.classes, info["classes"])]) class KittiTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.Kitti FEATURE_TYPES = (PIL.Image.Image, (list, type(None))) # test split returns None as target ADDITIONAL_CONFIGS = combinations_grid(train=(True, False)) def inject_fake_data(self, tmpdir, config): kitti_dir = os.path.join(tmpdir, "Kitti", "raw") os.makedirs(kitti_dir) split_to_num_examples = { True: 1, False: 2, } # We need to create all folders(training and testing). for is_training in (True, False): num_examples = split_to_num_examples[is_training] datasets_utils.create_image_folder( root=kitti_dir, name=os.path.join("training" if is_training else "testing", "image_2"), file_name_fn=lambda image_idx: f"{image_idx:06d}.png", num_examples=num_examples, ) if is_training: for image_idx in range(num_examples): target_file_dir = os.path.join(kitti_dir, "training", "label_2") os.makedirs(target_file_dir) target_file_name = os.path.join(target_file_dir, f"{image_idx:06d}.txt") target_contents = "Pedestrian 0.00 0 -0.20 712.40 143.00 810.73 307.92 1.89 0.48 1.20 1.84 1.47 8.41 0.01\n" # noqa with open(target_file_name, "w") as target_file: target_file.write(target_contents) return split_to_num_examples[config["train"]] def test_transforms_v2_wrapper_spawn(self): expected_size = (123, 321) with self.create_dataset(transform=v2.Resize(size=expected_size)) as (dataset, _): datasets_utils.check_transforms_v2_wrapper_spawn(dataset, expected_size=expected_size) class SvhnTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.SVHN REQUIRED_PACKAGES = ("scipy",) ADDITIONAL_CONFIGS = combinations_grid(split=("train", "test", "extra")) def inject_fake_data(self, tmpdir, config): import scipy.io as sio split = config["split"] num_examples = { "train": 2, "test": 3, "extra": 4, }.get(split) file = f"{split}_32x32.mat" images = np.zeros((32, 32, 3, num_examples), dtype=np.uint8) targets = np.zeros((num_examples,), dtype=np.uint8) sio.savemat(os.path.join(tmpdir, file), {"X": images, "y": targets}) return num_examples class Places365TestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.Places365 ADDITIONAL_CONFIGS = combinations_grid( split=("train-standard", "train-challenge", "val"), small=(False, True), ) _CATEGORIES = "categories_places365.txt" # {split: file} _FILE_LISTS = { "train-standard": "places365_train_standard.txt", "train-challenge": "places365_train_challenge.txt", "val": "places365_val.txt", } # {(split, small): folder_name} _IMAGES = { ("train-standard", False): "data_large_standard", ("train-challenge", False): "data_large_challenge", ("val", False): "val_large", ("train-standard", True): "data_256_standard", ("train-challenge", True): "data_256_challenge", ("val", True): "val_256", } # (class, idx) _CATEGORIES_CONTENT = ( ("/a/airfield", 0), ("/a/apartment_building/outdoor", 8), ("/b/badlands", 30), ) # (file, idx) _FILE_LIST_CONTENT = ( ("Places365_val_00000001.png", 0), *((f"{category}/Places365_train_00000001.png", idx) for category, idx in _CATEGORIES_CONTENT), ) @staticmethod def _make_txt(root, name, seq): file = os.path.join(root, name) with open(file, "w") as fh: for text, idx in seq: fh.write(f"{text} {idx}\n") @staticmethod def _make_categories_txt(root, name): Places365TestCase._make_txt(root, name, Places365TestCase._CATEGORIES_CONTENT) @staticmethod def _make_file_list_txt(root, name): Places365TestCase._make_txt(root, name, Places365TestCase._FILE_LIST_CONTENT) @staticmethod def _make_image(file_name, size): os.makedirs(os.path.dirname(file_name), exist_ok=True) PIL.Image.fromarray(np.zeros((*size, 3), dtype=np.uint8)).save(file_name) @staticmethod def _make_devkit_archive(root, split): Places365TestCase._make_categories_txt(root, Places365TestCase._CATEGORIES) Places365TestCase._make_file_list_txt(root, Places365TestCase._FILE_LISTS[split]) @staticmethod def _make_images_archive(root, split, small): folder_name = Places365TestCase._IMAGES[(split, small)] image_size = (256, 256) if small else (512, random.randint(512, 1024)) files, idcs = zip(*Places365TestCase._FILE_LIST_CONTENT) images = [f.lstrip("/").replace("/", os.sep) for f in files] for image in images: Places365TestCase._make_image(os.path.join(root, folder_name, image), image_size) return [(os.path.join(root, folder_name, image), idx) for image, idx in zip(images, idcs)] def inject_fake_data(self, tmpdir, config): self._make_devkit_archive(tmpdir, config["split"]) return len(self._make_images_archive(tmpdir, config["split"], config["small"])) def test_classes(self): classes = list(map(lambda x: x[0], self._CATEGORIES_CONTENT)) with self.create_dataset() as (dataset, _): assert dataset.classes == classes def test_class_to_idx(self): class_to_idx = dict(self._CATEGORIES_CONTENT) with self.create_dataset() as (dataset, _): assert dataset.class_to_idx == class_to_idx def test_images_download_preexisting(self): with pytest.raises(RuntimeError): with self.create_dataset({"download": True}): pass class INaturalistTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.INaturalist FEATURE_TYPES = (PIL.Image.Image, (int, tuple)) ADDITIONAL_CONFIGS = combinations_grid( target_type=("kingdom", "full", "genus", ["kingdom", "phylum", "class", "order", "family", "genus", "full"]), version=("2021_train",), ) def inject_fake_data(self, tmpdir, config): categories = [ "00000_Akingdom_0phylum_Aclass_Aorder_Afamily_Agenus_Aspecies", "00001_Akingdom_1phylum_Aclass_Border_Afamily_Bgenus_Aspecies", "00002_Akingdom_2phylum_Cclass_Corder_Cfamily_Cgenus_Cspecies", ] num_images_per_category = 3 for category in categories: datasets_utils.create_image_folder( root=os.path.join(tmpdir, config["version"]), name=category, file_name_fn=lambda idx: f"image_{idx + 1:04d}.jpg", num_examples=num_images_per_category, ) return num_images_per_category * len(categories) def test_targets(self): target_types = ["kingdom", "phylum", "class", "order", "family", "genus", "full"] with self.create_dataset(target_type=target_types, version="2021_valid") as (dataset, _): items = [d[1] for d in dataset] for i, item in enumerate(items): assert dataset.category_name("kingdom", item[0]) == "Akingdom" assert dataset.category_name("phylum", item[1]) == f"{i // 3}phylum" assert item[6] == i // 3 class LFWPeopleTestCase(datasets_utils.DatasetTestCase): DATASET_CLASS = datasets.LFWPeople FEATURE_TYPES = (PIL.Image.Image, int) ADDITIONAL_CONFIGS = combinations_grid( split=("10fold", "train", "test"), image_set=("original", "funneled", "deepfunneled") ) _IMAGES_DIR = {"original": "lfw", "funneled": "lfw_funneled", "deepfunneled": "lfw-deepfunneled"} _file_id = {"10fold": "", "train": "DevTrain", "test": "DevTest"} def inject_fake_data(self, tmpdir, config): tmpdir = pathlib.Path(tmpdir) / "lfw-py" os.makedirs(tmpdir, exist_ok=True) return dict( num_examples=self._create_images_dir(tmpdir, self._IMAGES_DIR[config["image_set"]], config["split"]), split=config["split"], ) def _create_images_dir(self, root, idir, split): idir = os.path.join(root, idir) os.makedirs(idir, exist_ok=True) n, flines = (10, ["10\n"]) if split == "10fold" else (1, []) num_examples = 0 names = [] for _ in range(n): num_people = random.randint(2, 5) flines.append(f"{num_people}\n") for i in range(num_people): name = self._create_random_id() no = random.randint(1, 10) flines.append(f"{name}\t{no}\n") names.append(f"{name}\t{no}\n") datasets_utils.create_image_folder(idir, name, lambda n: f"{name}_{n+1:04d}.jpg", no, 250) num_examples += no with open(pathlib.Path(root) / f"people{self._file_id[split]}.txt", "w") as f: f.writelines(flines) with open(pathlib.Path(root) / "lfw-names.txt", "w") as f: f.writelines(sorted(names)) return num_examples def _create_random_id(self): part1 = datasets_utils.create_random_string(random.randint(5, 7)) part2 = datasets_utils.create_random_string(random.randint(4, 7)) return f"{part1}_{part2}" class LFWPairsTestCase(LFWPeopleTestCase): DATASET_CLASS = datasets.LFWPairs FEATURE_TYPES = (PIL.Image.Image, PIL.Image.Image, int) def _create_images_dir(self, root, idir, split): idir = os.path.join(root, idir) os.makedirs(idir, exist_ok=True) num_pairs = 7 # effectively 7*2*n = 14*n n, self.flines = (10, [f"10\t{num_pairs}"]) if split == "10fold" else (1, [str(num_pairs)]) for _ in range(n): self._inject_pairs(idir, num_pairs, True) self._inject_pairs(idir, num_pairs, False) with open(pathlib.Path(root) / f"pairs{self._file_id[split]}.txt", "w") as f: f.writelines(self.flines) return num_pairs * 2 * n def _inject_pairs(self, root, num_pairs, same): for i in range(num_pairs): name1 = self._create_random_id() name2 = name1 if same else self._create_random_id() no1, no2 = random.randint(1, 100), random.randint(1, 100) if same: self.flines.append(f"\n{name1}\t{no1}\t{no2}") else: self.flines.append(f"\n{name1}\t{no1}\t{name2}\t{no2}") datasets_utils.create_image_folder(root, name1, lambda _: f"{name1}_{no1:04d}.jpg", 1, 250) datasets_utils.create_image_folder(root, name2, lambda _: f"{name2}_{no2:04d}.jpg", 1, 250) class SintelTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.Sintel ADDITIONAL_CONFIGS = combinations_grid(split=("train", "test"), pass_name=("clean", "final", "both")) FEATURE_TYPES = (PIL.Image.Image, PIL.Image.Image, (np.ndarray, type(None))) FLOW_H, FLOW_W = 3, 4 def inject_fake_data(self, tmpdir, config): root = pathlib.Path(tmpdir) / "Sintel" num_images_per_scene = 3 if config["split"] == "train" else 4 num_scenes = 2 for split_dir in ("training", "test"): for pass_name in ("clean", "final"): image_root = root / split_dir / pass_name for scene_id in range(num_scenes): scene_dir = image_root / f"scene_{scene_id}" datasets_utils.create_image_folder( image_root, name=str(scene_dir), file_name_fn=lambda image_idx: f"frame_000{image_idx}.png", num_examples=num_images_per_scene, ) flow_root = root / "training" / "flow" for scene_id in range(num_scenes): scene_dir = flow_root / f"scene_{scene_id}" os.makedirs(scene_dir) for i in range(num_images_per_scene - 1): file_name = str(scene_dir / f"frame_000{i}.flo") datasets_utils.make_fake_flo_file(h=self.FLOW_H, w=self.FLOW_W, file_name=file_name) # with e.g. num_images_per_scene = 3, for a single scene with have 3 images # which are frame_0000, frame_0001 and frame_0002 # They will be consecutively paired as (frame_0000, frame_0001), (frame_0001, frame_0002), # that is 3 - 1 = 2 examples. Hence the formula below num_passes = 2 if config["pass_name"] == "both" else 1 num_examples = (num_images_per_scene - 1) * num_scenes * num_passes return num_examples def test_flow(self): # Make sure flow exists for train split, and make sure there are as many flow values as (pairs of) images h, w = self.FLOW_H, self.FLOW_W expected_flow = np.arange(2 * h * w).reshape(h, w, 2).transpose(2, 0, 1) with self.create_dataset(split="train") as (dataset, _): assert dataset._flow_list and len(dataset._flow_list) == len(dataset._image_list) for _, _, flow in dataset: assert flow.shape == (2, h, w) np.testing.assert_allclose(flow, expected_flow) # Make sure flow is always None for test split with self.create_dataset(split="test") as (dataset, _): assert dataset._image_list and not dataset._flow_list for _, _, flow in dataset: assert flow is None def test_bad_input(self): with pytest.raises(ValueError, match="Unknown value 'bad' for argument split"): with self.create_dataset(split="bad"): pass with pytest.raises(ValueError, match="Unknown value 'bad' for argument pass_name"): with self.create_dataset(pass_name="bad"): pass class KittiFlowTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.KittiFlow ADDITIONAL_CONFIGS = combinations_grid(split=("train", "test")) FEATURE_TYPES = (PIL.Image.Image, PIL.Image.Image, (np.ndarray, type(None)), (np.ndarray, type(None))) def inject_fake_data(self, tmpdir, config): root = pathlib.Path(tmpdir) / "KittiFlow" num_examples = 2 if config["split"] == "train" else 3 for split_dir in ("training", "testing"): datasets_utils.create_image_folder( root / split_dir, name="image_2", file_name_fn=lambda image_idx: f"{image_idx}_10.png", num_examples=num_examples, ) datasets_utils.create_image_folder( root / split_dir, name="image_2", file_name_fn=lambda image_idx: f"{image_idx}_11.png", num_examples=num_examples, ) # For kitti the ground truth flows are encoded as 16-bits pngs. # create_image_folder() will actually create 8-bits pngs, but it doesn't # matter much: the flow reader will still be able to read the files, it # will just be garbage flow value - but we don't care about that here. datasets_utils.create_image_folder( root / "training", name="flow_occ", file_name_fn=lambda image_idx: f"{image_idx}_10.png", num_examples=num_examples, ) return num_examples def test_flow_and_valid(self): # Make sure flow exists for train split, and make sure there are as many flow values as (pairs of) images # Also assert flow and valid are of the expected shape with self.create_dataset(split="train") as (dataset, _): assert dataset._flow_list and len(dataset._flow_list) == len(dataset._image_list) for _, _, flow, valid in dataset: two, h, w = flow.shape assert two == 2 assert valid.shape == (h, w) # Make sure flow and valid are always None for test split with self.create_dataset(split="test") as (dataset, _): assert dataset._image_list and not dataset._flow_list for _, _, flow, valid in dataset: assert flow is None assert valid is None def test_bad_input(self): with pytest.raises(ValueError, match="Unknown value 'bad' for argument split"): with self.create_dataset(split="bad"): pass class FlyingChairsTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.FlyingChairs ADDITIONAL_CONFIGS = combinations_grid(split=("train", "val")) FEATURE_TYPES = (PIL.Image.Image, PIL.Image.Image, (np.ndarray, type(None))) FLOW_H, FLOW_W = 3, 4 def _make_split_file(self, root, num_examples): # We create a fake split file here, but users are asked to download the real one from the authors website split_ids = [1] * num_examples["train"] + [2] * num_examples["val"] random.shuffle(split_ids) with open(str(root / "FlyingChairs_train_val.txt"), "w+") as split_file: for split_id in split_ids: split_file.write(f"{split_id}\n") def inject_fake_data(self, tmpdir, config): root = pathlib.Path(tmpdir) / "FlyingChairs" num_examples = {"train": 5, "val": 3} num_examples_total = sum(num_examples.values()) datasets_utils.create_image_folder( # img1 root, name="data", file_name_fn=lambda image_idx: f"00{image_idx}_img1.ppm", num_examples=num_examples_total, ) datasets_utils.create_image_folder( # img2 root, name="data", file_name_fn=lambda image_idx: f"00{image_idx}_img2.ppm", num_examples=num_examples_total, ) for i in range(num_examples_total): file_name = str(root / "data" / f"00{i}_flow.flo") datasets_utils.make_fake_flo_file(h=self.FLOW_H, w=self.FLOW_W, file_name=file_name) self._make_split_file(root, num_examples) return num_examples[config["split"]] @datasets_utils.test_all_configs def test_flow(self, config): # Make sure flow always exists, and make sure there are as many flow values as (pairs of) images # Also make sure the flow is properly decoded h, w = self.FLOW_H, self.FLOW_W expected_flow = np.arange(2 * h * w).reshape(h, w, 2).transpose(2, 0, 1) with self.create_dataset(config=config) as (dataset, _): assert dataset._flow_list and len(dataset._flow_list) == len(dataset._image_list) for _, _, flow in dataset: assert flow.shape == (2, h, w) np.testing.assert_allclose(flow, expected_flow) class FlyingThings3DTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.FlyingThings3D ADDITIONAL_CONFIGS = combinations_grid( split=("train", "test"), pass_name=("clean", "final", "both"), camera=("left", "right", "both") ) FEATURE_TYPES = (PIL.Image.Image, PIL.Image.Image, (np.ndarray, type(None))) FLOW_H, FLOW_W = 3, 4 def inject_fake_data(self, tmpdir, config): root = pathlib.Path(tmpdir) / "FlyingThings3D" num_images_per_camera = 3 if config["split"] == "train" else 4 passes = ("frames_cleanpass", "frames_finalpass") splits = ("TRAIN", "TEST") letters = ("A", "B", "C") subfolders = ("0000", "0001") cameras = ("left", "right") for pass_name, split, letter, subfolder, camera in itertools.product( passes, splits, letters, subfolders, cameras ): current_folder = root / pass_name / split / letter / subfolder datasets_utils.create_image_folder( current_folder, name=camera, file_name_fn=lambda image_idx: f"00{image_idx}.png", num_examples=num_images_per_camera, ) directions = ("into_future", "into_past") for split, letter, subfolder, direction, camera in itertools.product( splits, letters, subfolders, directions, cameras ): current_folder = root / "optical_flow" / split / letter / subfolder / direction / camera os.makedirs(str(current_folder), exist_ok=True) for i in range(num_images_per_camera): datasets_utils.make_fake_pfm_file(self.FLOW_H, self.FLOW_W, file_name=str(current_folder / f"{i}.pfm")) num_cameras = 2 if config["camera"] == "both" else 1 num_passes = 2 if config["pass_name"] == "both" else 1 num_examples = ( (num_images_per_camera - 1) * num_cameras * len(subfolders) * len(letters) * len(splits) * num_passes ) return num_examples @datasets_utils.test_all_configs def test_flow(self, config): h, w = self.FLOW_H, self.FLOW_W expected_flow = np.arange(3 * h * w).reshape(h, w, 3).transpose(2, 0, 1) expected_flow = np.flip(expected_flow, axis=1) expected_flow = expected_flow[:2, :, :] with self.create_dataset(config=config) as (dataset, _): assert dataset._flow_list and len(dataset._flow_list) == len(dataset._image_list) for _, _, flow in dataset: assert flow.shape == (2, self.FLOW_H, self.FLOW_W) np.testing.assert_allclose(flow, expected_flow) def test_bad_input(self): with pytest.raises(ValueError, match="Unknown value 'bad' for argument split"): with self.create_dataset(split="bad"): pass with pytest.raises(ValueError, match="Unknown value 'bad' for argument pass_name"): with self.create_dataset(pass_name="bad"): pass with pytest.raises(ValueError, match="Unknown value 'bad' for argument camera"): with self.create_dataset(camera="bad"): pass class HD1KTestCase(KittiFlowTestCase): DATASET_CLASS = datasets.HD1K def inject_fake_data(self, tmpdir, config): root = pathlib.Path(tmpdir) / "hd1k" num_sequences = 4 if config["split"] == "train" else 3 num_examples_per_train_sequence = 3 for seq_idx in range(num_sequences): # Training data datasets_utils.create_image_folder( root / "hd1k_input", name="image_2", file_name_fn=lambda image_idx: f"{seq_idx:06d}_{image_idx}.png", num_examples=num_examples_per_train_sequence, ) datasets_utils.create_image_folder( root / "hd1k_flow_gt", name="flow_occ", file_name_fn=lambda image_idx: f"{seq_idx:06d}_{image_idx}.png", num_examples=num_examples_per_train_sequence, ) # Test data datasets_utils.create_image_folder( root / "hd1k_challenge", name="image_2", file_name_fn=lambda _: f"{seq_idx:06d}_10.png", num_examples=1, ) datasets_utils.create_image_folder( root / "hd1k_challenge", name="image_2", file_name_fn=lambda _: f"{seq_idx:06d}_11.png", num_examples=1, ) num_examples_per_sequence = num_examples_per_train_sequence if config["split"] == "train" else 2 return num_sequences * (num_examples_per_sequence - 1) class EuroSATTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.EuroSAT FEATURE_TYPES = (PIL.Image.Image, int) def inject_fake_data(self, tmpdir, config): data_folder = os.path.join(tmpdir, "eurosat", "2750") os.makedirs(data_folder) num_examples_per_class = 3 classes = ("AnnualCrop", "Forest") for cls in classes: datasets_utils.create_image_folder( root=data_folder, name=cls, file_name_fn=lambda idx: f"{cls}_{idx}.jpg", num_examples=num_examples_per_class, ) return len(classes) * num_examples_per_class class Food101TestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.Food101 FEATURE_TYPES = (PIL.Image.Image, int) ADDITIONAL_CONFIGS = combinations_grid(split=("train", "test")) def inject_fake_data(self, tmpdir: str, config): root_folder = pathlib.Path(tmpdir) / "food-101" image_folder = root_folder / "images" meta_folder = root_folder / "meta" image_folder.mkdir(parents=True) meta_folder.mkdir() num_images_per_class = 5 metadata = {} n_samples_per_class = 3 if config["split"] == "train" else 2 sampled_classes = ("apple_pie", "crab_cakes", "gyoza") for cls in sampled_classes: im_fnames = datasets_utils.create_image_folder( image_folder, cls, file_name_fn=lambda idx: f"{idx}.jpg", num_examples=num_images_per_class, ) metadata[cls] = [ "/".join(fname.relative_to(image_folder).with_suffix("").parts) for fname in random.choices(im_fnames, k=n_samples_per_class) ] with open(meta_folder / f"{config['split']}.json", "w") as file: file.write(json.dumps(metadata)) return len(sampled_classes * n_samples_per_class) class FGVCAircraftTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.FGVCAircraft ADDITIONAL_CONFIGS = combinations_grid( split=("train", "val", "trainval", "test"), annotation_level=("variant", "family", "manufacturer") ) def inject_fake_data(self, tmpdir: str, config): split = config["split"] annotation_level = config["annotation_level"] annotation_level_to_file = { "variant": "variants.txt", "family": "families.txt", "manufacturer": "manufacturers.txt", } root_folder = pathlib.Path(tmpdir) / "fgvc-aircraft-2013b" data_folder = root_folder / "data" classes = ["707-320", "Hawk T1", "Tornado"] num_images_per_class = 5 datasets_utils.create_image_folder( data_folder, "images", file_name_fn=lambda idx: f"{idx}.jpg", num_examples=num_images_per_class * len(classes), ) annotation_file = data_folder / annotation_level_to_file[annotation_level] with open(annotation_file, "w") as file: file.write("\n".join(classes)) num_samples_per_class = 4 if split == "trainval" else 2 images_classes = [] for i in range(len(classes)): images_classes.extend( [ f"{idx} {classes[i]}" for idx in random.sample( range(i * num_images_per_class, (i + 1) * num_images_per_class), num_samples_per_class ) ] ) images_annotation_file = data_folder / f"images_{annotation_level}_{split}.txt" with open(images_annotation_file, "w") as file: file.write("\n".join(images_classes)) return len(classes * num_samples_per_class) class SUN397TestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.SUN397 def inject_fake_data(self, tmpdir: str, config): data_dir = pathlib.Path(tmpdir) / "SUN397" data_dir.mkdir() num_images_per_class = 5 sampled_classes = ("abbey", "airplane_cabin", "airport_terminal") im_paths = [] for cls in sampled_classes: image_folder = data_dir / cls[0] im_paths.extend( datasets_utils.create_image_folder( image_folder, image_folder / cls, file_name_fn=lambda idx: f"sun_{idx}.jpg", num_examples=num_images_per_class, ) ) with open(data_dir / "ClassName.txt", "w") as file: file.writelines("\n".join(f"/{cls[0]}/{cls}" for cls in sampled_classes)) num_samples = len(im_paths) return num_samples class DTDTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.DTD FEATURE_TYPES = (PIL.Image.Image, int) ADDITIONAL_CONFIGS = combinations_grid( split=("train", "test", "val"), # There is no need to test the whole matrix here, since each fold is treated exactly the same partition=(1, 5, 10), ) def inject_fake_data(self, tmpdir: str, config): data_folder = pathlib.Path(tmpdir) / "dtd" / "dtd" num_images_per_class = 3 image_folder = data_folder / "images" image_files = [] for cls in ("banded", "marbled", "zigzagged"): image_files.extend( datasets_utils.create_image_folder( image_folder, cls, file_name_fn=lambda idx: f"{cls}_{idx:04d}.jpg", num_examples=num_images_per_class, ) ) meta_folder = data_folder / "labels" meta_folder.mkdir() image_ids = [str(path.relative_to(path.parents[1])).replace(os.sep, "/") for path in image_files] image_ids_in_config = random.choices(image_ids, k=len(image_files) // 2) with open(meta_folder / f"{config['split']}{config['partition']}.txt", "w") as file: file.write("\n".join(image_ids_in_config) + "\n") return len(image_ids_in_config) class FER2013TestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.FER2013 ADDITIONAL_CONFIGS = combinations_grid(split=("train", "test")) FEATURE_TYPES = (PIL.Image.Image, (int, type(None))) def inject_fake_data(self, tmpdir, config): base_folder = os.path.join(tmpdir, "fer2013") os.makedirs(base_folder) use_icml = config.pop("use_icml", False) use_fer = config.pop("use_fer", False) num_samples = 5 if use_icml or use_fer: pixels_key, usage_key = (" pixels", " Usage") if use_icml else ("pixels", "Usage") fieldnames = ("emotion", usage_key, pixels_key) if use_icml else ("emotion", pixels_key, usage_key) filename = "icml_face_data.csv" if use_icml else "fer2013.csv" with open(os.path.join(base_folder, filename), "w", newline="") as file: writer = csv.DictWriter( file, fieldnames=fieldnames, quoting=csv.QUOTE_NONNUMERIC, quotechar='"', ) writer.writeheader() for i in range(num_samples): row = { "emotion": str(int(torch.randint(0, 7, ()))), usage_key: "Training" if i % 2 else "PublicTest", pixels_key: " ".join( str(pixel) for pixel in datasets_utils.create_image_or_video_tensor((48, 48)).view(-1).tolist() ), } writer.writerow(row) else: with open(os.path.join(base_folder, f"{config['split']}.csv"), "w", newline="") as file: writer = csv.DictWriter( file, fieldnames=("emotion", "pixels") if config["split"] == "train" else ("pixels",), quoting=csv.QUOTE_NONNUMERIC, quotechar='"', ) writer.writeheader() for _ in range(num_samples): row = dict( pixels=" ".join( str(pixel) for pixel in datasets_utils.create_image_or_video_tensor((48, 48)).view(-1).tolist() ) ) if config["split"] == "train": row["emotion"] = str(int(torch.randint(0, 7, ()))) writer.writerow(row) return num_samples def test_icml_file(self): config = {"split": "test"} with self.create_dataset(config=config) as (dataset, _): assert all(s[1] is None for s in dataset) for split in ("train", "test"): for d in ({"use_icml": True}, {"use_fer": True}): config = {"split": split, **d} with self.create_dataset(config=config) as (dataset, _): assert all(s[1] is not None for s in dataset) class GTSRBTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.GTSRB FEATURE_TYPES = (PIL.Image.Image, int) ADDITIONAL_CONFIGS = combinations_grid(split=("train", "test")) def inject_fake_data(self, tmpdir: str, config): root_folder = os.path.join(tmpdir, "gtsrb") os.makedirs(root_folder, exist_ok=True) # Train data train_folder = os.path.join(root_folder, "GTSRB", "Training") os.makedirs(train_folder, exist_ok=True) num_examples = 3 if config["split"] == "train" else 4 classes = ("00000", "00042", "00012") for class_idx in classes: datasets_utils.create_image_folder( train_folder, name=class_idx, file_name_fn=lambda image_idx: f"{class_idx}_{image_idx:05d}.ppm", num_examples=num_examples, ) total_number_of_examples = num_examples * len(classes) # Test data test_folder = os.path.join(root_folder, "GTSRB", "Final_Test", "Images") os.makedirs(test_folder, exist_ok=True) with open(os.path.join(root_folder, "GT-final_test.csv"), "w") as csv_file: csv_file.write("Filename;Width;Height;Roi.X1;Roi.Y1;Roi.X2;Roi.Y2;ClassId\n") for _ in range(total_number_of_examples): image_file = datasets_utils.create_random_string(5, string.digits) + ".ppm" datasets_utils.create_image_file(test_folder, image_file) row = [ image_file, torch.randint(1, 100, size=()).item(), torch.randint(1, 100, size=()).item(), torch.randint(1, 100, size=()).item(), torch.randint(1, 100, size=()).item(), torch.randint(1, 100, size=()).item(), torch.randint(1, 100, size=()).item(), torch.randint(0, 43, size=()).item(), ] csv_file.write(";".join(map(str, row)) + "\n") return total_number_of_examples class CLEVRClassificationTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.CLEVRClassification FEATURE_TYPES = (PIL.Image.Image, (int, type(None))) ADDITIONAL_CONFIGS = combinations_grid(split=("train", "val", "test")) def inject_fake_data(self, tmpdir, config): data_folder = pathlib.Path(tmpdir) / "clevr" / "CLEVR_v1.0" images_folder = data_folder / "images" image_files = datasets_utils.create_image_folder( images_folder, config["split"], lambda idx: f"CLEVR_{config['split']}_{idx:06d}.png", num_examples=5 ) scenes_folder = data_folder / "scenes" scenes_folder.mkdir() if config["split"] != "test": with open(scenes_folder / f"CLEVR_{config['split']}_scenes.json", "w") as file: json.dump( dict( info=dict(), scenes=[ dict(image_filename=image_file.name, objects=[dict()] * int(torch.randint(10, ()))) for image_file in image_files ], ), file, ) return len(image_files) class OxfordIIITPetTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.OxfordIIITPet FEATURE_TYPES = (PIL.Image.Image, (int, PIL.Image.Image, tuple, type(None))) ADDITIONAL_CONFIGS = combinations_grid( split=("trainval", "test"), target_types=("category", "binary-category", "segmentation", ["category", "segmentation"], []), ) def inject_fake_data(self, tmpdir, config): base_folder = os.path.join(tmpdir, "oxford-iiit-pet") classification_anns_meta = ( dict(cls="Abyssinian", label=0, species="cat"), dict(cls="Keeshond", label=18, species="dog"), dict(cls="Yorkshire Terrier", label=37, species="dog"), ) split_and_classification_anns = [ self._meta_to_split_and_classification_ann(meta, idx) for meta, idx in itertools.product(classification_anns_meta, (1, 2, 10)) ] image_ids, *_ = zip(*split_and_classification_anns) image_files = datasets_utils.create_image_folder( base_folder, "images", file_name_fn=lambda idx: f"{image_ids[idx]}.jpg", num_examples=len(image_ids) ) anns_folder = os.path.join(base_folder, "annotations") os.makedirs(anns_folder) split_and_classification_anns_in_split = random.choices(split_and_classification_anns, k=len(image_ids) // 2) with open(os.path.join(anns_folder, f"{config['split']}.txt"), "w", newline="") as file: writer = csv.writer(file, delimiter=" ") for split_and_classification_ann in split_and_classification_anns_in_split: writer.writerow(split_and_classification_ann) segmentation_files = datasets_utils.create_image_folder( anns_folder, "trimaps", file_name_fn=lambda idx: f"{image_ids[idx]}.png", num_examples=len(image_ids) ) # The dataset has some rogue files for path in image_files[:2]: path.with_suffix(".mat").touch() for path in segmentation_files: path.with_name(f".{path.name}").touch() return len(split_and_classification_anns_in_split) def _meta_to_split_and_classification_ann(self, meta, idx): image_id = "_".join( [ *[(str.title if meta["species"] == "cat" else str.lower)(part) for part in meta["cls"].split()], str(idx), ] ) class_id = str(meta["label"] + 1) species = "1" if meta["species"] == "cat" else "2" breed_id = "-1" return (image_id, class_id, species, breed_id) def test_transforms_v2_wrapper_spawn(self): expected_size = (123, 321) with self.create_dataset(transform=v2.Resize(size=expected_size)) as (dataset, _): datasets_utils.check_transforms_v2_wrapper_spawn(dataset, expected_size=expected_size) class StanfordCarsTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.StanfordCars REQUIRED_PACKAGES = ("scipy",) ADDITIONAL_CONFIGS = combinations_grid(split=("train", "test")) def inject_fake_data(self, tmpdir, config): import scipy.io as io from numpy.core.records import fromarrays num_examples = {"train": 5, "test": 7}[config["split"]] num_classes = 3 base_folder = pathlib.Path(tmpdir) / "stanford_cars" devkit = base_folder / "devkit" devkit.mkdir(parents=True) if config["split"] == "train": images_folder_name = "cars_train" annotations_mat_path = devkit / "cars_train_annos.mat" else: images_folder_name = "cars_test" annotations_mat_path = base_folder / "cars_test_annos_withlabels.mat" datasets_utils.create_image_folder( root=base_folder, name=images_folder_name, file_name_fn=lambda image_index: f"{image_index:5d}.jpg", num_examples=num_examples, ) classes = np.random.randint(1, num_classes + 1, num_examples, dtype=np.uint8) fnames = [f"{i:5d}.jpg" for i in range(num_examples)] rec_array = fromarrays( [classes, fnames], names=["class", "fname"], ) io.savemat(annotations_mat_path, {"annotations": rec_array}) random_class_names = ["random_name"] * num_classes io.savemat(devkit / "cars_meta.mat", {"class_names": random_class_names}) return num_examples class Country211TestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.Country211 ADDITIONAL_CONFIGS = combinations_grid(split=("train", "valid", "test")) def inject_fake_data(self, tmpdir: str, config): split_folder = pathlib.Path(tmpdir) / "country211" / config["split"] split_folder.mkdir(parents=True, exist_ok=True) num_examples = { "train": 3, "valid": 4, "test": 5, }[config["split"]] classes = ("AD", "BS", "GR") for cls in classes: datasets_utils.create_image_folder( split_folder, name=cls, file_name_fn=lambda idx: f"{idx}.jpg", num_examples=num_examples, ) return num_examples * len(classes) class Flowers102TestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.Flowers102 ADDITIONAL_CONFIGS = combinations_grid(split=("train", "val", "test")) REQUIRED_PACKAGES = ("scipy",) def inject_fake_data(self, tmpdir: str, config): base_folder = pathlib.Path(tmpdir) / "flowers-102" num_classes = 3 num_images_per_split = dict(train=5, val=4, test=3) num_images_total = sum(num_images_per_split.values()) datasets_utils.create_image_folder( base_folder, "jpg", file_name_fn=lambda idx: f"image_{idx + 1:05d}.jpg", num_examples=num_images_total, ) label_dict = dict( labels=np.random.randint(1, num_classes + 1, size=(1, num_images_total), dtype=np.uint8), ) datasets_utils.lazy_importer.scipy.io.savemat(str(base_folder / "imagelabels.mat"), label_dict) setid_mat = np.arange(1, num_images_total + 1, dtype=np.uint16) np.random.shuffle(setid_mat) setid_dict = dict( trnid=setid_mat[: num_images_per_split["train"]].reshape(1, -1), valid=setid_mat[num_images_per_split["train"] : -num_images_per_split["test"]].reshape(1, -1), tstid=setid_mat[-num_images_per_split["test"] :].reshape(1, -1), ) datasets_utils.lazy_importer.scipy.io.savemat(str(base_folder / "setid.mat"), setid_dict) return num_images_per_split[config["split"]] class PCAMTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.PCAM ADDITIONAL_CONFIGS = combinations_grid(split=("train", "val", "test")) REQUIRED_PACKAGES = ("h5py",) def inject_fake_data(self, tmpdir: str, config): base_folder = pathlib.Path(tmpdir) / "pcam" base_folder.mkdir() num_images = {"train": 2, "test": 3, "val": 4}[config["split"]] images_file = datasets.PCAM._FILES[config["split"]]["images"][0] with datasets_utils.lazy_importer.h5py.File(str(base_folder / images_file), "w") as f: f["x"] = np.random.randint(0, 256, size=(num_images, 10, 10, 3), dtype=np.uint8) targets_file = datasets.PCAM._FILES[config["split"]]["targets"][0] with datasets_utils.lazy_importer.h5py.File(str(base_folder / targets_file), "w") as f: f["y"] = np.random.randint(0, 2, size=(num_images, 1, 1, 1), dtype=np.uint8) return num_images class RenderedSST2TestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.RenderedSST2 ADDITIONAL_CONFIGS = combinations_grid(split=("train", "val", "test")) SPLIT_TO_FOLDER = {"train": "train", "val": "valid", "test": "test"} def inject_fake_data(self, tmpdir: str, config): root_folder = pathlib.Path(tmpdir) / "rendered-sst2" image_folder = root_folder / self.SPLIT_TO_FOLDER[config["split"]] num_images_per_class = {"train": 5, "test": 6, "val": 7} sampled_classes = ["positive", "negative"] for cls in sampled_classes: datasets_utils.create_image_folder( image_folder, cls, file_name_fn=lambda idx: f"{idx}.png", num_examples=num_images_per_class[config["split"]], ) return len(sampled_classes) * num_images_per_class[config["split"]] class Kitti2012StereoTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.Kitti2012Stereo ADDITIONAL_CONFIGS = combinations_grid(split=("train", "test")) FEATURE_TYPES = (PIL.Image.Image, PIL.Image.Image, (np.ndarray, type(None)), (np.ndarray, type(None))) def inject_fake_data(self, tmpdir, config): kitti_dir = pathlib.Path(tmpdir) / "Kitti2012" os.makedirs(kitti_dir, exist_ok=True) split_dir = kitti_dir / (config["split"] + "ing") os.makedirs(split_dir, exist_ok=True) num_examples = {"train": 4, "test": 3}.get(config["split"], 0) datasets_utils.create_image_folder( root=split_dir, name="colored_0", file_name_fn=lambda i: f"{i:06d}_10.png", num_examples=num_examples, size=(3, 100, 200), ) datasets_utils.create_image_folder( root=split_dir, name="colored_1", file_name_fn=lambda i: f"{i:06d}_10.png", num_examples=num_examples, size=(3, 100, 200), ) if config["split"] == "train": datasets_utils.create_image_folder( root=split_dir, name="disp_noc", file_name_fn=lambda i: f"{i:06d}.png", num_examples=num_examples, # Kitti2012 uses a single channel image for disparities size=(1, 100, 200), ) return num_examples def test_train_splits(self): for split in ["train"]: with self.create_dataset(split=split) as (dataset, _): for left, right, disparity, mask in dataset: assert mask is None datasets_utils.shape_test_for_stereo(left, right, disparity) def test_test_split(self): for split in ["test"]: with self.create_dataset(split=split) as (dataset, _): for left, right, disparity, mask in dataset: assert mask is None assert disparity is None datasets_utils.shape_test_for_stereo(left, right) def test_bad_input(self): with pytest.raises(ValueError, match="Unknown value 'bad' for argument split"): with self.create_dataset(split="bad"): pass class Kitti2015StereoTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.Kitti2015Stereo ADDITIONAL_CONFIGS = combinations_grid(split=("train", "test")) FEATURE_TYPES = (PIL.Image.Image, PIL.Image.Image, (np.ndarray, type(None)), (np.ndarray, type(None))) def inject_fake_data(self, tmpdir, config): kitti_dir = pathlib.Path(tmpdir) / "Kitti2015" os.makedirs(kitti_dir, exist_ok=True) split_dir = kitti_dir / (config["split"] + "ing") os.makedirs(split_dir, exist_ok=True) num_examples = {"train": 4, "test": 6}.get(config["split"], 0) datasets_utils.create_image_folder( root=split_dir, name="image_2", file_name_fn=lambda i: f"{i:06d}_10.png", num_examples=num_examples, size=(3, 100, 200), ) datasets_utils.create_image_folder( root=split_dir, name="image_3", file_name_fn=lambda i: f"{i:06d}_10.png", num_examples=num_examples, size=(3, 100, 200), ) if config["split"] == "train": datasets_utils.create_image_folder( root=split_dir, name="disp_occ_0", file_name_fn=lambda i: f"{i:06d}.png", num_examples=num_examples, # Kitti2015 uses a single channel image for disparities size=(1, 100, 200), ) datasets_utils.create_image_folder( root=split_dir, name="disp_occ_1", file_name_fn=lambda i: f"{i:06d}.png", num_examples=num_examples, # Kitti2015 uses a single channel image for disparities size=(1, 100, 200), ) return num_examples def test_train_splits(self): for split in ["train"]: with self.create_dataset(split=split) as (dataset, _): for left, right, disparity, mask in dataset: assert mask is None datasets_utils.shape_test_for_stereo(left, right, disparity) def test_test_split(self): for split in ["test"]: with self.create_dataset(split=split) as (dataset, _): for left, right, disparity, mask in dataset: assert mask is None assert disparity is None datasets_utils.shape_test_for_stereo(left, right) def test_bad_input(self): with pytest.raises(ValueError, match="Unknown value 'bad' for argument split"): with self.create_dataset(split="bad"): pass class CarlaStereoTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.CarlaStereo FEATURE_TYPES = (PIL.Image.Image, PIL.Image.Image, (np.ndarray, None)) @staticmethod def _create_scene_folders(num_examples: int, root_dir: Union[str, pathlib.Path]): # make the root_dir if it does not exits os.makedirs(root_dir, exist_ok=True) for i in range(num_examples): scene_dir = pathlib.Path(root_dir) / f"scene_{i}" os.makedirs(scene_dir, exist_ok=True) # populate with left right images datasets_utils.create_image_file(root=scene_dir, name="im0.png", size=(100, 100)) datasets_utils.create_image_file(root=scene_dir, name="im1.png", size=(100, 100)) datasets_utils.make_fake_pfm_file(100, 100, file_name=str(scene_dir / "disp0GT.pfm")) datasets_utils.make_fake_pfm_file(100, 100, file_name=str(scene_dir / "disp1GT.pfm")) def inject_fake_data(self, tmpdir, config): carla_dir = pathlib.Path(tmpdir) / "carla-highres" os.makedirs(carla_dir, exist_ok=True) split_dir = pathlib.Path(carla_dir) / "trainingF" os.makedirs(split_dir, exist_ok=True) num_examples = 6 self._create_scene_folders(num_examples=num_examples, root_dir=split_dir) return num_examples def test_train_splits(self): with self.create_dataset() as (dataset, _): for left, right, disparity in dataset: datasets_utils.shape_test_for_stereo(left, right, disparity) class CREStereoTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.CREStereo FEATURE_TYPES = (PIL.Image.Image, PIL.Image.Image, np.ndarray, type(None)) def inject_fake_data(self, tmpdir, config): crestereo_dir = pathlib.Path(tmpdir) / "CREStereo" os.makedirs(crestereo_dir, exist_ok=True) examples = {"tree": 2, "shapenet": 3, "reflective": 6, "hole": 5} for category_name in ["shapenet", "reflective", "tree", "hole"]: split_dir = crestereo_dir / category_name os.makedirs(split_dir, exist_ok=True) num_examples = examples[category_name] for idx in range(num_examples): datasets_utils.create_image_file(root=split_dir, name=f"{idx}_left.jpg", size=(100, 100)) datasets_utils.create_image_file(root=split_dir, name=f"{idx}_right.jpg", size=(100, 100)) # these are going to end up being gray scale images datasets_utils.create_image_file(root=split_dir, name=f"{idx}_left.disp.png", size=(1, 100, 100)) datasets_utils.create_image_file(root=split_dir, name=f"{idx}_right.disp.png", size=(1, 100, 100)) return sum(examples.values()) def test_splits(self): with self.create_dataset() as (dataset, _): for left, right, disparity, mask in dataset: assert mask is None datasets_utils.shape_test_for_stereo(left, right, disparity) class FallingThingsStereoTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.FallingThingsStereo ADDITIONAL_CONFIGS = combinations_grid(variant=("single", "mixed", "both")) FEATURE_TYPES = (PIL.Image.Image, PIL.Image.Image, (np.ndarray, type(None))) @staticmethod def _make_dummy_depth_map(root: str, name: str, size: Tuple[int, int]): file = pathlib.Path(root) / name image = np.ones((size[0], size[1]), dtype=np.uint8) PIL.Image.fromarray(image).save(file) @staticmethod def _make_scene_folder(root: str, scene_name: str, size: Tuple[int, int]) -> None: root = pathlib.Path(root) / scene_name os.makedirs(root, exist_ok=True) # jpg images datasets_utils.create_image_file(root, "image1.left.jpg", size=(3, size[1], size[0])) datasets_utils.create_image_file(root, "image1.right.jpg", size=(3, size[1], size[0])) # single channel depth maps FallingThingsStereoTestCase._make_dummy_depth_map(root, "image1.left.depth.png", size=(size[0], size[1])) FallingThingsStereoTestCase._make_dummy_depth_map(root, "image1.right.depth.png", size=(size[0], size[1])) # camera settings json. Minimal example for _read_disparity function testing settings_json = {"camera_settings": [{"intrinsic_settings": {"fx": 1}}]} with open(root / "_camera_settings.json", "w") as f: json.dump(settings_json, f) def inject_fake_data(self, tmpdir, config): fallingthings_dir = pathlib.Path(tmpdir) / "FallingThings" os.makedirs(fallingthings_dir, exist_ok=True) num_examples = {"single": 2, "mixed": 3, "both": 4}.get(config["variant"], 0) variants = { "single": ["single"], "mixed": ["mixed"], "both": ["single", "mixed"], }.get(config["variant"], []) variant_dir_prefixes = { "single": 1, "mixed": 0, } for variant_name in variants: variant_dir = pathlib.Path(fallingthings_dir) / variant_name os.makedirs(variant_dir, exist_ok=True) for i in range(variant_dir_prefixes[variant_name]): variant_dir = variant_dir / f"{i:02d}" os.makedirs(variant_dir, exist_ok=True) for i in range(num_examples): self._make_scene_folder( root=variant_dir, scene_name=f"scene_{i:06d}", size=(100, 200), ) if config["variant"] == "both": num_examples *= 2 return num_examples def test_splits(self): for variant_name in ["single", "mixed"]: with self.create_dataset(variant=variant_name) as (dataset, _): for left, right, disparity in dataset: datasets_utils.shape_test_for_stereo(left, right, disparity) def test_bad_input(self): with pytest.raises(ValueError, match="Unknown value 'bad' for argument variant"): with self.create_dataset(variant="bad"): pass class SceneFlowStereoTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.SceneFlowStereo ADDITIONAL_CONFIGS = combinations_grid( variant=("FlyingThings3D", "Driving", "Monkaa"), pass_name=("clean", "final", "both") ) FEATURE_TYPES = (PIL.Image.Image, PIL.Image.Image, (np.ndarray, type(None))) @staticmethod def _create_pfm_folder( root: str, name: str, file_name_fn: Callable[..., str], num_examples: int, size: Tuple[int, int] ) -> None: root = pathlib.Path(root) / name os.makedirs(root, exist_ok=True) for i in range(num_examples): datasets_utils.make_fake_pfm_file(size[0], size[1], root / file_name_fn(i)) def inject_fake_data(self, tmpdir, config): scene_flow_dir = pathlib.Path(tmpdir) / "SceneFlow" os.makedirs(scene_flow_dir, exist_ok=True) variant_dir = scene_flow_dir / config["variant"] variant_dir_prefixes = { "Monkaa": 0, "Driving": 2, "FlyingThings3D": 2, } os.makedirs(variant_dir, exist_ok=True) num_examples = {"FlyingThings3D": 4, "Driving": 6, "Monkaa": 5}.get(config["variant"], 0) passes = { "clean": ["frames_cleanpass"], "final": ["frames_finalpass"], "both": ["frames_cleanpass", "frames_finalpass"], }.get(config["pass_name"], []) for pass_dir_name in passes: # create pass directories pass_dir = variant_dir / pass_dir_name disp_dir = variant_dir / "disparity" os.makedirs(pass_dir, exist_ok=True) os.makedirs(disp_dir, exist_ok=True) for i in range(variant_dir_prefixes.get(config["variant"], 0)): pass_dir = pass_dir / str(i) disp_dir = disp_dir / str(i) os.makedirs(pass_dir, exist_ok=True) os.makedirs(disp_dir, exist_ok=True) for direction in ["left", "right"]: for scene_idx in range(num_examples): os.makedirs(pass_dir / f"scene_{scene_idx:06d}", exist_ok=True) datasets_utils.create_image_folder( root=pass_dir / f"scene_{scene_idx:06d}", name=direction, file_name_fn=lambda i: f"{i:06d}.png", num_examples=1, size=(3, 200, 100), ) os.makedirs(disp_dir / f"scene_{scene_idx:06d}", exist_ok=True) self._create_pfm_folder( root=disp_dir / f"scene_{scene_idx:06d}", name=direction, file_name_fn=lambda i: f"{i:06d}.pfm", num_examples=1, size=(100, 200), ) if config["pass_name"] == "both": num_examples *= 2 return num_examples def test_splits(self): for variant_name, pass_name in itertools.product(["FlyingThings3D", "Driving", "Monkaa"], ["clean", "final"]): with self.create_dataset(variant=variant_name, pass_name=pass_name) as (dataset, _): for left, right, disparity in dataset: datasets_utils.shape_test_for_stereo(left, right, disparity) def test_bad_input(self): with pytest.raises(ValueError, match="Unknown value 'bad' for argument variant"): with self.create_dataset(variant="bad"): pass class InStereo2k(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.InStereo2k FEATURE_TYPES = (PIL.Image.Image, PIL.Image.Image, (np.ndarray, type(None))) ADDITIONAL_CONFIGS = combinations_grid(split=("train", "test")) @staticmethod def _make_scene_folder(root: str, name: str, size: Tuple[int, int]): root = pathlib.Path(root) / name os.makedirs(root, exist_ok=True) datasets_utils.create_image_file(root=root, name="left.png", size=(3, size[0], size[1])) datasets_utils.create_image_file(root=root, name="right.png", size=(3, size[0], size[1])) datasets_utils.create_image_file(root=root, name="left_disp.png", size=(1, size[0], size[1])) datasets_utils.create_image_file(root=root, name="right_disp.png", size=(1, size[0], size[1])) def inject_fake_data(self, tmpdir, config): in_stereo_dir = pathlib.Path(tmpdir) / "InStereo2k" os.makedirs(in_stereo_dir, exist_ok=True) split_dir = pathlib.Path(in_stereo_dir) / config["split"] os.makedirs(split_dir, exist_ok=True) num_examples = {"train": 4, "test": 5}.get(config["split"], 0) for i in range(num_examples): self._make_scene_folder(split_dir, f"scene_{i:06d}", (100, 200)) return num_examples def test_splits(self): for split_name in ["train", "test"]: with self.create_dataset(split=split_name) as (dataset, _): for left, right, disparity in dataset: datasets_utils.shape_test_for_stereo(left, right, disparity) def test_bad_input(self): with pytest.raises( ValueError, match="Unknown value 'bad' for argument split. Valid values are {'train', 'test'}." ): with self.create_dataset(split="bad"): pass class SintelStereoTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.SintelStereo ADDITIONAL_CONFIGS = combinations_grid(pass_name=("final", "clean", "both")) FEATURE_TYPES = (PIL.Image.Image, PIL.Image.Image, (np.ndarray, type(None)), (np.ndarray, type(None))) def inject_fake_data(self, tmpdir, config): sintel_dir = pathlib.Path(tmpdir) / "Sintel" os.makedirs(sintel_dir, exist_ok=True) split_dir = pathlib.Path(sintel_dir) / "training" os.makedirs(split_dir, exist_ok=True) # a single setting, since there are no splits num_examples = {"final": 2, "clean": 3} pass_names = { "final": ["final"], "clean": ["clean"], "both": ["final", "clean"], }.get(config["pass_name"], []) for p in pass_names: for view in [f"{p}_left", f"{p}_right"]: root = split_dir / view os.makedirs(root, exist_ok=True) datasets_utils.create_image_folder( root=root, name="scene1", file_name_fn=lambda i: f"{i:06d}.png", num_examples=num_examples[p], size=(3, 100, 200), ) datasets_utils.create_image_folder( root=split_dir / "occlusions", name="scene1", file_name_fn=lambda i: f"{i:06d}.png", num_examples=max(num_examples.values()), size=(1, 100, 200), ) datasets_utils.create_image_folder( root=split_dir / "outofframe", name="scene1", file_name_fn=lambda i: f"{i:06d}.png", num_examples=max(num_examples.values()), size=(1, 100, 200), ) datasets_utils.create_image_folder( root=split_dir / "disparities", name="scene1", file_name_fn=lambda i: f"{i:06d}.png", num_examples=max(num_examples.values()), size=(3, 100, 200), ) if config["pass_name"] == "both": num_examples = sum(num_examples.values()) else: num_examples = num_examples.get(config["pass_name"], 0) return num_examples def test_splits(self): for pass_name in ["final", "clean", "both"]: with self.create_dataset(pass_name=pass_name) as (dataset, _): for left, right, disparity, valid_mask in dataset: datasets_utils.shape_test_for_stereo(left, right, disparity, valid_mask) def test_bad_input(self): with pytest.raises(ValueError, match="Unknown value 'bad' for argument pass_name"): with self.create_dataset(pass_name="bad"): pass class ETH3DStereoestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.ETH3DStereo ADDITIONAL_CONFIGS = combinations_grid(split=("train", "test")) FEATURE_TYPES = (PIL.Image.Image, PIL.Image.Image, (np.ndarray, type(None)), (np.ndarray, type(None))) @staticmethod def _create_scene_folder(num_examples: int, root_dir: str): # make the root_dir if it does not exits root_dir = pathlib.Path(root_dir) os.makedirs(root_dir, exist_ok=True) for i in range(num_examples): scene_dir = root_dir / f"scene_{i}" os.makedirs(scene_dir, exist_ok=True) # populate with left right images datasets_utils.create_image_file(root=scene_dir, name="im0.png", size=(100, 100)) datasets_utils.create_image_file(root=scene_dir, name="im1.png", size=(100, 100)) @staticmethod def _create_annotation_folder(num_examples: int, root_dir: str): # make the root_dir if it does not exits root_dir = pathlib.Path(root_dir) os.makedirs(root_dir, exist_ok=True) # create scene directories for i in range(num_examples): scene_dir = root_dir / f"scene_{i}" os.makedirs(scene_dir, exist_ok=True) # populate with a random png file for occlusion mask, and a pfm file for disparity datasets_utils.create_image_file(root=scene_dir, name="mask0nocc.png", size=(1, 100, 100)) pfm_path = scene_dir / "disp0GT.pfm" datasets_utils.make_fake_pfm_file(h=100, w=100, file_name=pfm_path) def inject_fake_data(self, tmpdir, config): eth3d_dir = pathlib.Path(tmpdir) / "ETH3D" num_examples = 2 if config["split"] == "train" else 3 split_name = "two_view_training" if config["split"] == "train" else "two_view_test" split_dir = eth3d_dir / split_name self._create_scene_folder(num_examples, split_dir) if config["split"] == "train": annot_dir = eth3d_dir / "two_view_training_gt" self._create_annotation_folder(num_examples, annot_dir) return num_examples def test_training_splits(self): with self.create_dataset(split="train") as (dataset, _): for left, right, disparity, valid_mask in dataset: datasets_utils.shape_test_for_stereo(left, right, disparity, valid_mask) def test_testing_splits(self): with self.create_dataset(split="test") as (dataset, _): assert all(d == (None, None) for d in dataset._disparities) for left, right, disparity, valid_mask in dataset: assert valid_mask is None datasets_utils.shape_test_for_stereo(left, right, disparity) def test_bad_input(self): with pytest.raises(ValueError, match="Unknown value 'bad' for argument split"): with self.create_dataset(split="bad"): pass class Middlebury2014StereoTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.Middlebury2014Stereo ADDITIONAL_CONFIGS = combinations_grid( split=("train", "additional"), calibration=("perfect", "imperfect", "both"), use_ambient_views=(True, False), ) FEATURE_TYPES = (PIL.Image.Image, PIL.Image.Image, (np.ndarray, type(None)), (np.ndarray, type(None))) @staticmethod def _make_scene_folder(root_dir: str, scene_name: str, split: str) -> None: calibrations = [None] if split == "test" else ["-perfect", "-imperfect"] root_dir = pathlib.Path(root_dir) for c in calibrations: scene_dir = root_dir / f"{scene_name}{c}" os.makedirs(scene_dir, exist_ok=True) # make normal images first datasets_utils.create_image_file(root=scene_dir, name="im0.png", size=(3, 100, 100)) datasets_utils.create_image_file(root=scene_dir, name="im1.png", size=(3, 100, 100)) datasets_utils.create_image_file(root=scene_dir, name="im1E.png", size=(3, 100, 100)) datasets_utils.create_image_file(root=scene_dir, name="im1L.png", size=(3, 100, 100)) # these are going to end up being gray scale images datasets_utils.make_fake_pfm_file(h=100, w=100, file_name=scene_dir / "disp0.pfm") datasets_utils.make_fake_pfm_file(h=100, w=100, file_name=scene_dir / "disp1.pfm") def inject_fake_data(self, tmpdir, config): split_scene_map = { "train": ["Adirondack", "Jadeplant", "Motorcycle", "Piano"], "additional": ["Backpack", "Bicycle1", "Cable", "Classroom1"], "test": ["Plants", "Classroom2E", "Classroom2", "Australia"], } middlebury_dir = pathlib.Path(tmpdir, "Middlebury2014") os.makedirs(middlebury_dir, exist_ok=True) split_dir = middlebury_dir / config["split"] os.makedirs(split_dir, exist_ok=True) num_examples = {"train": 2, "additional": 3, "test": 4}.get(config["split"], 0) for idx in range(num_examples): scene_name = split_scene_map[config["split"]][idx] self._make_scene_folder(root_dir=split_dir, scene_name=scene_name, split=config["split"]) if config["calibration"] == "both": num_examples *= 2 return num_examples def test_train_splits(self): for split, calibration in itertools.product(["train", "additional"], ["perfect", "imperfect", "both"]): with self.create_dataset(split=split, calibration=calibration) as (dataset, _): for left, right, disparity, mask in dataset: datasets_utils.shape_test_for_stereo(left, right, disparity, mask) def test_test_split(self): for split in ["test"]: with self.create_dataset(split=split, calibration=None) as (dataset, _): for left, right, disparity, mask in dataset: datasets_utils.shape_test_for_stereo(left, right) def test_augmented_view_usage(self): with self.create_dataset(split="train", use_ambient_views=True) as (dataset, _): for left, right, disparity, mask in dataset: datasets_utils.shape_test_for_stereo(left, right, disparity, mask) def test_value_err_train(self): # train set invalid split = "train" calibration = None with pytest.raises( ValueError, match=f"Split '{split}' has calibration settings, however None was provided as an argument." f"\nSetting calibration to 'perfect' for split '{split}'. Available calibration settings are: 'perfect', 'imperfect', 'both'.", ): with self.create_dataset(split=split, calibration=calibration): pass def test_value_err_test(self): # test set invalid split = "test" calibration = "perfect" with pytest.raises( ValueError, match="Split 'test' has only no calibration settings, please set `calibration=None`." ): with self.create_dataset(split=split, calibration=calibration): pass def test_bad_input(self): with pytest.raises(ValueError, match="Unknown value 'bad' for argument split"): with self.create_dataset(split="bad"): pass class ImagenetteTestCase(datasets_utils.ImageDatasetTestCase): DATASET_CLASS = datasets.Imagenette ADDITIONAL_CONFIGS = combinations_grid(split=["train", "val"], size=["full", "320px", "160px"]) _WNIDS = [ "n01440764", "n02102040", "n02979186", "n03000684", "n03028079", "n03394916", "n03417042", "n03425413", "n03445777", "n03888257", ] def inject_fake_data(self, tmpdir, config): archive_root = "imagenette2" if config["size"] != "full": archive_root += f"-{config['size'].replace('px', '')}" image_root = pathlib.Path(tmpdir) / archive_root / config["split"] num_images_per_class = 3 for wnid in self._WNIDS: datasets_utils.create_image_folder( root=image_root, name=wnid, file_name_fn=lambda idx: f"{wnid}_{idx}.JPEG", num_examples=num_images_per_class, ) return num_images_per_class * len(self._WNIDS) class TestDatasetWrapper: def test_unknown_type(self): unknown_object = object() with pytest.raises( TypeError, match=re.escape("is meant for subclasses of `torchvision.datasets.VisionDataset`") ): datasets.wrap_dataset_for_transforms_v2(unknown_object) def test_unknown_dataset(self): class MyVisionDataset(datasets.VisionDataset): pass dataset = MyVisionDataset("root") with pytest.raises(TypeError, match="No wrapper exist"): datasets.wrap_dataset_for_transforms_v2(dataset) def test_missing_wrapper(self): dataset = datasets.FakeData() with pytest.raises(TypeError, match="please open an issue"): datasets.wrap_dataset_for_transforms_v2(dataset) def test_subclass(self, mocker): from torchvision import tv_tensors sentinel = object() mocker.patch.dict( tv_tensors._dataset_wrapper.WRAPPER_FACTORIES, clear=False, values={datasets.FakeData: lambda dataset, target_keys: lambda idx, sample: sentinel}, ) class MyFakeData(datasets.FakeData): pass dataset = MyFakeData() wrapped_dataset = datasets.wrap_dataset_for_transforms_v2(dataset) assert wrapped_dataset[0] is sentinel if __name__ == "__main__": unittest.main() vision-0.19.1/test/test_datasets_download.py000066400000000000000000000266501466211133600212140ustar00rootroot00000000000000import contextlib import itertools import shutil import tempfile import time import traceback import unittest.mock import warnings from datetime import datetime from os import path from urllib.error import HTTPError, URLError from urllib.parse import urlparse from urllib.request import Request, urlopen import pytest from torchvision import datasets from torchvision.datasets.utils import _get_redirect_url, USER_AGENT def limit_requests_per_time(min_secs_between_requests=2.0): last_requests = {} def outer_wrapper(fn): def inner_wrapper(request, *args, **kwargs): url = request.full_url if isinstance(request, Request) else request netloc = urlparse(url).netloc last_request = last_requests.get(netloc) if last_request is not None: elapsed_secs = (datetime.now() - last_request).total_seconds() delta = min_secs_between_requests - elapsed_secs if delta > 0: time.sleep(delta) response = fn(request, *args, **kwargs) last_requests[netloc] = datetime.now() return response return inner_wrapper return outer_wrapper urlopen = limit_requests_per_time()(urlopen) def resolve_redirects(max_hops=3): def outer_wrapper(fn): def inner_wrapper(request, *args, **kwargs): initial_url = request.full_url if isinstance(request, Request) else request url = _get_redirect_url(initial_url, max_hops=max_hops) if url == initial_url: return fn(request, *args, **kwargs) warnings.warn(f"The URL {initial_url} ultimately redirects to {url}.") if not isinstance(request, Request): return fn(url, *args, **kwargs) request_attrs = { attr: getattr(request, attr) for attr in ("data", "headers", "origin_req_host", "unverifiable") } # the 'method' attribute does only exist if the request was created with it if hasattr(request, "method"): request_attrs["method"] = request.method return fn(Request(url, **request_attrs), *args, **kwargs) return inner_wrapper return outer_wrapper urlopen = resolve_redirects()(urlopen) @contextlib.contextmanager def log_download_attempts( urls, *, dataset_module, ): def maybe_add_mock(*, module, name, stack, lst=None): patcher = unittest.mock.patch(f"torchvision.datasets.{module}.{name}") try: mock = stack.enter_context(patcher) except AttributeError: return if lst is not None: lst.append(mock) with contextlib.ExitStack() as stack: download_url_mocks = [] download_file_from_google_drive_mocks = [] for module in [dataset_module, "utils"]: maybe_add_mock(module=module, name="download_url", stack=stack, lst=download_url_mocks) maybe_add_mock( module=module, name="download_file_from_google_drive", stack=stack, lst=download_file_from_google_drive_mocks, ) maybe_add_mock(module=module, name="extract_archive", stack=stack) try: yield finally: for download_url_mock in download_url_mocks: for args, kwargs in download_url_mock.call_args_list: urls.append(args[0] if args else kwargs["url"]) for download_file_from_google_drive_mock in download_file_from_google_drive_mocks: for args, kwargs in download_file_from_google_drive_mock.call_args_list: file_id = args[0] if args else kwargs["file_id"] urls.append(f"https://drive.google.com/file/d/{file_id}") def retry(fn, times=1, wait=5.0): tbs = [] for _ in range(times + 1): try: return fn() except AssertionError as error: tbs.append("".join(traceback.format_exception(type(error), error, error.__traceback__))) time.sleep(wait) else: raise AssertionError( "\n".join( ( "\n", *[f"{'_' * 40} {idx:2d} {'_' * 40}\n\n{tb}" for idx, tb in enumerate(tbs, 1)], ( f"Assertion failed {times + 1} times with {wait:.1f} seconds intermediate wait time. " f"You can find the the full tracebacks above." ), ) ) ) @contextlib.contextmanager def assert_server_response_ok(): try: yield except HTTPError as error: raise AssertionError(f"The server returned {error.code}: {error.reason}.") from error except URLError as error: raise AssertionError( "Connection not possible due to SSL." if "SSL" in str(error) else "The request timed out." ) from error except RecursionError as error: raise AssertionError(str(error)) from error def assert_url_is_accessible(url, timeout=5.0): request = Request(url, headers={"User-Agent": USER_AGENT}, method="HEAD") with assert_server_response_ok(): urlopen(request, timeout=timeout) def collect_urls(dataset_cls, *args, **kwargs): urls = [] with contextlib.suppress(Exception), log_download_attempts( urls, dataset_module=dataset_cls.__module__.split(".")[-1] ): dataset_cls(*args, **kwargs) return [(url, f"{dataset_cls.__name__}, {url}") for url in urls] # This is a workaround since fixtures, such as the built-in tmp_dir, can only be used within a test but not within a # parametrization. Thus, we use a single root directory for all datasets and remove it when all download tests are run. ROOT = tempfile.mkdtemp() @pytest.fixture(scope="module", autouse=True) def root(): yield ROOT shutil.rmtree(ROOT) def places365(): return itertools.chain.from_iterable( [ collect_urls( datasets.Places365, ROOT, split=split, small=small, download=True, ) for split, small in itertools.product(("train-standard", "train-challenge", "val"), (False, True)) ] ) def caltech101(): return collect_urls(datasets.Caltech101, ROOT, download=True) def caltech256(): return collect_urls(datasets.Caltech256, ROOT, download=True) def cifar10(): return collect_urls(datasets.CIFAR10, ROOT, download=True) def cifar100(): return collect_urls(datasets.CIFAR100, ROOT, download=True) def voc(): # TODO: Also test the "2007-test" key return itertools.chain.from_iterable( [ collect_urls(datasets.VOCSegmentation, ROOT, year=year, download=True) for year in ("2007", "2008", "2009", "2010", "2011", "2012") ] ) def mnist(): with unittest.mock.patch.object(datasets.MNIST, "mirrors", datasets.MNIST.mirrors[-1:]): return collect_urls(datasets.MNIST, ROOT, download=True) def fashion_mnist(): return collect_urls(datasets.FashionMNIST, ROOT, download=True) def kmnist(): return collect_urls(datasets.KMNIST, ROOT, download=True) def emnist(): # the 'split' argument can be any valid one, since everything is downloaded anyway return collect_urls(datasets.EMNIST, ROOT, split="byclass", download=True) def qmnist(): return itertools.chain.from_iterable( [collect_urls(datasets.QMNIST, ROOT, what=what, download=True) for what in ("train", "test", "nist")] ) def moving_mnist(): return collect_urls(datasets.MovingMNIST, ROOT, download=True) def omniglot(): return itertools.chain.from_iterable( [collect_urls(datasets.Omniglot, ROOT, background=background, download=True) for background in (True, False)] ) def phototour(): return itertools.chain.from_iterable( [ collect_urls(datasets.PhotoTour, ROOT, name=name, download=True) # The names postfixed with '_harris' point to the domain 'matthewalunbrown.com'. For some reason all # requests timeout from within CI. They are disabled until this is resolved. for name in ("notredame", "yosemite", "liberty") # "notredame_harris", "yosemite_harris", "liberty_harris" ] ) def sbdataset(): return collect_urls(datasets.SBDataset, ROOT, download=True) def sbu(): return collect_urls(datasets.SBU, ROOT, download=True) def semeion(): return collect_urls(datasets.SEMEION, ROOT, download=True) def stl10(): return collect_urls(datasets.STL10, ROOT, download=True) def svhn(): return itertools.chain.from_iterable( [collect_urls(datasets.SVHN, ROOT, split=split, download=True) for split in ("train", "test", "extra")] ) def usps(): return itertools.chain.from_iterable( [collect_urls(datasets.USPS, ROOT, train=train, download=True) for train in (True, False)] ) def celeba(): return collect_urls(datasets.CelebA, ROOT, download=True) def widerface(): return collect_urls(datasets.WIDERFace, ROOT, download=True) def kinetics(): return itertools.chain.from_iterable( [ collect_urls( datasets.Kinetics, path.join(ROOT, f"Kinetics{num_classes}"), frames_per_clip=1, num_classes=num_classes, split=split, download=True, ) for num_classes, split in itertools.product(("400", "600", "700"), ("train", "val")) ] ) def kitti(): return itertools.chain.from_iterable( [collect_urls(datasets.Kitti, ROOT, train=train, download=True) for train in (True, False)] ) def url_parametrization(*dataset_urls_and_ids_fns): return pytest.mark.parametrize( "url", [ pytest.param(url, id=id) for dataset_urls_and_ids_fn in dataset_urls_and_ids_fns for url, id in sorted(set(dataset_urls_and_ids_fn())) ], ) @url_parametrization( caltech101, caltech256, cifar10, cifar100, # The VOC download server is unstable. See https://github.com/pytorch/vision/issues/2953 for details. # voc, mnist, fashion_mnist, kmnist, emnist, qmnist, omniglot, phototour, sbdataset, semeion, stl10, svhn, usps, celeba, widerface, kinetics, kitti, places365, sbu, ) def test_url_is_accessible(url): """ If you see this test failing, find the offending dataset in the parametrization and move it to ``test_url_is_not_accessible`` and link an issue detailing the problem. """ retry(lambda: assert_url_is_accessible(url)) # TODO: if e.g. caltech101 starts failing, remove the pytest.mark.parametrize below and use # @url_parametrization(caltech101) @pytest.mark.parametrize("url", ("http://url_that_doesnt_exist.com",)) # here until we actually have a failing dataset @pytest.mark.xfail def test_url_is_not_accessible(url): """ As the name implies, this test is the 'inverse' of ``test_url_is_accessible``. Since the download servers are beyond our control, some files might not be accessible for longer stretches of time. Still, we want to know if they come back up, or if we need to remove the download functionality of the dataset for good. If you see this test failing, find the offending dataset in the parametrization and move it to ``test_url_is_accessible``. """ assert_url_is_accessible(url) vision-0.19.1/test/test_datasets_samplers.py000066400000000000000000000073111466211133600212240ustar00rootroot00000000000000import pytest import torch from common_utils import assert_equal, get_list_of_videos from torchvision import io from torchvision.datasets.samplers import DistributedSampler, RandomClipSampler, UniformClipSampler from torchvision.datasets.video_utils import VideoClips @pytest.mark.skipif(not io.video._av_available(), reason="this test requires av") class TestDatasetsSamplers: def test_random_clip_sampler(self, tmpdir): video_list = get_list_of_videos(tmpdir, num_videos=3, sizes=[25, 25, 25]) video_clips = VideoClips(video_list, 5, 5) sampler = RandomClipSampler(video_clips, 3) assert len(sampler) == 3 * 3 indices = torch.tensor(list(iter(sampler))) videos = torch.div(indices, 5, rounding_mode="floor") v_idxs, count = torch.unique(videos, return_counts=True) assert_equal(v_idxs, torch.tensor([0, 1, 2])) assert_equal(count, torch.tensor([3, 3, 3])) def test_random_clip_sampler_unequal(self, tmpdir): video_list = get_list_of_videos(tmpdir, num_videos=3, sizes=[10, 25, 25]) video_clips = VideoClips(video_list, 5, 5) sampler = RandomClipSampler(video_clips, 3) assert len(sampler) == 2 + 3 + 3 indices = list(iter(sampler)) assert 0 in indices assert 1 in indices # remove elements of the first video, to simplify testing indices.remove(0) indices.remove(1) indices = torch.tensor(indices) - 2 videos = torch.div(indices, 5, rounding_mode="floor") v_idxs, count = torch.unique(videos, return_counts=True) assert_equal(v_idxs, torch.tensor([0, 1])) assert_equal(count, torch.tensor([3, 3])) def test_uniform_clip_sampler(self, tmpdir): video_list = get_list_of_videos(tmpdir, num_videos=3, sizes=[25, 25, 25]) video_clips = VideoClips(video_list, 5, 5) sampler = UniformClipSampler(video_clips, 3) assert len(sampler) == 3 * 3 indices = torch.tensor(list(iter(sampler))) videos = torch.div(indices, 5, rounding_mode="floor") v_idxs, count = torch.unique(videos, return_counts=True) assert_equal(v_idxs, torch.tensor([0, 1, 2])) assert_equal(count, torch.tensor([3, 3, 3])) assert_equal(indices, torch.tensor([0, 2, 4, 5, 7, 9, 10, 12, 14])) def test_uniform_clip_sampler_insufficient_clips(self, tmpdir): video_list = get_list_of_videos(tmpdir, num_videos=3, sizes=[10, 25, 25]) video_clips = VideoClips(video_list, 5, 5) sampler = UniformClipSampler(video_clips, 3) assert len(sampler) == 3 * 3 indices = torch.tensor(list(iter(sampler))) assert_equal(indices, torch.tensor([0, 0, 1, 2, 4, 6, 7, 9, 11])) def test_distributed_sampler_and_uniform_clip_sampler(self, tmpdir): video_list = get_list_of_videos(tmpdir, num_videos=3, sizes=[25, 25, 25]) video_clips = VideoClips(video_list, 5, 5) clip_sampler = UniformClipSampler(video_clips, 3) distributed_sampler_rank0 = DistributedSampler( clip_sampler, num_replicas=2, rank=0, group_size=3, ) indices = torch.tensor(list(iter(distributed_sampler_rank0))) assert len(distributed_sampler_rank0) == 6 assert_equal(indices, torch.tensor([0, 2, 4, 10, 12, 14])) distributed_sampler_rank1 = DistributedSampler( clip_sampler, num_replicas=2, rank=1, group_size=3, ) indices = torch.tensor(list(iter(distributed_sampler_rank1))) assert len(distributed_sampler_rank1) == 6 assert_equal(indices, torch.tensor([5, 7, 9, 0, 2, 4])) if __name__ == "__main__": pytest.main([__file__]) vision-0.19.1/test/test_datasets_utils.py000066400000000000000000000243121466211133600205360ustar00rootroot00000000000000import contextlib import gzip import os import pathlib import re import tarfile import zipfile import pytest import torch import torchvision.datasets.utils as utils from common_utils import assert_equal from torch._utils_internal import get_file_path_2 from torchvision.datasets.folder import make_dataset from torchvision.datasets.utils import _COMPRESSED_FILE_OPENERS TEST_FILE = get_file_path_2( os.path.dirname(os.path.abspath(__file__)), "assets", "encode_jpeg", "grace_hopper_517x606.jpg" ) def patch_url_redirection(mocker, redirect_url): class Response: def __init__(self, url): self.url = url @contextlib.contextmanager def patched_opener(*args, **kwargs): yield Response(redirect_url) return mocker.patch("torchvision.datasets.utils.urllib.request.urlopen", side_effect=patched_opener) class TestDatasetsUtils: def test_get_redirect_url(self, mocker): url = "https://url.org" expected_redirect_url = "https://redirect.url.org" mock = patch_url_redirection(mocker, expected_redirect_url) actual = utils._get_redirect_url(url) assert actual == expected_redirect_url assert mock.call_count == 2 call_args_1, call_args_2 = mock.call_args_list assert call_args_1[0][0].full_url == url assert call_args_2[0][0].full_url == expected_redirect_url def test_get_redirect_url_max_hops_exceeded(self, mocker): url = "https://url.org" redirect_url = "https://redirect.url.org" mock = patch_url_redirection(mocker, redirect_url) with pytest.raises(RecursionError): utils._get_redirect_url(url, max_hops=0) assert mock.call_count == 1 assert mock.call_args[0][0].full_url == url @pytest.mark.parametrize("use_pathlib", (True, False)) def test_check_md5(self, use_pathlib): fpath = TEST_FILE if use_pathlib: fpath = pathlib.Path(fpath) correct_md5 = "9c0bb82894bb3af7f7675ef2b3b6dcdc" false_md5 = "" assert utils.check_md5(fpath, correct_md5) assert not utils.check_md5(fpath, false_md5) def test_check_integrity(self): existing_fpath = TEST_FILE nonexisting_fpath = "" correct_md5 = "9c0bb82894bb3af7f7675ef2b3b6dcdc" false_md5 = "" assert utils.check_integrity(existing_fpath, correct_md5) assert not utils.check_integrity(existing_fpath, false_md5) assert utils.check_integrity(existing_fpath) assert not utils.check_integrity(nonexisting_fpath) def test_get_google_drive_file_id(self): url = "https://drive.google.com/file/d/1GO-BHUYRuvzr1Gtp2_fqXRsr9TIeYbhV/view" expected = "1GO-BHUYRuvzr1Gtp2_fqXRsr9TIeYbhV" actual = utils._get_google_drive_file_id(url) assert actual == expected def test_get_google_drive_file_id_invalid_url(self): url = "http://www.vision.caltech.edu/visipedia-data/CUB-200-2011/CUB_200_2011.tgz" assert utils._get_google_drive_file_id(url) is None @pytest.mark.parametrize( "file, expected", [ ("foo.tar.bz2", (".tar.bz2", ".tar", ".bz2")), ("foo.tar.xz", (".tar.xz", ".tar", ".xz")), ("foo.tar", (".tar", ".tar", None)), ("foo.tar.gz", (".tar.gz", ".tar", ".gz")), ("foo.tbz", (".tbz", ".tar", ".bz2")), ("foo.tbz2", (".tbz2", ".tar", ".bz2")), ("foo.tgz", (".tgz", ".tar", ".gz")), ("foo.bz2", (".bz2", None, ".bz2")), ("foo.gz", (".gz", None, ".gz")), ("foo.zip", (".zip", ".zip", None)), ("foo.xz", (".xz", None, ".xz")), ("foo.bar.tar.gz", (".tar.gz", ".tar", ".gz")), ("foo.bar.gz", (".gz", None, ".gz")), ("foo.bar.zip", (".zip", ".zip", None)), ], ) def test_detect_file_type(self, file, expected): assert utils._detect_file_type(file) == expected @pytest.mark.parametrize("file", ["foo", "foo.tar.baz", "foo.bar"]) def test_detect_file_type_incompatible(self, file): # tests detect file type for no extension, unknown compression and unknown partial extension with pytest.raises(RuntimeError): utils._detect_file_type(file) @pytest.mark.parametrize("extension", [".bz2", ".gz", ".xz"]) @pytest.mark.parametrize("use_pathlib", (True, False)) def test_decompress(self, extension, tmpdir, use_pathlib): def create_compressed(root, content="this is the content"): file = os.path.join(root, "file") compressed = f"{file}{extension}" compressed_file_opener = _COMPRESSED_FILE_OPENERS[extension] with compressed_file_opener(compressed, "wb") as fh: fh.write(content.encode()) return compressed, file, content compressed, file, content = create_compressed(tmpdir) if use_pathlib: compressed = pathlib.Path(compressed) utils._decompress(compressed) assert os.path.exists(file) with open(file) as fh: assert fh.read() == content def test_decompress_no_compression(self): with pytest.raises(RuntimeError): utils._decompress("foo.tar") @pytest.mark.parametrize("use_pathlib", (True, False)) def test_decompress_remove_finished(self, tmpdir, use_pathlib): def create_compressed(root, content="this is the content"): file = os.path.join(root, "file") compressed = f"{file}.gz" with gzip.open(compressed, "wb") as fh: fh.write(content.encode()) return compressed, file, content compressed, file, content = create_compressed(tmpdir) print(f"{type(compressed)=}") if use_pathlib: compressed = pathlib.Path(compressed) tmpdir = pathlib.Path(tmpdir) extracted_dir = utils.extract_archive(compressed, tmpdir, remove_finished=True) assert not os.path.exists(compressed) if use_pathlib: assert isinstance(extracted_dir, pathlib.Path) assert isinstance(compressed, pathlib.Path) else: assert isinstance(extracted_dir, str) assert isinstance(compressed, str) @pytest.mark.parametrize("extension", [".gz", ".xz"]) @pytest.mark.parametrize("remove_finished", [True, False]) def test_extract_archive_defer_to_decompress(self, extension, remove_finished, mocker): filename = "foo" file = f"{filename}{extension}" mocked = mocker.patch("torchvision.datasets.utils._decompress") utils.extract_archive(file, remove_finished=remove_finished) mocked.assert_called_once_with(file, filename, remove_finished=remove_finished) @pytest.mark.parametrize("use_pathlib", (True, False)) def test_extract_zip(self, tmpdir, use_pathlib): def create_archive(root, content="this is the content"): file = os.path.join(root, "dst.txt") archive = os.path.join(root, "archive.zip") with zipfile.ZipFile(archive, "w") as zf: zf.writestr(os.path.basename(file), content) return archive, file, content if use_pathlib: tmpdir = pathlib.Path(tmpdir) archive, file, content = create_archive(tmpdir) utils.extract_archive(archive, tmpdir) assert os.path.exists(file) with open(file) as fh: assert fh.read() == content @pytest.mark.parametrize( "extension, mode", [(".tar", "w"), (".tar.gz", "w:gz"), (".tgz", "w:gz"), (".tar.xz", "w:xz")] ) @pytest.mark.parametrize("use_pathlib", (True, False)) def test_extract_tar(self, extension, mode, tmpdir, use_pathlib): def create_archive(root, extension, mode, content="this is the content"): src = os.path.join(root, "src.txt") dst = os.path.join(root, "dst.txt") archive = os.path.join(root, f"archive{extension}") with open(src, "w") as fh: fh.write(content) with tarfile.open(archive, mode=mode) as fh: fh.add(src, arcname=os.path.basename(dst)) return archive, dst, content if use_pathlib: tmpdir = pathlib.Path(tmpdir) archive, file, content = create_archive(tmpdir, extension, mode) utils.extract_archive(archive, tmpdir) assert os.path.exists(file) with open(file) as fh: assert fh.read() == content def test_verify_str_arg(self): assert "a" == utils.verify_str_arg("a", "arg", ("a",)) pytest.raises(ValueError, utils.verify_str_arg, 0, ("a",), "arg") pytest.raises(ValueError, utils.verify_str_arg, "b", ("a",), "arg") @pytest.mark.parametrize( ("dtype", "actual_hex", "expected_hex"), [ (torch.uint8, "01 23 45 67 89 AB CD EF", "01 23 45 67 89 AB CD EF"), (torch.float16, "01 23 45 67 89 AB CD EF", "23 01 67 45 AB 89 EF CD"), (torch.int32, "01 23 45 67 89 AB CD EF", "67 45 23 01 EF CD AB 89"), (torch.float64, "01 23 45 67 89 AB CD EF", "EF CD AB 89 67 45 23 01"), ], ) def test_flip_byte_order(self, dtype, actual_hex, expected_hex): def to_tensor(hex): return torch.frombuffer(bytes.fromhex(hex), dtype=dtype) assert_equal( utils._flip_byte_order(to_tensor(actual_hex)), to_tensor(expected_hex), ) @pytest.mark.parametrize( ("kwargs", "expected_error_msg"), [ (dict(is_valid_file=lambda path: pathlib.Path(path).suffix in {".png", ".jpeg"}), "classes c"), (dict(extensions=".png"), re.escape("classes b, c. Supported extensions are: .png")), (dict(extensions=(".png", ".jpeg")), re.escape("classes c. Supported extensions are: .png, .jpeg")), ], ) def test_make_dataset_no_valid_files(tmpdir, kwargs, expected_error_msg): tmpdir = pathlib.Path(tmpdir) (tmpdir / "a").mkdir() (tmpdir / "a" / "a.png").touch() (tmpdir / "b").mkdir() (tmpdir / "b" / "b.jpeg").touch() (tmpdir / "c").mkdir() (tmpdir / "c" / "c.unknown").touch() with pytest.raises(FileNotFoundError, match=expected_error_msg): make_dataset(str(tmpdir), **kwargs) if __name__ == "__main__": pytest.main([__file__]) vision-0.19.1/test/test_datasets_video_utils.py000066400000000000000000000077461466211133600217400ustar00rootroot00000000000000import pytest import torch from common_utils import assert_equal, get_list_of_videos from torchvision import io from torchvision.datasets.video_utils import unfold, VideoClips class TestVideo: def test_unfold(self): a = torch.arange(7) r = unfold(a, 3, 3, 1) expected = torch.tensor( [ [0, 1, 2], [3, 4, 5], ] ) assert_equal(r, expected) r = unfold(a, 3, 2, 1) expected = torch.tensor([[0, 1, 2], [2, 3, 4], [4, 5, 6]]) assert_equal(r, expected) r = unfold(a, 3, 2, 2) expected = torch.tensor( [ [0, 2, 4], [2, 4, 6], ] ) assert_equal(r, expected) @pytest.mark.skipif(not io.video._av_available(), reason="this test requires av") def test_video_clips(self, tmpdir): video_list = get_list_of_videos(tmpdir, num_videos=3) video_clips = VideoClips(video_list, 5, 5, num_workers=2) assert video_clips.num_clips() == 1 + 2 + 3 for i, (v_idx, c_idx) in enumerate([(0, 0), (1, 0), (1, 1), (2, 0), (2, 1), (2, 2)]): video_idx, clip_idx = video_clips.get_clip_location(i) assert video_idx == v_idx assert clip_idx == c_idx video_clips = VideoClips(video_list, 6, 6) assert video_clips.num_clips() == 0 + 1 + 2 for i, (v_idx, c_idx) in enumerate([(1, 0), (2, 0), (2, 1)]): video_idx, clip_idx = video_clips.get_clip_location(i) assert video_idx == v_idx assert clip_idx == c_idx video_clips = VideoClips(video_list, 6, 1) assert video_clips.num_clips() == 0 + (10 - 6 + 1) + (15 - 6 + 1) for i, v_idx, c_idx in [(0, 1, 0), (4, 1, 4), (5, 2, 0), (6, 2, 1)]: video_idx, clip_idx = video_clips.get_clip_location(i) assert video_idx == v_idx assert clip_idx == c_idx @pytest.mark.skipif(not io.video._av_available(), reason="this test requires av") def test_video_clips_custom_fps(self, tmpdir): video_list = get_list_of_videos(tmpdir, num_videos=3, sizes=[12, 12, 12], fps=[3, 4, 6]) num_frames = 4 for fps in [1, 3, 4, 10]: video_clips = VideoClips(video_list, num_frames, num_frames, fps) for i in range(video_clips.num_clips()): video, audio, info, video_idx = video_clips.get_clip(i) assert video.shape[0] == num_frames assert info["video_fps"] == fps # TODO add tests checking that the content is right def test_compute_clips_for_video(self): video_pts = torch.arange(30) # case 1: single clip num_frames = 13 orig_fps = 30 duration = float(len(video_pts)) / orig_fps new_fps = 13 clips, idxs = VideoClips.compute_clips_for_video(video_pts, num_frames, num_frames, orig_fps, new_fps) resampled_idxs = VideoClips._resample_video_idx(int(duration * new_fps), orig_fps, new_fps) assert len(clips) == 1 assert_equal(clips, idxs) assert_equal(idxs[0], resampled_idxs) # case 2: all frames appear only once num_frames = 4 orig_fps = 30 duration = float(len(video_pts)) / orig_fps new_fps = 12 clips, idxs = VideoClips.compute_clips_for_video(video_pts, num_frames, num_frames, orig_fps, new_fps) resampled_idxs = VideoClips._resample_video_idx(int(duration * new_fps), orig_fps, new_fps) assert len(clips) == 3 assert_equal(clips, idxs) assert_equal(idxs.flatten(), resampled_idxs) # case 3: frames aren't enough for a clip num_frames = 32 orig_fps = 30 new_fps = 13 with pytest.warns(UserWarning): clips, idxs = VideoClips.compute_clips_for_video(video_pts, num_frames, num_frames, orig_fps, new_fps) assert len(clips) == 0 assert len(idxs) == 0 if __name__ == "__main__": pytest.main([__file__]) vision-0.19.1/test/test_datasets_video_utils_opt.py000066400000000000000000000005441466211133600226070ustar00rootroot00000000000000import unittest import test_datasets_video_utils from torchvision import set_video_backend # noqa: 401 # Disabling the video backend switching temporarily # set_video_backend('video_reader') if __name__ == "__main__": suite = unittest.TestLoader().loadTestsFromModule(test_datasets_video_utils) unittest.TextTestRunner(verbosity=1).run(suite) vision-0.19.1/test/test_extended_models.py000066400000000000000000000433221466211133600206530ustar00rootroot00000000000000import copy import os import pickle import pytest import test_models as TM import torch from common_extended_utils import get_file_size_mb, get_ops from torchvision import models from torchvision.models import get_model_weights, Weights, WeightsEnum from torchvision.models._utils import handle_legacy_interface from torchvision.models.detection.backbone_utils import mobilenet_backbone, resnet_fpn_backbone run_if_test_with_extended = pytest.mark.skipif( os.getenv("PYTORCH_TEST_WITH_EXTENDED", "0") != "1", reason="Extended tests are disabled by default. Set PYTORCH_TEST_WITH_EXTENDED=1 to run them.", ) @pytest.mark.parametrize( "name, model_class", [ ("resnet50", models.ResNet), ("retinanet_resnet50_fpn_v2", models.detection.RetinaNet), ("raft_large", models.optical_flow.RAFT), ("quantized_resnet50", models.quantization.QuantizableResNet), ("lraspp_mobilenet_v3_large", models.segmentation.LRASPP), ("mvit_v1_b", models.video.MViT), ], ) def test_get_model(name, model_class): assert isinstance(models.get_model(name), model_class) @pytest.mark.parametrize( "name, model_fn", [ ("resnet50", models.resnet50), ("retinanet_resnet50_fpn_v2", models.detection.retinanet_resnet50_fpn_v2), ("raft_large", models.optical_flow.raft_large), ("quantized_resnet50", models.quantization.resnet50), ("lraspp_mobilenet_v3_large", models.segmentation.lraspp_mobilenet_v3_large), ("mvit_v1_b", models.video.mvit_v1_b), ], ) def test_get_model_builder(name, model_fn): assert models.get_model_builder(name) == model_fn @pytest.mark.parametrize( "name, weight", [ ("resnet50", models.ResNet50_Weights), ("retinanet_resnet50_fpn_v2", models.detection.RetinaNet_ResNet50_FPN_V2_Weights), ("raft_large", models.optical_flow.Raft_Large_Weights), ("quantized_resnet50", models.quantization.ResNet50_QuantizedWeights), ("lraspp_mobilenet_v3_large", models.segmentation.LRASPP_MobileNet_V3_Large_Weights), ("mvit_v1_b", models.video.MViT_V1_B_Weights), ], ) def test_get_model_weights(name, weight): assert models.get_model_weights(name) == weight @pytest.mark.parametrize("copy_fn", [copy.copy, copy.deepcopy]) @pytest.mark.parametrize( "name", [ "resnet50", "retinanet_resnet50_fpn_v2", "raft_large", "quantized_resnet50", "lraspp_mobilenet_v3_large", "mvit_v1_b", ], ) def test_weights_copyable(copy_fn, name): for weights in list(models.get_model_weights(name)): # It is somewhat surprising that (deep-)copying is an identity operation here, but this is the default behavior # of enums: https://docs.python.org/3/howto/enum.html#enum-members-aka-instances # Checking for equality, i.e. `==`, is sufficient (and even preferable) for our use case, should we need to drop # support for the identity operation in the future. assert copy_fn(weights) is weights @pytest.mark.parametrize( "name", [ "resnet50", "retinanet_resnet50_fpn_v2", "raft_large", "quantized_resnet50", "lraspp_mobilenet_v3_large", "mvit_v1_b", ], ) def test_weights_deserializable(name): for weights in list(models.get_model_weights(name)): # It is somewhat surprising that deserialization is an identity operation here, but this is the default behavior # of enums: https://docs.python.org/3/howto/enum.html#enum-members-aka-instances # Checking for equality, i.e. `==`, is sufficient (and even preferable) for our use case, should we need to drop # support for the identity operation in the future. assert pickle.loads(pickle.dumps(weights)) is weights def get_models_from_module(module): return [ v.__name__ for k, v in module.__dict__.items() if callable(v) and k[0].islower() and k[0] != "_" and k not in models._api.__all__ ] @pytest.mark.parametrize( "module", [models, models.detection, models.quantization, models.segmentation, models.video, models.optical_flow] ) def test_list_models(module): a = set(get_models_from_module(module)) b = set(x.replace("quantized_", "") for x in models.list_models(module)) assert len(b) > 0 assert a == b @pytest.mark.parametrize( "include_filters", [ None, [], (), "", "*resnet*", ["*alexnet*"], "*not-existing-model-for-test?", ["*resnet*", "*alexnet*"], ["*resnet*", "*alexnet*", "*not-existing-model-for-test?"], ("*resnet*", "*alexnet*"), set(["*resnet*", "*alexnet*"]), ], ) @pytest.mark.parametrize( "exclude_filters", [ None, [], (), "", "*resnet*", ["*alexnet*"], ["*not-existing-model-for-test?"], ["resnet34", "*not-existing-model-for-test?"], ["resnet34", "*resnet1*"], ("resnet34", "*resnet1*"), set(["resnet34", "*resnet1*"]), ], ) def test_list_models_filters(include_filters, exclude_filters): actual = set(models.list_models(models, include=include_filters, exclude=exclude_filters)) classification_models = set(get_models_from_module(models)) if isinstance(include_filters, str): include_filters = [include_filters] if isinstance(exclude_filters, str): exclude_filters = [exclude_filters] if include_filters: expected = set() for include_f in include_filters: include_f = include_f.strip("*?") expected = expected | set(x for x in classification_models if include_f in x) else: expected = classification_models if exclude_filters: for exclude_f in exclude_filters: exclude_f = exclude_f.strip("*?") if exclude_f != "": a_exclude = set(x for x in classification_models if exclude_f in x) expected = expected - a_exclude assert expected == actual @pytest.mark.parametrize( "name, weight", [ ("ResNet50_Weights.IMAGENET1K_V1", models.ResNet50_Weights.IMAGENET1K_V1), ("ResNet50_Weights.DEFAULT", models.ResNet50_Weights.IMAGENET1K_V2), ( "ResNet50_QuantizedWeights.DEFAULT", models.quantization.ResNet50_QuantizedWeights.IMAGENET1K_FBGEMM_V2, ), ( "ResNet50_QuantizedWeights.IMAGENET1K_FBGEMM_V1", models.quantization.ResNet50_QuantizedWeights.IMAGENET1K_FBGEMM_V1, ), ], ) def test_get_weight(name, weight): assert models.get_weight(name) == weight @pytest.mark.parametrize( "model_fn", TM.list_model_fns(models) + TM.list_model_fns(models.detection) + TM.list_model_fns(models.quantization) + TM.list_model_fns(models.segmentation) + TM.list_model_fns(models.video) + TM.list_model_fns(models.optical_flow), ) def test_naming_conventions(model_fn): weights_enum = get_model_weights(model_fn) assert weights_enum is not None assert len(weights_enum) == 0 or hasattr(weights_enum, "DEFAULT") detection_models_input_dims = { "fasterrcnn_mobilenet_v3_large_320_fpn": (320, 320), "fasterrcnn_mobilenet_v3_large_fpn": (800, 800), "fasterrcnn_resnet50_fpn": (800, 800), "fasterrcnn_resnet50_fpn_v2": (800, 800), "fcos_resnet50_fpn": (800, 800), "keypointrcnn_resnet50_fpn": (1333, 1333), "maskrcnn_resnet50_fpn": (800, 800), "maskrcnn_resnet50_fpn_v2": (800, 800), "retinanet_resnet50_fpn": (800, 800), "retinanet_resnet50_fpn_v2": (800, 800), "ssd300_vgg16": (300, 300), "ssdlite320_mobilenet_v3_large": (320, 320), } @pytest.mark.parametrize( "model_fn", TM.list_model_fns(models) + TM.list_model_fns(models.detection) + TM.list_model_fns(models.quantization) + TM.list_model_fns(models.segmentation) + TM.list_model_fns(models.video) + TM.list_model_fns(models.optical_flow), ) @run_if_test_with_extended def test_schema_meta_validation(model_fn): if model_fn.__name__ == "maskrcnn_resnet50_fpn_v2": pytest.skip(reason="FIXME https://github.com/pytorch/vision/issues/7349") # list of all possible supported high-level fields for weights meta-data permitted_fields = { "backend", "categories", "keypoint_names", "license", "_metrics", "min_size", "min_temporal_size", "num_params", "recipe", "unquantized", "_docs", "_ops", "_file_size", } # mandatory fields for each computer vision task classification_fields = {"categories", ("_metrics", "ImageNet-1K", "acc@1"), ("_metrics", "ImageNet-1K", "acc@5")} defaults = { "all": {"_metrics", "min_size", "num_params", "recipe", "_docs", "_file_size", "_ops"}, "models": classification_fields, "detection": {"categories", ("_metrics", "COCO-val2017", "box_map")}, "quantization": classification_fields | {"backend", "unquantized"}, "segmentation": { "categories", ("_metrics", "COCO-val2017-VOC-labels", "miou"), ("_metrics", "COCO-val2017-VOC-labels", "pixel_acc"), }, "video": {"categories", ("_metrics", "Kinetics-400", "acc@1"), ("_metrics", "Kinetics-400", "acc@5")}, "optical_flow": set(), } model_name = model_fn.__name__ module_name = model_fn.__module__.split(".")[-2] expected_fields = defaults["all"] | defaults[module_name] weights_enum = get_model_weights(model_fn) if len(weights_enum) == 0: pytest.skip(f"Model '{model_name}' doesn't have any pre-trained weights.") problematic_weights = {} incorrect_meta = [] bad_names = [] for w in weights_enum: actual_fields = set(w.meta.keys()) actual_fields |= set( ("_metrics", dataset, metric_key) for dataset in w.meta.get("_metrics", {}).keys() for metric_key in w.meta.get("_metrics", {}).get(dataset, {}).keys() ) missing_fields = expected_fields - actual_fields unsupported_fields = set(w.meta.keys()) - permitted_fields if missing_fields or unsupported_fields: problematic_weights[w] = {"missing": missing_fields, "unsupported": unsupported_fields} if w == weights_enum.DEFAULT or any(w.meta[k] != weights_enum.DEFAULT.meta[k] for k in ["num_params", "_ops"]): if module_name == "quantization": # parameters() count doesn't work well with quantization, so we check against the non-quantized unquantized_w = w.meta.get("unquantized") if unquantized_w is not None: if w.meta.get("num_params") != unquantized_w.meta.get("num_params"): incorrect_meta.append((w, "num_params")) # the methodology for quantized ops count doesn't work as well, so we take unquantized FLOPs # instead if w.meta["_ops"] != unquantized_w.meta.get("_ops"): incorrect_meta.append((w, "_ops")) else: # loading the model and using it for parameter and ops verification model = model_fn(weights=w) if w.meta.get("num_params") != sum(p.numel() for p in model.parameters()): incorrect_meta.append((w, "num_params")) kwargs = {} if model_name in detection_models_input_dims: # detection models have non default height and width height, width = detection_models_input_dims[model_name] kwargs = {"height": height, "width": width} if not model_fn.__name__.startswith("vit"): # FIXME: https://github.com/pytorch/vision/issues/7871 calculated_ops = get_ops(model=model, weight=w, **kwargs) if calculated_ops != w.meta["_ops"]: incorrect_meta.append((w, "_ops")) if not w.name.isupper(): bad_names.append(w) if get_file_size_mb(w) != w.meta.get("_file_size"): incorrect_meta.append((w, "_file_size")) assert not problematic_weights assert not incorrect_meta assert not bad_names @pytest.mark.parametrize( "model_fn", TM.list_model_fns(models) + TM.list_model_fns(models.detection) + TM.list_model_fns(models.quantization) + TM.list_model_fns(models.segmentation) + TM.list_model_fns(models.video) + TM.list_model_fns(models.optical_flow), ) @run_if_test_with_extended def test_transforms_jit(model_fn): model_name = model_fn.__name__ weights_enum = get_model_weights(model_fn) if len(weights_enum) == 0: pytest.skip(f"Model '{model_name}' doesn't have any pre-trained weights.") defaults = { "models": { "input_shape": (1, 3, 224, 224), }, "detection": { "input_shape": (3, 300, 300), }, "quantization": { "input_shape": (1, 3, 224, 224), }, "segmentation": { "input_shape": (1, 3, 520, 520), }, "video": { "input_shape": (1, 3, 4, 112, 112), }, "optical_flow": { "input_shape": (1, 3, 128, 128), }, } module_name = model_fn.__module__.split(".")[-2] kwargs = {**defaults[module_name], **TM._model_params.get(model_name, {})} input_shape = kwargs.pop("input_shape") x = torch.rand(input_shape) if module_name == "optical_flow": args = (x, x) else: if module_name == "video": x = x.permute(0, 2, 1, 3, 4) args = (x,) problematic_weights = [] for w in weights_enum: transforms = w.transforms() try: TM._check_jit_scriptable(transforms, args) except Exception: problematic_weights.append(w) assert not problematic_weights # With this filter, every unexpected warning will be turned into an error @pytest.mark.filterwarnings("error") class TestHandleLegacyInterface: class ModelWeights(WeightsEnum): Sentinel = Weights(url="https://pytorch.org", transforms=lambda x: x, meta=dict()) @pytest.mark.parametrize( "kwargs", [ pytest.param(dict(), id="empty"), pytest.param(dict(weights=None), id="None"), pytest.param(dict(weights=ModelWeights.Sentinel), id="Weights"), ], ) def test_no_warn(self, kwargs): @handle_legacy_interface(weights=("pretrained", self.ModelWeights.Sentinel)) def builder(*, weights=None): pass builder(**kwargs) @pytest.mark.parametrize("pretrained", (True, False)) def test_pretrained_pos(self, pretrained): @handle_legacy_interface(weights=("pretrained", self.ModelWeights.Sentinel)) def builder(*, weights=None): pass with pytest.warns(UserWarning, match="positional"): builder(pretrained) @pytest.mark.parametrize("pretrained", (True, False)) def test_pretrained_kw(self, pretrained): @handle_legacy_interface(weights=("pretrained", self.ModelWeights.Sentinel)) def builder(*, weights=None): pass with pytest.warns(UserWarning, match="deprecated"): builder(pretrained) @pytest.mark.parametrize("pretrained", (True, False)) @pytest.mark.parametrize("positional", (True, False)) def test_equivalent_behavior_weights(self, pretrained, positional): @handle_legacy_interface(weights=("pretrained", self.ModelWeights.Sentinel)) def builder(*, weights=None): pass args, kwargs = ((pretrained,), dict()) if positional else ((), dict(pretrained=pretrained)) with pytest.warns(UserWarning, match=f"weights={self.ModelWeights.Sentinel if pretrained else None}"): builder(*args, **kwargs) def test_multi_params(self): weights_params = ("weights", "weights_other") pretrained_params = [param.replace("weights", "pretrained") for param in weights_params] @handle_legacy_interface( **{ weights_param: (pretrained_param, self.ModelWeights.Sentinel) for weights_param, pretrained_param in zip(weights_params, pretrained_params) } ) def builder(*, weights=None, weights_other=None): pass for pretrained_param in pretrained_params: with pytest.warns(UserWarning, match="deprecated"): builder(**{pretrained_param: True}) def test_default_callable(self): @handle_legacy_interface( weights=( "pretrained", lambda kwargs: self.ModelWeights.Sentinel if kwargs["flag"] else None, ) ) def builder(*, weights=None, flag): pass with pytest.warns(UserWarning, match="deprecated"): builder(pretrained=True, flag=True) with pytest.raises(ValueError, match="weights"): builder(pretrained=True, flag=False) @pytest.mark.parametrize( "model_fn", [fn for fn in TM.list_model_fns(models) if fn.__name__ not in {"vit_h_14", "regnet_y_128gf"}] + TM.list_model_fns(models.detection) + TM.list_model_fns(models.quantization) + TM.list_model_fns(models.segmentation) + TM.list_model_fns(models.video) + TM.list_model_fns(models.optical_flow) + [ lambda pretrained: resnet_fpn_backbone(backbone_name="resnet50", pretrained=pretrained), lambda pretrained: mobilenet_backbone(backbone_name="mobilenet_v2", fpn=False, pretrained=pretrained), ], ) @run_if_test_with_extended def test_pretrained_deprecation(self, model_fn): with pytest.warns(UserWarning, match="deprecated"): model_fn(pretrained=True) vision-0.19.1/test/test_functional_tensor.py000066400000000000000000001401231466211133600212410ustar00rootroot00000000000000import colorsys import itertools import math import os from functools import partial from typing import Sequence import numpy as np import PIL.Image import pytest import torch import torchvision.transforms as T import torchvision.transforms._functional_pil as F_pil import torchvision.transforms._functional_tensor as F_t import torchvision.transforms.functional as F from common_utils import ( _assert_approx_equal_tensor_to_pil, _assert_equal_tensor_to_pil, _create_data, _create_data_batch, _test_fn_on_batch, assert_equal, cpu_and_cuda, needs_cuda, ) from torchvision.transforms import InterpolationMode NEAREST, NEAREST_EXACT, BILINEAR, BICUBIC = ( InterpolationMode.NEAREST, InterpolationMode.NEAREST_EXACT, InterpolationMode.BILINEAR, InterpolationMode.BICUBIC, ) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("fn", [F.get_image_size, F.get_image_num_channels, F.get_dimensions]) def test_image_sizes(device, fn): script_F = torch.jit.script(fn) img_tensor, pil_img = _create_data(16, 18, 3, device=device) value_img = fn(img_tensor) value_pil_img = fn(pil_img) assert value_img == value_pil_img value_img_script = script_F(img_tensor) assert value_img == value_img_script batch_tensors = _create_data_batch(16, 18, 3, num_samples=4, device=device) value_img_batch = fn(batch_tensors) assert value_img == value_img_batch @needs_cuda def test_scale_channel(): """Make sure that _scale_channel gives the same results on CPU and GPU as histc or bincount are used depending on the device. """ # TODO: when # https://github.com/pytorch/pytorch/issues/53194 is fixed, # only use bincount and remove that test. size = (1_000,) img_chan = torch.randint(0, 256, size=size).to("cpu") scaled_cpu = F_t._scale_channel(img_chan) scaled_cuda = F_t._scale_channel(img_chan.to("cuda")) assert_equal(scaled_cpu, scaled_cuda.to("cpu")) class TestRotate: ALL_DTYPES = [None, torch.float32, torch.float64, torch.float16] scripted_rotate = torch.jit.script(F.rotate) IMG_W = 26 @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("height, width", [(7, 33), (26, IMG_W), (32, IMG_W)]) @pytest.mark.parametrize( "center", [ None, (int(IMG_W * 0.3), int(IMG_W * 0.4)), [int(IMG_W * 0.5), int(IMG_W * 0.6)], ], ) @pytest.mark.parametrize("dt", ALL_DTYPES) @pytest.mark.parametrize("angle", range(-180, 180, 34)) @pytest.mark.parametrize("expand", [True, False]) @pytest.mark.parametrize( "fill", [ None, [0, 0, 0], (1, 2, 3), [255, 255, 255], [ 1, ], (2.0,), ], ) @pytest.mark.parametrize("fn", [F.rotate, scripted_rotate]) def test_rotate(self, device, height, width, center, dt, angle, expand, fill, fn): tensor, pil_img = _create_data(height, width, device=device) if dt == torch.float16 and torch.device(device).type == "cpu": # skip float16 on CPU case return if dt is not None: tensor = tensor.to(dtype=dt) f_pil = int(fill[0]) if fill is not None and len(fill) == 1 else fill out_pil_img = F.rotate(pil_img, angle=angle, interpolation=NEAREST, expand=expand, center=center, fill=f_pil) out_pil_tensor = torch.from_numpy(np.array(out_pil_img).transpose((2, 0, 1))) out_tensor = fn(tensor, angle=angle, interpolation=NEAREST, expand=expand, center=center, fill=fill).cpu() if out_tensor.dtype != torch.uint8: out_tensor = out_tensor.to(torch.uint8) assert ( out_tensor.shape == out_pil_tensor.shape ), f"{(height, width, NEAREST, dt, angle, expand, center)}: {out_tensor.shape} vs {out_pil_tensor.shape}" num_diff_pixels = (out_tensor != out_pil_tensor).sum().item() / 3.0 ratio_diff_pixels = num_diff_pixels / out_tensor.shape[-1] / out_tensor.shape[-2] # Tolerance : less than 3% of different pixels assert ratio_diff_pixels < 0.03, ( f"{(height, width, NEAREST, dt, angle, expand, center, fill)}: " f"{ratio_diff_pixels}\n{out_tensor[0, :7, :7]} vs \n" f"{out_pil_tensor[0, :7, :7]}" ) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dt", ALL_DTYPES) def test_rotate_batch(self, device, dt): if dt == torch.float16 and device == "cpu": # skip float16 on CPU case return batch_tensors = _create_data_batch(26, 36, num_samples=4, device=device) if dt is not None: batch_tensors = batch_tensors.to(dtype=dt) center = (20, 22) _test_fn_on_batch(batch_tensors, F.rotate, angle=32, interpolation=NEAREST, expand=True, center=center) def test_rotate_interpolation_type(self): tensor, _ = _create_data(26, 26) res1 = F.rotate(tensor, 45, interpolation=PIL.Image.BILINEAR) res2 = F.rotate(tensor, 45, interpolation=BILINEAR) assert_equal(res1, res2) class TestAffine: ALL_DTYPES = [None, torch.float32, torch.float64, torch.float16] scripted_affine = torch.jit.script(F.affine) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("height, width", [(26, 26), (32, 26)]) @pytest.mark.parametrize("dt", ALL_DTYPES) def test_identity_map(self, device, height, width, dt): # Tests on square and rectangular images tensor, pil_img = _create_data(height, width, device=device) if dt == torch.float16 and device == "cpu": # skip float16 on CPU case return if dt is not None: tensor = tensor.to(dtype=dt) # 1) identity map out_tensor = F.affine(tensor, angle=0, translate=[0, 0], scale=1.0, shear=[0.0, 0.0], interpolation=NEAREST) assert_equal(tensor, out_tensor, msg=f"{out_tensor[0, :5, :5]} vs {tensor[0, :5, :5]}") out_tensor = self.scripted_affine( tensor, angle=0, translate=[0, 0], scale=1.0, shear=[0.0, 0.0], interpolation=NEAREST ) assert_equal(tensor, out_tensor, msg=f"{out_tensor[0, :5, :5]} vs {tensor[0, :5, :5]}") @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("height, width", [(26, 26)]) @pytest.mark.parametrize("dt", ALL_DTYPES) @pytest.mark.parametrize( "angle, config", [ (90, {"k": 1, "dims": (-1, -2)}), (45, None), (30, None), (-30, None), (-45, None), (-90, {"k": -1, "dims": (-1, -2)}), (180, {"k": 2, "dims": (-1, -2)}), ], ) @pytest.mark.parametrize("fn", [F.affine, scripted_affine]) def test_square_rotations(self, device, height, width, dt, angle, config, fn): # 2) Test rotation tensor, pil_img = _create_data(height, width, device=device) if dt == torch.float16 and device == "cpu": # skip float16 on CPU case return if dt is not None: tensor = tensor.to(dtype=dt) out_pil_img = F.affine( pil_img, angle=angle, translate=[0, 0], scale=1.0, shear=[0.0, 0.0], interpolation=NEAREST ) out_pil_tensor = torch.from_numpy(np.array(out_pil_img).transpose((2, 0, 1))).to(device) out_tensor = fn(tensor, angle=angle, translate=[0, 0], scale=1.0, shear=[0.0, 0.0], interpolation=NEAREST) if config is not None: assert_equal(torch.rot90(tensor, **config), out_tensor) if out_tensor.dtype != torch.uint8: out_tensor = out_tensor.to(torch.uint8) num_diff_pixels = (out_tensor != out_pil_tensor).sum().item() / 3.0 ratio_diff_pixels = num_diff_pixels / out_tensor.shape[-1] / out_tensor.shape[-2] # Tolerance : less than 6% of different pixels assert ratio_diff_pixels < 0.06 @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("height, width", [(32, 26)]) @pytest.mark.parametrize("dt", ALL_DTYPES) @pytest.mark.parametrize("angle", [90, 45, 15, -30, -60, -120]) @pytest.mark.parametrize("fn", [F.affine, scripted_affine]) @pytest.mark.parametrize("center", [None, [0, 0]]) def test_rect_rotations(self, device, height, width, dt, angle, fn, center): # Tests on rectangular images tensor, pil_img = _create_data(height, width, device=device) if dt == torch.float16 and device == "cpu": # skip float16 on CPU case return if dt is not None: tensor = tensor.to(dtype=dt) out_pil_img = F.affine( pil_img, angle=angle, translate=[0, 0], scale=1.0, shear=[0.0, 0.0], interpolation=NEAREST, center=center ) out_pil_tensor = torch.from_numpy(np.array(out_pil_img).transpose((2, 0, 1))) out_tensor = fn( tensor, angle=angle, translate=[0, 0], scale=1.0, shear=[0.0, 0.0], interpolation=NEAREST, center=center ).cpu() if out_tensor.dtype != torch.uint8: out_tensor = out_tensor.to(torch.uint8) num_diff_pixels = (out_tensor != out_pil_tensor).sum().item() / 3.0 ratio_diff_pixels = num_diff_pixels / out_tensor.shape[-1] / out_tensor.shape[-2] # Tolerance : less than 3% of different pixels assert ratio_diff_pixels < 0.03 @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("height, width", [(26, 26), (32, 26)]) @pytest.mark.parametrize("dt", ALL_DTYPES) @pytest.mark.parametrize("t", [[10, 12], (-12, -13)]) @pytest.mark.parametrize("fn", [F.affine, scripted_affine]) def test_translations(self, device, height, width, dt, t, fn): # 3) Test translation tensor, pil_img = _create_data(height, width, device=device) if dt == torch.float16 and device == "cpu": # skip float16 on CPU case return if dt is not None: tensor = tensor.to(dtype=dt) out_pil_img = F.affine(pil_img, angle=0, translate=t, scale=1.0, shear=[0.0, 0.0], interpolation=NEAREST) out_tensor = fn(tensor, angle=0, translate=t, scale=1.0, shear=[0.0, 0.0], interpolation=NEAREST) if out_tensor.dtype != torch.uint8: out_tensor = out_tensor.to(torch.uint8) _assert_equal_tensor_to_pil(out_tensor, out_pil_img) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("height, width", [(26, 26), (32, 26)]) @pytest.mark.parametrize("dt", ALL_DTYPES) @pytest.mark.parametrize( "a, t, s, sh, f", [ (45.5, [5, 6], 1.0, [0.0, 0.0], None), (33, (5, -4), 1.0, [0.0, 0.0], [0, 0, 0]), (45, [-5, 4], 1.2, [0.0, 0.0], (1, 2, 3)), (33, (-4, -8), 2.0, [0.0, 0.0], [255, 255, 255]), (85, (10, -10), 0.7, [0.0, 0.0], [1]), (0, [0, 0], 1.0, [35.0], (2.0,)), (-25, [0, 0], 1.2, [0.0, 15.0], None), (-45, [-10, 0], 0.7, [2.0, 5.0], None), (-45, [-10, -10], 1.2, [4.0, 5.0], None), (-90, [0, 0], 1.0, [0.0, 0.0], None), ], ) @pytest.mark.parametrize("fn", [F.affine, scripted_affine]) def test_all_ops(self, device, height, width, dt, a, t, s, sh, f, fn): # 4) Test rotation + translation + scale + shear tensor, pil_img = _create_data(height, width, device=device) if dt == torch.float16 and device == "cpu": # skip float16 on CPU case return if dt is not None: tensor = tensor.to(dtype=dt) f_pil = int(f[0]) if f is not None and len(f) == 1 else f out_pil_img = F.affine(pil_img, angle=a, translate=t, scale=s, shear=sh, interpolation=NEAREST, fill=f_pil) out_pil_tensor = torch.from_numpy(np.array(out_pil_img).transpose((2, 0, 1))) out_tensor = fn(tensor, angle=a, translate=t, scale=s, shear=sh, interpolation=NEAREST, fill=f).cpu() if out_tensor.dtype != torch.uint8: out_tensor = out_tensor.to(torch.uint8) num_diff_pixels = (out_tensor != out_pil_tensor).sum().item() / 3.0 ratio_diff_pixels = num_diff_pixels / out_tensor.shape[-1] / out_tensor.shape[-2] # Tolerance : less than 5% (cpu), 6% (cuda) of different pixels tol = 0.06 if device == "cuda" else 0.05 assert ratio_diff_pixels < tol @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dt", ALL_DTYPES) def test_batches(self, device, dt): if dt == torch.float16 and device == "cpu": # skip float16 on CPU case return batch_tensors = _create_data_batch(26, 36, num_samples=4, device=device) if dt is not None: batch_tensors = batch_tensors.to(dtype=dt) _test_fn_on_batch(batch_tensors, F.affine, angle=-43, translate=[-3, 4], scale=1.2, shear=[4.0, 5.0]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_interpolation_type(self, device): tensor, pil_img = _create_data(26, 26, device=device) res1 = F.affine(tensor, 45, translate=[0, 0], scale=1.0, shear=[0.0, 0.0], interpolation=PIL.Image.BILINEAR) res2 = F.affine(tensor, 45, translate=[0, 0], scale=1.0, shear=[0.0, 0.0], interpolation=BILINEAR) assert_equal(res1, res2) def _get_data_dims_and_points_for_perspective(): # Ideally we would parametrize independently over data dims and points, but # we want to tests on some points that also depend on the data dims. # Pytest doesn't support covariant parametrization, so we do it somewhat manually here. data_dims = [(26, 34), (26, 26)] points = [ [[[0, 0], [33, 0], [33, 25], [0, 25]], [[3, 2], [32, 3], [30, 24], [2, 25]]], [[[3, 2], [32, 3], [30, 24], [2, 25]], [[0, 0], [33, 0], [33, 25], [0, 25]]], [[[3, 2], [32, 3], [30, 24], [2, 25]], [[5, 5], [30, 3], [33, 19], [4, 25]]], ] dims_and_points = list(itertools.product(data_dims, points)) # up to here, we could just have used 2 @parametrized. # Down below is the covarariant part as the points depend on the data dims. n = 10 for dim in data_dims: points += [(dim, T.RandomPerspective.get_params(dim[1], dim[0], i / n)) for i in range(n)] return dims_and_points @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dims_and_points", _get_data_dims_and_points_for_perspective()) @pytest.mark.parametrize("dt", [None, torch.float32, torch.float64, torch.float16]) @pytest.mark.parametrize("fill", (None, [0, 0, 0], [1, 2, 3], [255, 255, 255], [1], (2.0,))) @pytest.mark.parametrize("fn", [F.perspective, torch.jit.script(F.perspective)]) def test_perspective_pil_vs_tensor(device, dims_and_points, dt, fill, fn): if dt == torch.float16 and device == "cpu": # skip float16 on CPU case return data_dims, (spoints, epoints) = dims_and_points tensor, pil_img = _create_data(*data_dims, device=device) if dt is not None: tensor = tensor.to(dtype=dt) interpolation = NEAREST fill_pil = int(fill[0]) if fill is not None and len(fill) == 1 else fill out_pil_img = F.perspective( pil_img, startpoints=spoints, endpoints=epoints, interpolation=interpolation, fill=fill_pil ) out_pil_tensor = torch.from_numpy(np.array(out_pil_img).transpose((2, 0, 1))) out_tensor = fn(tensor, startpoints=spoints, endpoints=epoints, interpolation=interpolation, fill=fill).cpu() if out_tensor.dtype != torch.uint8: out_tensor = out_tensor.to(torch.uint8) num_diff_pixels = (out_tensor != out_pil_tensor).sum().item() / 3.0 ratio_diff_pixels = num_diff_pixels / out_tensor.shape[-1] / out_tensor.shape[-2] # Tolerance : less than 5% of different pixels assert ratio_diff_pixels < 0.05 @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dims_and_points", _get_data_dims_and_points_for_perspective()) @pytest.mark.parametrize("dt", [None, torch.float32, torch.float64, torch.float16]) def test_perspective_batch(device, dims_and_points, dt): if dt == torch.float16 and device == "cpu": # skip float16 on CPU case return data_dims, (spoints, epoints) = dims_and_points batch_tensors = _create_data_batch(*data_dims, num_samples=4, device=device) if dt is not None: batch_tensors = batch_tensors.to(dtype=dt) # Ignore the equivalence between scripted and regular function on float16 cuda. The pixels at # the border may be entirely different due to small rounding errors. scripted_fn_atol = -1 if (dt == torch.float16 and device == "cuda") else 1e-8 _test_fn_on_batch( batch_tensors, F.perspective, scripted_fn_atol=scripted_fn_atol, startpoints=spoints, endpoints=epoints, interpolation=NEAREST, ) def test_perspective_interpolation_type(): spoints = [[0, 0], [33, 0], [33, 25], [0, 25]] epoints = [[3, 2], [32, 3], [30, 24], [2, 25]] tensor = torch.randint(0, 256, (3, 26, 26)) res1 = F.perspective(tensor, startpoints=spoints, endpoints=epoints, interpolation=PIL.Image.BILINEAR) res2 = F.perspective(tensor, startpoints=spoints, endpoints=epoints, interpolation=BILINEAR) assert_equal(res1, res2) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dt", [None, torch.float32, torch.float64, torch.float16]) @pytest.mark.parametrize("size", [32, 26, [32], [32, 32], (32, 32), [26, 35]]) @pytest.mark.parametrize("max_size", [None, 34, 40, 1000]) @pytest.mark.parametrize("interpolation", [BILINEAR, BICUBIC, NEAREST, NEAREST_EXACT]) def test_resize(device, dt, size, max_size, interpolation): if dt == torch.float16 and device == "cpu": # skip float16 on CPU case return if max_size is not None and isinstance(size, Sequence) and len(size) != 1: return # unsupported torch.manual_seed(12) script_fn = torch.jit.script(F.resize) tensor, pil_img = _create_data(26, 36, device=device) batch_tensors = _create_data_batch(16, 18, num_samples=4, device=device) if dt is not None: # This is a trivial cast to float of uint8 data to test all cases tensor = tensor.to(dt) batch_tensors = batch_tensors.to(dt) resized_tensor = F.resize(tensor, size=size, interpolation=interpolation, max_size=max_size, antialias=True) resized_pil_img = F.resize(pil_img, size=size, interpolation=interpolation, max_size=max_size, antialias=True) assert resized_tensor.size()[1:] == resized_pil_img.size[::-1] if interpolation != NEAREST: # We can not check values if mode = NEAREST, as results are different # E.g. resized_tensor = [[a, a, b, c, d, d, e, ...]] # E.g. resized_pil_img = [[a, b, c, c, d, e, f, ...]] resized_tensor_f = resized_tensor # we need to cast to uint8 to compare with PIL image if resized_tensor_f.dtype == torch.uint8: resized_tensor_f = resized_tensor_f.to(torch.float) # Pay attention to high tolerance for MAE _assert_approx_equal_tensor_to_pil(resized_tensor_f, resized_pil_img, tol=3.0) if isinstance(size, int): script_size = [size] else: script_size = size resize_result = script_fn(tensor, size=script_size, interpolation=interpolation, max_size=max_size, antialias=True) assert_equal(resized_tensor, resize_result) _test_fn_on_batch( batch_tensors, F.resize, size=script_size, interpolation=interpolation, max_size=max_size, antialias=True ) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_resize_asserts(device): tensor, pil_img = _create_data(26, 36, device=device) res1 = F.resize(tensor, size=32, interpolation=PIL.Image.BILINEAR) res2 = F.resize(tensor, size=32, interpolation=BILINEAR) assert_equal(res1, res2) for img in (tensor, pil_img): exp_msg = "max_size should only be passed if size specifies the length of the smaller edge" with pytest.raises(ValueError, match=exp_msg): F.resize(img, size=(32, 34), max_size=35) with pytest.raises(ValueError, match="max_size = 32 must be strictly greater"): F.resize(img, size=32, max_size=32) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dt", [None, torch.float32, torch.float64, torch.float16]) @pytest.mark.parametrize("size", [[96, 72], [96, 420], [420, 72]]) @pytest.mark.parametrize("interpolation", [BILINEAR, BICUBIC]) def test_resize_antialias(device, dt, size, interpolation): if dt == torch.float16 and device == "cpu": # skip float16 on CPU case return torch.manual_seed(12) script_fn = torch.jit.script(F.resize) tensor, pil_img = _create_data(320, 290, device=device) if dt is not None: # This is a trivial cast to float of uint8 data to test all cases tensor = tensor.to(dt) resized_tensor = F.resize(tensor, size=size, interpolation=interpolation, antialias=True) resized_pil_img = F.resize(pil_img, size=size, interpolation=interpolation, antialias=True) assert resized_tensor.size()[1:] == resized_pil_img.size[::-1] resized_tensor_f = resized_tensor # we need to cast to uint8 to compare with PIL image if resized_tensor_f.dtype == torch.uint8: resized_tensor_f = resized_tensor_f.to(torch.float) _assert_approx_equal_tensor_to_pil(resized_tensor_f, resized_pil_img, tol=0.5, msg=f"{size}, {interpolation}, {dt}") accepted_tol = 1.0 + 1e-5 if interpolation == BICUBIC: # this overall mean value to make the tests pass # High value is mostly required for test cases with # downsampling and upsampling where we can not exactly # match PIL implementation. accepted_tol = 15.0 _assert_approx_equal_tensor_to_pil( resized_tensor_f, resized_pil_img, tol=accepted_tol, agg_method="max", msg=f"{size}, {interpolation}, {dt}" ) if isinstance(size, int): script_size = [ size, ] else: script_size = size resize_result = script_fn(tensor, size=script_size, interpolation=interpolation, antialias=True) assert_equal(resized_tensor, resize_result) def check_functional_vs_PIL_vs_scripted( fn, fn_pil, fn_t, config, device, dtype, channels=3, tol=2.0 + 1e-10, agg_method="max" ): script_fn = torch.jit.script(fn) torch.manual_seed(15) tensor, pil_img = _create_data(26, 34, channels=channels, device=device) batch_tensors = _create_data_batch(16, 18, num_samples=4, channels=channels, device=device) if dtype is not None: tensor = F.convert_image_dtype(tensor, dtype) batch_tensors = F.convert_image_dtype(batch_tensors, dtype) out_fn_t = fn_t(tensor, **config) out_pil = fn_pil(pil_img, **config) out_scripted = script_fn(tensor, **config) assert out_fn_t.dtype == out_scripted.dtype assert out_fn_t.size()[1:] == out_pil.size[::-1] rbg_tensor = out_fn_t if out_fn_t.dtype != torch.uint8: rbg_tensor = F.convert_image_dtype(out_fn_t, torch.uint8) # Check that max difference does not exceed 2 in [0, 255] range # Exact matching is not possible due to incompatibility convert_image_dtype and PIL results _assert_approx_equal_tensor_to_pil(rbg_tensor.float(), out_pil, tol=tol, agg_method=agg_method) atol = 1e-6 if out_fn_t.dtype == torch.uint8 and "cuda" in torch.device(device).type: atol = 1.0 assert out_fn_t.allclose(out_scripted, atol=atol) # FIXME: fn will be scripted again in _test_fn_on_batch. We could avoid that. _test_fn_on_batch(batch_tensors, fn, scripted_fn_atol=atol, **config) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dtype", (None, torch.float32, torch.float64)) @pytest.mark.parametrize("config", [{"brightness_factor": f} for f in (0.1, 0.5, 1.0, 1.34, 2.5)]) @pytest.mark.parametrize("channels", [1, 3]) def test_adjust_brightness(device, dtype, config, channels): check_functional_vs_PIL_vs_scripted( F.adjust_brightness, F_pil.adjust_brightness, F_t.adjust_brightness, config, device, dtype, channels, ) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dtype", (None, torch.float32, torch.float64)) @pytest.mark.parametrize("channels", [1, 3]) def test_invert(device, dtype, channels): check_functional_vs_PIL_vs_scripted( F.invert, F_pil.invert, F_t.invert, {}, device, dtype, channels, tol=1.0, agg_method="max" ) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("config", [{"bits": bits} for bits in range(0, 8)]) @pytest.mark.parametrize("channels", [1, 3]) def test_posterize(device, config, channels): check_functional_vs_PIL_vs_scripted( F.posterize, F_pil.posterize, F_t.posterize, config, device, dtype=None, channels=channels, tol=1.0, agg_method="max", ) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("config", [{"threshold": threshold} for threshold in [0, 64, 128, 192, 255]]) @pytest.mark.parametrize("channels", [1, 3]) def test_solarize1(device, config, channels): check_functional_vs_PIL_vs_scripted( F.solarize, F_pil.solarize, F_t.solarize, config, device, dtype=None, channels=channels, tol=1.0, agg_method="max", ) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dtype", (torch.float32, torch.float64)) @pytest.mark.parametrize("config", [{"threshold": threshold} for threshold in [0.0, 0.25, 0.5, 0.75, 1.0]]) @pytest.mark.parametrize("channels", [1, 3]) def test_solarize2(device, dtype, config, channels): check_functional_vs_PIL_vs_scripted( F.solarize, lambda img, threshold: F_pil.solarize(img, 255 * threshold), F_t.solarize, config, device, dtype, channels, tol=1.0, agg_method="max", ) @pytest.mark.parametrize( ("dtype", "threshold"), [ *[ (dtype, threshold) for dtype, threshold in itertools.product( [torch.float32, torch.float16], [0.0, 0.25, 0.5, 0.75, 1.0], ) ], *[(torch.uint8, threshold) for threshold in [0, 64, 128, 192, 255]], *[(torch.int64, threshold) for threshold in [0, 2**32, 2**63 - 1]], ], ) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_solarize_threshold_within_bound(threshold, dtype, device): make_img = torch.rand if dtype.is_floating_point else partial(torch.randint, 0, torch.iinfo(dtype).max) img = make_img((3, 12, 23), dtype=dtype, device=device) F_t.solarize(img, threshold) @pytest.mark.parametrize( ("dtype", "threshold"), [ (torch.float32, 1.5), (torch.float16, 1.5), (torch.uint8, 260), (torch.int64, 2**64), ], ) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_solarize_threshold_above_bound(threshold, dtype, device): make_img = torch.rand if dtype.is_floating_point else partial(torch.randint, 0, torch.iinfo(dtype).max) img = make_img((3, 12, 23), dtype=dtype, device=device) with pytest.raises(TypeError, match="Threshold should be less than bound of img."): F_t.solarize(img, threshold) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dtype", (None, torch.float32, torch.float64)) @pytest.mark.parametrize("config", [{"sharpness_factor": f} for f in [0.2, 0.5, 1.0, 1.5, 2.0]]) @pytest.mark.parametrize("channels", [1, 3]) def test_adjust_sharpness(device, dtype, config, channels): check_functional_vs_PIL_vs_scripted( F.adjust_sharpness, F_pil.adjust_sharpness, F_t.adjust_sharpness, config, device, dtype, channels, ) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dtype", (None, torch.float32, torch.float64)) @pytest.mark.parametrize("channels", [1, 3]) def test_autocontrast(device, dtype, channels): check_functional_vs_PIL_vs_scripted( F.autocontrast, F_pil.autocontrast, F_t.autocontrast, {}, device, dtype, channels, tol=1.0, agg_method="max" ) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dtype", (None, torch.float32, torch.float64)) @pytest.mark.parametrize("channels", [1, 3]) def test_autocontrast_equal_minmax(device, dtype, channels): a = _create_data_batch(32, 32, num_samples=1, channels=channels, device=device) a = a / 2.0 + 0.3 assert (F.autocontrast(a)[0] == F.autocontrast(a[0])).all() a[0, 0] = 0.7 assert (F.autocontrast(a)[0] == F.autocontrast(a[0])).all() @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("channels", [1, 3]) def test_equalize(device, channels): torch.use_deterministic_algorithms(False) check_functional_vs_PIL_vs_scripted( F.equalize, F_pil.equalize, F_t.equalize, {}, device, dtype=None, channels=channels, tol=1.0, agg_method="max", ) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dtype", (None, torch.float32, torch.float64)) @pytest.mark.parametrize("config", [{"contrast_factor": f} for f in [0.2, 0.5, 1.0, 1.5, 2.0]]) @pytest.mark.parametrize("channels", [1, 3]) def test_adjust_contrast(device, dtype, config, channels): check_functional_vs_PIL_vs_scripted( F.adjust_contrast, F_pil.adjust_contrast, F_t.adjust_contrast, config, device, dtype, channels ) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dtype", (None, torch.float32, torch.float64)) @pytest.mark.parametrize("config", [{"saturation_factor": f} for f in [0.5, 0.75, 1.0, 1.5, 2.0]]) @pytest.mark.parametrize("channels", [1, 3]) def test_adjust_saturation(device, dtype, config, channels): check_functional_vs_PIL_vs_scripted( F.adjust_saturation, F_pil.adjust_saturation, F_t.adjust_saturation, config, device, dtype, channels ) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dtype", (None, torch.float32, torch.float64)) @pytest.mark.parametrize("config", [{"hue_factor": f} for f in [-0.45, -0.25, 0.0, 0.25, 0.45]]) @pytest.mark.parametrize("channels", [1, 3]) def test_adjust_hue(device, dtype, config, channels): check_functional_vs_PIL_vs_scripted( F.adjust_hue, F_pil.adjust_hue, F_t.adjust_hue, config, device, dtype, channels, tol=16.1, agg_method="max" ) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dtype", (None, torch.float32, torch.float64)) @pytest.mark.parametrize("config", [{"gamma": g1, "gain": g2} for g1, g2 in zip([0.8, 1.0, 1.2], [0.7, 1.0, 1.3])]) @pytest.mark.parametrize("channels", [1, 3]) def test_adjust_gamma(device, dtype, config, channels): check_functional_vs_PIL_vs_scripted( F.adjust_gamma, F_pil.adjust_gamma, F_t.adjust_gamma, config, device, dtype, channels, ) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dt", [None, torch.float32, torch.float64, torch.float16]) @pytest.mark.parametrize("pad", [2, [3], [0, 3], (3, 3), [4, 2, 4, 3]]) @pytest.mark.parametrize( "config", [ {"padding_mode": "constant", "fill": 0}, {"padding_mode": "constant", "fill": 10}, {"padding_mode": "constant", "fill": 20.2}, {"padding_mode": "edge"}, {"padding_mode": "reflect"}, {"padding_mode": "symmetric"}, ], ) def test_pad(device, dt, pad, config): script_fn = torch.jit.script(F.pad) tensor, pil_img = _create_data(7, 8, device=device) batch_tensors = _create_data_batch(16, 18, num_samples=4, device=device) if dt == torch.float16 and device == "cpu": # skip float16 on CPU case return if dt is not None: # This is a trivial cast to float of uint8 data to test all cases tensor = tensor.to(dt) batch_tensors = batch_tensors.to(dt) pad_tensor = F_t.pad(tensor, pad, **config) pad_pil_img = F_pil.pad(pil_img, pad, **config) pad_tensor_8b = pad_tensor # we need to cast to uint8 to compare with PIL image if pad_tensor_8b.dtype != torch.uint8: pad_tensor_8b = pad_tensor_8b.to(torch.uint8) _assert_equal_tensor_to_pil(pad_tensor_8b, pad_pil_img, msg=f"{pad}, {config}") if isinstance(pad, int): script_pad = [ pad, ] else: script_pad = pad pad_tensor_script = script_fn(tensor, script_pad, **config) assert_equal(pad_tensor, pad_tensor_script, msg=f"{pad}, {config}") _test_fn_on_batch(batch_tensors, F.pad, padding=script_pad, **config) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("mode", [NEAREST, NEAREST_EXACT, BILINEAR, BICUBIC]) def test_resized_crop(device, mode): # test values of F.resized_crop in several cases: # 1) resize to the same size, crop to the same size => should be identity tensor, _ = _create_data(26, 36, device=device) out_tensor = F.resized_crop( tensor, top=0, left=0, height=26, width=36, size=[26, 36], interpolation=mode, antialias=True ) assert_equal(tensor, out_tensor, msg=f"{out_tensor[0, :5, :5]} vs {tensor[0, :5, :5]}") # 2) resize by half and crop a TL corner tensor, _ = _create_data(26, 36, device=device) out_tensor = F.resized_crop(tensor, top=0, left=0, height=20, width=30, size=[10, 15], interpolation=NEAREST) expected_out_tensor = tensor[:, :20:2, :30:2] assert_equal( expected_out_tensor, out_tensor, msg=f"{expected_out_tensor[0, :10, :10]} vs {out_tensor[0, :10, :10]}", ) batch_tensors = _create_data_batch(26, 36, num_samples=4, device=device) _test_fn_on_batch( batch_tensors, F.resized_crop, top=1, left=2, height=20, width=30, size=[10, 15], interpolation=NEAREST, ) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize( "func, args", [ (F_t.get_dimensions, ()), (F_t.get_image_size, ()), (F_t.get_image_num_channels, ()), (F_t.vflip, ()), (F_t.hflip, ()), (F_t.crop, (1, 2, 4, 5)), (F_t.adjust_brightness, (0.0,)), (F_t.adjust_contrast, (1.0,)), (F_t.adjust_hue, (-0.5,)), (F_t.adjust_saturation, (2.0,)), (F_t.pad, ([2], 2, "constant")), (F_t.resize, ([10, 11],)), (F_t.perspective, ([0.2])), (F_t.gaussian_blur, ((2, 2), (0.7, 0.5))), (F_t.invert, ()), (F_t.posterize, (0,)), (F_t.solarize, (0.3,)), (F_t.adjust_sharpness, (0.3,)), (F_t.autocontrast, ()), (F_t.equalize, ()), ], ) def test_assert_image_tensor(device, func, args): shape = (100,) tensor = torch.rand(*shape, dtype=torch.float, device=device) with pytest.raises(Exception, match=r"Tensor is not a torch image."): func(tensor, *args) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_vflip(device): script_vflip = torch.jit.script(F.vflip) img_tensor, pil_img = _create_data(16, 18, device=device) vflipped_img = F.vflip(img_tensor) vflipped_pil_img = F.vflip(pil_img) _assert_equal_tensor_to_pil(vflipped_img, vflipped_pil_img) # scriptable function test vflipped_img_script = script_vflip(img_tensor) assert_equal(vflipped_img, vflipped_img_script) batch_tensors = _create_data_batch(16, 18, num_samples=4, device=device) _test_fn_on_batch(batch_tensors, F.vflip) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_hflip(device): script_hflip = torch.jit.script(F.hflip) img_tensor, pil_img = _create_data(16, 18, device=device) hflipped_img = F.hflip(img_tensor) hflipped_pil_img = F.hflip(pil_img) _assert_equal_tensor_to_pil(hflipped_img, hflipped_pil_img) # scriptable function test hflipped_img_script = script_hflip(img_tensor) assert_equal(hflipped_img, hflipped_img_script) batch_tensors = _create_data_batch(16, 18, num_samples=4, device=device) _test_fn_on_batch(batch_tensors, F.hflip) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize( "top, left, height, width", [ (1, 2, 4, 5), # crop inside top-left corner (2, 12, 3, 4), # crop inside top-right corner (8, 3, 5, 6), # crop inside bottom-left corner (8, 11, 4, 3), # crop inside bottom-right corner (50, 50, 10, 10), # crop outside the image (-50, -50, 10, 10), # crop outside the image ], ) def test_crop(device, top, left, height, width): script_crop = torch.jit.script(F.crop) img_tensor, pil_img = _create_data(16, 18, device=device) pil_img_cropped = F.crop(pil_img, top, left, height, width) img_tensor_cropped = F.crop(img_tensor, top, left, height, width) _assert_equal_tensor_to_pil(img_tensor_cropped, pil_img_cropped) img_tensor_cropped = script_crop(img_tensor, top, left, height, width) _assert_equal_tensor_to_pil(img_tensor_cropped, pil_img_cropped) batch_tensors = _create_data_batch(16, 18, num_samples=4, device=device) _test_fn_on_batch(batch_tensors, F.crop, top=top, left=left, height=height, width=width) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("image_size", ("small", "large")) @pytest.mark.parametrize("dt", [None, torch.float32, torch.float64, torch.float16]) @pytest.mark.parametrize("ksize", [(3, 3), [3, 5], (23, 23)]) @pytest.mark.parametrize("sigma", [[0.5, 0.5], (0.5, 0.5), (0.8, 0.8), (1.7, 1.7)]) @pytest.mark.parametrize("fn", [F.gaussian_blur, torch.jit.script(F.gaussian_blur)]) def test_gaussian_blur(device, image_size, dt, ksize, sigma, fn): # true_cv2_results = { # # np_img = np.arange(3 * 10 * 12, dtype="uint8").reshape((10, 12, 3)) # # cv2.GaussianBlur(np_img, ksize=(3, 3), sigmaX=0.8) # "3_3_0.8": ... # # cv2.GaussianBlur(np_img, ksize=(3, 3), sigmaX=0.5) # "3_3_0.5": ... # # cv2.GaussianBlur(np_img, ksize=(3, 5), sigmaX=0.8) # "3_5_0.8": ... # # cv2.GaussianBlur(np_img, ksize=(3, 5), sigmaX=0.5) # "3_5_0.5": ... # # np_img2 = np.arange(26 * 28, dtype="uint8").reshape((26, 28)) # # cv2.GaussianBlur(np_img2, ksize=(23, 23), sigmaX=1.7) # "23_23_1.7": ... # } p = os.path.join(os.path.dirname(os.path.abspath(__file__)), "assets", "gaussian_blur_opencv_results.pt") true_cv2_results = torch.load(p, weights_only=False) if image_size == "small": tensor = ( torch.from_numpy(np.arange(3 * 10 * 12, dtype="uint8").reshape((10, 12, 3))).permute(2, 0, 1).to(device) ) else: tensor = torch.from_numpy(np.arange(26 * 28, dtype="uint8").reshape((1, 26, 28))).to(device) if dt == torch.float16 and device == "cpu": # skip float16 on CPU case return if dt is not None: tensor = tensor.to(dtype=dt) _ksize = (ksize, ksize) if isinstance(ksize, int) else ksize _sigma = sigma[0] if sigma is not None else None shape = tensor.shape gt_key = f"{shape[-2]}_{shape[-1]}_{shape[-3]}__{_ksize[0]}_{_ksize[1]}_{_sigma}" if gt_key not in true_cv2_results: return true_out = ( torch.tensor(true_cv2_results[gt_key]).reshape(shape[-2], shape[-1], shape[-3]).permute(2, 0, 1).to(tensor) ) out = fn(tensor, kernel_size=ksize, sigma=sigma) torch.testing.assert_close(out, true_out, rtol=0.0, atol=1.0, msg=f"{ksize}, {sigma}") @pytest.mark.parametrize("device", cpu_and_cuda()) def test_hsv2rgb(device): scripted_fn = torch.jit.script(F_t._hsv2rgb) shape = (3, 100, 150) for _ in range(10): hsv_img = torch.rand(*shape, dtype=torch.float, device=device) rgb_img = F_t._hsv2rgb(hsv_img) ft_img = rgb_img.permute(1, 2, 0).flatten(0, 1) ( h, s, v, ) = hsv_img.unbind(0) h = h.flatten().cpu().numpy() s = s.flatten().cpu().numpy() v = v.flatten().cpu().numpy() rgb = [] for h1, s1, v1 in zip(h, s, v): rgb.append(colorsys.hsv_to_rgb(h1, s1, v1)) colorsys_img = torch.tensor(rgb, dtype=torch.float32, device=device) torch.testing.assert_close(ft_img, colorsys_img, rtol=0.0, atol=1e-5) s_rgb_img = scripted_fn(hsv_img) torch.testing.assert_close(rgb_img, s_rgb_img) batch_tensors = _create_data_batch(120, 100, num_samples=4, device=device).float() _test_fn_on_batch(batch_tensors, F_t._hsv2rgb) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_rgb2hsv(device): scripted_fn = torch.jit.script(F_t._rgb2hsv) shape = (3, 150, 100) for _ in range(10): rgb_img = torch.rand(*shape, dtype=torch.float, device=device) hsv_img = F_t._rgb2hsv(rgb_img) ft_hsv_img = hsv_img.permute(1, 2, 0).flatten(0, 1) ( r, g, b, ) = rgb_img.unbind(dim=-3) r = r.flatten().cpu().numpy() g = g.flatten().cpu().numpy() b = b.flatten().cpu().numpy() hsv = [] for r1, g1, b1 in zip(r, g, b): hsv.append(colorsys.rgb_to_hsv(r1, g1, b1)) colorsys_img = torch.tensor(hsv, dtype=torch.float32, device=device) ft_hsv_img_h, ft_hsv_img_sv = torch.split(ft_hsv_img, [1, 2], dim=1) colorsys_img_h, colorsys_img_sv = torch.split(colorsys_img, [1, 2], dim=1) max_diff_h = ((colorsys_img_h * 2 * math.pi).sin() - (ft_hsv_img_h * 2 * math.pi).sin()).abs().max() max_diff_sv = (colorsys_img_sv - ft_hsv_img_sv).abs().max() max_diff = max(max_diff_h, max_diff_sv) assert max_diff < 1e-5 s_hsv_img = scripted_fn(rgb_img) torch.testing.assert_close(hsv_img, s_hsv_img, rtol=1e-5, atol=1e-7) batch_tensors = _create_data_batch(120, 100, num_samples=4, device=device).float() _test_fn_on_batch(batch_tensors, F_t._rgb2hsv) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("num_output_channels", (3, 1)) def test_rgb_to_grayscale(device, num_output_channels): script_rgb_to_grayscale = torch.jit.script(F.rgb_to_grayscale) img_tensor, pil_img = _create_data(32, 34, device=device) gray_pil_image = F.rgb_to_grayscale(pil_img, num_output_channels=num_output_channels) gray_tensor = F.rgb_to_grayscale(img_tensor, num_output_channels=num_output_channels) _assert_approx_equal_tensor_to_pil(gray_tensor.float(), gray_pil_image, tol=1.0 + 1e-10, agg_method="max") s_gray_tensor = script_rgb_to_grayscale(img_tensor, num_output_channels=num_output_channels) assert_equal(s_gray_tensor, gray_tensor) batch_tensors = _create_data_batch(16, 18, num_samples=4, device=device) _test_fn_on_batch(batch_tensors, F.rgb_to_grayscale, num_output_channels=num_output_channels) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_center_crop(device): script_center_crop = torch.jit.script(F.center_crop) img_tensor, pil_img = _create_data(32, 34, device=device) cropped_pil_image = F.center_crop(pil_img, [10, 11]) cropped_tensor = F.center_crop(img_tensor, [10, 11]) _assert_equal_tensor_to_pil(cropped_tensor, cropped_pil_image) cropped_tensor = script_center_crop(img_tensor, [10, 11]) _assert_equal_tensor_to_pil(cropped_tensor, cropped_pil_image) batch_tensors = _create_data_batch(16, 18, num_samples=4, device=device) _test_fn_on_batch(batch_tensors, F.center_crop, output_size=[10, 11]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_five_crop(device): script_five_crop = torch.jit.script(F.five_crop) img_tensor, pil_img = _create_data(32, 34, device=device) cropped_pil_images = F.five_crop(pil_img, [10, 11]) cropped_tensors = F.five_crop(img_tensor, [10, 11]) for i in range(5): _assert_equal_tensor_to_pil(cropped_tensors[i], cropped_pil_images[i]) cropped_tensors = script_five_crop(img_tensor, [10, 11]) for i in range(5): _assert_equal_tensor_to_pil(cropped_tensors[i], cropped_pil_images[i]) batch_tensors = _create_data_batch(16, 18, num_samples=4, device=device) tuple_transformed_batches = F.five_crop(batch_tensors, [10, 11]) for i in range(len(batch_tensors)): img_tensor = batch_tensors[i, ...] tuple_transformed_imgs = F.five_crop(img_tensor, [10, 11]) assert len(tuple_transformed_imgs) == len(tuple_transformed_batches) for j in range(len(tuple_transformed_imgs)): true_transformed_img = tuple_transformed_imgs[j] transformed_img = tuple_transformed_batches[j][i, ...] assert_equal(true_transformed_img, transformed_img) # scriptable function test s_tuple_transformed_batches = script_five_crop(batch_tensors, [10, 11]) for transformed_batch, s_transformed_batch in zip(tuple_transformed_batches, s_tuple_transformed_batches): assert_equal(transformed_batch, s_transformed_batch) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_ten_crop(device): script_ten_crop = torch.jit.script(F.ten_crop) img_tensor, pil_img = _create_data(32, 34, device=device) cropped_pil_images = F.ten_crop(pil_img, [10, 11]) cropped_tensors = F.ten_crop(img_tensor, [10, 11]) for i in range(10): _assert_equal_tensor_to_pil(cropped_tensors[i], cropped_pil_images[i]) cropped_tensors = script_ten_crop(img_tensor, [10, 11]) for i in range(10): _assert_equal_tensor_to_pil(cropped_tensors[i], cropped_pil_images[i]) batch_tensors = _create_data_batch(16, 18, num_samples=4, device=device) tuple_transformed_batches = F.ten_crop(batch_tensors, [10, 11]) for i in range(len(batch_tensors)): img_tensor = batch_tensors[i, ...] tuple_transformed_imgs = F.ten_crop(img_tensor, [10, 11]) assert len(tuple_transformed_imgs) == len(tuple_transformed_batches) for j in range(len(tuple_transformed_imgs)): true_transformed_img = tuple_transformed_imgs[j] transformed_img = tuple_transformed_batches[j][i, ...] assert_equal(true_transformed_img, transformed_img) # scriptable function test s_tuple_transformed_batches = script_ten_crop(batch_tensors, [10, 11]) for transformed_batch, s_transformed_batch in zip(tuple_transformed_batches, s_tuple_transformed_batches): assert_equal(transformed_batch, s_transformed_batch) def test_elastic_transform_asserts(): with pytest.raises(TypeError, match="Argument displacement should be a Tensor"): _ = F.elastic_transform("abc", displacement=None) with pytest.raises(TypeError, match="img should be PIL Image or Tensor"): _ = F.elastic_transform("abc", displacement=torch.rand(1)) img_tensor = torch.rand(1, 3, 32, 24) with pytest.raises(ValueError, match="Argument displacement shape should"): _ = F.elastic_transform(img_tensor, displacement=torch.rand(1, 2)) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("interpolation", [NEAREST, BILINEAR, BICUBIC]) @pytest.mark.parametrize("dt", [None, torch.float32, torch.float64, torch.float16]) @pytest.mark.parametrize( "fill", [None, [255, 255, 255], (2.0,)], ) def test_elastic_transform_consistency(device, interpolation, dt, fill): script_elastic_transform = torch.jit.script(F.elastic_transform) img_tensor, _ = _create_data(32, 34, device=device) # As there is no PIL implementation for elastic_transform, # thus we do not run tests tensor vs pillow if dt is not None: img_tensor = img_tensor.to(dt) displacement = T.ElasticTransform.get_params([1.5, 1.5], [2.0, 2.0], [32, 34]) kwargs = dict( displacement=displacement, interpolation=interpolation, fill=fill, ) out_tensor1 = F.elastic_transform(img_tensor, **kwargs) out_tensor2 = script_elastic_transform(img_tensor, **kwargs) assert_equal(out_tensor1, out_tensor2) batch_tensors = _create_data_batch(16, 18, num_samples=4, device=device) displacement = T.ElasticTransform.get_params([1.5, 1.5], [2.0, 2.0], [16, 18]) kwargs["displacement"] = displacement if dt is not None: batch_tensors = batch_tensors.to(dt) _test_fn_on_batch(batch_tensors, F.elastic_transform, **kwargs) if __name__ == "__main__": pytest.main([__file__]) vision-0.19.1/test/test_image.py000066400000000000000000000741251466211133600165770ustar00rootroot00000000000000import concurrent.futures import glob import io import os import re import sys from pathlib import Path import numpy as np import pytest import requests import torch import torchvision.transforms.functional as F from common_utils import assert_equal, cpu_and_cuda, IN_OSS_CI, needs_cuda from PIL import __version__ as PILLOW_VERSION, Image, ImageOps, ImageSequence from torchvision.io.image import ( _read_png_16, decode_gif, decode_image, decode_jpeg, decode_png, encode_jpeg, encode_png, ImageReadMode, read_file, read_image, write_file, write_jpeg, write_png, ) IMAGE_ROOT = os.path.join(os.path.dirname(os.path.abspath(__file__)), "assets") FAKEDATA_DIR = os.path.join(IMAGE_ROOT, "fakedata") IMAGE_DIR = os.path.join(FAKEDATA_DIR, "imagefolder") DAMAGED_JPEG = os.path.join(IMAGE_ROOT, "damaged_jpeg") DAMAGED_PNG = os.path.join(IMAGE_ROOT, "damaged_png") ENCODE_JPEG = os.path.join(IMAGE_ROOT, "encode_jpeg") INTERLACED_PNG = os.path.join(IMAGE_ROOT, "interlaced_png") TOOSMALL_PNG = os.path.join(IMAGE_ROOT, "toosmall_png") IS_WINDOWS = sys.platform in ("win32", "cygwin") IS_MACOS = sys.platform == "darwin" PILLOW_VERSION = tuple(int(x) for x in PILLOW_VERSION.split(".")) def _get_safe_image_name(name): # Used when we need to change the pytest "id" for an "image path" parameter. # If we don't, the test id (i.e. its name) will contain the whole path to the image, which is machine-specific, # and this creates issues when the test is running in a different machine than where it was collected # (typically, in fb internal infra) return name.split(os.path.sep)[-1] def get_images(directory, img_ext): assert os.path.isdir(directory) image_paths = glob.glob(directory + f"/**/*{img_ext}", recursive=True) for path in image_paths: if path.split(os.sep)[-2] not in ["damaged_jpeg", "jpeg_write"]: yield path def pil_read_image(img_path): with Image.open(img_path) as img: return torch.from_numpy(np.array(img)) def normalize_dimensions(img_pil): if len(img_pil.shape) == 3: img_pil = img_pil.permute(2, 0, 1) else: img_pil = img_pil.unsqueeze(0) return img_pil @pytest.mark.parametrize( "img_path", [pytest.param(jpeg_path, id=_get_safe_image_name(jpeg_path)) for jpeg_path in get_images(IMAGE_ROOT, ".jpg")], ) @pytest.mark.parametrize( "pil_mode, mode", [ (None, ImageReadMode.UNCHANGED), ("L", ImageReadMode.GRAY), ("RGB", ImageReadMode.RGB), ], ) @pytest.mark.parametrize("scripted", (False, True)) @pytest.mark.parametrize("decode_fun", (decode_jpeg, decode_image)) def test_decode_jpeg(img_path, pil_mode, mode, scripted, decode_fun): with Image.open(img_path) as img: is_cmyk = img.mode == "CMYK" if pil_mode is not None: img = img.convert(pil_mode) img_pil = torch.from_numpy(np.array(img)) if is_cmyk and mode == ImageReadMode.UNCHANGED: # flip the colors to match libjpeg img_pil = 255 - img_pil img_pil = normalize_dimensions(img_pil) data = read_file(img_path) if scripted: decode_fun = torch.jit.script(decode_fun) img_ljpeg = decode_fun(data, mode=mode) # Permit a small variation on pixel values to account for implementation # differences between Pillow and LibJPEG. abs_mean_diff = (img_ljpeg.type(torch.float32) - img_pil).abs().mean().item() assert abs_mean_diff < 2 @pytest.mark.parametrize("codec", ["png", "jpeg"]) @pytest.mark.parametrize("orientation", [1, 2, 3, 4, 5, 6, 7, 8, 0]) def test_decode_with_exif_orientation(tmpdir, codec, orientation): fp = os.path.join(tmpdir, f"exif_oriented_{orientation}.{codec}") t = torch.randint(0, 256, size=(3, 256, 257), dtype=torch.uint8) im = F.to_pil_image(t) exif = im.getexif() exif[0x0112] = orientation # set exif orientation im.save(fp, codec.upper(), exif=exif.tobytes()) data = read_file(fp) output = decode_image(data, apply_exif_orientation=True) pimg = Image.open(fp) pimg = ImageOps.exif_transpose(pimg) expected = F.pil_to_tensor(pimg) torch.testing.assert_close(expected, output) @pytest.mark.parametrize("size", [65533, 1, 7, 10, 23, 33]) def test_invalid_exif(tmpdir, size): # Inspired from a PIL test: # https://github.com/python-pillow/Pillow/blob/8f63748e50378424628155994efd7e0739a4d1d1/Tests/test_file_jpeg.py#L299 fp = os.path.join(tmpdir, "invalid_exif.jpg") t = torch.randint(0, 256, size=(3, 256, 257), dtype=torch.uint8) im = F.to_pil_image(t) im.save(fp, "JPEG", exif=b"1" * size) data = read_file(fp) output = decode_image(data, apply_exif_orientation=True) pimg = Image.open(fp) pimg = ImageOps.exif_transpose(pimg) expected = F.pil_to_tensor(pimg) torch.testing.assert_close(expected, output) def test_decode_jpeg_errors(): with pytest.raises(RuntimeError, match="Expected a non empty 1-dimensional tensor"): decode_jpeg(torch.empty((100, 1), dtype=torch.uint8)) with pytest.raises(RuntimeError, match="Expected a torch.uint8 tensor"): decode_jpeg(torch.empty((100,), dtype=torch.float16)) with pytest.raises(RuntimeError, match="Not a JPEG file"): decode_jpeg(torch.empty((100), dtype=torch.uint8)) def test_decode_bad_huffman_images(): # sanity check: make sure we can decode the bad Huffman encoding bad_huff = read_file(os.path.join(DAMAGED_JPEG, "bad_huffman.jpg")) decode_jpeg(bad_huff) @pytest.mark.parametrize( "img_path", [ pytest.param(truncated_image, id=_get_safe_image_name(truncated_image)) for truncated_image in glob.glob(os.path.join(DAMAGED_JPEG, "corrupt*.jpg")) ], ) def test_damaged_corrupt_images(img_path): # Truncated images should raise an exception data = read_file(img_path) if "corrupt34" in img_path: match_message = "Image is incomplete or truncated" else: match_message = "Unsupported marker type" with pytest.raises(RuntimeError, match=match_message): decode_jpeg(data) @pytest.mark.parametrize( "img_path", [pytest.param(png_path, id=_get_safe_image_name(png_path)) for png_path in get_images(FAKEDATA_DIR, ".png")], ) @pytest.mark.parametrize( "pil_mode, mode", [ (None, ImageReadMode.UNCHANGED), ("L", ImageReadMode.GRAY), ("LA", ImageReadMode.GRAY_ALPHA), ("RGB", ImageReadMode.RGB), ("RGBA", ImageReadMode.RGB_ALPHA), ], ) @pytest.mark.parametrize("scripted", (False, True)) @pytest.mark.parametrize("decode_fun", (decode_png, decode_image)) def test_decode_png(img_path, pil_mode, mode, scripted, decode_fun): if scripted: decode_fun = torch.jit.script(decode_fun) with Image.open(img_path) as img: if pil_mode is not None: img = img.convert(pil_mode) img_pil = torch.from_numpy(np.array(img)) img_pil = normalize_dimensions(img_pil) if img_path.endswith("16.png"): # 16 bits image decoding is supported, but only as a private API # FIXME: see https://github.com/pytorch/vision/issues/4731 for potential solutions to making it public with pytest.raises(RuntimeError, match="At most 8-bit PNG images are supported"): data = read_file(img_path) img_lpng = decode_fun(data, mode=mode) img_lpng = _read_png_16(img_path, mode=mode) assert img_lpng.dtype == torch.int32 # PIL converts 16 bits pngs in uint8 img_lpng = torch.round(img_lpng / (2**16 - 1) * 255).to(torch.uint8) else: data = read_file(img_path) img_lpng = decode_fun(data, mode=mode) tol = 0 if pil_mode is None else 1 if PILLOW_VERSION >= (8, 3) and pil_mode == "LA": # Avoid checking the transparency channel until # https://github.com/python-pillow/Pillow/issues/5593#issuecomment-878244910 # is fixed. # TODO: remove once fix is released in PIL. Should be > 8.3.1. img_lpng, img_pil = img_lpng[0], img_pil[0] torch.testing.assert_close(img_lpng, img_pil, atol=tol, rtol=0) def test_decode_png_errors(): with pytest.raises(RuntimeError, match="Expected a non empty 1-dimensional tensor"): decode_png(torch.empty((), dtype=torch.uint8)) with pytest.raises(RuntimeError, match="Content is not png"): decode_png(torch.randint(3, 5, (300,), dtype=torch.uint8)) with pytest.raises(RuntimeError, match="Out of bound read in decode_png"): decode_png(read_file(os.path.join(DAMAGED_PNG, "sigsegv.png"))) with pytest.raises(RuntimeError, match="Content is too small for png"): decode_png(read_file(os.path.join(TOOSMALL_PNG, "heapbof.png"))) @pytest.mark.parametrize( "img_path", [pytest.param(png_path, id=_get_safe_image_name(png_path)) for png_path in get_images(IMAGE_DIR, ".png")], ) @pytest.mark.parametrize("scripted", (True, False)) def test_encode_png(img_path, scripted): pil_image = Image.open(img_path) img_pil = torch.from_numpy(np.array(pil_image)) img_pil = img_pil.permute(2, 0, 1) encode = torch.jit.script(encode_png) if scripted else encode_png png_buf = encode(img_pil, compression_level=6) rec_img = Image.open(io.BytesIO(bytes(png_buf.tolist()))) rec_img = torch.from_numpy(np.array(rec_img)) rec_img = rec_img.permute(2, 0, 1) assert_equal(img_pil, rec_img) def test_encode_png_errors(): with pytest.raises(RuntimeError, match="Input tensor dtype should be uint8"): encode_png(torch.empty((3, 100, 100), dtype=torch.float32)) with pytest.raises(RuntimeError, match="Compression level should be between 0 and 9"): encode_png(torch.empty((3, 100, 100), dtype=torch.uint8), compression_level=-1) with pytest.raises(RuntimeError, match="Compression level should be between 0 and 9"): encode_png(torch.empty((3, 100, 100), dtype=torch.uint8), compression_level=10) with pytest.raises(RuntimeError, match="The number of channels should be 1 or 3, got: 5"): encode_png(torch.empty((5, 100, 100), dtype=torch.uint8)) @pytest.mark.parametrize( "img_path", [pytest.param(png_path, id=_get_safe_image_name(png_path)) for png_path in get_images(IMAGE_DIR, ".png")], ) @pytest.mark.parametrize("scripted", (True, False)) def test_write_png(img_path, tmpdir, scripted): pil_image = Image.open(img_path) img_pil = torch.from_numpy(np.array(pil_image)) img_pil = img_pil.permute(2, 0, 1) filename, _ = os.path.splitext(os.path.basename(img_path)) torch_png = os.path.join(tmpdir, f"{filename}_torch.png") write = torch.jit.script(write_png) if scripted else write_png write(img_pil, torch_png, compression_level=6) saved_image = torch.from_numpy(np.array(Image.open(torch_png))) saved_image = saved_image.permute(2, 0, 1) assert_equal(img_pil, saved_image) def test_read_image(): # Just testing torchcsript, the functionality is somewhat tested already in other tests. path = next(get_images(IMAGE_ROOT, ".jpg")) out = read_image(path) out_scripted = torch.jit.script(read_image)(path) torch.testing.assert_close(out, out_scripted, atol=0, rtol=0) @pytest.mark.parametrize("scripted", (True, False)) def test_read_file(tmpdir, scripted): fname, content = "test1.bin", b"TorchVision\211\n" fpath = os.path.join(tmpdir, fname) with open(fpath, "wb") as f: f.write(content) fun = torch.jit.script(read_file) if scripted else read_file data = fun(fpath) expected = torch.tensor(list(content), dtype=torch.uint8) os.unlink(fpath) assert_equal(data, expected) with pytest.raises(RuntimeError, match="No such file or directory: 'tst'"): read_file("tst") def test_read_file_non_ascii(tmpdir): fname, content = "日本語(Japanese).bin", b"TorchVision\211\n" fpath = os.path.join(tmpdir, fname) with open(fpath, "wb") as f: f.write(content) data = read_file(fpath) expected = torch.tensor(list(content), dtype=torch.uint8) os.unlink(fpath) assert_equal(data, expected) @pytest.mark.parametrize("scripted", (True, False)) def test_write_file(tmpdir, scripted): fname, content = "test1.bin", b"TorchVision\211\n" fpath = os.path.join(tmpdir, fname) content_tensor = torch.tensor(list(content), dtype=torch.uint8) write = torch.jit.script(write_file) if scripted else write_file write(fpath, content_tensor) with open(fpath, "rb") as f: saved_content = f.read() os.unlink(fpath) assert content == saved_content def test_write_file_non_ascii(tmpdir): fname, content = "日本語(Japanese).bin", b"TorchVision\211\n" fpath = os.path.join(tmpdir, fname) content_tensor = torch.tensor(list(content), dtype=torch.uint8) write_file(fpath, content_tensor) with open(fpath, "rb") as f: saved_content = f.read() os.unlink(fpath) assert content == saved_content @pytest.mark.parametrize( "shape", [ (27, 27), (60, 60), (105, 105), ], ) def test_read_1_bit_png(shape, tmpdir): np_rng = np.random.RandomState(0) image_path = os.path.join(tmpdir, f"test_{shape}.png") pixels = np_rng.rand(*shape) > 0.5 img = Image.fromarray(pixels) img.save(image_path) img1 = read_image(image_path) img2 = normalize_dimensions(torch.as_tensor(pixels * 255, dtype=torch.uint8)) assert_equal(img1, img2) @pytest.mark.parametrize( "shape", [ (27, 27), (60, 60), (105, 105), ], ) @pytest.mark.parametrize( "mode", [ ImageReadMode.UNCHANGED, ImageReadMode.GRAY, ], ) def test_read_1_bit_png_consistency(shape, mode, tmpdir): np_rng = np.random.RandomState(0) image_path = os.path.join(tmpdir, f"test_{shape}.png") pixels = np_rng.rand(*shape) > 0.5 img = Image.fromarray(pixels) img.save(image_path) img1 = read_image(image_path, mode) img2 = read_image(image_path, mode) assert_equal(img1, img2) def test_read_interlaced_png(): imgs = list(get_images(INTERLACED_PNG, ".png")) with Image.open(imgs[0]) as im1, Image.open(imgs[1]) as im2: assert not (im1.info.get("interlace") is im2.info.get("interlace")) img1 = read_image(imgs[0]) img2 = read_image(imgs[1]) assert_equal(img1, img2) @needs_cuda @pytest.mark.parametrize( "img_path", [pytest.param(jpeg_path, id=_get_safe_image_name(jpeg_path)) for jpeg_path in get_images(IMAGE_ROOT, ".jpg")], ) @pytest.mark.parametrize("mode", [ImageReadMode.UNCHANGED, ImageReadMode.GRAY, ImageReadMode.RGB]) @pytest.mark.parametrize("scripted", (False, True)) def test_decode_jpeg_cuda(mode, img_path, scripted): if "cmyk" in img_path: pytest.xfail("Decoding a CMYK jpeg isn't supported") data = read_file(img_path) img = decode_image(data, mode=mode) f = torch.jit.script(decode_jpeg) if scripted else decode_jpeg img_nvjpeg = f(data, mode=mode, device="cuda") # Some difference expected between jpeg implementations assert (img.float() - img_nvjpeg.cpu().float()).abs().mean() < 2 @needs_cuda def test_decode_image_cuda_raises(): data = torch.randint(0, 127, size=(255,), device="cuda", dtype=torch.uint8) with pytest.raises(RuntimeError): decode_image(data) @needs_cuda @pytest.mark.parametrize("cuda_device", ("cuda", "cuda:0", torch.device("cuda"))) def test_decode_jpeg_cuda_device_param(cuda_device): """Make sure we can pass a string or a torch.device as device param""" path = next(path for path in get_images(IMAGE_ROOT, ".jpg") if "cmyk" not in path) data = read_file(path) decode_jpeg(data, device=cuda_device) @needs_cuda def test_decode_jpeg_cuda_errors(): data = read_file(next(get_images(IMAGE_ROOT, ".jpg"))) with pytest.raises(RuntimeError, match="Expected a non empty 1-dimensional tensor"): decode_jpeg(data.reshape(-1, 1), device="cuda") with pytest.raises(RuntimeError, match="input tensor must be on CPU"): decode_jpeg(data.to("cuda"), device="cuda") with pytest.raises(RuntimeError, match="Expected a torch.uint8 tensor"): decode_jpeg(data.to(torch.float), device="cuda") with pytest.raises(RuntimeError, match="Expected a cuda device"): torch.ops.image.decode_jpeg_cuda(data, ImageReadMode.UNCHANGED.value, "cpu") def test_encode_jpeg_errors(): with pytest.raises(RuntimeError, match="Input tensor dtype should be uint8"): encode_jpeg(torch.empty((3, 100, 100), dtype=torch.float32)) with pytest.raises(ValueError, match="Image quality should be a positive number between 1 and 100"): encode_jpeg(torch.empty((3, 100, 100), dtype=torch.uint8), quality=-1) with pytest.raises(ValueError, match="Image quality should be a positive number between 1 and 100"): encode_jpeg(torch.empty((3, 100, 100), dtype=torch.uint8), quality=101) with pytest.raises(RuntimeError, match="The number of channels should be 1 or 3, got: 5"): encode_jpeg(torch.empty((5, 100, 100), dtype=torch.uint8)) with pytest.raises(RuntimeError, match="Input data should be a 3-dimensional tensor"): encode_jpeg(torch.empty((1, 3, 100, 100), dtype=torch.uint8)) with pytest.raises(RuntimeError, match="Input data should be a 3-dimensional tensor"): encode_jpeg(torch.empty((100, 100), dtype=torch.uint8)) @pytest.mark.skipif(IS_MACOS, reason="https://github.com/pytorch/vision/issues/8031") @pytest.mark.parametrize( "img_path", [pytest.param(jpeg_path, id=_get_safe_image_name(jpeg_path)) for jpeg_path in get_images(ENCODE_JPEG, ".jpg")], ) @pytest.mark.parametrize("scripted", (True, False)) def test_encode_jpeg(img_path, scripted): img = read_image(img_path) pil_img = F.to_pil_image(img) buf = io.BytesIO() pil_img.save(buf, format="JPEG", quality=75) encoded_jpeg_pil = torch.frombuffer(buf.getvalue(), dtype=torch.uint8) encode = torch.jit.script(encode_jpeg) if scripted else encode_jpeg for src_img in [img, img.contiguous()]: encoded_jpeg_torch = encode(src_img, quality=75) assert_equal(encoded_jpeg_torch, encoded_jpeg_pil) @needs_cuda def test_encode_jpeg_cuda_device_param(): path = next(path for path in get_images(IMAGE_ROOT, ".jpg") if "cmyk" not in path) data = read_image(path) current_device = torch.cuda.current_device() current_stream = torch.cuda.current_stream() num_devices = torch.cuda.device_count() devices = ["cuda", torch.device("cuda")] + [torch.device(f"cuda:{i}") for i in range(num_devices)] results = [] for device in devices: print(f"python: device: {device}") results.append(encode_jpeg(data.to(device=device))) assert len(results) == len(devices) for result in results: assert torch.all(result.cpu() == results[0].cpu()) assert current_device == torch.cuda.current_device() assert current_stream == torch.cuda.current_stream() @needs_cuda @pytest.mark.parametrize( "img_path", [pytest.param(jpeg_path, id=_get_safe_image_name(jpeg_path)) for jpeg_path in get_images(IMAGE_ROOT, ".jpg")], ) @pytest.mark.parametrize("scripted", (False, True)) @pytest.mark.parametrize("contiguous", (False, True)) def test_encode_jpeg_cuda(img_path, scripted, contiguous): decoded_image_tv = read_image(img_path) encode_fn = torch.jit.script(encode_jpeg) if scripted else encode_jpeg if "cmyk" in img_path: pytest.xfail("Encoding a CMYK jpeg isn't supported") if decoded_image_tv.shape[0] == 1: pytest.xfail("Decoding a grayscale jpeg isn't supported") # For more detail as to why check out: https://github.com/NVIDIA/cuda-samples/issues/23#issuecomment-559283013 if contiguous: decoded_image_tv = decoded_image_tv[None].contiguous(memory_format=torch.contiguous_format)[0] else: decoded_image_tv = decoded_image_tv[None].contiguous(memory_format=torch.channels_last)[0] encoded_jpeg_cuda_tv = encode_fn(decoded_image_tv.cuda(), quality=75) decoded_jpeg_cuda_tv = decode_jpeg(encoded_jpeg_cuda_tv.cpu()) # the actual encoded bytestreams from libnvjpeg and libjpeg-turbo differ for the same quality # instead, we re-decode the encoded image and compare to the original abs_mean_diff = (decoded_jpeg_cuda_tv.float() - decoded_image_tv.float()).abs().mean().item() assert abs_mean_diff < 3 @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("scripted", (True, False)) @pytest.mark.parametrize("contiguous", (True, False)) def test_encode_jpegs_batch(scripted, contiguous, device): if device == "cpu" and IS_MACOS: pytest.skip("https://github.com/pytorch/vision/issues/8031") decoded_images_tv = [] for jpeg_path in get_images(IMAGE_ROOT, ".jpg"): if "cmyk" in jpeg_path: continue decoded_image = read_image(jpeg_path) if decoded_image.shape[0] == 1: continue if contiguous: decoded_image = decoded_image[None].contiguous(memory_format=torch.contiguous_format)[0] else: decoded_image = decoded_image[None].contiguous(memory_format=torch.channels_last)[0] decoded_images_tv.append(decoded_image) encode_fn = torch.jit.script(encode_jpeg) if scripted else encode_jpeg decoded_images_tv_device = [img.to(device=device) for img in decoded_images_tv] encoded_jpegs_tv_device = encode_fn(decoded_images_tv_device, quality=75) encoded_jpegs_tv_device = [decode_jpeg(img.cpu()) for img in encoded_jpegs_tv_device] for original, encoded_decoded in zip(decoded_images_tv, encoded_jpegs_tv_device): c, h, w = original.shape abs_mean_diff = (original.float() - encoded_decoded.float()).abs().mean().item() assert abs_mean_diff < 3 # test multithreaded decoding # in the current version we prevent this by using a lock but we still want to test it num_workers = 10 with concurrent.futures.ThreadPoolExecutor(max_workers=num_workers) as executor: futures = [executor.submit(encode_fn, decoded_images_tv_device) for _ in range(num_workers)] encoded_images_threaded = [future.result() for future in futures] assert len(encoded_images_threaded) == num_workers for encoded_images in encoded_images_threaded: assert len(decoded_images_tv_device) == len(encoded_images) for i, (encoded_image_cuda, decoded_image_tv) in enumerate(zip(encoded_images, decoded_images_tv_device)): # make sure all the threads produce identical outputs assert torch.all(encoded_image_cuda == encoded_images_threaded[0][i]) # make sure the outputs are identical or close enough to baseline decoded_cuda_encoded_image = decode_jpeg(encoded_image_cuda.cpu()) assert decoded_cuda_encoded_image.shape == decoded_image_tv.shape assert decoded_cuda_encoded_image.dtype == decoded_image_tv.dtype assert (decoded_cuda_encoded_image.cpu().float() - decoded_image_tv.cpu().float()).abs().mean() < 3 @needs_cuda def test_single_encode_jpeg_cuda_errors(): with pytest.raises(RuntimeError, match="Input tensor dtype should be uint8"): encode_jpeg(torch.empty((3, 100, 100), dtype=torch.float32, device="cuda")) with pytest.raises(RuntimeError, match="The number of channels should be 3, got: 5"): encode_jpeg(torch.empty((5, 100, 100), dtype=torch.uint8, device="cuda")) with pytest.raises(RuntimeError, match="The number of channels should be 3, got: 1"): encode_jpeg(torch.empty((1, 100, 100), dtype=torch.uint8, device="cuda")) with pytest.raises(RuntimeError, match="Input data should be a 3-dimensional tensor"): encode_jpeg(torch.empty((1, 3, 100, 100), dtype=torch.uint8, device="cuda")) with pytest.raises(RuntimeError, match="Input data should be a 3-dimensional tensor"): encode_jpeg(torch.empty((100, 100), dtype=torch.uint8, device="cuda")) @needs_cuda def test_batch_encode_jpegs_cuda_errors(): with pytest.raises(RuntimeError, match="Input tensor dtype should be uint8"): encode_jpeg( [ torch.empty((3, 100, 100), dtype=torch.uint8, device="cuda"), torch.empty((3, 100, 100), dtype=torch.float32, device="cuda"), ] ) with pytest.raises(RuntimeError, match="The number of channels should be 3, got: 5"): encode_jpeg( [ torch.empty((3, 100, 100), dtype=torch.uint8, device="cuda"), torch.empty((5, 100, 100), dtype=torch.uint8, device="cuda"), ] ) with pytest.raises(RuntimeError, match="The number of channels should be 3, got: 1"): encode_jpeg( [ torch.empty((3, 100, 100), dtype=torch.uint8, device="cuda"), torch.empty((1, 100, 100), dtype=torch.uint8, device="cuda"), ] ) with pytest.raises(RuntimeError, match="Input data should be a 3-dimensional tensor"): encode_jpeg( [ torch.empty((3, 100, 100), dtype=torch.uint8, device="cuda"), torch.empty((1, 3, 100, 100), dtype=torch.uint8, device="cuda"), ] ) with pytest.raises(RuntimeError, match="Input data should be a 3-dimensional tensor"): encode_jpeg( [ torch.empty((3, 100, 100), dtype=torch.uint8, device="cuda"), torch.empty((100, 100), dtype=torch.uint8, device="cuda"), ] ) with pytest.raises(RuntimeError, match="Input tensor should be on CPU"): encode_jpeg( [ torch.empty((3, 100, 100), dtype=torch.uint8, device="cpu"), torch.empty((3, 100, 100), dtype=torch.uint8, device="cuda"), ] ) with pytest.raises( RuntimeError, match="All input tensors must be on the same CUDA device when encoding with nvjpeg" ): encode_jpeg( [ torch.empty((3, 100, 100), dtype=torch.uint8, device="cuda"), torch.empty((3, 100, 100), dtype=torch.uint8, device="cpu"), ] ) if torch.cuda.device_count() >= 2: with pytest.raises( RuntimeError, match="All input tensors must be on the same CUDA device when encoding with nvjpeg" ): encode_jpeg( [ torch.empty((3, 100, 100), dtype=torch.uint8, device="cuda:0"), torch.empty((3, 100, 100), dtype=torch.uint8, device="cuda:1"), ] ) with pytest.raises(ValueError, match="encode_jpeg requires at least one input tensor when a list is passed"): encode_jpeg([]) @pytest.mark.skipif(IS_MACOS, reason="https://github.com/pytorch/vision/issues/8031") @pytest.mark.parametrize( "img_path", [pytest.param(jpeg_path, id=_get_safe_image_name(jpeg_path)) for jpeg_path in get_images(ENCODE_JPEG, ".jpg")], ) @pytest.mark.parametrize("scripted", (True, False)) def test_write_jpeg(img_path, tmpdir, scripted): tmpdir = Path(tmpdir) img = read_image(img_path) pil_img = F.to_pil_image(img) torch_jpeg = str(tmpdir / "torch.jpg") pil_jpeg = str(tmpdir / "pil.jpg") write = torch.jit.script(write_jpeg) if scripted else write_jpeg write(img, torch_jpeg, quality=75) pil_img.save(pil_jpeg, quality=75) with open(torch_jpeg, "rb") as f: torch_bytes = f.read() with open(pil_jpeg, "rb") as f: pil_bytes = f.read() assert_equal(torch_bytes, pil_bytes) def test_pathlib_support(tmpdir): # Just make sure pathlib.Path is supported where relevant jpeg_path = Path(next(get_images(ENCODE_JPEG, ".jpg"))) read_file(jpeg_path) read_image(jpeg_path) write_path = Path(tmpdir) / "whatever" img = torch.randint(0, 10, size=(3, 4, 4), dtype=torch.uint8) write_file(write_path, data=img.flatten()) write_jpeg(img, write_path) write_png(img, write_path) @pytest.mark.parametrize( "name", ("gifgrid", "fire", "porsche", "treescap", "treescap-interlaced", "solid2", "x-trans", "earth") ) @pytest.mark.parametrize("scripted", (True, False)) def test_decode_gif(tmpdir, name, scripted): # Using test images from GIFLIB # https://sourceforge.net/p/giflib/code/ci/master/tree/pic/, we assert PIL # and torchvision decoded outputs are equal. # We're not testing against "welcome2" because PIL and GIFLIB disagee on what # the background color should be (likely a difference in the way they handle # transparency?) # 'earth' image is from wikipedia, licensed under CC BY-SA 3.0 # https://creativecommons.org/licenses/by-sa/3.0/ # it allows to properly test for transparency, TOP-LEFT offsets, and # disposal modes. path = tmpdir / f"{name}.gif" if name == "earth": if IN_OSS_CI: # TODO: Fix this... one day. pytest.skip("Skipping 'earth' test as it's flaky on OSS CI") url = "https://upload.wikimedia.org/wikipedia/commons/2/2c/Rotating_earth_%28large%29.gif" else: url = f"https://sourceforge.net/p/giflib/code/ci/master/tree/pic/{name}.gif?format=raw" with open(path, "wb") as f: f.write(requests.get(url).content) encoded_bytes = read_file(path) f = torch.jit.script(decode_gif) if scripted else decode_gif tv_out = f(encoded_bytes) if tv_out.ndim == 3: tv_out = tv_out[None] assert tv_out.is_contiguous(memory_format=torch.channels_last) # For some reason, not using Image.open() as a CM causes "ResourceWarning: unclosed file" with Image.open(path) as pil_img: pil_seq = ImageSequence.Iterator(pil_img) for pil_frame, tv_frame in zip(pil_seq, tv_out): pil_frame = F.pil_to_tensor(pil_frame.convert("RGB")) torch.testing.assert_close(tv_frame, pil_frame, atol=0, rtol=0) def test_decode_gif_errors(): encoded_data = torch.randint(0, 256, (100,), dtype=torch.uint8) with pytest.raises(RuntimeError, match="Input tensor must be 1-dimensional"): decode_gif(encoded_data[None]) with pytest.raises(RuntimeError, match="Input tensor must have uint8 data type"): decode_gif(encoded_data.float()) with pytest.raises(RuntimeError, match="Input tensor must be contiguous"): decode_gif(encoded_data[::2]) with pytest.raises(RuntimeError, match=re.escape("DGifOpenFileName() failed - 103")): decode_gif(encoded_data) if __name__ == "__main__": pytest.main([__file__]) vision-0.19.1/test/test_internal_utils.py000066400000000000000000000010541466211133600205400ustar00rootroot00000000000000import pytest from torchvision._utils import sequence_to_str @pytest.mark.parametrize( ("seq", "separate_last", "expected"), [ ([], "", ""), (["foo"], "", "'foo'"), (["foo", "bar"], "", "'foo', 'bar'"), (["foo", "bar"], "and ", "'foo' and 'bar'"), (["foo", "bar", "baz"], "", "'foo', 'bar', 'baz'"), (["foo", "bar", "baz"], "and ", "'foo', 'bar', and 'baz'"), ], ) def test_sequence_to_str(seq, separate_last, expected): assert sequence_to_str(seq, separate_last=separate_last) == expected vision-0.19.1/test/test_internet.py000066400000000000000000000044471466211133600173450ustar00rootroot00000000000000"""This file should contain all tests that need access to the internet (apart from the ones in test_datasets_download.py) We want to bundle all internet-related tests in one file, so the file can be cleanly ignored in FB internal test infra. """ import os import pathlib from urllib.error import URLError import pytest import torchvision.datasets.utils as utils class TestDatasetUtils: @pytest.mark.parametrize("use_pathlib", (True, False)) def test_download_url(self, tmpdir, use_pathlib): if use_pathlib: tmpdir = pathlib.Path(tmpdir) url = "http://github.com/pytorch/vision/archive/master.zip" try: utils.download_url(url, tmpdir) assert len(os.listdir(tmpdir)) != 0 except URLError: pytest.skip(f"could not download test file '{url}'") @pytest.mark.parametrize("use_pathlib", (True, False)) def test_download_url_retry_http(self, tmpdir, use_pathlib): if use_pathlib: tmpdir = pathlib.Path(tmpdir) url = "https://github.com/pytorch/vision/archive/master.zip" try: utils.download_url(url, tmpdir) assert len(os.listdir(tmpdir)) != 0 except URLError: pytest.skip(f"could not download test file '{url}'") @pytest.mark.parametrize("use_pathlib", (True, False)) def test_download_url_dont_exist(self, tmpdir, use_pathlib): if use_pathlib: tmpdir = pathlib.Path(tmpdir) url = "http://github.com/pytorch/vision/archive/this_doesnt_exist.zip" with pytest.raises(URLError): utils.download_url(url, tmpdir) @pytest.mark.parametrize("use_pathlib", (True, False)) def test_download_url_dispatch_download_from_google_drive(self, mocker, tmpdir, use_pathlib): if use_pathlib: tmpdir = pathlib.Path(tmpdir) url = "https://drive.google.com/file/d/1GO-BHUYRuvzr1Gtp2_fqXRsr9TIeYbhV/view" id = "1GO-BHUYRuvzr1Gtp2_fqXRsr9TIeYbhV" filename = "filename" md5 = "md5" mocked = mocker.patch("torchvision.datasets.utils.download_file_from_google_drive") utils.download_url(url, tmpdir, filename, md5) mocked.assert_called_once_with(id, os.path.expanduser(tmpdir), filename, md5) if __name__ == "__main__": pytest.main([__file__]) vision-0.19.1/test/test_io.py000066400000000000000000000303421466211133600161150ustar00rootroot00000000000000import contextlib import os import sys import tempfile import pytest import torch import torchvision.io as io from common_utils import assert_equal from torchvision import get_video_backend try: import av # Do a version test too io.video._check_av_available() except ImportError: av = None VIDEO_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "assets", "videos") def _create_video_frames(num_frames, height, width): y, x = torch.meshgrid(torch.linspace(-2, 2, height), torch.linspace(-2, 2, width), indexing="ij") data = [] for i in range(num_frames): xc = float(i) / num_frames yc = 1 - float(i) / (2 * num_frames) d = torch.exp(-((x - xc) ** 2 + (y - yc) ** 2) / 2) * 255 data.append(d.unsqueeze(2).repeat(1, 1, 3).byte()) return torch.stack(data, 0) @contextlib.contextmanager def temp_video(num_frames, height, width, fps, lossless=False, video_codec=None, options=None): if lossless: if video_codec is not None: raise ValueError("video_codec can't be specified together with lossless") if options is not None: raise ValueError("options can't be specified together with lossless") video_codec = "libx264rgb" options = {"crf": "0"} if video_codec is None: if get_video_backend() == "pyav": video_codec = "libx264" else: # when video_codec is not set, we assume it is libx264rgb which accepts # RGB pixel formats as input instead of YUV video_codec = "libx264rgb" if options is None: options = {} data = _create_video_frames(num_frames, height, width) with tempfile.NamedTemporaryFile(suffix=".mp4") as f: f.close() io.write_video(f.name, data, fps=fps, video_codec=video_codec, options=options) yield f.name, data os.unlink(f.name) @pytest.mark.skipif( get_video_backend() != "pyav" and not io._HAS_VIDEO_OPT, reason="video_reader backend not available" ) @pytest.mark.skipif(av is None, reason="PyAV unavailable") class TestVideo: # compression adds artifacts, thus we add a tolerance of # 6 in 0-255 range TOLERANCE = 6 def test_write_read_video(self): with temp_video(10, 300, 300, 5, lossless=True) as (f_name, data): lv, _, info = io.read_video(f_name) assert_equal(data, lv) assert info["video_fps"] == 5 @pytest.mark.skipif(not io._HAS_VIDEO_OPT, reason="video_reader backend is not chosen") def test_probe_video_from_file(self): with temp_video(10, 300, 300, 5) as (f_name, data): video_info = io._probe_video_from_file(f_name) assert pytest.approx(2, rel=0.0, abs=0.1) == video_info.video_duration assert pytest.approx(5, rel=0.0, abs=0.1) == video_info.video_fps @pytest.mark.skipif(not io._HAS_VIDEO_OPT, reason="video_reader backend is not chosen") def test_probe_video_from_memory(self): with temp_video(10, 300, 300, 5) as (f_name, data): with open(f_name, "rb") as fp: filebuffer = fp.read() video_info = io._probe_video_from_memory(filebuffer) assert pytest.approx(2, rel=0.0, abs=0.1) == video_info.video_duration assert pytest.approx(5, rel=0.0, abs=0.1) == video_info.video_fps def test_read_timestamps(self): with temp_video(10, 300, 300, 5) as (f_name, data): pts, _ = io.read_video_timestamps(f_name) # note: not all formats/codecs provide accurate information for computing the # timestamps. For the format that we use here, this information is available, # so we use it as a baseline with av.open(f_name) as container: stream = container.streams[0] pts_step = int(round(float(1 / (stream.average_rate * stream.time_base)))) num_frames = int(round(float(stream.average_rate * stream.time_base * stream.duration))) expected_pts = [i * pts_step for i in range(num_frames)] assert pts == expected_pts @pytest.mark.parametrize("start", range(5)) @pytest.mark.parametrize("offset", range(1, 4)) def test_read_partial_video(self, start, offset): with temp_video(10, 300, 300, 5, lossless=True) as (f_name, data): pts, _ = io.read_video_timestamps(f_name) lv, _, _ = io.read_video(f_name, pts[start], pts[start + offset - 1]) s_data = data[start : (start + offset)] assert len(lv) == offset assert_equal(s_data, lv) if get_video_backend() == "pyav": # for "video_reader" backend, we don't decode the closest early frame # when the given start pts is not matching any frame pts lv, _, _ = io.read_video(f_name, pts[4] + 1, pts[7]) assert len(lv) == 4 assert_equal(data[4:8], lv) @pytest.mark.parametrize("start", range(0, 80, 20)) @pytest.mark.parametrize("offset", range(1, 4)) def test_read_partial_video_bframes(self, start, offset): # do not use lossless encoding, to test the presence of B-frames options = {"bframes": "16", "keyint": "10", "min-keyint": "4"} with temp_video(100, 300, 300, 5, options=options) as (f_name, data): pts, _ = io.read_video_timestamps(f_name) lv, _, _ = io.read_video(f_name, pts[start], pts[start + offset - 1]) s_data = data[start : (start + offset)] assert len(lv) == offset assert_equal(s_data, lv, rtol=0.0, atol=self.TOLERANCE) lv, _, _ = io.read_video(f_name, pts[4] + 1, pts[7]) # TODO fix this if get_video_backend() == "pyav": assert len(lv) == 4 assert_equal(data[4:8], lv, rtol=0.0, atol=self.TOLERANCE) else: assert len(lv) == 3 assert_equal(data[5:8], lv, rtol=0.0, atol=self.TOLERANCE) def test_read_packed_b_frames_divx_file(self): name = "hmdb51_Turnk_r_Pippi_Michel_cartwheel_f_cm_np2_le_med_6.avi" f_name = os.path.join(VIDEO_DIR, name) pts, fps = io.read_video_timestamps(f_name) assert pts == sorted(pts) assert fps == 30 def test_read_timestamps_from_packet(self): with temp_video(10, 300, 300, 5, video_codec="mpeg4") as (f_name, data): pts, _ = io.read_video_timestamps(f_name) # note: not all formats/codecs provide accurate information for computing the # timestamps. For the format that we use here, this information is available, # so we use it as a baseline with av.open(f_name) as container: stream = container.streams[0] # make sure we went through the optimized codepath assert b"Lavc" in stream.codec_context.extradata pts_step = int(round(float(1 / (stream.average_rate * stream.time_base)))) num_frames = int(round(float(stream.average_rate * stream.time_base * stream.duration))) expected_pts = [i * pts_step for i in range(num_frames)] assert pts == expected_pts def test_read_video_pts_unit_sec(self): with temp_video(10, 300, 300, 5, lossless=True) as (f_name, data): lv, _, info = io.read_video(f_name, pts_unit="sec") assert_equal(data, lv) assert info["video_fps"] == 5 assert info == {"video_fps": 5} def test_read_timestamps_pts_unit_sec(self): with temp_video(10, 300, 300, 5) as (f_name, data): pts, _ = io.read_video_timestamps(f_name, pts_unit="sec") with av.open(f_name) as container: stream = container.streams[0] pts_step = int(round(float(1 / (stream.average_rate * stream.time_base)))) num_frames = int(round(float(stream.average_rate * stream.time_base * stream.duration))) expected_pts = [i * pts_step * stream.time_base for i in range(num_frames)] assert pts == expected_pts @pytest.mark.parametrize("start", range(5)) @pytest.mark.parametrize("offset", range(1, 4)) def test_read_partial_video_pts_unit_sec(self, start, offset): with temp_video(10, 300, 300, 5, lossless=True) as (f_name, data): pts, _ = io.read_video_timestamps(f_name, pts_unit="sec") lv, _, _ = io.read_video(f_name, pts[start], pts[start + offset - 1], pts_unit="sec") s_data = data[start : (start + offset)] assert len(lv) == offset assert_equal(s_data, lv) with av.open(f_name) as container: stream = container.streams[0] lv, _, _ = io.read_video( f_name, int(pts[4] * (1.0 / stream.time_base) + 1) * stream.time_base, pts[7], pts_unit="sec" ) if get_video_backend() == "pyav": # for "video_reader" backend, we don't decode the closest early frame # when the given start pts is not matching any frame pts assert len(lv) == 4 assert_equal(data[4:8], lv) def test_read_video_corrupted_file(self): with tempfile.NamedTemporaryFile(suffix=".mp4") as f: f.write(b"This is not an mpg4 file") video, audio, info = io.read_video(f.name) assert isinstance(video, torch.Tensor) assert isinstance(audio, torch.Tensor) assert video.numel() == 0 assert audio.numel() == 0 assert info == {} def test_read_video_timestamps_corrupted_file(self): with tempfile.NamedTemporaryFile(suffix=".mp4") as f: f.write(b"This is not an mpg4 file") video_pts, video_fps = io.read_video_timestamps(f.name) assert video_pts == [] assert video_fps is None @pytest.mark.skip(reason="Temporarily disabled due to new pyav") def test_read_video_partially_corrupted_file(self): with temp_video(5, 4, 4, 5, lossless=True) as (f_name, data): with open(f_name, "r+b") as f: size = os.path.getsize(f_name) bytes_to_overwrite = size // 10 # seek to the middle of the file f.seek(5 * bytes_to_overwrite) # corrupt 10% of the file from the middle f.write(b"\xff" * bytes_to_overwrite) # this exercises the container.decode assertion check video, audio, info = io.read_video(f.name, pts_unit="sec") # check that size is not equal to 5, but 3 # TODO fix this if get_video_backend() == "pyav": assert len(video) == 3 else: assert len(video) == 4 # but the valid decoded content is still correct assert_equal(video[:3], data[:3]) # and the last few frames are wrong with pytest.raises(AssertionError): assert_equal(video, data) @pytest.mark.skipif(sys.platform == "win32", reason="temporarily disabled on Windows") def test_write_video_with_audio(self, tmpdir): f_name = os.path.join(VIDEO_DIR, "R6llTwEh07w.mp4") video_tensor, audio_tensor, info = io.read_video(f_name, pts_unit="sec") out_f_name = os.path.join(tmpdir, "testing.mp4") io.video.write_video( out_f_name, video_tensor, round(info["video_fps"]), video_codec="libx264rgb", options={"crf": "0"}, audio_array=audio_tensor, audio_fps=info["audio_fps"], audio_codec="aac", ) out_video_tensor, out_audio_tensor, out_info = io.read_video(out_f_name, pts_unit="sec") assert info["video_fps"] == out_info["video_fps"] assert_equal(video_tensor, out_video_tensor) audio_stream = av.open(f_name).streams.audio[0] out_audio_stream = av.open(out_f_name).streams.audio[0] assert info["audio_fps"] == out_info["audio_fps"] assert audio_stream.rate == out_audio_stream.rate assert pytest.approx(out_audio_stream.frames, rel=0.0, abs=1) == audio_stream.frames assert audio_stream.frame_size == out_audio_stream.frame_size # TODO add tests for audio if __name__ == "__main__": pytest.main(__file__) vision-0.19.1/test/test_io_opt.py000066400000000000000000000005011466211133600167710ustar00rootroot00000000000000import unittest import test_io from torchvision import set_video_backend # noqa: 401 # Disabling the video backend switching temporarily # set_video_backend('video_reader') if __name__ == "__main__": suite = unittest.TestLoader().loadTestsFromModule(test_io) unittest.TextTestRunner(verbosity=1).run(suite) vision-0.19.1/test/test_models.py000066400000000000000000001115261466211133600167750ustar00rootroot00000000000000import contextlib import functools import operator import os import pkgutil import platform import sys import warnings from collections import OrderedDict from tempfile import TemporaryDirectory from typing import Any import pytest import torch import torch.fx import torch.nn as nn from _utils_internal import get_relative_path from common_utils import cpu_and_cuda, freeze_rng_state, map_nested_tensor_object, needs_cuda, set_rng_seed from PIL import Image from torchvision import models, transforms from torchvision.models import get_model_builder, list_models ACCEPT = os.getenv("EXPECTTEST_ACCEPT", "0") == "1" SKIP_BIG_MODEL = os.getenv("SKIP_BIG_MODEL", "1") == "1" def list_model_fns(module): return [get_model_builder(name) for name in list_models(module)] def _get_image(input_shape, real_image, device, dtype=None): """This routine loads a real or random image based on `real_image` argument. Currently, the real image is utilized for the following list of models: - `retinanet_resnet50_fpn`, - `retinanet_resnet50_fpn_v2`, - `keypointrcnn_resnet50_fpn`, - `fasterrcnn_resnet50_fpn`, - `fasterrcnn_resnet50_fpn_v2`, - `fcos_resnet50_fpn`, - `maskrcnn_resnet50_fpn`, - `maskrcnn_resnet50_fpn_v2`, in `test_classification_model` and `test_detection_model`. To do so, a keyword argument `real_image` was added to the abovelisted models in `_model_params` """ if real_image: # TODO: Maybe unify file discovery logic with test_image.py GRACE_HOPPER = os.path.join( os.path.dirname(os.path.abspath(__file__)), "assets", "encode_jpeg", "grace_hopper_517x606.jpg" ) img = Image.open(GRACE_HOPPER) original_width, original_height = img.size # make the image square img = img.crop((0, 0, original_width, original_width)) img = img.resize(input_shape[1:3]) convert_tensor = transforms.ToTensor() image = convert_tensor(img) assert tuple(image.size()) == input_shape return image.to(device=device, dtype=dtype) # RNG always on CPU, to ensure x in cuda tests is bitwise identical to x in cpu tests return torch.rand(input_shape).to(device=device, dtype=dtype) @pytest.fixture def disable_weight_loading(mocker): """When testing models, the two slowest operations are the downloading of the weights to a file and loading them into the model. Unless, you want to test against specific weights, these steps can be disabled without any drawbacks. Including this fixture into the signature of your test, i.e. `test_foo(disable_weight_loading)`, will recurse through all models in `torchvision.models` and will patch all occurrences of the function `download_state_dict_from_url` as well as the method `load_state_dict` on all subclasses of `nn.Module` to be no-ops. .. warning: Loaded models are still executable as normal, but will always have random weights. Make sure to not use this fixture if you want to compare the model output against reference values. """ starting_point = models function_name = "load_state_dict_from_url" method_name = "load_state_dict" module_names = {info.name for info in pkgutil.walk_packages(starting_point.__path__, f"{starting_point.__name__}.")} targets = {f"torchvision._internally_replaced_utils.{function_name}", f"torch.nn.Module.{method_name}"} for name in module_names: module = sys.modules.get(name) if not module: continue if function_name in module.__dict__: targets.add(f"{module.__name__}.{function_name}") targets.update( { f"{module.__name__}.{obj.__name__}.{method_name}" for obj in module.__dict__.values() if isinstance(obj, type) and issubclass(obj, nn.Module) and method_name in obj.__dict__ } ) for target in targets: # See https://github.com/pytorch/vision/pull/4867#discussion_r743677802 for details with contextlib.suppress(AttributeError): mocker.patch(target) def _get_expected_file(name=None): # Determine expected file based on environment expected_file_base = get_relative_path(os.path.realpath(__file__), "expect") # Note: for legacy reasons, the reference file names all had "ModelTest.test_" in their names # We hardcode it here to avoid having to re-generate the reference files expected_file = os.path.join(expected_file_base, "ModelTester.test_" + name) expected_file += "_expect.pkl" if not ACCEPT and not os.path.exists(expected_file): raise RuntimeError( f"No expect file exists for {os.path.basename(expected_file)} in {expected_file}; " "to accept the current output, re-run the failing test after setting the EXPECTTEST_ACCEPT " "env variable. For example: EXPECTTEST_ACCEPT=1 pytest test/test_models.py -k alexnet" ) return expected_file def _assert_expected(output, name, prec=None, atol=None, rtol=None): """Test that a python value matches the recorded contents of a file based on a "check" name. The value must be pickable with `torch.save`. This file is placed in the 'expect' directory in the same directory as the test script. You can automatically update the recorded test output using an EXPECTTEST_ACCEPT=1 env variable. """ expected_file = _get_expected_file(name) if ACCEPT: filename = {os.path.basename(expected_file)} print(f"Accepting updated output for {filename}:\n\n{output}") torch.save(output, expected_file) MAX_PICKLE_SIZE = 50 * 1000 # 50 KB binary_size = os.path.getsize(expected_file) if binary_size > MAX_PICKLE_SIZE: raise RuntimeError(f"The output for {filename}, is larger than 50kb - got {binary_size}kb") else: expected = torch.load(expected_file, weights_only=True) rtol = rtol or prec # keeping prec param for legacy reason, but could be removed ideally atol = atol or prec torch.testing.assert_close(output, expected, rtol=rtol, atol=atol, check_dtype=False, check_device=False) def _check_jit_scriptable(nn_module, args, unwrapper=None, eager_out=None): """Check that a nn.Module's results in TorchScript match eager and that it can be exported""" def get_export_import_copy(m): """Save and load a TorchScript model""" with TemporaryDirectory() as dir: path = os.path.join(dir, "script.pt") m.save(path) imported = torch.jit.load(path) return imported sm = torch.jit.script(nn_module) sm.eval() if eager_out is None: with torch.no_grad(), freeze_rng_state(): eager_out = nn_module(*args) with torch.no_grad(), freeze_rng_state(): script_out = sm(*args) if unwrapper: script_out = unwrapper(script_out) torch.testing.assert_close(eager_out, script_out, atol=1e-4, rtol=1e-4) m_import = get_export_import_copy(sm) with torch.no_grad(), freeze_rng_state(): imported_script_out = m_import(*args) if unwrapper: imported_script_out = unwrapper(imported_script_out) torch.testing.assert_close(script_out, imported_script_out, atol=3e-4, rtol=3e-4) def _check_fx_compatible(model, inputs, eager_out=None): model_fx = torch.fx.symbolic_trace(model) if eager_out is None: eager_out = model(inputs) with torch.no_grad(), freeze_rng_state(): fx_out = model_fx(inputs) torch.testing.assert_close(eager_out, fx_out) def _check_input_backprop(model, inputs): if isinstance(inputs, list): requires_grad = list() for inp in inputs: requires_grad.append(inp.requires_grad) inp.requires_grad_(True) else: requires_grad = inputs.requires_grad inputs.requires_grad_(True) out = model(inputs) if isinstance(out, dict): out["out"].sum().backward() else: if isinstance(out[0], dict): out[0]["scores"].sum().backward() else: out[0].sum().backward() if isinstance(inputs, list): for i, inp in enumerate(inputs): assert inputs[i].grad is not None inp.requires_grad_(requires_grad[i]) else: assert inputs.grad is not None inputs.requires_grad_(requires_grad) # If 'unwrapper' is provided it will be called with the script model outputs # before they are compared to the eager model outputs. This is useful if the # model outputs are different between TorchScript / Eager mode script_model_unwrapper = { "googlenet": lambda x: x.logits, "inception_v3": lambda x: x.logits, "fasterrcnn_resnet50_fpn": lambda x: x[1], "fasterrcnn_resnet50_fpn_v2": lambda x: x[1], "fasterrcnn_mobilenet_v3_large_fpn": lambda x: x[1], "fasterrcnn_mobilenet_v3_large_320_fpn": lambda x: x[1], "maskrcnn_resnet50_fpn": lambda x: x[1], "maskrcnn_resnet50_fpn_v2": lambda x: x[1], "keypointrcnn_resnet50_fpn": lambda x: x[1], "retinanet_resnet50_fpn": lambda x: x[1], "retinanet_resnet50_fpn_v2": lambda x: x[1], "ssd300_vgg16": lambda x: x[1], "ssdlite320_mobilenet_v3_large": lambda x: x[1], "fcos_resnet50_fpn": lambda x: x[1], } # The following models exhibit flaky numerics under autocast in _test_*_model harnesses. # This may be caused by the harness environment (e.g. num classes, input initialization # via torch.rand), and does not prove autocast is unsuitable when training with real data # (autocast has been used successfully with real data for some of these models). # TODO: investigate why autocast numerics are flaky in the harnesses. # # For the following models, _test_*_model harnesses skip numerical checks on outputs when # trying autocast. However, they still try an autocasted forward pass, so they still ensure # autocast coverage suffices to prevent dtype errors in each model. autocast_flaky_numerics = ( "inception_v3", "resnet101", "resnet152", "wide_resnet101_2", "deeplabv3_resnet50", "deeplabv3_resnet101", "deeplabv3_mobilenet_v3_large", "fcn_resnet50", "fcn_resnet101", "lraspp_mobilenet_v3_large", "maskrcnn_resnet50_fpn", "maskrcnn_resnet50_fpn_v2", "keypointrcnn_resnet50_fpn", ) # The tests for the following quantized models are flaky possibly due to inconsistent # rounding errors in different platforms. For this reason the input/output consistency # tests under test_quantized_classification_model will be skipped for the following models. quantized_flaky_models = ("inception_v3", "resnet50") # The tests for the following detection models are flaky. # We run those tests on float64 to avoid floating point errors. # FIXME: we shouldn't have to do that :'/ detection_flaky_models = ("keypointrcnn_resnet50_fpn", "maskrcnn_resnet50_fpn", "maskrcnn_resnet50_fpn_v2") # The following contains configuration parameters for all models which are used by # the _test_*_model methods. _model_params = { "inception_v3": {"input_shape": (1, 3, 299, 299), "init_weights": True}, "retinanet_resnet50_fpn": { "num_classes": 20, "score_thresh": 0.01, "min_size": 224, "max_size": 224, "input_shape": (3, 224, 224), "real_image": True, }, "retinanet_resnet50_fpn_v2": { "num_classes": 20, "score_thresh": 0.01, "min_size": 224, "max_size": 224, "input_shape": (3, 224, 224), "real_image": True, }, "keypointrcnn_resnet50_fpn": { "num_classes": 2, "min_size": 224, "max_size": 224, "box_score_thresh": 0.17, "input_shape": (3, 224, 224), "real_image": True, }, "fasterrcnn_resnet50_fpn": { "num_classes": 20, "min_size": 224, "max_size": 224, "input_shape": (3, 224, 224), "real_image": True, }, "fasterrcnn_resnet50_fpn_v2": { "num_classes": 20, "min_size": 224, "max_size": 224, "input_shape": (3, 224, 224), "real_image": True, }, "fcos_resnet50_fpn": { "num_classes": 2, "score_thresh": 0.05, "min_size": 224, "max_size": 224, "input_shape": (3, 224, 224), "real_image": True, }, "maskrcnn_resnet50_fpn": { "num_classes": 10, "min_size": 224, "max_size": 224, "input_shape": (3, 224, 224), "real_image": True, }, "maskrcnn_resnet50_fpn_v2": { "num_classes": 10, "min_size": 224, "max_size": 224, "input_shape": (3, 224, 224), "real_image": True, }, "fasterrcnn_mobilenet_v3_large_fpn": { "box_score_thresh": 0.02076, }, "fasterrcnn_mobilenet_v3_large_320_fpn": { "box_score_thresh": 0.02076, "rpn_pre_nms_top_n_test": 1000, "rpn_post_nms_top_n_test": 1000, }, "vit_h_14": { "image_size": 56, "input_shape": (1, 3, 56, 56), }, "mvit_v1_b": { "input_shape": (1, 3, 16, 224, 224), }, "mvit_v2_s": { "input_shape": (1, 3, 16, 224, 224), }, "s3d": { "input_shape": (1, 3, 16, 224, 224), }, "googlenet": {"init_weights": True}, } # speeding up slow models: slow_models = [ "convnext_base", "convnext_large", "resnext101_32x8d", "resnext101_64x4d", "wide_resnet101_2", "efficientnet_b6", "efficientnet_b7", "efficientnet_v2_m", "efficientnet_v2_l", "regnet_y_16gf", "regnet_y_32gf", "regnet_y_128gf", "regnet_x_16gf", "regnet_x_32gf", "swin_t", "swin_s", "swin_b", "swin_v2_t", "swin_v2_s", "swin_v2_b", ] for m in slow_models: _model_params[m] = {"input_shape": (1, 3, 64, 64)} # skip big models to reduce memory usage on CI test. We can exclude combinations of (platform-system, device). skipped_big_models = { "vit_h_14": {("Windows", "cpu"), ("Windows", "cuda")}, "regnet_y_128gf": {("Windows", "cpu"), ("Windows", "cuda")}, "mvit_v1_b": {("Windows", "cuda"), ("Linux", "cuda")}, "mvit_v2_s": {("Windows", "cuda"), ("Linux", "cuda")}, } def is_skippable(model_name, device): if model_name not in skipped_big_models: return False platform_system = platform.system() device_name = str(device).split(":")[0] return (platform_system, device_name) in skipped_big_models[model_name] # The following contains configuration and expected values to be used tests that are model specific _model_tests_values = { "retinanet_resnet50_fpn": { "max_trainable": 5, "n_trn_params_per_layer": [36, 46, 65, 78, 88, 89], }, "retinanet_resnet50_fpn_v2": { "max_trainable": 5, "n_trn_params_per_layer": [44, 74, 131, 170, 200, 203], }, "keypointrcnn_resnet50_fpn": { "max_trainable": 5, "n_trn_params_per_layer": [48, 58, 77, 90, 100, 101], }, "fasterrcnn_resnet50_fpn": { "max_trainable": 5, "n_trn_params_per_layer": [30, 40, 59, 72, 82, 83], }, "fasterrcnn_resnet50_fpn_v2": { "max_trainable": 5, "n_trn_params_per_layer": [50, 80, 137, 176, 206, 209], }, "maskrcnn_resnet50_fpn": { "max_trainable": 5, "n_trn_params_per_layer": [42, 52, 71, 84, 94, 95], }, "maskrcnn_resnet50_fpn_v2": { "max_trainable": 5, "n_trn_params_per_layer": [66, 96, 153, 192, 222, 225], }, "fasterrcnn_mobilenet_v3_large_fpn": { "max_trainable": 6, "n_trn_params_per_layer": [22, 23, 44, 70, 91, 97, 100], }, "fasterrcnn_mobilenet_v3_large_320_fpn": { "max_trainable": 6, "n_trn_params_per_layer": [22, 23, 44, 70, 91, 97, 100], }, "ssd300_vgg16": { "max_trainable": 5, "n_trn_params_per_layer": [45, 51, 57, 63, 67, 71], }, "ssdlite320_mobilenet_v3_large": { "max_trainable": 6, "n_trn_params_per_layer": [96, 99, 138, 200, 239, 257, 266], }, "fcos_resnet50_fpn": { "max_trainable": 5, "n_trn_params_per_layer": [54, 64, 83, 96, 106, 107], }, } def _make_sliced_model(model, stop_layer): layers = OrderedDict() for name, layer in model.named_children(): layers[name] = layer if name == stop_layer: break new_model = torch.nn.Sequential(layers) return new_model @pytest.mark.parametrize("model_fn", [models.densenet121, models.densenet169, models.densenet201, models.densenet161]) def test_memory_efficient_densenet(model_fn): input_shape = (1, 3, 300, 300) x = torch.rand(input_shape) model1 = model_fn(num_classes=50, memory_efficient=True) params = model1.state_dict() num_params = sum(x.numel() for x in model1.parameters()) model1.eval() out1 = model1(x) out1.sum().backward() num_grad = sum(x.grad.numel() for x in model1.parameters() if x.grad is not None) model2 = model_fn(num_classes=50, memory_efficient=False) model2.load_state_dict(params) model2.eval() out2 = model2(x) assert num_params == num_grad torch.testing.assert_close(out1, out2, rtol=0.0, atol=1e-5) _check_input_backprop(model1, x) _check_input_backprop(model2, x) @pytest.mark.parametrize("dilate_layer_2", (True, False)) @pytest.mark.parametrize("dilate_layer_3", (True, False)) @pytest.mark.parametrize("dilate_layer_4", (True, False)) def test_resnet_dilation(dilate_layer_2, dilate_layer_3, dilate_layer_4): # TODO improve tests to also check that each layer has the right dimensionality model = models.resnet50(replace_stride_with_dilation=(dilate_layer_2, dilate_layer_3, dilate_layer_4)) model = _make_sliced_model(model, stop_layer="layer4") model.eval() x = torch.rand(1, 3, 224, 224) out = model(x) f = 2 ** sum((dilate_layer_2, dilate_layer_3, dilate_layer_4)) assert out.shape == (1, 2048, 7 * f, 7 * f) def test_mobilenet_v2_residual_setting(): model = models.mobilenet_v2(inverted_residual_setting=[[1, 16, 1, 1], [6, 24, 2, 2]]) model.eval() x = torch.rand(1, 3, 224, 224) out = model(x) assert out.shape[-1] == 1000 @pytest.mark.parametrize("model_fn", [models.mobilenet_v2, models.mobilenet_v3_large, models.mobilenet_v3_small]) def test_mobilenet_norm_layer(model_fn): model = model_fn() assert any(isinstance(x, nn.BatchNorm2d) for x in model.modules()) def get_gn(num_channels): return nn.GroupNorm(1, num_channels) model = model_fn(norm_layer=get_gn) assert not (any(isinstance(x, nn.BatchNorm2d) for x in model.modules())) assert any(isinstance(x, nn.GroupNorm) for x in model.modules()) def test_inception_v3_eval(): kwargs = {} kwargs["transform_input"] = True kwargs["aux_logits"] = True kwargs["init_weights"] = False name = "inception_v3" model = models.Inception3(**kwargs) model.aux_logits = False model.AuxLogits = None model = model.eval() x = torch.rand(1, 3, 299, 299) _check_jit_scriptable(model, (x,), unwrapper=script_model_unwrapper.get(name, None)) _check_input_backprop(model, x) def test_fasterrcnn_double(): model = models.detection.fasterrcnn_resnet50_fpn(num_classes=50, weights=None, weights_backbone=None) model.double() model.eval() input_shape = (3, 300, 300) x = torch.rand(input_shape, dtype=torch.float64) model_input = [x] out = model(model_input) assert model_input[0] is x assert len(out) == 1 assert "boxes" in out[0] assert "scores" in out[0] assert "labels" in out[0] _check_input_backprop(model, model_input) def test_googlenet_eval(): kwargs = {} kwargs["transform_input"] = True kwargs["aux_logits"] = True kwargs["init_weights"] = False name = "googlenet" model = models.GoogLeNet(**kwargs) model.aux_logits = False model.aux1 = None model.aux2 = None model = model.eval() x = torch.rand(1, 3, 224, 224) _check_jit_scriptable(model, (x,), unwrapper=script_model_unwrapper.get(name, None)) _check_input_backprop(model, x) @needs_cuda def test_fasterrcnn_switch_devices(): def checkOut(out): assert len(out) == 1 assert "boxes" in out[0] assert "scores" in out[0] assert "labels" in out[0] model = models.detection.fasterrcnn_resnet50_fpn(num_classes=50, weights=None, weights_backbone=None) model.cuda() model.eval() input_shape = (3, 300, 300) x = torch.rand(input_shape, device="cuda") model_input = [x] out = model(model_input) assert model_input[0] is x checkOut(out) with torch.cuda.amp.autocast(): out = model(model_input) checkOut(out) _check_input_backprop(model, model_input) # now switch to cpu and make sure it works model.cpu() x = x.cpu() out_cpu = model([x]) checkOut(out_cpu) _check_input_backprop(model, [x]) def test_generalizedrcnn_transform_repr(): min_size, max_size = 224, 299 image_mean = [0.485, 0.456, 0.406] image_std = [0.229, 0.224, 0.225] t = models.detection.transform.GeneralizedRCNNTransform( min_size=min_size, max_size=max_size, image_mean=image_mean, image_std=image_std ) # Check integrity of object __repr__ attribute expected_string = "GeneralizedRCNNTransform(" _indent = "\n " expected_string += f"{_indent}Normalize(mean={image_mean}, std={image_std})" expected_string += f"{_indent}Resize(min_size=({min_size},), max_size={max_size}, " expected_string += "mode='bilinear')\n)" assert t.__repr__() == expected_string test_vit_conv_stem_configs = [ models.vision_transformer.ConvStemConfig(kernel_size=3, stride=2, out_channels=64), models.vision_transformer.ConvStemConfig(kernel_size=3, stride=2, out_channels=128), models.vision_transformer.ConvStemConfig(kernel_size=3, stride=1, out_channels=128), models.vision_transformer.ConvStemConfig(kernel_size=3, stride=2, out_channels=256), models.vision_transformer.ConvStemConfig(kernel_size=3, stride=1, out_channels=256), models.vision_transformer.ConvStemConfig(kernel_size=3, stride=2, out_channels=512), ] def vitc_b_16(**kwargs: Any): return models.VisionTransformer( image_size=224, patch_size=16, num_layers=12, num_heads=12, hidden_dim=768, mlp_dim=3072, conv_stem_configs=test_vit_conv_stem_configs, **kwargs, ) @pytest.mark.parametrize("model_fn", [vitc_b_16]) @pytest.mark.parametrize("dev", cpu_and_cuda()) def test_vitc_models(model_fn, dev): test_classification_model(model_fn, dev) @torch.backends.cudnn.flags(allow_tf32=False) # see: https://github.com/pytorch/vision/issues/7618 @pytest.mark.parametrize("model_fn", list_model_fns(models)) @pytest.mark.parametrize("dev", cpu_and_cuda()) def test_classification_model(model_fn, dev): set_rng_seed(0) defaults = { "num_classes": 50, "input_shape": (1, 3, 224, 224), } model_name = model_fn.__name__ if SKIP_BIG_MODEL and is_skippable(model_name, dev): pytest.skip("Skipped to reduce memory usage. Set env var SKIP_BIG_MODEL=0 to enable test for this model") kwargs = {**defaults, **_model_params.get(model_name, {})} num_classes = kwargs.get("num_classes") input_shape = kwargs.pop("input_shape") real_image = kwargs.pop("real_image", False) model = model_fn(**kwargs) model.eval().to(device=dev) x = _get_image(input_shape=input_shape, real_image=real_image, device=dev) out = model(x) # FIXME: this if/else is nasty and only here to please our CI prior to the # release. We rethink these tests altogether. if model_name == "resnet101": prec = 0.2 else: # FIXME: this is probably still way too high. prec = 0.1 _assert_expected(out.cpu(), model_name, prec=prec) assert out.shape[-1] == num_classes _check_jit_scriptable(model, (x,), unwrapper=script_model_unwrapper.get(model_name, None), eager_out=out) _check_fx_compatible(model, x, eager_out=out) if dev == "cuda": with torch.cuda.amp.autocast(): out = model(x) # See autocast_flaky_numerics comment at top of file. if model_name not in autocast_flaky_numerics: _assert_expected(out.cpu(), model_name, prec=0.1) assert out.shape[-1] == 50 _check_input_backprop(model, x) @pytest.mark.parametrize("model_fn", list_model_fns(models.segmentation)) @pytest.mark.parametrize("dev", cpu_and_cuda()) def test_segmentation_model(model_fn, dev): set_rng_seed(0) defaults = { "num_classes": 10, "weights_backbone": None, "input_shape": (1, 3, 32, 32), } model_name = model_fn.__name__ kwargs = {**defaults, **_model_params.get(model_name, {})} input_shape = kwargs.pop("input_shape") model = model_fn(**kwargs) model.eval().to(device=dev) # RNG always on CPU, to ensure x in cuda tests is bitwise identical to x in cpu tests x = torch.rand(input_shape).to(device=dev) with torch.no_grad(), freeze_rng_state(): out = model(x) def check_out(out): prec = 0.01 try: # We first try to assert the entire output if possible. This is not # only the best way to assert results but also handles the cases # where we need to create a new expected result. _assert_expected(out.cpu(), model_name, prec=prec) except AssertionError: # Unfortunately some segmentation models are flaky with autocast # so instead of validating the probability scores, check that the class # predictions match. expected_file = _get_expected_file(model_name) expected = torch.load(expected_file, weights_only=True) torch.testing.assert_close( out.argmax(dim=1), expected.argmax(dim=1), rtol=prec, atol=prec, check_device=False ) return False # Partial validation performed return True # Full validation performed full_validation = check_out(out["out"]) _check_jit_scriptable(model, (x,), unwrapper=script_model_unwrapper.get(model_name, None), eager_out=out) _check_fx_compatible(model, x, eager_out=out) if dev == "cuda": with torch.cuda.amp.autocast(), torch.no_grad(), freeze_rng_state(): out = model(x) # See autocast_flaky_numerics comment at top of file. if model_name not in autocast_flaky_numerics: full_validation &= check_out(out["out"]) if not full_validation: msg = ( f"The output of {test_segmentation_model.__name__} could only be partially validated. " "This is likely due to unit-test flakiness, but you may " "want to do additional manual checks if you made " "significant changes to the codebase." ) warnings.warn(msg, RuntimeWarning) pytest.skip(msg) _check_input_backprop(model, x) @pytest.mark.parametrize("model_fn", list_model_fns(models.detection)) @pytest.mark.parametrize("dev", cpu_and_cuda()) def test_detection_model(model_fn, dev): set_rng_seed(0) defaults = { "num_classes": 50, "weights_backbone": None, "input_shape": (3, 300, 300), } model_name = model_fn.__name__ if model_name in detection_flaky_models: dtype = torch.float64 else: dtype = torch.get_default_dtype() kwargs = {**defaults, **_model_params.get(model_name, {})} input_shape = kwargs.pop("input_shape") real_image = kwargs.pop("real_image", False) model = model_fn(**kwargs) model.eval().to(device=dev, dtype=dtype) x = _get_image(input_shape=input_shape, real_image=real_image, device=dev, dtype=dtype) model_input = [x] with torch.no_grad(), freeze_rng_state(): out = model(model_input) assert model_input[0] is x def check_out(out): assert len(out) == 1 def compact(tensor): tensor = tensor.cpu() size = tensor.size() elements_per_sample = functools.reduce(operator.mul, size[1:], 1) if elements_per_sample > 30: return compute_mean_std(tensor) else: return subsample_tensor(tensor) def subsample_tensor(tensor): num_elems = tensor.size(0) num_samples = 20 if num_elems <= num_samples: return tensor ith_index = num_elems // num_samples return tensor[ith_index - 1 :: ith_index] def compute_mean_std(tensor): # can't compute mean of integral tensor tensor = tensor.to(torch.double) mean = torch.mean(tensor) std = torch.std(tensor) return {"mean": mean, "std": std} output = map_nested_tensor_object(out, tensor_map_fn=compact) prec = 0.01 try: # We first try to assert the entire output if possible. This is not # only the best way to assert results but also handles the cases # where we need to create a new expected result. _assert_expected(output, model_name, prec=prec) except AssertionError: # Unfortunately detection models are flaky due to the unstable sort # in NMS. If matching across all outputs fails, use the same approach # as in NMSTester.test_nms_cuda to see if this is caused by duplicate # scores. expected_file = _get_expected_file(model_name) expected = torch.load(expected_file, weights_only=True) torch.testing.assert_close( output[0]["scores"], expected[0]["scores"], rtol=prec, atol=prec, check_device=False, check_dtype=False ) # Note: Fmassa proposed turning off NMS by adapting the threshold # and then using the Hungarian algorithm as in DETR to find the # best match between output and expected boxes and eliminate some # of the flakiness. Worth exploring. return False # Partial validation performed return True # Full validation performed full_validation = check_out(out) _check_jit_scriptable(model, ([x],), unwrapper=script_model_unwrapper.get(model_name, None), eager_out=out) if dev == "cuda": with torch.cuda.amp.autocast(), torch.no_grad(), freeze_rng_state(): out = model(model_input) # See autocast_flaky_numerics comment at top of file. if model_name not in autocast_flaky_numerics: full_validation &= check_out(out) if not full_validation: msg = ( f"The output of {test_detection_model.__name__} could only be partially validated. " "This is likely due to unit-test flakiness, but you may " "want to do additional manual checks if you made " "significant changes to the codebase." ) warnings.warn(msg, RuntimeWarning) pytest.skip(msg) _check_input_backprop(model, model_input) @pytest.mark.parametrize("model_fn", list_model_fns(models.detection)) def test_detection_model_validation(model_fn): set_rng_seed(0) model = model_fn(num_classes=50, weights=None, weights_backbone=None) input_shape = (3, 300, 300) x = [torch.rand(input_shape)] # validate that targets are present in training with pytest.raises(AssertionError): model(x) # validate type targets = [{"boxes": 0.0}] with pytest.raises(AssertionError): model(x, targets=targets) # validate boxes shape for boxes in (torch.rand((4,)), torch.rand((1, 5))): targets = [{"boxes": boxes}] with pytest.raises(AssertionError): model(x, targets=targets) # validate that no degenerate boxes are present boxes = torch.tensor([[1, 3, 1, 4], [2, 4, 3, 4]]) targets = [{"boxes": boxes}] with pytest.raises(AssertionError): model(x, targets=targets) @pytest.mark.parametrize("model_fn", list_model_fns(models.video)) @pytest.mark.parametrize("dev", cpu_and_cuda()) def test_video_model(model_fn, dev): set_rng_seed(0) # the default input shape is # bs * num_channels * clip_len * h *w defaults = { "input_shape": (1, 3, 4, 112, 112), "num_classes": 50, } model_name = model_fn.__name__ if SKIP_BIG_MODEL and is_skippable(model_name, dev): pytest.skip("Skipped to reduce memory usage. Set env var SKIP_BIG_MODEL=0 to enable test for this model") kwargs = {**defaults, **_model_params.get(model_name, {})} num_classes = kwargs.get("num_classes") input_shape = kwargs.pop("input_shape") # test both basicblock and Bottleneck model = model_fn(**kwargs) model.eval().to(device=dev) # RNG always on CPU, to ensure x in cuda tests is bitwise identical to x in cpu tests x = torch.rand(input_shape).to(device=dev) out = model(x) _assert_expected(out.cpu(), model_name, prec=0.1) assert out.shape[-1] == num_classes _check_jit_scriptable(model, (x,), unwrapper=script_model_unwrapper.get(model_name, None), eager_out=out) _check_fx_compatible(model, x, eager_out=out) assert out.shape[-1] == num_classes if dev == "cuda": with torch.cuda.amp.autocast(): out = model(x) # See autocast_flaky_numerics comment at top of file. if model_name not in autocast_flaky_numerics: _assert_expected(out.cpu(), model_name, prec=0.1) assert out.shape[-1] == num_classes _check_input_backprop(model, x) @pytest.mark.skipif( not ( "fbgemm" in torch.backends.quantized.supported_engines and "qnnpack" in torch.backends.quantized.supported_engines ), reason="This Pytorch Build has not been built with fbgemm and qnnpack", ) @pytest.mark.parametrize("model_fn", list_model_fns(models.quantization)) def test_quantized_classification_model(model_fn): set_rng_seed(0) defaults = { "num_classes": 5, "input_shape": (1, 3, 224, 224), "quantize": True, } model_name = model_fn.__name__ kwargs = {**defaults, **_model_params.get(model_name, {})} input_shape = kwargs.pop("input_shape") # First check if quantize=True provides models that can run with input data model = model_fn(**kwargs) model.eval() x = torch.rand(input_shape) out = model(x) if model_name not in quantized_flaky_models: _assert_expected(out.cpu(), model_name + "_quantized", prec=2e-2) assert out.shape[-1] == 5 _check_jit_scriptable(model, (x,), unwrapper=script_model_unwrapper.get(model_name, None), eager_out=out) _check_fx_compatible(model, x, eager_out=out) else: try: torch.jit.script(model) except Exception as e: raise AssertionError("model cannot be scripted.") from e kwargs["quantize"] = False for eval_mode in [True, False]: model = model_fn(**kwargs) if eval_mode: model.eval() model.qconfig = torch.ao.quantization.default_qconfig else: model.train() model.qconfig = torch.ao.quantization.default_qat_qconfig model.fuse_model(is_qat=not eval_mode) if eval_mode: torch.ao.quantization.prepare(model, inplace=True) else: torch.ao.quantization.prepare_qat(model, inplace=True) model.eval() torch.ao.quantization.convert(model, inplace=True) @pytest.mark.parametrize("model_fn", list_model_fns(models.detection)) def test_detection_model_trainable_backbone_layers(model_fn, disable_weight_loading): model_name = model_fn.__name__ max_trainable = _model_tests_values[model_name]["max_trainable"] n_trainable_params = [] for trainable_layers in range(0, max_trainable + 1): model = model_fn(weights=None, weights_backbone="DEFAULT", trainable_backbone_layers=trainable_layers) n_trainable_params.append(len([p for p in model.parameters() if p.requires_grad])) assert n_trainable_params == _model_tests_values[model_name]["n_trn_params_per_layer"] @needs_cuda @pytest.mark.parametrize("model_fn", list_model_fns(models.optical_flow)) @pytest.mark.parametrize("scripted", (False, True)) def test_raft(model_fn, scripted): torch.manual_seed(0) # We need very small images, otherwise the pickle size would exceed the 50KB # As a result we need to override the correlation pyramid to not downsample # too much, otherwise we would get nan values (effective H and W would be # reduced to 1) corr_block = models.optical_flow.raft.CorrBlock(num_levels=2, radius=2) model = model_fn(corr_block=corr_block).eval().to("cuda") if scripted: model = torch.jit.script(model) bs = 1 img1 = torch.rand(bs, 3, 80, 72).cuda() img2 = torch.rand(bs, 3, 80, 72).cuda() preds = model(img1, img2) flow_pred = preds[-1] # Tolerance is fairly high, but there are 2 * H * W outputs to check # The .pkl were generated on the AWS cluter, on the CI it looks like the results are slightly different _assert_expected(flow_pred.cpu(), name=model_fn.__name__, atol=1e-2, rtol=1) if __name__ == "__main__": pytest.main([__file__]) vision-0.19.1/test/test_models_detection_anchor_utils.py000066400000000000000000000066411466211133600236060ustar00rootroot00000000000000import pytest import torch from common_utils import assert_equal from torchvision.models.detection.anchor_utils import AnchorGenerator, DefaultBoxGenerator from torchvision.models.detection.image_list import ImageList class Tester: def test_incorrect_anchors(self): incorrect_sizes = ( (2, 4, 8), (32, 8), ) incorrect_aspects = (0.5, 1.0) anc = AnchorGenerator(incorrect_sizes, incorrect_aspects) image1 = torch.randn(3, 800, 800) image_list = ImageList(image1, [(800, 800)]) feature_maps = [torch.randn(1, 50)] pytest.raises(AssertionError, anc, image_list, feature_maps) def _init_test_anchor_generator(self): anchor_sizes = ((10,),) aspect_ratios = ((1,),) anchor_generator = AnchorGenerator(anchor_sizes, aspect_ratios) return anchor_generator def _init_test_defaultbox_generator(self): aspect_ratios = [[2]] dbox_generator = DefaultBoxGenerator(aspect_ratios) return dbox_generator def get_features(self, images): s0, s1 = images.shape[-2:] features = [torch.rand(2, 8, s0 // 5, s1 // 5)] return features def test_anchor_generator(self): images = torch.randn(2, 3, 15, 15) features = self.get_features(images) image_shapes = [i.shape[-2:] for i in images] images = ImageList(images, image_shapes) model = self._init_test_anchor_generator() model.eval() anchors = model(images, features) # Estimate the number of target anchors grid_sizes = [f.shape[-2:] for f in features] num_anchors_estimated = 0 for sizes, num_anchors_per_loc in zip(grid_sizes, model.num_anchors_per_location()): num_anchors_estimated += sizes[0] * sizes[1] * num_anchors_per_loc anchors_output = torch.tensor( [ [-5.0, -5.0, 5.0, 5.0], [0.0, -5.0, 10.0, 5.0], [5.0, -5.0, 15.0, 5.0], [-5.0, 0.0, 5.0, 10.0], [0.0, 0.0, 10.0, 10.0], [5.0, 0.0, 15.0, 10.0], [-5.0, 5.0, 5.0, 15.0], [0.0, 5.0, 10.0, 15.0], [5.0, 5.0, 15.0, 15.0], ] ) assert num_anchors_estimated == 9 assert len(anchors) == 2 assert tuple(anchors[0].shape) == (9, 4) assert tuple(anchors[1].shape) == (9, 4) assert_equal(anchors[0], anchors_output) assert_equal(anchors[1], anchors_output) def test_defaultbox_generator(self): images = torch.zeros(2, 3, 15, 15) features = [torch.zeros(2, 8, 1, 1)] image_shapes = [i.shape[-2:] for i in images] images = ImageList(images, image_shapes) model = self._init_test_defaultbox_generator() model.eval() dboxes = model(images, features) dboxes_output = torch.tensor( [ [6.3750, 6.3750, 8.6250, 8.6250], [4.7443, 4.7443, 10.2557, 10.2557], [5.9090, 6.7045, 9.0910, 8.2955], [6.7045, 5.9090, 8.2955, 9.0910], ] ) assert len(dboxes) == 2 assert tuple(dboxes[0].shape) == (4, 4) assert tuple(dboxes[1].shape) == (4, 4) torch.testing.assert_close(dboxes[0], dboxes_output, rtol=1e-5, atol=1e-8) torch.testing.assert_close(dboxes[1], dboxes_output, rtol=1e-5, atol=1e-8) vision-0.19.1/test/test_models_detection_negative_samples.py000066400000000000000000000144331466211133600244400ustar00rootroot00000000000000import pytest import torch import torchvision.models from common_utils import assert_equal from torchvision.models.detection.faster_rcnn import FastRCNNPredictor, TwoMLPHead from torchvision.models.detection.roi_heads import RoIHeads from torchvision.models.detection.rpn import AnchorGenerator, RegionProposalNetwork, RPNHead from torchvision.ops import MultiScaleRoIAlign class TestModelsDetectionNegativeSamples: def _make_empty_sample(self, add_masks=False, add_keypoints=False): images = [torch.rand((3, 100, 100), dtype=torch.float32)] boxes = torch.zeros((0, 4), dtype=torch.float32) negative_target = { "boxes": boxes, "labels": torch.zeros(0, dtype=torch.int64), "image_id": 4, "area": (boxes[:, 3] - boxes[:, 1]) * (boxes[:, 2] - boxes[:, 0]), "iscrowd": torch.zeros((0,), dtype=torch.int64), } if add_masks: negative_target["masks"] = torch.zeros(0, 100, 100, dtype=torch.uint8) if add_keypoints: negative_target["keypoints"] = torch.zeros(17, 0, 3, dtype=torch.float32) targets = [negative_target] return images, targets def test_targets_to_anchors(self): _, targets = self._make_empty_sample() anchors = [torch.randint(-50, 50, (3, 4), dtype=torch.float32)] anchor_sizes = ((32,), (64,), (128,), (256,), (512,)) aspect_ratios = ((0.5, 1.0, 2.0),) * len(anchor_sizes) rpn_anchor_generator = AnchorGenerator(anchor_sizes, aspect_ratios) rpn_head = RPNHead(4, rpn_anchor_generator.num_anchors_per_location()[0]) head = RegionProposalNetwork(rpn_anchor_generator, rpn_head, 0.5, 0.3, 256, 0.5, 2000, 2000, 0.7, 0.05) labels, matched_gt_boxes = head.assign_targets_to_anchors(anchors, targets) assert labels[0].sum() == 0 assert labels[0].shape == torch.Size([anchors[0].shape[0]]) assert labels[0].dtype == torch.float32 assert matched_gt_boxes[0].sum() == 0 assert matched_gt_boxes[0].shape == anchors[0].shape assert matched_gt_boxes[0].dtype == torch.float32 def test_assign_targets_to_proposals(self): proposals = [torch.randint(-50, 50, (20, 4), dtype=torch.float32)] gt_boxes = [torch.zeros((0, 4), dtype=torch.float32)] gt_labels = [torch.tensor([[0]], dtype=torch.int64)] box_roi_pool = MultiScaleRoIAlign(featmap_names=["0", "1", "2", "3"], output_size=7, sampling_ratio=2) resolution = box_roi_pool.output_size[0] representation_size = 1024 box_head = TwoMLPHead(4 * resolution**2, representation_size) representation_size = 1024 box_predictor = FastRCNNPredictor(representation_size, 2) roi_heads = RoIHeads( # Box box_roi_pool, box_head, box_predictor, 0.5, 0.5, 512, 0.25, None, 0.05, 0.5, 100, ) matched_idxs, labels = roi_heads.assign_targets_to_proposals(proposals, gt_boxes, gt_labels) assert matched_idxs[0].sum() == 0 assert matched_idxs[0].shape == torch.Size([proposals[0].shape[0]]) assert matched_idxs[0].dtype == torch.int64 assert labels[0].sum() == 0 assert labels[0].shape == torch.Size([proposals[0].shape[0]]) assert labels[0].dtype == torch.int64 @pytest.mark.parametrize( "name", [ "fasterrcnn_resnet50_fpn", "fasterrcnn_mobilenet_v3_large_fpn", "fasterrcnn_mobilenet_v3_large_320_fpn", ], ) def test_forward_negative_sample_frcnn(self, name): model = torchvision.models.get_model( name, weights=None, weights_backbone=None, num_classes=2, min_size=100, max_size=100 ) images, targets = self._make_empty_sample() loss_dict = model(images, targets) assert_equal(loss_dict["loss_box_reg"], torch.tensor(0.0)) assert_equal(loss_dict["loss_rpn_box_reg"], torch.tensor(0.0)) def test_forward_negative_sample_mrcnn(self): model = torchvision.models.detection.maskrcnn_resnet50_fpn( weights=None, weights_backbone=None, num_classes=2, min_size=100, max_size=100 ) images, targets = self._make_empty_sample(add_masks=True) loss_dict = model(images, targets) assert_equal(loss_dict["loss_box_reg"], torch.tensor(0.0)) assert_equal(loss_dict["loss_rpn_box_reg"], torch.tensor(0.0)) assert_equal(loss_dict["loss_mask"], torch.tensor(0.0)) def test_forward_negative_sample_krcnn(self): model = torchvision.models.detection.keypointrcnn_resnet50_fpn( weights=None, weights_backbone=None, num_classes=2, min_size=100, max_size=100 ) images, targets = self._make_empty_sample(add_keypoints=True) loss_dict = model(images, targets) assert_equal(loss_dict["loss_box_reg"], torch.tensor(0.0)) assert_equal(loss_dict["loss_rpn_box_reg"], torch.tensor(0.0)) assert_equal(loss_dict["loss_keypoint"], torch.tensor(0.0)) def test_forward_negative_sample_retinanet(self): model = torchvision.models.detection.retinanet_resnet50_fpn( weights=None, weights_backbone=None, num_classes=2, min_size=100, max_size=100 ) images, targets = self._make_empty_sample() loss_dict = model(images, targets) assert_equal(loss_dict["bbox_regression"], torch.tensor(0.0)) def test_forward_negative_sample_fcos(self): model = torchvision.models.detection.fcos_resnet50_fpn( weights=None, weights_backbone=None, num_classes=2, min_size=100, max_size=100 ) images, targets = self._make_empty_sample() loss_dict = model(images, targets) assert_equal(loss_dict["bbox_regression"], torch.tensor(0.0)) assert_equal(loss_dict["bbox_ctrness"], torch.tensor(0.0)) def test_forward_negative_sample_ssd(self): model = torchvision.models.detection.ssd300_vgg16(weights=None, weights_backbone=None, num_classes=2) images, targets = self._make_empty_sample() loss_dict = model(images, targets) assert_equal(loss_dict["bbox_regression"], torch.tensor(0.0)) if __name__ == "__main__": pytest.main([__file__]) vision-0.19.1/test/test_models_detection_utils.py000066400000000000000000000100641466211133600222460ustar00rootroot00000000000000import copy import pytest import torch from common_utils import assert_equal from torchvision.models.detection import _utils, backbone_utils from torchvision.models.detection.transform import GeneralizedRCNNTransform class TestModelsDetectionUtils: def test_balanced_positive_negative_sampler(self): sampler = _utils.BalancedPositiveNegativeSampler(4, 0.25) # keep all 6 negatives first, then add 3 positives, last two are ignore matched_idxs = [torch.tensor([0, 0, 0, 0, 0, 0, 1, 1, 1, -1, -1])] pos, neg = sampler(matched_idxs) # we know the number of elements that should be sampled for the positive (1) # and the negative (3), and their location. Let's make sure that they are # there assert pos[0].sum() == 1 assert pos[0][6:9].sum() == 1 assert neg[0].sum() == 3 assert neg[0][0:6].sum() == 3 def test_box_linear_coder(self): box_coder = _utils.BoxLinearCoder(normalize_by_size=True) # Generate a random 10x4 boxes tensor, with coordinates < 50. boxes = torch.rand(10, 4) * 50 boxes.clamp_(min=1.0) # tiny boxes cause numerical instability in box regression boxes[:, 2:] += boxes[:, :2] proposals = torch.tensor([0, 0, 101, 101] * 10).reshape(10, 4).float() rel_codes = box_coder.encode(boxes, proposals) pred_boxes = box_coder.decode(rel_codes, boxes) torch.allclose(proposals, pred_boxes) @pytest.mark.parametrize("train_layers, exp_froz_params", [(0, 53), (1, 43), (2, 24), (3, 11), (4, 1), (5, 0)]) def test_resnet_fpn_backbone_frozen_layers(self, train_layers, exp_froz_params): # we know how many initial layers and parameters of the network should # be frozen for each trainable_backbone_layers parameter value # i.e. all 53 params are frozen if trainable_backbone_layers=0 # ad first 24 params are frozen if trainable_backbone_layers=2 model = backbone_utils.resnet_fpn_backbone("resnet50", weights=None, trainable_layers=train_layers) # boolean list that is true if the param at that index is frozen is_frozen = [not parameter.requires_grad for _, parameter in model.named_parameters()] # check that expected initial number of layers are frozen assert all(is_frozen[:exp_froz_params]) def test_validate_resnet_inputs_detection(self): # default number of backbone layers to train ret = backbone_utils._validate_trainable_layers( is_trained=True, trainable_backbone_layers=None, max_value=5, default_value=3 ) assert ret == 3 # can't go beyond 5 with pytest.raises(ValueError, match=r"Trainable backbone layers should be in the range"): ret = backbone_utils._validate_trainable_layers( is_trained=True, trainable_backbone_layers=6, max_value=5, default_value=3 ) # if not trained, should use all trainable layers and warn with pytest.warns(UserWarning): ret = backbone_utils._validate_trainable_layers( is_trained=False, trainable_backbone_layers=0, max_value=5, default_value=3 ) assert ret == 5 def test_transform_copy_targets(self): transform = GeneralizedRCNNTransform(300, 500, torch.zeros(3), torch.ones(3)) image = [torch.rand(3, 200, 300), torch.rand(3, 200, 200)] targets = [{"boxes": torch.rand(3, 4)}, {"boxes": torch.rand(2, 4)}] targets_copy = copy.deepcopy(targets) out = transform(image, targets) # noqa: F841 assert_equal(targets[0]["boxes"], targets_copy[0]["boxes"]) assert_equal(targets[1]["boxes"], targets_copy[1]["boxes"]) def test_not_float_normalize(self): transform = GeneralizedRCNNTransform(300, 500, torch.zeros(3), torch.ones(3)) image = [torch.randint(0, 255, (3, 200, 300), dtype=torch.uint8)] targets = [{"boxes": torch.rand(3, 4)}] with pytest.raises(TypeError): out = transform(image, targets) # noqa: F841 if __name__ == "__main__": pytest.main([__file__]) vision-0.19.1/test/test_onnx.py000066400000000000000000000534351466211133600165000ustar00rootroot00000000000000import io from collections import OrderedDict from typing import List, Optional, Tuple import pytest import torch from common_utils import assert_equal, set_rng_seed from torchvision import models, ops from torchvision.models.detection.faster_rcnn import FastRCNNPredictor, TwoMLPHead from torchvision.models.detection.image_list import ImageList from torchvision.models.detection.roi_heads import RoIHeads from torchvision.models.detection.rpn import AnchorGenerator, RegionProposalNetwork, RPNHead from torchvision.models.detection.transform import GeneralizedRCNNTransform from torchvision.ops import _register_onnx_ops # In environments without onnxruntime we prefer to # invoke all tests in the repo and have this one skipped rather than fail. onnxruntime = pytest.importorskip("onnxruntime") class TestONNXExporter: @classmethod def setup_class(cls): torch.manual_seed(123) def run_model( self, model, inputs_list, do_constant_folding=True, dynamic_axes=None, output_names=None, input_names=None, opset_version: Optional[int] = None, ): if opset_version is None: opset_version = _register_onnx_ops.BASE_ONNX_OPSET_VERSION model.eval() onnx_io = io.BytesIO() if isinstance(inputs_list[0][-1], dict): torch_onnx_input = inputs_list[0] + ({},) else: torch_onnx_input = inputs_list[0] # export to onnx with the first input torch.onnx.export( model, torch_onnx_input, onnx_io, do_constant_folding=do_constant_folding, opset_version=opset_version, dynamic_axes=dynamic_axes, input_names=input_names, output_names=output_names, verbose=True, ) # validate the exported model with onnx runtime for test_inputs in inputs_list: with torch.no_grad(): if isinstance(test_inputs, torch.Tensor) or isinstance(test_inputs, list): test_inputs = (test_inputs,) test_ouputs = model(*test_inputs) if isinstance(test_ouputs, torch.Tensor): test_ouputs = (test_ouputs,) self.ort_validate(onnx_io, test_inputs, test_ouputs) def ort_validate(self, onnx_io, inputs, outputs): inputs, _ = torch.jit._flatten(inputs) outputs, _ = torch.jit._flatten(outputs) def to_numpy(tensor): if tensor.requires_grad: return tensor.detach().cpu().numpy() else: return tensor.cpu().numpy() inputs = list(map(to_numpy, inputs)) outputs = list(map(to_numpy, outputs)) ort_session = onnxruntime.InferenceSession(onnx_io.getvalue(), providers=onnxruntime.get_available_providers()) # compute onnxruntime output prediction ort_inputs = {ort_session.get_inputs()[i].name: inpt for i, inpt in enumerate(inputs)} ort_outs = ort_session.run(None, ort_inputs) for i in range(0, len(outputs)): torch.testing.assert_close(outputs[i], ort_outs[i], rtol=1e-03, atol=1e-05) def test_nms(self): num_boxes = 100 boxes = torch.rand(num_boxes, 4) boxes[:, 2:] += boxes[:, :2] scores = torch.randn(num_boxes) class Module(torch.nn.Module): def forward(self, boxes, scores): return ops.nms(boxes, scores, 0.5) self.run_model(Module(), [(boxes, scores)]) def test_batched_nms(self): num_boxes = 100 boxes = torch.rand(num_boxes, 4) boxes[:, 2:] += boxes[:, :2] scores = torch.randn(num_boxes) idxs = torch.randint(0, 5, size=(num_boxes,)) class Module(torch.nn.Module): def forward(self, boxes, scores, idxs): return ops.batched_nms(boxes, scores, idxs, 0.5) self.run_model(Module(), [(boxes, scores, idxs)]) def test_clip_boxes_to_image(self): boxes = torch.randn(5, 4) * 500 boxes[:, 2:] += boxes[:, :2] size = torch.randn(200, 300) size_2 = torch.randn(300, 400) class Module(torch.nn.Module): def forward(self, boxes, size): return ops.boxes.clip_boxes_to_image(boxes, size.shape) self.run_model( Module(), [(boxes, size), (boxes, size_2)], input_names=["boxes", "size"], dynamic_axes={"size": [0, 1]} ) def test_roi_align(self): x = torch.rand(1, 1, 10, 10, dtype=torch.float32) single_roi = torch.tensor([[0, 0, 0, 4, 4]], dtype=torch.float32) model = ops.RoIAlign((5, 5), 1, 2) self.run_model(model, [(x, single_roi)]) x = torch.rand(1, 1, 10, 10, dtype=torch.float32) single_roi = torch.tensor([[0, 0, 0, 4, 4]], dtype=torch.float32) model = ops.RoIAlign((5, 5), 1, -1) self.run_model(model, [(x, single_roi)]) def test_roi_align_aligned(self): supported_onnx_version = _register_onnx_ops._ONNX_OPSET_VERSION_16 x = torch.rand(1, 1, 10, 10, dtype=torch.float32) single_roi = torch.tensor([[0, 1.5, 1.5, 3, 3]], dtype=torch.float32) model = ops.RoIAlign((5, 5), 1, 2, aligned=True) self.run_model(model, [(x, single_roi)], opset_version=supported_onnx_version) x = torch.rand(1, 1, 10, 10, dtype=torch.float32) single_roi = torch.tensor([[0, 0.2, 0.3, 4.5, 3.5]], dtype=torch.float32) model = ops.RoIAlign((5, 5), 0.5, 3, aligned=True) self.run_model(model, [(x, single_roi)], opset_version=supported_onnx_version) x = torch.rand(1, 1, 10, 10, dtype=torch.float32) single_roi = torch.tensor([[0, 0.2, 0.3, 4.5, 3.5]], dtype=torch.float32) model = ops.RoIAlign((5, 5), 1.8, 2, aligned=True) self.run_model(model, [(x, single_roi)], opset_version=supported_onnx_version) x = torch.rand(1, 1, 10, 10, dtype=torch.float32) single_roi = torch.tensor([[0, 0.2, 0.3, 4.5, 3.5]], dtype=torch.float32) model = ops.RoIAlign((2, 2), 2.5, 0, aligned=True) self.run_model(model, [(x, single_roi)], opset_version=supported_onnx_version) x = torch.rand(1, 1, 10, 10, dtype=torch.float32) single_roi = torch.tensor([[0, 0.2, 0.3, 4.5, 3.5]], dtype=torch.float32) model = ops.RoIAlign((2, 2), 2.5, -1, aligned=True) self.run_model(model, [(x, single_roi)], opset_version=supported_onnx_version) def test_roi_align_malformed_boxes(self): supported_onnx_version = _register_onnx_ops._ONNX_OPSET_VERSION_16 x = torch.randn(1, 1, 10, 10, dtype=torch.float32) single_roi = torch.tensor([[0, 2, 0.3, 1.5, 1.5]], dtype=torch.float32) model = ops.RoIAlign((5, 5), 1, 1, aligned=True) self.run_model(model, [(x, single_roi)], opset_version=supported_onnx_version) def test_roi_pool(self): x = torch.rand(1, 1, 10, 10, dtype=torch.float32) rois = torch.tensor([[0, 0, 0, 4, 4]], dtype=torch.float32) pool_h = 5 pool_w = 5 model = ops.RoIPool((pool_h, pool_w), 2) self.run_model(model, [(x, rois)]) def test_resize_images(self): class TransformModule(torch.nn.Module): def __init__(self_module): super().__init__() self_module.transform = self._init_test_generalized_rcnn_transform() def forward(self_module, images): return self_module.transform.resize(images, None)[0] input = torch.rand(3, 10, 20) input_test = torch.rand(3, 100, 150) self.run_model( TransformModule(), [(input,), (input_test,)], input_names=["input1"], dynamic_axes={"input1": [0, 1, 2]} ) def test_transform_images(self): class TransformModule(torch.nn.Module): def __init__(self_module): super().__init__() self_module.transform = self._init_test_generalized_rcnn_transform() def forward(self_module, images): return self_module.transform(images)[0].tensors input = torch.rand(3, 100, 200), torch.rand(3, 200, 200) input_test = torch.rand(3, 100, 200), torch.rand(3, 200, 200) self.run_model(TransformModule(), [(input,), (input_test,)]) def _init_test_generalized_rcnn_transform(self): min_size = 100 max_size = 200 image_mean = [0.485, 0.456, 0.406] image_std = [0.229, 0.224, 0.225] transform = GeneralizedRCNNTransform(min_size, max_size, image_mean, image_std) return transform def _init_test_rpn(self): anchor_sizes = ((32,), (64,), (128,), (256,), (512,)) aspect_ratios = ((0.5, 1.0, 2.0),) * len(anchor_sizes) rpn_anchor_generator = AnchorGenerator(anchor_sizes, aspect_ratios) out_channels = 256 rpn_head = RPNHead(out_channels, rpn_anchor_generator.num_anchors_per_location()[0]) rpn_fg_iou_thresh = 0.7 rpn_bg_iou_thresh = 0.3 rpn_batch_size_per_image = 256 rpn_positive_fraction = 0.5 rpn_pre_nms_top_n = dict(training=2000, testing=1000) rpn_post_nms_top_n = dict(training=2000, testing=1000) rpn_nms_thresh = 0.7 rpn_score_thresh = 0.0 rpn = RegionProposalNetwork( rpn_anchor_generator, rpn_head, rpn_fg_iou_thresh, rpn_bg_iou_thresh, rpn_batch_size_per_image, rpn_positive_fraction, rpn_pre_nms_top_n, rpn_post_nms_top_n, rpn_nms_thresh, score_thresh=rpn_score_thresh, ) return rpn def _init_test_roi_heads_faster_rcnn(self): out_channels = 256 num_classes = 91 box_fg_iou_thresh = 0.5 box_bg_iou_thresh = 0.5 box_batch_size_per_image = 512 box_positive_fraction = 0.25 bbox_reg_weights = None box_score_thresh = 0.05 box_nms_thresh = 0.5 box_detections_per_img = 100 box_roi_pool = ops.MultiScaleRoIAlign(featmap_names=["0", "1", "2", "3"], output_size=7, sampling_ratio=2) resolution = box_roi_pool.output_size[0] representation_size = 1024 box_head = TwoMLPHead(out_channels * resolution**2, representation_size) representation_size = 1024 box_predictor = FastRCNNPredictor(representation_size, num_classes) roi_heads = RoIHeads( box_roi_pool, box_head, box_predictor, box_fg_iou_thresh, box_bg_iou_thresh, box_batch_size_per_image, box_positive_fraction, bbox_reg_weights, box_score_thresh, box_nms_thresh, box_detections_per_img, ) return roi_heads def get_features(self, images): s0, s1 = images.shape[-2:] features = [ ("0", torch.rand(2, 256, s0 // 4, s1 // 4)), ("1", torch.rand(2, 256, s0 // 8, s1 // 8)), ("2", torch.rand(2, 256, s0 // 16, s1 // 16)), ("3", torch.rand(2, 256, s0 // 32, s1 // 32)), ("4", torch.rand(2, 256, s0 // 64, s1 // 64)), ] features = OrderedDict(features) return features def test_rpn(self): set_rng_seed(0) class RPNModule(torch.nn.Module): def __init__(self_module): super().__init__() self_module.rpn = self._init_test_rpn() def forward(self_module, images, features): images = ImageList(images, [i.shape[-2:] for i in images]) return self_module.rpn(images, features) images = torch.rand(2, 3, 150, 150) features = self.get_features(images) images2 = torch.rand(2, 3, 80, 80) test_features = self.get_features(images2) model = RPNModule() model.eval() model(images, features) self.run_model( model, [(images, features), (images2, test_features)], input_names=["input1", "input2", "input3", "input4", "input5", "input6"], dynamic_axes={ "input1": [0, 1, 2, 3], "input2": [0, 1, 2, 3], "input3": [0, 1, 2, 3], "input4": [0, 1, 2, 3], "input5": [0, 1, 2, 3], "input6": [0, 1, 2, 3], }, ) def test_multi_scale_roi_align(self): class TransformModule(torch.nn.Module): def __init__(self): super().__init__() self.model = ops.MultiScaleRoIAlign(["feat1", "feat2"], 3, 2) self.image_sizes = [(512, 512)] def forward(self, input, boxes): return self.model(input, boxes, self.image_sizes) i = OrderedDict() i["feat1"] = torch.rand(1, 5, 64, 64) i["feat2"] = torch.rand(1, 5, 16, 16) boxes = torch.rand(6, 4) * 256 boxes[:, 2:] += boxes[:, :2] i1 = OrderedDict() i1["feat1"] = torch.rand(1, 5, 64, 64) i1["feat2"] = torch.rand(1, 5, 16, 16) boxes1 = torch.rand(6, 4) * 256 boxes1[:, 2:] += boxes1[:, :2] self.run_model( TransformModule(), [ ( i, [boxes], ), ( i1, [boxes1], ), ], ) def test_roi_heads(self): class RoiHeadsModule(torch.nn.Module): def __init__(self_module): super().__init__() self_module.transform = self._init_test_generalized_rcnn_transform() self_module.rpn = self._init_test_rpn() self_module.roi_heads = self._init_test_roi_heads_faster_rcnn() def forward(self_module, images, features): original_image_sizes = [img.shape[-2:] for img in images] images = ImageList(images, [i.shape[-2:] for i in images]) proposals, _ = self_module.rpn(images, features) detections, _ = self_module.roi_heads(features, proposals, images.image_sizes) detections = self_module.transform.postprocess(detections, images.image_sizes, original_image_sizes) return detections images = torch.rand(2, 3, 100, 100) features = self.get_features(images) images2 = torch.rand(2, 3, 150, 150) test_features = self.get_features(images2) model = RoiHeadsModule() model.eval() model(images, features) self.run_model( model, [(images, features), (images2, test_features)], input_names=["input1", "input2", "input3", "input4", "input5", "input6"], dynamic_axes={ "input1": [0, 1, 2, 3], "input2": [0, 1, 2, 3], "input3": [0, 1, 2, 3], "input4": [0, 1, 2, 3], "input5": [0, 1, 2, 3], "input6": [0, 1, 2, 3], }, ) def get_image(self, rel_path: str, size: Tuple[int, int]) -> torch.Tensor: import os from PIL import Image from torchvision.transforms import functional as F data_dir = os.path.join(os.path.dirname(__file__), "assets") path = os.path.join(data_dir, *rel_path.split("/")) image = Image.open(path).convert("RGB").resize(size, Image.BILINEAR) return F.convert_image_dtype(F.pil_to_tensor(image)) def get_test_images(self) -> Tuple[List[torch.Tensor], List[torch.Tensor]]: return ( [self.get_image("encode_jpeg/grace_hopper_517x606.jpg", (100, 320))], [self.get_image("fakedata/logos/rgb_pytorch.png", (250, 380))], ) def test_faster_rcnn(self): images, test_images = self.get_test_images() dummy_image = [torch.ones(3, 100, 100) * 0.3] model = models.detection.faster_rcnn.fasterrcnn_resnet50_fpn( weights=models.detection.faster_rcnn.FasterRCNN_ResNet50_FPN_Weights.DEFAULT, min_size=200, max_size=300 ) model.eval() model(images) # Test exported model on images of different size, or dummy input self.run_model( model, [(images,), (test_images,), (dummy_image,)], input_names=["images_tensors"], output_names=["outputs"], dynamic_axes={"images_tensors": [0, 1, 2], "outputs": [0, 1, 2]}, ) # Test exported model for an image with no detections on other images self.run_model( model, [(dummy_image,), (images,)], input_names=["images_tensors"], output_names=["outputs"], dynamic_axes={"images_tensors": [0, 1, 2], "outputs": [0, 1, 2]}, ) # Verify that paste_mask_in_image beahves the same in tracing. # This test also compares both paste_masks_in_image and _onnx_paste_masks_in_image # (since jit_trace witll call _onnx_paste_masks_in_image). def test_paste_mask_in_image(self): masks = torch.rand(10, 1, 26, 26) boxes = torch.rand(10, 4) boxes[:, 2:] += torch.rand(10, 2) boxes *= 50 o_im_s = (100, 100) from torchvision.models.detection.roi_heads import paste_masks_in_image out = paste_masks_in_image(masks, boxes, o_im_s) jit_trace = torch.jit.trace( paste_masks_in_image, (masks, boxes, [torch.tensor(o_im_s[0]), torch.tensor(o_im_s[1])]) ) out_trace = jit_trace(masks, boxes, [torch.tensor(o_im_s[0]), torch.tensor(o_im_s[1])]) assert torch.all(out.eq(out_trace)) masks2 = torch.rand(20, 1, 26, 26) boxes2 = torch.rand(20, 4) boxes2[:, 2:] += torch.rand(20, 2) boxes2 *= 100 o_im_s2 = (200, 200) from torchvision.models.detection.roi_heads import paste_masks_in_image out2 = paste_masks_in_image(masks2, boxes2, o_im_s2) out_trace2 = jit_trace(masks2, boxes2, [torch.tensor(o_im_s2[0]), torch.tensor(o_im_s2[1])]) assert torch.all(out2.eq(out_trace2)) def test_mask_rcnn(self): images, test_images = self.get_test_images() dummy_image = [torch.ones(3, 100, 100) * 0.3] model = models.detection.mask_rcnn.maskrcnn_resnet50_fpn( weights=models.detection.mask_rcnn.MaskRCNN_ResNet50_FPN_Weights.DEFAULT, min_size=200, max_size=300 ) model.eval() model(images) # Test exported model on images of different size, or dummy input self.run_model( model, [(images,), (test_images,), (dummy_image,)], input_names=["images_tensors"], output_names=["boxes", "labels", "scores", "masks"], dynamic_axes={ "images_tensors": [0, 1, 2], "boxes": [0, 1], "labels": [0], "scores": [0], "masks": [0, 1, 2], }, ) # Test exported model for an image with no detections on other images self.run_model( model, [(dummy_image,), (images,)], input_names=["images_tensors"], output_names=["boxes", "labels", "scores", "masks"], dynamic_axes={ "images_tensors": [0, 1, 2], "boxes": [0, 1], "labels": [0], "scores": [0], "masks": [0, 1, 2], }, ) # Verify that heatmaps_to_keypoints behaves the same in tracing. # This test also compares both heatmaps_to_keypoints and _onnx_heatmaps_to_keypoints # (since jit_trace witll call _heatmaps_to_keypoints). def test_heatmaps_to_keypoints(self): maps = torch.rand(10, 1, 26, 26) rois = torch.rand(10, 4) from torchvision.models.detection.roi_heads import heatmaps_to_keypoints out = heatmaps_to_keypoints(maps, rois) jit_trace = torch.jit.trace(heatmaps_to_keypoints, (maps, rois)) out_trace = jit_trace(maps, rois) assert_equal(out[0], out_trace[0]) assert_equal(out[1], out_trace[1]) maps2 = torch.rand(20, 2, 21, 21) rois2 = torch.rand(20, 4) from torchvision.models.detection.roi_heads import heatmaps_to_keypoints out2 = heatmaps_to_keypoints(maps2, rois2) out_trace2 = jit_trace(maps2, rois2) assert_equal(out2[0], out_trace2[0]) assert_equal(out2[1], out_trace2[1]) def test_keypoint_rcnn(self): images, test_images = self.get_test_images() dummy_images = [torch.ones(3, 100, 100) * 0.3] model = models.detection.keypoint_rcnn.keypointrcnn_resnet50_fpn( weights=models.detection.keypoint_rcnn.KeypointRCNN_ResNet50_FPN_Weights.DEFAULT, min_size=200, max_size=300 ) model.eval() model(images) self.run_model( model, [(images,), (test_images,), (dummy_images,)], input_names=["images_tensors"], output_names=["outputs1", "outputs2", "outputs3", "outputs4"], dynamic_axes={"images_tensors": [0, 1, 2]}, ) self.run_model( model, [(dummy_images,), (test_images,)], input_names=["images_tensors"], output_names=["outputs1", "outputs2", "outputs3", "outputs4"], dynamic_axes={"images_tensors": [0, 1, 2]}, ) def test_shufflenet_v2_dynamic_axes(self): model = models.shufflenet_v2_x0_5(weights=models.ShuffleNet_V2_X0_5_Weights.DEFAULT) dummy_input = torch.randn(1, 3, 224, 224, requires_grad=True) test_inputs = torch.cat([dummy_input, dummy_input, dummy_input], 0) self.run_model( model, [(dummy_input,), (test_inputs,)], input_names=["input_images"], output_names=["output"], dynamic_axes={"input_images": {0: "batch_size"}, "output": {0: "batch_size"}}, ) if __name__ == "__main__": pytest.main([__file__]) vision-0.19.1/test/test_ops.py000066400000000000000000002372051466211133600163160ustar00rootroot00000000000000import math import os from abc import ABC, abstractmethod from functools import lru_cache from itertools import product from typing import Callable, List, Tuple import numpy as np import pytest import torch import torch.fx import torch.nn.functional as F import torch.testing._internal.optests as optests from common_utils import assert_equal, cpu_and_cuda, cpu_and_cuda_and_mps, needs_cuda, needs_mps from PIL import Image from torch import nn, Tensor from torch._dynamo.utils import is_compile_supported from torch.autograd import gradcheck from torch.nn.modules.utils import _pair from torchvision import models, ops from torchvision.models.feature_extraction import get_graph_node_names OPTESTS = [ "test_schema", "test_autograd_registration", "test_faketensor", "test_aot_dispatch_dynamic", ] # Context manager for setting deterministic flag and automatically # resetting it to its original value class DeterministicGuard: def __init__(self, deterministic, *, warn_only=False): self.deterministic = deterministic self.warn_only = warn_only def __enter__(self): self.deterministic_restore = torch.are_deterministic_algorithms_enabled() self.warn_only_restore = torch.is_deterministic_algorithms_warn_only_enabled() torch.use_deterministic_algorithms(self.deterministic, warn_only=self.warn_only) def __exit__(self, exception_type, exception_value, traceback): torch.use_deterministic_algorithms(self.deterministic_restore, warn_only=self.warn_only_restore) class RoIOpTesterModuleWrapper(nn.Module): def __init__(self, obj): super().__init__() self.layer = obj self.n_inputs = 2 def forward(self, a, b): self.layer(a, b) class MultiScaleRoIAlignModuleWrapper(nn.Module): def __init__(self, obj): super().__init__() self.layer = obj self.n_inputs = 3 def forward(self, a, b, c): self.layer(a, b, c) class DeformConvModuleWrapper(nn.Module): def __init__(self, obj): super().__init__() self.layer = obj self.n_inputs = 3 def forward(self, a, b, c): self.layer(a, b, c) class StochasticDepthWrapper(nn.Module): def __init__(self, obj): super().__init__() self.layer = obj self.n_inputs = 1 def forward(self, a): self.layer(a) class DropBlockWrapper(nn.Module): def __init__(self, obj): super().__init__() self.layer = obj self.n_inputs = 1 def forward(self, a): self.layer(a) class PoolWrapper(nn.Module): def __init__(self, pool: nn.Module): super().__init__() self.pool = pool def forward(self, imgs: Tensor, boxes: List[Tensor]) -> Tensor: return self.pool(imgs, boxes) class RoIOpTester(ABC): dtype = torch.float64 mps_dtype = torch.float32 mps_backward_atol = 2e-2 @pytest.mark.parametrize("device", cpu_and_cuda_and_mps()) @pytest.mark.parametrize("contiguous", (True, False)) @pytest.mark.parametrize( "x_dtype", ( torch.float16, torch.float32, torch.float64, ), ids=str, ) def test_forward(self, device, contiguous, x_dtype, rois_dtype=None, deterministic=False, **kwargs): if device == "mps" and x_dtype is torch.float64: pytest.skip("MPS does not support float64") rois_dtype = x_dtype if rois_dtype is None else rois_dtype tol = 1e-5 if x_dtype is torch.half: if device == "mps": tol = 5e-3 else: tol = 4e-3 elif x_dtype == torch.bfloat16: tol = 5e-3 pool_size = 5 # n_channels % (pool_size ** 2) == 0 required for PS operations. n_channels = 2 * (pool_size**2) x = torch.rand(2, n_channels, 10, 10, dtype=x_dtype, device=device) if not contiguous: x = x.permute(0, 1, 3, 2) rois = torch.tensor( [[0, 0, 0, 9, 9], [0, 0, 5, 4, 9], [0, 5, 5, 9, 9], [1, 0, 0, 9, 9]], # format is (xyxy) dtype=rois_dtype, device=device, ) pool_h, pool_w = pool_size, pool_size with DeterministicGuard(deterministic): y = self.fn(x, rois, pool_h, pool_w, spatial_scale=1, sampling_ratio=-1, **kwargs) # the following should be true whether we're running an autocast test or not. assert y.dtype == x.dtype gt_y = self.expected_fn( x, rois, pool_h, pool_w, spatial_scale=1, sampling_ratio=-1, device=device, dtype=x_dtype, **kwargs ) torch.testing.assert_close(gt_y.to(y), y, rtol=tol, atol=tol) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_is_leaf_node(self, device): op_obj = self.make_obj(wrap=True).to(device=device) graph_node_names = get_graph_node_names(op_obj) assert len(graph_node_names) == 2 assert len(graph_node_names[0]) == len(graph_node_names[1]) assert len(graph_node_names[0]) == 1 + op_obj.n_inputs @pytest.mark.parametrize("device", cpu_and_cuda()) def test_torch_fx_trace(self, device, x_dtype=torch.float, rois_dtype=torch.float): op_obj = self.make_obj().to(device=device) graph_module = torch.fx.symbolic_trace(op_obj) pool_size = 5 n_channels = 2 * (pool_size**2) x = torch.rand(2, n_channels, 5, 5, dtype=x_dtype, device=device) rois = torch.tensor( [[0, 0, 0, 9, 9], [0, 0, 5, 4, 9], [0, 5, 5, 9, 9], [1, 0, 0, 9, 9]], # format is (xyxy) dtype=rois_dtype, device=device, ) output_gt = op_obj(x, rois) assert output_gt.dtype == x.dtype output_fx = graph_module(x, rois) assert output_fx.dtype == x.dtype tol = 1e-5 torch.testing.assert_close(output_gt, output_fx, rtol=tol, atol=tol) @pytest.mark.parametrize("seed", range(10)) @pytest.mark.parametrize("device", cpu_and_cuda_and_mps()) @pytest.mark.parametrize("contiguous", (True, False)) def test_backward(self, seed, device, contiguous, deterministic=False): atol = self.mps_backward_atol if device == "mps" else 1e-05 dtype = self.mps_dtype if device == "mps" else self.dtype torch.random.manual_seed(seed) pool_size = 2 x = torch.rand(1, 2 * (pool_size**2), 5, 5, dtype=dtype, device=device, requires_grad=True) if not contiguous: x = x.permute(0, 1, 3, 2) rois = torch.tensor( [[0, 0, 0, 4, 4], [0, 0, 2, 3, 4], [0, 2, 2, 4, 4]], dtype=dtype, device=device # format is (xyxy) ) def func(z): return self.fn(z, rois, pool_size, pool_size, spatial_scale=1, sampling_ratio=1) script_func = self.get_script_fn(rois, pool_size) with DeterministicGuard(deterministic): gradcheck(func, (x,), atol=atol) gradcheck(script_func, (x,), atol=atol) @needs_mps def test_mps_error_inputs(self): pool_size = 2 x = torch.rand(1, 2 * (pool_size**2), 5, 5, dtype=torch.float16, device="mps", requires_grad=True) rois = torch.tensor( [[0, 0, 0, 4, 4], [0, 0, 2, 3, 4], [0, 2, 2, 4, 4]], dtype=torch.float16, device="mps" # format is (xyxy) ) def func(z): return self.fn(z, rois, pool_size, pool_size, spatial_scale=1, sampling_ratio=1) with pytest.raises( RuntimeError, match="MPS does not support (?:ps_)?roi_(?:align|pool)? backward with float16 inputs." ): gradcheck(func, (x,)) @needs_cuda @pytest.mark.parametrize("x_dtype", (torch.float, torch.half)) @pytest.mark.parametrize("rois_dtype", (torch.float, torch.half)) def test_autocast(self, x_dtype, rois_dtype): with torch.cuda.amp.autocast(): self.test_forward(torch.device("cuda"), contiguous=False, x_dtype=x_dtype, rois_dtype=rois_dtype) def _helper_boxes_shape(self, func): # test boxes as Tensor[N, 5] with pytest.raises(AssertionError): a = torch.linspace(1, 8 * 8, 8 * 8).reshape(1, 1, 8, 8) boxes = torch.tensor([[0, 0, 3, 3]], dtype=a.dtype) func(a, boxes, output_size=(2, 2)) # test boxes as List[Tensor[N, 4]] with pytest.raises(AssertionError): a = torch.linspace(1, 8 * 8, 8 * 8).reshape(1, 1, 8, 8) boxes = torch.tensor([[0, 0, 3]], dtype=a.dtype) ops.roi_pool(a, [boxes], output_size=(2, 2)) def _helper_jit_boxes_list(self, model): x = torch.rand(2, 1, 10, 10) roi = torch.tensor([[0, 0, 0, 9, 9], [0, 0, 5, 4, 9], [0, 5, 5, 9, 9], [1, 0, 0, 9, 9]], dtype=torch.float).t() rois = [roi, roi] scriped = torch.jit.script(model) y = scriped(x, rois) assert y.shape == (10, 1, 3, 3) @abstractmethod def fn(*args, **kwargs): pass @abstractmethod def make_obj(*args, **kwargs): pass @abstractmethod def get_script_fn(*args, **kwargs): pass @abstractmethod def expected_fn(*args, **kwargs): pass class TestRoiPool(RoIOpTester): def fn(self, x, rois, pool_h, pool_w, spatial_scale=1, sampling_ratio=-1, **kwargs): return ops.RoIPool((pool_h, pool_w), spatial_scale)(x, rois) def make_obj(self, pool_h=5, pool_w=5, spatial_scale=1, wrap=False): obj = ops.RoIPool((pool_h, pool_w), spatial_scale) return RoIOpTesterModuleWrapper(obj) if wrap else obj def get_script_fn(self, rois, pool_size): scriped = torch.jit.script(ops.roi_pool) return lambda x: scriped(x, rois, pool_size) def expected_fn( self, x, rois, pool_h, pool_w, spatial_scale=1, sampling_ratio=-1, device=None, dtype=torch.float64 ): if device is None: device = torch.device("cpu") n_channels = x.size(1) y = torch.zeros(rois.size(0), n_channels, pool_h, pool_w, dtype=dtype, device=device) def get_slice(k, block): return slice(int(np.floor(k * block)), int(np.ceil((k + 1) * block))) for roi_idx, roi in enumerate(rois): batch_idx = int(roi[0]) j_begin, i_begin, j_end, i_end = (int(round(x.item() * spatial_scale)) for x in roi[1:]) roi_x = x[batch_idx, :, i_begin : i_end + 1, j_begin : j_end + 1] roi_h, roi_w = roi_x.shape[-2:] bin_h = roi_h / pool_h bin_w = roi_w / pool_w for i in range(0, pool_h): for j in range(0, pool_w): bin_x = roi_x[:, get_slice(i, bin_h), get_slice(j, bin_w)] if bin_x.numel() > 0: y[roi_idx, :, i, j] = bin_x.reshape(n_channels, -1).max(dim=1)[0] return y def test_boxes_shape(self): self._helper_boxes_shape(ops.roi_pool) def test_jit_boxes_list(self): model = PoolWrapper(ops.RoIPool(output_size=[3, 3], spatial_scale=1.0)) self._helper_jit_boxes_list(model) class TestPSRoIPool(RoIOpTester): mps_backward_atol = 5e-2 def fn(self, x, rois, pool_h, pool_w, spatial_scale=1, sampling_ratio=-1, **kwargs): return ops.PSRoIPool((pool_h, pool_w), 1)(x, rois) def make_obj(self, pool_h=5, pool_w=5, spatial_scale=1, wrap=False): obj = ops.PSRoIPool((pool_h, pool_w), spatial_scale) return RoIOpTesterModuleWrapper(obj) if wrap else obj def get_script_fn(self, rois, pool_size): scriped = torch.jit.script(ops.ps_roi_pool) return lambda x: scriped(x, rois, pool_size) def expected_fn( self, x, rois, pool_h, pool_w, spatial_scale=1, sampling_ratio=-1, device=None, dtype=torch.float64 ): if device is None: device = torch.device("cpu") n_input_channels = x.size(1) assert n_input_channels % (pool_h * pool_w) == 0, "input channels must be divisible by ph * pw" n_output_channels = int(n_input_channels / (pool_h * pool_w)) y = torch.zeros(rois.size(0), n_output_channels, pool_h, pool_w, dtype=dtype, device=device) def get_slice(k, block): return slice(int(np.floor(k * block)), int(np.ceil((k + 1) * block))) for roi_idx, roi in enumerate(rois): batch_idx = int(roi[0]) j_begin, i_begin, j_end, i_end = (int(round(x.item() * spatial_scale)) for x in roi[1:]) roi_x = x[batch_idx, :, i_begin : i_end + 1, j_begin : j_end + 1] roi_height = max(i_end - i_begin, 1) roi_width = max(j_end - j_begin, 1) bin_h, bin_w = roi_height / float(pool_h), roi_width / float(pool_w) for i in range(0, pool_h): for j in range(0, pool_w): bin_x = roi_x[:, get_slice(i, bin_h), get_slice(j, bin_w)] if bin_x.numel() > 0: area = bin_x.size(-2) * bin_x.size(-1) for c_out in range(0, n_output_channels): c_in = c_out * (pool_h * pool_w) + pool_w * i + j t = torch.sum(bin_x[c_in, :, :]) y[roi_idx, c_out, i, j] = t / area return y def test_boxes_shape(self): self._helper_boxes_shape(ops.ps_roi_pool) def bilinear_interpolate(data, y, x, snap_border=False): height, width = data.shape if snap_border: if -1 < y <= 0: y = 0 elif height - 1 <= y < height: y = height - 1 if -1 < x <= 0: x = 0 elif width - 1 <= x < width: x = width - 1 y_low = int(math.floor(y)) x_low = int(math.floor(x)) y_high = y_low + 1 x_high = x_low + 1 wy_h = y - y_low wx_h = x - x_low wy_l = 1 - wy_h wx_l = 1 - wx_h val = 0 for wx, xp in zip((wx_l, wx_h), (x_low, x_high)): for wy, yp in zip((wy_l, wy_h), (y_low, y_high)): if 0 <= yp < height and 0 <= xp < width: val += wx * wy * data[yp, xp] return val class TestRoIAlign(RoIOpTester): mps_backward_atol = 6e-2 def fn(self, x, rois, pool_h, pool_w, spatial_scale=1, sampling_ratio=-1, aligned=False, **kwargs): return ops.RoIAlign( (pool_h, pool_w), spatial_scale=spatial_scale, sampling_ratio=sampling_ratio, aligned=aligned )(x, rois) def make_obj(self, pool_h=5, pool_w=5, spatial_scale=1, sampling_ratio=-1, aligned=False, wrap=False): obj = ops.RoIAlign( (pool_h, pool_w), spatial_scale=spatial_scale, sampling_ratio=sampling_ratio, aligned=aligned ) return RoIOpTesterModuleWrapper(obj) if wrap else obj def get_script_fn(self, rois, pool_size): scriped = torch.jit.script(ops.roi_align) return lambda x: scriped(x, rois, pool_size) def expected_fn( self, in_data, rois, pool_h, pool_w, spatial_scale=1, sampling_ratio=-1, aligned=False, device=None, dtype=torch.float64, ): if device is None: device = torch.device("cpu") n_channels = in_data.size(1) out_data = torch.zeros(rois.size(0), n_channels, pool_h, pool_w, dtype=dtype, device=device) offset = 0.5 if aligned else 0.0 for r, roi in enumerate(rois): batch_idx = int(roi[0]) j_begin, i_begin, j_end, i_end = (x.item() * spatial_scale - offset for x in roi[1:]) roi_h = i_end - i_begin roi_w = j_end - j_begin bin_h = roi_h / pool_h bin_w = roi_w / pool_w for i in range(0, pool_h): start_h = i_begin + i * bin_h grid_h = sampling_ratio if sampling_ratio > 0 else int(np.ceil(bin_h)) for j in range(0, pool_w): start_w = j_begin + j * bin_w grid_w = sampling_ratio if sampling_ratio > 0 else int(np.ceil(bin_w)) for channel in range(0, n_channels): val = 0 for iy in range(0, grid_h): y = start_h + (iy + 0.5) * bin_h / grid_h for ix in range(0, grid_w): x = start_w + (ix + 0.5) * bin_w / grid_w val += bilinear_interpolate(in_data[batch_idx, channel, :, :], y, x, snap_border=True) val /= grid_h * grid_w out_data[r, channel, i, j] = val return out_data def test_boxes_shape(self): self._helper_boxes_shape(ops.roi_align) @pytest.mark.parametrize("aligned", (True, False)) @pytest.mark.parametrize("device", cpu_and_cuda_and_mps()) @pytest.mark.parametrize("x_dtype", (torch.float16, torch.float32, torch.float64)) # , ids=str) @pytest.mark.parametrize("contiguous", (True, False)) @pytest.mark.parametrize("deterministic", (True, False)) @pytest.mark.opcheck_only_one() def test_forward(self, device, contiguous, deterministic, aligned, x_dtype, rois_dtype=None): if deterministic and device == "cpu": pytest.skip("cpu is always deterministic, don't retest") super().test_forward( device=device, contiguous=contiguous, deterministic=deterministic, x_dtype=x_dtype, rois_dtype=rois_dtype, aligned=aligned, ) @needs_cuda @pytest.mark.parametrize("aligned", (True, False)) @pytest.mark.parametrize("deterministic", (True, False)) @pytest.mark.parametrize("x_dtype", (torch.float, torch.half)) @pytest.mark.parametrize("rois_dtype", (torch.float, torch.half)) @pytest.mark.opcheck_only_one() def test_autocast(self, aligned, deterministic, x_dtype, rois_dtype): with torch.cuda.amp.autocast(): self.test_forward( torch.device("cuda"), contiguous=False, deterministic=deterministic, aligned=aligned, x_dtype=x_dtype, rois_dtype=rois_dtype, ) @pytest.mark.parametrize("aligned", (True, False)) @pytest.mark.parametrize("deterministic", (True, False)) @pytest.mark.parametrize("x_dtype", (torch.float, torch.bfloat16)) @pytest.mark.parametrize("rois_dtype", (torch.float, torch.bfloat16)) def test_autocast_cpu(self, aligned, deterministic, x_dtype, rois_dtype): with torch.cpu.amp.autocast(): self.test_forward( torch.device("cpu"), contiguous=False, deterministic=deterministic, aligned=aligned, x_dtype=x_dtype, rois_dtype=rois_dtype, ) @pytest.mark.parametrize("seed", range(10)) @pytest.mark.parametrize("device", cpu_and_cuda_and_mps()) @pytest.mark.parametrize("contiguous", (True, False)) @pytest.mark.parametrize("deterministic", (True, False)) @pytest.mark.opcheck_only_one() def test_backward(self, seed, device, contiguous, deterministic): if deterministic and device == "cpu": pytest.skip("cpu is always deterministic, don't retest") if deterministic and device == "mps": pytest.skip("no deterministic implementation for mps") if deterministic and not is_compile_supported(device): pytest.skip("deterministic implementation only if torch.compile supported") super().test_backward(seed, device, contiguous, deterministic) def _make_rois(self, img_size, num_imgs, dtype, num_rois=1000): rois = torch.randint(0, img_size // 2, size=(num_rois, 5)).to(dtype) rois[:, 0] = torch.randint(0, num_imgs, size=(num_rois,)) # set batch index rois[:, 3:] += rois[:, 1:3] # make sure boxes aren't degenerate return rois @pytest.mark.parametrize("aligned", (True, False)) @pytest.mark.parametrize("scale, zero_point", ((1, 0), (2, 10), (0.1, 50))) @pytest.mark.parametrize("qdtype", (torch.qint8, torch.quint8, torch.qint32)) @pytest.mark.opcheck_only_one() def test_qroialign(self, aligned, scale, zero_point, qdtype): """Make sure quantized version of RoIAlign is close to float version""" pool_size = 5 img_size = 10 n_channels = 2 num_imgs = 1 dtype = torch.float x = torch.randint(50, 100, size=(num_imgs, n_channels, img_size, img_size)).to(dtype) qx = torch.quantize_per_tensor(x, scale=scale, zero_point=zero_point, dtype=qdtype) rois = self._make_rois(img_size, num_imgs, dtype) qrois = torch.quantize_per_tensor(rois, scale=scale, zero_point=zero_point, dtype=qdtype) x, rois = qx.dequantize(), qrois.dequantize() # we want to pass the same inputs y = ops.roi_align( x, rois, output_size=pool_size, spatial_scale=1, sampling_ratio=-1, aligned=aligned, ) qy = ops.roi_align( qx, qrois, output_size=pool_size, spatial_scale=1, sampling_ratio=-1, aligned=aligned, ) # The output qy is itself a quantized tensor and there might have been a loss of info when it was # quantized. For a fair comparison we need to quantize y as well quantized_float_y = torch.quantize_per_tensor(y, scale=scale, zero_point=zero_point, dtype=qdtype) try: # Ideally, we would assert this, which passes with (scale, zero) == (1, 0) assert (qy == quantized_float_y).all() except AssertionError: # But because the computation aren't exactly the same between the 2 RoIAlign procedures, some # rounding error may lead to a difference of 2 in the output. # For example with (scale, zero) = (2, 10), 45.00000... will be quantized to 44 # but 45.00000001 will be rounded to 46. We make sure below that: # - such discrepancies between qy and quantized_float_y are very rare (less then 5%) # - any difference between qy and quantized_float_y is == scale diff_idx = torch.where(qy != quantized_float_y) num_diff = diff_idx[0].numel() assert num_diff / qy.numel() < 0.05 abs_diff = torch.abs(qy[diff_idx].dequantize() - quantized_float_y[diff_idx].dequantize()) t_scale = torch.full_like(abs_diff, fill_value=scale) torch.testing.assert_close(abs_diff, t_scale, rtol=1e-5, atol=1e-5) def test_qroi_align_multiple_images(self): dtype = torch.float x = torch.randint(50, 100, size=(2, 3, 10, 10)).to(dtype) qx = torch.quantize_per_tensor(x, scale=1, zero_point=0, dtype=torch.qint8) rois = self._make_rois(img_size=10, num_imgs=2, dtype=dtype, num_rois=10) qrois = torch.quantize_per_tensor(rois, scale=1, zero_point=0, dtype=torch.qint8) with pytest.raises(RuntimeError, match="Only one image per batch is allowed"): ops.roi_align(qx, qrois, output_size=5) def test_jit_boxes_list(self): model = PoolWrapper(ops.RoIAlign(output_size=[3, 3], spatial_scale=1.0, sampling_ratio=-1)) self._helper_jit_boxes_list(model) class TestPSRoIAlign(RoIOpTester): mps_backward_atol = 5e-2 def fn(self, x, rois, pool_h, pool_w, spatial_scale=1, sampling_ratio=-1, **kwargs): return ops.PSRoIAlign((pool_h, pool_w), spatial_scale=spatial_scale, sampling_ratio=sampling_ratio)(x, rois) def make_obj(self, pool_h=5, pool_w=5, spatial_scale=1, sampling_ratio=-1, wrap=False): obj = ops.PSRoIAlign((pool_h, pool_w), spatial_scale=spatial_scale, sampling_ratio=sampling_ratio) return RoIOpTesterModuleWrapper(obj) if wrap else obj def get_script_fn(self, rois, pool_size): scriped = torch.jit.script(ops.ps_roi_align) return lambda x: scriped(x, rois, pool_size) def expected_fn( self, in_data, rois, pool_h, pool_w, device, spatial_scale=1, sampling_ratio=-1, dtype=torch.float64 ): if device is None: device = torch.device("cpu") n_input_channels = in_data.size(1) assert n_input_channels % (pool_h * pool_w) == 0, "input channels must be divisible by ph * pw" n_output_channels = int(n_input_channels / (pool_h * pool_w)) out_data = torch.zeros(rois.size(0), n_output_channels, pool_h, pool_w, dtype=dtype, device=device) for r, roi in enumerate(rois): batch_idx = int(roi[0]) j_begin, i_begin, j_end, i_end = (x.item() * spatial_scale - 0.5 for x in roi[1:]) roi_h = i_end - i_begin roi_w = j_end - j_begin bin_h = roi_h / pool_h bin_w = roi_w / pool_w for i in range(0, pool_h): start_h = i_begin + i * bin_h grid_h = sampling_ratio if sampling_ratio > 0 else int(np.ceil(bin_h)) for j in range(0, pool_w): start_w = j_begin + j * bin_w grid_w = sampling_ratio if sampling_ratio > 0 else int(np.ceil(bin_w)) for c_out in range(0, n_output_channels): c_in = c_out * (pool_h * pool_w) + pool_w * i + j val = 0 for iy in range(0, grid_h): y = start_h + (iy + 0.5) * bin_h / grid_h for ix in range(0, grid_w): x = start_w + (ix + 0.5) * bin_w / grid_w val += bilinear_interpolate(in_data[batch_idx, c_in, :, :], y, x, snap_border=True) val /= grid_h * grid_w out_data[r, c_out, i, j] = val return out_data def test_boxes_shape(self): self._helper_boxes_shape(ops.ps_roi_align) @pytest.mark.parametrize( "op", ( torch.ops.torchvision.roi_pool, torch.ops.torchvision.ps_roi_pool, torch.ops.torchvision.roi_align, torch.ops.torchvision.ps_roi_align, ), ) @pytest.mark.parametrize("dtype", (torch.float16, torch.float32, torch.float64)) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("requires_grad", (True, False)) def test_roi_opcheck(op, dtype, device, requires_grad): # This manually calls opcheck() on the roi ops. We do that instead of # relying on opcheck.generate_opcheck_tests() as e.g. done for nms, because # pytest and generate_opcheck_tests() don't interact very well when it comes # to skipping tests - and these ops need to skip the MPS tests since MPS we # don't support dynamic shapes yet for MPS. rois = torch.tensor( [[0, 0, 0, 9, 9], [0, 0, 5, 4, 9], [0, 5, 5, 9, 9], [1, 0, 0, 9, 9]], dtype=dtype, device=device, requires_grad=requires_grad, ) pool_size = 5 num_channels = 2 * (pool_size**2) x = torch.rand(2, num_channels, 10, 10, dtype=dtype, device=device) kwargs = dict(rois=rois, spatial_scale=1, pooled_height=pool_size, pooled_width=pool_size) if op in (torch.ops.torchvision.roi_align, torch.ops.torchvision.ps_roi_align): kwargs["sampling_ratio"] = -1 if op is torch.ops.torchvision.roi_align: kwargs["aligned"] = True optests.opcheck(op, args=(x,), kwargs=kwargs) class TestMultiScaleRoIAlign: def make_obj(self, fmap_names=None, output_size=(7, 7), sampling_ratio=2, wrap=False): if fmap_names is None: fmap_names = ["0"] obj = ops.poolers.MultiScaleRoIAlign(fmap_names, output_size, sampling_ratio) return MultiScaleRoIAlignModuleWrapper(obj) if wrap else obj def test_msroialign_repr(self): fmap_names = ["0"] output_size = (7, 7) sampling_ratio = 2 # Pass mock feature map names t = self.make_obj(fmap_names, output_size, sampling_ratio, wrap=False) # Check integrity of object __repr__ attribute expected_string = ( f"MultiScaleRoIAlign(featmap_names={fmap_names}, output_size={output_size}, " f"sampling_ratio={sampling_ratio})" ) assert repr(t) == expected_string @pytest.mark.parametrize("device", cpu_and_cuda()) def test_is_leaf_node(self, device): op_obj = self.make_obj(wrap=True).to(device=device) graph_node_names = get_graph_node_names(op_obj) assert len(graph_node_names) == 2 assert len(graph_node_names[0]) == len(graph_node_names[1]) assert len(graph_node_names[0]) == 1 + op_obj.n_inputs class TestNMS: def _reference_nms(self, boxes, scores, iou_threshold): """ Args: boxes: boxes in corner-form scores: probabilities iou_threshold: intersection over union threshold Returns: picked: a list of indexes of the kept boxes """ picked = [] _, indexes = scores.sort(descending=True) while len(indexes) > 0: current = indexes[0] picked.append(current.item()) if len(indexes) == 1: break current_box = boxes[current, :] indexes = indexes[1:] rest_boxes = boxes[indexes, :] iou = ops.box_iou(rest_boxes, current_box.unsqueeze(0)).squeeze(1) indexes = indexes[iou <= iou_threshold] return torch.as_tensor(picked) def _create_tensors_with_iou(self, N, iou_thresh): # force last box to have a pre-defined iou with the first box # let b0 be [x0, y0, x1, y1], and b1 be [x0, y0, x1 + d, y1], # then, in order to satisfy ops.iou(b0, b1) == iou_thresh, # we need to have d = (x1 - x0) * (1 - iou_thresh) / iou_thresh # Adjust the threshold upward a bit with the intent of creating # at least one box that exceeds (barely) the threshold and so # should be suppressed. boxes = torch.rand(N, 4) * 100 boxes[:, 2:] += boxes[:, :2] boxes[-1, :] = boxes[0, :] x0, y0, x1, y1 = boxes[-1].tolist() iou_thresh += 1e-5 boxes[-1, 2] += (x1 - x0) * (1 - iou_thresh) / iou_thresh scores = torch.rand(N) return boxes, scores @pytest.mark.parametrize("iou", (0.2, 0.5, 0.8)) @pytest.mark.parametrize("seed", range(10)) @pytest.mark.opcheck_only_one() def test_nms_ref(self, iou, seed): torch.random.manual_seed(seed) err_msg = "NMS incompatible between CPU and reference implementation for IoU={}" boxes, scores = self._create_tensors_with_iou(1000, iou) keep_ref = self._reference_nms(boxes, scores, iou) keep = ops.nms(boxes, scores, iou) torch.testing.assert_close(keep, keep_ref, msg=err_msg.format(iou)) def test_nms_input_errors(self): with pytest.raises(RuntimeError): ops.nms(torch.rand(4), torch.rand(3), 0.5) with pytest.raises(RuntimeError): ops.nms(torch.rand(3, 5), torch.rand(3), 0.5) with pytest.raises(RuntimeError): ops.nms(torch.rand(3, 4), torch.rand(3, 2), 0.5) with pytest.raises(RuntimeError): ops.nms(torch.rand(3, 4), torch.rand(4), 0.5) @pytest.mark.parametrize("iou", (0.2, 0.5, 0.8)) @pytest.mark.parametrize("scale, zero_point", ((1, 0), (2, 50), (3, 10))) @pytest.mark.opcheck_only_one() def test_qnms(self, iou, scale, zero_point): # Note: we compare qnms vs nms instead of qnms vs reference implementation. # This is because with the int conversion, the trick used in _create_tensors_with_iou # doesn't really work (in fact, nms vs reference implem will also fail with ints) err_msg = "NMS and QNMS give different results for IoU={}" boxes, scores = self._create_tensors_with_iou(1000, iou) scores *= 100 # otherwise most scores would be 0 or 1 after int conversion qboxes = torch.quantize_per_tensor(boxes, scale=scale, zero_point=zero_point, dtype=torch.quint8) qscores = torch.quantize_per_tensor(scores, scale=scale, zero_point=zero_point, dtype=torch.quint8) boxes = qboxes.dequantize() scores = qscores.dequantize() keep = ops.nms(boxes, scores, iou) qkeep = ops.nms(qboxes, qscores, iou) torch.testing.assert_close(qkeep, keep, msg=err_msg.format(iou)) @pytest.mark.parametrize( "device", ( pytest.param("cuda", marks=pytest.mark.needs_cuda), pytest.param("mps", marks=pytest.mark.needs_mps), ), ) @pytest.mark.parametrize("iou", (0.2, 0.5, 0.8)) @pytest.mark.opcheck_only_one() def test_nms_gpu(self, iou, device, dtype=torch.float64): dtype = torch.float32 if device == "mps" else dtype tol = 1e-3 if dtype is torch.half else 1e-5 err_msg = "NMS incompatible between CPU and CUDA for IoU={}" boxes, scores = self._create_tensors_with_iou(1000, iou) r_cpu = ops.nms(boxes, scores, iou) r_gpu = ops.nms(boxes.to(device), scores.to(device), iou) is_eq = torch.allclose(r_cpu, r_gpu.cpu()) if not is_eq: # if the indices are not the same, ensure that it's because the scores # are duplicate is_eq = torch.allclose(scores[r_cpu], scores[r_gpu.cpu()], rtol=tol, atol=tol) assert is_eq, err_msg.format(iou) @needs_cuda @pytest.mark.parametrize("iou", (0.2, 0.5, 0.8)) @pytest.mark.parametrize("dtype", (torch.float, torch.half)) @pytest.mark.opcheck_only_one() def test_autocast(self, iou, dtype): with torch.cuda.amp.autocast(): self.test_nms_gpu(iou=iou, dtype=dtype, device="cuda") @pytest.mark.parametrize("iou", (0.2, 0.5, 0.8)) @pytest.mark.parametrize("dtype", (torch.float, torch.bfloat16)) def test_autocast_cpu(self, iou, dtype): boxes, scores = self._create_tensors_with_iou(1000, iou) with torch.cpu.amp.autocast(): keep_ref_float = ops.nms(boxes.to(dtype).float(), scores.to(dtype).float(), iou) keep_dtype = ops.nms(boxes.to(dtype), scores.to(dtype), iou) torch.testing.assert_close(keep_ref_float, keep_dtype) @pytest.mark.parametrize( "device", ( pytest.param("cuda", marks=pytest.mark.needs_cuda), pytest.param("mps", marks=pytest.mark.needs_mps), ), ) @pytest.mark.opcheck_only_one() def test_nms_float16(self, device): boxes = torch.tensor( [ [285.3538, 185.5758, 1193.5110, 851.4551], [285.1472, 188.7374, 1192.4984, 851.0669], [279.2440, 197.9812, 1189.4746, 849.2019], ] ).to(device) scores = torch.tensor([0.6370, 0.7569, 0.3966]).to(device) iou_thres = 0.2 keep32 = ops.nms(boxes, scores, iou_thres) keep16 = ops.nms(boxes.to(torch.float16), scores.to(torch.float16), iou_thres) assert_equal(keep32, keep16) @pytest.mark.parametrize("seed", range(10)) @pytest.mark.opcheck_only_one() def test_batched_nms_implementations(self, seed): """Make sure that both implementations of batched_nms yield identical results""" torch.random.manual_seed(seed) num_boxes = 1000 iou_threshold = 0.9 boxes = torch.cat((torch.rand(num_boxes, 2), torch.rand(num_boxes, 2) + 10), dim=1) assert max(boxes[:, 0]) < min(boxes[:, 2]) # x1 < x2 assert max(boxes[:, 1]) < min(boxes[:, 3]) # y1 < y2 scores = torch.rand(num_boxes) idxs = torch.randint(0, 4, size=(num_boxes,)) keep_vanilla = ops.boxes._batched_nms_vanilla(boxes, scores, idxs, iou_threshold) keep_trick = ops.boxes._batched_nms_coordinate_trick(boxes, scores, idxs, iou_threshold) torch.testing.assert_close( keep_vanilla, keep_trick, msg="The vanilla and the trick implementation yield different nms outputs." ) # Also make sure an empty tensor is returned if boxes is empty empty = torch.empty((0,), dtype=torch.int64) torch.testing.assert_close(empty, ops.batched_nms(empty, None, None, None)) optests.generate_opcheck_tests( testcase=TestNMS, namespaces=["torchvision"], failures_dict_path=os.path.join(os.path.dirname(__file__), "optests_failures_dict.json"), additional_decorators=[], test_utils=OPTESTS, ) class TestDeformConv: dtype = torch.float64 def expected_fn(self, x, weight, offset, mask, bias, stride=1, padding=0, dilation=1): stride_h, stride_w = _pair(stride) pad_h, pad_w = _pair(padding) dil_h, dil_w = _pair(dilation) weight_h, weight_w = weight.shape[-2:] n_batches, n_in_channels, in_h, in_w = x.shape n_out_channels = weight.shape[0] out_h = (in_h + 2 * pad_h - (dil_h * (weight_h - 1) + 1)) // stride_h + 1 out_w = (in_w + 2 * pad_w - (dil_w * (weight_w - 1) + 1)) // stride_w + 1 n_offset_grps = offset.shape[1] // (2 * weight_h * weight_w) in_c_per_offset_grp = n_in_channels // n_offset_grps n_weight_grps = n_in_channels // weight.shape[1] in_c_per_weight_grp = weight.shape[1] out_c_per_weight_grp = n_out_channels // n_weight_grps out = torch.zeros(n_batches, n_out_channels, out_h, out_w, device=x.device, dtype=x.dtype) for b in range(n_batches): for c_out in range(n_out_channels): for i in range(out_h): for j in range(out_w): for di in range(weight_h): for dj in range(weight_w): for c in range(in_c_per_weight_grp): weight_grp = c_out // out_c_per_weight_grp c_in = weight_grp * in_c_per_weight_grp + c offset_grp = c_in // in_c_per_offset_grp mask_idx = offset_grp * (weight_h * weight_w) + di * weight_w + dj offset_idx = 2 * mask_idx pi = stride_h * i - pad_h + dil_h * di + offset[b, offset_idx, i, j] pj = stride_w * j - pad_w + dil_w * dj + offset[b, offset_idx + 1, i, j] mask_value = 1.0 if mask is not None: mask_value = mask[b, mask_idx, i, j] out[b, c_out, i, j] += ( mask_value * weight[c_out, c, di, dj] * bilinear_interpolate(x[b, c_in, :, :], pi, pj) ) out += bias.view(1, n_out_channels, 1, 1) return out @lru_cache(maxsize=None) def get_fn_args(self, device, contiguous, batch_sz, dtype): n_in_channels = 6 n_out_channels = 2 n_weight_grps = 2 n_offset_grps = 3 stride = (2, 1) pad = (1, 0) dilation = (2, 1) stride_h, stride_w = stride pad_h, pad_w = pad dil_h, dil_w = dilation weight_h, weight_w = (3, 2) in_h, in_w = (5, 4) out_h = (in_h + 2 * pad_h - (dil_h * (weight_h - 1) + 1)) // stride_h + 1 out_w = (in_w + 2 * pad_w - (dil_w * (weight_w - 1) + 1)) // stride_w + 1 x = torch.rand(batch_sz, n_in_channels, in_h, in_w, device=device, dtype=dtype, requires_grad=True) offset = torch.randn( batch_sz, n_offset_grps * 2 * weight_h * weight_w, out_h, out_w, device=device, dtype=dtype, requires_grad=True, ) mask = torch.randn( batch_sz, n_offset_grps * weight_h * weight_w, out_h, out_w, device=device, dtype=dtype, requires_grad=True ) weight = torch.randn( n_out_channels, n_in_channels // n_weight_grps, weight_h, weight_w, device=device, dtype=dtype, requires_grad=True, ) bias = torch.randn(n_out_channels, device=device, dtype=dtype, requires_grad=True) if not contiguous: x = x.permute(0, 1, 3, 2).contiguous().permute(0, 1, 3, 2) offset = offset.permute(1, 3, 0, 2).contiguous().permute(2, 0, 3, 1) mask = mask.permute(1, 3, 0, 2).contiguous().permute(2, 0, 3, 1) weight = weight.permute(3, 2, 0, 1).contiguous().permute(2, 3, 1, 0) return x, weight, offset, mask, bias, stride, pad, dilation def make_obj(self, in_channels=6, out_channels=2, kernel_size=(3, 2), groups=2, wrap=False): obj = ops.DeformConv2d( in_channels, out_channels, kernel_size, stride=(2, 1), padding=(1, 0), dilation=(2, 1), groups=groups ) return DeformConvModuleWrapper(obj) if wrap else obj @pytest.mark.parametrize("device", cpu_and_cuda()) def test_is_leaf_node(self, device): op_obj = self.make_obj(wrap=True).to(device=device) graph_node_names = get_graph_node_names(op_obj) assert len(graph_node_names) == 2 assert len(graph_node_names[0]) == len(graph_node_names[1]) assert len(graph_node_names[0]) == 1 + op_obj.n_inputs @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("contiguous", (True, False)) @pytest.mark.parametrize("batch_sz", (0, 33)) @pytest.mark.opcheck_only_one() def test_forward(self, device, contiguous, batch_sz, dtype=None): dtype = dtype or self.dtype x, _, offset, mask, _, stride, padding, dilation = self.get_fn_args(device, contiguous, batch_sz, dtype) in_channels = 6 out_channels = 2 kernel_size = (3, 2) groups = 2 tol = 2e-3 if dtype is torch.half else 1e-5 layer = self.make_obj(in_channels, out_channels, kernel_size, groups, wrap=False).to( device=x.device, dtype=dtype ) res = layer(x, offset, mask) weight = layer.weight.data bias = layer.bias.data expected = self.expected_fn(x, weight, offset, mask, bias, stride=stride, padding=padding, dilation=dilation) torch.testing.assert_close( res.to(expected), expected, rtol=tol, atol=tol, msg=f"\nres:\n{res}\nexpected:\n{expected}" ) # no modulation test res = layer(x, offset) expected = self.expected_fn(x, weight, offset, None, bias, stride=stride, padding=padding, dilation=dilation) torch.testing.assert_close( res.to(expected), expected, rtol=tol, atol=tol, msg=f"\nres:\n{res}\nexpected:\n{expected}" ) def test_wrong_sizes(self): in_channels = 6 out_channels = 2 kernel_size = (3, 2) groups = 2 x, _, offset, mask, _, stride, padding, dilation = self.get_fn_args( "cpu", contiguous=True, batch_sz=10, dtype=self.dtype ) layer = ops.DeformConv2d( in_channels, out_channels, kernel_size, stride=stride, padding=padding, dilation=dilation, groups=groups ) with pytest.raises(RuntimeError, match="the shape of the offset"): wrong_offset = torch.rand_like(offset[:, :2]) layer(x, wrong_offset) with pytest.raises(RuntimeError, match=r"mask.shape\[1\] is not valid"): wrong_mask = torch.rand_like(mask[:, :2]) layer(x, offset, wrong_mask) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("contiguous", (True, False)) @pytest.mark.parametrize("batch_sz", (0, 33)) @pytest.mark.opcheck_only_one() def test_backward(self, device, contiguous, batch_sz): x, weight, offset, mask, bias, stride, padding, dilation = self.get_fn_args( device, contiguous, batch_sz, self.dtype ) def func(x_, offset_, mask_, weight_, bias_): return ops.deform_conv2d( x_, offset_, weight_, bias_, stride=stride, padding=padding, dilation=dilation, mask=mask_ ) gradcheck(func, (x, offset, mask, weight, bias), nondet_tol=1e-5, fast_mode=True) def func_no_mask(x_, offset_, weight_, bias_): return ops.deform_conv2d( x_, offset_, weight_, bias_, stride=stride, padding=padding, dilation=dilation, mask=None ) gradcheck(func_no_mask, (x, offset, weight, bias), nondet_tol=1e-5, fast_mode=True) @torch.jit.script def script_func(x_, offset_, mask_, weight_, bias_, stride_, pad_, dilation_): # type:(Tensor, Tensor, Tensor, Tensor, Tensor, Tuple[int, int], Tuple[int, int], Tuple[int, int])->Tensor return ops.deform_conv2d( x_, offset_, weight_, bias_, stride=stride_, padding=pad_, dilation=dilation_, mask=mask_ ) gradcheck( lambda z, off, msk, wei, bi: script_func(z, off, msk, wei, bi, stride, padding, dilation), (x, offset, mask, weight, bias), nondet_tol=1e-5, fast_mode=True, ) @torch.jit.script def script_func_no_mask(x_, offset_, weight_, bias_, stride_, pad_, dilation_): # type:(Tensor, Tensor, Tensor, Tensor, Tuple[int, int], Tuple[int, int], Tuple[int, int])->Tensor return ops.deform_conv2d( x_, offset_, weight_, bias_, stride=stride_, padding=pad_, dilation=dilation_, mask=None ) gradcheck( lambda z, off, wei, bi: script_func_no_mask(z, off, wei, bi, stride, padding, dilation), (x, offset, weight, bias), nondet_tol=1e-5, fast_mode=True, ) @needs_cuda @pytest.mark.parametrize("contiguous", (True, False)) @pytest.mark.opcheck_only_one() def test_compare_cpu_cuda_grads(self, contiguous): # Test from https://github.com/pytorch/vision/issues/2598 # Run on CUDA only # compare grads computed on CUDA with grads computed on CPU true_cpu_grads = None init_weight = torch.randn(9, 9, 3, 3, requires_grad=True) img = torch.randn(8, 9, 1000, 110) offset = torch.rand(8, 2 * 3 * 3, 1000, 110) mask = torch.rand(8, 3 * 3, 1000, 110) if not contiguous: img = img.permute(0, 1, 3, 2).contiguous().permute(0, 1, 3, 2) offset = offset.permute(1, 3, 0, 2).contiguous().permute(2, 0, 3, 1) mask = mask.permute(1, 3, 0, 2).contiguous().permute(2, 0, 3, 1) weight = init_weight.permute(3, 2, 0, 1).contiguous().permute(2, 3, 1, 0) else: weight = init_weight for d in ["cpu", "cuda"]: out = ops.deform_conv2d(img.to(d), offset.to(d), weight.to(d), padding=1, mask=mask.to(d)) out.mean().backward() if true_cpu_grads is None: true_cpu_grads = init_weight.grad assert true_cpu_grads is not None else: assert init_weight.grad is not None res_grads = init_weight.grad.to("cpu") torch.testing.assert_close(true_cpu_grads, res_grads) @needs_cuda @pytest.mark.parametrize("batch_sz", (0, 33)) @pytest.mark.parametrize("dtype", (torch.float, torch.half)) @pytest.mark.opcheck_only_one() def test_autocast(self, batch_sz, dtype): with torch.cuda.amp.autocast(): self.test_forward(torch.device("cuda"), contiguous=False, batch_sz=batch_sz, dtype=dtype) def test_forward_scriptability(self): # Non-regression test for https://github.com/pytorch/vision/issues/4078 torch.jit.script(ops.DeformConv2d(in_channels=8, out_channels=8, kernel_size=3)) optests.generate_opcheck_tests( testcase=TestDeformConv, namespaces=["torchvision"], failures_dict_path=os.path.join(os.path.dirname(__file__), "optests_failures_dict.json"), additional_decorators=[], test_utils=OPTESTS, ) class TestFrozenBNT: def test_frozenbatchnorm2d_repr(self): num_features = 32 eps = 1e-5 t = ops.misc.FrozenBatchNorm2d(num_features, eps=eps) # Check integrity of object __repr__ attribute expected_string = f"FrozenBatchNorm2d({num_features}, eps={eps})" assert repr(t) == expected_string @pytest.mark.parametrize("seed", range(10)) def test_frozenbatchnorm2d_eps(self, seed): torch.random.manual_seed(seed) sample_size = (4, 32, 28, 28) x = torch.rand(sample_size) state_dict = dict( weight=torch.rand(sample_size[1]), bias=torch.rand(sample_size[1]), running_mean=torch.rand(sample_size[1]), running_var=torch.rand(sample_size[1]), num_batches_tracked=torch.tensor(100), ) # Check that default eps is equal to the one of BN fbn = ops.misc.FrozenBatchNorm2d(sample_size[1]) fbn.load_state_dict(state_dict, strict=False) bn = torch.nn.BatchNorm2d(sample_size[1]).eval() bn.load_state_dict(state_dict) # Difference is expected to fall in an acceptable range torch.testing.assert_close(fbn(x), bn(x), rtol=1e-5, atol=1e-6) # Check computation for eps > 0 fbn = ops.misc.FrozenBatchNorm2d(sample_size[1], eps=1e-5) fbn.load_state_dict(state_dict, strict=False) bn = torch.nn.BatchNorm2d(sample_size[1], eps=1e-5).eval() bn.load_state_dict(state_dict) torch.testing.assert_close(fbn(x), bn(x), rtol=1e-5, atol=1e-6) class TestBoxConversionToRoi: def _get_box_sequences(): # Define here the argument type of `boxes` supported by region pooling operations box_tensor = torch.tensor([[0, 0, 0, 100, 100], [1, 0, 0, 100, 100]], dtype=torch.float) box_list = [ torch.tensor([[0, 0, 100, 100]], dtype=torch.float), torch.tensor([[0, 0, 100, 100]], dtype=torch.float), ] box_tuple = tuple(box_list) return box_tensor, box_list, box_tuple @pytest.mark.parametrize("box_sequence", _get_box_sequences()) def test_check_roi_boxes_shape(self, box_sequence): # Ensure common sequences of tensors are supported ops._utils.check_roi_boxes_shape(box_sequence) @pytest.mark.parametrize("box_sequence", _get_box_sequences()) def test_convert_boxes_to_roi_format(self, box_sequence): # Ensure common sequences of tensors yield the same result ref_tensor = None if ref_tensor is None: ref_tensor = box_sequence else: assert_equal(ref_tensor, ops._utils.convert_boxes_to_roi_format(box_sequence)) class TestBoxConvert: def test_bbox_same(self): box_tensor = torch.tensor( [[0, 0, 100, 100], [0, 0, 0, 0], [10, 15, 30, 35], [23, 35, 93, 95]], dtype=torch.float ) exp_xyxy = torch.tensor([[0, 0, 100, 100], [0, 0, 0, 0], [10, 15, 30, 35], [23, 35, 93, 95]], dtype=torch.float) assert exp_xyxy.size() == torch.Size([4, 4]) assert_equal(ops.box_convert(box_tensor, in_fmt="xyxy", out_fmt="xyxy"), exp_xyxy) assert_equal(ops.box_convert(box_tensor, in_fmt="xywh", out_fmt="xywh"), exp_xyxy) assert_equal(ops.box_convert(box_tensor, in_fmt="cxcywh", out_fmt="cxcywh"), exp_xyxy) def test_bbox_xyxy_xywh(self): # Simple test convert boxes to xywh and back. Make sure they are same. # box_tensor is in x1 y1 x2 y2 format. box_tensor = torch.tensor( [[0, 0, 100, 100], [0, 0, 0, 0], [10, 15, 30, 35], [23, 35, 93, 95]], dtype=torch.float ) exp_xywh = torch.tensor([[0, 0, 100, 100], [0, 0, 0, 0], [10, 15, 20, 20], [23, 35, 70, 60]], dtype=torch.float) assert exp_xywh.size() == torch.Size([4, 4]) box_xywh = ops.box_convert(box_tensor, in_fmt="xyxy", out_fmt="xywh") assert_equal(box_xywh, exp_xywh) # Reverse conversion box_xyxy = ops.box_convert(box_xywh, in_fmt="xywh", out_fmt="xyxy") assert_equal(box_xyxy, box_tensor) def test_bbox_xyxy_cxcywh(self): # Simple test convert boxes to cxcywh and back. Make sure they are same. # box_tensor is in x1 y1 x2 y2 format. box_tensor = torch.tensor( [[0, 0, 100, 100], [0, 0, 0, 0], [10, 15, 30, 35], [23, 35, 93, 95]], dtype=torch.float ) exp_cxcywh = torch.tensor( [[50, 50, 100, 100], [0, 0, 0, 0], [20, 25, 20, 20], [58, 65, 70, 60]], dtype=torch.float ) assert exp_cxcywh.size() == torch.Size([4, 4]) box_cxcywh = ops.box_convert(box_tensor, in_fmt="xyxy", out_fmt="cxcywh") assert_equal(box_cxcywh, exp_cxcywh) # Reverse conversion box_xyxy = ops.box_convert(box_cxcywh, in_fmt="cxcywh", out_fmt="xyxy") assert_equal(box_xyxy, box_tensor) def test_bbox_xywh_cxcywh(self): box_tensor = torch.tensor( [[0, 0, 100, 100], [0, 0, 0, 0], [10, 15, 20, 20], [23, 35, 70, 60]], dtype=torch.float ) exp_cxcywh = torch.tensor( [[50, 50, 100, 100], [0, 0, 0, 0], [20, 25, 20, 20], [58, 65, 70, 60]], dtype=torch.float ) assert exp_cxcywh.size() == torch.Size([4, 4]) box_cxcywh = ops.box_convert(box_tensor, in_fmt="xywh", out_fmt="cxcywh") assert_equal(box_cxcywh, exp_cxcywh) # Reverse conversion box_xywh = ops.box_convert(box_cxcywh, in_fmt="cxcywh", out_fmt="xywh") assert_equal(box_xywh, box_tensor) @pytest.mark.parametrize("inv_infmt", ["xwyh", "cxwyh"]) @pytest.mark.parametrize("inv_outfmt", ["xwcx", "xhwcy"]) def test_bbox_invalid(self, inv_infmt, inv_outfmt): box_tensor = torch.tensor( [[0, 0, 100, 100], [0, 0, 0, 0], [10, 15, 20, 20], [23, 35, 70, 60]], dtype=torch.float ) with pytest.raises(ValueError): ops.box_convert(box_tensor, inv_infmt, inv_outfmt) def test_bbox_convert_jit(self): box_tensor = torch.tensor( [[0, 0, 100, 100], [0, 0, 0, 0], [10, 15, 30, 35], [23, 35, 93, 95]], dtype=torch.float ) scripted_fn = torch.jit.script(ops.box_convert) box_xywh = ops.box_convert(box_tensor, in_fmt="xyxy", out_fmt="xywh") scripted_xywh = scripted_fn(box_tensor, "xyxy", "xywh") torch.testing.assert_close(scripted_xywh, box_xywh) box_cxcywh = ops.box_convert(box_tensor, in_fmt="xyxy", out_fmt="cxcywh") scripted_cxcywh = scripted_fn(box_tensor, "xyxy", "cxcywh") torch.testing.assert_close(scripted_cxcywh, box_cxcywh) class TestBoxArea: def area_check(self, box, expected, atol=1e-4): out = ops.box_area(box) torch.testing.assert_close(out, expected, rtol=0.0, check_dtype=False, atol=atol) @pytest.mark.parametrize("dtype", [torch.int8, torch.int16, torch.int32, torch.int64]) def test_int_boxes(self, dtype): box_tensor = torch.tensor([[0, 0, 100, 100], [0, 0, 0, 0]], dtype=dtype) expected = torch.tensor([10000, 0], dtype=torch.int32) self.area_check(box_tensor, expected) @pytest.mark.parametrize("dtype", [torch.float32, torch.float64]) def test_float_boxes(self, dtype): box_tensor = torch.tensor(FLOAT_BOXES, dtype=dtype) expected = torch.tensor([604723.0806, 600965.4666, 592761.0085], dtype=dtype) self.area_check(box_tensor, expected) def test_float16_box(self): box_tensor = torch.tensor( [[2.825, 1.8625, 3.90, 4.85], [2.825, 4.875, 19.20, 5.10], [2.925, 1.80, 8.90, 4.90]], dtype=torch.float16 ) expected = torch.tensor([3.2170, 3.7108, 18.5071], dtype=torch.float16) self.area_check(box_tensor, expected, atol=0.01) def test_box_area_jit(self): box_tensor = torch.tensor([[0, 0, 100, 100], [0, 0, 0, 0]], dtype=torch.float) expected = ops.box_area(box_tensor) scripted_fn = torch.jit.script(ops.box_area) scripted_area = scripted_fn(box_tensor) torch.testing.assert_close(scripted_area, expected) INT_BOXES = [[0, 0, 100, 100], [0, 0, 50, 50], [200, 200, 300, 300], [0, 0, 25, 25]] INT_BOXES2 = [[0, 0, 100, 100], [0, 0, 50, 50], [200, 200, 300, 300]] FLOAT_BOXES = [ [285.3538, 185.5758, 1193.5110, 851.4551], [285.1472, 188.7374, 1192.4984, 851.0669], [279.2440, 197.9812, 1189.4746, 849.2019], ] def gen_box(size, dtype=torch.float): xy1 = torch.rand((size, 2), dtype=dtype) xy2 = xy1 + torch.rand((size, 2), dtype=dtype) return torch.cat([xy1, xy2], axis=-1) class TestIouBase: @staticmethod def _run_test(target_fn: Callable, actual_box1, actual_box2, dtypes, atol, expected): for dtype in dtypes: actual_box1 = torch.tensor(actual_box1, dtype=dtype) actual_box2 = torch.tensor(actual_box2, dtype=dtype) expected_box = torch.tensor(expected) out = target_fn(actual_box1, actual_box2) torch.testing.assert_close(out, expected_box, rtol=0.0, check_dtype=False, atol=atol) @staticmethod def _run_jit_test(target_fn: Callable, actual_box: List): box_tensor = torch.tensor(actual_box, dtype=torch.float) expected = target_fn(box_tensor, box_tensor) scripted_fn = torch.jit.script(target_fn) scripted_out = scripted_fn(box_tensor, box_tensor) torch.testing.assert_close(scripted_out, expected) @staticmethod def _cartesian_product(boxes1, boxes2, target_fn: Callable): N = boxes1.size(0) M = boxes2.size(0) result = torch.zeros((N, M)) for i in range(N): for j in range(M): result[i, j] = target_fn(boxes1[i].unsqueeze(0), boxes2[j].unsqueeze(0)) return result @staticmethod def _run_cartesian_test(target_fn: Callable): boxes1 = gen_box(5) boxes2 = gen_box(7) a = TestIouBase._cartesian_product(boxes1, boxes2, target_fn) b = target_fn(boxes1, boxes2) torch.testing.assert_close(a, b) class TestBoxIou(TestIouBase): int_expected = [[1.0, 0.25, 0.0], [0.25, 1.0, 0.0], [0.0, 0.0, 1.0], [0.0625, 0.25, 0.0]] float_expected = [[1.0, 0.9933, 0.9673], [0.9933, 1.0, 0.9737], [0.9673, 0.9737, 1.0]] @pytest.mark.parametrize( "actual_box1, actual_box2, dtypes, atol, expected", [ pytest.param(INT_BOXES, INT_BOXES2, [torch.int16, torch.int32, torch.int64], 1e-4, int_expected), pytest.param(FLOAT_BOXES, FLOAT_BOXES, [torch.float16], 0.002, float_expected), pytest.param(FLOAT_BOXES, FLOAT_BOXES, [torch.float32, torch.float64], 1e-3, float_expected), ], ) def test_iou(self, actual_box1, actual_box2, dtypes, atol, expected): self._run_test(ops.box_iou, actual_box1, actual_box2, dtypes, atol, expected) def test_iou_jit(self): self._run_jit_test(ops.box_iou, INT_BOXES) def test_iou_cartesian(self): self._run_cartesian_test(ops.box_iou) class TestGeneralizedBoxIou(TestIouBase): int_expected = [[1.0, 0.25, -0.7778], [0.25, 1.0, -0.8611], [-0.7778, -0.8611, 1.0], [0.0625, 0.25, -0.8819]] float_expected = [[1.0, 0.9933, 0.9673], [0.9933, 1.0, 0.9737], [0.9673, 0.9737, 1.0]] @pytest.mark.parametrize( "actual_box1, actual_box2, dtypes, atol, expected", [ pytest.param(INT_BOXES, INT_BOXES2, [torch.int16, torch.int32, torch.int64], 1e-4, int_expected), pytest.param(FLOAT_BOXES, FLOAT_BOXES, [torch.float16], 0.002, float_expected), pytest.param(FLOAT_BOXES, FLOAT_BOXES, [torch.float32, torch.float64], 1e-3, float_expected), ], ) def test_iou(self, actual_box1, actual_box2, dtypes, atol, expected): self._run_test(ops.generalized_box_iou, actual_box1, actual_box2, dtypes, atol, expected) def test_iou_jit(self): self._run_jit_test(ops.generalized_box_iou, INT_BOXES) def test_iou_cartesian(self): self._run_cartesian_test(ops.generalized_box_iou) class TestDistanceBoxIoU(TestIouBase): int_expected = [ [1.0000, 0.1875, -0.4444], [0.1875, 1.0000, -0.5625], [-0.4444, -0.5625, 1.0000], [-0.0781, 0.1875, -0.6267], ] float_expected = [[1.0, 0.9933, 0.9673], [0.9933, 1.0, 0.9737], [0.9673, 0.9737, 1.0]] @pytest.mark.parametrize( "actual_box1, actual_box2, dtypes, atol, expected", [ pytest.param(INT_BOXES, INT_BOXES2, [torch.int16, torch.int32, torch.int64], 1e-4, int_expected), pytest.param(FLOAT_BOXES, FLOAT_BOXES, [torch.float16], 0.002, float_expected), pytest.param(FLOAT_BOXES, FLOAT_BOXES, [torch.float32, torch.float64], 1e-3, float_expected), ], ) def test_iou(self, actual_box1, actual_box2, dtypes, atol, expected): self._run_test(ops.distance_box_iou, actual_box1, actual_box2, dtypes, atol, expected) def test_iou_jit(self): self._run_jit_test(ops.distance_box_iou, INT_BOXES) def test_iou_cartesian(self): self._run_cartesian_test(ops.distance_box_iou) class TestCompleteBoxIou(TestIouBase): int_expected = [ [1.0000, 0.1875, -0.4444], [0.1875, 1.0000, -0.5625], [-0.4444, -0.5625, 1.0000], [-0.0781, 0.1875, -0.6267], ] float_expected = [[1.0, 0.9933, 0.9673], [0.9933, 1.0, 0.9737], [0.9673, 0.9737, 1.0]] @pytest.mark.parametrize( "actual_box1, actual_box2, dtypes, atol, expected", [ pytest.param(INT_BOXES, INT_BOXES2, [torch.int16, torch.int32, torch.int64], 1e-4, int_expected), pytest.param(FLOAT_BOXES, FLOAT_BOXES, [torch.float16], 0.002, float_expected), pytest.param(FLOAT_BOXES, FLOAT_BOXES, [torch.float32, torch.float64], 1e-3, float_expected), ], ) def test_iou(self, actual_box1, actual_box2, dtypes, atol, expected): self._run_test(ops.complete_box_iou, actual_box1, actual_box2, dtypes, atol, expected) def test_iou_jit(self): self._run_jit_test(ops.complete_box_iou, INT_BOXES) def test_iou_cartesian(self): self._run_cartesian_test(ops.complete_box_iou) def get_boxes(dtype, device): box1 = torch.tensor([-1, -1, 1, 1], dtype=dtype, device=device) box2 = torch.tensor([0, 0, 1, 1], dtype=dtype, device=device) box3 = torch.tensor([0, 1, 1, 2], dtype=dtype, device=device) box4 = torch.tensor([1, 1, 2, 2], dtype=dtype, device=device) box1s = torch.stack([box2, box2], dim=0) box2s = torch.stack([box3, box4], dim=0) return box1, box2, box3, box4, box1s, box2s def assert_iou_loss(iou_fn, box1, box2, expected_loss, device, reduction="none"): computed_loss = iou_fn(box1, box2, reduction=reduction) expected_loss = torch.tensor(expected_loss, device=device) torch.testing.assert_close(computed_loss, expected_loss) def assert_empty_loss(iou_fn, dtype, device): box1 = torch.randn([0, 4], dtype=dtype, device=device).requires_grad_() box2 = torch.randn([0, 4], dtype=dtype, device=device).requires_grad_() loss = iou_fn(box1, box2, reduction="mean") loss.backward() torch.testing.assert_close(loss, torch.tensor(0.0, device=device)) assert box1.grad is not None, "box1.grad should not be None after backward is called" assert box2.grad is not None, "box2.grad should not be None after backward is called" loss = iou_fn(box1, box2, reduction="none") assert loss.numel() == 0, f"{str(iou_fn)} for two empty box should be empty" class TestGeneralizedBoxIouLoss: # We refer to original test: https://github.com/facebookresearch/fvcore/blob/main/tests/test_giou_loss.py @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dtype", [torch.float32, torch.half]) def test_giou_loss(self, dtype, device): box1, box2, box3, box4, box1s, box2s = get_boxes(dtype, device) # Identical boxes should have loss of 0 assert_iou_loss(ops.generalized_box_iou_loss, box1, box1, 0.0, device=device) # quarter size box inside other box = IoU of 0.25 assert_iou_loss(ops.generalized_box_iou_loss, box1, box2, 0.75, device=device) # Two side by side boxes, area=union # IoU=0 and GIoU=0 (loss 1.0) assert_iou_loss(ops.generalized_box_iou_loss, box2, box3, 1.0, device=device) # Two diagonally adjacent boxes, area=2*union # IoU=0 and GIoU=-0.5 (loss 1.5) assert_iou_loss(ops.generalized_box_iou_loss, box2, box4, 1.5, device=device) # Test batched loss and reductions assert_iou_loss(ops.generalized_box_iou_loss, box1s, box2s, 2.5, device=device, reduction="sum") assert_iou_loss(ops.generalized_box_iou_loss, box1s, box2s, 1.25, device=device, reduction="mean") # Test reduction value # reduction value other than ["none", "mean", "sum"] should raise a ValueError with pytest.raises(ValueError, match="Invalid"): ops.generalized_box_iou_loss(box1s, box2s, reduction="xyz") @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dtype", [torch.float32, torch.half]) def test_empty_inputs(self, dtype, device): assert_empty_loss(ops.generalized_box_iou_loss, dtype, device) class TestCompleteBoxIouLoss: @pytest.mark.parametrize("dtype", [torch.float32, torch.half]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_ciou_loss(self, dtype, device): box1, box2, box3, box4, box1s, box2s = get_boxes(dtype, device) assert_iou_loss(ops.complete_box_iou_loss, box1, box1, 0.0, device=device) assert_iou_loss(ops.complete_box_iou_loss, box1, box2, 0.8125, device=device) assert_iou_loss(ops.complete_box_iou_loss, box1, box3, 1.1923, device=device) assert_iou_loss(ops.complete_box_iou_loss, box1, box4, 1.2500, device=device) assert_iou_loss(ops.complete_box_iou_loss, box1s, box2s, 1.2250, device=device, reduction="mean") assert_iou_loss(ops.complete_box_iou_loss, box1s, box2s, 2.4500, device=device, reduction="sum") with pytest.raises(ValueError, match="Invalid"): ops.complete_box_iou_loss(box1s, box2s, reduction="xyz") @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dtype", [torch.float32, torch.half]) def test_empty_inputs(self, dtype, device): assert_empty_loss(ops.complete_box_iou_loss, dtype, device) class TestDistanceBoxIouLoss: @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dtype", [torch.float32, torch.half]) def test_distance_iou_loss(self, dtype, device): box1, box2, box3, box4, box1s, box2s = get_boxes(dtype, device) assert_iou_loss(ops.distance_box_iou_loss, box1, box1, 0.0, device=device) assert_iou_loss(ops.distance_box_iou_loss, box1, box2, 0.8125, device=device) assert_iou_loss(ops.distance_box_iou_loss, box1, box3, 1.1923, device=device) assert_iou_loss(ops.distance_box_iou_loss, box1, box4, 1.2500, device=device) assert_iou_loss(ops.distance_box_iou_loss, box1s, box2s, 1.2250, device=device, reduction="mean") assert_iou_loss(ops.distance_box_iou_loss, box1s, box2s, 2.4500, device=device, reduction="sum") with pytest.raises(ValueError, match="Invalid"): ops.distance_box_iou_loss(box1s, box2s, reduction="xyz") @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dtype", [torch.float32, torch.half]) def test_empty_distance_iou_inputs(self, dtype, device): assert_empty_loss(ops.distance_box_iou_loss, dtype, device) class TestFocalLoss: def _generate_diverse_input_target_pair(self, shape=(5, 2), **kwargs): def logit(p): return torch.log(p / (1 - p)) def generate_tensor_with_range_type(shape, range_type, **kwargs): if range_type != "random_binary": low, high = { "small": (0.0, 0.2), "big": (0.8, 1.0), "zeros": (0.0, 0.0), "ones": (1.0, 1.0), "random": (0.0, 1.0), }[range_type] return torch.testing.make_tensor(shape, low=low, high=high, **kwargs) else: return torch.randint(0, 2, shape, **kwargs) # This function will return inputs and targets with shape: (shape[0]*9, shape[1]) inputs = [] targets = [] for input_range_type, target_range_type in [ ("small", "zeros"), ("small", "ones"), ("small", "random_binary"), ("big", "zeros"), ("big", "ones"), ("big", "random_binary"), ("random", "zeros"), ("random", "ones"), ("random", "random_binary"), ]: inputs.append(logit(generate_tensor_with_range_type(shape, input_range_type, **kwargs))) targets.append(generate_tensor_with_range_type(shape, target_range_type, **kwargs)) return torch.cat(inputs), torch.cat(targets) @pytest.mark.parametrize("alpha", [-1.0, 0.0, 0.58, 1.0]) @pytest.mark.parametrize("gamma", [0, 2]) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dtype", [torch.float32, torch.half]) @pytest.mark.parametrize("seed", [0, 1]) def test_correct_ratio(self, alpha, gamma, device, dtype, seed): if device == "cpu" and dtype is torch.half: pytest.skip("Currently torch.half is not fully supported on cpu") # For testing the ratio with manual calculation, we require the reduction to be "none" reduction = "none" torch.random.manual_seed(seed) inputs, targets = self._generate_diverse_input_target_pair(dtype=dtype, device=device) focal_loss = ops.sigmoid_focal_loss(inputs, targets, gamma=gamma, alpha=alpha, reduction=reduction) ce_loss = F.binary_cross_entropy_with_logits(inputs, targets, reduction=reduction) assert torch.all( focal_loss <= ce_loss ), "focal loss must be less or equal to cross entropy loss with same input" loss_ratio = (focal_loss / ce_loss).squeeze() prob = torch.sigmoid(inputs) p_t = prob * targets + (1 - prob) * (1 - targets) correct_ratio = (1.0 - p_t) ** gamma if alpha >= 0: alpha_t = alpha * targets + (1 - alpha) * (1 - targets) correct_ratio = correct_ratio * alpha_t tol = 1e-3 if dtype is torch.half else 1e-5 torch.testing.assert_close(correct_ratio, loss_ratio, atol=tol, rtol=tol) @pytest.mark.parametrize("reduction", ["mean", "sum"]) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dtype", [torch.float32, torch.half]) @pytest.mark.parametrize("seed", [2, 3]) def test_equal_ce_loss(self, reduction, device, dtype, seed): if device == "cpu" and dtype is torch.half: pytest.skip("Currently torch.half is not fully supported on cpu") # focal loss should be equal ce_loss if alpha=-1 and gamma=0 alpha = -1 gamma = 0 torch.random.manual_seed(seed) inputs, targets = self._generate_diverse_input_target_pair(dtype=dtype, device=device) inputs_fl = inputs.clone().requires_grad_() targets_fl = targets.clone() inputs_ce = inputs.clone().requires_grad_() targets_ce = targets.clone() focal_loss = ops.sigmoid_focal_loss(inputs_fl, targets_fl, gamma=gamma, alpha=alpha, reduction=reduction) ce_loss = F.binary_cross_entropy_with_logits(inputs_ce, targets_ce, reduction=reduction) torch.testing.assert_close(focal_loss, ce_loss) focal_loss.backward() ce_loss.backward() torch.testing.assert_close(inputs_fl.grad, inputs_ce.grad) @pytest.mark.parametrize("alpha", [-1.0, 0.0, 0.58, 1.0]) @pytest.mark.parametrize("gamma", [0, 2]) @pytest.mark.parametrize("reduction", ["none", "mean", "sum"]) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dtype", [torch.float32, torch.half]) @pytest.mark.parametrize("seed", [4, 5]) def test_jit(self, alpha, gamma, reduction, device, dtype, seed): if device == "cpu" and dtype is torch.half: pytest.skip("Currently torch.half is not fully supported on cpu") script_fn = torch.jit.script(ops.sigmoid_focal_loss) torch.random.manual_seed(seed) inputs, targets = self._generate_diverse_input_target_pair(dtype=dtype, device=device) focal_loss = ops.sigmoid_focal_loss(inputs, targets, gamma=gamma, alpha=alpha, reduction=reduction) scripted_focal_loss = script_fn(inputs, targets, gamma=gamma, alpha=alpha, reduction=reduction) tol = 1e-3 if dtype is torch.half else 1e-5 torch.testing.assert_close(focal_loss, scripted_focal_loss, rtol=tol, atol=tol) # Raise ValueError for anonymous reduction mode @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dtype", [torch.float32, torch.half]) def test_reduction_mode(self, device, dtype, reduction="xyz"): if device == "cpu" and dtype is torch.half: pytest.skip("Currently torch.half is not fully supported on cpu") torch.random.manual_seed(0) inputs, targets = self._generate_diverse_input_target_pair(device=device, dtype=dtype) with pytest.raises(ValueError, match="Invalid"): ops.sigmoid_focal_loss(inputs, targets, 0.25, 2, reduction) class TestMasksToBoxes: def test_masks_box(self): def masks_box_check(masks, expected, atol=1e-4): out = ops.masks_to_boxes(masks) assert out.dtype == torch.float torch.testing.assert_close(out, expected, rtol=0.0, check_dtype=True, atol=atol) # Check for int type boxes. def _get_image(): assets_directory = os.path.join(os.path.dirname(os.path.abspath(__file__)), "assets") mask_path = os.path.join(assets_directory, "masks.tiff") image = Image.open(mask_path) return image def _create_masks(image, masks): for index in range(image.n_frames): image.seek(index) frame = np.array(image) masks[index] = torch.tensor(frame) return masks expected = torch.tensor( [ [127, 2, 165, 40], [2, 50, 44, 92], [56, 63, 98, 100], [139, 68, 175, 104], [160, 112, 198, 145], [49, 138, 99, 182], [108, 148, 152, 213], ], dtype=torch.float, ) image = _get_image() for dtype in [torch.float16, torch.float32, torch.float64]: masks = torch.zeros((image.n_frames, image.height, image.width), dtype=dtype) masks = _create_masks(image, masks) masks_box_check(masks, expected) class TestStochasticDepth: @pytest.mark.parametrize("seed", range(10)) @pytest.mark.parametrize("p", [0.2, 0.5, 0.8]) @pytest.mark.parametrize("mode", ["batch", "row"]) def test_stochastic_depth_random(self, seed, mode, p): torch.manual_seed(seed) stats = pytest.importorskip("scipy.stats") batch_size = 5 x = torch.ones(size=(batch_size, 3, 4, 4)) layer = ops.StochasticDepth(p=p, mode=mode) layer.__repr__() trials = 250 num_samples = 0 counts = 0 for _ in range(trials): out = layer(x) non_zero_count = out.sum(dim=(1, 2, 3)).nonzero().size(0) if mode == "batch": if non_zero_count == 0: counts += 1 num_samples += 1 elif mode == "row": counts += batch_size - non_zero_count num_samples += batch_size p_value = stats.binomtest(counts, num_samples, p=p).pvalue assert p_value > 0.01 @pytest.mark.parametrize("seed", range(10)) @pytest.mark.parametrize("p", (0, 1)) @pytest.mark.parametrize("mode", ["batch", "row"]) def test_stochastic_depth(self, seed, mode, p): torch.manual_seed(seed) batch_size = 5 x = torch.ones(size=(batch_size, 3, 4, 4)) layer = ops.StochasticDepth(p=p, mode=mode) out = layer(x) if p == 0: assert out.equal(x) elif p == 1: assert out.equal(torch.zeros_like(x)) def make_obj(self, p, mode, wrap=False): obj = ops.StochasticDepth(p, mode) return StochasticDepthWrapper(obj) if wrap else obj @pytest.mark.parametrize("p", (0, 1)) @pytest.mark.parametrize("mode", ["batch", "row"]) def test_is_leaf_node(self, p, mode): op_obj = self.make_obj(p, mode, wrap=True) graph_node_names = get_graph_node_names(op_obj) assert len(graph_node_names) == 2 assert len(graph_node_names[0]) == len(graph_node_names[1]) assert len(graph_node_names[0]) == 1 + op_obj.n_inputs class TestUtils: @pytest.mark.parametrize("norm_layer", [None, nn.BatchNorm2d, nn.LayerNorm]) def test_split_normalization_params(self, norm_layer): model = models.mobilenet_v3_large(norm_layer=norm_layer) params = ops._utils.split_normalization_params(model, None if norm_layer is None else [norm_layer]) assert len(params[0]) == 92 assert len(params[1]) == 82 class TestDropBlock: @pytest.mark.parametrize("seed", range(10)) @pytest.mark.parametrize("dim", [2, 3]) @pytest.mark.parametrize("p", [0, 0.5]) @pytest.mark.parametrize("block_size", [5, 11]) @pytest.mark.parametrize("inplace", [True, False]) def test_drop_block(self, seed, dim, p, block_size, inplace): torch.manual_seed(seed) batch_size = 5 channels = 3 height = 11 width = height depth = height if dim == 2: x = torch.ones(size=(batch_size, channels, height, width)) layer = ops.DropBlock2d(p=p, block_size=block_size, inplace=inplace) feature_size = height * width elif dim == 3: x = torch.ones(size=(batch_size, channels, depth, height, width)) layer = ops.DropBlock3d(p=p, block_size=block_size, inplace=inplace) feature_size = depth * height * width layer.__repr__() out = layer(x) if p == 0: assert out.equal(x) if block_size == height: for b, c in product(range(batch_size), range(channels)): assert out[b, c].count_nonzero() in (0, feature_size) @pytest.mark.parametrize("seed", range(10)) @pytest.mark.parametrize("dim", [2, 3]) @pytest.mark.parametrize("p", [0.1, 0.2]) @pytest.mark.parametrize("block_size", [3]) @pytest.mark.parametrize("inplace", [False]) def test_drop_block_random(self, seed, dim, p, block_size, inplace): torch.manual_seed(seed) batch_size = 5 channels = 3 height = 11 width = height depth = height if dim == 2: x = torch.ones(size=(batch_size, channels, height, width)) layer = ops.DropBlock2d(p=p, block_size=block_size, inplace=inplace) elif dim == 3: x = torch.ones(size=(batch_size, channels, depth, height, width)) layer = ops.DropBlock3d(p=p, block_size=block_size, inplace=inplace) trials = 250 num_samples = 0 counts = 0 cell_numel = torch.tensor(x.shape).prod() for _ in range(trials): with torch.no_grad(): out = layer(x) non_zero_count = out.nonzero().size(0) counts += cell_numel - non_zero_count num_samples += cell_numel assert abs(p - counts / num_samples) / p < 0.15 def make_obj(self, dim, p, block_size, inplace, wrap=False): if dim == 2: obj = ops.DropBlock2d(p, block_size, inplace) elif dim == 3: obj = ops.DropBlock3d(p, block_size, inplace) return DropBlockWrapper(obj) if wrap else obj @pytest.mark.parametrize("dim", (2, 3)) @pytest.mark.parametrize("p", [0, 1]) @pytest.mark.parametrize("block_size", [5, 7]) @pytest.mark.parametrize("inplace", [True, False]) def test_is_leaf_node(self, dim, p, block_size, inplace): op_obj = self.make_obj(dim, p, block_size, inplace, wrap=True) graph_node_names = get_graph_node_names(op_obj) assert len(graph_node_names) == 2 assert len(graph_node_names[0]) == len(graph_node_names[1]) assert len(graph_node_names[0]) == 1 + op_obj.n_inputs if __name__ == "__main__": pytest.main([__file__]) vision-0.19.1/test/test_transforms.py000066400000000000000000002420071466211133600177070ustar00rootroot00000000000000import math import os import random import re import sys from functools import partial import numpy as np import pytest import torch import torchvision.transforms as transforms import torchvision.transforms._functional_tensor as F_t import torchvision.transforms.functional as F from PIL import Image from torch._utils_internal import get_file_path_2 try: import accimage except ImportError: accimage = None try: from scipy import stats except ImportError: stats = None from common_utils import assert_equal, cycle_over, float_dtypes, int_dtypes GRACE_HOPPER = get_file_path_2( os.path.dirname(os.path.abspath(__file__)), "assets", "encode_jpeg", "grace_hopper_517x606.jpg" ) def _get_grayscale_test_image(img, fill=None): img = img.convert("L") fill = (fill[0],) if isinstance(fill, tuple) else fill return img, fill class TestConvertImageDtype: @pytest.mark.parametrize("input_dtype, output_dtype", cycle_over(float_dtypes())) def test_float_to_float(self, input_dtype, output_dtype): input_image = torch.tensor((0.0, 1.0), dtype=input_dtype) transform = transforms.ConvertImageDtype(output_dtype) transform_script = torch.jit.script(F.convert_image_dtype) output_image = transform(input_image) output_image_script = transform_script(input_image, output_dtype) torch.testing.assert_close(output_image_script, output_image, rtol=0.0, atol=1e-6) actual_min, actual_max = output_image.tolist() desired_min, desired_max = 0.0, 1.0 assert abs(actual_min - desired_min) < 1e-7 assert abs(actual_max - desired_max) < 1e-7 @pytest.mark.parametrize("input_dtype", float_dtypes()) @pytest.mark.parametrize("output_dtype", int_dtypes()) def test_float_to_int(self, input_dtype, output_dtype): input_image = torch.tensor((0.0, 1.0), dtype=input_dtype) transform = transforms.ConvertImageDtype(output_dtype) transform_script = torch.jit.script(F.convert_image_dtype) if (input_dtype == torch.float32 and output_dtype in (torch.int32, torch.int64)) or ( input_dtype == torch.float64 and output_dtype == torch.int64 ): with pytest.raises(RuntimeError): transform(input_image) else: output_image = transform(input_image) output_image_script = transform_script(input_image, output_dtype) torch.testing.assert_close(output_image_script, output_image, rtol=0.0, atol=1e-6) actual_min, actual_max = output_image.tolist() desired_min, desired_max = 0, torch.iinfo(output_dtype).max assert actual_min == desired_min assert actual_max == desired_max @pytest.mark.parametrize("input_dtype", int_dtypes()) @pytest.mark.parametrize("output_dtype", float_dtypes()) def test_int_to_float(self, input_dtype, output_dtype): input_image = torch.tensor((0, torch.iinfo(input_dtype).max), dtype=input_dtype) transform = transforms.ConvertImageDtype(output_dtype) transform_script = torch.jit.script(F.convert_image_dtype) output_image = transform(input_image) output_image_script = transform_script(input_image, output_dtype) torch.testing.assert_close(output_image_script, output_image, rtol=0.0, atol=1e-6) actual_min, actual_max = output_image.tolist() desired_min, desired_max = 0.0, 1.0 assert abs(actual_min - desired_min) < 1e-7 assert actual_min >= desired_min assert abs(actual_max - desired_max) < 1e-7 assert actual_max <= desired_max @pytest.mark.parametrize("input_dtype, output_dtype", cycle_over(int_dtypes())) def test_dtype_int_to_int(self, input_dtype, output_dtype): input_max = torch.iinfo(input_dtype).max input_image = torch.tensor((0, input_max), dtype=input_dtype) output_max = torch.iinfo(output_dtype).max transform = transforms.ConvertImageDtype(output_dtype) transform_script = torch.jit.script(F.convert_image_dtype) output_image = transform(input_image) output_image_script = transform_script(input_image, output_dtype) torch.testing.assert_close( output_image_script, output_image, rtol=0.0, atol=1e-6, msg=f"{output_image_script} vs {output_image}", ) actual_min, actual_max = output_image.tolist() desired_min, desired_max = 0, output_max # see https://github.com/pytorch/vision/pull/2078#issuecomment-641036236 for details if input_max >= output_max: error_term = 0 else: error_term = 1 - (torch.iinfo(output_dtype).max + 1) // (torch.iinfo(input_dtype).max + 1) assert actual_min == desired_min assert actual_max == (desired_max + error_term) @pytest.mark.parametrize("input_dtype, output_dtype", cycle_over(int_dtypes())) def test_int_to_int_consistency(self, input_dtype, output_dtype): input_max = torch.iinfo(input_dtype).max input_image = torch.tensor((0, input_max), dtype=input_dtype) output_max = torch.iinfo(output_dtype).max if output_max <= input_max: return transform = transforms.ConvertImageDtype(output_dtype) inverse_transfrom = transforms.ConvertImageDtype(input_dtype) output_image = inverse_transfrom(transform(input_image)) actual_min, actual_max = output_image.tolist() desired_min, desired_max = 0, input_max assert actual_min == desired_min assert actual_max == desired_max @pytest.mark.skipif(accimage is None, reason="accimage not available") class TestAccImage: def test_accimage_to_tensor(self): trans = transforms.PILToTensor() expected_output = trans(Image.open(GRACE_HOPPER).convert("RGB")) output = trans(accimage.Image(GRACE_HOPPER)) torch.testing.assert_close(output, expected_output) def test_accimage_pil_to_tensor(self): trans = transforms.PILToTensor() expected_output = trans(Image.open(GRACE_HOPPER).convert("RGB")) output = trans(accimage.Image(GRACE_HOPPER)) assert expected_output.size() == output.size() torch.testing.assert_close(output, expected_output) def test_accimage_resize(self): trans = transforms.Compose( [ transforms.Resize(256, interpolation=Image.LINEAR), transforms.PILToTensor(), transforms.ConvertImageDtype(dtype=torch.float), ] ) # Checking if Compose, Resize and ToTensor can be printed as string trans.__repr__() expected_output = trans(Image.open(GRACE_HOPPER).convert("RGB")) output = trans(accimage.Image(GRACE_HOPPER)) assert expected_output.size() == output.size() assert np.abs((expected_output - output).mean()) < 1e-3 assert (expected_output - output).var() < 1e-5 # note the high absolute tolerance torch.testing.assert_close(output.numpy(), expected_output.numpy(), rtol=1e-5, atol=5e-2) def test_accimage_crop(self): trans = transforms.Compose( [transforms.CenterCrop(256), transforms.PILToTensor(), transforms.ConvertImageDtype(dtype=torch.float)] ) # Checking if Compose, CenterCrop and ToTensor can be printed as string trans.__repr__() expected_output = trans(Image.open(GRACE_HOPPER).convert("RGB")) output = trans(accimage.Image(GRACE_HOPPER)) assert expected_output.size() == output.size() torch.testing.assert_close(output, expected_output) class TestToTensor: @pytest.mark.parametrize("channels", [1, 3, 4]) def test_to_tensor(self, channels): height, width = 4, 4 trans = transforms.ToTensor() np_rng = np.random.RandomState(0) input_data = torch.ByteTensor(channels, height, width).random_(0, 255).float().div_(255) img = transforms.ToPILImage()(input_data) output = trans(img) torch.testing.assert_close(output, input_data) ndarray = np_rng.randint(low=0, high=255, size=(height, width, channels)).astype(np.uint8) output = trans(ndarray) expected_output = ndarray.transpose((2, 0, 1)) / 255.0 torch.testing.assert_close(output.numpy(), expected_output, check_dtype=False) ndarray = np_rng.rand(height, width, channels).astype(np.float32) output = trans(ndarray) expected_output = ndarray.transpose((2, 0, 1)) torch.testing.assert_close(output.numpy(), expected_output, check_dtype=False) # separate test for mode '1' PIL images input_data = torch.ByteTensor(1, height, width).bernoulli_() img = transforms.ToPILImage()(input_data.mul(255)).convert("1") output = trans(img) torch.testing.assert_close(input_data, output, check_dtype=False) def test_to_tensor_errors(self): height, width = 4, 4 trans = transforms.ToTensor() np_rng = np.random.RandomState(0) with pytest.raises(TypeError): trans(np_rng.rand(1, height, width).tolist()) with pytest.raises(ValueError): trans(np_rng.rand(height)) with pytest.raises(ValueError): trans(np_rng.rand(1, 1, height, width)) @pytest.mark.parametrize("dtype", [torch.float16, torch.float, torch.double]) def test_to_tensor_with_other_default_dtypes(self, dtype): np_rng = np.random.RandomState(0) current_def_dtype = torch.get_default_dtype() t = transforms.ToTensor() np_arr = np_rng.randint(0, 255, (32, 32, 3), dtype=np.uint8) img = Image.fromarray(np_arr) torch.set_default_dtype(dtype) res = t(img) assert res.dtype == dtype, f"{res.dtype} vs {dtype}" torch.set_default_dtype(current_def_dtype) @pytest.mark.parametrize("channels", [1, 3, 4]) def test_pil_to_tensor(self, channels): height, width = 4, 4 trans = transforms.PILToTensor() np_rng = np.random.RandomState(0) input_data = torch.ByteTensor(channels, height, width).random_(0, 255) img = transforms.ToPILImage()(input_data) output = trans(img) torch.testing.assert_close(input_data, output) input_data = np_rng.randint(low=0, high=255, size=(height, width, channels)).astype(np.uint8) img = transforms.ToPILImage()(input_data) output = trans(img) expected_output = input_data.transpose((2, 0, 1)) torch.testing.assert_close(output.numpy(), expected_output) input_data = torch.as_tensor(np_rng.rand(channels, height, width).astype(np.float32)) img = transforms.ToPILImage()(input_data) # CHW -> HWC and (* 255).byte() output = trans(img) # HWC -> CHW expected_output = (input_data * 255).byte() torch.testing.assert_close(output, expected_output) # separate test for mode '1' PIL images input_data = torch.ByteTensor(1, height, width).bernoulli_() img = transforms.ToPILImage()(input_data.mul(255)).convert("1") output = trans(img).view(torch.uint8).bool().to(torch.uint8) torch.testing.assert_close(input_data, output) def test_pil_to_tensor_errors(self): height, width = 4, 4 trans = transforms.PILToTensor() np_rng = np.random.RandomState(0) with pytest.raises(TypeError): trans(np_rng.rand(1, height, width).tolist()) with pytest.raises(TypeError): trans(np_rng.rand(1, height, width)) def test_randomresized_params(): height = random.randint(24, 32) * 2 width = random.randint(24, 32) * 2 img = torch.ones(3, height, width) to_pil_image = transforms.ToPILImage() img = to_pil_image(img) size = 100 epsilon = 0.05 min_scale = 0.25 for _ in range(10): scale_min = max(round(random.random(), 2), min_scale) scale_range = (scale_min, scale_min + round(random.random(), 2)) aspect_min = max(round(random.random(), 2), epsilon) aspect_ratio_range = (aspect_min, aspect_min + round(random.random(), 2)) randresizecrop = transforms.RandomResizedCrop(size, scale_range, aspect_ratio_range, antialias=True) i, j, h, w = randresizecrop.get_params(img, scale_range, aspect_ratio_range) aspect_ratio_obtained = w / h assert ( min(aspect_ratio_range) - epsilon <= aspect_ratio_obtained and aspect_ratio_obtained <= max(aspect_ratio_range) + epsilon ) or aspect_ratio_obtained == 1.0 assert isinstance(i, int) assert isinstance(j, int) assert isinstance(h, int) assert isinstance(w, int) @pytest.mark.parametrize( "height, width", [ # height, width # square image (28, 28), (27, 27), # rectangular image: h < w (28, 34), (29, 35), # rectangular image: h > w (34, 28), (35, 29), ], ) @pytest.mark.parametrize( "osize", [ # single integer 22, 27, 28, 36, # single integer in tuple/list [ 22, ], (27,), ], ) @pytest.mark.parametrize("max_size", (None, 37, 1000)) def test_resize(height, width, osize, max_size): img = Image.new("RGB", size=(width, height), color=127) t = transforms.Resize(osize, max_size=max_size, antialias=True) result = t(img) msg = f"{height}, {width} - {osize} - {max_size}" osize = osize[0] if isinstance(osize, (list, tuple)) else osize # If size is an int, smaller edge of the image will be matched to this number. # i.e, if height > width, then image will be rescaled to (size * height / width, size). if height < width: exp_w, exp_h = (int(osize * width / height), osize) # (w, h) if max_size is not None and max_size < exp_w: exp_w, exp_h = max_size, int(max_size * exp_h / exp_w) assert result.size == (exp_w, exp_h), msg elif width < height: exp_w, exp_h = (osize, int(osize * height / width)) # (w, h) if max_size is not None and max_size < exp_h: exp_w, exp_h = int(max_size * exp_w / exp_h), max_size assert result.size == (exp_w, exp_h), msg else: exp_w, exp_h = (osize, osize) # (w, h) if max_size is not None and max_size < osize: exp_w, exp_h = max_size, max_size assert result.size == (exp_w, exp_h), msg @pytest.mark.parametrize( "height, width", [ # height, width # square image (28, 28), (27, 27), # rectangular image: h < w (28, 34), (29, 35), # rectangular image: h > w (34, 28), (35, 29), ], ) @pytest.mark.parametrize( "osize", [ # two integers sequence output [22, 22], [22, 28], [22, 36], [27, 22], [36, 22], [28, 28], [28, 37], [37, 27], [37, 37], ], ) def test_resize_sequence_output(height, width, osize): img = Image.new("RGB", size=(width, height), color=127) oheight, owidth = osize t = transforms.Resize(osize, antialias=True) result = t(img) assert (owidth, oheight) == result.size def test_resize_antialias_error(): osize = [37, 37] img = Image.new("RGB", size=(35, 29), color=127) with pytest.warns(UserWarning, match=r"Anti-alias option is always applied for PIL Image input"): t = transforms.Resize(osize, antialias=False) t(img) @pytest.mark.parametrize("height, width", ((32, 64), (64, 32))) def test_resize_size_equals_small_edge_size(height, width): # Non-regression test for https://github.com/pytorch/vision/issues/5405 # max_size used to be ignored if size == small_edge_size max_size = 40 img = Image.new("RGB", size=(width, height), color=127) small_edge = min(height, width) t = transforms.Resize(small_edge, max_size=max_size, antialias=True) result = t(img) assert max(result.size) == max_size def test_resize_equal_input_output_sizes(): # Regression test for https://github.com/pytorch/vision/issues/7518 height, width = 28, 27 img = Image.new("RGB", size=(width, height)) t = transforms.Resize((height, width), antialias=True) result = t(img) assert result is img class TestPad: @pytest.mark.parametrize("fill", [85, 85.0]) def test_pad(self, fill): height = random.randint(10, 32) * 2 width = random.randint(10, 32) * 2 img = torch.ones(3, height, width, dtype=torch.uint8) padding = random.randint(1, 20) result = transforms.Compose( [ transforms.ToPILImage(), transforms.Pad(padding, fill=fill), transforms.PILToTensor(), ] )(img) assert result.size(1) == height + 2 * padding assert result.size(2) == width + 2 * padding # check that all elements in the padded region correspond # to the pad value h_padded = result[:, :padding, :] w_padded = result[:, :, :padding] torch.testing.assert_close(h_padded, torch.full_like(h_padded, fill_value=fill), rtol=0.0, atol=0.0) torch.testing.assert_close(w_padded, torch.full_like(w_padded, fill_value=fill), rtol=0.0, atol=0.0) pytest.raises(ValueError, transforms.Pad(padding, fill=(1, 2)), transforms.ToPILImage()(img)) def test_pad_with_tuple_of_pad_values(self): height = random.randint(10, 32) * 2 width = random.randint(10, 32) * 2 img = transforms.ToPILImage()(torch.ones(3, height, width)) padding = tuple(random.randint(1, 20) for _ in range(2)) output = transforms.Pad(padding)(img) assert output.size == (width + padding[0] * 2, height + padding[1] * 2) padding = [random.randint(1, 20) for _ in range(4)] output = transforms.Pad(padding)(img) assert output.size[0] == width + padding[0] + padding[2] assert output.size[1] == height + padding[1] + padding[3] # Checking if Padding can be printed as string transforms.Pad(padding).__repr__() def test_pad_with_non_constant_padding_modes(self): """Unit tests for edge, reflect, symmetric padding""" img = torch.zeros(3, 27, 27).byte() img[:, :, 0] = 1 # Constant value added to leftmost edge img = transforms.ToPILImage()(img) img = F.pad(img, 1, (200, 200, 200)) # pad 3 to all sidess edge_padded_img = F.pad(img, 3, padding_mode="edge") # First 6 elements of leftmost edge in the middle of the image, values are in order: # edge_pad, edge_pad, edge_pad, constant_pad, constant value added to leftmost edge, 0 edge_middle_slice = np.asarray(edge_padded_img).transpose(2, 0, 1)[0][17][:6] assert_equal(edge_middle_slice, np.asarray([200, 200, 200, 200, 1, 0], dtype=np.uint8)) assert transforms.PILToTensor()(edge_padded_img).size() == (3, 35, 35) # Pad 3 to left/right, 2 to top/bottom reflect_padded_img = F.pad(img, (3, 2), padding_mode="reflect") # First 6 elements of leftmost edge in the middle of the image, values are in order: # reflect_pad, reflect_pad, reflect_pad, constant_pad, constant value added to leftmost edge, 0 reflect_middle_slice = np.asarray(reflect_padded_img).transpose(2, 0, 1)[0][17][:6] assert_equal(reflect_middle_slice, np.asarray([0, 0, 1, 200, 1, 0], dtype=np.uint8)) assert transforms.PILToTensor()(reflect_padded_img).size() == (3, 33, 35) # Pad 3 to left, 2 to top, 2 to right, 1 to bottom symmetric_padded_img = F.pad(img, (3, 2, 2, 1), padding_mode="symmetric") # First 6 elements of leftmost edge in the middle of the image, values are in order: # sym_pad, sym_pad, sym_pad, constant_pad, constant value added to leftmost edge, 0 symmetric_middle_slice = np.asarray(symmetric_padded_img).transpose(2, 0, 1)[0][17][:6] assert_equal(symmetric_middle_slice, np.asarray([0, 1, 200, 200, 1, 0], dtype=np.uint8)) assert transforms.PILToTensor()(symmetric_padded_img).size() == (3, 32, 34) # Check negative padding explicitly for symmetric case, since it is not # implemented for tensor case to compare to # Crop 1 to left, pad 2 to top, pad 3 to right, crop 3 to bottom symmetric_padded_img_neg = F.pad(img, (-1, 2, 3, -3), padding_mode="symmetric") symmetric_neg_middle_left = np.asarray(symmetric_padded_img_neg).transpose(2, 0, 1)[0][17][:3] symmetric_neg_middle_right = np.asarray(symmetric_padded_img_neg).transpose(2, 0, 1)[0][17][-4:] assert_equal(symmetric_neg_middle_left, np.asarray([1, 0, 0], dtype=np.uint8)) assert_equal(symmetric_neg_middle_right, np.asarray([200, 200, 0, 0], dtype=np.uint8)) assert transforms.PILToTensor()(symmetric_padded_img_neg).size() == (3, 28, 31) def test_pad_raises_with_invalid_pad_sequence_len(self): with pytest.raises(ValueError): transforms.Pad(()) with pytest.raises(ValueError): transforms.Pad((1, 2, 3)) with pytest.raises(ValueError): transforms.Pad((1, 2, 3, 4, 5)) def test_pad_with_mode_F_images(self): pad = 2 transform = transforms.Pad(pad) img = Image.new("F", (10, 10)) padded_img = transform(img) assert_equal(padded_img.size, [edge_size + 2 * pad for edge_size in img.size]) @pytest.mark.parametrize( "fn, trans, kwargs", [ (F.invert, transforms.RandomInvert, {}), (F.posterize, transforms.RandomPosterize, {"bits": 4}), (F.solarize, transforms.RandomSolarize, {"threshold": 192}), (F.adjust_sharpness, transforms.RandomAdjustSharpness, {"sharpness_factor": 2.0}), (F.autocontrast, transforms.RandomAutocontrast, {}), (F.equalize, transforms.RandomEqualize, {}), (F.vflip, transforms.RandomVerticalFlip, {}), (F.hflip, transforms.RandomHorizontalFlip, {}), (partial(F.to_grayscale, num_output_channels=3), transforms.RandomGrayscale, {}), ], ) @pytest.mark.parametrize("seed", range(10)) @pytest.mark.parametrize("p", (0, 1)) def test_randomness(fn, trans, kwargs, seed, p): torch.manual_seed(seed) img = transforms.ToPILImage()(torch.rand(3, 16, 18)) expected_transformed_img = fn(img, **kwargs) randomly_transformed_img = trans(p=p, **kwargs)(img) if p == 0: assert randomly_transformed_img == img elif p == 1: assert randomly_transformed_img == expected_transformed_img trans(**kwargs).__repr__() def test_autocontrast_equal_minmax(): img_tensor = torch.tensor([[[10]], [[128]], [[245]]], dtype=torch.uint8).expand(3, 32, 32) img_pil = F.to_pil_image(img_tensor) img_tensor = F.autocontrast(img_tensor) img_pil = F.autocontrast(img_pil) torch.testing.assert_close(img_tensor, F.pil_to_tensor(img_pil)) class TestToPil: def _get_1_channel_tensor_various_types(): img_data_float = torch.Tensor(1, 4, 4).uniform_() expected_output = img_data_float.mul(255).int().float().div(255).numpy() yield img_data_float, expected_output, "L" img_data_byte = torch.ByteTensor(1, 4, 4).random_(0, 255) expected_output = img_data_byte.float().div(255.0).numpy() yield img_data_byte, expected_output, "L" img_data_short = torch.ShortTensor(1, 4, 4).random_() expected_output = img_data_short.numpy() yield img_data_short, expected_output, "I;16" if sys.byteorder == "little" else "I;16B" img_data_int = torch.IntTensor(1, 4, 4).random_() expected_output = img_data_int.numpy() yield img_data_int, expected_output, "I" def _get_2d_tensor_various_types(): img_data_float = torch.Tensor(4, 4).uniform_() expected_output = img_data_float.mul(255).int().float().div(255).numpy() yield img_data_float, expected_output, "L" img_data_byte = torch.ByteTensor(4, 4).random_(0, 255) expected_output = img_data_byte.float().div(255.0).numpy() yield img_data_byte, expected_output, "L" img_data_short = torch.ShortTensor(4, 4).random_() expected_output = img_data_short.numpy() yield img_data_short, expected_output, "I;16" if sys.byteorder == "little" else "I;16B" img_data_int = torch.IntTensor(4, 4).random_() expected_output = img_data_int.numpy() yield img_data_int, expected_output, "I" @pytest.mark.parametrize("with_mode", [False, True]) @pytest.mark.parametrize("img_data, expected_output, expected_mode", _get_1_channel_tensor_various_types()) def test_1_channel_tensor_to_pil_image(self, with_mode, img_data, expected_output, expected_mode): transform = transforms.ToPILImage(mode=expected_mode) if with_mode else transforms.ToPILImage() to_tensor = transforms.ToTensor() img = transform(img_data) assert img.mode == expected_mode torch.testing.assert_close(expected_output, to_tensor(img).numpy()) def test_1_channel_float_tensor_to_pil_image(self): img_data = torch.Tensor(1, 4, 4).uniform_() # 'F' mode for torch.FloatTensor img_F_mode = transforms.ToPILImage(mode="F")(img_data) assert img_F_mode.mode == "F" torch.testing.assert_close( np.array(Image.fromarray(img_data.squeeze(0).numpy(), mode="F")), np.array(img_F_mode) ) @pytest.mark.parametrize("with_mode", [False, True]) @pytest.mark.parametrize( "img_data, expected_mode", [ (torch.Tensor(4, 4, 1).uniform_().numpy(), "L"), (torch.ByteTensor(4, 4, 1).random_(0, 255).numpy(), "L"), (torch.ShortTensor(4, 4, 1).random_().numpy(), "I;16" if sys.byteorder == "little" else "I;16B"), (torch.IntTensor(4, 4, 1).random_().numpy(), "I"), ], ) def test_1_channel_ndarray_to_pil_image(self, with_mode, img_data, expected_mode): transform = transforms.ToPILImage(mode=expected_mode) if with_mode else transforms.ToPILImage() img = transform(img_data) assert img.mode == expected_mode if np.issubdtype(img_data.dtype, np.floating): img_data = (img_data * 255).astype(np.uint8) # note: we explicitly convert img's dtype because pytorch doesn't support uint16 # and otherwise assert_close wouldn't be able to construct a tensor from the uint16 array torch.testing.assert_close(img_data[:, :, 0], np.asarray(img).astype(img_data.dtype)) @pytest.mark.parametrize("expected_mode", [None, "LA"]) def test_2_channel_ndarray_to_pil_image(self, expected_mode): img_data = torch.ByteTensor(4, 4, 2).random_(0, 255).numpy() if expected_mode is None: img = transforms.ToPILImage()(img_data) assert img.mode == "LA" # default should assume LA else: img = transforms.ToPILImage(mode=expected_mode)(img_data) assert img.mode == expected_mode split = img.split() for i in range(2): torch.testing.assert_close(img_data[:, :, i], np.asarray(split[i])) def test_2_channel_ndarray_to_pil_image_error(self): img_data = torch.ByteTensor(4, 4, 2).random_(0, 255).numpy() transforms.ToPILImage().__repr__() # should raise if we try a mode for 4 or 1 or 3 channel images with pytest.raises(ValueError, match=r"Only modes \['LA'\] are supported for 2D inputs"): transforms.ToPILImage(mode="RGBA")(img_data) with pytest.raises(ValueError, match=r"Only modes \['LA'\] are supported for 2D inputs"): transforms.ToPILImage(mode="P")(img_data) with pytest.raises(ValueError, match=r"Only modes \['LA'\] are supported for 2D inputs"): transforms.ToPILImage(mode="RGB")(img_data) @pytest.mark.parametrize("expected_mode", [None, "LA"]) def test_2_channel_tensor_to_pil_image(self, expected_mode): img_data = torch.Tensor(2, 4, 4).uniform_() expected_output = img_data.mul(255).int().float().div(255) if expected_mode is None: img = transforms.ToPILImage()(img_data) assert img.mode == "LA" # default should assume LA else: img = transforms.ToPILImage(mode=expected_mode)(img_data) assert img.mode == expected_mode split = img.split() for i in range(2): torch.testing.assert_close(expected_output[i].numpy(), F.to_tensor(split[i]).squeeze(0).numpy()) def test_2_channel_tensor_to_pil_image_error(self): img_data = torch.Tensor(2, 4, 4).uniform_() # should raise if we try a mode for 4 or 1 or 3 channel images with pytest.raises(ValueError, match=r"Only modes \['LA'\] are supported for 2D inputs"): transforms.ToPILImage(mode="RGBA")(img_data) with pytest.raises(ValueError, match=r"Only modes \['LA'\] are supported for 2D inputs"): transforms.ToPILImage(mode="P")(img_data) with pytest.raises(ValueError, match=r"Only modes \['LA'\] are supported for 2D inputs"): transforms.ToPILImage(mode="RGB")(img_data) @pytest.mark.parametrize("with_mode", [False, True]) @pytest.mark.parametrize("img_data, expected_output, expected_mode", _get_2d_tensor_various_types()) def test_2d_tensor_to_pil_image(self, with_mode, img_data, expected_output, expected_mode): transform = transforms.ToPILImage(mode=expected_mode) if with_mode else transforms.ToPILImage() to_tensor = transforms.ToTensor() img = transform(img_data) assert img.mode == expected_mode torch.testing.assert_close(expected_output, to_tensor(img).numpy()[0]) @pytest.mark.parametrize("with_mode", [False, True]) @pytest.mark.parametrize( "img_data, expected_mode", [ (torch.Tensor(4, 4).uniform_().numpy(), "L"), (torch.ByteTensor(4, 4).random_(0, 255).numpy(), "L"), (torch.ShortTensor(4, 4).random_().numpy(), "I;16" if sys.byteorder == "little" else "I;16B"), (torch.IntTensor(4, 4).random_().numpy(), "I"), ], ) def test_2d_ndarray_to_pil_image(self, with_mode, img_data, expected_mode): transform = transforms.ToPILImage(mode=expected_mode) if with_mode else transforms.ToPILImage() img = transform(img_data) assert img.mode == expected_mode if np.issubdtype(img_data.dtype, np.floating): img_data = (img_data * 255).astype(np.uint8) np.testing.assert_allclose(img_data, img) @pytest.mark.parametrize("expected_mode", [None, "RGB", "HSV", "YCbCr"]) def test_3_channel_tensor_to_pil_image(self, expected_mode): img_data = torch.Tensor(3, 4, 4).uniform_() expected_output = img_data.mul(255).int().float().div(255) if expected_mode is None: img = transforms.ToPILImage()(img_data) assert img.mode == "RGB" # default should assume RGB else: img = transforms.ToPILImage(mode=expected_mode)(img_data) assert img.mode == expected_mode split = img.split() for i in range(3): torch.testing.assert_close(expected_output[i].numpy(), F.to_tensor(split[i]).squeeze(0).numpy()) def test_3_channel_tensor_to_pil_image_error(self): img_data = torch.Tensor(3, 4, 4).uniform_() error_message_3d = r"Only modes \['RGB', 'YCbCr', 'HSV'\] are supported for 3D inputs" # should raise if we try a mode for 4 or 1 or 2 channel images with pytest.raises(ValueError, match=error_message_3d): transforms.ToPILImage(mode="RGBA")(img_data) with pytest.raises(ValueError, match=error_message_3d): transforms.ToPILImage(mode="P")(img_data) with pytest.raises(ValueError, match=error_message_3d): transforms.ToPILImage(mode="LA")(img_data) with pytest.raises(ValueError, match=r"pic should be 2/3 dimensional. Got \d+ dimensions."): transforms.ToPILImage()(torch.Tensor(1, 3, 4, 4).uniform_()) @pytest.mark.parametrize("expected_mode", [None, "RGB", "HSV", "YCbCr"]) def test_3_channel_ndarray_to_pil_image(self, expected_mode): img_data = torch.ByteTensor(4, 4, 3).random_(0, 255).numpy() if expected_mode is None: img = transforms.ToPILImage()(img_data) assert img.mode == "RGB" # default should assume RGB else: img = transforms.ToPILImage(mode=expected_mode)(img_data) assert img.mode == expected_mode split = img.split() for i in range(3): torch.testing.assert_close(img_data[:, :, i], np.asarray(split[i])) def test_3_channel_ndarray_to_pil_image_error(self): img_data = torch.ByteTensor(4, 4, 3).random_(0, 255).numpy() # Checking if ToPILImage can be printed as string transforms.ToPILImage().__repr__() error_message_3d = r"Only modes \['RGB', 'YCbCr', 'HSV'\] are supported for 3D inputs" # should raise if we try a mode for 4 or 1 or 2 channel images with pytest.raises(ValueError, match=error_message_3d): transforms.ToPILImage(mode="RGBA")(img_data) with pytest.raises(ValueError, match=error_message_3d): transforms.ToPILImage(mode="P")(img_data) with pytest.raises(ValueError, match=error_message_3d): transforms.ToPILImage(mode="LA")(img_data) @pytest.mark.parametrize("expected_mode", [None, "RGBA", "CMYK", "RGBX"]) def test_4_channel_tensor_to_pil_image(self, expected_mode): img_data = torch.Tensor(4, 4, 4).uniform_() expected_output = img_data.mul(255).int().float().div(255) if expected_mode is None: img = transforms.ToPILImage()(img_data) assert img.mode == "RGBA" # default should assume RGBA else: img = transforms.ToPILImage(mode=expected_mode)(img_data) assert img.mode == expected_mode split = img.split() for i in range(4): torch.testing.assert_close(expected_output[i].numpy(), F.to_tensor(split[i]).squeeze(0).numpy()) def test_4_channel_tensor_to_pil_image_error(self): img_data = torch.Tensor(4, 4, 4).uniform_() error_message_4d = r"Only modes \['RGBA', 'CMYK', 'RGBX'\] are supported for 4D inputs" # should raise if we try a mode for 3 or 1 or 2 channel images with pytest.raises(ValueError, match=error_message_4d): transforms.ToPILImage(mode="RGB")(img_data) with pytest.raises(ValueError, match=error_message_4d): transforms.ToPILImage(mode="P")(img_data) with pytest.raises(ValueError, match=error_message_4d): transforms.ToPILImage(mode="LA")(img_data) @pytest.mark.parametrize("expected_mode", [None, "RGBA", "CMYK", "RGBX"]) def test_4_channel_ndarray_to_pil_image(self, expected_mode): img_data = torch.ByteTensor(4, 4, 4).random_(0, 255).numpy() if expected_mode is None: img = transforms.ToPILImage()(img_data) assert img.mode == "RGBA" # default should assume RGBA else: img = transforms.ToPILImage(mode=expected_mode)(img_data) assert img.mode == expected_mode split = img.split() for i in range(4): torch.testing.assert_close(img_data[:, :, i], np.asarray(split[i])) def test_4_channel_ndarray_to_pil_image_error(self): img_data = torch.ByteTensor(4, 4, 4).random_(0, 255).numpy() error_message_4d = r"Only modes \['RGBA', 'CMYK', 'RGBX'\] are supported for 4D inputs" # should raise if we try a mode for 3 or 1 or 2 channel images with pytest.raises(ValueError, match=error_message_4d): transforms.ToPILImage(mode="RGB")(img_data) with pytest.raises(ValueError, match=error_message_4d): transforms.ToPILImage(mode="P")(img_data) with pytest.raises(ValueError, match=error_message_4d): transforms.ToPILImage(mode="LA")(img_data) def test_ndarray_bad_types_to_pil_image(self): trans = transforms.ToPILImage() reg_msg = r"Input type \w+ is not supported" with pytest.raises(TypeError, match=reg_msg): trans(np.ones([4, 4, 1], np.int64)) with pytest.raises(TypeError, match=reg_msg): trans(np.ones([4, 4, 1], np.uint16)) with pytest.raises(TypeError, match=reg_msg): trans(np.ones([4, 4, 1], np.uint32)) with pytest.raises(ValueError, match=r"pic should be 2/3 dimensional. Got \d+ dimensions."): transforms.ToPILImage()(np.ones([1, 4, 4, 3])) with pytest.raises(ValueError, match=r"pic should not have > 4 channels. Got \d+ channels."): transforms.ToPILImage()(np.ones([4, 4, 6])) def test_tensor_bad_types_to_pil_image(self): with pytest.raises(ValueError, match=r"pic should be 2/3 dimensional. Got \d+ dimensions."): transforms.ToPILImage()(torch.ones(1, 3, 4, 4)) with pytest.raises(ValueError, match=r"pic should not have > 4 channels. Got \d+ channels."): transforms.ToPILImage()(torch.ones(6, 4, 4)) def test_adjust_brightness(): x_shape = [2, 2, 3] x_data = [0, 5, 13, 54, 135, 226, 37, 8, 234, 90, 255, 1] x_np = np.array(x_data, dtype=np.uint8).reshape(x_shape) x_pil = Image.fromarray(x_np, mode="RGB") # test 0 y_pil = F.adjust_brightness(x_pil, 1) y_np = np.array(y_pil) torch.testing.assert_close(y_np, x_np) # test 1 y_pil = F.adjust_brightness(x_pil, 0.5) y_np = np.array(y_pil) y_ans = [0, 2, 6, 27, 67, 113, 18, 4, 117, 45, 127, 0] y_ans = np.array(y_ans, dtype=np.uint8).reshape(x_shape) torch.testing.assert_close(y_np, y_ans) # test 2 y_pil = F.adjust_brightness(x_pil, 2) y_np = np.array(y_pil) y_ans = [0, 10, 26, 108, 255, 255, 74, 16, 255, 180, 255, 2] y_ans = np.array(y_ans, dtype=np.uint8).reshape(x_shape) torch.testing.assert_close(y_np, y_ans) def test_adjust_contrast(): x_shape = [2, 2, 3] x_data = [0, 5, 13, 54, 135, 226, 37, 8, 234, 90, 255, 1] x_np = np.array(x_data, dtype=np.uint8).reshape(x_shape) x_pil = Image.fromarray(x_np, mode="RGB") # test 0 y_pil = F.adjust_contrast(x_pil, 1) y_np = np.array(y_pil) torch.testing.assert_close(y_np, x_np) # test 1 y_pil = F.adjust_contrast(x_pil, 0.5) y_np = np.array(y_pil) y_ans = [43, 45, 49, 70, 110, 156, 61, 47, 160, 88, 170, 43] y_ans = np.array(y_ans, dtype=np.uint8).reshape(x_shape) torch.testing.assert_close(y_np, y_ans) # test 2 y_pil = F.adjust_contrast(x_pil, 2) y_np = np.array(y_pil) y_ans = [0, 0, 0, 22, 184, 255, 0, 0, 255, 94, 255, 0] y_ans = np.array(y_ans, dtype=np.uint8).reshape(x_shape) torch.testing.assert_close(y_np, y_ans) def test_adjust_hue(): x_shape = [2, 2, 3] x_data = [0, 5, 13, 54, 135, 226, 37, 8, 234, 90, 255, 1] x_np = np.array(x_data, dtype=np.uint8).reshape(x_shape) x_pil = Image.fromarray(x_np, mode="RGB") with pytest.raises(ValueError): F.adjust_hue(x_pil, -0.7) F.adjust_hue(x_pil, 1) # test 0: almost same as x_data but not exact. # probably because hsv <-> rgb floating point ops y_pil = F.adjust_hue(x_pil, 0) y_np = np.array(y_pil) y_ans = [0, 5, 13, 54, 139, 226, 35, 8, 234, 91, 255, 1] y_ans = np.array(y_ans, dtype=np.uint8).reshape(x_shape) torch.testing.assert_close(y_np, y_ans) # test 1 y_pil = F.adjust_hue(x_pil, 0.25) y_np = np.array(y_pil) y_ans = [13, 0, 12, 224, 54, 226, 234, 8, 99, 1, 222, 255] y_ans = np.array(y_ans, dtype=np.uint8).reshape(x_shape) torch.testing.assert_close(y_np, y_ans) # test 2 y_pil = F.adjust_hue(x_pil, -0.25) y_np = np.array(y_pil) y_ans = [0, 13, 2, 54, 226, 58, 8, 234, 152, 255, 43, 1] y_ans = np.array(y_ans, dtype=np.uint8).reshape(x_shape) torch.testing.assert_close(y_np, y_ans) def test_adjust_sharpness(): x_shape = [4, 4, 3] x_data = [ 75, 121, 114, 105, 97, 107, 105, 32, 66, 111, 117, 114, 99, 104, 97, 0, 0, 65, 108, 101, 120, 97, 110, 100, 101, 114, 32, 86, 114, 121, 110, 105, 111, 116, 105, 115, 0, 0, 73, 32, 108, 111, 118, 101, 32, 121, 111, 117, ] x_np = np.array(x_data, dtype=np.uint8).reshape(x_shape) x_pil = Image.fromarray(x_np, mode="RGB") # test 0 y_pil = F.adjust_sharpness(x_pil, 1) y_np = np.array(y_pil) torch.testing.assert_close(y_np, x_np) # test 1 y_pil = F.adjust_sharpness(x_pil, 0.5) y_np = np.array(y_pil) y_ans = [ 75, 121, 114, 105, 97, 107, 105, 32, 66, 111, 117, 114, 99, 104, 97, 30, 30, 74, 103, 96, 114, 97, 110, 100, 101, 114, 32, 81, 103, 108, 102, 101, 107, 116, 105, 115, 0, 0, 73, 32, 108, 111, 118, 101, 32, 121, 111, 117, ] y_ans = np.array(y_ans, dtype=np.uint8).reshape(x_shape) torch.testing.assert_close(y_np, y_ans) # test 2 y_pil = F.adjust_sharpness(x_pil, 2) y_np = np.array(y_pil) y_ans = [ 75, 121, 114, 105, 97, 107, 105, 32, 66, 111, 117, 114, 99, 104, 97, 0, 0, 46, 118, 111, 132, 97, 110, 100, 101, 114, 32, 95, 135, 146, 126, 112, 119, 116, 105, 115, 0, 0, 73, 32, 108, 111, 118, 101, 32, 121, 111, 117, ] y_ans = np.array(y_ans, dtype=np.uint8).reshape(x_shape) torch.testing.assert_close(y_np, y_ans) # test 3 x_shape = [2, 2, 3] x_data = [0, 5, 13, 54, 135, 226, 37, 8, 234, 90, 255, 1] x_np = np.array(x_data, dtype=np.uint8).reshape(x_shape) x_pil = Image.fromarray(x_np, mode="RGB") x_th = torch.tensor(x_np.transpose(2, 0, 1)) y_pil = F.adjust_sharpness(x_pil, 2) y_np = np.array(y_pil).transpose(2, 0, 1) y_th = F.adjust_sharpness(x_th, 2) torch.testing.assert_close(y_np, y_th.numpy()) def test_adjust_gamma(): x_shape = [2, 2, 3] x_data = [0, 5, 13, 54, 135, 226, 37, 8, 234, 90, 255, 1] x_np = np.array(x_data, dtype=np.uint8).reshape(x_shape) x_pil = Image.fromarray(x_np, mode="RGB") # test 0 y_pil = F.adjust_gamma(x_pil, 1) y_np = np.array(y_pil) torch.testing.assert_close(y_np, x_np) # test 1 y_pil = F.adjust_gamma(x_pil, 0.5) y_np = np.array(y_pil) y_ans = [0, 35, 57, 117, 186, 241, 97, 45, 245, 152, 255, 16] y_ans = np.array(y_ans, dtype=np.uint8).reshape(x_shape) torch.testing.assert_close(y_np, y_ans) # test 2 y_pil = F.adjust_gamma(x_pil, 2) y_np = np.array(y_pil) y_ans = [0, 0, 0, 11, 71, 201, 5, 0, 215, 31, 255, 0] y_ans = np.array(y_ans, dtype=np.uint8).reshape(x_shape) torch.testing.assert_close(y_np, y_ans) def test_adjusts_L_mode(): x_shape = [2, 2, 3] x_data = [0, 5, 13, 54, 135, 226, 37, 8, 234, 90, 255, 1] x_np = np.array(x_data, dtype=np.uint8).reshape(x_shape) x_rgb = Image.fromarray(x_np, mode="RGB") x_l = x_rgb.convert("L") assert F.adjust_brightness(x_l, 2).mode == "L" assert F.adjust_saturation(x_l, 2).mode == "L" assert F.adjust_contrast(x_l, 2).mode == "L" assert F.adjust_hue(x_l, 0.4).mode == "L" assert F.adjust_sharpness(x_l, 2).mode == "L" assert F.adjust_gamma(x_l, 0.5).mode == "L" def test_rotate(): x = np.zeros((100, 100, 3), dtype=np.uint8) x[40, 40] = [255, 255, 255] with pytest.raises(TypeError, match=r"img should be PIL Image"): F.rotate(x, 10) img = F.to_pil_image(x) result = F.rotate(img, 45) assert result.size == (100, 100) r, c, ch = np.where(result) assert all(x in r for x in [49, 50]) assert all(x in c for x in [36]) assert all(x in ch for x in [0, 1, 2]) result = F.rotate(img, 45, expand=True) assert result.size == (142, 142) r, c, ch = np.where(result) assert all(x in r for x in [70, 71]) assert all(x in c for x in [57]) assert all(x in ch for x in [0, 1, 2]) result = F.rotate(img, 45, center=(40, 40)) assert result.size == (100, 100) r, c, ch = np.where(result) assert all(x in r for x in [40]) assert all(x in c for x in [40]) assert all(x in ch for x in [0, 1, 2]) result_a = F.rotate(img, 90) result_b = F.rotate(img, -270) assert_equal(np.array(result_a), np.array(result_b)) @pytest.mark.parametrize("mode", ["L", "RGB", "F"]) def test_rotate_fill(mode): img = F.to_pil_image(np.ones((100, 100, 3), dtype=np.uint8) * 255, "RGB") num_bands = len(mode) wrong_num_bands = num_bands + 1 fill = 127 img_conv = img.convert(mode) img_rot = F.rotate(img_conv, 45.0, fill=fill) pixel = img_rot.getpixel((0, 0)) if not isinstance(pixel, tuple): pixel = (pixel,) assert pixel == tuple([fill] * num_bands) with pytest.raises(ValueError): F.rotate(img_conv, 45.0, fill=tuple([fill] * wrong_num_bands)) def test_gaussian_blur_asserts(): np_img = np.ones((100, 100, 3), dtype=np.uint8) * 255 img = F.to_pil_image(np_img, "RGB") with pytest.raises(ValueError, match=r"If kernel_size is a sequence its length should be 2"): F.gaussian_blur(img, [3]) with pytest.raises(ValueError, match=r"If kernel_size is a sequence its length should be 2"): F.gaussian_blur(img, [3, 3, 3]) with pytest.raises(ValueError, match=r"Kernel size should be a tuple/list of two integers"): transforms.GaussianBlur([3, 3, 3]) with pytest.raises(ValueError, match=r"kernel_size should have odd and positive integers"): F.gaussian_blur(img, [4, 4]) with pytest.raises(ValueError, match=r"Kernel size value should be an odd and positive number"): transforms.GaussianBlur([4, 4]) with pytest.raises(ValueError, match=r"kernel_size should have odd and positive integers"): F.gaussian_blur(img, [-3, -3]) with pytest.raises(ValueError, match=r"Kernel size value should be an odd and positive number"): transforms.GaussianBlur([-3, -3]) with pytest.raises(ValueError, match=r"If sigma is a sequence, its length should be 2"): F.gaussian_blur(img, 3, [1, 1, 1]) with pytest.raises(ValueError, match=r"sigma should be a single number or a list/tuple with length 2"): transforms.GaussianBlur(3, [1, 1, 1]) with pytest.raises(ValueError, match=r"sigma should have positive values"): F.gaussian_blur(img, 3, -1.0) with pytest.raises(ValueError, match=r"If sigma is a single number, it must be positive"): transforms.GaussianBlur(3, -1.0) with pytest.raises(TypeError, match=r"kernel_size should be int or a sequence of integers"): F.gaussian_blur(img, "kernel_size_string") with pytest.raises(ValueError, match=r"Kernel size should be a tuple/list of two integers"): transforms.GaussianBlur("kernel_size_string") with pytest.raises(TypeError, match=r"sigma should be either float or sequence of floats"): F.gaussian_blur(img, 3, "sigma_string") with pytest.raises(ValueError, match=r"sigma should be a single number or a list/tuple with length 2"): transforms.GaussianBlur(3, "sigma_string") def test_lambda(): trans = transforms.Lambda(lambda x: x.add(10)) x = torch.randn(10) y = trans(x) assert_equal(y, torch.add(x, 10)) trans = transforms.Lambda(lambda x: x.add_(10)) x = torch.randn(10) y = trans(x) assert_equal(y, x) # Checking if Lambda can be printed as string trans.__repr__() def test_to_grayscale(): """Unit tests for grayscale transform""" x_shape = [2, 2, 3] x_data = [0, 5, 13, 54, 135, 226, 37, 8, 234, 90, 255, 1] x_np = np.array(x_data, dtype=np.uint8).reshape(x_shape) x_pil = Image.fromarray(x_np, mode="RGB") x_pil_2 = x_pil.convert("L") gray_np = np.array(x_pil_2) # Test Set: Grayscale an image with desired number of output channels # Case 1: RGB -> 1 channel grayscale trans1 = transforms.Grayscale(num_output_channels=1) gray_pil_1 = trans1(x_pil) gray_np_1 = np.array(gray_pil_1) assert gray_pil_1.mode == "L", "mode should be L" assert gray_np_1.shape == tuple(x_shape[0:2]), "should be 1 channel" assert_equal(gray_np, gray_np_1) # Case 2: RGB -> 3 channel grayscale trans2 = transforms.Grayscale(num_output_channels=3) gray_pil_2 = trans2(x_pil) gray_np_2 = np.array(gray_pil_2) assert gray_pil_2.mode == "RGB", "mode should be RGB" assert gray_np_2.shape == tuple(x_shape), "should be 3 channel" assert_equal(gray_np_2[:, :, 0], gray_np_2[:, :, 1]) assert_equal(gray_np_2[:, :, 1], gray_np_2[:, :, 2]) assert_equal(gray_np, gray_np_2[:, :, 0]) # Case 3: 1 channel grayscale -> 1 channel grayscale trans3 = transforms.Grayscale(num_output_channels=1) gray_pil_3 = trans3(x_pil_2) gray_np_3 = np.array(gray_pil_3) assert gray_pil_3.mode == "L", "mode should be L" assert gray_np_3.shape == tuple(x_shape[0:2]), "should be 1 channel" assert_equal(gray_np, gray_np_3) # Case 4: 1 channel grayscale -> 3 channel grayscale trans4 = transforms.Grayscale(num_output_channels=3) gray_pil_4 = trans4(x_pil_2) gray_np_4 = np.array(gray_pil_4) assert gray_pil_4.mode == "RGB", "mode should be RGB" assert gray_np_4.shape == tuple(x_shape), "should be 3 channel" assert_equal(gray_np_4[:, :, 0], gray_np_4[:, :, 1]) assert_equal(gray_np_4[:, :, 1], gray_np_4[:, :, 2]) assert_equal(gray_np, gray_np_4[:, :, 0]) # Checking if Grayscale can be printed as string trans4.__repr__() @pytest.mark.parametrize("seed", range(10)) @pytest.mark.parametrize("p", (0, 1)) def test_random_apply(p, seed): torch.manual_seed(seed) random_apply_transform = transforms.RandomApply([transforms.RandomRotation((45, 50))], p=p) img = transforms.ToPILImage()(torch.rand(3, 30, 40)) out = random_apply_transform(img) if p == 0: assert out == img elif p == 1: assert out != img # Checking if RandomApply can be printed as string random_apply_transform.__repr__() @pytest.mark.parametrize("seed", range(10)) @pytest.mark.parametrize("proba_passthrough", (0, 1)) def test_random_choice(proba_passthrough, seed): random.seed(seed) # RandomChoice relies on python builtin random.choice, not pytorch random_choice_transform = transforms.RandomChoice( [ lambda x: x, # passthrough transforms.RandomRotation((45, 50)), ], p=[proba_passthrough, 1 - proba_passthrough], ) img = transforms.ToPILImage()(torch.rand(3, 30, 40)) out = random_choice_transform(img) if proba_passthrough == 1: assert out == img elif proba_passthrough == 0: assert out != img # Checking if RandomChoice can be printed as string random_choice_transform.__repr__() @pytest.mark.skipif(stats is None, reason="scipy.stats not available") def test_random_order(): random_state = random.getstate() random.seed(42) random_order_transform = transforms.RandomOrder([transforms.Resize(20, antialias=True), transforms.CenterCrop(10)]) img = transforms.ToPILImage()(torch.rand(3, 25, 25)) num_samples = 250 num_normal_order = 0 resize_crop_out = transforms.CenterCrop(10)(transforms.Resize(20, antialias=True)(img)) for _ in range(num_samples): out = random_order_transform(img) if out == resize_crop_out: num_normal_order += 1 p_value = stats.binomtest(num_normal_order, num_samples, p=0.5).pvalue random.setstate(random_state) assert p_value > 0.0001 # Checking if RandomOrder can be printed as string random_order_transform.__repr__() def test_linear_transformation(): num_samples = 1000 x = torch.randn(num_samples, 3, 10, 10) flat_x = x.view(x.size(0), x.size(1) * x.size(2) * x.size(3)) # compute principal components sigma = torch.mm(flat_x.t(), flat_x) / flat_x.size(0) u, s, _ = np.linalg.svd(sigma.numpy()) zca_epsilon = 1e-10 # avoid division by 0 d = torch.Tensor(np.diag(1.0 / np.sqrt(s + zca_epsilon))) u = torch.Tensor(u) principal_components = torch.mm(torch.mm(u, d), u.t()) mean_vector = torch.sum(flat_x, dim=0) / flat_x.size(0) # initialize whitening matrix whitening = transforms.LinearTransformation(principal_components, mean_vector) # estimate covariance and mean using weak law of large number num_features = flat_x.size(1) cov = 0.0 mean = 0.0 for i in x: xwhite = whitening(i) xwhite = xwhite.view(1, -1).numpy() cov += np.dot(xwhite, xwhite.T) / num_features mean += np.sum(xwhite) / num_features # if rtol for std = 1e-3 then rtol for cov = 2e-3 as std**2 = cov torch.testing.assert_close( cov / num_samples, np.identity(1), rtol=2e-3, atol=1e-8, check_dtype=False, msg="cov not close to 1" ) torch.testing.assert_close( mean / num_samples, 0, rtol=1e-3, atol=1e-8, check_dtype=False, msg="mean not close to 0" ) # Checking if LinearTransformation can be printed as string whitening.__repr__() @pytest.mark.parametrize("dtype", int_dtypes()) def test_max_value(dtype): assert F_t._max_value(dtype) == torch.iinfo(dtype).max # remove float testing as it can lead to errors such as # runtime error: 5.7896e+76 is outside the range of representable values of type 'float' # for dtype in float_dtypes(): # self.assertGreater(F_t._max_value(dtype), torch.finfo(dtype).max) @pytest.mark.xfail( reason="torch.iinfo() is not supported by torchscript. See https://github.com/pytorch/pytorch/issues/41492." ) def test_max_value_iinfo(): @torch.jit.script def max_value(image: torch.Tensor) -> int: return 1 if image.is_floating_point() else torch.iinfo(image.dtype).max @pytest.mark.parametrize("should_vflip", [True, False]) @pytest.mark.parametrize("single_dim", [True, False]) def test_ten_crop(should_vflip, single_dim): to_pil_image = transforms.ToPILImage() h = random.randint(5, 25) w = random.randint(5, 25) crop_h = random.randint(1, h) crop_w = random.randint(1, w) if single_dim: crop_h = min(crop_h, crop_w) crop_w = crop_h transform = transforms.TenCrop(crop_h, vertical_flip=should_vflip) five_crop = transforms.FiveCrop(crop_h) else: transform = transforms.TenCrop((crop_h, crop_w), vertical_flip=should_vflip) five_crop = transforms.FiveCrop((crop_h, crop_w)) img = to_pil_image(torch.FloatTensor(3, h, w).uniform_()) results = transform(img) expected_output = five_crop(img) # Checking if FiveCrop and TenCrop can be printed as string transform.__repr__() five_crop.__repr__() if should_vflip: vflipped_img = img.transpose(Image.FLIP_TOP_BOTTOM) expected_output += five_crop(vflipped_img) else: hflipped_img = img.transpose(Image.FLIP_LEFT_RIGHT) expected_output += five_crop(hflipped_img) assert len(results) == 10 assert results == expected_output @pytest.mark.parametrize("single_dim", [True, False]) def test_five_crop(single_dim): to_pil_image = transforms.ToPILImage() h = random.randint(5, 25) w = random.randint(5, 25) crop_h = random.randint(1, h) crop_w = random.randint(1, w) if single_dim: crop_h = min(crop_h, crop_w) crop_w = crop_h transform = transforms.FiveCrop(crop_h) else: transform = transforms.FiveCrop((crop_h, crop_w)) img = torch.FloatTensor(3, h, w).uniform_() results = transform(to_pil_image(img)) assert len(results) == 5 for crop in results: assert crop.size == (crop_w, crop_h) to_pil_image = transforms.ToPILImage() tl = to_pil_image(img[:, 0:crop_h, 0:crop_w]) tr = to_pil_image(img[:, 0:crop_h, w - crop_w :]) bl = to_pil_image(img[:, h - crop_h :, 0:crop_w]) br = to_pil_image(img[:, h - crop_h :, w - crop_w :]) center = transforms.CenterCrop((crop_h, crop_w))(to_pil_image(img)) expected_output = (tl, tr, bl, br, center) assert results == expected_output @pytest.mark.parametrize("policy", transforms.AutoAugmentPolicy) @pytest.mark.parametrize("fill", [None, 85, (128, 128, 128)]) @pytest.mark.parametrize("grayscale", [True, False]) def test_autoaugment(policy, fill, grayscale): random.seed(42) img = Image.open(GRACE_HOPPER) if grayscale: img, fill = _get_grayscale_test_image(img, fill) transform = transforms.AutoAugment(policy=policy, fill=fill) for _ in range(100): img = transform(img) transform.__repr__() @pytest.mark.parametrize("num_ops", [1, 2, 3]) @pytest.mark.parametrize("magnitude", [7, 9, 11]) @pytest.mark.parametrize("fill", [None, 85, (128, 128, 128)]) @pytest.mark.parametrize("grayscale", [True, False]) def test_randaugment(num_ops, magnitude, fill, grayscale): random.seed(42) img = Image.open(GRACE_HOPPER) if grayscale: img, fill = _get_grayscale_test_image(img, fill) transform = transforms.RandAugment(num_ops=num_ops, magnitude=magnitude, fill=fill) for _ in range(100): img = transform(img) transform.__repr__() @pytest.mark.parametrize("fill", [None, 85, (128, 128, 128)]) @pytest.mark.parametrize("num_magnitude_bins", [10, 13, 30]) @pytest.mark.parametrize("grayscale", [True, False]) def test_trivialaugmentwide(fill, num_magnitude_bins, grayscale): random.seed(42) img = Image.open(GRACE_HOPPER) if grayscale: img, fill = _get_grayscale_test_image(img, fill) transform = transforms.TrivialAugmentWide(fill=fill, num_magnitude_bins=num_magnitude_bins) for _ in range(100): img = transform(img) transform.__repr__() @pytest.mark.parametrize("fill", [None, 85, (128, 128, 128)]) @pytest.mark.parametrize("severity", [1, 10]) @pytest.mark.parametrize("mixture_width", [1, 2]) @pytest.mark.parametrize("chain_depth", [-1, 2]) @pytest.mark.parametrize("all_ops", [True, False]) @pytest.mark.parametrize("grayscale", [True, False]) def test_augmix(fill, severity, mixture_width, chain_depth, all_ops, grayscale): random.seed(42) img = Image.open(GRACE_HOPPER) if grayscale: img, fill = _get_grayscale_test_image(img, fill) transform = transforms.AugMix( fill=fill, severity=severity, mixture_width=mixture_width, chain_depth=chain_depth, all_ops=all_ops ) for _ in range(100): img = transform(img) transform.__repr__() def test_random_crop(): height = random.randint(10, 32) * 2 width = random.randint(10, 32) * 2 oheight = random.randint(5, (height - 2) // 2) * 2 owidth = random.randint(5, (width - 2) // 2) * 2 img = torch.ones(3, height, width, dtype=torch.uint8) result = transforms.Compose( [ transforms.ToPILImage(), transforms.RandomCrop((oheight, owidth)), transforms.PILToTensor(), ] )(img) assert result.size(1) == oheight assert result.size(2) == owidth padding = random.randint(1, 20) result = transforms.Compose( [ transforms.ToPILImage(), transforms.RandomCrop((oheight, owidth), padding=padding), transforms.PILToTensor(), ] )(img) assert result.size(1) == oheight assert result.size(2) == owidth result = transforms.Compose( [transforms.ToPILImage(), transforms.RandomCrop((height, width)), transforms.PILToTensor()] )(img) assert result.size(1) == height assert result.size(2) == width torch.testing.assert_close(result, img) result = transforms.Compose( [ transforms.ToPILImage(), transforms.RandomCrop((height + 1, width + 1), pad_if_needed=True), transforms.PILToTensor(), ] )(img) assert result.size(1) == height + 1 assert result.size(2) == width + 1 t = transforms.RandomCrop(33) img = torch.ones(3, 32, 32) with pytest.raises(ValueError, match=r"Required crop size .+ is larger than input image size .+"): t(img) def test_center_crop(): height = random.randint(10, 32) * 2 width = random.randint(10, 32) * 2 oheight = random.randint(5, (height - 2) // 2) * 2 owidth = random.randint(5, (width - 2) // 2) * 2 img = torch.ones(3, height, width, dtype=torch.uint8) oh1 = (height - oheight) // 2 ow1 = (width - owidth) // 2 imgnarrow = img[:, oh1 : oh1 + oheight, ow1 : ow1 + owidth] imgnarrow.fill_(0) result = transforms.Compose( [ transforms.ToPILImage(), transforms.CenterCrop((oheight, owidth)), transforms.PILToTensor(), ] )(img) assert result.sum() == 0 oheight += 1 owidth += 1 result = transforms.Compose( [ transforms.ToPILImage(), transforms.CenterCrop((oheight, owidth)), transforms.PILToTensor(), ] )(img) sum1 = result.sum() assert sum1 > 1 oheight += 1 owidth += 1 result = transforms.Compose( [ transforms.ToPILImage(), transforms.CenterCrop((oheight, owidth)), transforms.PILToTensor(), ] )(img) sum2 = result.sum() assert sum2 > 0 assert sum2 > sum1 @pytest.mark.parametrize("odd_image_size", (True, False)) @pytest.mark.parametrize("delta", (1, 3, 5)) @pytest.mark.parametrize("delta_width", (-2, -1, 0, 1, 2)) @pytest.mark.parametrize("delta_height", (-2, -1, 0, 1, 2)) def test_center_crop_2(odd_image_size, delta, delta_width, delta_height): """Tests when center crop size is larger than image size, along any dimension""" # Since height is independent of width, we can ignore images with odd height and even width and vice-versa. input_image_size = (random.randint(10, 32) * 2, random.randint(10, 32) * 2) if odd_image_size: input_image_size = (input_image_size[0] + 1, input_image_size[1] + 1) delta_height *= delta delta_width *= delta img = torch.ones(3, *input_image_size, dtype=torch.uint8) crop_size = (input_image_size[0] + delta_height, input_image_size[1] + delta_width) # Test both transforms, one with PIL input and one with tensor output_pil = transforms.Compose( [transforms.ToPILImage(), transforms.CenterCrop(crop_size), transforms.PILToTensor()], )(img) assert output_pil.size()[1:3] == crop_size output_tensor = transforms.CenterCrop(crop_size)(img) assert output_tensor.size()[1:3] == crop_size # Ensure output for PIL and Tensor are equal assert_equal( output_tensor, output_pil, msg=f"image_size: {input_image_size} crop_size: {crop_size}", ) # Check if content in center of both image and cropped output is same. center_size = (min(crop_size[0], input_image_size[0]), min(crop_size[1], input_image_size[1])) crop_center_tl, input_center_tl = [0, 0], [0, 0] for index in range(2): if crop_size[index] > input_image_size[index]: crop_center_tl[index] = (crop_size[index] - input_image_size[index]) // 2 else: input_center_tl[index] = (input_image_size[index] - crop_size[index]) // 2 output_center = output_pil[ :, crop_center_tl[0] : crop_center_tl[0] + center_size[0], crop_center_tl[1] : crop_center_tl[1] + center_size[1], ] img_center = img[ :, input_center_tl[0] : input_center_tl[0] + center_size[0], input_center_tl[1] : input_center_tl[1] + center_size[1], ] assert_equal(output_center, img_center) def test_color_jitter(): color_jitter = transforms.ColorJitter(2, 2, 2, 0.1) x_shape = [2, 2, 3] x_data = [0, 5, 13, 54, 135, 226, 37, 8, 234, 90, 255, 1] x_np = np.array(x_data, dtype=np.uint8).reshape(x_shape) x_pil = Image.fromarray(x_np, mode="RGB") x_pil_2 = x_pil.convert("L") for _ in range(10): y_pil = color_jitter(x_pil) assert y_pil.mode == x_pil.mode y_pil_2 = color_jitter(x_pil_2) assert y_pil_2.mode == x_pil_2.mode # Checking if ColorJitter can be printed as string color_jitter.__repr__() @pytest.mark.parametrize("hue", [1, (-1, 1)]) def test_color_jitter_hue_out_of_bounds(hue): with pytest.raises(ValueError, match=re.escape("hue values should be between (-0.5, 0.5)")): transforms.ColorJitter(hue=hue) @pytest.mark.parametrize("seed", range(10)) @pytest.mark.skipif(stats is None, reason="scipy.stats not available") def test_random_erasing(seed): torch.random.manual_seed(seed) img = torch.ones(3, 128, 128) t = transforms.RandomErasing(scale=(0.1, 0.1), ratio=(1 / 3, 3.0)) y, x, h, w, v = t.get_params( img, t.scale, t.ratio, [ t.value, ], ) aspect_ratio = h / w # Add some tolerance due to the rounding and int conversion used in the transform tol = 0.05 assert 1 / 3 - tol <= aspect_ratio <= 3 + tol # Make sure that h > w and h < w are equally likely (log-scale sampling) aspect_ratios = [] random.seed(42) trial = 1000 for _ in range(trial): y, x, h, w, v = t.get_params( img, t.scale, t.ratio, [ t.value, ], ) aspect_ratios.append(h / w) count_bigger_then_ones = len([1 for aspect_ratio in aspect_ratios if aspect_ratio > 1]) p_value = stats.binomtest(count_bigger_then_ones, trial, p=0.5).pvalue assert p_value > 0.0001 # Checking if RandomErasing can be printed as string t.__repr__() def test_random_rotation(): with pytest.raises(ValueError): transforms.RandomRotation(-0.7) with pytest.raises(ValueError): transforms.RandomRotation([-0.7]) with pytest.raises(ValueError): transforms.RandomRotation([-0.7, 0, 0.7]) t = transforms.RandomRotation(0, fill=None) assert t.fill == 0 t = transforms.RandomRotation(10) angle = t.get_params(t.degrees) assert angle > -10 and angle < 10 t = transforms.RandomRotation((-10, 10)) angle = t.get_params(t.degrees) assert -10 < angle < 10 # Checking if RandomRotation can be printed as string t.__repr__() t = transforms.RandomRotation((-10, 10), interpolation=Image.BILINEAR) assert t.interpolation == transforms.InterpolationMode.BILINEAR def test_random_rotation_error(): # assert fill being either a Sequence or a Number with pytest.raises(TypeError): transforms.RandomRotation(0, fill={}) def test_randomperspective(): for _ in range(10): height = random.randint(24, 32) * 2 width = random.randint(24, 32) * 2 img = torch.ones(3, height, width) to_pil_image = transforms.ToPILImage() img = to_pil_image(img) perp = transforms.RandomPerspective() startpoints, endpoints = perp.get_params(width, height, 0.5) tr_img = F.perspective(img, startpoints, endpoints) tr_img2 = F.convert_image_dtype(F.pil_to_tensor(F.perspective(tr_img, endpoints, startpoints))) tr_img = F.convert_image_dtype(F.pil_to_tensor(tr_img)) assert img.size[0] == width assert img.size[1] == height assert torch.nn.functional.mse_loss( tr_img, F.convert_image_dtype(F.pil_to_tensor(img)) ) + 0.3 > torch.nn.functional.mse_loss(tr_img2, F.convert_image_dtype(F.pil_to_tensor(img))) @pytest.mark.parametrize("seed", range(10)) @pytest.mark.parametrize("mode", ["L", "RGB", "F"]) def test_randomperspective_fill(mode, seed): torch.random.manual_seed(seed) # assert fill being either a Sequence or a Number with pytest.raises(TypeError): transforms.RandomPerspective(fill={}) t = transforms.RandomPerspective(fill=None) assert t.fill == 0 height = 100 width = 100 img = torch.ones(3, height, width) to_pil_image = transforms.ToPILImage() img = to_pil_image(img) fill = 127 num_bands = len(mode) img_conv = img.convert(mode) perspective = transforms.RandomPerspective(p=1, fill=fill) tr_img = perspective(img_conv) pixel = tr_img.getpixel((0, 0)) if not isinstance(pixel, tuple): pixel = (pixel,) assert pixel == tuple([fill] * num_bands) startpoints, endpoints = transforms.RandomPerspective.get_params(width, height, 0.5) tr_img = F.perspective(img_conv, startpoints, endpoints, fill=fill) pixel = tr_img.getpixel((0, 0)) if not isinstance(pixel, tuple): pixel = (pixel,) assert pixel == tuple([fill] * num_bands) wrong_num_bands = num_bands + 1 with pytest.raises(ValueError): F.perspective(img_conv, startpoints, endpoints, fill=tuple([fill] * wrong_num_bands)) @pytest.mark.skipif(stats is None, reason="scipy.stats not available") def test_normalize(): def samples_from_standard_normal(tensor): p_value = stats.kstest(list(tensor.view(-1)), "norm", args=(0, 1)).pvalue return p_value > 0.0001 random_state = random.getstate() random.seed(42) for channels in [1, 3]: img = torch.rand(channels, 10, 10) mean = [img[c].mean() for c in range(channels)] std = [img[c].std() for c in range(channels)] normalized = transforms.Normalize(mean, std)(img) assert samples_from_standard_normal(normalized) random.setstate(random_state) # Checking if Normalize can be printed as string transforms.Normalize(mean, std).__repr__() # Checking the optional in-place behaviour tensor = torch.rand((1, 16, 16)) tensor_inplace = transforms.Normalize((0.5,), (0.5,), inplace=True)(tensor) assert_equal(tensor, tensor_inplace) @pytest.mark.parametrize("dtype1", [torch.float32, torch.float64]) @pytest.mark.parametrize("dtype2", [torch.int64, torch.float32, torch.float64]) def test_normalize_different_dtype(dtype1, dtype2): img = torch.rand(3, 10, 10, dtype=dtype1) mean = torch.tensor([1, 2, 3], dtype=dtype2) std = torch.tensor([1, 2, 1], dtype=dtype2) # checks that it doesn't crash transforms.functional.normalize(img, mean, std) def test_normalize_3d_tensor(): torch.manual_seed(28) n_channels = 3 img_size = 10 mean = torch.rand(n_channels) std = torch.rand(n_channels) img = torch.rand(n_channels, img_size, img_size) target = F.normalize(img, mean, std) mean_unsqueezed = mean.view(-1, 1, 1) std_unsqueezed = std.view(-1, 1, 1) result1 = F.normalize(img, mean_unsqueezed, std_unsqueezed) result2 = F.normalize( img, mean_unsqueezed.repeat(1, img_size, img_size), std_unsqueezed.repeat(1, img_size, img_size) ) torch.testing.assert_close(target, result1) torch.testing.assert_close(target, result2) class TestAffine: @pytest.fixture(scope="class") def input_img(self): input_img = np.zeros((40, 40, 3), dtype=np.uint8) for pt in [(16, 16), (20, 16), (20, 20)]: for i in range(-5, 5): for j in range(-5, 5): input_img[pt[0] + i, pt[1] + j, :] = [255, 155, 55] return input_img def test_affine_translate_seq(self, input_img): with pytest.raises(TypeError, match=r"Argument translate should be a sequence"): F.affine(input_img, 10, translate=0, scale=1, shear=1) @pytest.fixture(scope="class") def pil_image(self, input_img): return F.to_pil_image(input_img) def _to_3x3_inv(self, inv_result_matrix): result_matrix = np.zeros((3, 3)) result_matrix[:2, :] = np.array(inv_result_matrix).reshape((2, 3)) result_matrix[2, 2] = 1 return np.linalg.inv(result_matrix) def _test_transformation(self, angle, translate, scale, shear, pil_image, input_img, center=None): a_rad = math.radians(angle) s_rad = [math.radians(sh_) for sh_ in shear] cnt = [20, 20] if center is None else center cx, cy = cnt tx, ty = translate sx, sy = s_rad rot = a_rad # 1) Check transformation matrix: C = np.array([[1, 0, cx], [0, 1, cy], [0, 0, 1]]) T = np.array([[1, 0, tx], [0, 1, ty], [0, 0, 1]]) Cinv = np.linalg.inv(C) RS = np.array( [ [scale * math.cos(rot), -scale * math.sin(rot), 0], [scale * math.sin(rot), scale * math.cos(rot), 0], [0, 0, 1], ] ) SHx = np.array([[1, -math.tan(sx), 0], [0, 1, 0], [0, 0, 1]]) SHy = np.array([[1, 0, 0], [-math.tan(sy), 1, 0], [0, 0, 1]]) RSS = np.matmul(RS, np.matmul(SHy, SHx)) true_matrix = np.matmul(T, np.matmul(C, np.matmul(RSS, Cinv))) result_matrix = self._to_3x3_inv( F._get_inverse_affine_matrix(center=cnt, angle=angle, translate=translate, scale=scale, shear=shear) ) assert np.sum(np.abs(true_matrix - result_matrix)) < 1e-10 # 2) Perform inverse mapping: true_result = np.zeros((40, 40, 3), dtype=np.uint8) inv_true_matrix = np.linalg.inv(true_matrix) for y in range(true_result.shape[0]): for x in range(true_result.shape[1]): # Same as for PIL: # https://github.com/python-pillow/Pillow/blob/71f8ec6a0cfc1008076a023c0756542539d057ab/ # src/libImaging/Geometry.c#L1060 input_pt = np.array([x + 0.5, y + 0.5, 1.0]) res = np.floor(np.dot(inv_true_matrix, input_pt)).astype(int) _x, _y = res[:2] if 0 <= _x < input_img.shape[1] and 0 <= _y < input_img.shape[0]: true_result[y, x, :] = input_img[_y, _x, :] result = F.affine(pil_image, angle=angle, translate=translate, scale=scale, shear=shear, center=center) assert result.size == pil_image.size # Compute number of different pixels: np_result = np.array(result) n_diff_pixels = np.sum(np_result != true_result) / 3 # Accept 3 wrong pixels error_msg = ( f"angle={angle}, translate={translate}, scale={scale}, shear={shear}\nn diff pixels={n_diff_pixels}\n" ) assert n_diff_pixels < 3, error_msg def test_transformation_discrete(self, pil_image, input_img): # Test rotation angle = 45 self._test_transformation( angle=angle, translate=(0, 0), scale=1.0, shear=(0.0, 0.0), pil_image=pil_image, input_img=input_img ) # Test rotation angle = 45 self._test_transformation( angle=angle, translate=(0, 0), scale=1.0, shear=(0.0, 0.0), pil_image=pil_image, input_img=input_img, center=[0, 0], ) # Test translation translate = [10, 15] self._test_transformation( angle=0.0, translate=translate, scale=1.0, shear=(0.0, 0.0), pil_image=pil_image, input_img=input_img ) # Test scale scale = 1.2 self._test_transformation( angle=0.0, translate=(0.0, 0.0), scale=scale, shear=(0.0, 0.0), pil_image=pil_image, input_img=input_img ) # Test shear shear = [45.0, 25.0] self._test_transformation( angle=0.0, translate=(0.0, 0.0), scale=1.0, shear=shear, pil_image=pil_image, input_img=input_img ) # Test shear with top-left as center shear = [45.0, 25.0] self._test_transformation( angle=0.0, translate=(0.0, 0.0), scale=1.0, shear=shear, pil_image=pil_image, input_img=input_img, center=[0, 0], ) @pytest.mark.parametrize("angle", range(-90, 90, 36)) @pytest.mark.parametrize("translate", range(-10, 10, 5)) @pytest.mark.parametrize("scale", [0.77, 1.0, 1.27]) @pytest.mark.parametrize("shear", range(-15, 15, 5)) def test_transformation_range(self, angle, translate, scale, shear, pil_image, input_img): self._test_transformation( angle=angle, translate=(translate, translate), scale=scale, shear=(shear, shear), pil_image=pil_image, input_img=input_img, ) def test_random_affine(): with pytest.raises(ValueError): transforms.RandomAffine(-0.7) with pytest.raises(ValueError): transforms.RandomAffine([-0.7]) with pytest.raises(ValueError): transforms.RandomAffine([-0.7, 0, 0.7]) with pytest.raises(TypeError): transforms.RandomAffine([-90, 90], translate=2.0) with pytest.raises(ValueError): transforms.RandomAffine([-90, 90], translate=[-1.0, 1.0]) with pytest.raises(ValueError): transforms.RandomAffine([-90, 90], translate=[-1.0, 0.0, 1.0]) with pytest.raises(ValueError): transforms.RandomAffine([-90, 90], translate=[0.2, 0.2], scale=[0.0]) with pytest.raises(ValueError): transforms.RandomAffine([-90, 90], translate=[0.2, 0.2], scale=[-1.0, 1.0]) with pytest.raises(ValueError): transforms.RandomAffine([-90, 90], translate=[0.2, 0.2], scale=[0.5, -0.5]) with pytest.raises(ValueError): transforms.RandomAffine([-90, 90], translate=[0.2, 0.2], scale=[0.5, 3.0, -0.5]) with pytest.raises(ValueError): transforms.RandomAffine([-90, 90], translate=[0.2, 0.2], scale=[0.5, 0.5], shear=-7) with pytest.raises(ValueError): transforms.RandomAffine([-90, 90], translate=[0.2, 0.2], scale=[0.5, 0.5], shear=[-10]) with pytest.raises(ValueError): transforms.RandomAffine([-90, 90], translate=[0.2, 0.2], scale=[0.5, 0.5], shear=[-10, 0, 10]) with pytest.raises(ValueError): transforms.RandomAffine([-90, 90], translate=[0.2, 0.2], scale=[0.5, 0.5], shear=[-10, 0, 10, 0, 10]) # assert fill being either a Sequence or a Number with pytest.raises(TypeError): transforms.RandomAffine(0, fill={}) t = transforms.RandomAffine(0, fill=None) assert t.fill == 0 x = np.zeros((100, 100, 3), dtype=np.uint8) img = F.to_pil_image(x) t = transforms.RandomAffine(10, translate=[0.5, 0.3], scale=[0.7, 1.3], shear=[-10, 10, 20, 40]) for _ in range(100): angle, translations, scale, shear = t.get_params(t.degrees, t.translate, t.scale, t.shear, img_size=img.size) assert -10 < angle < 10 assert -img.size[0] * 0.5 <= translations[0] <= img.size[0] * 0.5 assert -img.size[1] * 0.5 <= translations[1] <= img.size[1] * 0.5 assert 0.7 < scale < 1.3 assert -10 < shear[0] < 10 assert -20 < shear[1] < 40 # Checking if RandomAffine can be printed as string t.__repr__() t = transforms.RandomAffine(10, interpolation=transforms.InterpolationMode.BILINEAR) assert "bilinear" in t.__repr__() t = transforms.RandomAffine(10, interpolation=Image.BILINEAR) assert t.interpolation == transforms.InterpolationMode.BILINEAR def test_elastic_transformation(): with pytest.raises(TypeError, match=r"alpha should be float or a sequence of floats"): transforms.ElasticTransform(alpha=True, sigma=2.0) with pytest.raises(TypeError, match=r"alpha should be a sequence of floats"): transforms.ElasticTransform(alpha=[1.0, True], sigma=2.0) with pytest.raises(ValueError, match=r"alpha is a sequence its length should be 2"): transforms.ElasticTransform(alpha=[1.0, 0.0, 1.0], sigma=2.0) with pytest.raises(TypeError, match=r"sigma should be float or a sequence of floats"): transforms.ElasticTransform(alpha=2.0, sigma=True) with pytest.raises(TypeError, match=r"sigma should be a sequence of floats"): transforms.ElasticTransform(alpha=2.0, sigma=[1.0, True]) with pytest.raises(ValueError, match=r"sigma is a sequence its length should be 2"): transforms.ElasticTransform(alpha=2.0, sigma=[1.0, 0.0, 1.0]) t = transforms.transforms.ElasticTransform(alpha=2.0, sigma=2.0, interpolation=Image.BILINEAR) assert t.interpolation == transforms.InterpolationMode.BILINEAR with pytest.raises(TypeError, match=r"fill should be int or float"): transforms.ElasticTransform(alpha=1.0, sigma=1.0, fill={}) x = torch.randint(0, 256, (3, 32, 32), dtype=torch.uint8) img = F.to_pil_image(x) t = transforms.ElasticTransform(alpha=0.0, sigma=0.0) transformed_img = t(img) assert transformed_img == img # Smoke test on PIL images t = transforms.ElasticTransform(alpha=0.5, sigma=0.23) transformed_img = t(img) assert isinstance(transformed_img, Image.Image) # Checking if ElasticTransform can be printed as string t.__repr__() def test_random_grayscale_with_grayscale_input(): transform = transforms.RandomGrayscale(p=1.0) image_tensor = torch.randint(0, 256, (1, 16, 16), dtype=torch.uint8) output_tensor = transform(image_tensor) torch.testing.assert_close(output_tensor, image_tensor) image_pil = F.to_pil_image(image_tensor) output_pil = transform(image_pil) torch.testing.assert_close(F.pil_to_tensor(output_pil), image_tensor) if __name__ == "__main__": pytest.main([__file__]) vision-0.19.1/test/test_transforms_tensor.py000066400000000000000000001044731466211133600213050ustar00rootroot00000000000000import os import sys import numpy as np import PIL.Image import pytest import torch from common_utils import ( _assert_approx_equal_tensor_to_pil, _assert_equal_tensor_to_pil, _create_data, _create_data_batch, assert_equal, cpu_and_cuda, float_dtypes, get_tmp_dir, int_dtypes, ) from torchvision import transforms as T from torchvision.transforms import functional as F, InterpolationMode from torchvision.transforms.autoaugment import _apply_op NEAREST, NEAREST_EXACT, BILINEAR, BICUBIC = ( InterpolationMode.NEAREST, InterpolationMode.NEAREST_EXACT, InterpolationMode.BILINEAR, InterpolationMode.BICUBIC, ) def _test_transform_vs_scripted(transform, s_transform, tensor, msg=None): torch.manual_seed(12) out1 = transform(tensor) torch.manual_seed(12) out2 = s_transform(tensor) assert_equal(out1, out2, msg=msg) def _test_transform_vs_scripted_on_batch(transform, s_transform, batch_tensors, msg=None): torch.manual_seed(12) transformed_batch = transform(batch_tensors) for i in range(len(batch_tensors)): img_tensor = batch_tensors[i, ...] torch.manual_seed(12) transformed_img = transform(img_tensor) assert_equal(transformed_img, transformed_batch[i, ...], msg=msg) torch.manual_seed(12) s_transformed_batch = s_transform(batch_tensors) assert_equal(transformed_batch, s_transformed_batch, msg=msg) def _test_functional_op(f, device, channels=3, fn_kwargs=None, test_exact_match=True, **match_kwargs): fn_kwargs = fn_kwargs or {} tensor, pil_img = _create_data(height=10, width=10, channels=channels, device=device) transformed_tensor = f(tensor, **fn_kwargs) transformed_pil_img = f(pil_img, **fn_kwargs) if test_exact_match: _assert_equal_tensor_to_pil(transformed_tensor, transformed_pil_img, **match_kwargs) else: _assert_approx_equal_tensor_to_pil(transformed_tensor, transformed_pil_img, **match_kwargs) def _test_class_op(transform_cls, device, channels=3, meth_kwargs=None, test_exact_match=True, **match_kwargs): meth_kwargs = meth_kwargs or {} # test for class interface f = transform_cls(**meth_kwargs) scripted_fn = torch.jit.script(f) tensor, pil_img = _create_data(26, 34, channels, device=device) # set seed to reproduce the same transformation for tensor and PIL image torch.manual_seed(12) transformed_tensor = f(tensor) torch.manual_seed(12) transformed_pil_img = f(pil_img) if test_exact_match: _assert_equal_tensor_to_pil(transformed_tensor, transformed_pil_img, **match_kwargs) else: _assert_approx_equal_tensor_to_pil(transformed_tensor.float(), transformed_pil_img, **match_kwargs) torch.manual_seed(12) transformed_tensor_script = scripted_fn(tensor) assert_equal(transformed_tensor, transformed_tensor_script) batch_tensors = _create_data_batch(height=23, width=34, channels=channels, num_samples=4, device=device) _test_transform_vs_scripted_on_batch(f, scripted_fn, batch_tensors) with get_tmp_dir() as tmp_dir: scripted_fn.save(os.path.join(tmp_dir, f"t_{transform_cls.__name__}.pt")) def _test_op(func, method, device, channels=3, fn_kwargs=None, meth_kwargs=None, test_exact_match=True, **match_kwargs): _test_functional_op(func, device, channels, fn_kwargs, test_exact_match=test_exact_match, **match_kwargs) _test_class_op(method, device, channels, meth_kwargs, test_exact_match=test_exact_match, **match_kwargs) def _test_fn_save_load(fn, tmpdir): scripted_fn = torch.jit.script(fn) p = os.path.join(tmpdir, f"t_op_list_{getattr(fn, '__name__', fn.__class__.__name__)}.pt") scripted_fn.save(p) _ = torch.jit.load(p) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize( "func,method,fn_kwargs,match_kwargs", [ (F.hflip, T.RandomHorizontalFlip, None, {}), (F.vflip, T.RandomVerticalFlip, None, {}), (F.invert, T.RandomInvert, None, {}), (F.posterize, T.RandomPosterize, {"bits": 4}, {}), (F.solarize, T.RandomSolarize, {"threshold": 192.0}, {}), (F.adjust_sharpness, T.RandomAdjustSharpness, {"sharpness_factor": 2.0}, {}), ( F.autocontrast, T.RandomAutocontrast, None, {"test_exact_match": False, "agg_method": "max", "tol": (1 + 1e-5), "allowed_percentage_diff": 0.05}, ), (F.equalize, T.RandomEqualize, None, {}), ], ) @pytest.mark.parametrize("channels", [1, 3]) def test_random(func, method, device, channels, fn_kwargs, match_kwargs): _test_op(func, method, device, channels, fn_kwargs, fn_kwargs, **match_kwargs) @pytest.mark.parametrize("seed", range(10)) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("channels", [1, 3]) class TestColorJitter: @pytest.fixture(autouse=True) def set_random_seed(self, seed): torch.random.manual_seed(seed) @pytest.mark.parametrize("brightness", [0.1, 0.5, 1.0, 1.34, (0.3, 0.7), [0.4, 0.5]]) def test_color_jitter_brightness(self, brightness, device, channels): tol = 1.0 + 1e-10 meth_kwargs = {"brightness": brightness} _test_class_op( T.ColorJitter, meth_kwargs=meth_kwargs, test_exact_match=False, device=device, tol=tol, agg_method="max", channels=channels, ) @pytest.mark.parametrize("contrast", [0.2, 0.5, 1.0, 1.5, (0.3, 0.7), [0.4, 0.5]]) def test_color_jitter_contrast(self, contrast, device, channels): tol = 1.0 + 1e-10 meth_kwargs = {"contrast": contrast} _test_class_op( T.ColorJitter, meth_kwargs=meth_kwargs, test_exact_match=False, device=device, tol=tol, agg_method="max", channels=channels, ) @pytest.mark.parametrize("saturation", [0.5, 0.75, 1.0, 1.25, (0.3, 0.7), [0.3, 0.4]]) def test_color_jitter_saturation(self, saturation, device, channels): tol = 1.0 + 1e-10 meth_kwargs = {"saturation": saturation} _test_class_op( T.ColorJitter, meth_kwargs=meth_kwargs, test_exact_match=False, device=device, tol=tol, agg_method="max", channels=channels, ) @pytest.mark.parametrize("hue", [0.2, 0.5, (-0.2, 0.3), [-0.4, 0.5]]) def test_color_jitter_hue(self, hue, device, channels): meth_kwargs = {"hue": hue} _test_class_op( T.ColorJitter, meth_kwargs=meth_kwargs, test_exact_match=False, device=device, tol=16.1, agg_method="max", channels=channels, ) def test_color_jitter_all(self, device, channels): # All 4 parameters together meth_kwargs = {"brightness": 0.2, "contrast": 0.2, "saturation": 0.2, "hue": 0.2} _test_class_op( T.ColorJitter, meth_kwargs=meth_kwargs, test_exact_match=False, device=device, tol=12.1, agg_method="max", channels=channels, ) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("m", ["constant", "edge", "reflect", "symmetric"]) @pytest.mark.parametrize("mul", [1, -1]) def test_pad(m, mul, device): fill = 127 if m == "constant" else 0 # Test functional.pad (PIL and Tensor) with padding as single int _test_functional_op(F.pad, fn_kwargs={"padding": mul * 2, "fill": fill, "padding_mode": m}, device=device) # Test functional.pad and transforms.Pad with padding as [int, ] fn_kwargs = meth_kwargs = { "padding": [mul * 2], "fill": fill, "padding_mode": m, } _test_op(F.pad, T.Pad, device=device, fn_kwargs=fn_kwargs, meth_kwargs=meth_kwargs) # Test functional.pad and transforms.Pad with padding as list fn_kwargs = meth_kwargs = {"padding": [mul * 4, 4], "fill": fill, "padding_mode": m} _test_op(F.pad, T.Pad, device=device, fn_kwargs=fn_kwargs, meth_kwargs=meth_kwargs) # Test functional.pad and transforms.Pad with padding as tuple fn_kwargs = meth_kwargs = {"padding": (mul * 2, 2, 2, mul * 2), "fill": fill, "padding_mode": m} _test_op(F.pad, T.Pad, device=device, fn_kwargs=fn_kwargs, meth_kwargs=meth_kwargs) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_crop(device): fn_kwargs = {"top": 2, "left": 3, "height": 4, "width": 5} # Test transforms.RandomCrop with size and padding as tuple meth_kwargs = { "size": (4, 5), "padding": (4, 4), "pad_if_needed": True, } _test_op(F.crop, T.RandomCrop, device=device, fn_kwargs=fn_kwargs, meth_kwargs=meth_kwargs) # Test transforms.functional.crop including outside the image area fn_kwargs = {"top": -2, "left": 3, "height": 4, "width": 5} # top _test_functional_op(F.crop, fn_kwargs=fn_kwargs, device=device) fn_kwargs = {"top": 1, "left": -3, "height": 4, "width": 5} # left _test_functional_op(F.crop, fn_kwargs=fn_kwargs, device=device) fn_kwargs = {"top": 7, "left": 3, "height": 4, "width": 5} # bottom _test_functional_op(F.crop, fn_kwargs=fn_kwargs, device=device) fn_kwargs = {"top": 3, "left": 8, "height": 4, "width": 5} # right _test_functional_op(F.crop, fn_kwargs=fn_kwargs, device=device) fn_kwargs = {"top": -3, "left": -3, "height": 15, "width": 15} # all _test_functional_op(F.crop, fn_kwargs=fn_kwargs, device=device) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize( "padding_config", [ {"padding_mode": "constant", "fill": 0}, {"padding_mode": "constant", "fill": 10}, {"padding_mode": "edge"}, {"padding_mode": "reflect"}, ], ) @pytest.mark.parametrize("pad_if_needed", [True, False]) @pytest.mark.parametrize("padding", [[5], [5, 4], [1, 2, 3, 4]]) @pytest.mark.parametrize("size", [5, [5], [6, 6]]) def test_random_crop(size, padding, pad_if_needed, padding_config, device): config = dict(padding_config) config["size"] = size config["padding"] = padding config["pad_if_needed"] = pad_if_needed _test_class_op(T.RandomCrop, device, meth_kwargs=config) def test_random_crop_save_load(tmpdir): fn = T.RandomCrop(32, [4], pad_if_needed=True) _test_fn_save_load(fn, tmpdir) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_center_crop(device, tmpdir): fn_kwargs = {"output_size": (4, 5)} meth_kwargs = {"size": (4, 5)} _test_op(F.center_crop, T.CenterCrop, device=device, fn_kwargs=fn_kwargs, meth_kwargs=meth_kwargs) fn_kwargs = {"output_size": (5,)} meth_kwargs = {"size": (5,)} _test_op(F.center_crop, T.CenterCrop, device=device, fn_kwargs=fn_kwargs, meth_kwargs=meth_kwargs) tensor = torch.randint(0, 256, (3, 10, 10), dtype=torch.uint8, device=device) # Test torchscript of transforms.CenterCrop with size as int f = T.CenterCrop(size=5) scripted_fn = torch.jit.script(f) scripted_fn(tensor) # Test torchscript of transforms.CenterCrop with size as [int, ] f = T.CenterCrop(size=[5]) scripted_fn = torch.jit.script(f) scripted_fn(tensor) # Test torchscript of transforms.CenterCrop with size as tuple f = T.CenterCrop(size=(6, 6)) scripted_fn = torch.jit.script(f) scripted_fn(tensor) def test_center_crop_save_load(tmpdir): fn = T.CenterCrop(size=[5]) _test_fn_save_load(fn, tmpdir) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize( "fn, method, out_length", [ # test_five_crop (F.five_crop, T.FiveCrop, 5), # test_ten_crop (F.ten_crop, T.TenCrop, 10), ], ) @pytest.mark.parametrize("size", [(5,), [5], (4, 5), [4, 5]]) def test_x_crop(fn, method, out_length, size, device): meth_kwargs = fn_kwargs = {"size": size} scripted_fn = torch.jit.script(fn) tensor, pil_img = _create_data(height=20, width=20, device=device) transformed_t_list = fn(tensor, **fn_kwargs) transformed_p_list = fn(pil_img, **fn_kwargs) assert len(transformed_t_list) == len(transformed_p_list) assert len(transformed_t_list) == out_length for transformed_tensor, transformed_pil_img in zip(transformed_t_list, transformed_p_list): _assert_equal_tensor_to_pil(transformed_tensor, transformed_pil_img) transformed_t_list_script = scripted_fn(tensor.detach().clone(), **fn_kwargs) assert len(transformed_t_list) == len(transformed_t_list_script) assert len(transformed_t_list_script) == out_length for transformed_tensor, transformed_tensor_script in zip(transformed_t_list, transformed_t_list_script): assert_equal(transformed_tensor, transformed_tensor_script) # test for class interface fn = method(**meth_kwargs) scripted_fn = torch.jit.script(fn) output = scripted_fn(tensor) assert len(output) == len(transformed_t_list_script) # test on batch of tensors batch_tensors = _create_data_batch(height=23, width=34, channels=3, num_samples=4, device=device) torch.manual_seed(12) transformed_batch_list = fn(batch_tensors) for i in range(len(batch_tensors)): img_tensor = batch_tensors[i, ...] torch.manual_seed(12) transformed_img_list = fn(img_tensor) for transformed_img, transformed_batch in zip(transformed_img_list, transformed_batch_list): assert_equal(transformed_img, transformed_batch[i, ...]) @pytest.mark.parametrize("method", ["FiveCrop", "TenCrop"]) def test_x_crop_save_load(method, tmpdir): fn = getattr(T, method)(size=[5]) _test_fn_save_load(fn, tmpdir) class TestResize: @pytest.mark.parametrize("size", [32, 34, 35, 36, 38]) def test_resize_int(self, size): # TODO: Minimal check for bug-fix, improve this later x = torch.rand(3, 32, 46) t = T.Resize(size=size, antialias=True) y = t(x) # If size is an int, smaller edge of the image will be matched to this number. # i.e, if height > width, then image will be rescaled to (size * height / width, size). assert isinstance(y, torch.Tensor) assert y.shape[1] == size assert y.shape[2] == int(size * 46 / 32) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("dt", [None, torch.float32, torch.float64]) @pytest.mark.parametrize("size", [[32], [32, 32], (32, 32), [34, 35]]) @pytest.mark.parametrize("max_size", [None, 35, 1000]) @pytest.mark.parametrize("interpolation", [BILINEAR, BICUBIC, NEAREST, NEAREST_EXACT]) def test_resize_scripted(self, dt, size, max_size, interpolation, device): tensor, _ = _create_data(height=34, width=36, device=device) batch_tensors = torch.randint(0, 256, size=(4, 3, 44, 56), dtype=torch.uint8, device=device) if dt is not None: # This is a trivial cast to float of uint8 data to test all cases tensor = tensor.to(dt) if max_size is not None and len(size) != 1: pytest.skip("Size should be an int or a sequence of length 1 if max_size is specified") transform = T.Resize(size=size, interpolation=interpolation, max_size=max_size, antialias=True) s_transform = torch.jit.script(transform) _test_transform_vs_scripted(transform, s_transform, tensor) _test_transform_vs_scripted_on_batch(transform, s_transform, batch_tensors) def test_resize_save_load(self, tmpdir): fn = T.Resize(size=[32], antialias=True) _test_fn_save_load(fn, tmpdir) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("scale", [(0.7, 1.2), [0.7, 1.2]]) @pytest.mark.parametrize("ratio", [(0.75, 1.333), [0.75, 1.333]]) @pytest.mark.parametrize("size", [(32,), [44], [32], [32, 32], (32, 32), [44, 55]]) @pytest.mark.parametrize("interpolation", [NEAREST, BILINEAR, BICUBIC, NEAREST_EXACT]) @pytest.mark.parametrize("antialias", [None, True, False]) def test_resized_crop(self, scale, ratio, size, interpolation, antialias, device): if antialias and interpolation in {NEAREST, NEAREST_EXACT}: pytest.skip(f"Can not resize if interpolation mode is {interpolation} and antialias=True") tensor = torch.randint(0, 256, size=(3, 44, 56), dtype=torch.uint8, device=device) batch_tensors = torch.randint(0, 256, size=(4, 3, 44, 56), dtype=torch.uint8, device=device) transform = T.RandomResizedCrop( size=size, scale=scale, ratio=ratio, interpolation=interpolation, antialias=antialias ) s_transform = torch.jit.script(transform) _test_transform_vs_scripted(transform, s_transform, tensor) _test_transform_vs_scripted_on_batch(transform, s_transform, batch_tensors) def test_resized_crop_save_load(self, tmpdir): fn = T.RandomResizedCrop(size=[32], antialias=True) _test_fn_save_load(fn, tmpdir) def _test_random_affine_helper(device, **kwargs): tensor = torch.randint(0, 256, size=(3, 44, 56), dtype=torch.uint8, device=device) batch_tensors = torch.randint(0, 256, size=(4, 3, 44, 56), dtype=torch.uint8, device=device) transform = T.RandomAffine(**kwargs) s_transform = torch.jit.script(transform) _test_transform_vs_scripted(transform, s_transform, tensor) _test_transform_vs_scripted_on_batch(transform, s_transform, batch_tensors) def test_random_affine_save_load(tmpdir): fn = T.RandomAffine(degrees=45.0) _test_fn_save_load(fn, tmpdir) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("interpolation", [NEAREST, BILINEAR]) @pytest.mark.parametrize("shear", [15, 10.0, (5.0, 10.0), [-15, 15], [-10.0, 10.0, -11.0, 11.0]]) def test_random_affine_shear(device, interpolation, shear): _test_random_affine_helper(device, degrees=0.0, interpolation=interpolation, shear=shear) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("interpolation", [NEAREST, BILINEAR]) @pytest.mark.parametrize("scale", [(0.7, 1.2), [0.7, 1.2]]) def test_random_affine_scale(device, interpolation, scale): _test_random_affine_helper(device, degrees=0.0, interpolation=interpolation, scale=scale) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("interpolation", [NEAREST, BILINEAR]) @pytest.mark.parametrize("translate", [(0.1, 0.2), [0.2, 0.1]]) def test_random_affine_translate(device, interpolation, translate): _test_random_affine_helper(device, degrees=0.0, interpolation=interpolation, translate=translate) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("interpolation", [NEAREST, BILINEAR]) @pytest.mark.parametrize("degrees", [45, 35.0, (-45, 45), [-90.0, 90.0]]) def test_random_affine_degrees(device, interpolation, degrees): _test_random_affine_helper(device, degrees=degrees, interpolation=interpolation) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("interpolation", [NEAREST, BILINEAR]) @pytest.mark.parametrize("fill", [85, (10, -10, 10), 0.7, [0.0, 0.0, 0.0], [1], 1]) def test_random_affine_fill(device, interpolation, fill): _test_random_affine_helper(device, degrees=0.0, interpolation=interpolation, fill=fill) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("center", [(0, 0), [10, 10], None, (56, 44)]) @pytest.mark.parametrize("expand", [True, False]) @pytest.mark.parametrize("degrees", [45, 35.0, (-45, 45), [-90.0, 90.0]]) @pytest.mark.parametrize("interpolation", [NEAREST, BILINEAR]) @pytest.mark.parametrize("fill", [85, (10, -10, 10), 0.7, [0.0, 0.0, 0.0], [1], 1]) def test_random_rotate(device, center, expand, degrees, interpolation, fill): tensor = torch.randint(0, 256, size=(3, 44, 56), dtype=torch.uint8, device=device) batch_tensors = torch.randint(0, 256, size=(4, 3, 44, 56), dtype=torch.uint8, device=device) transform = T.RandomRotation(degrees=degrees, interpolation=interpolation, expand=expand, center=center, fill=fill) s_transform = torch.jit.script(transform) _test_transform_vs_scripted(transform, s_transform, tensor) _test_transform_vs_scripted_on_batch(transform, s_transform, batch_tensors) def test_random_rotate_save_load(tmpdir): fn = T.RandomRotation(degrees=45.0) _test_fn_save_load(fn, tmpdir) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("distortion_scale", np.linspace(0.1, 1.0, num=20)) @pytest.mark.parametrize("interpolation", [NEAREST, BILINEAR]) @pytest.mark.parametrize("fill", [85, (10, -10, 10), 0.7, [0.0, 0.0, 0.0], [1], 1]) def test_random_perspective(device, distortion_scale, interpolation, fill): tensor = torch.randint(0, 256, size=(3, 44, 56), dtype=torch.uint8, device=device) batch_tensors = torch.randint(0, 256, size=(4, 3, 44, 56), dtype=torch.uint8, device=device) transform = T.RandomPerspective(distortion_scale=distortion_scale, interpolation=interpolation, fill=fill) s_transform = torch.jit.script(transform) _test_transform_vs_scripted(transform, s_transform, tensor) _test_transform_vs_scripted_on_batch(transform, s_transform, batch_tensors) def test_random_perspective_save_load(tmpdir): fn = T.RandomPerspective() _test_fn_save_load(fn, tmpdir) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize( "Klass, meth_kwargs", [(T.Grayscale, {"num_output_channels": 1}), (T.Grayscale, {"num_output_channels": 3}), (T.RandomGrayscale, {})], ) def test_to_grayscale(device, Klass, meth_kwargs): tol = 1.0 + 1e-10 _test_class_op(Klass, meth_kwargs=meth_kwargs, test_exact_match=False, device=device, tol=tol, agg_method="max") @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("in_dtype", int_dtypes() + float_dtypes()) @pytest.mark.parametrize("out_dtype", int_dtypes() + float_dtypes()) def test_convert_image_dtype(device, in_dtype, out_dtype): tensor, _ = _create_data(26, 34, device=device) batch_tensors = torch.rand(4, 3, 44, 56, device=device) in_tensor = tensor.to(in_dtype) in_batch_tensors = batch_tensors.to(in_dtype) fn = T.ConvertImageDtype(dtype=out_dtype) scripted_fn = torch.jit.script(fn) if (in_dtype == torch.float32 and out_dtype in (torch.int32, torch.int64)) or ( in_dtype == torch.float64 and out_dtype == torch.int64 ): with pytest.raises(RuntimeError, match=r"cannot be performed safely"): _test_transform_vs_scripted(fn, scripted_fn, in_tensor) with pytest.raises(RuntimeError, match=r"cannot be performed safely"): _test_transform_vs_scripted_on_batch(fn, scripted_fn, in_batch_tensors) return _test_transform_vs_scripted(fn, scripted_fn, in_tensor) _test_transform_vs_scripted_on_batch(fn, scripted_fn, in_batch_tensors) def test_convert_image_dtype_save_load(tmpdir): fn = T.ConvertImageDtype(dtype=torch.uint8) _test_fn_save_load(fn, tmpdir) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("policy", [policy for policy in T.AutoAugmentPolicy]) @pytest.mark.parametrize("fill", [None, 85, (10, -10, 10), 0.7, [0.0, 0.0, 0.0], [1], 1]) def test_autoaugment(device, policy, fill): tensor = torch.randint(0, 256, size=(3, 44, 56), dtype=torch.uint8, device=device) batch_tensors = torch.randint(0, 256, size=(4, 3, 44, 56), dtype=torch.uint8, device=device) transform = T.AutoAugment(policy=policy, fill=fill) s_transform = torch.jit.script(transform) for _ in range(25): _test_transform_vs_scripted(transform, s_transform, tensor) _test_transform_vs_scripted_on_batch(transform, s_transform, batch_tensors) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("num_ops", [1, 2, 3]) @pytest.mark.parametrize("magnitude", [7, 9, 11]) @pytest.mark.parametrize("fill", [None, 85, (10, -10, 10), 0.7, [0.0, 0.0, 0.0], [1], 1]) def test_randaugment(device, num_ops, magnitude, fill): tensor = torch.randint(0, 256, size=(3, 44, 56), dtype=torch.uint8, device=device) batch_tensors = torch.randint(0, 256, size=(4, 3, 44, 56), dtype=torch.uint8, device=device) transform = T.RandAugment(num_ops=num_ops, magnitude=magnitude, fill=fill) s_transform = torch.jit.script(transform) for _ in range(25): _test_transform_vs_scripted(transform, s_transform, tensor) _test_transform_vs_scripted_on_batch(transform, s_transform, batch_tensors) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("fill", [None, 85, (10, -10, 10), 0.7, [0.0, 0.0, 0.0], [1], 1]) def test_trivialaugmentwide(device, fill): tensor = torch.randint(0, 256, size=(3, 44, 56), dtype=torch.uint8, device=device) batch_tensors = torch.randint(0, 256, size=(4, 3, 44, 56), dtype=torch.uint8, device=device) transform = T.TrivialAugmentWide(fill=fill) s_transform = torch.jit.script(transform) for _ in range(25): _test_transform_vs_scripted(transform, s_transform, tensor) _test_transform_vs_scripted_on_batch(transform, s_transform, batch_tensors) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("fill", [None, 85, (10, -10, 10), 0.7, [0.0, 0.0, 0.0], [1], 1]) def test_augmix(device, fill): tensor = torch.randint(0, 256, size=(3, 44, 56), dtype=torch.uint8, device=device) batch_tensors = torch.randint(0, 256, size=(4, 3, 44, 56), dtype=torch.uint8, device=device) class DeterministicAugMix(T.AugMix): def _sample_dirichlet(self, params: torch.Tensor) -> torch.Tensor: # patch the method to ensure that the order of rand calls doesn't affect the outcome return params.softmax(dim=-1) transform = DeterministicAugMix(fill=fill) s_transform = torch.jit.script(transform) for _ in range(25): _test_transform_vs_scripted(transform, s_transform, tensor) _test_transform_vs_scripted_on_batch(transform, s_transform, batch_tensors) @pytest.mark.parametrize("augmentation", [T.AutoAugment, T.RandAugment, T.TrivialAugmentWide, T.AugMix]) def test_autoaugment_save_load(augmentation, tmpdir): fn = augmentation() _test_fn_save_load(fn, tmpdir) @pytest.mark.parametrize("interpolation", [F.InterpolationMode.NEAREST, F.InterpolationMode.BILINEAR]) @pytest.mark.parametrize("mode", ["X", "Y"]) def test_autoaugment__op_apply_shear(interpolation, mode): # We check that torchvision's implementation of shear is equivalent # to official CIFAR10 autoaugment implementation: # https://github.com/tensorflow/models/blob/885fda091c46c59d6c7bb5c7e760935eacc229da/research/autoaugment/augmentation_transforms.py#L273-L290 image_size = 32 def shear(pil_img, level, mode, resample): if mode == "X": matrix = (1, level, 0, 0, 1, 0) elif mode == "Y": matrix = (1, 0, 0, level, 1, 0) return pil_img.transform((image_size, image_size), PIL.Image.AFFINE, matrix, resample=resample) t_img, pil_img = _create_data(image_size, image_size) resample_pil = { F.InterpolationMode.NEAREST: PIL.Image.NEAREST, F.InterpolationMode.BILINEAR: PIL.Image.BILINEAR, }[interpolation] level = 0.3 expected_out = shear(pil_img, level, mode=mode, resample=resample_pil) # Check pil output vs expected pil out = _apply_op(pil_img, op_name=f"Shear{mode}", magnitude=level, interpolation=interpolation, fill=0) assert out == expected_out if interpolation == F.InterpolationMode.BILINEAR: # We skip bilinear mode for tensors as # affine transformation results are not exactly the same # between tensors and pil images # MAE as around 1.40 # Max Abs error can be 163 or 170 return # Check tensor output vs expected pil out = _apply_op(t_img, op_name=f"Shear{mode}", magnitude=level, interpolation=interpolation, fill=0) _assert_approx_equal_tensor_to_pil(out, expected_out) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize( "config", [ {}, {"value": 1}, {"value": 0.2}, {"value": "random"}, {"value": (1, 1, 1)}, {"value": (0.2, 0.2, 0.2)}, {"value": [1, 1, 1]}, {"value": [0.2, 0.2, 0.2]}, {"value": "random", "ratio": (0.1, 0.2)}, ], ) def test_random_erasing(device, config): tensor, _ = _create_data(24, 32, channels=3, device=device) batch_tensors = torch.rand(4, 3, 44, 56, device=device) fn = T.RandomErasing(**config) scripted_fn = torch.jit.script(fn) _test_transform_vs_scripted(fn, scripted_fn, tensor) _test_transform_vs_scripted_on_batch(fn, scripted_fn, batch_tensors) def test_random_erasing_save_load(tmpdir): fn = T.RandomErasing(value=0.2) _test_fn_save_load(fn, tmpdir) def test_random_erasing_with_invalid_data(): img = torch.rand(3, 60, 60) # Test Set 0: invalid value random_erasing = T.RandomErasing(value=(0.1, 0.2, 0.3, 0.4), p=1.0) with pytest.raises(ValueError, match="If value is a sequence, it should have either a single value or 3"): random_erasing(img) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_normalize(device, tmpdir): fn = T.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)) tensor, _ = _create_data(26, 34, device=device) with pytest.raises(TypeError, match="Input tensor should be a float tensor"): fn(tensor) batch_tensors = torch.rand(4, 3, 44, 56, device=device) tensor = tensor.to(dtype=torch.float32) / 255.0 # test for class interface scripted_fn = torch.jit.script(fn) _test_transform_vs_scripted(fn, scripted_fn, tensor) _test_transform_vs_scripted_on_batch(fn, scripted_fn, batch_tensors) scripted_fn.save(os.path.join(tmpdir, "t_norm.pt")) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_linear_transformation(device, tmpdir): c, h, w = 3, 24, 32 tensor, _ = _create_data(h, w, channels=c, device=device) matrix = torch.rand(c * h * w, c * h * w, device=device) mean_vector = torch.rand(c * h * w, device=device) fn = T.LinearTransformation(matrix, mean_vector) scripted_fn = torch.jit.script(fn) _test_transform_vs_scripted(fn, scripted_fn, tensor) batch_tensors = torch.rand(4, c, h, w, device=device) # We skip some tests from _test_transform_vs_scripted_on_batch as # results for scripted and non-scripted transformations are not exactly the same torch.manual_seed(12) transformed_batch = fn(batch_tensors) torch.manual_seed(12) s_transformed_batch = scripted_fn(batch_tensors) assert_equal(transformed_batch, s_transformed_batch) scripted_fn.save(os.path.join(tmpdir, "t_norm.pt")) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_compose(device): tensor, _ = _create_data(26, 34, device=device) tensor = tensor.to(dtype=torch.float32) / 255.0 transforms = T.Compose( [ T.CenterCrop(10), T.Normalize((0.485, 0.456, 0.406), (0.229, 0.224, 0.225)), ] ) s_transforms = torch.nn.Sequential(*transforms.transforms) scripted_fn = torch.jit.script(s_transforms) torch.manual_seed(12) transformed_tensor = transforms(tensor) torch.manual_seed(12) transformed_tensor_script = scripted_fn(tensor) assert_equal(transformed_tensor, transformed_tensor_script, msg=f"{transforms}") t = T.Compose( [ lambda x: x, ] ) with pytest.raises(RuntimeError, match="cannot call a value of type 'Tensor'"): torch.jit.script(t) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_random_apply(device): tensor, _ = _create_data(26, 34, device=device) tensor = tensor.to(dtype=torch.float32) / 255.0 transforms = T.RandomApply( [ T.RandomHorizontalFlip(), T.ColorJitter(), ], p=0.4, ) s_transforms = T.RandomApply( torch.nn.ModuleList( [ T.RandomHorizontalFlip(), T.ColorJitter(), ] ), p=0.4, ) scripted_fn = torch.jit.script(s_transforms) torch.manual_seed(12) transformed_tensor = transforms(tensor) torch.manual_seed(12) transformed_tensor_script = scripted_fn(tensor) assert_equal(transformed_tensor, transformed_tensor_script, msg=f"{transforms}") if device == "cpu": # Can't check this twice, otherwise # "Can't redefine method: forward on class: __torch__.torchvision.transforms.transforms.RandomApply" transforms = T.RandomApply( [ T.ColorJitter(), ], p=0.3, ) with pytest.raises(RuntimeError, match="Module 'RandomApply' has no attribute 'transforms'"): torch.jit.script(transforms) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize( "meth_kwargs", [ {"kernel_size": 3, "sigma": 0.75}, {"kernel_size": 23, "sigma": [0.1, 2.0]}, {"kernel_size": 23, "sigma": (0.1, 2.0)}, {"kernel_size": [3, 3], "sigma": (1.0, 1.0)}, {"kernel_size": (3, 3), "sigma": (0.1, 2.0)}, {"kernel_size": [23], "sigma": 0.75}, ], ) @pytest.mark.parametrize("channels", [1, 3]) def test_gaussian_blur(device, channels, meth_kwargs): if all( [ device == "cuda", channels == 1, meth_kwargs["kernel_size"] in [23, [23]], torch.version.cuda == "11.3", sys.platform in ("win32", "cygwin"), ] ): pytest.skip("Fails on Windows, see https://github.com/pytorch/vision/issues/5464") tol = 1.0 + 1e-10 torch.manual_seed(12) _test_class_op( T.GaussianBlur, meth_kwargs=meth_kwargs, channels=channels, test_exact_match=False, device=device, agg_method="max", tol=tol, ) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize( "fill", [ 1, 1.0, [1], [1.0], (1,), (1.0,), [1, 2, 3], [1.0, 2.0, 3.0], (1, 2, 3), (1.0, 2.0, 3.0), ], ) @pytest.mark.parametrize("channels", [1, 3]) def test_elastic_transform(device, channels, fill): if isinstance(fill, (list, tuple)) and len(fill) > 1 and channels == 1: # For this the test would correctly fail, since the number of channels in the image does not match `fill`. # Thus, this is not an issue in the transform, but rather a problem of parametrization that just gives the # product of `fill` and `channels`. return _test_class_op( T.ElasticTransform, meth_kwargs=dict(fill=fill), channels=channels, device=device, ) vision-0.19.1/test/test_transforms_v2.py000066400000000000000000007634061466211133600203310ustar00rootroot00000000000000import contextlib import decimal import functools import inspect import itertools import math import pickle import random import re import sys from copy import deepcopy from pathlib import Path from unittest import mock import numpy as np import PIL.Image import pytest import torch import torchvision.ops import torchvision.transforms.v2 as transforms from common_utils import ( assert_equal, cache, cpu_and_cuda, freeze_rng_state, ignore_jit_no_profile_information_warning, make_bounding_boxes, make_detection_masks, make_image, make_image_pil, make_image_tensor, make_segmentation_mask, make_video, make_video_tensor, needs_cuda, set_rng_seed, ) from torch import nn from torch.testing import assert_close from torch.utils._pytree import tree_flatten, tree_map from torch.utils.data import DataLoader, default_collate from torchvision import tv_tensors from torchvision.ops.boxes import box_iou from torchvision.transforms._functional_tensor import _max_value as get_max_value from torchvision.transforms.functional import pil_modes_mapping, to_pil_image from torchvision.transforms.v2 import functional as F from torchvision.transforms.v2._utils import check_type, is_pure_tensor from torchvision.transforms.v2.functional._geometry import _get_perspective_coeffs from torchvision.transforms.v2.functional._utils import _get_kernel, _register_kernel_internal # turns all warnings into errors for this module pytestmark = [pytest.mark.filterwarnings("error")] if sys.version_info[:2] >= (3, 12): # torchscript relies on some AST stuff that got deprecated in 3.12, # so we have to explicitly ignore those otherwise we'd error on warnings due to the pytestmark filter above. pytestmark.append(pytest.mark.filterwarnings("ignore::DeprecationWarning")) @pytest.fixture(autouse=True) def fix_rng_seed(): set_rng_seed(0) yield def _to_tolerances(maybe_tolerance_dict): if not isinstance(maybe_tolerance_dict, dict): return dict(rtol=None, atol=None) tolerances = dict(rtol=0, atol=0) tolerances.update(maybe_tolerance_dict) return tolerances def _check_kernel_cuda_vs_cpu(kernel, input, *args, rtol, atol, **kwargs): """Checks if the kernel produces closes results for inputs on GPU and CPU.""" if input.device.type != "cuda": return input_cuda = input.as_subclass(torch.Tensor) input_cpu = input_cuda.to("cpu") with freeze_rng_state(): actual = kernel(input_cuda, *args, **kwargs) with freeze_rng_state(): expected = kernel(input_cpu, *args, **kwargs) assert_close(actual, expected, check_device=False, rtol=rtol, atol=atol) @cache def _script(obj): try: return torch.jit.script(obj) except Exception as error: name = getattr(obj, "__name__", obj.__class__.__name__) raise AssertionError(f"Trying to `torch.jit.script` `{name}` raised the error above.") from error def _check_kernel_scripted_vs_eager(kernel, input, *args, rtol, atol, **kwargs): """Checks if the kernel is scriptable and if the scripted output is close to the eager one.""" if input.device.type != "cpu": return kernel_scripted = _script(kernel) input = input.as_subclass(torch.Tensor) with ignore_jit_no_profile_information_warning(): with freeze_rng_state(): actual = kernel_scripted(input, *args, **kwargs) with freeze_rng_state(): expected = kernel(input, *args, **kwargs) assert_close(actual, expected, rtol=rtol, atol=atol) def _check_kernel_batched_vs_unbatched(kernel, input, *args, rtol, atol, **kwargs): """Checks if the kernel produces close results for batched and unbatched inputs.""" unbatched_input = input.as_subclass(torch.Tensor) for batch_dims in [(2,), (2, 1)]: repeats = [*batch_dims, *[1] * input.ndim] actual = kernel(unbatched_input.repeat(repeats), *args, **kwargs) expected = kernel(unbatched_input, *args, **kwargs) # We can't directly call `.repeat()` on the output, since some kernel also return some additional metadata if isinstance(expected, torch.Tensor): expected = expected.repeat(repeats) else: tensor, *metadata = expected expected = (tensor.repeat(repeats), *metadata) assert_close(actual, expected, rtol=rtol, atol=atol) for degenerate_batch_dims in [(0,), (5, 0), (0, 5)]: degenerate_batched_input = torch.empty( degenerate_batch_dims + input.shape, dtype=input.dtype, device=input.device ) output = kernel(degenerate_batched_input, *args, **kwargs) # Most kernels just return a tensor, but some also return some additional metadata if not isinstance(output, torch.Tensor): output, *_ = output assert output.shape[: -input.ndim] == degenerate_batch_dims def check_kernel( kernel, input, *args, check_cuda_vs_cpu=True, check_scripted_vs_eager=True, check_batched_vs_unbatched=True, **kwargs, ): initial_input_version = input._version output = kernel(input.as_subclass(torch.Tensor), *args, **kwargs) # Most kernels just return a tensor, but some also return some additional metadata if not isinstance(output, torch.Tensor): output, *_ = output # check that no inplace operation happened assert input._version == initial_input_version if kernel not in {F.to_dtype_image, F.to_dtype_video}: assert output.dtype == input.dtype assert output.device == input.device if check_cuda_vs_cpu: _check_kernel_cuda_vs_cpu(kernel, input, *args, **kwargs, **_to_tolerances(check_cuda_vs_cpu)) if check_scripted_vs_eager: _check_kernel_scripted_vs_eager(kernel, input, *args, **kwargs, **_to_tolerances(check_scripted_vs_eager)) if check_batched_vs_unbatched: _check_kernel_batched_vs_unbatched(kernel, input, *args, **kwargs, **_to_tolerances(check_batched_vs_unbatched)) def _check_functional_scripted_smoke(functional, input, *args, **kwargs): """Checks if the functional can be scripted and the scripted version can be called without error.""" if not isinstance(input, tv_tensors.Image): return functional_scripted = _script(functional) with ignore_jit_no_profile_information_warning(): functional_scripted(input.as_subclass(torch.Tensor), *args, **kwargs) def check_functional(functional, input, *args, check_scripted_smoke=True, **kwargs): unknown_input = object() with pytest.raises(TypeError, match=re.escape(str(type(unknown_input)))): functional(unknown_input, *args, **kwargs) with mock.patch("torch._C._log_api_usage_once", wraps=torch._C._log_api_usage_once) as spy: output = functional(input, *args, **kwargs) spy.assert_any_call(f"{functional.__module__}.{functional.__name__}") assert isinstance(output, type(input)) if isinstance(input, tv_tensors.BoundingBoxes) and functional is not F.convert_bounding_box_format: assert output.format == input.format if check_scripted_smoke: _check_functional_scripted_smoke(functional, input, *args, **kwargs) def check_functional_kernel_signature_match(functional, *, kernel, input_type): """Checks if the signature of the functional matches the kernel signature.""" functional_params = list(inspect.signature(functional).parameters.values())[1:] kernel_params = list(inspect.signature(kernel).parameters.values())[1:] if issubclass(input_type, tv_tensors.TVTensor): # We filter out metadata that is implicitly passed to the functional through the input tv_tensor, but has to be # explicitly passed to the kernel. explicit_metadata = { tv_tensors.BoundingBoxes: {"format", "canvas_size"}, } kernel_params = [param for param in kernel_params if param.name not in explicit_metadata.get(input_type, set())] functional_params = iter(functional_params) for functional_param, kernel_param in zip(functional_params, kernel_params): try: # In general, the functional parameters are a superset of the kernel parameters. Thus, we filter out # functional parameters that have no kernel equivalent while keeping the order intact. while functional_param.name != kernel_param.name: functional_param = next(functional_params) except StopIteration: raise AssertionError( f"Parameter `{kernel_param.name}` of kernel `{kernel.__name__}` " f"has no corresponding parameter on the functional `{functional.__name__}`." ) from None if issubclass(input_type, PIL.Image.Image): # PIL kernels often have more correct annotations, since they are not limited by JIT. Thus, we don't check # them in the first place. functional_param._annotation = kernel_param._annotation = inspect.Parameter.empty assert functional_param == kernel_param def _check_transform_v1_compatibility(transform, input, *, rtol, atol): """If the transform defines the ``_v1_transform_cls`` attribute, checks if the transform has a public, static ``get_params`` method that is the v1 equivalent, the output is close to v1, is scriptable, and the scripted version can be called without error.""" if not (type(input) is torch.Tensor or isinstance(input, PIL.Image.Image)): return v1_transform_cls = transform._v1_transform_cls if v1_transform_cls is None: return if hasattr(v1_transform_cls, "get_params"): assert type(transform).get_params is v1_transform_cls.get_params v1_transform = v1_transform_cls(**transform._extract_params_for_v1_transform()) with freeze_rng_state(): output_v2 = transform(input) with freeze_rng_state(): output_v1 = v1_transform(input) assert_close(F.to_image(output_v2), F.to_image(output_v1), rtol=rtol, atol=atol) if isinstance(input, PIL.Image.Image): return _script(v1_transform)(input) def _make_transform_sample(transform, *, image_or_video, adapter): device = image_or_video.device if isinstance(image_or_video, torch.Tensor) else "cpu" size = F.get_size(image_or_video) input = dict( image_or_video=image_or_video, image_tv_tensor=make_image(size, device=device), video_tv_tensor=make_video(size, device=device), image_pil=make_image_pil(size), bounding_boxes_xyxy=make_bounding_boxes(size, format=tv_tensors.BoundingBoxFormat.XYXY, device=device), bounding_boxes_xywh=make_bounding_boxes(size, format=tv_tensors.BoundingBoxFormat.XYWH, device=device), bounding_boxes_cxcywh=make_bounding_boxes(size, format=tv_tensors.BoundingBoxFormat.CXCYWH, device=device), bounding_boxes_degenerate_xyxy=tv_tensors.BoundingBoxes( [ [0, 0, 0, 0], # no height or width [0, 0, 0, 1], # no height [0, 0, 1, 0], # no width [2, 0, 1, 1], # x1 > x2, y1 < y2 [0, 2, 1, 1], # x1 < x2, y1 > y2 [2, 2, 1, 1], # x1 > x2, y1 > y2 ], format=tv_tensors.BoundingBoxFormat.XYXY, canvas_size=size, device=device, ), bounding_boxes_degenerate_xywh=tv_tensors.BoundingBoxes( [ [0, 0, 0, 0], # no height or width [0, 0, 0, 1], # no height [0, 0, 1, 0], # no width [0, 0, 1, -1], # negative height [0, 0, -1, 1], # negative width [0, 0, -1, -1], # negative height and width ], format=tv_tensors.BoundingBoxFormat.XYWH, canvas_size=size, device=device, ), bounding_boxes_degenerate_cxcywh=tv_tensors.BoundingBoxes( [ [0, 0, 0, 0], # no height or width [0, 0, 0, 1], # no height [0, 0, 1, 0], # no width [0, 0, 1, -1], # negative height [0, 0, -1, 1], # negative width [0, 0, -1, -1], # negative height and width ], format=tv_tensors.BoundingBoxFormat.CXCYWH, canvas_size=size, device=device, ), detection_mask=make_detection_masks(size, device=device), segmentation_mask=make_segmentation_mask(size, device=device), int=0, float=0.0, bool=True, none=None, str="str", path=Path.cwd(), object=object(), tensor=torch.empty(5), array=np.empty(5), ) if adapter is not None: input = adapter(transform, input, device) return input def _check_transform_sample_input_smoke(transform, input, *, adapter): # This is a bunch of input / output convention checks, using a big sample with different parts as input. if not check_type(input, (is_pure_tensor, PIL.Image.Image, tv_tensors.Image, tv_tensors.Video)): return sample = _make_transform_sample( # adapter might change transform inplace transform=transform if adapter is None else deepcopy(transform), image_or_video=input, adapter=adapter, ) for container_type in [dict, list, tuple]: if container_type is dict: input = sample else: input = container_type(sample.values()) input_flat, input_spec = tree_flatten(input) with freeze_rng_state(): torch.manual_seed(0) output = transform(input) output_flat, output_spec = tree_flatten(output) assert output_spec == input_spec for output_item, input_item, should_be_transformed in zip( output_flat, input_flat, transforms.Transform()._needs_transform_list(input_flat) ): if should_be_transformed: assert type(output_item) is type(input_item) else: assert output_item is input_item # Enforce that the transform does not turn a degenerate bounding box, e.g. marked by RandomIoUCrop (or any other # future transform that does this), back into a valid one. for degenerate_bounding_boxes in ( bounding_box for name, bounding_box in sample.items() if "degenerate" in name and isinstance(bounding_box, tv_tensors.BoundingBoxes) ): sample = dict( boxes=degenerate_bounding_boxes, labels=torch.randint(10, (degenerate_bounding_boxes.shape[0],), device=degenerate_bounding_boxes.device), ) assert transforms.SanitizeBoundingBoxes()(sample)["boxes"].shape == (0, 4) def check_transform(transform, input, check_v1_compatibility=True, check_sample_input=True): pickle.loads(pickle.dumps(transform)) output = transform(input) assert isinstance(output, type(input)) if isinstance(input, tv_tensors.BoundingBoxes) and not isinstance(transform, transforms.ConvertBoundingBoxFormat): assert output.format == input.format if check_sample_input: _check_transform_sample_input_smoke( transform, input, adapter=check_sample_input if callable(check_sample_input) else None ) if check_v1_compatibility: _check_transform_v1_compatibility(transform, input, **_to_tolerances(check_v1_compatibility)) return output def transform_cls_to_functional(transform_cls, **transform_specific_kwargs): def wrapper(input, *args, **kwargs): transform = transform_cls(*args, **transform_specific_kwargs, **kwargs) return transform(input) wrapper.__name__ = transform_cls.__name__ return wrapper def param_value_parametrization(**kwargs): """Helper function to turn @pytest.mark.parametrize( ("param", "value"), ("a", 1), ("a", 2), ("a", 3), ("b", -1.0) ("b", 1.0) ) into @param_value_parametrization(a=[1, 2, 3], b=[-1.0, 1.0]) """ return pytest.mark.parametrize( ("param", "value"), [(param, value) for param, values in kwargs.items() for value in values], ) def adapt_fill(value, *, dtype): """Adapt fill values in the range [0.0, 1.0] to the value range of the dtype""" if value is None: return value max_value = get_max_value(dtype) value_type = float if dtype.is_floating_point else int if isinstance(value, (int, float)): return value_type(value * max_value) elif isinstance(value, (list, tuple)): return type(value)(value_type(v * max_value) for v in value) else: raise ValueError(f"fill should be an int or float, or a list or tuple of the former, but got '{value}'.") EXHAUSTIVE_TYPE_FILLS = [ None, 1, 0.5, [1], [0.2], (0,), (0.7,), [1, 0, 1], [0.1, 0.2, 0.3], (0, 1, 0), (0.9, 0.234, 0.314), ] CORRECTNESS_FILLS = [ v for v in EXHAUSTIVE_TYPE_FILLS if v is None or isinstance(v, float) or (isinstance(v, list) and len(v) > 1) ] # We cannot use `list(transforms.InterpolationMode)` here, since it includes some PIL-only ones as well INTERPOLATION_MODES = [ transforms.InterpolationMode.NEAREST, transforms.InterpolationMode.NEAREST_EXACT, transforms.InterpolationMode.BILINEAR, transforms.InterpolationMode.BICUBIC, ] def reference_affine_bounding_boxes_helper(bounding_boxes, *, affine_matrix, new_canvas_size=None, clamp=True): format = bounding_boxes.format canvas_size = new_canvas_size or bounding_boxes.canvas_size def affine_bounding_boxes(bounding_boxes): dtype = bounding_boxes.dtype device = bounding_boxes.device # Go to float before converting to prevent precision loss in case of CXCYWH -> XYXY and W or H is 1 input_xyxy = F.convert_bounding_box_format( bounding_boxes.to(dtype=torch.float64, device="cpu", copy=True), old_format=format, new_format=tv_tensors.BoundingBoxFormat.XYXY, inplace=True, ) x1, y1, x2, y2 = input_xyxy.squeeze(0).tolist() points = np.array( [ [x1, y1, 1.0], [x2, y1, 1.0], [x1, y2, 1.0], [x2, y2, 1.0], ] ) transformed_points = np.matmul(points, affine_matrix.astype(points.dtype).T) output_xyxy = torch.Tensor( [ float(np.min(transformed_points[:, 0])), float(np.min(transformed_points[:, 1])), float(np.max(transformed_points[:, 0])), float(np.max(transformed_points[:, 1])), ] ) output = F.convert_bounding_box_format( output_xyxy, old_format=tv_tensors.BoundingBoxFormat.XYXY, new_format=format ) if clamp: # It is important to clamp before casting, especially for CXCYWH format, dtype=int64 output = F.clamp_bounding_boxes( output, format=format, canvas_size=canvas_size, ) else: # We leave the bounding box as float64 so the caller gets the full precision to perform any additional # operation dtype = output.dtype return output.to(dtype=dtype, device=device) return tv_tensors.BoundingBoxes( torch.cat([affine_bounding_boxes(b) for b in bounding_boxes.reshape(-1, 4).unbind()], dim=0).reshape( bounding_boxes.shape ), format=format, canvas_size=canvas_size, ) class TestResize: INPUT_SIZE = (17, 11) OUTPUT_SIZES = [17, [17], (17,), None, [12, 13], (12, 13)] def _make_max_size_kwarg(self, *, use_max_size, size): if size is None: max_size = min(list(self.INPUT_SIZE)) elif use_max_size: if not (isinstance(size, int) or len(size) == 1): # This would result in an `ValueError` return None max_size = (size if isinstance(size, int) else size[0]) + 1 else: max_size = None return dict(max_size=max_size) def _compute_output_size(self, *, input_size, size, max_size): if size is None: size = max_size elif not (isinstance(size, int) or len(size) == 1): return tuple(size) elif not isinstance(size, int): size = size[0] old_height, old_width = input_size ratio = old_width / old_height if ratio > 1: new_height = size new_width = int(ratio * new_height) else: new_width = size new_height = int(new_width / ratio) if max_size is not None and max(new_height, new_width) > max_size: # Need to recompute the aspect ratio, since it might have changed due to rounding ratio = new_width / new_height if ratio > 1: new_width = max_size new_height = int(new_width / ratio) else: new_height = max_size new_width = int(new_height * ratio) return new_height, new_width @pytest.mark.parametrize("size", OUTPUT_SIZES) @pytest.mark.parametrize("interpolation", INTERPOLATION_MODES) @pytest.mark.parametrize("use_max_size", [True, False]) @pytest.mark.parametrize("antialias", [True, False]) @pytest.mark.parametrize("dtype", [torch.float32, torch.uint8]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, size, interpolation, use_max_size, antialias, dtype, device): if not (max_size_kwarg := self._make_max_size_kwarg(use_max_size=use_max_size, size=size)): return # In contrast to CPU, there is no native `InterpolationMode.BICUBIC` implementation for uint8 images on CUDA. # Internally, it uses the float path. Thus, we need to test with an enormous tolerance here to account for that. atol = 30 if (interpolation is transforms.InterpolationMode.BICUBIC and dtype is torch.uint8) else 1 check_cuda_vs_cpu_tolerances = dict(rtol=0, atol=atol / 255 if dtype.is_floating_point else atol) check_kernel( F.resize_image, make_image(self.INPUT_SIZE, dtype=dtype, device=device), size=size, interpolation=interpolation, **max_size_kwarg, antialias=antialias, check_cuda_vs_cpu=check_cuda_vs_cpu_tolerances, check_scripted_vs_eager=not isinstance(size, int), ) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) @pytest.mark.parametrize("size", OUTPUT_SIZES) @pytest.mark.parametrize("use_max_size", [True, False]) @pytest.mark.parametrize("dtype", [torch.float32, torch.int64]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_bounding_boxes(self, format, size, use_max_size, dtype, device): if not (max_size_kwarg := self._make_max_size_kwarg(use_max_size=use_max_size, size=size)): return bounding_boxes = make_bounding_boxes( format=format, canvas_size=self.INPUT_SIZE, dtype=dtype, device=device, ) check_kernel( F.resize_bounding_boxes, bounding_boxes, canvas_size=bounding_boxes.canvas_size, size=size, **max_size_kwarg, check_scripted_vs_eager=not isinstance(size, int), ) @pytest.mark.parametrize("make_mask", [make_segmentation_mask, make_detection_masks]) def test_kernel_mask(self, make_mask): check_kernel(F.resize_mask, make_mask(self.INPUT_SIZE), size=self.OUTPUT_SIZES[-1]) def test_kernel_video(self): check_kernel(F.resize_video, make_video(self.INPUT_SIZE), size=self.OUTPUT_SIZES[-1], antialias=True) @pytest.mark.parametrize("size", OUTPUT_SIZES) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) def test_functional(self, size, make_input): max_size_kwarg = self._make_max_size_kwarg(use_max_size=size is None, size=size) check_functional( F.resize, make_input(self.INPUT_SIZE), size=size, **max_size_kwarg, antialias=True, check_scripted_smoke=not isinstance(size, int), ) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.resize_image, torch.Tensor), (F._geometry._resize_image_pil, PIL.Image.Image), (F.resize_image, tv_tensors.Image), (F.resize_bounding_boxes, tv_tensors.BoundingBoxes), (F.resize_mask, tv_tensors.Mask), (F.resize_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.resize, kernel=kernel, input_type=input_type) @pytest.mark.parametrize("size", OUTPUT_SIZES) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize( "make_input", [ make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_detection_masks, make_video, ], ) def test_transform(self, size, device, make_input): max_size_kwarg = self._make_max_size_kwarg(use_max_size=size is None, size=size) check_transform( transforms.Resize(size=size, **max_size_kwarg, antialias=True), make_input(self.INPUT_SIZE, device=device), # atol=1 due to Resize v2 is using native uint8 interpolate path for bilinear and nearest modes check_v1_compatibility=dict(rtol=0, atol=1) if size is not None else False, ) def _check_output_size(self, input, output, *, size, max_size): assert tuple(F.get_size(output)) == self._compute_output_size( input_size=F.get_size(input), size=size, max_size=max_size ) @pytest.mark.parametrize("size", OUTPUT_SIZES) # `InterpolationMode.NEAREST` is modeled after the buggy `INTER_NEAREST` interpolation of CV2. # The PIL equivalent of `InterpolationMode.NEAREST` is `InterpolationMode.NEAREST_EXACT` @pytest.mark.parametrize("interpolation", set(INTERPOLATION_MODES) - {transforms.InterpolationMode.NEAREST}) @pytest.mark.parametrize("use_max_size", [True, False]) @pytest.mark.parametrize("fn", [F.resize, transform_cls_to_functional(transforms.Resize)]) def test_image_correctness(self, size, interpolation, use_max_size, fn): if not (max_size_kwarg := self._make_max_size_kwarg(use_max_size=use_max_size, size=size)): return image = make_image(self.INPUT_SIZE, dtype=torch.uint8) actual = fn(image, size=size, interpolation=interpolation, **max_size_kwarg, antialias=True) expected = F.to_image(F.resize(F.to_pil_image(image), size=size, interpolation=interpolation, **max_size_kwarg)) self._check_output_size(image, actual, size=size, **max_size_kwarg) torch.testing.assert_close(actual, expected, atol=1, rtol=0) def _reference_resize_bounding_boxes(self, bounding_boxes, *, size, max_size=None): old_height, old_width = bounding_boxes.canvas_size new_height, new_width = self._compute_output_size( input_size=bounding_boxes.canvas_size, size=size, max_size=max_size ) if (old_height, old_width) == (new_height, new_width): return bounding_boxes affine_matrix = np.array( [ [new_width / old_width, 0, 0], [0, new_height / old_height, 0], ], ) return reference_affine_bounding_boxes_helper( bounding_boxes, affine_matrix=affine_matrix, new_canvas_size=(new_height, new_width), ) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) @pytest.mark.parametrize("size", OUTPUT_SIZES) @pytest.mark.parametrize("use_max_size", [True, False]) @pytest.mark.parametrize("fn", [F.resize, transform_cls_to_functional(transforms.Resize)]) def test_bounding_boxes_correctness(self, format, size, use_max_size, fn): if not (max_size_kwarg := self._make_max_size_kwarg(use_max_size=use_max_size, size=size)): return bounding_boxes = make_bounding_boxes(format=format, canvas_size=self.INPUT_SIZE) actual = fn(bounding_boxes, size=size, **max_size_kwarg) expected = self._reference_resize_bounding_boxes(bounding_boxes, size=size, **max_size_kwarg) self._check_output_size(bounding_boxes, actual, size=size, **max_size_kwarg) torch.testing.assert_close(actual, expected) @pytest.mark.parametrize("interpolation", set(transforms.InterpolationMode) - set(INTERPOLATION_MODES)) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_video], ) def test_pil_interpolation_compat_smoke(self, interpolation, make_input): input = make_input(self.INPUT_SIZE) with ( contextlib.nullcontext() if isinstance(input, PIL.Image.Image) # This error is triggered in PyTorch core else pytest.raises(NotImplementedError, match=f"got {interpolation.value.lower()}") ): F.resize( input, size=self.OUTPUT_SIZES[0], interpolation=interpolation, ) def test_functional_pil_antialias_warning(self): with pytest.warns(UserWarning, match="Anti-alias option is always applied for PIL Image input"): F.resize(make_image_pil(self.INPUT_SIZE), size=self.OUTPUT_SIZES[0], antialias=False) @pytest.mark.parametrize("size", OUTPUT_SIZES) @pytest.mark.parametrize( "make_input", [ make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_detection_masks, make_video, ], ) def test_max_size_error(self, size, make_input): if size is None: # value can be anything other than an integer max_size = None match = "max_size must be an integer when size is None" elif isinstance(size, int) or len(size) == 1: max_size = (size if isinstance(size, int) else size[0]) - 1 match = "must be strictly greater than the requested size" else: # value can be anything other than None max_size = -1 match = "size should be an int or a sequence of length 1" with pytest.raises(ValueError, match=match): F.resize(make_input(self.INPUT_SIZE), size=size, max_size=max_size, antialias=True) if isinstance(size, list) and len(size) != 1: with pytest.raises(ValueError, match="max_size should only be passed if size is None or specifies"): F.resize(make_input(self.INPUT_SIZE), size=size, max_size=500) @pytest.mark.parametrize( "input_size, max_size, expected_size", [ ((10, 10), 10, (10, 10)), ((10, 20), 40, (20, 40)), ((20, 10), 40, (40, 20)), ((10, 20), 10, (5, 10)), ((20, 10), 10, (10, 5)), ], ) @pytest.mark.parametrize( "make_input", [ make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_detection_masks, make_video, ], ) def test_resize_size_none(self, input_size, max_size, expected_size, make_input): img = make_input(input_size) out = F.resize(img, size=None, max_size=max_size) assert F.get_size(out)[-2:] == list(expected_size) @pytest.mark.parametrize("interpolation", INTERPOLATION_MODES) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_video], ) def test_interpolation_int(self, interpolation, make_input): input = make_input(self.INPUT_SIZE) # `InterpolationMode.NEAREST_EXACT` has no proper corresponding integer equivalent. Internally, we map it to # `0` to be the same as `InterpolationMode.NEAREST` for PIL. However, for the tensor backend there is a # difference and thus we don't test it here. if isinstance(input, torch.Tensor) and interpolation is transforms.InterpolationMode.NEAREST_EXACT: return expected = F.resize(input, size=self.OUTPUT_SIZES[0], interpolation=interpolation, antialias=True) actual = F.resize( input, size=self.OUTPUT_SIZES[0], interpolation=pil_modes_mapping[interpolation], antialias=True ) assert_equal(actual, expected) def test_transform_unknown_size_error(self): with pytest.raises(ValueError, match="size can be an integer, a sequence of one or two integers, or None"): transforms.Resize(size=object()) @pytest.mark.parametrize( "size", [min(INPUT_SIZE), [min(INPUT_SIZE)], (min(INPUT_SIZE),), list(INPUT_SIZE), tuple(INPUT_SIZE)] ) @pytest.mark.parametrize( "make_input", [ make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_detection_masks, make_video, ], ) def test_noop(self, size, make_input): input = make_input(self.INPUT_SIZE) output = F.resize(input, size=F.get_size(input), antialias=True) # This identity check is not a requirement. It is here to avoid breaking the behavior by accident. If there # is a good reason to break this, feel free to downgrade to an equality check. if isinstance(input, tv_tensors.TVTensor): # We can't test identity directly, since that checks for the identity of the Python object. Since all # tv_tensors unwrap before a kernel and wrap again afterwards, the Python object changes. Thus, we check # that the underlying storage is the same assert output.data_ptr() == input.data_ptr() else: assert output is input @pytest.mark.parametrize( "make_input", [ make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_detection_masks, make_video, ], ) def test_no_regression_5405(self, make_input): # Checks that `max_size` is not ignored if `size == small_edge_size` # See https://github.com/pytorch/vision/issues/5405 input = make_input(self.INPUT_SIZE) size = min(F.get_size(input)) max_size = size + 1 output = F.resize(input, size=size, max_size=max_size, antialias=True) assert max(F.get_size(output)) == max_size def _make_image(self, *args, batch_dims=(), memory_format=torch.contiguous_format, **kwargs): # torch.channels_last memory_format is only available for 4D tensors, i.e. (B, C, H, W). However, images coming # from PIL or our own I/O functions do not have a batch dimensions and are thus 3D, i.e. (C, H, W). Still, the # layout of the data in memory is channels last. To emulate this when a 3D input is requested here, we create # the image as 4D and create a view with the right shape afterwards. With this the layout in memory is channels # last although PyTorch doesn't recognizes it as such. emulate_channels_last = memory_format is torch.channels_last and len(batch_dims) != 1 image = make_image( *args, batch_dims=(math.prod(batch_dims),) if emulate_channels_last else batch_dims, memory_format=memory_format, **kwargs, ) if emulate_channels_last: image = tv_tensors.wrap(image.view(*batch_dims, *image.shape[-3:]), like=image) return image def _check_stride(self, image, *, memory_format): C, H, W = F.get_dimensions(image) if memory_format is torch.contiguous_format: expected_stride = (H * W, W, 1) elif memory_format is torch.channels_last: expected_stride = (1, W * C, C) else: raise ValueError(f"Unknown memory_format: {memory_format}") assert image.stride() == expected_stride # TODO: We can remove this test and related torchvision workaround # once we fixed related pytorch issue: https://github.com/pytorch/pytorch/issues/68430 @pytest.mark.parametrize("interpolation", INTERPOLATION_MODES) @pytest.mark.parametrize("antialias", [True, False]) @pytest.mark.parametrize("memory_format", [torch.contiguous_format, torch.channels_last]) @pytest.mark.parametrize("dtype", [torch.uint8, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image_memory_format_consistency(self, interpolation, antialias, memory_format, dtype, device): size = self.OUTPUT_SIZES[0] input = self._make_image(self.INPUT_SIZE, dtype=dtype, device=device, memory_format=memory_format) # Smoke test to make sure we aren't starting with wrong assumptions self._check_stride(input, memory_format=memory_format) output = F.resize_image(input, size=size, interpolation=interpolation, antialias=antialias) self._check_stride(output, memory_format=memory_format) def test_float16_no_rounding(self): # Make sure Resize() doesn't round float16 images # Non-regression test for https://github.com/pytorch/vision/issues/7667 input = make_image_tensor(self.INPUT_SIZE, dtype=torch.float16) output = F.resize_image(input, size=self.OUTPUT_SIZES[0], antialias=True) assert output.dtype is torch.float16 assert (output.round() - output).abs().sum() > 0 class TestHorizontalFlip: @pytest.mark.parametrize("dtype", [torch.float32, torch.uint8]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, dtype, device): check_kernel(F.horizontal_flip_image, make_image(dtype=dtype, device=device)) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) @pytest.mark.parametrize("dtype", [torch.float32, torch.int64]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_bounding_boxes(self, format, dtype, device): bounding_boxes = make_bounding_boxes(format=format, dtype=dtype, device=device) check_kernel( F.horizontal_flip_bounding_boxes, bounding_boxes, format=format, canvas_size=bounding_boxes.canvas_size, ) @pytest.mark.parametrize("make_mask", [make_segmentation_mask, make_detection_masks]) def test_kernel_mask(self, make_mask): check_kernel(F.horizontal_flip_mask, make_mask()) def test_kernel_video(self): check_kernel(F.horizontal_flip_video, make_video()) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) def test_functional(self, make_input): check_functional(F.horizontal_flip, make_input()) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.horizontal_flip_image, torch.Tensor), (F._geometry._horizontal_flip_image_pil, PIL.Image.Image), (F.horizontal_flip_image, tv_tensors.Image), (F.horizontal_flip_bounding_boxes, tv_tensors.BoundingBoxes), (F.horizontal_flip_mask, tv_tensors.Mask), (F.horizontal_flip_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.horizontal_flip, kernel=kernel, input_type=input_type) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_transform(self, make_input, device): check_transform(transforms.RandomHorizontalFlip(p=1), make_input(device=device)) @pytest.mark.parametrize( "fn", [F.horizontal_flip, transform_cls_to_functional(transforms.RandomHorizontalFlip, p=1)] ) def test_image_correctness(self, fn): image = make_image(dtype=torch.uint8, device="cpu") actual = fn(image) expected = F.to_image(F.horizontal_flip(F.to_pil_image(image))) torch.testing.assert_close(actual, expected) def _reference_horizontal_flip_bounding_boxes(self, bounding_boxes): affine_matrix = np.array( [ [-1, 0, bounding_boxes.canvas_size[1]], [0, 1, 0], ], ) return reference_affine_bounding_boxes_helper(bounding_boxes, affine_matrix=affine_matrix) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) @pytest.mark.parametrize( "fn", [F.horizontal_flip, transform_cls_to_functional(transforms.RandomHorizontalFlip, p=1)] ) def test_bounding_boxes_correctness(self, format, fn): bounding_boxes = make_bounding_boxes(format=format) actual = fn(bounding_boxes) expected = self._reference_horizontal_flip_bounding_boxes(bounding_boxes) torch.testing.assert_close(actual, expected) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_transform_noop(self, make_input, device): input = make_input(device=device) transform = transforms.RandomHorizontalFlip(p=0) output = transform(input) assert_equal(output, input) class TestAffine: _EXHAUSTIVE_TYPE_AFFINE_KWARGS = dict( # float, int angle=[-10.9, 18], # two-list of float, two-list of int, two-tuple of float, two-tuple of int translate=[[6.3, -0.6], [1, -3], (16.6, -6.6), (-2, 4)], # float scale=[0.5], # float, int, # one-list of float, one-list of int, one-tuple of float, one-tuple of int # two-list of float, two-list of int, two-tuple of float, two-tuple of int shear=[35.6, 38, [-37.7], [-23], (5.3,), (-52,), [5.4, 21.8], [-47, 51], (-11.2, 36.7), (8, -53)], # None # two-list of float, two-list of int, two-tuple of float, two-tuple of int center=[None, [1.2, 4.9], [-3, 1], (2.5, -4.7), (3, 2)], ) # The special case for shear makes sure we pick a value that is supported while JIT scripting _MINIMAL_AFFINE_KWARGS = { k: vs[0] if k != "shear" else next(v for v in vs if isinstance(v, list)) for k, vs in _EXHAUSTIVE_TYPE_AFFINE_KWARGS.items() } _CORRECTNESS_AFFINE_KWARGS = { k: [v for v in vs if v is None or isinstance(v, float) or (isinstance(v, list) and len(v) > 1)] for k, vs in _EXHAUSTIVE_TYPE_AFFINE_KWARGS.items() } _EXHAUSTIVE_TYPE_TRANSFORM_AFFINE_RANGES = dict( degrees=[30, (-15, 20)], translate=[None, (0.5, 0.5)], scale=[None, (0.75, 1.25)], shear=[None, (12, 30, -17, 5), 10, (-5, 12)], ) _CORRECTNESS_TRANSFORM_AFFINE_RANGES = { k: next(v for v in vs if v is not None) for k, vs in _EXHAUSTIVE_TYPE_TRANSFORM_AFFINE_RANGES.items() } def _check_kernel(self, kernel, input, *args, **kwargs): kwargs_ = self._MINIMAL_AFFINE_KWARGS.copy() kwargs_.update(kwargs) check_kernel(kernel, input, *args, **kwargs_) @param_value_parametrization( angle=_EXHAUSTIVE_TYPE_AFFINE_KWARGS["angle"], translate=_EXHAUSTIVE_TYPE_AFFINE_KWARGS["translate"], shear=_EXHAUSTIVE_TYPE_AFFINE_KWARGS["shear"], center=_EXHAUSTIVE_TYPE_AFFINE_KWARGS["center"], interpolation=[transforms.InterpolationMode.NEAREST, transforms.InterpolationMode.BILINEAR], fill=EXHAUSTIVE_TYPE_FILLS, ) @pytest.mark.parametrize("dtype", [torch.float32, torch.uint8]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, param, value, dtype, device): if param == "fill": value = adapt_fill(value, dtype=dtype) self._check_kernel( F.affine_image, make_image(dtype=dtype, device=device), **{param: value}, check_scripted_vs_eager=not (param in {"shear", "fill"} and isinstance(value, (int, float))), check_cuda_vs_cpu=dict(atol=1, rtol=0) if dtype is torch.uint8 and param == "interpolation" and value is transforms.InterpolationMode.BILINEAR else True, ) @param_value_parametrization( angle=_EXHAUSTIVE_TYPE_AFFINE_KWARGS["angle"], translate=_EXHAUSTIVE_TYPE_AFFINE_KWARGS["translate"], shear=_EXHAUSTIVE_TYPE_AFFINE_KWARGS["shear"], center=_EXHAUSTIVE_TYPE_AFFINE_KWARGS["center"], ) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) @pytest.mark.parametrize("dtype", [torch.float32, torch.int64]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_bounding_boxes(self, param, value, format, dtype, device): bounding_boxes = make_bounding_boxes(format=format, dtype=dtype, device=device) self._check_kernel( F.affine_bounding_boxes, bounding_boxes, format=format, canvas_size=bounding_boxes.canvas_size, **{param: value}, check_scripted_vs_eager=not (param == "shear" and isinstance(value, (int, float))), ) @pytest.mark.parametrize("make_mask", [make_segmentation_mask, make_detection_masks]) def test_kernel_mask(self, make_mask): self._check_kernel(F.affine_mask, make_mask()) def test_kernel_video(self): self._check_kernel(F.affine_video, make_video()) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) def test_functional(self, make_input): check_functional(F.affine, make_input(), **self._MINIMAL_AFFINE_KWARGS) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.affine_image, torch.Tensor), (F._geometry._affine_image_pil, PIL.Image.Image), (F.affine_image, tv_tensors.Image), (F.affine_bounding_boxes, tv_tensors.BoundingBoxes), (F.affine_mask, tv_tensors.Mask), (F.affine_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.affine, kernel=kernel, input_type=input_type) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_transform(self, make_input, device): input = make_input(device=device) check_transform(transforms.RandomAffine(**self._CORRECTNESS_TRANSFORM_AFFINE_RANGES), input) @pytest.mark.parametrize("angle", _CORRECTNESS_AFFINE_KWARGS["angle"]) @pytest.mark.parametrize("translate", _CORRECTNESS_AFFINE_KWARGS["translate"]) @pytest.mark.parametrize("scale", _CORRECTNESS_AFFINE_KWARGS["scale"]) @pytest.mark.parametrize("shear", _CORRECTNESS_AFFINE_KWARGS["shear"]) @pytest.mark.parametrize("center", _CORRECTNESS_AFFINE_KWARGS["center"]) @pytest.mark.parametrize( "interpolation", [transforms.InterpolationMode.NEAREST, transforms.InterpolationMode.BILINEAR] ) @pytest.mark.parametrize("fill", CORRECTNESS_FILLS) def test_functional_image_correctness(self, angle, translate, scale, shear, center, interpolation, fill): image = make_image(dtype=torch.uint8, device="cpu") fill = adapt_fill(fill, dtype=torch.uint8) actual = F.affine( image, angle=angle, translate=translate, scale=scale, shear=shear, center=center, interpolation=interpolation, fill=fill, ) expected = F.to_image( F.affine( F.to_pil_image(image), angle=angle, translate=translate, scale=scale, shear=shear, center=center, interpolation=interpolation, fill=fill, ) ) mae = (actual.float() - expected.float()).abs().mean() assert mae < 2 if interpolation is transforms.InterpolationMode.NEAREST else 8 @pytest.mark.parametrize("center", _CORRECTNESS_AFFINE_KWARGS["center"]) @pytest.mark.parametrize( "interpolation", [transforms.InterpolationMode.NEAREST, transforms.InterpolationMode.BILINEAR] ) @pytest.mark.parametrize("fill", CORRECTNESS_FILLS) @pytest.mark.parametrize("seed", list(range(5))) def test_transform_image_correctness(self, center, interpolation, fill, seed): image = make_image(dtype=torch.uint8, device="cpu") fill = adapt_fill(fill, dtype=torch.uint8) transform = transforms.RandomAffine( **self._CORRECTNESS_TRANSFORM_AFFINE_RANGES, center=center, interpolation=interpolation, fill=fill ) torch.manual_seed(seed) actual = transform(image) torch.manual_seed(seed) expected = F.to_image(transform(F.to_pil_image(image))) mae = (actual.float() - expected.float()).abs().mean() assert mae < 2 if interpolation is transforms.InterpolationMode.NEAREST else 8 def _compute_affine_matrix(self, *, angle, translate, scale, shear, center): rot = math.radians(angle) cx, cy = center tx, ty = translate sx, sy = [math.radians(s) for s in ([shear, 0.0] if isinstance(shear, (int, float)) else shear)] c_matrix = np.array([[1, 0, cx], [0, 1, cy], [0, 0, 1]]) t_matrix = np.array([[1, 0, tx], [0, 1, ty], [0, 0, 1]]) c_matrix_inv = np.linalg.inv(c_matrix) rs_matrix = np.array( [ [scale * math.cos(rot), -scale * math.sin(rot), 0], [scale * math.sin(rot), scale * math.cos(rot), 0], [0, 0, 1], ] ) shear_x_matrix = np.array([[1, -math.tan(sx), 0], [0, 1, 0], [0, 0, 1]]) shear_y_matrix = np.array([[1, 0, 0], [-math.tan(sy), 1, 0], [0, 0, 1]]) rss_matrix = np.matmul(rs_matrix, np.matmul(shear_y_matrix, shear_x_matrix)) true_matrix = np.matmul(t_matrix, np.matmul(c_matrix, np.matmul(rss_matrix, c_matrix_inv))) return true_matrix[:2, :] def _reference_affine_bounding_boxes(self, bounding_boxes, *, angle, translate, scale, shear, center): if center is None: center = [s * 0.5 for s in bounding_boxes.canvas_size[::-1]] return reference_affine_bounding_boxes_helper( bounding_boxes, affine_matrix=self._compute_affine_matrix( angle=angle, translate=translate, scale=scale, shear=shear, center=center ), ) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) @pytest.mark.parametrize("angle", _CORRECTNESS_AFFINE_KWARGS["angle"]) @pytest.mark.parametrize("translate", _CORRECTNESS_AFFINE_KWARGS["translate"]) @pytest.mark.parametrize("scale", _CORRECTNESS_AFFINE_KWARGS["scale"]) @pytest.mark.parametrize("shear", _CORRECTNESS_AFFINE_KWARGS["shear"]) @pytest.mark.parametrize("center", _CORRECTNESS_AFFINE_KWARGS["center"]) def test_functional_bounding_boxes_correctness(self, format, angle, translate, scale, shear, center): bounding_boxes = make_bounding_boxes(format=format) actual = F.affine( bounding_boxes, angle=angle, translate=translate, scale=scale, shear=shear, center=center, ) expected = self._reference_affine_bounding_boxes( bounding_boxes, angle=angle, translate=translate, scale=scale, shear=shear, center=center, ) torch.testing.assert_close(actual, expected) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) @pytest.mark.parametrize("center", _CORRECTNESS_AFFINE_KWARGS["center"]) @pytest.mark.parametrize("seed", list(range(5))) def test_transform_bounding_boxes_correctness(self, format, center, seed): bounding_boxes = make_bounding_boxes(format=format) transform = transforms.RandomAffine(**self._CORRECTNESS_TRANSFORM_AFFINE_RANGES, center=center) torch.manual_seed(seed) params = transform._get_params([bounding_boxes]) torch.manual_seed(seed) actual = transform(bounding_boxes) expected = self._reference_affine_bounding_boxes(bounding_boxes, **params, center=center) torch.testing.assert_close(actual, expected) @pytest.mark.parametrize("degrees", _EXHAUSTIVE_TYPE_TRANSFORM_AFFINE_RANGES["degrees"]) @pytest.mark.parametrize("translate", _EXHAUSTIVE_TYPE_TRANSFORM_AFFINE_RANGES["translate"]) @pytest.mark.parametrize("scale", _EXHAUSTIVE_TYPE_TRANSFORM_AFFINE_RANGES["scale"]) @pytest.mark.parametrize("shear", _EXHAUSTIVE_TYPE_TRANSFORM_AFFINE_RANGES["shear"]) @pytest.mark.parametrize("seed", list(range(10))) def test_transform_get_params_bounds(self, degrees, translate, scale, shear, seed): image = make_image() height, width = F.get_size(image) transform = transforms.RandomAffine(degrees=degrees, translate=translate, scale=scale, shear=shear) torch.manual_seed(seed) params = transform._get_params([image]) if isinstance(degrees, (int, float)): assert -degrees <= params["angle"] <= degrees else: assert degrees[0] <= params["angle"] <= degrees[1] if translate is not None: width_max = int(round(translate[0] * width)) height_max = int(round(translate[1] * height)) assert -width_max <= params["translate"][0] <= width_max assert -height_max <= params["translate"][1] <= height_max else: assert params["translate"] == (0, 0) if scale is not None: assert scale[0] <= params["scale"] <= scale[1] else: assert params["scale"] == 1.0 if shear is not None: if isinstance(shear, (int, float)): assert -shear <= params["shear"][0] <= shear assert params["shear"][1] == 0.0 elif len(shear) == 2: assert shear[0] <= params["shear"][0] <= shear[1] assert params["shear"][1] == 0.0 elif len(shear) == 4: assert shear[0] <= params["shear"][0] <= shear[1] assert shear[2] <= params["shear"][1] <= shear[3] else: assert params["shear"] == (0, 0) @pytest.mark.parametrize("param", ["degrees", "translate", "scale", "shear", "center"]) @pytest.mark.parametrize("value", [0, [0], [0, 0, 0]]) def test_transform_sequence_len_errors(self, param, value): if param in {"degrees", "shear"} and not isinstance(value, list): return kwargs = {param: value} if param != "degrees": kwargs["degrees"] = 0 with pytest.raises( ValueError if isinstance(value, list) else TypeError, match=f"{param} should be a sequence of length 2" ): transforms.RandomAffine(**kwargs) def test_transform_negative_degrees_error(self): with pytest.raises(ValueError, match="If degrees is a single number, it must be positive"): transforms.RandomAffine(degrees=-1) @pytest.mark.parametrize("translate", [[-1, 0], [2, 0], [-1, 2]]) def test_transform_translate_range_error(self, translate): with pytest.raises(ValueError, match="translation values should be between 0 and 1"): transforms.RandomAffine(degrees=0, translate=translate) @pytest.mark.parametrize("scale", [[-1, 0], [0, -1], [-1, -1]]) def test_transform_scale_range_error(self, scale): with pytest.raises(ValueError, match="scale values should be positive"): transforms.RandomAffine(degrees=0, scale=scale) def test_transform_negative_shear_error(self): with pytest.raises(ValueError, match="If shear is a single number, it must be positive"): transforms.RandomAffine(degrees=0, shear=-1) def test_transform_unknown_fill_error(self): with pytest.raises(TypeError, match="Got inappropriate fill arg"): transforms.RandomAffine(degrees=0, fill="fill") class TestVerticalFlip: @pytest.mark.parametrize("dtype", [torch.float32, torch.uint8]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, dtype, device): check_kernel(F.vertical_flip_image, make_image(dtype=dtype, device=device)) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) @pytest.mark.parametrize("dtype", [torch.float32, torch.int64]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_bounding_boxes(self, format, dtype, device): bounding_boxes = make_bounding_boxes(format=format, dtype=dtype, device=device) check_kernel( F.vertical_flip_bounding_boxes, bounding_boxes, format=format, canvas_size=bounding_boxes.canvas_size, ) @pytest.mark.parametrize("make_mask", [make_segmentation_mask, make_detection_masks]) def test_kernel_mask(self, make_mask): check_kernel(F.vertical_flip_mask, make_mask()) def test_kernel_video(self): check_kernel(F.vertical_flip_video, make_video()) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) def test_functional(self, make_input): check_functional(F.vertical_flip, make_input()) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.vertical_flip_image, torch.Tensor), (F._geometry._vertical_flip_image_pil, PIL.Image.Image), (F.vertical_flip_image, tv_tensors.Image), (F.vertical_flip_bounding_boxes, tv_tensors.BoundingBoxes), (F.vertical_flip_mask, tv_tensors.Mask), (F.vertical_flip_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.vertical_flip, kernel=kernel, input_type=input_type) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_transform(self, make_input, device): check_transform(transforms.RandomVerticalFlip(p=1), make_input(device=device)) @pytest.mark.parametrize("fn", [F.vertical_flip, transform_cls_to_functional(transforms.RandomVerticalFlip, p=1)]) def test_image_correctness(self, fn): image = make_image(dtype=torch.uint8, device="cpu") actual = fn(image) expected = F.to_image(F.vertical_flip(F.to_pil_image(image))) torch.testing.assert_close(actual, expected) def _reference_vertical_flip_bounding_boxes(self, bounding_boxes): affine_matrix = np.array( [ [1, 0, 0], [0, -1, bounding_boxes.canvas_size[0]], ], ) return reference_affine_bounding_boxes_helper(bounding_boxes, affine_matrix=affine_matrix) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) @pytest.mark.parametrize("fn", [F.vertical_flip, transform_cls_to_functional(transforms.RandomVerticalFlip, p=1)]) def test_bounding_boxes_correctness(self, format, fn): bounding_boxes = make_bounding_boxes(format=format) actual = fn(bounding_boxes) expected = self._reference_vertical_flip_bounding_boxes(bounding_boxes) torch.testing.assert_close(actual, expected) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_transform_noop(self, make_input, device): input = make_input(device=device) transform = transforms.RandomVerticalFlip(p=0) output = transform(input) assert_equal(output, input) class TestRotate: _EXHAUSTIVE_TYPE_AFFINE_KWARGS = dict( # float, int angle=[-10.9, 18], # None # two-list of float, two-list of int, two-tuple of float, two-tuple of int center=[None, [1.2, 4.9], [-3, 1], (2.5, -4.7), (3, 2)], ) _MINIMAL_AFFINE_KWARGS = {k: vs[0] for k, vs in _EXHAUSTIVE_TYPE_AFFINE_KWARGS.items()} _CORRECTNESS_AFFINE_KWARGS = { k: [v for v in vs if v is None or isinstance(v, float) or isinstance(v, list)] for k, vs in _EXHAUSTIVE_TYPE_AFFINE_KWARGS.items() } _EXHAUSTIVE_TYPE_TRANSFORM_AFFINE_RANGES = dict( degrees=[30, (-15, 20)], ) _CORRECTNESS_TRANSFORM_AFFINE_RANGES = {k: vs[0] for k, vs in _EXHAUSTIVE_TYPE_TRANSFORM_AFFINE_RANGES.items()} @param_value_parametrization( angle=_EXHAUSTIVE_TYPE_AFFINE_KWARGS["angle"], interpolation=[transforms.InterpolationMode.NEAREST, transforms.InterpolationMode.BILINEAR], expand=[False, True], center=_EXHAUSTIVE_TYPE_AFFINE_KWARGS["center"], fill=EXHAUSTIVE_TYPE_FILLS, ) @pytest.mark.parametrize("dtype", [torch.float32, torch.uint8]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, param, value, dtype, device): kwargs = {param: value} if param != "angle": kwargs["angle"] = self._MINIMAL_AFFINE_KWARGS["angle"] check_kernel( F.rotate_image, make_image(dtype=dtype, device=device), **kwargs, check_scripted_vs_eager=not (param == "fill" and isinstance(value, (int, float))), ) @param_value_parametrization( angle=_EXHAUSTIVE_TYPE_AFFINE_KWARGS["angle"], expand=[False, True], center=_EXHAUSTIVE_TYPE_AFFINE_KWARGS["center"], ) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) @pytest.mark.parametrize("dtype", [torch.float32, torch.uint8]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_bounding_boxes(self, param, value, format, dtype, device): kwargs = {param: value} if param != "angle": kwargs["angle"] = self._MINIMAL_AFFINE_KWARGS["angle"] bounding_boxes = make_bounding_boxes(format=format, dtype=dtype, device=device) check_kernel( F.rotate_bounding_boxes, bounding_boxes, format=format, canvas_size=bounding_boxes.canvas_size, **kwargs, ) @pytest.mark.parametrize("make_mask", [make_segmentation_mask, make_detection_masks]) def test_kernel_mask(self, make_mask): check_kernel(F.rotate_mask, make_mask(), **self._MINIMAL_AFFINE_KWARGS) def test_kernel_video(self): check_kernel(F.rotate_video, make_video(), **self._MINIMAL_AFFINE_KWARGS) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) def test_functional(self, make_input): check_functional(F.rotate, make_input(), **self._MINIMAL_AFFINE_KWARGS) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.rotate_image, torch.Tensor), (F._geometry._rotate_image_pil, PIL.Image.Image), (F.rotate_image, tv_tensors.Image), (F.rotate_bounding_boxes, tv_tensors.BoundingBoxes), (F.rotate_mask, tv_tensors.Mask), (F.rotate_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.rotate, kernel=kernel, input_type=input_type) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_transform(self, make_input, device): check_transform( transforms.RandomRotation(**self._CORRECTNESS_TRANSFORM_AFFINE_RANGES), make_input(device=device) ) @pytest.mark.parametrize("angle", _CORRECTNESS_AFFINE_KWARGS["angle"]) @pytest.mark.parametrize("center", _CORRECTNESS_AFFINE_KWARGS["center"]) @pytest.mark.parametrize( "interpolation", [transforms.InterpolationMode.NEAREST, transforms.InterpolationMode.BILINEAR] ) @pytest.mark.parametrize("expand", [False, True]) @pytest.mark.parametrize("fill", CORRECTNESS_FILLS) def test_functional_image_correctness(self, angle, center, interpolation, expand, fill): image = make_image(dtype=torch.uint8, device="cpu") fill = adapt_fill(fill, dtype=torch.uint8) actual = F.rotate(image, angle=angle, center=center, interpolation=interpolation, expand=expand, fill=fill) expected = F.to_image( F.rotate( F.to_pil_image(image), angle=angle, center=center, interpolation=interpolation, expand=expand, fill=fill ) ) mae = (actual.float() - expected.float()).abs().mean() assert mae < 1 if interpolation is transforms.InterpolationMode.NEAREST else 6 @pytest.mark.parametrize("center", _CORRECTNESS_AFFINE_KWARGS["center"]) @pytest.mark.parametrize( "interpolation", [transforms.InterpolationMode.NEAREST, transforms.InterpolationMode.BILINEAR] ) @pytest.mark.parametrize("expand", [False, True]) @pytest.mark.parametrize("fill", CORRECTNESS_FILLS) @pytest.mark.parametrize("seed", list(range(5))) def test_transform_image_correctness(self, center, interpolation, expand, fill, seed): image = make_image(dtype=torch.uint8, device="cpu") fill = adapt_fill(fill, dtype=torch.uint8) transform = transforms.RandomRotation( **self._CORRECTNESS_TRANSFORM_AFFINE_RANGES, center=center, interpolation=interpolation, expand=expand, fill=fill, ) torch.manual_seed(seed) actual = transform(image) torch.manual_seed(seed) expected = F.to_image(transform(F.to_pil_image(image))) mae = (actual.float() - expected.float()).abs().mean() assert mae < 1 if interpolation is transforms.InterpolationMode.NEAREST else 6 def _compute_output_canvas_size(self, *, expand, canvas_size, affine_matrix): if not expand: return canvas_size, (0.0, 0.0) input_height, input_width = canvas_size input_image_frame = np.array( [ [0.0, 0.0, 1.0], [0.0, input_height, 1.0], [input_width, input_height, 1.0], [input_width, 0.0, 1.0], ], dtype=np.float64, ) output_image_frame = np.matmul(input_image_frame, affine_matrix.astype(input_image_frame.dtype).T) recenter_x = float(np.min(output_image_frame[:, 0])) recenter_y = float(np.min(output_image_frame[:, 1])) output_width = int(np.max(output_image_frame[:, 0]) - recenter_x) output_height = int(np.max(output_image_frame[:, 1]) - recenter_y) return (output_height, output_width), (recenter_x, recenter_y) def _recenter_bounding_boxes_after_expand(self, bounding_boxes, *, recenter_xy): x, y = recenter_xy if bounding_boxes.format is tv_tensors.BoundingBoxFormat.XYXY: translate = [x, y, x, y] else: translate = [x, y, 0.0, 0.0] return tv_tensors.wrap( (bounding_boxes.to(torch.float64) - torch.tensor(translate)).to(bounding_boxes.dtype), like=bounding_boxes ) def _reference_rotate_bounding_boxes(self, bounding_boxes, *, angle, expand, center): if center is None: center = [s * 0.5 for s in bounding_boxes.canvas_size[::-1]] cx, cy = center a = np.cos(angle * np.pi / 180.0) b = np.sin(angle * np.pi / 180.0) affine_matrix = np.array( [ [a, b, cx - cx * a - b * cy], [-b, a, cy + cx * b - a * cy], ], ) new_canvas_size, recenter_xy = self._compute_output_canvas_size( expand=expand, canvas_size=bounding_boxes.canvas_size, affine_matrix=affine_matrix ) output = reference_affine_bounding_boxes_helper( bounding_boxes, affine_matrix=affine_matrix, new_canvas_size=new_canvas_size, clamp=False, ) return F.clamp_bounding_boxes(self._recenter_bounding_boxes_after_expand(output, recenter_xy=recenter_xy)).to( bounding_boxes ) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) @pytest.mark.parametrize("angle", _CORRECTNESS_AFFINE_KWARGS["angle"]) @pytest.mark.parametrize("expand", [False, True]) @pytest.mark.parametrize("center", _CORRECTNESS_AFFINE_KWARGS["center"]) def test_functional_bounding_boxes_correctness(self, format, angle, expand, center): bounding_boxes = make_bounding_boxes(format=format) actual = F.rotate(bounding_boxes, angle=angle, expand=expand, center=center) expected = self._reference_rotate_bounding_boxes(bounding_boxes, angle=angle, expand=expand, center=center) torch.testing.assert_close(actual, expected) torch.testing.assert_close(F.get_size(actual), F.get_size(expected), atol=2 if expand else 0, rtol=0) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) @pytest.mark.parametrize("expand", [False, True]) @pytest.mark.parametrize("center", _CORRECTNESS_AFFINE_KWARGS["center"]) @pytest.mark.parametrize("seed", list(range(5))) def test_transform_bounding_boxes_correctness(self, format, expand, center, seed): bounding_boxes = make_bounding_boxes(format=format) transform = transforms.RandomRotation(**self._CORRECTNESS_TRANSFORM_AFFINE_RANGES, expand=expand, center=center) torch.manual_seed(seed) params = transform._get_params([bounding_boxes]) torch.manual_seed(seed) actual = transform(bounding_boxes) expected = self._reference_rotate_bounding_boxes(bounding_boxes, **params, expand=expand, center=center) torch.testing.assert_close(actual, expected) torch.testing.assert_close(F.get_size(actual), F.get_size(expected), atol=2 if expand else 0, rtol=0) @pytest.mark.parametrize("degrees", _EXHAUSTIVE_TYPE_TRANSFORM_AFFINE_RANGES["degrees"]) @pytest.mark.parametrize("seed", list(range(10))) def test_transform_get_params_bounds(self, degrees, seed): transform = transforms.RandomRotation(degrees=degrees) torch.manual_seed(seed) params = transform._get_params([]) if isinstance(degrees, (int, float)): assert -degrees <= params["angle"] <= degrees else: assert degrees[0] <= params["angle"] <= degrees[1] @pytest.mark.parametrize("param", ["degrees", "center"]) @pytest.mark.parametrize("value", [0, [0], [0, 0, 0]]) def test_transform_sequence_len_errors(self, param, value): if param == "degrees" and not isinstance(value, list): return kwargs = {param: value} if param != "degrees": kwargs["degrees"] = 0 with pytest.raises( ValueError if isinstance(value, list) else TypeError, match=f"{param} should be a sequence of length 2" ): transforms.RandomRotation(**kwargs) def test_transform_negative_degrees_error(self): with pytest.raises(ValueError, match="If degrees is a single number, it must be positive"): transforms.RandomAffine(degrees=-1) def test_transform_unknown_fill_error(self): with pytest.raises(TypeError, match="Got inappropriate fill arg"): transforms.RandomAffine(degrees=0, fill="fill") @pytest.mark.parametrize("size", [(11, 17), (16, 16)]) @pytest.mark.parametrize("angle", [0, 90, 180, 270]) @pytest.mark.parametrize("expand", [False, True]) def test_functional_image_fast_path_correctness(self, size, angle, expand): image = make_image(size, dtype=torch.uint8, device="cpu") actual = F.rotate(image, angle=angle, expand=expand) expected = F.to_image(F.rotate(F.to_pil_image(image), angle=angle, expand=expand)) torch.testing.assert_close(actual, expected) class TestContainerTransforms: class BuiltinTransform(transforms.Transform): def _transform(self, inpt, params): return inpt class PackedInputTransform(nn.Module): def forward(self, sample): assert len(sample) == 2 return sample class UnpackedInputTransform(nn.Module): def forward(self, image, label): return image, label @pytest.mark.parametrize( "transform_cls", [transforms.Compose, functools.partial(transforms.RandomApply, p=1), transforms.RandomOrder] ) @pytest.mark.parametrize( "wrapped_transform_clss", [ [BuiltinTransform], [PackedInputTransform], [UnpackedInputTransform], [BuiltinTransform, BuiltinTransform], [PackedInputTransform, PackedInputTransform], [UnpackedInputTransform, UnpackedInputTransform], [BuiltinTransform, PackedInputTransform, BuiltinTransform], [BuiltinTransform, UnpackedInputTransform, BuiltinTransform], [PackedInputTransform, BuiltinTransform, PackedInputTransform], [UnpackedInputTransform, BuiltinTransform, UnpackedInputTransform], ], ) @pytest.mark.parametrize("unpack", [True, False]) def test_packed_unpacked(self, transform_cls, wrapped_transform_clss, unpack): needs_packed_inputs = any(issubclass(cls, self.PackedInputTransform) for cls in wrapped_transform_clss) needs_unpacked_inputs = any(issubclass(cls, self.UnpackedInputTransform) for cls in wrapped_transform_clss) assert not (needs_packed_inputs and needs_unpacked_inputs) transform = transform_cls([cls() for cls in wrapped_transform_clss]) image = make_image() label = 3 packed_input = (image, label) def call_transform(): if unpack: return transform(*packed_input) else: return transform(packed_input) if needs_unpacked_inputs and not unpack: with pytest.raises(TypeError, match="missing 1 required positional argument"): call_transform() elif needs_packed_inputs and unpack: with pytest.raises(TypeError, match="takes 2 positional arguments but 3 were given"): call_transform() else: output = call_transform() assert isinstance(output, tuple) and len(output) == 2 assert output[0] is image assert output[1] is label def test_compose(self): transform = transforms.Compose( [ transforms.RandomHorizontalFlip(p=1), transforms.RandomVerticalFlip(p=1), ] ) input = make_image() actual = check_transform(transform, input) expected = F.vertical_flip(F.horizontal_flip(input)) assert_equal(actual, expected) @pytest.mark.parametrize("p", [0.0, 1.0]) @pytest.mark.parametrize("sequence_type", [list, nn.ModuleList]) def test_random_apply(self, p, sequence_type): transform = transforms.RandomApply( sequence_type( [ transforms.RandomHorizontalFlip(p=1), transforms.RandomVerticalFlip(p=1), ] ), p=p, ) # This needs to be a pure tensor (or a PIL image), because otherwise check_transforms skips the v1 compatibility # check input = make_image_tensor() output = check_transform(transform, input, check_v1_compatibility=issubclass(sequence_type, nn.ModuleList)) if p == 1: assert_equal(output, F.vertical_flip(F.horizontal_flip(input))) else: assert output is input @pytest.mark.parametrize("p", [(0, 1), (1, 0)]) def test_random_choice(self, p): transform = transforms.RandomChoice( [ transforms.RandomHorizontalFlip(p=1), transforms.RandomVerticalFlip(p=1), ], p=p, ) input = make_image() output = check_transform(transform, input) p_horz, p_vert = p if p_horz: assert_equal(output, F.horizontal_flip(input)) else: assert_equal(output, F.vertical_flip(input)) def test_random_order(self): transform = transforms.Compose( [ transforms.RandomHorizontalFlip(p=1), transforms.RandomVerticalFlip(p=1), ] ) input = make_image() actual = check_transform(transform, input) # We can't really check whether the transforms are actually applied in random order. However, horizontal and # vertical flip are commutative. Meaning, even under the assumption that the transform applies them in random # order, we can use a fixed order to compute the expected value. expected = F.vertical_flip(F.horizontal_flip(input)) assert_equal(actual, expected) def test_errors(self): for cls in [transforms.Compose, transforms.RandomChoice, transforms.RandomOrder]: with pytest.raises(TypeError, match="Argument transforms should be a sequence of callables"): cls(lambda x: x) with pytest.raises(ValueError, match="at least one transform"): transforms.Compose([]) for p in [-1, 2]: with pytest.raises(ValueError, match=re.escape("value in the interval [0.0, 1.0]")): transforms.RandomApply([lambda x: x], p=p) for transforms_, p in [([lambda x: x], []), ([], [1.0])]: with pytest.raises(ValueError, match="Length of p doesn't match the number of transforms"): transforms.RandomChoice(transforms_, p=p) class TestToDtype: @pytest.mark.parametrize( ("kernel", "make_input"), [ (F.to_dtype_image, make_image_tensor), (F.to_dtype_image, make_image), (F.to_dtype_video, make_video), ], ) @pytest.mark.parametrize("input_dtype", [torch.float32, torch.float64, torch.uint8]) @pytest.mark.parametrize("output_dtype", [torch.float32, torch.float64, torch.uint8]) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("scale", (True, False)) def test_kernel(self, kernel, make_input, input_dtype, output_dtype, device, scale): check_kernel( kernel, make_input(dtype=input_dtype, device=device), dtype=output_dtype, scale=scale, ) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image, make_video]) @pytest.mark.parametrize("input_dtype", [torch.float32, torch.float64, torch.uint8]) @pytest.mark.parametrize("output_dtype", [torch.float32, torch.float64, torch.uint8]) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("scale", (True, False)) def test_functional(self, make_input, input_dtype, output_dtype, device, scale): check_functional( F.to_dtype, make_input(dtype=input_dtype, device=device), dtype=output_dtype, scale=scale, ) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) @pytest.mark.parametrize("input_dtype", [torch.float32, torch.float64, torch.uint8]) @pytest.mark.parametrize("output_dtype", [torch.float32, torch.float64, torch.uint8]) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("scale", (True, False)) @pytest.mark.parametrize("as_dict", (True, False)) def test_transform(self, make_input, input_dtype, output_dtype, device, scale, as_dict): input = make_input(dtype=input_dtype, device=device) if as_dict: output_dtype = {type(input): output_dtype} check_transform(transforms.ToDtype(dtype=output_dtype, scale=scale), input, check_sample_input=not as_dict) def reference_convert_dtype_image_tensor(self, image, dtype=torch.float, scale=False): input_dtype = image.dtype output_dtype = dtype if not scale: return image.to(dtype) if output_dtype == input_dtype: return image def fn(value): if input_dtype.is_floating_point: if output_dtype.is_floating_point: return value else: return round(decimal.Decimal(value) * torch.iinfo(output_dtype).max) else: input_max_value = torch.iinfo(input_dtype).max if output_dtype.is_floating_point: return float(decimal.Decimal(value) / input_max_value) else: output_max_value = torch.iinfo(output_dtype).max if input_max_value > output_max_value: factor = (input_max_value + 1) // (output_max_value + 1) return value / factor else: factor = (output_max_value + 1) // (input_max_value + 1) return value * factor return torch.tensor(tree_map(fn, image.tolist()), dtype=dtype, device=image.device) @pytest.mark.parametrize("input_dtype", [torch.float32, torch.float64, torch.uint8]) @pytest.mark.parametrize("output_dtype", [torch.float32, torch.float64, torch.uint8]) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("scale", (True, False)) def test_image_correctness(self, input_dtype, output_dtype, device, scale): if input_dtype.is_floating_point and output_dtype == torch.int64: pytest.xfail("float to int64 conversion is not supported") input = make_image(dtype=input_dtype, device=device) out = F.to_dtype(input, dtype=output_dtype, scale=scale) expected = self.reference_convert_dtype_image_tensor(input, dtype=output_dtype, scale=scale) if input_dtype.is_floating_point and not output_dtype.is_floating_point and scale: torch.testing.assert_close(out, expected, atol=1, rtol=0) else: torch.testing.assert_close(out, expected) def was_scaled(self, inpt): # this assumes the target dtype is float return inpt.max() <= 1 def make_inpt_with_bbox_and_mask(self, make_input): H, W = 10, 10 inpt_dtype = torch.uint8 bbox_dtype = torch.float32 mask_dtype = torch.bool sample = { "inpt": make_input(size=(H, W), dtype=inpt_dtype), "bbox": make_bounding_boxes(canvas_size=(H, W), dtype=bbox_dtype), "mask": make_detection_masks(size=(H, W), dtype=mask_dtype), } return sample, inpt_dtype, bbox_dtype, mask_dtype @pytest.mark.parametrize("make_input", (make_image_tensor, make_image, make_video)) @pytest.mark.parametrize("scale", (True, False)) def test_dtype_not_a_dict(self, make_input, scale): # assert only inpt gets transformed when dtype isn't a dict sample, inpt_dtype, bbox_dtype, mask_dtype = self.make_inpt_with_bbox_and_mask(make_input) out = transforms.ToDtype(dtype=torch.float32, scale=scale)(sample) assert out["inpt"].dtype != inpt_dtype assert out["inpt"].dtype == torch.float32 if scale: assert self.was_scaled(out["inpt"]) else: assert not self.was_scaled(out["inpt"]) assert out["bbox"].dtype == bbox_dtype assert out["mask"].dtype == mask_dtype @pytest.mark.parametrize("make_input", (make_image_tensor, make_image, make_video)) def test_others_catch_all_and_none(self, make_input): # make sure "others" works as a catch-all and that None means no conversion sample, inpt_dtype, bbox_dtype, mask_dtype = self.make_inpt_with_bbox_and_mask(make_input) out = transforms.ToDtype(dtype={tv_tensors.Mask: torch.int64, "others": None})(sample) assert out["inpt"].dtype == inpt_dtype assert out["bbox"].dtype == bbox_dtype assert out["mask"].dtype != mask_dtype assert out["mask"].dtype == torch.int64 @pytest.mark.parametrize("make_input", (make_image_tensor, make_image, make_video)) def test_typical_use_case(self, make_input): # Typical use-case: want to convert dtype and scale for inpt and just dtype for masks. # This just makes sure we now have a decent API for this sample, inpt_dtype, bbox_dtype, mask_dtype = self.make_inpt_with_bbox_and_mask(make_input) out = transforms.ToDtype( dtype={type(sample["inpt"]): torch.float32, tv_tensors.Mask: torch.int64, "others": None}, scale=True )(sample) assert out["inpt"].dtype != inpt_dtype assert out["inpt"].dtype == torch.float32 assert self.was_scaled(out["inpt"]) assert out["bbox"].dtype == bbox_dtype assert out["mask"].dtype != mask_dtype assert out["mask"].dtype == torch.int64 @pytest.mark.parametrize("make_input", (make_image_tensor, make_image, make_video)) def test_errors_warnings(self, make_input): sample, inpt_dtype, bbox_dtype, mask_dtype = self.make_inpt_with_bbox_and_mask(make_input) with pytest.raises(ValueError, match="No dtype was specified for"): out = transforms.ToDtype(dtype={tv_tensors.Mask: torch.float32})(sample) with pytest.warns(UserWarning, match=re.escape("plain `torch.Tensor` will *not* be transformed")): transforms.ToDtype(dtype={torch.Tensor: torch.float32, tv_tensors.Image: torch.float32}) with pytest.warns(UserWarning, match="no scaling will be done"): out = transforms.ToDtype(dtype={"others": None}, scale=True)(sample) assert out["inpt"].dtype == inpt_dtype assert out["bbox"].dtype == bbox_dtype assert out["mask"].dtype == mask_dtype class TestAdjustBrightness: _CORRECTNESS_BRIGHTNESS_FACTORS = [0.5, 0.0, 1.0, 5.0] _DEFAULT_BRIGHTNESS_FACTOR = _CORRECTNESS_BRIGHTNESS_FACTORS[0] @pytest.mark.parametrize( ("kernel", "make_input"), [ (F.adjust_brightness_image, make_image), (F.adjust_brightness_video, make_video), ], ) @pytest.mark.parametrize("dtype", [torch.float32, torch.uint8]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel(self, kernel, make_input, dtype, device): check_kernel(kernel, make_input(dtype=dtype, device=device), brightness_factor=self._DEFAULT_BRIGHTNESS_FACTOR) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image_pil, make_image, make_video]) def test_functional(self, make_input): check_functional(F.adjust_brightness, make_input(), brightness_factor=self._DEFAULT_BRIGHTNESS_FACTOR) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.adjust_brightness_image, torch.Tensor), (F._color._adjust_brightness_image_pil, PIL.Image.Image), (F.adjust_brightness_image, tv_tensors.Image), (F.adjust_brightness_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.adjust_brightness, kernel=kernel, input_type=input_type) @pytest.mark.parametrize("brightness_factor", _CORRECTNESS_BRIGHTNESS_FACTORS) def test_image_correctness(self, brightness_factor): image = make_image(dtype=torch.uint8, device="cpu") actual = F.adjust_brightness(image, brightness_factor=brightness_factor) expected = F.to_image(F.adjust_brightness(F.to_pil_image(image), brightness_factor=brightness_factor)) torch.testing.assert_close(actual, expected) class TestCutMixMixUp: class DummyDataset: def __init__(self, size, num_classes, one_hot_labels): self.size = size self.num_classes = num_classes self.one_hot_labels = one_hot_labels assert size < num_classes def __getitem__(self, idx): img = torch.rand(3, 100, 100) label = idx # This ensures all labels in a batch are unique and makes testing easier if self.one_hot_labels: label = torch.nn.functional.one_hot(torch.tensor(label), num_classes=self.num_classes) return img, label def __len__(self): return self.size @pytest.mark.parametrize("T", [transforms.CutMix, transforms.MixUp]) @pytest.mark.parametrize("one_hot_labels", (True, False)) def test_supported_input_structure(self, T, one_hot_labels): batch_size = 32 num_classes = 100 dataset = self.DummyDataset(size=batch_size, num_classes=num_classes, one_hot_labels=one_hot_labels) cutmix_mixup = T(num_classes=num_classes) dl = DataLoader(dataset, batch_size=batch_size) # Input sanity checks img, target = next(iter(dl)) input_img_size = img.shape[-3:] assert isinstance(img, torch.Tensor) and isinstance(target, torch.Tensor) assert target.shape == (batch_size, num_classes) if one_hot_labels else (batch_size,) def check_output(img, target): assert img.shape == (batch_size, *input_img_size) assert target.shape == (batch_size, num_classes) torch.testing.assert_close(target.sum(axis=-1), torch.ones(batch_size)) num_non_zero_labels = (target != 0).sum(axis=-1) assert (num_non_zero_labels == 2).all() # After Dataloader, as unpacked input img, target = next(iter(dl)) assert target.shape == (batch_size, num_classes) if one_hot_labels else (batch_size,) img, target = cutmix_mixup(img, target) check_output(img, target) # After Dataloader, as packed input packed_from_dl = next(iter(dl)) assert isinstance(packed_from_dl, list) img, target = cutmix_mixup(packed_from_dl) check_output(img, target) # As collation function. We expect default_collate to be used by users. def collate_fn_1(batch): return cutmix_mixup(default_collate(batch)) def collate_fn_2(batch): return cutmix_mixup(*default_collate(batch)) for collate_fn in (collate_fn_1, collate_fn_2): dl = DataLoader(dataset, batch_size=batch_size, collate_fn=collate_fn) img, target = next(iter(dl)) check_output(img, target) @needs_cuda @pytest.mark.parametrize("T", [transforms.CutMix, transforms.MixUp]) def test_cpu_vs_gpu(self, T): num_classes = 10 batch_size = 3 H, W = 12, 12 imgs = torch.rand(batch_size, 3, H, W) labels = torch.randint(0, num_classes, (batch_size,)) cutmix_mixup = T(alpha=0.5, num_classes=num_classes) _check_kernel_cuda_vs_cpu(cutmix_mixup, imgs, labels, rtol=None, atol=None) @pytest.mark.parametrize("T", [transforms.CutMix, transforms.MixUp]) def test_error(self, T): num_classes = 10 batch_size = 9 imgs = torch.rand(batch_size, 3, 12, 12) cutmix_mixup = T(alpha=0.5, num_classes=num_classes) for input_with_bad_type in ( F.to_pil_image(imgs[0]), tv_tensors.Mask(torch.rand(12, 12)), tv_tensors.BoundingBoxes(torch.rand(2, 4), format="XYXY", canvas_size=12), ): with pytest.raises(ValueError, match="does not support PIL images, "): cutmix_mixup(input_with_bad_type) with pytest.raises(ValueError, match="Could not infer where the labels are"): cutmix_mixup({"img": imgs, "Nothing_else": 3}) with pytest.raises(ValueError, match="labels should be index based"): # Note: the error message isn't ideal, but that's because the label heuristic found the img as the label # It's OK, it's an edge-case. The important thing is that this fails loudly instead of passing silently cutmix_mixup(imgs) with pytest.raises(ValueError, match="When using the default labels_getter"): cutmix_mixup(imgs, "not_a_tensor") with pytest.raises(ValueError, match="Expected a batched input with 4 dims"): cutmix_mixup(imgs[None, None], torch.randint(0, num_classes, size=(batch_size,))) with pytest.raises(ValueError, match="does not match the batch size of the labels"): cutmix_mixup(imgs, torch.randint(0, num_classes, size=(batch_size + 1,))) with pytest.raises(ValueError, match="When passing 2D labels"): wrong_num_classes = num_classes + 1 T(alpha=0.5, num_classes=num_classes)(imgs, torch.randint(0, 2, size=(batch_size, wrong_num_classes))) with pytest.raises(ValueError, match="but got a tensor of shape"): cutmix_mixup(imgs, torch.randint(0, 2, size=(2, 3, 4))) with pytest.raises(ValueError, match="num_classes must be passed"): T(alpha=0.5)(imgs, torch.randint(0, num_classes, size=(batch_size,))) @pytest.mark.parametrize("key", ("labels", "LABELS", "LaBeL", "SOME_WEIRD_KEY_THAT_HAS_LABeL_IN_IT")) @pytest.mark.parametrize("sample_type", (tuple, list, dict)) def test_labels_getter_default_heuristic(key, sample_type): labels = torch.arange(10) sample = {key: labels, "another_key": "whatever"} if sample_type is not dict: sample = sample_type((None, sample, "whatever_again")) assert transforms._utils._find_labels_default_heuristic(sample) is labels if key.lower() != "labels": # If "labels" is in the dict (case-insensitive), # it takes precedence over other keys which would otherwise be a match d = {key: "something_else", "labels": labels} assert transforms._utils._find_labels_default_heuristic(d) is labels class TestShapeGetters: @pytest.mark.parametrize( ("kernel", "make_input"), [ (F.get_dimensions_image, make_image_tensor), (F._meta._get_dimensions_image_pil, make_image_pil), (F.get_dimensions_image, make_image), (F.get_dimensions_video, make_video), ], ) def test_get_dimensions(self, kernel, make_input): size = (10, 10) color_space, num_channels = "RGB", 3 input = make_input(size, color_space=color_space) assert kernel(input) == F.get_dimensions(input) == [num_channels, *size] @pytest.mark.parametrize( ("kernel", "make_input"), [ (F.get_num_channels_image, make_image_tensor), (F._meta._get_num_channels_image_pil, make_image_pil), (F.get_num_channels_image, make_image), (F.get_num_channels_video, make_video), ], ) def test_get_num_channels(self, kernel, make_input): color_space, num_channels = "RGB", 3 input = make_input(color_space=color_space) assert kernel(input) == F.get_num_channels(input) == num_channels @pytest.mark.parametrize( ("kernel", "make_input"), [ (F.get_size_image, make_image_tensor), (F._meta._get_size_image_pil, make_image_pil), (F.get_size_image, make_image), (F.get_size_bounding_boxes, make_bounding_boxes), (F.get_size_mask, make_detection_masks), (F.get_size_mask, make_segmentation_mask), (F.get_size_video, make_video), ], ) def test_get_size(self, kernel, make_input): size = (10, 10) input = make_input(size) assert kernel(input) == F.get_size(input) == list(size) @pytest.mark.parametrize( ("kernel", "make_input"), [ (F.get_num_frames_video, make_video_tensor), (F.get_num_frames_video, make_video), ], ) def test_get_num_frames(self, kernel, make_input): num_frames = 4 input = make_input(num_frames=num_frames) assert kernel(input) == F.get_num_frames(input) == num_frames @pytest.mark.parametrize( ("functional", "make_input"), [ (F.get_dimensions, make_bounding_boxes), (F.get_dimensions, make_detection_masks), (F.get_dimensions, make_segmentation_mask), (F.get_num_channels, make_bounding_boxes), (F.get_num_channels, make_detection_masks), (F.get_num_channels, make_segmentation_mask), (F.get_num_frames, make_image_pil), (F.get_num_frames, make_image), (F.get_num_frames, make_bounding_boxes), (F.get_num_frames, make_detection_masks), (F.get_num_frames, make_segmentation_mask), ], ) def test_unsupported_types(self, functional, make_input): input = make_input() with pytest.raises(TypeError, match=re.escape(str(type(input)))): functional(input) class TestRegisterKernel: @pytest.mark.parametrize("functional", (F.resize, "resize")) def test_register_kernel(self, functional): class CustomTVTensor(tv_tensors.TVTensor): pass kernel_was_called = False @F.register_kernel(functional, CustomTVTensor) def new_resize(dp, *args, **kwargs): nonlocal kernel_was_called kernel_was_called = True return dp t = transforms.Resize(size=(224, 224), antialias=True) my_dp = CustomTVTensor(torch.rand(3, 10, 10)) out = t(my_dp) assert out is my_dp assert kernel_was_called # Sanity check to make sure we didn't override the kernel of other types t(torch.rand(3, 10, 10)).shape == (3, 224, 224) t(tv_tensors.Image(torch.rand(3, 10, 10))).shape == (3, 224, 224) def test_errors(self): with pytest.raises(ValueError, match="Could not find functional with name"): F.register_kernel("bad_name", tv_tensors.Image) with pytest.raises(ValueError, match="Kernels can only be registered on functionals"): F.register_kernel(tv_tensors.Image, F.resize) with pytest.raises(ValueError, match="Kernels can only be registered for subclasses"): F.register_kernel(F.resize, object) with pytest.raises(ValueError, match="cannot be registered for the builtin tv_tensor classes"): F.register_kernel(F.resize, tv_tensors.Image)(F.resize_image) class CustomTVTensor(tv_tensors.TVTensor): pass def resize_custom_tv_tensor(): pass F.register_kernel(F.resize, CustomTVTensor)(resize_custom_tv_tensor) with pytest.raises(ValueError, match="already has a kernel registered for type"): F.register_kernel(F.resize, CustomTVTensor)(resize_custom_tv_tensor) class TestGetKernel: # We are using F.resize as functional and the kernels below as proxy. Any other functional / kernels combination # would also be fine KERNELS = { torch.Tensor: F.resize_image, PIL.Image.Image: F._geometry._resize_image_pil, tv_tensors.Image: F.resize_image, tv_tensors.BoundingBoxes: F.resize_bounding_boxes, tv_tensors.Mask: F.resize_mask, tv_tensors.Video: F.resize_video, } @pytest.mark.parametrize("input_type", [str, int, object]) def test_unsupported_types(self, input_type): with pytest.raises(TypeError, match="supports inputs of type"): _get_kernel(F.resize, input_type) def test_exact_match(self): # We cannot use F.resize together with self.KERNELS mapping here directly here, since this is only the # ideal wrapping. Practically, we have an intermediate wrapper layer. Thus, we create a new resize functional # here, register the kernels without wrapper, and check the exact matching afterwards. def resize_with_pure_kernels(): pass for input_type, kernel in self.KERNELS.items(): _register_kernel_internal(resize_with_pure_kernels, input_type, tv_tensor_wrapper=False)(kernel) assert _get_kernel(resize_with_pure_kernels, input_type) is kernel def test_builtin_tv_tensor_subclass(self): # We cannot use F.resize together with self.KERNELS mapping here directly here, since this is only the # ideal wrapping. Practically, we have an intermediate wrapper layer. Thus, we create a new resize functional # here, register the kernels without wrapper, and check if subclasses of our builtin tv_tensors get dispatched # to the kernel of the corresponding superclass def resize_with_pure_kernels(): pass class MyImage(tv_tensors.Image): pass class MyBoundingBoxes(tv_tensors.BoundingBoxes): pass class MyMask(tv_tensors.Mask): pass class MyVideo(tv_tensors.Video): pass for custom_tv_tensor_subclass in [ MyImage, MyBoundingBoxes, MyMask, MyVideo, ]: builtin_tv_tensor_class = custom_tv_tensor_subclass.__mro__[1] builtin_tv_tensor_kernel = self.KERNELS[builtin_tv_tensor_class] _register_kernel_internal(resize_with_pure_kernels, builtin_tv_tensor_class, tv_tensor_wrapper=False)( builtin_tv_tensor_kernel ) assert _get_kernel(resize_with_pure_kernels, custom_tv_tensor_subclass) is builtin_tv_tensor_kernel def test_tv_tensor_subclass(self): class MyTVTensor(tv_tensors.TVTensor): pass with pytest.raises(TypeError, match="supports inputs of type"): _get_kernel(F.resize, MyTVTensor) def resize_my_tv_tensor(): pass _register_kernel_internal(F.resize, MyTVTensor, tv_tensor_wrapper=False)(resize_my_tv_tensor) assert _get_kernel(F.resize, MyTVTensor) is resize_my_tv_tensor def test_pil_image_subclass(self): opened_image = PIL.Image.open(Path(__file__).parent / "assets" / "encode_jpeg" / "grace_hopper_517x606.jpg") loaded_image = opened_image.convert("RGB") # check the assumptions assert isinstance(opened_image, PIL.Image.Image) assert type(opened_image) is not PIL.Image.Image assert type(loaded_image) is PIL.Image.Image size = [17, 11] for image in [opened_image, loaded_image]: kernel = _get_kernel(F.resize, type(image)) output = kernel(image, size=size) assert F.get_size(output) == size class TestPermuteChannels: _DEFAULT_PERMUTATION = [2, 0, 1] @pytest.mark.parametrize( ("kernel", "make_input"), [ (F.permute_channels_image, make_image_tensor), # FIXME # check_kernel does not support PIL kernel, but it should (F.permute_channels_image, make_image), (F.permute_channels_video, make_video), ], ) @pytest.mark.parametrize("dtype", [torch.float32, torch.uint8]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel(self, kernel, make_input, dtype, device): check_kernel(kernel, make_input(dtype=dtype, device=device), permutation=self._DEFAULT_PERMUTATION) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image_pil, make_image, make_video]) def test_functional(self, make_input): check_functional(F.permute_channels, make_input(), permutation=self._DEFAULT_PERMUTATION) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.permute_channels_image, torch.Tensor), (F._color._permute_channels_image_pil, PIL.Image.Image), (F.permute_channels_image, tv_tensors.Image), (F.permute_channels_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.permute_channels, kernel=kernel, input_type=input_type) def reference_image_correctness(self, image, permutation): channel_images = image.split(1, dim=-3) permuted_channel_images = [channel_images[channel_idx] for channel_idx in permutation] return tv_tensors.Image(torch.concat(permuted_channel_images, dim=-3)) @pytest.mark.parametrize("permutation", [[2, 0, 1], [1, 2, 0], [2, 0, 1], [0, 1, 2]]) @pytest.mark.parametrize("batch_dims", [(), (2,), (2, 1)]) def test_image_correctness(self, permutation, batch_dims): image = make_image(batch_dims=batch_dims) actual = F.permute_channels(image, permutation=permutation) expected = self.reference_image_correctness(image, permutation=permutation) torch.testing.assert_close(actual, expected) class TestElastic: def _make_displacement(self, inpt): return torch.rand( 1, *F.get_size(inpt), 2, dtype=torch.float32, device=inpt.device if isinstance(inpt, torch.Tensor) else "cpu", ) @param_value_parametrization( interpolation=[transforms.InterpolationMode.NEAREST, transforms.InterpolationMode.BILINEAR], fill=EXHAUSTIVE_TYPE_FILLS, ) @pytest.mark.parametrize("dtype", [torch.float32, torch.uint8, torch.float16]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, param, value, dtype, device): image = make_image_tensor(dtype=dtype, device=device) check_kernel( F.elastic_image, image, displacement=self._make_displacement(image), **{param: value}, check_scripted_vs_eager=not (param == "fill" and isinstance(value, (int, float))), check_cuda_vs_cpu=dtype is not torch.float16, ) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) @pytest.mark.parametrize("dtype", [torch.float32, torch.int64]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_bounding_boxes(self, format, dtype, device): bounding_boxes = make_bounding_boxes(format=format, dtype=dtype, device=device) check_kernel( F.elastic_bounding_boxes, bounding_boxes, format=bounding_boxes.format, canvas_size=bounding_boxes.canvas_size, displacement=self._make_displacement(bounding_boxes), ) @pytest.mark.parametrize("make_mask", [make_segmentation_mask, make_detection_masks]) def test_kernel_mask(self, make_mask): mask = make_mask() check_kernel(F.elastic_mask, mask, displacement=self._make_displacement(mask)) def test_kernel_video(self): video = make_video() check_kernel(F.elastic_video, video, displacement=self._make_displacement(video)) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) def test_functional(self, make_input): input = make_input() check_functional(F.elastic, input, displacement=self._make_displacement(input)) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.elastic_image, torch.Tensor), (F._geometry._elastic_image_pil, PIL.Image.Image), (F.elastic_image, tv_tensors.Image), (F.elastic_bounding_boxes, tv_tensors.BoundingBoxes), (F.elastic_mask, tv_tensors.Mask), (F.elastic_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.elastic, kernel=kernel, input_type=input_type) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) def test_displacement_error(self, make_input): input = make_input() with pytest.raises(TypeError, match="displacement should be a Tensor"): F.elastic(input, displacement=None) with pytest.raises(ValueError, match="displacement shape should be"): F.elastic(input, displacement=torch.rand(F.get_size(input))) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) # ElasticTransform needs larger images to avoid the needed internal padding being larger than the actual image @pytest.mark.parametrize("size", [(163, 163), (72, 333), (313, 95)]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_transform(self, make_input, size, device): # We have to skip that test on M1 because it's flaky: Mismatched elements: 35 / 89205 (0.0%) # See https://github.com/pytorch/vision/issues/8154 # All other platforms are fine, so the differences do not come from something we own in torchvision check_v1_compatibility = False if sys.platform == "darwin" else dict(rtol=0, atol=1) check_transform( transforms.ElasticTransform(), make_input(size, device=device), check_v1_compatibility=check_v1_compatibility, ) class TestToPureTensor: def test_correctness(self): input = { "img": make_image(), "img_tensor": make_image_tensor(), "img_pil": make_image_pil(), "mask": make_detection_masks(), "video": make_video(), "bbox": make_bounding_boxes(), "str": "str", } out = transforms.ToPureTensor()(input) for input_value, out_value in zip(input.values(), out.values()): if isinstance(input_value, tv_tensors.TVTensor): assert isinstance(out_value, torch.Tensor) and not isinstance(out_value, tv_tensors.TVTensor) else: assert isinstance(out_value, type(input_value)) class TestCrop: INPUT_SIZE = (21, 11) CORRECTNESS_CROP_KWARGS = [ # center dict(top=5, left=5, height=10, width=5), # larger than input, i.e. pad dict(top=-5, left=-5, height=30, width=20), # sides: left, right, top, bottom dict(top=-5, left=-5, height=30, width=10), dict(top=-5, left=5, height=30, width=10), dict(top=-5, left=-5, height=20, width=20), dict(top=5, left=-5, height=20, width=20), # corners: top-left, top-right, bottom-left, bottom-right dict(top=-5, left=-5, height=20, width=10), dict(top=-5, left=5, height=20, width=10), dict(top=5, left=-5, height=20, width=10), dict(top=5, left=5, height=20, width=10), ] MINIMAL_CROP_KWARGS = CORRECTNESS_CROP_KWARGS[0] @pytest.mark.parametrize("kwargs", CORRECTNESS_CROP_KWARGS) @pytest.mark.parametrize("dtype", [torch.uint8, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, kwargs, dtype, device): check_kernel(F.crop_image, make_image(self.INPUT_SIZE, dtype=dtype, device=device), **kwargs) @pytest.mark.parametrize("kwargs", CORRECTNESS_CROP_KWARGS) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) @pytest.mark.parametrize("dtype", [torch.float32, torch.int64]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_bounding_box(self, kwargs, format, dtype, device): bounding_boxes = make_bounding_boxes(self.INPUT_SIZE, format=format, dtype=dtype, device=device) check_kernel(F.crop_bounding_boxes, bounding_boxes, format=format, **kwargs) @pytest.mark.parametrize("make_mask", [make_segmentation_mask, make_detection_masks]) def test_kernel_mask(self, make_mask): check_kernel(F.crop_mask, make_mask(self.INPUT_SIZE), **self.MINIMAL_CROP_KWARGS) def test_kernel_video(self): check_kernel(F.crop_video, make_video(self.INPUT_SIZE), **self.MINIMAL_CROP_KWARGS) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) def test_functional(self, make_input): check_functional(F.crop, make_input(self.INPUT_SIZE), **self.MINIMAL_CROP_KWARGS) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.crop_image, torch.Tensor), (F._geometry._crop_image_pil, PIL.Image.Image), (F.crop_image, tv_tensors.Image), (F.crop_bounding_boxes, tv_tensors.BoundingBoxes), (F.crop_mask, tv_tensors.Mask), (F.crop_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.crop, kernel=kernel, input_type=input_type) @pytest.mark.parametrize("kwargs", CORRECTNESS_CROP_KWARGS) def test_functional_image_correctness(self, kwargs): image = make_image(self.INPUT_SIZE, dtype=torch.uint8, device="cpu") actual = F.crop(image, **kwargs) expected = F.to_image(F.crop(F.to_pil_image(image), **kwargs)) assert_equal(actual, expected) @param_value_parametrization( size=[(10, 5), (25, 15), (25, 5), (10, 15)], fill=EXHAUSTIVE_TYPE_FILLS, ) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) def test_transform(self, param, value, make_input): input = make_input(self.INPUT_SIZE) check_sample_input = True if param == "fill": if isinstance(value, (tuple, list)): if isinstance(input, tv_tensors.Mask): pytest.skip("F.pad_mask doesn't support non-scalar fill.") else: check_sample_input = False kwargs = dict( # 1. size is required # 2. the fill parameter only has an affect if we need padding size=[s + 4 for s in self.INPUT_SIZE], fill=adapt_fill(value, dtype=input.dtype if isinstance(input, torch.Tensor) else torch.uint8), ) else: kwargs = {param: value} check_transform( transforms.RandomCrop(**kwargs, pad_if_needed=True), input, check_v1_compatibility=param != "fill" or isinstance(value, (int, float)), check_sample_input=check_sample_input, ) @pytest.mark.parametrize("padding", [1, (1, 1), (1, 1, 1, 1)]) def test_transform_padding(self, padding): inpt = make_image(self.INPUT_SIZE) output_size = [s + 2 for s in F.get_size(inpt)] transform = transforms.RandomCrop(output_size, padding=padding) output = transform(inpt) assert F.get_size(output) == output_size @pytest.mark.parametrize("padding", [None, 1, (1, 1), (1, 1, 1, 1)]) def test_transform_insufficient_padding(self, padding): inpt = make_image(self.INPUT_SIZE) output_size = [s + 3 for s in F.get_size(inpt)] transform = transforms.RandomCrop(output_size, padding=padding) with pytest.raises(ValueError, match="larger than (padded )?input image size"): transform(inpt) def test_transform_pad_if_needed(self): inpt = make_image(self.INPUT_SIZE) output_size = [s * 2 for s in F.get_size(inpt)] transform = transforms.RandomCrop(output_size, pad_if_needed=True) output = transform(inpt) assert F.get_size(output) == output_size @param_value_parametrization( size=[(10, 5), (25, 15), (25, 5), (10, 15)], fill=CORRECTNESS_FILLS, padding_mode=["constant", "edge", "reflect", "symmetric"], ) @pytest.mark.parametrize("seed", list(range(5))) def test_transform_image_correctness(self, param, value, seed): kwargs = {param: value} if param != "size": # 1. size is required # 2. the fill / padding_mode parameters only have an affect if we need padding kwargs["size"] = [s + 4 for s in self.INPUT_SIZE] if param == "fill": kwargs["fill"] = adapt_fill(kwargs["fill"], dtype=torch.uint8) transform = transforms.RandomCrop(pad_if_needed=True, **kwargs) image = make_image(self.INPUT_SIZE) with freeze_rng_state(): torch.manual_seed(seed) actual = transform(image) torch.manual_seed(seed) expected = F.to_image(transform(F.to_pil_image(image))) assert_equal(actual, expected) def _reference_crop_bounding_boxes(self, bounding_boxes, *, top, left, height, width): affine_matrix = np.array( [ [1, 0, -left], [0, 1, -top], ], ) return reference_affine_bounding_boxes_helper( bounding_boxes, affine_matrix=affine_matrix, new_canvas_size=(height, width) ) @pytest.mark.parametrize("kwargs", CORRECTNESS_CROP_KWARGS) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) @pytest.mark.parametrize("dtype", [torch.float32, torch.int64]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_functional_bounding_box_correctness(self, kwargs, format, dtype, device): bounding_boxes = make_bounding_boxes(self.INPUT_SIZE, format=format, dtype=dtype, device=device) actual = F.crop(bounding_boxes, **kwargs) expected = self._reference_crop_bounding_boxes(bounding_boxes, **kwargs) assert_equal(actual, expected, atol=1, rtol=0) assert_equal(F.get_size(actual), F.get_size(expected)) @pytest.mark.parametrize("output_size", [(17, 11), (11, 17), (11, 11)]) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) @pytest.mark.parametrize("dtype", [torch.float32, torch.int64]) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("seed", list(range(5))) def test_transform_bounding_boxes_correctness(self, output_size, format, dtype, device, seed): input_size = [s * 2 for s in output_size] bounding_boxes = make_bounding_boxes(input_size, format=format, dtype=dtype, device=device) transform = transforms.RandomCrop(output_size) with freeze_rng_state(): torch.manual_seed(seed) params = transform._get_params([bounding_boxes]) assert not params.pop("needs_pad") del params["padding"] assert params.pop("needs_crop") torch.manual_seed(seed) actual = transform(bounding_boxes) expected = self._reference_crop_bounding_boxes(bounding_boxes, **params) assert_equal(actual, expected) assert_equal(F.get_size(actual), F.get_size(expected)) def test_errors(self): with pytest.raises(ValueError, match="Please provide only two dimensions"): transforms.RandomCrop([10, 12, 14]) with pytest.raises(TypeError, match="Got inappropriate padding arg"): transforms.RandomCrop([10, 12], padding="abc") with pytest.raises(ValueError, match="Padding must be an int or a 1, 2, or 4"): transforms.RandomCrop([10, 12], padding=[-0.7, 0, 0.7]) with pytest.raises(TypeError, match="Got inappropriate fill arg"): transforms.RandomCrop([10, 12], padding=1, fill="abc") with pytest.raises(ValueError, match="Padding mode should be either"): transforms.RandomCrop([10, 12], padding=1, padding_mode="abc") class TestErase: INPUT_SIZE = (17, 11) FUNCTIONAL_KWARGS = dict( zip("ijhwv", [2, 2, 10, 8, torch.tensor(0.0, dtype=torch.float32, device="cpu").reshape(-1, 1, 1)]) ) @pytest.mark.parametrize("dtype", [torch.float32, torch.uint8]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, dtype, device): check_kernel(F.erase_image, make_image(self.INPUT_SIZE, dtype=dtype, device=device), **self.FUNCTIONAL_KWARGS) @pytest.mark.parametrize("dtype", [torch.float32, torch.uint8]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image_inplace(self, dtype, device): input = make_image(self.INPUT_SIZE, dtype=dtype, device=device) input_version = input._version output_out_of_place = F.erase_image(input, **self.FUNCTIONAL_KWARGS) assert output_out_of_place.data_ptr() != input.data_ptr() assert output_out_of_place is not input output_inplace = F.erase_image(input, **self.FUNCTIONAL_KWARGS, inplace=True) assert output_inplace.data_ptr() == input.data_ptr() assert output_inplace._version > input_version assert output_inplace is input assert_equal(output_inplace, output_out_of_place) def test_kernel_video(self): check_kernel(F.erase_video, make_video(self.INPUT_SIZE), **self.FUNCTIONAL_KWARGS) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_video], ) def test_functional(self, make_input): check_functional(F.erase, make_input(), **self.FUNCTIONAL_KWARGS) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.erase_image, torch.Tensor), (F._augment._erase_image_pil, PIL.Image.Image), (F.erase_image, tv_tensors.Image), (F.erase_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.erase, kernel=kernel, input_type=input_type) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_video], ) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_transform(self, make_input, device): input = make_input(device=device) with pytest.warns(UserWarning, match="currently passing through inputs of type"): check_transform( transforms.RandomErasing(p=1), input, check_v1_compatibility=not isinstance(input, PIL.Image.Image), ) def _reference_erase_image(self, image, *, i, j, h, w, v): mask = torch.zeros_like(image, dtype=torch.bool) mask[..., i : i + h, j : j + w] = True # The broadcasting and type casting logic is handled automagically in the kernel through indexing value = torch.broadcast_to(v, (*image.shape[:-2], h, w)).to(image) erased_image = torch.empty_like(image) erased_image[mask] = value.flatten() erased_image[~mask] = image[~mask] return erased_image @pytest.mark.parametrize("dtype", [torch.float32, torch.uint8]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_functional_image_correctness(self, dtype, device): image = make_image(dtype=dtype, device=device) actual = F.erase(image, **self.FUNCTIONAL_KWARGS) expected = self._reference_erase_image(image, **self.FUNCTIONAL_KWARGS) assert_equal(actual, expected) @param_value_parametrization( scale=[(0.1, 0.2), [0.0, 1.0]], ratio=[(0.3, 0.7), [0.1, 5.0]], value=[0, 0.5, (0, 1, 0), [-0.2, 0.0, 1.3], "random"], ) @pytest.mark.parametrize("dtype", [torch.float32, torch.uint8]) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("seed", list(range(5))) def test_transform_image_correctness(self, param, value, dtype, device, seed): transform = transforms.RandomErasing(**{param: value}, p=1) image = make_image(dtype=dtype, device=device) with freeze_rng_state(): torch.manual_seed(seed) # This emulates the random apply check that happens before _get_params is called torch.rand(1) params = transform._get_params([image]) torch.manual_seed(seed) actual = transform(image) expected = self._reference_erase_image(image, **params) assert_equal(actual, expected) def test_transform_errors(self): with pytest.raises(TypeError, match="Argument value should be either a number or str or a sequence"): transforms.RandomErasing(value={}) with pytest.raises(ValueError, match="If value is str, it should be 'random'"): transforms.RandomErasing(value="abc") with pytest.raises(TypeError, match="Scale should be a sequence"): transforms.RandomErasing(scale=123) with pytest.raises(TypeError, match="Ratio should be a sequence"): transforms.RandomErasing(ratio=123) with pytest.raises(ValueError, match="Scale should be between 0 and 1"): transforms.RandomErasing(scale=[-1, 2]) transform = transforms.RandomErasing(value=[1, 2, 3, 4]) with pytest.raises(ValueError, match="If value is a sequence, it should have either a single value"): transform._get_params([make_image()]) class TestGaussianBlur: @pytest.mark.parametrize("kernel_size", [1, 3, (3, 1), [3, 5]]) @pytest.mark.parametrize("sigma", [None, 1.0, 1, (0.5,), [0.3], (0.3, 0.7), [0.9, 0.2]]) def test_kernel_image(self, kernel_size, sigma): check_kernel( F.gaussian_blur_image, make_image(), kernel_size=kernel_size, sigma=sigma, check_scripted_vs_eager=not (isinstance(kernel_size, int) or isinstance(sigma, (float, int))), ) def test_kernel_image_errors(self): image = make_image_tensor() with pytest.raises(ValueError, match="kernel_size is a sequence its length should be 2"): F.gaussian_blur_image(image, kernel_size=[1, 2, 3]) for kernel_size in [2, -1]: with pytest.raises(ValueError, match="kernel_size should have odd and positive integers"): F.gaussian_blur_image(image, kernel_size=kernel_size) with pytest.raises(ValueError, match="sigma is a sequence, its length should be 2"): F.gaussian_blur_image(image, kernel_size=1, sigma=[1, 2, 3]) with pytest.raises(TypeError, match="sigma should be either float or sequence of floats"): F.gaussian_blur_image(image, kernel_size=1, sigma=object()) with pytest.raises(ValueError, match="sigma should have positive values"): F.gaussian_blur_image(image, kernel_size=1, sigma=-1) def test_kernel_video(self): check_kernel(F.gaussian_blur_video, make_video(), kernel_size=(3, 3)) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_video], ) def test_functional(self, make_input): check_functional(F.gaussian_blur, make_input(), kernel_size=(3, 3)) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.gaussian_blur_image, torch.Tensor), (F._misc._gaussian_blur_image_pil, PIL.Image.Image), (F.gaussian_blur_image, tv_tensors.Image), (F.gaussian_blur_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.gaussian_blur, kernel=kernel, input_type=input_type) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("sigma", [5, 2.0, (0.5, 2), [1.3, 2.7]]) def test_transform(self, make_input, device, sigma): check_transform(transforms.GaussianBlur(kernel_size=3, sigma=sigma), make_input(device=device)) def test_assertions(self): with pytest.raises(ValueError, match="Kernel size should be a tuple/list of two integers"): transforms.GaussianBlur([10, 12, 14]) with pytest.raises(ValueError, match="Kernel size value should be an odd and positive number"): transforms.GaussianBlur(4) with pytest.raises(ValueError, match="If sigma is a sequence its length should be 1 or 2. Got 3"): transforms.GaussianBlur(3, sigma=[1, 2, 3]) with pytest.raises(ValueError, match="sigma values should be positive and of the form"): transforms.GaussianBlur(3, sigma=-1.0) with pytest.raises(ValueError, match="sigma values should be positive and of the form"): transforms.GaussianBlur(3, sigma=[2.0, 1.0]) with pytest.raises(TypeError, match="sigma should be a number or a sequence of numbers"): transforms.GaussianBlur(3, sigma={}) @pytest.mark.parametrize("sigma", [10.0, [10.0, 12.0], (10, 12.0), [10]]) def test__get_params(self, sigma): transform = transforms.GaussianBlur(3, sigma=sigma) params = transform._get_params([]) if isinstance(sigma, float): assert params["sigma"][0] == params["sigma"][1] == sigma elif isinstance(sigma, list) and len(sigma) == 1: assert params["sigma"][0] == params["sigma"][1] == sigma[0] else: assert sigma[0] <= params["sigma"][0] <= sigma[1] assert sigma[0] <= params["sigma"][1] <= sigma[1] # np_img = np.arange(3 * 10 * 12, dtype="uint8").reshape((10, 12, 3)) # np_img2 = np.arange(26 * 28, dtype="uint8").reshape((26, 28)) # { # "10_12_3__3_3_0.8": cv2.GaussianBlur(np_img, ksize=(3, 3), sigmaX=0.8), # "10_12_3__3_3_0.5": cv2.GaussianBlur(np_img, ksize=(3, 3), sigmaX=0.5), # "10_12_3__3_5_0.8": cv2.GaussianBlur(np_img, ksize=(3, 5), sigmaX=0.8), # "10_12_3__3_5_0.5": cv2.GaussianBlur(np_img, ksize=(3, 5), sigmaX=0.5), # "26_28_1__23_23_1.7": cv2.GaussianBlur(np_img2, ksize=(23, 23), sigmaX=1.7), # } REFERENCE_GAUSSIAN_BLUR_IMAGE_RESULTS = torch.load( Path(__file__).parent / "assets" / "gaussian_blur_opencv_results.pt", weights_only=False, ) @pytest.mark.parametrize( ("dimensions", "kernel_size", "sigma"), [ ((3, 10, 12), (3, 3), 0.8), ((3, 10, 12), (3, 3), 0.5), ((3, 10, 12), (3, 5), 0.8), ((3, 10, 12), (3, 5), 0.5), ((1, 26, 28), (23, 23), 1.7), ], ) @pytest.mark.parametrize("dtype", [torch.float32, torch.float64, torch.float16]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_functional_image_correctness(self, dimensions, kernel_size, sigma, dtype, device): if dtype is torch.float16 and device == "cpu": pytest.skip("The CPU implementation of float16 on CPU differs from opencv") num_channels, height, width = dimensions reference_results_key = f"{height}_{width}_{num_channels}__{kernel_size[0]}_{kernel_size[1]}_{sigma}" expected = ( torch.tensor(self.REFERENCE_GAUSSIAN_BLUR_IMAGE_RESULTS[reference_results_key]) .reshape(height, width, num_channels) .permute(2, 0, 1) .to(dtype=dtype, device=device) ) image = tv_tensors.Image( torch.arange(num_channels * height * width, dtype=torch.uint8) .reshape(height, width, num_channels) .permute(2, 0, 1), dtype=dtype, device=device, ) actual = F.gaussian_blur_image(image, kernel_size=kernel_size, sigma=sigma) torch.testing.assert_close(actual, expected, rtol=0, atol=1) class TestGaussianNoise: @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image, make_video], ) def test_kernel(self, make_input): check_kernel( F.gaussian_noise, make_input(dtype=torch.float32), # This cannot pass because the noise on a batch in not per-image check_batched_vs_unbatched=False, ) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image, make_video], ) def test_functional(self, make_input): check_functional(F.gaussian_noise, make_input(dtype=torch.float32)) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.gaussian_noise, torch.Tensor), (F.gaussian_noise_image, tv_tensors.Image), (F.gaussian_noise_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.gaussian_noise, kernel=kernel, input_type=input_type) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image, make_video], ) def test_transform(self, make_input): def adapter(_, input, __): # This transform doesn't support uint8 so we have to convert the auto-generated uint8 tensors to float32 # Same for PIL images for key, value in input.items(): if isinstance(value, torch.Tensor) and not value.is_floating_point(): input[key] = value.to(torch.float32) if isinstance(value, PIL.Image.Image): input[key] = F.pil_to_tensor(value).to(torch.float32) return input check_transform(transforms.GaussianNoise(), make_input(dtype=torch.float32), check_sample_input=adapter) def test_bad_input(self): with pytest.raises(ValueError, match="Gaussian Noise is not implemented for PIL images."): F.gaussian_noise(make_image_pil()) with pytest.raises(ValueError, match="Input tensor is expected to be in float dtype"): F.gaussian_noise(make_image(dtype=torch.uint8)) with pytest.raises(ValueError, match="sigma shouldn't be negative"): F.gaussian_noise(make_image(dtype=torch.float32), sigma=-1) def test_clip(self): img = make_image(dtype=torch.float32) out = F.gaussian_noise(img, mean=100, clip=False) assert out.min() > 50 out = F.gaussian_noise(img, mean=100, clip=True) assert (out == 1).all() out = F.gaussian_noise(img, mean=-100, clip=False) assert out.min() < -50 out = F.gaussian_noise(img, mean=-100, clip=True) assert (out == 0).all() class TestAutoAugmentTransforms: # These transforms have a lot of branches in their `forward()` passes which are conditioned on random sampling. # It's typically very hard to test the effect on some parameters without heavy mocking logic. # This class adds correctness tests for the kernels that are specific to those transforms. The rest of kernels, e.g. # rotate, are tested in their respective classes. The rest of the tests here are mostly smoke tests. def _reference_shear_translate(self, image, *, transform_id, magnitude, interpolation, fill): if isinstance(image, PIL.Image.Image): input = image else: input = F.to_pil_image(image) matrix = { "ShearX": (1, magnitude, 0, 0, 1, 0), "ShearY": (1, 0, 0, magnitude, 1, 0), "TranslateX": (1, 0, -int(magnitude), 0, 1, 0), "TranslateY": (1, 0, 0, 0, 1, -int(magnitude)), }[transform_id] output = input.transform( input.size, PIL.Image.AFFINE, matrix, resample=pil_modes_mapping[interpolation], fill=fill ) if isinstance(image, PIL.Image.Image): return output else: return F.to_image(output) @pytest.mark.parametrize("transform_id", ["ShearX", "ShearY", "TranslateX", "TranslateY"]) @pytest.mark.parametrize("magnitude", [0.3, -0.2, 0.0]) @pytest.mark.parametrize( "interpolation", [transforms.InterpolationMode.NEAREST, transforms.InterpolationMode.BILINEAR] ) @pytest.mark.parametrize("fill", CORRECTNESS_FILLS) @pytest.mark.parametrize("input_type", ["Tensor", "PIL"]) def test_correctness_shear_translate(self, transform_id, magnitude, interpolation, fill, input_type): # ShearX/Y and TranslateX/Y are the only ops that are native to the AA transforms. They are modeled after the # reference implementation: # https://github.com/tensorflow/models/blob/885fda091c46c59d6c7bb5c7e760935eacc229da/research/autoaugment/augmentation_transforms.py#L273-L362 # All other ops are checked in their respective dedicated tests. image = make_image(dtype=torch.uint8, device="cpu") if input_type == "PIL": image = F.to_pil_image(image) if "Translate" in transform_id: # For TranslateX/Y magnitude is a value in pixels magnitude *= min(F.get_size(image)) actual = transforms.AutoAugment()._apply_image_or_video_transform( image, transform_id=transform_id, magnitude=magnitude, interpolation=interpolation, fill={type(image): fill}, ) expected = self._reference_shear_translate( image, transform_id=transform_id, magnitude=magnitude, interpolation=interpolation, fill=fill ) if input_type == "PIL": actual, expected = F.to_image(actual), F.to_image(expected) if "Shear" in transform_id and input_type == "Tensor": mae = (actual.float() - expected.float()).abs().mean() assert mae < (12 if interpolation is transforms.InterpolationMode.NEAREST else 5) else: assert_close(actual, expected, rtol=0, atol=1) def _sample_input_adapter(self, transform, input, device): adapted_input = {} image_or_video_found = False for key, value in input.items(): if isinstance(value, (tv_tensors.BoundingBoxes, tv_tensors.Mask)): # AA transforms don't support bounding boxes or masks continue elif check_type(value, (tv_tensors.Image, tv_tensors.Video, is_pure_tensor, PIL.Image.Image)): if image_or_video_found: # AA transforms only support a single image or video continue image_or_video_found = True adapted_input[key] = value return adapted_input @pytest.mark.parametrize( "transform", [transforms.AutoAugment(), transforms.RandAugment(), transforms.TrivialAugmentWide(), transforms.AugMix()], ) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image_pil, make_image, make_video]) @pytest.mark.parametrize("dtype", [torch.uint8, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_transform_smoke(self, transform, make_input, dtype, device): if make_input is make_image_pil and not (dtype is torch.uint8 and device == "cpu"): pytest.skip( "PIL image tests with parametrization other than dtype=torch.uint8 and device='cpu' " "will degenerate to that anyway." ) input = make_input(dtype=dtype, device=device) with freeze_rng_state(): # By default every test starts from the same random seed. This leads to minimal coverage of the sampling # that happens inside forward(). To avoid calling the transform multiple times to achieve higher coverage, # we build a reproducible random seed from the input type, dtype, and device. torch.manual_seed(hash((make_input, dtype, device))) # For v2, we changed the random sampling of the AA transforms. This makes it impossible to compare the v1 # and v2 outputs without complicated mocking and monkeypatching. Thus, we skip the v1 compatibility checks # here and only check if we can script the v2 transform and subsequently call the result. check_transform( transform, input, check_v1_compatibility=False, check_sample_input=self._sample_input_adapter ) if type(input) is torch.Tensor and dtype is torch.uint8: _script(transform)(input) def test_auto_augment_policy_error(self): with pytest.raises(ValueError, match="provided policy"): transforms.AutoAugment(policy=None) @pytest.mark.parametrize("severity", [0, 11]) def test_aug_mix_severity_error(self, severity): with pytest.raises(ValueError, match="severity must be between"): transforms.AugMix(severity=severity) class TestConvertBoundingBoxFormat: old_new_formats = list(itertools.permutations(iter(tv_tensors.BoundingBoxFormat), 2)) @pytest.mark.parametrize(("old_format", "new_format"), old_new_formats) def test_kernel(self, old_format, new_format): check_kernel( F.convert_bounding_box_format, make_bounding_boxes(format=old_format), new_format=new_format, old_format=old_format, ) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) @pytest.mark.parametrize("inplace", [False, True]) def test_kernel_noop(self, format, inplace): input = make_bounding_boxes(format=format).as_subclass(torch.Tensor) input_version = input._version output = F.convert_bounding_box_format(input, old_format=format, new_format=format, inplace=inplace) assert output is input assert output.data_ptr() == input.data_ptr() assert output._version == input_version @pytest.mark.parametrize(("old_format", "new_format"), old_new_formats) def test_kernel_inplace(self, old_format, new_format): input = make_bounding_boxes(format=old_format).as_subclass(torch.Tensor) input_version = input._version output_out_of_place = F.convert_bounding_box_format(input, old_format=old_format, new_format=new_format) assert output_out_of_place.data_ptr() != input.data_ptr() assert output_out_of_place is not input output_inplace = F.convert_bounding_box_format( input, old_format=old_format, new_format=new_format, inplace=True ) assert output_inplace.data_ptr() == input.data_ptr() assert output_inplace._version > input_version assert output_inplace is input assert_equal(output_inplace, output_out_of_place) @pytest.mark.parametrize(("old_format", "new_format"), old_new_formats) def test_functional(self, old_format, new_format): check_functional(F.convert_bounding_box_format, make_bounding_boxes(format=old_format), new_format=new_format) @pytest.mark.parametrize(("old_format", "new_format"), old_new_formats) @pytest.mark.parametrize("format_type", ["enum", "str"]) def test_transform(self, old_format, new_format, format_type): check_transform( transforms.ConvertBoundingBoxFormat(new_format.name if format_type == "str" else new_format), make_bounding_boxes(format=old_format), ) @pytest.mark.parametrize(("old_format", "new_format"), old_new_formats) def test_strings(self, old_format, new_format): # Non-regression test for https://github.com/pytorch/vision/issues/8258 input = tv_tensors.BoundingBoxes(torch.tensor([[10, 10, 20, 20]]), format=old_format, canvas_size=(50, 50)) expected = self._reference_convert_bounding_box_format(input, new_format) old_format = old_format.name new_format = new_format.name out_functional = F.convert_bounding_box_format(input, new_format=new_format) out_functional_tensor = F.convert_bounding_box_format( input.as_subclass(torch.Tensor), old_format=old_format, new_format=new_format ) out_transform = transforms.ConvertBoundingBoxFormat(new_format)(input) for out in (out_functional, out_functional_tensor, out_transform): assert_equal(out, expected) def _reference_convert_bounding_box_format(self, bounding_boxes, new_format): return tv_tensors.wrap( torchvision.ops.box_convert( bounding_boxes.as_subclass(torch.Tensor), in_fmt=bounding_boxes.format.name.lower(), out_fmt=new_format.name.lower(), ).to(bounding_boxes.dtype), like=bounding_boxes, format=new_format, ) @pytest.mark.parametrize(("old_format", "new_format"), old_new_formats) @pytest.mark.parametrize("dtype", [torch.int64, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("fn_type", ["functional", "transform"]) def test_correctness(self, old_format, new_format, dtype, device, fn_type): bounding_boxes = make_bounding_boxes(format=old_format, dtype=dtype, device=device) if fn_type == "functional": fn = functools.partial(F.convert_bounding_box_format, new_format=new_format) else: fn = transforms.ConvertBoundingBoxFormat(format=new_format) actual = fn(bounding_boxes) expected = self._reference_convert_bounding_box_format(bounding_boxes, new_format) assert_equal(actual, expected) def test_errors(self): input_tv_tensor = make_bounding_boxes() input_pure_tensor = input_tv_tensor.as_subclass(torch.Tensor) for input in [input_tv_tensor, input_pure_tensor]: with pytest.raises(TypeError, match="missing 1 required argument: 'new_format'"): F.convert_bounding_box_format(input) with pytest.raises(ValueError, match="`old_format` has to be passed"): F.convert_bounding_box_format(input_pure_tensor, new_format=input_tv_tensor.format) with pytest.raises(ValueError, match="`old_format` must not be passed"): F.convert_bounding_box_format( input_tv_tensor, old_format=input_tv_tensor.format, new_format=input_tv_tensor.format ) class TestResizedCrop: INPUT_SIZE = (17, 11) CROP_KWARGS = dict(top=2, left=2, height=5, width=7) OUTPUT_SIZE = (19, 32) @pytest.mark.parametrize( ("kernel", "make_input"), [ (F.resized_crop_image, make_image), (F.resized_crop_bounding_boxes, make_bounding_boxes), (F.resized_crop_mask, make_segmentation_mask), (F.resized_crop_mask, make_detection_masks), (F.resized_crop_video, make_video), ], ) def test_kernel(self, kernel, make_input): input = make_input(self.INPUT_SIZE) if isinstance(input, tv_tensors.BoundingBoxes): extra_kwargs = dict(format=input.format) elif isinstance(input, tv_tensors.Mask): extra_kwargs = dict() else: extra_kwargs = dict(antialias=True) check_kernel(kernel, input, **self.CROP_KWARGS, size=self.OUTPUT_SIZE, **extra_kwargs) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) def test_functional(self, make_input): check_functional( F.resized_crop, make_input(self.INPUT_SIZE), **self.CROP_KWARGS, size=self.OUTPUT_SIZE, antialias=True ) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.resized_crop_image, torch.Tensor), (F._geometry._resized_crop_image_pil, PIL.Image.Image), (F.resized_crop_image, tv_tensors.Image), (F.resized_crop_bounding_boxes, tv_tensors.BoundingBoxes), (F.resized_crop_mask, tv_tensors.Mask), (F.resized_crop_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.resized_crop, kernel=kernel, input_type=input_type) @param_value_parametrization( scale=[(0.1, 0.2), [0.0, 1.0]], ratio=[(0.3, 0.7), [0.1, 5.0]], ) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) def test_transform(self, param, value, make_input): check_transform( transforms.RandomResizedCrop(size=self.OUTPUT_SIZE, **{param: value}, antialias=True), make_input(self.INPUT_SIZE), check_v1_compatibility=dict(rtol=0, atol=1), ) # `InterpolationMode.NEAREST` is modeled after the buggy `INTER_NEAREST` interpolation of CV2. # The PIL equivalent of `InterpolationMode.NEAREST` is `InterpolationMode.NEAREST_EXACT` @pytest.mark.parametrize("interpolation", set(INTERPOLATION_MODES) - {transforms.InterpolationMode.NEAREST}) def test_functional_image_correctness(self, interpolation): image = make_image(self.INPUT_SIZE, dtype=torch.uint8) actual = F.resized_crop( image, **self.CROP_KWARGS, size=self.OUTPUT_SIZE, interpolation=interpolation, antialias=True ) expected = F.to_image( F.resized_crop( F.to_pil_image(image), **self.CROP_KWARGS, size=self.OUTPUT_SIZE, interpolation=interpolation ) ) torch.testing.assert_close(actual, expected, atol=1, rtol=0) def _reference_resized_crop_bounding_boxes(self, bounding_boxes, *, top, left, height, width, size): new_height, new_width = size crop_affine_matrix = np.array( [ [1, 0, -left], [0, 1, -top], [0, 0, 1], ], ) resize_affine_matrix = np.array( [ [new_width / width, 0, 0], [0, new_height / height, 0], [0, 0, 1], ], ) affine_matrix = (resize_affine_matrix @ crop_affine_matrix)[:2, :] return reference_affine_bounding_boxes_helper( bounding_boxes, affine_matrix=affine_matrix, new_canvas_size=size, ) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) def test_functional_bounding_boxes_correctness(self, format): bounding_boxes = make_bounding_boxes(self.INPUT_SIZE, format=format) actual = F.resized_crop(bounding_boxes, **self.CROP_KWARGS, size=self.OUTPUT_SIZE) expected = self._reference_resized_crop_bounding_boxes( bounding_boxes, **self.CROP_KWARGS, size=self.OUTPUT_SIZE ) assert_equal(actual, expected) assert_equal(F.get_size(actual), F.get_size(expected)) def test_transform_errors_warnings(self): with pytest.raises(ValueError, match="provide only two dimensions"): transforms.RandomResizedCrop(size=(1, 2, 3)) with pytest.raises(TypeError, match="Scale should be a sequence"): transforms.RandomResizedCrop(size=self.INPUT_SIZE, scale=123) with pytest.raises(TypeError, match="Ratio should be a sequence"): transforms.RandomResizedCrop(size=self.INPUT_SIZE, ratio=123) for param in ["scale", "ratio"]: with pytest.warns(match="Scale and ratio should be of kind"): transforms.RandomResizedCrop(size=self.INPUT_SIZE, **{param: [1, 0]}) class TestPad: EXHAUSTIVE_TYPE_PADDINGS = [1, (1,), (1, 2), (1, 2, 3, 4), [1], [1, 2], [1, 2, 3, 4]] CORRECTNESS_PADDINGS = [ padding for padding in EXHAUSTIVE_TYPE_PADDINGS if isinstance(padding, int) or isinstance(padding, list) and len(padding) > 1 ] PADDING_MODES = ["constant", "symmetric", "edge", "reflect"] @param_value_parametrization( padding=EXHAUSTIVE_TYPE_PADDINGS, fill=EXHAUSTIVE_TYPE_FILLS, padding_mode=PADDING_MODES, ) @pytest.mark.parametrize("dtype", [torch.uint8, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, param, value, dtype, device): if param == "fill": value = adapt_fill(value, dtype=dtype) kwargs = {param: value} if param != "padding": kwargs["padding"] = [1] image = make_image(dtype=dtype, device=device) check_kernel( F.pad_image, image, **kwargs, check_scripted_vs_eager=not ( (param == "padding" and isinstance(value, int)) # See https://github.com/pytorch/vision/pull/7252#issue-1585585521 for details or ( param == "fill" and ( isinstance(value, tuple) or (isinstance(value, list) and any(isinstance(v, int) for v in value)) ) ) ), ) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) def test_kernel_bounding_boxes(self, format): bounding_boxes = make_bounding_boxes(format=format) check_kernel( F.pad_bounding_boxes, bounding_boxes, format=bounding_boxes.format, canvas_size=bounding_boxes.canvas_size, padding=[1], ) @pytest.mark.parametrize("padding_mode", ["symmetric", "edge", "reflect"]) def test_kernel_bounding_boxes_errors(self, padding_mode): bounding_boxes = make_bounding_boxes() with pytest.raises(ValueError, match=f"'{padding_mode}' is not supported"): F.pad_bounding_boxes( bounding_boxes, format=bounding_boxes.format, canvas_size=bounding_boxes.canvas_size, padding=[1], padding_mode=padding_mode, ) @pytest.mark.parametrize("make_mask", [make_segmentation_mask, make_detection_masks]) def test_kernel_mask(self, make_mask): check_kernel(F.pad_mask, make_mask(), padding=[1]) @pytest.mark.parametrize("fill", [[1], (0,), [1, 0, 1], (0, 1, 0)]) def test_kernel_mask_errors(self, fill): with pytest.raises(ValueError, match="Non-scalar fill value is not supported"): F.pad_mask(make_segmentation_mask(), padding=[1], fill=fill) def test_kernel_video(self): check_kernel(F.pad_video, make_video(), padding=[1]) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) def test_functional(self, make_input): check_functional(F.pad, make_input(), padding=[1]) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.pad_image, torch.Tensor), # The PIL kernel uses fill=0 as default rather than fill=None as all others. # Since the whole fill story is already really inconsistent, we won't introduce yet another case to allow # for this test to pass. # See https://github.com/pytorch/vision/issues/6623 for a discussion. # (F._geometry._pad_image_pil, PIL.Image.Image), (F.pad_image, tv_tensors.Image), (F.pad_bounding_boxes, tv_tensors.BoundingBoxes), (F.pad_mask, tv_tensors.Mask), (F.pad_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.pad, kernel=kernel, input_type=input_type) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) def test_transform(self, make_input): check_transform(transforms.Pad(padding=[1]), make_input()) def test_transform_errors(self): with pytest.raises(TypeError, match="Got inappropriate padding arg"): transforms.Pad("abc") with pytest.raises(ValueError, match="Padding must be an int or a 1, 2, or 4"): transforms.Pad([-0.7, 0, 0.7]) with pytest.raises(TypeError, match="Got inappropriate fill arg"): transforms.Pad(12, fill="abc") with pytest.raises(ValueError, match="Padding mode should be either"): transforms.Pad(12, padding_mode="abc") @pytest.mark.parametrize("padding", CORRECTNESS_PADDINGS) @pytest.mark.parametrize( ("padding_mode", "fill"), [ *[("constant", fill) for fill in CORRECTNESS_FILLS], *[(padding_mode, None) for padding_mode in ["symmetric", "edge", "reflect"]], ], ) @pytest.mark.parametrize("fn", [F.pad, transform_cls_to_functional(transforms.Pad)]) def test_image_correctness(self, padding, padding_mode, fill, fn): image = make_image(dtype=torch.uint8, device="cpu") fill = adapt_fill(fill, dtype=torch.uint8) actual = fn(image, padding=padding, padding_mode=padding_mode, fill=fill) expected = F.to_image(F.pad(F.to_pil_image(image), padding=padding, padding_mode=padding_mode, fill=fill)) assert_equal(actual, expected) def _reference_pad_bounding_boxes(self, bounding_boxes, *, padding): if isinstance(padding, int): padding = [padding] left, top, right, bottom = padding * (4 // len(padding)) affine_matrix = np.array( [ [1, 0, left], [0, 1, top], ], ) height = bounding_boxes.canvas_size[0] + top + bottom width = bounding_boxes.canvas_size[1] + left + right return reference_affine_bounding_boxes_helper( bounding_boxes, affine_matrix=affine_matrix, new_canvas_size=(height, width) ) @pytest.mark.parametrize("padding", CORRECTNESS_PADDINGS) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) @pytest.mark.parametrize("dtype", [torch.int64, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("fn", [F.pad, transform_cls_to_functional(transforms.Pad)]) def test_bounding_boxes_correctness(self, padding, format, dtype, device, fn): bounding_boxes = make_bounding_boxes(format=format, dtype=dtype, device=device) actual = fn(bounding_boxes, padding=padding) expected = self._reference_pad_bounding_boxes(bounding_boxes, padding=padding) assert_equal(actual, expected) class TestCenterCrop: INPUT_SIZE = (17, 11) OUTPUT_SIZES = [(3, 5), (5, 3), (4, 4), (21, 9), (13, 15), (19, 14), 3, (4,), [5], INPUT_SIZE] @pytest.mark.parametrize("output_size", OUTPUT_SIZES) @pytest.mark.parametrize("dtype", [torch.int64, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, output_size, dtype, device): check_kernel( F.center_crop_image, make_image(self.INPUT_SIZE, dtype=dtype, device=device), output_size=output_size, check_scripted_vs_eager=not isinstance(output_size, int), ) @pytest.mark.parametrize("output_size", OUTPUT_SIZES) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) def test_kernel_bounding_boxes(self, output_size, format): bounding_boxes = make_bounding_boxes(self.INPUT_SIZE, format=format) check_kernel( F.center_crop_bounding_boxes, bounding_boxes, format=bounding_boxes.format, canvas_size=bounding_boxes.canvas_size, output_size=output_size, check_scripted_vs_eager=not isinstance(output_size, int), ) @pytest.mark.parametrize("make_mask", [make_segmentation_mask, make_detection_masks]) def test_kernel_mask(self, make_mask): check_kernel(F.center_crop_mask, make_mask(), output_size=self.OUTPUT_SIZES[0]) def test_kernel_video(self): check_kernel(F.center_crop_video, make_video(self.INPUT_SIZE), output_size=self.OUTPUT_SIZES[0]) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) def test_functional(self, make_input): check_functional(F.center_crop, make_input(self.INPUT_SIZE), output_size=self.OUTPUT_SIZES[0]) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.center_crop_image, torch.Tensor), (F._geometry._center_crop_image_pil, PIL.Image.Image), (F.center_crop_image, tv_tensors.Image), (F.center_crop_bounding_boxes, tv_tensors.BoundingBoxes), (F.center_crop_mask, tv_tensors.Mask), (F.center_crop_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.center_crop, kernel=kernel, input_type=input_type) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) def test_transform(self, make_input): check_transform(transforms.CenterCrop(self.OUTPUT_SIZES[0]), make_input(self.INPUT_SIZE)) @pytest.mark.parametrize("output_size", OUTPUT_SIZES) @pytest.mark.parametrize("fn", [F.center_crop, transform_cls_to_functional(transforms.CenterCrop)]) def test_image_correctness(self, output_size, fn): image = make_image(self.INPUT_SIZE, dtype=torch.uint8, device="cpu") actual = fn(image, output_size) expected = F.to_image(F.center_crop(F.to_pil_image(image), output_size=output_size)) assert_equal(actual, expected) def _reference_center_crop_bounding_boxes(self, bounding_boxes, output_size): image_height, image_width = bounding_boxes.canvas_size if isinstance(output_size, int): output_size = (output_size, output_size) elif len(output_size) == 1: output_size *= 2 crop_height, crop_width = output_size top = int(round((image_height - crop_height) / 2)) left = int(round((image_width - crop_width) / 2)) affine_matrix = np.array( [ [1, 0, -left], [0, 1, -top], ], ) return reference_affine_bounding_boxes_helper( bounding_boxes, affine_matrix=affine_matrix, new_canvas_size=output_size ) @pytest.mark.parametrize("output_size", OUTPUT_SIZES) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) @pytest.mark.parametrize("dtype", [torch.int64, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("fn", [F.center_crop, transform_cls_to_functional(transforms.CenterCrop)]) def test_bounding_boxes_correctness(self, output_size, format, dtype, device, fn): bounding_boxes = make_bounding_boxes(self.INPUT_SIZE, format=format, dtype=dtype, device=device) actual = fn(bounding_boxes, output_size) expected = self._reference_center_crop_bounding_boxes(bounding_boxes, output_size) assert_equal(actual, expected) class TestPerspective: COEFFICIENTS = [ [1.2405, 0.1772, -6.9113, 0.0463, 1.251, -5.235, 0.00013, 0.0018], [0.7366, -0.11724, 1.45775, -0.15012, 0.73406, 2.6019, -0.0072, -0.0063], ] START_END_POINTS = [ ([[0, 0], [33, 0], [33, 25], [0, 25]], [[3, 2], [32, 3], [30, 24], [2, 25]]), ([[3, 2], [32, 3], [30, 24], [2, 25]], [[0, 0], [33, 0], [33, 25], [0, 25]]), ([[3, 2], [32, 3], [30, 24], [2, 25]], [[5, 5], [30, 3], [33, 19], [4, 25]]), ] MINIMAL_KWARGS = dict(startpoints=None, endpoints=None, coefficients=COEFFICIENTS[0]) @param_value_parametrization( coefficients=COEFFICIENTS, start_end_points=START_END_POINTS, fill=EXHAUSTIVE_TYPE_FILLS, ) @pytest.mark.parametrize("dtype", [torch.uint8, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, param, value, dtype, device): if param == "start_end_points": kwargs = dict(zip(["startpoints", "endpoints"], value)) else: kwargs = {"startpoints": None, "endpoints": None, param: value} if param == "fill": kwargs["coefficients"] = self.COEFFICIENTS[0] check_kernel( F.perspective_image, make_image(dtype=dtype, device=device), **kwargs, check_scripted_vs_eager=not (param == "fill" and isinstance(value, (int, float))), ) def test_kernel_image_error(self): image = make_image_tensor() with pytest.raises(ValueError, match="startpoints/endpoints or the coefficients must have non `None` values"): F.perspective_image(image, startpoints=None, endpoints=None) with pytest.raises( ValueError, match="startpoints/endpoints and the coefficients shouldn't be defined concurrently" ): startpoints, endpoints = self.START_END_POINTS[0] coefficients = self.COEFFICIENTS[0] F.perspective_image(image, startpoints=startpoints, endpoints=endpoints, coefficients=coefficients) with pytest.raises(ValueError, match="coefficients should have 8 float values"): F.perspective_image(image, startpoints=None, endpoints=None, coefficients=list(range(7))) @param_value_parametrization( coefficients=COEFFICIENTS, start_end_points=START_END_POINTS, ) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) def test_kernel_bounding_boxes(self, param, value, format): if param == "start_end_points": kwargs = dict(zip(["startpoints", "endpoints"], value)) else: kwargs = {"startpoints": None, "endpoints": None, param: value} bounding_boxes = make_bounding_boxes(format=format) check_kernel( F.perspective_bounding_boxes, bounding_boxes, format=bounding_boxes.format, canvas_size=bounding_boxes.canvas_size, **kwargs, ) def test_kernel_bounding_boxes_error(self): bounding_boxes = make_bounding_boxes() format, canvas_size = bounding_boxes.format, bounding_boxes.canvas_size bounding_boxes = bounding_boxes.as_subclass(torch.Tensor) with pytest.raises(RuntimeError, match="Denominator is zero"): F.perspective_bounding_boxes( bounding_boxes, format=format, canvas_size=canvas_size, startpoints=None, endpoints=None, coefficients=[0.0] * 8, ) @pytest.mark.parametrize("make_mask", [make_segmentation_mask, make_detection_masks]) def test_kernel_mask(self, make_mask): check_kernel(F.perspective_mask, make_mask(), **self.MINIMAL_KWARGS) def test_kernel_video(self): check_kernel(F.perspective_video, make_video(), **self.MINIMAL_KWARGS) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) def test_functional(self, make_input): check_functional(F.perspective, make_input(), **self.MINIMAL_KWARGS) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.perspective_image, torch.Tensor), (F._geometry._perspective_image_pil, PIL.Image.Image), (F.perspective_image, tv_tensors.Image), (F.perspective_bounding_boxes, tv_tensors.BoundingBoxes), (F.perspective_mask, tv_tensors.Mask), (F.perspective_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.perspective, kernel=kernel, input_type=input_type) @pytest.mark.parametrize("distortion_scale", [0.5, 0.0, 1.0]) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) def test_transform(self, distortion_scale, make_input): check_transform(transforms.RandomPerspective(distortion_scale=distortion_scale, p=1), make_input()) @pytest.mark.parametrize("distortion_scale", [-1, 2]) def test_transform_error(self, distortion_scale): with pytest.raises(ValueError, match="distortion_scale value should be between 0 and 1"): transforms.RandomPerspective(distortion_scale=distortion_scale) @pytest.mark.parametrize("coefficients", COEFFICIENTS) @pytest.mark.parametrize( "interpolation", [transforms.InterpolationMode.NEAREST, transforms.InterpolationMode.BILINEAR] ) @pytest.mark.parametrize("fill", CORRECTNESS_FILLS) def test_image_functional_correctness(self, coefficients, interpolation, fill): image = make_image(dtype=torch.uint8, device="cpu") actual = F.perspective( image, startpoints=None, endpoints=None, coefficients=coefficients, interpolation=interpolation, fill=fill ) expected = F.to_image( F.perspective( F.to_pil_image(image), startpoints=None, endpoints=None, coefficients=coefficients, interpolation=interpolation, fill=fill, ) ) if interpolation is transforms.InterpolationMode.BILINEAR: abs_diff = (actual.float() - expected.float()).abs() assert (abs_diff > 1).float().mean() < 7e-2 mae = abs_diff.mean() assert mae < 3 else: assert_equal(actual, expected) def _reference_perspective_bounding_boxes(self, bounding_boxes, *, startpoints, endpoints): format = bounding_boxes.format canvas_size = bounding_boxes.canvas_size dtype = bounding_boxes.dtype device = bounding_boxes.device coefficients = _get_perspective_coeffs(endpoints, startpoints) def perspective_bounding_boxes(bounding_boxes): m1 = np.array( [ [coefficients[0], coefficients[1], coefficients[2]], [coefficients[3], coefficients[4], coefficients[5]], ] ) m2 = np.array( [ [coefficients[6], coefficients[7], 1.0], [coefficients[6], coefficients[7], 1.0], ] ) # Go to float before converting to prevent precision loss in case of CXCYWH -> XYXY and W or H is 1 input_xyxy = F.convert_bounding_box_format( bounding_boxes.to(dtype=torch.float64, device="cpu", copy=True), old_format=format, new_format=tv_tensors.BoundingBoxFormat.XYXY, inplace=True, ) x1, y1, x2, y2 = input_xyxy.squeeze(0).tolist() points = np.array( [ [x1, y1, 1.0], [x2, y1, 1.0], [x1, y2, 1.0], [x2, y2, 1.0], ] ) numerator = points @ m1.T denominator = points @ m2.T transformed_points = numerator / denominator output_xyxy = torch.Tensor( [ float(np.min(transformed_points[:, 0])), float(np.min(transformed_points[:, 1])), float(np.max(transformed_points[:, 0])), float(np.max(transformed_points[:, 1])), ] ) output = F.convert_bounding_box_format( output_xyxy, old_format=tv_tensors.BoundingBoxFormat.XYXY, new_format=format ) # It is important to clamp before casting, especially for CXCYWH format, dtype=int64 return F.clamp_bounding_boxes( output, format=format, canvas_size=canvas_size, ).to(dtype=dtype, device=device) return tv_tensors.BoundingBoxes( torch.cat([perspective_bounding_boxes(b) for b in bounding_boxes.reshape(-1, 4).unbind()], dim=0).reshape( bounding_boxes.shape ), format=format, canvas_size=canvas_size, ) @pytest.mark.parametrize(("startpoints", "endpoints"), START_END_POINTS) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) @pytest.mark.parametrize("dtype", [torch.int64, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_correctness_perspective_bounding_boxes(self, startpoints, endpoints, format, dtype, device): bounding_boxes = make_bounding_boxes(format=format, dtype=dtype, device=device) actual = F.perspective(bounding_boxes, startpoints=startpoints, endpoints=endpoints) expected = self._reference_perspective_bounding_boxes( bounding_boxes, startpoints=startpoints, endpoints=endpoints ) assert_close(actual, expected, rtol=0, atol=1) class TestEqualize: @pytest.mark.parametrize("dtype", [torch.uint8, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, dtype, device): check_kernel(F.equalize_image, make_image(dtype=dtype, device=device)) def test_kernel_video(self): check_kernel(F.equalize_image, make_video()) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image_pil, make_image, make_video]) def test_functional(self, make_input): check_functional(F.equalize, make_input()) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.equalize_image, torch.Tensor), (F._color._equalize_image_pil, PIL.Image.Image), (F.equalize_image, tv_tensors.Image), (F.equalize_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.equalize, kernel=kernel, input_type=input_type) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_video], ) def test_transform(self, make_input): check_transform(transforms.RandomEqualize(p=1), make_input()) @pytest.mark.parametrize(("low", "high"), [(0, 64), (64, 192), (192, 256), (0, 1), (127, 128), (255, 256)]) @pytest.mark.parametrize("fn", [F.equalize, transform_cls_to_functional(transforms.RandomEqualize, p=1)]) def test_image_correctness(self, low, high, fn): # We are not using the default `make_image` here since that uniformly samples the values over the whole value # range. Since the whole point of F.equalize is to transform an arbitrary distribution of values into a uniform # one over the full range, the information gain is low if we already provide something really close to the # expected value. image = tv_tensors.Image( torch.testing.make_tensor((3, 117, 253), dtype=torch.uint8, device="cpu", low=low, high=high) ) actual = fn(image) expected = F.to_image(F.equalize(F.to_pil_image(image))) assert_equal(actual, expected) class TestUniformTemporalSubsample: def test_kernel_video(self): check_kernel(F.uniform_temporal_subsample_video, make_video(), num_samples=2) @pytest.mark.parametrize("make_input", [make_video_tensor, make_video]) def test_functional(self, make_input): check_functional(F.uniform_temporal_subsample, make_input(), num_samples=2) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.uniform_temporal_subsample_video, torch.Tensor), (F.uniform_temporal_subsample_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.uniform_temporal_subsample, kernel=kernel, input_type=input_type) @pytest.mark.parametrize("make_input", [make_video_tensor, make_video]) def test_transform(self, make_input): check_transform(transforms.UniformTemporalSubsample(num_samples=2), make_input()) def _reference_uniform_temporal_subsample_video(self, video, *, num_samples): # Adapted from # https://github.com/facebookresearch/pytorchvideo/blob/c8d23d8b7e597586a9e2d18f6ed31ad8aa379a7a/pytorchvideo/transforms/functional.py#L19 t = video.shape[-4] assert num_samples > 0 and t > 0 # Sample by nearest neighbor interpolation if num_samples > t. indices = torch.linspace(0, t - 1, num_samples, device=video.device) indices = torch.clamp(indices, 0, t - 1).long() return tv_tensors.Video(torch.index_select(video, -4, indices)) CORRECTNESS_NUM_FRAMES = 5 @pytest.mark.parametrize("num_samples", list(range(1, CORRECTNESS_NUM_FRAMES + 1))) @pytest.mark.parametrize("dtype", [torch.uint8, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize( "fn", [F.uniform_temporal_subsample, transform_cls_to_functional(transforms.UniformTemporalSubsample)] ) def test_video_correctness(self, num_samples, dtype, device, fn): video = make_video(num_frames=self.CORRECTNESS_NUM_FRAMES, dtype=dtype, device=device) actual = fn(video, num_samples=num_samples) expected = self._reference_uniform_temporal_subsample_video(video, num_samples=num_samples) assert_equal(actual, expected) class TestNormalize: MEANS_STDS = [ ((0.485, 0.456, 0.406), (0.229, 0.224, 0.225)), ([0.0, 0.0, 0.0], [1.0, 1.0, 1.0]), ] MEAN, STD = MEANS_STDS[0] @pytest.mark.parametrize(("mean", "std"), [*MEANS_STDS, (0.5, 2.0)]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, mean, std, device): check_kernel(F.normalize_image, make_image(dtype=torch.float32, device=device), mean=self.MEAN, std=self.STD) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image_inplace(self, device): input = make_image_tensor(dtype=torch.float32, device=device) input_version = input._version output_out_of_place = F.normalize_image(input, mean=self.MEAN, std=self.STD) assert output_out_of_place.data_ptr() != input.data_ptr() assert output_out_of_place is not input output_inplace = F.normalize_image(input, mean=self.MEAN, std=self.STD, inplace=True) assert output_inplace.data_ptr() == input.data_ptr() assert output_inplace._version > input_version assert output_inplace is input assert_equal(output_inplace, output_out_of_place) def test_kernel_video(self): check_kernel(F.normalize_video, make_video(dtype=torch.float32), mean=self.MEAN, std=self.STD) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image, make_video]) def test_functional(self, make_input): check_functional(F.normalize, make_input(dtype=torch.float32), mean=self.MEAN, std=self.STD) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.normalize_image, torch.Tensor), (F.normalize_image, tv_tensors.Image), (F.normalize_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.normalize, kernel=kernel, input_type=input_type) def test_functional_error(self): with pytest.raises(TypeError, match="should be a float tensor"): F.normalize_image(make_image(dtype=torch.uint8), mean=self.MEAN, std=self.STD) with pytest.raises(ValueError, match="tensor image of size"): F.normalize_image(torch.rand(16, 16, dtype=torch.float32), mean=self.MEAN, std=self.STD) for std in [0, [0, 0, 0], [0, 1, 1]]: with pytest.raises(ValueError, match="std evaluated to zero, leading to division by zero"): F.normalize_image(make_image(dtype=torch.float32), mean=self.MEAN, std=std) def _sample_input_adapter(self, transform, input, device): adapted_input = {} for key, value in input.items(): if isinstance(value, PIL.Image.Image): # normalize doesn't support PIL images continue elif check_type(value, (is_pure_tensor, tv_tensors.Image, tv_tensors.Video)): # normalize doesn't support integer images value = F.to_dtype(value, torch.float32, scale=True) adapted_input[key] = value return adapted_input @pytest.mark.parametrize("make_input", [make_image_tensor, make_image, make_video]) def test_transform(self, make_input): check_transform( transforms.Normalize(mean=self.MEAN, std=self.STD), make_input(dtype=torch.float32), check_sample_input=self._sample_input_adapter, ) def _reference_normalize_image(self, image, *, mean, std): image = image.numpy() mean, std = [np.array(stat, dtype=image.dtype).reshape((-1, 1, 1)) for stat in [mean, std]] return tv_tensors.Image((image - mean) / std) @pytest.mark.parametrize(("mean", "std"), MEANS_STDS) @pytest.mark.parametrize("dtype", [torch.float16, torch.float32, torch.float64]) @pytest.mark.parametrize("fn", [F.normalize, transform_cls_to_functional(transforms.Normalize)]) def test_correctness_image(self, mean, std, dtype, fn): image = make_image(dtype=dtype) actual = fn(image, mean=mean, std=std) expected = self._reference_normalize_image(image, mean=mean, std=std) assert_equal(actual, expected) class TestClampBoundingBoxes: @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) @pytest.mark.parametrize("dtype", [torch.int64, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel(self, format, dtype, device): bounding_boxes = make_bounding_boxes(format=format, dtype=dtype, device=device) check_kernel( F.clamp_bounding_boxes, bounding_boxes, format=bounding_boxes.format, canvas_size=bounding_boxes.canvas_size, ) @pytest.mark.parametrize("format", list(tv_tensors.BoundingBoxFormat)) def test_functional(self, format): check_functional(F.clamp_bounding_boxes, make_bounding_boxes(format=format)) def test_errors(self): input_tv_tensor = make_bounding_boxes() input_pure_tensor = input_tv_tensor.as_subclass(torch.Tensor) format, canvas_size = input_tv_tensor.format, input_tv_tensor.canvas_size for format_, canvas_size_ in [(None, None), (format, None), (None, canvas_size)]: with pytest.raises( ValueError, match="For pure tensor inputs, `format` and `canvas_size` have to be passed." ): F.clamp_bounding_boxes(input_pure_tensor, format=format_, canvas_size=canvas_size_) for format_, canvas_size_ in [(format, canvas_size), (format, None), (None, canvas_size)]: with pytest.raises( ValueError, match="For bounding box tv_tensor inputs, `format` and `canvas_size` must not be passed." ): F.clamp_bounding_boxes(input_tv_tensor, format=format_, canvas_size=canvas_size_) def test_transform(self): check_transform(transforms.ClampBoundingBoxes(), make_bounding_boxes()) class TestInvert: @pytest.mark.parametrize("dtype", [torch.uint8, torch.int16, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, dtype, device): check_kernel(F.invert_image, make_image(dtype=dtype, device=device)) def test_kernel_video(self): check_kernel(F.invert_video, make_video()) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image, make_image_pil, make_video]) def test_functional(self, make_input): check_functional(F.invert, make_input()) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.invert_image, torch.Tensor), (F._color._invert_image_pil, PIL.Image.Image), (F.invert_image, tv_tensors.Image), (F.invert_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.invert, kernel=kernel, input_type=input_type) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image_pil, make_image, make_video]) def test_transform(self, make_input): check_transform(transforms.RandomInvert(p=1), make_input()) @pytest.mark.parametrize("fn", [F.invert, transform_cls_to_functional(transforms.RandomInvert, p=1)]) def test_correctness_image(self, fn): image = make_image(dtype=torch.uint8, device="cpu") actual = fn(image) expected = F.to_image(F.invert(F.to_pil_image(image))) assert_equal(actual, expected) class TestPosterize: @pytest.mark.parametrize("dtype", [torch.uint8, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, dtype, device): check_kernel(F.posterize_image, make_image(dtype=dtype, device=device), bits=1) def test_kernel_video(self): check_kernel(F.posterize_video, make_video(), bits=1) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image, make_image_pil, make_video]) def test_functional(self, make_input): check_functional(F.posterize, make_input(), bits=1) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.posterize_image, torch.Tensor), (F._color._posterize_image_pil, PIL.Image.Image), (F.posterize_image, tv_tensors.Image), (F.posterize_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.posterize, kernel=kernel, input_type=input_type) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image_pil, make_image, make_video]) def test_transform(self, make_input): check_transform(transforms.RandomPosterize(bits=1, p=1), make_input()) @pytest.mark.parametrize("bits", [1, 4, 8]) @pytest.mark.parametrize("fn", [F.posterize, transform_cls_to_functional(transforms.RandomPosterize, p=1)]) def test_correctness_image(self, bits, fn): image = make_image(dtype=torch.uint8, device="cpu") actual = fn(image, bits=bits) expected = F.to_image(F.posterize(F.to_pil_image(image), bits=bits)) assert_equal(actual, expected) class TestSolarize: def _make_threshold(self, input, *, factor=0.5): dtype = input.dtype if isinstance(input, torch.Tensor) else torch.uint8 return (float if dtype.is_floating_point else int)(get_max_value(dtype) * factor) @pytest.mark.parametrize("dtype", [torch.uint8, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, dtype, device): image = make_image(dtype=dtype, device=device) check_kernel(F.solarize_image, image, threshold=self._make_threshold(image)) def test_kernel_video(self): video = make_video() check_kernel(F.solarize_video, video, threshold=self._make_threshold(video)) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image, make_image_pil, make_video]) def test_functional(self, make_input): input = make_input() check_functional(F.solarize, input, threshold=self._make_threshold(input)) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.solarize_image, torch.Tensor), (F._color._solarize_image_pil, PIL.Image.Image), (F.solarize_image, tv_tensors.Image), (F.solarize_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.solarize, kernel=kernel, input_type=input_type) @pytest.mark.parametrize(("dtype", "threshold"), [(torch.uint8, 256), (torch.float, 1.5)]) def test_functional_error(self, dtype, threshold): with pytest.raises(TypeError, match="Threshold should be less or equal the maximum value of the dtype"): F.solarize(make_image(dtype=dtype), threshold=threshold) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image_pil, make_image, make_video]) def test_transform(self, make_input): input = make_input() check_transform(transforms.RandomSolarize(threshold=self._make_threshold(input), p=1), input) @pytest.mark.parametrize("threshold_factor", [0.0, 0.1, 0.5, 0.9, 1.0]) @pytest.mark.parametrize("fn", [F.solarize, transform_cls_to_functional(transforms.RandomSolarize, p=1)]) def test_correctness_image(self, threshold_factor, fn): image = make_image(dtype=torch.uint8, device="cpu") threshold = self._make_threshold(image, factor=threshold_factor) actual = fn(image, threshold=threshold) expected = F.to_image(F.solarize(F.to_pil_image(image), threshold=threshold)) assert_equal(actual, expected) class TestAutocontrast: @pytest.mark.parametrize("dtype", [torch.uint8, torch.int16, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, dtype, device): check_kernel(F.autocontrast_image, make_image(dtype=dtype, device=device)) def test_kernel_video(self): check_kernel(F.autocontrast_video, make_video()) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image, make_image_pil, make_video]) def test_functional(self, make_input): check_functional(F.autocontrast, make_input()) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.autocontrast_image, torch.Tensor), (F._color._autocontrast_image_pil, PIL.Image.Image), (F.autocontrast_image, tv_tensors.Image), (F.autocontrast_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.autocontrast, kernel=kernel, input_type=input_type) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image_pil, make_image, make_video]) def test_transform(self, make_input): check_transform(transforms.RandomAutocontrast(p=1), make_input(), check_v1_compatibility=dict(rtol=0, atol=1)) @pytest.mark.parametrize("fn", [F.autocontrast, transform_cls_to_functional(transforms.RandomAutocontrast, p=1)]) def test_correctness_image(self, fn): image = make_image(dtype=torch.uint8, device="cpu") actual = fn(image) expected = F.to_image(F.autocontrast(F.to_pil_image(image))) assert_close(actual, expected, rtol=0, atol=1) class TestAdjustSharpness: @pytest.mark.parametrize("dtype", [torch.uint8, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, dtype, device): check_kernel(F.adjust_sharpness_image, make_image(dtype=dtype, device=device), sharpness_factor=0.5) def test_kernel_video(self): check_kernel(F.adjust_sharpness_video, make_video(), sharpness_factor=0.5) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image, make_image_pil, make_video]) def test_functional(self, make_input): check_functional(F.adjust_sharpness, make_input(), sharpness_factor=0.5) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.adjust_sharpness_image, torch.Tensor), (F._color._adjust_sharpness_image_pil, PIL.Image.Image), (F.adjust_sharpness_image, tv_tensors.Image), (F.adjust_sharpness_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.adjust_sharpness, kernel=kernel, input_type=input_type) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image_pil, make_image, make_video]) def test_transform(self, make_input): check_transform(transforms.RandomAdjustSharpness(sharpness_factor=0.5, p=1), make_input()) def test_functional_error(self): with pytest.raises(TypeError, match="can have 1 or 3 channels"): F.adjust_sharpness(make_image(color_space="RGBA"), sharpness_factor=0.5) with pytest.raises(ValueError, match="is not non-negative"): F.adjust_sharpness(make_image(), sharpness_factor=-1) @pytest.mark.parametrize("sharpness_factor", [0.1, 0.5, 1.0]) @pytest.mark.parametrize( "fn", [F.adjust_sharpness, transform_cls_to_functional(transforms.RandomAdjustSharpness, p=1)] ) def test_correctness_image(self, sharpness_factor, fn): image = make_image(dtype=torch.uint8, device="cpu") actual = fn(image, sharpness_factor=sharpness_factor) expected = F.to_image(F.adjust_sharpness(F.to_pil_image(image), sharpness_factor=sharpness_factor)) assert_equal(actual, expected) class TestAdjustContrast: @pytest.mark.parametrize("dtype", [torch.uint8, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, dtype, device): check_kernel(F.adjust_contrast_image, make_image(dtype=dtype, device=device), contrast_factor=0.5) def test_kernel_video(self): check_kernel(F.adjust_contrast_video, make_video(), contrast_factor=0.5) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image, make_image_pil, make_video]) def test_functional(self, make_input): check_functional(F.adjust_contrast, make_input(), contrast_factor=0.5) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.adjust_contrast_image, torch.Tensor), (F._color._adjust_contrast_image_pil, PIL.Image.Image), (F.adjust_contrast_image, tv_tensors.Image), (F.adjust_contrast_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.adjust_contrast, kernel=kernel, input_type=input_type) def test_functional_error(self): with pytest.raises(TypeError, match="permitted channel values are 1 or 3"): F.adjust_contrast(make_image(color_space="RGBA"), contrast_factor=0.5) with pytest.raises(ValueError, match="is not non-negative"): F.adjust_contrast(make_image(), contrast_factor=-1) @pytest.mark.parametrize("contrast_factor", [0.1, 0.5, 1.0]) def test_correctness_image(self, contrast_factor): image = make_image(dtype=torch.uint8, device="cpu") actual = F.adjust_contrast(image, contrast_factor=contrast_factor) expected = F.to_image(F.adjust_contrast(F.to_pil_image(image), contrast_factor=contrast_factor)) assert_close(actual, expected, rtol=0, atol=1) class TestAdjustGamma: @pytest.mark.parametrize("dtype", [torch.uint8, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, dtype, device): check_kernel(F.adjust_gamma_image, make_image(dtype=dtype, device=device), gamma=0.5) def test_kernel_video(self): check_kernel(F.adjust_gamma_video, make_video(), gamma=0.5) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image, make_image_pil, make_video]) def test_functional(self, make_input): check_functional(F.adjust_gamma, make_input(), gamma=0.5) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.adjust_gamma_image, torch.Tensor), (F._color._adjust_gamma_image_pil, PIL.Image.Image), (F.adjust_gamma_image, tv_tensors.Image), (F.adjust_gamma_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.adjust_gamma, kernel=kernel, input_type=input_type) def test_functional_error(self): with pytest.raises(ValueError, match="Gamma should be a non-negative real number"): F.adjust_gamma(make_image(), gamma=-1) @pytest.mark.parametrize("gamma", [0.1, 0.5, 1.0]) @pytest.mark.parametrize("gain", [0.1, 1.0, 2.0]) def test_correctness_image(self, gamma, gain): image = make_image(dtype=torch.uint8, device="cpu") actual = F.adjust_gamma(image, gamma=gamma, gain=gain) expected = F.to_image(F.adjust_gamma(F.to_pil_image(image), gamma=gamma, gain=gain)) assert_equal(actual, expected) class TestAdjustHue: @pytest.mark.parametrize("dtype", [torch.uint8, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, dtype, device): check_kernel(F.adjust_hue_image, make_image(dtype=dtype, device=device), hue_factor=0.25) def test_kernel_video(self): check_kernel(F.adjust_hue_video, make_video(), hue_factor=0.25) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image, make_image_pil, make_video]) def test_functional(self, make_input): check_functional(F.adjust_hue, make_input(), hue_factor=0.25) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.adjust_hue_image, torch.Tensor), (F._color._adjust_hue_image_pil, PIL.Image.Image), (F.adjust_hue_image, tv_tensors.Image), (F.adjust_hue_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.adjust_hue, kernel=kernel, input_type=input_type) def test_functional_error(self): with pytest.raises(TypeError, match="permitted channel values are 1 or 3"): F.adjust_hue(make_image(color_space="RGBA"), hue_factor=0.25) for hue_factor in [-1, 1]: with pytest.raises(ValueError, match=re.escape("is not in [-0.5, 0.5]")): F.adjust_hue(make_image(), hue_factor=hue_factor) @pytest.mark.parametrize("hue_factor", [-0.5, -0.3, 0.0, 0.2, 0.5]) def test_correctness_image(self, hue_factor): image = make_image(dtype=torch.uint8, device="cpu") actual = F.adjust_hue(image, hue_factor=hue_factor) expected = F.to_image(F.adjust_hue(F.to_pil_image(image), hue_factor=hue_factor)) mae = (actual.float() - expected.float()).abs().mean() assert mae < 2 class TestAdjustSaturation: @pytest.mark.parametrize("dtype", [torch.uint8, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, dtype, device): check_kernel(F.adjust_saturation_image, make_image(dtype=dtype, device=device), saturation_factor=0.5) def test_kernel_video(self): check_kernel(F.adjust_saturation_video, make_video(), saturation_factor=0.5) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image, make_image_pil, make_video]) def test_functional(self, make_input): check_functional(F.adjust_saturation, make_input(), saturation_factor=0.5) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.adjust_saturation_image, torch.Tensor), (F._color._adjust_saturation_image_pil, PIL.Image.Image), (F.adjust_saturation_image, tv_tensors.Image), (F.adjust_saturation_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.adjust_saturation, kernel=kernel, input_type=input_type) def test_functional_error(self): with pytest.raises(TypeError, match="permitted channel values are 1 or 3"): F.adjust_saturation(make_image(color_space="RGBA"), saturation_factor=0.5) with pytest.raises(ValueError, match="is not non-negative"): F.adjust_saturation(make_image(), saturation_factor=-1) @pytest.mark.parametrize("saturation_factor", [0.1, 0.5, 1.0]) def test_correctness_image(self, saturation_factor): image = make_image(dtype=torch.uint8, device="cpu") actual = F.adjust_saturation(image, saturation_factor=saturation_factor) expected = F.to_image(F.adjust_saturation(F.to_pil_image(image), saturation_factor=saturation_factor)) assert_close(actual, expected, rtol=0, atol=1) class TestFiveTenCrop: INPUT_SIZE = (17, 11) OUTPUT_SIZE = (3, 5) @pytest.mark.parametrize("dtype", [torch.uint8, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("kernel", [F.five_crop_image, F.ten_crop_image]) def test_kernel_image(self, dtype, device, kernel): check_kernel( kernel, make_image(self.INPUT_SIZE, dtype=dtype, device=device), size=self.OUTPUT_SIZE, check_batched_vs_unbatched=False, ) @pytest.mark.parametrize("kernel", [F.five_crop_video, F.ten_crop_video]) def test_kernel_video(self, kernel): check_kernel(kernel, make_video(self.INPUT_SIZE), size=self.OUTPUT_SIZE, check_batched_vs_unbatched=False) def _functional_wrapper(self, fn): # This wrapper is needed to make five_crop / ten_crop compatible with check_functional, since that requires a # single output rather than a sequence. @functools.wraps(fn) def wrapper(*args, **kwargs): outputs = fn(*args, **kwargs) return outputs[0] return wrapper @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_video], ) @pytest.mark.parametrize("functional", [F.five_crop, F.ten_crop]) def test_functional(self, make_input, functional): check_functional( self._functional_wrapper(functional), make_input(self.INPUT_SIZE), size=self.OUTPUT_SIZE, check_scripted_smoke=False, ) @pytest.mark.parametrize( ("functional", "kernel", "input_type"), [ (F.five_crop, F.five_crop_image, torch.Tensor), (F.five_crop, F._geometry._five_crop_image_pil, PIL.Image.Image), (F.five_crop, F.five_crop_image, tv_tensors.Image), (F.five_crop, F.five_crop_video, tv_tensors.Video), (F.ten_crop, F.ten_crop_image, torch.Tensor), (F.ten_crop, F._geometry._ten_crop_image_pil, PIL.Image.Image), (F.ten_crop, F.ten_crop_image, tv_tensors.Image), (F.ten_crop, F.ten_crop_video, tv_tensors.Video), ], ) def test_functional_signature(self, functional, kernel, input_type): check_functional_kernel_signature_match(functional, kernel=kernel, input_type=input_type) class _TransformWrapper(nn.Module): # This wrapper is needed to make FiveCrop / TenCrop compatible with check_transform, since that requires a # single output rather than a sequence. _v1_transform_cls = None def _extract_params_for_v1_transform(self): return dict(five_ten_crop_transform=self.five_ten_crop_transform) def __init__(self, five_ten_crop_transform): super().__init__() type(self)._v1_transform_cls = type(self) self.five_ten_crop_transform = five_ten_crop_transform def forward(self, input: torch.Tensor) -> torch.Tensor: outputs = self.five_ten_crop_transform(input) return outputs[0] @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_video], ) @pytest.mark.parametrize("transform_cls", [transforms.FiveCrop, transforms.TenCrop]) def test_transform(self, make_input, transform_cls): check_transform( self._TransformWrapper(transform_cls(size=self.OUTPUT_SIZE)), make_input(self.INPUT_SIZE), check_sample_input=False, ) @pytest.mark.parametrize("make_input", [make_bounding_boxes, make_detection_masks]) @pytest.mark.parametrize("transform_cls", [transforms.FiveCrop, transforms.TenCrop]) def test_transform_error(self, make_input, transform_cls): transform = transform_cls(size=self.OUTPUT_SIZE) with pytest.raises(TypeError, match="not supported"): transform(make_input(self.INPUT_SIZE)) @pytest.mark.parametrize("fn", [F.five_crop, transform_cls_to_functional(transforms.FiveCrop)]) def test_correctness_image_five_crop(self, fn): image = make_image(self.INPUT_SIZE, dtype=torch.uint8, device="cpu") actual = fn(image, size=self.OUTPUT_SIZE) expected = F.five_crop(F.to_pil_image(image), size=self.OUTPUT_SIZE) assert isinstance(actual, tuple) assert_equal(actual, [F.to_image(e) for e in expected]) @pytest.mark.parametrize("fn_or_class", [F.ten_crop, transforms.TenCrop]) @pytest.mark.parametrize("vertical_flip", [False, True]) def test_correctness_image_ten_crop(self, fn_or_class, vertical_flip): if fn_or_class is transforms.TenCrop: fn = transform_cls_to_functional(fn_or_class, size=self.OUTPUT_SIZE, vertical_flip=vertical_flip) kwargs = dict() else: fn = fn_or_class kwargs = dict(size=self.OUTPUT_SIZE, vertical_flip=vertical_flip) image = make_image(self.INPUT_SIZE, dtype=torch.uint8, device="cpu") actual = fn(image, **kwargs) expected = F.ten_crop(F.to_pil_image(image), size=self.OUTPUT_SIZE, vertical_flip=vertical_flip) assert isinstance(actual, tuple) assert_equal(actual, [F.to_image(e) for e in expected]) class TestColorJitter: @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_video], ) @pytest.mark.parametrize("dtype", [torch.uint8, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_transform(self, make_input, dtype, device): if make_input is make_image_pil and not (dtype is torch.uint8 and device == "cpu"): pytest.skip( "PIL image tests with parametrization other than dtype=torch.uint8 and device='cpu' " "will degenerate to that anyway." ) check_transform( transforms.ColorJitter(brightness=0.5, contrast=0.5, saturation=0.5, hue=0.25), make_input(dtype=dtype, device=device), ) def test_transform_noop(self): input = make_image() input_version = input._version transform = transforms.ColorJitter() output = transform(input) assert output is input assert output.data_ptr() == input.data_ptr() assert output._version == input_version def test_transform_error(self): with pytest.raises(ValueError, match="must be non negative"): transforms.ColorJitter(brightness=-1) for brightness in [object(), [1, 2, 3]]: with pytest.raises(TypeError, match="single number or a sequence with length 2"): transforms.ColorJitter(brightness=brightness) with pytest.raises(ValueError, match="values should be between"): transforms.ColorJitter(brightness=(-1, 0.5)) with pytest.raises(ValueError, match="values should be between"): transforms.ColorJitter(hue=1) @pytest.mark.parametrize("brightness", [None, 0.1, (0.2, 0.3)]) @pytest.mark.parametrize("contrast", [None, 0.4, (0.5, 0.6)]) @pytest.mark.parametrize("saturation", [None, 0.7, (0.8, 0.9)]) @pytest.mark.parametrize("hue", [None, 0.3, (-0.1, 0.2)]) def test_transform_correctness(self, brightness, contrast, saturation, hue): image = make_image(dtype=torch.uint8, device="cpu") transform = transforms.ColorJitter(brightness=brightness, contrast=contrast, saturation=saturation, hue=hue) with freeze_rng_state(): torch.manual_seed(0) actual = transform(image) torch.manual_seed(0) expected = F.to_image(transform(F.to_pil_image(image))) mae = (actual.float() - expected.float()).abs().mean() assert mae < 2 class TestRgbToGrayscale: @pytest.mark.parametrize("dtype", [torch.uint8, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, dtype, device): check_kernel(F.rgb_to_grayscale_image, make_image(dtype=dtype, device=device)) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image_pil, make_image]) def test_functional(self, make_input): check_functional(F.rgb_to_grayscale, make_input()) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.rgb_to_grayscale_image, torch.Tensor), (F._color._rgb_to_grayscale_image_pil, PIL.Image.Image), (F.rgb_to_grayscale_image, tv_tensors.Image), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.rgb_to_grayscale, kernel=kernel, input_type=input_type) @pytest.mark.parametrize("transform", [transforms.Grayscale(), transforms.RandomGrayscale(p=1)]) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image_pil, make_image]) def test_transform(self, transform, make_input): check_transform(transform, make_input()) @pytest.mark.parametrize("num_output_channels", [1, 3]) @pytest.mark.parametrize("color_space", ["RGB", "GRAY"]) @pytest.mark.parametrize("fn", [F.rgb_to_grayscale, transform_cls_to_functional(transforms.Grayscale)]) def test_image_correctness(self, num_output_channels, color_space, fn): image = make_image(dtype=torch.uint8, device="cpu", color_space=color_space) actual = fn(image, num_output_channels=num_output_channels) expected = F.to_image(F.rgb_to_grayscale(F.to_pil_image(image), num_output_channels=num_output_channels)) assert_equal(actual, expected, rtol=0, atol=1) def test_expanded_channels_are_not_views_into_the_same_underlying_tensor(self): image = make_image(dtype=torch.uint8, device="cpu", color_space="GRAY") output_image = F.rgb_to_grayscale(image, num_output_channels=3) assert_equal(output_image[0][0][0], output_image[1][0][0]) output_image[0][0][0] = output_image[0][0][0] + 1 assert output_image[0][0][0] != output_image[1][0][0] @pytest.mark.parametrize("num_input_channels", [1, 3]) def test_random_transform_correctness(self, num_input_channels): image = make_image( color_space={ 1: "GRAY", 3: "RGB", }[num_input_channels], dtype=torch.uint8, device="cpu", ) transform = transforms.RandomGrayscale(p=1) actual = transform(image) expected = F.to_image(F.rgb_to_grayscale(F.to_pil_image(image), num_output_channels=num_input_channels)) assert_equal(actual, expected, rtol=0, atol=1) class TestGrayscaleToRgb: @pytest.mark.parametrize("dtype", [torch.uint8, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_kernel_image(self, dtype, device): check_kernel(F.grayscale_to_rgb_image, make_image(dtype=dtype, device=device)) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image_pil, make_image]) def test_functional(self, make_input): check_functional(F.grayscale_to_rgb, make_input()) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.rgb_to_grayscale_image, torch.Tensor), (F._color._rgb_to_grayscale_image_pil, PIL.Image.Image), (F.rgb_to_grayscale_image, tv_tensors.Image), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.grayscale_to_rgb, kernel=kernel, input_type=input_type) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image_pil, make_image]) def test_transform(self, make_input): check_transform(transforms.RGB(), make_input(color_space="GRAY")) @pytest.mark.parametrize("fn", [F.grayscale_to_rgb, transform_cls_to_functional(transforms.RGB)]) def test_image_correctness(self, fn): image = make_image(dtype=torch.uint8, device="cpu", color_space="GRAY") actual = fn(image) expected = F.to_image(F.grayscale_to_rgb(F.to_pil_image(image))) assert_equal(actual, expected, rtol=0, atol=1) def test_expanded_channels_are_not_views_into_the_same_underlying_tensor(self): image = make_image(dtype=torch.uint8, device="cpu", color_space="GRAY") output_image = F.grayscale_to_rgb(image) assert_equal(output_image[0][0][0], output_image[1][0][0]) output_image[0][0][0] = output_image[0][0][0] + 1 assert output_image[0][0][0] != output_image[1][0][0] def test_rgb_image_is_unchanged(self): image = make_image(dtype=torch.uint8, device="cpu", color_space="RGB") assert_equal(image.shape[-3], 3) assert_equal(F.grayscale_to_rgb(image), image) class TestRandomZoomOut: # Tests are light because this largely relies on the already tested `pad` kernels. @pytest.mark.parametrize( "make_input", [ make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_detection_masks, make_video, ], ) def test_transform(self, make_input): check_transform(transforms.RandomZoomOut(p=1), make_input()) def test_transform_error(self): for side_range in [None, 1, [1, 2, 3]]: with pytest.raises( ValueError if isinstance(side_range, list) else TypeError, match="should be a sequence of length 2" ): transforms.RandomZoomOut(side_range=side_range) for side_range in [[0.5, 1.5], [2.0, 1.0]]: with pytest.raises(ValueError, match="Invalid side range"): transforms.RandomZoomOut(side_range=side_range) @pytest.mark.parametrize("side_range", [(1.0, 4.0), [2.0, 5.0]]) @pytest.mark.parametrize( "make_input", [ make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_detection_masks, make_video, ], ) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_transform_params_correctness(self, side_range, make_input, device): if make_input is make_image_pil and device != "cpu": pytest.skip("PIL image tests with parametrization device!='cpu' will degenerate to that anyway.") transform = transforms.RandomZoomOut(side_range=side_range) input = make_input() height, width = F.get_size(input) params = transform._get_params([input]) assert "padding" in params padding = params["padding"] assert len(padding) == 4 assert 0 <= padding[0] <= (side_range[1] - 1) * width assert 0 <= padding[1] <= (side_range[1] - 1) * height assert 0 <= padding[2] <= (side_range[1] - 1) * width assert 0 <= padding[3] <= (side_range[1] - 1) * height class TestRandomPhotometricDistort: # Tests are light because this largely relies on the already tested # `adjust_{brightness,contrast,saturation,hue}` and `permute_channels` kernels. @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_video], ) @pytest.mark.parametrize("dtype", [torch.uint8, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_transform(self, make_input, dtype, device): if make_input is make_image_pil and not (dtype is torch.uint8 and device == "cpu"): pytest.skip( "PIL image tests with parametrization other than dtype=torch.uint8 and device='cpu' " "will degenerate to that anyway." ) check_transform( transforms.RandomPhotometricDistort( brightness=(0.3, 0.4), contrast=(0.5, 0.6), saturation=(0.7, 0.8), hue=(-0.1, 0.2), p=1 ), make_input(dtype=dtype, device=device), ) class TestScaleJitter: # Tests are light because this largely relies on the already tested `resize` kernels. INPUT_SIZE = (17, 11) TARGET_SIZE = (12, 13) @pytest.mark.parametrize( "make_input", [make_image_tensor, make_image_pil, make_image, make_bounding_boxes, make_segmentation_mask, make_video], ) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_transform(self, make_input, device): if make_input is make_image_pil and device != "cpu": pytest.skip("PIL image tests with parametrization device!='cpu' will degenerate to that anyway.") check_transform(transforms.ScaleJitter(self.TARGET_SIZE), make_input(self.INPUT_SIZE, device=device)) def test__get_params(self): input_size = self.INPUT_SIZE target_size = self.TARGET_SIZE scale_range = (0.5, 1.5) transform = transforms.ScaleJitter(target_size=target_size, scale_range=scale_range) params = transform._get_params([make_image(input_size)]) assert "size" in params size = params["size"] assert isinstance(size, tuple) and len(size) == 2 height, width = size r_min = min(target_size[1] / input_size[0], target_size[0] / input_size[1]) * scale_range[0] r_max = min(target_size[1] / input_size[0], target_size[0] / input_size[1]) * scale_range[1] assert int(input_size[0] * r_min) <= height <= int(input_size[0] * r_max) assert int(input_size[1] * r_min) <= width <= int(input_size[1] * r_max) class TestLinearTransform: def _make_matrix_and_vector(self, input, *, device=None): device = device or input.device numel = math.prod(F.get_dimensions(input)) transformation_matrix = torch.randn((numel, numel), device=device) mean_vector = torch.randn((numel,), device=device) return transformation_matrix, mean_vector def _sample_input_adapter(self, transform, input, device): return {key: value for key, value in input.items() if not isinstance(value, PIL.Image.Image)} @pytest.mark.parametrize("make_input", [make_image_tensor, make_image, make_video]) @pytest.mark.parametrize("dtype", [torch.uint8, torch.float32]) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_transform(self, make_input, dtype, device): input = make_input(dtype=dtype, device=device) check_transform( transforms.LinearTransformation(*self._make_matrix_and_vector(input)), input, check_sample_input=self._sample_input_adapter, # Compat check is failing on M1 with: # AssertionError: Tensor-likes are not close! # Mismatched elements: 1 / 561 (0.2%) # See https://github.com/pytorch/vision/issues/8453 check_v1_compatibility=(sys.platform != "darwin"), ) def test_transform_error(self): with pytest.raises(ValueError, match="transformation_matrix should be square"): transforms.LinearTransformation(transformation_matrix=torch.rand(2, 3), mean_vector=torch.rand(2)) with pytest.raises(ValueError, match="mean_vector should have the same length"): transforms.LinearTransformation(transformation_matrix=torch.rand(2, 2), mean_vector=torch.rand(1)) for matrix_dtype, vector_dtype in [(torch.float32, torch.float64), (torch.float64, torch.float32)]: with pytest.raises(ValueError, match="Input tensors should have the same dtype"): transforms.LinearTransformation( transformation_matrix=torch.rand(2, 2, dtype=matrix_dtype), mean_vector=torch.rand(2, dtype=vector_dtype), ) image = make_image() transform = transforms.LinearTransformation(transformation_matrix=torch.rand(2, 2), mean_vector=torch.rand(2)) with pytest.raises(ValueError, match="Input tensor and transformation matrix have incompatible shape"): transform(image) transform = transforms.LinearTransformation(*self._make_matrix_and_vector(image)) with pytest.raises(TypeError, match="does not support PIL images"): transform(F.to_pil_image(image)) @needs_cuda def test_transform_error_cuda(self): for matrix_device, vector_device in [("cuda", "cpu"), ("cpu", "cuda")]: with pytest.raises(ValueError, match="Input tensors should be on the same device"): transforms.LinearTransformation( transformation_matrix=torch.rand(2, 2, device=matrix_device), mean_vector=torch.rand(2, device=vector_device), ) for input_device, param_device in [("cuda", "cpu"), ("cpu", "cuda")]: input = make_image(device=input_device) transform = transforms.LinearTransformation(*self._make_matrix_and_vector(input, device=param_device)) with pytest.raises( ValueError, match="Input tensor should be on the same device as transformation matrix and mean vector" ): transform(input) def make_image_numpy(*args, **kwargs): image = make_image_tensor(*args, **kwargs) return image.permute((1, 2, 0)).numpy() class TestToImage: @pytest.mark.parametrize("make_input", [make_image_tensor, make_image_pil, make_image, make_image_numpy]) @pytest.mark.parametrize("fn", [F.to_image, transform_cls_to_functional(transforms.ToImage)]) def test_functional_and_transform(self, make_input, fn): input = make_input() output = fn(input) assert isinstance(output, tv_tensors.Image) input_size = list(input.shape[:2]) if isinstance(input, np.ndarray) else F.get_size(input) assert F.get_size(output) == input_size if isinstance(input, torch.Tensor): assert output.data_ptr() == input.data_ptr() def test_2d_np_array(self): # Non-regression test for https://github.com/pytorch/vision/issues/8255 input = np.random.rand(10, 10) assert F.to_image(input).shape == (1, 10, 10) def test_functional_error(self): with pytest.raises(TypeError, match="Input can either be a pure Tensor, a numpy array, or a PIL image"): F.to_image(object()) class TestToPILImage: @pytest.mark.parametrize("make_input", [make_image_tensor, make_image, make_image_numpy]) @pytest.mark.parametrize("color_space", ["RGB", "GRAY"]) @pytest.mark.parametrize("fn", [F.to_pil_image, transform_cls_to_functional(transforms.ToPILImage)]) def test_functional_and_transform(self, make_input, color_space, fn): input = make_input(color_space=color_space) output = fn(input) assert isinstance(output, PIL.Image.Image) input_size = list(input.shape[:2]) if isinstance(input, np.ndarray) else F.get_size(input) assert F.get_size(output) == input_size def test_functional_error(self): with pytest.raises(TypeError, match="pic should be Tensor or ndarray"): F.to_pil_image(object()) for ndim in [1, 4]: with pytest.raises(ValueError, match="pic should be 2/3 dimensional"): F.to_pil_image(torch.empty(*[1] * ndim)) with pytest.raises(ValueError, match="pic should not have > 4 channels"): num_channels = 5 F.to_pil_image(torch.empty(num_channels, 1, 1)) class TestToTensor: @pytest.mark.parametrize("make_input", [make_image_tensor, make_image_pil, make_image, make_image_numpy]) def test_smoke(self, make_input): with pytest.warns(UserWarning, match="deprecated and will be removed"): transform = transforms.ToTensor() input = make_input() output = transform(input) input_size = list(input.shape[:2]) if isinstance(input, np.ndarray) else F.get_size(input) assert F.get_size(output) == input_size class TestPILToTensor: @pytest.mark.parametrize("color_space", ["RGB", "GRAY"]) @pytest.mark.parametrize("fn", [F.pil_to_tensor, transform_cls_to_functional(transforms.PILToTensor)]) def test_functional_and_transform(self, color_space, fn): input = make_image_pil(color_space=color_space) output = fn(input) assert isinstance(output, torch.Tensor) and not isinstance(output, tv_tensors.TVTensor) assert F.get_size(output) == F.get_size(input) def test_functional_error(self): with pytest.raises(TypeError, match="pic should be PIL Image"): F.pil_to_tensor(object()) class TestLambda: @pytest.mark.parametrize("input", [object(), torch.empty(()), np.empty(()), "string", 1, 0.0]) @pytest.mark.parametrize("types", [(), (torch.Tensor, np.ndarray)]) def test_transform(self, input, types): was_applied = False def was_applied_fn(input): nonlocal was_applied was_applied = True return input transform = transforms.Lambda(was_applied_fn, *types) output = transform(input) assert output is input assert was_applied is (not types or isinstance(input, types)) @pytest.mark.parametrize( ("alias", "target"), [ pytest.param(alias, target, id=alias.__name__) for alias, target in [ (F.hflip, F.horizontal_flip), (F.vflip, F.vertical_flip), (F.get_image_num_channels, F.get_num_channels), (F.to_pil_image, F.to_pil_image), (F.elastic_transform, F.elastic), (F.to_grayscale, F.rgb_to_grayscale), ] ], ) def test_alias(alias, target): assert alias is target @pytest.mark.parametrize( "make_inputs", itertools.permutations( [ make_image_tensor, make_image_tensor, make_image_pil, make_image, make_video, ], 3, ), ) def test_pure_tensor_heuristic(make_inputs): flat_inputs = [make_input() for make_input in make_inputs] def split_on_pure_tensor(to_split): # This takes a sequence that is structurally aligned with `flat_inputs` and splits its items into three parts: # 1. The first pure tensor. If none is present, this will be `None` # 2. A list of the remaining pure tensors # 3. A list of all other items pure_tensors = [] others = [] # Splitting always happens on the original `flat_inputs` to avoid any erroneous type changes by the transform to # affect the splitting. for item, inpt in zip(to_split, flat_inputs): (pure_tensors if is_pure_tensor(inpt) else others).append(item) return pure_tensors[0] if pure_tensors else None, pure_tensors[1:], others class CopyCloneTransform(transforms.Transform): def _transform(self, inpt, params): return inpt.clone() if isinstance(inpt, torch.Tensor) else inpt.copy() @staticmethod def was_applied(output, inpt): identity = output is inpt if identity: return False # Make sure nothing fishy is going on assert_equal(output, inpt) return True first_pure_tensor_input, other_pure_tensor_inputs, other_inputs = split_on_pure_tensor(flat_inputs) transform = CopyCloneTransform() transformed_sample = transform(flat_inputs) first_pure_tensor_output, other_pure_tensor_outputs, other_outputs = split_on_pure_tensor(transformed_sample) if first_pure_tensor_input is not None: if other_inputs: assert not transform.was_applied(first_pure_tensor_output, first_pure_tensor_input) else: assert transform.was_applied(first_pure_tensor_output, first_pure_tensor_input) for output, inpt in zip(other_pure_tensor_outputs, other_pure_tensor_inputs): assert not transform.was_applied(output, inpt) for input, output in zip(other_inputs, other_outputs): assert transform.was_applied(output, input) class TestRandomIoUCrop: @pytest.mark.parametrize("device", cpu_and_cuda()) @pytest.mark.parametrize("options", [[0.5, 0.9], [2.0]]) def test__get_params(self, device, options): orig_h, orig_w = size = (24, 32) image = make_image(size) bboxes = tv_tensors.BoundingBoxes( torch.tensor([[1, 1, 10, 10], [20, 20, 23, 23], [1, 20, 10, 23], [20, 1, 23, 10]]), format="XYXY", canvas_size=size, device=device, ) sample = [image, bboxes] transform = transforms.RandomIoUCrop(sampler_options=options) n_samples = 5 for _ in range(n_samples): params = transform._get_params(sample) if options == [2.0]: assert len(params) == 0 return assert len(params["is_within_crop_area"]) > 0 assert params["is_within_crop_area"].dtype == torch.bool assert int(transform.min_scale * orig_h) <= params["height"] <= int(transform.max_scale * orig_h) assert int(transform.min_scale * orig_w) <= params["width"] <= int(transform.max_scale * orig_w) left, top = params["left"], params["top"] new_h, new_w = params["height"], params["width"] ious = box_iou( bboxes, torch.tensor([[left, top, left + new_w, top + new_h]], dtype=bboxes.dtype, device=bboxes.device), ) assert ious.max() >= options[0] or ious.max() >= options[1], f"{ious} vs {options}" def test__transform_empty_params(self, mocker): transform = transforms.RandomIoUCrop(sampler_options=[2.0]) image = tv_tensors.Image(torch.rand(1, 3, 4, 4)) bboxes = tv_tensors.BoundingBoxes(torch.tensor([[1, 1, 2, 2]]), format="XYXY", canvas_size=(4, 4)) label = torch.tensor([1]) sample = [image, bboxes, label] # Let's mock transform._get_params to control the output: transform._get_params = mocker.MagicMock(return_value={}) output = transform(sample) torch.testing.assert_close(output, sample) def test_forward_assertion(self): transform = transforms.RandomIoUCrop() with pytest.raises( TypeError, match="requires input sample to contain tensor or PIL images and bounding boxes", ): transform(torch.tensor(0)) def test__transform(self, mocker): transform = transforms.RandomIoUCrop() size = (32, 24) image = make_image(size) bboxes = make_bounding_boxes(format="XYXY", canvas_size=size, num_boxes=6) masks = make_detection_masks(size, num_masks=6) sample = [image, bboxes, masks] is_within_crop_area = torch.tensor([0, 1, 0, 1, 0, 1], dtype=torch.bool) params = dict(top=1, left=2, height=12, width=12, is_within_crop_area=is_within_crop_area) transform._get_params = mocker.MagicMock(return_value=params) output = transform(sample) # check number of bboxes vs number of labels: output_bboxes = output[1] assert isinstance(output_bboxes, tv_tensors.BoundingBoxes) assert (output_bboxes[~is_within_crop_area] == 0).all() output_masks = output[2] assert isinstance(output_masks, tv_tensors.Mask) class TestRandomShortestSize: @pytest.mark.parametrize("min_size,max_size", [([5, 9], 20), ([5, 9], None)]) def test__get_params(self, min_size, max_size): canvas_size = (3, 10) transform = transforms.RandomShortestSize(min_size=min_size, max_size=max_size, antialias=True) sample = make_image(canvas_size) params = transform._get_params([sample]) assert "size" in params size = params["size"] assert isinstance(size, tuple) and len(size) == 2 longer = max(size) shorter = min(size) if max_size is not None: assert longer <= max_size assert shorter <= max_size else: assert shorter in min_size class TestRandomResize: def test__get_params(self): min_size = 3 max_size = 6 transform = transforms.RandomResize(min_size=min_size, max_size=max_size, antialias=True) for _ in range(10): params = transform._get_params([]) assert isinstance(params["size"], list) and len(params["size"]) == 1 size = params["size"][0] assert min_size <= size < max_size @pytest.mark.parametrize("image_type", (PIL.Image, torch.Tensor, tv_tensors.Image)) @pytest.mark.parametrize("label_type", (torch.Tensor, int)) @pytest.mark.parametrize("dataset_return_type", (dict, tuple)) @pytest.mark.parametrize("to_tensor", (transforms.ToTensor, transforms.ToImage)) def test_classification_preset(image_type, label_type, dataset_return_type, to_tensor): image = tv_tensors.Image(torch.randint(0, 256, size=(1, 3, 250, 250), dtype=torch.uint8)) if image_type is PIL.Image: image = to_pil_image(image[0]) elif image_type is torch.Tensor: image = image.as_subclass(torch.Tensor) assert is_pure_tensor(image) label = 1 if label_type is int else torch.tensor([1]) if dataset_return_type is dict: sample = { "image": image, "label": label, } else: sample = image, label if to_tensor is transforms.ToTensor: with pytest.warns(UserWarning, match="deprecated and will be removed"): to_tensor = to_tensor() else: to_tensor = to_tensor() t = transforms.Compose( [ transforms.RandomResizedCrop((224, 224), antialias=True), transforms.RandomHorizontalFlip(p=1), transforms.RandAugment(), transforms.TrivialAugmentWide(), transforms.AugMix(), transforms.AutoAugment(), to_tensor, # TODO: ConvertImageDtype is a pass-through on PIL images, is that # intended? This results in a failure if we convert to tensor after # it, because the image would still be uint8 which make Normalize # fail. transforms.ConvertImageDtype(torch.float), transforms.Normalize(mean=[0, 0, 0], std=[1, 1, 1]), transforms.RandomErasing(p=1), ] ) out = t(sample) assert type(out) == type(sample) if dataset_return_type is tuple: out_image, out_label = out else: assert out.keys() == sample.keys() out_image, out_label = out.values() assert out_image.shape[-2:] == (224, 224) assert out_label == label @pytest.mark.parametrize("image_type", (PIL.Image, torch.Tensor, tv_tensors.Image)) @pytest.mark.parametrize("data_augmentation", ("hflip", "lsj", "multiscale", "ssd", "ssdlite")) @pytest.mark.parametrize("to_tensor", (transforms.ToTensor, transforms.ToImage)) @pytest.mark.parametrize("sanitize", (True, False)) def test_detection_preset(image_type, data_augmentation, to_tensor, sanitize): torch.manual_seed(0) if to_tensor is transforms.ToTensor: with pytest.warns(UserWarning, match="deprecated and will be removed"): to_tensor = to_tensor() else: to_tensor = to_tensor() if data_augmentation == "hflip": t = [ transforms.RandomHorizontalFlip(p=1), to_tensor, transforms.ConvertImageDtype(torch.float), ] elif data_augmentation == "lsj": t = [ transforms.ScaleJitter(target_size=(1024, 1024), antialias=True), # Note: replaced FixedSizeCrop with RandomCrop, becuase we're # leaving FixedSizeCrop in prototype for now, and it expects Label # classes which we won't release yet. # transforms.FixedSizeCrop( # size=(1024, 1024), fill=defaultdict(lambda: (123.0, 117.0, 104.0), {tv_tensors.Mask: 0}) # ), transforms.RandomCrop((1024, 1024), pad_if_needed=True), transforms.RandomHorizontalFlip(p=1), to_tensor, transforms.ConvertImageDtype(torch.float), ] elif data_augmentation == "multiscale": t = [ transforms.RandomShortestSize( min_size=(480, 512, 544, 576, 608, 640, 672, 704, 736, 768, 800), max_size=1333, antialias=True ), transforms.RandomHorizontalFlip(p=1), to_tensor, transforms.ConvertImageDtype(torch.float), ] elif data_augmentation == "ssd": t = [ transforms.RandomPhotometricDistort(p=1), transforms.RandomZoomOut(fill={"others": (123.0, 117.0, 104.0), tv_tensors.Mask: 0}, p=1), transforms.RandomIoUCrop(), transforms.RandomHorizontalFlip(p=1), to_tensor, transforms.ConvertImageDtype(torch.float), ] elif data_augmentation == "ssdlite": t = [ transforms.RandomIoUCrop(), transforms.RandomHorizontalFlip(p=1), to_tensor, transforms.ConvertImageDtype(torch.float), ] if sanitize: t += [transforms.SanitizeBoundingBoxes()] t = transforms.Compose(t) num_boxes = 5 H = W = 250 image = tv_tensors.Image(torch.randint(0, 256, size=(1, 3, H, W), dtype=torch.uint8)) if image_type is PIL.Image: image = to_pil_image(image[0]) elif image_type is torch.Tensor: image = image.as_subclass(torch.Tensor) assert is_pure_tensor(image) label = torch.randint(0, 10, size=(num_boxes,)) boxes = torch.randint(0, min(H, W) // 2, size=(num_boxes, 4)) boxes[:, 2:] += boxes[:, :2] boxes = boxes.clamp(min=0, max=min(H, W)) boxes = tv_tensors.BoundingBoxes(boxes, format="XYXY", canvas_size=(H, W)) masks = tv_tensors.Mask(torch.randint(0, 2, size=(num_boxes, H, W), dtype=torch.uint8)) sample = { "image": image, "label": label, "boxes": boxes, "masks": masks, } out = t(sample) if isinstance(to_tensor, transforms.ToTensor) and image_type is not tv_tensors.Image: assert is_pure_tensor(out["image"]) else: assert isinstance(out["image"], tv_tensors.Image) assert isinstance(out["label"], type(sample["label"])) num_boxes_expected = { # ssd and ssdlite contain RandomIoUCrop which may "remove" some bbox. It # doesn't remove them strictly speaking, it just marks some boxes as # degenerate and those boxes will be later removed by # SanitizeBoundingBoxes(), which we add to the pipelines if the sanitize # param is True. # Note that the values below are probably specific to the random seed # set above (which is fine). (True, "ssd"): 5, (True, "ssdlite"): 4, }.get((sanitize, data_augmentation), num_boxes) assert out["boxes"].shape[0] == out["masks"].shape[0] == out["label"].shape[0] == num_boxes_expected class TestSanitizeBoundingBoxes: def _get_boxes_and_valid_mask(self, H=256, W=128, min_size=10, min_area=10): boxes_and_validity = [ ([0, 1, 10, 1], False), # Y1 == Y2 ([0, 1, 0, 20], False), # X1 == X2 ([0, 0, min_size - 1, 10], False), # H < min_size ([0, 0, 10, min_size - 1], False), # W < min_size ([0, 0, 10, H + 1], False), # Y2 > H ([0, 0, W + 1, 10], False), # X2 > W ([-1, 1, 10, 20], False), # any < 0 ([0, 0, -1, 20], False), # any < 0 ([0, 0, -10, -1], False), # any < 0 ([0, 0, min_size, 10], min_size * 10 >= min_area), # H < min_size ([0, 0, 10, min_size], min_size * 10 >= min_area), # W < min_size ([0, 0, W, H], W * H >= min_area), ([1, 1, 30, 20], 29 * 19 >= min_area), ([0, 0, 10, 10], 9 * 9 >= min_area), ([1, 1, 30, 20], 29 * 19 >= min_area), ] random.shuffle(boxes_and_validity) # For test robustness: mix order of wrong and correct cases boxes, expected_valid_mask = zip(*boxes_and_validity) boxes = tv_tensors.BoundingBoxes( boxes, format=tv_tensors.BoundingBoxFormat.XYXY, canvas_size=(H, W), ) return boxes, expected_valid_mask @pytest.mark.parametrize("min_size, min_area", ((1, 1), (10, 1), (10, 101))) @pytest.mark.parametrize( "labels_getter", ( "default", lambda inputs: inputs["labels"], lambda inputs: (inputs["labels"], inputs["other_labels"]), lambda inputs: [inputs["labels"], inputs["other_labels"]], None, lambda inputs: None, ), ) @pytest.mark.parametrize("sample_type", (tuple, dict)) def test_transform(self, min_size, min_area, labels_getter, sample_type): if sample_type is tuple and not isinstance(labels_getter, str): # The "lambda inputs: inputs["labels"]" labels_getter used in this test # doesn't work if the input is a tuple. return H, W = 256, 128 boxes, expected_valid_mask = self._get_boxes_and_valid_mask(H=H, W=W, min_size=min_size, min_area=min_area) valid_indices = [i for (i, is_valid) in enumerate(expected_valid_mask) if is_valid] labels = torch.arange(boxes.shape[0]) masks = tv_tensors.Mask(torch.randint(0, 2, size=(boxes.shape[0], H, W))) # other_labels corresponds to properties from COCO like iscrowd, area... # We only sanitize it when labels_getter returns a tuple other_labels = torch.arange(boxes.shape[0]) whatever = torch.rand(10) input_img = torch.randint(0, 256, size=(1, 3, H, W), dtype=torch.uint8) sample = { "image": input_img, "labels": labels, "boxes": boxes, "other_labels": other_labels, "whatever": whatever, "None": None, "masks": masks, } if sample_type is tuple: img = sample.pop("image") sample = (img, sample) out = transforms.SanitizeBoundingBoxes(min_size=min_size, min_area=min_area, labels_getter=labels_getter)( sample ) if sample_type is tuple: out_image = out[0] out_labels = out[1]["labels"] out_other_labels = out[1]["other_labels"] out_boxes = out[1]["boxes"] out_masks = out[1]["masks"] out_whatever = out[1]["whatever"] else: out_image = out["image"] out_labels = out["labels"] out_other_labels = out["other_labels"] out_boxes = out["boxes"] out_masks = out["masks"] out_whatever = out["whatever"] assert out_image is input_img assert out_whatever is whatever assert isinstance(out_boxes, tv_tensors.BoundingBoxes) assert isinstance(out_masks, tv_tensors.Mask) if labels_getter is None or (callable(labels_getter) and labels_getter(sample) is None): assert out_labels is labels assert out_other_labels is other_labels else: assert isinstance(out_labels, torch.Tensor) assert out_boxes.shape[0] == out_labels.shape[0] == out_masks.shape[0] # This works because we conveniently set labels to arange(num_boxes) assert out_labels.tolist() == valid_indices if callable(labels_getter) and isinstance(labels_getter(sample), (tuple, list)): assert_equal(out_other_labels, out_labels) else: assert_equal(out_other_labels, other_labels) @pytest.mark.parametrize("input_type", (torch.Tensor, tv_tensors.BoundingBoxes)) def test_functional(self, input_type): # Note: the "functional" F.sanitize_bounding_boxes was added after the class, so there is some # redundancy with test_transform() in terms of correctness checks. But that's OK. H, W, min_size = 256, 128, 10 boxes, expected_valid_mask = self._get_boxes_and_valid_mask(H=H, W=W, min_size=min_size) if input_type is tv_tensors.BoundingBoxes: format = canvas_size = None else: # just passing "XYXY" explicitly to make sure we support strings format, canvas_size = "XYXY", boxes.canvas_size boxes = boxes.as_subclass(torch.Tensor) boxes, valid = F.sanitize_bounding_boxes(boxes, format=format, canvas_size=canvas_size, min_size=min_size) assert_equal(valid, torch.tensor(expected_valid_mask)) assert type(valid) == torch.Tensor assert boxes.shape[0] == sum(valid) assert isinstance(boxes, input_type) def test_kernel(self): H, W, min_size = 256, 128, 10 boxes, _ = self._get_boxes_and_valid_mask(H=H, W=W, min_size=min_size) format, canvas_size = boxes.format, boxes.canvas_size boxes = boxes.as_subclass(torch.Tensor) check_kernel( F.sanitize_bounding_boxes, input=boxes, format=format, canvas_size=canvas_size, check_batched_vs_unbatched=False, ) def test_no_label(self): # Non-regression test for https://github.com/pytorch/vision/issues/7878 img = make_image() boxes = make_bounding_boxes() with pytest.raises(ValueError, match="or a two-tuple whose second item is a dict"): transforms.SanitizeBoundingBoxes()(img, boxes) out_img, out_boxes = transforms.SanitizeBoundingBoxes(labels_getter=None)(img, boxes) assert isinstance(out_img, tv_tensors.Image) assert isinstance(out_boxes, tv_tensors.BoundingBoxes) def test_errors_transform(self): good_bbox = tv_tensors.BoundingBoxes( [[0, 0, 10, 10]], format=tv_tensors.BoundingBoxFormat.XYXY, canvas_size=(20, 20), ) with pytest.raises(ValueError, match="min_size must be >= 1"): transforms.SanitizeBoundingBoxes(min_size=0) with pytest.raises(ValueError, match="min_area must be >= 1"): transforms.SanitizeBoundingBoxes(min_area=0) with pytest.raises(ValueError, match="labels_getter should either be 'default'"): transforms.SanitizeBoundingBoxes(labels_getter=12) with pytest.raises(ValueError, match="Could not infer where the labels are"): bad_labels_key = {"bbox": good_bbox, "BAD_KEY": torch.arange(good_bbox.shape[0])} transforms.SanitizeBoundingBoxes()(bad_labels_key) with pytest.raises(ValueError, match="must be a tensor"): not_a_tensor = {"bbox": good_bbox, "labels": torch.arange(good_bbox.shape[0]).tolist()} transforms.SanitizeBoundingBoxes()(not_a_tensor) with pytest.raises(ValueError, match="Number of boxes"): different_sizes = {"bbox": good_bbox, "labels": torch.arange(good_bbox.shape[0] + 3)} transforms.SanitizeBoundingBoxes()(different_sizes) def test_errors_functional(self): good_bbox = tv_tensors.BoundingBoxes( [[0, 0, 10, 10]], format=tv_tensors.BoundingBoxFormat.XYXY, canvas_size=(20, 20), ) with pytest.raises(ValueError, match="canvas_size cannot be None if bounding_boxes is a pure tensor"): F.sanitize_bounding_boxes(good_bbox.as_subclass(torch.Tensor), format="XYXY", canvas_size=None) with pytest.raises(ValueError, match="canvas_size cannot be None if bounding_boxes is a pure tensor"): F.sanitize_bounding_boxes(good_bbox.as_subclass(torch.Tensor), format=None, canvas_size=(10, 10)) with pytest.raises(ValueError, match="canvas_size must be None when bounding_boxes is a tv_tensors"): F.sanitize_bounding_boxes(good_bbox, format="XYXY", canvas_size=None) with pytest.raises(ValueError, match="canvas_size must be None when bounding_boxes is a tv_tensors"): F.sanitize_bounding_boxes(good_bbox, format="XYXY", canvas_size=None) with pytest.raises(ValueError, match="bounding_boxes must be a tv_tensors.BoundingBoxes instance or a"): F.sanitize_bounding_boxes(good_bbox.tolist()) class TestJPEG: @pytest.mark.parametrize("quality", [5, 75]) @pytest.mark.parametrize("color_space", ["RGB", "GRAY"]) def test_kernel_image(self, quality, color_space): check_kernel(F.jpeg_image, make_image(color_space=color_space), quality=quality) def test_kernel_video(self): check_kernel(F.jpeg_video, make_video(), quality=5) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image_pil, make_image, make_video]) def test_functional(self, make_input): check_functional(F.jpeg, make_input(), quality=5) @pytest.mark.parametrize( ("kernel", "input_type"), [ (F.jpeg_image, torch.Tensor), (F._augment._jpeg_image_pil, PIL.Image.Image), (F.jpeg_image, tv_tensors.Image), (F.jpeg_video, tv_tensors.Video), ], ) def test_functional_signature(self, kernel, input_type): check_functional_kernel_signature_match(F.jpeg, kernel=kernel, input_type=input_type) @pytest.mark.parametrize("make_input", [make_image_tensor, make_image_pil, make_image, make_video]) @pytest.mark.parametrize("quality", [5, (10, 20)]) @pytest.mark.parametrize("color_space", ["RGB", "GRAY"]) def test_transform(self, make_input, quality, color_space): check_transform(transforms.JPEG(quality=quality), make_input(color_space=color_space)) @pytest.mark.parametrize("quality", [5]) def test_functional_image_correctness(self, quality): image = make_image() actual = F.jpeg(image, quality=quality) expected = F.to_image(F.jpeg(F.to_pil_image(image), quality=quality)) # NOTE: this will fail if torchvision and Pillow use different JPEG encoder/decoder torch.testing.assert_close(actual, expected, rtol=0, atol=1) @pytest.mark.parametrize("quality", [5, (10, 20)]) @pytest.mark.parametrize("color_space", ["RGB", "GRAY"]) @pytest.mark.parametrize("seed", list(range(5))) def test_transform_image_correctness(self, quality, color_space, seed): image = make_image(color_space=color_space) transform = transforms.JPEG(quality=quality) with freeze_rng_state(): torch.manual_seed(seed) actual = transform(image) torch.manual_seed(seed) expected = F.to_image(transform(F.to_pil_image(image))) torch.testing.assert_close(actual, expected, rtol=0, atol=1) @pytest.mark.parametrize("quality", [5, (10, 20)]) @pytest.mark.parametrize("seed", list(range(10))) def test_transform_get_params_bounds(self, quality, seed): transform = transforms.JPEG(quality=quality) with freeze_rng_state(): torch.manual_seed(seed) params = transform._get_params([]) if isinstance(quality, int): assert params["quality"] == quality else: assert quality[0] <= params["quality"] <= quality[1] @pytest.mark.parametrize("quality", [[0], [0, 0, 0]]) def test_transform_sequence_len_error(self, quality): with pytest.raises(ValueError, match="quality should be a sequence of length 2"): transforms.JPEG(quality=quality) @pytest.mark.parametrize("quality", [-1, 0, 150]) def test_transform_invalid_quality_error(self, quality): with pytest.raises(ValueError, match="quality must be an integer from 1 to 100"): transforms.JPEG(quality=quality) vision-0.19.1/test/test_transforms_v2_utils.py000066400000000000000000000100101466211133600215210ustar00rootroot00000000000000import PIL.Image import pytest import torch import torchvision.transforms.v2._utils from common_utils import DEFAULT_SIZE, make_bounding_boxes, make_detection_masks, make_image from torchvision import tv_tensors from torchvision.transforms.v2._utils import has_all, has_any from torchvision.transforms.v2.functional import to_pil_image IMAGE = make_image(DEFAULT_SIZE, color_space="RGB") BOUNDING_BOX = make_bounding_boxes(DEFAULT_SIZE, format=tv_tensors.BoundingBoxFormat.XYXY) MASK = make_detection_masks(DEFAULT_SIZE) @pytest.mark.parametrize( ("sample", "types", "expected"), [ ((IMAGE, BOUNDING_BOX, MASK), (tv_tensors.Image,), True), ((IMAGE, BOUNDING_BOX, MASK), (tv_tensors.BoundingBoxes,), True), ((IMAGE, BOUNDING_BOX, MASK), (tv_tensors.Mask,), True), ((IMAGE, BOUNDING_BOX, MASK), (tv_tensors.Image, tv_tensors.BoundingBoxes), True), ((IMAGE, BOUNDING_BOX, MASK), (tv_tensors.Image, tv_tensors.Mask), True), ((IMAGE, BOUNDING_BOX, MASK), (tv_tensors.BoundingBoxes, tv_tensors.Mask), True), ((MASK,), (tv_tensors.Image, tv_tensors.BoundingBoxes), False), ((BOUNDING_BOX,), (tv_tensors.Image, tv_tensors.Mask), False), ((IMAGE,), (tv_tensors.BoundingBoxes, tv_tensors.Mask), False), ( (IMAGE, BOUNDING_BOX, MASK), (tv_tensors.Image, tv_tensors.BoundingBoxes, tv_tensors.Mask), True, ), ((), (tv_tensors.Image, tv_tensors.BoundingBoxes, tv_tensors.Mask), False), ((IMAGE, BOUNDING_BOX, MASK), (lambda obj: isinstance(obj, tv_tensors.Image),), True), ((IMAGE, BOUNDING_BOX, MASK), (lambda _: False,), False), ((IMAGE, BOUNDING_BOX, MASK), (lambda _: True,), True), ((IMAGE,), (tv_tensors.Image, PIL.Image.Image, torchvision.transforms.v2._utils.is_pure_tensor), True), ( (torch.Tensor(IMAGE),), (tv_tensors.Image, PIL.Image.Image, torchvision.transforms.v2._utils.is_pure_tensor), True, ), ( (to_pil_image(IMAGE),), (tv_tensors.Image, PIL.Image.Image, torchvision.transforms.v2._utils.is_pure_tensor), True, ), ], ) def test_has_any(sample, types, expected): assert has_any(sample, *types) is expected @pytest.mark.parametrize( ("sample", "types", "expected"), [ ((IMAGE, BOUNDING_BOX, MASK), (tv_tensors.Image,), True), ((IMAGE, BOUNDING_BOX, MASK), (tv_tensors.BoundingBoxes,), True), ((IMAGE, BOUNDING_BOX, MASK), (tv_tensors.Mask,), True), ((IMAGE, BOUNDING_BOX, MASK), (tv_tensors.Image, tv_tensors.BoundingBoxes), True), ((IMAGE, BOUNDING_BOX, MASK), (tv_tensors.Image, tv_tensors.Mask), True), ((IMAGE, BOUNDING_BOX, MASK), (tv_tensors.BoundingBoxes, tv_tensors.Mask), True), ( (IMAGE, BOUNDING_BOX, MASK), (tv_tensors.Image, tv_tensors.BoundingBoxes, tv_tensors.Mask), True, ), ((BOUNDING_BOX, MASK), (tv_tensors.Image, tv_tensors.BoundingBoxes), False), ((BOUNDING_BOX, MASK), (tv_tensors.Image, tv_tensors.Mask), False), ((IMAGE, MASK), (tv_tensors.BoundingBoxes, tv_tensors.Mask), False), ( (IMAGE, BOUNDING_BOX, MASK), (tv_tensors.Image, tv_tensors.BoundingBoxes, tv_tensors.Mask), True, ), ((BOUNDING_BOX, MASK), (tv_tensors.Image, tv_tensors.BoundingBoxes, tv_tensors.Mask), False), ((IMAGE, MASK), (tv_tensors.Image, tv_tensors.BoundingBoxes, tv_tensors.Mask), False), ((IMAGE, BOUNDING_BOX), (tv_tensors.Image, tv_tensors.BoundingBoxes, tv_tensors.Mask), False), ( (IMAGE, BOUNDING_BOX, MASK), (lambda obj: isinstance(obj, (tv_tensors.Image, tv_tensors.BoundingBoxes, tv_tensors.Mask)),), True, ), ((IMAGE, BOUNDING_BOX, MASK), (lambda _: False,), False), ((IMAGE, BOUNDING_BOX, MASK), (lambda _: True,), True), ], ) def test_has_all(sample, types, expected): assert has_all(sample, *types) is expected vision-0.19.1/test/test_transforms_video.py000066400000000000000000000142431466211133600210740ustar00rootroot00000000000000import random import warnings import numpy as np import pytest import torch from common_utils import assert_equal from torchvision.transforms import Compose try: from scipy import stats except ImportError: stats = None with warnings.catch_warnings(record=True): warnings.simplefilter("always") import torchvision.transforms._transforms_video as transforms class TestVideoTransforms: def test_random_crop_video(self): numFrames = random.randint(4, 128) height = random.randint(10, 32) * 2 width = random.randint(10, 32) * 2 oheight = random.randint(5, (height - 2) // 2) * 2 owidth = random.randint(5, (width - 2) // 2) * 2 clip = torch.randint(0, 256, (numFrames, height, width, 3), dtype=torch.uint8) result = Compose( [ transforms.ToTensorVideo(), transforms.RandomCropVideo((oheight, owidth)), ] )(clip) assert result.size(2) == oheight assert result.size(3) == owidth transforms.RandomCropVideo((oheight, owidth)).__repr__() def test_random_resized_crop_video(self): numFrames = random.randint(4, 128) height = random.randint(10, 32) * 2 width = random.randint(10, 32) * 2 oheight = random.randint(5, (height - 2) // 2) * 2 owidth = random.randint(5, (width - 2) // 2) * 2 clip = torch.randint(0, 256, (numFrames, height, width, 3), dtype=torch.uint8) result = Compose( [ transforms.ToTensorVideo(), transforms.RandomResizedCropVideo((oheight, owidth)), ] )(clip) assert result.size(2) == oheight assert result.size(3) == owidth transforms.RandomResizedCropVideo((oheight, owidth)).__repr__() def test_center_crop_video(self): numFrames = random.randint(4, 128) height = random.randint(10, 32) * 2 width = random.randint(10, 32) * 2 oheight = random.randint(5, (height - 2) // 2) * 2 owidth = random.randint(5, (width - 2) // 2) * 2 clip = torch.ones((numFrames, height, width, 3), dtype=torch.uint8) * 255 oh1 = (height - oheight) // 2 ow1 = (width - owidth) // 2 clipNarrow = clip[:, oh1 : oh1 + oheight, ow1 : ow1 + owidth, :] clipNarrow.fill_(0) result = Compose( [ transforms.ToTensorVideo(), transforms.CenterCropVideo((oheight, owidth)), ] )(clip) msg = ( "height: " + str(height) + " width: " + str(width) + " oheight: " + str(oheight) + " owidth: " + str(owidth) ) assert result.sum().item() == 0, msg oheight += 1 owidth += 1 result = Compose( [ transforms.ToTensorVideo(), transforms.CenterCropVideo((oheight, owidth)), ] )(clip) sum1 = result.sum() msg = ( "height: " + str(height) + " width: " + str(width) + " oheight: " + str(oheight) + " owidth: " + str(owidth) ) assert sum1.item() > 1, msg oheight += 1 owidth += 1 result = Compose( [ transforms.ToTensorVideo(), transforms.CenterCropVideo((oheight, owidth)), ] )(clip) sum2 = result.sum() msg = ( "height: " + str(height) + " width: " + str(width) + " oheight: " + str(oheight) + " owidth: " + str(owidth) ) assert sum2.item() > 1, msg assert sum2.item() > sum1.item(), msg @pytest.mark.skipif(stats is None, reason="scipy.stats is not available") @pytest.mark.parametrize("channels", [1, 3]) def test_normalize_video(self, channels): def samples_from_standard_normal(tensor): p_value = stats.kstest(list(tensor.view(-1)), "norm", args=(0, 1)).pvalue return p_value > 0.0001 random_state = random.getstate() random.seed(42) numFrames = random.randint(4, 128) height = random.randint(32, 256) width = random.randint(32, 256) mean = random.random() std = random.random() clip = torch.normal(mean, std, size=(channels, numFrames, height, width)) mean = [clip[c].mean().item() for c in range(channels)] std = [clip[c].std().item() for c in range(channels)] normalized = transforms.NormalizeVideo(mean, std)(clip) assert samples_from_standard_normal(normalized) random.setstate(random_state) # Checking the optional in-place behaviour tensor = torch.rand((3, 128, 16, 16)) tensor_inplace = transforms.NormalizeVideo((0.5, 0.5, 0.5), (0.5, 0.5, 0.5), inplace=True)(tensor) assert_equal(tensor, tensor_inplace) transforms.NormalizeVideo((0.5, 0.5, 0.5), (0.5, 0.5, 0.5), inplace=True).__repr__() def test_to_tensor_video(self): numFrames, height, width = 64, 4, 4 trans = transforms.ToTensorVideo() with pytest.raises(TypeError): np_rng = np.random.RandomState(0) trans(np_rng.rand(numFrames, height, width, 1).tolist()) with pytest.raises(TypeError): trans(torch.rand((numFrames, height, width, 1), dtype=torch.float)) with pytest.raises(ValueError): trans(torch.ones((3, numFrames, height, width, 3), dtype=torch.uint8)) with pytest.raises(ValueError): trans(torch.ones((height, width, 3), dtype=torch.uint8)) with pytest.raises(ValueError): trans(torch.ones((width, 3), dtype=torch.uint8)) with pytest.raises(ValueError): trans(torch.ones((3), dtype=torch.uint8)) trans.__repr__() @pytest.mark.parametrize("p", (0, 1)) def test_random_horizontal_flip_video(self, p): clip = torch.rand((3, 4, 112, 112), dtype=torch.float) hclip = clip.flip(-1) out = transforms.RandomHorizontalFlipVideo(p=p)(clip) if p == 0: torch.testing.assert_close(out, clip) elif p == 1: torch.testing.assert_close(out, hclip) transforms.RandomHorizontalFlipVideo().__repr__() if __name__ == "__main__": pytest.main([__file__]) vision-0.19.1/test/test_tv_tensors.py000066400000000000000000000260221466211133600177140ustar00rootroot00000000000000from copy import deepcopy import pytest import torch from common_utils import assert_equal, make_bounding_boxes, make_image, make_segmentation_mask, make_video from PIL import Image from torchvision import tv_tensors @pytest.fixture(autouse=True) def restore_tensor_return_type(): # This is for security, as we should already be restoring the default manually in each test anyway # (at least at the time of writing...) yield tv_tensors.set_return_type("Tensor") @pytest.mark.parametrize("data", [torch.rand(3, 32, 32), Image.new("RGB", (32, 32), color=123)]) def test_image_instance(data): image = tv_tensors.Image(data) assert isinstance(image, torch.Tensor) assert image.ndim == 3 and image.shape[0] == 3 @pytest.mark.parametrize("data", [torch.randint(0, 10, size=(1, 32, 32)), Image.new("L", (32, 32), color=2)]) def test_mask_instance(data): mask = tv_tensors.Mask(data) assert isinstance(mask, torch.Tensor) assert mask.ndim == 3 and mask.shape[0] == 1 @pytest.mark.parametrize("data", [torch.randint(0, 32, size=(5, 4)), [[0, 0, 5, 5], [2, 2, 7, 7]], [1, 2, 3, 4]]) @pytest.mark.parametrize( "format", ["XYXY", "CXCYWH", tv_tensors.BoundingBoxFormat.XYXY, tv_tensors.BoundingBoxFormat.XYWH] ) def test_bbox_instance(data, format): bboxes = tv_tensors.BoundingBoxes(data, format=format, canvas_size=(32, 32)) assert isinstance(bboxes, torch.Tensor) assert bboxes.ndim == 2 and bboxes.shape[1] == 4 if isinstance(format, str): format = tv_tensors.BoundingBoxFormat[(format.upper())] assert bboxes.format == format def test_bbox_dim_error(): data_3d = [[[1, 2, 3, 4]]] with pytest.raises(ValueError, match="Expected a 1D or 2D tensor, got 3D"): tv_tensors.BoundingBoxes(data_3d, format="XYXY", canvas_size=(32, 32)) @pytest.mark.parametrize( ("data", "input_requires_grad", "expected_requires_grad"), [ ([[[0.0, 1.0], [0.0, 1.0]]], None, False), ([[[0.0, 1.0], [0.0, 1.0]]], False, False), ([[[0.0, 1.0], [0.0, 1.0]]], True, True), (torch.rand(3, 16, 16, requires_grad=False), None, False), (torch.rand(3, 16, 16, requires_grad=False), False, False), (torch.rand(3, 16, 16, requires_grad=False), True, True), (torch.rand(3, 16, 16, requires_grad=True), None, True), (torch.rand(3, 16, 16, requires_grad=True), False, False), (torch.rand(3, 16, 16, requires_grad=True), True, True), ], ) def test_new_requires_grad(data, input_requires_grad, expected_requires_grad): tv_tensor = tv_tensors.Image(data, requires_grad=input_requires_grad) assert tv_tensor.requires_grad is expected_requires_grad @pytest.mark.parametrize("make_input", [make_image, make_bounding_boxes, make_segmentation_mask, make_video]) def test_isinstance(make_input): assert isinstance(make_input(), torch.Tensor) def test_wrapping_no_copy(): tensor = torch.rand(3, 16, 16) image = tv_tensors.Image(tensor) assert image.data_ptr() == tensor.data_ptr() @pytest.mark.parametrize("make_input", [make_image, make_bounding_boxes, make_segmentation_mask, make_video]) def test_to_wrapping(make_input): dp = make_input() dp_to = dp.to(torch.float64) assert type(dp_to) is type(dp) assert dp_to.dtype is torch.float64 @pytest.mark.parametrize("make_input", [make_image, make_bounding_boxes, make_segmentation_mask, make_video]) @pytest.mark.parametrize("return_type", ["Tensor", "TVTensor"]) def test_to_tv_tensor_reference(make_input, return_type): tensor = torch.rand((3, 16, 16), dtype=torch.float64) dp = make_input() with tv_tensors.set_return_type(return_type): tensor_to = tensor.to(dp) assert type(tensor_to) is (type(dp) if return_type == "TVTensor" else torch.Tensor) assert tensor_to.dtype is dp.dtype assert type(tensor) is torch.Tensor @pytest.mark.parametrize("make_input", [make_image, make_bounding_boxes, make_segmentation_mask, make_video]) @pytest.mark.parametrize("return_type", ["Tensor", "TVTensor"]) def test_clone_wrapping(make_input, return_type): dp = make_input() with tv_tensors.set_return_type(return_type): dp_clone = dp.clone() assert type(dp_clone) is type(dp) assert dp_clone.data_ptr() != dp.data_ptr() @pytest.mark.parametrize("make_input", [make_image, make_bounding_boxes, make_segmentation_mask, make_video]) @pytest.mark.parametrize("return_type", ["Tensor", "TVTensor"]) def test_requires_grad__wrapping(make_input, return_type): dp = make_input(dtype=torch.float) assert not dp.requires_grad with tv_tensors.set_return_type(return_type): dp_requires_grad = dp.requires_grad_(True) assert type(dp_requires_grad) is type(dp) assert dp.requires_grad assert dp_requires_grad.requires_grad @pytest.mark.parametrize("make_input", [make_image, make_bounding_boxes, make_segmentation_mask, make_video]) @pytest.mark.parametrize("return_type", ["Tensor", "TVTensor"]) def test_detach_wrapping(make_input, return_type): dp = make_input(dtype=torch.float).requires_grad_(True) with tv_tensors.set_return_type(return_type): dp_detached = dp.detach() assert type(dp_detached) is type(dp) @pytest.mark.parametrize("return_type", ["Tensor", "TVTensor"]) def test_force_subclass_with_metadata(return_type): # Sanity checks for the ops in _FORCE_TORCHFUNCTION_SUBCLASS and tv_tensors with metadata # Largely the same as above, we additionally check that the metadata is preserved format, canvas_size = "XYXY", (32, 32) bbox = tv_tensors.BoundingBoxes([[0, 0, 5, 5], [2, 2, 7, 7]], format=format, canvas_size=canvas_size) tv_tensors.set_return_type(return_type) bbox = bbox.clone() if return_type == "TVTensor": assert bbox.format, bbox.canvas_size == (format, canvas_size) bbox = bbox.to(torch.float64) if return_type == "TVTensor": assert bbox.format, bbox.canvas_size == (format, canvas_size) bbox = bbox.detach() if return_type == "TVTensor": assert bbox.format, bbox.canvas_size == (format, canvas_size) assert not bbox.requires_grad bbox.requires_grad_(True) if return_type == "TVTensor": assert bbox.format, bbox.canvas_size == (format, canvas_size) assert bbox.requires_grad tv_tensors.set_return_type("tensor") @pytest.mark.parametrize("make_input", [make_image, make_bounding_boxes, make_segmentation_mask, make_video]) @pytest.mark.parametrize("return_type", ["Tensor", "TVTensor"]) def test_other_op_no_wrapping(make_input, return_type): dp = make_input() with tv_tensors.set_return_type(return_type): # any operation besides the ones listed in _FORCE_TORCHFUNCTION_SUBCLASS will do here output = dp * 2 assert type(output) is (type(dp) if return_type == "TVTensor" else torch.Tensor) @pytest.mark.parametrize("make_input", [make_image, make_bounding_boxes, make_segmentation_mask, make_video]) @pytest.mark.parametrize( "op", [ lambda t: t.numpy(), lambda t: t.tolist(), lambda t: t.max(dim=-1), ], ) def test_no_tensor_output_op_no_wrapping(make_input, op): dp = make_input() output = op(dp) assert type(output) is not type(dp) @pytest.mark.parametrize("make_input", [make_image, make_bounding_boxes, make_segmentation_mask, make_video]) @pytest.mark.parametrize("return_type", ["Tensor", "TVTensor"]) def test_inplace_op_no_wrapping(make_input, return_type): dp = make_input() original_type = type(dp) with tv_tensors.set_return_type(return_type): output = dp.add_(0) assert type(output) is (type(dp) if return_type == "TVTensor" else torch.Tensor) assert type(dp) is original_type @pytest.mark.parametrize("make_input", [make_image, make_bounding_boxes, make_segmentation_mask, make_video]) def test_wrap(make_input): dp = make_input() # any operation besides the ones listed in _FORCE_TORCHFUNCTION_SUBCLASS will do here output = dp * 2 dp_new = tv_tensors.wrap(output, like=dp) assert type(dp_new) is type(dp) assert dp_new.data_ptr() == output.data_ptr() @pytest.mark.parametrize("make_input", [make_image, make_bounding_boxes, make_segmentation_mask, make_video]) @pytest.mark.parametrize("requires_grad", [False, True]) def test_deepcopy(make_input, requires_grad): dp = make_input(dtype=torch.float) dp.requires_grad_(requires_grad) dp_deepcopied = deepcopy(dp) assert dp_deepcopied is not dp assert dp_deepcopied.data_ptr() != dp.data_ptr() assert_equal(dp_deepcopied, dp) assert type(dp_deepcopied) is type(dp) assert dp_deepcopied.requires_grad is requires_grad @pytest.mark.parametrize("make_input", [make_image, make_bounding_boxes, make_segmentation_mask, make_video]) @pytest.mark.parametrize("return_type", ["Tensor", "TVTensor"]) @pytest.mark.parametrize( "op", ( lambda dp: dp + torch.rand(*dp.shape), lambda dp: torch.rand(*dp.shape) + dp, lambda dp: dp * torch.rand(*dp.shape), lambda dp: torch.rand(*dp.shape) * dp, lambda dp: dp + 3, lambda dp: 3 + dp, lambda dp: dp + dp, lambda dp: dp.sum(), lambda dp: dp.reshape(-1), lambda dp: dp.int(), lambda dp: torch.stack([dp, dp]), lambda dp: torch.chunk(dp, 2)[0], lambda dp: torch.unbind(dp)[0], ), ) def test_usual_operations(make_input, return_type, op): dp = make_input() with tv_tensors.set_return_type(return_type): out = op(dp) assert type(out) is (type(dp) if return_type == "TVTensor" else torch.Tensor) if isinstance(dp, tv_tensors.BoundingBoxes) and return_type == "TVTensor": assert hasattr(out, "format") assert hasattr(out, "canvas_size") def test_subclasses(): img = make_image() masks = make_segmentation_mask() with pytest.raises(TypeError, match="unsupported operand"): img + masks def test_set_return_type(): img = make_image() assert type(img + 3) is torch.Tensor with tv_tensors.set_return_type("TVTensor"): assert type(img + 3) is tv_tensors.Image assert type(img + 3) is torch.Tensor tv_tensors.set_return_type("TVTensor") assert type(img + 3) is tv_tensors.Image with tv_tensors.set_return_type("tensor"): assert type(img + 3) is torch.Tensor with tv_tensors.set_return_type("TVTensor"): assert type(img + 3) is tv_tensors.Image tv_tensors.set_return_type("tensor") assert type(img + 3) is torch.Tensor assert type(img + 3) is torch.Tensor # Exiting a context manager will restore the return type as it was prior to entering it, # regardless of whether the "global" tv_tensors.set_return_type() was called within the context manager. assert type(img + 3) is tv_tensors.Image tv_tensors.set_return_type("tensor") def test_return_type_input(): img = make_image() # Case-insensitive with tv_tensors.set_return_type("tvtensor"): assert type(img + 3) is tv_tensors.Image with pytest.raises(ValueError, match="return_type must be"): tv_tensors.set_return_type("typo") tv_tensors.set_return_type("tensor") vision-0.19.1/test/test_utils.py000066400000000000000000000532721466211133600166550ustar00rootroot00000000000000import os import re import sys import tempfile from io import BytesIO import numpy as np import pytest import torch import torchvision.transforms.functional as F import torchvision.utils as utils from common_utils import assert_equal, cpu_and_cuda from PIL import __version__ as PILLOW_VERSION, Image, ImageColor from torchvision.transforms.v2.functional import to_dtype PILLOW_VERSION = tuple(int(x) for x in PILLOW_VERSION.split(".")) boxes = torch.tensor([[0, 0, 20, 20], [0, 0, 0, 0], [10, 15, 30, 35], [23, 35, 93, 95]], dtype=torch.float) keypoints = torch.tensor([[[10, 10], [5, 5], [2, 2]], [[20, 20], [30, 30], [3, 3]]], dtype=torch.float) def test_make_grid_not_inplace(): t = torch.rand(5, 3, 10, 10) t_clone = t.clone() utils.make_grid(t, normalize=False) assert_equal(t, t_clone, msg="make_grid modified tensor in-place") utils.make_grid(t, normalize=True, scale_each=False) assert_equal(t, t_clone, msg="make_grid modified tensor in-place") utils.make_grid(t, normalize=True, scale_each=True) assert_equal(t, t_clone, msg="make_grid modified tensor in-place") def test_normalize_in_make_grid(): t = torch.rand(5, 3, 10, 10) * 255 norm_max = torch.tensor(1.0) norm_min = torch.tensor(0.0) grid = utils.make_grid(t, normalize=True) grid_max = torch.max(grid) grid_min = torch.min(grid) # Rounding the result to one decimal for comparison n_digits = 1 rounded_grid_max = torch.round(grid_max * 10**n_digits) / (10**n_digits) rounded_grid_min = torch.round(grid_min * 10**n_digits) / (10**n_digits) assert_equal(norm_max, rounded_grid_max, msg="Normalized max is not equal to 1") assert_equal(norm_min, rounded_grid_min, msg="Normalized min is not equal to 0") @pytest.mark.skipif(sys.platform in ("win32", "cygwin"), reason="temporarily disabled on Windows") def test_save_image(): with tempfile.NamedTemporaryFile(suffix=".png") as f: t = torch.rand(2, 3, 64, 64) utils.save_image(t, f.name) assert os.path.exists(f.name), "The image is not present after save" @pytest.mark.skipif(sys.platform in ("win32", "cygwin"), reason="temporarily disabled on Windows") def test_save_image_single_pixel(): with tempfile.NamedTemporaryFile(suffix=".png") as f: t = torch.rand(1, 3, 1, 1) utils.save_image(t, f.name) assert os.path.exists(f.name), "The pixel image is not present after save" @pytest.mark.skipif(sys.platform in ("win32", "cygwin"), reason="temporarily disabled on Windows") def test_save_image_file_object(): with tempfile.NamedTemporaryFile(suffix=".png") as f: t = torch.rand(2, 3, 64, 64) utils.save_image(t, f.name) img_orig = Image.open(f.name) fp = BytesIO() utils.save_image(t, fp, format="png") img_bytes = Image.open(fp) assert_equal(F.pil_to_tensor(img_orig), F.pil_to_tensor(img_bytes), msg="Image not stored in file object") @pytest.mark.skipif(sys.platform in ("win32", "cygwin"), reason="temporarily disabled on Windows") def test_save_image_single_pixel_file_object(): with tempfile.NamedTemporaryFile(suffix=".png") as f: t = torch.rand(1, 3, 1, 1) utils.save_image(t, f.name) img_orig = Image.open(f.name) fp = BytesIO() utils.save_image(t, fp, format="png") img_bytes = Image.open(fp) assert_equal(F.pil_to_tensor(img_orig), F.pil_to_tensor(img_bytes), msg="Image not stored in file object") def test_draw_boxes(): img = torch.full((3, 100, 100), 255, dtype=torch.uint8) img_cp = img.clone() boxes_cp = boxes.clone() labels = ["a", "b", "c", "d"] colors = ["green", "#FF00FF", (0, 255, 0), "red"] result = utils.draw_bounding_boxes(img, boxes, labels=labels, colors=colors, fill=True) path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "assets", "fakedata", "draw_boxes_util.png") if not os.path.exists(path): res = Image.fromarray(result.permute(1, 2, 0).contiguous().numpy()) res.save(path) if PILLOW_VERSION >= (10, 1): # The reference image is only valid for new PIL versions expected = torch.as_tensor(np.array(Image.open(path))).permute(2, 0, 1) assert_equal(result, expected) # Check if modification is not in place assert_equal(boxes, boxes_cp) assert_equal(img, img_cp) @pytest.mark.parametrize("fill", [True, False]) def test_draw_boxes_dtypes(fill): img_uint8 = torch.full((3, 100, 100), 255, dtype=torch.uint8) out_uint8 = utils.draw_bounding_boxes(img_uint8, boxes, fill=fill) assert img_uint8 is not out_uint8 assert out_uint8.dtype == torch.uint8 img_float = to_dtype(img_uint8, torch.float, scale=True) out_float = utils.draw_bounding_boxes(img_float, boxes, fill=fill) assert img_float is not out_float assert out_float.is_floating_point() torch.testing.assert_close(out_uint8, to_dtype(out_float, torch.uint8, scale=True), rtol=0, atol=1) @pytest.mark.parametrize("colors", [None, ["red", "blue", "#FF00FF", (1, 34, 122)], "red", "#FF00FF", (1, 34, 122)]) def test_draw_boxes_colors(colors): img = torch.full((3, 100, 100), 0, dtype=torch.uint8) utils.draw_bounding_boxes(img, boxes, fill=False, width=7, colors=colors) with pytest.raises(ValueError, match="Number of colors must be equal or larger than the number of objects"): utils.draw_bounding_boxes(image=img, boxes=boxes, colors=[]) def test_draw_boxes_vanilla(): img = torch.full((3, 100, 100), 0, dtype=torch.uint8) img_cp = img.clone() boxes_cp = boxes.clone() result = utils.draw_bounding_boxes(img, boxes, fill=False, width=7, colors="white") path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "assets", "fakedata", "draw_boxes_vanilla.png") if not os.path.exists(path): res = Image.fromarray(result.permute(1, 2, 0).contiguous().numpy()) res.save(path) expected = torch.as_tensor(np.array(Image.open(path))).permute(2, 0, 1) assert_equal(result, expected) # Check if modification is not in place assert_equal(boxes, boxes_cp) assert_equal(img, img_cp) def test_draw_boxes_grayscale(): img = torch.full((1, 4, 4), fill_value=255, dtype=torch.uint8) boxes = torch.tensor([[0, 0, 3, 3]], dtype=torch.int64) bboxed_img = utils.draw_bounding_boxes(image=img, boxes=boxes, colors=["#1BBC9B"]) assert bboxed_img.size(0) == 3 def test_draw_invalid_boxes(): img_tp = ((1, 1, 1), (1, 2, 3)) img_wrong2 = torch.full((1, 3, 5, 5), 255, dtype=torch.uint8) img_correct = torch.zeros((3, 10, 10), dtype=torch.uint8) boxes = torch.tensor([[0, 0, 20, 20], [0, 0, 0, 0], [10, 15, 30, 35], [23, 35, 93, 95]], dtype=torch.float) boxes_wrong = torch.tensor([[10, 10, 4, 5], [30, 20, 10, 5]], dtype=torch.float) labels_wrong = ["one", "two"] colors_wrong = ["pink", "blue"] with pytest.raises(TypeError, match="Tensor expected"): utils.draw_bounding_boxes(img_tp, boxes) with pytest.raises(ValueError, match="Pass individual images, not batches"): utils.draw_bounding_boxes(img_wrong2, boxes) with pytest.raises(ValueError, match="Only grayscale and RGB images are supported"): utils.draw_bounding_boxes(img_wrong2[0][:2], boxes) with pytest.raises(ValueError, match="Number of boxes"): utils.draw_bounding_boxes(img_correct, boxes, labels_wrong) with pytest.raises(ValueError, match="Number of colors"): utils.draw_bounding_boxes(img_correct, boxes, colors=colors_wrong) with pytest.raises(ValueError, match="Boxes need to be in"): utils.draw_bounding_boxes(img_correct, boxes_wrong) def test_draw_boxes_warning(): img = torch.full((3, 100, 100), 255, dtype=torch.uint8) with pytest.warns(UserWarning, match=re.escape("Argument 'font_size' will be ignored since 'font' is not set.")): utils.draw_bounding_boxes(img, boxes, font_size=11) def test_draw_no_boxes(): img = torch.full((3, 100, 100), 0, dtype=torch.uint8) boxes = torch.full((0, 4), 0, dtype=torch.float) with pytest.warns(UserWarning, match=re.escape("boxes doesn't contain any box. No box was drawn")): res = utils.draw_bounding_boxes(img, boxes) # Check that the function didn't change the image assert res.eq(img).all() @pytest.mark.parametrize( "colors", [ None, "blue", "#FF00FF", (1, 34, 122), ["red", "blue"], ["#FF00FF", (1, 34, 122)], ], ) @pytest.mark.parametrize("alpha", (0, 0.5, 0.7, 1)) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_draw_segmentation_masks(colors, alpha, device): """This test makes sure that masks draw their corresponding color where they should""" num_masks, h, w = 2, 100, 100 dtype = torch.uint8 img = torch.randint(0, 256, size=(3, h, w), dtype=dtype, device=device) masks = torch.zeros((num_masks, h, w), dtype=torch.bool, device=device) masks[0, 10:20, 10:20] = True masks[1, 15:25, 15:25] = True overlap = masks[0] & masks[1] out = utils.draw_segmentation_masks(img, masks, colors=colors, alpha=alpha) assert out.dtype == dtype assert out is not img # Make sure the image didn't change where there's no mask masked_pixels = masks[0] | masks[1] assert_equal(img[:, ~masked_pixels], out[:, ~masked_pixels]) if colors is None: colors = utils._generate_color_palette(num_masks) elif isinstance(colors, str) or isinstance(colors, tuple): colors = [colors] # Make sure each mask draws with its own color for mask, color in zip(masks, colors): if isinstance(color, str): color = ImageColor.getrgb(color) color = torch.tensor(color, dtype=dtype, device=device) if alpha == 1: assert (out[:, mask & ~overlap] == color[:, None]).all() elif alpha == 0: assert (out[:, mask & ~overlap] == img[:, mask & ~overlap]).all() interpolated_color = (img[:, mask & ~overlap] * (1 - alpha) + color[:, None] * alpha).to(dtype) torch.testing.assert_close(out[:, mask & ~overlap], interpolated_color, rtol=0.0, atol=1.0) interpolated_overlap = (img[:, overlap] * (1 - alpha)).to(dtype) torch.testing.assert_close(out[:, overlap], interpolated_overlap, rtol=0.0, atol=1.0) def test_draw_segmentation_masks_dtypes(): num_masks, h, w = 2, 100, 100 masks = torch.randint(0, 2, (num_masks, h, w), dtype=torch.bool) img_uint8 = torch.randint(0, 256, size=(3, h, w), dtype=torch.uint8) out_uint8 = utils.draw_segmentation_masks(img_uint8, masks) assert img_uint8 is not out_uint8 assert out_uint8.dtype == torch.uint8 img_float = to_dtype(img_uint8, torch.float, scale=True) out_float = utils.draw_segmentation_masks(img_float, masks) assert img_float is not out_float assert out_float.is_floating_point() torch.testing.assert_close(out_uint8, to_dtype(out_float, torch.uint8, scale=True), rtol=0, atol=1) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_draw_segmentation_masks_errors(device): h, w = 10, 10 masks = torch.randint(0, 2, size=(h, w), dtype=torch.bool, device=device) img = torch.randint(0, 256, size=(3, h, w), dtype=torch.uint8, device=device) with pytest.raises(TypeError, match="The image must be a tensor"): utils.draw_segmentation_masks(image="Not A Tensor Image", masks=masks) with pytest.raises(ValueError, match="The image dtype must be"): img_bad_dtype = torch.randint(0, 256, size=(3, h, w), dtype=torch.int64) utils.draw_segmentation_masks(image=img_bad_dtype, masks=masks) with pytest.raises(ValueError, match="Pass individual images, not batches"): batch = torch.randint(0, 256, size=(10, 3, h, w), dtype=torch.uint8) utils.draw_segmentation_masks(image=batch, masks=masks) with pytest.raises(ValueError, match="Pass an RGB image"): one_channel = torch.randint(0, 256, size=(1, h, w), dtype=torch.uint8) utils.draw_segmentation_masks(image=one_channel, masks=masks) with pytest.raises(ValueError, match="The masks must be of dtype bool"): masks_bad_dtype = torch.randint(0, 2, size=(h, w), dtype=torch.float) utils.draw_segmentation_masks(image=img, masks=masks_bad_dtype) with pytest.raises(ValueError, match="masks must be of shape"): masks_bad_shape = torch.randint(0, 2, size=(3, 2, h, w), dtype=torch.bool) utils.draw_segmentation_masks(image=img, masks=masks_bad_shape) with pytest.raises(ValueError, match="must have the same height and width"): masks_bad_shape = torch.randint(0, 2, size=(h + 4, w), dtype=torch.bool) utils.draw_segmentation_masks(image=img, masks=masks_bad_shape) with pytest.raises(ValueError, match="Number of colors must be equal or larger than the number of objects"): utils.draw_segmentation_masks(image=img, masks=masks, colors=[]) with pytest.raises(ValueError, match="`colors` must be a tuple or a string, or a list thereof"): bad_colors = np.array(["red", "blue"]) # should be a list utils.draw_segmentation_masks(image=img, masks=masks, colors=bad_colors) with pytest.raises(ValueError, match="If passed as tuple, colors should be an RGB triplet"): bad_colors = ("red", "blue") # should be a list utils.draw_segmentation_masks(image=img, masks=masks, colors=bad_colors) @pytest.mark.parametrize("device", cpu_and_cuda()) def test_draw_no_segmention_mask(device): img = torch.full((3, 100, 100), 0, dtype=torch.uint8, device=device) masks = torch.full((0, 100, 100), 0, dtype=torch.bool, device=device) with pytest.warns(UserWarning, match=re.escape("masks doesn't contain any mask. No mask was drawn")): res = utils.draw_segmentation_masks(img, masks) # Check that the function didn't change the image assert res.eq(img).all() def test_draw_keypoints_vanilla(): # Keypoints is declared on top as global variable keypoints_cp = keypoints.clone() img = torch.full((3, 100, 100), 0, dtype=torch.uint8) img_cp = img.clone() result = utils.draw_keypoints( img, keypoints, colors="red", connectivity=[ (0, 1), ], ) path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "assets", "fakedata", "draw_keypoint_vanilla.png") if not os.path.exists(path): res = Image.fromarray(result.permute(1, 2, 0).contiguous().numpy()) res.save(path) expected = torch.as_tensor(np.array(Image.open(path))).permute(2, 0, 1) assert_equal(result, expected) # Check that keypoints are not modified inplace assert_equal(keypoints, keypoints_cp) # Check that image is not modified in place assert_equal(img, img_cp) def test_draw_keypoins_K_equals_one(): # Non-regression test for https://github.com/pytorch/vision/pull/8439 img = torch.full((3, 100, 100), 0, dtype=torch.uint8) keypoints = torch.tensor([[[10, 10]]], dtype=torch.float) utils.draw_keypoints(img, keypoints) @pytest.mark.parametrize("colors", ["red", "#FF00FF", (1, 34, 122)]) def test_draw_keypoints_colored(colors): # Keypoints is declared on top as global variable keypoints_cp = keypoints.clone() img = torch.full((3, 100, 100), 0, dtype=torch.uint8) img_cp = img.clone() result = utils.draw_keypoints( img, keypoints, colors=colors, connectivity=[ (0, 1), ], ) assert result.size(0) == 3 assert_equal(keypoints, keypoints_cp) assert_equal(img, img_cp) @pytest.mark.parametrize("connectivity", [[(0, 1)], [(0, 1), (1, 2)]]) @pytest.mark.parametrize( "vis", [ torch.tensor([[1, 1, 0], [1, 1, 0]], dtype=torch.bool), torch.tensor([[1, 1, 0], [1, 1, 0]], dtype=torch.float).unsqueeze_(-1), ], ) def test_draw_keypoints_visibility(connectivity, vis): # Keypoints is declared on top as global variable keypoints_cp = keypoints.clone() img = torch.full((3, 100, 100), 0, dtype=torch.uint8) img_cp = img.clone() vis_cp = vis if vis is None else vis.clone() result = utils.draw_keypoints( image=img, keypoints=keypoints, connectivity=connectivity, colors="red", visibility=vis, ) assert result.size(0) == 3 assert_equal(keypoints, keypoints_cp) assert_equal(img, img_cp) # compare with a fakedata image # connect the key points 0 to 1 for both skeletons and do not show the other key points path = os.path.join( os.path.dirname(os.path.abspath(__file__)), "assets", "fakedata", "draw_keypoints_visibility.png" ) if not os.path.exists(path): res = Image.fromarray(result.permute(1, 2, 0).contiguous().numpy()) res.save(path) expected = torch.as_tensor(np.array(Image.open(path))).permute(2, 0, 1) assert_equal(result, expected) if vis_cp is None: assert vis is None else: assert_equal(vis, vis_cp) assert vis.dtype == vis_cp.dtype def test_draw_keypoints_visibility_default(): # Keypoints is declared on top as global variable keypoints_cp = keypoints.clone() img = torch.full((3, 100, 100), 0, dtype=torch.uint8) img_cp = img.clone() result = utils.draw_keypoints( image=img, keypoints=keypoints, connectivity=[(0, 1)], colors="red", visibility=None, ) assert result.size(0) == 3 assert_equal(keypoints, keypoints_cp) assert_equal(img, img_cp) # compare against fakedata image, which connects 0->1 for both key-point skeletons path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "assets", "fakedata", "draw_keypoint_vanilla.png") expected = torch.as_tensor(np.array(Image.open(path))).permute(2, 0, 1) assert_equal(result, expected) def test_draw_keypoints_dtypes(): image_uint8 = torch.randint(0, 256, size=(3, 100, 100), dtype=torch.uint8) image_float = to_dtype(image_uint8, torch.float, scale=True) out_uint8 = utils.draw_keypoints(image_uint8, keypoints) out_float = utils.draw_keypoints(image_float, keypoints) assert out_uint8.dtype == torch.uint8 assert out_uint8 is not image_uint8 assert out_float.is_floating_point() assert out_float is not image_float torch.testing.assert_close(out_uint8, to_dtype(out_float, torch.uint8, scale=True), rtol=0, atol=1) def test_draw_keypoints_errors(): h, w = 10, 10 img = torch.full((3, 100, 100), 0, dtype=torch.uint8) with pytest.raises(TypeError, match="The image must be a tensor"): utils.draw_keypoints(image="Not A Tensor Image", keypoints=keypoints) with pytest.raises(ValueError, match="The image dtype must be"): img_bad_dtype = torch.full((3, h, w), 0, dtype=torch.int64) utils.draw_keypoints(image=img_bad_dtype, keypoints=keypoints) with pytest.raises(ValueError, match="Pass individual images, not batches"): batch = torch.randint(0, 256, size=(10, 3, h, w), dtype=torch.uint8) utils.draw_keypoints(image=batch, keypoints=keypoints) with pytest.raises(ValueError, match="Pass an RGB image"): one_channel = torch.randint(0, 256, size=(1, h, w), dtype=torch.uint8) utils.draw_keypoints(image=one_channel, keypoints=keypoints) with pytest.raises(ValueError, match="keypoints must be of shape"): invalid_keypoints = torch.tensor([[10, 10, 10, 10], [5, 6, 7, 8]], dtype=torch.float) utils.draw_keypoints(image=img, keypoints=invalid_keypoints) with pytest.raises(ValueError, match=re.escape("visibility must be of shape (num_instances, K)")): one_dim_visibility = torch.tensor([True, True, True], dtype=torch.bool) utils.draw_keypoints(image=img, keypoints=keypoints, visibility=one_dim_visibility) with pytest.raises(ValueError, match=re.escape("visibility must be of shape (num_instances, K)")): three_dim_visibility = torch.ones((2, 3, 4), dtype=torch.bool) utils.draw_keypoints(image=img, keypoints=keypoints, visibility=three_dim_visibility) with pytest.raises(ValueError, match="keypoints and visibility must have the same dimensionality"): vis_wrong_n = torch.ones((3, 3), dtype=torch.bool) utils.draw_keypoints(image=img, keypoints=keypoints, visibility=vis_wrong_n) with pytest.raises(ValueError, match="keypoints and visibility must have the same dimensionality"): vis_wrong_k = torch.ones((2, 4), dtype=torch.bool) utils.draw_keypoints(image=img, keypoints=keypoints, visibility=vis_wrong_k) @pytest.mark.parametrize("batch", (True, False)) def test_flow_to_image(batch): h, w = 100, 100 flow = torch.meshgrid(torch.arange(h), torch.arange(w), indexing="ij") flow = torch.stack(flow[::-1], dim=0).float() flow[0] -= h / 2 flow[1] -= w / 2 if batch: flow = torch.stack([flow, flow]) img = utils.flow_to_image(flow) assert img.shape == (2, 3, h, w) if batch else (3, h, w) path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "assets", "expected_flow.pt") expected_img = torch.load(path, map_location="cpu", weights_only=True) if batch: expected_img = torch.stack([expected_img, expected_img]) assert_equal(expected_img, img) @pytest.mark.parametrize( "input_flow, match", ( (torch.full((3, 10, 10), 0, dtype=torch.float), "Input flow should have shape"), (torch.full((5, 3, 10, 10), 0, dtype=torch.float), "Input flow should have shape"), (torch.full((2, 10), 0, dtype=torch.float), "Input flow should have shape"), (torch.full((5, 2, 10), 0, dtype=torch.float), "Input flow should have shape"), (torch.full((2, 10, 30), 0, dtype=torch.int), "Flow should be of dtype torch.float"), ), ) def test_flow_to_image_errors(input_flow, match): with pytest.raises(ValueError, match=match): utils.flow_to_image(flow=input_flow) if __name__ == "__main__": pytest.main([__file__]) vision-0.19.1/test/test_video_gpu_decoder.py000066400000000000000000000072641466211133600211630ustar00rootroot00000000000000import math import os import pytest import torch import torchvision from torchvision.io import _HAS_GPU_VIDEO_DECODER, VideoReader try: import av except ImportError: av = None VIDEO_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "assets", "videos") @pytest.mark.skipif(_HAS_GPU_VIDEO_DECODER is False, reason="Didn't compile with support for gpu decoder") class TestVideoGPUDecoder: @pytest.mark.skipif(av is None, reason="PyAV unavailable") @pytest.mark.parametrize( "video_file", [ "RATRACE_wave_f_nm_np1_fr_goo_37.avi", "TrumanShow_wave_f_nm_np1_fr_med_26.avi", "v_SoccerJuggling_g23_c01.avi", "v_SoccerJuggling_g24_c01.avi", "R6llTwEh07w.mp4", "SOX5yA1l24A.mp4", "WUzgd7C1pWA.mp4", ], ) def test_frame_reading(self, video_file): torchvision.set_video_backend("cuda") full_path = os.path.join(VIDEO_DIR, video_file) decoder = VideoReader(full_path) with av.open(full_path) as container: for av_frame in container.decode(container.streams.video[0]): av_frames = torch.tensor(av_frame.to_rgb(src_colorspace="ITU709").to_ndarray()) vision_frames = next(decoder)["data"] mean_delta = torch.mean(torch.abs(av_frames.float() - vision_frames.cpu().float())) assert mean_delta < 0.75 @pytest.mark.skipif(av is None, reason="PyAV unavailable") @pytest.mark.parametrize("keyframes", [True, False]) @pytest.mark.parametrize( "full_path, duration", [ (os.path.join(VIDEO_DIR, x), y) for x, y in [ ("v_SoccerJuggling_g23_c01.avi", 8.0), ("v_SoccerJuggling_g24_c01.avi", 8.0), ("R6llTwEh07w.mp4", 10.0), ("SOX5yA1l24A.mp4", 11.0), ("WUzgd7C1pWA.mp4", 11.0), ] ], ) def test_seek_reading(self, keyframes, full_path, duration): torchvision.set_video_backend("cuda") decoder = VideoReader(full_path) time = duration / 2 decoder.seek(time, keyframes_only=keyframes) with av.open(full_path) as container: container.seek(int(time * 1000000), any_frame=not keyframes, backward=False) for av_frame in container.decode(container.streams.video[0]): av_frames = torch.tensor(av_frame.to_rgb(src_colorspace="ITU709").to_ndarray()) vision_frames = next(decoder)["data"] mean_delta = torch.mean(torch.abs(av_frames.float() - vision_frames.cpu().float())) assert mean_delta < 0.75 @pytest.mark.skipif(av is None, reason="PyAV unavailable") @pytest.mark.parametrize( "video_file", [ "RATRACE_wave_f_nm_np1_fr_goo_37.avi", "TrumanShow_wave_f_nm_np1_fr_med_26.avi", "v_SoccerJuggling_g23_c01.avi", "v_SoccerJuggling_g24_c01.avi", "R6llTwEh07w.mp4", "SOX5yA1l24A.mp4", "WUzgd7C1pWA.mp4", ], ) def test_metadata(self, video_file): torchvision.set_video_backend("cuda") full_path = os.path.join(VIDEO_DIR, video_file) decoder = VideoReader(full_path) video_metadata = decoder.get_metadata()["video"] with av.open(full_path) as container: video = container.streams.video[0] av_duration = float(video.duration * video.time_base) assert math.isclose(video_metadata["duration"], av_duration, rel_tol=1e-2) assert math.isclose(video_metadata["fps"], video.base_rate, rel_tol=1e-2) if __name__ == "__main__": pytest.main([__file__]) vision-0.19.1/test/test_video_reader.py000066400000000000000000001266011466211133600201420ustar00rootroot00000000000000import collections import math import os from fractions import Fraction import numpy as np import pytest import torch import torchvision.io as io from common_utils import assert_equal from numpy.random import randint from pytest import approx from torchvision import set_video_backend from torchvision.io import _HAS_VIDEO_OPT try: import av # Do a version test too io.video._check_av_available() except ImportError: av = None VIDEO_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "assets", "videos") CheckerConfig = [ "duration", "video_fps", "audio_sample_rate", # We find for some videos (e.g. HMDB51 videos), the decoded audio frames and pts are # slightly different between TorchVision decoder and PyAv decoder. So omit it during check "check_aframes", "check_aframe_pts", ] GroundTruth = collections.namedtuple("GroundTruth", " ".join(CheckerConfig)) all_check_config = GroundTruth( duration=0, video_fps=0, audio_sample_rate=0, check_aframes=True, check_aframe_pts=True, ) test_videos = { "RATRACE_wave_f_nm_np1_fr_goo_37.avi": GroundTruth( duration=2.0, video_fps=30.0, audio_sample_rate=None, check_aframes=True, check_aframe_pts=True, ), "SchoolRulesHowTheyHelpUs_wave_f_nm_np1_ba_med_0.avi": GroundTruth( duration=2.0, video_fps=30.0, audio_sample_rate=None, check_aframes=True, check_aframe_pts=True, ), "TrumanShow_wave_f_nm_np1_fr_med_26.avi": GroundTruth( duration=2.0, video_fps=30.0, audio_sample_rate=None, check_aframes=True, check_aframe_pts=True, ), "v_SoccerJuggling_g23_c01.avi": GroundTruth( duration=8.0, video_fps=29.97, audio_sample_rate=None, check_aframes=True, check_aframe_pts=True, ), "v_SoccerJuggling_g24_c01.avi": GroundTruth( duration=8.0, video_fps=29.97, audio_sample_rate=None, check_aframes=True, check_aframe_pts=True, ), "R6llTwEh07w.mp4": GroundTruth( duration=10.0, video_fps=30.0, audio_sample_rate=44100, # PyAv miss one audio frame at the beginning (pts=0) check_aframes=False, check_aframe_pts=False, ), "SOX5yA1l24A.mp4": GroundTruth( duration=11.0, video_fps=29.97, audio_sample_rate=48000, # PyAv miss one audio frame at the beginning (pts=0) check_aframes=False, check_aframe_pts=False, ), "WUzgd7C1pWA.mp4": GroundTruth( duration=11.0, video_fps=29.97, audio_sample_rate=48000, # PyAv miss one audio frame at the beginning (pts=0) check_aframes=False, check_aframe_pts=False, ), } DecoderResult = collections.namedtuple("DecoderResult", "vframes vframe_pts vtimebase aframes aframe_pts atimebase") # av_seek_frame is imprecise so seek to a timestamp earlier by a margin # The unit of margin is second SEEK_FRAME_MARGIN = 0.25 def _read_from_stream(container, start_pts, end_pts, stream, stream_name, buffer_size=4): """ Args: container: pyav container start_pts/end_pts: the starting/ending Presentation TimeStamp where frames are read stream: pyav stream stream_name: a dictionary of streams. For example, {"video": 0} means video stream at stream index 0 buffer_size: pts of frames decoded by PyAv is not guaranteed to be in ascending order. We need to decode more frames even when we meet end pts """ # seeking in the stream is imprecise. Thus, seek to an earlier PTS by a margin margin = 1 seek_offset = max(start_pts - margin, 0) container.seek(seek_offset, any_frame=False, backward=True, stream=stream) frames = {} buffer_count = 0 for frame in container.decode(**stream_name): if frame.pts < start_pts: continue if frame.pts <= end_pts: frames[frame.pts] = frame else: buffer_count += 1 if buffer_count >= buffer_size: break result = [frames[pts] for pts in sorted(frames)] return result def _get_timebase_by_av_module(full_path): container = av.open(full_path) video_time_base = container.streams.video[0].time_base if container.streams.audio: audio_time_base = container.streams.audio[0].time_base else: audio_time_base = None return video_time_base, audio_time_base def _fraction_to_tensor(fraction): ret = torch.zeros([2], dtype=torch.int32) ret[0] = fraction.numerator ret[1] = fraction.denominator return ret def _decode_frames_by_av_module( full_path, video_start_pts=0, video_end_pts=None, audio_start_pts=0, audio_end_pts=None, ): """ Use PyAv to decode video frames. This provides a reference for our decoder to compare the decoding results. Input arguments: full_path: video file path video_start_pts/video_end_pts: the starting/ending Presentation TimeStamp where frames are read """ if video_end_pts is None: video_end_pts = float("inf") if audio_end_pts is None: audio_end_pts = float("inf") container = av.open(full_path) video_frames = [] vtimebase = torch.zeros([0], dtype=torch.int32) if container.streams.video: video_frames = _read_from_stream( container, video_start_pts, video_end_pts, container.streams.video[0], {"video": 0}, ) # container.streams.video[0].average_rate is not a reliable estimator of # frame rate. It can be wrong for certain codec, such as VP80 # So we do not return video fps here vtimebase = _fraction_to_tensor(container.streams.video[0].time_base) audio_frames = [] atimebase = torch.zeros([0], dtype=torch.int32) if container.streams.audio: audio_frames = _read_from_stream( container, audio_start_pts, audio_end_pts, container.streams.audio[0], {"audio": 0}, ) atimebase = _fraction_to_tensor(container.streams.audio[0].time_base) container.close() vframes = [frame.to_rgb().to_ndarray() for frame in video_frames] vframes = torch.as_tensor(np.stack(vframes)) vframe_pts = torch.tensor([frame.pts for frame in video_frames], dtype=torch.int64) aframes = [frame.to_ndarray() for frame in audio_frames] if aframes: aframes = np.transpose(np.concatenate(aframes, axis=1)) aframes = torch.as_tensor(aframes) else: aframes = torch.empty((1, 0), dtype=torch.float32) aframe_pts = torch.tensor([audio_frame.pts for audio_frame in audio_frames], dtype=torch.int64) return DecoderResult( vframes=vframes, vframe_pts=vframe_pts, vtimebase=vtimebase, aframes=aframes, aframe_pts=aframe_pts, atimebase=atimebase, ) def _pts_convert(pts, timebase_from, timebase_to, round_func=math.floor): """convert pts between different time bases Args: pts: presentation timestamp, float timebase_from: original timebase. Fraction timebase_to: new timebase. Fraction round_func: rounding function. """ new_pts = Fraction(pts, 1) * timebase_from / timebase_to return int(round_func(new_pts)) def _get_video_tensor(video_dir, video_file): """open a video file, and represent the video data by a PT tensor""" full_path = os.path.join(video_dir, video_file) assert os.path.exists(full_path), "File not found: %s" % full_path with open(full_path, "rb") as fp: video_tensor = torch.frombuffer(fp.read(), dtype=torch.uint8) return full_path, video_tensor @pytest.mark.skipif(av is None, reason="PyAV unavailable") @pytest.mark.skipif(_HAS_VIDEO_OPT is False, reason="Didn't compile with ffmpeg") class TestVideoReader: def check_separate_decoding_result(self, tv_result, config): """check the decoding results from TorchVision decoder""" ( vframes, vframe_pts, vtimebase, vfps, vduration, aframes, aframe_pts, atimebase, asample_rate, aduration, ) = tv_result video_duration = vduration.item() * Fraction(vtimebase[0].item(), vtimebase[1].item()) assert video_duration == approx(config.duration, abs=0.5) assert vfps.item() == approx(config.video_fps, abs=0.5) if asample_rate.numel() > 0: assert asample_rate.item() == config.audio_sample_rate audio_duration = aduration.item() * Fraction(atimebase[0].item(), atimebase[1].item()) assert audio_duration == approx(config.duration, abs=0.5) # check if pts of video frames are sorted in ascending order for i in range(len(vframe_pts) - 1): assert vframe_pts[i] < vframe_pts[i + 1] if len(aframe_pts) > 1: # check if pts of audio frames are sorted in ascending order for i in range(len(aframe_pts) - 1): assert aframe_pts[i] < aframe_pts[i + 1] def check_probe_result(self, result, config): vtimebase, vfps, vduration, atimebase, asample_rate, aduration = result video_duration = vduration.item() * Fraction(vtimebase[0].item(), vtimebase[1].item()) assert video_duration == approx(config.duration, abs=0.5) assert vfps.item() == approx(config.video_fps, abs=0.5) if asample_rate.numel() > 0: assert asample_rate.item() == config.audio_sample_rate audio_duration = aduration.item() * Fraction(atimebase[0].item(), atimebase[1].item()) assert audio_duration == approx(config.duration, abs=0.5) def check_meta_result(self, result, config): assert result.video_duration == approx(config.duration, abs=0.5) assert result.video_fps == approx(config.video_fps, abs=0.5) if result.has_audio > 0: assert result.audio_sample_rate == config.audio_sample_rate assert result.audio_duration == approx(config.duration, abs=0.5) def compare_decoding_result(self, tv_result, ref_result, config=all_check_config): """ Compare decoding results from two sources. Args: tv_result: decoding results from TorchVision decoder ref_result: reference decoding results which can be from either PyAv decoder or TorchVision decoder with getPtsOnly = 1 config: config of decoding results checker """ ( vframes, vframe_pts, vtimebase, _vfps, _vduration, aframes, aframe_pts, atimebase, _asample_rate, _aduration, ) = tv_result if isinstance(ref_result, list): # the ref_result is from new video_reader decoder ref_result = DecoderResult( vframes=ref_result[0], vframe_pts=ref_result[1], vtimebase=ref_result[2], aframes=ref_result[5], aframe_pts=ref_result[6], atimebase=ref_result[7], ) if vframes.numel() > 0 and ref_result.vframes.numel() > 0: mean_delta = torch.mean(torch.abs(vframes.float() - ref_result.vframes.float())) assert mean_delta == approx(0.0, abs=8.0) mean_delta = torch.mean(torch.abs(vframe_pts.float() - ref_result.vframe_pts.float())) assert mean_delta == approx(0.0, abs=1.0) assert_equal(vtimebase, ref_result.vtimebase) if config.check_aframes and aframes.numel() > 0 and ref_result.aframes.numel() > 0: """Audio stream is available and audio frame is required to return from decoder""" assert_equal(aframes, ref_result.aframes) if config.check_aframe_pts and aframe_pts.numel() > 0 and ref_result.aframe_pts.numel() > 0: """Audio stream is available""" assert_equal(aframe_pts, ref_result.aframe_pts) assert_equal(atimebase, ref_result.atimebase) @pytest.mark.parametrize("test_video", test_videos.keys()) def test_stress_test_read_video_from_file(self, test_video): pytest.skip( "This stress test will iteratively decode the same set of videos." "It helps to detect memory leak but it takes lots of time to run." "By default, it is disabled" ) num_iter = 10000 # video related width, height, min_dimension, max_dimension = 0, 0, 0, 0 video_start_pts, video_end_pts = 0, -1 video_timebase_num, video_timebase_den = 0, 1 # audio related samples, channels = 0, 0 audio_start_pts, audio_end_pts = 0, -1 audio_timebase_num, audio_timebase_den = 0, 1 for _i in range(num_iter): full_path = os.path.join(VIDEO_DIR, test_video) # pass 1: decode all frames using new decoder torch.ops.video_reader.read_video_from_file( full_path, SEEK_FRAME_MARGIN, 0, # getPtsOnly 1, # readVideoStream width, height, min_dimension, max_dimension, video_start_pts, video_end_pts, video_timebase_num, video_timebase_den, 1, # readAudioStream samples, channels, audio_start_pts, audio_end_pts, audio_timebase_num, audio_timebase_den, ) @pytest.mark.parametrize("test_video,config", test_videos.items()) def test_read_video_from_file(self, test_video, config): """ Test the case when decoder starts with a video file to decode frames. """ # video related width, height, min_dimension, max_dimension = 0, 0, 0, 0 video_start_pts, video_end_pts = 0, -1 video_timebase_num, video_timebase_den = 0, 1 # audio related samples, channels = 0, 0 audio_start_pts, audio_end_pts = 0, -1 audio_timebase_num, audio_timebase_den = 0, 1 full_path = os.path.join(VIDEO_DIR, test_video) # pass 1: decode all frames using new decoder tv_result = torch.ops.video_reader.read_video_from_file( full_path, SEEK_FRAME_MARGIN, 0, # getPtsOnly 1, # readVideoStream width, height, min_dimension, max_dimension, video_start_pts, video_end_pts, video_timebase_num, video_timebase_den, 1, # readAudioStream samples, channels, audio_start_pts, audio_end_pts, audio_timebase_num, audio_timebase_den, ) # pass 2: decode all frames using av pyav_result = _decode_frames_by_av_module(full_path) # check results from TorchVision decoder self.check_separate_decoding_result(tv_result, config) # compare decoding results self.compare_decoding_result(tv_result, pyav_result, config) @pytest.mark.parametrize("test_video,config", test_videos.items()) @pytest.mark.parametrize("read_video_stream,read_audio_stream", [(1, 0), (0, 1)]) def test_read_video_from_file_read_single_stream_only( self, test_video, config, read_video_stream, read_audio_stream ): """ Test the case when decoder starts with a video file to decode frames, and only reads video stream and ignores audio stream """ # video related width, height, min_dimension, max_dimension = 0, 0, 0, 0 video_start_pts, video_end_pts = 0, -1 video_timebase_num, video_timebase_den = 0, 1 # audio related samples, channels = 0, 0 audio_start_pts, audio_end_pts = 0, -1 audio_timebase_num, audio_timebase_den = 0, 1 full_path = os.path.join(VIDEO_DIR, test_video) # decode all frames using new decoder tv_result = torch.ops.video_reader.read_video_from_file( full_path, SEEK_FRAME_MARGIN, 0, # getPtsOnly read_video_stream, width, height, min_dimension, max_dimension, video_start_pts, video_end_pts, video_timebase_num, video_timebase_den, read_audio_stream, samples, channels, audio_start_pts, audio_end_pts, audio_timebase_num, audio_timebase_den, ) ( vframes, vframe_pts, vtimebase, vfps, vduration, aframes, aframe_pts, atimebase, asample_rate, aduration, ) = tv_result assert (vframes.numel() > 0) is bool(read_video_stream) assert (vframe_pts.numel() > 0) is bool(read_video_stream) assert (vtimebase.numel() > 0) is bool(read_video_stream) assert (vfps.numel() > 0) is bool(read_video_stream) expect_audio_data = read_audio_stream == 1 and config.audio_sample_rate is not None assert (aframes.numel() > 0) is bool(expect_audio_data) assert (aframe_pts.numel() > 0) is bool(expect_audio_data) assert (atimebase.numel() > 0) is bool(expect_audio_data) assert (asample_rate.numel() > 0) is bool(expect_audio_data) @pytest.mark.parametrize("test_video", test_videos.keys()) def test_read_video_from_file_rescale_min_dimension(self, test_video): """ Test the case when decoder starts with a video file to decode frames, and video min dimension between height and width is set. """ # video related width, height, min_dimension, max_dimension = 0, 0, 128, 0 video_start_pts, video_end_pts = 0, -1 video_timebase_num, video_timebase_den = 0, 1 # audio related samples, channels = 0, 0 audio_start_pts, audio_end_pts = 0, -1 audio_timebase_num, audio_timebase_den = 0, 1 full_path = os.path.join(VIDEO_DIR, test_video) tv_result = torch.ops.video_reader.read_video_from_file( full_path, SEEK_FRAME_MARGIN, 0, # getPtsOnly 1, # readVideoStream width, height, min_dimension, max_dimension, video_start_pts, video_end_pts, video_timebase_num, video_timebase_den, 1, # readAudioStream samples, channels, audio_start_pts, audio_end_pts, audio_timebase_num, audio_timebase_den, ) assert min_dimension == min(tv_result[0].size(1), tv_result[0].size(2)) @pytest.mark.parametrize("test_video", test_videos.keys()) def test_read_video_from_file_rescale_max_dimension(self, test_video): """ Test the case when decoder starts with a video file to decode frames, and video min dimension between height and width is set. """ # video related width, height, min_dimension, max_dimension = 0, 0, 0, 85 video_start_pts, video_end_pts = 0, -1 video_timebase_num, video_timebase_den = 0, 1 # audio related samples, channels = 0, 0 audio_start_pts, audio_end_pts = 0, -1 audio_timebase_num, audio_timebase_den = 0, 1 full_path = os.path.join(VIDEO_DIR, test_video) tv_result = torch.ops.video_reader.read_video_from_file( full_path, SEEK_FRAME_MARGIN, 0, # getPtsOnly 1, # readVideoStream width, height, min_dimension, max_dimension, video_start_pts, video_end_pts, video_timebase_num, video_timebase_den, 1, # readAudioStream samples, channels, audio_start_pts, audio_end_pts, audio_timebase_num, audio_timebase_den, ) assert max_dimension == max(tv_result[0].size(1), tv_result[0].size(2)) @pytest.mark.parametrize("test_video", test_videos.keys()) def test_read_video_from_file_rescale_both_min_max_dimension(self, test_video): """ Test the case when decoder starts with a video file to decode frames, and video min dimension between height and width is set. """ # video related width, height, min_dimension, max_dimension = 0, 0, 64, 85 video_start_pts, video_end_pts = 0, -1 video_timebase_num, video_timebase_den = 0, 1 # audio related samples, channels = 0, 0 audio_start_pts, audio_end_pts = 0, -1 audio_timebase_num, audio_timebase_den = 0, 1 full_path = os.path.join(VIDEO_DIR, test_video) tv_result = torch.ops.video_reader.read_video_from_file( full_path, SEEK_FRAME_MARGIN, 0, # getPtsOnly 1, # readVideoStream width, height, min_dimension, max_dimension, video_start_pts, video_end_pts, video_timebase_num, video_timebase_den, 1, # readAudioStream samples, channels, audio_start_pts, audio_end_pts, audio_timebase_num, audio_timebase_den, ) assert min_dimension == min(tv_result[0].size(1), tv_result[0].size(2)) assert max_dimension == max(tv_result[0].size(1), tv_result[0].size(2)) @pytest.mark.parametrize("test_video", test_videos.keys()) def test_read_video_from_file_rescale_width(self, test_video): """ Test the case when decoder starts with a video file to decode frames, and video width is set. """ # video related width, height, min_dimension, max_dimension = 256, 0, 0, 0 video_start_pts, video_end_pts = 0, -1 video_timebase_num, video_timebase_den = 0, 1 # audio related samples, channels = 0, 0 audio_start_pts, audio_end_pts = 0, -1 audio_timebase_num, audio_timebase_den = 0, 1 full_path = os.path.join(VIDEO_DIR, test_video) tv_result = torch.ops.video_reader.read_video_from_file( full_path, SEEK_FRAME_MARGIN, 0, # getPtsOnly 1, # readVideoStream width, height, min_dimension, max_dimension, video_start_pts, video_end_pts, video_timebase_num, video_timebase_den, 1, # readAudioStream samples, channels, audio_start_pts, audio_end_pts, audio_timebase_num, audio_timebase_den, ) assert tv_result[0].size(2) == width @pytest.mark.parametrize("test_video", test_videos.keys()) def test_read_video_from_file_rescale_height(self, test_video): """ Test the case when decoder starts with a video file to decode frames, and video height is set. """ # video related width, height, min_dimension, max_dimension = 0, 224, 0, 0 video_start_pts, video_end_pts = 0, -1 video_timebase_num, video_timebase_den = 0, 1 # audio related samples, channels = 0, 0 audio_start_pts, audio_end_pts = 0, -1 audio_timebase_num, audio_timebase_den = 0, 1 full_path = os.path.join(VIDEO_DIR, test_video) tv_result = torch.ops.video_reader.read_video_from_file( full_path, SEEK_FRAME_MARGIN, 0, # getPtsOnly 1, # readVideoStream width, height, min_dimension, max_dimension, video_start_pts, video_end_pts, video_timebase_num, video_timebase_den, 1, # readAudioStream samples, channels, audio_start_pts, audio_end_pts, audio_timebase_num, audio_timebase_den, ) assert tv_result[0].size(1) == height @pytest.mark.parametrize("test_video", test_videos.keys()) def test_read_video_from_file_rescale_width_and_height(self, test_video): """ Test the case when decoder starts with a video file to decode frames, and both video height and width are set. """ # video related width, height, min_dimension, max_dimension = 320, 240, 0, 0 video_start_pts, video_end_pts = 0, -1 video_timebase_num, video_timebase_den = 0, 1 # audio related samples, channels = 0, 0 audio_start_pts, audio_end_pts = 0, -1 audio_timebase_num, audio_timebase_den = 0, 1 full_path = os.path.join(VIDEO_DIR, test_video) tv_result = torch.ops.video_reader.read_video_from_file( full_path, SEEK_FRAME_MARGIN, 0, # getPtsOnly 1, # readVideoStream width, height, min_dimension, max_dimension, video_start_pts, video_end_pts, video_timebase_num, video_timebase_den, 1, # readAudioStream samples, channels, audio_start_pts, audio_end_pts, audio_timebase_num, audio_timebase_den, ) assert tv_result[0].size(1) == height assert tv_result[0].size(2) == width @pytest.mark.parametrize("test_video", test_videos.keys()) @pytest.mark.parametrize("samples", [9600, 96000]) def test_read_video_from_file_audio_resampling(self, test_video, samples): """ Test the case when decoder starts with a video file to decode frames, and audio waveform are resampled """ # video related width, height, min_dimension, max_dimension = 0, 0, 0, 0 video_start_pts, video_end_pts = 0, -1 video_timebase_num, video_timebase_den = 0, 1 # audio related channels = 0 audio_start_pts, audio_end_pts = 0, -1 audio_timebase_num, audio_timebase_den = 0, 1 full_path = os.path.join(VIDEO_DIR, test_video) tv_result = torch.ops.video_reader.read_video_from_file( full_path, SEEK_FRAME_MARGIN, 0, # getPtsOnly 1, # readVideoStream width, height, min_dimension, max_dimension, video_start_pts, video_end_pts, video_timebase_num, video_timebase_den, 1, # readAudioStream samples, channels, audio_start_pts, audio_end_pts, audio_timebase_num, audio_timebase_den, ) ( vframes, vframe_pts, vtimebase, vfps, vduration, aframes, aframe_pts, atimebase, asample_rate, aduration, ) = tv_result if aframes.numel() > 0: assert samples == asample_rate.item() assert 1 == aframes.size(1) # when audio stream is found duration = float(aframe_pts[-1]) * float(atimebase[0]) / float(atimebase[1]) assert aframes.size(0) == approx(int(duration * asample_rate.item()), abs=0.1 * asample_rate.item()) @pytest.mark.parametrize("test_video,config", test_videos.items()) def test_compare_read_video_from_memory_and_file(self, test_video, config): """ Test the case when video is already in memory, and decoder reads data in memory """ # video related width, height, min_dimension, max_dimension = 0, 0, 0, 0 video_start_pts, video_end_pts = 0, -1 video_timebase_num, video_timebase_den = 0, 1 # audio related samples, channels = 0, 0 audio_start_pts, audio_end_pts = 0, -1 audio_timebase_num, audio_timebase_den = 0, 1 full_path, video_tensor = _get_video_tensor(VIDEO_DIR, test_video) # pass 1: decode all frames using cpp decoder tv_result_memory = torch.ops.video_reader.read_video_from_memory( video_tensor, SEEK_FRAME_MARGIN, 0, # getPtsOnly 1, # readVideoStream width, height, min_dimension, max_dimension, video_start_pts, video_end_pts, video_timebase_num, video_timebase_den, 1, # readAudioStream samples, channels, audio_start_pts, audio_end_pts, audio_timebase_num, audio_timebase_den, ) self.check_separate_decoding_result(tv_result_memory, config) # pass 2: decode all frames from file tv_result_file = torch.ops.video_reader.read_video_from_file( full_path, SEEK_FRAME_MARGIN, 0, # getPtsOnly 1, # readVideoStream width, height, min_dimension, max_dimension, video_start_pts, video_end_pts, video_timebase_num, video_timebase_den, 1, # readAudioStream samples, channels, audio_start_pts, audio_end_pts, audio_timebase_num, audio_timebase_den, ) self.check_separate_decoding_result(tv_result_file, config) # finally, compare results decoded from memory and file self.compare_decoding_result(tv_result_memory, tv_result_file) @pytest.mark.parametrize("test_video,config", test_videos.items()) def test_read_video_from_memory(self, test_video, config): """ Test the case when video is already in memory, and decoder reads data in memory """ # video related width, height, min_dimension, max_dimension = 0, 0, 0, 0 video_start_pts, video_end_pts = 0, -1 video_timebase_num, video_timebase_den = 0, 1 # audio related samples, channels = 0, 0 audio_start_pts, audio_end_pts = 0, -1 audio_timebase_num, audio_timebase_den = 0, 1 full_path, video_tensor = _get_video_tensor(VIDEO_DIR, test_video) # pass 1: decode all frames using cpp decoder tv_result = torch.ops.video_reader.read_video_from_memory( video_tensor, SEEK_FRAME_MARGIN, 0, # getPtsOnly 1, # readVideoStream width, height, min_dimension, max_dimension, video_start_pts, video_end_pts, video_timebase_num, video_timebase_den, 1, # readAudioStream samples, channels, audio_start_pts, audio_end_pts, audio_timebase_num, audio_timebase_den, ) # pass 2: decode all frames using av pyav_result = _decode_frames_by_av_module(full_path) self.check_separate_decoding_result(tv_result, config) self.compare_decoding_result(tv_result, pyav_result, config) @pytest.mark.parametrize("test_video,config", test_videos.items()) def test_read_video_from_memory_get_pts_only(self, test_video, config): """ Test the case when video is already in memory, and decoder reads data in memory. Compare frame pts between decoding for pts only and full decoding for both pts and frame data """ # video related width, height, min_dimension, max_dimension = 0, 0, 0, 0 video_start_pts, video_end_pts = 0, -1 video_timebase_num, video_timebase_den = 0, 1 # audio related samples, channels = 0, 0 audio_start_pts, audio_end_pts = 0, -1 audio_timebase_num, audio_timebase_den = 0, 1 _, video_tensor = _get_video_tensor(VIDEO_DIR, test_video) # pass 1: decode all frames using cpp decoder tv_result = torch.ops.video_reader.read_video_from_memory( video_tensor, SEEK_FRAME_MARGIN, 0, # getPtsOnly 1, # readVideoStream width, height, min_dimension, max_dimension, video_start_pts, video_end_pts, video_timebase_num, video_timebase_den, 1, # readAudioStream samples, channels, audio_start_pts, audio_end_pts, audio_timebase_num, audio_timebase_den, ) assert abs(config.video_fps - tv_result[3].item()) < 0.01 # pass 2: decode all frames to get PTS only using cpp decoder tv_result_pts_only = torch.ops.video_reader.read_video_from_memory( video_tensor, SEEK_FRAME_MARGIN, 1, # getPtsOnly 1, # readVideoStream width, height, min_dimension, max_dimension, video_start_pts, video_end_pts, video_timebase_num, video_timebase_den, 1, # readAudioStream samples, channels, audio_start_pts, audio_end_pts, audio_timebase_num, audio_timebase_den, ) assert not tv_result_pts_only[0].numel() assert not tv_result_pts_only[5].numel() self.compare_decoding_result(tv_result, tv_result_pts_only) @pytest.mark.parametrize("test_video,config", test_videos.items()) @pytest.mark.parametrize("num_frames", [4, 8, 16, 32, 64, 128]) def test_read_video_in_range_from_memory(self, test_video, config, num_frames): """ Test the case when video is already in memory, and decoder reads data in memory. In addition, decoder takes meaningful start- and end PTS as input, and decode frames within that interval """ full_path, video_tensor = _get_video_tensor(VIDEO_DIR, test_video) # video related width, height, min_dimension, max_dimension = 0, 0, 0, 0 video_start_pts, video_end_pts = 0, -1 video_timebase_num, video_timebase_den = 0, 1 # audio related samples, channels = 0, 0 audio_start_pts, audio_end_pts = 0, -1 audio_timebase_num, audio_timebase_den = 0, 1 # pass 1: decode all frames using new decoder tv_result = torch.ops.video_reader.read_video_from_memory( video_tensor, SEEK_FRAME_MARGIN, 0, # getPtsOnly 1, # readVideoStream width, height, min_dimension, max_dimension, video_start_pts, video_end_pts, video_timebase_num, video_timebase_den, 1, # readAudioStream samples, channels, audio_start_pts, audio_end_pts, audio_timebase_num, audio_timebase_den, ) ( vframes, vframe_pts, vtimebase, vfps, vduration, aframes, aframe_pts, atimebase, asample_rate, aduration, ) = tv_result assert abs(config.video_fps - vfps.item()) < 0.01 start_pts_ind_max = vframe_pts.size(0) - num_frames if start_pts_ind_max <= 0: return # randomly pick start pts start_pts_ind = randint(0, start_pts_ind_max) end_pts_ind = start_pts_ind + num_frames - 1 video_start_pts = vframe_pts[start_pts_ind] video_end_pts = vframe_pts[end_pts_ind] video_timebase_num, video_timebase_den = vtimebase[0], vtimebase[1] if len(atimebase) > 0: # when audio stream is available audio_timebase_num, audio_timebase_den = atimebase[0], atimebase[1] audio_start_pts = _pts_convert( video_start_pts.item(), Fraction(video_timebase_num.item(), video_timebase_den.item()), Fraction(audio_timebase_num.item(), audio_timebase_den.item()), math.floor, ) audio_end_pts = _pts_convert( video_end_pts.item(), Fraction(video_timebase_num.item(), video_timebase_den.item()), Fraction(audio_timebase_num.item(), audio_timebase_den.item()), math.ceil, ) # pass 2: decode frames in the randomly generated range tv_result = torch.ops.video_reader.read_video_from_memory( video_tensor, SEEK_FRAME_MARGIN, 0, # getPtsOnly 1, # readVideoStream width, height, min_dimension, max_dimension, video_start_pts, video_end_pts, video_timebase_num, video_timebase_den, 1, # readAudioStream samples, channels, audio_start_pts, audio_end_pts, audio_timebase_num, audio_timebase_den, ) # pass 3: decode frames in range using PyAv video_timebase_av, audio_timebase_av = _get_timebase_by_av_module(full_path) video_start_pts_av = _pts_convert( video_start_pts.item(), Fraction(video_timebase_num.item(), video_timebase_den.item()), Fraction(video_timebase_av.numerator, video_timebase_av.denominator), math.floor, ) video_end_pts_av = _pts_convert( video_end_pts.item(), Fraction(video_timebase_num.item(), video_timebase_den.item()), Fraction(video_timebase_av.numerator, video_timebase_av.denominator), math.ceil, ) if audio_timebase_av: audio_start_pts = _pts_convert( video_start_pts.item(), Fraction(video_timebase_num.item(), video_timebase_den.item()), Fraction(audio_timebase_av.numerator, audio_timebase_av.denominator), math.floor, ) audio_end_pts = _pts_convert( video_end_pts.item(), Fraction(video_timebase_num.item(), video_timebase_den.item()), Fraction(audio_timebase_av.numerator, audio_timebase_av.denominator), math.ceil, ) pyav_result = _decode_frames_by_av_module( full_path, video_start_pts_av, video_end_pts_av, audio_start_pts, audio_end_pts, ) assert tv_result[0].size(0) == num_frames if pyav_result.vframes.size(0) == num_frames: # if PyAv decodes a different number of video frames, skip # comparing the decoding results between Torchvision video reader # and PyAv self.compare_decoding_result(tv_result, pyav_result, config) @pytest.mark.parametrize("test_video,config", test_videos.items()) def test_probe_video_from_file(self, test_video, config): """ Test the case when decoder probes a video file """ full_path = os.path.join(VIDEO_DIR, test_video) probe_result = torch.ops.video_reader.probe_video_from_file(full_path) self.check_probe_result(probe_result, config) @pytest.mark.parametrize("test_video,config", test_videos.items()) def test_probe_video_from_memory(self, test_video, config): """ Test the case when decoder probes a video in memory """ _, video_tensor = _get_video_tensor(VIDEO_DIR, test_video) probe_result = torch.ops.video_reader.probe_video_from_memory(video_tensor) self.check_probe_result(probe_result, config) @pytest.mark.parametrize("test_video,config", test_videos.items()) def test_probe_video_from_memory_script(self, test_video, config): scripted_fun = torch.jit.script(io._probe_video_from_memory) assert scripted_fun is not None _, video_tensor = _get_video_tensor(VIDEO_DIR, test_video) probe_result = scripted_fun(video_tensor) self.check_meta_result(probe_result, config) @pytest.mark.parametrize("test_video", test_videos.keys()) def test_read_video_from_memory_scripted(self, test_video): """ Test the case when video is already in memory, and decoder reads data in memory """ # video related width, height, min_dimension, max_dimension = 0, 0, 0, 0 video_start_pts, video_end_pts = 0, -1 video_timebase_num, video_timebase_den = 0, 1 # audio related samples, channels = 0, 0 audio_start_pts, audio_end_pts = 0, -1 audio_timebase_num, audio_timebase_den = 0, 1 scripted_fun = torch.jit.script(io._read_video_from_memory) assert scripted_fun is not None _, video_tensor = _get_video_tensor(VIDEO_DIR, test_video) # decode all frames using cpp decoder scripted_fun( video_tensor, SEEK_FRAME_MARGIN, 1, # readVideoStream width, height, min_dimension, max_dimension, [video_start_pts, video_end_pts], video_timebase_num, video_timebase_den, 1, # readAudioStream samples, channels, [audio_start_pts, audio_end_pts], audio_timebase_num, audio_timebase_den, ) # FUTURE: check value of video / audio frames def test_invalid_file(self): set_video_backend("video_reader") with pytest.raises(RuntimeError): io.read_video("foo.mp4") set_video_backend("pyav") with pytest.raises(RuntimeError): io.read_video("foo.mp4") @pytest.mark.parametrize("test_video", test_videos.keys()) @pytest.mark.parametrize("backend", ["video_reader", "pyav"]) @pytest.mark.parametrize("start_offset", [0, 500]) @pytest.mark.parametrize("end_offset", [3000, None]) def test_audio_present_pts(self, test_video, backend, start_offset, end_offset): """Test if audio frames are returned with pts unit.""" full_path = os.path.join(VIDEO_DIR, test_video) container = av.open(full_path) if container.streams.audio: set_video_backend(backend) _, audio, _ = io.read_video(full_path, start_offset, end_offset, pts_unit="pts") assert all([dimension > 0 for dimension in audio.shape[:2]]) @pytest.mark.parametrize("test_video", test_videos.keys()) @pytest.mark.parametrize("backend", ["video_reader", "pyav"]) @pytest.mark.parametrize("start_offset", [0, 0.1]) @pytest.mark.parametrize("end_offset", [0.3, None]) def test_audio_present_sec(self, test_video, backend, start_offset, end_offset): """Test if audio frames are returned with sec unit.""" full_path = os.path.join(VIDEO_DIR, test_video) container = av.open(full_path) if container.streams.audio: set_video_backend(backend) _, audio, _ = io.read_video(full_path, start_offset, end_offset, pts_unit="sec") assert all([dimension > 0 for dimension in audio.shape[:2]]) if __name__ == "__main__": pytest.main([__file__]) vision-0.19.1/test/test_videoapi.py000066400000000000000000000311131466211133600173030ustar00rootroot00000000000000import collections import os import urllib import pytest import torch import torchvision from pytest import approx from torchvision.datasets.utils import download_url from torchvision.io import _HAS_VIDEO_OPT, VideoReader # WARNING: these tests have been skipped forever on the CI because the video ops # are never properly available. This is bad, but things have been in a terrible # state for a long time already as we write this comment, and we'll hopefully be # able to get rid of this all soon. try: import av # Do a version test too torchvision.io.video._check_av_available() except ImportError: av = None VIDEO_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "assets", "videos") CheckerConfig = ["duration", "video_fps", "audio_sample_rate"] GroundTruth = collections.namedtuple("GroundTruth", " ".join(CheckerConfig)) def backends(): backends_ = ["video_reader"] if av is not None: backends_.append("pyav") return backends_ def fate(name, path="."): """Download and return a path to a sample from the FFmpeg test suite. See the `FFmpeg Automated Test Environment `_ """ file_name = name.split("/")[1] download_url("http://fate.ffmpeg.org/fate-suite/" + name, path, file_name) return os.path.join(path, file_name) test_videos = { "RATRACE_wave_f_nm_np1_fr_goo_37.avi": GroundTruth(duration=2.0, video_fps=30.0, audio_sample_rate=None), "SchoolRulesHowTheyHelpUs_wave_f_nm_np1_ba_med_0.avi": GroundTruth( duration=2.0, video_fps=30.0, audio_sample_rate=None ), "TrumanShow_wave_f_nm_np1_fr_med_26.avi": GroundTruth(duration=2.0, video_fps=30.0, audio_sample_rate=None), "v_SoccerJuggling_g23_c01.avi": GroundTruth(duration=8.0, video_fps=29.97, audio_sample_rate=None), "v_SoccerJuggling_g24_c01.avi": GroundTruth(duration=8.0, video_fps=29.97, audio_sample_rate=None), "R6llTwEh07w.mp4": GroundTruth(duration=10.0, video_fps=30.0, audio_sample_rate=44100), "SOX5yA1l24A.mp4": GroundTruth(duration=11.0, video_fps=29.97, audio_sample_rate=48000), "WUzgd7C1pWA.mp4": GroundTruth(duration=11.0, video_fps=29.97, audio_sample_rate=48000), } @pytest.mark.skipif(_HAS_VIDEO_OPT is False, reason="Didn't compile with ffmpeg") class TestVideoApi: @pytest.mark.skipif(av is None, reason="PyAV unavailable") @pytest.mark.parametrize("test_video", test_videos.keys()) @pytest.mark.parametrize("backend", backends()) def test_frame_reading(self, test_video, backend): torchvision.set_video_backend(backend) full_path = os.path.join(VIDEO_DIR, test_video) with av.open(full_path) as av_reader: if av_reader.streams.video: av_frames, vr_frames = [], [] av_pts, vr_pts = [], [] # get av frames for av_frame in av_reader.decode(av_reader.streams.video[0]): av_frames.append(torch.tensor(av_frame.to_rgb().to_ndarray()).permute(2, 0, 1)) av_pts.append(av_frame.pts * av_frame.time_base) # get vr frames video_reader = VideoReader(full_path, "video") for vr_frame in video_reader: vr_frames.append(vr_frame["data"]) vr_pts.append(vr_frame["pts"]) # same number of frames assert len(vr_frames) == len(av_frames) assert len(vr_pts) == len(av_pts) # compare the frames and ptss for i in range(len(vr_frames)): assert float(av_pts[i]) == approx(vr_pts[i], abs=0.1) mean_delta = torch.mean(torch.abs(av_frames[i].float() - vr_frames[i].float())) # on average the difference is very small and caused # by decoding (around 1%) # TODO: asses empirically how to set this? atm it's 1% # averaged over all frames assert mean_delta.item() < 2.55 del vr_frames, av_frames, vr_pts, av_pts # test audio reading compared to PYAV with av.open(full_path) as av_reader: if av_reader.streams.audio: av_frames, vr_frames = [], [] av_pts, vr_pts = [], [] # get av frames for av_frame in av_reader.decode(av_reader.streams.audio[0]): av_frames.append(torch.tensor(av_frame.to_ndarray()).permute(1, 0)) av_pts.append(av_frame.pts * av_frame.time_base) av_reader.close() # get vr frames video_reader = VideoReader(full_path, "audio") for vr_frame in video_reader: vr_frames.append(vr_frame["data"]) vr_pts.append(vr_frame["pts"]) # same number of frames assert len(vr_frames) == len(av_frames) assert len(vr_pts) == len(av_pts) # compare the frames and ptss for i in range(len(vr_frames)): assert float(av_pts[i]) == approx(vr_pts[i], abs=0.1) max_delta = torch.max(torch.abs(av_frames[i].float() - vr_frames[i].float())) # we assure that there is never more than 1% difference in signal assert max_delta.item() < 0.001 @pytest.mark.parametrize("stream", ["video", "audio"]) @pytest.mark.parametrize("test_video", test_videos.keys()) @pytest.mark.parametrize("backend", backends()) def test_frame_reading_mem_vs_file(self, test_video, stream, backend): torchvision.set_video_backend(backend) full_path = os.path.join(VIDEO_DIR, test_video) reader = VideoReader(full_path) reader_md = reader.get_metadata() if stream in reader_md: # Test video reading from file vs from memory vr_frames, vr_frames_mem = [], [] vr_pts, vr_pts_mem = [], [] # get vr frames video_reader = VideoReader(full_path, stream) for vr_frame in video_reader: vr_frames.append(vr_frame["data"]) vr_pts.append(vr_frame["pts"]) # get vr frames = read from memory f = open(full_path, "rb") fbytes = f.read() f.close() video_reader_from_mem = VideoReader(fbytes, stream) for vr_frame_from_mem in video_reader_from_mem: vr_frames_mem.append(vr_frame_from_mem["data"]) vr_pts_mem.append(vr_frame_from_mem["pts"]) # same number of frames assert len(vr_frames) == len(vr_frames_mem) assert len(vr_pts) == len(vr_pts_mem) # compare the frames and ptss for i in range(len(vr_frames)): assert vr_pts[i] == vr_pts_mem[i] mean_delta = torch.mean(torch.abs(vr_frames[i].float() - vr_frames_mem[i].float())) # on average the difference is very small and caused # by decoding (around 1%) # TODO: asses empirically how to set this? atm it's 1% # averaged over all frames assert mean_delta.item() < 2.55 del vr_frames, vr_pts, vr_frames_mem, vr_pts_mem else: del reader, reader_md @pytest.mark.parametrize("test_video,config", test_videos.items()) @pytest.mark.parametrize("backend", backends()) def test_metadata(self, test_video, config, backend): """ Test that the metadata returned via pyav corresponds to the one returned by the new video decoder API """ torchvision.set_video_backend(backend) full_path = os.path.join(VIDEO_DIR, test_video) reader = VideoReader(full_path, "video") reader_md = reader.get_metadata() assert config.video_fps == approx(reader_md["video"]["fps"][0], abs=0.0001) assert config.duration == approx(reader_md["video"]["duration"][0], abs=0.5) @pytest.mark.parametrize("test_video", test_videos.keys()) @pytest.mark.parametrize("backend", backends()) def test_seek_start(self, test_video, backend): torchvision.set_video_backend(backend) full_path = os.path.join(VIDEO_DIR, test_video) video_reader = VideoReader(full_path, "video") num_frames = 0 for _ in video_reader: num_frames += 1 # now seek the container to 0 and do it again # It's often that starting seek can be inprecise # this way and it doesn't start at 0 video_reader.seek(0) start_num_frames = 0 for _ in video_reader: start_num_frames += 1 assert start_num_frames == num_frames # now seek the container to < 0 to check for unexpected behaviour video_reader.seek(-1) start_num_frames = 0 for _ in video_reader: start_num_frames += 1 assert start_num_frames == num_frames @pytest.mark.parametrize("test_video", test_videos.keys()) @pytest.mark.parametrize("backend", ["video_reader"]) def test_accurateseek_middle(self, test_video, backend): torchvision.set_video_backend(backend) full_path = os.path.join(VIDEO_DIR, test_video) stream = "video" video_reader = VideoReader(full_path, stream) md = video_reader.get_metadata() duration = md[stream]["duration"][0] if duration is not None: num_frames = 0 for _ in video_reader: num_frames += 1 video_reader.seek(duration / 2) middle_num_frames = 0 for _ in video_reader: middle_num_frames += 1 assert middle_num_frames < num_frames assert middle_num_frames == approx(num_frames // 2, abs=1) video_reader.seek(duration / 2) frame = next(video_reader) lb = duration / 2 - 1 / md[stream]["fps"][0] ub = duration / 2 + 1 / md[stream]["fps"][0] assert (lb <= frame["pts"]) and (ub >= frame["pts"]) def test_fate_suite(self): # TODO: remove the try-except statement once the connectivity issues are resolved try: video_path = fate("sub/MovText_capability_tester.mp4", VIDEO_DIR) except (urllib.error.URLError, ConnectionError) as error: pytest.skip(f"Skipping due to connectivity issues: {error}") vr = VideoReader(video_path) metadata = vr.get_metadata() assert metadata["subtitles"]["duration"] is not None os.remove(video_path) @pytest.mark.skipif(av is None, reason="PyAV unavailable") @pytest.mark.parametrize("test_video,config", test_videos.items()) @pytest.mark.parametrize("backend", backends()) def test_keyframe_reading(self, test_video, config, backend): torchvision.set_video_backend(backend) full_path = os.path.join(VIDEO_DIR, test_video) av_reader = av.open(full_path) # reduce streams to only keyframes av_stream = av_reader.streams.video[0] av_stream.codec_context.skip_frame = "NONKEY" av_keyframes = [] vr_keyframes = [] if av_reader.streams.video: # get all keyframes using pyav. Then, seek randomly into video reader # and assert that all the returned values are in AV_KEYFRAMES for av_frame in av_reader.decode(av_stream): av_keyframes.append(float(av_frame.pts * av_frame.time_base)) if len(av_keyframes) > 1: video_reader = VideoReader(full_path, "video") for i in range(1, len(av_keyframes)): seek_val = (av_keyframes[i] + av_keyframes[i - 1]) / 2 data = next(video_reader.seek(seek_val, True)) vr_keyframes.append(data["pts"]) data = next(video_reader.seek(config.duration, True)) vr_keyframes.append(data["pts"]) assert len(av_keyframes) == len(vr_keyframes) # NOTE: this video gets different keyframe with different # loaders (0.333 pyav, 0.666 for us) if test_video != "TrumanShow_wave_f_nm_np1_fr_med_26.avi": for i in range(len(av_keyframes)): assert av_keyframes[i] == approx(vr_keyframes[i], rel=0.001) def test_src(self): with pytest.raises(ValueError, match="src cannot be empty"): VideoReader(src="") with pytest.raises(ValueError, match="src must be either string"): VideoReader(src=2) with pytest.raises(TypeError, match="unexpected keyword argument"): VideoReader(path="path") if __name__ == "__main__": pytest.main([__file__]) vision-0.19.1/torchvision/000077500000000000000000000000001466211133600154635ustar00rootroot00000000000000vision-0.19.1/torchvision/__init__.py000066400000000000000000000067061466211133600176050ustar00rootroot00000000000000import os import warnings from modulefinder import Module import torch # Don't re-order these, we need to load the _C extension (done when importing # .extensions) before entering _meta_registrations. from .extension import _HAS_OPS # usort:skip from torchvision import _meta_registrations, datasets, io, models, ops, transforms, utils # usort:skip try: from .version import __version__ # noqa: F401 except ImportError: pass # Check if torchvision is being imported within the root folder if not _HAS_OPS and os.path.dirname(os.path.realpath(__file__)) == os.path.join( os.path.realpath(os.getcwd()), "torchvision" ): message = ( "You are importing torchvision within its own root folder ({}). " "This is not expected to work and may give errors. Please exit the " "torchvision project source and relaunch your python interpreter." ) warnings.warn(message.format(os.getcwd())) _image_backend = "PIL" _video_backend = "pyav" def set_image_backend(backend): """ Specifies the package used to load images. Args: backend (string): Name of the image backend. one of {'PIL', 'accimage'}. The :mod:`accimage` package uses the Intel IPP library. It is generally faster than PIL, but does not support as many operations. """ global _image_backend if backend not in ["PIL", "accimage"]: raise ValueError(f"Invalid backend '{backend}'. Options are 'PIL' and 'accimage'") _image_backend = backend def get_image_backend(): """ Gets the name of the package used to load images """ return _image_backend def set_video_backend(backend): """ Specifies the package used to decode videos. Args: backend (string): Name of the video backend. one of {'pyav', 'video_reader'}. The :mod:`pyav` package uses the 3rd party PyAv library. It is a Pythonic binding for the FFmpeg libraries. The :mod:`video_reader` package includes a native C++ implementation on top of FFMPEG libraries, and a python API of TorchScript custom operator. It generally decodes faster than :mod:`pyav`, but is perhaps less robust. .. note:: Building with FFMPEG is disabled by default in the latest `main`. If you want to use the 'video_reader' backend, please compile torchvision from source. """ global _video_backend if backend not in ["pyav", "video_reader", "cuda"]: raise ValueError("Invalid video backend '%s'. Options are 'pyav', 'video_reader' and 'cuda'" % backend) if backend == "video_reader" and not io._HAS_VIDEO_OPT: # TODO: better messages message = "video_reader video backend is not available. Please compile torchvision from source and try again" raise RuntimeError(message) elif backend == "cuda" and not io._HAS_GPU_VIDEO_DECODER: # TODO: better messages message = "cuda video backend is not available." raise RuntimeError(message) else: _video_backend = backend def get_video_backend(): """ Returns the currently active video backend used to decode videos. Returns: str: Name of the video backend. one of {'pyav', 'video_reader'}. """ return _video_backend def _is_tracing(): return torch._C._get_tracing_state() def disable_beta_transforms_warning(): # Noop, only exists to avoid breaking existing code. # See https://github.com/pytorch/vision/issues/7896 pass vision-0.19.1/torchvision/_internally_replaced_utils.py000066400000000000000000000025551466211133600234430ustar00rootroot00000000000000import importlib.machinery import os from torch.hub import _get_torch_home _HOME = os.path.join(_get_torch_home(), "datasets", "vision") _USE_SHARDED_DATASETS = False def _download_file_from_remote_location(fpath: str, url: str) -> None: pass def _is_remote_location_available() -> bool: return False try: from torch.hub import load_state_dict_from_url # noqa: 401 except ImportError: from torch.utils.model_zoo import load_url as load_state_dict_from_url # noqa: 401 def _get_extension_path(lib_name): lib_dir = os.path.dirname(__file__) if os.name == "nt": # Register the main torchvision library location on the default DLL path import ctypes kernel32 = ctypes.WinDLL("kernel32.dll", use_last_error=True) with_load_library_flags = hasattr(kernel32, "AddDllDirectory") prev_error_mode = kernel32.SetErrorMode(0x0001) if with_load_library_flags: kernel32.AddDllDirectory.restype = ctypes.c_void_p os.add_dll_directory(lib_dir) kernel32.SetErrorMode(prev_error_mode) loader_details = (importlib.machinery.ExtensionFileLoader, importlib.machinery.EXTENSION_SUFFIXES) extfinder = importlib.machinery.FileFinder(lib_dir, loader_details) ext_specs = extfinder.find_spec(lib_name) if ext_specs is None: raise ImportError return ext_specs.origin vision-0.19.1/torchvision/_meta_registrations.py000066400000000000000000000160501466211133600221010ustar00rootroot00000000000000import functools import torch import torch._custom_ops import torch.library # Ensure that torch.ops.torchvision is visible import torchvision.extension # noqa: F401 @functools.lru_cache(None) def get_meta_lib(): return torch.library.Library("torchvision", "IMPL", "Meta") def register_meta(op_name, overload_name="default"): def wrapper(fn): if torchvision.extension._has_ops(): get_meta_lib().impl(getattr(getattr(torch.ops.torchvision, op_name), overload_name), fn) return fn return wrapper @register_meta("roi_align") def meta_roi_align(input, rois, spatial_scale, pooled_height, pooled_width, sampling_ratio, aligned): torch._check(rois.size(1) == 5, lambda: "rois must have shape as Tensor[K, 5]") torch._check( input.dtype == rois.dtype, lambda: ( "Expected tensor for input to have the same type as tensor for rois; " f"but type {input.dtype} does not equal {rois.dtype}" ), ) num_rois = rois.size(0) channels = input.size(1) return input.new_empty((num_rois, channels, pooled_height, pooled_width)) @register_meta("_roi_align_backward") def meta_roi_align_backward( grad, rois, spatial_scale, pooled_height, pooled_width, batch_size, channels, height, width, sampling_ratio, aligned ): torch._check( grad.dtype == rois.dtype, lambda: ( "Expected tensor for grad to have the same type as tensor for rois; " f"but type {grad.dtype} does not equal {rois.dtype}" ), ) return grad.new_empty((batch_size, channels, height, width)) @register_meta("ps_roi_align") def meta_ps_roi_align(input, rois, spatial_scale, pooled_height, pooled_width, sampling_ratio): torch._check(rois.size(1) == 5, lambda: "rois must have shape as Tensor[K, 5]") torch._check( input.dtype == rois.dtype, lambda: ( "Expected tensor for input to have the same type as tensor for rois; " f"but type {input.dtype} does not equal {rois.dtype}" ), ) channels = input.size(1) torch._check( channels % (pooled_height * pooled_width) == 0, "input channels must be a multiple of pooling height * pooling width", ) num_rois = rois.size(0) out_size = (num_rois, channels // (pooled_height * pooled_width), pooled_height, pooled_width) return input.new_empty(out_size), torch.empty(out_size, dtype=torch.int32, device="meta") @register_meta("_ps_roi_align_backward") def meta_ps_roi_align_backward( grad, rois, channel_mapping, spatial_scale, pooled_height, pooled_width, sampling_ratio, batch_size, channels, height, width, ): torch._check( grad.dtype == rois.dtype, lambda: ( "Expected tensor for grad to have the same type as tensor for rois; " f"but type {grad.dtype} does not equal {rois.dtype}" ), ) return grad.new_empty((batch_size, channels, height, width)) @register_meta("roi_pool") def meta_roi_pool(input, rois, spatial_scale, pooled_height, pooled_width): torch._check(rois.size(1) == 5, lambda: "rois must have shape as Tensor[K, 5]") torch._check( input.dtype == rois.dtype, lambda: ( "Expected tensor for input to have the same type as tensor for rois; " f"but type {input.dtype} does not equal {rois.dtype}" ), ) num_rois = rois.size(0) channels = input.size(1) out_size = (num_rois, channels, pooled_height, pooled_width) return input.new_empty(out_size), torch.empty(out_size, device="meta", dtype=torch.int32) @register_meta("_roi_pool_backward") def meta_roi_pool_backward( grad, rois, argmax, spatial_scale, pooled_height, pooled_width, batch_size, channels, height, width ): torch._check( grad.dtype == rois.dtype, lambda: ( "Expected tensor for grad to have the same type as tensor for rois; " f"but type {grad.dtype} does not equal {rois.dtype}" ), ) return grad.new_empty((batch_size, channels, height, width)) @register_meta("ps_roi_pool") def meta_ps_roi_pool(input, rois, spatial_scale, pooled_height, pooled_width): torch._check(rois.size(1) == 5, lambda: "rois must have shape as Tensor[K, 5]") torch._check( input.dtype == rois.dtype, lambda: ( "Expected tensor for input to have the same type as tensor for rois; " f"but type {input.dtype} does not equal {rois.dtype}" ), ) channels = input.size(1) torch._check( channels % (pooled_height * pooled_width) == 0, "input channels must be a multiple of pooling height * pooling width", ) num_rois = rois.size(0) out_size = (num_rois, channels // (pooled_height * pooled_width), pooled_height, pooled_width) return input.new_empty(out_size), torch.empty(out_size, device="meta", dtype=torch.int32) @register_meta("_ps_roi_pool_backward") def meta_ps_roi_pool_backward( grad, rois, channel_mapping, spatial_scale, pooled_height, pooled_width, batch_size, channels, height, width ): torch._check( grad.dtype == rois.dtype, lambda: ( "Expected tensor for grad to have the same type as tensor for rois; " f"but type {grad.dtype} does not equal {rois.dtype}" ), ) return grad.new_empty((batch_size, channels, height, width)) @torch.library.register_fake("torchvision::nms") def meta_nms(dets, scores, iou_threshold): torch._check(dets.dim() == 2, lambda: f"boxes should be a 2d tensor, got {dets.dim()}D") torch._check(dets.size(1) == 4, lambda: f"boxes should have 4 elements in dimension 1, got {dets.size(1)}") torch._check(scores.dim() == 1, lambda: f"scores should be a 1d tensor, got {scores.dim()}") torch._check( dets.size(0) == scores.size(0), lambda: f"boxes and scores should have same number of elements in dimension 0, got {dets.size(0)} and {scores.size(0)}", ) ctx = torch._custom_ops.get_ctx() num_to_keep = ctx.create_unbacked_symint() return dets.new_empty(num_to_keep, dtype=torch.long) @register_meta("deform_conv2d") def meta_deform_conv2d( input, weight, offset, mask, bias, stride_h, stride_w, pad_h, pad_w, dil_h, dil_w, n_weight_grps, n_offset_grps, use_mask, ): out_height, out_width = offset.shape[-2:] out_channels = weight.shape[0] batch_size = input.shape[0] return input.new_empty((batch_size, out_channels, out_height, out_width)) @register_meta("_deform_conv2d_backward") def meta_deform_conv2d_backward( grad, input, weight, offset, mask, bias, stride_h, stride_w, pad_h, pad_w, dilation_h, dilation_w, groups, offset_groups, use_mask, ): grad_input = input.new_empty(input.shape) grad_weight = weight.new_empty(weight.shape) grad_offset = offset.new_empty(offset.shape) grad_mask = mask.new_empty(mask.shape) grad_bias = bias.new_empty(bias.shape) return grad_input, grad_weight, grad_offset, grad_mask, grad_bias vision-0.19.1/torchvision/_utils.py000066400000000000000000000016461466211133600173430ustar00rootroot00000000000000import enum from typing import Sequence, Type, TypeVar T = TypeVar("T", bound=enum.Enum) class StrEnumMeta(enum.EnumMeta): auto = enum.auto def from_str(self: Type[T], member: str) -> T: # type: ignore[misc] try: return self[member] except KeyError: # TODO: use `add_suggestion` from torchvision.prototype.utils._internal to improve the error message as # soon as it is migrated. raise ValueError(f"Unknown value '{member}' for {self.__name__}.") from None class StrEnum(enum.Enum, metaclass=StrEnumMeta): pass def sequence_to_str(seq: Sequence, separate_last: str = "") -> str: if not seq: return "" if len(seq) == 1: return f"'{seq[0]}'" head = "'" + "', '".join([str(item) for item in seq[:-1]]) + "'" tail = f"{'' if separate_last and len(seq) == 2 else ','} {separate_last}'{seq[-1]}'" return head + tail vision-0.19.1/torchvision/csrc/000077500000000000000000000000001466211133600164155ustar00rootroot00000000000000vision-0.19.1/torchvision/csrc/io/000077500000000000000000000000001466211133600170245ustar00rootroot00000000000000vision-0.19.1/torchvision/csrc/io/decoder/000077500000000000000000000000001466211133600204315ustar00rootroot00000000000000vision-0.19.1/torchvision/csrc/io/decoder/audio_sampler.cpp000066400000000000000000000146501466211133600237670ustar00rootroot00000000000000#include "audio_sampler.h" #include #include "util.h" #define AVRESAMPLE_MAX_CHANNELS 32 // www.ffmpeg.org/doxygen/1.1/doc_2examples_2resampling_audio_8c-example.html#a24 namespace ffmpeg { namespace { int preparePlanes( const AudioFormat& fmt, const uint8_t* buffer, int numSamples, uint8_t** planes) { int result; if ((result = av_samples_fill_arrays( planes, nullptr, // linesize is not needed buffer, fmt.channels, numSamples, (AVSampleFormat)fmt.format, 1)) < 0) { LOG(ERROR) << "av_samples_fill_arrays failed, err: " << Util::generateErrorDesc(result) << ", numSamples: " << numSamples << ", fmt: " << fmt.format; } return result; } } // namespace AudioSampler::AudioSampler(void* logCtx) : logCtx_(logCtx) {} AudioSampler::~AudioSampler() { cleanUp(); } void AudioSampler::shutdown() { cleanUp(); } bool AudioSampler::init(const SamplerParameters& params) { cleanUp(); if (params.type != MediaType::TYPE_AUDIO) { LOG(ERROR) << "Invalid media type, expected MediaType::TYPE_AUDIO"; return false; } #if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 28, 100) SwrContext* swrContext_ = NULL; AVChannelLayout channel_out; AVChannelLayout channel_in; av_channel_layout_default(&channel_out, params.out.audio.channels); av_channel_layout_default(&channel_in, params.in.audio.channels); int ret = swr_alloc_set_opts2( &swrContext_, &channel_out, (AVSampleFormat)params.out.audio.format, params.out.audio.samples, &channel_in, (AVSampleFormat)params.in.audio.format, params.in.audio.samples, 0, logCtx_); #else swrContext_ = swr_alloc_set_opts( nullptr, av_get_default_channel_layout(params.out.audio.channels), (AVSampleFormat)params.out.audio.format, params.out.audio.samples, av_get_default_channel_layout(params.in.audio.channels), (AVSampleFormat)params.in.audio.format, params.in.audio.samples, 0, logCtx_); #endif if (swrContext_ == nullptr) { LOG(ERROR) << "Cannot allocate SwrContext"; return false; } int result; if ((result = swr_init(swrContext_)) < 0) { LOG(ERROR) << "swr_init failed, err: " << Util::generateErrorDesc(result) << ", in -> format: " << params.in.audio.format << ", channels: " << params.in.audio.channels << ", samples: " << params.in.audio.samples << ", out -> format: " << params.out.audio.format << ", channels: " << params.out.audio.channels << ", samples: " << params.out.audio.samples; return false; } // set formats params_ = params; return true; } int AudioSampler::numOutputSamples(int inSamples) const { return swr_get_out_samples(swrContext_, inSamples); } int AudioSampler::sample( const uint8_t* inPlanes[], int inNumSamples, ByteStorage* out, int outNumSamples) { int result; int outBufferBytes = av_samples_get_buffer_size( nullptr, params_.out.audio.channels, outNumSamples, (AVSampleFormat)params_.out.audio.format, 1); if (out) { out->ensure(outBufferBytes); uint8_t* outPlanes[AVRESAMPLE_MAX_CHANNELS] = {nullptr}; if ((result = preparePlanes( params_.out.audio, out->writableTail(), outNumSamples, outPlanes)) < 0) { return result; } if ((result = swr_convert( swrContext_, &outPlanes[0], outNumSamples, inPlanes, inNumSamples)) < 0) { LOG(ERROR) << "swr_convert failed, err: " << Util::generateErrorDesc(result); return result; } TORCH_CHECK_LE(result, outNumSamples); if (result) { if ((result = av_samples_get_buffer_size( nullptr, params_.out.audio.channels, result, (AVSampleFormat)params_.out.audio.format, 1)) >= 0) { out->append(result); } else { LOG(ERROR) << "av_samples_get_buffer_size failed, err: " << Util::generateErrorDesc(result); } } } else { // allocate a temporary buffer auto* tmpBuffer = static_cast(av_malloc(outBufferBytes)); if (!tmpBuffer) { LOG(ERROR) << "av_alloc failed, for size: " << outBufferBytes; return -1; } uint8_t* outPlanes[AVRESAMPLE_MAX_CHANNELS] = {nullptr}; if ((result = preparePlanes( params_.out.audio, tmpBuffer, outNumSamples, outPlanes)) < 0) { av_free(tmpBuffer); return result; } if ((result = swr_convert( swrContext_, &outPlanes[0], outNumSamples, inPlanes, inNumSamples)) < 0) { LOG(ERROR) << "swr_convert failed, err: " << Util::generateErrorDesc(result); av_free(tmpBuffer); return result; } av_free(tmpBuffer); TORCH_CHECK_LE(result, outNumSamples); if (result) { result = av_samples_get_buffer_size( nullptr, params_.out.audio.channels, result, (AVSampleFormat)params_.out.audio.format, 1); } } return result; } int AudioSampler::sample(AVFrame* frame, ByteStorage* out) { const auto outNumSamples = numOutputSamples(frame ? frame->nb_samples : 0); if (!outNumSamples) { return 0; } return sample( frame ? (const uint8_t**)&frame->data[0] : nullptr, frame ? frame->nb_samples : 0, out, outNumSamples); } int AudioSampler::sample(const ByteStorage* in, ByteStorage* out) { const auto inSampleSize = av_get_bytes_per_sample((AVSampleFormat)params_.in.audio.format); const auto inNumSamples = !in ? 0 : in->length() / inSampleSize / params_.in.audio.channels; const auto outNumSamples = numOutputSamples(inNumSamples); if (!outNumSamples) { return 0; } uint8_t* inPlanes[AVRESAMPLE_MAX_CHANNELS] = {nullptr}; int result; if (in && (result = preparePlanes( params_.in.audio, in->data(), inNumSamples, inPlanes)) < 0) { return result; } return sample( in ? (const uint8_t**)inPlanes : nullptr, inNumSamples, out, outNumSamples); } void AudioSampler::cleanUp() { if (swrContext_) { swr_free(&swrContext_); swrContext_ = nullptr; } } } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/audio_sampler.h000066400000000000000000000015021466211133600234240ustar00rootroot00000000000000#pragma once #include "defs.h" namespace ffmpeg { /** * Class transcode audio frames from one format into another */ class AudioSampler : public MediaSampler { public: explicit AudioSampler(void* logCtx); ~AudioSampler() override; // MediaSampler overrides bool init(const SamplerParameters& params) override; int sample(const ByteStorage* in, ByteStorage* out) override; void shutdown() override; int sample(AVFrame* frame, ByteStorage* out); private: // close resources void cleanUp(); // helper functions for rescaling, cropping, etc. int numOutputSamples(int inSamples) const; int sample( const uint8_t* inPlanes[], int inNumSamples, ByteStorage* out, int outNumSamples); private: SwrContext* swrContext_{nullptr}; void* logCtx_{nullptr}; }; } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/audio_stream.cpp000066400000000000000000000072131466211133600236140ustar00rootroot00000000000000#include "audio_stream.h" #include #include #include "util.h" namespace ffmpeg { namespace { static int get_nb_channels(const AVFrame* frame, const AVCodecContext* codec) { #if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 28, 100) return frame ? frame->ch_layout.nb_channels : codec->ch_layout.nb_channels; #else return frame ? frame->channels : codec->channels; #endif } bool operator==(const AudioFormat& x, const AVFrame& y) { return x.samples == static_cast(y.sample_rate) && x.channels == static_cast(get_nb_channels(&y, nullptr)) && x.format == y.format; } bool operator==(const AudioFormat& x, const AVCodecContext& y) { return x.samples == static_cast(y.sample_rate) && x.channels == static_cast(get_nb_channels(nullptr, &y)) && x.format == y.sample_fmt; } AudioFormat& toAudioFormat(AudioFormat& x, const AVFrame& y) { x.samples = y.sample_rate; x.channels = get_nb_channels(&y, nullptr); x.format = y.format; return x; } AudioFormat& toAudioFormat(AudioFormat& x, const AVCodecContext& y) { x.samples = y.sample_rate; x.channels = get_nb_channels(nullptr, &y); x.format = y.sample_fmt; return x; } } // namespace AudioStream::AudioStream( AVFormatContext* inputCtx, int index, bool convertPtsToWallTime, const AudioFormat& format) : Stream( inputCtx, MediaFormat::makeMediaFormat(format, index), convertPtsToWallTime, 0) {} AudioStream::~AudioStream() { if (sampler_) { sampler_->shutdown(); sampler_.reset(); } } int AudioStream::initFormat() { // set output format if (format_.format.audio.samples == 0) { format_.format.audio.samples = codecCtx_->sample_rate; } #if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 28, 100) if (format_.format.audio.channels == 0) { format_.format.audio.channels = codecCtx_->ch_layout.nb_channels; } #else if (format_.format.audio.channels == 0) { format_.format.audio.channels = codecCtx_->channels; } #endif if (format_.format.audio.format == AV_SAMPLE_FMT_NONE) { format_.format.audio.format = codecCtx_->sample_fmt; } return format_.format.audio.samples != 0 && format_.format.audio.channels != 0 && format_.format.audio.format != AV_SAMPLE_FMT_NONE ? 0 : -1; } // copies audio sample bytes via swr_convert call in audio_sampler.cpp int AudioStream::copyFrameBytes(ByteStorage* out, bool flush) { if (!sampler_) { sampler_ = std::make_unique(codecCtx_); } // check if input format gets changed if (flush ? !(sampler_->getInputFormat().audio == *codecCtx_) : !(sampler_->getInputFormat().audio == *frame_)) { // - reinit sampler SamplerParameters params; params.type = format_.type; params.out = format_.format; params.in = FormatUnion(); flush ? toAudioFormat(params.in.audio, *codecCtx_) : toAudioFormat(params.in.audio, *frame_); if (!sampler_->init(params)) { return -1; } VLOG(1) << "Set input audio sampler format" << ", samples: " << params.in.audio.samples << ", channels: " << params.in.audio.channels << ", format: " << params.in.audio.format << " : output audio sampler format" << ", samples: " << format_.format.audio.samples << ", channels: " << format_.format.audio.channels << ", format: " << format_.format.audio.format; } // calls to a sampler that converts the audio samples and copies them to the // out buffer via ffmpeg::swr_convert return sampler_->sample(flush ? nullptr : frame_, out); } } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/audio_stream.h000066400000000000000000000010241466211133600232530ustar00rootroot00000000000000#pragma once #include "audio_sampler.h" #include "stream.h" namespace ffmpeg { /** * Class uses FFMPEG library to decode one audio stream. */ class AudioStream : public Stream { public: AudioStream( AVFormatContext* inputCtx, int index, bool convertPtsToWallTime, const AudioFormat& format); ~AudioStream() override; private: int initFormat() override; int copyFrameBytes(ByteStorage* out, bool flush) override; private: std::unique_ptr sampler_; }; } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/cc_stream.cpp000066400000000000000000000011531466211133600230750ustar00rootroot00000000000000#include "cc_stream.h" namespace ffmpeg { CCStream::CCStream( AVFormatContext* inputCtx, int index, bool convertPtsToWallTime, const SubtitleFormat& format) : SubtitleStream(inputCtx, index, convertPtsToWallTime, format) { format_.type = TYPE_CC; } AVCodec* CCStream::findCodec(AVCodecParameters* params) { if (params->codec_id == AV_CODEC_ID_BIN_DATA && params->codec_type == AVMEDIA_TYPE_DATA) { // obtain subtitles codec params->codec_id = AV_CODEC_ID_MOV_TEXT; params->codec_type = AVMEDIA_TYPE_SUBTITLE; } return Stream::findCodec(params); } } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/cc_stream.h000066400000000000000000000006401466211133600225420ustar00rootroot00000000000000#pragma once #include "subtitle_stream.h" namespace ffmpeg { /** * Class uses FFMPEG library to decode one closed captions stream. */ class CCStream : public SubtitleStream { public: CCStream( AVFormatContext* inputCtx, int index, bool convertPtsToWallTime, const SubtitleFormat& format); private: AVCodec* findCodec(AVCodecParameters* params) override; }; } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/decoder.cpp000066400000000000000000000507731466211133600225560ustar00rootroot00000000000000#include "decoder.h" #include #include #include #include #include #include "audio_stream.h" #include "cc_stream.h" #include "subtitle_stream.h" #include "util.h" #include "video_stream.h" namespace ffmpeg { namespace { constexpr size_t kIoBufferSize = 96 * 1024; constexpr size_t kIoPaddingSize = AV_INPUT_BUFFER_PADDING_SIZE; constexpr size_t kLogBufferSize = 1024; bool mapFfmpegType(AVMediaType media, MediaType* type) { switch (media) { case AVMEDIA_TYPE_AUDIO: *type = TYPE_AUDIO; return true; case AVMEDIA_TYPE_VIDEO: *type = TYPE_VIDEO; return true; case AVMEDIA_TYPE_SUBTITLE: *type = TYPE_SUBTITLE; return true; case AVMEDIA_TYPE_DATA: *type = TYPE_CC; return true; default: return false; } } std::unique_ptr createStream( MediaType type, AVFormatContext* ctx, int idx, bool convertPtsToWallTime, const FormatUnion& format, int64_t loggingUuid) { switch (type) { case TYPE_AUDIO: return std::make_unique( ctx, idx, convertPtsToWallTime, format.audio); case TYPE_VIDEO: return std::make_unique( // negative loggingUuid indicates video streams. ctx, idx, convertPtsToWallTime, format.video, -loggingUuid); case TYPE_SUBTITLE: return std::make_unique( ctx, idx, convertPtsToWallTime, format.subtitle); case TYPE_CC: return std::make_unique( ctx, idx, convertPtsToWallTime, format.subtitle); default: return nullptr; } } } // Namespace /* static */ void Decoder::logFunction(void* avcl, int level, const char* cfmt, va_list vl) { if (!avcl) { // Nothing can be done here return; } AVClass* avclass = *reinterpret_cast(avcl); if (!avclass) { // Nothing can be done here return; } Decoder* decoder = nullptr; if (strcmp(avclass->class_name, "AVFormatContext") == 0) { AVFormatContext* context = reinterpret_cast(avcl); if (context) { decoder = reinterpret_cast(context->opaque); } } else if (strcmp(avclass->class_name, "AVCodecContext") == 0) { AVCodecContext* context = reinterpret_cast(avcl); if (context) { decoder = reinterpret_cast(context->opaque); } } else if (strcmp(avclass->class_name, "AVIOContext") == 0) { AVIOContext* context = reinterpret_cast(avcl); // only if opaque was assigned to Decoder pointer if (context && context->read_packet == Decoder::readFunction) { decoder = reinterpret_cast(context->opaque); } } else if (strcmp(avclass->class_name, "SWResampler") == 0) { // expect AVCodecContext as parent if (avclass->parent_log_context_offset) { AVClass** parent = *(AVClass***)(((uint8_t*)avcl) + avclass->parent_log_context_offset); AVCodecContext* context = reinterpret_cast(parent); if (context) { decoder = reinterpret_cast(context->opaque); } } } else if (strcmp(avclass->class_name, "SWScaler") == 0) { // cannot find a way to pass context pointer through SwsContext struct } else { VLOG(2) << "Unknown context class: " << avclass->class_name; } if (decoder != nullptr && decoder->enableLogLevel(level)) { char buf[kLogBufferSize] = {0}; // Format the line int* prefix = decoder->getPrintPrefix(); *prefix = 1; av_log_format_line(avcl, level, cfmt, vl, buf, sizeof(buf) - 1, prefix); // pass message to the decoder instance std::string msg(buf); decoder->logCallback(level, msg); } } bool Decoder::enableLogLevel(int level) const { return ssize_t(level) <= params_.logLevel; } void Decoder::logCallback(int level, const std::string& message) { LOG(INFO) << "Msg, uuid=" << params_.loggingUuid << " level=" << level << " msg=" << message; } /* static */ int Decoder::shutdownFunction(void* ctx) { Decoder* decoder = (Decoder*)ctx; if (decoder == nullptr) { return 1; } return decoder->shutdownCallback(); } int Decoder::shutdownCallback() { return interrupted_ ? 1 : 0; } /* static */ int Decoder::readFunction(void* opaque, uint8_t* buf, int size) { Decoder* decoder = reinterpret_cast(opaque); if (decoder == nullptr) { return 0; } return decoder->readCallback(buf, size); } /* static */ int64_t Decoder::seekFunction(void* opaque, int64_t offset, int whence) { Decoder* decoder = reinterpret_cast(opaque); if (decoder == nullptr) { return -1; } return decoder->seekCallback(offset, whence); } int Decoder::readCallback(uint8_t* buf, int size) { return seekableBuffer_.read(buf, size, params_.timeoutMs); } int64_t Decoder::seekCallback(int64_t offset, int whence) { return seekableBuffer_.seek(offset, whence, params_.timeoutMs); } /* static */ void Decoder::initOnce() { static std::once_flag flagInit; std::call_once(flagInit, []() { #if LIBAVUTIL_VERSION_MAJOR < 56 // Before FFMPEG 4.0 av_register_all(); avcodec_register_all(); #endif avformat_network_init(); av_log_set_callback(Decoder::logFunction); av_log_set_level(AV_LOG_ERROR); VLOG(1) << "Registered ffmpeg libs"; }); } Decoder::Decoder() { initOnce(); } Decoder::~Decoder() { cleanUp(); } // Initialise the format context that holds information about the container and // fill it with minimal information about the format (codecs are not opened // here). Function reads in information about the streams from the container // into inputCtx and then passes it to decoder::openStreams. Finally, if seek is // specified within the decoder parameters, it seeks into the correct frame // (note, the seek defined here is "precise" seek). bool Decoder::init( const DecoderParameters& params, DecoderInCallback&& in, std::vector* metadata) { cleanUp(); if ((params.uri.empty() || in) && (!params.uri.empty() || !in)) { LOG(ERROR) << "uuid=" << params_.loggingUuid << " either external URI gets provided or explicit input callback"; return false; } // set callback and params params_ = params; if (!(inputCtx_ = avformat_alloc_context())) { LOG(ERROR) << "uuid=" << params_.loggingUuid << " cannot allocate format context"; return false; } AVInputFormat* fmt = nullptr; int result = 0; if (in) { ImageType type = ImageType::UNKNOWN; if ((result = seekableBuffer_.init( std::forward(in), params_.timeoutMs, params_.maxSeekableBytes, params_.isImage ? &type : nullptr)) < 0) { LOG(ERROR) << "uuid=" << params_.loggingUuid << " can't initiate seekable buffer"; cleanUp(); return false; } if (params_.isImage) { const char* fmtName = "image2"; switch (type) { case ImageType::JPEG: fmtName = "jpeg_pipe"; break; case ImageType::PNG: fmtName = "png_pipe"; break; case ImageType::TIFF: fmtName = "tiff_pipe"; break; default: break; } fmt = (AVInputFormat*)av_find_input_format(fmtName); } const size_t avioCtxBufferSize = kIoBufferSize; uint8_t* avioCtxBuffer = (uint8_t*)av_malloc(avioCtxBufferSize + kIoPaddingSize); if (!avioCtxBuffer) { LOG(ERROR) << "uuid=" << params_.loggingUuid << " av_malloc cannot allocate " << avioCtxBufferSize << " bytes"; cleanUp(); return false; } if (!(avioCtx_ = avio_alloc_context( avioCtxBuffer, avioCtxBufferSize, 0, reinterpret_cast(this), &Decoder::readFunction, nullptr, result == 1 ? &Decoder::seekFunction : nullptr))) { LOG(ERROR) << "uuid=" << params_.loggingUuid << " avio_alloc_context failed"; av_free(avioCtxBuffer); cleanUp(); return false; } inputCtx_->pb = avioCtx_; inputCtx_->flags |= AVFMT_FLAG_CUSTOM_IO; } inputCtx_->opaque = reinterpret_cast(this); inputCtx_->interrupt_callback.callback = Decoder::shutdownFunction; inputCtx_->interrupt_callback.opaque = reinterpret_cast(this); // add network timeout inputCtx_->flags |= AVFMT_FLAG_NONBLOCK; AVDictionary* options = nullptr; if (params_.listen) { av_dict_set_int(&options, "listen", 1, 0); } if (params_.timeoutMs > 0) { av_dict_set_int(&options, "analyzeduration", params_.timeoutMs * 1000, 0); av_dict_set_int(&options, "stimeout", params_.timeoutMs * 1000, 0); av_dict_set_int(&options, "rw_timeout", params_.timeoutMs * 1000, 0); if (!params_.tlsCertFile.empty()) { av_dict_set(&options, "cert_file", params_.tlsCertFile.data(), 0); } if (!params_.tlsKeyFile.empty()) { av_dict_set(&options, "key_file", params_.tlsKeyFile.data(), 0); } } av_dict_set_int(&options, "probesize", params_.probeSize, 0); interrupted_ = false; // ffmpeg avformat_open_input call can hang if media source doesn't respond // set a guard for handle such situations, if requested std::promise p; std::future f = p.get_future(); std::unique_ptr guard; if (params_.preventStaleness) { guard = std::make_unique([&f, this]() { auto timeout = std::chrono::milliseconds(params_.timeoutMs); if (std::future_status::timeout == f.wait_for(timeout)) { LOG(ERROR) << "uuid=" << params_.loggingUuid << " cannot open stream within " << params_.timeoutMs << " ms"; interrupted_ = true; } }); } if (fmt) { result = avformat_open_input(&inputCtx_, nullptr, fmt, &options); } else { result = avformat_open_input(&inputCtx_, params_.uri.c_str(), nullptr, &options); } av_dict_free(&options); if (guard) { p.set_value(true); guard->join(); guard.reset(); } if (result < 0 || interrupted_) { LOG(ERROR) << "uuid=" << params_.loggingUuid << " avformat_open_input failed, error=" << Util::generateErrorDesc(result); cleanUp(); return false; } result = avformat_find_stream_info(inputCtx_, nullptr); if (result < 0) { LOG(ERROR) << "uuid=" << params_.loggingUuid << " avformat_find_stream_info failed, error=" << Util::generateErrorDesc(result); cleanUp(); return false; } if (!openStreams(metadata)) { LOG(ERROR) << "uuid=" << params_.loggingUuid << " cannot activate streams"; cleanUp(); return false; } // SyncDecoder inherits Decoder which would override onInit. onInit(); if (params.startOffset != 0) { auto offset = params.startOffset <= params.seekAccuracy ? 0 : params.startOffset - params.seekAccuracy; av_seek_frame(inputCtx_, -1, offset, AVSEEK_FLAG_BACKWARD); } VLOG(1) << "Decoder initialized, log level: " << params_.logLevel; return true; } // open appropriate CODEC for every type of stream and move it to the class // variable `streams_` and make sure it is in range for decoding bool Decoder::openStreams(std::vector* metadata) { for (unsigned int i = 0; i < inputCtx_->nb_streams; i++) { // - find the corespondent format at params_.formats set MediaFormat format; #if LIBAVUTIL_VERSION_MAJOR < 56 // Before FFMPEG 4.0 const auto media = inputCtx_->streams[i]->codec->codec_type; #else // FFMPEG 4.0+ const auto media = inputCtx_->streams[i]->codecpar->codec_type; #endif if (!mapFfmpegType(media, &format.type)) { VLOG(1) << "Stream media: " << media << " at index " << i << " gets ignored, unknown type"; continue; // unsupported type } // check format auto it = params_.formats.find(format); if (it == params_.formats.end()) { VLOG(1) << "Stream type: " << format.type << " at index: " << i << " gets ignored, caller is not interested"; continue; // clients don't care about this media format } // do we have stream of this type? auto stream = findByType(format); // should we process this stream? if (it->stream == -2 || // all streams of this type are welcome (!stream && (it->stream == -1 || it->stream == i))) { // new stream VLOG(1) << "Stream type: " << format.type << " found, at index: " << i; auto stream_2 = createStream( format.type, inputCtx_, i, params_.convertPtsToWallTime, it->format, params_.loggingUuid); CHECK(stream_2); if (stream_2->openCodec(metadata, params_.numThreads) < 0) { LOG(ERROR) << "uuid=" << params_.loggingUuid << " open codec failed, stream_idx=" << i; return false; } streams_.emplace(i, std::move(stream_2)); inRange_.set(i, true); } } return true; } void Decoder::shutdown() { cleanUp(); } void Decoder::interrupt() { interrupted_ = true; } void Decoder::cleanUp() { if (!interrupted_) { interrupted_ = true; } if (inputCtx_) { for (auto& stream : streams_) { // Drain stream buffers. DecoderOutputMessage msg; while (msg.payload = nullptr, stream.second->flush(&msg, true) > 0) { } stream.second.reset(); } streams_.clear(); avformat_close_input(&inputCtx_); } if (avioCtx_) { av_freep(&avioCtx_->buffer); av_freep(&avioCtx_); } // reset callback seekableBuffer_.shutdown(); } // function does actual work, derived class calls it in working thread // periodically. On success method returns 0, ENODATA on EOF, ETIMEDOUT if // no frames got decoded in the specified timeout time, AVERROR_BUFFER_TOO_SMALL // when unable to allocate packet and error on unrecoverable error int Decoder::getFrame(size_t workingTimeInMs) { if (inRange_.none()) { return ENODATA; } // decode frames until cache is full and leave thread // once decode() method gets called and grab some bytes // run this method again // init package // update 03/22: moving memory management to ffmpeg AVPacket* avPacket; avPacket = av_packet_alloc(); if (avPacket == nullptr) { LOG(ERROR) << "uuid=" << params_.loggingUuid << " decoder as not able to allocate the packet."; return AVERROR_BUFFER_TOO_SMALL; } avPacket->data = nullptr; avPacket->size = 0; auto end = std::chrono::steady_clock::now() + std::chrono::milliseconds(workingTimeInMs); // return true if elapsed time less than timeout auto watcher = [end]() -> bool { return std::chrono::steady_clock::now() <= end; }; int result = 0; size_t decodingErrors = 0; bool decodedFrame = false; while (!interrupted_ && inRange_.any() && !decodedFrame) { if (watcher() == false) { LOG(ERROR) << "uuid=" << params_.loggingUuid << " hit ETIMEDOUT"; result = ETIMEDOUT; break; } result = av_read_frame(inputCtx_, avPacket); if (result == AVERROR(EAGAIN)) { VLOG(4) << "Decoder is busy..."; std::this_thread::yield(); result = 0; // reset error, EAGAIN is not an error at all // reset the packet to default settings av_packet_unref(avPacket); continue; } else if (result == AVERROR_EOF) { flushStreams(); VLOG(1) << "End of stream"; result = ENODATA; break; } else if ( result == AVERROR(EPERM) && params_.skipOperationNotPermittedPackets) { // reset error, lets skip packets with EPERM result = 0; // reset the packet to default settings av_packet_unref(avPacket); continue; } else if (result < 0) { flushStreams(); LOG(ERROR) << "uuid=" << params_.loggingUuid << " error detected: " << Util::generateErrorDesc(result); break; } // get stream; if stream cannot be found reset the packet to // default settings auto stream = findByIndex(avPacket->stream_index); if (stream == nullptr || !inRange_.test(stream->getIndex())) { av_packet_unref(avPacket); continue; } size_t numConsecutiveNoBytes = 0; // it can be only partial decoding of the package bytes do { // decode package bool gotFrame = false; bool hasMsg = false; // packet either got consumed completely or not at all if ((result = processPacket( stream, avPacket, &gotFrame, &hasMsg, params_.fastSeek)) < 0) { LOG(ERROR) << "uuid=" << params_.loggingUuid << " processPacket failed with code: " << result; break; } if (!gotFrame && params_.maxProcessNoBytes != 0 && ++numConsecutiveNoBytes > params_.maxProcessNoBytes) { LOG(ERROR) << "uuid=" << params_.loggingUuid << " exceeding max amount of consecutive no bytes"; break; } if (result > 0) { numConsecutiveNoBytes = 0; } decodedFrame |= hasMsg; } while (result == 0); // post loop check if (result < 0) { if (params_.maxPackageErrors != 0 && // check errors ++decodingErrors >= params_.maxPackageErrors) { // reached the limit LOG(ERROR) << "uuid=" << params_.loggingUuid << " exceeding max amount of consecutive package errors"; break; } } else { decodingErrors = 0; // reset on success } result = 0; av_packet_unref(avPacket); } av_packet_free(&avPacket); VLOG(2) << "Interrupted loop" << ", interrupted_ " << interrupted_ << ", inRange_.any() " << inRange_.any() << ", decodedFrame " << decodedFrame << ", result " << result; // loop can be terminated, either by: // 1. explicitly interrupted // 3. unrecoverable error or ENODATA (end of stream) or ETIMEDOUT (timeout) // 4. decoded frames pts are out of the specified range // 5. success decoded frame if (interrupted_) { return EINTR; } if (result != 0) { return result; } if (inRange_.none()) { return ENODATA; } return 0; } // find stream by stream index Stream* Decoder::findByIndex(int streamIndex) const { auto it = streams_.find(streamIndex); return it != streams_.end() ? it->second.get() : nullptr; } // find stream by type; note finds only the first stream of a given type Stream* Decoder::findByType(const MediaFormat& format) const { for (auto& stream : streams_) { if (stream.second->getMediaFormat().type == format.type) { return stream.second.get(); } } return nullptr; } // given the stream and packet, decode the frame buffers into the // DecoderOutputMessage data structure via stream::decodePacket function. int Decoder::processPacket( Stream* stream, AVPacket* packet, bool* gotFrame, bool* hasMsg, bool fastSeek) { // decode package int result; DecoderOutputMessage msg; msg.payload = params_.headerOnly ? nullptr : createByteStorage(0); *hasMsg = false; if ((result = stream->decodePacket( packet, &msg, params_.headerOnly, gotFrame)) >= 0 && *gotFrame) { // check end offset bool endInRange = params_.endOffset <= 0 || msg.header.pts <= params_.endOffset; inRange_.set(stream->getIndex(), endInRange); // if fastseek is enabled, we're returning the first // frame that we decode after (potential) seek. // By default, we perform accurate seek to the closest // following frame bool startCondition = true; if (!fastSeek) { startCondition = msg.header.pts >= params_.startOffset; } if (endInRange && startCondition) { *hasMsg = true; push(std::move(msg)); } } return result; } void Decoder::flushStreams() { VLOG(1) << "Flushing streams..."; for (auto& stream : streams_) { DecoderOutputMessage msg; while (msg.payload = (params_.headerOnly ? nullptr : createByteStorage(0)), stream.second->flush(&msg, params_.headerOnly) > 0) { // check end offset bool endInRange = params_.endOffset <= 0 || msg.header.pts <= params_.endOffset; inRange_.set(stream.second->getIndex(), endInRange); if (endInRange && msg.header.pts >= params_.startOffset) { push(std::move(msg)); } else { msg.payload.reset(); } } } } int Decoder::decode_all(const DecoderOutCallback& callback) { int result; do { DecoderOutputMessage out; if (0 == (result = decode(&out, params_.timeoutMs))) { callback(std::move(out)); } } while (result == 0); return result; } } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/decoder.h000066400000000000000000000051351466211133600222130ustar00rootroot00000000000000#pragma once #include #include #include "seekable_buffer.h" #include "stream.h" #if defined(_MSC_VER) #include using ssize_t = SSIZE_T; #endif namespace ffmpeg { /** * Class uses FFMPEG library to decode media streams. * Media bytes can be explicitly provided through read-callback * or fetched internally by FFMPEG library */ class Decoder : public MediaDecoder { public: Decoder(); ~Decoder() override; // MediaDecoder overrides bool init( const DecoderParameters& params, DecoderInCallback&& in, std::vector* metadata) override; int decode_all(const DecoderOutCallback& callback) override; void shutdown() override; void interrupt() override; protected: // function does actual work, derived class calls it in working thread // periodically. On success method returns 0, ENOADATA on EOF, ETIMEDOUT if // no frames got decoded in the specified timeout time, and error on // unrecoverable error. int getFrame(size_t workingTimeInMs = 100); // Derived class must override method and consume the provided message virtual void push(DecoderOutputMessage&& buffer) = 0; // Fires on init call virtual void onInit() {} public: // C-style FFMPEG API requires C/static methods for callbacks static void logFunction(void* avcl, int level, const char* cfmt, va_list vl); static int shutdownFunction(void* ctx); static int readFunction(void* opaque, uint8_t* buf, int size); static int64_t seekFunction(void* opaque, int64_t offset, int whence); // can be called by any classes or API static void initOnce(); int* getPrintPrefix() { return &printPrefix; } private: // mark below function for a proper invocation bool enableLogLevel(int level) const; void logCallback(int level, const std::string& message); int readCallback(uint8_t* buf, int size); int64_t seekCallback(int64_t offset, int whence); int shutdownCallback(); bool openStreams(std::vector* metadata); Stream* findByIndex(int streamIndex) const; Stream* findByType(const MediaFormat& format) const; int processPacket( Stream* stream, AVPacket* packet, bool* gotFrame, bool* hasMsg, bool fastSeek = false); void flushStreams(); void cleanUp(); protected: DecoderParameters params_; private: SeekableBuffer seekableBuffer_; int printPrefix{1}; std::atomic interrupted_{false}; AVFormatContext* inputCtx_{nullptr}; AVIOContext* avioCtx_{nullptr}; std::unordered_map> streams_; std::bitset<64> inRange_; }; } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/defs.h000066400000000000000000000311421466211133600215240ustar00rootroot00000000000000#pragma once #include #include #include #include #include #include #include extern "C" { #include #include #include #include #include #include #include "libswscale/swscale.h" } namespace ffmpeg { // bit mask of formats, keep them in form 2^n enum MediaType : size_t { TYPE_AUDIO = 1, TYPE_VIDEO = 2, TYPE_SUBTITLE = 4, TYPE_CC = 8, // closed captions from transport streams }; // audio struct AudioFormat { // fields are initialized for the auto detection // caller can specify some/all of field values if specific output is desirable bool operator==(const AudioFormat& x) const { return x.format == format && x.samples == samples && x.channels == channels; } size_t samples{0}; // number samples per second (frequency) size_t channels{0}; // number of channels long format{-1}; // AVSampleFormat, auto AV_SAMPLE_FMT_NONE size_t padding[2]; // -- alignment 40 bytes }; // video struct VideoFormat { // fields are initialized for the auto detection // caller can specify some/all of field values if specific output is desirable bool operator==(const VideoFormat& x) const { return x.format == format && x.width == width && x.height == height; } /* When width = 0, height = 0, minDimension = 0, and maxDimension = 0, keep the original frame resolution When width = 0, height = 0, minDimension != 0, and maxDimension = 0, keep the aspect ratio and resize the frame so that shorter edge size is minDimension When width = 0, height = 0, minDimension = 0, and maxDimension != 0, keep the aspect ratio and resize the frame so that longer edge size is maxDimension When width = 0, height = 0, minDimension != 0, and maxDimension != 0, resize the frame so that shorter edge size is minDimension, and longer edge size is maxDimension. The aspect ratio may not be preserved When width = 0, height != 0, minDimension = 0, and maxDimension = 0, keep the aspect ratio and resize the frame so that frame height is $height When width != 0, height = 0, minDimension = 0, and maxDimension = 0, keep the aspect ratio and resize the frame so that frame width is $width When width != 0, height != 0, minDimension = 0, and maxDimension = 0, resize the frame so that frame width and height are set to $width and $height, respectively */ size_t width{0}; // width in pixels size_t height{0}; // height in pixels long format{-1}; // AVPixelFormat, auto AV_PIX_FMT_NONE size_t minDimension{0}; // choose min dimension and rescale accordingly size_t maxDimension{0}; // choose max dimension and rescale accordingly size_t cropImage{0}; // request image crop // -- alignment 40 bytes }; // subtitle/cc struct SubtitleFormat { long type{0}; // AVSubtitleType, auto SUBTITLE_NONE size_t padding[4]; // -- alignment 40 bytes }; union FormatUnion { FormatUnion() : audio() {} explicit FormatUnion(int) : video() {} explicit FormatUnion(char) : subtitle() {} explicit FormatUnion(double) : subtitle() {} AudioFormat audio; VideoFormat video; SubtitleFormat subtitle; // -- alignment 40 bytes }; /* MediaFormat data structure serves as input/output parameter. Caller assigns values for input formats or leave default values for auto detection For output formats all fields will be set to the specific values */ struct MediaFormat { // for using map/set data structures bool operator<(const MediaFormat& x) const { return type < x.type; } bool operator==(const MediaFormat& x) const { if (type != x.type) { return false; } switch (type) { case TYPE_AUDIO: return format.audio == x.format.audio; case TYPE_VIDEO: return format.video == x.format.video; case TYPE_SUBTITLE: case TYPE_CC: return true; default: return false; } } explicit MediaFormat(long s = -1) : type(TYPE_AUDIO), stream(s), format() {} explicit MediaFormat(int x, long s = -1) : type(TYPE_VIDEO), stream(s), format(x) {} explicit MediaFormat(char x, long s = -1) : type(TYPE_SUBTITLE), stream(s), format(x) {} explicit MediaFormat(double x, long s = -1) : type(TYPE_CC), stream(s), format(x) {} static MediaFormat makeMediaFormat(AudioFormat format, long stream) { MediaFormat result(stream); result.format.audio = format; return result; } static MediaFormat makeMediaFormat(VideoFormat format, long stream) { MediaFormat result(0, stream); result.format.video = format; return result; } static MediaFormat makeMediaFormat(SubtitleFormat format, long stream) { MediaFormat result('0', stream); result.format.subtitle = format; return result; } // format type MediaType type; // stream index: // set -1 for one stream auto detection, -2 for all streams auto detection, // >= 0, specified stream, if caller knows the stream index (unlikely) long stream; // union keeps one of the possible formats, defined by MediaType FormatUnion format; }; struct DecoderParameters { // local file, remote file, http url, rtmp stream uri, etc. anything that // ffmpeg can recognize std::string uri{std::string()}; // timeout on getting bytes for decoding size_t timeoutMs{1000}; // logging level, default AV_LOG_PANIC long logLevel{0}; // when decoder would give up, 0 means never size_t maxPackageErrors{0}; // max allowed consecutive times no bytes are processed. 0 means for infinite. size_t maxProcessNoBytes{0}; // start offset (us) long startOffset{0}; // end offset (us) long endOffset{-1}; // logging id int64_t loggingUuid{0}; // internal max seekable buffer size size_t maxSeekableBytes{0}; // adjust header pts to the epoch time bool convertPtsToWallTime{false}; // indicate if input stream is an encoded image bool isImage{false}; // listen and wait for new rtmp stream bool listen{false}; // don't copy frame body, only header bool headerOnly{false}; // enable fast seek (seek only to keyframes) bool fastSeek{false}; // interrupt init method on timeout bool preventStaleness{true}; // seek tolerated accuracy (us) double seekAccuracy{1000000.0}; // Allow multithreaded decoding for numThreads > 1; // 0 numThreads=0 sets up sensible defaults int numThreads{1}; // what media types should be processed, default none std::set formats; // can be used for asynchronous decoders size_t cacheSize{8192}; // mow many bytes to cache before stop reading bytes size_t cacheTimeoutMs{1000}; // timeout on bytes writing bool enforceCacheSize{false}; // drop output frames if cache is full bool mergeAudioMessages{false}; // combine collocated audio messages together std::string tlsCertFile; std::string tlsKeyFile; // Skip packets that fail with EPERM errors and continue decoding. bool skipOperationNotPermittedPackets{false}; // probing size in bytes, i.e. the size of the data to analyze to get stream // information. A higher value will enable detecting more information in case // it is dispersed into the stream, but will increase latency. Must be an // integer not lesser than 32. It is 5000000 by default. int64_t probeSize{5000000}; }; struct DecoderHeader { // message id, from 0 till ... size_t seqno{0}; // decoded timestamp in microseconds from either beginning of the stream or // from epoch time, see DecoderParameters::convertPtsToWallTime long pts{0}; // decoded key frame size_t keyFrame{0}; // frames per second, valid only for video streams double fps{0}; // format specifies what kind frame is in a payload MediaFormat format; }; // Abstract interface ByteStorage class class ByteStorage { public: virtual ~ByteStorage() = default; // makes sure that buffer has at least n bytes available for writing, if not // storage must reallocate memory. virtual void ensure(size_t n) = 0; // caller must not to write more than available bytes virtual uint8_t* writableTail() = 0; // caller confirms that n bytes were written to the writable tail virtual void append(size_t n) = 0; // caller confirms that n bytes were read from the read buffer virtual void trim(size_t n) = 0; // gives an access to the beginning of the read buffer virtual const uint8_t* data() const = 0; // returns the stored size in bytes virtual size_t length() const = 0; // returns available capacity for writable tail virtual size_t tail() const = 0; // clears content, keeps capacity virtual void clear() = 0; }; struct DecoderOutputMessage { DecoderHeader header; std::unique_ptr payload; }; /* * External provider of the ecnoded bytes, specific implementation is left for * different use cases, like file, memory, external network end-points, etc. * Normally input/output parameter @out set to valid, not null buffer pointer, * which indicates "read" call, however there are "seek" modes as well. * @out != nullptr => read from the current offset, @whence got ignored, * @size bytes to read => return number bytes got read, 0 if no more bytes * available, < 0 on error. * @out == nullptr, @timeoutMs == 0 => does provider support "seek" * capability in a first place? @size & @whence got ignored, return 0 on * success, < 0 if "seek" mode is not supported. * @out == nullptr, @timeoutMs != 0 => normal seek call * offset == @size, i.e. @whence = [SEEK_SET, SEEK_CUR, SEEK_END, AVSEEK_SIZE) * return < 0 on error, position if @whence = [SEEK_SET, SEEK_CUR, SEEK_END], * length of buffer if @whence = [AVSEEK_SIZE]. */ using DecoderInCallback = std::function; using DecoderOutCallback = std::function; struct DecoderMetadata { // time base numerator long num{0}; // time base denominator long den{1}; // duration of the stream, in miscroseconds, if available long duration{-1}; // frames per second, valid only for video streams double fps{0}; // format specifies what kind frame is in a payload MediaFormat format; }; /** * Abstract class for decoding media bytes * It has two different modes. Internal media bytes retrieval for given uri and * external media bytes provider in case of memory streams */ class MediaDecoder { public: virtual ~MediaDecoder() = default; /** * Initializes media decoder with parameters, * calls callback when media bytes are available. * Media bytes get fetched internally from provided URI * or invokes provided input callback to get media bytes. * Input callback must be empty for the internal media provider * Caller can provide non-null pointer for the input container * if headers to obtain the streams metadata (optional) */ virtual bool init( const DecoderParameters& params, DecoderInCallback&& in, std::vector* metadata) = 0; /** * Polls available decoded one frame from decoder * Returns error code, 0 - for success */ virtual int decode(DecoderOutputMessage* out, uint64_t timeoutMs) = 0; /** * Polls available decoded bytes from decoder, till EOF or error */ virtual int decode_all(const DecoderOutCallback& callback) = 0; /** * Stops calling callback, releases resources */ virtual void shutdown() = 0; /** * Interrupts whatever decoder is doing at any time */ virtual void interrupt() = 0; /** * Factory to create ByteStorage class instances, particular implementation is * left to the derived class. Caller provides the initially allocated size */ virtual std::unique_ptr createByteStorage(size_t n) = 0; }; struct SamplerParameters { MediaType type{TYPE_AUDIO}; FormatUnion in; FormatUnion out; int64_t loggingUuid{0}; }; /** * Abstract class for sampling media bytes */ class MediaSampler { public: virtual ~MediaSampler() = default; /** * Initializes media sampler with parameters */ virtual bool init(const SamplerParameters& params) = 0; /** * Samples media bytes * Returns error code < 0, or >=0 - for success, indicating number of bytes * processed. * set @in to null for flushing data */ virtual int sample(const ByteStorage* in, ByteStorage* out) = 0; /** * Releases resources */ virtual void shutdown() = 0; /* * Returns media type */ MediaType getMediaType() const { return params_.type; } /* * Returns formats */ FormatUnion getInputFormat() const { return params_.in; } FormatUnion getOutFormat() const { return params_.out; } protected: SamplerParameters params_; }; } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/gpu/000077500000000000000000000000001466211133600212245ustar00rootroot00000000000000vision-0.19.1/torchvision/csrc/io/decoder/gpu/README.rst000066400000000000000000000016541466211133600227210ustar00rootroot00000000000000GPU Decoder =========== GPU decoder depends on ffmpeg for demuxing, uses NVDECODE APIs from the nvidia-video-codec sdk and uses cuda for processing on gpu. In order to use this, please follow the following steps: * Download the latest `nvidia-video-codec-sdk `_ * Extract the zipped file. * Set TORCHVISION_INCLUDE environment variable to the location of the video codec headers(`nvcuvid.h` and `cuviddec.h`), which would be under `Interface` directory. * Set TORCHVISION_LIBRARY environment variable to the location of the video codec library(`libnvcuvid.so`), which would be under `Lib/linux/stubs/x86_64` directory. * Install the latest ffmpeg from `conda-forge` channel. .. code:: bash conda install -c conda-forge ffmpeg * Set CUDA_HOME environment variable to the cuda root directory. * Build torchvision from source: .. code:: bash python setup.py install vision-0.19.1/torchvision/csrc/io/decoder/gpu/decoder.cpp000066400000000000000000000361221466211133600233410ustar00rootroot00000000000000#include "decoder.h" #include #include #include #include #include static float chroma_height_factor(cudaVideoSurfaceFormat surface_format) { return (surface_format == cudaVideoSurfaceFormat_YUV444 || surface_format == cudaVideoSurfaceFormat_YUV444_16Bit) ? 1.0 : 0.5; } static int chroma_plane_count(cudaVideoSurfaceFormat surface_format) { return (surface_format == cudaVideoSurfaceFormat_YUV444 || surface_format == cudaVideoSurfaceFormat_YUV444_16Bit) ? 2 : 1; } /* Initialise cu_context and video_codec, create context lock and create parser * object. */ void Decoder::init(CUcontext context, cudaVideoCodec codec) { cu_context = context; video_codec = codec; check_for_cuda_errors( cuvidCtxLockCreate(&ctx_lock, cu_context), __LINE__, __FILE__); CUVIDPARSERPARAMS parser_params = {}; parser_params.CodecType = codec; parser_params.ulMaxNumDecodeSurfaces = 1; parser_params.ulClockRate = 1000; parser_params.ulMaxDisplayDelay = 0u; parser_params.pUserData = this; parser_params.pfnSequenceCallback = video_sequence_handler; parser_params.pfnDecodePicture = picture_decode_handler; parser_params.pfnDisplayPicture = picture_display_handler; parser_params.pfnGetOperatingPoint = operating_point_handler; check_for_cuda_errors( cuvidCreateVideoParser(&parser, &parser_params), __LINE__, __FILE__); } /* Destroy parser object and context lock. */ Decoder::~Decoder() { if (parser) { cuvidDestroyVideoParser(parser); } cuvidCtxLockDestroy(ctx_lock); } /* Destroy CUvideodecoder object and free up all the unreturned decoded frames. */ void Decoder::release() { cuCtxPushCurrent(cu_context); if (decoder) { cuvidDestroyDecoder(decoder); } cuCtxPopCurrent(nullptr); } /* Trigger video decoding. */ void Decoder::decode(const uint8_t* data, unsigned long size) { CUVIDSOURCEDATAPACKET pkt = {}; pkt.flags = CUVID_PKT_TIMESTAMP; pkt.payload_size = size; pkt.payload = data; pkt.timestamp = 0; if (!data || size == 0) { pkt.flags |= CUVID_PKT_ENDOFSTREAM; } check_for_cuda_errors(cuvidParseVideoData(parser, &pkt), __LINE__, __FILE__); cuvidStream = 0; } /* Fetch a decoded frame and remove it from the queue. */ torch::Tensor Decoder::fetch_frame() { if (decoded_frames.empty()) { auto options = torch::TensorOptions().dtype(torch::kU8).device(torch::kCUDA); return torch::zeros({0}, options); } torch::Tensor frame = decoded_frames.front(); decoded_frames.pop(); return frame; } /* Called when a picture is ready to be decoded. */ int Decoder::handle_picture_decode(CUVIDPICPARAMS* pic_params) { if (!decoder) { TORCH_CHECK(false, "Uninitialised decoder"); } pic_num_in_decode_order[pic_params->CurrPicIdx] = decode_pic_count++; check_for_cuda_errors(cuCtxPushCurrent(cu_context), __LINE__, __FILE__); check_for_cuda_errors( cuvidDecodePicture(decoder, pic_params), __LINE__, __FILE__); check_for_cuda_errors(cuCtxPopCurrent(nullptr), __LINE__, __FILE__); return 1; } /* Process the decoded data and copy it to a cuda memory location. */ int Decoder::handle_picture_display(CUVIDPARSERDISPINFO* disp_info) { CUVIDPROCPARAMS proc_params = {}; proc_params.progressive_frame = disp_info->progressive_frame; proc_params.second_field = disp_info->repeat_first_field + 1; proc_params.top_field_first = disp_info->top_field_first; proc_params.unpaired_field = disp_info->repeat_first_field < 0; proc_params.output_stream = cuvidStream; CUdeviceptr source_frame = 0; unsigned int source_pitch = 0; check_for_cuda_errors(cuCtxPushCurrent(cu_context), __LINE__, __FILE__); check_for_cuda_errors( cuvidMapVideoFrame( decoder, disp_info->picture_index, &source_frame, &source_pitch, &proc_params), __LINE__, __FILE__); CUVIDGETDECODESTATUS decode_status; memset(&decode_status, 0, sizeof(decode_status)); CUresult result = cuvidGetDecodeStatus(decoder, disp_info->picture_index, &decode_status); if (result == CUDA_SUCCESS && (decode_status.decodeStatus == cuvidDecodeStatus_Error || decode_status.decodeStatus == cuvidDecodeStatus_Error_Concealed)) { VLOG(1) << "Decode Error occurred for picture " << pic_num_in_decode_order[disp_info->picture_index]; } auto options = torch::TensorOptions().dtype(torch::kU8).device(torch::kCUDA); torch::Tensor decoded_frame = torch::empty({get_height(), width, 3}, options); uint8_t* frame_ptr = decoded_frame.data_ptr(); const uint8_t* const source_arr[] = { (const uint8_t* const)source_frame, (const uint8_t* const)(source_frame + source_pitch * ((surface_height + 1) & ~1))}; auto err = nppiNV12ToRGB_709CSC_8u_P2C3R( source_arr, source_pitch, frame_ptr, width * 3, {(int)decoded_frame.size(1), (int)decoded_frame.size(0)}); TORCH_CHECK( err == NPP_NO_ERROR, "Failed to convert from NV12 to RGB. Error code:", err); check_for_cuda_errors(cuStreamSynchronize(cuvidStream), __LINE__, __FILE__); decoded_frames.push(decoded_frame); check_for_cuda_errors(cuCtxPopCurrent(nullptr), __LINE__, __FILE__); check_for_cuda_errors( cuvidUnmapVideoFrame(decoder, source_frame), __LINE__, __FILE__); return 1; } /* Query the capabilities of the underlying hardware video decoder and * verify if the hardware supports decoding the passed video. */ void Decoder::query_hardware(CUVIDEOFORMAT* video_format) { CUVIDDECODECAPS decode_caps = {}; decode_caps.eCodecType = video_format->codec; decode_caps.eChromaFormat = video_format->chroma_format; decode_caps.nBitDepthMinus8 = video_format->bit_depth_luma_minus8; check_for_cuda_errors(cuCtxPushCurrent(cu_context), __LINE__, __FILE__); check_for_cuda_errors(cuvidGetDecoderCaps(&decode_caps), __LINE__, __FILE__); check_for_cuda_errors(cuCtxPopCurrent(nullptr), __LINE__, __FILE__); if (!decode_caps.bIsSupported) { TORCH_CHECK(false, "Codec not supported on this GPU"); } if ((video_format->coded_width > decode_caps.nMaxWidth) || (video_format->coded_height > decode_caps.nMaxHeight)) { TORCH_CHECK( false, "Resolution : ", video_format->coded_width, "x", video_format->coded_height, "\nMax Supported (wxh) : ", decode_caps.nMaxWidth, "x", decode_caps.nMaxHeight, "\nResolution not supported on this GPU"); } if ((video_format->coded_width >> 4) * (video_format->coded_height >> 4) > decode_caps.nMaxMBCount) { TORCH_CHECK( false, "MBCount : ", (video_format->coded_width >> 4) * (video_format->coded_height >> 4), "\nMax Supported mbcnt : ", decode_caps.nMaxMBCount, "\nMBCount not supported on this GPU"); } // Check if output format supported. If not, check fallback options if (!(decode_caps.nOutputFormatMask & (1 << video_output_format))) { if (decode_caps.nOutputFormatMask & (1 << cudaVideoSurfaceFormat_NV12)) { video_output_format = cudaVideoSurfaceFormat_NV12; } else if ( decode_caps.nOutputFormatMask & (1 << cudaVideoSurfaceFormat_P016)) { video_output_format = cudaVideoSurfaceFormat_P016; } else if ( decode_caps.nOutputFormatMask & (1 << cudaVideoSurfaceFormat_YUV444)) { video_output_format = cudaVideoSurfaceFormat_YUV444; } else if ( decode_caps.nOutputFormatMask & (1 << cudaVideoSurfaceFormat_YUV444_16Bit)) { video_output_format = cudaVideoSurfaceFormat_YUV444_16Bit; } else { TORCH_CHECK(false, "No supported output format found"); } } } /* Called before decoding frames and/or whenever there is a configuration * change. */ int Decoder::handle_video_sequence(CUVIDEOFORMAT* video_format) { // video_codec has been set in init(). Here it's set // again for potential correction. video_codec = video_format->codec; video_chroma_format = video_format->chroma_format; bit_depth_minus8 = video_format->bit_depth_luma_minus8; bytes_per_pixel = bit_depth_minus8 > 0 ? 2 : 1; // Set the output surface format same as chroma format switch (video_chroma_format) { case cudaVideoChromaFormat_Monochrome: case cudaVideoChromaFormat_420: video_output_format = video_format->bit_depth_luma_minus8 ? cudaVideoSurfaceFormat_P016 : cudaVideoSurfaceFormat_NV12; break; case cudaVideoChromaFormat_444: video_output_format = video_format->bit_depth_luma_minus8 ? cudaVideoSurfaceFormat_YUV444_16Bit : cudaVideoSurfaceFormat_YUV444; break; case cudaVideoChromaFormat_422: video_output_format = cudaVideoSurfaceFormat_NV12; } query_hardware(video_format); if (width && luma_height && chroma_height) { // cuvidCreateDecoder() has been called before and now there's possible // config change. return reconfigure_decoder(video_format); } cu_video_format = *video_format; unsigned long decode_surface = video_format->min_num_decode_surfaces; cudaVideoDeinterlaceMode deinterlace_mode = cudaVideoDeinterlaceMode_Adaptive; if (video_format->progressive_sequence) { deinterlace_mode = cudaVideoDeinterlaceMode_Weave; } CUVIDDECODECREATEINFO video_decode_create_info = {}; video_decode_create_info.ulWidth = video_format->coded_width; video_decode_create_info.ulHeight = video_format->coded_height; video_decode_create_info.ulNumDecodeSurfaces = decode_surface; video_decode_create_info.CodecType = video_format->codec; video_decode_create_info.ChromaFormat = video_format->chroma_format; // With PreferCUVID, JPEG is still decoded by CUDA while video is decoded // by NVDEC hardware video_decode_create_info.ulCreationFlags = cudaVideoCreate_PreferCUVID; video_decode_create_info.bitDepthMinus8 = video_format->bit_depth_luma_minus8; video_decode_create_info.OutputFormat = video_output_format; video_decode_create_info.DeinterlaceMode = deinterlace_mode; video_decode_create_info.ulNumOutputSurfaces = 2; video_decode_create_info.vidLock = ctx_lock; // AV1 has max width/height of sequence in sequence header if (video_format->codec == cudaVideoCodec_AV1 && video_format->seqhdr_data_length > 0) { CUVIDEOFORMATEX* video_format_ex = (CUVIDEOFORMATEX*)video_format; max_width = video_format_ex->av1.max_width; max_height = video_format_ex->av1.max_height; } if (max_width < video_format->coded_width) { max_width = video_format->coded_width; } if (max_height < video_format->coded_height) { max_height = video_format->coded_height; } video_decode_create_info.ulMaxWidth = max_width; video_decode_create_info.ulMaxHeight = max_height; width = video_format->display_area.right - video_format->display_area.left; luma_height = video_format->display_area.bottom - video_format->display_area.top; video_decode_create_info.ulTargetWidth = video_format->coded_width; video_decode_create_info.ulTargetHeight = video_format->coded_height; chroma_height = (int)(ceil(luma_height * chroma_height_factor(video_output_format))); num_chroma_planes = chroma_plane_count(video_output_format); surface_height = video_decode_create_info.ulTargetHeight; surface_width = video_decode_create_info.ulTargetWidth; display_rect.bottom = video_decode_create_info.display_area.bottom; display_rect.top = video_decode_create_info.display_area.top; display_rect.left = video_decode_create_info.display_area.left; display_rect.right = video_decode_create_info.display_area.right; check_for_cuda_errors(cuCtxPushCurrent(cu_context), __LINE__, __FILE__); check_for_cuda_errors( cuvidCreateDecoder(&decoder, &video_decode_create_info), __LINE__, __FILE__); check_for_cuda_errors(cuCtxPopCurrent(nullptr), __LINE__, __FILE__); return decode_surface; } int Decoder::reconfigure_decoder(CUVIDEOFORMAT* video_format) { if (video_format->bit_depth_luma_minus8 != cu_video_format.bit_depth_luma_minus8 || video_format->bit_depth_chroma_minus8 != cu_video_format.bit_depth_chroma_minus8) { TORCH_CHECK(false, "Reconfigure not supported for bit depth change"); } if (video_format->chroma_format != cu_video_format.chroma_format) { TORCH_CHECK(false, "Reconfigure not supported for chroma format change"); } bool decode_res_change = !(video_format->coded_width == cu_video_format.coded_width && video_format->coded_height == cu_video_format.coded_height); bool display_rect_change = !(video_format->display_area.bottom == cu_video_format.display_area.bottom && video_format->display_area.top == cu_video_format.display_area.top && video_format->display_area.left == cu_video_format.display_area.left && video_format->display_area.right == cu_video_format.display_area.right); unsigned int decode_surface = video_format->min_num_decode_surfaces; if ((video_format->coded_width > max_width) || (video_format->coded_height > max_height)) { // For VP9, let driver handle the change if new width/height > // maxwidth/maxheight if (video_codec != cudaVideoCodec_VP9) { TORCH_CHECK( false, "Reconfigure not supported when width/height > maxwidth/maxheight"); } return 1; } if (!decode_res_change) { // If the coded_width/coded_height hasn't changed but display resolution has // changed, then need to update width/height for correct output without // cropping. Example : 1920x1080 vs 1920x1088. if (display_rect_change) { width = video_format->display_area.right - video_format->display_area.left; luma_height = video_format->display_area.bottom - video_format->display_area.top; chroma_height = (int)ceil(luma_height * chroma_height_factor(video_output_format)); num_chroma_planes = chroma_plane_count(video_output_format); } return 1; } cu_video_format.coded_width = video_format->coded_width; cu_video_format.coded_height = video_format->coded_height; CUVIDRECONFIGUREDECODERINFO reconfig_params = {}; reconfig_params.ulWidth = video_format->coded_width; reconfig_params.ulHeight = video_format->coded_height; reconfig_params.ulTargetWidth = surface_width; reconfig_params.ulTargetHeight = surface_height; reconfig_params.ulNumDecodeSurfaces = decode_surface; reconfig_params.display_area.bottom = display_rect.bottom; reconfig_params.display_area.top = display_rect.top; reconfig_params.display_area.left = display_rect.left; reconfig_params.display_area.right = display_rect.right; check_for_cuda_errors(cuCtxPushCurrent(cu_context), __LINE__, __FILE__); check_for_cuda_errors( cuvidReconfigureDecoder(decoder, &reconfig_params), __LINE__, __FILE__); check_for_cuda_errors(cuCtxPopCurrent(nullptr), __LINE__, __FILE__); return decode_surface; } /* Called from AV1 sequence header to get operating point of an AV1 bitstream. */ int Decoder::get_operating_point(CUVIDOPERATINGPOINTINFO* oper_point_info) { return oper_point_info->codec == cudaVideoCodec_AV1 && oper_point_info->av1.operating_points_cnt > 1 ? 0 : -1; } vision-0.19.1/torchvision/csrc/io/decoder/gpu/decoder.h000066400000000000000000000052571466211133600230130ustar00rootroot00000000000000#include #include #include #include #include #include #include static auto check_for_cuda_errors = [](CUresult result, int line_num, std::string file_name) { if (CUDA_SUCCESS != result) { const char* error_name = nullptr; TORCH_CHECK( CUDA_SUCCESS != cuGetErrorName(result, &error_name), "CUDA error: ", error_name, " in ", file_name, " at line ", line_num) TORCH_CHECK( false, "Error: ", result, " in ", file_name, " at line ", line_num); } }; struct Rect { int left, top, right, bottom; }; class Decoder { public: Decoder() {} ~Decoder(); void init(CUcontext, cudaVideoCodec); void release(); void decode(const uint8_t*, unsigned long); torch::Tensor fetch_frame(); int get_height() const { return luma_height; } private: unsigned int width = 0, luma_height = 0, chroma_height = 0; unsigned int surface_height = 0, surface_width = 0; unsigned int max_width = 0, max_height = 0; unsigned int num_chroma_planes = 0; int bit_depth_minus8 = 0, bytes_per_pixel = 1; int decode_pic_count = 0, pic_num_in_decode_order[32]; std::queue decoded_frames; CUcontext cu_context = NULL; CUvideoctxlock ctx_lock; CUvideoparser parser = NULL; CUvideodecoder decoder = NULL; CUstream cuvidStream = 0; cudaVideoCodec video_codec = cudaVideoCodec_NumCodecs; cudaVideoChromaFormat video_chroma_format = cudaVideoChromaFormat_420; cudaVideoSurfaceFormat video_output_format = cudaVideoSurfaceFormat_NV12; CUVIDEOFORMAT cu_video_format = {}; Rect display_rect = {}; static int video_sequence_handler( void* user_data, CUVIDEOFORMAT* video_format) { return ((Decoder*)user_data)->handle_video_sequence(video_format); } static int picture_decode_handler( void* user_data, CUVIDPICPARAMS* pic_params) { return ((Decoder*)user_data)->handle_picture_decode(pic_params); } static int picture_display_handler( void* user_data, CUVIDPARSERDISPINFO* disp_info) { return ((Decoder*)user_data)->handle_picture_display(disp_info); } static int operating_point_handler( void* user_data, CUVIDOPERATINGPOINTINFO* operating_info) { return ((Decoder*)user_data)->get_operating_point(operating_info); } void query_hardware(CUVIDEOFORMAT*); int reconfigure_decoder(CUVIDEOFORMAT*); int handle_video_sequence(CUVIDEOFORMAT*); int handle_picture_decode(CUVIDPICPARAMS*); int handle_picture_display(CUVIDPARSERDISPINFO*); int get_operating_point(CUVIDOPERATINGPOINTINFO*); }; vision-0.19.1/torchvision/csrc/io/decoder/gpu/demuxer.h000066400000000000000000000161551466211133600230560ustar00rootroot00000000000000extern "C" { #include #include #include #include } class Demuxer { private: AVFormatContext* fmtCtx = NULL; AVBSFContext* bsfCtx = NULL; AVPacket pkt, pktFiltered; AVCodecID eVideoCodec; uint8_t* dataWithHeader = NULL; bool bMp4H264, bMp4HEVC, bMp4MPEG4; unsigned int frameCount = 0; int iVideoStream; double timeBase = 0.0; public: Demuxer(const char* filePath) { avformat_network_init(); TORCH_CHECK( 0 <= avformat_open_input(&fmtCtx, filePath, NULL, NULL), "avformat_open_input() failed at line ", __LINE__, " in demuxer.h\n"); if (!fmtCtx) { TORCH_CHECK( false, "Encountered NULL AVFormatContext at line ", __LINE__, " in demuxer.h\n"); } TORCH_CHECK( 0 <= avformat_find_stream_info(fmtCtx, NULL), "avformat_find_stream_info() failed at line ", __LINE__, " in demuxer.h\n"); iVideoStream = av_find_best_stream(fmtCtx, AVMEDIA_TYPE_VIDEO, -1, -1, NULL, 0); if (iVideoStream < 0) { TORCH_CHECK( false, "av_find_best_stream() failed at line ", __LINE__, " in demuxer.h\n"); } eVideoCodec = fmtCtx->streams[iVideoStream]->codecpar->codec_id; AVRational rTimeBase = fmtCtx->streams[iVideoStream]->time_base; timeBase = av_q2d(rTimeBase); bMp4H264 = eVideoCodec == AV_CODEC_ID_H264 && (!strcmp(fmtCtx->iformat->long_name, "QuickTime / MOV") || !strcmp(fmtCtx->iformat->long_name, "FLV (Flash Video)") || !strcmp(fmtCtx->iformat->long_name, "Matroska / WebM")); bMp4HEVC = eVideoCodec == AV_CODEC_ID_HEVC && (!strcmp(fmtCtx->iformat->long_name, "QuickTime / MOV") || !strcmp(fmtCtx->iformat->long_name, "FLV (Flash Video)") || !strcmp(fmtCtx->iformat->long_name, "Matroska / WebM")); bMp4MPEG4 = eVideoCodec == AV_CODEC_ID_MPEG4 && (!strcmp(fmtCtx->iformat->long_name, "QuickTime / MOV") || !strcmp(fmtCtx->iformat->long_name, "FLV (Flash Video)") || !strcmp(fmtCtx->iformat->long_name, "Matroska / WebM")); av_init_packet(&pkt); pkt.data = NULL; pkt.size = 0; av_init_packet(&pktFiltered); pktFiltered.data = NULL; pktFiltered.size = 0; if (bMp4H264) { const AVBitStreamFilter* bsf = av_bsf_get_by_name("h264_mp4toannexb"); if (!bsf) { TORCH_CHECK( false, "av_bsf_get_by_name() failed at line ", __LINE__, " in demuxer.h\n"); } TORCH_CHECK( 0 <= av_bsf_alloc(bsf, &bsfCtx), "av_bsf_alloc() failed at line ", __LINE__, " in demuxer.h\n"); avcodec_parameters_copy( bsfCtx->par_in, fmtCtx->streams[iVideoStream]->codecpar); TORCH_CHECK( 0 <= av_bsf_init(bsfCtx), "av_bsf_init() failed at line ", __LINE__, " in demuxer.h\n"); } if (bMp4HEVC) { const AVBitStreamFilter* bsf = av_bsf_get_by_name("hevc_mp4toannexb"); if (!bsf) { TORCH_CHECK( false, "av_bsf_get_by_name() failed at line ", __LINE__, " in demuxer.h\n"); } TORCH_CHECK( 0 <= av_bsf_alloc(bsf, &bsfCtx), "av_bsf_alloc() failed at line ", __LINE__, " in demuxer.h\n"); avcodec_parameters_copy( bsfCtx->par_in, fmtCtx->streams[iVideoStream]->codecpar); TORCH_CHECK( 0 <= av_bsf_init(bsfCtx), "av_bsf_init() failed at line ", __LINE__, " in demuxer.h\n"); } } ~Demuxer() { if (!fmtCtx) { return; } if (pkt.data) { av_packet_unref(&pkt); } if (pktFiltered.data) { av_packet_unref(&pktFiltered); } if (bsfCtx) { av_bsf_free(&bsfCtx); } avformat_close_input(&fmtCtx); if (dataWithHeader) { av_free(dataWithHeader); } } AVCodecID get_video_codec() { return eVideoCodec; } double get_duration() const { return (double)fmtCtx->duration / AV_TIME_BASE; } double get_fps() const { return av_q2d(fmtCtx->streams[iVideoStream]->r_frame_rate); } bool demux(uint8_t** video, unsigned long* videoBytes) { if (!fmtCtx) { return false; } *videoBytes = 0; if (pkt.data) { av_packet_unref(&pkt); } int e = 0; while ((e = av_read_frame(fmtCtx, &pkt)) >= 0 && pkt.stream_index != iVideoStream) { av_packet_unref(&pkt); } if (e < 0) { return false; } if (bMp4H264 || bMp4HEVC) { if (pktFiltered.data) { av_packet_unref(&pktFiltered); } TORCH_CHECK( 0 <= av_bsf_send_packet(bsfCtx, &pkt), "av_bsf_send_packet() failed at line ", __LINE__, " in demuxer.h\n"); TORCH_CHECK( 0 <= av_bsf_receive_packet(bsfCtx, &pktFiltered), "av_bsf_receive_packet() failed at line ", __LINE__, " in demuxer.h\n"); *video = pktFiltered.data; *videoBytes = pktFiltered.size; } else { if (bMp4MPEG4 && (frameCount == 0)) { int extraDataSize = fmtCtx->streams[iVideoStream]->codecpar->extradata_size; if (extraDataSize > 0) { dataWithHeader = (uint8_t*)av_malloc( extraDataSize + pkt.size - 3 * sizeof(uint8_t)); if (!dataWithHeader) { TORCH_CHECK( false, "av_malloc() failed at line ", __LINE__, " in demuxer.h\n"); } memcpy( dataWithHeader, fmtCtx->streams[iVideoStream]->codecpar->extradata, extraDataSize); memcpy( dataWithHeader + extraDataSize, pkt.data + 3, pkt.size - 3 * sizeof(uint8_t)); *video = dataWithHeader; *videoBytes = extraDataSize + pkt.size - 3 * sizeof(uint8_t); } } else { *video = pkt.data; *videoBytes = pkt.size; } } frameCount++; return true; } void seek(double timestamp, int flag) { int64_t time = timestamp * AV_TIME_BASE; TORCH_CHECK( 0 <= av_seek_frame(fmtCtx, -1, time, flag), "av_seek_frame() failed at line ", __LINE__, " in demuxer.h\n"); } }; inline cudaVideoCodec ffmpeg_to_codec(AVCodecID id) { switch (id) { case AV_CODEC_ID_MPEG1VIDEO: return cudaVideoCodec_MPEG1; case AV_CODEC_ID_MPEG2VIDEO: return cudaVideoCodec_MPEG2; case AV_CODEC_ID_MPEG4: return cudaVideoCodec_MPEG4; case AV_CODEC_ID_WMV3: case AV_CODEC_ID_VC1: return cudaVideoCodec_VC1; case AV_CODEC_ID_H264: return cudaVideoCodec_H264; case AV_CODEC_ID_HEVC: return cudaVideoCodec_HEVC; case AV_CODEC_ID_VP8: return cudaVideoCodec_VP8; case AV_CODEC_ID_VP9: return cudaVideoCodec_VP9; case AV_CODEC_ID_MJPEG: return cudaVideoCodec_JPEG; case AV_CODEC_ID_AV1: return cudaVideoCodec_AV1; default: return cudaVideoCodec_NumCodecs; } } vision-0.19.1/torchvision/csrc/io/decoder/gpu/gpu_decoder.cpp000066400000000000000000000040241466211133600242100ustar00rootroot00000000000000#include "gpu_decoder.h" #include /* Set cuda device, create cuda context and initialise the demuxer and decoder. */ GPUDecoder::GPUDecoder(std::string src_file, torch::Device dev) : demuxer(src_file.c_str()) { at::cuda::CUDAGuard device_guard(dev); device = device_guard.current_device().index(); check_for_cuda_errors( cuDevicePrimaryCtxRetain(&ctx, device), __LINE__, __FILE__); decoder.init(ctx, ffmpeg_to_codec(demuxer.get_video_codec())); initialised = true; } GPUDecoder::~GPUDecoder() { at::cuda::CUDAGuard device_guard(device); decoder.release(); if (initialised) { check_for_cuda_errors( cuDevicePrimaryCtxRelease(device), __LINE__, __FILE__); } } /* Fetch a decoded frame tensor after demuxing and decoding. */ torch::Tensor GPUDecoder::decode() { torch::Tensor frameTensor; unsigned long videoBytes = 0; uint8_t* video = nullptr; at::cuda::CUDAGuard device_guard(device); torch::Tensor frame; do { demuxer.demux(&video, &videoBytes); decoder.decode(video, videoBytes); frame = decoder.fetch_frame(); } while (frame.numel() == 0 && videoBytes > 0); return frame; } /* Seek to a passed timestamp. The second argument controls whether to seek to a * keyframe. */ void GPUDecoder::seek(double timestamp, bool keyframes_only) { int flag = keyframes_only ? 0 : AVSEEK_FLAG_ANY; demuxer.seek(timestamp, flag); } c10::Dict> GPUDecoder:: get_metadata() const { c10::Dict> metadata; c10::Dict video_metadata; video_metadata.insert("duration", demuxer.get_duration()); video_metadata.insert("fps", demuxer.get_fps()); metadata.insert("video", video_metadata); return metadata; } TORCH_LIBRARY(torchvision, m) { m.class_("GPUDecoder") .def(torch::init()) .def("seek", &GPUDecoder::seek) .def("get_metadata", &GPUDecoder::get_metadata) .def("next", &GPUDecoder::decode); } vision-0.19.1/torchvision/csrc/io/decoder/gpu/gpu_decoder.h000066400000000000000000000007241466211133600236600ustar00rootroot00000000000000#include #include #include "decoder.h" #include "demuxer.h" class GPUDecoder : public torch::CustomClassHolder { public: GPUDecoder(std::string, torch::Device); ~GPUDecoder(); torch::Tensor decode(); void seek(double, bool); c10::Dict> get_metadata() const; private: Demuxer demuxer; CUcontext ctx; Decoder decoder; int64_t device; bool initialised = false; }; vision-0.19.1/torchvision/csrc/io/decoder/memory_buffer.cpp000066400000000000000000000031051466211133600237750ustar00rootroot00000000000000#include "memory_buffer.h" #include namespace ffmpeg { MemoryBuffer::MemoryBuffer(const uint8_t* buffer, size_t size) : buffer_(buffer), len_(size) {} int MemoryBuffer::read(uint8_t* buf, int size) { if (pos_ < len_) { auto available = std::min(int(len_ - pos_), size); memcpy(buf, buffer_ + pos_, available); pos_ += available; return available; } return 0; } int64_t MemoryBuffer::seek(int64_t offset, int whence) { if (whence & AVSEEK_SIZE) { return len_; } // remove force flag whence &= ~AVSEEK_FORCE; switch (whence) { case SEEK_SET: if (offset >= 0 && offset <= len_) { pos_ = offset; } break; case SEEK_END: if (len_ + offset >= 0 && len_ + offset <= len_) { pos_ = len_ + offset; } break; case SEEK_CUR: if (pos_ + offset > 0 && pos_ + offset <= len_) { pos_ += offset; } break; default: LOG(ERROR) << "Unknown whence flag gets provided: " << whence; } return pos_; } /* static */ DecoderInCallback MemoryBuffer::getCallback( const uint8_t* buffer, size_t size) { MemoryBuffer object(buffer, size); return [object](uint8_t* out, int size, int whence, uint64_t timeoutMs) mutable -> int { if (out) { // see defs.h file // read mode return object.read(out, size); } // seek mode if (!timeoutMs) { // seek capability, yes - supported return 0; } return object.seek(size, whence); }; } } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/memory_buffer.h000066400000000000000000000011171466211133600234430ustar00rootroot00000000000000#pragma once #include "defs.h" namespace ffmpeg { /** * Class uses external memory buffer and implements a seekable interface. */ class MemoryBuffer { public: explicit MemoryBuffer(const uint8_t* buffer, size_t size); int64_t seek(int64_t offset, int whence); int read(uint8_t* buf, int size); // static constructor for decoder callback. static DecoderInCallback getCallback(const uint8_t* buffer, size_t size); private: const uint8_t* buffer_; // set at construction time long pos_{0}; // current position long len_{0}; // bytes in buffer }; } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/seekable_buffer.cpp000066400000000000000000000066471466211133600242560ustar00rootroot00000000000000#include "seekable_buffer.h" #include #include #include "memory_buffer.h" namespace ffmpeg { int SeekableBuffer::init( DecoderInCallback&& in, uint64_t timeoutMs, size_t maxSeekableBytes, ImageType* type) { shutdown(); isSeekable_ = in(nullptr, 0, 0, 0) == 0; if (isSeekable_) { // seekable if (type) { if (!readBytes(in, 8, timeoutMs)) { return -1; } setImageType(type); end_ = 0; eof_ = false; std::vector().swap(buffer_); // reset callback if (in(nullptr, 0, SEEK_SET, timeoutMs)) { return -1; } } inCallback_ = std::forward(in); return 1; } if (!readBytes(in, maxSeekableBytes + (type ? 8 : 0), timeoutMs)) { return -1; } if (type) { setImageType(type); } if (eof_) { end_ = 0; eof_ = false; // reuse MemoryBuffer functionality inCallback_ = MemoryBuffer::getCallback(buffer_.data(), buffer_.size()); isSeekable_ = true; return 1; } inCallback_ = std::forward(in); return 0; } bool SeekableBuffer::readBytes( DecoderInCallback& in, size_t maxBytes, uint64_t timeoutMs) { // Resize to th minimum 4K page or less buffer_.resize(std::min(maxBytes, size_t(4 * 1024UL))); end_ = 0; eof_ = false; auto end = std::chrono::steady_clock::now() + std::chrono::milliseconds(timeoutMs); auto watcher = [end]() -> bool { return std::chrono::steady_clock::now() <= end; }; bool hasTime = true; while (!eof_ && end_ < maxBytes && (hasTime = watcher())) { // lets read all bytes into available buffer auto res = in(buffer_.data() + end_, buffer_.size() - end_, 0, timeoutMs); if (res > 0) { end_ += res; if (end_ == buffer_.size()) { buffer_.resize(std::min(size_t(end_ * 4UL), maxBytes)); } } else if (res == 0) { eof_ = true; } else { // error return false; } } buffer_.resize(end_); return hasTime; } void SeekableBuffer::setImageType(ImageType* type) { if (buffer_.size() > 2 && buffer_[0] == 0xFF && buffer_[1] == 0xD8 && buffer_[2] == 0xFF) { *type = ImageType::JPEG; } else if ( buffer_.size() > 3 && buffer_[1] == 'P' && buffer_[2] == 'N' && buffer_[3] == 'G') { *type = ImageType::PNG; } else if ( buffer_.size() > 1 && ((buffer_[0] == 0x49 && buffer_[1] == 0x49) || (buffer_[0] == 0x4D && buffer_[1] == 0x4D))) { *type = ImageType::TIFF; } else { *type = ImageType::UNKNOWN; } } int SeekableBuffer::read(uint8_t* buf, int size, uint64_t timeoutMs) { if (isSeekable_) { return inCallback_(buf, size, 0, timeoutMs); } if (pos_ < end_) { // read cached bytes for non-seekable callback auto available = std::min(int(end_ - pos_), size); memcpy(buf, buffer_.data() + pos_, available); pos_ += available; return available; } else if (!eof_) { // normal sequential read (see defs.h file), i.e. @buf != null auto res = inCallback_(buf, size, 0, timeoutMs); // read through eof_ = res == 0; return res; } else { return 0; } } int64_t SeekableBuffer::seek(int64_t offset, int whence, uint64_t timeoutMs) { return inCallback_(nullptr, offset, whence, timeoutMs); } void SeekableBuffer::shutdown() { pos_ = end_ = 0; eof_ = false; std::vector().swap(buffer_); inCallback_ = nullptr; } } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/seekable_buffer.h000066400000000000000000000023071466211133600237100ustar00rootroot00000000000000#pragma once #include "defs.h" namespace ffmpeg { /** * Class uses internal buffer to store initial size bytes as a seekable cache * from Media provider and let ffmpeg to seek and read bytes from cache * and beyond - reading bytes directly from Media provider */ enum class ImageType { UNKNOWN = 0, JPEG = 1, PNG = 2, TIFF = 3, }; class SeekableBuffer { public: // @type is optional, not nullptr only is image detection required // \returns 1 is buffer seekable, 0 - if not seekable, < 0 on error int init( DecoderInCallback&& in, uint64_t timeoutMs, size_t maxSeekableBytes, ImageType* type); int read(uint8_t* buf, int size, uint64_t timeoutMs); int64_t seek(int64_t offset, int whence, uint64_t timeoutMs); void shutdown(); private: bool readBytes(DecoderInCallback& in, size_t maxBytes, uint64_t timeoutMs); void setImageType(ImageType* type); private: DecoderInCallback inCallback_; std::vector buffer_; // resized at init time long pos_{0}; // current position (SEEK_CUR iff pos_ < end_) long end_{0}; // current buffer size bool eof_{0}; // indicates the EOF bool isSeekable_{false}; // is callback seekable }; } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/stream.cpp000066400000000000000000000200161466211133600224270ustar00rootroot00000000000000#include "stream.h" #include #include #include #include "util.h" namespace ffmpeg { const AVRational timeBaseQ = AVRational{1, AV_TIME_BASE}; Stream::Stream( AVFormatContext* inputCtx, MediaFormat format, bool convertPtsToWallTime, int64_t loggingUuid) : inputCtx_(inputCtx), format_(format), convertPtsToWallTime_(convertPtsToWallTime), loggingUuid_(loggingUuid) {} Stream::~Stream() { if (frame_) { av_free(frame_); } if (codecCtx_) { avcodec_free_context(&codecCtx_); } } // look up the proper CODEC querying the function AVCodec* Stream::findCodec(AVCodecParameters* params) { return (AVCodec*)avcodec_find_decoder(params->codec_id); } // Allocate memory for the AVCodecContext, which will hold the context for // decode/encode process. Then fill this codec context with CODEC parameters // defined in stream parameters. Open the codec, and allocate the global frame // defined in the header file int Stream::openCodec(std::vector* metadata, int num_threads) { AVStream* steam = inputCtx_->streams[format_.stream]; AVCodec* codec = findCodec(steam->codecpar); if (!codec) { LOG(ERROR) << "LoggingUuid #" << loggingUuid_ << ", avcodec_find_decoder failed for codec_id: " << int(steam->codecpar->codec_id); return AVERROR(EINVAL); } if (!(codecCtx_ = avcodec_alloc_context3(codec))) { LOG(ERROR) << "LoggingUuid #" << loggingUuid_ << ", avcodec_alloc_context3 failed"; return AVERROR(ENOMEM); } // multithreading heuristics // if user defined, if (num_threads > max_threads) { num_threads = max_threads; } if (num_threads > 0) { // if user defined, respect that // note that default thread_type will be used codecCtx_->thread_count = num_threads; } else { // otherwise set sensible defaults codecCtx_->thread_count = 8; codecCtx_->thread_type = FF_THREAD_SLICE; } int ret; // Copy codec parameters from input stream to output codec context if ((ret = avcodec_parameters_to_context(codecCtx_, steam->codecpar)) < 0) { LOG(ERROR) << "LoggingUuid #" << loggingUuid_ << ", avcodec_parameters_to_context failed"; return ret; } // after avcodec_open2, value of codecCtx_->time_base is NOT meaningful if ((ret = avcodec_open2(codecCtx_, codec, nullptr)) < 0) { LOG(ERROR) << "LoggingUuid #" << loggingUuid_ << ", avcodec_open2 failed: " << Util::generateErrorDesc(ret); avcodec_free_context(&codecCtx_); codecCtx_ = nullptr; return ret; } frame_ = av_frame_alloc(); switch (format_.type) { case TYPE_VIDEO: fps_ = av_q2d(av_guess_frame_rate(inputCtx_, steam, nullptr)); break; case TYPE_AUDIO: fps_ = codecCtx_->sample_rate; break; default: fps_ = 30.0; } if ((ret = initFormat())) { LOG(ERROR) << "initFormat failed, type: " << format_.type; } if (metadata) { DecoderMetadata header; header.format = format_; header.fps = fps_; header.num = steam->time_base.num; header.den = steam->time_base.den; header.duration = av_rescale_q(steam->duration, steam->time_base, timeBaseQ); metadata->push_back(header); } return ret; } // send the raw data packet (compressed frame) to the decoder, through the codec // context and receive the raw data frame (uncompressed frame) from the // decoder, through the same codec context int Stream::analyzePacket(const AVPacket* packet, bool* gotFrame) { int consumed = 0; int result = avcodec_send_packet(codecCtx_, packet); if (result == AVERROR(EAGAIN)) { *gotFrame = false; // no bytes get consumed, fetch frame } else if (result == AVERROR_EOF) { *gotFrame = false; // more than one flush packet if (packet) { // got packet after flush, this is an error return result; } } else if (result < 0) { LOG(ERROR) << "avcodec_send_packet failed, err: " << Util::generateErrorDesc(result); return result; // error } else { consumed = packet ? packet->size : 0; // all bytes get consumed } result = avcodec_receive_frame(codecCtx_, frame_); if (result >= 0) { *gotFrame = true; // frame is available } else if (result == AVERROR(EAGAIN)) { *gotFrame = false; // no frames at this time, needs more packets if (!consumed) { // precaution, if no packages got consumed and no frames are available return result; } } else if (result == AVERROR_EOF) { *gotFrame = false; // the last frame has been flushed // precaution, if no more frames are available assume we consume all bytes consumed = 0; } else { // error LOG(ERROR) << "avcodec_receive_frame failed, err: " << Util::generateErrorDesc(result); return result; } return consumed; } // General decoding function: // given the packet, analyse the metadata, and write the // metadata and the buffer to the DecoderOutputImage. int Stream::decodePacket( const AVPacket* packet, DecoderOutputMessage* out, bool headerOnly, bool* hasMsg) { int consumed; bool gotFrame = false; *hasMsg = false; if ((consumed = analyzePacket(packet, &gotFrame)) >= 0 && (packet == nullptr || gotFrame)) { int result; if ((result = getMessage(out, !gotFrame, headerOnly)) < 0) { return result; // report error } *hasMsg = result > 0; } return consumed; } int Stream::flush(DecoderOutputMessage* out, bool headerOnly) { bool hasMsg = false; int result = decodePacket(nullptr, out, headerOnly, &hasMsg); if (result < 0) { avcodec_flush_buffers(codecCtx_); return result; } if (!hasMsg) { avcodec_flush_buffers(codecCtx_); return 0; } return 1; } // Sets the header and payload via stream::setHeader and copyFrameBytes // functions that are defined in type stream subclass (VideoStream, AudioStream, // ...) int Stream::getMessage(DecoderOutputMessage* out, bool flush, bool headerOnly) { if (flush) { // only flush of audio frames makes sense if (format_.type == TYPE_AUDIO) { int processed = 0; size_t total = 0; // grab all audio bytes by chunks do { if ((processed = copyFrameBytes(out->payload.get(), flush)) < 0) { return processed; } total += processed; } while (processed); if (total) { // set header if message bytes are available setHeader(&out->header, flush); return 1; } } return 0; } else { if (format_.type == TYPE_AUDIO) { int processed = 0; if ((processed = copyFrameBytes(out->payload.get(), flush)) < 0) { return processed; } if (processed) { // set header if message bytes are available setHeader(&out->header, flush); return 1; } return 0; } else { // set header setHeader(&out->header, flush); if (headerOnly) { // Only header is requisted return 1; } return copyFrameBytes(out->payload.get(), flush); } } } void Stream::setHeader(DecoderHeader* header, bool flush) { header->seqno = numGenerator_++; setFramePts(header, flush); if (convertPtsToWallTime_) { keeper_.adjust(header->pts); } header->format = format_; header->keyFrame = 0; header->fps = std::numeric_limits::quiet_NaN(); } void Stream::setFramePts(DecoderHeader* header, bool flush) { if (flush) { header->pts = nextPts_; // already in us } else { header->pts = frame_->best_effort_timestamp; if (header->pts == AV_NOPTS_VALUE) { header->pts = nextPts_; } else { header->pts = av_rescale_q( header->pts, inputCtx_->streams[format_.stream]->time_base, timeBaseQ); } switch (format_.type) { case TYPE_AUDIO: nextPts_ = header->pts + frame_->nb_samples * AV_TIME_BASE / fps_; break; case TYPE_VIDEO: nextPts_ = header->pts + AV_TIME_BASE / fps_; break; default: nextPts_ = header->pts; } } } } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/stream.h000066400000000000000000000046241466211133600221030ustar00rootroot00000000000000#pragma once #include #include "defs.h" #include "time_keeper.h" namespace ffmpeg { /** * Class uses FFMPEG library to decode one media stream (audio or video). */ class Stream { public: Stream( AVFormatContext* inputCtx, MediaFormat format, bool convertPtsToWallTime, int64_t loggingUuid); virtual ~Stream(); // returns 0 - on success or negative error // num_threads sets up the codec context for multithreading if needed // default is set to single thread in order to not break BC int openCodec(std::vector* metadata, int num_threads = 1); // returns 1 - if packet got consumed, 0 - if it's not, and < 0 on error int decodePacket( const AVPacket* packet, DecoderOutputMessage* out, bool headerOnly, bool* hasMsg); // returns stream index int getIndex() const { return format_.stream; } // returns 1 - if message got a payload, 0 - if it's not, and < 0 on error int flush(DecoderOutputMessage* out, bool headerOnly); // return media format MediaFormat getMediaFormat() const { return format_; } protected: virtual int initFormat() = 0; // returns number processed bytes from packet, or negative error virtual int analyzePacket(const AVPacket* packet, bool* gotFrame); // returns number processed bytes from packet, or negative error virtual int copyFrameBytes(ByteStorage* out, bool flush) = 0; // sets output format virtual void setHeader(DecoderHeader* header, bool flush); // set frame pts virtual void setFramePts(DecoderHeader* header, bool flush); // finds codec virtual AVCodec* findCodec(AVCodecParameters* params); private: // returns 1 - if message got a payload, 0 - if it's not, and < 0 on error int getMessage(DecoderOutputMessage* out, bool flush, bool headerOnly); protected: AVFormatContext* const inputCtx_; MediaFormat format_; const bool convertPtsToWallTime_; int64_t loggingUuid_; AVCodecContext* codecCtx_{nullptr}; AVFrame* frame_{nullptr}; std::atomic numGenerator_{0}; TimeKeeper keeper_; // estimated next frame pts for flushing the last frame int64_t nextPts_{0}; double fps_{30.}; // this is a dumb conservative limit; ideally we'd use // int max_threads = at::get_num_threads(); but this would cause // fb sync to fail as it would add dependency to ATen to the decoder API const int max_threads = 12; }; } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/subtitle_sampler.cpp000066400000000000000000000015361466211133600245200ustar00rootroot00000000000000#include "subtitle_sampler.h" #include #include "util.h" namespace ffmpeg { SubtitleSampler::~SubtitleSampler() { cleanUp(); } void SubtitleSampler::shutdown() { cleanUp(); } bool SubtitleSampler::init(const SamplerParameters& params) { cleanUp(); // set formats params_ = params; return true; } int SubtitleSampler::sample(AVSubtitle* sub, ByteStorage* out) { if (!sub || !out) { return 0; // flush } out->ensure(Util::size(*sub)); return Util::serialize(*sub, out); } int SubtitleSampler::sample(const ByteStorage* in, ByteStorage* out) { if (in && out) { // Get a writable copy if (size_t len = in->length()) { out->ensure(len); memcpy(out->writableTail(), in->data(), len); } return out->length(); } return 0; } void SubtitleSampler::cleanUp() {} } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/subtitle_sampler.h000066400000000000000000000013471466211133600241650ustar00rootroot00000000000000#pragma once #include "defs.h" namespace ffmpeg { /** * Class transcode audio frames from one format into another */ class SubtitleSampler : public MediaSampler { public: SubtitleSampler() = default; ~SubtitleSampler() override; bool init(const SamplerParameters& params) override; int sample(const ByteStorage* in, ByteStorage* out) override; void shutdown() override; // returns number processed/scaling bytes int sample(AVSubtitle* sub, ByteStorage* out); // helper serialization/deserialization methods static void serialize(const AVSubtitle& sub, ByteStorage* out); static bool deserialize(const ByteStorage& buf, AVSubtitle* sub); private: // close resources void cleanUp(); }; } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/subtitle_stream.cpp000066400000000000000000000045551466211133600243540ustar00rootroot00000000000000#include "subtitle_stream.h" #include #include #include "util.h" namespace ffmpeg { const AVRational timeBaseQ = AVRational{1, AV_TIME_BASE}; SubtitleStream::SubtitleStream( AVFormatContext* inputCtx, int index, bool convertPtsToWallTime, const SubtitleFormat& format) : Stream( inputCtx, MediaFormat::makeMediaFormat(format, index), convertPtsToWallTime, 0) { memset(&sub_, 0, sizeof(sub_)); } void SubtitleStream::releaseSubtitle() { if (sub_.release) { avsubtitle_free(&sub_); memset(&sub_, 0, sizeof(sub_)); } } SubtitleStream::~SubtitleStream() { releaseSubtitle(); sampler_.shutdown(); } int SubtitleStream::initFormat() { if (!codecCtx_->subtitle_header) { LOG(ERROR) << "No subtitle header found"; } else { VLOG(1) << "Subtitle header found!"; } return 0; } int SubtitleStream::analyzePacket(const AVPacket* packet, bool* gotFrame) { // clean-up releaseSubtitle(); // FIXME: should this even be created? AVPacket* avPacket; avPacket = av_packet_alloc(); if (avPacket == nullptr) { LOG(ERROR) << "decoder as not able to allocate the subtitle-specific packet."; // alternative to ENOMEM return AVERROR_BUFFER_TOO_SMALL; } avPacket->data = nullptr; avPacket->size = 0; // check flush packet auto pkt = packet ? packet : avPacket; int gotFramePtr = 0; // is these a better way than cast from const? int result = avcodec_decode_subtitle2(codecCtx_, &sub_, &gotFramePtr, (AVPacket*)pkt); if (result < 0) { LOG(ERROR) << "avcodec_decode_subtitle2 failed, err: " << Util::generateErrorDesc(result); // free the packet we've created av_packet_free(&avPacket); return result; } else if (result == 0) { result = pkt->size; // discard the rest of the package } sub_.release = gotFramePtr; *gotFrame = gotFramePtr > 0; // set proper pts in us if (gotFramePtr) { sub_.pts = av_rescale_q( pkt->pts, inputCtx_->streams[format_.stream]->time_base, timeBaseQ); } av_packet_free(&avPacket); return result; } int SubtitleStream::copyFrameBytes(ByteStorage* out, bool flush) { return sampler_.sample(flush ? nullptr : &sub_, out); } void SubtitleStream::setFramePts(DecoderHeader* header, bool) { header->pts = sub_.pts; // already in us } } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/subtitle_stream.h000066400000000000000000000014361466211133600240140ustar00rootroot00000000000000#pragma once #include "stream.h" #include "subtitle_sampler.h" namespace ffmpeg { /** * Class uses FFMPEG library to decode one subtitle stream. */ struct AVSubtitleKeeper : AVSubtitle { int64_t release{0}; }; class SubtitleStream : public Stream { public: SubtitleStream( AVFormatContext* inputCtx, int index, bool convertPtsToWallTime, const SubtitleFormat& format); ~SubtitleStream() override; protected: void setFramePts(DecoderHeader* header, bool flush) override; private: int initFormat() override; int analyzePacket(const AVPacket* packet, bool* gotFrame) override; int copyFrameBytes(ByteStorage* out, bool flush) override; void releaseSubtitle(); private: SubtitleSampler sampler_; AVSubtitleKeeper sub_; }; } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/sync_decoder.cpp000066400000000000000000000040241466211133600235760ustar00rootroot00000000000000#include "sync_decoder.h" #include namespace ffmpeg { SyncDecoder::AVByteStorage::AVByteStorage(size_t n) { ensure(n); } SyncDecoder::AVByteStorage::~AVByteStorage() { av_free(buffer_); } void SyncDecoder::AVByteStorage::ensure(size_t n) { if (tail() < n) { capacity_ = offset_ + length_ + n; buffer_ = static_cast(av_realloc(buffer_, capacity_)); } } uint8_t* SyncDecoder::AVByteStorage::writableTail() { TORCH_CHECK_LE(offset_ + length_, capacity_); return buffer_ + offset_ + length_; } void SyncDecoder::AVByteStorage::append(size_t n) { TORCH_CHECK_LE(n, tail()); length_ += n; } void SyncDecoder::AVByteStorage::trim(size_t n) { TORCH_CHECK_LE(n, length_); offset_ += n; length_ -= n; } const uint8_t* SyncDecoder::AVByteStorage::data() const { return buffer_ + offset_; } size_t SyncDecoder::AVByteStorage::length() const { return length_; } size_t SyncDecoder::AVByteStorage::tail() const { TORCH_CHECK_LE(offset_ + length_, capacity_); return capacity_ - offset_ - length_; } void SyncDecoder::AVByteStorage::clear() { offset_ = 0; length_ = 0; } std::unique_ptr SyncDecoder::createByteStorage(size_t n) { return std::make_unique(n); } void SyncDecoder::onInit() { eof_ = false; queue_.clear(); } int SyncDecoder::decode(DecoderOutputMessage* out, uint64_t timeoutMs) { if (eof_ && queue_.empty()) { return ENODATA; } if (queue_.empty()) { int result = getFrame(timeoutMs); // assign EOF eof_ = result == ENODATA; // check unrecoverable error, any error but ENODATA if (result && result != ENODATA) { return result; } // still empty if (queue_.empty()) { if (eof_) { return ENODATA; } else { LOG(INFO) << "Queue is empty"; return ETIMEDOUT; } } } *out = std::move(queue_.front()); queue_.pop_front(); return 0; } void SyncDecoder::push(DecoderOutputMessage&& buffer) { queue_.push_back(std::move(buffer)); } } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/sync_decoder.h000066400000000000000000000023001466211133600232360ustar00rootroot00000000000000#pragma once #include #include "decoder.h" namespace ffmpeg { /** * Class uses FFMPEG library to decode media streams. * Media bytes can be explicitly provided through read-callback * or fetched internally by FFMPEG library */ class SyncDecoder : public Decoder { public: // Allocation of memory must be done with a proper alignment. class AVByteStorage : public ByteStorage { public: explicit AVByteStorage(size_t n); ~AVByteStorage() override; void ensure(size_t n) override; uint8_t* writableTail() override; void append(size_t n) override; void trim(size_t n) override; const uint8_t* data() const override; size_t length() const override; size_t tail() const override; void clear() override; private: size_t offset_{0}; size_t length_{0}; size_t capacity_{0}; uint8_t* buffer_{nullptr}; }; public: int decode(DecoderOutputMessage* out, uint64_t timeoutMs) override; private: void push(DecoderOutputMessage&& buffer) override; void onInit() override; std::unique_ptr createByteStorage(size_t n) override; private: std::list queue_; bool eof_{false}; }; } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/sync_decoder_test.cpp000066400000000000000000000306361466211133600246450ustar00rootroot00000000000000#include #include #include #include "memory_buffer.h" #include "sync_decoder.h" #include "util.h" using namespace ffmpeg; namespace { struct VideoFileStats { std::string name; size_t durationPts{0}; int num{0}; int den{0}; int fps{0}; }; void gotAllTestFiles( const std::string& folder, std::vector* stats) { DIR* d = opendir(folder.c_str()); CHECK(d); struct dirent* dir; while ((dir = readdir(d))) { if (dir->d_type != DT_DIR && 0 != strcmp(dir->d_name, "README")) { VideoFileStats item; item.name = folder + '/' + dir->d_name; LOG(INFO) << "Found video file: " << item.name; stats->push_back(std::move(item)); } } closedir(d); } void gotFilesStats(std::vector& stats) { DecoderParameters params; params.timeoutMs = 10000; params.startOffset = 1000000; params.seekAccuracy = 100000; params.formats = {MediaFormat(0)}; params.headerOnly = true; params.preventStaleness = false; size_t avgProvUs = 0; const size_t rounds = 100; for (auto& item : stats) { LOG(INFO) << "Decoding video file in memory: " << item.name; FILE* f = fopen(item.name.c_str(), "rb"); CHECK(f != nullptr); fseek(f, 0, SEEK_END); std::vector buffer(ftell(f)); rewind(f); size_t s = fread(buffer.data(), 1, buffer.size(), f); TORCH_CHECK_EQ(buffer.size(), s); fclose(f); for (size_t i = 0; i < rounds; ++i) { SyncDecoder decoder; std::vector metadata; const auto now = std::chrono::steady_clock::now(); CHECK(decoder.init( params, MemoryBuffer::getCallback(buffer.data(), buffer.size()), &metadata)); const auto then = std::chrono::steady_clock::now(); decoder.shutdown(); avgProvUs += std::chrono::duration_cast(then - now) .count(); TORCH_CHECK_EQ(metadata.size(), 1); item.num = metadata[0].num; item.den = metadata[0].den; item.fps = metadata[0].fps; item.durationPts = av_rescale_q(metadata[0].duration, AV_TIME_BASE_Q, {1, item.fps}); } } LOG(INFO) << "Probing (us) " << avgProvUs / stats.size() / rounds; } size_t measurePerformanceUs( const std::vector& stats, size_t rounds, size_t num, size_t stride) { size_t avgClipDecodingUs = 0; std::srand(time(nullptr)); for (const auto& item : stats) { FILE* f = fopen(item.name.c_str(), "rb"); CHECK(f != nullptr); fseek(f, 0, SEEK_END); std::vector buffer(ftell(f)); rewind(f); size_t s = fread(buffer.data(), 1, buffer.size(), f); TORCH_CHECK_EQ(buffer.size(), s); fclose(f); for (size_t i = 0; i < rounds; ++i) { // randomy select clip size_t rOffset = std::rand(); size_t fOffset = rOffset % item.durationPts; size_t clipFrames = num + (num - 1) * stride; if (fOffset + clipFrames > item.durationPts) { fOffset = item.durationPts - clipFrames; } DecoderParameters params; params.timeoutMs = 10000; params.startOffset = 1000000; params.seekAccuracy = 100000; params.preventStaleness = false; for (size_t n = 0; n < num; ++n) { std::list msgs; params.startOffset = av_rescale_q(fOffset, {1, item.fps}, AV_TIME_BASE_Q); params.endOffset = params.startOffset + 100; auto now = std::chrono::steady_clock::now(); SyncDecoder decoder; CHECK(decoder.init( params, MemoryBuffer::getCallback(buffer.data(), buffer.size()), nullptr)); DecoderOutputMessage out; while (0 == decoder.decode(&out, params.timeoutMs)) { msgs.push_back(std::move(out)); } decoder.shutdown(); const auto then = std::chrono::steady_clock::now(); fOffset += 1 + stride; avgClipDecodingUs += std::chrono::duration_cast(then - now) .count(); } } } return avgClipDecodingUs / rounds / num / stats.size(); } void runDecoder(SyncDecoder& decoder) { DecoderOutputMessage out; size_t audioFrames = 0, videoFrames = 0, totalBytes = 0; while (0 == decoder.decode(&out, 10000)) { if (out.header.format.type == TYPE_AUDIO) { ++audioFrames; } else if (out.header.format.type == TYPE_VIDEO) { ++videoFrames; } else if (out.header.format.type == TYPE_SUBTITLE && out.payload) { // deserialize LOG(INFO) << "Deserializing subtitle"; AVSubtitle sub; memset(&sub, 0, sizeof(sub)); EXPECT_TRUE(Util::deserialize(*out.payload, &sub)); LOG(INFO) << "Found subtitles" << ", num rects: " << sub.num_rects; for (int i = 0; i < sub.num_rects; ++i) { std::string text = "picture"; if (sub.rects[i]->type == SUBTITLE_TEXT) { text = sub.rects[i]->text; } else if (sub.rects[i]->type == SUBTITLE_ASS) { text = sub.rects[i]->ass; } LOG(INFO) << "Rect num: " << i << ", type:" << sub.rects[i]->type << ", text: " << text; } avsubtitle_free(&sub); } if (out.payload) { totalBytes += out.payload->length(); } } LOG(INFO) << "Decoded audio frames: " << audioFrames << ", video frames: " << videoFrames << ", total bytes: " << totalBytes; } } // namespace TEST(SyncDecoder, TestSyncDecoderPerformance) { // Measure the average time of decoding per clip // 1. list of the videos in testing directory // 2. for each video got number of frames with timestamps // 3. randomly select frame offset // 4. adjust offset for number frames and strides, // if it's out out upper boundary // 5. repeat multiple times, measuring and accumulating decoding time // per clip. /* 1) 4 x 2 2) 8 x 8 3) 16 x 8 4) 32 x 4 */ const std::string kFolder = "pytorch/vision/test/assets/videos"; std::vector stats; gotAllTestFiles(kFolder, &stats); gotFilesStats(stats); const size_t kRounds = 10; auto new4x2 = measurePerformanceUs(stats, kRounds, 4, 2); auto new8x8 = measurePerformanceUs(stats, kRounds, 8, 8); auto new16x8 = measurePerformanceUs(stats, kRounds, 16, 8); auto new32x4 = measurePerformanceUs(stats, kRounds, 32, 4); LOG(INFO) << "Clip decoding (us)" << ", new(4x2): " << new4x2 << ", new(8x8): " << new8x8 << ", new(16x8): " << new16x8 << ", new(32x4): " << new32x4; } TEST(SyncDecoder, Test) { SyncDecoder decoder; DecoderParameters params; params.timeoutMs = 10000; params.startOffset = 1000000; params.seekAccuracy = 100000; params.formats = {MediaFormat(), MediaFormat(0), MediaFormat('0')}; params.uri = "pytorch/vision/test/assets/videos/R6llTwEh07w.mp4"; CHECK(decoder.init(params, nullptr, nullptr)); runDecoder(decoder); decoder.shutdown(); } TEST(SyncDecoder, TestSubtitles) { SyncDecoder decoder; DecoderParameters params; params.timeoutMs = 10000; params.formats = {MediaFormat(), MediaFormat(0), MediaFormat('0')}; params.uri = "vue/synergy/data/robotsub.mp4"; CHECK(decoder.init(params, nullptr, nullptr)); runDecoder(decoder); decoder.shutdown(); } TEST(SyncDecoder, TestHeadersOnly) { SyncDecoder decoder; DecoderParameters params; params.timeoutMs = 10000; params.startOffset = 1000000; params.seekAccuracy = 100000; params.headerOnly = true; params.formats = {MediaFormat(), MediaFormat(0), MediaFormat('0')}; params.uri = "pytorch/vision/test/assets/videos/R6llTwEh07w.mp4"; CHECK(decoder.init(params, nullptr, nullptr)); runDecoder(decoder); decoder.shutdown(); params.uri = "pytorch/vision/test/assets/videos/SOX5yA1l24A.mp4"; CHECK(decoder.init(params, nullptr, nullptr)); runDecoder(decoder); decoder.shutdown(); params.uri = "pytorch/vision/test/assets/videos/WUzgd7C1pWA.mp4"; CHECK(decoder.init(params, nullptr, nullptr)); runDecoder(decoder); decoder.shutdown(); } TEST(SyncDecoder, TestHeadersOnlyDownSampling) { SyncDecoder decoder; DecoderParameters params; params.timeoutMs = 10000; params.startOffset = 1000000; params.seekAccuracy = 100000; params.headerOnly = true; MediaFormat format; format.type = TYPE_AUDIO; format.format.audio.samples = 8000; params.formats.insert(format); format.type = TYPE_VIDEO; format.format.video.width = 224; format.format.video.height = 224; params.formats.insert(format); params.uri = "pytorch/vision/test/assets/videos/R6llTwEh07w.mp4"; CHECK(decoder.init(params, nullptr, nullptr)); runDecoder(decoder); decoder.shutdown(); params.uri = "pytorch/vision/test/assets/videos/SOX5yA1l24A.mp4"; CHECK(decoder.init(params, nullptr, nullptr)); runDecoder(decoder); decoder.shutdown(); params.uri = "pytorch/vision/test/assets/videos/WUzgd7C1pWA.mp4"; CHECK(decoder.init(params, nullptr, nullptr)); runDecoder(decoder); decoder.shutdown(); } TEST(SyncDecoder, TestInitOnlyNoShutdown) { SyncDecoder decoder; DecoderParameters params; params.timeoutMs = 10000; params.startOffset = 1000000; params.seekAccuracy = 100000; params.headerOnly = false; params.formats = {MediaFormat(), MediaFormat(0), MediaFormat('0')}; params.uri = "pytorch/vision/test/assets/videos/R6llTwEh07w.mp4"; std::vector metadata; CHECK(decoder.init(params, nullptr, &metadata)); } TEST(SyncDecoder, TestMemoryBuffer) { SyncDecoder decoder; DecoderParameters params; params.timeoutMs = 10000; params.startOffset = 1000000; params.endOffset = 9000000; params.seekAccuracy = 10000; params.formats = {MediaFormat(), MediaFormat(0), MediaFormat('0')}; FILE* f = fopen( "pytorch/vision/test/assets/videos/RATRACE_wave_f_nm_np1_fr_goo_37.avi", "rb"); CHECK(f != nullptr); fseek(f, 0, SEEK_END); std::vector buffer(ftell(f)); rewind(f); size_t s = fread(buffer.data(), 1, buffer.size(), f); TORCH_CHECK_EQ(buffer.size(), s); fclose(f); CHECK(decoder.init( params, MemoryBuffer::getCallback(buffer.data(), buffer.size()), nullptr)); LOG(INFO) << "Decoding from memory bytes: " << buffer.size(); runDecoder(decoder); decoder.shutdown(); } TEST(SyncDecoder, TestMemoryBufferNoSeekableWithFullRead) { SyncDecoder decoder; DecoderParameters params; params.timeoutMs = 10000; params.startOffset = 1000000; params.endOffset = 9000000; params.seekAccuracy = 10000; params.formats = {MediaFormat(), MediaFormat(0), MediaFormat('0')}; FILE* f = fopen("pytorch/vision/test/assets/videos/R6llTwEh07w.mp4", "rb"); CHECK(f != nullptr); fseek(f, 0, SEEK_END); std::vector buffer(ftell(f)); rewind(f); size_t s = fread(buffer.data(), 1, buffer.size(), f); TORCH_CHECK_EQ(buffer.size(), s); fclose(f); params.maxSeekableBytes = buffer.size() + 1; MemoryBuffer object(buffer.data(), buffer.size()); CHECK(decoder.init( params, [object](uint8_t* out, int size, int whence, uint64_t timeoutMs) mutable -> int { if (out) { // see defs.h file // read mode return object.read(out, size); } // seek mode if (!timeoutMs) { // seek capability, yes - no return -1; } return object.seek(size, whence); }, nullptr)); runDecoder(decoder); decoder.shutdown(); } TEST(SyncDecoder, TestMemoryBufferNoSeekableWithPartialRead) { SyncDecoder decoder; DecoderParameters params; params.timeoutMs = 10000; params.startOffset = 1000000; params.endOffset = 9000000; params.seekAccuracy = 10000; params.formats = {MediaFormat(), MediaFormat(0), MediaFormat('0')}; FILE* f = fopen("pytorch/vision/test/assets/videos/R6llTwEh07w.mp4", "rb"); CHECK(f != nullptr); fseek(f, 0, SEEK_END); std::vector buffer(ftell(f)); rewind(f); size_t s = fread(buffer.data(), 1, buffer.size(), f); TORCH_CHECK_EQ(buffer.size(), s); fclose(f); params.maxSeekableBytes = buffer.size() / 2; MemoryBuffer object(buffer.data(), buffer.size()); CHECK(!decoder.init( params, [object](uint8_t* out, int size, int whence, uint64_t timeoutMs) mutable -> int { if (out) { // see defs.h file // read mode return object.read(out, size); } // seek mode if (!timeoutMs) { // seek capability, yes - no return -1; } return object.seek(size, whence); }, nullptr)); } vision-0.19.1/torchvision/csrc/io/decoder/time_keeper.cpp000066400000000000000000000015341466211133600234310ustar00rootroot00000000000000#include "time_keeper.h" #include "defs.h" namespace ffmpeg { namespace { const long kMaxTimeBaseDiference = 10; } long TimeKeeper::adjust(long& decoderTimestamp) { const long now = std::chrono::duration_cast( std::chrono::system_clock::now().time_since_epoch()) .count(); if (startTime_ == 0) { startTime_ = now; } if (streamTimestamp_ == 0) { streamTimestamp_ = decoderTimestamp; } const auto runOut = startTime_ + decoderTimestamp - streamTimestamp_; if (std::labs((now - runOut) / AV_TIME_BASE) > kMaxTimeBaseDiference) { streamTimestamp_ = startTime_ - now + decoderTimestamp; } const auto sleepAdvised = runOut - now; decoderTimestamp += startTime_ - streamTimestamp_; return sleepAdvised > 0 ? sleepAdvised : 0; } } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/time_keeper.h000066400000000000000000000007151466211133600230760ustar00rootroot00000000000000#pragma once #include #include namespace ffmpeg { /** * Class keeps the track of the decoded timestamps (us) for media streams. */ class TimeKeeper { public: TimeKeeper() = default; // adjust provided @timestamp to the corrected value // return advised sleep time before next frame processing in (us) long adjust(long& decoderTimestamp); private: long startTime_{0}; long streamTimestamp_{0}; }; } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/util.cpp000066400000000000000000000277311466211133600221240ustar00rootroot00000000000000#include "util.h" #include namespace ffmpeg { namespace Serializer { // fixed size types template inline size_t getSize(const T& x) { return sizeof(x); } template inline bool serializeItem( uint8_t* dest, size_t len, size_t& pos, const T& src) { VLOG(6) << "Generic serializeItem"; const auto required = sizeof(src); if (len < pos + required) { return false; } memcpy(dest + pos, &src, required); pos += required; return true; } template inline bool deserializeItem( const uint8_t* src, size_t len, size_t& pos, T& dest) { const auto required = sizeof(dest); if (len < pos + required) { return false; } memcpy(&dest, src + pos, required); pos += required; return true; } // AVSubtitleRect specialization inline size_t getSize(const AVSubtitleRect& x) { auto rectBytes = [](const AVSubtitleRect& y) -> size_t { size_t s = 0; switch (y.type) { case SUBTITLE_BITMAP: for (int i = 0; i < y.nb_colors; ++i) { s += sizeof(y.linesize[i]); s += y.linesize[i]; } break; case SUBTITLE_TEXT: s += sizeof(size_t); s += strlen(y.text); break; case SUBTITLE_ASS: s += sizeof(size_t); s += strlen(y.ass); break; default: break; } return s; }; return getSize(x.x) + getSize(x.y) + getSize(x.w) + getSize(x.h) + getSize(x.nb_colors) + getSize(x.type) + getSize(x.flags) + rectBytes(x); } // AVSubtitle specialization inline size_t getSize(const AVSubtitle& x) { auto rectBytes = [](const AVSubtitle& y) -> size_t { size_t s = getSize(y.num_rects); for (unsigned i = 0; i < y.num_rects; ++i) { s += getSize(*y.rects[i]); } return s; }; return getSize(x.format) + getSize(x.start_display_time) + getSize(x.end_display_time) + getSize(x.pts) + rectBytes(x); } inline bool serializeItem( uint8_t* dest, size_t len, size_t& pos, const AVSubtitleRect& src) { auto rectSerialize = [](uint8_t* d, size_t l, size_t& p, const AVSubtitleRect& x) -> size_t { switch (x.type) { case SUBTITLE_BITMAP: for (int i = 0; i < x.nb_colors; ++i) { if (!serializeItem(d, l, p, x.linesize[i])) { return false; } if (p + x.linesize[i] > l) { return false; } memcpy(d + p, x.data[i], x.linesize[i]); p += x.linesize[i]; } return true; case SUBTITLE_TEXT: { const size_t s = strlen(x.text); if (!serializeItem(d, l, p, s)) { return false; } if (p + s > l) { return false; } memcpy(d + p, x.text, s); p += s; return true; } case SUBTITLE_ASS: { const size_t s = strlen(x.ass); if (!serializeItem(d, l, p, s)) { return false; } if (p + s > l) { return false; } memcpy(d + p, x.ass, s); p += s; return true; } default: return true; } }; return serializeItem(dest, len, pos, src.x) && serializeItem(dest, len, pos, src.y) && serializeItem(dest, len, pos, src.w) && serializeItem(dest, len, pos, src.h) && serializeItem(dest, len, pos, src.nb_colors) && serializeItem(dest, len, pos, src.type) && serializeItem(dest, len, pos, src.flags) && rectSerialize(dest, len, pos, src); } inline bool serializeItem( uint8_t* dest, size_t len, size_t& pos, const AVSubtitle& src) { auto rectSerialize = [](uint8_t* d, size_t l, size_t& p, const AVSubtitle& x) -> bool { bool res = serializeItem(d, l, p, x.num_rects); for (unsigned i = 0; res && i < x.num_rects; ++i) { res = serializeItem(d, l, p, *(x.rects[i])); } return res; }; VLOG(6) << "AVSubtitle serializeItem"; return serializeItem(dest, len, pos, src.format) && serializeItem(dest, len, pos, src.start_display_time) && serializeItem(dest, len, pos, src.end_display_time) && serializeItem(dest, len, pos, src.pts) && rectSerialize(dest, len, pos, src); } inline bool deserializeItem( const uint8_t* src, size_t len, size_t& pos, AVSubtitleRect& dest) { auto rectDeserialize = [](const uint8_t* y, size_t l, size_t& p, AVSubtitleRect& x) -> bool { switch (x.type) { case SUBTITLE_BITMAP: for (int i = 0; i < x.nb_colors; ++i) { if (!deserializeItem(y, l, p, x.linesize[i])) { return false; } if (p + x.linesize[i] > l) { return false; } x.data[i] = (uint8_t*)av_malloc(x.linesize[i]); memcpy(x.data[i], y + p, x.linesize[i]); p += x.linesize[i]; } return true; case SUBTITLE_TEXT: { size_t s = 0; if (!deserializeItem(y, l, p, s)) { return false; } if (p + s > l) { return false; } x.text = (char*)av_malloc(s + 1); memcpy(x.text, y + p, s); x.text[s] = 0; p += s; return true; } case SUBTITLE_ASS: { size_t s = 0; if (!deserializeItem(y, l, p, s)) { return false; } if (p + s > l) { return false; } x.ass = (char*)av_malloc(s + 1); memcpy(x.ass, y + p, s); x.ass[s] = 0; p += s; return true; } default: return true; } }; return deserializeItem(src, len, pos, dest.x) && deserializeItem(src, len, pos, dest.y) && deserializeItem(src, len, pos, dest.w) && deserializeItem(src, len, pos, dest.h) && deserializeItem(src, len, pos, dest.nb_colors) && deserializeItem(src, len, pos, dest.type) && deserializeItem(src, len, pos, dest.flags) && rectDeserialize(src, len, pos, dest); } inline bool deserializeItem( const uint8_t* src, size_t len, size_t& pos, AVSubtitle& dest) { auto rectDeserialize = [](const uint8_t* y, size_t l, size_t& p, AVSubtitle& x) -> bool { bool res = deserializeItem(y, l, p, x.num_rects); if (res && x.num_rects) { x.rects = (AVSubtitleRect**)av_malloc(x.num_rects * sizeof(AVSubtitleRect*)); } for (unsigned i = 0; res && i < x.num_rects; ++i) { x.rects[i] = (AVSubtitleRect*)av_malloc(sizeof(AVSubtitleRect)); memset(x.rects[i], 0, sizeof(AVSubtitleRect)); res = deserializeItem(y, l, p, *x.rects[i]); } return res; }; return deserializeItem(src, len, pos, dest.format) && deserializeItem(src, len, pos, dest.start_display_time) && deserializeItem(src, len, pos, dest.end_display_time) && deserializeItem(src, len, pos, dest.pts) && rectDeserialize(src, len, pos, dest); } } // namespace Serializer namespace Util { std::string generateErrorDesc(int errorCode) { std::array buffer; if (av_strerror(errorCode, buffer.data(), buffer.size()) < 0) { return std::string("Unknown error code: ") + std::to_string(errorCode); } buffer.back() = 0; return std::string(buffer.data()); } size_t serialize(const AVSubtitle& sub, ByteStorage* out) { const auto len = size(sub); TORCH_CHECK_LE(len, out->tail()); size_t pos = 0; if (!Serializer::serializeItem(out->writableTail(), len, pos, sub)) { return 0; } out->append(len); return len; } bool deserialize(const ByteStorage& buf, AVSubtitle* sub) { size_t pos = 0; return Serializer::deserializeItem(buf.data(), buf.length(), pos, *sub); } size_t size(const AVSubtitle& sub) { return Serializer::getSize(sub); } bool validateVideoFormat(const VideoFormat& f) { // clang-format off /* Valid parameters values for decoder ____________________________________________________________________________________ | W | H | minDimension | maxDimension | cropImage | algorithm | |__________________________________________________________________________________| | 0 | 0 | 0 | 0 | N/A | original | |__________________________________________________________________________________| | >0 | 0 | N/A | N/A | N/A | scale keeping W | |__________________________________________________________________________________| | 0 | >0 | N/A | N/A | N/A | scale keeping H | |__________________________________________________________________________________| | >0 | >0 | N/A | N/A | 0 | stretch/scale | |__________________________________________________________________________________| | >0 | >0 | N/A | N/A | >0 | scale/crop | |__________________________________________________________________________________| | 0 | 0 | >0 | 0 | N/A |scale to min dimension | |__________________________________________________________________________________| | 0 | 0 | 0 | >0 | N/A |scale to max dimension | |__________________________________________________________________________________| | 0 | 0 | >0 | >0 | N/A |stretch to min/max dimension| |_____|_____|______________|______________|___________|____________________________| */ // clang-format on return (f.width == 0 && // #1, #6, #7 and #8 f.height == 0 && f.cropImage == 0) || (f.width != 0 && // #4 and #5 f.height != 0 && f.minDimension == 0 && f.maxDimension == 0) || (((f.width != 0 && // #2 f.height == 0) || (f.width == 0 && // #3 f.height != 0)) && f.minDimension == 0 && f.maxDimension == 0 && f.cropImage == 0); } void setFormatDimensions( size_t& destW, size_t& destH, size_t userW, size_t userH, size_t srcW, size_t srcH, size_t minDimension, size_t maxDimension, size_t cropImage) { // rounding rules // int -> double -> round up // if fraction is >= 0.5 or round down if fraction is < 0.5 // int result = double(value) + 0.5 // here we rounding double to int according to the above rule // #1, #6, #7 and #8 if (userW == 0 && userH == 0) { if (minDimension > 0 && maxDimension == 0) { // #6 if (srcW > srcH) { // landscape destH = minDimension; destW = round(double(srcW * minDimension) / srcH); } else { // portrait destW = minDimension; destH = round(double(srcH * minDimension) / srcW); } } else if (minDimension == 0 && maxDimension > 0) { // #7 if (srcW > srcH) { // landscape destW = maxDimension; destH = round(double(srcH * maxDimension) / srcW); } else { // portrait destH = maxDimension; destW = round(double(srcW * maxDimension) / srcH); } } else if (minDimension > 0 && maxDimension > 0) { // #8 if (srcW > srcH) { // landscape destW = maxDimension; destH = minDimension; } else { // portrait destW = minDimension; destH = maxDimension; } } else { // #1 destW = srcW; destH = srcH; } } else if (userW != 0 && userH == 0) { // #2 destW = userW; destH = round(double(srcH * userW) / srcW); } else if (userW == 0 && userH != 0) { // #3 destW = round(double(srcW * userH) / srcH); destH = userH; } else { // userW != 0 && userH != 0 if (cropImage == 0) { // #4 destW = userW; destH = userH; } else { // #5 double userSlope = double(userH) / userW; double srcSlope = double(srcH) / srcW; if (srcSlope < userSlope) { destW = round(double(srcW * userH) / srcH); destH = userH; } else { destW = userW; destH = round(double(srcH * userW) / srcW); } } } // prevent zeros destW = std::max(destW, size_t(1UL)); destH = std::max(destH, size_t(1UL)); } } // namespace Util } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/util.h000066400000000000000000000011521466211133600215560ustar00rootroot00000000000000#pragma once #include "defs.h" namespace ffmpeg { /** * FFMPEG library utility functions. */ namespace Util { std::string generateErrorDesc(int errorCode); size_t serialize(const AVSubtitle& sub, ByteStorage* out); bool deserialize(const ByteStorage& buf, AVSubtitle* sub); size_t size(const AVSubtitle& sub); void setFormatDimensions( size_t& destW, size_t& destH, size_t userW, size_t userH, size_t srcW, size_t srcH, size_t minDimension, size_t maxDimension, size_t cropImage); bool validateVideoFormat(const VideoFormat& format); } // namespace Util } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/util_test.cpp000066400000000000000000000024741466211133600231600ustar00rootroot00000000000000#include #include #include #include "util.h" TEST(Util, TestSetFormatDimensions) { // clang-format off const size_t test_cases[][9] = { // (userW, userH, srcW, srcH, minDimension, maxDimension, cropImage, destW, destH) {0, 0, 172, 128, 0, 0, 0, 172, 128}, // #1 {86, 0, 172, 128, 0, 0, 0, 86, 64}, // #2 {64, 0, 128, 172, 0, 0, 0, 64, 86}, // #2 {0, 32, 172, 128, 0, 0, 0, 43, 32}, // #3 {32, 0, 128, 172, 0, 0, 0, 32, 43}, // #3 {60, 50, 172, 128, 0, 0, 0, 60, 50}, // #4 {50, 60, 128, 172, 0, 0, 0, 50, 60}, // #4 {86, 40, 172, 128, 0, 0, 1, 86, 64}, // #5 {86, 92, 172, 128, 0, 0, 1, 124, 92}, // #5 {0, 0, 172, 128, 256, 0, 0, 344, 256}, // #6 {0, 0, 128, 172, 256, 0, 0, 256, 344}, // #6 {0, 0, 128, 172, 0, 344, 0, 256, 344}, // #7 {0, 0, 172, 128, 0, 344, 0, 344, 256}, // #7 {0, 0, 172, 128, 100, 344, 0, 344, 100},// #8 {0, 0, 128, 172, 100, 344, 0, 100, 344} // #8 }; // clang-format onn for (const auto& tc : test_cases) { size_t destW = 0; size_t destH = 0; ffmpeg::Util::setFormatDimensions(destW, destH, tc[0], tc[1], tc[2], tc[3], tc[4], tc[5], tc[6]); CHECK(destW == tc[7]); CHECK(destH == tc[8]); } } vision-0.19.1/torchvision/csrc/io/decoder/video_sampler.cpp000066400000000000000000000242731466211133600237760ustar00rootroot00000000000000#include "video_sampler.h" #include #include "util.h" // www.ffmpeg.org/doxygen/0.5/swscale-example_8c-source.html namespace ffmpeg { namespace { // Setup the data pointers and linesizes based on the specified image // parameters and the provided array. This sets up "planes" to point to a // "buffer" // NOTE: this is most likely culprit behind #3534 // // Args: // fmt: desired output video format // buffer: source constant image buffer (in different format) that will contain // the final image after SWScale planes: destination data pointer to be filled // lineSize: target destination linesize (always {0}) int preparePlanes( const VideoFormat& fmt, const uint8_t* buffer, uint8_t** planes, int* lineSize) { int result; // NOTE: 1 at the end of av_fill_arrays is the value used for alignment if ((result = av_image_fill_arrays( planes, lineSize, buffer, (AVPixelFormat)fmt.format, fmt.width, fmt.height, 1)) < 0) { LOG(ERROR) << "av_image_fill_arrays failed, err: " << Util::generateErrorDesc(result); } return result; } // Scale (and crop) the image slice in srcSlice and put the resulting scaled // slice to `planes` buffer, which is mapped to be `out` via preparePlanes as // `sws_scale` cannot access buffers directly. // // Args: // context: SWSContext allocated on line 119 (if crop, optional) or 163 (if // scale) srcSlice: frame data in YUV420P srcStride: the array containing the // strides for each plane of the source // image (from AVFrame->linesize[0]) // out: destination buffer // planes: indirect destination buffer (mapped to "out" via preparePlanes) // lines: destination linesize; constant {0} int transformImage( SwsContext* context, const uint8_t* const srcSlice[], int srcStride[], VideoFormat inFormat, VideoFormat outFormat, uint8_t* out, uint8_t* planes[], int lines[]) { int result; if ((result = preparePlanes(outFormat, out, planes, lines)) < 0) { return result; } if (context) { // NOTE: srcY stride always 0: this is a parameter of YUV format if ((result = sws_scale( context, srcSlice, srcStride, 0, inFormat.height, planes, lines)) < 0) { LOG(ERROR) << "sws_scale failed, err: " << Util::generateErrorDesc(result); return result; } } else if ( inFormat.width == outFormat.width && inFormat.height == outFormat.height && inFormat.format == outFormat.format) { // Copy planes without using sws_scale if sws_getContext failed. av_image_copy( planes, lines, (const uint8_t**)srcSlice, srcStride, (AVPixelFormat)inFormat.format, inFormat.width, inFormat.height); } else { LOG(ERROR) << "Invalid scale context format " << inFormat.format; return AVERROR(EINVAL); } return 0; } } // namespace VideoSampler::VideoSampler(int swsFlags, int64_t loggingUuid) : swsFlags_(swsFlags), loggingUuid_(loggingUuid) {} VideoSampler::~VideoSampler() { cleanUp(); } void VideoSampler::shutdown() { cleanUp(); } bool VideoSampler::init(const SamplerParameters& params) { cleanUp(); if (params.out.video.cropImage != 0) { if (!Util::validateVideoFormat(params.out.video)) { LOG(ERROR) << "Invalid video format" << ", width: " << params.out.video.width << ", height: " << params.out.video.height << ", format: " << params.out.video.format << ", minDimension: " << params.out.video.minDimension << ", crop: " << params.out.video.cropImage; return false; } scaleFormat_.format = params.out.video.format; Util::setFormatDimensions( scaleFormat_.width, scaleFormat_.height, params.out.video.width, params.out.video.height, params.in.video.width, params.in.video.height, 0, 0, 1); if (!(scaleFormat_ == params_.out.video)) { // crop required cropContext_ = sws_getContext( params.out.video.width, params.out.video.height, (AVPixelFormat)params.out.video.format, params.out.video.width, params.out.video.height, (AVPixelFormat)params.out.video.format, swsFlags_, nullptr, nullptr, nullptr); if (!cropContext_) { LOG(ERROR) << "sws_getContext failed for crop context"; return false; } const auto scaleImageSize = av_image_get_buffer_size( (AVPixelFormat)scaleFormat_.format, scaleFormat_.width, scaleFormat_.height, 1); scaleBuffer_.resize(scaleImageSize); } } else { scaleFormat_ = params.out.video; } VLOG(1) << "Input format #" << loggingUuid_ << ", width " << params.in.video.width << ", height " << params.in.video.height << ", format " << params.in.video.format << ", minDimension " << params.in.video.minDimension << ", cropImage " << params.in.video.cropImage; VLOG(1) << "Scale format #" << loggingUuid_ << ", width " << scaleFormat_.width << ", height " << scaleFormat_.height << ", format " << scaleFormat_.format << ", minDimension " << scaleFormat_.minDimension << ", cropImage " << scaleFormat_.cropImage; VLOG(1) << "Crop format #" << loggingUuid_ << ", width " << params.out.video.width << ", height " << params.out.video.height << ", format " << params.out.video.format << ", minDimension " << params.out.video.minDimension << ", cropImage " << params.out.video.cropImage; // set output format params_ = params; if (params.in.video.format == AV_PIX_FMT_YUV420P) { /* When the video width and height are not multiples of 8, * and there is no size change in the conversion, * a blurry screen will appear on the right side * This problem was discovered in 2012 and * continues to exist in version 4.1.3 in 2019 * This problem can be avoided by increasing SWS_ACCURATE_RND * details https://trac.ffmpeg.org/ticket/1582 */ if ((params.in.video.width & 0x7) || (params.in.video.height & 0x7)) { VLOG(1) << "The width " << params.in.video.width << " and height " << params.in.video.height << " the image is not a multiple of 8, " << "the decoding speed may be reduced"; swsFlags_ |= SWS_ACCURATE_RND; } } scaleContext_ = sws_getContext( params.in.video.width, params.in.video.height, (AVPixelFormat)params.in.video.format, scaleFormat_.width, scaleFormat_.height, (AVPixelFormat)scaleFormat_.format, swsFlags_, nullptr, nullptr, nullptr); // sws_getContext might fail if in/out format == AV_PIX_FMT_PAL8 (png format) // Return true if input and output formats/width/height are identical // Check scaleContext_ for nullptr in transformImage to copy planes directly if (params.in.video.width == scaleFormat_.width && params.in.video.height == scaleFormat_.height && params.in.video.format == scaleFormat_.format) { return true; } return scaleContext_ != nullptr; } // Main body of the sample function called from one of the overloads below // // Args: // srcSlice: decoded AVFrame->data perpared buffer // srcStride: linesize (usually obtained from AVFrame->linesize) // out: return buffer (ByteStorage*) int VideoSampler::sample( const uint8_t* const srcSlice[], int srcStride[], ByteStorage* out) { int result; // scaled and cropped image int outImageSize = av_image_get_buffer_size( (AVPixelFormat)params_.out.video.format, params_.out.video.width, params_.out.video.height, 1); out->ensure(outImageSize); uint8_t* scalePlanes[4] = {nullptr}; int scaleLines[4] = {0}; // perform scale first if ((result = transformImage( scaleContext_, srcSlice, srcStride, params_.in.video, scaleFormat_, // for crop use internal buffer cropContext_ ? scaleBuffer_.data() : out->writableTail(), scalePlanes, scaleLines))) { return result; } // is crop required? if (cropContext_) { uint8_t* cropPlanes[4] = {nullptr}; int cropLines[4] = {0}; if (params_.out.video.height < scaleFormat_.height) { // Destination image is wider of source image: cut top and bottom for (size_t i = 0; i < 4 && scalePlanes[i] != nullptr; ++i) { scalePlanes[i] += scaleLines[i] * (scaleFormat_.height - params_.out.video.height) / 2; } } else { // Source image is wider of destination image: cut sides for (size_t i = 0; i < 4 && scalePlanes[i] != nullptr; ++i) { scalePlanes[i] += scaleLines[i] * (scaleFormat_.width - params_.out.video.width) / 2 / scaleFormat_.width; } } // crop image if ((result = transformImage( cropContext_, scalePlanes, scaleLines, params_.out.video, params_.out.video, out->writableTail(), cropPlanes, cropLines))) { return result; } } out->append(outImageSize); return outImageSize; } // Call from `video_stream.cpp::114` - occurs during file reads int VideoSampler::sample(AVFrame* frame, ByteStorage* out) { if (!frame) { return 0; // no flush for videos } return sample(frame->data, frame->linesize, out); } // Call from `video_stream.cpp::114` - not sure when this occurs int VideoSampler::sample(const ByteStorage* in, ByteStorage* out) { if (!in) { return 0; // no flush for videos } int result; uint8_t* inPlanes[4] = {nullptr}; int inLineSize[4] = {0}; if ((result = preparePlanes( params_.in.video, in->data(), inPlanes, inLineSize)) < 0) { return result; } return sample(inPlanes, inLineSize, out); } void VideoSampler::cleanUp() { if (scaleContext_) { sws_freeContext(scaleContext_); scaleContext_ = nullptr; } if (cropContext_) { sws_freeContext(cropContext_); cropContext_ = nullptr; scaleBuffer_.clear(); } } } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/video_sampler.h000066400000000000000000000017521466211133600234400ustar00rootroot00000000000000#pragma once #include "defs.h" namespace ffmpeg { /** * Class transcode video frames from one format into another */ class VideoSampler : public MediaSampler { public: VideoSampler(int swsFlags = SWS_AREA, int64_t loggingUuid = 0); ~VideoSampler() override; // MediaSampler overrides bool init(const SamplerParameters& params) override; int sample(const ByteStorage* in, ByteStorage* out) override; void shutdown() override; // returns number processed/scaling bytes int sample(AVFrame* frame, ByteStorage* out); int getImageBytes() const; private: // close resources void cleanUp(); // helper functions for rescaling, cropping, etc. int sample( const uint8_t* const srcSlice[], int srcStride[], ByteStorage* out); private: VideoFormat scaleFormat_; SwsContext* scaleContext_{nullptr}; SwsContext* cropContext_{nullptr}; int swsFlags_{SWS_AREA}; std::vector scaleBuffer_; int64_t loggingUuid_{0}; }; } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/video_stream.cpp000066400000000000000000000100751466211133600236210ustar00rootroot00000000000000#include "video_stream.h" #include #include "util.h" namespace ffmpeg { namespace { bool operator==(const VideoFormat& x, const AVFrame& y) { return x.width == static_cast(y.width) && x.height == static_cast(y.height) && x.format == y.format; } bool operator==(const VideoFormat& x, const AVCodecContext& y) { return x.width == static_cast(y.width) && x.height == static_cast(y.height) && x.format == y.pix_fmt; } VideoFormat& toVideoFormat(VideoFormat& x, const AVFrame& y) { x.width = y.width; x.height = y.height; x.format = y.format; return x; } VideoFormat& toVideoFormat(VideoFormat& x, const AVCodecContext& y) { x.width = y.width; x.height = y.height; x.format = y.pix_fmt; return x; } } // namespace VideoStream::VideoStream( AVFormatContext* inputCtx, int index, bool convertPtsToWallTime, const VideoFormat& format, int64_t loggingUuid) : Stream( inputCtx, MediaFormat::makeMediaFormat(format, index), convertPtsToWallTime, loggingUuid) {} VideoStream::~VideoStream() { if (sampler_) { sampler_->shutdown(); sampler_.reset(); } } int VideoStream::initFormat() { // set output format if (!Util::validateVideoFormat(format_.format.video)) { LOG(ERROR) << "Invalid video format" << ", width: " << format_.format.video.width << ", height: " << format_.format.video.height << ", format: " << format_.format.video.format << ", minDimension: " << format_.format.video.minDimension << ", crop: " << format_.format.video.cropImage; return -1; } // keep aspect ratio Util::setFormatDimensions( format_.format.video.width, format_.format.video.height, format_.format.video.width, format_.format.video.height, codecCtx_->width, codecCtx_->height, format_.format.video.minDimension, format_.format.video.maxDimension, 0); if (format_.format.video.format == AV_PIX_FMT_NONE) { format_.format.video.format = codecCtx_->pix_fmt; } return format_.format.video.width != 0 && format_.format.video.height != 0 && format_.format.video.format != AV_PIX_FMT_NONE ? 0 : -1; } // copies frame bytes via sws_scale call in video_sampler.cpp int VideoStream::copyFrameBytes(ByteStorage* out, bool flush) { if (!sampler_) { sampler_ = std::make_unique(SWS_AREA, loggingUuid_); } // check if input format gets changed if (flush ? !(sampler_->getInputFormat().video == *codecCtx_) : !(sampler_->getInputFormat().video == *frame_)) { // - reinit sampler SamplerParameters params; params.type = format_.type; params.out = format_.format; params.in = FormatUnion(0); flush ? toVideoFormat(params.in.video, *codecCtx_) : toVideoFormat(params.in.video, *frame_); if (!sampler_->init(params)) { return -1; } VLOG(1) << "Set input video sampler format" << ", width: " << params.in.video.width << ", height: " << params.in.video.height << ", format: " << params.in.video.format << " : output video sampler format" << ", width: " << format_.format.video.width << ", height: " << format_.format.video.height << ", format: " << format_.format.video.format << ", minDimension: " << format_.format.video.minDimension << ", crop: " << format_.format.video.cropImage; } // calls to a sampler that converts the frame from YUV422 to RGB24, and // optionally crops and resizes the frame. Frame bytes are copied from // frame_->data to out buffer return sampler_->sample(flush ? nullptr : frame_, out); } void VideoStream::setHeader(DecoderHeader* header, bool flush) { Stream::setHeader(header, flush); if (!flush) { // no frames for video flush header->keyFrame = frame_->key_frame; header->fps = av_q2d(av_guess_frame_rate( inputCtx_, inputCtx_->streams[format_.stream], nullptr)); } } } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/decoder/video_stream.h000066400000000000000000000011551466211133600232650ustar00rootroot00000000000000#pragma once #include "stream.h" #include "video_sampler.h" namespace ffmpeg { /** * Class uses FFMPEG library to decode one video stream. */ class VideoStream : public Stream { public: VideoStream( AVFormatContext* inputCtx, int index, bool convertPtsToWallTime, const VideoFormat& format, int64_t loggingUuid); ~VideoStream() override; private: int initFormat() override; int copyFrameBytes(ByteStorage* out, bool flush) override; void setHeader(DecoderHeader* header, bool flush) override; private: std::unique_ptr sampler_; }; } // namespace ffmpeg vision-0.19.1/torchvision/csrc/io/image/000077500000000000000000000000001466211133600201065ustar00rootroot00000000000000vision-0.19.1/torchvision/csrc/io/image/cpu/000077500000000000000000000000001466211133600206755ustar00rootroot00000000000000vision-0.19.1/torchvision/csrc/io/image/cpu/common_jpeg.cpp000066400000000000000000000012721466211133600237000ustar00rootroot00000000000000#include "common_jpeg.h" namespace vision { namespace image { namespace detail { #if JPEG_FOUND void torch_jpeg_error_exit(j_common_ptr cinfo) { /* cinfo->err really points to a torch_jpeg_error_mgr struct, so coerce * pointer */ torch_jpeg_error_ptr myerr = (torch_jpeg_error_ptr)cinfo->err; /* Always display the message. */ /* We could postpone this until after returning, if we chose. */ // (*cinfo->err->output_message)(cinfo); /* Create the message */ (*(cinfo->err->format_message))(cinfo, myerr->jpegLastErrorMsg); /* Return control to the setjmp point */ longjmp(myerr->setjmp_buffer, 1); } #endif } // namespace detail } // namespace image } // namespace vision vision-0.19.1/torchvision/csrc/io/image/cpu/common_jpeg.h000066400000000000000000000011011466211133600233340ustar00rootroot00000000000000#pragma once #if JPEG_FOUND #include #include #include namespace vision { namespace image { namespace detail { static const JOCTET EOI_BUFFER[1] = {JPEG_EOI}; struct torch_jpeg_error_mgr { struct jpeg_error_mgr pub; /* "public" fields */ char jpegLastErrorMsg[JMSG_LENGTH_MAX]; /* error messages */ jmp_buf setjmp_buffer; /* for return to caller */ }; using torch_jpeg_error_ptr = struct torch_jpeg_error_mgr*; void torch_jpeg_error_exit(j_common_ptr cinfo); } // namespace detail } // namespace image } // namespace vision #endif vision-0.19.1/torchvision/csrc/io/image/cpu/common_png.h000066400000000000000000000001101466211133600231720ustar00rootroot00000000000000#pragma once #if PNG_FOUND #include #include #endif vision-0.19.1/torchvision/csrc/io/image/cpu/decode_gif.cpp000066400000000000000000000157371466211133600234660ustar00rootroot00000000000000#include "decode_gif.h" #include #include "giflib/gif_lib.h" namespace vision { namespace image { typedef struct reader_helper_t { uint8_t const* encoded_data; // input tensor data pointer size_t encoded_data_size; // size of input tensor in bytes size_t num_bytes_read; // number of bytes read so far in the tensor } reader_helper_t; // That function is used by GIFLIB routines to read the encoded bytes. // This reads `len` bytes and writes them into `buf`. The data is read from the // input tensor passed to decode_gif() starting at the `num_bytes_read` // position. int read_from_tensor(GifFileType* gifFile, GifByteType* buf, int len) { // the UserData field was set in DGifOpen() reader_helper_t* reader_helper = static_cast(gifFile->UserData); size_t num_bytes_to_read = std::min( (size_t)len, reader_helper->encoded_data_size - reader_helper->num_bytes_read); std::memcpy( buf, reader_helper->encoded_data + reader_helper->num_bytes_read, len); reader_helper->num_bytes_read += num_bytes_to_read; return num_bytes_to_read; } torch::Tensor decode_gif(const torch::Tensor& encoded_data) { // LibGif docs: https://giflib.sourceforge.net/intro.html // Refer over there for more details on the libgif API, API ref, and a // detailed description of the GIF format. TORCH_CHECK(encoded_data.is_contiguous(), "Input tensor must be contiguous."); TORCH_CHECK( encoded_data.dtype() == torch::kU8, "Input tensor must have uint8 data type, got ", encoded_data.dtype()); TORCH_CHECK( encoded_data.dim() == 1, "Input tensor must be 1-dimensional, got ", encoded_data.dim(), " dims."); int error = D_GIF_SUCCEEDED; // We're using DGidOpen. The other entrypoints of libgif are // DGifOpenFileName and DGifOpenFileHandle but we don't want to use those, // since we need to read the encoded bytes from a tensor of encoded bytes, not // from a file (for consistency with existing jpeg and png decoders). Using // DGifOpen is the only way to read from a custom source. // For that we need to provide a reader function `read_from_tensor` that // reads from the tensor, and we have to keep track of the number of bytes // read so far: this is why we need the reader_helper struct. // TODO: We are potentially doing an unnecessary copy of the encoded bytes: // - 1 copy in from file to tensor (in read_file()) // - 1 copy from tensor to GIFLIB buffers (in read_from_tensor()) // Since we're vendoring GIFLIB we can potentially modify the calls to // InternalRead() and just set the `buf` pointer to the tensor data directly. // That might even save allocation of those buffers. // If we do that, we'd have to make sure the buffers are never written to by // GIFLIB, otherwise we'd be overridding the tensor data. reader_helper_t reader_helper; reader_helper.encoded_data = encoded_data.data_ptr(); reader_helper.encoded_data_size = encoded_data.numel(); reader_helper.num_bytes_read = 0; GifFileType* gifFile = DGifOpen(static_cast(&reader_helper), read_from_tensor, &error); TORCH_CHECK( (gifFile != nullptr) && (error == D_GIF_SUCCEEDED), "DGifOpenFileName() failed - ", error); if (DGifSlurp(gifFile) == GIF_ERROR) { auto gifFileError = gifFile->Error; DGifCloseFile(gifFile, &error); TORCH_CHECK(false, "DGifSlurp() failed - ", gifFileError); } auto num_images = gifFile->ImageCount; // This check should already done within DGifSlurp(), just to be safe TORCH_CHECK(num_images > 0, "GIF file should contain at least one image!"); GifColorType bg = {0, 0, 0}; if (gifFile->SColorMap) { bg = gifFile->SColorMap->Colors[gifFile->SBackGroundColor]; } // The GIFLIB docs say that the canvas's height and width are potentially // ignored by modern viewers, so to be on the safe side we set the output // height to max(canvas_heigh, first_image_height). Same for width. // https://giflib.sourceforge.net/whatsinagif/bits_and_bytes.html auto out_h = std::max(gifFile->SHeight, gifFile->SavedImages[0].ImageDesc.Height); auto out_w = std::max(gifFile->SWidth, gifFile->SavedImages[0].ImageDesc.Width); // We output a channels-last tensor for consistency with other image decoders. // Torchvision's resize tends to be is faster on uint8 channels-last tensors. auto options = torch::TensorOptions() .dtype(torch::kU8) .memory_format(torch::MemoryFormat::ChannelsLast); auto out = torch::empty( {int64_t(num_images), 3, int64_t(out_h), int64_t(out_w)}, options); auto out_a = out.accessor(); for (int i = 0; i < num_images; i++) { const SavedImage& img = gifFile->SavedImages[i]; GraphicsControlBlock gcb; DGifSavedExtensionToGCB(gifFile, i, &gcb); const GifImageDesc& desc = img.ImageDesc; const ColorMapObject* cmap = desc.ColorMap ? desc.ColorMap : gifFile->SColorMap; TORCH_CHECK( cmap != nullptr, "Global and local color maps are missing. This should never happen!"); // When going from one image to another, there is a "disposal method" which // specifies how to handle the transition. E.g. DISPOSE_DO_NOT means that // the current image should essentially be drawn on top of the previous // canvas. The pixels of that previous canvas will appear on the new one if // either: // - a pixel is transparent in the current image // - the current image is smaller than the canvas, hence exposing its pixels // The "background" disposal method means that the current canvas should be // set to the background color. // We only support these 2 modes and default to "background" when the // disposal method is unspecified, or when it's set to "DISPOSE_PREVIOUS" // which according to GIFLIB is not widely supported. // (https://giflib.sourceforge.net/whatsinagif/animation_and_transparency.html). if (i > 0 && gcb.DisposalMode == DISPOSE_DO_NOT) { out[i] = out[i - 1]; } else { // Background. If bg wasn't defined, it will be (0, 0, 0) for (int h = 0; h < gifFile->SHeight; h++) { for (int w = 0; w < gifFile->SWidth; w++) { out_a[i][0][h][w] = bg.Red; out_a[i][1][h][w] = bg.Green; out_a[i][2][h][w] = bg.Blue; } } } for (int h = 0; h < desc.Height; h++) { for (int w = 0; w < desc.Width; w++) { auto c = img.RasterBits[h * desc.Width + w]; if (c == gcb.TransparentColor) { continue; } GifColorType rgb = cmap->Colors[c]; out_a[i][0][h + desc.Top][w + desc.Left] = rgb.Red; out_a[i][1][h + desc.Top][w + desc.Left] = rgb.Green; out_a[i][2][h + desc.Top][w + desc.Left] = rgb.Blue; } } } out = out.squeeze(0); // remove batch dim if there's only one image DGifCloseFile(gifFile, &error); TORCH_CHECK(error == D_GIF_SUCCEEDED, "DGifCloseFile() failed - ", error); return out; } } // namespace image } // namespace vision vision-0.19.1/torchvision/csrc/io/image/cpu/decode_gif.h000066400000000000000000000003711466211133600231170ustar00rootroot00000000000000#pragma once #include namespace vision { namespace image { // encoded_data tensor must be 1D uint8 and contiguous C10_EXPORT torch::Tensor decode_gif(const torch::Tensor& encoded_data); } // namespace image } // namespace vision vision-0.19.1/torchvision/csrc/io/image/cpu/decode_image.cpp000066400000000000000000000031151466211133600237660ustar00rootroot00000000000000#include "decode_image.h" #include "decode_gif.h" #include "decode_jpeg.h" #include "decode_png.h" namespace vision { namespace image { torch::Tensor decode_image( const torch::Tensor& data, ImageReadMode mode, bool apply_exif_orientation) { // Check that tensor is a CPU tensor TORCH_CHECK(data.device() == torch::kCPU, "Expected a CPU tensor"); // Check that the input tensor dtype is uint8 TORCH_CHECK(data.dtype() == torch::kU8, "Expected a torch.uint8 tensor"); // Check that the input tensor is 1-dimensional TORCH_CHECK( data.dim() == 1 && data.numel() > 0, "Expected a non empty 1-dimensional tensor"); auto datap = data.data_ptr(); const uint8_t jpeg_signature[3] = {255, 216, 255}; // == "\xFF\xD8\xFF" const uint8_t png_signature[4] = {137, 80, 78, 71}; // == "\211PNG" const uint8_t gif_signature_1[6] = { 0x47, 0x49, 0x46, 0x38, 0x39, 0x61}; // == "GIF89a" const uint8_t gif_signature_2[6] = { 0x47, 0x49, 0x46, 0x38, 0x37, 0x61}; // == "GIF87a" if (memcmp(jpeg_signature, datap, 3) == 0) { return decode_jpeg(data, mode, apply_exif_orientation); } else if (memcmp(png_signature, datap, 4) == 0) { return decode_png( data, mode, /*allow_16_bits=*/false, apply_exif_orientation); } else if ( memcmp(gif_signature_1, datap, 6) == 0 || memcmp(gif_signature_2, datap, 6) == 0) { return decode_gif(data); } else { TORCH_CHECK( false, "Unsupported image file. Only jpeg, png and gif ", "are currently supported."); } } } // namespace image } // namespace vision vision-0.19.1/torchvision/csrc/io/image/cpu/decode_image.h000066400000000000000000000004761466211133600234420ustar00rootroot00000000000000#pragma once #include #include "../image_read_mode.h" namespace vision { namespace image { C10_EXPORT torch::Tensor decode_image( const torch::Tensor& data, ImageReadMode mode = IMAGE_READ_MODE_UNCHANGED, bool apply_exif_orientation = false); } // namespace image } // namespace vision vision-0.19.1/torchvision/csrc/io/image/cpu/decode_jpeg.cpp000066400000000000000000000200301466211133600236240ustar00rootroot00000000000000#include "decode_jpeg.h" #include "common_jpeg.h" #include "exif.h" namespace vision { namespace image { #if !JPEG_FOUND torch::Tensor decode_jpeg( const torch::Tensor& data, ImageReadMode mode, bool apply_exif_orientation) { TORCH_CHECK( false, "decode_jpeg: torchvision not compiled with libjpeg support"); } #else using namespace detail; using namespace exif_private; namespace { struct torch_jpeg_mgr { struct jpeg_source_mgr pub; const JOCTET* data; size_t len; }; static void torch_jpeg_init_source(j_decompress_ptr cinfo) {} static boolean torch_jpeg_fill_input_buffer(j_decompress_ptr cinfo) { // No more data. Probably an incomplete image; Raise exception. torch_jpeg_error_ptr myerr = (torch_jpeg_error_ptr)cinfo->err; strcpy(myerr->jpegLastErrorMsg, "Image is incomplete or truncated"); longjmp(myerr->setjmp_buffer, 1); } static void torch_jpeg_skip_input_data(j_decompress_ptr cinfo, long num_bytes) { torch_jpeg_mgr* src = (torch_jpeg_mgr*)cinfo->src; if (src->pub.bytes_in_buffer < (size_t)num_bytes) { // Skipping over all of remaining data; output EOI. src->pub.next_input_byte = EOI_BUFFER; src->pub.bytes_in_buffer = 1; } else { // Skipping over only some of the remaining data. src->pub.next_input_byte += num_bytes; src->pub.bytes_in_buffer -= num_bytes; } } static void torch_jpeg_term_source(j_decompress_ptr cinfo) {} static void torch_jpeg_set_source_mgr( j_decompress_ptr cinfo, const unsigned char* data, size_t len) { torch_jpeg_mgr* src; if (cinfo->src == 0) { // if this is first time; allocate memory cinfo->src = (struct jpeg_source_mgr*)(*cinfo->mem->alloc_small)( (j_common_ptr)cinfo, JPOOL_PERMANENT, sizeof(torch_jpeg_mgr)); } src = (torch_jpeg_mgr*)cinfo->src; src->pub.init_source = torch_jpeg_init_source; src->pub.fill_input_buffer = torch_jpeg_fill_input_buffer; src->pub.skip_input_data = torch_jpeg_skip_input_data; src->pub.resync_to_restart = jpeg_resync_to_restart; // default src->pub.term_source = torch_jpeg_term_source; // fill the buffers src->data = (const JOCTET*)data; src->len = len; src->pub.bytes_in_buffer = len; src->pub.next_input_byte = src->data; jpeg_save_markers(cinfo, APP1, 0xffff); } inline unsigned char clamped_cmyk_rgb_convert( unsigned char k, unsigned char cmy) { // Inspired from Pillow: // https://github.com/python-pillow/Pillow/blob/07623d1a7cc65206a5355fba2ae256550bfcaba6/src/libImaging/Convert.c#L568-L569 int v = k * cmy + 128; v = ((v >> 8) + v) >> 8; return std::clamp(k - v, 0, 255); } void convert_line_cmyk_to_rgb( j_decompress_ptr cinfo, const unsigned char* cmyk_line, unsigned char* rgb_line) { int width = cinfo->output_width; for (int i = 0; i < width; ++i) { int c = cmyk_line[i * 4 + 0]; int m = cmyk_line[i * 4 + 1]; int y = cmyk_line[i * 4 + 2]; int k = cmyk_line[i * 4 + 3]; rgb_line[i * 3 + 0] = clamped_cmyk_rgb_convert(k, 255 - c); rgb_line[i * 3 + 1] = clamped_cmyk_rgb_convert(k, 255 - m); rgb_line[i * 3 + 2] = clamped_cmyk_rgb_convert(k, 255 - y); } } inline unsigned char rgb_to_gray(int r, int g, int b) { // Inspired from Pillow: // https://github.com/python-pillow/Pillow/blob/07623d1a7cc65206a5355fba2ae256550bfcaba6/src/libImaging/Convert.c#L226 return (r * 19595 + g * 38470 + b * 7471 + 0x8000) >> 16; } void convert_line_cmyk_to_gray( j_decompress_ptr cinfo, const unsigned char* cmyk_line, unsigned char* gray_line) { int width = cinfo->output_width; for (int i = 0; i < width; ++i) { int c = cmyk_line[i * 4 + 0]; int m = cmyk_line[i * 4 + 1]; int y = cmyk_line[i * 4 + 2]; int k = cmyk_line[i * 4 + 3]; int r = clamped_cmyk_rgb_convert(k, 255 - c); int g = clamped_cmyk_rgb_convert(k, 255 - m); int b = clamped_cmyk_rgb_convert(k, 255 - y); gray_line[i] = rgb_to_gray(r, g, b); } } } // namespace torch::Tensor decode_jpeg( const torch::Tensor& data, ImageReadMode mode, bool apply_exif_orientation) { C10_LOG_API_USAGE_ONCE( "torchvision.csrc.io.image.cpu.decode_jpeg.decode_jpeg"); // Check that the input tensor dtype is uint8 TORCH_CHECK(data.dtype() == torch::kU8, "Expected a torch.uint8 tensor"); // Check that the input tensor is 1-dimensional TORCH_CHECK( data.dim() == 1 && data.numel() > 0, "Expected a non empty 1-dimensional tensor"); struct jpeg_decompress_struct cinfo; struct torch_jpeg_error_mgr jerr; auto datap = data.data_ptr(); // Setup decompression structure cinfo.err = jpeg_std_error(&jerr.pub); jerr.pub.error_exit = torch_jpeg_error_exit; /* Establish the setjmp return context for my_error_exit to use. */ if (setjmp(jerr.setjmp_buffer)) { /* If we get here, the JPEG code has signaled an error. * We need to clean up the JPEG object. */ jpeg_destroy_decompress(&cinfo); TORCH_CHECK(false, jerr.jpegLastErrorMsg); } jpeg_create_decompress(&cinfo); torch_jpeg_set_source_mgr(&cinfo, datap, data.numel()); // read info from header. jpeg_read_header(&cinfo, TRUE); int channels = cinfo.num_components; bool cmyk_to_rgb_or_gray = false; if (mode != IMAGE_READ_MODE_UNCHANGED) { switch (mode) { case IMAGE_READ_MODE_GRAY: if (cinfo.jpeg_color_space == JCS_CMYK || cinfo.jpeg_color_space == JCS_YCCK) { cinfo.out_color_space = JCS_CMYK; cmyk_to_rgb_or_gray = true; } else { cinfo.out_color_space = JCS_GRAYSCALE; } channels = 1; break; case IMAGE_READ_MODE_RGB: if (cinfo.jpeg_color_space == JCS_CMYK || cinfo.jpeg_color_space == JCS_YCCK) { cinfo.out_color_space = JCS_CMYK; cmyk_to_rgb_or_gray = true; } else { cinfo.out_color_space = JCS_RGB; } channels = 3; break; /* * Libjpeg does not support converting from CMYK to grayscale etc. There * is a way to do this but it involves converting it manually to RGB: * https://github.com/tensorflow/tensorflow/blob/86871065265b04e0db8ca360c046421efb2bdeb4/tensorflow/core/lib/jpeg/jpeg_mem.cc#L284-L313 */ default: jpeg_destroy_decompress(&cinfo); TORCH_CHECK(false, "The provided mode is not supported for JPEG files"); } jpeg_calc_output_dimensions(&cinfo); } int exif_orientation = -1; if (apply_exif_orientation) { exif_orientation = fetch_jpeg_exif_orientation(&cinfo); } jpeg_start_decompress(&cinfo); int height = cinfo.output_height; int width = cinfo.output_width; int stride = width * channels; auto tensor = torch::empty({int64_t(height), int64_t(width), channels}, torch::kU8); auto ptr = tensor.data_ptr(); torch::Tensor cmyk_line_tensor; if (cmyk_to_rgb_or_gray) { cmyk_line_tensor = torch::empty({int64_t(width), 4}, torch::kU8); } while (cinfo.output_scanline < cinfo.output_height) { /* jpeg_read_scanlines expects an array of pointers to scanlines. * Here the array is only one element long, but you could ask for * more than one scanline at a time if that's more convenient. */ if (cmyk_to_rgb_or_gray) { auto cmyk_line_ptr = cmyk_line_tensor.data_ptr(); jpeg_read_scanlines(&cinfo, &cmyk_line_ptr, 1); if (channels == 3) { convert_line_cmyk_to_rgb(&cinfo, cmyk_line_ptr, ptr); } else if (channels == 1) { convert_line_cmyk_to_gray(&cinfo, cmyk_line_ptr, ptr); } } else { jpeg_read_scanlines(&cinfo, &ptr, 1); } ptr += stride; } jpeg_finish_decompress(&cinfo); jpeg_destroy_decompress(&cinfo); auto output = tensor.permute({2, 0, 1}); if (apply_exif_orientation) { return exif_orientation_transform(output, exif_orientation); } return output; } #endif // #if !JPEG_FOUND int64_t _jpeg_version() { #if JPEG_FOUND return JPEG_LIB_VERSION; #else return -1; #endif } bool _is_compiled_against_turbo() { #ifdef LIBJPEG_TURBO_VERSION return true; #else return false; #endif } } // namespace image } // namespace vision vision-0.19.1/torchvision/csrc/io/image/cpu/decode_jpeg.h000066400000000000000000000006201466211133600232740ustar00rootroot00000000000000#pragma once #include #include "../image_read_mode.h" namespace vision { namespace image { C10_EXPORT torch::Tensor decode_jpeg( const torch::Tensor& data, ImageReadMode mode = IMAGE_READ_MODE_UNCHANGED, bool apply_exif_orientation = false); C10_EXPORT int64_t _jpeg_version(); C10_EXPORT bool _is_compiled_against_turbo(); } // namespace image } // namespace vision vision-0.19.1/torchvision/csrc/io/image/cpu/decode_png.cpp000066400000000000000000000172671466211133600235050ustar00rootroot00000000000000#include "decode_png.h" #include "common_png.h" #include "exif.h" namespace vision { namespace image { using namespace exif_private; #if !PNG_FOUND torch::Tensor decode_png( const torch::Tensor& data, ImageReadMode mode, bool allow_16_bits, bool apply_exif_orientation) { TORCH_CHECK( false, "decode_png: torchvision not compiled with libPNG support"); } #else bool is_little_endian() { uint32_t x = 1; return *(uint8_t*)&x; } torch::Tensor decode_png( const torch::Tensor& data, ImageReadMode mode, bool allow_16_bits, bool apply_exif_orientation) { C10_LOG_API_USAGE_ONCE("torchvision.csrc.io.image.cpu.decode_png.decode_png"); // Check that the input tensor dtype is uint8 TORCH_CHECK(data.dtype() == torch::kU8, "Expected a torch.uint8 tensor"); // Check that the input tensor is 1-dimensional TORCH_CHECK( data.dim() == 1 && data.numel() > 0, "Expected a non empty 1-dimensional tensor"); auto png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, nullptr, nullptr, nullptr); TORCH_CHECK(png_ptr, "libpng read structure allocation failed!") auto info_ptr = png_create_info_struct(png_ptr); if (!info_ptr) { png_destroy_read_struct(&png_ptr, nullptr, nullptr); // Seems redundant with the if statement. done here to avoid leaking memory. TORCH_CHECK(info_ptr, "libpng info structure allocation failed!") } auto accessor = data.accessor(); auto datap = accessor.data(); auto datap_len = accessor.size(0); if (setjmp(png_jmpbuf(png_ptr)) != 0) { png_destroy_read_struct(&png_ptr, &info_ptr, nullptr); TORCH_CHECK(false, "Internal error."); } TORCH_CHECK(datap_len >= 8, "Content is too small for png!") auto is_png = !png_sig_cmp(datap, 0, 8); TORCH_CHECK(is_png, "Content is not png!") struct Reader { png_const_bytep ptr; png_size_t count; } reader; reader.ptr = png_const_bytep(datap) + 8; reader.count = datap_len - 8; auto read_callback = [](png_structp png_ptr, png_bytep output, png_size_t bytes) { auto reader = static_cast(png_get_io_ptr(png_ptr)); TORCH_CHECK( reader->count >= bytes, "Out of bound read in decode_png. Probably, the input image is corrupted"); std::copy(reader->ptr, reader->ptr + bytes, output); reader->ptr += bytes; reader->count -= bytes; }; png_set_sig_bytes(png_ptr, 8); png_set_read_fn(png_ptr, &reader, read_callback); png_read_info(png_ptr, info_ptr); png_uint_32 width, height; int bit_depth, color_type; int interlace_type; auto retval = png_get_IHDR( png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, &interlace_type, nullptr, nullptr); if (retval != 1) { png_destroy_read_struct(&png_ptr, &info_ptr, nullptr); TORCH_CHECK(retval == 1, "Could read image metadata from content.") } auto max_bit_depth = allow_16_bits ? 16 : 8; auto err_msg = "At most " + std::to_string(max_bit_depth) + "-bit PNG images are supported currently."; if (bit_depth > max_bit_depth) { png_destroy_read_struct(&png_ptr, &info_ptr, nullptr); TORCH_CHECK(false, err_msg) } int channels = png_get_channels(png_ptr, info_ptr); if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) png_set_expand_gray_1_2_4_to_8(png_ptr); int number_of_passes; if (interlace_type == PNG_INTERLACE_ADAM7) { number_of_passes = png_set_interlace_handling(png_ptr); } else { number_of_passes = 1; } if (mode != IMAGE_READ_MODE_UNCHANGED) { // TODO: consider supporting PNG_INFO_tRNS bool is_palette = (color_type & PNG_COLOR_MASK_PALETTE) != 0; bool has_color = (color_type & PNG_COLOR_MASK_COLOR) != 0; bool has_alpha = (color_type & PNG_COLOR_MASK_ALPHA) != 0; switch (mode) { case IMAGE_READ_MODE_GRAY: if (color_type != PNG_COLOR_TYPE_GRAY) { if (is_palette) { png_set_palette_to_rgb(png_ptr); has_alpha = true; } if (has_alpha) { png_set_strip_alpha(png_ptr); } if (has_color) { png_set_rgb_to_gray(png_ptr, 1, 0.2989, 0.587); } channels = 1; } break; case IMAGE_READ_MODE_GRAY_ALPHA: if (color_type != PNG_COLOR_TYPE_GRAY_ALPHA) { if (is_palette) { png_set_palette_to_rgb(png_ptr); has_alpha = true; } if (!has_alpha) { png_set_add_alpha(png_ptr, (1 << bit_depth) - 1, PNG_FILLER_AFTER); } if (has_color) { png_set_rgb_to_gray(png_ptr, 1, 0.2989, 0.587); } channels = 2; } break; case IMAGE_READ_MODE_RGB: if (color_type != PNG_COLOR_TYPE_RGB) { if (is_palette) { png_set_palette_to_rgb(png_ptr); has_alpha = true; } else if (!has_color) { png_set_gray_to_rgb(png_ptr); } if (has_alpha) { png_set_strip_alpha(png_ptr); } channels = 3; } break; case IMAGE_READ_MODE_RGB_ALPHA: if (color_type != PNG_COLOR_TYPE_RGB_ALPHA) { if (is_palette) { png_set_palette_to_rgb(png_ptr); has_alpha = true; } else if (!has_color) { png_set_gray_to_rgb(png_ptr); } if (!has_alpha) { png_set_add_alpha(png_ptr, (1 << bit_depth) - 1, PNG_FILLER_AFTER); } channels = 4; } break; default: png_destroy_read_struct(&png_ptr, &info_ptr, nullptr); TORCH_CHECK(false, "The provided mode is not supported for PNG files"); } png_read_update_info(png_ptr, info_ptr); } auto num_pixels_per_row = width * channels; auto tensor = torch::empty( {int64_t(height), int64_t(width), channels}, bit_depth <= 8 ? torch::kU8 : torch::kI32); if (bit_depth <= 8) { auto t_ptr = tensor.accessor().data(); for (int pass = 0; pass < number_of_passes; pass++) { for (png_uint_32 i = 0; i < height; ++i) { png_read_row(png_ptr, t_ptr, nullptr); t_ptr += num_pixels_per_row; } t_ptr = tensor.accessor().data(); } } else { // We're reading a 16bits png, but pytorch doesn't support uint16. // So we read each row in a 16bits tmp_buffer which we then cast into // a int32 tensor instead. if (is_little_endian()) { png_set_swap(png_ptr); } int32_t* t_ptr = tensor.accessor().data(); // We create a tensor instead of malloc-ing for automatic memory management auto tmp_buffer_tensor = torch::empty( {int64_t(num_pixels_per_row * sizeof(uint16_t))}, torch::kU8); uint16_t* tmp_buffer = (uint16_t*)tmp_buffer_tensor.accessor().data(); for (int pass = 0; pass < number_of_passes; pass++) { for (png_uint_32 i = 0; i < height; ++i) { png_read_row(png_ptr, (uint8_t*)tmp_buffer, nullptr); // Now we copy the uint16 values into the int32 tensor. for (size_t j = 0; j < num_pixels_per_row; ++j) { t_ptr[j] = (int32_t)tmp_buffer[j]; } t_ptr += num_pixels_per_row; } t_ptr = tensor.accessor().data(); } } int exif_orientation = -1; if (apply_exif_orientation) { exif_orientation = fetch_png_exif_orientation(png_ptr, info_ptr); } png_destroy_read_struct(&png_ptr, &info_ptr, nullptr); auto output = tensor.permute({2, 0, 1}); if (apply_exif_orientation) { return exif_orientation_transform(output, exif_orientation); } return output; } #endif } // namespace image } // namespace vision vision-0.19.1/torchvision/csrc/io/image/cpu/decode_png.h000066400000000000000000000005341466211133600231370ustar00rootroot00000000000000#pragma once #include #include "../image_read_mode.h" namespace vision { namespace image { C10_EXPORT torch::Tensor decode_png( const torch::Tensor& data, ImageReadMode mode = IMAGE_READ_MODE_UNCHANGED, bool allow_16_bits = false, bool apply_exif_orientation = false); } // namespace image } // namespace vision vision-0.19.1/torchvision/csrc/io/image/cpu/encode_jpeg.cpp000066400000000000000000000062721466211133600236520ustar00rootroot00000000000000#include "encode_jpeg.h" #include "common_jpeg.h" namespace vision { namespace image { #if !JPEG_FOUND torch::Tensor encode_jpeg(const torch::Tensor& data, int64_t quality) { TORCH_CHECK( false, "encode_jpeg: torchvision not compiled with libjpeg support"); } #else // For libjpeg version <= 9b, the out_size parameter in jpeg_mem_dest() is // defined as unsigned long, whereas in later version, it is defined as size_t. #if !defined(JPEG_LIB_VERSION_MAJOR) || JPEG_LIB_VERSION_MAJOR < 9 || \ (JPEG_LIB_VERSION_MAJOR == 9 && JPEG_LIB_VERSION_MINOR <= 2) using JpegSizeType = unsigned long; #else using JpegSizeType = size_t; #endif using namespace detail; torch::Tensor encode_jpeg(const torch::Tensor& data, int64_t quality) { C10_LOG_API_USAGE_ONCE( "torchvision.csrc.io.image.cpu.encode_jpeg.encode_jpeg"); // Define compression structures and error handling struct jpeg_compress_struct cinfo {}; struct torch_jpeg_error_mgr jerr {}; // Define buffer to write JPEG information to and its size JpegSizeType jpegSize = 0; uint8_t* jpegBuf = nullptr; cinfo.err = jpeg_std_error(&jerr.pub); jerr.pub.error_exit = torch_jpeg_error_exit; /* Establish the setjmp return context for my_error_exit to use. */ if (setjmp(jerr.setjmp_buffer)) { /* If we get here, the JPEG code has signaled an error. * We need to clean up the JPEG object and the buffer. */ jpeg_destroy_compress(&cinfo); if (jpegBuf != nullptr) { free(jpegBuf); } TORCH_CHECK(false, (const char*)jerr.jpegLastErrorMsg); } // Check that the input tensor is on CPU TORCH_CHECK(data.device() == torch::kCPU, "Input tensor should be on CPU"); // Check that the input tensor dtype is uint8 TORCH_CHECK(data.dtype() == torch::kU8, "Input tensor dtype should be uint8"); // Check that the input tensor is 3-dimensional TORCH_CHECK(data.dim() == 3, "Input data should be a 3-dimensional tensor"); // Get image info int channels = data.size(0); int height = data.size(1); int width = data.size(2); auto input = data.permute({1, 2, 0}).contiguous(); TORCH_CHECK( channels == 1 || channels == 3, "The number of channels should be 1 or 3, got: ", channels); // Initialize JPEG structure jpeg_create_compress(&cinfo); // Set output image information cinfo.image_width = width; cinfo.image_height = height; cinfo.input_components = channels; cinfo.in_color_space = channels == 1 ? JCS_GRAYSCALE : JCS_RGB; jpeg_set_defaults(&cinfo); jpeg_set_quality(&cinfo, quality, TRUE); // Save JPEG output to a buffer jpeg_mem_dest(&cinfo, &jpegBuf, &jpegSize); // Start JPEG compression jpeg_start_compress(&cinfo, TRUE); auto stride = width * channels; auto ptr = input.data_ptr(); // Encode JPEG file while (cinfo.next_scanline < cinfo.image_height) { jpeg_write_scanlines(&cinfo, &ptr, 1); ptr += stride; } jpeg_finish_compress(&cinfo); jpeg_destroy_compress(&cinfo); torch::TensorOptions options = torch::TensorOptions{torch::kU8}; auto out_tensor = torch::from_blob(jpegBuf, {(long)jpegSize}, ::free, options); jpegBuf = nullptr; return out_tensor; } #endif } // namespace image } // namespace vision vision-0.19.1/torchvision/csrc/io/image/cpu/encode_jpeg.h000066400000000000000000000003251466211133600233100ustar00rootroot00000000000000#pragma once #include namespace vision { namespace image { C10_EXPORT torch::Tensor encode_jpeg( const torch::Tensor& data, int64_t quality); } // namespace image } // namespace vision vision-0.19.1/torchvision/csrc/io/image/cpu/encode_png.cpp000066400000000000000000000114011466211133600234770ustar00rootroot00000000000000#include "encode_jpeg.h" #include "common_png.h" namespace vision { namespace image { #if !PNG_FOUND torch::Tensor encode_png(const torch::Tensor& data, int64_t compression_level) { TORCH_CHECK( false, "encode_png: torchvision not compiled with libpng support"); } #else namespace { struct torch_mem_encode { char* buffer; size_t size; }; struct torch_png_error_mgr { const char* pngLastErrorMsg; /* error messages */ jmp_buf setjmp_buffer; /* for return to caller */ }; using torch_png_error_mgr_ptr = torch_png_error_mgr*; void torch_png_error(png_structp png_ptr, png_const_charp error_msg) { /* png_ptr->err really points to a torch_png_error_mgr struct, so coerce * pointer */ auto error_ptr = (torch_png_error_mgr_ptr)png_get_error_ptr(png_ptr); /* Replace the error message on the error structure */ error_ptr->pngLastErrorMsg = error_msg; /* Return control to the setjmp point */ longjmp(error_ptr->setjmp_buffer, 1); } void torch_png_write_data( png_structp png_ptr, png_bytep data, png_size_t length) { struct torch_mem_encode* p = (struct torch_mem_encode*)png_get_io_ptr(png_ptr); size_t nsize = p->size + length; /* allocate or grow buffer */ if (p->buffer) p->buffer = (char*)realloc(p->buffer, nsize); else p->buffer = (char*)malloc(nsize); if (!p->buffer) png_error(png_ptr, "Write Error"); /* copy new bytes to end of buffer */ memcpy(p->buffer + p->size, data, length); p->size += length; } } // namespace torch::Tensor encode_png(const torch::Tensor& data, int64_t compression_level) { C10_LOG_API_USAGE_ONCE("torchvision.csrc.io.image.cpu.encode_png.encode_png"); // Define compression structures and error handling png_structp png_write; png_infop info_ptr; struct torch_png_error_mgr err_ptr; // Define output buffer struct torch_mem_encode buf_info; buf_info.buffer = nullptr; buf_info.size = 0; /* Establish the setjmp return context for my_error_exit to use. */ if (setjmp(err_ptr.setjmp_buffer)) { /* If we get here, the PNG code has signaled an error. * We need to clean up the PNG object and the buffer. */ if (info_ptr != nullptr) { png_destroy_info_struct(png_write, &info_ptr); } if (png_write != nullptr) { png_destroy_write_struct(&png_write, nullptr); } if (buf_info.buffer != nullptr) { free(buf_info.buffer); } TORCH_CHECK(false, err_ptr.pngLastErrorMsg); } // Check that the compression level is between 0 and 9 TORCH_CHECK( compression_level >= 0 && compression_level <= 9, "Compression level should be between 0 and 9"); // Check that the input tensor is on CPU TORCH_CHECK(data.device() == torch::kCPU, "Input tensor should be on CPU"); // Check that the input tensor dtype is uint8 TORCH_CHECK(data.dtype() == torch::kU8, "Input tensor dtype should be uint8"); // Check that the input tensor is 3-dimensional TORCH_CHECK(data.dim() == 3, "Input data should be a 3-dimensional tensor"); // Get image info int channels = data.size(0); int height = data.size(1); int width = data.size(2); auto input = data.permute({1, 2, 0}).contiguous(); TORCH_CHECK( channels == 1 || channels == 3, "The number of channels should be 1 or 3, got: ", channels); // Initialize PNG structures png_write = png_create_write_struct( PNG_LIBPNG_VER_STRING, &err_ptr, torch_png_error, nullptr); info_ptr = png_create_info_struct(png_write); // Define custom buffer output png_set_write_fn(png_write, &buf_info, torch_png_write_data, nullptr); // Set output image information auto color_type = channels == 1 ? PNG_COLOR_TYPE_GRAY : PNG_COLOR_TYPE_RGB; png_set_IHDR( png_write, info_ptr, width, height, 8, color_type, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); // Set image compression level png_set_compression_level(png_write, compression_level); // Write file header png_write_info(png_write, info_ptr); auto stride = width * channels; auto ptr = input.data_ptr(); // Encode PNG file for (int y = 0; y < height; ++y) { png_write_row(png_write, ptr); ptr += stride; } // Write EOF png_write_end(png_write, info_ptr); // Destroy structures png_destroy_write_struct(&png_write, &info_ptr); torch::TensorOptions options = torch::TensorOptions{torch::kU8}; auto outTensor = torch::empty({(long)buf_info.size}, options); // Copy memory from png buffer, since torch cannot get ownership of it via // `from_blob` auto outPtr = outTensor.data_ptr(); std::memcpy(outPtr, buf_info.buffer, sizeof(uint8_t) * outTensor.numel()); free(buf_info.buffer); return outTensor; } #endif } // namespace image } // namespace vision vision-0.19.1/torchvision/csrc/io/image/cpu/encode_png.h000066400000000000000000000003361466211133600231510ustar00rootroot00000000000000#pragma once #include namespace vision { namespace image { C10_EXPORT torch::Tensor encode_png( const torch::Tensor& data, int64_t compression_level); } // namespace image } // namespace vision vision-0.19.1/torchvision/csrc/io/image/cpu/exif.h000066400000000000000000000203501466211133600220010ustar00rootroot00000000000000/*M/////////////////////////////////////////////////////////////////////////////////////// // // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. // // By downloading, copying, installing or using the software you agree to this license. // If you do not agree to this license, do not download, install, // copy or use the software. // // // License Agreement // For Open Source Computer Vision Library // // Copyright (C) 2000-2008, Intel Corporation, all rights reserved. // Copyright (C) 2009, Willow Garage Inc., all rights reserved. // Third party copyrights are property of their respective owners. // // Redistribution and use in source and binary forms, with or without modification, // are permitted provided that the following conditions are met: // // * Redistribution's of source code must retain the above copyright notice, // this list of conditions and the following disclaimer. // // * Redistribution's in binary form must reproduce the above copyright notice, // this list of conditions and the following disclaimer in the documentation // and/or other materials provided with the distribution. // // * The name of the copyright holders may not be used to endorse or promote products // derived from this software without specific prior written permission. // // This software is provided by the copyright holders and contributors "as is" and // any express or implied warranties, including, but not limited to, the implied // warranties of merchantability and fitness for a particular purpose are disclaimed. // In no event shall the Intel Corporation or contributors be liable for any direct, // indirect, incidental, special, exemplary, or consequential damages // (including, but not limited to, procurement of substitute goods or services; // loss of use, data, or profits; or business interruption) however caused // and on any theory of liability, whether in contract, strict liability, // or tort (including negligence or otherwise) arising in any way out of // the use of this software, even if advised of the possibility of such damage. // //M*/ #pragma once // Functions in this module are taken from OpenCV // https://github.com/opencv/opencv/blob/097891e311fae1d8354eb092a0fd0171e630d78c/modules/imgcodecs/src/exif.cpp #if JPEG_FOUND #include #endif #if PNG_FOUND #include #endif #include namespace vision { namespace image { namespace exif_private { constexpr uint16_t APP1 = 0xe1; constexpr uint16_t ENDIANNESS_INTEL = 0x49; constexpr uint16_t ENDIANNESS_MOTO = 0x4d; constexpr uint16_t REQ_EXIF_TAG_MARK = 0x2a; constexpr uint16_t ORIENTATION_EXIF_TAG = 0x0112; constexpr uint16_t INCORRECT_TAG = -1; class ExifDataReader { public: ExifDataReader(unsigned char* p, size_t s) : _ptr(p), _size(s) {} size_t size() const { return _size; } const unsigned char& operator[](size_t index) const { TORCH_CHECK(index >= 0 && index < _size); return _ptr[index]; } protected: unsigned char* _ptr; size_t _size; }; inline uint16_t get_endianness(const ExifDataReader& exif_data) { if ((exif_data.size() < 1) || (exif_data.size() > 1 && exif_data[0] != exif_data[1])) { return 0; } if (exif_data[0] == 'I') { return ENDIANNESS_INTEL; } if (exif_data[0] == 'M') { return ENDIANNESS_MOTO; } return 0; } inline uint16_t get_uint16( const ExifDataReader& exif_data, uint16_t endianness, const size_t offset) { if (offset + 1 >= exif_data.size()) { return INCORRECT_TAG; } if (endianness == ENDIANNESS_INTEL) { return exif_data[offset] + (exif_data[offset + 1] << 8); } return (exif_data[offset] << 8) + exif_data[offset + 1]; } inline uint32_t get_uint32( const ExifDataReader& exif_data, uint16_t endianness, const size_t offset) { if (offset + 3 >= exif_data.size()) { return INCORRECT_TAG; } if (endianness == ENDIANNESS_INTEL) { return exif_data[offset] + (exif_data[offset + 1] << 8) + (exif_data[offset + 2] << 16) + (exif_data[offset + 3] << 24); } return (exif_data[offset] << 24) + (exif_data[offset + 1] << 16) + (exif_data[offset + 2] << 8) + exif_data[offset + 3]; } inline int fetch_exif_orientation(unsigned char* exif_data_ptr, size_t size) { int exif_orientation = -1; // Exif binary structure looks like this // First 6 bytes: [E, x, i, f, 0, 0] // Endianness, 2 bytes : [M, M] or [I, I] // Tag mark, 2 bytes: [0, 0x2a] // Offset, 4 bytes // Num entries, 2 bytes // Tag entries and data, tag has 2 bytes and its data has 10 bytes // For more details: // http://www.media.mit.edu/pia/Research/deepview/exif.html ExifDataReader exif_data(exif_data_ptr, size); auto endianness = get_endianness(exif_data); // Checking whether Tag Mark (0x002A) correspond to one contained in the // Jpeg file uint16_t tag_mark = get_uint16(exif_data, endianness, 2); if (tag_mark == REQ_EXIF_TAG_MARK) { auto offset = get_uint32(exif_data, endianness, 4); size_t num_entry = get_uint16(exif_data, endianness, offset); offset += 2; // go to start of tag fields constexpr size_t tiff_field_size = 12; for (size_t entry = 0; entry < num_entry; entry++) { // Here we just search for orientation tag and parse it auto tag_num = get_uint16(exif_data, endianness, offset); if (tag_num == INCORRECT_TAG) { break; } if (tag_num == ORIENTATION_EXIF_TAG) { exif_orientation = get_uint16(exif_data, endianness, offset + 8); break; } offset += tiff_field_size; } } return exif_orientation; } #if JPEG_FOUND inline int fetch_jpeg_exif_orientation(j_decompress_ptr cinfo) { // Check for Exif marker APP1 jpeg_saved_marker_ptr exif_marker = 0; jpeg_saved_marker_ptr cmarker = cinfo->marker_list; while (cmarker && exif_marker == 0) { if (cmarker->marker == APP1) { exif_marker = cmarker; } cmarker = cmarker->next; } if (!exif_marker) { return -1; } constexpr size_t start_offset = 6; if (exif_marker->data_length <= start_offset) { return -1; } auto* exif_data_ptr = exif_marker->data + start_offset; auto size = exif_marker->data_length - start_offset; return fetch_exif_orientation(exif_data_ptr, size); } #endif // #if JPEG_FOUND #if PNG_FOUND && defined(PNG_eXIf_SUPPORTED) inline int fetch_png_exif_orientation(png_structp png_ptr, png_infop info_ptr) { png_uint_32 num_exif = 0; png_bytep exif = 0; // Exif info could be in info_ptr if (png_get_valid(png_ptr, info_ptr, PNG_INFO_eXIf)) { png_get_eXIf_1(png_ptr, info_ptr, &num_exif, &exif); } if (exif && num_exif > 0) { return fetch_exif_orientation(exif, num_exif); } return -1; } #endif // #if PNG_FOUND && defined(PNG_eXIf_SUPPORTED) constexpr uint16_t IMAGE_ORIENTATION_TL = 1; // normal orientation constexpr uint16_t IMAGE_ORIENTATION_TR = 2; // needs horizontal flip constexpr uint16_t IMAGE_ORIENTATION_BR = 3; // needs 180 rotation constexpr uint16_t IMAGE_ORIENTATION_BL = 4; // needs vertical flip constexpr uint16_t IMAGE_ORIENTATION_LT = 5; // mirrored horizontal & rotate 270 CW constexpr uint16_t IMAGE_ORIENTATION_RT = 6; // rotate 90 CW constexpr uint16_t IMAGE_ORIENTATION_RB = 7; // mirrored horizontal & rotate 90 CW constexpr uint16_t IMAGE_ORIENTATION_LB = 8; // needs 270 CW rotation inline torch::Tensor exif_orientation_transform( const torch::Tensor& image, int orientation) { if (orientation == IMAGE_ORIENTATION_TL) { return image; } else if (orientation == IMAGE_ORIENTATION_TR) { return image.flip(-1); } else if (orientation == IMAGE_ORIENTATION_BR) { // needs 180 rotation equivalent to // flip both horizontally and vertically return image.flip({-2, -1}); } else if (orientation == IMAGE_ORIENTATION_BL) { return image.flip(-2); } else if (orientation == IMAGE_ORIENTATION_LT) { return image.transpose(-1, -2); } else if (orientation == IMAGE_ORIENTATION_RT) { return image.transpose(-1, -2).flip(-1); } else if (orientation == IMAGE_ORIENTATION_RB) { return image.transpose(-1, -2).flip({-2, -1}); } else if (orientation == IMAGE_ORIENTATION_LB) { return image.transpose(-1, -2).flip(-2); } return image; } } // namespace exif_private } // namespace image } // namespace vision vision-0.19.1/torchvision/csrc/io/image/cpu/giflib/000077500000000000000000000000001466211133600221315ustar00rootroot00000000000000vision-0.19.1/torchvision/csrc/io/image/cpu/giflib/README000066400000000000000000000026501466211133600230140ustar00rootroot00000000000000These files come from the GIFLIB project (https://giflib.sourceforge.net/) and are licensed under the MIT license. Some modifications have been made to the original files: - Remove use of "register" keyword in gifalloc.c for C++17 compatibility. - Declare loop variable i in DGifGetImageHeader as int instead of unsigned int. Below is the original license text from the COPYING file of the GIFLIB project: = MIT LICENSE Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. vision-0.19.1/torchvision/csrc/io/image/cpu/giflib/dgif_lib.c000066400000000000000000001176441466211133600240510ustar00rootroot00000000000000/****************************************************************************** dgif_lib.c - GIF decoding The functions here and in egif_lib.c are partitioned carefully so that if you only require one of read and write capability, only one of these two modules will be linked. Preserve this property! *****************************************************************************/ // SPDX-License-Identifier: MIT // SPDX-FileCopyrightText: Copyright (C) Eric S. Raymond #include #include #include #include #include #include #ifdef _WIN32 #include #else #include #endif /* _WIN32 */ #include "gif_lib.h" #include "gif_lib_private.h" /* compose unsigned little endian value */ #define UNSIGNED_LITTLE_ENDIAN(lo, hi) ((lo) | ((hi) << 8)) /* avoid extra function call in case we use fread (TVT) */ static int InternalRead(GifFileType *gif, GifByteType *buf, int len) { // fprintf(stderr, "### Read: %d\n", len); return (((GifFilePrivateType *)gif->Private)->Read ? ((GifFilePrivateType *)gif->Private)->Read(gif, buf, len) : fread(buf, 1, len, ((GifFilePrivateType *)gif->Private)->File)); } static int DGifGetWord(GifFileType *GifFile, GifWord *Word); static int DGifSetupDecompress(GifFileType *GifFile); static int DGifDecompressLine(GifFileType *GifFile, GifPixelType *Line, int LineLen); static int DGifGetPrefixChar(const GifPrefixType *Prefix, int Code, int ClearCode); static int DGifDecompressInput(GifFileType *GifFile, int *Code); static int DGifBufferedInput(GifFileType *GifFile, GifByteType *Buf, GifByteType *NextByte); /****************************************************************************** Open a new GIF file for read, given by its name. Returns dynamically allocated GifFileType pointer which serves as the GIF info record. ******************************************************************************/ GifFileType *DGifOpenFileName(const char *FileName, int *Error) { int FileHandle; GifFileType *GifFile; if ((FileHandle = open(FileName, O_RDONLY)) == -1) { if (Error != NULL) { *Error = D_GIF_ERR_OPEN_FAILED; } return NULL; } GifFile = DGifOpenFileHandle(FileHandle, Error); return GifFile; } /****************************************************************************** Update a new GIF file, given its file handle. Returns dynamically allocated GifFileType pointer which serves as the GIF info record. ******************************************************************************/ GifFileType *DGifOpenFileHandle(int FileHandle, int *Error) { char Buf[GIF_STAMP_LEN + 1]; GifFileType *GifFile; GifFilePrivateType *Private; FILE *f; GifFile = (GifFileType *)malloc(sizeof(GifFileType)); if (GifFile == NULL) { if (Error != NULL) { *Error = D_GIF_ERR_NOT_ENOUGH_MEM; } (void)close(FileHandle); return NULL; } /*@i1@*/ memset(GifFile, '\0', sizeof(GifFileType)); /* Belt and suspenders, in case the null pointer isn't zero */ GifFile->SavedImages = NULL; GifFile->SColorMap = NULL; Private = (GifFilePrivateType *)calloc(1, sizeof(GifFilePrivateType)); if (Private == NULL) { if (Error != NULL) { *Error = D_GIF_ERR_NOT_ENOUGH_MEM; } (void)close(FileHandle); free((char *)GifFile); return NULL; } /*@i1@*/ memset(Private, '\0', sizeof(GifFilePrivateType)); #ifdef _WIN32 _setmode(FileHandle, O_BINARY); /* Make sure it is in binary mode. */ #endif /* _WIN32 */ f = fdopen(FileHandle, "rb"); /* Make it into a stream: */ /*@-mustfreeonly@*/ GifFile->Private = (void *)Private; Private->FileHandle = FileHandle; Private->File = f; Private->FileState = FILE_STATE_READ; Private->Read = NULL; /* don't use alternate input method (TVT) */ GifFile->UserData = NULL; /* TVT */ /*@=mustfreeonly@*/ /* Let's see if this is a GIF file: */ /* coverity[check_return] */ if (InternalRead(GifFile, (unsigned char *)Buf, GIF_STAMP_LEN) != GIF_STAMP_LEN) { if (Error != NULL) { *Error = D_GIF_ERR_READ_FAILED; } (void)fclose(f); free((char *)Private); free((char *)GifFile); return NULL; } /* Check for GIF prefix at start of file */ Buf[GIF_STAMP_LEN] = 0; if (strncmp(GIF_STAMP, Buf, GIF_VERSION_POS) != 0) { if (Error != NULL) { *Error = D_GIF_ERR_NOT_GIF_FILE; } (void)fclose(f); free((char *)Private); free((char *)GifFile); return NULL; } if (DGifGetScreenDesc(GifFile) == GIF_ERROR) { (void)fclose(f); free((char *)Private); free((char *)GifFile); return NULL; } GifFile->Error = 0; /* What version of GIF? */ Private->gif89 = (Buf[GIF_VERSION_POS + 1] == '9'); return GifFile; } /****************************************************************************** GifFileType constructor with user supplied input function (TVT) ******************************************************************************/ GifFileType *DGifOpen(void *userData, InputFunc readFunc, int *Error) { char Buf[GIF_STAMP_LEN + 1]; GifFileType *GifFile; GifFilePrivateType *Private; GifFile = (GifFileType *)malloc(sizeof(GifFileType)); if (GifFile == NULL) { if (Error != NULL) { *Error = D_GIF_ERR_NOT_ENOUGH_MEM; } return NULL; } memset(GifFile, '\0', sizeof(GifFileType)); /* Belt and suspenders, in case the null pointer isn't zero */ GifFile->SavedImages = NULL; GifFile->SColorMap = NULL; Private = (GifFilePrivateType *)calloc(1, sizeof(GifFilePrivateType)); if (!Private) { if (Error != NULL) { *Error = D_GIF_ERR_NOT_ENOUGH_MEM; } free((char *)GifFile); return NULL; } /*@i1@*/ memset(Private, '\0', sizeof(GifFilePrivateType)); GifFile->Private = (void *)Private; Private->FileHandle = 0; Private->File = NULL; Private->FileState = FILE_STATE_READ; Private->Read = readFunc; /* TVT */ GifFile->UserData = userData; /* TVT */ /* Lets see if this is a GIF file: */ /* coverity[check_return] */ if (InternalRead(GifFile, (unsigned char *)Buf, GIF_STAMP_LEN) != GIF_STAMP_LEN) { if (Error != NULL) { *Error = D_GIF_ERR_READ_FAILED; } free((char *)Private); free((char *)GifFile); return NULL; } /* Check for GIF prefix at start of file */ Buf[GIF_STAMP_LEN] = '\0'; if (strncmp(GIF_STAMP, Buf, GIF_VERSION_POS) != 0) { if (Error != NULL) { *Error = D_GIF_ERR_NOT_GIF_FILE; } free((char *)Private); free((char *)GifFile); return NULL; } if (DGifGetScreenDesc(GifFile) == GIF_ERROR) { free((char *)Private); free((char *)GifFile); if (Error != NULL) { *Error = D_GIF_ERR_NO_SCRN_DSCR; } return NULL; } GifFile->Error = 0; /* What version of GIF? */ Private->gif89 = (Buf[GIF_VERSION_POS + 1] == '9'); return GifFile; } /****************************************************************************** This routine should be called before any other DGif calls. Note that this routine is called automatically from DGif file open routines. ******************************************************************************/ int DGifGetScreenDesc(GifFileType *GifFile) { int BitsPerPixel; bool SortFlag; GifByteType Buf[3]; GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; if (!IS_READABLE(Private)) { /* This file was NOT open for reading: */ GifFile->Error = D_GIF_ERR_NOT_READABLE; return GIF_ERROR; } /* Put the screen descriptor into the file: */ if (DGifGetWord(GifFile, &GifFile->SWidth) == GIF_ERROR || DGifGetWord(GifFile, &GifFile->SHeight) == GIF_ERROR) { return GIF_ERROR; } if (InternalRead(GifFile, Buf, 3) != 3) { GifFile->Error = D_GIF_ERR_READ_FAILED; GifFreeMapObject(GifFile->SColorMap); GifFile->SColorMap = NULL; return GIF_ERROR; } GifFile->SColorResolution = (((Buf[0] & 0x70) + 1) >> 4) + 1; SortFlag = (Buf[0] & 0x08) != 0; BitsPerPixel = (Buf[0] & 0x07) + 1; GifFile->SBackGroundColor = Buf[1]; GifFile->AspectByte = Buf[2]; if (Buf[0] & 0x80) { /* Do we have global color map? */ int i; GifFile->SColorMap = GifMakeMapObject(1 << BitsPerPixel, NULL); if (GifFile->SColorMap == NULL) { GifFile->Error = D_GIF_ERR_NOT_ENOUGH_MEM; return GIF_ERROR; } /* Get the global color map: */ GifFile->SColorMap->SortFlag = SortFlag; for (i = 0; i < GifFile->SColorMap->ColorCount; i++) { /* coverity[check_return] */ if (InternalRead(GifFile, Buf, 3) != 3) { GifFreeMapObject(GifFile->SColorMap); GifFile->SColorMap = NULL; GifFile->Error = D_GIF_ERR_READ_FAILED; return GIF_ERROR; } GifFile->SColorMap->Colors[i].Red = Buf[0]; GifFile->SColorMap->Colors[i].Green = Buf[1]; GifFile->SColorMap->Colors[i].Blue = Buf[2]; } } else { GifFile->SColorMap = NULL; } /* * No check here for whether the background color is in range for the * screen color map. Possibly there should be. */ return GIF_OK; } const char *DGifGetGifVersion(GifFileType *GifFile) { GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; if (Private->gif89) { return GIF89_STAMP; } else { return GIF87_STAMP; } } /****************************************************************************** This routine should be called before any attempt to read an image. ******************************************************************************/ int DGifGetRecordType(GifFileType *GifFile, GifRecordType *Type) { GifByteType Buf; GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; if (!IS_READABLE(Private)) { /* This file was NOT open for reading: */ GifFile->Error = D_GIF_ERR_NOT_READABLE; return GIF_ERROR; } /* coverity[check_return] */ if (InternalRead(GifFile, &Buf, 1) != 1) { GifFile->Error = D_GIF_ERR_READ_FAILED; return GIF_ERROR; } // fprintf(stderr, "### DGifGetRecordType: %02x\n", Buf); switch (Buf) { case DESCRIPTOR_INTRODUCER: *Type = IMAGE_DESC_RECORD_TYPE; break; case EXTENSION_INTRODUCER: *Type = EXTENSION_RECORD_TYPE; break; case TERMINATOR_INTRODUCER: *Type = TERMINATE_RECORD_TYPE; break; default: *Type = UNDEFINED_RECORD_TYPE; GifFile->Error = D_GIF_ERR_WRONG_RECORD; return GIF_ERROR; } return GIF_OK; } int DGifGetImageHeader(GifFileType *GifFile) { unsigned int BitsPerPixel; GifByteType Buf[3]; GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; if (!IS_READABLE(Private)) { /* This file was NOT open for reading: */ GifFile->Error = D_GIF_ERR_NOT_READABLE; return GIF_ERROR; } if (DGifGetWord(GifFile, &GifFile->Image.Left) == GIF_ERROR || DGifGetWord(GifFile, &GifFile->Image.Top) == GIF_ERROR || DGifGetWord(GifFile, &GifFile->Image.Width) == GIF_ERROR || DGifGetWord(GifFile, &GifFile->Image.Height) == GIF_ERROR) { return GIF_ERROR; } if (InternalRead(GifFile, Buf, 1) != 1) { GifFile->Error = D_GIF_ERR_READ_FAILED; GifFreeMapObject(GifFile->Image.ColorMap); GifFile->Image.ColorMap = NULL; return GIF_ERROR; } BitsPerPixel = (Buf[0] & 0x07) + 1; GifFile->Image.Interlace = (Buf[0] & 0x40) ? true : false; /* Setup the colormap */ if (GifFile->Image.ColorMap) { GifFreeMapObject(GifFile->Image.ColorMap); GifFile->Image.ColorMap = NULL; } /* Does this image have local color map? */ if (Buf[0] & 0x80) { int i; GifFile->Image.ColorMap = GifMakeMapObject(1 << BitsPerPixel, NULL); if (GifFile->Image.ColorMap == NULL) { GifFile->Error = D_GIF_ERR_NOT_ENOUGH_MEM; return GIF_ERROR; } /* Get the image local color map: */ for (i = 0; i < GifFile->Image.ColorMap->ColorCount; i++) { /* coverity[check_return] */ if (InternalRead(GifFile, Buf, 3) != 3) { GifFreeMapObject(GifFile->Image.ColorMap); GifFile->Error = D_GIF_ERR_READ_FAILED; GifFile->Image.ColorMap = NULL; return GIF_ERROR; } GifFile->Image.ColorMap->Colors[i].Red = Buf[0]; GifFile->Image.ColorMap->Colors[i].Green = Buf[1]; GifFile->Image.ColorMap->Colors[i].Blue = Buf[2]; } } Private->PixelCount = (long)GifFile->Image.Width * (long)GifFile->Image.Height; /* Reset decompress algorithm parameters. */ return DGifSetupDecompress(GifFile); } /****************************************************************************** This routine should be called before any attempt to read an image. Note it is assumed the Image desc. header has been read. ******************************************************************************/ int DGifGetImageDesc(GifFileType *GifFile) { GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; SavedImage *sp; if (!IS_READABLE(Private)) { /* This file was NOT open for reading: */ GifFile->Error = D_GIF_ERR_NOT_READABLE; return GIF_ERROR; } if (DGifGetImageHeader(GifFile) == GIF_ERROR) { return GIF_ERROR; } if (GifFile->SavedImages) { SavedImage *new_saved_images = (SavedImage *)reallocarray( GifFile->SavedImages, (GifFile->ImageCount + 1), sizeof(SavedImage)); if (new_saved_images == NULL) { GifFile->Error = D_GIF_ERR_NOT_ENOUGH_MEM; return GIF_ERROR; } GifFile->SavedImages = new_saved_images; } else { if ((GifFile->SavedImages = (SavedImage *)malloc(sizeof(SavedImage))) == NULL) { GifFile->Error = D_GIF_ERR_NOT_ENOUGH_MEM; return GIF_ERROR; } } sp = &GifFile->SavedImages[GifFile->ImageCount]; memcpy(&sp->ImageDesc, &GifFile->Image, sizeof(GifImageDesc)); if (GifFile->Image.ColorMap != NULL) { sp->ImageDesc.ColorMap = GifMakeMapObject(GifFile->Image.ColorMap->ColorCount, GifFile->Image.ColorMap->Colors); if (sp->ImageDesc.ColorMap == NULL) { GifFile->Error = D_GIF_ERR_NOT_ENOUGH_MEM; return GIF_ERROR; } } sp->RasterBits = (unsigned char *)NULL; sp->ExtensionBlockCount = 0; sp->ExtensionBlocks = (ExtensionBlock *)NULL; GifFile->ImageCount++; return GIF_OK; } /****************************************************************************** Get one full scanned line (Line) of length LineLen from GIF file. ******************************************************************************/ int DGifGetLine(GifFileType *GifFile, GifPixelType *Line, int LineLen) { GifByteType *Dummy; GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; if (!IS_READABLE(Private)) { /* This file was NOT open for reading: */ GifFile->Error = D_GIF_ERR_NOT_READABLE; return GIF_ERROR; } if (!LineLen) { LineLen = GifFile->Image.Width; } if ((Private->PixelCount -= LineLen) > 0xffff0000UL) { GifFile->Error = D_GIF_ERR_DATA_TOO_BIG; return GIF_ERROR; } if (DGifDecompressLine(GifFile, Line, LineLen) == GIF_OK) { if (Private->PixelCount == 0) { /* We probably won't be called any more, so let's clean * up everything before we return: need to flush out all * the rest of image until an empty block (size 0) * detected. We use GetCodeNext. */ do { if (DGifGetCodeNext(GifFile, &Dummy) == GIF_ERROR) { return GIF_ERROR; } } while (Dummy != NULL); } return GIF_OK; } else { return GIF_ERROR; } } /****************************************************************************** Put one pixel (Pixel) into GIF file. ******************************************************************************/ int DGifGetPixel(GifFileType *GifFile, GifPixelType Pixel) { GifByteType *Dummy; GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; if (!IS_READABLE(Private)) { /* This file was NOT open for reading: */ GifFile->Error = D_GIF_ERR_NOT_READABLE; return GIF_ERROR; } if (--Private->PixelCount > 0xffff0000UL) { GifFile->Error = D_GIF_ERR_DATA_TOO_BIG; return GIF_ERROR; } if (DGifDecompressLine(GifFile, &Pixel, 1) == GIF_OK) { if (Private->PixelCount == 0) { /* We probably won't be called any more, so let's clean * up everything before we return: need to flush out all * the rest of image until an empty block (size 0) * detected. We use GetCodeNext. */ do { if (DGifGetCodeNext(GifFile, &Dummy) == GIF_ERROR) { return GIF_ERROR; } } while (Dummy != NULL); } return GIF_OK; } else { return GIF_ERROR; } } /****************************************************************************** Get an extension block (see GIF manual) from GIF file. This routine only returns the first data block, and DGifGetExtensionNext should be called after this one until NULL extension is returned. The Extension should NOT be freed by the user (not dynamically allocated). Note it is assumed the Extension description header has been read. ******************************************************************************/ int DGifGetExtension(GifFileType *GifFile, int *ExtCode, GifByteType **Extension) { GifByteType Buf; GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; // fprintf(stderr, "### -> DGifGetExtension:\n"); if (!IS_READABLE(Private)) { /* This file was NOT open for reading: */ GifFile->Error = D_GIF_ERR_NOT_READABLE; return GIF_ERROR; } /* coverity[check_return] */ if (InternalRead(GifFile, &Buf, 1) != 1) { GifFile->Error = D_GIF_ERR_READ_FAILED; return GIF_ERROR; } *ExtCode = Buf; // fprintf(stderr, "### <- DGifGetExtension: %02x, about to call // next\n", Buf); return DGifGetExtensionNext(GifFile, Extension); } /****************************************************************************** Get a following extension block (see GIF manual) from GIF file. This routine should be called until NULL Extension is returned. The Extension should NOT be freed by the user (not dynamically allocated). ******************************************************************************/ int DGifGetExtensionNext(GifFileType *GifFile, GifByteType **Extension) { GifByteType Buf; GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; // fprintf(stderr, "### -> DGifGetExtensionNext\n"); if (InternalRead(GifFile, &Buf, 1) != 1) { GifFile->Error = D_GIF_ERR_READ_FAILED; return GIF_ERROR; } // fprintf(stderr, "### DGifGetExtensionNext sees %d\n", Buf); if (Buf > 0) { *Extension = Private->Buf; /* Use private unused buffer. */ (*Extension)[0] = Buf; /* Pascal strings notation (pos. 0 is len.). */ /* coverity[tainted_data,check_return] */ if (InternalRead(GifFile, &((*Extension)[1]), Buf) != Buf) { GifFile->Error = D_GIF_ERR_READ_FAILED; return GIF_ERROR; } } else { *Extension = NULL; } // fprintf(stderr, "### <- DGifGetExtensionNext: %p\n", Extension); return GIF_OK; } /****************************************************************************** Extract a Graphics Control Block from raw extension data ******************************************************************************/ int DGifExtensionToGCB(const size_t GifExtensionLength, const GifByteType *GifExtension, GraphicsControlBlock *GCB) { if (GifExtensionLength != 4) { return GIF_ERROR; } GCB->DisposalMode = (GifExtension[0] >> 2) & 0x07; GCB->UserInputFlag = (GifExtension[0] & 0x02) != 0; GCB->DelayTime = UNSIGNED_LITTLE_ENDIAN(GifExtension[1], GifExtension[2]); if (GifExtension[0] & 0x01) { GCB->TransparentColor = (int)GifExtension[3]; } else { GCB->TransparentColor = NO_TRANSPARENT_COLOR; } return GIF_OK; } /****************************************************************************** Extract the Graphics Control Block for a saved image, if it exists. ******************************************************************************/ int DGifSavedExtensionToGCB(GifFileType *GifFile, int ImageIndex, GraphicsControlBlock *GCB) { int i; if (ImageIndex < 0 || ImageIndex > GifFile->ImageCount - 1) { return GIF_ERROR; } GCB->DisposalMode = DISPOSAL_UNSPECIFIED; GCB->UserInputFlag = false; GCB->DelayTime = 0; GCB->TransparentColor = NO_TRANSPARENT_COLOR; for (i = 0; i < GifFile->SavedImages[ImageIndex].ExtensionBlockCount; i++) { ExtensionBlock *ep = &GifFile->SavedImages[ImageIndex].ExtensionBlocks[i]; if (ep->Function == GRAPHICS_EXT_FUNC_CODE) { return DGifExtensionToGCB(ep->ByteCount, ep->Bytes, GCB); } } return GIF_ERROR; } /****************************************************************************** This routine should be called last, to close the GIF file. ******************************************************************************/ int DGifCloseFile(GifFileType *GifFile, int *ErrorCode) { GifFilePrivateType *Private; if (GifFile == NULL || GifFile->Private == NULL) { return GIF_ERROR; } if (GifFile->Image.ColorMap) { GifFreeMapObject(GifFile->Image.ColorMap); GifFile->Image.ColorMap = NULL; } if (GifFile->SColorMap) { GifFreeMapObject(GifFile->SColorMap); GifFile->SColorMap = NULL; } if (GifFile->SavedImages) { GifFreeSavedImages(GifFile); GifFile->SavedImages = NULL; } GifFreeExtensions(&GifFile->ExtensionBlockCount, &GifFile->ExtensionBlocks); Private = (GifFilePrivateType *)GifFile->Private; if (!IS_READABLE(Private)) { /* This file was NOT open for reading: */ if (ErrorCode != NULL) { *ErrorCode = D_GIF_ERR_NOT_READABLE; } free((char *)GifFile->Private); free(GifFile); return GIF_ERROR; } if (Private->File && (fclose(Private->File) != 0)) { if (ErrorCode != NULL) { *ErrorCode = D_GIF_ERR_CLOSE_FAILED; } free((char *)GifFile->Private); free(GifFile); return GIF_ERROR; } free((char *)GifFile->Private); free(GifFile); if (ErrorCode != NULL) { *ErrorCode = D_GIF_SUCCEEDED; } return GIF_OK; } /****************************************************************************** Get 2 bytes (word) from the given file: ******************************************************************************/ static int DGifGetWord(GifFileType *GifFile, GifWord *Word) { unsigned char c[2]; /* coverity[check_return] */ if (InternalRead(GifFile, c, 2) != 2) { GifFile->Error = D_GIF_ERR_READ_FAILED; return GIF_ERROR; } *Word = (GifWord)UNSIGNED_LITTLE_ENDIAN(c[0], c[1]); return GIF_OK; } /****************************************************************************** Get the image code in compressed form. This routine can be called if the information needed to be piped out as is. Obviously this is much faster than decoding and encoding again. This routine should be followed by calls to DGifGetCodeNext, until NULL block is returned. The block should NOT be freed by the user (not dynamically allocated). ******************************************************************************/ int DGifGetCode(GifFileType *GifFile, int *CodeSize, GifByteType **CodeBlock) { GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; if (!IS_READABLE(Private)) { /* This file was NOT open for reading: */ GifFile->Error = D_GIF_ERR_NOT_READABLE; return GIF_ERROR; } *CodeSize = Private->BitsPerPixel; return DGifGetCodeNext(GifFile, CodeBlock); } /****************************************************************************** Continue to get the image code in compressed form. This routine should be called until NULL block is returned. The block should NOT be freed by the user (not dynamically allocated). ******************************************************************************/ int DGifGetCodeNext(GifFileType *GifFile, GifByteType **CodeBlock) { GifByteType Buf; GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; /* coverity[tainted_data_argument] */ /* coverity[check_return] */ if (InternalRead(GifFile, &Buf, 1) != 1) { GifFile->Error = D_GIF_ERR_READ_FAILED; return GIF_ERROR; } /* coverity[lower_bounds] */ if (Buf > 0) { *CodeBlock = Private->Buf; /* Use private unused buffer. */ (*CodeBlock)[0] = Buf; /* Pascal strings notation (pos. 0 is len.). */ /* coverity[tainted_data] */ if (InternalRead(GifFile, &((*CodeBlock)[1]), Buf) != Buf) { GifFile->Error = D_GIF_ERR_READ_FAILED; return GIF_ERROR; } } else { *CodeBlock = NULL; Private->Buf[0] = 0; /* Make sure the buffer is empty! */ Private->PixelCount = 0; /* And local info. indicate image read. */ } return GIF_OK; } /****************************************************************************** Setup the LZ decompression for this image: ******************************************************************************/ static int DGifSetupDecompress(GifFileType *GifFile) { int i, BitsPerPixel; GifByteType CodeSize; GifPrefixType *Prefix; GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; /* coverity[check_return] */ if (InternalRead(GifFile, &CodeSize, 1) < 1) { /* Read Code size from file. */ GifFile->Error = D_GIF_ERR_READ_FAILED; return GIF_ERROR; /* Failed to read Code size. */ } BitsPerPixel = CodeSize; /* this can only happen on a severely malformed GIF */ if (BitsPerPixel > 8) { GifFile->Error = D_GIF_ERR_READ_FAILED; /* somewhat bogus error code */ return GIF_ERROR; /* Failed to read Code size. */ } Private->Buf[0] = 0; /* Input Buffer empty. */ Private->BitsPerPixel = BitsPerPixel; Private->ClearCode = (1 << BitsPerPixel); Private->EOFCode = Private->ClearCode + 1; Private->RunningCode = Private->EOFCode + 1; Private->RunningBits = BitsPerPixel + 1; /* Number of bits per code. */ Private->MaxCode1 = 1 << Private->RunningBits; /* Max. code + 1. */ Private->StackPtr = 0; /* No pixels on the pixel stack. */ Private->LastCode = NO_SUCH_CODE; Private->CrntShiftState = 0; /* No information in CrntShiftDWord. */ Private->CrntShiftDWord = 0; Prefix = Private->Prefix; for (i = 0; i <= LZ_MAX_CODE; i++) { Prefix[i] = NO_SUCH_CODE; } return GIF_OK; } /****************************************************************************** The LZ decompression routine: This version decompress the given GIF file into Line of length LineLen. This routine can be called few times (one per scan line, for example), in order the complete the whole image. ******************************************************************************/ static int DGifDecompressLine(GifFileType *GifFile, GifPixelType *Line, int LineLen) { int i = 0; int j, CrntCode, EOFCode, ClearCode, CrntPrefix, LastCode, StackPtr; GifByteType *Stack, *Suffix; GifPrefixType *Prefix; GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; StackPtr = Private->StackPtr; Prefix = Private->Prefix; Suffix = Private->Suffix; Stack = Private->Stack; EOFCode = Private->EOFCode; ClearCode = Private->ClearCode; LastCode = Private->LastCode; if (StackPtr > LZ_MAX_CODE) { return GIF_ERROR; } if (StackPtr != 0) { /* Let pop the stack off before continueing to read the GIF * file: */ while (StackPtr != 0 && i < LineLen) { Line[i++] = Stack[--StackPtr]; } } while (i < LineLen) { /* Decode LineLen items. */ if (DGifDecompressInput(GifFile, &CrntCode) == GIF_ERROR) { return GIF_ERROR; } if (CrntCode == EOFCode) { /* Note however that usually we will not be here as we * will stop decoding as soon as we got all the pixel, * or EOF code will not be read at all, and * DGifGetLine/Pixel clean everything. */ GifFile->Error = D_GIF_ERR_EOF_TOO_SOON; return GIF_ERROR; } else if (CrntCode == ClearCode) { /* We need to start over again: */ for (j = 0; j <= LZ_MAX_CODE; j++) { Prefix[j] = NO_SUCH_CODE; } Private->RunningCode = Private->EOFCode + 1; Private->RunningBits = Private->BitsPerPixel + 1; Private->MaxCode1 = 1 << Private->RunningBits; LastCode = Private->LastCode = NO_SUCH_CODE; } else { /* Its regular code - if in pixel range simply add it to * output stream, otherwise trace to codes linked list * until the prefix is in pixel range: */ if (CrntCode < ClearCode) { /* This is simple - its pixel scalar, so add it * to output: */ Line[i++] = CrntCode; } else { /* Its a code to needed to be traced: trace the * linked list until the prefix is a pixel, * while pushing the suffix pixels on our stack. * If we done, pop the stack in reverse (thats * what stack is good for!) order to output. */ if (Prefix[CrntCode] == NO_SUCH_CODE) { CrntPrefix = LastCode; /* Only allowed if CrntCode is exactly * the running code: In that case * CrntCode = XXXCode, CrntCode or the * prefix code is last code and the * suffix char is exactly the prefix of * last code! */ if (CrntCode == Private->RunningCode - 2) { Suffix[Private->RunningCode - 2] = Stack[StackPtr++] = DGifGetPrefixChar( Prefix, LastCode, ClearCode); } else { Suffix[Private->RunningCode - 2] = Stack[StackPtr++] = DGifGetPrefixChar( Prefix, CrntCode, ClearCode); } } else { CrntPrefix = CrntCode; } /* Now (if image is O.K.) we should not get a * NO_SUCH_CODE during the trace. As we might * loop forever, in case of defective image, we * use StackPtr as loop counter and stop before * overflowing Stack[]. */ while (StackPtr < LZ_MAX_CODE && CrntPrefix > ClearCode && CrntPrefix <= LZ_MAX_CODE) { Stack[StackPtr++] = Suffix[CrntPrefix]; CrntPrefix = Prefix[CrntPrefix]; } if (StackPtr >= LZ_MAX_CODE || CrntPrefix > LZ_MAX_CODE) { GifFile->Error = D_GIF_ERR_IMAGE_DEFECT; return GIF_ERROR; } /* Push the last character on stack: */ Stack[StackPtr++] = CrntPrefix; /* Now lets pop all the stack into output: */ while (StackPtr != 0 && i < LineLen) { Line[i++] = Stack[--StackPtr]; } } if (LastCode != NO_SUCH_CODE && Private->RunningCode - 2 < (LZ_MAX_CODE + 1) && Prefix[Private->RunningCode - 2] == NO_SUCH_CODE) { Prefix[Private->RunningCode - 2] = LastCode; if (CrntCode == Private->RunningCode - 2) { /* Only allowed if CrntCode is exactly * the running code: In that case * CrntCode = XXXCode, CrntCode or the * prefix code is last code and the * suffix char is exactly the prefix of * last code! */ Suffix[Private->RunningCode - 2] = DGifGetPrefixChar(Prefix, LastCode, ClearCode); } else { Suffix[Private->RunningCode - 2] = DGifGetPrefixChar(Prefix, CrntCode, ClearCode); } } LastCode = CrntCode; } } Private->LastCode = LastCode; Private->StackPtr = StackPtr; return GIF_OK; } /****************************************************************************** Routine to trace the Prefixes linked list until we get a prefix which is not code, but a pixel value (less than ClearCode). Returns that pixel value. If image is defective, we might loop here forever, so we limit the loops to the maximum possible if image O.k. - LZ_MAX_CODE times. ******************************************************************************/ static int DGifGetPrefixChar(const GifPrefixType *Prefix, int Code, int ClearCode) { int i = 0; while (Code > ClearCode && i++ <= LZ_MAX_CODE) { if (Code > LZ_MAX_CODE) { return NO_SUCH_CODE; } Code = Prefix[Code]; } return Code; } /****************************************************************************** Interface for accessing the LZ codes directly. Set Code to the real code (12bits), or to -1 if EOF code is returned. ******************************************************************************/ int DGifGetLZCodes(GifFileType *GifFile, int *Code) { GifByteType *CodeBlock; GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; if (!IS_READABLE(Private)) { /* This file was NOT open for reading: */ GifFile->Error = D_GIF_ERR_NOT_READABLE; return GIF_ERROR; } if (DGifDecompressInput(GifFile, Code) == GIF_ERROR) { return GIF_ERROR; } if (*Code == Private->EOFCode) { /* Skip rest of codes (hopefully only NULL terminating block): */ do { if (DGifGetCodeNext(GifFile, &CodeBlock) == GIF_ERROR) { return GIF_ERROR; } } while (CodeBlock != NULL); *Code = -1; } else if (*Code == Private->ClearCode) { /* We need to start over again: */ Private->RunningCode = Private->EOFCode + 1; Private->RunningBits = Private->BitsPerPixel + 1; Private->MaxCode1 = 1 << Private->RunningBits; } return GIF_OK; } /****************************************************************************** The LZ decompression input routine: This routine is responsable for the decompression of the bit stream from 8 bits (bytes) packets, into the real codes. Returns GIF_OK if read successfully. ******************************************************************************/ static int DGifDecompressInput(GifFileType *GifFile, int *Code) { static const unsigned short CodeMasks[] = { 0x0000, 0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff, 0x01ff, 0x03ff, 0x07ff, 0x0fff}; GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; GifByteType NextByte; /* The image can't contain more than LZ_BITS per code. */ if (Private->RunningBits > LZ_BITS) { GifFile->Error = D_GIF_ERR_IMAGE_DEFECT; return GIF_ERROR; } while (Private->CrntShiftState < Private->RunningBits) { /* Needs to get more bytes from input stream for next code: */ if (DGifBufferedInput(GifFile, Private->Buf, &NextByte) == GIF_ERROR) { return GIF_ERROR; } Private->CrntShiftDWord |= ((unsigned long)NextByte) << Private->CrntShiftState; Private->CrntShiftState += 8; } *Code = Private->CrntShiftDWord & CodeMasks[Private->RunningBits]; Private->CrntShiftDWord >>= Private->RunningBits; Private->CrntShiftState -= Private->RunningBits; /* If code cannot fit into RunningBits bits, must raise its size. Note * however that codes above 4095 are used for special signaling. * If we're using LZ_BITS bits already and we're at the max code, just * keep using the table as it is, don't increment Private->RunningCode. */ if (Private->RunningCode < LZ_MAX_CODE + 2 && ++Private->RunningCode > Private->MaxCode1 && Private->RunningBits < LZ_BITS) { Private->MaxCode1 <<= 1; Private->RunningBits++; } return GIF_OK; } /****************************************************************************** This routines read one GIF data block at a time and buffers it internally so that the decompression routine could access it. The routine returns the next byte from its internal buffer (or read next block in if buffer empty) and returns GIF_OK if succesful. ******************************************************************************/ static int DGifBufferedInput(GifFileType *GifFile, GifByteType *Buf, GifByteType *NextByte) { if (Buf[0] == 0) { /* Needs to read the next buffer - this one is empty: */ /* coverity[check_return] */ if (InternalRead(GifFile, Buf, 1) != 1) { GifFile->Error = D_GIF_ERR_READ_FAILED; return GIF_ERROR; } /* There shouldn't be any empty data blocks here as the LZW spec * says the LZW termination code should come first. Therefore * we shouldn't be inside this routine at that point. */ if (Buf[0] == 0) { GifFile->Error = D_GIF_ERR_IMAGE_DEFECT; return GIF_ERROR; } if (InternalRead(GifFile, &Buf[1], Buf[0]) != Buf[0]) { GifFile->Error = D_GIF_ERR_READ_FAILED; return GIF_ERROR; } *NextByte = Buf[1]; Buf[1] = 2; /* We use now the second place as last char read! */ Buf[0]--; } else { *NextByte = Buf[Buf[1]++]; Buf[0]--; } return GIF_OK; } /****************************************************************************** This routine is called in case of error during parsing image. We need to decrease image counter and reallocate memory for saved images. Not decreasing ImageCount may lead to null pointer dereference, because the last element in SavedImages may point to the spoilt image and null pointer buffers. *******************************************************************************/ void DGifDecreaseImageCounter(GifFileType *GifFile) { GifFile->ImageCount--; if (GifFile->SavedImages[GifFile->ImageCount].RasterBits != NULL) { free(GifFile->SavedImages[GifFile->ImageCount].RasterBits); } // Realloc array according to the new image counter. SavedImage *correct_saved_images = (SavedImage *)reallocarray( GifFile->SavedImages, GifFile->ImageCount, sizeof(SavedImage)); if (correct_saved_images != NULL) { GifFile->SavedImages = correct_saved_images; } } /****************************************************************************** This routine reads an entire GIF into core, hanging all its state info off the GifFileType pointer. Call DGifOpenFileName() or DGifOpenFileHandle() first to initialize I/O. Its inverse is EGifSpew(). *******************************************************************************/ int DGifSlurp(GifFileType *GifFile) { size_t ImageSize; GifRecordType RecordType; SavedImage *sp; GifByteType *ExtData; int ExtFunction; GifFile->ExtensionBlocks = NULL; GifFile->ExtensionBlockCount = 0; do { if (DGifGetRecordType(GifFile, &RecordType) == GIF_ERROR) { return (GIF_ERROR); } switch (RecordType) { case IMAGE_DESC_RECORD_TYPE: if (DGifGetImageDesc(GifFile) == GIF_ERROR) { return (GIF_ERROR); } sp = &GifFile->SavedImages[GifFile->ImageCount - 1]; /* Allocate memory for the image */ if (sp->ImageDesc.Width <= 0 || sp->ImageDesc.Height <= 0 || sp->ImageDesc.Width > (INT_MAX / sp->ImageDesc.Height)) { DGifDecreaseImageCounter(GifFile); return GIF_ERROR; } ImageSize = sp->ImageDesc.Width * sp->ImageDesc.Height; if (ImageSize > (SIZE_MAX / sizeof(GifPixelType))) { DGifDecreaseImageCounter(GifFile); return GIF_ERROR; } sp->RasterBits = (unsigned char *)reallocarray( NULL, ImageSize, sizeof(GifPixelType)); if (sp->RasterBits == NULL) { DGifDecreaseImageCounter(GifFile); return GIF_ERROR; } if (sp->ImageDesc.Interlace) { int i, j; /* * The way an interlaced image should be read - * offsets and jumps... */ static const int InterlacedOffset[] = {0, 4, 2, 1}; static const int InterlacedJumps[] = {8, 8, 4, 2}; /* Need to perform 4 passes on the image */ for (i = 0; i < 4; i++) { for (j = InterlacedOffset[i]; j < sp->ImageDesc.Height; j += InterlacedJumps[i]) { if (DGifGetLine( GifFile, sp->RasterBits + j * sp->ImageDesc .Width, sp->ImageDesc.Width) == GIF_ERROR) { DGifDecreaseImageCounter( GifFile); return GIF_ERROR; } } } } else { if (DGifGetLine(GifFile, sp->RasterBits, ImageSize) == GIF_ERROR) { DGifDecreaseImageCounter(GifFile); return GIF_ERROR; } } if (GifFile->ExtensionBlocks) { sp->ExtensionBlocks = GifFile->ExtensionBlocks; sp->ExtensionBlockCount = GifFile->ExtensionBlockCount; GifFile->ExtensionBlocks = NULL; GifFile->ExtensionBlockCount = 0; } break; case EXTENSION_RECORD_TYPE: if (DGifGetExtension(GifFile, &ExtFunction, &ExtData) == GIF_ERROR) { return (GIF_ERROR); } /* Create an extension block with our data */ if (ExtData != NULL) { if (GifAddExtensionBlock( &GifFile->ExtensionBlockCount, &GifFile->ExtensionBlocks, ExtFunction, ExtData[0], &ExtData[1]) == GIF_ERROR) { return (GIF_ERROR); } } for (;;) { if (DGifGetExtensionNext(GifFile, &ExtData) == GIF_ERROR) { return (GIF_ERROR); } if (ExtData == NULL) { break; } /* Continue the extension block */ if (GifAddExtensionBlock( &GifFile->ExtensionBlockCount, &GifFile->ExtensionBlocks, CONTINUE_EXT_FUNC_CODE, ExtData[0], &ExtData[1]) == GIF_ERROR) { return (GIF_ERROR); } } break; case TERMINATE_RECORD_TYPE: break; default: /* Should be trapped by DGifGetRecordType */ break; } } while (RecordType != TERMINATE_RECORD_TYPE); /* Sanity check for corrupted file */ if (GifFile->ImageCount == 0) { GifFile->Error = D_GIF_ERR_NO_IMAG_DSCR; return (GIF_ERROR); } return (GIF_OK); } /* end */ vision-0.19.1/torchvision/csrc/io/image/cpu/giflib/gif_hash.c000066400000000000000000000106651466211133600240550ustar00rootroot00000000000000/***************************************************************************** gif_hash.c -- module to support the following operations: 1. InitHashTable - initialize hash table. 2. ClearHashTable - clear the hash table to an empty state. 2. InsertHashTable - insert one item into data structure. 3. ExistsHashTable - test if item exists in data structure. This module is used to hash the GIF codes during encoding. *****************************************************************************/ // SPDX-License-Identifier: MIT // SPDX-File-Copyright-Txt: (C) Copyright 1989 Gershon Elber #include #include #include #include #include #include "gif_hash.h" #include "gif_lib.h" #include "gif_lib_private.h" /* #define DEBUG_HIT_RATE Debug number of misses per hash Insert/Exists. */ #ifdef DEBUG_HIT_RATE static long NumberOfTests = 0, NumberOfMisses = 0; #endif /* DEBUG_HIT_RATE */ static int KeyItem(uint32_t Item); /****************************************************************************** Initialize HashTable - allocate the memory needed and clear it. * ******************************************************************************/ GifHashTableType *_InitHashTable(void) { GifHashTableType *HashTable; if ((HashTable = (GifHashTableType *)malloc( sizeof(GifHashTableType))) == NULL) { return NULL; } _ClearHashTable(HashTable); return HashTable; } /****************************************************************************** Routine to clear the HashTable to an empty state. * This part is a little machine depended. Use the commented part otherwise. * ******************************************************************************/ void _ClearHashTable(GifHashTableType *HashTable) { memset(HashTable->HTable, 0xFF, HT_SIZE * sizeof(uint32_t)); } /****************************************************************************** Routine to insert a new Item into the HashTable. The data is assumed to be * new one. * ******************************************************************************/ void _InsertHashTable(GifHashTableType *HashTable, uint32_t Key, int Code) { int HKey = KeyItem(Key); uint32_t *HTable = HashTable->HTable; #ifdef DEBUG_HIT_RATE NumberOfTests++; NumberOfMisses++; #endif /* DEBUG_HIT_RATE */ while (HT_GET_KEY(HTable[HKey]) != 0xFFFFFL) { #ifdef DEBUG_HIT_RATE NumberOfMisses++; #endif /* DEBUG_HIT_RATE */ HKey = (HKey + 1) & HT_KEY_MASK; } HTable[HKey] = HT_PUT_KEY(Key) | HT_PUT_CODE(Code); } /****************************************************************************** Routine to test if given Key exists in HashTable and if so returns its code * Returns the Code if key was found, -1 if not. * ******************************************************************************/ int _ExistsHashTable(GifHashTableType *HashTable, uint32_t Key) { int HKey = KeyItem(Key); uint32_t *HTable = HashTable->HTable, HTKey; #ifdef DEBUG_HIT_RATE NumberOfTests++; NumberOfMisses++; #endif /* DEBUG_HIT_RATE */ while ((HTKey = HT_GET_KEY(HTable[HKey])) != 0xFFFFFL) { #ifdef DEBUG_HIT_RATE NumberOfMisses++; #endif /* DEBUG_HIT_RATE */ if (Key == HTKey) { return HT_GET_CODE(HTable[HKey]); } HKey = (HKey + 1) & HT_KEY_MASK; } return -1; } /****************************************************************************** Routine to generate an HKey for the hashtable out of the given unique key. * The given Key is assumed to be 20 bits as follows: lower 8 bits are the * new postfix character, while the upper 12 bits are the prefix code. * Because the average hit ratio is only 2 (2 hash references per entry), * evaluating more complex keys (such as twin prime keys) does not worth it! * ******************************************************************************/ static int KeyItem(uint32_t Item) { return ((Item >> 12) ^ Item) & HT_KEY_MASK; } #ifdef DEBUG_HIT_RATE /****************************************************************************** Debugging routine to print the hit ratio - number of times the hash table * was tested per operation. This routine was used to test the KeyItem routine * ******************************************************************************/ void HashTablePrintHitRatio(void) { printf("Hash Table Hit Ratio is %ld/%ld = %ld%%.\n", NumberOfMisses, NumberOfTests, NumberOfMisses * 100 / NumberOfTests); } #endif /* DEBUG_HIT_RATE */ /* end */ vision-0.19.1/torchvision/csrc/io/image/cpu/giflib/gif_hash.h000066400000000000000000000026451466211133600240610ustar00rootroot00000000000000/****************************************************************************** gif_hash.h - magfic constants and declarations for GIF LZW ******************************************************************************/ // SPDX-License-Identifier: MIT #ifndef _GIF_HASH_H_ #define _GIF_HASH_H_ #ifndef _WIN32 #include #endif /* _WIN32 */ #include #define HT_SIZE 8192 /* 12bits = 4096 or twice as big! */ #define HT_KEY_MASK 0x1FFF /* 13bits keys */ #define HT_KEY_NUM_BITS 13 /* 13bits keys */ #define HT_MAX_KEY 8191 /* 13bits - 1, maximal code possible */ #define HT_MAX_CODE 4095 /* Biggest code possible in 12 bits. */ /* The 32 bits of the long are divided into two parts for the key & code: */ /* 1. The code is 12 bits as our compression algorithm is limited to 12bits */ /* 2. The key is 12 bits Prefix code + 8 bit new char or 20 bits. */ /* The key is the upper 20 bits. The code is the lower 12. */ #define HT_GET_KEY(l) (l >> 12) #define HT_GET_CODE(l) (l & 0x0FFF) #define HT_PUT_KEY(l) (l << 12) #define HT_PUT_CODE(l) (l & 0x0FFF) typedef struct GifHashTableType { uint32_t HTable[HT_SIZE]; } GifHashTableType; GifHashTableType *_InitHashTable(void); void _ClearHashTable(GifHashTableType *HashTable); void _InsertHashTable(GifHashTableType *HashTable, uint32_t Key, int Code); int _ExistsHashTable(GifHashTableType *HashTable, uint32_t Key); #endif /* _GIF_HASH_H_ */ /* end */ vision-0.19.1/torchvision/csrc/io/image/cpu/giflib/gif_lib.h000066400000000000000000000303471466211133600237040ustar00rootroot00000000000000/****************************************************************************** gif_lib.h - service library for decoding and encoding GIF images SPDX-License-Identifier: MIT *****************************************************************************/ #ifndef _GIF_LIB_H_ #define _GIF_LIB_H_ 1 #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #define GIFLIB_MAJOR 5 #define GIFLIB_MINOR 2 #define GIFLIB_RELEASE 2 #define GIF_ERROR 0 #define GIF_OK 1 #include #include #define GIF_STAMP "GIFVER" /* First chars in file - GIF stamp. */ #define GIF_STAMP_LEN sizeof(GIF_STAMP) - 1 #define GIF_VERSION_POS 3 /* Version first character in stamp. */ #define GIF87_STAMP "GIF87a" /* First chars in file - GIF stamp. */ #define GIF89_STAMP "GIF89a" /* First chars in file - GIF stamp. */ typedef unsigned char GifPixelType; typedef unsigned char *GifRowType; typedef unsigned char GifByteType; typedef unsigned int GifPrefixType; typedef int GifWord; typedef struct GifColorType { GifByteType Red, Green, Blue; } GifColorType; typedef struct ColorMapObject { int ColorCount; int BitsPerPixel; bool SortFlag; GifColorType *Colors; /* on malloc(3) heap */ } ColorMapObject; typedef struct GifImageDesc { GifWord Left, Top, Width, Height; /* Current image dimensions. */ bool Interlace; /* Sequential/Interlaced lines. */ ColorMapObject *ColorMap; /* The local color map */ } GifImageDesc; typedef struct ExtensionBlock { int ByteCount; GifByteType *Bytes; /* on malloc(3) heap */ int Function; /* The block function code */ #define CONTINUE_EXT_FUNC_CODE 0x00 /* continuation subblock */ #define COMMENT_EXT_FUNC_CODE 0xfe /* comment */ #define GRAPHICS_EXT_FUNC_CODE 0xf9 /* graphics control (GIF89) */ #define PLAINTEXT_EXT_FUNC_CODE 0x01 /* plaintext */ #define APPLICATION_EXT_FUNC_CODE 0xff /* application block (GIF89) */ } ExtensionBlock; typedef struct SavedImage { GifImageDesc ImageDesc; GifByteType *RasterBits; /* on malloc(3) heap */ int ExtensionBlockCount; /* Count of extensions before image */ ExtensionBlock *ExtensionBlocks; /* Extensions before image */ } SavedImage; typedef struct GifFileType { GifWord SWidth, SHeight; /* Size of virtual canvas */ GifWord SColorResolution; /* How many colors can we generate? */ GifWord SBackGroundColor; /* Background color for virtual canvas */ GifByteType AspectByte; /* Used to compute pixel aspect ratio */ ColorMapObject *SColorMap; /* Global colormap, NULL if nonexistent. */ int ImageCount; /* Number of current image (both APIs) */ GifImageDesc Image; /* Current image (low-level API) */ SavedImage *SavedImages; /* Image sequence (high-level API) */ int ExtensionBlockCount; /* Count extensions past last image */ ExtensionBlock *ExtensionBlocks; /* Extensions past last image */ int Error; /* Last error condition reported */ void *UserData; /* hook to attach user data (TVT) */ void *Private; /* Don't mess with this! */ } GifFileType; #define GIF_ASPECT_RATIO(n) ((n) + 15.0 / 64.0) typedef enum { UNDEFINED_RECORD_TYPE, SCREEN_DESC_RECORD_TYPE, IMAGE_DESC_RECORD_TYPE, /* Begin with ',' */ EXTENSION_RECORD_TYPE, /* Begin with '!' */ TERMINATE_RECORD_TYPE /* Begin with ';' */ } GifRecordType; /* func type to read gif data from arbitrary sources (TVT) */ typedef int (*InputFunc)(GifFileType *, GifByteType *, int); /* func type to write gif data to arbitrary targets. * Returns count of bytes written. (MRB) */ typedef int (*OutputFunc)(GifFileType *, const GifByteType *, int); /****************************************************************************** GIF89 structures ******************************************************************************/ typedef struct GraphicsControlBlock { int DisposalMode; #define DISPOSAL_UNSPECIFIED 0 /* No disposal specified. */ #define DISPOSE_DO_NOT 1 /* Leave image in place */ #define DISPOSE_BACKGROUND 2 /* Set area too background color */ #define DISPOSE_PREVIOUS 3 /* Restore to previous content */ bool UserInputFlag; /* User confirmation required before disposal */ int DelayTime; /* pre-display delay in 0.01sec units */ int TransparentColor; /* Palette index for transparency, -1 if none */ #define NO_TRANSPARENT_COLOR -1 } GraphicsControlBlock; /****************************************************************************** GIF encoding routines ******************************************************************************/ /* Main entry points */ GifFileType *EGifOpenFileName(const char *GifFileName, const bool GifTestExistence, int *Error); GifFileType *EGifOpenFileHandle(const int GifFileHandle, int *Error); GifFileType *EGifOpen(void *userPtr, OutputFunc writeFunc, int *Error); int EGifSpew(GifFileType *GifFile); const char *EGifGetGifVersion(GifFileType *GifFile); /* new in 5.x */ int EGifCloseFile(GifFileType *GifFile, int *ErrorCode); #define E_GIF_SUCCEEDED 0 #define E_GIF_ERR_OPEN_FAILED 1 /* And EGif possible errors. */ #define E_GIF_ERR_WRITE_FAILED 2 #define E_GIF_ERR_HAS_SCRN_DSCR 3 #define E_GIF_ERR_HAS_IMAG_DSCR 4 #define E_GIF_ERR_NO_COLOR_MAP 5 #define E_GIF_ERR_DATA_TOO_BIG 6 #define E_GIF_ERR_NOT_ENOUGH_MEM 7 #define E_GIF_ERR_DISK_IS_FULL 8 #define E_GIF_ERR_CLOSE_FAILED 9 #define E_GIF_ERR_NOT_WRITEABLE 10 /* These are legacy. You probably do not want to call them directly */ int EGifPutScreenDesc(GifFileType *GifFile, const int GifWidth, const int GifHeight, const int GifColorRes, const int GifBackGround, const ColorMapObject *GifColorMap); int EGifPutImageDesc(GifFileType *GifFile, const int GifLeft, const int GifTop, const int GifWidth, const int GifHeight, const bool GifInterlace, const ColorMapObject *GifColorMap); void EGifSetGifVersion(GifFileType *GifFile, const bool gif89); int EGifPutLine(GifFileType *GifFile, GifPixelType *GifLine, int GifLineLen); int EGifPutPixel(GifFileType *GifFile, const GifPixelType GifPixel); int EGifPutComment(GifFileType *GifFile, const char *GifComment); int EGifPutExtensionLeader(GifFileType *GifFile, const int GifExtCode); int EGifPutExtensionBlock(GifFileType *GifFile, const int GifExtLen, const void *GifExtension); int EGifPutExtensionTrailer(GifFileType *GifFile); int EGifPutExtension(GifFileType *GifFile, const int GifExtCode, const int GifExtLen, const void *GifExtension); int EGifPutCode(GifFileType *GifFile, int GifCodeSize, const GifByteType *GifCodeBlock); int EGifPutCodeNext(GifFileType *GifFile, const GifByteType *GifCodeBlock); /****************************************************************************** GIF decoding routines ******************************************************************************/ /* Main entry points */ GifFileType *DGifOpenFileName(const char *GifFileName, int *Error); GifFileType *DGifOpenFileHandle(int GifFileHandle, int *Error); int DGifSlurp(GifFileType *GifFile); GifFileType *DGifOpen(void *userPtr, InputFunc readFunc, int *Error); /* new one (TVT) */ int DGifCloseFile(GifFileType *GifFile, int *ErrorCode); #define D_GIF_SUCCEEDED 0 #define D_GIF_ERR_OPEN_FAILED 101 /* And DGif possible errors. */ #define D_GIF_ERR_READ_FAILED 102 #define D_GIF_ERR_NOT_GIF_FILE 103 #define D_GIF_ERR_NO_SCRN_DSCR 104 #define D_GIF_ERR_NO_IMAG_DSCR 105 #define D_GIF_ERR_NO_COLOR_MAP 106 #define D_GIF_ERR_WRONG_RECORD 107 #define D_GIF_ERR_DATA_TOO_BIG 108 #define D_GIF_ERR_NOT_ENOUGH_MEM 109 #define D_GIF_ERR_CLOSE_FAILED 110 #define D_GIF_ERR_NOT_READABLE 111 #define D_GIF_ERR_IMAGE_DEFECT 112 #define D_GIF_ERR_EOF_TOO_SOON 113 /* These are legacy. You probably do not want to call them directly */ int DGifGetScreenDesc(GifFileType *GifFile); int DGifGetRecordType(GifFileType *GifFile, GifRecordType *GifType); int DGifGetImageHeader(GifFileType *GifFile); int DGifGetImageDesc(GifFileType *GifFile); int DGifGetLine(GifFileType *GifFile, GifPixelType *GifLine, int GifLineLen); int DGifGetPixel(GifFileType *GifFile, GifPixelType GifPixel); int DGifGetExtension(GifFileType *GifFile, int *GifExtCode, GifByteType **GifExtension); int DGifGetExtensionNext(GifFileType *GifFile, GifByteType **GifExtension); int DGifGetCode(GifFileType *GifFile, int *GifCodeSize, GifByteType **GifCodeBlock); int DGifGetCodeNext(GifFileType *GifFile, GifByteType **GifCodeBlock); int DGifGetLZCodes(GifFileType *GifFile, int *GifCode); const char *DGifGetGifVersion(GifFileType *GifFile); /****************************************************************************** Error handling and reporting. ******************************************************************************/ extern const char *GifErrorString(int ErrorCode); /* new in 2012 - ESR */ /***************************************************************************** it g in core. ******************************************************************************/ /****************************************************************************** Color map handling from gif_alloc.c ******************************************************************************/ extern ColorMapObject *GifMakeMapObject(int ColorCount, const GifColorType *ColorMap); extern void GifFreeMapObject(ColorMapObject *Object); extern ColorMapObject *GifUnionColorMap(const ColorMapObject *ColorIn1, const ColorMapObject *ColorIn2, GifPixelType ColorTransIn2[]); extern int GifBitSize(int n); /****************************************************************************** Support for the in-core structures allocation (slurp mode). ******************************************************************************/ extern void GifApplyTranslation(SavedImage *Image, const GifPixelType Translation[]); extern int GifAddExtensionBlock(int *ExtensionBlock_Count, ExtensionBlock **ExtensionBlocks, int Function, unsigned int Len, unsigned char ExtData[]); extern void GifFreeExtensions(int *ExtensionBlock_Count, ExtensionBlock **ExtensionBlocks); extern SavedImage *GifMakeSavedImage(GifFileType *GifFile, const SavedImage *CopyFrom); extern void GifFreeSavedImages(GifFileType *GifFile); /****************************************************************************** 5.x functions for GIF89 graphics control blocks ******************************************************************************/ int DGifExtensionToGCB(const size_t GifExtensionLength, const GifByteType *GifExtension, GraphicsControlBlock *GCB); size_t EGifGCBToExtension(const GraphicsControlBlock *GCB, GifByteType *GifExtension); int DGifSavedExtensionToGCB(GifFileType *GifFile, int ImageIndex, GraphicsControlBlock *GCB); int EGifGCBToSavedExtension(const GraphicsControlBlock *GCB, GifFileType *GifFile, int ImageIndex); /****************************************************************************** The library's internal utility font ******************************************************************************/ #define GIF_FONT_WIDTH 8 #define GIF_FONT_HEIGHT 8 extern const unsigned char GifAsciiTable8x8[][GIF_FONT_WIDTH]; extern void GifDrawText8x8(SavedImage *Image, const int x, const int y, const char *legend, const int color); extern void GifDrawBox(SavedImage *Image, const int x, const int y, const int w, const int d, const int color); extern void GifDrawRectangle(SavedImage *Image, const int x, const int y, const int w, const int d, const int color); extern void GifDrawBoxedText8x8(SavedImage *Image, const int x, const int y, const char *legend, const int border, const int bg, const int fg); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* _GIF_LIB_H */ /* end */ vision-0.19.1/torchvision/csrc/io/image/cpu/giflib/gif_lib_private.h000066400000000000000000000051171466211133600254330ustar00rootroot00000000000000/**************************************************************************** gif_lib_private.h - internal giflib routines and structures SPDX-License-Identifier: MIT ****************************************************************************/ #ifndef _GIF_LIB_PRIVATE_H #define _GIF_LIB_PRIVATE_H #include "gif_hash.h" #include "gif_lib.h" #ifndef SIZE_MAX #define SIZE_MAX UINTPTR_MAX #endif #define EXTENSION_INTRODUCER 0x21 #define DESCRIPTOR_INTRODUCER 0x2c #define TERMINATOR_INTRODUCER 0x3b #define LZ_MAX_CODE 4095 /* Biggest code possible in 12 bits. */ #define LZ_BITS 12 #define FLUSH_OUTPUT 4096 /* Impossible code, to signal flush. */ #define FIRST_CODE 4097 /* Impossible code, to signal first. */ #define NO_SUCH_CODE 4098 /* Impossible code, to signal empty. */ #define FILE_STATE_WRITE 0x01 #define FILE_STATE_SCREEN 0x02 #define FILE_STATE_IMAGE 0x04 #define FILE_STATE_READ 0x08 #define IS_READABLE(Private) (Private->FileState & FILE_STATE_READ) #define IS_WRITEABLE(Private) (Private->FileState & FILE_STATE_WRITE) typedef struct GifFilePrivateType { GifWord FileState, FileHandle, /* Where all this data goes to! */ BitsPerPixel, /* Bits per pixel (Codes uses at least this + 1). */ ClearCode, /* The CLEAR LZ code. */ EOFCode, /* The EOF LZ code. */ RunningCode, /* The next code algorithm can generate. */ RunningBits, /* The number of bits required to represent RunningCode. */ MaxCode1, /* 1 bigger than max. possible code, in RunningBits bits. */ LastCode, /* The code before the current code. */ CrntCode, /* Current algorithm code. */ StackPtr, /* For character stack (see below). */ CrntShiftState; /* Number of bits in CrntShiftDWord. */ unsigned long CrntShiftDWord; /* For bytes decomposition into codes. */ unsigned long PixelCount; /* Number of pixels in image. */ FILE *File; /* File as stream. */ InputFunc Read; /* function to read gif input (TVT) */ OutputFunc Write; /* function to write gif output (MRB) */ GifByteType Buf[256]; /* Compressed input is buffered here. */ GifByteType Stack[LZ_MAX_CODE]; /* Decoded pixels are stacked here. */ GifByteType Suffix[LZ_MAX_CODE + 1]; /* So we can trace the codes. */ GifPrefixType Prefix[LZ_MAX_CODE + 1]; GifHashTableType *HashTable; bool gif89; } GifFilePrivateType; #ifndef HAVE_REALLOCARRAY extern void *openbsd_reallocarray(void *optr, size_t nmemb, size_t size); #define reallocarray openbsd_reallocarray #endif #endif /* _GIF_LIB_PRIVATE_H */ /* end */ vision-0.19.1/torchvision/csrc/io/image/cpu/giflib/gifalloc.c000066400000000000000000000277151466211133600240710ustar00rootroot00000000000000/***************************************************************************** GIF construction tools ****************************************************************************/ // SPDX-License-Identifier: MIT // SPDX-FileCopyrightText: Copyright (C) Eric S. Raymond #include #include #include #include "gif_lib.h" #include "gif_lib_private.h" #define MAX(x, y) (((x) > (y)) ? (x) : (y)) /****************************************************************************** Miscellaneous utility functions ******************************************************************************/ /* return smallest bitfield size n will fit in */ int GifBitSize(int n) { int i; for (i = 1; i <= 8; i++) { if ((1 << i) >= n) { break; } } return (i); } /****************************************************************************** Color map object functions ******************************************************************************/ /* * Allocate a color map of given size; initialize with contents of * ColorMap if that pointer is non-NULL. */ ColorMapObject *GifMakeMapObject(int ColorCount, const GifColorType *ColorMap) { ColorMapObject *Object; /*** FIXME: Our ColorCount has to be a power of two. Is it necessary to * make the user know that or should we automatically round up instead? */ if (ColorCount != (1 << GifBitSize(ColorCount))) { return ((ColorMapObject *)NULL); } Object = (ColorMapObject *)malloc(sizeof(ColorMapObject)); if (Object == (ColorMapObject *)NULL) { return ((ColorMapObject *)NULL); } Object->Colors = (GifColorType *)calloc(ColorCount, sizeof(GifColorType)); if (Object->Colors == (GifColorType *)NULL) { free(Object); return ((ColorMapObject *)NULL); } Object->ColorCount = ColorCount; Object->BitsPerPixel = GifBitSize(ColorCount); Object->SortFlag = false; if (ColorMap != NULL) { memcpy((char *)Object->Colors, (char *)ColorMap, ColorCount * sizeof(GifColorType)); } return (Object); } /******************************************************************************* Free a color map object *******************************************************************************/ void GifFreeMapObject(ColorMapObject *Object) { if (Object != NULL) { (void)free(Object->Colors); (void)free(Object); } } #ifdef DEBUG void DumpColorMap(ColorMapObject *Object, FILE *fp) { if (Object != NULL) { int i, j, Len = Object->ColorCount; for (i = 0; i < Len; i += 4) { for (j = 0; j < 4 && j < Len; j++) { (void)fprintf(fp, "%3d: %02x %02x %02x ", i + j, Object->Colors[i + j].Red, Object->Colors[i + j].Green, Object->Colors[i + j].Blue); } (void)fprintf(fp, "\n"); } } } #endif /* DEBUG */ /******************************************************************************* Compute the union of two given color maps and return it. If result can't fit into 256 colors, NULL is returned, the allocated union otherwise. ColorIn1 is copied as is to ColorUnion, while colors from ColorIn2 are copied iff they didn't exist before. ColorTransIn2 maps the old ColorIn2 into the ColorUnion color map table./ *******************************************************************************/ ColorMapObject *GifUnionColorMap(const ColorMapObject *ColorIn1, const ColorMapObject *ColorIn2, GifPixelType ColorTransIn2[]) { int i, j, CrntSlot, RoundUpTo, NewGifBitSize; ColorMapObject *ColorUnion; /* * We don't worry about duplicates within either color map; if * the caller wants to resolve those, he can perform unions * with an empty color map. */ /* Allocate table which will hold the result for sure. */ ColorUnion = GifMakeMapObject( MAX(ColorIn1->ColorCount, ColorIn2->ColorCount) * 2, NULL); if (ColorUnion == NULL) { return (NULL); } /* * Copy ColorIn1 to ColorUnion. */ for (i = 0; i < ColorIn1->ColorCount; i++) { ColorUnion->Colors[i] = ColorIn1->Colors[i]; } CrntSlot = ColorIn1->ColorCount; /* * Potentially obnoxious hack: * * Back CrntSlot down past all contiguous {0, 0, 0} slots at the end * of table 1. This is very useful if your display is limited to * 16 colors. */ while (ColorIn1->Colors[CrntSlot - 1].Red == 0 && ColorIn1->Colors[CrntSlot - 1].Green == 0 && ColorIn1->Colors[CrntSlot - 1].Blue == 0) { CrntSlot--; } /* Copy ColorIn2 to ColorUnion (use old colors if they exist): */ for (i = 0; i < ColorIn2->ColorCount && CrntSlot <= 256; i++) { /* Let's see if this color already exists: */ for (j = 0; j < ColorIn1->ColorCount; j++) { if (memcmp(&ColorIn1->Colors[j], &ColorIn2->Colors[i], sizeof(GifColorType)) == 0) { break; } } if (j < ColorIn1->ColorCount) { ColorTransIn2[i] = j; /* color exists in Color1 */ } else { /* Color is new - copy it to a new slot: */ ColorUnion->Colors[CrntSlot] = ColorIn2->Colors[i]; ColorTransIn2[i] = CrntSlot++; } } if (CrntSlot > 256) { GifFreeMapObject(ColorUnion); return ((ColorMapObject *)NULL); } NewGifBitSize = GifBitSize(CrntSlot); RoundUpTo = (1 << NewGifBitSize); if (RoundUpTo != ColorUnion->ColorCount) { GifColorType *Map = ColorUnion->Colors; /* * Zero out slots up to next power of 2. * We know these slots exist because of the way ColorUnion's * start dimension was computed. */ for (j = CrntSlot; j < RoundUpTo; j++) { Map[j].Red = Map[j].Green = Map[j].Blue = 0; } /* perhaps we can shrink the map? */ if (RoundUpTo < ColorUnion->ColorCount) { GifColorType *new_map = (GifColorType *)reallocarray( Map, RoundUpTo, sizeof(GifColorType)); if (new_map == NULL) { GifFreeMapObject(ColorUnion); return ((ColorMapObject *)NULL); } ColorUnion->Colors = new_map; } } ColorUnion->ColorCount = RoundUpTo; ColorUnion->BitsPerPixel = NewGifBitSize; return (ColorUnion); } /******************************************************************************* Apply a given color translation to the raster bits of an image *******************************************************************************/ void GifApplyTranslation(SavedImage *Image, const GifPixelType Translation[]) { int i; int RasterSize = Image->ImageDesc.Height * Image->ImageDesc.Width; for (i = 0; i < RasterSize; i++) { Image->RasterBits[i] = Translation[Image->RasterBits[i]]; } } /****************************************************************************** Extension record functions ******************************************************************************/ int GifAddExtensionBlock(int *ExtensionBlockCount, ExtensionBlock **ExtensionBlocks, int Function, unsigned int Len, unsigned char ExtData[]) { ExtensionBlock *ep; if (*ExtensionBlocks == NULL) { *ExtensionBlocks = (ExtensionBlock *)malloc(sizeof(ExtensionBlock)); } else { ExtensionBlock *ep_new = (ExtensionBlock *)reallocarray( *ExtensionBlocks, (*ExtensionBlockCount + 1), sizeof(ExtensionBlock)); if (ep_new == NULL) { return (GIF_ERROR); } *ExtensionBlocks = ep_new; } if (*ExtensionBlocks == NULL) { return (GIF_ERROR); } ep = &(*ExtensionBlocks)[(*ExtensionBlockCount)++]; ep->Function = Function; ep->ByteCount = Len; ep->Bytes = (GifByteType *)malloc(ep->ByteCount); if (ep->Bytes == NULL) { return (GIF_ERROR); } if (ExtData != NULL) { memcpy(ep->Bytes, ExtData, Len); } return (GIF_OK); } void GifFreeExtensions(int *ExtensionBlockCount, ExtensionBlock **ExtensionBlocks) { ExtensionBlock *ep; if (*ExtensionBlocks == NULL) { return; } for (ep = *ExtensionBlocks; ep < (*ExtensionBlocks + *ExtensionBlockCount); ep++) { (void)free((char *)ep->Bytes); } (void)free((char *)*ExtensionBlocks); *ExtensionBlocks = NULL; *ExtensionBlockCount = 0; } /****************************************************************************** Image block allocation functions ******************************************************************************/ /* Private Function: * Frees the last image in the GifFile->SavedImages array */ void FreeLastSavedImage(GifFileType *GifFile) { SavedImage *sp; if ((GifFile == NULL) || (GifFile->SavedImages == NULL)) { return; } /* Remove one SavedImage from the GifFile */ GifFile->ImageCount--; sp = &GifFile->SavedImages[GifFile->ImageCount]; /* Deallocate its Colormap */ if (sp->ImageDesc.ColorMap != NULL) { GifFreeMapObject(sp->ImageDesc.ColorMap); sp->ImageDesc.ColorMap = NULL; } /* Deallocate the image data */ if (sp->RasterBits != NULL) { free((char *)sp->RasterBits); } /* Deallocate any extensions */ GifFreeExtensions(&sp->ExtensionBlockCount, &sp->ExtensionBlocks); /*** FIXME: We could realloc the GifFile->SavedImages structure but is * there a point to it? Saves some memory but we'd have to do it every * time. If this is used in GifFreeSavedImages then it would be * inefficient (The whole array is going to be deallocated.) If we just * use it when we want to free the last Image it's convenient to do it * here. */ } /* * Append an image block to the SavedImages array */ SavedImage *GifMakeSavedImage(GifFileType *GifFile, const SavedImage *CopyFrom) { // cppcheck-suppress ctunullpointer if (GifFile->SavedImages == NULL) { GifFile->SavedImages = (SavedImage *)malloc(sizeof(SavedImage)); } else { SavedImage *newSavedImages = (SavedImage *)reallocarray( GifFile->SavedImages, (GifFile->ImageCount + 1), sizeof(SavedImage)); if (newSavedImages == NULL) { return ((SavedImage *)NULL); } GifFile->SavedImages = newSavedImages; } if (GifFile->SavedImages == NULL) { return ((SavedImage *)NULL); } else { SavedImage *sp = &GifFile->SavedImages[GifFile->ImageCount++]; if (CopyFrom != NULL) { memcpy((char *)sp, CopyFrom, sizeof(SavedImage)); /* * Make our own allocated copies of the heap fields in * the copied record. This guards against potential * aliasing problems. */ /* first, the local color map */ if (CopyFrom->ImageDesc.ColorMap != NULL) { sp->ImageDesc.ColorMap = GifMakeMapObject( CopyFrom->ImageDesc.ColorMap->ColorCount, CopyFrom->ImageDesc.ColorMap->Colors); if (sp->ImageDesc.ColorMap == NULL) { FreeLastSavedImage(GifFile); return (SavedImage *)(NULL); } } /* next, the raster */ sp->RasterBits = (unsigned char *)reallocarray( NULL, (CopyFrom->ImageDesc.Height * CopyFrom->ImageDesc.Width), sizeof(GifPixelType)); if (sp->RasterBits == NULL) { FreeLastSavedImage(GifFile); return (SavedImage *)(NULL); } memcpy(sp->RasterBits, CopyFrom->RasterBits, sizeof(GifPixelType) * CopyFrom->ImageDesc.Height * CopyFrom->ImageDesc.Width); /* finally, the extension blocks */ if (CopyFrom->ExtensionBlocks != NULL) { sp->ExtensionBlocks = (ExtensionBlock *)reallocarray( NULL, CopyFrom->ExtensionBlockCount, sizeof(ExtensionBlock)); if (sp->ExtensionBlocks == NULL) { FreeLastSavedImage(GifFile); return (SavedImage *)(NULL); } memcpy(sp->ExtensionBlocks, CopyFrom->ExtensionBlocks, sizeof(ExtensionBlock) * CopyFrom->ExtensionBlockCount); } } else { memset((char *)sp, '\0', sizeof(SavedImage)); } return (sp); } } void GifFreeSavedImages(GifFileType *GifFile) { SavedImage *sp; if ((GifFile == NULL) || (GifFile->SavedImages == NULL)) { return; } for (sp = GifFile->SavedImages; sp < GifFile->SavedImages + GifFile->ImageCount; sp++) { if (sp->ImageDesc.ColorMap != NULL) { GifFreeMapObject(sp->ImageDesc.ColorMap); sp->ImageDesc.ColorMap = NULL; } if (sp->RasterBits != NULL) { free((char *)sp->RasterBits); } GifFreeExtensions(&sp->ExtensionBlockCount, &sp->ExtensionBlocks); } free((char *)GifFile->SavedImages); GifFile->SavedImages = NULL; } /* end */ vision-0.19.1/torchvision/csrc/io/image/cpu/giflib/openbsd-reallocarray.c000066400000000000000000000042761466211133600264160ustar00rootroot00000000000000/* * SPDX-FileCopyrightText: Copyright (C) 2008 Otto Moerbeek * SPDX-License-Identifier: MIT */ #include #include #include #include #ifndef SIZE_MAX #define SIZE_MAX UINTPTR_MAX #endif /* * This is sqrt(SIZE_MAX+1), as s1*s2 <= SIZE_MAX * if both s1 < MUL_NO_OVERFLOW and s2 < MUL_NO_OVERFLOW */ #define MUL_NO_OVERFLOW ((size_t)1 << (sizeof(size_t) * 4)) void *openbsd_reallocarray(void *optr, size_t nmemb, size_t size) { if ((nmemb >= MUL_NO_OVERFLOW || size >= MUL_NO_OVERFLOW) && nmemb > 0 && SIZE_MAX / nmemb < size) { errno = ENOMEM; return NULL; } /* * Head off variations in realloc behavior on different * platforms (reported by MarkR ) * * The behaviour of reallocarray is implementation-defined if * nmemb or size is zero. It can return NULL or non-NULL * depending on the platform. * https://www.securecoding.cert.org/confluence/display/c/MEM04-C.Beware+of+zero-lengthallocations * * Here are some extracts from realloc man pages on different platforms. * * void realloc( void memblock, size_t size ); * * Windows: * * If there is not enough available memory to expand the block * to the given size, the original block is left unchanged, * and NULL is returned. If size is zero, then the block * pointed to by memblock is freed; the return value is NULL, * and memblock is left pointing at a freed block. * * OpenBSD: * * If size or nmemb is equal to 0, a unique pointer to an * access protected, zero sized object is returned. Access via * this pointer will generate a SIGSEGV exception. * * Linux: * * If size was equal to 0, either NULL or a pointer suitable * to be passed to free() is returned. * * OS X: * * If size is zero and ptr is not NULL, a new, minimum sized * object is allocated and the original object is freed. * * It looks like images with zero width or height can trigger * this, and fuzzing behaviour will differ by platform, so * fuzzing on one platform may not detect zero-size allocation * problems on other platforms. */ if (size == 0 || nmemb == 0) { return NULL; } return realloc(optr, size * nmemb); } vision-0.19.1/torchvision/csrc/io/image/cpu/read_write_file.cpp000066400000000000000000000061121466211133600245250ustar00rootroot00000000000000#include "read_write_file.h" #include #ifdef _WIN32 #define WIN32_LEAN_AND_MEAN #include #endif namespace vision { namespace image { #ifdef _WIN32 namespace { std::wstring utf8_decode(const std::string& str) { if (str.empty()) { return std::wstring(); } int size_needed = MultiByteToWideChar( CP_UTF8, 0, str.c_str(), static_cast(str.size()), nullptr, 0); TORCH_CHECK(size_needed > 0, "Error converting the content to Unicode"); std::wstring wstrTo(size_needed, 0); MultiByteToWideChar( CP_UTF8, 0, str.c_str(), static_cast(str.size()), &wstrTo[0], size_needed); return wstrTo; } } // namespace #endif torch::Tensor read_file(const std::string& filename) { C10_LOG_API_USAGE_ONCE( "torchvision.csrc.io.image.cpu.read_write_file.read_file"); #ifdef _WIN32 // According to // https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/stat-functions?view=vs-2019, // we should use struct __stat64 and _wstat64 for 64-bit file size on Windows. struct __stat64 stat_buf; auto fileW = utf8_decode(filename); int rc = _wstat64(fileW.c_str(), &stat_buf); #else struct stat stat_buf; int rc = stat(filename.c_str(), &stat_buf); #endif // errno is a variable defined in errno.h TORCH_CHECK( rc == 0, "[Errno ", errno, "] ", strerror(errno), ": '", filename, "'"); int64_t size = stat_buf.st_size; TORCH_CHECK(size > 0, "Expected a non empty file"); #ifdef _WIN32 // TODO: Once torch::from_file handles UTF-8 paths correctly, we should move // back to use the following implementation since it uses file mapping. // auto data = // torch::from_file(filename, /*shared=*/false, /*size=*/size, // torch::kU8).clone() FILE* infile = _wfopen(fileW.c_str(), L"rb"); TORCH_CHECK(infile != nullptr, "Error opening input file"); auto data = torch::empty({size}, torch::kU8); auto dataBytes = data.data_ptr(); fread(dataBytes, sizeof(uint8_t), size, infile); fclose(infile); #else auto data = torch::from_file(filename, /*shared=*/false, /*size=*/size, torch::kU8); #endif return data; } void write_file(const std::string& filename, torch::Tensor& data) { C10_LOG_API_USAGE_ONCE( "torchvision.csrc.io.image.cpu.read_write_file.write_file"); // Check that the input tensor is on CPU TORCH_CHECK(data.device() == torch::kCPU, "Input tensor should be on CPU"); // Check that the input tensor dtype is uint8 TORCH_CHECK(data.dtype() == torch::kU8, "Input tensor dtype should be uint8"); // Check that the input tensor is 3-dimensional TORCH_CHECK(data.dim() == 1, "Input data should be a 1-dimensional tensor"); auto fileBytes = data.data_ptr(); auto fileCStr = filename.c_str(); #ifdef _WIN32 auto fileW = utf8_decode(filename); FILE* outfile = _wfopen(fileW.c_str(), L"wb"); #else FILE* outfile = fopen(fileCStr, "wb"); #endif TORCH_CHECK(outfile != nullptr, "Error opening output file"); fwrite(fileBytes, sizeof(uint8_t), data.numel(), outfile); fclose(outfile); } } // namespace image } // namespace vision vision-0.19.1/torchvision/csrc/io/image/cpu/read_write_file.h000066400000000000000000000004121466211133600241670ustar00rootroot00000000000000#pragma once #include namespace vision { namespace image { C10_EXPORT torch::Tensor read_file(const std::string& filename); C10_EXPORT void write_file(const std::string& filename, torch::Tensor& data); } // namespace image } // namespace vision vision-0.19.1/torchvision/csrc/io/image/cuda/000077500000000000000000000000001466211133600210225ustar00rootroot00000000000000vision-0.19.1/torchvision/csrc/io/image/cuda/decode_jpeg_cuda.cpp000066400000000000000000000133121466211133600247520ustar00rootroot00000000000000#include "encode_decode_jpegs_cuda.h" #include #if NVJPEG_FOUND #include #include #include #endif #include namespace vision { namespace image { #if !NVJPEG_FOUND torch::Tensor decode_jpeg_cuda( const torch::Tensor& data, ImageReadMode mode, torch::Device device) { TORCH_CHECK( false, "decode_jpeg_cuda: torchvision not compiled with nvJPEG support"); } #else namespace { static nvjpegHandle_t nvjpeg_handle = nullptr; } torch::Tensor decode_jpeg_cuda( const torch::Tensor& data, ImageReadMode mode, torch::Device device) { C10_LOG_API_USAGE_ONCE( "torchvision.csrc.io.image.cuda.decode_jpeg_cuda.decode_jpeg_cuda"); TORCH_CHECK(data.dtype() == torch::kU8, "Expected a torch.uint8 tensor"); TORCH_CHECK( !data.is_cuda(), "The input tensor must be on CPU when decoding with nvjpeg") TORCH_CHECK( data.dim() == 1 && data.numel() > 0, "Expected a non empty 1-dimensional tensor"); TORCH_CHECK(device.is_cuda(), "Expected a cuda device") int major_version; int minor_version; nvjpegStatus_t get_major_property_status = nvjpegGetProperty(MAJOR_VERSION, &major_version); nvjpegStatus_t get_minor_property_status = nvjpegGetProperty(MINOR_VERSION, &minor_version); TORCH_CHECK( get_major_property_status == NVJPEG_STATUS_SUCCESS, "nvjpegGetProperty failed: ", get_major_property_status); TORCH_CHECK( get_minor_property_status == NVJPEG_STATUS_SUCCESS, "nvjpegGetProperty failed: ", get_minor_property_status); if ((major_version < 11) || ((major_version == 11) && (minor_version < 6))) { TORCH_WARN_ONCE( "There is a memory leak issue in the nvjpeg library for CUDA versions < 11.6. " "Make sure to rely on CUDA 11.6 or above before using decode_jpeg(..., device='cuda')."); } at::cuda::CUDAGuard device_guard(device); // Create global nvJPEG handle static std::once_flag nvjpeg_handle_creation_flag; std::call_once(nvjpeg_handle_creation_flag, []() { if (nvjpeg_handle == nullptr) { nvjpegStatus_t create_status = nvjpegCreateSimple(&nvjpeg_handle); if (create_status != NVJPEG_STATUS_SUCCESS) { // Reset handle so that one can still call the function again in the // same process if there was a failure free(nvjpeg_handle); nvjpeg_handle = nullptr; } TORCH_CHECK( create_status == NVJPEG_STATUS_SUCCESS, "nvjpegCreateSimple failed: ", create_status); } }); // Create the jpeg state nvjpegJpegState_t jpeg_state; nvjpegStatus_t state_status = nvjpegJpegStateCreate(nvjpeg_handle, &jpeg_state); TORCH_CHECK( state_status == NVJPEG_STATUS_SUCCESS, "nvjpegJpegStateCreate failed: ", state_status); auto datap = data.data_ptr(); // Get the image information int num_channels; nvjpegChromaSubsampling_t subsampling; int widths[NVJPEG_MAX_COMPONENT]; int heights[NVJPEG_MAX_COMPONENT]; nvjpegStatus_t info_status = nvjpegGetImageInfo( nvjpeg_handle, datap, data.numel(), &num_channels, &subsampling, widths, heights); if (info_status != NVJPEG_STATUS_SUCCESS) { nvjpegJpegStateDestroy(jpeg_state); TORCH_CHECK(false, "nvjpegGetImageInfo failed: ", info_status); } if (subsampling == NVJPEG_CSS_UNKNOWN) { nvjpegJpegStateDestroy(jpeg_state); TORCH_CHECK(false, "Unknown NVJPEG chroma subsampling"); } int width = widths[0]; int height = heights[0]; nvjpegOutputFormat_t ouput_format; int num_channels_output; switch (mode) { case IMAGE_READ_MODE_UNCHANGED: num_channels_output = num_channels; // For some reason, setting output_format to NVJPEG_OUTPUT_UNCHANGED will // not properly decode RGB images (it's fine for grayscale), so we set // output_format manually here if (num_channels == 1) { ouput_format = NVJPEG_OUTPUT_Y; } else if (num_channels == 3) { ouput_format = NVJPEG_OUTPUT_RGB; } else { nvjpegJpegStateDestroy(jpeg_state); TORCH_CHECK( false, "When mode is UNCHANGED, only 1 or 3 input channels are allowed."); } break; case IMAGE_READ_MODE_GRAY: ouput_format = NVJPEG_OUTPUT_Y; num_channels_output = 1; break; case IMAGE_READ_MODE_RGB: ouput_format = NVJPEG_OUTPUT_RGB; num_channels_output = 3; break; default: nvjpegJpegStateDestroy(jpeg_state); TORCH_CHECK( false, "The provided mode is not supported for JPEG decoding on GPU"); } auto out_tensor = torch::empty( {int64_t(num_channels_output), int64_t(height), int64_t(width)}, torch::dtype(torch::kU8).device(device)); // nvjpegImage_t is a struct with // - an array of pointers to each channel // - the pitch for each channel // which must be filled in manually nvjpegImage_t out_image; for (int c = 0; c < num_channels_output; c++) { out_image.channel[c] = out_tensor[c].data_ptr(); out_image.pitch[c] = width; } for (int c = num_channels_output; c < NVJPEG_MAX_COMPONENT; c++) { out_image.channel[c] = nullptr; out_image.pitch[c] = 0; } cudaStream_t stream = at::cuda::getCurrentCUDAStream(device.index()); nvjpegStatus_t decode_status = nvjpegDecode( nvjpeg_handle, jpeg_state, datap, data.numel(), ouput_format, &out_image, stream); nvjpegJpegStateDestroy(jpeg_state); TORCH_CHECK( decode_status == NVJPEG_STATUS_SUCCESS, "nvjpegDecode failed: ", decode_status); return out_tensor; } #endif // NVJPEG_FOUND } // namespace image } // namespace vision vision-0.19.1/torchvision/csrc/io/image/cuda/encode_decode_jpegs_cuda.h000066400000000000000000000007021466211133600261160ustar00rootroot00000000000000#pragma once #include #include "../image_read_mode.h" #include "encode_jpegs_cuda.h" namespace vision { namespace image { C10_EXPORT torch::Tensor decode_jpeg_cuda( const torch::Tensor& data, ImageReadMode mode, torch::Device device); C10_EXPORT std::vector encode_jpegs_cuda( const std::vector& decoded_images, const int64_t quality); } // namespace image } // namespace vision vision-0.19.1/torchvision/csrc/io/image/cuda/encode_jpegs_cuda.cpp000066400000000000000000000224621466211133600251550ustar00rootroot00000000000000#include "encode_jpegs_cuda.h" #if !NVJPEG_FOUND namespace vision { namespace image { std::vector encode_jpegs_cuda( const std::vector& decoded_images, const int64_t quality) { TORCH_CHECK( false, "encode_jpegs_cuda: torchvision not compiled with nvJPEG support"); } } // namespace image } // namespace vision #else #include #include #include #include #include #include #include #include #include "c10/core/ScalarType.h" namespace vision { namespace image { // We use global variables to cache the encoder and decoder instances and // reuse them across calls to the corresponding pytorch functions std::mutex encoderMutex; std::unique_ptr cudaJpegEncoder; std::vector encode_jpegs_cuda( const std::vector& decoded_images, const int64_t quality) { C10_LOG_API_USAGE_ONCE( "torchvision.csrc.io.image.cuda.encode_jpegs_cuda.encode_jpegs_cuda"); // Some nvjpeg structures are not thread safe so we're keeping it single // threaded for now. In the future this may be an opportunity to unlock // further speedups std::lock_guard lock(encoderMutex); TORCH_CHECK(decoded_images.size() > 0, "Empty input tensor list"); torch::Device device = decoded_images[0].device(); at::cuda::CUDAGuard device_guard(device); // lazy init of the encoder class // the encoder object holds on to a lot of state and is expensive to create, // so we reuse it across calls. NB: the cached structures are device specific // and cannot be reused across devices if (cudaJpegEncoder == nullptr || device != cudaJpegEncoder->target_device) { if (cudaJpegEncoder != nullptr) delete cudaJpegEncoder.release(); cudaJpegEncoder = std::make_unique(device); // Unfortunately, we cannot rely on the smart pointer releasing the encoder // object correctly upon program exit. This is because, when cudaJpegEncoder // gets destroyed, the CUDA runtime may already be shut down, rendering all // destroy* calls in the encoder destructor invalid. Instead, we use an // atexit hook which executes after main() finishes, but hopefully before // CUDA shuts down when the program exits. If CUDA is already shut down the // destructor will detect this and will not attempt to destroy any encoder // structures. std::atexit([]() { delete cudaJpegEncoder.release(); }); } std::vector contig_images; contig_images.reserve(decoded_images.size()); for (const auto& image : decoded_images) { TORCH_CHECK( image.dtype() == torch::kU8, "Input tensor dtype should be uint8"); TORCH_CHECK( image.device() == device, "All input tensors must be on the same CUDA device when encoding with nvjpeg") TORCH_CHECK( image.dim() == 3 && image.numel() > 0, "Input data should be a 3-dimensional tensor"); TORCH_CHECK( image.size(0) == 3, "The number of channels should be 3, got: ", image.size(0)); // nvjpeg requires images to be contiguous if (image.is_contiguous()) { contig_images.push_back(image); } else { contig_images.push_back(image.contiguous()); } } cudaJpegEncoder->set_quality(quality); std::vector encoded_images; at::cuda::CUDAEvent event; event.record(cudaJpegEncoder->stream); for (const auto& image : contig_images) { auto encoded_image = cudaJpegEncoder->encode_jpeg(image); encoded_images.push_back(encoded_image); } // We use a dedicated stream to do the encoding and even though the results // may be ready on that stream we cannot assume that they are also available // on the current stream of the calling context when this function returns. We // use a blocking event to ensure that this is indeed the case. Crucially, we // do not want to block the host at this particular point // (which is what cudaStreamSynchronize would do.) Events allow us to // synchronize the streams without blocking the host. event.block(at::cuda::getCurrentCUDAStream( cudaJpegEncoder->original_device.has_index() ? cudaJpegEncoder->original_device.index() : 0)); return encoded_images; } CUDAJpegEncoder::CUDAJpegEncoder(const torch::Device& target_device) : original_device{torch::kCUDA, torch::cuda::current_device()}, target_device{target_device}, stream{ target_device.has_index() ? at::cuda::getStreamFromPool(false, target_device.index()) : at::cuda::getStreamFromPool(false)} { nvjpegStatus_t status; status = nvjpegCreateSimple(&nvjpeg_handle); TORCH_CHECK( status == NVJPEG_STATUS_SUCCESS, "Failed to create nvjpeg handle: ", status); status = nvjpegEncoderStateCreate(nvjpeg_handle, &nv_enc_state, stream); TORCH_CHECK( status == NVJPEG_STATUS_SUCCESS, "Failed to create nvjpeg encoder state: ", status); status = nvjpegEncoderParamsCreate(nvjpeg_handle, &nv_enc_params, stream); TORCH_CHECK( status == NVJPEG_STATUS_SUCCESS, "Failed to create nvjpeg encoder params: ", status); } CUDAJpegEncoder::~CUDAJpegEncoder() { /* The below code works on Mac and Linux, but fails on Windows. This is because on Windows, the atexit hook which calls this destructor executes after cuda is already shut down causing SIGSEGV. We do not have a solution to this problem at the moment, so we'll just leak the libnvjpeg & cuda variables for the time being and hope that the CUDA runtime handles cleanup for us. Please send a PR if you have a solution for this problem. */ // // We run cudaGetDeviceCount as a dummy to test if the CUDA runtime is // still // // initialized. If it is not, we can skip the rest of this function as it // is // // unsafe to execute. // int deviceCount = 0; // cudaError_t error = cudaGetDeviceCount(&deviceCount); // if (error != cudaSuccess) // return; // CUDA runtime has already shut down. There's nothing we can do // // now. // nvjpegStatus_t status; // status = nvjpegEncoderParamsDestroy(nv_enc_params); // TORCH_CHECK( // status == NVJPEG_STATUS_SUCCESS, // "Failed to destroy nvjpeg encoder params: ", // status); // status = nvjpegEncoderStateDestroy(nv_enc_state); // TORCH_CHECK( // status == NVJPEG_STATUS_SUCCESS, // "Failed to destroy nvjpeg encoder state: ", // status); // cudaStreamSynchronize(stream); // status = nvjpegDestroy(nvjpeg_handle); // TORCH_CHECK( // status == NVJPEG_STATUS_SUCCESS, "nvjpegDestroy failed: ", status); } torch::Tensor CUDAJpegEncoder::encode_jpeg(const torch::Tensor& src_image) { int channels = src_image.size(0); int height = src_image.size(1); int width = src_image.size(2); nvjpegStatus_t status; cudaError_t cudaStatus; status = nvjpegEncoderParamsSetSamplingFactors( nv_enc_params, NVJPEG_CSS_444, stream); TORCH_CHECK( status == NVJPEG_STATUS_SUCCESS, "Failed to set nvjpeg encoder params sampling factors: ", status); nvjpegImage_t target_image; for (int c = 0; c < channels; c++) { target_image.channel[c] = src_image[c].data_ptr(); // this is why we need contiguous tensors target_image.pitch[c] = width; } for (int c = channels; c < NVJPEG_MAX_COMPONENT; c++) { target_image.channel[c] = nullptr; target_image.pitch[c] = 0; } // Encode the image status = nvjpegEncodeImage( nvjpeg_handle, nv_enc_state, nv_enc_params, &target_image, NVJPEG_INPUT_RGB, width, height, stream); TORCH_CHECK( status == NVJPEG_STATUS_SUCCESS, "image encoding failed: ", status); // Retrieve length of the encoded image size_t length; status = nvjpegEncodeRetrieveBitstreamDevice( nvjpeg_handle, nv_enc_state, NULL, &length, stream); TORCH_CHECK( status == NVJPEG_STATUS_SUCCESS, "Failed to retrieve encoded image stream state: ", status); // Synchronize the stream to ensure that the encoded image is ready cudaStatus = cudaStreamSynchronize(stream); TORCH_CHECK(cudaStatus == cudaSuccess, "CUDA ERROR: ", cudaStatus); // Reserve buffer for the encoded image torch::Tensor encoded_image = torch::empty( {static_cast(length)}, torch::TensorOptions() .dtype(torch::kByte) .layout(torch::kStrided) .device(target_device) .requires_grad(false)); cudaStatus = cudaStreamSynchronize(stream); TORCH_CHECK(cudaStatus == cudaSuccess, "CUDA ERROR: ", cudaStatus); // Retrieve the encoded image status = nvjpegEncodeRetrieveBitstreamDevice( nvjpeg_handle, nv_enc_state, encoded_image.data_ptr(), &length, 0); TORCH_CHECK( status == NVJPEG_STATUS_SUCCESS, "Failed to retrieve encoded image: ", status); return encoded_image; } void CUDAJpegEncoder::set_quality(const int64_t quality) { nvjpegStatus_t paramsQualityStatus = nvjpegEncoderParamsSetQuality(nv_enc_params, quality, stream); TORCH_CHECK( paramsQualityStatus == NVJPEG_STATUS_SUCCESS, "Failed to set nvjpeg encoder params quality: ", paramsQualityStatus); } } // namespace image } // namespace vision #endif // NVJPEG_FOUND vision-0.19.1/torchvision/csrc/io/image/cuda/encode_jpegs_cuda.h000066400000000000000000000012701466211133600246140ustar00rootroot00000000000000#pragma once #include #include #if NVJPEG_FOUND #include #include #include namespace vision { namespace image { class CUDAJpegEncoder { public: CUDAJpegEncoder(const torch::Device& device); ~CUDAJpegEncoder(); torch::Tensor encode_jpeg(const torch::Tensor& src_image); void set_quality(const int64_t quality); const torch::Device original_device; const torch::Device target_device; const c10::cuda::CUDAStream stream; protected: nvjpegEncoderState_t nv_enc_state; nvjpegEncoderParams_t nv_enc_params; nvjpegHandle_t nvjpeg_handle; }; } // namespace image } // namespace vision #endif vision-0.19.1/torchvision/csrc/io/image/image.cpp000066400000000000000000000024071466211133600216770ustar00rootroot00000000000000#include "image.h" #include // If we are in a Windows environment, we need to define // initialization functions for the _custom_ops extension #ifdef _WIN32 void* PyInit_image(void) { return nullptr; } #endif namespace vision { namespace image { static auto registry = torch::RegisterOperators() .op("image::decode_gif", &decode_gif) .op("image::decode_png(Tensor data, int mode, bool allow_16_bits = False, bool apply_exif_orientation=False) -> Tensor", &decode_png) .op("image::encode_png", &encode_png) .op("image::decode_jpeg(Tensor data, int mode, bool apply_exif_orientation=False) -> Tensor", &decode_jpeg) .op("image::encode_jpeg", &encode_jpeg) .op("image::read_file", &read_file) .op("image::write_file", &write_file) .op("image::decode_image(Tensor data, int mode, bool apply_exif_orientation=False) -> Tensor", &decode_image) .op("image::decode_jpeg_cuda", &decode_jpeg_cuda) .op("image::encode_jpegs_cuda", &encode_jpegs_cuda) .op("image::_jpeg_version", &_jpeg_version) .op("image::_is_compiled_against_turbo", &_is_compiled_against_turbo); } // namespace image } // namespace vision vision-0.19.1/torchvision/csrc/io/image/image.h000066400000000000000000000004061466211133600213410ustar00rootroot00000000000000#pragma once #include "cpu/decode_gif.h" #include "cpu/decode_image.h" #include "cpu/decode_jpeg.h" #include "cpu/decode_png.h" #include "cpu/encode_jpeg.h" #include "cpu/encode_png.h" #include "cpu/read_write_file.h" #include "cuda/encode_decode_jpegs_cuda.h" vision-0.19.1/torchvision/csrc/io/image/image_read_mode.h000066400000000000000000000007051466211133600233420ustar00rootroot00000000000000#pragma once #include namespace vision { namespace image { /* Should be kept in-sync with Python ImageReadMode enum */ using ImageReadMode = int64_t; const ImageReadMode IMAGE_READ_MODE_UNCHANGED = 0; const ImageReadMode IMAGE_READ_MODE_GRAY = 1; const ImageReadMode IMAGE_READ_MODE_GRAY_ALPHA = 2; const ImageReadMode IMAGE_READ_MODE_RGB = 3; const ImageReadMode IMAGE_READ_MODE_RGB_ALPHA = 4; } // namespace image } // namespace vision vision-0.19.1/torchvision/csrc/io/video/000077500000000000000000000000001466211133600201325ustar00rootroot00000000000000vision-0.19.1/torchvision/csrc/io/video/video.cpp000066400000000000000000000302631466211133600217500ustar00rootroot00000000000000#include "video.h" #include using namespace ffmpeg; namespace vision { namespace video { namespace { const size_t decoderTimeoutMs = 600000; const AVPixelFormat defaultVideoPixelFormat = AV_PIX_FMT_RGB24; // returns number of written bytes template size_t fillTensorList(DecoderOutputMessage& msgs, torch::Tensor& frame) { const auto& msg = msgs; T* frameData = frame.numel() > 0 ? frame.data_ptr() : nullptr; if (frameData) { auto sizeInBytes = msg.payload->length(); memcpy(frameData, msg.payload->data(), sizeInBytes); } return sizeof(T); } size_t fillVideoTensor(DecoderOutputMessage& msgs, torch::Tensor& videoFrame) { return fillTensorList(msgs, videoFrame); } size_t fillAudioTensor(DecoderOutputMessage& msgs, torch::Tensor& audioFrame) { return fillTensorList(msgs, audioFrame); } std::array, 4>::const_iterator _parse_type(const std::string& stream_string) { static const std::array, 4> types = {{ {"video", TYPE_VIDEO}, {"audio", TYPE_AUDIO}, {"subtitle", TYPE_SUBTITLE}, {"cc", TYPE_CC}, }}; auto device = std::find_if( types.begin(), types.end(), [stream_string](const std::pair& p) { return p.first == stream_string; }); if (device != types.end()) { return device; } TORCH_CHECK( false, "Expected one of [audio, video, subtitle, cc] ", stream_string); } std::string parse_type_to_string(const std::string& stream_string) { auto device = _parse_type(stream_string); return device->first; } MediaType parse_type_to_mt(const std::string& stream_string) { auto device = _parse_type(stream_string); return device->second; } std::tuple _parseStream(const std::string& streamString) { TORCH_CHECK(!streamString.empty(), "Stream string must not be empty"); static const std::regex regex("([a-zA-Z_]+)(?::([1-9]\\d*|0))?"); std::smatch match; TORCH_CHECK( std::regex_match(streamString, match, regex), "Invalid stream string: '", streamString, "'"); std::string type_ = "video"; type_ = parse_type_to_string(match[1].str()); long index_ = -1; if (match[2].matched) { try { index_ = std::stoi(match[2].str()); } catch (const std::exception&) { TORCH_CHECK( false, "Could not parse device index '", match[2].str(), "' in device string '", streamString, "'"); } } return std::make_tuple(type_, index_); } } // namespace void Video::_getDecoderParams( double videoStartS, int64_t getPtsOnly, std::string stream, long stream_id = -1, bool fastSeek = true, bool all_streams = false, int64_t num_threads = 1, double seekFrameMarginUs = 10) { int64_t videoStartUs = int64_t(videoStartS * 1e6); params.timeoutMs = decoderTimeoutMs; params.startOffset = videoStartUs; params.seekAccuracy = seekFrameMarginUs; params.fastSeek = fastSeek; params.headerOnly = false; params.numThreads = num_threads; params.preventStaleness = false; // not sure what this is about if (all_streams == true) { MediaFormat format; format.stream = -2; format.type = TYPE_AUDIO; params.formats.insert(format); format.type = TYPE_VIDEO; format.stream = -2; format.format.video.width = 0; format.format.video.height = 0; format.format.video.cropImage = 0; format.format.video.format = defaultVideoPixelFormat; params.formats.insert(format); format.type = TYPE_SUBTITLE; format.stream = -2; params.formats.insert(format); format.type = TYPE_CC; format.stream = -2; params.formats.insert(format); } else { // parse stream type MediaType stream_type = parse_type_to_mt(stream); // TODO: reset params.formats std::set formats; params.formats = formats; // Define new format MediaFormat format; format.type = stream_type; format.stream = stream_id; if (stream_type == TYPE_VIDEO) { format.format.video.width = 0; format.format.video.height = 0; format.format.video.cropImage = 0; format.format.video.format = defaultVideoPixelFormat; } params.formats.insert(format); } } // _get decoder params void Video::initFromFile( std::string videoPath, std::string stream, int64_t numThreads) { TORCH_CHECK(!initialized, "Video object can only be initialized once"); initialized = true; params.uri = videoPath; _init(stream, numThreads); } void Video::initFromMemory( torch::Tensor videoTensor, std::string stream, int64_t numThreads) { TORCH_CHECK(!initialized, "Video object can only be initialized once"); initialized = true; callback = MemoryBuffer::getCallback( videoTensor.data_ptr(), videoTensor.size(0)); _init(stream, numThreads); } void Video::_init(std::string stream, int64_t numThreads) { // set number of threads global numThreads_ = numThreads; // parse stream information current_stream = _parseStream(stream); // note that in the initial call we want to get all streams _getDecoderParams( 0, // video start 0, // headerOnly std::get<0>(current_stream), // stream info - remove that long(-1), // stream_id parsed from info above change to -2 false, // fastseek: we're using the default param here true, // read all streams numThreads_ // global number of Threads for decoding ); std::string logMessage, logType; // locals std::vector audioFPS, videoFPS; std::vector audioDuration, videoDuration, ccDuration, subsDuration; std::vector audioTB, videoTB, ccTB, subsTB; c10::Dict> audioMetadata; c10::Dict> videoMetadata; c10::Dict> ccMetadata; c10::Dict> subsMetadata; // callback and metadata defined in struct DecoderInCallback tmp_callback = callback; succeeded = decoder.init(params, std::move(tmp_callback), &metadata); if (succeeded) { for (const auto& header : metadata) { double fps = double(header.fps); double duration = double(header.duration) * 1e-6; // * timeBase; if (header.format.type == TYPE_VIDEO) { videoFPS.push_back(fps); videoDuration.push_back(duration); } else if (header.format.type == TYPE_AUDIO) { audioFPS.push_back(fps); audioDuration.push_back(duration); } else if (header.format.type == TYPE_CC) { ccDuration.push_back(duration); } else if (header.format.type == TYPE_SUBTITLE) { subsDuration.push_back(duration); }; } } // audio audioMetadata.insert("duration", audioDuration); audioMetadata.insert("framerate", audioFPS); // video videoMetadata.insert("duration", videoDuration); videoMetadata.insert("fps", videoFPS); // subs subsMetadata.insert("duration", subsDuration); // cc ccMetadata.insert("duration", ccDuration); // put all to a data streamsMetadata.insert("video", videoMetadata); streamsMetadata.insert("audio", audioMetadata); streamsMetadata.insert("subtitles", subsMetadata); streamsMetadata.insert("cc", ccMetadata); succeeded = setCurrentStream(stream); LOG(INFO) << "\nDecoder inited with: " << succeeded << "\n"; if (std::get<1>(current_stream) != -1) { LOG(INFO) << "Stream index set to " << std::get<1>(current_stream) << ". If you encounter trouble, consider switching it to automatic stream discovery. \n"; } } Video::Video(std::string videoPath, std::string stream, int64_t numThreads) { C10_LOG_API_USAGE_ONCE("torchvision.csrc.io.video.video.Video"); if (!videoPath.empty()) { initFromFile(videoPath, stream, numThreads); } } // video bool Video::setCurrentStream(std::string stream = "video") { TORCH_CHECK(initialized, "Video object has to be initialized first"); if ((!stream.empty()) && (_parseStream(stream) != current_stream)) { current_stream = _parseStream(stream); } double ts = 0; if (seekTS > 0) { ts = seekTS; } _getDecoderParams( ts, // video start 0, // headerOnly std::get<0>(current_stream), // stream long(std::get<1>( current_stream)), // stream_id parsed from info above change to -2 false, // fastseek param set to 0 false by default (changed in seek) false, // read all streams numThreads_ // global number of threads ); // callback and metadata defined in Video.h DecoderInCallback tmp_callback = callback; return (decoder.init(params, std::move(tmp_callback), &metadata)); } std::tuple Video::getCurrentStream() const { TORCH_CHECK(initialized, "Video object has to be initialized first"); return current_stream; } c10::Dict>> Video:: getStreamMetadata() const { TORCH_CHECK(initialized, "Video object has to be initialized first"); return streamsMetadata; } void Video::Seek(double ts, bool fastSeek = false) { TORCH_CHECK(initialized, "Video object has to be initialized first"); // initialize the class variables used for seeking and retrurn _getDecoderParams( ts, // video start 0, // headerOnly std::get<0>(current_stream), // stream long(std::get<1>( current_stream)), // stream_id parsed from info above change to -2 fastSeek, // fastseek false, // read all streams numThreads_ // global number of threads ); // callback and metadata defined in Video.h DecoderInCallback tmp_callback = callback; succeeded = decoder.init(params, std::move(tmp_callback), &metadata); LOG(INFO) << "Decoder init at seek " << succeeded << "\n"; } std::tuple Video::Next() { TORCH_CHECK(initialized, "Video object has to be initialized first"); // if failing to decode simply return a null tensor (note, should we // raise an exception?) double frame_pts_s; torch::Tensor outFrame = torch::zeros({0}, torch::kByte); // decode single frame DecoderOutputMessage out; int64_t res = decoder.decode(&out, decoderTimeoutMs); // if successful if (res == 0) { frame_pts_s = double(double(out.header.pts) * 1e-6); auto header = out.header; const auto& format = header.format; // initialize the output variables based on type if (format.type == TYPE_VIDEO) { // note: this can potentially be optimized // by having the global tensor that we fill at decode time // (would avoid allocations) int outHeight = format.format.video.height; int outWidth = format.format.video.width; int numChannels = 3; outFrame = torch::zeros({outHeight, outWidth, numChannels}, torch::kByte); fillVideoTensor(out, outFrame); outFrame = outFrame.permute({2, 0, 1}); } else if (format.type == TYPE_AUDIO) { int outAudioChannels = format.format.audio.channels; int bytesPerSample = av_get_bytes_per_sample( static_cast(format.format.audio.format)); int frameSizeTotal = out.payload->length(); TORCH_CHECK_EQ(frameSizeTotal % (outAudioChannels * bytesPerSample), 0); int numAudioSamples = frameSizeTotal / (outAudioChannels * bytesPerSample); outFrame = torch::zeros({numAudioSamples, outAudioChannels}, torch::kFloat); fillAudioTensor(out, outFrame); } // currently not supporting other formats (will do soon) out.payload.reset(); } else if (res == ENODATA) { LOG(INFO) << "Decoder ran out of frames (ENODATA)\n"; } else { LOG(ERROR) << "Decoder failed with ERROR_CODE " << res; } return std::make_tuple(outFrame, frame_pts_s); } static auto registerVideo = torch::class_
  • :cf2*:e`ǩbWo!vMtDԘNodd&i407O**&Ǿ;i1ԧvN]O(H1\c- E`|D@^{}TM-^Ѽ1(w/ YκW4mzl@|tDAMUI7Z+@CA #H2[(*Wy%i*Qn H߻+)nٵeqT8cn6YYj4Lbe'*/6 Ji:OpA~g{e}?O?qN4\CerWTh!* P<#<^>YˇvͶޯ1uQNQSWaI[3 $dx}\yϊn2c Gid=ӫ)a{m] #1:#ږH.4)Di}Gs' t|u%mؤ%++*Y }}?>\”̧xHƶs[~N)IY6Υ̰-q1|p 'rȕ4ZmgHq>!tO[[|\~aB\RV˩ ۴ .$|XX7W%ml!%ɗtN7`"Œg]ae_[9(D]NP|_ Vsuμ}}>}}<2DxCm?Z.JG .`THDgDijiI ЁѮQMep!dZiٕP (q쁬CK30$FotuyW ɤwGG+OڕLHryYKk\B8sKVepDġa<,;y_ߌM.ܻ2OPu)R&W޺=@wy0c[Axr~U@=H*CsMWcygLqj16<$?a͹Y;}L>\~U#.*"=H1/.+8M;@27?r4Vml>ʿ*;"W]%%")vu_"YؗiΦJwzJȟW~^췏e*vs S ޙΨzX_z?_8..He*OdE|/>kƴIyAYD|'LI3W.w'+?Hy5ъNSط $s⧀g+^GL`Q#P2YQo+qz)+kO]P;7AÌ䲐 y`T8_(ŷ/.j/J5*[떧F)doݻt}_Mf{' UN~Yu4Su8鮑|pÏϗ>lԨ̠%@iB_&:B8RUկvJdI`=*퍔ޞ&qpykV8b5Aϴ*ExrG[mU$Ap܏݇~(I"LÃ&ra6s^<#; -7RwøL-#1o^4t؅'Y2R E4&Rxg&#mm06h4Dn3Ļ2ex9JY_⣯g3;6p쒿65|;)_ iLUYbU?hѳԋ770tGh6#&`IYqVu"P!ԭm}Ps~zDq55-ƦIa6eLO r&\~VtKI\u.,&@8>6 >9Gu ʼ;@ns"\*^ ZZhbJI̭*ʟ3٫WCaʢS.3h&8ٯ 4NV6e[ퟟe˩4r=cBOXE;&?>bi`đ {N^Z~{yi+F;V EqHH٦(ٰr,2jnʨ)sw9Vj{ u'd. CO0ИM6}$ʰ"++KZT*˧)s$]Gm5q]h"Sϴ*ZMYM3h$zٞ(Cf̿5LUd׭ވ 6}l?6a*R%]+[ 4SVޒZ],KͺO\2fjE>KP&^{u*-2\/?#Rc7\yvOTeBq7 (dBAIUbn'|䞷v/oSuŒx ]j>ta0ۯORf2a)iD/n`GyeŏϼgʓfeɅg`FGn0Πz%кWs 腞-*-cŖɆٝZXӦO$r/Q.wKtj}`TYd0֐VO\E\w\|R|ǫᬧ:254,OTd͸)'iz9OuWR6mC-S:-(YJ#=($1{Ȝ` [CvegYS2 DneNf;Jœ:9_>/) {'UDZO(CR2a1j L5.8^5 Լ!qMJyu(r6#.Ptz%.>ےĸJ d6Tѽ,D8 yIfj.11\&k'CT1j5LEZWM|Dn?ϊކ~~`uNbUyۗ53 E7r9n yr?"RN_Ѳ%,:ߴV>Wqo^[<]$Y ,HRI1Xe'Zw5Sb1dHJ8oPw;>''rkQ2qflBzuɔoXmƚm+F܌olIg"״pOtɽZuIy$<KN$ہ!/Mfή˾x^OSS'55$Wnz]/%Z\_2OVXˏo4"8±-WZM3S3ve=omYբ Ixp\vٗ, 'IsxF:6&kçRVT Qj%)U˭J!YP*U;:Nݙm} YYY:eܞct8~i9jd]*K-pXʡ({2<[^>9W˫ jZ n0AH~顠8cKYЍ<κ&[ߪy̠R[yMyNE,hT/ ?HNK[mÃU ؊R~E]{/*"@mNDyox]U:Uo"E> a4lI>”CoP4M%D;dADTD[ЈQ6uiDyddJ?XH/VOGL9]SQM?Sq>d[BOVF]KRX,o, 5C5u敦%}2!? #sM۽M@li\D幆91$Y ҌCH{S'"$"@7VH02vQאĒM0>LZ̻M*_H:A:Pj\Pޭ) beI!*V]-A?­3q\tƷYB[NL 86oO&飄᯹>|7WPo tIg16djEwL(iL&ʔ:zwΫD2\6R|3麻hb~Uə̸ u3?Qr˦}l}Ԝ)B,IJNQᗳ]տ Nem9T,m(ojU3kJg-Ņ.z>m>RYJV>P=Y-NiQ*rR#7UezGuIgzraU!bl7@ߌYV*'hJfߘD$~ hGh8لýfo6䒷PM!) 鏖rs JR׬z\L]#q:>h..\}ň)'[@LI?b,u R R>"(m#O'sͫll_]\=Vb>"%o][$fkE}e׌^rE#MJK#Ut{ʌ=Vps./fNu3K^_V5M'>|oOiqI'K>s'ƚ'flal,/O)?'+ZqZlVCh?Ne?S|_j]tX|;X =JqgrO'o荮&ST OkrR/râR'՟,7<Ӓ*|JV$!g?X3}YJ{QfӴ\iA9KɏR*#Z7s?Yct|jRNXCr_>JĤYXS:p_5.%EǝzYq>ef3y}ݯ<ƄJ2.5./be+DG> Rߤ7NCrrXe 7ĘܙcD}N rDWu918ZGMA>1v{x<;1}WSr\Ά䕕ENnW<\5zD۩D{QR)Ҭ$[ )^Xz-^kܾ߹5>}luڼ6KlnIy>E>w{ݪNh=s`(#tZN5AIoq˓jFJ4wgJ*Eoh9Lyn9tZR m6#5^Vv2RU?r.H&)뎱Ivnj%'Z9i}mJ m!Cx'XNve6:c6Uqm-& %6O7og .ֹ[}9^nM`cg3bl<R2eBlTtO"A2<| (4pKi~Gg?>(<ӲdwfaJso06L'|ϟd鏁}՘*1!XĐIm)t |yysX}'& ԅˡI=B{]xc>fy>_\0fu\IQzX4ТߝNqpÎ*N@uLj%JƓooh#ַAACB^lP˼&i -0Bf*˸CA"h$RWcgM7L"c LPefմHvIJ3qu)Z>b=Oh'4"(jK-';;֡mS->C" #RG# dwoZQywXD.&6MN8lEpIysidWh+.tm?1`ih }"_.6-C׶a"KT[$f*Sy%.~pl#9Yݭcå8(tj)IT7RfOMXܞN=~}z40a {4HQޥ)ZgcɻKZJ[YRU$ O77kl@iFMJ #:> {2 L_)[#7 P)"ƙ]AE<>vvF[knvjTԕ_|f6T צ ثR z^aߩQz:@R꧰3WWLhC7\[?E0?T˪ߵq#ALm&L__2']EɱWjKaalfUUq,1zŖ~^ fE59 y>˾N `LXjbf&]RW6ucpz|o[X1J"iUzyḺ >wǏOyg~0hakX}Lv"<"4)L" pϹV$T`MiY\B@1Q ?1:HCM@ڝ7|Lv*&ى@f~o*U?o er)7e@"k|,)Tʴ}穀xAy9YgfXlCV<,1]l|7:BȀ/mI:zoY0y0X쀖&sN3 D[}4'}/JvmDT&U $c!@Xgy.W9W'{Q Sl˯s(eKǛ,rwebLӜvNJm>UAr7gI>o?wֱ|v>NR}O>[G}m7nD AB ]*P"i^J~J3d^#L&`zrKYHm=|=?'{ [L85r:6\f<h؟S9ޫ幯c5%)h{zĚ[tL( Qߊ}c##1QsfZt:*ӟk>{ù|,RJ@Xy%` RNŲcqyw5&SSJ|) J7Pּz0{3] Pe JfB;GëZu&_f_n&|ʄėpYlփ*?mo8`Vݵ**sj(NǯZ;Hwy8h(fEm~S6Rz~qǧtrnOm2 Mq@ei>d,nsφ}Kb~y$Is`>.zqzı6bjθ7 m>>>g'>|T H828EU"Lx VJ}t)6vj֤߈lْ$56BQ!73|wF-5Q8SDmPRstcSt;GrЛJT-b<"ġ?Q3JT?(@O8!abm&=jSh3D`4lp?('RXJRNf&!*o̲yƷ8]mM6~d<뤪&Oz#D=,Cur{ˏ{%Yu+1yx-q8LAvHm7([djt E>R~aGBuӆP56@ٺ,p)?+A<OLp~V tHRD4 X>P P>6@c`wxL7MR$1zD7\BTC"H{^ĎD0JoPX"t$hT"$̟E&{ 3j,:(#c;]A]¤ ?e)J?,T [2D4~h%M|2O6Mq$yD2읶o0d޹(JA ᮱biGf 0<6cR#JvO]*[(hg3f|'0׳y(TœWr 8 +װ*iP͏+Ϳ^ZmRh)@P1b̞d&cTv1ɢQ]&*a^5)yj>b43Xh/=}8PJʿJT꒮O%a?%R>bmt ?ѱ"WL ucC2P!kaCiNtAQ3xhU!$yChI>b}Wxh˧et)"t ZͶ5jxwVC6H"F?{&К ~BT4 ݒ ; K~MH'se^xZHs#@uR虠] o  \R-v) 8i ac<U @qi8ʋdطBccVe{"u=/,UW%[ĦinTʳ>VR!6Y_XdB+-Oe2L*I[@@cj|YYB!9'7% /Q3GΛmtGD:9ٙ8,j%)I5loj%[]YO"h8F7à8}w5hةIqk;63]s[G)$VhoM߹7;Nw&Hm ;f/_F!RDf|FUeͧՙ)No^kW#?F储Jdi76b` =LIP2Ԕ!\˪ܚDtID>QromS$- i}Wܨ5nb7y'@PD4mLDw 7>aDMh)m`P]$ޢѱM=-H~E[G. ^o!NПDގR\)'_]USCE,ʯ4ˆ%cFCwFl< "Z[,Qv ?ߠ/p e~dW(B vy/6 ʅ,بPM;ДFhM4O'XXU{IiGʐ>M٬o"ߔ;'-&I}GQ-$.rk7zz‰ИD&J&1xCL$JFs鱦!Û:Ǒ׹5Sv{mXL8FS&>BsUM4 9'TeSl΢]`BֆAU2/a=\~sˠQQ6ijZ{8k<6ej)a$3gؙ`, PP#7|.8EV}-Bp "5u٢anNesczCKHݓ!ccZ{z>S[1lu YH'Z*Ex6DۤB ȧV2Z~gԈ^)6@bp ۧ̄ 1[| >;m+NiO N1(2$'EBG=aݣ)y/$]|*EcQѕ*`  dwxR:kDt_[X~16hvB\ yWMН r{gOJoWxP|jRL +Cm*CE7,b-KBbU|mb԰ O[^*ۋ= E,8 T4leԔ &Mv._ 6ߧR!s>'dh̬U-(XIuG[1%?KkdB>eݞD} rmX申nhPrFm> ں/"g,bԣH8෼p^脴75 ?Dy-n'Hm&υ"֫'H^M[Gf#X+ʢi!MA|@E>P; 6 %^G"c#"x{lir:XFwW* F@&+$a@p+? d+\ 2[S)Ѐ=n!2F@?]?!y^*mJY "J'f}OEh_ԤD '"s|ZOޝG$Jw PRF?$ZW)\H=` 2Ram?2` h|!̏xa$__ߔRҀGȟ8BE!)G[B-cOAIJJxE7~qM #œfP[ x($蜧(>We3^n0%=K̮;4[HzNO7?Fe+14.HpwGFƕҲ^٣N>14ݙvW~ÜjɌg藳g/4y5<[w/<{zXSmIKz * .\)YAIXm/?gҽ\@brQx [6Gs#Sv(þK,eCd[Nq mKm=R[ H!ˁ1ʯL7LNLbQDea:|T79t=!*RlA c>r+ 0(oHZAMʼnKsHFm!aʁY, k?l0ә:ƘmVoELQ2MmJo X(s<]* '?lv F z  U+ʕo`0Eaě #Eġ| .ɖ屁BDE2?5 v'ߖGB&Bl3xsj}/cz] &UIHJIs ٭戧 ْ|Ov?Ձ@(UYJ6;;s %Ktz~{YQ ם~Ir Y@Y zfy䪜SJ%Fc U. nPl~&GoH?2l&QRluݼCi_{H.6-dk3'zRc-u]Q8~cIe8#ewŋUU#Q8ۊ JǦr7eSʣ.[M9*]b]h!I@9[5]pLQ0N28f{af)ZZT|5tN靛+dSdP0dqgH yzX)v=4S2m4(|_f&Uܥ?;HS`unˡgD(z,ЍEZ P-zbh'̃ Vy ln@Z"!!dgV5T!B?2:N=U xwdj@>ՐJDO B_@e`Kfoy4O>co#(#E/@x&$TMa7r`qG8m@uҖFPV c=Z,㺝q9ՙju2de ~L/t8xY0cLORPziIppl "0{3ז}U3}yQ%e^}=ٙg4/K8e7u]I*\\G,3\oW9ɬvZyuPm8.Aqw=TKxsuSs,F_7x24;/cv.~[" ;$Z1`QB!̲o}l;2(񉭛b &7 u|E.~Gj Df`ݿ 1Wc_cm 1 8k`pAA$|B)˛ Pww$zh!RUx[H-HOCTP^xE<_@pafJBl9h"BwߞN 8 8傁s(N <A4X$BIdZxF%,f\@#[S|$^Q*@y )G~4ĴJdqӤlwm9J'fZ3-i DQ{Xbi|'j4NFYPR}VPw|_XkNE$;Nrm}7hcf\'VoHW){i Kl;TP M1Lzf7.ퟳYu5E.:o9Pd\h8F+iu7?hmG#h~ WP(&eo[Gyɏpy{4ZFQ9yC*u#tW8|&ey~bdMM_ {NVj G!Rs%@mJi,6J뮚LgFSe{ݘN&ERR9[t!H:Z eώ]-Tq*iS-ss<#7 ӄw]6)ZØva$^I)0Þ'yR{I#)˗b&*ڇ5ͮH C)ns }Ɛt e6~0[MBUxִKn7qnXѢ*. .,m @%RuHX./!ّh!'JO[ĻêƐ'>:M^Ҋ3-&O˟S&q%Ds4<-@rHMnJP6YNXxѳu$j%%qaR50`*sK*Ue'r[7O'gt?|3_ f-M=R- [.>{ˢҦ3YWh4:^j0ߪeưÕv+eaRr)m&);9yoO' x{N*q-RûZNnD/٭~3ho+JM Ԍ @crkK<~a2 Jvh&7I6zɟ- xi}fC/=d=2Kp7Q6JEEܓ d]ڎ'a@S: $mXg] @1܏6ynaڕ:mu P$۩=]ieN5 =U/j7$D.[KT~uRXĊpW ZqܱLo/&ŸjZbQj,ͭ% xLJ9fUü7:!w+rͬg KJu=HׅVȘ9TZ{OHYVLѕreG&߄sJ.nNZ2&0!W&t#3-5fwcDحL\vXl.+@2=)hNN[ RJұIfBRPojq&<%۞3{tTVA)&0ˬ˸fL| <_ Rpfui]V-Jb'vP%mYJRnH1߽u?2v[u.cVE) VR>Pq 7M,sw +O7+]:&he&eғ(dois^ gLxqs{ݧhmOxAT떶Eqs_<<;qOY@=KU N}a)uEo1 zE47|'HyMCB@;C6+*9Uh+ʜJm{_O"ddJzZ :Y JPHYhH!I/E2z82Gy?3E,4@)%AUx 7@(jֺUG  )@ @{)܆M.𷪬""dltHMbЊ$W!LwRjo(=  Da]xzh;R ho)k /J-BuPkHEٔdR,BRHPt1`NwJej/):fXzvQ%YW{϶n(A|yy=',ǿ\}~.X{TSJjFUꄫyTܓ%7X% nm|q-4Vh=T{>ђL+CzOy'!YOLF3ǧy~L1pU' bIe.ԩ,%I/$j/c=SDTRf} C Po$d$tcÔ,3"')rUku ut+#D8qʔK .Z5E?-PipG;&3e?.dgRTeO$e-Lg??|o"4Al,Ǜod\Q?nW_ز=M%Iv6!&yjgKxgugûOz ^р.MM266 '-OLĐP5̠%TRABg/~VTaJYJJ^}ݕ21tOl?8Ny9&(&aS@xf_vKUuɢQ8/,r␶ňanRwO8KQ4s%!҂_Zթ'"RzBxl'V:3͖3$7 VdPP☗&3-: W_w1x~z j4a6)i4+O3r'Nq}ǟgoW,1Wq,|EYj+w7ϗ?ӳ8UBk'*܄Q)II2IM6A:i}Tݹ%Wu24uhC:߼Ob1d?uPGDR࢙A}7K%d e%gI >B[6H][ י>m*+D@⯫K? h;БjKL7KƷN7;DMx'D$6 f[U@3o(ĘT-'}7&ìf(hG-uY> G2/]O6LCbw4r+(KI>'C)Ao"& T}~`loaLf$v2bl{XL7N̿fYzBoΖ8O]7|'N=vn<,xO}y^{aLQC 5 dJLp%Wɝ(%9Ub8)&׽x;\YzOLry{f=R!YN:!jr }4=׷NLuU,3-=Ufei)*`&7Iۤyy59}n!˖ڪW @7:/Q徟1sym\l LOr4#xs|*MҐD/^_)pqE\E:1,0:iQ:^F% zxiu,Z3+7*Q/VgN'hUa$#%3*J6g24\8~/k8 Op,\ 8VjJ  wG._zq8oYeZ_h^=i5F [)5 {qm1,Xu1_e/^ww >!)\OnϴnP="46ۮXNearW/:=ӭK&Oa~D::htz {/r3|:{ A .MGrGuOa",3{`_fnQ&h%-kI"wY#k9H}$e@*qpE ǣ\|^Y|=ú'e:)L2a&2 e mk Yg3 ⑄(Cc:!- F$oq')a#Qx-|A hVSЂ`Y\G2MV~ Q &pRhpHIEM:X6xy68e~0;" QЂbBG^j#x]H@ޛz&EvfRte[X꺥zDP)$YKb-+?bKK&( rҖHm*T,d$[J˙w j4JD4ldP \X YEHQ] H욬HyCF]!i)%}<H> |JͼK>29Iԛz@fCzL젔H\ް!PuBPn="!7$  nrc .ªnmT&+/}>YE`e8~j-Ok65(JC"й(J~A[n!}Ս#%$A,aʹ@^PE?.ٲPtCEOm*l-̩_ p䯅_(6v(Y!Am RF}rT~.TPx( >5= ɻ[2?oc.ǡ0QJ>Qǐiʔ.*`$q HM:D RE[@(w~wB]Txh?_^WdVⓡ&Q ۪YIİ1wLudԋir&OHi_ IԓE+#Khm4bIdXKm Qk񄬌v)j}/_֤Q>j\B hة&ު!C)RIQ׸%`s3iRu!D*mqPirEW*PJ䟻NFw[[me'0EɗEꅯ6~*uw#IK _oA$UJUobhKȷBTk: 70mS$X o[\Lӻ"l8n拰bm_R_ BF""٥cǕAgE[KK *#DQhhg] HDPR E1SHH;l>"CvJQ#KZD(#OA+x*̢yIi/>Jvאh߽x0HJ06[BkI (FR)r 4ٕɥE6)b#xP);6 ŵ! H(9FX-~-I<3` 1`9Sk6IK 7 ;y^:b!-ltx#-; $Q$$un'Hs($܎itA#dn݀)x$t&T[| g=ϤURƛE -QQ>4p[̻ @G݀Q-ooXh+i>xv $O86="b)k_?J&ROA &[#RCJ p8|Vb oDAvyŶ((J`U%G)Bns2Η>u_OA!A6Fy ۋn@rrA`pA">BG* 2&)׿J%'£):X@0q$x"QH`})O.˅oJ"%)Zpv(˹%^(zi } xx&=kdb`:O@ PS#PRe6~ "bA\$xGLP eVʤ ] *FV<T*]bC.AMx4mxCgqռ#JH_b!3?T:$>ЁA޴]"lEt0FpMxu_G**@(5}.X2,HquG2m0J} ThgRX-lrD$Fyrv/w Eyys>*| t6o1R8$0 f')*" \$|U,\N9 }r=(B8J:K{Ah uSވRi侵e: ZƻDAu꤁tnB`]͸mDs{)WqTEGiDX=.a 7@LLk"ᶪSB} ee&!ue\J3E!.;1'?թh> ]<M2K$|bpMtۤ]-TP[Q+ |mtk@j} vQѿM=ݯ{$Hhj!)nv5I"PGMSUt2x@!#Vs_1`2K_⨡V~<, EOh &.JPysK%avision-0.19.1/gallery/assets/repurposing_annotations_thumbnail.png000066400000000000000000032147171466211133600256370ustar00rootroot00000000000000PNG  IHDR a9tEXtSoftwareMatplotlib version3.4.2, https://matplotlib.org/+X pHYs  IDATxْ-I=x,TYh ٷaSA@P"c:O{ũa8 .uV3Sl~'PFx(|#~<?^-ϫExߙfmjp8L|>),ONf>|-U}||^ W3N目bt)]c'}(}g6y-} ~߇OcheGe+Չ"X'%kL}jnOUU>&A\_]OOmrӹw>~0[^M+QzGS:NJO8t? ߿S>gTG:w]qt^ݶM1]_i Z,S]MsW*8M>|Ρ>{?jS1Wt+y=U}mCY68u8rsTFu"IkAw%¼#x?m3~mp^qGiSc?2CFf^4nպ硫a NMUk܅q~L~YXx?rnkziy5GU~ƧM?㧾5ǧԶw<{~ІR}ܯaM37c=~8BM{Kscxֻ):+̠GhFM65cqYMlù [ЩF$W_zMݪ%}4yͧ&tϙB >8xԣ9yKg U@i1C^O!&Fmi8̉>/u2kbgpWd1:Gg6ţJǩcv.e?b^]-nj_q<GOߑ_FLߛOSy5q>畫lG Ŵ5y}ѣ߳_ջ#W}+^Ok)x߹zbKkx-kGpW%MĴ>WD}ϩ׼ >zBi\_qIGM}WN;k>ԵC~see}8k^tN\jO;y.7}sª|ίyo$߸k)O}Wj9L£yF:Hyω_ ??yω??ߞ>2ʿ|2m~/~'~;/=/O%~#~~J~ؗ>?ߧIϋ=?ߥoOgp|!//OH'AϦ??մ(~ǟti'ylz Ik]mV?/R__?yb^_yCZ_T+m+5Ty?u+'mw6M xmMn1x"E~yǏmkGey޽{:mRmÏ?ӿ7möןc>z{ どPÇ1ǻ6ӗmq~_6)kUJyM+}'#Օ\777mzjUU_|i>zUUvFRMIG۷} :98s~ Gl}w.7m?z]_߿oS+Fi-F4O}w߷?S+ͦQNTK+9m}맟OמUy/mh~q|1,\m?F|9敤j=tOOy͕6iN^ue$xLE1YؼMm:kyۗn?/zV_WS]b$sZӧ*y;s<W_M~yE~|k^}nꩾyۏ?U޾K'UUs?I˴,kKc`+-!e߶.u}ף4'_rJTW>Ҧҏ>q3RY:c2~{< =W_WWбDGLs,}j_hϕG絘Afc;Wڏi16J2y|J!R]izzLjEoc?ݨ qq5 }yIk<-?sw:eOmz rDc' {?~-TF0CikI{ Я}4@ؑUUcS]O龤h?6=a3?~"|%oU2s|:x*g2ߞ<)>ި?cI>{K_N+4+xe\M~rsӯF|Js4Jsdԯzp`״Lym6G>ftQ[ +1瘇 AgwVԪ1s~`} UU= Ug$}y>k\Srs4Ҿhˁyz:?Js0 Wm =+)=0ЭyCix~``܎ط=P'BBVUN{TjMߎ:|y?Za!˫7NI¼l0 ǹh-^np-Y8=/_QSz?[]d.d#Se_lU^;B/is PJT9O>ߒϋN|OK?'~^_?/~9??yω?y5}OK|t=ͱϷ{{z6/-/?y/!~M?A|OKϿKsi? f~<? ߈od9u"}6߷Kb^mr_jy6M1ܦN6}>Ͽٚ2}ӧO1ttQyu{^~߫\>Ϯ'5駟Pr/>'UUͦMmu]Uujzʤ*_/?Ц!ym8twwJc^uLcZt>ڦԦ?oMM1/Czo?|]r ?QL֯󠏞W {4'N6͛WQ?N:ԯ+5=<W_.:r=J>]c Gw޵y͕+կG}n|"UՏwi]9*T//eW*C_7MOchysi*-:%]K:Fڛcڗ/_?TUm.#hkPkߦ=I_U5m?h 6ywUä׽__?\?}ks>2S(o\9}>c\y+Igz9qgF)y cW꣏xq/k`Cgz>O׈:Mf./.WƜlc\l_U6\cûk~Δkx쏟v<=!b&ګҼ;͗weԮSgM[RzZWU==w%i.5{N5[|}}e_~mզuk{qouPWqaUUz{19bUc7Sy#ݽf24vD*ݹsO۟T773ܪ߅Ozy?ooT?WO>5OӞ-WU>~ЯTrI~Զک2*M}odd{unqf1}} sL:#}sYu1O~09㠼4L_SKe6(y!yԶBt}"b9m}sxueLspub me粟֜གy.³׼|J1̡R~wu>{VYqxbPR7 pLs8X3z=LJ?a"tC]I3v-=kW #}ǾM +s"Iz*=/?yω?yωFK?'~^t-=/I4?'~O??t=MDs?'~^sϿ+f%~1}Mx(|#~<? ߈oď7"2~MsB{ypy;IǨmbI%Ƽ_fGu:Tb^)}^Ǽ9{>O9wmӮOz]?j?Ƽ6MZϡ}CnC:: ?juq>;teռooob^Ǿm=l='4>גҫFT5{ żaM|UUMO}Ѩ]Xwsժ|gܶ/.U_ SLb94`3>}ԦOzoޏRw}߲ݦ5,C}ZTzC㠟Xyf\aWz:qظ?47He|\dW;~u5{Ie<*h?翥/^ZȎE?Ǯc(OlBxi-:^M4я}^i5r݇1b{Ii2 ϶G{ZΧܯ5IǙQjs$9YlD6v!'>}ϴh {V,Ãn{ }b0>ÉoϋN|OK?'~^s?'~^s{_?/~~J^3yoϷ?ߞ^%~#~^q^{{W??yω?yݙ%tm&/wOL|O|?k*? ߈oď7CYN\Ewv]b]Uӧ6}^ǼN>$orfY>]V:N1t;2Iey8tUU777mzQzxxX󺼸hӟ}^1MO~y}ۦ߷:Kjwww1E8f+ԕw;Om+TSe?McJUw}צ?އ]>~nOzT'.2sƳ٪Rsq+嶡o *Csґռ}RƎs7orJ}[_in?,Չ2/ERy]]u8 T.S UR˦c[=fHy$!mw.՗u>w=Iꟿզf5,}y{8?k9r^м拴W8+sm}ާ~5Qsoۛ9qU?ϗ>m^=^~_U k~odB}I~:דTWGPZs6;k|Mh}E_'.6^6'a_UZ9fw4,z`4œ)üiaj1ջJXU5biQk;"SumjCWN\^Yo|-fU^Tz>rkLk9W!-J[\u>4g{6'~w4S}Yv/8N{omk<1lů8rDxgsY~gy͙T}U2ԯւ+YUq>um(gQUu!}7X,RS9Nz3ߪ~ښkI /LowҸ5ZLq곖Եk%1%ͣ} *yWm5rM]66QoތW<߃U;t/?yω?yω?ϋN%~>~֟Ͽ$~^sO!~%??-/= m.=g{?=%~%_C| ~9?C7ď7CPFS|>~~qqsssӦ߷ϙ6}۵*u<',}1.6|>Ǽwb^f<ܘw_K\ƩN:NS9V5>Kyum_ݻw1d98cU"qjpUN{?:v;;WWWSϟc^N$kxxh7M>*t>^CQk|MqFfGSvUu~_b^c߷:j\mbݦfk_mކ SS>gk<8uG]+ Z*N~v^ub6o^aO~ kT&Ux3Kг\_?(a6Ý*c{ O=YVUMN\VS,BR5OFφNGh]7/O53Z#6=;q_:k\lܬy(LN}]}0O~I8yP~`/ev ba-vuVufǴIks|ⳡ*v.WU>ӢwymCO{rOkMO*fz}ݷ^|2 c!GҾPU㴺zTU[Z:l;ߖa}yֈW:U碍׼Z9z:iւ#in}zhc*j׻asꪪsҽ:=RJ9̥3T'{Y`#Gn׉4o0\-r%<9e!}Wõױՠ<.sx:?cpz~_sX+W5mIU}߆4WUrJur?pH4/F$NGXҞ1T zkĪX9ϋ=IχcoIϿ$~^ t=/?yω?2]|8/g}(w&ď7CPFx(|#)|>k۽H;٬M_VrٟUۘ׏???~J}p8ļ[+ŢM_ד:;Itǘvm5|sdd>wTӵPM]ӧOmftEh^m> 5m(ݗt1noo1RzwsU>hGmk9]~GG:N7771d4|MkGp>,uUg>Q\\ThoS_\Ke6nǪ7o?~aǔԇg}J_WU:O?żR[Mmkz=izΪWTSvFI4֥15}tFy:UUVIcרOOer{GYGuu5qδl6PijRw/⢟Ǧ*w0>UZB^ye? v=4g[ncJiQTUyS1j}K_iLZ0שLrKǔϟo޼iGecZ>4F{2Zۤ9[U809eGcpǾO\^ІSmW{i- 岹]FaVMSmcGkөb~kfg=+5iqԆf!h1[ג~wܢ*ũ19-=Kwlh==4Ώ֛l٤)T<9ܶw?ʣ9&$}?WNgҸ=;.}ph";:e4=bUsԯN}GaT^}c[u:?݇=cUw!:w};ryz30Oyuh|?⽂gyg4q:kiN>O{5ih]iu*}z}oۋE,aMLU/ wGlַ!,Sc{sƭhֈJjN;;a?#PUciNr1ᅮJ{LUUݴ}94oHux8/=Ѽ,)8]UuyUg*{aL9>QSOkԶaoy6q@?I끪M6Wu6,O~}\8z5^xUc:O人ل<9qܿke^vMb7ޫYBq8򵧹gF٤k*3{ H5'Nm5K㤺5uj[A1a-Sqzc|.<ϩ`o$=CE??yω?y/o7?C${_??y/!~>|g@|>]|/I?~̏7CPFS|>n{~s<p﫪...+g*~v:~ߦO}(bѦ/T^MeZ|nӽO_U^T^|G?>>Ƽ|Ҧrq6/BzJS~s{;UU?~lӗ:9z:TGǙ- bvp}W2Zu(oC͗:ՉQO}Q2JjU_mߏYfXγ\Z^^E1.v]U\_oco޴3_;cw]^v?y6\j|iy~û&*! zxxhӜeIy5t\Wo_yc0Y>~ey<Ϛ^\EUUϪ1ׯSawy6,ӱ~vr?Q7=IccU/y1*)ԆGט>>@jms?8 eF$u9}ck̓:q {-0>DU"{}}rǧbsɟ>kwos^a~Gƕt-}V^S^tpȕ5]c:]S{.gõ}0e5{\鞌x}e߯?mv߿^~=U'E:NXV| }h_Lc11]a]5ưޛIc`U,ӱ7oԯC^s4!><}/J{]Q_¸4gI;=g8 p~ }N>zv*wUy͵ {g iR<=L)i_U {#ipSUYM{FYs4hC,z 3|~??-/=/?[IϋNz*=/?yω??iw;_?/~E6]|OcTIϋqmO#~%_?~>PFx(|#~<? r\EvYVmUqr^ݮM?s^|^U5l&WU]^}M!u8b1)j6G..._uұ.//'}mznuTU=?KIui׷o>}Ԧ߾yӦ맟~?(9>mx׿?6t]U~o_$SS]y||yv$W1"}+GżRN2*6=kI}t뫪>~ӷeΫu^`|%kLq4ũkKo!ׯcuMh>9Sq}ݟ輞x5:[H}NF}t'S{Lm*y2RÇo?skǎ1_}[MhTFD,Tr^CwRU?'lryaҵXUn+i=Z>{lҟ׬Fkͪk9_>ybZQJןQ^^k<6Y\#>rqїWB1VUY?>9~hqK"hr\yFb}yXӧ18~m4_܇:yv!}GPPΩo!׬WJ=YX?f6g:3PGũux$]?4yh1ֈu9}4_˾/N{"dWS_8>Fݻ6==ߦCݮs4ZϬ\2Em|^s<7a/<4_ eNWzZi<G1f~}uۦg0iZjcǏ}Ix68uUU/i/z4>wJR]=;pi^8;g)}L1ht}ϽW~;lЯy<ߧ)x=|ixn½ח}NujvǰNnsЗ颿E ׃Yv~ghM aux/Kkz渡wσ~b84U*jNڳyͳ셧\\}yt:`|j^m?#ݮ>\INZkv|`=ӈIϿ$~^s?'~^st1Ϸ??ۏQ%~#~^oM??/~~yI|OK?'~^s?'~^s{盿?ߦI1//?iOSO mx(|#~<? ߈oď7ټ.//_;ϟ?9\ߝX,m|y;z6}۵!Ԧf6=ݓئkLe2:MÇן6MykL2*T7MMOw1nSOujZMN:FUtjS;}w1Ԇoonc^~m};}8~m1?ļ/i}OS]_UUWH>wSTUS6jPӵ|1۷o􇇾nmrٷ7qk_µo}LQ+4Ejö?x쪺{4U_?˿畯o>m_xwח/mmզ{{nyIcצOyܼ?MOט\^W|q>]]]żRKsNsT^uiJ{w7}_ωG}o=its\泰7hCi.^ByLr8_c.W﫪2za_}1EU~Yq 'TU:-ɟ)=ӞB|~kjM?/6櫪;0'>0_^Ű7RUuwy)Ѿ<_6z~rRyQ1~]^}h9] (=܇}&Rh~ƛ|yMQߝ6NgfU؃Y a |O}_;Ouh6+gy/?闗{6>簴T뾼VFm=l4u]zzafٲnûOe맾~ow}OqwX<I{#߿:Zqӵyz,Wy-³媪Yش9y"ӯv}O=Ͽoӯ>Ǽ꿓wz}YZr٧>w=t-?gyS 뽪۷}y6}_4z/^h?. f?Iq;L j}ח7os1_EUUC'li2ZWm._#?m=ҸVM{9OU.tup|g(Ek3R^ޏYҳCKZ枻IrzOr_qTmz2jWZb^6=]R٧rIcPU?nӿ>2KFOzӧ6}T^i|NntSo輒wa<T}yM^3oGstئ}+ͤԾǾ}}? nOOc>:ik!Mno?Ǐm!|CUUhmvZ?\1u}>껧ߏ>K;*4v>=+/,\C}O߳Ich3u.֎_\cZ:FU/EQc_kVI:q~t^YS>$5;qv}_}yvi =8rg,ˮo\.}2uG9SYj:Gyvҗeﶹm'iۯ~Fk{᯹S,UU0L⪪{0s.8}jө?_՗}zryljsњ:])QOsܯ0um1}p^Ji֔U~j[p䳚]Uuq5n7㥵B_q3-5> Yg|GΧ;q ={Mu%Ug}5KvơթF:NEU{=\V/s^PUr:ƻ>/{Yӟ1l֣wRyij0zE~Hm+Vg|W~ߧuO0WsaʢmuJ:ߘUi3k0>/s'UUNX}>z/mzzn1kSB9tU< Pkz8Nr0n}y=y`z{AYM^W&ikL{}^_9נH;u1uo軗ǯ䲟*̉w ]uGoԿ7ݦ60xseU߳JIi)nUUB~<}U ~_b^Tos??>:Ѫv}Y;3͖aoO}\5~JJ54} YZo;Xwc=S״Uy}>Z+LZ?IY>z5:3KnHt5=_J:k+zyM 9/IOKK?'~^s?'~^s{cIϋBK{coϿ$~^Kۜχ㈟N|OK?'~^s?'~^s{_?/~^z7PFx(|#~<?fZ^o6Ԧ/6|zzj///JI{>c^; fY~<ǟ5㧼uTUmۉ_z6UZ.搮~y]6q>kLm~O9ܮY kw6!jãZ3OmҜ lOqۗvjc:A pIe:Na|Jn4LטHu39O>ZRYJ*4Ǫ:oFP_ƣB{ u"+UyxWX{:kbP':?X>^r>Ysu<=ס+}M^Ws}ُm?aL=&Uޥ:ÇǏeS.übR;.y C\?ĨN4<޼f~ơ1W0v~m$%1۹Ok>}Q֞+K~<giZcXxga9X'_\h*rj_K:lkqby`>}˗/mzjЧWUm}y>=|6 0>z4}N;R^q0ל;=}LO^Vh>O>uJ{>=Yfa]S0|=Pz?ګLu"צSEҵy\UR7x3 իfaUUU53Kw:Q`Z04ZlVa;apׯynnlїqcZ}~ŽgGlЯ|ݷ`1s\0ݫ燼|߇?뮪~^v {I~X8~c,m5v C]~ ,}yn}?΃I}檪Og~/Bkexo7T.93x0;i: u(UrO϶Y:%ýP{yyL4\cJl{okb>]} >g9c'%<<\G|~tgSyM꺉C|O|w^;{_??yω??%//?t|ω?wχ?2/mϋNϋN/~%~96]|OK?'~^sϿ3wO35~~?7PFx(|#~<? r_ϪŋzئY>|͛7mnymϟZVmz*_mSөp8)t1r\]]M:\16?==ż.rId6֬r] _^m(Ǒp-\=TU}[}sMS{L\{]2:tVLR}Z]:n'{t8+QyOyǁ^?Fek~VDƔ^fӦ?<<ļҘCGuwwצ_KƎ!C>;7͋r[yzQ{L+Fc]_Wz˗/1$רNu5>nyM_O:s:~y-}:<*TR߲^ݻw1ZsLΗO1T'G{?Yxw}_?z?Mr/}U1_l֗h:ww:үc^iΔGc8jՏ[W:\y-yigNJ%Չјߦq&.;,o5D>~(h5ڳIۻ~xۦoF,R:Oi4UUM_님b>m;:b=>Fm;Ǝt-qRkqO5w:OJkf_ y],9a0~}米Q};ʹ9Hi 1__]cDuj|Gmkj^18,aju8}BU}]\czvJ}T.ͦvNs]/yn+Oͳ\'<~pQ^h]k֨SQ?u0+hf3y}> x kuK=cLU ύN\^y_:۫rZ{yD965^rxvy/k^/kqow`nr S?1x&Qlv-|c1s[^F4~x}d-ü,Oy_c^sLr*g~0 I4tO]gmA?v{SoߵMcKX S~e\0 Ui/m 4טyA_ 1%WU=< hʤ>}b_rFsi~;]Psϰq{>H^/ף3Qه&s:sZFj&}4|s}}+|;[1wϋϋNϋr^wϋN|K ?'~^c??ϋNϋ;{_?2?"]|.~'~%?/~E^[?ySLmv[PFx(|#~<? rOzzzzX,wv]~8b>OJIOgדofIW_G\U%~ytuj|S]7otG}|||Y_lqB]IuhY*Wo9b^~-f}lw?Nrզ_{XUZ{:uassQp쪪U֫ګ5>8j2}L4Շ65mN:S^\Ǽwjӗ9٠S 8苎\Nyռ/)8˗6궟6Q:hj۟>}jx::T;>VsNub4O}Ӷe Sse܆y+CE糾R>jOO?η͛wm"}UU}YnBטW[..2}==5,nu]a;qp^5{5:sTUU0g:gZs>;6uUz3|^mYyRqss.$8c]56a;}LQ߇8 y2_hc19q:N7W&_엫A:1Z:Ԧ? =q>]Sxk,W*TWw\^YkiJ}ˠ>OLf?u/68ycN~:N,}sp!ZcW~9=̯_ͩ{|1wFshs6=/K{~9]8sL}0^sIѳT}NylҼoUUжa8Zo5JzOŠkXws3ݥuUU}J+C}:>g)<:96rs̷xߦo.qqߗ.]½ pr;~ e )cO>ҿORǂ<˗\W3Эn.cZ_moMO}h_,77{Om<*ףh} /'߫LןÜ*ӴO&cT8N{lޙIcsUU1O4p `?VmgUUmM{a ^,j^oY s{_???[|KK?'~^?}A|G|OK/?yω??%ߓϷϿ$~^s?'~^s?'~'~%????ߦI|K '?ߧ8~~r~? ߈oď7CYN\E|ttt6t:ż}^?u6}Ƽg٤\^_xF)=55MOkZż׮OտHג3[kLy6&]CUiח6}iU>ӡ?J}_>rM*m=6h굌IN'vywFORɨH|>׾Znb^S?|ާm=9@OOO1t-__cyu;^i߽{צ}yv}=g\_4nPwߦ/_驼...b^S9tkT~5i3|/T1][FCS߯6xe<is򋋾O&ͫ/_?s|~T|QNI?JZj}th3 |)Fǔ]Fטƺ4>O/JI5|Mu2Ik5ulWj ө_SOUy-úO`)+M"qiL[,0?>soߵ]|7Ϲ/.xӗa4||HA5g_=գ9c4_L5{Y{>h IO;:*tsXTUB?y:ut{ST^OFR!|0 PϿ}55 uz^^3Muri,r)ӒtZF򲟳ϙc}vr^x58*4^WgCy z4:y/.k\rTvQö߃nd\#L}|oסz7Me{kps<6|s|iN{o) D_B:}^E_O^\u"U>CGƇѼpzv sY(1s;M}1S>e?6zјk٬+{7~8~ןsG~UU^f?%=߼ f.NǏ7}~pt!u^ yBy}CWW1CXs~nW;SyOY^-O_6'in }zUՇ\& 0І?}Gs>~Uݏ֮}[J1z\fӗ轷V׼w k9) dvkiLMՉ4Ksf:Ḹ9OKJ5^\eI*׉Gq{5#SKtWgrtҵWj*ϟ?ntiLKmn~eշT!~/fߗ_t}^?ż<&ԯU.6p\u_~uяm7ob^/WycTzۘC^inƠy=//N}NJגTrߒ}$՗ݡ/IubOR߽9^ǴTHm~t7ՉKkeGer¸ù//y·|+ռ5.Rp]CZT7})HǸX ;6ƿ]_FPﯯÚg7`kOa-ԷQƈC>~֨}y>N݃ %1bjykL⢿àϙ7 chm:~px5k{1u4 P.A{0vg 11kJq`KcZ:u>ؑLz.qwS;yw.µc)#ZBryg5o<]\9ckeǔ>x8ާ:<#>5\=LfzyFcWSp֢iMx:}67$ÜyM{#309J}5OU"<L1]i'8 cmzu8XaM6qGa0=GϬN0g U>֥HǦ9y~]\,=/%>Kc?,Ͽ$~^sϿ<1=/??%]z쯟??foď7C,l6b"!~? ޶Mya>~ܦ?󺼾lj:s/Q^`~nOcTg)}us({:ly뾙|1:~߷\Y]mk<5.RC|gMkٴW}]9o|ٟoU<\zYSݪ:f1>}ڟB{먪e?ҽ:~n_yCn?8>:2p^6Ǐ驼..r_^߹PUUO8tsշ9׼:q}ׯy6|>j0-yߙz^Cn.y]]Q?q }KUMmwm?K> uÇUUMyۦ}ۧWU?S~qߓ{RU?b^E__ޅyQUЯWy˧mUWnڵ?]?˫C//Lu*v^E'R_Ԧ}2*_noƈ<_;iE_? ToاP$k}NZ,>vS0auqџn.?l UUc߆fi̮˰ڄkOUU? ˛|sSzzżiΐq2ҞMUUƧuh;3j5DeP\u ẻ<;\W}K]ܮz;Օt_#ug8=h Ʈ~=S_ 啞Och-=N}h\_'eKz}LS4'Swt^ZFx>= i_*GZU>q+y;fzh4Ҳˤ1a/|'Cl^rٷ>Իܵj PG,̿ҵoao" TUa_UUuǴ˫w6gwyrO.,}}=~'BkwV6oa=1}s>}wzƘXU/|ޱY]ٴY9?qow!ӳER n2ww;U~*N8iHeRU5_׻Ow^.<=Kx>3y?jԗ}|ohw}7mżNa/=g;r}}m(=&c^~χ??y/cV'?ϷyoIϋNw?G|Wloď7C,tE:~t^nrpJzզ08S~}]Bp:7m~ C͛}^|Srӗ"u>?[c~k?M_W.gM?.5>KbuӦ?އ{Ϸ|Mjw\?>^b^ݶM_OǼ|Ԧo}~}_UUiOշӷUU?7Ӧo}\^\c<~?X{{r]~g^UЏiE?nØ]Uu}Myw}^<<庚S8\^:Z>18:}S3_kYp5ؗ×UOOy}=jn_~M}Λ7+'w~C>_M_9uUums^q{25W-}y1ݻmysݡ?4nUUݼyצU~ׯ0v}>=//˧0󸪪E__WU=<৻/s_tz c&UUͦWy?#O|5jsٷ4.׸[˧mzVU}\<=6}UUc?|O!m*i srIǨ-H(QZ}<=>iߏ>k7WU5e~S~wЏ]]c?_Nw>}UU {3q؆y"}E vNB5?He0_z)mg\}e~ӾOжBݮZӾ/eƔUy^YR;}'cWU>>ɥcWUBG}gN2io{iXsXWUL˭)iy8~M>̻./qpǏc^~\I9qU6<9lsS~1 32y˜v.M/.ryyV?ļ_=Uxe$ΉOa/il~WNa ^^U"ԉeHu{U՗9"|8ǫfY3M^-w쳄Yx*B /eF9S_'uu}\U/އs|㗏m=5h?Wmq0܄x׹sc_WOsr9<NC{aMϡMvZSWU>r9w/}qqmo{Uy?\wpO-+/*}骪=NsMYZ׍~Y 0<35{6Uq类]os`l-~חtNTU,̗>sUi_j=7?ߦo??>]|OKϿK|K|OK{_?/~J|G%~%~'~%=/?y/-~#~>Ͽ$~^s?'~c.~'~%??ySPFx(|#~<? ߈od9E]_߾H;ùM\:u:yUH^cTU=nwmMf1/9<絹.e?Ƽ6xsy]_c?=vlwj~=żwεy=Ƽ6˗kf.uTU}}9Ӯ?ߪ㱿ZF~+ԗ8W^ Oח}돿xy<:y Q\P'V}_mq3^-׋|^Y\U)rg6{~M,y2ܴofr^Y{So[m?؄Ǡ<}c^}Oܦ?kVymVWU`8ݓ|j%cTZnrXRJt1~uqяy.T.|*M>(׉UNxr?żRY:{ebס:u*ו]84Ǫ0ZokOj۩U庒zN/`ۄrImb#i> 󉇰Rj\^io(3Ah^smS=穟xm)Urb@1.:t-}i7H*٬\'>,oC_) rHe)3WUݾckyH:T_.ss^v^5j?c+<''|N_W7oՠSszi3=#H{Uy=L#Ok~)9 tan^ŋ h]澇߮Vネ`Ҹ7p?B!2ǔo,{a0}s_MJ}'f:>`_*'UyGsg|1ӵW}_k2$kL(Rn|5}Z#?HxTW|v0ǴB9y.r 뽪=Z>|J+>7YM+?CpG9lZrz~s)<9O}{J?uuǡ\@z$uyU_Я߅:qy9x'ӟ/_ļN~1bL¾~|fc1x:檪sGLuokw4WM˥??}w}Iu0x2s*,ޯ`TavLv_jO=v'w`~h-57~%}gn_zvϣ}`-x 1y-wD|O|sl ;t/?yω?y/-~L d=/?y/^|KK?'~^cIϋN4W7%~#~'~%?/~9=y.~]+7CP޿<[ea:̬*4H f2 %@#H"HntUedF}Ȅ{owU7}//߽J7OOml{j>j>M1|nlZm yc^u~>'jhOTǘ}Xǿ]UÇ6}Ц???Ǽ㱿vJklC1VU~߯o:1Xfs_{Uu~8IU.r{Lmx<ګJY,c|vHeҫ/6}{krߟ:y>^sUjiw{|>8j[X}lV}ZWvUUo9>oUv&u_|y}u5tñ?tOFR;]sW};})Ԇ6zޏ}]cਮӡ /evۏZk~t}m?~KbO\*ׯ!͉x{_K:ƧOSVUns6J}jC yQUymipUO}0+?q(%/1}ziј1ݣu]*Tu{ո5GUGT^/x]+]M72ǦsN$ͱ1+M:19{ִUU}GuZR9VU}[}?0Wy vۧgNB:ee?M֮:H߹z,OǾ=l:IkQo6GPj۩˰nTWR{sѣyFy=?v }أOs3W[~39끪܆RzZ;Sjj+yss>gk]' ]78rlrI5.c(Oya2 Orɣ9qR]].\B^SXSyf>溚WGd>|>rߑx>K}[?1}0/;xo7/[,r{Lq>OϦr?a^8/B}VOܯ瘣>2գ@z^Uuq;/yݻ~0AҘ2;sߏ^鏟A㞇U:sBy˳Y8Q}z&oG>'7:ߩhn}ogu]iR_^N|[^MoY'u"ϼi.\Wg84Z XMRy|$ͼa͵O{3}\̧}JAydՠyó[e?6r~lǴ lo SMϿ&~^KϿ$~^cuϋu -󯉟?ySKkO!~5=yM?ϷϷϿ&~^KϿ$~^K{{?>?:]FϿۭ?oğ7C,|t>v*\٬O?v1Nrٟbr^.OVow5Nov6r%]~y6|>*uuuզyR%6}!%N׽]M?vb߯"Ww|WM<{Trlk\-õU֫ ]n_ލCjE6ӗ>޾y藻Wܫ泾\wܷ?ƨ=6uQSSM/9S?-rzM?>GvRUެ'}]I}6.ߵ}; Ouq_M߆}k8TUŴhw8u驟3TUgP˛WO}2K?z?x1s6Ms?gs㱿^U5{4֦ h%J>]|0n{|Ch+|^}^Z\jsׯz温~Ze^6ui6[=O뚪m6"q9m^8j[IsFeqodj9_rIטGy 1 o)T_RyƧT_v~M=*+J2:M7Hqϙ}z~x~-TUc>)2̥Ni^eh'S:sR{Ls~s_Fu ys&~~WaLØ:hɨcyCͨ J?g]Zo047ܯLzε̯S^#a:Լ?1*|\8?yoͱ橺-m~h#6˅5=ROEQyjշ[R_U^$ωux>O}VߌI[i%᫪zZJq4L6[~Qr֨4=x|5/Mš/`Gq;-/\^e_׋>}żZ7UM̗}f޽{צNWO=N6=櫪./߷}+?Qss?Չ+4WU~yyJee?׮kO;}NҵWU-V9B}-c wk"ԕ.W#ZcTU}^s_^OOO1I cvUbjGn6]á|><ܷ鏏VUϻ U:9S#?^q~0>ߤWUͪo5qӯn~"*Fy9Hj^UUOJch.ԾQ?SO~b^ۧ6oC+kesȟzYs<~5W6=W~_äVzӏ7nk\q(M zx7(tֈii]Sc:=It"MNFsG}TZ-/_tQy-u5Wr^_OH*t36}yzLjT^=Tվ~Jܗci%3|rXy5X9mԫ*n6qq˜v=1 {\WW:<IҖh_}q3~֟)dKy}7jC09yH<`:Jslԯ5Ouy&r;MCwGGC;s,ߓ 6vsղmzvi*qtS [UYFwN⢟e[֮0?,TU"߷3Ҿ?r5B=hó«,s:f8{q*Ѽ?c/yz>|yP؜kUynyy~*~蝎Uؿ*T~ߗcP7a>|蟋{׿K)y_b|7ӑi?:ϟhsCxwtL_]g>Ny kns9gyi,T<~CUUPe`aojvJ^oJjF>^'yL46^5_%W";#=-R^9q|u1goM|OkϿK㋟Mϋudm'_|OkOKkϿ$~?y󯈟o*yoDϿ&~^KϿ$~^KϿ$~S.~5_#f%~~"?& ߈?oğ7CYN|>Wupӷwm~y-mzj7|^M1_Ĭjyպkue<˟b^W>tQUu8t-Y_&UUE_s_YRoUz߯G71Uc x<Ƽnoo٬/ǾVUN}^StU=?}o}^1ulp{%Q]nkIu&wmzjs|yoӗFuT~Z.sm(]㨮64w˾X!{|Uiחe_5. vRU]0nι/a ^e߮|wa.SUuq^l0ί1Ovo}^Uky ?àN,v\ǘPUr|zyUk|m4Jeg:N?\cq/vPW10rlrJցUUmz3Jh^99HFF}%ӷ)i摣}KHe<:Y@F4qJՉT.ޏj_~{FI:N:h>`1o>.YiUU߽ǧcX>?}gU/~`mh0@]m^ͻ6/myk;s8kلkIXUu8y=ܯmcm߇j*ܯŬjwf=+ ]igi(-bVj{\ b-s[7QGFm+q:縯=ea\G?}_Ç/͕GRi_ɨ>+8sꋾAHOG>vZ'ryzƔ\G)y??~مgS=mUaw(Vxa%1-=>gEga;仰 _]FaNr:euhnKѳ4޼e^_8v{{o9tCc\L_i7[0J+l 2iu=4򸙤0Қgr*\,!{T6:8p>ԡ?;G5& 9<'Nq>̱Feޥwu#q]38)L2>L~)'xk4nTw~}<6߲ƎǮN˨Lg\<-4z7;&Ͽ&~^K{_?/~%_?/~%_??y/?Ϸ{tϋI_>K|O|u=󯉟FkϿ./>??ߦ??]%~ y(|#< ߈?od9ˋ/_6|>*浹?ܴļjvjӏUUݮMmr9U^UUs{}rc7S_.UC_//c^vUUkJU_|zJmh6돑w1bѦNC߆x:} >#|Oҵ/}9>m]U_a._C2ܯC㶯U:TUUV6ܶ4>ltS:1b9:ke|yuUN~ް껕W1,c.tXSUX~צ?rYiXłZ,{1ߪP*x^;=nݮ,l&1żo:'qbpoϫ_8Z9i!iL& +}JOuOS~N>cǍ>K8qpԶSѸ}IsQơtǧW{MOQ>KSׂ5OFtT3vהu"Rԩ2_߿oGe2SЁ כ&Rh xz|lӷOJ7y]MП9L6ܶ7˾?zPi jr'0g2HR]$o9hº6-΃=N+yvytsEP7̱Beu><FezJyKJ즮-<~`qz7o)$ݗe=ւ#Ψ_;q-k4Il,yoYsЯs5*(|i#*sx ͱFט|0Jw7f Ny&a)> Kh_,u-i~ 㪪e8~ZwFcX`'>u_y=uTUC_\{06WUn*j sggh.&a[vh{A1YGkcheYM!*E?g0֥ZxW*Mle&ҫ6U\GeyR=#GruzJ{6˗ q߷סz~SZ w؅wC~o+~)_靴fW3hwm{oU5\S~?ukS~<:޿:Ex7wX}w+c<3q[Yc~S?nwsGC:?+1G{Ih'W2|Bn:(S惵j1X.oY#N\_9!#Sz=`1W|>1R^㳼tNu֎[??y/!~#~'~5_[|G|Ok{_?/~w_%~M??:秝ϋIϋIw??>?p^_??ywkdUy(|#< ߈?oğ7PUSlhm/..b^Mmsoԛ76}tO_xy56}ϷtئVU\UhT^?~lӿ}>x/_{r}\^p-e.iݦv6=ߪá/>ӧ6=ջ~f}UNj\:ZU_Ƴs_mz՟oZ_:t폏}Zr9c}iP6pIUo71e_^\zx?IUϟMCx_^UUޅq;ٺOkuTU]^*n㲯Gà~u6?M c`ج岯ym6ynܗWsw޵}?ƪ<I$</J󏪪Unm;KFuqѷT2ޅzqv>Y7~~<ǿ sկL>ՕTZÌ/Ҧ}?v+ͥҘk^}Ns5gӜeTX枣ue㤹ENr?5~yG꟫֫\}I19TGktS{HӪ~rs׉ykQ{Hm8ctӚ>F1>i,Qq3Xo=Ne?cUߦƁ4_Nm~t^?ԯ;hٟMUԨ>|ЦQޅ;vxǻS_5}j+q]9Ɣ6[I*4Wq8ko}wWyFb]>az>;|b؆Rs:*GubjScI߲>KNVq_iQU~0'\ӻ~d콥zUzۿ'̥BagT|9틥SsU9ɨگ%\-FF}H'ͻ>{[lRcskzd4goCCw~kǴ܆1b?MߵO]1g4vvІj_Y6Aƕ_~ T.ǰ?zV汇0n?>=0ބH*˾~18=CmI^ s ]{oj[a8o&|t4gSx1UUkS.5xeno{\yXӇkIu*<=0?va*W~g4Won2~|g~Gi5ݓ㡟|5}zq#m.9}~?n,g>}>p`_iL}[HsEqL驯ǰ/uyɪmz}c m~<=P}]n'C?!b*_m?:vm}~sssٮWU,m~hϧYk} UUM_uuu󺻻kӏc~qJ%ӧyoUUe_C۾=|Q1Q5+Wt>~u^c^]qZw_>~"X81UUl߯"E?iO|>{7U?CUoͿiookƺө{!>$gUU?MOmU?_?y:&4_څ~"򺽽mG};>|k_w7Vsml~~pysCR}{!5 Ӭw>^Uئ}{uc}ߦ>69]9aۗrǴTWS_T1}_QUeYZ#~%imO}]t)*s7,݇vMR9K]_c~>X4C//>ݫitSwQ~9fT'YyF$WrXOu8h0ݪa[ w9" nSmz>gO1"b:ie_D:p ur1e4֝׼c5No'i ^ǿo,h>k&p#wi?4ߓ(Q*`;Z~4n-1|6[Jגh2WFSXCl}{LjֆQ;msv9Ի߾^>~ܞ=*3|ꪟ:9K Up:uvaW0V^5>sFԵho3ͿRٿSu-Y|&W}RKn?à~~"CX|-0F܆g0>uR$8*_sii;xp^s<9qn~=Mx ϟ"sڏՉMw+3pOFŴ~LqPҵ~jͯmI2ϓ~.Þcx&;ǻf_KZ=~Mרmߦw4mi^TCX8wF}~1񦮓R]8}YњgwצkԾ~iuTU} 2Z{we_P3ys7w^ljݧc׫~<+_?6SWW^<;,~ai^wSF{/L{ ;)L{Kc:t{U|sx|]ڬ/s>[bYǘ2:rY,>/ݓQy<7""&y|~ۧ/$]u~98tv=m=en_{U~וͦwSW}?=7Qb2uu_fc#|6}cils+y}ZzK~E>:OߤDUc&Ҝp+קO}y~r>ubY_C;]js׻뾏ogKsy1/]\k,ih4KȪM~4J~6վ_MFtGWU簾W>'_^uSYc*㔞>S>|?Wji1*=I*ߋ/]cӧO7IS[I ./b*Q]MO-޿ߦgy/)dԧ屮gi )i|X~8UUoFs]?[~Ǖ?`-cж>0\urWW>*tQT2K[?LǨ^^ Vaz5Ǵm뷛~M&71r8UUY]X?SJc[?1mj^q1-ºn)!#rJ[Ci1_WyF=\5wC=[cGL8IiIU~9?:z|:ǿyMmw9q޷x4}L}^h3oY>.mkq (Ե?0WOUwO|ٗ}:ߪ<>^øU|TP0F{}o΃qߎLymu6x ҳc_ֈU>:}v<~uC~UG0?w v ւ::B;øM]s <{12ѯV 0iڳWkyzhqL}wxγ5/ |b=x/쁤yه}tZҾX9 ;LxJkXקҚ-!7|߃z>t-5,ZC=_>?w۾~~jvNm"QH~>oMJeRLc3?os+}\3m|6᝖hށ}ӷO`y>yVe߅{L7Wy|J ?;g=ɩϼGF?[o0sz^=1=#LJ~_4Y${_?/~%=󯉟?y/~#~>%~%_??y/Ǩ??i7??y/?>]|Ok/?;{_?/~%_?퉟i/%~^$>|#< ߈?oğ7CYN|*}6,6}>x|ct^>J?1yZ.MQUئݵ}>PSGRٯT.MOeRUuЦ_^\y>dzS_YFum6ݻ7jJexusJ{"ܗ]}}kQUUW.z~ngW}9þ Ԇ}ߤ`t^Y8y֗~yR yzk:c_WWcehP%܈No[rX~-:it^U?6_2UhtF4ߧ1*OkԐ:?~l7nyѰ>g*_K淇Cn\oFמ>K;:t-)QH8}ZTkќ8]ZwLfRz> ka}Ԫˋ~n^l36}0v+ }dGoR{|K;MFcsx3P.RNLa>}֝Ρ_ m~O}xihqq9jG@f3mp;tSO-;(oޣzzQڻuU,O1UU_>ue3طHr}8῞WȪݮoGcG:Wmzk}b^m&9pכ=^] z?yU)Wp;1"|њk y-XUU=|ݗ~޽Ц}[TcE1i.?9h.5K)}9nL|n3~Kq yo+;Wa/zY=!~'~5_??yU;Ͽ$~^cIϋϋIW%~%~5_?/~1wϷfy?߆y!~#~'~5_?/~%=KD_[S`< ߈?oğ7tz~:oE> [yg>y-6y-6}^ż%|ӏ}}>|?|`ol{$rr^ܦM6M)ۅzu|r aPSfӗIUp~yzxyoݍM\Cyy>߶MPUcmk|~~Yr Y"ԭkb0tGk9s_vTW9CHm?51/9W|Q_N~ƺЦzǁukGP~uy}|&fD:Wv;6fe}{|oӷϹާ>dǁۘM?]]ݴOMdv}|xxhӯB[A1hHѧOWt_z`4vRK*_W,Ez@PU5KyMߣZFu(}ԶL!y˵.ޛ纒p*`&hOp^~o2\c?>PCs^%=cš:缞~TUu:֎׹Nl6|V}}ʩk=:n4InҾ`3RJ8mj'U]4Y,'ipN}^R2uljS|g\3Gxr5k\~뜞] +eR}dϿB= =sќ<ͦ2Uz^\ *ƹr>4oUz%ߓ!Zn딪"+kwp{TUUty]O3Oy}Oi^iڧS[y]^9ԼҼ-on1b5 m(^}/\ὍiT sϐSZ'a/)ku[ bg ޲Lݫ敼I??y/Ͽ>6]|OkϿ$~^KϿ$~~=󯉟?yq:g_?/~%_?/~Ϸ{MϋoryoK|KkϿ$~_soPFy(|#</fϻo61?M~yC/֋7M~>oskS6}ƜNSbTc: ]...ee_^==mzXUÇIy~˷*LJ66bW}V2^.Wmwc^N_u~>ϳ?O}o׸}Ȯ/:}VUUkY.z?[kOpyc1te|v}\nơGטàSļBv'EWWW1v+W꣞b^_?YOR;طeԟm쪪ݮ/CËgvا:yӦynT^yn㧘׻w嬿!ǻjׇ۾y9NjU|V07C_Va>^Uu6*9\F}NSPU9'R_۪<'O_~yNihZX3:N5WiLMsT着a;A?)&]{S?s?6I^S&z7^^EO>kLc>WۣyuqToFu5r)u>hŮ6}ZUYu0,aj SzUE;ͤQ}ߏu)浹}߯KZuBU՟K~?ՠϹ7}q(yۇ|zT_+WU^kԶ<>'շԷ\kEǦq !p6i?fTUN91ϿD'_VQjuy\^}hgٔssc]k< 9ߌRsZ=sG3]}3ǰw?Cgy},oV<x {q\Uas}Ox {)UU0'>+Uq?t ߑ9wuT Ø2 qTS~3R[McsjU,ӳw}|u9meڨ=޲vNu5j~񅮠|ⲿuתΕk_ 'Ķ2TocK<k0W{ {#yf,uIzgf$a/xpzζ?ytߦ:t}wh/2qojN/t_׿ k0WUvcx6 yc|O2<'˱j^T\Y6鮯_NGjW|O.rfr~sJ/Ua<٤0T_:/)}4>}4K>鳷l+ w&>y~B2u0M?[_oS=K+Ͽ$~>?y󯈟o7yoϿ&~'~קWo-~?_^%~#~^K{_?/~%__|G|Oc?/~~ 󯉟?y/?ϋ}bϿ_C(WPFy(|#< rʗԤofE>_[:.6WmO!u}}ݦo]̫fˤ2>~CVk~vvK{8y]נN5.B[/b^WW}=Xn1~y>}9ļRYJjMS+Mxzy/mղ&ӡo)}c{\|kРm,\{+UUC/;v61E_.Y1TƛeGmSNxqk{eVO}MN?J޿ߦ}s_'v>tu"ݳS_'ZTјԗ_ϙo6}HFU]8F^e뒋~ tSo8UU\Q]]o!y/W}]?v5<6i s㱿Q?qf}vԶӺc1Z:&أߤ-kT'.."T'vT^yZo^\ubtNZR;yK^heZzUG>{K{Q{H%kLImkWFטGƺ/_SoU[~*__W'oH\.ܗޅkZqы9܆R0]>*[}ZFo[}xǡІO96||ye {oK>rжOT^7ir {Ii cDQ?-B^2}~?J|<⠮Zj:FUyוwUi3+W7>OrتY2<\.\yP>>kS_jކac?VU9y.[鳩]5 +YR5~H,9|tY.t}y vӸ}s܆4vBNZ8u>536~O|=Է~GÉg:夹:٢MZ?gcxE?޲W9o%OR5G4` zt&鼎qO"啮q4_HXFo޲~Ks~<W" cv~U=?LV2oy^b^S e M?~hU9쫇c}odz*,aC޿>󇾟x˻?ϙ?Ws}ޏ}xCLcsF7)=w=E߶{`wþ/߻/ga?eUcx3m{-φ>C75|GR_04>O}_5߲ߟ1~޷xÚ hk>-ߗ 'y/M|O|Ok?Ly/?iyMϋIϿ&~^KϿ$~^O!~^KϿ$~^KϿ$~^K{}iym kPFy(|#< rΧ٫tX'ӫ.Sk|}UUc9u 9cngM_mby6}6q1U+fey}K&k9)mT&_ϫ?]I*T^>uL_KjUUm_C_?؄{sychZ5=ҫor\W..2 QUU۾{5E=7mrg?}+_OaTSrs`=}="tUy㠏z|Ǻw?}d껪o6ǿc~w9uyُipUNwm,ͣgCL>jowϹ~{׷4><<ļVs^f]U\#9 "N߯kS^}+]eWpߦ` sh^e7_e54_:?x>{cf}9(:kLhΔ4gz\=Q۞z-plʛ7i<OOO*ݫ5sN嘮c$ct`~~eW2|15j[7\]u]4+c"=X7_8}摃kLstSU_ipL[U6}sûc^C6=]4uoqT'˾K/>{zhu~Gmu\]M[6? Ldwa͗Uy+ս4/q~p?.w}^:y)} ay5r:_S:s]oGt43}ضµ yO1ҼD(~a>"NӞUҸ55oõyJӻw<*_9H4v ??zèJ://gii3iR]Yz2}ƈQU?9nKJ״q(lVU.Tfa_.uk{i*c>Y/ž>v^/}΃֨е}y@ӳ +use>F.Y֠/ ג=\x o;V'Q簦TYmówb;=ƈCG>ݻ07\e<ڗJp^<<UL 1Q49qsTӳ媪S~3HGUvVU9b>FN֮UUSi~ԯwFivJr/ſh6_~yim _Ik\Y뿿GiL]_fӄ>oy߅+Ka?눟o?&MW%~M??秤?y?ߦo!~%~5=R秿*< ߈?oğ7lVUtOSS|٧/fe]>_/z<ײy-䫫61qߒ:9r9r?>>p1/cWUmlO}kߵOOOm~:Jcte_^m.ߵMAU}C8ksOw}s}K&NܸBsC6?FjUЦ}\V1Y cN}= ~&4Z,5.g6jߓs߮rYV߯-B:٬ʽ?Ǩs nsǏiwmz꣪>|xߦ_;V*cnۧs߾Na굘l0ߤY}U}}mc?IYUU?Fs~ QUY3~crחt훋~츸wyvc?7ss"|b4:= ey}yҦ/֡Q?5{Xuyӗ{UUuH0>m}a,7}͙p-שׁ:5>ЯlVyx~´Z.kLs4z^}_\1atߤ9iUk4֥_K%#oe_MR]l~˗_rYwPW8cZWU-}yw>5Ҕ'ՕSz>N˟D,0'~.ӧ~)ګ{ׯ&~?UUuOO}S߽kUU0Z4""̋OUW>u(ߪ۰c䪪/_~iӷ~OU^1e4UKS`p faч֥{sѯ..sC-TX'˼Zu9DFi>^1ӵm*#ٸ'|ê}jۣC縆J}Q>s|8hC݉)<>:.ߓ0KpgJKu|jY kR} :at1~L{у >B:4Ymj9M'a_U =»L jyJϿ޿ wc;r{| ĥfw+'IuWPGGWz_>!Eo*'msǖG) ʢ(Vل|RUU%mяԦM|^߇gwaRUu K:C1!s{wʤ~"Lo/}߆B Rww}ߒc? cX;IV K b,զM_m9ڬ?mO~y=>޷զ/??6t XUݾMc+M//mrߪݮ/þ/۫UUMn!=Ǜm??|ئz||y-6M|?'m?1Ym_٦:PU_:e~usԷ몪?٩O_ z cՇ6*Ƭ/w=rkTW~C_W//{uU4?pMǾڇXUh?8܆R^Z6 ϏT~]\_~iSᇾ|$קO<D_As废ǾCxR0'Y+ R_̯7Shc>oQUyyt^i5~oIs說S#Ofa6ujжW\^GlN?}顿_eUyst^׷y?KkA3~UkS?_Ǽn/Oet}צP:?g!}~qv}gǠ\5fU~.x<}sR_׼x1&ZNgP_Zt_ w}N}TUuu2/k㔮1-כ\^~=6ᕝe_Wsϯ,0O{\i/z1=XUN0>ֻKr^TT$ߤKIǮ:V>y/K~ǡw}[9f/1 s4Lo'aVUc?>rJx#ZU:짤w?Y?65&7y_o!w4 p~z }zK:JG}QZ~8Euuީ {in2ݺ=3ljetx8CMϿ&~^KϿ$~^KϿ$~'~~yU;Ͽ$~^KϿJ??y/?*]|.~'~5_F|KkϿ$~^KϿ:6]k>}D|?f'@CPFy(|#Iߞj9{E|>NqNsyf6}ݷtUu:}tߦ?C㾿ټ/fӦ/,}(6x,1t^j/+ו?_Ц^ǼR}8ԪOΡ纚m8Fӫr(e/e^}\>Ǽ>z1Ҙq4ԝdǴQ_㶯onc^irubN.ooT'gy .9^r1xket6a,t1(զ.n􋋋6C_w'Nw~t^0FV}z~Un_ϻGcZx s^ꪯw#ᇇժb)Ҹ}8xqFԼN%5ZoGm>հ`}9&Wz]U|FZ{ߓ`kLNXǏm)٬yba`P0;yo!>Ρ=Ƨ09jiojP'>Ozk?!W|K/}zU/6_,S}>ڇ{7k3t˘W'ӜI|iױoFԷ;Zץ&ծ1|~s̥jez:F8gue$l PkїK!~rJ'\y.Σ]yC?N󢪪MghsZ!żs~ c`ړZ,:# s?x~k11us6u_@UF$=Mf^#mJuem(#óYxiCpu s*S@U^`kc|y4cZ}cGw!}z>v-w40C..suڧO?%/{mu^44/= w_Tq-4XL㎮1/'>w53A9SJm5K7 ]+oYsM+qYf&'6Z?y/MϋIWt=󯉟MϋIϋ/~^KϿ$~^KϿ$~^K{_?/~%_C|G|O|秤F߾y(|#< ߈?od9˳Z47:ONs|6?żZ>iσ\oӬ/y[AJǙJq>OOګ.Vmfї]_WZ..NW|~]\1{O_,V1MZqB`dyΕqݵe}r} j_}sn[}C?OU.٢..81www1ݮm"SPBr8r^\Rۚ jk/}}7ܴpycl6}Z/8ǟW>M};rB{VCUyqm~ӡ/m1E[|x6G8}^i215h|RڇLe_Megy7s^S8ݮߩGT.>>9qoҸY5Ghm8λ$4Jq4L+WUUo^{ sU,2KcQ{Hu/CqXUk׋~.Jş~sk1c<7ݣ9ܗ6Ssy--NMyh9SǮx`L'cGhuyXy螤?}=ZXW*zGeЯ [e}ܛI{r9~B|.T.D ˑt^u9L%~OP7*e{LqU:,arIuuso?O&6w̎a=tQ]>_5^Ƽ~cWx2ׇm<<}=l7w1&OϋI|8-󯈟?*]|.~'~5__|GkϿ$~^KϿ$~^Kc?WyoF~Ͽ&~^KϿO;T?? #WPFy(|#< rʗg5|*}Q|>Ԧv6}k^w|>>UM? ?}6e|yyO+㱯CWժ_UU"ݯ?m_'r^Ch7VUn߯_&g6{TU}Z.{ШWR;] TU}yձ/?S>ny]Ry=<<:UUչ/eˋ?MS/c^6p~6uxƛͦOOsU_0f$}T00 8wwwmr!O2qߋwQ^>}X6=\.o{B8l{rqr{5+]KCUUvGs4gKטvT^Pטk8 ؑ <*s*Xzwso+Iu{WGkVy⢟:ҫZt=IqLUc\c*˩;,k)]81xڧW6C?/wߵzԯR_8[:rЦ/ޏ}mV}2Xrr׺}:]/y`<⪪i|/4,]p-2(٨~%SW\+ӊЏx_Ww"|ו`rLu_øQUǰL{31?H8 6QzhyX-RS?9"'Lכ!R/ ogyݯ7}L{U_O1}Lchi`_}l"MͪyMF{0na27쫇W($> fFu%oFs6Ao(Oyh^#^߄wF٤5uϿG5N}uh渧~]\w`>KZk/7a/mNf=<}eij+u>zO%S *Üuk-wF'oi~+oy>k-ۼ]-?owN0ϋI|OkϿJ?ߦMϋI|OO??U;Ͽ6]|Ok{%~5_?/~%mzwϿ&~^M??)Ͽ&~^K{练.~^oq^O_?oğ7C,|y6Z47:S& 5?/r^'M?LJ6}ˤjTrO=y`TW硋U8Q|=δkY֯_Oݻwmfӏ7)*Rڬ2c۾~~}wj}{LlUru<;+8ottn-Я |:ј658:~jW嶒~38xubt_:{xܴyM|| 5z4_弾 {F7x~e_/œxq=Ox4O{UU0v5`K}t۽]U.87>K{nW nu5 y==muvaojǴ> {r1xMuh)̗4>Ĭe kQ٧ }K|Ω/: 4_1-Q1Nk9m{Oy/N5Z1-fZGus?UoS0O둷I~N=}L{䡝TUØ~{CLJi]y/7XkND#`H;}fw驮>ߎJ{r,VY,Aҽ!^,\һIsG{6齻4nm텧q%}~7'{89T\}צ??}]W?Cvy^6Zu~b]OὨϿ|y=a{dWybտ;m?z^rGxis] S|})qxob^2gl:y">MN>K2M99ްOiͳ͎ c]|N=7Hkt^y |}qbtӘ҇ez;o[^gwTCV'%~5_??ߤ;_?/~%_}_|K|??/~%_?/~%O#~5_?F|K|{f1+󯉟?ϋIϋI7t󿍉[C{$˒tfPn,6D"=E` #֯8;wfْ<<<.iKyZļ.uq _2/?>|YԦ6}u^M86敜}yVxLp8ェjk\'f:g5:TUZmTkmZ,snk_j}lg71TRS)ԯwm~CcO}-}7<;C+gqC)oا}Ǐ}:?ynoX~m!<߇O1cCs\ ~O_,Xwצ?ż6wmlٷ?W庚lr_61TRƳyxiL>0s_^e^r5sªׯz7j۳KNL:Z ؟g}ӗO:]NGmmzԠ8 s&XÜabb?oU2慣9fӷөS޿֧V}۩Jux~6ƴt/9c޾}JkT5iMYUuVWqÇ~L5J.0$˨&̥ҽ\SҸدc+㨿M֮ctԉ4cFZhqViZv߹]}~6%Gww!u an0<>kuݦ1bsl i*纚NsmkqS]_c'yG{}0>6їCk3؛ i>1ƈá?LJyU~*9ۼFM} 㧇׻7?K UU/NӼp81Y8uc5 GyMrużl*%Þou}=o}fab0lzSؗO?/?IҼ͛7mL澣6}`Lm%m}m{x{{ۯ۫nsuOu5ѣJ(cfa^RU5y{TsZ,rbnxI+C'u2F/X?u<-bV:ΡUUzqn0ԆS^)}EU.9]WO,׃<^<ͺkOaL9_=Ѵ1zt Y~jw1!?sTo49޽ׇ\^i}>=0]/Guk֏A{1eTiz;~!FsoS\ W|6~^ﯹy]S'_Ͽ$~.m^[_??yω?yω?ϋNϋNJϋNߚ^%~>=%~%??yω?[ӿ?yωw1,fuy>ojrզfN6r>>jӗ|y6}1e1>6}npɇݡM_u͖I/?/Ǜ׽kv 1W̪wEUU}==mۘI_.sX.Cl%Wtá&UU]n?:_eח=C_PUu^}l??v u5Q^\oCnfwm!ݧS_W?.߷߽y9}8fwL]|>}1]+=W}_ҫh޷>Y^1Ӫ/ݶ[FmhXǜcWU]V1M`׽烱nFpAO}"ƚ/˛M{9yhƒkơ4r݅fTWaq4n/}JuO>8UNԥyX}9h^œ)ל#}ӹrxxhTWuC.>}U:驟\.y.u \yΒ8ewΟJUUVas"rxz瘣u}ִsn[i(]30Ofm(QOtT>~8rKa+Я!a{a<=d9xP_o`z1azecBߒʱׯ` 簿wkC(;]>jTW'4j {a/|gShۡkه=̪SO싅16׉4vWg/LsGz$û7wO>,ѽO㍮+Օ>GϾkUmcw s6xor:M_<6?Q9svUUҶw2N _r;裓TSYM[C,,SĨMZ+LUU=]]w4_SYĔsӯmS7y^aƮϒo {_. cp˦Է\3ϙ:7'uj~1/Ê|PZ{1~72ڏ cpQ`psSRab=g\^NR:|޿oN7r{ ُO1"OUU0} i.F1+Msڷ95x?R?tX/i&v )׉aw4noTgmTJSǛQZ~*з|CYUU=|[yYi蛎CY*}K^C|+GFkT'5ZǷ雡'WU cǧpu1}ޟ2By-TTU=>>除2:OJ_.N'R:,Z/r\~uˏ~C_1Yp9ԷXu $ߦ5 ow}oۘWj?|}!uۦϫ/7o_Ǽ޾}ۦE]WU}MOרHhG6?I<󢿮ͪoo^_q_~oWTgq9MQon9e.ۛ~_g*ǪO:J>2U狣dϫ\5sŢ?5Q4ԼF~ߗnQ^ww49\S:g-zZ1WUNoO!=4>1IKS޼yN>|I|\uxQ>w1>滾O?uۄv߄5AƧӥ`-dwmUU]&o_󒪪m{MO}arӏk'uuuqF׏?ԦԯaRW5;7R}vc*~<<<<r/?c.Y~{{ۦϧ?777m:WU͖=V>}ys=m1u>át\.MYxUUMoy_&TWӳyNs^:DT着nomb^~˭bJuoN//`tCU}<ǫWmԷNl:C~&MϟTUUAJj[0 ЦUUwy>=|jӏ}k6+](7oc^~~ߦW};I[UmC~syM9Իwmz+mw%UU߿oЦ?=s_~Qӡb^}շżRYuus?mz޾.uc뾟8/r߇~=M{NsIu.sy݋<Α8#i^ԶGsQՉժ?O9tUկ?f4n1"ջߍ~KiN~MJsϔЃ5COy <>I5K}A^L5O*Օ6}4}]}+JgFsI}ΨHe=}N7{-=^UU>kt/JF]?92}nv*ߪK(ۛNT.i62cR]~"]sgB٧gҫ۰NidJ{FSǧ46W j:,L wGؑUU~}ߦCrsׯ_驮שg)$ՕNa]S~o_u54Ώi]?Oߎu_ŬRo^b_xs47jW\ST8Akwi}^ijޏܤ9C_7 /.]}VU}y}`\8OfJx:>'s9g2xX>=z5}z.oB}ͺ_5qbZrNz5,y3m(G 8WuoVHJAѺ.ί&73YMu猪:yx1%mv|~߽}z{ kVUꥯ_kU9=:椣OZ,?ݮ/7o=G{܅:O}?ۆzhN~vl!|xoo:3NcZ'GFd~ߦ﨏6}9E)Eki0 g9-1}J7r?sMKJ2ZCL}ORה}m6鷩b_`_[{NW| ϋN|OK?'~^sϿH??ϋN|OKϿЦ߷OO3Z߼n7M>VM^eǔ%Y>!)}W!c.߮c٠L~rжu:rIe߷驝TU5ԷC8*|86}ݶ]ټT'Fu8uySTGǜCSvZJ s^U=hqUUP??O}۪:=KF_b{Ψ>9"=ߧSԆV4)<㻻W}^Ǿ/LmWyIU~}I+o}6}4'L~m4~,\W.܆Է{Wz^>sd8:x$?ryyӷ훛W*T>/|*ׯׯ^Z?T3 ]WW>kֈi5yD-hLYmuRT^>*&g>U0 urTS7M;GUUEs{Ieث ,8%.S]9s}AN{zzy^h^j:}ZUU*s64yz8]|6}MF۾">upU}X4/a_tmҸ9?.Oi7S_4SB^_t4OmJջsZcwkNqתr=N\_L-ǪqYvoǃ~"\^ b>m>֍tLF_~s!mѩD=y\/U+_#{FEss"j~rA9k޹Ousk>Kj٤5Lkֈh15YK:rImh{}bWo]ҽw|a| 8H()daQ=N!&һUf(g͉jvۏu}د\*LGP+~#u"}}Oݦv}vwᛊˠ_MHZ,k$noӷ>MOϷ*ףeߗU]‡Fy-!Ӟc}[OSGhuܿ޽뿯}1_WڛJ1VbYvr/t|?YsE?RݾYTZxN 5h\q k1|kq:kGkԹkfm35^u}92}??y/^|GK?'~^sϿ.mϿ$~^s{??yωI|O|O|wm^[9OKo'~^s?'~^sϿH?ߦz]???-j^MPFPFPFPFPFzVUɫUy||lӿ6iZ6u]7771T陬7Y6=X_s [Uz/WUB{mC^Զ?s|Nm븫pș5_.A:9=<Ԣ߫e_.\f\>~޵_y-}yR _Uu@i9zt8Z,g}~wߧWU-}xѸMO}%UUP77>79cLJ2ZC[ &FUX+T]rY{63/||؟&X,j Sw9/.\}Yx|?C?ux74w:ҳOᜯtY,ZL9R}_{Is<_Qz:LǾjg5r9`XbZqiXUusm_?sSh+b39}yu6RY~eB`LOdt]I*Q^uǩ3_s]1Ǜ~6}yW^?S+=┾{u s4\1ͯaUЯ_:l;ZD[{0/J]_SX UUm"9cӫF{{ w¹9Mk`2I1R_}[R=}~1KFyhPƣ9^y~6s^{ ~Mkx̯S[}MRfGsF3'gn1=Hǩ}e5mj-@©{rUUcSX.ɨnr]1ض וD,I :ys^5Aנ짶;#=xm5YSCP^_ģylKsѾiXB%r+V}3Z/QUuڅ<:k4L9&[+kο ߳\k>yDKϿ8F|O ?'~^sϿ8I??y5??-]ϋN7Ϸ{_?/~e)ϋN|O|w];{_?/~9??B~??o?o?o?od9s=>>H\.l֦6펇6}s{Ӧb_WUUϫT?ml?,?cTjj1NY_~ZgTr؟榯UUSkhuWnCg?/f؟pԺShs]OUU{\\סm/Bv1㮯+YVS8{>gXUP./]yN 5vz8cGjU}?=~y/}ϖq*H}aw]WUMl6mm+>|yݿzզ_B[vRU/}9WUB> 9Ԇ.wjJqq_w}[ 7C>>KN\^yЧO}-HuukN|fn5GUf?VNfzwwÇOmz#=VG5׵Y5D5׹RLgC}߬rr1\yTibtsX_~%ԕki [_c6a i}Z' #i<_5uU2W09Ľi4Oc;f߾ӘGy<#mGuuj^ߏ+ͳb_4ǦF1pi{9Y=k>]W2xYޗ9|_ꃍ7x_}Z_|M@S GpTHS=۾~WU:9;yxƗGZ.~ꔯ+ס Y,ekoinj8f,}#Һ꧟jR^w_!}ookR 7٩{w7}{HGTUNz(u}J{sZ?}jz:7oƂs_mMKThUU9io+ԭ>5|c5_[ߓ jz$uq^YZN;6k%}f^{z=^o0^|5&k/վ???Ͽ$~^s/?yω?ϋy];{_?/~J???yω?yωO?UIϋ)y?yωϿ$~~9#67⟇7⟇7⟇7Ǘ˹vm~ǜ.6}w8ۇ|Y|snobVSHfUUc/?n=N6}~ʤjqrukvq>s^M_/71ߵGuI5+ExU߿lsUUUܷM߶M_PUu<2(/}J[U\bV^ݫ61c:<"?Mh+PNϧ2M_W>>r40Tz e6X,}y>?Է\0}_o_qԯm|M?jNo~>驏\.g?1e؟c"-o9ICUB^ߤO.۾~or=#Wܫ*ύfX..B^_4ǼǾ\vRUm?]:\Um>\7a}N|^,BKUtu"sss3)rDç6_UubϿpk}N;S^4TiN>/ߦ &iKy+ՉL9wvIu"iktU{n47Ik<֧b3ժo'n:5%G.LFm+,+Ta=ƛy*Ҽӹo7qCU~6}7/߿o7?z?~BUU0a;Zzƭ?W5׫0/1m5WZCNCԯG[咞|S7 ?M?:y½B9K4>y>1&ԣGk5}РiLcvUg9hL7S@ 1i=PkLjo?cӠNk9VU]?mkS٧;n߷Q^з,u0m?eTWS_{w$]5m;B3WO]qz18{5 kUI2wi.o!=ў!sa}Hܫ pu {68*示6 雊u#k&}_/˰~:S?kTi 1Wکm*%y,`/}eZ ih3yz*emR_h?#9ivԾw~/C@UիWֻ?|S_\}Kt]w_rCZoN_ 3*mҷ=دG}XCoF֛v>ա1!K۰O< m?M܆k_L:i}64.y,~>.|k+}cTMw?<|߶ (<<}/JwộjK\TX&~5PSm]a~(%Pkbީ7׈i\ѿlNNRz*͊ٿg%/N{ɿ^VϋN|OK?'~^s?'~O??~*SGχϿL?ߦI|"~#~%=/?yωO.ϋU??ϋN_??tpjSKkj=,fX,^xt 1ļr>}\?{|xl76O,6ԟt9?\fmؗoUו\s<m~IuM_٬&UUP<==ļ۾\u *]ݦM_>_.v}~P`ͪMr8P7oB_TޏOmZhr;|pš>Cy<~­HaUե+}NgۘՏ^DŽ1-wUU?n>&yׯ_m#S^zӸQUe/c޽{צ:]U6}v:}LJ9fJ٠m/''vyPOZg sgq|]iL;<29e]gRUC?Ϲ"׉u}ۏUUi1\mUU0գd%9LiLMsӳ?>ż\=\jiG和撝\=Fi::&;*lի~L;>'FX;Ӝ!UUw}צ:SnIz{| k˥5ͳF$T^9KT^_zGRJ翹#Pyl*?6]~FgIeOsty5cJ:h9Kj[C?7%U=5sX¾|׮Qկ7KH>mWU_McZ՛=꫷n:8ط1p#?o֫i\dP/?==#v9&ֻ0-L}0}6~廖y1yM?X•u5ו\Uk3}L=D^sO-k%k>&3\:+??>]|OK{_?M??yS-~#~%?/~J|GϋN|:ϋp~_9OKK7Ĭ7?ߦoYI??y[MPFPFPFPFSRU]~Llby-.9vۘקOЦǘ"\׹/1bզ߬s<=QUX?}^OO1|yҦc\5_B8N1dٴ\^E\^N,}9=Vz/\^~].^u}:9/Ǫܷ_Uu{{ۦ;\\gnV}{X~*SC>Я*q8}gU,<}Z/rZ1kVU~M?r||l<ܬtawiߦM뱿ϟ?Wq ׻w4WU16;˜k>}s4g:>0KiշAOXK_\j3^Uu[yҽ*U\!K(Ǿ=1zgKf쏙N߿.OUUu8j/6ƺEVU݄cfa.=*neUUu/`9`zy0N}+՗vU"2C] ԯydr9uhncjsrwwצV}7ZOtUUY͏y=UQyr3U:)=8{ Wzߧu twc??ļ?icx\+S}aCBw;Si1'Fj%Q_ %v\燐ҾLU23c{18}HPK;kFy-$u4:sN0\Rݮ~y0>:L{ yS%cX 2I,4?Mo[isЭM_q|3RfޛO닔>oyfaoy=Xow}eЪI?~}+Om%Mfj5kĠ߬=Ob^(S֨ٴ5]QĨ=})Ih͑N{# »ǩnc=/4m1ӕJu"PģJM߯|*_s.u7sZD^ESQ3b~Myc Wm֜iF{uu彉Aux6^mzzUos kA0: e=,}S1:8r٧%|]Uh[aPYwUU77f\Uף4g9k> me51wU2}k1xw:w߇\.9"mZp8l.ہcvpHG{6}}w?ǟK+78occIk]}_.N}]W:y 5ߝ~jXv: 5ޏMPS{_~ͺk?=e{kJ:s ^I旘Ͽ$~].~'~%?/~9=/IϋN7yy@ ?'~^o=y/oO#~{=/I?rX7CCCCYNREt'L/5UUl_k?={\,}^s~:V>岿:d"җxyf}^76}^Ǽ!T6?yR^]|㪛MozWUڤxT^7oxxl_rbjO\^PS_W/YUU-óJϤj sݷYC7{ JU__׼/RW|JϪd˛<~_ՠ6auVlncVmU?߷0?x~>61Ԇ߾~ݦ1߷?SpUUWxE +UUUÜOO9e:y~v &e?m:Ɓoi :s|б[WUseO<?[iU}~{ܫNaYK2Jj0JG[Uu㮯+y0 mevUiXsZ|TF\irOa0i[5(W=W|xx+ԕ4g[~Wca>^Uç6=ՉW16OLE+7}Uޫu"կ39 Q*Kj)jTJc{c_6>=uӧt]u'~JJvUoOO3WߵYwH鱟çj&~_zXLiϷj&K涟kGV{^?OEU}ј tQH>͕O}t/{z|yWOan_Uus!#{By4(EK~ya^Ǵ4_< gaXUǡu?>sªVҼh1^ ~-c1c~ߵ6=4/L{UUMOШ~1=Q9wP9vǼ'\|Z[99ROkyx}Yz4e 9~uߟ<*tusן O~ <ėYU˰onѣ5rikG~zO=ڗ !BSSS:v=W[jۣ@q >>}8ר~5zpSe y÷1@v:kK]lC_'Ӝa|ԧVU}_5mr|/J}(ݾkoӻQc{ź?UM_'Η9n<۷6S}t]i~|'xst茶 { ү_wl(koS]7}:|-|wƚӡ/]_ԫi%$'Ц?ļ]si撾 Rߖă=F/իUU]~ ݛכ7}^io^U ߡ7H³,ca͗kUyސ4:»]?U,q?#>j 9\?]1N@FE68m\c z/3MǤ}xc.M_oG@15m/Wr!zIϿ$~^s?'~^sϿK|GK?'~^s?'~^??yω?y/-~M??%~#~%?/~9?/~9.K|Ks?BGPFPFPFPFPFSxa9m}>Mz61e777mbym6xgUvmi~3:.1ӡ^uyN}b?7o qzzxż&6}^ǼN?}ĥ=ncvӦס UnCPχPC?c?_]_.j??WU{*w}?޼~צckOwosӫ.?͛Z/s=CWߧWU³{mr˛żo_/mpZ0v<~bYE#? U(Ǫus.}u8r/ǜw syOy|r eRUuomi~YcS.妿OզWfa0awXSUuew~cz+UUU?v}M9敞_kr0؆c٬9躞cTR]]՛\s>,HV\~x:_ns]M뱴9뭪Zg|7Wƴ4\s>nqj}%ԉ`nekyr>]pzcS~'ssӱOX>\sY6wUy}ΑOm9ow}]~=,?׉wż֫ͯV=Z.X\^yͻ_usҪU0'ϓF^Ǐc^Y9a]}ݱo}:l֕Z*90ެ7~]&*׾_nJ~bM_k堼oqˏu*4j[0:>uxgTM<_9|s܅14(cx^7TUm7J{OUUwg?+VOt}7<+׉V%oU!:9F~d>}a9^z_92|Zy)a /h+6V0g+}4'/n6}=JG+/,9sXoWl:j C^[|v,V}^^1Hm(>ZڃX|r P~ժ+Ɣ[ux5:|8Hا}|S_WҽTWҜ4v9썤iơFLޯ.ó_}`q>{}'wmHNy֜VUs}Nh*W>ӧ߅w0UUmZÄ`<#0jZۥ}>½&9۫;<;w}ۺ kڪJmkwwiY ~S_u{UUmZ[uf狛U~yU59Bk} { ^ܬ9s ;Ŝ>XT׫S?Z#r;>GUCblo|e[ȸN וҫҷ|im3ZSO}?Z z1Ľ'8__Oj)}T^=N;GmL??yωo-~M??%~?F|KK?'~'~~/?wϿ$~^s{_?/~9_\-/?ϿkϿ$~^s?'~'~%==6h&PFPFPFPFSra"}ZcEpzyv6qЦǘj՟g6gM?f1:cMT}^c]%{{חfsۦ_SWUaۗqtϤjV}Z,*?<8Lvס/9|//`xmh>oSnuC{uYǬb?/{C+9s_u5UUߴ?_Znݛm/z?&flԷy}~Z.k_}!gj_UU6}b^0n>>>_.ƒ~m6}\r\׹mUPV0pUa})_SiJϽźSTUNo7|DkR{ mhGswżR_3/?"La|sдZ}}T19K_Pܣn`{Y )x^=%qCqk~}K~sӷQ]FkE/7~-7iM9=]UU0'Nh]ƁTzocwjd:fT^9~_׍IhTS6`]y۷47yx}~߷o5}i.QSس8`'?}\^t/S{?c3Ej%Jt`1ejsy]iN.~"o»ו~tEsb5o_183摣Ҙҽ}z_~9O`4կV~bIE9ލ9a4 m8ԉu].hm~n7xTa+5¦:\i=6}1O w9waFkwj[ KW˥Z4jC0AH5/}W,zWMGH<\R,7UyNS?'N|U<\Էkc^73S.)l´L}JtovʧP'?Zk4+I,њ+o9ҳOUuJSڑۻqކo4Gtw ۯ0֦p,=.ysɰh\&cf=5(OY ƁYMYo{1ZW>&}.kz]Sӫo,cjC}~5IϿ$~^s?'~^?ߦI4{_?/~9_%~#~'~%ӮK|OKt=/?yωI??? ~#~>d%~_%~I fy(|#y(|#y(|#y(|#)X,w?H|M?mzy.:]Wm~ԦN}zUxnx7|ϫObO6|rf1:SUUۧ=ZBXrXutp.:yMuUՏ6tm/|\fGoVU==}j_*/DŽ>9[߯?=~Mc8j֗cCUUCӠ>j94˩y_N0_ n7(cj=nj9͋N\'nXpO<#?ż<.ϯṤb=ו29ҏCNc_.\q=f0?KO+\WbZZ=}`m9*\*=At~>?cҘ2Hmo+$<'iLIc`UI:8=ׯ􇇰6Gf :}<= Qy tͫU_ƫUn0gJכñ߷ؤ:,ktuh[r~c_onkSn?9sٯW}/Vuݭb^жw彷08.&.;ss٧S]i<{iuПcs4e}GcNGmF̉>@s45=Z^.`ߧyizy3#}{oG4/;:9iOr9 {laPUuѿmp_7ڏMJ y8mod6q.1r;c2Z[w?u򚼦Kuϟ֮G瞺8o9Y狀&v]_6`=ݩwϿ$~'~%?ߧIϿ$~^s?'~'~'~?/~-?yω?y/χc?'~^s?'~^dO;FW;K?i"Py(|#y(|#y(|#y(|#y(|#)|kݾH_V﫪>ܦļNSÇ6vr^˥M?1l֦o6ו15_5={Uîc@_t|]e_.M_ j||^se ӧOm]]UՇ^~Jq̅?u<1"s,y<_r9rsH6}^ļ>_~M=.C^Eh.ta*gv:mh}TUu~=<<ļv߿nGyPC;zzg0֜r ]q*i츿uSkUM?;?N+K?҃\.0']|L/{I2T~cJs\w[*Q^iYylT'F>t}~^4no2{I5kT'R:uJw<:IcG:9R]MsU.tTr}NJèNĶ.kTFyޗ c<ω>{~F{UU}[I{L#_O>'ўM:OJ_M>}U2ӮK}p"Nת{-o<EüRۺY}p]aN|ͼ?ͥR5uZ,?fkN['cU_D;I}5k,]+7TaTNߏMOwzڼM_>6^ՉcS{Lgu+^z\{:mGY67YNe|8u򚶝ϟ?ƼOsLgTU*SCcV<-O7Woc^aN功櫯__GѶX-5H.}>H~?_k$zsu:qK5q3暼ffx{{ooϷϿ$~^˿%~96]|OK?'~'~%?/~9W???-/U;?'~^o/%~9bV6]|O|ILj?y/ ~M?ߝCV秿~<<<<?>OϿH\1ӹM_,S~&Ԧyݵ1qy`9~hEHϏ:s$KRzUbv;_UU 1<)//|6qϱw߷b^I,s_桝.f~6usӗfuۦ?9k3e/Z.so~iקnٲ?pǘ!ѳY_>Uj9iƪ<|yl^}r4VU}WzUUE~ ~xpH:\6|LdS\zYnSJҳ_]31՗~qh|5*ԶկMkySO9N=.}_4{\zxkNR=Z岯w#/\R_:r۾kRӧ6==êx>R\R^~\^0ջO6=uX1zSxt,S锯ӧƁ7o|y{Im1KJ׻}~.nnH}ݏ>WjC>}jwSߒ.cFc2 YOF_QmHɨM}tq7˧PWT^_4JQr m%hod G}CǦ=wf=@U.~4op޼k4= R~| g4W9\&}cUwY7\~M߅O}߶ }l0W!s {iốSg_7m|0B|+q>Vw*IzoR%OyUCR^>zzw?ȻMo_/?߭|?=Jm0pw~9藮.uM׮Y]b9׼k\S{~M^B2_WJǯD]C^ߞ^%~#~'~%_??K ?'~^o1_?/~9?/~~ ߋooO"~'~~Jyω?t/?y/^|.~'~%_D|O4??}MPFPFPFPFzVX,^$x|nӏc~:b^ժM]t]\.kuO1?6?ܦ殿U_ƧcUUpy "W_\5:1z_Wzzzhӷm~{{J{>(zݦ6|8|nfNy8z1O}:}>沚ݻwm_;&+_zw;}~yU#_}ݦOcu+2>W۾-VUU苞uvRzuӦ/Ǫݾјƈݮ۾͍Y.Bo3rJCө[~3w6]./8UUu߶iPUu82yC{6ͦUUE]qu>58tmz Fy5t̨/L\}pzW>gnZ]t]ƺټtq47Iוxy3W~"']ffq>rIsLu>͛7mzѳJ>TLxzxidtnէ=Zw4'>e Q]}6ra}2q]W_S~ǰ73jC '?M-Ѹ]5񘰦eֵ-S޶a~:L{SUuLx(V6aV5{rջ8M-mqpQ^SGygskuѺ.inXUG$W|B_\溚֕:їԹLU.oGr5\Vq4> 5eSkMj+i%_6]Wzz5L^{kU;uTUӘVa<(w#R˰7ˠ^rY%|1ߪ;]Rz?2X1OO7=SVwy;fZO1T]RJL{&~5oFwUu>O,/5m?x4u|/w݇^Cjw\, כ/+?ժM뭪zmӇܗ|ܦCZ}k_W*u1u]P&UUиNy}y}ww}TU}{|L}׎ o?>61s$Euz屮N}/g^Ƭ9p7tǎŢ?rz}lY? st_~^ Z-Brqߗ*[UU4 ^ǼRr uUU%,ow}[-vz队C RNs說nsw'seh1C8i4a<}Fs0&avO/}(ө/"}X UU=~sPӚjeUUU4FƎTf:TUBv}؟Ƈ3مn~-4>}ԦR?ƭԶFuP.i?a[J]W:&:L/:zU>_\Ĩ޿ߦuG6A]M1e~y{*+sYc]+>QZP*ݥc=rJuxg|׏0UUa SeO4̚GF&I*yWm(p/iQ5OS_WmUQyMK0LLux*-W~>s:`?-;F39k)|!Jzw阴ܶ~wS5uyGy5nW=tL#erFs4_N5uX^ic_ {&~"sa>ծ¼0կmeU,$FUUÞ,};ù\X"ջTj:Nr<7-½F;4 :^m>._~j.͡+_PW;Kd4 ISj{ {ȩj;FWlB:{ !}4&\fO|ksL랫pk/l6}汗KZ[a]J,닐qNY> u/1]?gy}_>oӷDi߱榿K?w6UUOsXlnu=}z`{ cp|0`Y5߅{٧UF )Aa0JkW^ҺgaжaOO{5},CóZo1a>1/}8һVFx^fPcMnj;xi7BYwf_>jSٿyӿߗnr~M=n-wB6/a습(tѣ9hz}>`;1k55_9}5k_Rϱ;fWߒpϋr]cϷϿ$~^s?'~^*=/?ySK|G|O|sIyIg?ߦo-~~s??yω?2'f?/~9׈#&y(|#y(|#y(|#y(|#)|KNSļMO3tU}|߷"וWu{{ks:7b^]2 At8yv܋ܮOPO\>:f?Y7r?~{JQUY~aܪm?nN.,˾Guxs3S'pUfӏ>:rXB?Ѽp岿m!Oӟϟ?驮TUz1onn~>oUchEsR_8'٧`tT{LוG}At<ž~xwu߯{W]ލjk=r9!͇rNhGh#>=飼3I5z10u<?]ܩݥr!Һ6QOm%iuM^:ǩ}il~VK+>ի~^?ż}HqǓvZj*ќ8qzXp͜rͦ_`^ǾFx0D ӧOmz*W_|wy5mUni7+KZ#~߯TF4 ]}U?Fm(]sJCNWJ?Fg짮?<ez΃ݱn0zwoxN}5ޣ8ǼOߧ?~fvuH}hN|>sѷiVzVU9v__Vk;q_*=PGusjNXrynOn sLUUww"}ϧ~~A{P^qMwUU3݇P7};`-0枳-Bq~~ѧWUZ9٬/èN{Vi1|?sRc^sY;ic4k4>t.h7ᛊ`8Q[ sϧASMI2{V~} m{tǽh5"YFyLWofc6k͕N3}˾f^I5淛-O?'~^s{soϿ$~^s?'~^s{秝[K?'~^sO!~%_'/?|*+?/~9?ΟwϿ$~'~~ӈ+?? ߈ ߈ ߈ cO$K31RY( B?͙̈6~Hpd~^Em(4y>ޫWkGr|\*>~fצ· L7Uܦc^ڴ{ߦ??ż~KvJÇ~y/S|Y[U]psLF=<3>}|ԧmO_b޽kӏO}?CU~p:?s~Vn{| C}8f6}|aзV^ֻP~uCs^Ϸxxy֦OJcCw}UUm#/_r\_<sm!UUony??ż~S?~NOm9wߵ驾:6??żuѨMzx?J_~eҜJ=?csۇC?==5Kx{8d6e<>1gq*;U0?/Y^רө.)=]vR[?WUv}KI*O>61o 1G0i|kN+IU4ץ}JU8:^*#T>t7jI躾Woo(먪5Ɖux1^%_~pur8~TyH1= *SLXihޝ,ه糆5*2_KC^7ZKY}z}1}Goq}OGXi F+;I?hU93}s~ O waI?u_MC}^Uu8}ts/꯷6!.өNzUUM&۾}W*Ԧz:r۾&u:6}t?|C_Цs>5\oJuаM./mn~\z\Uwye畮7QUUs1Ə:um0[}^Əݥ딻VCŜ^Ys~Yz̛S&美ϗ\ݶX_y]B}[SSW]AW~׷ϟ?ǜ kT߽{צݽOsL};i>^U٤6%~'I!d}?yuC:#=?wwU~4w_4?q&+d~U^ҽj2xWz1GI=5inil;6UJUvk?iLǃMO~c^除jYFm>3Ҹ2zIҽp4F겓j~BKu?#=}^J{FG8cW#+Sj%_ṿ،\}l v2jYD_Ot?4w>?ϵQ9Kxުgל{sQ^q]6z4؉ϚoG:#1j />K2ԷG̒4-F`X0X_߄p&x S_0?nfU|q i_48C +]9)᷐?հ9@W}RI_{;l 2e%q].y\&wlP/M0C^bv i0p]Uuһoz/:8M[r2k9{gKΒ\D׬kɒV~Z{Ǫ3f^0~%yA"~^+uMuwWO;_??y/?*'=-󯉟??Sϋt>??GקWoO]P){_?/~%!~~oZQy(<ވ o?7RUt9/mz>zGԦ{JuyL?r8y/}}w֫;WO>]Rvo7uvM_.|iżMeaOv]pr|뾌˩%?ͪԶ<Ǽ.P6TC].a, yVΩC >kp3驶oB[9j0Nu?ͺԷ~/1fxzǨ66z~+}7S9C&X_UUs|M1?ө7?lFspy=ϛ)}k?᧐WSZϡ|]>|hb^S^1*=?飵mW6ݻ1v~44tM]iUt/{L{_W܇g*,&St8CIVԗZpUnw;zLf[q-pS?IcgUcVF1]ssL夼RTg?>e4F8uUXpx8?}4?ŵw;a_U}{UWh]ǣ` 9|gT^O} \H^UOgT6y =}Z:}'֋s댑J{9I2on<8|ulT/\ή GBsWXy3=6xǴV?.'=cVמu>#ޫr1|h}ry-9H7 MCKum8eh/Ya'Oҳ ~{t^1X!6Mk`~|9hqyWy(] +rLw]@o'QZwa6S[v3W#w:#\R q=N?K [;6Z?}u1+anx?89)mWy܇)N/UU%(7tiC=s9N]xɿlp}?o߆=bU}hi\iy;ƴKMnVbcfyw\}x~C=uZZ.׃/C9;ODUcڧm1+PG1hz%,zZjI[]3ۉ㪼Yn{~wYݩyK~;}l}]󺖜'<wKcw{_?/~k>YkϿ{mdSy?ϋI|*D|_e)_|O|s]t=M@|Gk{ujϿ$~^K7 +?/~%_??G=o?UFPx#y(<v/ҤN>K)u>8^Ul6}Ǽϟ?߿y޶m]ުM|xs2FRݛM_{啬BZ ZǕ)7:}m株m?Gk=?BWU_xZ+f˧__M)/s[(z~~nmzϪr߾\ZeJ4v {k~]WLFy=>lj/5??}~oU6驟/os^CߎZ*=wWӧOMOk/LUT_H6ᡯ4UUmp2ITjãqv6zK_~sZZ{8 k4n>k5}L{Q{L$SF$yӘ:^TU߷1:IcK*TqHDNwṄf<K瞣2f\7j/Q}y)W}4Z^DHj5̎k޽/#p3ڿcNc8Isݨs뙛u9LhN;ǰ y(KZ{_;p/^pQ{~טitϪ*61zg5YNgFuIs`niIcy~xϏ+}뜔h\\Ky=ck&f}x޹'igΩ.u-KUsh {Cj:~zJy;һڸVuF:I~yc?m};؟ l&Ϗ.K~,9Ύ:;NP{Lօ]ςs|ȷ2;~f39/K2SLfGYrfI לvi3:s^^ҫSxoQU%;~1JO跐 5q߀TUvuw}Msec\Җ28`o5Z_4jC+%8½[hIFyuuRUuQ9S~>b^SK*;%|霪%M?ǨOt>|pUm! Ц9ᾟǼ*  Uз4NcQge0}_4V5:|'直؆q*ݦO R<؏5)b J!ZSm`a:!IU0?B:Lu > x&窺vcGksvaG\OOy/vsa4~}h݄,}賔8ǻ{~={Im*9sߎFx:HuRU׼ >CC+slgYɥP\J2F{qF "Z69vI 427iI9\o=znbZjiK!(Th>K5qX☗ַ7GQ1ΨO}%Kxa\>] /|ZiݟsMC{5[:<=KSF}d (&ކi5xϔ&,Y!co:6a;ZK=.q/=wU߳uF4Vo᪪uWa-cU9.o4>??y/?χ?Y;_???????qF( o?7⟇ClgZ^].өMO?:M#;OOOm~yhӿ6>u<61u>y߬?S6Q}^]ﬞvw>r9&9jl}'Q8m/1VM>ż6OcjӏǾݽ{ρUU?CƯO~yC;z}>jO}NCvOҦnxpH(77دsҺjǯ4?n7:ڳ?PPUUs WR=zbt]ϡӘ^˫0~S׾/sw}~zhMOk4FԷ55}{MOĻwxUX{=5ݧIjé%m%TvU`Im~t])=rOֱ v?ڏ:N{QJ{ĴIkґTMۛ_.a~> uhNnS&мGj&/ZR|>9ch\Muy>w4nZ_GQӨX uypNCez|&\jѸS֒hϕsk|t]99Մ11]7*Է}OkWҺ4F`ɺ,us:G8;]ThN4M}|/;tT7a=jiuSB:W9QѼ9{0ZǦ>9c󥯯(hOw~WrxުQ {.k>%dt.7k|_k0qbΨki%)Ifx_ IyͮM:%^&K/C_36l!jfo5XXpFU%aO~,5}p̪4]AR?}ϖ/<>>uihv33ٽEUƩ4Ώ7k8Xsgra8;Q^K΃a5R%9*I87vϬb$gݷV eFse;릌g9K~3[7m>7s%Kf&sَgڹvx|6;>5Mk{{;Ͽ$~6]|O|w]1+%~5_??y/??Sϋo y?/~%gMϋK? ?%~_???_?/~UB5?CFPx#y(icVTM,Zmz:]wmݮ/ӧļ6W:vj/ ?W.9[U طЦ?==:MKMkǼ5wu].sy~~&GyA65߷ԼW>^UU[Hn׷χ<>?B? ;:/k~=z6~\Y.6=4VTt˨𬪪V7~)敤y+UU/_ؕͦǻw9Co].yQOCIcӟ{?qt4v*\XhƩUxec[_?1?3Һ*qQ^}]oJzzާOm.1LJi}h?CWvj_i ƏQ^F+N*'|nnePwcȟ|~sUU>qҏEy dTQKߙMʙ0w*}sL,4]W%{T~i=('ϛ1Oͦ,=GOQ^^r%g;KgKc34o\*^W8_sG)}']oڿwqinnZOm5Sý3SN:+̷մVsٳ88l9m(#ez{zqn>g?seT9y ]Z¹h]1/<6ES^4v>4ZKԾgOKp?CZr虤ryK&i_:\-k:6Ku?wp.؃P+4͛U39WUܼoG}ǰ *W} s)#q~;1*"s8צ1r4~U_<~q"! 8Q5^xfIkCҽ/iw׼k,9Ǜ5|4n׻ &~5M^tsϿ&~^|AKkϿ$~^KϿ$~'~~O]ϋ)[|[{_??ߕ!~~k?/~~ϋE|.~iDKϿxuyo?hϋF{SF5~~)_?7⟇CFPx#/ׯj>K>>\.mvop8w߷16kӻ:]ԧiӟnrvq7W~m6x9=gy֡:~||ywn2NOmz^QU|x*cܷg$=ݮM~оR>msu CIʧjڄz>n~ͻ6pY6q ]Ϫj_K_r[or>}LsS{]t:v> oWXb^iJ!P~>~ئ5~T?t 8? Ưvuv0~YRՠ^Xx?|c8ϙsOUgԆ}O}hnΦ;Ծuypp.t864~q8_W}>7Gy=?{tqRUоҽ}'KށΧU{Kk0~,Y~g=>>t4wXxcS5={S?zn< ?;{QLy?yo߿kp^|g9}^;4ASY%GȪa~qkZԇIC)9S!}4%K=g-.J5EƚX4TU˿~MuلùXTUVjƻߙ2roBti b9nmrsmަbiWUu:a}Mmr9m]fIìvϐ|_?,#7|i*iˢP-A}ߕ2(>n~:|ֱ~ s߇%󮺄9-vs~Wxp[5}l^q, HR%kǾ]kvZgѹ撳^n>dI5߯.yD^f-9'}/8!=y{!~5ߋ??ϋUϋI|OקWV^{7yoGMwϧϿ$~^KϿ$~^K㷦?/~%_??{_ ~#~~CFPx#y(r?/W޽Vmcb^?~lsoż|ҦMb^Tzge}(ZQUu:THuRUu ||>LUvۦoUnwӦ??m/c^w}}mfion:=uӧ6=ߪu:e<==ż5LϞY1g믿=Vl9u߇}>}6cT)}$6C_ivƻ}窪0Nƻ~c?_߄RU}?sZ]mV\R?>Ӟ9o}hՏݣ?\gg5ʬy֞U_Pܧ n&٧9*?t0UUm6s< Ɩh.(Yz&y R{LQ9)}tGy}Nh8sL{Y xp8u6qs]4~TU݄3Fy%}jM纴ؒs2jCM?uC;~|ǜiNs|j{q=9ysy6}'cGpT=~ rnۏ{|»؝DzSz^0SWZU>4m/% Ưy_3̛<~Oc`ȩ0jYrf!,8؆hWU_B}^ݻ{%M8_\$-F9Y2~nc?/9uK?~WOkt`69v"F.\V&74=g͌0/:Lkp+~]x'΂^ T/g6o.<#ctƵ kx0λ۰^ UUsH~M3f3zهy`Och+X~$| kԎӽ΂әwߛ,9~ToHUm}xzlf,YO~tƖƉԷWT t~S{5:FWGy>x=yV9Z͞]\K-x2߇o喬Y[OfW޹Ϟ#.M{yKqzIZrV9kј_ou<+oeoM|KKϿ$~^KϿ$~^K{>}TϋIϋ]ϋIϋIweoϷϿ&~^L^2wߏ??y3^ZFPx#y(<vWUZ^G)6r96>uYtu7/Þכ6}+^x8#aB[C.y֘uRUu r6AN7ܷ7 {P 8¢r {]!]٤=bn+1EiNM]n+k }%cUS\שLFaf$a=R}>H;< kƢz+{Yj?Z61({.KWz1c:I{t}ǛsJg`ɺ?㷐֫)}<ץOc|-ғa[Msm5ނW 69-%ωV'x1g~ g&|-kC,g\kQ_]_wx<6,X/.8ýV^Ke`vַkQ)z? =󯉟? m&/mχ"O?>YuL|_I6}|]?ɣϿ&~^K_e??>lwg?"~gϋE|?/~U>?ϋo>͚ះCFPx#y(_rJ?;uI7M~8b^Selϟ?/_b^ժMj\_>ܧWU6M:Zm=ƯDyO&N.Wz|羜&ԗqny>6vwӦ>W%l6|jkuƛ&gG~2ysT_oGx^mum6y\;W_؏0WU=?9~ǏyvWb^k_FX4lvyFi͐ҫNҹspx.?UUzD K&?Ǵ9[ap>m?ƼRzm0~}M|i5s_,~4~BO}~OJ\ºxsZ_%9r{=:˸~w=C}9ѧG}s_v(cǼRݧzݣye?Om8?Ls܄o?KѮyg峆}(8 Ծnnv4ff6WNZGƏñlbIDAT!WeJ˯Kڸ/0z_oLcsײ{,)#+4ٹkWԾFqk״gRy SQ)}%+zYJ,X/YFN:)9g鳴w(fxڴLwgĨϧzIף܇Ҝ6:{K}(G:*Ҙd,Jv9c~b{?7H.:#]靖T)}muv:~dr/6Nۣݮk'~,]i !}?^;XvG.hNt {q7KC^0/X,Yn2D@\D#uu}jU\Ume>]hK@yՠ ϾO,oof>+Iev;K֞pŃWq8Hy̖?*ޙ=a0ץ}v㜛]fKvzXUy(N{~:Qpu%jg(q^+)9cN\U:F4\3f{\0~If?#yWUU, i%͞g,k{ߗ֋[sǪ5%g\/&Jy>oesYPɷ5xK{爟MχϿ"~^K{{_?/~%=󯉟?_%~~6Du?y/ ~~|gKkϿ$~^??=syM|.~:ϋI\^{??w]>}o9~"Px#y(<ވ od;ח*&WUV6}L]Uu,x<Ƽ]9\Y*JwRئ.6fV)?ec^Jmwr}x6Ц?BC~7:Oc*l.܇Fg &n:+LCtlK=4/ykyz&G[q)>Q];R??-cTyllTUs{ׇ~^IKXrsgS:Oy4., mr걪~ϵۅ3oҽ}}c7p&x_!cg K%s2i\]x~>{.dHe|q"KKx2~%l~0?м*|g>x7(t;%g#e\;\[{ZnSOK޵8ۜ%4~,K*&=~7[ Xx]:;?:L)c؇':+q8wmN?꜒,|җU_sQvnż|Ҧo&?vyl/CNno|:sNcjpHOT6eXshCSnCϮe}t鳔>RuJIm*;k m{мF.O~8hÇ<Ǜ}?~<=v5UU˯mf`XKZFm"KӺ>چAOԆGוB[y1\M_)9˹ pZ{o6}翄O]U5goUӡO>_X羽 ?jGIZe4zXcNzUU5|wiSꏣyhr kҪR}d74G}R?%)!)_C] ֱ6a~m]S]XUUUO}kfdM%귷s\Ʃ:ZҎ9e~5^_ǨYj+ };w wt]O#&_vea~g}6GZv=MoҸ1`y}Is%͛}8?w~kxZrΓQ^;!(R[Me Ybu\g̏\h47^ u?W=xDGgoq훊Y N{o1r:os, N\3kEK֑1k^ne;͌ƯwKou]s 2k}l׬u]zIQUUp Ώ|ͽ~^/3akK%m[^k%}>YҷsvfK׵Zjsk5K~v}\@GϋI|OkϿ$~>oMϋI|O;㕵u"~5_?ߧ^|Ͽ&~^Kt=󯉟oO.󯉟#~~}'?飼ϿmU;QFFPx#y(<ވ od;׫ns6WU6t:ż.T^!敮8]/c>$fi߽{J׻Zb^OէIub^%_ 7W>Kź\{llrJrWzVUUmzj?|}x+=*=Szzzyܴ鏏5+ Je;WZz;?S^)}4o&除ܾ7:r8+7UUsYۧ}zzs [˧Ocn_mǏ:ZgC+>ͭYR[zzD?X_UU7}^i+}_>ż*kӏ7\W}igon]9\[WsJcn^iKzٮuniNW{m*=qIZ3my-w m˗/mCnv4ب_4?{FټkbI?s`MK(پ=:LM/KDZF{m?ގJgېmHh:ejLm"$egK+4kvv%Yѹz<Ϙ|4,,xϔku=wF}"r^ӽ<>ئSgӠ̒5^zg`nօ3/_xeG=ty&;V͟ש2̵Q9#KvsJߋMM_BϋI|OkR<Qy(<ވ o?7F&fӦV6}|>OoNS~8˺ު|麞b^P~ry>g2|eΧ;1ZKބMmr9嵾v<}_shϻܷo7mzjvݯx>99}rǾ^uwUU?|Ԧ1tUiYJRq"IlU5?vJלsy*rUU: fvρUU5h_u?M_c^7^~]|2c)<)s_֕cMkFBik\0ϯbGmӚx4CV3Xq5TeZ׹5}'Mȁi\}&тb~ݐ5B'CXWUΡJ r 05K/陬V9׽>~gܾr=BWn+iƢd]1r6*9KZ5h&˜>?;iv k܎Ҝ2Z/unw1j3=ƽ~XCWJ^U׼g&9ߍeϷ/˒+B5ǻ%%c5/kKOs}X>K%q{69t/MŖVx{wׯR٣sݮ/tߟS`NImeQ^dZrGuIg}=.z޿Ē98Y2ץysti}ݻ6=ˌ+_Fɼ籓cYgwwsf^6yuf͛pp{KUjݷwͪM__|]iMޅzg_UNehzS܆S:?߅)UUUmsLͼ6Sg9=u9r ~h~:sX_3԰[ՎCúpUOiG[YGyߍkJger6㨾R9}j=A?sѻoV*ZZfcοZ69|%zgP+>?=AVw!IzW[Uu 3Z|:91NяeϏwģgK+}6{42{{As%gF%~^KϿ{Sy?o.K|.~'~K|K|Ok爟O%~~ϋu]篒^%~#~^ז-~^?ߦMϋ!~~&]|G|D|Ӽ??\#~'~~/:5Px#y(<ވ od;*!X[u{{ӧ6M_m716=]c̫֫6y߷1Ԧ6}}V}UUJCzHM+{^UU _V9&>1\oU===:77wpC/[Ǐm:< }(sn٧ <~7UUϟ4ǘWƢQOmx:@Zr;Vݏ>]sJ]o*'ùS\򸖿]_i~p}~>ݻw}w}צ{?~6=Զ2r{K>jy(頛>OcNX4g4Y{|Lk0NO~YÒ=sJs蹧˨}͎9ܣ./۱p74?|;{ѳ{%ftUsUӽ\}i]ג9xIJוMFsggts;4Fu^_o뾌?ϧzIsS;}VUU,;gu=;7WQ[MqI)^zSNkӽ=k9K%{um=~l߿s:uƟ6~mӟz|o?wyM>Z*ޓipn}6toV}}? Ol`/ٽg%Ӻ4x7GC+/s6X2&Ρ̛qn{p3fZ}pw a^2~]s\fkgKi,=Kh͒f2+%K+I/]5֒{3foվљ`Z&ߑ͎KPGg޳M'F?˾3k%{Yd~~;d=(\s}\}]Ө4-yϔ[0{adkoZUM=\WϷ_?/~%_?/~k'~%_???ϋI|O|OקM-cTϋIw}9{^k_ϋt_?/~k|%<ވ o?7⟇ClgZ^=<<Ŀ_Oz{{ۦvsئWlNSMOuRUuTM˥ϫOeTU]Ρj|zݶ~coǧ;>mrз6M~<.64Ok?/t8.}^myMfӷ/mSuߝN}knܮSoKƵ79*K*ԷOFWΨ=n}6ˡ/x8a*̵^6Ir?\6}]>|J{psO6˗1*3>֏i]4r> ש]X礹m/Wje4Է4FUU{_ͮVa{9zCfǪ7᪪?S_UK?1Mw=W>)ͩfN4#.,dw&RN㨾> s?|n vU96$|=]5Fudh~Lnu{tf̞Itww`Ok&pY}Oڦ3.s?ގ>҇ud:x ַ짣vwzm='tͳ9-މ=xyϨݧ=θ&è}wF1SIeZ߇3Ԑ^UK9/9,*~랞yYzx>[s0t&98WO}8{mJ.}%vtcS؉{=PUyl;;uq<|7gu~v m"_}Ķ2Z.|gWZl|vGxu>q{k`$=;|7xdU{9ocJוPƨ~,ч6Jף5KgϢܵeʰOoi\]f~7>IWǜ{Q׵b$]×~ϹB9a}?:^L1s8J4ܷCiZdIh{Iu-y'd]rѽϮsoGgPQ|77tmuTr:l^rw+gKޯ.iGw??/~u*_?/~Ut=󯉟MϋKkϿ$~'~56}{_?/~Uo#~5_?/~uowe%~_Hy(<ވ o?7Ktz6g^r!u> VWUm6A?ݮMO>P/kӧo!_Yr]sT9[}'Ix>n]q-\y,Z]raOUU0~ԥo+}S~Zc>Ƽjc?)fuߦ9e8ކu܏w>4+GU ?ܦ񹪪5]捪cI{7vܱ>t{{ۦa2ҳzz c⺻<ݻz>|Цe*Kߎӽߗ]UuwׯcxKF1ʣt3Z_۴(fGuG0o1g0~ĒӚar>kɜUÃkgaQ^kQ=y;}~֗W[t]yܹdNK_| \udղ}Gɒulz&1g^F}h6%gY)}4ζ9qJgMNMlRwBZ33תWcpft{5f*w~P~KƢtKw Kk4~%5ֻyYKb^Կft;VyMgwBX9>=/aWziDj+cݷPN0IU}?5aU9ѧuvڄC8׮G|_7kvl6̶f%>57xtͱhv< <%c5=555]s;|'Ytf4{f \F|K|CTϿ$~~Ͽ&~^Kmzp_>"~:ϋ._>"~'~~ϋI|O󯉟?y/#~^k{CwϿwϋI=󯉟+Px#y(<ވ od;Ǘ|~s۾ئjj7MunYvSu\b^YgTK_z9Wl_s^m>z~zS}ܫjᱯM_D轩TU5_?t^uns}?w7?~mWa뷪mzC߿y%)4tcMOtVRi\]W,' 1=}ǢuwFy͖3\T|J2uVrHLjS?z>ļ~Ky=<=mo=>pk+UUsZgy׵ۄy;ys͠}?qQU\ 6ϛm/Gcc_}˗/us6O?Ц5c_vUCsf뤪եۣ=DӞ']]jGU??R{{ļMIkOiެ9{CsXy-c,mQWaU9]ojUUOG|'y%m*%ؔ}Yrwa::#I|uy .I=nIaK]>5UU5Wg)=iLczJgF1:%SB|`Oyq45܇ύs(H<Ο9LnH%>kMyۧqr|]g4-k+sR?M>pxM~6p>z羜t#˨͇1r`\[I}^1;~,s{E{osI?sd4N̮Fc5Fג3tcTU?JWSzUjd9ӹxҷT_EzOO9kcp.La{9oc*7a<T8gVbwVggR鹟D8O[Uu O{Zbxs>t3+oYCZr֐\W %sJ[$k^5kkIC=s sk|~ٷk{wgZ4s+1=p3Ž_{>k^3|~e\/.1[#u7ӳ%kv^{ o%~'~5_??ywϿ&~6]|O|.~#~~ϋoJ\K|S?y?U;_t3募Ͽ&~'~'~:_y ~ˮ??SFټ?7Px#y(<ވ o?7ry^1$O?4w::'h2KΒq^ }x4פ~>uv}Lm5FגKXO5zi E pFyɺlI5o}YƜGyz.K־93Yx{wwצy~JxH*MKc`',lž~ӯ)S/$ĒIsIf9xܱ}pɼ>r?V|\M(~λ;|oWC[c?7Ss9c\6ϹCRetq5qH85?w99xo^Fm;nj6! ƸFkbi`{MKFy|$56q}5 ߙu3k(f?fؿy_b9aϗiGavy%s`Z.簇=]Vg-e]=l~v5׼%b^c?y#~{Sy#~'~5_!~#~'~56]7eo#~G%~K|.~~;K|O|ϷϿ&~'~5A\^C[??-~j%~GϙCFPx#y(Vի>}v\ KixlOS^I5n\/ߏl\.Wc_S)9t|jWIVk>gJUj y/rJ~.> ?K;t<<Ϫ],#_W,gӗ_c^ Zft:h,:~نQzm=>WU^e?4T(FekN)owu׵ cQmƵ4u_~ym6˧/1C2S~<cӒM S\_o]QUu>mӗ;};lCiSwOOy.?6}߆rxhm_ż8ӧ6}ۇgXַqq}OaݶowPh1רo%qUUzi;#n7}}7몪Ͷ^a\F+I̦Wq5~}2#SKsldW51lXp ~,$yž}s6*Iv4D},:cthoϞz%{2Fyњ%>՘4~dvN_WѹP>۝7S9}Ŭ̍UQ9˸͌ܜ2Sx׃sH:r_cM+4bwq}9C9V~}{%Q^Y%sqmC8I>getkY Γ켪IxSD:ɇcNMUm5=ݶx^;9c>g| =^% {) 7N=񹿰h&Mx>Y}¨&ؑD{R=$5=<4#ylx|}h]vys3}M>0Ż%dfG6a&L׻ku;%>\K]9^w׵\}v,i翾=]f;_?/~%}9_?/~%_??y/? {>}T_?/~u^;{_?/~%=_-=M^?/~%=_>L|Oקo9~zះCFPx#kdr<gj*}͗nBtjT#\.|mw:g|<~~K+t~jnkϫgUW Q*V.Sm5k֨?ZmC>M6S^K>}9;vƵT5{YuΗ/_b^wyçgQ^]R~fwۦoŧ~=Wn09rw|Kڭ=?C羈ܼsIwwy]vm&~駘WwgUUOz:8FsGW*&MsO5X~RU~vUWӜ28hyII}qW:~ҦgJZ4o=LJG!Na:|<+?Rsٮ9gDz^Gmbv}ȒxO}*u<g+; mK(c4\{͵璹#im,iyl[\~ɱkz.k}̍9y ZkmWh4s˙=dž*gKͦIsh]rw*iZ2?Β>*_sڻ.9W>)pYUϝ.)ɸ:;s|~盹OU8ﮪz|uuUv7ˌ[+WU}{zy;iw6ᒗŹlgkɚe֒řYƲŹ+tZI&|嚿Vs浤?=5Sb.9HpWj+iMĪ6Ⴇc=w\<7-ckw׼%g\Kt;kѩ~h_;5Ϝo5?^k5sϋo>yMg羳Ͽ&~^צW%~5A|.~~_2Ͽ&~^K??^9]ϋI?/M??w]C|Og+?/~˨???y-~Pl9$K4lqȥzɦfj:"|13΅gQXRa}aE7⟇CFPx#۩V].Q?8n7>`:z?P7M<~_aOI/5|> H | c>z|ͱwz5xUcpc.ۦr u*]J;TC~!_e~)ׯfCYUᇏ*}js܄2Ch]ڔW|aϟ? WP.<\ڥ&Wn|͛nI}5yגӧ3姿sys=xn 4^N+~S?юۓm1+ d1Y\|TSȽj>eT竪V³zJE| kTVݹNq]7n]pn+%N/X[NTҎyt?~18fRL=*֡{oƁ8]J| m$[}y͙67;*k{kvܭ!fu5;nO=uxZvR^Rf˥PW^{;,ZKεj#_PyƸ}ޢ û6gvnk߾ߏ0}o猟ɒ;a.M٧zIU$%+GMyVu֫u=2k(̴~6lk6suص=j싺}޺yGVcg}<;.E?f&CI,s8&WNSH3}t3gد.؃Xr={˖䛒YKqll%,yr/X'=? ԯ'8]ɒzOkelYi6;^tUo`w`,P'^ùy_ mhI2]WO,{[ү%K)of#~l>y`~=k=.8\97Hy????&~1ϧK &~^ϋ1ϋDs#~~??&~y ~>]XH??$~<ϋ9F77ϋy_??Ը>*?K>3䟇CFPx#۹?rI]Vfa\mzS.ǔǨ |a?ӧaϿ4L^yTUa0|>s}~?s{nB]neʷ}S>Nv<]{Hל$]ג|y/0n_9W8оBa1j8v\*ZX]hӟ9eq|Us?a.SU:#Cox+Us_Ӹ><"~hG߭Sw t}H7ή 7{M|]ipw]P^xƧyVWi>u\+Ҙj.߆p_U %t_{UU۰K[3X&US׵GU.}7󳪺yaoo'7!|w§^û*=zχ7햦̒9]yY6a^حV(y LGw;qz/y{oMKHsmxkk[sϮ1 k[~֒߾ۉ49Pw-=仿|wwuub[ Ս]ezO}u#c]UrjԪ&<7}9~jW0}0gj Wo^n6%Qe;$Km̵i+ÿ_0g߫mXӹl\ƭ%s%mh9vm;]󒖝e0j!}Ύ){y_'~~7coϋq1ϋyLj?K??"~퉟]q"~~|.LgK o%~^ߋ?Ct<Ϗ+ax:e|9>v0}=Tv=ʧgӯM:ĺ޶p6;&_K<0}=#>}5BzxIU՗i|+Hu2nC>VUm: qYWws <ê5݇Z{c3>feߕ00=Kwz|P^>r?i\ޏ0yܮ6a{| }O\ ӯ=TUN߆ލB_|>?\x}V\>}qsj{ԯf\~v7.ǪY;6 ecU:5IOf-ׯԆ}x^2.MKڇf\=:kXkNqQ]͞w=kP&UUpk^W<<>~R'a 5{۰>ePUu>.b8y1Ϩa\'R?\U5˿x*?0~b>]UU^ʤ*09cxx}kT_R6)gƁ=v1_v<>Pyx~%$ BQUIsKz)}}W'ajCi~z$};PU9iyW λY;Wzx}108z7YyWZ^w6:<՗ı# DM_?֯{NxL1}Q*Eƭ曎ukKX55UͻJҷAujc+4>wA>^Tn)ԗ(OOyvs:cΕ9}\Wwwkة99L46a]{n%+3PSK_w@VU1{sC索*ռ\ᚻoDz$}ͯ~Y;)Je]u*tCGZCCMczݽkYľso۪K>5}*PtiϨ4]0Ks5mU}ylXwt'K׬e)̥w~哾_|>%#֕»yLUUcXwǤ,uK6N?ataoK0?䳉?K?qϏ?? ~~,~~L-&~^M?/~k??L??&~~oo?]^8]ߦ!~ӫ?K,?CFPx#y(<vWUm6^}}v̶Ӫݏt~qøkINV㛹^%ՕSzSM|w~IK~OUW}6O1VqC>Ӹ/ޅ xxL{Ǐ?sc^xUqz4L|]}iR/a./ ~0ݻn|qz|m k5yOt|ݜq|]cﶹޥuxrz RPMn[OuLJ?_>Tj7] {aδJ zxL>T>i^x\s{֛9޶iN|_U99+a|KA6H7q0կnmwЏ?:C߽CnNơTWBڄ.fdv 6|jqmq]ZvJͤiy? /zɚ/Yp]-~<ւӸf/~.#8q)84{cZ}Fe|-vL#n|J܅V߽OJB; H^N2òhv{8}ӸZv/6sS{hsMWZor5!~=y*7Ҟks~jt18]lZ5Pj)޽|qmƴt{t񺚽0czjɥ[Ic_p]{~GĒ$bsu8ɿ=3UҾXHOC˂nLK1ϋ1~ϋy_?/~&ot7ϋy7/~~.~~tt??N??$~y_?/~a1#g~??&~~@\??I{yoye7w o?7⟇ClZޤ|﫪N0}Zsm6!p|:_.t].L*xjy}*˧<:Mz(Uݎ2Չzo1͹.NsR1\XWCt{LϷ-{JOm%=|)ksHm gNwTRw$ks%GJ+3^5K+Yr0}ӍxQc^~xXo'yaUUps}Nj]9|tqM{|yP+UUc8d[sWzsRsٹIjrAsǂ:[n~=ۯDs]j5.Ǯ^e8n']vt_d_Pv7CW^meI{L7H,gte9}]aVd^6;]W{wqm$͗QW|fw_?O]W7].:)Myy^z}=x@U\2?u}Uޓ޿ϕӻnm%_]A:&^NNl~5)KƎ4úOkvߠ37Ēe;{}fIn=pR{[]^׼_I9B__ɚiFL΋1c!7e{\{FskUW{Ә;k^1ۇ0}LQ۽s8QYuUUp/n|]syzxa:L41*Չҽ<<ه>4~* jh)R^ǹT4V%Ήs9qxϻwn~HecոN<6kԔ:+ٹ\3T+q8vS9v8/֕}ykI]] PgU,G~OcW*syO?ϵَu8 spk4i?b@H k]\%:=ҼJ/{q|yF!0IǤ)ؼ{?Ün1^2W}{xL3]w㪪 W*%kdɹfwkɚzf_ɒ۬E+/ _l7aF@;N̶%ܳ~y{37^y,yYR|#=ƨ{֯{;YRf9=-רxx=%ɒ+Ie\>x޽'Ϳ+{>{ oKbQRymogȶ Ͷ=151ϋ1s??/~~\o?5c爟,~~.~~L-&~^Ϗ%~^W??&~~L\?/~[舟M[M9=*o~?CFPx#y(<vWU6j5L?9z^o|{u2L>鿝k9\BUUq+Id=z$oU]./csn7L4q<o#]Nqq]]HWNgHm>Tҽtu5՗t]Kp8L]W]t!6[:麺gx˒hMSZR][ɻ?m|~v|m516'.at Dx>_y<ۇ|>}ͼyͥ>~ݻpD!?.%k/6sv܆Yʥ_q{˸Cya. x mj?4sN>'=;)0R=ux\|?S>7amzVs||HGz0yzssMF yO=\VJf2\2_L}wWͯS0=nM?qw]sn~|+WUC0;_Kִyޟv;t m8nΒa~4RulB?ҫ.5׶;,Y'ilSXޝͻ_a~s60>HǴy^_%9͟+?#Ј{LAv<[]Ohojq_꒯r0'N}dw]xM:9vn†ƒ}Tatϳ{|<>>s#~8?<;9iUa|9M9Rͯa cZ7/{|חd\=S{?9c^n7wL*f2 ͮ{ξf,эu{\~ώKuq/ٛI}_F]|',һcK%5{IimJﲚp̒:O+oo4<-~p30[W-=e,^|4{*__^{9[ٽ͂=tKϋֿ??"~~L/~~L-&~^ϋ1sϏ??"~~Lܹ?/~kϏ%~^/~~y7y"~>K /=JLUGϋ1Ϗ?κ1<ވ o?7⟇jǛf9z5>O:]U0L?su͚r0}ϵ_JՇ)+:MQUaj5_ru"yzz=2u {.}g15t+azm?ҕUj)=U^MytR9v5_M?=q\6%+ջ:tf<2oaalsxd8.|y??s2^յTNqݸWSLǤXU )tU岜O27gW7q3=wyx\R^2givƎ%cg8sީnBzƂSx~ΗupU]BCsn]Gdޝ:v%c]:!+85iZan:IeƇUtJugkv{Ǻn7-}w]%Qgn=~KuK5רcJϒ1m^~}۵ǹH盟cjY%9f5_f%cm:q@|gw{id<~N?|q{=sܷ㽬&[|]۰vZbys2;6WY}uǻ^{H*/JJ{]Kj>}J咞Ǐ^^?ӷvFqKˍϵm.]Uu d|qzdv<_ǒK /uG/]N׺oaÇMWIytk/]RKz_iׂc=)ݜev~0=uJҽ]R@H_vM{>u˻Isxy9˒%m(7`/d{Kq{~bɷ}K);%۩\wa|6xF![~[Ҷy{{Tus܌DŽL  Estw_wc. ~~L S?/~[Ϗ?K??&~~[?/~Ϗ%~^ Ϗ%~^ ϋ!~~.OfϝK}#~~??1Ϗ?K??9~~o?7⟇CF3ZjIyyǼӯ0}xLr8εZ̫j w^{<\.|pJub[K:Wr>˷#,C[wL2{v}%p z+}Jjw)tLWo]5{%u]ols }|޽{7L}o.O4)KǏԧVU?0xcܠPOO:0Cϟ?O>~|?LO}/_w|AUMˎ~x?z~~JߎxuٮusqC_9y KkG\9~mzkdmJR9|JOkU3v?vZϵf|_ƁuxWӽ/k䳺9ӬS;7Sey;V=dv]dO<95TU5W.).tLw]qկԆSկMsͮ5[W0~u=ʾ];c[1-=*!0Ǧ<Ҝs 9G5~b&3U sE{Iw_ݫl@VNt}m5.aARvsϴ7ٌdu8Vޯw-_>wi~^~f~\IUf3s4'z~ス{|?qni Ncv'@U3eJW??&~~p.Sϋ?o??L??&~y_?/~k爟?KjU%~~1Ϗ?5o??"~~L03Ms??.~^-~~5#~~o7)ɧs o?7⟇CFV_|vaTUUu~qzUz=y|^Ul雐6ž*c\q~\a%_0UU}iûw\^^__kT:鹤:yO0.HZ|UqNUU˸,S][UiXIeۍ^3/}QU/4LOu8 qNmROeͥR[9J٭RLוҫa\IXUU߽S>p:-iWUَI;y\'q|/㟆驟~9zҫr{Lϱ#S[ItzߕW?wk>?o SwG5bz^s:~[NkZ0埞ɒnޮms%+] v>UN>ߪtDIկ{s>{]k\.SsvV7ח-(tHL*uov<_r]ݽ{t,740k~MDzorϹn7we,S6|_j=?'NUkimu>^Sy5CX8,7y9;_\)#Z?MfÒ5j+06VͯQw٧{~K髰Q4Lܨk'>ͤK'Mf9ߟC,Ys|߇,W_loж})(S~w8Ot1ܫR=J}1-w||?{|Od%ͺgyK-{~՝k}H9:4{r|t=$|H/y?c[%dT^KuCWoJf~ۙn+g]R'%|?Xuŗh`|q)\i~~]L??8ۜϏ%~~L?/~kMoM??"~~L-g%~~[M[Mo&~~L?/~ ~^Mo#߇y3ו.s?K4oPx#y(<ވ odu^7!s\v^gz>y~{=xkt]וQW٧O8TUyC ۝+a|/ȱnKg?ӻ1%]{Lbه2×Εjϕ|gwOT>|gןz>_A3֥_7Œ\smu__u?^/R?ܕ}gq~}'f*n;v}ywUn%tqvLkvNҹJ8\sk%ko?<;fȪ|ͩ컶_/K枳e]xɾv^ue6=]f7u l͖0KsnܞmC]q,p\j[uݒ=tx"g1ջGue%t{SsC<_;G>5s{r<^vum޷K98}>K|r[f\K嗩<_ϵٌO<^^~8=z\yFCo͕Ӹy-v"αzWgߏlþ_U~OO}v!|אd״S؆~ݏ Mz{8q;=Koߣ\L]>MZCl]Ӹv@x7#j?%'ŚJsxWUia FfT͏O^}\øͥҜ)呾]cp]t5_~5kg=߉.u-Cߞww; gE̮ceIJNa{&)%2Z%L#~hS^w9Kkv<~m뷑%}l]=jUswz -y?1^nEwop1ewI+YRq>)tZ^作vlY084֜3yTu:19|#M[M?5&~~L-&~^̹f?5oϏ%~^ϋy_?/~!<Ϗ<ݝKܹϏu%~^w#~~K|  o?7⟇ClgxUUl6j*s<|߮8ku|?̖Wުnv?~^1+哎ٮ=njw9͗5}w̽ HuDʣpNg˸1K%1]lwtuͦW-뿾{֯ԯ ӻ6do;v~^Uu=t ?[*ו^_exTOD:p8smҹ2G]m6VaxTwsk0u^̙T_R)̿`TҽOksP着v5OUtqݚ+OOO|rm觿uqP]+??s޽J}To=/4L|fDz.޻OzKE|LTJfeɺ2]oWt-=wYzyw~^kEcS{3>uݵϙfZPc)$jumkqvVU kd^Źo7_)n/ivޭS٧%?Dhq| ݹdW'ҳOA%u"wlK\.źwKq>+-㯿ϵߧ=qS~i.=O}ӧO_>5u}㸏NiwҮȢo=&Nubo`¸߹6_^oMRz!+Y8S zdvLYo2{Xk(tg0KOK3fyɷ1iLݸn\g,mCus?vvG.qwQK5{]K֒c|~q{˒sݳ=-Y%cq{uy,{%s{:%ue_vu=Ȓ:wF>j2g T!~~*h?K?5c7Ϗ%~^c?/~~9c?/~kχW??&~>\o&~7 ks??x\K%~^ sy??C?7⟇CFPx#۩^U7K>_Wqzlc\|akTz uln|U^N\S>8awȣjK6<~kme|iR])}ɹҽӽwĶcђյٿOrz?wUޝ+=o>;W:˗/VUazꇻs{n0U3%M84.%ur9]s{c׏⹎5yoUa*̙s'ۏZΗs{|}.Ӹ~~}iC7Mu:c6[9%Kz+tyۇqYU^y8|4__f1r{|ҏi|Ly人ݏւ͘9c/}OSzUc`kM{Gv;.4/\ri>ѝ+tueZZuٵͺM%IϾ{cM=nL{I̶%S:kCq휲o\KCͧMs|iNU3N.U˺5mAiϹۏ]~θmu|kqdOz΍>o:b>;Gv|m{_ru}xCIF?<< SU]5wy {iOyt}tZWNu߇^ó_BN:{LcAڟt̒s=%85~v=ԭG=Iw]nK;vM\<}wIk%kt@~3=wiq(Kմ0]= i7a7^C|]<ΥW*̕0ݐ~MuH?UUO/]Uu ,#GKg\|dLc%s|c=SpTgv/kIu%ӽUbѼ,X2,Y;{)ykKľ\{ =D+]r]i``T_ U[0Yu[M?5o??"~ӫ[k{?O??M o??"~~Dp]o?5c{y7??.S?c??&~~L-!~~L|:Fz埇CFPx#۩V]כj5<]zz)koUUqCfkO\Kx\i\'q[r]s].|T_R1]scI{Luue9{dI.GzwI%]l̶Tyyy:^xΫPCU\q/\?0af_kO? RQ5Lv\WT:&Ηjx~<6T5_tnjdW߿?uz/ j57Ɓ\{ƁuB?ye<_B:ωڢ{i]2n?9qӜ%sԆ}tu%~wyWׯ|Rsuag\3{Lg/έ+s&VsykK~j}%R{Z_6Wdo&ӪeVsǘ&i>YW^'y/dѷ[wl_ _WeTϛMC:x8 kө9^NU^#ڹz|-}ZC6Us%4v64;YR[I{K3R+UǒNU2^s=U5n>cz>|wӧ;%ݻwϿI |1Y2}gv\=nf钹zA?QU5DJnPiIcpUczD>W7{1ogK%K񖴭ٵ=\;yx=vk%5;T͏ٶy{~{{>Js_rK-uϲ%s5}4;v-)%ؿg_=7,)ٿ/[NJǘ{ԯ-;Om+~#ټcݢq+7Vwc|̗%{1E#Co'c爟%~^ϋϏ??$~1s%~~\y#~~\爟 N??s]=JLzG[clϏ#~ݶϏcoMoO*GgPx#y(<ވ od;Ǘ^ǩ \Wo,bzT3]Oaj5fϵ{؏ӷazު{ܬX{׉5k=.n|}zt h :.nHh?oùWUNn:^^MU+ݚOtq~;m_~OcPUUr+gՉ$ջ4{zz>ג@k#\o6sݼ7W.Yo.\׫47h1ds sf6]X<4X1B{Lޜ\җ9lV5,ٷ8>x/wyǵ{nBNyNS$ɵs~q<>/;BiLm\fb>q@֡|_-1w=,{q?\ft%cJ:61B0Mkn[9Ƨ9ar ܎T⺹>zK^a>&O|5xUj5~^٧EՂ=m:ւOw\eV==q6Uzź>:O{o*c_Me5f{T.fyCl{v˄OrIu]sd)]ג~=B] 0ׯxT}e>O~N.sߎһ1;Ux&ey_7mkۜc=[W x;+W{Lcݒ%̮߭w|3U5}tov`Op59wt V1UM?ysk_J1wK-=;#XrK+)3x _=ќ+|},={1 u9&K+X=u=}7;'ykد5&79o'~>d/~.?1M?5o??"~~[M?5#%~^Mas??G?/~&]0]| ~~\爟?yOM?r۷x埇CFPx#y(_:7j:2L_m3]iʣ|>ӷqtyc0}sm6su%ycRvǤ5Ԧm?<޽wI]]Mr:n/=ԇfQw>'H]KĒg2<<Շϟ?S///Sz}<ø/:\_ֹy|]]yzt><_߽{UU __~W4mᇩӸ~:~?טj|n{]7/KmhI;Muev-np]]_rYtu:K2?q /]^CKF]tו,y}w \DU1y{|%,IWs}ulz=/q {UUu9vXZߥ.q5Y_7+\w{%y]Wq㸼??<0JkKXN'֛qymWy-%JW=9eݥ[Y2L칺[-O>|0L:~Չٽn|itc[ $U=~9?ݘ6;WO-s-Y]\r:iv]6fD|O`/kiIssxIy-S?٤g9!aE-%c{=W7,)~/k,ktKqJ|6[KلkޡVw>ww8[\{{;Xwqs֒{=N{:n{{֯{ÿ=o64NZm̂uʒ۬%s{~9G+9&=Յ0Ncf?tcv=VXE^g =V>#mKK[kUGϏ%~~LO/~^͙?/~~9o??!~1ϋ%?/~kW??ߋ%~^̹?/~ϝ{??&~>Ϗc{ 'y(<ވ o?7k·fXV\]>q yWt{UUan?N` 㹒8}:.~3r 7\'SU=ׯ4l| C0\'NqD7vz׻4TU&]^vԉ)Իunڵ݌Ls%Wz^sLme_^R]y}w|unsy~2Yҽwu]Gº'6\5qrCW^\}Qu$n7;'^~JD&\KBK8'_B;]t;f\_.ai}=nL].S7啮k+Ij<Χ5T_gpw.Q-]#p9vg+ zԖ}\[&̎QK_ׯ,tm)ronoY]]{͹c9-NPWssa\'zs:uksg]}w^¹5̒ysR=ƺپ(q'Kʣg>'ߧ{ ҾS<>=oЍgY(%5зO{|~0g߯./ή⹚lعd,gE8 Z0],zDګaN. V>ӫ;Mnf,K/=f\k^r%sd{%sT.KyL3}q ζ%帤-WOC;W;维c;mNk|ůi>UMؒz s ?#o?ϋyߚ^%~~Ds??:]9o?s]/_8cϜK-&~^ tc%~yտ_z1?UgϏ?K?jZFPx#y(<v揯תrZAYJߜk1p:gZlL_f3>f:u<ӯc<*dkz*UKȿ!|f\^yuj=ҫR59ԯ}?<< ӷq][no)_Sj~:f-#{\uR>]H.OջSX5eYrlazϵ eϯ\?}6ոvPaLj]|y}_>}z}SaI}zUU#._~osR:~ysYڇS<ׇ>߽{w}f3~.8_r>0˸m^Ǭ䯪0X}sT^Y3> zچ99u/M$ݸݏ|ozU5.˼}_039$r 󉰶ڬr؇Ͽc0L8r{O:ݏݏ1M^ UUi5m(K.%>cnz1 >=6˗aRq:~bԉcK_}Ѿyweyt$ՕԹJy' Ikz_Uy{l+C%S7k[?~UU9V56阦\.aߜ5^O/kn]9N?rLV7}L\%_(%ׂ<װn߹ǽuGm>LQ@s]qo")_szgo_z,x޵G =ҷ_|\w+fܜ6h~Yo!oKI],&ߑ%ׯ%s>Lj_rL7nyuq(XOv['k{e+۴4',NɻXƩm5lZ/\bI<=ܱ s%~>/~kM[?/~kMArs[M??C-?/~6x*??"~~D!~q@ &~>??woo6"~^͟w?o1<ވ o?7⟇Clgx^&%Y?a?L?_O\> jsa0}ۜOS7L<Σt6zu/s]Z;~{Oa3L\Ϫrc͸UUVerzz_?2L?\޽˗/\9bO͏u_ŗӸ_\632^}sل~_rNovwǤx\u~<cGۯF?^UוfNWU*qJϽϽCUU0:Ks9z˧xskkꘟ:uNvs)зGU6<:<~]½:GU.øøQUᇏKWaUu5?˶)ShC?slr sP'psO}]h?:nOW5P}/>=*4e|]]Sz7oֹHc4~0z8/v֎UUsFKN m9qUUO!ϙ0oxu2:8wcfMS?65O݅10a.QUU0'UΡ\V=Ovu9vz ss]s{܅:~pڦ{sy| mf-*oB9vPX~~|9]XUU}0/_RۆyU̱yv C?t~Q]ytؔOM_xvy!װF{YHZ\iCv=u>?kN}q?|.aӠ U׈50!?rzwLxӸ|5OiVm\W^6Z?4~sW@L)mn[S_Ƴqy].-H\w>k枝t?'TUC1x9o6{yyQ_;Ԫ"큼wi;sZUUxP?=vN!UOLU%k:|k1}mR{V]^=4sS_iβ1Jz\^i?x96?BK{IfN\iM4sSx!]j{-\iW2-ya&:>6P^v SB>6$WU:4ԲM{A|ؽ!}su˺~%ѪṤ1ܼImh4U(S}U^sowTU;4nzzyϔCY?1Jbմt]1ҹfˤ;גcY^3/e=9@_7ڤ9S+i:j޿-YRvNtuecw]0'NcJW1j$};PU>PS/黓%וfp],f&t kUUΕbU̢z]()・]}9K's0Gոuc#%co?5)7Ϗ%~~H-o??$~1ϋy_?/~kMA%~~H(#?/~6]M{#~~L-&~~tdߚy?7⟇CF3n4j~^)=8G/*e4cjUrYwɗٌ㿯/5.uk*P,CUǗUt#Uu>JIjP|VsLݹR\.pp*<~˽һqz}}J}&4)q>[XTCy{>Yr]_+<ߪ?Ow1k<ׯ:L>vM]} ׻\eeLJ`yBrIUպ!\x.QUOr]ݭmrag0Oq8vZUyBS(~?nl7 r׮se۴3~?h˗uu:1q{85%zhIӵi?=ǧ4MTU= ,ܷ_u2coܯ؝+e:WGyt54RXy\U!Tݚ+<]]HsǴFu"SyuPS=Jo%uQO^C˯?s1ץvR&Uyy4)X{Ƈl=6 s#iF{zاmcSv Ϸst~N\i-K?0ݯ ?ŶꬸƇΒsXӧ&N:xmuxJ:}*8gjԧxnwV[*%%ԕx?vv*_>=$ӻq7Q)ͼ,|} k_njSgc^0y}>Kޏb!=ӺJk?ѝ+սԆSلyxWyutwc])n7oM5HG-t͹^1Nûz?Ey=O\x Oݹ6w$C9| Ͻ{ N:.郚N8_ Uu=ϡv{Ρ5z =4W/] 1|' rIc]SWvMq~S'o}˅o77+~| Oܵ[E ~tǤҵ݆s3U׻%%fyɻ%ߚ~ Ϗ%~^w?K?5tc^?/~k-~~D|:sKoMtc爟;<ϝK-cy4Lj%~^E?dl o?7⟇ClgxZns{!j5L?ϵl6.K<׻ǧa0|kPVUUS>uGH^xoUf=-}mxv?Lc~q]J~ۄXkm⚏IR[ҫVܝ+Ituu|Pq_Czw]9~JM#wcRUU\ޥwuǏ\aw5C~9a~ Ǻko\9wBx :\TWO\ۇ2~~eގ~m?֡\ΪK8.SS60ލ4n?s0nCԯ>e[^.GwcG'ݘLig8Iwm%Im.t|q;uK.Q˸ =>\U^?{yxx纄~^CլϹ:WNIu2\is.ui.w=71麎ϹLm(6͚N/XMf]W*z@ޮm1tJ$=S_دQҽ,Y'ͮ];Ku:q:f[ v㶚׈fr_\vq{l\}_sa8SM3~܍Vx;^/גv_!>'dL[_uuJcTz^Y:6;7wv=S>5O5z5Z{9/;S>=f<j\\4t_^Ғ:=2ǔ@t/Mx^|^^sc6 VՉv߽=Z4u}!A,>;6ī\ϡ~㥽s>uwv]HbnEyNG\*ucmgUU c?5_jKX]kx봯ԻmW~ps̹}K~esUvܻ4٤Vd-Su8ZrtHw%U%5ǮO]w%Gr/\} Y^f)~o{Իے{ws{Ēs{1nݳ޾u=S}PWW^߻8_OqZ~gϏsy?KQ[MoM?/~[??"~^ϋyߚ?K?q)?/~k%~~L-co1ozO{;&y\7sϹ:]k=MPx#y(<ވ o?7jU6}vO><0Σjk9_8|sqWqVU5kĪo)= USsuuLK~|< %mU岟}^M{ u])v]ĒJ,wv<>gRU˗<:u~/\///SCj'U0Ƨ=~?wss::06WU]3?fQp]/qu? u쟟aj9˸)K`{]:q c&S|z̏0Lmv,?0=ѹ/L}vkMZ]ǔ|]q\ Z2͎u\'rX_8&u_>}׵_vߧcgv.UU cn?#͹f<'y~kΔ\BJe߭-2ʽj>]Wj:u0}H}YU-[ogݹҳr c]S\a/+]Oey|f׮oZҶ\'a=Zϭ=!='9:W߽ϻq^2c6/״6]Imh~YnK fQ#vyܳ/\csߤ;l]~v*l9.ًNa~.)$s<_˪>Ҙ{U^e}jKܼj~oӪ|_Dǟ>}sOs^6VTU]/A3mUsXä9iׯ[,Y@̾~[2x= 3˵sP{.Sgϕkt;fն%\^7)>UUH43yZN9.x'컆.4^v;{~%ʂCͽOfǔ{>{X:.:׽#ZR{>}۬%%hxن5|{#;%R/ZG9-;{c??&~~.~~D|"~kK[ߤOI??u]%~~o$~~.~~Lߞw{Wߎ?5oI?/~kM|"~[~ 2s{?S{#?Kw]'FPx#y(<vWjF7,OcfwU]aK<<>t8Ws<4>iaoaxkJ?\0}nfU-s<39]½B]IQUu|yο"^sV񽬛f}>>W?MSWpq9Dznj.,Hu%=.S?R\J>t64}մ+\p/؆:TU9&K4?{C 9VUwuW7@A"@JZH ̴ъ@EIƍL(mhܓ(6F622#}e˗/c^S)/z".i77^NC"=^2,k2uJ^ݏz622}ժ^zcjGh>O}ǘluY-Vau}Onݴk>8oGk3YXߧq"WM_jf:5ryaq_7x0xSqS洩;*#=ns?My#3m8b݇1jSUx?0X y9i|]߅G?|74q}]ܶS?T~J?&e"ղߟ=u+Fk. +Ge8Z-SvOӯ/\SRt9-0#LkT_PNjߋ|Fc+o~w9y5>O;(]?y]__95gpN˨49eݝ?A8ocw){TiުS^VsS99oyqL:~|hU>s}κ?e pW}grsl+7ޣ19ϯuGe)cSէ>Xx;|Ϸ߈e?>'~^ϋy??'~aZ\W*cw5?^Wz\Lgy)pUt)}dj=l66M]2Wѳ:^,bԶG|Ӝvuuզ___Ǽ:lC[Y/of>:/1\ Mn7M$)!_סdAWо>䓘U^޼yӦy~lk懘UB9}Q7>؇~RU^~y?yۻMߎ76pl1}(~0Fp\ul*'͵gk^Lse?G,gy_y|Z&h6]_UUbu ?:}h ź0ҼcUnߩ/_N+9S-.*Qݧ#θ!+G4ĽEgV̛IFxκG=eϕ5|E??ߌ:~VU-}J1Q8|q$Tyn_ϥ97!tfRUusMOjS'VX/.úgr9ԇN{9縞)籩MN]TM_\;9ioZjpk4{\,Rz~VSO\\SZǯ]?-9|B:NO8gI>XsLm~?2Zˤ?V7ozi_T|\gww\?}LԇE36YμG럩{wZ=r< gߜ6ѩ)g'FkEx?M_~5u _2>ASC״:Ǧw|`p4% g#3cأL]s}=x ϩOه:\s[SeTMW)9ڧ5ÿsFqζ79ϒFَ}S:s>;9=>8<-kss:|~{SSS9w\O}c?&/mo^O#~'~!'~^?$~^ϋie???$~^ϋ)#?/~A ]%~~gC3JC~$CyF"gx(<<? G⏇#YNl>_uf ^Ef6"Xnc^!~I1.ߦ/V׹C_/C_|xLyU~ߗZ{WNΨԾFmp9f ŢuM\1=>pc_N*#<,<ŢMsce,B)}$v;7Q[IM着fimJF}>eQ٩wż<͛IeTq˂Uek_\?y]r}nۗ6]gܗk]~s<՗=qb˿e;9>?1 k}07+ya Yc_:Z/rvZw} r_s?0G6Ism*,<*y5]Ї|墳Cnf;wZgym׋u~A߼m#^6wR[Ck`:v?;uYǼi6 ,<4vgiطo^Mdk:۴I){yhf*E(GLSZkg~:=W:3L.΍=+hIו=%tfsOl:e~җ65^OgY}Z1Xv9̦|2_Wժ/t]iJFXL232;T/z .K(|,i~,vWU\rzeC q=7OYಂߙ2?z_M:gIO8"Q i3t y95Kg\7iWza{˻SFzXօ*xߜ:LQw0x8C$*3FzLN~rps)C)蔼S*qnS9O5'ϵg+s9N)sS)$|3<78Լw#s驿9}#FU*'~~g-~M?>?6]|O|}g???ϧ߈y?/~}{J|K|}m6]|Wz.B$?/~C?|J???ሟ7!~|gHPx$x(<<rʗy]]]=Hunk}(#8bѦ|]mM^U\8&}]l}}q_c)}M~U~J x־㭪öo^F}fZb^94F7P_v?RIԪܾS]Ա{R܇qx1וJcҽ)>lR^JGϱw*}k_=y-z{sۦ߽}Z}TU]?y92 .AUU[զ ͛W c}U};Jcr=}NIrʘbE(ͫEx}.V}9]nb^ml5kժ8T/eWosc˾1rIJJ_]shJל.TysЖ:vŋWn{û uZ5ih .*SN=}v+gk4FO-9| zUyNm5ߪkTF:v~swǵN fi#XU4N̦V6rq7>]W܇M^__v\?#onuL|OC{?/~}ϿOeo?$~^ϋX.]߈?M?O.=ww?_gS???ߌ7!~~=?-~CHPx$x(<<rʗcv7wwwm۷obZVm| zUC̫|"t6}^qT)\..mpk6nyձg'Ÿ P,#/o}x}TUm7P2+&t/SǻVoFy:T_qVWrُ_u+}211|j}ٗsy_9Uu]^}Jm͛eWU͖}X]e着ov\_}y?xi=a0xul=jT_^_e]o/׃.m6>k/.^U*qTy͛6{Lmn6[]'4_E+t/yߥWo&"H4osHk⸞9 ֘^n w?ZKw MϪj}F{aj+=ˋ~8> }(|jUU^fPN7a]4WUmØݠ vZ x뱪j i]4Z'ѧ5ԳQs$ywj!FO}H>;X|pi D*$-=nsct߆F^)Sq> ~3]U50{- U??{~E`]c8oPUVg}[_]8\l"}ʣ{L)>u'~'~)[|.~'~W/~#~'~!=K|Oy?G|O%~!OsCHPx$x(<<ri"~uyѧW>?ϙn6}wM?6꺿ު7F ͛׳/M~wl<ܿr<á!?~ZCM{˨k>2}rUU]^^驎GQzNW2*_X岯|Nd^2f5@uyy٦/M;kTS ̄8˹+QUuwwצ%^WԆGekNm%=+QѼ닫E?.BYUUo9m7>vחsm25}\v4_.9VF׵X"Q9 s<%r_q+G}}v9$q}nqune YUy6gϞ}º*9CX&qm;vM{4ľSUxõ}ǔW_nP_뾯2Z%q3mgqN쓒}Xg7}luW~>z<ShǏ8o徕>K飵{WzzGMT gS?O^ס`1uO?j<9erXcrJ6~퓦yS\U.Fq۷iaK}e4ާkއ55x'ӟ2tFv2͛+9i=\wx^Ysy{LijSxߐ~3ԾL6X F>0gW޴w+͵y`Z"VU 4Mwyg5޾}Z,IkpSrkppq5eCl+1bs&E9{g~Ũok~yS'5RKc5|={gm/y~3'N9茞k)gouSħ|qt'~'~!|_H|O|L7-J|GQ%~M?ߦH?>u?>m|\#ߵ8SK|׈nk{2&|#x(<<? GcU!&}6ͦ]UUfmc^Iy].c^닋6=vMئz˟?;%{>=ߪ\SˮXu< +9^ժ<)F$o8'_~fӏi]]As9O?i#^R2Ejfvyl2՛c^ý/walمuz=h_iiV~\Xn:gfY]`܆gXy,оu1̵OҚ8X.ކ~7["UU}Q~ qwa6ZýʮshI^M?֞}]ymnXUM?N-XrIa=3$3F?5+hq[B%T5h\$5'ԷGm%)xu| އ0w neuѹsA+4Rݏ# OOj纴݇2<61'O[#O]2qN)#!I?x/!}گj.;aqօ=)t>?]Z8v|WCuK,FAaN뢪<.y:܇w|uX n*/t>\77oc^E_/pU|1H}h"|tsӯYz1zSkoY19@洇94'J+F%S'Ssm,眇Nk99IN s΁:}|o/~M??o>"~>?y?/~A^t?ϋ??ie߯?ߗ!~#~'~!=IyH|O4}??2OI8~7⏇#CHPx$)_U|xoo6Ц\~SvU|ѧ.c^w6o+M?61ooO^~Ԧo?6}unsmU}>uf}Iy_5x>b=ȫqצۨ}h1k"᪪:|J}ƕVUU0ώ}U+kCd-gaXm5QUwMzb/nۯ'w1Z-rVy~P}IJ;OӸEz>`;fPS޶yMkwUU0sONǔ~y7߿zju7u]u1g<4z~5lV!u½Ss|GGq183J3Imbںjtk cϥr5X/jI}n1ղR}4N<1b51 \i]vwJ~ S)c)>CuTE>???-/ӈHo\Fo募o>Yo?M?>-~#~'~~uo??i?$~^?/~=ΫieeoO"~~ϿOyS?hᏇ#CHPx$x(]bj\xOv}O fPq?eU) B{uwWaO=ZgAJ &vں0+c˰XuuaZwy6yH?N}!xT 9>oι^wxguJckNNstJhS"Ss̙jʣ |7tJNϹ.;S)OQ9>{suv~59΍O#~!iϿOϷuX6]| ~?>%~~7%~M??ϋU$~>/~}ϿO?O9{qG}8S\{ϓ׷un<&Px$x(<<? d9v,f^.?6O~_~6xަ6}>/[UuIlc^ͦM?2VEi%2\mr}7ІSVUeq5Nު}3M2b_|TvU~׷,Ki,u4gJtL*\M5M򚺷4N݋oG)^BCS<\\muTOJ9ܾrNs`o}Z2;2+٤?iS?nw#i;N?Ju֒43S5SjGorJݟϹ.Xؗ1\dž4b>m1z7y`4f^yu#4|15z1a^UqL:zYZy~t^)AҙQ8^1Ggry Dմwlkp,; j0GOهIO'+z񄳙xF?XG9*h?izsaA?F83(f0Ħ7S߬/=?P3*_C{S&<\Dgk9FSoW:mǷymuq)§==W^v: rzʹSOy rs笓SFn=Sy??y?/~}?.miyH??O#~'~!~^ϋPYG??OK߈n?c>]#~%~~ZS?~?~2~|gHPx$x(<<rʗC>H?9~צ﷛W*bnWEkMxgm6uyj?O>Mnu}mfޫs?طfǘ<|ַ|w|g};0܇cǐq,h9糾烺21ըmh'H[QQ=rΗvw_TvUE^k6cj+}jm˗5ŪMspӜ0٥=Tv>tq}ו`\.=u쪪۰8T__e_FUr͠MԱ~]CUn^0?,j}_/a׏-yws}_r Uuwߦ¼=݆quV/owUUпGvoF>}ӳWt]oUօzO<ާ a҇ŐeӘ}1=yxv^wb/֫F/¼=ē)eqL78ZШ?4~y4_1O^lW˾n~bZ]?9v4[V˾y|ݗ\ż>y_acUUw}}ݵ>{xu~zscUn߷t/c5_Uuqѷ0lcTC=j"X}x4~=cUз4vBCoUUy-\uꢯ}Ϸ&nokǏb^E.=bK1c[KUUMkC{\5iU6~\TR[݄u]!7}ƜkօaPUK%,}Gs,<4"CENYߎOߦ5N{Iyr՟O܅g>K댼 f_]o^FUWSU飴K;/'F}>^S9i8YokUUo߾mzuԇҖASD+f4ֱڠov8ƃ1x;S;Ng mdxTi;Oڠ}Ome$3[{ \Ƿo2źk&_w8Q,m0ߤ0KUUG I!|Ĩ?1:iIcxmK1l6<:,.u_}>eL?qVu=失h4FsY69Z)yXWkyBUWW}؆ssZm_sy8I2~:O\jM9ǠݧgFsU8/ykןzV:+[lw.:a\-NOo7{WFs}ezdΙ67i!9Fg EvZkGme>>\.gmn9&YCfaL F!qLc೴gq{|^wˑg\i߱Z{Ls"S-)cg2s:E*Q"\s<i&У{g\6هN[NkUh?7J+A^ggSD^ƯJsw#<5<=[0u ޳3u.fϒogkcشo'o?ekMmu ~P_pfRJ>Yo? /m%~>\ Ϸ募p?$~~ӈ%~yv׿CU._)&RNcbؾ wUUWmzz쪪YjGonyw};zb]_/b4m}Y^_y?TZ{UU|.?]bُ9x_9}ۯnm_黻<˟M?$mM2[momMGԦ?L?_ƼFc['UUU'~_1j֥0uzݷGʹqm$>o~.9MgiPt/}~zݤWUqHԈB4Z={|o69TWFW谛Vƻ:FUy6q&ã+Cuޔ2Fy5H:˪Hjww|e>ӿ4̏}}9|UUbpVa_7zf)ͧr^qǨw7^_Ǽv5__shI}kyF5z< iH,쵇plyűyz&޾=_飵˗eΘ56%Ԏy?زϋm67b?㴇Xs+6J}*ehMm>߆6օ7]CU~h1zw,* ߍ+S)bϸ.ZMuGšYjL:3yYKy=Z69M$i}va1~~Z33 ︪}ًpF^n7w=.>7^} _nƃߛغ8X.~'?>'~6]|OCϿOH[2wO#~!'~^ϋy??\6]4{G%~~ӈFC{?S~#~O ~3HPx$x(<<rʗc=Hlwm~>;Ɯ.m6O?{\h_jӷe\W}bM7~_y׼لc^> e{b^o"'?ku/_Mż~ůg}ٗ}TU.vZc^CŬM_.*^̫O_s{moǾ}{?{np!K莻][YxUUcЅB,|&3ޏwUUW}{PF^~)Ϟ}~5e۾^½ep}CX3T6}k6mbї~vѦ/&oW3?ۻ~ eWU}[><C^1ud}~{I>4֫u7}wymƖe%/|3Z6sل|7}\UyOkԇҳ>絘zu?M<敆?M_[5Ͼ׷UUMOU_Uy޾y۷"ou?ߊy݆1}^O\?ǻpMUym4 f]ZKתU5C^ߤu~t]q=1Xg,CL}k>4V[W,a]^+ q4WU-\ st23NLFRiƃ._I#,=પ0ަ{< ½zb }5wT"2Ve+YX瘾_Uu kCX/YYhGAJu sfUr9 dmz&^o(ݏAO| Iv.Kzu1l_!c+Lch Zz7 ~ 1+WU-:x8xgFkA9}5 |4Z{='{p/JczM: }T_q?־vz1_I;iSyǖ0FUUZ},i9b8{[C\ûU.X,_N|Ϸ%邧C>g^yc؆}wFrNySs>_xLu@H?>}ϋi%~'~͍"gƇe*pN?$~'~!=!~O??Pe\r?$~^r;O!? G⏇#CHSz٦?{vզ~y/.>Mʏp<ϟ_~*uM:.헯nWz_˨]n_ŢM?M~gm2^m׿MU?qGoz5;rM܅f>}>]~Ul9d^ώͦŪo# y,JI=m,c~Uq׷U?<᪪eEb;4~,}<_m5{܄>WU6W6^f|q?TWj)>]9!}?J}uFSϦ OƉYx}3N۷14wºٟǼ~_|?g~/?h\U'<}G1îo/777jzWWtpad: 0 ׋]?[UTyZ9az\FڟV{LfZA~딵Aji:+5Ϟu8:WMQ^^RZb_ >jM8kEx#F }(=T7'.:g8އqr׃}b1a>>MUu y<7ՐWۃn,6y\p~܉ym5q2UUp֫/'kӽWUÙ<FTkQK{YXWU͖m*a<\7h0WӠ?tf.ihH];=`zu<ź*KOYuCZ1꿿a}c|.lp7|IU"]U8CbFyOhǓ39 ,iL8RئyC +G{}ACg}崱e>ad4O߿qu4N׾'ԳSffi7ZYݠ?5@܎\לʇpv?%+k4Nrsm: U5S󉋋}~6?EЈ=>vaSk|G,S˘ qjKUާw)~S^N7%t|;NZ˝^O9R)99ǜy޹Oe8)Ə?>oU>Ou81|"(Vm6ݏÇkϹ5c?$~^wϷ?y@Y.~^ϋ}-?Mˮ??/~A>Y|]f1/M>} #~^χ? ~A|O4?!~e.B?Ϥ&rq?ۘm7)%UUcסfi6\}?v^_0~VU>\WX,CTk:˨?}HIj?Kc.?faIFsJSzM?1_Ǧ5C~U,̛7ynC/FU?~>ѯin~i?4twᔾ90w|s޴~6ٟǼԇ~GMmh~}ğ/=꯾E;ct?TUX|me4ަg#G""]2vCqo1yјs.u?zW/S U`hwdcw=ߴf&Oᡌ| >JY;i3pO_}xӫNm"{Q^zxq5g4oяaMb9hw۰Wmu>'2v+u? +}?eu-] JԷ~)O9 T_pOqq5xg*'=sLk4v=OU^k^zw:nG"a\KeTUز |>hTxe8~qݟ?Ѫ?ߦR9ӗE]kQN0N>ޫ+(>*L}߻ߤjk<-g󴎝=2fӏ~۰}{\z__㠩,AZ"Oѻ6l.FgqH~јOqN}SΌyHe:w㲧6LeS9真_{?k[9>Os3}E}N[x;(r&=}Ãv.ćk>x\'~'~!K?ߦo?ߧoH/~#~'~@|O|_Ϸ?$~75~xH|@O!~~?ሟp2M7'~^YECHPx$x(`wƼ~Wmz.uqїXy?硌6enӦ'}_M_/ۛ1>M?użMļ+1ݮCwwwmb6۟*_׶t}}c//1looeQU^n>kP~Ubޗ1 mǼf/gyn+0~wYxU5 mb?{ R/}u?UIm2TWǪX}0F}ѧ1+o޼iBmuyhUU} 徵M8\*EhGRzUؗCoV cwІFQc~Ql6}!E~: w}yN}(`x}X!=7ꫯۼ.]W$_o+ j*`ƃE&jd&k}h+E^<_~ݦjϾho>j/_n'??q>~?|׭벪ժj7}M߇.p܅6>*;ҸUUPv!*aaNi~L{^U51Cg"燰:eSe&i1[cGu/޿ߦb };f?x*!}ԇuM_{Ƌ c׿w6}o_9^Nt}3@gzquM[䔾8aN;vx![1' =\Ls6'3Klt=c8#4 ~ge8wMw^rVW1},[UUCWZm]tγʩr{de}oS|Z |ܦa>:N8Oyp>=WU qN(#=GvsT-|o?_χ? ~^Ϸ{?/~}{yzy?/~~MϟyoM|C|KC?L??7>M%~?=ӈF]CHPx$x(<<rʗy=AW7?6}2ˇeWU-6}ļӦnn/c^7mٳ6~裏g}zn޾?X,vkWEPvU|M⦯nmط}M-nצ1/koӯb^]/M__/6\U>]ᐟ!O-8ZmvGUjn߇:nJu8mjvܳ=Yk^y[UuJݼ|W\?n_.UU_gjGWU}>{ZlU]? m*4twejEö:r16?חUU'ڦׯ>4Nyӷќ"m6;'MM?{MѦjuٷ6>ǫ^eu?o*?~_y7vZUƂo #yu)OԷG4o:NƴnHYx0hk~w 1o{y{QFxԾ'Ku䓘ew័udU1{۾^G/t˜s kR/?6y֘_\ZǞS=?eҿ}S)~;SCѿ99+Swm:3Cڋ=f i)7 gA^i1 8j_Tl&wM+O1?;G/;F|OCϿO|O|6]|OC?H?ߗ/~%~!=?>'~^ ?F|]߈o?4t-??ŇMkq#~'~~Z^OC?ӿ33 I<fCHPx$x(_5UUzuWئml6yGM~y՗m_1l7~/b^WWWm_kWU|M?oUU?Y~wv3,xmMj/?62?U^gϞǼw6]~šM_Wm:gU}\oͮOz{?cכiUjy٧{e<{Ƶccp꽪05߄TFUansüUU,]mhyvY`,n~+> |}go拾o1?e,fXPU5 q"UUa.d_U;E4FUU]\y`;"0=뾟#֗Oުc_"u{{ۗ_wWUm'=e`eGO߇g5؝x~AVUi?륪 OOuWZ{]~^i &ҽ+rُC =:#s^Wz6P, }4hI_ż?s{b3]|0Fm1:u2N G8xLiUǃONY"=s})6Oᩞ{<`uNrzgm婞S!IUU8Zktf3y-5xϴ-ӹgGN/UU5 kwۃoS9Ou{?/~}{yU;*Ŭweo?$~'~+C|G|OC7W?yߔy6ҿ ~ʿN߼}۟P:jcxOsoA`1Cg0LCԶU g9Uy,\uEx'Yc/=߯m6z/9!'MUU?mWo½,r}]>ǐtEU՛.3&y9kN ?{lϿO|OCCt??>O#~2#~!iNx5|x(<<? G~W_~"棏>j7}.56/ٳ6Oy}m^.uqї\fӗe~ٶ!XO/}Y?hgշzzUݟYۛh}Y~777m}JϪunormow,浨٢O?Tn_c_Y~]9=&u:c_|sWJ_s{]TU}(>56"uo޼iSH^~<ץg\m_躮2ֹM܆y{OscUUm?{19x>%~IJU^]3ޅy>QzG"uzh]qsez*תzهgɟż~w~MOEXT lpkkTЦg?y_/>M'Uv_ĜRz?*wզ1O_WSUU7sOy(= TCXC4ޏ֗UXs}7OY:#EW\wF돩sH[+=g[Us}Fkj_PNz&J8](R w~4ZKq"?jӽul*縘>~1jdey7>nPt>~6>&ViMDCSF^֡2g3>I:_=eOgt>Ʃ}cx5<`Km5uՠoU#aM,pU=l!&su1̧UߗrfY ƖsOy:ck߲˫M>{џWU-uw<$F1ӐuA|KZGr]އ.uw ?oPҚ4UU&v|K\CÆ~¿ڄsSoB;\N{C?SƉ߄=M|}ssouK=sw='yV]f}rwѣw+ÿ]XXvZGox ~'~!'~'~!~M???ϋy?J?ˮ??ϋBCO!~@|Giy݇fX۪3????? ~qvoG⏇#CHPx$)_uϟݿm7M3],m6}ʷWm'mg?4'/}zզ_/c^_~e7u~mgmrO>i_>żnoً6xżw]z_:?TO~6}ի UUyЧ/*?Ǐ^qWcUawlӯ_闗_MowUUe~nߦ6_U5mM_knmpUU7_(wc^w7m/cV~\:F}.uiUm߾x}mCWa쬪z~cyB~֦ZUnӷa>l˼ƛ~.Zr߷QX/1"y cM_?c^_}ϛ_UUMOk??y}%]oUUhE*9JG|Wa?vxNqgܑשmU5@\ /vw,y w0q> Y5GMQFi\K븪mSVoZ~=*?k5^oon9"UU-{$3a_ ?y{Ѫm|XUubh/x(c^~֏bݯ.K]rݷ:>mϟTUU_ϵ뽼gI? mhd|樋U 6-yJVX}172Q[{_JVa6x0C_9s,s-zf>x3/g^(]y.;VW3J`q8;+ u5oί糾uwM;w8Z 3=>+ݗ>Oݮ/JSzGʨZ˜?ļsL=e0Ga*t9y 5p]ݴ8هM]60PzIymv< czUU>x&۾VGWY=9q7cXs1ϡ}HW~^}CܥÆaJU|La,ϥv&Lgf?*ێkaWdZzULrkϴfZI/?K4?_sG"KCN.>WUƫ-c&0w1j)H}h(QSi}95Kڇ|P_i=kWX8Z<%?z?2'KJ]9Ժ=Jme &NqJ}M=1aO S~*^F9)y}|9Re N27ZrO~VapoyffOm%7yNqLG}{:C!Ho?%~%~!y@|OCϿO?>==MP·(~^o UU$^~'ga]7:Ik|Y]ҹ U96?~霶*s~lVmv?ߪzkwbѷժgy=|ڗߍ7cςm뗙3gݟ[-|UU J*D/x :8X ljU;W?lxUvxﯓks19r412ǚIy<//},;0}"s61:άKiܯP7&|42UU\^i_"[^Hy<㸝cHU"֗g7n]\%".֌> 1wly:v2ڣYI~$>9$9P7fKhߗqcHX7%X*Gq]KrǙMze6\t6&N6e!sO0kGܘ0} ٳ0}ȣ8V|'INn}ZڼJ3Z.dgaҴm,Ϋ8{b}ӧ6/W':s^60q$q{#ݸUgpn|y1eڍmeq;/wY7w䕕;gwl]}ǝzȡܽ1WCcW6Gzpp]Ɲov8%-buGq*٘o;K&dk/J_&8EgQFI5;viwij;ެIRo㮽Ju!:>FfG6sDSnJLHvZ$զmf/Z$J_Ln^YoL^Mcz#zs󋤏,L>K &x>s$?nmg_bL;ٳή!Ƅf̭Wɺ{v4$2e.f9ج[-\?M\w,:pR5̤_Muf +o6~N6׆G٘2cm8ͩsuIژ8G[i+c3vlVIaՕmp5pn돚>urTv& ';nL|]NқoRv9yҏ_yύ[[I \^6kuv>_Ctcƌn5kC./W۬n0xqh+8n ]s漶ymsYC;Cgq׸<|m;k틶9u6xטջLVxn~9V"~6s,r-]Ib쌶pV? ??%/χ???;c<_b?ױc<_yϿ??c|0䨌jWu\/.N{IZ-5n-&?ϳ6?wM^쟿7g W7n? ~<!AK}]Mz?(0i6r5(˗/l'L/K;E_;Jd4y'ϟ3+i> >$Mi~nۼ>gatKTb}}]u~w7'u~^VU|dg׸\l:>;yMq^R+Ii\FޏFc<0ɓ=HRt%ko/w]Ϸm0}Uky*]?WǏK]|-㝸>Hdrk˥7(#/ܜvIuoӛ(.q^uw-Jb GY">fqIh>rEh66UnNƌZeYm2$7_u|vw]]?[nn扽ii6Je#Y>+Mz2챓eY^faI ·=]{yxgb?p\ٻvf֢Uuk΍#&m̑K{G_&Y0/s1van$5&6l`9DqZL\+uH~k>:/S}ey10vЙqT6 Ikm]\5;31$y6$3W&&9gY/ɭ+KRmR$닃}R.f\kԘ6}m^#s]94Kaz]:ԉ.[Ӹj}aBwﳹ]cx&=M$iCnLW;ٮ_=?kx u]?,?e}S^cf:ynd޶yMn~xS&o[ıx{>:]W1,ͻE<>+/I;Z^n{%IO<{,LeF:}䟔oך˵Ӵ|5jCΛ|E*ϳu쟏*ϳug|ϋWc<_1283Ͽ쟿쟏!YyϿvə?{جv͜?F߷y=8;aܬqG>pur'IjU{"I]$+Or˞Wv??c`ۇ1G_??6 W7n? ~<!!\LFI6m&7M\lV&wZ׋/{U;2YiRy{6oyҶ2w9$8L?? OOOm^U\'Y|^E|uq=j7q9gf},^=l6azUɑ*Js9}ۋĴ_6JvO:s);;;aɋWڔcYv: ];98ŷDFUJ|Λ6vshIR1 ݯN*>U^qJs^{~LzNwJ˗03ctTOh+I?/{/L裏l^/^]LX海 e*n~1M66M܆\57$f{S9|O|,Q| O1JSKg}vw&}Eٸ[r\ۦ؜q\gck[;n̖}:6os^}Zƣc^cV\yr W\jY$X_3֣mף6ľ\|l4?ąc3r,RyЬ U&77f(=Y|[/9lӯmU\:ڴ|+3v~խJY[kEUk3eڜLE?/?G6{_y ߙ,TU&1碮\~6;یِisX7t>>s1Czܹu521$fN7}ge&3>ŋY5$mͽw4wwm16>^W0x\]zBi֥yRIe1uHri3TIn佂<_1K>jo5cGs+ FƓN<nvcm6y˫2`\%IU\{#K?]?1kR1ōv-F[WXnsּ) m+yۺC95;6Ļ]Wbg@o⹑O|[MvD]}\g]٦ɟ_~l^?|u^w+3azqn*2ެXlyۛ.)/~>?g|Wc<_yϿczz1_yϿ쟿y>??cUm{52I IA~7ykI0}21t{s{wm^_:?Kbs+3Iu=ߒ4:|<c9-k~a0쟿Y쟏*Ͽ.? C7n? ܐѐ?{tW/N/wV0}6azyjJE6ꤞ_)"隫{.>uy*LwAyg'ay.Igq}I$LնqLJf ]zLu52D>͵}iO4(˸ݿx2L?}Iwtw-mڻ1&H\;I늹6:hTwwo?L/ kisui{S.׻|we:zã#ըԴ Ӹ_n>7e"IO=7u0^1̌]׻ׯ:42Y./yx|lL"OM\ַ|1uH:ߵ-yu|Oس)|{܌Lyq2%]8#Ϋ0tnⲍm-u.,>>F5}o>Mܽ)txw>Sw00(#%?06Dy.tt^<_?Kơƌ.l^yy=^1LVϞ= ?0}2ӿcy|G#woC~j:#8֥KR]uiGqST7W(vRoˬHRknjT&uye+6;KOo]6c\g>ϝW\\?Şk-6ʯyzFʯqUn㬎.3m_'U|41}$E|ΝYQOdm7c[|gw2Y'~>yd-˵/׶ru4!BwZ8Vφ@w^:k7sD,If_L/:=ub6ԗ&KΫ2Q|YQ~͵-HS욯-snȎʮR;}}^׏%`/LNgSIslգϱM$M&q:-'>JRoQ4v-f(Οx9W[J w>^^^g۶_7gqڭ5Fk8ؙ]ެkn|NFk<1%n3m*?M~j-W[twka| ;WHfl̍닃-Y5m9GYrms8t&k>:'oI,K׻yqc6Lv fwu>3MN<>`<_b<WWkI?a<_yc쟿Nn5*l^}_]t海EfyMq68>(.iKRߴars>HR^&8uߣCs~zdw}crmU7EWye:sM_ΎE\ 8I\'ܵ_^ؼV}N:$-0=_Fki\ğm|;W%>+M$&!u2qf2>ywJfumegvpsS?m^qr0}j$=IZrA/I~3m>.kMwфXӻmkڰ_i*j85TI}gֵ˸7fLJ_M_%7ga,]1镩+ty 6?|a?sq90}:f$dI~L;5d6 ?C_~ofoěM܆>n/&frqK,/'1]g[kp5ȍ[ڷSǏu;3C%_'[O۴!g:Zƶ-lLqeh(wl v_>ql2׸j5%+{wW'qRYZލ]%8L͚Bn1qk&f)MzʌY|-[WM,!QEoIO WgcI5ը˵kn1Y>+>7[/:b-ӻ9xקN*meθe]ye8,CcmٱL56dm5x2eI[q1Kc9/ *݁&s wGfJ3?΍CZڊᓼ\,e<sɳ„.3Tiursw&\ CH1kI:~Yns1o%&/;31t^,\ڸ瘽,:8^[r{ZN8f{cƺ*+vĞKgceۃ{J^&37>e>2WeG?tY|f-SޟY/9_a✹y"I×ƾ=Cc]fx6ּYKITtNC6ubyt[m\g[>3ۜkpNyklיt}kIYٽ0ݼ̼RDZgUʬ3Q3p.V^fPo^96x}$c쟿A^*ϳJ:t??:??U31f g?cۇ1޾?3l\\yvpp=crf<׻%ܬeq^Mn񚍝;*Ijm3O`/3q?zco-m҃0}󦾜u}W'~LN {IUypd Յyf7rQ>3; Tyny?B?Cg^e=?~gϙ3ekėK~{n|iޝ۸yZNۥ ^\xv?.&χؼ?3쟿?cd2yU:L/7P;ǖӓ0Y21ߩ*N/|;ag|fjcǐwfw.Rq븮Vq;I>m1Ы绻3 Ӌ"kw|*뤝q}ln:Yk>r2Xe|vw1?\'g6=~X.N{ m^} L;ǧʏ)?їay8aGX#I;f35chkjKVNq^>}zV\_9N]ߛ9Ǯ^W\.]gƚ]뎑!wܜ+g&uy6sɎ2| [yϾ 6wzű3W{?EM}ńy;eʫNY9^*3kI" 3r-ܚո!['M##3+wO(:s^)9$mhW:Q o3so2_Ro5&ynrY=zR&JSo$c9SIϳ\Il`Ɓ0ږ_7{scl\w\kh,˫7yaֲ5&9֬4KL]}䯅y^C]^LΦ/L'm1}k>Ly&l v64 S.#3'k6Nkj4+Swww{OT66b6Y~q1շ>2sy%ce]lzj۰[ ,n+GCWo\{^I}I̜2}Ύn `KMc}kO\mq}f왨?J᫁Z6u{ D4W^y>>7@l;мrc:q6rmknfX߶;YWg|M9:Y^y ]km:۝s6c^ݔ$C?ױ`g?oy_y_Mg|x|_ycda|WWa:c쟿1χOk~[\W}ϻF1$湂[^|7cʓ'_Ņ:uG[ߴy9:2%q|p?~L/쟿M\yyo!쟿*?ߘw\rP C7nh?7ڶN[;yu\MKx~P֦+ϩJNu\`m_K~z10uHF㸼*NDRg3{ټQ{2-Ii<>-0<#u|-I\'0} EaI/^?׺ﱫַl^eiqrl4 azo3IZ-zTfeyk{7 X*6m\ڶK_ucHRY\^Ѧoڸ,G&fu¤Kn=]|0fy;8 3ݏp-M̼ERW 3~iޛvr#>;~i;kCyͫ\e_q*G%gƝ(I6Ug+Kw)E2MP1NM\.;0k4.=;v$1ejֆ~0j͟\}+,,<$kiLlzվ1]%I;Y+]%Ԭ9k+}׸Z3pǘɷfwyl?nN-v6/n>U7t>L+vdclQ>5HuIYon=NUudvݓ:l!0:yr,azggIr&y&.,Lkt?l~{ZMvĵy`XNjڸܮ8R֟L]1%˝\jw؜=uu4~.wrY6aO<. #N^9{jb=0ՕWm-7O kíy+d^s>9o5֬iu$,8j˕ȬH~-ޭ-'lqӴW2bL+܉,Չ]f;|hǤٚs<\Yhx.Ik3Guσdn1}:Ǧ/,ɫ2-Xl9hd26y/:5cڬ1IRow'ffUu|=dɬ~6c [>Qdk΍l?qF<Ӽ>^wѼ2e ~-9/w-7wZN%iz5Ɂsqm{ضumzs])iߺi[iO:/x6fs~r$iw7~o?'qL*I]f-YfQiSϿ6=I7O˚س,kn΃p3?cUg?c|p χ쟏*ϳ1?>a?ձc<c쟿1?ϋ߶?޽aܯ9M\Jӆۼjv0=~4~\??~-퓿{'~^#׏?$LuE&x?=zY_7Lߘg7yɯ 쟿jf}o}x|`׏On<>=vܴUobz{7~%L*/qo#L$z_+_goyϿ]'??+?UOg۹| C7nhw}vy%bqf3ml^$L/gouٗayڼӧi!IU0}gTu">vkY.VaznI5ymL=*?upp'L_.L9^nl^:8M,4E|ͫNv:q ޹mu.kk|%1|/N,:/Iu|I|}d5Q9 WFyVq?1}$-朋%[eiwui˗ڼ6kSWvv{"Ie߯;6n+fdTjܘ=.W}; ߍm^<(LoM}]Wmq/8n_ ?>uf|Zq^I7 W~ >_48CTnjK=V/㘩Kvv􋋸/\qWV'ӛ|26t8׏O>ye\^oIwI^mhIGa";6ؒ1ƌ)]|%M\.c{~?g? ӋLW:d6mFy2کhns\䲲2mZ;vIڟul/{uϦ01H_r[.I̳lr\ʾovHGJkS^V|f7xN\$ufͦ7RS*S'g<2Ԛ{\qT&a]U\ePRcיTV n̏ONc΍F}eȏO*q*Mۍ;G&It}i]sc]r^)ެfl|ubf?ױ>?ױWa:c쟿c쟿ÎyϿd?c?Y?޳Y]OZxib>y~kIg1j둿ƳӸ~}az6O'7?V^%}LpЮ~]sbA&xSoSŖ}d|u#w?{fL15~gay&y/98|wa%iau&WO {xOU{? ˿mxol??'g|CzSoS6f|t<c<_KO x C7nhwW N}~vvfzy2L,WazUU60{aEu]qXؼgym6W$0ťr̉ڼ&Y~4Ly=>}w]5ؼ&_Il^MI|vc{ Lߏ6/^W\W>8ym\.I|ۼ=0Lﻸ~?y]\89q\W&Nw$u]&}ϫ8azQ>7)Gqӛ됤֔fwl6㓻q?)eʾcp]:R$aA^yIG:?*S,Mk~6}25&#ם8(MD書$mh^{4 SwF~m2ߣƦ&,^l;xLQk:Qܯgq2'Erkw$scKr!G%L}a/|keJnKz_$6}[W?n㸌0aNy$ufpԚ~jmƺ:^sI裏O>2>d~X}j_6&&vQ.Wq;mL#k$+y&V.L}u_\q`bedIZn)ͻk;}2?:/#S:ҵ;_}/~5%ʸ],37k&/㩋>ǝWkI+/NYӸ{w|8NmbI5.ɯemL9*Qch{ȾQqKz5טMH\^8m:ӳc5KcgY*s˳x-|eb GirkI5̼4Pi$dQ}wyX6koԯY_f],0ԉ$$Vo.[׵2;Nexl&՚u*Y[c_w s$I4eΫrs!\_J%k 1}qGO]ٻz&A"{ӻxMmw'HWLxܔ8^4L[eb,Iܘ1ur= 3f",_fg7@$'vr+W_\p[Kr1ig"Ig=xR.Xu՗|'3áymsDZm[u?}d"iƤxyuN?ױc<_烿g|b<0Î?{oy6~^>M~3c3$yw$M̘tg_0c'[~x׏O=y$YtOMWqЬ?o4>ƏC>0Ͽ?? ab<_yϿ݋w? ~<!x(pCP  (5L/ f gY^ۼӗy-..(>ƪm^~|-~ųaY~UVE^qx:yYiZۼ".AWټNNr\,$t8:m^w wwwl^wӋ2.jeru> l^ϟ Nk_k'aj}4Ea*("uoeB3u[:+oj5yr|ͫuݻa2'ݸՉ5߉Ljո@R/zW'n2Qe|Yy=}4Loqُ&mu]yU~<q'gqyeu5L/fgVes%k6424>{g$.[]}-Ea]ҩDžٷ~p}K[m9>>LJ|䇿.{~zljWq̲mhab4nC2$i:jG?#S= 3Hz0$sd>s+[_t:\\ͺtɷ;'Yl24. uOw]Fׯrt(oWîem:ڡɮY'nck_1;?sޭf)L1MxvӜoԉϰMfHʴbx.ȬU-/U`m7KS\M5V/uAws:\7>H[{+ MkmH7X$q':Af6k':i vv/vY=)/i\R%͵T=IWf_vM浉cͳ$IXS:w]Pst~6q6>" _/n9v啹57:mޕz^\NC6}Nڦ ݦIuL Yeu{PR8=/^ؼz6/ad~~0m^U6r`STYs1Wm^?l^=y/,~#I^ޛrץFxӚy% {69-Vwka|Wcb|y>LgWc<_ayc!y>?ױ>y ?88>yy-v?&yљ=Ȭ;}wu1{w2߶y/bޙ=Ƈg.Sv˅sS+$ק?GmZsmm+.+=1 >|/%(LwD4}m^2e|U$~ٛ盒_}lO{ʭ[uI:::ُE쟿oba1_yϿ+^#P C7d4䏋Ф_Mw6M޶m\ؼfY|^ޟؽ{\.db WM\4.[U^tI*wf>fmjw*>^I|._mI:8Ѯͫ;;q$Fy<_ڼ88!\O>yy],.w^ؼܹϦq_ _~y|cV/..˸\.6ѝ1.6l_{Qʺ_z^1"nkO4'Lqyδ㉹W&Cv͸XX[Vͫ]3c $r58Xmu2>nM<} q<~-/cH|֘qpV>3T+ny| _..YMpki]ayWߍ>??.{SU\̏.&v{ݜl v]$Mq^*'ȟWYwє$UuܯƬ6/Wڈe$fUIWѹ5/l/wzS&MWY]abUgīYvIe9vXcK]+,ϟqޭaJ,]]ukRg$ߦ;Y]uqelc I9]O[k3Iykqky{ҳZktwye}NPCc#NY&sΝƌ͒ttÞH]dk./fkiLn:Mve2cw{b&yX'svY^_ek 1Ҙ׃|3+/6W.ڏi"FU\^moϹ|_P r}]Y~J=yKx-ܳZ${< WOŸѼw]Lb|yWޜ`<_yϿ?:????%a:cv^W>6tmc0? o%goM(>YCbIzn>;3lO}NC޹{[cI<>܉!xƽy_w|SaybMc|W ? ~<!x(pCP~+i>0"LlaZ^0adim^/_O>Ӌj0/I(&.ٹͫm/gfm*;Ϗz_^;08y\{auٳ'aY8wGw52ubdksT&a;{azl^gqPq]wQM]mo%'uk0}q".ͯ0}:}$M&=隸rV+S;^Y|-_>yl5>k60ݕbyi:Lw}bo9{_|Uqػ>Nq*u|_TYWqHҋa~W]}q|l׉qa5II48޴_IVtImδuؼV8cd$mq _xn.]&6T]ےǴff|XY~Wp>Y҆e\'|`ė4e4q]}:5c'N?F&.Zmژxkfg_mh!q_^gc]a*.zX|lJRŅYR^Yz8LOP~11*jdt&/GIȔ[7n6sd^yΝ0ÇaĽRr}|n(IY\<钟#9_6w6)Nѥbۦ J&}IYOiMlڮʸܱ%4*]{2֭xLY.Ƒ&f&^~Žk|vbmڼ;u}C?0~Ijʴksco<Ҥ~5'\˵Qac5籙 m[_r}i/;.+{k>&>5creb~X*I(\)Ls{OD[e>Ҵz{[֯]N;]/84m<瑤Yu2yvkiƍ_*ܺYTf:+}?lΓfgjåӳzڃus.&͟ιjS%.fV'1PFffgo&fϩgXyIvsWO 'Z%_W;I.z-Y>mMϝez6}>'Clц+j:MM^a}6ugCn.ꖌ]IzYޚ|L#6_"L" o?Ogm^?Iy7ǭIg,pzp6} 쟿߳>Lg|W>?ױc?c|K쟏c<_yϿWnqmsc c? ?ӿؼk3>=$UyY/'|o}l^S.O> lza ރa='8ts<גNA^ohmWm~\lbP}$yk룽8yجqc{6/;G5s6Yvnyw_Sw@{Ͽ?? aN-lVr6q`(Lym6qzNE\^''m^w /q,ش>)0O _~Q$ٿPiqE\W2}W S8L_6qږWUn&v}}d]kt$}զe.WV^an֩鿎O|i2ƳId4}zw&;E\&X,g=\bot}kiƈx֌ەv7>q1 JjqL[Ҍ7m6uҍi}U4f3}$-Lsc8 ߿~0œa63t $qV'}Xj4ټQګ |}ҏ8n'ϟ_Hb㏾l^nD*782NO~/6x蒘ecۮnOzb#rzvⶵ7gQk/XWqvuIZu6RUteLfk{8TMynZkws!Ij[3n9h W>spk\~^m |@FNkih_c3Oدx [iQ6浮mIql4SR],kCr7w}tPVfb8\ҵ,Ýovy:+l=Z.۬eyu֯ץg>sNUfj;F9mT\ci~d畦޻{Gu5{љn;\1_װi&&6ΝgMkҘ [zi4Y\6~fƎl^7rqY8HO]]76뱅 fygc.fȸqwۘgCɜvlk6~/@ul>b6= mkY^C-nhƋ.ڢkh^۸μY_wu~u}uM]udg[^2ߴc{-./g0Y5HR υ6?O2M&I_yNSeΗqum^ϞnȥyC><~߉߳O6_?;a;ͳ?cUgc>b<_y_y_ɋ1?bUgbub|ga-w~o~H҇8[mk}ϑku2϶/CI~Ï_y=?/OYϐ)Cͻ$-id۹666}d^wgV=ٛǙqz߬3Hݘެ>][YV8|[997"`Sl{?7z L?? #maaۇ1_yϿ+o57n? ~<!!\c}އW?( f Ӌ>҇ټEg]ݻa/JVaz]6ϟ&._IOate|lI9~ڼ:uaӗad2yYw`Z50}\y(^|2 };z'/{056㶲Z6=xre󺼌Yj󕤺Ӷ6nC?.WƷTUQTVۤ7M|{{{o|ywܱy-a?Twqגӗ/㾰*:(u|˸_߲۵$Uu\F8i|^0i^~;}c:99 O%Ivq^.r/u˨JBXSWgx|t&,RabI*'q⬏v\%{r$7םFf|ڛk<}Gaz[`?TIӘ\$fқ,\˟7m^cԴČtfǫ$i2$@Vf*Iq p޵kJ_qҚrO}?yO-\8.+YU?_ƱAi;{q}i. ?z3xM:fN:kT9Yp㐻؟ZVRUV%icPUVq4 sޣeIrQfM0=MĥgyumLu\&>~6qsዋ}$5eV߶mSmcz>k8%_^f-\9+8/.f;Nm 'Tזq~f<|XI;Og6c̬]nyuI_Ԛ{pe$5mÓ}.ԭsHG j$4MWW H-,Lj76ߺqsvj!l0ג”[vm3ѽT~/"Iژ>=Ν[VWf]1/na\)Iy.7~5knhxlv}$umLjs2]t;?{]3Y[גkً߫hq^;&Y׏du5&A^g|>'ڤkq:N'|2Il`?3yf3IZtsl87ڬkKRe曫MlWwS.$PYʞEaӷ}]^!kh^۴mgrZ.۔cK]z&8, ]g^~%Yڦ~9opcsfkySA&bWyjva ?*uMf?? 1L?l^OwOX}eJd'~OGwڼ..߰y0#^'oڼ~70_W>L ork3C;M;{U}dޏ}nb|χ쟏*?7au^y\pMٿ|^[VrzJzαogt:>?U%G?ױ>vVg#^wm^8*M/W~I|~ټ~j;s$CqY駗~veƎ3?%<~6sm7?;icU$gw|21c{9ﺸ v.}'kOw>܉U{y_;??ۺma?=?`<_yϿ+o57n? ~<!!YO?>۵6L_W )m6Au]ۼruϹ~i\qy̌s\_$I;ӝ07Lv@ǘ&SkE<'^|7oGGar\kʍq\];qlL.}LX޴l)e2.M+IZ cӯHR=ǔQ2=+Suףԟ{e׻qyW lHcʩ[}cM6tqjL32I*LW\2.rs8fw90Ū|9\Gwl}ץgZVu3bȝq#'\s畯5ymS'\ٻkrܽzlmו6uȭ)h1l=6ƵWߚLg&|}P?2u0$ah.I]^u2⎾Ml]chs-Y_$gW왕_qz)nŮeqO?y݉盒T6a뽭yȔegޭ Ize32Y󕤑)K7w/$(},eݘbɏYgf}+s_JӆtIl^52u5k[yʝ[/ޔau>xف*y>a7>׿4sүA8tN+wyemˍ7,& _~cLL32>gC$!`sj^}(mҹrN綶9o߶}avoMl0ueIK 7N;odLq+l2~e1^\ۗɻD'g3gy/~7L?3vI5;L{\]jN̼{,q/ۼZu[ͺv?\0ͩg3?y囊Ynm_ ?>Lg|?bU|p:&?:ϳugb|W>Y~ k_c6'ul{xU׹9$? W/ʞN|v?vkTYӗ$7%tqMY70o۔=|ofx"o/.1bmjFfORiw^?O`rkXU6/2Ycƛgɺg5ҞaUNφb|>LgɋW%~<!x(pCP C2(]o2Lo6L_/6f;alQgg/LIғ'OJ](I};4]~,L(IˋM^t0=0ɗO}_<=˸?ZfIGq.*-0}4%ik0, ֦O%8~m6"~q]q}w=Cfcڃ9~/II\'fӸ/ztwH~ُνxl/X:/G(I so}؏:.oY_DZ;ڸ|g_v|7L_}8Fׯmv5ԣI4>Œ[$3>w]|^JҨ45+2uuq2ǖEz?nK M&qp}t6ssޥ8R\M^?t7}?߰y}agazcRIznbܮ>W%s>guĤqIF?0?y㻹/}XUq;u咍).tq/%iz=Pvڶq?ƺ$}vxE.&wUs7vmPmff%e/~ۘ6鋅#.>QEOkԷ9ffVH9jW\U-eܷܹݮ^nn#33ֺ ݚ>߮/reM^nrטwڗl|t2|9Wqstw.6Wգmѝпώ㛨w.mkf6pf_wIsuwqҬ9W>sWc;n3Xw-گXC-=k6qգvMLsS9[s1+{u}8>|ϩ]ߵYZ}t$7<3[rY$<ĭ}o6qqY']aLobuzz_,uy I*fw]5H|j;ӄӱv`_f2k46k }œ2Y?޸8ޭ!JwV79DzO>OHk$xbd;I*L_c7&i̺XW6+οj~/>x]h7y Loqub?׽{C7n? ܐѐ?V'Wҫa|߿u~qW J(uyy/0\$m6*Lvy]?9}O񽒤zY\e"Imۄ|ݳy0ݯ=+Z?~lMwz{[6]ezbW=L;=}_I}|^U\%io?z(L/LHy~0;2}$e\w\_8N1&'8/#k4Ug?nmqY|%j6L8]qw}QVwqz*fey~$-E|O:=ƔbWX7txEw?{kw׏ێ+KWW&g%i6 Jϸ|%id4cKk۴~g42CeNk\Bgկ1ۃ$uҴ*z_&<IRUsfr)G7JRczc&vGwLk/Lc IzY~v{{ql?,8:g2s0(v7v|??6sćf},Sm}KdȽ8p1$&wmi4gg~^74&~n~Ѵq_\lf]co$-q 2cG:Oc,|ٓ8/}3?w)U\$Ug|fzs^.W]Z|{8tg1$ٳx|rמUf]|<)[.Zk*ӌm:?[Sc\5fyePY_rt/.͜?Q5+w-f=TʬqzmL¦b;bMc>k[3igkCԵwXm2vyd1ieZ Tw.Q"e^UŭWIoWd+|1i+??93咔WicwHb 35y21̳ά!JRoX'I$>닷yc˾b֟3δj~8;Rqӓ0}m˥ϰYN6TzY:Ye2~,M,՛2ʴS/r&Yq$uI|:io*k0C3•ʼ+&I?q_x.Ĭǚ֜z:K>o6 __yR>$z-yφ>9H׹ssMue9tm)k2~Sko#7~3l~XrJZ.WdO~0}ǺA<'pσ ;s{%^yQ{7&6%/)\lxsiA|t;ʯ wvO|i󺸈ϳutץ.??:??oڋ;`<8/a`0쟏yw^]~d|/煥y2uETL_Mg*m{6y9Ճ0O:I:7{[[xϓ>;q~$n0Ͽ9=߶Y[%cD8?GU\?61cJou_ļß|?=au`۹6yϿoϳug쟿"OC7n? ܐѐ?.RJzi۴azڄ˥ͫk0}<4azUEuk\4m\&Ta".ݫTU_֋ؒ4w3JڝQׯIݨUtm\^}Wctצ_7J>&Ru:?c< 7I(+mR^kwkN˥ڼV漜#bqvͫaQuy\? IlPiHN^^%iTI7JKa>c``6kR{_.hL5Y ->/գҴILkL bW}kڸ?pcfMN:~byML7'w,^љ:~Xͻqޕ${ߛ.Y+3ߺF 7˕/'m|&Wuh>6B7sdf$3Uwrϫ\y])\2Q&=v∙~̢kY\黳x^ܯ~[ߊ+ƭgd}]zכ0|%_.E59Lgoר%~alh}bw|}6 6Iq1\ye}f\#$mN:&֘xcb(% =$mϳvǯk's}t1|fdیu;Y1t]=\0}r8Yps4qWɺzkΫ7MO07>Yw~>v52APk I>6pkFYp ^V$1k)ӗqZus+d)\2{>k̺Tpkńw͑'׉l>9t:<71]clsZvv{\YwJRLSqX~0̻&d̽g42_n|/᛺%a[E6Q2Ų:7kb;YΝmK[s|7ng#;]ʭ;JY<$\?˥% \jqw] ׯo.fqb}ǕKvی7ΛX/tȎ&k1Λk2μn{m6]g\gzwudyyk\þy\=/l;~ ]/|lad]&=Βx]9DU̝W3/O_ srS.潕__yyeա'~Hg__c5,I\l?P[b<_c~P:4??:ϳ[b`쟿z^f$?~ykg6Y0}q59wIZv1k''|'SnX/:'O8N_.M&߶ۿ+?0X6{6kWW9Omׯ8>y]MolV2fk<3?d}qdOm^y[&ϳ]?:ϳ_>HzDgOuIWUܥow}0 0 @C Ae["dL*l:L RH( vؒ))$i[) A$@g}g}Z/={z~^sfVw ~< x(pAPC iYNWUi2d/KWǿuZEj:LazUU6,A0]+GIvZOl^<.f\^˕h߿k>WUUU\z~lۼ,:$u̱%Lצzg&b>˫ݳ5yUe|/}kk/v:=j/ ?g~8rl>smk%)*~ ]0ѡ˵E(L}r޽0ݝ~.IAtM]ذy?8}o\C}իW+LzZ:ݱyM'qyWW$q6}䟯mcvdR2s+߯5L$N1Rmk?&nl|)㜪1U^ (2n??N||㯅齮/(W\;牲7J%OG."ÝX⼊wq{[B4}GrĕIq_a?_q'EGWo'fZftrw{(vՍgog|ӏl^Y˹^1qvϖ|ciơThyK"ǝM{R@kƮ˸nKٌ};){קVqlRN+QĖxgiW$)Uצy)gkk'L cif:Ẉikqmvq ;30ˍܼJ;kCRk15Oc{ߍC%?H;ݓ1gN:;o=OטuGJRĸyTXv*+̇J>p驹>u+761rslv%Q'֣TJ'+Ktf< IE:|YfdbIZLL^(YJ&=h$bb|sJfN[rrL+~~ ӏf^ub~`i=K7aƴu̼zw*$?pv'O?{Q&,rDZ)v;*~ߌwZG*q}D*u_̘zLjsxc0OK6}ca+LOCd;xM3V5kY96'\χ??8ϛ??gck/Ljy>mKwqrNv½W?+;aM|}*LG?>VʌG̭'އ"wLߑ'i%oc(&^O/]a$g:LS?qÝ싞_6L،GVw;ǧq&fxꩧl^w/~1IDAT{M=G{/yy3ԫ-ד=e<yϷv?>y|}w?:N\zf.2s|YcbLLu܀SЬ7c;1b4LWϓ8ۇڌ$ݾǫF~b6%χ_ܬ>8Fb|m-Fޘu$ڼ7Db;žm^mǕJ~nwR?xhb|z/٧vy;/c?og~< x(pAPn4ϤEa+(-VkTazlyu͗AW}WQyu|E}90}i^/e|rɚDLV+װ7 ;*K~e756U|Q2 y'>ɦ2ť#p?wGے4ؿ>Cksݳ%^0}Ћ%8{j{Nu\`;^?8Lݳy鯾r[oڼIe2>F^q"n/oHl6 5Q*>$~][ IMܥg—WiA7+.Iܳ}]1"i6b(%i8w\|)k}3a}e+ ϲڗ"jeb/ܹd\Ͻ;~k386|9Vu|8n}^|y$?PL+)¤jY뗻/5;3wub8bdލcySceobc`6w>&1gN߸r<7];qZKnwҴ9ާsg:5y5TS絘şuwvl^iOw72ET(.&^{t3Y.sZqӘJ]80mgvwǘ%l\,5wmKb,heqݸJO8_=N?;ؼ\҇lc]JWRzI]cHَH+4n8/gX^Nk\7&kt߱1yrqt*&vl3,_w-kG0L`MMW3W.e>nh\N}/c3n-Il[ݵ1Dr^ʬcRsmNJ23e/e#Q욺Oԯ_aza&:&&|,$!7$ή0][d狔\c.6KH ӿո<-}Mo'NOU~ni's*IcǺezf,C$QyVjW(f.ڭJȬLجJRtqBv e+fΨRk@f.MTU|˥.f̿͜ţ/wc2^qmʔ$uMed';%rIabL?o*&sVf-gUZw:'HJܔ܈sv IyZKOuNJ!-힉u}s m\/ۜg]}RyR|yR<^c~Y ݋35xT52sT.8ZkKO]طy)yVN[oeaĚhύGL;w}WYrc[>m^{l{Wc01ϟb{eZ%Mϟ?e<{海m>L9.6qw{Śq&N'ns*&U[1r3oOo};Lm$=szFC_^Gaa{l^b|Cgc|x^,ϳM^쟏N?\_y?.~rtO}e=0uW+{f<殥H5 _=ҸǸ.&NeS^)>&>s382]K&.u뙧ڮ0'Wi \!IE_جF<"Ilmoo?-̫vI:'}l(˔mWiD`χ쟏,ϟߡ? \~< x(pAPtqQ9^UN4җtaV>_.l^NeazluXE>m^'GGu\.Wrlc1ټaz?ymmlsŸנg9ͫu\5<ӹkjʥ,|%i8eW+N_r%Lwσ$e81|^EW景븽|{x-ɷ9*nRmd宽Nwq|O666Z0U/qy2KeY8yIZksW?<˸[e>N;ؼ&IոqbןuHZ\{CL8~WݮIqko ]{53]Wo *N_|}GY(N6zeU>uuul^yn _)Kv}l_ߓL Sm=Y2ϧ㎐^dg{4cu7N+R7Gq 82cڜk%2㡡iתD郱cvvGfƴk&M0Ãq,_.V'$n Wfuص_nUUQ&X>u24LONy+u\}jE'G6 \{`澤 -}?׮] Ӈ_'^z0}kf<۸Rcg+8#{J=+uu8֕N>ڱ9˾+k9;=~uW^|Sm_'stq?+vե9L}ƶP޹kVնO$3eOeb|޲JGTSPkwRs6nG>Vo9wz"x߼Og3eMZCLL>;-V>fya+'aք~xd߼w*>$nDZusT&1j6|:}{v?cYg?./?ֻqeJ?n{ZøkMtA<[~>67͙T½kg{;~Kf^n82sr:<qkީv-l1b|g_'1ty]?>?y?;a:c?9C .? \N?. I?>>ߙ.azYarlsJ,5;^Ul^(Lϳ;V.IaKaW7nygfwy势5AV _MZar0k.>/^7>/fU*Myؼ666̳}xh'ah,3|{ժyeYy͖3{UpSSEܽFq^;U176I\'OO:jo"E n?? {ՙ? 8;x.:w;!k2؎GTh 4IaW]}k{s+Lٛa7+6|])o߶y?nec|A:C쟏ݱ??sew?֏,L?w7L$bqщO٘ǺWjmϺM|-Ue3=a}6v|?[gީ[S?) wQI콩j3O 7nխxEϾ&I#RYbOStk jܞ{7c|C쟿X>=1Ϸ;/Ϸv+ߙ{? \~< x(pAPtqY:<9=~t|b*0'ۼ"3Ŀ:]Lm^Фgk8*:LoUjwyz0}{{3L'6\qon'G6bÔkog?L 7ȗWc1W92e"IUyw:goo'Lwё/Q^qRsr_F|l?Uc\ڼ,9m_cߪGaӔ>*3Wd>.k_^*NW蟓jL>m0yY|+F&~S~/_Ӯe.S|\{86uoI6wyMxpw:q6}$͗q n$ qNk<9N'.Q˸]w*L<åisRW㾳XG*W}8JU..-bUI'\ָ'.:Q^YaߜV*.*1RXk]L83uⳖY=maYa^\_'^|\S%b?^wŞ㸿9=ƦGɞ&bF|^f,$ilq`)ڼn6|DN\XN'&3qwwYoI~l77m^i\'ݘ+5pM&Yߗ*e1Diڃ´wC*+3g0ﻪe^]3a\!Iq g&Ƒ|}:ލ{ܘˏV&I*SUغ({N(wT wTv{wWS,;87˕cJ*^n{ W5r$U'g+/ym^;yԘ'1Gs?ein.w\_{)8H 43j1VN4&^I܄MpJq^,Sѕ}MV>6R8e|^cy&V9$ꄛgqjmY֮~'&mG"YۜW]YiOl2qF'>ܟ4nWf}[5ځ{fܑ x(n>OP&T-:ymqaokg+~wRu½ƴ0[䝸77y37N,"8K3NQ|ۛ:21w l*;a Sm$~׭IvcWĽ8~rjof7b<Ϧ>DZ{Lً.><|cos-q=xs^~zĬaȷ}s~}t+Th0mG?0i%)7hx0=+W|$1)L|?nec|gga:c쟿X쟏?VU|^gRo>\9LS$inD({_̥H=6{5IZs*51Q\6f 4gٿo> 5=bY7 ڌͺ$}SL,+gNOکi\]GyuNXiSI*qvh[~^d'>Nf׼m$b;seZ?]??8ϳq=.? \~< x(pA:mnMWӵ7,(l^: 7l^wS|8m;^׵kaz]ahh󚘻dq^O=}U]ܻ/f񽒤(^|^ݞ/I|;ESO?/ ׍7Q3B5yUeFsgZ.aA^W>G;apkWwt~HIt0=O9=ɳ8nWv"~KUJf ˸,ͳ;M|O%iQ{O'ڻeWUl^;]*.ǍM߮>w~%mwG5>I~y|,Q[ S_&i"Ս,60}z55vqcWk< oⲿ胯^ _{ӗ[o[;آr"+u?.f'f&5}^<u^ʌ]:Kw6wZt0~:.{ןJRw}nfMCL-Ii.qM)I~\[fIG&mm?t0nowwas\)O?t|g/m^<.i\'z9;a֦=󋧧qL OnN6mf+7mQu9>dku67 Ӌ6ݝxvM9v.?Dܜdj^|ϐ3ϫ0$5ܼO$/azwǾ$w0}kq;/*W֫7HM絽͸yɿW0cz^XS\j̼gf%i0ύ͸f~oXwZ"'KFz۬\f:$iJN|-LI|]&K24Knf)ߍyrnbyءGMOtOM,bY˒uS/uӵ{{Wl^}.͚5wsnXctI늋#%?ޕiW;^{\k],{nqe2|絜 I\hŞ/Iq&sO&7ooIZvN!OϷCN-I^\ϙzwvy<^Kzp/~ǽr܌לGjwp̌3'5Ej@;쟏,ϳq쟏,ϳ̱/?؉w̻㫅ϫ.m`p8ՙ7o Ssn`u$b%ޣ t̻_gw{ΦSo܌~l^?Ao;'H^,Ϸ?J3a<y?1?c?띺-.??\Ooh~V.$myk yc,>x@V+q?]J/_6y]'3tۦO~< [OM9ۢo|UWǾ yFY٘v8o̹oټ>Ooދ׬?ټʫa;{IS3ys^?#^#OB}ϟyϷ:>Lg|g>NoC .? \N?βLE{;U4=s8WyuA4UmvZJR_5qؼy>NcyEhm${tt0}0dۢ"a7I>vml^E/.ԡ{I 7762Oy\U"/Ӯ&{".Go\ص]|;ȕo]y\,0N?__{P1mrKTu^S2~V2sorl,1aܣKzK,3%3]gە+z_RnB2sK #u-M[h mi]=Fm!Iawb{I*:qN.z]i_];9hc2.ʏyrsu'>NK8?8In+WxэC%ݻak'Rcױ#ԍK~+z8=C.HR^.g51+TZ,߸tO/UfbD<яξkЍrWaSIf41*turJl=ܙB ?56W^{3LoL~я|2L+_^y|Ffbf*2F7'vI_]oL%)E"u߱ %5YˁG71qebTٻ{ R677t;NĞ>&j6H%UWwɫ5+ԸIwSۉcG1v 5"h휑/,6ya7>J˫YgpuۍO̥{_&Շ5.y|31a<짾=L鵸| Lu)hqXgKnN0O\lg߱y}_~3_Iz鯼z'b}>L~J>^{-L}*fQ]:͛>fqsYڼ&I69#7/$In4^Kg{1ەķE.^gM}osrSg&(K6/µћ~/ahp\ԾlF?>c01ϟb{eb<?bœoA?>32k5=O m[xdjܚ}Xs*MՎkt{]:1{%0ӏi"V ӟY=[6ǽ]abY7_i>?> /χ쟏,;r٦ay{m^[?-6 <$U/%i!IMsi鉿ɤMWek<鮌{`az4-I'az։+Kӵyuz0jVggHq_㪊DY| IM,gHҪ뷪:>2>$&~|sJjcm^^|WønIؼ;?a|Y*~][x+k7x7y>Řn@m;F*VvyN?-@ܓ1cO&6̕Rh4 ]Z;܌w\ØkwRzؖ;su5S+Ts}w)md˕: W㧞i\K71Oe50kyYYuD?w?t}{c[8ݷ}5ef>9cCaK0ݭJRm&ķResq7͙y<3omt^Su?0_0=N>0a{wm^ӓxݨ2O_z5Lw~}u>뗍s s_Ҍ_$%G̵,WqK9{~Pع6HR߮aebW3cxt_4.ebkZܚh9{c>xP67SQHՎyMWk;LYKő&iLU%?p-5kS\_x>S`5LL}}NDlqǸ(Q\=Rqr6~azeK:6TyO7޹ȩ1:slB z$q|ޮ_K w];1c.w Iw'X5&[kIrA$ݻw/Lv-է옵ڏ|ao5ѱV=幘}lyu;v\k>?DZޜ`<~?Rb|]`י]}߈՞ť٩ W}qUmĽTWqw]ӕMS^'qs ӯ]&Lk$ۋc=_y-h+g?~e؊yϳqg?c|gϟ1ROB>?' ?ZI:90_yܯ:a)<:~zqOf 1*⽙@ߌvk@??b a:c*?mc|~oZ,ϩ':.ӹ qy7&˴_D,}jg5Xjnܾwv?ټn~a_7,/^ǒ3oIynэ?>˴[?#??? ? \~< x(pAPtqe{gһ]h4 ˲ +WQdap8 ;^nؒ=lulfZ򪳸|%)/qUl^`00gt̵q99ilbZahׯKR7y|_~\^Y^^ǐUKǘ,6/W..Ç6IZ־X,:1,.b5Eܶd&"Fp.w_7a]H? 'l_|ׯ&mQt+n'w|(kvM9JuaI||ct+{E\;gܽwגgq{K3Tq׮TqŸWm+ؒTj>0Q\TՕ0ⲢHOiLzr|^3w^xqPO^~~+Ɣ\镩) w\;/Qi;}'>*UUYډ3d w IqGkdsu*5r:5Ɖgks0}X8gf;FwqQq%IU<\6+`״q],w5%ik+=eYIZ׸J,ucڃ7埇1qjLk,Fw IZ:<>ӏ̘CrӴ:$i܋Iڌ9:]8]5ܸq=LorWngD|'8}50qnjŎl^_q}gl^I|]x1O?m^øcyt:7ribDןZglcr3N䕙1zcb*.GI9uq:>>ygu{;~S\y{25~[Km+/7O}'Ums^ni9:טj"IXNj̜\"/7ƈ)3;|ׯYv}30IKmqi͚n\>cҍ O&.4cWl^/,cf \<ុ|Ʈ$fmʶ6'R&M9WI*|kSg??w㯄铷nټx-`ews S)5Wf^ʭVB>g2mR66zsY<.=|lk8[q}˯ywݸޥyoϭGϿqFk{T} 3ygo5I96c*g>ves?DZc<y`y X:ϟN?m^0{6c?]ۏЏmeuIw Wf]04T1~1q$٭}y}KwW}G/eln.{Y~< x(pAPC i:ϤG}[[azUUE>NƷU\. _">~Zj56&f)>R|trH.Wq<1WkWMJt;qG05Sǵå_KӮ6 MN+j|]s~vDZ못v*_g;3o䉲sY[i}cwSVhsLYe\]}LWiQ*pUk,WO ⎻nL{15կ Vs-ɺZg18r}Z| wZc4.m KE7~Z%dy=񖏉7z3L*I1c{ffxrr$Hыˍ瓸粉xkǟ7ӿo靡N&&˸ɱ;:q^]3'&Ii׋ ~oߗܴM"ɲ̴хo'ʥ_9=9u5S|^saё{;n3]uk]{'I{{{at-\$mluazo51Zcx$inԥig{KsJG'k{7UUbjspuͧ4;u+%pI8mIWH^kiwzg#-$-M׍%f原6&7ڂwuK!̍y %sifisJۮHW\KbDϧ3sĘz{s'L5U31il^ᯇ7nね܈{V\K 7̭IReʫ6|mm[.\1ǘ'{7cH~7?e f>v;߽}'Lۍ:y=3al3ϐ½ aگ:14v5h2]ơtj|]z",~ڵ+an0ݽ3+}i?cZ%a⭷cxg>ve[?~3?DZc<{eebw?0FDoW1l^ N_}$ 0}!IGGU$Wm^W(><ےtϹj]>4݅:eT:4y,;w㶳7RR>ۏҔq Xi{yFHRޫTzquEdyWU$ӟgNA}fԕWks2.U~u3DkC'qYW3d90_//W.y@L'>.M7N"vD<K~+N5v{t\ѷ+qJ9xo$m_ Ӌi?L'qoh#We<P6&V6q$M0}4{;a i<֖|Y&2]$1AՍ}N'+:,g~Y$)3N:: |Rs uuX6gc]ko|'usI=[;T>cc37о~eY'P휤wVcqY]+}2~ ӗKя~8L0}1Wm^YYx3QWIݵ7csӯk2eTfJڻy?:Dj|2H}eԻ(s>u?DZc<vm/[>%O56k_fmF_3l^Ӹz .}wQKI<{_\dCSmt|yN%?0}fbtv×+~+7qײi%if7mAjd2n?y?snL^%n7$3z8ɺC&.u먉f\g%ef33Ce}?DZ>v??8ϷN?~.? \~< vHLj7f0}2; {5ſugIN5K>+,(yuSC2_5oTټjszGF^ީ~N4y|bmڼfe|_Zj2>eGԙ98~VV(iw+Ϫ=f]_Od-\y\zۍԲeU+I2H)U|,n7azI~Uγ1uES{nJRm3rz?strGq|ⲁ_i|%)7cĤ-hre\W s%ۍU'2.[nې$erqr" ͸nlWn\:Lv|ݷytbtz{N%ڵkad0L0uXw5vz~̕f>%1$u~HxYL[Cm2,/R1a^񓛯8~V]lbwֹF;w\:$;uO^:帎<[.fJ eR71q{SsImz}v1u7,baS3kƁe?PFfe9cGm^_nmE˵=ڂ+9AS;Edsʕ̯iW[s쟒ϩ-&fr~M̹Gr7$r]{W8W~*Lټ+aa?~{8}1^'Nה{w@*Ӯg~c?ݮf\-2sT<1݉o>4,nU3ϼf6Ͼ~n++rqW]X1EoWۏom{NX\z>]wΦ;ar[: RR.u_Xkb}fֹD_{'5Zٺ>=?1W_|HmWЏH^$_1v.D4k|Uj5'~ ^Veֶ{#׍qYhm?0:.%I';nOWq/fͿԅnl^I\ƛq%yqzgRY/4>q| I {ܿez4MN46J;}_yV3gqޏ#e8s|pdsNn’y2؈2g%c Kl6 O9],Y/`f^|I>{<5-$zW~kIgqe*{e?ۅ?sW$Ly3WRbudYktk7+Iy?we˫Ӎۖd`♕$I?]MM.Iγ7s{DZ~NOv4qo?+/;cĞiqHu;q sφk_y4#}Z(||aQxnܞ|J|,7cTSWK_)9g?q$kazU3 1~2lmrc0׋N[f щ~C:f4MsO#a7qa %oSJŒ UFᮙ[4vx\Nݮ/8ϸ.=Iԕu2N=X%5{:wm<+%3&erꊟ>OK׌=KͧqvxA{l^Oܟ0o>f1GKĥ[Eڏ׺p垻x9$7[SM*,O%ͭb:fn5u+g_m^__?3?cOO=.yTd<~Azb\7E^d~4k`nڤN̫`c*Mu[9=moo|ߏ 8g5FwlIztw-::kר]wr׿μM`2WMjc37qd+$kPoY/׿n/[l^Wk_o鯼˽iݷyUlVE7/׾u?/o啊c>gywG?C07bc䀤Y[[; c?a|g2Kw2:14H8q}6io-u|׮%GraܵKҋ/oo42{]N^?eҿw| L~%^Wկ|s-?퟿ln/o>]b;/G>o o/IO]f|'HE&pstr|g3cuqaߴymnsV|!L_Ө+|h{L+g8e_x!/~qk%unwo\r$ay?/R?.{eпsRi`Lε{azYYu0}>܈R|sװ˸ӍZ.}^a|^^{*L}^"Lze:90;Q!Ijw<+4_k3ۼ|:$7q1ڼvFͫ0WoЄQ|풴}Uh0pm䟕*=y-wfno_m/iwvu'67~5L݋9I:>%6tzhr$>Fͱi ˸\:i60ۍ8q^ʸW˸-(kUb ~|^IvCOO"n?6|g NK/M\'ؒ4y8 ~qQ+S̷~=U?_Q\ƫ Lduc<3LbikibfvCfwvv*\شESݼzMT{M>µ/WIV<t:ͫ6oub&W|S1/WiƔW:T9{kqu[zf~Wg۝"53yepc7Ij 1ߋcsꪋf$1|?áϫZSו6/ş ?gm^cyLlyWh's3z_:ItI䶝J<]Jϗ:v=7u o1۹_¬:f<#?u\ݏcxI9_IzWgNn~|~h쬺ٸ̼^vo67㱐[kҼW$E&LZd\ "w}Mj cK=6yGyeYJt02bH}3b:[[$iNn^_.}9WC1X[V>mbL"u ARso\37.sq?w_nW@;I0^ݻgj;~8ReJ_6ǽOKV;_Iq{$ qs\KnRu=q^Ebqkk'L_&g|LZOޝ[4^u|יx 4>Ӄ{wq}}mW^c&}7ǘN:f_'{.͘Aܮ~'?a_7(Ȕee[+pN`5fcxwڮ)H=g?8??yvⳋ, }>k}g˿86knٕ^r۴NHGY&bi\6F-M?}bj̚?7_y la+|%IYg7me7㸮t;7̻?Wbz;]g?DZc<ټ??\~?=ܳq+n.ZJ3N:5q&Ifdkۉ\151$L}qsKW0W㲿$߹kWSիW{$2m޵rcԉN,1i C:ׯ瞉_C/~8LaG>$-MwkObe{?5M f>َ3J$}_w|$})4kÞ߇7=ʖ9$m&91禯$ե:Km~9$MtpýDrZ\O__y;'=צ3_{%^{8IܺKYܜ}eJi,ϳq쟏,ϳq쟏Ϸ)x(pAPC iYk8I;N'>t]6Z"L_.6'˚0(27X*+Kdv[onnڼ&s'0f˓0׋W^ ӫU|U(ILJGaz?V68L?ߩϫ;U\ywoo'kߓl^i|upԳyIzZqmW$$_5榾楿m\ 6u*|^Y73]_j_FVh&q^MK|A\:>JR.".i$isg8Pyuv:N29=yU qDMWlWvmn(LT}Gf^EnsS^2Nt)a7 >H\eF1NTYjbxz_{*q$iaگrj_'eq됤4ns?cr%īd^h]mmK&hirג Tq; LjQ:PFHU_ {kSuZڼz}|iUf-؊0O%?Fe29"󸽻az ~\ƫU|^.]uΝ031K-(L|)IY״9M\^S'xg'wݵ oowټNqibUIL3}*$DZ0ͫ6ʭ0ЏY\- _|Eݻw &'q]ݸ |$'w|_k\|R=b59g~]<ڃ˵).f+x<$M&qsxx۸Hcƨ./w-tu#5OV:d*Vww\N?5M䎑:m'Ym,w;t㱏YqVf3OxLU\'c'qwa_tVv:Y&M88UDknW7,}vb'\[In?X07mQbM,kq<'tլt}*^t S^UbӉW-M^Enƻ&]~0_z?cr^|^ZQ} { mf27S9 3VYyDH>psIy{Wyq8rk>y)_rc}7=LاG6{m7_m^kw_xsR':s +__tM㹹xT9?߸q_ _=^Ńwu,KvQJ,o%?'y0=UW]y9ض𪊏=1ktլw=~Y\wq$=T\'O_k6 E\Ưu۫PUq~\:ᾓw`Z۫snqX\@YFO_ӷ6vu1=<>y]{:̻jJ2f0,Qmub2`g?cYgc_ka|?%^E2Lw2nRW-;f!IYlL%ލ{ܵ }f-.ūn͛6N,s*IE\kݵx]v?nec|gc<y?^?ȏ䏙2oz݃vs\Y4ܠu6{W6KDl_/j13TЭI4x?4=x(pAPC 7ƛ~?|&}:aty*LOn.g&L_].6cd1ny".׮WmV"L'at0=kk 6/q^0ub9 Ӌ,>~Z*M(u5^z5Lo,L?=d~6(L/ؒT< ӻ|%i{g#Lm g;/!ueiΫDyn\E?S% >ƣwUQ7~~77m^:+I -+Iy_f\WG=W2.?a^qv"V3ཥ_y<l2~,~Vq^Y겎dvyʸ+I$Mf;e4ټ\?%i`gk/}afO6wE_`0}02$i2cđMۜ4~G0Qmܝu+Is@Hr4L K=H4'L3۩%ie 3N6eks_6+ɔk']{\\?36 7v/tZct9=qF۩zims%ic#ˮ^c8^ʍSky6̴y~K$upWuz?';f'I;{q_뾳ؗJu8k|[eydd}ka晶XawӟLH{0w璖-ލ9ތ86(a|?ocKV?/䷅zq1e?qb斯_ 9<< c3Htakogxtxڽbz0.4u^3Vqc(.7bӴn\zvsFuoN|.tqc9$u|޺:,x=C|Sy45wcWƩwr1q|S}[mjfb{I*k1}:c1^@g1 Y jSuP|&HR)ջMЬ#J4L|^n)|lg֕ļ?Jc+ޚ54Mm-IYlLEv*UeLSUfN_ lnԻrK<iIĘ(άy-M~(Ln6oa?m^nnlm/Io5lmf^[::ӿZkfsa\_eN<5ya-M}Lݓ´?MLrmʟWm^P)Mh NnjQpk*3|LnH^*aax 3w/I}3&ӧî瘾L_usxo7%[g3cOwTOs7gמay 7$n Ʈ1|Uz.~3q7$ݘ٩q;gYb=כewx 37! q V IAITlZ6VKEF$wfI8 {zUWWMy{PD&=s}{ɛQ#_?#?bKso?O:$ԅKk/K^0TX8>RN/|K6駟᥵Y*Qw> }.Io_iիOƸ޽kWøno77n IaN/sza襤;Wƅvڅ|~|jϗ EہAo\ߦ$gLx=)tϓV^}}.5_Yya2_y>'< gWJC\10:/8?q~i?N+ϻ7J5Ctڹ MFyT{iZaKU#HJ8xdxHyïsuiMSߦsNn;RJg~^[:`aZث{p;yq~<y? 75z~qZ=?b/]c[o^G6<+a0l OZ694rYBH^yU~+ĸgv8K|&9W^]mm<?}m6[a$cvcb\_fp[w_[/Ǹ^߲*lxJݢwN7m;OiʊO@hyi݇X"tքw|o`뗯Q幆s&gUU kl:g$Ҳ$7m+1#5PO% 0It?r?˕+6mx+q}o?:9BA1r}W?Ν9? s~A8?9?_? <"x(#H}?VkZ;ެﴛk6|e؆WbC>b\LJ6|4kק1j |bçS~3|^|:lxeЏq CLc_9$3n7w8\?<ˤ.ӸhkK|^ÁϓA+oղZMJŧqJgO36yxyk:yee /|(~؆zeƛŸfu$5Z.k4r?exu͗Zh%i6C+; n2RWT|x5,=Ry|=5LnWCHR%^B_*]>_ķgIӜY+}h$M+성E WV||_FgzچߺOc\?˾l aHcӐ祿X|,$i_ݐYGgȫ0s'~;{JIX۽8ǵ`^j+E0QLjX[}RXJun2wBx絥7iAIҏ/ՆWn/pIzgm?y>-??o2/{s anwKua(BWJs3G6<啷n\q] }\V9vc\_n0Io$Y₿T mJ/ڊ_z(݇J%cLR%72ڧR-U {&68g(ԗ>y!IgI}0L]#OGH3JWygo7<[t$K}Eg>keaWjJĩ-/&;)п?˳=VZkig>oom^ !IWsV[[[6i5钦a/8ť~FZ, ki" {J7vF'WZ'֩R0c;aZ+~gj|$t^=1 i_vr}8=ϛ 8?q~xw~q6|4ĵ9&I5vع~N~em{ё, Mfi6t _ K_aK]pنt)'HP7yy0i.) -$I+pB6|e?'b\üK_ o4|ʅp. s\+~_E3{Z%|џoVgWlŸV?Nw0/kcm݆†Aط!>J(K\ߦ+oewl~~їf:W?ciUUq+auo7:>-+մ'ZCn9֪抟giދ'I'J# m$gn}Zjkm?c-q{ٺ0}>}9?|;ƕ KsYƕiC8?89?q~4s~58?p~4s~A_9<"x(#? <"Ex6ho k;Zۆs;>ƘgG{6|oχKѡ  Olti7}:Jx6܆lӫnJſI|\z_߮$?өW=>|8 א~wW$i{Ndž///ǸM&C_j}vӧedç\VmxMRCgzb21eT ɨJ5𣣣Wq~Vz=j-}JN|x)xnq5>Zxi;+%i29L/6/j%?_n|'I/]ὁOãPLS]o^ q㚤+ih+Լ⯳aËyWww}Yvsvm|=K܆1Kv1oos?b\U_E^}Zȫ{lI-7D9\^-wOm$glWLYw>KΫ).,bԗJN7'uz-wˢ>V|BM5_S('녒T cFӷ0FZKjƅ1} y8W~ц?1xņ꾿WW}xkkKxS|XKzlO ešB9{:j'i% 8(:]j!J54W]C4}o^+ o ;;]Iya];wq_#Y+8,\ceeņ_W_}5ƕj:[i}$xT O/?5;;u0 uѝ1J?ÞIDHYov'}ޖWe^ c+$>@zcIRrinꛤ s_{7JkiIo/%  s| ?po;CuBkJ󈋚ji@%\=ax~!O<yq~z??838?[W*yoMڈпaG|L2\-Ѯ|d: =)~6ǻp~ˆ|pϒJy=6|=ģt2 +MC^FaM79O)i_sQ8?q~\=p w??hj Ὰ+yto=ߦ${Ɔz˟}ZKKꢴ>2.&/S҆߹R/|83!Is_Æ_?c|~>?H s!b4uwȧxTqU>k>]yb>|x08fWqȦBjf9{c>2Tbd+pj4!_ȗI|OwJR%I+F|Glv3PNNn_ʵ$U->lpJ'>84pMfWeZ^^nHHIZ(ȫUUY:,IZ4^uWcj,$I|~6|sAB"T<1w2$M6JR_ښځZ?tzY5L}c\??hkin*./>@ǿc6|mݿIB߳] Js_ǣC,j }\YBNJ֔s/L_]!IR7O|rtU8|kmm͆:RJs_WJ68Ѥw&a,+9)W<>u%寳8 8O>KUz'Iji&W#\K9S^)7#%%S\gFzhzXkЏ톱$ymJK* <1}Rנ8'3 m0sgXt$!t|_c\*a.+U+LrW'{e |_,}g0kSf곥\O2 $C0b3t_i4B?0cßc\/ p IXOZ⨗kWXj7Ij5fXx֛ڡJ%1yշ+n_{ߙ>y]I9v }ڏ 7=KZJזrڧFAiMa> q{ms!jaLZmTJ\Ig*<LB7.÷^h}Jjƅ~ƢݸpKcNǯy۷oǸz=>ek֙Js g_2>OJK~ixka)uyF{yҚF`Ji[o-tg}6ƕw\p!+__ן/b\6''mĸR}Q)O|w>ދ/h?ĸ~݆n!IL}{yW| s{2A]?韊q?geZ_A:a$x+6|w{džO }It9uTioѹTGHHZɢ\,;hZaݥM?c6q:jRس#Iaݹ0TSq0 r!p_?>s~s~_]t~q|~^q5$f O|] RQj/OKҬj83[oM3q^,p;.盧ʒT=a-,j)KN&!O>N`<ϛ OZ:Kyyq~<p~{]6&~rK-?zm^4O)!|Chy^D)u鳳TҺkM RY*ZͰ9r{k5=W0~^WYIk6<: c1I:>ѡ˽K1'xچpwKsGŸ}6$驴?qҕ^c_ֆ?-=Sw # YO&>It&x9SKƺoSo9T)Ij׊^ۧ$<>Q^/3)`cm=5kv s?c:9N;UÂ,c|l}EF'>3irnIjv5 ~C96_jkcÿ4J`Ù{/6H*0F-K}\|Ćߟ8?q~p~yN[]~<xDPCGfNNhܶF͆O`سᇇ'6|2=qU*s>ײ _[ϸu'cq>ŸNN6|nm~ts}^LlxӉqmnltdkJ Oi/.I=f3*|_+>mnb\''>C^b] n6|:NޏˇO'c>-IÁ_{{6$u|n|xCy6 qmWh\<ƸM _T2S4b\tlcFG>2)jxZh$ie{y)OE;%i6N|;2Oj'ؠPllwVlInS|r,Z(Րk8ב^xD}zIU;>>yc\7ZNÞR׆F Ϫj2/Ivf>OT=|\>H&{=y/U*\Y/B5ϷJhW }y jH}3iPH夾$ËI䀹' xaRzu:_k/'^m7ט;_\TB|[+I,i/6e껔$e%y$oT:͜U'\ھ}}֪<1HR-ԅ .Ƹ6D3~k4u8gTfk[ڎ¸R;{_JO=onnx2ކ߹ŪV%Y)U?M kVa>^no$icT»ȷiyrBۑ?B= P#;r_Ǹ}6_㡕~^Hal֐ ˨q,8s˥ppį//}?_ެ~6[k;ں`770cݿWCj><_imHqB~_Y/ŵzRS2UiaJR3XӑQJuQf׸ S,s0>Ia|)ŕ.^kPyWU|c\pim()6Ν?/_k67ymm͆/<\za-\\;I'o'bÿ|koxg Kr1t F#:u$J0}(0*_z-]N\*+N3y0n(쵝d+{1#vBR{Y JD~8)gq]*ǁO<y9?oycy?hpssӯCNB][;|n}zhSTpʓ!IRs+,`ZI O}p^WpN,Ө%)K_CP_[y?na/69?Ҝ8?q~4s~A_ r~ ob\xlx3Iˑ~hSO}Gc\ՐR]*9^Z#kKe;f˗¾k?֬4IKU¿߳_i?Zjεoß|Kkk6U?X_]qu o&SIl;Ǒj_L}|?;6|+qIx OƸY?N+ m?v?4Nt>nwۧ$]~݆']-yI|um$ ~m絎~%iV j}OĎ_V_?l+0K0 Ҹc-IЦKH_II NHHAXG}۔t4)Ls nHyq9+;q68s ?yc\_v/[*}힟9? s~A8?9?*H=CG~<xDP/UԨJMi? _ZZ-6l>a߆'1xdGZNnsņmZ^^᳙;lݻman5^Jz˧Kt:qMޖVi×Wb\;;lx}ym#U 8s׆߽]IRѰ˾ZCJ8ի9$ixq:eѬjjfA{,ėNfӿIT}Zry񊯧_mĸ^]Z.IП lzշ?*ӜWU/[y;}NL'>V q)8|,+Sd/9V6B߳=ai'jëU_z/Iݶܲȷ۽4|7f;Pb=Sۜ|Ds^&a54Wzy^jt`4rߠeFCKK64u7K?N^V<$[Rޮ]p!uqhO +.>wr-I[v茶f×Fݗ@3̱~r|u{'$icÏpǫ|JyԿ-fK<{kþё|]ZuÜ$SZd+K ͗ 4VHy쥱KR:a~1I3a-IC, nf\i̓/EQ}/nyՐ,z+r}*+(}W)߇} yIR-4ӰPoR5+|T %O۪Tߧ>Ȣ}I ]U-|d)R}e8mG*=kR0[GGoi1Q؟!Iw ;KPkfWa<_qo\xa\%Ika7~6cW=L[Yvwc\8q;?q5BZ cR}Fyں4McGIZYcԝh6s=O&OZjSym1DhUa>WJ.~S{LЏv˷F)4[ZJm}JRlG?1~61[w ӞRI::\l7gꃧzʆszMf0Li/|"}DAqGO<yq~z??8 kt?|u0kt6>av~ۨj7kF:$HVa!u],}^K}x)6547B}]_q5ObJȏ8?q~|p~ =?}݅y-ڭY:(בi xdVU*nvs?vu¥솵$i}m݆|T=]75=~]r<$^᥾AZ'O{OʓgqR(kum3y.8#x׿?lÿŗlxSw +/[~\]>²\۵s~~yr)x*?X뻿6SOy}=_ bVa^w@ai_k07 byn8ǣ0mz'ClsL*/?;:鸳Iz_McV'X_M{z0{tZ!!WMu$M=?iYqUfGYk묅~d߉$U}-|gg{;mC_sԟ|iL96>Oko~uˆ}?R2~ZhZiJr̫"C>ێjտ3gTkK'9)$utU~4 ur_iImƔoNmgB_~CﹽnMfO\ y cFs>]u_O=Lk;J.[;]^>犰/m60sw?$-w|t/1i۔Z+%IP&Bحu+oߊqujYFC_Gi~0Ȇ啯Ƹ{y4'IO(PWWmwK}mmG-wIj|}:8ڏqю _iNegqm|>z_/koPV^|ϳ1AߏUh6rztY[cޑT ӱ/w~.+],~$m>h8ԑt<`J$ժ>aa:PR~2QP}eWc\NL0 Ij_472v{2cqW yU k iǛq\G q5>87s[W iL}Up_axQ#4Ok_k;'Ks#OvDs*~+SZ_Mql+={0TzV= ݿ{Qʫƪ*-% R2Ji.)S:f\(HAH9< +.u}"R3ũgA=''y"U"a^;ϭ03/uFi>ևrW-^Pߦ<{sל?|gi݆WvWb\v(AOGyi guY,I̤L'| ~{;d#9? s~A8?q~{r~B藾T1ˍklZ3Hy۔{wr9uOc!InX#HT:kt_aZT k@,Y&o~$MA鵹]8W g9f.\]5ٗB߳μGas5ѷ>/w߿s޸inBI: s3M,̗m>7lx\ m¹v0~x/J4Z[u|6]Z^ Gkޜ+Zu$ Ӻ̷Y8i?}yhv_O< gY? J!t\}2 0*tcu>CnV$>cÿƸ*pDPa^lN8zr yWsw^h7?gc\s*ϟy?O<yϟg#? <"x(Zt3NmxZ/Iщ Tg"uO^85ld>qp`Û ?>:wntاRc7^x!Ƶl÷w޾y 5j6ҥK1~pڵk1ݝ;6]D;=oǸm1U WlxPsݽ}G#>W.յ5^e6rjTT[I:>LChg'}*óo#N9꾖>4:dՕf~yM*_U ,}'ۊ<8=ʥ#{+ǕpZ{)՚?߲`(ICOQ\᳊O1e?tK߹i/B9:r$MgV6/lSWM =Iun+ jj8xZЗœMhOaVR|/, ;1ǗJi }5T0$庻ƛiV|o14?k18Oudwfa!u%śNuWS\N(iCQqYlh5r/W鳔 WPxaj)2\xJ(+0$5\T~aI%=c=gyn$M ~ YaƏl9I4F,ѵ֧WGa,4< {>oxgl~mN_Лu_~aTΝcn.ayOk(I}B]<u5amyo/˥}3L͐aL?k}jlTC~_=9 :ºds!Ε+ۄ:DZVH{^@k =ϟyϟ-ϟy?yϟ /a.I>ڭyLgigjY;߼fa"I0&hty_^eKRs׫K+~<0 y[ laat/i'>Ÿ!r~4/v~q7|p~<y??ֻϿ/BZB!%iI?r%͹|_[Y98-vo#o9;ymh}Kh9IZ_eS+|[968}PI<ې$1_N{8h nS!T/vm~[2.~F{ ggaUaev+Jgޑ OW߰O6@_s&ϟy?O<yϟ #? <"x(#R_gөz~x4vӆW*׍otdgp<=Qk6x|t:$iiʥ6|<|JRkܿЇO {1a/Bz-7#ov-ƥOfV'F5;\5lxT}=}i~ƭWӫ(5j{I*>C'Z\uu_ked3k+ϫK+ WC}Ug;3tW խf>*}~Lu$FlI45s9}pp1''>縶sENG!v2~3_n>~2yb6eb>+Қ _j=k.n޽V8gs ~#wwwbTo}mxۧg;w r} 6nkZi? /zk:u$Ta% l?*UF(+B{R:XuK5 %ZI*4)ӓ1^RT/x}MnL|A 4}[;ek8i_Z~ 1aC6|bn]ܺh ܹgs\I;Jʊ+KM CMa|sK%$Of(P%2 sI\]ie zvk GnRhfv6%i> Škcӧ$]|鎟rZmNjןO8 _ix03 }h?5޶/}6~y^ ߺzWmx~&uMW׏Ӷ e]?w6Yu4GU5 Iȏ%J^lwĶu3yl5$υ_nߥ<ԅпV@(y n51$鄱,j;&ۧK%rVM>ZA*ë!apOmp?<$UCw|lۡ)I1Wz4^| _ÇTEyf+4._WJ-Y-zI5Rzş1WNW/Krut1 :YWD /剔WS}_ӑ~&um^ cqay"S--\}c߳p}sJWϒ>JeJVšڃ2-TVZr>ݖú|´T坄knx2THZXMsBN}qXZ(KmM)Kc/]%ioyK~=G|)g:3œYg?{Y&弗r+C/XK:uoIyKd;s~;=~^__gaIzh\<2R''avHR+*9w5nr8K_| ̯BݹI/}نW|SO^qmll+WQIxR kGa=:Zد-4>|yn+gZrq;)I&Ӱg'7݃\ߦ#n3/MjaoLu\hB>},1D|4vɢhɣQ=ϟy?O<~~^wBq+O??yӟU:,exyӯYΙE#-5:)g:Yi MyuN6IoW&Z$5m=ưǡ7I.a/=yO{7{??>.[?͟)1Q8c4O[KHg%󴗱?~ѳ$g+0JUsc[޻۴뤽9$iyُӻ/sH׏L 1Y1Ky;]'=ci~1 I鲻-5]TOkk~MS/RY<ԾVϿS=?_:9ij0}*TM|"߻w}~򓟴< ?<뾽S^: 虾;YlĢJ)W/oL$Ò۔BlIF!ӿEyVǒ {]{9|? ǭ[yo}[ښ߽3:?9Kԗ?'цv^{>lߩYs{?=/9?.k.? <"x(#H}?Fz‡QNVΝ ߘĸ޾ ޹g^kcsPn6xphZ޾NnlxhÏ1FR4?ٱQyg'JdӾ^Ƹv}Zks>pI\ߴ]zΆ1oƏuֵ߹q͆/Ǹz_o$lQmt܏q L}V[mx}j5~?˼⿓IZi!Ur_6j9S͆ڒ%icur/vKKΛG1;>ר+O\R;lx{7c\ᓎ/[T5lxeV=W6mݨck}c55 ^Ր^[T/3?61z͗Y-z _{1OSB6K\Ֆmx%&kz}p31ļc}niܿWSCpN-#%w6O9n5tk< Lߩ4k:}П),4D~C]xvIj,8)޾ o1jہ6 WkKm>…K1'>e?o)KR׫7n᭷ފqݾ۴bZ6B(tr_95}\I~Of?MGy\{㡟h/v cPT;f:j6U2uǺ^og6?ڳ὞O4mV|x>~z2?5~Y3$$BGc3-*ݒ0rx*9j:sm|$u~kÆy5]ᦷ.9j5 /ǿنƿWOã\6> lx y N|9r_}f(j/wO~?gzjRKƩΝ*_\S)fsgi~P![m-/>t۔IhsY kVts.=/jJcRp_idU)Y5]5BڇLJ wvVO&>#1f,v;Z.,+4R~/s _/Ju|Yxg$5~N#]{1a^MsBHk!ߗk?(4גZ~ݪqx5ԓ~ +K"ڧUS9Y[_q8G](;]kԫAkLc|ӷW6DžT~.c\xގ󾷔Ws0F ǂm,96%ܾcß}W3RC~'^7ԉ%IsҾ*Is~^?$icj;R\KK~]WQHRN5r'$im_ǽ=i[[[!.~utr׵7_᯼ yf+1ScG)[a FCl߆=v\O?sϿ; ^*[[>u/W^i-$iwǯߺӻr^ia$qiP4J!.k4udb ek>gzRd{janw7[~;++þY[e;{cТJ7w8?oi8?)~٣Kw8?W.|3ߦЦB?uJ4[ah?24< cn胴B }Vk4e~3gG!O{iW8?q~<y?޻u|;wnao9?N>)^ٴG|R؇f:HHI{ϲ_2R%R;k%~Ki+!ҫz:Q:3t.%Iҥ7XlU|OJw;wYTD:wtpc,=na> _/ן$I#?nO8?_:61}XLYCm-9~Gb\O){0xmx;JRsY =Zӓ,$gC#iHjizQǯl~\}K}Syfv]?rZ:٨Ye??a1/zR8?q~i8?>=?;{? <"x(#R_gS$~njT ̇6x8:}Ot28Qj6gO]x:5 lxeDnaWhM6|pҳ%/l9>}%6^߆>%i<_d:Ǹ&!O5~%iueӆ{{׆?܋1O6f^ﶺ;*Xya-U{6|4ivІצ$~ߗIj6|.'ThwRmtiU|ns:z˧0rmZ͗q-O%j.Ũnll/KK?'B_Z{'6_Z4\7}n?{57%Têwr\-׉O.9ȗ4gP[^[qj[|_W _tZ6|i%$+SK=VjH+i_Gpɑ{wb\g7nUOK}}?6 mYH_Ԕ͵/p_AN]ƍo;./{Nm<<|$}W5ea C6rC߷Z  c1I> J> \Jo1=%Uҳt0HjHtix<=4 רVرᒴ>}J%?hE1jF?{ ʲWq՗l$ l$ abc>\H+~9i>$ٺﳭ~4e$V[m۔^fvkVu||>iU|wϙHʪ|fs_G\v7JN&~0E۴Bh|}0 $ժ>>QNF͗fϤp)9J a}N^;$|ڎB߳0 }.c5S}-̥y+N+OOibHUsH#ܪ$5Hyu&P\jq\gJ8bN Jj_~,uaji6Z\C#7R9}OO̓~on+ºs(_T!BWW O<[ k(x=|,g5JgF"tg%}t }'啝W^S]\:2/NϘұt!א?/|n)-]x:ct$q^s_LacpIZ {77̅y?nKK~|tJ'n5B=oKN!a {{cTLnx<֟R o`sĥ<}{GSvzwP c]Rx!!St>lh|;~Ԇ߳Q>ί ,K_ݰ^'%~:c?c6l;u~^3Zi 8?q~i8?[~<xDPCGC5 V1Vjӆ7ZW? |Nb\ͶZ͆w:9z> szjn}u}:JRٰzwb\;6.NJ|O>]zGW?}tb\#0W7b\Meۍ%~xt: }yVۧ6;b\W.?mg~҆/$IDAT<$I|k }NӗZ=dPx6K:URbW:|k{ۧt_tl6/_ܴY?5:wk'HҨӥ:urnNv3G>|bk0eW}zm_k+1{oԷW/ŸckV'ƵjﻡiHʓW\߳jˆ2<1 会jėV)C;+/}95|4a^tmj7UmIT{G>J=kͱQf՗9IZ_ڰᵊNxa0( IΟdOpYzjPC\Y~jշ73<,.#?mq|]" yx6m4<{=S~/\zI:OcT_GA.^cf?4t-۷"_m}y}:ߋqvÿV;áGv+EIZ^cldˏj篃aSC92T2K5$Kӫ^.|tn ,[7l%f0g{=ծz:ӧ/+ݺNyZVvnݱ wBO 1om| 鵼l׸x1tf-?VVuի]X?vՎөϫJYi1_0CNs 8)_x,,jL,u*F+ZIan'LJ6#%d|`F9ߵb{8TߝET+}$B;0 Z $UgPƈIgnZ:Ҹpcժyq~ˆoi܏8Hp_YR+HxirZ<g3_GD'Këy.* |Tqb % ժym0 NX4G?2z{^|E~Ά?qu~޷G/Y }h)8,ĕS\)~i)uIR>1bmYS{.I~}(}gu5z =ܛD}?K/Ÿ޸B/v<Ϲs~mjs9r]W 󛃰a-UX6}::ܷ>XK0ԫ+K~E+1}ӯ16^)^4S1QطYrR*[gGLR5v'.u'kYO\ {S$u}6gŸny O"I'_.zbGB[Xhfs7>|a}5^&y%I]/ps~A8?q~4s~A_~,>O;??gB grNT+WHfjJi_+~mi'>zt R?ķ>e_tup멃ܟ6|w\3q~Dykc\[p~<y?we_w>$Y0"I!R~t&|_O!j.=~K{Sg&RzywWJwrc^NWIqT8o)9/_r/<΋k)MqUR?N)Hѹu~q@މ[:??}ttҳau{gmW7}#-^NKb}׿I^yן> goB'0eaNxduu=5e([[kF6 g+j°$Sm4Gt6/I6V~oo/}5kێqi ]1 oVc\/GWN^z_/ĸV6l?~ֆb\Lmޑ ƨ]_O.OB}'IP턌*jfǗ#_IkRnu\zfӆz9v}ztVb\>zKҤƚk}%ֵ[>kk1~߷uG한^':eWe)5dkb]ҦO,3WmӾ"_HRuӨv=8־ ?S3՚/[4 Juv[7m~M T67|_d*.grG6eyUǨ4|wsݒMsڏ60܅WR qU*7VlIRVwJq yJIәsLR*h4|ƨkHۦ#N4|JΤ(1IҺ t6e;a՗퉭'l~e#a ?s[ ~7;Ƶ sڷ[j7.!6xdy9.uu0︿JsK!O+B0f^Q{w2IjT}Wھ\);e_Gtpl낍fnug}~Fo֦*aR2)Z#/5k[JKx~T5٢Bzd)ÓKz9|Ck6e|G/Ş| 軒$MXtұ0]^㔔W$i*0LX3Sii1eJQ;p;>|l!8.4ry.<ץu[Nz],cJ:0N%nꜗ~wl/y|6|k _ĸ]faߓV跤|WCt:~Oz2oe~c\)`/?6ի;>?Jҳ>kϝ;g>Ƶ׶} $I%xmq^79x7 IO4uNaM4eN0K㧴/L {zK_ -lڧ+W|>b'b\_OlկŸm]qȴsVuQ%E*xx8?q~4s~A8?9?9?w|:#7n:eao&=aM# "5'W¾V\r8Ô Z:tIk)M$i!{5S ]߼ܸ@IRӧ^_{w?fT9??8?q~Ÿ۾[l8+I}paX8ڧ}6 4aJR-Aݣs,R5^x6G?NR8?'!]KW}: QyO؆OƸ?'vm͗<}j{oǸ}yRJ31FҚF:?6?[a8?q~8?q~ivbx(#? <"z>t:=hW-m5*1n>ik'1KWІWb\[vI8uU~Ǝ K1w%I𓱭VJ_i6_ g%QF9m^=ηay.>˝57/Ǹ6|mco$oVקc?ME^6mOdžዯĸZwvIUYKu܆o]爵.^N_x;Ixº o}]/I;i_mkHHcE*kSiýk[,gYjFͷ÷7Jhǹhu|T-I.v9]8o׺6|$ݷ>|>M 48#78q>-{0u.O^߯$Qm6{O{6[.mcߞMs_2 lx+nׇ5qͱk3'61'.~ o$CuIy!)ܧc7U}wU }jHJ%  l>N;9Z,tXgo:4 ulI#j~$|7hЦ-JnF!.|(_?I']ݏ+U,{;yLz(B?vYhgB}f?uW|9޾ /5]/k7}Z^}UI:zh9h4B};,{f}^Ϋmޞkƚ}9rsm˷5{[h7ݾg?ׇ^ ?׸W%/G>6Cޖsu> B?RVV=7C[-?NIZ'iKKLvϙbъ/CG]ߟ96PRx_Зl}\0jutoƓlCڛSKJ鵲jkyOqϏeo?Md7C}}W_*N,+5a8?oq~={?O֙%;ٓB7V>QX5Tm0NI{ %ϲ{Fam+K+I1NI: c_Glq$~lc'^s?6gI8?q~+]ԢDZlUIJ|&9YRx)'Cr<,w\gSOT_S{S_Lg9z=?gS?ymx_J OsF)MJug\}4+wnP4zׅ|6C #_ӸjyОuf#&(.z6,aEqw.7/=Bڧant+O֖  99zȓ{;yݷ}i(O?J OgRWaSIӗ΃߽ڕ_q};m8O<y?9{? <"x(#R_+_;Ć.ĸ>Mõokz6lwڵ g1~wlx]6|g 5N}כ==$^[[qݸu׆F#~1zZ^^qoO|}s;u4޵O> t^w5ZkOosijV}=utt_Ǹ}=Q]dۺoz6^>c_Nza[l겯%i_x9]m~ƸvkO;v16gqf:9RdyPN%igt嘤ށo&SZ3H_M_7{\϶{ Nse8gZnc\J}{I|5$t@$Kڎ$<#=qo+t5W9JRJygLqU*DV3L~C ;Yᓪo%i>ymp|{ mxkIe>/rtlak ?\= ,~ƽ,V7C 5>;~?5r\ϓ'ǺM;yBTVVlxxVkodžvhImߟptIp|:x||떟kuç$5>^ \RLa\m1('Uƫrh}>OrrTJR=êoڅ~ ?wn_PSV84n}?C?~ކ_iƸ6[7mqݺyÆ6|:}痫/07"I}?]Y[K1Ț^) œFIGs1tO4gg|ZZs᷷}boAvo295o_^.++Y _ t :}4^?{窟G+.L6|CriL)lWV}M'9tAzWRڗ R?9g5ٰ \qhk:Z塔ga4MqrtҺQR.t15¼T!k>]?^tpŮ}ka1qzxTS\^r]*[R~Z(+inUlgj _F'=qRQN0?94%)V_/~)՘}Άomxo;èCz~V%I!wL=J}al%S2IPiT $]"Ymݢ?Jua4䣓^J(HҥK~L6<R~_ƥOϖüRu功w}6<+1T&._.§svާ__qm?IZ ~"wI=ȩ NRÚ~rh8AfaNsJЦQ2Kcj(iO(O}Zث6sV=?=~#/} 6ռ5L{yP<q~>S8?q~i?N[[O??qs; &SVQ ^ΔG2~g蟽^h=su@L a_f_R grJ㼰Ǡζp{?a8?q~4s~Akp~ކs~4Ͽ;KypygNcI8S8G< o?KI::<$Uuaj/`R{ /J{^H*+i_w 9Եp΢t^%υ@Iis7RN˔J}:/)׹,~ip)?c*+@Ij6}_2Hg\<ʜǯi r yqzk+6oͿ:%]vǏGޟ۶}v! *"-ALfhr)&rJyHv*(Nl<ĎRT,ۥbL)dG4I>]lpH|7|ݗ~?c5cY ڸ]?ϢݻߡyoMODL<ۿJu$]ˑ8jgw""N&:O, e wl\пU~t}m?'`r}_w<{%e_+֖w~NpkaS>4mX.2 2""w2|u#~s(KS&μ䉬QE<12|U/uZ Nb!{jg^>7$3]~""&mr|ۖUg$""kt]80z8"" TjoDDe^hKmpe"/t*^kZ,yZMut/מFD ]>Uo-=k̘6"Xo2꛱H~ 3oėٸs'~2g7mk}B{]D牣;z,zy;"̼~/neL-"bo'wLןMtkkh[gsDD bԉy\?hGu:g~S^YF|vc 'r.wW""3'OWf}ݦ|Tw7s0;}_/f]IDċ/=SNzp>GDеNV>OLM߷s]NuD`ϼ0づoSg;L]x02 N㡙~I/yvE݈L]w_өNTxl'*,q[S͗9|қ~tj6shyb5Y"Z3vwu k9?K`h=}!).O+'q+qݯ]?+Mc7{{t߈ʧoĨ3nK_6k>JS甦}L}:B*O\Do#"g1_ؠ M60uY[v}g s=w{6Y1ᮿADz:JDDDeeƕ+]z9zGDtB {>\kL=yvہ ~˭ѩ|6:ҼGWNSqryblSRnWj[7~Y7d*ޘ󹮧R=xuso|]ݵ#|~9>m\LbO|^s?/}eёŗ^ۺ|[6wkCFO?9'nV UhŕTQج׹kGD,M?];&>sɳ fre޽_FDfn^&Ç6c%_]˥W޽ײ""C\]94s#uoiΈDc?fn|p~^y8?q~a>31qzr9LCw~YC#Ruuxꌉ3rI͙MѸJp\O{]\n^9b󤩿_ &;e.>{Trϲ;q}>}PϿ_t_ҝkK=k \J_ԯYuN7xKo_ڳq߯Nu]zvFG}c7hٌXsGq]49oju|ٳ{ dx}Vuyxޜ=iKVn>ٽu&&q3z~exj_<lr~I?:1ڸ޻uGLݒeL̕픵]wr&>">.={&n tY~ViT"bbʌHvპ#k7h;iMxDDgu}ɦkg#|6o}uKի3~钾c_wz=3v4E?[ nkf!'FT_w_S""FW.|2|"S[jΞsq}d[lED\qs &>N]l:/3=H_:OnWnMvc/wDaeѕ-"ʞ'z%"t^6plikWebחǮYu:zێnܞ+]:zkde꼽=T ~a5}C=ѭ|^=2nb&K?G cڍ_|G}7eޞƥ˗exQ:Nea6f $"&IرMǴ_2Y"'\{X2'9&t~(lߣk6;nj>tsw<oƕ>Oqmeoc=m>[.'"3+*w}WSy:5Rs {'62FsѥK]Ss E^ߤ =U| ~m3戈0vML 6&L)ٷ3<ϸ5EDfέGg!n0ܦ+KUb]Υ+5R6_~h5q}SYC]L"칋x@kp?=vyn7"⥗^o^wkk6.^{5cdvHn'g.Jŕ-'ׯ_.VƩJ}V/f~e֦Y>rh|D/ͦ~Nث[6C7k^{LVu$K_5G:Ξ>so\#"cv07rD]49}-Ze\I!,g~\( U8?9?8?/q~?\wD3IzuxI˙ y˯pwƟX,t4*re"k^wg=ktI5&wo,~PmT=Wdຍ,{Y. ds^-ZeOζ *#"JOf6RMt>Nymxzr(ÇDDg~v2_Xr1;rj֕=Á]>.G6WXw$:O33NV|Se괯˲ƕkdxo+e'mG%굉~+tvDno]_{Ƶ=ړEJ{+v屾i.HO^)Jחhr'g 遍TW^g|H{ʋo_z5;2i}u>ڽrC]22ag~5'&]\j<"" 3sדF.s._x{eihLIw/_c>ׇ?>>m껈.^]EUϼqbd{{8=c ^.FD\?r˥n""Vo2eej#"#_[3dCgJׅJGv|Cyۡ֌Qw\ďGәV|^-̻wzU~Yg 3왹WkW|hA_ǕCuM1bV}}~~3+K}_|Ƶ0udįCg;.K ?"ps S[2.(1si_Ǖz>=.^Mm]6.g򛺾é~+6q:5xm|;6SR˥K7(JWgX0{1ڵ݈m~{vPr}jkp]vqK_ŕ{gtV*.Zァ(wݯ?{s^DpDY]?Rܼ{m=޵OW\w,nݺ3F.2n)"ܳej?_|ii7;3*S,"4ۧwt\Cjmtu,wPJ/T9fyڷ)C_K{٫ijDׅ7n5nq|~_cׯW]J)8뎷SuIz}ĭ zKWjb4~f7qvٽޜ__᯾ hro ]/"/8 7g#wx7m\.\_ED|} ɟI$7zYDߣ\]?Du}|7ŵuS}{f/j#sy 7Q5+WfBDlqu۫47fM2"sڧ t>cwW˗:uDĝ;ȯctUR{fzD`>8c^l0_\8 m8?y}q~^s8???8?'}Py`rhӤ6|dׯ*W%_!3} Zw&"n2g""t?khQ[Ͻ ?5%|Cﻈtߑᜟ?w~*]N9?'q~OΞxdtr{=+di㺻wuXwM{x ZOiW_m?5ϟy?s-!?y(Cg <#P),ϣ? whex422N;|kF]ηߔ7{Uw jٸfS.\ol\y2|| :Z{wvu8֟ͧ2WϦs3_ed<j~W+]~""_y2'"_klɱ/[gg'Nmh8Y5e.".ul\W/ߐBZ,;nͣ'vMUut<0}zbT>p{CE}YzbP׺ݪWM)Lz_+QF_?߲q-L[;;Wl\gWt]xlC3׷-~>޳q ?S6+Wo2o8tY" ]#qu$rf eflpUdK>*{@ŗGD|ehmo79>vֶ#R?E>S]keRq-[.uё͛2|eLJ6u}Bqӥ4s)T rʗwt=\^c#iDoݟ9>/tg3?q9>{>-_=fp~'s6oM_o }w=_ڻ$3389;ễ~>SMm:5tV<~wDD&~9iљ}Pܓ˻MX6zlDE㉈]vepg-sDDdf爈(qK+'U܍EmO;.ε[SSmn@|F1~:Sl¥&/r95#"rWޗ97y;]cLOּ窩׾Fhk빿zI]JD֘~t[qgsml\:|aadf3^<1cĜyUe~՝6*Wmuk{fݎv}ZJ3e2j L9M3f}8pW;p7֟?m^f>inڭT_M|ƻ~ZT9&ݘ:ٺ돭Rq9}U}Y7\K5LZOnhD+wyG48iމ仳2|{[z)"b0\'tKߗ;MYyuNaxe~w6f و1}s_/nV=.]n8?" 8?q~<y?z~~iFDddIW.9^FZpL-O>0fQV漌Y;W6g_}A! _pWv<Fy5ϟA=? w0qy^u׶|oϙ9gpk?2W+&>zjTsqvᛜ;rIQ6e32w.SֽTz{vIڻ<1'9f\Es#?w.Es;ZQqb۔?؟}wR"ٮ3n>׶+җQϬ•g>O325Ҧ,fmtRGKsōSe9{f)u̳,f7}zoFǦ?nO}SwM~AtnAf=]=kzNa<6ߋ=yq~^g9?{?+Pះ<xF3RYEUU""LNޗdxֵ6Uf˥ 򁏫Qљ ܍2|<Ckd$O;s=^|jkFg&|;>XⳚ42~e?:4(" 2tID ?9yծtY}λ2xU]&^yM󉿯V>Fo[j[Q:.^uvdɉCS#"" ߕ>q͎u>_ܓw/۸VjQzm6mJ[rS3qxx";=>fWy='\Re=>Bbۡ믪ϲt1""w>t\?bbѽ/מڸ{?2l\ 72WpUC`{o=k;-3ef\zߘ nmb᭹=?Y~_?۸v._ᙩ#O|;no}]&\0""3m]~97Va.u۔GDL-+}^xAOSL3K}vm\3]6" U4ye~IDļyuc}=_qy'Ï6~>S0|S^/nqxc?eg?ڇwl\x2mu~]""Z痾[2/i\|\B*;zbVrlvEW̼AMj|چkm*wu_Ule$nGz>I1ן1ԏZ牮3sYqe˄kVv}s~oj.˕/7F=0mH[{e~^t]X&]Zr{!n޼.?iտ*sm>7snۛeԺG?5ØP8?q~ {g=a΃=x9g3t܁97>sgUo22wf}xߒF 0W8?{~>6{yϟ6e85ϟy?hg_88Oiw"U~| W:'N+]J3}?n;kkKz}>_Nܗ~?]/VZ,LڌV"1~M.<\isDD,#>tD\w.M""V+}_nGDlmǼ:;ˁ߈ct9Nc[Sz=o;u| \?֌i#"F?18bK60 Qʬf~ȽiQex+7/vk4dی\:fSUOŶ§W;3xNV~%f&~b۴XǪ4/|ٞպ.ÔΗDzytz-2?Ͷe:MZs1cΧ}es$깙PiLnY266s n̗MbFDg/7op J՘vȯl2ac=4uC?33?װ.D9W潻u rJwyO[ߛ+KDӬ6`ײ`lcDӖG>% 3'70ھI"溠o{lmŻJB6׳U23Oyǵ.u*gOqil+Ύ߯ۗJXϡ~ةztu^~eSq{tiC}-0q,1S}bwS=:.ߧ{>7oޔ᩾Tmf&@=֭[6.^|Acuq{KL;0H_a~ںHCۦTҴifx+([ϸXu˗~ވd~% &7뽐wr%| _oߖۿe*r}ϕm#"K\o}ً8?9?$k?:GEJ9_""_73UbKf˸v >0<BDDe7y*qNM霝u^:ED5g~W?2K?l\O oٸַdt 5\ޓᜟ8?'q~OϹ}{&ݧ8!vqI=69[4=3j~SgL\JU?oۧ}69w1|]u.E{7d+%37rgF~/2ޖ{ߵvޝw"7߿5K>~8yή3} ʼ+'֭W7 Y˛埈( [=f~n>sqaV#"fݤL Vf7ߒgl\gkF>lҟŵZa~c73cDϛ\D?q~O9 ?۸V_N]O'Lʼ;wm\R_~UٸNgM-w{q7+{]5QlT""st& z|10yDz]cbl\;1ͫzn""ut?(|jk]gu{Lx?XݻzDhK/#=>({?:jQ~F7cY.x:-^ Ok=g3?57f њmDb<j]KNZUJN?FDĠc>ib3r='Ɨexe=5X37t WK3hF`daDZOW7WVy,z@ʿԟg<{d{g*˵ď!\]U""Nt,̻O=[tۘrbΩ1Fg-7qs&mbr3|FgR/kCmםYi6ynG?O'sWx Re;vlk%Y%+'>-3WlT6ӫל|ڱOJp=7ͷ/cK>sX5άdf~1"b17cC=t\ &147|e>vϮoL0}\/Jt $"kMڻ&Ew|鲑]O*JKV&3mRwUh\jtC8mwK7^sWV=g2' ?>=qݻm^D߳vL>::іzϱ]4.wGΧ:D扽׻5۷߸=?wf/fUDKyU9YWoP7M|p y޼7ھm=~'~_q/ %sg^I)?A m\??&ï]{߽ˣ[6KT?v<+8?9?$k?G|?q=z16g*KSUb|?[ҝKp{e 5g7*s_3l;7ouZ˟u밫7̾Χk|g#"~?272|b鼧p~^ᜟ8?'q~O9߭mf wg9r['Ǻ-7$UwmWߦ2#&.w62""Ny{qjV&Ϋ>JUn,oFӍk n}>굡g;6 _Mb?:ZڸP-}uctC/s>#"v2e^V>O+2|-u7N?q;?6חN:oGD@߼ ?xxbj `\oDĥ]ƽ6w5v|"z2t}P䝿WC}P3S>=je}>]>g׈X2y";ujD]眜|u.Vnv횾qlk9KkS\*Xu~F_{ۇ]}Έ249ַO[~ə ѿi]zթh^Hg+,uĸ3iZ~ƛ7ukػ{wt>Z.uݙRg> _Oloq.u ?>e~'g>yW>.ËP#"N$qwtWgrߏ Ӯ'7rLopMӾ,u[4^-rݗMܚ;""/u\-}iMt+MDDTןRasB}=֎y]]Gz~`ό"bjÞw'w;oWgn]ʴϻ}ڿl3:z:-۸ w#WpURDDoK'-J=~j~#"NkJ#_t}֏+flSuzM:M""\sQv+ўwHOTCWQTa6iƮe?yɫ=i~_w25MrED4f\97ud~lpfnz\9O,3̌"|U:_}GMmityǻ]R3jSN#"V 5nlDfƯ&Pk.mkL[zNuznY?+Z6c$"b0m3=7"b8əi;:?Eԟ{+ts˞#/tW}[ŒPwl#f%OgD\鳴f8,MKZq>m=.n*nN?c=_sHM6dYuEͱye%{ۮrLvޥ闹]yHZhG(~lg׉r}Z םMG6֔ҌZ/( }=~phn[ׇj;W\peE՘Zw-UY6YLzzlR܅\=o wg]?6.WlӱRZfMD\oDD~.}ss3N]Fso_.]|)"7siعrIϒؿxt\o'xCSj}_qĪx|?U?qGdzkz/ޓ1_[oj#.>Զ S[j?[f3V|zr$wzz0}9{\v1=5{Mx^} p_N&y]5^_o{WL==ovnG5)s;Wf}u,n\^hwO?dmp^u~_Ce}n^&fBj/ҬG_zEORk&]1{S$\ƈMbtV$3ڿLv_>8?q~L_|e>pnWQ\tgY̙^;qgg [/Hs{BWR[K3~5=|ES:n_Lѥ=2T߬CFDwF׿+ï^nIw&79?$k8?5ϟA=?ю͜ܝqimC䵩#|B8c28qcW;f:voEDLX6r<;ٻ"qqϐz_KSSO}&X5A'1_uq3/gϏmpܟkS#wǵ9w6̟f/DeI󹟿vkۻz#uV0̌l7{֧E:;{`ޏC}7p۞[54gI\UDDkl2{!4c~laUS. e9+ZqUab>5P諻6͵5]ℏ{cJ,G; ,IT]k"10_""^~c2_o= ث2iMn3nggm?FRⷛΎdȌNS:#s&zRN r~wvl\ͪ˅6d|> EϤp,˾O^gٱ >cjt&m?%o?g;2+to􍈘+^U:mtxDt}Qꗿyƕg:^DK|)Ïfqu&? o;W"""sHd>KN.56>"N *KJ?jq#"~jb:1uׯ\Y?tvN>߹Ϧ+WDD4+נR }ݙ5浔};|?v?;2m`/ўu?^g_qwCn#>tB/ۥyO}j3gky%L}#7hD\Nߗ.3S~#"2SN_]Ǔx'Wf~OdЌοGdCsDD쎷w̸cUgq׈5mn12y("5s0f{DDﴝ3jR̦z͢ HjӕOՒ~.1 >j*SБ?;{DDYf r?4{5e6+7uZfiAOf""\jqp,ϲgO{e3fiL}/}\N3f"՗sequQ/; 6x>"4O)ۭi"|+C>gϴ,3ff=#"5ЪoƗڌNEGDd&D;00}d}%`Sk<W羓'k]#RK% mM{:o``6H _OAmLDb/C̫dT[ge.u+}hdui|7#1~r>q_D*ZN}z:Wk3ĵAqETo<1ޚD…?%DZO} ^v/'^u\7)%|2ct7F=:;z k|F^q_yebťw~<>3HlL?'3ez]X{ݵqf^~]Pυ=y܌K.~O47sY.t\ /)y_fgeüT^tW,FD䮟akɉ.J=]۵mꜫWڸnݺ%Aa:"&zյ{{{6.W:2ՠkivDnlw]ebkVWwFw?0]NNt=qk uq2\Ւhlq~ϟyϟ{K?GEzWg?z~ᑍ/nħױϗtw LH˷{g`("m%0}v}n֬ߗv874gVf/lk˜O\hpKg'vhj%|o#/x >U:̬A\_6[;8?sᜟyqmK?z~-9:qƤ1ucjs{M52l/7f $/q{_wZe[\ۧ3snqݾW;v2hL\nO˪ut]:j~ѵ[|oOYHtgL{FWWKS7IL:Žej;s3}k/}~5,Y^ѭED2ݦ~{y2|XKn=_*UX?uۛ=9ߜ8G<\:'-iܻ7_ߧ~ߗsTڞLc//Xo}K~{zѡ?Μ Zٙ˕/w,Y:hMyؠ .Pj8?'q~^y8?'}0gy(Cg <#PះHEY濴epu:<|9sޞ-m\y%l\y =xw,m!󉍫6UE+TώuxDst1q+ޚ,91ۯlTٛg+,ߒ''dC""~weh0yXͥH_?YLl\YɩFqi=vΧHduс ?{>CmX;􍈈Lב8ޑ]_pUDDoҾϾ{<8}6/~}WyI׭KDDL2}E&(zXL_ә:ru5~5gek<}Gt;έdxoKiuR}Ս)ú*{ }KoW^x52?o{?-R}k%4i;%ut՚65L]<:v\i#"Τm2wvex}9;NǶnL9:;c  ~]ב:M""NNNd /<'çS?qen]z;өnVoGNtc""B_'3mDSϪTt\N?{@=źc^;?f?"בVz{'ڸc^Fۦ6cv3k{a)n Sy5(u˶k}͈uYqӍ&?F_)K_{v(*}i$1mmZ3gњ:啈U륾,*3tKө '3W|z˼?ZY|̼+wzZ]t\5Y3S+ӗrk-ED\a.;]~WEquNȔc~o(×f"W+|d-"_6#mF {61lK|z {A*%Y&nlΥD*-oSݵmTm%΁k<@輚63& މ#ndf7 OGyb? ظ\$7cY un$2ɩߣҋ!Fqmwz"":S]=^HD*#b΃ʖGT\@gO2Sߺuݹ̍ӍvH^/9zJH{WVl/QNKn::kHǺOE˥[oQ?EK ޾ƵS ԅ>g=ڲbgiSsOnvdn}=֖kٸsz"".]{x ~zp믡_v~&u驺p~j&s Oܛ+nkH/:SSz3%"ի:W6ujMGח̺낛 Ww19kC˺{ރ[wĴ}_K={DD{wԏ珎t\| DU2{z}W=0';s^سçákc=^T1{zO?Ok0Pe w6ZS|D_*79Ʌ~"f\yyq~O(zek3?y(Cg|EU~/(dxrf㪺Lwyظo'[YOǕeaƵ0ҵYJ_;""g3ƓkjGD K.E1"k;Afw"N2dDu2=9yxXq3ՙ<Qw=B_cyL 2궼ӥo^ :.#bΩex٘<Ru_确udV_~t~#"V uH磇'ej27/Ë\#"J?³μt\]JW:ﹼR'Z20lj:MF|\}De>nm|T>G2|ux*w]Wo[m/ ?<9qL{ƕUٙ؄ RǵX2?S>GDDiɥ))Y~ OŕH%&W1:&Iܴ)wGDmot]OUá}]DD,O7L;߶qyUVx' |G~p,{{;6??q]e_w5=zL]'fkϸ~N~FaƏyf L-""sڌ 5 bif2dߓKL<3ڴ33rED,L?3y{<5s l=gflQ$q^un3%ӏoMۇG>3M+s|gi_:3啈34e+%tshkLX5LwRb.Bw(*.P= 7y8"3/5ΥIDDsWGEDv`+l'W?c1.q)K3>˾N鸚kk>1/U/vq{鱮#"9f.+K3ٱ`[wxR\1IͧYRՙL^k"#2c툈MLL}%6&/%$/钨Wmz=9ɤ<Ь~aOl4YzJGfbL4 Mҹ:U9A#ƽ1)50{MNdΞjwOYY.'"=K )O$Ů׫SYإoSmp]&Íߜ(l{AiE}Gf~-i#oEӷ^֒""fyg3o*Z{ZO7][ߦr᩸/Ε_=Grd>se.J=&yչw o|Up-]}ҥKlWSikRDjֽDy~+p`Dj:25vmx[-[[zn iTq*]'>*|dq~O<χs~^y>/ң/C?on/|Oٸ|N3e{MOU.:Odt"".zsԟuqbmx ;vk=a7cMbMun#;[C7z9]RV+}}ǫ]?%_6om}먳ybldxj-߭{2<2|~-3/ 8?qq~^8?]|T}iʬDDNfLL3=wm^qSg9ܾPJۗbd7\~d".7[4gd{A2SV= 27I:5]=qIG̙/R7_=._4{9.,άpDm6=xm=ڴə?3qpp/]*SLL]Z'ٛIzb6}{}JGՑ>~#YK5;.9]=qp׶_}E'Oי)C^Sq}JNm7`Mrs&߳pogf.q~^s~~8?q~,ֺgRtEc 2|v|*l\ۣ ߹2f6DϿh:{P7Oܽb~gG[:۽w u:FD vuGp="b~kkK]qmw&{<Νex@W1۸&: ?<:q,Q/3mkZO reUԺry5et5P푽Ʋ[[webf(e:SL'wNӬg"٨(tnw&TQN㹯WΓB#Z] |66,M[盔[櫉 ?:9qe6Qn>CgK:ReI/.V绔&]:]?^|WrѬt7k8ԕNA_g ]B׫UO_^g\M{/oWm\8~e+DcU228QזdakUOL_El2_I8uk6u27N4o?~k)vvM{ː.^ܹ,1HmNt?Ygc+tҘqx;.Mv^/ @/]bZ.t!7]?kheϧ}^ɪWm6Jn8QV:ׯs_mi"3{~Ng ;ڍ(J>Օ.C=c+}TX{S;#|SiюtG6_~I2멅).d}|EDfЍ!R3敾Ky+SĘkw+ƋU"qe^w_>N,3Ow5e=GDDg""*Sǟp}ᖙGj=܌:)m]Mgܻod<}K߰{ܴ.6ظl`Ⱦ ÔM=' W︹5`zR2?ۭ9Fp Lj:<5L6(.;WO.,LO243-њ~OS+edL O'Rؚuoj%*xۦS Rq{vGSmO_'~gkAlO}zuk;FDݻ-{qPfMknoMYmd+CIv}5/~AJj{f;Ksmg?sSEY=qߚbgo$I[\;P1ZDĪKhٙ^tuAD2 58ekWOD(1m͜Mkn;"-ߗkTw?~ŒWٱ7"b_{p/W'OO}=|P~aj­8á޻q|}S7gZwz,zjLId~q:=~Dݻ_.uO_g3}>޸qC^5Ruwmn-_+_ ?5u+~syb \SiïLi{c|TݚCL++^Lk+w9z']+Y9m1ySs6k63ye85ϟyo ϟ! qԬ}W{9cz~'UbϠ!wSg]u'㷹QܙݻI;1E% (>ʬ$vktK?2<ڜL39Dgl\/YOLl0y3Kg?9}~_RR~e*λ9?'q~O1m91ܼǼ`g)Tϟy?Jmu>utju>ut:eɩ.KgsW[N^$<ן-jƇ/E(toqYZnF'':WNyսN#<.GD,+G' >]0KEyϴ] -kSIFW75½GoUwggQ=o|w\o"K=KSߦK}3,U?='y~\mwtf&7'rs_Y{Jݦm~ӟgX;?cm굶MW;?ڸ +!_yenS ?=}׮kݖOh+`]/Kӿ3>n|\CsPW1|{)E9?oњal\]ӥ7c^WL?gaXY^O:/?t_㷦+1e6[3"2}ecOW&:'~kT"1 l%707jt\&ڎK6Ѧ}JJ̗ҕ?ߗ*W.8)ן>@?ј⾓'i %;ݳ:ܔHfD?N3uQ*V.*|hDDu\_}i"".MښĸLSיIM2XOݙ9%s[J3_eqvLx:RcWwMn]ņ'5mr_yELBRuh9gލ%R}D^]3DT|hg2vF0֭)هltkxr 2ۚХKw:.̸=·ۻz=2]vCG~xloyv&W.rc.J|o[5?T_>2FU7AY1uA+k3QkY|\n>[otGROY9+6-^=55>k<&=/DDuq"|{'k7]FD,fy:^|Ah}zqtt$?^Ӹv wJ_rˮyCE>&p.i%^3ɾgjkk˽G-׵ܽ dLٙ=~`XGzbkKLuuܺɉ^'{z==)ۛb<{_繸i^$#'u/ wwˍ;V+?qޝ I+Y 3~Wwcn>|_d܇~[KGo&u_My~6+)n3"|+Uw:e굉z3}Twd_sx$5vtq1ncY &GF\lUwiiҲL{;o80s&2̾2|ooHz6Bdfr&=WѫdxoϼFөNL?K֚爈"}y+"trlzxP}䕈X:i#"V'䯺t2q~\gfoDDmk1]Md.wHu0exk>[kOuP.ꆺ ]s~BUkWiꃮ$:WϊR/\""bk%JbVFO}D4{Y/M}oؽwl\et'~,6g͋/uZNM{\>D٪仢q4^tϰ ?hMZٳϙof:+ҫGC=~ t́yxU>kex?qsY>7l\S=Z/m&K.{7i͜d]hwV螥3sm$wc3g;0*""3EDؙz:"1w-wa>mzj%,.&&#[gҥu2{_}u|&qR"{Y}0s\涺Dc@y:/4"#]nSҗ0)f#5S:1.O^ԅQ.+yҬ[DDt zMOq ]LϿ$W;Ӧ$\dHFݫO}ٱs"vs0|9v%'wX0{t{v׮e}떮tR=q.xy8q[fL/+U>c:Q4f-q6{vG6Ѷ2k@oKWb̵Q>l~Y3$ޭD풻21Lm{ULWJf7p|scH,"3nTf=6u_p;L]_Mqe<{j>0sf.L;3gT\x}+}3ߞsm} }x~8?9?.W8?}_~}D51""dRE=UϜ}ბzѧڜsukʯ#Ssm}}?!mGgm}ʉz2q2%ݫbߋ dZ.ٗzeԥ:^O2{hfLytQ,ͻ_iy]ϵik s<"b8zţGG6.צz_}ןҟ?+Ï|:~ ?(×f,A=?і8?9?"w8?>/Ea֬6_:3">OyyϦ+7L1Z7ښSqr{79[~wϵi;ǨgܚK ,qUDjZ 687w\e&wn7slԬ_sX&ʐ9ng:&(lΛvmlsi#\ۑ'n\r}3qr3 \s#KS]35/ҾܠؽT[fukRoo"ڿy ľˆNB>Km~=}MWaƜ#/푌yv1uWwsTn^"/^_:W+Os~I8?9?$s~IfkPះ<xF3RyE?Idm# l\ى ?>鑍kPG:)3u\mmo~^k̦65q6$1SX߸v̗2|n+`[rdl;;]EDlLze.qa%sìV:sӷ@?{HbJ++cD2?kDDИݴ.2퍻aW~ߘ,)\Y)LecRVf њ{h;SgIrzpƵX>Hip0q/9S?qDy#"Xt[d_6[8Y2ԅX,MJ́W}phMsrmED,8eGeDDjʵ6.mbkhF;w۸^".}\߈iS:':S;:3~hL;cʗ4^>Odjn;gԉ辳2mjJs H̳gi7}dz1پI#a8[MһyD\۱k"vnĽD]cݙO{&uLn)E/27smvDDQ#o̜Ups~leWzBCeid \kmkvSz3tfL8T;];5Gp׫iS\;8JtYl=IjݶC捥M{޼ߧt^ɤ_/O^caƵg߾ ߿yU~ƑYteJ?szO:ʬw6Ž9"4ocJՓkTd<7Oa'U>§Ss6auKSxT\Yҋ땕&[pR-6xn 7¯|-[L|͜7"47b ]8lwlk? *v1ޠ*6w$p6xg]{!+37͛2_q/ W#"~i}dS"պs#.?FD\3JS`7ttt$ï\lZLw᩼nX35嬛y,?45=9}ϸǵET8kiu{u{C}5sLSX?Ϲݤ8.UK/z}~1zwZV#*Uzq?'ЭGͿ+Ғ2wػPOp| Og>x!Em U?d4={5ռ$In0 ;y~x~㟟MgnlyY}cyq$|+|_p3ty=y cTt2O\99l =~e:+Mˊ u!u0CNCpq|' ?: $GD>wpeQ]ҹ˼/xE^V;w䈈0/'}|v]o :}{_~~?4?4_+0;7 -i'6߶+ϧ/<+7;WizĨ6. Y~q-iE޶-m\v5aT͟O'`\ixuP|>Ǹ&i;>ᴿs4 or̟}<͟="87_Ÿ>W4|4:e&'VqqvT;Yײ1u"v}^""VyG5VE27{08OkSkM<C6E^ xx<|㶮uοjGy/y=θh}M!lVWGG5fg̯\Oy\]{ȿ3I×א#ⵯ 7 n|uNyx; )߯y^ /+lqj)#7-}Dži\E4 O.3,]~?]AzmSl W^'-CGyz^g~6) pI>3?q?MxTGD5u3o2qomvDDV+v{ Fq!JǪ miUyl}mzWUmQꫯ`\M>oy hy5""ZRh,gh~+pl5gż6Y5ͷJ{|tufO~2 npjӪ5=?W{ZsH8QC9kf3oJPQ:ViO'*). #z_Wg^ޫt8[g~<!zg7*.GoU7˼Ot%Ɉyֽu;ڻǏ{X[XQ[kՀ^H0zWy*oF~|*./:Ϝ zDD`m/G$I-|7y~瓿|ym<~4y\c8.?װֻZQGD<~ד+XXp?t0oϥ-dɳ3nPC[qʯs<͟}b86~NDO#(ۛ _q~-ua&P]q84 >( 4qMUƯ|i.`wu#X <81k jlsx_ }K_Lߍ|7y~yϿ=?NA߶vﱘ|,*~w;6,{S_3WWyޟ?V}QC{#LPO\w|?ի4]WuÇg-UtC}=Guߎ(~;ꜻymyhx =~#Vi2!-ۮü/S+k8G9[to(ƻC4>׶{1"o>_.\/DD\:wOx][l^WG7Q?k )m1y9ǮXkMb7y~>o|7y~p~sC$I$I$I$I$I$I$I$I$I$I$I$I$I$I?$I$I$I$I$I$I$I$I$I$I$I$I$I$Iy$I$I$I$I$I$I$I$I$I$I$I$I$I$IC%I$I$I$I$I$I$I$I$I$I$I$I$I$Ig*I$I$I$I$I$I$I$I$I$I$I$I$I$I$=#ɨ/>~wZ6ijWj}o4|bT7]nix3j0t_e~'p_qN""F<4y4;Nv3I?OM~>J~A~yIDt?Q>_1EC>Oǐwrm|~>gAy5G kv_n_;"b3./Z s6:W<M^VF}~qt:_y+"b6&O]ZwZFge/\LaM`gw^޶{{.u^\w{(Ov}Dly}]^Shg#"$ gFDl}(8IA,]?5׷W;53"b61|WJ>rq4=ygdEǿӾkl!=Nx }Ҧh;.nYF-ς߁h (:7IDj(x<1}`pGeo82z꾨¬qyPVeZcW* $KZ7?o4/y_~h[l/Gއo<<"b1tekڎ(uŋ"ynHߙ4>9'hCNa\=˰2E㋞^X/{㭇y\UJs>cuDpdKcQhO1cq_YktU{N}L~pzuT֑gû SpmQls l# ORxeymxLRУTk- IG#zj3XP٪#t˺/Ey19ts ҵwg׀R%as, D4S1z]<8Yhl JVK}QYO0>R&GsGq]EaXz.]1#ҵ^}gn¨iZ9>qa'OPY毇*s`bx\Z|?}q_<0aZR{^u)kzuwr77 U˶?>@`W«~n2 S:qgbޓ;۳EDDt_v^^5){!o@""~uio1 Q -).QI}QN8t< V}8/hWByAU:Rԏ>^#KUEZBJ*k(i -z/U:w OCp~IҒVϸx}{Z/VgAplgDSڗ}QQ9(ݶzh;P/%Iy|o<|oznoMÿc\?w+s^kyskםpF?"׾7 1/ 𿕆>_ۉx {poED4P.s W =<P/Ik=7U]7GW2ONg""=JiK,5x FD 7ooDlU`.ԟجk3N&cʿs c/~ϧ᯿|i4im o{~~+pϧសy~>SC߶7Obf wp(-1D_F"I6POgg@> Ns4OL3=ӞxrWvh}UB>͗Q\ko /Xws)E>湈 .O=6o"93Vid:y5Hep{GFo k?3_`8@{:^l;=ڎ ר^E98 0O7nZʬ.tɇ>=aeiߡ ,NUqQߗBcs8+,`ek^y}p.y~&{~|~~J$I$I$I$I$I$I$I$I$I$I$I$I$I$IC%I$I$I$I$I$I$I$I$I$I$I$I$I$Ig*I$I$I$I$I$I$I$I$I$I$I$I$I$I$=#PI$I$I$I$I$I$I$I$I$I$I$I$I$I$J$I$I$I$I$I$I$I$I$I$I$I$I$I$Ix؟1F. EMC^6vi2 -L{^nw?[fgӃI~xڴ}~Οz¸M~_.O.vDuq|֏k~U_ʗ1g4{ףN4߶z7;i{kY^t\wL̈́Mh}ţ\w6bkD(nq-]x&_5",Q^c.F; dC5Wy GD.͒~ yo2}q|?$:8 p[Y㶨}QxuQDDy<ٶE9fx5]2xG Vh ١h;w/}ko:sǔW:zҞcJ8[DD pmKnv;^(c=Uwg<.~7^#!ڶwG-snADD W˼ycO4_Q~ۋڣZ}}utnphhݤ*XiΤhv\8i6ȫnvyOaUDxu1t&Ư-_ϯ]Y>))&iIomg>V<ަ\{GG+ް}iLק>ڻYJU(._^c_1_tm[y_}EqQxN()^]νlQk>VP\"O^Kw%m=rҋ=1*LTiO\{EiU:lث 2O.I$ o9g3Yv}y8 _m2*ֳM&j>4|^Y/8b''75ߗu7@UTUUg01ws0l(ﻅ]"ooi<".96Fw<:x/.B&O WnUW7߶{䋮^e8SCu6˜ѣi?ϥgjHIg@_:u.y8PC#OO=s[7:x*\ӪQ7_=HO=H װiznu0[пd;t~<"yt~ o/foqᇇ4|>E~<]~᫏1~牋eWZY5Jfly%"b<ͯE~#"V;_U~vi=nw4ih -(O6ہ$ tETR< {?u]̵m[̈́5ԑRՑ.O ݈ku o8/z iM^9{EE28:P[maszM4y`~jFyZW!OWiG>rK"Ιz->j"~T5CF]~zu/oTIFtYb6?""./w* GJ>c_EFiOO9*X( zj2ԎT_*7.*ҋ3;[Pz-+n P[K}Zö(oFEۛ||~y|1Тxƀw2.BߛꜪvy.LXPx*6o;S7 PXZElؿo(1;U v~qPUEy6Fp]HAYO± _ku?XFE&w?k}k>&EmD=>FYhR$?яc\6y:9=I{ؓ1:zn㷇o~^л/RYڔ^xa53p>s6?⢺O qBπU|ϫM^ۛjW4XȒT%Ig7y~yϿ!.o:?Kid'ګoy4|Te%S{װnu/׃{_]gpڋ4qθ@Ӷ^vSF-#|#H9/ <|tNa}4QkwܗZ^:7\kadk>Uߑw|_u=ܟQP3T.,Wgw]qZϾ:'|,V3NN;;~oc\74hW_H{~/Ø&:f cY^y/޿ @DLKy a gxEps[B?fJLjbS\aZ&3#ʫ^Gdu.@Zz]Da~YPw]q֝Ǔ~A~zǟk^sz=?4YK){6?6Auz)?"">|}毻wAjG Uu }L]gso}{&!6m+~y`iUq GQH/9>9|_.ӫZ_bz'N?j8m4|Ο#"bqxvŸ.6yyhr0ŸT4il.y"5y\('̈́w6_s zx6x2*,׫"NmRm)kL6fyގuѦxF([;#"FM^VvM~mq_$<]6[Ne^4 d ehӱRDD'Է}?}U6y:r }1n?{_um ßq utM>n{Z?6zeߡv}5U\ի=߈h?X_^1ch#(+]qc8wb(}qz;ks:^^c v#"=z_\רcmQ>z||qx7vT.okw0@/eǣz_&c}y ӻCBr>7BzQ_5TN}r!BumMEEyci\pD>Vѧ/aA3י@9:-4 Z5D_@_ #CEsec5c_]'E#@4PQ]B\TGV.wWő x8/Mƪn%#ZTEQ谞(0TWGcplws>-hޠ-0O;Nc࿝Ou8x>)̫S8CoM8Ms.NU]U\TGBz];W5vh}8~8xY\= yˍg1~>b/YW5ψXo57s3Eѿv_c=<_?{r :TY!6k٣Ρb,Hyr`ߧrV]|O>j|>VTwSh pFռ"ۢGa}jmhP}@ض':z1̸ҺcѨо1A|}Ÿa_{iezuq]1"~jh 9T'1|+iȏw\SGMG>z0_{BV9U䨞XQ}@_z<#kTyC{莎0.:&zxU }~yUZ+4>QsT{܇EEUZX)rTbDQ^=bP+W;ŞjJ.$I|7y~om߽4+nq^OVQma~1e|{yoy=y]'B~>9ŸvK'; PTXDǏgut\RqcG'y:^-߿1fƔ}.|5;h~'>K>h?Pmix/4Xs\Kɝ<[#=?ޗMOmbδߔˇ88>SzƕTOL{t'~7x,_pXߤ3Iu.>"Nu>g_(kWrCWsSgҋ/H31=?cbmUq`ǎa}@@xUcu;x]_}&k2mm FЇ}0 @{"":{rqe""0|ykVt֣bX뙪S`m6,G S?M3Ce:Ol;Ug,j1y:aONxݗYau2w}k{ڌx˪sמ'Fuz<P͋v8"U845pu?PwWEOyoX(ȫu(ŘGhySiL0;uMmMj>ބO`]ۅ!-~5TUFTQww>4jzN{*tsL/y=P_nx?rp^xolhVRv4~è/I}Ҫ;>fզИ_dV/_ίb-l2|_߂|cD|i'> GoF|FD|y{WWur ؟KBU!jp챎|44O\Což4܃נv<Z/:<<4ҥy}ꢡy?wTyoӿ=adZ^bf-y2}E]D9zm4Q8*CUا^$Im;y~o|+gVx+_~Z4@Nzuk#:sxx7}G~Uq|toe|9W7ub9Hޞ?x3O{~m; qϸ,G0ћ<#^Z˜oOў ioOs>{YϮaX4/Vq5]׿k*<Gg?}>~#"Z,l`z_c|,xp.y>|WUs~+ԦAG a*kDﱇD){Cߵ/ҋUctꨪCy|QWpxTءiIg#wO`\pS~7y~sg"]WP#"2AyxD56/*.'MgmY1]596g6;"bsum㺺˨?J?a\ѣGii㢶v `+,=/ .=չ;>IDj׹5P:"ں(}#"vP1r0''ibe݄2/=b< Uv c<%Es+OCI}Ҧe];"SS?=FPlj(n |2۠=KQR?xDc20>VCIy7*0vhP덋gQ^gjV' ߕQ u{,6׊l ǦG`)M&bmZ~t}k\/nP`?uMvu ͝cT1j-RTYvﱋ$l>qc~OjSvU_ O܇2V*C/RDE}<佣=#cE 7{J#xMg:+/rCX!{˭a/rʫ=27 vP]p}}q%5 krP'8n/);jk;\#|7~W=ie3UBi׽{1.z~JǪɾ+oK$Iϒs'GGp&~o!5iפ뉋oJ~_o}r֝po@~o4[?Qkݿ|Eя<N m^#l}^Zg~xUq=e{yW_M8?p_ԧ0}igciq0 q^5W^׊""Fݬ֦;97螿;3 ^>zߗ=?#=??,.{~ϧសyq~], 5wûi~-"րvEWFN=L:OCN{oq:Vpƥ珫;n׫4k]A}O?"lKuhBywU+H.̋y;o.W5A\\xYkO5ׅsϥHsj;ލ~Ǘ}{i!F;* 5*Қ~gHe:KߡS7q gOQqwc5}g~?M{$I$I$I$I$I$I$I$I$I$I$I$I$I$I7y$I$I$I$I$I$I$I$I$I$I$I$I$I$IC%I$I$I$I$I$I$I$I$I$I$I$I$I$Ig*I$I$I$I$I$I$I$I$I$I$I$I$I$I$=#PI$I$I$I$I$I$I$I$I$I$I$I$I$I$.vqݟ.;-~ҧk6ihh7 5ݚoli -<̺wvm(dc~.O4|<899Iç=n+kHÛ>2^DFyZ9ͯ_^ns5yX5s:zw<0ûg9=d-hq}5M'vyQ6\DD;W3kQ>Ͼ;ȟqZc\T/#OY8 kGt=Em4yZn ȏ4O'HLjkh}"yCDv x y;?VD}tq6?cDyuv yնo+6#P?2"b˯3ʥY@+""Fp4|]˖˼l`\=xJLj@:zS PGNFDt7Bw'CC4Eu<6;JUm.|qMaL@~\Oԇov+P#z祐yڬIc|,qrW3-.* <](]~z4습3>iT=3fM>=LV{͈AߨqMk2+4gT . MGDK>S[A>jY@s!"bG}O(}GNY@⪚ L*CUDTgi!.N<|.b7 L_ix_1UUuOU@8:gR^R{TTU}Oh" vw"}wG|š> FYhLOwPe ' @U?X}_W3檵yI>F.;n[^>chO{u|ExߟOƵZ}1}E>7su}wWqQEרгzRMIS}P#"4V>9} {Z.>K*Uz!E͡^CC~83OSWa@Ucg'.zǴy\쏝l|Y15u;U\T݅^A^Gdz]c'4<=aU2{""OOK$Iϒs'q}{ol4?Ki|)/'5?JqKYqvglz8oݹ4_ۚ~[;~oOPD+/yz}C׏T~μ߶KyAo{~>o|6߶"W5=Ug𛇣<cLju>ry YkC܈haj9c>Q(v-ٌYhO]DkYE};j#}GӼTU>J| ~G0 h#p~+"bs[kmt9MugDְ7{:Ezmnom:o`M1:dTg9Z8дyv#"~eyJz+۾ks^g:sX$"^=01"myh}xD<})ƛ4~uEOm]ӱ;y'渨:/^*?{[5tV9"br՞917~*"w[&|{|o7$I$I$I$I$I$I$I$I$I$I$I$I$I$I˟9Nfc3w;*j(vwEzT oGD^kyڗD3ۡ)h2TOFcDDiF #jG}-j8OxMw;x4zG>4q?KM_{4|v1;3D}hGE_z8.oM_2=H[5J/*WWiws#x/- owqA;B^Ø#"4| }k ;z->q%\wN/~\3#nky|''WPq T}ym*""_<TDD\__+x'kn7?᯽ W?0W7||B@!`nd2.TBFD4]'&0֞O>iDĘ0e{SW4 ɸ(T;-a 1;YMﱅ10##x^.챎ί_mOLu!LjԹ[߫:y-+k4Dh>:GmnCzU `[GLn^s~qա:%_ P:FpC)l}::5&./{q#~<̠}،gVun }U^x+"p=p_SЗ6\t)2Ήk4zn5L&y6Ez IC,Eo.ls2hGD`>ĸړ|mpM܍oԎE7?DnWL*Utַlh_Ӿ n< W}uiZ)(S9a7Iu!WSwLyh"^g`/}& EclЩ0Aȫwayi{TLY~_s{{yk}?L~?~t~ވ5tFW1uE_yl~#"7װg&":311#@[?<qxﵝB5" >E}\p5A}://Hc72){RPLso{BF|ƕoߑ;9:"'؆ +#jS~?lݨ*\B j-Wj-I$=Ky~&{~}L usgv~z6ED:w^̟y~|-+_s?4ڡwiW{E4>;{ǏN~, ?9CDċ/?^=+6^Bv/X,m^Ig0N{z= ?/qͦy?sd{4߶c-{~!`w~=| Gz{g~@^OU}ێahG<͈MjZ88s^owSWzZj[oc.NL#FLu!}1o`MEU? ޾739ԗ{Nj;|ճ3[q}t^Xk:'ƹ8׶>ϟqyAq^MZ+ovG<2::rW;j{ts6o.`ͨI,_y4{1vg^|o>G]ͷWy}v#A_K9Xۮf@u"L/#l|"60W}- $]^拟4߄s74?> a1 EDܻ]ߓՋGyǰj>״8Gۼ/4f|9׈'N^F*ҥ@6!lC߈L="{E4;G$2>1!2AGu!='r罳4y8"n~y5< OT8qd4[鵂kDD ڇ'ԞW?eW}͌ Co΃?vo-S2Г;'tGgy9VKUH/i*''GDtWyƵޞu /b\o=|# oeeCE}hS~5)+LgLMy]soDeQQ$x|A}L#(bޓC<Ŵ/|Ƣ3q"xe 崇5 9E2o;+bNDži}yϛ74cT*.DDv)s345yawr(#"ϮfOy1@mq?M5O=u|Ǯ}5=a/=<#"֛<Q %vŚv1Q1Os %1li\7At[mrQ#j56U'䯮WEq5tI_IBk'tU^ED<"DTub=]Ջ.K\8MEcAnիU5NӖvw;.KZ+ :\>8iB>:,avyzжnzrL ~k|1iq~y I1N9 R5*\eƋQ~vϙD2 /} h}ZN6jv?cU} m|O)<{ﯞ} Ui%Ϲ>>c>Ek:s_a y>>9COߏU"bk*״^IŸ,  .`RDh%Dz|_];"bq8:gz sj=m7^=~}0uy?q9.Oݔ$I%H=?w|7y~mz+7}i~~{~w/_^kЋ.y[`cIenN׹>|+ ok<]Bp]_+h Kc kϼzMO_M4c>47LëȽ(_s{4J|0"Q@^|V]b5o'/pZ>Nj/A^ O'}5S+gM}~ߥ+m/߉qy/J^NW[+/ix9y<>ϥ?wm47y׈|y3Ͼw~泼lO[W>OKr#a$"bs\kM}ɄځgN \;SPnA_9"bImװ^j9f=_1/B~2=Us|Bua1=y>Q-˜+~w[?(Ʌ`tؙwmm qNz_#x/t-Uzt ჊ODF=SxMP886c(M*>cJ{z_);(]}Fϸ^1.2p"Mv>P1<+c`vJy6qﷃtTN.h=]#2^=\w_OPW, \C=8 I3p;&GG%<>/u19s(ш^= E? #66t F:zI* Xԫ߻'yq2oDDy|}Ƃ?o5>1+3""FRdpm*וҾ+¸6כ43R~NwctS߳sj5o}v m]Wװzbۨ1נ?1|D40٣]rO먈Wϟ BL՘\*TeTjvy)]QcD {[.fvcf5hn EDAGDl!Q:[#*oඞUmuK-z:mަrٮ;z-Ge2oxS m^N~lן6oB6k(3B[ IFTNt\9g^bw>6cOFDAsԦu}܎j-mؐk5]Ҝ Wk|OXk _<h}>qMmsZhX1ƵKiOŽ}պBQV],`Eko#"ݿOI?ӓ47'(ƂC>cA^24\C. vD1װ~⧹>`>2Oy1>yiC}ٕE:-?|zpjkн+XO>҅*.5Q=E͠mp{~889Mï^o>uDDzŅ}qW__~$ gz᯽v|z?Ӗb [ߙg/ns(i>7qz( =uI~.9`n$""Oü<]=hv}rmrtkp׸Qމ͆Pom ܻ-`H4x""̟}y{_ĸ7³קsi:l}j>,]3 =G\yb'4Fg>cg9C4u} 7sutƂX=ԝ;1D_)a.~gF}=|y=??$.a^^$I$I$I$I$I$I$I$I$I$I$I$I$I$I?*I$I$I$I$I$I$I$I$I$I$I$I$I$I$=#PI$I$I$I$I$I$I$I$I$I$I$I$I$I$J$I$I$I$I$I$I$I$I$I$I$I$I$I$IψZ,6mv ڡc:Q\g?7 ϧW0Y~nzU)0}5B>K 4n9wTW՜S\#ӋEY-R\֤O:(5GM ORM~4G׈uY9P߭1bD'v]ޏ^&jUQ7З):4Cs3<}gR_B_]bի9]ty񴘛y 9s}sV:|AFо4| u}Dq>LU$c\d}eGFD4Yc[;9K=߽~t<^ yuk2Q!WJƕU!^-*Y{W _/ZG/,.2EKiI{Ei^ T|JçB ҸϨo835t*!;Qt'ŗˆ˕~7ОGD_JHe^NƵOUpX=}gP*ȡIÜͬ؟Ajwbo pWEm=rv8zJ}ƨOK>}a9-?*[ZS챯1X ToP}=W9'i4 y99:OϨ}e>v]'{ؗT]g rAz}qzLUړ}Wu!?;Z'}'"̠5"iA>|vi`JDq\rSFD#q3/IQE7"< x} mvD\^t}Z-?tV=\G$Ig+1G?Jh~uGD<vpfW#&M,gOK4ޖ<~[ō`_UtWt tb qJu.4_+B+ڡ{/g#"esE^/~, 󞟿q_|}wߗ>SF-QOyXwZ\x}~}ܩGe~ zW|ٻq~>+i:>gw@DD4i@~SaT0C{>gOO|" ?Qmaʽ{9ܹgFèYkx7ΈU婭h[nM㈈1#슳 s6POJx-|yc_=ĸOM/[ۊ'?{ood$I$I$I$I$I$I$I$I$I$I$I$I$I$IC%I$I$I$I$I$I$I$I$I$I$I$I$I$Ig*I$I$I$I$I$I$I$I$I$I$I$I$I$I$=#PI$I$I$I$I$I$I$I$I$I$I$I$I$I$J$I$I$I$I$I$I$I$I$I$I$I$I$I$Iψt#C_KP~ כb4UթžzQvP~xo/藵.W""<߷PgE?'io/jDT>XS= |FmԫUocTNK=/+Ctc7gh'4|<ë:r umP0i5?ȟe4A^i`+\~4U/?ˮ? Ib2 CFD4p_.O"G;*[ڢAEqQ` AcgtE44,kmt;)kl g鵋:v(4 grjе#"&`DZsEO*g>cwDM5!-R(tTKȴxeZnk41!C׊53Z~w5_sE:=]1*|_X_-3:AW'qA9b6w6:9}6G)O<7Ycͯ?c̣EqzϓjvUphJ#ZO9aj>vƈ͑ns usثF}ˆ_b,ŵ>ԡkE8}}khzʡ/|/ǡ},s ~_|2DíAdo޽cӓi(, kIaΠkGpyGDcTq]_ԛu.{-" (zCQ{:oslbO٧M~%ILf6/wqב4x-ww4@6Eh2b.{Ͻs+q'O/rrngDD-$=];h?lw5>K1gt֬h~/+:i1o11ߊx\8BYӹ:fy6UkS? c[[z]ՇV ~Cx#"&pnp_^:{zT 6^")1U9s6,{M>Oн_־I\=>C:V˼?ŚlFwಽq-/ukXuߢo0;=sO z~&{~#"v}w#Q4-ҮǸ6koSDDv|_I)|O)xı#}MZ~ZKAa<ΟeWǡ7Mr^5g.)ۖPNH Fuv]m'FPYgz׎(/x꽯4|ZtT{J  }.xxy{ݦǡy%x55in84Gq}X`\u|aq0 Cb4~ ڛ./M^""F3~((t_1x番# z/d|/P=.'V`:2-c8Hwy_&"w?L/FDΥ>@_mrZ,àmGqs7v`\5WWi8X[q a1۳4|EPGDhq_L×˳4ޏq4Ƶ~_۪ .Pݿy)¤h=vFO5NGy14qy;<8N/vx\4~qD`OٌOбs_̳D|t߿]e,f<'.C4/iԗkP_C4Hh*}p*Ɉhb?=?X~z^mǰ}刈mֱ<ϻa/Uߓ; _ml5)`#lgi`FYb<^D{j]n#uG)k.;P՗WR,X⋠y=iJkظ~$_lxI>v^.yJ9]s:Oȶ4_XD5| GdCyooڷQ a*ئPZ 'î1S7uMfHJᨒ|bg羗:pn<3hF}u,35so79FaEkGa~71}ǯMÏ&yQyDUAF06%"(r<2P+ {z44fsvUHEﱊk3˟cxϾ},Ofiާ V9y^c}j =G^_k3kg/9}q}e;I$雛s:ߦރ}c>;w3To|5?QlF60"b{~݈5ik@|~-4OϽWZg˯1aX|h \]g|<QDޟq7nF6o4i2uKi/}0 |ʫ_4%~'yZ.%I~oOÿixx#"Π;=׮q-y\k=~6O{~t6 U==!?Uy=ǏئM^2DPoFDhr;cN~7߶ϫ/"c.yyz} lDD hG9'w. ?> )Mg:W;~z| j~wrc51t(Vݞy/ֿ12R֛ZC<ìΓ #S˸}Y h~=;ti>sɆyG=3~V忔u|' ]XwBdi?}[ᣢEqRu6l22P$6vvM=6Wl&C^^q]]^vko8'ixժ߿eNm1頭e1=α3DjmN|g=)':W?}җSh/@BȃGZ kWY ϭae!@? k Y0 %""z3=|" ky XO14a!~ikF^Ø*ꉪ<:9;WSCU}bAߩ4b+P\=WkR<ťڰGWnfʧwP hQeB\=3;ߑ/SI{)nGg̟`qUڨ4W^>c4]#ﵭ!3Oe UkIIg.0U])毧keX|? *Ӛ?|ϴv|zѠVKE嗯sxR:ReJxDGi!gTM K$I-Ox~~o|x~>imMk^Mç{ixsu/`;pj7I~U>}y{yzv5iOkOeփ6?O/€󺰟?"bv|ǵ:qm/y}pUݫoa\IO uxz? ?88Ÿ^)|kC 3.jm<*?Q(ǰOs׿*ߣ<͘GPNGCH}0 '?q|[_H''ܞVy(~6y~>$}y~>/_ݗs#bzqYp⇳:O}bed}A>]ibx'Qp9O._W4\Q=QڂLϘMv*O\^c9~ e6#"./PWa\[_.,Tt0gyyovMV|'`ZߜX:`֐VE ϧG?q9,+#߈9W|6]'>=m }guPWC@9~|_owz4nuu/2L,"b ڮR(;wG(p?+{~Aӫq$I$I$I$I$I$I$I$I$I$I$I$I$I$I$3硒$I$I$I$I$I$I$I$I$I$I$I$I$I$I3?$I$I$I$I$I$I$I$I$I$I$I$I$I$Iy$I$I$I$I$I$I$I$I$I$I$I$I$I$IC%I$I$I$I$I$I$I$I$I$I$I$I$I$Ig*I$I$I$I$I$I$I$I$I$I$I$I$I$I$=#_k E|vw5YmפG5ipYm>;H`\j>wL\3s6辶-Ƶym,\V]~ziLUQxSq;I!8""6*cNG)^ l68.RbmU^kb9fڽvw{ϭ{NUp&nQ0$4 8c9`%""G C˱M]"U[usO5}mg Ͻש;xG\iFpmv_; L~GTv37PٹU58R:6q ~6ʯA=\ٷk;vePѫwwêS媹 .x{!.wEc ςx_[lP>vUN31UW|:p{nk yxTїWWixyz}D2ק&"Qf6P^i8>>kw\. ׵2""b0e^?R1 m(SGӧifG|[M]NNڜ秐[bIB?Au Y4$V@Ȗ+ЈySxǵ>E}alKqu k,i﵂:]Dl&c:-ːmUWj6t29)TFFpGurĸ6v8-up? k^6Wc׎HyP#":迍0Uo /)&G|DD|("bC7/+1͟`oz-ZCu\;)W5!kmdcZ+wY(MTk.el7Crw{86h},u4/tǏc\8_9`3]#8oS]3dBy rog]7-}$In_\p_~qϻ?gxlK{&'l|iM4/""ͥ??uN>g\_k}gg]{"bw~/y3N_K?uZ'F-?콁s^ϑEDϹ1֗1kx_<{_HЖou6?g~+gzm5u .9o߹?'۷y_i|m]^__Léqx*WIMi1?}-}oP]țy8y?Y쟿iCo}ѼESycpUiʵ*XjبCַ]?d7OoP$jgxwDdˆsX̭Wu3$ϏGG]#xlU[ǒhl%Qa>@kG~?ߏse~??'[%I$I$I$I$I$I$I$I$I$I$I$I$I$I$}PI$I$I$I$I$I$I$I$I$I$I$I$I$I$%J$I$I$I$I$I$I$I$I$I$I$I$I$I$I/LtQŦ(#W+>eeUX,0.z/{ο)QRMixUQZ13([""v6FU?4;C7k錢n_l/Ep^q`Ϳ.Soø~Ϲ|׌򿏈h"-7;G]6pή[H/w;~ӶxƓ4*"bmnjKDDl}Ax_p([=ۘmQ#hU-/0[i8!(_/4*oe\@CP>5"" IDWwFCGlW; *ת2ܽyH*VE\^os4§;suޯܿqiƵZmy~dk|Xv\7\eNj˼|~,_M~53 c {t%ܯu+quE+OelK->o:GƲ1ABcz0c蠾xzPTD.MwoR<50W{qOBϲ+:k)Ue]⺆.ˣ*ֳ< JwUZ{x1Ƀ}(;(.v|挸:WxBѧiKc-cJ_vy}Wl]8kq uMDB}x-"8'0P|G n{D:ոr p>}:_XU+s E]8Tcom6SGԁ*WFpΐyr|=k0j8B/"bk e$a~P,4;?1{gi%yОZmy{[yAs`է&tNds95XxT?Q<ԁE\-.-[Ŝ [XsX}1AƂ#"6P׷Eh= 4|c<8wnل ͓3h.~bOu)O]:{r55jYXGTwP[5}1j+}j5VIݗ^xm.4C_U]կ~}U{>}4 $㼏?Mu0:dR~}Q,)}}.I$r|/r?9Ͽߤ'E~5>8 sut4|zv;'q>5=' Gw}ݷ߽Y^y=_8kPRt繈[o{)?;iw?Έ&_> *Y^|Gx[y_4'0Wۯwg/p|!?s?sӇi~+i")o>ݎˢ;'gy\[NPFEDa~ӪAm٫}Tedi _E=0U)V N< {r=Ggۮ?wy}oBwyS;kxd~ c}ަ}&#hLߎ|cb|o8>;PwP=@{ۡs`,zǏ=ǷN+ja)|4??OToNr}dRSMo^DfxI/f`_q oDsV秐.Gyu'OsoN9GD|~>_yDbɛ_EϹEwMq{\ͺJ$I$I$I$I$I$I$I$I$I$I$I$I$I$IC%I$I$I$I$I$I$I$I$I$I$I$I$I$I*I$I$I$I$I$I$I$I$I$I$I$I$I$I$$PI$I$I$I$I$I$I$I$I$I$I$I$I$I$%J$I$I$I$I$I$I$I$I$I$I$I$I$I$I/ɸ7tS*?x*KrكնɫX'e<eA\- &"m~l@ۀ;N>˯?9H?G18U:Hw6[z/[(6v_WWt=3jtMf8iCGD]5}MGpl/Gu]UAz*.(=#6z }"M˧zəhT~]mCZex6w/n;oK ʃh-]8vUSuH/JwןA'gy?re[v4S9mhI36^Q`?r A.o@%"fWivq8:A`6uf<ã4ʢvqiu~%G(F*\A-*T5ym:wYK"dJhF U8N}_Xc46T=CUZBYnlOtC=qC9}Lg쌈8>>NUOTc}o|JFDvmb$?_:@gQA;4fRui|.]9wfHʖWCΩ&E}3H{ {1#xa~>} cE^f}3w8zyG0}\ѷ{7z)l˼y$hN__40 }FNq<>./6V5@&[ꐔ7I-FuٽvW&< lc zGa 4sH;o-CG4x\-ZQz_mbQ;r._^+AcõI4oR_.[}kSe9^OCSqA z2;F߫z_gs|d{E^}_>8i5"9Ivu}* (=FD\^^WWyS=~8 b3ve}:I$)_y>Mz ;:3]sq-.;w{¸!.D07>c~ko_z4󉈘N߿q]/h/fAT~-`xk,7 F:Öbnik[([oa\| }UH_715SI#".!-MR`_FDDC kkH{-~*>#g|KoƵu3oOoa\˿wˢ:a\gyyW~q}A, w?!is|s|,*C?Sixo|' @n}E9Cc9b_~q@>oxuuY#NyxZ{_0Bf1p?\Fk Xg0.V lyV<տOOJ񟈈$/Giݻ1Q^o>ck}M5)kڋV+ofߴ|\mLH/G0BgYv ns3'>L'Ƣ>ߚ1)PIeaV}Ovs`}^T}jbќ?m-Sy׈XRb?p&C֪=y_;<'O`\N[y}~923}{HswV$ϻ?wg}E_I$I$I$I$I$I$I$I$I$I$I$I$I$I$?y$I$I$I$I$I$I$I$I$I$I$I$I$I$IC%I$I$I$I$I$I$I$I$I$I$I$I$I$I*I$I$I$I$I$I$I$I$I$I$I$I$I$I$$PI$I$I$I$I$I$I$I$I$I$I$I$I$I$%J$I$I$I$I$I$I$I$I$I$I$I$I$I$I/ɸ7Mĸm^ |#"::Lnt]~l<{vF=<>ѵ#=VzH~}e^nq͚4m򢠃kGDtsl6Ͼ4uz̀@`*7g*,F|_}u,4|<:lm0Mv5c2ݻi;14}u0ϣQ,+ѤW\U=s&-\;(}M&6oLm2NkU4qmP4z2k""V˼iZWk:ˉ͆kG ;866ۼ:`\-F)V9To!)<"䪶 ,]?E~rQFy@y9(GWmuB4:W4I(oW@;v65-Q?1||8P$>F]y+vyDux""+>R)tdׁUQ[*&h,S:ot.k!oEDӵvFUoX @B .8-rb~m-c.?q)G8ºEp_~rlQSUǙP];` G)1 nd ?dEU~0Ex\,UZr]W#Wzq]0W98˸h"'\ia+"bfPc[XET7`]]y|*?QV}9}AjPK#7iG"3yպyeWqOJ^̃ɪ"z({\ss^/lcRZDDܙVyZYcIŒTE@F:'n!?n!=!km>s oGF _'ZQ{c9>B458}Ec #Z'XY)ϞMc|}MU>B,:: -a^DµW _{3_q߼EU$I>rv糸?q?o|o=>-o|iۯ{,/4 #q~qNq~w1{SXm+^/x?a>`ɆͩNw%G#hy SX䨰,>S0Ƶ5_JW(O{ѯi8"Γ|""~z!k'=s;Hc鿐oi Z|2>{r>ɪ~ϹIw v<>}/r|?bM4?? 'u} 9/>?:>ad('`=n)CKKc_b?_kc4PYF|<)wN#"ӼC5Եoz~Թ5 \+ڋ87\,z5x=~= &q-[? 0.t,{ol|.K`c !_ĵnS0*k:9uttf4|2`\M~>d|TFHß6-l[m9a}Àz^P).jgsq],hi#|̦rC;m|9K+,}׽ /v۱W#5϶5_/::ixc&CC#wif16^U>_U;&y]{p kEc ine:0-Rː:kj1o2rc #Oʯki6 OCb5>!w>J}׮suC)ߤjbIs~Z @^E6Ͳ϶MzH~{WeH:$Ih?"ϧ?+?_*;+iENJ ggukӣ4|}oD9][ǰ'iE9Mt9 0|Ӛjy򲻚`MݳihOw[œfՖw+2u+FD|OLDĭ;yv0ŊkKym(OwGN;~|z6w:ܤv}}ϧϹEw p|,nrMw>Në-F*m"8oMy}+o+8vYO󺾃6(C:*WR?_ۧw| YV)2(sF<:=KiN/B,#"qH_mߛc e4WVig V,!Ep;vΝJ""뼼GGIE>ecCkȿ7m?Pwy8sp~3)L{m1rp7vj >{wI'sl!&PUe>P;*8nՊݛM~tSnժh/B0k&PoDD<}$ zzԩP {~}R+y~0`֎>/ w >y翘?rWC%I$I$I$I$I$I$I$I$I$I$I$I$I$I$]硒$I$I$I$I$I$I$I$I$I$I$I$I$I$IK?$I$I$I$I$I$I$I$I$I$I$I$I$I$I^y$I$I$I$I$I$I$I$I$I$I$I$I$I$IC%I$I$I$I$I$I$I$I$I$I$I$I$I$Id믻.HOc&mtnϡoG36%ů/;}[{:FK;Kwρ4 Q]~t:ǘpN;g1,Wix׼4\o߲h2`\C¾5fWB^-|Zl DU}ų4ɣi}ɫlqѱqΎK44 ~~'gO/©LFw9oWy/gs>r0"b" 1Wݔe*WU*2QG(8ClR\3v]~l8z>"b ISX<Ϸ02o9Sެg-u~fUM~!!cdeTTק*y>@ϲsTN#bqE5Vל|b9G~8?¸6Y[=oX_յX~~LPDD40Hz_u7wȿUDD eI^3Rb6|D1 4 \*)GpY7(^gJC}1}A9cwwJv0>@/ϡn*zw(׳Y>J=_MDw{݋5u!d#OI/jxB)hUqaNe}ݏk Wi ~߷ʧ)?M)-uVg4Q.=]Ƶ*p i;!kMHsq^ͯRNjVk`|@6.[J/\w9'KÿobI>o[yzps=IǠ=b<_z'Ay4:p"":36XZk,#߿qѴӽST]a๸;wn3>zӷ^ለcy]w.XWK u FP|V[h3UVgBM6^[|cu %Ӄmp8}DDK›OǚQKエb좸/F4i:jsZf{kDD(||Jϲn~۶u_1'.I#"ZH/[8鞷-!}w< Mk<񸝦U ybye\4ɺuW+ 5---SYZ!}7DD,TQDvPMykGF}Q 2\mN%mmQGAyP4Ji(=}QI5߾jf'W3"U%!*gy3UQ]/n\IsRF*PtƸ£b5K?sZ.6@;:uzqm{a۷Ծ^iƅu nlWWWEm&_M1^6Pox $"b}Y,oQ!/Ο]amUԖ"z]]~%48Ɉ۞#l@5=hN2dLCgќMD5FO{kozxKMQ]_4w>Spȹ<9_xTop0pw6ԏUYHu)#LJS$€: <qѼf@կ\ҧ:mTy;v}}Z3;xC"[0Mנ5 UdTwEoN)v#UC*}yNnC &}Ufm)+{1Qr|q5|*3x [/gjK8&quQUBψkŠxozI~ۣy>6qtwYV+nڑf8Vw>][Cu>0E>o\V,"֭| I3BibkC zoHeQhݫ[Sф>uկ[R:bCކ$,o MV_$IAy8Ew w_w|&oǏ9|c, oW~[u c實g' !qroPs3s)"S`P1y+V\\T{o|xw~gܤryϿxm w|糸?r?zoڐgyvl1ߛ2gM? X6c-v5wBUvSYHco}\{viRb?e5$hxD1:&I~T`~jZx2 ~opoZ^GZ{Mv&Zml 7mV΂=UJ黁1*(Ma, 눈ϙ h0wRM?/|xPCH_~[ewoԋE^Fz;wC2e>U[G&S;'5׿7߾}ZȪWm)C~Oܰj_y>_$I$I$I$I$I$I$I$I$I$I$I$I$I$I*I$I$I$I$I$I$I$I$I$I$I$I$I$I$$PI$I$I$I$I$I$I$I$I$I$I$I$I$I$%J$I$I$I$I$I$I$I$I$I$I$I$I$I$I//Zqy{5@|״Q']^َ*YI,!JG[hWڞw7z|h4xBjo0;86 Wio:>q m1nmMފquo1TzU5^Jv5?ڜ& <tE`h1z<'Q9Su<7J8|Yۢ~-]{G󨰌Qn0 R͛[V{:Z{Q[fg(n .6Ω\ƟzρƜ{*oӿML֪Us-t_|=KDģ)8ϐ17{N}`i!}:gH]51}z!\'I$_p|r|?YbI?H'~K󿏈x뭷O Gi297"47"+pr~lUywMi_ EcX</]=i?c! s+/Wswr}^ڏgwLjժj{vϳS [ #BzsUǰ޽pb[⾨ݬ047cyS5NkNc[%5,}eeޢgk|_<=y$ /ˏc߄oGhl'C]1y~r-IۼZ֬ nowȟ?Ƹ?񧟤Ÿ:iil}i?6&&sq>puj!I$I$I$I$I$I$I$I$I$I$I$I$I$I$sJ$I$I$I$I$I$I$I$I$I$I$I$I$I$I/ʟeZa\TqO<|2ǨƐ[H_m~ͳ?[WtCvyx mjq5m4z7"beqC˜%2&|_О_owXw@M[*ֱ} eŸK)mGDܽ{7 u4 ocĸJUQS..\L~)?D+4j!p**oTio/p},cʩ ѻ"S³U?KGGU˧QqQc D|v6)Ƶt6qy]Ɛ''U~Uvӱ 'TqQߊu;>vSY@j u`DxWpo9q1s)u|M顿Y\ "4د}DĨu W3ΟedʯMчAߙ#69Sv͛T)T~Qk[7]iE>ьgdԾRo6PN{s5`Vu=ǫ*EdnDztOSz懈WR8wB_ _B]GuGUNP1b oCe94ATه`&0_z44%'S灁+76A\U;v_c1E2;sW1ګ*z-xǻb@*QYHgXNui8o!syԖFoR/}!m<:[9ٺ=׳m=/BW6חkHZB)9Smȷϼ(I$e?OG>r|y&ݚnMܾqm~?~8 y&O_|_Kÿ0_Jç'gi/yZ\Z9zi {9&y~Y?ģ'b\O=JK^cO34?_~rED>;gj/ Uwi/ſַ0.i>q.'SX;^Y&y ( G)kE96D|'LuݣwoGTw\\'x~b/>t"Ο>}5!uu<> =;81EG{~δ="#:O?V|wpù]ϴ4$ {f;R[1Ԫk('Kk`덷Nÿoi})틁5=śYs-`M5-# sx16Řj ퟣ[g5 n~8/s,{w0~ɓ4~3"˵|moМB41р}N@[5",/Z]r{VѣGk=""yg'ӿgk+i jOy̙ O0.mg6EL?S-x6yo?y:O^~?s߻r^ I$I$I$I$I$I$I$I$I$I$I$I$I$I$PI$I$I$I$I$I$I$I$I$I$I$I$I$I$%J$I$I$I$I$I$I$I$I$I$I$I$I$I$I/oD4/;)f'eu4BZ4/4Ni!@݊r 8u}fῧs^xBK~ %BijPMs˹jUtpZqNN* ~- OT#]6n5Cmuz4?279Aw?aWj_Ws Ӽ,uo/ :,,ph)GJé}_vcYL]C?J5~K(/y ǥ>b<e }תHVA( <{SQ"}\OkG[U?)";B Jw-Pj5EGa (X%UzŔn.;.|4orx !Ƴ=}ϡ^/z+ ߔyxU|՘/eF46S=W|Gp#͉e=_vq`נwk1.zXAV&͞K"ÿ/)_jcEx4uPE. $~!6՜;CsC6R;j_<F4 w1ÓiuoVi:}j-!E=t_bΝ2~ѾP=y3ȫ.=M2Қb &2DM,L98Vڳ>FlʕA=,{k`߾1bKC;ևU}FÆIWI~U'.j{I$I??ߓS?y?r4}n_-4<֗i׷.y<|-"\A /c\gw54 +hEN""p,:)N&.,-a?̓./rpr߆&Ӹz kyݻw' fΝO>׃OᏟ\b-c0mj"3uM\ϋVt季oqtGDL;~+o5i^|w9}ix7~;Y-5(GDMt4x~Cʛ:Cw|r?snr e7oJë5qOk:ø>0|N[MAy_)0O?4 ޯ;d搩}ݜߓ?I'o>*o}lcwtz!hZ?*{uELOt#"ba/.8M˧co OniѣGidQW x|,)":÷oX9̡rbD7rch2t3wQtP@?y^F>q7>MA99sVOz6"bP&17Pb>Kh«QX@_'/k~s_#kgmı1c[DWЖ{Ύk5iS^Gy(ϏO?w>`/+"" ? y?Y!bb~H$I$I$I$I$I$I$I$I$I$I$I$I$I$I?硒$I$I$I$I$I$I$I$I$I$I$I$I$I$IK?$I$I$I$I$I$I$I$I$I$I$I$I$I$I^y$I$I$I$I$I$I$I$I$I$I$I$I$I$IC%I$I$I$I$I$I$I$I$I$I$I$I$I$I*I$I$I$I$I$I$I$I$I$I$I$I$I$I$$>4ML#s4mۦ6 _V3& |_Q~_$ j^kTHxMH/n[(?.3n4|#"ZY~` vuX". 6*q"bz u]Vw~!yeΏګ JÛQeqUF㑗?~HZu6Ey q\>u[*? ?R+":Vʵqqv" ͎0 4:Oi&ˏy>+?M~chw&.:jEcbɋʜͺИ@y0d+ uv"MPO8e~GDtpN{Y,cW* 7,YS1y.ڋBEcl86UOy[B?l{K j#y>WCDlp{h|w4|7w{P@H}k#"nN1O> _}5 4TTBlwC֢vm >⢱j ИIM$ǜ露ncƩo>m!#;8u|Ƀn x#"^ sr l7>TwOjT%S7yyr65= \\!+|Ek|y-FzeȐJ[T}zJ8?!>>Qo&2gok1M>9,w cCq[rqO~eHۓm?C>ׯ*M }}1U$I??s|k>yɵ퟿I1ÚMa,,,zv Z? bޛb>hsm0OǶ.|TDhoOuv;\G mo\XhĞ3>}8 O"^^k%w̟1n>2o]ߌqL\><"9w]CezDĎ6O1. a4Z.zeFqwq<ݽiCN+'.g9kO:;+< y!ZfOs?ϻk> w|I\uW/$p<2ɣ| YNx<j}Q~ s㢽b\6uGXg3bϦS͋q?gL~BoFMÿ;)wn~6 ނ1|#~ +.oϩ _\A~ki#WßIë; /f?^ W`m Wi8[q:/VƉXk7aכ_<.x'M~8O?կofw4ICxjUÃq^?Vx Y:sYx?r?/>w|?(_MM'I$I$I$I$I$I$I$I$I$I$I$I$I$I$}*I$I$I$I$I$I$I$I$I$I$I$I$I$I$$PI$I$I$I$I$I$I$I$I$I$I$I$I$I$%J$I$I$I$I$I$I$I$I$I$I$I$I$I$I/}~R~x kqm!4xKVpY/#(6@UZf|7*n-}#}f }"M1*vebgrMpH}*QSx2k$"bڤUϡ=ʩ ԁI~2A J= h͈f{~[v&fm|kST{:[,.6&2O Vu:giGƔb>=qQ`Wo}du_}ϩʜX_|vD1V t:}|fq}i%Equug \w?Pƣc7b^ջ_z:k#8M3ni"xH1nWaCkO1mޮ=ШX(y0TEucdTN1w_ω~Z.9 O}8*&NN[ҿøpy񟮃:|Mz+x]$8C9E]}xQWUoR~gN9fm""Kkq>F]s4x :4TC#8m!h޹*'0a ?d=\Eu0哈4| mU1DZ,kл~eUb7h\<~ s|窲ګC`"cU0?>ׄFpZ~d!u\~)5e6ј&ʵk?y/zC#":TWm2Huo?j3Dp^9՞wCglΟ:Οe kC"xӼNL-E߿x!(-[[nׯ_]Bs ՞-u7_~?ߏq|d:b$I$I$I$I$I$I$I$I$I$I$I$I$I$I~C%I$I$I$I$I$I$I$I$I$I$I$I$I$I*I$I$I$I$I$I$I$I$I$I$I$I$I$I$$PI$I$I$I$I$I$I$I$I$I$I$I$I$I$%J$I$I$I$I$I$I$I$I$I$I$I$I$I$I/ɸ ]׽n{_xۥM9mۦQJLקkG$Ϙ_#uwX&tl5}eWip#k=ڶS;\r]_c먝_3;8ƒ}Iۤ;Rkྚ"ou;C<yBۯʏԎ1*|U~  &VPwU--Uy?t 5uQy]?=QVR!.?g m)*nlbn~ e_Sܧ-Ŕui BH+TFUQ=qwܬZq]s1*jˍ܎!)Rk8ij7!j@t_C`92Ͼ333*on!io:ƉIKc#OϨhÏDcU=r:Y*^#Q}>~>˟qq^O>z? #4VIɱ=nxYUs\PFaLxZA9| E}T,&^U~jhޗnmVu(V?TQ=0kϏ2Ǥ,4X9?1.Shal/ʏPCtGs[_뼯0k""&}-'4]P`vv><C)ʧ8o=*ҠEmϢʉq{0?f}]nе>7^VS\Uxtq&54XOsl5څj S?J`}dYHC\}"w4u4| ᆱ+hN:'4֥<} /ِ95Cu1d>鋊ʐd׀l9no^Õqc=퟾sIכ!PؐTY<$ i5) 3H$s_yϿpm9,5?aMz'Gx-sBo~ONZ{hvDD?]]^֚?"w^Ϳ/qWLym^ }{;iAV_[}/ uvqf4|{6#"򕯦oV%c7<w >ψ(TϻocT"iUstyrm mnO>V{)c8u :>>NlV{ )nP#qwA;cM:Ͽ?y>ϸI+>/w|xk#$ {C4N`z$XÐtOm޷mPy,վã4O>I/a<4"(k6^W@?уi8dDI8gA׿w/+|~^~, w4K_~7 ?:7~'?$˺8qV|$?gt{}4qݻ?A^VxzU쟿i[OkZԯrM}|A8:⹴3-M%Yx LK8~/$L?tj+cTAY~ۧbƩd{Cn#3ѱο|qCw~mF5[M*.* ~EY{{DD4tyзmnwk!QQ5eQ)n7&z?N|_&Oǣ. QT^|G-*'(qߋ?#>nx6c\y~ArEFPyo9S}DD'uf\/ <$a^յGit:K=VeԐ c:I~}.j <"z./eo8&|.M6[EIp5H"j{ED, ? 15 ]ogwcD3A۠Zקcϐ>x3R&U[˼coOݖg,9z*M'mP}wΐƙ*}ѻ&kT=n`|/g)P);oY&O_g:d, % sju<{!hvz_ ~E_ٷ Pxu_T8mVhy\y77*?˿nK[y?ڱQ|GWT) o-ab:ˏ]W/*M'Nu"VYxۢMTз2gړst~a w'.?c[&K3y!}אg2˫F~I$ݗs| 1Ͽxmg?O?yJޝ-EzXw,_@}]bT2dk?q44uiVZ8_5{Sg13\#X\~j~{}׿5q#"Vyɟ4w|]igQ}7,}==Ϟnc0|i|} 0_zxt_@DħfYY7 "r﷣:Ӣ}ixpo9#[w~гO#"NN{U -< Wm6smkOo ?c?߿h1~YcG5[?ʟ{~e9rrG7m nz\ڲ R(#}/}%ie>z<}Q=x;:CAuE4c4 cwO_uykRw덈]B=@׈Buǐp_\? GN_Ov*d*Ԁ vv~6yZ k-nLé-`(C{`/{<Я?QU?KUoՋˋ4k-#hc]PZ~(V*ACj -Gqn5oBir2}Z3j];VtuyN1$ &yq]$P.GDLPoCu< I2C갾̀zx].o/z'U\Z2>/*. jdgTq5$8[yxozz_v~j퉲?B \U5r5j,<=5*J &=˜ڪG50s\PDM&tB{&bvϩ.V<ۧWӳ{i,j‡O>}LXZ|Đ#%u;s<:Ǹ6WiuA)^ d mźKؗrq>q?0ov;z֜O)ooYk"":?הߴ2,ϻ^#}>ir<ߴWm54v 9m~'1ae)ʵ Kk2/REm&\w[zINe^}ZSn{}aj3jODƉ興 W8 VP]-w1o?0?Wyrt/{~QE[&?g~Z~ǝo‹y"vnˉˏʻ~;?761}|ά6}િIM}I/;g5dΩ)iPNmGy7y m7N_C?%"bzg6}G>ܫ?"I$I$I$I$I$I$I$I$I$I$I$I$I$I$?$I$I$I$I$I$I$I$I$I$I$I$I$I$I^y$I$I$I$I$I$I$I$I$I$I$I$I$I$IC%I$I$I$I$I$I$I$I$I$I$I$I$I$I*I$I$I$I$I$I$I$I$I$I$I$I$I$I$$^ɏߖu}up0˯˯O nl6 oF|_MC|xk~0t-9DDttOi1.z,q7Ǹ6McvWq(5 H+;.#(Qxqhnʉ56-U΂~[CﱪF T=˕}:N0*|"w4PDDmsJ<{gQ][5c(8tg{{`jƃk4ACEZAZLo_6?z)*PaqqSʜ7LyBrL761q޶۫v>W{~hQzz`@ &\(Z-ve$*ҋGqa}uvN f 4"bD^WKQ=PEL}վFDgX]wP%EWE_U{~E]CY8q**@WQ -hgT}.:BuG5N <| 5UUFpNy_Pn }ע7 жCQ?>h'_'w?*ۋ_eTt_,8Nx_ 6/Q rlNUR1yL^2JCƫ]V{<|~/[ h{4<2FkӡAW)۞!\Dc _z~>u' ??c\oK7՘ix۷,O*0;}u|̹oy!u-ǕmB1"b xGZYu^UEZ@[1]vn^ $(= z^:w-1h XskH/d5V +,Wqlunq\GeT~DjPx{Do߹w/ 9"4|ew-q`>8ifM'4|5" w\:Q*s!4]5bL:ck;~quẅ;1`lzC>>y_}!sy/,.pg}EߤjE"q6EE@b΁Wo<})8m|- uN~N s4&"b%LRR>xZ_\h Ɍ+د|4ϿS7?A~]k2]# u6ur@F_CSEYhwˏo|?{Ƶ=2}ӈi';yyZn uv6!C'm}̎\I'}y}r?OG?ޗ_~U> :9ߎfCؿ?sVOVGD\\} FD@=@FoR-W P;j!pۀu_e ~T P~=&|?mw\QoBןL8M9m~nfiގbD3ë/5?9/Wym0""F/w硶]# ߪtIUQQ]!qF{\.!e$}&\[T(Q[W_:4U^FWm'!,9PFDLyiZA]YWu0NX,bYpdէ6s;Qu z齼럞/+qר'e}!}gz/kcҧc}- +6)˜_ŸvlGJ*=9}qnא7} y9&/5hv'o.Ec<Va,*}{jފ`-diShDCk|;}jy0=%!Bz#fyZ\/ Χ0^OQ3/VYew dwϯO|1S纂MƖ[XxuzρgqmF0v4N\ą#<0MhDV̡rsn~vޖyGki 5`#"vЫrΐhedkckW;;Dt͌$Ik>y/Ͽ9s_7P?6b d,lã|?"b̯u͝buK_NG;"rz|zň,oi|EUULqQxUCS*h-њ63iwLϲugy;x s@!"P*I#ϩ~*6_&\[^y_{\O\mx8ʵZ-I=9<]G BҾqS;}Ew|r?r>i͉Wb:Ǹ~I>.{#xgeu>q s=i= _[FD, WoxMxoF[+>=EA(0c<}_pd h"}AJkn\/󱃃Ã4r:hcݻ9<|0 oaSKܴ?Ө,ܬ]W-YDŽX%MyP>  -?y㼼:YeY}wCfTSVUW{`wC$(M J$K! ~ O~a6,Z$-˴ t",jd$ʱ22w>CT`Ff뜽ּ:Vަ` 5|SҾkjki؀IDAT峸ؓ|J=V["cL\L/*[=sn}FD̗"W}:~$ ?yr/z_[es|ݎqro*}b«$I$I$I$I$I$I$I$I$I$I$I$I$I$I J$I$I$I$I$I$I$I$I$I$I$I$I$I$IW?$I$I$I$I$I$I$I$I$I$I$I$I$I$I*I$I$I$I$I$I$I$I$I$I$I$I$I$I$]ls^R"_iӎ:eSτ#G#""<*'G*C},4|0ȟ="bh:Cҧ7=*>ʵPN5_eϱ::_E^ y]1䟍p+ڮP #bk.WUdGAUPꩦjCZ(tr2p-!Ӡ#"Zj Y/*Ct^U\c5bC S^A?jpWϠ<f8y\%UTxHk<iDy38m*=~43(ssߺΗ=907QG6w)E%eI]NOz<^Tu#:|#ϡ2Fbmk+`q50z4+_)k3V5WSGxw'ﻮ!o2>_7u/OS\Oǯϫ渖rZ߯!'O #7|" j}wޱ^jK@땷oNq޵ͯ=yC:7 T?4y0ެFs4~Kg'm-jltV5cy!:EGZ"o2GqQT.i|Zq9/y)k x羊'Imt_byʸ&@m-=zz?4..u_i?*`=koo/ |wg0T4mF=U5b>J9>bUE&ucdqm=g_3pwX'NJ&&I7]Gm.$ZitzUu]ʮ$IϹ>K?]>9TO/ `YD47ޟ^xmzv,<`\b-x/~W`x/8 gy4"b0ZN .p? nW ^_]ryk !8d}mmҳ4֭[YNp?l;m_N?8Nyʇ=_/o}׾FW~?.aKr #"ɯO wnDDzia\Noބn4a뻲Eo6ϟנ+0j"x֪xGFr^w|?<ϻ??w)JDhnwPueyނ.S{0 $"b {;w""&<CV1 _º9~/b\?4ӣ4|'1g|-B_*&|z|q Fk?s|?-.oq|77]Gy/foQ$I$I$I$I$I$I$I$I$I$I$I$I$I$IC%I$I$I$I$I$I$I$I$I$I$I$I$I$I+⟇J$I$I$I$I$I$I$I$I$I$I$I$I$I$IW?$I$I$I$I$I$I$I$I$I$I$I$I$I$I*I$I$I$I$I$I$I$I$I$I$I$I$I$I$]Q/7Mm곮_ X.ij*.4F1|Dq鼪Z]꼆):OkY6|k>:KQRޯ _4vEo']|#:ا ȏi7XGyUu:-moݺ){D()ݳE~q1KÛ/:>>ŸyU+`[ü^ ~ 6<}x@Ňe>RUtU߀ ( #8h]9y>^@>q<ybM++E Q|!UjjD@]ϨNipǑy./;1B5" >h\iy\Q1of[#<"@ggy}WC?#=dC}e}F?q[ix3q{k=p }m> 21DzuUy>c`ߠHP؊lIkzk63Q?vsU^=88Hé?>wkɏ9;[<^5ca[m ICh(v]0FI9F߯j"J1njO\1E1Ey_ϩtm}$*[ ke{s|M)Pb{d|,Vm3Vp¯'GGn2s}RFO 8qU9>}^;mpqDD}4|{g jfPc7糼81k!9^N>yڮ%$?(:ŴEkv4ǵ}9'sϸ/#1ئj `D ?Xl&kR~||p,E9~ƛX6ui*狸FD,!Sh e\[y1Cn".Zckg\OVnX'OsEn{|VE~4`1"b隆-+X99:J/7A癡h_{z辦5yKe;]m]O沺ޯMcIc4zS6xK՚lW|o>՛>&起am&u]w9 H׵I$&>$mCS>퟿Ix4>K֭'/`ofIƐ_?/S;i{`\ya\'gixmGǃT|@t; t{Ru2lGpgOǏ7|3 ߟ7;GB7^ø~{޿oݺq޸Nx罼ι{?G\x/417*r/6xpqiV{ 鼨vSϧ? wnǸߜڔ?{;GO1OD8ha6oż'>>&4c<.jVٮz}Jb5sU7T5K@A9߻ĸ~_Koz_ro}# ߂›6(~:ߴ0ϓ;0Iߏ͏$ya+_= _CrL~ ~""b55Yh|4"v__i=iw7]7H/E1n9OlokvP'%b =9ËbkN?O`L]m~8>?(ֿNwӟZW u~{y%/n'/556Fu;S^~fic?sݸ1׆dz I$I$I$I$I$I$I$I$I$I$I$I$I$I$Iy$I$I$I$I$I$I$I$I$I$I$I$I$I$ItEPI$I$I$I$I$I$I$I$I$I$I$I$I$I$硒$I$I$I$I$I$I$I$I$I$I$I$I$I$IC%I$I$I$I$I$I$I$I$I$I$I$I$I$I+⟇J$I$I$I$I$I$I$I$I$I$I$I$I$I$IWdm kO4|Za\YvN?rt^}:fSqלzE%#ܖ8O>^y{}n.7<2B:mK6]K1J,O, :Gj>gt-AEFzUݐ;r煵0~♴ ɯہ54ܯ Od8{=̯OlP/ FDGt,?2_\}Fp}-T_^[ܽWUp \ 9vbgfE_CBˋ"<4| ^@=1|FuC#(+pjg2g0Zq{>co0{õWdmu7oV4gR)M~9}sLws W_@~Lix9>s ժ>;;FWш;S\E߹ vKGj:SSv9#aNpe~Ukh{%2ZeDu' d궹sH4:M-՜Nn.6Y{RB:.hB4VRspu/4/(5YXXwi[<Ţ4ؽqT8[H,P~7yfU/ݯQ9nuQy>8Ŝ tVVud/\C.{Be>$Zыxqu_Sk@:mMDD5/nϖPO|I>ϴko<Muhqa⽕uxg]ianI7nGhlV3G6׾4z{npjS߯TMmnm>lrM\3;f鼨$I>?pϧ?ϻ?$퟿I븞15)cx E{ ~4|M׿m)ֻip/#˺qt40(QzZ4`{;_fR;gi;w;y^9=y~￟s|Ek 돷x=v3 PgXӞ/(qu} /+Mk ̷׿@u4Ŗn7֬6{UPUc~GFpYu+w__j 4~7łݤ?hd-W ưb}6 ꮩLWcj5˯q>yQQ F-b_2j7/.5:?#"./֓^MBrvk<Cs _F0\~P쑻w7_ˏeg@2{yo|c .Gp}wnb\?G׿CFEp?fo; zZ?߉7|_ݕ$I$I$I$I$I$I$I$I$I$I$I$I$I$I>PI$I$I$I$I$I$I$I$I$I$I$I$I$I$硒$I$I$I$I$I$I$I$I$I$I$I$I$I$IC%I$I$I$I$I$I$I$I$I$I$I$I$I$I+⟇J$I$I$I$I$I$I$I$I$I$I$I$I$I$IWdmjz.|0 Ϛty Qzv۶YvO"|\z_z]{uKny>cL鼪4C""-8n$""ӊ /MHWK?}!:LD|קȺq0v^5vͫ39::t^}M*r,**""FM~^$ qX {5Eަ4 _`?c.y} Jj(ne*]Sh RyvA\a{5 4 L:cz^T~!!mǼ75vmQ[x}xہ yJለ*nZQ(mk_#ለ|/firq>2W=$lqr|qf1t .[ԟX?a_ -c}'>&(E>,D,EBaϠ&24?<4&* kqئ:q1}k:_̯ӧi8=C&0 1>/qƛ%wgO!<EDg;;{i믿q}Lj;g|>DF5Er}c]YعwS2C8Maƛǥct<-Ϋkc'I}<*^kSrzu cm) P~@&ykW˼|^ڰ ^e &uVrfrmj^O`\oN٢X5<1}ED|K_ʓ剬vcd:W";`p8DRlyuXO1@"xn=^QݺH#U} ikLնyy\\DfǔI~L"''ja>D> aV9qj7/,yqѾ1TSg|^_UQ&co|iq4WCx9"ϿomvKw/|> ﭷ ~GLbLU$툈-׮Vvܤsp|7 ?V/_e?oyݠju쟿i4B{9>_{q'GoO2qqmɟL>|ͯ^~zs4F<Ǹ(PޮG#X45埍FҵGp}ϾZ寗t^|prEϗ*+`wE*""yR^s=EPrޯpoY~AZc VE^loa\kHbvWŁ 5?\b#S!p\C:ۭ:b!}ڡy}Xuy|^/Bէoѱ 3Np+'е+իcݧ!(Ic@m<>g)p_<#"oiFPZhu;wp\,1%8"B<ӭ,*10V`:y8բPb~zRIو~p^h_]8/ULhK[EZ'wMh 5c[.BW]zq"TVWu1Ͻ\h'"P6ѣ1 IbTj~/qpB$_߼^:#zZOFs 릘/'ݖ~xZ:LW7}]cmq_}l2qm0w~?躎4*}QO>٣Br7}*Mz5f| $I^TO>Ki!?yH<Q+_š9.F{CXT=]9̣GDi%*{DO`5~ِ: p#N/;hbA~,=x/Ýv~~3y\NlnQA?~y44?vx+߃p4cDD߇-=__W0?Hwq>.ڴa~wpx#Lc };0+ g_p^Y~(x/Rbb2̏9;z许W ϧ1?6ϟ_ӈi>c̿ThE\/ď .UQwKUuN n_3hͽG?grGnmpD..#ևz]! Yn߾?~|?yDDkyTpϙ1}0#Ÿhڄ~d0ITwưvضw./߷zҲ绹=7馯ݸ>9S u\}r1g?$I$I$I$I$I$I$I$I$I$I$I$I$I$IO_s\.FFby24L~fob\̀}Xr׸n^ c&QQp"2c6nVqu=c]1p=z=ק}ܘ`.im&"vp`#_u]~6U_̞rjbqǮ&%& h[m~>_J$Y_yjl3 ̋])5;>|GFD[ߗix59mhz#"?z.Vy_Kÿj^?|""FN昨=/GpmW3~]rmr=kkSױεw#M~q]Gk&\|oӧ:y(>{Q7|$Is?3wD?q|p^7iUu ,n ]<`TƊY{#1gi '?H\^ᝌٜk?wmFzگ2=CT{Y5.y}?h9].<ud}mE^w5Nr{]@Dă᯾z/c\7^-?4;Ӡ#"8;{w=>{A4y]LE'v_^w' /Gߛse_y^ o s&{-4vK.C7ig+'?ߍsyυ> wfx̧azQϟm[#kՌ> GuMbo}}z]!Z݄mnq2qRykâ;?CuC?+ cǛV푻7 v'S| -ީ|7vS ~n n$W>+鳣7HWK^_==Ǯ{:8ĸvvsgnO489# w=ǧ3s}4#s}m׃A^&[TCօp{y0LanZa$I$I$I$I$I$I$I$I$I$I$I$I$I$I>FPI$I$I$I$I$I$I$I$I$I$I$I$I$I$硒$I$I$I$I$I$I$I$I$I$I$I$I$I$IC%I$I$I$I$I$I$I$I$I$I$I$I$I$I+⟇J$I$I$I$I$I$I$I$I$I$I$I$I$I$IWdmCvC#Rts#"6rNi:Z5< J;"b8gv_$&LJη ׊#Ͱ83ղՊq?Z7\Nd(f]9/65LagPn*T~q\tL WuWu$sIW>ݗAd7|^Z@X.g2m~K(:QyV)wo7Gp-f gUvvUG1ݾQI1xzz_^r~h[~!@;\r\ ݯgMeSZx}'*/;nӪ׿h~ֹ6pk b) 1qؿu_>}>^uq7\& _=NZz}~H0@}W_vw1" )u#xnUyxO#*0o(t]DnSL43,U׾I>%A:+?XEqPyzY.mCg}])Q64EYûTuPEYּi:z4y޳8/2׸_Y>/rΙ^qQY~Ѻ/1Q1sTW@y|2?f8.#͔t@}׾ Fz79ou#Mzq}sO7mN>5\?( \^|oO~ޖ$Iҋg?;p<%O>??h b=ޭHE<{&g?q=|?g3kLg11/5:Ѣ{\l}$/C/2Zp9^v`?/*sb*֝7"_twI2x9Egv>Iy_}% {/0*痿4?Ocw/W/ϟGOiu?~GDC|~'q? i?_K_ٟM['aGĽÃ4|:ý}CwoUv<绝yo7e7_q]GZ^!3MynduުǞdryO}ۑk>屡{cJk}~V}Ϯ:/(Wuӡ~usXӘxX;oп><<ĸ>nlM7yWxΙրǵ"OQ,y\PNy,v֭4޽< rmX#fk4w1.j(?V5w:hl-CKN^$z9y?z{Wź ὂQҽ;i-;J'0/43"bFu#EDle7ޕ5-Xi?H>nq^kw'6M[I$I$I$I$I$I$I$I$I$I$I$I$I$I$?$I$I$I$I$I$I$I$I$I$I$I$I$I$I*I$I$I$I$I$I$I$I$I$I$I$I$I$I$]]#1ЇuDD46y1JΗϋ`eiDWy:-$BϤ4'0O46Wiz]]cl9m~^æ[u1:zm(O*nא=2WLyrgm|^ wyE!֑.[xkݚ29bv1OP^ &qZ-vpX߇z%"b5Ʉk?4|*2*lk6m.i{M^d8_> օPk}ǜW~͕hepLU\cSU P92P0=)WoPيXC;8z8@ڭ4֭Ni<!6m>j (WׅUK~&CHa^py`±`i|_@߳*TN//𲭣r ixrELw!^C>+gcxu+^Рc`Nc( U' $<׽o@S8]{Dl45e:=뼋4 ^^q5V8:/4'QG)2/TOݹsZiϋltbVԫvTγDv>ϾTVHѤ<SLw>fD$ĀIL\;jUv`qMs><9[CV.#X)ƛӝ|t }).(WĠsW׼ ù+E~c:볆]']O0t'W?Ϥ4""5ͳssz/]cD4pU*c{+q}4AmEY U)KƂyj>r9/u4FDp xcS§V.pDki+F:pm-{U~*K"c g_m|O>w$]KU7cJAyp <}/)mxqq^[Wgj aνvD_#SZ0j#u͏l&Y79q]mUnt|uZb?AT0 zajs⺎9gg}atK;Md o$I"s<,$1>isE?h?cwBfŞa{h.=k_ |p^y^9y8"W_ 6FD{3N!..T`:96vVܯ%Ӽ.ɠwüaK{П}3>/z;yr_P;Ooi#"ለ}[it7߽wxjy>99Iÿ[y?4lY<{Iéqy$ '?q`?:ža\/!9-~8_cnrOwsHxs?~1Ϲso!װٚsX;c:{] ^w<#=&tMR7Zi{'O\GS6+ qg0 [[lWa:~v_#Y7 ڡ_kRN9;Ǯcx7$E#"$O#r?߈e5Ѫ^PUee?/J#"b4ȯ›5G/ ?_z0/pV\~ f<ҙy|^DWR ĵgB}l!cEеSގXP9iK-kv2ƭmN\-|)<"bmmjxPBqy~w{/ m %ke^7(5BYC?AX.맺ݗ0<#]\\;iZ&{.@^Eη:i37|^8gJ :f]DֵmuE/ #]YB=U_ܹ1۵O~dDӓ4="9m~~>sI4wenp9]-fi$Ey O8mk'h1֐vO|% ?=>ø,Bs >ky^~p y{ZU6C5A*a7z)`dkvUt>Tpb*@hfcۼכ_B-0 _`.Q>o1ƅř}- +s9 ρ,֠x9.ˢ)21EuV{B^Q|>|FcAq轙51+!(OP?gkFv`Y1?vs~SzQNMQ0Wk,x!s}ƨnfE|]ssԦu;k0S̽qGMI9u>5}&ρR[koҨؓ^ƳqLD+qv{u&?|UZ@Jq{~ø(N Ӟ|$ϫ|UD!5{k Dh 6I޽O.S*^bnW(̩DD zMSAji|?V# ogx M$qۇiuTD|h+o<ۺ%)|c\?ȟ-(۷ONƟĸs;4*:o~>?O10?r?(ϻrFoڋ''Gngk}ܣ3#ijڎj~XzaaIZ@wO{ݔWbLoQA<1/5w\/qeUQ~VZ.g;e>Vɬ{/qѣ|?-yQ/`6ozߴAvt?[y^ȯ:ak؁Zp `:9IQRmcK:PEK1e{ضWPmn|Om $;A(Ed-=I/Ey\AQz-7u0o{? *7l8<q^Olvyq.w l8E t@{y'83KQN@^,Q7XQ{ΧYN}hJU 7y@c"P9|7뮈^Nh. ~KDDLSݯFكzV >b^l<ɯ;*]aٔ]ۚ}9zidqu~<W0VGCNjIgJf4k6Mj/ڠg+ E3 tzjQ'~a9*w*}"}mpҨ.0\9 X*O,4gEHs4FykyX;zw}F_U-MZVT[AkӜ\Du&Ky ƨp=-e1>oa('{yPxR֚<j݄'+x4F,gR)(TxIn=Jk0_GU\ch3~ >jq=./U\I~ppU!;~rQ\L3^<&@6y]ӿ9>׋z-Wɼ{sjcĵI;/Rv&u/u/$Iҧt?O>q|9?&""~Z W3/׿#"3ޡ\Q^O|- qo }}xgnὗ0[y?iwO0}ilߗ~ie~뵪8z( 8>?f?hڪ>>""Zw~V?Kywr??ӆϿ4=D| ;ɔyјf}y1hMў՝unbLMuv>~Y>f|KX3م6Xۚ׸;wxAUwk_4[ø^{' V~|N3}mӋ<~pMSxgdmp?ڸ*s?'e|]K$I$I$I$I$I$I$I$I$I$I$I$I$I$I~,y$I$I$I$I$I$I$I$I$I$I$I$I$I$ItEPI$I$I$I$I$I$I$I$I$I$I$I$I$I$硒$I$I$I$I$I$I$I$I$I$I$I$I$I$IC%I$I$I$I$I$I$I$I$I$I$I$I$I$I+2ib4zp9ji›5 4m0<e8-\xhv[[Zr}۵f>koP@GT[)C( NK~Y^f%F5:x>oОy k EkeyR>1i:NT,'zн*N^.2X, b<0VEXQu 8fcvWx:r9O뢎jm^+V4>0|nkyQ#}?"be~ U\ǧixkz:Ҏs7.C4ϲ\jbkl|TUR5~9EiY^"14E]%/yw`\ty^O==ᇇi|eҡk_""4Fo`.-=!}*w cvOs=tk=ΫWW}cۍk@qɫԞkq S1u(cz-Clnbqm憵c*2Wt0/Z<Ut4[͡؆J1e>Q_C==:1bu^Cx^u|Үi XB}0rJkI1^C͑iw+S=QF''F,q{>#"f<o1U^ͯq2c W5oFUTgggiѓi88~J5;Wb`n3˟> wM(.j#0.u9M| mut'|:I{y;޳W'ߓbnru*ohpZaq e{Rc4?߉sp@ssZz]9|+iwP?Kjk)z!ޔ>F 9X {F~l:Lw9̓|:"A>|'nC}۷譭Ί>y₵bΦMv>~z>""N͗Qq^'_}~:n^F~_`(""蔿 r?7NTW4?4|/ us 30)w/y{ y_%ϻMs?Ϗy1g?$I$I$I$I$I$I$I$I$I$I$I$I$I$IOh4|:95c\ Zږ}X 2 Ҩ+o>,_t)5>{e."bZjevu~Ϋeb絆{X Ip̪&"v?Ѱknk_/ir?]k4ۈ[y r u뛋yNyugqOzjw+/:˽{/dqNvma\S'VP拼*Asq5UqXCuC [O 8}/cq]< 눈\CiDs[]c׸:emmuek]}FqUHu]Q\_#""NNN:]//3(nc H.U>"[9w=JUVȦZM@9w-M&7 uP Z󼺮3I _B^ciFGTqgxL5NOW׸D׵|tDiOAU]#!\իwu^TOlmsYU`kcX?|>u_460.yuUv̓EZǏa\4o\utsI4?A-@^B(jWs#w4 _iヒq94Q}5>cޤO:r9M森'ilr}7wsyc#ۛ,|̫\}پ6en$I>.?s?r^z P1(s6WPܿB{k߯^""^d([*+lsiZm_4( {ח4w/wo{nNan|~چ_Ʒ㳳4}LcH=?~qA^i>Ey 0{^O~{nsë??rp?I?>nHu TC#TܗZ/ףٔMMU_ +DTkM33Sώd鳯a\74ڟy6Ek Ǭxd4K=_gx& !FD0/zbF53߹F{=?Ց?;&g:K{y^~˴Xڦ%(XxpǏw' q}4 q}W1y; F^>[iEyce\'LiDD4M~_| Cm<^׸ ]&6&`pc Kĸ?(q3cX`YiɟIyM[d%9f3. ) z 7l0l7ҵӋ4|<wnc\{>uE~^OMߏNkIw&yxDxeo/ }x㺵z4|kqloCx~^;S=֝EO7󸚧it1ƋjQў9/oRKtZU@uB{ںi #81: 3FE?Y+ǃ"O!5/|OڮpZ RiipU½IDz7- :dvy?=:|^@Dnyw>}E5O#vrڵn~{e{̱!-e9#S"p-ԫ+DD]3#gR\rTGUٌ ]:>>N.yKoEl j^Mkl1)/[.ł2#{(&Z[U\-{^y~5ͯ}k]oW ÇYOfDĽ{᯿:5soLx }$cQ<BeeP'0oR@ylMյt'׆'sϷ[TMkܤ>9)ջsUdyQ;VCXυSWSPG*}7G=-TZ dHW*20zѦgJj(~NO༊w`֟)5:8(R65_3o)%z!:W?ҠXug5 Z2%-~/XCs&>sϫ G߮UtI~e;~u=齈}ho/{vDD\^89#`}bUEh>S""0I>^6 uW'O͗BݵQb\ImG6y+^u>?T&5JgV^G*؅&v>9<ݩ)z?8wOr:qꯝĝ]+=FN]UGCY]&yctLF-<A8><|ooiO =N4_԰ɯz?4=- ;+xv5|pR[BUs|~ ;uDx0ڇW?8/79?(ϻ?qF|*@u狺~Iֆ~7+Y}ޡwe7M_ϵwmo6}~1ϭ[6/wI÷wҬ%D2ΊwcMkq>Tcם|Lie۔{tqUc:>= 7~3 w L?=}4p1w-""&^ޅSO:y]&v㦹7?~xpLJ?Q=$I$I$I$I$I$I$I$I$I$I$I$I$I$I$3PI$I$I$I$I$I$I$I$I$I$I$I$I$I$硒$I$I$I$I$I$I$I$I$I$I$I$I$I$IC%I$I$I$I$I$I$I$I$I$I$I$I$I$I+⟇J$I$I$I$I$I$I$I$I$I$I$I$I$I$IWdm\.  j4Ht(g Ni<@x~M1unk8fMo>z|~Q&_ɤyg-JGK/tk<QNYBN'ENk 4 Szƻ4|{a@y,pGD J], z'>ګkz=k}j<@u[s,k?vK1}8N[ih],^< n<>L&Sk*=_b_#]{Dbm-'SC#h#oPݍ%.3/AUxây4| xs&Ee5K 﫾:{j*CPG7{Oc0?ߪj U}nc64I_@n#-/[gדyPOܝuADNJëpݱ7绢v#"Z8>/Ͻz+(>UenyxH:"b@f[>UH2h<aޗs>|DkqU58??øfn3< FD\^^v:/ s4{Om*9Kש]Ee="S\] WuW>>CνUst_T>L]-Hk~~ +|}?ek+KM<(sKyp㽈XAsF\Ө6tާ.R)fkH#}qMWS<)9 «2Dw'!q)9 >.Wߧ9zC}_8v{^Aq).>1_V>FI#xݙ K5/i@𘗶^`.'yYluoK~bD9`X4i}b]":K1bdZ<+nO=ō7v9bZeO8~rzr_bMrr<3DD0F38u ҚQ>müɨ}?U]GMa\GGGi8WRx_`N\8]Ȯ}>duLI1/tc1VVNe&_dבW\ꋖvf۔MCuX$I*'s|O ӈin{FiyDēO~4oq/r7[ f~{/oSw1_{= ovǏNŜ?chq~u;C.wV|oӳrs~g+?oMo&DDlv_\<("b/c.Nwab3iy"?emNb\w?q4'~+ e~Jß~!gry( _-}e돝-xU1yekzj2C<cϹywG?#?~)?Eu{*[}RsE$ݻ5U4hR2DaU~"̧Pqse>44|7x"i~-=?絇KMk)=.vP]Wá7|;ÚOwwoR5_n?i/onK$I$I$I$I$I$I$I$I$I$I$I$I$I$ItCPI$I$I$I$I$I$I$I$I$I$I$I$I$I$硒$I$I$I$I$I$I$I$I$I$I$I$I$I$IC%I$I$I$I$I$I$I$I$I$I$I$I$I$I+⟇J$I$I$I$I$I$I$I$I$I$I$I$I$I$IW?$I$I$I$I$I$I$I$I$I$I$I$I$I$IȨm?PX.ip8!ƵΣ&ccMƵIkHs <,UN ˥d8ϫ]ײ\YnR-l7*}R/v"=1ܯ⼚66|oDİ}W1N0. r4v'K[#"''fYa[hlEGc4qmJ>SS!j5Beu=82rgw7 ,Ky_)fS_""FpQWEeQa\+Wq@}=..v}@Ce{Ϥ6)UoyiW )pHc1_TNګv3k]t^8-5k扈H;GD@Ү>X:wJ~wDbѭj:}Zuoy\\%U!+]A:Jʫt/G|~P h)|1н~{{{y-'gU^sNNz8k=ShV_SȓT(Bj5UscOb}nan^XQa^Ϋk~{&}֓Hcy׸rQu(soq[|]Ȩz1}&OA}/*[}⢾A5OOP_Kk4׹q#FcԪwys\!-W2\nb\/KÇy|w'{zp0 ?к d8R?y D.[м5jÀu>]yy\1EB):&!Wk)FW/Fcy5Ҙ=2t..U1KuͿnwpC> =W&J MY.`~3qg4Y~p?H{>yyorO}i_ʫkz-gsyǮEWS\.]#Ms=u+7yC\G}}ꛋk:}g$Ip?}??ߤ3[5}moNNb\ik.ZDD 'y@ا/~! mz$" -#w<9MÇ#~a_f= `ޜۡSpn'2O;pE۱xCx-;gg\f{/}es {M>/Ϳq_~ /_ n苿2/[G'ynڈ<0>_ͫPځ1оSڇ75s ?s|7?W>Z]*gTM~:tMJM ڷXfۚ!H}jxk'ϡV/|0^d?/!nҍa?c6W'eD$I$I$I$I$I$I$I$I$I$I$I$I$I$Iҧ*I$I$I$I$I$I$I$I$I$I$I$I$I$I$]ۢ|DE{>Bhϣӡ)*ǓA^loq#DuaWW 4=<96 2e>"l}Pv 待c"OFU ) ,(~Ue".kB~:Sϧ4v蜹}})PgBy(=:ok>{}_mAgkggnI5>auQniT>A-h!x j@5n]}7)s(|4<֟jnU}O>~}&OϺ XP|gg7 _cA++GDrtԫ.&Vq{) ݾ{zK_L'7x4oBs}9Jױ{M^usϼ3Ouk]&uՅ$I?/?}?Ot1/gׇ<_e_]?q}& _C?Çi?9w"b8O|kǸ~4v`0彿 xƫ|S~cmE. 5giQ~-~I"q e]mt4|q(?/x|??)ԫ:㔿K# _4Ÿ~i_Zo;{,':g4:r1 Ҏ]{zIs38wۛYdFa~{AϹywG?n1po$>u쟧y툈|}#MWh{96u|_Lz5?^CVߏ5 jC9y(a\nkgg绳kȻ3 ""߯alSлY^w"V)IO@Y6g|45Ɉw6O1spIP+`\Y>W4|2w:o{_4Qqt?)Eb<5xMh#"fP~xj?'߬Oto?ǑW?bw&ws]ts|_Ϯ%I$I$I$I$I$I$I$I$I$I$I$I$I$I$S?$I$I$I$I$I$I$I$I$I$I$I$I$I$I*I$I$I$I$I$I$I$I$I$I$I$I$I$I$]V|^\CDwm~/u~!߈V<}J;"b0tOv0*H[ {z.t& E|Wr8cy^9c\cwMY=uo@hiL]9wJ#h]lc#aJ4_"GAUREռV>/62ΟU$omۈ(Ҏ};)z^g5_q^3;)]YWg=HGA$On5@߯/xS>}9._W]:fg'+T)yjyG<'HkTr:q֦xz( ނe1 {eIn׬X3rBc'Oy*aNWSigҵ^yTwsyj\q^(ZlztEQiii Sy1u\]Do5b RY5. G7tv_ ᣼rK|Q=U_nӼzZ{{'>"it/Zh &c{_zw7,7y&:W puuuM3Q1_PH$9'O??|S?o҃g[ GN=t^y4z7>H:g45M|[oa\oA<=W<}s_zE.{O]]&^<EDlA_rݠ {x#"b B;1ÞQ ^+rPm~?~~> oøȭ[1u~-gO6Bq m[ züܹ0!1?#sfik`\O=dWy=urcˋݔIkyj|[km2tL+Zcy-f2|wKvSi~| ?_V_Gku^fuYNstYu~"Zk:[Z[f|ZT-ǸRkZVgvbYdR߯k1ݛ{e:gW[Z_:\$Z[L8ݩÿOǸ(o,{:[u\;v/Oi}̴Sr:e8Mzkm5Ie>h2m,T^ ukӘ:ZkӐ:1R\;kiN]?: pη_?0^jUI7u~XOO|Sk ƕNV(bQʝqlZGGIk-\*g ҒʲӦO<#mLýOὸ!̹RxJwRL!C^=^kU(/i6s1:euis+]kej49 sZYLN:?qMir:n*^*r#&y:&:tZy8cڏxD'p_z2d۽0;i-yBkMHr\Eǽv5IrttTӧݻWtڢt)W>f\|-)FIq}[k<}= r_7 ɤcR˯igF}r^uYM鳴h- 2cԩ|qӱP6ct̘~`^NYG\^c#ډMdcB.Ǥ^6T~4"Nz6)l4h>c OcpL<&;R3&ט \q֭[1s|g{{;uy exmΰ<7sMq{>S|SeYZm(:eu?<,ŸVW'Jz0쭳Z<~Y}>(:wpo<>tޫim$%g\~(>2ΩlPtR9ZWNd`D>宓a)"@z>Z۩-ϸZ5Ԙ5_eo=w+s4h-?L}DJcea̚e/lCuai9i+U6MUn\F46v]3H&cykdzZt~?l|?o{oqh[kƍ2;wθ_,[*=ܭ9:mяOƸ~~om|Ttg /zӟ/o?_v|k{{|Ƹ=<ڣ0^eb\gig8Y'fuۻV}Yx.[~oLLuC_?,_|vkyT3G]Zy2|:o}c\wџ24>rNw^=[LӺl y=euVOzzkGaZkC/~.M?k??9?m|WSx_>8e&c۾4L1{טۉtĻ7;㵄qΘks{Cwu!xcCY]wP&+8ǭ.iX/L㌽[Q+|xze~.o丶;?ڶP퟿H׶&o\? CP <.|ȗ'I[,cI>4ZIduI~8!dR^e+gi~|v<(Nڙĸv2j< nk9=Ye+&l]:su]Sw̴>f:`Zi7nĸn| {X^qe^>^wZk<~c\uSwVO8߭vO:3ohR[kB\iiUȁT4ii*-cJm|j#6w<zN?.ScZ;=t̺Anvoݺ]W(P?038gyMC/C+ggg!ں3\NΝ1$O;y\vV?zSzklNz|RɬnvN1*<^ݽMh1:Q׉+ih8v> ees^p_NBݚPkq0nm֭2|/ܓt?Q#T;Q<9v8iexk[k0)8O$O|ha=wl~7I㉡i۩~qo4^뵑2nO sycn\P:k14' kLmogÛ1=W9b#}Z4oomܹ ƞC_tq'MԧK;&k)0-xc2>.1=_lmx#5߯q_'-{#1FU #N++S۝r>1|(`F6/wHk!:+x9Ovky|^g޹Ps}exZ/k-/ZVw*!~gcT2,3H~Zkpu~})+ex,+1Jj1rrZ_:|f2|:d:\Ⱥժ>:w9:''ey>twwZta>Y5 e/}N8hvv\lR߯yB^NOꓮuk-εS_ˍ۷qݼy3u ׭u7nLBmQI.-Vy}i>2|}y.wMtu+54֎6cz1xLk>9p{d1k\eɣI]Wu;eu?5hוsg0KJkZvv#ZknB7: i^qMR}\8 :_zlag+DZ\m⇓i{8#=S?3s9X&|LSPB;1|.S}i`ݹycjO10N:7Ugn1 ۿ/2WHу2|azppPwݺ??=|/rmdg\rzr٫䬾eey.E'rҹGÇuYIr{lr~ɸ.?ZkkI눋N:د^>KBc¸?tҵb:~yZkZΖc$w{mйso>th:GȦx5uwSym%C4xx(P{S k\)|e>?^InՓVz9f1kC.#F,l83a] ג154+ͧ>F>8 )C!Lmsfe(`キ2O!%ƕzӵbky=6>k5I׽kޜ'iҚAHbDCI᝱`xgW/tƓRGY9nSVb}k\ZßSw9keͯqla;zO/6: -/c=/cMaxxuUG.clk)M^ƚIU-+Cmyph6Ym&Ӿ{3MޗZ"?Ng?xϿp{ [kzo2~zeg?W_ã/;yM{2o|eO]:7λᝧ妡dڃ֦jo|l-M{Z'a{vDʗGu~𭵶^!e_/2{{wnZkZhs<>=}|~ ? dٗ;<u;s0ƻ{^[SkÓ|k}W?5:;qtzzuk-ž<&ߦey翟_$c0?4mciZ`=F ~~zֳ/1q&2<[9!'r*+_|^a~: Mf{wkGaͤ> s;ɭ:ZާzTqgkLo~v t^㟐A^NjSo@;鷳[km4O:R'VUwӧ~|9>KK7?g0ߟN;qa9<~'DŽ?MyMp+I=Z1F{1~O쟿cecdz)l:}7|$@y(\ ğpAy(\/׭-'Iq-yZh֟ݾb8"!?:x>xgZԟ7oƸ]6(7oŸnܨ?۫N\pSYٝ/b\YY龷ې麾r} kyhsuN(w)|1ܓx}y2<ß|VKkfzi'WP:Wk_iS1J<2|Y<+\:͝cR{0}TGG1tuho; z:qCxaZ,6o2ۉݺleÓpmGw-5^'{tZeur\kyU,{p-v5ݗh"[mVu1u+{:Kg"ZkPWS{~_ܯeTR{;T|xn;_۩ۯ:'qu}p s1߽S;qֆLi^Y<o}j?Zk᣺=ػV㺳uθ,կ㥑V<$i5ԡkc6Ic&c\wyPCJn<\Fyl?o>S-CL!'gg86߾]a~~ ev{CoXy# x:?]F)ooGXRB<|F#|N7Gi-k^x<2|gS1w?:@ogymf7,IVk6$= G; y;-ߏ]| ~kz!~??)ÿ77>Yx7q+Zpk-syh#pw Ӛs o-R{vpUR~Y?%)vkY.WQol;~]濝^[\kFr>ڤ1uh3Mf~]b 3g~kOm åZkoA~~(leh__(?|kڧ"2Gc Xw~~S_k?C~V~Z; Ne/|1L} _5 MoqCwO{uA8&{v<= {տMZkc'9~ ?_ e[k2R~(a;=+ĸNC׾ew󟫯{E_J?'gyoy6r^oV[= OƸ.CK?y翟o"mkgv?&lm4^Lk2ǔM+c?lrU}t&r44N O.aNH׿)ng һӁy,~~m;ֶ 9e^wKuuxם]__g9ѿ}V~zn~=oalQI^{{'֓:_:z;/Ӽ}Ieg%)14QdgS=N}`'~v9t^]_ UI臦::YN{Kǝ 9W誳~}Uo? &篞jv.ϟpAy(\ d>\. fɤiyN}]G6-Nk\iBtJ9 },p+ukĵdaN?u;5 t^4n+Z۫ 0=;9qMC1ak1)eo~rL/C[v}y')&?ttzc:|֟޽J_iT4Лv5>/Ƹs/ef#?#eKZ!Zk;{ed'Q{mtxe& ޽|^ש{d{Fa kѽ'pnօZKzVۉ+t934,ӧSz~?b2jPOz}J4.|[&$7&Lcsze8\Jo gY-h ?>;e"=;xZ{q=ٙ_裏^{ j# O2cxYsmƕ16^E`onz68ԘvS{Pc|leաug3ў|{K]']ia?k?6u?:Ŷڣ?_ߺbk6Uzpz750yv^a? qk_c̛u4ܫZ{uମyW~e>]5xF+aKt8nzZk: s{w겚~_X^mnri "=:W/=_wƞ硬.92ƒu,OzrzaȰ2t_Șcu궑ᷘ@Xiԥ{T @zG!=$N|D]qY8d} pxb։+,,ĵ[_?qҘZku:{u׮Ÿ_/o,5}luu$2|w<ûe_|^nAgS6 쇲z~:=w;;unn>W/B=|Y>i(E/ReIūWZKma /uJ)1N\! :p)i>:==kO,IavI*i] ߔ/i\uImwΥXӳ|N?sΗ>^V8Ç12<ӓ;1> Nm3ƻy+LL<:&u]OPvNg༣ۥ%#~9,ίԲeB]]BJi<+Q6c0;}tJmnwF6z'co粒>/޻giu2盫U.+Ga\6 e%?iv=}$ܯ4t,a|u]:Ge<o޼YnݺU1?Jmaη^XgI᭵R)4leYe˝wD˺n⚇QʗigM0̷|ޖޝzcҘ7ꎳ yxo24Ye\5M -f]hD2itF_`;1;v1/>vPWeqXi,NVs4?uA(ggymw:@>m=;מn:cڢ4&F&uvleԘe|פp-xFa6GpqD}H ,w|yRzƙ$zdk]y \_ש3>Hiv}~nisk}_/ÿ/ JͮUnӸc?'sи|M,%sy֓d̜2)+W %c21m䘸.gmw&m2嫗vj ǜ& Mc1.<`ge|i?M:km{ gP^~fmέy,^/O>7} _q/b| /[e^|~<~(h{~_2ioMxvwwHf{Ƹ=S>}tm6K{C܋u߈q}7C~i?;n}_v¼{mTk=+eL_+1?^ٯX^ØƯ|ӟqn󦫺,a,߶y?xL857]ռ߶{I?q5/uA/`6j֪smc}1!go =[s^:s0n<)8מZk;$,JNzAډ6q= w<5OKJ]S{Zn[Rkc޽O59>6w+yurؘiZ8|f!|kʇύnP?wmk7o?M;~{쟷~/6tdp ğpAy(\ ğzi'Ŭp>߭wOZ,B\EhN ^7t2+g2g/=B~[1k{^{1N}_vUgɤ O:uV߯Y:;eUUsTUlZټ.C6qO>Nڙw1]~u'y=::)g_;;!;TP Zkcu=i>.uxʫgːvkB~WʷuwӺr>֦%E]VR1)1NSyhZkmT&zR|gp`9U(G^?|u()'_y WV뛿e_~~kwnOO5vqt& uް4U[xݩЧҸ(Ik;i^~ ?8y>vƅ)*!!zQ'~;sh&JתWZkg}3%%cO+Ťekp{b'ϩB= u85t~:{}QN~kyqnZ'9Og 0wMzszY/ q9DMstt8jqǘ\thBT:& ݗeטsxg{z7 |Lׯ{k=b<}=5 Ze8&NwtL.< k+p+$W:&mv u}\g{\^q}2߬6=F1OzHMmN%/mo1Ik]O&{{n34N~ +Ӱ~[N8;炧0ﬗЧ];玭wP, q֩U.\<=3?(wZzWz1mк՝S˰F_5xK챻7mdF GQ:vu1yѡ1ߌիm1YJc8gsG1Sz,>le~νeA?w9\1ޭnoexz6;]\ۤMWwҿ69zZ^'ޔ;aLH\Fݤ^v;qyGvek齯54XNɥʁw lf|u ??ܓ~ugcޣN׭8 Y8= &)_31}+ek9|݇ݻ_s_s:ܯ봳} wZk~]eOggo-ÿwb\7 V-G|?wb\ݽ]ygNNœ7~<Zkˇa~#2Ɣ]ܳkI;9=Zqo>210앉t)*ЮL'<=maܟگg}6m{2[y7HC{pݹuz? EjWGS[kg!,~W굷ۧJ99HN{CeX/BZ}):Zkw'wr:SR7樽B,ڢbʿNCB{{vuod\oƶ׉7Ұ~P~*fog?uڵeAkw>n˟q\b7ddkZ˳y묾mZ߫ZM5;u:t֫:媾Uo٬kisDCe'#q/Π&Zk:g^ןC*i}YN]VFk.v:WnJx:BxC{hI^=MTJ~֡ߜu>4ާZkӐ<"6 }< qBZ ȴwI?=<~X;eOĸ2{\/}=gexП}a_gnLסcnŸBwډ<\#cΗx4ni4ܯ^{2/:syk:wL:}mh=00[SZkm2 '2#U[6 yZ+ív~^>KyZ[6dV:| y?uɡ >&]biH']{g^wzZҿ{c\Gue:8ǫV>M\R:[Jࣺ=99)ÏBѠRZq| a5W_-ƵةMuz]vmM|k-B;1MmNR5 i̦͹+ :4ةe޹sN~Ҭ/?:mt:tnIj\imY[o'sƭŕ:82LC%FJ~ymZ,ENg9td]U+<usO|cz\BuI_OÎIcLcҽ63vdjkua-)z?y /ގq_ZUg3iu>514?A#hh> ]wKfzZkkD4]uZki-֮߬`V硍_jh\44mQ1>nc/XV1_ZW^w:28nᨴ㳡ki,'Uf쟷?_uxu\Omz󟋟᧡_%6ݯzn؋/}m''s/^ĸmK/x*{ѽ>,o~ O{#[kmB|~/+ekߵڋw 02^]VZ;zJ{>[ ܗzzwe{u߯YA! cZ{W}P=筵v>:zZkz: ϼ^ uک/BXmԋ/:;Y~=Zkw4;yX=i?mw)ퟷ?o쟯??5aF䘁,?uZ;#{e3S\cOiޱSO:|w&͸<8NB\{uuXI.,vHC @yYhW5Ԕ_M;s'zkI˺-Vg?Pb{yf6li >zo缻Qq='xYt?E'W{q?=o5mcDb<.? CP a_ja7n7b\ןݼ^uw-dVvb\|(ç6 Yk yfu^=j1I2^縆57W׵x켮C-Eg}x^{\_Vwc\~}ӟ-ß?[wkݫǸyF:*i _޹ټN䤎kct^oʯĸRyV~>-2W󐏭vE$+}251I}<= }Y}diU>bU(c>y[׭i'4:9akݻw ߏy)+a0eǸbifB{3zD(7xYxƗѺ {q;@lVG$SY18t-JϬƌ3bn4tZiP,Bϫs>,ïg/BgC+Ik=x OσnjMlrlsU .+/7%s];~2fYC]{-!|&c/b>k2p~5cb|n|nf?_~3쟯?٘O~o[2|?[??2*WZ|~f09o089kyLSGN+ÿ82zw2Z߫Z{_i/ZEu|wO?_ߓiHzV2cwCuc\[v4[e;Wv߇Y_~ Q}_>xP{zoyϽY,W]?ݷ2;owh#Z;zPߨ7>zZog?2yҷfcq=Y?g i=;oׯ׿7Z򤽃$vmc~+to~28U8&kkyse̳ڴߦћ?m??Qe"?46w~^W~շ?95Z{^?~7 : u,pfϷڣ>E:^ڧ? q#nX<.kkg]ӮCtyN;φz"ܯZkŰNίߤkVYx/ig>~*$KdGk4ԉݝߦ_~9~fŲgŧmͱp5c~^y(\ ğpAy(\/_xa~z~׵:2|1˗7k2|gY1UZ;5?^N&YJ쬾zZ.L^|ҹx^y}OfkLOb WVg);kI_]K5|o+3<hm c>h4^y/Zȏ| _yjIݮuRڵTWV9gi,jL{^͚k9Yq-Wd7dKJmaYZ;?;;ט*is~ۜ2|ؠ֖އR,2|>[km2֮ړe]Yc9ꔯC|wסOT{u"MYB>=]J;qSRB)io>iQ~u _ɯb|kn.ZO{?C:2O29|;ƞcƜW _yLY/x^aY[yɹ`o3f 0Ԙksи\9c4,Ƙ2}?Cq^c$44\Zm-ϓ.7Yg}vV!!OZkeqx>pc\2w/{{Q9=ΧN{ NC7lr3 @y8ix/62=K40ӵ1fl06F,qԉl#C>|pޫ1K>ϔy΍7b\=yZ\ƺc&6V/mm>;z&qz&׉/e>Y_sn({O^YMSO*[{=cu;YK=zj>+~oӶo[?_Z~ݏ𴦐y^|9~t f1GNߋqȯvjihؖk̜'ԓ|SX$әCu'د۬u~jkMu\|ios~mOI2ٽT7ľ3fGWu6ʄc|%mi\7ͤњهrIʟpAy(\ d>˷nI(ٰZ>r^~>f\dVzko*u3ڕt^y> e~m>6z^1ukLsW/~݉+Ŵ.w;;IAog- ?=G?::~ kyc\aVj;{ǤOƌYvwwZxpn1!_ݽ Ǥvv=Iu~CDS\w^u:&a|kc:򱵜guŸ$jФSNͅZkm9_MB=}'ݹ~[ú?$:/';u{w1:_UC>%=>3wMS?E91z :>fh=m6n1 ZƵHZ \Շ?f44ˊk̺Ԙզ~6WeM16Xצ4xleehga^[7yf^uy~;և 9q8 nSG̯臞{gŽ9iMaLKm[suwsʡe79>=镉GiL:|'~ } E0?Rk|co/}vZ~w=W?|Mm{xZ`j%~}x~Mӵw,S畏 &j|c@, @z)6,z]w34ƵW߿PڭދskOmK~乌 OӺ&u}^6?qMg/Nv& kyc8I#v2,]lVZ[wzzZŸ:Iicҵ8t^_Kgާ+w)i9fww7uڵ2| ىqeZ4zL6wi crY>7Ø֖,à,u]]\[UKagtW?zx7q㚅2<͔Ю-{ N\'u^,gAg_cfamkMI{rKT[exjzmatLtӄ>*G%ԇZYu{}oΕ.1V!}upPb=cx| d4w{殩-{AW^,r+!fu+}yT1nWCyIewC绽9uN'1:G#[K18&N[g8w~&c[mȘ9W[cdkFNǍ'ylr/vyɵIM1&8w|ʧ~W{,ƕofm ,oM&n90\|ZXu4^pN\_+Z:;i ^jrzJomfoo~Zk\Xq_.S2ةZuŢNc'Y}s^/ex=jcNzRGUR9z'o:>-wc}NYA]A^ #J.=1iGGGex]޳cz<i:U]+nrhul{27l6xܻɼ·myilp1w'7N11<ge ?g쟷?5obmw_(gSǸ>ϗ}21_>Չ/:N\kƭ4fއƸwn=w _OrZ!Qk1_ZYz7ߌq w^~vNj=*8r3Oq}_?xTd/'>Z'z' 9|MC9:LOώ겲]mP6f,e|n~{쟿k>vL62(~yRxs=CӸfuǡe5ݓ1!z{wu~h\ccڃW+4?m0~`L6'Q5M>m4\rgaxpx=ݷ)2$Ƶ_;켾_)SZ j>[ct%:ZkmyLwwvc\BT,pPOy 2okQ_,궸oOCU8 cEH9ku}c_x_kY8$9{2I_d Lӝx1Ϸup拺lڧ^ Kul鼦n. C+í?8~6ΓzZGj&1q1Vg]f2I+]co'!ɤW3t模͛u͍=yZ5f5qQVǤ1fs?-ekƬ]u'-7^{rtt4~+e{o5TO$>='im#Gl8pHZc'RiIku[~Σcl6yR^ {ZWNOOWǣק>Z/| ŸcZݭCvָ?ag'uާyg'?ˊJv-ՓNN`jW78dUz0&_~b\o+ŧ'oIgD{4굫阽Ao-7Oye72'.ߗ~4.kv_պ}k,+ϺX/)ͮ w:zⵤ`ڟ ?_qo1.^\_g~Wǧuwߎq}K_)_|~?ỻu] }Mkwnʣc\޽{1\#>Wl1}s1_"هvy=|0}eG|[k/ sZ[wm:[1_?Zu,sxޝ^ڭ]{ o|=Ƶ}l.w_nNq'֎vN4ŸY?:㥝YA]f|U}s>-ea$?Y6Os~\ߛ/н7}w&7jc_u)yE!JA͞t˓?mlp׮ԟewy7۝zsT k~S1_?X8\Ƽ_χԮ箝>%MV#aUKo|vo󿣣9WoqƔ0~J&: +؝ nw#W>ec?Mk`LoO7}, y(\ ğpAC~kM[8fRjj)~'&$ܔG3lZg@/7e{k{{ux7p-)\{:f: o>NMWJ#َqՓkxۖu:9bcq -_N=Mu8ӳC6gt-紇ӻTaK-N|}:mggexlNAeY}.ݺu ?;~63{M4CN:8u{tDJmwPd%ǕڶNvNN/}~vZqokMBTOΫ>N~ƞY΢n#Nq05Y1S?m-.GG봧 5n۩.l:~lV0f虆5tIu?^Y3FWLcXY}箽usMε7im>M+/c2)_Q&jߤ^_2IC{khcyiݱlw*Ngn_/iwçnݰ|$~=;㲁'6Y`sišfma9gc?cmM_|~zI<&6Ҝ^cAWN뵿__+_qO*ӣZku|xx 7_qMâ}\N<^Yg<_QlTs6#`T|/i!g~gbLiXWW0}+s\W&/>2|5vL_7|G RҘevg M'zZ\':ƼWu]e1ױgiOlu+-1&8'GֻơŮ[>(\}Qg?A>/cf??i?ퟯlr6ݻ:^oG}m+zn~Wڏ> qKvxP=ݻWywڵ2~wZq=qfaOcyz ^:-zɯka,C;:uw-?|2a}[kmoίG?m-pN?sV7>]ouӯTno^N]q+uo6^۩|e_-çaZk_yWzދZkv[2c\2,߶>5S\9mj~weϗOxl2Is\ɺ c&v~v6:&'UV1x=QqNf٠MWǗ Nr[8Ǟ)WW|Ӌ+sh\r+)~~~JhL=My˯$]d7۽|LڜMdY~~L\I=Ӯz ;u^Vavt4;ׯ_畒@}%4eKb/v1Ihu켮wg\&V:Lq)4&cNs֩pVg謹?\$YLL&):ytZ{:?1fz= kiy.4uC/Om]6 uaj2wދqZb[;:K{qwk=zTOo2\,rLoLzeSİqtuek6 KX5^Ɯv15f^941yɹe&hmx{0&16׶۵'-d2mc^N27O}2|̸?z:+aY9vmio!W;͵C wϓr5=K0f>߯眞{փNxpxFN;oS1-ȿ2Q?iK^.$>|X .Ÿ靎&{>^ukzp, Ki&' π^{BmJ'N:F?445F /c "uLOyG2'q;OX'#=/csleeyJ2pYkOKvHC^ӿ6~qèqL<(ix*?+? ??$.g|eo^~Vk?A;8wW*>>dw:~?Zk]vW:5{~Qk{Ϛsb\GGXo~ ߙ:^Юߓh{;eQ{PVNBn}t_0]ɺ.߽}wCspc\ wK?zӯ^U{8y~ ߿I޿|cQɼV[V=GQmOrܵ_s!wQ_ e~O`~K9?s1{Bƹ`]ȫ'y)Z~ZV퟿z߁<|m;}k_9Z? CP <.? 2|jXz=_L'Lc&Sj9]pNVu:V/Y}^i޻2ލ9Ӌ+kχ19fq<vOn]-QuD++tNګp->C^ꥱ)ӥL>C=WܟW>.Cڭrޤr,b(Ï1C>ggwc\<,|jN}̽y~ tZ_{k/?]N*ƪu?1I(NާRN_J]c0ߋq԰ \S^,zc-Sx_iLZk8dR}/:OB{|^!qLZ;9=)S?0 _\+C~fL#"?/^r^ݧ~uc\ilwPw^06锕t^PV{1R1t;jֲԘ3%CcC~L\~&&$7.]ݔ&[~oژkINN9bZӟxlܦ ]Ohdv%$֟zE84\iņX{7~1'sc1+/)W_}5ƕܤwOR[ӒλC@͕dL=t6Y||ߡNrteqY^Z\5;:y 5LJ ZtyNwǼ3j\8y{>n):_q(*{w\Ip;" ID(^ۈu[Rc'dXy~ߠ~ ͓f|fu{?f^˘5}69|d꘵Xs^6k|}f{Gshڛ4&O6>ed[sUPrUW7y2M<=Z=58Off?8eߦ??e~EiS?4Yײ^o^;^zA3MMe}c\.e*wݍqwOB~w޽{eujIا~#j.w;oIzm/^sZky}oB~㣵^{2>(_k1[nLk1o~ebs.ív|^W__x.4w击y7: S/[k7O7fL߲c|=y4ư~k'?$zZK_Ǽy }MMuƤ~; (}vM5^?Q:Mg$imL]I5> ?i.ce?18<5oQ$^]ڮEtLzwa[+Oeu\)ɟ,Zu(TVZ딉im=IxO³Tz5tl~js{oSq? .?UCU-_< Sjx P <.? Ċ|yZ'U߲CW1uk\ݸvvv1Or\u}U}b6]OBIO>eNɦcR~V9z;o*1uyxZzy>+ÇrL+] /+2?FݓjL\sJxL\T&zexhY],r2:;;yr뇒~:y龜rzz:s^?xt\ĸw>Ntk6}1<*۩ʴkO> 79Of2|XĸfT&֦:eu*,vu=͓?OD5Is2 ~:um:NZtiLZ76iy< Mz%Nf['G?RϗyWd|g7F vm:۞or^7tO'u}oLИ9e3zɼ|e2ck1]kcLw˪_Zkd)cɶ*(u޽2W^);qkᳰZn0ڕ69jzj/΋oK5ئCcZmmm\B|6IvlZkl94:|,_ڻ~.]'<|?ß6831s>jM.Obu5]/4ZkSLij^vep /;t''{3Ʀ,c֜:tꛬc^wM6m򞌉몖˰kw~m9<)쟯?Og(g|aq?87~mەEF>{Px?3k;}ٲ~_`vs9cxk.žYnswO /sew+ew~+uƍ2+eߍq,} ~Nߚ8 5 Ƶۉ,mne$źsZN+ϝ.8y ?y O屵NO?[|eď68 ]ǏH][km5߸~ v2VZku_~ ,sӡ8rͯ{uyhw߭ۃ'mީ<-?t~xCfmckS2U??1zuF=<~gCOx*Kχ<_z (av=ww_4S)5Zk g)yϏq6wYu^\-M~̿ 6XR~=img3&5pC*ǔԧu׵}IxsWqy-}sz"??o϶&gh|~5_ͳ? CP <.|з'MgX2x\Z2֫2|2 Y!R*?gːɤ>fc*^qks)E>ߋ +]K:wl`S&6Y>|9&J2>m,t|Wv-}v`p\9Ai}VZƴuQ7t^_K:1e"IY^\IwR|ǃ2|n^]Zk4s|zV?<:qMgu7>Snk2#jl]Y)=øtndoLkv[ma~I]߻药7oO+no7,^mXt8:1;v3赫>(gaW+mlV m4L{盚N'1vtxݭzl~(w^=߻̕q[mrr!Nm=9::Tӆs1 SO6Ƙ.&1qY/ \n]5t|L\dh[eDcP}Ls1]צ\??ۜm I^gbds#|ܢu*|Yeij3cdctLzg{=4cn2/WưC²瘫KcE'nٻC7Ki}M҂rO?1fW1?lzoKG멍FƞŕF_g-|`Go~^?kL겲w`ma2fe.c]I1ל(~>24'|ײcYWfK=E(1y,~?o&~燤m|ι]o|x1E[>ɣuFƬӤ߹;臘}ݩ}⭵ԮިN:<ۜ/wb\gg5\~?Je?3 .t_0םwE?_ebןi{Nҋ~Y݈P$wVu9~zmq=۝>( q24YCܿ_|^(>k7nGg9鶛*W[Ǐ};1?'Db/}1߶yS쟷3/ֶ߷zl]3k?yߓ7ItU?&nːKZK=[ lstrFzݘZkmf+=c~{?c\i GkDJ~L}.cט) =? {;L&O }pOZ~PZk| ߢuuڵYm{=i{?쟷"mw$O1 ğpAy(\ d>=>c&2t:gIǬu6۟DŽDfLǤ+YŘzԟ,VO|c5 dXĸvvv&zvv:zט٤tOz׸4Z׿\.yט{kT[u%ίZ&{ed1گhh;1>iVډ^~c6٧ܹs ?={龷?,SylG2/ǸNCw:vX/Tr4Mz214:&]&ט6q޵o*_zlk{z:&*{ķo.߿_1YrARҼ߭3iz3cl_I'VC\wG\4^ _l95cꌙ:N3ܢ^{2O2whk5nƶ5~ ls'zca?JbQ?̺էdNYmҳ=}My֫63t|X˺,Qc`T6٧LO; |x9϶~N?_~g?1?oӘ?򕯖᯽b룏}~~||zŗ1S u[3:H{(-_5u Zk~q~>W{B_q}[ߪ 㵻ߍqpkӺ>OcL-n~:qd9뼻5w0< {u ZknЗMa]W>NVh<䴾Rv'&2Nn?|^>?^>2eIϟ۶yǶM''_dkyWV9W??bOk?=cL?I?.c v/uk:q۝Bߑ=/eb:|w7zg>#{kNQJ8#FtRic9L,qx8ty͛?j~3~3쟯?<y(\ ğpAC^i/HIOߟ&)z||\$dʑkluxJj)CO')/^xO,t~J҆$Or< GZ,K?YJ˯ĸҵI)) >$bQqww 2tvc,v=zT???q-n^Vw2c/Nkttp^:4>oY~pLOǤurrJן|L{|xLrppP >/{{۶]c5ngsW9ջ\6rpA9F~D8"Q$ < ( DDrqlWխƮ*sO>{ q|Zs9s1G|Y9mx1mƓ{8Ƶ~rYMhR1ԕY>$Su9>Cg./29˺7oMBZ=^?#}Y{ߟJ,v^S&Rdûmk4\/OS{{UkIUYj,_H7fyJƌ\gx)EYݷ1y?X.E\Sߦ.»94yn=i\|DᯨuvNısέ Ku#ҙZb~w)ƍ ?f1xwL:l^w^'17ׄ,SǼk ;ګ7x 2/3|)JQrLzz;/꼁r~?gNT2< uN^'0$G6(84/5&?s׵M1ķ2&]s㱻dy1DvtL0e%+|vxtYlVs tjM}Zg9u|[kmA~xx88|\1vnJk"Qq/Y~%)/SxWlΗq MwLZҽjAeji -߯J,T{$᭵e-g,Z{ OeW>{*ߩ&N2Zk?}sCJW+wG_ځNqvVbdrYE:R\zP'y3n0FҼ\J~2#:s Ii^u9 xlW9 _cZzchCڴ_zwc;/v{ױݦaeg}L|[~439cr%&?z}ݻwcLc h|)E! zA [‡#שnKu[o58nG9L6e?6cz,C޾njnﲲ elqy>јw}RO|?YϿy?/z>72RG?seOOg04Or<<vyY,9q-Ƹ.;W?z5B/÷\OupGu,[G}[6wZ{tO5tZk藾XOߌq>M?oS!>Ef >f*^ճ~cպM秴{᫰woȡȾٳzW=>({c6)ޛ+6W]tLwr sۻik??c~ _4fs󺎼)^1eb:|^4ʔW5ƕy\;uHY'8;Yџ0~ֶqvx~>SN7#H|׵~?wԮnﲲ el5篚5t`?y(\ WğpEy(\/o6vlןov xYi$]b+Ik6ubϫջ'p)u>ŋeFkZR/ȧr7~>_^~YrJqc}vyy9RY-s;wc]*wލq$ok< ݓ굳OY<)wI>&C1Cgm_;лW{yI>#1JǤ[k;u}ڠZ;8?Kyk1T+A+B]:|` :<\cZJz5?r)[`x1|,\L:&ɧ9L,Re+=^lVs!^|6֝:NONqځEȓ_2G~Gu:XmE=ptx ml3}3CSڧy 1Y&ꕉpc: 0^9.ZkL~MYGCwskLEӋg}z^6\2ok^YMci+'ϗ_ݻr yIÇePƯ'LJ:d;Kq-W^Σ7T>1^&3g6, ccvЏWTƬI 6cY}j Snޠ+իJcCZ SW1m`z3ttǜӼ _r\g fjŁחbCvs¾z~1i^.={krce_ʯے71>ǂǸ0Ϲi~W?Ǘ|z[/ϲf쟷^ku}[;e;ַY?z2V>x?{$i?硵^[keĸoO㭵v~Zu[{SNsuN1w|o/ZkxS?+7S;^6!'|zy,sr{ZkGwio2ܓZ;L{C{~~{ur:yn7|\ ~ 7z__߿_ݦ7m~`q?o??,]jAM>3,n~ ڔm.MR4?1?'d OsC1sC֑a1 u )7quQT쟯|gjL~{vzژ$zטȔ~Zks-1;sC%ZY\^=o/ZqB'/??^??,O&i~W쟿Zf:P"<?+C,|yZ?lןczqm M>?|^Ã2>fe{ʗ$z}9('G41ͦm}jĘkI=l]e}^ggg{V21t=IὸƈuHHݩ'֗u\{ry~Q_᭵ZrrtZn9_NսY_;n:|^G7^:7Y~F?֦sAmizOֽ~N}-yHػ{a| h4>89peO?{㚟yeZ\;ޱLW1}λkWZ6y :ֶaǤ1RײbW~.Fyn;fʭy8fӝKS}ܖ1[tǎyVƼM.\ڕc޷ r57kn&^x;eo,u/.ÿ/qu֑>xPsv^ﵜio]ٻo^ŸoᏟ|\Ÿ|32vEaض>2ý\g>}kuz5|:ҺNt~b?.~XneXgxpP'..sJq>$2z}k)?~R9w:js|s>P}_x~~ A쟿77˾O y篒~ߗyZ_t=󺖻}K?c̟ƿo}ʃz<̥ٛ^zu[kmDJ?5=av̺4gg}E]V/7|w=C1^>b4nc1Z{廳ĩC\ϏX~_Oemi\_d/o,\C<?+CP"!_޶m[._."ĕ::(_f]?ݻu\U+}2'r\kolVѹ࠾_z]ȃp-:Zk|Pxϳӳ2|~ ><\2q޽2Ǹz\}*G|}肋ηguޟ]絜uS6y<9~WxN6Z|Ym_kol_y>=O2q𠮇[k2qzN2hupnWJeryN7k9t163sWOh>PwZk=<**=sS^8t^-ziyW{ lC}=EoX.o_-c ?)Z?1;Y_|<[I^:O93SwXkvmxY6?h:#!t-:ZtqHAטr-/Uڝ2:Jjp:cg,|~̵ McR_۟ܗ>=02ƴװM%}_GD8Ku84ZVzү1o)߷4uΝ214fz־/.٤3 Fqd8qa` Oa1Mj\+;RK80Vz|T9%}>^L+Þ-92#})_:s؃oc.84+-ۘ,IcƉ㺤<3lm:]޻kr]v-{2}MrД1q3:ėuM9.cg쟟&)?ouc|]y(\ WğpEy(\//|/oxf~VAJ'K,gg[k _׃[kmXw-÷Wʯ2<]GFS\e24_jU%988*7mV_5^\\|L%טҵD̗γ< OpOTA*ܯMe2֫:[kTZen2lR\){V~Lڼn>+WE-bS eֶu9Z,BxxCx\vN?}cRʻmsrڳpڬӦKe9^NmmLj ɪT{$,u~Ǹ߽3Mx~[k?m_N/ĸf:S>9xN Wz M8E>,9t&N}>9msj2jghИ4zKC߷njKMy^SuuӞv}NLY&v1yΫ>1gS1cCvdy<xA~|\ìVy\=K>qnJi8پs'mE^q8qjS]㺉ƌ PݵY 퓻/c0:9żܘg~3S|s!._`Se쟷쟿giv[?wi Gk5Gmw2f~oi[2G~| qzY'OԞگگ~XU~>ke<׫?/aotVֽJ4|PN~9 }ü8é}/>ٺ{~k"egvhU|]exn|2~'c\H~'g| J~_WW߶~11&s5qӞ!燱~ewOTŸfaܘ)]sط~>{{0SHcYU{~^:ǔmonߖw}pB=|~۸uݼ OW7HژNZ? #~aj24&~s7Iy^Řsv,ncuzgnԯk\7׏O/#'<?+CP"!_8o_~yyYel6Zkժ Y~zz:::*7Mnc\)Oye'?qZzqݻw5OykobQW_tΫk _;'ex38? ZkykLb]jպ~&V!嶾=lWᴖM}^:=l٦UW*ۭ{Me;Yj^Kq~e%} O:>S\]N᳖ct{kHzV}o-mNu{z||J,k;w^2}}[k/|1:EW oU@ӵ>j=}^Hdj/y/;?ym6T }N5 }R?+ĨbX s;.aj;z}1dJk>Có뛤z*c;}x^ZRZ; M+Rꛄ/zv6ww?C1I O?M3zwut5:SEE\=cƌǦRaW5Ԙ|sCw^(Ucɯ1ߟΙ>NY;g~|yr߅)wS}j׵؅޵.X?w_q /-}G̍oL_t@%z}G z^;T߯D}gi0s8CTC1y2}gg٭4o7_k1tObTÍ+Nv+aisHb#F/gug֛o|Q 1_?Y=2wNq-NˈIgcBZ^ꫯQuǡ@uQ˰,\Gkxt]߃k/cx]u7ѮwWq1}1I7MZgM|oPc+}6fUoTv1n0fnh*lp?_E?YϿ˽~?iާ~e+_/=zzw߭WWc\P}_eqݻ__'O}k1k|1_Wԏ}r[ppT?+.j-LJ!|Kڛ>+=4?s?;ua#/.xkZͭs㝓{1;wyWb\^}N~A^xxv,Cз?Zko ecTmuQ?8哺 A}_=JOa燧3< cszϿ?\c\0Zzs09/ߦޘǏF{e{9Z~zoi}\:79'14kS?;\c\j<53=C>ꏣ0Fޓ?8&osOq9ex:}c:*z"=)zuΛLܦq}f|bc0/۳ WğpEy(\/o6v~~Bz32lPxk{>>>V2ɓ'eIݻe27ߌq\{֖fQbQoWu9JoEp:tL/io:O,R⭵G^+mla+]KzS6y?ՙ? wa}-MSMz6gb1C:FʯM_vJe/y^;1սL4zט|^vqYSڭYݦܻw O_O2_Wexoz]q>[駾j?yQE.\Wn;r}? *r?L<;qtש38Q5}9: jH~:}p_ppp:8?[.FRWVN4u= izA܄h޹zu;uZkz~y.w}$5òk>iOYMuͯGkZӗJ)cƤ?4鏩Ƙ2_^fS}"qTw6.eǽ.)]c;u|7.җT)]ڕE^1z,<e26m5I1u[,o jXR_y2WOӴɢ }d6o6WOQ>~]\= v ߗtToMDŽR)pO>Q}7TV~'2ow|V} ~L7Sryӭ ޷)ǜw!?|1ŽȮn})yL91xw s5pKᏱ!i?~v~ݭÇc\/?Y}^ϟǸҚ7_}Tߍq{Zw\_q=~ OЏl>{vB5uփᢎ+I^v?;8Hs׳ٳv3iJї<8?{>Ÿb?f+1N=N:Y(eYFo~ ߆Mܽ~El/Cq'w=锻vses]a?_vNߴS5ޖq]#E~=zTI~eooŸjJiaX91k;k~2EC:ћL _?uܦ}u]z:711'ys3;tϯnooh3U!n4qkÄe:^|WZo[fXChft쟿~쟿ڸ쟯{NeyenOK׌?+CP"<?+j>·m<&}ZY~zzZ_^^ƸR|/.c\ ??Νv[uqQ~1? ?}N{j:q.v+Ek b/ O,w?x9i:U~ܭ  q2与"ƵZ϶uor/ul9t 岾-6 rS\V:9秵ֶg:g#֛Ak2|vY~|,t)6yypXrZkOŢ.CE>pH7d6IwO?kM.V6\*)P&f:_G)S}+os8[.ksn~7v}ܿ1nסoꕎK}'T{ҳPG׫p-ɘrr8魵XŜL`Ue234|lYl4kӸY:vcJWzoVܮs_f齽Sw>=}4ƕ^SYt(BYs:̮k0e9)}]%)^2iug|wI}0]LƘt?[ß)}=IEe֘g~L]49cڧz>WzG~a+v019KSM6{~n0i^:gpK#\˘xZabGJc\\=FƵ[c9g׳z]wv1O Ɖ{O:&=i=lE+O͌;'?„ի#fO䏗җT)V78D>NΕ憆_,Ï2;G.܄^!zk}e1i_0׵܅)^ gqkS4/9ko2 c/c1~VfI} AOo㚅:^+םUO{{[WwäcvfEg``]< Is%ux/*2uO ]lSðC\u==u7 Oub\vBt.ߗaИ>*ÇZ; i֞IӳPw?u[kex61eq Me;|?/,e|oMWKߤ ׵7ti>/WR')1ӵ=W”FN%Hu_?_,uy _]#>=fx~;W_<[Sly}׾Z_\?8 {âOl:2J~,^ -4={JNczeyή6ۄgilL󚵐F~U]O,j0W?r{N7:Wy-ul6 ufS?'|ImzZkm6 eWRV|^|^ZkY}-A8"ᛐFx^|^S&Z'꨺eDzIúZkguYMy+1;w᯾ ?9֎2:z,uwc?V_^h޹nNgt7 g2ڡq1c?t*LS$b};&ǕqAg ^V~a>"׈O~{3U]G7چ:WSMv뵔l^i~:xPO|vqM3e5-T&Uq|s:9Ƙn=fճӿEs߇ǘF]4S>cwE\yM)Ck7Hc۽{1 :kxrz:Ճz̷T&ם) _W*=i3o\|oQ_\\cO)۴)ǜy̮xS?T|{mM2=܍SGG mNS="XuOWj=F7ڍ}oŸ>7'aӞ/siaEOב4b {^O5shyP={kmn^q[ֆ_˘5SzYntgqT|y~ԫ͈$C>ոE24_Y^"5f5_de|u\o}z/7>} ;: Yv^ڡxw} 3^}:2Lj|׹Lli~;s١Z HRWlymZ^{1|snkcT7TǬ^ex z>M?Q>U^_қBzeudoZkO>./u:ڽ{ީWqg{&Ogcf쟟LțoҞZz|.\|kyݻexom}rƹY}m۲nS}ud]:}lX r7cѽkк_ r^ߛ{|UMo(HsYuH'1Npݛ sg88x_O_?7yH쟿쟟5_t{zpP"<?+C,|yݴ ]oVef|j}Y:<<,×:KNOOc\ݿ[Ÿ|q-g׳O!|Ƹ6:/U}Zkmee}[8MLkLמs>x O,Ƶ99)S=|m2(٦mȯ,Ffa(^Y usZ.M({:PgD|QztpU]Vzi\/ΓZxZzUv2n]|yPo^Y;=+Y]f+ېu/.eZ;=O+)_ypzNօrW>xT_x;ƕlGu>v֖tOmʽu5ku\OsZ.G)צ+e'N6(z}ˋTǤ4Z}M̗^W1u>ȧ<'LOtIg(:o!|2ѝ GzIk.:#qo^춌犯q]c]\mʯ]=:73UeE 3e<ӈQed|?o ߷dOW^Qw>*2sa›oV~o`~P=}zKk}.?|A:O}=C ֝,4GuxZ'2j^]yz\ֶ^:nywUh"֝1A]tǴq`C ٵY2ПIco<ܯlw^{r\G![erjnxϏ2̏ޖuvv]˄ҷ'UZn4Nƒl_w¸0wH8W//ݓ1v1^\WSߧg7?;{nK]VMcz>Bm%a~[CM:R^ܩW׿2|𶷶/n|*Nog0ZkuJZZnӵt^11xuڼhy>2icsn WğpEy(\ Wd9=ybfej ic\ l6:==-Ï}|-e~2k2o: YZ_ĸ:|Y߃Qkw?(/W1YaZkugcrtr:y>WV3ELcz5 *.ht!|~鞤0}~WR}Z^>݋+u-=l_6iu^.f|Mz[W|~LeQv᯼j7(S=q|ts^udt\Vu} mvk>^^M!裺{Ÿ..>_W(NuYgXm-PO9N2㚅(c~ʓ:8~'/tVSC}}xL/1m:yR'X:2~|?^5CT˃.u"sܽ/~裓7/1mH{jۭhL?c81^\=CeT욖vSO[cٞҿmil& 4,y7q=8뎆5܍8$[Խomg>vҞ=ڧ^M`eWJexoMPSmZ]czu>qZ1./藉)ەlqTV{s?V<͵FwUbJmpZ{Zke ;ߎq}o0n&|M$udXo1K yix\iyHjy=Ϙ5ZR=5_-ƌeh̵Och&ZvޓҘ߿ocмUc䱤9ܦr7f,|]#&~`]8f bL\p[?_E?Yχ?Y/}۹q],Sxn[k2*_}0uN}߿_A/j-ϟ?/S./ݯZ]>K{Z A]V.CZkV_cvN[?|CƤ1f^\_߭%2]v6e|UڛМwkΫl/n4zѲ._1CVu<o³ o1'u}ob4nzW{c0yݖMSV̿4w|Gwt^|zꯔlժ!1ˋ GIcc^fCW>M.LLvkZbx+*erJI{nSxlq4wFz˾t>{uw<"ZF})CC){מٌL;G'11y>׏菖z8v|}}#{ҽT=w16s]k˥~8ƕN' qIN #ֻ^w֓궻wuZ^xڧ^ֶ&ggm6t,&zS^~cCSC\91YOǤ1sdWq.Ҧ6_S1L좎ꕯ}*5_dCzSZWǟĸ6Hs|J;N:[ `ڬӦ.jZpttj֛_;b|L+iak[kmcGxYygmK*^1 w*wc6OcD>bjw~Z yҝjOl,7󺭝ɳ126߅1sϿ6c]woV.-{0h~o293cKzs^~kLݙηw~rߓ9ט}cT^XҶ0H{rrIb3ݞr<ӸS;6?iYX}AJ&һơ}^$=cf|*ߩ<ڳg:eXR)NON4ݛJpjk7G OIeמ oo9ٍa쟿zcպ͎pEy(\ WğYfiϞX1yf*/c\gggeEzZe-g1gguڭZrn}@d2WӜ'?+7-&|6q8qmf2>Q+dj][k7:|UǏ?euq6\*겾Ɣ_)Z{~VZ,ݗͶNcB;A㓓AT]&Nyi~כ:[],a̵ڽ{m(Nm岮W/=VZ{4f@jS1y98|6=Y#r|Oι0O}\,PNZkaK?1}C6kϑ7F%1y"9_WcTO懋k`Mx șs߅uyb*_]{k|nC:^{T_ZKEvrsmN~+A5=4z}keb1kOy0^kO,+ơ|]~12nLa) k?{WݞrҼ\K zOc߿bz,ǻ*7}6|K{Ǥ|p#c NvqY'lliqfasM}L\zNǤ6-okD7I3+ukۻ'QCc 8c䝘6)seO ;uƶSceo_=ǤZDϿe?)םu2\,C=s^w_iLrv_zGv1<sOvbut\כ^WCĻZ 04e 75_de|?oK6ߧguv2Νz/.~΁st:xo$V j }OIYŻ?:g.1NTSt Hﮭ6&tAsqݰ;}^qYb/jݩ@a:P׷:]i>NӤo4?־ӗe? :5JR>Nm(IzHڭ 6k앯+OĤx){q^=i3漦?o7+uA^Zkm^ӏơEݝJŲz&簇uFEXZ5a_)1:1O>% ˻>!B\wsVaQ'gc\p~E2f\*qZxsܦ1]~K{4\֔fy(\ WğpEy(\ a&~6÷NZJq-ut.]\? ?<~zz^?y Gވq}e ~~zvZv|~ b\.᯽j~,uptTϗ5nSl_ernŪY}/׹-2|qP_ly0.2uka}^Yxf3< A}|-u9՗ZE(.hI]W\S:Sߡf1+{1_ny%_Ko>:=+ݘ0}1lpY':ϯu,ÜqgWoSƸMc'xG쥓ΫWƼ _G)Oܓzɢ3W{N==3?1eŖ):=Lµ;s/rO6k)]gCsrLM݌akz.Ou%)XYZ;׽ãzNe~ =1}O1v5.}ߗʘ븮6SmzۧTV;.wv>`(_d쟷쟯?"p瓗w.l: únyi&g %.91.^;?(#|ɤ {#r>:|̾k){S};6 l;kڢE+ݝ2~$1i)sCwmgSZ/F.:_u6aϺims_?׵LLq?t]ӷ~쟷Ÿ쟿 ^|oex?ggrYs]^^Ƹw]H,Zܗ:f_.kLkL~õ,xUYM]:ߘFkW^)퟿~Ɯ.]\ON}QkFOal9Y~^/GaSZZk SO s? S#~=O,:yݥ6x~ӬB7ü=kyڅ} ;}??]:Wym*+MvJ\C<?+CP"a_l!Iv2|'''up!`yT߽s/FټΓZ\<;8qkw2ǟĸ}PrZ_: O׾j|Qeɝ:^N'yƣ2|ɶ2'O:W2r^osַN߿Z;lw܉qݿ_^)×P49Q]&RYybQ^\ܥ:rkڎ*tLt[km^$l4u|WhS~_l/J1nS1|#]g֡35MrWkP&C\<u}k|~:Mۅm0fΘ;<v6]I?YN i1~D[ww*?T\=^亨>j\V<"1\,o}AouKb Z[Ayu-nԗsExyڅ]ה4>fh\Sההl6ukhNMl·m&C{}.]\sliub^ n/zebXLk6fkwgJqy[Omp>&7ZA27=}1R}?W ie_kzٞ>׶ lFwލq=/='1g Q1F6[ם:gہ{NF|i N7C^GǾ]w>Ӹ;. =3]T2E]o}ׅLp?_hg?o e|* +^ikwg|wUZZ[,tE_6|,u;yG%8r9.2E*φ׬ϪOĔ{F{q  pzJwsh\+NqCDJ;,TxSݗNz_~QXu۾'糮6}wgo˚1??/j7?rvV:{օSջrXy1bJL IYsCǫZsϿƔ]ww*u|ZWЋk_~mڈ6e`[+>0ݝzӔOz?5o°~740MXZ<{N#Z8<=|RջMooaߖhc|־mp+?+CP"<rȗ7M{ lp ǜejqOkIZkGeqXlOuqQ~q]l:Z\?Zk)Ï-o:z[,g2Rr?[|txquykYo:絭ӟ/=8J\kZ5ž6u>: Ç{ Jcee>TȔA}O&?mnX}]óHcB%ݞŸC3⼒8y<_7|g|[nOhy岾' y5 2j1齲ǤONr} W?{V\=Nu:gS.ӥ=2e:EcrkxxgkQC#kKchya:ꌥİr4ǔ3!>3>Ϙvsh\cJќ"&m&kGk7mp̏4ToܮF+`'SZ}Y޺dIkYM{7u]xrgVJ}˺>Xs=tKt$⺓6`1&޹ƘF`ޓ1sҙƬu#^B,Ϗ%ܫ{}^}E(_Ngy6>U.ε_> LOkRxky=8?eL[Loqx\LS,oN~7b\=*S~]N=[϶t^9S(?:sC^^~M3^8}3e`d>]ekȟpEy(\ WğY?ۋEbA-cjev Gm(|R:uxx\)}JI"Ͷ:Ÿ12|)_Y}ۖ\:sܽ_e`YIkݹ_{r/u~}_u~-S eN+<"?y -g̷XPMfuYlZkuz];'b\,|R"Ƶ UkT}g9dN.)&\jc,))1ft5cV>&)_bJy~^Vr![붣tzgՑ!hyXשv~^/e>qu}6g)4fo7^X۶'ynwL,ʾ1IerhyȈvS߇;޷{uKen2ћǸfGuw.fikaldރ{Y2ϲ+<^clSҘڔ|]5eN;&qژ|4kKvQDS1vQVH;?9dpzc4NєqT~?UͿ/iw)X Na)u꜡C ctĨ!~}~Nbx}? grKc>l# /CRwrzw?ڎO+ϱ$c-aKzxqQϥmZnuga7~?+=7?Nzzٳg1uxN oZi ݾAl=5"z~WھuoƼas-Nާ5V 0Müv11}dh~ʱ1=Ƶqݦy}{춬y̸\?Eϗ쟯ퟯӷ쟯ݦԝW{2Νn }V(yl~^gby\ ?ĘҘvG q2[:<շ=kzl.# }3V۰$>q]w15a|]}0竴ퟟaZ({./:3>r/(fƜW ;>G.љ3<ƸNN9ao]g~x?vTl&t839/ϻLo'Oo>Ϟ}§?k'?P M[~d:8sib]ѝ quֽ}em?ϋnuf4=e:o}Ϗn~-b<?+CP"!_\ڻ{𣣣xLl6i\^ƸuX,2_ޝAq<| :Z{keOMi~N~r$Ƶ]m~ 8q-<~pAN^}jNތqcOY(^Mk 8pv}:6c:&}ֶ&r?eN(z*![Rb._eE}NטW=yXePݷTEwnotiίԦV1vwtMm]/}*6 ]>=+I*)!{f-T۾Sev3:@?V;;;:o2k_Fw2.=C龤k߶^߁=hG]кp7d $Z?$]4Z<瘏[l2О}'3<15&~ov:}uq|"v4r\C)Juwu'K35NiyO-҈46 1v_C6=s͈kz>:&Z?O1|wtq/_tuјmy<SMnui~zLV568FɗQ#S!Je|W}}#F>V} .ޡ`9tknS%)T{qS]4MiR=Iq8tz sxS3ؔ<)r֮.P$k\ZTec_o?>~~67p.ߧ罺Nj&5W!>Ý<6nmD9Q$sF=9iu2-ԝ6kZtqiK2 _y C2exTZ^:>q~_SO纮Ii^mzWپԽկkǷ73;tg{3|~^WoܤһCqoq$׸>60޵߻w rldyq]_\CRZk˰fg#c#c J ^ZT&?_qof~g֛HxzloGncyXZka:Ǹޠٳ2^q]7Mo~ퟟ"]/nǟpEy(\ Wd9ϼ~x̝;wbQ!Zk ?::l2|>Ow^'''ek<88-Çꫯ4mͦ2qf)s}ꬥ:)8e&ޓZ?Kh\1z'Wj6G yMe|}?] ?:}$>CEy<^O0FBRB;1ƜnƐvL'BiI^ʖ #pȮډiKI}Z ^DEn;F|^c޹cǛҔ4EYimھ>9?;DSqC~z~ѵI{ /ܳ0n}-T:+' 6qN38yݻabNx9xwلqN,+zLǤ4}1桦cecÄayDŽ ͽ+?*5m{rhUʗH/sR߫CYb_jhxkvGzw!KLM]lS{5]kh>ͱ&cĔ)iIsӕ}JkZIo-&c1wס ԞƼ~9֌iϓDZ>{^u:_Eg {֙Z&W*aN?qVyXe;ǃEαUzr~ݴ:=Ƙ5KCՔ51%{sʸ^w]L^Ӧyv>du \'쟯Ұb|??bS~/B;鉥'̯1iΈ5* Skl[WcMd>pKR1FFq6thR>:zx}Iw~vp{۟X; g>ڼsg}3B!J~XÓz>27燹i٦d0?쟷?_~y9fR`4qz#WmZ;?1w<'2ͯ]h-ϓ1{ ;j^L{.: 篟] ~sry@xqU>=۽v1 uK;ӂgqn{xyN}aדּ7Lh',\Ax~ ?}VrN0YΚ:#0֐ޚek C^uDzW8o~eM?2i u,z 燱E%{쟿~쟿[pEy(\ WğY{_c/oxLﳡf$?賫gٔ)狃W:fhO>FY6 E\םO_8*?kzwc~.tS/7vISKgT~ lYtƿ*,IzR<=-wƥ?f\=4979i1޻MH}egynd3>yu46_C+}֫zo>-an3txOBlqkmWOs9{wKC#4cjmtLzY(G zC;q6eN_Ӗ|sN8f\^MyO؞oK{q szy}^MƘczey -փ^mש 5=.6)/ÃaH#$\.|*s%FynVؗ2`5Ф>z~k2~t>bF*kӢӽ#6 _}e&ng˺Mo=ܬG}܅nOTisvqw.QzOٕ1cס_Cǟ,ۋθE|~>nj;Nx^.^Ɛ|&}7ن:[q]N83P>[5Ӎ쌳,b>&šy`~x=ǻHïp8&WRcz}8b:_\\ĸݻW/uNXTkD6/YcSrEզmW71 ާg绋y)3Ƥ3e\6Yhs.+L#Ng&cK }16~6cR+._۴;uH#+9:X9Ze&m5vk;:y얯KG#ޝ”zWZkxWrsTO# bc{hgoQݜ59u}앻]so⦙i q?_?_c??og??~$d1^UN`>t5moH2$ngD>K;M4&.Q _[꼘Fg}~l}r;g Tg 9Ur*\vASZtkS]8 }yg":\y2ga쟯;}q?_~eXo }`|)Q͔ۧi"S³2 ܻw'2<ݯxl*/iONܧ| 51B_\{}”i<&Y 篟}A;_0Aagj7)2a.Ge\Ǭ.Bqvu;xnݿ=?^ JƬWJi=M?]ݴ}m쟿~??]ퟟ&" <?+CP")"fnWN/f3(1Jtc^c,W^c.׬k0Q5su40)޿ڻaטss鱏8qijE*U%6"$H꛾ UjJH RT$iSŠbf;S{˜A;c=\s>c#{vzZ{{vVַUMo=SRxA51>OϺ꩖X5 F#SނzZ*%%/K+S&i&|Q~l䊤mgj}.jмJ kY\b>v2_ρd\x4G}=W^ż/UدQ:n=s1UjÇc^ܧ1nk[csd..o8q^;ZZLkϛZ*v9Lmq:ۑ7tM1Zb^{دTWy^W?eԳ\׿ߎ9g[pOI3={,nq}j>i)6&=s;yʥfd,82>KueS}/k ~ټz=42ϲ5w{|s(ʼn}4tmn߮KK$3ۯ @|(C|_>3}̌}՗jO8kf?v$FD k|8ѶKqnMS⅓|ç{8wKɯ2Zb+cOS=-BXnGUS~mc>Uojq+o/~22FY?o~KK12!z3Ư?b^On+tMRڈojԗ/_V>~繺ǨRǏ?S]-?~~^Mo͑}h ׷%]XvX/'x٨Ms 8~gm;_RJyE5߯_???y]}y=}2fu=Vɣs<[5ZKU`HO5?W?{Mon#~u_ȥ{ߨ`%<n?[CP%<nYϗc]Ǯk٬Wo6ko9Kl˶wM^Y16W>[fr6>R'y,#s_ff^K+fmF~%kyhvb 3齇nnng_~5T߯Tǩ}8_IYfӺe4jA&FS Y@>C==5g&l})e޳=v*buzkS_ܟT0v\{>I;MYwiWmsM3>󞛭srlG!R7HV3Gz{n>V>ڢ%lowi/QZfXի͇~XMַUMwrs$W78yt/.Ѓb^ 9C|LDV1m6\uYcKUxv8չds2b\H8F8U.alw%NϧR lNǼoVӟ^ԟOWy6 yZJ>/Cc~H~}ρx94gџyПn+N܄]kN5u;k6mZT oS&Ff_}uN{-i}bd/֛^Yx޻;Ekt]3&}y??rn^#ZnKϯYO4~쬾>Ѽ;~1ҹou }5T~~UPꯆwgƒ&;?xO8u^I)lvcIǘS;XJ){MNFқρ}_5S}GF?=oq?_'~F|6o9~~X!?JmH ҁݵ8o~ɟy|[u"wGbru #ڇ?ȿ m>}ZMoż?~.~n9gɫ9gsk6b[oOk =y 4_5 C^12Q&=S}$??zToӗ?;\^yWgEq.c{G1J裘שϯif}T[_|Oͩkw??M?ş-pKy( c)7ׇڗ[pl6jvO5gSK>U~A9t?wzuL~Kl.lm̼zYGo-dGWÝϦ+wL}5}j[41dc11פy~m:_z tMzΖR...Bqb^ۿ(;p+Kدx*~'cR=x 43vq >,-q??j_\|89={Y=]33C)̰=3C\~\X({DꛜmTX-ǟoGC/0O[J)7ahּc)܏3k{vy5t_Xmz~o?v msyy7ODCc޺qny5>ښ6SgZmz`:zHoxTmp~aBp{wff.u-UMf$wR#ǁ{Y_k#~'߫+_ϷRo{տϛz29yA+-{ż3,C>[iվcV0]s}oʍ{ߍS&SW4~]{fdr׫{nℭ8T׶` S1{#~M??yYpo??Ҧ:לJki.QGڜ4߶{cw8Jk5sy/~l#)Dާyub$Mx9 WJ܌keĸtw?gFի;>QMAK|?u$~N|ۼ^xDfϷ+ޚ{cUO׾VM׿UF)\_1H}F S8?åjz]Ks^k+$43~>7ښMi٦1.Eci>77 bRρ]8](;P߯áޏX*~?jzzRjzz>z8=Ԉ>qezVrE|o?6ϿX?[CP%<nY׏e߿l6v[ԑMV^iv]5}yt^Cw^h&o{}uލc+{kWl_k_}r1Ru3pkssf^v7X-Z-8|ڄPr<~RJل~P9t^Ru9LAq6lt?4#5,~y,K\~Cz>+&W_>Tx1Ay~[6Wf޼R1WcLZ2R|g96Y56RnZeS%36ix^KRkϧz8k?l}vAkjb _zUM{ļ%fa}jh [vZO?kI,k>#;;,CL\gJϚs>xzNs~1FZIt7Hϡ˗/c^[]MWZM4||F8zG!}C@ןi'>}ZMQxS+6a]f䝡kP)}n@[,`K.Z]SKkNݯ5-uϧr}d3p7GŸҚg ¡wh?f:cY9UKԉ'C1 65#~N|3}y#ϋq|ό鮽Sh R?zf_j=_ h|AiwV'BuC}9;k#ona!v;kjM/ŋoV*uKϱ[6n׉k?="s+O+i>z6#ϔ?b^jOOTg65uu{?Ϗcn;bbϫ513~~/S5^ lwPB^WMŮ{;i`:ӟ<<ɓjE[V5eq8Jկ^jݏxe^>:4_Ƽ?Zj'>Flӈ+[v~I|v?_'~Oo)pby( ğ-pKy(ܒ/77M&}Wޯc6hI*d2znYM6M&nP>/su?x+-3}븶%qfk當ٮ|Y:%3SmxB=g8Y TMeCkߏ{%}3M;o9IcjYfw).C^q5엝j-;rb!F9)cRG\jrh6ƱDzB^]oRǨ34vݮ~^RzWoKc7{ylջ縷~|gJ)zl~[M=1TǏL8֞?KT&ϟ; o|4sMeZNYF9z5f*"y1O?Oj}}^)˟mcVMWRMQ*!w~~v^O=]:H2o[;뎮x/j2)uk6 kUsǙפU~%C -߱arZso5 Fќ7rsO?G|V67p?TxS߁YOu[F!=m^CٞzfOagywKI:ǭa{i{=R}kqgjmѤqe]Q*wuHz8c|U5;1/})c~$~^&~n=j$43~~fwSJ)WWc$]>b^O鮲[~qwm[v&]|B);tgDz0zsommZglmr&u+=nn{??[MnԯV}Iu kcåOk!܏c7 k)~~M>|撖 ~^m2#~M |!<n?[CP%g}_?~Ff[l}OkqRnǘW,ђWylyS^s.MگֱmJدF^Y~ܦz7RP&:~wͩHK_FciGo^Cv-e̖ڼF5q~PN&_EJ/.}R<̱H^iӛy5sF_,Rl]Y~`M{y,cxsiұ\tMo93t~GiGW˥V]ʫW|||֍uݭcmZ5_}c:jb^=h_Y8myk~¹oqJubj5wޢU6}y{~x>FjYwyyn6[sadlĻK,1RF_^ubݫw::|om4 'Չ(4>&Swߋy}їg5^?Ǫ[ބG)sYJk0CeeDsM/}TMaށζ; ױyk[]:2Yлztiy%^-ٗZLrfi,ad~qz7"c|W?ul͘]N?>?S=F(>i>X|Z _/=^kΌ9_?MgLeڤ=NJp5Ini|Zkruu[kt1N+{K݆ڂIϮ4mi~Ӹv|I5>S6$~ }e,Eϋ6ϯۈVي Y;vD{~a5?y}|;/A|w*.O]ݱk }k0C#2u"\~UOq֟񼚾v_[1_ݍ8k|sUr:B 7a{n=tbS?~Bz㮕/~^mZ&B<n?[CP%g=_vٳwHl6qYkx;y)!ƹ?lC{h-{6IJ}zەk8ޝIf_49['Zy|nߖۜ5ۖͦNPJy9o]a5"uqQ,3R1EWﱴS^SMb_|3׆F#3]ױu{A5U^~UFk-.I6 t^Z*ʙ}9^ ϚƘ>Fn5)e=O򸮵Mw1Y\ uQWҹL5oMV^龏>y2w~e<Fgӫ;V&Ru5uU|ż3{.6~_=:4ƈЮv7*sm_Kǟ6iͅa2kUMxiRCi:ϛcЏxw~9R[MG2n:ԕ8ucmPo=[bV滶c2ݭ>qK;%#29NLCB1K<'Sx3\+i|>pfֻmFƎ#f3܏um^{$~~N^Ͽ.~J!~^֮_wͩϧ{!.6WwJǘe{+?Nu=td/կ;|}~9Կ[i}~ gϞżRx^ϯgؗ_Jﱈ덟m~Ykh5y8RJل<+yRJ9OyF qRJ﫦#?vf9?C|/~^|??e?ß-pKy( ğ-9lof.xdx9*co2X5>KWxtܙJ2WBBtB{!AƝX'}(cP+6ǛCƨ<=viz{ǻͱX&__^ż.^UӏOT[+!<}=':>یg̛T9kZbصeyYr"k`o:~VrPF[>s*5<;[\z)Ryӧ񳚑cگGѪgUiջT{KosZu%m3K}ܙvug1m[sٵN\]|wPv&Pcț0]Զ7c(&կ3嘎qm]֠e 4oҚ8Dצ6s\9NGyչfFo۷חԏ܆ν5?HRJ1{9-Ckimh`9'M6Kگ]}^>J㤗/^T?胘׋W__(敎?Ic_]m}c?CN}RJGWZǒʩZV:_z>w7f>f3,ku_"26oZ,PH_}je&HlszJY-9Ƶ,krY{??ߕ7#~~=+>ϯ5/}_;f>[.]|[Kկ5BH>>؈TӻCΫ1+r-wb{o7vߥE);S߯{ga>o޻VO5~~m#_<}6mws?&(?~~ 󒈟Vەƕ>mur~̼?~\M㏫_Wc^_|YMz,VK^șks:td#f5~y]\o1.?y&uO~[;~_r5~>_J)zjn4>+RnBU/uh']ˣz~\߆5|?>?zϟ}?/~u pKy( ğ-9px3m/8ms<JڄP;)%1R/cmM}!y3Ywu,.צ|$]JֱҪK?"w7iy%#wV]IվmFl;Wױ92Ͷ~,~=Jx~Iz֦Z eRXFIw^:v#©EjmNf<\*?1kVeTk֫kñoznٮ>ۇi)Y՟7771y5՗˗/׈~>~cf>^2{c>3ۉ%|kS$s(=J;;=k jz̷W[uꪚ>2ϒkl.ՉǘiKuϺ4s Fۑ~w.TK)>/r5}ļ0x&~bk DWjo}Z7|zW-ǾU~c XݤS?xS^=ۥwyii/2ׇ&{_J~;җZཨSzN{:5b5rc_ܭq]z ۅg@oTKWZmqpk=86 ~Me"~7O߱:lmkN5~{^5ծMc;ٶm&x&0evy:y#k湯܊苔okEN{6k.wxG~]2Z{_H_<ǖY5RJyw_ת)~~+?yϽAϋ׉?==Z|ozIkiԒ~3-YR3)ׇ~XM}eڏܮUhq鼤ryyYMqw^3ݵ%,未q<͡ۼ~Q.0مũM}PJ)Y8u+uqY>__uB21u"E ?_y]3!1"GR١~?ơOuY|b^oC38?gu.s#~9y[֬y?[CP%<nYϗc*`t5xJݦ7ͦrfg2n3>m`XWˮP?m0u1Rm[cz3K]bfY2\葉cә>eukدMv/]y.oGC׼r:D.r±z%YqO̼}pg>3%1H\_Tw7jËq$иTY5iٗ~oefkn~~1kYWsߚgi1,KʸfVV5>jGRr"~y]\5MR9777ZN+e}ƽRiVNymF:?䳚9/6s3gp΢א^cz?QHHo5ףG,;<1OJ>'s*{~|Ȝ.]Fp8%ջro&=gm>je=R=կp[>=Ώa2xhKmNz+.C}s9{?1 XJ)Mh™9c1m;6:H^3՗x/jwKSTߥO-a8s4euбy1\Z^bv滣3jsk??o޼?&g/~v˞>{ܧ55X//W[Ϻ3Zg#޻v>>Zۤ^kz]ޯ%}Xd D?n[8}{Gbr?}RM8cy杇w¸uW5gk}~'6ɚk=RfN>e #~ 7}yk{KF}JOm})gˆt޷}^];ώxV,1Oq]98sK6__yCn?i?}\9wx^>}K7ӥ_iVJz}y/7Vz}wc^%ⓗǰIDATZ3~gRJ::M󾡮4]O: V9Ax s!~~2~l o?ߗ1?yNN-y( ğ-pKy(ܒ/r}}FfۤzK)eH^1~֛W6cypme1KV?쳚ֵ:t eMH/ 5~t8c[܏5~-rU2_yfjk_8Ƶ508o5Ntn6eg#ė c1Ww5 &}֎cOSs(hnWMدTx'14G*g].礔R...uoXe4%}/яke,5I,{4I:C cƹO>=<8y՟[]RyMcn7Eon>U[O)%1ŋjc^ijzJTsD9V;Z0v_^wmjc.#~rk1yU5=z[pyMLZW:t[ρc8_#3vU_&y>nۉkfm_[^faF\̜7MM*;yf^?K=Ǽ_څmqJۅqhzix$Կyy+@z<1w>szjYkfqsp?m=}x }zlx}dwf9{l3k5XzZ~y_k:/5LԚNҫ9SםSC[=d䚌fE3 ]Kۜj>Ww}_2֎W?Y^L*~~EgO>[JyzTG$F>z߽Mka+sZu7__a94׾U'1r ݗ-c=Ƨ~ZMW뷪~[?^My?_b^_WeD=~>y%kG-w-}2#~B|5]ϋ?5>?q5NcznR[.%/W&i=եVr)%r5>p.1j\[DMH^Ous*'ߎy}Q}nѣ;g>{;T/_zcGJ1ُN5~uR> q[?_9{6}M'}7x~Rc{oEZ8ձ/^+>+RϿN5~W-CP%<n?[rM)vwh>nzMoos [b^Dzy|w.C*hWhg)}1~35}zߛJCJ*{湟)k2bfj#{}}#lZy}ώciG_)lY___U.b^_'|5#>>krgG.MZcYfy C{03u}i ڜ]wvq_1'ᳫz|"aqs)MR#kiso<_-}>ye=ImN=؝՟C1u)z6[G9]:U\%auLcF #g9=fXo7[?bǙkS# sS:'fL}/Ǽ={VMOTŘ׿pZwc׳gVUIk*iZ,$c~C}oTc^gaj_/,UJ)c}NXhC7764ڛSiCWS|W}ZMuBm?/~ ~_|/>;5&~׼Xw~کdu: ͘Wӟ3rϯL+?߽MDKo~]8A<n?[CP%g=_ޔM9]tp<_g:=6F^KH+}uyKܧkҺV v]E4m}&Ի(p8!Ko2Zv~ YoI*#m#|6vXj{^vmk.#qN߶_ͺ(W:777y}K_oϔM:ʡ]H|eU7>[⾟yMRcLL~UM_ ul[,Ęgv}g(e8xtXo9K%HLwϼ|N\kr~~^MxP_8;=?yrs]MoC|6:|?>{7iI8Օ5?3l^~?ݯ5FLF{a޻8rXX6ro9R~5PwD'`8[/Q~tswM#DW2{XWaRJWw~sSߦuo1-q㤙yf>g?%}M}M}uO_k#n\YS?ldžrF^)V?WclWjطb^Ϟ<yT{z^y/coQ:t Rk}wmKcm&/y&s8m}43VԚk2/_3#֬-eu\}d%3RJ94c9igsz4З\{e\YOI֦t,KcYfC]!~>o?G|k}_}a5`G׷=%|{fceN{^War8K<_X5>DPN5qDj[:n'?jzyqzϟ?}rk[/#~4N$~~o?i5]9|Tk?yyYMojmefڮ?.#=S٥땮oާmFڢ%I)ҹL>s׳vϿi\M G5u_Vo U#.s!.x{V?/g> A޵[J)_'?sץ^v!vlq~Jc9_m5?{(oZ{< ~>]??x?ß-pKy( ğ-9fSv>otT6c?_]=}{y~!lmZ)ce45+Tf(>M_/V^3sWky9|H~8 o3rgcf]]u%m3Z<,?E#PҺSۃFZv+cl}r\tv_*<{v~l9uWLmpM<93ۻvWL潝>i}X4>Ru}|v"I=s TW_zz|?Su?<8;oB۽Tlf9/[J>/3ͼ%fC%K\RF)Iwgg)> ɓj'(51/_vߚK>ׯM˔R^^~u>ƏCXHOUuu?~e]Xا>^c sB񛸞RnW?R`ǴΕ|nsv׽Dz ?~~5hUI۴VzB77ŐWy~'!M =?2yLGk 7]t)lӺѾsӷ&Xϙf?il[clWa֚Fߩa~vC=jrƨk[>靟XjL{hNc?}JRJyOKIqǣ^ /W_1_S{j~)mZLՙjjx^J'oc~1cx܄| uٓwKx3^Rw7Ҧ1>^1̍lBwl>cƨ+TCShµZ'Y5R~:#>k25,~݈Yur8Ln\KJI:PFЯ;矚Ǒ޷H4&6镰m~Ѥ>i~kRlz_;u1Șks~终k&})C|}_}O>xx/ YZsR}v{,).%ާ81w|^ExU6buӖ4LJCֽ}Hc4k# )= 1!A*_M}oļ~Ww,{#VJ)pCի;ff!kw&~}y7P7?_#~M׋_U~e5ަg]Z/lo#JucLc?ފJ1E g =Sf)C:<7/q)N~?\^? žL_[z'?_/j3x٣jzmԭM}xg1uBput5W((z_R]?|\MOc^P~|;۩uOFcڦ_}ت-Ly5}}FѝY%t^.,Ni~hѷ_s!eq)ן)~Ø1ÇOe`n'Ϙi渽ٿ&ͿryWI-#֘7čӱ:1k?% w6cRF)6tfw54[gjγtbjg~Y~SߠqJuLc1ƹƺIf}cR9~HRJ9PoZ7~7'}s}M~{k}NzSǛ G&OWC㙶 9Nѣz˘WW=?fΛmگ#C{>:\>}'Zy|~0K)qҏ|U?_ct0[J)0orc-g(OfGsY5o>j:jzk6I}?xsQԧg>wYJ)c 1?{_җc^?&{|[|_ Tu竟m'~|cJRJϪi '=75)%3a¬Ը2]W#F.s^W_gϞUӯ}瓑vϷuV/gO~;uuYo?}X?ׯ<]R1?ȳ_|ݪ_a Ķķ~kZc9TKyfVw}UW^ڕ6Su;aǎ=ޤsYW*:}<35+KgMFjgr ޜݯ NǑ6j?90?y|||]Me캾_m\yRJ?~N5}l3kns8g麴edbĚ㸋DRDZļIj[c4vK]/?jǏc^>էSz)ןwi/^ļzZ>nGy_ן>QJ/o{Oɭ4TM#'O40~O5=1Gmq@3yǼ6pccSwnrl֯9eRvDsE)xh:\ϟM>zVO<|9'c$y-> ZuѴeYP{?sՐ;gd,z:][oc&1s?sgd~ m)>޳ޯcyLԿPM?WMoLJC}bS~|W.;=;U0Y]>Ȼk;#O|%??OkO}}v)C&C6*cZl?N3⢚޻zZ5~uߏ]RJنqZw[ZAPNfدHlq3MMW:+RGWzwwVϷ{16}Y5c^~j_[qn]$~v~L?_!~>"~/)&ϿzU:sef,k6Krs֩62[)RB`;;oϿTO-%~%lj /~M ?W/e}n7QrR^zq}R>ﯖ~m 0mcLo̶ڂ0ϲc׍9wyk׿TM?;R{s9WWy`[1gsxKUSu_)m ~>l+??}_f-CP%<n?[rͦfU@xʧL37i>Km.q[ߟyO~5~Ját,sһRT^8ά3G}6Jǵۏ{Y&vmw6F+܅}u5x8a]{ 5D Oz&ݗ`6*a7tuX֧:Ԫwݮ_]]ż]S{k?o³ɓ'9:o/yMF ֻ_Gƛ229v̱ͩ5-1O*޷Mc)GU/..1DîK)]e&Vٽx~?k///c^i,˗/c^}Y5իWֹO푹ni _K͡3eMk?7['[ϫy\ٿ_c}z̡\faeӘ=Sۜi9e֜{& df=2o69װfx9q{!bC},Ƽp6J}hoӺ`Oi^r&IfW鯮u|9M 9#w%tgc|?5cm/%~,6ܵ.S{3)K!Xb4!a}jZSGIWN|w9ϋϋ֎y??o޼W+O}ݚV_*=7x3ۉt.6Z,qߥ[J?eIk5ͺv Ƹ.֐__x.~~=K}bGOo#~+u=w(k3?[CP%<n?[rMl6oI3Wm_3e2FʟW5f3r^s*{_pfs6K礕Wo9cmA;MfZ:'3O#z5c_qx}rv&6#Y5[ϼ-zbD[s+@oje]Q?M/~_M?ӹjv):^]]Uw]k_϶onn6GkZJqd+mӺV}HD|ֳHzkGmqH[Ikߧ]o^y_o6aN!*b^JY~78f=^Ǚ׷"uQH֓~$kŽ59n1scިBW>uyY}]J)_WrAFǹJۄMuVZC,g޻OSo9T@kWW1}wsZXޅ5տ~=us ]ynuzzkxLy Gs|5Xκ|Y?s.|D*ukl ~o;ۉu8C2s>>F!6kj;t1Q:.~Y"D|-]|>)~Tݵ}ז1O+iTxV S=:T_Fb_Xz7:OkEևmұצPv-]-O,'>U)g}VM~z5c&KkkS_H??b=?/~~ 6koC|jGR[ƂG憒%##R?~f L34Yw+Ʃ7:i9vgت-|?_I_9~{+<>O #ki777[5c︮QW6a/*ޟݭ܏{Q5ws9܏Mf_Y.6y=&oB7Q}AHqc}q?G|9poP%<n?[C}XcktNe{o9á%}z5SگW1n?S^)}$y6fIukH8%{)ϔͬ+34D3Rv:~]e1*T-6 mBfc/ިC- -'N%W'4yBf߼)QH&vupSMyԷq3%:ƴ_m{;[_8WݯFz6c~-16rF@֜BSOV_<ᅦ~~Oy51>տߪ)i) ]Vyܔ7w8}~l]]]ż>Ϫ7\+=_h>f\Y۞/o>vL~t1M:#/kl# t}\S}/-C;tGt)ggo<=td}\ml]sw8xn\3ظK̡lfg\R?C|7?χtaW8/bwLɽFئR5NecSlr6Zzmz+@Bi1uNFz*1ׯD>Rx_s}[qkڃt?n/|WoƼzc[=_?\'?/~7?ͱ>Omz6Y=)cSx>ḵ̵O+Y{,Y6~\_gϟ%f5}1_?}C+W0mc 1qzlTJh6r׿?llߏ9qc`{d5G{>mY|~d:_m>gT~k}o|4=[e]ͽ{ˎχHcϞ?j57~Wef<] X/V_y=z\MOky6w R+̳=شudǻon=%r*?yxw4|>;3|~N!j{?3ams3bzcA}zh}&~ns#~n6箹kwy1ŝKH6zf^ʹ6]:V9\1⋚qm&{/wYŸ1v?pS~U5Qx=_וļ./?{;)N# 3C|_^>䕈??zX>ϧ6zΧqRz6c&#RZ0ޑycZ97ǖt,~7]'Sݯܵ^+K-u~ F3 1Fݶ9y ZGoWwy7N/~}~wQ_;9 [|GYM?zyrמ-$~~NC|cAu߂{̟-pKy( ğ-9lox[l66y|p8tmS;#K*c|[j6#y[en+]ǘ13,wm{~կ{ӺK9Kԕ2 <~Q)<|~yyY/f^]}}ųgoJ>6PjVu8:ni&ts܁޼&kqz =Ygֻc|u}߄"t!_~j塞^J)mPWJ)eWղ9dk--%VGnidƮ}|\NumkNϚ;qvv yI}x[Som#ki3z-E|/>R募S̼NuMBw~~WՕz_H?beJ)ɓwWB>GiW6=V^)Ji-U1'XAKkӻحgǡ=h;cxm);V;knsoxֵ~ߎy]\ԟ)f'idd!~~%~L|]՞sٳ_skcgϧOVӟ?=IzI&=Gƻ#u3%⛇bSN3,Zy;19+~7~~?y={T۽)&r}SSab[u5!}u^LƷ-+Z_W8Ë|oԇVG7xX_}λt۩>FjOFm#~%~M%~Mzy( ğ-pKz7l6_(8_8Q#yvjv[?ՙǘ&\fKoz)joolȱw#՛̺=Ү<Ͷ~yf_[ܟ`:TWG^Tjz<@s!c[}__)ρUE9{vП[<|815u+7:T'}5}?G< K)Ged ( ʦ_s<19?Ojoonnʞ99hYb.kXLo٭FsW^U[sMざHmQr~~^MO籷+%|(Tӵ7:Nc|lV8;7]UJ)}_suʹz<3׬r/^tWi>S߼tOIyx`4S헜~ Fކk9k4>OƼ>~_TCsi*ӹ0r?q~zua=RnҸ',ʶ7nWfil|\7qh]~<{U?á~Mf8s]8p&߆nȼoiq|sY3~Ǿ|Cc蝿4/*+ \nf=9oܦ3_.s.Q6"~Mx7F|sSo/ѻ_뫼yuuUMOﻷ7W:/7د4s5y}J)wU_|ZƬM]7/Ҹr}Zg':կ|) ggU2r񸾦1cN/F!~9%~^v5pP%<n?[Ck9PMl6򺹹ۤ}M/?#yFs\5rznf^T{[|:ƑcO~j6F<%ioc;|ekW{Fv2rzE7~7??|0jz<_6^'ciQڢus?ψ=XOnq}@7g?imYHy׾W엎xݛz:SrJcR#cCOl62Z9˗W/^UyRnRUm}6=gP.wm[cYfGF򺸘7{}Kc+%?zaմۧ:^3~ȹߙ;zG_Η2jh:FF-]kI Sy+R|ٳgTӟ?چVa_?/ܧ2Z,Ӵ,~5qr$42 Yn5|yR</#kmv3 :H^3ycYevU>8}$}?ջVogqAjovaJz.\wj?$}O-i6OgJam/%׽}xnXRYM?l5fu8TBw۔J~;&[T͙e:C6ٛש'̹9W{_YXMzazhadnw[#8|Қ ?1}y:_<!~MZmmsO]OGXnѩ9gڊJۤ5}kұ6>Nx&y6i?mkw.o/^+?6~<`&?zv,2NϱՊqxu,ѣG!ї/ma|;]<~Km?TWϋ~7??:o?N4~~mfϧqZٳg1CϺ+=ֻcO/{S+w˛4[?80իD)k^۞T#֎3}&?I}i5F x:ĜR>|yYH~O^Fk< Z|*w:"{K)%mY:ޗ{~瑺r8I/פe{;st,_3]yʺ~ďȏT///˿_jm#٤ k<μS~:ҏp ,Q'Vwuo!5N1T}RJ8+?g_zUM?mTn[ϫ[b̷Rfg藝n,19wFs<=[Mc~,ujGfΑ?Xs^}dvf8w,O>.E|rϋ[+w?Y"~>{<~8j:q7SUlgqma]~>Ƽ~; ]W麤k{u^X8lVЮ-%9Gb6a/MZL]?<#?jeSON>)E|/}|9e?G־>ɚJ4N;?Y~kt-wZx͌~_ބ8VEc?wܵu?oB&^` qֲIXJj띎t]/һW8?٧ļ^r=7Ϟ?ߍyλwϿY|n>&u?Tۯ^?9 ğ-pKy(ܒ.`vC~mSmx+}UNʟp8tosDzqyC3ۏSmo>MMVa6rz6ԯǘȹͫUFoju{^_r5O>ʯJoͿYM?ڵRJ9_K [cy;6I UɁc29+3w,կ~o}=={p)ߺg1rJϡ4P~=Pmq4GSPFQ/NUuq1iknZlgAt\qV?7ʫwgǎ~ZTR;>Li w‘{hfeUϫy+w&=9ay9Ex$7=BGj}zUgԉ^,u~zOݗ8.ЗI}RJنs|SļVM?_ߠ9Oqxb{id6ٴBzۿ{e5]x/|z=8q~w)/}> uH7EǑN1OZJA Eԏ*aށiMdw!Ĉ޼jog|NuK?TC2psgoEk____Ǽ?^M8{PM?w~c0{ֻ5}4ǿkg=5_&CYNc<6Un sV ]+enov$Ƕ>5V[\suY?RnnTMO]N/Mo s{k_+#}_jw 779ǏW///c^gg94ךjͥլ[۱K5'S]م|V{iuЪNw޵1T_uϿ__cs7&l;4Y...:!1|zp)<}N5=Y'I}P./kjglL>s3?=?G_J~K=pKy( ğ-9x<~,nofJo}v8җwUFf{JI)e6huOmw%_G5T[yI6?5%?z_{?y9s43H3YIĊ 8A Q*v9qW (RVQDPE1cB HbH0f̜{c@o{N^k?}Wս{kƻzχfӯ]M>utrM?<ȦyͦYE ? ҩKAY_c ޭR[p*6ڵB^-n!ڪ$j?/دIT>+nE\.u=>9 g"c_yh޳~ږjז]byHK^iYP?:N*?C%o[Z=ۻiKzZDs)շ߉wl$,gZgڹ*o i9n}8Wzmy<^>4HK^=wO\26uelQ7"̳X,y¼~볟ث]]);k(?hְ2s᧧Ua\v|/TWtec,Tk2-zw{{aV{ޚ)t~zMRZb2 U{[-.Z 1'X+ZKn`Șq]'"cm=v\{;XTzxn!vKy^!w?\6 q]gfu.u>"~~yf<Ϗg;~W_ͦka^7oΦK_ɦG)rARiZ}ϼzʟFXiЧF8{[U) :؆-b=k3bpz^1a=_>Jp;lI!}h[3yy٥)G|E{MmJ?\|uqDsZ4WX*e#un~,ճ.F`/fl?_x>vTo6]c?[yu$:') .N,p Np,,~~ǞY|-G/ddgX5=twem ?_[?}?߇<L]:Mc gDCcmz-sQ}Ѵ\!Ps#=-α3hY7VԎshӋyUoQkvt3Al6 >[Q ӿM_]b4UKM-<ȶ.~8+e5o("na^_ ʈ3RJiww*mkub1^Oaٴm}jѸm.^{]/ggm|/-E1ZG,S{ b_:<88Ȧ0R5CmsȘc;F߸q#+Jl~\0c䶠g:vM2zDb^z)̫]muS&~YW!~ɣü4s~p|^Ӕ_/,MtRj|2`x8~ԯ\]rtr浜f_z|/o?sV/7?/~Ƙg ? !<6ğk^jz&}2tۡoV~gK[+*'Jo+ڦkH:1/߮_ޏ;P[JZZ-CE!}k5YI\FYy)}n|fK'㝝0jQi,*w^ q˨ۃbelR<OLs_yB7*n8_'8:^,S٬1fTviՎZ se=ZWmW<_=yjxFY{! 1l3v^cӒ-2 ј!`>˷Qa^CߑM_˦ 󊄧N{+2)chdQS)^w}knslz4WW=8}(k -?-GC)UuipWD;l?Mc9g#~$~Y/7*ϋ !<6ğPؐy͗'&I&ٴoYib^o_[}ul)#:_XMiZ"jYKyEճ}/sCå(*g\U3ıԻ*,c׻6r۱q/X+.Qy~oyݽ|>ݪ2RJ<,P;Vup'Q!zND/]p~9ŧ+:uG |)'o)%Q]-]!oCDZU%zJW䴰cѸl\qtlq6}6yˏsn6=<|Ns-=FDPuM6-x-zWm},~{U[NȶkKmY4XÇR[FZk?y޿MʦO&( ó5#W<5TCgTjP#u{yfy_&-ѽQfu/,h"+h[NO㵷^y%8?ͦ\x\TW\*p7ect^>ga^gggF6t;|]<*cf\֍$xN̦b<6~﮴Jo/sAэR(?|h ][N.cUC hxw6!C)|׵2Dвms#+ qψHa⽂ym{[j:눟<y5 w _˦ѱiEDmqݲY?,eWZ&%?(G5ᤨq#]2|FWS˸~9+.I$qw7~o8lG¼^y]!A?/~g?m?+.:~~d:f{g/gӿg¼=?6} 1h-k‘xLwKě[JXFq Dsoq??Ǎ2c?e"+΂ mdTY>ΦG}0gg0[n?8&9&m9?wLZՅ:{>#[ b[WKc??n\Ekk3J Nݞs -6$y ڕ")\;oa^ɦۯu K*ۨRyEcTxggs͝,w'~l|Tz'g4^VXf7˦`p/WRJ\#( Σx+_~qշ{F9n+|v-l}[L_[v鳞so]^ O)&-c=kSĘ6Dתm^˫D`e0hmz7QAi~1H*WMk#-jǎQs;%~%~bKD|>buuv6gc ҬY]KU~[1)qcս >7J)>2P|}M(\*=f޳]ƞ1߶DIۢi`t;O|̦ww ~r?'~6c:s?_[sb&U."jA<7< ;we|- _xw=&n_Q(4o?,ziyWp4\?_WCc?_MDօYVZ,kֆv;XI,Y_AEqF,8_xqw'I4X֣ܾݫP7*?/~uy|_Gy剟/wY/G4l! C`Cy(l? }}fYWU|JQKG&IKUW輴K}oK^=Etk)ǘ׫8-!٤uxUWXW*RJi]kVeA4*?ߖ:rW>k-B 8_Q{^6a^oF6=w5};?8;{;.Bc•C̰b#kbjQV-mA8>Rg ^jIx+b]{5J_v8`ܽ REʷJվ<0y饗y|~6}w ~0l|'>8R=/zADG~z> ΁=o0D]i;=߲[ms\}H)Wm+Jo6j);{56=.{h ƫ8rV*#fTUiwm^,.O1|6ʉk0O۳9kC%= c6sq6Q>=g~6(,RJ{Q{>'y-=cXFj+?ܠE3WʵTem_[Xlhװfü{֭y芕yz9GsVaˆ~(ʫCx"ڦ6ѱb SRP]c>}i[y|ݏ1lGkJJ)d`n5փ|ky?0j6}y mdwDO|?go޸uȧ'~2?M׾/;*<47YW0W: Jub>%E'Ay}N\ ޗcey2U4qPW5BQ*q2{>1sxڹҖx}eMޕjmWJT4XҴ6V[Юp<ِOm K*e>竔UWi{tϷr-s= l^G!~6総y ¼嵭c*$~?upp-/|)oO}7+ _iu(4 7)wMwM~ < &AAoߕbm:fRV98p!XҔR:;jK燰^sCϏM;O? _~?sף77sޓ=h'ߦME>pwM>Q> ?FRJo?M??k}1빻ztv~=x]7̦_߈/_YN?NRy$~> ~,o\x<6ğP 2`^ob?W{-m3L-d[y{ O G׸gM/hmWcVQ*]6u/U{]Z1J_VUeo鞯ճ-h9=ele嘥c=R^60ly6}Xy-+:ҽ~/aRʫʜD}Z6-wpvP[uFRcqQ[ux2-zo_)X,g_¼NNndӣ~o /fOyF2y3296 c{U{{?Ԝ`es Z#=-;/2k2ԜQm/ա5Խ][e `wW? g4/ 7&2kxZ) t[#=ں𳓓?/?uf\xc`' om_{JyFwU&{8:=ߧjﯸ ۜI˸ϧcH[]W6#wL;浊acnlݿ=yI1,[|n¼pߴ~D< >__D'%'ͯ.q^>Φ_u;[}fÿ_p^/]IءEω)4ogwvc\,βA]Y֣1/>oGP}Dz[` QFO=[w{}TO֮YgajLpZBM ?9۴D4ws{ex{g9;;;SKs]rYƯl2Jo_sAC?_m.SEsz0'OdӣK+^=c&jcIJeqDeʎ>w&ii+X?گB SN˫"qGԧWF>pJo㜦w)ꥥɷiaM/ѻy}Q}rrM0οS^ͦǿ++*!~~{|3/uyWmz?/~?'~g rw_6s_|חl׳\]QWQO4RvO%U ^RbjDza!ְ[Dwf y;<<̦/~\x>v|O%~ri-~eSJ4NyEq)4Ϸ'g2??ߑ/?h 7~0  NU|/iy0o?Ϸe? (udZX?nO}>ҚlzNZ?[[n[Hfrm}C^9P~YsI=W:Q;2!v甖w[]K϶h[Z\%ZhJHw=lO|}j!~~eM|w޺ \^__җMoWjۯRD]h{1@m]lJ^5c];1bj׍XRQ{{Pno?ޞIR,z/Ϧc 3~~lCZ?_g[?_׶Ƭ4g=?߇<ۘ}7lӶ5~~˿~z6(wK)G<99ɦJEK^Muh6om=yNz>ssajW4u??+W瓷8mkpWA6q~̐RJo=|M1{qIJ)K7F6787.f[OE~wRWl'Skq?wy}|O6]s-)_|6B|>omy(l? !<6d^uZU[L&|NA>[-Ҳ_-u/rz՞{=cO=Wgٮ ue:GK}ZݯxѮoѺXkYgy~Hգ2,MIiYVR pa"EG6B̊DP~\FA=ri:uvk[]5Jt;/BXWilO1CJ)flNP4/駧f׭[Q_uկdc[[Xzc mGz>E̫߆r,~WC̅/q_[kX{MR{{9(rc#ccDc{gbd̵b==sÛ?u?ͦGsu\~yejf1 YüghsΝ0h(?=z1@*͋u-gc)]Ș%u~Ht^z7>5Һ\$̫̓ݾۛ9̔ﭞs%D.C/!ej9_=Q=W4~#~~ۈ%~I|+։ʼ5~}.3nÖHMtz_3z&/5_]m_I~(; qZ{pCG}rwߺk̂w*LDu0˦ާ{2¼~=O|ײJ3~~l=}??ˏ>vc_G'~ۧD?0ѣGY,9ޏn̛o4[z62lkĩKM*~~CE8z۷I`li>ƃ0WsؔRzϷ}(~;8mͷ¼rZ~{7\Zշ+~ӣcO)~?\g!~>O|z?'~~<7k[7?+ʟP C`C5_^SZϤO&6~m+-۴om-唎vjH)>oVΘz՞jY/qlr{EDiG۴-yo^D̷OlM?;;˦UmsrrR$w[Z |nAeg ӣWpO͏1& 7j~E[תWCCqMvZ6}wg'e6l_ gҋGy}ɗiqx?VA[lZՏ[uƽg1qsDZh Z uciѳ5v;1vPu^{-`'ޮկSJiYxyv~>#?MOyEcngӏ¼k`><^gX:˦X_7[?_g=O<:m6pEP C`Cy(l? |y2Ii2lj_RJ)BKճ!ܯR^C3v[}jZs9>oux62Y.m{v[׶mݯe]Ң]kQʫى (Ez0OeiE]-nʬK٥-;\w0縡zuPWFo;Kl uÅv?Ϧ_v-~vvw;'ğȦ?gü>Oe'2~޽0wd_s>v3z5vm}LcMjcs~`6j u9c:vD[9d_W 눮UJ)=}49_Q[|*i/bZ~&/ѽǔEp!˫m[K[0-]ZmΑZƱc>;ic_GZ3j9'='9g*>ǵƞCL{63Ķ3m.,G]{?6yEwUJQz7|kSI_` |ꏽ%6b6{GkEEPW+.dͫ^S1ˮ,KNE|3bw7~#H6~fӿ/yϦ_H|cs-~wJ|>刟C|w~ qp_7|3~pJ)">ES%C-c\,eoWʉbm??1W?$s7¼n]M|)4 '|^?Zׯ~o~6}|;PTOOOüsl/+xVp|E,~~l{Ac>yc9T﷏]>\[Q;C`Cy(l? !Od2̞J*װgQ^s߲6깿=W:FE- Q[{m޷-it(1RWy<<99(ƭ~;0UMW'z_]zO:1^oOS}R[vmȫ1qຬS ѳj~\pϧY6}̯zB/="ů|9kziFI⫒iarO?W~#kMuV2XdžAT縢-JepNRJ$XȦԿ+a^wׅg_k~husF-CPyK|Nh~~ծ=n~?T?0=4DlY_h/]D!~>O&~>o[?5]z~G'w{~y.M|ԶDo)h2 .SQ{-yE|>+tE},f?"~Y-^6}9q6Q<>DoM/ =ڏ-h|R<ƌ8ӟt6CP6N)_|?u߫??ֶo\<6ğP 2{jKQFKɤmZ vIdR(c[I$^zk]NLXUdfZ7VE?_dӯ_!4'S?Sa^lz4.:<< zi٦[Ţ2s{xLگgמf+R;VSʫ幧c窞s~q\v٧RC{r󚔌\jjq{5b T˚Bk2Q1KuZ8~nX,¼GGGyx6i6K.k>ͦĢzԐh#HmMSW`K}TvmCIMzi9mz=mگ!Z!z: &~M ?y矵JC?KϳI.~ὦ,~jJ=FcM:YT} 8zwm\}ղ}o\l?8'}7|3K7M|?2z3&y눟r輈h7O~2W^ɦ_ >RJ`.+zD-I-scR}VKR<sΝly5u?%~ڭdJ)]|6I~ڵx^}M?_E}|_r6"~77; (ztP'&|^k,/Ro>_Ϧhy3??񯗉}ulQ6޽{a^=ʦ?|0A]k+ggLlr۵wd׉ ihnjngMJ9uz&gmzC%g%:gtc^v7H_mN&(' j>uAyrr\.ol/',gqi+Z,U,T{>C)K;moױtѱ|h/WZ!rZ♫eZDՖZ~ 5grD.1FD]Cն_={Z|˜s\C 5mK\+KKs]Y|+6j6?Mka^fʥRH|/k4uqYWXDpo o<.v0_zsa^ѱD٧6ng!>ewc_eW ҳ]+bݵdOwvv*_(ɓ'^y%>-k۴pNVOS kq6_}w׿WQ6}q~M? R:yldr7>xzv+8/1tt]VsRUZ.<{NѳkƋˠޭKM}F=mƞMO[K9=׬Z\PFZ+-9'X{zr53D:\Mihs?cCNXmj*~u{?/_Ke^ߺwN|9*߽㋯~)kռͦ>~l^St[W(V6&$xe#UHK{PNlRJ'<دݝx olsW3LN)>o]<JyT'<ɷ-Ϯ6'z,]??y눟y5.Zl賺2牟˫W%Nj"~oΦ߾};&|Xu'7ҏün߾Moi0J/ǨDgA\JsTF)DtO Jogӿ{7[oyϔ]S3GJ}Vۧ?$ׂʔRZ<ۿz>=x?dzY(?_ʦ?¼x3?sGfg?_{q]q#?:~}VId3{-h٧z=ygJ緤emfٷ;qWOzC'eV{^XJe^+:Xksq-8x.9.Y6}gg'~rr浻Mo62¼8e:1͟owćPJ6V? գwo.ǰwՎ>(h\EL)DI۷oybn2oEO)>Uf崌2z>۴yd2ɏ~Psk?@m{~_m=Sƞ FW{[$G-7sg=,=w=W~||\i6͛a^\G>l__ Ȧ[[d{>:')`i>N.p1گC-O]g94{ob6}zs磟>}/{/_vJ)-qR߮_Uvx|ڞ㜨=X_Ǥby+=ҳE?G۔^n6cݸVѢQLzO/y~{Ou|=yMߙ޽{a^~U,VXm&Vg{4O< 4HR*kxxi:D"ct[,C+_- XԲ5}86=}Z[CF!(<<߲_+zŇZ˹hrxm%~/m=m?N{ѻ2.ZbKb[ww|c?ۉ+~~K|V7ny}ww6ggiS*[7kۖh]M/bR:Q!Jh -\hԿ;#c?=K]u#~6_d׃A_ 5_Ϧ6_9xh'OdW8rzSJi4- pi 9-;˝y]1\?7;[M/F|m#~~<[? !<6ğ7]d2[Z./ET~ZU%-}6/ۖci4=tٕVz]Ǩ޲C㶶cC㶎3jK|6߮QKbȦe¼ݸMұGWe8Ϧ7oV_aViZe׫>ZDY:1b)v 0i95,:mtD~֏y]lӧOO)t8ͦGmlct^|ά:s?k纞c2 oIC=sy([Ԟ˞-uugksz׳~EnWk'Y~Ϲ1{cq Q[1Zˮ=?vCsKsN[hphΦ a^ofU~ü1ڂGv-*W4.*jDZ-fxo P+=V1 @\~~^9^{l/M?:: N:W?|n&=hbkqlTk Ke`u-)`I~I9Z.:;˯ FJӠMQ^x-XFL)t|_{=u#0 }s"`l:DtOD{==K礒h{>s 19m}/}b>6Ͷ)= Jvo뻐^e % &Y{ޏ6WѶƵ%緳1}]vϏe[猷u5~h;;;?>я~4_˦GRi>f4ZJiwzW_J vY[p?FDueW.~oHi}tʷmӠ eLVqlµ|W9~~lc?׉l^C?_W>!~<cƜ#oF|k׮U?~8̫v<+8?sFU[tA0_6X*(_K>M/Y.)44fʯ{A6}wgq?+oR*Qlςɤ\֣W&ວTjsSJڵ|8} 1gUb~ױv!z1Rci aumc_1>}>"b}q[l|PO|)*ăGmy55~ww}~ut&)&z%m?jRY(W.ZlUzUYpJ|~V2oglyD˨"ϿՖb-~~募sOi=c5voMԮdӣ5_s|Q^ʓlq6Tjs]R^g8Ҝs פ~?c;~'z݉ѓ|RJo?߯ ֭xrs[w<w|$|«a^˓'od[1l~"ZۋW;u1T<~.u޽0hJp%GTz\y눟>}%~~{l0KP C`Cu__zLd2|MR=TuY(iG-~zZV/T~mzrm.4Q^Ţ!\v嵭l6 ?ClAi6պЮ8J&6YK|'4EmWu IIX+;ޏ?m? {?-ߔضHDgpl^f:kJ}'hwvv?Gü֫|;ulӣ0,_Fp^Jte|cvΦEg!r=Z2MDs3J>D=ּZ^k{;ʫGZ{T'jkeNr[zFyc4T1{垏iϦGsu)tڵlQty6}uhNxbgN;ke citE󱅹ݝl_=+yL6ӧh>kR?Rko.!ƅ=ۏR&KGCmҧs~GsgI}ک4?}Aa6Φ3vv鋠NZy:,? 0I^a^>̦mNO46g絳~Fc"81쳳H| ch"mk-ws~~~PRc>ʎkfmaVRsض5)=ơzטZa[|p>eRPv?^2JϏ*~omL\veǴwxw_n˿[sΝlou޽lzt~0}͖豙C7[3)z&zw~ k%ب_]iuƍlz*|'.捻^z) ?}ƌK-8m}hl%~^|総m{?5;~k_Z66he#{K)~GDgQ*#:0W^ Ҡ|l'5ɔRzqƓqU!&zi >8{e[xYmsvOq;?K)u0orz/W^ ƾ{qQ4__c~!??ܛg/v#~^|r~_ūpAP C`Cy(lȼ4LSJi^Wos[jխɶ\{ q g٥律D<5y=W؇7{ލ"։Rj} :9;ͦ_~=A0ꎱtJc9<<Ȧ?x," 5jo;)e} 49&R ήy8C*z,˪&GU7üU5G7QzO9tFyKEk[rfY.1nPsF1C[9'9yhjqm[cu9?p!p ]+c–cs]g^=c螈k= :8ϋEm'O¼V9UyoL^NXtclYZuFZֿ}^OgmJY>|?oyEMph}W֣Um7|ur~5l^~Q{#¼Ʊ=9f9'ײբy^=mWڲV;k{/2yϧ]矢:~9\%~|/_f}N]1?9Gґ߯"˲Fe/Rݼ|)"^w~wf1URk2nMm\|Q,5YBP/x/HtKmQZٍn6~臲v?ߧlh?k.~~]m_?3~$h#oQj'gr=Z?gM?g)tlQ޾~Nt?_$X߼vfoe '@ԕhR}/SJi~W/޻w&σ0*]Fxzy$~<}#c!o<m<y(l? !<6ğk7Not2Aj~\z]^g]ޕ8D,-.Njv{Hk۲MBdVW!WKً"M_.a^{{{٬"J[GpnsY_Zן3T6}q i~u~? sZ=Ϧw~a^/R6=kV+Oډ_X.)Z̧%Oukhx>^uT_b~?8S>a9?_t#c{gc ol׾l4?RJf6<0Y~}3g7q>Ϸ-GO|yPW?g|3NR$RJ;2ɏuRmέsם/wWܟU~ۈ~lc>bWaݷ%/Ϻ ìC`Cy(l? !/O&)MFF_f2tkZ^+:s<\^=WކhzNJul9ƖZ-+˘LCјh?ΫItgw'ga^׮]˦GcZ,{~>yE|o KkV`x\z֗[Aef*eIt!ÍܢO1|!6$RWQrO~Empo-A۽M?Oyfww)jrV7_,v8lt }JGro٦6t9ʞC%xhɘso%:?Pcjim=9{s=mt#[\i1 FYWiYkZoc^ǖmZe=礽gӓl0_la6ɓ'a^G{{x~q w3DW^kկIe*ԧDmaT ^hWfA ??C0dΧo)B9u8+geg7RJ>M_-Ūևa,s̗t{1|XE˘%WVoU{1KTN5'>{ZW6~Vi~zc-$[eCuDwqq*(ѼT4V/;O^V~Y0|.dXN4\,l>e|C4Z>.E4z^Yk|6|w=\Nߧb ;w ڜݼw_?y:?Y|_|5v|`O=ϋƎ+?ooPc)*x8M?bѢ8``~qg'0߾y3~|?V|K-s)QW7!~>0b|OmGۈJg+u)4k|A~}q~^9^wV[Ga^RGGy`rl<^RJO>ͦG۰\㌛8g_??R-~w^FJkK|67l[ϋ5~rD2!<6ğPؐy͗Vզ%d26=7_C5ͪRJ:rmϫVsҺMt^jS?4!ghve}fՖr#9T'|;5I90:u-ôX-+jL mjh(']kio{kڂ.S]^ksz:~4,{=vpM~*9Q=-\qy׷dQ[(;P%' EZ E6a PtbzPMcS˵f' YEmԲMg|UzF :99ɦG}oNIԮ,bj~D۴k-ݭ٬_6ΧO׽e=q]KO.DG;P SC=sR[s{U?V*{oi'؊u)#RX_r͟i ˈWVxE!/6nߏVJcR]:H mQxG}p_ݓian$*#סּt=c:Jw ZFcx՗e4W|;ڱO sJi'R9ѱ,Ju"lYEk|,{5z 6M|gK|5ֿڲg?Ho1y5~>z v"o2nYX^| a^_ʗ鷟M?;rW~>_N8.*,DcY{ߎ RJitA] {M)u.VT{=ӏw~%xqUXTjZM^>uj͂EJ)~,Blneӿ/fݻuڵlU_)x~/ϧQgמ zo׫xa7U=v΃9cg8??pZ|;?/v~~n k@1]Ek[_} q$?9zM;{>۷|kңMv$敂`wf-O{a^/<ӟt6}o';?M?}Zzf)~_|w爟?L[?fL`P C`Cy(l? n^7ߒh&Ʌ+N:yi'c׭KߏqmzKZVU۔{^ǖ!ڵ\~ȧ/`=>_>M:j j#J([K[XWKR~Yt2kXdާ<u7*ZK<1MTo_j)}?z$n8_-cc̨{+;0RMqj[-u%G s5|V[ a]^:uY]\lJ,z;^IoI֕I\t?I~4x=V=u߻ צS~KͦϣH)eR>sa^gW;~?[c{Us).Wm#~~\m5?MI~^I(F-t0?iY0zuVMe~I:=o.g`J̓y`b_ǽ~}4R<u\qT>g|C1~x-=cI} ߣuF6$.w0ͦG}"h;SJ8?6)4 0d|0ͦ?=yMb͛:K/gקqz$Zȏ^~E|NS8?_Gۈ*C|?7Dxo%C`Cy(l? ! &[2l`OI*]WqchjUMy-y-lzkmѶ5Iic\ǖU%mJGYKcCC_9cR,l~YU,+:ĝ}J$OR*ˠ~FBGcRAGl;orzbM)mmW3pqtϦ߸q3^˦Gtg/b6ۿüvvX6Ol6}?RJi:?^ Z~a^wɦq>^)kʗ?-A۲ ʟV%g _[Nޮ.އ|<^qĵ`}M{/rGj*|6DBi{)99"ҳ`Nu5D3QFfQ9Ҙ6M;/,C牟}zIlk|CJ)MwuߕMb6KޣL){5)We~6}P?~Y "|ߩc]գ.]ecIgG~$総::{ =y~募Ͷjok|s %~.Ș㥡=?fMaN_ײ_OyErcG{|y~qc$wMcg}>:>U<_O"_{{~EJתTo|wS(vN3Fd[h߹?kJ)]v-~v>{1.կ~I~  F㢔R:9uzKk㲞oeӏ^Z}Q6<_¼uR|cZ~7+"~>oyb?rGoyϺxGy(l? !<6d^uZכٓwRzDzz1ad2JO)>6y|?*s_*#~mk^*^+ujw-繏?nz]{-g}evtgYU^C۵NOOϢc<;;˦VuP_{r|M_7uuu]80Iz[IAVޏ{;Hs߭+nc:~Dcv_z6}ȷ](?_Yvuww'+jVA3\yEw7fs1!Kzγ\c%Ֆc;2zy~=fӏüy2h 8w4Ӱ]e)ɴx1zn_Qڲ.͉N}i͛Ϧy=|0w+0h%mc!xu)) 3h)=!#cjvvl+-Zlq}/fݿc'OyMgZ0OڭKqh JyյZt?hVKݿv6{{?\__tpT?vzmt6>l ϯ;?~;0uĔ1e]iRi~,%5.K==-,t>v;gҐW0]c1Cw[flW{;^ F0/KLm#~~;e?}yK| c_?a^7e|W_<?˹uVoM}w7EJ)q9]zr1|A=3/S_5z(P^D)8SW6kۼb;q񺕬botD_K)~0ߛM??^ӶJ߿lϏ=?߼ms?߇>ƾҳ?f>lӣlzi8W5ќܣ'Om9ee\J* :_ѱ-ߗMNǶϷ(m爟2Ͽk_rk &z6z{/#A}.Vړ ~~??^7_{#? !<6ğPo={~W{/?%ERDq"#E~pȅ4!??% @dGȋB6~h;rGns9p$HW}뿫N1Zy9G5jTը1~sɾ˧S)㱫fvv?CGmfˈp8t5:iYg1Ieg:WO8__;҄WjZ^K9:[fQ#;Zt/^ߎyju52J)?WMzk?4}(m14e4znrlC9qj?љZ¾FTFx̅z^jW_}j?wq`!TnW6|KÓh=sZR˥ޣ}%ĥ,5SlKC3۬曌kk 3Fq]13K/w.oTno|M~{?Wb56nz^Z3lkIkF:cXC99g^#k˽y~_-\5_N}NuN6gMcR$Xs7l}͵Kilꟽݼ17F5JدRuS;]U54i1m*_'YbZooUT#1?x5/jj+لs_'6W~_c_?uW_T[mގqRnl՜6̉K|N=[o9mn34g zC2sٻBK/޺O.uoe䶲.e5Xetyȸ9wS^kYv$~Nm־?yeC|'~g/{)٨5ܟǵ?z/cz6uU̫wNܾf>I>?>~quۅg;JtNZafռiU-1/ބwݎw_q,}{~-?VMj[{n"~gKG]f X>由D^=v,ad-K|%uv5g1صz]uR}!]]u>o˘WֵuwW_Sx*;V_xsS_K6cQKk&t떈id|?ڻ-/[<>μϋ?9?Ww~){ꍟ_E{ȟP8 gCLGiͦmzNϞuv^霴U*gɫwKm#َfof:ن7>=$3kcr:i3uá~Ft,3*~?o߾yv|~ZMjW71_V_3q(P9 ou:N:IcioƲ[2總ZٵƴYWEkozN?<~KGK\3c;[\։G\<'ϥ-q3<ӯ}Jy{jzZ;=W3;2Jǟ]~k6K<[bu.Vwzc^jܝ}:鳚n%Fn$#ǞR3z>zjzZ݆ՖoTq_:?{L뮇Auz_S[yck]gЯMx|UMOݕRʯʯTӿU㿞:ugK6'7o_Ǽ\oSou[}j σw%cR3i޾Ao9Qw7}jPphC52Oxd.Ľ)KWye%c%%Zz\\/Y~\/qcW63gD^#f>9/\SܯҸO VpO>Y}߫Ջ:6,}Pk69ݮ9ļc#6ZqD:EWaW[U5}Lkm6<1ZK_#m־9dֱ<{N1%=|xv_/2uW}{?ۤІgisN$wa)%ИzI_K):waWJ)C_To饔m5}^~M~[?W|P)wZIRw26);/4s?k lM/uԵn1s%)ݦfK=K,zzϬ¼aV`{ ۍwMWk{߳nli̷p&<ğP8 gt:=Jl6Sv&}>[S~ͬ8-tn0MjFǑگ~u1_v:i9kRǠR80NH߹Ęrkd۾o}|=<UGzSIm2߆{K(%MV/ ߶,!=ĭc쟳4> M.jljݼiN#rW[@y5Ԏ~U_|JtSklg9R]><1w72/۬۱qk\yf#I:^ۚ,-3׸.SkOz\Zbs$Ye,婭qa>KK=75srfJlGK<71ά/~EÏ^5?<~[_KK]9Ohp/8sU< o2oQqmw;Bb^}_]]UH)|~k[̼GM̼gKIkm>z^>|Wo^Ǽnnni cɡW߇nUs<[߼?Km&<,a6}^W?cKﳃT'>s4~?ƼL5;&?;HNoS~N~=n%SHQfo9|-~ۻX;~Wkͦ'HyeC|:V)~|I+!80齶G.84b|?B[iCiUR[c'SJ~dbYo7S326za5=3|YRoUJ)PD<2Z$~{9't+hx?%ӵ_MlwKA}aϜ}ek~mb^/^cOc^?ɗ/^6קFgx*a E{lv u ea6=6W&~n׽M:WW1|O_mg5#"{=F FFyz-fل.صwO=bdf?~=̵dd>>ie,uo5+5Zbs6q伌5^5s3bfixtG%&fɵXR^ż>u}B? K)PCk"}=̦վu÷}eáUo޼Wiyaܢu J)e]9)__1Twcy29o[oU?OǼSMOs{V+ihŷoc^#7>msw}&:TM_J)˿\M_Wj{inߊyGUӯvw_Mm4Iv@g\9fϦfsƎֱx{XJc KIDATOm}yfIZ7Y~o>=5TNo_0eK>X~.Kk"<;软r?c+ysg._$~g/_|}募?u'e%~J|_^kL?!)kojnWRnooi|JsRJ9;׻wxKͱs>kߧ+]R_]W~*~]׽RWcIN݇-21TK9e~3֒ޯ}E~z_!~~m#G|K]??'?﫴;bp^{j{#~/?} ~^]j'oCLy(?3p& 7ZK{jNSlLIoW$m[u{,3e^z9ƙ]kY}GIo[gm~\ ȣ@yY/W.iY =~{6cZ]ωCmn?y8Ww]NWj~$3ǁtyJ%9v~*BǦ3i޾%֘FL3kK}~YHRJ9Z,+keMk?}}y< ~eXݥ5RZSE룏>|g/_V[$ݞq }ZWy&|46v3>e]%%ZyF eoӬy޾{oF5~_#~fX;qMS~{KzϿ6=;K#)iE2s7mfz-5T|b[m8}wߩzUޏb^ozPJ~,~W54?~ i$~>>/lW~;گƻ&3S@xl+7> >?G?^3|1;p&<ğP8 gf)g5өpz[c̫YOJ;[:6Khժmۥ]Ij#ycYOͬjkǁYo?NN{ mf5| U5}we7772B;v1>?yN[s0/ط${9 ֽRK͠7A}39byL/j?O&>83{,cs,βԺs^8voƁf?s͹gk.qFּnGȚs1\Y;st[yt$cJowqp??<ļ3u&WJ `ZKe<+V}_vu57?c^16}CCM˞M}XM[J)~i5=6TJE䴮\JnܹEwuޱsg3ϥ-|q5*^~a5/ƼRxM+=]5Nݺ~Ҝ%:gܷƺtS^LJ9"ґ6ƭm߇[{0mcy1lsĩAs|Cujs {\VK}-agi#mRZDss8뾵 ܞ'K;>g 1rF?u=}$,A?/+ r?YS<?wJ)n5.g?y[F|4X8wJ|"|;Ǜ9n|U.{d8r֛W>yw!^b)x6j^M??ǥVG?_vܳ>㩽}j܍C56w,J\V3)lyz2T-fNs.txi>>j";n_J)p8rje ۰B>[jmd޹7rN.uN,3F#RGo93׸Ze;fZ^tcY{|Z{]V_eik#ev[ܯv11p돖yl良^xQ/Qa1ksk߭:bZ+lCu5=I>Eļ_MF쁅4J,Mr*ꪚv)o/霴96+-]g; BOP:_KCמ-q4Y靳<4 Z8O?43R޾}[MOcs[Ռݛ͛7ob^߄ֺTΤ}U#zfijV^r>.>3[e,XÜwϛjʙɗg'xf^3Z{=vkI3ߵDo:|#f5>x#_sLY{?_1A5=JkRkK\CTǗ:/5zzq/x:˹ Rmp1C5=9tzƱ$e57zM5=*?gjO~]5=V_Qoz)\W~W?y}fn5&gfNZк32MZ;kA9Y狍^xhW~w csoTN!_ŋ0w~uH+z[M߷J y>&ҘFmտRJ)ZWn.wB{}Qn_ykMŏ^F铑q9Yϥމ_9՛yh9X"#gw7[o~_jŗ?_#~~NO]}~'UkcLՎߪsA_|ꍟOkԥ??(OϿ;N>N@:eG2k9އu{"xy(?3p&<ğ*t:uv<lδ'kzYS:ֱok7V=6ݮKv651rͯ}5K='-}R~)1裏~a5}y>PMx<}ͨݾ<6].Mme%hh3Khnn^k&6irٛMo?RO%2OG=3kH_s>ޱUvo_K̼\}R#FʘY9uks9Kꋗ̼F>:V^qh/&{>HuRJ)ǰ>uwwWMOyxng)ֺ}7oi=R^~]M$r8鼤mZGSlt,䵙V^zʅ*_c"m5?/N|F?R3z3qkTFk b }ޱ/_vmi|/c^i7/jb^K)!URi<۴cFuIC6zWzyz^3Ǻ^e?Qߘ]hj ĺonZka_pzk?TkR˙9]bĻK=C>[g?k3v[fƔ4>a}sZ;> O?<k=?9^K~O|~$~>.Wy=yn#~Nc?Y?穭׍?y刟L|6ğP8 gCLk9N]#yl6Ӷ+Y^z}#yY_#eϬf&ҟ޵mveKkkǾگTis22;g_b^M5۷b^ͫI}Fu9h&1X]Ⴡ gu>Zx)]si־?9>WgυW/M=k:m:b{R/uFvjkKԹnn-4)3N4I`)\ﯪ_5R><}\M{S_{kc:>__ǼnkqVؘ/rP?)7RJyM5=XSJ׷Wo1V;}PJ)}_]կuݾ:*#5sm]\jxm۰fxqMn;Y{K_JV^lϬrvZG?^^K|}?ַ(~V|;o;̽3kxߨR668C<ҩ1T?7YD;MkmG=~1t ~_AW?sʾKݯ[{.%~y?GcyFy?/~cV+ϋdA߽ﯧ6ZM2DO+~EƟP8 gCL}_ߔf89 l3ԕxWkάzmb){gKu[|D^y|Z%WWCPcY^og})kk&KqkLIұy^xQ6}5}ekUЯ187[4tnzoڄm}sB^ 2+iywA8)S .6ǰ͡T/gkMk|ywl{}01bR^cȹ KS-fhݯ#Zx߇.ed9Okd G؆M^R5t:FS=4<_Myϖhx~^?ØWٚgzƼf*U_h9ކ[1]_/2uuuUO߾}k3,ULzR掏c|zRYZNMeWZ}WbͩMߖt,cO%-9]Czk~}~{[Ә]J)ުmhIi>+=mmy8^?56ЌҼR6̹T&>Glc:' -K5v*,se+ypޱmܟ_:f!cNG784}* ƺM͙uFmz輆Jjn\|f`N.߈e-LzF>6݇Ϭߙ3u4_Y;a&Gf։y~jRMzب߰} e)hu9]]nCMnE)wDY;.ӳwZsz_U9/mB?󺹹}K??&~^ O_{ ?G&~~N??׉?y=׈_y_'~N|}r?/ğP8 gCLy(ɾ˛ͦ׏OSwcf-x_v2=HߒI%v:v[@޾Y:XzoE%Okz\X̻㫫ycJ{~tfSo^lVqWW㥔#_#WJ8SI~XMc|br^оOVr^q(}IGZkw("6|S!eĬPNstњ!K)á~/v<$ͧ0,1gw1XzOZbߙی6-}k=JR_џ #kok#kL#\C]nmT_k3yn2z;bfD=4s\1󥔲 Ծ52gq_ŋjW_}J璯^͜c3هC}=8yܒcz\OQ[ c!ft??2NE2̹TFwd- kZw IWUglGr_pyCHQwyaR9^7+^R:6ٸΓ<4!w'6uyi؜G*7=|81q-靃D+8Eֱ3Szw/e<އ&5>˩j͙RC~Rt/8z~sպLsnJ>tƱ;N6ۺmCy|>\zg( Ku y>W\/mgcwJ]݆vtט_je|x[D~V/~^z$~XM^>>K9q~Z}gz"mcKuܛЎ޾~xH(w[MOi<~˗M溿M55_U^;'l=yl8Q}<ަwsu=O>WǼ٧~>?E߽?ϟ??>;?_%~ϋҝw/c|u?y_'~^c{K|(E׷?Y?J<[<ğP8 gTt*`g>MY_f޲{kD*cMonfKRC5}nzǑ~ؘry'fkk32Z(UH]c(}OV)j:󟗱.mx3Vv!v)n1mrfhoW\>Vz62/ze5_l2nͼh}l+]j?7YfnKK-K&8y߭5tg>~jҽEW8NmАl6XB}wpz19ovk?ұ ,9Ou%Sx|y=ܧJísExF_G?^ϿG?<ƔO-g~}x_rc|Oe Yy;sFnӻ}y3T_q3jCkKo?OǶ:,W+hK{`ޓ9}gxwcޏ|=~ՋMԟ%c\{=}8'KPuϥZ{8Y#}z.s9R̾`KHp)ck˽y{l{4kG9/Ծsc%.5ref>X9'3$K=K+c䜤ϖh#vJ_f̚˭]'k?rښe6>7{_#%X2-Yf>j^C巚k6OML\3[C穭?|ر sScHyjOovm2[-q1s5>&dgTu69t:РM:X9j{bE?_'~y#~%3ۄϿy󦚞.4ߝz'6ylZOkk|6k/M^S9Ywy#l=uHOu)lKgJR[}mO?ݕ?KKIϟ9b,yN|G?~??ׯ>*~/3o??'/?WLmִ?o-/[??#E|f_[6 P8 gCLy(ɾwn(mtiջM+q2JhԌS{\_J)c4yNzy͜g,Og?GZ[zǎSq84'}xxy}ѷzl{l9i3M6뵯f%Ve:ؾR_&Ur_r#4quuջ[_yk}Ra/Δeg/z5aZ7,0/9ue/Uo?:6\tu#`Fxf^|]R|u$MХWל/.WFlEԺvwp.ndd0s̛,SXz9ف`w.U~~59οYm'-цGָ[/!UvN{/kȜi=Yo޸yz hBicy7>w5bA\n]T;Sb^:^Q!~҈?g٥.}_<_'~~K}7.?cymucxsm1pߟ9O(~&{sI3㛧F9S:py /_VSz|gm!~~ k)~C{_yes%~y*{yY_|u%?_ ־Jjk?0/:s?J|*_|Z?TP8 gCLy(ɾ˛Ͷ\__?J?NvWl/v5xo6rZJ;trRz{u!~ֻ_uҲTk浶K/ֳDh}yX߶)?wwwָy<뛛j!YiIcǦ1g9rB>5V97ꦄ]J+R#]lC;X(qmZ1Sn}$7FVҹOB]ʿ/oR|9u{2F/>>YbK,sջenL%jY:6#}}6NY񞢙s5s2r3k3uq̥:R_kvU8f^kW˞i䜄&͌Wy;>R͵3˘if,qϵ{,G\_S{u%ڧG/Ն{e#r2d%=w}e{t_+y/6Skm5}[k6鳑R}wmzXmӮ>`~x> <\b=ks\["~~pVOO;KY6Iȧkk?8yR~痐Ή2fn#~2^ϟav/~9刟Z?&~c ϟYϯc2f?_'~_61Fck;>'?_'~~~͌' P8 gCLy(?3}TNӔGl6S~NZuxf=FkVjY mm{>>;]ez9'#HkJZSD?ܲ4ߎ=b$sWNf fIj}Z߇meכ7o͇mؗ'v9#cmد޼Fq/=\Fh<.pc ;ֽʹfoWB'NǡV\M~<ԿߺzǴnȺAo#۴^ffsKݣ>{s22W^%ﳑ9R:Mkᗺ:sf5s,mW2\y5\fY(KkrGk3c=1e ZYƠrZk:+el_Vuzz Ϝ#tohwC)]5=qzGs\.K#~mHz_KݯD<.5~>smt95ǘWJ227+r_Mz&~~=s?_\ϋ?'sNڄ>ϟys?ߕ)e??s!~l?g{?1^lda^=^\u摥F], }f3f#9ˈ%+hu8Rlo93ל˴kyY^5ץ.X:}Ϻ7t:YP5Vߙ>:k\[f;'^Rez߯_{_¶~j{oK}j_YZiŇ\WOit֛*gdIǒޟI:tc^cww(/𴈟֎?2׉ۯ%sc狩±&}n@NN7^xzm5O?׿_J){ͦLcpGz_x>ro35vGΜջld{WYbu?{6s=t}ܯ޲^z/{?Z[k>8}Fi+KDϼNǑ^KYFƔ/\{i8ӥuϬ޾{}=g>3YOzj1kۍL%ӶĜ[y3&-#^kFonn{52NkQ9i5t_jtzmoLkřZǘsyYsg3gczeĚk?W/639܆ yxn2&1=+-_o[m6='-q>sL#jzdIsg[cMjߩ[뷩5W/d$#yǙxX9fjGw`BwwwWj#ށyuWz)XR۟ļz^ՋuU#~~-g?_'~募?uO1~~MK<*E|H|Zo?\H!.7^rv|OfowHz~1M/mU~/}~U_n w}X}Oy$^vSoߟy5>yVӿ^O˓-ײ{#~^׉?/}_^ϟy3?ߙGϋA|J'5}6󏉟?u?&~//23CLy(?3p&<dXε/R6Mg饔V95өf_)2rYߟ-85H[yY'k_'#̼,UZ83Ry͗ߎjk%<<gͮ~8RJɏ۱fݧ61oWNek%nj}ymyԷԿm)}@݇sjoun*B?iq5߯?b^ϯg^P#~/?C|%~^Z?\J|5Ye,f8]{LGOUk?Yv)Km_i{d>c:78,|uQ7aet9nWZKk-i>}izObkuk͇/c^~~}h~]]92{3ǔ/%%q>r:>Gk_xm'b}?6ək\#w1Μ{SDSV|2WSZs}5O8puuUM5v[~SJb,IkzEhΉû1m.s<'O\iʖ56ַ}Sh]|ob4]ڞ:7r?p>VR(+??'/yS#~~N#ϯC?ߗץ^3=~Bcwm?z41F/lN:wJ3eIm[aW+6!良f7W³Ζi=bZ~?C#>!!uM4IL?Y}?gL5]|ݥ'r&~D|S~ڪ>1RM|>ü,%~om#~^׉^Y%~N"~L|~?e P8 gCLy(ɾ뛲?t:Mڝo(}J_R2RY~ߥRJoMOs%Gku^z׶>YG%~:kFz&z%kIk8|Ӝw%~n9s2g̵ݑ1xC2Wf}޼2~Zk 2رTuiMJst9۷oi>ӚcJvtyN靳2ZیC1^Z{_7r7qPCݟN ZO'隘nj\H}cHH{ZǘWf5Sk0>KgͬW.}xt_ccׯ]|ђ%32={)_}޽{3F3Ju#{竭8#sԆg=jy3o57HWP1kfoIyM}Nji.uGI zX9w[z^<֟og[ydyOy޼fJ5|f_Z7oTtuk'#D"~>zϿ{??/~󜉟?Du==募?_'~Vv^?&~^~E|󏉟?o?ߗ\ gCLy(?3p&xRto6$ݮ3kV'#2K%wf#mb^zHf[Y̺Լ㩝:)Kcox߯p8t___|QMn]eRʦԯ&o[oYo57"]TW_Uoooo߾y0V;MGU[{鳑Ӵ޾Ǵ#8u5={z^VJT~=_~pSo_۰v?r?2yxE5V{c*'mx;M:nc,3לGj=W3|fZ^#cȚ`ldˬv'ջnӞC~^^O}dիWdZ֋|m{fOG+|d'>#Cz)J3_?~޺ּ,}Knz/2wn]#yT^NydkT~klxN׈LKsOm9yp$~>r/_ erzMޯ><ğP8 g`2f{,C^ko3fCs mx8b=_=ZKOhזVFJ}gsZmZ;-g/Zb7ȱ,\rdΐazff<<)i{s/n-ͮ;2z$޵RW9s٦{tU'iT~jۭrRNg)f_ CkyVy -q5Rmzz^_&~RL{ K?~O-&gm/s_TeϧN޼yدwZǸ ϭ7gP~Sx{ ߋ|&r1ywyn]n_IlGd)P<? <'->Y)-}&~X>,%~̼׉#~1u??sLy%.u Yi kӰ󏉟C?_'~>/?/~ϋTFP8 gCLy(ɾ뛲lVT)lMjsL9q$s2[1wc_FiK\_Kj~uz5ׇӑn4=K[#̼V.uHF拗xzRk~s<z̺yԾ{ż9%~ms5Tfimbf^34zcn٤yY:SZq@}WNǒ3V?qssSMGr}}]MomeGyq~:ϻӱ{UowwzH÷zon5.8]C]gZm77WWg sr{{۵MYm&q<[m"}:#c*cdRzSŋjzj+Y4/jOm8˘|twwJzv9q5گo}e\ߴ}4}63̵6[,pNFYK4O:D뫯~:u8\MOV).ӽXMfV^k#)7Wci{kGRcJk yq k8P;sAeK)~~NO_?\?|zϿhWߵ\|&r:gq"?_k?+{w,|ގ;?ݯzzjcLu}]N1%bCq$=W킙@*#?#?%K#~~G|w/󳈟:G|_y3??:󏉟?u?ߗwO?/~~}y덟py(?3p&<ğ~*oi7MW^-}ߡ,{T/#[6Kk.r[W#yWZ{Gq>Ϭ_i{Q쇗Ըk<<s͹jolf}ȑD=2K4>x M~mZӟmCDPiSǞcjC66r +?M]_x>}RNaa\MݧmշMsҵ.:W&uc^ay֠W_m=ϼH7dU%jh:]~=mҚsk^FI=}h/۷ok^^_f99qx9n7¡}CaH7Q,=hll/Lc÷>|֛^JRkmݶ뱵FHJժ>ŋb^~wW;K)p_#ϐsZϐSV[uMoym|ZvXgWz6?míF+m c}{=6[L>_Wz}uF=0ڴzzi6WWYapϣnaizهC=Ư<똹vXG|M5](7Kԕ^J)~i5=ݿDΔ_]*;ts}jۭmx>Kaxkϟ?~?_'~>s9~>E]RJ9ulIyR%M]&Fơyg}}UjڇJ~q]koB1q|zGt5< <>ޕ;p)6s[J)/_??'?L2J?}&~oDwFw~)kϋl#~~=@W׉L|:}WWϿ[ۈ?Gc?3p&<ğ)mN"Zo6]#y]C6)ܖ2v~cWs{[[/ XRjWfn;6rb)Ml2f{SGk$}NR]>UdfJ221Knk]s2Z%%~3o6CLJCk7o߾nPvk}77|N1Ǐ~=dtK(3|p8CRNiLMߏ916ݟUl}EOH}zs/ vW1o}j'|Rzil,m_ΛMYXb~~oͩ1'u m8=D&NyrRl8݋JPo[;'m'@o/ן}=D&l#\IҽJVN+i~(mkax/6gޣF?sгnaδ9{ڦ8l85RJ٥9SZ eRʡ1-&1KCKmm#JG7Qs6+ ^u)ݡ R14XFjxS*'ũV6!}c_~m[+c<+o>v 1.,YX,B E4@B4 A ܣhX(dC,̺Z9'Uoqc>O3cĈ#FոKӻ&{:T_:Ɯo'XhW}[ܧwk909ۆO㟴.磊PUm;>uѰ;L_٣Os!<¼go/%MW*'?ȦؿtH}a7Yxۚ*Wļ֡s^vx(Yx>jj\so6<S:B9qs7mr䙖>PJ)a =_|Y?RZ,߷+"^:VJ#ٜR3MXjWogg{u^ᝯϱ!?6{վR%O>tߥ.3O}ߏyA5=o=z\MsʛWw8Vn%5o:g9E_[g߻MLا6րsk:T}_W"~N|?/~mN?JK u)~?Әכ7m^NE˶q>:}Хxضh_m}Ӛu)9sח?WZ|E5ɣwrU5л]r16, G;^W?rZ|߯W$~tC^!]|:.o?_O?_'~.~+]|wOom?_'~>&~^|q!~g?K="5y( G⟇p$SVՃCe6M5p8}vjWJHcɫwkt2Ҷn1ڇGl36W_뽇F?H߻O#'C9Y55f.?>Z#VGp|;4 C_mJM8UH^:λTF/.u}czS^)sLϔ~yy:; }]jWm~{{Jf>g4㉥mzǫc<;Do)#n>#wvQoۛ1ͳĹxG͙`g9ie#e61PĦɟ4Ve܎p7N~]H>4U]8n2Я{]}/څ# 6,F$qrHuqQyUn4o꾙U^mNevI/q߇k'Re۱Q_Y,w8?q^}=0mZG>3SfXb|P_N iRnnniΪWږ[*sl} &gvW9Ԙ/m#IƬo3%Yne4]eϻoW֛^J^ig/c*]et\MR/#o޼ʫ}=[Ǖϥ~MίJfiWyN~?Sҵ52'Y~v3˫eH=tNjzy~v[^mŴe`>us͹Wu>U\K3is3Rʧ~ZMO^yɟI5菪?c^?jg}JRw<-cozIoӻHFXn$`w RlC%~>C#??Zj7?7R:Y&<멫 k;wjTLJoF7k%8ZL3V ַUg |%ѣjU;ַUM?ɩ3?y3'?_'~N|uCyo??_'~~?:;.U?/~mJ@|}?yPW6CHP8<?#CH=?^JYVCc)cqRvO){kw]Y5=ȼׯ1~>ZmBqTd u|~Q?3B۳G{nGl]<>xiܖL|}z8r[m%֌Esi[W_m;;jߵztOk3RYb=w\ͼgp:V[M%ߪz7~ٕ8r~~^M߇gj~.ѣߗV[mkOG|q?G|_?ߙ{ϋyo?_'~%~<}_?#CHP8<d;#jսpWkf94r3=]ͦ>}RuTv::ǔW^#v{\3133zkﭗIs{eWNVgəy}Ot=b*[JJ0pC՝i#K:xj{i'D6?z^sv]e\\\mKuyy}޴~?s3b9R2C0c%ƑK}Cmf̳,!W<%ޓ<ڼyyt;}b.6Мsbd728оZt?/b^ZMXMym R^RJ9}}:]9}g9FFJ46i]osF;Y0c?:!~^)Yy?NM|%Xj\5#1W;smi$~~vze#"k2]#hSJ͟~w3?_'~N?`N-O#~o{?}ϋyo??E}ϋϿM|9׉YIo <?#CHP8mժaJ>}fYtn,\f^V^KU_=lIۯVj3f}HY_#D{:%kRϚ׳?[R?Zݧ5_a-zu:WkLz~~^MOvRs1H#O3#y9y̬8qÊyqfͫui05)-5ǵD^_iw#-FO㉙G~ocOO$3##k]D#cWGa9c:Θ|땴jkO}v]w^k#e\[©˟ڟzmhݢ9H9ϛ7ok>[Y?4/wx=RʾsF~dƘs>%wG+-ݿMk#1]OkMoInRJjMw^#Lhmiݨ>&~a?_ʩ˟I|_^kK?ߵO"~^SyZv)k?wz?yo?0 G⟇p$y( GaZK;]՛Wc~C=~_MiCS}Fʟ{M{wwY{8ժ>8҆fm{n湌^3#{h^#ȹu|:;޷s<.Qt_/D9=U_n1gש}0CFq>#sFq[JoTv[_#{;o'ퟃIUZu8zd~qf1r}{|x5)]B8fQ]ا~oq˰GB6Kkn:&JwVYS)ӡq/KB>G2rxXa *WͿy]_?DK)eOM}u12kZb>bH2rK{.aFJ1vz5.czMLcp;LyP*>Z%ԯclwR(0ܺOөl1(s^}ǵY -1^LVk -9qBO['{hozߞ9.K3Nj#cS5{>3{[kVi3bzcil'#Ւj~1k|6zոR<5>=&KVիW8q~zZ^R㏋sL}F`vv)}cRJl}OssnՑ1Vo'z˿2>̵2s|]~ļǼ>jzZ{e+eOo ^__W5I!Ny[E#{aCݧ[3F~[_5S8| M@|_#?9Nw?>%Sؓ*}6зݺ}>đ54ۼywZm5׉aj{s}N~XZ~7֦o{N?o[vk97gP̻CqL瘞&Y}j2ŋjGWWW1~~~~-^,1g1|KﹼcST}4%d8vXb~`ݹZz B13pס8nHsl[3>^l;9ro:@u\_{-g:vf^rKƠ [mȸ('v;},cOٯS5VS#m8kwd=2sʍ|'8bW/3;[G ڥѧuGze{??2y>>;FZFOw:;u= si.. }ߋy??}Ǽz͛7qm5=w}Ck\jd1Be33'ǏWonnKi{Ijɤ68 ?l{??9募??'Sϟ}{S.3 $Otuw'#c♖X9K*r~td:6ߺ ౒|;tuy3??Sϧ$C)?߷Z#~~?G#=]#~^?w\=E}ϿM$~Oo|NP8<?#CHP8mϏWUl6S >SZ#ǵĹqaSz*-]+3rKHǻ>U}ҪHRVHl6{oqzw$6kfWo?T_m~H=rZeH=gqo31MH}ԏ˗1j.͛Փ'!=#Zm.6!}Jg}8VM}ޖȁ{`M⸥x{g5Uj/t͛w|Oǟj=S9??y~㟑qو469H1RO;kq;j콊k]M߁5ϜPVg-1o:|=ȼE'7>3vI)-~uD~Ǵ-͙֡G:}b^c̙kwzUJ_nz=gMU|[Fo{g>wcg?q6i-,1Hk{jwU'4 \ki};]y߷Wo5*;o9{63kd[6cժv_9kw;LkoP~r73Hm6|ZF6[eҿN?2oҸ3{Y5:D**2_Ƽ9v&mY;}yDq=zc2mlc[~U?~J圝/$[[]گZSMOFJ/xikw\z/Cgsz:Z/3zϥC[Fk;6&*//;ҾF,KK|ϋK?_'~N|-~~ nR|+k|Vߑ xqIkW旾KhѩMqNjCkWk<\Mo_|QM?oU7RۚԈH!3 H1&RJY:漞?zWJ)MxU}}w??>S#~u?/~'D鈟?(wq?6-~~F#?6uO[5y( G⟇p$۞u,v:]_Vɫxg畎yfJժm$Ye{̭Y/)%C,efz6kߛ~j>sf%u#5PDzE^x <%̫YU}2ʟ4~lM.4d#a۾כMxw.?vxS_4|}axonnb^3,3~Xbe1]WKשߡzsVu;3%_)ggGoKIf}194hUԙ󎫸@xx7a٪4Ι9wp+e$J;ש=}Ժ.5KSf '}c̥};_=}o9<:y-ǫg3o%O,Hfo{ۮOܧ3>;Fqd%K\kI]bb1|i>ÄJZhIjzMܾzqLJo:6O%Z?;ȸlojfӫW{>!WWWGżR/?яHKKO?4dnRE婟)Vvb9;پZy|Y_m'~N|^l[v#|&S?MLS^9.#~_+~VZu|ؠ병:r>5mG)rB^Ԏm"nk}wlc-juX?q=}4k#2~~T~G?ܼN}}g%~~N^#χO!~//s#~9ϋ?f-?/~~s?_'~'~.~oߋ#~>uB#~N}˼ 7 G⟇p$y(ɶw~Xz}Zn1Rp{-ͦ{^3뾕nz>MYN}o>-l#rsfi}:DݟYz+\M>S_bĒk䒤]V#gk1K8C}i)ώc˺P ^=͜#^b r앟Cǿ&_TONmb~ӹr4.kXY s~d3&˜-HϜ9'G=zI}f3}yn3s hf^%ZznO;V^Ovjoo}ggtϟ?e/B5v5"敤sߺLK7?W=42&~|Pgggߚ,RuO%~'~N#~okp?-4ObOu?_!9^χ}p~E鈟>5.쥈s%~{Ils??ϟy=?ϋg5}v3i{?#CHP8<?#p(eO)xZM!ߛWiu8T~g[5mꭗi匴Y9}׈}l+|ۮaA)ev4z|TK .xz>}a|gwzH6f/y%ivfyC{&#K.Q̶^ݏm2J}fzj~йO+ziͪR>}ZM<})ϼou5.o|f=[F^K|CjK|:2sZ/^ߍyG?|;gϞU=zTMy[yVGֶ{;q>YbԻc46h͹cӽ26] M$~~N^_/~moO<|N?yyYM:ǿ>n?0^ 1׹G~wۚ5hTᐾK{4֖:Kk 8}]W[kg۾_ ky3?~9?a;5YϿksz]sg?G|Cmߧ$~??g&~^ '~//'~zG<?#CHP8mp8K]VkH:}E̼&3~զ{MgZ?eG/o%p)cfc~ӞK%hWnCZ1Y6}vgGcdTMmV7rJ׫5ƛt* sڱj=&'&ߓ6gwv,W/2%___Ǽ}5vty/5u?pIf^ǡI9N[KC,aF-vsn~5rس5V?&s?eƱz܇_Zi==Meީ¸{f_J|HotqwWJy׽ϔۻ,9ϴn^qL?:9.jxwynkώc8Rc cԳ gJm#m/lt㬥q %L9{hi[*]esC#~>/ÿO<;}N=/~j5}2j'O_c  W/zP*?+|+GWj+>z7e3oUXqM3&m1ylssӵϧ~Zz;|TM?/~T!~"~~u??: e?>2"~~N^3Oϟ}ӎ`b^q[m&~^G}Ͽ+'~~F2_97 G⟇p$y(ɶ竲Z#e}z˟U-qMJuPex{v+vMZ9kGVF,G~ImVzH[l6߬P/Rr_"-4N}^7¸!Wx]@422=klۇ%=s^}5vwWMI57~o}+niUږt~$3i[G׈sF#RޭƱ3=ԶrJ5w/3Wvb>aK~vy0X92S#;2?OZϺjY#{\ޯl)E#zCgz=,UfMͬk3Ӷn}\SՓԾZ$F>#yͼ{Xj)>OGKϼKO[ Ksz|]}\5VU5O>?y$u8˿ӷ+D̼Ɯ,K9##l0uw޼ySM?jzǏ?8jϫ J]\\ļ㺼Ï)}Fƞ3DZ3ĜHq?Ϝog~2g3v߿g|P(?~?\֠yۇwMOkw2 J{ož45Meķŧd5ζRJ>mX_YgY}~jǡg߈e}_H&~>!cgzm%~׉#~+[|c#~ϩ>!~//6}eާ:?*'~^ ?_w}8<?#CHP8<dժjUղlu8~?ri{ֶtuRk2bf[^/{̧>ǙLWǑc֩ͬq>KXX&=SB^g1zCi|lUo*ݧbz;>W WΥq\i!y5[Pg(랶soT},'FR_o}K^M+7=ejM5}S>MZC}j={&K'PZ׸ױZZ[jFk2Z7Zϳ̶P:u9KK?_99?6Y~9װ˘z290h+I2syjK<;Fu982P{r]/HfG&5Or]pz<μ&c}ԼsLf\1S2rҹ|X⛝ͪ^CCSIa35{l3fι~HFۙI*u|z㏑%94אK)eʹ_^^Ƽx̳XƬʦsut?oqJ)铏|Y5_痰7-??'/^C9+{>kM=ϿM#~~'~9ϋ!~ϋyK?ߛ9y?߇ G⟇p$y(ɶwjukuu8~?;t.>_z>1Ϧ>譗sY3,?co%c>ɩw:~>%%3qf:[5>]5"z9Vr^Ktũqu==Uf2%qgѭ:xdY'=Kzc|Oqm6qd{7}777/jU5=7r{{[MOuߑZzzS}}H^KYbcgJN:<33}S=xG^j^y=v꿏mf_V؎>wZոNx9}Ni8Wq}]R^yfcڧ=[ޟF47>968351R%NW >G]'=4<Fim{޵!sShc2}GUu}Zu{\ˌog䡾CL׾u?1y'#e1G)йO sYN^JYu=8u'w6qn.WOӺMygCD9GSN=/8{g~ޮiR?{RMi5>ymzyM5.uVՋW ,6|vF[O33Y/LP꧚L.^KmnWW{~?O|鷪鏟RG2f~% ρH:ǴOz#Vgg]e终"~>u?确?_'~ <?#CHP8mpKqmZUL7MW^RJy5"֫u.I'mqp~ږ%o)Uӹż޼ySMu5:u8rt򽕥}KJdr?+e꫿\vޖϱ_mGm=kFs?giv\O?Zov[ %1onw5Wj}zǑ[P߶Y󺹭J)M}=&M} r:o)~=ǜf>l61qJFR}a}רt./ncq-նЎS׷e䙖{eo/?KzΏgic<ӳn_jwG*Gís9c972Os;_lON]ǘ>v`/7#wԾ61ro:so[is5/V}So]|i Ϛq8v=;/yr^b[G840缎ǛKkj&i^*.#kS+[ݹ>w_]J~nfS*y3Gf'zH}_},#LXinb๙7=J)Z7VhnGmRݧ=Ųt%k}ms2){&3)`)ݵ?slͶ}UJctscPga'iի1s׹n777߷vd>%mJ~W}uowKߚg˗zI5~\uϟUo=K1nNw.{_;q)n o?~\MY}Y2:^b,5`f3 ŷFjW;uZjZt2Zc[1R_ZW%#9׈߷?}Ͽnیߏ#~.~Z‰Ou\;u|cwluob#B\+\xsĻЌwz?}V_,%w߆*Zf]gf<_ԏOƼ>}^GϹuZߝzT|EXg_v5/K7=oF2?6O)G|_^?9?C|%]}z?s\?_-K|hu{?:u+%~.~>&~^jM_ះp$y( G⟇l~*^z~jz+jǏWWW1?~vvVM???yꤔ|.敶R,%>m9իj˗/HZ1@ Iy{.ߧmeumeuosl߭6՛uj#{™ju?RHHuc<.˹şǼ= [x!SK}-Ȗt]$s8w&ѹTqPǵ:Y#K{2:z^=?żqҦu\iL9rNeeb=GC3miu\)5goVs9C\_Is Ks%3zi9[Z{ywוSn)r>Wetw]f,8ʹg]߸ldd}vƼZj.//GUwuMX3m{YZO$=SJ;{G|6ֶ#cWj~"]ǻM5˟}z~W}g}Jf1>W>^)ժ=KBz'tW#>5^DSҷ#F-w>WY;}*'=Om)gZ#کݵ}پz;8.5#~N?{sʘUv??C5^|:2V_M5͛zzk7Vŋ1qaDZ~iq$1nѓ'ϫϟ?y(jUo۳ܯ^ncᐏkKw==UӿKz~&}G2f#~:>?/~>5#~>l?u\ &~>&~~Nm'~N|}?w\79~~YuCHP8<?#p8ls6ggg>ɓjRJyu5}Ww]+YuVU5R^J9W/~}}zEW^^yrqTSݏHy-xSwN[:^)n2\F6T^tFk'3d=?Ԫߴu}9kУGobNTŭ_z]C0Wܧ1y+1q:ؾbNWqakm,.6s~qwd亏:Nہ{>qNļH^Ǯ{^ϜXꞛ9ϒ컗x}v̜jEݹ_o]5p7rOZi1|LzZs ϔv\#㌇9Gu9wߜZzѻ&ļr)>3=OܗWklg>g/;j@OIFq[d8g3ed{O|m#=̱z:u7ymaOߏ٤b^Ϟ=ڧ5^#{V}wϴ}F,3zDZ3FRR[)%}_L\)6?VOKKM)lq.ث{pXk|gKH7ރv[qB9QnȺo{V]kHX612o0\k^?9u>|??ǩ˫E} ǏOx,YXyw8.C5b_ۿj?y1^︻RUuaW_=RJy֓>Rʪ&,RrJ 1)=;9[o*ٶk"~>gK!~^|O^JϿ_?G<?/~g~t}y;.?z)kϟC}w?/~mW"~^?ߓw/<p$y( G⟇l{~lʳg}闗Ŵ?~\Mv]饔rwwWM$uj:]st_yysLufy^u)]%hݻQr}2Nq̶T5e5αڏEq<~-=L/TonRJϾ_u{)l!z]R/$uuVOb^/!ηu~Qݯ I}NiPlI=7uKz^:>}$ָ$s9-3߃>#cw69V՚K5ҾF֯Hed>6G2\zsf1" [z3m3>1:O֑Y1Gyc,qͼs_jG#_\j1Wc?85MRzk2}WM/%Uc3mwmfHZO[y͜wN+}MDW/c^?i/{R>}ZM㏫|I룏>zIZت1!}{~zDzJJ^#؆IF^6/jPH:#$SDy|׍λG?M ~O [됯^ՏիMcɣj뗯ϫתļ~~E׿ozƼ~w~~y^c]}{wonX=s]ݣ&xsCߊoZ].-n;&MN??j+??:u=E|_??/~]8u^#׉O+~N}~%OG|S9O?饈??y"~+-?P8<?#CH=?8/z/}"Rzpju+Tvj1mKy]]]ż~+R޼ySMe5/yz%]RJvT_[-kܫ~ߛȹ+Ǝ?mdk2xGHZ'<ֵ=%K%FcgYKk#%UF7?K;\}k/_RMyŦGIjw6~.77ʡ>nR^|E5}unP~߶9gm*RֱeRʪVm+kդ[J)u}6suqzs]jh}&Z9?;.49}׾^Z{?qv,gԻ`|yﲎm8zvvVM$}fjǏNJ=`һBuL矎k=e8c>k?k)1M+}{{WFη>ϪV^_jwݘW}:^ gp+籌$.|l7az}aݿ֑٤u})UݥsY's`{R*Wď7;O:yY5}׉#~>}N3!~/S?g%T~󺽭X|׿Ә-]˜m񿬦~?uS~QW_4ɓj{aK\w_?(敾9ۄw]0:qwc!;~qooӚ[XS}o)<}Q5ϫ?|KGsw?y3#~tyoNPyuj#~~N^?_#~~&~N|_^WK|q?m5޷Py( G⟇p$y(ɶ<{^~ZtZuRfUӷ\Ui[:VUw]5c^o޼|r{{[MOǛKr88S:t\-])#33>Y@ - _Y˟S=.[_{?XGq}Zm{f[MRݏs1Ǐc^ORMu5˗b^U/sǥGpCEm8juWlG}}ZJ)7wsYcpYs}?=Iq~?+z^Q5i+'pXkN}j3>T~MK9O雩QD/1yo#uw֜`q3K)ڧt]FwS#zD}df_4^q~k_82DOEZ\V5ܙcϑϔv}x5R{H?X}Ի]g^o3T#c%mFʟ>uMtcHo٥Af7 3^3ϣGHHe_Lo!b^i[ʫu;޹RJ]J21L3LNG[α;ؑw&úo)~]/|1GzWW=zIq~[f>WggJ,#f)=9Z\nYC^y7󋍼va_3f̜oG{Jo9;M}n䁾?_'~K?? }'~^|[)~O?M[_Tӯ.ϫog.Z:)%_^/[~^vׯ^ļ~pׇ<&؆cwmvo%_eSy}w);&z r mw*zN2?~\J)z$:d%ֳgj}SvJ?G|_^?/~]G?e?_'~:#~>}y?.&~^ ?_'~>\vk:s&ϟ>py( G⟇p$۞r}}}c)ZfSMnqvv]]5ŋqT'_+mKyp8T}K~yyZիW]eYB2˩+y#Y?RQVHG%ߖT~>cח̼#F&zu#muD﹌3z2_կJcқMlS;~q5}߸=wz}mZ$&3Fx#Pߟ޷wz{2RGRj? ,1^\Jb3efZ{gO+|LDRqvBq22Y~)c<̵%%8C/Wo_T-q*>L#m"YZyrUvRiSd%4fo}c]0;|+go|n9>l#52}32;ρ󋋸-MXkͤuuuՕ^J~v]si=z7[{ߵ͛jȜ`zs982Nջ2s=iM{8}:K+}7[J>~R~1?w(^_1t㽽y~j5+C\\7ӷ9C[Զs`y56xk0yKF@zo=:dyS~;rw :??ϋ!~~S?T[*~g?Y5/?~\-1.<}ZMOb^ɫVJRg?_`Ӻx)yɨ1^<ד'Ob^?O/^?{Z(\}7Oђ!Z7b֍7Or[ϫ?0߹s?6g䕜:^xV_?no~??Ye"~|s?6u#~!~^ϋA|>?3kl!~'/u{ ț>CHP8<?#Zg٤mb^Ԏ?qssSMM5իW1RJz(fSMOdK6]5}:}UFKj/v=y2Fs\|Ҷ=VO~#efnKH;m~޺_1rc׫*S#}HTߗRe}ׯ?_żV>ZslW_e)ǘ$cV4QzX網nl.('ţj'Ob^;Ozҳs^ߒe樨5Hul KwWymS[m>sL#z: G.q}7h3k_}K۽Fi}b|:jW/KܿOffϧ%xuKq̅v̾hPoMzud^zȘxTFk<24̵$ρ{Gmͦ;^KgJKq=~e2k3ǮW︬%[Z}qRu?s/uַ U}O&kDKT_3LomgӶeddO8˗/Si]Ǐ??1ѣj~я~TMO׾5J\^^Vӗ)WổMiwIJރӹ/5Zs߳:kmχRr[Vqz f~ЪI:Vۜy##D'K|w&~ݷK#~^q!~97}McX5!<}w]Mq5/c^_]WmߖRm}|拟UӷK)yߟ;kדӘ^/~wߍyOi5Ǽǵڄw}&in*Sz[Ǐ[}N=LO???%}f_m?6s!~޲[5o:>;/sx'&~^1h??:募"~>{P?7gx`P8<?#CHP8m^n?RJxի]5/2u}}]MZ~Tͦ;t3ҦmM/ڏWj/隼y󦻜ֵOzDGIuLǛunn8o7~GUV{Fu^;rϝ[eh{K,Gl͑~5o޾{߭ovkoVdzW8]>rvV?@K:zdLk]o)VJކqdPK)ʫx"\ponWG^=zTMRuLf>StݗzwLk[seǑJ)##$=#zP[wP|to/紮Io{پZmf,LiI}6Gx#ρh:=SƬșs!@8_6c/3Fkf12#GPo6ٻ642r#Kyχ:ۻ{ʩTRayYyz﯑wk3o:FFQ{Tתv[ {k:SçR-K|37|w 5o;^j;fC<QX)>ɓOP;&oݏ׾uoK<[tJm2_^^v̾(yKnw(oi 7\Rgb^鏮k|\ϟ˹"3貾;![v;"I_oZ}#|jwM~nn{;G22O1M\so#s\I(eY(B|׉P时CHP8<?#xZ~~ssӝ׫Wo޼ymS]饔jRY'vjpyVjz:T~ҶWfQJ+fM$#՛>W:fӝ,k2Mo5Y_3oĽ*g5=uǥSJYO~j?oaZJ)ٳjj?X.8/yral1KI8YrNj _7z]^|:µcRJ *\X=]Ўһc)V-}8t^n}A):>shf_z->y顎Wӽ2sL>Rǽ}PDowk?93K|xݝ 353qf^4ȫe4G>ݏ܏Y\)f/1GߑJلqj9&ާ3Ľ u^hD3ecy̼^3do=4g3qgWy902OTm5+#x/QrZ}aoӺO[1߷꾯%קvaK+!Z;1G.1fiIg[k0RۺqR(PJ} ݞǬ.HWOb^OmM}MǼ^܅wZ7w󫼖ٯѧ~ BOa"~t;k>?G&}'~D|%~Fq/>ϋyo?/~m'?_%~oS8_z㟇p$y( G~+/_~{{yu5իW7oļnnnq!u}}լV2wWJoc:^ؒe}gO#5gfygMf贈kWfeo3%Σ%ᴯ.Im'zqyJ~o;ӟ_j"jf}VMORJ>'c^C .&v*a\61iq{V]vƅp[=-ulca 7ݕR!eǤmI >)]Z29ؑ}R5s<{aᴯSρJ;272R<ϗGK9+xw[?%1j= =ӸunCy|?Z8x6/k-}Ycwu3*{)#y];<#^38iV9)}K} sF$zJ|؇ u}<;ȭwߘZb|{pޚ^zlkydM똾k]U^}i5ٳgV[M/o$[״o\^iWuDs}lZ{rt\)VO{H[MI~}uyojRʓ'O驟hGmc\qC9؄yͦSRJ),'{Viܙ^J/V{>驿)}_9|#ҷix?s|wIΧ~?:jV} -e~|s??}??u.ϿzYϿE5G?ӘWOPv)տ ߐ~ xe>{V_6@sg&S=o5kw4;>yTMyZMxyM5Ik5J)Ih1=RJ9zϚIDs9!~Nq?e?>s:uw/c)OϿsm;6&~^|O^:tU+eRF)M?x`P8<?#CHP8mϏoK?qnWMżVU5}FJ/S}5=G)ciWږwtJuڧ7foo:N#\l6])c)>ii޺{jEVfjP﹑YC1׹,q}g}ӟgǼ=ŋja5(G?yn]}^9Y׏+'68~۳jX뒞!1}nj#XcdlCM5&!X-VpZ.w7!1^fT0s"Y %,c0;DV -t75UYoq_ϋ?ͫxIf|L틏O$K#|f=~,59i~9hh-u?2V}o^#>zڻfӮws]v=_k9koMzZJ)]8{^ՙms{~dN?c$HC2F4O]J>,n{Q51}iPv kc_^5}y:~w_\#...Ӷt߿~_:敶2Z}N2xq2Bﻼ 6}WRJI5OcqKs3~_Nǎ'K|;R^yn{Nx#e^:n;|~O|>#~G|_^}{{Y]ǎcY>նu|v{u3?äV sū1Ǐrٿ(U_ukN^RJ2}pU)\>#z[7bo7C)y}+w?s\K?Yy$~y+K??ߗ}'{.u߾}}ϋ#~K?_#~^79u?_'~r?G|1& ⟇p y(IϏw]y՝:ҴmZuR}=}P3ZJ5R8\?~RMcRJ?z^6Z?y=ԧ Cr(}[#T~nF[v61u yw鹙;oitR7>=nfv9T)1O ujQÆpOrk݇벿}rv6zt~w)3e.{kk)9}sYO$KqzGRwUsrg>Gfιc4*s1.mf[nϴucRe|KD{_:9|dv߫uϧJ#1}4P[}tZlZRzޛ_fާK﵌-4ŇVy}}H9Wx75Rƛ7o>i[g1t|?uqqQM???*|/_;FжoP9tƷ}iLMᚤ1k䛰ϪEs/}{\'>8vxqXc}zcAF-aYu?G|>#9.uKZ9Z뷙ޥ~__<Ѹỽpbr:ݜji}ۓV?(Wj߯+\ruוy`)IzG0|/56lu<߯Q{Vu|wҺ>o޼1/jzfR>jwj'Ob^&c'neor>&vr Rc*U K46hؤv[aMw36GiK|y_|?12If>GWz4s>w׬q=]z[@|O_ʱ+:vlH"~?_'~~NKxֲFE]#g]1uۚ7_}YMWM<}R榔|/RJٜշOOqiѾ<)5޿Xzr9 }|)<U[Gs|痰q:o>},??:w??DZ畍=)[]˟y$~^}׉o.q#T柇p y( ⟇xۗׯ_I_ mmCz7RVU5}uRvRq$q%<Ǒ{hOz˟yoJcwv}HY̲GGܽ=Y3LKki<7OTӿ⋘mq]\\ļ^^]US}vϫJp::_ߴ%5VK bfQ^oM=ָoSJ.^5n-ShˬyӪ]j}Iv;(gc ;K׍Xy:26X-V:g=ro]fA4˟mD[Mޥ?=?sՌU^(ѣj?ƼҖM'NcQY*Q'}!N|o5J)e}Q?U&sx??ûc)wig8=/~J)8Eۧ?=啈?mޕwIR'+1'5>~/~OW"@P8<?C@Nz~Zŝ~IRjj߻On+~jz]?WWW1&iJ%]Ǚu{?n6~9ߛ׬ߏ˸f^mbf1~Xz.cշϪ}qu=3%:]2ZM4+TWqu}[zֶ>WW7/c^/U{ rrR?_UM_8c c0*69J뎋Jc$r j76]}[C4>`"1ľqmS Mh}VL|}Ǜ7yx7EiNظ&i7vK ,<K)m:[[Jρu)#wG<(s^3&]3쓒Vw7Ie=|Mz]ہeϡs}F6i֚Q:<7wm?>j]Zym݇yvMtT!?2I瘎{aCc cUsY`/{եfW% w3c9W{\4K> hs+ջh4r\# Sݮ~S7ZٕVjֶ8#rnn1XNV/ۜï5joqm4.nLmuZi}gq}շmw|iRVRs{ՏRa5y51:w}~6wiq^Ǘ1y^D}{בqR^#Z߽Ӓ9˗/c^Ǜ\ڷĥ1+ϟ?~={VMя~I%w#rvvVMo}ʿ8M|voz{Wzܔ)J/tka8ON5j{gd Dsw}%~_χt}?G]׉2~WF|K|w?l#~N]?K|6-P8<?C@NzwwҶmK)eZULӶTFJ}Z:t.AϴˑOZurrRRKct.16D=G0O.ө륮6[]A})݋mգMWce8G}Zu<#e)JK5H5týjiX_qIC}]&wᙚF;$or}mo駛Xfh_}w_MmwTӯm5}_5j8R))}hwώom0ݜUWvW$WoL;ل 2Ƕс-04ӔWgt]6\fGLzǾZ4fIk>[cysdi>Ki^ϡֻtOgZ=׎Z>{ I5^&fסV5 jd,c ƻ޾5sSobɍ"~]tXzgG.b^""=nhop50 mo;?ȷ}[uw<9_K)䬯.We@^im~ϕ?f/ΩeC_ǼjY^8GUS=^w˥Iy5 o^ha:Ku4ۇf46=q^ߜ_7q" V6k q\B&8O>Yl$ֻ4XNo%Leމ}BkW|޻Mf\Y"5IW2Mۻov??_'~N,{2?$Wg׿uWm㻦I_\9볳z\6q(¶6gǼ|!zT?7CRW_2URJz0q5}߱CˈqO2J?_j:o{I׉ϋ[%~^7?M翬?}׈+7~x@C@P8<?C@Nzw8{_L3™hN&_Gj{iF9)nB=]g?ڒ86|Xbs 鶞~y77BBzj;smcs>lk¹'c=G}'3Ǒq7/r?aӸ!|Z>i0QJYOeSQ}>zK52e4%\ 1Ck[S败^F_4jww"|{#wQzٴJ߳vcc;쾮SлVFּsZ{}߇5}mxKpW|Z`{;zvv{&3Z8,#+`cn}f-?F^2NN93k''&/_>}t\9ji},j)/؅5rvv6-S]ކk#k#Zc^ļxnHk^j-ǏWӿ꫘/>y5i{uzi}"M*g>V9Pf7Ni; d'CVmOqFa7ot~/S___=z3p<)cCc)??gcJ}??/~fϯ}&ޅ8]~R7鏮/b^o޼?{R4z-mKw/?g1;w {Ϫ :?l.ߐ\5)7z Ikŋ8?|m}y<1f&~ ]׉K|w}]??>?χ} ~.~FϋRߋJ?G|/5???oDy( ⟇p '32YVq~ʫZk9VgZ:RKrFKEu_]Ko^}o6m.mi_KH^SzhFWs4{Z~uU}v[}/Jۮ_ż7?jv]ܶIP9܇-1^<|YUԯmke}rZOouV똮Kzv1i-P隤R#_ۛz>g&7*e\pu{>gdysUm_|UMϫ?Oc^?O?j{?+ݏZ}1cnU]}˱׵id>-Su}Ҳ{XSRĨwK;:yGYJ=mw-~/~=3~>}sSJ7,/^۞^9 zj}ے~\:^Ư׋pOjy,n~W=zJuIu}in_޷"~׉?WƱ?w?_'~.KM??:I׉Ko?/~ϋCʟϱ׵I?/~;?C@P8<Vߵ^oGݧ%kf3+Rױu?2n]nά޲gK?rKHm_KsKѻ}Hi*/ne{b{{ļR}tRҙzJZw#dո&ψV[ok]dq g>\:fSⷻmµmeݨ|yq~~s}[M?==el^|>%3qm?fΓzKksS]k)q}usԑZ\! ]}ZqvԻ3rK^kuMRGΓ,~=y޻ϱ~x%~}\پNN?Okۼkܹ[5sT#6s֩Gu8s1.G{hid7#ϡZ|v,syyYM???_\\ļ>}|nֻۜoGi6:ߎ|S;1rzV31}2һt>{,ŋj~juO>?~R+HVzױ*q3͚sǜ.5:ͩOsK mbd|,曾9;g;7۳uy-&~߾K;^E G?RfSWrUkuY:RU=zCʩ4|uQ5~~ozw];OƼ>ji^Wz[rHc g6D4KKӶRJ99Z#qf?J<Ǒ61%zYwn;j3v1@:ǥoY?}*{yWuyu Yҹ$leV[m"skW󶍾0UJoqV-(3֯zݶz^_5v:뫫ji+]ͦo>PJ)o=GIh+3޼ZvsdZыeJ鯯9y.9uc;v{.<5֯g3҆X۝Yи0Hsc7IC\on#cxf8c$Gk=:Rf>`^Wwwȭ%֌fkzi\8ssssӽv[F&ϼzǤ-K<[kkh%}{TJ~/͛71ԾGwyuHzSJsNF]mg}z ϧ]ugD=׋/o_}U5O?___Ǽvq{){dlPau?G1?Tr}U?^sijF2YMZE4)!=>a1ᾮ|F,s_ubLK\vݷ'zՙx;s\vU9zVߕjzOOOggwI}ҩuqf_ܛRsիWq[GsL5S3e昸 %[bu1nsZ{q]^^V?GżJGԯWJu?2|Z-V;Yj<,5=̵꫷,-K;}шw[S_v׉Co??y=;'K?jzge۸?߫ޓjz.woEn^D)\wKI>&RO뱔^?~\MJ/?Oc^xj˗]J)7@]߆c["kmᆴ[[#~c?Ͽ}ٿo[/s;.s?CN|>?/~ϋ&IeG|}Ͽ}y_ ⟇p y(IeI]VqO+}dq9q-aH>)}uq['zw{\#.e&u>#}{qFo*12-g,Lٗp\8z`lkTooocV:;O9ZgoRͧ[*hm.ٯ~t}K)ec:Qm9zl}7slusxycfgϞUӯ4oO3%iةcF^u^ۛR$fVy̬%̜۴,fuʟy?&^{[8sNk5ϴZ}L~7ijyKf>7G}}n\C=v_[/3,#ϧK\ccdd}C̼z|&w@ 5o3K9~_,1NRs>4敶u׶ONkd-<{;z^Okck1gȳ榻&Rl ۆ2N:ac ѾS^R>6ˋc^^?mi?y=fG~Ĝ4r\#z}]Ϙǽ3ǫ#wKc1s3;#>F>Ipϱz??|}y?em5|w6۱;toM6t..7.2p󯾮oC>ũ}{i̫~SM:mXo>쳘u&d>׷R>jwoҭ}~~UF v_{f?n8wkK;BrjqWw;v39vK=&MϋC_D]?o[/}?yo^us?v}?}w{?C@P8<?99~jWn׽O:VrFJR=7m[/Hz9k{(sݧu~>]e̼Gk_R9fZ^#}z{-kc}j۽1Ko[P=9_ֳ.l:f})Jm&nyuvrZln=m"MY{qӭ~pM؊X9]lJK>20fJW⢚*9]=rR?{M=nct?yJV#Zפw zm>qlиOyuc ͉^\{z#kI3-1&YJF7Zf}zR3xTu꥕HZbmwfփ0s2Β5k3,faf_8|w_ʫ]1=uKLWWk;6iՑ}z+~mzknz%L,wuxiuoczW)ݭ54{\Cm=Svz_82zȸXk#C5VLk;/E+'OT?䓘_MQ5<W_|YMoi[#ʥ2Z}1qo32WẔzgeݙf~ߏ _Y{.kd0u59968 ʍ1*^مw;v|,:}??w*~?_)[|=|j/»RJyo~ege5||ׯK)e^^^Ƽ^^տx^RJyi5=}qNjzc^?jUS7W:?l#c)wG]y:-C|GK|}?G|>?_'~ϋoyo>Oo^k1W6C@P8<?9~_vZ>mR^饔S)iyjc:f}\mu1}rGQ2}j]:j}o-mbj]t\#c*MuWHܚ.IתeZz鸚s8%eyҏ}GVw]XUuּnù:;;&u~~^qӚz9Ms;mK.}:W:vo1^ݮ~[ώ4YGv+ukϾI('u+hQO<ӓjzJ)739H^~gd|(LK%%3IǞӎ30r\f{kZe+޹ȸf:L3׉Gj+ssLu?>1smw꼲s=vw-xG[#kk#3yogk^Wy{/~:\'yJzw#k#ڽq}=PSH5>A9.'R9n^k}o4M+GO>[}d|`f[tiw3rV}V/..闗RJ99^uZizg7̱۫1lf#cϑMoCz,+yy-y*jI+SO>1GUSj7oj靧coF7~~lo,:/LvV׻S;̬ǹe߅bfYFWo}moYf׬ߗRn7+-o޼H2u},QJ|oV?_'~yo.~~>9w}{J|%]|W^#Ï^M?qs_N:)Req;i4\c^o2o> *|Gg?ik|P?Ojۥ>1^/~~N^~g7v챉ϋK|_K|YKo?/~qn=e?/~m#~^|o_FkuC|'~~N$ ;P8<?C@NzwXj5`T;huױ5=s]饔rrRZ}fgggy6rifi]_^ǼWF}N+i݋#T{MZ1Oq=4KjHkziFYؾk~b~5^KVVyܶކƤǵZ߯WB3-s?y]__Wӷz}ļ=zTMO:لzIRJӓӸO|m"z]Ǧ֯a)`[=gYn`5\FFfme2yl3ds17G܇׮÷k3~*dad]}ZR}[oϔmWmeX{_fkM\8Gֵx6zGĻwץk}22o_3Ǚ.̓GCZmZͫ^37XbMHj ~"}:ֶֻ\FoZF9f΃ZϺz9|^%+;qӻ]}wu{Uv)\]ye5իW1ׯ_w?~N}[w4%gl州Mƞz1Szȼ[zFFF^ǙsKS*d-|d;鋖qY'^vO?[B"~^!?/~m7kk\۷=~G|1O~}o/9yC|u:ӋyyYO*DcxO?yӟUӿzӘW$Ċ1>V%}gjg94G?_'~[yC?_'~Nq?~4/w??û|?w\竹u/~~>!~N]?G]??:w͌7"C@P8<?C@Nz~ZzFWU5}w3O&)}D:m#Ǖv4V{rxGWo9K'vR[Yg99궛ZѪV={)#5M=?¯Gk KW|䡙9Nh#ܾ%c Ksyc+V^^fױ3j*c>cddiqC3i[[j韣vQVJsiwuoY۹*#}]^^mmMjg/}֌5$#urzZ>v=޻RMwY5͛7]eux82VW:曛ױZ]׿9sk)#D﷣>zdmçT~z}5p#w滴Ȼ&?Wƞe^HZ޵H_k@m4]9@A|-ϋ?$}=K/>y}w}Y5߭RIt.=J)lwo~| }O~jϫO{  }_勘E5ѣc^_~e5;/:??jZ霟տ??DZc?-%~׉/E|"~9׉#~.w!~~u%~~N^Ͽmz)M"~O/E?ߓWop y( ⟇p '}?ߗ~'uZ=*I⶙W϶ĵ9Ǚn啌o>777Y&nmG/X~-ntR;O6o=7g6R/33x{xcyF4Fy뾲G':}BzkmsyqC=:3ҥ߇ ]n+}V6YzE~\z1v㥺Lm+M=}/MXJ)cNm2+ggyM+tYSRϜs28޲[k\f)VY62Jz8U̹z}ZM hKg[$pGKXjĚmem!g?|}sh9[M\s9muݑk[IZǛX.32&M12cXh3Wo;Zj^?釗boJ?޶ҒONsY Խs<=RJ99mw?f~jgޏc{U'KZyo[Mꫯb^uyq߉>~~yyYMOK?[;ԙz3j-gBH1s{;c3kdܽX}'8sjdoɈدny}K8g`>[b&݇]v)XwDۧm^]~ ~~}ϿbsϾy=yZUi;rG#q{n$mb1ss 3#^-SLWWv۝jPwVeOyQ:;Va8]'= ǵ urR?WPKtJ)egTӛ1ۛz\~\F9Vjf.eYf>Sz>-1)c>{+ 3ĽeWmr^{i=SzײF֥FY&[Hi{1c1׌f\]qvZHK~t_,ؖG/KgFY>cT_5Ye,|mGK}[M} eļnodo^̹~XGȷ&I:ޙN,цk!}ǏW///c^;[ǭH\u=fZbmk6g J)ѣG]e~*}ZO?U?裘|PMi5m+Ն;}}12O}ޱuϥ{"R~s{-~0Vgz֘eT_336PogkcjIGfKmb561@yI#~^7?#yxho|.ٳgme㛌ZYU#?勘E5~'1OWn~=NV!>o޼yoOo_ļNNme-m9K]XO}f?3cӟ݉7׉#~[%~??FKo?#~%~^7͌⟇p y( ⟇Vmw϶^7v=Yeoۃ?r\#yD3˘y,U2WVt#}woz})cdf?<ϭfvwcr_zX_#u?YƘ21o6߷}Zcպ_ye}zZMߜV<]n}i8p.u;f1b:>Ffzo>ǑF=s1uFָ;}F^z{[f9:ˈc>u% Gq3l_K }?&m3w1s33}f|G9=9vb;2_blzƈ%u}NgJo[muo8vDjCnJoϻҿoc^٧_TOj?jRrߖߏy%/jӶ~uI oY8g|qɦ!y>&K759 ߓuZb-ѱcg~z_YvkKN#JW[Z^JE|_?/~Mo/~9cO]:?_wzyuo>y}ч>;Ӌ;7/:=OƼ~q5OߩRʾK>y~uUR"˘W%~?ѳWfQ]9;5~??iUSϋ?d3?H?}ss\U|_^#-?{^|w?M#~~}W~.~{^m7"C@P8<?99Vy,]G^tݮ+LK]YMH^K\$w۽mu>]szju\k}uH^nznWwկd}.g]q5ψKxwǕi9]oxzrZM߆Zcɦ^|8ދm=p2$o⶚vm6sLkhv^n񞞞u畎l\:~\ױUh"}ҲxVz1r#cGug̱%R%̼^#O-Tfc3_hUf66gGfw-}f^Xq̵cgqg}k̜lFƱَ|<~dZ̖x6s}D*'q1G{״%9i_.5~]QJY{muswʫwcc{FczغӵO_/~QMo~SMﹶ]އ~XMc^iӧOꪚŋjGb^Yu&Zqˬqϼ1><%\\ ;^F֏9qF]оy3 7IxM\ sȽ{\K}3w]7yhOm&~Na?_'~95-u=scKhϋM7c^UGOWӯr^Wo2^zUMOJ)"zgٟY>uV꫘W*vO??yֿ I{17%~oCsqtr_f?_'~,A]k#~.Qv}k?<}/E|"~[e?C]?_K|5]2'{K|a=C@P8<?99VjZ^uRJn?V=)-:5M$sLv]WV:-Io2r}h3:yzi夼Fkt13}82FWo^K6va;H/p}s\ZջOB7uūu#n?[3F,Ikq}}K)>9==*|oǻqzs^MOոMxqyZ/nmO ~ߜU85&N>srR})܄^םiC^J)R/L5s`J7&m[F)}si?q Ϻ>}/6<iL->p\y;}yCL]Anùmcﹴ֥ҽ__]9Oc&75֘euTZؒ`~_Jn_#6_#~]N׍>7cYNxu}QKsޚ2=F#me #=30]4^m/LzmuOkMwÜ3jQ>K>0Mo~:+yn%3ZhW^߬ϑ[]~m|L#Zo~qqѕ^J#{^zq-q}G,Es>i->'{ssi/9]ٴ,MX͛7yo|2_y^}ߕReM$]zowc.'yeZE.72Zw:9ǎė@Y]a8ZOiǗ}Wj}B"WgJ|.qҸ&雃soKo*Z~.p.X}^|}Rr¹hu\o"*W2+|÷ϋ61zA:R ׮q>{?u_m]W713~b^߯WӿꋘͶӟZM|ԟoUS{?y׿Q5AQYM67WuCż}7^W/|?'GOVJ)׿M5"|?M߷2D^|yw~-~J|9?W?_'~~t}O%~m?/~ϋ&!~g}ϿM7?'+w1?P8<?C@P8VՔS>Gyh}w݁dg^zl^fyt:T~ڧui[J#ǕoK:u?҆m5;T/m-j+M} c)}mu\?mqX%_q^Rrk>}F~ϔu:KhGa}ޥqmyؙkRJ㪷_71ӳzLm)%^TWWW1jfS?3-SUi5}ON9{(nWOo.l{gļΪWzR'_M5}n[/RNuL}w~X`J㢘U9uRjys;{ od ǵK80&Oղ RNV{;6KQOmj_y̒^2q,(6G c]VI:_tOnø\8g`)k3#s޲K/vqW==J뙖Z۷Ozn[363s5Ϊi{bd2&#H_[_-#ZZIzyFLi]3]+'Z}KY'-{ou랽}H}\rfgji\6r3SzZcjY\zqZs4kHgWKYqYjލalمrnӳnʬ\NWk(aS U25Ϧv_+_ZɣGK}M7O)z 7 ՚S\gIFqpogM)N'֕K)eex>GZHoEG8*0^^mx^֜ޫ􋋋W'R^g1/><^wSM'Grݟ?=׾no޹.~0U4:G(m~b>g*%GWc٦zluJ4OiYUJ)mPXck<<+T~ho=+9sx\ 61O6d+mJ/tZǕΥ}VJvtnCoNI.}X\0 7ہRx&%uއRcݵs{S]AZ?OT;s3W&jww.z9׉K|?yߑmc]\|. WƼ~𣏪am,'??~wJ)esu5}"IO~j_俉yݏuو-jsꫯb^ϿoWj?b^W/'㘗ooѥM!~^*w?M??>u\y:ߋ!~tu?/~ϋ{󡐔,~o?/~ϋ<?C@P8VU}W̲{?9~vjziiV^yǬtc?}meiH)ʘٯf3~_n[:znyJ[Vױ+4ժ:s/]'V}j\i]MؔUCV[vj6c.%.W>R޼yzyܖm5$OUqv}q?6MvzzZM sN6Lel61ǏW75|/*陲CAy5R:*̔IjרϏ܆a.`F}^/󥔲N+zJ3RV=z%>si粋mU_a\8qgd>қL3Xbm%]zY1[|\ϔ}fWɫʞ&G롭-_iӶ{OJOsRZǛ7a{%vf}\'nI}7ro|/8%ν2s9޼O]ЪPN6iNJk؛%12 T9z|GИ˕BstB_ܺ^AfE/_\]q]^^ƼYWr{{]M?"&{긙Wo%;Hi!Tѭw^&-TyQW/...%tϷ򺽭Ϟ=׿yg?M5>z gu^R^ w;4v}glOl5ko}cRJ٧5h\RJ٧gZ&KlCͤ꥔x>Ho^W\wP3f~Cz\?~4GN}QoRJIc>xu|,&Ӭt\a^oz<{ϱur^yl9MX:z~o7o{=4q_O>ZywY5~:Ǣ?WFohV/^ļտoM5?q+}S/jwO~jz$7/2uub3]Q)|'߫u~OVӿ=oJ)]Z^ͭ7~W?_!~Xe?_'~~q=ucǾ*c)?ױ?_'~zfkϿq?C|w?CۗQYeK=ey43~~| p y( ⟇dwoM/jՕ2}Ԫfs5Gn׵fyʹuy<ޙZ:t[efHifHu^Je粄8,YXbji+ ļ6}ӁU4=Vwۘm}M54m֍6tv~^oo9nW1ju5$i=}p嫰VN~iڜ=Ke {>9 R{hccr쵑2۾F6#?~>J;3G1Q`~-m}coڪkshfK;5R_yS[?9u}>Һz7L#mr1[,ub{Gk8%޹Kf>[vYۅ{~uu9ƚYI}u^~e5=s^|JpӻRJ/^'?y_u5=?Ø'|RMWMq̫{3+}Q[}nJ7sz6c#Kx[J)S}KcYF) ]֥ ֽoR3lwi,Z;ZK|7Z&%VK|~ jz$[?Ӹ7Mo_\\T?jOm?Q5z=~UK)_ծ&=GzRH|o}דO~-uE|_3??^'w? ?饈K|_?e?叜[Rꪤ{~KC^#b],]eۘWg2瞮j_a?ԧU=yX8/ǼΫ\_]ǼNqBUJ)~\ONOs(Wgnrs ϴ׮QĮh%)K{-1Θid:C'%K%Kwi ]r̵c;q?20bf?kZL3绣}ӱәz*nKs4Zj/C{}Ls|wH^z3gynyg1߆u%#e,qlDJ9Rϴ~n_XOOp|/(wѪӧqe5<7Ә*D#m(}z3of9s~D6^X W}yիjzk%wF/c^QM믫/_yO?b^~Vgm»Uc'Sz}yx =[MZqevi J|ﶪdFP~\ҨCv#0ۜ%Iϴx^Y}ֶw#?cַ/G:#m%lvʫMsLzGoGo9#ysmRj{0Я`'busyn~x=OeR>YR[l6z^˟,qD}?y#>R]m5=Kj'KxU~:fZ}6%KVZ瘜u{[zmώuOP:MusS?]^կE#=C[OsUwi̴NcFԙszh%9srz?NX)5u̶: \g)}Jϛگ.OsdG6u\j}潕戩[:Wgٽc?Knh$>2Zy>[fc5r9^K}(tzp,|؉(ޘ5q12 \J3Ҹ7=×RI3ϣGb^O:srR&'>l[ۼa|Z:X*{Mj9fi4G^ܶi\~>Vy 8Of%Ze18wVٽ82]}]HFyG}yc[鋵ٯ܏#Ӷo'ug?߻F;秔#~N|c?/~?8v~^V89~W:<74OWME+}wuu]M*cUū1_/߄2Z7DxŸٿsJ,?o|o.~c3&ҘeĻr:u_?G'~^!?ߓ{.?/~+:w?lt>秔/~N!~ef-䟇p y( r}ٗv{'}Z}Ҷq]饔߫UFg>Kd]/k{hIۺ&Kھj}j)s])c^c2r{2ϼZzk}̼&I~甐HX/3k|l9JslN13MVk]xֵ=%~.pnnoc^WWWOh䵎m5~_?tuo}+'y¹6귔R^|YMM5}T'Rmf3c1#c%23ǑKf^%%,1OY?-mbd=kFyRy-]Y}y\~'K>LNRx1zo1=3ն\{cWFkdL嵯73uݷxc=dfΥu:׭kk*Tz_+ᛛ^MO_~e~rR<>y}߯F^3 eZcLKm"fޏpȻ|Ji)O$>񓊒ǒ鸚Oq1SaRlj}?zcd|;f3R[5%K|'S9]ZKa??HgwH=-kc@_ͫK#ŤwYJ)cj'BW%Jx#W_yM5}s ep}K)efS?ɓU5=ׯ^Ǽ֯P:u+7|R=Ju>+ELoWzżҽ_^{UJ)/^}SM?=x~ z-u3˹Լf:8'QGRy.xskzi]KKH~fzZ9}l':%H^k 3ͼ^gJzۉgrjZ>猬s^K'ffSֶ֕}#]ǙGo+vuzkݯ|dsgj˗/c^oo'گO?IK)>?}|w;os}nxc9ܷ!=jURKf7a Kcַr!}=*0Y7DjoGƱ#5~]_7Ϙ=o*|`sf {8R9/fKk;gkټ ~ ~Nӿ#=)[CO}?NϧoB5>zW1'__ƼͿ7W/1?b^jOjb^?V=/~}oz.'Tӟ?zϟwq` I[ϟ9y-A-~NϽΔKi?c2~S|_^#?$~^qN?/~!=e?_'~!}]g?ZcnK?fpx(p"~<NdǫRjz^ImujpJ/fUFGY"t*c#yhmKy<3{aⳕ9ޙ+s:O8gHv~s͛jzzj?=__ż7xjzxQ㾽gxu׻tC?7s?6y.&?W?/~饈Im5߲[ϋA|Ǘ!~^GH;.s??g}Ǖ??ry p"~<Nďl{xZUC꾞~Է*f[߸C>*vickߪqA*yY":sá;}6Mq-q=^kRJ)}:tcl#!WV 瞴*sr:ϿU̺I;rSK\RHO3Ȗ%|]Z2yl;!޾oh >7z#u"}øu\iL\JizuuU(͛xlk|u]?ccu5}~3yZǵ u/կpOJ)˗W/_}tw:d*֮>fz]osR_Ǽ3j7՟;Ǒ~c}ҵm9ȘRss9ގ Fƞy86ҹ8sVW3s/F殽xccҺV[\sNmR}̏k%Z TWF̵޺:J5Y=Dy7{.i\TJ[ؚό+?㟙m̵%۰4&5/ޯ}٦56gd֣̔Mm3#T&׾u_Vonn}Q>{TWsom F+m9d~s]̶>T!=\JuQvmyPF~a5^~}~\+sڧqTN&* 8Օ}/Y51o^Vէl6k?ϫ}E5c^OU~}S|*|ظ7OBW~٧1ׯTg7771E}7oۊOǸWk|_MJ㉟?sm3~s};?~???'ݧ&_wS#~~s=ϋ:{"~NC/R%~ϋ,u#~#F .p"~<Nďl{w8vS ^VǮCkJo{.K)po[y=}:^{2R'+n:~G=ʫ>=q%C|x&V!j== ŧ={JFՔU8xyk9X"ֳ5sy_eSu34)cM=}=U=MkuU?/s^է?c^]>秭g.ֽO})c_Cw]8j{ͲcyrJJJo#[Ǥz#s?s3[[m̼/q.Rswonkk}\jۮIXrmq滳,u}{K52ucc%7[zV#;nY]XWr1c{ɑyx胇TFz‘H=}/zi5&;~Q^9LdKߵw3V^yYI឴ڈ~.-Rʧ|RMRPJ~gۿj/~Ǹ'?Iܖ}j#[͛7+S)_J>.ktZ^_lˋռU绡ֶM;ZOy_ K}}62G{,+#wYg-ofZF,<mTզ;hZz>"~FRo !~>l?U>\j9nKO?87?ӟ8ǟVӷyӧÿW5M5yR_j.ΟJEmwk?C?Xe{Lz8B%~>#~N|9e?? }?ߗǧ"~F|5Bi??:}?t?P~<NďP8? 'c9UjՙH-3_Е>u\^mcӵL77:qկ~;͓jͫwXȜֶqtZCz\=subĻ6^[Jol]gh5srK\%Mν.GF~<|5%:OS[:t_^xQM~?ϫwCۘ]]wOߗ!f#}j}sghdķ#1ebzߚ\Osؤ{yȸpoGi Kf^%XZ51CsF7G6ko'N.u?s?? }׉F?C&~>lϧoRJn7!>Bn[p1SP&կw:~Zqu5w16 R-}K)~N鉟s?/~]'~:#~?$~^׉??ϋ>?G??yMo%~~Be~e? 'CDx(p"VEIc>á+%q%)28s経|U]yu%.>3^<ޙ1Tסlե%+1.Qf#'3v19f3K<KL{ff9KGk3X}R&k9j'<%XlݫO:~[JyY5=_vH{V<.u-emѹ׫Fڜ܍?R[d؇0֏E<)/^ļ~_UW?zA}VM߄*7771tC16NdžN饔>KgؤȸlFW&3/e{uFZb]Ug]gJ5$1%MmQg][y}*653+>gd.??ǥ 5羏.J2ϿQ|%UZ_N֍5gO߷\_P榔R~g˗1t-W_&u}UٟTӷ|uy-6?+9Iq&~|]j̻G׉#~!}>Ry7U:}eH?GC+C??ϟ/~2ߠ{P8? 'CD=*ZNu,x39{K:r\CΩJo=yR{5 5^-Pf>uKm#yHظ\3}6MW^#ub[ƹV:Rάfe{~Ww86[}Ǜ7ϟǼsw^7|vt|\ᾬWj?ZWz}:fS?Uozk\'O9:[v[ҶLcN>=-#Socz~J)f{9L3%z4K~%3?#$3}0~gwԚ.ur[ﯮQĚfK=3%KZxߵ6YR,qGH~CZw,7Ҧ.>x>2Wx33Q0q:swIhL_wc={VMoα|_Ɯ>3-f>g>Km .gmO!}+}}V];H|/~QM/YMJm^MOb^}Q5>}J+ik|{{JZϲ<^rK$KݭmK80:1}a7gs3LZ'#(g[;^m9p#94ڵtS^zcSZkye\/۟{R.I|_^MLG=$~^c?ߓmIH~~Ͽ׽ksK]?_'~//%~~H|#~2Hsw?/~ϟy?$~ u:.uߗϿoP8? 'CDx(ȶ珏X}Wժ164u8<>2kT&׼xnUњXUcl}f>[#vu{2V)g9D9\T:Hy`zv.tcKms(8r[ss~_j~}f348[jͻf}kn,m:T2=wHfGfjYۈss?3ŶY^28FvިRzK.zVzN|~ުý:ӧOүb^GcӰ%1G{߉恩'OTӗjf=Yb=cy7[WZz#|jWZzW<>]{u̫wq}/z_zU?^/_v5ܥFP{q|?q826ȷ&!8Z2)}kfO߁]c 3#ߪ3w g 3}v9F¥bz8r H>z{稭9u#ι?|s&0^k*C|uG!~~>}w'3-?/~~us59y]t~K+~s׉D<?_'~vXkG|ǗG|o?()?$~^|!ϋp"~<NďP8? 'ߥ{*;o_F)&s>jWo9Uܛt}z5*sk>ݧu\u>5Q*O gk'pV6Iq {"լU*uXcZ^6nJǰϺѦBߵJ}J2f~+QJ9vzتCO߰R'Zy,yKi:JZ$xuRJYqæ>,溚j7ۻRJoB_ƼU5_~ziܔjQqYڃtJ)e7p5z#ШH>__ןeĶ;oc9qߍ[;XZ3.od͹z F~5yfHcޢ25!}5O[y^j}'snSoXtؙt\→j^o{sVze"'~Q)?2χW?ef<7-/Ϲ?>})ϟyo?_wmϟ }y?-HeS?_'~!R?޹3׉H|=]|]op"~<NďP8mʪl6W-񸚒cdV-n .Sr?m6siWfE\Rz<6Ws'#}LFq@y Jz׉Rzk\OToKrsSOy#z:UO cRrI̪s ջzYJWļ֛9/j>_]5}کR۶8j EJu="mKmRF)e>mWo?Вw*fnգ\Ǒg7d>?Y8w۲D=yk6rv 3[zR-:WWBsx2s>u9}oooc^cؑt[w:29jRJH?{OF,n(Kz,)tOZ=[FK̟FS}I\jߑ+h=C3+=+wlJxwW_+lWZ[G7oTӿ꫘Wꇟ>}ZMż>îf;:}sZI5=w6I$7RyNҷ_7+W^Wg^Vow'Oc^7?m>|wb4}}mC+c:YRl]kkvz[0c O}gj=ըip`av[T߸I}]>%ΣO'ܟuKovvok9FW.)>%x~\3{a8! juuuUMU߼y󺻻/2OV?j~W?RJכyP#m}5}mzM5Yvs^.I9gxs叴n1sx KQ3A/1^mڣy,K3fKo3s֯9fYj.#~y9#5ޱ\zqf1S~=LfKkjս9JnooJ2}I}͵R?ޕļՑcYe,}2ҧ,1GL9[E_Vӯg}_Jb^/o?RJ{ZMO>5!6rN^b]=nb*&sosVv#lYm|7?M 9Lqf׮oJ)e ;4l}Sܪ ųץ5]/kO .nd;9ig~ϻļrD*?;b{ۉֽJkY+qGw]lާZ1m}1|ٔRnw]<6ՍQGƫ: #j>}{ϻת?_'~!{%~ߋz&~~^?/~~Fom:22UF)#~5^i5DD39H^3ۃs, HZfezI)yRە%e[Z]Wg%Yumo_K<3oky5,|0s:4MkҺgZnǦ~;?y$֚soߵԘif}?4s=sm};=R)U\j}~׿uI?ϪJS[غWi=Uz!\m޵s̱ojR]]۾U Dwe-7K|12L魲{|$#7[z9jo{{}}]H>x[ǕK Ͻq'V^c}ZmQ:n0/{9fL;5N5gǧ,_|=]?ߗץpR$]8e֑JZ1LJ񲾏{?/oUKCz3ۜ\V,1OZ/?ˌs%~?)~?_'~|.?:u?_'~>?/~~s?$~^cϋ!~!}~pax(p"~<NdۻxRF:HgǼv;XPgل?o[0r~s2ަZc8~׻?W|2AtlWGeռJZ*nc'ջ?8駟VT_|믫_MU}*t*uq_ձ1__Wӟ}4}y5Ջ׍J\OEOqXq:oϜW㥮|Ӹ5^[qf[4s b il0z̜Cl%֜G,pkAO~|VzRU}{sszYW^HTgԉ34 :g._3]k}^쫯zU5:ǟ??1{j+Ti.hTo.挬a|hj] c7H}Z1 'K-/Hwww1+iy4rg~SzvmekJ㲑sڻ>2OGj[Ro=s3s-iGxOz?C?zC9Ot&~^|eN+~?O"~>{!~~#~//K/{6"~9募+C?GCϿM$~N|}eHO/E|#~~UOp"~<NďP8m=]#y9K~jj*eq%3wX{gui[oz~v\ͦ$]Ի{Gk3?i×$RJY5vPWѷV9]oj2Ҩvt>3Rmwo+iָ$&ݒqg5榚~wwם|PMO?b^u*M5}ߗR~\㮚]~7^},eSns^?ݮ~2lzKkf:S5^jmb"}GՑ2ZY.u9RmQr}Ȼ:Ǚ2FR3{?>r\?۞KcSzO mdI+]=b)ڢq-1i3Ǥ#H8Rke}}1}u{xJoN>1o:qzmRsz5>8K7YK^~_6%3{km[߄%\=ֵO2s;Y?_'~!&~~}׉yo?/~饈??'sr8W} ~^|O#~׶޿?Z:I|>.\?$~^c^?/~~s?6K?K?ߗOp"~<NďP8? 'ժVʷж^u.u\Z=o䚌ԭg>#u5y?tzNҶպ'K{2m#u"~k^;gѲԳ[Ϊ<^#m:nMةj#{WkћuZn>#㲱v5׶>oՉt\)}ż=ބ:ӘW'eɳ>Vy(1v]?u^''9pU~~_h[9&y3Oڸig34OY76zg]KYbjd%#Khݓ5گK;f!zwqlZbԜ>9|0RH_~2s]}Hk\~\}2sܿĚ82.mf5N]r3}zJuxdmwzȩ_>C#}5=WWW'OļҶTFK#<=m?Zw5<=i1L3e3Hׯ>߼_U_{/_ƼzٟYU9ue;ﻷux][b\4Rlz#cϔުh;m}uls_Sʫw,7s/H;RR{ߺ^Kzc[$}Y?ǻ/ewm1H[4Z|W;Na;49܍lWg/io/2#~~N?>E|6sKǖ?6C7? 'CDx(Z)3ϱW:~=a5z^:1k?{\ٶ4:Ƽh fj{}Ygz{v!KҶs{_Z]f[˾޺3qt6M߷kNWEƒ#ey󦚾 e:p)~~w[M4P.wV!ն^W{w盗kRJ)7W7^Ǽ6W^V[j:S>j6of3]K9ЭmK:1sgsٌX"4i5ގ9}ZMIw^Zפ=lg})vxu}ZG<8vH_3]wo叿yg?ٟY5=å_WuLs)Aw޶O*cՖ%Ks.mz-~{ޱpw5qk3#~>xoz#,Q'F F@zkv>+#>r\ui*gH3\~-&{]F.K)'}׽k?>;?_M?ߗ:??#^OOqǧ׶^?Wϋ?%u߷?/~"~~>?/~҈|z)kϟ9es}?$~^cϋ?%Oib CDx(p"㔂WUwi%:{3Uk{#e2Zy_ۻ}k}'s^i[k^#׫7:Pmws^V:#5R'>ssٮH::ܐ9>[Kl#6df[~k{f;hաׯ_W}5}v)~׾q\'c:RJj*'TS]yE'7tp_&3}oi gXf],v;R:1̹jۮ%9=GLw9v5m>2]XiՉhoGR3l?96(rzگFi-3f3eK<#sO*g|ze~F%%=ߝygZb.6bd4-%MϞ=y=~sS_lGZsNx-Gckl-K#?k;rZ45Ǚ㲑v-i啞~󺽽Uo~~[_VϪx[^MM5=,%UFt_R]i}]5zۿ{%5Yb72OwdķrsLMJo啞~]EvzJ1}\Gv9=ǙkY#mzDk9}2segջO뙿<3p8R#sy3jozwmGHϟ9e#~I刟?y=y-:?_ ~JO/E|y3?G|׉?s_Y?_'~!{??:O'?m?$~~Oo#~>?R?Z?2fϟ+gxP8? 'CDx(x<mZyus땴I*ft畷׻}i]cؖG}-gT;򺺺VMf>3sooz.?YnH^ZڵOR 8.U1Z ǵo\><z^3ۙkf{3r9sl'O;z[AV)帞7Ʃlmv/Rs}Iuݮv"f^硻ʫy}LF#b:zNq^V^VUN8. e{@rF slTK鯓̱g2s|:du߽O:ʫ~-6sD=yX1mIw2RFKo5Y{Go=?3-czpIL#c⑺ښ_vWZ(l]~{K#8ަrF#u2ImtJGD_jw{Q&陟F򺹹?ӘWkY3ҧ<[%Z=n`feFڵ+=CR[8̧syMiTJ)^M'߫o{RJy͋jz.w1O~do%y]y'Fs5uK=df9VӘs>o1?\`3]V^/X]"fW.#TfNŖ7?{ߟ+9W\Ug[ׯY{ms 3PGY}Bϋt&~D?6]jϋK㉟?6vl?z?G??:Oo?W~"~׉H|:?6g-~~q?%wu=CDx(p"Vգ[á+{HCl6KzVKK{\e\}FI:ys{2 -նԌߙub߷zUof>uijTSf>3y%Ҩ_zr(j9ۻ~-KP5%R}x:_)Gjk|R3:k٦q& 2x5})7i*:lKy͜'Gڏ%™dd{Ul3v[_bGSkw|xn;FH[2YMm̶H]:sZꪫbgd3,kd|=~`nfǙ!fjs.u}wl2r?TW[V:oż+krs8]q2ҧzۢ"΃/>#k3efԱAG)4Y'-պsvU'zy,vB1M5= /OisFudF9zG\j^RH;&n޶pf2269fI#32?-1WXLzs;RfY7S?}׉$"~N| ]OW"~R9+G|>ϟy=?>E|s??cuI?$~^);}f^/~^c=m?>ECϿM#~oKyI_v)k׉;g+.81? 'CDx(񪔲^?}kjsHR9饴Ͽ&]j{-G}﹏8w;MUOe/q].aX\C5}>L=ljqqҺ^}}Fm)ћٮjpsfXxVnݰ H;ѻ̱LgO3ۃvj KiT6s&n}-μ}O¹[&\Դ-Sܔ\jjzcc޲g'>h$mvq:ٛrs%Șef=:9.RLKՙcSR}9q-Q'ν]39gz4\Ό_*׌=Ӷuږ%ּ[1=K8Hcߥ%3͜?sm%`{ܟ={VM?}4KTKck[>w}ؚ=o4s2Jp*uOfzDž_}U׿u5WU5.RJyj6Yq'~ҷic&o۞L7Ϗ{K;kzf$/ycwWWW]/5Gn2ӥZbioX)#fFN&3PFO.%ڵV-0n({)wkǪ?ZyIC3߻\7:?߷P;ϳD&~N|߿eyzo59wLs]7J9?u^3K?>ǧ"~T^3?_'~>Kg?WsS2y߷V#~^!=A?%~l.L?Wy߷\j|x? 'CDx(p"Vm甎x\ûl;%3ϱyy~α~q+9ǙlFJu̼5rMz(á^f ˻ qUOoWuIפ-uuu:w{߯N{?~׻lY kyx(>-+YCwڐ㪾a]q>U}c9O5sԳ{̗zR}̹k3Iw]W^q\TJl-{:6c>%ƽ-3W,au34fz{ /afA̺T_b psfٽDL>#T~o}ߟ??c}޵gy-QO=]|ϋ5 ~|}y%?t}?/~'/͌?[&p"~<NďP8 XVSGhv'/cdeVK6챞zכiySJZZ>O_fֻV^cy-Q9p2FiEb^}\i̾.iu5izk>#kHSW߷knxbu8齿ߵzKF~ס~þ~8Ǽ]q*OVԶzJ 1;B9Ɣ#?eO|GHcՑ>x7`sLzǤ̽H3##ubѽq/~͜[떘WHس7~}xKX\:%i+I}녩k#Fڏio^3۵H{\#yloGt|斲,#ucYz{Zyȹ[t>O>1jz>IJ/42fkZ9]!/19׿>e:^*E޷ڏ?_:駟VO?ys|e5uo7BMz‘tdwR=wӫHիj#g֯C0sVYJ)%|xw[oo$X94s]}VJccJzWثkI#1eۗ^6=^Rg~3v?f Ĺ;!~׉C|W/}ϋ?>O})kϟ޹y/qĉfRys{/Cy?K8ybG\GǦ"~K?S"~NCϟ??'}y|y3?=}?Dt P8? 'CDx(ȶw mZM9Qc'Ky6[8d'3?Wowm94]__>rMgn2ߵfz߯9Ǒk?\lͼyߙc_#ubwϹ+934]YW8eU RBv۶| pY5.u{{u\|AY(ɓ']e>o&MJ%ozG߲D:RϽ^7=H͜W.ydiH^NijS[y~W_ż~TUӟƼ~W?j˗/c^_]]U[s~|ޱȘxd,W<-3}9OJf)~-,Z𑼒9}|瞞9׵K)+s|fۜ~̚1ûǒ瞋~ЪcsLe`9O)˼D5%lYz=s6}?~Y"~^)#}R|wmugk}?NL]??%u_Ʒ?߷H9/~~N^}ͩR/~/%Jks?>/g??^?R%~^)k$/?6{!~׉?-uKm'/5~2p"~<NďP8 8>m-cj֛C~_Hq.̷~ge%VxFi:/Z9/ajj*mXWS;gӨG~ȳ=iG53).#W~LW8vFt\-'KzIw8W|')K#>GVەҶTq%{^yzӑ.]s/u3r{˟9?kĹ;ju lZ?:b;3~pL9VK;jݓad?G1kj{zi]tKΜff>C3ۜ#6ʿ?<ɓq <www`f|g<|v߸ay\l{U'yU5o|2O>_E+:x"K*#饔r< ZV3*YÛUxg^gh24 ;qQk}]ZY%ޓϜ ͺ?^vHZLZpoKu]jsFƱ{ށ;O-߼ySMo3Ι{!#\R?ssJ-Fڏs.^6H<4ѿrޘ!~/s8^>{"~^ϟ:,[|u?/~~>OOѼ!~e|K%~G|?/~'/?_'~"~NC?sA#~:sH?/=CDx(p"VJHJFcH/З^r^ժ~6)}dV^v}>cC;%.RߐaW?qmWMߗRVoQJ)t\됮q̪6I}W>ظ'pqC>ո'вCں'%sʟަ2ZS*g$.#(Julz~\|qE9hTMoD}r;|)6se4+_s/yܬsث$m̱L#瞞QR!C:9-p\R*Zͬ#y-1kg3%ڏ3\ͦlRJYFGq\6GΪ]YRG֗FsS˹}ui+{s:R%Ko?21:|(cﻎtFuy?ͬ#ch GĽeN,q8̜ۤ-3,39y\ub^-jcK}ի7׳gϺInoo#cnוWKo޺9/_ysIs֚QV~KK=C׾UWno̵%!{2s+=fw|M5իWVU?jӧOb^wwwt?x4敮7nR>|O(1q`+}cއ;2Vކr֫z:XNxϖmoӻmrxW|νq{8TNVlZC6Ǭ:|{KgR|75bdn3,ťݧ:4^i,24y#S }*0^C{U/zzr:W<ƐesNJ1!t\?m q]qa:QJ)u:!׉[VE~ծ='} K??/~]u2χ2#~J|??#KYǧ"~7/-C|ݹ#~~sχ_?ߓ%~!&~^χ?yo?_'~? ~N?6XKCDp"~<Nďl{xUVfpهmժ^om㱚;㺪tӹq}Xc(Un:ǒzU!fcاu\jt})Wo.}Yx_tOJe˾qҦԶ=2cJJ+t\gk]= uue+= >ՕUp.lZߧGz]ivo<:Wg8ps؅Sb1ЧsLj)*e,7Y~k_J3i\rMzyR&MlRG[JY67=C#<&n`?)U~:6rӶ>^|8C:}56sJI)C9p\qXRJ|8u_YY/cjquzqJFem-w9HȴHiߙma:4j/ӶSڧ5.{^}#PczxR7su= s~N\j}5=6gdN?N$>vy9mKغ^}G>^qq㑹uW^#ctR2Zu͛j]+Hڡ1GLk밞ђPW=}?s:~hdLJS=zSzۢVӵo^{[݄w7nrcz4֒6yw<\o6=9pεRr;q}k#v9Cj]%IǜU~qKs弮B22Lzo#4777yzƤɓjzrwc^ٗW?裘Wo۵S&]}}R^~jznէl6~(j ֦n׻Nj6u' e1R]ygsƑ=Øi_?qK0hדzh7V 3r\[WPR#zow|;'nÓwk#i5s]}N_Y:ۧR'CsTWM:1Gf"}]Jk{ccMPF뻤:d;:2}ElĨ>Ի}H/%WzVylǼeϺ$~H|:׉|z:W?$~^ϋ)CCϿM%~^tt}y?_+C|:5{?_L|:}%~_/E|/{&~^[y? 'CDx(p"۞?^Vjp}79X߰?}v݉c]?5IzK)!ݯpTgUWcޤϿq{,T%J}e4\{8l>7p!K)m7c^龤ۻ:xXׯ}gc<:ܨ"mB)V nsfv5<'K#FsIsqsuxhږmhW HƩkՉg_r۝ʉ%4nINWK2 poWS3ۯsK^55j԰cږ1@ږIs<6BZu"҅lVld|ЛOj[b_hv%3Z"VTӶ%e8c%1>.fky.it.#nW_vqt+t]RyMukp??|d+]qV'Wk[M5}Jvۥ互ν׫}S^ꪚ>{2rUS7㺾~ҝWoo]t#1]޹Xk6ҸTfkUDRJ9nx,qIg8̷B:BVJ)pg} exS5j-a滩XW'#ZƭqYxu[w2sͤe{u'svLaFG>p Va\5pYJF86p_RDll0u@)y, cV]%TZϿ9\qk}$~ϋ>OO|)/o?/~~i9y%#~|m?_'~-?$~N|_^_vuKC?yo?yo?/~m(GC?_!~??hCDx(p"Vm>x.'_of9Һ^i[ozu'#ջOfLŏ\Y?:9Ӷ~?-=wNmۏmά[N.3p*gqR}݈}-z%ڐtݟ[ol6y-f-~?{,m%y\GdIn[mo+_7p-G֡E桪ZBE~%D"$2GTߊ팙6\lU93\HS9W1s6Y&F:zSk*+'f-s<9y,h)2G}ar5x+1'*ct/^G2:lGHԾ޽{*{dfqta^CѼݥ~Z>:(}迪_afQ^777}"}]7rF} }E8}fwrY(~?5+;͜ct}Gsz\nz4ǚsnn̉g2<3󲙼fqw@l96ӯV~rLIٱ6N[k3*'꣢2Z__0_O> zm76x}ku}ߧߣՊ0*x}dZZƔq-Xs>Ww-:mu~ۍ~ǮȫrWy\3c46?w#c^վf"řwȊ3>[l?"`$nvw8wyU~V Έ֟Fo>3g:Fר̮]_y;'ϐ>5l{}O?!}[?J|1$~K|Oϟ?/~lBDivoGΟP8 gCLR>c'vN߷֎Ge̜>+v8GuLѽ_W9l^cNJv?cE\U3uת1ϩKEό)2fDt\sW[=+ϱxigUKԾVX5kW'*ʵߧ~?*?ZGe[=#Vʏx5Y_u7Ӷ_G]nm7}sW&R魵v˽SQ9ѽ=37MWt.kLsHHkq[ƇZo3?Q;Qo^ wVgydvWj?FGm.kj& 6zدQ̻6SU>oMsμ|MO&߾}M_|E7OS}w7馿ѹ?F]vN<}WyMGcno3묙v?4w̕+Yu\*x}z~7='Rv1ڶ9%{L3[H|} 1>ov*X1'y=lu/ͻ:q$Z+vlŋ0h'+Ɓ.O9?6OOm?K|nJklP|.\^5%~^Sӿo۹!~O|9O?!9ϟ?/~Cg<\[5?J|y?#~>s?/~募?ߏ?1hCg.~y(?3p&<ğ\e~|lv8r%v\>}2vAzkf+r<9ZʩD8ss}>q=m~t\u==QGJ|mbtdz9Ǚ64f}6-UjZ0T9> 걺>+?q8:l9q0?vf>9 _9nhH=|r bs踢Ry\3cg}lcڌqUۚT8ZOG޿M eE?1jپeTsXyN9^C7>jٵݑG5ӣ6~M=v eʨ eqf|zM:{h>_wgըeok{.o~0G/_ 󊞷s9@to+FG{L^ѹ93)777E_\qw#|v\rgF_qE}3re_53eNEcg?,׿u7}wߚawg>FѹWZ]1>0\/[x4Vggvb]lf T~WPVYrXiT{{UĊwٺlÕdLYw+"\<+ZGkJQxE:3ןn_~M[kMEk<ϱp2W?Y79s?%~O|M^3?J|]ϛ Ϗ\W?&~E9>1mS爟??/~CH&~H>%~O|2爟ɫ>9sϟ-&P8 gCLy(Uǻkuc7p8YES[euԣ2F}G9(㊌kWL]F.//9߇ynz嵏dTNtmߕ~Fmoe=\H+;65ɲcڪZ׌l[]udefª'uf˞)rfo=G[#3תrںmo̜c4>Vc]elQe]n\̜%W_u¼mQ=܄y]]voooa^^Gݻ0ws|E*}t\=D4veF^|MFϨ+^Q~Mh]gtGm"ZyFu2?Sy͌A3sx^hΐO+?㚙_G}Nt?ʶɨ/h-+cpt\Q78[Pw؆X5;|6?%~^|?W9[?&~O|\O?!}矞ޚOK|7]|S;Ə?_￞+ϟ?/~y%~yϟ'p&<ğP8Lvhc]^}Fye9鼎SIW֨*< .p規cOX/.\gd󚹷J)[Uu^[UeTQ>Z幬*(wWZѷUq;V3寺}#";dLWзb)3sq Wѣ1%ktv4˒2sz \1>X5D+2g|otEs?ѵtG}aTN3hᡛ~*{TNTFTuMDR;#*?[}f{m׋/3l}EmbZaew3GtoEyWvΣ0ho3s螏+qEQux*+j_~i7˗a^ѹDe< μg~-8l>2]W^ugj83i&Xjrs]{QYј:SFv.fQ?1/Go?ü~_tӣvܳvA}wP||\54Ora{gvIk<#81?'+'J+8Gǵ᷐3d*ٺGq[Q9_\brms՚ovѳ`v=e~f-iŻ{kƖ;[0& [}Ni-gjd ~:Oջ~"zo3zvgY5o`BzǶO%~^ϋ?u?\!~ݕϟ?'~>G#~O˞!~>g1P|ϟ?/~Cϟ?/~CHK|6C)}绅?G|n'~~2ϟ?/~募?߷&~>ޚLiCLy(?3p&<*c;p~q~(`Q^w.??)Q}7'>S踢m5#{.sqVRP}d;3Vmdl>9F*wƊzQGf-WZq3}ofzE*C92SN$;7)/ZQlGh̜euYqo?W[CQ[Y5e/bZ:F=F>{l}<GV[**}e^3WdƓmaŜ~{{'WT]7}t?樂~͛0n_mꫯŋn˗/m_~e7=+M}-+;gʵl1eFGFM7}f rܬFtGft?FZ>5Qzk5G+*'j?9駟vӣv7s+߿OH|1üZGWtEQ}w11s65х!sQZw>+ WsԆmu983ZksO`|g?YW CD̬ V]yЊ>owC+C N {+vZ~j ?;WS3Psͼɚ gDg,[ւGV3Q}e+wdlw<-Ǖ5^.:Ǚw3VՙYۍD8N<ƕf!}`M}tƟ&~O|ϟ?/~#~?#~^V4m=?%~yϟ?/~CH 5ϟ?'~O| ϋ?爟?#~&/}x٣2*?/~C爟%~>w\=^  gCLy(?3x۵]cp規\\M㍶Z}z蚌DMmv鼢}ryym9Nj9F+ZmG5V{ͨ쑙>g\ȨTʶՙ٧̨6QwGm+DGL3}d%?ch9fqe[[OvGc]-ZkߑsE_\YLޏ9u+L_83W>'&ktoWC3}\|rU\ܠ";7uwwM\7 V=[E2V[Wo\*󺿿/kf?^z*{T[>ʨ ?C7ok_nztG]h]a^WvN<3ʖZ\/ѹDVk{nptgѶuϨF<9\&{ocsLJ>Q^3ψQ=FGmut}/^yy^Я.+o~˗a^83yxxGqf8jGy_:WJW矇ye FctQ(^G>\=h>?9,M/?0_mW4Gs?Oa^WocfkW7N!0͏!̻.{~T_s.sf޲Pk#Q̕W|Wpjo"3k:fﻙ6FmPW>[̌+M +LJ[^ߙ6\Gs| _cxm踲VS巶;{8:Q9=clQw\~O6z#sϟ?/~oM|O?k?#~>G|3\|?=5?J|SH?_A|S?K|a?'~>?z\35"~O!~oP8 gCLy(Uvnx:2߷֎8N1("]}FyeyD|yyM]Htɡ-*"쵏q$1Ot.3mhEm+3|dVV&ټ*h*]u.-híL8e9ca/̎H5bz(W##g`a+[LYugWǖsϭjt>'GΜzFOL۪-׹ˮիW2uj믿Ng?Y>Ga^}]7>ZNjDz*4|2WTQ̸]ǫx[[͊8ߙ;3nf5w=Ċ\<#~gDy=>ӣctoDVt?Ө^sͼ%:ԕ9ƺ螈黣ݻ0 >v_{ʎcG{hʵk +ʘiq51og޵Dn_~ݿo~iMgܣ]zgͬϜ]C{Gk 3oќ8&uʵfV7GǕ}U*59^X+Ǵ9^[[3Ϭ?U_Ѻs`O4Vϩ ։ѽrޥUT~3mzrn4}mfmwf:FFusӟ7Dm&+g~fg#*[ȊqhQĕFƂx}7}f?Oo߆e]7O>馏~4gɎC׻C][337q{3sG3%EM|oXʹʙq>:V>̴(~.qw+U=Ǚ̘Vr0^WY_g73yU>d̜eY?=1b<>z7YFo3g-M?]ϧ?˫Sה#~O|\s?=5e?wp&<ğP8̏In 6T>#d5<.3*}t\\~_yWWtMѶqEkT~6Uyc:eW5㹶>3XٯUumRe[)#ڶ~Xqmc+ˏ{ǤMFsjgmx>SFگk+dc`Ɗ*g̘=񹶉~ʾҖo3wTÒ#5ѵ/[k1+۾Gmש}¼%ѶnNmo߾]_M*L}xH<6{o3<ٵQ^QkWωz⦛$߇D}x>~͙*Ef3Grfc\ϩR9E\n̔s0wAl4S+qk`cޞ9m,}W[?$~K|M^%~>Jksm}?2ϟ ϓ\^se!~ֱs<[Mה#~O)hzk{ϋ?Jߎy?'~SHLseG|SϟS݈  gCLy(?3Jxl$y\ %E̔pq1Wιct\5pH]}\rq'jw_VFmsfʘMWˎ)#ٺ+qV)ܫf +Ъ{~]̉g#?h47 éf9+ފqR8BX7fl91O+ǧʹAu+g~򺾾NHx12f)982OSy3W4/{T9=k3Mot\Q}sV+l3Pko39f~8_fdíe/ZfS9'[Vo\?qssu{{Me7> z|G>ѹ\]?ݏZ|U#싳km[X|Obj܎yE7}tQ3fW//n/nzGch[sh-1h3>'Xƺuɫy*^:Y~qPA}?9h3uߟ{f͹r~WV> ̯+Ub=eS|rmh湶)kY[ak2sn6-#V6αbN<<E*Ǚ1-=jzS ~>M|qx?'~l}k~ϋ ~}klw-~?$~>W>ϟ?/~Cgx9Gϋ*9h5?s*s爟S߮vGΟP8 gCLy(UvnJ.輣m12u3mG2ӎ¼s&L}eqUl_z,p8ZQ#/Ryme?JlUeϔ?3ϜLYqoȎc]u+/ +˨l+3q^Q^5^Qǫ}tu\^^~?*cWY[V=gʘSg]W?W[xW_3s5XW3www#3sϙmќif^63epgDe[9-=+ﭙ}.&3mefm7[/a^Q99ΘiѶn\}Y\z>YN3y=<3(Ig7 +EcDe5S_W>?'"{)QԯG?c7}7}tonzt3Ouov^8e+Y~\||c̻.FgjU~~ʮ%zF]׊gDvݤr?}~[U_Y3m%Zy]3Vsok0QT7{~l3WԎ*Ǜ9{&UFᖍGӷ?'~툟?symn)~~;kw3yzz5ϟ||?}y?&~O|>k?2f?ԲG?/矺y^|k?'~>?/~mͽjJ>CLy(?3p&W_Z~ݮ$OWdT~>cרVs㬙p8pe^UeoyL#LkQ^+pe=Vՙ㪼+cHz=>u53֍ƺ6*ۭǴv+ƧZq(:tWts+V{++拫]OWd׽~RT+m=ωT5`yO4j-(}tFP4{F8*1]~TQ6qsskު|ң:z):Eu0uH~f<}*{mu}az]ch5ʵ9^__yE^~MMWF}W}ͬTQ5R3Ȫg--*cψ#qs&k33Q| ~M?0_Wᶞ>qE}L]5Ƨ(}W~{k_e?\m.1GshO>{h*sE*YQ踲xֻW+G*wvѶw<ۜkI:*̥9c]:|<;+RVg9Y3mx)k(v%=} ?0Ue"~?bڂyOM?'~&/}矞ޚ}K O#~O|S#~O|Sg?J|>OO?/~~+矞ޚu?=}D|nOOoƖG?/~Cs>/:#CLy(?3p&W10q<~Zkrvѩ\G|Mc\.W3ߏ\^>1G3eDmetѦfk6:sz\3֨lgkGmxWWܳWu|.//LWlG+nh~Y61s5SƊ}*,X&<:j$;JeS{cck6rvƖsʮ6f_M܄yEgtowGۢgJ랝c.ѹg˿ ydQGG5ʱx9fa^Qײ2sgʎ|.{G*,uY[9/{u|\a^o޼馏o _xu4XWvyEhnm3jtgՙ~r~]^Ή+ĊѶ}?SMw_yEm"g}>#zh|Gm8zF"W3*>oz/9xˢ=Fx}k|ٟ߇cPNv<?^rm&=h7u&g>zgfqmxO<<{"Wcʻ`=6x1h*>>`rdt=9<#(l3Ϯ#ze\I8/s??sq?#~%~魉"~>繮׋?#~?#~9H +"~^ϋy?=}M|y*屢~ߚL>ټ?K[?'~G|nߋy z0@?3p&<ğP8<ڲ۝ZkFێ~)!̫_z,*\AV2'8Q}EǜMo-.//ü}8m˺ 7:u̶{%SeW-*cx69s\k2VѹDLTنg]d渢:}qL^3u7F*j\xΒ"XYNtW3J3J^V3y}f-5U}v2u_'f+*c,De̴hۊy^1lÕ1svT\N<'?kx]V=򪿄6UP:f˟Y/GV>[EѶʶ2]3i_+fJԆgmfơ&2&xwwgt}߽{ڧLGD2ydnnKp{|C"~%wSn=}d|\ahܼlzUKӇLJnz80TLp?Z_]קּ8v3}E}nnnM6zލqWt;|憐Ɣ>:/ym778cfYUkro3slW旭}7o?_Z?O7}fu̚ot.D>2lQnrK}7N33j9lè>cqT_˨?~WOs AwEZk7QA@Ӽϟ?/~m~Lr爟 OOm=g)_|}Ss爟%~O|&~>SwJ?M?'~{=sy?J|&~>ZmܢSHq!~y?/~>?0'ʟP8 gCL;Ǔc'*veyEq]Wuh.9ǕkFX {ka^>Qze=2sL^q1{\*we^dz1:5[NϨU=|qOUswWȊ>{yy.gf≮m{{WYY_Yc3}ᨾb n-?UοFeGd̹GZaotEo=6ψ9&3s߷6W/>rո\U> XQYC7}ŵGw̥뼿rβ3onnʏD8zNʪWGwUEW=s?FvvY9gYwSeL3Lv?.~=k-V|H;Q^}]Y^sj-6&z FۮvGw?ϻo¼sϑzk#sѹg$Wz=-{&rmT:ˊw|31ۧ 㾻rM0[_#qEz~]1xNp?Ώ9 7d&xq*ΩՅ'E߷[Fh>o" jwT ?%~ST?5]|y?/~e!~^|&}ϟ?~se?%~^|&~GmG#~鿟-?'ϋ?$~^S?NRϟ-~>J| 矚>"~>G|A^sϟʯ&OCLy(?3p&WvpxLΔp8ˈv}_uD収MDfΥ5deh[>:-V9NJ㪼[i+8겲\F>*=d>[Z\:gY1gO+UIT13XV=_x*ܠ7oޤh[v5R8ꙧr<ϪQ[],3j֪1gcsTL^':Z 1ٵʙ\Í#k?f+Yp~V.//Su.^ٯUEcFXf3Ik_k9b?WO>?9+_vӣggׯ_wgg^D|u!+[3l٣mo߾MZfݕ1OsJE;3sXӟ޽ ~Mo~MZk}m7="Qϼ̬V~S9^d3u5&\Y=K4T+lTK*EgAf+C-\ ڟˉOz)|w=Dv05l3T3s9@d7sl׊ofC+ѽdtWWprU̥fQa}~XyOMmUymk(~%~ ?$~^|mk?q?'~s爟?!Z\^k?+G?_ޚ?J|./f~/~e#~>L?:yO?^g׍p&<ğP8 gruv]Y^euqxg\-_FtsPVFqEx>{gJtQ{-}U^9fKe~*k&80j[}*ǚʼvu՟⬸OgZeT9U?SFmߧ+R>W+h<7gU)*ǎ3e|l;:?>9FmrN*Sy|v嵢ﮬʹUi`\rLYɷ^{GuWE3*L_8y([F+W38lS9<<r]*:cHؾZpE\]w)|ŋnׯü>}\"n+d:Ό3z5J3-Fu%TɫWm+G7*榛>?樂{.W$o[kO?Gs{M5yhbrζ[b=8[vkk@fh3mwmQ^Ԗf?QLΞ;^F@S+}/Ov:U?3mbоg]pq(j+Ϭ/8ѹG<ߍDyUww;Ιq`sp&c] $nMT+7fɾW巅{c\ɦw\ ?_C|Ss爟??+C|c?'~?!}uNڛSsϋj>OǴ"~O| }O?!?$~O|./2爟?%~^SߚLzk3?J ϋ5|Dy(?3p&<"nv<+WeQ9q8Z k>0T;]rk5sΔg=tyyn[ѯFf}ߗ:Ù+[Nݧ9{̕xKe䵢Zu\}fje}k=>>vGQLϦ߶(sf7ohD{8=v}6+{o<<spho6/7ot??yzwuӿ0O?~t[F0h_S62]|)3Dg:VWv\YXޟFurssM߇yEknzZk_G}h3+9St]x>j+Q^3+đ-CYOcԜxJs3|tU>ϭ $ǚZk@]Eܖ_S8㊶/Aލº[msSY E9&Gr{f|k0:qw:kg$}8$R9WD 3U9/~0Q0'rN`x{Vl2p.\A6y??yO-cy矞}۲ϟ?x?+~O)矚>u:8"~ה]O:{6}O?_A|S?u?/~?&~y?2Fy?#~yTßP8 gCL;v'}JmWe^}"^^^1Ry.Q^k_UƊh5d}WQ&*8h>sA3sq8^U}^U^31{̴߷Vd23αr|XqEz&-,3ױ)#;}*UsVWfn]_J]71,Mܧ5cqFT/cݪSfQLeWY"ѹVWrf螟g}L^+ʹ&RyoWK#+>3^i5Ѽ̺Tt科#|,o߼ zE7MOZkzg̴2ގegƭu,v}qŻWY&Z̵=HWej0cŻl}U*ӭǭ]+`llmо[ݽϊkpM*2m2dw+7]qۊoyzksc>6N]9fo#UD}Ψ/[VkAhLoV?\^d/~?+C}TL^矞>yOMoM|>ϋ?m_ND:3e%~^iL?%~O?OH OOoM|矚ޚʶzYDP8 gCLy(Uǻ]k7npHתrzs2hl^;5Ӿ}f(9p踢k?j[celmT_u}u9s\IT{qdEsr|T~_׊:)kf=Q[;*ܬQ15W-{LWcW4Nm7>KӨNQ6Wb>|F*ʹԌyt8MY*7~FTz.Azvo-< WV0:lٺ^Kh%j3r^V]Uv̬VZ9ު|fgl3mejQq9om9CkuuE}~ga^ѳk.xME7}&r,[69ctϬeLjUςW\Wsl̉wޅyQ_ѿ~iWԯhω~4>Sy mu4z wYr-|/-պAt׷oc"ς3>UʹAt=uv_-SGF#\~_4r!F}nls<'ulu߇R]Ad:u73PͬDѼr]/fgf,[vkR#پ{7o*ߵzpGi=43y٪o*~U?#~^|y#~|^s?_C?Բg?_q\KW߮o|yO-^m^ؚy?/~>SGϟ?'~魉ϔ=s\#O?N:1&~Ԛ-?K<'p&<ğP8 grUnKo;E 1>e_+_(hl#mb&>:u<>>۲q$רNsQlه{f*puNgmxqCzlݏ+f^͞ce{"3Xy.9>}UZwWί|+39q}̜){=>'D?Vs2̫'&*tF02gY߮P\%jw3]ʹIV9Gm";"ј::ʹTv1m>r*9Q;Z1瞽+c+y`T:m>bgUmօfƺFmŋnׯüFyE^k2Vw;mQA9]Q[}vj%z\_Ι9L}W<}G֊wf!l3qkFױr30nq^\=߯m"إt~D&e mr&M5i3זfđcgνrސkͧq`4F̌Ѷ(}YꞟFs9VcW|֏p7ޕܧseVvaVgY23WT~Ϳq?'~O)Zysߏ?NgKOoM|爟ulh%%~^|O?;,?$~^|?=eK)9~/~yw.Iy?/~髈?%~^|&K|>oP8 gCLy(Ux3GMfǺitgǴ1p#lglX1m}ጙzɞLͣyIؑk#|r^X#ױr7#k՘R5Sedʶ2zsJr[9֭Z^U|} ŭ>3Ϩs\5DdZ')Z~95hL\Ki_Q3qV_WdU9W=+3ulӓ]WnmWj-M*UL[-F>s]!ɾ{f"h++m5˗O>0lY_TgԪ2Z}t.o35.s4/~=1#k湣9<^*hz]7kT^Ѷ/^t!?w/2+.~i7}fnnc:fk~m\ݧQ6+:g:^}fgƺ~s][?}]Zxyoy?1^9nuSe7Y3\uk7 s6'RIe>3T?+G|SвG刟?/}ϋK|?/~魉?/~?!?$~>G?/~oM|y爟?%~^Sߚ}Kߏ ?"~%I|Ss%~魉Q?/ğP8 gCLR>v<O;iOٖn+)cx+]^^"_Qݏ=:qE*JpHYVZ9*t\}fWdTs[fk߹u}͔Qy?TcTNTǕ}d`Fl}\fת>-ՏQv.5V~cW͊sX_1ܳLy~=u[1rT?1s3rmwFUXZR0WYf>SyVhL+c+&իW/^tӣ=OITT˞@e7:kZ9nGy̬DfSe#F2߯xP~|ޭnͽR5|F'p|}˗/Gk[07Z;&l7O?'~5k߹u}?#~刟?sQ눟)cv/~?G|9k%~魉?/~>C/{y?/~Ck?/~>{?%~^Sϋyz۾1 gCLy(?3p&WҞ-l^#ݮl^grʙ)x8ӓeE-5Ja=}vQ>1rqpWe Wp̕ǖyIqe˘黗 ckҳu\yL}͔)rȖQ9nIUOAe]>y֪q~˹Ԗ[mGVܧsmo=_,}>.f3[ٯm9lGV^{hs"[L1Xmų訾Q+1j^yUEomߕױ]Gel#je^sY׎ZWίgs v %.vQ}8_ᛦ[k>77W^yE^kf,#+֭{FCxjǙ4VȚKͨG]a^Q~a^o߾ ϻxwwMe7ϼɶZ4l}Ȗ=ͱ:i->g6xGfẙIt}ggV̥fx\WA : s}*lvVy?7̫խk&\< U>Cd3k353컋=gƺh~0fw}*no&/^H֮q?oEn b4:D7 [rf~cVk3f|mq1G}uhm&ڠd;Q>3}d1h*>2[zpnx^gϕ!~?%~l5E-~ϟ?g?$~>q?%~爟?%~^a?_C|>ϋmy?#~^g?J|SgX}?b<ğP8 grNmv'Wss<~Ouyyngu7}tѶQن+qtD<>>yE㍮h(s*(ʶObl93yEQ3R9nny}Gfk9blٲ?V̽5s.}FsfcsҊeչ+U^sZV Wըrnu[Q9eǔkR9_ -5gx3*QWC+e}fYy\螯_VU>VCW9֊L^+Ė*p5}e?Uy>Q0zushy?=?^|M馿x"+'2:h[o4ͨfzͨRsy u^V9wӣ{>7tOWGcW4־yGkq7GϢ6q;FT>DjWN[Q^3Tٹh->[{\?}ϋK|q/[y[h}k?%~Sϟl9gVv矚.~^|S^3$~~;u^&~y?'~3ϋj٣msϕ!~yOGM?_L9[g gCLy(?3|vIx,:̔ӫzNu8R>+^[_l]~m˦UDd:Fl}.XUȊ{h>zy +v}73>m=ǫ죷<׾nEϴ+}.//y0sMO_V9>EYlxGfk}*}3O3bMaxSY_3Ped*e3yEfr=#6#W]èsqUާaƁ;M7˗/^yEۢ>zԆ8:(1kwow׬/n;>U:ydzlT*S*)V<|}kGm518*.ܧJբ/\ vsa"ܳQ c^ YTv!{vT_Q9Q6\y45ʞ ָ..m~psG}+bQa/e.;v 1%yNOhs%~>sbu?2F߯'K|?=}f9?{^7ϕ#~OG=׸?J|"Hߋ%~>S爟?/uϟ?#~^ ^Ly2~k4oP8 gCLy(?3N.. =OΧx EU]NFuMm}Fd:f[y߇y%[f}6D*1[FI->ctz鋶VY}VYcJeznUfko{hE^iE*ks/n݆+Ky]^^ycf>U9>d_5ψ?nnn¼^zJEWdųHԎr?z/vukY..kE3L[Df1R9W|xxH׷~MoM/¼WU7g?Y'|Mu7 󺿿>g84γ=ĊQI:?c1:y9YƊu?O:ZeOp*u;ggwoQ[WaMd}ІZ\Ad+j8t17G}_ۭKeG*ϱryƁ(M~g9SeDrWWk' ƻR0:ǠEӂo1+w?#/~n f~_vw>ǠZFk^}g ~>WN}!~µ(ON'{\l}m{%~~;sW%~>{OO?'~>9^ƈ[JK)#[v5OOoM|&5=ڗSk?>s?'~m?%~./?ϯy?A<ğP8 grnDzveydy9fסױ{ml ?a^`>Hc284Fv%]舣}V5˨M>3縢oYQƨdWe%}έ*ca{n"ckMhǕ[iʞ5OܳGs5R9/[l3seײgdV)3sl߷W[%sp=\\UIyeyFsnL_=q֬mf+ڶk 3sg~m_~$'+wst+ƺU7Wqnon/_즿z*[ѻ֬G5I [y]]5 Gs`>Y{SW?'~e?2f?#~>9X)?$~z~^A^O?!}?g?J|n'~>sϋjzk?J|n)?S5~CLy(?3p&Wxݮ~<sEOXQFu: ʈEZ]Ͼߎ.fzUx/qZ]}e}e['J|_ѶѹZ鼶qGqeL^3;4:]h[+vyfk}EǕMY1ǚkE1SLgYUޏYGn=F*Ȋ{xUfWe=~d hXb7㹾s_1>|M7͛7?tӯzwa^87/¼&Q?(#/zkf~bGGyeUfV+ F󲸟Fcp&/8hQ9>xN|Ԯ/ qux ǙEDSp.Zߏ>RzcaeN辎qv| 'Ǡ 3+A_sרI\}WоFs3Wh }'470Qњ~~߿'.Gk aC PpG踮`.?>Z\_8t8 .upuosrJ\_9.3\=*0SqF\_踢r}FsϨv8\߫]p.Q۞ghqGD;+*,off?N͈{.~^#~^SKZ?K[LIy(?3p&<ޟHdoddefqy 8eF.-Pp9~$G~ߣljgCL2_>N~Op:eYfLnF>;꼢WPeYv9OA{8$_t!hǠ5FD1/#Rdӗ%{kFSWwO"~eYeۥ,9?>>sv#VT#~FCrF+j{#yPYǕs33U'F|xDeջsq3ێFIy*}J-7͕2cZFJoWe9q򺾾N3wG{U9DiW)?R'ګǨgׂ=777k\cTNEf*#󲨜~rޟ=#l^~b1m޴xkh%_gs^Q?Ug_(?L1}w5߼ zM3=jQ=.˲<Ryݽ+VOA۶Qw, 5Ɓ_o_cn{5=@WwGsrd|+JgQ6cٓ]Ty/?_m¼W_zswLeYC[37>>ǎ]{C<ꪽw<:齯Fr۾#M0QuFeYNX֩ӭmy1:m+>}c078:1FQn^z ܓeY|:8fwԆeYA9tQz,o:)(?6g{!?O8wpD0 >;zw[WW7Q>$uR4 +ZW}^wѻ,ZW5YƩVjQ˲,m{'j?}E}_=yEc!LvAc۹hzY:k5{ 2a лyω:n'qYޟ3]~DX-Ͽ4}Yg?9dms?'~^ϋ)sNgyo ~I| t/>17J 󊈟oR'p&<ğP8Os)l٤ɊʈҗeY9MFNܻ'y|}M^ 1We?٪>&:1W'6^93ߓ+]/gaf|~ZَͨcZzs;b=QΌq63ks^9jN>RFv,\O3_%ێz]s $2#y\ E+kGΫr-82q^#f32ZTWFjX[S\cV{mZ"#SE';3گ¼nnnQ=>==yEfü޼yL*{yUϲ9gnt=w> }qȽH?ʉң~w^f>O?L ɾ3o[3CןfzT_oüfW_}O?+Fo'ywoM;ׄ}\׻ƨ.|g.它wA &:"8&ʪSa; ~籕{6a?q 'ݓl6h G4wm0_ٟ9[<Eͮۺ=Ɣ>jYN`|ү'U6:xPe=3-&>w/ukv,w~hs^<'Z?1l: Xex]қs8ޘ1v Xy<Ͼ{lt;3H|gϹ%~e?"~ϋ/å^6gz?y5B|yEϷ!~9yo?)G|/~>Sω?!~96tAf%o ~>e\|#_ ̟P8 gCL*t:M9vj6Mҏc蘑koTʼk{eϨ3\eFk{nj[oe^3le8HeTW rv4҆m5%2ünnn_u3Çc"~dߍ畭޳u}}L϶eD~U5/jet#m*vGYF&Q}}:?G3uuof~07Gu,#vy͚K]rKMIkg3މV#u?GFX5doHKkd~=J*R#5Jk #~GY{rL-ݣ}cgT9  oՌ"ViX7<3~W0-_̉G_Y_c=9)>'x?#~~=ϯSڿ?爟)_?^zk_J|y?_ka%~>絭W?'~^2go?&~9󗹇\S"~^K{yo?:k%~>8Fϧ?L| 9?_?3p&<ğP8Osө,fSvH^5FEmx<6}s>Rѵ*˨kv^|rFD${Le#}F]u:}6/~ƽ1>Vk9lY{u?cY{<KmԘ׶\gfrػQ1߿<==5߼y746ӣ=eYX'c*؃l$jQ[MDy7/Q?ܓ]C̚KS:YD,w1rߢwwwwf_0?6ӿ0_Ɓ*+>á=.˲l6~h^3yX3.##kl}Uu<,{uzsʵ~.)5f~d}~jx{%{Ykʽ=߯}9ˬOvwcFgը坂Z廼@?{\r̙{{*l[]kgF߫{\C+荦&Fr ~yK1?&~M|1ټϋ2.uOM|S|nwn3=W?kW%~^ϋ?#~?y"~>K|M=_1Ϸq2N/f2kʨ*:/m?#~>G|cF?o9_Q0<ğP8 gr |nټcN/=kyE+lƽ]mh=$*6?f}VKz2R#mR+#Ps/}nK#cg_5ܤˮlƂפ׾*xF1+ٵʥikW)7+׈!̫r}}g1bV+͵J#5dEd(rm5l_8Z{5%5\sϨrW47G~bRGJx)ᡙ]>~v`в,u*{F1YkDW_h~ߛG8js\og^^۸߾}L?<Kקo]3]}4{{{}$*\aN,X{t9ayJ/˲Dg{]1mNp^!{LM%8fOZln8LޗW02ɚ~3*I#PX9[2z?cz6gw32zmq8ao v:a;gd֕#cGdd۶뵽ߚ+3Ɣ^+"#c]<TkρϷuZ;~K˿?B|D玉o_#~y?#~y)c|'~M|c{Me|I%~e?!~?߶>ω?-s$6me,ϝ׈K|Sϟץ?/~?YK]+<ğP8 grVfռ*?Neye===T^m7*mFX^DGeǑk9KmJRm0UkܫH^Q.]yeիxڙ_kνz֞ߎԺ42dk#fךcfQ9ȵ\GGklYg+[ښc۳ɶg{FSi5We;-˜g"jk]+upXsUCQ^!<&[NQ9#~o9ʏcg榙Wٶo6oooü_Se/˲c{Uny.,zgLWG7|\W~fz Gݲx}}JU?0cf>/??CpLw/˲?C3omGdYvo^=CQ[CQ9;Yk:iDߙUի澕}шuҌmrϹr Fg< ]sOrqDgاw޹g狽g(zJV;k~q*qSczyEs9]{S3>+>yE5Ȼpo&,%k7mNsfev}[7ãd+RyGW}:Պ{I=#.Ѭ9 |~oL<|<2z\j{?l-n`E?~Z爟ϕ-~,?_Cs=Fz^:Xωo?y?/~sϷ!~>yE|3/%e,l^EO"~^ϋ-.5~n +<ğP8 gCL]f9{^j)>Wxygp8zmcpud v-cČ<#njEw􇇇fSW廡l¼noowwwh~Y DQgӗeY}[s )g(JoühL#ʱ#w?}M{Q#f_0?߆y?c3=yUQ7Yݮ~:r>Pykhi~ezhd=2Q+Km#?Q][Isf}GVHo^=ٹr4v4R/Yk{쵗z*#k>'Fe>}Lc3=ڗZ~]{?b~nFGλu}k=dGxȽ>=؆vXU5Tf<\5yE_8}?@dxJ2爟!~yϿ?Fc!~~=矻1X_,[ϋy/M_-g?H?_Bω?_awsyyϤ?_Sy?3p&<ğ\}l6϶ۺ@=Nc܄fzt^Q#.z]1#Hg#Xz5^]k8}1K+#jQzSWdqϫ|fK5ke3?rmSYVFHo^?fͻT(37e9ٶګn9S9xמ\j^9Uuu3}d%Z5+ڣC3ig=xKnooücw@|MW&kwwww7o4ӣ]ec3۷;*?n }3Ça^?fw}LWTјk^V4w/kʨ޳]~7ۯ:rGYfy/}푽x}f @vξA-@A<'gxu<~ǫ̫R#!sD>껗eYf?L޿Lͷ]~$F<0gɎ۰R~[8:.-;򪼖h]{<7aF#sf[w^5V*d#(!~>G|ۥ \y?/mה?/~>C!~>W?#~>?'~>W,گ;&"~9ϷN|y?/~>CsϿyϾ/~?'~^ϋϋ?'Uωv_! gCLy(?3ZfJ9C^^gmYOS~oG+[ǽzDSy^#+[~F}QuWVz鵉(;f伢cF쳸,cmu5+}oZz畽+5WeWQ#ccx>2>!_3R_MTOFF*ʹgYQv^dJ#}FU9'\ی'W|Yc]:%;2E\o2kw+{-777鼲}dvd>>L_1D*rj62Dx{{L >#5\ߧꫯ鏏F*2jrVȜ%G}ٮk+וM]Tճs_3#?yLC7Go;w{ծ]pȾT5ʪW>S>7K0˲,E|{v}~.=uȽ^Gﳰܜr}ּ,ۯqt;Ӣ}3~;1^.e^ᡙޛFk+ﵯ[4u(|o3b|F~W|13;z>j?cǏQ=>+zVfzAGsߑIc09 {6w̌TmL Y{3~g3V87ڱ y]K${̌9Έ}Jٺ]G٬k2EmkY5r^Qp}һgWιݶg?үEd{+zVG>+~kmGk{/e3^cov]WGR>yEcpt{ur*d/*w>a;mW|fg({^#1J{F(}Y6{~h?<G|_ωo?_s65Ͽ.s?'~^/!~>W{ו/~>WyϷN| ?'~^Ϸ%~M˿s5O?_s^go6b<ğP8 grfY6ͳ.x1oM5r-YzF1+,r<K{Dxu?1|{I^Gy5C峕m}6rOC?Y"ݮޫ~*Rc‘kcFZsRevFGTH?FR*cF$;v {=[:TQ_42Q eYccZF\82yNg̙gTqMP{Fczyecon]sɧ0H+{>W]o޼i=\s+Y+˨f,_N'FG)]ZF=sC~f~L]U|9y4>>>6Ӈy-[?2[,]onBAzivy J>ana7g}T_^{Sl}a7;{3} W>#ߏȻ(=Cзn}̪iQ:8}x4/˲\__7ӣqǏ7771}tٝ~``~atȞo*_5#/oGثh(: 6ѳk_K0SYޙ }V:kRHԾfUrLU6}/yWXgU^yz爟ϝWD|k?_Gy#~?&~>GAks.im_.~>W5寽?_C|ω?L|Z?L?_Cgeo?/~)?'~^|U9-#JP8 gCLy(Uۧe9Ng:l9E߯+k*ˏ+cF#d,SF1k#טUfmF'vk?'j=q`ܠȚkFkgY{fFXp()w̬`Yηrl_#nnn\8۾z]ܫh!yEu+˒z۷7oބyEm5:5FZFcssw#f{׼ܛ %ٛd !z{xf0~wwj_fԻmQ=FSHo^o{US:\~m~%jzSnc;zc6~|WWѻǺڿY+Tݶ>GvdfgkywwCٽ0fcW4vDnjfd<ݾ:M&sl}W4d{kYCTn7R9D(woooStATqe߽]y] q?>r9͞Sﳵ^7^=+3FY*mY?ye~Wid{]ߙ+ ~k$k?$~eT&mk?_s^sϋϹXE|#~>٥7/K_K|2E|Y爟?$~3Ϸ>?kωo?&~>ϋVN.w\߭fO x gCLy(?3p&WNSIͦ$eY2u/Z}Dz*>ʫwڏV3W}(wOFcT~ԾFdq^cDDʈJy*l;m_}gO5<ټ#5k6+YmKQ9F!]FgxFwەf_ٱ}e˒_̚iyܥDFu3T>[kJ#Ke󍼶ggdMq̌Xuٱ马Y}\*;;F͉Fn>5{ZtOk5Fu}}w߄#UGqFfs<֭egdgYȜ%;O#wLW蘑(6}3Ǐ7a^O?50޿mWiTxkv4qĚ{@IcZX~"i#kY|#c]n *f6ο>/ʎiﶻ|*LO4nẅl}]og({C3~hւ|oreKJ=m"GZw峝k?|kdZ0:&VǎȜ8~WY>+&+7#e\ OO:{]++.u7ϸj̥^9h_to{Q[y{ߑH~_N|?6?&~&~>_%?&~99??#~>G|./m_~^?,'K| m?/~|M?_Vϋ?e?"~^|EsyyϤW?#~/;\ gCLy(?3}Ngͦt<UWt-eiQ^k̖/7:w^1#.[/#uy?bV2rzݓ>&}zm_4 I8puN/TDHVzkX[Gdje_4bF?Xk0cY9a^پe,s}t5?YC͎#id:K5_* F*n++%*K{o=D*\#l=kl_gw|jƻ-=H߽,y\*O_|?1+oͿi1u}}L]\}vQ쵉{޻wfkadad{uGV&g:>U*zyEr:];f̯>z30Ϙ{u\ ?C#}No2gȜ8:)R52'^ü*e*cYjM}Y5T&nnn¼Yw2wF{H^ޝcw0#Ѭ̫w#{lz=yeX{Cv^[~r\;1s&UqX 5y?V^YsyG ω?e?o?yo?_C|M^suw Wy(?3p&<*ͲlJ >NS5RFUq;y|CY^yk̫JeH9:vc"3Hmwm/u܊zNu\D$*?c"]K/l{걗Wt^GFKS^ʺ1#󟑼fk*˞Q#߯5ό'V5IOe_8طxs5UlǬYF80뿆9<2R{R?Q\zkh].'+yEdwonno߾ o~Lꫯa^?5Gp>Kvr_gͱnuגּ*Ǻ6Z{]}g5Fʏ\]_G9c~ݯFJ򗿄y}]eÇ177{rwգS>nzm 5}Ni#}wPމfzܺV^muכ'8q*^Zc-W7֭~$+Y|o**+95CWGk(}Yo>KO^k^^Q\'^k{Q#uJozukc3=:S7->}J}Ysz}N8' Jt2FeH]9ơgr^wiUkusҧ5t^hm=x'u($~EsZϯA si?yckt笽~,[ˏ?~s^wMϟC|ω?&~&9Ygy"~65ϗ?/~s눟Nω?!~%~>w^矻x gCLy(?3p&Wk|:Re,˲l61#y|?[vF畭j3x yxxhGW_1#טm_ey'"#O޺.[/#L?MbY6u]s<)XwW7o_&iuÏün5wm+v;f֜eTWZigpW_Gk;ΥH/;l{9Ǩc<Wќ-zD8Ο6}QԌn{c¼ͻzYozcJt_6G;`?j`mDA{x/:&:˲ }fjۜ.;zg#Pӧfzoo͛":9].2ײ=3~]4'RFr~?Ȧn}p~YS> ,˲lvӾ~t-%x\ߏi8wwx95DtWxiy{{,Z3Nj}(!~M| m/]_sϟϿ.sY;nQ?/~YW?&~ "?;-g'~6ω?eDYOK|6ω?o?/~s뎩*Cω?,_x.@P8 gCL2_>-p8ges~-JV~5"#7W\9Th0R5s+'ػث賑FGx#+;Ǭ{5lg+^ȵGkyk?Ȗ?2Wߕs#m?2Fd˩\Wie22|Nzc<#;l^{SY_r<cAO$5}MTad\j伲jd6Y|YeN9%OKn.AQl:{FvfA}iϣwAC< nrs= x}3͛fu,STɲ,r)H|-q׆yFww&m7q?ݷ);ޥҿ0]Z '˲ 򊮥ROAx cg<_ќ}﷧ݟv Cg.MَAcF3Fko,rc}T1U]tS0WTNtL_}ݟ5Co=2~Wgkiw,QsOs|9:dl?&׽ov~imcj\mg zc {xAnN^5Svuc^{[o| zoQE\fYs_ysܸ+1]Z?=r^q_ݯ|u}MŲ{oˏ]cv(/v3rvsU|~ozTޓy4zNF̺yU+7G}v8Gs"tYk$A61#3ʨ,*njk3Js9ӈ>r^5lkϱ֞kkͼzY63Hv|굻{:nF,=3#Dtg8gLc+Io}blC&.z{1f_|?~tssLnѫRNu} 9zmf̿*E޻DWOt^Q eYҮˇO~1+7}t-Q} æ}zs9?>1.=v;m>gksc:e&xN1**_=:DT6VJ糠=.Kڷn6UM<>];ƜN&召+ǧCзɲ,>&%:S4ƺNo+_{O\vwݏ>>uYkMSNW1ٟ ].G~3=y.1gǴYٵsO$4%,K=Du^[1Fʼk}{{_6Qr7;1m:q}m+h½Zwi1;T߶|I xeϗ?/~>C| "ϟW%G|1n_~D//5kKz爟?19k??'3GN?&~Y?'~^o?)ws?'~M| ?/\ gCLy(?3p&W<9 x!O,˲,珑9ƠSP/unc"$~>GyY{?29?&~M|?_w̥ƒ?ǚ.u="~M|Z;dϋϜ#~ so?e?=/5e??!~ Mse}z?&~|9k\5V?/~>#{^u%?3p&<ğ\徾Y6MIQ>U/˲Nz=󺾾.kVG_yΕث+:x+2~sνFlkhS9gӿnEX?2'\sߧ9pggCs^ROYآv?cz־՗##gr>cM[ fy>˥}x][(~_+C0We)=]x$sKsGQ{5?E~wLco/~M|.6ω*?_C| ?sCk?>6/O?2 ~^/-{YG/~"~E|1_~y?65e%~=%~^7+CLy(?3p&W69oitN)<&,JHYc"ѵv/Y_xLݯY1؎^^>j_{5GV1֌<#DMl+l3R__5+52F61r>}Ley͘S>zdn2rLr͕-r|\oVZ{m#3Ɣ̨9Vf%E{Fv?cmvϮy~5U9cf\K}_Y_#|e_xwwLmuϜˍјTNJ ]jUqeU\껡ކD1k_c?C3WضC|Lpj ,˲ ҙ{M/;œe9Pk{_y^y||L3ެ\;GF.G~D\WJtO*FjMyGW7;>I5y #E5_T_e?YHƁ2=]etOF˯2E}McnkVG=>D/hFQV s,*'ʫWF)Xkd!Zn|2Qz& S*9ر{|:#:f|<:5)?k9kӭr?3?'~^|1s?^sϟk49s爟!~>G|6/O_{/Iye?9?'~^|tU?L|ϋiH+o/K|v CLy(?3p&<Nff9wa˲,㱬2RFeo핑-wgyU^G/6SWdM2]njk3ʈf_yʶR):ߑ(Olq`#ѵ5OU=~f +2>rmJ3׬g/v\*\ohگDkd scmJ}Ό3[sfȞW~ #cʌ{yxzzjW#畝Vók^_}U3jfF[1үEU΋kힵxPUvu^kiČ5D|ssL/%3o _LF>|}-јüGGCWt_*ǎYU*iz]*=lgٹbdֻ[|L6HVqyq]}tLޓ7rh__i4DȻh vށDu]v`ٵIќiym»v{2kN\=#s޻OmH7{sl^z;eٹȳ=2_l_өnͳM8tTf(_g>R~yegdocGF6ܜeμ;cG0a=O|R6//>k?_Sm?vp&<ğP8OtzHl6T GdsISY_3l9FTH5Fѵvfz~˞sFl#c]e}e)c*ϫrg=<+ʼxdy*vY~*1I$jý*Ǵﵙ~1Ϩ4y#kWrʽHe>&RVc]4~2T3\D*fǒsZ+xskjپjI,9Gx8¼+(r9PWȬ>2{H^#R縑_F}?yQ߇y?s3Çwa^7שWY{>:޸Q}Nq]UkrZ*qF~qZέ aLJpGƔ)g?g>+{7 ^%=<<;zoY=>nu@t>/yVTmzk:w=Q97{v =m9Smf>d;rֻȸ=2ƛx#ۭl_X^ǤgػߍdY{_kݕGf A^?r [}naFm/_3Ϸo?#~g?gkK!~^K?B| mkK?&~9?6<}|c_7k8_m_,?#~ϋ1WXϷ%~>W#~>(C|/$~\  gCLy(?3p&W/o6*ur:Rlʎ9,q}E>]H}Ec3wߣc6ymҍ{ye}e^=6]kۥ?+jC2vWt#lk~<>2zVFcsfFFZzfYKoQ9ʏ8%ƨ+Ǒkd.5DzuYg#׈9@9GUY_yFHڢqh$kOT߿c3/K3Ça^|M3}C3}d$[WoUUȵW>ٶ>"Xmƚo|uFs5#k<6=>g_{M3ӧO0߆y??fzfw齺?:WCk9ٱw^ymu}-}g{jwgG>;IDFI:-GߵTݯm:eoPY +8Ym ~E̗QͿN?yY>`]DzĿQc{Żw;SgֺW=?2E|y?&~>WD|ϋ?y,G|yϷy,?65y?#~93%~Ҳ{nj|_|cϋyLjϖ!~>C?#~>"~ss2p<ğP8 gr,\85f)I*;~Tv/n++?^+޵W>GꫲWp84{m5&+UPٯUSY^#*1FUeDIHSY_s^2̸ƞyY^͚i\r>f*1xl_SY/^ʶKΩRǧW浦keǔ61>ώuI33_5ba^ٺﭓsuoVHedf]iVmWVmẅ 󺿿oy00C3}d_=rݓ=lk[јpT_5xP3c-:k_l2.u<)#zVGYη774_%LOÇ^X0Ntg,2y^E9{ ##s߹Gk='3~QٯWY{o9kY{[EеX;{͘׌}~b$R( [I=ޞot^ј,Q&l{<ʵB%w|ge42'ΎO~ϑ͚fe}͘K4Sim)vޕ=zh \ט}}^BU1~/~99Osg25R~D|_,?K|/O?_Cωo?ϋ??+"~R?^ms?:sϿy?/~ssu*P8 gCLy(UxKk"kr612U}Uros{cPW!F*ʾ%QW-c}q6l}Fc?S>~L7oބy==7GLQQȼ0FYso}܃W[{>u<ټ*Y*'FG^^>}jG??yEm3믿ꫯ7>:{]v4_4cߵ3yL θ^W㍬#3H{~(}w3ޓo'ʵ~Ϛ}{*߿eU}U_MP]YWy8rLwޅex㍨-@nwSWZFeQo߾ x76۾T>}ES}~hFyJ^F~[9̥:{~-\{6k{1DwxSnNGѻ8xzz ȏO}Z~Qw߅y]}t']l6&~e??#~>G|M눟2N s%~/i??mk??ω?_}9kg"?/~ssLj?K,#?_Cs?/~Ϸo|]|/,ω?K?j~y(?3p&<ğ\e|Zt:lJq2c{M]H[9{匔=fgw9H_8C ꪽ02g{*}GkF,KNHf3fJ3eYG *ǡGF?g'YecH_8hϤYקO¼鷷2eY޻h]@[EGZM3=&ѵD双)#k+2H^z)d9c*}lGmW_Q=۽c3~H/K<|wZeoG+,^_aּlcWмUW9;Y߲FIGd2c]9klF?5ϱ=^r2ukñWYf{cJ{Y*]>S{~M;hiY82Ϙ_}e{>K>ߋk>[o #k=3kgΪ~ow9sݮ}wޛ%F]jWCd EǬ=K|ϭ+4R=?/~刟?i\j?_}֎?&~o?#~Ky?&~?&~9?'~^ϋ)+o?ωo[}ω5BG?/~s-p&<ğP8̗7˲l6t:}x<R#~o?e?.GY]j6'O|_|爟?Ҳ{+uZEה1g?_P8 gCL*2l6{Lx<6ӷNt^e1*)nK~yec5FW~y͸1#>,'sǨ^}Ul[i# cH^QE:l#PeQ}k*y=CQ{ya^~m3kWW&QzoLy{F#1 +HZrϦ>C>̫r<7߿}ɈYkϩ|GpLü׿6?5߾}ݻf_uW^~/Fy?w&S8?r#kW}KڏԵM33* 6g[7gUZ{=2 zm*?yT_5}v͛0yۉYآwYS<'J;*}q]{o`YHټF晵s.uN<"sa_˗~o"ѳϲ>C>:kسu?/~~W_J|se"/#?'~^|\_,+,/y/o?_s^ϷN|./?%G!~M|.//O?#~>"~>C|?/~>C|+]|˯9~ CLy(;6PtܤWlNF3@jCwsB^[8?3P8?3Yȶmqn[Ŕ*nr9qǸ~L9S%-?N1nT,F>աjq^Vר]mZYW*e_]<*+qe{{:̔ϸM.5^Z_b,um?ҹ\%]^gf>u~\Y+ۉ潲R?8zo͌˒kVdXj]I>uue6{{[G]ʱg|Jqtqibn&-.Tk_K̳X]cX.aǘ688?I 3Wg޻W/z~I>=?g*ҜV}]~Z{:u#y/ ~O|Ϗ/~OKLj~s_^/~O??Bϯ9|ϟ?DKXZ#??FKϏ?yRixe/]?y?'~>r?VϏ??p&~ gp&~ gr3Ƕ\w/&JTy}TOSLk4mq.ZS]U坮xZ^S퓤zR*ǙO˫z~<ˎ+KJU^h]9ޤ3璌3P\ݘT^TǕIyÂ*~9S'v1zM*3k:tvg&#D{?sX*-{InWC3)/ktcˉ}RevT.~3W;77+~sJӳJw6~gkV։zX9NsO}3~Jk^9'9xGcJ|u\LW^7yxz.~ sar{᡻ݻwy$ƴ´E}Jפ2ڶ\ju3Ҹ0]K UVΗ]}Һ+Wd}NU7]Ǵ>]گ_5<J瘞y]w)́Ә%Sn)z-R[_CHlx|vϛ+騌iyu3cfd3&5HgrгhugɖeW2-Է_)_u\񛸰KUc)Hpھs鸪A'}UW'UyQmT5V>]fڛ8U`eZM5Tu"ͳl\y9??y$~~y}FJK{6_Oo?"o։Oi9.ϣZ'~%cχ<{χF~R~ gp&~ gp&7C[oBZyQ3)=o㱟V)b秘]/?Zk۩WfwayʻN\R]IWnoU;-o-_ڏp_KUW=!ʥ*pg}*r9+o:{[x<m_Q=s.'3u;;B[~u}+N|+}º,1]wyu?g%TṉNnkr nnSSOn/JF֎WVmʱ>ԫmx-LY|\ys{.p)F+qѵڕcϴn:k-Lُ>VigpʱqFkyweLpt 0Vlq ӯ>>v?=}.iˇ_~CCn~eػ~ZUe¹c-gIV ӯ{x̤5S^i̘atW|zLs>}i|ϡ|>~]Cj-ej#bZIJ+ck3P[=[ϼ~NcC,M9)w[kR};qw|sh?ʾv4k伇6GLk]Z}ko3?r3-OEO̽53VֺqV}oWӐs+ߓW,CťoY,PPj'mEx])g˜²_9OIw03mNzN+ (~Wj-L`o-IysyP^-?Wy7s&޽{?b}YeP]_yC{./v|NW8>6Ok8 ѹ>]8ݧ\.ϻ5=Ͽvy?_.~O<Ϗ,\;7?Y,~~ }Ͽ$~^ϧI_C};w??F|/ͿzqoϏ?-%~^k(?%~~ ??׽?3P8?3P8?3YnVM>.tV5nk\"xxX @:h }}~Zo\NzvOgWWsoU׏}W(8xO7ݡHl0Jpss_AݍJS2́$uW?}>ma&OOO1叏1/_t)-ozVwVU>C)ۧ|fJeq3ӪL q3̼TXetlf?3:bp3#Y=s }~v8veܫ{g٭:q|~2fYJ*K1|V4Cbq崶yvmQ<4.+4KBƔZZ^|oºXL~ha<D"FM?@a}2 0DgH a & DC=D'}*bVIӟ ,۶+J@~DZ퉈BCGA~nn\.?ѻ#"fyB􋋋RO">3Aa0KJͯ|+V?K_rPTAoW_}7~7_[wD?Ϳ7/!Z_D4/|X,[_,7߄'!VpW_y^|aX%hh]?w2f ۘ(s^zE,]=ҕ *ι>?J^Վ 5G‡\- p?G|/ ѷp' K'7M/i?ooN K; ~g:I4\/ijQAǧ(qQ:J$o  p4_ȫαS#7JIiX攉HG -k:Qoqݑ1vByknp42ZH@a1S,"}׾2?߿gg17}??򗿌b)\~ZꫯBp' {M t˅hl Jkv_X]ۘ+WJ~ϢP/ @;Ѵ׮C"'nVRp~sz>X4Q6sȥ0)VDsU# 0!]r@\D0~L@>`2 ?%kJIx 9ۤ0f*>Ia(*xh= i&B+hghߴC +O,;WŒ. -=WHrhzλ=s=So[ۿnwgg~1t#LǣDL2kzQ崵R A@P0[ǿմΈg2Z6G\.\̱Vf 4N@Ѳ$Lsb٤O#Y> 'eАYB脸fj&<7BSѩ=}1vb 2Y dPY\^-&"6q `BeSr-Wh*d&塜s֜ "5 ѣ^{yOw_V85X-dyn}N54GP˸D@AA!u2 e!`3nÈ =䐐32cFub:je/_Yr'_9'dD,7Fix W<lj!y,GFFT (d(!=f""WlNP!qxH8m}4j[{+ǏwGwǯ=Jq5FptIl*aǁGA8lO 84sP?HZtYX4F3ŦIwbD]Zn]IoX9'*K%Y0uA{L}K|^/!I[XʯնwW<#҇0ɥ L <@Bf%Ua?"9%Z~( Jh %)j&&G&_8q}Ы0DI=єcF]tD_> Lx}3b>ebb/&M媇'Ly )_,hΔ 3l@8Uh6ط"?,Tjn,bl[`GcVɗjb=[jZNNTZp&ⱁz19Eͽw"KHUs0$xGGglcS J՟/oDg, ^t}AdwE!O;k71 ׫͍ W6O?Lǒ@dmxHp G.p ad,AN-"wA p8hh9hCѫ 0_@绮d^hjw޹qZwA̽qܵkrA7k+A! :09Ftge1=kƪ]d?`p;gD#JV˥jZ3 m[aZ8JRe.WmyjW%-+*AFdiʸ:PBjqL}x[_z3q?BfE3s?tJ/hz.g3&i.&A?o0M{Yo~~K'^j{N"YZ\pnk\cuc;v'ICk{V5b  GHu\8z $v>BFgE!Iޖ9dۣNn42!22Dz<{A,)d\LfX SJRL%J+ x̍L:4e",H8S❄<ݻı;Ș*s"Oȵ[.,PЈJ HB.TEm;|O>,X(nomlmYhPƥRaaa(TC™ԅ; bnWz8<,N@ AbK해;C#9,y 91(!%v?Ղ,dyq glm["TEA:5Ch PZDV-l!GiC;iԜ<@Г`8R'Y𧳴7*7|rOݠJ!W,.Yҗpi;_Rpe(,A&?(cE':š$Bs)y5 GiwyW\Q?MR(R+zVq$ $:r5KC}mhEvvn~iT^DS(Y3̃ph4rt!qVՏT\~kZz<}{qe=~x#+n>gKx6ilm CiceYi/ʯ<,5qM7Nu񻑩I6BX3Ϭ}ȟ)y^"I?yK5@P K-@}EIГR7&*T2oѩ3ldiy+,7ެw>]VpZPT*O$֤^ckCF9!,#5㉠'V?xpOzw<7 P W{|a,R2F\ _y(<,Z@F 92'tu\>41 we6O_`i P<)z{o)`R ;R0< sr^Gqa/.´NjULBg%Dfh!zC/rB>Ւѩ7>{ < nzft7> +p+7JO$Czݺ K;REY6Md:yVpN^KHdGSHgꛖs|8zp=!~~q~&}iF(_ ϐ>0 KFN01{DAZJY>'} hg3H~oQ+]V0+bz(%7  `78[l6j_hq3ڀnZB99pi~IgL SVY(z2 ؆n}F<*\?-~d8 (l0U H h x͠\EF7L"s,\lFuvR^(NC1 J 6IH0Vcĭb'd~{_\\,!tuONۖQo[;6ckyJ/HȄ&EǶ>y8ۿG'h&%b ģ4N_˗/X?OPiru GQKUHQ|Z)R)\5agX)KRR~o–xc|,̫5&Iû٥qUFjJM+0AIa yO&NZ2JDn DXɔ/|Yu>-ι\8閭δ+B#f9W{ şittN7%MFZ~sWΖBSAw~hJbq |(k ?{DZ{7V&ژ_Z.>he3)M჊^ eBT#SZ ix[޹:H CA> V`1]XX0 LcprpGVO+>Oㅹ+?󋿶k0m%c{+QB]ǿ[__~W<_^t995{MNJZEH"_zƍz126#ލXH_Ű o0sW[=Ã|ƅs 0r UiO S^CMs ֍J6[P 8LVQFwm.vOw}gW7-楷/}͈'?s}"2lIBa?y[ܚ\GL~wןW^~-7W32]7Sodřd9qVKܗ^x}+J@QU$Akbd%NY}' m}T.$W \^˹b R0 09e& F(no.lKVQxaZZH 8?3zQ6r d?.ݽ^17_|OPD(}C+s/q0~7],7\>r^wSԑӑ*E p.lg :@Ȕ}{ 0 yu|!G{ePLGIBQ1t.L4d8&˜4@LM vګ%`2v|JvݱmMz2~/o]2/TwD*I:UO6D#W޼}Xz|>+L:{h5Q3 KT*tSJ|قlnr~'QހSAV"DSxRlQ\t/&~RM!;dyFyr+T"b7vz|ARb*#9J (oUc6Bݞ?? M/PTl3:2cxt1K~ B+_\U|oz8ya/@]cn (ߴ\o ;n[6ҥ_ƶX@JYc`pݠO/=,m^mVND3ZN,?ӟE=< $; djS&`Xp< vBR>DwRr:%dHtP*%( P?AN8@a0J $Yۼv $ 3l$KBRIا%ҸKX:7vD.GvN71xm~'׮z I:0Gߐ;\ n~xdiU-[5ЍS38AHJŋx KΘ_LJ@SM!0K#XVL@Gy_JngY*n :tƶH6A8D(`)VRsn{m /1p[t)`4B(@;cw:|W;w__>F\.Ϳ?wGF'}GV֑cAKI3CدGK[eFz78^/4k(l*r&FŅ\>ϊZN& zp?˯cT|R< o\..zG&a7>އM_உiY_w? B}i(KV+H{9Pp7MerZ, [ÑnƑB ^㈰fAJ*{!UBGjWTz}{ﴬ0/5֖\5-Og.8ap8aɉ\>[(BjJ̀2ZADvӘb8zB|pYpo.wX( 6{c߁Q*Os.BO`荑B6Md+~(]$SRpXPd B'y+laep[>] |#w4[{ؾLVS(6QySzTӈZ&÷K)5I$'b|ntJ-g^ c+ァxw}~8M7ESYLn3r_b| E쏠~D8U s!،ZRӀځԑA`o*Nj)q0(cE#i80ۭǃ)WZ^m*VLz_&(AB@dFFjFD4jv~Tij̖*`hdlXh6sٖXT8H /QCjY``;Ct qw}ޓ24I`a\SJ`oP7B m8|,b8W h1aȏ 'JB 7 #ؽN%Po]hj|T:Y(jri.21|w;F;8!b:>(K( "BYRsd-s96ݓ{wOOvְAN'H7זjRk^\B^Ru0y!H,p~` #R?d՚,'a<]/klM IAmdfz k3Hv!7&YXY .0VəhR>س<|aJDB 6 2$PWG9դtAx%I Lba`lc8־wǾ_.i zRUiU*SFZnZaCk:,,tNu NݽhI#9KÐBGLT px:v&i>z[N}-ױ(e+qTdsP,<<)\LxtD9Y|5 e5ޟLQ-ڮ=;=}݇ǻ'nD#c&j_`2 : P`gt?x,-QCkOGIR lVZ4K၆i\V>1qXSOQN& (X2#M9]:_l=C=d}1APH$=o*%v]{zhŏVkFc/4jH΍ђHv\ !<,Ssω==:;pJ{S%\me..HE ~TNVl59ئxi2+B.7TXj!P(!!D:4p4ܿftAafo& b/VёCs;hsD 6N ʻz3;CEݏ.S KCPv3Lh*PT:M @*&&>l?C; #j^-ߠ 20?da]4d!K} ]ȿCb=kwGѩOAQ%FW*DX|n?݇P (?+K3؉67]rɵ! k̯޼p3r^Ol(Z%_9`hLágh|\F#띷G0dRBި2i%ChRʪ/GqTnipP{,X Wɰ4h᰻< Q,),X7H$Mqs%IΔfEiHAw!23m:Cqp؃$L9"2~(i(vӽS9Bt7| KL}: <h2EuDY#IsjEp#$Q?螞> v `hZA[s[~eH,,}44e[X"[,WVWnLwtϯG9w 9ࠔvK:K/Bf?c2Q'qe஑QpZ}RO%Tq Sl lJW@)ܓ4?Qn]"!H@kM3KO,imݮ]1A..L-̔}vd 5255L}hi 0{VaɄčtTUB Bd9)KXu`d޾~Ҷo4ca +fZ@@g@$P L3܅aμ8gKZm-WXA)&Jiqiyaq9Y豃E)>>Q@ȿ}qSK$[%WW=A(VRӎ* (a&Ac,\ْUh"b%.Xıs\о),XE(.DdG#2 =$-D6ND /$aSC@ΠXʮoȧsZzR*LÃ.|=]N@z8`VFHK{;x8L۶vc l\n֛NN]tJ QI3\UY%E ǁ ҩ(X9H$#𐓱k} Fw$BrqI)/ BJ ?B77%u3ૼk}pƞ/N R y< ' g.Z3 qzv5~8\RaTH?]WO=}9WFvnq3lz>bG$ z!ċ:Nu4 fy%Pc:t1Ir ڎ,S' Tj鸾xC.l u]k-9X˲ifP%i$,4g?l9i^aixy<;tޠ96j}aiX)Rl,m At%D9EU_s vRZOpV3Эm#Jq(* 7^Zc}F@U بd P[ 3 bRȂ w>0eawq0ZsaQ3B (U"´L2%R`:5m7=Yw0jwl FG q"*WX$d[b'#@H^Qn*%j}XZD^-Nd*V+\:pp4ʅhP(H9- ŏf+` ⦕f&I#Q(Mbb.#lYeSe} {owxvx'"!ږA1"A80Cx@L$ Ձ -jJ<yMmĤY2&jp::B2? DSgSpb:wMD0۱R"?=wFvߙyaفMbt9)lqxFˈxvY,!mO")L3\&KHc"i4q|AeC:A/ʬ(zR8r^%C!D_f$LQFkE A$\ &ܻq8 ~pxϋl:KfUfUW( ? i2>YR#GJH \0 jHklCʹ\ri|굛˫U{:>ضPVJ&ɲ9D;” cz"0 gCQ&sca_ ˴-^F3X M+*R  5Lwhuy~>96rN*|Ɉ+ MpW;Li<`$ ԛqJ_F =7,X3=o -U 2g# ^nD(e[Ψ|҈OQ7{(D, PĔ$$fJDvtQFGƥ6?_^XEf"/'ӻ#ECt<]V50P]7w;Gp* 1! Y &t +hQDD*>:>R8J%DrB58w>8z"$#z1&"E ^7rN`4(l&M0x$:G*pQS8JH~%H7˗Kv.חXDc7y[l0$Mcsp *Z-ؿ;CȔE599}$רs4I#4zj-HU<^1`3 ; _chD\˙t 8u,c8 ϶`xy-$ e{{o tS7i_[p||ztr4vqnd,i5:մֱm@%OԪ|̉1P/c%XӸȂ\Cc܋r (CƩ)tb$<[W\ 4?ቁ۽Q,s L=JޘoA |XLG\^3f EVJ"f9&,= Xe2oMc@cJ'RY-W)֐c42c;o6nڧ ._C rY h!N'AMD{,r|ڛDDAqS"HGNg $! O DӄfeN/f3)J2Y;B:So{{H*BXJ2\k:My,϶FkC XKBJ_U@(tPJli:όǀmwd5J6RbVdXo8>!pA ^fU>uBtXzHdb oMPRĺ]lY%MC{`#'gڇw?:3@I]hV6z-] )JD%L|i/ZF4e^`&+TRE1q 3ЋM%8u$i9fȱ;3O:R3 OehMa|(  6Il(x8H0/q&W $ۧP޻LI28LLLߩD OcLH% uOi^ٶq^{7{6RAN(T“D݇#a-v/-X2t2@Y'$YP廔rumy㹅O]: 5qWQq2QhA[Hc@4wayYڠ{wnۮ twۧo<ÝxϝAX!(H(A{ Gd l"?hT:́Lyg )KH侖Qt[ビ#ƒwN=g|2nF#pЇF#cq;25k1 >Rs[w̡1{V7vXzd4" Ϡe2Bnp_hdlKvg2J!% i%elRnƶ _"ً}Ih=eZ`A(viPdYCIPx8"4H_gŹq\+:HP"ėq d[2d{b.`QU9ecj2$aC6خ :"K|R/$ tG͛C@5GQ (pɪ7ѤZl<~a{<t׬W7W 9 ٭ŒSivBlLİ돎Nw[~S(P z Tئ6Ua(d8 i:%Ri$m8~pEE2-b  e,"`DT-Z>R(Cy<D-,ƨ{l+ʎd`u3Rv+>?5#^)ڣz]K9`7#nawmpǻ{~d ت瘽~evŀ9FΌZP@=|~zv P7'1H. 3Ǚ.& t"%B޸%:~@z?>Tt*6l;`Z``.,ŤM)3 p"OKN`ЩTZCdsFsqmm{uuh˥F88XT!6t2\Z!mQ\aN`8h0َ#XL :)SX]p)R1MAIbS>7=_q:89<<:Y+i(6*?6tfZ[ܨ`+2S)!}2a?Ib^Mo_}A馋|rlh r n3mzӞ067im=J$v/-&8\ . cձB3ڶ86TN#d\\i,,oؼ_޹Jk¾[=yW3?]ym =dLA8)@O(F:o0LhIj`b %;jLB:62(QtK)h~ :MdH~$*l r<ਂ+3 #ѣ{w?=5Gl봇x,RJBJ$5|6в в+jѬTrX(( ?t'v)8*H nAB<" PCKG@;Edv޻G f $+Shx܆{'-7|8tݽn驎4AE`ݻw~}-}h#2B-tסbg)42#:?:uMbʭLb}ɡE^L2T&-a\6hkOVji" n4+]ڧ|h9 Ke>Q$$aa=wQ۱>Я- r.N׾Y'3)As dKXe+> Kq]BBITK'S2Zb~VAܩNFC訃`.L |Mf,`Vc n֑c1@6-q h$- Y7j l~CV>T*%r\:Fb'1MOl2ATql#pIՂ1>@,`4:GQ5ȩԛRMtqZ3HgՓq+X:`R,ew՗K G,drjEA3LF]! r`~w‰~S9N5C L}4om zm󚶲8uH!grd:O0GTcBPe2%˶}d,p9>zw&NN3q%";cƗW(rxcc|N!.)-z #GHKBơ5^0W`Pޣ&U}g4QJXdY?d)} 8ӑOTS(%` ȪcdѧcCZgY Ok`X`H|P+U*ՅZciiek{Oݺ/|_qBCO cǍgeҕJ|2B͕5sTh/򃾟1v#e83"wvۇpRrG| CLBr-?:X>%f t޽[LC^dطQ;Ez#\dR85(JJ&P9.D9AP1:OjJVji6[LJHǂFx,fl)ΦHb :#"WF)tjv-hr2/ K H3zκ10f7@ܧBJHDq#+)yV`8C$:~>B. \ʦ:&v G"?Nқ;s,9weU._k\:7v:^oDҍ@mQ Xص۽pplM'rT7õLyesHK%r&Ce;aCwo<Qֽwr,:Ƞ%y $$L;@ !祴T&OesbePZ,WK~" YD9?7ۑhǣP1_ *¼]Ӏ.Wp@EYY45jrĉI<8TƉ(Dh0rh< `<1y7P/"drɧ9$pN]8-i{rayE"+Ņ%o Nuy@r;l|P2UЂ@ZF єf 0lZ*JBG]7s mĘqC)JhΞ%Ib}nnimuuk}ec}٬$Sh<2A|DFUET_,@tse1DGjSdܦc977+UiҰ(2k0vqjJ}\Rb;;cḣ,aR(@.Py `k,y#dIQphl9Ʃ]3,qDѻep-/@VdT֗k ۫֐o]ڹ~­ןu륧nԭ_jg{^ģqߛZd0mv3iII*~! %lQB/XJ-,fbb饗>~DS%ÎAF.rK`գ\w|zb޹{`뻐 xc^;G,DZngd[|! q@#Y͉, e.@flndFNU>'^7U O?5A}:}P4B`윆Vsl}1ǁLq!uHFV 0SԧI x!K/tH%_4 b(dF D c|#?V?~T. DoPю4.<A8IIuOGKF0LJ ʰI RyTW̍`"%=<$Mq* D&GN7z=c0Qav va}2,s6y4`ͅōfQ@\ojI!_'4$#xM:b?T1j.%CpN[Ơr\ IX҂G*F&,re2Ht`&w[q-p@'_ːETcN@fSbN7,Dp;4!#XM[,h/qdrhm{Ԓ,DJv\mVks͹充K]>Ш2coXwvEцoɧ+Cx3% ݴwRrڍ^xͧ3NΔRxl]ݑ*ܓ6N3ȝ ?6@Ԗ[V sT>2Np|Խ/q(5QSfl k]ao 6<0v 7L zY.JBTr5ͥIߢ\G^:IhkH\Rt"/#z,5/g+ONstiG'%-B db_{=kFSrXU ͊9f]׏'ioxL0t:^(WQ`8Z_ƁZbk.`LB؃>FRa`gh|h wXdJij b %.eEO%o(T*n; i Qcw)PZ\C^x֑_L6+WR']`xvrI p, 1-I@(?ϢbA\FB ,bF#s5F[/-AM$35msdv9k)#D ߱|r./;ok_t;Qe}$0Z''n?#\XX95`Lb0L.;OBMU9f' m&w,$X-JrJ\.M$ s(sYAm]H_Å0E .jџ)'hms^:@h[c|_rJ0U⌹7 K/% uG.( H" ,ʥ߈Os:˺`Gp8}n~~s}e{ki~CcҘ|hyM&vQ $1;Vr~"o^`p1P!L`Ol('9wݘF~wRY/MFɒ}D@=Nwe/\IeZްY d&?ϏEtB*d8aE9a}X4p@`h FsLDVkt)+ Q xsdW(jhk{hۅR9JD0=>o )е ʎXdɨEM.Jrf#c|!W,JsR\Yikc?.X{jaLjB!﹨48ܺpcHAAD2 IT)xbU\%81T î#{74H{@Lgc(~׾`KCEUYoY%)u+(w0jp9IB[ۨőAmtO(F3g]lV^!?qJ ΀\P"!2 @C2˜i7JStl!wM1Umi!ش8[%+?h[`Ę5g%SwT._|3׷6V 텷HBCL*K!ŇC4U W$}a(?Ayf;FMfC@>}Ww_~y2GtؽiZ|ÃNtX_^J/g`/ۮ2-,ⰶ$R!A} "[GZΧ77NpJVj2jA* yQK uz$/GG(Y2yS c)L Z$ >v/?2HN",ha2h$TTъ0 M֨`?gEad*gb}ny}ֹ;t+7_v^zK_g~S7_ٺX5cyﹽm!C BXxt$(-h\aR.,VVK^?/#x7 L \ P!g ݣ<&%'d&SBqGok/Wyуηy7/H!SaUL᝻E9Sվ+TbT^^80^"6- Ԧdz^#,5GЕt<@i{vQu;Gw"Bs?쬥I.KcbJ P@xma(rBV%l,KHXVg}oA FbUZF #T"PxqziH)AQX.ݑ4,ͺV" a& u<@~Zca}Jun#i~a5-W*;W._v2Wxa @^AUkkk|)Ӑ!dPS"ண\s9`A J X`FDTn6kkruz ʥrQR)  "ؖ[ЌPCY%)A*L&%m .In4]8wa)"H!fz&rl8r}9\aMC!\6[(.^pŅE5@ѻm:i&vV9d"ZQCBq Fc&U[JD6JxUb@?兤?Kt?tCpR2֍0eN@?B6_|\ L^chruRF {Dl>?wn굍Rq,Ha#0 F23:jP,&!3F&\)&S)x7J"d2 ɷ/bllGY?u;>>>iT2 @Aw<|(^՗V P٘a0DeK⿚ݽ޺wplY&yڐOZLPćϭ'ɰų=K5H@L @|$*} /?4g`IPF '&91D^jP&$jП8ԇ-$hdi!MWXt4 OfxOfFҨͥfsueeg{sWpƖMD!$ Q*a8&1մڭ>3*s$eZx cq8@k!3D \ Uqs8D^7`LC{|o`?1u D|NJG\ 'nmT[͒V?07MBBi~~eeyQokf8ج7‡$?1{Gビýs_*h"1oN J}:}r=7:ޖBI'ǭo}onmz#Cށ#I,IU9 @<\  ׿| KU|ƑJM@[Lx15/\XYX#?sL_@PggBv~s+L8`piT(#/..mom/.,R9a%Am ҝ0حyT" LVK (L!769t=G M$(2&B٥;Z: w{ee5㨼e|m@jɒUF(K:d fܢv9}}"z&R+fʵM30;U) rQ օB"1T$( ͝oV+BhœRiaa~{k R 9dJ!Il:NeH5a\$EB3=C^bʲ///7өDG?R(QޠxrYpDc)4P.PToܩitTx4%WbxzխR9 q0'DSPAP CVn=d*]4Ve) '/@vfBbül5xfcr?8kLf$ϳT>Kk =h P[@Iio0 Z7Nnu B.f#A18',Hf?k)o g g~ J L30aO2q%ӱz37hV<oK%A2I% 䈝ܷ}oLӅ"{GS`nuB {HyTE0P,)-,mnmĥ&47 >4QT,4{KeN:L32LD q2vZDӖ\gO2x#mQ)YH3DuW;k:#AZ,,_N&JդRfN='j Ղ5! .$@ḃֶwV׶66Ν۹s+K +Jؼ6Y&n=P.Suth39fYXMr/*6TJI& UT(JKNTSr1Lͅ>7n>^.f\Ip<ԲlNKJ(`ƼU ȅowϦR~a达^.WR|KZ.n#y˔N.)%0kdbKY6Jh$Q^8]V4t&Or!2;} TI,a [$#Pm!CKP"]֖ϯ-45xhl'`BLk$ Pl6dJ[X}?}z1CjgM4䋅"Y*\sYw%:Ȃ"LK緶7Vءùl&Nh / D2H"cD8 n ߅F#J/lmn/.#)O[X.iUL%(Hwl_[QAO=|21PG!|i-h6zܹs+(yȅ9p"j)0-.?'+hcK%Y~sBPoTUH=kW.]z͋(ˊ\R9RèiĵDԩC " C.8)W[/y}zҲ- eRNjcVV6PX>'v6F@c wVJJt@ <398)mg#3zY o]QP~~6>0$aNڡWG2\ BWV7guqG$O<"#~dQqp(WuF, NeWHG \3}WoY؅q0S2ThqCid"hDŽPb?04sr9x 03{-Fj\IE8d@$* E#D1 g6)t*S?gyΟ_X+UHLĵd%֨b"LY@ b e"G*Rޏ@L9 ޸2 4#厣^e0N B$ "R'$=P~>`O`ЌƼXQ ʧQ-\:>_(9 ~t y%(R8v{.ݨժL"DZK~sl@皋j3e! \fQX[Ǵ\>oeMH #l]ڼP(ThD,O}OX)@:(1$;Ko>1ک(-߳A5B 30%.IWlƒ>дrT/H" 8Tk7֯؞ӒQŕbx*f`r0KJ HNCÄ[DoɄغ1ph˃eqyi_??ï7ʽáz^^dn-ZZYj6PQKƫ^b{*bJ[Cc02'ko~hi~H4 AQ6]!`$lc"8 H/ \(>N 1ޤ(Of@TQTQ|m*d9N"r97;s~!k1E F#s8Gy*GG1҇yD>͗4Jsaqkׯ]zi{sc!l'[S~Ur8Gfscȥ$A?w} Qq{ϿsJXYQ >>@8n;)JUȥ8@A+yE1D<,m2>W·{q4sq5: ;mY'w ?>N p0We/[N dK' ׮z՛<\,E&1k| &Bjz[G^XA0A̒2 k7_pFsaav KbRD$ 8Q`Sp tC8c(;_i,Z wBL\q ˜ R!y9EL"K{n'bpC"('I&@x"\V v!.n^ԍO=wڭEAq~93դhRZҥEhJg@&lq1`LD\ \^GtJ+ʰ&vO߽w{{1" pc8 =dorY2DJdZ^fR B̑P6@*` /--,,-Vd&gQYzfzt8}t7ڨdM1 )pI#.q2LJd\CoAx&-4 x LAh-W7vl\5|` <۷ 轖5Uͬ`_^{JAk##J,R4KLs~O}-m3Y(傌$$2l`702")@Q|K - PI-L!QyDr5{ xO+taLg!ԯQP( с>6 GHPNNO;Nce-"*0'z p$0.9W,m_KWo-,h ȷض=8h&GC!t8w qJO=YW2+Pg g@ADʝ #rscKYФm+|~ /[HKAJ \8 N/,mm]_IkESP:h*ߐR_]_ skׯ^ّwXK|'NY\1pkVx{ ,0&@,(RVk\ƱDRXճ"Ky\G 4TjF[tx6J*m'Ǐl&U*@ p Y'm0:I+W._X\hL72ةzg*5E97Zk=M@3岖Nuۭ>{:=ss~}zrprr|rz?2&2RˡdSԪsZ*!ʕnz砚WğB;iY|"L=ex \n6lh&M=g>C)KNCĩP Q? >vr$ LO i :m[)I324oS\g~q}B6[D`>ӯ0E-h*d"ƗRG(i *g}K..ZR hTDK8SITpK!{HH]ݶn۴\$61^L|IN),Ħ>Ⱋ\i?6$q7\a-8X #Ei+ͅFs!ɈVF;v"DI28h8hNG(\,1TyMC>W+O5 *i&Q$YѡJpN\ r9PD l Y0K,ik*e/`&ȩB Þ0:>H̒|ق7>~-2M,сqp<6L^,M)fX 1jU~ jY9jsi[Ͼxj$P4Ê#-bFmFe>ƐGR`#Hpr2f1˳s;HjrDz(+&CSL+EjVW4![Q !u S.xҩQx</]}N/k3ZO*䱡+֪fss%ΕQc*(dFz\#ICDGF'F}¹梲Pʼ4x 2 9A~KL6WՖ7֐z1o18yAF[gsGP&">!dY@F!%\) ʌr֧6^\YCiGQ Ts8q,j!@:_P-V~#.jZJ97hpL/-Ga,&۶:Vf?w^y;\6S!|IeZ[_,,XJD2CCH{G~7޾c&fsxGOy#H#S9B WWE .|oSAOcIq9W,1$fw@78)R*)٤Raf!|p &sSr8fapWZ0lupP"BiC0cLbbrʭ/<__I!/- ^,> Cn3i;! a4> )6)qos;Lb43+sIhq<*jjAV̖L$P9Pt=G0iؑAtVGs\ >_.!V*K|C $YSٹ WNy#v3fEJnE%SxyWTeph5*SDl!J,I79aG(mn/T4RqhDW 3L>jb MjV\ l,K;/ȏo;W7`]%$ޓ yTU@/PI:GnW[y  8R5~'?p)@DNZ6!,p(NonYa8Y .EOK?>(М,`U7"̏L6 yX@ Si:Kϕ]_zm^-h"Zx!?#:@\ٸ}cˡBLe{¥K<76&%>Bqii{;;Mܨ72? pVhI2٩>DgwC"a oj_qvX6'D,$mTZ,Sf+Dv< ]:\dOe2q2;-䣉 |Lqa.HWn!ʗI sJXRvH\ʵW[$3=T#:1, ր- *Iֲ@ KC G>@(5Hjmnµkt26 ;9욺]C  N0tFvyƥkO_q 2cJv$b#*t߷(!yJp*B.]B{q4cTg Wf#~Bi(G:@(c>_+Yl4Z=>b 3gDẳ KWnЬ_:8ߜ \ RpJNk"A%n+ŖUTxBd%QgQH y9A#/򐤙R9p5 @d'Fe217'c#J(j$ ٿheb )j ?@Q Uae #T:Sp$gr64iLO+RVi4jrs|7`{gx/V7/n\\+y(lCDT*'%Pr6.bxD X6VՕ9;p?A k>qˉO|mlB^3b ;7wSuo 5@>cB8!$%I(D/W +LebLf'3bOk9ߵ|F]/↉pDՖm0 W,߾bq' j+K~.8 v%+)ꀳ&΀+oILEC"vla!t2o֎/MOb QG䋍m1-x;}1lqW( st{'w‰ S/'`]8 =OrjTT,$XP ˶pp,23AOgsKk[O=gN`%1@:S#9s[8Ig "MHNUi;P?Q#rUva S?mo{iԒ>Z$bI[}x`B ?u"TuXn>[-\عܜ[ٺ^< \,B$ CGAgCnC3=.$mb~qy|an~%w["0M`M&Zpv1u"w>KC@wP}[ vrI)JdBڱ$k3P#|!ͤA9HVA2-'&|)}0џ=/3 kV.|\teeeQ!ٌfATR._#>(,2\>l֪5 jkZnumO=W.אBWmYI,Z >7Z9HPVj4m8E^c:gt3g9+Ȩpb|0KIQ@G1ñbQz4" 8n=<|<TiUM~fT?3Z4pKia NUKsF=/;~˵FӍmmX=98{o;n6~`J@-_7 #!8 ΂/G,[\xb&Yu2@$1LK[Dt O@y1  dEaBU J|\(B%Aq:t`8-d4O!<㔀bpzeiB< *Zlsv{']gh{#7ĴX&Ă3:>8z:B/hX8w}~s']("dF!ȡ(2;4DLjx Չgg ?|#ADk:Ma@ 3ۢڜ-H@$\ɱ zbE e@Y?j}0plXW؁4 (BԲϯnGcEh8qH-5]9ş sK+[p1 RKcU`SWN^k0X8C'p'uYZ:oֲ/o4$ϡ]6ȱ4Wc^ذvcď M0j R VCI4it#}t[I z"`ZUiӅl(.k덥e K˛kF= Q"lgLCuD"| _$ܣKVe)bw(85J[&i7q|O@]fB7Q"/^@W<|҉\%Q&h@iH܁E;fW>޽=>Öhjh*Onm%}u :q0~bFa3N~SRumg6W+Rv~177_h63BThV6*l 4I$ H09YK PD8R~62򠝙@d'eMF1Âg[]#LdR!Dl]דaHPk~-k8!PjNߺc:&3K0$ȣPILcEouWERgtR.VxMK]āg9A뤍 NX:Kt<_[MK$#e@?+30uxȄsOWHT%bǪsj`4๱{" ⤺]~V|܁!r ,Iϴk^z'|<-Eɴ-!}@7 _5-#2Leqm_ȹ$Yz0ZVtwUw̜?ž{vݝYI3F eɮ,2"Ckm<=vXU͗f'Y&7ŴijLIO\?D vJ g<Oƣd8#Bڭ~oTValY ѳEDY ƣ k?Y<\.$C8 ` z&'}Qch1ۗ_HЗsW7 $D8,$N4v8BO[P/)0 6]T%VI?Fv==:{g?{އ#yhzUV霷v%2rZUv@C wz]p|5,hE>q myDE7#-.bQg= bSsdlWTP1 )Š>ͦ <R ';pZGZ}إȕcSZɕˠUdK0| 6*}]!4##~)}, d"~sG|Vpv;p2Ӿ;ݽ<‰:_W!V1Tx)d+I*8>;t (-mE&Ǣ!Ed']?۩bGBQSԳO©.~`ۮLEՌ9%0H@xyʍ߸򛵕-C,'^IwcŔf1@3\qSv],mĞi0#^4 p_BS³`Mro@Sm+v&@{ˉ`%$R4zO^&!qg;(A27|KB-_0+D/i~ܳǰ ^,O& w,k~~^7[/K8H_Ng! ȱ*p2; h. /h9X<y7GOإ,Osy^ OҖV}ƍ7nor2) '@ 0;<2ELdH 0xa:b:A:m_4:Q?>=:~ﭷ~}?zϛ<","Nk0u0}T32࿁[P3 gliW(_!$Ztz!B4-l>E^%'."v({$Jw%gQ hY4q_?sݾWJرsaS"ޠ8; ^g: "6 Y'S!(JNO?}g?_?}{wz<gWT>K cjĎƓh44tбbQ)Spg"Л%iH Ǡ=}[4g ?3Q_\[I\n `ƿB,cX~ 5Η^yjddlAo<:'`HISf ƟKFC*=%|7&FGާ_t\f|9=eTBb._fϥ͕U4=.0rR) G\rI'->4}bG@>&a_lH"ŅJY&1-.vʜʥjbTR~&9*%S5;)eO&EWcq]0R /15-u+LF"|ȗZuRICsDXfYݼ}Ϝ/BRla`ױ`cX,Ҫ"ѩ+p}o4f.[*dEdlCl*-p$ F0Eͤ_k(R3?r:g''u_-G鋄y&ŧJY*F>M꥙^҂ǣAgɰ?5] ~iu?F %m(Aبn8/cӥaPA/$Q83L{αԎKBPl[l;) wFg%nnB2L eS<ڳO+V]{'" YD,)j4NΟ|އ?[?o?x~u{O:yvzYH֓I MF50Δ0m,-  6%qq"6ʥحɱ`Kkk1j>/~Qy 7RN*;ܛb^LA5Dk[KWnnMrth(-c*<73Yj4bhw>c4*_Tbaxq4|=9G~/?ὃ=v=Ni=Sx Y"D`QLM1h Q2]Y2U3y -H~Hj@X~"k&0r'*2&|d/;5ĖD w)sMK--g˻oT{V1z>\̟;gdϔ4AWS =⒢8svj2A>=ާo?ٟg_|cqCiu-_ $#ղ -ZU]on,6A`cgKtTȓRo{(;q7|#NseW~|V>Y7y|Fc''`7/<rd(ԮRXWrD"D0Vgxd|v$~ J02@Cfx(yM 2N9P~ edg%FX^,Wz6U|)/5ȐVkkf> #o%EϊP39RIkDHj9|R-_`R~`A!>6EȻdzbR.Rs 䄨\ \m6*ϕYGig=P9q `|?9=fln(صϋ/*c._?L{ux-RҹjB˦U]t̚,~ZZ^_YY_^^]X ÜM.ƒcYlEӶ}woe%D&>㢍ld "V)F:Y%9PXznn% 5 |gyVl*oXח_L'L5ѓY6O1gρT-bgij2KGd18=>{[}m&#۵ BѭTRAo+=y燮f򙦊Nbf! E ao8lyuP@|''tƲCHCI-|Tt.e%E].lQPfT^ b]K)vb\pZ0dMKY1LvT}#d@zd48R\J y~Q5w<55LA̓&(2IfiM`G`:5Һnb{1@uQ8nY|O(Ja-dQY5ьB|fVFNB߸#FDNY/7 gJ jo~{纙Ҙ0 Aa MְE;b)" jJlZB 3}uJMTO/|~Q?0HY*'i f^hf8ϡT)-@ϟ&Sj43nLѨױ>İϾxS3a.F9!NEg8v˂TlaJK&Ji3[NyYfФЁ(HL.w@gc_q[6Qqe?\ B!B*Lm*Xc3 Hux +Tʙ eJՕ+ %g=.']p_>paX:Jvi> JΒ i`ipt_EŨ;Bұ~Z.]\Us!cVzي\"L&'q4M]y/T0TGxh7MP?ս>zzNF gY3!=$M2tD+_9CQJQvBY"OURh̼Kaϋh͆l/ߢ_z1LX\p2pZR!^"&gcӍ4Z!{$УBBFA04{O?w?xﳇ\Vk/EH sM!.u,{qn&">, SWtf\ 0V07Xd8c#E{%Asq:R2/רrI>Zi"EOE0vU92dJǻ|%U(eoSt¬,_ήV8OO|\Z!|>x%/R,h4ZЗ+)arzr}޹齇On7 (8y8 yʼNMҋR2j&o"7C4};Jm#W(#; B 脠/ȢK!ҢB*kb<!8wYY70MXe4yz- IJ_G 3f_z[[]B֞5&k&lxxtډ($+}@.Px㑃T铃{?꯾%Gֻ:eAۑkM=wEz090|ϟX (64IB$E|Z!H|}E dxI e{pzDP.Xž$O–dtesxZu2b4јJ$[ޓ\`Ls26EyQOܵQig`!<<|afE^jYMj qϗr9@ lvʈ18]g^#^]L`5FW@EP`?7-<+u-EkA3PHT PVV 7*34[( Sy*~CR5y':{rHSR M}/j5:'ǟ>L8JU3cȵaq*DF hXBB*/ qwTJ6.ê0^*] ?cs|&jl[U%諴u i GGgc0 J񗣂2'`z}2t=~x}Qp};r E }fFIJ9T3GSM]7S)5hzZ(zh<ы$m&qlKAjʸ'G&*Z-c*R/ va6bc]4IY 3[WV3YJ׮v6<!5R ;  #x k:m+8k=~/g7fn&U!n*I ωDG2d0Mb{aolO`F{>*m;(\8|O")Gcbj&ş$K1OOUr؏c30,'MaJb 䥡_ ߖ/]ٽQ^[]BڶQKwcw(tiIkcH#^8ώ}엿;t{CyS`P"k:2 WW65#:PYMk: *…A!agl[܋Y7!-Rg5Ȱ NU`u"o Y #fNE/&GIKwg 7l"(܌F"-|V=py,fjcT*ZJn idQ>yzNJQahKWjq J rTs@=] 1Q0 ۭf&Ȗ-/: Gz['W]#{Ž/P;`f h*VY-t$KigM mQXx $(+=L]Fq=NřwBp*FQCՌ|^ :'K ty|rgOa\$ R\!j4Ne x; _̗/7">h00, Atzhai}Z0Xt]f61EwlKC/p(/+aG1bH򬼠wdS:'XyQ7ہj{nKӴqHCZ5{pe35CĢ<:nEww^4ߜ fTnj$`G{w{ a( X!EBSy>P\w0!TͰô-n!J+lG(6A1 d MtJwisP+c?]}!ƂBL+mr`{8KVCJ£94=W+^|J xJXPT]-k/(]H CȅSm&&㧓u}HԘ3fSa4ý>o?qZ#s|!Eˮ-Jt53TF z&gQIE_]0G2A;AJE0bxs ;Jԍڃ/TrIsj&a@p4(X=9`*襚j[/ha_y}7o^}4ji0$PNN1Ht ai `Ypt(M{|ӿ?ӣ=|^59cgv,g4;AԳm.'"8P4%~æ/@-rax{O~je rWXBW rIm(^ Wʟ% +l;0vaw+mJTkf7]Ȗ;8<>A}V&S3hQӅQ Clt++KWvu]A%~0 CItX,Vţ=Ӈ{O^:._mzt#/W,DJΆS۪ 31% .ty(ǘ3) iY)qZ prB˵vnk2cρ>NnOm{ET"dY:B5Iqe2N>ރG9Ba8C|C#Ir@!SA泺f8&I4bDWFIӤҵ(+)ʪDc?s|Ž2п%fvdcc!DGXr蝘KUR~kkufK+ە[JIضU<hik0\ 6=اGO>?y?[SN{hZ^}AturN)hF =iMq=>a0W-p^%fce| qdgL#8(GŇcm\ŎN)?(vL8\\% Tmz֪|](n:ڙZvlZwQ5*Fo:p1 N!vF ziao+[W*>|-4 ՌOh .] TM/K|vJE~wawsCUhFvݣ}^q]$Қ&,bD2Xɘ~Ir5="Jb BŻ/|7ooܼsXA92&[aqdf !mީ8_Yy1nTʅM2 ]4) }m, ;V<zũLJ5Mʻ[[[4"?f׻ClQ+Jl&Q~wpჽ`ĵ l;=oӣ`‹ vŝ%Z1r_Wi0(;P,=p*h믽׿k7ʵBԋ(`s&.˸0AA'Gʱ3HC U[;F)0DQM`\->7nB q 2<7'njO.f6g`?5ةO.굌nEx'{f-GU:H^B;g?È&܌d@z*嫻WPnܸTԈ*t.ƑX͐1%#KJ5IT zɉf\__ rmBch'ggpD1r B V*:!ǟ}pk*Cw3؟nipz˚x>0Q @3nN&A4O)#ST8hh.9?b0EA G&?<`KA>:>=MT9HVN:_㓳f*5^**V˹\NQuT,߸ZS&m2Ng^* "k"dĀx8 qQoݿy< \C? bzo!u&ܬi&jTkC73QJ[W䌏eA4 #";x}DA8'5hs09K6;ZUE}jfFPtsW cq4` öo]ne3ә﹍:d4 ԇO(++7xD j41Ec?pӃ~olY2b(gJjyA9M<7F.ɚuNox?/>EuQ/ZQ,&%ƄDGvPrKkri\TC23OO~[ڽT# R7 EC8E5l[ncb ׳k$x%;ۍl[BeHLðyANGf@_xƭ+p4S`$DH؎}SA(rf1ԕkOO/:`>Cmd;g[?;=;'HA3iTcFD6]p όfQޘlתջ/?;o|0%J,Y S9+ưXEAmZb؎lMf dN=>M aR\&Bh094>XƠl\S.׶]|;(|2O[202Rҕ5|rg?}|Y7"芒Y֓ã_O(3Q\A\ASh?~_ɻ}HgAJXFS4LPST,Iĸ:e',&fV ͝Fdݛ7n2og$Dci(c[V_zUdABDHg3ե[JaZ"qM̧ }{didبXQg0H3-/_}?X,z?BLg bJZo'O_=xk2Ow^7o[+뛹|YQiR:Q5x'?zw#1 iP>/py}aEOQI EV8 +?(ћT*rZYZYz7ֶv) }Cy>7'3R jŹjݔl4Z޸RXYb#IEF#>11Fr$Hf3qF v8@Y2/dx7_[Xm4꣑ xIPݿ|J+WoݹrFZ͕˵b@m>/[a#6PU(EL c+'b_96qV(EF,Hk+5W?pIfA~4:>75L|LwY=4QwW_,:~qKSύCCMKj\t?gN ö\Ï>m6{$1tDX'Z`Mi[l\$Q~&Wcg/|;okW_R`i4]L!N|rG "j/J5atf3-nnY&F@;)jnyN{OFЉQ,~{Oϧ+˵w˥̱]TVA;քEXi6/.v3lNhRME@윾"Z0Mq,qXem"Mo:ڗ!&KrʼnŎp^_+T )4|`*7O'gQOlol!9[SszWfm+̣)H+i[ɨo{PiY#˫ջ/y[od<B7J$<&v%G#AhBhЊri h﹞ lcw }ۅB~pp <!%Bghxb_4珟=;|\j#wzoimu❡j:|>N=zΜ``㉽ \P@dz9+!侰x4 C5pϘ9 Fct  wRU@X3>12L&7oۈJIiɟt:͍??5_d) d"!i! 599Bnak#%ͱ}RЁỶl]x;{eVp8<4J§F㳋G{?;DuvFDmi$Th6;'' h8[dꐘ<@WP ڋF,~)$$<BvtLU?c{T^'`&ȹ宑zx,+kf a}!d<%8wO>{^/`bbx^xp\3A */4 -۷ )OҢY]iBvyWx+pxvr>NNN52ΕW^uĥCXI]f30A2 vU zz?j_qUEՈg+(p-\ !GPf8iaJr7njZ\ e!%ܴerr^'!sFi/޽ @&/6vwYj2f Ѳ? /IuB R`\|?Lvc9[MI^eMmjGG}A}a+UHA D+;W6@ fy~~qzV?wlE<߆RS5z^̆90DbB7Kaenw'Kd$:Dݵ5hٕH Bi\ 3?hɧݯ/@M؞/u|>ٳO>mRl2V&M腰0 PuF]_-4T@!d<F3 $ o(yΝ㳧O0I1a)P_ƪDڽFSh7/Zn5h᠏Gg`4qAH.g2,Y(`:&÷#׼TCL2Ɋ.X馵L6Q?PI(VJw~W@a'gC8.Q% t !OvtZ?>_>HywhvoYiN`d!`6B~Xcơ1|b, wNq(2Ώzf,䠽"R=_(Y~.0TsYV`61(trڸ`Gؾ k_Yv*TmOTI!)(`iY4MJR&jK2p2n>e9F~q9: BB1ܧx)\Y___!G23jP 7H3pzBB~LI9eCmtOϚ?8<;nt B[ī{c % 4 E#":8p-R9 7W1sMּ2\ԈX'eV֮_umo|~ċHĺ$~)1r|xh8UHbC[+F>*ዟle|KtN0Q L)HQ!:z Y]G*ږc1]rg %IkA hD<zغh?'{h=>9?{߿7maW9h9OX@O7N^CAGj&[f(|)$8C2iiu|*pN\K vtR:0,D^NB9$GΘ՛W3Ŭ#co%go7^I?ѻv9ul{:˥Jƍ^}aYdl;u- 4,`l74[O>{w?}'_WO6' .>;><:9Aۤ(>N^x (z|45{・QRԝKF5k76ts۲w4!y|ۗ^q?in nWw7͂ɾϤr K?.DJ,cYǹi䠺c7qǯ2k Aq)0Sqc}U#O&85Dz6ش_to\SgpkbqDAr(U&+@98wFw|xw{??[}El Ss~_< !gِsn"\x7)5[!RUc( p6/LZg /ڍw`_O??Y{q'~ѭ7/~O?ۿza t1*%fAG;ٙP"l8|A_! Kx]Z־܃̐:<ňukb?b%?5J, Jq{)e*rgv @:I59 \q9zo5:N *Fm8/JJ%g-#R`_a9,ϯCq;e{)~x'{ ۶qdgVJ_|eO2K22'$cgKN <Q2&3]G\.HPt|c07MzƬUW7R&\^:i!R wt8/D9}R ҍbCw脠}L?E\28CGǏ?{8.j!A-rs ߜeflQ7 OQI0gFg͍]CNl@(Ue*.sG,XLbqgjDBrD<9uz}·3OKɴs$vÞـRx\K|QEm@xێ?I:Qo'bap˶NO}ѓvBNcFϒ`>TlA]\@*NIȢUdƵkֶjŃyT-t+Ж(bئPBkcw6}0ڋ斗KWxIs֩l.~nD~`M(0Ś M\__s[7!?Dz=&A74kotp8tӣ'~`O?}?z񣓧:>zzp9`!55EfPmI$_MU uMN.,\n_+Wބ #!w JwQ42( ߣ`Ԉ4BvK32fRT iehh =lD{GsFAoЅrΧ)& <ƕk[R91z'eƠJcW%c8<4q{?t$X!6Eyztpt|tttju R5K՗kT4aPi!U na3 tSقw$j敕uE!}z FZ/jGFY\P>֚\ND&^*9F3՟ݓCk8Gȶ'= 8RlBbX軜UP _M(հ%Ѷ'Q{zpp|r6 Xg}|?PvvIl!^;g+K㸈 ihkს#Q?Q,oo.Ca|⪸uKs"vDG/,T$HFv />";6Tv>8:txZ+%KIDATmk>U& H >T(MaF:l&Fh>RhOYK~[{ssR[У1DK`y_+Uܙ*9@''NgoMl2ИHkt \? aoe#DC(4w }$XU+60(j *}n** &i@WarT#S7Vͥ2DǏhѳo n4 12j{g|6ǣA+݂iM~k}r6^TIz Q!pfc`c8,p"y4$W7υw kH/ ;Jvڭm̆ 9q4}[j_ch@ZWm˥'؇!d?8 4-Fnl 4=cK֪KKKRA5ah8(=9XY,ddg)qcj# ~o-6)4Aμ#݈O.Jyo^,Giq'mA@Fjj\|jKIo.֨Nh/]޸?lyum迻sfL6ENÿ MK|gPԟ!**UNON}s=q@M\ )`ٜi%ͻTޡ|DcJ~5ؕ?uN8`uZW6OKTeѨ/lȃ^%%T,|962es==[p8`" q/*1yvYKHK^k_NAP<#ՂB:A~ZHaat_Fny)2p"oIM30j  ذAvP/"pIͧ#g2mVoK/~um}ye )*]t}"WF^)u]u=m7[̓ v7ô8K{O+r7x?/Oݮ| wzT4  \-Wvz_-EMc# 9"+=:'x+hn%jAP"wba+ f'NArlrcK-f\NH1Zi'Xq.FDZܞZ]~֎zE"5g <;a_h'XG>?8l0H쀶θ9F91^4*AiĜ2} 2(p ȽTcڝ;/UK-~IFTD/\䦿\#DRrk!!Pj~s(.RYNn.pXvy4kC5TfANDrsii}{Nbo2dڃp(Ɲ/_Z!\ ~H?o*N@T*H~99>)FYt&.8gQ`4m۶Tn@Őw!J>i\dcvBU|}!͉ 嗩m}($1"D P5\ͯ/akd>Kִs?R/'Xi[Zdz)FtЏV[2_x֭+嚢!%عh K+Ezv1R͙@վvu9Xe{mq * ǝv=7hBu;m˚%AA%P*uHX3̖皦`YE1@`Eֿqi 7t￸E8qR4SL7r`ط˚KŝW8:`fN}v} Io-%=3+4}us_BzBlA9Yb `wJE#:t{V@IRO/e&t:6h\ Pu Xٖj7.ڂ1>AK ‘Iٔb*Y5Ną&H Y"SCWgyj;P *;ɀgAs%(q bC6O#Ivށ/3Ϸ|3:Yc+n_z^{s{ial4!ʳ?4jq8?^DjB:ytt bsER؏Wx׼p4R2.H㻞p1' j%<`8#7, Fd 0Ю/ޱbYn +NWҗd 4qMcf63KtFGE( DiXM&;{z ;ݖc}n6wqf9MC0gu^}ʿsFz ;<ā5JxZnmLXH01&#T\$̨DVT+w[`2)vyxtC_, CGϑ4zdC+bʯo6C΁6h5.> ,px}8C`qqj+ C$> 󡾰κ?u{m>Aj4KG/uQ߸pAK.0 <"SNT9zmG/RC8!E 2n:L\+)o99[VT4~/i )ș X=qQ,Y|s"sYv1Ɲväe.8e*odc}b2z]ۂ#vОc:J; Jlo[A:A;,iӊ^.eWUL>{OS3]zkO\ԌV^lV-ɨӪ[C ?k8nXz w^Y] 4 M,"y&ʇznU`i0nY,f"X)RY\ ty 1? rŇ, I鎄sPsǓߟL,qG {ht Vk])(^X5`,L3y_}-DgD@dL C4 a=[P(Y3c ᮏON:zra12C^Rٻ= PDI|(|<&wԝַ*TJ IA[g8ov7/7LDXʲ;>]+r}kT-Ub1&ϏZ/rT\#|>yu+pl*-NJɶky&\jj>٤I(3b .`[G~ ⿠pX| "@3„'?Ѭ\*Cm-惾{O-l^h=;?;99rzz0p3&̅ V(R1M\Mw^>?=VSͤC=:(OT) ( YBtHD&0 εڭkKK Y~uh^(q~ =g ==339qqn3H# nU ;Y(P iɚB:foJ鈣(t)Ui0lv:T,{?fe1Ez}ӓӓ㳳){C#Iq^z;}ƛo~Omt˱K5XI 1ATъkm+$WǎE6WKK|C"$BJbl/JiZnu-z'2@͠.O@a2*'|r Dfa1 z6cp6LH:rUU4Ğx0/* B$֝vTju{b1V(c4qHղ'zӶ&Hħmq,Sf4ZB o_.zWT[#΢+JY!4PL.ßr(nH'y՛BO%2ls\Mϣ4ם٥+,jJ`ʗ䧈Fulo휞BV[VvBo%|><5)(B%=euCPp0]P zH_|~@~Gq  py5FP_Ґд_}5_4qܑg|-k_Q*W9Yd5+,stOM(4婙MWT`%\rayϵ&Ki*Lg2ZmDL8O?75EGADaBBMJ.9 d(ZA6fM2'@q23l6Ϊ²\ O@(@VP M" hq |Ms[{t\`y&B) B`iS:{T~ceh/&CC>3rS=_h8Ȁ@!𣰡r~ƃNL|̀-`]Eq49ea_(D 22FXgg3YMjy 5U+RzHcZ)**Vj*?|HfOdp mXZZ)Kk;;WWWVW,/,Ֆ`N rv x~G_:K CU3;WRoaBi:JZ%{ڽ`Gst-ߝۯ\Nű Q" lJ[^o&c6iEΦT|"xwnBP> |بBa:(x!_7 B1R +\*ĊbO c=B=^+K(f\M+<_X ;=ɧrRQ,PCR sR>19",\w<`iFHFSW3LkLq_ƶJkv W+ZTݸs՝͊a-"uWѢ _͕֖=oBN|\.! ]E 2r;$ĆI. PUQI7c#p߆ə@$@i4ux&3\' (K}'A>GX9-73ˡm=G҈sKaTh>yDbi:L#xLTtgD0wB 5C |$2Fp4~'4[1|jeyv.T @(fF3M=1z]mv\۲uqzj,U+UR!wu,JO;+ޢg1:( |enn6Ůk}&lA4rۻՊS+k/xq}ZXͪB(wP¹d傹4퍖*F^L³ж09 =sBχMs ]w_ązAZAk5@w3<.9w8J̧vv %e$_btCD˘z>=lx.mX l]N$ e|T(!'qw&#.ϳ߸=T ioaA8o{gOgtpqYD2 3U17V7 [˪ʖK7_޼~w o&/bg2gTʕm hc-=jK8fI<={?,\\ [6tD\.lmhAq;9_CJ XK.g b1hCP C&ϰ;h *RZFt? Otfq: ;6v.}=}G=<:|zԙ[@&l(;Ws5k͕ۯ( F1jVgeIpY IM%9 Nߌayn}^ů"'bGNV*Udy\*Ue|G^k ֢C*f z :Xl֑C"Y | ND8mU@ \1qDY2Ys4SBxs m/X~Ezgir6+`oQ3+K[W25Jύ[+#*DhтC6ytTM,cGd (q) ^iP:h8q^D~O C),˹\Z: ;>f;SPIMW5]C*;x6E p"4^8';Xw<4j I4铠WmTݼz{K+SGyC4EJZ7Z>Iwx|֔=`i~D;du!*fFW圐EL/(g.~iwn$9xCI"t~ȣVvv,|n2XBE7 >MzЧ rY>2qCnm$|k{2 ggRR εRCRӾ=:nd)XAboG!_^phFpǓ%C?3A#1jNvqZk7^ڸvg\C > "e'iz%=0D&YƐ>{(=&kiL( Udǥ2t;`xߢf\ꢒ"`aQij!Aáwۙ 8q!dtsye{k}mR*qu!i7F[7؈f 0fHa/9 .j1?P ecyt󥍛/mo-At<sf%>K fZ[d0,-X8p 8 CFahp\PUd+e+iy2=>!)ccΘJ*VWW*囈 Ǝ Qv mC*HݲY5KFe$.<&尩|kgiPRj!?%@UOڑ8fŜ%VC OKq4  cnvzT?r0h$nh+kkk8JtьiT"eωDllٌGR*rL.-# hnO)oSFк8>ɜ@M(c'2Cpq:lt|ulY3 vǿK8Dbztwvz5m{0@ʔ3sD)1NWPÏ>~|3:*ZjB#ȲnL(if0"kM-Kfj^.g ZZI )I%]=^L :=!氍ifh04! E1MN P8QpgF0L(]"JMJFϨI%^)\(HZ"WOM8'#DW 7Nf #'~ؕN 64DEci\CAF՘ݾa؉i$i,aN](( ۺt,fs~b-KWvRu`I`H處qS\>.Aw$NWqeme :L~}54; !$Ja ^aGOy"=i~ʎssc%'KD0C RL*v /, RBQQCN>|mFT L%A{'|Vi]z$:!\x4d9\.4g駿:<|R??J̣eh%]~,Ggoy^HR.lFBJO1KmsR2,(r!3wjƋnͬJ'kN>!E}~̛()$}4n)" M2('J7^E339PdJ!2 5[مdP)戛'zp8;*0@܇ӞG{QQ\ BӃ! RBzyzrѠ\uRA7 Es/n,:8 )Z̦U xzVj%+3 *B2>}ˌjL?(*誝J!)yD至i1W@ 3`账Xv(i"/ԪRhAcQh zZڝ @,@0tlN ߟَKm߇4,2`bEq}(Ҫ82Tw4:|qa.qꪙ8 O)*ErnB1TP~MAx8I4r 9|5 &Q,TPK:UuNV&^aHWR ?K4(NEMA:i9V笂+#k+JZ,c!6-BE3b} |@;E.l UojjϬ݋}aT`3 ($gѬp>W> s0Fk8!ۅ|Nt", w^<'q)Z>7f ,M5<h[>72I9o-,BzZKZp/8L >@OH>rp6OF!򸩮M6>ASz|.x4\X*CgzMWs\uVq-^(+A蹀g3TP*BAg-ְ,zڅɇԲ:6%Cv>c@=m_-jt~գӑ.:V+7o\GDwp^ZZJXjI"\\4_K$iu]Qב2QB- D.N֊dw@%rDl5*55 "-f[Uhlbt!pC9 q-579'6&S8|X.JEUW@29H/qgt44R7l\O0ihMәOQM/KA`*.t0Gz _GvժMuq$\*lıV[Bg'J*cN4~,-mU FJbWP (ezTZIgJaD7StBZi #WQ3 #/!*j|?$EN4Sfl Y M>.lj&+@/ϗ媷1?{ә. T\)hM=F4۱Nuzv<mp{V eٕRqeNǾDެZU %"v_ci7j~G359 Yi uoӳTM*}Bd-t!HB5($J›'(a9^cFpj*H=B\.onmݼ}i:L!`岅"̘^ BTu{vPC>P§5&Ŵ_M@ &,&(YU/ͭR5SQ&AF-̆$^L'PY8tw $9Ї53qal.[-@핕5U3 p!H.e o5HLӵՕ->Z4>Z| +zxY * Y k<3#;W wZGag' ӟ^?ӳsR1^nS Nx@P [ՠƈSp>+`i  )¥FKDuC-`i7<%%k 7 U( \9E 2g42iwzS _v}L#8\$c]Y[ݽk`ym;$y6r0޾\[eH< EcKCgɖfnʛ$1'jLnG'_xCQhm6ۍn 4“GO<9;;FNA~ lǁ&B:q ,}u/ZJ}PhՀ߂+Y N UҾ1k!75+d iBCK%\;{8':n<ݫK+l{y&H|tm 0@4X^^.Kjҁ+$)r=Gx_;pGPpp^?#%i|xoonar+iA<J, XpKXE5bZYZ2UNۊdA uh6,MϊjbU Jx^ؐ`(a>i$@9E1rSQ jX\KFGPO$2 %:9y5ykJ,#53pY3z-vm_ hdff.R㻀N҇8C26؝NhpcXX`7&B'K# gPGn%˯=$GE !3 ĨN uSt!7BZ&mpTdhSRp=]ɗrz&vٱ5!j52O_}??~bFTY^[X+y>ρ\B쫫 "9p:b =Cu`8ivQ:;dOIqqp}ǵGV5ϝx"Omu`&W~Qf3u SǛ!텂 ^}2r"NKHU=Nn^?s5wm?;;w~[^VWM3G_^[pk02}4"1KK`upX1 `{Rݳ;N"A eA)|h~ x#V dbb56rA)MM;J:rF's4LV"l@hgXȩAUŜO:=8'|~BΕ7Oxw]]*U*<_^*X@5URmX0yr%Gv6wyazN.<{+mEA?)nl@:hOIb1?8p]*<'f Vwf#6RBpZ^+@-SGJ|ccC"KW~HTJ$Ktε3<7B0}Fmk/zD޾rڭni0H0)i::`0b"4d# ȏL-S)iP HZMNomz ܂y**z޽O+26f"?(,#r%Gq" |t:sɄ*&=ɘ^ tz ~^0}l-Q8o`WPϑ A&gslD?Fې@}׿ݗW׶7ֶDUG2eݽ1 sN 2T@ˠiUK :ثp<}{bkTou3-9Kܝ(Z&e dj^uzU$ЀZgY}p_v k %F(B ^,yCB. __ï'ZJHEA>E'J4g)lNIV1%l2T'i:.p @.8z[_ QH; Ej^UC3>cGS j: žqk5d\ccVs<ܯ_AA\I 3`ev>knnl\[+\$=I隆P_-NyrvhW1MQ8IC.Wө9 F XMJHI9LԱ/ 1:AtM瞋P3ʥf:U0SNEfƓ,HY3{ƭބAPressgg꺮ehv –5]OTZI:=%Ncg1[3ZINK:Ij&3IQIxSXz0@_@B )XW6 XUR)@0T.VQgЈ: kr*KKB INbI]Q p3mDKNLeN0"y8\ɚpd4l7㡕UAþ;lkTH,pgbL6:@8x  {v]XzWV׋rPD3TA7Osw_xv1ôlD+︠3t93yb}, YvΤg 7B2弚1Ӣi|qbKsHD0epv7Kxɹ)m[CL1i3=ςM#DaJDDn 7rVF:Ň .*ɘ٫nyfz[ȔLciYT+ahv4)Gt% wlgR9&5ΘkAЋ]!>>;:b[/l6hH{귶v5ޑDSoP;p@:=;D/e^4e%L`!%Ti3:?y7F5wPL'0DIr _rp`=J̦in4kY=|z@Vsb]g\^^qݻ/U5@M|0c$UKɛfѠ]3`=ݙG 0Ȍsncf&헯ިVjB ޮ7U*F4l}}uc}}0tPSOP(q`qa)I%!LԅkOͥ2gF(*L3deT8TtE 'B֭Wvt*63g.keF ]| Lp|CE:Oit÷] }4:;׍c9-y_6ǩ Ҁ&C,ᡤz3l<'TFju;lEKP?0QYC [37*h7-^zckk'1G DCt}} )@j ),`iؑ3r?g(XyXRZ,- RhǗ@ Q-,#"r* ޸dD P|^ZMX!SPՔ!O}e8LgԎ}9xNsvg4B pSs$%>['#oXEFV<aj)k8p`&2^@;t$ ݄6t{2n4ΏN뛷o!@٨C'V776ѿz ?;Z<˲z)RgpW3/-!$#i)TG~Ivs|0[b vSF\ROe>fa6;ṗ25 'AoGȆ&\Pg YV+ K"C FJMn((|d'MNRB٬Óݼvsg{'鴛Jv.RkN?M[0mz`RxHA@?7|qY71wx, :2&,͟&`jQ- ೰+s8h怳Ѣ_S"`⼙f/SH BRp=/+y8Tdt,ͽ`mbS{I4oiMNGR*VI83=}ʋw.9癞<鶛7>)Ƶk"1F]žaP5xm$rqmh} /~,-8d N"`rC(Jn e8ug)!1d;#:|П2їK2V5@E>5G3eP'=z: fpu[sw/;XHt>.4?xx~z>a"M\ %#Y킗Q軣;Neޱ'l5''Glͫ7n'Onmn‹ӳp3M8YHD$\Ftmd|bm-'XG}%w uJ3i^y~ZkͣEߪS8c? xdo"@F{Qo;s8b!򂼵`I38|FVz&Yꕧn9k& }C={bTʌ#ЈE=9Oxl&N~vx~zm| kkzd^]]ui`ep]۳foqR|EZ8r+=zXK2I'@L![*O=@bC|:r! 9Z fnC +󵬪SiB i7(t|EBvD]wͰ%ބn& LŘaN}6}k),瑔99V0ǩ>ϧ9 xxQ?Cx/{}ui) f#Wv69kס`vjBf\^Zy<&Xe99;o&eir:ҳez&@o_.90E7B bl*08(97*h 캦%ʆb :RӤFsyw[Q_\@]CO4 8`S|C+3׵z-sQTPy # }ue'VKThϚL*wrYs2>}4/ ~vv-]Y쪪^8o:hVCʣ_8"֜"Y<:K72pr};iyZ#L'[4(b.#AU"(ȥtj&iOI"\9|wT#NR& `Yg*Qzha G>xiEj#s- v5E._|sٙ=&P sθEY]0dM8[]f >5Yڰwk}i8ۗOۭ񨏄ag rgss}ii9kmi[LJnv, 06Y"B_KS y, )4*酅beUCKͦURMY:]I9_ЇHy$YaOk2HYJeɮ\쀋ba4HЌFaFЌfQ-EU#\?wgvTL7nps}WrFL,ie5܀ `,MY0RhgS*I<^"+vEe I3/&|48= }zsߛ4 %$ ە*/|6hy(W5)K$pc2(_TlKIz(T1Kl̋ ?>{L^[]4h@ftq4d:>9= G֗.^ue쒡?qyO%?k"  l$uf]u%Vp[|QA<3G,G+`}dpJ$Ә }. }Kb>ǼZ>ᩑVjSҪ8P&9'3t>g紓.rlUa@/ Au썧a0s=뻚PC6TdݣFDG"/\-COh08|A@9cs}K ~m Z8'ʕ˗`_3(LOFfݎNNa)!d=ϣvA*)45kkXKNv@l\I4~:7I0k/C*d66ڢj*8@k/<ސ.u-&B HPuURV$-gzLjFPDsy4G=qļ?| ,ԐzEZrVCHApFi$չIV7ҍ4 /ڮkhd:lBbc=2 l0e4 lYHQZn@ Ɠ1( R 3F@#)~~{ѳhU[琤AGZu*ZݬҶ?XA"~8200x$q XNLLG^<E7TSZ-h*ew5xHazYb ]py>O&C2-@RD )|:-渼 ZӹzHHI!Ŕ(a8jBkE.h 5mھq4-4q"m˶' G] h)@Y$A<999@;@~ a md0=yo|,m\aڢ3(gf\`-hP™{z+J3Zx5L la~sY+{,ARu+/IyKxu)% Sei7 jk@ qqLH&-4P lLm/a` r|/ZRV6"@BQ\'`wÐ;N-$k8cY9uMF$IcIDZ-+IY"#nf㔲 akO|O<9:>:>Lχ> UA\UGTjS) cr/[HC.}MdBڋ-G>W`%X 'EKZYw5Y&@ETSe_!|I0Ig-uk&̈́8CBs1Dvŭº#Z2zi.)Snnw{4ƛ2'cFLh9p9TtcmEP ic@ã>Ǐ>yrA>:<>:BO?'m, 9,mGR]UfKjFR<vLIjfZP ✄-x"tHN5+<ɉ+]A^Z\PEiH/ )MH & ,ϸބϪ$"p JVK9*2 e@vuF_'B# ?MȰxLI >qg6 S#MZ-.'|?xS(.(9h"x_~y_U($%nBEOQ[|krK(B*/Jl= Q7`5Mh(Mnwz4sSz^@ =oy0'8*X3SAC!H) |u!FNe@3=>>E9;9?;=?}5{0|҈Cbe+biKїe*Y ; ԊG2`z(LOK`5| Bd_ j2h !~(xQp\ 1 PA ?+0}`Xu88n⠉Bo60@ W]mKHkA+v1NniZn;DޑlSߟߧshL( Dh!st,a^8d ij .o.4m<d=qzMo}_K&k*ߨ"G5YSK*XZ5U`^»1FLM |9 /f2D6ꨇVEKa}Zncm.;:QP9M*ɫWAPayǑZ_QT^,R-21-=YոͮjKB2 `@ TMH劽F5kwD5czu zoN2='0Lu-dnvGLp0$qSDM,gt^XuQqlE)`i@d _y Gq$Q ze}-"Li, %e09h,-~&}J-Hspzr0$('8)$}:Eiy<,I + ɟtYpI>+_}[ڎ"47u {- =CX2ʸ㪒50N Og7V"N@ètrƴD}Pv 5w.2Wkud9`Y!I\B f? v⚮o[uDEpݯj:kfSpa b}lt> Mm&qcx5ΐ$B pHGt}!&ф6a^ C,5ROWo' uJ۠b؄հ (DE";sy"cmLCX^h*jI4YUc$$WdRU(Ӏ\5AUCҾqƀjo@RiMe5ʲ<8]b{8ȰߊPHΊ4FAhmZB.K[nk7n5pMfh! ~Eb8v 0mfnkuk`ת lnڪJcϣ0ǏR[h 7N"yH_8KX(#&2FA+WPoZr%6!1 ,%—49D$S ,  U2c6M*!3>DK$gHD( 0,oI,f RJ.*0&oU?1HwS;Zij<2@mz4nNE# 2d  }vv cLL㞧$eE\K# Tg6u9-`Dx9}vL>{ΑN_N[JkQ3Zx桘*`WH)ejn֧42خ&R0FfL݁"QB])J'aD.i:[(&kbl W  BH:,]Lo:( ZbtUU{\[ `| , AIImuh у(p>MS4އ?@RR{ O4tSt8%D憣!cIP_ K[o`djKEN덨T2s#_KUQ;9l ^ϰA u%+>DQV$<3/ˑ U74)!FZb~U9*3s4qF4 $~Ufǂ݅MJc6@ČFwnۭnEԜKh48F-p~M3nRuȃ:/|>"t1Gnϊ ZvKx AٓH,u6?:9=8 XAa[ST簴QgO) e S4JZs W褉3ф԰54h (_ nD&p/ħ5 .:y.iV-̏8y@k[=M^ VpA D|l>>^OpӲ-AP]Jdj$ +B*µ):Nm,]̦ÇN@]E)R-$P4f0MSA*s1 HO05 S~p_Kۓ I#3"ml_坎!WYeBt́Q|+MA.3Ml(=ޥy V-ŕ84{(h[8e!F8D,~ ]'HA,g㓅wì\PE#O¶(nE,!E誀lE]fkB1Ilx;nm`<@LJ{GNhlA&(U%|E^XMg6"4}ČXOBogHT7p,tPQoI,MԦăGOHF%Cڦxy1ٱ* %\F SxX4#(x ZȖ<=~d@Sy1IgAc[.Xi 2}[ Pc#^y3P4528aWwepͭYۨDؼA,:-,q2*Y+'4.'<Ǭ+r<^Z39-YN擹xl08>9;<>9<:~JFޮ1\DF0scY4 N&U5@vmmcŀUI:)5n6"w ƣP}t`_"bϋ@^w45T*I.zr m4{_ A/MTZ(hih6ÉE mU!={A& ,>99G,hZ>YRgY5E3$PQ%l?!ʺ.n4Y!ŀ"Jb6C}Ehx>M0FΒeCUmU5x-A/ljp2kFG?3dևEɲ,SlZWh8Q:ĕcFu 9|<"!gn; X|epW(=HQS!8UUņ%馨h6 hdg w{E_+G5`e#Б Uj [fQ{QLv5Ñd5x( 6vuU"=@wZdh=&KY}Yqeעˆ3XDw5g΅f"|I3Q% 4Ye>.D6Lik膢)&](%9*4(P2/j@`61'$HZk+oi7]iCk,Dj,iPKٽY4Ip*Y]GO A ǧó<ʨO.Q4=2vD"DX5 lxF)OQ@~+ei˪i PgnRQ7{VMqiP2=JMTGKtAԕ=y#A1C]+@,g?KFL:7uH^3s>p{uUZBYuqb$W9cZTMv'(c܎s ~pD2/ 灇QEpF5KYhN&.adVddkgek0~F y;KlBrBRHW 341:Y(1n5z|W\O64ay=vn]nf8++q k I&B/rtH$7Z()/zl8UR\K ]mMWm4 4tPh¥ '9)HLE9=3.s Z d4f~4 B64F,kiYGFP slp ='l9ЛbFɺ_aA32?,[Zr/cB%>4bSsZ*͢Uߐ92=jN OhNu#KӣEL:v׵km_,g VSi*ĩeJY#7J<]䅂ȵfҜ|fg ܪ.ӷž]덫( dqè$ ,Lpb n<*fa |%yUI2 >l=Fό>cXv,C|(" =gc-cAץ- %QHh.?DhYY`|F,QQPLUh%azk׻ݵm\{Xu_X1_]7mC4RI3 O3 5Ғ琅$Ҽ#;"ߕKBϸQfQ9H1MmP469:Օƌq޴FU@9pu:'*ERlD#o>Yq^deE$udlMfDPhs(lgR _ +سM|#Hm咙.H``$<'|VC(P^AluJ?Qn{׹澴Ἲ+% Y;&) m6 x) g }q_2%Ό|PyM#jL# 1ATz6sP O9ѫ9r⚱d-XJU ײ5M8" qFUa><E/Cޡ|>8|x8"k6>>8 ZzM_S\Vq)5lˬ&B]EqC!r:dGK!2!MATP< A)r+4[f"j^8&4Nwۿy~[;msC7zh48hQ*~RB]Z]UՖpnuYK+4y5QгS@q@Ӛқ㳦 9~<2}ç?|||p W 0NLjw.VL@KGۗwJ/Vˢ4 /]VFb?3pN#EJ[:`Z({:Ha$N]^o~b͝sA7xY>qIGIlj H8lV%}}Cuԑ+R :[]Jhr7. D7l7a6 ?z`2 R?-㢦օ[~d#BJj B NB,6,%eI* xPs;5S9eotŰ l `5pus{׷//tlTp喩 Ǥ -MY:.65镮macw`ev-6thmց* fM741{tp8 tr6g"̣N!XX,WZc LcxUDRUo 3FFl*co-ndpQA//AiC?j) 7лʎ]Zy{[tKw^e{=o/XVUiNն,G%B _dI< VpYƥap`YIKʑiԄ@|Uz<'nE)i/yvÒUcjBqjC ujE؆pEdZLΌмNj8 6oD,[pT ?v metݾ*!oŽ&jjwwtCTRu]e? 8%pzgf7 p 6`iϣi\^ j%Fɳ'AC-SlNǧqfA--$'i^(g+|1x'WtEauvs8 )MږQZ&jK FDFcFd-DٞqLw؜GRbbZCТ`j[\`z,B4g;= 뎶a;|TES_jۺ(5XˢsEkܖ[pQ75v hej&Z,G1L;m*ZB‹ t8oϟ঴>}CMh$$P D&p_`{dstaaŕV hENkdhIl  ņ7衉45 "yL5Ȯ* |bm$ #kiKkR/v̛=.%m_{mmﶭN߹~xL;/=PBHuZ+ôEC ,N^|oUd4aN-Db@TpS}yexB]۽i؇'bk @d[mm$NdǠY(<'*JBG Z/@hE!RgHҐ?HeN[PTJ 8aϔV]}kչwv׺^}+ow.^ؔ>bݵ"gتhl(* /+Pqn&ʳ^hYhRer')d!#Gc'_$]wId(ls۝*P4k?P4Y@ZE]hj .T;gFMHyh-#h|H9Շ'"g@(bm9]鴷֯괳ejZYҖ)XIkuEr`c@#x,q > ˂F-Y?=x4ql'Pf 10zGOԑW7[۶2%ۆԵPiI&q229j%GT Ry.{I ƀJZ0ȸ2v6g^Rd<$znw{{ڍnvu~W߿r;7n\ڼw,fϺblɫ2m0`[]*Ӕ$ bLqm#_Kp^ӚE' {AZ՛wdHM'd~b*f[Zڒkת,3 ePk Y=-3l O mHc#`8@0/&Oh?ڟFo-ڰ rXwnn_][{oқo}/l^h]ܰm C:1ܶ6?lgAp F"zz55|4I%'s}lA šk}^1K\`y>-n-Ӛ)Әz[M <Ἄ/*%LeETJE/0"3 /Pe&4ӖUl>)Z%̂˪y؋.FP K>ЙX;a-UmɲKQ,!JS`kH M.Ƨ0 qZJ6ق&@!iX9 *Z((,hE2BF!r)ۚyXcn.{wׯ_v^Z]1 /ݖ3eҶiٺ*M~۸#CٚS|O4dk *Vy:9ޝ *XZ֮dZ>kMӶ[+ЧaՂD{J4.(+IDb@ C5u,»-"7OR`u*8FZbDr ,Pޔ9W;www{i 4wW\UMC35zŞ(:v))+ǝ@WʌSbye //Pznw._]aJ}$$Ỉ^4:e #Z\Xs|x1DP cbIc0XSJ+DH&]w2.0dޑ9eq=gaeb6\@j/G~@ELS)܊nƢݜI4Bʒ4y, _yC-jޕ΍[Q Mkz" 㤈R7`^fAAӆX.itM]4O+VTiXxϓU05`55Ce TIc= zqM3o.āUSuv7 QGhNnࠤ}7ں0KSs 4JXXlZ(RRQֈ V6+ۚӗ ' Ӓ'.E+/ Uچl"R=rJ1ԒVpXS"U(OL-H \JTmYB\=hCܺF@!h8¸.\Z%5:^S̡N-Fkݕ`[Fi)*R5'6JlסtۑmyAH40kL jomn+[UbyBdQ-WUPopĮbRD%EM; n$Q!2yN D,0YQ M@g]4"#uBU|DkBt_3qz|K]@fh,zZdVhi9d*HUᖴbьzL'mdw*%d8ir4[h*ښb BGlINakEy IDPy*`GN M LL5 鶴V۹vs,s)iZNP5FGYQBcTYY0'rˆFMO∖& +Ѩ(* ZJPi.GȉY{kp Ƭ@ٶoi P7g1m⺘iREZ4uF'd0dm<)#8&gm/WTֻwIu]fzZ*]E 4ȂE8r?#!E&E4ģI6h'e !Ո"FL}PDBPtiNbp(`BJ4fӢ0I?G +:5kɦyUȼ<$!P'v*]FX*hq4R[QfڍΕk(CPKmHVC@3]Uj{^ZP"LقsNz9 WQ^iM ĈW%GpPZ7oXE s"VJ>pc!U3ȴt BihiRj:8i#EBD'`>4MښZfԒvƇNT!3ć[ŋԶ BUMd %H^I\!"Ƒ8+j"^4,9Ht)ʅDl~\W S Z 3I$%u! --Q0UprSE>rbsv}-87H&# H>PjE -?FPj_鯾ic5KER+IBTLa.蒬s5d>x<*Ha{ uQA0tk٦N i@|lu4XQQ:lDh!jixmYڤ<'n:Zٔ96ж|JfQ((Ӭ!4ɜfCѸXV]ssK bW\-RWTVA,LvBIg!.t:O&|#s l&U-WSRPT5ݰl'UCZa `2'Ey pN˱1W+x"?O}\[i#δ=,tM>4f aCcM sJ c}{mGᢢ@>Y, 8t~Yda!UlNytN9"k撄a =؞vDʀ\HGBjp uY.Q/$TR \J`ؑ/R54VE&![-iw XDM:"?:A+?k=x"(4 LͳO.r˲v/tnW׀0#Z-HYI8T2@e(Z520`v3MGlæy)Z%Zd'XFnF}M(kU3Dxu%> o,Oi%"¬+Wh7ב 2 p jmi㴎))F;GFIA4jiFm4 K܍BG3@{jFpBİk`)D6So_־yY[*`+b&0[Zmqyn@W">ꚘCN 8XjM oHeh`2Vt enW)N/ E,5kz/iL/q)۠tM"jZ`yC(xTP8W(&`QgEn4Ͳ^ik-[m;`ĚaAAJ40?pNp4M7awf[ӼQurZTt3k>R~1St+` k;, gTn8ʒOpaf43e Rn^ߺ)lș+L#"id)i*`7'\# K !#׋,-h'Zv7O*5,R0bZ^@dT, WaT )MQph3BV[4܆:z aBpӊt%W\IV׻Ή+$+p4H%sB&pYM_/\c:T]Ӓ{3lEH)E7eـwC2$fŤ&lfȈ;LINʩ lKҵ&0j\BR IׁFIbjeuVֲ$jp2}M8*m%EKb 86}IL훼b ΅"R$ٯQNkK̶h|-f]HuDN3EETIIn:aIA4s߫5V#I#y1祤?T(giYFf&bD3MYg+Pʺj)? 9(|C^68 ϳwP:$KjYyEaiLrLTES0KWrȯ_yWEl]ܺvUJ'鰚"XO*nWm)jY"SxX{#i4?j5fB S͋^jh >Ͳۓ؏ !M5I]A[giFQI=B& dB]'z54!4j~Am.p4mtT3FHjC pib˦[qKB7irZʥJI6?ʄ~} fH5u @T-x ,4mGmZVhۨ^m;YZ.* YHqЁ("$A2ZseMQӞ;0Y4LS5͸$"C~,O gqVӔN ܎棁W@X#*$G`v?s*f͚28&ObkT(_h57ZW8[Zk2Hj& YSh5UKi=:p5_pیR("SA"( yEZᙘ;dC"gʓȽY8Np5RJ]nKOQ˓Ha;A(FP^l5kO=_,knʍkf{TY^2ކdX~ Ttȴ>4̡L U2h OD}@7"#bG4oA`yZA;7 YbH!#JRTE-Gns֭M=Oiq]v՗Zk4AFaxd25@. f i8|nv2(%g ~.,Ty ڝj{ehu76ukQвHE<(JlG&iІKLڬN3.x}*b8-Ba}|**l}#FЙ[F9Rj;*)kPF-p)~KƥӖM,5Rgbf RjH2/5r`b@U!&Q籔-hi#2Bڗ% xtڥ#Ul륕MODAH7\]I0GAŖZ2 ,}岵]*I$&.djC&mɦ!alE>3DZeh.fY_Vm\4AJf@?A& Xɐ6U5[H>QVT,-+sUt6.^txvwR ^ WBvV) ϒ,nEtȃ1 "Lʪ/?;"L ∟h ҧrEGA/L$I (?˳@6BiO͛ƅv'8R%v7+I$SVG*2ȔE6qatZKEʓ8*iyI |f UF(),#XfHx[aNxIT ?55k@3ָU8!(#4b _ _ۿl]AV̖r0G5Zt*r8hoBd"-q nj^y^!XT5| O_nɁ1FmGIok{hg72?q5jjI#G,'S˃&R$Z=q FŬ_"J"JIo &.$lIP[_zoէo0Zm-nj`ؼݕͮ9hRjt+aM_H bBH_2<+wiHd*4 B\V-ʳϲo.o^CFC[꭭7wZ0M"QajL_aL3@qEEHV+E 3MPYw7η^m}mqk۹ݮ89  "U.m߸r_{__7?[z*3:Y |n$PJY+ź\aQ2%b g-UM3ʊDc1phN'g?\w}{xg=Z=X~"qy'9iݕ/uirm0p\KA37MpFL8wO_ߛ0S!ĢS^x9?g|7W_uε7.^rƭϿt7o?⿄W|ot;u.g{ +Q!GU*uVDNhF,i Isw(hZ@kʂK;q4EQtH'Qn$Ѳs%Yï<&-P&*ǐ)i_R=:-mguڕolreqI^6UwUznz-=p_xy¥h^2, %,NO=9d&h =ie$|DMu2g dzepu;G'[jpG]Sm˱`Rhb<Rhu%C[ɾ|zx:v{{cʥn=/ݽ |***K3˗W.]yi,N,ײLJ"/UZW䪄KCF`l8-ʊ~8[UyEYcBbA݉0t5Qgɬs+ssƁ D CA͐H8,Kthm_j]V:U>gREu:$ye 2lJ7&9nZ0bg4Zpۯ^ܭl \}{^}^{^&qY}Wmڻۻ/{6iJ)C*4dXq,䱪 #a;8NLUEp۲{E|L; 5$δ\ |Qb G״Pdnkek@5LIIikZ[v_}Nc:ߠqɒ]9MNg`TTrsJA*|:GdTYЏ7ϦcTr)j.n>e[EQAOzV?^A("  YtTՖECM:B5CE5iDj%k0lD +['i1'5M푉˪1GSi$!>Nsv%Pӄx .YFq$ =I-꺝K7V;|,Ro3rfΩK;:эvuk!s;m5Ml1]D4xW56ȫc/~4 F/^zvwK/nzׯ_zҥ^ l]VѳKF^&Z-Ɏ" HeJB`8rzdhƨi oȼԏPDy&ist-|g-i|0k- I{LO¨HHyDq@3k[iVk-wհhpA2Kfry43͵][VN O94zVІ=pJU[d, vwh^~oݶẰ(4qތkQK7.nYQQU|Z ^R`< HRC LLNJi&aX*R2Dۨ_7ڭv[[[GA†777W:PVǿdJw[7>gȀu 4PF99ΫCLRO {gP"M65&c+h:Z>'řDUR4%]̕gXdE( 9 i"(ms1H֐h2LG\D| mh+XLUeE[Aj6Ӽ<*cit>Ma;wكoi"Y<裏|tr0 5]4qh tu j{gYZ+ "M $3uPcp 졹~:VEQWH8`8x3mN݋eL{3/8`ǧ؄3O0ᓌJb:PS *4KЯB^tnlv_ vsW描҃|+ Nqa +T: WUޛtCczoɎ5 Qrӭݽ+o|koz7^^|{`m7o]v:-5IJ"Yߩ|9,eV$-*lf}M uSCn:>WZaͭAiυ;!4|4M0[]$Mhօl^o}0</‹/޼y_[Y⺠~YY,Q%\q"R3CASI@, Ms Snwi,:6* ]D6-Kx4n7y`MwGq{ J3ʵ,amfp&^>0,wRX6LoEQ<>G ٤s>8I3V _{x42N ʮ|>KkiJJy@k•^}t]P+W^ٹ{a+׮]~ߺ}mm隊%H/e- bi3K#ԵPMc҈V2f*Bٔ^#ن:nAU@}mW#e%fō o;۩"SѸA!OGQ@tص/޴VdMVTpjswn@/h96{ݶ-p䭪q㏧ |s&M4؋Fq%,k?$OO|o2"H[ӅK\z UP1ߵ|,mk,7񵪰yfK%_US6cU\H"sT^6P @KVQE-E}\!YkD%CvzuD^r\Ʌ$40(,BG]ۗު?:hVKRO(G6[9.'~kOgԓQӊPp?S5O4r[[{+^^w}jvڼ>?p,;Ӱ*$S%ܶ^,ƒGO ۆMtFӳ=HR7_yoݼnw -ۆRU]t_{{ۛ( [|xž`ZI'R,K1<Tsr8K ,jZ~P'xN<  F|>JJE-PMNu[,C_+6Fd^\FKE-IKnIsp4?Cm^zdu%ޗ|4{qqv,9{]t}{koӃ5.Yx -j?=r?nr-uLz?ڹ&ev><==;:==3X:-+m\~zMxd )ڞ+_KvԩGDbUgJ<4MhXL@`MGFe6[,5 ^ێ%RQ< 6fd 磉7%u[Q4p"h9ZXZ̍ul%iPVgI2>_~7'Oӄ+2t fsmڵxL6Ӎ!\j:ծ,mܕsf7 SŚ-XwP76M:I]͕֭4[c+;Q"2 Ղ~,e`;ɍd Dy3mX#ovr~|xxd4!A!490G> f.ݽ{+Ee5ҜW^O'L?רUɕir |cèә@fl8R@Y)gAR,Hz['ܶn[$R5wcM_Y[+ 5k lD`,LenXڶ}ytAZ4>&vRڊ[wva(l9m "*=^f_O20J'h9) @n ړ \rd;۷oߺvJ*|lPc$׿ Q VTȋld(Qh8A{G K)XoPGEO}=IggôeU9sQt:_o.]nӾbQ8ɟwOӃGѠs0%/xVWW6=ߋ(Iiߵ|mi"^`\,ViPAan(wK6ʔHuz0[VV'5/֥*,ٮdj(;GyQ \t7uKg1JU5ssϺpUmuf>yYߑ ʓG'X>8RMEI:?=oRT1N!Jl8xw'ͷ;?|d2"}p<EnA$mPnRe01*?q5xG};!t|2t<ς÷xt9ú<9Mi 'W^y/Amj;rp$9aç,Qlܸr2r6 1I^`|,tp%KF,ِ$TMPh hpYJ~qϖ0 <4x0G;IMS`i.F8hm:huC7P24ФFDPGASaPieiZ$`E!U i˶?A i^ġUk:,,i_·dy/7qs;{kkPN|~,S'YV$6f͋{z^@d#TR6[ :FSg7x0$]^pJ\PHRfB$̠٠* Hh%y<&kK\9Al^[*J:OVr%\g!a{qRNZ,IRGDЋ<KS4X`^jGYd>9{d}~$Ix$-gxI6;Ml?+GYMfq 5wo|7w~emô]Ț>>~zt $\g{ksc} 3_, ~qe4Ƕ\tex'@|IB#6-\AcL`Yk`KW cԪf(aWj|@*j cjQ6Zv׵ȑ"\EF* ߥŐ.?[BBhi _RFǨRYQͭ[|gykd:;?X- QA,ʼ?YuVv7l j ~~Ͽo{Ɓw!`&GOPhL0.V7`_?/_-K37=wu#y"Nxe >X{{Is$@mUe0vPj4H:2 [I,Aj 8FghMdN#4*} ̬5@x}sY4ZVԣON\8ifg訞ddt 5>.f4"AJFh0 VĴI8 RuWV[,@)NPpNC;mO>}zY]_=P5+Ff]PT DC֎ "F WJkXQSW= kd<"ba^\snjnG]6V7vzݾZR8ifD zBY/S54|`4-S|8\6d`0~x\-z'Ӵ`i.!?N[?֭Z]h5~9AG|wr4>?x hͧ6Q M[_[t"27w:!I.7/9 /1,FMm6X"uv$p de>Xu}Z&M58 4/DZE?>c]˔ ~X.ƥjxo?Y,IxoهGONig/iqU!MHUݽsgpZmJ< HyOxǟ 'iby6АwaS ͷOLHg,B*ӂ`԰B!9IYUŋԼ 4Iz&%Jc֮o_tw/uWNW$ZN.3wkOlr2b>kU'l?:yh6Y:;?=xgyɅwk _xͯݿa|p~vx}?=oAm|?>o^@`n h`ğ4kؖ?7L#<jI7uEUOD\nC5OK()rtgIauwTlz'j-I>!e8χ\_ 0RdؖfțA$q rv/;?櫢}A\m~zR4/gÏʳ}qz%%x~6<>ElQ?Vu'~ᧇGd&fUۇպiY]W+*۫OK6yYqVSYR^2-xnf , GaCҾtý|Q$7ַɓHZTlSMY%ق`d>n sPޥ/|/Bq埌axWH91;[7ٓ'>xoCgӏ?h4Adpg`Ԝm9[귅VoFv]1L]`eX_ 7HlYduUI+d A*" 4T'ʁTI~U`{0~N,u1w5t:TjzLm$ȡ޹|^DWRQ^?I3ͽջ5,|ZEagd:8m<~~2Ni UncʖjBy`4EѼ&Y#kCRhd:gwλ?~xSبBxx:Z)O6m={E?Ԛ(iOG"dxfB 5%35RxM# 3Lu4*'QRTh ~cËӈ&"zt2g00Dfn'eklh=USaϣmrMY/{AisCJi,% mPZ" "D@7xO4'8?\qZT0ݚdzgeS,dju@-.ǫJ& +1 %\h$?Y3*Lױ}l S< F?<ҵTibpPfpW&6q0p~r<2'-Lv pk^7MESǟ|;|G|G<lL-t<,Y. okZ*ɻ*aw|qK`ic^{Zd)̍"6iewIG꼌|u݁&S>*M頊$PE AYfΩ>7ڼT$MyϤE5jIAd0/R.QghbqAx|(R%U8 1ѴJ"dQ?. r4qV|D*pO|O>yrxxr>LGG_&QEA[V0Z >_`"¿|,466o^:.n,qr#0LHдN/+7t΀wh=Jh$I!I7͸Ku)Hɲ⥜L;ChZ]qgt 6ö83t(+k( .^w%GKZGo08x44E]U(.̫ATG$gq),'O<5Ot*Q *OX/Ii8LmF [Έ#_|,;pceq\^3UHeY#xP &e i?DvfirDYaa;ުnl~{ű]8Y<LN>cǠaAPp0Ƕ;w*;PCɷe݌>=y"Xtl]MTzLÆS.޿BVE!҈0r]a'xb0!6}+dz~+p)jIb>]2LKOY&eIȤ]y."$XTSJWy0nxƲBuY|p/Wlp)hBMp:[muzelI8x0XqǴ*.k?rs/OYMi R`a6M&TePXr!՚i'x?cy b^I|zzwΏG=GGG>˭f9l<"g+ln=?\asW,| `"mrM%Wy'"Uu#y(h9YF`РbilT9-щY'͜dbwlc\$,-w6 Ӧ֜h4EJ*tPBUP<v̭ /VE?_.XKUT-:i@S+b fcf}JphN?{ã|T4%m!a4Itx~~zG;,Cdԕ,ɭwavI }4_-_K{k`"uZA%Hqf:7+B-|?kpohÆtbL {P|QTc(dv׭Hh&Mg, <;FIL(L#)?n8 ܖ]o،.J´˭ku'6I޽ٮ i gJ1-bk2{㆙Q؅* #U aV Ȋmٲ,i_%KCubG]Ǒ,=}m~5 "hs. A"T9Q4jCd264֞Kn1LUW6Uۈ"GON=/1 ܪwsUh,We߷]mkQXJj&g⦅zkqI)R縑|/hr6N >fE/\~.Kߪ"_ &NH!%&iMb.O%,!T3/E TZ?ԖHHM62KbCSUN3瓲} +?tt~BLfd8M2 G%m#CTZH8S(:ӹyI6:]*8ԖV :x=$~qbxv6$ N[^ieU4Dh RreI:5MYjC-'16p";p%T+++ȗGGPZ] ,M_jW'M4'F>s*rtJM04n!I!QᎴy0:N"(P4Mxo a*'co8~bxmnqj?||p0u x޼\zWޡ` )"%Q")A8=c"F1C==zbg'CE#$WVeVxofs_HTV@Vɗ/=sk}v(M\xC>E~׊'ǓX4N$ˠo(+$CdjAö@zV#mnn* G˝g>qEy^G@ gY`3iǠVC&9X*ԐVse3\{ H,Uܰrէ)BTA)0CdvեjY+ 6E9gzԯƌLȨFCA;kOkMVǝlnb`TTVW5IZt2IBp/- G*b/cdAO@cVdkd jZ"Avԙ2[4KS8ͱVj mHp`R9uhdCq ;(sP%4L Jbix)1 WւvB.U+Ox#'/bmz}'@1>oAoc>rdC#)\g|yAmE^P9xm0""X?x4vN$MxF.i41'ӡFbOr׏-/[!(%c^QEn$7(ZސI>-\YY%Yb:[y|2cO!S[@ F@ZBqea5}@~BϦޠo yy:ZS/^O}ssD=Wrυ^0lulL±zk`0',+kCgΖԺɳh鵦&=s.E`QAH M:IMl ӊIQG,Z\*pYDyEԓxE|ߋ?K'ERǍF&{+o/mn >O>πkއQ` u.HQ{ "0x#5f$HeySOA < |bTH$Yh,Jara` >p70ZJKSS>J9h'&]~R)EOPxR];"tF}tsڵ˯zr}#ۄ/f=.i%m.X8SecTL,H/FǩePYdΘzөW_x_:ܾkLu\c2kȬ.mԁ(KbR.k ({C7!aldPÊI.J|g$4 x:z7xt'^x'T*@)iǓچg9 aF7ttZ6-EG\&HUD=Fȹ! H;;˼G{%N%j~~naJU6*NܐXsݛmWl&Ot]VkVB"KCC]($%+2Tt|2T棘fF@î@ wGko}Sc k |Z*Jz7hx[ % h%Y+0F IsnQBxg9ę;y:`Fq6+%5 .~=wp|n8gݣիo7n^C,a’^p>tD1=B شT  NáIˤ c ki!4< +HlBE:||y*^k* 2Z]X'|O.<ª=3nE%4T0GPdQ](UCX I80)rU4n0"I"I$V:z#p^}_X,(_ZZ'iVW? HD8A4^D]+ <8Jfk> Qaf/dQo h _Fs}BhW4hD)5n@ȼTJ^ZR{YV\:\xc.<ڬ(3fЏXP*BFժU)©zީ.\z'?/O/>OX>l4۷#Mq('YE"9fe x]S+u^Q Xf G i <qfx0~ǥ&|J)6 +"LAp :ƹC +<سe)8ijŃ q?_z7@Ǡ^h~ٳgPW,spM{pD@}T 8 anD TBQWzE."HK0<l ea%S=q;j΢kWo^}m&hǨϱp#(g$$Ukr&+Kmi"x|E8% gE,Cjt2p\P8f3n}߀' nx…~CB1_TX!ɽÃᵷ-,{!}">n&5LG[݃~wv{ib"m/p{ ]jdwYr^8ܳxqn}pQSŅNчV*H";Bɔx܎ XЪˆӴIDAT(I' RQ@(\w2õ6"rP~, 5 '7o_{ c tx Mӎ?7PiOij M=NjU4v,h7d64oWoTzVe^/Ms)6}Yj}ZdV~)y۾!lhGMa7W[cCd"{Z"6Ev:!&H! ƐDQF F /jF1ӄjx~jVWq咮j O]4ׂ&]~󵝝4R*"Dz{qऑEv s&Hh i Nvh AKd]B${Io; i.ʼQb2'l5r9>.gϔ5Nd]w_ꫯ_y`8%YKB̈-q!FZ4Q*1U.&lZ!`iI w,dlÉrJ̱~dx~8Oy'}xj߽{민ګ`ԋDzV駟z'? q[׽Aب.:zɰY䘣R2d,* )tX_y7JOm3@|VqfeMɳmkssW߸5I˥VR2AgLJd4eDUzB!)v+wa} #?n?K'ߺel De Es< 7_m\IOjWWK 2WJtQ0C|}"Є`i $p ȈĽrs U;X3JyQԶhrxxWG7j.]A8 b6#hнzÛȂd{ovq48(R)#6jzHДl!v|1Dv?ʒQnk|ﰒRh9>y*/h*70ٍ."r yjE#+G;{ڽ*Ex2` tƫ#1AF|i6 gJBG6.dtw[W6mۮUkO>{!CFR֤N+%SRƥ6/ 8) '<{IK%\45XvP|1*#CdOrHQ`5%XFj~c9}c1z}5rFqJ^ҧ5% qVP'V5wg;nnn n`O"hx}/M͈v!y8 gN8:P7;FYK FlfGwn]]ڪ/>=,͟M'w(#"],ɨn>"hC9ng'}؁#Ph"TGrL 9Ӊ> In%i$Wi6úиvu|w^֍+=c4jK+͎g3xcٴ3IIU 0 cDR5REE48eQ=jϠ~=/bR4DΝ[/ݵ;P4Kzg~}nWxssv3 s("o)l-|RN -8C8.23g>IwXG/j٪lD˞!hP'*.Rh2'aoݩH\+Ĺ:UxNJh {onnݼ_ vi1*Zpڔ11ig&n>, C6%P `U>Dj 2.ńc@$k{lPCe{"Νo\q"I3O=0;ԇ[#r\F;hE 3=Oc$pYJڬBҪr\r,겤AEˈÐ3^))ՙús[h85+A[̖#̪:GbZɸbvU#c ڿQ2KGB%CϟtG c` ;fHOgl>rCHWfr>߫p𸚪PEqŘ]zl [o4Et Mq# fLS+pHfVV u8֙DmMeQ/wD}rVBjR@i (2•Ը(vE`_8U=|qә}صiHh=p?#] ca6v#Ap||"˞:y?_'_/#HYN(]DxZ>mxFw0G}= `Y3hӌ<[hArGF2hykruY'kI][Jp_Wat;(z=42Tr&,ɑ C xD?2 +Ҍ+|0X8l0ʋ^ E~Kp%a 42Tr$ $IccjEܽ@ 0w AeQv[?w7<>n\~g[Ξ_.P2.yhȐJ[6I$.URU6VhȺ+ *rP-eWL XdED2{9zUؼݹn]wjGwԃoWNէ]s.^Z˵eyc{{" r hCluύ4p@ BNiUvl4ժH޵^,A4pZVU5l@=_^:4Hω4H$ UsX_ԪĕԝMk17|Z)*(" wxI,h@iDGx̊[҄W4Nxd;{֎i{~$KI9P!im P0fF2IJ0JD)M_+ >}'>쳏?O|'? F%Mo6K啥ՕNg^oVDADu@Rqw7io4qz~xpte{aDVxWԵ ɍ_i1Ci4'û7\;ѽ[pӲFKRVBNu~ߪJZ V`|;7.wȧ%. QڣPDZcUj*'d sH+1n? NQehj"MrZ.ui.$$ezpl|M} dz5^,--=`.uqAdnݰv hLLKho{W `f4o8N{Yw89iT `OSTA^yp%QJɞ4^sO%=٭_۸Z$ ,,ε:݉GJ܊wh4*DmEov B! .R5da1뇥ЌubPhϑ/::(ssZre蠚1 jK7O=^m8sUukW< zzv Hkr@,"cl8b^+G HPqS-N#17<:8~/`2[X[3C mERpg . ncm*rW1 ?dAVxE):T+Ző 1A=dlrcljLϗ7WOr,g//_ݺ6Y]K)_8At75n{vm=õ'G^D@\`3 g'HF|S?AWo/}~iqQu,*JbtW;Բ2`yA)m!^r ?Z~%Gs<2ziw g`49_S̵ՊYsjV (M>Ih}qq](hh?I1,6,1)U?L}\Ҁ mĶ]۸sVF ?SR,Eytk&hk㨷۟uǰ[ahpCThGz\Vj48LS&QE',oEbυfhi1]0{_&)ѕƹNU*0{x/UxMSe|+ H,|yd:2 QdX)LOF8<7hqqǠwpJj Q2hCdk:sjpfΝ}V++Hˀu\:Gdm셎H(wt856!_Nۧ*VU˵JZҫ%L[*ʪrV*xYӐ%=YN.e>f|fp0sJiܔJ)!p_ȃg:45Yh|}npf^dMYti$ S^X!`850w<C\0 }!(_BL@>˴Cٟ.O&֍+ۻ[G6.u>Rhj#5oؙ05+ZA- D`b^|z[xY5؛$؍@ˣE1sDz'"#.5mi^Ksp4,LIbҌx msN,*Xblp`+}wFD=c59&Mxp<]Z{G~g~/ʯ~f㾶k^j֛  QZ^Y^f5h_ Ԝ(rHNwv6 Zo 0|[$4= |$Q+TE6laN4&@K|T, *p4hG‘89lw(tU1\f';S+Nk\7y&S^K).K`\7$h|jW.>Z.h^/KR:sL+8i<9i-`2J[ H)lM>t L'l:?<{X3K2ghL6nƠ/4{p̟پa7OcQ+j1z⡤*uӘLyI r - mY CR&:٩DIV/W z,Mytv Ǧ4X=!L$ =2F٘ZJbJ=vE5DzFȏMΣY?Mρ^h.)=2QM1 p{;mңYym XRuaiz K yr$Hmjӕ3 }c6o,gN>XIK㫊ЪqCP9I4#YW+JI5&viHb^d0T@\Ql*^(KsM[ʰn4kumtlWUKk |hN\u*0vGD[35`g=-θ7@?i0qac72l-cbI B='iϞ>YXK61>Q4Q5 lZhP} ל~ld776BkX0ܫP3vN 2ئ Pڅ"N |4bOϢ%v[-M2d^41\"'UtZu)k}dSp$ 5e%74Va l 8^TZaǒqoV˧n/?ɜxg6-v~K?tҥ'/aIԢ0nX"%_t[0{Y+½`Dsvwv$VH9(mutL"_Y$u/tߣ 7, \ X) hDbPjil{:1th6ڑJ\Ҩ0+ *{QD@%ST|s>.EK-nΉvVHSܰb[D0WV`9xA^;p>)n$p6DotTw D8$wk2P/0hWaiY&D1cyid޾qƁ58S#5YX:\hTϪB&*ZsZhjesVY1t *`VRW]%q29ԂzT܉RKc ׷kȽ, K5Gf QVJ!| }sjKQ({LDNc7-?';+0lT|g~Ha mOu<̧ښ,7G:`NMlo] 7=l6Ǘ{~@,-=mt'v\v!FZKRht mV5V~5+W+ZYqG`uF)Y,1/f+sŽq=]y<]qͅ腓Q7ijTkHD mw6 ]PJj)ݜB $nR`g,3hxMcBwְ2l)o?nNʨ?jK:] *Q3M߲7oqttaZpZ),8 BRP6$Ijy.-טgIK)>-ɇ|,r)%Q3*S]:"hk|EQN9S:<^]4]E? /ݯ_Ƈ:~'>sgρs(x H[TVYXl{VW5 gljHIٶolmC}/,,4}9-XbZ<'IO%iċ 0YAH@Feb?N} RQ+%2 ! tEVZET]T١97~3͢h Nk? /"CVZ}<Eqz4;3AB8 P֜P3O?]) R5+} azj|Jh_#ARr6׮t{un,8>QgcG_}` r(]qϔOjN\o unQFf ڹ.n/ i6ؘDz#,h(M FѵW-<~ڢ 8z>.RD77oeQEqFqRs("eIJq*Bh%Z3ZQ;նXjj^.嚮7 -cW I&(2<7➡JjS.>M3RR7TetF1#JzϢ&__N;ܸvDW2QeP)WqîoάxjwbPcv嘆až]ojI <FA%l:uh"Yg*YɈ廖33]htTfwAO/g>gzax>0ʨfŅV <ҋV, !|`į8 $ϟc;ԨV;:>6-ZK7]jh)n뼪 )J}6x͌U)ls0 ODELK:`W;e w#uj ѐ[]-ͻn>\' [9hh'vʊ΃Ln2ΈZNq^ ]Qg?[_kwܭj$~rbyTmZK.0=C&8繇{w CQU/!(Z.f6S18&txQQ4PPIDq2Lӵ AExUPv%wZxsdD76׮66mҊ:?qc;O/2x&Z]oY,.F&8L2}>%q j_Z,x%M[]Yp ; l6]׻/6K$MPJ V"r6oJ=Oy-ud0LP3ڸ߀oJ) Ӷ~*Lj,ZHe{qpFpL*p9GV}'" ,w~&Y2vL"ffZxRw cC"W;{//owN>z| ]Sᴵf,.RQk%Ps04 jLwv7V"0chS R  R>*ĵhTB!d M*(!My*HHπ{hXUe%YZuGL{"0x2 {?z޾AyD/jYy-  p4sʸ:{|xZ~>G?OW>Oֈ JRk5 i"~ݑ ' OLDemlj5ˏIdڦ%c AS5: 22MAM´2^Uy]Vػe)'R 4ETPi4^4tbY|#k8v'TvE.?Zǿ[r33\sVR诀OzRtkx iV,Ӭl 9TT/Xa4<"9ʊ(lHs@'L>aEtdmmvg^pvvs)ө O^NtxI;0^ZGh9$8LUU<5%4V>%\ǥ@*>#h*]aq3J7͛kkm(M@œY ?hܪR >EZiR]80@a:#ڌ&&zP`(BZtlzCA\8s'#SWK=7cP*VФa4`^/f%%  'xA فq`w6P>$25+! AxsHԃ)c .KeM \MQP jRK1' [TKFl5T ow+Wv}eT}gO7uI4FM,3^dIܘ% v*8);s=PX<# 4Y~uM}AA84`@.)H4MJEWLm 6o:ō@MIn: W|[ӓEFA I&<^2Mw2lݸwN [VPמeMk2S+:z\ܙbPEԕ,ήmY׶,Х2stDӫ‰[!=̒ZskA)9%Vk ܄u{l'1@縈t/Y)%4&٣|$ @mfaX*`aĹ!2:CѴn+RY/}~B72lEl3d%tgLR_my Ԭ4Qed}Am`|dz.@m`G <h bZ֕Ks׎W]s{6=A!F#OG v_!i9mLgØyPh2ѧo_ Qoԫjآ()4atBl/%԰@[(-*@qK" wOshZ@AL\x@*8 a>z!BqAUI8a}nYF講Ş&D V,VgVkPHzyLC$tܪTuVg4+(nN&6+G>G3l\p5â&]UNt(lct-Hn&{hk@]xٚj`MG(3KLO3*iE_R/Y(e} hA9 Ѭ.y>eZvK GyQi^Be-鼬*`)v %m/ʠo#MN:ؙGhݢ^VS/ PDp;ld<̌R0eP(G>q5<*5j'mCPw f6gd{==B  (rUk.5q40{km7l ӮK rG\]WNժ@@4 B74O@fh#bٿ癕SjvhEa^AIg;6n, @,:uZ=ȏD;A5l | Ƃ,&! ,N^x~-4!.z`Gzǩ@p\qp*I<%AC 5YUuBZWWZ׫03fQD@/2Pq,T) R]F_Ă")4CLRtD:C8Dd}7I<B Wd˶`##`iǥx/0~/w!gp\x> s M#]CF|bjh(녽\h}?BI $p)#” 2N/|Mmh DǑb} M#0flόd 'a?,Lϻ E㾲f9\J`wɹA bvΦG.0? Z̔3Lm]ÚE8ӷ( (Nga%l~|P>f`iAgLdN6dp401 "ڭ_ʍZըVV}]_lI h?{G4p.OUOVf֨ꕪ$\܅FUL+U0r}ɏW{6/}s6FF`{ R|r-yAԳ|i=ۅݔ&">;`H j!eat* X}OZ7c[_@Wq2ýr9GeV; vXIJYosj_K4_Ub(P( crMD7(0cXMJr\O>GNxG*S2Ԃ"!bQ?I!VE!' Q2ōRۏx |'|~`d߭k_Oo}`{ }y98b AXH,-.>u ɥ\.qܓ\)5Pd(rCp5"_KHbJ4s՟"J,hcIZ2DӌC;L;|s_;k}wZ]=u1_89 sD8+JԫO<]WQV0ï7겮p(?֢ĥ8Bs8OYPtG͏Q8.I` !3'0 'ՌgN(@׃.r8+b/?v{od'^ܵ=baD(\RM)h!\.44Fso=ݾat؋ʗN4OK/Œk6LToT*be_Ss7l猓CXS<`h. J'8}G תNl(ݽ]6^+88 O5[#xr Y0<爨1~6 KC28/ *PAB԰$U&qaۇ(B=:M]ߜ4Z֫Flח:3˭ՎRR-Cϴdo_>1]UaΞR g//N\* xY51)pC 3{xd0p\.ÙbC:0;Z<\kko/b ;|k_Y^iڰ D9HQ?hd; )#?NIB 6bl^D-3iE꬈&jx9(x(#ҐaF@4Tm5GoWv&&hX&򬏊>\gV jՆUM%el7w~b99>!u: 2X.HRq 5&q (H)f9ʣk4i~PipT`8c@ eiz`}ΰ2I[ӥ)G==zԶv_^Z*p5m@F>J3>ͅ4炈92ӾMK*.K:R 'Ң'R+F b.UDj1rT+ef3G_\GY_0ۧHPPh8$%ىltarǍpGiДVit)v\0.Xvu5Mӱ-?3Hh <867~"@fT.]|駟z򉳧O?~@K 'f5f!Hs'mȗ.g>BP#>J&4QEjUN$}:2{/_ݯpg6(6> zJ8 ـʢ v1}ًO>[[<ƌ3v!'Oh%UZh L=YՁHOρ-;s 4$2ajkGoloZ3RZVX.kOC{25ủӏ\Xtvܙ3gN:^]- \%ɵMk0$>XiOϞ^X]i5UUU4$␥vC1 |ۂreYk UX’+ѡ1D $1(E QM lx{a[{+6H t:>8:CliS 736{E8Σl]mMw8C(xw|pD]x2r=xGs=lӘ^՝nSIrZBf?+'iɕb \U4CY"c`%#Wx^WWU0E"K% ~VQYY SftthG ٹ$%yP egAScyGBq aLw ӊcJEQPۀkؽFdvټD>`r\ڑGA0ڃ;;wܫ"04h[1d oܘ^900YY(8լuUMeNrAD8F;]3@'9Gi2åq6z&Z:Խz?Ow_׿z|!sÝܴ[1iOǬ s+~/:^}W^m;(U&h@R#Ja3"eDBYjBӪG^yfN(` H=d3+tV6E`r]=xٟO]t+դ h`F͡lh0ٺq+/}|WДdEU&/9MF}߄Ǐ}f ,:7C?pm9o;LX,J 8ܣ^c,UE?P@fy1s7`d6aYD*ex\ԀRk֨.tNslUXg<8ߞ2!,eG30duQ}3lrL%?O}zVi;z,$88˄qc`_}?׃]{;[;}< s E >`ZzrE'syPD'DĴvFoys4q\!4_ZN\ +rUfChRƄꔪiZ_'xI@JR-_n-٬+\2ໂ,ucA+U _iY+2 fRѸl Kː.sF$/9A\ʡHevwHL#w]0t&eMsJ`TR~76ܹ/vY"c"*DFޝkkП1Uk)m!*WRz"7!Oڅ[1ybߊ Vl/VS|VgZQ˸$>{aS8ue4)/z]u2=t(XTsAJ)tOa^@Rz啗o_;ܺvwq<Ļ=>Pz.Fs`K!2-syD !>=dBҘqNՊZ&Ǥ, ;7 s( "U(>ZT H!/ =v #LYl$>NC]T岠dqiA8{;xzɯu̴m$dQQW^A8OTD eӆ9QZoé iAѼڥKa Z=}cn^~kwXEOV?Ulh"K#h|jw#6ZX]|Tk/?xkqxt, OH5N -Ri?)`H4n$œJaoߢ6'iݝn|7W-4}yqRNY l c%%U)A)fZceQD\AJYi:> =؞򦃙{y \sW2zqn65~I㇑Z*0Qd|k׮QWU]$@{!LC l1am)Iע-fz`J IVu/UUwѼwIhaVѣ`8~6wzƀrY[X*|YPjY(*"F@C Z F "#1/Nd jKXh+JCeKPR(ekb n~%WtТ9R^BMUFf ~ϵm&bΈ ^V ) xz- 8]o}˯ݼq8 \]RTgA@ҊZQ`y9(o̰nݾMӚAh KqiV[v@S]/:oW2PY\!i6χޥ[;J!lg h;'CZ8Bd\PiVaZ&)+puUpHR⪪(A,ZX#n? \ׅNuj e$!r S0vį?/o[7o { >E@vM*/ԶsҊ][:;cB[B.Ԩ*'˧VD&ŀx)4΁ǰT VEhA. 3, iLHVn @J4Nt'ԏ-?'?YcQuX@bF2+ Ϻq4p1$DH:BLEv sRGE.<w)0n޾K/}_o>@ʋD#iGYX?ƒC Tj*pG~S^͇QbvܮJkrB&/m/LH٪5d⽰!$qP0$x4Z-wN>?}7~7/<ֹ_gʢ ƋK0xzh[fp{b ((m"Wq쪌//CQ&BH' KgU! bģ`8Vi4h!^4&Ч žO>w̩'>O,u*oIˋ͇ˋm80S UIit-,{3Kh(Y:Y*zZYYj儥T5NY^IY [pu^=ou{k65f1yKY%UNgz!'i˧N/5D|ȜNV*nɨ\GpZc[p-\)w4om~ʕoBmnmvL۞RkA#:fyxx?tiS\+txJcFY8, !SeU!6ؤZPFokwܩ<ۛ 7_zy83qmRgгN{S?M H]ZJDM~tI9YIYߎK%ʩ')ufS8?RtK|H nA8)D٫RsI?=aTC~5L̴w ޡBs\۲ VSq]CbJt} Hy{WեŇ.]G?SO⿠(>,|5+GV&(IALt4J)ѬO?ç$#m;,cEAKC9XuE=5і|:y,CxSioR/Gw h;s㍻W^=)՚03|9W+dVjPX{UX/qϘ@ RQUpИidMgl v|޻{X#hFywZ٪.+UZ,ԪIf t.Pb YlJe]ZJE=cBjYo/6;Zg=}3??OO~2_=H~Ѿ"5MnE;w (L7 gcd1zTBJ;uS=Sˏ?G?ӟHx̳EG'Q֒pbuhs:Ԙ *U`pV!mZ 5%8Sz/x@);azDz}QX$rHNtYZR)#Ag^>$ȥ4k=Li@K+$1X9"W8Hg\4f@ t|s?3#v<<T%-( 3rAP{oxcխ4-E“Z*hvsK ^-ҟk_JowaiE@Shi HDJEk<,0(ZӢebޢ#{QpHpǓ1T ^8^,5.\?˗PW4ɉ$Eo%I=G -ir"t!V<ãy(pPR?NA< 3# 7̓ݝͻw"Y ,%5GYd;o\y4&l[KrUsaj/xa\ĴG+S #}׾(!QUԸx\dhc*tz+ׯY,-3ᤷ53y$E^ Xv::TFLC"o`ǩ2oOi/i2 ]e=9ް҉[AcQUѾ'P';߃ On ;ElQ˲sg' >FQ;>~뷯b?? RR[R b񉃚DekJ֮ :M)I'eYy!SŎK!@Tc45Sq13L?F93<ˢeY*ԚyuQQVto& .={۽}w/ڙll/~ww&1 Rd+V."H4rTѩPQ$XґC}^`eUU:0 9{`:>Z~~g@LGKE)GyVo,s .ʪb,1ARu&DJVI8ؾ?Z. c2aXR饇~wPp$w$(ooOG#6Bs֪VեDRY% wMpH?L'BAR؈\*C G1;>KK>(azK( {{;G4<(t?Ll˷lMnm+t£0A|p̮΂}?3n{}s߂ňiUPM3;0[ܼu`cG[Cо1nM gn8¡`sjnolmn >dd @ HV圣4Bd8od`ꓙ__66 J U/ ,!JY.3e7̣TRDHOמH;8h@Q>oTɤg8€fJB2 $Y4X80}tGdL~6l{G&jqN:,F7di= ϫtHRJ@pجB3.P ZT j|Dfl^8sƍ>huHjLOMPl*ɴi23q".Mo!Gh$~@2,^lGhk5·}~hoghد7'`$|zd2Y4 suQ([^i;Iư;u .U2Lf3t x&xiO|<6AbU&xPh p\R^}BmP<ԫ{4NGlV[x [έs/l7x6s乇Μij\zUNAlNՊ7PSyNJg/|'?X5Gڝ&E.F}yeTmoE3g-ZĊu$OhLl$q2 Fir^0zdU]XhCq4h4!, v)BY4ȸķ.,4#)LCcKD݇q 7IbwV\^z$߸-q\R5.(zY}Gxvka6t܊gKMx*5rħ{3hv0:P]\]WN6WN+z 5p4]XrU%P4vKEn?ǧ]>LO6ANLcjà-c1=,K*>]g~K-b_Beh` g2Nؤs>ž"Ϙ6^'L"@1j3M2O0q|dR.El`t" (Gx5 iG[//x[Wm%骾"> b̥ Y;|wv}>ϯ^|8˘k_x_܀n4vPveKoAC=HIJ?k@gajɷ~F[v_+;s9787f$ Jq#fЭ{ɑ XYؓ{f9N.c?@\te~W%ރW(ǵZ%U emx45f dfU~Qppmm}8uQǧ|Ƣ*ɕ#kK@cz8 \xq?&#?dxViv[_hI:_2H ,&jO/F7lmVu)҄YN 5j2zl*T I'L#4\^i/wɓ͇" WuY9i-PapaT4?=<<+A-ˁ]82%?qڮoL./>|)?sy#਑&\4Vr<2_{͍nIr;\{`qG>|0޶f .9,eR\8狺ྨ8!#UN?ǟ(he{8l7&n-zasQu]d6#gt]e?RaX`^P5cKx:5m 0:ؼA`>   u'|pEkkNJhQ9[Қj< e2$<#dN 8X(!IF6j!Ai7-%tlwz֕CƑؽ5׺;kơ u3'HRDN9"+ TfC1\Z_Y9tLsl<'1cdjU j(it=Q ǥ^+?J!?X[[[{{~o2ڎ v{.ĩ~} _4.=TpNmVsIP ,$NJV j:~[ART+ MEEL)Pq:alz=ʞ{ʒ_Y68 jFA>Ӊ1AԨ&!a*jN2)05eYdj`V?>Q/*4maa'fU$ONdS] *J1K LEe" @Z7B+v@&?"yOMƶg׆f|Di,jz[KemjA9*yu}}m<4F9Ѵ2Z=9ƭo]}wbTMjpYGC Jh=g(ԕ@ CBzQTt]C:p]Zp,. 6-vjɋuI%̚VoR6A5TH%xF2OALs{X\87~K׷ K3aYb+Z81FE3CŎى.KU<ryZL q4e<uݸ`K,ܓ{<sMAh](df C d\5mo}'\ ] HTU9gFFt{ݷϾw߿|s"K@uu|ֿ_uwᄑ5~0޵og[v$y}?4'}No?f?`ęF=7o !,p8:O{G|~޿n7F89xw~~``L]pB͏\q7&čƖ;( [O{`OEi&Vo0Zuy~$yMgbT* RY>8>YAz;=`_2 U#dz<:lOv$aߞxtNuJT,a]+[qs|rr|ޓ=Ƕ0P/F%,50"N|O7pN_w׾P+(g+Rȷl,d̏DŽ2yޤ?T/Qu1"׹Fs}_^Y^YY)JI^5k;;kWJ뫼M 1ZTl>GLR>\Tj1_9D3>0s s<;5ɷ}w|4v' b=w7~xwLSX@%!8i>2o[oO(ߙĺm5+%#׬\XD1i#_0ϦWR |r^sRT.*'gI$|A7g;7Z\T"09WaQ)!#ovxtس?{okF~_ojۯ~esg}Ù }_(iWzy?Gw.^nwΉ #S=wB暹Qdfj F^35bI"9f2z>kĜH:ߥhT 5fл6L!}<@c8z>`ppl'O MfLobq 2LA؇Oe2("Hf0j c;-Xʣe8;aA$'!yQ<|~ꁓy.?1y(9a1? Β$sOx*Jfyuujysr9Rn+sb0y0jH&Bbϣ@y ^(dR9l2%GDC~xn=djQn>l0iK}_ v;H.]w<=#V2t?%"*"D/O&Ţiv,Xsxe -gՋJi>ٞy _L $u'Fw ڣ~F'νݵxƕLr{'9#SW*FYlUKrUuZ^CLb04fs{k v8-7KjZ+;+it3#O\':ܰZTjr%r f8024(\*k+r1B1 @;?9>>-/[ȭ$ͱ&'v;'a<Ńώ;7_YQO͇8pLcG{|~4 cQUZjQ6E97~[zw"BL޶C;pNgAI;̹yczԝM?wG}u'n3ur]N+&3 >/œ@gӵB֫Z#qb~2=[abbJЬU3O3řjn=nOƑ%USNumRZ5 {?Yz{Q܋7~~dgTK5sZ\r,峺vA#_R:?7.OKtTDaȩ 0r #g-tq_~=WQgw>{\N2u8~njmoW<|ol1Qr?W}|\|k_{˥:sȁ9P>յ)G]OM-8P<^PP~Y,L\gl 9A rs/%"${=i( ϲy~қB cmG!5B57IM/T%VŬL~0Nȍg_U\.WՀXW_/$r+"R^_ŢcCE>Wt3t?_iDž0 x h=t? >?Ods?sïG3۝ ߹Y&xe5Q{Z(V솃`Z0V)*j! {;yo4s|+? :YN˔zU[bZVKL!țKEo4|N?<>'6_⨊UܺGhзl^o4-MG#_ oqQڰK/B@C$OfV?6K(kZx8NܩO\Y/(N+u^u[+&,-d #W.k*Q wFf5y+ZevyR)bApnjW8/hf6n8L 9[2'~!7W/l]9Ü=OY3p.I ~sO4l&,+|!_7NtzտGipհ??~7ͦI#S3 hd@Izև#R,_(u7/- ޞzFcjIAb6;Y4ASѡZHX'=+p_p)deX f.I"Uʯʟ\4gpϢVQڟSg(9H4j?gw/4Ydc{ ƑYT,Ll6Msf HY-_mWjFIg=9i'ҊիoKoEv%3W+i CkR4t-J7Bd p'+zYV&|!\u04~WlwJxkgM7W0|99fNQ|zn_rn7 >O?aW_˿kyn //^?g7t3t_k _ZZJ?.^;3zno_f3ݻwQn|ݿS?SF#8ٟOw=O7 @g@bos|f!p׿%_ݲ￶gXڵk/_cd￶g6=;;;?Dx8S|2^xy|s4m0 Zꫯ2JK=g 3x"*OVfQ4ֲ__ws#40_Ϝ;ow>FT|sydzqdMt : L*j~Eu3 d >//5?NW=K!vzkێ:Z-/XWP">d [| L> tUDI#WiJTw@wv)=&IQ |gb: &$ZB^;R ]O7/׵1~ȝ-kPk\[a2qޟ]w_]Y6~{0@|F\-5P4 SJX:'΂Q إl~tz!gy3T:tyNKb2$gftY*PK/W'ҝv錕gmPa )g3@EG-4" +pi h9Ι2a4U 2햬) :m G{QؙYq |{l PCN)L#{|}?_o5-X?/}f;ᶟV7ql75g"GTQy\k={c]w0"U6.ZٸZ6jVXDhOГz@&h@񸉚cN N_#'4~׾tµo[Z.om=R^.JVk[DSv xz2kPBb\CCէ.IYGGqRa 8M+0 q NYL9CRR\xAr9p/hMyl^MǾ7O~s5z0N܌fm|ܼplIPjDW(; k0/~+rs a*7۸uBs<FZՐSqS#H Sc_KͿa:/dc&P?+bϫrnHV/ f˙շ~Y`&iTf%V0~6kV+ lZָ乔ϦXx&lselc/DiXHG4\cuzK0rF?fz\tIsUlw'b%D 08~ /B"X 0`?Gs@mgY6VΚ"l-! #=jn0%ޤ sʉ庀Z8]Сjeb &r &Nױb(/ցBPOVǵ"3,nd767T OUin!z,ڊ:F3N޹`?P/{!,qͥzQ`S XDVYD!sLUI,b2a?lxZq&d,P$ E3P8],u|EU+" ,!S EMLA0S%\WMTA qGL#,T+jnϖAS`vR,.@|~GW_E$|<V J^]YkTk%xF cJZ*@!#oeAnvLehFkeck4M։sɤBQa=wWz8Q X_/*vwiqolmFaW+f} }, \'MX򏝲  r"rHE"z#4VQdXQ͒sdLFoicJOpcDS ܓ0LbhAP)a ND\ P TlOx,CC~nbZ^ڑ &" ֋\J I=z>xl{I4k;I 2q1"ok6.72Du4Ns Ӽ2lA~kE5|h T:v~`=G\+rQBI;ңmx&45GQ,]R`,F /CRɇaQ r(Q6]| ~D fb>;߽ Ҏim<FCo4` %UB*熪 ___ 9Jn|E3ye)ʼ@ Q!ERIRF~o[}8vvudY{qȳ - ) MEr,K^sT T(Ё~!I$Z!"9FH*&nE9>dC:i'@%MH# z 0X{=ܬ\G:'I}R,ޡl$9e@l! @m@H:Q1 (*&?G~&i4#o28#o2<+ )}aX'NhQr}=w-uWc,ɚ-A 4.;KΆH(yPƼ0tI"x#@kJT5g_`gl\!Ȗ$.u~ȏoZxlY?;pch p-DF_8w4)ߕk`P<H' ' dzEhkѣ?vY4,q/-U",,|7>9`;{9`?=3-:~ʥ$\rB@Vyp?JL?r'ǯN:i+i^vك8h ǔʳ]!MZ"^\Ӭ$" s?AF{&A5Y1 8[DN"T2Q9DĘ ؏sB)YB" o΃~stbȅfAF<5GD4 )}+XF;I5#zZ(`g$K" (A+"`y B2t &}SU 9G#81Bsj[#幎f8 ' Qv>쵏ہ=/䐓g4[ V `XB*Q!^t ,W1N{{< ^f:g|0g<4HI䘚5l{xO>~!h"4?#j)ʁ)9ShT&_ʝTha`cWRT[6uX~?@U ),58M;s@XC dC;궝Go޻o!HꅁLtm3F{)Pj'V8zp^MAl݇o{{I8~iTb1)GO`+jB>[]id"¿l T]> ΁Aڸ=\__0F7̌ܪCsőaJP[‘m{}|<>ukB8N>g&ƚ:J{/ 6"wG_"Qq_*= +j=ςRS00Ty1 28*+򥥵Jm &u1  }azKvfM|>aDʂ߹GvC|\A$-?!#m;쾽v Ly*B >kn=)xj1c0B>#$Iug/^sM9bO*TLI',B H.b0'"hg p]~%spruOnwlYcDSP7)(jxC⧾4P^t?* ${w{Ǐ&}] ֝xav=-$I%$5>y{?xn/zV hN^N,Vp"O wM߭4Wn/m|amY,-킆wqB PPr&Ă'OPpQ І"S7AN~lq}H(hC~0Ff H6(MQ=28c/s&Z)2:>7>ãz$@nhZZ s!Su) G8PrV,jYOûq41$s DLܔKrB $~R&}bi翴s+?}Ro!w,BEօԐ2/g ,XpS TuqE]NdZiaSZDLO Vx99~(Gಜ>{x-5<>9{?~kX.@dUldpLQ$p2d2ݬQ #N "l^|nWGjd& Iwx|`a28d&I8(߂og5nO>$agS HOA*FGX͍2s7B=5@jjVklTR mz99ļкEIșM(-( L=0y:6&xMKtL߄->K^钄4rռ @lt&.:Gu{; q67H+D9 >r2H8fBH2Vmnq(Ѕ ?9;s1teWq\bjՕիFTe) >@y"뤇0]=h"Z{!J cs`}g:F#:AG/E0NJiWD&|Cd7v>빢|=(H Ov?LRW4 zJYtưmi)Ydc 7;:x~ŇX 4ŪP[,hL epH+;_.]̵?vX&)Af7oU(("x f%FdO ;+ 64!b;DV9[#p%0\.KE.&! F!fH+d{>GxpxrtpxxE[m#kXOs%kˍ!>sI0rX)tѨU\`XVb(BJ1;Y6`fa" hQcLz8BI|J7QBl)"c*g$ e;T[*9-`*d<XhֈHeT9{ ̏|-e^hzQ7(Qf NmG Ұ( 4t8@ʰ {NW誑НH 퐳,x*Ce2uU.E^1y`"<2X(k#a)ld43CA5"Jb Fgh[}gX}d0Sl> T&5qpZ%{GaNVzœDIHX,P TFYf_/4M& sԂޅPsحhhyr* X >"&&rp;tVXq+ +TDf HPx >>{d׳`v|dQiEcԻ`?}6zN$}rtf-.Zfg9YztݐPz =5pZlHè fJy,V z"d|Q"OkhVl!'$å3@FH,/ciDRȂG%=ඈ%>cI48Gy?;.ڜ\j[Q>mk#:= <0 EA1q:/^mUA}G&N|P^g2%=໻v0'urM@M,Uvh2㰊9MY`0I}sѮ30g%X*dx=gpN'x_L6 9D@|tL*cMJR.+ #5Graf|K̜F{P@({-6L53PN,bi½zt1y!oTLuAA:#L:bp LajUbU8CM.|Xr\TάCbjCB% ^oZc϶&;k B!a{R=% pp4ugy6h%q>"˺Ձ Lq\LKc :Y-ϡ@EF+ ̲www37 -ID,<I4=zĵ{ROI$a`tQ0dOzJC~}jiS`}Vf5۽ݷoLY!-bFyz >/3d.j) `7`=[@'dQ4ЂVPopYLؔ7!XՖNz<laBBiZu@JYz,A_Pe0gf-j=yqz$*3G(%q1RQJFy9V uA{?=<}+xT<9񥉓fvrTlBЀTO"\"Di !j3} #5jv.ȠD\VO#0 #q8Χ -o8AetT~^E"9\r[QMZb/S ('}" F\]-/WMNdG۸F/bG4t8X,|f yA$=88x0cAQytYT|F-诒%tP9dΒY 8y7w~8!N;XKJI.bEDUs O$@ɂˈ/9C@q'Q`Fct b?ݽx|Q|ybw3^׶{n;4򍺹Ӹqŋe݃V+퍫W/mllk-Ө@džH;^do":KVB~ 5bH(6bg'8A^WΑL'RX4DS**LJe]>u^L *QUA(\֫E2ʌBf S9N8A; L W%slTq?C:H|R[ヽLJx \(֖[w67\-+UXþ4F'8dp|T*V NX,d jQ`ptpp=97>@MwBc/JUDIze6=8G=YYB>Sㇶ|SJnj iʨ l*mg-@L:'oS(LPa5]dNN&>T -:=ESӐãsi&Ⳟdj4+|nfh9Y Ufɥ,܇樕@ބHuǁ=a`, 暥vpj:f.jS-croa5j*R4V13 KyCW+]Q,''gH́WI0خ&K& eȡ b >H;l]hGxq'YL}uZj+#eḟ% CҢcxZ{k[^qFsoM i+a'A4 e!y,^{A ^ "߆c ks9r]؆ x>5'sbS?B*Dfc^*@&?Q[c^  ֫=jAQ<#8O$8ރhе8+EcsmōZR,W*rM3JG 49' ^L0zBG{>r$99Y>2": b 2  GG13Fsc-ơ;t'΀X18̂#} e .)a@Kw2?gT J矊*e}c 4r&T5\Mr@us0rMȥTP| i^Y#$wѠwd(`7Vv6 T2/Jʱ*p=E@>댝9?Y?:7Xl$8uʺ(-+-^lΝZj}ƞvYVZ5[r C c·ۛL<&!JiERv+;C ǹqgAm>M&F٨2GFJEQ(Z{T@pMPH "AXlx4;QLnQXG ǏB^7M8ɟ]:He)5 VZp.O!2?%Z5`1?-X9 q:o@Z^744]a+5$F5 "-pq!Z,u5DZkm?6Պi,,5*eh(+`~=6 '`D oA@8cá{>rsͣQ?edˮ2srKB{%RU؅ӨAł tȇb7ib C@'u*5q  (R0>/-J0]Jj )׫u琇pOzhrg yXK?d5{:'A!=NðZ*l J:q df_jTOaX~ {~nAΆJ"|'}J" >ˡX|b=_"12@%`)N|7y#p*JZH:2j0Z`R R\zJ/R=`!2rDK>z KQ!.1Нj\"l ȂΣfr(0PI\$8SNs7L."(2\ÎCs )ǹrw L}ɓX]{ilÉ'wNN3#@C"VTV}A"$ñ5B h؍ wwПY/A#"6tǩ*Rw_itf*KaP?/ &Ҍ'O} ;Uwro܅ˍ#}2.Y3,)v 8M|XI4;ǡ^܋#N–#k;CAgbCEBlǶŧhEnJV޹S֐RZaonćJ0$horzQ [.#" P%1HVpљl`F1Әo,=l=ZZz$s0TPX! 04 rx8yd4 Ұ Rv~,4,jb IJ >~/+d?w{Nw_RgF`!t G.8zǮHtT^Z uE tZdY,^R4@MmN{'Lf4f7Pћf s#O'@-+5!.94E9v!_g|f7FAǒ'{_/WoF`o-\rmm}Ȳzqo #GNnXeNw};;"Q$3丮(L=4z.77/]jKUyT)E򂨥D#QҒfqY;WW6v..>[} 5oӲ|Z &GҪ„"3(ɖ|T!GQ=XgT!"|WJZ yh;i(/ ?bNL&b"܆Ek)KUA!q#4pJ$e'X&y +7p!R7UL1 ^omJe`#lBʱEiȁ3HV %e,% _ (-T`цږy<ySORB,*YQUD-`-ٔs7S:ƌ8S"\1h)KMr}WhHeA@ I@NZ. 405:˵\]hO)㈁9;BjQ:A"I+S(B/C2ʈ^/o/\Z^lJ&Z e` Y[ /Xan,װgz1t 0CQ(bNGĆ:X_cP >~R`s.29GN83V=ρw'VR'v &(H;B+ěJSHP *Q,ͥB=ԬOHXL=;jDxVf5>6JEZ366.;8%SDA4elJ`))Ubҧ9%U"ɰXxvP'9E0qBjR4M(Q wAQyJ_fA']˜0q| FH߼@$F8zИw硐]5ie=` , / SgA bTh 8<[cMtVԗV Ҡ$\Co1> Ai1LCl Z  | fM؇ de0dOyQKRUJ M?>50}4Z4 xՊ^)#J&E+gȶTmVJ.vDԒ!Be&y+`4.~X$H$.¥`X5'Ȁ6HU-ժY7Z2Frz6r6.yQ|XQ$QY BU.M 6K3VVg |kJ/hz2/8TNU.%Rxi7R4sx~s8/_fBsJŀ/uc/Di(#7 b*7V"v?%L B4ɝCA@&JZ87E+Jh}YP<:V MUՂ7#O@cBל<i64*0rRHN б(R DP,qTx!%Y6qoV._[2MmdƣI?n'@4+ Z94awq/g3> Eo'咱l5eWm{؋NšOzX-eS+eyDj؅~ NNN\wD//-oWUhdfɑx)Q(>AP(mN=?a4Khdyl);, i1#˕rUy#)p_N9gpݰq * ykE9:!a>A|*X|S`$*3SLwǞQ%ƈ%;MV2Jsi4d̛(d:EwzlqĬRN(HT!1iGHvE9ڎ㦯{~,UEAү8"bnQx#*Pu OJs0H\Nͻpӏ: 2##T`t۳(s+BU:[gN7Da`|D3GTL0*Rr 2gZ$7'R7Fƾ;V{~0_MHDYЎ`v&'qAbV*ՕMPH,. ׵.Dj10,_Bg_2l_O3&]q'/!ե3 z.e_O)h>?q2&aoۿ[~u93#-9d}g^)@Ah } ؂'玒(0 j[c:h89' O@ >| 1ٱe Jn}=>CkM&nToπœȟٍs$ ]OV/#34h%X6KRZUKQ z+N냉 n#k>[fTe5(Ķ-כ`]TXcE 65v OM¹q#,Ƈ'vw<: ĵ0  &V:.zֹrf< '= QYs۶wuwGm"m{H )!%N"S_`uПőG%4)#ϙp"A9:h8Ã#ޔLF}H PgYx[u g_M읃Z5bYno`wěEq6fsY'1Esz 3I5Bv* )0W'OvCLxq7~߼{ 8d4 .uVT=Ї}8%3}FT3Д^oF} NP?CsFc~{B_?@BtS Ҡ!_|5`^qwy;>|?k8a!iX*O,E'+Dp *{  z~2J7rkZ.5jfTI9A5>}m'q}x|tC@)sI1Df/r ?*)"iqآg;‹H/;WaK0M`1r'~gփ$DX뺁Ha)e%@v]P`> ǡ5Ps#,J/5rZkTJhp +pׇaB! A`\0;mk]Yq56,6]؟EqN%uC?F'ݽs؞ǾB#fN$bz8؂pdTq''サu Lhb]+Ϯ)MQ4`?Sx3: =vYCKJJ٬7zfG#c:K޾5 'qs2"f`˾A671B( XS%DqNFݻ<ȳlq!+ĩۊr^XQsXy<%r!MѨvwޓquQQa O,6Y 6)aM  a Htb gJuieWPA&n|#%|8SaE%ʟBQy *BG˳Y8 , MsA Yezn 2$:R.u湃!ujNFQ?{]{8bݱR _XJ El- p\_,^@X.Ken;.\^_پk\h&ij pu|pRV9C1qß!A;X~[1EMap0|O{q9?v̼竳(~QG?)D"͍d)J 38G"̀GG}d!CC4c\TNrA@1BNȦb=|=dF\u H\Ǡ7X_5ַ\y[ /]t*$a(h`} >EIzNQOKm{8('+Z}bPXjA/=G#?j{1gsyld UxQr@J0,;@q (-`UBOAz)Df(`)2ldW.U=eOgJeIU޲y,S(YF Pze/ds Fky՛^o>>+_y|/ʗ^y+}>̫_uJ3) FXĊm]FԎc *@OVbɵ(*~@'8+ÙPc? ګמ{~Uzn7]~sƵB4& Ղe\ssQmbyyoi`8 #Roqqk΅k/ݸ|ի]sk\v/_qaZ\) =;'Q6Hc' @PdC䆡$ *H,L"(W*hDWk%r^kF8-:ABw!Eq(>5~,![Y(@  _rL.q+dim@ Gf?΂24ak/orR4K8%N±IحZAXXݼp꭛^}k>_z|/_~K^^˷7v*ZvlD;ҝ ,{SЍ#WL},F7V^ 2Y aLR%Ķz}sI|^J|Z{yMР9eMSCCmX(^3o"Gp8"zV;J|RN0@<$ Vd7V@JN.t@e&Ί`4 =;JKWo>3_s7_s /W_C/_ |~~kE!s,e2w1p4Cg;^s]u)dI'i͍^zi=áW_wD1g5ʗ vL6*OT j2PCH)t[LJg幡Ԡ= s#GtE]AL (sŜҋt[Yi֚ޖWwVV/m\p/|_k^{kWEGY(`(MSOrS:2GDP6Gؑ&uNMüt??/9<6Db P򢤊Cأ$;)<}9 piz|:-ÁeZRB2qE!?^L/(hڲl2 26dzc\Gi-mnm#(/ܸt9U6/X+kgKeI8=8 )Ҫ-` V3kۋ7&nf<YK@ΙQIh2η9B,s:gltCSTH'@[#S O1%}tZXiA5B򶀡 XZ\/(b4(1(IDRpfU( :"W|OKK,LsHn>%SP*ZQwE;91-,P─;oCó,`(_zDODPҕ(>PGSP@6 7 >4l3]79Q52D9#7srh/l-ol]ڝϽtg^~3wnߺ|aլAf0k9L>#_]G|-Ip:e,4B |+1 [oxK_?c/;gQH:Av Xڙ,)lAuaX8qzE\]9!Jpwǧkv)֟z 'd~|/010{"k" Xllׯ_\ߺ|7^u |g?_|z_J؊8 s#-QKeX!Պ`#Y8[#p}zfcS /Gڏū73Zva ^^b<qJQGO+!BG)G4g4&2s˕ͭba^tCDHU "_rQ,/h,/GAou| I;WfZt fTn]tW˭f0;u<#0 "?H:%b3g($ rJ]Nf{;Hbmdi(!Bô`"CQZ TCO c>H"/NpQ8|^d E2lTY V$WMjTC):ox-JZS^kUʍEAXf\đa{B*9TAr]K? 3yX0 fcQF-3 ɓF@k0HT dH ct4RJ%ժ6J4y W=bdsjKV󑚣~=H<b8=|7MD8.Eȏ5#ʏivqdCh1JSh҇V3؜Jl-UMTEq8"))"&&W`9u9jOaё0c;A4DGR[^W%\D[O r_Vpӎҕ $5v1 ȌE/j^^|SE$@p~NހF4f`xsemkׯ_ri{}Ua{2ui1P,1 ~ HKUuHYϾYZ@[[;zy8f֊ *-gB!4UUH*qD!u2`<"L2+pOd 3Z^j"nWa=/GRۜ} H@϶z,ӀPfVܔjA6P|uX֖7.^zڵ.l6 RholyjUGJiqp (&=,UF<$Op[61W$аțCi3/_M^zQN l n:R,@iWWZ.DnQ r9:=U^oM¯D.}!*Pc@ jxX)ت8 H0o~ 8'.g"J+hXJBCĶSơp%]}|@4V Gy{qR\6MS\R3nbU@VJQļ D\$'þf9$0~|A^!o=C3\`lYٌsb*m39(ZRVQ4)Ag8N}Ή[j &TZ1FVCqxfZR5$ǧY55+D>}(Uks5R/όfM|Tj0Wn-/7ptg@sa$b Cgyc 'x0{]qA*8{;~o N0?K`[:ͥfYpa p3,]P2t(9j3J ;rK2C_-~3t$o jDN~ DE5b H >kL]ʞ., e N ^&dTLC6hF~e|׮)_'V҇V*WZ/Γs}mIGS*[AP?Gauӄ+\~=vO`4^o.o7kixԲ<yRf} ʋ?JFipYё3R:,Gy,%ټSdj@~c ͂F3IWWrWn\`q6U0破;x?{ʒv3fg{r˛qXO878ZR*0ı{/x]M C?ywwɓא4Zb ax6>DPlLh֫ (-l{B69u>,E3yμ ˅Kha,R sau>b538>?hR.G_0yfOT.Q$^J,£FG W&^u$A$ ,NB\|Ѣi5tGujISDi-YP,PutRgnxP(p \5C^mLT /^U%BW9&>pKy-NBgY- +Z~;ַzǏwm$g]hpttpxx l(i谗0|YX`t\4D>?$ ~n)R)-߲. 8`g72jҨ2*@\N:P(D+MjJ= y#|RRԺ+":K^ <z~k/~kkK@>QW g Ct.^"1NR&GQu#\oZC 1IDATwW_~>-O7v?}oI6WjfY>MAI΃DGk4J8V1oN[R,67w*0AE $>83J#-Gv>|ݻ^6a!l-+dhjQ-D"HuZ> ncA&w%R֋4n:ZxiqZׯm^rf+T%ER LB空QD(UU6-: KR=@ՋNTWjҬ76VϖJ„WJ(}uUQ4KA2(;E9|t^4X[Tux3V,tE+m*Nِ2p0h%ҲEbǻn-UtҢ4i`+= 4=eA&|D ;ϪU}syP&" a r]DŽHWS1I@Fk\2bϏ eP\`^GC wބ/6>Q2[;\, ;#DZ6rք}k%xN%5 T}"@Am|8<8:ރ?QDi8!NL?yȪ3j6~?Ԙ 'z]=;z_iLS]m4x/,/M:T.H c]9y8O)~ky\ !^!NFC͏s* Mhi,=*ADC>\jq7 3)ZrlVWP?z|=#\@4aO&Оap DQm>4U)XSmtCVs?)J"BSP/~ʵ흵jTۇ <*yZjv^@&0T(ZK;n6s #iRZڼzn>ͭz5L"bh@fd;ܪdsI1IK MKJ#=#m88 B4'+jɇ1jO P@8ĵyW?jSX@MS3 >wͼNJ4V*eقFlAb 6l՟) 7CUpeǗ7`9%>0dLQ=yzVp#v4Q8>Q"!J2 U'@w*\SP(;(+dr"q :)#* s,ÐrykkKW\X[_'v],ڑt"\蔸K9,tj_|k.\Z[]U`0ݰKfNgf2-6p)\s9B;q; !^ r<ϳƖmqtZ֒l!N0b`|*1Krw!LlLJ 6B#a=h Bfur[Wז̢!{)r* CAq /+s`%m}Jm o߆C4\xu8]_YYAjCRA| {T)+lew dkHե58kA9[h)Qu{#`j"Uًdxyd|) 8"#6V`BB5SQZgB 0"'{ŕ^|H#)eDx.ͅLl(9&򭕍_Xy^3Ȫ >,45ںrʭ[^zŝ$XA8D(F/ܫ/߾~mseemy F]>$rЇlæ+UQS47iȫK$Ƶ_7_GR&aQ B#̯`+  SXhKKǑU"Ͳ<*' }aC壐>l   !]43SӗKW\^m2B4z&t[ (#H7S+S7ֶ/=wڋʲV0W ̮Tʭյ .]@t:N|(;K_x坭w u F4WDQiԫjFpS^)pG6o.5dfZW/_X[6 = cdKK˫kyOs1gM+ڔLRN DZtBf9 ƑZȥf*%[n]YBJTS#'C2\벥TOWHv^rve591rlV cqawnyΝՕU5уJZ|+/ϼz*°rN7bM8cYJdYGXp2zx㍼ "+_gVXc$BI aCd2I%92t0HA?AkN٧4e[TA'g&8uj)/V!g6-Ro2$I1$vg3UT́=,.\WJ(<#+Fre}bh-/k-HL,o9đ4)ZQXپt2"nXF"dጀƵk.]z0sO@MB,Ė?GRՕ[7˷ꫫk׮\3x1yF$υhHX}`jG2XzGi#ܓ!?ba/Ujn.Miâ<%dYT z"msИVkmcW=͋. /_&8٨!]-WMn'+c_pUFZYs2bխ;LڄA9И,{p t)+BVf (3ym*# pN 5aF(d:C,;=Ҿq|b[yۤl֚ō*bH pk W yw&mOr9IAAK.ر}+/څ BY6?bcS~h+6 3XA+&f C,|K¥i.]peeyLv/@xNЁxf4Ӳ0Ha,JfAfY q0 %mAT$}2y^g 7_Z]i  "Jy-~zɕgFRq*N"Sl.K?z++5vG7|a }=W.*XZK\f޺pag{{\{IbD/^z6\ܽD^^z >(yE&Xͭ͝iNGSx.A8|C Hfb!cRX^/>: #$-eVkR^=/26DааI [ ٔrN6[0RuW?kv9tQoNMA^(gqߡ E$FeseSP{IN ݼ‹.V^H-X&g ɸՍ)]| "Gv%jQ&a0# eBwE15oB, IDu: 95J [fLjZnj5SM4vᅲEQ0?#+\Uū%f66/ qB@,)G _%DBTUzx?5T#]ECn֪L")3dm>d ZZ%D=QBAU &`| g&!}p 4I6.MZbEA"ޢi$B*̻U2q-3m ):`/қtt!ETj0^x\Y)W\(@k`\vtG]hQ?jzq}s[ꍖ8P%A.Hos& <9+o2, 3/p.>L`O S}(9"X3)p>23}:φ99 jPTIOtC8wN<)gF\}_ʝ^|ZR3VpTlB䘧ѹ[LBfZբ4 F".ږE7Q3[`?Y/[e==,*B}T.5 =$ bο#H(GcI Uȁ;)<oHE Uೄ4Pz&.{vv4GlAQt%j-p障`A@\r^ܝ?s//@%06B=bISp14>/\m!5 yNiSvA$zy/rudm j3#jR)G`8l5|v*zǙLdBHXNFV &} :%uuހfeYZ@z# ϖ,'a9ZQeq<)*|&)>}Zk:+LKݳ*އ*8}^鍳yiW6Ui4ZӋ9r{*2O6-rn&)|pg7? mȈ`5h}vV@= IȅE J |E2_ j"?N!e^X]\^Y:L.3WBFabv"$_6'DƩo6:Xzq^l,AƚKhB1m53)(;Ƭ!>Kzy.8X b3 DWmZ)] wќi)peg / A A\ʹ#'XaRK6 s /^yK7n޹xrJ?J[+8$Q0d6 }d#]Z,If<_ ZZr/#槊CT߹X/e%8Dh:oؐ dH|(G2uZHt{aAfqT2Sʙi- (Ï:?0&XVjU Ur?]'rZ+^xW>W/_^AtNyn9"DTIzt!:MUjK=YؤY Ur^B;H° C/ų ?] /gp|>WÅ JS󆟎|/C~\%38>CRdN'\ä*R5yY8Ӷ9]ӝ +Kۗ{/6aBp;ɰM~/ dl>4֒/=ȏ Ǜ}?  YA+_7\CoD]\,$݊s *8Ϸװ|!'i2㜉F4٩զ[J4%B8`+8AaAL4zʽ&p"_JޏZ,5Z=.nP2Xa 3O I"E@St^v.]{3? ~K_nkYb2sIN% /%?MJznQ*֨Ζ_ܗcܺ7e}c O K?8λ\rjRgX<_e:'Rjb0-szۅ< ʃ)|/X|xt!4ťYRN+q'aowe%7 DMI$s, _b~ae}Vl by8pe`Ք3su'=iڔӞȐ=hK.]sy}c(Md15͊s?|A<7UZԵAt |a$ Ca: T.V<0QFR l3-g2d}v뇶3dy ҽs[6Zzku+7n]r,g8 w}w,w<'N r_ڀ 8\۞8VH7`"SØǧYNtַvw8TDB ,0^8tGJN_m_}_/ bCga;Ψ34W-YױGÁ:wI` g@h fby?_]߾dYN~(@[< EdVD4.=CF8 G/N/!()>A9u枏DiQ I'4ndܬZ43>G yLzE%p{Tk,s)),uA\FŬkZ p{>uOOBygfɒc Mb(RpK?c_KoJ5PB ̡siWC0Ct*<+py1aKS:"AdSxPN ~fy]!px*.NͿ"bҜLDi~ b2.s0Ki e `8l'}$TZYO*dSQ:r(Xu(APl_R!4L"H:w6xGiLLƋ&ݑuvNڑ (a ೰$sJ)R<.!E+jk\׌2%sθ7Aן؈*MgX"`)0҈-2J~w^|[/ml^,tsdKaW<[D3 ;( `ac G!i9GPYOȵtl)I" 39> irn??xr{g01`|9$0XQ0^8"GQ*FRT T3wGǣ @>_tGP}Ѓq#͵W/ؗ @?DfPً")F^9!/┙?wgq_9AGE"t]p Q—yZk"F[ӠB-QZɶ!((O? X$M`Us2e&AR4EH#Ȧ FVK%(>gpN@E$Occfae2q13adc5N >(RyYYz3_e5W͢3.)@^8=5@`% %a̍@{mLRfu`͂wcK&"Xb :(b -tjP$FpZRN/%,C-ϵgt{rfqZA(D8:!Fzyeƍ/^޹T6T D8Ay0 @wH~p9 Ŵ>4~vo8 @/rb{iŐ閐5rZi_Ad{0x8 瀳#G[Bdƃj[.%8ִb̕fZ9Lf`~hb |Y(Q8 pwG^ |N┙&A!@Vv֝/_tX-k!AϠAa}`FgpBS_'*/ѹQI~ ȁ8 NY௄ݳ~9߿O*Aws6^Et1V'`08[J׹Ɏ Wͳ+$Eieil*QVidbC54g,;ecr}!);c[ K^C_x4/H RJw)Bdaׂsd\$PcMTV?H!ȮXK@͡;B=^N@Ld'DZ=W(25Yr|MTѧ,NC {2a$yؼȠ**iG \*KKv/|SȖݢ¤FTZkOE0 Ohc>uN$FLS!\uhh<6zr\+}T޼pW/+7JaTdF)A7{X\ X jX ),i(6\`H-Č ,I;OEi|1i%n-n[Yu\NJq0q~8Uݔsj)ͤ+kg0h&GKԅzQΗ9M>Rm4VDA5ym\t&f&cO,ШRk^~֫_pZsS#BIb* W*;a"UǪ`C[nLVTWR@%`j|l7fSjj*DЎE Oz7;P~;ZS[Zyk@A1DА9O2xJV(m[ K-98yS״*P ؼ@V.-7||Y-5 *=KHU1Y*0NH 플͈ƺtH =y,bN78NH ;G2Ѧ_KS6 K#xH`r=ly釒f%4NKu? y :1`"sCy鹫7_ܹZk,C4@$Be/DIOs)X,j:UQh(M3b~/}4kWd:"STR_-[ffbEP9nwҞDUuUJ=ԏ&쌬GJHyR(׳z1/_]GJ]kRɃofRuiu}{҅틗.^t_4#:ěKWnr/m\Y,7Ś AOH~ uw!)ʊzq"-1k>3d(>!i-ГJ6ҀI&gx=k/$|txTؕH9Gݽap %rUvΗh3M$DZxPJ NMQo'8#׳CLQ oFXBTh( ݅)Q]<@Ys{ Xfc D m95F9P5ϫP BKTAWR%gH?p OmE9,ZcIJx? ^=:ghZ`?\^-n OS{(k=A϶qu7*Z\s| G!kZ0vBۉ\oEr _uD:"  Aa\XDW4Pb˶Ɩ5cBVqP:lFIY4fIuXwP!QZa)_(ŲYjpسPs|(4{U/&9=LU@@Y$[Z*e% + Tc V rYzllfg8 MYŁ:O\1g|P+ (*Ha:! Me8aCT2ˍFR^/`iRV.V kO~G/"gˡɚ˛kۗkzI`Aͪt]"'vJN?ExOLgㄓqPxLOseO+$* OsFfsy fY&pi}j.\.% Րls)/LyY!V^z*1e Ԫ--rI'ځ3t=' $v;'=zWX`rk9Ǣhj$D02+A$R <*:yaM2|5zj|Oχ5dy)=S{YG4~iS,"44PW] CZV? ~= ݶ*R)!"}4JKeeL%H=ruJJhYW+YJ1"6AWS.u )MI6П] -ue^Ci=>B,cZS@%"Oi)m \>gp`f\oMU)To(ߎFnw^烺"8qaUQ*P8A)fg96ol+7NcuK]遠+3ss-SgB$]fSU9zߧBϚY^EU $Rqr-M w=;N577;vΖ>vX(&ipR.b@"?j,#'3|?p߶axY, <#f._dQ |~g3Xi+K+-JAx8h% z4&]SJXZL+Bq(#iu%Y+?%^6r-s ,p}INv^Q|n+_ٽݨtBSqOgGv{$X2E塼ey!Z.JNulyѴ.ZǧG{2kNFNtW͆Y(+Bs\4ʵFTZ^Y޹Q֐-DP,#F>mrA` 'E e f:&?G!n~~eĝ7 NG䞒$Kb<x&&Ī/%R/7Kk˥R(ټҏ+I3@x`*@mh{>r BSZXDPp0*;m:Q7h_..ZVnj׳Y 5<ˣF8uRDi/ $u/@ _M, eo\kOl_ ^}əBPM39SM$Q~C;A-/9ҺhE3iICDƊ%%rWeuAQ8lo2z}A0"qYw\B5Y|s@R֗Ё>zt~SA`$Y U'7!pzik"c9&q<@О䂿zBFw\.um\/ҋ0==O˙ϥMtB :17'$<##d "z^$)E:f퍇^wqzq|xrp?{A53ȥX+ʡZX_o5@UPDF 63ч j'`"4Gzu5D}I4y!yA}.ODw>(i.%}!5mWݯ~&/-c㨝r3 LY>~0m]P)JSKBMOE!}1Ϲ~i >:O~O?G?p.Cma{pⶺHV/<\ysE9lnV z?rJDc Ш,~7/"l'+*Gqb{k̕gddb'~@bT6kfݬ49z0D3AD \/X7=gH):䓯F%pTQ{?Z^_\Nΰ8m0َg I.,яE)džq',8Nn8LΏ/~~__ٟ'D ߙȊ!l^,UJ`6Kg %,Ysޱv1 v"QGdpDw%|"qEϑ$~ɇ<1!z"~$'D)Ʃ#/F HcDvV9)+۽{>zg˄rY =MbOb}wq~??_w?H_|t0#i٢Q|ʅ}z# @\.,{L@gq઄l3)mMrN_Rڣ_Ԉz~ĉ\Y'] ~pu"ϕ% @QMţǏ;Xzgb=< $;t1ZAu؂5N'/\uyX]S0$[N Dܣ6@`+ˣ_%&ʵCyZ yZ0x(9*(H#KRiw׿߼{}*z !Y{|p.l|x:><.ؒJ _LNGf=?ѿ__`.dsh$EC ֓B?Kk+ϗP°+'(;Jj䑔_*t6hv]8ù]"U%e2H^SK+[mozcލzYK=Umh%w}}#5AuAcJXpf;~0:=9{~~?'}ӃN#vx#$i$!gB`O4" v"hRPՌ kbT&4u %WS'uT͢<NX|+OGv*"]Riys{ʝ֚^6@ cG~7kq^Gk:|}jXVflzO~_?O>?]oU•A0vhP #ЎbgZ>k3,8/m49L*ɐ7RE; +^} (/o/id8JhPBWQWh ,W?^+//ZƖ^-^݆uPCfh,wlOφD"I!q{ȗWZ\Odg?9;x/я>O/?ُ?g?GGG p8QNf!GA<Hg⬙ p<Ba'GgV`ɧ6=7MA:H(FAqqh<#/V*,ՂD  X(5)i"|?.GAGlXq]pDt]mu|^Q"{"BD DNLZTmȨ}RpOKc"ZIYKR\hחkKFZ˅P!UeE`ag8O#ˎ] 0xl%$YaBFV)\YC~ nj "Ts䆜d cb\9L^,άCEx2!z$$[PՆrWRÔ Q\䀈M}b'e 4x!LNӒc5a|T~xT*͚YVv+76 +GMŀڡ\==OL'e8HC58"1_!u-{ z駟g??'<|ztrtzvzzq6<>}Đ;J`h̐ىpbMET]*ז45-I#{$$Wd7)IBfؐ3xy> DCf^UDSTm?kˤRX.5Pڬ)m,#JK$Ƴq~9ge1pL#Un Db<..>|G?_>x`pux:A2DZ,"հ_yL7^f)m3fL-%Ԟ.29jc);H&+jp)2Sb"]Xzy# W2y{g?}HkSɲr@/k v\9|7zf4WS/ Z1Ěa,jWDP2p%6_կqmu""6%<~{ck{@ Ft}l&Uij@QQ\K^ !Mv[C)rIsR8Up0s™S =9X2Ph2@*ǵ`@G~mM\|9BeJ8V9gGU@k_iQ{$ha;05h{$9!+kM\ OA(#tu0UIuhGK.xUSՔ҉G#few {rM:k#7;Sՙt)-Ň mq%wZpӏ>g'~gl "%)YMɋ_\spb>e-HԲYU(oF6IO)<UjIɧx}MUE!!2g#,D2&!lJGĀ)`c\9ʕJ՛;Z٤d.$hrx>:8v3ahbXcOm]>{O~>||XM#v^d\F\X {N-I =7 2u/V7up2J`M)X'--&7E@$Jat-F>m6Q<:1^Gz#FyS c؇yL тX爻E9\PڬܻekrmQ ʋYt.^~D֔o"'eOyYN"kyg׆ZfFcKX0d!4C/z1C?Lp8lכrJS vQ=%pn# JI)(ھa%;‚YVpXմVu '6\IvK^yX-eR~^Z/6@l JD~[N8mԹ@n=1>ڋ<.T9gp>8-<]۵gl񩚅`=G|&N#ttr,/ LkBnMzQ`ϾW}nΕ.V2X),׍VJ!beB0ml=軥1R%VVsyrc\_ՊE,WJaCq$"בW.'ati5j>LHإhi13RiVQL=LC^^0" /]Ogb ֋gTHI:"񲌦WSFFpG@".–fre"4ci]. ,]tg"cuolj'KdFZݮܹS.04xtx:9<أ+~2X/Ol>9nuOώ|/N/N Ѡ/ (:kj}b=N\'|(:'d@^] NvD'%jȌ"E FRJ|w `=t+ɑr*:jgrQ|L\{irA)^d^LJh8B\RbkSuy%&(($[Wol7UfP)2˕B=,`C|f0A4v&,58kt ]U]vN~#J,O%HVk #6P:W>\ D#/<\(T(+U)lg\DQfadM ݥi(@Rx~q:=9c9=;<÷bKC9uM%?8?8?}\$N;SU R?WQ˵Ap|KW_㝯| 孷ߩ6d gE^D I g4/lMR"\ERD˙"3E`  MO@4X=ᣐDȄ) x>$:Fd:xL!ɧHTpC!w7#PF{c3ST2GdxlCڄaɃqM!6P4y<rהH]Q3IhO_)Y)pPhJ^4+ tU:Lp`)i9Ǻpv@@G5~g.<=xr:w<JT[-SkRiؠ^W8'{8|-$7L^] ;5Sw&tW:MCy'BU)@CeT"5LR=IWA EKKk+ dh0Oϧcg^%o@0>98WD]i,777p ztJӍZ@ªI;)x{1oZHQ:yNFњMi?NG)=@z`{͎_HuׄNU?IBvPV66 2rB !J(DNWvT cqu_*Jt|ZXSl6Bh֪{پ.J {P]DggUp*R|ճ OmU3跟+a{ʠ3=+w0yWPNBI \n-B~U~"@==u| ןp4I8>*6JwO䫈 -)Z6Py7kFTZY^Z][]]][Y]m. \K1D}l^7(klbgCMDriwn6j9Cµ'`|tqGxMoO&#8ퟟ?;"27fWFplӴRיʦmz.Es۝E0;>~4Oyܶ3$ {IUS8JA_m?2z%ȫv ʔj/) y_D+(ܖbk ʍ]M=#]P8l&Ә /\N-ߚ Dv|X r-z`7l5DU,k7RuqHg[VDjfuG>}>x>;zt0D@ çCp~? ZV,S +bj wH* )H)`/ˮ,loߺy^[Y_MOAz cC5|*c8,J^ּp/KV6oHRqiȍqJes@T`0Cd]x964?4梵N۞jTUjVP({ŎLhBR|~slO{eu|yr:;kw.;ȚX2uG'gV?r]5I_bҊt,J8EDʼn$Y%&|yPXj4oݺuݻݾsojtI Z? Kӿb4|!@- RF3,m;Knkpm _@IgD?!xDVdAWC;;k˙W(8'pn /Vd>{?{`=|㽃~!%hDjNdo-#i5_~M8lTV.6ܹꫯkkYPZ9|uMCؐ(GЯ@eҍT6תB9Sah1LOzs<3bm#boS`/de}}@t 8`*[+ u@DCȲ`3丕Z\N.}O<}#ϓxl:[!BMih18l$Qr _>\hx~6wwvƿ;&2b.xEZp"}ogbz*b1\"J#fЁn Rz{gMW}%(J`,KZuѲ{}MrQhwk.r9o}Wngt>Z+/28O>lgb ^[nγttx~zLh\0Z:Ɵ'g?<-ȔI5*!2c 0'!LJ<` . `t*ѧSׅbww~{SˀnreQ Ya 9hzpB~I_K$忰B׳|`j|ЕۥnrXM0A^IWGfR5X@ y44ACUҁ!k @ޠW3"cv|v]q,Ul"o.55XW>5&&'WCQfhR] =w>kPWxz*Q*+JZ"Ty@'UjRĸCA7c\lLQXnחb.kgvlBp:ӳ o2JF|~0.ǴG#˚ ij1WPԚB||Uҗ?Cta֚KRn `:/7R,5=>???}?>WX:A[%>!8ZS/z,&ӓ`8"`yS/̍^_[$Z*;N?YNHJD!/9 3ĉO/ 9Qet 5^]ݸV_^"Yd" HSWDgE4:}2;zrxzpry|хhݱ9L/:i}v>{th$$pd<ҋZ/Uf~zg/?t/z4g$:S{: HVʅR}{+CX2{B?;?ѿgßópFlXn66krϗ9ݏݑw|ރ_O?ѣNgP%D}VD:C(odJN~nP:+ju\*ool#o Wwn5KUf)@2,C?BS"`%zJ(zukx_w|v]3 QXNxଁ>)Je"+4g ˵[7*_G?:6ֱg󘾽?ƱS*oۦYh=@i`ĖⲜao8nwg痧m.)k?c-l'N>^qgoQȌNZ0y WŠ!,rJr霡Ky%#y{|ZP(qBa @jdr5Z àTSz)W\y8>ʫl߀P-Do-~khz\,Jh;p5 ,y2֍p4YFcN//xv+ R(¥I XgCh"-WKp<M 'U X. y0*S?JGRT`]4ӄ J X`W%-1GVQrN{7 2B|@cBQH?$?PM3APS3lk_Cx-1aR)--7WV!v-Nh\q]`(nѤ;cd3=8t = Xhzc@8 F|UVh!pΕй-EfPų{r|Mt0/` " 'gTsu7z8T[}o29KPJ| dHrVT_*"xJ:]f7x`6D޻ݺy3]' C1["&L_j),E^,b7ps{:qhm_t`Mpoe3GcxUzx:E} _/ZVr!R>kh>:N'm6ȗ I˔zHCPmh{˨" @wo e%HHu᠇t_`P*T*T\ Kf>a[Dj7Y¢ރ~/l%? HHg4|3əFugXpA ɨgOD|"WWvvrɹr.*/Dy'}O>}}X|?=Ãsl>2eLPWp$`c2U;W.[IIdhHQLT/zHSV E@NF2|ZkB~ոWQ#Jpᔘ5J3T I܋xʫ/1GټzY")TjȫT7f3r\F"9Ŷ'=.ZFƑX$7Yy1)'=GIy9>O;<=g\s`K&zXY#h EgtUACaˑQPRP_8z$6kbhZ dݐ9}F'خ r ,}% jZR6 #qۄ$h1{4APZ\< :%DC@FYFD.*/Χ) Jc9pn6@gG{Qk{ !pĩ<*tgd(PM *mZ>^lɇ߅lf;wnoӧO//ې, )B"8:G /۽i}z=8n==j흴N.{Wb$ɶ=E:61R MVzP@3a!z{(?Hy{jj wf@i:y9M6 ۂŪ{Eݵrp ".*$,~!_>wa`_JEȎ,hBBFn|G.! #9= =VwJb1wk0tvѬEEo׾'w0A||mY_ã'Ǐ bǟ>ҿ;~p@6QU&W.|`-&IX$Ai4{J"D2^K\k:@ils+UL5`Yݪ-il2 :Enwl}4.[qtl2Fnj_-ݺ}c{kw\|5|hy6nq*_4#MG?yrݟLʯ)u~ч??xppxqP:=#Bd[yX5 KJ5hfQ(Uu1)WD[1򅍵W~HK\ϟsb&G?q:6@3.Sg/饒R<*t`5bQWRY9HN9$Lg?7x9pX^ ) ++j:yX\2x'ÁA4hOEv=ğ?=88i_t/ڃĞW:ᣧ|ŃG{!,.fC U^[ U8knwqE*BkFV3|4=0){U$\oʿéY*ֶv77wJ:1UM)=xj<\hr#H+Ÿ0趶\Y_-5F޸!E& RHʰn3K\vF 񻞃3 %dHM!}A>rt xWs(! &᧭ykG) :.ouzqO?V'C?D e-V]/Ma jZ,YSpu(yHaP<)Hwֶ4.ri&Pb7·|t(!BCr#^SݖXgfҚYom5nn }E38%!0Xy`"ҡa8&r0jՍ{ܩW(;"0M8-&dQ#U^W?eӟ}v*Tv݃' ɣ*8$p)`)a9&hf4Kh"w`A{( W(*7vnݻ!ňh`} g`D/Ma6h 6`k~c3_4GF˓LpM&csTɼ4Yl{⹶ZހςC7ybh2';4A8Pf^FaՉYV.TE|׾l_<|vd{!ZBN*rѫ"nR %h%vI+Jjtqo}mΝW̦{o8 $(,v$xؗ%/Oö9bk*FլW 'Lϥb)\: PpĎ; Tzda",zREA<Ѥk+T`Z8`M,g4]p ;Begp`2Әp<|'vˋV5L t 02妥'Fud*E"+ W <|}fZ[j.7ˀwf`}956%۽ϠFQ_1ưJR5FVZ].4" "@C$ce_CӍcCmWkOmOzfQ>Vj`q`fިTP( ["KrG"&kɻ8Jf&: r sEI3XjBkS&_ Q<."IsM^Ne}Y3D3$ʣ҂a<+KiW#st|2"` B $PGoѹ+KR9%횓*yم? K ;O-vF|CiE3\^,Sݔ\=Ae N"IvL8B3t ɓp !<\8'D?>QaV5fYhrle(6ւPjY^\޾uRiGDExmW~5Ɂ(pZ 0@m`ѓGO! (\ :t@$NcTn4S AsSZApf"Fc~sʏhz~ezb}JBLN ғSnt4RNͦZ0u.:{uϏ NIkF0/-4 QnZLG/l%,I/ՃӤ{xVA 6@LSFn Sxp鯰{202dsyS@3CR-.J#f6ZJ՝(JM2$HzT7T/xs)Pg3Cp:k5S"+W\`_Rľ P˞N#˚ KSqEj+$b(rl\ qY\J9qGQQ!8#2;\gQ=]Àx*Ս]Dk4s\tyܻ:Ւu,j% OO;DUhp~q~x|txxtapǼC "k33(Ai/p | Sfc EUAq%Xdzsssgiy,3m\u ˤ'ؓ~QտtJ7|YnuZ\-o6sN$T$Mr:iƑ_ Fv{mdX'S m /8u3}kkT*{MUQ \cO"+HJr!b4ӣO]\^xp țLN4r\Q7jPB8$r?D p&Mo4~e}} h$LDCaI~ɵO8<4_ww]  '9Yt 86xe+v<8!-tOlc0sm :;؋t{w7YKQszTȐ}b=_=6ӳr>8GntUR<$P'@n҂Z*#aML˩p&6sSȢW<wV|w^]Z^fu~\͕{ uI<*b97+TE }Tf|Xzw^ٽU˕rYˁ_u-zbaϯBDh舝#`EKPHL$"!;)Op8d^uk2Ť|UĨk^`Է E^`fX]\YY/rnb'ϗ^.'ٜ/--W77 np^MR&U fx;xr s0y0>:ꞷb>Xmςbw~7hVjB4L=܏O &sZ:IEorzd`vçvjJw$%SY%\ P*B-$q%PL\% |ɣ0o| nU6voٽ]5:eM*P A] (W?wMP3L3 fQX1%203= B՚M9g` OQTf~~ Y[ga5 w_}ܸq{um}ee9o(jE.|E϶@ꋜ@rX0Pxx~ɬݺlGEp1%uM\ItZuFf@8$ح;OpK)0?؆A8L&`mpZoo!Qcbh_A0/K$69,!nS C+zhTZ'Ȼ8J~ڝqiPwG?5BLj,.bB.8 *f,TkzѺT._$OLOԯs?_=]MLxuFcdU|7tQ毉cMX$Dkff >o4ۀI䙎Ii6cfʉ`C*aR}DW3_ *'փgj\ǢT45s =$G{݅5MB*fOt,d# h{Ϋ[ۻ++jе%B&&/N)7ږҵ\B H//[Nw< ZI P#D^]D'KEBࡺB|[,#.Tt:۞N)Gك ìA+r Wy]":B H2F%$N0: T.,7˛ق@&46*CummRM;Tiy#flzG™@XSV6w^{wL_YI!] ڜ("‡6Ry]+yÀy3\5 E"SIW5i8A[k_ѳ"Bbc }I_1rlH+2eGT6xl>Y.Z^JfZC䳩9@X.0gtgCgN=ֳj.]2zz1CN^/c\TZYYg9}Pڞ8g~%a..'`q0=dJڶUbWTF$W0lHΕxOK\Aܷ@tb`"8z8 _CqEhWb;;K&)Jf,Հ"Uz2uQl :d>0I3qii!#5 <{:9EȩsZooߺsՍ-x¬x'm"6NxJE&\3d 4u;!3LRJ@l[Ab~s/pm.gpXCz\k4i#(9 f9sݠJ/1/f!S5uP_V?|ϵ9NW{wݽh4rB~~4![IYJJe`wX (d77< b=$3+c=t2|BJZ~#'3PZl¤p-VmbsVq}Goljpa}VX&8=[r\6^XHH8A`Ƈ ȫ"9&HC[28m\aŹ&BiQ <s2~M0w5 C̥U$ճK X> "|/U1|^\_FhP .)aSmt9|f4^1jT`xj|qn޼Y,6:Kfd̃SGY*""NGh8S BOr*IoO!Uynk6WQX`Y*TAc!qO]ʃ@0FNO'>! =|ٔLr%O*d,fvekը`)s |Fnjx>4w$7kReۘo/R{wV?=xL=򧃑5]_o[]݂Ajpʝ9]kݿJ Y/-52xµKNՅ4w"2XydD/u{]Vx.B^,sYh4 $y#/|.%R% AԜٯf|)Y+ޣzªhݝB}>.#Ѓ4E 5@i?4a༱TVKWnk90"IeRFv:hN\^ բ矞 %̹ " %'2 ~.G܎cztuV,)tYR9?>;pө5ڳE 38Ix2F_Ɲ\a}=9;12 =-L~e lw˃0Q8 _|oUm-Mk/ )΂`*(0%sn.JTȕ*뛀f-?Gi3S*Y0bzV.ʙ8> .L 4YBr'&r;RXp_%gD\[IBiZ 8RXn4R~TR:BTuBLDX%a $C]UᄧAo:EٖCU@~rruaHw|׳_C. a>9ޕ{F0v1RK\@h87͗mmV3D9Q_t\K^1S07x{z!BR9_,竍j|v_=׉\"hqw2.I qz ApX0(|Ip d-F'H'pPWgGJT(T\s;ZγEPX9%*WU競*a2W8LBpb1nD /ڲ67 . _|0b:?yިnnR(m>C, xuAͦ!bld,7j+|!;.b\oλW|vFa3X?G6; LRwkq>Y-j4AG S} |ȵ^S)DM|HN%~HJ3+gd|[~eDŽ_'\ñ̾m[kOGnpY(6 ;3Z/9;p4?/wU7Vw֌rڈW(xQ||eh|VLOi]zխr!;\ 00|nl >T(tk>Q#)E36RB]v:IS=&B5`'^0KRT ƴB֯6D=O =sB8|u fT( w:?h/NN.//yqPX n_QP|9x9XJG ݊A/??W3 5\ oԪ7;=ؗMv;w7*p'zE *rgf͝L6I7FrUí˕iD0ʢGB4Q0 +6̕7sZQ`BNoj9*ih mC:xw*oR.WhxF_4Oͼ({Ar0Z),:;ECZTf$3򚜤²\/ՋZTKz~J5UuZf^.PckP v%5!D$nD#PWD}xVY|FZ DU\}U Ʉʒ%Q^8 KN Soι"lJ9Rc*2v yK,SB^:6&|w>0a0rES/zT3|4 zl4WʫRSKii-2U#ku=[˥K7"p`ܞcM}sZ1a"q]@S~- G>ZfV9&LA‘R6+ᑞRLO+6B>MU p(eM`!oB|)Vz|d VO܎Lya@[F/OHb(iON8%xQ*0N+5s"э\_jl67VYrKj6q5*sfc>ᔝ3h<䘊kOÀSD'\\~OM<)DuS\4z7]HFeoܖIE IDh'QP* j6 M*a!ts`}{bͣA :LWHׁKRsycccggY]Y}o4 6g$zcw[7wonݹqcF$'WN׉:o!/K/!o4^:pa)4 YiWF Pjju(m(Ś3E! 5\ >cs# F tnLjP!*(D 1he 4Tg]GDŨ-L!" qD8 ]U~dYچz񅃁iQL@^\y).^4ױ€7Iq02y:2Z@~1W׷j7޸Z5 mr,*Z>Wf䛩T11bOm0gE;eZD,lob P_Bop l@w=4ЌmB_U~CZ}uyb}hkps:@A^՜6eEm4!Θh /nS✺jKiQ;2* 1C;卍mdhfdJK;Ko{[7+emY,;_-7ż7SR݄G';Re  >#݁FZYR]]YEn"K궺끿TkįI/uZ,nnn"d߹s \,J {/8 8fܸqƭ[7voV2(Ee?XOً(my'?ͭI.Q%*z8,QOh6_W{Fe\)[o%͠Dv{ [TiTޢu?\^JcK.3hqsl& f7Qdha7ba#ׄ#ڍ7xͷޮZ\)zvܨKnәѴ^DsIQѯ•@Ǯ;A=/OYd:c>V!mjYZ=zu/?ӏfQ(ԥ ]-_җrHnpdi,T{L.Y-kj\kBlg^r 5_ ;^33Yngь`A.J9B '\&c&|ȡ^=FLb$A|Gz^^BS叐ͥp=ύ+3k4wO [֫ʥr=X'Z&+p\N>ȳ9P :e7Cg12H Ck;.c*t\4=d4S0OAAe8='HurzRYYY4Vw_yg{R'P8*f튙_gK6x>~§/vT`"WNSEpLe]I@竫+;;[)˥C\pz5^D5եŔ9 VEyqвzuȟ#ԀAJfiuyekccks}myR.!CuS4_ {b !*٧\ZLO^Oޱ&VꎞKkw+vō7yoYZ/_Iggg,a*Rxľqs#!PGt6ggM}Fz4۩b\aBJywj0 &@veaQ*ϲCERT)Kh /د@vv/a0vt,B!t0y@f^.l˂BrM^Uz†_6}' LO"Ig3ZYYl6ۀ&6:9yj$W 44u6(+c?58B\TiQNrZ}CP_8ozkkVaZ-`Ć(a5 3;7E;i)&`gf209 zggǶGƠ0~wCxx2k\6jCI<MX(Pfr 9,̇~'E'A^0Fc\T+ֻ"dL6r-lu\Z)'Q(I3(Z&UAD9/mݶܙdWز{=/9rʳs $ttz`d1 Š(ZJoM#[5kMsk^kB0Q{aUGςLHku\ri(6yq#3hQNq ~x3M;p-V9&0! s2B)t !xi9K RvE"t^~{wuɴlQ4szT\Tn.>Li8g8$=N>"Z%0vXz8v}zvvxx0r3zT4<=?;{qu&jRīKz J࣏??Pd\BkXXF3/-޲DEE{iVxZ-geyy6_p!<ՠ hUrINln§, Bk5d7P[$S|"ռ B"B 3?ޖ*P8 3ݥSj4#V,•4A!]f*02&-¤*^|?_9  P)8 x?2ޒ5 ]b\VC),k%`r<pUʩpmaϭ Ĭ՗ӳ躤 )8МXى"7/.&xiw8H@EJ{^>@"#AL ~'/V&[ }Dtޠat<Pnj ?)"!l0G3tB!U*^ #phGrw6G  S HqZ)6p,tJ—2!  ɔǼ"(f:`/|A9z}H c8䰊 7_UDУ=p;SkC^bF]tR$Eإ'Ei9 L7 T<:l"D|M\L| fb1á[n@Yt{G19舑̴'pAP=@Ͽ]^ wlX,f1iȟLCqd>U BphN ԛړvp<O__Cm:C-)E*<+@fB #y@cyYp^KEI_K#\_ }+wHe1S|zfd .W$W?x<+s=22BzQJϑ$mv|./[/~#&\Ey ʁR[94G[Qh MEGp9*b$S~hL.Z>)2FlԮiQKA1 ;"j`Rt+r-[HZNWgY4v~sv1lutn{sQ~}c}ccV4u(vom՚Uz h Eg>),J:3|X j=Ճhc>8>u? =g"igQRw^w_o}뷖Q8Nmdyyii{ksnkc{gո5ޝn|ZYT8G>c>n?~j"ZA2B^|%ыEӵ'XBz|fsҙ, `eB_n6+vVgn.=ddZZH'g#&Cm,S*cfV.mu{'<zFlloη?o0 P?b=.Xӧoz[n߬V@Py L f&zɜ};P*s*0q xh;Xt< O=ztppB"-"K$=]$-5=8W$ObEB/4VIGQg4;rsQ3jaGd cBLY-?W63Ts>yOd+u@?%SJ S">C`df6UÞR&Ṳ 8 ds\8gQ Cӹ\U-s>@/e"6Zj6 kP \F`$]sv8)Ǜ02ڃQ0}di Yqʙ r|N GtTb ĄeiñpIߏ6l鞯[}RSE8K'-(2urGϩ)}t/c(_< 6y$7rB8,z׌0f:VZ-dܻyA0s)"ӊmv.=/Dn1PXr\ј$^i4\J}oLܵyp[o9d_KM}nuyiYߞXh{y7@7_}_ʻwwymueRʨ#+W0(Lv^(n2G=@Ϸ^y, %y2IuFٙ5SɁ)%z@d'1~FDF=J! 2%BKT~ʺ6.¼Ӄ[! ?NhżQ.j|kGpE)GVsfײ ΟG!8pWB_3LDa:9u3[!%[g:4B>y3 sly`2?;)wᄇ[.W}h,@ErMS7ldh8uJ3 f|.s2sUx*%ڌAfXE!bb?x?pq֭zm y<id<}Z2ڐ"G ʼnCf @C<!/b^Z|~qS3vBy sUq*h!Z/fH45YJf>#Ļc(jBЫc?ʹ*=P' +˨ !v8HM +_QP.ç5c-2?Y٦I(847b/=,NF0@Ud*%$r9puT`8:4JBWI9\Cd8LdNQ[dbHe,Qf:4_a37.#׳dሀ|KE++7o<2R 8Jf^3 #{|>lZȵ؝gX%:ƻ\zsߥ!w zIfs is.<8e@h:rWAݞZS3';C`"s \&3z2bm%0Y+fH;zY+r!wq/8hHyt -`94U<97<C|W:z,?g8"s03灣aQg9z׽Z.U fThbY+~bz /ථg^&n/*YihO}m846L/<Bׁ^er4­wnbeut]ꫯLlX=L8H ~R-J QWH䮐M$ ռPA g͡|4ʄzhսq= XT &VdpUjA*,kl׷\S' .\*S3V8sf(Zsl. φfe< it7x+//lllˈh jV"X׭{je J89SJ8Us{,N;!J>۶ý9 W p66Fӯ*dt^woi?CAǜItQPv|_JN/v3Zb:Éz)vlUOWbaIFVgE@le zTmw͌* ue8dBF Z\gsmloolln^f~ śZGɍQ/ U -H;;I[E$)yJ1p{Ϭؑ30`,uhc "MŢCI:)-|@V'NOvÇh/mᴈn|YԵkc93ߌL e=WLRpZzOLM!fG4[|;&\=<P՗׫kY$f_*e{"s}+3³`jT1Jk6@\gDĐ=G;Sm ek "ӄ r|;"&JD,ނ(w`Bi(n$>KV:YMO4.ל bj6:еn!Bzd3\s"Rz,oF#KS:\2tk̡RTsmNmٞBJ3u{N{:#W_}{0Z7+[n^YYCŋV+ zuٚ8cs5JyF.fZNA9׍#t[UrHNs6s=[6wKH >jt bl;w"25τEȳ,<x{#'ӏ>}(m=S)"3 +|hE7*/(`jDd̟`ol;cHC_n +3YߏjHsI&Dv:g ũul>pZ[:0 c=[wa0"<+>p0|Lfu=Icwvߚc!9&Ahq;> #ua p)]{Ro-5Z&aOBtz.[7 2E ^dZT[^ZˤO>(7 qĂ'tPtZ"}K^6qLǎc/=?mC |.sl03, ;>XCrIr3bb2)I)dS@xFddޛ0fw2f?ϦdHO ï5CtF բ0BQ2i :4u>rpܳ3PE'@Bik0OW9[E;,B+xƑv^ն倢l)[8 y3Js&tBc_hESlb&] Tx񢩝dVWu\DYe-sWo|fP~O kי:ag__>~x?ɟ~|z|^/PYFVrokgE__LF6W5i_x݋԰fA'8YgS33'#\RscZVQϯnn-7̳ƃNu~I{NxQ&5Hvwvx 7^mi}qy|xMzOG {rVwavYY=b}9q?C%}@E;ܾӨk{틋~w]]YIB/ׯVj= BēH|Ɩ E `r"Lyorp:NS|Pvn.̢g*@Y٬&Ȕ2`Pu:8l]7fN<@c9Y@H6jƛ cP 1יd{E99.<ǿ_~|rpй@i#"OײR-ñx:qGCK Nb9mĞ9, ` oʈ...:r~>kŲ F`OBq+llLVl2L'"z4 CdđÄ5l㳳3l/!#B)|e̕QI_K!< TqQ0mxn38 K ь@JHSUH#Ҥ2vz&7=%m(2iJ%a4ZJ(<Njg2E Gtq\xO!w{S^v4<..\;ZO9 'A@tß\j LZkת-,[|,Z9,sׇ÷d2O;mlzt<>:w->|~٠ׅz΄$]|V/,W k'c]oCotn*TVkk͕z]FCa> 'n;Nnlv:6H #aTbawo59i9筌\j^J-2",o |p{h|;G:d {m'v}ԛu>HU+2XNv+Uc)*@Qv<~jOtKdtt=:ZdO?G߿<=[Nm9x1|'cw:)諞id>au#{\eƧza?;9gOOրd&0 elf li]k,B WR 2V햊%i"jw$򫈟(z A L?Ы/"E5s|N35!En.uXZ t0j9xuBA8zHzB.f\m濹{iܬŒuY:5 kf8Ƨg{pӽ=y|z|{;=v}/&t0LгryƏ !9 38 9b\撙Q%}I/8!="F0qCF z^EZAHk"PSc Jgn-z2ͱ/њzn){ݭf^[g;8|@< zn{q;;힜tPNO'ǭ˓6vuڣ^Gp4{4hvh[gtQQ, :#s|p1^.9r_ VF@e[cxj߳`_a 30:C&(MHb2 *Vu-~v=>|K$H 3({+9}ڽ5CYdk눵Q4̒PpҦ6g3jp r\tV!VSƪ[1f Ǒb1 Luv&ã{]\ =ӧ秧nA;v#=\u'K}78&Yso|#9pq7iQ \&S̛g|'NAmM+X*rzD Lf[<*O10ڔk%xڝv§}1H=@MnlgQ==˱H둞hzQϗBC0 9` 2[Fz y]V*,x}Y{*fI z.|ksֶ棑nOO?}zO_gG{<|th0DXdmAB; ^r3h)4%_ĭY&p8.jnXd t^34>\ۡKA"-+Gx8;WrjHTY,{Ȋf(FyP\ 3x1D|A6"gX<ݞ]jhl)Ux5?_k2=ofg =Vn >DT J ]zOF›z o4_v87h8+ >LSRHO/.../.;N.҄~k_O]q5v.l8md6j5 ʤt@΍Y~C]q(Ok__髯?0P 0G=_,'R4ȓPݳUP 'W)jZ^mg4-[xJv`tj _]Oj ;6hԵf1aBB\.m'r$>QyiFwDE*Db6盠a #,R<,-")8bOX&G>oq 9E &a}|aA: ?^sG胚CB>+'w ] !p7&793\mGPgSq%3f%#W6sEۊD*x*]d54?]fr*q5 T h9q_vl^i54-Ds>Pm\ἴTʶ>dJ'* T呉y\.䧌Ys|v_wLJD4Dck=trSOa%tJbުx˛sj P'zOXA'3>lesEIS[+@ny)H@N4BJ#e$$\i09:hZn zN֙,&k8@̳@O+0\rE+\YG`;h jWJ3/h?D/7@gt:EX#qi]n `8M#*Up+ .j6y]%>1~l/˝[)On!3~Xd6kdj9qh<ԊZj4 A`̇=e~!ǔ2YșYz%۬7ˆeOpKB9Mǩh6 )le EZgB#h0umx8qf(8ڀ}00pmvNlHh[\s I0@ˡi:0 P\da8v?'܊MG\Z!׀_X6s>υ3tx",J$(d˚^7[KR5_-UYQIx]4­^ƛ17@K}<b\1[d2H``.A&Uvo"p=|t8߻}ջvvU“# IaT(p]Nhe Vb[ng1O+Ag ?qSzcޖǽ4 .pM28;MO6 h bFhoO< f3npΑ+֨mNR !4Om;"iu|֗o": Sk DX fYyZ m,\%K2+x"fԸ>0h4MkBf¼BސR59DoYcx|VnKۀxnMǭ˳'6fP-Q,qy 4J<9:=ܻ};wM; '́yh>`Rv 4? %>cX\7OyQڊSN T.N)p iYHBNH8CIj%?õ10E3Hu}tMmd]Ҍ_vO9( '$RX-Wmb=9Ql(aFVOs<13nVF^4MH'bj˿2riMr⛺&-e(TXUn%`.XUvSI`"OCL ླྀ!iOpU4ki2,*A8c\(Dut̖i 2P0M8s!kvYfzUԪ=SYrR8P8x@ŲבІG{l:Kf(ܾfK3k88 :E+O#<Iҳ9 s.muCa->lyTg=SnkSϥ:az{=9+#&`D  ֊. uCp΄y9` b{bb %c ǑF(pI4_Qఴ4SH]Y5u[Zu徣6w=T|.| x'n|ݯla"׼p{xr4E 'kCa9($;:9 =7fY8E$Npp<"&?<: td ۿ۟{.m]MU'^Nʔ Qd{`Ծ,t;o㍰"3EC`<aqULVeE"Y$hwQT]D| 0L4jMˁ/qmxf| hvky1:M'a0 ,כvْW|. [%-9b<[z.`F|xr?=9>HQ6.荏&ê#nB1ۂ"(d59pwhFG'{;㓭b;J"kGW. KlZžRSL~㕞da8x5HѰ.b\8}޽O?8,LC6XOaxx|xkܽw?^?w{|pÓQXrر |Q(WCԟ/”RU +YӁ0' KFٍ!XÈ#A|y,, O!~t겭85UPl!D䄛" `aOH m9(3.myU%RK.;:'j`C<'mTRrr3 _'cӰ P B|N4LpOg7c@jWT+j׹U\erxb릉C8htpE0 |r,q4ɲ, ^6zU.{2be 'CU402wM4qL"M1str7竈[4NfD`;>O={?|ܻax'%s^\(KW $-/݌j\7-Ai *40SGɕp9} _ϮR4.vt&pV隮.iXYjZsV]Lǁ@pPGhJ0I==`{2ZD;q~T/e[nf 0 6SBj- d8xZ\|xO}S O;{;{d\Q=|?{O}w=چEh74⸴GMVĒ9J,t bi6k[FI2%2ghD͎Uu,q[Xda( eA.!8i۶Ⱦ^ʓJCR`c(^1! ju۝N&Y+%"8$(|\$!lW[ ++}b.p_+09^Yӂ`ЪnnHZa 89ҢG9w"V ͥPxge%-èɪ\깢Nz ǤJ: MQ [se;S&SvkSA!w3"<^+4dtNAi2.PEm9$KD.Pdi^rײ4Trǩ )Ǩ>g9! ·("wg9qb#D hS/֗{R W`k2&h1<15Zq"h:۴\۴\[][G$Z+Ij%fuгZZҨ*GW/-휭 S+GmC8'8O@ui N_`X@Xג%;x{4N!Y%1;KjPDn46fi'],3:\0\SFk;ڊ5-@Ja ך,\+AjCw1Le`s L@ ÅǹP_>h+hA4й}cA4Кk6 g[ڲ^?Og5]|Fp syC z?%DFqCP5 s ڈ;6,g dXwpVQ䣀sh^ѧqJ[aRO#FbH,S8w4SϻcPPa}h[F6X'WƆk{oΠ~M>ȶg-KJPV,em}֖mmږH@@ԁV#ڰHX!K$ , A'"4`1y" ~hP3*O!-9%+ꌧ=? !3FSQSH$ (sp"}<^k~q̶yNDcJӶ\n{r/eF߽ܶλY[;c=jkr[:jY4弣_-Jː]DQ o2)@ITJCqᖀz$$_9 h>;'|1$E `jq٢4_9GT@5OH`}ӕ:]l`!X[z2 Vd0WE1닶# u=p.wVzݳK[k]k:_-NQhEY&GmJu6iU+K}&X6$1q=mMU?14Z|R's< ?OO8+%8 Fヽ =L8Aux]O+P UJQaħ8SmZ%`]_#\!'W!܇@sêf% #BB0E?Mz%,`,l-* ӳa~ՖZ׮ΗϴhiN~.X]=69yvй7]fv_Xu=F]\|D~['|ʹ!L8* #JG&I2>xu82YK0Wq-h ,ΘEcVOE,cJxH&b>kQ7Tk2⇰BqLÁO_᠄zYx ip7tLm[=ZoY;ezϾ7++kK7lm/-z>߼}Jd-9FECkhb~i]xQ(-ҨJ<1{h4u?l̚8NG /3RN?HAsar6TX~#<u1 DVd>Z,i!D8`)[Q#dUW8]Yڒʲ{{^r^Yr_Ӗy߸p3f>kt颫l[k{M2&.`H(<]"b,{F}eDi},qIqS9@^Lѳ Q=~nimXLsN z\֗tzwŇeް[έ={g_^]f)7궡^uV^I Kn!,m#xUjJs.ɁBa 9x^ל->L?~M*LyBfB@V`ڊ^_@ib2}jv!^].z@-K-s AdPtc3Ufَf-"@7{R*iNj,$*\d]+:iɅvszeʗ\~΅to/~WW_7o_Z[VZ<ŬrQ}:k iZ^edlU~!Ul1)s̓0HLfx6>/0spxgzSKEc ɚTJ!"m2/;kɞ)C}qZs6"%8a`?Ba I' sN!)\⁙_Wv޸Wr_ʝ_ݺsoܸqa`o7@떤ׅ2;uZeZ@_F0rFM9Ǔޡ9_wO|1GxJiy)̧&=+hcĞgε.a>^(Kk lIV'\"6Vbu,3l.X>jE3h:aJ.и\t1-  (\٪f*n-wWڞQw`e BD-gcW=^Ze0Ӹ[-ą[h?{g1Fys-C1ME0O$rRE|E}{ij/~j@]05&I&ys`ƫ^FH\*SIOW}V˱X;֍uCY֊iOh92Kfb1-\5IJlhfƠ=m;1\_\)7Hm8е 2,(L5)xD 3Os,*/{!S8?<$wmU%s-{rgږݖַՖVsf!pYĭ)dvFiaHW=+$BN BUs\V<.e|=A5й753P,7 DQ.g?ۆ类X&E m0İRo| n(S2`Q3cB84 p)sSbK7X,w=Dt>lWYϴԁu[^o8ϲplV G_+\IHh)LF=zpJkeBbNMKeЧizV?~)fu U,:\7R/ z4zT0aP$\̈́1EG$*Tz0bH%"K4QϡELrDy  +Nr/pQz{תd^ yyR5h+XV͹̐QJ4I: Ac˜' w΂s0\,O\?ǧ?(F==; GrmKF&\~%Q0؞{kРPE|?ZOIejVV,iͬJTђS6"3~FʔL:|Iӊ 6暓JpЉ ԟ"DgYv]_7ZX -ئZ6GX C L+ gE&D;8TgcBYE#+hӳpPa֎|(D ?XZmȺ\kre(J.{j˹_%nGԊTrC*]]"Jo\pw,USN75k g@c0#C F ܄ o~4bUN!4!5*cuڭVc,rUJIc,A7;zA3HVTs",fgTj`LEf"ټ?@&g[fM04]X@tDpomKi):;V‰Zb<>ov=,s-,d§jO°\@Iԝ&4̹j@x2it@?[7exB^F~r[%TP喹2:@g_GA᳔(C0$K*AwF RTB9ŽSw'. /4giy׭e8gZ'2(MdQ-[:B(RNqΓ4 \TP`1* izmU7$I3@ uG+uؘe/XRHt~O|Agj22/]=ebNSJymy`DOAi|:~T Wd)ܴuqVVʻ_YҗW.{ݐ߲m|?b%!$*!4pa֐|VpS\)}V`]+۠}]~F7mnrK9ҟ5Ⱥ0 !V>W"~F@ffcn E "2 N #B'~v^[FQ$Uc?p%PZP(-i<ӶjzCM^q(4jH4H^](z<peIDATT\YjhU얱:Xq0>Q݆Lvor$ Q W(4*_5\xq:ܓ$N`ayZ.br n-IK +To"Q' A"  頸dS焪(e鞿Իzv?^geW:KIwn{tזta'͈4`YWQdY;oAt% ON㶮Z~: ZMvY=Ugչ%ezoFxxshwh^WO@|iM_Dysʝ7eN~QƓeBસ~E9.jYݞsb`#M&;pk|d{$V ʄ"` DfGDy:g HAc@{KoX I5C (H}GTEuLt͘gHN'.'S )Ėy.|Y +` 6648@3}tn#hX6w#p{X$/H:)b i;bLs!Ch.T|W5$Cr X0`-4HIB=<9T- 1 5`M.w-p_X "sZI9%សS7Ofl[z+Yն9R1%,$# UZ.-?K4O,#)M0l'j5V(p@Դq4?j858ǫRdqk&S9X9(wdQvY #t:=:P"kfy9%U!Y#K49<g1@9sFkfUn"ˎ|.Zx4OCmꆆʣEAEx&I"2M1BӢR`Z|9 +c/2K:s`.2ALjiMK7,;3"熬tu nX//CQHcݮkZŊAB99aS 'p!*pEd5Ȥ AvUU \ޓ};i9P f$!(X3 k+8ST[ۚj V,3&Îq.6{voɃϋs"."SP1ͥ5 `}-=!H-絭޵kKnB^K_ZqWTBՋ4GEĢ8h!Tn%:<< iz >TeKioٴp#rSTGw\UW=8MRT(+1\ -v]+f~Oq"N8,+3ZDڳ=e%.ȼ*'qPfGIGIPDfO9jH#:tFĺFg࢔9PVTqzQo9Ѡ4xLa%v=~Yt-p4\̎dn1vַ"9RWb>e㹲Pa!EC4"wwrI`yv4)tK(_4m;++Fk\3{]v (d-ƙ=: <:T]fDFLHT $p1/S} ?&ҘSfRME\OwGl@-?3 ر"'=Y%G0paitКGfVGP!"qEsa [gŲsZ.k^ǵ}W6ͬ8woI8@Niwl`:VA79,PPǦmzC ae(Bhe[T-` 6!r3lͷ]}_< 'F¹,dIRi@a0d>ch~2(s!,("c3QY6ɂ#Y#%? ޹qufnUiVQa06 i06jsgbV h /2TCf`%*Ѱ ŁUgX T&R![, vjCBFd|'NV|0 4}dkiW%DwGQF vȜGt_*S%A3q^E&ZZҽz?igzwkXY 53|_g.kz-nyз7tQBu~?>vc`.Ag ϡֈHtӀ*U" D]8W3u:WgknRIUi"R0B`{I̧bP⣂{Z(yR#<^܇ʋ Z >[0vti?ל`UA86)U@%0d ڌv@|7J$Tx j==Hq찠85#܃[;FSs`([;^e{ff뫺unUpl֚{Ej#9lMTWDq\C:'ǝ{0{ڐ6>oVÉDͳ)h<]7]̙Z *d!̫*ݖ-4 qoox6ǥ[̼QN&RY^dPGU&5dImt43e'(4@`^UeTNa%մ5-9GU j+H0B(nL,fZJ5zDQt'> 緈g@w._67̥Yl1Q[>TGL NtTpʁl€gks4<w /A!qf(X/],b_cΑ%7tDg(;Thml' BvZ^o,_$-=8E$1m"ghJ5E}heQyz\I<9Sp?e9"ԖWs՝4sQ%$]9ZTcAa6"wE{ŸNv+o+W߶/a0zgvDvVQd Uaaƒ&q<Mr Wir-sl3LIb#3A4 Fl|Q^fL3NN;wt,k@8qC]ckPfV; h(4p oL%U@Yz^R<8Qj0\lb߼,<[v{`pƭ;7+ KuwF;3tϞ8ޅEbҿw·Y AdjN.Eŕ7PkMqZ9Fr׮ry7~ [oܾ}ƵK/FϕJ?S@Mm<;v`cۮrVbK6~OA {pZu`|%BCW s2J5&fպ]ifh@߈ x$1"YYkY` <Ͻt~7+y5I&qfr}rEo*eԎ[&(+Zl4#byPE6U6tv~\w)@^16g7`Axf{%d8S`= 7N|$}0U,nwت<"'t4mH Ő(?n˵^K^ؒTv>Iu > 0:00C$-Vfu___|w˷jz-;;&vJT h(4@sE8 Fy!zrQiXڦqs$sMQB+S&b|l Ȭ4ù^kJGb>LBUxaNu͙EdQXZUӤίu FCNJ\ MyB-YW"OrDhB$N_퍽 oqfiowykګIK2kZpZJeۏYp䝻Xَ?8Ӈe-@//DmQMI%l1?<:~t:F$OS=uO`ozlFc''uE+=*5gW0`|pLR6gL'1 5ٗ"XVNs%N&]e i msds^zMٸ[ OIslVUoT91K]Ck4~W4ǶmVsanY8P( lߞXw紹~߹p_߂*êO$DC- *5N\%A2B?e>Jc9]Z'"ɧWih8LC`]Ϲgm"J$F%}(x*(vWZze;|֥7Yp#߶ÿ1k_ޭ#H2(h3}{eًfAfZ}=5|O>>>ey8Ͼ>,u~]_[[_[,/w;]s!b(tdk(X)w젢6i}\z?ꗾ"PH$vUYeiօʀ ʊh䙁0*kRh~*XHVĬ"+7}nzIv ::ǡp44扞m`& Ȍs؆;kj[AoyC5h>o/wt5ɍ{8r$6ւܛң@>ie辭LprQo}sQ\뗮;~_o7|;n߾v+/_Az5\z >tfC/կ~k_L[(W.r9Ǵl˄q)eў83&kX07VSK]_pϤys/-Sgoh@2hGbo^pϚݐzz(&ӰdTJnCl&(#y%7!e0VBơFW]m?~YY^8 Zt Of(t  oO-BN, q>roȔ2kh}e"UI>@shIYVU/'Ӂˌr0qbp >o"4ˆrssPrwQ:ADV6 /ԼdFE܏/Tr粳2P guzeg)GQzZjgS@[dո6Jr 8a*4bEKz(nt:/|\Y%WWWV7:˙3g`eyPޱ-_too ' X׮eeYo7EUe`YU:1@؍o&#|S)h́.;{reB%<0'sz'q8pF=Oystq!qSpPIj{'QƸ]YiWMw{bVÅ;.(vz\?Wۣ`.S=3h8^jYm'IVĺ ^kykyΝۯr7n\vҥ˰Wŋ.\t:CCLV^oݺs-eYo ׅM(L2ufo3xUB) ӶY^BςbsaFQYZ0xkbL1 T da,ܣu<9EqR/Y3H.k&t(Ej/^w_+ʹ'G?OӣI>˵TV][= a: HK5SS%u|r|xU_c$uiy=4|=Xpw_yw}_W^}͛d=]=~u9|⥵5'|i8/Ϳ7_Diw)CZEa$%ZJͅˤrQ@P-!ub FUy Qn."BDeW-y0A;[A՟g^)KqAQ^iz~k_Q ]9힌h0|6=4c%.d.빮qZN?w{잤D;19G`)Zmفi*[.W^r3Օ~ y"+k/^zW^}U6oEdI{Go#Z?|( :(hNLͱ(2g³PBJf iaC3y6|f8Li++7/z.M.=5!isܔ$4X9ucvϮr}ouU!H(i͏ FIj?PRs vH6L l>G'''ͱ=6W7^*c J3캴(MS+]TT` gkx#<5CEǹdN=,TnX9iP\Af꟦Ȗ`Szn`3v.n'|  -䤄Ev3Օ,HKa2uA)x,M ʧYFbT3Quq`qf칳gϞۣIr˘_Ű%  ~:R\\iwLuMA6b<&8EX _^{2l<T4Gh2ˣּ%ns_]tڝ7orKK~jxKѿꝋ/"6J*B_wCiw¾Z;@iI䔥 95 ڬ̪`102{Ԭ5W`,N.}4x(4ݓG^ *]=/_Z+u<Ղ@՘+ J!qU.4qlvZFng;q,r䮷7޹uq & b&ꪬE+ڋI(XgVo(O$oKm~9}f}hP7,~Wn\w(M&ޔ7L,5 SyL erYeץ&*$4X O' 6bߦWOc֪f䵞fqeUNRqe^H,9#Uq ]Y#qs`b.l. 1WF'diBTr݁VL>:u$,?EI:Rӹ)Fhi9K i, 1+ g}.FQ&ADq ڳš&Kɥ]G;&2_UOU@) ZL3PvIpN#K\`ˎ߆C(Tl|P :`5ۉnK&ú5 T*IaᯙK+ $ k^zʹHy2: v7QZzWL6bcr8@%}ufW:^O] k,A$z6db<(ΓD)33L׈…nNv0LwZK &AJxfS~0}4 ?Š4+*vwF ;O: ttsmnw t…^}K t;q7Ӧ{|=+ݺ͘>(0ҐkKU*jsgZto5%gةɥX8 L(/FJZ!Yrg\vN=KB#NU#׍eHW* W ^U@F^4 + Xoj4} |sTIYEfUC0-r"V'G0<0>#88QZM!ݪ_Y{Np*1>@4FPUuvw[`q+0E0'1y[QdTC`{<@Y`EB[ϓ pϕ4㥣z=mdd taEɺh~P܊ EJهsC/ϰrgP~޼>W3Hxx0rW״yeM s 8VTn4\܇z◣^~]Wnopey׿rƵ7\~ŵҒz߿wǏ,KVpvGB8``muOrPE`1K#,UJELn{ 4l68^LH x@3@Kw8+fAk ;–Y5l}Rf{:8LNF4.NK:҂QPRU'`<(KbY^=w:{r 0U݄ZnO|*eh hڞB5_rsp@V{ӣ89E~Td2q͛ݸ O]~{'%iXTp!`ϲ ,sh:?(JC~(M*ZidK( <[VQix 8L<,LAix%-p1s(fKy:Ock=EEk*Eq{vo][*5&04EsAa0@l͘ xD8/6E8<{u8)4'֟@bD\$FmY0Ó|k0:gۇE(8Q1F|>[^t+_ڛo{յͥAӱOo&{8:."uub'. .`k] x?R7sGiuuX+|(d,UjT`+b 'l5Vz\2 ڏ*&V;S-USnCbqJv*;ٞY&ET?s]ݤYla\)҆?!(ռLq584Mɓt6F̖eKm.au  'C2bQ[wĸ4QCh#ӱ, ,#`KQss D'Di9J .)id>թ\PAMejk.m,]t3,)͔26b ֣FDin9w]VL([|(_^5T=IdÓ$yyy_Ɠp2s[^/͛;qeuC,pL&40Gz؎_ }uiBO'4gE22Ѱ^5 Q,pZY ל0 ScmD< ÈAPZIq"tΣaZ.xw[o Ջ=cԹMJx?EuWe6;Yl@+g;:] y4}{xp0?z~wwѓݏ|(x?.> ?h>Z$+/q.y^ EplvppуO??|xx+_kۿ/[^? Q(zOaZ2^j.!@N8K qz8gN'*iƅf$Y$FF|žڊJ_٭Lbɍ*;1UԹo&*}[> ''''GGGh;;[OvvhtH(s `sgl \fErizVH^\$q9u h4BEӞ/}J~v,Z؛\q*O# mDeȑݖ\n_{w҅[+ݕu;Kjpu籞 Pp}F(5q8XcSW625)ZӪp GLJ{n޽wnON>:84.'A\OIpiګ+W.\[-Nb6 v?~O?o}>7 `yy/~W/qǶ|¶#рpvC#CX*9Ijb@KuHQcFk`7OϮILnbITiD=57dV}vƝ޵W.Z>{}uZ\\V/+"=҄2Q{(WYt8%04p4 4)u glo}Gw?I}'>:~x{?D( Q<dX;wҫX[۴l7ҢO&;;;}o/lm=L3z~o7~ s|!wȇP9d* S2E42s0ͣ*̺i.MYkp(c &+z m\bjro(fe'\r:vZpϜ隦c(QptGW],g̋l̡@abo϶FO箘NHƒVN'Qό$tgE2M  )L[b^,{;[G~7?y pk1jn+KK/̦b j':t %鸴2R3v(7McOӧO^q\T(3iLz:LC6(2O09)`j4!Hq˱fpw2:Lxǣ$.2z(gϟܿ}{Ǔ25Í 0$X 5!B~rsio 5U-8Zene˅(IC8M ̪p@C:wS!YtmЊ݂ K Z߮{+` ;A[+]\̊|j9YO?ΊYU՞ZYv:&Gf VJp፷޾0GÓ'~߄7yxp|OO=xp4͖V0-W13N{< #ћG0ˏx՗&Jcn(- @Ҝώ*")E.%cX- Vg1p<.3ڮ<4 :*|!_=]Z[>n$:\o&g./-0eQPj4ljedP  aEi{ٻw'KsnI|ɣl1tuK 6U0E:-{ɓ~M*A.w&1A)Q|{7}ч|ѧ~;/0$CP}k1:4 Q<_Z^Ag/)_|~"QkDiR!PZj LP~DLBC+Akh /N 8j/b7PZ˭H饺~e\9@iڮ\6=8Z%$I):PR&Y 8xkp\4dِ<4oQ6im 'Q#< GZ~t4$,(wʎA@ki^sc=9b1"XlZE麞in8Ł(jV80@i7]Β:4vatH gpؗy4a3t EXzr' (*qtN&wrZ:mw-͢9bcZ $.^ ( Qq yTq3[K }4aHcu]6/g/;ߓ~V0(r0<9IrrLd5Q蔊Xvd7ƇI|a` 4TɓGw}z'}?~%œGa)P b{Inȼ(F̶xک x]^YzdILJXUELe2D賡uT|sbUa{I;.7W+m>Gڳ`aեe@ E S#vht6I:nY DiЗGt\Tr0:>y`\Jwz$"6jxQ9wӽ4m41  4o~[?|?w.> b1҅]OG> @7Z9]}揗Ҿb2`֖r-Oe!3pJ$k4H0Z `:CurpefYkK9Z펋_ܙaHqp|2n##d6 q<Rg2q "4 0$}@ufBN'\J8֢ϔd^gQQl?na<-k1^ʨ^(LGGwO> K}xtxt|1 AXhbXS x1àNG^E:z Zvu9{A@UQNpOx.%i -MG@s%0]dd/qn=Ca'Ip= A@`\9P9uWЊ#&Q8ʹQ+_\cl<7SaFsh< S9V[F)Ul?N۟ݽ8BuZL+pQ߻rx''ݏFQO3x/f\Ǩ"W:r)J "Tsmo\ۈAU pÎHnA}/:ܙƓ 8  OC?B#D Gna)d9YZGVtd|19>>vm%]YY ?Ae_|-p{1Vs=KETH0U 6-+ ;BaIE)%u58\ސjED!iA0yj\>}y%4:f4Ď/fЌG-Nv,jLm5O$}F<|~trrx9G Ï?xg֣G$lm=Bfro[7X蓏5V=o[s`sGikK˯]7dEcL/bH2m ZOG)"3`",ZËF@l?[\nCéfEdIe b|P0f9ы\F0rP uՑ9 @i.\T/Q$Z*BJuHE.f!/b+1)ǣ #1C)|{$gŜ]\hKxd-k$(B+RsGnlCS=uR`DhK_ ^J+H F4W]e2gsrTNqag?#V<&lB\PJsXv檒W2|@yQ$ϸl y< 5R|SYeBv;{݅,gvM W}|{KMzL'*;e|F')jL ,S܇`88$HF &8^TB4ɛ@i`:) ul}k\hRk|y Ҁ$ʋb& 0\XVW*8,pN9A_E[ArN'PO@,ھ'UQhy:/ik'ѣG`8w'fRL,EmesU!Qp} CW~u馻qL>sNju@@?G;W''΃t>޾) l|$cA?5+10'bx2:,é1wE6`.]owz4*ι DGzGGʏmjHd*GRx\F'y4 5*Ss9Ykj0g`3;^PrQ1E(4ӷϬqXhV`Z2ux10-2tIךsUU =R8ۮ7z_+2>89-\3w?o>~'4x7/}3>JER rʴΠ)U 5S<"rϥQ1,ip|);8͛y%8hl@,PWU-WFcޒ9%K "ɋ}θ`qM)c $\%S;/kE#K DTQYM8 8Wy`^ xPp#Ɣl2WC0:y Ė.t:?<<~ǏgYeip냥N)`?}Aj^Nc^b@4bYz+Z[3d60Y@S4ƀAV|R&R&:ڹuܦ\wL?@mW-xp̢$˔د`hnpwbfQw UEm.'I3I%G7F0g,ϊ04 H}?S4NFIZd4>x~?wQ&h۷okxٗXz4r*iMWL) J@'cED&bH$z p2Ɂ~Laq9z1d\q$grԩo3^ѻu{ng"tV'M8]C/ϹV<t|MR\B԰l~ڭ;8PFc>=Y{PFHl) Z`#~ow1`sҗK㢲 P8gUqDHU XHi&8PnhjZqi )JTUEMl.+蚧]m}ݸykͷϽr-- M R(m Qr}vɪ4ʜiHժ)pn,ELt'4Purʢw?R>DQx-ј88&mVe[N-YS"եk7֮ZzcyuojOh$A]70T C)VLt1DJ]dJCPEE-JuíT7im*`H^F\޴x q9jӽ~GN'p@n wvyxk4%^Z L: عIZ" s)hyD1MyNn#ጣ$ǃk^ *VmMNk~{7޾ֻ_kuYl'_{ 4ʢ5:׹6+HZ)`=:#U2PbvՀZ{Rx;6S\tAA !8qҜǟ7:@ G?D5{ׯ^+/on#h~#X VATD2R4;b"k ɡtg&O@AdapIJҲkt~`9p+v_}ͷտ/ꕛֵ\{6#=6sW@*2 wfn:J+t ȥ1K^nuA7ynKfy '0@)!2p}[7~<¯A8okټŗWφ}-ݫSf34V 8dψ2 ^rkW\_qk嵳ӂ bg*Lst.uz :AMc 4/MTPmN03c*HQ*FXAi38W璚29'ˆZ\ [<:9?xdq6Msy|o 8K+3ep{ .E֠nld1x mˆC o@iU|$Frn, ȹgTKY{|566n/_k~.\zerh床@yOUT;L( MA(eYu" rMz<9g})|o  =<l?y|? C45qyy~oܸtNby%taJTE\ ɥe]uY 15lc}bGa\``ȣtFrԊVrr4n+W܎w??:F>3Xт(!Gv}ݲQQSrY:bpY (ecW]r5DTۈBeiLjww`o{;;@8q_;oi\8<bΤ@4Xk j>Yc~ 8dP"@1;=Zr(,y֙)QjS*DlL&$<ڟQ?R֦TYrKRsvg:M"-01cBGVV=VZI:.(>^3WLfx|t|u||p{0~7,[m8 UGn1u$ٰ<<WVΝmc>o???|ym3jZЁ(єnA 4I √!PhoKi.8e|1 i98z(|9x'}[G )`n}e>'%G(27fw&Xxd#NdO:a(a!WX +9OWӨZM3mWc7-跗q"~|yo}<9+ݳ:ԑ+9'Cen P(PYne'* ɃGJO$p2E /*X'ݽ|{yhK/knW~_/_d#Ou=nZAFTNZN(8&qED eU+NuU\\6K0txw\h? &p"׮ġߦ*t*frmUDZX Cxrӕσ+ђZ*)(Le8/4 p]A@?88Dl}ݏ>`kh<1-s}}3i*Ks|q:HEH-<30 Tbhk8zts]dq x.7ZRKݕdU\z-VQxɡd6:s(T7'k|h[΅3<%E:dŔ Cm}cc*i \YZ3kH@Ux&<Ze2Ny8iB2\0N`'~P 4ܹr2gϕPZ:N?dn9D9 ՊdƵ6q.Ɠh~x&|vbh ZqɌL *-+rbGVoL=:~rxxp?$χNtjYJ8cMɇR:v=E(S) UYkb2F 45 +)PZ9GQ<0B Kӈ.h8>88w` +W?w|QK04 /psJj D"Z-D gSH PNi4/9ڟ+N YUV>KyK9z KAg9ѶMsԀ'PCv.KAJ+fjj$<L}SЬ1[Ɠ@GsbkϞ91xpozcsd23j\@! @\d<=<͏xa%9'n،IL&T͏۪Ipփ7whiU-va˝R}[k<[raYġXO<S,QY0ZtlF妶d>$&m_?Wђ4ɦp{gO?ַhkqhu+.8_:ӝ{͹4@i6IS.!$l6ևw?Ot< a O˨,$F#v}vW=^j+Jvw;''?HJOAvo}99XX(cGtN : Y90fjƴl#cς-ҳ@ygbyͼ9)%$R RBU 3DACK`<`2x㡩j2ꉷ*nihZhH2ʼy8'|<QE)g"@lPVew>޿y{ߟv2j\KSZsTP {fyl*>!jirnY(pn?pVI+ғyfiF1/\2vMa<.c2c$L'FSg4ڴ|{<=>[q%ZAq{3'"qBR` nОh0pGޝw:}v oLs8)îI\PvZ8Yl+l/?:<8z]'Ri򜪛ArxvZyBG<_zL8C6$TiI( _OA8NSP7ZfCXS1΃pHXQ$X?N^;"+LӺ|իWȤ=MOjlm]e\&瑒zZ! Im?QNԆK bZae CW\Y BV$lщ^µuiْuC6! !'J %?p/*ҬK+ZL͚`9kXe:a\#l6;9APuZewpti~4j4}:߻N*7/&d6aQ)J9)me>sƑŮ~aKݖ9mIkka½AlT}U]0׬fg_ Ħ|sH8OoJ4%S;ISTn4v)XU2r|ȇF1P\y5AVKN@vu*D#YMUUl]|4v`ȆvNRNC `C x"DV_}B8 4"M!dָzڷc / hZ##Hh9t:A qPGiAp̞B"Q yaC/9JiK _r$R%NE )|A4M\>OpaU]"Yܙ=@ Ǐ?u}Fhd۴< j{0GEĸO f( ]6UA"Bmh~A!j)-G I,.V 0%O5)H hZ<ѦAFnfVCY,o+y)R)+#^3$ȱ,=}iΕU _aјm3&۷(>W ߐɫ&?l 'i2:C 0|i_DEwhKz=.r$$dPBn=/hbC5}W6z2ZcRs[Q-V HauQoj* y \$tNGSZ:eSbZAB+Y rZN^9bʋaPwhx V͎ez `3{t{ڳeLVG O84Wɧ 2X@iHhϜ$2' b$+0rHekmf$|fW 'iBmpғB$?Oh8g N+ =mF}y YJ/rBpКK' g1!eFd5kzdC5YG$i݈}}.e]msv|p&jiԬo6חkK1L ֒XLuMjց5SeD>)X_Zpzǁ pw}\փѪg!#T+AGf߷m{gw;{;Q--,^p0 \;ώ(ʂ^0C Xg`X(M7bs]k֍Y+`_U굚 Ù)ZKͫɆQ#E몳,5X[dN$wWYّppyu@ tn!!h>//@x8L(h/A^8ȝ, Mx9Q>)hiNZCxF;akqihP(bA.!(hx<>8{;,J \=#sa p6<+d!l1,u ARD~$$(Zw#'Jd>(mLF<0tXˇbPχV16ˉy BC52tiVJG1wa#ڞ^fCȫg΃$`L#:B`ƀ Xl6;JU`Dmźp{Pcݩl {>mA3ldžFp1y@` lųA4sC(LL3CEhZ0^'W Vo~:k ,d)^!N>1kiRTF5Ul5^+sVp͌9z{΂k,™,i/䀎4t Ď{O:NZ b{ۺt: .g\H>ceZYjC}{Л9rUZk^Zhv-`*_o(fݨV'VQV0e4\=s )iK~Y׭}Lg_$x 75k\cZxLC/vڦ ZE/" 7MSbq`,,,>z!Hz8/O;xǬiD[7HU6YV~xѻvlnVVZ&}[EOY VELz]_[nl.+s5KiΉ":D+!MYJIPRrD7kb06dg#( "Z2%{)7oFVg[.7o,Z^Q՚О:dfNo{de[ :ˉT{~8Ef T-z¥5 1wvήfjw] 0PD舲p`!\Gێo>J\ZZ2^$H;bȋ|'QNW@Oe`pLS,vn pؖV3e2Tb\OvB)e0YwђoٿPZw֒+b STI]"WIan{d 'dxn?乴sl=$)FA ϢxG v2,/\~k|7M]|.b(V >(* j7[߉i s\N'ݝd>AfѰ8?bĝ B7B}m.ufiV2 Vi~`؅R%"i*L ]3q1\aKa<+ B'h0]:w8o6_Vxw_wu-ᅖ[SQZ,z3{69 c8AD bCG bRc?yaX^AL8!kuqc҅ +KKu˂'G;C q7|Qmu:N|7L8Z偖O< փÃ( `44s#Tb}ԁd5*4gpP)cEHY*%oR0A"Rt4*W6(x: kKkҎu" 7.8C4EɋD0./oܰ, u[^!h$?@Vt-"I!C:< ŅenU>.-;ZezhjU-SJN|D ̓$PNwz IIReճBUՔJR)q, MՔSMYHz|X˻U2^-b/}lX_huY!kԗJ lhIz=4Gz{qUrhkQK:q8&Tz_} >OZ%0w wE7764M6/WIQT8/$4C7UJlnLxtxE5ZC?C=.m.*t k g j ·Rmt0RF4#dFe>wȖ6syo Wa% ڙe|JR"2X!)Wle]{쓖6&@9`rg&ކ%9vEӔwK ?7\@ #6{`d}HKK[@l0~R~5 BN%f>ŢT-)RV_Z\F6BQ`OKk9"0U54FMR E@I! 2 J2's |? 2咯@Z> ^WM$fB/iGsU0F5o~pM8j2(dL >Nvni|+G8ۉ;5naU\ZEi;3) /'?*!j \<ׯtPawJ8,^pgťe0$T}yg6uAQϛ/(0L@5h/U4 TA 1'=O ӛNF)2oH XCU&yؒ#S41T/C]/v2||F1(sZ'E#CvA$ι( ~Q$Ίr< %5 k/?ϼaa4DH]wߊFVW}*ԉ Cq2mv̶t6Cpw$ࣂwtQd)NQcR3 ;/醤ؕbORa)iL "<IT ե&u=ha :R43S$&`q/:~ k@i&;0W 1sA)7bZ- h"E^huyW~G_/}` 2-v3+А*apw0o].6ąP7AU-Lc'S:-uѨ)2(!Sp P?#zQz(>bp(vWOcC-.YV:qID0&/4 @-3fai aq8 ;8n7pm8+-4M0i M(yIPu멳\p2nҢ ~yT1hvk}G}G~᯴4g~[v L24 L)> D O=[̐ħQ*J6RZC7,|f ~FI=HFOn@`gߒBJ4-5ڎr$Iq ᪴hMw8 ʧ-DWWop2-DዝE%&x=pA6uXP 0{wb1tD>(@ąqG0% ɠeO0jj A+pvҠ j4Ydb":轀G0YjbDB\4 bNjgvDs E) . rAʴ-,'Ϣ5X3@4?݌s܋RPyzF롆\W^ys/~{^k.\Z5vf~3ݨE^3u u6@oJSjd0Fu6{v}q奐04u$t2nЂɠ:V2cH析=`XM[2g`B5h*Gc~OGS тS7폂în8FW6ti-_\/,+M9)\hV|n"| iL>g}Eq%ʥ W]yW_n5qVBunt; D U)a lzt|_ ~ >&i %E8aט5lufSIQ&ghšͬu1̵!\:wAnjz>gօ.TK*0&K7̆ٛ9~8/!n,W7J(/~L.~eZG`_08tPyz -(O(>8(|ʈ۞/0[3 =)0C fP)1 6 h?(쿄@uF[& IQִ$V(JXm$]CiDf1k5nhhˈie7on w 6d]Z_jzyrse>u*cj.5P9\XH>خ #蓑fABo|!Ÿ }3,%'pBUC3 _:v^UTIcpzD\&qf`s ^n ּ<3e>]_Fd氆3;R,UUnMEtLnsˆ2u,')CDR:5S0 $E0w Il3d 7(PAQCUDe#E%YUߨt;BeU-F8i  Qnx8@Bt3$Q(x&Q+u&2p6|TXnFtѤn*~EZJISa6fhZ K ^"^g˹}G4PӖo,W7ԗԮ]9fae F}%:$ebP^V:4XBH b}EL( kW\t2Fp _4! EaUQhľ~/Ao`QkI@,T"OT?dG>4& -Rֲb)+}U3o0ĨXO/ai0,H6 є~A =EF!3iOYb͒LLHL S)-G˾{ng&. lcQ_ݨ_l^\o.֚uM9Zf>α2VyiZPBa- )\ҍ(Ea&yiqe}uQwV`6_^Y!nsÁy4Oq_wW_t|ǜ︚YCҤut溮Lc[C?@iVXq3ߎP ' dn&X$p5 |׃w=EQiuS0 U U7I|=DK^G{[6é`S\]U?u΍  - Xl\Xh۲(U:QQ@AJeJ6:0¸Cz#hƥWng=ذk׮#T#:zxʛ& _; 23w:¶^Ҕ3%{J%׭8\4yUCG+`mZ2ܸw7KP$`oÒ Ū[.T<Sw?{x`?ܛΆw}>-=[j+ʥuFu1qYD"Tf*_˫_~HTW$JqI/Q P[-.`zV;[ڕՑ0kk޹Jݪ.؎hy8!f>CdݦD0C4<mԣ5 Ω4dGE8|zd<PŃF(,=w<|Jl wHzq&5g4B%#@}w?=B֬hu%(F`n)"ů>A< s^xҚB15)`΅`،5]W&~ d!75۷=glF3{x^N|4BxJ׌YԑPGGƮRWԍ imZ^nv[f]3ulP"?b^4C,PdCkK'[_ꅙOAIɹHsl!' Ռי{)۝Jh2JQ]vNNg A2{¬=#:$3 "1`EQ⸞N^R=:G5Xŀ$CZƆP$|=űgm8x.⌢@`i-YZ +ȢVS 5 dNxпu[s"h7KkM qqsqeu65N"E U3Zɗ^_iT]i-5Fs9a$.X1BL8]7`Ih<lwIL&}"F╯'#hZ'ϗe'c{;_YdcNO@I<'PAF| 5L~toǙyGiV93yOtS6_]zuK77KZeګ?<hzsNB]J6ԯ^YYXl!֠l"A. l6ZƵZCUV$saIY\U{x0ay( ƪ eY@D1Ѥ{3iE;NVyW$l(={tѓX¢p#dx c[ĄWlV<%G3"`X޳xA/㒜'AG>Ύ7@Qgm䴵9m %3Ci2zl5L>fQ k(E1 CL1LSBu%햹б:Z]Au`]8b > J]|2,0ڴCdmX'M₋ X`)sz7|GA\F^`hEiՌ:ݔr`b|Bt\R}1#mOgә:npp,sj"?|I'(1D\pk^:S`13EZl-,nv6V+blF#!CT؏G~w5dyA\_-656 a4m4DeK"ȰXc gSyg g ,R2pN@A 䍟N^,wՂx2@a<3,?0KTR"VPɳOl~ 4 S@5vCQy<)<1b \'-8 Oz;{vzsDhR"[\^ҕ˯؄vu˗/^\XuZ"R'wvo==<|?Xɕ ƕK+>"3^f||wFڮnf "Rky!jYw<.t9F\I?Q!2ǻ "+kO@돺GpgywV/ԫ`V'7O$?a= FNG zr==D0O%b̆n7y`545g +Jjt`-n5K2 AEM5 1/+Q!am FI:p;sU0%.MNAlIj4ELiPL@#`e9Űfq޷iE5at:-RAp7*&2d&%iF;hdz/u+* ~Ńt4SK^zU!qƳrf wՠB ܹoݿwwwljCVJl=h>BDO O ;M}T9#UꎡT$d43{qniB:scX>/,hwZVhW, (QGF8%+vT A(ϒfyaY\&@w äM[ 띅O0*$f҈Y8@vPU *Ew ĭൢЍ0 F1pO]ݽݝh@e"B_OxFbT 'Oz<~rLOۻu6|}gYc=Fi$^HoYuhTp?;F\%Bvnƒ+V\>BfIbZIU%N9ZDrYK>H Q*[ aۦZ3@.: JnfCUim=h^XIϠҐޢ&e Pf4xУs 0s:12A՟"qϿ7op0Fx!7CQ_Щ /Ii+ցO8AD>zw1\PZH#Ъ"'xӱꠉY?MUoȏJO%p${3I[\.^yqiW7%L8-*yiixWi Zys [͔JOSQliI }B߳oa0=ۮ.%szNޚO:ّ hU )C\d<"SxBb<xWOPZꫯƁD[lK >V[m4h8FU  e\r8c> 8`YqжTPr*N9{ RQ9,<~G[[ۏLwIUЩ3oM'JQ<%|l UhZ8 *$Uiwo}4P8Oh Ց@gi<B!Y!Azx8[XVZEej}n.-Y E3TRT-,P@T0u &@>'j 0F T)SDڅStp 7WomKE8 Qyb:/S}X$k?/+ lg޽Ȁzg=P 2USw F8.}8ywwh:|xfj4-U IfV-`|= $hd ?4=RV2QJΏsM/-ѬvM6YuE5GHt/I$/ ӀMK WAVh)t+alH ZTyh$ E@x<4xꝽۿ~wultQKV lF՟H^x޽7zf~juQ3EyE93k;q7MQϬX[ ǐ,I􀃭vSY8)i 'ʰKiM\k!ø+EP_N8 c23`,$J ZT]7e''՗ĸw7~Y ;{02ʂ \Ih}9ͷy ֭t~Z>H׶h D!Fw|# {Lu ~O8߽, ~R$xO@~Bing)JdE' H]U"8?!iZ!!#DN6q%׾X|uF *i b`Ӓz,Rz& uK)-DG+JNM84~Pь^3W A?=$j5x* yk7ᛮk=Z. u`Ai0#,1ig`ڡ\++z`{ /DZ)+(-젘i(4hm` PJRNgl]|A€Yoy($a?Qk|RdR5kuu銹d TPY>+b|RYF ݒK88v{[ ?&SIzeDgnYcƓ@Qu]`zF "AdAIȭkK48G]dp3R QhB 0??~{h3IP,ARQJE-uUu ?dz8rMךjjir:jfC1JLP `x1Y?6$ODKB!;(EK:꺲&ۂBPGFN u.DA\)YQ/+ `Σw߁Y\݄?<:A/ hsS>?ୁ>|p]e2pF6͂W5 @:^!~?p}I~ɪ*u_Q ;߽a *|pjnX:0ouI7um@40(pbi(!SZ 5jv|V~ƐVe1fEM_sNn-z9CN(#_O*+E Cix.X3AV6ͫrc!n޽&Ztu}ǏǮWq.uTM qG㭭7{xu'65iV\i<@+`=xyp(; ^ $N]n{`={ 8/$"CHQOa2sC,_i r\,nQoVC&p2BGKܚiUF^הZ)_˿w?ꕿw:?WW/hFZ~# wiI3h"*(/Ѽ-V4W /ٵk/qT+?e^ISٻvt~Ҿ4a;-p`&ۣ=h hy'P:Z$hDڇs]@<m6x $+^QS_hTNOSFqŕNO} MW]^'̨ |[P() 2%ٟ:$ 9;xdiV;旞55 YycRli4&z47_L.V]j0\'K‹Xp#-e|]4PnaH7YԥGT"&]By j{s_VgscOo~ֿgV>k߫^-_ڈu+)AxÙ0G^|F^ҍw8Nl&/mY~n4!]li+GMC2$Y3?ṀipLA5)&,XNϵUH Tlz!w|:',RAI2 Mc2^'4RДI`ifcesg?w/}ybK_IV.{1E0ԵS|o=79Lwz;qIYFSH mFHTmt03@`K4}A- {h6G޶g=/ S5R(җ5ꂧҊRZM ũhb֦㔖X6 26\$\ 4R)\d|^~Ļellei3QHͺثɄBQ CQY/sAihUo SRaZzay-^b|47-yDBCZ6ucI\#QSUOK Dǯ" 4<ް;GQ ^7͍嗸KQK$n#f ʊ9qP" /Jz{;G}&~h>^^ -Єpާr ~gv9n= }UDUEI-D2Lh..8GPϼ2-Nh.sa }8qt4ƉIcQA.#Ѧ!pmPD\2>?yMh^xC ,'{Cc@lI羿_O8&`Y3yEF ֓@B@g"~drh0%-A >__MC<<ڙf[[qBi) 3P*pfYJڮuSC eQ~h&^@@tM+J0-|Ka MdzѣQw2gIr uҟi0c VWG~ҵwwqY\gѴڭ x0Nh=4 CM%~Bi7NZ &h~n;F\$= ʊ\ڛ#m4tUi|gƆnwi$p ZP%!u0$[I\a\BƩ_Syp5yi-T*Ŝv&kjĂLgQZD9W֚@&S{3߫ojK2IG?:AW)C?>gUȰY.#J~:u ެ赾 2e0D <\5hl& X$W"qU,5W؈4´+,k1 Lz T4I KenLkE/%,04y |C/ Me)DNC2E-Ձ)TjC1 f~9DΑ,*Ep E Ӹ\@j6$LFk0D#Ip9 nGGw@ d+RG*3AZ2+ pڎ ðC-KRTQS ULՍJnI%Y ׷Lp4P_A274˟θ+zQvdG(--_7 zވ`6@G,Q;]7-[5'Jp0p 3`7A`E=t5hD">z:O"ec2ȕǩyh:hptt _3譮PᑘَҍCqƭg.l0rQwhh4+.:򵫭N;ɲ`=՜D150{;ިYISw#w-$\UVh4x>m꺻e@aRa`U݀*m-%258E]H+q,%I|Oh͆@`"PkZldwG~z7n|hL67/sh5]լ56/9h",L0qCnyE̳;IZkȍ)CZvľ@Lc6wv+WHl1x<@wh le͔d0I0 E. )U)UfN%ѕzQ! 9?QmJn%r&dJIs@wx9*~ )tl:q&MPZ!WP ;oAOD8-C}.DMRXdH@4=FYm˺u'r^o'ۓߝ<=|0™ZT0@ <إHEUi+eհcS{4JUuA,ш`h h)c!p8) fWD4Hep !vrU^eADA8.p i/d.$pu9awx$!.$jҺvz+j DYߋw&ݾݻ||G(8d؇[RmR J#oM+~Y|A۝K._kmJ揦79m]WH8$hNݿ̷<E:U|z ضQ{27"<)u׉ d @0Os!IMMYQqD f\G),,cLkϼxNU޷0ձ.>H5Q]> W_xNTݑ Gfi]iYH!V PTpBXXF15{pxxt|g!ɔ!p ~xek롁K Hia 1o*[XCA^'P][ h-/z HKrpY9 qA =n;SY ]]{6BIs)A^`>&V޶-ka chmwj5n -Q &U<BJ<|t z|7L`?ol63I6|B? (Mm7Cd)$'K$ W 2D#y_MRw4 *c`gq9 c??pӝYhl #زÃA?OiύQeӭLR24$yEhh!dXOd.&7nŧ "Z 'itqi6-Wz~ %a )JrUJ-fV{qYJ+ה\i{cK Tu2HN\uplHSU8U =riz쇷Gán%y~qg0ybq2CisV ̃$ݬ:ŕҊ^o*X8 ʧVK1[f^oVmyh E^ ԙElmm2 6 (:4`ψضroy;"|=&aS(~rEKfAEFTF KZI@swiC`2Rk}hpӴ BGjJMi$*Sۿ3w7Ng;a,gp44;;:dJ |syاphIf[kW/_eK^Ј`o s܋<7eh:q@"=V;PExSBhh ).3| z[W Qh()#BI,JIAj5z 01bΐP^Q6 QP r㘛&,)$ /̽ 'x$MN;<2O?8qx3z.M.\xUD:Ψ eDݞ3u F E%ˢ1XuJñP "y\xA2t.QzYp2rf)*ըk:@jp"a%aZV\h}|#/b~g OoMDZ-WU d{^6zdKJQ%48MTT# C'OO?=O[Ŀs agNZw8{&qG) H2;Mt0<ةL '񆦜M4IU]t^BbbIh4>%UByW/>$ ~s&@4k}X^RE, %8ʥ,AkdGlu!P5QE CiB&UFLsAԍÝtNڵKWǩoڻ9h lo[P| <eQĈ X6)o޻#M7ر4Kj'=V6:(F~y+NDK 0'E} w:kWenIZ#F'v044 vdg}G4u04ZM74z C@40$#:f*' :S0}Γy5C/=M/;*O)l{<7 }W%XjK44]4(R]%?I8PϦS:G|%8g3~*?] Kd0 *:.7jI=IJ^:옱;"f314qxeӨD0,R~tnRQ$2{ntB;kӘ @`f> ɒsȳgAM.]8YU NDR$ܹ'{Wqg~ĚY"W>{~)#pHCC#ajEu)"sp1cy}|4;GURx^ γ"1Ru)kLh7p^082>*  ,Ộg`IXΣG㉓N1>!X K71rJmC!ћۚnA:vCKۦjhr@ 5CseQPy?qtCgլz6&)3\ [옗EMT`/ khZ^ 9Ej|P ~ɥ'D. ̶{ɭǽ?|8Ãxj+%:޷{x8*rQ-UŠ,67N}KL˟٣wTe`|$Ң=C{<,pBѨ,.,Ѧ!纡C퟈*뺂}?ؠ@iĨ΋`hj32d];YTaY[EqZa3A^@"ySL9)$7/$;G9NxKkgRW:dXe=Lb0 4d*O"9{[d6H՚eHs_8G$6BBW,x`]GGRJ Mq_zХfVp=]|:AY9|"~y/ pxw'Glq$u"歷޾#7y)"k̆apfՁOg3w'`ZP[SZ78-ugÃLJGѴӰi,%agbr#s! -,F"2\#xPP%ʺii * ͢(&X)uddEsټ0y>NLfG7u55҅f=.&6dqIWmȗ^zysȋx<=>VTQ `XVޖ2p߷C7RuCtu}ejB!Ӟ@\@B{B 4i$|0Jm;յO]l.i B).˅y0!/DPtN_wGmsskНf{߷<rރo~؞DY)r!FC0WUZ^zb4\22C M6[g.ZWr- =1j$Mddp%I]V(m[I"T"X $^Wչ !Œi,-6P%Q8`)d:Ή]& M}uXn[5KTL^;T=NNOh<ás4rƳx;z8R52J~N.ܪ# e[tiSW^$,YbQө?+pĵ qtRԛEpBQКҒ[rbJ i A`Y?fe7ݡu<}t0ս`gkOGny W>E2݇i:ߪ+kuu_Ri~/--I :-=Pm bKl̄i/Qx+CnXb/Do7CFCky2dYWM<Pā5n\Z~Ԑp1-cLD6)饧qg?:~ȉp޺?#?s?70+,bS/ eO/R{a1U]yz+.Y dUD^RB (AQS`$TF䘦OO`BCƣ!jh44*‹`6[5y)]W4S1ꎲӞo{ܝ=8qKFtooMyZ}ڍO}f{o;o۲iJueRVrTx^ug7߻x񣇏?xpoXK#S, ։n@n!lP9=Gnu€V-JEP,WY`>)!ֲWXg"a@2'Ƣ#`mx'?P*I1KH')8{8<Ɲ3O>$1?O=9b')^!!ۓ7UJ)ϓ3'M]Ӝ'I/LB' ];{ eVǡ20璒RDT|/(/,M27RE' i4漬s^Q3"'G/!R2MGaDT:h&D.GE0. $phHP Dn&A(|&QN5"XS9AM??3}ǙI"՛ƺ[zKX0 ":/(ɽAv{cxqN'q橋EOt&dXjߨK5en4j˖:{{ApA{<"-sDIiu^d^$L!1,jJ\xx{ოw[aK', TPeERt2!)S3tN؏"a0z. :EMCX$AEH',t:ׯ]cz|y,'e$#`λ|/c+ Ȓ{l{7$Wkdb.Bw?LYą֮iu]{(_~ǻ=}?htG 5MK"qLE-ܗ>ehjp\4CBON8)ƥy(!iNA\7֖+הֲ8'o ǃAwn ;"k?!Id+Keô$I h8~^WF&1~`?.PX!c'D>yOs AIEm*ȆeYzx}sauc3HAL x匹3ctrVelqYol|FStT xl9W$B3 .+\Skk`}uwMpc??_&ɫ׮ mdb3T(SY.y)B(qQKfy DRaӪyF!*~I䇁ֆ$QXdY4,QӥF\YoɊ^9e Ax`.<7'2Z (vL,ZkwZ* ivxx0r6Z& ZO칌J&KO: h`8?++Zm~wK<+4tMU8<x&eRB)zQ/ $rj3eRۦjZpGnڋ8ڋZm8=N@Kl6秾[~?/hO} O>E&B4#u^0L`&0: ^NX~cccmmU}*@^L`եKυC<ϡW^]\\'/.;zA^NGE/^ zA/'(V'Pvu}b *D'IS_+NK( ?XAS9JEQ } ðjKx`/=?TZXXt:z0`'*///7sa}`:  ֯5+A^LYYs/_/BO>A_om`fO;Bc?w~">>>?|?hnEӿ #2O8G~? nݺfҪ8޹W_֞hԍvni UL0ز ȅ)f c:GVV`~F5-.=z`S*i*ZcIx*e!^mAPF*;C_ʍeF_up2r2e 4'XL$ztS,.g$KRj57 |dmN(|H BP$΂ 0HhquuVA*:mDj?[!l7W+]5 hx!jƾgxچ>^LSj?JKզN.'G'>yⓏ݌Ms$ fYUi*L M3\+hmb?:I\eE˧HP $@7fe), JT)Zmyeymc(2 )Z4/_cS|J<5EwڵkW.]j.\l6[8"[D8B!0sufl(yn4q4 \> LXXh7 Y;FA8 |y^v_sa<ޖi5P;Mg~WIex~%>ApNV.8~VWkN='ʱʛCNFujG|\Ia#6Q|ڼk6mSh뫫k׮]]^^)3ѝFy<6}i/pbRI̫Izν_ De`O//nD /llxi7-}:*RYn6 p@Yq284TA*_XDK癚0_O 9a6{3?OXeyV. yҶ.)* @w9)r{Y>7՚ԨHON$pR3_ªF,py謈"6> 4K$._~3_ڼxmCngH8ǃ58Ҷ}rXi4ߛiZ2P.]z態+, ""E(麆U:+'L{~A, JWhW:=Xbw`(WT@ڪ8r\7?>ڻ5 yx-RgI5ڷ EMBpR7M|2G/->\)dmɍ!ʇ=YAӑDZvx98U4xo~[a%beoؙAPDayI3oIDVBp_ $e`Ps$mPfr8[Ti-$@U7/%^Ǐ}p{Y4XhI7lkFI?wwh+ErC9 >mxR9fXPa;q~ 'H/U$,1=Ig~l>SD,eLv|(v9! |?,3,ե 1zhiȴ&0Xę)!3\3'熨aĴ$,!`KAUXTOOʓB2ʖ^<bx'4Dԙn;;%?؁*`j"~;h!"g,c2l6@BIe6q죣xYYu%GS!Wvp= ;,es?Gw{,R_WF 5sPQj*?J@h L혯gPU +'ýGd/{\6ӤйZMuP8ih7m#PBTʷ?+m:\ίwBdPՃ(b/nEatB߳gHmU֔) uУO~">FyQc>Ɋ8RH[Cs9Db)B=jlq''́ϻbe$ZgqOZEfoolh*p"+2B-@(_3=ؿoݞ}g1korU<\XyXu< 8MD# 8-Yo:kFcAR5 FeNgb|ssQ9a%ѥOHs>mS;X6Qu :<{i.,t-tVN4gcH?"nGei u yn P|{Qc=:''΀WW9)}ɊδC#9P"BkQOX2bOP!xY4Π`0HB;d#7|? ' :.0,7FVGQ]T_-rp{%ykΟ虐[k4a1ρ;u( $"'y)/xMr't*1؆*g|=G}t+RGcM* U.!xyA$GݽǷ۽q9maK =V&Xja^Z|='g*1S遺 KMi.nVC\$&纶cㆧ=<Cz4=߰12/)Ef1Dzϋh]g w4PM!u?QS=,|6E܂JU7@ #$J{*$S{~Fܣֽ7;o'H\E?Q#ya)2i,fdώvo޽}^d&o(ƚm@BmL 'f*]?E~z\y•[["M3::8@q̸Sq ~Y)S* zA/C 2OyEdًle%0zZZZBtid%I3,Y8MY+P%4^n*j5$w9JcɖX4{t]cTXF(Ty2kO7FVW~ Mctz}D5I'ԣ B~U Bn`w:mx% `=B$՞p:(lSAsȪW$s<$FsTWyN;(I[p Fcۨ\&$2 Gc>kS_%,y8A%kwy|' Ɗ (A:nP+MN>˘rUWM4H=vݝGo߻p7j{SkQY>Cpk+&爛*GxQ IZW .~ ͬ&\(z$4AZOA"y##l"t2b290 QjcG2LІ!3p94Z]VlC18!$sb?('H'I4[ Nê|Yh EBjD\σӲX)ɳD,^XbOYP=z^zg3Gdc1N,Oh*E s՗?篾Wiuh7*=z6ڎY VYSPgJ k :o2$lz&Z??P >(ޟMaRuk0QH\O۝ U= w&e`,|h,{6M`0di4O'iu'yaff3 d}}}iq \{|hjykև x +CE E F^ɤ?Ǔ 9"Se|zσh /| `ɁԱc6֮Op !Օ%u AMO!R4kg Z R>UTC)(Fփw{{w7Eknw`>T%`$IUdsw=ryJUAr6U#'@XBrRgk*#ʲj31GJK_=/}W>+׾gan grgi~@MmGS)xj 'Ej*,ҍ Zx & P0Lƞ1fesՋ0 W;$6}O38tdڟ{ao3Zx(PPY R黮 /9{7qiLr@OZ.K,U41l8Xʘ %4M,kaaaqq\N}qS_v"@9a+fcI!/]4y N 8P1H@*F3 = yz\>/g@I*~̿~XDCwV[`8khz)F2L2T7U.IQB!"7lcR}35 HHZ+!B@4ocWbFĎ< AHGp\6:M)\۳p0R$p2iʩ?[j[>Cxfz=zHao턾I]h`#6Yŭ(bѨ{=>:ae"ʤ_+y̺NEړ17_MԜ|=T5T|=J~5$d2Ȁqj %QӼ㳤!(k7b%ʹ-x"ʄx,Js'Rk}"G9( 261rDp"fYt@QI8?G=#1l+ fK,wI:67Nlj!&I4δs{/jyQ:uzXatbYyd+ Ydߡ̲bj5666L$![i6L W&:CGe!Al%@i`6d}02ej@uE-l) 3֡?Eՙ?}U.wNĵ|lU Jl7[EQ,q=o6¤G5c'hI_iGQ8>!s c?0vF1*%xzt\8B-Pzz( ԁSx׉H{1(>|}]N 4U~sNtL&]S|si geezPNz mg˒;K*wUozr8;3wо?&@$ <^MOP[&7mM1u<߿w}ۄn0zGIK5; l(go}wﳽ7 ة@.*L1S#HZQH'؁k~GiTq[ysSꙧs?ǭjΪYr 6Ct%Pqs,8Ap3Q#NzӮx8/_޸~8l7AW/;Jbd:0;;Rv;Xm@ -zr93^RE\p@<+g A}ܨmT?iA]RhK.ɸ!XLH&RD[4lq"42W2raͬu,њmV5iUt`9x7/28uyO[]ŞLҩ<"h!+*rw^MqSsFO א݇r N_)ND1ёD,3F`hl2u^^TTZk8z%`Rʒc;Ӡ`n6=FHxLF vk;.lD]'va?Mmo_|acc#_D}V+̌h=GV;t(֕Cr 0\%!' t8[G꽣>z靆(@-gX<ZmzPnz&Gi|N)N"nT& Zg;r-ō-YTGmBXչ=Rf qm f`>aiӨÑ͵WKjX(.%Y, jիjZ#re\>Ng  T`b߿ɣGwa|CE4$^DLEUte ]'"q2LFV&wx 3cF4zfx*g l1=Ncc 8s80t ؓ q'YrNQpzd驱d2Q* K:؋N7(,ս; IrYFوD-;<0i!]eEZJK*^qp5gJt29::3N?;+|E8i?!. u٪g_goo؀k}}&AYhݣF5wSǖ]hX{V*x|.OGzڡN>?<>*[tg؅; [j?{Z;b3_`!=o#":㵅/SW+jh2cq`02t'.1Ehm .bfLdM9J+M<(ՅH: ]5bDqO+)%,#^,jPJ!NGZhG[4EJ~q zʉbm˻o?utxVo֎xO+\DX˾=B沜+$hH q/c^>:= f?ztA]@cg(-obMCF xJE(md&NʙDxZ RS[j%q +&qJ`%i`V;NQq3H(/6'ݼO\YOܽYjFIj5L (a{W]f' AdińԞ|IB%8lzMs2vl5*triiissy9^yyy9L2ks;Zz=-c{hjpBbHF^%s,I6OP*'>!)|Dޚ/!ԣX7kOCCf#VmwS%ujXS*WVeBl1N4Ⱦ-k@^+a5xh[vťE|{+G]+EOexR;bB!AbDcdՍzNZYˤnw,ҙ y=9Au&E:2VÛ+a^ a.X[_]!|bI_o׬@Coy'#W)΅Vqj|?1fNPנyX!VʐJ( "C"2.-^t҅+YUmU쵛vݪ݅ɐSIkrV)7Vդaؖ氖|;ô6qw{aian +Zytp~z9[SYWDP._9?QḮdb:Xi,n\ aG+eܽV >!UC?a׶۝K'%Ȟkmi¬/̷XBzH9$8~߾ʓ4 ,Jӣi5L$%R>_Dsg S1DO)fDwT)*J$J=SI<&X%|4]l} &OoJѬBkDrb1bC%M|f8qº}h3C xЪ{>W+8v9"|}͊'d8jwDTƾPŃ:vZ i^=`b(L/mTBZe/%BX<ѧHR4w""?K<]ZY>h  A Jfl_wʏGi 1 !d*sO_| V>nt:= dP`jRe4kGwFxzQ?RLN;׎J Mn3ڨ3S2q-2|}ngk\6ojJvkvh]wb*ܽ50FQ1ж ׂ9[/6 cQq*gt$b](Y a(|hGQ׈鉤e ?DJ IO{9njTJ}vE;8"JNZ [@L\9Ԫt ZNC2KnRu;GZ E!#?*qB-]$MÃ1^~@C{uڸUqUk^MZ;-hp¼hqi¥+k8Z~\w~F|}7<:8|x.tO5ۺsx<nΆq8PǒBTW45Cg|3Jg7.\Het7 ȐdA+28w| 9]yh8$d]^. [5fRnThׂzv=J*hG{~id1)RbzFը4d@Mݶ4Ie}[aNs!5v:C(Ȧ3lP'G&QݮEc &~UܒrcfG6.4WSn=( k43B xۮ5k{/mlap._XZ`B@C43( ]+ע]m6&s J.qvQ) ]Klv}}… Ν[[[/Di*}6hfޗh3rE24JjhwwwZA |J'B7 lă3fT8MŽ& ``FOC ,cΙAp:. 8D~]㲞н48NT]*ćawRiuuPT}Un1ږ wK?j۷t1> B"4<>>><Ce,+Y|>3%h!ZlSqlNa~oO2qku-ԣӵ-[kFh CdPi}h-V"?*fR2"2p<0=ȕCh28,!SO-z[ZZrK޹\Ha0# Α(V4 Swvڨ?X~ttLE;*U@pȞ11J!.vmN'Cf {zԭ9)?fYQKbOM @ZZ aᅅD2V*eKt: {ҩTo5UF!&[ۯB1`5Su)Ѩ4a-6%x"ɿX <n@y}2ZGL3tf0Nf(Id!h[o9!휯7Љ\˦K|. pjiYz`KS4>M1f1g7*nvpuz L&|X(`1D۪TmuSh 6ʼsD5F Z[m ZJu6o5YJx42sH׮3nH\rqu[߉ԞV>Lt6rg_}֛wC WJ] B?llS1 O;hЋG"tכv40ɠ?춢 S): CxhTjãzGy|wkպ9~S=ĘB,{=1 :a x +x̶q!&1V)֝ۻZt8'&ZVKݒOrj)o+O-SZssx_f{= h,..rB!J%QjbzqppxppP. ^ q^Fzуܽ[uab*P17Q]'JS 'K,E9GM)123gjy:XghqQ؞5БܱLƂ4QCp{Y<(Ljpp{{P(>8-.ɁHgb8D`8rbގO.xǑC }Թ{U&?``~;}T'jլw eh^fe~LZt^Yhm"<:2 'hGdevB nxb7ꕣ?|eN{ÝL&L;Vrj7C_@} Qx8>:޽w酆c}L$JPz;s$2RIՅ:/ǣ40G@Qv?έϏ,=u}N_ldV@BB5>j67)wmz#GcO+z?3\Z^Y- +KkKE oB nQ9*?ѣGv VMv6Lk6jJs&@19]וͪ-r'Y6~ro'~j{Z]߈C/wgA 썆MH+|/>91A79 5z =aJ c7ӬPR<+@ hVd{vm @W4zJBAЀt.o_\,1m>rB!GqF$pd,ljjarAc&n馢=B>lC\Pޮ[=索6 8:ϘkVsWd45w'fb#}_O֩5h,ϗ7v.^\*k'teϤ׬׎*˻돏CEm Wޘl5u{G QEfL|#|qs9߼ßO=j6B0sHgXjTo ׻tg+\xC.k[*Vi6zFClsʨK@FEH.h萰NdbOVSPoOFЌ$a\y.^~U2/߸v+W_<ʹlw]\?\\&PxvA87)= V]JJ?#um1{**M'vZ v\?uT\I&2NTpu"KoOYNnQ&;P`hd|=#ǥo;ڠVc9t"׏W"(!4ޔ.pG 2VI*堶R/NhR"P H6tCm7ge0U*?7Gjg.&G0wyy@r3p{!Js8,}˕PGLSk!"D(J#`|I3zTߜ0mM{ 2࢙HXH٠)8nHc&:.v΃{͐ѸDzR1Au}/N0b"Dp1ڝrlQe퍆LnP\/.6ֶ_vk/o||O;ƋW/,id4 4:kr4el6ͥ q |2y 4~jκ)žBbt܂5E9Ӆ|_wx"RǬO 1r7a~lDIMy@Qzu$`P12w<6:I&;K׮KL)Bfs"{ zGA入@b5"uaFѨ.$i{AV_TĆc6sZi&CѰ/u0KK[ۛ+f{J3N\"7l,zH'ZǘhpPo8Ne4uBDgy*Ɩ{=;y2yЉKGKpy O}q;|=#X)~0^,-.`%!-Zc1@xN@ hF`D6fПF aҔa{*MC> YbV;lYgx\(ٻH fT>e5/>3~Ar`匪cQ G06TdDJFjdv5teD$BT9x z#}?HDSi 4E b'Mģx 4:1?86RBLɶdD7j0L a f ɨDˏv32n,_lF]+T&OŢ\,h5cҠ MImw{]pMrKkۛkpKhG;@/ `uup'NJ*8NYYpH/E M&툾(cL"o+ksYZr5G's/FMiT%j+h zA4kJ.OU?8s[7w=,헏ڭpFrxxhowQ啕xa7b0C?0ϕbј=kpB_nhFCOCYD@-\d:M$HB MM}S6ƙsSfDm'W8l{LAb0|AACA]N%Sl@m U&SIBM5k'SɡyԞrBBk,MZ_`i ba8F֫7vg0lP(.P]aՙ)NB)X2w]^ނ6=$26DgKnӒq벮XUq!b5'xqr(0_ 5/3e,8AsS*6{v'K %1!Z1WL%RH\=8i " T n ۍvkPla:h@Z-vwX6HDÊz ,"ք1V H(K\+Οħ)pzV[Ύ!OI2E ngUVGd3uZ{w[omE>Q|m5x},bb~Y^I"uM41;_ыH0nOSDqO|ns:ZNh>]4b 8 m';z׽!;3jlXs)5NXdi)^ʹuh ,F)fUmz;.&̔Dset^P?tڃvөB\.E;>/~?rtxlTzSh#oݹ'޺togW֓ aoN"Q(-rE&VhV65T׶Hҿ |b`$H̪sp,ڈy!nzȅ^,t^sk/rb"_vpO޵B!jam􎍦d8Bfo}: g"$`sSfS?; uJw¹tX.#FuQ4pbb(醿ͼIV6qL/Q^Vn`hDr|>3`ZpPb0UK++0j4jUiCYBVU5Q?fRsލn\\Y.A5 PI sV] z-t hjA2U+f3T2CB'32хH( Ln7iK+H_8񙐛zi$^sr'^St7KRq(^0PiqhѨB4[FCP9z)ȔqK*"Vcz[߹zb\Yg2iloXԀJXqquc"1Y$6VGPGt~+W^pa}mDjVRoSNoxt\=>V*o F)6I$rn ;.ƒ= B܀p޵%&4엿~Ox? Dڰ(m"pLY|O֬Rg&\;8c g 4XCoH`6=Bp"ـw ƺ^]鬹o d"XZBWWHb N GN"lAF4%/EǤCv8Ug0+y[S b3H6<3E}yܡY &]F5b FwZg"MijvL&v!ю,6Zm(!uh-` jXg=:%Q8h1S~aLN/^Y~/]3tEc+'O#Q5ХXlu}gem N+ޠ!|ޖxvΟ\|aggey%Jq:j;Po09 EVwwR+z`*HFxcp/]Z^.!nRFǿeVɤ #3oUuO#N6څ&'եÃJ ťi8>#a.5NU sX("=C;=3`~(s yrl_}&^җu]U|1r9<\BPix>ao9siF Z cIBOyFUy(ʘZ3]䔀u pH':3p!"^P+zl.zt-pAKKKLJ f t@/,J踁b<굽p9 . 5dEi!|4 E/xqB,hU82iYAnN]:Dvl+mQфY&=.ڵ_z_T2EW껣0E.]|y}iI]2Q* {x"A?k/Di*We0pł?w$J$M$vN$pttܨ7B.{0S7/`azzZoQԀaaJ!1Z3b):_Zd!$/_~2®Dmojd][kU*<zҹ׮ڹt*D6y\$\nmnn9͍BAOs@;]Q,#n[Y^zK7p}.EQt2 ZP -X:[ظ'v1t6bbNڙ%pf2魍kW/]Lav"X^Z:wn'O!q·m!o5\מl TYKs8Cpe2ff":@:]C ( `=aez ȣr.JS$4)C̅ 9rlMi] HAȆD`7(Mem]5A|5nC.0Qۙ~|5q?΃yb} 7O]p{FՍ[5dviR = u&=8K$\6L"@,t֨+is=#wzYCV\(Vu=z砭F=L![ѢF.XX1Bڵ˗7K&RA ۚ(yE@)4Xl!Y^<W^-R>o6@SRq=V˗/.sՌƣzH@e77𹯾t¹5}w= `4h,[ZZZZ飩#B6ܶ8P^؂x\W]lt h4ft6FlEӕ10~A@p7m\Nǣ4Ή"aEO`!?Xx%_ZϢ8cz=ǫ>zqs bՍɿx\pO2l2%x"L'ҙdT(W"=2 > <a&NJ AO@fo_W ͓M[< $ecBK kmì9ܦQ9\Y^~"}~ey҅KTv8á+S"= {3sfp[ARC=J9< %)05  aeeO+Qj\[KZpT*4xif\kxƚjyk +5ڦ=nI ]\^YYjp>"Gmק&1>iGrS~*!;Ąm}0l P9s0L/~ %ؠMw4:$X\`5̌YبlO4 ;lKKkn &&x$I% [[zùs綶S,l$KuϽ]9ե/\"j,՛IV%+3hwx_U;0z{k҅B.[67676ơȸ4EiES&oX&e(0rz"J咛[HT"! R q. Zۈz3P'XeR?SK<| f(녁[?{I3I EO$ S-zDf/]"&~l:ARM@n<A`8A^}7u$Cj!b49?dGT$F<V[lDr:C TGJS}GEDjO(f$U\<9@gJ>;󲧼;&m?KV*nMe,a, \OR,QzkQ7DcR^n4rDPp@ș}Pfuٛ2Yq*& O>ˎfI f'XKöhvk()u7t:.2 ]]R+ʻցjH@wQeb` xl6ua( pqhb) 42{qO&I/.ᯖz]JzCA b ?Lqa4 FmJ5!h@*ttAjy% Ex&>Xd'B"|sw? % rBQK^`fpJD~>Q}߿ҫ;\c _OH+{ 5qsA?4¡D('O9|=-0L#_\t%Ts޹xgW>K&n a-0 ܍MzÅ'٭im*ђ\zh"eCODiqh8d]@~$Bz8:gƋivZ=UߪcG)k`,%'L&bs׾+o0f0F-LFYwz-3fQi5;&Dz9NB3ш2+F`@49Ǵ:!v̉1g͖S `hwJKЮ Pf:AwL508o9@A)gfP*x666s hw' % ޖv,^0}޹Tn3 ՝ 7/nf$H'mJ0.6a>٪YS͸m g jl`)2_Uʙ ( giW 2Qae)X5ksp6@ T4 qpړ.DÝiecP 㬈va]2S1G X3 +"Ggpv;A@~L_nɗX@w.IhE\@ee{!@44Bu"*=#[WX؃tZf00ezӉH:D@~A0ߺfԺ5 D-*p34nGw֙h0CY3tM QV>WѐPU\1s-0L,usWx|H9ᕻ3aQ 9rF8!.>u[̒R#ZV4Y2[_vXBav4!r Etq<G(릥JDE/7-@FBt[uc$t{;~oܨ,ab^x2MMGr~xPar]‘wNA\-56Jx\2 љ u=Hf/~Om&ȋ2OhUFj0*}Z2CFjDj\f.YZ܁1[=%s޳xhMfFa 2 &.R(SAÆjGSvgrK]fqxjđsq@VwfY?СPڰbIJXze5fB&E ׀i8 %c,h[\J2 z,t {#ʌ.Q2(>OBCyIt2*Fi! Oc{G9#`߀t`ucSoFYrδ2:b D6_M2E Ⴣ{7k0AFGl6:]ݲ'}K;Rsw_x=ӫTİ6@XubCѐXQS`5h+o$&Jx:hCq:rLRF9O %)Y9N~:I] "0˝2Apfby!ɼe2ke gHX$5}i4)Uk bO |oe!xQ9LBF"lM@^ـQ^WD-H$ P`Hj_OtT*,l(k7f9 X8"έ379a8qEեl&:W)& :NhiJ95+rګFقC7 ޟ#'h9ʄbQzTa.N!LɯUI,g;Rtџ=xʯf |^ծ=zxz|0eWM2m:4V*ǕcOg"<ԓi6Z[r_/VWE %($4HQ CI^oe.%_1k m!=@}}^|& B}=n%S#OC|\z$$ǣ4)tԋw6p1ֺp>aQ@Q=wٓ r.1R1Q4M0 20L`[F`^fL^pwoZ߹AYZvY7vjպ$<͗J/gW,UrKdgP4vNE6Vr7AW2܊13 ڕr8Ԅ1u\;` XƉ s80q2CMq+`.#4Kc 13qsqm\2JA, b<ُ@1ZFJiQ8qӫVkJl Ѱ{)c_(Z'ӬnL+a{fXD1op50@vB)y* ,9*":%J/[cF֙5LuYBYM xJ&ւkhs DGo|+RF=VZ֠Bi/|95F0 8R_rKO֜GU*5VQf=ks5Ob:whD;E߄+vL]Lq=12 8: IX O3R<6x*P.u[eݮf[+_''7!KkAk.4Jt+j\N(-\/bmq ox4*2~Z'I~>j(*IeOw`yYu-89PGJga||%w"0-[өuW_}kxL& 2=ЭMCl},A-2'Il} D%V]K!/S4n1B |GK] 5 Oj26v1?[)ʸjB %(Bh~T~-CӌLHFfm!OvVRØ B4-"T_MqOP_( %;3;z7O;VԷ;-1W\ܹr7wo.mQAk܊ S 5 w ֢Nִu/9YNt&vThFz*"!ÖTdm0bi(:'ҤX3i05G,v;`n|W 0l\ "ľH<M#Pv\6WZKv9}iqZ,8g Έ/ݸxխKlI1xLDM Z:]8vliA LyZf+g3*;=CI5 T؟9H6(9 9Gy0;%q8ZY0K@Z$9ᠯQcU=p.CX P|Ꚓ, 9C$ws),/:.d;m̟k'De'G-͏i֚k% u ^lvZ6LQLrz Pk$L&Uܱi2KȊHHvݒ Lj ck!6;{@!N`5\Vd.`\Y7 @;3i#/..\8 W\, LW3G/c F xңGOo0@Nd іL%FNZ5"e$&]:`hfŁNxa;4X"_^"JchQNl7zitߺwJg$(-o/mO*9ta:w:T5}ҁ`,'A2V(`ó-b 0!i]7^]63W 6h(e]Nv(-._~q5]-D{\/qd ]m(;<{n5?i^X}0JFK{i`_WVIQ4~ѬUjzWkLneD.^Yo,|v~~K+ˑDRq: sSYf cvNj4u7%@^hї <A%n$B62nk|tZü0D+ H 4Mg2Z F 8ɲ{ sxg#]ډG&x9M}kl>U1ֹ /]|KKK+LR-.St]C!.m];uVQDRsca1PY'lـ588p%W~dCy0Cx rs@Nji6:"h42} Z[.J,c96nόF!C*ШB59>%IpN#E#% io9:}a| 8$l!/v`Ƨ1;G#'Ď4qIr@'[t\d .9 8 @+aVN&fT ;de28)y,%h+=ƙY)0T'y.; boγ!aII5KKDl!&nAfE GCZ̴8ߘB GeHVڞ֠5j2۪p; i]aD X>8VVW+ۡ3+_ʷm\NҌL׉C 2u7Vo7 406kAVCDr4xvFJ?~ÿۿۿ˿/~~D_N Z`GQ:GGJm3'ΠZp)sꔏ1H"7Vlui4QZ=O öt-2T!;b3R4:UcpA+w)pևzH׋k]mE9fQrslt+R$9p::OZ46üǟ?\t҈Vb~m^mݻ?}7?_o~ί~Oo~vptj7z`O4JBqP`0ԝDt8IRqbVk xqe;S\1O,98 4*rҞ+ ic(aNy߸[Ӆiֱ]M_|tL [f01zx)v>;?Kf X,{׽(v'>&,:9dɕ8쿳8f|)t3f ,ׂƖ<ƹs]o~믿qŗ\}%r\ c~&Xb5ĕ1 0T Cc0!HmPF̰ak4ӝWy6@JOkߑֲ*12s} E i&3^roSp70 CVV{Hx4#k9ALLu R(mB;6g0=($PFlq΋PR.<FDE7', .Kv .@"@M/aӼã`'Pu5+裁с~ß_?y7ywܻW;Vv4OƄdx!t5I,g(WsRٕ˱dSm$(\^ncnNNkSU7 ]"Kbې d̺Hɵi@>kjlags嫉| L8(/7w9-4UoiG}"\ 6,,mjSM(e>~O~ꝷ>sެ@ŒF5&Hd"NS(~i:gUJ\kpBi]aeA}-@h1N1rq1pK]AQKl\"w-[i"ݢn%!IClJOavkw_ t+HOɄVOU헶g;<Gկ=*vk6,Y\E[bTLg$!җ8}tW9 74 s Ҵ6tf#_t/jy&cԴtT 6VxmCrЙu kC, 4Zo%>g~ z_ Ԁtl 7S76։/_Dl52sOFO?n$˺h(P0(6 CsBJӸ>wXtlfl>8pB"zYqږ(a xTzxi;%-ʀS(23&*0h*ޮݾ-,{ Hhp3zt~;Wf[(gRU) /s0D _OEb6J _\o5"t:ZUQ M(ʆEZ%oEM fy|=ծ.B1!+uA/QJ"[Bg^^.?V,BXyCWX&' QkY|Wl RhT+2֧^\B tg],@;+́HO]9hԽa$0)fڊ]2+lU1-hTӊ$69h94hbΜ< 0zv.K{&rYsj Qv*QZw&po߹!}0taׂ"w:P!p8)؆ iBs* d Ѭ06{ZS֬ LN0(?[¡x>dz[r^w=kܸ[sopx0'X6V+>1Hti5:{o߹Q:vcd!jܚA7l9Xh8ՍjR8K% (l i!!b_ el+v\Rޔ9JcL:u:V5fgZ5P0l}b-GFT܅dϾ( @OV.t*џ1(Kd=*(Dp$N2L5qwg=sJ|x+kˋٔ(ah$_,%r\oԺӳxdk*SÃJنhN&)?wZqЏO qkqhvc L,:>EPX=N_~sL|K'yPV="4CW]a @>W#,ܹ PӜ n;m\]othjZkKĀ~rI;Kz>30t|sXc%9{nۥ^ݘO-=41j=ŭdlA@ 絧+w63@"`qp#Q\gپ2vp:'8p(h:jic-֬Dj1((g?֧g?=kO3Iw>Zf9jHQflN@(ni (Q%+ ]+._)--EbqZC;K%kw7PU}-/fmj~n_\YS`-{]; )Ǫ9S/ 4Roa&.фtCHb>cZ#0^>$" V~*MTU>hG^Stc60 tZJzt|wnK-?v66VTB4&z7BRtTJg3Q[~Onӛ|7<w} FǓJ}k"p߬)7{-|Q#D3) \Ɵm ļ,/-,趉|z%H/{ܥmQ*Y] EFNvc9׭ j ǩ^{;v*N*AWݛ5~|T.3!N XT*~¹aC أuVww bDP2B=ڽgw>֧>TkDv{_>lJ `VַeH 0a"TL=8ĹրOyo}7є ['BN1O,2~%`9% . y6c7hǁm.b0 r.tSN*s.XBV aVKX- ̎j䬥Lcd,F> DiRO6<ƚEQԩ Jb\&_*Z$|6W|Q7'X$ E%kT% rZgNԹ\7ŸN2jOU,L=\;mnwB ҪFxnw hmm΅\@/v(Y{ ,{.ࣻASI%q5w{;nJҩLFR2"&z ʳM2IcP^jrp C\+f2K Sbk2 wp%q;>[#L7{QJwTkTdR+mӉ~kOj_98.gd&5*ʃG֧Z1BZJg۟߼SԉdF}ɇAKVd,yy7VI\U ٓkk׿o[~7.]OgF&9z{X2"z]%SV#r,W^ȦaDCѐ~k}|PGa`XI{YoTǣq3kkKjYo4Q5Zo=zo޺_)ÀI4 |n 7{jeZn[,a8JA9*~ѧя{]{2g\Aw&rG`VQׂs\$Gߌ8NRkkwW|Ox9Kdaamo!fJd&Fi9<3'%/ |VG@ \ys@avs5٨IkX}N@+['?e ZR3YNi! }d+E:*;K92aDXKw~AQRѐ ˍbJi5211V7sblnl//E^PeN1zЈjWPUhާ z^٬UXLQZd |n{guut:ObEO ),UR]&ҍ9>p4 DtC uXw"gqf)j*Ѕ$Fih!֖Kv;M9U5Mv[dPVF^CRJ.^BkZS%qOOyjYMhrSdf W}uG"Lt&_@OmVр"tI׃8Inےg1Pe;MٵD7+˃b-'NXE!#l\0cͳ = :$5E2 JC:*v՝{UЂ6U]+%6iވ]"hFCdm Ԡ@`s8;< rS #q:< n Ig0+>o?/'?o~Χλ;>Zw>2;k`y܉ys$Rҍ[HO`rxWlmL67w_Eq~^ϬtZw<}z8Kn'yDZƙo;IN'mjTȜSk\X<%I: $B*Xzzn:-]vo,F\bgfI?*[?On~_O|'|o}|w?}G7ֺ=v?||oޭw:؛v+Qvh d EN 4sѥ|lFNu8M4$]‹7^]]ـgN:1QgR JgX9# F,3+8hjOCMy<ɺy`>'.56X΃͐|r>rGC}r'¶a凣>@[ɸn޹[|<|nugʬ8kfDFKA& x%1$t&[H$ 8e4`p4H_ʥ׈^@jY:UM"/F)1snK|.o6W㎢⌘;$ݢB$<QGjJ ڨ:Nl&|͍~n5?mS1"aw|f("$=9Ԛݽ|~U-$ `pX>~w~[58/[=^0Bw1_-nL#tv1ͣV48_gkIaƕ׮\'u=0qKFQ2j#2_(J{ &‰ './xO>{F[\3/j\ZF8,+h,n]`dQ(q}xbqqU1/H7z2C=шu$[k6v]:4iX8PJ*M6Ҝ/ LpbN:f1$:=hM`Jf̃!@wFP[r5R0*֐we4:R,©`뒳zV=JSsX#ΏawVUɛgzEXƨAb0J\F B'gr[.zݶH)t -8`oָh`%ep!вʅeL˄qls_zceecaA' %°Y![1õT*ƈPQR֡!&Yntɸ/w~u]FbZZ8qX!# ᥞ@)kLI K!6[{{n[KZ~[/qQ|H+d"C +mooo22y&aߡ~Mh ̝>ч<-[;|O?u#B 央鈁B(Hf)22Qfg J7/_~a}m{: Z?E\ 4xXa!cB} |!VY d\-B #\҉iti9i`o8h8m{4/...IvnM'DNv({|r]4q|O>O?{˄rV9B 8Dh")$l6Wpz0!Hyzp,Tsv2&Ȟ3 UQ\쐳iPg |`wY-s cD[fFC-Lfu8s,fy"v$e`җӂhWs7d'iyh69Ă,5[jvr%{ums9x%i@]vv tiWᨻAM7 7 rz}?0;eͭPEbv,b._i1zcooAd5*Ed]]F MVS̴VIbGY?s;KY޿`,Vo°+[Xԛ[:i͞x.[K3v}*́ @0v` E 0lD]. .DM 3Ht=hG*0g`\p7͵pW"f{*=Fv4Y;sn+Ё/uN5$f.cTxQqq*Y!nbqjaI ju&BKRLU. -3ȫKzDANI,0h^fDIb\436c(!Mp ޙHd'N 6 \/H.s=wu_N5B4fyK.µ^zW^xJXhD/˰x"3JSpeNo LĈE@7:lMgK %ev!>'nD-aJ;0T =BSHE;֣Qp'[Gw=6[~i5jAwo:ta}׾o~{V\:DeI.9(h , ª]O8 3ii>;<ڃvTZV1!U~v°XȮu8QoԎ[ʨ4ual vm2|,!M2ۗ.__YD/N.rN6ixnOPM H&N&`dpr;]<͜óӳKWDw㒡M X?F ˪0MQY[[KSף:LGE3 qPOM ѳ"Э2DӄS C}p6͸4Df ς `.+:dh* 2-xL aKKK//^xyss{'q7و*  - 1ߺEi+Y >ji9 bcȷLk0BAh Y30[&u5Gr~k#^A P!8:F{?;2-fsܟvmtk7ֶRNoNGbĂ![6- tEsFZͽC&`fы^- m9P81 FhWjn1OߡV|\V \ڹpXZr j>e5ԇ$'✘ `#T$0 {Dר4QGʰoͿq ig#Ģzn;~9JA>zXi߿ۈ$lJvHR$G[hh{ݮnh˔{vS$ڠLo٣GGGNKK˛;یmH U,LI-!~ dnOINRX{0Ṭv*[ `>+]\6Gpr;|0 /^8~5\xݥ)mE3K`C ԍYш^:%2%.c5%:{%@L`G|09dCR>=1€Dx2aycZ#nI?IE9N16mŢnY^^Z^^1&R&AX0A"N* CQXX!+ _!T{MlZ Ytk+|~E hĴ.׹e!FL`yƪ]5 ʏ#^8'`]%@5hS*,]/Aq9]h㇟?Iw ;KT0w[Wj֚nA_;.4'1O&j:(Vt(FdDpZwN^{Ç{><jV]4zxT0^@ ;vMݞV[ Ɖj*b`:8Hg{{JАb++k[h:U6pX8!=$Pz"JӇ]4[ p%<^KR 8J'۱As1wƒBh{eesm߫ʵn׬nZ5 ʍ^r 7Zw8kn;6AypY,YQWk{w6M`p"h!A0mZGG0n``LgB1\I{/.EjA9>1e}Z~g C焝9HN'9%R;jnoZ7.o.6gj'îeׅSkzlڭ#j45d$ ahZӛ9S@ ]ojE0Qhg[&*ŶFBDh11tⵇv-43\|x[.mn,g3ãV]'^ ǃ76wR4ZKB^xx!gc!aOaQjoSI[[ fV+*h -ץOc!]]'JJqt97C!ZkմVLWGzxnWjfv#8AqdXaNjh)C@YyA0;6Hg=fg=~BOSdž@ ˑRX*=:4׬p-%x^'pg[0Jx;* j,<#tsJjC GA('3atB^U:x[V tǝ@[e͎HbK\cBtB`rۋlDR#͋N6l:}nh㽽z̨>z<QKK<M)3p`2AWqNV{f;`Uf?ng5f'30=zh5{ACZHߗRR|n߾so_g?/ӟ'?~キ>|j%. S|6T;Cܰ)6%07&ɬOCG% ,1wB$O$͟.?d;Kq=g7?Kp@|_&>4 N]i l~fM i4h>ai}LT,WWWfieuŮ(*I'g . L2q(ft"Cjs.0FC( ]`qKAjr Jr(?T@ .9pYZ-۴{їU14A)4|N$hv ?8|w֕- \0]0|3g 15ɔ= PRFk!+ZI5j {֍@ZHa;>(LEi N3p2]̄M7=@j*K5p)Sf fW\{ Cӵ0]/ޥD"s%˸xҐTh4+h4{|tМEMFFtd-y`:y\'fqCxb҅H:1 MGT4_]XH#[[W^X_NQ^Sуlr'ތbX)٫Վʇ;n{L*/ !a@C#+AP]147O4hHGB.X,rj?|Ǐh~M)˭S|TG7Oǹ͟g?'?/>ѱ@f8z-ףt PWo7ocbg)55&+5aEBTz{}+bF-$ȎO6/~ҷ+t\z?ֳ*:f6 z-\r% ChڽAhժaz6'%S):٬πUlx-˻꧀cH&rBgWɵZFqwmʛ8C1p{ʵǏRnIZ8 bt:Τ2t6Y!PU;ʉ{5'7jQF)b:4l~.^_pہ~gSt*Ό"NɅ(L&S6[ɦE!|^UX&"!dS W:K 3Ƣ:ZoI}Z$ӗ$"C0٬-Tk{;0_׬DC B6#-hk>Z&ovtY ̾A.@[f\i6Z1D$dɚI.V@MiSӆ~[d#k+HE_mDJ+Qb'lxB{o][*I$ł0,`(Oo?Ŧ)rݭWjZ5l/c!b;G [6Fc]c8^~! LZˮBq}u} sGn{ y WXO>Lťs/]~+k---b7,,DB'^nôbunT:sk/xG˯/ t7:.PQGi#7vi#PQIGM(+/^ V_x뫛d:N]$>:WH3\Z.RnY.ʷf3 qLθ]7d~m30p˗3B>_ٛZVW\\OYOjr4jPƚ f}d!c&a^tZnjj\*K,,iXg3)U8.\Sed c|<%[r.Hq*ƃ?I) ): IU$[i#p1p_y3i#;|NhΒCG @ {F DhuY)pL-bp i-)7Mt$Own2PȨ<;wD[^{//^XZN$RX8 kkΝ9\, B&Cv c芔BLY0vibX <AjJɡ:vsAjcͯ^Sh  1$GWͦ>CD0[nWw)Dh2~rᅣńV7F%+P"&j6}k| 0p#TcQ@ dأCEi;H~F?kz޻QhUc5>zAx7V_l7^ٹRZpJVs\"Y?Tkih}k9%umnx:[ONK9Sd2D8B0ll]r*!zQ6CFDO *vz \SA bDx2:TCo4g- ZUέ¹(v}ccҲJ~ۇjB(}TX+s`9'P"'P0 g''Жl2K/l4䲷71pcEG??~12AFeRm5`X,90?R/Ƀ7 ='@4S-Z,2M,4ÀȠy״ʲisu\/QlA2CUZ.=f!dW5BF+M(@K_Y[[]_ó#Դbq0b dk1/s 76W qrUNs 3 ިd eS3H\i#dNp<,(<9:~'|@,a60OOOv߿{p ?~rg`p?4PfI!{14 h^7[. DӓVZb"9 g$%HN~+±g.S@ PQU<Js|Z!O dq:e V5Fí{MH5dfVzܩ%g)RJ GIpC.(h<W>}Bvesf'<?J`RJm/z. ?9G?F ?ET,/½ǟ< gp8E/7lmzl`S* f*ۖ܁PhͶg+V֢XKh5ppewvl˩fn\Z^^\[[k[@XVkuue͵C(WùH^S{C! L9u`OIlڍz+ʸ,FI4O_0;)j9BJ{z`6-i:'|pt6MO?~rDh0=8 zi#z ̑;J v1o0sh(h T<|q_ Q'^$ѣ9yLD baa-j8HIאjfS>/гg恄lGD+ ut:V{T9I9#\pV9=3b&s,%vquET"d31r1ɩ*%d}byYg]&YaP-Tղ{{|zakJE[lۅ@aԮ\K|o|{7o޼y{iiWY&g![Qgƍ<%4BO".I|'&I`0PgS8>wn>o1*T>7,YI7;[zVݲ Ipt2+_ N@;ɁH xP#a;4\W zXx|.œpC>䜫|U.(\  yMFݪ*' ?y0;8$RF95Q(NQ |;^We*6jw\^h8;?&#˴=<>:*%Ek}'y|ɃӪVZu)o<`xo?>'t4=< P҆Wv{vhB:U[' c"wQψs\Q,< GA(C69sJ;;Ѩ_-]>I8UD+9OԱ<`f-kltxw7?'ӃZV,ܾ}w}׿7^| ׫smqY{ ~r#uqn\h8dFQ-t8ӓQjCctXJˡTMU}9(MFqL&>ͿɃ1Ofŧp4JLԧ3k%1ܻwի4+KK1h48JK@?{BqTA$PTL}xΨpT!:ɟWJ BF GΑ7n\8X$ޗ_yB$&L2g`g=V-5G2+^ ~%4~ UC<) !@Tvwyyukkׯ\ ' p' "pZ-\rݻ?/ |wy_y;wnll=v7ZN)T0=UQEz7Zƚ]hjI D5W7F\+( ( wq yNׁ`/׆KC| N@;t*MS2DmڀGq0ʀRObZ)?m4S={ܦ=k Dt$󯳲Nv&]EBJ|5m ~׾կ~_ƻꫯ!~E`5.{3d|\jLM CRgPH%8B+-L=΅ ^Uy;D̊(#V|t3?nFVB<9=>ʓ4%Soollݾ}wow_{흍:G,mlGHyangB]qM,b|}8~d7P+8J[*.$8g!w4 U ߇?=/])t|[32ҙb)>(}A.;g*Mgp* @7 2*z\*b4 DZJPA+*fi8z--^Yo4GOw!D֋Ͽp77__o~뷿gѳ-Â`e^LiL,ʺKp&$$yl+FQZTGS+S f"x|p(ruŶlk!ЃcqUD%? ?a(=[%]rgauv:N2$$!U#٧|$8&R3="9[%J}$g4qcx !`hqUY#܉"AT"P"n ".1NW\ mX8%3RE2v6VP_k@ }|B], Bc% A$ V~gCp2%Hq wǮ\v ʨK fvP!|p'yA@9PVU+N,r|G_l(; B Ir6mlo\״2NN՞n?O|}^}W^yk_o}o~7|k_{em.nCbN%l d6A3eoLퟘhO-@~ T|>pds[WM> Lǁ2t:`ELK2P/D9H-d!?z``33^ӳBi1-XNf@_*c#ɤ(#0y1SwCfh@x$@^De4h\+W+Zr]NAKDqGj px8H8|cԣݸq_s B;wh4ؗVBa 9Q :X"QLn4k.<@/c5ehIHpU!BUJOoim«WX\\Ƒ޽{eQ Cޝ;)x&]r8`8A V $))rp<~|&ڪ'+LʋK4DV:Ņ!MraUT]L8ZK!kBX 'e"Z? a*JZ긦WA uGMVFraӠ^r)1$8OPKDʉSU-f[cp~Jq4)> m<-$0 -G/%-kJj Iˡ*M@?.a M=J29W岀 l>smMH+D,A?bYJPEAМ>WhA> (,Ș#1|8{p%1p;߾o\U&%~Lgqvp"9`вJ9Al 3݆6-D%42.Wft\i[X[ܺv YIjuhMk\D&)†%E#1*! QX6 <(4eKm ">K/V a B fDFaqr2j U,(Ƴx:у2"LiO0 u!" V7طG( GPUpq`~7^=:ٺLRo4VuR4jWV&,S(-w͕յ+W]~kii;c~Qg~FAtxZE'2zfD5LMZTN i!9O(-/+[p'G8rh=w~;~(M—. u8چaY$;z鐫>҆H̯%e-ЀbOwWegOzɴG&3,m{!4M!W(^Y'Ap|8Z-msЂy*Y:?MD!{ ߏ8<Mc"z=h|PA~v:dۮ] 6πFiupxӭ%]u Qr(jO>M䓇Ǩխkwnṵq~[[ׯ]Ng{P;wn R`B8]v:¯02':'FWG@i/^2JLW*0g>vRkp=-@.[UL,$?N%id@2,I"Qj ]2R%8)Jhf҉oGcj LRDoxP>q:>4bLOgt=wЪF |~ x1dzE/FaP5@sA;ObP +N5o:ҿ [eEۀ}KC91Byۃ:Q0" e' [Xq| _U" #Se"RO*VE O)sxx6<h QlA#WA)~0.,/I5Af͓cuA`ZQl5Yꆈ%REX3We&LUO.|޽;*gf~|MF2M1DS20&7ZɽL .`H-{gZP4|Buuim}m]VWWv{=x;yd <xAA‚c9T%.d*@0os&0#fS@CǑ x 8+Gv#/(xfeeՃʀ= re`$i64fi # bv2ѿޟ~ Aiax^Dp\*mzr_o\y--( vy֣GO&1s qV+TJ8Sسv k:hTUd&F2Sf^AT؈3E-8ã"X PFheGSp?٫}xRLFiA帟#jl4xaџg2G"ƟGWW}w6q L"̕#^+B87g#_xϏ,3?K(!ϲDg΋*>qqAe#c}??}wGO}kxj^~ƍW^A?=:=95ѝ`'j>8Ig,|`K/x7xO8* p W>LN]ӹqƕM)h:#v^.4kSg@:z^oG` G͛nѸF O"yE=a,gA!g\ڡ*c܍( |?IZNx'$В]www޼v.ONw> 4]Z\F C:_D4=~E12;=2+d t:~ӟ}?cMc/hZ@f[uQu~9ĞI؀0 xxr|XLc; ka88: !VUv^C5Pڈt80.^F+C}`4LǽNzq FÓpx Zu/ttgw8cNp\^P6nu .!3NO|~t+%J=ctP/Q_BJxWpU)Cue#NՒ-p>/R/Kq1M8;PYx+YBY2؀RxT? _ۦ wnxER\XXpZD*|~:= q0 g@yK1э͕^o0QY, axFlr%T #\dh |# Zڎ`b0^`@Ef 0 j5N4N6̩<(RGS8iT+RK/{BigQJ4ǧ6b4=Wg] zN# {8C_|= 7B a EspM@4oEdLhQ8!)0/fY++}oh2;p>24 |t2 cyX&,EdCT 9>w??=>`'{'ZN"JKOJeVzEle:PjOGȋ;Q2J 1"ƒvD 1iRxR }ALOYӓB SICQ'f5NTԲ$&QGlAO"iO#v2&~tZ7;Rp%%l`#p[}Tk/r!2[Z6aM '|CPABk *_xxt71'by*Xu8*lvpx<؁wEǧo4KK4KKg$"[! 1B؅,bUfvֹ<=BPDf@(ķtLji|IV*llCL:8A_!s~ 5T7ⱿTsWc\_|OQ%QDyYM@!+Bx2J&aNnn#`.Y⶙6IDATSOr%s[lpi)9|-/?WP'eJz>cc(ć8(A9̉+ʈ"Uux$<.{>%5`_˲Udi=߶\ҡ}F^RM5ia ٘͑h00}.~OS<˜n $گfEG&{{>zC˘$ɡ9`5)#i[7_~ꆙZFnقlMt|A IY; MK_J l,h\˫C2i Ẓs<'Jj'9~8̇UIv%>4Cö{Vy>5HAV$@Zdᴈ()&VNκeժ^l/uN<09\XUl&Qj9[ՍsӆZ?ۏ?"iςtݺyE|d'G7n_XK,!SNeYϝ]~i!9[{}?CͿW0d'<* @lټ_Ar㓓ۜ`p9y2Q UǸQٜ׎S cd c.eЇP$=)uдT/Bŧ(Tqg!Z MVܹt\],W\vcUea`B]kz||o`8nD%zujq2X)P4'_Ex>1 !󄠍V Z!shȱ8*ٌo>7K3L!Sa1imF8 A9q|CZHSl#\hB4&ADL,q$NKT6;)M2 L''qwA!QB>|{{^;os#8fER@YF^(,+ P;G-5,-P,hu)@D (`/'Qs.[\pNnG)lGl4 Kk5?On?~d7O&SalB Iu.HRÂ57.B2?=`g R[Ue:`Clˁ6GaDy уT^j(?'ጽhyUWkMϺoxv̀U{U1>Go틖#4>i뵬ZP6-*ںل/wр/5z)`@J6^B<84`e%pr"- Yn5S/ `oGE+2/ ||jhue e-+lMw(*-J2`2fb 99<>9<<d xt=`c~^LdK}yjP/ک3BJH#:bcq@n/f4WSdx~ eX],W^P!by)fuk]=WK/2⹰ċyJV_F翲X1ju~́4ϗ^zQx/hV;PN#x-N~ ('>CɑԂE@R+)Gܲ}jap\ '\ Ȩ~eGG4n *(E`-H{\v?JWKoJds c:C rNw0X=,1~# -o%v($O߾ܾZ8#hEӍ$&(N"DDPnOψgϵpH:w2 A% E=H_[- #%րK,(<: p!%{drқ Bqؽ*3XTVIIg|ŕKk:̃ G,ÁxQںX/.z`5tA4İl< pʳjuh{Vn[K?ͪ0>O^n_fs~Y-)ԓJ j.pHU\YVzO*-*B T tlvo,s_ Wp9üHo"r~|r4>:a0ju˩rCWԬf$v n҃B 5g~O̟l4 Ow0>NQ^ĵ˺evuW֩:fD"45_1^%9QBbO~|OvO "?щfrap2pﯣãCvBQDcˠ:tq-|h*',J`^/.&VzЦ,i4a.Yk[DNVpSێ탸q@F3Ԫ(< pFoF}khWkcs EYw"jW- f{Nn{LUw|tpr|:CWUwQ=vk'܃h< 3ݙ`G't8ƣ0;!9)~DiDi6g(m(M,\ 1XQv18|wzA'h`>߽ G <%p0hU)0), *s@,@VܸnP *%O#H9jB=S֭"h*!+rA)eOes9]Ǭo€'`ƣ1qT#Qz(MNҦSey{RS`j|gt5Ih]Ci@JbjbzBWCV5 L s+|zmX'3%jI)lp!El;KقX~1n焟Iԕ t#F P!)1ex5YR'ʞ'q4'q0(1k jםNq8 }|pI2;HQVVlXDi%S3hm.B/1Ϝ>s,J=x0VDHiJseJRcP2H4!jzR^9$c:Xf!P1Ds[he@ih]7QY#^ ޹x7!ԍRcM.+F.2nwWK]cN0Km_ ݂l~#0б>vPX㝧{GY̗f݀8 c.-fnA0"O\t28E2]:J3t瞇%Ra[M_aƄdyJUR~#Y#KK* _d3>`q]Ìp A{m/_룸Djh,='=pN*jQ"[ gZ @T@Tݺ0+I!z9}k@v(-i}Š8Dfc"(;MoSn.pS:aTvKq ^EB9$BEP'־:sQ|`/2 *% t{u qKY J?2D=9K纼_HS YAJKRH9)v~1  E9t o)V!(Mg{8.8ܿU"Pxje)bMCnb?6Ӑ(23GʓU4DIᮥCf.oGϹ|}+*x>2 9-"ߎ'ȇ"[<1w"TX\ %u R_e-uu`p{pt QP?9onrXp ^nƹ&D$ yUER+tNãa <>kY$GťY `\%`[U*-uwtڋU@5Ǖ50Sr QV @! ĕ'z܂[>t :)Gmum3 ! C.P,kF@ 8 ȃ6)(sZ5_:;-}ũvܶx@6`P|$O؊4m f+յ̲ 7Tg-ns4\58ڍХ̤mi _!=gDӏ???>o?j",4FlO {fFcesM1S0غejt5ycq,` )?Xղmj1\6rGd9 &ڃq`j| *4%<ѰqIh|G'$¿ѺӬu +CO-tN ===LGhiKN/iVݨ$?z_CB%ܺŧL a~.{^G hp A mPUV9|)NלQSrŸ A YqN1d2 hAד=7pAlʊ0_gM<\;xAKKKNSNJ.2pW̱x>Qwu^{?_[|)0IP+ !6-0T/@Uɝx+*HY6 KlA;e! lQf2"JađcJyIL+F.ݢ)x/>8JG ֏y(0'hM)8 [jT _h:3a1svjr|D??^4xq?6G\8,CMf^()>Eʲd Ve;g"l(q?Pc$g26Nу'-`|蔃4bH' .N[i4gvԅ3{nAdE, UHE@D٥ `xpI'!!.O:4m\ U(Ae$eY'Djeh]:+VN't;." G/_if+XƲtcGBi=Mi/lƷQ1+˦VKQ/S[*ӄ3'`hw`{wӝ= p0N+)o(F)_W =.e#$`d3RTYM+ 2]#FijLT'xPHiʉ2d\8l"Z?<y%Si%,: \H4txt|tgmgwd0Of3艚/C>RY֗VqWrp \'*VC7"?8$Ἃ^c@EIf6=945 B<5SBh Pd@acB(Sv_Z>k;h3-@4RE%ZkeVQL|0 K}6ڕ^AGk]rLnpz9jLp!^1@[\+Uyv^v6cgոf˥wF퀮"gn&3G}eX" !eI؊D8je4妵ԯܛW]_}ڋ^zk~bckѻTuv V$7I.+@iٚ {1}H;4G{rq0Zx 8OON%X}J(͂a[]%Fl'Kdz.oUoQ~ Uc䘺k4tdzVj6z/*!?m5캓s$^0NB]Ͳ,D4& .׏qю`MⲀ;F2J3N `)dۤyayzwc.V`u39D'LzaP_q1x%1ZmV%'GyI ;ISqIfHlϹSRM%OW,=Q$ZStBx~: |Q>#UE}3b&\0B٢+RO%  B@4 HY>!ۑ`:d C(o8$ )Dm24 xFD!g|eB9$vi'Pd) 3E/T'©L ꥠbA,pahpgT8X6iѠ\(tC4<<Z^9P41;֍vm-BE& kp Pl 2 \qze؀Y?5GA". =t2JYtbV g9DW\ jyۨԯ:EuKvcc:۝6 vMBxY̔h D$B>@ZK38(aN'S agE5OE]iz?>,R)*`mpڵiUen{4'sJKcd{Tm Ѷ(rm(38=GkRZB7"ٴiÂ"'YC;JsKp2J`qrPxFquݳ]΍mPRk6h VJ;omEg(XCx3Rci3ѝÓ Ɣf篑.}g}w;:# b# J4 Dng+­g:C&"}>+g ` C{Dt`kU&[T'@,r@W z&S4Ag.0%>Si{dY(Vh.M*cUF_ARy/%4?~Vls/Y9'>'^9 rc׽.4WJ7mi:V2=<sjRHfHY|qq0Ov?|G?{{@kf[ ꃄ Bt 9 q>dDs"`*H%HD|k"$\/yDgC_s{<)e&Q 81*; I Q!%ۊPz)iFY8`tƈgY E)#Dՠ c n*q M' y;nx:כn4* x6 FCN/JYX$)a7"lv|ƣIE~Ek  h9CU=jΐEFa5*؀{aDyTr}ZѸvS=,GYc:nPt0طc`l ,: f A&sM@e (L3?4չ$LϢ4ݫK/4:G1􆫷밃A^̒h NaNgt>$`4 ;pڙiT\9sNYi 0ezuw4'j / <.Z AuG|,rL8Dk]iw25i.`aVF)@Eņͥl.cX@tyη[*L\41DPx^Kc%B3XL4a*)>9v!tƂj;-3X{I?gABFQ ,R0.r4Ce1C;U^hlN49Ug(&&6jE*k{FzNɜD@8? [T ӣãSŸA("CFaLfrr_&Q?y<9<,)v++ Kv\n[ j:6R#E Cc7Zyx3y????~?zXR"i:l*)!y‡e{d6MFp0l2y&dz&?l IauVV~2u5Nˡ:)tYv96ـP,+I<œa2|,O/Q'LkڮwYM0"-mZ@r]٦{[f|@lyYy4Ѳkq,?=&"I8g)|}`&xa|@疗X-zjpeTihѓ5фZZ٬fwzvoѪ79űk ylalnWn'$չoC ]vDK," puY0|EU߯EN{Za)ib7XpGJ-`hx ȄRKb{k5DZ<DŽaVf +.D ?P 0ø̙ ny^nB|*#Fsb( O;CBWsa3f @<}M'Lx^>> _]F֛_qV q`Q$3s1Jk$23'( 9+4J`$8Dg2sB@\"loslMVBOhuuL^t*&P'UOu,i.܈ߟ%#ͿJ@ E ?x.w^Z޸v* yO&\J(ֳ/S%60Zqԁ<d  ?:?V#?gqTEǕE/#~RiV懲OKH>>t<7V{!{8 4.`qt9r/ʌt~r"@Ie8$ 2nnvvs0'e[pV+4,)Xos D1WT|$@U''ԣc@jnxQ=zgdexkݻw:;h{^iFm2\nW .p-թ#jwVn4 ۥ <qL4*oA(jfZhiל.MH+pELerrA%b,-A``Pf;)kYPD3M͙֜Gq3=4mkU΃QԆĂ͕]DHE w~G j IsUIb|*]gM+tR DXO9)&Dv@ Wh15M ,ϊ"ڢ "}/#m>G`jD9th|& #8֓# N}<…ӆ*@r< 'w<4LBr ?2Ɉ.z6 Xoq^h:̸c%3&>p1tL3T|>AWpJD|RD&'H꧋Hӄ0#lty_'9ٞOw<~h'w<]'Ɏg';@H=fyƊbcqXz32 .7k#hsH˲2 %YwPQ-M"w+:Rm a+ 6R7*mNJ/X n޻Xmou/-Q< hݨ_6j;͖Ugg z" 8CwF -xG 3~d_Z q]4,,7։7t'uق8.mfiy8M d8umrP!\,V( 4ő̢GW.5{i V_N0ʁV[C<c_hz z[vi~&ȂDK>&Ўq Y \ q-:;?׳& tu^c 6ȁ]oz=" ©F-iFw'C>A4P3 cõӂ^`RDs Kq?h c4~ȟ&Q0JOՄ)2ĉvZ!]F5s̀FR\GhEtDE߈d&™ F +;z X2OG@@Va@fcك{@4LGƁ(hh(! /z֩IFhTh աw`&Bx! |+>/rٌ/p_f~ P]OtvF"d:{aM}\GjA08!ʛ:CWL*3CٰUsk%yĐttr4<>iUtNg}y+Wn]zmksce:qǤ\:1 %7z' CKKwJwMhl 6d7q"B8*s&߽U^UW4ǐ]}֌K36CkK+ϽK/ "lEQfŵ( `tVOC 8& Lr)ĎF_5nQ-m(߹p9]8r/6xpBlCke '̸ȫ{y0&HMCĎqg(0Cvbm<* ͯ9Ă?+R?sMs_Ad YtFrϟ|b>)3Vt]$[DK.m`K,kvUfUr#|4 < ?|vfӱmk+o|wկ^ZYY"Vw]؞8΋*Mfqd&7ۂfIX(NYh4&3-a|9~S"?*1&<^|6  7=v4I#? ~3ćn"3oQQ.cuFr4NGe Nﵚ-@Hΐд4cH* h(!n'uلlinj߹e-]=IOO .=m2똍:q͝zѨVEE;z^Ar '=2hGA|=4oJ) րoo'@Ҳ3T09\l&!gյ۷oZǚX0 a|;SkP OI |eVc.F5 24[9Y@S9Oe4 _ʻd ǧ,!~ٲF׫תw],4jhZd凱F!b] dG .E5=0H&/$(5BC5 ΂)q*RG!)qUf~׽r/a2βsyKIW,9h{-@/<CPnixuI_ceq&F4}OjOg~%!(>s[ۂ!@<|v buu.^Zo":3ˈ +>#Գ <fTs 0`^Ϗ,1#ٳ  Sϊ~3 ]/38'rɣKխ+|q`5V 8)08)*0H|J/ӿ9?H9#DQi,4&>#LrF-~vFUư@x)ʂA&az Wy@4&g ٞ-^F{&la(}tURX5cu/ Yˣ ;ؗ2SO<{*ʇE0saW 3%B!%">C*k\ܙ5oï(%#yu=a2.Y 3 ^9gP.  _9ދc Q;҆ 72.(3I0 nRJ0tR ]8n6d:7g8sWT)'kSi>fP,fk-(ANs BhbizϨ|_e:Yy0@./m:YL嘣i>k4Sõkݞ ~8-+1FPNG;1;B}Y<۝Nŧ_Mjx}Ma2S`4y) _G[ن'=%ƶLM&fGO,Lp7^wկ~ o|߇u_y^j=>TLK+.m`b7˭84rǨqM" @b%HS F{*U))Ur_3(tƓddx}:u\g53-bKVq<՛7߯^s_YlkSA>:l?tck;t'aĥ??3uؽ;oҋHnߺrww[e͢F@֦S zVML#D㢀 OU^!Z2f8ƪild6mi-hFfaLM|:.)vUz@9ń= bd$$ -6ִ)z@sx4 ݭ{ `68ް$n;P`KHk';߹tf2;7ˌзĮ.73ͫ$@3 JGO5MRP G)F%)xhqEz'xH_h7S7R|}%-_?㙼-jOBn///uvf49w\Gta({Fo{p8هtGÏvH3nO48jyU5˜ac7o7kouoܺ/߼{믿Tv,M&*2Hl`m^ijeI-|r? ]` h왇=QP"R ʚm5\ǫ& - Ѩtq~WnV+իUg9<X<^uskȌkCVcynu5kSBh?6FcV {ۛW;ݖ|6lVwCfZPO]iTQO;Om<=><(jD "ť׮t?ܽEgb! i%JS%J |V(ٗfğe d)7r)?U4r ?q,kp|(_c*O⿔NG87`&Ur|.٧ʖ6=` M"C0xiM33V8^ $g2 s?9tqeʟMdFT|<(wv^:JJπ {i-CCKQ̹7y-k [fͱdb1Gf!U'X}[x6Œ أC>xy^ 4u7777pr}mm}uumuemyyeyqe iaeqqy[wՍen۝^m6F!6 LkiTE~Nrl6|q-EfU`7_>HYh$fU-Ќfv%.j.mujj lfUG!( APfhkF˙?#JKq :GqXK(,1X/RSK2 Ah$qi]hsOWreWX6[:45w'26ikK+yciyB32Dfs3,|T}nsbZ-өSpgj:KE;/ݾ{eu}5:%%¡azvͫvw?M3Vo,6uEۏvvO'8 LKѥt;.v}+/;<`Xw/[=@i9āU`d^0XB}1h;J$/+ 9R:sC7ӆ뵛u݆u6_3k8QeۉnvpڳHK̮,2L깐\z k10EDD3Y8hp^Z^]\DsnB^p2^]ZC^({xTթQն= lg vw{VlGб4I82mv&LRףՁYYYaTFCKGiF7ކEDZ)JB$pEN)> ҆V0`==;)b0uu./a$0SMrR (-qXN,.L*f7}]zsFFxј@ak 5ݩ_ۀ0ӆ :Z̀~u[N׮\__Z\wV{G09Ѫ)43[mnلGFBh4776;6~ŘE }( q^J.~Z xɣ {dsP&"MK)(G3|2vuWjE\;vf+O-F4/d:4\nw6V IrY6x!!NYβ<-oy5NW4CdؿyemyuɤG;SinQE ?o|߸y敫++˭Nſɓ0A`8-7"۷o!rth_MYMGPL%8 g$V¯piq@8 *`yχ2T܍C A%܋ųx&ӬrG+ux%>'HiNWƣ$z qb&tR' %@g:¬ cTcw//lmlҊ,H91kMF@I%#ɧJgg2cWҮف"GG}U$cyP0xTvJ"XqC>Y6gR1n`f+Pdp~rd^e.bЅfC^:!׸A`.,:Kg%Dq@i4Q L6l M&; Cx(C;F2e0*I@ WBYR0 NuǣÏ>xt{d4LFc@͟qɹ9_mj9[)]2c!I 8$')>4 4B`Leatd$e,/+-)hYM(Pmh߰Ea)0QTq'sN՗7@kjZz2ɮޜx8hgh :Ymk!"IȶŎ5Z ?Np#Ԗ Js^L#?Zk%䑾?\NNTa:͆// l轍% 7 #---4@vusL8Dؚ-fX>qs4ќ- (={++}`<ǧ'8. = ;VVVoϿ򍛷766!$>8 )NwiɀN׻vիW} Яϭ(wz͉.58hPMZajb2ԹLZȃ2YA_PE\Fx"/MvC$h}2^e++3-#/o-xͥ+ K-iVv;Ndy6Kh 2xQV]5PlxXNfvҬ<<ョ;dσ8?i~{ҫ݅bq3t'{|Ƀ_l?JBuަ!CÀ^[]y@`0ޥf_Q^ b~̏DsGB\8#H A䅯tgٞc&E %sHWP:A9ڧ8 x~.Wϐ|^ڋ|.>tF >Q|vʏ_>Js,UNTx9H$r_`t)4MH%%"S]OH89^+T*⛠5UgW%`e\%9 $Ef(_ĕ8 )?&] !{{Nv xܠTxB(1H!TIm( lP9nnA,O^^Ɵu0S\_-A)4fV\eX8YaWx2I[ a\OOF') ?K glH7 gQII sB:ua3$4N2Zimh^K3mTARL,- -2XcJtVTO%J^5|٪m.@Dnj5q%]]@м rm..v.m,|tO~ɃO>:aՈ43fܸwnf|wMEiV4!T8K*[EeUQmi#BC(1)f^Udh썡4[5v 7P?Ѱ&C^4#Z7^lUofv!"-;OO kTC)@40^Y?:;{mw696"<O?qx[h~8L{{ݧOēa-<>> bbIatz r|tO>/~ӟ?_}cd8>?Hh{Nimݕey<ǯ/Q"\yϗ(D(وsm*0*g*BgU"ɯlD  8_E³Gz9EQ֊ D'K;DMXN! Y$ʙP 9p/"h_1 3d\"agʜ3HfX`Fknr '@,I!J 88~>L8zzq\O$GD ncp,_yfDW.YrUYۭ߉뵚MMl*%9O՛W~YT jҚgqJ2K"a7tbNsK4D048& aQ )M\fRy~R}~^ Jb yV"`C/mr lqθ0A#P43¨J05֛my VK,O_Ɨ@i7nB#\Yi3/s2eyI[p:cP\b SyIOҶdAѝV,ry[Zm; $ǹ6Wў4OӑBiFݸzy|Z^V6-2{?׻+Zsrڽ~^w pspgLig_pE>)_ko;V{Ƀ>/~տSl6ǃ6 P!%bfhq #@2\_Z^/28BUNq(C pKKdPzQ4 (Mޏ,)1@p6jT~ze^VZ% Zoڞn:mױ┯ǥv:e(-PdNm卅ބۏśfWOeql5mvB FiyϦ28ƻGax3*2{i{ vh'?O~O#I?F _$2I 4<=BS8,g sB l4._A_4E<\{1K=񴝫WdFseC4́M8 rR%xbFKXlyr@ >@g'"y(OD|p^e)ΉKU8/s|URDzL ,n( gD3)`yKS)5Fa8e(-K/`͠s/ [,( ;̘x̓)-4L XhU)7@[.*ZqD1ߙsLHRJ1!hB12ȗ#\^(<R@erX$. XvG< 5b ԁbgqVDi&eVnXj)j) xٳ҂VY35,}sI¸ʁp +"8V\֪Эw^õ,ΘY:N/k4t`<$nWƵ*MhV$T~gEI@OM ͐<*#4LjčgNRvmpF-Z5jk[vLr@4'Un>{mQ,OqhnFӺvy3˳ӟШݭf }2~su;Nd]6Ӂ;çQ2,#5DBnoaɃG?~?yh<}bx2 NpN >vN3p~9}~ij|UEւih,OjY3T{{//?g =~h{{{4 o!{'{OONauNXAۃW@{Ǘׯo/b^ ̰#ePON͞_Eΐ"Ա"ⳋ9#@r-$P &*(MCC  ձ~y@Pﻐ$;H(kEp꫺3DW3"+s]zP|⼠\6Jtscm&sId*h~IwvR*d_t@dzg7~߄'J$޹jq̑qyR 晀.h"hr12FCgP!4 D9;GJ~I'EŊ 穸DdirptY9xٝ {?J",HQG#\+rs|SÅs' Kz߀Ɉh# $e)GiF/z'J{kz+=uegj+ahqL DZ@ySz*RF$bHX՛owP?s[`4<{~ZA6QQ[j.0쇃Z2<{w?>;dh|]#'lz| PVsggx8'˲>Chrl3% 5NMq %ƥ}4$*Α&XY A@l2Q-)BbvkJ*X,G_tIe @י -\>QIem4>g4"uQIg'tqxh`2aL<|}Ox8> w?YO'wS!(\ [# c9l==ܝ |WH"+ƓjW7[mH)ɞloXuѨ*߮ !@ML ΋p#) zAO>$XEe.pu6Srg7|{\#y\jf5(]|<9;ZȳY< f1@?qi5OU Lm+ypYDo1 K.iyLV]c~⏎pcĈť!4Qb1Gb@.|?go?? `}:P7~gG;m_'o}f~C-va" S`Y<PEI`T**̟_AB ۖwײHL!Y2>&_/?|-ijY"5S—F8Xa5< P-dZu|QO7('#PP6`=`p"lP+\/ o12H sŒ6p7KD"z8^4! H.0 8&w:Fgg''}Hp3bRPr5 Dmc5۪;vs۵Z^wVm8NͲ\p &tZϩ&9n ʱiEgi&AiHEu,#O<ɥI!MKy&sY")LsB,K-'؊ȶp橺# VlQɹ.ҥZaF\ʴ2RHC9 ҐSBN#5\NrKBe\$ t1J%$C~ʕ.%Pɺ7ŜRD&HoQ(`i0Ք65gs[Qt^%<2^gpP 9y[J ט5QMR/EͶ ͚n۩FL8 ($Q-W)H/aXX.*\1Nr0fx0䓏A4;M`Ǿ/ @6Uly$̐Dbst2i>,A"$!sP@Op%f3;܍3~H^S=|kaqT/\rƑ S <B&.DW4벂xwN!h @E0pE@%|H> X֎l!"P#Aac&33#g41VHTD`b+^.Phs6~8f1ΰ"C k5!'7,3!g? _5AO$^ph$'"Y5 iQȋR%hr"#  )*8Lb۞ J` F&Wd6֥H ٴm65gcZ`"/s$PF) >VrE HT`QHFI[n鴼ZݓM+,%'0$4g=~^\K="E`9󵷿k|k *Z~QKk(A* F'k$ep̬ ̀ )F>|=pxQak[Sak[^KO`׷o|s??ݵz ]`̃1ה=DiP(T 4ySpBSCGCMQ{`>@)+i$VSEW埫KF$i>Fgg?f)[Bs{woMʗ}TSA1 j]ȗX)PWU\5a^!< ՛r޾z (zK"?.n _ _/^ΠT]OU._ÿ́T)dPc ɞ&t0g}'''GGc8x!vdbU&|Bfhύ*<%Xq"/mpuBKQp\EHcږOa':ClazyTAXҹOU6>Tlw^>Uvҩ1D$ zɱFsk\hLl!#Ab_ YV[B'r-z`!e ??t;@ pG WplHS>aps6sNy)8Hy-2@4?/rʡ XM%49QS|N(445t&D,˪.zZYTHY 4i+I"YYj3z-ײu MR d$߱}FH3d'RKI 1Keb,D$A5z(gϞ="#; שּׁ83qiQ _{G3x>*Z",džy-"y jقKQ[ K\M0%, 7o+MeVnx;ՍlI[6vnm֍{omz={(5:h UA!CZ[;F{-ٟz7vD* }CC+5KIj=ʻEZr::>K rb@{ohfЇ^gc@[ãgz.kl6`Sx6pS^qBLzB;4/iMx4-ͲK6 Z1u&_>I KGZ!R1L #X!B1vEq'X1, !+eaq2A/Yx=/K[gʭZl*T1Ȳ tGY:95KWm 8F4SU#b>'6b#Lxvf5Se lIxQKbZB/ %AT$ mN٩nVd@Mg9m7xajpAŪ8>{RYB2Nua)Jmo"!Bpq#W)vJ !pfh`.* .2_Cb2m=N8c.A_7-9c+(G8Iu+JT=.-aƱeP2bBΪ è@& ~%6p&rںa1yjv2Pp5TyduKk׍n6Vl8k.iPE&lPLA )L9ouM(hWΟd< @YU:I4/;B@U]GAnpiYf*Bv}\ŹMoV޲z;[w^V(3|EZ  K*/G "BHP\lBd*CFZ K~^B0+1 ^tIUuHT̒_߯~/Sd q,]^sI"Ջ|ѵcZEx0! x9 FVHz\ ]Z <`/O`wtbe`G%ͧS9"8m署hLin1je)@ ,H4#IًE"g)NeaȊUV,ehUYea: ګlvۛۛ[k7?o6LqjcDCsa9XͪzqȐ*KX##d dZ,ba@ jC~تDƜ[Fg )PH.eb]7* ET(4>88{G|yBҶ67~ zhA<:Gjq3zBÆz' 5 JN 1s:&|4NyRf~ybbtA96ܚ?|_o~p29Ϊ46Ԡ(S7lj gq/N%Ǜ[\%0HFi@Oxh4}0t7ɟ Ktʾ< `DOeu~aB:\"38_\Q-.员UקzE/Iyi.F‰*F㐵 v"zI/:E-Ԃg0L HSĎjG +D L,f"V-@ Wĵ`1 `;e%؉>A\oFU Epdpnnipu:km+=\Jz)J)RG$ ATBĐ5-r* RLG;7!k˂)X)6.$U^lnd@\edb`4`. A+kҊO 2Mr f(N|fɒYeQQ$9⨲rŀlK]&[^-gfkO H([9,AVBN"?qz>Be%y#Ybf$ 4TDx{_Ϟu4<塦DP M{n^~A3p>DC1= Dt5#)t+ZPfS[FY^Ex~>:>>}[8?{w:%z`ч޳25CB dZeZ2sRrbu4/@>kr9X _$*U6ˡv67q>tp6yOߝ>8saKW6;;NW7s] ,8jԚ:$+(Mpf)-*Y2U9[Is5UMUl84j/2.9|@8qG~胏D7|K;.X_a+ƣP3VbY LE @&E(Q A#P*0s p8F8gz6❢X):OE'hҖnX fx AL,_ĭx`C#0x\ Mպ4fU--',[ sB |eXNPJ<[ŶJ WJ篗$a$Cj޺sֽVvv^jbN<^0tB8H"ODF_iZl$1Dr6+H\nV-)boeF&Pq*EA%e"+9 `2RQ-& + (6R\S`ϴTK3-/`Qkզu`ܒ22ؕl=FR7dI܎Z-VQB@xTrGDVeԯf{{_§و(t"m=h!m2]tarP y&sMLSy~Jkq7?5Y۶z`jZ2kۛQy.+Y~fը{◸Jb1 HJ"ՂRa@ԥH=8C$DE~~CTh7_{u;W"*J+0>8:z{ UV FEb5`s'fTsdEt:<8>|{?<ݓOOO3?9[5BDT"΃,9+B}H=6խfhwdNwt܇Gv@$\ݎAa dBt8>{Q}q/KfB瑪8!ʅ.Z4CiPv#nB0d(E)X=H|YT%Eī.gI~ ^PUnHA"A/TVoI@BL"& 0BlYf1-2j:aW&"^H$4O- ]סEɷm#2hعuckmckZVͫ{gqmim&P Z%c0jݑ;^Nblo#~ta &1k[p&RJl쇋0 %򆫸XZdZeK)mpHrt繶n^p5'Q(AD:nRW{1ؓB jrPZyoݾRn;5iEVDrNzHZ(z.멤%%FX#ouTL|? q!E~EY szX}GG==} Ss6&"')OV0Zk;";:<}tggñ\rͭ޽;S/{mqBLZHyg`I2UΈ.RnaP`&Y*&jѳ}8#b~t(Ψ~PEl}{'*޺}ۢ濠Wg?QB T<;?<$t͂l^x J8MC>b.@Rc,suDZTy'Sm=dazdXo @Xe P5)+dlppR056WWǍxwl>@j,Co[f"3 mRkxQ<8jMsN*IIώ>'5r< Ot<;?9W$E%lt͵RjR_r/+Ԫ p5JthH>pwoӃtd Nd_ ռFp:**}YU,'^ [V%+3u :99ږ_>F-TA($eR+;aA+F;!Ep$}8"~_cE""F*q-^#H@FpV1ZY@s" `D@]K.Q p$gQ▔EȢ3K@JH5bx499>yGL0D5,ެ5;-p%6YJ+t5%%c3M͛zߛMy'rk5ֺY+ְ'#Ck5h'4p^Kp1 d?\84 39@ q TC-!r iCaA x2[4~zzvm2)*JQZJZ_iK?ࣃ8 HLq{+76;+zfm1cxut͚ RѢOCilYԟh -EY_۩Mf6O|]]o.,|A8n6^z/y vrtv|p: YC8NP\S%UWy,ΆPEADFVBVYL1]!cSXa"<`2gip>8{O>蟝ن}Nd/K>b;q*}.J"< F/7>t58C8F̈́7,Y]]r:2*-nmUca$~R7  FX΋V8) %à` gb0 8o0q#pvcs ,4rZiPKC=-szP%Scvs,%I6L=z>pl> ۭy^wlss xmcc mscm;;^z]=\YRvvsqLݰ AGr"9XdT@䶛ys,p㬈2$W!V_Iပ4 Oc wp,õt:fH`8A4[`4LIEe]Zmxvuss{w{wkuW_k:O8ÅZr/ٜm9bDh\2A) oƢvYZK\iV l{8LM]X,绻4HZzcusc}{se}izMLZkwW۰5ϱ9OWe(}SEt͸ctjيv_Yj7<|>KoiNjT%ـ5?ӐkJEg"%1QE)\LiJhM9"%q|u [VzG_6iZ.t:?=zO?vYo4To}]͊ Nѭ[&Zn7Z5qٱω;|4j׹"~9VP(q\sik [--vʱQqX=ңUhBV2&51?Yucei\*W6݈Er~2I>j6=?? Ҵ2YTEy|-ja7Ns\bc&Ja@5.KUwMa!y8`ںw _ {6?NRA@HpE˫{PA|ʃa3W/}/E!A/ϰYq|AWWU}A_]y}+z\W.Ɲ(EFU< ~z{{]#"3@|VaJb(BהN;I0 { @3,sn$ob,0ūX2 s}N UXV" @9*+I(RهxZX`9̒R+,2}=gz05⹙pQw~w3%w qبT,dl2:? ᴘ2Yj[f٪a)Xb2Phz*)H?C-iloll޼}cvwuVםUz*;͢z-p[N wvWmNuڝpMeixYw͆g4jZSB1r7H50)D^/{s.厔[<\vbV4˝VY+Vk ]2B"`W)#wN T^9%+ 9\tၓUv^ai (D5xވ V٬i:L7`e+mtm Վ5 2?ҐQ`끅u*φA$ԕlhoЪfŹ8G1~X'kZ3V >Q5""GwrgG\n x6Ng>H+,slO&q4Q17r͓ +Tjk+]Cש*Z^s cjC]QQg^KsNO''I^EiOh&ӀNRKݐ6Wԡeσd6a'p+ʏ8Õb: L82c KӖS H堪Ė,G4qSiv&TPԒJQp:h8aim۫aOt啍40݇tllm''B~TI__ڶmkqFL|A+$Vdb|PἊ*M%ݕzއFc/e( $Lf8B-!^ʯxwu,_uVR2"{ R~&nP 9x?!qUAgdE׫RYѲ(nʆ#cUI\>,h >lƯ#/Ŋ >9O$|cnd5\95@`Z,M*2ת yf%JqC5OԂ w7IPF>*т$~HvE"a }:M> eb|1fQC!(a &'u6fqj!26V ׸Slӱ 5kըY<0s͸ #VPĈ:j X.]pU-\"=\$犚LpP@2P``tRגjzC]m轚vfA Kp!P`idEuo[HEX$#dK5+Gd)h{m'yGUj5O_6-M39nY:eX2T0b$ #-AUk8gtX(JBFzQвRZj(%4>8xVjqpU8NQa L ޒl;'<*O˫,$9==|֙>; ~n[WHzq,%{^ZCg 󈥨(hz]i5M5q %.uI| 9 @tvw:.2O>:>9 èz4$%H&kfn,6C@@lbX!BWXre17H;qC>cdK/Mz,e Kx@fRұd)B\d/F!A4ol;k+a0>ƣ\QwԕҲ$J]: LMH\C' Qn-<[o__;ܼywrrrv~3UsvNUx[Ӹ[3qT`(-m~Ҩ{ݕͭ>yzzگŴݪPM H*^aHzBKW@oDdNA/nj/MKaE 2QLjNO|X\dJ|,iuȂ*vR' 8kAHp~(Q8( tOkR"`qhR3 t~ʯ4H- c2W^ʏeNU$rB]%//L<_x⏨Y|w+7qJc Vy/xWr-|=MH7˘a+K*d9ځKr9'PeëG> #=qb1u,5TSa*,#0!#L5fWa6Zlr:X( ̢ ?Dv?)tN_-Q&,N ZPu4VU%[m O* Zn5ȜI :8@9pQZ4/GJ<'z.*uilv^Ԭc{Br[5/,bX;*Q)rSTgt0vEsjT$hgW XFT(5QKXQ.G]'/\:"?ȍX@i y~*JHfhڝNl4^ݶ]15-m=U L8M?g{l\i 5V TlK1 T``[%<%hySP^,4$*j@ R9@Gu2&wGh/`ͭ;OsMEp0ttV+=X gC٘gl~$JRDz֍xi}//V݂&n,A f۫cV{+^lju"nڨbBPOB$*,٧>>>>Di1򥟃Ҹ$ |4YVdnH t`m6_4L,u<Z ĵf =0&j;ñkk^5[zǫ{nͱ꺑كŻN>yxwrzxz~t:8N'ŌFj“<8N`4>{ӇO<޽ɧ|ǏgO9``FqJ$]@ҒMI6UlCvT4M\)6 }Ӑwk[[ݍN `qDP XegaVDicBρ(EY5ּLSUBMC5E} 1bɽ dD> q:pJ" .i!Vm8W<שy5Ws,5M1\k7j.-zѶowg~0Q|p;b׭x]4~{f1,HpOn5ݕ@TEJ%eXLfQFSO]+%M(J, 7٦߾}[q>~Us?! 7!7XXjitZJj6k5*T(2Rlc#+_,Q o5[j>A4nqQC_Y;H ]M7UnC Q(0D:s8Sì9cipa!SG- m+SIXEO'{_%ݺճnw[kV~\^kzr-qN#U,u?Sg>" 8U \5~,%BNs~@8y|tw \ !]4UƏD nSF )*zM'n}IOQajnVWVvvvܾk_y-0ok޹ukh^B%5Vф )*'FBYqTTv\):{ hY]-^-BU(#g~sыY|b HjT\&2W`|\IԹlj%Vqqt4pT\]]Ś[KK,.|1Ÿp^ )%Y,Rf * .ȑ@5'gd 5qTB  YXt }]ŦVjeɲ[6U"Pd@ |6LNΎǧ'GG'GG{{=vpz| >|1ǧpמOt:5 ,撜jyag]rAZWіe hôC\Rvfvb,wZݵ杵v H3 YD&fj)ҖU(VO!qj_43G?*؆px9$@H$9`hTB?KX0Qs)j, KPbeaGa'`6]=tYԻ;4r5 )r0XRit7; 8Q)š6l TJςUzme#nZ|#+Yr@p3MRַ6n@\,*5}=8XfjIZ,LJHDiP_DiPLNg\F /J77[Js,`hf T)9+V+aS}RhcI_(4LBv*l&VZ] >_%f676vnDFQM&ҠjBX3YQ$< \ ǥ~ XP1Y\7wvz뭯~|p~曀jpo޼qc{kk\nȭflh#bs/g=9]Y0E$0=v1HQ"M_(j%Av  t )b&"ˡԢ˜ʒVdK]u!.G:ʂ%Es;dua:%!|2BNB%{>Oa{^!)[ñ9_% eS!@-Nƣ!ў'R E~Qc*Chɟ!H32"F^2/U7T pK8+TAT0ydnݸ 'KE%Ɗ F)Ke>S1*K~#zKFdӴgh$ }K~9Cp ;J7D{Y`G7(>zʥV `u t.2V=KoqlE`JK-vVK4O|e ay@4 '&7(8%F WfUg1/PBtb JU`2}>vY`Sk0y iYY"XDL&rF%k>"0f^)p4m.5pCR=I$<4*L" G"X*N.9,'Hjm +4kn۵fíymlhVziph:W\ -4Pi^@'~]FsZM̱ f5Cru @VOPZՄF\VR6g s 4Θ&}VZCWl0B/$%J8VP0~@L20gKWaiǎ\eן}3K&"CH, +Z<|tv$a A^L,IA-Bw:g6"q|G'|zgwum=4 01ÍeAtT qYRQpu )0FܟCD(n/|'ߩ,e_=ۃ/'jK.JN1u^7OEFNXs'5! NTE£7np,ǻO xqĭ:_ P Wğ'^zDepAw#_P.GU8BWߌy5\^ z7_UQUl/ lyr?E1[o@4~yVߟ@#.G Wˁ0՛[<D0 u溭Z `gqt]S)'?/@}'_hU8Bk &'~I+梊q8iȲp/NdYH S5 LUmِXQQ"baHJ Wݩ)_iw6[7V;=ϱWD;K \& ކIS!hE`TFFف"QSYJ'*EBVƉoG>dzfu$ D[˺oD4t<[臓xpv6Z[M0ڟ4bTZ9ѣo&ǫeHś(h8 £n[+֚Z3L`rl(!UQl:B?82 @C /m5sv{O,6/gOQqLsBq'PqNfKhdPPX_}-*4M?zu8.e[~dPpP34- `@USNX]Y-;.1P/t.  f8=;:{ ~Y7ľx4hHN*ު5z]봝VӪ7LnڞrJ LaV O3F,7zZt=1iu.0ʁۅ (s|0q<#t˖-/.8shja1g0fGx:L\Nlz|t x5ONN}?PwH#)% EEe*>==~|}:꟞ͦS<CI-yCv׫#u귷nlow[7qisskscwo<0JJt;+=zv!u:+*kJ]f]otkxnsSw:25lj+ KƉE*%QXyS,Z?G$gE%R5ϪХBGT =Y$~Qy-8Li(G7yr50MrT1N\ea]v;ynغ`3O<*J(,WL 3-Τ$Ze_$l@L ^zh\Zvh`C#U*MY2銭,5ɅIn&yPl-inmyi 芭([sNys՝Ng5EB4484$B8.H'.M``Re5 6ИhIfS2@ DoLHu=8On".eK$;|u1UT8 0AGG0=<>9Q{q{E / 纍NkջmӶMְܚ F(Ͷ)JUi8FRb'̕n <'xRn;.~Ҟ 0hmX[ZplW2]?ώg'i怹FE1W}rl1z! @9l2pp=>.n1YdDP̦ [_w| Ua0\zBEDgj*uӃUJϪ7mN5mނ-PbxVtSHQfp-ˁ+k:3Ȁb '|Ȫ\1ù9j\'Գ|'~}>;/N/& VV EőƓ'>?:ݎmۨI"DѨУ/rE=Xհ qÒDW.r~X!.%W|s,y|ʥ y/^ egH2%`cJjn`7}P0KV___t:0# Og0B5wFK%Ɩ~<_EFBVQuPUJ\ WA—@W^ ep𼘍 g"cp Ta$aAڋ=➫"0f?@ @htB_^|gpE44^_3ǁrvvOZM*aЛgik`08-Qr%9jڞ!y!)-2XH2OL$dj=8Xp Q"L7NBT.X-A̧^G{@MLgP4(dU`5vaW1v0!L cs~ b+>^*!=\Y)9 ܹB/I'WO&'O~^jr0 !N7m3\&bQ{HQ!sH N2"ېƚD+ r-DmEqU!L5B aPx*,0$sTT LS4K3ämV/Y#TD<ʶ5jbcGފf9Osx(#nZz7#['̉<&bZN@);VUsȟj33 ¹]$zio#a JC5 N]՛d(Z`Տa WتݾhuDIa6a @,X E"Rq@aMY#fxa|`VQmGi{:p~ Re>2 ~*B%o4~︷:??Z4|懋䆰BZ,6%C/cp??8~l-}Iftb!(`pzz?;= D֠(csf4gƥ=z L=ɵzij^ȣy.7{^Bi_Vn$n_4;rth6+FGpLd=&2MhkSEƕʺY_ju+s4eBuR;9#M4Y6qt2YU'F>?xƍhY 32Ja?q|ǧgӳa͡yKő#Qz>l4h哂NYo[o \︴4I %ΨO~!hgQU"d 3& pn0%[O $,i+١۪0>q!|ѫኮ":UJ߂pyd(ڒ  WX=.N9SyO}\Z84m6@M1x?ApqWFhY#د0L9vm<~V7OT|8'bIzv>P8F  #Ge | X`#J^䄃P)I~)! 8KC,G&a0|͔,PyȦr)UMAR A`2J ` -*#jHp% ?߻qi;Zz[iV U)-U564kVq8и#qURņ)&XEFFcv]tbtA0)"a( ]s,ڍn6:F[lߪ*rڶ4ett è"( %.Z|٭'$>3Սw{nk59ӓyvDiUv;,g5=ypaQe`Yl;XXmi8B"(c%.AN_?ޭF(KkŪjQD2,yVdǓ]& KB]іis%zӳ5%`) ;dZ%`.1(`ۯ_k?K{oiܴQa8:QR9POR6Y8djχ"֭j7^zӨwy?ytTw0MH<HR:Qab9?ʎ#e:FS 3OGFw0Et !T_σ0{Y(wv;w#‘/~7E%1G8=YiZL3T).C@l, k-P"鹖X:_///. n pqQp'QN!`5%vpuJRF_V Bz'9 #y2 >sa,T0#t %"s6>}͛o8?-?88<;#yD>Χt4cb:gS|硿Xr<q](PZC `eP{p`>>-"˄iydPcc5`y98>'J5˱eUQr,VH,sG %UyP"( md6.~Q(<6!h˗ÂtQcQoܸ7oKBbċ^< UUξtC^WZMjĹ=x q`vv*::<><8;{~ッӣӣ  p2NF#`阣fbaEl :RnYBBƵȸ_$]"lBKdnM1?Ň r([9"/|$_EA.B_p"; ڏ'ANķ9NZma: U -p pWZޮJ8ZӐjJS%O-]9x/@4WSjoolܹyޭ۷wnl߀u{.kV;[[k+^^Ukkk+vus{RᖹF!2Ob?(P1[~*f[tukW{mw /wZYhPY0D) ZMJF8H<Mq&f- @il?GQP_*xAK9MU؈ҺVҤ ĤA\pjKS[HrbRCփ3**!qlYjXdt8^OCM jk;[޾\_onX}k[?_n3ȓ |uIb(=>=>`IRrz<LJ *..[O  m~yUhb.Cw⭴ѨNTm(_]]ťW{<Ǐw*b 5t^g@ۊ%mԤN1^yRx.KJ=8 r2jhD1Y><֍4hlch"u>+YbP?BOV gGݹ?Gt?9zH5l߹syx>_x57` PUA!ʞONX@T,֩PۅPȒkkw;^_%~us ኮ!xޗ/-{?_JHH.C/ABg.\ uU-_׾ yrOz@$j^I;/_B%xJQڨ#*u#GNy  Z%\ %Ah h|ġDVQ16nRc, 6Nf |82!.ǂqu\:2n4"~8\CCw]Ӹݚ[[qAF(> /hչe{3+Di@pydX`\1VD ݲLZDeqZ-H_DYXpb9T>z@KL2u#bU\O[f*YjHn`f29 K3l?\?\ɂI-P,Z"@v^g}ck}cjq2>>BD !oշ߸}J0)]mrYT%^4V+'Ҧ*ZȌvU.:9٧Yj^mZn]qk|/?PK!ܓcK>cVxer ҏck;i2ƧŰ[PުWp&08|2 壓k܈uU32NfA<` y\c8 j529*Qevf;l}@C5%dA Ս#B%dӬ/5SV-q2 Ϭ2#0ʁFū"HqgVV"dtz:9;yl6-d7;.'F! s9}1^{uZ(;zX{8N>bCRأ{EϣZuVz&3thrCᴵ0&[4,I,Μ[済 A}?pR^rd.S% ∁/\ʣ0:Φlv>쟟с> GY:"4s6kqJz |4On'7vni>>9Oew^Zjm@'5}(_Jo}| drZ G WGPrվ=d`6_=};\/J GΦ A 01E K*WɈl'( +hSpf| yx4_#:_}4e眀d$B%ߋ^2mb"z@'cQ!VU mȗ /8V1g(8>;n sVx BṱRaŐ,sc7iX; 5UNjX uph NZyur7CBZeY>{x:xx8xʶCU<9KǃFaEQL2ٹ [,NNf 0gmI뭭={t y%!2"`X4(xi(M&# #߇ njnXrGG?S?u(mx>tm=0-2k9bfV0L}/)ypH$w"P} T$.?K$D̆d0 "W>KWfs:VE[! 5 PK.ATxmIKN"<33@xqQ|pfɜusUq=8BQ(YT"Q82Ub^WA0"b94 p7(n1 cxi Tp<$3ψ&?4/Y b5_ oN`Q}bvBOe_[(ǔcV%ylNÇ4 1vvK t Hɍ9d t @MsL2ou/U9LfᲚW%)l`Dxtz;rݮ:8Euz阦h;Uǩ-2 ӫyd@i PZYKibH)VF!*sKJ"9Y(L; g>zZ4Td1ʃE˼ ]wFr8M» |O܅@jbq_@8zURqU'@pra  jNk^vKW +d+d kzRi"izeZOP*irQB$zl ҢNӑoxgittt;0~` V_qf 4W'OEp0:,'3ݾO|ze}d`tԟM0IV ޳'6)LJ_@/ x ]8N2 @3gW O;6Jh:A!'S_!qnu7 ts-#p (*| ;ZsAՓS i46֬N4XT[TH͖3+idghσ/N vWV/&1 *s}m=МIʨ!BT'4p:zW9@BX;7^. Uf 0‡y\ѡr]+ͨl?>~GρCPQry[[Tt`5myKƔ a ZN"{)pX1e bVO!PsDF8C|E#0%C\g,&B^XT:K~]X,99 l5ب.ݜ6%ߔB3-Zvě 8 (@^۠OAЏ+.ΐ*ةI`ظjyfAA<Ȧ~6YdE6ϦqȔy.JDZPI(3 jmHFysFMVzh5 ۖd> (Ll钩pm] *`M!5Nn׬Vn՝VigyYoԪ\0F0YowZݕzlu[n+]$,ZDf59wmRR K>89iV-7H.p`unT4*uaIDATl}qc: el2LGIb  LjcX-a;u˂1!00c(CG'k@8%kY66T:!pN!da]/ͦlpN)7KDpUXmeȚJ''8Ojh4Z+uU Mgv) ,pgnw?<7 [n$󜕵AL7l=! aJ^o+Va֚-Ӵ4 vi d9 CcWѵ xvv>OvPF:Q>Pd2 '_Ei׿w4\2'(ESZ{m`Vi$A4:;ga"cmu-];skjͺlvj5k2;vkP̮8sbZÙ۴Yg;8InYFk+e=6iVm&)6ʌXM- ir57VZnl,[/x1OOg؏@1W$]HCYbkn-MS@< (ZiZ:H/\/I&$U[U 7@Ճp?m&uSֽ{~rf0լ[oF0*"|: eitv%Dm8rl,|b?Yy;mF/e0aONN4x2zR{}@i֧h'PV/s9"`1ٌJE5]b @n- [ϊ( 0U1}j'?~ya; WIs<4=@鄲0ʉ GcN.o3 /~<*ھ=Kg'g'0y}6FkfCq[O?g[k(/\2,O> )Vsc'5I{ϟ={8PIPja΄]#ʬ"ҐVe'#~gz{S1>Bcʠ,r3K8KBOfLĒHf,)g l-cO(DLp&WUg߻O3{8Kz57D6a ;%c%R\uY7JC4%R1U&r$SM*dup3<4h&F'.~5cB 0dF8rDU+xfhbJӣ$L:*@4Ml_(F[6X]ꎭ% x&c2! E!k(V\右O+0m]3PqE1h\d)ax%\8fYp,.a=oU~ظY׾O~'n)(N#JS殑V[r*0Ķ kj!6Q &sr =H~ŻQj˭Ah80*(J۪*=yd0xRچXr|j(kσM"4[k5J^,H-r>}$\0#Y5( Sx,.L3JURM]YivX<[>%RP#l[2-VBj( C4]^Wc΋Yg'wp>\XgR=1ddQ`>;(2ggкd0Zauay,Mm}w??HE֫\@CV^ M'Duf*jужf /*BfFO.#/1!~B9 Fp 'CEU.xWa*~ mG+íZńZ'YĘ B? Ti1/QhU'.** SQJ3 ?5h8F6\tf#DS"/fѸ>:@eAbFVfg[]t[j:& 'C @ 9 5QUKP8傭hDe2 82*JS@4%RUp_ex=qdxff uaf> @UÄ-YyjmBPบjM"F͋N7UR9<:Q9)~`! B^l4̢PH'/(iFG˂/<<NQ~>]S(mݵ]KTy_n@J-%! {An6VW_Ei]7ܛj),:EB C'MQ}TbEL򊳔# 9L>`o˦ztNΏ_1$G[ כ;;? OL+8Z~mA7VU;gX!l0z<'Anڪzz++ce %piVU 2aw :5KЁx眞K͖2@9D/U`v9qŶ6 G|G, 6$@T<(5뚩ql:cŽà/;̞NT' ]v eĶ/h%5cd8y,#AP)В(`Dk̏ ^AMIQ$g90\8/ҸjY%nj"xk+q7,jœHMe+"@ܞc Yq4mk^s95OM$\-~JJn3glu`*WQRELWu,8S PW5D@U O\`q)*VwuQkɵެt7WW )$9N,< Rx ؾzQd],ҁPPZH/(T PZժ/PEaBdE/)^CG`q4QدԚloz6VD5ODj/}Z$ MSTk }wZ!l=]$(TSt+yNvFax-z(h4>=Q@ E*o{wuO OOFG4 beMǰmfBi0"%G*LNoB@ږpi < J-,n[Uq"gRX bdب]p|Uxtx{<'?`dL`{aùگQgw>dgDlWͭtnk_1廭W__7yN>pRZri,tankF?Elgftf$1ʭNl#{:6zILF(F-1FgOAOp{|SMu5kUVݱ`ixnZ5S۵D5B%mo LrluI/Z!4FbH8+K] '4a Qa9р# hԴ DQ173($?/y9YVLbN(4ͤY. iQ$l0+#"ʐ50M|r`;h/Ejnď/kv NlR"jHRƦ6]emowf)7ٱq~ J?9VcosZ46^wj8ieԬHNO祚E<y48xr:}t4_~>~`|>nx|ln,hk}_2ɴt^ Ć  '5`SOjGzNqARu|A>z8WTR=ո\!J|/8qk͌X)šfd[.4N ` il|MT Z1`=.-%9[x6 5 nг!@d]CNqC-.ox6'QJjV3p1p Ї᠄$Rԝe-, D BeEs)}8qtwb0N<,E!CFCׅh2<IĚ5͵[^Ud 6y׫l`*d5/aPTʴjffʵR6) rR EY6 C}s j0YD)DͮC=("Ip;X/_LgVol7nmu7q֟""-2,ø<~`gO'ys|:??ɟ?}4ͷ+{~`Y ZfyzhN;Ϝ`8<{~A;K֧yBB[D/ə"-q̣qcVv =E٥f=ؿ%۷5Xv* h1a[{˳Aql6i,z3 ]P.vX'(e+v4]?FOYۍ;׾ɧ~>T2۔8f4c{Dž hv_Y,kښJ )rFs8J"Qrn^ Z.~?;=)*?[rQ+ʼnۿ ضS,EYnM7 O?F4MQG~PyH2@a$" A|r5,Fsbr&xV p-@x˕/TvB_]!}y稼0/I \z^1x~B+I/1F$pȋt,/53 G\gnO$INNN?O>.!~01jJx8 Fh˩?&J|>JƣpO@etLJ.[|}bOZL2Dʨ#2YZU:Ү@(ެzRۋuofzؔ%EF6 >mTZ. =S*eU([K~x0Ó\.[mr}{?y&V,a䝞<_ A8Od)JF^$'OajO%fԮrwg4_:}{P7M$2d|^ 9w}2i3::.J6!9MyLyXG"+_n]u|NCs~;G|sz= ?"<&n?x|:=U5"/..??Gw3NZ[[{ݡ#t:oo}[/g?n?)_|?яM_6lR裏/gͿ7kh4?)ca?%l_8/K/K~zzk˔NI?4u^fo)0dKAߘK@ 7tX,%?AW}|I_9,ͭgfNo=gw|I?{Dx5=<پ1/'fѸ x% 2@S^O} 2f3z@_oC}]rT?'O@owOo֣GgW_7Igd%?D W~fh:G?~%?x,m0w>w>$JVncoRBAL\$58e-:bIWU ȔQ0QZwKn%-켫T69(XU{OpchUUZO1Q.= gŵ[Z*y'-,͖^twlSډ$Zh^`r^\ͬ)W֢-V?j0_,y 3z-BV]jT[rbI8+³klgՖڤSƵ-5^Yw3h*U l Zc$Z?&xĨ7Ҹ!*U Uj58#7~Dcgl_\߯-qdl-Du8b'S?D韾}Ԝ+ڡ7 mlV)jR!dr\A/(EmǬ0rLh\4&;T\* %ԑ[Nj}XV;ց/ ǘZlŀʹU8쀘z!WO\9* 4s1,l:W&d%nnn3*tu%տ?K'}z.W<: z4/f\e0>EN1kƘ׏l?U1wإ ZQ#m6 +R‶VHU18:\5XoG?QrHurUG&H; ˠם""}-}WDT՚o.{ K}AX_o?xzv Bwu^bU+k[ےt/يVba(D4ɠ}}Hy׫^K5@3FPLr-I )F}f󅼾Oʦ\xF#х#@`mҗYKmj[w Jx3\}'ϯ?9d,=9,7dv;U}rgfH@w?o/~WWOO޽W/1N۪7כ;v:\RnL[kVޖ+8kuU>m_}Em֫=c~`*=<U rt6CG-PU8X[le2Kh 5Oas6Ð+&$7}O>aѠoJFQl:ڿw2:f_KH}#믑*ϼ?GFJ?aWgggy}pX,vuNSLklhg Xz{rWK*ki>~;!l~AF r&*g#R6 \~n(r8~6W6h{(HivE B,rX#pȓ[^ TZB3hsU~b< GO"Bo9&̭k?[7[;٥4|ky\^)nEտ?o@Z{}csӗ/^vK]onx4LʕZRj2E3 zސ"Twi( c!L̆ ovsmG"za`2eri&{}e҂4٧oQ c{YvE4ĊFn Gѯ .+-b/gd0] {'݋lIyTDpC*KZt(W׈ͩgyY.(%:.;4Shx|~aIJ#j ?$˵%kʝlRּD0a%?w:NϺr c_h5B>!z\cƝxdEv%)*f'$48$GꬋNpd=2rVoF`0v4)^!EL&rAZ_kEvb@a~+Rͩ>P?uS埌 TږV [#fnnn< χ'Wu~:DNf<\-{pֽr| |i'¦ D:g4Ēxz\ɫ(r{*T|MJT:t<ƒ"2zb8:fq:2`D`חeiBپ2 #E߰74  E„a#_s899?L'a7 Ʒn!)ꕭJgObdTÏ> ῺگT@7 FJȰ|on ܂Q|Q(՚84)ļH86k9 KGc;&ӱӾr@zLmP2], &p8kztE)}UȋlX+cH[!:I [+mūQ>C^n`S}悮hfƆt 6Ԭ [,F ( <8z_ywh1OJk\)/lGC2Z֮͹^g(HҪ+cEܢTp"Mdb& bA]Ҡg2h>h~|FՊHkD)Ѱõdt,H5w,(~}HeU\U؋P6zPɧ(b$IҵpH粕FN4K5jZ]|^#Fo;0=>[~OH_" 挓!cUOUV)9ƚp62W.Y4) -=f՜圎+#q(xӣgO?'?/w?[kf޺Ӫґ~GcYUQfis:YpZ Ք0^kxS1{v8 ?;G$@+}3%TN}A^Bi2$ K#WK3 pS^8{ys/NNMӼ'Wd b&mNT-q3t(ҮlYV0.2ggϟO{/_&Z&٨6˥|21FG>9g?_̧JqXQ8ЛWy3[x,%IXǍIl7ّʰK$hy9  =o4j\ѦK4ԅz\Ԯ/.^ >?8 Dgtɏ&#ve(M,>Q*=׎.C:nV6.'rRI-d }БMJ xO*xEj(G\ \*b:?=x~f&SC/|rt/ E>A$0> M%d'ĥMN|r5А j2x"$`<xy 29O/~E #AS ZM% ىLr5'L,3ɧ^-' & l SXB+ -b>.xOϼ2^)TF\fHH '=|Ѱw1K]9凄īMGpfٸӰv"NufD6 e~_e΂U3mBQސB-(ϧA8 _jR/V?qN%jhÊ1pϪ7tMtj)f_^ol|0.dayg'כ._{=֮I߉7JFN6ׄP}CJ4G/#f岘N{hG%dϝ>}:89/颊z"\pFl!O`ߊDRA,7ejmԡ:(tk5NM};l0!cRsxɉw~N"z9O,tQO'^gL3A*](WH<;n5VR$D(;_RZ-@(j <5"'6Uoޝm|r Q@"-Ϗ:>?>~|2e˜Ψ%%XMZ,Q[Zfcni#wΐ-8Tކ%j?l^<^.3/9 : YRb {/?zw<ыw/^N&,z\k/?X)9@lMC)_lfj{T_ tbF:^W KZ446ͫ'(qH'Y`q[(\Xb׵TT*r8S.hYP;]rYݘC;?<ѓ?|ypr.ɴ-E|BGHuI2N1?)zA/Aի_z^*e*PAj7>˗Ǐ?=|4fgл8 -ǧ^jɡb2{7Y0wc ҹ\\T+VTuFSAOFAՊXngZf!sdT~4.?WχggAtBeju H9BN%o9u,ԢHYP9}㏾dI˫}} m<O?=LEY $s?:xGG)JнbVrn\RŞ[ԩh HƹZcJڭ+Uk"f iskx -VpMAR.]+aS#{~tv1p86v(lTig$|nk F氰!5֖z쓏=}9A֯(BDx;C]M{O>>Q8JR]S/~cM_bID5bUm0lY/m=xڻ/©e6ӓ:󅍽fM akˬX/ӱ/|dgl2/%^?8=럏z ^tF-{57 }|lAxzlڕw)\|^;X?w?fAy^~}tzƍ{/VgI RIq.ZԠǍs:(syioӝ}8M)(ƗLo6+5V@fr3WW uI*vKl6Kγd1??:?8ƣbA =XfC QXD.Px'>'y32+ m 8tn\҅AQlvK7=67vvXpPLgR+rI.m.H3M}UcƓ M˕hfu;yb<^ ¶4\ 5<-VZr(t (kd;Ș]^BjN>OGѳgW.vRp$,0 im|ӋjXJlrzǯ>:|YHk>ޔh T _&(lHU@[s`?~~ Jˮ RtCBq5$S} L-6 `lG~!atYYy&;%KS&;=޾*A]H\. &)i;EO\!kR.z+IMFz"0QWQ}gQ:Zwj9_FhELĂyx\ʰƊ7%9جilmmuo͍뛛&>utaZtz*ԍL VuhQ٤ l 'G |Roجzinxmk q qcO%,MuTB_?pЙpYr o6͒r$}p4ҀtcbDZ 23xW'w([ ~4`sKdԇɹ1~u)aH6\%l΃wyW^k4 ,btD̏HKBf#9k 먄sh!P+ ^w8@+Fz6$S^͒U{k39ۧA,i0 `pztӳn0f W(JBM >c b>WcWnb63Zuˌ-ɠ&Np|z6eتu{6o޼Vm}uSHŐ_uX*b>˻ADv夞DBB]gey}j,UaY`T*p7)`6/c79mt-2FB3Oϟ\ jBZ\.G{z^(ysbfrMg݃COmTV5sB (XAaxO@!2Rb#"q6oڼ}+eDzۡr/i[q<>^ߡo,ISɤ7IRD>qCfvdi3xgalZo'n#wIL>mF#nwtONdzSe0fg,|FZM8ţ#[4= :ḙ-zY!4BuBdښvMMqF5fT8芉uIZf`" /t\?T^,`SHhY!0ƝN;蜝oKs^~H ,|==9=9>98LDŽdjA)0 ` 㳣/_}x{1jXqǏ7E y=xKtQ;S{zDGt:՘XVYٵB"}ADFi+V`>dɀhJxsv.bmv%Eg~o4zaT#H=Rh|{xYF͖QH';:88w.'E;ĀCBI)ϣ [wG~n1>q5R"kWK}:VȫAA`~ŇʬXyjr-%Qm, 8/cVeGsgU$SDsf~ G@Oou"nĢ;k4N}F^wӹ2 Ct"^s +uJkܺӹv"@&!QOVaA߬Tua]9wx)U2ą {[x͞#|>K(8Ƶ䷶_|i8T.&O4Hze{z~v9?._xRl6/˧sX7Jܛ pй _F+wDh0wOQF;c9w9A%Kv;X@6;/ţO{'h4A[$%=SG欯#d[F易 W?ffҐ1WMvg.$iˏ'!l,u,RXd`jlrɯ3kȘSɯXH®ⵉcA-G2&g(nqU5s3t3xg NgGh:w&LQn6k[kb[oL]#rlV\_k5J5W(Y puJ910'm:z|[7ٿHTC.&3:'D8zssv i='٠\.AOo-j˝j=7~U3yd2(q׺A/a'Ag2 u[XyR ęBZٗVh;777Ox3/R|>U6vj7n߸uT,5]p80F!cP*巶o޺lJJ&H?t U^䃏~qL&eƮ-Gszqj/H% ue2YbO9᳏|tDX5J|Hx]LttXOFK@q $s%u끉L&yQ$Om+ 瓋Wzg3#&SlY*lv>R}_>O \Xokx=[Nh3ڧR6u{d&@jGd,,5 kՐ@)qʻԡΪݓ"q\*UfۥvE,r @ '?*}Ao6lӔS둗$E3rl2VRB1lfUek(mk_ihʾiAL tr2դ24gce}c =^+\, Yk<鋥\\ y<6Fghl1ZQ.BIheg3hv2ꞿz'/Gnl:Rw6ԲT.5z](UF[n8]NR*RihF Ӌ/>><| ոZ9-$ 4K Ntb([U6JmW& ;Iۖ`1.f OIwd ө\6ϗ ,iD*] QԪ=2GJc:ZՒ/2V1%L4We0*efdR뵝L*`+~l(`=>av3CgЪ56ZZ6yJ)+I&]b$v9y&[SGBܔ3po;FkiH;M6Nc/p.`FޠM&ِ %:[:5 7B4P Ҭ'SU\ߩyW^oP(ż<+ o^)^6K[lH3 9te|!x88{WLpПKk{[7oZT&Q*WjU,T$RtBaԔe r!*@DWN1`?~iH-0S4su粝c n"\$BwiT΂SyЊ\8z &d\&+g!FBcYeݵt)LS,Xj|\E%E2맛A>O(I1\&ټ !Y،-N^ zh"K%- ЕRYVu LX-3!^23yy=&b/@fȭ]j_G!Yd1 0| gX.t(*mU69 pĨF*L[/0 w R͎٢JcTwFnիɨb6lnۥ|狅RZ(6 T!;ScLIA:{ݓ/&A  rطW w&=ՙ4%k5v;% (bHr~Nv>z9VqhaoŕX{:) nԛBUlo"|I48>:&i4zrrew2_x< 9mIͱbQ!v.UmK$~?9'>asxyL%JmsL,z .4h$&#rdQAFrPIes#SKX̯o>%,Kk'a5jdV0EMʋ+|6]-0|dV'Wb\ywDE}a1I#* 1)iNRjf oggng:{nLF֨A)[wbuvDf6("1a9IԺ{;;ou5@}Nf*0;gꬵ++a+٦'PWunfA3 4W(!T*T&0Tsi1*ͭj](7Rqw2"K]B |,B;$W7/t0yz|7<;7\,R1F}Fƃ.j=ACVRnYf4'uΎ(\9^1) -yS rQ`8M?DO$|9-'1$KҰRno脊r E Kzl+Mm+VJL`RlT bRB.;;ťT"lFm-s(֝5({'Eg{㱼~>eެ3:|*EYx(ձAm$IDΕ 3"f^Sؖğd-  V!c5Ô/VLjIJYf>W׈ ze3"y,hU-;Jgr}[Ҭ@_s@O@zK!° ngEW,^:P4ӝ$Q cf٬50G]'q1Ԣ:av ^B zyѨ'?FބbΤhoXFMO1A/ϧѺOXU@obbF/PadF$|K @V|V{7[kz#71fxUWcP6wiyanx2 Ӟ(ԣbFaӽw;Aa8rjQw:#8 ?9'0+bx秧G^{hO)#XDM,Ҍ._vY@ ʅRPjʭ\ ,!YJVvfZK)KKP i92lOf]" S&- 2feUeh+%=ZM^ǸL3[p?vF_Nq?;%? &`:aWE}P(2rCt(8)=:IghF@N56j"chi5pYFVJBF@g%Em%J&KIS;ch,57 z(YtNs`vWT6:1DoNvFI#JR#Ky>S{(g wcWE{6蟏FdMFzy4Gé7ٵ'AkݽJ6L:~R珦>ӽLh4憌+&X,ȧS[ʻwrw]/ r0Hw"1,m)&8%1eDAȹtbA馂ޣduYB]ЍG}$P(%b^<2>l<\EZy1j2:n䑬Fwj΀r$VpPH]1J Tx5BTMҕ>sP$TD;#ؙRҲ޽A{.y7l;s[ϐiш 0 IZ#XNl&gږ\hM; ;`<y0'QmZZsN>_F`@|dcً~s|.`q,;zO&;!eh:`}ʓ>>dUBBq[J5Qꌟ뭥'{CLG偟WBzÛ=IX & Ե{wj"ƀڈcχe<ʥկPפIc@16r 4a8t8b.+xgLL,~ uKw9S2TVַ6&᛾}Fz;#[u94SU KM0FWN+Jor4w|]~ިono))AJJc+hP)MTb+LH%8|[)d76?w{+wˌI|qnOXH b5!D<ᾔ/zLAwp>p"U'gIrb9UGOe}uckl0G^LH6E}4ׇ-o 8ch& 52]iQbƄejzRM|6OlJ+Y+3IcY$|kҍ[kG2IeIjFBW1gX goh] frufҚN;WaiK4&!# J2,| eRXX*i\rDʆj ER**,,Kf2zo2LRBe30=aBbd/N}1N`u8A!iǛGcݗ6]Z!Cƒh|s錦]V۫шJ\̯+0:Y|Z) y2?#tr5_qkH;ܝn9'SDc#cb14%*1gT].zCdrvX6F |H=sCk!{bQ2;d+n.k:nf'e ;&-f䎓1Lĺ\ xuT,kHAE2T)@JTnΟZF/+L)W{*-WZ֬4J43"tχXbNi CCM5{/('KmѬT>,i~.  3 P, %Ftԓ/O3 țaNӷmOJw~-A˂ML);9$ v/"oJJdir\R5Szj*)&n 9Jssy- \!5+VSzCK@_z@?pO z7peZ9Hb4/z\A=#yKiq`1eWjF\$ҍ ݕcD 0dR._t/.A/ #SHdq6 I&q i7SIJJҬv#! t4TRV״: qJ[A6ԀZבo8HE|" o@[+ʹj@, y7td:fR bajka췾?Ntw׬Ջ^6M%r҃HK;8@\m1[A0 áv6!*'S\1F'dtmThrbh"RKhe|,(_,?ڕ28ƅXZהm˚]$jb]A4RRdn,&gX^#/Ѥ7]ϘS[QNy7*YB3pP,uZpaW x=i:Sr* 뙅:=o"Rr=ǦogIVVF+ڌ뤠yS]iy=-$6d\2W8.|bGzv\=Q7#%`@?^[ùE)gx6r;IS#]K $gE4,Jbt=dۊB@0B}}On9!|K0 e>L&XttZA1" -If[hD^:Dm,z9MX3zO|#U-v~>KXo89:B1YuaJ3s( QY|n2EIەG):Dž|Ѩ5 Fu߽thYWJR. t.A~.g CYtǧG'GA(>Q0B!Pt.s6N/$Ac肪Ħ{ ]Br&odQcu' UoK4~nk+7Ij@G? KE,fgAX {]G}G@T*x CFAbV$c-zBᴺ識1}mԌ۠shsCH-SG*r4S1e']v@lnu!6 S~{W[TӞZ7tӓ0 ir\V7jlVl=5#wNwLԧz6`Y: )Ƌu,DH a;q~MQB*5sWRt UvYryp8 h~*lX {-CAGco6dqǼ/4:ysJ{. Щ޹`.2,UO^ą![N}~1G%Ui8Ph0 cƯŷ_">CN\)ʄc(*KNd[uDakCZЩYUiF z0: j1_)y2m"tc,2RT"I1+EL_D gĜAOnF  u~=Oχ.џ>3wK~0}# Ht6p7O,(ߚX &M'6~&]B= )⠷7I8NA˟ ?dp~κSΣN޳0R(uF5jF#u!Z 1ȑ̟NI⣥2qFo" p;?wΏ_A{qztps ~0nI+/ р4"+^+ ]εO15ֵ,5Qӣ`)A<Ģ_ccuk FLc:rWd]1xu:I?_cLz~x,Ʃc6Hndq1[sbe87 5@We4‡usA**Gtќl2Oz;^{~~A\owХMfy<xI:ǵ=mLGp8!aKH4q<ÌŎ : :/+4E&3YNt}17' ς'Q7n҉y>>~yo?/;oao`78ɤxgƽ+E#dv!Zj!] JD-.r2^pfg~t2A|????8??OQ==>~ud]qhx~v6Lݤ|Nb<yR4]=brgc'c-ӳCaz4M9A%t:S*hjڴb^0m+4<yfl9{gη?|3l@<Tbfvh#I&u@ѭH<5HpԒ?[sH:_™7t0_tw:zi ~? ,Yp`op̫ۛeha.GltBL J9:X1JopIS$(-} N8Ms4-F|y=î:lL̍`@Dw>~;#!h!L&XӶ,?nB%FQ>KG.6:MYc4/\';n_c`aSw0N$G}}Agt?0c; p)!vK(lpqN@2"l ;5Hms;*fd}TQ+FƩ}'?{9~~+"96=Om)*K+\nUu8b }^k5Upn3JKw]h;;[;ft+͔,{asrGG'ɘ;rzE 41G~Kwn\̞,L`Te(s=uf8FN>}?>]\08CW_syw3@'odA.a(xZKNXR#F(g'Ywz!6ҡz.h;ٯj5ޢ[V0E4ϒ^5[kۭ+ժFɤϺDvcߋw{^_a3XDmJ]+!d$][hѡ(%Ď Ƣɢ بY& M'}?>LS7%~Tf@K֞μkvAjT^Fx{bSyr2>Ii{< AoOCJiŚ0,ƵZL-Mv7O24z:c\.6w۹nku~mkc{scQZ>@~=uOg[0ȥ:̾~r Y}GLw Xu,FٮVBci}?8}|xv:unB؊4UBUig"/vpӒH`.]5ɠ#"w!Mj!F{:'Q<3jң>䘒D5 U6]&V7i$I-g^u KLP.6vvZ\,kft^ҙ\*3GS\mwt&hϑdj]DhQ,##uG` }@KNE8 Xx4~?~1M=FLlYd)VV.OZR>kFW d8I Cٳn/QL|13=XdlQ+1V6ĝ/IluL}DpM0Ñb0[kkj\z}QoK%- Dé? vdH@D z9qO&c׸JcTp77Y̲pŋ>shSbA¥Bel)ƚ["; o[taU5il'O؍=棡Dq1Z7nlZ ԸyP)ϰKRE>1^qd\m4׷w߸[߸ʝo_qgMol5+R֏#ݢ: Vܾ5#Je+Q/+P3 #ڡ}< )RaOH P_$3f*Bp\n*4~E/dq6A 'gބOF@Zy@w ?#Ddgm$o#g^s]=]nD4(Jjsmm}k X$cڿj{}cmchW|NɇqXo Ks]4/ P@d2:.m B^ؤE\WG⟌gLf8cOC\]1v:z>K W*sJ\1I,gbN'RdSB(GЏ&Co2)X?+֨ BRy= ~UԚ\wn߸֭߻s߹n*B0DH?u O{.D煬aĸmZLG~|is@E'Gkv)ju5b}ɂܑSNnzi2WKi\:5Lb!T}'ٳv0f5j8=[vrMfX&sp-Cei8}^oonlon]۹~skomsnz>[_ADY4O2a+\oB?uj{$Q\ls6۟E]4}QIN/Q\u9_i DXoR#[m_I Kz;Az凞OC pԟU+tit+"fƭ_Ek9uOĵ׿կ޿n2Y]DmNS=OܵU`lq#V]%Q+ 4,;$ :BMnw'1~Ki, ΰ(}j[({6ؿsݽֽwܾvz +4&4MuCݧ~L8:)$ْmLN* Rtޕ0n6n޽~}ύfIsh"r&t{7ɴ''*AM)]uϱ.P#l&{I z*rYyG AO+e~cub֍w۷@_["S HΖ #Hӧd$#D(b4nN JPq2Fv8ڭ[nmGvP z2E",9PV1H?F~.iY$SXg Y]M&g)5+㑊u:rJ;V-MGʾO 𽐔_"wc,JCB\4Φ>ڧ ++j}n뻻`x{/}?^KD?6Y|W)f-As:mF̭Ñ*\*1DE*@~b+ Kx2t]$fe-Dv,ځoڮ1+nՓܲl3$^}K'JmlQÞtwPƓ#jdoYUNB t`AqI_ n*s@Oo6ʭFŠ}gwo?xx+ontU4;O< r Ѵ6kyI&FTqW_7w]KK^)^oFL=^4Mԥ ɼ7 *i*)R{]k44ИQAKGzp-;;c8uM2]%)K4_xq43Q=#4^PgFsmk{wog{m^r4MЮ^GatvQ$4YCW!<\ps$P .[J6j6ZvZMf(YDf,V,M~k!m4#Ї)NM ,\rB7>LjUhSީGNkMĊdf90@M83β .]!@sxi@fw=IΡ(azmmf4=@L  B bz!2_3h.Lk,`\*\1fdt&PKQDЂ#Ԏmv{U!ĽŌiɢmi2ȖR;77TkeW3D"g>Iw8 =N/tV7&=>7k[;;ۭz-_O i\YJ76~e0nζ+u, /ʥRɸzlJel"/5LhcY uT/)@IHMqfn|RjbﶫJ3zX̳=vH#VU6Jۥ"J M9k z֣fJ9F#ӋHXXd JӷVדXG)y=IYTfם\!ol1)r j^Vr# %䅦[%Uid,/v#a zڨjx)_-f{kit匘#M9o;Vf@G e 2:tiovsp+4$}T&ǬR $W|9c+Ӝ&FTDٳ&ذQzB>/_f!җ z )'0Mɐ'4bguf*\X-$ bL굢f܁ o_wzZ.gN:F@SuO-x^@hjzp>pF=.wj<={G:'ɸgt:uNNGi*k[ZRC]I  F.ժl&+a:?+U@/'ØU@}ը, $j}XE:u Ru)H=V%h.qI8:]5|t|CN5 d.^oTmol y'|lҊLnfH+5*E&$RUĶi`x޹8;=t{`{GO~t6SUe=fX3ńk4A0y\(D-fYd10b[t>X.ΦkX;^5TȤg%b_&fq2&ZzT€p7KcfOdi)xy!+˝"|6n{?wgoNoS5hVChM,kIbe2Orims߹5Ti^/GEIdbXq;lAdӅLXڝT7ܣJ ;L||~ww~w>~t&~Mph0>}Ǐ^QڨUJdH=n6OTh![uBv|JUV^oA^Έ&egz5P lVu}bf#xChWtyI:ya&pY `&G# acO;6ڵ۷on7jKi&aO7/ǷڬJ+Kc=JJ2w^O{4IO>?`:=t(s2v/ݓӗ/^`XV. z$F4/ח*@O-rGPjɶ8V "AUQFQҗJD†Gd :V+zs^RsM]Ub]1I` /SLs1i>^U߾uv^o>lT2SApw[̏5XV\.-.O4O,'g??c:X: :.8|y1GCbLJ9՚΁.F H|O@/LB7Ġ@ l>GD֪= ,࿑[LH/:wbܜ&?C-nbb N6ʿw=^oHv 8lQ2%2 t:Xdfݛd>:xNd^_,beG^Ո&;,0' C2k7J2ܓ(=dI,WD:f_irR?Ѡ?Db!d-:䲴hi&UmMX~Geq94=dzqkk{7vv7#Ǥz2Y-7YPy3zcm/|{ tYX\oq"Ջ Lh/NG9mj ݋Nr8j %<*8'Dt,J,''/?~|~)ȒHӦ$&!2tj|Be\w?+^Xr]-es\!a*jƽ dR~/ܾyުSkA79BI!/2ߑıDLX+('S.$X,6s֭۷n߸^.8 S{ދe {vJt/^x6Dn~Fx=4j]w8 lelqyWe2tid-RY^zwS -F 2vtDFc"f0*lr٬޻FCyȸs0;LY:% ti~WZj]kyIx=ֆW6]|n[[FVcF(MǸ;xa͚u+.u->4Eh)x,89-s6dd')F1#e&zhF dxUiFDn956\g8H(0*ӵO^tAO_o]^oim9֩sƭP$k =+!3ZbzI]I 5JjlpE`~8& ݞHכNi '"CZ78#%%ߗ Sur_<;9;J ~ÎEldN^{#s-۴OfiErR|Ө'Xg҉L."~`퇷֚6pBʺU&ZLkj'no߸Nkf2Sf {l `lݹ{睇{{ [+2hh](TR7n߾[{[[>IVYW+>iTL Zhqscj̠,KPyZh߼jNO*pF^_[r%JpZo:%W Ԧ /2lYrb2ƮpV 4!n2CҧOomoT6NXG˶fNe-ȹkjww6)ZdžөBVXww&;!SԄ!T(kM=D2׬59BKTdVjLi|N3zb>XpwlIۯ+z]zs˸\)?V]fT=792]9F4so,-$!'>oz{փf|cR0r[TS`LJE7{e~&Bfvn߹<|g[csyDw$nmmߺuk5 s r1"D5/bs'*v/vh2ib ( ,(ӏܸ[,I!}qlfi434'KySO'鍨0n׬2flj,nq)_1Nb8.8Qù:7#]Z/vL2~cK|].5ɭYq54[l3?ckk׮_o4 mF3bE|{sY51aL5'}R-ga"+UӨ3΅z}sm>p0`Jifc3BD+[5wUKWVzPw#%־BbB%VAOݪ_X z ~l#R_5ԠTY[ݝb>'B*'D>V5߻P %ўaIwRnZ~cQY< ozQ)%}=Я^um<>h ޜ# x}0lS' EI=Q^ejs  8pD. 7~>K/=(K-; JV.ܸq8xm6T HXD(كcM2v`Zo_w6KjO&G jc}}}ggwnޭG (Dmkn<|p7w6wݫP,2y]"1ͤJM|'h2R &fs[(Q{noݻ{捽B>Gk6fΕyrM+Q7=vl "X̌^wD;.P¢N"9odmm]'wǮ8r x݁Z9;7oVZ\hNUQ }3QzG9Px%fB*ެ7ݥt%-8z{s"ǜ1.Y xQ @;z[&Io40m G2\=+YydlbkS]1b\?Aڕ"`+Ks`TgTsl޸SpYdVmZ #٢9?nݺ^S*pg^gE~m}cg{ڵoX'K+:\T"{\Xs÷jGl6Z* _, \gӕvuksm+IP^#9^&f1Z2<ܟ MqPT+{{;2hN\(5SVl6DI5{UnijVcx$E$ 70KW 5^sd̋;=kibr[D e7a?dX߸qh]Ns-Yvָkg8E|gXln^wXcwؒDBZ5ےR6&'liM¸|&YoHf [$+Ao4v*s $ܓ 숫2m>T2CA\xUޠP-7׶x|#6rW[Vfp#k{{kׯuw/>n׉[AXexߺBb7v6~֪c |lPE)&a /Vj:3"ǜ6ߐm$Qxjmm75gEjI|Y]Wf7{t`?rN։M:AbbUum}oo]iD)#eT,`hmcxƍFT-*r|.g r̤'yZ뵪Di9-WArFwڍF'Cer4kkw_K"6s;[)]p23nKd]&Q死R)߻jmܺq+_D'l`E:jd[ՎI;]!NIV$s&l+[&,6ܭ7qK+t4.za}% hjzZ}wo"-S^z3KZky`L1[[{]IfŰ&/Љ*I ,MnOVJt4ȬfS1A_iTj[iK nytE0| FV/A>C-wD!KdelnǓzs;nYRAϻkV@Rj%D ѪA&-dDvA ӈcfL74HbULTAςv)?n3m7kk*o6 /t3$|U$mKIV1D-!nS_5a`BIJa Ӿ-: &QT!&ϓL+C f}~Owڍ{>%'sx71A'.ĘN,\DA!^b'hԅ"[("Wrf9COcN]ӥvmt'S;{T.0|7a\4#YJ)i3,cAi OMIZB0;=*@DLWd>Xf񝏒ȁh\i87`wD%(͗+՛w޺wo FE"aTHQtʗ!5;['L㽉4/r|vWήgn]ۧ/ô#A$&HIJ끥^aۚ](lԥOY(;%,;F]JUqS_UFMWW%42y1 |r^6cj"A[F6VL^׾\ۿ^5ȁ:eBaop&)`bԅ"̤V h0Ȁm둯P|߸wFNͷmX[gvp*6T&LDu4=)kFP&4!j -9%"Ă)֔&Y8^R*E! 9Of"] %cvcM+dRriYNEgWo6z΃{RйI#1 ыewMUk+?33=L˥m쐼+ġo3Ũrj}bgn^tTd4yݯq-2"E{Tc #WM]!tm 6ЎaƗ2Ugj~*$R3+Te,ڒyJ?L"׊)9ϑXݿu֥8ҩ|:V8лq34wϖlqޓfL=x`cs#"ǐϒ;DI%5N?cEYTDg9~u/JiIgd*_)kMgi"4 MS"MArbJ. Ixz6=9Ki6u$N"'H :n$#fڢ(<uol߾ww}cc-p\bިxu3<Ip,t2B]2JfD4ҷ"R3eBjc+6ȝqv8ەP"IU 넍EvPd!=0 0yvC @cX))T+]!J+AMy,dl̤Ďrjvc$u)̊L>kޭ{ׯUkut 䗑SoNVBe]θי>R+ӫ>LSn4߻_묌`unmuiYmAE`ﳢIp.W3 W4Rn2}&"0T6 ~Ӫ61kQq>•ђ/"i噩DTJj(,.7@/:Vlc_3ۂg ;w~ï߿N25gӁ?DBH?T:5N_>h "Mך{_}}j^//QJƹkb>e<Ω0gP4OSy^/_e&u:ŸlZid G{^-le^zɨx03_#_`d?Z_y@*Dsccko[+V\wuE~Jg[Sݩ! tߎ{7n=xWK6[SƶPF{`F,N A tA@Ǫ2eҋStڒ5| *.镃A YYU ~%Q9fb诘+.M)͂ͶAP,66vn]vn\fb O9t =^HӎSQr1A/8J^Oꛞ^(467o޿CZprok1g٢fd5{ ()ݻ[ӴڨxnqQ5eEF62,-?2g_괋Y31o/:?;}aG7ZMGj9^t sv}1Hgֵw߹õMǴg D{6 քqt2M nheIтs썭oٽw]*7tnnv@ƝnI( t4Kr[=7%bqWʨP0-SMܯӞXpbEl(*7gH$0ig2F1yp|iH keUJ n^-2Bu[Pt|4D.?]6ߔb d:O0@ ϛ+YFo\nQj5)<ڎ3(n_.]V|̓A F'uC7xv0o>ܿsÇV3͈;adBjm5c%n6c};"#ҨGj|GMju"GN/җv㵫$pQZ_biQ\ɹ?C (f-kUsʥvlOۧCS觾e]T1 7 O'3id{}4Akw޸RZGhǓ(.\LڿۡXW뢪"E|B "h@>t*qrS}^Dĉ,r"5˗tJ jLPMu)T"%+/Nǽ4$W R}\k1T Qwvpq0uĂ!5Stbx4O=QMt&+2U(dk|^(1!ohvy1(]˱3+ɦ+ZN& /'<;}À+]7L~~~z=c3NZ]M[}loJIzۆWzdB˹(^C(}chC^.#e[ sM?_hVVt'㪁&3CV4p$*-ӳDcYl$dqNt&K#b^Y2j)J$+abEGVm)rjV+&EO?;ӋI űדɤ? [KŨ FLU)om;HyXpPBm1mJy9m|Bc~ݺ *)Vi+^j7ɥ CR٬]WNPd73K6ZOCLBto,Z+Xmݔ)u~M/&u.&>:׫xCs(=˞Qz>kV[|;ǐ^#͝,cVWv!#*ıNZ~!!^gi,+f{zɈ8\* %t{y;^2ja􈨆{/^Fc&NaبMH7$䖜!7)mz˔$e~wVzF#\Л.H(¼T$T zk24Nx-Ǹ˸Z_OR]U6+'NQ4ZFFѯ jxGy3i.@qޥ9ktJh/AVXZ&ZaT #d^tNtbiLx?N8:=O1ǫN[ڼ&SPղ&tJ(덽>]Hde/.@ɿҙ,CbRiKbXTI "yi:ٓtRs[_ܸ/U V4ǎ_C4yeᤃTG,~U шfe#7Kr pō)G&б⵫%=O̗p^-?(ssJrDQ5abǸw?]*%~-Vf%SƼ6d霞,뵧y@oͨ(b(!<%jy/ڻ;ڽsr286-s1=Ql؀~تeWɮ`A,]'nׂ283 vC݂;%ЗeOo,Jbn/a3̼s|<&;%8?BJ9 te2}Aߠ5.A/S[Ѓ{Nă|~+={ވ+<""R~Y1*n |!}nDKSڷ mQЪb\-dV_GI嬴7p-K5h'O :]BS2Т9, #1, UP⢥|&_J zUC.rjMț2U(USL6o{QorLPIY8 |RkzpJ=SPQvBv*^?berRCL Ē2ZW6TХ^J2\VyȆ$"M3a6.Ҽ|" 9nbs$(DAm췗nMsJAgҼx-Z* &Paŏ.vQۅJ~}m&OJe'-H*cRb%#v2Djeil`nִ=&c]~~Dv>L'lQ63LRۅ3#٠>tt* 윊h䀱8k2c]̨u*9#]\H32^Ub2-櫵J^mkk͵Zx}2Ũ 4[ݿ~VZ!_M%0,3Vw808ޫqGAХuBc=v{=Adڳ%սWJ"Yjmo$ y}oF$gp4nPs^/1a5&ڲM%ѱ.p#z˧SLPl6T|p>'JRZ &Vh29Ef~Ze-`}$kr.QoN0`^S͎Uw[%*]HpugdlIڕOElyA F.8"ΆF~ǛM"XUHݯtd?άk vg2:'0yU^,aoaAo^>dg'Mʭijw֮ &{u7^HLŀ\tںqU,KsrۨwK Unj'4Jzb2| {%0w?}bBeS&s;E5Z)M]%֔0w͐˅{NS5e3FT^;ꍧC7=oɫӗ W5Jmmcv* tbM,uXdzkL(nk}*dL9|2:=\D~c5ĿTZp*THa|Nt %ʊZE}qz>' ; ^?G/_rF't^\o(W[ԣђoLK\)J t|Jp (^ x#f!AͿUʥ8j.V m,bsH*ɼ+tC͢יOF^ӵ:עbU8~c MΡ&IjmUjێ.TΤt~3=-G% A?/r)Gsl&WijkjEQߥUcm7r{bei 񶤙 9,*YF`pv#]+'' V[O+]NE@ =# XarʺKZeQ]kVBhZ;ouwI!ѝX0.Kۮ ZX֤M\]ΏVHb 3ij|eJY3E9+aMW5窤|1UvZorZh9˧)yi},TF5B I*#I)>}휝uφ^7XJV*kT|Rjlׯnm_kmlWk;7n/کtNiPb<˹\I댤Y'H0P_+3͛!TAjkQTvmṴ̆[4{̓e֤zeI *@is9+\&^-,VKΣ,^.5lA=ʌIԆZ>rDN52c]K+`2]N0=]8aMh4ѭO@e-jy}{Pg|T^U6fIȯk͵fZ7Q LA2 c*.Ҳuڶۙ;{3ՎZ,Ϝ 8ɒe2w*5d]txϤ7> EvY$r zl2:À|9Y:R ey`v|Ej6VW%#X!׎eB}DM\.L+"߽jС>qnA5A&_/=yFݰė3[e=67~qrѣi3 c0RszѠ[:&kʮd̉x4?Gw||~;|YOmO៕jh@<7tB\i7Zt6GyT+d`rKk0}q; x+Y\򙛭?3@LKӀP.)*aj֝[;- ZZ$Gql;d9̒KFmDHB Չ("g^<Ǐ?zѓg'TO՛X-hY􋐂TX+` ֨5$ ,R)[d]uBrlj[$~~bÊt|-ԈU%L-< |e`{>ۊuK-t5ܪ~ڃ_|{Z^<]H|"Gq_V++Τ5<3MJ,lbO/Gg/?ÏwOuÐ6e:7rY/(kw3;R6ZNAF>Weh0.-fv"!AV0mUlbz|N -0s捺WmAZ;k|Q_ѢsݸYZ[i6Y<m> f|Ij)+HiIh@`}wyT}?~XDgWeeFyFFFjFwb7䳊lLBF;7wj0'i>p%)ڞ̯_xٳO=p< 1<`}[vVyj2U>VȬ &&Ii [CqZAh !~ժJ'E$#鄴`7RvsVš }M^o?j[6_c.0RKVЍ}S г z4 #l&\vq 'Հxsx>kgjٲl#8#U*|9PGը]NYH#$EڠO 8#I%R/mgn^ 䦧Y*dn \Ҷv?G?~{4o*F5D(#Q؉h}byv.gp K wAQoniZϿǿǿ˿?_?˟~u~w=/ 8RN/iF˅?yQ0'aٴˆaDAx,^J6s^=s%N+0]&䡕dNIOhIm$)__qƐS01USpB2n'6q W&7?s }}ggVVT8(ly/.XHKj\Ud1\fFJHct|%C%K&ggկ//>>/xur2["80d2N_QkpG^2FRiAD 8jh݀29@xؿԏQh9nEv&UR8-?yi~ýߩoq: b%:-`jr+<'O9; /ƙϿgW/_@/.G~@$udhƕca#?fr-'ch|/ p^ZVmN]RBr JOoVTNٷ]}$ٓ2u^;!\3kD{)t5:Oq6QXMn݃{۝]U;nHRi5k,Y^ ir@@,@8WyÍgP~͗`ttt/O?? >?t\F\Rp5T:,:ZsӅwhY+w0JN۰mQ}|g..l*Or)W Ir+'irs K%z6S7{w۷:fâְzi [C>ع\U"=!p+}bOK:?<::QS >?bZ3X<2wr:vpz8ZvMQ0 z\4MBAz/0IN^nM j_ ע$(X`{z^5 "^@R2,x}1sNΟ}___?__???g/F#]t.a-tk`l&ijkf~7pdCsR7*VOz,>/\ 3Q1Lÿ2ƪEy(ʉϳ؛Mn7uۮ4;5AG-^si^yN;"|x̥ (*\䖢^\0]|ɓ/곯|œWG/aOOr/c*p/IqBjz#O"ݶE:+ 7H/;4OO)v]iFSZmzj4 ȴRBrz4Xcou\[ZM!Cq $e_\6/~tz|~'_~?/鋯_~~tH~>XJ/!̉24uŨ(vRqL36-bC~gզ /#lۦ)X\Ї9Tͺ^NYW7Ɩo>l,^gF[ hz=&lOO?_~ٳp{˿_^1AF%ĝۀGWB\[m,:h[+FQ5EfdGz{^188E% {O2  ";WPZS,WsyCgɭ^lt؅RH-^FsC3E3{ælB#P-wkaba7{9dt!$*+"T$yd=9\ntN>fHP$緑@G2bZզaeRhDl9l7 ''co>HB !Yy5mz> ]?~䫿__'_|d<.],(ù1GB]8jE|64KdžcQb2_U+M8 JI$a."A(@q#r.P|"JI\cƥD/^83GRt8;`He`UvS)k j)N{ЍׁTUWc˹\~4Y #D_O?W'gGz?ss&IR@ބUDž@ ޾mq`#\󜂮5 &_ʸzuYX&^AF@e ꖞ^K;wS%ffN >I*GWOԋŧ|wY#o/I`Ey ^[H2R*U]n TؤC=E IvYPULh^#[QʼnGӳch'Ͼd2+Ѓ8^ `C}T)~¦%۶z=ޖe&!4 KU#7KRS7.G{<(Z@aN%=B曲8\Q8p avQ2j!U!|=>Ni"4Qw݀t/E.گ>Oˣ|*=d[6req><ߴl>Zyd:ΧKIb{`ktҚMb~/l$pKlOEn/8KhPI=u0 jԃv%iT0.`WYtD~R~p\EP>C|CU%p+ c WQ/S )pF U6EO ilSx[ T=(X|ЏƓh ׄ. ,mMClQTpe68ÁЇJEEf,m#YoI{xύ@$g~| jxDڏХӒ]x%IHc 6GNfTZ.4?{]pcr鋣2^-֑AM()c%(u4g빸 f{ThB0J2 : @2 N0{^0'|0+z7|O]: -O*{D$;96rR7~S-=ujB7MaQru@iFAN㐜{Llg`l}Y٢eM{@Ŵ.#w ,U.M}M{E|LFg,URvH8J],%7:uQfW$Cjd*X!9<ݪՑŰn6-'J7g؜n(.GyDOm$_L`93L #)䟛jrw`sz&j%M^#d̓8L 0`~y.q'B (`T5Hf z/?ɗ+ha|e03DC@2GqJ35 z@Fi%c?-&| Tj6 7^>KÖaS"AĦIqc]T!呗@59v뽭%Hu)@N6K5cs1IS%K_ RoV\ݫ9H.6I)ȍA7߁w_zyH=v6א|\ڊ`$TXC4|/ Cr̛h(H1,{S/jPJCyh ّ$iP=R]ޤ*o$2ͲּsцpTO>ķ<2VtJWBUG7эR!ѼIdnڞYVh@/. 8e$Fxz1$O3V7_󥂒DI EFۤ8J L=I#prc3 =Ϗ d:.Vޘds5ω*ɱM%Ե {p rуv v`ʯ@R&/ɚH'Ja0uH emMl5._~ϧ X6z?uje Ali/Ej7[mlXr%ˆoۍ*Lp8dzhZU2-HI/DC8A|CvT@7qRr$AAUv%pc<kZ4gqTzT}$ZX"~f3/[-$U(ˆVDVynw`F9cS%c,N{A`o\Z\/\/Ngg\s )@7jzj*ȝBV|xYw׉e\T aޙr{*A-K/s%bN]TJ rǷBԿƗQ{ 8oNN=u:CKV9S[J;HrRT(Sr|RE!ɠa՛߫2u4N_o%9_.^E"Mjqgjid"NIHsqvW/V ]wz봛eXҨ`i87Ukutɩ'AK^Yf T^<5h-}W䃤7zM$DI D@P\ZAV>ʙw<Ua z%$N鎒NOO^M&qaڭ&8@ Ahfn.T !)v+gYB9^,A oFRr9X|n)pះnr1y?rUy䂼Ix\ iPeS]T< $CB;mn@Pkvenu΃n,83>e )9HwJЯ(O0P.V{wk s(- u6$Z.f&Oq""Яbq19->BP_%ԥ\Mh""k7׉.!Üu7O7"uv  =RpP Eh6nܻ%q yJ]QАTϖ~8YAU\\^B?xpz~2_qP lݽwjhbYe9;hY0 f_~'/~WϞ<ë=ɲ_T$#&ևV`i'2GM:+6I)vMBm(O8ࠏN/fӣ˳Aury|brp8 dwG$!}%N<7 <"6\&,Lj#jU.҈ *)Jr"…+FZ")K)Q7j8 Qiz$.犲YN0݌qRΤ$* MƓhxrqrij䋾8 yITY]FNN/Ϟ_>Gϟ|h|?pgszr,=>dC\gy>0ғR4H:6{|h<$&y1p.BVkNeWlNUĿ|0#c(ȩtI#;"oX2={҈X"+N,F'^A$áM&#xZQA붚|rH#"Aim[°az <_.s>ҋ p்g0 p l>Ijn$k˞+R0A(r*!{R0$azpFvz]-zu*Ul |W@|ᥱLB3Ͳ{k{=46斬(BeoLWWlFEÓ*'С>rټwֽ:f!¢3]44u˫ "ôV^] u9<8~~٫gN_?2NȭGKk6MΆB?*LҀEChVǐ $#%12-`чO~ΏAKT"&JȲ3RW̫6yTFʹ \SlUF.I@5; eȥKL<>z\?\Os[MB_W*6Ę u*q2wt*eXp[<ߙFqquu1QfhQŅQ8_zuq՟/W 92,_՝S9JRhHbwT>|R*@%\oF\}x?{^VaQRO1ey$"1;3g^&8_dctî6T]ŤESڀ^ Yxr|K <))/2B;f)~:-f(ɲjrg/^0`ΜE0]]MpP6ll8^>;y/Os?IX:^zh0 P0#_h+[!tb5T2 y#.~SZ`[&O~Ώ>xZk&IMOJo8@CxfBnr)tU%V#j*g) !!}$ @ț:,xV(>Oj_Qqԍm:ЊRGg7f;wV8̴d;|p0<6J=| aW|DI&9YS!/7ɀz|u 'iDEz0%=\7tZ)?7 +zݻwwu̡'R\/XK2eUNl jn6n=gT*tIz*qCrԵB{1YUj5| $%8*s?t6R@t2B-# ejܻmp!NA_Rj6{}q9\?o_Qt w!|J0y$CxvyՓ>~rq1[.eL b/(Uɻ,"\\Ek*LC` 4jAU~уG=us6HX&>wI-7$:8` wnv۷p8 7RC%2*G>:u_T( s~v6|9cFU;OU&^^O.~OOO/\˴Z.?'3'{M.:P&__/Ha'xu RP9p eu-(:+,7^j??ɏ?a v-&@M|3 9NbCc(|aT^ȅ$!6|Ksudčw z:p< &tu٨˾*+?_gs/TeǏa6 +NB|DW<sXMoRYݮV0_vl 8 Ov'^K#8o'z;:9/~ }>)RWHr} 3Ilr\ *L$𣇏l(˥tt*eTȬ5qk~/I !=>͆NGFVI7˪ fVno3kk/sg >&lvNo&/߅w7:LI٫~>a*6[Bq? ˍZd MȋF([fK2l6].qvڝZ^ԫ"x,nX*@( vVu]n3DbL ;Na{  # Ľ<Ɋ|Zș M|@^P$|DŽ۵V0J%.&3d pQ괛`$)NϦ fUVjfW*W@Džb> suQ? C$:xVDk#`h"zi䒤z0~H+O\ :OZf6r$cІZZA%$Ql 5&I,_@ŧ/^g?O S3 CvH$2(B^҄ ^NG|̀s/PAoF{kh֭a9@4 6R9`G7w{xp }AcS|Wiӳӫ`:QzjZ\iRl0X|~t*L S~+47jZgfL-(( ˷9w@˖Ut‚@/|rVxоJŢXRn=LTǽ^ZJolNi|7??x#f3@swOAV=H@x?t]Vz/D+u+z0m5ݚV*Ţh|Ǚ'4Rvwh^BVvSp< >P7>Ͳ*z ]ZӲ(4~"l}ހ"F„(I"Wٹz'ĀROgYJq $9Dz K䠅QR7j"舧FpKTUroͿi>s6Ղ`H# ͡/zJ!B|q]if#'Nd@|0P3N}:pau: ||8)[6R^n_αvn~u很J o G.QZM=HZЕCQfV7 ]&9Q 'Ϟv/ 2NS6y:Õ,Ȕu5@Y7YDj*^m{ER2ZL enH3{Gw⮂ׯ^,b/ XQ +>N/O.^vɋW'Nl<^^\_xb4A@K8]E pīf3%wB?{8,K gEFyզ]GUxiO'a1{h4lQVp5y xGrYw@ۭfrkӀL 668ʔ$oKxi@/ T]†?v ikC-[3*e~( g>t =><8sbp4NC(ԣɚo} A`­?'LbOWpͮjrD% Zʑyї/T+HI Tp6&ǐ`|7u9 fqX&2jbVCHCg|=<toKN6t>U$' iZN&E)d0`m)[A tr9s\I8J?8IDAT>\͝W/__^\zA 'hCԖpvv>8:x 뗧^_0ϡ`& > %滞y(Aoe./B i#2qn)S-H"|lJ[R٬U* D898Ak%12`WkdTANGPkJ[sCEb$쀨mXѷq1Bzi2O) @)cت ?(++LYzTŽ縑x0өnZC@zw;yu5̓0FMz{8lHy]dRwrџϧt(B!,\c<Ň%72w4TDIRO5Dބ5"ytVT2| 7Xȯrz OΒEOjT=܎Ͽ/ε""էYrBR ^zE˪[}RrлoJi[;/./%Π(X\j >,#Ytd4X./Wlmꬼ(PE1p|BX=3\󩂯U)k%!D5F}*QCx+qӤbW:(]`}5zf//~{\?`ar0Gn Z vh)[{PiV[tq5YtؿAzDJFt|pxxW}ĘI7!CDy`]׸?`Utq98;:_rt|><:^fE*6Z@e^F'G9l!3(<(:u-F\'iQhd:gΧ* ;? {i}xiT7~aB M5áx OdUZ.4EBq:V5)&{{{r,qJ^?CP![ypVsr9/&93"?w5B\@gĥE!YЭtԄ%KhfW)RSq \Yd]\*:@s| 4Z>!7DXr4[ʔ_ra9ֳ//(%ci\#w_ğ9a&Y•I+.F!qPVb $z(ʰ]!5-/#~B){;S/ σ6_.{r>O~WP 6 z2 \P`\\*A͖W S=k9 Nz z1aԀ)[]/rXQSV($&]e$|˻g/jSOɧ'~_z}1Jn˒ǨiYTxB%R/XgbrhloCs·P0kJ)R>sB&%|E$nT_Nǃh*R$B!룗Gǯ L @Gn"&$)תO%DW_8= Dۣ,۲;AokZ)AhNg\ѕ%@^ME[F45akIh(wխ][c92U`X  )Cj5"T@n6v+J=zZT͋bsr*-ts2$NL%^]FSwG!3^ʤOƯ_sl)d7IͧPA ~>0kU*73g,H)d\2o( Bd cE,F%1%,%J.Fus(#<*c|1;9M:a(:Wϡm$R# 6N٫՚LCZUd^J2B[P9?qei(qؔ,K%пvF ׭>'O_xqZ8.&Hx!*|Q֛FQdVyܤ<M  Gw:G;LqZ0,tVoznFAesb <_YQ;8’Px秗WW( C0 ϷԳ0>fs$QgeDJb@luþHߑ <_7v۝.JFtS /Y^w+HMb;mf auN#h 7 @Cv՝OfXf&>g|agLl7&\Z1+uپ}4HG`1 Ghpڰ BaW\'%ȵX-xՓ^<I8N{ͦs$-KEdaTf,S*W aet, <߽Lk,0eU$J;T~o! ոa?g.Z/T{jl0I!N,X„+L.)p~9KaF*sPvMC" j,^GOF`NoTv#Idr B(Զk.UVLh/`gFf7݇ԻtjY }pv;?"JQ,"ހ@T2rIn!4/O YN_\] F[do.}&?X:z4@o6mʀmT3v)Df)׸5]4G0 MO=Z,.; P)H|F֍f}y{T`HfP,׊FT !\q=ܫѳ*d4 D 璷hu:*iAapN|mno+TiJv&t: x69>EB,ԑ%2& ze|\ϖ`,D%vq4[vm\opSAHp(3SFBuHعCP2rm!"/ ˲L `-V j$5BSC6ZZX])T܇ߦ14U˽A4<"xtտt%&en6$% [ӆ{@E\4^FrK~%vaP>Rpu62՛C^7Fe|bzR?KnvU٭o#dП-bF,]y3e^/b>2 9gi6\%V^6ʤ\'ƀPSl'ğ4#Iō&g/?b0BsB$_"^GNʺ!JVٮW+|. g12K~~@+]#-[[vvM24\B&祠}6U|I=W F0.NVZ%Cž~y[{wwvu#BU =tFDQ_ ꁁ,ӪەnYAKxR\R7f:NKs//b@k#^ph\idqR"ШeRMSSs iX&LM.z \eQkZ^*ɡV*W-XԯOR>ߓH_D40&)Zmo5K*,us:r~A.W8b`V"Z>.4*-z+u\[wA\SHYEҹԋ&E)H)V2P0h0>9>>==>>g 9H. f_Ճ,W\!r~2]Si#/e%x#qy R*ەÃ۽f'"džUVb %_TB[br.?fgUKI EYr4CZnr1s.'&kZ^aCvE Lg3XZ&!ozFzX(/a8pCMr/Z"_ 'c:58^,~^ISPCe: hwzbCt=N)=yӗ9^sT+K&oEC:I {qOSh 3C[/˛ J+~XV^ 3 zvUuyr7WN2}KX4^>qx h\fJ٦ t=C4+zsqfΞZҋ˓s儡zr>$t(쬐޺?NwѪWja"4I(+a( &) d]VBˋ+8jgi,P571R2=kFQu pM˄]dWPJi$#ȚF+w+t#\>ԡlu1BnSc;7X#'\Zs@x(ښ [3*V[3zQ@0pJY0sh]L /K'bTAnסnm}΃.fa*PÊU*m";IY`mٴPf>-`8@^L'~OA0@ Y o$ﮜ7+!lvI5]̧qmxRVԖE ei%i| CYT|;]ʵvs|1I˒F( ͊;:槣8qvl:zժX:W7FZ!)@/.Ia VU?_>?:?zfq.僗yt~fOt.>Fg>C8Ax"N¥7 Zߺ{A G@fJ՜nBzmfIVR? ê+^-@ DH}.4yY҂D9 o= }j}0եf[q0R/zE$lBb]~+хZgpiMb~vy9gD) LAMw=Ax< /_# &"J3q(!5gՄLlStyo\dj_l:C8~y18 ewj=$zKB 7{v3IDeQ z`uSk + 5P䈬A#mSkUb۰;[gG14En EtxRI睤~_)H앍dYTd2r

    .=]יNd#l$ɂAiwlkp_PcJ),uݢyQ`Zd8˕mX89HA~wwͦЗ~[w/9Nt]<2Buz>Xu[N7W|^]8eY0DI^A*_4|zȼl5;moXucO|Cٰozi00Bp*ɳC~@ Tzm~cj[4(kCaJzj_ѪS5R*wza .瓹 V˗}!Y}JVy$m%/uP%o'"lj45tb:xtr|\@JɒwF%\ZRI_9p4 pՓ,-|p8RZZ7Ơ9>S2!XZpSZS5CC,C7B!&y*4ۨ BkR,򡰣}K8Zj5-kNjvnUkqO/}."o޾kZ6cf>AJ=?TmIΛ^ PZ^Vw 'SHŌ`NIrE5v9<1aYbl+1$@J nؕ G&oީ_r/4)$z:TR[#Qwf4jD)gQ֒Ln:I(9n5p9\fK9|pĜz_Gwo/AY=KQ%4H` 䄡nZe|8^]BqC6Ue0mA'.pQ _Mc.6po WПΦp(i%ⴉDC"GbBƞeڍz N(yʼ]m?. Td\O%BSz(*65Hwb]-iӰ{r'풽tāˡ Ȫ=|،H] O vMt08Zc j992s8-UO}KܨyXՒAxXL:K'yΛ,<2J;u>ҔM-}єCϻ9eJ8@Uvӄ/)J_ZiffW,rE+tE3Bf\/~,;\5?~Jr EooլdS9 e@12 .ni;qPM$˅$-ԞV@G[b`\^_3010wqPIĘY&`CL8\QS9J 럢kJfBs<鉺Pyv~8ؒe.UkԋB0E5_SEmءY]@AUZeXgelinbKN٪Rq>s?\߅wX7[l&,mz@6ߤ q -k0#/<XH[(UCP_Y's蜴"|˴9or '1rK恲N?b6x)T(J#7Ֆ7FSf7RϚXݵkv?nogo T:_-QpY~8vrl6*s6Fۿ vHIR;߂x:9Iz\-rBøN3Dּ-I͔bYb9PN%Y1͊"XT2 'pco m%%񯕌EGar啜@z8Y Iz<(f۝R.wznj_|[nuI [{f A%x-P_&T$GES8B=fF7w2'R-|p4K!duQ@WQiG* R pd:q%Կ#>fDa`n+),+(`yeUe ! =ԻI?vhUp*=Z* ;E;a [H;rgG: ΂: 2/$*Lٮ|;:'S.HC,F7QUmUnTQ;NE^"L`V,K$gfAk ~kնe>8{SJR։^/l_h@4 h"D|r S%GT^:S*BCݠýߚpM 4 rUC%O/*$@}mKM7X$.T~nd *`Ps˹ &9y.eL\k""xQ#WF쪶u#yt{ڂ!bttTJb? "T)WJڙ I J܂ VؾwnTeBEKYX\صUIuH=[gsv~i0t`9p4 __#hh&C#]/_<9= Mᙝ,Vj ek>3b|&˥_}nvUmvF%QP$_AϹ!HP!- KFvz֩[{׍FWׅxٮbLr3lVjN؅X q/ H goۉm:~ʺ( 2-..7ZU)X𔀏/JIA@}MN=Jض4n0DˍAj#<\@oX`b6 "սo"' <{B?Sp<.s藲֡/]A/ z@_Qdu,F<yJ=fb\9ݪr^;?Ç }eAqDZu*yы>| p, Z̗NqppVC \Fl)'T_%; p-Zo4MRer=nxxsy ^PkS*U]@l޽?ﻷoF7Q`$Qj`U;n=|?;}?:soq2 F:D^0&+ceEdu^U)7K )w>z;~ݏ?َp<B~eTKQ)hpu<>࣏w?ݭ=F+Qx$fs OA.prx,%3nDT=S %-n7{zw5!.GR1NfV׶a4l2B B ޝ; ñEL] 爼$/$H=\3zHO sЕL͍W5Pe.ֆ?Wt:;;;[޹Ӭ7PjA^\p.DVv{Z [!qw6Z-i!wV&F*6R-n.tM,Q8:ɇ/i [X=ezK5={w5YOCRT Ebnk-@ϗIn -=A2,dq9g²%uT-hiz\)7=P 7"Rqzvwwo"xj=#(| —K@%9Rw=MEoZh;wh|L=fu$8g<77x&Kyyt'Ix %4bL9q$˴nl}qw҅Ol<~[o!  jVҌl툚( ׉= ťaSA]™E18CZ@Yt\l\^߫x=Z,u[n,ˆ%,#Me2lu@=YZl*V+>I1<\)ЄD qzSD$I5$h5$ֶ,G&_^:./g{_?Gj aWҵƋB&  5QJ{^+*8Wǃ(wIΰ+S?rM[n8EEUa*\$4"d̗[N>]=޺~ݴ P"/!J»Ysֳ,p@8Zi'^F6>xiB 4 F>~3^{ޝ; zѬT8fST Cwi␩s5aM?Aˋ8 Y|fǁO$^Btf +]m>ؗMkĞH}~͉M*v/WQ`B)l4_%h5Jiڥ僭8J:WH`]뮷͆GOKӪ!ArZ?oc|ޓ/'^*lr˪L4Mk(‰:SfBC'2='Qh!;x#0IUS84KPOH=o:êc R-oƑO&Ϟ&#as':^d-qv{t~xxn RQ0IB ӭJW/okqe55ʶl1TG~-8 =hf/!jCh&SgOXuwCba3t۷+:$ij, o R" V?^eq!+HaׄU\+P1<3~3./N#Yŏ9mDYAbr.F`bqNGkwb"IrSdp؝"סD4$v4-΃{x;;dJɸ=[]{؛ :FQK]-}g\L4-ӖqCj-BI"!;2}xx8bPb lV f|9`ygY Q:Tgy^&? j?g2 81y>͉ .`?N'_#(Xrrqy|t/^}ZJEDW/$w)ԟyFE_w(Ҫ^ղ{^ݪTL:ʰd"fhE-FG&t]OV AȰm arZ ; yh[-8|r08ѕVkhXwhH'ITrU_?(Бyj14,mĠdM^ `r:(_^;[R+UQ\Mݕ\7( h kKepI;/WV[nwf ٤{Gay J}nQnFza'NܬU+*C  49-sV97Cz#!Fi Lr Лf!Ǐ-xQHy$R<>)IQ aW9!$`a|Ӆ‡K^d8^] ..W1fMCȅzx6 JmpkQS?7Й-/gco*`9m7R#Dm(je];hoe`4jr4hF;Ւ3uKI8S<vw^Rjn `-  '𠔉Q:0Ra-ڽZį'٬ K񺸆 giyyL>Դ#ij6"XgœO| ;ٰEj8'/^%pDoyJ}yqIƑR/J .Xc nWM<fksGbeSuS|i,E@x^*ESN9pxiǏ~;uh2BT4.-}7Ȇ3 abE ;2Pp]"?;zr `xOu?#dU UPDNKG}xfF!b5|R\I9Z8gO_=9LϧAaQ.7t dS@ sX`iDO $bڎR[:{[V29 p .Fc\Mm\Gx^!Nwt oCLf|CߑzB,c"_*>K:gyIa'KcpZӶmP\OgIzМdpѱR\U TkΚ]-<9?,%R{^`4:=={Yk0b><^χ}g:4$t^6y\EI:2$%"_g5!ՋA]7|4pf`5Oij=&|z`CÄwBtvT0n0wࡀ[EAZ@іYn)l ` CYnhj Nk\2ђan hҨqf1>],`Jx5_䠱n;Nmv ?1Ӊ0۠7VeTt~Uv]ϩzѭd:iŌ,h0X*OƁt:\ .d ѳO?r<~n\VV\Z SUU"#eBB~k>·7t+5|wz l.WJ>B'i Q,Uz-jIіMnI,(@TGGAzPY7bQp0#P ȂG!*چRO@U  B=TKV)TXv)Qd_ |LmVK~տ:??C0 e ?E@w1t~ZtÇ,e#܊*BN烈0aC&!խU¸j 5YvQZH ͯ?dH=$qlJX%/ΧdM+5dWB) ;"`8wV&zM3udhyDAj  Fլ Ֆ]BWE#{n*Ul̨h- ZEH&`ya0CdCu?/G^.?ѣ[[[>Cw /3̪$zOuObTjKIf h^ɧdy04KZ5aNEAɉ״HB0ė tDFI~1 ]F_rAg$}JYe5H=ZFP>S`s*c97@36J5f>B/r UM׀TOJ(N!7(O6|h{࿵v0hplQUxHhUF { g_egOY))=B6&َ8e~/˗pq8p-5)>Mo8e%4@쑲J3x_oH!lޒMn8X$SFqcS '*+R7ET})G7 FYAsC 3z`cjm&peVaB-E8X-W!bt~aJ{;;<ᣇw{wۖ`jڡ||@7zJE6Foo{,>S?2;&9N1DT:]rӧP1׬Ρބ )%̉5P *e"MdT̜3 tԨFmW-rX{lI_9Ӆw~?޻~ulo>L`@/چ c҂f'L&GȏܰC }_2L; 0d(izPnpfZkw_^Bm|B&YEP٭vgk{w^o{B#W6V .yn6 $j48Ld xdA3pD~ʢ )Qi┮StBq9RXNpҰASP850 Ys|5J$&^6!9*67X(f$fى;8(*b\ݦ9% JƲa 76D!CGa/+j.Rߝ^B\G'bY{w?W'ǏՖe0[[[zX򃃝]0VƗ L=춶8^l =M] |X,$ZaYJ3 Exk@8\߁c!D`྘CgA"#'^p")?v"ޅ^vf{DF hSt';(Tܵ40 y:te6#{VҭꖪMV)Wr2Gla"?fJӃ~{#J=UU79v]l8Bt{Z97LCsq=ޑs KUr ܂C ~bco+ >3j8%qڸAb` \ IAt.$@-*?HfNBlѷЇ =mڋFR,Ŋ["畠-j5+"! nz5̶rTkZ]1 f'lؿZ.agy&r# ~xV4,;w@~i; gڼyj fK!DMp]KP6~XJ߂P As2nnW[M jض`$ UR} $Tdˡ$;/^=59(±P>7kիp\KMADپj2wMƇ~ņ|X6>-rHåpcVH Ext:٥g3Q ߙ:ނO>RˮA ~wpxxogpgk 6}h+kXtSNr2M BA&ZӳZqUx4i6:` gz+/p'Vz7TbK X3Ή&> Vl ْ@C#FT QD >;Vn[BrXe[IaPR(ìkiQOg3ky!)c^Y2ĉNE %*)jB(  "QlܽV׃ImŽ;PMsFo,`q@+*&|n1}W^jk]6GG |5epDOloÀSTfC0ۃBAPAZKV` uD9''7^ ]Y Cy~PiJ&REqWۭ{zS[˭AG: G$apȮht$r&hR;ZY,] I38aC3ۻýnڨ;@޹F ' MbFJf0KZFY8z+p|w7gw]jQ6NPlMd"H ;l8a+\Cj:ݽ{+{z.h##i RJ]* @ן}q륙RԀBTxծ:g;jEjXhjq֦T8F^a[GJ8 cdeqW̼RVPfaWBa0L_Zvz>ػum:F BVtPÙf4dw2á`2]6sԇA py{E-RhRKYc[x⡊ Rdy¯RCK?q{Gi*\u}UN4UQd-T_DC'GZTj}fE*@[Ha#ZZPjDZrNfDžk@ωVTzNqɊsLzhBE@!@'5!^#jPՆ\UDbݭm缓.NH(|4Њ63NF51ꁅ/Vk&IV ,^kw%w`T!̦iopvf@r\ vwW\] ,!.drˆFYyj`8G'f/^C1SbSQTtjAΕGiN7QzI<qPWuQxCTdum!5;P\Bj崘hf[S\hSt_9hZTL01D⧜5|͈W8[! |^Ţ],!1`f@++P,\ `crr$;Cw8,+F ,|fU"tvvwܵeTZ94 9ZZV%\`jn[My ^$n!iKu_ZryF|p6{-, >z?vPr <~>m<0PfRެ"hP &טUR0?iB46H:߆(+d";h(%m{vd5#+AtK)j BzSQgrX. a(f8[nAwA{P|{ȆYQڲjk\{|6*W0ovEQ㋓ eJN RY WAK޼sb*oU`2LzT V~A~:/m@O'i ZkAM1zzV* KVjXPIY×kĐp}ZwK̗@oG徙 Pb!T.XEV|c~!ԁp(|hEMp (z7On?<@tjkuÄO8Bz"_{x ރY. ncԨ-CbH|pċ}EBswV?Bw}Rrr!gpb[[<r / ]NȾwX',ǪR0?yiMK?)3 p]I;^d^KJhV PaA"=PlT~J@})[X' }͉%-^w|hЇqr`Xٙx8↥CVՂv!Nl5k}jT*acxz2KJ\g2gWRphg=m.:{hvGX8DM&Ctέnu9n<@ѿ[ݽ\./va}Ns"H+EhDװT<= {i'xi|PBA`=Q6" H 6M,] "E A{e(lDVhPtDfeIpd]Cj9ci8 lؽX'@H"2IuUv!luM'P[y:Cm+)UF_Z. >YAgZRE=/yMmmC\h< ܂^,!j4+$H:bq(z*u or_,v0c1bjU2ݍYXїS'1 9g P Y /qR/+BVs—+@(t5 sIXVhmzӊ!0N~0\ VOU ?tN1-X80K'V|UlV& Iiש\Q%YøpR3TIN_ZzG#qMۃ>_4S=(Cg.W8P0- M9WC^4}{i؆y8JkxiV$](b޺DՀ1#(z =>#2C)|H.fl>g"yd"ʥG#(H$rv\R ŨQh bՄsB)@0|;~r5/jzP.Ñȥ ~ ϝJ"=J qCK?#VP̊Tj(%AqAF}@?!Q FKT߸V*R]NfkeԴ @_2[^@_m@k;=]h)i =2>4lp '<;H-đz+s'7!,emˮg [ =T ;sX*%KRB_"TZHzK~"bvt8^fpZcggoggײ2pWcC G4#DyJcB' Fb ɇnXs,7Ҟ/”w׻MQu[xr{ZKf\w)`B1hr|.VX/ )Ⱑ;u,SɺZp&v?\#MLDk?Ggl\@D9(72uXjޛ5PL= I5+,?[fִ4l6hN"g-JnѮt_>B[;}V Z.ׯmGj'=xppp8uf׎LI ҂vR H}膽ɤWjTt)BN `C%Y˪QɒՈQt +Jr"m!`W/0>JVjZY^T|& B ֳRj*X(X9Nd","tPD.iV`]*u;*F3e:!6tR ݌/.JY?fi٩[b*0 /9eKfmA`0| ݿ}pѣNV :z>O:G}OVޑgWS>!Z nju4$B/$QqqO?_Xxi^EUu$ZXbzjAr'e_CqPB2vE R->'r(CLYĈ!@bCFXS86/Vc$Hr3,6J#׋(5+ƕ4pEnp.lpZo//fFpñDɻi|ƥDwPZar.GO];:=jMqЋL z͊Ws]+Լb-RJ#(@'g]#=/PJ+µ4]CjZ 9"]fXkץ $@}{>w+4 Ћj5IO> ;_:n/6dȡ^14r9vEP(016/+R ëKhN{pt~ys&& Lb3 5"#8 &?nZ9g'o$ ENjpY)tl<-D%,iY 0YnN1({$]/&w /2xqwS#-W9ŲtmGҟޯW_ӶfcX-Jqt ie<ߜ>˿ǣN^|W~u(F 3ըW]_N/<.,! , #_ ?GG%oQؠDMv;^q/g<YWǀAӧϟ=aaho!04w'rK`n>B LI ULB0݁Wּsu^)44JYV)ՊY薉4瀤H4g6$j.8 a`E",3^ҽնJ\at3c!_R76Ey0ON.^xˣWǣx< .ggh4+"0whNi`6 8':8S9P1h"? U6Yp$Y"wx~ޖR \.cl"((BN DHI-a8z,$_?CV!3@l |k 2"H(Gф.ss -u)X3[iLzbXnhu]F.ʕ6abޯGntq dl_G DvZP2!m#[;VQYb& Eu,fhU[z/_?gGǧG^<ϏNC+V4*xh1q#ǙEU]d5O%(Dž`>8LA.剿u. 2[wV`p6Q.W 5yߺ|mR( DR' RXt޴2|ϟTAMCo|.mSaZ:V5kͰS%Aa8 zrLEUx+ R#u_wZ4!gVa!375}Ê̒[r|O~~x< gKD$%Z 2`R7!Z+H*Y_It9[۽j#g6_Ƌ o>%+?Gǩ-ذ;`8DHQ00{BEeZP gƧ5AT~СօmeͶ*>75kD9T(g ǻg(ȲdžLџrTz}T޹5zQm q9 /G_>}G'd\_~5A"8D^ص%?3:^L—ah{q '` 3 aĂznŮ|<^ͦ G<5P$  =Vh4O . lyռτfMdlg,G -[-k.'`e1T28axkyuJA3o|@\EZ,pe]6!Cn%̌P WEO`U0QAF <l1Oh8rG .DSo2&}bnhpAϼ}QkbArn6+vd6MFT+c ?+ #8|M+pjeV,w4{;=?G+>4p2cN}7tԶI-ə1:gpBs]8Y5(qȋpC'ӳ11W JMS+3 /Ƹ,ygI Ӵib qv +D zHЃ:Sg.xQ+AJB)ΌPh: ojdF0FR( fU y" }ϭ8r>mY| itZB #@swgZVB%܈l:E8g 5+>j7;fw:E!׈ˆ$ UU¸Zc\t87J{ @C11ZH+P *Nl7L^ ja9}0Zpn8_)ȅ4*sHoZb:G`<̝Gf- ̵j4͠Zeh2!)<{A;|rVcAŶz[l ;MSkj R DE'D1 a@L₋!A'H=TG'Ɵi-K"@DTP%;.Vb XL$DK V1=FI= ̚ y 8zmiz]͑4Z t/H  l8!bǐ91SP5Zs $߁g8B᫼W 2Y͵6M8 R1TFg6Bo""+0BE5ZC+2dRj$Fk*NToT|)2-kҗ ,ݿZ۔q @8B'|ݻQI.άj̖ir| T`i(}h ŊY"t}aؐǿPP` FYP0-Ԃ`|"14C 1~ϗ!L84(-֌ >ı.0i;ľF#ɵ'!41%f"Fk|LHOWWU{n )Rzw\7xFFwhHMǟ͹# "}:8;\svlwq9)~qq9OVi*U.3P/D4PNaX/|&`^;I^fyLz"oQWTG\$!Xϰ7Rp-a!h|Se#RqS#L7nӘ'4"" /:1€azҳ d|$`S $ft6SAeGpliq aBHagB-`?_,QCT& 6z@]9dzG}AQh- 8ϡQzPb2ĨM `!,Rx:|@/=>bQ 6b P @_D@zH.;9-OQM4U~ rn,U@ %E<{V+ y |O{I=>8 ń#-wz%\WUû ek^/ 5l'Ok '0RRCJU!] eoxG#q Z0>Utfb7ec8go_T]‘N|!(w j nf ]C6B0AKd̔*`6оaZ?ׯz:T#!BY^g^@NG54;D!C6%S;θ؁X{$p0w\5֦ V!Z9l Kҙ! *ЪɐiMnk$KY:MjX{|y}you< W4 HfG۶u'ڃ҈E|9:P__\\k0hIdf nccwPO6RA{L= ؓ' CO.bt?Y-ٗ \^ 4IkF1m6l&E3SPmA-C` $㻌dw[X``50Ƶ8g{ u.yHKjU|!GX3004$-*F$;|R" c 2]. Sa҃Yh=!_j$:p* }\[9Y[dI cszME%QU)vu`=y_AvpXY-L C5eV' OH4\ϿfzK-ŁȔRUj횎_VA o/gS{8 f=};VW!ߨު&&p)hzďzY*A0@"@sshj4O ᅋ@NQr** b%B`.\| )W!)c Rͼ,'eHL3B(>r/Ά AHK@B3 dvrO$ bZEʮnҁ/YFf2>{[s=j7S(Qs2\өn"K/O>㺄SJCKak`:K"XV1X_,#Cӗ ܐt'gę&|5Gp;ь{a!cX5{,b>>}l2x0L3^ ex`pfceDğ!CJMqL]l,C"ɩu0<.uPP*D^x{g\u=G!޶Wo8^Ec_FYYՖ!1lCY,ݐm]Ax7O+*-},NVO~7$xCӕMZotN崃}>my䩍6]ϴm*G.貃F֞[:9r/0o\AĻ@Dt_m;AOik 2+#sȫ`Ea' .dbm,ˋ(%]wL7MW!\sMhXA(v^_qG)n8tY_fjUZ/jW)4@bR7; MxG'Blh  /'𑄾 ^}çW^=Nv=θ-o8.d:|z7 3.V".6ƞ?І*A9oзQH,Mcś%}1fQ   8qrq"tg/+ > B}bQTMYЮSl[F\жx٪.Q"ݮsF,*h4-: "-bz4;5 Nz n=ū;t}wgyamyk~q`XR*I[Ux[4~ɗ֐Zf[f,eu)!˒dRP7ׇ펴6C4ܷM_?`*4$9\:["elS_[[St7ȚiV,+9!.'S b|<=<=?9<˞L0G(r; nK=4މm|Ρ+ӿm`1 -%~TC)&/"2* {)I mr(`@Hc`f^7;ߕ -gob#@TT~2oIZJe)CHU-sM޺at@]H| ѝ$5aZ&IX%Cn#mB. ÏIV#99H"oϜu,?9 eܢ>ԧo :O(- H MZ)8Mt!~e}zBE@ ^Ћ)\ uwA`DS86y%_AU :H!sM ِgkNg0xh]U8|@_pl.!F69̅V'*O $t@w_~c K3=J.s8 y׋]\锪Web>55<E9p.3:CdP8* -  ik:pY)ԘT>C apsW M$h"iyz‘hX^(6fhA ;^n;lkw;|kM7;dFi3erLgeQD5>%Tui5>tmIGaN]˱=ry-BFC{@+i08)>O?|b7K׉׈8'~G# @ m MXx+ * \Lgh'~ ;V HPv-8k:^wm{pYak ]*u p4!/ 2\c e̮uXWvŪ~Ht\vMiIKc@?B ^HNIQ]2`ӳ|qe9Q[wv@D)PΕ2vrR@Q Ƹ{8d/ /8o|>d,3d`_s~]VzH. z^gnl}~[Rzq4 ľjr&N*ǔh,_|S{흗;/ݶj.:pdw;"ؐ0[~J2h.jsfi:/.',;~Ӌ|GQSEnğ❸H= -Iy ( @,LQc #+ֳu{zG"7! ;Gx6B56I\t~osF/y7њUϮ-5!U {QG2,T@N3>Rڴm[9zC)W昗˥#XJ^$:r4i#(Al8]0ݞ4*̫e$HZa=tU*y㛃zV^P;+ˮv;-S_+]C}kpR/CUB8\  @q78i"4ӌ$O.Auf" ghBqYI'Zڰ]Ŭ4KFbBMÎ3n8{Afؖ0uE7Lh3 ? :3minw6<6k-stG_.Nqvk}{9J= .hSݝWJGLz\RĬlNR`VԔt?*|VJa<[C.2RE ܷ*z 0 p(RY ܯs)[}~)m3Q)lW|dk{]qm_뷇yu{ߺ|ڞr{Pv6oI/W7k7|JW sH4NT/1]ԐCٓ<oX4A,JsHЬ8[|,܆;I`M!VC."sXkJMM[ 7 /RyU[ Cx`:hR5NNj;>gaQ`3 m[36k/z[wk㞱uCmݑn8qym5ݽM^P7W7~BWBC2X\ꅔ]k2N,Cx8E}DIr|~V&,8m<z|Ydr]p~KPx:hwSQ\\8LO诼yU\q$䰌]/.F4:ZYz.d7i{o ?w@}MZۨkj`Mn# tݲ^s^:+:d'E*pizԩq@݆~ܯ]Orxw|Gg8ȡI]\9|Y5\2[-ȂuҵcuhC_qFC|Kh\]0?!R -rS@μFՍ?We7E&N]Seo{to|y~uڍ;wow}gO?|[ߺ}ݗݻsgh{ʺwo`NPU%\҆aAtqmjIbG$ 5R 0% { D \pR- [1ܚ-DnOM"צFW jV-1$)qتfgJ.[Je;C%vtɒHCY=wƭ+<ƍ ds[-ÖU[Smq+(0~>`5 l+r,0gUfd6K2(s^WwΛlS^z}- GklX27wwUQ]?}G6]24mW!--yr F7 4pHu^W;"]Ԝ w_p_~}w;o\?7__y֝_{w֞>y{{WMW.]먎iXeT=Bi`\iO(EdeUAQ"kdh&w3/!c>i?z+i>,"%sNnEˤD-l7ƳMq \5Yڀe42@z0yF]=ӽfvݵ{[/lk/>x[[{]_Sgt`6[֫#ȡ .*vh kP1 8k ?l[x8Izdh,LaQ}pO~a泰/ ƽ|zYb4mF8||d V)l ~-+!TH-w:919Шjt}붻[Nnloz]ݵ̾nn8[L. o1qQhAVmnx-En !ࠊU'7_囄; b8ȗ[ьgtӖkMJ, *MU1Mf,z=k޲T8 PA{.VgeyX-)ײj±굡nׯunݾ½ܿK/ppss_twεk}pߵ]BG)魋EpEKz#>(KvU.xR!γ2u8> c;{`o 跶~ аΚunQ}8~|܎uFmE=>"H8Ęsv$?/_|ʗUz6{<>۱ַ{lCG)D&p܆L wtU" qYrp\ '*&3wiC+(E ˇąW40-GHdEWm|l:]SielQ|nw}nrS\`&Ke`/|roESC6Lœ3lAR+*_߀(kt5peݵ=뾧ZV=id' J+oLSىǧ*Gj2soqrQS0y/)`lY9lhMKxIU-,(.W R .ga 0Nw^zCˠ5tKs4GfȦl`;]K; Ʃpz.9gUTmbCz9q3E]<ϹQЂF8nYPҸ+!!HpiْKauӮf͎ʲ*ZTQS:aH\Sâ@#d$~OՌ4XaCO"f(G bqAj$Fl=^?;*Ue5koʡ z߱LSՄ|U, JAGF] ~ׂS/a8T>sm޽mot{^worlH ޓEtŨK)ʒ-蝙0#{~'9Ј yzi@|z(UehSH_eс W3 , 5;Όpw^5?aJ{[AKk5Zg@WL{z2d.,,'YvN 8B. eWV\RooY -GUWaضkh_\l5ҤJc)Y(/ g5kxDXgXCqg҆nʰ/Txu-{m5pwN#ihX9MD̓" 4Tv"w٦<)1 $$8X_ǠʸzzEDrV)q!O2j)BXEZ8*4$Hib 2(ŠgQiZ@IrxW*bhϟ=g}Ëwb8G!*i8 /I^ Bj ]l1m ^г7i0B4*|M!۱: LKӸ%wV^J7;܈!9◊o'i ÎxP.|K@2B_C1ꪉ?GUb;K;P]qƓZ\R K4\ ]0LfJd2"&y(ĀPZҴ8E6 n7EBvpt>|nَntPTI YNPlCѳ)nEb-4.╪4^t !x|,Fp>]ڦ[" 3&qaIDE< lBG8g}72{\>ٟm}WiTq&Rq7$/B90z |" j-O hGxb2"nhL0Ҳ\9nTdi%Lglg75y9 ta~p>8 lX*RFf& mL\2Eki4ℤZCxq7(g׮dw.vT 9" {%U|Ea<* Qe9\,RLprp'+< Ӷm<( bҹo}u91vn(\huxM-ERUeFJ!Ӡq ͉ac<@@Q0Rq迄";vGzǖB.bEҨN"D $O[gfb7͚a^7;E&! ՙOĂT,HgY3\r {51gBBk^jydVE@qst +M8pk*Xfm*:6Tǯ) ^^v5sgBfl?3b' :=wl~^zb@Ӏ̺Y ZW__\Ac~гZO5El*$5x@y'C_edIIv]Je.Cyu +:gL;Q6O_X(}s9k*c(QN٨Ip幜ˌx:f"I]88VApH}Ьhp/2䭳˔8fDAv`Y7- a4 Z81@B86j]r~:p: T`*PzmvEA-xĒ& 2xVLoQ,@@u4wow[Z,׈Z2mrhJ iAyv%Ơ[b3"#uZUDC!젷d$z af ^eGiBlq`}*IŮF_dQ5l#` sBi.Y>wx+Z0?n@Àdj8 1~o{_nFkqt++ *@t]@㕪Re2ZL`6EI! )k4xM7BS'֪.űXgQU h|F#ECL8be: :fOZ Wz< RTYG ViiúpaZj#lzX*e<8MMf*썮T7BS)\  i]P \5Q2UkxͶjs/ǢiķHX,N0,5r^)%H /d3٬NJM١UP!0p".>Y HYpK`f쭯AdsB ZN^猪@zU~=[&iSքn }C|I! gbPJ N&wZctقk\HpQ?#pM zC Ҭ!7pU`,w<z.y=}n@sKN6ϻbAK9=ڋoՠ6]g`+.m[LxJL4<\@.*-@\gxJLTV4GϑƒA©Ђa>T]<|^Q'Ն›% I\ p{}650ܵl~VaRhwY*YBqN\QX+9!$Hɂ;~eS ` tvvW&gr> i{ F2i|.D""XL391Fw]+RTU9{0s q)Ӆ%Q2T&os4SWŰ FH!qn3}L0+r>J+Ixjqpx+D% ao"WjedfQա"[U,wKۺF=;k}QqaALl`c* Z\n^ ў1 O܁(48*Ny* ]dM8Rx~"ZWJJ6'SE.OqGDuu -}<%Y eєJq'Y|y~ zGΆ\o较fdE۠8MDL_2W8 fJS2SUB(PjYOcI 1ǪNDi~t>>H,? ya8Vm,]nocv=(N+IhP&Xչ+^ Pl{edP/-nuWNm^s2itJq|TxAOF]t%qh!ի*<,Y.a!T =xɹilT eXezU;*b?Z1_!`I,PrF!Koq4[۽wc]_uYXl!E+B0Yo]s;] S PKS. d*YB9h徭XbHq 2i92F,L5lN(J |BY^'EUI`#/7̕l>J0]$$g`ax}$'jPe% +&DX'񔛪 gӪLA%M2[k[njn^P_W!ZIM|0PPc_ho "3j^煶"prRIծ[G*)n#CeU;[%Wf /D ^oﶿaG\$yVih8IpeuuLۇ<65eՅJ eIz UI 8ḰS8-r  M˶]Ԥ*:rmG$ cw|#a̫ mZDŽ[/U9Βٺ0e'G!& 9+&~/Ђ{_ D +*MTTt s4e'%!"&4:YxZmP+=th"?ܴU4anMDHmr;%Oqm׸!ed)Z.xo`-r{Gtݣ p D98@Їbe *RqfpV8 D-oxQlf ÷kK_5uXqďjJ!9a8^t'm@(ԀUâDD4-N!FC 9,K$f Y-^0A(15IԢp$Mmi2ag`Y ATBrplQ1gi$>\AQU*DgQg){[oz*xHon;"/<@mg{=z醼=4SܓB1(2hu2/8`֠;> e*v Y,5 A2]rkI$%@RqLwj䨨F.߂T ~" X r^uEKY7ue.d17ۀ6V{yۅe=B)Y`%=߹Z`A|&&EΏ/Pظd=m߄?| 9ҀG4$ƼMZRg.m;oVuQF&XYgT{MQ+bNk+EjT78"s{7w2 YwuW/ %ϧL4@Of3;3z@U|!9|&dߵзm"OfmLe0fK36mj܅{seZ}R^PoEVyQ.Ck+yY:2L, z^u8 G*AVazn3qUJa5oݽm\grV=P<Bɦ:Xx#Pm[qC觪@j( e5Ǻh1̈́:@+E_>5ޣXڦ*ϑqܐh鲎ЫK3B66K/aV͢8EUmv{;a jM#*`;Nׅ#U SU2[bQsU/ nE!Z[z׆uR:/qYEZl"-t  WCJc 0ݱLud55\wbV %" ұtoY)qD*%H `'\N>:-8n Q{ҮuIi9Hkw:)Y(@N+ouSދ瞨ֆs2Wm/‚{7{wLo9>xXv-GgTswɧ\e9誁X&a2LM [ɡB?<Ǫm'e[ aWp,0 TySTJޭp'rY$i#aȬxf` S#@ h;az4Ez|;f/"s@2 ۖ{?g8-Ou#8+˲HL7u?ZCEÃ&Dxhjo@"VrF^iFYo)OVod=~d=|.GboH#6fV* ׶x;é(⒬LABn+3K`-}Zl7@H|l-뗪 gCōB]mO[ *UZdS,<U#3Gn Rwn詤p697-pA5Ӳua ՄՒԵfREs@_cMV8!>낟ƝjxsEN=,GP5x.迢؄>pw6wkLFCc:5 r+x'aDX,0G "Nl0\h] .~Z4Sv@m`HbPrg2\rqk{O?^~yhRv6o/}?r-=ctUYtFaFEeM2$Oȳq,z!ZLDc0۠m|kE B"kwV0Uw]Ha90VC[å<8![5k.A2 [6Mk@W]6>:$`cGf] ޻\K^}] hzcTfzu`ZM˞՘ЌJyMSH#l%#D">yٷgu\OUJl'.ȅQ%p]n{F[[õhzZtFa_AbVAy#'`>`^((.g/0Sm) қҐ*S-FF BP9B`ID+Mhwݮ;Zt۶?GGS׆o5yrnƖkթdN =l)&Id}ǫŲ䒶x|2kihmz: b.jr$o"@ ?ѵ|Nl ޚ\g{(+rXEIpgg661¤ kPd}c ֫l{R*}(uͨsg'@u%QRϵ.;Ax{rEfW=*=X_|uRNI5kzc?9X/n MfYa>SClj!d=_B _"6GM}^{-R {zJ Àu9&}q8J8E@뀿qР;noEBOFkCLD@&,C@t}onEݓn;zGCˮQ ~ Ve#M3x}Q@o&8D.*ff75?D\ëlI1jܶm4B[ PtO>D0$5zlѶr_:\j⭯۷_,+v;{7~0?d1F;QgQ9YҏA)k;3~j ko$C *(F~gJ9.PWS(MVW1@Yy M0̂UZ\ZMeE G UW؋jg\c7͑ஓmtoY p$Xeqrf_qɲ~%ivR_F@5{ B,gJSG\Y6 MYp&#1P Ѱ bh"u%dMxQ[ QSu: %q|DAJa,2cja"'UK*0# >Zr+0x2 \UUa:y魴tGk㇋VgZom\8L嗱s0. Ah3.*R\yzǛerY7now~{y7xW^}{p0u.gPa0~*ȫk7ئ d(+n\uxX]DD_+NM#'茤?n5᯹; DVuHQUݮx:lmz"4A`֨\q!S}?TM=e\NJ|Σt!7an.5yɉAJ\A!a414*: WE˵l7oܸ}w _{k{ hu7`/_J\[=e!Z.)׳ ۔8o)KqEDgzX3dPiUVIJjϷ=(%"e-hE 9^G!_겦g,xn=Glr69Z|/5],8C/-|GsȕyLY޾} 쭷菾o믿+/;wvw~ZA_ Bљ2TK[n(BֵvQ̔WTl #Qx1eR\"Kݨ}ͽ¹0OW꼒:ZYP]]|T| & }FWmY}swW4pj2dL˳8YRd*U״!uiaUrjU̘ɞiؖ&RKRk}uz{wo܀V}pp=59hw6ioP~{ :YKJd_@߮ yd:K IOjsߦ7\i%t}laUbsy<8T /GBM@/bV\HqE˱Յ\nb 8a>iԤؔalx+͒ЫPlETz BKDԆgCbpp߻=?r2"v >9(# =n9hJ_Z%}[y 9t'IXcC*M[MR~q:H,g^@5rfmt:Z6rjXP 86Kl:x2=Y?M|ՙ8ՁHQ=$_eV1 |pNg{ɚ!yUgT:0e60'gtypy9*MNm-Lv{{^?[~/݂_?X>~{?zWLI!%m= | `Qkj֨|"VIy$$jnGȏax SK Ugڝ)R/j%O*鲖qʇxQy 7gV]hqG|zs{*ISk(>^ê +q' $d AMf\͗AԥYڲ(CSAVmj)*5s_~nlons{no8mnl܁cv$CƽP6߳|}iPi3WͲ:O-ЛX3èLQ4T5i*N bfܒ_NY=g2GŸ[o? tO|2{I2nH{>uDmGoyonoG[w^yʷ~}4!?/m-TbgQKEcT'Wb]6Y.;3 ; ( #LܪK3T" gUYcZz*Ol.ji$`=BHE4D7*54\y7$]83=0-a21t Qf /zeb0 RqPeZTi|t,nPiuۼ}p^{/޿llm`4\A8G}*a_1[J\$$J*$ՔaiPմR'ȋeb>2(z{;IG-L5'y\+O,=ze>ad]`F!8 !iv<õ *)a:]1YU%[eɴtϵ?=8P%n,AU.fwh屹پskPn^كg'u?~}kg/܇X\CàmO<Z\خJ#:$5Gч+|MIل ԁ0d9aؖl`.c`|?l?Nl^­4H"#B;츁PtIRV] : ۓU|OeuTw^o^zzkʝ@N/<Ǔ$ r9Q&TvJΩb]rv|v|MEr0֠p 'T0x.IbE1$Piz)+e-8Yh4G̪D"S 20 [Cvb-*zINu^+H"u׬lq5g/#Py^t ( Z #p\ڲaǺf8h)Iրa4?<5,=ا:L@6LIi\X@.2%^(&fЋJVr6LǗ8  Q* Jp-me?v#>) HQ+U9W*WQtPi _ γS!lxw\a$n(;r6HH%Ԕ\;;ti\,d<^.a.qsW(;9L†=֯#~޽`*t-_y*m,QjFꥢ5Y.g%'ֳܱ?L$dd0h 6.ز.kJ:UWםg"wLk}!U`}RJ:r8//I=,e8ٳ.}2yW˓ c\nn z]4PTW%@âN ]\x1̧`JcP>k7"vQ@Dްl# (~[Twmm"KjlE[s3Mx_.FdsmnOV]F[kQ U(ܚ9זz-fa^!79ԅ!笆pְ(Cāڵ]Yaؾ*2VQqpp/v/¤Ym  `;`s{h{H^~'x4PCIzKW<̀aJw=ds{ ?~p:dYb\) v8q{K `EQf)WRU__(ǜ, Pz,@6Ib)pe~)[X~ }kSU4wqTg~,+:JbHZuCO\(Me(F<#HV95e :smkK4E*H<3AczYB9tfQA*ς&p)SfNxh#0(P\ہE߾$O&( JD%51OU.s?E,֠ + $PiN]{`h"Q®oD?yF |Dpkl+}>XؔL$i&tJ əxy>KTEOz [z>E JT UWM$z*˞9rj6RG5Wg4КP g% */z^"I"f37{ *s4wD W2L q}@U@ong$ꎬWI%" p% y5K),Y$A2#߶ z٭2=9Ja*0 nN?sOqɴuj1O-%˸C&Zx巩pab[ipbZ6Lt%"NjǓSs[2##AP{tJ? 6J{NI^l^(VA"lFɥQQ±@CZaDqP%v|{}۽yfyJ~$RsC{qYKX pdooQ"\NzOVӺ<9Iitz1>7oܼuwwl_ @zDRȼ8j;;۷oQa&F;QiיU%6B6@ȃwZl)a dkq<\0(ŸSXAUPyp816mRrm$ T)YzSeZA? 拗f\:[>:Uzg%F aS%iD( RݡZCpضl pp im<{>PռD5 ۔-ߕ\WZ<򔹗"3D&4oY107tRt|״ $eXOOpڹ-NZDEYft6Fh+=̦T-]n!R4]54jZ%r9U CZ}y CIĽÇ&TVG go60hƫ^Ndz(dٜ˳t:OM{w}o޸3\_ϟGOց,YHvww]HSd(I~]J* PUjUSTj5` :vh LJt\" U (U7Ƒ"_8 2L(L60 ;t͞*M~ޠG y\/C[|B#ntj4EwܞDdp\ͪy0r1G%}EF$$σZF8I=6K~Z'$I! p`m>;0{GgHSNl9v=::245wЗ&TȍTզYȄȇ̼@IC 聸g0Az /sV\LP6yjk]{]A U߻#OX"UAђ /UGE=^ZVW} KR: VE rW lh7n@]\^Ne*-/Saf*,PZ*r+$+aa&GSB MaB 5uphKiN J-=U]GhuZo؇r4ZΣ)sT ]#e-}1F|ୢ'MW^trF!%U-z \ӅX<:!E8Kgq3{7㹰h^U>zѓ'||qzqv:NФbg%[|P밙|AA|*mchP MSg|Jɚx"ȩO%-8*k>R] Q@O ߋ۶4j@ό'g=bМzf=9Ψ~mc;BKΖ \2e=ȸLҵ|{)udqaC'u>)~'j1Yq!=|(?>^}x=:ZWLլ*\UWRo?&.JB> .gES2#ǁ}/Fh%I@Jmz]1vc7d'7\>tL rEedRxRf9GQRӋf];bGq^dzCOO'd^V<CU3@A&!a`k{ R&@ C*_JФLr׺%ۂRs%G8q ۤu$n$XJoZY |]hn }smE5 H ,4z,\}kntpr σY@[^6˸8.], tEi?av9_|vtz|1'zD(<&c}VBe zGkpbRLl1\ 4?\|4lT |YA[}筷u]XeQ~UEWZ)U-9<4!$Zj\1+qz6-NkQ"(z/G\s*Uq@ M{k:priyH'c]fe@QA@ܘٞ3::yvwNG2'28$M!j\̎?}|.gr|}t4<Ӣ^D>_؝,w/덍MdfO>>~Wч.D 38+6?~2#t!:Ŀ<vc:̮CS R 誖FjH:$FzKRfpNDy);S9jV|C]4Z׀@v-7蹖5,=LeQ#ʚ{ q@BSYQ_JdE1CSz^k61Zi8D̖٢N25Jl-&j G+Zw$} EYG> |L+MTq?0§Inx.G8݈ܓ(_J^^ӥDO/-%v IܫJ¹}-DYp:F NR/JjFSJu}>Y[5~nK̍8Mϰ1;[`?Z)znJ3i"Vͩ髆+V2Nb ÷׺kSɢ38 n'ՙ:dLϏƧy6ϋᓋq~_ d8Zwon$ǟ|ч/~/>yQ'jǧ5 !ߒ?\ {ZPBy4Ka_vV 䀑 P*7J*qЪ]BuR3oa~F ntY/SEډYb^{#ZZߖՃ^C,I0qT>s\YmOz2 .y {ܱ+S D.hdBYEt6fj${QI];}.4x#;>><<|g}ZIl:LF"4p(OLۊćh/3.m\@UK} 衕@RКʌBObs^nlL.iǒrl$U[@ẮI߇8ÞBxp εD Y~Հ09@PE&z?c؃eYƷjKsuD$(.W_Jy%8\o[^_8ޠwpڍ[7-||~Ǐ?|GΦ3B?CH+xd 0 bi}(_K+k;4ӸÎԘEqlA7UyT+,3a:tPi PGGc gm]6ɩ VMKm|ْ6窄rwN϶L]a^EspQ12ˬtUlEiZ[;o"Y>JNF7_нeL>xyHSqefM+Ơ,/2XMX_^%>IY}D6]?>ٯB~'|r9CqQ"Ϧp5HÐ'&C^[ʈ&mWiYy}b煔WNk%`$mQyCSkǒ[u$eDnr$ϺYoz68QfԪqIO39ۚqyJhѰ guv^;2&Jd9BwΦJu \*HaUj8,qseȺBFd0.#%Jƒ|ZAT$-`,c0,GLJO>=>|z|GGGPWD  ͂CPihIzF/ݻm(u1]YRep/OUhy]Y}`CFFKj(C\$k$p-u{)D@_4͓&vR\NA.5cW|ZIq{׺p,oҨҴ,YL?]M(Le%TXО_k?ͲiX9g:BJ)#=s]~|_|}gy rd~Ŕ0:9zBmV|ޢ[sPiv@UNc@UB$fp2|QzJ*:Ajw%5Q FGUk` H ߫!ֆ,:+\F5ડGء:&gl}tmmT|$\2:^08Y%EEZPʫXD!X{;ǴI m|yqtZc|)=OȴrIr}Y$ÒD#9u&W9PZ\,8|BO˩yS>"sqKBIpBB_'E.!#雮  Ӹ9i=* rI*$ EǰF;||:=B YtnaCy~ޞcBX |\IujvX*s@E:|zqy,+q"J Rʕ0[hfs)Χg_}Y[o㌴$U~8 2mIɣJ0w p<:&* SFݽ雞Kc1-c s7w6#8,w6[q7Zhe LjPippuY#^;=?Ƕm[HI-歛d~2>KyO9+)*:Ra"î88v/, X  g竓Z&i!52Åa193Yt 4YO>ӏ?zx||t~~vqq1S3`o^d='OY\^*jU776,㖈o+Gm(&lIZn=YM䔰f =. GOZRg!]=lNlP i%Aݺ$Kˡ{ЮR5읁уOPKwO/i~Uzض(rQuyU }¡v zP.g]^\tt39y@Z[@gh[p\[@_D|]VSE+-t@+VJH`i6Y,&6RΖi2rkjw g ! +84|X|ԥl 5eGgYx~4 ,\LӤL"\AM. UUJooUy>.F7(!Y^^9Yt$zIG-.NOdߓ08`PиbN}d Qϐ8+8M ~?S$JQh v 0:0*h qqq9~0ҐCme .aÚĀnyӄFfnJv:72%X?&Lʣ)Nfa: qu& ,&$r%ABO]@:4kKV*-7qi/*X0Cr"?]ddMW|$( u$}J})P x|)$ME$|n.ͬ5-Xq= \7_-_J8!T+Cu@QBEɀ3tJ]'MCn :dU喩 b2J(8M,gPy^Z~:^eJt>2ǟfg<'ʸYcUV @MM/LͼZBt ~UPFJN5+NJxi<8^~̟ைb5\˥>g=de .01"Ĉ+R4O.ޠ?B롽p^ͪONNo+IπOr $dJ)HUF8ͨ #5 16<_EK z1FH9WQD7[N>&aQ6epy&Iݝpyln80ʑgZCꢊ[ї=iW'zVi]e~:N1Y.-ỸUЍ׫Op܎L `bJ} 3 `}p6Cv!:IDAT<>-AYtǹ8\h#Gӷzv@5=(rmR͙*?5!}YE|5 b$ 9! H% fwWYy- Cj347b],<@zai. zk;laOHhvLSh( f)(<8Fı,k4y,c_(m^L>T.Ru2)TJjHaRlUCW5 1v, Ubuɮ䍂<)Z&SZ:<Fv9qtduaVj-U|(Uh( Ѐ | vj&UUJU1]Mc N`Nը"U3YPGF6QNOOVqH&]і OE{J42xG"ׂvQ;x(*/ΖG?g?&{C}뭷A=\e )*lB # ͍KEi`,7@,Oqo&>$bfcn#ytN~z)i!HkEpE2N+X0DK*~@&T3Eoג[^QYg<(B3Y BǓE_P8_zgT|&]W/b:dr ǟ|'wXqGU[x ȿwժjRƍ4Ie9QE<)Z Ps~"L!sH(qH `?;A]/Ae͔͐9rBBdUpt 0ܮ#9 RJɳ -} 4VR] byJ2˼T 0"BĝǗgh%[-"bO ɘyʩYWXp x'5YXdzG%jP `FAPτ|@ϹN-{`}^i᧥y,fcyDMVM~ FmY_M][}c>g=~ezY$d>8?O?'P1^*;HuurE{@_!} ksqty(6|,x) >x 7d9lB0,E }fdE9+ZԳ38ƿr-K2L=z&U EbF^Aygxz^Hڧj1ςN=i<+_B胄9G`'҃\mnZ)ZCD+R5]Y \FRJe~BrղĂd|l&>Fqgޞe@!L΅bVPKu2p 2ftbqDK;NA*A#&kX=_&h?"CYԞ޺}ن2Bl#ef 2A]V\ : wx#:g$åeaz^C+AcȸQYAtx}/?}^_QQ Ӭt\]\\<}O>9=9P8;$;ݿq|נc&Q$Ir,rm; &TZ\47R}ޛB‰=%{"H4 sDlɣM}td (&Q1 xshWU&#" p'-֗$u|w8tCTBdN"JeTM]~{!S ֒=Ρhb\?g%Ʊm?^{~>sy/>+"(s9ȌQX1zH&q[ӆ6$Dd} G`p+YHLCZ,c]X\,|L V$ aV sápt.;i%v-2@i\VqT ^/? `z |qzzzs7_-lR*BrZHz:|p͹ߐ" q gtAyJ71BϴO=#@ z-,lJi:qF;&' =%8B_st_~~"ɦE2Lɣ~'gI6єa_?FJ#y-4-oB}qE\1".}58 5I]BxIks Ժk[^_/xUI wwo2z޻hs]fd `xr@p<9(KwÔdR%-jzǹ=\BdH|KТ% X׫W/M^Tezy9?=x~{\KNzV$Uo?IA7:; JX<Qu9/,RX[:v>~ 7)WhmpktAfmY  &_wû;vkkkVE@U~ZGx/ͤP̽QY9eF5*, CuݛzwuMiͪqtpR9(Q CL" G^kpcT -.5SUJrk.|xq\̴2\JJ>=Lr0\&ţǏ~_'|{dܻ{@^y H 3Gg zzR?5^$o^ }3,cX*bZn=XF3Q;7ny"uB΋k/k GΧJuMmК*^Th8Di Tݴvuׯ??;п94h ^{ծߡJ5 SEA2-ڙf5BoA9Ck E͈ "[pS) uF^gho{7f;s[KwoX:Wcz*4aYaB7ɹ=W-#vR&H} 00 Kd&|{߻w~0,<15P\+10 d$p <\cw F`EUngĺ@_?z΍?z7_ػ%- b5pzEM}ݵ P)\Ν |l \iIdUK(m|"ZSxx34R{]_|ݝuo=Bų:Up.'l |×!uJxVW}\j1Ks!NTو>mpUՎ oklvL}nl|w^۽#j1sfq%Ƶ~o..ahhkl/>R&y񒊒3}H2#b?70ÇWNhMM3ĺF8h7Q $^ UfN٘))vVIP<)<>~ztđΙfSf^3gb Ul\rPk xx*R("Ձt+D4Áv{'DXti}ӓG?{a(vDݝmѸϷ"Z]UU*ՙ!L쯨/X&z%WjX=Uѹc6LEg (KFnv"C[H΂X6}89pFmhqtWOd9,s,רffx  i㺾! 4D CHØU#A)UWU(a JϹI8_V'ǧ|O~fioqOzbC q [6^( &%d=H _̷d= CZB%;6lZ]eڵb$~zHp6>'=<<9 r,Z*d QOpLˀ `:~$u)VAы{2lO$S~A,WQɶ <@ q]tB/4x ELp=cx~*Tbx}m;IL/C@tz7: GAEl۱zb5@WS -=jMPJ4Oʌ@ O@ 5'ɓǸ'D(];wFk_*-Ϧ~uSt.B#j߹;O sI5H4T'wXQ r. )+4S*7R;8.eYzo|i+wwu7 )Rr4A8D!BTb& E$!ޕ˪JeuUeUIôv|޽o}jh<^zΏΖٹrʑA%{~ anN8C y Y©Iט⧨.ݧ(zQQ–|>Y ;t]_4v *l9 ܹ; f+}Z.$ p(´f 19Y.?>K0C=A`Tp+ Eq~"p+XU햰/5ӏ+/>Պ+O V\iTIUynv:n DJ 1,T*P`))uɞ!>? )-H,G>-=Bó)[ۻw[d1zGK,ۅi$F^CxND R8IE(LLclISv2+r*x;n}{ypONޟ+}wco6l:?̒7pvQȪ%*@Q{pih XH <^dZ*Qjj*>ZbkwGb =~VU|W_u碡OA4^U {p[7~i|P+tZESh yCAgEr)*2kg5OJ6a@(̗N>xpÓƐj0F Gf {P Y)Tns-T5LG̢{#G[%YX,>+`]_xؙ;y,U˵6g "ptz6 ?-{+AQpN,|) BBSD˲YJ<,dyA5.~t;YJZ sqh B_z۶!Ġ7BU*i9ꃃRj R>)rAOܿ7ODuCtśW>*Vil:}I"?Rj5j%ې_YE}d1r/-*2ˡ| $<N S\ΠSϜtQvҮO;GɁͺZۻzH~ۘZ <IpF[ \QIq94dk؀4]UJ 7'TZlyKO&_hѱiso4ݟ'|җ^{}wgϿ̋y6 pKl:?1RÐ96'5H,ȅ㥜bi5lPWzxۨ𺪗fRitΒj\yѓO_.ibSjfsc6[iݕrΊx}'ǥg!e Lكe80˖^)s9 *UVo>`"V X c}:<~h<Bq^վh,;D*rrm apy9Ub0\.3bh" jեPj~W: *䵆[X)g&nl~cv;s2&wn}?a.zvǰ̩9XIf.S8Vl=<@<圹 4"2 \+; Ux R_%j/_96y󭟭;A_~-L4E?͂x"\c3cz=rF=^>i Ypeu둥L`;ȐlJDΑʔTBZlFmu4fZK??|{Gޡ'O33\tڛmחˌ* z aqz,ソCȢ&#HJUe6Uıa8 OחXg^\}(GӝKVu%*[$D"!ČГxьЧIp0 РHTi"BOzjTY*(:݃w}p괰"Xng-;'>瘴 5u(9 ]jB}emʊ2Mfq/z\>g1H'b>ݢr/l4o<-*ӣw~q3:;Z8-;WJjvtz|w>w;=>{t0>:].<8HB>*- pqAԊv|M;jPt^eF;R4.Źm^&C@KUED} ߀NZm'8T 2Q$89VP"s#ߣ z ~oQ~4{o@eq/IOl!sPrX8N%ŸӳlxW)Į-:z95Si2L]]w]8̏g Σӕ*ȶaFgh®N$5SU]^/^lL$iܬK-+3 -*l5rN"%!$0Y#hݻtI%9DG? ;/4LQ`@ڦUpt!@>=9~N=y2:< ɻ+6&g8V {E`L|˛17yhu`VVi"뾴Q5Zuø ^_U5LCh"bs)'"IuYxq*&SD}0{ Rp!>;Pi94̍E:<999h*/$[#+%Ozor6/>,xU2B "_"d>hFW%?߽4\@4:ȗF^'J*GQm7܆eڐ@Y> ^AXB =LN@aI:d6C.$:hF)=a@!=>*L2ͭg?UeQdGONǓj:Y槳`Gd~6 W+l]mYi**, p8HۙGƐP]C [qxtUg-R$s|hX4wW/wl_޳VZM< nZr @5<XFdSHWUd{~BudRrGmfuZ *9JbJ=Ocz_W&]B :)KM0d M ,|B/iHQ+jII9AϜ)jʊ=UiTY;@f.g*^Q&h:tJCE[(ЏYgHltYY5]%GwZq$ΐ̆Tʣ1:B06\"%xoz'bl6._6/g7ۿ8z.ga?8Fp9Ӆ7Άx-g8 SI޲cK^(Ђr.ΝH[dzxPD t^֓i0}W77ͶV ԰Nu 0D./ YCi2I҇Dfe%.}Ndڐ!txz޻|W x0NWᙗ;dׯ7]z τ׋R ~Ar,Β 2uSTQk zQܘ(*TT^1˴D|0k8fÑh˧nl" lɹ+}؁\%ʢ,x#z= vs]DJ" 8H#@?ymjYc)/>%A$N"~>  _NԞ8$m#)_L*8ٰ az; ߹PWKJヷn^GX7֧BK)`Eę /*D˓Eir$|Բ H%7/G.`"F\Jȋ7e_O CQ@Y0KkX !;ulgwgBI}]g>|zqMdz{8- [EiW# 7-DXUTɠ$|vT\J@_Ta`sƑ rmv-ezÑ4'UYZ.xۨ0TSOB6:Pl6+gM&p?\Y@p1lB}Dz* <~ pEde> bj[[[P8\Ϫ4?Ue<.'eQl ? J/7{nnٚtHEmfwGZly*O+jHZS/|[@ϚMtu~jˍ\v~d}gG{ ,jl:[yVDܵ#E|[6W}nhxqĪpD^[5\4HSB8L۲fnpW-ת W,vn4)SV4U\Y5W n<,R]kn8 Z)yrUORT\iZC! d ~ $GdڦYlޓLR(<t]2Cd"E9+84U4~΅*Ie*,>=ԭA8Xu1L|qx썧{Y\ߛݽuJS|j467/]VMrfo^ ߛ,ն6r>Z=yw~+[7+nKHۓ!i*+c$f ,fpx<PU54K2E*x&<Υ&ӌ!s?ߛu} ٟYp ez/p`#lA{p<|o-\ό&~] ]0brIZi- t!!}C["kw]ppnKHaƭ4p[MBkR'%׳bYV]l7ۇ+$VWS雎:}ò 9x5Y^>Z{爸`zy#soiƎkhs!8&,sIA2S/ҿۣ0֛p+" w u7Z:PK\Lx#䖶 Yq/x'2p@i6>[Å Yk[.z:rԪ#͆jhHP2Yzaz=;l(K~DYUnoộBy2ۚRl]ACgۆ˅2y+u'j!Ǖ5!Ґ 9Z_I&q%K8c*lC8Ƀ}z"O[9 b1 |<4>4`Ԅf%~-햽۰UǮ q^Ose<% \Ȥ u4zH,i7[`dqyu(9OypW[w;TO|_x0_q#*ENPNY 0/ EP@T*Y (5n9G~CzԔKuv-.ϼ֓qLsf>wz_6@IS9`E~䭂8jl<ɒ$ 4$eޕ\b:u(2 8.jJU_xBĩ~:Y w(E2hHE-^#ڵEGf _lچyQHɵ7M2NF[gKO LH ͱ5i;w`>_S>ֽ@ 3J:$I-]45p1ѰͶoA(7db| *Ҫ䆫Whµ C4EB)ՕUVQyE,[eٕʶ\JmR:. @EW *ʼ cj}~^l78rⶎe-8*pi\BٜST_|rE=1wumGQ."4 1>Jo$kt#e LS`!|xA +m^Q"дTPT`vUѾn,ށ`NCDBJ́*3ϬH Tvbڡxf#[~fvk 㬨JjUjIӑ?<& v5$~4~Xڑ/=$Oj<򣰬u7U_󁪾~Oo~󛯾ֶa۶n۝2F F`%O 9._lH߿#nJm+MDQv*)}A9UVz%둈Av몊p"IWA8>M e7سuÒzW`Z]QU_:g5.w92LViRRKn$N>4׺z()AxDQgW ta{^lkviR נ{<U|h.h+(|"fb>f&98/@fvl*u3"d |܃RJpol?Wc]@//!je1tgz$. |5EmejuRMQ{0Ƨw=5pR/NYI{'rYᅖ*u-kRׇi1=of9W2x!S/^iZ>9'*zS\1ȱAПYlп`lAe.,ׇ?QuѠdK$(^7m\Dq )^^wᆆB92IY @ɢ=ᚅyu&aVtA+;`vnkɎ*2x.+.c$L0PRcK8"*(8U0ȰReKB%gs[^n( ,eT 7^?w?Ϳ7]}~g ͍흝` 9vm"*;~8_L?<<stca^2v+Kr,]S.huW;MCiri7dgnrVQ[a`[*ڔWjfyElvZIj&$=||r~0R96VEIԜSUJF Cޭ"Ll Q(೼^zW׷ d5| Dm67gՁ\(|B l:>|`8:Ç`^@ceE&YyôH^@~Ep4qt[lpR^\ ju_)z[4䁮栵>@GuWe^Nd䇳^/g\2iD2pC^ ߋoTRK95^#s⎂7\ gۿ旿/hVSDbhBpnB.cSąq+([ &;/v 2ȆЇհl[ .xs\E )sk[ܕL[`E^@\7z[);}Ck*5RQ^ȊIBCۨڋ zW~@B v%B} `L، L}oo ( ?CϜGmwS7|OHWWӐ>-ϨYs-){^V/D5=NnyD)ɡ{TL F:[ɖ\ Ԣ!I~P%a <`E^S8W](d*wK&{hv=ރɓ`5/Rj/sy f~Gev;%ł>uN"iAmza1tQ:n돯"jk}+~oygW8w c`P:4d8.D>Y۹O_ *#~v5-ķp4aʑXިqp/t:p'MtT]9SYY[k6sK1d=w^xk~*e&ү;[Wy.&\ QHLCm e;O Pn՗_~WW]_Ko/䴭Fo `\䍃l8Zx̸OR0O|y~ (xn88?n ZSni6yQ_4WN` ,f6d9RT8C'U -C|]%'k8XY+S*yy*9SFeR >}CsV_t\-nt[NR'"QɱZSp^.ވ?]Jm[;/׿5jDb%PHtbb)jȥizzr<?= Y\jܞz< 94v-t(*k&Jѫ |>t^zݝF~՗W@g t&4 O'C4+G)Yqtrtq6~[>}=Twu_<4l EU ףjfFf( d\pl6;)}Fh48lBVl]Ao5Z@1R4tZFt[~-WuDFAq xw't՜z*mrӨ"!ȣa`A6]:ѝR\jl@9* &ItZT 2WeEY AP}~8hqȽNZGX 6 ;ԭ筐9qi{B%qd,UxIUז[EAA#]2"5Su1IjhȓTp8$*bך6OrŃQ)N䉗4aJ B6岭TCuKM{4L^o][ûVz*_Ug.GU ? -TuɂwA`wwO4y&y/hiQA;Lbn1RN]>ԣ>Ibyw0ݦ maVg9D& '}Ck D6^stLזM;.07ŔA]iz5_+_wGeeRno ~+zIi"EĚZ&iaZ-׿g +q/D!Q@b=^T'p4,Olu;^BN5R5z=yegh$ټX2`#\Y@ `'U׌ Jp<0f:ip| Mۀ_&eLVaeAp50 ^h2LQ=Xg9I-:-]6+ r݀-$Vpua0Wl-J O5jd88SZ1|F!]{5L).Ǝ/LB(AhF(CՀ &pџNͦ: HQOt>9BQquuVwl5lP hag1RϋhCV2]ol{k/ؽBwJ=L3\6 4j-x}kmIiaM* TXRkhkNuu._ýg?/_`P׮]~:N%ޓGGGa@ܬt #47X _<@Gua'\VQ-V<p=?z皫$(2m2֑cC %/+rŻ ] Pq >#J,Q6 i,ʮ8[:=x=׍zPqu194RJk59$\o$ڄVA#d/-̭ piΧ\"gla J f!!C,8!Ny|EY_" x> >f >$y}&{0=" C9BDݗ܌"z"(JA< }eJ۵8l66UanZϡgVJX^C_iBZ 7[ȜVj6yLc$_ 2r<ަ@ jqC7𑖳oIG&JknI~Br!84\ B;$M9A иLǑ$ hh!രΖ$8C' >ƏNOOW2(wҵ]˽f]sZ"ͤ<ե7^}̰IȨ >ӗ@Wql!Wc֍7]AMӂmKW__U@`\~J#DN+E)_*8%E[,8ǣg~<ۢ>"*1Pa E -м/rEs嚯8KQS hbkIolj8l3?!|FQ wʼn#ʦmn5t] 8-J%i5q XTH.C+Fl|l=$a#7yu<-w%" yݖ#X,E#8G㔠=P?ZEun&EGA#]+7j)&3VZj 8 4C<hxAƛb)jFgӢhl%5BNaч2UϺ;ʥk87^ir ˝ޠa &aXrfbؼ˺ƺ:+It_kQ"rְN$ t  kp4M.R-zQp<WUJERa<1TdS9wGd+Y.AW acAxp<|Y.)8ȏG0\GS\Mt8ٲ>R/q< 3?20H7K[X;fAZ-ʖsniuMgBcS@."@I դ,"C>z}pܼ:.$ZY3I<*@ '];=`nq&_&-*paЋE]V0Ƴm:du=t'qÄ}]=}OF1†O"$8OWi4IapCڐVMovhvT>1FZX]K;r*#XUɗz2"7Zi^tyv~ _()`l"4*&T}+d#rUBOm[Rm։s3ng0!a"ZUj]B8 L|5NƧg4Z {‹VWM ՔBtUusrr6߿yݟ}pw\-+%tx5+;ۻAOoX*Y +k^e뮪ow~wտ2nRP3 /%8g7c`\ 1KAj `>iS&hfŊ(#$:"fPjO@&[wRN=}[zHi 1+8 Qr6rW1 RZ7'dw{ƒeӤ-C5mSj5vDz&i44TBI)[ַʵneR\(Ri(g\ջDCmEG30|󱂿eDx@AkXO|K$$,ѦÖ+zRQ+x}CQoaqb/- ^BoUNNSO'gtX؏ҏ p{͒}iY_< c Bdf}cZ"I_aB )M+c[WXzчKЩ C5=SݵnkkM˵NV^zP Ƕe )ViCVP23yn4jT6$ p?^PF ^ `0Ǡ>[+ko<"p<tJʸ*=Uu;F?}cϫ=oC@_Ro3m9RJXX aq>MƬ&~BMVqcBZAd~XLheI.ڎelw; fa:F Q@‡DtK,mݼt?z/]vbH!<9,[/'s _ i|_{$Pig-C#hlX{<;9^FY 51D9E'hi b@ (Nu&ϧG'G>s>8 "P P@i} O[21"O0?D A2¨)―O l4[$Ypq8:=Bw4{`C.n:^iv9PU } 6Uqm5`bmTd*!!;@l\%q-lstEfuZQr:b6])RːSZ9PɈp"\NNpCd/ܵ@liOҵwRyAeӐWf{"o(bN) zudyaXNfn}qǚfl ՗)~:K._yK7\wm˃Vk8ykF~6{kDNtӸZK[8mlK Yw12UŨĕI m.We5nRM PE% h,a (@:x=p\y5<[+#|G) #lQw |0lQ=D=g 0!j6(8l%x6[80a@AyapFww=rv=s>;"|zQ ~Q8B &BF;++w,B "w0!E2hz4kPcQ8Vb> 4/@y a}U7R/]`L0հ!)Հ8hDcXa˩Rwtm AX nӾe$eM>%R\1P ]6\>%PMs:+,!P(dʺ~ ˮ((D1XVLD]&,d5O ~a%^H('x%|s>".̀J$lrW&wO}h tź!nҡ!CCD>4aʼnce*^+Rp<"kkcw܆m|]2 "6j8-=!6{dC$xt<q0icuȧ5,%_+8^_pZ-ȋt8S0z=<`Zs^+͟R^^`05|bγWO4Ϗz,pE z"(0/P=K3*M<0%Uz踽>y<ᝳ~7fٴȶ"bDV5ltZ!)6 80D t3WyRLnShVcsi4Z]j*b\|w5~4ܖ4]A˚.j0 ϊt2< }y``&4S=|/QP's<ܺu;'o'k<%I:"S;v(P~V .XNO Xz?lZU$G=$4:Bjh9;iU؆zBBpojb3e5L?ֲ'J 2* e i4LT1XΑt#Adg55p I0a9# D/z O޹Oމ'i M]*-i=- C>| WTٜ&b5r=׳EFo9hU6A%WEjvK.<?kq #+4D鬐u^6vRKEY:SwECͧMjzMpt͔N I Ot69NΠ0lEÝqjdFSd|?y|{֝;o~9&s=`fw;Gi~%c p2YO~S|B\z\ꆲԟ?Z.ƧJdNDIW~N4>LiXRe=de&TAx5-%oP@G$Dž* W`saԹƜ/Q2eT9r4m^gOy^|1Ek$u*2 >z_?_'a6"=SI]uaG'Çts,|vY Yʿ{EqqOTVtH<[q+%6~] oq5hV%oWd$Wmkԏo Nr7MW3 .yvݝ`l6Un~o(iؓT 0_iQqR{zc*q',7fE1FFMtTV wqN(K ͗XWl?+-dl<9 Ç_O?ןɟ)9.s4 Q}]`>ByZGg>Fq,T!} é۲>$ ;WU2nF5즥C銤3(r#?9@PڶѐZzWFh S(r//lh'# pF<p+.)]&oϊ1 3ְI99kztr_{?}C2Os$t,^@j؏ pfT`'X'óhyy +P4(UFރxq}:`Fߴתu4>ue>H;B] }PPH-SoHuK RcGI?q3 ,l(I|`uS`S7΁A:2}BW~{W'B4sZsg|ǧlR̄{͗_z镗_M[5+EE|a%ݸ^WEU\i ۅSsejݬCT_BvZ[L6.*! r]?[ ;W?l\XQFFEv2@pD',-IiPp)Zs>C'9 "ֻw-NZ߃+w"r7!/o^0b@^JȪjg'YVb^O#Keb+OTn$y(R2EF`7!Y gRoFK-+kobW^nf. $]^ D@ hPJr&̟eEG^ Q (GR4|UL^!^>|hp6.t$|x==ك(>GzFO8={^{嗷`?+MBVZ^/C-4p$}Kwd J]qv.ij. NaYzq/U zjtm]ԴW__֋WKN%0?^jل>y080QjK'i:"cۻ"½ָ |E7p+5<~t4_.z| Qb MwO͟? ^Ы}/K i7ä>]gt5KmЪC6>B=Htpx,[n Z1Gmh7\ͶMwc+~[7ߺ_k^ '!d3n@B #8=]$-.eS3d@mW7 3^r<nN+~ȡPY a2_4M!>>|-`DY90Z 7P_vT8XUITqi]-|S\HQNjB X c~jvcbN|yfwW.o}W^}ZKW7 75P&x7:EL3Qd99&Nq+9;ҍ gAc?[܄_Z}:?/BLx)\`.2oAOO%9&m?t8*C:;ˇ#5՝- ;\D `r# G\{a9rx<>B׋,Nc;ؼڥ~+.6oN_QZW*Jb?;eiŧ`.GC O)&ɖ.D f#E潆v4HylCCp@aza58 79]w[彈n6 Uvo޼y׮COg0<€AikU*P7RVYrQdڀpđ͐+89\;n R?%F)nFKW~奍q7j_?/UAb^?p6 qEX !^Zxfo<&5<6X^k,s1&@,9eA qL.QU*jSrP+EGUFex:-=kB1N#%tl1&™-8Kl8^l^ZWZ_^HzR&R^etap Kjrtvͣ V$JVShf)crȫRs2@" Q/v2*{h66O>'\ΏʵV^r+bb?7yRQI,-tT$Q4^KՊQ4 \4)oAouFb   6ף_w:퍽ޫ^ `lDɹ(K+2dOәq2o?8H,=àPɍP- `&Lx=/ c# @@_tyGD[q ,gwW'x}V:*%Il6ʱ"z3kg@]?bD;hː7]flzwݹ9xjk^DI`hgB3N(,/js-Id9Ë%>M=j8 ըGb&_XpX.^vN%5Mף(>gGqN Wv:]y+* @j~)K,}pTPeA)-E[W! '[ۆ?g\ %[wKn_xJ}rZ$Pk97͙lVGj>'%n8u M ?xdBa&|vzilQ[YnۭNGX/Jِk*-%?ν5ԶX9d|$Ƌ$ ߏdȼU0X$LUt0# 0 A/R CE-SV׾Zk1nvYPbZVEޙA/,K;x??x"GL3v"GiRU͖Z&Ax u] ϷvvH!׸Gl|DI|Bf"A-s~s-L2=4|mH%Y\ul Lٛ w̍Bqy4Sg 8-:,"+ʮn[vrGsϏ`B؛FQr4\f* WLB8!:͵,Gz D/npy8Yv%{WI/.8ύeTIVȼX|?f_\} Flp4 G>]La=I9" sϹ.|y9 pޛĝĩ Cnv_&!k@N=OaS2ЇgA\IfŠr+/Q=' d@lLË| mj{F9I5,=/`w~w|j/\VX$ܞ&"jl8_o${οw^=.{1 ;:b9Hţ"K8B B_L< ǂ#$aYmX8"׈)k?6)w+ h9 jk9CyfpK$ %өϣ:)'>[ww>X-㰊9Xb,h(;Fg6M=O ^LGU,Ϫ4q^rt tZJA*Q$Zi]U혲J+$-2D|/5LnQ`:6t LNH9"ω:$BGZc@5k}Err{ϱl[LؐƳ/$ h rgsCoV{yI% d'pz!S'EF M "-Go}ÓhM#Zn/$7X?OˮDz&*mcƥ˯ހǏ߹tnXoAN뫳v.yOH;~I]*x.sŗ~^G>99l:C X5~xEUz%\݂$8ÝQ0T$Z"Z͢ŴL2 2&-in,F0Gq6Nw?|[oޝ[:13'GCc0DD1;7_ܹ)t;?wΏ; 6w:.8ٶx=l4“1/|G j#'P9qJ@a$`n~ W;"A U"㲑5b[5hɶ@^K|fZVpcR?N*¼ML]{=80{z=cf2fdx{>xtb

    wYg6?-h *cfim|!G 4 0 YGi|Ps]09{ԱK\Ѡ|$KbAɳFAmOfړL)kH3ePus8e'F}qvg+|5Z4|*.dm#'mR㩶p6dϝxLg|s90.} hrm"`wDb*M2MVJ"¿JZ۬!;:5ø\%9YW*o̘0O\L:V~߫f {{ Wwpm%wq^a&wy'@kiYC79T2[[f)V7C8&{ dQ-В[ga2dwU7zwXߴY,DC ƽ>!^v}ڻ~xw2$[,Iaw K ^uE2Ub#mzmMTP[{oO49Vr2ڥC7Գg2r` zC5SoloʹkD֑?׼#U MQ~r1*ˠx}zA})*͕s?4/㑛q%1DDbƜ5|߻K NX9rQϘҡ咳;ITgx9Wd[oFF6[r~]~0GVas2Ux{a2fyX 3{8uy"Lo.納ܷ|y;uӸΏ~c}^Ogi8(&,ݬDmzqN6e] 3~lY)xm)FÍ[wel͝7Z8YƴI cpiG3L v7O)VqLw?7mzeguT{c4 B{1H<4Gz5"h׮;9IOLz̓,X%|Oc^?81ݸLMjӂ%0>v>+Q|Β?ͣwמ:o*4iyףh͟y;ow6؎>7S=Zϵ3vgyymDZM^x[rOO[)@;>)ݫ:<5}qL:&Jc岮m)?߱|jO?zZ~oX}rcwwR3&{JŚ kCf%pnMqsss%DK*nH/#鹒O}&EdV퐅<ϭs ZwFGd%tF6./q]DIJE $\53W~P2։QX^d{nȐ2tD9ijP2i"rБRi.〈F|m*ns_[X22-/d.Xṹh4mGc 2Ƣ"/U/!g^nЩ|&JIDv4"'YwmlH۟7ڼb&G4)^e{x璣w<(謵h>xWk1ׅX Ѱ_ąddu|H!uj3Dq ]-3 Ft[J .l'_:#֭b{. ߽9lu;lU![Dn)h_P@h<5x-I]@IDAT%"甁}P¦ES04?Jx傴)9v3hA!$K%e|vk9O*ZB?W D{#%*al= ESmu',5N_Xב\) nfvf#>tDpi;cnhUKLa^oE=e14JCBspڰ/HGF c+t]p9!sr|Gm<Pd9f6hnҦDUf. 7ۆR1aN) tL 5ڤ-ncwgpcϭk++BRGz(`&MAp8. 9mOШET cioʪ$C'}_ړ5o*-8X`N6brq/@R`h\{ٴn>| G{l3H\bw:qzh&lP٧>" )IK ~h&aMS XCmpe#i[:/ 㮉u[4I;aM!:,@i 1YcSJ[Чr9T.mWxN}9K&?=oǹ[!کɊ'c1,KD?mdUS9 =iH $+6g<2KE)I|6<#k V)4}y-? @AX)(xf*'O9D[b{̳뀒_1E_f.|9L}KDsP_@f#LrcH&_&p򝽇i2QG~ҷ" )O$ l(~w"9eY;F|_^|'Ř^k#kT-ԡ Ť>IrvX~s~H߾1_na;eIŷ#`[xd|McdZF&zѼ[֏ .CwGS[\T)Y;t;n >mW~SOs:ͣ,=~Wh?/nyg6lmZN:o W#G4yẓͫg^uda>_?k׀Iz9<49_ھck&aʟ(od%[)yJ3S XtqQS~}?2t*xuLo(tSǴIo 44ۀɱsR{xoR~꧎>OJӲy`yr4L*wqm7vIM;Oika;46iyGL//3Oz?mW܆oݺ N֟~ܾ_`> lyUП=e՟n<mN0믟?KtDSmi5ł 4BnGYeocsgLgȂ (677#̎?,3ڡ]B FxطUlX8t+mzĢ=ER!6b4Ft\bN,EEG.da4XXM̭іuD.bY*ix.>޸q3g l"e)mCk$Ir 0pN[RiagX肗Flz ]B[ =, Q&|hz`c0e]&7x-.v=^EN\$Yl3[d=c{[?`kޞmm|4ݾ3ٻK hhh@.f{EW!Pc#p5Vu?,FN< |/SFOJ@[ . (*DVCo48Oe! }L_ ``Ei]-u+ș_?.[?&G0D[0ԢfdƕUZF--=G^%\{[?aY[(I> zXвtO  Ur^'c }[ס[d,Y2іڢ <|06CsQ7?K$szyn-8&uq{nOˮ(Ho3Qh!o}pwkMɏutSMǔF1p%O&I~#ХXg,j b+:؞2eUh"Q@'IT1 &竄c^y_aWwnjTbWӊ`ۃ0\ǥGuUdfd$}X:-@UnmF%4JnE*_sҶM\c<>3f1mߟ;Wg3D0Qz0jdt&]f~~UՌ`#?)&cf((toG]Kꯨ䠜)-H"Ku޼qCeO{q;]AQ=D1[""r>y}]yฤwk&wg׈2ysi#@iό[~uvڢ'z k׶01hwNc`ǘGǡTNUy,2ۺ2q}9r|9JV#]1y tCHp~Ÿ<^1:  2ۼw{9&;<>kq}ރv*]ۤ"@D=;~3B9COTs)cOU0~+m/ HCo`On$zQv>ؖ,{ѯBo@&q ϯˏgF^2WC㻖`0ϪU21kX82*kg5&7eon,tKnD^+b(.mߙHɭ3|G۾'k:ޙq~_~z^5WYgXLF]!lI(2L$bKdfq+dHX$akS-l;rt9 ]=mME31oo!«ø0izr KKlf?k-$j$߳q [:;ʠ?X`{I!fmN!Wkm+xe@̙C!*aaw^?rO&uuA~{ 6(i$i0>eIw֕@n169߿?ly_D==F3q<6.|3GNcջ-vhn>4|7~7%#[rwjh\rq{gkd]K>[vhȅv6VV!(D\0"2uc"(ₒE T #p!%8|X>`!PF\^q m!w>ppA ;h`F#: \ds p յPnZI*ʿ|FtlwR [F*x>[!J@lmT,*!LEZe}~,5E "uߠ)GCob=̢܂N>&\xV,gS87 {nl$6bEM}}gZ%ygql}϶7?0kl>* b .>._e{Xdt=0 K,9 ݮe.2xNDkbS! E.j&:E4fL .,y tL@Enmd-mOrox{Dznq(vւx\6eqAlPmӴ:I=vR{Mr~ {2H]hOVHi-E0tʌs q|wfCVw;/㠾kFULs)[bJzqEqomE"T?vЇnkLDEQ]?Gڭ^oBƯ!`~M}*R]?GGh0@}9u}#Oie. Ka4+9>/[d(K<;]"K'0Lüw@=QõB234}:(G>ʔ:zF;ܫe2[[wEb"'ˌ*V pμ,#{nǂ:M*s>)墀?W?X$**bg `:.̮lܞ]lͽl.='<*cu.v֙>$DM|ow?'@ %kkC2 3V?ՇuZN 5AķY1ey)z gO7EEFG}Y!Y2-2kT,|9:W9ƍ:st¼o& *<Ǘ7ihك}~(r ֎A4c퀘;q1˷V{'mmrBwز@Ѽ_,)U<#l;3֭ؐàpAdžV%XtO~S^e6P`2/U u !w_s%lv'u:6NMw|g D&! + ({ӎ^|#wowP@e|m ;=OT8;}yrW:/Z[}v$QvRC{u[ :?4#_ 5l<34>;6:aɇsBgFlvn ױkP`zEgO!O˴A85/&yow@L|/585scY!~n[g=Jݻ=݁z>!iB!GM ک$%M}$d?33ÏҼd+&-ig$Ιz,9z~ { x0W;(s2FC H<~ ǽ˜6z Aҹ5r)Ze,ȲΝo~&;=0>sQgrlKyc;c@S}#j^t'2/,pV |4^k`O×c}/=y^&/}q~cݦ<)}]O۳yI-N;],߼?Yt.Yw\a~oqJ_G4Oh4 yy瑻msR{?U<$>B_tqMw~wfo~Jԟ{j֟8Oq鳶W! n!ky,T=}P\ueZ_N *."5QF/1k<sT`" @У {%ʵ1L PѪ'Y@G{l,QGFYe6[\/z図W?~>m_[LFvqz]2z˽iÇ{Q$] .M Qhj;w6Abt>i\6.6 :r ],2Q:.h#ߚ<\sT=r^YGzolwg&s_#6 [s/>DKta64~ A ~q  m-OvT~e_9#j:-hx~% })ejŌjM}kwYd^`qp5zӵn |0KX@om#ӆ6O4AhLg6#ڧ ȯ,d#m]ikԶ@cl^ynBlɍ1@"FHAsgcB`oHoG-ȫE|]~LGt9TDcZ 'ieub*+\iyh(9-%S~>7w }8qRa@CK++IJзJTFiC|!s\h~1Jt-3i3 vE[&ZG4e~v;M6ngҀzT e~<ӶN6^b0gbXc&>>N"n@-Ι]E_S{P_Q.XR.Su+s8rmÊz\!ɿKjL9nEa<#8sg-fgWMܙ-lH4MULqjm\ $wS.T /'|vNq,Sʔ 6Ia0XtM(PU%=ԇ${M&?´Q,+74R?wSEu,:`8Q}~bMl;CƘ? sԱ?zt^3W@4enms֌VcZ9nmݏ##&#yڻcՙcI\2 rh_,hH5H;[j MVSj(w+6uO+LsLWȻ}>5^_Ҡ_S9Zym?s+I Q1H"D=nEl̚y_`KNGF46ޏx~c<˷26%3mLC2T'TÌ/uEO맡~u`z_R&ᰦuy3()R-ю?r|Ď^c{ ?į>?9}Uͦ~Y?nnS:?|XswRQ&|N;ᇔ codL80O7eI(vFfhy^ <`Z\Y2NalheL6lیBMfc~-ɞa/}`v҉jC@)+m!=wAu|9~tiC@:\6|hGmS2^I$6NS;ݏfuwk|ާ-ǥBLz;Ի}OG$P=n18|^/,p Ԝ^}<T<+;4߶ӏX}ukٞi=K,;2KNNTӵ'yyStYDl]&\09J6M.GH2ҍ,Smۮ7M]u x<+q}崯Tz>鎺NO?Qc~tOy|y~^muJsRiO_<!ǨOs\6[~P:<ݽ| C4=.[)DkyqF05|4}g7NvI (>G7dʛ]ﲮe:?͗_~9|OlIg{ʯ呏etnnЖm6~Ow(;Kѩ & n9"[C0\aR@嬡fQ6B#$MȅN[ k.]"QzQHU"'#OJ"a, }Dž5dqŪlN}frWL=oE@.updVaBЯ qhcs(lMN@Z"L hӦn;~sqoN?]L# 7\p5zpY 3ۺE%"$e& AG-}E*>kEUu(S׍F lϾ?{[Of7ݟn'U .-ΎXFTF*̡Q!'jѮ2W&x@@ ^']`=lhdmJÅgu#/ ý_"5X Es tHA?S"86,o_эu"Ҩ7"+Nheuƙ*꘴ثoSk4oWձNh*ƭB*.Ko "]!]#]rS?!5b@jj}Օqa@ulVI x|Px6~\,ӏi$/g ̹*g@*Em6M@1&cQ!1/|'FA@_#XʗР:pI#3yeE쇊n=%cV~z詀"Ox<}}dSj&f×  D5/Ff:~0{O2n ,0!҆`Xgh9) :A'HI 4@D۫;keG| >pK\.>tn1)ëtC(ס{_[䝈̀їX|Rȁp[ 豰Og"_{wvmMʟL!aq>Fm+cA|oA e)GjK)~ P%Z~? }16s;(M kPr)}Ɉŭ7}A3D;[OAFC𳠼]ށzay@k5&Xnp-Xi[(jIs]b'O |V.HVJGkߎ0sޙaY}~B--'+x?da;7MijKz̹Q1Y%O}< =H?3$S`%9}i )Zskmdc2[_G#A]M~tLQbKkTZ}otn߃s|:f~C`&MW#8>,5+c0y<_2@vKƛ_#PI͚;{,G=3|ס M A`[ UMxr\fuY<~f, )Q?wL;ξ}y4`I"on㰴M(-=`2\Xu_&1ϋS@6u鼎L[Btmch]_gO}S*qwwqSc,^_ dmJ;uq[?ܝ絿{ __WWqf~8./«^ty(^Vz[r8ʁQ%w.v˵hI: ,P56.Phա+,lWXqr._+>F,Hdj (_#9 Qr7e9$yٶ#Tn)Cn)XMBwݸ?tbX^[$u+ $Q Zɂ28.FoHFx q{I0@2FRM@l߼ ^f'*[xɨ0r'V3{y:e9oNQn :?^/ D-&bk̊iF4jb|!l킾L?I]P\ b}.E>&Vk=4:ŇQkkץBs-%`dD5ZF|ร\OEf[VP:7e  tt*H^. gQ B٧G7Ih3ƥz6@4" 3KZWBkd XpM,M"uR`uj19 üE.]װ LZ? g"sb$? p}xw&ofӚ)P7N&1w| P{ξќcuS\ṋ `};O;70A?}Ƈuba/%O܆D%_{K?>u1É`dD& 莫`dTl9 M\}!qEs@h] |Ҟ'/ѹ"cjrn=R |]L??2"cR=+Rΰim_ zݣ}ǝKy!җ5X JT*wh7΋X%WFGmhcdWlxSG;}:HY|  (\Z>wq['S"@+}jpZ_o/߫VxQ[;;*Ȇwx_}*c+\|299G:_ `( VRtǚ~RS1\axԋlÆ59we,{ǁ1 -mJcrsIfe_Zཾ)9B2pDF}0z}]ωW)Q=-h̗Yi$J&_c `w%+]x*/^ )6FO?J/rՋ0yQ ~Bgiz&X9X}[mߧsO*Gi~Gv^CޙOyQZQɳ&k*S~Cy\Ԟ0yQ{nz\.Oek~ȔmqynhEݔ?dkޝwW<OStӲѶMuvyec g <|g}z5hU}VO駶ޟޔE>Mrtt}w~_O*44')/H{?Yۖ$}OekiwYI}A6~a?Q<>KzXgz/ȫ=L9Ctʏ/YʧuOs?qqN0i=ۜ,)v-;@_ujkG$Meb pQ_H֯ rdaU<˫Yl҄auвhu[0yFXdK@2=̫ s@.]DIT+rw{R2Y-.(Fn ln1>5ٶP F}n_sPI{0Vlc$:*&w~ [*hD>p'n$vc\1'[pqg>lZq!ZlHkY>۳ۀѲ Kq/ W *@u1ϭCF+ $PG9˄i\\"pWibtI# p9.F[SM`E86QvجCȀ` ,!| uڭb^Dp[_C,#B-6ۀ͔0Unwlpꪧ2Ff1 eA404+ :k' !$ ŝIvHx "70..&A銙'Ea:}'{ l4Srk_u-[n9ȡK$[K!}|E|D( X{FoSLdGJ2z{E_{Ƈ|E2?Ta?J_,nW#k9%ڷS/fD^غ3r}ηf lϽN}@s`CH+q|0!~ҖЦygvYO8LZ/@0ʴF3/\vԡit gBDW4|LK~"nn2,bx,uE!v\4Ј */RvuFH3q;]q6:|m/usN`v|{fLRvoR2m߼ҟc=%eGvUC3JZ]t\Oyw^s r^.'R^~ wW2nS(@#(|Ȟ{(/F_<4rq<(*?ApL~O\4H?-pswz1_%H|E /3AY:z[<;@o~RKGO,c;%;ԳwA^+jOyWͬlqbte#晇q'6!Zuח{.׋O0M|D%"rܧ3ŧ_:!JA&k}7>JBhWb!%/' ,[s`gDS1mށ,|<[|3[W(0/ i(u6@IDATyFr_eggNQLČe5t!cxSFV_,kL1[ro `r1VX%zr&~r5(ǐ Q0I@/Z/,/,g{q\]lտW{QqeGyi驎W{tռY:O)Yt*e&~>48Zit}?h/}K!1i0iӜ>)Ny$yۗLNki}Y&աҀ[s\yg^TiSgqu,SZ:u{\vҟ^MDz !2{R[S^nU+<<))gBvx;-?$|Figm<|ͧ;+nuףuTqӤ{Qޗ2daojs)'ğW;U}Ă![rw:kTi~c9 Oϳ ^l [o{5 lm,R yWyXR#>b;hੰn@: @< r`NgdA#BXM'~4 X"ìŐh{{;*g[Da7Q<Ӊns'?p4W=)x6.llsGD$.`JExbn0vg _{F1$4O'xJݞ[m*k'ڶʧ[0{BnZcbq$ZOyṬn6'J7re=ؿn֨kF,)nIM<>m@`Fg3Wv'ЛG[,i'Qp4J((K Ͽ2tȊeF=V7埢R5-sL9Fd' _8Ζ̤jN!/.ԋrO %wh3ٮe4fPF5/KgE6᫞W%*NP-zO e}4ebaT;;KR}VMXnEGvSơ6%,á~FhcORWFxg0iy92Ζ;, (j 'wr.@(7f9,nx "ھ 3\qcgk\Y,/Q6]LwbO=Vpu˭xz"8vL_. ueu (@<BΫQ ITMledzߙ-mg.FVӰlՂے:$2MJ&Q/Z띥ګᐚDd>d#?#ĸe:ƂEBYca:{6'Aʂݎ >0o%4|,ѩ,#kH].V+wёh% *:-5̻h5v.Q| c Gڦk\@nX 60B Wqg7UZ:3GЩ`IyA `04>|hF 0{p @0֪esQC~}"k8-Gpfmh-*Z{E|ph>LRr(gzQG_L8GԺ%->_ntgP7GfӜ A \ XN8јda"2jJHʖqLؾ-\F*]5v0\)=i IY>7u Q%jGՎcl<,3ҕҘqR/|xao}3c )><[ߛ/{_3<#LmyL@hY@f^̨αŃ3?lvO>3f~*MK4dq5<[=P}Sy ˝w_i>3s"GR H^!ڗ>}"i{&o$_Qrbμ;:?Jpm:-ShGRY :럼A8vL;vEEAT-VT0?pk|#/ZJ҇r*AGvICRQ^|O-2.t۩CFؼxACd1D/Ǐ[:hO jşCa⟇c 4\֭1W#;^j#N},So9[{rpUv)G>4KaRwS2M_j~ȋR}|L ԥb}6J[v{ܬg"*U6#=GYgni?&d2+KWd>]M[ӖG-_$ى{={[ߞ[+8)p>v\ڨ /u L-">y?/z/,/,p eA,^E/>1tƀIk7+;}qL\,sOdhMǑgw}$ڦY|+Ev<0=2Sݻ?Ն :,<]vـI۞^'9O|F5)0yVc{Te&Hl:A2'7Q):^u{MiiL[۳6,{zǎ>l\@"huR5bzCY"7k^+K+߶ Dr{OYvDj:h^_< =&>l-Ư!oͮ}{[]RUw;ˈzjdAPi{.)[::4_ ,N%'lSp:@0-UGp32(;]!l+`K.t_A"6DNn5L F$#[۷L +Aɂ2wqضbci8WY*2="ir. *Kpi`95, $F7vXW<Ҧ8+2ֶ=]S`Ƚ}.mcZfס[T-=ƥ۷QZO2ӼlX`VA|.PKPXv͢Qβ?0oH/'o=/פLy>fI.ߦkOm'b T(i!sL"\ n5QoKb۝ ,cXd":&at @,]}( =r! 롨Ob;$J_~slնOp߀yK[Lm,/ ibtC`T|gٴc,hK\n}%Av7fW<{81&n}8[x%739֍d3O0)YaNTYsm:P=ܙS-~)JQ~>;jcNс*%[)iO)p@-yg}y F\]BAY>MO08V0 ? 0:u}id6Zl?DufR lDE>DEȂ:7ܗ_G(C~*C vdS'mC1Ն΂ƛ'5j`sQ 4O{(/NÁ^gk}8ір*t$k}-4J&M{h?y~2c$:Mw{ṣ>u ]ig # 3;T +A]9OzBRpX=,EIPc࣍m2ke{ qёoJ񢟴?H0x&2.iH(,(0| %| ;6UoUNP;,)#[wgo :[@gs&T06?MEAL'];L.w xZG~D"<y|T<.C/O#L^VtIe0\|(XYl;~;,ײ(SMˏg|M3iiiMWj{Mc\8>uQvm^{\~L{]owNw%y^Mۘ7]_-NM7ݳvϚyo>g4&ɔT˴en^ztgo>ϏOF[ouli)q9?EM۝O_a(_Y3a1(n'-- s"慠j4[o킎 } /tD+A( ОmV,pk5Z`~mhDG4T2L?{očٖ>3_5UD @l,`3K,lJ43<)ؖ; $ @H"G(%["YU,Vիzmf_g8yFs#"_{yZkvsߵx)Bc"M s ȱ8OǕ{6C2Y¦XnJ6;[nZ *dȦ.ְ$=}=ѕnFGƼ%j}V}΃\c(m%:sLING#cF*,/U6p7ɴڜ@RIH_Ƴq;9ʷ$lVq)k#?~n͜`; 6ä*mvlHO ِ[o3n̶]2">$mM_m:\JͧYA3:\*ܷ?-30gƾ2SR0J+2ʝs?&ˬV>H-$>* PGtD(Hzu weu)b=^bGJA*:tOxb?pfΖVd}{dmQav7^%4xL%u&cHZQ)C CrOqkH?q7iΐm<^J-L.璞rr?oμv3+[A7h={v}3o\D`-n\ΙP,/)#{]~(Dp56~$A`XAnJ#1^/7h2Ÿ` VT갅j/( B$w]M# A> sYyL 4;sy3r7`rI򌼴 ZZOF5j䳵d g,9JJrl3~(42JX_!zk bmrha|竱\4xnhFU?ϼ.h)Q9 ̟eK~ף]L o}_~̨ң\٥GIV߁|N ]' ,bH@+ҎW8y!}cXĴs̟/y(U9ߔm^U_Ә]qI]~ry]PFWJ]Zig,~*ZiQO_/\;[H2pVEc-d,SS\+g,bi@: vR? wO$Ͽ dy_mCjl5Pߠ`2m]:eޔ6,h%g-BSĤ-Ki ﳖY>s YAhȨgQm3/K9L^˨*'O؍*PCk-[os\ozްag_GWM_28'u~w(۳;0iֱwT aHw[Ɉ~ݡ|q_q]YW^|7ge{5j)`r,~;.{Yu鴌1q?'2h~]qM?gbjǠֺ:['mhPޟvӧ#myqmiX>.uOolFYĿle&[ǾqYt?Iu8ҝ+c?K󏻟$ʦ/~~8UΜ1k*7Cd F3=ᾅB6uvh蕷‘nv_$up:0>_pD[_醢5.n  ^`ȅFzԭFi`kΠ^n|Xn< 0tqFc^>#|ǩBG\2ÐxkN,SY~xlyLg*Q6`-ԮYO2T/}}3Ϭxu+٣xq绳k%p?(Bv&5b\w07_@)FMM[A-ꃨA*9JKCII2ǡ uSZgcR仮X(Zg]^&Mk`L։>G^HnJ\=L>+C@Y1{90ussޑ;_9&/-E^?i~:MrNyMԓEVܫ2-O)v񪆒d~ Qu3FVY$de5N=FznFڗ[rW>=r 0&]j],5]}JY+AoiY4no0e|"׊*(J}XiuzoqX@7$z2g_R4o'+YC(j{ c!"y ߨ ~e_L :-0W!Kͧ>c8ߠwj:5B=cVJ4z<$f6MPM-Z2S_EOzewxS_!'~?m.]sYkfhwM5-}"`-~pg9ZcyjcNF b^"w=pжw.߹#?UǪmJlcյy IT\WI ^>^_i{eWs/GAy p {ަ};|NKzʜ4>)ϴ-LvQֹL]c;kYϔVy^gL-gO~ΪEL~m&|ͳ6X;w=  =N_>dY_0\Gn3 Ne¦.GtoooY[. n♐עN+ML`-m`x-Cn K>xM.| =&1[v:Q0Q{M0@Fh/^2}\ly'xx~XzoQu.رw:glx.tY~ 2X<=Y B<\I5C7Q=RF*@뫵 Y',`~IwxɼpՍ}lƲ@ӛxB7hMA{3uq巹޸9G_۳_?lf϶gtQZ6ഓ9 v\dS nB6[+H47*>- IG^: e[\rs>.xC{ #60){xG§ "izט*Խոe+1):(] Casn2m*EI 5B0O)Kbi*߭d !tުڂ2n^g 2 R Pu=b!Hnx쁶_oc7呒e]hۀC0yH%ŶrZ:I2*ŧ[r{d:>bS?-s"d=^C=Wj*: :u!t[SJ0v,,=LMF/7>C\ >sIC:{4JvhT-łc'Ky)d0w5S.k%I3Jq %wjHP:Q&C>|A/2!*bCP[:TTXt\,h,L GG l Rkzz\vQvVGdۡ"mHHJK+ѼMa)i -#^"gУj" ͢WvTEl+I wnyՃ0-_YK題20s_C˻C{ޓ7SwD0+1+> uv,}UdX*~aiEtOn'+jnPIrrYJDR[ɩO˽*w(Lڏ*IR('Lt)9XaZ|^vs_A!;A:*9m,G?z~Z! =c?0/0tn揻F;dP6u_sWO|)R1l`9⩜jb1CZ]#P 7W̋9"E5_i=5_[% b܆k6++l$u|sLd̆%x/x}9N,H7X/o;ؓ1Aih7RBid}ʇ-|Cϙ<[7 νG>0ԇ+}ke@!D_N~@?X0^9U('ŹCٯ,pe+ \YqY/[eÒ T.`âwEy'[vQZ~.Seg+x 2y-c:ϻNwuk{_Ems/1 s. ]xL.7XTlly/d_Wr$MZErfQٲyL TֻƗq3=iZvZtRnwt/u$ehN:4yְl&wT~>s6;->͔i{]S_Z~oߞ[K}Y\0\}ܶ˔{yIoIjuLtK&IvD܄q/psC>ܗm}OLXc rI/z_FtSQ)G8c0kϦv>s0nXM Q:J/`r}dGAWlzɭ9I;+l<]Qz(oQ\+' :cxGˬ.p4Ql.QN;PPT@ѱvWq`h)5 OV؈^&|e6CoMXuxLhtIxhu+ȒZ loX2IMnQ|7:;{verŢvz. moR7wlBG6UYZ"TJ /  0V^& H Jf#zS#ʽO+KGz&D` +:iWNQ*/[)Dc8J$rb :}UDKpʇso_U1-Jh|2#A+T> yُS_/U~b#vW|QBd$CY_jWmLBGJt[$ .@}*S^k eeRp4} $8WK}v*/Bݭ `vi z9SC[|orn[w{JW fM> `lqkES*_󇿉I/<3k<3#@->ͷ}xMZ`ux1^!celo϶ wv ϖРQEPOԬ@Q@Gf+}&dnHڔB J(YE\<Z{=Ӭg-28:oP-F|%DUe %6p> Prp ,FBv$c|&oeg`skʱ3&#>#l[Hí,։jLIAT, QOճֺqyS)F(e_>hasK8dB r֭@&|P>T_`=ky:< _ݥ?L.*xd1R/S9ZznV d0PzULmc;=ؼxEnV<̑(^m%fmQW:9֣vu28E.nig-Y#T1e ÐYk5f^ %;H:tv@2Xs}__+߉|W{TRWhM |#6'gXur䪞x|^ۡj_C::9<ͤ~Z'X3g]p:E & T2:cxdHS@3s2?j[']ޥu_{weÑ܏N;BF+i (Y5KKzpjIJZ}>_ ++ |f\w˒^02zAUد,eϭ˖q7vm0EkwQW˲r޻W'm_7qCK}~?v~f?S?4Fiߌ韾AZZ?~fֲ7QyS?̴clRL)>y޶]X+ȧvoXT:$zi&.Om|,m<9-8|Ms}Yji*}o}ZvRڲ.;Z4}hYDw<pr/>S]2 Vtӽm:ԺuO]tP;ϴLB/hܶKyy[͛~fݛϧѿӲ;MimX06*) PNx<@鮴}~q.+%˞IV§ vv<:~l }o#ύvw9U7xK|'7㩊9Q-``!wAk2zoGx6ܤ xCOWtӴ4ݭ>9 ۧIM\&{6a'_jIo9rMy U)ΞzD7^z@OiiB}"tMcNIϞ|gߛ>x.= #C[OQJܾ5]XMc)j#4_1q؍BL@Aut Ze &> VI&=Yzܝ}&@/y6hp,CnhRҿ> tv̂&f9 Q ,cFEІz3rtD6{1G^rԟ%bU1?_y/]d|C@IDAT]c9O)cE7l #Ḱk(%HƾH7Mhz#Suߌ7Btyy.ZYRPײQBR5?E"mH˴m֐R%6礤*l[Jh(5y&ՊrYgX3t99Jѐa˰F䚦wU 7EI }ysڴ}MpHsAMxԲ EGR8c5Y5֨?/G>Xj=zvFU N׳MZ9;?HhK\œMiZU""S<$&qDH^)z̋l-A/t#=͏ 'T&>CA)H]i<{M5TZ.c&۞"2~IC\1oLz^eaDY!9J[{>(~`"^X7у \՗֗sϞ&\.;{-O*YF收Oв?iI]y=N˜G-S]q]rO `r}>Iyݧk_2W:NE-[JvhozZ4+Weu0ymq }\t=),$.ҟV}?M/ҌX8::Ӌc9ʧyџV;._qߞW~:7]^܏菾k\q˦M:_G]['q=C^z_u_lCA&2 Va'~'Ϻ߿?,ΣOuSN'OOy/D>/|ygSDBDcVw'>6־7 ñ% Ƕ =/ظ1Hb&^ ʵU{3M,XУA$j@[=n ciE톸"SF`>GzΑl{!kRWh:kw4Ďs}}+=l!֭M b4:{/}+{Ξg+ڂrkFqJݍ-c26_Uo;~E *c1IDK7{1mՆC5A?@K& `<7W#xy1d *-[5Hn:̈@V2D=Ҥ-en:b3jW6X$QK/L<%~J<˖EcΣʱ&z9/GKb󝃚A8ջY&vrmG2ӧzG 7I::늞<~: 2O2ܬf𑧍)= Yr51pK9R:$ ]tC9/'ź> &[nu:=z(70)]W c+MK. y'?GV%j!A'8j@Ӏ 1@QU6ԸEؠ֚'$ϸv=R Oy!6\FLJ"DnXZv\؄3a9dF1m~Q#YX.Oz6^O|y&YDO9e_;u~3g&I~ '׾<}[32Yc`'Pcpu(>F꓊9V9䗬OKuLWZjn+:5NTVA^ItDN=J_^u(K`^zTZPo,F%D#V>'Tn1o]9Oce, r礹` !-ӌCIeϔIQ"yoGB\g k-S̷]@ȸZȩ{Ʉz;4xIrX7ޥ|n#*I%}ǫ۟$=|p]~8w=x]5O6l`+#ȭlY{MZˠY+<D/=۸ʇ?4Ga\)08plMɳQ"3oP062`TAZ"FQHH&3s^/ ]i[ɗ~]砠f6n}qQvdF}ۄPHWI5`^;t]"5"8/|*z̐$Eg^:e~wlF$E橪6 -?W~&^)IN0K)cY@ P}x1czܢ#- /kJ+AGǠV6Q$3wꉧuށ=q߸WL~L9ԕåM9D )^:@}y1;B|9p~++ \YKY V/xE|e Zjlz~9o"+-S׫L57Gk=MՎOy.^qjǍ[v.-}vSS& }{[d}_.,i >oqQ;4iמmnӲ9]0q,jkӫLv}]G.;rtiϔ>~J7qi󽦀i}*󏻟"4vO iz0gY&ֳ˦M:_7]I\O{ }TͦEٿMe=zhck:;I/yS?KS0l!|xNjl~Nf*L$PR`QOSWh*CKjsa&Md{MQy-Tsju:%\en Z}?;G_=Wg?.Gu?]3,IzJl|l[rֻZ9* 3'k|D5 h:&R6A+6*ϒz[$=[/`"T9lC/˫%5<̰06LklK< y״D_ɦUn uXnr+CӘ;$ENei9QQMReUUJ09wy?ư4iٚ>֤4s [w*y~eɵ<3L]>Yİ K+nYVT[95IhN8П?(*\?W[~ܤ\r=,We9]Q_We<|9Ji쵼:iySڟɟoES=~VǢ18.y*"mR4Lz,LJc>lvIUv&v^ME "äu8u_]&`rz4;o㢼qiiZߔ>~J7qi}_?NVw;Gs\Tt+2˾t;lZy7ޘyiwZ塚?u({Ԗ=nݺ5>wjՖ;YJ:Ur~&;"vXĻ4`/>c[anWw.{x&f`7VHdM[3 yN'Q D7߬Wl(fGmxrl!z~m$6yob Q/4Mo=){'XJ"AI!G+{ce lTU+rol0%ni4춹3^'pñܻl`z>>x2{<)pH=d7C_sD/]l PIzlfF6d4mdA[г[onq J&ߍ-6<{+`<`j_ʽwf)ccfswE|)*"f6Lfl q6=x$mt=^[:muѣ *x% Iz\7t3Z#>r  gz)cm3gM| `[_{~hƵ)WHb{Of>zЏSz=z:}'-KmԶ[6Vǭ*ŋϡ-O͘8s ua/%:=]j"Qdm{1 a@cڗDa,YEQ2z_=*x>9YQ4v0ٷaLvWgG{ DpշL BiȯZGUĆC]UR?]Ze`dd,] J9R]ʎ. d̻(`o}|y|c$t>%ޏyήy#ћu;[g,ή#@~::s3z*6Ρ7Q~@]9gN c9vu$(۠-՞~wU-by^p/#T~>eKh0av{cG[Ƞ6(#ͷлCܔM2YsT SȔ,rU 4y'QbH V|?MPVꪯֶzXFךˬNˏoM3~G7muw~d-e>{a0X22zV1[oqz:rY+s9N֢gQ|2orS6}_zVe^*=.C_Rdz>5Ѳv^eoY$|6pl "m\x9 ozD#Af_/R NY[$_`$@nlR/9lʰS 憐K>| l"j5C6k/l@Pu8:w{7G#@Cx"[q >ˏr^ 8m r6h#n&fJ F>r&֍ |dQ+G 1,|{;ظ!yοGnᶵu3<Q/';G ף ͻ zݺ5g?/vC 7ױؔ:ه_ofϾM~ol+Glѹgj7Q4"˪#K]8&L?<'&lz$vܠlࣛ"GЇnZc1Iĸ9izlU>.*Mu#e3gG;2Gwu.M4zS. !4/|F A` A26]ԜTFQ>m2WIk8ХFrg~>fn< ^}GEDP.(U>[ ؛x 랐O9x8*%e-# %eW%[ZӮ=*UfYgͤäT/5јFԅ [QQ<H*`dޣ0L&jd&%YkH%2msW4䗍JɓO9Uy.>2"l7o;3F3X=pV0yAD>ѧ7! xpg &^0CM,O׿<{off|t :A;aގ!1kUrIBYœ6m3c` HZ㵥XWSq'hN+όr&(M$#g̎ 䔾b\C87{^*uk02W~|~zmң_?⹸u-ԼڲXu`;mG)« (C+__e_]WsA+_V``֌YO74v%[f[ֈ1(nZmP bܾ\g~`}uޟHR'ۻ6 `K:.3ww2'tV}I5LCe*9iNKn%5VU@N:KQfnJXuH>`դ{+a. @ޡcDEy<&#yߊj?^`=5 ?l-J\3$YO3515M'js d4]-Kb ZYxOZw"LyP@̘~\] IJz^ƬU\fN}TO3|Ln:_]W_sYy5 RnMc:W.kAy޻K@i;iu%nM>띳q$&W&1UY~z\Uy˳啤9q;nM<."\U賌1mA넡ØE^޺NL;kk!nqkt6ݴ7L!H+.ä_m:&q5ѫc z m}\u>۷^>(`*w:ϻ^l-'g8|-cEӼҋʴ|),?Oӥl//u֞)}|t g3oe`bYy2jQnԾ=-oeۜ{޽eٖof|E ϲ穾4`B>t#0ޛ[4\XBb[`_nq:tQozڼ9XA-7WϿiuiZ'cWIt:?'+1yihّ4tRס/4&܊M>@D+I$rkx6r)Jx*b%a\@D֙V;TGW2XAwK2A!ߑ0Y}:xB2z{/@s-'mJmOS$=QC&Y/WN)f q-5H[q>KNIcWF/١״fӷCQѤp~P*:3QBƧ*ݠ*ǒC ̹"g\aJG=[eDҗ8|M?B_GrgEc>Bg{?0{$!VN[rU"9wݢ3R1HH1e)-?@Td*J>UBSVR,2ŮQ)? ڮk2\MFu`9M{ihJi _}\uv=XqƥZ:t٧kg2G}f~SZ̜'rRH,epU)B$伿ԡ?ݝ} 0{<\QanK5+sR+C1/zJڣǖf,b@A,'Z`'% 3wdQr I6=4WYeDxI3SޜZ5zFӿ.ޭע|~m9'ьe5`8٧K7A˶Gxʚ_&y9Om/r9e?G(~g139^(`7~7^ڴi}cb8?K$cҍyeяq9-ݺ,vS4eО$,e~=NWy4-*7ϵiQYXD]p"юXMm}L˧gMg.UUsVϲgӟ3jQ{E/1O=-wY?^0==?cvGqL5;t1S{T_ .wLaw v`O%/zr S3J/RpGq z*0͢#<al4v>(xp=fm*}'@oˑQ8[Q u] T <|:vkcs%i#s䡴lzlHZ޲LI1Vؘ,8[z%vQȶ 0 kg.yzŴ844)Dv$ɦIzۻu{c˽Nyc@vtl@ ->lzg\<ηgosУҒ]]%x-D'u5b2vK* šU*ds/ _ *_~w =ƨM7⸱XvުD0q3@bx ) 'C~J?7E=(Jq<` !-ǍbSsJ-e#+n,&/c0<jXfD.0B͗">HW,^H)Kj;o)%t-P钍:\ &OjvP_ 0iq̵ouS?s&?`p ^3s19sN^V/n۳6v ^& 0yY6F4mW^P+y#Kp? |o C?o1}~-6Z?Ad͕+ 3Iʕ9o 0H燢mEW^h1r=QqSy0Ƈ4ڥ2[2pSP~*Rz{=WJe/׹h(C?=X'S$ 8(kfӶzÕ؏ ^ O[1+~$$1gE6;yBJBꖫ\ÜcKЧjUQ肬&37z@3Cʡq.e yd5 m&)YDi(;TdT ucϴ; cKV&5 `Rmq f.%s mTsȟϕ2M5>-)݉H1O9\s$M?@>; I"%l̈[g=Lz) Yl]0I@Yu0&l0lh=VqC֨K5x%A <ǁm6XWZf".'m<-p[j'őe(Д;4HcgD mWy(W-07m懶vm1.ڟ'S %4rdm(w?ݡOMwcYR `d|A2M0I¹͓H"rKJʴ2"U"遼s]äH]`g͵EaXy<*YU 575ٵ @DCW\LCpwi4[v#`~#E Gt:Z?)C2OMI!J#|^P$iOۻ[: Y_սbt@PYrZ.$`Lɟ{G~U} }gLޜH?~@#ձv {={`vݯlߜ]۾bxrdr,,k(=}VLeTa$ڬzq+鈇Z$OJ*`(4dEn^7Щ#BHFyvP2'L :p)(#LGz[*4R6V| T?, LG)OՓB6̊lPD2_ed)eJoTsުڬzaW {t946 R%-z`_}kܻ kNYB*gR<]] zöK>༴fK`%{Ț#dV_Hp Sy$z+fۊ.ī`VEidSC1O.<Gu IFTy6Y`Wt@z\d9 wk2"yZWk'iwwM@JykնZfOw2G}:Xk,g5=zgk,?홸}Oȷ9 yC:䠿O3u|y;8[.ALa'\G)-Vqu>e "Zp oګC$g! GEG%3mȻ` XCMֱgz3s^<"w@Gbm")PvPsv1N|6<_z&LΞ2,[3+jCUޝDGǃ6 "IyS;n/:~[Y* ;OnsS97eKgzLab x^,try 'OwfOL0U7):Mz~n}{$# P,ַYn*ڴϖ t[ϜlRr ^O eAMJmytzts`񈃶|zmZ)`%:`~o6x~۸}}cMVGnF.R;n v e ֛@^Sb}/GW֒()G[d2kU}Ӳ]vP0UPs۪Z0+Ͳ? dn5T<@{)نYU]e'mTU^ml(Iȣj;ՙf5k ٽo~e[_y{vcl.Z%Ȏ !*l+Ϛ}ykPt@+}c61 :4Ul Ҥi OY S)7mC`^+̎| Y rCۥRr "DH__"o."E'| kJxk/4u82x#_3wc-jՕ,peWk˶;YK&蹵(o\icWl]=^M;Gٯuun˛zc<ݺƀˮ{޹ڳ^"+E:n_a vLQ_>ϫ[ԶnEm bQ'L^08XBv~(`Jvv}iy?4OgY1q{ːnNg= i'cQ8?%mLHiy k9]7<bZtuFvݥ:Ze,v˶c_ݟ1-_V~+Ν;q2yާ߲?o*jq.yeeu\pw󝹜oe㭇;>.?k4i(ly4տ~3x5*asMq! Y21=I@ƑzsFDȥ\RBQh8"Iyv!AM&Bh{-Np^!3 O3 u tch7VՉ.d|wnb>N767A3 \99v[0ZܣMe@5l|Xq>Yo# r<<=esS#g{}ݘ _:bPy7شF_@uySfܛxڊacm+`=~UV7kڛAt^<~:'ߚ=̞ǀ&hh/ȣ!+^^l-`rӾR[Ii!_vqxs%R`V#`դtJ݄Mz0|cmV(0=v9weh$JiZVV[+g~,K]Yyʺt )a@z7`6DR#I2l??`d@ I$DP-UH e{~{f]NsN^Ɗ}v\VXVD}*~gEݚAȆ8wAea0K Iiy$_\mRǧrm&"}FX_ju"՛P5ZV4I3wkuUHI)dH|Ioc~/ ĖkCW+49rl #DK\ekJ{3Yð) fCd0SJehrJ^}>$kB:㢁#TGmZb~z:a/pd  DjҦ7G}сWR8W]&@IgdhcT/ ծjtZxe |sz`Khzm!)G^4!/w2 ӊ}(Bl -62ԢrZVW֠hK<[J,}A/tgT8џ^BG.s *W̹E/Kxk[yl{B)l#3ɷx|!JU^YD]ơ"=]mihBoSYw_}G$nY1"qQkz\e-pc~po;[ˌ賯~XО'!3Lt ?Wؔɺ1W=LnypSPo&6Kť[v\eDɏzO$ ۮ0th+w]k+ȣl"$4ʗ6'i߁?܀>K'")kNm,p~`=kl C+O{]~'X `I1.}[mkw~~Ę >μ;m3;?NiJ_Y|g,uǼ ? lp'Dϲ6 nzw9rv^=#ex^ 0ŦKM{6ؠ'E&D\w$=r;`{텪%@A`sאzzlˎSZF#MS)xDMb7xܗ <%vWI镵nPݼ#C+"}k`N2(@Kxollu[\>0An8P6i"[С#]l u]O\/Y?V[of\>G.T2*dIهxw¾Xw,u*suT璴K-M69̂nmtN ط]gcʞ;Gm#]=[`ԙ&B]䐺P9Ը' H{m[}{Gn_Z6ݸᨕVy.z$}F\:1 hdgՕ+[p@=]zgg LgՔcq;/`gݳvs[usã}nTw2Jl=Z'Q\e!W kb?#S~5MZEklQ>)jL:Iո2|=3UzؼD,_Rx$d]h66?C[j_h_V,zWfm1ێXAZ]m:!ȷBY)lPƷZ6D+fs6 5zĂD`mQODlu;3@nFYΫ ֫?{6Q<!ޗLFVk6k"vwus SmTK]ٺvknjo3_?BGlc}ʪQ4UH^'A/ő{Fط,{>RjA܋֦{:>4O_܈H|W# +}}44qhHe;j7LL..:7nH+㮽2 ܤ\ʏvirNˇ yX%ύH}OaVY?\m\s[#JUn,m7:)Zq7ڞh !C+ho#CϋdzX.riU&טS^y :^~ozDmqY5'S<9wK\G+ `$ h0)j“JZVkSr+&yܽ2^^k@)AޫzjbJZYxUcƫ,=}KIۙeY"emX׸ɕ7OMu̪;K%,q~.߬>nۂaigjk?oͿًⰏJϪ[ixVy'_ѝ>m{^C:o(PG,] i]{8Oޫ{Y??>,_Ց#{~ޟt~-=⑩ nSh>|.hMtlo^ILz^Za3 ˀ|: lߔ$mFU _X l챣6w&em6K湥0&鿝Lm\"P=H7&}i7 @_8p,WdarXj_' ҭ'FK m4`_R/ԭFKvF4Ս9 P {6 {E]Aش)nE{bKnVs\Ll_nm`zl^L0x<߾={@<鐨鱉6Pi/M #cO,KaK؟H~=!9≗ =f(c=Bf˲ɶ7,ymHQ&Sh|x)d G)N3ʨl#uo z)Xe5т 3hH_?qѴ{׻ݭr;s&Vix 4Bez{**Y/ܬx-Ht1d5zN=Uk_Տֶ}d!ol[_7 k+T?!fnw׹cY`z9 >GqHbm@%t `5[S#gT[?`8p~H\:r$d$/C>sGlS'ڲa.ی 5oU)iL{pR.? {G c]}WPiYS0 tqkIb}?ժH3\gfwDIFrGy<ڏ:`Joؾ[xTVG+ef .\]9=/~J]~sc+%s7cשjDE}'>rڸۧ[>ڱ/hI⭵qiF%97(^:5*vDro}6Xrlc3JY T b*Md~|iZkW zVƵ6߉Ϲvy0kasγV~$Bk.I~1վ[)usy5]A겕C%,_R9Cϻ#/MH2˳HP<)0i~=[ XTfT~tHo.ar[ǖtM}xiJh}iR;ږ?ދL.}o߹`&;< y#֧v]m25&(otM)2]ux\'^ϩF~<^kAO{9z|KG9gqsegbxV5Wiu؏\apT;}{g\>N4d0hrEMk{ iuh%wi](i{r!>MYy%״UdY!`ExmbyQ@>#"^`RG6;Ҍ,x)k5s=Қ a{]- P6tCGl`/fqo<N6:=F\Ϙ2rYǟRJ.12اKzf*:_][oa<;sB{O88DwO=\_[rf c8vgl"Vw=nanwF7Ic6zen6`Y.*7 C)5t!Mvϻ@7$ YA UL cJmlb/uڑ+ vr|==1qܡfjqfFb+iBBp'7^M^bNR_&qg F@$.[KQb„eI+h5&>?4U2pY%GBOtBgV4pw YN~# ̗T==S@}Tv JG^#yIӞ`V96{񬅗WZ 19ڂOc펼זrٙ$El3HۍD>/C=  .i3,xC+-^}i-ZOHr("E5E-wgwm^{`W.m^\XsNj; T5KΒ #z;ܧ.o?Y9"p36IVkhC V+*Viԝ>p$c65uzƳjpt'@Ǿ:m4К2LT}I_H_1 sI|\v7uWh ^,) _nsLmlC}e?I,S:ڼ.`Z'!˛#||eb1 o'6];Vűu)Mx7#w^082M,|vm t߲SSx40id4ƻ\MR*'/ qk/FhwϨoZ~Vg0jjeḳ7+_멾&a?cߩٴ:9dxju$rYR$x-`F;.mTڕ# [HD.h%ϑ$g(?47o2!:=w?+ Lƀ+Ϭw\y*xΒlk _/^rI2 և*M>>Iuy ^F+=~;0~q=2.k/RW}\eʤ;o?>M/BU?N_SWy$4Qg1+>&gGC:q2i?q2ocy;*A{e> cqcc̿ƊϿ1tV6-$x՟GBOv3L+g+'=~?Wt_|a}=0>=k1zsƼY6Lҏyӿohsߒ|{c;$ D?8>Ǖߙkv |`% P0"Fc[-&@-^&ٟ bǻ"9@*tsO`9<^~-65zlA}n R<8W^DE&22ol;djtTNQ_Z`[E2S [7xx!Aݒ)hHy(:ˤb'$.|*UO8C521wSOYtOϣY~M9uBEt,qSm5lwT45ko6ǤՓn_Mnha1#mE=r(}TrPf26&[nE>֑䢀o3缞&gz'.R3Boj>13] [tF/zͼ tѫ?~О ;^?MtՉ=4bՑ⼳yK^a}S/u[o?e?)Ѩ0-0hRQ~[[DVʬ=$N']lZ (Av[e-wǭ/ɳ#^dyYw&5ۅrY5I'Vd/ɏOk+c~P3gy2&]RLC%hʬU3 ٗydi쟟6zM@{'u[}=D-FAۭ&0yyB?0)Eهw|GԏZ;H_/ߛ\˵I|ηo#]=(wXdDFm'U{/w?;sz§n9?9j+ay&P7c6aIyǵc݋/~~iʯ|.iwi^ OR휆f(qΒ_y4Y!pZ2ocI9"]un&aؗ]ח!>'~`P!0,qǞ1ߋewԖ:~zI?_4?|a/T4Y~Oz6 ggsdXaɍ=I_džiQ -wK|%w>`wC ^Ɣz {yܨZX4s ]nUҲ%Zەzd <\ϒFs2h7;cV4QSٰd cX+Xp>6{#[C6wAMj7'ϸφi.#"-?h N&7\C/J4d>їr#5 xɧm`x 9 kh(7pnnMrl`K~TWNKz QOee?`dՎl+@$iF1ou`jk/ܹm3Szr˞Bm6;)l2c̄*i-)^]2b @Yt(sȤF@M֑WqBI)7'7֭dԷ}:qTũ'imK"cEvk0]kPL;2FYk|"QKOt?GQpuʪE{Oy~s P>/> S%pq3y0!)A(Ks'~ƭnvw@9cǑk؂xkxQͪ8iuy80dB>{V5LO9Cd\,Xt *97}_f8?t87>cƏCBX OVZ)Xd\̀ɟ˿`) $=t-6=<x/zd6@]^xFQ/U3`D(buem#w#t\ke-6xGH?Hk=V xcB/C#Q@Q3n| Dl 7Wk^Q@IDATs\P(vyG'Kڕ-suu Pb;f|{{_n~]{*d=Lix H#t> BUF]guJCџ}4hp8"U0%#KXvEec~g7˵e@ڈ%-o@ɦ!|dfQQSFmf5|5mHFL>( )ږj[>8㠝nM(@>F>icEv]"t\؆ݟ||C#6ȅO9Կ<5˗-:9~ɱ|&.ٖP#ѴG`^1҆j6t!T%BE'{fho7YHﳤ̊Hԭuzo폄6Ҟg|Y`=ђoX9KDy8B#ڬ/6Թx6G3R HGE#(bJgFOҲ}qLlp(+mchIpl¾P^}]U/򮝇|O`{o[|y{6#isbdNQf?䉧czzRWY$4v)O[qH+ /k)Ճޡ[j+GS<ǵq4-/J}^N ?nkV~Y~Z9OUildKCݟ4iL ˍ46/5Әe +Cu!0^<>w%=6߰3-fW֦CE߭[3\?3?ӣz/av ϐ޸?5 E7;.~iʏi'߸4N)E]F߾mьUg?+2%WO3n<*}lJSVlMYΓo_ܹ?^v7 UՆ1OCzPuy_)\iXQ?r*/gzxYh_<a6+;u:,~ E*շՆx[>K677wUkdye2]y֬ʯC*We'u |qws47^@+m muv69@Qe6W7w} ܄AˤVj;M$ enxz-U0]__zO[arqG}w9H ̟}1Yl6sSJWCdt#{&8&Ah3y,_0jX녺#cӅSb9n> `M6ؙvʜޗ)XU vP M p6Ri5AUcZTlNA[/=kP+~w|t?~`#xPke3]_ˎ*P-:'ɋԑ03pܷ M!77۶ յa59˛6 v2D3NI]!XEOn_pkUgu*Uः)ƴ}MU;[C~ : 9q߀:e]G҂[{HGS X_xtOۀÛݷh{H܎ 3g-utL}>֊l ')`5j6pew)u]\\[dz뵭9'C$-4xk,ܹ%(冋&$OмIeSqwxTmr;<&Q=_ !z9gglov|Q{GƏ|=~nnsm _F1GӞ 4bY !W!4c{tm19j#ުs8U)%@8?~PC̔NB]:;y1\'<ڟ8+qfed%W35zNXv8?־5 8[p+RIT4W?7S_ p6f+S\t$-daCBI=];ZaBj?mޕzXkױ%gծYsOy} p2Mw @g*wN_a1 ~<Q *ݬ߽y~M7s9&fՅi&^0ձy)D,B:"QxޖaCw=ib/>wk B:o78AShI;g^ˋrZ3\"22hC!m$)K[+xfdliyP)"VdkEJ< '|=<;UG~fm^lzH%]'r9oSOm:>3MЇf?k'k_l35f2u' 2VXNr;ɋ bVPpUkj;]~v潂cԠl$=/}CJ^!;?no|0y|ab|MzwBھTih?y͘O6:|4n22 V$kϭx,0 96Z? ԣ(y7%.toq- f6CO+kl]_K xdyx\Ϲجl)!6h~]X"2:2ePeh>\2uo޸ f?'f A E,\Y]Hr)jNOzQ̩ zy[ԋOsd*x^naD?O=~GtOŃnZ( jVLLx =]]Ķ Yzt:; ynbPa$7%H'o ƹ)n{|5*H$ n'?4G?ѿz<343 ZkmP$ګI]wJ)JRaj"icٸEOSn:ۿlgl{ cBO9Wv_G+ Υ (kmS>egɊ9>LHz @cLtd&cdi \Bn bq^~8| Hx%|cfAx좯}e?ҊeZiMRT[{qlfpmQ)=C3+$=ėI2P`|y~N@Gz+_x"|E[C(ľmbH YI(S\K7(\`aكHu1~( Y2 `~U T@e`rq~|3}ƴ-\GATj{GpMdf!/du9H$(o}v=NjF֧ݧK:ExNwj |f0k4A| —i*y2c=+zi7&'K&x.[P+s_>e~ݺQ-f{|yF7g53(ϼXx&`-ei5?IzFz'Yzh|>@{e(V 6+j8ߐsry+?BP2;}w) h^yM|t4;cOƅj5`'93Lh[m ՝w'MXqsHz>x!^`7vsg ֆ|;ǔ9P$1PC|Uz#FN_J dd"wLKe+6/*eI}PKO}ʳx#{ؤoK\ A+wc5#;|7x5Oox{s:ݓ'4J ՝kI6z\`Ce.nzt߸4z/>|K6,9/Wg+uϹ{5W̪i[wyaڼ ;ݺ]{73u Piu Kh Z`c?M"0W\em%(P' 2c/w$x( @( l B̸)@*D0E@}[^B0<(NTB;x-rssW9Fs#qK/9V[]X(vɶϫԅe@N`z|U;C@_UBe{NqMg=xG-@neA=,esk~A/RvޗkF3.&4s' G(B@@3ĕN/2z\Ǯz\|wf&{?ѭuntwm#Fsh_x)bld{C)l؞f}7ף?+ e}> :3;j)x49׽|xzx֋Mfɣ4/[A@pPz]Ik_b/sguPm#AFH(}iC~#e P:+ 8 ba&owaM>v>LBN"GsDՙuH/Iu{a^6c<5MV~Yr.o烀mSo.11o ]I㧍a5$Ϳւ:7U$JGҠ₀۳~7u4ԋ㉒Uw\rSeu]D- Pփ}}ݭO?<_ۮ5;j7-`!τh/>$z `ƶ ax~ĸB1iyt> aHcU::|;^df(H =fȓ:ӲS% o{eE[;[pde{=}=>"YR@9XJGsL-ovCo w h_eNx<2w{)K[7{vPK=>P\DG#;^VY/ױ+r4Cmu;{Nxn2w0wmτy>a ԳpEHVO|ld׾-F{g \?}o* %-m~z| .r #*< M*ywg*sѾ==i[{ @)~@֚1!YߋYgq%=#oOG~1`#<=7qo3M@kJ1le?PBJ}3BfhU\Z6:O9=QSaV/jYWVܛW:TyC 6JPe A}E,y6GU4o]!UB/xn~P(Sy-ҶΑܼ}̹tOo $!m`<47`ULv5IH槷;}n+K@w:6}|i{,4W X_D!"(E]: `8NǕU_ϋ,ۨ5_mN+7ڒi4e)~ rgT/*chgݧ~Y&?C}-{ cR^(Yun0^m0QN&~OӇ@iNѨ)՛F3VcYt Cd qe63.qCˇiUw}ZͫKU)mLX^}݇y~*q{0k؞|Vgn~y\$=J.9g+]|C+r&v|a{wͲg{eYX3&o,xQd#uӃݴŽn06%0-ІGQ(rܣG%z ܾ>>xi¸#t0 CۆA/i)[fC ws ǂFZ'*.``v"nryi5F*7|F<^I=h);XmM.ZiK@70^٧ M;Rwp-'=6P(Qi-y@Fו7<":,hDg 02ٖJ7V}Gv7sL9lX:Pj C }Pg\,0D9"=$b?'uFB? UrBBS'dslJcGyHOP+Kƺ n79r~LuGݻv߿`cbSh=as8@@ G=K^1XgmF%.tZ&|5K<=ٰuaL9yLޗ\a ,^~yhCdƫ{>}lv omX}v-etd֐ێkȭxh@~S֗(nKI)k> q-uu։yzڵvd6XܴCv2>aE֢ej%|:d{N{>OE.XZ1 0;W= W v0[<&ēv<ƞ0l3A[yb +$'u_>P=;MqcYteS~l֋̅]z:H *+`R ވ; /巢{1bdw,Lpꙸts-:a9V>cvH Oy^>͌/s A>c8`^Gv`:  ԃޛ|4`nRG͈7n΋-]m ͕{"h'2w}Qi_Џ^L[5n_ SubOmŚ+v:zʴ]FkmLzZ}~hc6;7#c6.=z](jRnIlWz˧kkεu mnkղ.tKe@"}$^u˹3Usv tw5K7xҖk8w|>@yq|'~\60XgY}^w~ 1zn{}r^wm<3An W`IU'5,k3 D&9oVY}PɠB⭓YU~q"-$pMVR[-wM(0i%t.w!ށ_ebHak 9e8]q~̚q1n>j@ʼO4?|8:/9*k?>x\=PɏqFv> $>Y~$m:M"sK/6Oĵ!%0+~26W;Ҷ!`[im/,C+ՊRfcC֣%˴ٞ-Li‰,sh0g7|Zvw戱H-q#\ e#؊,fygx `fAWȠO#n8Z8 ]8oN>l\ ^W\5|*Tk؟a?_/?_E˶Wٶe/^އ<ü,?Lcڗ"|.Rw؟+.U#GsO+,~ʇ9ǀIۙ6yy~v>gvw\|SگM|Y@OY;;w~ 1rV~_tiJ ꩮ1Pz#X'0)#C,ʳ?3?3n3M駂kzEۿۡ=Ǵ#5t^u܏*WY'?|I'ӧ?9s_:̫vU٘0Vf՛?̫w}_Ni^YVtW^5δ%llC0| G61l]kCzaMڧ {ko8kF ٘;wӾ7!GABg&뀍]w28Tp sI䦔Džrk1m`s u % xs3p~z~]ͳ 2.^YduA~i~&hwfCw~4" 7X8|P%w۰Ii>E+Cx&rM* h7ݦ@;2޵ n ï.`}}wؐ~oG_Y]ڲ7K9̭-ڏ8~79OM&k9◻s i_J(UB5ɥPa]4zh~ ?@?D )^[(3OLʓ[pxBDjc#6ؠF * 3{2^;W.n9)ވtΪ+pOE"ڱ=s4FRH`k WY7[?;M;KhcG`+04[)#^J9zw ;]q5L5^3=!^:I VE7X0 o ^=Lg##zu/0.^at.,\ *k?k<Üwl8$E~H#<2GOx?4{ݽ˗}CU`)4N< ;O)Ij2PL809e\>l9_d@/Ic}'!B\H= ?By[4:BC~N~|NAQ%nMF [CPqZ(voyxˏ l9n.ю%+k&m{o:RC>D4#!F)5MzIyҒqig=a})ڑ {Xo2hVm ~w/uqO5 z;/{ֹf(vmQQa fFXj;ǙW+x/ֻ5<h?Ƿw~|`hGz h纣 K]gQu^='6ju %mՇnZU%z?qa-;qXXŸ%?C>^]G7xxg:vt^ C/3/x~,>|i_L[Jl'̏`Ofy(2 Ll ;*3;x%:/HFNuk7" 6f01wKFji^`+:u\j ~$G e*;d!Sdjvg^݆:Txu5C =8+QCB؞`k߼Ż7^zõ2ALkqM4=gtüiXgC]M榀?~ս_$A60- ^Icj`/ v7=cCZ°$,@Ej!G|Hf*+?q{޼Ȋ87ݳhN~z7u܏=,VL6,d#Jf[nҸO+`RT3ﻺ8,uv.?NdEm9.~꧆Q?tVhHtkۓ8q&[gh*`O%v.yzߩ:"zV'z寛^Q2vuTi aXڨWM>x _¹ݼa<_xsȰ2GjHvҗg\-Si[n~q)~~~}}[uXi~3︛7ް2MZnT/^0Y鎺㻟_Ud׮ڞ$]6YW +IՕWO&=8yOEee/[~OSQM࢑% Eru,Lxi>&:riJ9:n)26{{XvsQz>2Ѿ8322mZJTIrlllf;oeI)@.vwvMЉt::67sN=Dlq qcR@2 2"!Q+[^Ӑnybz\`ex8XWj]yDi8:7G;(~D_̭31ScK d6KmuWneT5`1Vn`'%smȞF'e.8u\+ "KIDNh`ٓ'_}{FsfI>fUbždl.[" 3dkrP\ͩp8v6PNxXY$aAYnc6Ddڝf.q Q@??f[` }s@O,M il:O;Y8Y[0SH%=vQV&&ꥈ<} OeuR8?i)oov@6ؙ8f !sZC TV"S&؆2!uVԦK:\q {?+9f<u@T7YT>,AWauJoƞ{uh'gr/SZ_}QVMy,,ڄ{hն&Q7JLiZ^}"u9s`\m.kxw~lƼ'eԑ5̏EưS 8b:8$ ǂ43clٶlk0ay*h~5@.Lͬv]da%b|GMo=l_Em "im6]g\s1鱶W),5X#y X|'gT0/32xoԺ$[K1@IDATϖ;C}]0_7[lʤ\ԙ#a+>#H{ W&ק@$2s}s=C;ldZƌs)˃]~ψ2VIgYǐ5ƨi5m~aM:c&YF[ Gq {ZStԨ"K0Jzd%Xa ]8x!Xvy/#D|w&yע.4,۴gf#c@zrܤlx/wEPS82X7 #E7> d}5ZC sXjg0bKӅMF\9ߟQHxjRKP>m/1F}iuרqqU#g.098i2glw>fΙ.UY6Y*lʇy5Grjz!Bޥ^iZ蚚2Pl$}{!]E/^K)IVvPVzH+cmAMkI7/:iw ,r2_*c9\L,-P$'ȃoULA}GI4mo7O(rFY[>t v'S(Wuʗg(;GWRQeG7I%&:0]^-Om|Jz LyA}D`%=G/E_l\+Xu#׏Qfp 7Iy=J}Ag~9I,gI+IF4+~mҿMmOO.(Y.~ƴ/?ӹ+}eW9. 15k=/Eǵ=I~q]< 㣦yɚ^yz_]')S*{'n5?[}uF{\Zm[9wٕi`RLnү%=r/_߾W9*n^M2(nTnz?iIU~a"LIe1P^߶d}n|ͫu}CUӻau׭<;6of햩5Oo\~7OOG{YWܨK&neg*0a`mH;Ƚ9D:o|{D  C>i8VQW(Ir"6Vj D[کuX.3r8駉ZNi@ J6@,E<тmmiГNQt>-Q(95V^~E`@#CԼU@Y[ooym_fq:.?aDq >\l90ϗF?&–T]߱ S=!Fԍ_c{5|%#J彇zb/.'u|u{E:֌`j×Q-v_'̆6rPNó5K_fqox篛{+ķy}=]%|u ;oZ`SvG ~ ЊQYs^}FY&8US"e5tbo-Z4Imw 4x Hd{y1v{`3W :Cp mnQNJI?n `ֆrFMd_@υ-L/&J#Ys cMǟ}vhv ù R}/܎yd^//5 39A!3*gǗ{HE'LTjnԢ?*DX F Z4 pP@e"akq@',LmlyD._g{<(hb:t#+iPOҝ)OVԠ-Σf Yu$4? ?C%2;9A:"12I'n$«#CmG+~ֹc歿6Q1ɬD>nǝ%U#o$ Z-ck HZQ}IJRkj#-;+Jю~ vGjՁKFrs.=:iFUf lG驙OՇ?s  ֌h.eLw)C¨M2βE7/JM2/Цgto|X-t(w{ǫzǿI|R<9*R)"W)P8NFd)`ROT@&}~1/LKF|)/vl$VfL6TS0IJ-ּ,ʸ}O2UEyM (|ӻtjnEu/ʫ.*sk}E&W;MiU>{6 f:|twG_җWV^X Wo6=)/3RMW9͜œg##/b&U w|+_9/r]I vA p3n5xmN8UҩiQS_#Mֺ5 XV/{&+s|NJO_o\G]~&{X3#Z~T~?}\GK/o5;NGGϕo1:Hc:IJ2ek)cBP;mnn$aYם~ZiҪtkjÚnz_\t.jo=~P~i?/ 엟n~{Wtִn}?-{$~@v]s?na8.K{XY^C'^q/ wz,3xqzqg.nev̈M8MMp" PƉJW@3w_}ho4[Ϛgt_ Yb;@a)s@e@zKDQ#b<38qBd`Āpَu $T.Fk6lv3^sisd'vfi?֡mń{Av҈%z`pj?+z$a\`Q eʡ~uN.] / t [ %-kD] *&ʢ CDLmI78wCE}9)1m B@ЋV{(#&?P>Qkl,d^3+ݟmTD,BSx]إb6 ֹWgsc_c_7*c@>-jjhA 䗾Mo3OEn 1vl*?89r<e h!џ@@%"s,cNK@_GVCDr,; }B7S:KhJt^G0.KLGg&2)s(j? ({e ]j1giRG~u;+^] rCRk@Ugx;-N_'D_5:_i:sS"ʂݔ%*Yv"I., qœ㖤C 8\%{PKĭw4=ue{FۢI onOuҞ[RK$9HAݖq\qJbK{A! 3ՁvbiV*< gLKafp|q|P._X\8}:CVd&(n0Ѿ2 z|hI O1V!s{4o}֚ͧA.mEW~({fڥfa0Y䊾dzJQ6,mɝ)* =GŬєyI4e:F_댽uK2d*L%z1m!qUGfFW*)ZyLlI3c]_ ց5>Xt>Zܢ)||X1=Æ5Iƺc^ޡ_U qrVYYާZ/O:Zi^53Mx{j{d.<ȸwE6_d1|TNzw7k3 I>;c;gs|ijۼG o!{F' ^ڮukSY[u o]宺y??~^u tnwվWԵ>_/~ty|'~j˖F]'Ԧ4ӟWl]mmJ>WԨZ^kzVzF^ͫ4Zǫe "@0~2/SvR^};_nC7{_yUwt>]yF}c=Q`@I>6-I9f!oUxeu_| tseK&4F78Z4aj4]㙶O-[fl<{:p<d'r[OrKqN5hp 4ߤ=&J8p6L1 [wR; :-&8Iʗ(v~M:RcK4#"*Q"C6N: |,xہ Nfgo[kwH O`'mՑ%,ZI ͈6DyI͖:BVȎK*F&8C /6nHlFܺvꇴs 2LM:%_N f ‡^[u?5֓G6+[fi3KR <,ơY@MFkI[O"SY34~ He+iR[B+z~=jUbp"@*J==OtCz3LV D׻] >آo]y쿂}0F%BP4G̎ e٧cG6;w;9;ATgF9&P2 ISM.N, E8?RY1NxDZ%dD .LV+`<͸#:Wg;utB6?5Cή\1. |U!m-8nM*wʷW ۯ'9G@O+u-e P@#gܻM7NAha7w#b'6xiƖؐ\ z3sR21<ßsf vVvx1Er}@B\-5hgI`"¢7ˏZ*Mvf?6y`(QKbڣm4|D I8Wn۷=eоm `SOЃkd3 \/λ}<}m|ﯛm=iNAnO@ƶCx[@_aP,kEۈ^y8IWހH|>KnjELyBO~{/>;,/ I +k~1{̛;q[yyɽ `];r>EЏOЩkc}hڹiʻ_'t*oijNC]Sޕ@DܑQE/kK_ZIu"53}W;Wa%/Ӣg+`d}@=sҦ0çVPy-'_EFdQ6xJ6$BkNxd Ղ_WyY .e\N}xa|C"o7& pw-} 3BWȮrKX|ΜibcTV-MH6N~}Qm(wlUK C _]1۬-B2T:wJJ9d\Ϯ3Wfzݽo+;5=>zB>q h~>G()sNw\C|oG5E**Zr.LX3ܒqn Wv.Pm> )jz 8pl#pgMU2ghxshF?<<݊;l ݲ44r7i5pEFs1N?>k}^@aٮ .JE^m_xtke۲گya`G2@}}^qSyUi>̿:R. wda2,s]I4ٷmԨTGL][9C]|k_H&LuMvyL^0;;6/w?Sbʏ?'|_ð~:az?/ϓ.*;*oXau?bn}u5(:5zveݫ+JҩWӧ5.xӓU c8Lkci|)`HW=+ai5ou:U?Ww^~/7JUzU5=?2˦ ٰ+܍psP? N3un_ ()|q윋\<hs0szlY;}ݲ:ㄫ@I#9, ̝I+m߉ɨwq<~"Enڦ3B i0zFo/r\W+[yוhERN>}oXe.Y]gs̛gDfmeYKB.<dND&M2o$j!seh+q"8CΡbGe.:NET!Kl>2 \ k)glHi%'i~`NfE$ kd^o j;uB\*r*ق؟gÓ hHȳμ8l|Dc'#p̻Q=pAM@wn5aW2NҬLy7O~U^xY{fEr>OK6TeK Ar?]6r~3U1\S@y*- L-ŖwFyurvs#yApY~(O(.W#p:(z]`B-cWtm͹~5o|o9ּ?;֎=~ ~(?anΚt|t8xr^8.?nZWAdS}9 ieGO{Tz\y:rTgÇUn OC_imڰhpy3e zU #3n80pʝ;wʠ[#B@;|mRʼn7@7wM"Q:! VrK|[kG=d43#M0 [ FtT(HщgC8<42#K)-%`Rgby+P^|n>0v{c )zbT+@@i"A1JAԥKrЯgq&bNm`Ԍ/?rɳ9Ş) )'٬k4RO PIQN.brv̭6jQ/G W@f% \32ڄ$?i{ (&MqQ [@eƹhы5>̏r6ۭi @*۔YKFlC#A}88 h,CJP|%{ J8h&:H8ծQl<ʡ arF,@iۜF]D>ia8 t{uP>FLZa.Vy OGo=1 m(JڇA ʬItXbC  U E"cO* iʓ\Obmj1IZR1!rL=`^ƜH$ز:9&3<Dnو\Ycx/@P]+3#}t"<#x(qΔn;CZ';[Զ2rA7vUr~apezeF\$HcǰU0A?T?/󶏕8s E+ۗq%9F~Y [` |g#_JYГk2P>R!KlGܤgҡ0clYsA3AaY8&]3W@LrG227/k|?>G$:pJkd)^s+u@2 9ֽ'3< n8L}55awAw[w,眩(DI93;DQH`b~&,=!kcptT~FV'lc\;Wz/5F3f>gyGŶD|k웈?d}Zceņ&{sU\K~ص ƺ,~k >؁o?؅mmY8G{9h_ssOy¦kw3K3G^:*}X=( jۼ컐w@}~V:r }Af^I⻃ﳮQ^dm?y~gQ۫Ő N΃i?0/s6h\0ɻ qW?n{FhΑ5@qm\# rpRԙNian hF7x5ПB]e ҙFAWLv&ǰni9MiꌓiR K''ÂQ|yl8$&=Qs %t"Ī}|V}j˵*rK":qQn"^T^EG/t*]Z&mWt[EwyU~9uFor<+3IҺenso}\qл^ǫ֯ \Jo6eF0Zݲ5^yKuhu~~uШizkz>so~aei뗽(~F?mJwF-58ּz}_y:+RW[W zԲ'݈;i[`U7>.Zd=F`ty08Vt6yD``İP!S|;DMCr۰#>v "KgD+dd3Oc4{v:dHNuz\vs cj2@@cO4ř-BGmEdg[DA(a}b;Bpĝ8O@FJw(xqovz^'Q^nyjv{e:t \.ȁ,P hW;nW:![.NNK cTv;3Q\>ұkwmYU tV չvLk̀\hWN:5N~{fwֽf ;Gf9k3X}0*Wd̕mmB1DxS&hD\qӠiy+V㸤}l`s^$xff+ <a` ftxQy^:cB;X`F;d9Eo~m).X@Y>rp=iԈEN [ez/:^!bRtN|#m!m 1a<%) 3 =3c􈱫Nph4h-"acOy''<}\iv, LTOʥ#P?"Od^"!Zc;I=:gYfڅƮIVgYi>s{y׆ 0m*WF i]Aڅ+;;A0vU۩w9QGYJUn &䫀_hfxf @` SiΟkIf A1D-4;o 0 0m4XUY`Kmn܎H )N S`|`G?;3;e+q nTs~a4ZuLիr};)&UЋ`ĚA 5]S {X_Ңuo3[9͇fp^MХt,qb+{SVWm3kzNz ?A,b7WaXZN64.$%}O^ǠYH̩w[֌/q)0[8f,Yԫe0)/I6hF#.~4]hWܭ0 a7 OCޛNrI$Ӿy q܂ dV9H#XM&QǑ8{9DqSDBF=IG'}74὇g~{̪sr-FM @)ίDĮ ZGi~uq? WS~Ύ F+^<, rǵ/@;r-cPj!CJ0i#U9Y踂<~@8hWX!"0Y\^ l{PG?a6]ChȂK̕Ke+0||5r]>@cg>~]m]fz}7k25ț%}5cddXe@IDAT**Ώt  he칼V`'4DͦvdŽ{~ srT3~\m&Yֹ˿24J>]=oHV{l2n˚@Fp'M.}S`ဿv̇16} ,Q_aO0`3hka~D.׹F|cU/6tIzfr;627{>zl>l6Sry `>VcFL mdm\Vm;J۾ӆtyG&UwϹyn4pYy7h<ߥ3> 09JQZLKszԩ|^氲l{4Y*uveQ&WWsҺT'Cu}T/{*oZy*Zw~ZE\?ʶ^P[6Nթi̤܀I*sMI"o=ekZmy?]~Ti>??u44.7>_2{K_ҹK?}ZW_]J^+]}__^it^MFϼ^|ڧ7I~fM4j^}hOVI۫nJ:x>iu*osYٻuim۬:qLi@1DlsF 3NDDZhtU &05{4Ȅ*#p6Fs|#lW,-qPG>F Ա;g(zVLa: g_ǧDh4 LZcxgD7آNGCA@SPd(R@"-/}G~]7Evn ګ58@FIrN Q-F^` a#h A8򍀶@KP 1l[π@މP}HFTU}HǀnNHh%Hn=[)V糎@5s[O5w,~N?z-1uS_磯' Kd=DȗFy q&* 4 *#I5YqR;pvȜy#} 5OBv NTFw栿N#qE -Hl\^-QJ7䣴\/OYc$B>+iSx6ij2G-qg][9mSYRJnʵշ\DobJ]ڗMI7ONsQ}`!V><v@Kph[ l>GY@se[D,\%1FS@䧛DQ4y TPP)Jgs;E6rJ4})gdP;'MxF\5G"z-? B9?@<mEN6:H@}P~X7]f;~@[-cC`Q k~PpMhܹxVZ0)DENDgYa2 E|4Ú(^e8 saƮʘ1}^Z&?d4rݯ2Rȧzu艺J*??HyG@F[$p/5fѶ`wDhdt9v@0|{7׀%}'Ҧ›:eإqS~ױ;Sk%}H3ibtTa)u]A01{||rI6uݧ?eWwwWJ~!kߐ{8,}~ ٰ]Ucg;߷ L95#y#k";p?R@ 3WI{z 3G92/e ' ӫxμ21hTI\cskx#L1>dj ?la+\t+X)9/8刜4Jc åy4~ҦUiԻԀcᦏH о~X5P5E&iMSo:qK粒3O=j^^D}ˇi~~.!uѸ긼.>>ItntRՃ\mfz25x}Y|^mmk~z2a퍣sU4QypxVsMZwͯiwiy?^|_<|7Xns揣5I(zUy2wacc^.:q*z.:W[:uQG|cLRf̗lu9O߯_D?GF<'[llU?8pe SQ8'­u r'6MƱF-3"`E3㓍'E-ȯ*Çq\h+&.⼽(m8lȨ}# nG[Ftۉ<=w=d++47LpN\wdZx;,ND$[hpU:DtqBu-SUbx tjʙ3I9tr+8WliĨQ:?m69 cier['Ao 2S@H8ƈ͡S0)h0uBu4Net:,|xo6˛78*]sqžk"њ3)—Q1}}7 `K`ܢQ OgUǩ*.8Bbn.t\ U: %3 k?Q $lc*d=-\ƲϺ9D8}[:G -j,-E7suf6@hȈmɀ7Ҽ` @%F=c+4̛929YO2*=ƴVVmEbG P5P:Iglͽ<[\@A*2{nۥyΝgAl1&Y]ym_kۤ]#07u!?űc=BC˒unVK|% P;"d}smԞ)_Le,hWix;ByO~|L3:kR"͒S[/|ݖ媞tpگzqy)1JzO6Ϲh>ˌ^V=#SJU&F 5ʞ`;їYY'1F+L\ )1Ǯu?xo)}v (X_NyҵFe*<Ĝj /=j[KSF+[@V,V=Y|.]K&;v";*7 =w#uR.`Ĺ$mvpXŖ?7}Vv"W> >y5(/kkV6˛Vx/צ\JkG޿=eL%tq׏6"`rky;; Sҍ‚?*Oڻ.eLOW֍n4p hF/;_`RFJiMSo: ͋맹V78^/?v7mԽj򗿜,m~\~Ǐ 0Y۾ι:h]F_U\eڻe忈ְIE&Gv}cLRfyJ/io2u/[.KҀoGD͢s<t(%84JQPC^Xg2UACtsm818GWF2&x6ghVZw:8]LKGlcH8x1rmmmN4@ bX kյ.mEw?C G!q][ )pʀn*: F./!D!H|tR|"T\1#@ h,*w/*ĩLȶ 0K 0a(qv9ƖШ3\= R&kT2j/]h6FѽMǶ<0hAYj}:#ge3V[h5D=c MDP\'`€iЍjhVg@R ۲G]y^-/^tG.m2*/iV>\eF+h+J2>W9(}v>Nyti;:c= YyyypA1,a+FdqujP>>z ">Z| U?ਟPxRh$cZ$:.O0{,X $5\p'#0UM${JL=ͥ6 SW)ь;P_m0s,љ1 Z~ƙ<,huhF/(D~=#` 'OL$gA'3_'M7u(M{S^ۅ0{B$wfhDtQQW%9. $$I@ڪ˚L

    tIh&K~%EvPFiܖ|GvF^Җ,`G_=; Nϻ<<H] rs3# l9TSZ#?ʠ3Q Crݩ@"3"γPP<8Vl_]ӘI?X=-ʗq8,MCkqS'>vEKcK}]EQ&5_=0Q>.0)GjΫ+G?#}V{nU7 hF7&@}(wl~кl˖DҼ~Z4Y˯}iXz̸Q׾[瓐?תQޯO|ѧUV&*ڧΧҮ3Ka<\_zmoX?ްنlcLEڴcR]LZnEgT;o\QJ,&}.lS-oye-@7qU3lM4ˀt<>4z !N8xl6ٖzHNU\hӡ$N[כg{Q68&]% tJ,}Ȗ:vo|f-p@RDdK\ D1a0Rjn(in:.ZN)MnkcMPI+kܾ[(g+n#: Byf:ez;<#fEP`[Tq\2ʦ:BTSAi3zh0l#ad%F?:qn=}F>[2: wif'vm#v/F8LP],sG1Nq#^Drȓ[0 #)Is^45Gjo5kvK+mSH!5ZK, R(N}:WC9O) -&O+ZP: xݞ_iE+i#=\ȅYu+o%aLMzqR$L9-#4GhQ8L󷔋3yX_`@9)NI۲myꄶ{/@t!1|Z=6|D\3ԋEh[jzR)=ȮuACӱ3MOR2Ws_!<؜QĀk< p_5Y-.bFq XFyM!7R- q F+UV=.@qbijs;a~J<ԍ*iyArUkp#ONW^y(XҶ}ò XFM06Am]7(9^sПXܮDv:PD!&G["eaScuL^ZG0%SX|80%-Vʓ!)k9KQve卬7?p Xyu(aۀinN0 0 gkxw~ h`Lm?F0,& Bu3Y'5sk,mkV7R͘BJr c2/:-ǹϙ+UUhI9 ]Yܟä1댕.U]]P6}Je2jq'~WFœapkfz:]&3J[0$sN(fݣԥ-u-αk[o<ɦS&̙hezݠe\cL^ (=uITxJZ"U9^(G]ܲ:juvF}ev^^[{gskf!?tT:_{pjK ymաdl&#7|NJ·<-F1L4=m/2vb;#H:\s"EEQ۾佺+uCQ$q3ɋ1hdCyA>o2>mq ϻ.&o;F2qaKQeimK2=4lɭn 4;ҿ.(tu hF?T3 2&5_S}z-? KUgh~73aa8N7mnWؼ.4nO0Wy/,emiŧQIq&́꼛}]=5{lewۚ~>qGJ~?oسz>ʶ|/:MTIˍjg+?aк<`"L jJ@^%*dP4$FH~Y-N===H2:n s[l}u{NIuXd f[cTi( 7ۻ;(pBnlcP@7|D7'O:ѭQ:|)#h@;| >fb-;s#\" z'ii-SfD<@Vn1.% G-E_PVP PiEk fTF9Bn˽H>D'G)e#-d%S-(I:=lOԱXP-K˂&щS`N!JF42e.Ά]Etys4&g7mѿt?S[qecf+kʧ[ 7Q^0@hovJklci~S,K` ȉ1З{8v%! vt 0<,BӢri)(5w${u΋dـL9vm# KSy-QJ]ecF0tUYױm4QGlyMv/y\(&QlN*ERNc^!ez}9["͸Z,I{NJ挮l$+mYII?`Do 7ڱRhsE?&PtF>'vAFLOޑu*Q/Xcw? @ݜE;{;ٓYgُe[~3cUn -_x@BOZBB-, <`OȖ*R%LmPV1Ș#2|Nsd:+✽߼^DYkuͽ7yNC⽃0LqM𽇵 C r(Km=G+r+pvD^vެkEyg\8wcև ~q/][wƫX;;_ Q|>sAǓse?cczF6Z T>ҎRc4XK?}quF~,W[yrBf1=*% GD|hyORrRx1tXGK~F^TJGeYc_[=Yu!/zzJCUBJM+돕ƮD /S=CT$/?X?{9:?z?;V_Q EWڞWIzi^{_ޫۓY!3ycL`/&U%:NtyCǹ$ IxǶkgx{OW,]h u@_GqR To1>͘./џ j&;>ʮ1@c}][mȘo~qgEHgެ=RMٖ$hJFW ֌[I2z#}J)2WCEϘ@܌ MfN}L<6PKbc<|xN6o9p1Lz =tʌu- edHlZODs¬.8k"[c >ּjy"z4LW*2O9S?S32.::sSqn,~~._鿪|Զ1WeuXx}h߾nt{{מmmZӚwY?=mZgNJSNsN3$}|'|2dxO^Lu~y:_q_fed^_Ԗ-wdi/jYtwi;Q@~,;w6 բ}٩BwH{sd7/.r|8+ 2H @Dw5tpk) D @l2/86E3׾}{7X:>l i h]W]=f|.03v|YmлK egqvs]Ÿ [-" л4s0lm>(GD Sv8#&,)XTprk:r:w~*('ݩ]`\t1I΅a6$c8"@G_=uZ Ė51`K@GE=>}G&YV>}<.fњ^Et)T9B|czl 0kf'G^| Ykj⢽K .*Q}7Fǘ}(GP:?lcZ@ ,2o@gG?WQes1%XTڨN;:K&zx-맩k ˉv*T9HS;ڰÔݫB~ʉxBZoԻR_ȩ}~[(XSbREEl6RLک$z1EfE%,S"Ĕ^Dž~6; [+DZI %1MKģ]E'eeПr3Hݱ [p@Q~c9>1yA?R-Gk`;-SAQ0[:3E@*BoH}cT_J]j٪3x^@2Y.$-u N<07}e'(1iyF]2}dW%ؤiLG!(DTƹnZڌ;ixxe+ceJTFl'~Cwշ7~Q8  x ^YX CTl?[,Yn=g_I\9!Y~?|76 7|OS{ʪ8;:$=JQ^d$c\tPCR 6xoHQXQɈƼM|#TG|KіLK's4c:V_ %wy  x7~)wov=Xϫkz%|iOtTϔI:qu˺,}d]-g~%xkpU>: K51xsӘ/'u/;&r6T"!X xƾOAw>b!-:gAjU3LRYrkH"U_Vꙧ4R8/@gxggqO˱C)"×6JIgiGӷ)/`rkm>J9qa6rn R,ᗻުZ?SwK. ژňaߐ_U{VUǤjL7>b kbXi5v|7|it_ch+yq60.HDoƼ胬TޢsIw0߄\7y'L g!ڜP&Ŗ2 эÉsM{f1'sd:<#0<3^`rlc9Jr.wQ~Ugo &zr2mro}+;u~ng,,]*}.]"}2F1Nt;o^{{ʽ__vOOjZzR]o?i{,x|J;]뼾 בugū?u*.=cc=1훜_ƫw"˒m .#21/wiopƢsV}\tQv$d=+>Qz{:JAK\: BTƂ`C@*qE$.(xc]E&@C77xs;F~0b~9G@Jr7v8fpgJw:j.TH H%4xpӧ?!ǀû.=9&PQ!AZd czܹӥT x tP,|aF^IHɯo#WӦL0=4!x@ߌh^7-"!Rqsn R;%&9;}Nv\E^[7>޸Ҡ w7];Sq)=opџ?a&(qsq[$ 8xǷUw4Um^Ncp>|`'s ..d8wdokSVr1vPt8Kw*t8ݹj6%~isB:&B*` @ʢC\=8m-1'iKTEM74\Է“:c*1IYnldKKX1nVw:u'TFhro uêɾ5)P &R:zTx3ly q)06_ mŲYKtȕ|cg+-[S}+]PI+豽lWWy?$]Tr6;lb͞0I~"cM-~YI1&bSƶᴒ&%5tڬZ (W˧9mwwrDƼc CYns+w#HRp@xQe, ayD\%3>GǶ199-j~s`{?s8q$pR}>|@%w E+h?gf%I|9hg aW~4,;P%slNc4c/G$E7c/Eih2#':(Ik jzؠ>0Uט/E3,"h^c?rאGAQM ݧ2/@kʥ?uIƊ|b'+ HlԚI"RՉ/էݘPCA/R.atDC{iUlߕNKFa< +, %[RcNcp]ĕm3᭏- }I>蒲XTjΣ2;zF+#Q&}ZT/yWMĒsE1YgD3rT2|f/CcƑcd##qP)(WqEU 'Hqu_Yq|fhkR9W3<WwLjrU(E]Y>6nќ%g6.|~uOv{|yhE.]ŻӴN*~_0KK_ zT^5-[?~|zZi헥rN'owU⛶Vޗ}i~ ˔ϢuoSWވuO4eeyLi_ueuKY67ɖnY׳e8![/+笘fyyyHn] Yw7BKK :ewe۱{gG'w8]hcF0l<dxPpH +瑧k8v{U8|TώˀnAc]rg{@}V-v åvS (#>mN$=zpls3!~Xt&L7=Gp.5J\x'nuy}1` ,ʱ0(S`2~<}5<%V`WaQ`KûyA`,~Yhcq=h7c: 1;!Ц6Pwۀx\U6'F@QxVv{,YԥK֞$//{m]S'66q:גz󲂵YdK B=ЖCFDhQzp Iѥq!VMPj2"4^.b;P^9CEh{b"ƶ$赳*[*5{2Q 'N/&}3e?W yЊ+)cowRnwGt[̹*0ftC.<}, )puTIdiӋx`#>"g6 ]'R hDT$@X݉ `ȓ'! zhqH/"lcIk죀bP+E a& =؁Tꌩ}td@k6kjtn$_SU^91t/w'Bs3No̳Y/cky~ls{eώt(`/x#dzV`.;s^kX~`wX}<,>jXg>r9zq7 s897d\=W܏y?hWe^Ac4lƯy~{vm)QZpB? $s+6!6 J]|ޛ{,sg/qӿѥ_ -fLμuZ.eg|6/̋3DNgѩ|{.1iSt z`(Wh cLiiB9H\ײH\Y,-Dn/Zo흅u[.\P+ԏUK\qlFW+V_V[ԺK.s.(-)4*"*H2gM(Br͕~haG->m?ǫ-}A^Uο>ʮn 5iHrKL*RlAvq]ȽmlZ%(ҟ8**QΡέBTᗺU d;5&)~)2泄"717 MȎe\s5ƇXȑvw4&e$ۋ5+jʇB{廣EUbʺ0+1]R4-%feAU>\o/O&x&<>-/tā(Ƙ6ICJ[}NaNudyx#7P71<pNN&Ol2\DƔrAø|#u͏y;.??;T.Wiߵ.t>zWcuV?>-Bzz2ϒ.*;i<6G۱zxC;-_ݦfUo}{].?Oi׋^Vu/Ulz:.jכdElm˖7U˟7|ou*k*Ҁ7@B؅ϝ<,S"G s'A^@ppgo[_u•],(q7UQ ;;]& r=Hn57 tq)=ŻUww/o1ڮ=y4rɖlnyt &wZEbQj@>IGv^`y{u%wtq?쟃\YYXT:\B2q<骔;>vy9 S<>s6`޸#iY 7=J~D} P& l ;L t E85vtR]\xIl\4F>*OФ4TA.(K6ǩp!@^p.a Gெ];:{)z]htBm2$6R @Y B,ȍLj$km>vX0Ċ&}Ԇ/bbm&*=1lU m6+|.KV*ݥ BLN4<~MXv%0rcnI+@DlJP G&ëݲ,C2X~aAOx?l7%OluPU=%_awluOblv>:rQ( 6,(y^d&.6fLw|tTX8UImto1c Ay=V9M)AV>:kۢO4"Uy$mSO^0 IAyfb>,ܧCSM )fo)xq<:eL"9d,O/偽UxݐE1γ3XOrX~{O> ɻ_QmM{=6hS#t2vOU5,=BeNYy˳x Ob8klk!000>yܢooi9+q?A@q:;14zt& ~7aUEZ!ځ5!Ѩ -42z<~ft%%ȵ])˗ iU1FbZWW( ZBTg%*&6[chРۛ^W7"̘WRdvcQ}bNA]Ur7b7s"'UFV%9ˉ#o.v+l]aw$u]ዊLԩOO>-oF~\>KXeWk&4[)IC3O#0<#pgO)_&`RٳSE/K?s\njS/_zYSi!5Eu<$qE=f>ۮ{W]7i쯶Mۿj{/m]]Y}*j7~/<퓩ڥݔZʛϣ*O9y~.>l?2S㶓NL3>}iTVCi[u2euQ^ldW]*cr]٧/=ﺱ>O? Oa@ J;lwc66fIq-@s m#XYN}bGO mxejѓn aiCv{0,$@«Ry. zLK=a ] د0]%d"#/$cǸ|FƁ0K" ȕǘ+a3E+qמ)B,UoQ\\&XB-WyEdʒ_UĊ0'pTcJvGͦRt8)&>V:Z+`jKQETǕu[(w(SP| :mdwNOZ3ծ 4-4ŏ:8R׮c$8ϯJIm͸fl=uQ]9c_c,MR+5yvˣZ;\yu,ɋv|.NVLO7!דzk _kU;zcRvCI9]Z|u^{ gR-Vw0鮆u 4s#HhgDc<_Q:=h2k< mb\`PdzFϨzxtfXgg}v|@{՝Gmv!u~f*64mW" {;2i(ژM<)1U|ij<`k(xOBe|XACsFp,0/ǃ7bs>:c&:{1}@{7 cg@we JfeA9(&r (W8h!}`d~b#o$˕3ۆzXqņȕjۙrH#ݴꟲOnSy+$lÏ⯼NmpLNVKkc46WeP~mq  c_!-7!^c'oi.s鴚^ʆs0ywD4FVtU9g_C"PJ lW+eR&uZBy`-2gQt%f$H#iY_mYuJYL,.i%u㽘17cT}VmHVڴ4thkqVȵdi*dJvhfZ_zkl"2K;5W 1n5uGgL-L *a+M9z~y>2cOvjms:;%7Ff]zwshʱ6x7Ln_G`yG8tA xxtb}n8e駒Qҽ 2r͸?^G<.g{]u7!?>mJ3n{|&pu.ڇp]//9srӯSy_/~}ۯOY}FyӞWکlyi>-w]zZooޠ7Ů17(߯U?SyhT'$?IEΓ%u.tmmq- cA~ݹ}'`9w#4]D" jVdooo7*/؍w{|k_c\_cJlHCfwtϞT c<* plP RϩgOrf@ G8p  E]ꢋ|bNQΙ#G;mwʁC:&4<d%?nyx3#wr3D\;Pu~ر] /"sB/>q[.y肟Gw2[8"  `pS> e@7}>ayR34 .<7Cw%0%;x@ t`6nD&8+qtg-߻p;|K^,9vc㯩8Ak`x$ }%UB'yuUc%OpH $M1Or M ^iƲfSZu4%~'sDat<qK ܹ@ϡiw{PNh&/k|vx!x9!뜣a, 2u@kzݧUY@~Y!ϟ%rw:erap+O8jp ,x+#ܕb*ǜW}ZRuB (ZfDXC7iFFw>䙸bS:`ȣ4Γ$szL<+[1^XW&Ŧ; -y'$i?uHyαO j?ܺی 5r 9c DAՄXoR/ӟ[AImkFs!7KH<4|ͬ>i)b4ǐ:Ip9PSazf呢_vHYЖ {(Q *U[c%><Mr}g%ۭU?HTK<H&?c5EIǻ`m32W!YKss7f;X$|mM12>}[>AH5I5Z*y6iڜ oPsmY%[CQ\G_#1$RpI㯆;'l/ՇҰ$+JHNEE0L,]=z걧Ob,$mY}AN$,[繸ʳ%?,{;>mM<_Ou?/=G睢t2Or2qyG`y߽WLju>\<F|S9EdF37ʷ_c}2O=}\wټ:w~w-.jҘnE}>Ic4iLZ=uǒ+7w]W?ˇq[{hi'՟'s>.u}~i oۛ`um_F2MV~z_pMu]*edyN$9<. W7D>y$H YʂG 3PưȮ`.߻pݝ:`y;B@ÊtȣWhwٝq3f1e@nTyUO>_` x讈.t0?7O?A4`'ݥŤ-vtGJ-MоtǮܽksod7H&t UAlA@imֆ] =\\!kl˒&R[$6 B1\we7Gckmp{ X[UOuFq!{}V2 |r [ mۀ%?v K  T,˩YPX1XmX/pO$;M>]&9: M@ u%Ebs]1=>z86I>cR,6%^=;kvpH_|!ވAY%upKIВ2KfNע9N i,GvIv^،I-Ѯk1܅mH2,zS-wsL8β I\C>hG7RL;2Rbsr"BܬDvU=SY"Ȍ Ũ̐u^7nU%[ITrJ1^FY{UYzJm/̮P^A_cDŧkT,d5M-{j䑳RFRuA9\O*U?9)¹CU_W'[gӁ;iW{NYSVi\bQ2^++xA r5@vx#hzs]g^}p3$8wH`S/'2sEw<`'ϙ]&9;Et,:΂ZCީ8;1Ic`׽V)h"|ΔVʞC굑yMMv X[2cC8#=&vy疻pŖ[ 1ksOTƾ3WdsXmʷq}uy3`in#YJS(dK"3!|&P^h->=rެ%+X4 l~pq)" 2DJ.#J@EyoiTls5. Ey.J7Urz2NY˱=Y^wTg~VyvGsu7!11uo{]i'? >i~07 _/0:w^^~ϸm_ݎ1uiuDqyq؆o}[9A&]Y;7zݎi}/t9u~t?KiX!o*`>u'⢱uMnH6WVm@a>wr'EwBki%\dMtwl?\_uxtѾî \Y!Q .E/ZepwGˇOY](wwsGui@_.gjѮ{І8x)cwc  ? ΤTq dl0[pTX_6ESWrEa&-qQ.W{.n )zB:,c,g"g0)+UJOx %|,.Բ?37|f:J}>Kƈ$*9R;F0/I=&Dž d[U3ӧ_M)qjds| )ML, %~(Vj[I-a);cZo|5rO:10j|'r(Xu[1@{RW $okխW zz**i'JV8|VUu694yN_L|s{= `&e6E>U+qF m%7(yco~*oyG`y޾g=L| TeeD?3+@E/i6Vij㼲q649eSz]^.fuNqzoOk\qx&WKfNJt͸m*f~>-G^y?w1:m@vf?c;zTrVaSط}> 0p ⓧn'kYϹ@O+>VAý{wQs S GM0ѣh8z)Y'SK`gr;i2 i 5;X'.urw"tA\" GwT HA&Y!]Ų\xw SM@ . #N(HmةMhپߔ1wo],MG{AĮkɝ)@9Ρ.. &G_sh o?p?er QeG)xىˋ xP{~a}Wؑ!M`c«*xvLԯnE)Tjia'HbZZZ⇾ ˝Tj g!=7oDL]je!Ѩn6)gqk+)FÌdJY{4,kF#NSnK_vWX$ko{)Cc|]{t nQYJ=86zRƌg4+K֚ݗPjJ:21bѴ/1]iξ-?g|i'ʆcր G¾T^ ,Fh{W{m 9i,e$WcU9\ez$YxpgDU%ZpCjF?3rJGվl(KYVYr+-YB,)~Ǚa8(}O+N\sqw!vE&ί0;Q&_,x !8$9j^lA6w"3u#w_obmف6 M`X4.7<v4xnz_cw5A{ƼY?̣Lr^{̭qSBeGUgU%!(bEΣ$ư$#25Z: K^yktڭt9Tf^ڛ]ř6 ԘiU9:P*-Ϝ^I3a+%E'lhkiBe[nx5aڑ_d {و>I\eL`m^R1HouNP?KT};Nz3[Sr#mλLtY_@K7}GH@v/XƏ6E*|s|O1`-EhѪ[WLFtqd]ɐ;e23С]]?\_>+T3O M=7m~a%Ƀ?s͹ø0O yŴۧ>_}waW}%syG`yx"PǮnu/ud\"|GcWyϸiyjϘmcYM]ט:.Qee;'8O):oq,m,6S~o'0q8zO;_/wRݔuw\ۿ|6^6]}cyʘry^TYl9 ]U_:y^W|^kzNti䭻?,Svٙ5+ ie3>qXuS n][ ώQ{, Kv9ZcG T{ Ge bns>< !9=@\$1.kKO8*>I6K,T/u7=~ X\t-7<]7I<!,׿w@CA *2ŅUv_“ymlgK0]=墙'8"ṵApTC% ntM) r(ˌk{6YDh-b UwOP;xqb/wC9K~įvF~TІT@oۋǟeaqa)%vԂ C@M;{7CWsW.r *#^]i MvыZW]\(YuUV~+G@qM6z,+ve|E^@6}Շ$+A#G.E;in8Ym\6v*Ob㢭**! q*m]7鵠MJ d@XKY'/_i-̲"d&*[_>+̒eegbJzWĜ">l"$}i65&^V8ڈj$OƢz"X=6^ }88 -K9DdYumu^* $n%5b;۔]8MX8޿F!L\xF/!h7M\~j-s" b"ޢkYg# ma1V\"Bƫ~+:'?_ ݍQ` N9kbKsyvcxԼė9&ݹx]%@<̬#%?'%+6{w(˓mX>}`gL~@ $d枣bZ=@S~Dt-W\b WwW_|@)f+YU>zcx{S!TIC%)ei^e ]!$MLqJ(:5bmҎZ62s#2aD~cM|HevPt( uΧoMU,z 5&/τz *2hvǼ!,FuS}a++SW089Cy6S(^ eƭOPbcѬT*]3M=ip*"c<£im#}3[][mV%wSrXPoKoJ=%'Cg{w"_hDeCKy (['cN[5$38y9fȬ+xWu/եeIf>?iݘmԟ~/J ѶW tiWҟ><4)@0Ʌfvz`~n$10Np 3|?G-I{&EAcD{B|xk_V_`;rvЖ0b'[mNȑw3Nj?ßXL6 0A V.?X+8Ы tcg90 l*p8g,FkvrGG.a/@܉3Dc踹5<'5xv|5%J_ wm >Х No^͑/x.Vcr me yM-ԑF&c TxA4GOS\e \>BHo~RIR G#4iz`Q)Wv oo#`\J۠B@OQR|/)m@IDATn[n4Du0:\ TVNYŀ,{ &,+J3-s6:67O "mGԸǶIP_ҭU$(%PA2Πd*OjlWY M#?.i+e) #1&.(1Qtaj7n9j#._?cڛ@v  e#B62+sImǫfܪ/bzE <g݉]%=BPdюe_.Г&yixs7x6 >o_S^ƞ#}>A&M(/,V}2m/i'jkDTd}Sp*-[-fUm^"pԜX@Shj k֗t%Bz2c_|qcg._ فu e d 8-{ E!0LҦ@c^V%͂RIFBvҭ]R[/wZT6h+YL4ƺ#c* ],޴4Q'-z6TS@#fzQI*;Ɣ!65_#HFfST1M ǰԽ]M7 'Y UdF 9VʪR>?1D4ekןhKYC o)R<ʍץ2VԂ%Y{H,)~&uV;ThcgI0N,)ݏʖ }9n,҇M4Vs٬]5?H<, t]2RP ^?1Pk!ں4+$Ɗ$ eaPYb'R\-XɏB<=cJ8- xQCQ4jWNc/z81mI&#%^;뾵XHHX¿LB?裔甫G`yG@,zU_`$\rЎEhv\*wwZK/3sT~Kk=M׽_.竦{||9m\tBm]I>MNyӘ|_Ot<7V_eyuJ3-D3qJ?.zNeO9f*s\~=IָgٔU܃]xcZ-3/z]*i^vn4y=}iW2bs7`0.d7![I^pIthh>ˎP,^g;sl+2O^wt ࿱-]LBr P KBt,={0c0AIkP ;wYra[3 ~9YC`l) Ҽ  k ɮwg=vUw /aܻ؏:Ĺ8YT}5vԬ=,A&`g;no.wyErХ m"ť[wL!塎7mlRaxd'FbkWf5. YsS-u;"KS_naxpnȸUwPw]^fy-ʂF)Y#:(D֐0F_DQ8HЬu0o #x3qלB u{*TiRz RѰ^޲os,8^ˮFԺRtd#$*ҦѫXr̎{6$_5W@kjyvgx?r;շzg*IKLՎCy`L_z]%0%g8xc} #MXdGφ/7,=hX}.sx17sdž>N!u켴AN5Ԑ'R;!$i{K3dKٖG)ݒݒgSRTdd*- gguv^ %哝yy|& hZm)Bя ub;c_U7ȯWqJmlj|+yX}V%dHl`Zb#|.ݯLTQH"Se؀?6=&imfj^k3֖faojB:[V]jm!#&2Uw9'iÏi9"pVJ^8vghnc>i j)+CZ㣝+l7l~ֈ-6d<)uoM ZKH m\s7MhGB)W5HO\aB&NN3k/w2udNy+\tN~\mL{|q|qu +zObߵXk~9{EeN _/F5S[+OGh~?f\7vtϴ}ZxSyyܯ|~ZwY_Oɶq{_YxXcƈ ZuHW DyI>c#ݥ~㑩%ɢ#&;T vXTyZG"nd h.z*KzH?pL߹;d ^4dXxp_ 74&hg'T0-a^ݽr꽻}7<6;?ʳH* ~NbWVJ@8ѲELZ^HLp2דt@Yꪥb6"2O#0cW Xw~9ʏ_;*.yդ 0jP9\hN1TRV6/jjuOH٘vy-^WVG|6[,0 meDӍj"_S#^| 0ϾL[Q*Ew ЌWG_/SLS~EW+8$R'Y{?SV>@YO-ĂquoA=F;5dJd؛~wV6-1f.Sة=/45ZZƸ#la A'TFAr\c^pDHh9q!5a7;2:"zr跶n1S㴢k,:0^u9ӠD ua|\C"D[G8`pdnB#/Kz[6ָg9gQNcI6gQb0ckm"`>~0|'ac"FZ}1!7I|60Sڭr]ݗfg+ }aV*oy޶\m3}n<8\'MS㶩1tQdra4e{O^/sQq^2N֍qIMǺ/6OʟVg ^;m{ '^Sq{[7)&oMoB|q76|^6u&{ . |IhTnʛ?OʟT71nӺ6eiu8;N_U^cnIImlggwc[MY&OyUu׍u__Sz?kJ{ͻV*}~ߕ~4`bBn.yܢCwsjw̎&L6Xs %7uUv`ûw ›ȺhnQpܳaE;8L{OލC%m,9ۅ%%&nOdl@q@zwvIb H&<~ (7&1Vwo(s}.=>}1K{?>|4<@ы]bۀٌ8G_ f| .M7o{&]s7E8 _~&;bVMk`x{ͲDf#/utuuW5/ dx<`#?,c,4e9tw?|ƛݥ_"Jv ֌P(pG`zr(/`aQh k|h\5I.#NŊ4롿6Uog.,û*Ћ}y2B)5u[IYۃWH=JO{l?9[+ENy4"FI5 L˷6y^+_F+%z{ޔˤEfvuo*(W|7 \~!6/}+^>{d廧Z%ralO!̘ٛeɀͶGoWi.)&Xl%XP5PfӰ^y9݊(|_зyV jmi˶$H&"1փRKT(иdC{5$+Žvxo1#Roxug禹๚M< Wyn@v WػwX+luk֧V|bS^ۀ^|-w+Wx\K˽ `kle9?5:ъC8Π4Y9 >lB[e,yn^5]ko䜁4bwK|`2_vn4ɗ8v"-P2m+Iu?NZ7q[)aKa£Jai&Ed8]jEFjUTm ڧ4r~%S6dΗ4hsn gOY:2n&I 6! ә?2HZ{ ڻjoضBxHq9Fc>=,zAu$5Gu?ɞwJ<9#oEcbͧW4EJʕUA䡵ζ[Wiڹ/49xvôyG{4ћX&`5K5Nݴ -Qv~N&_А ̤u،xav٫~ޚ)S6gIJ-MFfԸU8)inY,| h}kGcj ?ml)+mgӱ=*PZ5m1V+y8V$=\2uwlf/- u^}۷p5@ϿSp_^N2y-+dppwő}ȍz6>X'c}-p/`ow;}AX$=$mms`=l32յ']7vovYX<)FӰ&Fڀrܖ]_^UUU'm.2I?ɀ"y+>Ωq@_|nʣ`iK"2n\ۜ @i6ڟ3/zG  L}o"/4}[ܛ7:Uś NF"cexsO==1<.4'o\Խ?֯\,w;km"Cy׌$~EvǞ /޲F4flJiš DlLJYze)Z֢߯멥^u2&/SJ޽Cy2Ydqt*dޅEkvh'pLnܞ\^:Z~+=T?Hf%{D[ֈhE^hJsEDqdb}$О2CMdfMfHլ4sט*y%cu,L=y {\ڪƁDP'uR:2UɅylͧ$*!: ƺ'Mٗ~'GaS*Sn? km7Ըg`3V^]w)k>oWokvQKNKx2xI3]e{߫K7F)*Wڨ\Pv㪚 Qx="3ov?zzkIuu݋ pH&[)f_ZK)l_>+5W/AyPc{rGo63oWtE1I1AU ~`&Ik^lP2J mX} z> c?c)?ڃOU| xQI~X^%G? aro?ө hôW8v'>k+8!kiS+~?oW`oxZWYWVWQ*͛~Axtz?.,]"~?^2coUdѳ SO匣cLa澱g(zrW0K7 O{~UٸajWa0}PAtv{R]U -p)cWm%i8Hq=ԩ:;4l\$?tt3C>< Gu~VZvx09x=v\x}3d|% O *|w!p[W i'l`Re|M3Somb7 _koK/9CE@0U_9.t2gK3 __}jSv͐L!qQЀ#Gx{E:< ( p0ƅI <5 372rv x~ZC֡e8=7?6Nrw 1 F]1^lC9O;jU.s)1|I˲ Z^ rʎتRnʲ:Y}:Ɔky)pn?DV9OfSOhF!}4͖B_u_nŒMƵ@z'B+qF2mP7+Mۅ'hĢW+wZ- ʂxAV]K9oy0KRI 2(qli4[F.rNU/Ydݮ +X ntۗ/ugzwvs%-SQP#_:˴w HKKou?p.ܧC $~Ǘ ,Ľj/̩7{}}A t=}}_X9ޤ׸T{es ]?Tȳ͚otx澰v;_yGk_Wmki׵FTI`op)ܕs2]!foj|4’=*HL=bn+qmtom6){ܥ SI`ҲG[n=%}q^`3yI|I94-#~5MGD٫7R-]r{))eBɶM!k L "MC8E7>dz}SG@mҕ2ZnL,hy,n`]HYO+/;q[W wbg7w![r]c/KM2g-bUEuq>yf\"\3'.\5HOuLGJhRz~>XX]ӧD5A}/}i,nrԺSII)mjO[.l$ni9UrUͿ>7lXt{$*LwoKV*Ϭ)a2 LZ2+ڊsɵճ{_ Q{dQo2}=k GG_nӤi9Ǥh*.]+_qy ˆIuU_s{]K'(o|w߁Y5l;aPVlPְܺ;.Q8-~Cq MqX6L]߻ӻ%~(|s w%`BޅsPѰ%ӀX7WEO!9h]٩cLg7sD{$~/F &E4.tS@@Hud `oW/{L^ݞ^qr~!V7ߡ߻x:K(#@WH'6m⍍x5K*ɳ~n| LV#E\xūH= ^*e*|`?F6Dl(!Ex%< )Uj޼b a >F|%rUz\y e}< 1ui67M,ߦWH.?UozR-Jn^{2fvx<{ͷxc)zӾqjksx$l)p $?sl8NoOzgw24M2ߜ-h|-1C??pO<}w>=Onyu*XɄQAE]&l<͔ ה3ȿW6\zjwo_xؗx#mvն9D; ͌ ͵`Eqs9f,Jn!*vp/MFI [JZ,H(- @<WjF#ؖ1c*-m "c;ژ@uGHh JOE$8ҧ}ؗ_ i;)Gu̻D!_D6$3v4$9ͻ/5>qf'+mm+Q Zƒu_VN^ e7>UG$VӖl5+4M?>˞覎^|D/W(]ƚ8>jh ۆ1 ӻo]& 8`, }[u#}٘ek?m'_/kx{\-`r{[&H׃gb|A!%Y1"*=/}) OmW}pdPvGm`9{-(AQp?9HrKWݕ+oq^EX16)(p]V#1fs_b__鞹@T^oYgyl2ܩ0j_Ⴝ[w|& fR}~q`/Vr~m\{v;I1HK/S 鸓ЧI*8d~:a@-)3ҷ֑|sCl"&w zuM6){t0iVZ\75hL\䔹\2>2x=Ak%m +hkϫ˴ jj4gkzּT,#c=umlLSiS %ڇm%Ry~BYmGBFFwiTZ1/S&~74#TfSj]vL !ڥZOOkj31UD:>BzEeb{ζ5m{qeG%'m?eO[}|<Ҹ\= Vҥtԯu,H/=߳;7lUx=}ld㏧((42<*Az1ƲU+_qM4|~HS<_kG~w|Twe5G|/t;.ٟl?N{ 06Y9iyWɫIrK0}\>~5U[^vThU6|b1ͰX $wRPu}{G?zn(WXYcy={<11lf5}G1_֏y >CUVqiaqӐ!q]$+&|m{/kto܇^sQ^;1LZ^}+ҟDa:v}il9nkw?:3dSҫ% <6r š W@Oq|gqa g9pqX=;}xʏ/vKS<ʓ'xibݞvbҵ$INmI vMoS3 6"ln鮃[=حs[s_T-`@HI @;mOkx㻁uA43H6{:j,Wy1 JH][hI_6@ xDo,2=~ "[U>g%2FUxI`Gy 0>M-jyXzSgz&&( 88kuE$M>!|wac>POkKZ ;șм9r`lyB{tӣ<=^ͭ]fvnwg 7˦ oW<,RNPPixKCL[B@Eľ9=D`6/x];!. >0!#xry txQ<~Ow|O>? mH$S9ao#f]xJ[ gT> k7_+h/5kfE Cl;c?/RvYKێrIbO{0{2]tV!l}ЇjP~` X1@XD~rd )[VcvYG0Dg`,7c9 Hv9Pffl@w-Z̀,7A;vQhаoXiw[J oĜ)JJ}dKh5Kuzȕ#Fjs8 {oL75P+4 Q%)-zQj&#XGD/i{hMgVƘj}XZ. NOGȺF*X׸ u^AHֳ!{厙d{)eBTDZg&V(CzVLÒOпY|f}^g7DžZm :4&Y/-{KPWKqAqv}!2t6?|S! g'im(}UZ:_؋]+u7^Z«WA Wrϡu_LƦcrtKe_8zNFUV4ʇ5==ޫ֏rCkYG%mLA;B+xe;TMkx5 -{Pd -2(Wi{?MRNV S^wMKGb yK.gyu'  ` Y/JeN}m߷ $hVcZKoyA\.mC9lǁqk4hE^IpO[+{ơ9N%-Ior O(m'Ƭ S{7شT@IDAT^GST1+P 04)魵\?sKHzoŭ>D;lL?u8琶.&ᚕ~X³iqCVlߖjljqXP֙(Q~jWPb54Z#㴱< Q/F[ }]՘#緼Ȗl$^R4<Q _=ߎl0 `o0y6؏mroTKV4RbJߖ^zdQdMO6/t^>=`2|}(y+w{T]tvk~C{Sdzi\^{,ixGEqTtmpRO8q4d 7^ʨ7U?'V6Wɟ<4ٞy,gvҿ{ׇ9\ XhqmW$!h~臆HU;;܋_+I^{ HTQM//uou$Cyt5v?QlR4ٷh>|oGU> A?3?s^+ʳl8MJKn&cW$},SIA^?|w…=ۍ1Uܽ9wI:ZVW~nR~hICaIq~n\?%{X6L S~/VptVah*;j<_{/ϱˣu%`Wj폓UZWH=W_<)rq8)Z[.%Y_wNG8 ͤ'm7׻YV^ykz獽9CN[ 歯P4q`ޠβB.~ yľ2߭$DIQ@ |LDU3fy%sζ":Mu>5{{x%͓+u]:E>=V?y &$2hoA )m)m:@rysM2LtHD ErTϝ_GG..u}H'6unm.snD)mzBz6la`5]m^ͽڽ}y @z%mMC31<}%8"i4あA|3A38c]$n+igK+gPŻA*eȱ7]Ͼ&6,uzז^cQ3L;cP}zF"XoK8Dda9l:.Wv4Z X<$L\ϱ.kgy a ~WU[mˡ~t6mĆYO-+(q:-4</[eGiً ԠIj:;OCn~21_Ykm2 -KIӤ` z v'7xiZl@ڕ\ϡ3EM6XiՠU@]ː-"#G:a[ %N>@(zGIAt 2u{^InGHö3;|azͽ;졾:Av&b/K9 LfQo[IigumzF*}Qt:Q[CdV'(GhaI eC+j(ݷG^;dܚzu\R{]Z~OTn}@63Iڭ^vkwLJm H)eѤɕ +qfv&_ġz N 㽆&C9TyeWu$9>lx"=促3wYE]ö)T7|E~1vԧ 2TLu}WٓP7Ӷ/9Vͺ|# tSg~oR~ެ.a}Xz ?Rz* x}i= sxG ʇ4~@T#"rz \AS}' A9q9^.vk@"Gܭ}O3_7v H{8딐mXg6PX D nH5̔bj1+(g.U^Xz&Z@mj@BםA 1G.v#=z9zA1*e010``G0Ihdϻ 1` d>d ^;M^M?BΜkG菲:掗س!_$g9]cVca zIi|lxiؿEn3D:;rM:'oV nr7mhoSCö&];i0k:HqOZ/щg~C4c`4AV?IaKV3^ɂ:g5ٱO2.byi]70Ǡp?! myx/xȀ9OT:S"I{ =Z瘷W/^<mov +aCۗ_^_.ӘMl/%gn }4w\<}`ox{@xwޫn}/E.TNx=6c:2ku7>|7ծC+ GFh)$MlKbsproن`NqMH\3m>p'O꩎{p2 Vmb飛3C42/0q/}бxǘYq8P/Hk=zبߍ,NK+d\C5 ":W M=J0KYt&>$K]ydg?0@v3:״{:QScUEh!/ۅE_e3^$2|dtD#_n-WqF~$ We&iv[._yF8z/+0y{/ɕ%hnr@%uaW8t0(0mfz/3ҥH<\89^ˌ Ax`SasSVNIڜX3uO-zT'2&YLXraur|f%0CϓGm;qGqTuuUo\UVT*O!}sF6ôCN {/r<JU<ԫʆqoO^؆Ȣ0]etˏyF?qt]ƿ[y&x>YvP(>W7u/~k%Kכ?<51ů*rc| v/_N8 )qoW_ӓ<Z. b C~ ǡktHbSnܸ%0t:NPJ{]cKcq}9ܢXǃnamH+9bnqm\8mjvuδq+=+]tqq̫Bߔw'~zC |KyKUC4a2G6xdp=g?w~G0=r%t=a>`J'f=8PѢf:=N=Sy7Krq.+߅~vC ȧ˛w+3Wg5ln;xy汧[Xu߼oc}*Mtp7&:3Ff&x"hk@ LF{&`I!8םËuܘ^%-C~8=YLr,-{4vҜ|wM2Ʊq R,}0v1kJ;B6aJȺ|ҡq;pXA ao&A_&zmNc+AӢ9-ƪ ְ s=S6744:b?JQ4@@sLl=/i O&?J,yRP?Xᨺ!PݻOP^ۣvm@8(N8Ʈ1?Є)Mame@C &)-`  " yT2ž@mȉ5r+7(octsc=: K3eg/>G]{3F:V>'od<w ' r{/WlĻ_p&IP 1~dnHW|/dqW3*pyu[ ֎ p_F:^[ʽ/5l /2wG%XnpC 33 'sKݳx>8A=sovc0I qoJ9 D_/;};{WK I"zseWm,ɜ3^D9?τ["^dPΑve^d0 f%K ڦٶc_ S6OKc Wx9W%_s1η1שs\Mn1JeEiFrd&ñP`Zy-[Zf;6XdE:-0zoglrT_%[3s@i:6|.3Gi7%&g$Oog}=lێf5MRQF_F6~MGʶιc2~m?J1it^HFi %)ڦo)7CgL.Z~_7VKz~{4LCV6Is^8!6I/05N3hg`jPd|< ,0WecKٷÆ5'`?:N6oeލ-^&ӏ\/x u5W\=پ'#<$1l+aT}ܶW]Ş)WY)0U?m[4œh,Sg_yP1ڎU~ӟt՗q{[BG CY5+ޓʬ9gb> {kMmsMd&Ka_&zzKy^&ϹРhKn勤ӓ-{iK'U?g cG c~AO*Dsaaz10Pxvz׮]/ǐߨxnNjzjo|#sN0 4LQ??ѧ10?L+Vqy!??h+v=]Nh2*j_=M'6~ +-|%c:hU_|xV^+Y5bݬ^$Xy!p9/ò2=֧cl_;X:ݱpM՘g?{0؀8x`~K'%wXKg`Vyt8ǫv6(Je<,<ljw]=q)7h N8 'LȲ*ƣ"z!繁}(-:t@!(haEeFG&R?ݡֈ}:ge^}{w~ArȜn򕷺8ĨHlz8h`{/x &‹'sl!}%L~?yqmrm Zn&bB{@, ܹlμY.|8 4c7J-]rqc h&}Xզ_l!.)Ŏ`:.uy39^4A=~Y5u:XхNxZnuS^fo_vnMmLi=lNi?Ȼb29$ ꅺV>XhS =w>2~ P[ HW9|֣'vry*DN,1\~/lsqIߴ D8eV1u0z1bn qˆWv/wڕWרIUܾ9 G? 蜺`~wC =t }S4`g̜G_AlZ0Q:IR^\r$냼Z=:}%v}npwlˀo9۫ueH4A6?-Tltm]뚊 Miѯ%gAr)7(>"G/H>ݟgou,CXi U?"0nzL i|7ڟjE)EW60TZ`/Gжi "ؾ6Baw=j X:lq7OgnK#c&PȧzQ09-G;=M wgA:sDĆc#B1ϲ]+לRJLx{l~{͛˹eR` UAh'v4͠*SS[^m@Uu((˸AvA ڣʠq_9/*[vou-^#7ex]MwFuG]!@G` _&'s!DO&donW$8%2}A{:L<簯ۑ6r7oֻee*hyobfM]|I:&Jpzں*{(/l.pKnz(3*JT+6}.YoKȗo++^?y+7\u6JÇLZqe}m߼LG)S /m[ *'}.٬9=ih{$sCr>#\Þ.\}2o}vqԽzоC;6\#`{bvTGh^*S7)Q2蒿`2XLs}yp'!Y z֋1;m 纅D?ZLGfty/GQ~'g9L_nƕ跡 O% ~PG֫[-kVl楗^!rO۫aƭ ȷW}a}1 {JJ^{yDz }Pl^9> `R;Dɓ?'a;u|WycCTAW7l;~C>ьj33]<9qHI~2u$L & 4Wqw",[VX*N+}xZՏw2'sNw?ӱTI }&Ս{RAz;oꭷj2XI2=.mH7L;Ϥ!a}[|f0ݤIr7,3D9 X~:sD?8~mS-a0-ͤkE46^[s rO%N޽{|dW\?v8ҿd9~ +oYѥXJOwiԕu;חq/!]Wm;.w#V רx?Z$oL.,> };,'8c _`fS蠰m@"QÛyszw,Nwm0 -p7jAvM`sldsSd D|-0\});X -yHZ纯^n|{,p5vvy7 VдAzo21=@{T˷@Y%pɌ^B^hc_0}[k@^g;J]`(u hrkN2%=s%ŋ@FtjzZ0a>nrUz؈=$p C<g@^Cn ,/N{p @x1׹jo{5mnw[o|-k8Ay?-^ʜN%7֙?^e<FB;C}-^PwiuWpOu7锼=́*rX]y&1}'~Ǻx)^s/H9 w?<3%18]{`^ez=X+_~[^^f*}raZd^Oz|y&W3I2s(YEgXy=7.[N<ۼmX9 c95Xv/˸Oz0B/3ǯ8>s]4&>Fn(QA(ѹJku4tO۔L\_,8uwW[t;58g}@O;;n'\hk|ԅ34=VDZPa+?1Ti!hK$4$q\LN1ں@a͚ZAY g:#)M$"mNvڟ+3ߝ 33O LÌ|g}-@4zsop'`ұf=}/g3vI9ud?}fXǾXϏQn,4}O%ُ'Im}$e=A@cWbAg 㔫١xhvϱvnzܽŽW^ŻUE T?j'mH(z|RO?.vOƙw7g^,bLiB}%ȋtϲ?XY7nmr`#_ֱ) rmn+.=# Hhy Že7˷ MtϫaA@uCO/秺gLWT(%2}j {)o Yٗ4 .,m× DѬɴK͝b(v{z1N.dzl7~]OWIkp4Gо8ULϻ~ sb+ԹwF֔?=67@Ng@F׬L)D ǵ[UH;#!Ͱ6 8Y6HON?(>W{L.vҎyEh(W_AZgO^([?ڃgtVezS{W7˭mnzI*꛶_g?Y&`2Ђ_o 3(v2װ|TS.s5<}peCy#kwE>f/`q]GZ7ZK ˙9GuPPY籟cs u썢QݡQF>v1(L f94N |οa y5&o@tʭ5' ׆Itԛl/]48^Z=~`~ ?q-v<odzd&S }^d6tZI7.?|RqcҦhj;3_eø';nWtcX_q\zzS?SkEs8sWl;JNU_Pq5IM /Tĸlx\d1SzүUܪZE{$Ig܏'Wd.ҹL'm $?aQ62eֶh&u}+&=Un 07F|47LWIq8_t~L?_a0͸8?1L鎓<,`Χ׸s,K%WrL  ݇>1a~fRƴE3,>|3kŇzI> `Rٶgt^Nc{ףnh#!臺$]JN~~衇ʩպ .Ļ&:ꇴ˳^ l2I޸8?ͻ]:S^$VWt&䅋υIi ek}uHY[v РJiH(xm"=o#S9+8񡓼.ZF@F (mI FF#4^&]p5۽y{mu{06[?NPYF䳜EwC ^avvCil17;F]>q4#|ftl}_wa&vˍyk~n=~I!ezw.^ ƻYiz&O L`r:@%@fsc7yay0< u ,0ȏT:Czb ܗӧXkm|uW|lE78rsä&"&~?D55֍7ovWVy2Z[o6[Oy ߰֙sOoE x{{9!KL,Mo1I >DC8NQӤ@R`)kû}[ -I@W|umeke8E[sT78]g6zS)(L ݷs}?pR)Ϙe%Lx=RT <\ˈ]rTC5cMbz"䩪{0E.5,HKk'g_$+Aշ  mz(۟"ח:u*}5^LVӫdqjqMK)idRa% (WQY҇m{)klSC89ڀ`)OZC1#\2YTd$yI׎^٩e(C4Qv}_eRbc;̡Em3x\.1h7~|fp2P CʸhG]VCK^&ue椝z>[,@'ػOַl]1PcW{x.vja{{: y9֧*sXW:nِ~21ߊK$>)_=v(aQҶMSe_xᅪL ФRߊǝCӸ&1M>_hZw? vyi&HʊTg-Yfi&ܥQ*$qzG?׸޳ ̧ |#ݏnX>L*dAxNںGU~\_[?c94Um*T7.;,W>ϐvvaU_WɃc9)q?ǰ}׿_\q+ c~>pgLl;7)=,+Zkk?g,}t-}15nYɭaKﴂM՟49O'^{-@j7a|ꇼ&0oZp^KGyϟ?=yۚ>nL{4J@IDATy헿eyYG0JF?5Oq5=m>&&w[u虉. cnn#-mY<Ņ3w <2=pm{\$ǩ|8ѣSrr>8Cb'x1g \[+苇vNf lx#]?_8=Xd8 .CuzB @[xsNģ&@ xI`_+k*y=iu2)`t.:LjȀnCP>rnot׺훼~pgi> ,&xǤ-uq0d0 9 :K[AU-/V;o\oo1N_0髸CiQYwquPjښ˺жJ~at*nLyŠ-9]CxHՖ!HwM417,NMֽIlH%8ȋDDp mC@?ŀB`[67O0`Kɋ"̈=wuw㭺ukg}Tz {:kpW=|"zZZCt3^cufzFV.aDƼ1NR8QO4&/ ƣv)(G PH^H @jmȃH(GY۟YZ`r-5wϨe;&0&nԻi+A! _O z ]fo _cX^YsD \Ziǵ A/g 3}mqp乳e<`Uq&hY[ۤK ssg91O-/2yڧ2OY&<Lcy=dO}Κ7^YyQ1\ߑ|0pUN?}pu} Q:ϼX"G"j@#_ËY ^wB@ɔ9?VF?i2jsf̆۠i-Dia$}I9 8 W ]cf:jk-tslGNQ!TJ"LG)oR蕀&Aɓw;M2J&&mί7VjmɺEe5)K̕Ujv?2C` J;O=P'ϻz叾CoiX)%Է ChRYKop),3hʢ~ rqaDUg5^09s`,H I̷GPu?< ȈGGBʊ^mo}CO;Rr%َ[_f~ы<;4ۧ_|dfhGD=Phjd<HbyȠ &WWur"o`6lV̏o=(B8o֘'Hcs8UNsRgҏ }3hqwAjIEAF!m}!E0*k0IK _}&_ݜd|0 `M#ZG+:.g$l+-mmkxX2X HPMpލy};_{W6K)`٫atx/Z6OyS^I[ɨ|iʛ'x[i+:۩;ۧWz޽dx/*^oս{;LW#__`-"u7~7/~o,YeӃ%MϪ`;qtt>O?S?G[d+τ~ҹ1}gۉ&KUٰ۱كL09=vhfr_mS9;K?CZyՔTVӴy)4׵״ϗxzj:ҳdyfţ/>-*]ut{}Vͣ*>~xP+z6 S~UqqqYWi^V%.懾ŋc_TyǷUykVAOyNip`R~뻸%X'S62V[%o|L۴|L7kǀ1hobNj tЊޭٕε.V9.lg!=CS`~/`#W82]յl(etk@>ҷz#2Kxpzzn<A 8.Q(6 Лk77pn\uT-6\s7Y#0;6dvb hG3l@x<~ͳ%xs"F#fGx 8p;r.}1t;x]L\xh:gɊm={iS6e~]}^2ܴ œ>>Ɇ}0e X6qڊԕ?2 He(䄭CJJ Z_V7 *ЪB^v}s4G^_nPG[.sߍwi/D9ٶcMCj:>JGnխ ʢ pGFSʸ ,n"CE<)%jy#u?Kpqmbě miGbcq_oܸ ޘ/ 2p}DVhxHnt)qƻ,q-G, k̻::\9 6ؘy]x ?%!ÎWuR9/|^O`tZe̴)) )>R?,xQt[t Xdz$~s1.}*&//װd_ X3zMf Y}\sh?`};H{>_=~[[ ɗScyD\w뚍&92rL.Q󻍝6y][.]8`y\ ?BiqX~g xS&YpCgyLqd*P`xkaΦ1;^;cV2Fcsi\Z_woëd4*&>w3ԙ@ w% 6OG!_N}3H ֎Lm"wl+RsE/~uNHifBg*A 9=J;u-0icD]kk*fk+yeJL&!1xqoNsX Go m 9)䎖>2>Նٯһ[2}./`I&+MwU(4/s,ZZ梵!TMDYto)r366v\D݊Yl !DVn7kʵY ȣ 8x؏Q#aa=L^cwEs%0Z;kɢiR;(LC`Z]3~/_O0q'}MVy> >C m}nnj9W_ n?ﻭa-=lnǃ{Ͷϰ11_y{<9cݎG >ϖ~4E3홦7*v;U*Wi46VS3]w|{f|e}[KZUYE7U7X%@hjFO7fMn~MdSyǷo]|zY}7+Mif3LMlǧ>x=E[|P^Y|b%X딦hwr~Lj^r'vdz,ٗ?8Sf37n&mU6շ:s mq@음7ktի>-*]>7ק+^)ySV*w,u;zy;F~?`/ŷ13/H|fɟfxݥx{T}~{g߶yǸ|W ^򪳓N+\ʲl7mك֟k1ϵ7aھ(,NxMӦkzyvP׾ŋnmG_+wWԵcOQ˂yf۱= pA 8 dC4`yl&^Y> n 7rhj?"~_ I}ZB.y h}@#O%r%A2;g\/&r.@%ɏnHc&67rMe7جFH^n^N_gk٤?0i?mu˺`5$6Wkq?v, 9m A $΀4iCy7P_VX7.^ PRAm  uzwPrZwqw W >-ͣLowآ>M Fۆc `1OJ S΂ML̮}L]4\zdXpG+ׇ6/ 9O[W:#b 6rGNa9elr=nb;FKy_]ֵVwtfOSǎ lN {1eSI 1 3i `;;F^v7?oĵO!g/Co:KW^z"}|vq /8>'GLCI B6[K}n7]=7lݔ.@_k*4hzr:y@sVz\ގKI Dx@a]\ZlH8oc49$Z|6ůC y(ƚZm7_zB[ܤNa= 1sx=% `c8Ǔ:l% _H ` A ``?: ~~*k~,`cBV898Dx|uE@\o0O1 \͑C@lEv>}P'`7U5܉7Ll ݶի2T~PZddXėXhrxoNn>~<[ v}on`zAZIz]} zE!k4& %0~dƽsR⁍yL5_A U.7 #LJ(8 u, egx~g-o90a^4ФHG.40JF>K&WS둡h|kuQ󃏳&p%ְGS$U8}ã'< :yByw[ncS=3 6PGu Ze;s\U x򥰌K fq.b栠~7canV*7W;7y]))zXs )U8quK*+{OkPuJ3P2/$=(}0)ˤ|KT惦Kg(cpO[Mz$w/[nu٬^ɭz?&Wma0l0ݬ;6<7-;/m^>l{;`ҾZu#,r= ~ʆ@7;ȹq70>8lx!Ӷ(GvOpI70 ezqNkN0wh=9hmgmd?}7Vo/ùw/ t.p_Љw>&thp-WMm~]rtß}$cDѹNS`tĘzDM@Ǡ,ƣ7qǨH&`*U4|k&+n}׆?xM>qnb00\0 Gr?)ؑ/"ɏ0OLj1p}Y]z2Ļ$6`'h2GYf4ovP@W:Gv>v9pAVL)JVIhX m{W>.G.U7kU!{p~['HqZ~WtT~_uug|4eDXθp~ %BM)SB?x;ΜXgmlmlecZS?^ͻ Msd3nҟW,tof\MOەǹ xBBEg{Z؉sW~.b m.Ean=if.Bgn#d|pITH%`FuhғD3Uķc*(VCvF:um;[II~nyY*huUuN3/Ў+ 3ka3qC[)WF6؉;PK/\\wuU+v߭s:~nsϼq{ݗ(͸i2?a=/rg_}VuʐV([UٻoW,[՝>.~S߲i4]l'.i^0i*}*XrJ}n.}\BEWbPқIߗi٬y_*{^:`҂ fY=^6lIV{3P]ǖL`rqev0W_Wzn0Q}}gɪVt齗1۠T{ T?AN}N~Oc\S~;LOi}`yO1Mʒ1+͹{qy[pר`{$Lk~(O~__Lޖa.EӗWVu.0N?4c\}۞[cv{SjOpb]qVmo\ޒS~Uucz'^,Nzv5]`/C^=* y^xv^{Ol>h>3L޼s,yD !A@MhjM7El}%x80Xp ? 3,$8݂n^h1=@`J{ 6B Bѕn(qdl F]syQ3m@2ljmT@>Cd M ȎqEt;k>^D}ӝ=X@ uKyqF:5S<.k m\Ay\oи86śMu;LD4\0Ŷ$n[,1Lٹ(J6en\tmP~mMNt=o*iQH/h>[`Gb];B2I64z4G:R/O0yW;oR p5й`ea&mʎ? gƙ=}v&Du(`v4q([f9 H&r:UHb:w˶U=~4ä+ wGQ%EV@?Il#*G##2&z[÷L?O٬%ڕYYm54I^4L\Hwn^<٨ގ(zg=ܢ<ֽ;+\^XRyz͕>1|UKwmmZ2>$ wEn*VZR6Kr|# >R"m.6yKZeJ&xܠrt>sM;&e,ĵ45 31̏Oѽ? 8O  CCviC,D3:]gi3'zڪn-2/,`{1h:" ,j1!DrQ4d#XA.fKH_bpI@wh*`?rΌ7S '8ɳO Mҷ \.]ibyU70ޕjJ]? 5uS}k˫kizs"fdʸ]wfx0)$4!C[TV៿q:/jF_0x5N~χ#貌6KAN+hr:ì:c s2"J >jލcn#O|oгlsß^]^*y>ңh1j]]%fwD16?(;l;4}_j}?wm0n獛?Lo&w/˪E[K{iU6-)`aD .D߆>6=zeV٬je&+lٟ"~7s#<>oVܼYKvz{>UVy}z+Ф&Wcw ,Mu$N//*=Eoh{ h]ҹkU; &/J_r\:f|߯IWOu,}6iv%k'|V6 EW?,ŭ~%[ajWaZޗm7^}(^&a˯^e=Vwo4=zlϴvSy *!/z?yqynSizWoeu7/>>-=4ާ:=q/=~ɟɆn=VU *fdW_mS'D7?#?2O/S=tn׽繓ָ6o /'jz:j'Onxܪv);߃3?M}<Ǥ%VVUO; R>E_Q=ϺESuvr߬5ADE6E0ǀ+זa/Un6'B\W]AkKXi8b6[(u7~ᓤ#zdpG=ЗYXȫs {/ +z Gv8 E#PfAGH&en/;T Î1|iW ,QN#lE!.n]/5`&=4F<pw "pn0Ӿu_,skk..̗bى& G37|)?on͍T7!s! _67HU;+ֱ`>ӣd ǎ>U70eRM^}6:<܍r7C.:)n Y2qG\0yen0IF욣q{ܛګ{hljd<@yxw1R޽7 JR~zioǜ 䳀wIRMN9xwȏd8iad<'- ɓßzJOz^pc'A6x:HJqJg^g6V b7yl^ߚwVH`: α/8o Qǯ0 CobF3O1fL~^y\H7{ȇzAmf[)יë3Ƴk K 0)R`mb9ޚ&чAƝ:GsyqΣ33 rnqp|Tʥt~P[fNmLҵ6AuOG` ]+X,秤u2t6Y[?ivm>BŧX?P"<:4ѐݖMxwMM5C`m@5Ϭ Ҹ5\>xpc'GGt/(g u VфܵYPm01Fz] }xYcq}iXd(=_TdPHo쯴FEv3ؔ;ruc #(CfFXƊct":=Y̻;dt%X^A hٴ!kx~|0/AoC5ڕsù/g2y<ϕps~hc'~80BH l;&m Ack% Cǎy&m%k8,Mݛx< `ң3@# ȳ9QoU՛և4`ﲎ9_лᾶ\ѿRH@iGÀ$n͛槸јD&kODz@xFyK)2&]q~`!SW1̜epi7C&w(/aSnU觀u'%=GZ atuN; 10LyxgIqQ⣬kؖF5omIX;ߥy/^n߽pei4<#6Z^Baۑ1D7u*(C/~x$ww\q9Z|{Wa}f{զ}ڗ}/ū\?=*:mÃm~^|P;=-v#L[z,^Oӕ}nVl_/u|>h}:ޥwn^%ky<}xx/wWun݊Oʴt^uqTI lf-&^hz/fr7}>}yqi}SJvUwv]/ФhSOӸ:6M۳Q@d7+S/ܶ(}f{**OS^*YA2ޖ:z~5}YՖ>|k߶?#Xe׾7Mfŧ*w/*MBU^s<%/a֩SJS:Oӕ_i4]tuW͋O7/ϫ([Z/})֟W[Yv=Q'o1/JtB_>+Yuyy}W4++Ƕ1ym'n=e?NNۼVKNU?hS7ct,uHZ*o]y1q/m=Oy|*iV}\y7~ҶzSv xgC0߽{*$vL4 ͭVd;r$fs܍} rcI+{Y>u$Pcnq,CQ+x=زCO P\E8'(#D17Gء˅|Z,d o`>~txXZ@IDATVZ2l晌XL1L΁qX5p!.;gb(F'ǹ26sVn^_~W/8|}XK]O3/i#~x2t瀆oôG.2ZAO\d%OTf[X#ltGKM5/ҟzC/w OycfAoash"Zt9kcټxqKo{/9OM8t 1\ 0zd[ԇNWg Pӻ֒i3mh"Pkg,U+`qejPSJY^*^ܢumZ&q1;ywd亪z\G2azǮ1L\Ksy*mOM{\ xrL-. tM4~a G~2mm|.>4d\֗FG$zv9 3֜vԷ@6K]\8;=pmL.q!ǟxtǏ0n\tHzgq!5um<5<"SMcJ@ |F&Kv# d2X ڱ3vh1%=1Nn˳p~=Xd=]5lC]!u[;u%˗ѯ1oVߓ7>/b5,"gö1)6![d=sqdx™Aklcc-O[52J !ĵ~׾0*<) 2)ڵ.6XJ=vwjG([=q=բ/S2ؕo#`"{Κ #bMˤg~)iC~Aɳз9o!?$!WeCO8ȳv }ܕL~sq]f>o`+P)QzoLq=U^yylwǻai{4qm0m4OÔ~χmw՟FmfңoS/av[eڦwKð߃b 0n'~'ަjߎ>6"Miw ;4n~./zMя~l3cZ٩UT^݋~,V_yK4aiܔ*LY{ Tv%6Om٬Y=ݼx/=O0םgϞ^jӽ׵{:hMeTy: ??ߑ/ϰW!`FF 6`R˳d5oj۴v}lWO_2ެ}%`ڵn6AByfۑW|vz/uN󧀸)o;y\3gJYє}ʷʦӴtu:}gYf*^w}ٳ׿uV_)|&EI律;_u}:>N>7?C=ߢާ4}uxW~ݧμs=N[g'wLoHiz?سx,)Ϸ1ۃ߼vm0pUTyi=!>S(TNfnV}{)|l?Vuގ.yINt.4/ q$US6|4js(ԷnMz2 1im~P //N#/KJW) (mnRp ɪ޹y 9܀ mU֫!fK+!HP R&}*!H@!X_~s9zNpMC:u#qGzs\eLєcΎ\6_JEuk=J{ÿapF*<wSʰΥ՗=a=6;y!c@cFm8%C@' I%#h 7_c\6@`c %2DF-H~{"{ &88w85LJg_e3֗K, ?Q'^p˛%'1dP#}Qd)8O|㸔_cl}ׇ~xJ۔`#q#a=5`QԳu;q|qt{=>^ AƢu񕀍 $Omc ?[z=8o֝Hogw ׷?gY섾%?l[ r=2洝TFQ~d^&<Yf5zOcZ>ieSPQ q@(:|1?x 'lDQRG dmO|Ou`\ö&D.'`bA( >Nz~҄r|__?u,3Ud_ZMiMlRौZkk/ͨ|6L Ih4"=hk Bg7Fl>Z=)~@u}o50F:N&o1hzk MX~ى0ڷs!-ر92dѳ#.@w~x!_- y*|_zsV1/imwUuޱ'k|/q| Ϥ-yqiix}"?츑>hw1雬yy 0֋x%ב`|K$hW(ThJڵH-r}a)IxZ-ᔸOW0ʑQ%m[@.If6MϪŐ=ƨ$׈s_R5זJs(q=~I8sN|Oth+x[gGǒ= /|gy^Fo3zSY<2-ki "G*ca􅶒{81yXyL*دs&2꫎3dh[{-Yӣճ ^?\*~:w?D|vwh%̿ga߳Or;7t# Lh!%ք̽Os%; >;v-,ߋˇPOB}dsЗFRF S*_.!5ӫ;?CVkԓTCZOAx{?i:7A]FI.'/*?tb~u={.L{ڏywXW/C6Jj#;_ToUmw a|;<7ig/a<&׆78a&s[ ]"qk]ɧjJi έJ#g.X![֝YTe 6{6'a~Ӈi_}~g/^m{7l\JwCfzݧة~`R=Mwaڎi5/vvilSФMͷ|`#2fl5vV~ͺW^/k7yUgz\ʗ`R`tLO}+dWt^iF>=ͯқwK/m${} ""=]?+^9nJϢm?mU 4L;{Z1M~/&t~~/eR;&?kjўxիQԩSo zC.]KGU[iY]&y>0MOm6ey^^_i{tkV|J?_7ʽ'ޗ.]q=OufUVYuͫzӕB_UFί~[>=/>[t/8_r{ɯ UL2W|_{[-Vi^.ml;=_/1\6]trc{QeUg}JSm[W﯂6 mF?-{{o3},s|:.Vv}}~z?n̅Y7OS<޻*u/ gùq܂&-i\7 8J"%Et00қ>^ܾ sqȶИo0@$u!0[;l< + gx{m8ux {[=\=C1x)஑538Arg)l*nQ=  /^D ibZ ɶȗ*w [=NuxA2٪LÂC9tc0@w"Sl#ki8Q/wn cJ%n0u6ng`H>6Ne69Uxţf]hbgtxƺ;x$ZNj-V7r*h v i8p F>H/8Stn@TzYq>a7 >qUpVxeׇ_߾8,߿ Nض׌?XiZa /aw; bq4.'D& =BeB 7O_~?˱ObX4s` f1'Vpcy,YH}}dZd:~7\1B1YSY~ɾw_{c+ׇos%:z0I* ʲ>n*{tn|ˌm˭ĤGCQ49C2m[63(W zk9/U]2T9IahTS;:c:'J dSu+g Q儗,zKSGF)gJOf9s3`;~1л O`ëTL2*B2t :p>ݼ5< xs чG9Ф^]:WXQLjNj`IA0_Dw.\q"c2k-*Y&G푩|b0D5/%K>;6Wd¶1Hc;ƶF/I1/B(O*="\^P ˗ׯ^G<=FRv_k w`sZ9ɋړ/Ydט+υ"8.umT&u,S"-^+ؓ!ܦq_`8sRŤԷPrMAK~[X ܨﻀm(6r1 2\2 ϲG胣86}g2e=Y9^).kswx>|:;ԧ`оn1<񹧷WMt96mPk' -oast>IU_-i7Æ dhmy<6^rlI#.}dq" !|3m)}QrrȲ&`$OJ8aG?3>GYY{!XO11 z}nr=gJ]r}x=e~HpѴ&ިLP<M^Wh6_k a]0*O!H=k;F`nGF#e(w"qV}DKɕaoyK#*ar!ދ"hRO邗s#8󌷕5쑮FZjVвgI^aVYo`iVYgݧ4%o]4e0fӲ62Ǥ^ WVV6֪z| `'O~iyNU*2βM/ _W6m;/Qmu7 cy`r!~65|6z7v 'x:1 (&\a#0L˒^lP{BTQ .`Uψ}PljA1 GN;riZ{,wG$Q`Ý譣'2"AIR% Ј ʔw@Ӏ̨*ixKT lyTz<+B8jE%>Luk?}'`#OЎ&yFg/7y(X_3hAE>3|~>r .7О،h_I#{B*}dHwZ%Fq"Ìmؙ(kÅ7_V2y̧~6{}QSs c90/l$[I<&]AڻACT܄Ϗ ;s g˕+U'+J|n7^e}> N//p.sm:/U->aÕt3TmJ6V}d 3)xeW[X:F++ېIѥɜɣi[XKڸL~džyNw[Q,\\n(OE+ ;N۰:nsVt}ӫ?$Wm+o'}e4_XyJ U%;-||ӡw=6kT֬Uܻ^}Peul&>))iV?6oYJo5`V(G/[7N^U^|{eD^oɞ&/]ZʢmoDm&jFY))7j@v^Rc>q6xΆ[wl׍=)|dqI>)h.K]K2wPhr2SP Co)<BT`mnzRo$w(MK-Z7;0)anv+(OW9L. ^+:Lǖ"WZ~2B6 ֮ ųW/\w}wxv=|x!KF*k"m]_rq!JnJa{-Pɗu3q%WUy`P-@>bݡ.c'/!2}lǣA!CӶ`_N11B>$L R i~v2}a'7yF:(K|:&ۜN1mtW! &m*cK>˱0oMO {m}ނr[x#+u 0yu%.^`q|~@W.& ۠-}1,kk{ ؁>jRjxY.tnyD^ Ʒ(mhrU/z~R["UY8L 8|=ďgN4:5lmp~q8̯|~=[ώ|1pە\hd^xr-LXX6GVek/ +?t{ ^&?xL@/)syyN+ø) "]pjՔ2ZJ- -ۨEe$|i@\N6&~pYWmk헀0Wn_< jkpuhz`%[L?ҏxOܠMaO& IBcΓT^kKEMMZ7mM AP9^)Sko"MGkn+PiV ]0|IQOswlr#Y18HKN:+]7rw2t xW&_4L2DL[;Y'W[Z۴&SoqҴHjeV~&ScF#c˥uڌbb0=}d6z%TAkڞOt* wE e0'k{dzWWB 0ƒEhǜ|ӧаİf~| :F҃}zJd8^mm10N)V9 @l?$+σ1ȏΙK9ճ08ʵ5UfRmk*+5IKyF~~;s1 U˽?0yw'kI/o4HQ_h 55: ڕuP<16{r0ߡn.-ÿo0yYku 2lɥMD [6JY~]~~e=f[/a6T -4VJm(>Gb^ ׿l~hG׻rwKRc|n?lT S?hiREYYO;,z>UnzoTUשxIO,'#r^b}Μ|*ŷҶ__mQvRŋ^&?(`R=i>n2LV(Uγh\ңvzUwhj3=fL~ߌ垖5`KB 4]{TKdXN{M0ΥfznX?P}e}vlYݩӼG;YWi_nKU{e/ik W^ R=4ì_}ftE_y^^~ef񩲺oFSeۿ=_׽ߎ0)] 5_Ye7[g݂ʲΓ)MJIUR]tuO=6cO@`3A\ ; D`Oaxy!s .c̴g`wtݗWݯ))TgN&K>{krul ܥs U4'aܕuU6>iƲz^~Sc9{~c9o˴:^K>cW>I&mWm$(>cbiKrdGDlYMܖ'\'7wKl;f}쬯Kqj&!.ӇK]wcm<FC*zTS@٧&䳀N opqQFm1#J*9ԅn8K(h54371&m9_жy4%̈|Gʍoa W\C}l,g6gO[$H%[kIT_ AXWW) o#n7]+ȫ>i:l1 `rڱKY.}DxUCrd׾RۀoЩAW;IiiרT3϶\=[[&O{tL&$= 2WmMHfO@=8{M>Nħƍ?7K'2;xq8xl`D-;k}QҞ8O=GX6RQZB ~(C1~~ߺJS"^P׬,t znv:M/qF_N&#`Iyi$FW̼^49`G7K~ hIqr7YKB=d{kvsAh;woD~?_zz rsBh^01jvskA~9rr 1juF 73'w|"{#)~B9QdYFEWYv{;Eؓ\}<ռҨec }F_4^]y{C.EU~|{@iYpq<`jԫLzK̝-WocT_WL)O0\<~>]ƗoK^Kȿ3qr@t kUIYuVgk"ʶښ/dݔ|L|{-,c@oj,8ijrMj4Jz?$8+o51F46FSӯ}l$% G^^o7?fH L!]|.1Y[Ihf[Aܳe^`\ϋ&s0kKeOOuut~cM3=pVZ읦`x.0wz?3<Ι݋p)I,ޕ^i&^_3:x"e؎$7h5>bWjؐWtދ۵ݯ0~L~}0q8qv/k,~R&,̃w|cX7c ' ?yv:u݅ ҽ!E'81<<~Zze]RgJְ8f|YUg/&wKEOJGV!MюնIe֏ˇ~iK__"MZCvI4MIS_'_$>{)0+}f;ߌְդ6Gk~80ګy?cļ.Q; k~|=~|=NiRv hƲmu]q;kK2ۨ@_a{Xg~ܿzH[òa4;;[?)L_eŻM2oz<އm__vM&ANFnPfcVz|NߎJkuʯJjcٸ]h lLS|,S}ķCp7TI4;|&I_`z׾Wr 7T٤a6M[=!>,k^g+),l:y*g \deX"Fsu98ISsNvxuP^9wM4;lzcF/aÑ͛yWdsGy͵.mv%]ѮtbgV-PJvZfm7Bn. ZuQ&Q(K&]ڪ4ߘKȌF0`g_Ō!Zϔu9}2wW#*7]g?r]]idb91=O{alwʌd.m3_+dݠ;;۔{c_mJڀ)LdU&^.Cǘ˚(w)[AÀ8H@kidJvlw3/wNywcc|;<롇rL;}S!B+928Uusݷv9a$EW$yZp<\ 3Iw_LvޟC;-eh pPJK j餑UE\eӂέmߝ9kXZocMVScC>ϞG\Q 6GfF#O0\~3ocgE]d L|f0q 0EY+e"^p EHv:0u6}FϚ37?Kf.9ƶ,4{(&Ȍj{O}.+E'#¾c?$\ofm%r\]1w9#&p:L~qqgoB1Ls _\3OXs d i]K-.CtN\W#{6U>$[!vwQ4cCɕ8wm)=_]W\uu:ePly~"Lۗ~S ,_NC}U7ީ|H;fa:~K_*1s۲!XkrLw3<3Nv*WiidlUPmri$~CޓzWC!2=?G}җ݇|W$v?6cū _㛝x>,ڱN|uu 0Y1ۮcPke4`q$y-ea=W*VQE|q±2]crA4pt>mw' ȸDte6{ @D; 1Kzyq[؉na۝6k+٘k:;q& c$W_뜄nSdl#)I!YuI;ݚ?iöUi7n", Cgxsl{ &:iAh- bS@/QL|ج+`emKi";U}L4,CzeJ_k;uS:i.sDEe6$sL&~y~ucj:r7荇+V f|u|4q49}=ᚏ,.p~`d|!gu2  b9HGG3%Myu?koADR|};Qڜi6ӥrt HBj (fHe?ܳ=vх \8\48|YaՔ c?#)i,-o i jtKIW7nɳo?<Nx سOűg3^bn rqĿk2ϭo\G'&Дg2GWyhsl^4M=b^c2`&jþ9"ڦrB.^1YϘlƣSǬ_UQ-PE+P^BFL2*A:Rؗc??9'kFdCS (SeA? ye7F0ywD1Je(_ sD|%gB)紝$v;,CDuj2~*2WF;a `F}I~Y*C@I߀@9kks/YM߻J~DP+e*E"% ڡA/&Yo_coQi jF?7Mz!UYǙ/uxf-U+gbjlU|aSUv:}& }~mgD#/_.םq{ns;~@W6c0w^roIeͯ曗d\Lʃ&q1ejgxy0)3mm/ }WW"~d;z{5Wgq4)ظc5UєPgVXL/sWy]YOi9yǠqn:٣x|D>h#6MA)ÀMJs.6Y }tN[W[7@k?ѩQski/h٦{)9 hYh8o!7]rGϙIZK5|YuT5k4'zYԼrCP"yz6`h*+!i@:1k[ycLʫn:iyX7L6ü4&c|ꩧlz_i ,Iɻ/FJc\nctoQg<(۹MT}٭~`9)X>=~ Cqٸ;]G3uV=(XR@P'09ir5]P1XX5O3Olqu2f! ka{d:t_-*=KIaFqxer$~n_\3Oy2h^?ikmt^}%^֝gy,nٶIyT@fHo;s۷Xq(o5^˲tLlJ gJ:@yZĩoTW7^ڤhC.Ѩjpgayaϱ.4Z〪K݁?2(f\n-Jn\rK0,^^;&d%J0Hg{U7i;@yե(iS뗮w+O3f>`Ya,pZnTiMa&Zk_V9(Θ&FsJϛrT͏/[_4dO;#mi.]DW|9t w\)6o<`?g&zr/8zo_Ɨ(Lu/S3Yך:|MWsƋ~-FtA5^['W|ؠ,Iy%ūMpxP<ZJ=0kzh_*@fnڥnk'29MQ r`k:.qܵ5 eAܘ~޹J{inC32:mϨ;5wLZq8~;V&?RBTܩRD޽VunQ,I7e$ߨ/d+ F8>\҇AuS>`84z@X߼$뵹6nHM+O>6ʍF{*]w1Fw5>߿5iӴgүgBTh=uc]SӆZ,O{ǡ=NOߊ~$;YW}QG?CǶ{T0AI}PoRus}:vɃֳS1Xi^eOT&S8鼝IZ65 aa~CI?n3؏ţߢ Dg&1ҍH?+]<տWOiXJ&AL 0[9r1Vzz{)t]&+Le}@>ltKiE­^Uy~ێyj1u&"йU;,z >oN}حn$Z}?hI5F\ǀq}y:OK^u<.yL_{9nC Ѷ+:[&Iׇ> jWj;lWe+mW_ٍIo9WyRe/HL%CF߳^`uouo(4WU*_wx' WZVמ}.؇uxsȚ2)>uީh<+_^nwjS2{kaY6:V&c|?0d͗*lRoc嫯~Tرc[dHo䥫GYd`0@&?$n6yDmI d'6p(f7}l<}lNZW$U  x1Et onxXQ' |GF4Z"<dؿ+%оt8!D4P#I& $7ryiUM=UCFG=_[ nEcg/ 9D _ZiIy0LnxKtp9 A%wXId Lb9^~GQhЉ 3reqdzlrWx7gwgK^sW}O,$5ta"`nܸ0bsn [nnsj;ݍW_6\!kG)9 rzќI@cӌK#IqysD# t5X*NfGA?5IEs8Ǻ,/ust lրϹG4=۸t!r-Jꠟ,3YҔc)g;@6vgfpEZ2yEm㎠H,iFv.H[jKθi V&Ky .u|(:/g;S‡%#!)/$ FY~q:?tZaܼ+O0}ORa8>5 Xk ѐ&To0_A:Gt9r^]]^xWӷ e ^\'d+PfO?I}"qyg!{Ǧp&OO탶FvH~SGQisr6L  yh%ᣅypNK:]1?S]<jq;x1Wtf <=ETig"#sF's!4HSfѬ[\X/5Se-[g:s:J_鿴͛>cK#k|L[,i-q #@Q]jB;OP-⾵3ϰOFўG>7;cQ1d0&\~} +|sʛ;qQlj0u7=V]_IAIZ[Ea$~i3ϡ5s'sfO־3\@"@{4F x/?l@8&Sp~S~͑_q ]}AG&|>e~0_p=aC_ ӏ^N9\-:#L/LFr7b5o!9?cUNkֲ2En5-;kCi_6oM-?=lՎ|>-pgc|Z 3Jt>ǥ$9鷺Gt,-2DږwدͫgQLo_0)Bl݆sp/Ӏ?';M*4nX4h&n}ޭC̸`NStU*UFW{ ncפ~wsc~I: %?}m[ݷwٺOVj&^K/i*CUYɿ7UJ%!oXg uL`h T&_i}U}Mޏ1ߪWy:ˆIlcֵiyy-!zʊ`h|gdžRv?h~/:EF,&lrmn}Θnk{n4 09v7>o+c0xvG^}R0FTH@1n3Yy,&FvJp׻~;6移?'{;x&KӅzL qFJ"od]=0V³|ꂝ$ԟE3t d[;I,]xZ="0l4ut݄TgQ< F0 y}&@\Aur7_40fpԱ GdqDYA77[Dv1"xN>Fqh1w6ݝ}}x0]`4 fJ S= ~5|P7`79kǧmG_O9X`g+/حR7}n@*ʼn-lpJI{^}\b7+u8QIf0>μn%?̩gwcr99/f< }/xhQm~,FEr!$61Vp:3Gʶe<d پ;{6wq6s2f=tFj7ܐsFi y %9pe,em=&mGVR`tsmuB;Sy cd(7ld?w͓+03EoejC]Z:ra?8:K>E>,In" R-OG[Z?,DJ?#2W.臯g=V9*XFpIhݍԹ6oU@h (]K hN r X-:31[5#8Aȅxu:.^^e]:zqlŨgIG=MvmHY;Mw0)`RN9&`*KD*g[q6[흗jm^Co~L#'XI,N^Y9n9ۿf umR]ŧW]&U/LѻYNm3ȸn:kzā}%)Il`s`ݙ~BOKRI:} `/ `wɛ(V\u˵@93.]W?IѨֺ͝ф:OFji$=alʶFf&᧎V7^>-i+( COky_MG35dU%eyHg>*t~?D85;MBԿ[|m"B>W6nz$YMDn3;] o:no0//[4{f!j8^,Kh6o G1(~Cm샶A/`=hs9L/?l(Z ιl|nWo|hO?D1L hkh,eeq~) 0TW)n6\?rK&? Uco&omtgyXn밾I~>&dwuF}gǛoMS+ӖZ -Z[٬O')ΓҐf6lW6Pv4N;>{ǭX^;.Q$l8.9n*gG͇A]|~$A./c?h Mv:hq<nIeC[ +3#|Ec/ſz*y5/o#KVF&% D,-K*yfR\D;_җ΃&ePļ2*¤>/5LaRo 2!9HȻ"ɼKI's/J|P?ySjmyuu;QF[xNۭ}y7~o'AKn7:AF63טA4e%óIu7ziǩڎ˽6r׾h_il_e-yX!IPڿ GE;% zR~ʊ//W- eea}IWkH՟TDO&uڧ/.rna:96'|w& eS`&}I~4aPSggE7F+3 @qV/]ꮞ~]wn(`+lb>` &ZE$4+NDWWb Li^m#Z~\:N1˺q/>? + ؅9)HDY}z E2nLSNhɝ6(#ʐ/ZLU^ ~e@1`KoDsp1#𩦫໼rU [F1:4?I9_o ~#WWF?R 0#W~pV "~f]wӚ6KyaڃZԞ&źFb,6|Ҿ} ,@@5㺙9rՅZSڪRr5*׸hblk-6b: :F#O1pYlfÎESz?L˂nNdByH@Gf?IiǙo5TM ˧ Ҕ, L0uA&uoLɪsJNEZ.ؿF4)EjWClwf\ )kOtHz-0,C+ 5-,AtVwsv'n]fn_c! \gz/cJ'A4뼮q}zQxQ ֈ@r^z#kmH^_5YHW]_W_u{ +F%W]6Ū{q>"^2MӌwjhEB Tca0i)בNvḱqt# zsɗ9JSlE :Mocl|h({>}cGSFu VIgL@9$x9Y}=+7^— h?hSM/SRRvZq`:@-" _q fiZ7Q=P`S}*+E'.Z2Ѿ! lc[AQm\x=4\i?R./3W5$#ƻȲE"m!6,7G\0huhƆ$%$>Hl|xYs1HSS`4$:HDyx;0S*򵂽w\ިri}lg#&ֽ[Pj-?ò@M5VEc}i͛t>rwZDcu7ٟ7 ӽ͖׸|Xr>d\Lnuh^a;i{ d T~1&ݮ|ˆں>|t̙5_%/応z??[y_k?g,e 6BBԭ õ{.ipC1{& 4ۗ7,aw* 1a0^ݭy;|٠ 4Y>K|3leNuh/&Om09?.enn;ʫo~c}w_^oo|h f]%WU_*g&`HvM_!X퇀޶2a2ڠ]LzW:X~ꫬ']ˤoKvܗ1I5-($ W:[7{d_^lv+ ͐%W>LܷM|_Y#R0W9Oi7`NPNpAJ } ;qwG0 .6Lqݜ|}iq&`?ԉ袠)`RcD|A`3T4/{5-yF^EVnMIO9eXҨ8m>6eH'.R#!bݢяjSٍ.CvEdFd֤] v ky!z[ڀTVsy +c&odBe ሾ/Bh](a1DܾLn%r[O?iWS3Kl$$/UL5ݭ.tDz+"bZ|ݹ#y:׮W%e D5\>;$vwmx7_ff֮v6n/u5sg_ƈiW\@,uo&7t+m`! T{P,[9x{~q/~y"!ץwqhKO9֐3&{ŏ?P|u ~_r3h: ݵnwś&o$@UÂ2@W9ᮭ8d>ctt9آyz=C_u؁Fg :>Cyzo1Ý,2Q0y]V;:0R#A)R}kۚ%\]\RƧ>-0Yڶ*<7y(Je~fN:}&5`Cֵ%Fߍ&:1dYvX*)L}P=$/]YޮLe ğX;]?3Vu5d _q1菢yzEvabfnpRB"X|q6J+u}{QJ"xKlE=RmE9kdC?I۞G|h[y5V{p4[ 1I6U?}q_==˳ dL&?1aOoMsLO_\i(@IDATnd\-5ނy~0ݷn4ب*ϑeB!3Ey)(/F}]f<_1 Y ڑ4 #'Ҿl6 DM? 7^JYOxUL´٧`z$;dȝwm뭷Z}~\6( )OAStѣ|( qaahq^ǀu?c?gW;I$;qmvӃ:oo\|~W5_K;LZ8l[y{L6,t:iM*6l/Iev]y '{*r@9iP/+IWnxpg:4ʤLZov|mo%ߪI2``^f >Lb:w33?/yΏLYcK޸QG3 ml \dZdVFD!@! I4"L \sݏ\s?t(7hwJrcH&|'/(*:H!-a@yn Ev=tl 4:w.&L. 4dp0Sts'Iu ISRΖs-Gߍ_5S:6bi؂hjo[69@ȒV 9ԗMl&'PrхMCH$mS!:Rb0G=WL̫Ǧ"7IѯUl=H<%^I}uul@yh,@^~<6]WCyv_F7u-w!܌tTzW LppU>MXebLH=gP<#zD#Oc:0-8KĄLw C~- QA&yY /x;.J$$Wi/Ggۙsڥ Fص:l!1-ZDXFv` 09|Hn^zevYpI&+hG𥠨Mo1ߺtڹKK7ֺ3Vn^(Hk%'$#9(yÆ5@8 ʇiBNtRr?0J]w~>0((3iG6`e{+O!~1m D UI9 k&#A+7uYԍ$sIwL2wJnAWOڷ| ׬&;otG߿~#QC RR߉_LEK#}ls8԰}q"9Mݘ7Q w2^?Cc-/S$cE1{LF;#Mrrv#L+G4:f,G| gDž!JIQ157f]{ᭌk H<3e qYAւjs8G< (9+MYf/bf < &F'*-u p9 p;݉[n<_x/-{ X)7(M&o谝oe*HKvjqґdPqR<(Os)~mj泇|@g}G7yU7y H*ȏ 0 ɷev1ٛitV 8hx<~p&gGXCL+cv \eHWW07Øl1uZy:Zqk}RkJOҨ5 ʗm %".fU02P++DTPzJK#3{B|kK=ꏔijf&ݓYO۪#aփUfօ%k {xOQ2wd] (v7w9ڽ.>iմ5~7@! r3&"aƪ>_jW PVfxIaױ"u蚘qڵ<˭fjPi&QZ]i |Y%arF׍@f9ϳ su1GU~xےȚ{riC;(2ǼBGgqFewm܇(T|TSS)vR/UP~[NӆZ[֐OX-v^^vIO[}7eo4vٯܫv ^uT}P p z 󻉙D;l7>֏ۍ4'x"6YoW~aCZzR~1rPIoH1oڲJ~M*T/ݤa0?~XA&%;??OJIu۵ߛ_>LL]T66%+Mk'^xA.a?X>rom'Wk/7VcULQU6JnяcVquyU^mW_cU^\E_U_ggW/_N>]MUo y{qF^]үLʫ=+ҙ㵕,^ t-6+KKKѷ=NMv~;+q?|%T_eu.^]RnV$_vivo'^֙jAʭ*c͜1q~#X^m'U t <8>Ȥ /L**+׺ "R9Np@l,*o= pcSw湓ݩ%@plJM#- pcIx%!#vyPf8澀A^SalRyl-Cr8 儇7$DH }cMXd88s&t>8~4CzlGi#A=<܄5pmxn-vsh o9Q/ILMy`@l~> Ζh1WXKV-`x*kM]70HDYaZZea\1A"4i`4 G3  ЍnnW82PDGUrWho׶;]zݭ^fͭ]h`n醧 J}7@ r4'7[92yRSqtD?9~y35S D&:`i/w3@m)u3N̘8K0s!Hd{h r쵲m1HA< Yܽ~bw9 u.6V웺k7|qr<뀯&l/hЍc{ ^:7)x[??z#mMzZ WoCm72LB4>dQI{a Wq}a<%ym7MM>.#/E &,Uk?9O;u9'7 hkVegfb`r23[+%PE tac ~]shWgx5L?-q8OrLect-5 !SʲjT@++UL@k8IFl؛uO3uI+)~Ne?U?GOMm 9“ִ(&,R&ouAc[mDQ̎CyIIўg?0`/ ]Z&앛٫kE7p7VYsģOo c~Ȱ/vn\phe`le@"a;%eR‘nvN9S@Js j>޿ ~8Skc+2^vt|7@T}nP^hLv7i>I#S)qyC>U庠̐[F!\pI.- NW]k:o_" [Ȱ>g ;knҧ$xWOͩ噴?H4 +J}Mj-6\oʋeme!γ)|tוUBG6U1R3d 9˚*( '6$Z}謝(0W[>M% Βg_k"VQtKќ6i40XqNٲi#8~#kd\bj0I, -,c<{Iz-^HXblԔ#o:g}o>}sܰmÔ3Y-vpdk'~=< O}pl_v?hG<~^mS?S[G;xV}>)<SݐnnX6;z||+&#m7:5ݗbA&_$?U^|n(j7>m3Ϥڲa^չxJny/`Ҷ%N:qVAILԚ~MPOhcQkG=V}hO"`RW=0Yݳ|zX6nϪʨ$?Tcqݮ_~7Pv}J &э˼&}5ܙ3gNm_WyD+Y 9G2yy`v9㏓;΃Y\uunR~Iuc>%sH[ee__Ȟ4n]}׹x;d\xyַ]p!vn7ll0Aʖ /d$87*¤FN{lTDmYDJI-echsœҾ6F6n"n 2hxw c;ƍ8>ny bi d"%xx&3luc0-wxw 8:iʹ0 A(eOС};<loܼpD awʍKY 6 wڵ`mc6 V]IAgBp@z1yqT*F+A7َѦ6Aǩ-P"eʱ^[CNllFɤʌ.3en;uriE$U&À(@ ϽCrwea[;]_Z^U=}2w(_~FC2FTG.v1z,0{nu/}*7Lpq}6IU?\M9CyKO/ypq|6Hy` #O!I-C6SJzzh,7נ8/09fd(g^:UlӃ ww̅W;YgMdzҢ ^b[d[q-bcl/c7{i{ܳ<簟,3+]suasW%¦@ګ韌}k7@*z{}ßj9H4I! %Ĉŭ%L%OD=0BO)KuQMԱ c^>Ce?\?4 ?ma3Ffa<2u|&F_&2?a`'8d:jtW)=Ef6Ѐl:\$<Wr ѕ^/,`{+Mk0|T^NX"LN N<'miyRJ=J2)ϒ) 2},7KA3 =xI\ݹ>o;nGL >\3&_:oc;Xo :ǫ8{NwqqSm" ebp? (0f(0=5XFc 14F`\CgMkRl/gӀr, K~ȄD/&r+ 3ui,|֔"sEh2aԈf m־6˚QQ=I_iqݓc~2[k^o;*2ƅL[=zQ;\T^?A}bg H'Yk8;'` 6Eo:.CG 7[,+7WmL74kx[ֹ> St_Yj"g͂4K[]ՋD!-$@c0`c&ihF&0L3ؼ`< `O2 z0 `$!+UUמKkF둷n_YՕ7 ~uf ­ҲZ<.\i_dRVnx:=).+φD 2 j계 w"'e4 њ}}xjt%` !/%C_&;#VכKw8^h/1GZ_a0i$G+,ꇷwe=L/%`Q)@+ GHA 9Ҋ[۴ 5^F8!_%gGud::OЩ4v"#64Y$>GLƩI&;%YJID{j!WAKT;ͷ*$G]lv4+W!Tqqypgۓϧt_+jo[4rX ~`ɮq۟.]^'?H?:͠~;Wf}WJoZOtWJoMsJ{W|*>K6_e^x_Ztk.`Rfݺ#1o=,Iwmh7A]yuH0ٵA:;k~|Xa㠖wAWCSj}gտ+MKUavkai{9jquۛf~yշ߾:CPve@i$v|yu>vPYmW]yXIʖe&3zYO-s<0y&ϻ,\xlQk]Lm=S@ r2EN68i+PEb m|þft=L9 ١t+D#QlA68F hR L `4˔_^D$"f}on;S\{ǖRQM{ٖT;xOu6&4-]v̨E] cZf\䫽kDPѱ݌+, $jPx?9wqtԙbsۀ&8M~ vQc\^nzs5#Lܾ܌oNF3qn2_o5_yxCD/@5J)ȏ5Hf}ǚxYxϋ= }| DX*᧝B4*I{l=3̫>m1 M%mBe`S.k\e.}b NIGvr. >jK&晠l$$d|"g/C~v8ɜ ¦&Ao[+Yxq,d.`z?}[Rf˵0/)c͌M)gޝbi&yAxr- :tY."CuLO6-hhr)'OI#[A$%giqT'&¤ҁ"@QTg9!`2`s\ bM jX?Oom9 t/#FM,Ќv|#F 5`/ܸ|-",Q.@q^"ݣ{F/O >Qhǭ]|i^|CP`4sYY7EۺIOuwP.hB+`ȇ]r6=6T/.%¤Gr_O2o&BOݑfMx}oyϕ橩`wm0 {c~#1W0Q,1a_f~/vԽlq=z.p]l@w  3!^ݶx&HhcwoYrxrs~F )L,*:AeYadܯ:J;ВRg[j -,)XUZHX.KG1o#h77+wkDHGeM"9}O&,s9 L%@U*^eba)s,N2îÖvG_U9,$`^4ЬI{yhbm=)Wm MywIBSLջV]tRJI]OܐkJ6ti . LE N'Շ"*``%0)[RFB OṄ/x:&_f~^es?koOS0䊝RfoN2gk27}?`K>[߃p_imh||we/)kwDNui([DQmY:^&^/%?x|7[ޭ*~y~]6'W{ K}TaWyXsyhwԾT{~/rUVמÎ W} *; ]| c5O>${! ۩_ KUakW_}_St}yGw6ӪO2(78#|oۧ^dw[(ҷ_}fH׻+k\]>stugi|_뷭L5߭T[kڭ̚FMٟ}yhIs7Տ}-ecyiGm[ -(KK5`2V`~aY^DXhvf5닏7׉2ycg#f&&(`;Lqzso4f3y@{"DI\$Zeyν os\Fs+^+&/e6ݬ&~~g97'g' gϴ F5):^ӧ[W _[oͬ-CK"OeRm9-oCuɸm\l߿qy*Kl6'`2 4 p#8t9nd,\\^ǷD|9&<>#Sd%׉4X_AXM l.yTsGQEmQ\7Jy06m%+v}hB`LTgx bh!q6).kuԶҨMkyPm#m% 1i?gQo}֨c[޹ hm72MK.D] 8$QCևYli\ů\T]p^;G]2h&q8|i -a6ajQ]4F[Pn ԇܨSw$ CIui[A%Pڵf Yz/Ja|.Jɥ~-O, f S̳H$n$JKIU⟬g]]儾!h.;+ˌ4Gu<R_w{m882&RگP\{dqe}ƔzM{9ۛ2[2 b\Wri'm0]t3f{,0*̽U{.Z/xyqiy&f0;az1}رa1~,=wLE OuuѦ5Rj[vXmgE|*5UҌ彠iBI E5>6_*&Å_!)k?zqk$wj|i90 ;ޥ|^~^ߧWUke ώʵ9^F&|)- 'oZse>qNOiY9 aj fG5ֹd)ITtfe$D#(05F79)g Xb-s,lXs/l+$896FD=kZ#uM/5jw2o,⥫&"7~ 'mVJvt|[B؃m[r_GmW ?{deV}Y_E3磲@0Ώ|42+$m嫆'x=~o[rXmMd_׃t :( e {ѧ|jmO}Ф&~~/i]2Y$z g>֕wdm˄Lm߷C-iAݲnO߭﷩Ǎ0)j0߸}? ۯL{}=n}lw߉I|mս?xP&ԏ_F*_-ouڮW_鎚v W}{PYOf>}__4*ǴK-+6yy y^=c4AG{ݻPoZiAXzbL>Sict?JJS* i_fm_ZVSyuxˤj4AWcM4jSO=#1o||;*;9lyu?LqF~qPe8?{·a>&W΃O~HWJu4d_>wX/K_R[#.R[}0JU6FH`w{ACna2Av"1@Gƛǚpv\=ΛF // 9ƺ&Р, Oh(;W(FAQ"@yQa6#/GnwA'-Eaq5C^2f۶2c5mYXp6ˆ߹} ʰ)r-S)`AyXEw` "%;>@m$v+0လqSV`3펏3_QJbv,I\? UyH =Z0S5ӝUl_ ѥ; ^-N]ctKBQ~uW 腇Ϡ/lh\ϋ (NR#7Λ{E6%lj >Oc}ӱ Ŷ4y `~n;7or¼4`I̯3taSǐα~ Z`q,殺7`DW1h\KWLކqcC X _$}%?tǦ4Ŵ,FvsiAIUBh+?i[M}iyEayb[ub}M>Cå0Eg|/hܓ?6`_o :82/ [9eyy}eye}ys ~`H ȏ˳C y?t6ڜbMpמcXy 7ͻlsNc+ !5p͚; }ru]ޜwy|Nxf3qV3C>c5;JBdkCTڬ}~;<-/.yN}Fkw `(P `:k*~ś$k#r/yMŵb0nRE . [S?MS횼{[Ҕ2~. T.Tԋ1T#ӹ )WWүQ0>uiFŪL }748ǵziƨIY `Tmw}fQ`q9Q\_} ׈Psԇľ-SuEx޶)omS/:&*l@y[ggT _Ғ͸Y ۖGV /J-ss. c_k]bM|2=\#8#ilO#xv{3qEp<,:#arZ$ x:>}mcd탁cY>h~ڃRWrw]SdgyS}VZɐ4 ET%ڀ cx"xdw9q_yD{yhggRsG+~: `(67ڍQxQd IW_w~~gXyյ_߽6RuC:UAw\dW]Vj[1$O7/y e6m˿˒몶&kQ;{onjqt+ajwغ*hv{4ujZfz&bj\U< obmDZV]Lە.~~jADWY՗m#MtZ^U>na4)ߏ_^}eʫe?޺Ʋ??j&-&PiիWgz_S`ɖԢ~{e~ P|1=nIy8w ~~^YZ>(в~WyW!6>uy *+5Mz(дoZW*>2vkӭe~]ڇ?վYp~Im&Mcj~*ψԧ#}G> Է7)]O}:4`rgX56 [l{,t2`I6KucJ,~MNgz=`?ܳ&=$wg(]n)/u: H#-Q k,m!M.ݔk~Sʈԗ/7^аQСcv|7č1vqQ>vj$Q'fɅfu㹧69,mO6ln P@o5wbKͷ)SZF5)˜y2e~{xbxPezI@F{O=̯8C!9 7EWǕ6r97bQD[qoEK#)[P0NNUciw?HDIdV'fݹۼq&Ȗuʎ,C`Y QI`Y/YnFC8&GXo@"dbGB8{_B0e@?}9T9-CP ޙ.@(p|{[] jCNRTxB+  L"h3,G#LzDcQ6'z'&;$iPXF&[Lb7 V/ox`tF0t~;O~e$@Wq9Yy>S#Cwj7Wo7_0>]b,nA~RM_ï(|R=}>FVFXGV? /C0(2ŹQ Ԕi9GS/` cgb |HZ Z9z#okisaSD!2Zzg-#Lgx| KCtw97gz;k"'x6Ly1<@elR`$`2nu=EZ3K0ѵ}0iK}w nEu;#{$Ϯlhfחxl?fZ sDŽ/n~R/R''_R v/u;?R¤Q;b?BreS%|BLm0w g 8gC98fyKS|~ $Όiq:_ y|dm$H_XYɺ%W/S[ZCuYnA+snϠFVyҶB*c{)ijW=&/u S"]P81i{_<03#OHn|d5v$0g5AMH^UyY(|_[ Bgb]?KN[xUfQrYڊ˔L!巅iXl\}ZSبӵ| vԹ ["#i 1i_e}y'k_Q̌fXX9_-`4D󬯣Yi#|]|$5FH7Rr2}`<מH^MXܻ4)x3 jh>/`rCUދ ?yXҶ/s7/FG-}iwC#_ 8I>ﮜ~$y?? ğ4?kIa3oatIvX0޵\dwU^wT>mwΝ<i[RuLxUM@W_}5j65//o{^zǾp/{?#?OtGD]]ك*mM4{_/yT>eGY?|QAuyBlXiھ򭠺!V*_k_}{qpx~~~wV~]˫ߏ<܃hX:;}SOL;&nuqH~,67VnPFIl'e&;0b3i ǧǚO6B?i&ޤCMSEl])i찀CYHB <2{TQnhQ&Z6OCcn} @h/qf9G  p@QJ̥e॑,rN8.&6^:gl/OG^c7¤C[T6ɐr@R~ HWI_9F!z0<>;g60),IQ; Tb|,`<=X_$O͝a'|=sIs[D4[Ylf%ܼ6ڕK7^m_zs_1w9 l|2 K2~~RE׽xoc0=e _,ܫF)|م, g/O<81y }YanJ+#B m_md,CBpTY,`F7S^N{>H[eK᥍?Wmďʵ/}([E/(,Ϙf~{>J*/ؙŴs>=N{ܱJ~X"2;s;03 c.B?0}xc1)X: 2v/ǬE0s`ã4rvlE RVzY_hQ.}%%Ub r߂,F;' /M=1~4|Ў2zQKr\yn>h|8(ؐiVW޶, II `R[9<{4ou0x$#Ψ%}2_KKwXCѓ!._뻼(f[z/\MnK.-Nyf/_qS bDAG#~#>a1H7)3UӴNZiU~ ]˰c9sj/#m#'3Fcx9}RG7Qvvt7궀I^gRĤG׿tzDK@ tɳ? bHp8wIk_Ar-R…z0GQG3$}^8I{yTw4 ԗ4?jw'-w/GN]+a&~*} }׃ۭƇ(8 >qOA&ۏG?ھ[[_kZt1޽~.nn$oe_n3]t6˺W*N 0)OA">5K~MR_uX=r_ep^Iy ӥKӺ+W축^`R}UTm{]a*$u#L=Pn?7Swuj{WmWS~}-im+ݰ +OW_VZ?(mBߧW,vZ}._1rdX7P:9^Jq_>ws~jC&nEY(7Kn  2 ͓dӆvo,5\Q6q^#v^ _-nY~:gMp7qҸl37paܤ M Y/XjD={ l"%$n0b Hh%![&zߣ} x{YgPK舊ћ @cv }V[tl\`?F6Hs<7hd"$(F n n<6qʏIRm+)O,Nz6;|mFA!^#>+ sn@-[:l59ۜ:sY|ٚXh޺?լ̞49%|!PQѫ^kV^z3rfffrS| ^\jn17pvKS;(HƢ&9ı@ 8#=^g!*ˎ )˘ (rS3qu9Y"78󌔹dy(sŎn}$P"#q郀x܃~?&4C$yƵk6wnjاlGUXy) a>+-J+uNyl8O sNFH3HEwA| S[瑂 A"SF# s\۬cˬ+EI9Ǯ=KqDO"Kjbfik,mƔʉfLeZb˚])]坫,8-m2#K0Z9QQ%%,&o}܍,}}wqwl4onnm7P|㘳X>L13BـqE@&N sl&ϟu I^euL>d/>5^o]e-z$|l},np,{ך3D*F%t+ķ]Q"3S>\>K-i^#mxgsq.]zZ2Fe;y>mw apwˬF}eyyU̯slu >W:G}L\dy]cϮLYCN":m2x*BG ]ѥѪ ),UϻH<'} ]+r{O/۲T9}0٢ OgM>+`MvY,`gt^3Wdie=vk3竴`g mH7;F?`tM{TgyczHW:dju^ V'ܶ!&P?wXX7yoiy8fWEd"L>C~Y] `6.**:Y/09#v{ϗL~J_HX [gunl L;㴵[++qYWy"Gⳣ7>p>hZǧ?A}yP~ۃ0+?'ͷoataU~1Msaۥ?qvX}kjA.}7o[^m? `vgҼ˷`y)u*{PYSisWnݰ|ҨG' |gvE)G5ˆYCf?*kv`:7 e`}"OVӵ˺o׻ۇݾEׯj}vLA`SO5c@j>_M(zuu?*n~Y~[_4OA0h-{7[&ԏe7oLj^[o{4emNӶVnvqT@F[\\l~~w$[֥Vi7?ղڶ[gzn{u=rec9s&5h@V~:{vS9y -: ncfNZں7's97KnсU.g?ـ-&K>]7^ȧ?+ 50PW-&f3h%jɱlf9t i6٬Y ݇K~皳\kNomNɝ \ladg&˯&#ܙra͙s#(m>@ }7`,r/-쨃&@̆745@~>`ȫ佧%Xd-4*-Vj`Ŏ3YYBS!GUK#D )6-}km!?6W=(p 0 (B@H!.}`d4u&Gol = gBrEyh%er.Ҳ_jJlLڰ1)PվggUGTe҈# y=y:y31߬R:mc$Q^|U^xۀVcGrc]wm/~~?#GoMڂTʼnXh'^bӹc9QF3磏k>v4qs&}|`S';pb5}ed98+ƚˏCtY$w(]_[Jl/E,(i,eyxe qL[T,vk&`˜`n17+LKUeIxRx2cv ~G|m>tv9w42J=J3[^7$%cԨgW%7|uSWq]ll!)X` ݽ dAm]Z%}8"\uJD/JQ"]t$ŝ0vŘ(F})sDi7s=kS45dL[$ʀ/%]u>\EGrtw>Ta0c=6ch:(Rj7 8JzVo &_ *yZa9 =`KsE3E}&CYm; [=5KZ[I(/`QKu r" e4*HHL2G)3̳1XZ% >&o?;C0 aΘκ͂E/$0ls}T: -Hx5AF_Mak oymgfoD]hff [i, ~1\Wvr:Kwx~rDr3,޽ޜ{91ݣ<"֨qӵNJ'l4k*e}%6T*u:*I2 ACg 2*mH5֫mΣҪm}o}ws|yi)W0ټ͚:tϼ$xDso"Bܱuyf:b3p9lֳt9yg w |Vr/g-|z@ eJ4L2),/Q%|ķlh94佀zYXg09˸&\ZFdg;_lY~;a_h\bqsK+͋&-MGUq#J X˙cGBv@ڊ P"(!-" QIH}2m:nQD~Su'vkKeX:1sD>;<-e>3uH ubNy*_r]7zj<dܠH]`Sxh= o']%"L/*`毓OU['8zkD~j2ϲCDeT[ߣC˵;l6r1e2]$BG_Dd1/XP<^C-Q1Iv+*Kv3u_ɼc /%}j'@@©zë.SΟpx6b77ӳs=^8yHe7gyp|"\$7q}& @{3aD%j(43#`- %b-Q. ~Pl?zKMXkFX1l<< s{xqB#擳3s"82AY 'm|q_r Ƚ KLuF~5ixW:F tƹLDCUAzTTz*-w@'u}Z5$OYvl멠M~4/m,+\?*.`z<{PFsok `rU[{C[Ώ\, 8LIJ=;6<{g6:-a4 ִ&atm5ʙ`ͮ?x'hZr/ѻw0yvR3L%>L@dOT-5L"լLd[/X۬} >_i9™qatc]C\cᦝe.'oV\V]"*pN \~SHST+W;h*QPFo^xǪz6\=>4i(r0 x(lcu:cUpg,ӄA="@8hZj|.1_$䋼^Ɖ+G\5Ԧr+6O}ޱ,fKkÙ*`R@V*o{G-?a(eFXqYZ9vKHGz_x~Eg-XdLO#yW􀔢UɿLl6 =~igG.X( b.ǑܯmNrד2?f 2/ 'EtXb?Εqw>Y?i׮_4فOJ~~:\մWߏiQu?Id,կ?8(=L$OIOa[ dm4YvQ|aW{}˺':'>J{شkL*d/"ӫ:4'=vr=AA]r/9}ƺ 2ܪL?'j&?ٷ}h.>2=g9Lsu|9F,q$tpkVs텯6+_|3}R3Eup/Hx_7/Znw}l$0Hd&cK2,I7g4z$w?L4/ a1ތ=߳l{)< b'6_*|MiK*u L$@^ A8ecv &K F:cT0p@xoh!6 x9{4!Νkf@.떑MU#Q};ͫDt% z-qhl tX&wbA&uCz=qthy 0gė*CRPND5e 9.3yZrDwHr,Hѥ%xΌLP#L>&ixR}*Θo E"b ; 8nAn7o.~ ;x:a#L. ce0I>K:>&(0tSAQ%_XV"M_#= iq|R< G_|8uxW/sPXg)+5.6q`SZX%6<:wOH)@^~0:+`+^L8c%OwQj|t1Cd36øh.l6hfyEUneM6@3m‹Gr/hr '!S>y)轲}g(dpq87`-} 0Z:?}/8e"őK26Hl/*ҖR7=+KYHlZ&`#qc( ^Nm-Ow-Ɣe)iý̔/-TPR,IQ4Vr׶2(ZnF}ќLmПDߦ4@ sh0Ywa)>L"s-`h{e|icTV7iT.SϨd[jRQ.{6Z}A"| B2NQ-[T-76)wx51p26|yNZ~}"ۆreY˫8_F z3F3߄k;V<]r?NqԿiiTnʍ֐` ƄQ&gK0Ie=n7$>7:i-ĩߒo/ͪqU;f>`Gx,!w׸~Ӭ݅O>m/sիOʾ1wj?.AT6I&~˳a2zߕ[ˆwet{T-ӿKvLuyTPUӷO.>FtUʷK[5_7?[&4`%UUZW~Yt/`AɃȪu{7eֹ~LAuA8)<*az+}m|O:k~~}Si5~ao?^4˗/7_9g{\OLZ޼@aܗiW^y%(UoMUd0++?*2[_a+] z]t_z}i-u?c?Oc馕e\]u:S.R2A޿_ޟB~S#W5ۯ[n&$WGj//,..2Ѐ'?ny/EĤM"'xLjG[Rݶ-pޗtlb?}vGrxq&S>XfJb/Mfvmr3U@ tǵ؍Qwt4BKdCn}A=G{&<da&Kw.K(0@Α +7iK k cmM^}sO@'Q ȋ[m / 7ڃ 13|\ hsh#;@y<]N9oln!#eU/UTGvc2V(ۺb3~)|']AA:wbGnv$ -cI9^žYhF?ܜ8׼3˱3:GNΖ](~Ot7hn}sWVb ]x@o>0i6逑<~蚿 b@6Wdͧ?D7CO#oj^sA)r;Nv#%q 6֟+3C:2(Ý^;c΋&)u^EbDrsUv~Ns7-@sj]P c/Z/hf20:t>2rS5OYlKR) u$:3g7}õ&J7\ɱFKHu]/xpm1*Ynd>#[xeAV'.G3Q>jOHs3{z5 _+\C.ӋҢ\Sq϶v6cjp&bGY$O8SRk_k?;x:Mr1-q"19|8|Lα(HxSF&W(j?7j}ʭ7n7 UƯSTmGkOӫks_̀U@IDAT=k-X! Ǝpl۫CCm7iӎ".\'TIz+І^Cn(o{yz&/x&JV_ 3xἣ+0 ?Ds(Xj~sטkGS3*Kdmq+-ʺF->?rbs )VP е@2/)C-x```Ѩ܌N>4ɚ6 `r\kήj5Ӽ?y.o}2*J!5A9N2`2뵥DیR CCl;ߧLm^f,2)O[ho5׉Jx/|kË.!o}32#zC a); gX4p7ASpv)w7}eD 'piu {xa|^rlYV)\h H-ր?ε<5ॶغgk/#KJ,l(%>ZetN3wF00㷏~zql0>7xp5&sGm[W#@X9aoܹK %QF?;}0mkh_mo/NGhC/mhVlRҿ|A&/?>rH+gt ӱ 6Uxҧe4Y? y@~*'Y.DN3\t-; y|4X\Xt]2VW:[zk^cNGr0ب_ jn%)@Fev21ϫc־G{j%0yP?8Yu4|xԃ=x'~?}w˻yuSaFC=vWYvT<0yO02yz * e}5m= һ$},*˷_}GV:X;˧0>*g/=9jY0yݪtn?|bϮ2+Pvwo^A06ƣ[.`ru& ?lmLq+Qݫdyʯi~ 6{}_^'dl?u>B;#/\мkoIW({Orj 5K/\zVma~,7$c+MW-?HYk*AnY/m0n{(v'?|U_ }}*ny6?fee6M7;pam/XrfG-Mg{&kֶ·Oӵi_/X bR {isUs{}ҽ |YHõ#Nn d @P(F7*F[k>|vĹ#s g=fgVD>._PEmjBj%R"07n8€bIC/H&7ϳCXЁ v~*]`OWHmbELhG/j?i·]?uUw@GЂI4r&ԏz{_4tCЈ&y|Gх4}z2zE@9I~Olcy]zڲT6i/y&v2чD{K\dSO<߬yyR&zG?[o7(A~4ׯ6fկ%"ږ dltI2`^|LX"+ԏESkwTјN~\O=>LsW;oi0KcL tuߍrjvIYd*7v38|bNqU)ϴɘeמ̍veiTƎc}( ٴvNs6cл6F*4J"?)C`% =ODi|65=K[k,ktQWR\_PM#3T~ٞYX~y+'/"_"?a$eA&asM]SG^_0F\v/B::kK;<脚Mѷ3|Q99(H+[\˨ID^0 t9$@[D~@c꬀I|zf}0`15SF% b >M |AA!R $H႓E.pRvpƧ==SuwUWU^{߷ުꚙW~:5\[lNy|[Zs׬۳y^N^f 9Xf;yGh=dYo_},זWPh~[Cr/+HTf#Hfn3<}{ sK YrIWmoߺӖcv=-ckE@o#/_EԻ B/[ ,p1%m4(X7M(sYZlScd>,+klC!)m+vS_Y^Y2"Qv>0K{1v}9Ms윾j\zĺc ϝ|՗W3.X,3amIQdFs{y'Z)V/s&Ky0AMY/ _mrk(q e*cM"6 K+UaJh*KPߪMJi &X7n5UГ$//)I[<*PY}wh(PQ2ka!`;X*I|rGr\xul"Ÿ21P^=JW6JpoU Poft<+2/OX1nmYwyxP?jl壶$wUjn@ݼn|a?c? `R^PW3_Ewe׺<ۥeƻ龌ʪ<__;J5 K {;ѱVzW~&vtuzG]'O"ٍ,UubF,Gg EYyC?|/&78&k' 'xOZawI 7Vg&1(bS4nZ2f>щS3Խ,޻q7܈wF1ҭ qs͟jaWFxJ& @y`в&x`7DS(mE#DU% D&@$~CZZqg-p 7ۤQAn_˖ һ~8H61p^3Ŋ}Tvk c#ZF Ա%#ȎPg|j'xÆY૗.&jbǙsv%\Rdd~BS{ITɧB1 qG">P0(_٭]qd^ 'O@@#aGs'3ή6xv=Wk=L.1?Y̔1J`R ɯO_[:LP^=LfBp#yŦ.{ ,Z0ۭHגz1zbo {WJgG:=-NqɌ<:`#1J*^}dg^㱅fsn -p* <;F.8zD.g: ?Gr#gMrNڇ'%H+}þԶz uB) twR4q֔q@hMqow(fC2,޵Y7 0';1 2Eg[Ɣktm\~2W[;KR/}B$0N~>gisbkh;9j.o A!"׼ر?uidtm&ϰF`gj]j[N7I_#S\kg)'K SY j9>DlW|#i2SL)i[]j)^u#@ɏ<ŜZML2ay&yٯS_=fض$}Yx>yyw B^f.r4D|~vI360/4Z,]%|2Y'S'kْ؂t-\KhytB5+uyd@Sȫ$<^D?-rM+ZfW-/J:ǖx9D-ܲ?8q\hu2;xgo0g ?q9g5%6lΕfhώ@5qgf]2BK!o9kd!sgϵGWTw[h-P<-ӱp>\Ɠ9s[Ujv;U'Y`OδIUm=GmG0݆gy.Ay;5˷wqZgؽoIͫ5Фm/ϱ:k)@UWߑmfiyet[//Y5G,m:tƲKߍ7Kו'A^&w/]ymJ_u ūwJSeumQQ4}_ __]}5]Pn==Lpx^0Ymҽ?I`n薙?[xFQ-eQ廵(턏4>C~k_k]&o۫ s d%/_Wstw ۵ƻW7"j~^ 10/wӣ⵼+n/| ͍7jwyho;z ە 7yokw?յne;yueueWnqG4XG^^t޿ CwJ-DJד76]&gu#7wcze6XCAԣ s͑cGp|ԙH?KƉ2>e~Cs M@P6iP6ƛ3Wn6߹|e$iFM2mvlYҜ{تQl U}rAOZh)/O?YSo3 QjCD[ֱ<ʋPЅ#YN}sS t D`ǒR%b95KHnzbhUt*0(?M%Sf \頋\d(cD0G[-'9^07_`azg}c2ꋮڡ{o?-dS+icS ʖˑMN0v `6hfl&`2$ǭ΢R.N 3}<IƱE 4A1G^&=.P4m~qg*/vU^V1ix62rY>r-Z!z˯ZY5ӷVU(\ wZZ)+Ƞf: r**\w.i(G93v;lw;O,*`﹋Hȣجc=U_Q??Fä?ʑ=ѼH/7/ܼלc,/W̄Ģ:yDY<'{̹V۽woUzb?p(kLGof |zȻk{չ&n$k?gL uX 9;N {-otCWn^7> ׺;`߫&k6vj{ywj޻uj^W{ݿwTۻɗ^z'?#MW>~}tyA/!ӭ'f0Y}hjW_җ Od={{J9w^u)(>?I-c*W w/Jnrv(Q}M?*Qߋre|sL~eڻ*= [U 򗿼ʿڻȚ1oZz֓?.t˲nGG+{Mj9޺簸˿m$cղ}]+W4Zu{(>}Q˗W}tMyX|?}Ho^78lt;|>q0ۻk䇾0mW=kVݡINya]f؜]`pФѮ75Ot ,eMs8)0G7㎎zwufe;0 /wېp' lh-<y)O+r(f<-۝%6^IY6 zi'8A! /;l^iv + ?8ieʺ,Wg'wK?S"[1xar|u* nܗ@%5K~t-Ǧ [Ҙ$=y6I%]Ibkz\u)ӎ&h#C۬>8&3Wo5_ryoeom-H'.,+/&1]1Lj-wٌ0ŲJ@jz5ioALR.xӾ[AZ(tU~p{s eRC,t=v_EL:zn#BDzJ:ǝ_d(Bc||yE_r_)U0Ki#YAϋͯ_ʾAg\d&k S 0Ea5jvʁp2ˋ<[Yab# :tآzeR{,^!s,Sh aGL.-CQ֢G=g[y.,5 \h^0)M<)s.-23/4OO#Y7 zt) ,c#c۹sm琠bW@d׬cL=ZjoA:`g5n YOn&ozεr\7fKL<6YSnȄV7HO|]M3{dzy^H[l z3!kOhi.'Ѧ^>cy>+Ⱦ n\d~W L~H_l(ho>yp#Kͩ0C'yW/" ۀG=6l=ۖbfiہ>z]]Fs_zyգo` Kۘ"jRVؔdy Y'F&@(/.uL](UIS"O+|$})Wd\;]KjiRo<op$7ezm VFy>%b۴I̸5a+dNƸBGC@jCg~4µHHeIN&G8'휏rSW0tsIN}0C<˳<| C>v\ZgYiӗX@bmv@Sq o_c< & Bh;ɏ9dw'RULӴ?S;,ܰ2mj>IV'ef &D?xG}+{=9ۊ0vޔXnF&|:,O7F.k(cy9_{[2G[ҩkA0>GGuՆQۉ}{IU^u[.}5=Ln~7~zhJ u̯4]_l=U]ag\ݍwuIʩݼA׿yZ^i^Q56ԃ^B[vx-ͽggӾxZ?jLnG۲[#?#V[09ʞ^mRFRF*`R@]ޕ;&QeoC8qbyToo ]{` _{eѷilGG/뗏jf(Q廕?~T(}v[>Jިrf 5ϻ ]f~@xV<]\t2.ݵY[i]ipve3&@,rnf 0d,B[elgO~P̠ wd-@8I\Qx06ܕe\ YJ8 Qųu!O}xʆqՑB?E7^yU]€Gtw7P8Ʀ`ybV.RӆxT?&[ MEue<_daP:kLp)}\a8(DOy9NĞ2͑mۤ!@:0#bCcen `rgũC͵lsv 7MQeGA/67f& `f }{q6JmGQANMI)ME 7 LC3O?q?@s?cͳ!g96e^6Ag((Z.u=Nү)fҰaq-3a\R/(RUƥW4#ȋOqȷ6o^C]3˼xoU1u`ʃ#Si9z41qwi;6@ػmDivP'A xrike9Ӈzh 7o^|`KA{aNұv? $uh1}'n6:#Mq`(xxjfd8!@N5)Ezp6#\DRi _`c9[ F-ѝ^GE.#O(!d::a< ,8(hR$)g,LjA"zF('`U'~ {o0oPv|SMhL{t !༑Bx!:mRoGEZyQ{F搥 2 rJ5B9/W+zS!/*Xrg,$S@Vt@9$#Fa&>'M}eA&8C7߹ޜ[jnN5\ZOPK(&>Z{411ߓIzϭ#8e<خyoKJTҖ&Cz5LSökxL]ru\} 8a@q3,؅ u[s6<|!9 mi\57`|/kDִ~ $E[?l!u A);gשYX`7{ IeǰtzXy׆egL~۫+]JuDI6̷~('["Fmx3#d֭km-k`D| ))ky6HT*Xؽ~XX^d@SrңqY|f /ܶi1ΟyBWr/&1) >\c[_o3R<3ބ0G_0"3kKUt(?(:sLHmaJimHdSf߷*YxvH'awۖ,-w6KgI^2 Vqѩ+7uEa"h­m kO?t< y?h&Y"PzκGNKKC:BjSG;JjE#ye\C2[e? pyJsz36Jcc6&HLcRIX={%-c`oUzb'YwiAgP.E"6Mj=}»aʳo>6٥oa.`R=t>|3[$;}t}Y[Ȩ=n9o7n~ xFLvj]H~嵬-QTݱэW+n~^7m\P>?˻4zk%_vn[gxFS2nzlx7 Ⱦamia;䨶Oz_gLvӗ~~.я3`P@0U[!ϯQ_Unus'4ռ~QW>E]n~7#{Tw4f?GW9τRZĮ-즍ySƳ>ۜ:u't&]mF]AݼAQyt5w5wn_2_vk|Jӿm<~~_w<GewP^n˻u9roA<468U_Wr˺?.fd u,c7]&?ll&_Qѭl)@A Tȍ)cL`.p  a2~;Y2N8mV Y. Ԉ nst7.]m:@4:r0Ш.Lc-v g9BAlӴĽWEiʵaBNrZIJz8)#;0.ʞe@ϊ҇E٠@q!|@,3mcDp#3=[V4q>%@$Gvc{pF OkOխc_JZ[٭+ǣE$cWh~%O= S5d/-5ÿ< /xX~Hb,<3nN@q>YbuwIYW rMGL/ C̖я4Y(+}l`:yyD͙ )9Pew H39îuh*[5Fe 6_]i>:yC#xzu6kGVo2?o1]\AswW5c]h)ıͧ/5= yQ󾹉,-\[6`IvɳT`y {ғuynE5ȩg~bJ3U3GlI/Vti~7Cu4I?+uR D=Lyz&%oYmgƛ3}wI*c[m^nT;L[p0w0Qrs}X~ѥ5nKۥ-m75߻v'A+f˺y}z˷ ^>OTd7l_n.*ߺw;>`R9]=vc|LvC0iy_֨vv+XRj[G_]=jNUN>hɪ }cwCه;E_k|0C?C[`(ۿSh?,][GP66=&,@~kvvB]}uM=_76T76EU(6X?wh^𐟗Hј6e#(W*` ǜ`Z l!?،>?tsuXser51۬YWw6#'uxAĽ76wB3֫7/ƺ|¥e0yMEFLgNRRܑjPФGR >uX><3w8v=K0)*49WR0]}`\1*X1$:g|POlOvƈ<7&ڎbgx۶{:/7`bQw2aȎhh OCK Y@䔹mc{0g{sӎar[fƱzCRd|0&߹t5*eܢĞ+ (sDx mYK{ՂIL/fv#*YypWME+&{xiQS; m;M>]cJLIu6ŧL;}g2fa|zoбYA3c\\K `rӦ1i` i0|CyNͷ5_=Ua _Zʴf/ϭ!Ć܉κD $5UfF[2&êKPE"q\_mM q+^oHn9ThKϷ* pS˲&8yo~㌋IQg g\|ks. ltIwy@3Sa a@:&uO >gqt9y/]qiK} -K{qvZ-\*"83ږyi+o]a. ;n5_~y2+-EU1ִɳ}6D-8o &s;t}yg}Eպ1xC#`q{:Q6- ~$ÆaM$oW&_+dW.kY+e5l;G<3Ij84~1mw (58UP-.Ɣ!OFmQP<G(E[Fz'V|09ќcʔ.suF[#L ˮeG$'. {~W/-[`0Ic``6֡)In˥LLEJͲ3u\o䖛TCFB)֡ m)q빎~_>LU ?s|Xb͛:5kP c#a0hĸϣV^*FqLKlLru߁o޸y?L.%[/##ky ~w>kAh"yMh+˺w8sn[ʮkmy?]'5X`{n%ۍ'ZqIw l׷[v/;V~}>1=fmxTNO#hRa'f핮n]7ݍl6`dYfY &wƂn˰W0cOP '0y+<_gil$ 14 `Q HAt1@ QֳyP9k@ɢDҸYNF>ZT 0/=ڕJb*>@7ǼO ِJP.Ƒ *wO}bl/O7A67 lm ZUۃ~񀅇I<ϜS08ǔɟ(܊aK\s-Wϣ9~0ЬM7֚30y_{Eem0)N. ,=Ҿ$+6.ʠ-}ynKk6:y*?q8rtؒFIc=7;ko63&>Ʃ@'MCcW`a xAMP_y_v,iD-'mD󸖑4gi YyjO'=mwúwg.Aw8| 뮳zsɻ<&C[?|G6y< +z MLYVtJ M}VIcf롗#23۹ϯ&OD:-rRw=v^_\B3tmvV䣞M~ V93c;?jZ6溩P~!`v9ihPhwuvywZdW. s2SKR6Mm +ySIT䎀P cHTO{)@TĪ):KZU`K >Z+6k/o1Q5:c#RO =~)":w̫u*nm0 _uh>xH$ ZPjgؚWw;wyE~=9`?yAdS׎Z_bm@KA渵2HXvگ .;+:Gl_N LgZ=l`+O=K}4}2Gd-.M#㫕_$Yw`uL)>I-kⴧHCYxcZU_s|G~᧯j|j c<2ss}i&55*e[Ϝ9[tO |Y_cy~ޝ'O,; <٩:kT~};_/Noׇm{q;<6ƫAy_o3LFaTyڼ_WrKgħ׍WtتV_l ުFh۠(ð_b٧駷d@۶aq *3?#_7C>?硷N% 7(ٮKSs?sIZԽNiQ<]~]^].`_{[z~&+ڦGLc9G~x׾#;Uoʣ.NJ 4ty~Toof+U~۬k^7[l{`߬4^ywnwˌw(}>?*ʔ]Y_QڮWZ/E?8YǥJocׯ7/_^YYǼoa~tٍW\dFgAsС]}{^xk^x7mZ3`^l6^.t?(h+L4WQۭ}]ʪeݼAG{pde@9Vw,ذ (*7 f%N,N&8ʵ0&@N,`#Ou=aB/- FP5B6FԕM0K|G/\CAظ 3Jgy f#Mg VgĆid m1! @] o ٔ'fE $ Xfnii}Oz4} uN YXge,Dlm_[TP>oei`>0^GO7>ݜ8\3l>={A%XRMr8Y}f@souy_`\G]d^iW;³ZnMmm>$użYzG sy ׸}\ݣ/2O2.1̓~a:VqA}F 8$A]ړ fef#:hs@I6:@^}r<,ƿz[Vq𲰰uNoJ'LeLMt6 _L8>l.zg|/H`QyضGg Q~́ԕ.5_pWzexddMdx^fݮPFxTET *NSTxT@c&:3F[0ɟGǧ[gNb+QbVћ@" (QP@b%>P`W>z79>rcC\JcA?ޕ.7WqyM@Z8N;j5o)Ǡ8և噯Z/ifl_ae+Y~Y-C"'-``S]Ym#?(WQCnQ{ w.wl(_]`ӽ \w<` ;5,GFTCZeluӮCE3 t~-@Z U,^Zk{W-♿We9~ߋ:ɋ(» ~C'M~14rG:6}v|<P0㋻kt2-vq,7\ە8w?>ooz87n^3<#n!kz됯幆Xɣ$TICwrq/?N}) 1j ^%n9k|!Ee\5 `RpkVP-9$O^bG!IMQğq`}sRRbqi 둢/@/1R{v5meb[:heE"^nL]^Ҕ´DSGis,8gC3Ox31'ȷܵyt~t. nh}w=/[I ~,q*kEE㸥O\[`Dn}Vk64}-JGX'.&Ek(v0As"y'x+)3(Ԩ=c0Rt 6OaMPa?A+nYg+EHJaZy1'?l&~{MQ3|l+/Z1ԱgGz0Ig;З_0\{ `JNb4Qf^(2Ye26w}㍳׏2fZI'`Z9cs~ޭ~~D{o|گ9c_Vڶ~&3Lywڦ۵q.u/MAm؋ie3kiiiGqVSݶ,i&1>*oTknzZ2/ſ8 }PAw+޻˲ttJ }dÇ|/v@ɿg`"O=iMN0)z6ZP,y<Ҽ׀ɝҩo{Ͽ~?6ۿZju@Sbu_~w釅J7,oWgXYͯ}.ڠT5my? y.M2FNax#ْ_Zn쿗UYڡÙWU_ky*Ń7\=`R``&t\e|#W(wKd96 (0A%bsͱ{x=,7,. l1k4 O0 hPpܔɱz]sSӹB4T8M6໕{"o ^`8NNBmHoFZ Mo[dRYyxn  ]BԓMղDBlIy&wg`wڦ X~ӣ@opMzX!-c0$/g;*CZ~o+y8P~Ĥ2BTf 佥9BÁӳ`h# lɱyZr5eڬ\:ݜ;F-^NmWscxmqo5@6uKHO]0La=u`cExZgcSs 9sl.>$~@B;$L^LͱF%@2Vwuj\c?#=:N~╳3fz"epz `29)QNd hڦllSl I8w|eX' 6 ؗ^ ֻMǭ㒪G3|xëW޺odg6c@RF,(gF4tkiL];I4xTim?ʸ4n<\™XF=r e}78ώ}C! ?ENyaQOyO|˝Y[e0~#O ^Zx1cpƧGXz$"`8Ys*^ʀ7I}&_bM!41})a(ks|͸zTۧrW#a[x>vr y׊})QDBW=|rfa !։%ջӸzTgA]f55#o5gO6L7'[װ iW?Yxk5IJ%ʣtUV7^剙fg5{P ڇiǺWY2R7Lj{X{ufٵUI|7rw g:6˾4F? רL~أ owrwSN5]]΃v[g5u^jaQ/>}{MtfrwROt0i^&nZ 5+w 0)_;dDӕn'~[n\^x7/jd0Ua2LڏQz~vj^M`+=+>Lz܉A*AIj}uyl|*hj,^&r v^3l7l0 =X5,=gL{3fyL, /x-PLnt q.2}$a. I +HrXwP@PVh{q.vͥ\.]gC-G̦Tnťmb k,6="&6؂]pn;&EiOH K]@rG3M=i>TYWk>[q =$]Me&o>/ 2N.꨽x%TԕemЎB^9iuˎ`~Tsa 9lXr77zZ00nq{[[7wϿޜ=RorAΔ{|ljMJMpθq׺1Om0гlŖz(D fbbq O^$K/~'g1 &nmq_yBs2]\74p#iѵF2`/@ yi<*ձxǨ5W-;6)Gvadf>[a;'1ePc|o .m2FGF`dMt tf;pLN^^>L_z~Zn@>sP"zd๯ײit Yc#ߞ!/?c$-ssV8T<%PLg]g |֙x|Yq:ǯnu6qsljX˻|l[;gENjp)?Q/sכ]՜}z&4fZ9?vslʿ3shޗLZMUXi!r gg'8X`vYr9?y\Zh6yGK#+\O,dW3r:6:*<}!Lo ]mǣm#ͱ2vui -b)h%^G>NDrRb WHr?ҨhQ?4N ]r{WC CϑQ+\z.Od_o?*i x67[GG6t#@J^vMc_bzy{hz@XeUs)$ȐV#$ϻTLˈo7]]+{'ᩝ9K]jm;oWDzQ0Niڸv;.{LZW/K_R[죴ZЯO}VY.ݥٻLV=v֮NaǠOqxHdT>& @U]/`I = [(n-gΜI\e kiI& 򗿼.R{ڳ4' uVg}6X:նە n*}W5/׎kּ hvPwO6?3?Kjv˭tͯ}PAykuK/=hArkS^yGM I6q&̱_j˷2`YtSck/ >^,jeO 5vʝwwk⑒:ziғSFf@Ll³SxSI|9&(n>n9O[ӳs4o̞k[Xlmq60DZ!l49',5w_sͫ/>lNǖ1|cg&5`$/Ɇ9e3sbZT_{0 mӆ9Zi2>U0 X:uү?c`_~3Qnjz%ԦO"\RbL9м'G@~D6cD C?{ceϬ;j+t)=)JIk(&4cS;ntM"yi9QTXŁ4\ݴG'*x=$!!.lXXƥc6񋬌@z^x;|~DVMNQgj6mE.cLcbA%K)X1/sT72yy4y{u}9+ !,#L !@op^[jg<@ cH~ /kgl!?)ˑ!t[M3`pco)A46[ٷ+=Y6UXhYYKa{x~ I]6+' "aA΍5=~a l=:&L>6ּq7lj ʄ5N4o%nO%h3o_c>|G0;]s|y٢ġX8&KX| ng=s4 h Oqj3yfεf|mXG]@PDŽ0K&M}uo2G/~j+Ce/l۹~E.{FvvKZ[`LX]r<%Cdgޞ/T W~򷣡L[1 Qv=P[.,=UOug~=0ckkVƌC%Ũ2ʗlW]_h _L˖OQE۪[G]1E妖4}~V>݌TXԺ^AC<4**``)z}zʷľ< kD^t:r[KQ>iLCi*?%rb3O璌6^P~"(!tͮBWdնJ_biJn9ų׶\|7}|Q,KmADke<,dB:_Peq#L>X \MP;"s~PV 'K :ןRYZ,+W""s+ۗq's#k4j*4bx:UaB0δix6Ru }J̑6wi~ʨRr z3 N\b@(Qm}y$&yw 0EPۑP?.uO _qUhs{8#Lr62~-< `I3ނ,wͼlhm1d!)ktf6oe\мګ5wmnɿۿޥ=W?K}__ Uﮭ}y> >L'gX?,aTVM\t7\5펓tQ&/^xz"LV][}uwYμW,gΜiO$ZVSR:֫{_L|iU}jwyѵqV}N5QyUG3nP2u8l̰׮P#DYDьnMcEon\rfyvK ^L)w6cDk;)=9<:AФGNlVHcu<Ǧ)L@7\4k*斩\LeN6;Vnܥe"6(ƽ7#/mlwPyQ9 m@N6 c:c}CjqK5|+ \YC:(j#ˮn(j\^2)Ghܗ͓&|m DtnSy|B͎ Ȳ?BvTvx?2oA 8cEPkkxh}qbNNWIRQV4.ycZo`Mg++n2 JMcL~ Μ]h>_W&/ڎ/9"iVR3N/#m> rw?Fs;!6ނVV9tͫȿ HuuhHe 2J׍ ]jmҷ5s57=1d˜'toQf K 2rc 9}g[0 )˓$V"UCR5Ԭ 8Q]`~&GAY|Ncj+ٕ-CNx9>YtxdvSJ ԕ|bq?\/G̹x `w2,2xQYc}oamM 9'P0QM3rȥDm(E(ї+K<X)2`'K>J=80>kIAv򈂇sB{1=D 0m&o{< X;hO~[s^hI'&#yjR{- ]"t36?<2d% J؎6vҧ#凙ҠSZ1=i]iX ȍ}}/iFi86xǓ{b7h7kǫv9bghƳ]7nW#38{IToA ǽAtǕz0r?Ƨʯ'Ǖ+I4޿}FIWwnOg]4T^OO~TN*[߆OAt}>ST}u,Y;/ʤ>&cX+]GSjZyԴߺ@v /-2*ٰˁtݶ~[KƢNls KVe,鱡M+W3w]veޏKV&O%{^qU{ 0YiWve8c`)A BW>O `>9~H~[Mx4WUuVDcT7|;w}v wBY?'uw}j,tm^cfʻet>:mۿjGٟGA:ղʷ˧[ֽצ_W~yGN+#38dC:U{[><;``F{L:f-=qd/! 1aQ i`։2(}BLQ݂ظ7YLqCn:aN ey1@D FS 162F7J3gلd3DxVnNAAle&e$k)T6I9 bT:b.B6NpE@l`dAIݐVn,PֱŰu>Q(P(FKIp]9Κ (RH -,&Ž~:P"B*H`ЂBH cϏmliOl8 #+yxP=Q2Vb>ܓ>+-CC"pzatglt3vfufwkDOdneܥKBLPQnrsO7/|sm֛ /GͲ]S6>[+UIRT ȗhKq荚eĽOKc t?E&9\v v`6' #(q1¯,{4s@ӏg/*xRs2~=7Fb~oqsu_ܙSS<<L3@Jw#~Mr3nFuAPkz^!3x)x&6Yv/(IWbbCū?y;vyqs6@n)lGZ>TcFPC敾+7<*~wc^s|Q33 `'ORv5zQ3r!x%ǔ:Ѱ7¤I7 Q*͠.gQË8 vЪ4i'#wgLnA8kXPn}}GK]@!{6'4*D"-—<["e83*ҝ|K=__` 1Z,a_z v-mmOuHk0/LcշT$r8~w&׶9+"K[5ksW{0o<8 lJFwm| ųP`M/d5~4_VI/TG|0)w7+.hƯ_jƯ4W_of֗saX285㻊kk1~}~[<8fyY+2~T哯eMQ! ̾ }iȑg?D^{S:E"2.wN=|7Ox@G co𛬿_iCyIOFUsi~i'D}ޗu0k!#9M_k?ͺ֙x_C2\.7yL< 9\%T',cm:XF~,}]cS<`\v4Z ̓.:7 yu!!CKD t&]ZlK:zƭmyςid#u.֖& 7޷%W}~/M's JnO1;zC[ȭ  S/:?R^u2chg׈09f zWسݼr{%.vwWO&y&q(Wf@i[,46K8VEZ-h[ GwZ^O:_Ӂ] k mO9%?Κp4Qz /:Fy0xEqL*HJ>S>XykF]^LnaR$_tF }rySX>$yIO"H{6/fёOa|*8 X`F9O:hվ;)yQ{?dx/fQǾW] I\Itڦwϧ_ mvTW뷩J?*h8Vxwy2u?Q6Ʋu|9ܣ]Ev~;v: 0Y~&],UmQ+YaOWϻ!A4tFdT#+F6D>f~۾LUoa|doV]e}7LsX-KP>WiQғ0Y嫩2uQ#Y>?' e]A }WQOI>ԶzW{AK\ܖ_n y#Ҳu]}^Ԝ4c?cͯ͋nUԗۨ_7,-w;w~'`P[\\ HkZiy˻UavyoP+OO~FwnTZ F)Wm Lx㸀I} [ҦAi;Mdw,5:`?D[m$&,Y6`^@*K;=ΨwR0[H n~ pQؿIԎs=6Y1n4nhtDۃ l7e96Qgl]}w pLt0ь2q#_~A)s r<1&8ύ\ǿYއFZ^m_l>eP`hw%XXtFud;%pO^~n{ <``jD~a\6ڷ`Vqغ̽*LRˌk}|# ByAD;-ǽV[z~//J;73sD'$6Gs/]h4K:6j_wCx7ns1ǚ뷯7g\F$9 K;[1?tSUqU3݌ȦYgQ)~ ,3 `opQ%Z$2I{7c'b1TK[ڧ?ʥ/(^lm/+c'"D^AhcF o7<H 5(is v}u̹3y^βwFsqH|Q>rȲ  XI\\^m^X/q[3첆tMZEU.Q3L rYՎQQ ΫRZ䡩i7O|~|J2RnSPeFaҟ#~eyL7 қ9<Px],~9oTiu:N_4 ~pK [c5*csEID@t@dž^D܁ >1>U`-Oja2-oj+H&Mږ5K/{cϐy7Mu70K`V⤕_M O?K'K#93f_Iq.Su7Lٝ:@ɗv\ޙj󨺍z,pG k WLIFFHg1K,# ,k5|Ncm-ff# |g_#K Vr,c 0~n +5Eels\݌-]iv.ьݼϘ㓷)mVYw!M`G/λ >0Ub]7|>J}G~;T1}A[x~䚾=n27omȑ;S’mͳFLa',oc;{^f۠ }%zr =,%"jށДi'z[sRŷ޼\30Tg]^Ϭ2i`n O| sgek k/\nDZi.kanb["x7VN.>B䟺 r6x[q@N4  '5LJ4ݼcS(qB iaHewȡ vCEdPC#?N}Q,H/Nˈ+c4g5jyLS2>*_2,{K.2Lea2DmMZ]-u+ʥ#ͳFGs*ghO36_La{6Pp-i(C_wHw*iecҷ`c,X̵vRGۜ<v؏vjQl^rAvmӧޫI~}Cҝ\Jw_Q9 `R]uk~6Gtw:ۦ{? m]W'yWʯV޵~Qy$>,uA{tIm׿_AF.0Yi29̏|_ճ˺z_fXj@2:'>񉷑ue1ya?/ew+nY黾R2KV>4Yݴ XRn?v*_-Sկ\jiW(j]R>&}^k_}yum{~t}[L S^VI?"۸c2]' [lM`c _8fI:hlwW9䧽K~ PWPh樂)A >F%[&/6=nr.A?̷%։x¶1^i}7^Xy*z]W4MUM]sfH|1/⻏<<u.M^u; _xⓂ HhBxp (4oDc~ yϧ92yUt1L=$qobR~̏aY*RcFT_=Hw5(m<3VI52Q&&YM*%?5ϻ|Ol63B_E6X|8Ff>UIfl^1SgRג#z(Ag<ƻ<0n!*"c4 t0hE}XHUL dl0k| hR">@T<`qiC*MdFNvi*:R[ڷv,e/oMW}>?iuVyYQʑ|,r#}̝yШ⡠[F|F7tFNY*\cN+g0Gr36wZςPm O(ŤvSm}46y'I۵6;j>~FDrIЎ}ג 2w$q^b V"c/tT DZLNgy| ӬSs>gOѩBo|=;~H99ZVQ|Fѫ˯+'!S?}Fv9NvTl^GtV^tq=l?]j#ލz?]0V*`OW]~ID&2S뇕ݺ~y7_km׽@ܿm>+ʰ߮w>AnzmSeDq?d{t>,?Oe-y֫ArTAiLW8m LaԲ{,z 4dխwI~_5_*C7oi^zf4'x(*bڢtY֯kakOy׏Oq9^D7 q]xC!Wevf$H'oܺu+EfT7V cw,g {w)@$H0 L|F` ݳF$:ƍx&&.-RT Mwa'Av-8I_,KMe]rGnkswAp܂F^WW@GIhL#e_"Ç|? js+=2C[ۏt}F6dVQGkʥckA`:aC;g홳7fp 8v:ȷa_`Wҵͳ_Bq@ ?26Bbh"o6:,UK%bڍܲi:.)Oo2}G>?OQ7v\(&jfv՟Y|$U@QGTWQR;>F;wyQN;ȳ.2@5O9@?o5ʛd.,֘9zTm⸓O O&|9;zm߆04NkrjcId#U[f0NWo6jD|]m6p Hn8~ڝlwQW$:=2 zx\[KlO2/wS4C(K>"_خZ)/ yq=(c(# `rsӬ .D$UTsq(&|U`94t0=HMl!&ve74¤b );ƘG7C[ -ILl~%RKg\'验[w<뚐}:c˘ԭlv \Tl$ώp]|g{Y-YBP)~Q-(|=|4EG-4_!׉&| >XV"B皾m؃)boz(.:8Od~+9n<ߧf'X'r4ewhF^-aRMDNu5!}6Tqpba//> x2L9|Ї M] $cZ_hW'kqKۡxwF^a C>/&@Y#mNU. ˼BmaIXg6%HPKyV{##gM}X{X$k㼷fsUQS|1p`<>?]wxCsWF|}|y;͛ۮ0~یKw:ňIQrA-m}"7ZK2VeLK2T{Smَ?4Z,/Яg{ sggx-Jiuӟm#݄Sa9M4k9GGWIچc+~iwODHx&kav bRĔK+%xrcF̸L>˗%5UDr'EiY](V;Wcs_y~*sZ>u 8׎22G~G;1E͏j.{Q0ܯqzUƚN]*K-; *BoT*`v]tum}իiy +?*]qǵQ~7UΣxPaʫ̂&=SQmkڭ"hMAv^tuY/WO=蒵mKV._v~.͠~Y?m?ӟD8XqBdr>C{܇<S?S{'q# {';اAW09t9a˪-K:4֕~s=M*`gMeQuiUN?D6u6}ײV֕_J7,~ZWMOAWPi8w_̣! ]K? Ə&ܹqiҵEej&k_LJ#x2v+2t5?()͠ڶ_w|jhǧ~:,Z|_u_2R0~Uv}~G4SyVkt~rdz |X_er 6{{5+}&~2MsXw?ǯk|?oes}D{]vWdw8{E&;<܂cc7XdZn·g4 6J-ltmX=m$_"EfCh,sDc/)X3?L`)&C:7Ryvёy[]w)+N,h$J!g)Wh탏WtOeM*YV@f;]prH hXMՇA͔5zR6I؍zo@ @Ŷʅ#cp[T}s|oLc"fknY84u`n *I06QO3͋jseUyyDv3r1{4+C* 8vYf+Rԯ\]Ƈ\umOY:ա$5r?/\beD۾ЛHK+7i7daa#w9/g+X[FEV0ޯnʖ66J;8QloFq]o$YӰq˼˭v<@"k@ @e9_ |E,7͈_((n'^q*WXѥ~]]''8g \],# qG!S@D-dt1:ܽ y*o}o2o DK zfA5y]Sm҂:)Ev(T**kwזao)"sHVEB^飽'Q! ERj !s1<Ϊv?-ty#L ~52`[1,)h19(U)J;{v0 C|92GHndhgDo35!TC */YdeQ̺.6{նh*K˽Mߔ%Es1tݻ,eZz_T"[}0>SO3TepʍQ&^B<] C1ܟbQv]?iq:,Y _>(b9YS&WXt-͟c!z}۴tnr?|es_d uöIK4/rңP {s΃<+1FdJݰ~?G'zPް~c\a?hQGm{|~VkZe?lZe'!S^H*I&Oʶzy},jղA:WWCSiWzR6:|d_O3|}9*`qdo{qF?]+I#]$U:[|Iy;Gg>sO$_KtP2A Z˔_wP~z4 "K( IQ& da:odk?NZUxۀɾli:y-P @n~ݺn~>}/A~ ~}~ѕiڮ/_IH^֙ݶzjDJ᳾*+>/ߨI͏Ih_?gfݠamc'=G~GrxկaFӗW9~ƿwP}{ȧ,d׍ _ٔa3 77<5[Hΐ"ꄿtYZ E#7arp68j!78E$O>(C 0QbciKgvx@)Z81lT>ӹ9//n,y\eGA8lǍbtDPgD3d+d)`>ATl Ls$.L?w$w\@\}f^|7ɱ7lsQQnn+GGGp1P];*=dg]r,0,jܹQ@^y^qY΃,H|)B6S?k1Rش9~M?8gkLM|E_›^wD>uL3.3gi]hǚ9nX&k_X,EWʗ9C>z1ʤrj:)u\z哯tk?AߧDy濼yyP.~F:ma4rrO5kd=X&5޼ Ȇ61AòΒǜ?!Ss9 4ԱvꏶþXfaj^:e[?NJѐ&1S?Δe:7799lL zkv.Q\KBÚQWW6^]j|N2_g}XU)'wJAEa{ /kE2)4kY/O/arri;7h O7DdrMbDXA0$sxZ:ȣ? snyYd҂<3&/l۬WcKyI@Swn4ך3D\A9{$}97Ho13%ZkkJEatXNYh|ADDaSz>{+v]4Źj2d)4TҶ =ſ[)+6q.EBQP{]G&j6D"SYz_|J$̛sQQ(9F^Fbo:+(83({%ߙ],95L5KPNC46MT_N0:By Ӫ]Dmi?.i}мv&)+TywN?o`cǎ+`5Pa!<"(i{D}>-nz2 8Ȓ ̍YxAД;_ h; ï]p7e8s&O3ͼ# ~TR*gc**s69<3s>Iڽ1VIlZL:=$xQa g+jQՕ$xWk0UJ{2U^ߨ2 Lʧk}0yi/alq~<ҭ|m /WQD;~Xy~qWn8o,Ye,+ytu< ~Y?_yW'T9}~]au}m;i}C5}#LZvL GrK3 AQy $ԧ?_?+Gׯ]uGt/k_ia}{/M?_ Ka4m,.A}hF)ۯ>nI;H~ku^ܸT @IkkzkF^?~饗/}K~ӗoTdq-}Smӽm?/ӆO:6ݲ~~A}y>~Awusݨu}_ϰT`uA?aqvL:>ޗo,fa,iFnPȀO$#m:s!Lথ MF lܹ1wU"L^NI.΂ \.M9شFb+w7\?qT@ĵ l%fhMD}Rpn1|XBv:'m?r*#!u0>,]UHVd=pJrLZvi&vB&odDيQDjZږJU*Qvn\G7'h-"4+^4Q&4(]"\|&ךW!J #ڿߕ~ rah(dCPg_Q-G y~lny>&XƇ!hFc}ۿЗKH[ڗB(]]oNȑf2 pifA %b;'g F*tc|V&^ѷӴZ d"l5袖N]ZfX ?KGm9=Z\u@3SSӕ-gax sj(~ >giKb k5bo+M+RB؀|J} *hR sqHv|ʺ,NLs{wy/,m0?3;Yg]86PgY3yk?f A(-~.ߐsQX&\SmMǣ\`@AId/dQ_91Fnk_`&X'47k̽ U3YY3Gslvy:>'#S*SiM.MwԻnQ4႟iX;6:-(ae/!8o \H)i&O>H8ȍ8[Ҷ r"w Vۖl.uȜLaKPӵC):'r)dn4O|j"\ssڤeɈGiWNt߻'v{kC 4S:U|`1JId=Kky`{֬QLLfˌ| a.l",Ο<0fV' ZЫՒ,",#S8Hpgla +}XQycJU/lɐ#}ҬHW%YRgYn(X..QAgm)/|K]sѼ8>>3=r[s})$@DHn~ﴛ|h_$xwg%m/S}QkEejٵA\!0OmZ6y[ڱ|Eeg>74Gy]~@=]|+5v-O-_~x7AIdn&4wQ)C@ e29<29v/ DG <-Pi\~G+(yΥXeruE}syM.| A }cK0(mau'k~[7?nXFcF~m_{|4y (u6{&?fX僮~]~Ayi*?mn&'յ߭/g?o0~Ua_mMI>tI{&Ӳ~0ww۟i.1mЗFyuTc|ؤYij޴ګ[VwQ3Ү,VDoݫ߾[}_P>A .io6Ynڋ?b[<~_e/ȊtmYu'pY)ٗ˱[׽4ݲ5oZ?ʣvTFA2 ={i7㷍諟ݏy`i ~Xsv?ױWk+{/_KV*g}/٤&k[le!̲l 1&:GmufsgyلF& `V`KA0xG r >eSn`{p[D*D+n<%V/Ff'3\ LPt{> >LrC6#F[j*XS.P2h A-\c*qlT3DȬM 4-҇wi1яʎ1*S>ԟk J1mѨ *LLwI[ ux Ӡ9*>Y5յq6M]I]]}&&&T[\TKזVI$EQт)ril{eDh\Ey5g XQ4<&XG\r|G #ŀE6 PI@rQ/7ZպY;{2q.AY *G}blX8kWm\2i&I&"iA|vЍsՏmzܝl4yi{|w;x:&1'KSYsX\0iI" p*vmIKLjqT jC% yR_(]1>Ps]11*Gïw뮩9l J0ˍfӀ_cAGD?{]Yz]컊<'J ؔ !g؎k\"-j$m8G0ҝլ}ynѲYP8ot)%ψNiѕ $ }JY m\/*[#'t!zooe4G6wݶ]if`F8kTZ&ElKv#D};?gc,hЧ ޛx?mys._ c®t̑Ycvq1cL_]n.17t -JЏX+xni3Zߚ|o 'Pp X[f.G s8+5m}#z ? 'mʗ]JeNU^mˢ ^̯i%AK$`A4vp+[>lme:>/x9U|N*=*>&͡65IϧW=0<̃tT6ajQkң_ymN|XatyMX 춭%AzPA:4[}tPݺ4O˳_q=ܻ'?xT/sOd=ݗ]ҫ&~hϏPQeī)ߧ>dvdw<K$zuu?^~lDIǔ:u2)>LJmsAQӃwe>}?ߗ8xtv]l+jii)Gm 4dY+`2?O3o{A׮]}/AImFΞЙ]a>+}?D/;(/.վմ_Wat߰Tkaac٥9>x4'COqX}Q06;ؗ+{>{?g藏 dcPN7$Q$ȍ5[kn޸N'8bUpq3M7tv#2Ĕ% `3JP$Rmf@0 Ϲ<|7Sk3/H͘bFfֳ6S,Vʱl6)# Q:ۦ0E('YKח^_iYhLhod9>Wqf\ޠW(`ڸ>θ p)2,El0'N_x1AK,PD0ﺤԷ~2`F>- .HK.gA?*]]= ntoK+k{ʭ%dM\Xu(b@ :#5SFC@(D/G֖wuܫHBֹY1 cI+ .%ۇ9vy^Ǹ&;"X9d^]]N` Kd^c0~ɽS&cK_ď<ͷYo=)?1\ hD_og|GW`}FQ*t\ӆ>Y JD5@Jۼ7e^“ÙD,YH[;ך<;7kbk(WY{Y%xuZyR34RFkqsh!g >MzvK\_I]mxc]xeI"xUx+2D闾`~Ef堝rg8O zѧ<RV0=ZZ_P64)?gL/Hq_bqyKw9Znsulu-:3&ʖ@eS:뵳:MYc |5q&g;yd:-5NR ؚNk65¤IA$Z%};`ko-@ G6d ,*C9牺+E^guSmJKsLWk0kcVV5&-sZ(ؐŦT9{Ů٣>:g#~)AvjG_00:",|3dƌȯwsSKҗQn%U/2Nr#cz\bE(*?{XͶoKUS1d)"Cd.-4JԭNw  J'R$xHd ^,$ ^P7!nҶiBc_ϩ{޵oUw~1gycϹk}6c9\*%Egދ-t+)zr쥌GGqh'}T,:p ?2QfȰ̡bL:6LIzht o;=nmWϻΙIB 䋞P}*޴_f,)h:sW+ɸ˳B8ڼʵr\޼;ۛ&OG#0)Xيʘr7L+brz\7ILW_}xxv|5Ϸzge'k~V|[_tϊϳ6gvlʘmm~V]Kk m~^~hrQ],B<[]yytw^YtӼzܿ{& ޮ luV]=Nں'M|['eu:g:nLϢ9o]K2uЇR{,X "e۽S)ɜ,㬫Ǫ^. ~RJf>7`r'["sVu5`Rk|`ЋVW -,x$8O*T%[6ҟ1:gYokX/^x&mo=E z|:ƙiZ|fHϳ<XcUWәn'յeuN|맥T׼3=-oڷtm~ɯ 0^{ƍCSy6b1gyq|^juYb?OǚlVG[^y;3,|09 UoLg$Avtd8w;q*6#0Ɂ1#O9hvCpW5*]ϓlGEPFoQ^@3h9$'ܮ]Tř\p(knRMUqоB+t=8yl$miCL̃~=*W= /ȌTezM^<+6{g'PzŁ`7x!"(X?*: 8ZC'uz@a,'+4`\E=k4^y@i̇L4h1B9!Gx~tŸ>/"؏};z떙yYr lQP9LrS+ x- P|jh^~{ie{xzek88/mr#@=Bx9??|x =T|; 74KZxEH>10 ! 0Ob@|uxy%{hy0&r5-7=n@o4^&!6&Z+K&且 {? Tk+%PF˜-6x.t./}Xzձ9FdhR82^U c.TcS׿~<%m+*,9 1g{66Wa,`&=I"6C(b\ZY5Ң09{_pEQhD㞨E:y*5v&J:3k̛s&9PIk-k@vp_WNc (ı``c+,C^7X3餐^@Wuw_BB5 (oXSeZmux:Aygc/n9/zK)#bw ~q}pɃ޽᥇ܛǻaTJ= @~cNo.gP!#٣L=D=Qj_f(K D_<5Sx U< hlJ}ps gg;S0 |5^10-10^[Ŗ(`4A,\^y=taeAGS>|^pOw\Wb{?Jn_{*`;vﲚ{j߰w/SaA%p؜bS=#{&x } F?،_Ι:0]ٳ"jc>y_swX&}v+2,{SL#V> [o2ک?gnj9 (ϙ2^(* ,`q>ir<64m&l1r/ v#;Ji[i̡Snu m-% KԱ;:{8P[0oa Kz{eܫyS~ڲ(=@{C$Ϭ꺤cq@(bIae]q}i:.k>3?`os=>s+F(ZL0&/{@ ڀ:_6H]}o5ͨE֎gLSx60oѾUҷkk9icz۞fݤ_zOOޢcɷiϓv2p$坺8if=/ݬu<,>vm^yt49Iz?~xS'yhuFd-:}پr t{V&"66Y{ 5+x^}mwѼP{L?euP!kOxyf]86=L.#W0Qb&yWM4`Rԟ_Vgἀl7 0)2i[5E!H> uu-`~|^'ik|5ݤt(Y}Nz -`rsu5i'5iںyltƓIg)H:]2]餛Tuu?a;Yfys5>yMw87m;쫥7멽_؟e>ϾiΔO+g[ʟoGwB+t &8ԫoz,9UC}ȡ) D=QNcc,򄍳e3Q4'lO k8=0fKLXN u_O&|8nm)p==wF] %hyƁILl٭qGȮ2M>TIB8>@ Z'gpua'nyCYxbACicZ:o Gmi@6!"X :VW>B1un#NxF`Պ2A-|8&Ni(܌#7hh> H)dS,B1@9S ~w ؛|Uɍx}{x;'kÃ;o7_y{xa,gG4N AqثX1Wȇ8 !b,txjC0aHǚemy6Wh#ױK`].ڜVE9G(gM?s&vf+΍h/L} uZC q0PKO>>h\G ;6e'0vx|\#p _;wvũ.@ko cC TCIЄ"b/ /u6o_پü]eޠUY.j i(z0 qOrQ6@9B˺3m1"1챉cd 0q=L*cȳA}`ܟmyLUήd~Q8"Rc`)[DqY Xvh'N[\AVN~2c#*ezsW$& u#DɊr͹"q.4`_}4{aOo=bw\'CDԹ7 PAhK,1i ^.~cbD8 v&8Ҵ4T$FhPg{/Fbq}Zc mW 6Һ׏G(/s: 0(C+<?^}4|.ރW߁!rt+ ", ^fJ|+RqCjg#R&±0m{U4}Kzf9@5l `r{~c5=6^-1Fd7cX)@$]Gɾ^WMGZاɧ? Z@FUا&1D?nZ4=謫3qu6mxͤIekiS6|5wȘe9O-Ϭl< 0y>[DFAEg'L'1r%__?k?g6!HsEH+2PZ׵ ??( _0CX>/s< >i8u2mm~ʄk`i<oyy+볬6NJ_O.k囗NJ˞xGУϞga?'-o+UڧM~K_^y啨K9vX-c ig7oumږ/O:tyl3vi-ny_~g~&Ĭ(v2m?^|նlO[ɶne&ukOgcoo{?7IM*S?<|s{}Oje혳Ymu~yF??aW>z# =! I<<8Tp$6*#^DC{\6㐔H?d܀Ujq+O0gO&>`KA3tAm mQ~ ƻayo{k҃%@09@C<8p CCkq,{8C&*v3 r?A>@,tB@ljiVVE uH #]9|#~M@ɤq|X^% <`C i<)8(VH1$\SwʳārȢsSoڪXaw1cllK[/ {Oֆ׏{2Çͯw<<ݻjr ?΋'vw|p(J6<!pje7]й,ԆR ,w|߻ w~;-ܼ5#]p\ N<Ф6OU=Nuᨺ hfԟs.ׇkirzܽh`8yrjx芁6=`w6@IDAT!hYb𔇼ä󪝳π|-*kz/vU@9В.^(W6h]6"h ::s=zk뷇W#tkK LHE U}}8M9jWoB#[s^d5h n8vI3f^  %Mi*nJ~ca$ .k˵=1s ?^c~YI>Ю0/<}/>@5L>=JǬ;eq“kSQ`{ZcͷVJFB|+g5;r?]K^M~52 Լ/cc }| #AuV"m+sc3vyeSOC/\p` 1Ƽ;1@zp(鳼\Y:.s,2eb?Zzv́$1g.P䞹V{A7~22[c+9s.! 2'uiгUfP ,sM T{<Ϝqn]ecnvO|K{{gc͋1 ^t7 CccpQ?e:~-Vyy?=Q(?]:DGu,Y*Ym{^ 0h ]φ;Z+i> ƹ6/R5+Y7G̩}1z8_.z*F!s3`IyFy g^3|O )tcqT*0/}KNƽQ)X4T _"C@5{г\K]\E@k/oLc-]t<)˴Y5з}=o;k>O^äqY֖:m?,-m]G>"z,ϓ,,_d\y0:A8yv$xrYϬ6m]f0 _3[X>+r3;/_'ў4Y{2znc]}'`R#FImyQpfy槍]g\2馅U_Vy|/;ڬrkbY/xWxk@wF|֭[Q.%V/Y6 警Ap}7گڙ&1Fqwj|KWg32T>,gշum~ZnZ:e볬ٟ uG9tg>˜˭ryv_PKW׵̷a-I,s9:zӘ~^N pgƙŧ,<*7رGI4&ɺ0`w˰FnsĎI z<8;`bw?xu ^]Ed<|R IlR($/ S?ټtUޡ`HO/mquces!U6xuՓ*}_y‘\\%9W,^$}^h$C:4;@JczW@3<^Or8YI*)c`qR xH?(iAv\U:5̗!ڛ<8BtcBHsRtُ}gh3 (NI:B.A&e˦9rd>N2S,% ( ұh^B[O.{=5(ށ=їj> ҃+.L>G*8iaڻQ ~ť;;{=aGcu3347zo$̰WlADzd1eU;3h:v"kށF-$ 's I^.K Y(ykSډINuږD)XGTAE:@>OmI 2_ kAK|AǠg|bg5F}Z,ˉ}tc@bδ$NJT~h {CWitj]ij)5:+.r=۫Z6{7I09vNAvݗ [nB`)5=AdG2Zt@J*`N8!EF["s.OH2yqm2WejXdWȄ}ʎ4tep"u.?5[תIT;k?$^ԮxcܵI{3fBfТCATڅvN'{7_re6^@ iJEL}W #E{y^|DdyC9U@=K.O[ @H2LJn. v!9;zh~z&(|e :,^,<;DL5PҶ1DFyzQ+ TFNAt́^9O]p}0|x*Hݷ@|aS:AM.rG QPO%*v볆q>Lk`Ud'Y@eGCc>Ǡ&KdH :S=z-ۺ"zD[J^F6> O_}ٟws,+J|ψ}>QIW x4.IQ?^nKŋShCOG,PҹZg. x. ~-iᵙAu縐C;eBH(I[r5BhI-|;f0<`oZ)h;*DQ{[{&8O;D8O{rޜncurz) c`[.(dzLy1yGh$+6x8GrWaCk0O+=y'hٖ2ƺ2S=X|{`ق_7;L)8[m8K K)~׹7{g^+L>]WҲ|ӂ8'8ǘwE7&YqQ=xgk B>\f4z|.#Ë6}Q9d`2uqu:_mϫieZ]ȏDqQ^P.ntf][\OTti6tkHwGJmbkLO2R6u[^=$z-f5?kdʑq+sO˳:$}YfL#&ҘX#,OEP˟rmi5ymEk2$]˿|nZ>3nm]6eyO[,ϸ_4h'>>ߒ6Pa/qʲYs4&NP$ ]Β3_[aC/dHovǜ#r=p;Ywp/kf RɸֲOS;Q)js:o<|^f7(vJ3cz]aLY'؈s6g 薮 E}Ym9ŦKB6t}sX+_LMU| \;vR[iئjgA7Lo .Aa4Ả{j\z.^y=1X\XF)P%mpH]y߳Iԃc|f [OO!eR*貀Wo`.?םVt5^Jh\ e0ޓYu|e*뫏񞵴>[vW#Lxtu(?zCXS~ISxhc?$/WS|vІ}ZH$ͻ|Km]3O|va xG^]V/7OKGÍ{&ɫwǏx-cgBd%Wu+ޗ_TKc܃ѳzSc){Iu@zL5ܯF4ɘO٫Nz W8x,VլI P{pI[m!x/;^KI3Ф]Yݖ~<^ݦŢ^E4$ދRzzg;!/{8|cH*ψf^zMSKϱ;@36<;h L&#sztu2jUZ,Y^M1>0,#mvCkc~i.~z9qhCDHz:ڹ:>=r tvmS.!*> X1کkn)eq:]Ȱ4鳺JO> r !۠:O+7na'űevQ'RoΥ?SΥa9б9~'&< eOs }|w!{6q P^}icn)q"ϑorcuoY<5 1ƚdhr`xLՃ'=(<:b/}8Hp RÎE lhK@QVrʘ6k1gns c4R'X(ЪP6Wex9›=?|;0y;Ǯ/q 7=r2y|:m/my^}KרâzLzǒ;9<缼K]~שׂ么g;X&'$獣tgZt+묺FӖlo:m:KKAlN/:7`EqF2M=i'kYٟY 7NW;^ƗZdy{.t%Oc3dy'5,eh|/Ǖ4m>˧5yIi۷Zo;]SG8?#ܴx_mWsL^hyiߦ]m,!kj=X~zO*,kCj˷ K[tɣgߓʒ>iCMcYK7-kie)zX\/yG.W䗱μ:ui'MeEҳOoa/@JQ>f7ɀ` Bp1ɲ)TZ*6'O>(sÁX+*8,<`H<8x)&s[^L A62 8:&n1}xv@a *_c^u- ;pf>']]v"9*&1@᧗}r=Y&7!;.Ϋh2/(㱞> YRrJ,m<Sz_DWax}lsIp$A(JvI4;hOQe a:a3CXXo?lu.mow{86wU:-v'(x@*|l c+m@4) `R* Nᕋץw_VyX3}Rʐ!羅/܌vCaԄ:S;}NtrA;Υpe-s7MӦ@GԔ-쐴@Rt[6Zic<޼ z vz+`ɖRžDlBb9ER07*{^.}~N# ((5~"=hĎ!MzqXaR &2;@O<^nn KZ43G㏝{W.\t0/S˂H [WU->^t(@X6cx)\xB2X/z_\ɲÌg.׏y%a/뼪{ OkXYr?^P9&ы!IﳱO,u5 A>90%_-ׇҀd:庇G#R"{<{ikg1γ(♜АaλWs#)ݼ{QC/ m,2#$)oԍal0/s,?"Xݽ&v͇;!q/rBkY.( 'jZMtx $Gp#%ڹƾJEgz{;V+Or3mݔW~yE,V5Gx ˕[pc>#qcbTKLuWZbqL])וx+4>Xb/W|)2w0̀k(842ɔ9c?:j~ֵ׳H|ʛqg!|Rn;>۞'n۷mD;K93O%&(_mZz+Lh?ڰon-c8'˵{7jyֵMM*$~uYG7f'MoVkmOx?Y:8LMOY$_rvmm>ydaR_4$__ɝkP{'ǕoۦK|2˒"q˿m[H]M&'K=59  x(] -kx,Ԝś`B7xWq#7LkOhT#Dqt i8x8A^Ш_0("0>8|bxm=9 mX^żpC~?l<>V* UjczUz(F994;ࡲuYk<}M ,| ΐO"=}%<l7WZf)LH`(\wTP A@6AmlOO+'I3FKKKx OVIƞf)` tyjڐCblq+0)1peI0Ks}SGCwI ;?LC'Mqˡ% 2b8#ڶfF:2=5\Ʋiz^ Mă\{Wv;/ΰk _J^{RΏ1]65cK/]N'}-ԵGu78'1:xS6ꞹNWlOZ.Q4cqȡ^_yH?m3UlE6F/E~ #ocV߰GIãOkݺsoxUv!*s RP)#^¹.Vq4ڀczxۘW:WmǦrW< Y"GLJ.P|U` 1Wbwx^*=tX&'5$EMُ|-IYЊcT[gbBX;S:VFhc1<926bۙK2vQ:բ iQhLJ&1r1e>9\0nJ\IGj徣$^-E=Wac\wMZnDl6ɫ+e+zdފWq`_${&eAİ XФ^?z, x  ov Q,+OYɱ*.I6'I:^Νp m(bѥl,4f. Ihq otǍJ:ql|v1{|*}\mJτw wv ؍iKh]Fk NIc?JBS fp*{`đ&V9S0&ZFd<"6XR<@S֑Vaj~z3 ˞L_27>;v!t 75YJ-?(^] ȕ{l̡ܔݽ$dU$<3GH-hszYKC݇[ y}ճW *`GKZzC5mOQd԰xm" OguBآf%Ϝc۠ ~|R3Ćz rDO%])=@-Jr6-ՠ??[&WN=ul۰`ʳ\˚g,a=_&Lr0;|re}+^NKu^<h -=Y(oj+/9߬A}ffCGOQ'?O9L֦I=Oj;y oΚe?W2|絝W?IY^ZCG?ѷt?v 'ɺ}=t^#\4g[y:=IoezxeҤ߈&slǤ5n=WrE iOk>ؼv9VV&뱷}g?;cZ@Odݫx ڵklyɿ :e} +u`L&}o -5M-_-{ǿe6|2Wt~ʹImٴK' WekbyjiҴ֭[Q45? V[Jּ!׏uk&{'f8iԶpx3ߖ|̸<8|.ix]]WG]VSGGnMա˧'[iqYWYx?g_z}MYW'yseY|ie_}e>ixR}miyh_0џ-@VFwT 7ER"^ԫxǼssF@yz>00 h+ю`K|+Jn3}HW{X3T<*W@; Ƚy|0 |x-08顰z,Mq1ՓaG@ #t(jsWxYH/p$+h$<c,z+"@}'KUKDΌ fS`XLzO7?Ax/%|a!=r >oDwV G>yThʄ&r tOhM Y @P` #O*ՓA/Ak7G`4?oΑZkT5mgQU[LF5@2&WR&$H`4XgTYb}=,3k̋ Cؓ:oEɪ/ɴ'8"й ۢN+Xi&8W*"<Z6`hHٵh0)BCqNYRa!eڅz2Bڶr8~p*}5{@sdU-Cεltk0dc[9a'D|>Ti,VHP!EȒ*>ZvlrAZx"P'X@侉~$v+PD/LztstόuP zhnzї #):9lбEK%%lasaQ&s͖7&o 4yS`dqA3`#raBFqczG}˟Ló:^9 O/?}4Gͧ:!ܛ|ѓ L]}Oՠcݪ:gyBHK'.V㥗w+7KV02{x|`|ϴ N:^Yyvo!~S@QL†,t70hʎBidM4&o;K9b֐#xq:{>ihxerϡ>;{6vPrͻ/踬aaTݎ4 j㠥6d4oٙ_xkCAugl{<@N@sl͙ W=I~p#cɒuU _#@ۄm: \榝H#]xۺw+낂rߓ!jI+[1r,g}H48'r,ķJ[?s~Ԛz}ԗFʶL(*;wWVC|Ͷ%t,ns@= c+)U3\c׺%x $[J|>B=g5`8]#VoT'Cmѯ%}q蝊'4Vku.fBg~*'’/^2]\5,g5|J_B0w?ssL0oiwL~$`?!Ͻ瘶[%%,'t @"i{%#gbSLs|"g=?ς<gӶ{f|dm3xd5I T7lz4Iθ.Rv6H;)>Ojۉ"իWAdzgu^oMSSoYnm>d|2__M['<-}Ͼ2Wt?KI&e߳b M tyf Y}-0DYLz>r.Z/e92mmwwH۶q҇ua}ͳnSt]2$:l6VOkh}K?/o+y_VoóL텧V/̴rLODem]M2e &zЀ;oPwy^tڏ A' Gs;X_Qz, Wm? v &}'a<) )[A͓LQB|џƌ,O9>퇻<{L{V!h8q^s(pE=6i&>Βb=7I/j7:\Cef iz:3/Ȃ<$t>nbGDPFE{rBgsC8> T8{ l`&B, 9I:20:cU bģ%-cC ,`Qn *p{ +Ul~W3/Kb!ՙcm&6ԟ7(4A~qфM$9Pe&(Iwye̠~3h+Qܐ,`_t;S)ܟC1t\S {/d+8xTlG,?= /,=sӣP=U7I}Ѳ7~\ʸÎѵ糏%->/ Sɰsr4zMqr6^(P|,8)u,ѽyiYФ 7$t RZ : }_a{ e΅ѵ#Xҽ.ws.Y9Η}g>7>G:,N>sS,OѮ[ 6&P^zl!yڄݍ(vd)q V&l'={RW %|ȏ ` ݏ,i%sqAf#GZc( ޥxжkkE =MC&v-oR&Qx;(Q:>׹+3^T$͇qUўq\֕=~cY)) %$4:T Q>eM  _ۅ7P@'/Gso7eqgBJX!r"*6}z0{#ӴN:rksGآ~@pHܞCm9 W拒y%}Њ j3b!ɚbXCPNѵz-Rgiz&a4&*BF u(ř!ّ+LO 7؟u<LTO%1asb9i_7/VgI^-1L{?]&!.CV! z3(Jc?_x啠G)př>oOR,mKRmy&Yk&e]۾.)E0y2]},~Ic~^}NФO>oKW>gf$mӢIoioi4~6_Uk C-yj^ߋs|El(?s?J0Ǥq&s`gu 02րvޔV6k#ֱ|3/2hoܿM83]f'״S<-,ϸm2Y_]Ƴ꒦0e|jiO-}OoiX?lZʳu)`Ҽ|%930RLNjd]z `wit|gV/MIDATve$>$ݴi嶳nZ}g-cX=G_u~Y鴯I>myO]ַ|\xѐY&:m]$,r=MW^7vR0`oo'˺ޱX?\\bCw\vh&(w t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t |h&q沏kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk`:`rbzq@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@7:`g.Hh&(w t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t |h 7LR˰IENDB`vision-0.19.1/references/depth/stereo/assets/gradient-norm-removal.jpg000066400000000000000000011644511466211133600260730ustar00rootroot00000000000000PNG  IHDR ZNl >iCCPICC ProfileHWXS[@ Л RH ^! J b/ ],`CWE; v"bAAY vM 躯||̹s@?ɓHrQMҸ@T&)  8vLL$6p}]uk@8]σ x%_"-(-&H6# B@3Rӕx'!q3j<4Z䙅LAY,3!˛(8 b[#XJA'o郚<^ VEajA|I.oYmyְidIsu31B5 GEC @1Jɒ%*Q#~> A,E@lq87*RŧgB C@$eH9l'Uĕz Id_g *}V 1bBQR4s#T>#8Q>RY<K@>V! S۔%F0e}f>O? &t#"+u ʼn*8X"ɍQP9o[~aj,TRϐ$(ċy1| p@`l`"֞x < @UdEA1"!BdGG-TO! ^ăђȈ w H#ȤxA0b7p<`sY<  Ds?e9 t@U-n 5@Ce\7adwrTy˫Io3nd<@y$͞>"Q>Xo`9?T_?{b 9v;&vkZcr<(V@8E>9PGxwV^|n/ʾa 8%S̬&~L4|}U|7?=;~}?eO:eB%' ` < D:` J@X Vu`#v`?G)p\m: WO'xz;ABEbX! B`$CR4$#2d2)C#H59B. m!ҍF>ƨ5:el4M@ǡ$.FנU.=^B :a `X*IX)VUaX#Wq q>> /;:?{o*@&p ɄB9a |: Dц b6q*qq=q$G" H$_R4G* ֒vN:IL\BRjsvWL3YlE&G)%Fer'3EbC$P))k(3{7^"YkWQC[^1VCXcIoT55J-.VSOSP?4'&ͤUhWh/dMO//{4ɚ֚M Ú75Z#iԺեMҶhޢ}Z1cX08 >c.c+ Sc)٭Ӫӫ릛[[{LCӳ-ۯwC!!! 2P}~ 9  713g(hCFFqFSK613 06Yirܤ۔ag*2]iz9Sf20fFfaf2ffm1oA`YdXh4e9Ͳيee{kd]66\b{T[IUv,vm}}eAޡ}a0a75َ5"8;n97-\<#~Bw K&&Ic'%/O=|їR SD) Ԥm}cǬ9}ll0p|cxҒv}Ex}^>B X) ef,\ٝU#։^eeo~=?79wOZ^Za8G?iٴNgO<>iy3;g12;gs,vnyf{K/5%i>7..t]vRA2/.:5/XܺcɆĥ7/۱\ky+F[\Y .o\MY-[ݱ&rMZ˵K~YzE`ŞJʅ _vƲ66ʺ| qKᖧ[[6me۾noڳz%5h{]mv7:nޣl/+|_ھ#7`=huPiR7>!pFCGl?jv%)?Q|dϩS&4==3gΟ 9{܉^p"b%Ku--~wPGke m^m#ۏ_rjճ׸.]~#ƭcov꺝{՝;κGWz_~Uãà-}I/R?3}Vu;/$/>gKۗ wto+׋mS_L߃wy>/`aGs?=< ˚v_E|ן/Iy_ 64#3OarϪ@?aQaws[ C m`Wʍb祃c=y|rU7_{-|\2eXIfMM*>F(iNx ZNASCIIScreenshot pHYs%%IR$iTXtXML:com.adobe.xmp 1358 2906 Screenshot liDOT(A,>@IDATxyMeP)"BeP!M͉4IEFD  *I$I!B $՗hDH"C~}_wu          Z@D@@@@@@@@@@Z@@@@@@@@@@@A           Ak            ha@@@@@@@@@@ hM@@@@@@@@@@@BC L"                     @HuI@@@@@@@@@@@5}@@@@@@@@@@ 0                     !!&@@@@@@@@@@@@@@@@@@@@@@ $@:$           @К>          Z@D@@@@@@@@@@Z@@@@@@@@@@@A           Ak            ha@@@@@@@@@@ hM@@@@@@@@@@@BC L"                     @HuI@@@@@@@@@@@5}@@@@@@@@@@ 0                     !!&@@@@@@@@@@@'PP!ӪUcɒ%w 9cLz|G믿ȑGi7n&ͬYٳX[npӧyӌ '=[#        snIK*e֭[geCvafҤI.LbwL;r{'<`FL?n 8hlҤ9m8ܗTy嗃֯_o4h``^:#G:^uڵk={dmӦMf37nL]0c=fC6Xhҥtlݨ A6mԨ:{U.\ Zԯ_?8FZ3{y{D*6mn~~WF/t5X':ӌ         h7kwÍuXdי>#̈́ R^UyAtzQ7|iժUS۶m3k֬1E+(4۽{,z)d]D,t(^{,?-b`LZ~{ウlAzGy$˱r#h/]tp,7Sϕ`8k2iҤ~мysx\<*NG`OZ_ڊ+ȑ#dYf[Э@@@@@@@@L A|Zj* 7(P #A4Ăn\tE?0> fZWufzԩj3j.]j+V٤z6W^^gŌ_7zh0'4_G .l*WlڵkgN8`=uuk]6x`Luƍ3n~LժUCըQlݺ5 #z}H"f' ǞZ3g _|a`:jPB6h;͛gT~Q2@@@@@@@@"GzӶmHP o?ТAH]jdFY 3Ɣ,Y2ؙH;txC fYuy7xc0kܹcǎ,XV>SGY1Z+|E`eodӦM毿ոLns Zpdȭc1#-։J^{!'b)        @^#͛͛oiYL{ Zծy!AR8=qDsw$ܱF2GuT*QaGT#mf4ib~'qUVE}_viذaK 5k4 /w}t%&ɠuثV27]#h$eyq        {VWUUV]{7Z;=xHu7<`5jHW㍴h3X#U *c?쳘jH~LmͅG3i$g?8~]@݋/g6 .4-[ M:`$ SG@@@@@@@أu*U̺uyq Z,YtAvO1w_s1ǘc=~f믿6K."N.FAJ)jۉ{m>UT ?ʄޖ+W.XU!~->Cg+RYfYhO~6WV-[hѢeˬˊ+} >yx۹V wQ5o,X I'hs_|yϥDBs5s;0ѣi7nOu]TXUT\|yk㎭a^{e)~z;eժU3UVLUOTi\~Yxqs>lӽu_*p+P}>znYLsL=C}}3+W#%Jan=/7egαbŊHߕz~o ;s^KϵT? tY`"HNd;ZWE]K=;\s_}onp/Zhc~Wz.xF0][{^~j{B3B@@@@@@@@v/="h쒥VpVZ5>ln;츂Gڐ!C"nݧ~ڜvinҼkW^tԈ#XE]r,pB{~p2,ӧ qSUxU55n6ӰaC_T8qs͌3ٳf2m۶ ㍜~殻uMf_ڿ6eӽ{w7wx5ט*&}ꩧРAe3y_*P~Op=]My睶b*wpQu^|E裏nD_Yo-;T\U]Sn~an?x3|p㞙f꯺3 ~p?m֬ RQϑ}g-<|-@ w/ {§zֺ6p@WWas=; 7]g̍`,4iy|ݗt.GTM&kϨQ-'Ak4o _SK`dAkU2UTdM?p h_ φkU HWRdMIUuݑAkuM07ecTرcëLO:5?u+0,d U\ `kzC/z$k{H]d3VWAaW_u*֪:tgLv<Vk=Y6 GD-'AkR?S;q=F2t_={fy@Ǫ P O>;.T_LT_K R u ZZEx밽TL^K-ɚ^8S;Q%d`9        #@zTZUժ]8Z)e˖٠^{ R5o<~kC>QU)&mܸq UUTU휶p:/l8N!pMA[ot%* Gz -Z4Fرc<7&h? rn:QZՊUmNpۡ>jŊYOd*h:ƒ%K͆ l^FtM\Uu pZUUMWWװxⶂn8 jZޑAkS ZΜ9Ӵk.j`BwzD}ŭP /xTe#FUvMuϥw}AϦ . bt ~s+\ZnUL2g:b^RbZMDZ*T(xh]*:O<1tbzpҡ.\hkzv>?#lmWa\|=7T8Mqzj3o3[/6p_N[8h3a3j(~βFa&muV3|pVS5DSH?Lՙb |?~|LO!n&JΪ]V- {,!0wN MڡFʌ6Z˘lNLG0]SY!X=zO2k}j1vK 럂 _+d[AiUcUSnذa̽~ ZTIT]׽{@BT`ڵV[o/F^P<-AkiLq祗^2 N)77 /Us+^wO}'),IԳޯ ^*|뙡 U-7$hzFM N:`*`+uή EUֵ[+ 2Rv@ݤtIfС@C@@@@@@@_LUXDMWU?w1K5QK/4)اkos: UUapJ5UXbʷ~k+zn۶-QUiUvmƌʵvT:wI]KVÛnPb u-^:^TuUҦ?*8_VVpܵs+2nЭ/G}-;2h={l[V/@$jժU:W'u5R yz~(NWQ(5{& UUXA{tֺ'&nTкE139 M?ǥTQ%\3!Q x UGψSO=5XTN/&Wbkn%K/_3gQa(횾;.\&c_zA!gwM/L8MF۶mM7d>, A%~5D/760KU pZ/7U #Ke{H4@@@@@@@@-@zdZX,YW\{1UUݨJ U^.VhYիW*ZvZ[ I2/V0oOL 2un~x મb sWՒvm֬YFp T9Uժ;z +n '|lU;YgRx5UUEpK5[]{UZs-TWw>5.?G]~ nVwqTBra{T8_?ٸ A5pXQx7^ֲVuW=3&/g^zx+: GݯnaN֩UVhٵVZyl*hѢ/&6ol3OՍڐ!Cb*RR{@/+e_Wu{tG͊sJe:;}27z1E/֭[7IkpZuEU|]h        y[Vosg|UaTE5~pxU eʔ1cƌ Bժ *@_0ApeU9:ujSP86nhT4RhM6 6 Q ToVU@דּ2*vCd2h]R%[{ɦGn23jk^y啄t (t/(Xf,@wd:QzA/@WpOT4?`ވ#Lҥl#]dz9DiK"Xw/qzׯ_3[AUjԨsIa$;A՜S}nrsݭtUxpv!Sig}v*]re;gկMo"݃~EٙWΫASqQUsU g}f$ߤIJ]t}ҝ9N/~j G@@@@@@@;_V8 Be]YaYۤKYN \Νʹi]Gdt~XSN9V?<73T*6嗶 Z+TW@4hy_:eWrM'D2>m$ sS *xA@@@@@@@xۻ|7fڵϟVdv;ׯrJ:.UV9>ŋ?v\nڴi ~iB,&U2e/'l޼r1/kA쓹?GZT?:@hDuϹwBNӋ^~h"s0D@@@@@@@ȣ_~7Mҥm믿LZv#ǎk,uL6-ȫAk}^{q+װaÔR Z/^q~ms뭷ɄL/rӭ[x ~Gt:#{aZl^k?ĭrZ WFL)/Bs]wEFӳӴBX\y_uRjժ1cƌ`ڴn:Nu$'Ak[K(aRZOǧnvDZGa:4W5^o$;A՗_~٨2ժU^TR1/>Lrks7mdrӳ!]2d}i7TmE UdV_6m}'kÇ7UT V^zs>N4ez{nI>DŽIY@@@@@@@cZo;#h^{U>tUK.I;SuT}(袋V6N2 )즦0T6YK%h릊ٮbeLV 5UVuLt֪`k52Wvv9ӧO5ꫯgytRӬY`TFWU=m gtMf ޫ"r"k9B DfL0!u͚5=75NP5OjޱcǨ<.Y~?=u{//;Pu],޽d̈KA鿎2*{8_|v3-JpE{u       _.S=b.],͛o=jسf2 Ф堵/^&S ZkcU-*uYY*څ2.Yy뭷#L4) r0Nz̘1A^U=Smu]4gׯRyʕtԈ™ ֹ6gs5׸`p\# p5TSk׮6 "Q ƻ׭[g_/X)жknp𩧞2=[j.̟??{zZUy5K79NP5A_sЋϙnV/F~A͛7_;?u#K;7n4z"K;Z{çe:ֹ'H%hu_Xf9Sֶ ekNE=?s] _ha"       Q/Z+ٺuۼG ǎTT0 /4 IVV-XsfڴitNGrкe˖GGWL߾}x#yS^`7:ɓx# Z3l(XSu?ߨJr-1bDVZը2k>iƭf N'j;2hPkT]A˗/˓wGCB Uؼ_|lӸW5Kձ5P~g6˲<'AkUvYv`mذ(4N|[npz~['uKAk8 ̍7hOLgbDHRrDRsR^n:~)\Fm'WV- 2$TG*Asw7w^R*Z]Ewڵkc6!h        G ~3&jpywj۶mABMagyԬY3Xtq} %&(H^Z+̩ ?Ӷm[u+{[nn2V^(<7|c.r79>5jTS )PkVVU竰YT0;駟l믿ܡ"B|z ??lMlիWnT5r O GOܬ Ω4x,V]]pU>Je 0< Q iWmU}4nI:pw=k5gv32TUo[= ^HK%䮐U[Z^ ZVXa1zV'kUVs&[ ~=CAdS2eJ}ںwu% ٪N:)دs>RԩSmimk '9ʳ3U+ C7]tQhz+*\[NKhd@@@@@@@_Ld[V8V5E4hx^*hx'N4wq[a^Zk.&<7lHUW}ǃVJt]ljԨK{챸!:`et O0!jB ٪B={4j*Z7^R[o5.JM41nzi`РAl&uLo~iss;hϡ!\@:8xr+9l0УYݗ gຎ QpUWI݂zAqE {$uҾ; lwwK.q RZ'O3<3 /Q3í_Ћ zV( *_~zyzAд]wS1^Giz!ƴTzf&_|v{=oQJ*, Zv x\njԩcUźYf^u/ ꩧHWY_\sML|3N!        A} Aku)Ue˖^ʕ3 (VZs)ߺ`jcǎ.THI*l7_}USt`vΝm86͑WWK޾ j^z+bZ?Q:\ZСC͂ w rk5jdTIo~ !._ܟmN} *>}VZP!>fvj}ϹL26ݦM [?:ϥ`Wv9o̳>kT,WHS˜kƼ\}虢^5m]O0^~}■رQllU~Y~ :|5k,OJ mu~7ZZWrMh\Տ}皞}YfѢEL]Q=*ī0kƏomiUVmUy[(/(\BzKK(V QA: /`@G(TpuC/0~Tsg^6mjC.u7rRT#h<@@@@@@@@` hg2hpQ`ǎ9昘 >VBvn`3o~SJ!9-,RK-٫% ZkyTW7mdTYU?|smeyFs"UgWh#:z bʕIOAYmڐ?/j\ڵkgY[c{Dk>Ss׻`~8оh_9F"EbTչ@^Z}2妗Ut'h6WZwKM/S_īN:,4        ~3馛Bi~Ǩ+=:j Ik?Quͨ[_~1Uk'Md}RAk}N]BKTgϞª ;& Zk\rCY7_z`L:uʫ ?TU<}WX~Nwz+Kx;j}5Uۣ<)TvAֱǍS1U,Q WHNn*誂~ JKUj5jTuYu?4h c년LU!ٯy3UZ>S樣 VSwU|gP 1 "^.YbE*bM4 &ڑB̪:W+Up~wUY߲(V%}}nn\#/r)µ/h}RVr}ߨ~T Wv]O@¿u        ~3VeaUVZ;,&H|y**F5ƌҥV:㳽]odw Z#)ʕ ]kU}UekTMT_{e*Ak_!ثV}o4˶-[%Kom+k*Z&ڧ**3ߪ;}t&Oid֚ 7`~OaŋJ/B%z *G6`} ضo~]OqS#:9Uv׾\r1U\ϝ3fKjVZmw Z+쥗^&SAkc=wn;87LZ|}6CNO?m&a^ Z=C֭kʗ/µ\~7Ml⍨96l0ӿoiQ6mj+B^huJMeWwMM,$P_&P55jdy9w\e˖=4J:p WN\OrU裏҇tD%k @@@@@@@sZyqT5R_]p yX6ϡ 7Y,X_>{ʺ^¬ +ܼ3w:yuNO)t(c=֬]̛7/2vv* X>Yj .h1rguT!N:d7;tuVu_̟??; U\/_n<ՇdUU@L@@@@@@@@[u7Y:ݳ9$LTF;lt:@@@@@@@@@vA4 Z [6]vgjգ".z8-@@@@@@@@@rCudsvA}Ǽkdɒ&NhTњ         {A45A4]L o߾A̶mf.bx]L9@@@@@@@@@MiN{キ M|Lҥgm=&OlzL3         {A43A4,P@3sȳW\a~D@@@@@@@@@WuזulN^lwrx@@@@@@@@@ToذTR#Fkӌ -/_>3`SBm6d3}t3zhe˖]9;@@@@@@@@@5ֹFˎ@@@@@@@@@@@ ΫWF@@@@@@@@@@\ hk@@@@@@@@@@Az8o@@@@@@@@@@5ֹFˎ@@@@@@@@@@@ ΫWF@@@@@@@@@@\ hk@@@@@@@@@@Az8o"N?t3`dӦMSNX+{nTb7z'?O>e˖5]t1ŋ7C5SLI Zŷl|qǙ:urʙ"E~,[̛7L0lٲ%ϻ{챦bŊv?Y`7m4f͚b2eygV^mƎJ]}o駟~F 4ݺu/?fРAycsӂ<=9Y@@@@@@@@B :6n39^nw\`_~152oϋuv .l:ud."{L \??[PT)GuevZӣG3{,P[/tsI'˼NYիgy`}u=s9O>UXdI0H5},}="       Z{DZ /ʫc=k]x6|iҤ }Y΄u޽>WXaömr| 9r!fԨQXbgٺud%ʗ/o8`F:wlT:^;?xoxbsG:(T۷yWyQ# SרQU[ 7.#SAkUڵkp s2Rn]蹢PUv-cwZgvṅB@@@@@@@*~+WڰgGviK/5j2k@:.MF(ۺuk=zꫯ/A D׮]~7#G͛7Ko ᅴ͛_5X3fLPZŀ9sU˕+gz` 6>nh.rӴiS*ZwuW;V:'ڗUvsM˖-mɓ'z+8gFrG`wZgrW@@@@@@@@]Gs-v}^{f?RJ3l0{C 1 WիW7Z*z!`ɒ%vOUe:Y4hPlW;θZR%gUVӂ1L=-hCP9        ;QNߙvAիWI&7|,^_zZybuL?~~o߾V裏LN oQxEgϞvO?dVoݺ5fu~ͧ~j9SN5O3<Ӯnz}5cǎ5eʔ1 Ys&M쾗/_n?Dv*dlwZkǙ#        %T1=sUyX(~nYƆmLUd˕+g ,hy"E_m֮] ;p樣2Ŋ3#DǏw0Gy}9 Z+Wl݂ ~FU}eipAU7ԯ_|ў WO>CLJlfUhOeٽ~U_W??UV5 0s5ׯ7ڗk]g։Z˖-M=*oԨQ꺟v׮];Yɛ(ZLֿˌէv=_~_Ѡu.]W\a… mf Z곯ZZ9o/+%KZ+}SoDC~KQenVճ]+Wg'=TLq۫SKs9ʽ[MNSy|vf~VmgdXϞ^owgԺy1{ʭ,9Zn[@@@@@@@@l AV2|Ќ5*rƍ . +ogSS y)3s ]ZjYB;w6_~ *f$hBj r)6p>)P_{Ǭ\m۶5_}0}5ט9s&Lsz^{m37lZjeg 7 6 g)G}4*Ju5쳏[g^|BUYm֬Y?mV *f|'O>69`]`ňtpW{;~i[u8Akڴic+ ︦ rkᠵί}^-^x*O=nЈ*5_xvn*ՠu)>j~ϯwFU~HWZ+lzw'Q#ڻk LUsx_ TSW:u&j 5WPԴi,S[ЬY32Vy15[nnc>~w-lqu-U[!E/&EU$R U!>鹠Gg|I3zl=g㝟p ꫯC=d_L>/g]*DYm{UWoFυk#txMaUwMjP~NniNsP/^;iӦ6/wU?ыgq}k[z[oo͞=~G@@@@@@@@ Akںw *_^L+c%J#s-VH]ok~&u:u2w} [;'U}V8N(r#l`X&T* B\r6ngVWK/4ƍxFVDMAFZAk-<âvc)Z“ ʿvTW}BWK d!,u?(n~0TxU>Së \+@Zn?ׯgw|}6XUU5 (ks׮]m;B:tY]͝$ZO/!df"hg讯~_9 AkUe]!kևz +)~TK%Ozq@JN\?:,Sn^.F/2e PWWpϷ_jгLMaCƬ#s#h-9ߩ1]^=\2n?h*WuxMu]g͛o#        )uU =X[qX yy]1cFLF \X4U̯jTvڦVZn߶ވBcƌ1~ޯVUUի ,hCd~EpZZv)dk4Ak9TRy>k ]vesPY]#'TR!9)+jx~ڝB쪬kTlYӨQpB٪4J +tRS\9sYglVg G*AkZ+ʫC'tRr'QZs@ڵktҋwt{Ak0qPLN|UVWSPX}3U9r$fZ/ϫ*1 +*j b6t\c=4h`g?](Qն[:u>dtV:'5}>YSmZsǎ!ҙ Zx`K.z^隨90yd;u?S?TEZjjׯoֆUXvM_}U7 S GRekR7olTݿI&1U_Ȝ6ksεչt<= QR5e;zQ&/)YWx&*Zgo:VD5} ~!BşUڿTZM}P7?hkJz]S{ }5Tlඞ4@@@@@@@@#};Rsnj+<[۷֘OI-Ӵb^Fd7UTOgK~SWG[%5dDZ `@VTAOR`UVkr,1ZnmVZIM b嗶2IM!HU[.TW=U9ZT 7{+PC~xAklUtSTU²4h]paJŊPZgHvgۊjZyB`e +Vdt k=r[nup9sQV_)l>*3ࠖ)iQ&:h -\KV\;+f%tֺ֪> 'ϒjh<:)~f}Ak7Okkжm^BQ[]O?O`TWn)u=ew^ߟ{gOz>%56mjֶ:/5 Q/i-3g5ZgT^ jz)orzY~UvL/;5!]h        *@:$5j(jC 1 IxUO-ZY+d> B^~Ũ֡2> Cdk׮:͚53˖-sPaU/UQ5?*ݻwUva AkK5c*]tHC?\ɂeʔ}ȅ}* ZmCJW ~o>Ӡun݂ zAn7nt3|СCr?Ϩ Q/9h#UR7Py_nտU? 6mܹ؎+{HA6=gT]JMAz^MnVM6ULӴh+JgY1bF:Ak=T1_-\yW Z+P:+Ws0`I_uE5]_]g5*Gh=F@*ଚ~yn NUZ֋*vmgg:h{w\2sB*pE UV<ᠵ^boo EManmF@@@@@@@@ hkl?餓0%K*ʡ}:Ky1uVGLU mԨQʱzՠ*Bcd*ئ*￿]6l0ӿ,UT]XOUUx]a,5U>|xmSpTxMO?4m`l`ɂ~R@Mㅢu~-*h :T fN K*LsrQ%xMjtMzjw?DUMm…K/u07zY9^xBU^M׬^zYB76 )*^d+E@Ey5Y襅p2?hJNvVZS}JmٶKRZUU]9޵Srʁ*n޼9>q{e: ZYgB~G6o[7_Պ]U7U8^S(WhKUuz ?380t:&AkUwVQ#B}jfzf~Ukާ"G>ޖi@@@@@@@@ZnT%Ԯ]a̘1AP2!k֬i+ O҅CQ[,hʼnߪBj-2 +d* -ڕ7W@Dv<`qӪv>~x7i;(LVZj}(`艚 {T7#F[:ubBQV0UZI{zL-jOe˖FU 'j oN@2eQEr5&MOQK>ŌD۰ @@@@@@@@'@I *ԧ*ê)ZTZ꣎:.ׯy饗xuV7|cFm M-ZK=Joaʔ)cgBnsM:5ki۶،7Δ+WλJ1+yɂ /bzG+Z(؜:wufw-;Pm暂~Z< *0*kW_}4<*)p+7*a$bȠ*V),.E" N:U+VZ]PU]rNUkK<(D!$!1=y3s=^+9={ϗש"~[Z<\;ǮJh}衇fYn"DUh#,kL2wg/Vۤ=\Z1[.k駟^Uy睷0믿~!pc} Qm=!nܗq3zy84UBk}d`)BgvZjBk /CG@ @ @ @ T@h Z?ľU.%7YtAeЗ%byZ?.$>۲eK=IO*Im;)Uh k]jbVl. XHY C}q?ϔ ~ӪOB}sŪUE+lsIry{ O<Uxe77ˋG>a^guVOe >OrHoH|'Zc9k"Dm>}C-}rn&(1P֡x ּ_(A ^rr C,-?62ǂ'?ŏ~ 1^2}_.^{Hmt2oj>~ @h @ @ @ @`ZGt?OsLyWBA =W%U)->yQIh ~ڭ9V^] sM,*Sq0I Ug?ҌWUgU /i]sSq*~#Qv_3B:;Z{책vr6=خ" nwc!r֭+lgk;vabڵ ;{a.ڥV} %ӝTҮڽk"uHk"Dm">ŗ%׼! _x_J.Ѷӫ%;dNblMyB.-Ӥ~W C|ev"rڱ|gyZ/ @ @ @ @`Z%NR;3D_~e*Ѷ<͓W<я.H < w$γv꫋<1 7}]UqDZ]^W ęrw.wo(*>j*"#MڍYvQQ$ ?V.Z킼f͚RX}aP\򗿼ۮ0 Kbgޭ]ӷoz˞Kz;jˣ\r%n}ݷ;ӟF;E7ZXЮ] !~_g}v6CZ?iO+i 0=JKtm"=XMi]N6Jp1][FBk}lf 9|BD"y/Ah@ @ @ @ @h@֟ן HPp'\ ^YzV뮻83;w'E{#|r?~H=-xNQhw~\˛o|vD7_UmSTCʕ+a[;k&.+Cz8R>Ѹz(>M?nwN٧G:w%Ԥ~W19Ixe. N¿xCy(Fh @ @ @ @`BhݏbJ@`?я.⪝3_K,)_-$ ݪU*_7aa7ПεD£SN9['q҅ZuJLPD%W]u^W^]|/[\(͉q}Zvav̉:ZK_˝ŽG\†%\#BGnw+';Pd%L Qs1_D $DrI٦CkB#V- O%_Id5Sӟ4mDjr^{mYSBp}ӛTZ*iBoevAΩZvmqy%nU<B}ڎډ]c%/yIٿɦ>H9RG_buӤ~שcGgjއ*O~ /X5G@ @ @ @ I ڑܓG?].%7B]nٲev<3W "k=袋s9gO?O,/%qyNSIZ[Jݍ?O0&]#Ȓ H%21ghvΧr?1)9 f>ꫯ.֭[qc߅H([B:OO ;'I s htZyʪq.ꯊuw򣄃:܁X5>P3 % brG%WIp-%XÏ1$ljZhQ'&S?C~p{EXODѺ_"G}0"wPkr84v _cL&BxXBmo{ے0xG񶷽m{uDa{Z,w./vnCvyyxԳxG\scT?"+_xR|~<1yK]iޤ͚5e^~_}`Zu.wKOkK<@ @ @ @ 0!s!^bE~A'1%V._Wp?O/vC.JiӦBJi:󣣄NV,iw-zjqI'%L %=ꨣʨ$cWBk#v+~P q{{`iT̆NKjN}kvY%ؕpv> ՚!UKUy8ZuHryBkׇY{+~G}tq{߻AV~CVh8$ X%xwC!\jwP*_ˋo}[`O,Xۜ@ݞiw`# iҿK $COxǜڕ_]yg?Yчr*oٟԧ?! !@ @ @ @M`.ւR]@%aik']9풫0NPkg] X=yRP ^bKQ $ʊw\ DzԣJgvQz?aE/zQe\"=)>K7򣺣:9 9Pn&jNk xã}{;>xSzZbcV>7)(3r^g۰>ۺfu{ =$K}yWlRBq[Bk/1.[BA @ @ @ %}cXh-y宿S+J\(Y_/K<8s3;J%ӝT{e{i^{JAv/g>{:ΓV7pC6N$/K߁h nܸqᾝHxf"wG)rz׻Uhl9)Qvy"V~+!mn۶m\P20`ZSӞI('#Oe RnTP>^ma͚5TU>S/<NB9Sg=l8Uk]%VrAd}{s\}aqelVۓp^8JWm//.8S[n]O|}7=QhܨBkţ>S)OyJynq}\r%rz=W[S=UQk6lOU;Ѯ(N:+wU@IDATmwڱJiGdo8I2_ ~v^ז1Ӟ֊o:Nxܦx ^P:Ї}_F# @ @ @ @$̍`ZRJL~yc-k&"^K3>jWb/YH-\CiW蔓h[mRBk-'dw+ۇjաK/z뭷e˖BG) 9S;X;}` v9W)N8Ўj:6u9rq.min_e]v~HLxG=SH|UWYyvj; klx:p?[u+b>Nvl @ @ @ @  (?'?kqSΎvեŹ}* l:׽ugQfe/{Y~vY~@ @ @ @ @ s=,g6m*wO~(e˖~O?|uя~tq.X*4DzjqyoguYM74Ĭ`3 @ @ @ @ @`Z,YR.N:2;w_׋.;|f͚K^Wԧ~к%}}%>裏.z׻׽N;8蠃Js7j:vA @ @ @ @fB1+7M=yʔn񖷼o< Si`ː>)=E&;)7|g܀ @ @ @ @ @`2ZOs=xғT\J/.oOz{{]<c)7/}im۶[i @ @ @ @ 'ze|QGb?رcGqe^ziqOؒ[dIqi-Dغu5'@5k'< ^xao}+홻 @ @ @ @ LB&1@ @ @ @ @ @`Z @ @ @ @ @(Mb @ @ @ @ @ B)a# @ @ @ @ @ 0Q' @ @ @ @ @ !@h=RF@ @ @ @ @ @`ZO7A @ @ @ @ @C z @ @ @ @ @D (n @ @ @ @ @@J !@ @ @ @ @ @h=Q$@ @ @ @ @  B!6B @ @ @ @ @%zI  @ @ @ @ @C(%l @ @ @ @ @&JDq @ @ @ @ @ 0PJ@ @ @ @ @ LB&1@ @ @ @ @ @`Z @ @ @ @ @(Mb @ @ @ @ @ B)a# @ @ @ @ @ 0Q' @ @ @ @ @ !@h=RF@ @ @ @ @ @`ZO7A @ @ @ @ @C z @ @ @ @ @D (n @ @ @ @ @@J !@ @ @ @ @ @h=Q$@ @ @ @ @  B!6B @ @ @ @ @%zI  @ @ @ @ @C(%l @ @ @ @ @&JDq @ @ @ @ @ 0PJ8VqNcΝE]T|K_j!2:W/b{~K`ҥի 5Z@C`}-87\lڴm@v ]@I~x~6nX޽;鏛3+Vz;sںuk|k&V>Su @i+W,-[V>۷=r6忯}kSzI$~Cؔ.tMŷo ˗gu^Y .l{\@o x 7sq & ˑGY>+L{. n/9 44晚o 04V*8Efk}s͋sm #hהLA@Zh ]Nl۶-푻 Pr!>P@h=U$>dx#J^}_,>я9;@`luٓWl{\@o /N;v/P1 dHb]vկ2y@wu-s@ s16)3N Ӓ%KaÆET^SN9E5q &5t9n!푻 P-e"2B%- ;0 0"#$8 0WZUqY@;H@h=7E==ꨣ]q3@)Mg; ДB@hݳ@Zh0 )=-̂zIu/ @h4@wZH0!~G->@h݄~!y'zk@h݄~!C{X(B^ FA=&кDži@ ]` s{^@B^ƴ tsC^}Ν;<@/ 0Z{ @/zHu  ^@hb(@Zp0 ֽ+ zNu? hɒ%ž[ڵbB9-\\Bk Z@hA %znC- n }* lLuK >@hR&@Zd ++߿Xzu}b֭3 0ZqHWXQ40xtߔB3\hJuSb@ Y` [{[4B fA$кłQ@ WHd}azΝvA!к?e%hYt- n @h=EO!ZFB>@}&кϥm@ c` WZ2BZ(W\a!@h݃BT g$ p @ Cu DZG@ Za/ 0-Et!@h=Ԓn@`ZO:iBC&кlٲbժUٸqck׮ELBp'uQZg! k< АB@hݷ@Zd +}-HuK >@h=9+W& ټys}3nB'zI[UB[nX~}@h=EO!ZF@`n ۢ'B$M ? 0kZZ@`Z.qCHtKU C˗/w-[yLB&n ,]8*#+*u C ?~K55@}'zIu/ @hB$@Zx0=+́zOthɒ%!Y˲]v7n ,"zn @]UW]U޽{@9Ծ@hג.@ZT +}-@Mk 0Z} АB5s]dhAu h#Z;bbgZ@h=$2&+V(]}Ν;ZW" Pp@BJDx@ w` SX BaVB кp lY5Y:o-#R@Bʕ+>͛7۷oT@h]E@hg "sBA!к7E!@ HAa& {Q  BDk֬)tlnZ>/,hO@Maҥ0T"CMk Bk ZgOB^ FA=$кI@ u` 3{V Bm5u;v(ڦB1@%ʉ8#߿2m۶]w]?<@B*B< B=,8 PEu!CZ0 ֽ) B@ 3!^@h݋b@`@ZOrBoؾ}{R}76lZhx0GuT-+wY\}յ 9stx@`o 9:< @!a" {Q  BBS'0BkNk׮@"zrlٲbժU m*v޽(,7 @h=Yޤ%KqT?~ @h> Z/f@C` Z0:S/ F s!gƍʟ!H&bw-C 1]Xпmݺ?9:p;v숃r LB 'B*+"u{hDu#\xB9dhDu#\x@ _` OY.XB A#0B>Xre'&O%ǒ)cZ E˗/_>c/z @`bZO 5 uL@V^];VֵQ1Cu DZG@ !:GC(%l@uJ !@h=V@`Qhp׬YSxu۶mv1> В'Vt ЈBF @hݿ2"@Z\ /-,G`^jW:ca g>J,aDڥ⼉|rBq,ɎaM[]vQׯ_}W^=]ݸq܀@IXMz ΆC 7鷃N Q a!y#zJB@h= =BZ0փ(&zDu S D|p<%L&E\.ʊ@Heo.6lz#8b̎m֞}\j\B˗/BhڢҥKy8e+X?n@.PĿy橷vB>%4H .]  ޛWrZ  z@/ E1` 0 TX L<s<; L7Mq\bi旴G' UW]5]!iG\øNJhwu("d-cP1wE@ !]>Y?>Ԍni\B٨{F%Ky zJjH+ Ν; wԴcvW~Sn\bTZmXп뺬Riy"7O\zu=qs=L_Al]ZgG׽;?DdRZOt>?b Gu @h߲2"к&e3̒X/ xuPƪ}h 5.OuOI~3T=gjZ7+%ؽ{w@=}%=&Lq׼EZ;Z'p C"zH4 &}҆HK !.Cа9)uN$i₮Xĩ"Qwv7Mٮ{봜W̞DaS꛼?e-ގ9quU=a0UZ:W] si5k˯k=籍KW ɉG )U# _"}d7>WZ/ :#JO8[Nkǣ7:)C/A&I$i@% 0Zd)@`Z.QC`N hC_LO s;v-> b727Xlٲ%hE <4Czva=t꼪y"JI?"]#8 MaL+牏_%쐟͛7۷oĝ\>Շ@S#a24 uH#}:ͅ&}c o.6߆.ur JG4ˏ8֎bqzI*C-9@hMU PBz@ 6!䄰аOJhk]naqqիKa]~,?',4?O>ɅbvԏWnw{KGv'N2?uEHJ_"kGyM>os s(.mvT:Muرcjo, N[>T?1;uDh=-ۖE8H7p"к^y8GRΗ7wx`$8_Z5By)i tA@cǪUuu]89omc: ЈBF @iaBN\]"8 xm1" C '^,+k|tu_D]T̕zr]!S{r ,L[c7&jװ> rEW[ 㺙k]_;)_7/|<ZWGNĆƛUv˶iq`?W{׭sMM5bkLQ L8S'wUՉ?EuuyjNqZZu5׮N{U-$ƾp Bh> Z/f BABS$zI$v'J  1Gk7FbT13c,kʝ <[^-,MUA-†a>S ZĕBS٥ h"r/'\d-m۶שqU #5S0 u +3Pi;vewۅN#:Mu wK˄mF"Q͵tw\k-Ch]<tj>;d1/1hByB.(H4 0(U\ B|!xx:vcTr}1ZkF+r m2qf~lzT9zeƶMu\f{*'Ũ!qf]n* Zni١]>lӷɵ5!wfKW⏕+Wڱs9VqpB@h7\lذ!+:("nL#N~g uTԅvFWjg˗/wwnF|zD >vUx7u?֋ŢkCㆽ@h?Tij>A)B٭ B#&JDq 0`\xLB,S7oѫC r}P^ULFyzz h.q>duKZig{$Cz@la}nh,*Oq;Z6ZF@`^ ג'3C%L= 0sZ4~}Hs!k7եgO9 ַzkqM7er۱44P!_g:O*ǜ>}yyʶ x4+BNuHU}`a.ɹ>kkiu%rt ֲM有3s~<_+ 7=!xW*%ФRm>JY]D,vyLMl=}*J9*ߚv)%gã'F͑lRkaBks^DL`yյ>לo]E9x߅;0RR B>6@`GGP@` &@Z!z 1O s~'ZK0$!Z*uvpj*vwҍE?\l>=x2MO[qi~xp*'~0vty\Y:moSǦB:T::, =خ}uڥW39r9o{ui*YzVK6GCi"c7ƅD5fiL7_Z坛T;?=Ⱥdr)}~_+\I)[ߛa3KZ7o@` '3@ "Y&BD0 0CZ [ T.Dy a.!Bk{Z몯nDy4皊$>.^4PT-|vQ)&]qO=r*J ss~YnGWz; ~)V~GN1EPhCʝ몯 aM.W(ۭ7[MpVgSUBuim{Fbyqͱ:KV<>7!qUW&?qG9Bk˪\,Ϊ??kH%i$U4)差(yʉ~F-QSX7)vk.Wu?,X~ xg2sm)8YFh=%'U6}2g:oX}kՇϰuHfvZ/.[@asŖt{{'2ϢE8?ڼzf,A8'&Ha 0h]|L0!cǎBIC vBF-WsZyv`r]uMj^Ϩ"@]qsOHcLXzJ`ǰ^۽%KLBdژf4,v6%.*?K+%gmZ **AUނzNp <:;`%~'گzu)s;I^cjڹD[o텄6˗/_tԹ6rxuuEt0Z톦:qRk$רO=r:ٽ{wh4fzq[/:~;ROgw8,_׿sPJ ;!>5UuM՜}N>[jC`Z08GN h"fE~w @]1PLhS:BQF's;yN)-NBğfscPX>PUm;Uo0^U}.o)oNИKMNvvGĨP_v;Zt oե*WW œa;:dbo :lûnמ_Wce>=# R)lwԹg|ƒy%<"iäaaIW-^OE"1XmmmN:L̹WWu=sZ?9Ąrʋ9M՗Ц>.z uTq}T`vyVT9 㐊lH='q \串^=D}]^!cO4;^{9shcUܞXXW[J_ 'ʃ"f+_(ATQuE[^^yU7G믿pVc\qz}6["ssT l3L]{MX:΁i#B=54vs8s~yIp?7LNMwh:xv='Y I :?VZU[nYOu8J@ !@h=q$ @S'tUY3'IfBԳޓN(]W|E_QżJO-jqJcIWǮTW3XΟWv{e˖ CvUGsm8c'Yz¾+Շy3! M`m_u- iؒ]F*$ysoGy%77.X^$d?Uck80>LV<LFֿ~˥$B*nC630\3LB?C;w7=V LBi'mt@u 碘$ !-FiaBN/$9o  B[s$ϫ@9qM2W}9TPP‡\g8:numP37wn,ü˿ ԮZ8αreLr-Mtj]g I~serhrrQ=WqPU+|( m ~"o0-<},ⅵ*WOpӱBk![3T~(T'_^7{9vK9Ϳ1)vOuVx?F>L I'R6zRj3orBk}٧QNGmgÆ _J}PU-iUb;ßYn~\۷>Xƃ.K$cڹAh3@{@h7 08Wd LB)'Y@` s/*Ŵ+Pe8B` uX ߐSN))-ШLQ Ri^Jc&OHǛ΅3O,k;yGڥ1A$8˕syicn(S7ryIs( b uG'(K]XC)?{XtgB&Me]S}tNՍXmOtoTY92d=YyNS7\NC/a+KyVzi\ޘg0'T6)~];$N*ŔWx5ssu\zz֦=al+κU垛H;yFCڜ k$~Xwt-ߤdz-B,D6\'2c,{*8lO-Nj&( @IDATG u]: $"QR/-oIy9r_2Iܦ6tGO=aqU==Z]h[L9qD_7F^\x|FD|Ȏ.y[dúcc%~-†+Xkoa|˫aY::ZdnT;rZ哚׷G5]}onG{sm;鵵T5xw]RUZg.W?݁7vWşerE{m%aC FXBa4>.&?׮ [8vږg\/ [; O.8&4'D>wږ}G)m\X7GN@\'QmZUV-jwQdP>ԧ0ʪv^ab1AuқSo^b2On{ۊsRlᜡ\lc1}7WH_\U""=znwfVizkw&}J\nV=^6m]'1թј7x}1C:C؛L>[n&|'|$93QdLLh" Hբ1~;=-Jh!GhF/S`gΏ>#, mLhf&#ʄ%rSS-s;Ubf8o(̟_klGX63[$QvMWxIy.RzJ^Bx^ȱ@Kx9ΧwD)MoI9[EW!ߢMEAZ}Bj-x{L7vjxu"WxüYvqJc@. u4@Y|/lCpiݰ4'ũq5FaOf,26u1H=OTg^oR?vKWinږs.3a8 K++]5W3aڄZݛ]㤅b>D9FGqt zsI3m |s/Oc.޸z0O^٬uũa:]{8LcԶUu9XiyD IGC<;qy곽Gf7.tQ^Ucbm^کZVKQc>wǸ*`8 7*^X;LyN=We_|OӫUqZ,8R鉋eZ~}e\~l М uK !:GBA@ b^ )E㽬M_LZU Y9W}Kͬ|#[(^YT'J Xhª6\ ۂf0vެ_|l IQ k ''d1m]:.CNTQWGg^9k*Hս,ުz^5߱xRGO0S<(m·!zrMG=&x=;ε' ǻ:fu; 쌣X:5r뇬/ðMkm[Uz*`؟au֧.lJhq Qs3 ꉄtFmUisa*Z]W5{x*1Z? RcLʹ\TưiI+7.M9V?}:amϽq n}5=ɍ"e׿r[5lΥ0gʥ)޽:cN*l|;5 ~{O;plZu yu\/_K{K73R.7mo8U.Mc=8˿î%袋o|# y#1:)g8  0F!$Q/VsB^t{χtN~G}:$5|n/뇖X;,||uׂY,6Z =X-x J+^Բ=щoA"nU-](-nSrr1SUyQ8>Mէ*7 Ry=m|S˧-zHeg)WzCHh>zhrVU?c#su#Kk^쬊rJ.NF/Lcֆ0\PQSUlrԩ/)!P'^ 8Lמ3ɱ+'6E~yTg8Mӌr!ΠkV"Yclczh4νRO^۲gO%jTWI9/o7FToE5ι_¦7.U.xbXqhZ{Ob+^Sc7j?wk*?)[gŖF<&[wQx%e{&eۏÅA<¤ū~ߘqZ7mH %ju^>߫Mi?aaTx@q޳_W??뇇By)i9Zlђ1@c;Jt^V !Q_·qM<2) |h1 #ڌ-x;/ѢGߝS ~[0e[lO. üsogSFo t,}mN=m~^;U١EVoyzև>aoVS_8/RBk3Ug&vMMω=m^c{2﫪1uߓ?SaR<Wu?%HQO5o]so>&vԹ \|ޘcWyOxZ]Ķ^?'?a tuK;LÛ)uXq] 6T* dϥzq.5VO/8ܵ_̸jLϥ1g>ؐ;qzyƯq~Ϋ+qs٥zrvW?̹u﫯ӼMN}ys0Q7:m +Ddk\%o_߉v+QlqտX3qc7GǬܼ\vS4o^]xg.vשTJ#7x}& w%6wgyf򷔥;^r%7M <3_dp &@WZwEx y!ZӂDPȪ@U/~ewb?eW`[Ilڌ-D$^+%-ޅ Sf-Ԣ_7uװxmBg7??wl(yys0lP׹_wq0[uDTĆxVaϪl= T-jNEa5Pƞo(vU݋]v*Gn3Jhvds؎\*[6{W,{ԇyirMڡ^J"U5/g˗Av(*؍*R|9Tr^=jЫSa?\`}^V]quek.q{}now݅:'ҍW 4k\UykZM撞Xm>4yMHB-[46;L/ ׶ ^sBT8lW٧ٕګfO|FEhy*t㫚7۵w {ݸXu53݀\ok76m٥YcrrS*m(ݻw[)-W¸5i."[:o9^wEaQuX|=˺?Ժe{nq뭷'@H,*y+窸, 0##( 0Z{/LJ7~YC6|rōiW/b:Rz6ZU[ʯfQbL aGm DZc쯮^_d)'ccna.zv7wx%_ʯS,ܨ up 0ypME̚^w㼫kֱS~-jq.z7m}qڢOc/3ε 9+Ameb f=aI6%<ЅDx_]uUec9UN!{9gժUvk6~-`QӼ yy͝{a!ulEvb^{ a}O* ϻZ{}CVZ@e;_Hq&[/6UtճT]<{,u?ki0V7Σ8{٦na>0/ s0T_M HkZ?Rq"5/:S kN=IG^\x7lذ];ҎZ/^?},S̶qT$/+yezc]{ϔ六j{q8t.#HQ A@h=bh!z   褗rZ0 'aMð};\Yמ Qc[ן.\֍ xe.yu4YM([ NZE0:BU^|,/q)]{iY-ŋ\ 9/a^=j 9z%4],=?U>xQ0|^.aRMO*S7qݛ1,_ V~)h|Z4Pӈͯ sBk<ѽW- ;z4쓪-X /?]+<^~cǜh. [uDEi_qU.?SgՄUca+0[νou?mukԍGT4nkWq;7>o?ym{\:DOjJOǦ.Zxܧ)gQ)OS~*|2RemrǦZ5_W㹗Tsub~!nk^Zs(736S?[+dg1yUʕv/uv\ޘ˖ڞW7'SN`??:H  Y}̸nݺ'jP ja7 0i'M ЂD]2dZ[ {qyn!'2zjjҶrz^QwOh wCOzѦvBua\:5+3o<ǥ\{ h8ꖵ-NzQ(oqUgUv  Y0nW1u.~*qC8R=M q\?{WNsaJhtԦr1ګc^4C=q =[~[fǶW7]E~ϋ֫) m{^&z܎Z5Y;GM+T|aFxo*ܽ.ޜv֜<_<GQU%OV+=1_^u?YZu23W差ݹxruӫ ]hkW̩W?SXgµ)c ۅхysΥI1[7SX\Hi)2~SV^]6U) ^]41S9SS~N@*1{^ns :;ZS^<ѬXkl[vm2馿%S+.)Gys]צ놏m:͓t98c{xyvT7+ *W9/oRJSyO:W7kasewQsUsSj*^;Rrs0/|G9_%u{}k;o껹v!" Pjv o#},lHuK >Ђ\GOh{!K8\߮ 8U/-Y<7ZX8Ȟ aC_+doX>"k4i^H. if^lQ9zbl㍅^vo4=Y^7v۴)8-ПWܫ[^xoqDT''.0?/4徸y~TTbg}'Zx8-˯!VW_{o\ ^qQ݉]1Ǩ!N߻ʽ4rr.xcR*uLKΥK~KXSarR}o˳+7Fƪgרしn1‡yxxeZ{,SmH#Ճ_cڨ)v0?}@oH҆?Ϯm\a-՟=7å5gi:z:aYm]΍bw'?]uUhz.:0Ghuժ"ZRmB@,ˠB@"x{p%uqĭqL3{fXcn- Eq {z !>3zciVF4 J0\s5gSqD`c>:`%3.2Z=V>~kd3|1C,3y5#5_ݳqc]ڳOy[Ցo1.`uk>ʃH?3[ox}1.k>/6V*Y21 ϗ?2gdm2m%_6"9>}QC kc5WK[8^BRZe֬ߍVAX=X[ko[ick~KS6.ZK>)e\6ӳBm", \t?\|nF~{n۷o߂h<e{XDXqX:;uYը3pc#,Ǐ#PZ"[ "?z$Js+>2ݬ {_l<7k6+鄱}Z:K{(KyR^6~:_性'8pନh;ʟ9kq0.l][|TtӮo]GS!V0?h*PB`9D^?B`wzwZ%B`ڌ9 r/)k9׌Usy~,r3F}QKiǸf$@=Xx .R?0 ac<ξˮ oꫯ>+z,Jbƙh]%[(VɌo/3>jf=+䕍0BN3x0Vhe`\eٵD5j6'gFs3~5Æ!?Eak/&$k~crL瞑7$Dd2v&?Z/+YZ2m&ϧ::ecܶk1|=#3Ӱq 9|eDk_i\׮YYvFY~kUmmƏ>Sg83 mol8 u/Hu|Z^jh@EGPl=ks[*?0\Qvc~S+њ 7[;vu&ڏ#=\ [ߝa:^Z<ԧcc6#l/mId8xCw}_<+{1! eQc8#Bxb;Q^&ҖƂDFJtk܎2X]x Mc0y}d2҅aS{n~6vسϘ"oqj obl͈(3GE]X;}ayyYl/M>^.I5IY,bciڟcs=?f&Ԗ!k~FʈX>Mf#YYZ@̻tڲ<ټ5Ƭl݉vC+ƬZh=X+O>M5ӽ :m#ꜭQf6+ˎ~h-?euarW~G?(vv>\,Yz k9oƶe;#lfma], א=*)8 RlV({[+/? 0/EU#"qF(QB@@@Dͨ'i)("ZSh@!p"ZnUr/<L@BJɀb;Qwfg 5I%k5[ 5CP`A줙!nR̈}3+>\>4Q0f^s51$+>c W#{+r1#4l%L/V1X~֟,)a| ^@n߶޺裷ˮ٘di6o }ڥOa !# OO7}x~X9 \H41~gc?s?>xVX?s<о3d:>=|_}xʒ,l?d0' }C5cH~ĉ},q?cǎ50묈C6"0cp 13)ubfepZ2کhwx78syLbܡycx>q^J'` ׾vB`fh= :B/"ZELUD՚W_Gy%CS;1<3}4RBiaSu;3{=a3c?F+QosﭝNF<`R⩰mo+_Yٲ90b#hd,(hh%#U]mtUڡ]3P0geU-[˵͂zp@EywtVc;b^YÂۄp6^d>ӳ>y%:ˌs+ӃwgFJq<3BcsM, >N8Lòg˄r1N2-3Oއ%>jxZKgm4oqK0`g[u,њa]K8uA\CdYX]ꭥ.Jm# ʓLjqcx,ﲹgXX};e8DWuA ӻ8v4VF[KiwhW^Kޡ?Cf\hOx| rփ- ~X¡n39p]c\ ! v믿{޶Wal}(;zj̅" VB`hrȕ@+ړdZU-i3[ Yej:AHh!r *^xS|]yEd$81q g(+}RrfZFYz]z,!guHc #.Yz10}c9k>>u$ˮXJO&T? mm^emn1֓K`a.;,n39CUݬ<Ȟ)о ѺOSklouu`~M?kFs{~X!nk_) GQO_v9NyڈH%Vށ̽c88 sB@m@D|d2! z!`{ {B`>h=&B@]?N!#. #1; I>SW^! :n!/f6=B;s~+~1wCj5@> ֵ{&8k0_s5{x-]vY?%j8ozӛo|)B`<}Im:zj%kzkVB`dDPB`+K@(/zόSόY3K3F+J̸/+nbܱ?o5j[ ߾/c3f0ٛ3[|/LX&ߗ͓M7d}7$y1 la ;}۶קtZX~ #1q,>,%Ok?>>;i1 ' 3cd.gx1E6Ė:,}aձ l#@ۼ/ +K>nv8B+fkKR12p"7F6~٢g)Nfl ? ps,*p6K r- 2QPyYc\6,=>V^+1T9t ccveĬ6?>k2 YZ2NbNDi#.8B@e\lAXyCz)l-[H&=ӧO[PՇ~Hcbϧ1Wbݗ _m:9q5Oό=t{l>O{>g95Ç-_q>ho+G%!B@MC+O=V"Z{4t-z uUF@D띮~^E/ ^pxg/(fċEٳHMy͌52@ԉɉp_fqc\ˈOvga F=Fl{6|hgijVc@_%YзWta4 -1Ͳm=j @&!sileHd)룵1k1\9Hm?O2ƴV dڹHI}EdmEY;4=X[m ))b:a&cq`c[zEQͷmo_X/?r3.9~ uױtgl\fXvꓭ;js^,9}>F_: }c'ΗAPš#>5reop{nuwp 9ғJٸfkz3O}oc͈^|ǎ= Dn8U j]5Gn+_30lM, eGÇqۗ! %#zNǀ$:B|Ɗl,GX Sk,0 !9=pb΁~}?i~R)Ƙ !'NXR`ayw}uO&;C>5sp>f, lЋљ/Zw4xcg/?3~Is,Uֽ7ʗʃg0V Җ镫ģ\q` MCt%ژ96s$aqMhH} (lm/3  Q]i,)P20K-f&~cx cmtFdN3Z8N#:zqҳ$;S'u`~4 }]n s m 'X @œg@NC'F>> 7rpmL?ζY{+%s-L` q @lC\5Gk'O<ټ.7ǘ|Gx:kgk[{n~‡^ rº:!)  qh^fO l)}y K~{o;:k hԕV VT ! z + ! f@4znn0*P G8{ HeYS;F27]ù~dPLj ϲ[ #ȧԧ +A2q2c!8OƑ/+ϖc`D;`D7#˰f\4-LNϓ036n2vd׬"}xZ̓ϯP896Zk +/4Deg{Ǯ~SrDjuX`"3Y~ _CGq_w;KsOeb2Y\Fng_^~ bN2baX[@Z$/yⓏk! .#}tgǏ%a>=Nݗe^׈Xkd{Tfl?볶`=@IDATȋ.Ȳ\{'c_HOg@c_xvcY泏S-.k쏗ul =B\y`cD:׿T*wؿ>_7{/>}.җ™ gӱk_~y~¿կvo}[G B@ "ZLUۊZ*c# ؈Jn!Z @c bBqH']e^NkF 1} :>3%ʘW.wZ}g'bϘN0]$Yj?^3U1}?],0YQ5m+y|=Ӆ fjllSF}ЎQ>5'|[Vf{}+ #mAn_qfXX;d /bؘ>`cF>:"O| n /<#fmIkYڒƕG-~gfzeiX,Ҽ}rYZ{2W@܁palOX}//qϦckg{f:a=G=p&'z>LL홲gYX/)>Vkyř^~h:Ոx7xϻ5߮z=KXՖwDHgjy|{g]zW%!  xTqDE@D뭭ZLzd@%N@xx7LLh*-^3 հj/V}\\5}[Nj(idЖwjǭ/[ йԎL<271/;U׾ұՠ&˳oxl FC!Ff!KOq?ke>cCsОz0-Fy?^/b22ɉ>F9k/<61=1b}-]11O񱱱&mfm6&Ȟ{&qƓ8"l ukk?tq?>Ln8S/[Zx><|g8]Ŧph+8![nYd6NM'mc;tS4 }>~Nf儀n~X M!6.Bice{izu$~p`1w|mzB[/@| K/+ƯOORedcmsy5u A?z`aܪ뚌90x}c>яz %읒ֻT*V! VU #h=!-l` (\#[x2^D_tLžGyS3]gFcdiV]VfEVf/3# #AT/Mwoߪ3FVFh -CM0' hT#?~Yu1!:٬݁1Ym!~v  }:뚑"1cF_vN*}Rž{nqÇ4PXͰi/g',S*2}fy(oq`~,e^i_ñmȺ6%OXZG fwOoYߊdQ#PM"|gҌ3"٩-aW~͎_(Ոz$]t.|c9{~s]|xd1.H;PGǯIWN^6ݡ<(S$JaUdk37c锭|>_g ~ǧ{bll &l-c{(3[;GN1=[x-lӲr85ɡd,a*a{q~}c?~?n?%L¦Emіf齟5x:,G9A)݃g~g=a4|/~4! v wUޭC@D뭫RHz"`%VY#Pf!یefab,|X|]2>xc]^Z>F?3!#0̧ /al -3RʉRzCY_24;~5Y;6\SpԩAPha|X`q'V"!?=Y!az2:βhzMZGL}@xkccWF)Ïi,iQ'1>(ݳylyp6Zk'X;11?mn> dn'p\KwLaq}ȑ c$;s u럘_E667"54I޸'}KhD yuFr"ߗ3A6b|,ZçNZ1Q~s^/a\ćLW5Ơu99tFx,ō8[8t|-̏8%>!:2hc( 0/r/#w><`Hma%qik)WL-re]?MȌ4ű˶q:ȃl.S,?F^枵-:dmuyD;'-rg^`QӚK%.̏^֐9/Y|?4YY_cD4y#۷oQ7tӂ:Pcw6N۞?Q؜>X`780@{փv;3,w5X Mٺ|)9?xnsN _sfxfֶ],=/<^lLqVq}K ol/0}qai0fyLr֥-'*tffPvǙuVR.Rp,Lb~UK~+@nk>k|Z_$A\U9! ZVD @@D덨&)) z X) a@'R|1#~5Ig{+d3RO/3`}eg cE9}_6!kȯd$6QQHx"1}+YRXKޥzƌ|j VFkoLxB^a㞍Fyq֞LN4[xft%2d>z0Q&a( tlW7FiGM>d&cHSqS|߱u/׮c6v]l9?VcP<:67@3"]L"`騡$mGcU]gsm/Vqs9Fm~xoۼߪ_nݱ92x66}l݁5˦cQjy1OXvnt2`>ef1'O3#A̰<\'b}9E [ YM5gzddy6c d <Y}".dO.LGkgXtNxcYFQIƦ>cDd_ߧ׵ׁy!K0\kEb8ojƦ؟L}Yq >3qσηU[0Øtw.`S;('a-aMʳl+!ٸl:! 9Fq#dynX93YYؔ,a ܀Cfi¸BAtyt>o3 27̒ ^ qe~z_>$ڧnY?nu]3YY[R[Y_͞0֟M20RSl]dl kmo|VgYamЧօli~B_#?}SZ1:th%NܩS~>[~27Vp\1*=3ROқյ70%#ɁQ܍n{cz Fx':1-0dfV4,,#" @/`њ x5>yf}Q?>x5#֮8 Or1`3JN4LGlLe`Y>`G>5YY93X4o=cy⚵/ޗw{ >߿ 0g/ʀpJjT=>G؟$ncׁ8n4sYk9it0KHKj+[ͮAB77D:fmz>emV}~lM] lXL[y.~)a:ufb>W!Z5c}=˷ϞڲgטWPV+)Sw>8m`eN׋WUW"EOS*B@l+st֮ʵhլB !0"ZD!1>kFBOQ$' >lkc K/bekc=gu4.̀ueRdNȠjX{,lN>;Yei3dЌ`^Krb5 %5+e /ia>johfi?;r usY"p6DK/&oƒuߤ{ ə}KHړ >>gٕ>ϻ0Z-ܲw3:#}G̱㵌ulrul7_l >yig[ژ_@twuPS51ZNgɥJ,Ke:9C2aalw|[} /gCwmXmڱ>*MvlO3[;;Mַc~̷8]gk[9νXZy$Y} %>!fh)m5X1җYK9-Z[<RF z2Ɉ>ko]!"-խ7x1md[_:Z5AtkYFfod}]8gX4&wH2Yo}us"xl54O^kٺu 3n[0whoWœ|Azzk6z,cϲ|G{ɭhCY?~\kkL# YgrjG9|pyݏ3,yK󺏋5/Nis0cf" @u\Q8bRcuݳxR#q~`⸹c*wʮgR Z$l}љի_|9~ \S"}q\~G/6_ꪦT8ˏ9ŷ6z,/{Ɩ(CLegWɓ'v}]0}KM09>c:N%oJ`=qCDhM! Y`%Y(@l"ZoN]IS! ֋_ !Z[ʵfKњ#2U*OY̌f!Ol5:WKS"J{|oTى` : ! .}^ '&Q>#GǸb(cR5Čj^ߚafϣoWVgFW3S:њ,58Ź瞻q,Ƕgm7Cb;a&N%P-L<|X+ԧa)Zt간ǼyP~#BXG=alš~t bqc:om5sZq6wki)OlhY,*>Xټ⟯ϾY,CO(ozݏkؾ%6iY3Xkc3?"nr>JG-d{!̇[Uz(+! &UE@D띭z\h0EB``/}2ìHa8;G4ue@,W32CuXG->FF,as#3 =iˇ:`eb0\9tfϽ~fxxg>kހcpVYLߌorJDs8}ht NSf|X ߌTӎu/CdҲH# JGyv*12:+z=ae-mݖp46gFLZzEn9= QNG5Oǎ[Tm~D!ujYYu%"lOŹ},Ӑ9ص 8kpi@ʽ[p7-OJIG*>㻕~,Yocze[ud֮ds3[j>s cz?}kY_eVk_J?*؇~lin2]l#"ZocLB@L^:z*t%WWB`+z+QBoeIj Aˈ,h[ f-$VҌQ1͐{&B } Q0ƳppsDHmgr FThyGȌӯ &؞6OpB4ND5Šd>b<YdDR߯2D&+e;Xޗ#֮ٸYe(]3}`zZ{gm1˗, y++qta/eQE{^p{ )b~D.4 w֧P뮻n1d1ijku=ck 06Ӑsql]-qi1Ga-Fa=uK1m^gu+l*xC;#ae?{ezLڗϫg@;F.[o뚊c}T蟗&FšIn>֨>Nv=hKPwqb 2Ngrvllg+! 悀s !& w"ZoBMIG!@њ`! @@@DnHRf-}kѺ>qc](Pʓ/ȌD-K>cޠxX2D 9Ȼf`c2?kC*yӬ|84y#i0 }Xj&'⾦32ZIL6NEZ:qj8!NM'y`G_WwUVm\EV J$e+;S|91< M܆|#/K#?&ð{5嗥GX ,69p_Џ2Ⱆ`D닢DaD| :ρ<.Y6XX`}>_Vd*׭ݡeDBCe"]Il4~e~=o;-M_ȼ9^-{'}u">*=+wfugmg:gxY_q5q1/I6!e?Sj2>|xE$GD|tС3ߝ;), A@DTB`z*I* "Z3! =h}B`sA .1s-!K[z]"ZęLfi D&Zs [3>2^lc̬|ANbqf 1#]fgơTX9hf_aQkw>#k8@A݁9V&ၶc"Z|Ѐ~1c'AN }qƟ^3{&3C!o J$+qj-eb㏍tYh ~ee&ɀ}#-S{^8Q$i}-~rݏ10žs9{" { رc-ܲ 8e!EdHk gL?oCtiq}:x}fȵ~}#s}EY] C]8:Sq98֧k̇8|z3l0^NM^t+aVV}ưZ^z~&X`d/{ȼf?>ίHK-&Z|VNm̈mÇ{< d!{`ǪxSzduA\߱6q4w (6oQ|~'tG&SB@)iB@l7X 2j7B=zz A!v wU^! " PN9!`/pzjFbF`0 ?p 6V2*b}9Z9A缼1AjVko1;91L?O h'f,kvJcF?/szL|ky }H%CkϢT޷!Xӕtdc8Hp} [%h,|}mNa}e , ΨkdͿ,Mo9r6>e+V7^[_ˉ^5*9K?0C-HF"r.i_nnOk.ץ CF[3ro2OK>Ɵּ1Wѭޥ{FƜ9hUtzks_gDq-s},}0o2Jc_mG'eo"?E/|9\g뷖oomx-yxsΰ3=|V9_Be[#C*zͮ YWO„hC@D6K!DV;^R_! ʠVFB@L@42b3zej%u N2(Lk̯Ad3@id,fC`XQ{l3Þ C|, %\z >؁x8eծk$QYX?C>Dk& vgJux1!i>fcXck>HjlysOjdk /x|Z\iVyȑ|m&Su zؼkϣɁ:g1έ$)\ZI kʾkي8ajy$ƵOA9هi%Y{-˂+Z~ڊ c aba +{T=;s3 뗐>FD~7v7/B`zDc  ԥJhb !{CB@ h,zeuT-ɓ,תUud8d^g9K xqHFL&3ho߾me|#:څ4F?jL~$قb!m,_3.97[d3DKXX30f,\sxSꨔ=+}TaiJcYm5eY{T'oӶ\16A:疲YBzO;Nļ9ϯj4},|2%E?>qOØpK۵>W^:p 5u uY6^{k+/;)agcOeo[/cSf~LG{܆XlADik}$j„z^!m7ӟwyݺwJ y" ~2ck9D_"ZL#-K35chϙ -Ĺ(s{V' z]x >Շ^32%H Z8p*Xxy/ȌyY@>tZҰ0f8cucNT77@]#L[}Y#@@"s\/C.^ r.G&l4Vf[d,%)lҔB߹di[Jyz `5XJ:gx) c䱬cǎa,xbyԩůQq{j<:u6N車8`Na`kFtt6>a<.[k8>qmb`uk1}coۋ,s`6O]gc32}2uzuo֕.Vs5*}kr!q|6~\lu/|z>u!M?ثh=zB" 5Fg pF DʼhqL52 cyGqdydG]ޗt,<J'/s #@.a nFF<Cf4*Ɍy=S1?? 3ceT"DbFzB˜#Yq26 }֐gc6SyBLKZjlܲq4[fk 㳵G&eOl3[ȑ#gP՜< E1mYDHwcvݔS.0X;bݑ9)Ʀ7)?_uG<6z{fgS_~+é>fܺSV˃~݂a-=@@DQny߫LrB`"ZAMiUD՚W*U! &F@Dx! &G1֔?#y5DfGo69eo 2cݷY^9|AÌ>/oPጨOYiZK͈-%K},~)0UJx'˜j>T/־kF;n+ޡm $e:%Zb![$ cLڜR{Qϲe@ b^5E;sLh$ݏ3նv=0E8NK'E([C{$| *iO9j1CJc'2dy(|7X`iN8|ӏB}M[5ln_CVI8dmbEy1_XK5 /B`h=} `|a,wўB`h=zB@lDͨ+i)RDNaQB,D> !a0aXFFĉw8`Yᑈ)[cQ1[^[>k淔Sk-~NJΘQtZi} (H,TjvZk2}ܖ!:IJ`mN-13֯jy_JΈ+1ShY&D6DApJ]M5Z[LIjs k;TO6Dy5E;䞭,Y6{aۿj#S{Gf0q-ܲAT6rTy-WDQ>p'@5!l\g:dpWۅ#~+#blطoߢtM=̙̍,|ڼ1p|[ϳeL]V% kkXaK>#V_c̈́w%r#P[c%Qz,$%G]@@D]eqzWB`DDLB`-0)AFLQ /3#l`Y0Ly5#.~ޗw2.XjϽ_#1O95+?a23xr՛L EC Yjߐrd-ץSZ8>-me22?o<4-?k"Z"Mz6vٳe|} 1ɤecm\wk"%z4viַym;@^ a~ ?L 6o3.tc}l2X_ߕRmY)LAx{G*uecI`HF@Dy׏B`^{u:߾G4Fl"ZoF=IK! ֏i r02iM*hb|tZAX3073r$Lg2z0#yKl b#k#k\Hu-3\.v" ] XYZ'#Fos֎JeANDRÞ1"aIO*l.bKScVi5"4S)Hh `\z{jOj8>^vmz-yxmX $S66t0rfXSfq=Q"Jk # XbzDkcl4l:|l__9# NS`]x([Kw+""ZGD|GO QzT8%L-G@D-`ozX%B`DGIB`}13`1DJCvaC<|ƷE&0caPoq[3&>Omt5T| AhgJm%tZh ~;K'H x |[]VY90:F uӵ3b"c> 3QmY.եf}V˜mYpbzF{L{ #$41:ȑ# b5ֱ; QU=xB\~ZquFvgnZMnMK ]0_I;|$6yB5?TǯI9lM-kn.YO"`kR i֐J:)#>J5}@xkk#F?V Tk_K`Z{ֵX'"Z*~`TnB`{z{V%B`|DSI+E@D­̄`DʓB@,Bb'4iFf)ݔF:=#/-~$x0 ̱SM-n8Rt=?3~]MeşdV?ã+an=)O}l:n5/-8qbRJ'u =cywV|pVB#GOAn#رcӪh@"Zs0ٺ )ZKӓ15He3_>{Urľ}`E\d# L'm<.WEl֮QFDi$isZ˚iZ$]VDnEJw /ۯP}G= Sп hw饗.C_}/꫻/| K>Kx;A/|ީ=-׿-QG#J[[Z*J AdѺ_E5;5˓g'"De{#&<>KӰx^w r]":N1 F?0϶DsJxzm= pũNDV#>l،v] r~nwDj ?S"ZsQځΈ}3f)P'KY[l}fKcq*<h3XkG˛H_X5cɈloD"fO[`0IE@DM|I^(@D !ֻ F. oxO8 ^R|m$7 UzU? ԧv7pYisgEHYxc<>HD1VB@l"ZoG=B`W/ `0^پ1O$˒!Ű=AFCe3C!Kg'5:@bm?Eeksŭzxv3{>PЦ+}<%c# d8>%>;%<K2vֻZ˕Q4^k1wWo=HFwv#C8y%YX@ܼz^!m`݅}KCǚ,=njcGiDk苏F07c9O Ze;:Pa7z=߱L !PB@D:z&8CwK"G={k^ `Mljw/zыs=g>>uT\! 2K.+:?=MMUW]0M@l'>Wr/J`V&B@l"ZoA%B``$X3_v{(=ۇ{ çϮkF,Ͳa2C8+;3>24h'H0\0f:^h'/0Sw}en5kC}Ӷ`8V9D 픃9СCgA2 #=x?v7'Qc>x`sӝQyE|p[kp,s8Y^E@DܖGqa3c{$@rŇFFe5x}}<1ܳ 1`=Tg|t/ uƋһ$!D^UD@DͬYj "0jj#Gtoy[:_Wvhq >4=aݻkgq(jC!0gDsH7! j0c7csbN*6ٌʈőhm]}&5+ǔK aTv238½/,NafzeKDkvt&'0P2C +cPq&k@1s8 Ӳ}:]w_ P`ˎ!]pTi{ Py 4D=f\<9y̼%k\DOIj6}||m_{M7uGCfw8C}NKB[7G7IB`lDQB`vȺʺѣו'< 9yNQOOwo~;zғ[NbS~;qD]ً<1N'?ٽ/$,|B!0oDwH;! 0c7e6NòSA(IA:}lm3ja`rc$`\g-u`֌< #6 {"rlt}xCcďL&"-.47b6{{._D]jv:5HWwym0o߾9眳WN 9kv7p޳)/8{#X{9jco;L]ʾ+S`6C=_stSR * ishm,=)ȈhZ犀߷hZdޑB`3z3IZ !0DG=lx׋/v8զ.y{闿K=?soKKwA/X}Wvoi<z.5!=;"ZϽ%w 8pl9ʈHs 9Z }<#!凸)ɬL}ꀝJd3cSYTOkQ.iY`'LC#YL6+=7?+=V,yC_mgLkNh=ߖ`i#N̉pbtN[j#W2C '9鱋WD9֊t l13y">$zk["]믌ɓ'ӏ՘$ h1S9! 67@ C߱U}G==0Y=|#-5\=nRgg7W_=mJ34?/???@^+n#ࡈ3 F FTB HE'bxe$ZV&#Z4 ! 1:2#rde?e8YY~LG;8vO)/3:#bȊnj'NMf}\n5kCY{+_3S^ziЇ>;r=>'O%. ^8CyCCcf=z+i(ӱOúUN9"ZZA&yk,u1|h ׽X'"ZQkցr}ѺZ+#;r{lE >O^WtǻM^r%{'ʯJS!`t?8WWMoGu}s+E3gQ RB @@D $(ELxsFLB(8Flcd'[(x,򀴜)}fHdXxdlFem cߞ{J,[_"X\;wg}ƙ]·"Z4M U\ 5;P^¢i| ~sYO8?õ]GJsHRcӬ@v2D^=q`"C[h[2`hZ3K9" kE: !0WDkl^ys k^&ATG?ځ &! 'w/{˚I{>ݓo\/H&xկ~;qDCΫ"jpV.B@l>"Zo~B`KͰʈIɖD58ej3ZVoJw)ښ6m #F2 HiiO^ T#uVxⷅBk?IJCNH֫h#Vx'kNs)Á P`^\tv݂p" c\6ofscȖ"nV3&X-ͱ"ZW'lo`g϶5 k:,]އG,t?DO]H! 揀#i(|z>uњAԧ>+Meˣݾ}=qg$ />t^xag=k+)SԂ\ Sя~BGwݟOFE.gB@{,t%! ]}H XdP#)A};.E^e,#eT/#P|ܧCݴ:#` rmN L;;L\LVdmcگ2|߃`1N6_VƬIUG6e)7EXi^^Q6Md)iB@l62+:^=5N:[G-)"Zs! =h}B@0;źw5e|'tw͊˿˂0P.u{]w5t~AV>GQk_Zw7/^#?#{qZǫ TJۆV*- / A#۽xfDgCZ_·c>ϣ2i&ˌ FW&tLj%4#x:xg0z͕4Ş\~Z~{pB\!.+y'].F _Zp7"/Q[9|z뮻Vl>*uP^#jy$A!0/D>Z^hjQؽ|!0>栛tB@ V#G9#8f2Es+imD??~{ы^}jAUzՂd>O^ܿT/Ȱ>`'\[ɘf[m]m-KDmQG)z,Ovw3u6U2Z&au[k(+KlD,=a1b5>D{,w/}: S/}>R\ZnszsN !zDs }I|-M+_ WB`zjQeB`UrYU1hٰ9_u]vYW{{; 8)xƂ'>q|x1!l/7;xGR6ŕ6_}خ^c==E>\Is! _ǐaۺ ,fnJ3wEȨB@0[ G!B@{nOO>x"Zq3|+^сh7{;,Fㄾ=qp3W /dxO}jQG?w\D71Fӧ9" ! v~;3F!0#N4³W +(8FdJ6߿/l~"?们cz8q9GXQ+zl~~~w[ ??şne/'woۻ+?cg=Yݵ^;XփSB! @xI,uT$X_21t( C >,9/݌x$q &3 YK 2\Y0Ǔɳx-2jP elSMk֞k+;p X?a&!O0]r%ż0|+ qv[?89`aKksC ׽T.=oƽk]! `ikv3ޔ@kWCdX(״nVK[8Jf2f[٢"(B@)\"H'ZAmFipB|w7iS?Sݟv_g<MiZ"=v-Iw;zh?!~{xO~˿!bF!g>rb\" t#H:#Zp>8!k# 3)5 )קㅡ̟Tb>8Bl8-~/4qBϊ|Gg2|VY>@Kf 3Y \xᅋ|$漃q_=ij/}뺯{eenKz|xj*UCI7 506 ! G .XbtM"ZsO>&G]skSR{'kةA{YS;rD!03)?~_RG!V`=vu*":!=A / ){ғ80n-zslp6N~{S׿/\_v ?|# ӟDn%B@tMj B@ ledXO(nͣF<3:0@cuCD@B V^F2EccaakFZyp Nnq5APߢ⌋Ț0GgpBѩDDH;`KP/1; X˕`IT8֛T[Uu# 5вO[Aމ[k&Ѻ+B@h6 hG@Dv 8Dkl]so}['$uwע7=_%/yI~{הGz[=~w~?(??v \39;60PD);N޹*Wez[%YZ*u̮ʪnGWᓮ o ^<7xBP/DA+/S> ^=x!W`x:LNVTgUfVyW+bG^_P[qعΛ{?~&?}dKxxVTzH&O ml C$E g|ȍ?[Mv<>cm^Юڋ8!^/,9HYƵҥKL ˸Th 12mqڽ.M] @Ѻ > 4Euc>{ T[{A/wccRȳ$@eP.C E뾎| _} kB_3+  =,_L6³G?oo'Ubkkt#?#76DѺ!ЬH(Z~H&ࢱU Q1rt,$7 kVBvAD%/^iW|Mtۗ'Pl"߿<~X9mMעkh/ 0#= zuu5{L^ Ks]&I`(Z>&hՎwb 4] n>.@(Z7M E6N$4Mp}z| Q~~|ӟ67c~w~Ǘ:ۿkկ-?vx__'OٟUOdq|?o OG IZJuK& ժD9:SLY2~+_ɢʇv1]FރPk>DɫL5Yp;/cYwRʳis]u+vܹsH6N#[Ƶʕ+ٯm:굵T^dM] @Ѻ > 4Eu^rh#RjGNΆ[HH%@%e  PpK +b~~*"__2dQ'~|k_;G!{{̟ٟeRצWe;oV&@kM}C|ȶ__ ijEH hdI MԈV2-5i~8&}C/FB2wISHEFm h m)H SsWwO}<~~ɼ#җ짩/7>!Tj~'2fB8O~2"Z7~7(ZWE E^ 3;I\4f6N&WZ{cٖ0R,fffL`5[1ܤT'˾1Q[ʵUgsmvl=܄h"S,u$p_)q_L|sR#@:a{HR&@ѺHiߓ}2 EqPg$@m%@Ѻ#v EqPAOOoo7b-_,5~*[K"/|۷}?Zl7ɟI0oF|~A7;ݽ{ __Oڛh8rVH$R[:pl6 $N $FUVbWZ{퇈R+Zs|I{{P7??o梫GHM$&[,#,R&{,dMů@-d|uy>+8g^[R6S1U֗.]2/R&T;[H,ֲp7of Uz}aZm3ve'5\HHtu6eh IY}8)X8 P'}M$66bl/ 8 P'ԍz& 24"NIƙJ_M66 Γ NΆ[H~C8zܹ-гRbW2!Wh?FyM>S}e9%( MHڒ %^-PAć6E{;`x랛xDˊx%R5Ns|G2/jT./epJhڈ=$@)h]hߍH-}(9 NS%@:ՑaHR$@:QaHR%@:ՑaH EHPF${{ $QAF4c7G[ iYmKR߲,Sp&Ȥzff,,,Ea P‡ ;f|mq-1uvm¹ 6$cyFEhS\s0oK>7DjHՈX0J0\_{o;ב@ @\HHtu6ehGHYe[y/ * HY@(ZWIe tE뮏0G$P%UdY$0U EVM&Mf*jUMRoWݞ}E^=CUҒBB(b܄`#Z˱kuyy+mppW-?y!._֚Yj]]۷PnDk۶eZ֎=s޽,ۨj*QF=8M8V 1cɓ绛e-Z+W;TeggǼ۔+9bB/Mq\d$P%UdY$@]'@Ѻ־gZe{ק$ntPNg, PNB tPNg,(Eu)l܉H(Zpe(H $j.^Ŗuÿ•Lʳes;/"L+_QZYn/J3JrvMvMB\._,N)+"ԈDuL%bϺ@uF} hEjIVѫ}>7Ծ1S)ZiW Q P '}m(ZwrX) P*$ˤ^˱~|Eu"\i 7 w5یlsyyLMMYUy;6ˡX+B*Cy8Klοg/L+Wx_ZKoL-b5"TcQ̺վ%.h݅QdH"@ѺZҡs(?c}w$#ANB PNqT& T PNud.  PNqT&(@uXJ$k{=| ϛ顖":Vh-ԋHvgчǏۻFw]֤2E@}fviۡA /$InyЮ!8/p~9]t)n~`vT6_]0(գڽ E}mH`TG%8wGK2\y/R>&|9qaKH$@:qaH$@:qaH EhTH$s{~"] uXz9JkO,#mv}V/vB I#mwHza<;;kVGhB"Tkl/$EFm!HEGm"HETG"H#A1 @ P!@"4K{tvekQhP4ϝ;w-9k_3x0QuҢ oyWP}~kFZKN_j61@1;ԙJ^ϟϤj\+_CUDu{"C.H; @P~klWyGSƳo-rGѺo %@Ѻ(1'3}}(Zwb  Pn2 h"kSnInW| Q"b[WZfɒD>88ȢY7)Z#.ڣECÝA`C_rt;Ol!RBp fff‚;0Bޓ/ikyS(Xņ>W]FE 4I$P ֕`qoh՗.]2W\i9BԾ.BҠht}Bwu;+{5, (Z&'ZpC @Ѻ4B$[{;8 @ K@.$)B$2)w!)4OC}Y6O&\"BIF-5"GF~{疭j!-˾c—OMNNt{{;<+Hr>kE1JBd_/׉׊2}H|ɢU-TkRp},yݻbf>HEGm"HETGBЯQwg0 @S(Z7E tE."k{=< @ bVh:D2u1+9!+C+Bۖ"Uhz4|=&b#eA $1ZVƏyHLaS뛜b._|_E QCqF6գMzzW೅/Ada"hݵeH$@ѺN,G@m:OEFm h m)H SF @zxܕHW(Zjٖ|{jT !iVޞw,FMZe_˜"Q]zbDJiudighFÖ2բ}v{ZfBr>ommUp*%M]g}t钹rJr5jbuDha# Ek KKu%ufKu{ǎ-'hE晳F hޱcI #@њ hljH`4O βi`>D*"ZE=*#ڬxK^0fHuL5">~hhE`&]OER: ʦ:LNN]X* W^͢W LL J"zHBuWF hE&()) 4AuY @WPH$@MheA5h]#\M$);5LSt7HÂa5Q'&&d)"Z#ulw:ㆇ11ɍOHrwET4uu+++ٿ옵L~#RVK$@$&@:̇[IH&@ڦh{&k{(ZwoL# P-K&Sg(Zl] (ZFIvysohI!ZcHvwYG>ݭ_ߐ@~F[N>I׾veQ2dh i|qqQ86m8?V!zI}yj0/_"XB]: VMFk3E}tJd [t1Nݸq#yDѺ# TMD$@${e/빹HMuǟ'(Fu1^M$o=}P $@hfVB hB]"*Cj+ŴAZpݻZlHKh&CK2Dq( "ZmEy377q\~TgH$DQM$ʴdv~Y[[Re}'mAHirBHFuF%'{=NެH(Z{z f Pn7k# P) $(Xvb$Dku$hHRߗ666H2u]+;v]h-Q΋t^.|9%8&Eb:Vf:EЮ.}ݡEWtM6Q5eRrX M{y2o޼EFFPp= PsZ hu$@$'@υkIHG ב Ek?%hݚbCILՓB FJ.V`b ޿sɪ"J!?uT.Y/Ӫ󘶝8qœnr%g+HEk!) hψ9HH@P@K Pn$@h8rVHQb:ֺD뙙A2 sqqQVMeъ315"tf5|YFvǢt04` !|XxWg1G777l/Au h܅H(Zzy (Z$@&@ѺΓ $@Ѻ 0f'5ֽ~v (Zwa &Pn2 RcۀALhrѣcHE@DhDƿQV]'O H"dS!߽{7f== |W^5E 72Z6U2H,֩A$2Rl' @ (Z0 l @[PnH$@)h( $@m!@Ѻ-#vBIH!@EHDtD{EEDkHQM> -{oo/)"^666 $:ccDkȚ"A㶾u$P9<[YYꢑCAi򏑨CFѺYެH(Z  Pn5k"h?CH9c͚HOuǐ=9=?} hQ1# 4FԩSQcYu$WAq赇єn[DZB#.Jhih'S6UAbu#LZHCuwƒ=!E hݝdOH'@Ѻ~ƬH;(Zwg,ٓhӁgI h]w ZkmPҾa !$&DEE!CZ[Dx6ΓG)VĶms6bl/ P~ 6hݦb[IMG E6J$0n=F$@zDܝH7(ZfDc_J̾2|4XQhIsy_&z[`o;?RD> J_d|/K)buZihu$@hޘE$@hذe$@hޘE$@hذe$@hޘE$PEBH(Zxd ={_LBte:ir.djDѦ!Թ--[!SvuC63wնVׯ_7kkkƍ5S7P8$@笠'2 (ZlH\]"\& Ek KK$2[6`l. PzVL*D빹93???Ge4t֭جGP7ݻEͯ@.Ѫ}yQbiCDkΝu'[GZE 8^j._lΜ9tms5SPޘG$@h]/_N$-5 @(Z˗ tEn'{C$P/e$P;ֵ#f$@!@Ѻ#ntҒd5m!n...Fk:/^m2轵* cH $sҥKʕ+taat? Wfѫ4HѺ5Cņ $Bu"f EV I$։ A$ [1Ll$ @"(Z'2l %@Ѻ,9G$76ovccnDkD}.mYp:2d9$%#Eki ՈZmK_e:M nCѺ^ 4G޸qY EL$06dž EL$06dž@5(ZWÑ tE1{>Ν3Q GE2!4"غD4JphJF罽։!8~0NL$r(QQjP`hcHh]s E~?{O$PEbH(Z{{ b(Z$ D$(։ k.QDf,{Y )]}ZTm2sW^^^^dr_<0D)ZF?BDEok׮"2oG P[$@h]ZL$A;8R2LMçOdĆFh7 @Px$@h=?Mc'@zC E +ED%c=c؈:ԩS&QdJ+#/?11AZEBoa^:\_~ݬVq`c'@Ѻ~ƬH[(Zwk< z P/KT}qvj{Ƽᓡ\N9nl5 xPwJ$N9nl5 h}3$@$$@:IqCfІ[nVNch4ÇٿJCtm EgD|~]ʁ/; W,X߼y3!X &hu$@$h p PvpDk?h 擃rZE O$(֍fe$@-'@ѺEk$@$Gu'"hQ!c/!ZkQQ&6h+>zlnn/.G$`<@\zR4SHF!3ux73lOwvv2ƍYkeIk?oH`tGgHCuƚ=@H~=w\ c>vzʜ=9a6v.Ek|uj>X< @ Pn$@ h0pVGUh]5QG$U:W[ A[Mv?xlmm|02[8uWgmgff‚'l=W\jy9h`݆ '@Ѻ~ƬH[(Zwk< z P/Kgh:)ZD\k+++7l[?j`]3_? P縳$@ P.ώ{ O{Tۿg$9mOM$i/~ ΁ؒ-(6H 6H%(ZdLPp= '@8. ,//Hinw^AMޞAHΝ3,K(}x\־Qສt钹rJ&YZ.굵LfQir2(Z}H{ L8YpЃkLH4>i1;O`ý$lDOgg&̙J SRsZhZOΞ0D6w~LNhݩdgHj&@Ѻf,HS(Zwj8ٙ>hQgIh]!\x[8"CkQHޝ 7sssC{@]\\c͢MkmByUD..Eh1o S/_A5Q E*i,h/g]2EkIH L's|}5ǝ4ďFfi ̾pj8,'v؏7Rcʢ vߴ-Q}meEQq_ hݷgIF!@zzܗ @:A`HZAu+h=33chlooeW,--SN n O#a;Ru>֡Qඔ dQmL{!V߸qH S Kϟ6R0sL$@$@:W~aZ]s`6vٓި'~4W9#2i̥ƔSf45j_}vDѺ 0f'5ֽ~vH 1; Fuj# Ju#v9wPݻwUJLjZ[ommثFGDo$88xpT .3#Zy7իW ˦UsLL$*֩ EOC*T7_Ƶȳ^ 6pEOLx%f-{Q*K8d݃潭ع6hǥt4ez̔9{r8:ڎJS-ܫR(#2]]Hj&HaHZKuk -jy۫B"ئEߖ>|hkuFK7|3`]FDv횁dM,E4Mg}$ sqsʆNj0! -Zo~߼'Csw{_+&OW憿oA'> ZG9z׷GQТqK_}x)~VuY @_PH$@Uh]EAc$@zY5 @Pnp''Rk̽{* Էn:VO2Qd|3Ɩ1kkk\}ƍ"2/ $AuFX P.{1vM$?h}9yPԼhѐyOThC2Q>BULhH爂ط=Q)D h@$@ @ѺF $Bu"f@Y˒~$@}#@Ѻo#Lٳܴe/ Ga1_}$rK+CBZHT7=5y¼27,0| ĵmZq,NSu2HBu_F$E*( #cϪIZEu8y3777&Ekݴgݻwl5EkE}1.\'D:72ɺ7oz+\]d?%hݖb;I>ϵTh% ޞOezw@݃D$P&6y ɋm݁4_:Ԭ߽hD{$&=mW;9>CP|r0ZC1 rqi]2𢂴Şjmϧ_>+ 03e<& MG MFF?N?5mN>5w/ZZ7q/C(ٓfXM/hJo+kg^;z&|z3iޗK}tH(Zp- PQ:h-,6H`(Z?+'cbD< -@:E|F}ȁ/ WD ;;;ڵk?HL$0# S)J;ճU;W;DC"*'t\7NN3j/N{A&DqGen ҹ/bo{ E~BPz}1ĨX \!EǤl~rh],##}uH,eq?HED HE䇈 |=11yΝ;}uZ꭭-c177g班Ár,vjJѺSY37؝)Xǒb.hQeHMR(Z?#!\:$ CNIE/EΦ$gMD\ J>]/qglc"Z75Xʵ޷!}v1v~y_/j@K>|[:=e^85]{^rHO~ƬK/=R$=|:Yiig^ʱY &@:3 h̓ZNu'hEP"%`Kvfd$M0UDDyvww3;3:rLrJK_R%g!@:`3H`LB‡4KԖ w@rAB& {0NGHsPftip$|}/OUBwۅO]y[hEk& Wu,7v~y_~Cvy n>'/ˡG9>Zc#|$@$56 @(ZIe@(Z7U tEN #;TawvEʧhm2yc.+++ٿB]]]]5o,3@Pڈ?$P@LdJW)VC7rۜ w=JG{Ke"JyMcvl}iRW;iy0UO~ܜh`zv=?V*'{},q?HZGYgN4{}'}gOAW"`#6 E뾎h݇QfI@'#Sz[;Z"Z^+f.03uL]>0O wU鸞P;jD@E'{J VOMNQdOM߄yh ɡ.S'5Z4'B;]M `w/i=;8wI['BSsH(_S׭Pmu֕}?Ҥ{5ʋAv .Zd8_8 zrޫ%/q?`" 2(Z}HJu_G ֝JvHfkI ]Dv+Z̘7 =??oֈhnhrj^{5;bK:E뾎b8e>at.1r޴$EUkCT^ТJۗEkH<8NQ4F>t T5@ڞvݷy܀l]4²9$T)9Tި۴뽯c1~ R2^~ ֣={Uy`c\ $ML-༙1z'{i`lE`vyΞuh]']M$56OPݐ$@% P. @b#UF֚ԇUw{"!uWfQWF#hon~Ĝ8qRc1猰 ]K$OקnTeE-y(eV=3 # u3Kn?/9tzcqq\ckƜk#ڏy|03m|2lhUe5KuY @ Pn$`(Z  881 M)~}I~݆j2TWP|\zd ܼy3_nKIO(Zi* @B.DR0Z.hM>i 32_ Iȏ1Q)c"飼1PʐZ9z,:$NMzAD<(CQo;;w'qAD$qNY َiǥ]W>w2{W;ڋ})N>c}$ؔq%L(񛻇f}r~wy'ԣ!,2Ƿ®>vL^:PQϠrH~f' /T}3&>c0E5{J$0:֣3d $0VNJ E idvvv֏7 8_Dk_ޮhݾ^YYɢXc&DFjDfLv_yW2xk_ DX6n-YlXwڕ1pzh&nM f\0RL9@:+Hoyr(mW]/3ܰ}o]7>Vu>0]z4y̱Yj>; p9#eѰe}ۦe=9nClweW3ڵK{G;0>D v_ Bp/P1q;t$Z߽sۼ4}*v`r6L1)q We@·*%{~!@Ѻ=cŖ E[@#h=>L$#{4j $j7cm "Νuˇco۫z=OѺ=keQ1- W߸qì"2/ C \$dQ|cYyBxokXHۯ+m }?*$vxY_BDkDSH a "[dʩ [R¢Ս"haTD>"Z [n}sn:$D,=G }\u=WvXDmKZ8v>UۜбE-1Ǧhٲ_SgPv]}ΚȮڽן/KRW|b]̋ȷ5hyyq2=޾{x0 ZM>z1Gf+{ hGI q 6H  6'&&̅  i Dƿ";^&\}lv/:h+4<ii%v?9n0Юfc7}ohW,$M@H /M!A΍IeDr%&vL5Sv^mUEPG8 .S"r{%dx'yb뷽+uE}>|[8Ν23SR^#y.|S\Mծ'T)hv߼;n{|b7gfք_vl 1=^mDZص%U/ضa;h] /{#(Zwd  P1+ (B!BΝ;Hbv~xg1BwD81y"XǶ z,rfnG$PEE@earGhE,W?91aF'|Q% _}OڻZϫ>%,j2!xhR^xj . "cBtū91>ihI0ةHW|ea]x>7?:|SZ78NO|sS1׎m)hE-[TTkvC:}>ŘRQ'ce9Es0L~yLGm:׎9q_h4ny\kp[Mh]Ҳoٗ dL]Guƌ-&cϚI+BHz@u]l[,rN~^ym)+Zooo ^SNg˗/B []]5wgp|3 Gu}lYrw &NG,DTjg^{&0H N@ FE4jW| n!j놶9ZX?6Mƭ({m^yR.Mٗv}B/k+s'Ǧ{mӮס>c>䝚_2S1k&|ݘl>_[uU/ڄxui0s@S\{9'_UFSX0LH452\O-!@Ѻ%f E@Y$k$r Q!Mi}} /..j>4E h۷3ƍk'hݓf7+% EJ3Ba!-'="[Wj"0H|5uWNI $J׷g<|"jۑe='|o(m1m*nQ@CbAڪInB&[U!8KADw?Ѧi5cSrx ֚YhFtۉe^}8&in-47apIxjq&W"¬+H~]SDդ*qH>Q3V6N5eH1R>'8MJFDHvhs}Ҏ_/ps9$mN NOBstn Z~馺_˶\Wd_&S~Z^ic/䵷v-}M8ϻi0{xӤ=Kx,t fnpJ?qJyNqF{TtkMڈ{sʾ䳧];^KhͣH PgŜ$$I E$   ;333Ry3777>/tوֈLPHUF굵L}v f $@**n /TDJrz[$lôm,>QOg/O@6s| ׾ AFKtɀeLNkn$-Z~, tRvR MCN[ j{lD@[@do5 Y;/ Ǿ1]GjcO̥NfGcۍ{ߙK%Ug &3qpnya{lSp눕k+\SMuEc]+{M}PנAduȥޓGcm% y@Hu|i3; }?N PB@IDATwͭn[wߒBbސuVfK|}^k+:- H }#(Zp# h}3$06EKǖ gLL ?|ij)E<\|rJ֐ѫE P.ώ{@H5hD:=LvYmw#šhm {m#ZMKȓDop^ȸ>"77ܙ>q,XeNq^D>_A2o_w(U|rKDGD\D{{IҠH}>'VyLib^6ɱZB;Fq5摪| \g5ӧ1=ΏWr&c|狛34^%7pl"c;+.>C!_.@L7yǼ[ck_?6~ڱz{괙tquD_pG/{]c⸄|4Q87'sۮ"Ǖv^zB/|x/{Ps. [F$ [DP.IzLu]O@Qqh~&Z?zJ)EH(Z1҅ kf.] eʂ\E,S!ENd l²8y-,!FJiOHD9%mn&mV!w\Ԣm"&]| A닳QJE?*B!Ukօ$@HQ56ib?%Hň MeDk,lm9VvLQ1+uqI9,rVn$Pz }˗p̭?7HWQ;m!Pku\HZg:{M^5'!a,moׄJyyDʕ}brM ɽBޛ>m&7`}lv]µ-(PcY e>b !Z6>}\Y\T;\e]U{}Y^͡^{D|N`JELJ#HEƃ!(ZFHzJuONjy LDSMH? ҭ[|{hCzee%JF6Dc!@z,Yi ht)TT7Vn}2EGm _)C$CXȂD m<+/v&I)!CK㢨$n}l)MbdT$Mndh2|YecEACcie5EhK\t*3lws@>$OSZߑ]BդZ)מ-v>si.V͞ly:Ԯ v}|z}׭<S;%vK6/A!r-67B__2P+s'sz{?{}h^fhm=\CU/d#v܅{ ɣ .1%=ծOvWu-uru(ZWǒ% tE1{q;> @e(ZW@i!zwwwS/ıҴlisΝ,5"eET(Z3L:v7"W[ }L$0^˟&K=y(lǼqH v\$p%6k Fm#XBm!lk >H8JDۮ>,bcRO 92VDg86|L4~u@.*i}ؤv-E~*ەґI3j2J:ܺ,A}AB;_Oԗ7xHnDdX.0Nb2~5=&r\c5Tϊ\ uЉӫMӧuhHgoWgߋ_y[5Z_`;^mh=^H](ZkZ"@z W Ek/$F [111a.\`OnPbQ.6 ^ ljFs&PNi4ؖ6{>=7\D ~ƈ4v5F]==/iAB%Xo6w@8KϝcGԮyb[fr5q.$NjEhP_BcI뮌DkvJLMdbQRdǙ tfRVN8&s+1&D>7sʽiֽQ8OP'KdގbGs_=xy:F+\c7KEg:m}ǷO|{ sMɕqy_ խ]qwk˚oGDw=WfŌU=eڨu0kwZ>~d2׷jOS}mH`TG%I`(ZyX= @kPnP&p93=}<>ɹvckP*Xk׮e*e. PNnHؠ h"lC]785ң&vLjREqխI/]4H>k( @aj$a JZbKT'QOբAR 4X|0X7$W6H:r'hHjesW$r2'/oDknڱcC<5`km^u}`ql)8K,_JgOH<4~:G'Zkm2y|xIgEx/16kǨUfw?%;!:trÚcrl6/Z`>k^e Œ <ﳋ. cC(Sj61´籼ۇ'@Ѻ~ƬH;(Zwg,ٓhӁgI h]w Qm^/ѧu2Bݻj.Pl"so\} f_n(X3hm1w4aצ#iD >2fQTMa^Ͽl&g"O`'[<ur}rH~7yuq{+Xhe9u~sӤc틻:k2bKXǞ1D<71#$!>mVtj^s:f4.'tǜ]ôYB )d@t\/5b[cJ+">Ɩr>#jOo{׎ [vӐhk-W!)_7:oĘ=I72Ivj 7;3K1[~vlXz*Զoy#L&^g$t{ti R[O:a{HR&@:aH EHB$@y =~:鵀>&.\$k0MoΤjD$-5MB}5 V h>F[>N$鏽lΝяQ*9 *\1<#O*PN] h \L4#jcUOE8Ö]j,R/O֎W ׮ɨuC$<'\tp' G7 o6C̽5tc\u^[߹1#E+Wڟ۴ωx1DxO`/?;Ϛ8/=w{Ne8몌,k}r}!& .̝8W wC4GսOJieuWNcv~wƞRF^# k *1/jq\3Q.+PRy,oEH .h݅QdzMu'(@uXJ5(͠h]`DIjee|"Zs|vssӬk׮1jGX8G$@ѺND@{@U7?|2Z&kRWҗusC1ϵ759~X?jte̴ egEzt nhݭdozHu]&(Eu)l܉*#P64"Cvӝ;w̘fccch=W(Z`} oV&Y;H$Q;:V-FkiTBXA#O )DnOy9gO>껢-ΌD SsbVu]ȓLl)Kh1i&:"rT`?W8wJ+;&q6ȴ*:OW;bqiLq^,ţ/G+4#׀v]15_;.$@;ic7veyjtҗ4B-iȟZcmھrю2"gڵ=>6{IH~x⥬ϛsSY~_Ev_5>4[>iݾyH5ϯ:.uIeӢc+W]}=Ӹa6vkhzz!ӎl`^cvt_/ŵݗd⹯L+Gu9n܋H(ZshݡdWHj%@ѺV,r  uuWgf >4OG~̕+W>Z陻yy)X{p tE뮏0W%,Lk?)E)~LEuYKy6,kP}͹OM+G6CD?UPIR"I"+ ڹ0#mLa*BjQ-jHi+ aơ S'o24iKKaS/c_H1<:~cX ]DE˱c"59W%#dve^cGv:[C3yiE;ZH]9{ic%}cx '(ᯕ/)Kq8G_,ɖ3˜CG*2DkȹҷWn]{0^[oYm]YW`c>̷~>}yu63߾giT;۟UOGq(8K09xʗZ8Au E붎M"@њ hljH 2O齽AZhK6|}K.^{\|)/}KYk{ICuƚ=b=h"h]>͓&LA9s4=s&E.*Twl<Ui)˖+}g-;C}",uy];oUZ; _;$H%yu q)u☺5.s 'a d7'[:3o@ʒswf꙱뫯:w\B®{&q7qfȱXv}tyj/`?#냗4ϑMvm \X@.U i{E> -m|^ 8I^Ҳ$w|* }Dv?;h}h"o߮34WؿwBO=?̤VZ4|c,n׮%̏M.8Rxq } ho6/0|qX$x9>_{w-6kO[#o`,fm$@&@Ѻ֓h̓HP\$K@4}}bH[[[CeVGSԁ QpB&UCƿc/C$Q;:="N@XѦ0'hmvZ&H0mo_5ǵ.`'gSâ0GmUFGVv%"sy1@k+ITc'h2&p v}y>{hʾUNvY {h&IPˊ"?^E%s.}]wLHyvgy^쎫]vYXEQ{=H#W;m9Sc;mo_:u $V^}ǩ]6;| g᯵yqb잣Rx6;;)uK{D;N2{mՍP^Ҏge ೊמmKQ71&yIO߹BEMngKg\}Ϥ،>9o^{Nzm Z_4kÿfj|u(ZWǒ% tE1{q;> @e(ZW@F`yy@*sÇ Iţ_Q1@ h~7x#7j iss}$@=#@ѺgjXU"~E< IMvaB!zG$K/h q!jnph/ %O ċ^Q`}l^!Bk(]+iUt衮l˕v{\e5!T86/GlNr} })O>1vWy4fd>}]㍲Cs_D1 eXvxGQqMrShm U}ҤQc .wYkv1v/Z}ǩ]6^qjr q㫫uuc_[e{ }/e` Ƹ" D_]2qa^m{ |-y||5Oc{r1Zc?FsDֻS3lw?zLmp}/s^5:$ao>9O`kY}7 ?gٗyh]s E~?{;0 @#(Z7ŋ貢u(Z{ʮ֗/_6W\$2 W.;!wGxb`lH<S_y4aMvUG|mn W^5sh5ǦuZtU+檢𭃄<50CpN?s^|:5cK伖ڵnO8r&ֹrQګ]vڪW}B~!}Fh' Ѻ}ǭ9fd'% v`[UEPolE{>W&ԨK7}f>px*a.]@ɓ'Z0:ڱl_"fq=cʰ#ڒin}o=87>spkc_:ڟ%d=-rnڢ-eK(SJ?z2]G~]/} [^K }炔7Ey''m\qō_he^g_}`+FČAxHh} H}(Zob h=&&&̅ 5C4zcc#(ϝ;gG6x]'DF녅xNU/|YE >hNCKZ\A*ă*_@=AF룯-˓:^{͜+N¨>;iCYJe  ~ƾɤ{V&&hҐo )Z$G+S[8 ]+QemG듶b1+_u5y]{浾"vcdKoh0k(ZD[Ve˾vd]٩&4Ў:(+9P5!}LD6Nq]<5卤+ˮ/s[vvc|߲VtioߏEq~sTGб,uhʯ(K'l%^%OmTjam8ߖV]IkIZdd[oP q& 5…$ ERTQ Tr CCvabdd˒ײ>,Cn?GzW̙sΜsޮZLOtOOo)_ڔ9OR'kC–Q`T6 l벰0>v e0u6b䛽'ߨ:pk0ڎkT@ŴLS`0z8 h==l3L0к.%Splu=11֯_cǎC-gٳ$E4/r-mbcڂ)` ZJ<Ufn~ߗ0ˏx{]#az2C}nK'c ZF+U&wG5tƨNX]>)Jd._POB{4"yBW9_e+h:uB`0,Hև2Ir:]qϮђW҈ vc"fcSqYzvR?c9E A!Ty:};.V%Mޒ>eiLXT(/Q%~A[lcSvNہ:qj tIe>e}~ & ,+VlcƮi9-#X>\k_Kpm&ネ=I/s5}X`}M9D6lNyUCm%^-cZYS0Zk5lC N3MS' h٭U Z/,,%-g@kV ^"}Ao^WbnnnΝHz_/]e0LR@v'bPVw-ڊ(쁭<|,~.i{́XcӟqϱQ;quyM/hn9B/&3RP-D`uUmb0I؜/Z2/Noe"FjP1P$M٭@E}/Mb;/:y)L1S_E>9 ZW5㛁~aRFn߱tRn tse E,L4eʑqϳ1+Ӳ}vfgGa.mskM`kp^؂2mfNm9mf贲/O =R[/XЎ (9Al ʽ4&/}.z _Dtڰ14㽈YXl uْy,[fN}=߲qw1G?x0|=0LZԱs@(`uth P@Ft1 ]Ꮕhx^<sqHju XFZ@Wc߂)` 9 hV)nHrlAa 69R =Ln}=a(Z[0{rҗ'cd}ZT ι4L ҕ²Sǩ9>RvK~$EpV=c.> љœ̳Lǘf _t}h> z  62w~[P1Z3enaE!ˑaץ|,VtqeScIe_vbdtU ǒ.i*kIˮ!رwfu/mӖ0osqd>A9.~sĴHq [1XyU a󤞷b8I8/:Wsa8yL@x!5i0:Uk:^">ӆ oRqӞ%ζ(`u=:Z))0 h=l` ε@ h]Vؐ+Pi h2/Cލwꫯv7tC;xޱcEbyS*P'h= F'N}5!%C@KE yOZU30 cєspl)gti A\t̞4 U9f\Z_:v}|ϒ*r%+D`e˅Xr\!۽ʚƋÀ#9_u2ñۗy "B[`ch'Wjk~c]4G-g )y:e y1{m1ZhɫVҷmus=^b)w@;_luob1ӂ]]t3 uں,^<{]k9,ڇl* 3bٜLxh׵~۴yoI2lr5={L{A,Xy8 m~9Ǯص'lppE<#F4; eAg)7;ͷЎI^ԶOVtNia{)` )`uBv _/ٟY>mذ=Clyߖb>O0к^)0L h=LmmIxujjn֡*h / lZϻNJZ.]wu֝>Հx7X0LSu =joꕁ`w43,`cOjgV p[؍}$ivl yE:\ec)@&VNtldٗCz V'޴{jRZ҅u8%7 %^o*~ o9ʩ;4|!Xr᜔c7ż:,n20u?evAk@cʡ 잮}S4f.SSaԺTbQKetº۽ C17Csbc@c7E1Q~9!n-"c`/iB  xϏuAx\'y̵ECߧj[[>zX(g'e\9ڲ Fh6,1FQHyɱl)I۲1Sw%sX m}AU>ch]挿WYpsƦږ~g KTsAu`)vk[EZ ~ )vya!$lWqƺ`,"֛g0icrC:|/ž[ug'F>~wK_]PփЋSZwKi/| ݟٟիWrݏ~I{ܻ.nݺ':?^~PFpUW}-گf%ֵh(`t5k `O,u4}sڵaKz@&!{7f,9k.}:th90LSÇUmv>je)pYV?VAg[w!()=1Ktkˠbc:1e?Ia# *A׫u=ZOzǶ=;1*L'Ǻ R^Q:'gpQ7̆Vf{GOPBMR<+vqAv]{ 齝7fkQC@BOޮU} 3?4J6yNc'ؘbWh`"ԗ^qm 39wh9&a},m.l`?0@̬uoX7~t}Y_r=,c6R/<^cu d/Șb{nπp< ڜA.htGCXfh 6#eIG;:hb'TAתzuv=8*vMyUą?N׵echI_ObѿcŪ$y tV5J5Zv_χ1W}alzlu% LS`0z:sК_WE]^cn6ϊX}Cr/}K[??vB .RΛ)pZm$)gȑ#fuhe۴Ma 7oߞ6׾nr֢MS@7@sukT(zZ@ =K ĒVTtg0vB~AW ET|lp'zZ`ƃ|`r}c尸7k zRa[Ri3V&;B)Wm5+-{TEXGSp0ӳENas8Gdȶ;7؁4 H$TW#ŴYa`.uO^S_ e96vrX^b}_3)?eΣ}6>c6>黹_v= mpޓl N)7gM1XgܗOz. {z,m@h} V)` ZfD^Wo~sM>Oݻw׼5rd$~}_vO='N&V{ֵKj*`v5 -[$ 扉 ~%y;Uxrr hJQN@kՀcc^}{%)` TR5 +z8_g=,0pKYy˽w+|ط^Pӣ* YXwr60p<` + mgx4z_"К}v((p Xwk61X}sBOyA֚bq9 ڎXٽclac#8 ԯdUXR~`!hr#u.. 9u5Ss(}>2ub̆XZ:_ غ|_o:MZePyݬ~ݧږn~c)j{pOdye#vyYARglZ>cڍX<Éʕ+E~IrTp`~!f)W/X'-- nK>l CC~ry{ZS/Q;No|#s^׷C~eH:p`0K.zoǽcۅ'zրe0ѕ lL֬/b/s*c{iW|)nSm2!.yŴY1u9iy9{ֹّ2-ַ˩c]9۵!Fl|(Fq}@W~m`csh.4,mgcL$#e :m99=gJp@آ:r:q'b-=Fcau!ˮ1St B03#Xk_lgf>^>Yނq?Ĝ? )0 `p4˭4к˂[u) h7?'ㅍ}[L/LNuֵS^2wvk+mgMS`0z:ۚQhNyY7n& 5h}u9x˔eVܹڵ5z0*P'h>T6') 4ӐMxN3K~RZ<J{2[. 0阵)!װpX9=fДϽ%=; T-yN}{-*D@eg)+f\>IߍuOeO_Sz>bq ֟ŀ|[r`͘-X66D?IϠ]9y-j:n閽h-s OqќI7 M]=6s${IK0OL/);2g׌3pqjƼ =z86Y]5D5+uvkh%<j Ln+-@)pIQ1¥ X 51*_oU%[ִG<19uIhݤ0[LS hR^nw}MozS /zы?qw=[o5+OD(o{U%ֵh(`t5+ 0hZWѱf`;|Y̋vXQ*GX焹9~s5 ksT4)Pu ͝:օa=iclXЃ7uˠ -#βgϨ3(*w0ۍg} h+/K-H[ae<%J~qReƽ ܡA`t]bޒ˴u1MqNB%iRGٶJ>~qؗ)Y R)ibu8n^o^꩜݋k0`['VUu38|hl-oxs+ c#a{-9>v>O;#KXN l\1/ KzsHV_^ɳrq45m/'>_E=8wa+=QǼV@IDATZ΀gN#68-iK %2m >h#N+,OHnm]1[s`2@#Jr.ec&>e<F|n{Hc`(!/ k@\o9}r>kQ%iqi3s ~/~=6ۢ~1$`-ߠz ^Ү/$I>hǼ F7I޲ev2P<3:w2okB'W[r>'eʖiݤy.5Vz[6+)o^_Uw'%5χl8aзWH-ާqayv\^ "} ._9.P/ॾι3fO~mp;Qp\*g+PlXƝXCk0W=> r߁s{+a_t?n\[qO;|yoZ]k_}}iS@sZ؞)` E h]o~oo??˲wN8M'k_Z ;LE ۚ)V@>vUAa={by:'lݺ5Lד&ZEFh>m߾i&jLk.wwI0L*-кICAm,oH\<ԑSf̖^iC$Ů Wp>/Smٶ6h溺?]ERFW֮\]Z{":J-jp`Y@48l 徘+{9xKҧ<JK3PR)R҈-̣(ߔ-ji=u} &ñήX!6^ְ{8P|\Zχ:BZ҆_UY·[6wI:v}9] 0']a`s.%e̖%eqY+6Ķnlٵlz65 vb͸ҭ߿6Y[,><"BҒkgҝ; Nαm8J:=G!>ș̢-QT6Y/eXyy xזkx߆dY#I[=52w#Ƚ'V._0ꃜ?^*Ioi+`uy,)` Zo7~M7>O}SY>̿y7:;uxH.27?h]Z2` CC`tX M~@%I>h)=F`#k_΅yG#uxcچ5 2`_{d cv=>cK~n{8 N 0>tQK6.t_7?p.:}L>_R6.:z\ĮA@18/mmǮp(@y҉3 ? qu2tHAѢvzăk.% uyasГs'Bcke*ڃdXzԽ*w lskXYc}l9ڰ927x|[Zq ` o°Š{kJ+W"35η:(3>}77K c+lH3ʅE.J};ߊRO\*lqO-5 E4LRrVJa;)` *`uD |tx+ܟ6{^sȫ?W]@A—%#ܛ9muwtZLS0кZ ZU<u?ģQx5ǞO-vOcaqI-9nst =f@A6c[n b騡B6vxeJ[fgc&ؽE[+@kݷN헙 B=ڵn:jGH]ta`] wQ=v|0JnŶ2-@&B]ؘ31}#$(+t^s4֕k/s/Iנhx^A/k p޳4~$k!i.D 7٘lƯepK܂rX1挝 `7EΗ;P@>$3/`thЈgyʀf͚wa7==`0wK'a=x\'hrKiz׮]?[LS`&h`MH@= ~rֹ̃+ 0vua0{.uf׏N\XWƾZN} $ ld^0S@4:cEIjLC\YEl܊|;& $6p0!~5c]Emap֧ay] $Ľ!Ivhka)`[.F\ 3SA꜔]7кhmN>d*E ɟS'*e[qoyza1eގSK&;t/I dJӑc;"j ڱެ&Z|d AE} /;qַ/e)` o>o~0X?]r¡ČLۼys4?Eek.9uwh}EK?GZ"h-}777W)_9B]>70,) K[c=Vlw?f)0 [tG@45<\11?}kU#KOӺba)WE Dy g#xgajó9!QNX c#nRA# -5.iR߲=|4v?gn?1X`c7LXc0L{pZ8׆\]Yyr=2;t_~齏F`=lq:bϣ^Bt߆00b`\9Ե p3#h.鰣 y.];+ޤ+hpQQ[~~n,]y.o\~{% 3|l}摣eBW#.#O|D}߬\e4LS`0}tSS ǎk,BuNYHl)c qtrrkgR)/}is*Y0LSE6mj 'dg6LqRȴ?2oe0?͐g{|~󷍞S^=4סXB-,sGcZůKcot=l\0Yѥq2KÅ^R㌍v\fU۽;]|RlgdtyV94(ؓ{ Ǡ 3W,E1]>auV자cs]02j۱վ7Fo 1?<- ͫ mj\` ccJu®-fgưܹ4̗:KZOMM7wٵy)[ٹ5z-kkc=x쳹O+N~Jmlb8V5_Qz!ͥ* ++/dMu&_G?(qZ=yn}v=4su-}NO|lZd".ulg%MFvڦd]g ٽ>V_50lk{=u_ӱ9^˷r ^ܳVr,?}fM˕lUV> pd0LS Xk̽ ZR|tGݧ?l ˗oO_veK___țZgw%4LSZW2)`9.Ak֬YbرE*h pe/{[iA`}=3)` I ZI|eEL \0p59yމ0AC yB9Ӧ:]-S/ 0XAj3u}ZB;8f+Ε4h==7z振T0G<`lSv뱎v$-{B ,FefQټp1Q}L%Ju5x#67G:8YzжSsԩ5prO}c9YJ?ﺯ˰ )` z}Uyف)0$ ḏÓCZC֭[$_rD,[f6P^֢9'Sx6 E=?4kxteڙ}ϗJ̦{F4A|'Soksq_X;hg( ?^rɬ7I /sGa|k)` V&|;֙h%WXTjAv|+( 9N1]6ɌHm w-V'ܑ?ip۸lINXg1?9r,,l^­rt-ĞҳڌgקX^ven==8,aɱ79t۶m;{o#ѹo4>WQXٺf4:/EsO|^jvz ۗzWEhlOul\c\=؎7,'+2&?֎z)C/i?wTY'$??,SVhΕ~ݍpͤ #> ?: 0<~rZ3g{;B} kG܃:rߣξ(&fWM&_A\;;ydթ>~aNO˩9oe~+kiLAW_N3t85H-)` +asx.h%۷~-oy[~>O|oFVDoݭ/9Y@m@+`uw7"MMM @M6}g!JsDܔ25Ҿo= f6ڵ~}񀃵MS)mкح3>(1i -Lc&6.b׈.+ρu-<ϲ`])Ȯ&v˂1&֎p XhK.0}Y;l{1ECZCۙE)','cNp=$mΙXI/eVtb[NG;SpF΁gOCOϻw<5*[ej,sٵFAYKq(i߱gԚ69ioD5K8_枍2$+ v5ƊS(5)0 h=} w g?򑏸|3s?__mo{[N1к[)Ч hݧgf7J[5ᅺ׷Ј#GYh*qhY͵X3JaMSH+Phhan3 Lƒcj;^AE1[¸xb^ZS`sX~꘍90u ԛ lJpJaUl kb㳮vrtz?k VS ؊+;]'z_`)LnЖ2/0Paz#Ձј,.OzsgܺʴUQ/_q!mcWc_z{QbnfծEzlÀz=GA-/4JCoFôxZڌOiWZܣsp1c_i < /ӧa+VO,cicXa+KU4Gmƚm7E0xNSFuk^]~lm  ʌWZ۱)Џ hݏf6@0кW[ owzgw;tw>Aҗ=z4>ݗ~gN1к[)Ч hݧgf7JZfKq@l}ne@u)<}.h;e4J~ ZTa9w֜ 3[uuCn2va9\aKtp_Aϻ??+ `CO~^ו޵ZwMj0\+Xީð?AfSfzf6X^-TS Z@Xq*\)` S d/sP/s\p-9- 2|XG{rа,̠҅2ʔ1sm`},vhPj7p MHug61H.Ğ- Zkeˢ^.)lib2Y~f5'.qj2XpuϮ- ı9b䱴atL00\͑kvujVh"!şNۊ5õ5 w9^T#wVudzM>fڝCRn0uFZ*?.k/:c` V@fYg R@fY(wýol}V|R\C%/iy~}_j={%n?ϺQ[6MZzS 2C@ r1yQ8xf6=YW/@kQYr+/sWŸ]p?i&`JIX_1X}Z{IKxBzئNo|)\Fw7| ̓83H5 )/iQ,_q`. !h(iXYznYV$0]w*LZC`Je}p/cKm1aX`Y[uSMhW dfe^jyd1}61r>ͭ+aa;a?Ӭ5+l&Q/Z9PfkжuD3PHy[gP2=s4@Z`k>[}.Sd_Bs'܁ŖDCQ揞?&S8n΋8h?[="T1[KqzZ*?f/Ån֏Xa R@n)m (` ‷[ouo{Z|Gܽ[n]S︟Q5k_ZEI|O~=Sx;~j@ud  U@v7 LLL/رcp> Gqh U[ƊƝ8.=DE+r-X0OL7LAUūW+.D{~) <+8f?v \ 18"Xhc;|T;',h@>xz>Ωkb d/X_[<P`{,s8hc:t]N K#kw?U;te ExZ~Z1Ů"[Rq6M-ҵ,̴sn< KlFVB|Q{FG%.'u?u?al}J5,3|u .{˵ h:e_]^3y[хEwпcKXb c+"?-mLmw=LAjću6v̮pb0f7;^h::sþZimغT )Zs~65@0кW[)Џ hݏ66_-9yk O>~j}a^]|;g=_g>$˿KaT n\A)P nhǘY}4 #}7@y)}sݍ7ޘ, !@]@Wz Lu1UkyƶA±);v:CztY^:hU2>c Vji e0кb0YW^&''C=8]k֬q8H@AMk)` tR;= `b,/ż]4- /97ntcc7кHy1`uJ;g 2oOz.2`39>rY1'`ѡ=@vʀpՓh20(AExe ʎy,SCU=Eeγ>6`|–XH`('%-Zc@dɗ2`P]&&J^\vXҎ6s-aļsibeq_ظC>ces|MʏKXf#u$5Ɵ؋-4 5ӱ64ü0C*Ƣ]#-2uQrdf_-s&F-qn?u{l;3꘻YΪk$?ۜajbuRt7{h-Κ@0кۊ[}) hϽg^m)y:Y*S)g]r˗}`w!9mIZE/r/yKLcX)`  D@[fNF[o%Yhva LrƉm tRo@k7ǒ ]xFqoNO;0'g~]S:b~zWzYꚻG(l˿) jTgoc[Z*i u+`u݊Zy)0 h=Ƚkm  nF@ h]VP+uhFFFܖ-[cñSqn@,$rM7 6,9#vܩm0LV=/jTh-ec(.@@jw EB̮2d"Rwi*ciCxy0a`Cv?RiFex.Sf._GY[\t1X]N?¾R@*{?rN&Jzl 8a}´{mn~>.akPu둱'~,O O9;Bl0a^ʬs/e \%m2 遼4:cFbeX)` tWf f) A` @ZdLX Ďi P|^W۷fصkW -Lk LS'>D^q;a5n=9nc`26VH ^V\YQKV HKmzK(ktƱEP@vY0 >(0~& Ep|>UЎm;y'G_ԗMiYHWQ>7fӰXHRL39[oѸa}l~cE ZY]/-cuh-vq:K! 0VW,R×/aH>9/۰^/M]('Iz9-{фr4əR,wYuM/5 5Zv5N_烽{IwbC>ZhO6kͫD۳l$cIыUbG;u r"r9EkI]S:@0кw[ͦ) h}f)`yr؁)` T4v(TnGGGݦM mF-+7|3u wu۱c}S0BPj =,|3[NXpE?+ėy<)[۔v6A;`U#ݸWy'r0tE˛cB8 ucc  ^~ 1.պH[ɟeZp,ҐHembH5K胄a_W@B]LW 0ہ)b5pd&`~tl߭X9/7>(EvĮ 60\{B9yUi_tmcLwI[- ͂; k0izN1m kS:^9r^Esmll9d`*'lዓaO E/t3:Ns.-W6Ln(`u7T:LS`P0zPz1 h=]o 7L h]R0Kn (VZ&''U] Zoܸ t3339Iirn-܍7޸$>ػw;LSDrn ̉nŊ.k^XXp>(>D bWBi:O'z̵}2-@[`D|O-EHۏpsL)K*PYbm>0]1膾/ uG.?SDP4`Vۛ1xE/oTlvϱ5=r!k ;ՙsͥz?+Ӣ~}^}˔7li17Q,3hSZ\[]ܟul ^6@] h]V)# V)` Z] R`ڵavnE7oB{v c@}K_rEI)` }@̈:q$$puEP^؞cWf z@`ee`64ҎHٱ$`[ x?r|.v`Ock9L n•)0W ?U_c5/2c/) ccy:)+m\SleڥϗOi(LyXȝKn ̟` ܆q wzh/̵vsu6u aWS]S T͢zrvX}tQU!OjN~UTI9ySc)} V)` Zoߙ@Km )y:Y*S 99.Ҷ @B{AuZX/'?~}t>yҘ@_+΃xZ b<}5Ӽ (g@ajo6" {Ƒ  AV.EX[-}2: >F^X<OA&r:5<3x*J}8N,4,ȋزD*2o6KzyQR[6u:=.P_Ɲٜ֠65>u@IDAT͆P Jѭ0Ԁdb@;7jciccXX[߄8O;X3t,4 Yqb.{ZQ ;,`ckuZgSk!)RmMS7 hݭVSO ~3M h}V 1LS Iy)T8رc#f͚5i >'nmذ\dޏ~#|Ϸy޽9)` @;o^OR7BIu݆QF`l6ϱOt s1m $a0!Kڎ~ E+c0zo3!QY(4VO86RsQ>f5Sxݔi=(U#j`Qi.ql^` _x˱R_lSnII4e)Lۚ6ylvq/ L੺P5*7{i8jRt[kX;LwW'Gk^wOw(Ѿ0 qj}zb*w&UN ~V@5 2֍ 30 3 0Z{.Z @n=|Qܜ;<`avvg>nttՌݻw'NHj[ݐ:a].ހ5vؽȲeZ7Ro;/3h]oǧǣ&XZ0LT@70zֽj5jS@ڤLS`0z;ؚQn-_cccɓ'SΕXرg@R؎)` obRsQnʆv@uĥ&2̓<$fjzc}жڡ~ڎq (5!gN([fNzҦjn.@aMo +;9ۖ7R.;l<Ǝ.GQ/φR^lla$sR8wԩxr-Wȑ{pCոNdkޙwjxnjDE-#.7 h]5 +6rovʽ| o~3WJ4[zSZwWo]k 4LU@XkV`u df||~Q]ù T"СCpSg 3M6 LSS@<,)*zjaÆ0:ꙺ~F!{86mr4ۑ#G-A{uv[ %lk àzrñEwbOnu@n @;; !(V&Bx0mp?a^t< X^: %P-rZ5A0l}غ@JuO10%t߿ h]^+a%փק"SZwN[+ZwEf0@ =Q`ڵa̛7ovR!/۸qmꪇ:!k@&d RVu%+ zyA|uo{qHUhLX%跘wԘc^fX9pxW?cT\ma_ x ^""3XX6/HY9695\:Ke/`T؜1c0^Ԙiَ{^<,}qm!4yLUoIVS6epuT?Luj-TU?vh[[/ϱ3R}ޤYN;W]kשa))` ԯkj%*`lH0zH:ښi m+`uZCĒ@"-)<#%Y5޳![Uvd-y %lk à@ DsA:@kO`vaN#B˝2Sjl@x1 Io9[M)|\H-iz k.10zWs=a[|K:{gZVΝ;iql~ l/ NUғUe%%ԐeMӘh[PA;=hqCTtڿ{ *wm[ulɭg@k{Y"wTK֑XڴDMM쳸0к} c%]y1^ҍLS`Z/bLS` h͔xSO0кO:4L+`uϻ S<~7??^XZnzzZGUg}rnַ:<@` d fZ)`  ˅Z3W8=5/CEϞ8M+c'=Vg f @-e2F`ʍ+޴SuKٽq~=}s`c@ơü2x 0)/5lKyyM5!8ƀP$ ˗ ?v\^EV 1O:qZ0&mOa{>7=Z֫NvY *6WwFc+ZBu0UnSZP0LS OtT@c si֙s<66` uoB<BUhTxS``0=8Ӟt, .;2hL{)e#GBꇬZr4MgCظj$x6#jwM7u <Z 1M 0(.jANA.@ka'b5n6v V:3/,w[׬XN@OT- Ps6NvOg u\gMpCh`s=_2yUКy$i>@20{Vj  1sPnk =Am~E<^ ^jvmel&к2Rp9P`(`u/:l B{i sf)pFm()y:Y*S T{ ֩Ph:m8:w7'k.wdIS9S`:i]cFnl ku  w30A~ݴj]3' @O>y D׮)~̛qx2ifv,}ε'+N Sܗ+ bDNLM hc,tz8̟L7ֺ__Z0~=Ww{0֩{Uu:szZtj5w@-֡O/,f}sVXɦ)PZשe փ־W@bk)` Ԥ5 i k'OSX vdz[YN [ *P11N1t( ZǮU}}v&anX;rLkX׭5RTckZy:qg1K0H5!;sS[/)۬&ge/(t hݹËcM+`u,0LQ@+*`uT4LS`Z/"LB8=??: ,NW'hqF:pIw0s رh]V) 0(]OgS0`Ӧ~Xȅ^,quVe;s% bWy$0N80,|NH9dr al585xk{Y==՞VZ NsXüEVL[ZT $К0$j .kDh/ uㅪN#Unw<)`0:֝J6LS@Skѐ)`u50*+`ue,+011֯_DcǎC-q[lY#'''`00\C>y^=Y`u>65ʷP)Ȩ eRf,}*frʎaqSL-{8}jw`PN֝Pu|_D@~}+`S00:_+Ki 6L>W@>@30]* ֮]#G8֭[cѭhf_uDdO|v/ZwS 0J̪ 兀W8Deu+eI| .Uޯ&{./ಉQZG.PgB.0-eܳq d3؋r16W60_`˜Wa̕bG 6p>csH=Toloy=W_+K=n3u%!^)2XZS@`_}'q< >@0кsZɦ)0x h=x}j-2 @e ,eb6nƖ(pA733$cY/,,ÇGHηrJh޽{0-{luY,)П 0JZSC2(fU=/-3c@p"r, B]G /c+ܑB)oMc2Gjxou`c[ 6t#㉍aRƃ{1m9㫨:5Ν;O$`W5U2ފ ^nְ|ߛ0 k( rNli}k=`_Dێ0> VD -s@k6@1=ի6L @Y3V׭ͦ)PU*gLS`0z{

    .;nxQ ~y&eq@;urݿe*}@ΎՀW_veG*c 2 ^Z@4>MVWw0кz[m) hg֛@w0кz[m@ h]V)` ZhZ:ؘw0ϻg׮] ZT99np۷o'Ps뮻쬊̮֝J5N,v^{Sᑣq7^!|5xR]@w<_NI@) *u:#M4HLQI%13v4JtSiIIIƱӑz%hY%E!eG1k1eG@@ .Ԓ==fg}^)cb52͵zaWbדԝa9D0m;`Uyjqx]{$qhe{ѬTJmԷ\% 6kX=aݧYrպu'@Dkyث wԷe_"uחA%hZuחٕu )B-!h4R"288X3fD멩DAg4CE;u?(d}b-;h24L0IΠQ.w-þ/˻wﶣXBdV*9|$Zާe։Po=ȰzuqEFno -EeXo4GѺ9~ԆEѺ\l! Z7ǏHuK @B1PYZio 㲺vz.~ɿo>mCdaa!LAn9R@& $-`MT Lt=ׯVH_&/4Ek52yI#_wYѯ[P-KE䮛0׼^˲5$藂8 Z7O̦n7{=lFvj|it'F>nE>ʼ} E}vuދxp@=pZkyp@Dzt8@"1D@ 3 "G 鶶eeeLFFF|Ϗ!SXٳ'T=jGU>Bq]d@HYo +2T{/Qѩm]kkK tJ*=iDа)MZh_.櫫:jۭ1 ΘؘQkלiTZ\>skgll!ͯIwg4POoνԦ{oC[겥j}x3G\1KjKeo}!$Z|/s 4KѺYԇDѺL\!f Z7KHu @@n ZfhF4#KEi-..fdv Cg\: (.q=;**2{Pju*XL2 QN[oȴnԏeLaviͧ^ǰל>`ZngucZ.hH*R6dE$"U+wUVz~YMn #h (Dk@ ZgEIdu&AA$hEaH%pժ9s& vdrTT䓟+9Dđ!'FADzr\l"_J#VTގᬭF[!ҫ3zFνoD0geqŲ$oo"ktk=WV*[{SPZ_ǵא`A+S|DLm̧כ7=-1&hG6=sG/,ɑyyz[픗uyמC ZGgF @˻N::3j@ S3 0D /Cljƥ'''kXK@w}cǎ'|4daalYw$A l$L7UjvzRJ'-H*;ɿХmI~ ՋϋJ('Z8{Z< ni\[b2R=?uwe86]:zf+9ӵ2dIzypͯBޫ>69e/U8睶}kzmyD#U&EZj,$M:n´uV@q@0CE"h]d.$h]eg@F}y쬜;wΛͱ #Z'Njgk:[h OҬ'wlvU&wnA]Ns+v_NQI^,*X,.*Y7LLt]N^靼2nq^\JFm_w%lŊ2b|d!U(oQ,$h<ݨ*= G6=g%UcsV+ڌqKvљU"C Z' \@1x@ a ;@ s| "\@ljRP7n333/?ݻw˞={Or5L[Фݧه @$8{'itY]+?oj?IW#bkԬeN]XZǕڏO#y*\"YL.ҥY:&[%x$#hG%z>ג3Mi9bRZʺźo-"oz0TET>nmU&A * *D묮 H:˜ @0.$h @.%,..=C#??H&JE<(6T>3 0VRs ۑrW]%R*?a[˻egHh"޴~ׂ/c2=l,a1..av[D!h)½_EkLIh֯\=_MPUyL}zXHjTEHD<cB:++8 <@*1F@ + @n @.ݒ3&lٲŎmKDlz߾}F>p@B#Z׮79(\{%K$M*-,Yau]&+:OQ;2F+uoړfм9I&T#7tUzQ"WEӳˢQIb]m2B=J&_3'6ɇ@%x~{F?e *:"D`Y>htj}?VH^BuVBi@N>}Cy#hc@ӤOhD@ @KLEFFF|[/k~iUH4OOh.!Zr4"L ilqFin帋VX5䌁-D=#*+>aNV}(^[[ggK+H[t6tOM__[ A >DlM: l@z0D&h @.3exxLNN1#d3ȁdaa!st  diܢfetՕHrN~N։3~efE02vuN]2cwqGikEltwi*K>"hL6+FtХ>x^.uD*USaWrE&h]en@ Z(AE&h]en@ Z(A a ;@ ,ZF!Vf ƍke:$=D/!@]QEͱWW6MuEɊi TZN.k,6,`!Zv޷0 /B_9 4DUVZٮ-Q9s:>U7[f Z7Ǐ@ Zk- DQ(Dr7- D.*Sb!PTZEH@uZT*zI&˛W 3%b}Q\#Zj,""jjn$=ZF|w,=;ش6ao=w :e}ٓt:(0lrL~#hoį= *eUY!ij}U @;![硫HXIU ó$ Dk@ ZgEI@\9D/ Ç#P4Zj '|d=??/.\Q1 Kwwwddaa& gٹsgI։"Z]nNB T躮#e\$höhZE`PM!ZD]֨Ԛ4Bu{ ַw9a}6ЈϿ&T#Q1 B2D(؁ H: \&h}; Z"M: (h~S:(-..li >%yf9199)z=-޽[vPE$k{ه@diL*+2x.l6+pfR4mK;ߘhqyeY\ͮ{\O6}B5M&I.R4=xL/d?Ҽ,H@QDk}Hj':uDjOU.2C@--C#h]5eF@|cK@ ZoMQ Zl. 0"*VoذA"sX^^gϊnIG`ddh;v=#S.dF\z @ nYsktAMnsoMb*-GM:MהLߕ<H@^Ek[ԹzTQJV7ư*/U}롤Y[}(Jzk"~C vLpճՏE#h{zG:kƈ! ZǞ!@ߚ1b!h.ZwwwQUi4${9o @{{\{/Zi߾}?LsT*ѣGMErhc$p]ohNoYZ|wde$(tȦڶ1 &Q;HvwoMQL<8 I0Eh%qV?ofeXkᖪ5bu/3܂wQ롢Yf bSW um~ uwMCTp]xkjJ$|G$ه@:N@> Zs5 Dt+ O\7F /`@]y7n(uܜ?Tщ)sYk,..dM~2Kx47z!HEME]YKLTC=#Zk$kI#J(]/]Ny,\|4fh2)ҵi,uᗘ @lTlknyDfvm5zi^=?I[˫}ʊ NھMgg95!ZG%Ff :O؇@V4#ZFVZ#V'%UAzb2=c>cW.,Λ1A,˲hDVP @,˲hDVP H:Et @^EkSa>U핍7ܜ?^T&I+:݋d8 0 NdhL-MtDuG"h+r4GmC%97ES!6)qg ߴsY"$Zkjԛ{/E֨z.4j=sdb^OUhqvmνa#Ә7#N::3j@%h]޵g@tљQ(/D=3/D,$Ӏb'P4zrrR#skooZ:;;]^^W_}pQN'E~ @IDATokabb›cϞ={dΝu_HDk[J~´]s 'EG?j=m$ZkQ$8+l׬hm竢I0ExwCv`?kѺrۦ^@E[h:4a=|sl2z_xEi=[T|@ >e@xu|li(D)3*D-8Ӆ&Wz˖-7lI?խgffdvvn9NJCCC5Q_ݻwˮ]DY/!Y_h}{(HD4_\: +2 IJ`AeM+h/ӃU'A kTp~E pˇYѪ[r>rPfH6KRK{^WWMȇ#h[ZGѺxkʌ  Zǖ!@.ޚ2@.ق3]@ayGFF|<66%W6n(mmvZ|)3/oRܹsرC 3ZDkyp"MݵGӏLVj7]%gFkۛgüwJ*mAAMBns^A71 p5uEI"T-yȿ`zO{d8[E^"C y3G@ vHu/D#Mњ @8:;;mUAI#hpI#`rQ}'*ZIHֵk0 VHUnD>櫫 N&9﷍Fhm Zw_C!k5)9ח<H^oq@$kJTb:fE.[_h_wMt5sLN]X+@|cK@ ZoM D2 P<[SfT2%[p 4L uww Y牉F34 /T*Z/,,C]GlkM9o̝\-EETTD%'N-yD-9.`֝yUa9Ȝzq aYVL#ZGM3Krf!ZdnDk$ 15 ImG+U:tUv"Gn5?ӽsLȇ"hh AѺ$  Z'n B@.222@.3w@ "*:/7nlYWWWm!WHEv哵eQI̛Txt+vrn:$['KLnK]ŕK+Dv׋@WlY_{rG6 [3r>AuA1?}_VKڶ*rԚTVZY4j5q֍&"hyH:Ƙ! ZE~!<@1f Z` @<&YIOMMՙm:;;m/q!aH:f5&eUN;o(;D_B: -Be'h]+CQ ZGEYdu!A$Gz``@M3338 6l,3՗#aknydiۦ#?;;j{\jUVVVzq;sPڦ1ͤݼysxM~24;vݻwM'xBN8Q^#hͥ0In*(RCr%%KV\q;NMcWiO#vy?ٺ)و*)Is#A@,y²,s#ZۆzNkl)G~jc;m`DTi@{]9!d Z'Ù^ b@.:2 @ p@̢KLD ƍEZ{Sgoo-{;ѣmUhךT*V׺uhNTFUY#\+(*%sss)ᚡkɚ43TmZsa[UB6Dk.)"W6^* Ջe%Dq|zvUUH PA$r$I}tvU-VY˓/ʓcraN"Z_N{wxp Z'Ϝ!@1r@ y3G@ v6Dk.@QVOVU$ʹ*}7#'9<Ѵu}DݑJR[TV$ik=]?ZWϫTMzN@g!ij\_GI: oDZYDQ TȺo9VKmM#:Sb v]Vŀ4UYŕR=mun6E1?ٺA#Z пQ[5%5o*C~ B=zDuiEZc/Ȭ>c[nr7֗Q$czǯsX~eȃ'h?czCѺ8kL ZϘ @.Z2@.3m@ 2Dj*sYc?"MPyZe련Znaaَ`ݨ$dt$Б<3d\H ZGgF dI؝\X;"iFtu%5EֈԚFjSH弲u3R*%%M$8W.Fq'AM@E;6گ8jw_OM˱K&Dk/wxGwu(D%3'h?czCѺ8kLJJѺ ϴ!(Z*z/,++F{µUe52,PZb^CaG055ea˷^{].lGB9>PȂ@ 8?#]jodjS9/竗zulmEizfiWsdkI~/ hZI,Jnˑᄒ_J%Uj%D B/!Dt+ O\7F C: u>׍QC2D(؁ P@E둑9g53 ۉsVsWٻ/38tL*=kTe*[F l8Kʽw]v5|򓟔S D+,؃@^S.,@grh˫`2I:9zSZGTQфh(95Czফ@ll~-WuBuG:NڑMQDG'sa: K] Z@XaIQ5W ó$ DkuCțhQZ_>y}'ZJNr N^[#*^%GVY#@{\Z߉a]-;bm#\reesN; QգrI9qDCѺNA 6uhpXFU #";xhg\QDg-A-_U"[E`Ӌ2YiVv!p`^͒oTV^iԊ̒X}̊\=/ ZǽZDk3G@ IIҦ/@ 󾂌Hu ;D뼯 /=D_BțhpT (äTZTeneJkmCf$qm_Tj ]hjẈ^CI*Y۷p.h*V?3VvR Z)-B n&Wud}e{WDV8( E9=a%OPx]oGM*M -x*íxʒIG$Z{ks%w*UDB~˴zsU[Vzz:*V2!ZfEh%1!hwzI:ƨ!t ZÝ^!|@1j\&h};@!RxWW-AZ#dla Ν:Q [_&%~C9V' ju x2J }FW`Z˛N(8uIAS%>qŹEv+)?n[(YCHb A6U+uXR3ݓ,׆7c@ Y7@ ~Hu 7D| Zs@G o˛fggmQ֛qq 85r~I^;2^ޤ̌{NچS_DOMMoiD%kzMRÇ"@:4 MCШמUO#1RZ"gH:v=>_5M%-H# 0{74U"rʽ7$"VOXByyY;juBӬѺIaE 3u!B!h` @ Z`" ֙Y  Z7ƍZ@EVYV_$hk5RF(*ZMNد5yx/MѣvkI@N7AJS~}=w~&$p:5FL#EkuW}*P߾j-;lEe8SVj4{M#h5c@zcO@ Zo1 D3ZBѺ%i(!MEYo:whTkhk~ٱc5C=$Ɍu$5u:͈AѶ'8@=[wnWsVH_X +1XZBNwEOJ:*1Ce&h]g@TQQ(3D2>s/DB,# 7zxxX47MNNFN1B`޽k.p>Oɉ'9?DZIMF:jrzQ^[;!QVYJ-bnPmdN]XՋ#Z) B0,Z_*Y"zFVyZ߇u;6Bi!Mdɿ. Hɬ@ u!CB @"y@W Z_arI:Ơ!M޼ytvv֐BABF ܹSgO>UO*@Nwe=piHuIiB-!h4uIiB-!h4 ZǞ!|ȓh=00 򦙙 y sNٻwkJr SS$h"|@DdkgMU+}AQ+E}V/M-e'gA,T/ʋsa0uXTeE[m=rmҶ?iE~}Eh '!ZNC- `(@!h` @ u0#J@ 3< D -C),[oUv!'X+q[-). ~z;d#tɖ IE}vkҪY u aR  ֟~ENwŠ>E%h.zE:_h!t Z˟!|@z1Z@AB _y|%ճgȄ@ZO<)'eaabA\,mD tjUSwX3Ʌ^J&vu7 $%Jځ`E)R;!wy_A$I:IuWCI@N6}A 1@I@$ZKwww:LNNbM>HJ<QÇ'R)@N lr{vk۪4g'u@*ex}{`ց(D Z'N @.B2 @ ։`@  L˻F O-[Deoeo6H~Y~ѣP8=鱧jZifyE4ty|*jR[Iǰe} 'ucHI0wƒhPg l;XI#u,Z%kRc֪Zm2W~RoCW Z_a A8@ D+,؃ D:!q_ d@D둑_ncccdB I;vOT *> 2@: C`C6uqdݾ;"ruZEC'sRkŒzuґ[4 8Ѫu`IՐ_ڟKRIuk8  PXgf uk8  PXgfY`^\uKqXI ޽[z<8qBtA:(AqUѤo̒^=UzFֈI0u-'e'Z}%W2X}l"VSRk Zgޓh,!Dx* PL\WfC: u1וYuBMȋh-5s]^^|2 n+;w :Qn ZfhDEyqnhmuzX]D밤(8Qo15bu#Ԛhfk׻:m/\ӳ}Nqb 4GѺ9~ԆEѺ\l! Z7Ǐ@ Zkm ZpQ  ֋299 @=*@d_PKCCق1LS6R3 \=]C#h%cXKz- EiLMM!P!#*R6j:z8p j5uf@=il*hSwl5 Q@Zw-x;hV1DMZi4MX2FvFۡ^g1螄h%1#h{zG:kƈ! ZǞ!@ߚ1b!h.ZONNq~J7|-V[6qRÇV\ Zxz5l[g-geqbXu@E]Yj*X߻u@q@t?jҨ*V:*GNA}>MUVdj_HD '\_d ώ@ Zo͙1 8DQ he`@E/j_~YVV\j QkVZEk-Ú3D 0'NhMѐc9h V-fg+jkR{*鯿~>)hm"C>'hяQj*>Oȟٟ-L֭{G~״ /[5y~O6={V뮰[ZѺ8i (0<ZK~Tʓ*UlizzZ399YOFq $-V?tYXaIQ Ӌ2Yi,ZPw `fi5Thh,zz l蒻﷣WoYooي}Zַj?n:g?+oxk_LMMɻˎd+s֙X@D끁ї7ّ痀~ѫ/qvpp08"n5RnIK:,)A>SiV=vSW̯EIr^  ZDh\ p149D&-鱹W<` 4 ZI!@ۊ1^@ Miҧo@ ob>9[vm;u/Y:*3hrr}bM'?yGj+ʈIP@,Z̈H&U[-jVӗTT/!h =B Z%ӳW*T`E˫Nn_qi1Iֱ# w/IO4+O7vIgQ>y"uW@B \ȅ Gڏ y Zs!7"%ݻwR` |K_| ?y[VovD}c!<ȃhj;wNfggk>G޹sY+G|I[v"U/,,yڂ"":#$1iϝ7ZeZo/$_tCQyuFh lrM twwplj%#6qno- ]4A@RonۂIvGFl['7]ۮ=duK0H8ѫq@hxD +MED:5`K:,)A;~IG g x Z{p{G~w~G/R~~+ToxsK79TooQw]醎?O?PIVBN6}Ay&h㐫E!uW%EJ]SeڪX=*gvSm2W+A.T/EZOѺLi1Y*X߻u@TF%جyjꔃuh0%h  Zs @B: -Be'h]+E;)nCQ;<(jU4"jzN!?[7~رC.\ (\xѩn>裲m6y[*N7 7 _s='~'&N@^ AūQ'}"ȭ*vd48buj֭&J{e%F|uղmLV2mvvyU/5Ɉ@X:Hjs謳sqhVFke.ukl,/j Z뮻N{MMDϺ1R@ pW@ n>c|5v7)֭={dzN!2 _Z#Zʯ-{k{~ILOO77\//OOc\6>Og?7Dkʰ@L ϢؘybI;w}'FGGga34D8f 4*Z"V+CiwTeEWjɈ@Ek1u;6گ?2 = /:29* Zi_ﳆK ^!5HȀ `$hmD @5k@HڈQMo|#O}*tu(I??\?4\O޾+rM7Ի.e_^x߮:;;駟,Vk^~un*۷o͛7UWy[J+!ZE~!Ⱥh f#o rVj}90iYѣXͺ6B:I@N6}@zraEAZ:jU[V@n5Qڋ#WyMh$(iΊdb^cg+QR}$Y:3%h]'!!h@@^F !Z/%[?yG}pWm&~|釈|+}Ȗ^y{#===vTnJi_@ o.Zwwwp ȿP PԑF#W8q"5zuTio _v߈AUe"I@N7'pZ;W#i’җTkZFE6UKGq7Fۮ?vl:t^s~y }po|C/{p @>{ְ_18uԚᝍ7tgϞ'#>Y~sω>$䑀/9+LLLq=p g-yqzr`ĈmjMC@ƫժK]Wk·A2!C&}积Kzf*E$A@9IOvv&H`p]9_HphtxLI?gM 3{MM}~I R]Ԕ$dÆ sرTioT5B]w%Ǐ__5ȑ#+QXW9z!S4鷿mP)@l42]L[# k,ugnnNYDyx.\^xA}YyWc%B 9Аݡ~/H@t[{_Y'kuQOk NW*]M+c6v_Sg-i hAGVipe!h~kj3{M  `ԚΝ;Ic"Mફ}>|8U"֩o߱E~O|"t5M#i}crwˣ>*gZ"Fk~JTj4!Z7Jz@ǩl 7CI#kTtң| Zg}_^+VRc#F~iqm;yqU׵ JA{~kW Z-CKUn&`TLyhMBDzt;gjݪ^3Er AO h\]0؅ @:! Z`8'R?i?P ׾5Y]]*V?PU}O,/7G9w|'8 hs?s~97U7!_$ П={L駟%5)lڴrΟ?/ ,[@@E#o߾Fi}?Cj@OlOmjҟԨY$@ u2>~\X(j[-}I1 7H@# Ok҈~i}:.D32< kM[g>jUeU-[NX[n\ӗI)]z@Dϙy@L^S~k @NWfgg @>rرTi:Uw ۿ|ކio{L^}Uٽ{w*k|-vdk;8rAa޽/+S~GT"9/mqPXk?j P6t5MD4<<+Z/>v[!4vig`N8!O@ /8}ř_z;d#Tϝ_ZSn5a-9wtU˨HP~.^csU}$_/INvκLye^fƚeJ r-+^g'Y >/5$K"G>h]ܵff@L^S~I  P\)/+r…NAh&wM.d5"G?Q7)&wmo{[:BA~|_~S}"來M.9{l'oߒ˿ [e[ Ⱥhe˖ˑiKh'ՍGk$S3n:[J:jhmN%JtGɞJ d4%Ye}{〨duOYr/ڒuԺ@\"]Dh(  ZE~!<@1f@ -i_@ j^:;3g}[jGۿ[[:|#o}[w3ToQ/BVVVDEյ{=)|PBկ~I__L%**ue iܬFVqhhw| G@?۷OFvk"^!F"@.2։z+2ѢEiqlذhÎ*''O:x믿^/$*y7?o|k_9y_#dy睡lo;#Z7C@d9~ YEш֤={"G>y *Y Pve9umF*:;r[v5uk2oE4.C=kҪ-LuC_x݆; uͶ_zb-)ֹ{V;76=1ȓ@IDATci1@n':u@L@a Zf) D  PօY'ow]~)㏋F… u˛N~C#h_~bv~[[Ԕ<߶]SQ / oy[sD̓0 uqזA'hzuqזA'hzn~Ey婧ZC??Xok8!G~G]_ [DG>"הYn8?G)>P ?,SSSX|Ii{_bm۶ɷ-y;YS& DH wY7ol?0;77Gte/]dݢRhTTo~aQKFVI9J1hLғ_c_\(/-Ge[Hբ ˲<)j\jb^#֖"@j>s?dc&h]g@4xQ(7Dr?@Ƌ!]__K:uJ;&caٰar /ۢF>t萴׾5MrNf[(ĉϋ~}"яh3` C "~IR~l9g>#~ :M @Ek WZ՜ & ;w E:& Au 2 FZ E&h5=FDlC!@0D`F @vH L:% Ѹm6 ꫯFjM峹HuF/ϟ?oG>{l6 :mo֭2==- i[DV=@(Z~p7Hl-vݻw A :!Pu}>?XnҊ tM֤[2dE^^疥}li>j4Ȉ@=zRcsg(֍&FQ/z֓Ze2} l@:0 @ NDlA:(!`$hmD @kdM5cteu5)V?۷~*\=* S2@-DZ&Iv"8jDځZ9F#)Ҷ#b2"Z._ð={m=\}%X7ȓcry"X7$hec@JSO@. Zr4 D- Kֹ\6 +`@=Yf 255U_(QO<)?N#h?jgI\Xi+&+Z5~aZҪYׯ& Z':lZ#7&c\ļJѺ+ϼ!F Z7B:@Y Zu7 DFQ(+D벮<. D,%b&%Ѻ]Zd5I$JJb ɚuk8Jv $豹WWYL̶uaJ^*Q"moI@Nvr}aEVv+uI꯾4k,5 P8օ[R&H:F4 uᖔ A1@.MC#h]%eBe#h]g@$Z Zʙ3g٥<r!R^)L:Nqҥ,u7G=uaYW/NTTQEz;i J:̟lw`MǭOڒumPE&h]en@ Z(AE&h]en@ Z(AE&h]en h]ef@ dI޲eMr9ovUdǎ>yz||<, 3F$h88[;6$|UfՆ H>K-g嚞YQۧi;KNDB8LۭF3/?kI֍9+yy!zuWeYi u+( PeYi u+( PeYiYXօ]Z&@VDk|g/ʊ2dӭT*rAH$@ >l0IUIv6TeE٦>T5Ѻֳ%ŕ(&K hmZ!V5zݖ`hjMU)K>|0=@ FD#O:k!@Z0@ Fu ZI@ dE_}}},..sX]d޽(֏211!n"]"{^ټysuź$NB!NB#!nB]pM>2_-iC^tfʞE%P{3KѺ^cCg:5% OC@@WC"hxZ@6ֵj@ ^oV FѺ6~\ @ny Adʕb|^f_sx  ϡ!w0Vbm>@Ѻ eJIЧgEbEWѱyp|Vj@{Rc¦[Fc2]p!n!D/3f޶OޱLK'ˡSr "h]6.bJ:g@UE@L Z4,uUظ!hX0@  ZdHtAz9ΖoٲEvYvGÇmG@ϔC`UW ;&45wdtY<2@U;օqtdd.A. V h=@?Dkh @њ{!'h2}@i ZJ2tyllL^ב/H\ELQZٶm"Nرcj!&@n"lj:dkFg3!:=pkkmgӗvX zr~h?b}Sz򕲦r٫yy< PuyF `@6I PuyF `@6I PuyF@ Z:D3F1^=[xfD@$hm` @<Dh@$hm` @<Dh@$hm` @i6 t/v;HIjj>ZDU*6C'h|<R]p$'g%mK֯OsڭS~wlk>D1~~W7W:5/^< !P ӂI:aaR@@ Z40L $D@IA%h0-%h hhL&eppL&#ccc%Ek((g~9 JZ%}\P< W Zs+DWj/yCV%$szGfskny˭-u!hx}`}SZWdME:X`6@ Z;>D`Ń@&h0;@ Xf ZW haSZ3g6ŏd}Q9|0uЃbK:5fu+^Bs+!kz:.8aTx39=*5-ǭ#hX;6dhJQOAC6h-Dgt@ \/f uk3: .ZKѺ5@!@1!j:J={lFk:h0U j#Y9r Yu A.*ގ[攦E秳4;]yو֮"[Yhlo}[Ȳda٫._[?OЩ)ydt4u@ Z(L<D B"h`0@ "&uT P Djq  GADXY+V*[Og'[<(͚u'%ZY5r%daT1ٳ,@"h,ҌDu f@niƁ@: Qd @ Z74@An!hh=88(dullLnY`f4md(0ԗu}y[px f&3yK;_~X̹ nl'cDR`=D R @< Z#άDp@ gV ԇu}8  30DAu%jz͚5J₫h=[s׬ڏWM>Fn4a@k Z;6\NL%g>Od/'Z{eֶwhm'cDR`D XK@ ;f4u3" ^3OѺ/DƎC@њ?׭[:aHx*ne:YgM{F#Y7.}C[˟+#TgE61hq/])=mKm}իhw6T[O>t߭o{ѺT#Xg~#5?Dǐ@#h<֌uc @nkFO:1d1'hC YʠL~EP%]vҫ&4u3 j֡5w (Zg2%ZTLjΝeN=p!hP1Q I sEX4֮W28/=Of#Zk[ Z$hmgzjM+edžw#<{V3@ ԟu# ]э-+OѺL.DƖńuL2! R듕+W:033#]{d&/c ҖJ*v8ЊS/j+n*۷o ' *֡ W'[JX>y>+Y˃ҫy5#Y%Z[.`6qyBk}aOAC6DĒ@'hxƌDutbJ @n|<' @O>d{0<܅礗5N<_ڭDl\>UǞZ* x__TSF+d6D@ 'hp DuR @n8b"D:Bd)$hϸj@r5fJEkVR] {72ma#2_;NֱBAk.Qҭ<䓲~SA!$h t^RclnA&/.@׺m7.CbDuNyJ ZhScC_.j*Xxt"H:AeI@ Z7 -C$h$@a!@`PYR Z+ެ@+EAI&ɏI&KӎOJ6^*\~򓟔~.GFFd߾}277zJ@ |X_Bҗd&/c /$zIm%ڧJEk~t+nX7ioz0 R $M0@$ ZG",hD&f@ #F4u@3 EѺQd(,lfCut:-wqLNNZهBN:GWg.d6vwȪSwvǧ楁QðJERh}>|eɗx~ ڭP؇@L Xĉ1!#h (Dk@ ZgEK@9DCM#Jzݺu,|wFkK,,Yqjܺul߾ݵnѵP h@V<fYJ6_~/[W?fW^mx3 pk9۸֕ ֣s9W䱉t\o  Zۀp@Dp8@FC@% Z)@66 B l1 @EOǟ1yd{Լ{|VuN{l*\ѣGNQu_Sz:J+yzuי^e-%Z7%*9@D ] JrTѽ_;qzN:d@3 Z76cAa'h2@I @{ Z @DNYzc\NΜ9SĆgr2+˻\elnA&T޽=>z!yNQDu%x=7>s} Y)Z[3gǫ/*nc .zA ;֧ddž˃@vv"C&h͆3D8 Mڛ g  Zۉp @Y. 2ɤ :֝ddllPW2;UIR ۷o[mGFF;,Dh3ʫbEW噙u{1El{ױטflRd&/ciU>+k*DZ<{V3@^P@IɄ@^P@IɄ@^P@I& rUTpZ1YNUTk.kq299zJ@ Ǩ"a8ӛREg 헗cY֥cpL֩l/AhսWwۧWx\} XI@$hm` @<Dh@$hm` @<Dh@$hm` @i6 tS菽LMMh+cYظKܾ>6 ֦\O~R]=x=z@t ZG'Q^IuOgY%Z{v{=M:79Ym.JEk{UuSrݺ>Wy5/Nj9@Epp@$Dx8 @u $h]'!@.G:|1c@kDMUɄfT244$7ov'Dh3Q9^gV`zxƐAݾ8>5of"֌b%O?s9Wᙜ!8(JEk͈ YћL?xJyھ9q) @`P#$/<-UeKZYg}n@XD u[iy`_@uD8EB@ Cq"hhV@Vֵzu@hJ^fxc/f X^r&>>5of֌nȑ#raSA%hFlY.딞ײ@Z nmyA#;(g):r/Q^De(]V5 Щ)C & u8,!`@F A:q`@8 Z#N=p@V֭+y0<KZ۲eܹuzH|AsTB&hiu<3|zVґfU>N!{1DkHUAfJdtV<{H@%h01@ u`C @`P Xց ?8 @PED~]z$)%ڏ5)SEO~o\ݻW稀O:1 U *Yl]IHȺel u{.z]hۋE_Dk;hRpؐr'H`SSrѯP 4u3i3 va IѺ ;DGC$hLڌ@nT"Iu*i9{lKDUIХbo۶MZ G>D8+Ԭ*%yf[W~~@5synJ7.3)t³B f̹/%y]]{ڽN;|iq!LZ_P+孯(5gCÕB%hز2@ϔ!@nlY PgJ@t ZG7,&ch LEkٲek6kjsNqީWڭܹSlvJ''Np=G% sUt$DsC$Թ$d}k/ 1$Щyx*4趄jEkgZhE&``{U@ jQ4u#7 5Q(IѺtDEĎuB΂!* Bd2ؘd2B5[TWB4[qlܽ{[syv=G% 񉵹RBJ#K ƏqX(ESe}6vEiU[^2>:d|JֹhmѢ )ڴ ֏OЩ)ydt6Y j֡LѺ5DPCM&hd u! h]@V֫W2u3mh}oJu-IqXuv%ض߻wLNNZ؇bH:~AzGITm=fRY0n/zx&'IihbE9F0,;( FQukd/Թ-PϞnj-@P X{)5J  DDy@a h(1G@ ( u!Pu 8 `! zݺu;<bED8EB@ Cq"hhV@Vֵz@ NmI֑ +@٢u2AJ2-{ ZՊ_^Bu@D_mNdrra[/ #GX> AMYMOKӥ.7Q]gN%kK/Y{lnA& 6]]tc-uNxCVUۢHmORnR@ u"| @rt 4AL:anA$@04[d2`?66&LfeѶtlDV[4f4++2߽\rfiٻw-ձ@@ Z>z&IXefr~2@]yux&'F_-~ƪ\N7R̾]:{FnzE2V{rٳ^ j֡LѺ5DPCM&hd u! h]@VQ [ vwȪ'`ݒk5f@@l_~yVs0E^_\mV騣FF[~hx  @jdY ֍J@T ZG5 hDFPO@ Yֱ 5 j$lZH\S饗daaaKΪUNu%dMOGa_Wm|{{W.٬'''ف `@6IgLr#Ps!N{Kg.5^g}sTX\k h_@gsyttVn+5}٤ѹ@ Z75#A'h@yǚ @ Y <cHhD`S@ -Z[ΕpQVfvޙh/X>CZ<% G.ճ@JJ#^YVЕ볩u/Տ]zFjY1zOnDk+u&{㠼u=U/n&_. &asZMѺ`|@ L- u#@ Z)Z.]P@@3Ev kdKUA6d/\m[јe$}ɉ'q@$hm+KsE~k ,,Yf YW dRxzA3}eW%*^뜏Yϳ^o]+7"\y|"- OQG Gq:k%h]-9H:Qg@%u@ Z19R#N4@3Ed2)F[ddllZ%=g&/w]4 X Z[icZhFklGF5;>.r{ n2W[^mC2t[۱z/`uBr8đuΚ!j ZWK 8@cY3 P-Djq Gq:kDH@ $TZN'ڜ ˜-k_h{orQ9* Mz*Sl/N3ϭ֍d:Tӥ$hSދyslG,֏m?}^ʙ1 @KzO:1f@ Z׏%=A'hB@~ǒ -Π@ 4SNR?2==-gϞ-97_ԮwEǥggOQO +Dk+wol\Xh~nYV<6*S4fTej7+ `wJ:o7Y_fRۭ d6ږ+'ͭ\6ϳv~ci)!@ hm@?Dkh @њ{Y5BN:d@AF?f~:\a?,Ň縖 @ >k]Wܢvh yMSʘ}Np~K;kN~9r/rW}p|Qd@.,-0؅ Pu@ `Yd @IDAT!hm.H:Qc@+4SebbBfgg%Zo߾]njҶZLFˉe,Z@d ZG&RN ^#nٴuǧ/dinvUdr~4&PIGr\N^xAh=Dǀ@!hX1S@[fuxbL!@n} j"h]>.bD$Iݱ14J޳gOANΝҐ?O?xXqKĎuB^NH@wd&/c霣ZRnDٜ#+׳mFy1ǭglO'PIo0-9Bf۲,u@ Zqj)֩"ZBymZ)C,;R[D%@E&A(@F V h=@?Dkh @@dX @ULpOȏ7Bۼy =3!۷O2ׄ\!cQc J:^B9KVZEh╩ wµ'ks΋XsŊ.ў9"N4f nkkk[Dk+ !'h]- Ml!'h]- Ml!'h]- hցDY$I3],mlhsNٲe9Daە>//I_+O/xf@&DkD<^Y%/>{M^!*fۋyگo:uR\/ivlHfvO,,VC(OѺ<#Z@0 Z$B(OѺ<#Z@0 Z$B(OѺ<#Z@ &@3Dv]W=11!E!ZٳGTlZ>|Hz)kL@&DkD<^LNf TK5fN,&aיEy~kn6k57ѺYQ?7"Em?}@b "E88 PuI< PDѺJ@. Z#h1c@5!Z_-[X`>3gΈnޢf֌2?;-tםɤDL&xl$ZDk\~QԼlado\ mkMʶC#Z7!>Pw+{fWC.W< b<8 Pu): PLѺGJ@.Es Z#h1a@E-Zf=55%c/^;y̜nA*eGmGVhPJ `'hm'c?NI;S[el+%/Ѻ6.΄ @wQs|Vjbj[8]`dBE`@yI$@yI$@y&h09@ @-ZR)222f2_L6 VB={NɁɟKOS;3LۮP ĎuBGJZeX}^>o)!P`Y?{Vr$Wj֥p 5 Z{ 5 Z{ 5DPB-$H:HȚ5kD233#q=E-[Ν;i[>5/fJEk\g\'j!#|&!JkEt¸nU1X2 PDq1 31 8˅j"h]>.bF:fg@Mkh=Dǀ@ HѺOV\ ⥗^^Z5oꪫs8zO<:mqy}sE9=ó${W;U#uѺZr\ĕu\#Ϻ!j ZWCk @kY7 P Djq  Wq< DȄ@ &HZY\c/sss2>>n^:F@[ز2={,58p@;&5DڕAq'h;h]s&˻yT~;5*qi&*XXR/x 0PKABq$hǨf@ZՒ:@ u TKѺZr\đuΚ#E:Rd1@ 4J~יI&q= hl";wWK:[ne~SKD2<\QO o#D5=r^M^יͭfN_f1a!(@rtY Po&J@ ZG9 7Dz?@ ] ֱ3@J*[K.3gث h֎n*۷oVr-E^"F'u|]$Y5[hmo1ЦZeJ/Nˁg=}v"C(MѺ4B@`@i֥pJ@.͇<D B!PoѺ].bfC޽{/ȑ#rj#AgS_,j s ~ۙXqsc2b[f yƫGGg宧'.X#Z$BG'ZAP@ϊ 'h-!Hց Hޢ%jٲeB6kݖ+:|3y2228GvQ* `"XJȚʦg\nK,,٥vIm54s)|eE?>.d~6 Z76cAQ h(@YEq (@BY ,"8@ ZG!!c~T@ޢ.p~~jjJOU޺ul߾1ݻQ*ҩPg/_9G:>1H@wc,W"OWҶhbOng&G ևNM~Ѻ3D0GC&hlu!f@n6qƃL:c0 Zs@Gޢu\~饗daXJsmhT*Zp rUW9?r>|Qe)4;@D+~ڬb+kJ5[:7jd\!W?LgMd Z7*]B&h8@ H@txY PguJw@ ZG:,.eԃ@Daӭ5:־}ĉ7m<[ᙬuTB#h7S35y`o]+7"Qٺ\y|"-=+۠DDy@a!hH1O@ uX"䓲~GB%kJ~QbYέu@ ZG? /])=pgrfoU]2^tL\QOE< TYt 9DDy@a!hH1O@ uX",Gq+2lnQgK8bF:>+O+m3]+,WQC̿ y\uœ @jd DA sJ:a^@ Z1* @M!Xh)WvrrGW+\O=sn޵Zy[NY:.Y5[[yD876A .iA}ѨؐM+3QvCbm]@.ψL& @.ψL& @.ψ4D@A"PO:LcuLF^Պ֛7o!GtZnGWJ*[Y%D}d*d홪5cqَys_Wzuw!f'^&@#Z: ZE3@ "Zo޼YTZEj@]͋+Bȥ^*]tɧ?醏[nDr8@z}}}&{gec+عslٲ^]xpxlvanh1w@[A1!@k7 ֭Θ@X Z5rhDVPgL_w|5!w}\-{:Ͽ+`F/a+bmSVC(OѺ<#Z@0 Z$B(OѺ<#Z@0 Z$B(OѺ<#Z7|ٺ4Tpԧ>%^ys\s|^xAJ&)پ'[ƇB 7,cǎ9kH\SƎKь֧g.l@T ZG%%ZB9:Օ5=yu$b=iؐ*;GGg嶟"8D8D5B$h]ODu# z@'MN:f}@= Zד&}ՍLMMɵ^+ecw}r뭷m H7M_k?ݚ:P`2@ Sd2X~annQVQئܽ{[Wq];TZek݊f,µ r!WO:aaR@ 4C%J%[d{9̕:ZG`!hXZI# Ѻӿ XW]܉r/K,d C0 uC @Q* r-BD:Db@ Z<L_/{''nMuW^y|ߐ_|Qw9-6lSOm[&@D5=J8蝙|Q/]uUzH|AG}=+Vu`O{.MzdY0]S P@u|O^_Q^Ffs2u>]9zCV%}d%<[W-fr"{:ea@ Z7,B$hɰ(@An!H@dXY  KG>"Pov_ D\.';w:S$͊fm o(l޼YΟ?/?駟Kd^@1$K$}Vً~ĉ{-ܫuưjbS @Mjh#K6_Ϛu'pu|~ٔ*f~l"]m ZG9 hDFPO@ Y4u#' UQ,AѺTf7||+}WPd۶m266:r[V!f?\?Rٟ!Z7 5A!'fZ1{nT& nYvQU5~挌׈~!h)z ./f vͨDneƀ@u\K>GDl>&]vÇˑ#GͨHvu*YɊ@ Fb.L8G9y>r+5ǧyƕLk+`ϛ^;d}f.ډltD@'h1A@ @ uC!@P0  xցQ<' S|([+ pp&LDk[Q[A1!0hh=<<M%w)~*-\55OVa\  hRxIϜ\v8Og22jttFESlJu$5=x'pԄ$<kuvv-uڳ^AL?g[N@3yk?O>mV^~ej׺KmAt$(VXg=q۷Qߪnc-vݶ4ܢLdkꂋ!: B-LF+]?Oya@_c<%m|LF>}qxOMڄRrd(u}\ε_\Xn.3ge@U_"@!'f͚—Xu/,,,|EL@3Z{M  Pipٲe2;;ސZ@(+Vn)ki5={믗/~I"m۶U,|+_w^{}yUW??cηw]u?O?? !D[n-ZcǪmEH|X\{(o~CɩSwXƶ;*BD g@atxf°$yd֫@Lf)~Ydg36'!|lŠu_EիWΩh] xR @ 4ӠYZ&sl!&}/hEj LSg"Z",L(+WJoooavgϞEh  f2#GtB-Lsq&J|>/ZFh}No:ooH6[}MDk_i@ja_zǺ=*Id!?z>&cƣU<  |g;?׺HRhnO/xIأ͎}^9|ÚJ_3smr׋v~K 'Dk'j x@"C= 'Dk'j x@"C= 'Dk'j@~3|{+lL.C+"^{Kzw[T׾Vt#ZOy??H$k ϶:;;r~o~QC/ Pз>Aܬ/ArŊ.צϜ/ۋ}A( L%Y2]Uz2 ӆW)@} hmf?o{}^C]E6>%pz|c#h}=͋4r/5=X[g3c_oذAo‚kDf4@ (Z?<ڵ}rrRkZ.])*]WSTVoܐ55Dp r/ 2`|^^4*Xh]d] ZƂ=@~ ZD@ Zs'@O?+ZB@ Vl"Ȋ+ 5u77e;{)q~ڵr}fRyY%r]z<244TyC#Z7+B$$ZM ۷owD';^BX֖YXd)@mk T}z.ׯL],GnqڴRvlHd/-Q'h]=;I:qg@uU@< Z3uuܸ 'Dx=?.GoLw >B|;~䘉DB:$ _?C:h( D@DkDwYxzH|A{u$Wu`3jSWl!Gu\{{vmr5Ƚ+{umr͚5ugg}OrY]9wgF@n$]D ݻE)h/'Nث#s8UߵZ r} ZG?愌^tj4`}|j@њ@e+Ek@ VTFѺ2^M:g@e+E&Pd2ԧ>%>h //o{!>yژ~Mozu4;C=$DB~a'?ά|׻U̙3r19~/tuDlɼ%[D`gP@ %ZR){Sλvrt799YBש 2ep/ܫbRo?@ ZG?ʃ*st< 㙅ڋLz ]l'3s[Cf񲸪jh]6.bL:g@+F@ Z8,uȸ1D?LKkdhhH^׋f6/,?O YϞ=kV;*X?\~/}ɑqQqehm c]:Dff,@ &Zo۶MZ'|R﨏kEp.oVSQ ;7$EI[d:bus.;Ʈ+18LL$dI*aɮNņ d>2f?ӈVdB16ׄ3~?{0w{cI]}j@#n^ݰ[i=eF9#p-X߿;-i|{*@~Tݬ@-+C$hϺ Dk* O+YA@+B$hϺ6+2;;+O<=ONMMɉgͺ#yx^ï"˺@&Z///K>7ʠ?X,LHS6{u|48(x}k .؃smoG ǯgdRƵ ٿJfOċuI6@ ZǫdK_ċuI6 $h2 0(ֽVr9#B RɘgDYH /u9FDyL ZǴ-iDolˌѺ?^kbW{r?D@0  #1*&@@1@1"hb  ;Dk #1*&$u2Nw6guW"׻&&J5& Llzµv_F^kY ZǮFB7'S#0UYoڸyZQ^kX->eY@ c[Z| hTbK:%1@>@eI@ c[ZK DT\ժ1mIw,--noo1τ;c#D&2vX?Mvxk-]k %l' @.Kȹ4?eՂ'oψv<>8߼G;#<gg@Nv֍!p ZÝ]!; ZY7!hwv$hmg݈?@I^^^|>o䳵%bјgb84Qt蔯jjM6#_*o2 1-NN^7?5ֽȄ3hwv%hmou#r@ x3gG@^֎!$h wlWWW% )J<aV 3Q ۟=V5q`_QC#h=4]&N eFh%p''c%Wk@vK*n!@@5;A@dG:8OA Z'!$Zf2%.N/Jz׼֤RtƤGd6 MnX-l|$h#,5;RWqU֮0ݤ_?WݫzsmMNA:u @ԊH! Z_"!hmOu5 @ԊH!ЕuW,LB0DIԘdRwN.7ޔlllLK`RuUO_[4E;.:&FDuBɵ_ꫡ(ϛՙ?V.DZʬ+[7Ђ@VD5e8A3.ȧo8f\U~Bq@N-u"J@ Q hmGDhԁ( ; ZQ'@O=p@a26fʴR~{YZZj]loo1΢SJCg:Wde|"IJnuruQO}CzICbCh_S' wdɔ@^M6Dhׇ h@V=6Dhׇ h@V=6Dhׇ H7@hhЕNn4OD֖Ec gٱy&"2#!۫8^g7;i!uzMM\b XƀeIF].vfٹ|rv3\rB8@ mOrK0zJ~= ~5k\}Ӗ~n+ڒ=7nnԸHJ t//taӦM244d*eb ?j yEQX/ hPn!9Ot $y=unm HMIn=2k7jXPV7ddPΨ.3jJ䒅Fd##3?u8BYxqx^ccco:nLpҥKcikks 8䓥(oA^ ( HiiiA`޼y:=*'N7/!3gTWWK.3߈>s֙q%KIAk%v|+t͛7Р*Tz@~ozhoZ'#~8M V/ Zz:.c!-hmpi mjjLp[ t$gkk@h&x2!o~F\tv_V_ֈ?ƥW=OAk XgsNb}~7T~CڏUg Al&@og Al&@og Alv@Bu ZzGFFKמ!QPtWoje֦kws W_z4Nh;JkG'CBNוZ(8WG={cto&eE 祂_/d$F*ݶS#Q &ف?W3l/0 '䭁%{\vruXg*Z^r/@:5` 3E } G{jL@ s_f@VbӃց@\|aE6m$CCCQz~CUZ4ۦ=;SKGvΗ{;POHh"vhy`)ʋ.%jDW_y OCr~hdDۍ^=hS, < &Ph;Fe" w¡R]R~egq}pjʢYT8\g*)'^<)873/ܭAk9u犹Y>y垌2cyqW& h1=pAkG Z;@L%@Q`2 p/C AdBDKt\e].vUs?f]NjgqPVdɇx;,W_zhjՖJ\K[Hm0ȰswOdgԮjw|d\UӷzDWZΙ_fXv\P Z@ h@]V Nϋ o?GZEo'@q%aB P3֕}}}rծ72\VYk en;1*oNZsAjuV|m두AyB2MVLXC*7:.}ډ}KKKE 5Ȑ;혝8$>u j`]xZ/+M9mG{^8kwz]AkHM{.g׺ŕ^P* X\۽Z`Ak#@  /@:^ @b։mx h/s@ A6+ZLL u}}|_;::d˖-O!R[Ry EFS~ @֕UPW Xݚg:AkGܯ~&Cz]ģj\L?IUER){GGe]:;nI<'gזw7Xՠh)֧*AQkyAn֩@`}Z@ h@]V Nϋ o?GZEo'@q%aB P'WZ%9㺠}dM7pgXv~\ q @nThDIN?v*Pp3NihP\Sz͇ip7ձr+9]Kkzʋ;:%hz~/.Ii}sKk"@:% '-8C N& AI @d : 0)@z҂3\)@ڕec  ʦye˒ew){Ɂ-U8˫jtsGe>jF8!p;Q.jWѾ>y {^P%W]PPԮn9 Z?U0>SVj݁=xGZ5_ J&Ex,@zf^E 9 0A}x*@z gU/@%b kRSR0M/]+'X|Z{kkMkNSBh*‡ N;NmjG wֽ5lz<} AW$p@0$?׾?uQGV Ϛ;!Z hm5wB v Y'@>k%-aePAk/NЊGS ٰa9DCe)bM:%c&෠u^t+~E;~AcZ&`vbTc>8Vu\~ h^Fu6z\~ h^Fu6z\~ h^ \IYX$ˠH ZJW۷[1ErYR̖ZGV[T:q/3r|ӞE=<.#ѧ)=&K]>Kit;eǯU/ hm$ _ZҬ hm"c _ZҬ hm"c _ZҬӳ=[Z& Vٗ Yc,$sf| I.w){\l3L\Qa뙎#CA٪n. h)QKf u~_LG'EѹfS\ !='ujsP9}i7N#<{t5J,@aj H֎, B vha8R#¤@Z hȲ0)R h=@v <ĘTi9 $([[[-~K_\17=TH?#T[u~FA@͇`ߨNG43h=Ak^=,&\m!R hR1QpAk) kZTL @E`  ֮)EX  @֝.г 0uJS)شcv?8@uFAkM𥳐3K +vVakvⱠ7t  KP7,ݫ.ߺ?q-QΚ@ S֙qQΚ@ S֙qQΚ=%@Sd1 `AktQG;xm҂KU //^A.pA뎎ٲe˴k|J@ϰⱌsVΝ@:DAy%rYƻZ+M/OʋbES>AK53ǥ{$lLVv(&^RQUe\AkVu!PeLAkVu!PeLAkVuFoJB@ K3hoo 8hVZ%N ZٳGvʓTB[r h)JʖƺZGK]K*}G3Eyrʬ0uɂ+WdVSp@ s=@\=v [!Zz hm8C7 vs;Ak @jNZI MMMpa$=5h}vٷo_,dkvQ g T֑V=Z1W.^X1cU{fc űϢdGku}"qh-5l#Cpu6\kAk$"@/f `Ak3"@/f `Ak3"@/f hҲ00Y)Aڰa%ᦩA-[HGGԮ6AHIՎciU*Qjuw\(ʗesT_Q_JHd45nqe8`3=T#2U:+Z[ʘ e^.kCZ-x e^.kCZ-x e^.kAk_E" N ZWΪk.AX'PeL'@:RD!Ak3VGo]gNuRY:x`PM3# ZYS"病} NԂ8Qœ@\N h0pAk'W!Z;",@an @:$ ]AEERZ|b*D^:tHZZZbf4TC$v {;%4/ ֑Z' Uo3vKcw 4uvcVs7RPti=֖JI'W9Zz2tjV NtΕA\s_pAkVy#@.ZB{"[Zrr!@:*@ڭc'@К @A뢢"?f`P:;;cWZ%b Ϊ ٳGvk7Dh]8h4.!k#AH Z+Tseo?/o'c s`AY*0|iZ9C踸BԮٙpGsw&sZ@ h@]V Nϋ o?GZEo'@q%aB Plց@@jk#aKXSA릦&Y>v]4h}vٷo_̓W˺%C6d_ ?ݠJ3US[,ﶭsPxaE3$uh;ip<<8pAkVy#@ZJ"Zjr%@:W(@ڍUc +ֹ$@$HA 8-ha &wl"erY %dmB# hy dy*<ӡv>3,?my}fکMCeZOhՓgOSӂ @AH믾;Ojw}^ w}V? &וJe]UziUy0[٢^ h60[٢^ h60[٢mv Zl֕}}}DD[nTA-[HGGǴ2}||.[MčІ h)Z(Z;T84kNrwN&tzBU,vն`J cZ;L\"@%b ֎(@vI&8B#$@%]R(@"։dhG .ϓSfMqܳڹrUWMkUA%r=Lk [1 ƽ ϵ ֑"/*/<]2&͡v^Y]"K@F{bl1ӵG}BgkU_+Ϻ@ S֙qQΚ@ S֙qQΚ@ S֙q hB0 pA|//˚kQA?vHKK˴LݬW/1B7L h=Us\(@څEc \C"fsϓ3@jK t}zGB2 $W^u[מI÷Ϛ'.=2/>ݮkH$@:"㤠uZ%j_PVO}!>8@<Y2C?*@82 C?*@82 C?*=,@ei `A@Ԕҧɏ!k֮խ`1Џt6M_oxw_<&o A눊[y"jWkc05@ 3֙qWk@ }qWk@ }qWk="@#d `@#rkCgԭ>Ůt6?J7T.»Ykao@ U)}'4!ro4շ@ E)B xO5o@ u֩[ h{H]uVDZ@]^@ 8!h} _% d"@&$_^\ᥬ-v^tTqO|GN 0A눎ց.F aY2d,@:c:.D aY2d,@:c:.D aYZ{u .5kgٹs=Ն|v^cֵ{nٵk=ՆuK*Ն??84"@R"7D}i#4!> X&@2ZF haYX"@VE haYX"@VE haYZ֬#hlv$_}wTn&9SuJ[[=ՆmK]io}/ӵӀ*@:"冠u}y%t Kxed(@:C8.C mY8d @:4.A mY8d @:4.A mYWZ{&hV7őꊵ{E͛7Kooo|sJϙ_&5ϰm{;eϰk4"(9=h=@jK K: _ hm'!Z{Ƭ hm%#!Z{Ƭ hm%#!Z{Ƭ=^` 2hhlԜR]+ +t}N vi@ hrzкX7OXh"2 h!!oZ,2 h oZ,2 h oZ,+RIցV 2h=>wlذAĎٲe=ՆmK]iw_<&ݯkHGuDA|/wKx:%/d!@: <.E_ eY4d(@:C8.C_ eY4d(@:C8.C_ eYZ{:h(ȓE%Djd| _нv!iiiѵҠv0}hîzMW7@ hscZ}vO} !@ud `Ak{ xC7*@8sAkoԑUX@ -։v N՟5k{nٵk=uK*պzeN];  @#bn ZϞ-9@ Yq)R/΢@ CqR/΢@ CqR/΢$@Kd- `@.~*y߯[e߾}TnjW{df#i  @54.v;Hm~n}! 9Z-)@:M0#Z, h&@}]~i N8M*|@+++E?DQL;Z75QJ[[[|sE \5|F@ DAqmsKF_ @ Ud  `Ak;]+@Nvjs/pAkW#^X @TDO 2hlhi&2|mKVȝ+v/v@LZGԜfv2yq n h1wȅA\sOpAkVy#@.ZB{"[Zrr!@:ZP i։nY;ahl؞.-d}?x_{X|3@ZG|wŽ ESMh( `Ak q<)@ړeeQ `Ak`<)@ړeeQ `Ak`<)@ړeeQ~ hjVF WA늺E/oMСCҢkOaE'6pT=2A 99hHJ tl`, hm!.C#'Z{, , hm,"'Z{, , hm,"'Z{,OTm֊*hpƇV7}u* }7`! AA:\/Z, h"Z, h"Z, h"Ns@7d 2DQG އλPkw-vҵ'kXZou;3,vi@2 hK{x\G35SfKQ~7dd|B- `Akh<*@ڣeY `AkKX<*@ڣeY `AkKX<*@ڣeY hZRN ummddd$^[R(s'p,8mڭ[K/kO֠vVZ#;GBDuDAej֯;Iɹ h"/Z,2 h!!/Z,2 h!!/Z,KTMւV X^T^$y%|+_ٵu֦kB۶tE'v9GFHuuFo.Bw}WrY @W}UnY @W}UnY ȵA\W#[rp_xAYזᒅr犹nGŧu4 95h]'&/dZ2 h!!oZ,2 h oZ,2 h oZ,+RIցV "h];Vp.h+7oN{wi!답upSCHC>=pL ASNWFo6.B=PD !ZLl hm+77C vy>*@Vnn7eD@.6lt7o^]{BvW>.CDҎd,@:B@smI =<.#v@Z2:xOjʊ@:22xOjʊ@:22xOjʊ|&@gg A@DTzpVnͺ.YX!wrD XQ Zs V:5hHJ to`0k hm/#Z{ hm-##Z{ hm-##Z{g}Vp X⊢is+>/C5;::d˖-ڒ=Yd2]{t4 f(6x_k @\z2x[@\z2x[@\z2 "K2 Z# M0_ u9}rᥟᲪiimɞd(uQyȠ@ Ef ~Y!+@\OFCo v}Y+@\OFCo v}Y+@\OFCvֶsCp@A@ UHWWW(hj*w-vҍaeu'-ttG6 [!'Z{,l hm4AODY$@&hn h2? sY;#`ezQyŦ$ HYڷn*/Ry-urFuۦʳGu4 f h6]XxWwk@ָ2*xS7ʪ@ָ2*xS7ʪ@ָ2* ! Z_krl]кUR|%}|]:ш%@:"ĠB(M њw K(;ZG=xDNvjs/Ak/T5 ]> ^"k@Z%}@ PEk־.?G4 Zr˭hܜ* t!|v@ZGDM ڷeP@Zo@]?f כ!Z~ hm7wCw vw=BК7 @Ak/K庛`}jvn\yUA^ټynD ,;Wս|gX6ԵӀ-@:"Jw!Mެ+BZ[g =ޫ)+BZ[g =ޫ)+BZ[g"@fn4h][[+@@'%###SfKQ~K}}[~2\>GBCIKKKS {jYRsv@ZGD3o&@&6AsAkϔ m@ ֞)% AZۀ-@3=SJg-J?|9TWW+"e߾} /:o]JJJRs``@%ox od M@dAecVU烳jcoN4϶xL?弎d-@:BĠϝ~ѩO9GZۈͭ@=QF6  'Z{,l hm4AOD/'tRxb`PE?,?% E2~,**{J^^^cȅ^h obb#Ak1 <-ݻe׮])?uþ7>!Ј p6m`xVgK@"2,xR'ʢ@"2,xR'ʢ@"uس>[~)++G}TGFFFD:K={ٳ'|>:]XN{1핿K^׿a_3Md(]A릦&Y>l9uGk:P#o9 `A]Aku҂/j76.}_P׺4TN&,#ˎS58G^zs7pAkא }N ~!+@Zg͝@_CǬ@GEx;wծFǩ*R[[+wdǎFRn?(?O\s5)_%Y͒d@곯-%sɽg=3,vi@ hQ+h](])B15 9AZD'@ &@:F  TuR": 11 N@ Qp'?pp^믿~VZ%---oW\!m3^h^oݠGzMfM:}3@ dV@gwyG%>(->˗X͛ÿ}!0Ӫd}Cǎ}=v@+ZGT 6' Z'䭁XO솜 @JSb  hH*@:)@A' @RIZ(8V`۶m|r7zW*$/|Aoȿ}ݗ0/6E'-eX@AzCp{|-pdXp-urFuxL_N `Aju|:ڞc]iT^껣|YPݐHIuJLtBbc IZ'%  hH*@:)@A'/)}}}f $onIM6mڔ[}kȏ~u0{du r=E e[&-[LE됃}?c9 A눚]AEERZgX*?4y)=2nx= `Ak덹xKj@Z2:xKj@Z2:xK꙳466Jkk8p@/4իWCٷop )]cE.F}i3{tI_֙q Q ACIKKKJjGm}cSN #NZe0 On@|2"x[@\z2x[@\z2x[k.r{'|rٶmretQ|P>lٰaݻרKZmf3L:4.A_ ^j46 NzϞ=sΔϙ_&5O@ϰl۩kJuD AΡθ!@ E@? SY+d+@:[AG? SY+d+@:[AG? S-\_/_?;ʮ]$ jF ".G+_*Yh,\PW_cǎMbSǛnٿJ:{CF@XԠuTFaݻw?R^Zou}~?tЀ)@:愠ut'HJ t JXfJ7  Aɸ|.@oi N s>|HKuZ\tF }^~ȏ~-((^dڵՕu~߄*}N=S?,?Oo<8'hm*c"2 ZuKBݥ/ԇX<|uVy饗t5li3Kt/=r8ܧkJuD֮" j*@Hn`uA s-@]]>&6 !Z|Ll hm38CW vu3|;O~R z燯HX?ۻwo,X=66&7|3^x,[,SGƘzbxSǶ꜠U^$hDcdd$T֭?mK]iva];  U'e.|2wG<4=ԨC yk`,|9s5V Jq@ZYօVB1@ZYօVB1@ZYוaw77u׭['wqwѾ㻄=MLn$hm2(!gZr˭1;ZoڴIb%:(ʗl6lJl]Ak5`ߨ&&+@^o hO} /@5d `Ak_k*hħzݱg:#<"?~y睲{nfgxFѮ]5}' O?-/@@EE| _V^{imSΝ;)|v>vX@t_rXBƊK/2>Ɋ9Y5.{t4 V u]]];Xy;G}ڬ"v"˴i6&GtAӒԉ9=yD5,Z(|oV)[믿;@@/=S:Կg@08餓›W;;;Sx$Z@ o~/" TUUsJ#sYʕ+{˜ˠu: VZ_uU._~y:5s<nii1O**^~ߤҝ> T`uK1mYR166&Ǐ7/|ڹryźUxAtwwˣ>kS5!FDї'wj7@lP_6|Cycqgxc84Dh D3s.{ ѣGS Nc_# g`4h}3kGfP^S3kr  ^VV~QA㎴"ȬYٓS 9{o8_~TPڵkߎJ ;I=\9qD#E.3s̷+_5/7x  JXn~/ O@w,>ɠ_P>'zq~ vn G;Z۩ͽ@^Av S{!Z׿ukGx YUVV3<#PH>򑏄S0Nws5\#MĬT{I{>GGG矗'|21 Z_xӖzo%Mphh(e:mc-!| '/޿6 dn~=$30sO- @v*h~m:/XRjb> b;Z;hW@gFwVɎּ)@s̑pvNL+ @x7ٳgTsʟ?7Myxꩧʎ;رcf͚T.1??ˇ>pWUc=^?M\ܧzJ~;@_/\}֪~n+ڦ>Q_ R⏾>QԱHJ sϓ3<35V_ٵkW=IEQd×/xa;  *ѝL+ݗ6껣0_ gkH۶{dܰzEV@*ŋo266&o7dt@K.-v  ^OY:xhAP3kC}{M@cSCWѣGcrJuu2 Z}\wTSZG?QG(W]uUJט+WJss)?=^k$h@VOU,ZFZdʫe"@n*/RR%@cߑ|ivЀ $vBzd|BFCR[Z09T{y h;{ hκ1kȍAܸsWpAkw֍Y#@nZƝ";ZniIYj??B+*Oƍ3Z=)))o]R˟ٟv15{&e'Yr9Fu4|wW%]tpVm5o?J7TE/=>wdPyh9' ]'?'["gvh=<.5%jW]s @ZΞ;#;Znr#@:7)@ڝuc ֹq Nf'ٳgO:#,gcNjk#Ak+u$`e:( 6LJ7hPY Uxn ~!+@Zg͝@_CV Ϛ;!ZZƍk瞛6?ۿ['>ꫯ7|sZYg%?O^6?ȷ-_x ]%K_khh^xAz]hEǵꑠU^$h]SS#*h[yH.m.,-_ )J e맞\O9Gl h=IMz҂30 hmB+ Hu"@Ak - @"։dhG& Z'=cnAn߿_9"dŊ2{liooÇG펽{nϗgyFnV~F+/je˖v~{ 'zѣì6fI2x] ummMWWWKEeR_^(VU~". ڵ+֞deu%@Y`6 lήC ADt@ ʋӗ^,O?}Z*yS Z?J7TM^=qO|GN `AIiPn`0413q hb0pAkWI"CZ;L\!@eb )@WvE$Z'@`UA?…*h?_ikk:V̕V^zl}@.֓NZw ,j9CLZg5 g~>kGtZ+FAk?W#@?Y=!@ed `UA~:={ TCndKcQ]{鶽gXN `AI\;iOLĬ]9/@:}3@ wY='@:=/z#Z h@]V("K@[ ZmݨaRWZ{:`ߨ@.֓V \902>!c (ʟAkȁAsKpAkW#mv j֮.GZ @]]>&Ak @jVX8Wn:_nݨK56lKt.j7`HjJ &'bp9@ s\n h1aȡAskpAkו #@Z[#ZdL{ H$`E*5nR iiiѵ74TC7ˀ|v@;ZOj*hظo=ȫzp@ZJ"[Zrr!@:*@ڭc ֹP VnF=ּ@ZfJYvnϿyT~VVurgX6ԵӀ)@zR;WA<%;; !DJ5`[p8J#֗J;T;myF@_NT=2vPM* 'yNx6r{o^a{|侯ֵW2g!cFҬZA@C@ `AkG AX-@<,@:`pnV z|4Ak~ @#Ks,nYFMץ]rK:@ H֮vXA뷺drȶü:-"-#@' `AkG Aɹ!X,@:Ak~@KeYgi Wg}VLMei!-;:@ H֮v>'G~LĽ;}C7&M5RZzbG cAZ?:@Z5/EpZ@.v͋n@ \swK][4 @ ߠuii8!ݻwKEDn2yrrPiD{1ٺuROAΩ=6'jSϠLԃz@ߠdAkwF[u `Ak&F A07&@ڶ/)@:L} mb@A @A늊 ׮'퓪R֭_ 5(=alS ?JSʲM6# v3wvŤ;68WкaLԔ!i뉥=F h7wCZ?C h5wBZ?C h5wBZ?CZY #h}noktus+'!K{a .VALAl[NY!@XÒ `Ak['G A0Թ'*@7!@: u ur;Q@uƓֿZyMo[ZʪNM-WoO[)@3h2+#0X"A@:֍@ D!skNu#aQu hmhU${!7^1Oݛ>S 3*eisCjY66NZ+ϠvԩRi>hgP~+{Au hmh h08CZ[=>GZ @jV!hO @;C nZ=' Zk"@ ,֮|>\{r]1 @ß ]"@ `AkE Ap;%@ڮy-Ak V A.-v_EٚuZ=`j,hM-K˖iܡ) A vų Cg[esr)-ѯKZ7@XÒ `Ak['G A0Թ'*@7!@: u ur;Q@u\)Ҩ|O˺oꩅ/#oN=Qu1NgF ߇(@к3#hZVCb h]S JuAA< :h} ߳}o~ S:ZRݲPV-@g\JK{%VNpZ?"DZ6AZ=CZ6AZ=CZ6AAkb*7h]UU%uuuWWW_ARqNs`HvwR@`@HF@Pֆ@HF@Pֆ@HF^uV-7h=aqBʙzH~~!ӟ¼)5r=rZ AkW>_A|]%@:(i"@кP&s @P P( e<!@:e"@кP&sA=>륢B˾}d՗)O֎RyVYX0V4Վ,-[:esV%@ڕW :_u;gA J @.I A AB$ρAB{ @.IE+@кhGσ#O\ozLܨu'+ec9D9wRw_թ) a vuY!@P> P( e<!@:e"@кP&s @P P( e_|]%@:(i"@кP&s @P P( e<!@:e"@кP&sA=>r>|`,Y|vHTokº9SRKwJ[O,1 @]|ƔIMy{wVz`V 6w6tf 6s.tf 6s.tf 6s.tf 6s.tf 6s.t@D(r\;nՃֱh|TʪNM{)"a v>elTƔ7zg+&ݱ!N hml  hm\  hm\  hm\  hm\  hm\ ZgMʼn P Z&h=P^%|ݟL   hmph  hmXh   hm`h  hmXh   hm`h  hmXh Zgoř P9 ZsJg)CßdժUJ} X;At٫+SCB hv-X!@z]"Zgu* @&֙d#Ak݄  Iu&X"@ڒA&.uK>EoL<_3h}osSW|NN[;Ri{bG䭮D>8Z=CZ8ZBcZ;CZ8ZBcZ;CZ8ZBAk?Z,rɓʾZy.[nU#7LM\ކ @ ]|qMcV AŹ.@ ?)@:Hm }A R{!m AEк^?W/˗/1&oNtņde 1#kBZ-@vֶO@ HAjs/]Ru l hmZ KcRݮKJz1MN76N0A;|qMcV AŹ.@ ?)@:Hm }A R{!m A8u_*{:]+5':JoU,YD<\|#Ku˖iܡ) &vPt>v  h8CZ>AG Zͽ@vֶO@ HAjs/] h]? @~֑HDN:$eR)7|RE+r,^XܬQƔ,׋fq|@ZSG(:Z*'WnܛB+Z[1&DZ4 ZAZ?"DZ4 ZAZ?"DZ4 ZA`4G @Bʉ@IDAT1 ZWTTH}}h(NnE*Jl>Jl%@G>*"22ՁA97) ͞!y͛ !͝ !y͛ !͝ !y͛ !K/.NF"8ޠuEwDuߘ,>oR9DM~~Z `Akw] V ^uz @&֙d#Ak݄  Iu& .@Z7d hI:dP oк]N=A͛t 6o&t 6w6t 6o&t 6w6t 6o&t/־8XxeR)f͒YIXR+ڵke͚5zb'&ɯ{eak[r0Q;֮+H/@: U@ AL2@]nB$@: u@@ hPA2 $CKZ[2(D'hh(_Yd8li!-;R@Z hZBӻPE2 $CZ&T@L3PGtֺ @ AL2D%M]xׂ}cjd"c,M5ڳ߱a<[S@L hNk  NB$@: u@@ hPA2 $CZ&T@L3PG֖ 6@ t?AjM\.C1{\93ZDG_|1YwRYuѩJ-;s`(+ `Akw,] V ^uz @&֙d#Ak݄  Iu& .@Z7d hI:dP ZԈOSuxo|9|<1Qqe֭ɺQW)K+@ZGzxo;'yYT*5gM6ju  i݉v-X!@z]"Zgu* @&֙d#Ak݄  Iu&X"@ڒA&.0ڠuK]GʫdblxbƔɊ Zb3{Ē TDJ[xg7xD/O{oSDZ=CZ7:BsZ;:CZ7:BsZ;:CZ7:BAk_\E,0ڠuEwDF+I,ZM Ztr|쉚7Y/~5@r nݲCZ-@vֶO@ HAjs/]Ru l hmZ h֕]R:Jw뫪HTz{{oO֝MdޔlVn?$ڮ) & VDк'vDn!@~ `Ak'H A .@ ?)@:Hm }_GR`A{whlly'S=Qo!˖-K֝=Yjʕc^ynOV(@Z AkՃUv Ak/!#Akׂ %@K +@ڵ`x 8 6|@&h]24(cğ!5h=>^O^7gJrNi뉥=F0M:֪;PZ@/^BG\֮+@K@Wk  h%q  hmh )KeOGF"Q魪S3*eis]!vV*@Z AkՃUv Ak/!#Akׂ %@K +@ڵ`x 8 6|@&h]-}gxߌ׃e7f||/ʣ>|LAM-y @tr><"c" wd_/C Z[0$ZDZ5AZ> CZ5AZ> CZ5AAkf|hѾ.wf͚%ͳ*_]V֬YD]0V4}u8X Cc Zsr*~i CcFy["3̟?_&Onje0[ZZ_N> rN]erX,jm-_@Z#"hzCU h%q@ hZBZ{ qpZ@/^BGpֆ@Q;$2LA˗֭[ϹFiS'7<[:zD 2h}rUTGK zbrHS@Z?#:DZ5AZ=CZ5AZ=CZ5AAkd|@PAusz{:E@Tdr>elTƔ7IwC Z[0$ZDZ5AZ> CZ5AZ> CZ5AAkf|ܵR3~|V#{ݻwIW]tjZ`iY("V=!*@Z`x 8 v-X!^8] V Ak/!#`AkD{ `I$JEwDpͷ$edzJYܐ'{eak[bW@ Z@@ hzCZ{ qpZ@/^BG\֮+@K0\=0FOк1޷ߠyΙ'jLZ#VDZ`AkՃ %@K +@ڵ`x 8 v-X!^8 !1ALM3~H|]S@L hN'A릚r)-Q#* `AkGD `AkB; `AkCs `AkB; `AkCs `AkB; hW@X'h]?^$]_U FrAYdI)hݲCZ6w$c @ZR.ֹ%;KuXl hm h:D[Z:9F0Z=@VֶNxG5?  @v Z< %GQ͛Q:9R7xC-[ U&/'wu&|E h)\^K%@:,y uraC{"m}#@P `Ak['G#@К@ ;_<5h=>^6hM6f(g!Vpt.v h|ƔɊ NB  hTDJ<3Jqlv'vD@v̉.@̂N@|ψ@̂N@|ψ@̂NAQM PZϨ ^Yڦ)  V'tب)Ӄ;b~uYBq l` }4 hX }4 hX }4 >>?G ۠u$N:)Suxo%_":+=>^j_XՆYzR67$I,6ֶĖ Uq*hݱCZ= mba S{#mm"@ `Ak&VD: M;gH( Ea* ݱCZ= mba S{#mm"@ `Ak&VD~7l ]w1|֬Y񷊾re1? /0&uɭzS8Fڈ1X mкZjkk4/=LMB˖iܡ) 6Vtv h?&@ڶ/)@:L} mba S{#mmXb >}|k_X^RR"O<8vBң|ӟ|+ӟT^&#h57B ZԈO@%_rIcJ'??uI P@a* ݱCZ= mba S{#mm"@ `Ak&V$:i\:$_|{> 7 ??;O< ?яҜ" R2hKd߾}IYT~_N/??~͑zAy衇'?ɨ#wdڴi2iҤ`׿uٻw/ǣ˥@QW)K4MMS@l hN*SxzgWLpOsG&h*Z5/EZ?:@{Z3+:EZ?:@{Z3+:EZ?:H#VEիao;Nmq޼yrmIeee-7pC) ZF͍@r*O>}ϛT%w<1y< h+*@Z\t.=#V׀zCv `AkE `Ak@  `AkkFE `Ak@  `AkkFE `Ak@ @XAk(N?tqގ}__#<"Lҗ$k׮=ǜiϙ3yW@ΛAk'4888  @3t>g:@ ū;::;T@dܸq}P5Zoxpz(P%\"F{DϗÇRG-7" +h!6FݥNBsM@DTr>8P")p^Bl@ V&@  V@xƏ@  V@xƏ@  V\kVyYt{ygdhhH>ƿZv85\#ӟF}]sgy8o[y'|_o@A`ر>*۶mSN˥rTryuwlH_5^uxK|(#O`._|bykV1N(/!9RH?k{PRlʳ#PH8ovJw> N;7|3f 8LuM> t~_8&@No[:;;ӟH@@Ə/Pٸqc:T~n~׾5Yzuk6~rJٿ\||KN(o%k֭{,'E@BptW_<󿛯RrAN:Q͛w֛|K-[3E9\~=|E )}BED&TFA}_g:@ 78 ݻW>D r 'ư/5??a^nA9i}O^yꪫ2C=$3f̐ŋO?{]@Ag= `Aku|Uv V=!^8] V Ak/!#Akׂ %@KL:5f涶6>&Gxڗ]vYׯ /W zՕ5|_|F{+jV8ΓZ' ߎE#uSM|ܓ5îؐ][ 5  `Aku\Uv V=!^8] V Ak/!#Akׂ %@KTTTSO=%Ǐy?|K#9|1tйsߟgo~3iɺ/˲}vd=A ,ˠ˚5k䣓KgOXZk$@BZ@@ hzCZ{ qpZ@/^BG\֮+@KCիWM7ɋ/H$"wu\x˒%KҞMSN{L2ӹVeee{?Zwtt$W'`DN*o&'!CiQDl hNTǖczzbG䭮y,@ZF~I~/ jcfCZ `Akuj=O:;]Zul hm h8CZ<=zGZ-ȱAr9(X?Ah_|x{@yׯ1hݲCZ6w!%@ZwlSl hm h8CZ<=zGZ-@f6O@ hAs?r,@:Ǡ\ V A9o$UjVwl+@ZS6@y!m #@~ `AkG AŹ,@;-@:hq@Z!@ ^&{ ֐C h;uWg }A Z!m#@~ `AkG AŹ9 hcP.+MкZjkk%%}S<ʫ~Ju|90Z:l'G~LD݁A97) @a.9 Aହ/@ Aହ/@ Aହy hV.(MкF#'7*NLKzr>@f ZOȄJ֪; _uϘ'D έ'WC h]@ s@Z|y:ȭAzr5 h897DKr^r[==1bNKuhZ&Uv V=!^8] V Ak/!#Akׂ %@K.@#^Yf pUA֪;PZ@/^BG\֮+@K@Wk  h%q  hmh.dFjy GyjW~NU:9֪;PZ@/^BG\֮+@K@Wk  h%q  hmh~rW﫪7[&M(ugӲCZ6whu  V=!*@Z`x 8 v-X!^8] V Ak/!#`AkD{ `ߠ/ֻ.?9uڱf[ "@Z$AkՃUv Ak/!#Akׂ %@K +@ڵ`x 8 6|@;hM64AkUT֪;@K@Wk  h%q@ hZBZ{ qZ> Ccr>ӕwJ[O,1 թV=!*@Z`x 8 v-X!^8] V Ak/!#`AkD{ `@ֳWo7YiȅAkUT֪;@K@Wk  h%q@ hZBZ{ qZ> Cc ZKEEGYYn9'7Y_1Fk> @! VIZ`AkՃ %@K +@ڵ`x 8 v-X!^8 !1~gU˧> ;ސyQojmZ `AkuzUv V=!^8] V Ak/!#Akׂ %@K.@#Mr״gzjW~NY:=֪;PZ@/^BG\֮+@K@Wk  h%q  hmh:RϻL?Y[z˖iܡ) 6 V--w]ys YoS&5}bCC-_@Z@yȻAs( 4L.@: Hu GA ;17@ @p/yk?{o~r|@B hOCo'˧ʘ>A_(4օ6Q-7@IDAT@:\ Iu!MgA| η0GB h]HY@ -ȳA<sy(?A4N/D{MkdREmW; `Ak}zu* pT5?  ?8[uqϟGyq6A?OZl hmHh ӥy$B^~Ĵ) 6 ֧GZ7GZ hϋ@Zyz'@ڟg#@q . O?/F8ƍ@P\Xڧz{:E@fZ&T@Ak~@yq6A?OZl(n= '@ڸ*pAyןhOgMW њ PhM Q$ Zl(n=  P{<= hϋ0Nq#!0T uCC8!>]g)O2^9JljmZ `Ak}u* pT5?  ?8[uqϟGyq6A?OZl hmHh &hfRn2iFl)w_S@l hOnB ''@ڟg#@q . O?/F h]@Ak^q !Y 5@&O>N<ݯHז-Ҳ#gAk}u* pT5?  ?8[uqϟGyq6A?OZl hmHh 6h]뗫?~7RsptwZA M>Qֺ 8*@К@Ak^-@к#?8[uqϟGyq6 6n$4 oC{[&{:@v Z&T@Ak~@yq6A?OZl(n= '@ڸ*pAiDݲ^NX&@ZAk݄  hO O?/F h]@Ak^-@к#?8Z7BCoYTd )f%_@ hnB ''@ڟg#@q . O?/F h]@Ak^q !~_sSTvwȻF9ؐ]CS@ A>Eֺ 8*@К@Ak^-@к#?8[uqϟGyq6 6n$4 Oz졽rk'+ [۴:@ZS&h9 m #@~ `AkG AŹ,@;-@:hq@Z!@ Oкn2iF=rZ P)fT@vֶO@ hAs?YӣwZul hm h8C s @`hT&M$~ Sw,wԜM˖iܡ)  @Zb6!lѯLl hm h8CZ<=zGZ-@f6O@ hAs?r,@:Ǡ\ V+h]QQ!rrM,Išqs2cRs6.+@B hO1u6W }A Z!m#@~ `AkG AŹ9 hcP.+m]'gQN˯d}J,jmZ P)fT@vֶO@ hAs?YӣwZul hm h8C s @`'h=m`fse!HP>lBٜ_ .@ ?-w/zUgr@rD,E 9ЃQ@@Zm")F98eNKj(A  1$!|7.aw=Wc0\Zk>g&;-hݵ + ZӳwZؕw;] Zw-~vu9؞awr  u} Q~e+ֻw?veA]yzN@]<={'@kAݏ.G@m׮ k5U6SPmrOr4!ԯl]]@zW еuG, h+O Z@кkq#@`Wޕgt- hݵ;V`AW~hu䫆&X[?lM8o_ ZGyxdՆS}Zx,(B@к1k( h1] ؁;ӥ^@:k( h1]I(0ڠc /~cw-'M@к>QA뺉Z{ ' h祚˞ RM@e_ Zy&ur#!h=aƢ{k]]{pu E@к>IA뺉Z{ ' h祚˞ RM@e_ Zy&ur#!mW^{+f]W޷,^˾&@@6Q ZM E@ړ@8A8/- h]uO@uj.{'@ N@:K5  HA)S^uP0LJ.w/[K @ ;AH&V" hI @@uj.{'@ N@:K5e Z= ' h祚@rɍĆHT`A3^.0~ꡯ~rW_  u}#Ǐs|ĵ7W[ @ A|f]C@:9nqvc @An݅Fd&6h}76J?gaE" h]HAw[ħ7lX uF Zw&d" h A@'֝0 Zg2Hm Љu'nB`pփuehvU8g_Aڰ)j u}u+l$ @ N@:K5e Z= ' h祚˞ RM 9AFbC$*&h=yŒpj[&7wqmrOSкnb-֞ Zy&@lA{T Pu=qq^ $' hHlD>0:cw-[ @@Ni ZM E@ړ@8A8/- h]uO@uj.{'@ N@:K5  h:؍{]|0cѽyvں$ h]u [= RM@e_ Zy&@lA{THN@: Z':"@ YAh&V" hI @@uj.{'@ N@:K5e Z= ' h祚@rɍĆHT`A yP-װEC_o#w- _Y Z*h]7BAkOT Pu=qq^ ([@к8A8/Nn$6D@#k{gŭaS:zekj u}u+l$ @ N@:K5e Z= ' h祚˞ RM 9AFbC$*0Rz̙aĉ։϶^@кn.h]7BAkOT Pu=qq^ ([@к8A8/Nn$6D@ ZW{ uC>!@@A&V" hI @@uj.{'@ N@:K5e Z= ' h祚@rɍĆHTMy_ ׭utW[ @@Ni ZM E@ړ@8A8/- h]uO@uj.{'@ N@:K5  @aws6[$@@Ni ZM E@ړ@8A8/- h]uO@uj.{'@ N@:K5  u-fdž[ĕ7E7- u> Zw.! huA@78 yZ1G] Ѝu7B``ua2Moyk:F!  Pu}#OOW;q隍aڍu # h,uB@78 yZ1G] Ѝu7B@yQt# hݍh]F>?ǾŽm\_q"rOSкnb-֞ Zy&@lA{T Pu=qq^ $' hHlDF>^{`%պlM8oں& h]IO[; aźMk4# h]̨5JA.C@EY A2! h]Ę5IA.C`g Z,y%@`W&flAF Rt~E+" h$A@W]I9Z0E= ЕuWC@9LQt% hݕ`]F Z>#_M^CˍxVE@:Ivraz @+A뮤݇sJ@к+i!0 A, oqpK>yŒpj ]\[@)H= u.] Zw%> h@@W]I9Z0E= ЕuWC`@uYM-oE>{ŒEf/\oYmrOt HWB@.ֹLRt% hݕ uS] Zw%> h@@W]I Ze N`Gyv|4D Z?W$#_ Z2I} ЕuWC@9LQt% hݕ uS] Zw%>$ h= X%@ ;AF!, h])H= u.] Zw%> h@@W]I9Z0E= ЕuWC`@uYn"@`u#_ Z2I} ЕuWC@9LQt% hݕ uS] Zw%>$ h= X%@ ;=-az_ÞϞxtemrOt HWB@.ֹLRt% hݕ uS] Zw%> h@@W]I Ze N`4A aսŭaS?wq{ٚں& h]HAꑎׯh\s>J@к+i!@ AJ}A@:)v uv#xVE@:Ivraz @+A뮤݇sJ@к+i!0 A, Zg7R  0`A:HA[cډVo+o[ @ A|f]C@:9nqvc @An݅Fd&0\za/u{2C?, X% @ KAXG Z?y|xncj'>jCXAкc@F S+t" h  u&Zw&d" h A@'֝0 Z֕ K`ĉu[Շqc#s6[$@@n ZM E@ړ@8A8/- h]uO@uj.{'@ N@:K5  HA??o{Nt~E@usA뺉Z{ ' h祚˞ RM@e_ Zy&ur#!Nt0E@ZM E@ړ@8A8/- h]uO@uj.{'@ N@:K5  h֧?qօqׅCNq"rOTкnb-֞ Zy&@lA{T Pu=qq^ $' hHlDF>Yaa%:lM8oں( h]u [= RM@e_ Zy&@lA{THN@: >cW Z':?"@{A뺹u [= RM@e_ Zy&@lA{THN@: >S^ADg[t/ h]7X!@`'qq^ ([@к8A8/- h]uO@uj Z'7"@ QADc[$+ h]u [= RM@e_ Zy&@lA{THN@: =˰Cw:pEeu Q@к>Of>o\5ҵLJ6vU jG@:Ynqvc @An݅<.F@кgw!00AѺ0 2eJ8^0v0{ŒEyvں( h] Mޭv ë Zd,(G@кY# hc]2˘. 1;U(C@к9# hc]NinL.&0R33Mz 08A뺭u [= RM@e_ Zy&@lA{THN@: ~;^a h mn#c|8nLWk7n[ @ A|f]C@:9nqvc @An݅Fd&0Lu~>&?~Dƣ+k u}#<_vs|M@f֙ T; \@zn@@F S+ \@zn@@F S+ \@ze` {l8K_0mڴ0p;3u]L>=osψ>äIFZjժOz뗝*h) ŭaS׺}ekj u}u+l$ @ N@:K5e Z= ' h祚˞ R= C9$\qa}Uoذ!\2T\sMg?6mڴui`~S f]. _ׇܹsØ1e˖ ݣ_͠%& hDC‚u+l$ @ N@:K5e Z= ' h祚˞ R=QG.첰}kᦛn /ڵkC#8"\paԩ~ucO8\}a̙D={vSvUwu &%K:(&h<\wu?y8묳{]\F Z_|a{Vzys(ܿbp@vC ؉u|A뺉Z{ ' h祚˞ RM@e_ ZyFOpgS‘GSO=5lڴi67YWoñ{hֳfn8ܺs;v3vaaws6[$@@ ZM E@ړ@8A8/- h]uO@uj.{'@ N@:K07pC8‡?ޛ) cƌ _WC*\wְ}<Zo ϡ k!hT Z^zւ֩L>ؙu}A뺉Z{ ' h祚˞ RM@e_ Zy#P}o+V'pBXn]X>s{|%|#ԩSٳC駟,X/:hF|3_vf ZC`̙3? hǬuA; ZM E@ړ@8A8/- h]uO@uj.{'@ N@:Ku׼5ꫯ x;Tm׾6| wyg8s=_]r%ᤓN z{.G?_{vlS;av2.hҗ4󬷇Iu \ luPкnb-֞ Zy&@lA{T Pu=qq^r)cX[>>U.van>hxް_{{{W Z_yᨣ ~ܹs[v'vm֯|+izybI8`mf-[Λn Z'+h]7BAkOT Pu=qq^ ([@к8A8/}>Tm/vyܸq;cƌ 'xbxǷ-x\sM+9;&h}뭷UpN sLoϾO>?vğ}6 ZQs% Z8u= =u=A뺉Z{ ' h祚˞ RM@e_ Zy#O|"|ӟtkT՗򓟄c]hQ`+G}t/\p𶷽-]v3G?~|;wPz=P/~C=4޽WAۿ K,~]~!hݥ{ + Zӳwvu]]кnb-֞ Zy&@lA{T Pu=qq^̠uҗf̘wyv9ڠu9s?'?^?pI&}>;v#vqozӛ1G:L\R' ^@z@@>R' ^@zEag?я*l| 7.{A|p޶=믿>T~0||`Fd&0ڠG 3[k,[ @@ ZM E@ړ@8A8/- h]uO@uj.{'@ N@:Ku>ꨣ•W^ypi5k40&hx>[8O9>U[?~|GW*8Xnݺ۵og)lfe  @>{OU&lܸ#(\~f}~f}M ,P'O;lٲzB gN:5?ܩc^Wlީ;p>W\Q_zkرcÉ'ܨ{w]q*h^{[owc9&ZA뺉Z{ ' h祚˞ ^!hgr˝ Bւnxi>9s~}/>0{ON8G{5k‡>r~C Ï~څ _l??W ~_m}*hG\ n/9t(F`=o}[{^X`Ax{>>O=M]Z~1W@@?P~b Jq0;o~G+"qs_W}s{ gqƨZtuׅ[lE]>:k x+>p-l׵ڜ71r)o} 7xc8 To6}VwM߄kؠ.w/[ @@Uz#ݷLЩȪg֓6Wo<"T!@T>u gV׬>g Z5'T^},Y$Ì3]櫓N:6o=׿7Ϳ2?~XjPp|{wx޶͵;gGޑE@9OWo B@кYUк*KO@uzJ.yz'@ V@:VL=% Z<} + h+Q`ĉ -O:F#}|zի_ʷpG`}W׼57V>-;6#]7渠uZJm0iչ?X_n Z7OVк*KO@uzJ.yz'@ V@:VL=% Z<} + h+__s9'Tox Uo |ͽ'' ZW>Cuz>p7yAZB5 Q`A,l\H\'+hb@֥?'@ V@:VL=% Z<} + h+K SW`ڴiaΜ9}{ÝwX;nܸp饗Yfn)\r%u;rqA?xa„ ]zWM4~q|;;rˣ PpA.,_*_:Zh!A!m>ކGqq^ ([@к8A8/- h]uO@u;pYgk׆???*wwo{x衇E#8"\wua[[:ڠuu7M.]7=_r!ᮻ g}vA뮤݇]]@zW еuuU ZXAX1, h]N@uzJ.yz'@ V@:VLsNx{ӫ{w{𲗽,^:ujxG__ 6^z;0vpibLкfu3}z O<ȟN<9ZjVT=~ O>dկ~vs~E]4lz޲5Ἱ_d( h<~Ak6银k76_*Zg3J БuGnC@YQt$ h uc Zw6% h=(Y%@ 7~A1cƄ>[:n&nvJtAҟ + h+K SO@%O_ ZNJ'ub~Zq^8uRzix{j=xuZ7Yк*KO@uzJ.yz'@ V@:VL=% Z<} + h+@b։ vHV_z=?y|8y=[Rᛏ ں, h<]AfJ. ?ֱb (Y@кXAX1, h]N@uz Z'6!@ YO{&dg˟kd- h<^AfJ. ?ֱb (Y@кXAX1, h]N@uz Z'6!@ YAdGcc$* h<AfJ. ?ֱb (Y@кXAX1, h]N@uz Z'6!@ Y9!=: ] Z7 Z7X%PuO SO@%O_ ZNJ'@dA뒧wbcHL@: sv^oYpEmrnuU ZXAX1, h]N@uzJ.yz'@ V@:VL= hٌp ?wq{ٚں, h<]AfJ. ?ֱb (Y@кXAX1, h]N@uz Z'6!@ YAdGcc$* h<AfJ. ?ֱb (Y@кXAX1, h]N@uz Z'6!@ YAdGcc$* h<AfJ. ?ֱb (Y@кXAX1, h]N@uz Z'6!@ Y/ak=p5u Y@кy.V . h]bc Pu;ֱb (Y@кXAX1Nl C@ Z_}   utsB?~lMa?1{ Fm\ں h9 Z4M 0hAA >9 Z4M 0hAA > Z F@:Qj](]@к'@ ZNJ'@dA뒧wbc Pu;ֱb $& h@ld u`](]@к'@ ZNJ'@dA뒧wbc Pu;ֱb $& h@ld Z~/y~mY*|ru (A@кyʂ.V . h]bc Pu;ֱb (Y@кXAX1Nl C@iN_6'k Pu](]@к'@ ZNJ'@dA뒧wbc Pu;ֱb $& h@ld u`b֛6puJ@VYS3t h[ u6Zwd# h(5B@ A ZR׵ I`y/NZݿ<k PucOo^BV J@:qj;@v f!@A݂lF@@кd 0HAA69 ߟZW޷,^n%Z7OYк*KO@uzJ.yz'@ V@:VL=% Z<} + h+@b։ vHV`կ}A8tʄ?wq{ٚں h~u(A@кyʂ.V . h]bc Pu;ֱb (Y@кXAX1Nl C@ɎHT@кy0.V . h]bc Pu;ֱb (Y@кXAX1Nl C@ ~9?_^ظoondH@!̓nvJtAҟ + h+K SO@%O_ ZNJ'ub~W WO8q߂֍, (D@кyЂ.V . h]bc Pu;ֱb (Y@кXAX1Nl C@, WomZGk Pu](]@к'@ ZNJ'@dA뒧wbc Pu;ֱb $& h@ld~zp!f(I@кyڂ.V . h]bc Pu;ֱb (Y@кXAX1Nl C@Ov6F) hݬ/hb@֥?'@ V@:VL=% Z<} + h+K SO 1Ab;$+ hhlD^fcXvc uV Zwd# h(5B@ Zg3J ЁunA`փumriz!@ AfeAfJ. ?ֱb (Y@кXAX1, h]N@uz Z'6!@ YAdGcc$* h<)Ɔ}[zs@|I cA댇5" h=V%@ SAL-" h=V%@ SAL-" h=V%НuwD- hk ^@к|Ɔ& Z7X%Pu9۹92˜ h' hY) h]uM@;Avn"u2N|@G@r#nvJtAҟ + h+K SO@%O_ ZNJ'ubNv46F@̓nvJtAҟ + h+K SO@%O_ ZNJ'ubNv46F@̓nvJtAҟ + h+K SO@%O_ ZNJ'ubNv46F@̓nvJtAҟ + h+K SO@%O_ ZNJ'ubNv46F@̓nvJtAҟ + h+K SO@%O_ ZNJ'ubNv46F@̓nvJtAҟ + h+K SO@%O_ ZNJ'ubNv46F@̓nvJtAҟ + h+K SO@%O_ ZNJ'ubNv46F@̓nvJtAҟ + h+K SO@%O_ ZNJ'ubNv46F@̓nvJtAҟ + h+K SO@%O_ ZNJ'ubNv46F@̓ Z/~zCXnS uV Zwd# h(5B@ Zg3J ЁunA`փumriz!@ Af嘠#6%K@:y ZG@:Y ZG@:Y Z T@z.N@F S+t" h,hb@֥?'@ V@:VL=% Z<} + h+K SO 1Ab;$+ hhlD#hb@֥?'@ V@:VL=% Z<} + h+K SO 1Ab;$+ hhlD#hb@֥?'@ V@:VL=% Z<} + h+K SO 1Ab;$+ hhlD#hb@֥?'@ V@:VL=% Z<} + h+K SO 1Ab;$+ hhlD#hb@֥?'@ V@:VL=% Z<} + h+K SO 1Ab;$+ hhlD#hb@֥?'@ V@:VL=% Z<} + h+K SO 1Ab;$+ hhlD#hb@֥?'@ V@:VL=% Z<} + h+K SO 1Ab;$+ hhlD#hb@֥?'@ V@:VL=% Z<} + h+K SO 1Ab;$+ hhlD#hb@֥?'@ V@:VL=% Z<} + h+K SO 1Ab;$+ hhlDЩ|֑GVm7lz֊O U@:A ZJu Q@:ǩA ZJu Q@:ǩA ZJu t$ h Z# ZoRK h+ hVy( h]L@[Ar#@DAg ZsDm u#A?A6(U@кmG@%N]n+<J.qz&@u[9HD@:A Z'?"$@ 1Am]" uV Zwd# h(5B@ Zg3J ЁunA`փumriz!@ Aʂm!Pu7m9K h+ hVy( h]L@[Ar#u" N~D6H@b"h Z:y} V@к(Q@кĩmG@%N]n+<Z'2 @ yAGd$& h m!Pu7m9K h+ hVy( h]L@[Ar#u" N~D6H@b"h Z:y} V@к(Q@кĩmG@%N]n+<Z'2 @ yAGd$& h m!Pu7m9K h+ hVy( h]L@[Ar#u" N~D6H@b"h Z:y} V@к(Q@кĩmG@%N]n+<Z'2 @ yAGd$& h m!Pu7m9K h+ hVy( h]L@[Ar#u" N~D6H@b"h Z:y} V@к(Q@кĩmG@%N]n+<Z'2 @ yAGd$& h m!Pu7m9K h+ hVy( h]L@[Ar#u" N~D6H@b"h Z:y} V@к(Q@кĩmG@%N]n+<Z'2 @ yAGd$& h m!Pu7m9K h+ hVy( h]L@[Ar#u" N~D6H@b"h Z:y} V@к(Q@кĩmG@%N]n+<Z'2 @ yAGd$& h Zݸ9 ; u> ;@y]3VD@к?uG* h]M@[Ar#@DAg Zs% Z8u= V@к$" h l  uZq@֥N^n+<J.qz&@u[9 PuS3m9@"։ 6H^@:  ZuG* h]M@[Ar#@DAg Zs% Z8u= V@к$" h l  u0~lՑ7lZ?|d# h(5B@GA YZg1FM БuGnC@YQt$ hd]s~u'mLgZ ]f]f]~^c ~xxK_MϟpwkhW>}zxݫ=3W"h=8[W&@ /A/ hXк#J.u&@u[9 PuS3m9K h+ hVy r!+o6l+W Uz5\>φM6m]دԧ¬Yz׿袋׿k4 h) @@u/A6(U@кmG@%N]n+<J.qz&@u[9u"pQG.,k_Z馛/~vP!#\pA:uj|ݺuۉ'.ҡ ZQ Z'?"$@ 1AoRK h+ hVy( h]L@[Ar#@DAg Zs3gN1cFX]պW_}u9sf'>fϞTkXkO0!,Y$tAAzY] ZwFFd" hm!Pu7m9K h+ hVy( h]L@[Ar' Nu]~Gydꪫƒ>N=԰iӦad]/{lmڂm$C# hsݕ]W@к8BTAR'o Zs% Z8u= V@к(Q@кĩm7pn!vapp̘1_jt~ÕG5kVԧ>pgVtvwwv=A3oRK h+ hVy( h]L@[Ar#@DAg Zs@o|aŊN֭~{nx{򕯄|##֏`ԩa١O ,_G Z'2 @`?W" uV Zwd# h(5B@ Zg3J Ёun/׼&\}a޼yxǨ.׾6| wyg8sFuh.pI'}s=UZFN NkvC@g45ҵ_j!@A݂lF@@кd @ AlF:-N9},r-.pan!< oxèc ۬ׯ_;Ez$9  uz3#?A6(U@кmG@%N]n+<J.qz&@u[9 T{z.lT9sfַ6l7boڴiT+2eJ={v6mZ83ý;T*h=D2ֻ̨lDBк#J.u&@u[9 PuS3m9K h+ hVy [|&|_սƍ0f̘p'|T+?{35\mv A]bL6I@B!h Z:y} V@к(Q@кĩmG@%N]n+缁 |'|r?Q'?I;vlE}ѽp… vmJv A]bL6I@B!h Z:y} V@к(Q@кĩmG@%N]n+缁 ̠uҗf̘wyzX @@ɏ HL@к@8BTAR'o Zs% Z8u= V@к(Q@кĩm7PG?7n!\ve}"h=~0s xqDž 6n-|_1+{}/,X`5_ @*h>XfMo~}qcXnSXv5 @{ U>iN'A4tx`s @@]}f}fM ,I&.^8<ͅV  @Qxʕ+ @@+Tafy+^]v>ꨣ•W^ypi*P1UW]tQ]6? z @4*0xGo=-Z͚/ @`ĉ{_T\t){0i7 w#9J #qƅ޻Q|YdIFi;^z.*W4 To~ƍQoU3kV3k @f*4._<^*=ܳ!hSӻ>p)+"\s5O~0vp'ըO|pK_R/Fw;}i @@ɎHT@к`8BTAR'o Zs% Z8u= Vzqu[= Pui/# h=z__??_}Gu)So=lڴ)aQE_|q8S{aO~Þ:u؏#^n]/~-^B=ֳfڦyۈ!P̙3{ ՛_c>ϼg1r,_9,Fa$@~ @~7t> @>3F7hݟ5h]}?=/?Rʪbٲehݟf=upjxNO槝vZ?̙u4;<ٳO<N8ќ2TsG*Y&|C +W:IUs衇G?P… {Z7񍽷W~7x- T0o6Yl7 >t'cv>htưtj>#@<^ׯ=P )h կ> 80~ށ|UV @Y}_Y}_4 T?9;cɒ%ᩧj.J)ӦM ;{m>pW|ns~>p38_Yu]^7Y袋׿SVz ]B 6 a)8BTAR'o Zs% Z8u= V@к(Q@кĩm7PŽ73W?j}ؼy;S_npyXO?=̘1K~~I'G~׿P7ߌ*h= + h=, ZH^nacnTW@:ZU S@:ϹZU S@:ϹZUS`ĉ -O:5To;F?W*\~~{ /#8"7X?w߂5] @u?OO׿#Vo+oAg:!@An݅<.F@кgw!@ A< ]Z_e8s7p{L7|sxßɟzj=(h'@@ݛ#u&hȪ aAK@:y ZG@:Y ZG@:Y ZZ L6-̙3w{pw6^iܸqK/ f 7tSKv䢠t-t# hݍ uY Zq@֥N^n+<J.qz&@u[9 PuS3m9;/uYaڵ? ߅;뷿ᡇڦfo~G`˭~n$TAN}MEE@"*cP0bѸ#"Q᮸"(+$Y\D\.Ϸ|sgvWUOgN9{9)( hݻhֽm!Pu7n ZוӎK1 PW@кv( h]bՍu[0?˿KuK.${骫JyCt{3]~L^zi~اrJZiҏ~Wq>)h= u>&C@кw{CTAR+o+% ZXuc&@u]9(Q@кĪ3ui;szы^vXw:s9ժ7xcy?#`|&m裏N'xcyBz- @ A<LuZ Z@֥V޸ + h]WN;J.L@]Ar PuU7f Zוn,V[m6htkv~iC=3iҥ?a:餓r @`,cawQ&X@кw{CTAR+o+% ZXuc&@u]9(Q@кĪ3uiG AL d/ h}t{Dк=J.M@]Ar PuU7f ZוӎK1 PW@кv2ΤA@ٗH L@кwA{CTAR+o+% ZXuc&@u]9(Q@кĪ3uiG AL d/ h}t{Dк=J.M@]Ar PuU7f ZוӎK1 PW@кv2ΤA@ٗH L@кwA{CTAR+o+% ZXuc&@u]9(Q@кĪ3uiG AL d/ h}t{Dк=J.M@]Ar PuU7f ZוӎK1 PW@кv2ΤA@ٗH L@кwA{CTAR+o+% ZXuc&@u]9(Q@кĪ3uiG AL d/ h}t{d%ܙ\vwCT ZOU9 ^d @`jBZ/K 05SSJ!@`%R@zM4 ZOS5=LԕԀr #1 0USUN!@`#vz 0-RI @`{K Z@֥V޸ + h]WN;J.L@]Ar PuU7f Zוӎ@&֙B7^@:  Z.uo{* h]j卛u#@DAn+% ZXuc&@u]9d" hI!t/ uZ@֥V޸ + h]WN;J.L@]Ar PuU7f Zוӎ@&֙B7^@:  Z.uo{* h]j卛u#@DAn+% ZXuc&@u]9d" hI!t/ uZ@֥V޸ + h]WN;J.L@]Ar PuU7f Zוӎ@&֙B7^@:  Z.uo{* h]j卛u#@DAn+% ZXuc&@u]9d" hI!t/ uJiӵV}_\tӒ$@`FCGo LH]Z +Hy)b  " hݛyUVJ-h[ ZWs#&@u3? (K@кz-iM@Yeh h& hOkc{ t B&Z.uo{* h]j卛u#@DAn+% ZXuc&@u]9d" hI!t/ uZ@֥V޸ + h]WN;J.L@]Ar PuU7f Zוӎ@&֙B7^@:  Z.uo{* h]j卛u#@DAn+% ZXuc&@u]9d" hI!t/ uZ@֥V޸ + h]WN;J.L@]Ar PuU7f Zוӎ@&֙B7^@:  Z.Ȋַ/;-Z|gC ZO]I  Z *A* 0bA;=S% h=U4F, h=b`'0jAQ ;?" h=-4J@кuo{* h]j卛u#@DAn+% ZXuc&@u]9d" hI!t/ uZ@֥V޸ + h]WN;J.L@]Ar PuU7f Zוӎ@&֙B7^@:  Z.uo{* h]j卛u#@DAn+% ZXuc&@u]9d" hI!t/ uZ@֥V޸ + h]WN;J.L@]Ar PuU7f Zוӎ@&֙B7^@:  Z.uo{* h]j卛u#@DAn+% ZXuc&@u]9d" hI!t/ uZ@֥V޸ + h]WN;J.L@]Ar PuU7f Zוӎ@&֙B7^@:  Z.uo{* h]j卛u#@DAn+% ZXuc&@u]9d" hI!t/ uZ@֥V޸ + h]WN;J.L@]Ar PuU7f Zוӎ@&֙B7^@:  Z.uo{* h]j卛u#@DAn+% ZXuc&@u]9d" hI!t/ uZ@֥V޸ + h]WN;J.L@]Ar PuU7f Zוӎ@&֙B7^@:  Z.uo{* h]j卛u#@DAn+% ZXuc&@u]9d" hI!t/ uZ@֥V޸ + h]WN;J.L@]Ar PuU7f Zוӎ@&֙B7^@:  Z.Ȋ7/Y}iC ZO]I  Z *A* 0bA;=S% h=U4F, h=b`'0jAQ ;?" h=-4J@кtw>=LԕԀr #1 0USUN!@`#vz 0-քs@IDATRI @`{K=A4vZA- 0"A:-S) h=e5(F$ h="X%@`*EGJ@z]I ? - h_|{A4vZA- 0"A:-S) h=e5(F$ h="X%@`*EGJ@z]I ? - h_\кJ.K@SA릂 PuI6V Z7ԞK T@к, h=<# h=1Q2_A>(M@к/M jO@I%UX h* hTP{J.J@SA릂 LĔJG D@к!K4A*n4n*=% ZTmc%@uSA (I@кj+M jO`c. 01S*%@ Ac/K T@к$ h]RM'@$A뒪m4n*=1 Z.OZOLtLBкJ.K@SA릂 PuI6V Z7ԞK T@к, h=<# h=1Q2_A>(M@к/M jO@I%UX h* hTP{J.J@SA릂 LĔJG D@к!K4A*n4n*=% ZTmc%@uSA (I@кj+M jO`c. 01S*%@ Ac/K T@к$ h]RM'@$A뒪m4n*=1 Z.OZOLtLBкJ.K@SA릂 PuI6V Z7ԞK T@к, h=<# h=1Q2_~Akn+ݰ'r  h.AZOM) ^d @`jBZ/K(uij  ! h__KmK?LT`XA@v F@zjJi , S# h=54@@z](GL4UXXAʂ}%Pui7^ Z7ԞK T@к$ h]RM'0fA1 A) uBZ@i֥Ux h* hTP{J.J@SA릂 PuI6V Z7Ԟ\'@`b'T:J@& !h^ ZVq%@uSA (I@кj+M jO@I%UX h* hTP{cs\R(Z/u{ & h]ZōM'@$A뒪m4n*=% ZTmc%@uSA Y@zpy&F@zbJd" hݿ}%Pui7^ Z7ԞK T@к$ h]RM'0fA1 A) uBZ@i֥Ux h* hTP{J.J@SA릂 PuI6V Z7Ԟ\'@`b'T:J@& !h^ ZVq%@uSA (I@кj+M jO@I%UX h* hTP{cs\R(Z/u{ & h]ZōM'@$A뒪m4n*=% ZTmc%@uSA Y@zpy&F@zbJd" hݿ}%Pui7^ Z7ԞK T@к$ h]RM'0fA1 A) uBlΪi/M-]u' NA鬫Q 0:A:3' h=}55"F' h=:[g&@`FDGgD@zA])" * hݟ{WMk"h_^ZSk#%@Av2˨Q Ўu;B@e( hG@кGg!06Aѻ0& h=a]. hݿ}%Pui7^ Z7ԞK T@к$ h]RM'0fA1 A) uB Z%iKt ZOW= ZA驥 0zA# h==4F/ h=zcW 0RA:9S$ h=E4D@к?sE7-^N@zJj@X@zNOT ZOU9  Z *A* 0bA;=Q ZZ Aiq PK4A*n4n*=% ZTmc%@uSA (I@кj+M jO`c. 01S*%@ Ac/K T@к$ h]RM'@$A뒪m4n*=1 Z.OZOLtLBкJ.K@SA릂 PuI6V Z7ԞK T@к, h=<# h=1Q2_A>(M@к/M jO@I%UX h* hTP{J.J@SA릂 LĔJG D@к!K4A*n4n*=% ZTmc%@uSA (I@кj+M jO`c. 01S*%@ Ac/K T@к$ h]RM'@$A뒪m4n*=1 Z.OZOLtLBкJ.K@SA릂 PuI6V Z7ԞK T@к, h=<# h=1Q2_A>(M@к/M jO@I%UX h* hTP{J.J@SA릂 LĔJG D@к!K4A*n4n*=% ZTmc%@uSA (I@кj+M jO`c. 01S*%@ Ac/K T@к$ h]RM'@$A뒪m4n*=1 Z.OZOLtLBкJ.K@SA릂 PuI6V Z7ԞK T@к, h=<# h=1Q2_^Aewol/S' h=u%5 F, h=b`'@`CG LT`G-LT8X(Aҽַ/;-Z|g 0uSWR"@`#vzJ@zi0X@zNOT ZOU9  Z Z@zOZOK%/-h^ ZVq%@uSA (I@кj+M jO@I%UX h* hTP{cs\R(Z/u{ & h]ZōM'@$A뒪m4n*=% ZTmc%@uSA Y@zpy&F@zbJd" hݿ}%Pui7^ Z7ԞK T@к$ h]RM'0fA1 A) uBl*iVwKN9yO 0]_#@}AM ZoLh_@к}Sg$ bLO uV_9mG EZQf$@EA1 - ZTLԗ hQ@кEL"0Aq&( h=Ug) h__кJ.K@SA릂 PuI6V Z7ԞK T@к, h=<# h=1Q2_A>(M@к/M jO@I%UX h* hTP{J.J@SA릂 LĔJG D@к!K4A*n4n*=% ZTmc%@uSA (I@кj+M jO`c. 01S*%@ Ac/K T@к$ h]RM'@$A뒪m4n*=1 Z.OZOLtLBкJ.K@SA릂 PuI6V Z7ԞK T@к, h=<# h=1Q2_A>(M@к/M jO@I%UX h* hTP{J.J@SA릂 LĔJG D@к!K4A*n4n*=% ZTmc%@uSA (I@кj+M jO`c. 01S*%@ Ae?/^N@zJj@X@zNOT ZOU9  Z *A* 0bA;=Q ZZ Aiq P{];^N@zJj@X@zNOT ZOU9  Z *A* 0bA;=Q ZZ Aiq PK4A*n4n*=% ZTmc%@uSA (I@кj+M jO`c. 01S*%@ Ac/K T@к$ h]RM'@$A뒪m4n*=1 Z.OZOLtLBкJ.K@SA릂 PuI6V Z7ԞK T@к, h=<# h=1Q2ΤADZODt3* u%A2ΨB@ٗH H@:b :uԴ!@DAn4n- ZVq%@uSA (I@кj+M jO@I%UX h* hTP{cs\R(ZgR @`"'L:I@FCW^@:  ZgT ]!@ {AKd$ hQ1t@A:j PuU7fZ7ӖK T@к$ h]RM'@$A뒪m4n*=1 Z.OZOLtL3)n 0Q&$@ #A댊+d/ h}t3* u%A2ΨBu5m(Q@кĪ3MiK@i֥Ux h* hTP{J.J@SA릂 PuI6V Z7Ԟ\'@`b'T:J@&֙B7A(N uFξD:H@FCW^@:  ZgT ]!PG@к6( h]bՍ&M%@4A*n4n*=% ZTmc%@uSA (I@кj+M jO`c. 01S*%@ AL LDI' H@:b  Zg_"$@ #A댊+d/ h}t3*# h]GMJ.L@A&z Pui7^ Z7ԞK T@к$ h]RM'0fA1 A) u& &B@z"ʤd$ hQ1t/ uFξD:H@FCW % ZXuc&@u=m (M@к/M jO@I%UX h* hTP{J.J@SA릂 LĔJG D@:B! h=eI2ΨB@ٗH H@:b  Zg_"$@ #A댊+ZQӆK1 D@к& h]ZōM'@$A뒪m4n*=% ZTmc%@uSA Y@zpy&F@zbJd" hI!t2$ ZgT ]!@ {AKd$ hQ1t/ uFuiC@%Vݘ h" hDO[J.K@SA릂 PuI6V Z7ԞK T@к, h=<# h=1Q2ΤADZODt3* u%A2ΨB@ٗH H@:b :uԴ!@DAn4n- ZVq%@uSA (I@кj+M jO@I%UX h* hTP{cs\R(ZgR @`"'L:I@FCW^@:  ZgT ]!@ {AKd$ hQ1t@A:j PuU7fZ7ӖK T@к$ h]RM'@$A뒪m4n*=V]uմ뮻}m6뮴hѢtE }  PjV͗z嗧naS @ Dhpu֩~[ti[ @@VZ)ze˖oǑ&@Xg nƙ @|x7cיzFx_3x?3״ @@wZ+gvmiɒ%,5Xq7V{lw.N`>c '@ @ @ @ @-~u Z/8 & h[E @ @ @ @ ,A]wu^l)ۅ^Xoh@B6|G<E9S  lFiw^wu3$Z @5\3.h6? a @{1c @`uSNI~~'@@sAV[msM7}o9/ )[]c9Oӡt{+w4n5 CO}jz>FŋSZkmݖ=t8  +^xN-oI7Yo{o~vw뮻.m3?VS9&hMs,@v-Ňzowm̅/gzL@m̙|#Cu'BoֵMs^W{f_y{W^z.|+g9į`Gj\sM5'uK,Iԧ'>twA[s\mOh#'Mڞ3W_}tgե?OU`W6>32g< g;Og[Sp ;OU g61hkc}6'h=[c4nn  @?k뮻}[\rIuT|; OxBzK_Z~GN8aJwTj}_L{@/ynfՊ/[lEo~>яV?c_?=aK/{6lSͧ1^y#h=X wO{Ӫu[|Q$amͅ!y>4hsΌ~o}k/կԵx-+9#D:>L>sלkFu=y)>_צ]iIxЃ?j}{_<ptM??ګ+_J{mmqq6'4ثj'@`P̸wt'W@uQuoOvZcȜٕד !Yկ`-q'B_l뮻nuͻW!<9.9[Ivqt @"H}I'U}_~u[1Ŋ{?v=ΓUcM}cS? /sAw޹]L }Cx׿^j#h=WJ`No{ꪫV R?#d7lк36'4Q:3oz_^͹+M??|+^sxDqѢExFZlê<򑏬~w~O @@̙S|ik_Z:ҝwٵɣ1?|xgv=9..̓ (093.??3?Ӏ~X3{:z7oj_4TbAG<K_Rz׻h|]KIM! M VӊU"xqu;d׼57ÓX9FI7׶r\|ŵ+|H.weX~%vmf;~ 0jM6$};I^{m3ֿ_n+ns.N}>AQr~-zP?/|?cu3j]gS׽.z5g#C?cb{;CI~~;9 +'B9s'?#L?Rlm~fdlR m x㍫1sYEmxV^y~W_}ۜmOz^(9'rڞ3;rK̽n9ϝv)}H^ziz3j_=C}gy$ @`6l7VA5}C>OW+> Owxs\W2O 0@sfҝ v9n%#@ Ls= Z|&mve/{Y>6mqmOzv<&@@sA@@38#NH{ê?l Aꫯ>"{uSNI^{?+w1t u]wݵk; Z9F>0cbn9F^uι"Xý;wvwQGOя.w`s\&h}|;L~޽BB -a @QoO{.񒗼$xC}{x;# J|_IKm[V `8+|EIOzRf ~G>ME!>hI``sa ABmQ/>VU|k_+dҿ)!0ΙxXq*><$i;gg{g>]S{a%_̙5<&@`y[nI]9 B>W^9o @V4gv}c~_tg۟3.4/?L~ސޙ9 tAzիOj @`zFF\ <&a [-oyKvt6L@<~7r!)Vlͪŭ?K.Dd ;{_g¸oۙ]GV+ >g{@6:vmiw\)۞ >_ `E{^՝b6nEj%E`9N;-]{i]vխ7|t{;Ew WK|;>?yi\/X B׾-w縶]Qh0o8ëպ/'!7g>M,[.K3^g7xc袋#fό̙ݔ=G.q纸cJt*mqmo{]ݑ;H|+g:*S%@$ ZOrd&|Zo}Ioߥ~{j [~uvۥX-5VTl+ Zk1箱pm l{.l|/4xܧ YOgqFl 0sf[ouug /J-*}U0~w;t6ptꩧV_/Nŭo}s=yr̙q կV_0?B%c'T+Y/W^ 0٧;ӫ\x4>ǙE0p?ugό̙ݔ=G(bދ/ַ5}_w縶Ϸ_jYbh77pO @PAB o @`kM}zAn|CK/nS8 @ 'x)ބlW]uUT!m٦ZeVKk!o~sΪ̋bXuvꫯ^6B``sa ^X=xW%n)d=UI`z3;;CuwrKx=?9_m%/E>:ŗgo*aN.oRvwtӜ__PַқyWj{k|^x?}on\hQu`#@@]͙{g}v y_|qJ~vmS)86뮻nMA۟3;~ 0 x?8=H}sS|{ڞ>_u=ٔu { Z/7 @@6芦g=U܇>/~1-[lkB'\[^[0`uqAmh-d\B@Æ۞ >_t nU:~վCk!193;$k:êנ'tRu1uK~fԧ>9EsAsr~!@`D{㪹鍊nos縶QGoMd}W  0 sfdw*`z31w;3<3/{Hj3#sz뭫[ǛV)h#@ =}hS n'ʭ;Vg9c~ @`򖷤}Lg+ oM?O7fvA=sFȯZGxGZs5o|~v64\©|{Sf1|k_vάqnw7i}9wt'W `ߠ[~}MR̍7sl hS n|$=яN/;s\狾wBD.Րn/zы#@@/a^Y}R"wqL?32gz@ⳖX~O{GZxrWm{k|X,"G|饗V? 0`N"@?ЇVa =iOK~YgvE6L^{:*ζ;Twy3>b-Le:u|jUiR^xᅝ$@H =}@c.۹kG=Q</#tR_`96lSj}7xmbN;쳫_#h?7M~v%2͜9[cwő;X¦Όo7߼t|iFa̙^cgqFZwu/&Ǣ:ό̙Y? X;>=X4[mqm^dIvm鷿m#daXN@z9 @MbXumo{[ {^TG;QLV|`λꪫR|d3LkVu]ӕW^9lvzٲe]zWj̯W\"}M7ʹm l{.l| o~"=yժ 0s vLӟx'>1x3R6`/|~>T7Պس5g/yKҢE/p 9uB1 . ^-#huQOh"@@Gi?N80~0Ӽό̙3 @Oӫ/6js\XC:sJ~z}ܑF+^# @"0鸅?PWՊ13P @`ǧ>Z-/xLCM/] ohJ%u]3X +/yC~ ho#@( =}0#d%r<׿>?ck]w]3Bmqm`wt-Tb;s:#םqܹV @`J̙uI:s+^x4mfdΜoO9uֱuEUlRMzn+u G @@CDON {Ī_җiU Vۤ*V't@}7!}{߫~nzC+VF8{W[ouu=O^A^;wsu 'XFQ 9Ƙ>_'4x!~3l+rG?ZB4‰噙< @ ̙[lE(V~;߹+[ne7w>׉}IOzRZ׿ٻ>'J 3ó4g)ny{S=ǵ}Nh_9=V1]Tӟ (O-Ɯk׾i!viiןڰό̙Acc~E.G-tc+ qTs\/gd!G>ZK/| S|0j-̊U#}lceX} r_:~SA`UV ~n1ls.1}^V cM6$}_LvXʩo^򒗤s9gCW;[ݽE/Jq{bls.}~__O}Syml:sf`:wMmp|@;KKs5L{gZhy՝U9K|s0g;ubӆnNxmqm_h0")f 0W93{q'mOe /0=ϟwx3z!7>g4Y [g^sbs\(h;S? Ehg#@@%Vݘ  @':qcn۽uO|"qK"ooխ0ӟe.n:Ċl/m&}UPoD>o]pm7H:ڼoNzֳ/xA-P74\x[Qh0Ƈq[}ww'e ԝ3;sε^[}P|7{C>OWwc=u]7؃:(^xҥ'./믟w9s'R`ׯBjӥ6縸v[Qh0"kvz{ޓ>6Tmϙ1q7?׿)7K1/әg96?32gCk/)w#}+_|`+{ォe6hssyAֱPP|1>:S׹>Ú;n @DAn @`'n*+U_q]qM7>yW}C 5 2XQ*V/ |+8Bqn[y+ q{l:YM&׽uNw̠AXO{YgU <<lk.t 5>xꪫR|eoOtΙ>:0VڏX?Ϻm}׷=[G;XvءzݻWkn9T 8^=䓫/ ڶqmqq67Hh0N;]_WF1g3 Mė r< ƝNg]=32g<]Hc>Ϫ.M.'/~N-TC[4h}]㮪Pl(Y@к;@>)OV|c?D# }~a7#_V+m:go%s9ٻz>Pk_*v[nZ0V袋:O9L:m#Up64hk7 k/ho>ϧ#8bnNsfhwNq8-‰_|q ٻz>נ|pzԣsdɒtV[́y`Μ1 z9yΰfEkn[sqaB7M OxB;1/093"lUMZyg@|ӟ| _7ǃ6>32g4C ~ғTj bs;G>9s Z5㳮ګsu<;XI!V{:׆9=}bի-آ Hkxom= oXwЫv; @s\I? JlͪךCy|f"49L3PGV^Q۞>ߊo?tY @ @ @ @ @ .N @ @ @ @ @@wA.%@ @ @ @ @ @`A낋o @ @ @ @ @tY @ @ @ @ @ .N @ @ @ @ @@wA.%@ @ @ @ @ @`A낋o @ @ @ @ @tY @ @ @ @ @ .N @ @ @ @ @@wA.#{vUVI뮻nZ{Zk\sʹꫧV[-žW^9J-[뮴tҴdɒtwo=vmi[nNL @ @ @ @ @PA>na` 믟YgVx뭷o1p 믯٭^ @ @ @ @ @( h= }ҽu*d=K torch.nn.Module: return StereoMatchingTrainPreset( resize_size=args.resize_size, crop_size=args.crop_size, rescale_prob=args.rescale_prob, scaling_type=args.scaling_type, scale_range=args.scale_range, scale_interpolation_type=args.interpolation_strategy, use_grayscale=args.use_grayscale, mean=args.norm_mean, std=args.norm_std, horizontal_flip_prob=args.flip_prob, gpu_transforms=args.gpu_transforms, max_disparity=args.max_disparity, spatial_shift_prob=args.spatial_shift_prob, spatial_shift_max_angle=args.spatial_shift_max_angle, spatial_shift_max_displacement=args.spatial_shift_max_displacement, spatial_shift_interpolation_type=args.interpolation_strategy, gamma_range=args.gamma_range, brightness=args.brightness_range, contrast=args.contrast_range, saturation=args.saturation_range, hue=args.hue_range, asymmetric_jitter_prob=args.asymmetric_jitter_prob, ) def make_eval_transform(args: argparse.Namespace) -> torch.nn.Module: if args.eval_size is None: resize_size = args.crop_size else: resize_size = args.eval_size return StereoMatchingEvalPreset( mean=args.norm_mean, std=args.norm_std, use_grayscale=args.use_grayscale, resize_size=resize_size, interpolation_type=args.interpolation_strategy, ) def make_dataset(dataset_name: str, dataset_root: str, transforms: torch.nn.Module) -> torch.utils.data.Dataset: return VALID_DATASETS[dataset_name](root=dataset_root, transforms=transforms) vision-0.19.1/references/depth/stereo/presets.py000066400000000000000000000121201466211133600216750ustar00rootroot00000000000000from typing import Optional, Tuple, Union import torch import transforms as T class StereoMatchingEvalPreset(torch.nn.Module): def __init__( self, mean: float = 0.5, std: float = 0.5, resize_size: Optional[Tuple[int, ...]] = None, max_disparity: Optional[float] = None, interpolation_type: str = "bilinear", use_grayscale: bool = False, ) -> None: super().__init__() transforms = [ T.ToTensor(), T.ConvertImageDtype(torch.float32), ] if use_grayscale: transforms.append(T.ConvertToGrayscale()) if resize_size is not None: transforms.append(T.Resize(resize_size, interpolation_type=interpolation_type)) transforms.extend( [ T.Normalize(mean=mean, std=std), T.MakeValidDisparityMask(max_disparity=max_disparity), T.ValidateModelInput(), ] ) self.transforms = T.Compose(transforms) def forward(self, images, disparities, masks): return self.transforms(images, disparities, masks) class StereoMatchingTrainPreset(torch.nn.Module): def __init__( self, *, resize_size: Optional[Tuple[int, ...]], resize_interpolation_type: str = "bilinear", # RandomResizeAndCrop params crop_size: Tuple[int, int], rescale_prob: float = 1.0, scaling_type: str = "exponential", scale_range: Tuple[float, float] = (-0.2, 0.5), scale_interpolation_type: str = "bilinear", # convert to grayscale use_grayscale: bool = False, # normalization params mean: float = 0.5, std: float = 0.5, # processing device gpu_transforms: bool = False, # masking max_disparity: Optional[int] = 256, # SpatialShift params spatial_shift_prob: float = 0.5, spatial_shift_max_angle: float = 0.5, spatial_shift_max_displacement: float = 0.5, spatial_shift_interpolation_type: str = "bilinear", # AssymetricColorJitter gamma_range: Tuple[float, float] = (0.8, 1.2), brightness: Union[int, Tuple[int, int]] = (0.8, 1.2), contrast: Union[int, Tuple[int, int]] = (0.8, 1.2), saturation: Union[int, Tuple[int, int]] = 0.0, hue: Union[int, Tuple[int, int]] = 0.0, asymmetric_jitter_prob: float = 1.0, # RandomHorizontalFlip horizontal_flip_prob: float = 0.5, # RandomOcclusion occlusion_prob: float = 0.0, occlusion_px_range: Tuple[int, int] = (50, 100), # RandomErase erase_prob: float = 0.0, erase_px_range: Tuple[int, int] = (50, 100), erase_num_repeats: int = 1, ) -> None: if scaling_type not in ["linear", "exponential"]: raise ValueError(f"Unknown scaling type: {scaling_type}. Available types: linear, exponential") super().__init__() transforms = [T.ToTensor()] # when fixing size across multiple datasets, we ensure # that the same size is used for all datasets when cropping if resize_size is not None: transforms.append(T.Resize(resize_size, interpolation_type=resize_interpolation_type)) if gpu_transforms: transforms.append(T.ToGPU()) # color handling color_transforms = [ T.AsymmetricColorJitter( brightness=brightness, contrast=contrast, saturation=saturation, hue=hue, p=asymmetric_jitter_prob ), T.AsymetricGammaAdjust(p=asymmetric_jitter_prob, gamma_range=gamma_range), ] if use_grayscale: color_transforms.append(T.ConvertToGrayscale()) transforms.extend(color_transforms) transforms.extend( [ T.RandomSpatialShift( p=spatial_shift_prob, max_angle=spatial_shift_max_angle, max_px_shift=spatial_shift_max_displacement, interpolation_type=spatial_shift_interpolation_type, ), T.ConvertImageDtype(torch.float32), T.RandomRescaleAndCrop( crop_size=crop_size, scale_range=scale_range, rescale_prob=rescale_prob, scaling_type=scaling_type, interpolation_type=scale_interpolation_type, ), T.RandomHorizontalFlip(horizontal_flip_prob), # occlusion after flip, otherwise we're occluding the reference image T.RandomOcclusion(p=occlusion_prob, occlusion_px_range=occlusion_px_range), T.RandomErase(p=erase_prob, erase_px_range=erase_px_range, max_erase=erase_num_repeats), T.Normalize(mean=mean, std=std), T.MakeValidDisparityMask(max_disparity), T.ValidateModelInput(), ] ) self.transforms = T.Compose(transforms) def forward(self, images, disparties, mask): return self.transforms(images, disparties, mask) vision-0.19.1/references/depth/stereo/train.py000066400000000000000000001012451466211133600213340ustar00rootroot00000000000000import argparse import os import warnings from pathlib import Path from typing import List, Union import numpy as np import torch import torch.distributed as dist import torchvision.models.optical_flow import torchvision.prototype.models.depth.stereo import utils import visualization from parsing import make_dataset, make_eval_transform, make_train_transform, VALID_DATASETS from torch import nn from torchvision.transforms.functional import get_dimensions, InterpolationMode, resize from utils.metrics import AVAILABLE_METRICS from utils.norm import freeze_batch_norm def make_stereo_flow(flow: Union[torch.Tensor, List[torch.Tensor]], model_out_channels: int) -> torch.Tensor: """Helper function to make stereo flow from a given model output""" if isinstance(flow, list): return [make_stereo_flow(flow_i, model_out_channels) for flow_i in flow] B, C, H, W = flow.shape # we need to add zero flow if the model outputs 2 channels if C == 1 and model_out_channels == 2: zero_flow = torch.zeros_like(flow) # by convention the flow is X-Y axis, so we need the Y flow last flow = torch.cat([flow, zero_flow], dim=1) return flow def make_lr_schedule(args: argparse.Namespace, optimizer: torch.optim.Optimizer) -> np.ndarray: """Helper function to return a learning rate scheduler for CRE-stereo""" if args.decay_after_steps < args.warmup_steps: raise ValueError(f"decay_after_steps: {args.function} must be greater than warmup_steps: {args.warmup_steps}") warmup_steps = args.warmup_steps if args.warmup_steps else 0 flat_lr_steps = args.decay_after_steps - warmup_steps if args.decay_after_steps else 0 decay_lr_steps = args.total_iterations - flat_lr_steps max_lr = args.lr min_lr = args.min_lr schedulers = [] milestones = [] if warmup_steps > 0: if args.lr_warmup_method == "linear": warmup_lr_scheduler = torch.optim.lr_scheduler.LinearLR( optimizer, start_factor=args.lr_warmup_factor, total_iters=warmup_steps ) elif args.lr_warmup_method == "constant": warmup_lr_scheduler = torch.optim.lr_scheduler.ConstantLR( optimizer, factor=args.lr_warmup_factor, total_iters=warmup_steps ) else: raise ValueError(f"Unknown lr warmup method {args.lr_warmup_method}") schedulers.append(warmup_lr_scheduler) milestones.append(warmup_steps) if flat_lr_steps > 0: flat_lr_scheduler = torch.optim.lr_scheduler.ConstantLR(optimizer, factor=max_lr, total_iters=flat_lr_steps) schedulers.append(flat_lr_scheduler) milestones.append(flat_lr_steps + warmup_steps) if decay_lr_steps > 0: if args.lr_decay_method == "cosine": decay_lr_scheduler = torch.optim.lr_scheduler.CosineAnnealingLR( optimizer, T_max=decay_lr_steps, eta_min=min_lr ) elif args.lr_decay_method == "linear": decay_lr_scheduler = torch.optim.lr_scheduler.LinearLR( optimizer, start_factor=max_lr, end_factor=min_lr, total_iters=decay_lr_steps ) elif args.lr_decay_method == "exponential": decay_lr_scheduler = torch.optim.lr_scheduler.ExponentialLR( optimizer, gamma=args.lr_decay_gamma, last_epoch=-1 ) else: raise ValueError(f"Unknown lr decay method {args.lr_decay_method}") schedulers.append(decay_lr_scheduler) scheduler = torch.optim.lr_scheduler.SequentialLR(optimizer, schedulers, milestones=milestones) return scheduler def shuffle_dataset(dataset): """Shuffle the dataset""" perm = torch.randperm(len(dataset)) return torch.utils.data.Subset(dataset, perm) def resize_dataset_to_n_steps( dataset: torch.utils.data.Dataset, dataset_steps: int, samples_per_step: int, args: argparse.Namespace ) -> torch.utils.data.Dataset: original_size = len(dataset) if args.steps_is_epochs: samples_per_step = original_size target_size = dataset_steps * samples_per_step dataset_copies = [] n_expands, remainder = divmod(target_size, original_size) for idx in range(n_expands): dataset_copies.append(dataset) if remainder > 0: dataset_copies.append(torch.utils.data.Subset(dataset, list(range(remainder)))) if args.dataset_shuffle: dataset_copies = [shuffle_dataset(dataset_copy) for dataset_copy in dataset_copies] dataset = torch.utils.data.ConcatDataset(dataset_copies) return dataset def get_train_dataset(dataset_root: str, args: argparse.Namespace) -> torch.utils.data.Dataset: datasets = [] for dataset_name in args.train_datasets: transform = make_train_transform(args) dataset = make_dataset(dataset_name, dataset_root, transform) datasets.append(dataset) if len(datasets) == 0: raise ValueError("No datasets specified for training") samples_per_step = args.world_size * args.batch_size for idx, (dataset, steps_per_dataset) in enumerate(zip(datasets, args.dataset_steps)): datasets[idx] = resize_dataset_to_n_steps(dataset, steps_per_dataset, samples_per_step, args) dataset = torch.utils.data.ConcatDataset(datasets) if args.dataset_order_shuffle: dataset = shuffle_dataset(dataset) print(f"Training dataset: {len(dataset)} samples") return dataset @torch.inference_mode() def _evaluate( model, args, val_loader, *, padder_mode, print_freq=10, writer=None, step=None, iterations=None, batch_size=None, header=None, ): """Helper function to compute various metrics (epe, etc.) for a model on a given dataset.""" model.eval() header = header or "Test:" device = torch.device(args.device) metric_logger = utils.MetricLogger(delimiter=" ") iterations = iterations or args.recurrent_updates logger = utils.MetricLogger() for meter_name in args.metrics: logger.add_meter(meter_name, fmt="{global_avg:.4f}") if "fl-all" not in args.metrics: logger.add_meter("fl-all", fmt="{global_avg:.4f}") num_processed_samples = 0 with torch.cuda.amp.autocast(enabled=args.mixed_precision, dtype=torch.float16): for blob in metric_logger.log_every(val_loader, print_freq, header): image_left, image_right, disp_gt, valid_disp_mask = (x.to(device) for x in blob) padder = utils.InputPadder(image_left.shape, mode=padder_mode) image_left, image_right = padder.pad(image_left, image_right) disp_predictions = model(image_left, image_right, flow_init=None, num_iters=iterations) disp_pred = disp_predictions[-1][:, :1, :, :] disp_pred = padder.unpad(disp_pred) metrics, _ = utils.compute_metrics(disp_pred, disp_gt, valid_disp_mask, metrics=logger.meters.keys()) num_processed_samples += image_left.shape[0] for name in metrics: logger.meters[name].update(metrics[name], n=1) num_processed_samples = utils.reduce_across_processes(num_processed_samples) print("Num_processed_samples: ", num_processed_samples) if ( hasattr(val_loader.dataset, "__len__") and len(val_loader.dataset) != num_processed_samples and torch.distributed.get_rank() == 0 ): warnings.warn( f"Number of processed samples {num_processed_samples} is different" f"from the dataset size {len(val_loader.dataset)}. This may happen if" "the dataset is not divisible by the batch size. Try lowering the batch size or GPU number for more accurate results." ) if writer is not None and args.rank == 0: for meter_name, meter_value in logger.meters.items(): scalar_name = f"{meter_name} {header}" writer.add_scalar(scalar_name, meter_value.avg, step) logger.synchronize_between_processes() print(header, logger) def make_eval_loader(dataset_name: str, args: argparse.Namespace) -> torch.utils.data.DataLoader: if args.weights: weights = torchvision.models.get_weight(args.weights) trans = weights.transforms() def preprocessing(image_left, image_right, disp, valid_disp_mask): C_o, H_o, W_o = get_dimensions(image_left) image_left, image_right = trans(image_left, image_right) C_t, H_t, W_t = get_dimensions(image_left) scale_factor = W_t / W_o if disp is not None and not isinstance(disp, torch.Tensor): disp = torch.from_numpy(disp) if W_t != W_o: disp = resize(disp, (H_t, W_t), mode=InterpolationMode.BILINEAR) * scale_factor if valid_disp_mask is not None and not isinstance(valid_disp_mask, torch.Tensor): valid_disp_mask = torch.from_numpy(valid_disp_mask) if W_t != W_o: valid_disp_mask = resize(valid_disp_mask, (H_t, W_t), mode=InterpolationMode.NEAREST) return image_left, image_right, disp, valid_disp_mask else: preprocessing = make_eval_transform(args) val_dataset = make_dataset(dataset_name, args.dataset_root, transforms=preprocessing) if args.distributed: sampler = torch.utils.data.distributed.DistributedSampler(val_dataset, shuffle=False, drop_last=False) else: sampler = torch.utils.data.SequentialSampler(val_dataset) val_loader = torch.utils.data.DataLoader( val_dataset, sampler=sampler, batch_size=args.batch_size, pin_memory=True, num_workers=args.workers, ) return val_loader def evaluate(model, loaders, args, writer=None, step=None): for loader_name, loader in loaders.items(): _evaluate( model, args, loader, iterations=args.recurrent_updates, padder_mode=args.padder_type, header=f"{loader_name} evaluation", batch_size=args.batch_size, writer=writer, step=step, ) def run(model, optimizer, scheduler, train_loader, val_loaders, logger, writer, scaler, args): device = torch.device(args.device) # wrap the loader in a logger loader = iter(logger.log_every(train_loader)) # output channels model_out_channels = model.module.output_channels if args.distributed else model.output_channels torch.set_num_threads(args.threads) sequence_criterion = utils.SequenceLoss( gamma=args.gamma, max_flow=args.max_disparity, exclude_large_flows=args.flow_loss_exclude_large, ).to(device) if args.consistency_weight: consistency_criterion = utils.FlowSequenceConsistencyLoss( args.gamma, resize_factor=0.25, rescale_factor=0.25, rescale_mode="bilinear", ).to(device) else: consistency_criterion = None if args.psnr_weight: psnr_criterion = utils.PSNRLoss().to(device) else: psnr_criterion = None if args.smoothness_weight: smoothness_criterion = utils.SmoothnessLoss().to(device) else: smoothness_criterion = None if args.photometric_weight: photometric_criterion = utils.FlowPhotoMetricLoss( ssim_weight=args.photometric_ssim_weight, max_displacement_ratio=args.photometric_max_displacement_ratio, ssim_use_padding=False, ).to(device) else: photometric_criterion = None for step in range(args.start_step + 1, args.total_iterations + 1): data_blob = next(loader) optimizer.zero_grad() # unpack the data blob image_left, image_right, disp_mask, valid_disp_mask = (x.to(device) for x in data_blob) with torch.cuda.amp.autocast(enabled=args.mixed_precision, dtype=torch.float16): disp_predictions = model(image_left, image_right, flow_init=None, num_iters=args.recurrent_updates) # different models have different outputs, make sure we get the right ones for this task disp_predictions = make_stereo_flow(disp_predictions, model_out_channels) # should the architecture or training loop require it, we have to adjust the disparity mask # target to possibly look like an optical flow mask disp_mask = make_stereo_flow(disp_mask, model_out_channels) # sequence loss on top of the model outputs loss = sequence_criterion(disp_predictions, disp_mask, valid_disp_mask) * args.flow_loss_weight if args.consistency_weight > 0: loss_consistency = consistency_criterion(disp_predictions) loss += loss_consistency * args.consistency_weight if args.psnr_weight > 0: loss_psnr = 0.0 for pred in disp_predictions: # predictions might have 2 channels loss_psnr += psnr_criterion( pred * valid_disp_mask.unsqueeze(1), disp_mask * valid_disp_mask.unsqueeze(1), ).mean() # mean the psnr loss over the batch loss += loss_psnr / len(disp_predictions) * args.psnr_weight if args.photometric_weight > 0: loss_photometric = 0.0 for pred in disp_predictions: # predictions might have 1 channel, therefore we need to inpute 0s for the second channel if model_out_channels == 1: pred = torch.cat([pred, torch.zeros_like(pred)], dim=1) loss_photometric += photometric_criterion( image_left, image_right, pred, valid_disp_mask ) # photometric loss already comes out meaned over the batch loss += loss_photometric / len(disp_predictions) * args.photometric_weight if args.smoothness_weight > 0: loss_smoothness = 0.0 for pred in disp_predictions: # predictions might have 2 channels loss_smoothness += smoothness_criterion( image_left, pred[:, :1, :, :] ).mean() # mean the smoothness loss over the batch loss += loss_smoothness / len(disp_predictions) * args.smoothness_weight with torch.no_grad(): metrics, _ = utils.compute_metrics( disp_predictions[-1][:, :1, :, :], # predictions might have 2 channels disp_mask[:, :1, :, :], # so does the ground truth valid_disp_mask, args.metrics, ) metrics.pop("fl-all", None) logger.update(loss=loss, **metrics) if scaler is not None: scaler.scale(loss).backward() scaler.unscale_(optimizer) if args.clip_grad_norm: torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=args.clip_grad_norm) scaler.step(optimizer) scaler.update() else: loss.backward() if args.clip_grad_norm: torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=args.clip_grad_norm) optimizer.step() scheduler.step() if not dist.is_initialized() or dist.get_rank() == 0: if writer is not None and step % args.tensorboard_log_frequency == 0: # log the loss and metrics to tensorboard writer.add_scalar("loss", loss, step) for name, value in logger.meters.items(): writer.add_scalar(name, value.avg, step) # log the images to tensorboard pred_grid = visualization.make_training_sample_grid( image_left, image_right, disp_mask, valid_disp_mask, disp_predictions ) writer.add_image("predictions", pred_grid, step, dataformats="HWC") # second thing we want to see is how relevant the iterative refinement is pred_sequence_grid = visualization.make_disparity_sequence_grid(disp_predictions, disp_mask) writer.add_image("sequence", pred_sequence_grid, step, dataformats="HWC") if step % args.save_frequency == 0: if not args.distributed or args.rank == 0: model_without_ddp = ( model.module if isinstance(model, torch.nn.parallel.DistributedDataParallel) else model ) checkpoint = { "model": model_without_ddp.state_dict(), "optimizer": optimizer.state_dict(), "scheduler": scheduler.state_dict(), "step": step, "args": args, } os.makedirs(args.checkpoint_dir, exist_ok=True) torch.save(checkpoint, Path(args.checkpoint_dir) / f"{args.name}_{step}.pth") torch.save(checkpoint, Path(args.checkpoint_dir) / f"{args.name}.pth") if step % args.valid_frequency == 0: evaluate(model, val_loaders, args, writer, step) model.train() if args.freeze_batch_norm: if isinstance(model, nn.parallel.DistributedDataParallel): freeze_batch_norm(model.module) else: freeze_batch_norm(model) # one final save at the end if not args.distributed or args.rank == 0: model_without_ddp = model.module if isinstance(model, torch.nn.parallel.DistributedDataParallel) else model checkpoint = { "model": model_without_ddp.state_dict(), "optimizer": optimizer.state_dict(), "scheduler": scheduler.state_dict(), "step": step, "args": args, } os.makedirs(args.checkpoint_dir, exist_ok=True) torch.save(checkpoint, Path(args.checkpoint_dir) / f"{args.name}_{step}.pth") torch.save(checkpoint, Path(args.checkpoint_dir) / f"{args.name}.pth") def main(args): args.total_iterations = sum(args.dataset_steps) # initialize DDP setting utils.setup_ddp(args) print(args) args.test_only = args.train_datasets is None # set the appropriate devices if args.distributed and args.device == "cpu": raise ValueError("The device must be cuda if we want to run in distributed mode using torchrun") device = torch.device(args.device) # select model architecture model = torchvision.prototype.models.depth.stereo.__dict__[args.model](weights=args.weights) # convert to DDP if need be if args.distributed: model = model.to(args.gpu) model = torch.nn.parallel.DistributedDataParallel(model, device_ids=[args.gpu]) model_without_ddp = model.module else: model.to(device) model_without_ddp = model os.makedirs(args.checkpoint_dir, exist_ok=True) val_loaders = {name: make_eval_loader(name, args) for name in args.test_datasets} # EVAL ONLY configurations if args.test_only: evaluate(model, val_loaders, args) return # Sanity check for the parameter count print(f"Parameter Count: {sum(p.numel() for p in model.parameters() if p.requires_grad)}") # Compose the training dataset train_dataset = get_train_dataset(args.dataset_root, args) # initialize the optimizer if args.optimizer == "adam": optimizer = torch.optim.Adam(model.parameters(), lr=args.lr, weight_decay=args.weight_decay) elif args.optimizer == "sgd": optimizer = torch.optim.SGD(model.parameters(), lr=args.lr, weight_decay=args.weight_decay, momentum=0.9) else: raise ValueError(f"Unknown optimizer {args.optimizer}. Please choose between adam and sgd") # initialize the learning rate schedule scheduler = make_lr_schedule(args, optimizer) # load them from checkpoint if needed args.start_step = 0 if args.resume_path is not None: checkpoint = torch.load(args.resume_path, map_location="cpu", weights_only=True) if "model" in checkpoint: # this means the user requested to resume from a training checkpoint model_without_ddp.load_state_dict(checkpoint["model"]) # this means the user wants to continue training from where it was left off if args.resume_schedule: optimizer.load_state_dict(checkpoint["optimizer"]) scheduler.load_state_dict(checkpoint["scheduler"]) args.start_step = checkpoint["step"] + 1 # modify starting point of the dat sample_start_step = args.start_step * args.batch_size * args.world_size train_dataset = train_dataset[sample_start_step:] else: # this means the user wants to finetune on top of a model state dict # and that no other changes are required model_without_ddp.load_state_dict(checkpoint) torch.backends.cudnn.benchmark = True # enable training mode model.train() if args.freeze_batch_norm: freeze_batch_norm(model_without_ddp) # put dataloader on top of the dataset # make sure to disable shuffling since the dataset is already shuffled # in order to guarantee quasi randomness whilst retaining a deterministic # dataset consumption order if args.distributed: # the train dataset is preshuffled in order to respect the iteration order sampler = torch.utils.data.distributed.DistributedSampler(train_dataset, shuffle=False, drop_last=True) else: # the train dataset is already shuffled, so we can use a simple SequentialSampler sampler = torch.utils.data.SequentialSampler(train_dataset) train_loader = torch.utils.data.DataLoader( train_dataset, sampler=sampler, batch_size=args.batch_size, pin_memory=True, num_workers=args.workers, ) # initialize the logger if args.tensorboard_summaries: from torch.utils.tensorboard import SummaryWriter tensorboard_path = Path(args.checkpoint_dir) / "tensorboard" os.makedirs(tensorboard_path, exist_ok=True) tensorboard_run = tensorboard_path / f"{args.name}" writer = SummaryWriter(tensorboard_run) else: writer = None logger = utils.MetricLogger(delimiter=" ") scaler = torch.cuda.amp.GradScaler() if args.mixed_precision else None # run the training loop # this will perform optimization, respectively logging and saving checkpoints # when need be run( model=model, optimizer=optimizer, scheduler=scheduler, train_loader=train_loader, val_loaders=val_loaders, logger=logger, writer=writer, scaler=scaler, args=args, ) def get_args_parser(add_help=True): import argparse parser = argparse.ArgumentParser(description="PyTorch Stereo Matching Training", add_help=add_help) # checkpointing parser.add_argument("--name", default="crestereo", help="name of the experiment") parser.add_argument("--resume", type=str, default=None, help="from which checkpoint to resume") parser.add_argument("--checkpoint-dir", type=str, default="checkpoints", help="path to the checkpoint directory") # dataset parser.add_argument("--dataset-root", type=str, default="", help="path to the dataset root directory") parser.add_argument( "--train-datasets", type=str, nargs="+", default=["crestereo"], help="dataset(s) to train on", choices=list(VALID_DATASETS.keys()), ) parser.add_argument( "--dataset-steps", type=int, nargs="+", default=[300_000], help="number of steps for each dataset" ) parser.add_argument( "--steps-is-epochs", action="store_true", help="if set, dataset-steps are interpreted as epochs" ) parser.add_argument( "--test-datasets", type=str, nargs="+", default=["middlebury2014-train"], help="dataset(s) to test on", choices=["middlebury2014-train"], ) parser.add_argument("--dataset-shuffle", type=bool, help="shuffle the dataset", default=True) parser.add_argument("--dataset-order-shuffle", type=bool, help="shuffle the dataset order", default=True) parser.add_argument("--batch-size", type=int, default=2, help="batch size per GPU") parser.add_argument("--workers", type=int, default=4, help="number of workers per GPU") parser.add_argument( "--threads", type=int, default=16, help="number of CPU threads per GPU. This can be changed around to speed-up transforms if needed. This can lead to worker thread contention so use with care.", ) # model architecture parser.add_argument( "--model", type=str, default="crestereo_base", help="model architecture", choices=["crestereo_base", "raft_stereo"], ) parser.add_argument("--recurrent-updates", type=int, default=10, help="number of recurrent updates") parser.add_argument("--freeze-batch-norm", action="store_true", help="freeze batch norm parameters") # loss parameters parser.add_argument("--gamma", type=float, default=0.8, help="gamma parameter for the flow sequence loss") parser.add_argument("--flow-loss-weight", type=float, default=1.0, help="weight for the flow loss") parser.add_argument( "--flow-loss-exclude-large", action="store_true", help="exclude large flow values from the loss. A large value is defined as a value greater than the ground truth flow norm", default=False, ) parser.add_argument("--consistency-weight", type=float, default=0.0, help="consistency loss weight") parser.add_argument( "--consistency-resize-factor", type=float, default=0.25, help="consistency loss resize factor to account for the fact that the flow is computed on a downsampled image", ) parser.add_argument("--psnr-weight", type=float, default=0.0, help="psnr loss weight") parser.add_argument("--smoothness-weight", type=float, default=0.0, help="smoothness loss weight") parser.add_argument("--photometric-weight", type=float, default=0.0, help="photometric loss weight") parser.add_argument( "--photometric-max-displacement-ratio", type=float, default=0.15, help="Only pixels with a displacement smaller than this ratio of the image width will be considered for the photometric loss", ) parser.add_argument("--photometric-ssim-weight", type=float, default=0.85, help="photometric ssim loss weight") # transforms parameters parser.add_argument("--gpu-transforms", action="store_true", help="use GPU transforms") parser.add_argument( "--eval-size", type=int, nargs="+", default=[384, 512], help="size of the images for evaluation" ) parser.add_argument("--resize-size", type=int, nargs=2, default=None, help="resize size") parser.add_argument("--crop-size", type=int, nargs=2, default=[384, 512], help="crop size") parser.add_argument("--scale-range", type=float, nargs=2, default=[0.6, 1.0], help="random scale range") parser.add_argument("--rescale-prob", type=float, default=1.0, help="probability of resizing the image") parser.add_argument( "--scaling-type", type=str, default="linear", help="scaling type", choices=["exponential", "linear"] ) parser.add_argument("--flip-prob", type=float, default=0.5, help="probability of flipping the image") parser.add_argument( "--norm-mean", type=float, nargs="+", default=[0.5, 0.5, 0.5], help="mean for image normalization" ) parser.add_argument( "--norm-std", type=float, nargs="+", default=[0.5, 0.5, 0.5], help="std for image normalization" ) parser.add_argument( "--use-grayscale", action="store_true", help="use grayscale images instead of RGB", default=False ) parser.add_argument("--max-disparity", type=float, default=None, help="maximum disparity") parser.add_argument( "--interpolation-strategy", type=str, default="bilinear", help="interpolation strategy", choices=["bilinear", "bicubic", "mixed"], ) parser.add_argument("--spatial-shift-prob", type=float, default=1.0, help="probability of shifting the image") parser.add_argument( "--spatial-shift-max-angle", type=float, default=0.1, help="maximum angle for the spatial shift" ) parser.add_argument( "--spatial-shift-max-displacement", type=float, default=2.0, help="maximum displacement for the spatial shift" ) parser.add_argument("--gamma-range", type=float, nargs="+", default=[0.8, 1.2], help="range for gamma correction") parser.add_argument( "--brightness-range", type=float, nargs="+", default=[0.8, 1.2], help="range for brightness correction" ) parser.add_argument( "--contrast-range", type=float, nargs="+", default=[0.8, 1.2], help="range for contrast correction" ) parser.add_argument( "--saturation-range", type=float, nargs="+", default=0.0, help="range for saturation correction" ) parser.add_argument("--hue-range", type=float, nargs="+", default=0.0, help="range for hue correction") parser.add_argument( "--asymmetric-jitter-prob", type=float, default=1.0, help="probability of using asymmetric jitter instead of symmetric jitter", ) parser.add_argument("--occlusion-prob", type=float, default=0.5, help="probability of occluding the rightimage") parser.add_argument( "--occlusion-px-range", type=int, nargs="+", default=[50, 100], help="range for the number of occluded pixels" ) parser.add_argument("--erase-prob", type=float, default=0.0, help="probability of erasing in both images") parser.add_argument( "--erase-px-range", type=int, nargs="+", default=[50, 100], help="range for the number of erased pixels" ) parser.add_argument( "--erase-num-repeats", type=int, default=1, help="number of times to repeat the erase operation" ) # optimizer parameters parser.add_argument("--optimizer", type=str, default="adam", help="optimizer", choices=["adam", "sgd"]) parser.add_argument("--lr", type=float, default=4e-4, help="learning rate") parser.add_argument("--weight-decay", type=float, default=0.0, help="weight decay") parser.add_argument("--clip-grad-norm", type=float, default=0.0, help="clip grad norm") # lr_scheduler parameters parser.add_argument("--min-lr", type=float, default=2e-5, help="minimum learning rate") parser.add_argument("--warmup-steps", type=int, default=6_000, help="number of warmup steps") parser.add_argument( "--decay-after-steps", type=int, default=180_000, help="number of steps after which to start decay the lr" ) parser.add_argument( "--lr-warmup-method", type=str, default="linear", help="warmup method", choices=["linear", "cosine"] ) parser.add_argument("--lr-warmup-factor", type=float, default=0.02, help="warmup factor for the learning rate") parser.add_argument( "--lr-decay-method", type=str, default="linear", help="decay method", choices=["linear", "cosine", "exponential"], ) parser.add_argument("--lr-decay-gamma", type=float, default=0.8, help="decay factor for the learning rate") # deterministic behaviour parser.add_argument("--seed", type=int, default=42, help="seed for random number generators") # mixed precision training parser.add_argument("--mixed-precision", action="store_true", help="use mixed precision training") # logging parser.add_argument("--tensorboard-summaries", action="store_true", help="log to tensorboard") parser.add_argument("--tensorboard-log-frequency", type=int, default=100, help="log frequency") parser.add_argument("--save-frequency", type=int, default=1_000, help="save frequency") parser.add_argument("--valid-frequency", type=int, default=1_000, help="validation frequency") parser.add_argument( "--metrics", type=str, nargs="+", default=["mae", "rmse", "1px", "3px", "5px", "relepe"], help="metrics to log", choices=AVAILABLE_METRICS, ) # distributed parameters parser.add_argument("--world-size", type=int, default=8, help="number of distributed processes") parser.add_argument("--dist-url", type=str, default="env://", help="url used to set up distributed training") parser.add_argument("--device", type=str, default="cuda", help="device to use for training") # weights API parser.add_argument("--weights", type=str, default=None, help="weights API url") parser.add_argument( "--resume-path", type=str, default=None, help="a path from which to resume or start fine-tuning" ) parser.add_argument("--resume-schedule", action="store_true", help="resume optimizer state") # padder parameters parser.add_argument("--padder-type", type=str, default="kitti", help="padder type", choices=["kitti", "sintel"]) return parser if __name__ == "__main__": args = get_args_parser().parse_args() main(args) vision-0.19.1/references/depth/stereo/transforms.py000066400000000000000000000632311466211133600224170ustar00rootroot00000000000000import random from typing import Callable, List, Optional, Sequence, Tuple, Union import numpy as np import PIL.Image import torch import torchvision.transforms as T import torchvision.transforms.functional as F from torch import Tensor T_FLOW = Union[Tensor, np.ndarray, None] T_MASK = Union[Tensor, np.ndarray, None] T_STEREO_TENSOR = Tuple[Tensor, Tensor] T_COLOR_AUG_PARAM = Union[float, Tuple[float, float]] def rand_float_range(size: Sequence[int], low: float, high: float) -> Tensor: return (low - high) * torch.rand(size) + high class InterpolationStrategy: _valid_modes: List[str] = ["mixed", "bicubic", "bilinear"] def __init__(self, mode: str = "mixed") -> None: if mode not in self._valid_modes: raise ValueError(f"Invalid interpolation mode: {mode}. Valid modes are: {self._valid_modes}") if mode == "mixed": self.strategies = [F.InterpolationMode.BILINEAR, F.InterpolationMode.BICUBIC] elif mode == "bicubic": self.strategies = [F.InterpolationMode.BICUBIC] elif mode == "bilinear": self.strategies = [F.InterpolationMode.BILINEAR] def __call__(self) -> F.InterpolationMode: return random.choice(self.strategies) @classmethod def is_valid(mode: str) -> bool: return mode in InterpolationStrategy._valid_modes @property def valid_modes() -> List[str]: return InterpolationStrategy._valid_modes class ValidateModelInput(torch.nn.Module): # Pass-through transform that checks the shape and dtypes to make sure the model gets what it expects def forward(self, images: T_STEREO_TENSOR, disparities: T_FLOW, masks: T_MASK): if images[0].shape != images[1].shape: raise ValueError("img1 and img2 should have the same shape.") h, w = images[0].shape[-2:] if disparities[0] is not None and disparities[0].shape != (1, h, w): raise ValueError(f"disparities[0].shape should be (1, {h}, {w}) instead of {disparities[0].shape}") if masks[0] is not None: if masks[0].shape != (h, w): raise ValueError(f"masks[0].shape should be ({h}, {w}) instead of {masks[0].shape}") if masks[0].dtype != torch.bool: raise TypeError(f"masks[0] should be of dtype torch.bool instead of {masks[0].dtype}") return images, disparities, masks class ConvertToGrayscale(torch.nn.Module): def __init__(self) -> None: super().__init__() def forward( self, images: Tuple[PIL.Image.Image, PIL.Image.Image], disparities: Tuple[T_FLOW, T_FLOW], masks: Tuple[T_MASK, T_MASK], ) -> Tuple[T_STEREO_TENSOR, Tuple[T_FLOW, T_FLOW], Tuple[T_MASK, T_MASK]]: img_left = F.rgb_to_grayscale(images[0], num_output_channels=3) img_right = F.rgb_to_grayscale(images[1], num_output_channels=3) return (img_left, img_right), disparities, masks class MakeValidDisparityMask(torch.nn.Module): def __init__(self, max_disparity: Optional[int] = 256) -> None: super().__init__() self.max_disparity = max_disparity def forward( self, images: T_STEREO_TENSOR, disparities: Tuple[T_FLOW, T_FLOW], masks: Tuple[T_MASK, T_MASK], ) -> Tuple[T_STEREO_TENSOR, Tuple[T_FLOW, T_FLOW], Tuple[T_MASK, T_MASK]]: valid_masks = tuple( torch.ones(images[idx].shape[-2:], dtype=torch.bool, device=images[idx].device) if mask is None else mask for idx, mask in enumerate(masks) ) valid_masks = tuple( torch.logical_and(mask, disparity > 0).squeeze(0) if disparity is not None else mask for mask, disparity in zip(valid_masks, disparities) ) if self.max_disparity is not None: valid_masks = tuple( torch.logical_and(mask, disparity < self.max_disparity).squeeze(0) if disparity is not None else mask for mask, disparity in zip(valid_masks, disparities) ) return images, disparities, valid_masks class ToGPU(torch.nn.Module): def __init__(self) -> None: super().__init__() def forward( self, images: T_STEREO_TENSOR, disparities: Tuple[T_FLOW, T_FLOW], masks: Tuple[T_MASK, T_MASK], ) -> Tuple[T_STEREO_TENSOR, Tuple[T_FLOW, T_FLOW], Tuple[T_MASK, T_MASK]]: dev_images = tuple(image.cuda() for image in images) dev_disparities = tuple(map(lambda x: x.cuda() if x is not None else None, disparities)) dev_masks = tuple(map(lambda x: x.cuda() if x is not None else None, masks)) return dev_images, dev_disparities, dev_masks class ConvertImageDtype(torch.nn.Module): def __init__(self, dtype: torch.dtype): super().__init__() self.dtype = dtype def forward( self, images: T_STEREO_TENSOR, disparities: Tuple[T_FLOW, T_FLOW], masks: Tuple[T_MASK, T_MASK], ) -> Tuple[T_STEREO_TENSOR, Tuple[T_FLOW, T_FLOW], Tuple[T_MASK, T_MASK]]: img_left = F.convert_image_dtype(images[0], dtype=self.dtype) img_right = F.convert_image_dtype(images[1], dtype=self.dtype) img_left = img_left.contiguous() img_right = img_right.contiguous() return (img_left, img_right), disparities, masks class Normalize(torch.nn.Module): def __init__(self, mean: List[float], std: List[float]) -> None: super().__init__() self.mean = mean self.std = std def forward( self, images: T_STEREO_TENSOR, disparities: Tuple[T_FLOW, T_FLOW], masks: Tuple[T_MASK, T_MASK], ) -> Tuple[T_STEREO_TENSOR, Tuple[T_FLOW, T_FLOW], Tuple[T_MASK, T_MASK]]: img_left = F.normalize(images[0], mean=self.mean, std=self.std) img_right = F.normalize(images[1], mean=self.mean, std=self.std) img_left = img_left.contiguous() img_right = img_right.contiguous() return (img_left, img_right), disparities, masks class ToTensor(torch.nn.Module): def forward( self, images: Tuple[PIL.Image.Image, PIL.Image.Image], disparities: Tuple[T_FLOW, T_FLOW], masks: Tuple[T_MASK, T_MASK], ) -> Tuple[T_STEREO_TENSOR, Tuple[T_FLOW, T_FLOW], Tuple[T_MASK, T_MASK]]: if images[0] is None: raise ValueError("img_left is None") if images[1] is None: raise ValueError("img_right is None") img_left = F.pil_to_tensor(images[0]) img_right = F.pil_to_tensor(images[1]) disparity_tensors = () mask_tensors = () for idx in range(2): disparity_tensors += (torch.from_numpy(disparities[idx]),) if disparities[idx] is not None else (None,) mask_tensors += (torch.from_numpy(masks[idx]),) if masks[idx] is not None else (None,) return (img_left, img_right), disparity_tensors, mask_tensors class AsymmetricColorJitter(T.ColorJitter): # p determines the probability of doing asymmetric vs symmetric color jittering def __init__( self, brightness: T_COLOR_AUG_PARAM = 0, contrast: T_COLOR_AUG_PARAM = 0, saturation: T_COLOR_AUG_PARAM = 0, hue: T_COLOR_AUG_PARAM = 0, p: float = 0.2, ): super().__init__(brightness=brightness, contrast=contrast, saturation=saturation, hue=hue) self.p = p def forward( self, images: T_STEREO_TENSOR, disparities: Tuple[T_FLOW, T_FLOW], masks: Tuple[T_MASK, T_MASK], ) -> Tuple[T_STEREO_TENSOR, Tuple[T_FLOW, T_FLOW], Tuple[T_MASK, T_MASK]]: if torch.rand(1) < self.p: # asymmetric: different transform for img1 and img2 img_left = super().forward(images[0]) img_right = super().forward(images[1]) else: # symmetric: same transform for img1 and img2 batch = torch.stack(images) batch = super().forward(batch) img_left, img_right = batch[0], batch[1] return (img_left, img_right), disparities, masks class AsymetricGammaAdjust(torch.nn.Module): def __init__(self, p: float, gamma_range: Tuple[float, float], gain: float = 1) -> None: super().__init__() self.gamma_range = gamma_range self.gain = gain self.p = p def forward( self, images: T_STEREO_TENSOR, disparities: Tuple[T_FLOW, T_FLOW], masks: Tuple[T_MASK, T_MASK], ) -> Tuple[T_STEREO_TENSOR, Tuple[T_FLOW, T_FLOW], Tuple[T_MASK, T_MASK]]: gamma = rand_float_range((1,), low=self.gamma_range[0], high=self.gamma_range[1]).item() if torch.rand(1) < self.p: # asymmetric: different transform for img1 and img2 img_left = F.adjust_gamma(images[0], gamma, gain=self.gain) img_right = F.adjust_gamma(images[1], gamma, gain=self.gain) else: # symmetric: same transform for img1 and img2 batch = torch.stack(images) batch = F.adjust_gamma(batch, gamma, gain=self.gain) img_left, img_right = batch[0], batch[1] return (img_left, img_right), disparities, masks class RandomErase(torch.nn.Module): # Produces multiple symmetric random erasures # these can be viewed as occlusions present in both camera views. # Similarly to Optical Flow occlusion prediction tasks, we mask these pixels in the disparity map def __init__( self, p: float = 0.5, erase_px_range: Tuple[int, int] = (50, 100), value: Union[Tensor, float] = 0, inplace: bool = False, max_erase: int = 2, ): super().__init__() self.min_px_erase = erase_px_range[0] self.max_px_erase = erase_px_range[1] if self.max_px_erase < 0: raise ValueError("erase_px_range[1] should be equal or greater than 0") if self.min_px_erase < 0: raise ValueError("erase_px_range[0] should be equal or greater than 0") if self.min_px_erase > self.max_px_erase: raise ValueError("erase_prx_range[0] should be equal or lower than erase_px_range[1]") self.p = p self.value = value self.inplace = inplace self.max_erase = max_erase def forward( self, images: T_STEREO_TENSOR, disparities: T_STEREO_TENSOR, masks: T_STEREO_TENSOR, ) -> Tuple[T_STEREO_TENSOR, Tuple[T_FLOW, T_FLOW], Tuple[T_MASK, T_MASK]]: if torch.rand(1) < self.p: return images, disparities, masks image_left, image_right = images mask_left, mask_right = masks for _ in range(torch.randint(self.max_erase, size=(1,)).item()): y, x, h, w, v = self._get_params(image_left) image_right = F.erase(image_right, y, x, h, w, v, self.inplace) image_left = F.erase(image_left, y, x, h, w, v, self.inplace) # similarly to optical flow occlusion prediction, we consider # any erasure pixels that are in both images to be occluded therefore # we mark them as invalid if mask_left is not None: mask_left = F.erase(mask_left, y, x, h, w, False, self.inplace) if mask_right is not None: mask_right = F.erase(mask_right, y, x, h, w, False, self.inplace) return (image_left, image_right), disparities, (mask_left, mask_right) def _get_params(self, img: torch.Tensor) -> Tuple[int, int, int, int, float]: img_h, img_w = img.shape[-2:] crop_h, crop_w = ( random.randint(self.min_px_erase, self.max_px_erase), random.randint(self.min_px_erase, self.max_px_erase), ) crop_x, crop_y = (random.randint(0, img_w - crop_w), random.randint(0, img_h - crop_h)) return crop_y, crop_x, crop_h, crop_w, self.value class RandomOcclusion(torch.nn.Module): # This adds an occlusion in the right image # the occluded patch works as a patch erase where the erase value is the mean # of the pixels from the selected zone def __init__(self, p: float = 0.5, occlusion_px_range: Tuple[int, int] = (50, 100), inplace: bool = False): super().__init__() self.min_px_occlusion = occlusion_px_range[0] self.max_px_occlusion = occlusion_px_range[1] if self.max_px_occlusion < 0: raise ValueError("occlusion_px_range[1] should be greater or equal than 0") if self.min_px_occlusion < 0: raise ValueError("occlusion_px_range[0] should be greater or equal than 0") if self.min_px_occlusion > self.max_px_occlusion: raise ValueError("occlusion_px_range[0] should be lower than occlusion_px_range[1]") self.p = p self.inplace = inplace def forward( self, images: T_STEREO_TENSOR, disparities: T_STEREO_TENSOR, masks: T_STEREO_TENSOR, ) -> Tuple[T_STEREO_TENSOR, Tuple[T_FLOW, T_FLOW], Tuple[T_MASK, T_MASK]]: left_image, right_image = images if torch.rand(1) < self.p: return images, disparities, masks y, x, h, w, v = self._get_params(right_image) right_image = F.erase(right_image, y, x, h, w, v, self.inplace) return ((left_image, right_image), disparities, masks) def _get_params(self, img: torch.Tensor) -> Tuple[int, int, int, int, float]: img_h, img_w = img.shape[-2:] crop_h, crop_w = ( random.randint(self.min_px_occlusion, self.max_px_occlusion), random.randint(self.min_px_occlusion, self.max_px_occlusion), ) crop_x, crop_y = (random.randint(0, img_w - crop_w), random.randint(0, img_h - crop_h)) occlusion_value = img[..., crop_y : crop_y + crop_h, crop_x : crop_x + crop_w].mean(dim=(-2, -1), keepdim=True) return (crop_y, crop_x, crop_h, crop_w, occlusion_value) class RandomSpatialShift(torch.nn.Module): # This transform applies a vertical shift and a slight angle rotation and the same time def __init__( self, p: float = 0.5, max_angle: float = 0.1, max_px_shift: int = 2, interpolation_type: str = "bilinear" ) -> None: super().__init__() self.p = p self.max_angle = max_angle self.max_px_shift = max_px_shift self._interpolation_mode_strategy = InterpolationStrategy(interpolation_type) def forward( self, images: T_STEREO_TENSOR, disparities: T_STEREO_TENSOR, masks: T_STEREO_TENSOR, ) -> Tuple[T_STEREO_TENSOR, Tuple[T_FLOW, T_FLOW], Tuple[T_MASK, T_MASK]]: # the transform is applied only on the right image # in order to mimic slight calibration issues img_left, img_right = images INTERP_MODE = self._interpolation_mode_strategy() if torch.rand(1) < self.p: # [0, 1] -> [-a, a] shift = rand_float_range((1,), low=-self.max_px_shift, high=self.max_px_shift).item() angle = rand_float_range((1,), low=-self.max_angle, high=self.max_angle).item() # sample center point for the rotation matrix y = torch.randint(size=(1,), low=0, high=img_right.shape[-2]).item() x = torch.randint(size=(1,), low=0, high=img_right.shape[-1]).item() # apply affine transformations img_right = F.affine( img_right, angle=angle, translate=[0, shift], # translation only on the y-axis center=[x, y], scale=1.0, shear=0.0, interpolation=INTERP_MODE, ) return ((img_left, img_right), disparities, masks) class RandomHorizontalFlip(torch.nn.Module): def __init__(self, p: float = 0.5) -> None: super().__init__() self.p = p def forward( self, images: T_STEREO_TENSOR, disparities: Tuple[T_FLOW, T_FLOW], masks: Tuple[T_MASK, T_MASK], ) -> Tuple[T_STEREO_TENSOR, Tuple[T_FLOW, T_FLOW], Tuple[T_MASK, T_MASK]]: img_left, img_right = images dsp_left, dsp_right = disparities mask_left, mask_right = masks if dsp_right is not None and torch.rand(1) < self.p: img_left, img_right = F.hflip(img_left), F.hflip(img_right) dsp_left, dsp_right = F.hflip(dsp_left), F.hflip(dsp_right) if mask_left is not None and mask_right is not None: mask_left, mask_right = F.hflip(mask_left), F.hflip(mask_right) return ((img_right, img_left), (dsp_right, dsp_left), (mask_right, mask_left)) return images, disparities, masks class Resize(torch.nn.Module): def __init__(self, resize_size: Tuple[int, ...], interpolation_type: str = "bilinear") -> None: super().__init__() self.resize_size = list(resize_size) # doing this to keep mypy happy self._interpolation_mode_strategy = InterpolationStrategy(interpolation_type) def forward( self, images: T_STEREO_TENSOR, disparities: Tuple[T_FLOW, T_FLOW], masks: Tuple[T_MASK, T_MASK], ) -> Tuple[T_STEREO_TENSOR, Tuple[T_FLOW, T_FLOW], Tuple[T_MASK, T_MASK]]: resized_images = () resized_disparities = () resized_masks = () INTERP_MODE = self._interpolation_mode_strategy() for img in images: # We hard-code antialias=False to preserve results after we changed # its default from None to True (see # https://github.com/pytorch/vision/pull/7160) # TODO: we could re-train the stereo models with antialias=True? resized_images += (F.resize(img, self.resize_size, interpolation=INTERP_MODE, antialias=False),) for dsp in disparities: if dsp is not None: # rescale disparity to match the new image size scale_x = self.resize_size[1] / dsp.shape[-1] resized_disparities += (F.resize(dsp, self.resize_size, interpolation=INTERP_MODE) * scale_x,) else: resized_disparities += (None,) for mask in masks: if mask is not None: resized_masks += ( # we squeeze and unsqueeze because the API requires > 3D tensors F.resize( mask.unsqueeze(0), self.resize_size, interpolation=F.InterpolationMode.NEAREST, ).squeeze(0), ) else: resized_masks += (None,) return resized_images, resized_disparities, resized_masks class RandomRescaleAndCrop(torch.nn.Module): # This transform will resize the input with a given proba, and then crop it. # These are the reversed operations of the built-in RandomResizedCrop, # although the order of the operations doesn't matter too much: resizing a # crop would give the same result as cropping a resized image, up to # interpolation artifact at the borders of the output. # # The reason we don't rely on RandomResizedCrop is because of a significant # difference in the parametrization of both transforms, in particular, # because of the way the random parameters are sampled in both transforms, # which leads to fairly different results (and different epe). For more details see # https://github.com/pytorch/vision/pull/5026/files#r762932579 def __init__( self, crop_size: Tuple[int, int], scale_range: Tuple[float, float] = (-0.2, 0.5), rescale_prob: float = 0.8, scaling_type: str = "exponential", interpolation_type: str = "bilinear", ) -> None: super().__init__() self.crop_size = crop_size self.min_scale = scale_range[0] self.max_scale = scale_range[1] self.rescale_prob = rescale_prob self.scaling_type = scaling_type self._interpolation_mode_strategy = InterpolationStrategy(interpolation_type) if self.scaling_type == "linear" and self.min_scale < 0: raise ValueError("min_scale must be >= 0 for linear scaling") def forward( self, images: T_STEREO_TENSOR, disparities: Tuple[T_FLOW, T_FLOW], masks: Tuple[T_MASK, T_MASK], ) -> Tuple[T_STEREO_TENSOR, Tuple[T_FLOW, T_FLOW], Tuple[T_MASK, T_MASK]]: img_left, img_right = images dsp_left, dsp_right = disparities mask_left, mask_right = masks INTERP_MODE = self._interpolation_mode_strategy() # randomly sample scale h, w = img_left.shape[-2:] # Note: in original code, they use + 1 instead of + 8 for sparse datasets (e.g. Kitti) # It shouldn't matter much min_scale = max((self.crop_size[0] + 8) / h, (self.crop_size[1] + 8) / w) # exponential scaling will draw a random scale in (min_scale, max_scale) and then raise # 2 to the power of that random value. This final scale distribution will have a different # mean and variance than a uniform distribution. Note that a scale of 1 will result in # a rescaling of 2X the original size, whereas a scale of -1 will result in a rescaling # of 0.5X the original size. if self.scaling_type == "exponential": scale = 2 ** torch.empty(1, dtype=torch.float32).uniform_(self.min_scale, self.max_scale).item() # linear scaling will draw a random scale in (min_scale, max_scale) elif self.scaling_type == "linear": scale = torch.empty(1, dtype=torch.float32).uniform_(self.min_scale, self.max_scale).item() scale = max(scale, min_scale) new_h, new_w = round(h * scale), round(w * scale) if torch.rand(1).item() < self.rescale_prob: # rescale the images img_left = F.resize(img_left, size=(new_h, new_w), interpolation=INTERP_MODE) img_right = F.resize(img_right, size=(new_h, new_w), interpolation=INTERP_MODE) resized_masks, resized_disparities = (), () for disparity, mask in zip(disparities, masks): if disparity is not None: if mask is None: resized_disparity = F.resize(disparity, size=(new_h, new_w), interpolation=INTERP_MODE) # rescale the disparity resized_disparity = ( resized_disparity * torch.tensor([scale], device=resized_disparity.device)[:, None, None] ) resized_mask = None else: resized_disparity, resized_mask = _resize_sparse_flow( disparity, mask, scale_x=scale, scale_y=scale ) resized_masks += (resized_mask,) resized_disparities += (resized_disparity,) else: resized_disparities = disparities resized_masks = masks disparities = resized_disparities masks = resized_masks # Note: For sparse datasets (Kitti), the original code uses a "margin" # See e.g. https://github.com/princeton-vl/RAFT/blob/master/core/utils/augmentor.py#L220:L220 # We don't, not sure if it matters much y0 = torch.randint(0, img_left.shape[1] - self.crop_size[0], size=(1,)).item() x0 = torch.randint(0, img_right.shape[2] - self.crop_size[1], size=(1,)).item() img_left = F.crop(img_left, y0, x0, self.crop_size[0], self.crop_size[1]) img_right = F.crop(img_right, y0, x0, self.crop_size[0], self.crop_size[1]) if dsp_left is not None: dsp_left = F.crop(disparities[0], y0, x0, self.crop_size[0], self.crop_size[1]) if dsp_right is not None: dsp_right = F.crop(disparities[1], y0, x0, self.crop_size[0], self.crop_size[1]) cropped_masks = () for mask in masks: if mask is not None: mask = F.crop(mask, y0, x0, self.crop_size[0], self.crop_size[1]) cropped_masks += (mask,) return ((img_left, img_right), (dsp_left, dsp_right), cropped_masks) def _resize_sparse_flow( flow: Tensor, valid_flow_mask: Tensor, scale_x: float = 1.0, scale_y: float = 0.0 ) -> Tuple[Tensor, Tensor]: # This resizes both the flow and the valid_flow_mask mask (which is assumed to be reasonably sparse) # There are as-many non-zero values in the original flow as in the resized flow (up to OOB) # So for example if scale_x = scale_y = 2, the sparsity of the output flow is multiplied by 4 h, w = flow.shape[-2:] h_new = int(round(h * scale_y)) w_new = int(round(w * scale_x)) flow_new = torch.zeros(size=[1, h_new, w_new], dtype=flow.dtype) valid_new = torch.zeros(size=[h_new, w_new], dtype=valid_flow_mask.dtype) jj, ii = torch.meshgrid(torch.arange(w), torch.arange(h), indexing="xy") ii_valid, jj_valid = ii[valid_flow_mask], jj[valid_flow_mask] ii_valid_new = torch.round(ii_valid.to(float) * scale_y).to(torch.long) jj_valid_new = torch.round(jj_valid.to(float) * scale_x).to(torch.long) within_bounds_mask = (0 <= ii_valid_new) & (ii_valid_new < h_new) & (0 <= jj_valid_new) & (jj_valid_new < w_new) ii_valid = ii_valid[within_bounds_mask] jj_valid = jj_valid[within_bounds_mask] ii_valid_new = ii_valid_new[within_bounds_mask] jj_valid_new = jj_valid_new[within_bounds_mask] valid_flow_new = flow[:, ii_valid, jj_valid] valid_flow_new *= scale_x flow_new[:, ii_valid_new, jj_valid_new] = valid_flow_new valid_new[ii_valid_new, jj_valid_new] = valid_flow_mask[ii_valid, jj_valid] return flow_new, valid_new.bool() class Compose(torch.nn.Module): def __init__(self, transforms: List[Callable]): super().__init__() self.transforms = transforms @torch.inference_mode() def forward(self, images, disparities, masks): for t in self.transforms: images, disparities, masks = t(images, disparities, masks) return images, disparities, masks vision-0.19.1/references/depth/stereo/utils/000077500000000000000000000000001466211133600210025ustar00rootroot00000000000000vision-0.19.1/references/depth/stereo/utils/__init__.py000066400000000000000000000002101466211133600231040ustar00rootroot00000000000000from .losses import * from .metrics import * from .distributed import * from .logger import * from .padder import * from .norm import * vision-0.19.1/references/depth/stereo/utils/distributed.py000066400000000000000000000033361466211133600237030ustar00rootroot00000000000000import os import torch import torch.distributed as dist def _redefine_print(is_main): """disables printing when not in main process""" import builtins as __builtin__ builtin_print = __builtin__.print def print(*args, **kwargs): force = kwargs.pop("force", False) if is_main or force: builtin_print(*args, **kwargs) __builtin__.print = print def setup_ddp(args): # Set the local_rank, rank, and world_size values as args fields # This is done differently depending on how we're running the script. We # currently support either torchrun or the custom run_with_submitit.py # If you're confused (like I was), this might help a bit # https://discuss.pytorch.org/t/what-is-the-difference-between-rank-and-local-rank/61940/2 if "RANK" in os.environ and "WORLD_SIZE" in os.environ: args.rank = int(os.environ["RANK"]) args.world_size = int(os.environ["WORLD_SIZE"]) args.gpu = int(os.environ["LOCAL_RANK"]) elif "SLURM_PROCID" in os.environ: args.rank = int(os.environ["SLURM_PROCID"]) args.gpu = args.rank % torch.cuda.device_count() elif hasattr(args, "rank"): pass else: print("Not using distributed mode") args.distributed = False args.world_size = 1 return args.distributed = True torch.cuda.set_device(args.gpu) dist.init_process_group( backend="nccl", rank=args.rank, world_size=args.world_size, init_method=args.dist_url, ) torch.distributed.barrier() _redefine_print(is_main=(args.rank == 0)) def reduce_across_processes(val): t = torch.tensor(val, device="cuda") dist.barrier() dist.all_reduce(t) return t vision-0.19.1/references/depth/stereo/utils/logger.py000066400000000000000000000116431466211133600226400ustar00rootroot00000000000000import datetime import time from collections import defaultdict, deque import torch from .distributed import reduce_across_processes class SmoothedValue: """Track a series of values and provide access to smoothed values over a window or the global series average. """ def __init__(self, window_size=20, fmt="{median:.4f} ({global_avg:.4f})"): self.deque = deque(maxlen=window_size) self.total = 0.0 self.count = 0 self.fmt = fmt def update(self, value, n=1): self.deque.append(value) self.count += n self.total += value * n def synchronize_between_processes(self): """ Warning: does not synchronize the deque! """ t = reduce_across_processes([self.count, self.total]) t = t.tolist() self.count = int(t[0]) self.total = t[1] @property def median(self): d = torch.tensor(list(self.deque)) return d.median().item() @property def avg(self): d = torch.tensor(list(self.deque), dtype=torch.float32) return d.mean().item() @property def global_avg(self): return self.total / self.count @property def max(self): return max(self.deque) @property def value(self): return self.deque[-1] def __str__(self): return self.fmt.format( median=self.median, avg=self.avg, global_avg=self.global_avg, max=self.max, value=self.value ) class MetricLogger: def __init__(self, delimiter="\t"): self.meters = defaultdict(SmoothedValue) self.delimiter = delimiter def update(self, **kwargs): for k, v in kwargs.items(): if isinstance(v, torch.Tensor): v = v.item() if not isinstance(v, (float, int)): raise TypeError( f"This method expects the value of the input arguments to be of type float or int, instead got {type(v)}" ) self.meters[k].update(v) def __getattr__(self, attr): if attr in self.meters: return self.meters[attr] if attr in self.__dict__: return self.__dict__[attr] raise AttributeError(f"'{type(self).__name__}' object has no attribute '{attr}'") def __str__(self): loss_str = [] for name, meter in self.meters.items(): loss_str.append(f"{name}: {str(meter)}") return self.delimiter.join(loss_str) def synchronize_between_processes(self): for meter in self.meters.values(): meter.synchronize_between_processes() def add_meter(self, name, **kwargs): self.meters[name] = SmoothedValue(**kwargs) def log_every(self, iterable, print_freq=5, header=None): i = 0 if not header: header = "" start_time = time.time() end = time.time() iter_time = SmoothedValue(fmt="{avg:.4f}") data_time = SmoothedValue(fmt="{avg:.4f}") space_fmt = ":" + str(len(str(len(iterable)))) + "d" if torch.cuda.is_available(): log_msg = self.delimiter.join( [ header, "[{0" + space_fmt + "}/{1}]", "eta: {eta}", "{meters}", "time: {time}", "data: {data}", "max mem: {memory:.0f}", ] ) else: log_msg = self.delimiter.join( [header, "[{0" + space_fmt + "}/{1}]", "eta: {eta}", "{meters}", "time: {time}", "data: {data}"] ) MB = 1024.0 * 1024.0 for obj in iterable: data_time.update(time.time() - end) yield obj iter_time.update(time.time() - end) if print_freq is not None and i % print_freq == 0: eta_seconds = iter_time.global_avg * (len(iterable) - i) eta_string = str(datetime.timedelta(seconds=int(eta_seconds))) if torch.cuda.is_available(): print( log_msg.format( i, len(iterable), eta=eta_string, meters=str(self), time=str(iter_time), data=str(data_time), memory=torch.cuda.max_memory_allocated() / MB, ) ) else: print( log_msg.format( i, len(iterable), eta=eta_string, meters=str(self), time=str(iter_time), data=str(data_time) ) ) i += 1 end = time.time() total_time = time.time() - start_time total_time_str = str(datetime.timedelta(seconds=int(total_time))) print(f"{header} Total time: {total_time_str}") vision-0.19.1/references/depth/stereo/utils/losses.py000066400000000000000000000421011466211133600226620ustar00rootroot00000000000000from typing import List, Optional import torch from torch import nn, Tensor from torch.nn import functional as F from torchvision.prototype.models.depth.stereo.raft_stereo import grid_sample, make_coords_grid def make_gaussian_kernel(kernel_size: int, sigma: float) -> torch.Tensor: """Function to create a 2D Gaussian kernel.""" x = torch.arange(kernel_size, dtype=torch.float32) y = torch.arange(kernel_size, dtype=torch.float32) x = x - (kernel_size - 1) / 2 y = y - (kernel_size - 1) / 2 x, y = torch.meshgrid(x, y) grid = (x**2 + y**2) / (2 * sigma**2) kernel = torch.exp(-grid) kernel = kernel / kernel.sum() return kernel def _sequence_loss_fn( flow_preds: List[Tensor], flow_gt: Tensor, valid_flow_mask: Optional[Tensor], gamma: Tensor, max_flow: int = 256, exclude_large: bool = False, weights: Optional[Tensor] = None, ): """Loss function defined over sequence of flow predictions""" torch._assert( gamma < 1, "sequence_loss: `gamma` must be lower than 1, but got {}".format(gamma), ) if exclude_large: # exclude invalid pixels and extremely large diplacements flow_norm = torch.sum(flow_gt**2, dim=1).sqrt() if valid_flow_mask is not None: valid_flow_mask = valid_flow_mask & (flow_norm < max_flow) else: valid_flow_mask = flow_norm < max_flow if valid_flow_mask is not None: valid_flow_mask = valid_flow_mask.unsqueeze(1) flow_preds = torch.stack(flow_preds) # shape = (num_flow_updates, batch_size, 2, H, W) abs_diff = (flow_preds - flow_gt).abs() if valid_flow_mask is not None: abs_diff = abs_diff * valid_flow_mask.unsqueeze(0) abs_diff = abs_diff.mean(axis=(1, 2, 3, 4)) num_predictions = flow_preds.shape[0] # allocating on CPU and moving to device during run-time can force # an unwanted GPU synchronization that produces a large overhead if weights is None or len(weights) != num_predictions: weights = gamma ** torch.arange(num_predictions - 1, -1, -1, device=flow_preds.device, dtype=flow_preds.dtype) flow_loss = (abs_diff * weights).sum() return flow_loss, weights class SequenceLoss(nn.Module): def __init__(self, gamma: float = 0.8, max_flow: int = 256, exclude_large_flows: bool = False) -> None: """ Args: gamma: value for the exponential weighting of the loss across frames max_flow: maximum flow value to exclude exclude_large_flows: whether to exclude large flows """ super().__init__() self.max_flow = max_flow self.excluding_large = exclude_large_flows self.register_buffer("gamma", torch.tensor([gamma])) # cache the scale factor for the loss self._weights = None def forward(self, flow_preds: List[Tensor], flow_gt: Tensor, valid_flow_mask: Optional[Tensor]) -> Tensor: """ Args: flow_preds: list of flow predictions of shape (batch_size, C, H, W) flow_gt: ground truth flow of shape (batch_size, C, H, W) valid_flow_mask: mask of valid flow pixels of shape (batch_size, H, W) """ loss, weights = _sequence_loss_fn( flow_preds, flow_gt, valid_flow_mask, self.gamma, self.max_flow, self.excluding_large, self._weights ) self._weights = weights return loss def set_gamma(self, gamma: float) -> None: self.gamma.fill_(gamma) # reset the cached scale factor self._weights = None def _ssim_loss_fn( source: Tensor, reference: Tensor, kernel: Tensor, eps: float = 1e-8, c1: float = 0.01**2, c2: float = 0.03**2, use_padding: bool = False, ) -> Tensor: # ref: Algorithm section: https://en.wikipedia.org/wiki/Structural_similarity # ref: Alternative implementation: https://kornia.readthedocs.io/en/latest/_modules/kornia/metrics/ssim.html#ssim torch._assert( source.ndim == reference.ndim == 4, "SSIM: `source` and `reference` must be 4-dimensional tensors", ) torch._assert( source.shape == reference.shape, "SSIM: `source` and `reference` must have the same shape, but got {} and {}".format( source.shape, reference.shape ), ) B, C, H, W = source.shape kernel = kernel.unsqueeze(0).unsqueeze(0).repeat(C, 1, 1, 1) if use_padding: pad_size = kernel.shape[2] // 2 source = F.pad(source, (pad_size, pad_size, pad_size, pad_size), "reflect") reference = F.pad(reference, (pad_size, pad_size, pad_size, pad_size), "reflect") mu1 = F.conv2d(source, kernel, groups=C) mu2 = F.conv2d(reference, kernel, groups=C) mu1_sq = mu1.pow(2) mu2_sq = mu2.pow(2) mu1_mu2 = mu1 * mu2 mu_img1_sq = F.conv2d(source.pow(2), kernel, groups=C) mu_img2_sq = F.conv2d(reference.pow(2), kernel, groups=C) mu_img1_mu2 = F.conv2d(source * reference, kernel, groups=C) sigma1_sq = mu_img1_sq - mu1_sq sigma2_sq = mu_img2_sq - mu2_sq sigma12 = mu_img1_mu2 - mu1_mu2 numerator = (2 * mu1_mu2 + c1) * (2 * sigma12 + c2) denominator = (mu1_sq + mu2_sq + c1) * (sigma1_sq + sigma2_sq + c2) ssim = numerator / (denominator + eps) # doing 1 - ssim because we want to maximize the ssim return 1 - ssim.mean(dim=(1, 2, 3)) class SSIM(nn.Module): def __init__( self, kernel_size: int = 11, max_val: float = 1.0, sigma: float = 1.5, eps: float = 1e-12, use_padding: bool = True, ) -> None: """SSIM loss function. Args: kernel_size: size of the Gaussian kernel max_val: constant scaling factor sigma: sigma of the Gaussian kernel eps: constant for division by zero use_padding: whether to pad the input tensor such that we have a score for each pixel """ super().__init__() self.kernel_size = kernel_size self.max_val = max_val self.sigma = sigma gaussian_kernel = make_gaussian_kernel(kernel_size, sigma) self.register_buffer("gaussian_kernel", gaussian_kernel) self.c1 = (0.01 * self.max_val) ** 2 self.c2 = (0.03 * self.max_val) ** 2 self.use_padding = use_padding self.eps = eps def forward(self, source: torch.Tensor, reference: torch.Tensor) -> torch.Tensor: """ Args: source: source image of shape (batch_size, C, H, W) reference: reference image of shape (batch_size, C, H, W) Returns: SSIM loss of shape (batch_size,) """ return _ssim_loss_fn( source, reference, kernel=self.gaussian_kernel, c1=self.c1, c2=self.c2, use_padding=self.use_padding, eps=self.eps, ) def _smoothness_loss_fn(img_gx: Tensor, img_gy: Tensor, val_gx: Tensor, val_gy: Tensor): # ref: https://github.com/nianticlabs/monodepth2/blob/b676244e5a1ca55564eb5d16ab521a48f823af31/layers.py#L202 torch._assert( img_gx.ndim >= 3, "smoothness_loss: `img_gx` must be at least 3-dimensional tensor of shape (..., C, H, W)", ) torch._assert( img_gx.ndim == val_gx.ndim, "smoothness_loss: `img_gx` and `depth_gx` must have the same dimensionality, but got {} and {}".format( img_gx.ndim, val_gx.ndim ), ) for idx in range(img_gx.ndim): torch._assert( (img_gx.shape[idx] == val_gx.shape[idx] or (img_gx.shape[idx] == 1 or val_gx.shape[idx] == 1)), "smoothness_loss: `img_gx` and `depth_gx` must have either the same shape or broadcastable shape, but got {} and {}".format( img_gx.shape, val_gx.shape ), ) # -3 is channel dimension weights_x = torch.exp(-torch.mean(torch.abs(val_gx), axis=-3, keepdim=True)) weights_y = torch.exp(-torch.mean(torch.abs(val_gy), axis=-3, keepdim=True)) smoothness_x = img_gx * weights_x smoothness_y = img_gy * weights_y smoothness = (torch.abs(smoothness_x) + torch.abs(smoothness_y)).mean(axis=(-3, -2, -1)) return smoothness class SmoothnessLoss(nn.Module): def __init__(self) -> None: super().__init__() def _x_gradient(self, img: Tensor) -> Tensor: if img.ndim > 4: original_shape = img.shape is_reshaped = True img = img.reshape(-1, *original_shape[-3:]) else: is_reshaped = False padded = F.pad(img, (0, 1, 0, 0), mode="replicate") grad = padded[..., :, :-1] - padded[..., :, 1:] if is_reshaped: grad = grad.reshape(original_shape) return grad def _y_gradient(self, x: torch.Tensor) -> torch.Tensor: if x.ndim > 4: original_shape = x.shape is_reshaped = True x = x.reshape(-1, *original_shape[-3:]) else: is_reshaped = False padded = F.pad(x, (0, 0, 0, 1), mode="replicate") grad = padded[..., :-1, :] - padded[..., 1:, :] if is_reshaped: grad = grad.reshape(original_shape) return grad def forward(self, images: Tensor, vals: Tensor) -> Tensor: """ Args: images: tensor of shape (D1, D2, ..., DN, C, H, W) vals: tensor of shape (D1, D2, ..., DN, 1, H, W) Returns: smoothness loss of shape (D1, D2, ..., DN) """ img_gx = self._x_gradient(images) img_gy = self._y_gradient(images) val_gx = self._x_gradient(vals) val_gy = self._y_gradient(vals) return _smoothness_loss_fn(img_gx, img_gy, val_gx, val_gy) def _flow_sequence_consistency_loss_fn( flow_preds: List[Tensor], gamma: float = 0.8, resize_factor: float = 0.25, rescale_factor: float = 0.25, rescale_mode: str = "bilinear", weights: Optional[Tensor] = None, ): """Loss function defined over sequence of flow predictions""" # Simplified version of ref: https://arxiv.org/pdf/2006.11242.pdf # In the original paper, an additional refinement network is used to refine a flow prediction. # Each step performed by the recurrent module in Raft or CREStereo is a refinement step using a delta_flow update. # which should be consistent with the previous step. In this implementation, we simplify the overall loss # term and ignore left-right consistency loss or photometric loss which can be treated separately. torch._assert( rescale_factor <= 1.0, "sequence_consistency_loss: `rescale_factor` must be less than or equal to 1, but got {}".format( rescale_factor ), ) flow_preds = torch.stack(flow_preds) # shape = (num_flow_updates, batch_size, 2, H, W) N, B, C, H, W = flow_preds.shape # rescale flow predictions to account for bilinear upsampling artifacts if rescale_factor: flow_preds = ( F.interpolate( flow_preds.view(N * B, C, H, W), scale_factor=resize_factor, mode=rescale_mode, align_corners=True ) ) * rescale_factor flow_preds = torch.stack(torch.chunk(flow_preds, N, dim=0), dim=0) # force the next prediction to be similar to the previous prediction abs_diff = (flow_preds[1:] - flow_preds[:-1]).square() abs_diff = abs_diff.mean(axis=(1, 2, 3, 4)) num_predictions = flow_preds.shape[0] - 1 # because we are comparing differences if weights is None or len(weights) != num_predictions: weights = gamma ** torch.arange(num_predictions - 1, -1, -1, device=flow_preds.device, dtype=flow_preds.dtype) flow_loss = (abs_diff * weights).sum() return flow_loss, weights class FlowSequenceConsistencyLoss(nn.Module): def __init__( self, gamma: float = 0.8, resize_factor: float = 0.25, rescale_factor: float = 0.25, rescale_mode: str = "bilinear", ) -> None: super().__init__() self.gamma = gamma self.resize_factor = resize_factor self.rescale_factor = rescale_factor self.rescale_mode = rescale_mode self._weights = None def forward(self, flow_preds: List[Tensor]) -> Tensor: """ Args: flow_preds: list of tensors of shape (batch_size, C, H, W) Returns: sequence consistency loss of shape (batch_size,) """ loss, weights = _flow_sequence_consistency_loss_fn( flow_preds, gamma=self.gamma, resize_factor=self.resize_factor, rescale_factor=self.rescale_factor, rescale_mode=self.rescale_mode, weights=self._weights, ) self._weights = weights return loss def set_gamma(self, gamma: float) -> None: self.gamma.fill_(gamma) # reset the cached scale factor self._weights = None def _psnr_loss_fn(source: torch.Tensor, target: torch.Tensor, max_val: float) -> torch.Tensor: torch._assert( source.shape == target.shape, "psnr_loss: source and target must have the same shape, but got {} and {}".format(source.shape, target.shape), ) # ref https://en.wikipedia.org/wiki/Peak_signal-to-noise_ratio return 10 * torch.log10(max_val**2 / ((source - target).pow(2).mean(axis=(-3, -2, -1)))) class PSNRLoss(nn.Module): def __init__(self, max_val: float = 256) -> None: """ Args: max_val: maximum value of the input tensor. This refers to the maximum domain value of the input tensor. """ super().__init__() self.max_val = max_val def forward(self, source: Tensor, target: Tensor) -> Tensor: """ Args: source: tensor of shape (D1, D2, ..., DN, C, H, W) target: tensor of shape (D1, D2, ..., DN, C, H, W) Returns: psnr loss of shape (D1, D2, ..., DN) """ # multiply by -1 as we want to maximize the psnr return -1 * _psnr_loss_fn(source, target, self.max_val) class FlowPhotoMetricLoss(nn.Module): def __init__( self, ssim_weight: float = 0.85, ssim_window_size: int = 11, ssim_max_val: float = 1.0, ssim_sigma: float = 1.5, ssim_eps: float = 1e-12, ssim_use_padding: bool = True, max_displacement_ratio: float = 0.15, ) -> None: super().__init__() self._ssim_loss = SSIM( kernel_size=ssim_window_size, max_val=ssim_max_val, sigma=ssim_sigma, eps=ssim_eps, use_padding=ssim_use_padding, ) self._L1_weight = 1 - ssim_weight self._SSIM_weight = ssim_weight self._max_displacement_ratio = max_displacement_ratio def forward( self, source: Tensor, reference: Tensor, flow_pred: Tensor, valid_mask: Optional[Tensor] = None, ): """ Args: source: tensor of shape (B, C, H, W) reference: tensor of shape (B, C, H, W) flow_pred: tensor of shape (B, 2, H, W) valid_mask: tensor of shape (B, H, W) or None Returns: photometric loss of shape """ torch._assert( source.ndim == 4, "FlowPhotoMetricLoss: source must have 4 dimensions, but got {}".format(source.ndim), ) torch._assert( reference.ndim == source.ndim, "FlowPhotoMetricLoss: source and other must have the same number of dimensions, but got {} and {}".format( source.ndim, reference.ndim ), ) torch._assert( flow_pred.shape[1] == 2, "FlowPhotoMetricLoss: flow_pred must have 2 channels, but got {}".format(flow_pred.shape[1]), ) torch._assert( flow_pred.ndim == 4, "FlowPhotoMetricLoss: flow_pred must have 4 dimensions, but got {}".format(flow_pred.ndim), ) B, C, H, W = source.shape flow_channels = flow_pred.shape[1] max_displacements = [] for dim in range(flow_channels): shape_index = -1 - dim max_displacements.append(int(self._max_displacement_ratio * source.shape[shape_index])) # mask out all pixels that have larger flow than the max flow allowed max_flow_mask = torch.logical_and( *[flow_pred[:, dim, :, :] < max_displacements[dim] for dim in range(flow_channels)] ) if valid_mask is not None: valid_mask = torch.logical_and(valid_mask, max_flow_mask).unsqueeze(1) else: valid_mask = max_flow_mask.unsqueeze(1) grid = make_coords_grid(B, H, W, device=str(source.device)) resampled_grids = grid - flow_pred resampled_grids = resampled_grids.permute(0, 2, 3, 1) resampled_source = grid_sample(reference, resampled_grids, mode="bilinear") # compute SSIM loss ssim_loss = self._ssim_loss(resampled_source * valid_mask, source * valid_mask) l1_loss = (resampled_source * valid_mask - source * valid_mask).abs().mean(axis=(-3, -2, -1)) loss = self._L1_weight * l1_loss + self._SSIM_weight * ssim_loss return loss.mean() vision-0.19.1/references/depth/stereo/utils/metrics.py000066400000000000000000000036371466211133600230330ustar00rootroot00000000000000from typing import Dict, List, Optional, Tuple from torch import Tensor AVAILABLE_METRICS = ["mae", "rmse", "epe", "bad1", "bad2", "epe", "1px", "3px", "5px", "fl-all", "relepe"] def compute_metrics( flow_pred: Tensor, flow_gt: Tensor, valid_flow_mask: Optional[Tensor], metrics: List[str] ) -> Tuple[Dict[str, float], int]: for m in metrics: if m not in AVAILABLE_METRICS: raise ValueError(f"Invalid metric: {m}. Valid metrics are: {AVAILABLE_METRICS}") metrics_dict = {} pixels_diffs = (flow_pred - flow_gt).abs() # there is no Y flow in Stereo Matching, therefore flow.abs() = flow.pow(2).sum(dim=1).sqrt() flow_norm = flow_gt.abs() if valid_flow_mask is not None: valid_flow_mask = valid_flow_mask.unsqueeze(1) pixels_diffs = pixels_diffs[valid_flow_mask] flow_norm = flow_norm[valid_flow_mask] num_pixels = pixels_diffs.numel() if "bad1" in metrics: metrics_dict["bad1"] = (pixels_diffs > 1).float().mean().item() if "bad2" in metrics: metrics_dict["bad2"] = (pixels_diffs > 2).float().mean().item() if "mae" in metrics: metrics_dict["mae"] = pixels_diffs.mean().item() if "rmse" in metrics: metrics_dict["rmse"] = pixels_diffs.pow(2).mean().sqrt().item() if "epe" in metrics: metrics_dict["epe"] = pixels_diffs.mean().item() if "1px" in metrics: metrics_dict["1px"] = (pixels_diffs < 1).float().mean().item() if "3px" in metrics: metrics_dict["3px"] = (pixels_diffs < 3).float().mean().item() if "5px" in metrics: metrics_dict["5px"] = (pixels_diffs < 5).float().mean().item() if "fl-all" in metrics: metrics_dict["fl-all"] = ((pixels_diffs < 3) & ((pixels_diffs / flow_norm) < 0.05)).float().mean().item() * 100 if "relepe" in metrics: metrics_dict["relepe"] = (pixels_diffs / flow_norm).mean().item() return metrics_dict, num_pixels vision-0.19.1/references/depth/stereo/utils/norm.py000066400000000000000000000004261466211133600223310ustar00rootroot00000000000000import torch def freeze_batch_norm(model): for m in model.modules(): if isinstance(m, torch.nn.BatchNorm2d): m.eval() def unfreeze_batch_norm(model): for m in model.modules(): if isinstance(m, torch.nn.BatchNorm2d): m.train() vision-0.19.1/references/depth/stereo/utils/padder.py000066400000000000000000000021631466211133600226150ustar00rootroot00000000000000import torch.nn.functional as F class InputPadder: """Pads images such that dimensions are divisible by 8""" # TODO: Ideally, this should be part of the eval transforms preset, instead # of being part of the validation code. It's not obvious what a good # solution would be, because we need to unpad the predicted flows according # to the input images' size, and in some datasets (Kitti) images can have # variable sizes. def __init__(self, dims, mode="sintel"): self.ht, self.wd = dims[-2:] pad_ht = (((self.ht // 8) + 1) * 8 - self.ht) % 8 pad_wd = (((self.wd // 8) + 1) * 8 - self.wd) % 8 if mode == "sintel": self._pad = [pad_wd // 2, pad_wd - pad_wd // 2, pad_ht // 2, pad_ht - pad_ht // 2] else: self._pad = [pad_wd // 2, pad_wd - pad_wd // 2, 0, pad_ht] def pad(self, *inputs): return [F.pad(x, self._pad, mode="replicate") for x in inputs] def unpad(self, x): ht, wd = x.shape[-2:] c = [self._pad[2], ht - self._pad[3], self._pad[0], wd - self._pad[1]] return x[..., c[0] : c[1], c[2] : c[3]] vision-0.19.1/references/depth/stereo/visualization.py000066400000000000000000000115441466211133600231220ustar00rootroot00000000000000import os from typing import List import numpy as np import torch from torch import Tensor from torchvision.utils import make_grid @torch.no_grad() def make_disparity_image(disparity: Tensor): # normalize image to [0, 1] disparity = disparity.detach().cpu() disparity = (disparity - disparity.min()) / (disparity.max() - disparity.min()) return disparity @torch.no_grad() def make_disparity_image_pairs(disparity: Tensor, image: Tensor): disparity = make_disparity_image(disparity) # image is in [-1, 1], bring it to [0, 1] image = image.detach().cpu() image = image * 0.5 + 0.5 return disparity, image @torch.no_grad() def make_disparity_sequence(disparities: List[Tensor]): # convert each disparity to [0, 1] for idx, disparity_batch in enumerate(disparities): disparities[idx] = torch.stack(list(map(make_disparity_image, disparity_batch))) # make the list into a batch disparity_sequences = torch.stack(disparities) return disparity_sequences @torch.no_grad() def make_pair_grid(*inputs, orientation="horizontal"): # make a grid of images with the outputs and references side by side if orientation == "horizontal": # interleave the outputs and references canvas = torch.zeros_like(inputs[0]) canvas = torch.cat([canvas] * len(inputs), dim=0) size = len(inputs) for idx, inp in enumerate(inputs): canvas[idx::size, ...] = inp grid = make_grid(canvas, nrow=len(inputs), padding=16, normalize=True, scale_each=True) elif orientation == "vertical": # interleave the outputs and references canvas = torch.cat(inputs, dim=0) size = len(inputs) for idx, inp in enumerate(inputs): canvas[idx::size, ...] = inp grid = make_grid(canvas, nrow=len(inputs[0]), padding=16, normalize=True, scale_each=True) else: raise ValueError("Unknown orientation: {}".format(orientation)) return grid @torch.no_grad() def make_training_sample_grid( left_images: Tensor, right_images: Tensor, disparities: Tensor, masks: Tensor, predictions: List[Tensor], ) -> np.ndarray: # detach images and renormalize to [0, 1] images_left = left_images.detach().cpu() * 0.5 + 0.5 images_right = right_images.detach().cpu() * 0.5 + 0.5 # detach the disparties and predictions disparities = disparities.detach().cpu() predictions = predictions[-1].detach().cpu() # keep only the first channel of pixels, and repeat it 3 times disparities = disparities[:, :1, ...].repeat(1, 3, 1, 1) predictions = predictions[:, :1, ...].repeat(1, 3, 1, 1) # unsqueeze and repeat the masks masks = masks.detach().cpu().unsqueeze(1).repeat(1, 3, 1, 1) # make a grid that will self normalize across the batch pred_grid = make_pair_grid(images_left, images_right, masks, disparities, predictions, orientation="horizontal") pred_grid = pred_grid.permute(1, 2, 0).numpy() pred_grid = (pred_grid * 255).astype(np.uint8) return pred_grid @torch.no_grad() def make_disparity_sequence_grid(predictions: List[Tensor], disparities: Tensor) -> np.ndarray: # right most we will be adding the ground truth seq_len = len(predictions) + 1 predictions = list(map(lambda x: x[:, :1, :, :].detach().cpu(), predictions + [disparities])) sequence = make_disparity_sequence(predictions) # swap axes to have the in the correct order for each batch sample sequence = torch.swapaxes(sequence, 0, 1).contiguous().reshape(-1, 1, disparities.shape[-2], disparities.shape[-1]) sequence = make_grid(sequence, nrow=seq_len, padding=16, normalize=True, scale_each=True) sequence = sequence.permute(1, 2, 0).numpy() sequence = (sequence * 255).astype(np.uint8) return sequence @torch.no_grad() def make_prediction_image_side_to_side( predictions: Tensor, disparities: Tensor, valid_mask: Tensor, save_path: str, prefix: str ) -> None: import matplotlib.pyplot as plt # normalize the predictions and disparities in [0, 1] predictions = (predictions - predictions.min()) / (predictions.max() - predictions.min()) disparities = (disparities - disparities.min()) / (disparities.max() - disparities.min()) predictions = predictions * valid_mask disparities = disparities * valid_mask predictions = predictions.detach().cpu() disparities = disparities.detach().cpu() for idx, (pred, gt) in enumerate(zip(predictions, disparities)): pred = pred.permute(1, 2, 0).numpy() gt = gt.permute(1, 2, 0).numpy() # plot pred and gt side by side fig, ax = plt.subplots(1, 2, figsize=(10, 5)) ax[0].imshow(pred) ax[0].set_title("Prediction") ax[1].imshow(gt) ax[1].set_title("Ground Truth") save_name = os.path.join(save_path, "{}_{}.png".format(prefix, idx)) plt.savefig(save_name) plt.close() vision-0.19.1/references/detection/000077500000000000000000000000001466211133600172135ustar00rootroot00000000000000vision-0.19.1/references/detection/README.md000066400000000000000000000055161466211133600205010ustar00rootroot00000000000000# Object detection reference training scripts This folder contains reference training scripts for object detection. They serve as a log of how to train specific models, to provide baseline training and evaluation scripts to quickly bootstrap research. To execute the example commands below you must install the following: ``` cython pycocotools matplotlib ``` You must modify the following flags: `--data-path=/path/to/coco/dataset` `--nproc_per_node=` Except otherwise noted, all models have been trained on 8x V100 GPUs. ### Faster R-CNN ResNet-50 FPN ``` torchrun --nproc_per_node=8 train.py\ --dataset coco --model fasterrcnn_resnet50_fpn --epochs 26\ --lr-steps 16 22 --aspect-ratio-group-factor 3 --weights-backbone ResNet50_Weights.IMAGENET1K_V1 ``` ### Faster R-CNN MobileNetV3-Large FPN ``` torchrun --nproc_per_node=8 train.py\ --dataset coco --model fasterrcnn_mobilenet_v3_large_fpn --epochs 26\ --lr-steps 16 22 --aspect-ratio-group-factor 3 --weights-backbone MobileNet_V3_Large_Weights.IMAGENET1K_V1 ``` ### Faster R-CNN MobileNetV3-Large 320 FPN ``` torchrun --nproc_per_node=8 train.py\ --dataset coco --model fasterrcnn_mobilenet_v3_large_320_fpn --epochs 26\ --lr-steps 16 22 --aspect-ratio-group-factor 3 --weights-backbone MobileNet_V3_Large_Weights.IMAGENET1K_V1 ``` ### FCOS ResNet-50 FPN ``` torchrun --nproc_per_node=8 train.py\ --dataset coco --model fcos_resnet50_fpn --epochs 26\ --lr-steps 16 22 --aspect-ratio-group-factor 3 --lr 0.01 --amp --weights-backbone ResNet50_Weights.IMAGENET1K_V1 ``` ### RetinaNet ``` torchrun --nproc_per_node=8 train.py\ --dataset coco --model retinanet_resnet50_fpn --epochs 26\ --lr-steps 16 22 --aspect-ratio-group-factor 3 --lr 0.01 --weights-backbone ResNet50_Weights.IMAGENET1K_V1 ``` ### SSD300 VGG16 ``` torchrun --nproc_per_node=8 train.py\ --dataset coco --model ssd300_vgg16 --epochs 120\ --lr-steps 80 110 --aspect-ratio-group-factor 3 --lr 0.002 --batch-size 4\ --weight-decay 0.0005 --data-augmentation ssd --weights-backbone VGG16_Weights.IMAGENET1K_FEATURES ``` ### SSDlite320 MobileNetV3-Large ``` torchrun --nproc_per_node=8 train.py\ --dataset coco --model ssdlite320_mobilenet_v3_large --epochs 660\ --aspect-ratio-group-factor 3 --lr-scheduler cosineannealinglr --lr 0.15 --batch-size 24\ --weight-decay 0.00004 --data-augmentation ssdlite ``` ### Mask R-CNN ``` torchrun --nproc_per_node=8 train.py\ --dataset coco --model maskrcnn_resnet50_fpn --epochs 26\ --lr-steps 16 22 --aspect-ratio-group-factor 3 --weights-backbone ResNet50_Weights.IMAGENET1K_V1 ``` ### Keypoint R-CNN ``` torchrun --nproc_per_node=8 train.py\ --dataset coco_kp --model keypointrcnn_resnet50_fpn --epochs 46\ --lr-steps 36 43 --aspect-ratio-group-factor 3 --weights-backbone ResNet50_Weights.IMAGENET1K_V1 ``` vision-0.19.1/references/detection/coco_eval.py000066400000000000000000000144571466211133600215320ustar00rootroot00000000000000import copy import io from contextlib import redirect_stdout import numpy as np import pycocotools.mask as mask_util import torch import utils from pycocotools.coco import COCO from pycocotools.cocoeval import COCOeval class CocoEvaluator: def __init__(self, coco_gt, iou_types): if not isinstance(iou_types, (list, tuple)): raise TypeError(f"This constructor expects iou_types of type list or tuple, instead got {type(iou_types)}") coco_gt = copy.deepcopy(coco_gt) self.coco_gt = coco_gt self.iou_types = iou_types self.coco_eval = {} for iou_type in iou_types: self.coco_eval[iou_type] = COCOeval(coco_gt, iouType=iou_type) self.img_ids = [] self.eval_imgs = {k: [] for k in iou_types} def update(self, predictions): img_ids = list(np.unique(list(predictions.keys()))) self.img_ids.extend(img_ids) for iou_type in self.iou_types: results = self.prepare(predictions, iou_type) with redirect_stdout(io.StringIO()): coco_dt = COCO.loadRes(self.coco_gt, results) if results else COCO() coco_eval = self.coco_eval[iou_type] coco_eval.cocoDt = coco_dt coco_eval.params.imgIds = list(img_ids) img_ids, eval_imgs = evaluate(coco_eval) self.eval_imgs[iou_type].append(eval_imgs) def synchronize_between_processes(self): for iou_type in self.iou_types: self.eval_imgs[iou_type] = np.concatenate(self.eval_imgs[iou_type], 2) create_common_coco_eval(self.coco_eval[iou_type], self.img_ids, self.eval_imgs[iou_type]) def accumulate(self): for coco_eval in self.coco_eval.values(): coco_eval.accumulate() def summarize(self): for iou_type, coco_eval in self.coco_eval.items(): print(f"IoU metric: {iou_type}") coco_eval.summarize() def prepare(self, predictions, iou_type): if iou_type == "bbox": return self.prepare_for_coco_detection(predictions) if iou_type == "segm": return self.prepare_for_coco_segmentation(predictions) if iou_type == "keypoints": return self.prepare_for_coco_keypoint(predictions) raise ValueError(f"Unknown iou type {iou_type}") def prepare_for_coco_detection(self, predictions): coco_results = [] for original_id, prediction in predictions.items(): if len(prediction) == 0: continue boxes = prediction["boxes"] boxes = convert_to_xywh(boxes).tolist() scores = prediction["scores"].tolist() labels = prediction["labels"].tolist() coco_results.extend( [ { "image_id": original_id, "category_id": labels[k], "bbox": box, "score": scores[k], } for k, box in enumerate(boxes) ] ) return coco_results def prepare_for_coco_segmentation(self, predictions): coco_results = [] for original_id, prediction in predictions.items(): if len(prediction) == 0: continue scores = prediction["scores"] labels = prediction["labels"] masks = prediction["masks"] masks = masks > 0.5 scores = prediction["scores"].tolist() labels = prediction["labels"].tolist() rles = [ mask_util.encode(np.array(mask[0, :, :, np.newaxis], dtype=np.uint8, order="F"))[0] for mask in masks ] for rle in rles: rle["counts"] = rle["counts"].decode("utf-8") coco_results.extend( [ { "image_id": original_id, "category_id": labels[k], "segmentation": rle, "score": scores[k], } for k, rle in enumerate(rles) ] ) return coco_results def prepare_for_coco_keypoint(self, predictions): coco_results = [] for original_id, prediction in predictions.items(): if len(prediction) == 0: continue boxes = prediction["boxes"] boxes = convert_to_xywh(boxes).tolist() scores = prediction["scores"].tolist() labels = prediction["labels"].tolist() keypoints = prediction["keypoints"] keypoints = keypoints.flatten(start_dim=1).tolist() coco_results.extend( [ { "image_id": original_id, "category_id": labels[k], "keypoints": keypoint, "score": scores[k], } for k, keypoint in enumerate(keypoints) ] ) return coco_results def convert_to_xywh(boxes): xmin, ymin, xmax, ymax = boxes.unbind(1) return torch.stack((xmin, ymin, xmax - xmin, ymax - ymin), dim=1) def merge(img_ids, eval_imgs): all_img_ids = utils.all_gather(img_ids) all_eval_imgs = utils.all_gather(eval_imgs) merged_img_ids = [] for p in all_img_ids: merged_img_ids.extend(p) merged_eval_imgs = [] for p in all_eval_imgs: merged_eval_imgs.append(p) merged_img_ids = np.array(merged_img_ids) merged_eval_imgs = np.concatenate(merged_eval_imgs, 2) # keep only unique (and in sorted order) images merged_img_ids, idx = np.unique(merged_img_ids, return_index=True) merged_eval_imgs = merged_eval_imgs[..., idx] return merged_img_ids, merged_eval_imgs def create_common_coco_eval(coco_eval, img_ids, eval_imgs): img_ids, eval_imgs = merge(img_ids, eval_imgs) img_ids = list(img_ids) eval_imgs = list(eval_imgs.flatten()) coco_eval.evalImgs = eval_imgs coco_eval.params.imgIds = img_ids coco_eval._paramsEval = copy.deepcopy(coco_eval.params) def evaluate(imgs): with redirect_stdout(io.StringIO()): imgs.evaluate() return imgs.params.imgIds, np.asarray(imgs.evalImgs).reshape(-1, len(imgs.params.areaRng), len(imgs.params.imgIds)) vision-0.19.1/references/detection/coco_utils.py000066400000000000000000000203151466211133600217310ustar00rootroot00000000000000import os import torch import torch.utils.data import torchvision import transforms as T from pycocotools import mask as coco_mask from pycocotools.coco import COCO def convert_coco_poly_to_mask(segmentations, height, width): masks = [] for polygons in segmentations: rles = coco_mask.frPyObjects(polygons, height, width) mask = coco_mask.decode(rles) if len(mask.shape) < 3: mask = mask[..., None] mask = torch.as_tensor(mask, dtype=torch.uint8) mask = mask.any(dim=2) masks.append(mask) if masks: masks = torch.stack(masks, dim=0) else: masks = torch.zeros((0, height, width), dtype=torch.uint8) return masks class ConvertCocoPolysToMask: def __call__(self, image, target): w, h = image.size image_id = target["image_id"] anno = target["annotations"] anno = [obj for obj in anno if obj["iscrowd"] == 0] boxes = [obj["bbox"] for obj in anno] # guard against no boxes via resizing boxes = torch.as_tensor(boxes, dtype=torch.float32).reshape(-1, 4) boxes[:, 2:] += boxes[:, :2] boxes[:, 0::2].clamp_(min=0, max=w) boxes[:, 1::2].clamp_(min=0, max=h) classes = [obj["category_id"] for obj in anno] classes = torch.tensor(classes, dtype=torch.int64) segmentations = [obj["segmentation"] for obj in anno] masks = convert_coco_poly_to_mask(segmentations, h, w) keypoints = None if anno and "keypoints" in anno[0]: keypoints = [obj["keypoints"] for obj in anno] keypoints = torch.as_tensor(keypoints, dtype=torch.float32) num_keypoints = keypoints.shape[0] if num_keypoints: keypoints = keypoints.view(num_keypoints, -1, 3) keep = (boxes[:, 3] > boxes[:, 1]) & (boxes[:, 2] > boxes[:, 0]) boxes = boxes[keep] classes = classes[keep] masks = masks[keep] if keypoints is not None: keypoints = keypoints[keep] target = {} target["boxes"] = boxes target["labels"] = classes target["masks"] = masks target["image_id"] = image_id if keypoints is not None: target["keypoints"] = keypoints # for conversion to coco api area = torch.tensor([obj["area"] for obj in anno]) iscrowd = torch.tensor([obj["iscrowd"] for obj in anno]) target["area"] = area target["iscrowd"] = iscrowd return image, target def _coco_remove_images_without_annotations(dataset, cat_list=None): def _has_only_empty_bbox(anno): return all(any(o <= 1 for o in obj["bbox"][2:]) for obj in anno) def _count_visible_keypoints(anno): return sum(sum(1 for v in ann["keypoints"][2::3] if v > 0) for ann in anno) min_keypoints_per_image = 10 def _has_valid_annotation(anno): # if it's empty, there is no annotation if len(anno) == 0: return False # if all boxes have close to zero area, there is no annotation if _has_only_empty_bbox(anno): return False # keypoints task have a slight different criteria for considering # if an annotation is valid if "keypoints" not in anno[0]: return True # for keypoint detection tasks, only consider valid images those # containing at least min_keypoints_per_image if _count_visible_keypoints(anno) >= min_keypoints_per_image: return True return False ids = [] for ds_idx, img_id in enumerate(dataset.ids): ann_ids = dataset.coco.getAnnIds(imgIds=img_id, iscrowd=None) anno = dataset.coco.loadAnns(ann_ids) if cat_list: anno = [obj for obj in anno if obj["category_id"] in cat_list] if _has_valid_annotation(anno): ids.append(ds_idx) dataset = torch.utils.data.Subset(dataset, ids) return dataset def convert_to_coco_api(ds): coco_ds = COCO() # annotation IDs need to start at 1, not 0, see torchvision issue #1530 ann_id = 1 dataset = {"images": [], "categories": [], "annotations": []} categories = set() for img_idx in range(len(ds)): # find better way to get target # targets = ds.get_annotations(img_idx) img, targets = ds[img_idx] image_id = targets["image_id"] img_dict = {} img_dict["id"] = image_id img_dict["height"] = img.shape[-2] img_dict["width"] = img.shape[-1] dataset["images"].append(img_dict) bboxes = targets["boxes"].clone() bboxes[:, 2:] -= bboxes[:, :2] bboxes = bboxes.tolist() labels = targets["labels"].tolist() areas = targets["area"].tolist() iscrowd = targets["iscrowd"].tolist() if "masks" in targets: masks = targets["masks"] # make masks Fortran contiguous for coco_mask masks = masks.permute(0, 2, 1).contiguous().permute(0, 2, 1) if "keypoints" in targets: keypoints = targets["keypoints"] keypoints = keypoints.reshape(keypoints.shape[0], -1).tolist() num_objs = len(bboxes) for i in range(num_objs): ann = {} ann["image_id"] = image_id ann["bbox"] = bboxes[i] ann["category_id"] = labels[i] categories.add(labels[i]) ann["area"] = areas[i] ann["iscrowd"] = iscrowd[i] ann["id"] = ann_id if "masks" in targets: ann["segmentation"] = coco_mask.encode(masks[i].numpy()) if "keypoints" in targets: ann["keypoints"] = keypoints[i] ann["num_keypoints"] = sum(k != 0 for k in keypoints[i][2::3]) dataset["annotations"].append(ann) ann_id += 1 dataset["categories"] = [{"id": i} for i in sorted(categories)] coco_ds.dataset = dataset coco_ds.createIndex() return coco_ds def get_coco_api_from_dataset(dataset): # FIXME: This is... awful? for _ in range(10): if isinstance(dataset, torchvision.datasets.CocoDetection): break if isinstance(dataset, torch.utils.data.Subset): dataset = dataset.dataset if isinstance(dataset, torchvision.datasets.CocoDetection): return dataset.coco return convert_to_coco_api(dataset) class CocoDetection(torchvision.datasets.CocoDetection): def __init__(self, img_folder, ann_file, transforms): super().__init__(img_folder, ann_file) self._transforms = transforms def __getitem__(self, idx): img, target = super().__getitem__(idx) image_id = self.ids[idx] target = dict(image_id=image_id, annotations=target) if self._transforms is not None: img, target = self._transforms(img, target) return img, target def get_coco(root, image_set, transforms, mode="instances", use_v2=False, with_masks=False): anno_file_template = "{}_{}2017.json" PATHS = { "train": ("train2017", os.path.join("annotations", anno_file_template.format(mode, "train"))), "val": ("val2017", os.path.join("annotations", anno_file_template.format(mode, "val"))), # "train": ("val2017", os.path.join("annotations", anno_file_template.format(mode, "val"))) } img_folder, ann_file = PATHS[image_set] img_folder = os.path.join(root, img_folder) ann_file = os.path.join(root, ann_file) if use_v2: from torchvision.datasets import wrap_dataset_for_transforms_v2 dataset = torchvision.datasets.CocoDetection(img_folder, ann_file, transforms=transforms) target_keys = ["boxes", "labels", "image_id"] if with_masks: target_keys += ["masks"] dataset = wrap_dataset_for_transforms_v2(dataset, target_keys=target_keys) else: # TODO: handle with_masks for V1? t = [ConvertCocoPolysToMask()] if transforms is not None: t.append(transforms) transforms = T.Compose(t) dataset = CocoDetection(img_folder, ann_file, transforms=transforms) if image_set == "train": dataset = _coco_remove_images_without_annotations(dataset) # dataset = torch.utils.data.Subset(dataset, [i for i in range(500)]) return dataset vision-0.19.1/references/detection/engine.py000066400000000000000000000077371466211133600210500ustar00rootroot00000000000000import math import sys import time import torch import torchvision.models.detection.mask_rcnn import utils from coco_eval import CocoEvaluator from coco_utils import get_coco_api_from_dataset def train_one_epoch(model, optimizer, data_loader, device, epoch, print_freq, scaler=None): model.train() metric_logger = utils.MetricLogger(delimiter=" ") metric_logger.add_meter("lr", utils.SmoothedValue(window_size=1, fmt="{value:.6f}")) header = f"Epoch: [{epoch}]" lr_scheduler = None if epoch == 0: warmup_factor = 1.0 / 1000 warmup_iters = min(1000, len(data_loader) - 1) lr_scheduler = torch.optim.lr_scheduler.LinearLR( optimizer, start_factor=warmup_factor, total_iters=warmup_iters ) for images, targets in metric_logger.log_every(data_loader, print_freq, header): images = list(image.to(device) for image in images) targets = [{k: v.to(device) if isinstance(v, torch.Tensor) else v for k, v in t.items()} for t in targets] with torch.cuda.amp.autocast(enabled=scaler is not None): loss_dict = model(images, targets) losses = sum(loss for loss in loss_dict.values()) # reduce losses over all GPUs for logging purposes loss_dict_reduced = utils.reduce_dict(loss_dict) losses_reduced = sum(loss for loss in loss_dict_reduced.values()) loss_value = losses_reduced.item() if not math.isfinite(loss_value): print(f"Loss is {loss_value}, stopping training") print(loss_dict_reduced) sys.exit(1) optimizer.zero_grad() if scaler is not None: scaler.scale(losses).backward() scaler.step(optimizer) scaler.update() else: losses.backward() optimizer.step() if lr_scheduler is not None: lr_scheduler.step() metric_logger.update(loss=losses_reduced, **loss_dict_reduced) metric_logger.update(lr=optimizer.param_groups[0]["lr"]) return metric_logger def _get_iou_types(model): model_without_ddp = model if isinstance(model, torch.nn.parallel.DistributedDataParallel): model_without_ddp = model.module iou_types = ["bbox"] if isinstance(model_without_ddp, torchvision.models.detection.MaskRCNN): iou_types.append("segm") if isinstance(model_without_ddp, torchvision.models.detection.KeypointRCNN): iou_types.append("keypoints") return iou_types @torch.inference_mode() def evaluate(model, data_loader, device): n_threads = torch.get_num_threads() # FIXME remove this and make paste_masks_in_image run on the GPU torch.set_num_threads(1) cpu_device = torch.device("cpu") model.eval() metric_logger = utils.MetricLogger(delimiter=" ") header = "Test:" coco = get_coco_api_from_dataset(data_loader.dataset) iou_types = _get_iou_types(model) coco_evaluator = CocoEvaluator(coco, iou_types) for images, targets in metric_logger.log_every(data_loader, 100, header): images = list(img.to(device) for img in images) if torch.cuda.is_available(): torch.cuda.synchronize() model_time = time.time() outputs = model(images) outputs = [{k: v.to(cpu_device) for k, v in t.items()} for t in outputs] model_time = time.time() - model_time res = {target["image_id"]: output for target, output in zip(targets, outputs)} evaluator_time = time.time() coco_evaluator.update(res) evaluator_time = time.time() - evaluator_time metric_logger.update(model_time=model_time, evaluator_time=evaluator_time) # gather the stats from all processes metric_logger.synchronize_between_processes() print("Averaged stats:", metric_logger) coco_evaluator.synchronize_between_processes() # accumulate predictions from all images coco_evaluator.accumulate() coco_evaluator.summarize() torch.set_num_threads(n_threads) return coco_evaluator vision-0.19.1/references/detection/group_by_aspect_ratio.py000066400000000000000000000157531466211133600241630ustar00rootroot00000000000000import bisect import copy import math from collections import defaultdict from itertools import chain, repeat import numpy as np import torch import torch.utils.data import torchvision from PIL import Image from torch.utils.data.sampler import BatchSampler, Sampler from torch.utils.model_zoo import tqdm def _repeat_to_at_least(iterable, n): repeat_times = math.ceil(n / len(iterable)) repeated = chain.from_iterable(repeat(iterable, repeat_times)) return list(repeated) class GroupedBatchSampler(BatchSampler): """ Wraps another sampler to yield a mini-batch of indices. It enforces that the batch only contain elements from the same group. It also tries to provide mini-batches which follows an ordering which is as close as possible to the ordering from the original sampler. Args: sampler (Sampler): Base sampler. group_ids (list[int]): If the sampler produces indices in range [0, N), `group_ids` must be a list of `N` ints which contains the group id of each sample. The group ids must be a continuous set of integers starting from 0, i.e. they must be in the range [0, num_groups). batch_size (int): Size of mini-batch. """ def __init__(self, sampler, group_ids, batch_size): if not isinstance(sampler, Sampler): raise ValueError(f"sampler should be an instance of torch.utils.data.Sampler, but got sampler={sampler}") self.sampler = sampler self.group_ids = group_ids self.batch_size = batch_size def __iter__(self): buffer_per_group = defaultdict(list) samples_per_group = defaultdict(list) num_batches = 0 for idx in self.sampler: group_id = self.group_ids[idx] buffer_per_group[group_id].append(idx) samples_per_group[group_id].append(idx) if len(buffer_per_group[group_id]) == self.batch_size: yield buffer_per_group[group_id] num_batches += 1 del buffer_per_group[group_id] assert len(buffer_per_group[group_id]) < self.batch_size # now we have run out of elements that satisfy # the group criteria, let's return the remaining # elements so that the size of the sampler is # deterministic expected_num_batches = len(self) num_remaining = expected_num_batches - num_batches if num_remaining > 0: # for the remaining batches, take first the buffers with the largest number # of elements for group_id, _ in sorted(buffer_per_group.items(), key=lambda x: len(x[1]), reverse=True): remaining = self.batch_size - len(buffer_per_group[group_id]) samples_from_group_id = _repeat_to_at_least(samples_per_group[group_id], remaining) buffer_per_group[group_id].extend(samples_from_group_id[:remaining]) assert len(buffer_per_group[group_id]) == self.batch_size yield buffer_per_group[group_id] num_remaining -= 1 if num_remaining == 0: break assert num_remaining == 0 def __len__(self): return len(self.sampler) // self.batch_size def _compute_aspect_ratios_slow(dataset, indices=None): print( "Your dataset doesn't support the fast path for " "computing the aspect ratios, so will iterate over " "the full dataset and load every image instead. " "This might take some time..." ) if indices is None: indices = range(len(dataset)) class SubsetSampler(Sampler): def __init__(self, indices): self.indices = indices def __iter__(self): return iter(self.indices) def __len__(self): return len(self.indices) sampler = SubsetSampler(indices) data_loader = torch.utils.data.DataLoader( dataset, batch_size=1, sampler=sampler, num_workers=14, # you might want to increase it for faster processing collate_fn=lambda x: x[0], ) aspect_ratios = [] with tqdm(total=len(dataset)) as pbar: for _i, (img, _) in enumerate(data_loader): pbar.update(1) height, width = img.shape[-2:] aspect_ratio = float(width) / float(height) aspect_ratios.append(aspect_ratio) return aspect_ratios def _compute_aspect_ratios_custom_dataset(dataset, indices=None): if indices is None: indices = range(len(dataset)) aspect_ratios = [] for i in indices: height, width = dataset.get_height_and_width(i) aspect_ratio = float(width) / float(height) aspect_ratios.append(aspect_ratio) return aspect_ratios def _compute_aspect_ratios_coco_dataset(dataset, indices=None): if indices is None: indices = range(len(dataset)) aspect_ratios = [] for i in indices: img_info = dataset.coco.imgs[dataset.ids[i]] aspect_ratio = float(img_info["width"]) / float(img_info["height"]) aspect_ratios.append(aspect_ratio) return aspect_ratios def _compute_aspect_ratios_voc_dataset(dataset, indices=None): if indices is None: indices = range(len(dataset)) aspect_ratios = [] for i in indices: # this doesn't load the data into memory, because PIL loads it lazily width, height = Image.open(dataset.images[i]).size aspect_ratio = float(width) / float(height) aspect_ratios.append(aspect_ratio) return aspect_ratios def _compute_aspect_ratios_subset_dataset(dataset, indices=None): if indices is None: indices = range(len(dataset)) ds_indices = [dataset.indices[i] for i in indices] return compute_aspect_ratios(dataset.dataset, ds_indices) def compute_aspect_ratios(dataset, indices=None): if hasattr(dataset, "get_height_and_width"): return _compute_aspect_ratios_custom_dataset(dataset, indices) if isinstance(dataset, torchvision.datasets.CocoDetection): return _compute_aspect_ratios_coco_dataset(dataset, indices) if isinstance(dataset, torchvision.datasets.VOCDetection): return _compute_aspect_ratios_voc_dataset(dataset, indices) if isinstance(dataset, torch.utils.data.Subset): return _compute_aspect_ratios_subset_dataset(dataset, indices) # slow path return _compute_aspect_ratios_slow(dataset, indices) def _quantize(x, bins): bins = copy.deepcopy(bins) bins = sorted(bins) quantized = list(map(lambda y: bisect.bisect_right(bins, y), x)) return quantized def create_aspect_ratio_groups(dataset, k=0): aspect_ratios = compute_aspect_ratios(dataset) bins = (2 ** np.linspace(-1, 1, 2 * k + 1)).tolist() if k > 0 else [1.0] groups = _quantize(aspect_ratios, bins) # count number of elements per group counts = np.unique(groups, return_counts=True)[1] fbins = [0] + bins + [np.inf] print(f"Using {fbins} as bins for aspect ratio quantization") print(f"Count of instances per bin: {counts}") return groups vision-0.19.1/references/detection/presets.py000066400000000000000000000075651466211133600212670ustar00rootroot00000000000000from collections import defaultdict import torch import transforms as reference_transforms def get_modules(use_v2): # We need a protected import to avoid the V2 warning in case just V1 is used if use_v2: import torchvision.transforms.v2 import torchvision.tv_tensors return torchvision.transforms.v2, torchvision.tv_tensors else: return reference_transforms, None class DetectionPresetTrain: # Note: this transform assumes that the input to forward() are always PIL # images, regardless of the backend parameter. def __init__( self, *, data_augmentation, hflip_prob=0.5, mean=(123.0, 117.0, 104.0), backend="pil", use_v2=False, ): T, tv_tensors = get_modules(use_v2) transforms = [] backend = backend.lower() if backend == "tv_tensor": transforms.append(T.ToImage()) elif backend == "tensor": transforms.append(T.PILToTensor()) elif backend != "pil": raise ValueError(f"backend can be 'tv_tensor', 'tensor' or 'pil', but got {backend}") if data_augmentation == "hflip": transforms += [T.RandomHorizontalFlip(p=hflip_prob)] elif data_augmentation == "lsj": transforms += [ T.ScaleJitter(target_size=(1024, 1024), antialias=True), # TODO: FixedSizeCrop below doesn't work on tensors! reference_transforms.FixedSizeCrop(size=(1024, 1024), fill=mean), T.RandomHorizontalFlip(p=hflip_prob), ] elif data_augmentation == "multiscale": transforms += [ T.RandomShortestSize(min_size=(480, 512, 544, 576, 608, 640, 672, 704, 736, 768, 800), max_size=1333), T.RandomHorizontalFlip(p=hflip_prob), ] elif data_augmentation == "ssd": fill = defaultdict(lambda: mean, {tv_tensors.Mask: 0}) if use_v2 else list(mean) transforms += [ T.RandomPhotometricDistort(), T.RandomZoomOut(fill=fill), T.RandomIoUCrop(), T.RandomHorizontalFlip(p=hflip_prob), ] elif data_augmentation == "ssdlite": transforms += [ T.RandomIoUCrop(), T.RandomHorizontalFlip(p=hflip_prob), ] else: raise ValueError(f'Unknown data augmentation policy "{data_augmentation}"') if backend == "pil": # Note: we could just convert to pure tensors even in v2. transforms += [T.ToImage() if use_v2 else T.PILToTensor()] transforms += [T.ToDtype(torch.float, scale=True)] if use_v2: transforms += [ T.ConvertBoundingBoxFormat(tv_tensors.BoundingBoxFormat.XYXY), T.SanitizeBoundingBoxes(), T.ToPureTensor(), ] self.transforms = T.Compose(transforms) def __call__(self, img, target): return self.transforms(img, target) class DetectionPresetEval: def __init__(self, backend="pil", use_v2=False): T, _ = get_modules(use_v2) transforms = [] backend = backend.lower() if backend == "pil": # Note: we could just convert to pure tensors even in v2? transforms += [T.ToImage() if use_v2 else T.PILToTensor()] elif backend == "tensor": transforms += [T.PILToTensor()] elif backend == "tv_tensor": transforms += [T.ToImage()] else: raise ValueError(f"backend can be 'tv_tensor', 'tensor' or 'pil', but got {backend}") transforms += [T.ToDtype(torch.float, scale=True)] if use_v2: transforms += [T.ToPureTensor()] self.transforms = T.Compose(transforms) def __call__(self, img, target): return self.transforms(img, target) vision-0.19.1/references/detection/train.py000066400000000000000000000326071466211133600207120ustar00rootroot00000000000000r"""PyTorch Detection Training. To run in a multi-gpu environment, use the distributed launcher:: python -m torch.distributed.launch --nproc_per_node=$NGPU --use_env \ train.py ... --world-size $NGPU The default hyperparameters are tuned for training on 8 gpus and 2 images per gpu. --lr 0.02 --batch-size 2 --world-size 8 If you use different number of gpus, the learning rate should be changed to 0.02/8*$NGPU. On top of that, for training Faster/Mask R-CNN, the default hyperparameters are --epochs 26 --lr-steps 16 22 --aspect-ratio-group-factor 3 Also, if you train Keypoint R-CNN, the default hyperparameters are --epochs 46 --lr-steps 36 43 --aspect-ratio-group-factor 3 Because the number of images is smaller in the person keypoint subset of COCO, the number of epochs should be adapted so that we have the same number of iterations. """ import datetime import os import time import presets import torch import torch.utils.data import torchvision import torchvision.models.detection import torchvision.models.detection.mask_rcnn import utils from coco_utils import get_coco from engine import evaluate, train_one_epoch from group_by_aspect_ratio import create_aspect_ratio_groups, GroupedBatchSampler from torchvision.transforms import InterpolationMode from transforms import SimpleCopyPaste def copypaste_collate_fn(batch): copypaste = SimpleCopyPaste(blending=True, resize_interpolation=InterpolationMode.BILINEAR) return copypaste(*utils.collate_fn(batch)) def get_dataset(is_train, args): image_set = "train" if is_train else "val" num_classes, mode = {"coco": (91, "instances"), "coco_kp": (2, "person_keypoints")}[args.dataset] with_masks = "mask" in args.model ds = get_coco( root=args.data_path, image_set=image_set, transforms=get_transform(is_train, args), mode=mode, use_v2=args.use_v2, with_masks=with_masks, ) return ds, num_classes def get_transform(is_train, args): if is_train: return presets.DetectionPresetTrain( data_augmentation=args.data_augmentation, backend=args.backend, use_v2=args.use_v2 ) elif args.weights and args.test_only: weights = torchvision.models.get_weight(args.weights) trans = weights.transforms() return lambda img, target: (trans(img), target) else: return presets.DetectionPresetEval(backend=args.backend, use_v2=args.use_v2) def get_args_parser(add_help=True): import argparse parser = argparse.ArgumentParser(description="PyTorch Detection Training", add_help=add_help) parser.add_argument("--data-path", default="/datasets01/COCO/022719/", type=str, help="dataset path") parser.add_argument( "--dataset", default="coco", type=str, help="dataset name. Use coco for object detection and instance segmentation and coco_kp for Keypoint detection", ) parser.add_argument("--model", default="maskrcnn_resnet50_fpn", type=str, help="model name") parser.add_argument("--device", default="cuda", type=str, help="device (Use cuda or cpu Default: cuda)") parser.add_argument( "-b", "--batch-size", default=2, type=int, help="images per gpu, the total batch size is $NGPU x batch_size" ) parser.add_argument("--epochs", default=26, type=int, metavar="N", help="number of total epochs to run") parser.add_argument( "-j", "--workers", default=4, type=int, metavar="N", help="number of data loading workers (default: 4)" ) parser.add_argument("--opt", default="sgd", type=str, help="optimizer") parser.add_argument( "--lr", default=0.02, type=float, help="initial learning rate, 0.02 is the default value for training on 8 gpus and 2 images_per_gpu", ) parser.add_argument("--momentum", default=0.9, type=float, metavar="M", help="momentum") parser.add_argument( "--wd", "--weight-decay", default=1e-4, type=float, metavar="W", help="weight decay (default: 1e-4)", dest="weight_decay", ) parser.add_argument( "--norm-weight-decay", default=None, type=float, help="weight decay for Normalization layers (default: None, same value as --wd)", ) parser.add_argument( "--lr-scheduler", default="multisteplr", type=str, help="name of lr scheduler (default: multisteplr)" ) parser.add_argument( "--lr-step-size", default=8, type=int, help="decrease lr every step-size epochs (multisteplr scheduler only)" ) parser.add_argument( "--lr-steps", default=[16, 22], nargs="+", type=int, help="decrease lr every step-size epochs (multisteplr scheduler only)", ) parser.add_argument( "--lr-gamma", default=0.1, type=float, help="decrease lr by a factor of lr-gamma (multisteplr scheduler only)" ) parser.add_argument("--print-freq", default=20, type=int, help="print frequency") parser.add_argument("--output-dir", default=".", type=str, help="path to save outputs") parser.add_argument("--resume", default="", type=str, help="path of checkpoint") parser.add_argument("--start_epoch", default=0, type=int, help="start epoch") parser.add_argument("--aspect-ratio-group-factor", default=3, type=int) parser.add_argument("--rpn-score-thresh", default=None, type=float, help="rpn score threshold for faster-rcnn") parser.add_argument( "--trainable-backbone-layers", default=None, type=int, help="number of trainable layers of backbone" ) parser.add_argument( "--data-augmentation", default="hflip", type=str, help="data augmentation policy (default: hflip)" ) parser.add_argument( "--sync-bn", dest="sync_bn", help="Use sync batch norm", action="store_true", ) parser.add_argument( "--test-only", dest="test_only", help="Only test the model", action="store_true", ) parser.add_argument( "--use-deterministic-algorithms", action="store_true", help="Forces the use of deterministic algorithms only." ) # distributed training parameters parser.add_argument("--world-size", default=1, type=int, help="number of distributed processes") parser.add_argument("--dist-url", default="env://", type=str, help="url used to set up distributed training") parser.add_argument("--weights", default=None, type=str, help="the weights enum name to load") parser.add_argument("--weights-backbone", default=None, type=str, help="the backbone weights enum name to load") # Mixed precision training parameters parser.add_argument("--amp", action="store_true", help="Use torch.cuda.amp for mixed precision training") # Use CopyPaste augmentation training parameter parser.add_argument( "--use-copypaste", action="store_true", help="Use CopyPaste data augmentation. Works only with data-augmentation='lsj'.", ) parser.add_argument("--backend", default="PIL", type=str.lower, help="PIL or tensor - case insensitive") parser.add_argument("--use-v2", action="store_true", help="Use V2 transforms") return parser def main(args): if args.backend.lower() == "tv_tensor" and not args.use_v2: raise ValueError("Use --use-v2 if you want to use the tv_tensor backend.") if args.dataset not in ("coco", "coco_kp"): raise ValueError(f"Dataset should be coco or coco_kp, got {args.dataset}") if "keypoint" in args.model and args.dataset != "coco_kp": raise ValueError("Oops, if you want Keypoint detection, set --dataset coco_kp") if args.dataset == "coco_kp" and args.use_v2: raise ValueError("KeyPoint detection doesn't support V2 transforms yet") if args.output_dir: utils.mkdir(args.output_dir) utils.init_distributed_mode(args) print(args) device = torch.device(args.device) if args.use_deterministic_algorithms: torch.use_deterministic_algorithms(True) # Data loading code print("Loading data") dataset, num_classes = get_dataset(is_train=True, args=args) dataset_test, _ = get_dataset(is_train=False, args=args) print("Creating data loaders") if args.distributed: train_sampler = torch.utils.data.distributed.DistributedSampler(dataset) test_sampler = torch.utils.data.distributed.DistributedSampler(dataset_test, shuffle=False) else: train_sampler = torch.utils.data.RandomSampler(dataset) test_sampler = torch.utils.data.SequentialSampler(dataset_test) if args.aspect_ratio_group_factor >= 0: group_ids = create_aspect_ratio_groups(dataset, k=args.aspect_ratio_group_factor) train_batch_sampler = GroupedBatchSampler(train_sampler, group_ids, args.batch_size) else: train_batch_sampler = torch.utils.data.BatchSampler(train_sampler, args.batch_size, drop_last=True) train_collate_fn = utils.collate_fn if args.use_copypaste: if args.data_augmentation != "lsj": raise RuntimeError("SimpleCopyPaste algorithm currently only supports the 'lsj' data augmentation policies") train_collate_fn = copypaste_collate_fn data_loader = torch.utils.data.DataLoader( dataset, batch_sampler=train_batch_sampler, num_workers=args.workers, collate_fn=train_collate_fn ) data_loader_test = torch.utils.data.DataLoader( dataset_test, batch_size=1, sampler=test_sampler, num_workers=args.workers, collate_fn=utils.collate_fn ) print("Creating model") kwargs = {"trainable_backbone_layers": args.trainable_backbone_layers} if args.data_augmentation in ["multiscale", "lsj"]: kwargs["_skip_resize"] = True if "rcnn" in args.model: if args.rpn_score_thresh is not None: kwargs["rpn_score_thresh"] = args.rpn_score_thresh model = torchvision.models.get_model( args.model, weights=args.weights, weights_backbone=args.weights_backbone, num_classes=num_classes, **kwargs ) model.to(device) if args.distributed and args.sync_bn: model = torch.nn.SyncBatchNorm.convert_sync_batchnorm(model) model_without_ddp = model if args.distributed: model = torch.nn.parallel.DistributedDataParallel(model, device_ids=[args.gpu]) model_without_ddp = model.module if args.norm_weight_decay is None: parameters = [p for p in model.parameters() if p.requires_grad] else: param_groups = torchvision.ops._utils.split_normalization_params(model) wd_groups = [args.norm_weight_decay, args.weight_decay] parameters = [{"params": p, "weight_decay": w} for p, w in zip(param_groups, wd_groups) if p] opt_name = args.opt.lower() if opt_name.startswith("sgd"): optimizer = torch.optim.SGD( parameters, lr=args.lr, momentum=args.momentum, weight_decay=args.weight_decay, nesterov="nesterov" in opt_name, ) elif opt_name == "adamw": optimizer = torch.optim.AdamW(parameters, lr=args.lr, weight_decay=args.weight_decay) else: raise RuntimeError(f"Invalid optimizer {args.opt}. Only SGD and AdamW are supported.") scaler = torch.cuda.amp.GradScaler() if args.amp else None args.lr_scheduler = args.lr_scheduler.lower() if args.lr_scheduler == "multisteplr": lr_scheduler = torch.optim.lr_scheduler.MultiStepLR(optimizer, milestones=args.lr_steps, gamma=args.lr_gamma) elif args.lr_scheduler == "cosineannealinglr": lr_scheduler = torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=args.epochs) else: raise RuntimeError( f"Invalid lr scheduler '{args.lr_scheduler}'. Only MultiStepLR and CosineAnnealingLR are supported." ) if args.resume: checkpoint = torch.load(args.resume, map_location="cpu", weights_only=True) model_without_ddp.load_state_dict(checkpoint["model"]) optimizer.load_state_dict(checkpoint["optimizer"]) lr_scheduler.load_state_dict(checkpoint["lr_scheduler"]) args.start_epoch = checkpoint["epoch"] + 1 if args.amp: scaler.load_state_dict(checkpoint["scaler"]) if args.test_only: torch.backends.cudnn.deterministic = True evaluate(model, data_loader_test, device=device) return print("Start training") start_time = time.time() for epoch in range(args.start_epoch, args.epochs): if args.distributed: train_sampler.set_epoch(epoch) train_one_epoch(model, optimizer, data_loader, device, epoch, args.print_freq, scaler) lr_scheduler.step() if args.output_dir: checkpoint = { "model": model_without_ddp.state_dict(), "optimizer": optimizer.state_dict(), "lr_scheduler": lr_scheduler.state_dict(), "args": args, "epoch": epoch, } if args.amp: checkpoint["scaler"] = scaler.state_dict() utils.save_on_master(checkpoint, os.path.join(args.output_dir, f"model_{epoch}.pth")) utils.save_on_master(checkpoint, os.path.join(args.output_dir, "checkpoint.pth")) # evaluate after every epoch evaluate(model, data_loader_test, device=device) total_time = time.time() - start_time total_time_str = str(datetime.timedelta(seconds=int(total_time))) print(f"Training time {total_time_str}") if __name__ == "__main__": args = get_args_parser().parse_args() main(args) vision-0.19.1/references/detection/transforms.py000066400000000000000000000561141466211133600217720ustar00rootroot00000000000000from typing import Dict, List, Optional, Tuple, Union import torch import torchvision from torch import nn, Tensor from torchvision import ops from torchvision.transforms import functional as F, InterpolationMode, transforms as T def _flip_coco_person_keypoints(kps, width): flip_inds = [0, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15] flipped_data = kps[:, flip_inds] flipped_data[..., 0] = width - flipped_data[..., 0] # Maintain COCO convention that if visibility == 0, then x, y = 0 inds = flipped_data[..., 2] == 0 flipped_data[inds] = 0 return flipped_data class Compose: def __init__(self, transforms): self.transforms = transforms def __call__(self, image, target): for t in self.transforms: image, target = t(image, target) return image, target class RandomHorizontalFlip(T.RandomHorizontalFlip): def forward( self, image: Tensor, target: Optional[Dict[str, Tensor]] = None ) -> Tuple[Tensor, Optional[Dict[str, Tensor]]]: if torch.rand(1) < self.p: image = F.hflip(image) if target is not None: _, _, width = F.get_dimensions(image) target["boxes"][:, [0, 2]] = width - target["boxes"][:, [2, 0]] if "masks" in target: target["masks"] = target["masks"].flip(-1) if "keypoints" in target: keypoints = target["keypoints"] keypoints = _flip_coco_person_keypoints(keypoints, width) target["keypoints"] = keypoints return image, target class PILToTensor(nn.Module): def forward( self, image: Tensor, target: Optional[Dict[str, Tensor]] = None ) -> Tuple[Tensor, Optional[Dict[str, Tensor]]]: image = F.pil_to_tensor(image) return image, target class ToDtype(nn.Module): def __init__(self, dtype: torch.dtype, scale: bool = False) -> None: super().__init__() self.dtype = dtype self.scale = scale def forward( self, image: Tensor, target: Optional[Dict[str, Tensor]] = None ) -> Tuple[Tensor, Optional[Dict[str, Tensor]]]: if not self.scale: return image.to(dtype=self.dtype), target image = F.convert_image_dtype(image, self.dtype) return image, target class RandomIoUCrop(nn.Module): def __init__( self, min_scale: float = 0.3, max_scale: float = 1.0, min_aspect_ratio: float = 0.5, max_aspect_ratio: float = 2.0, sampler_options: Optional[List[float]] = None, trials: int = 40, ): super().__init__() # Configuration similar to https://github.com/weiliu89/caffe/blob/ssd/examples/ssd/ssd_coco.py#L89-L174 self.min_scale = min_scale self.max_scale = max_scale self.min_aspect_ratio = min_aspect_ratio self.max_aspect_ratio = max_aspect_ratio if sampler_options is None: sampler_options = [0.0, 0.1, 0.3, 0.5, 0.7, 0.9, 1.0] self.options = sampler_options self.trials = trials def forward( self, image: Tensor, target: Optional[Dict[str, Tensor]] = None ) -> Tuple[Tensor, Optional[Dict[str, Tensor]]]: if target is None: raise ValueError("The targets can't be None for this transform.") if isinstance(image, torch.Tensor): if image.ndimension() not in {2, 3}: raise ValueError(f"image should be 2/3 dimensional. Got {image.ndimension()} dimensions.") elif image.ndimension() == 2: image = image.unsqueeze(0) _, orig_h, orig_w = F.get_dimensions(image) while True: # sample an option idx = int(torch.randint(low=0, high=len(self.options), size=(1,))) min_jaccard_overlap = self.options[idx] if min_jaccard_overlap >= 1.0: # a value larger than 1 encodes the leave as-is option return image, target for _ in range(self.trials): # check the aspect ratio limitations r = self.min_scale + (self.max_scale - self.min_scale) * torch.rand(2) new_w = int(orig_w * r[0]) new_h = int(orig_h * r[1]) aspect_ratio = new_w / new_h if not (self.min_aspect_ratio <= aspect_ratio <= self.max_aspect_ratio): continue # check for 0 area crops r = torch.rand(2) left = int((orig_w - new_w) * r[0]) top = int((orig_h - new_h) * r[1]) right = left + new_w bottom = top + new_h if left == right or top == bottom: continue # check for any valid boxes with centers within the crop area cx = 0.5 * (target["boxes"][:, 0] + target["boxes"][:, 2]) cy = 0.5 * (target["boxes"][:, 1] + target["boxes"][:, 3]) is_within_crop_area = (left < cx) & (cx < right) & (top < cy) & (cy < bottom) if not is_within_crop_area.any(): continue # check at least 1 box with jaccard limitations boxes = target["boxes"][is_within_crop_area] ious = torchvision.ops.boxes.box_iou( boxes, torch.tensor([[left, top, right, bottom]], dtype=boxes.dtype, device=boxes.device) ) if ious.max() < min_jaccard_overlap: continue # keep only valid boxes and perform cropping target["boxes"] = boxes target["labels"] = target["labels"][is_within_crop_area] target["boxes"][:, 0::2] -= left target["boxes"][:, 1::2] -= top target["boxes"][:, 0::2].clamp_(min=0, max=new_w) target["boxes"][:, 1::2].clamp_(min=0, max=new_h) image = F.crop(image, top, left, new_h, new_w) return image, target class RandomZoomOut(nn.Module): def __init__( self, fill: Optional[List[float]] = None, side_range: Tuple[float, float] = (1.0, 4.0), p: float = 0.5 ): super().__init__() if fill is None: fill = [0.0, 0.0, 0.0] self.fill = fill self.side_range = side_range if side_range[0] < 1.0 or side_range[0] > side_range[1]: raise ValueError(f"Invalid canvas side range provided {side_range}.") self.p = p @torch.jit.unused def _get_fill_value(self, is_pil): # type: (bool) -> int # We fake the type to make it work on JIT return tuple(int(x) for x in self.fill) if is_pil else 0 def forward( self, image: Tensor, target: Optional[Dict[str, Tensor]] = None ) -> Tuple[Tensor, Optional[Dict[str, Tensor]]]: if isinstance(image, torch.Tensor): if image.ndimension() not in {2, 3}: raise ValueError(f"image should be 2/3 dimensional. Got {image.ndimension()} dimensions.") elif image.ndimension() == 2: image = image.unsqueeze(0) if torch.rand(1) >= self.p: return image, target _, orig_h, orig_w = F.get_dimensions(image) r = self.side_range[0] + torch.rand(1) * (self.side_range[1] - self.side_range[0]) canvas_width = int(orig_w * r) canvas_height = int(orig_h * r) r = torch.rand(2) left = int((canvas_width - orig_w) * r[0]) top = int((canvas_height - orig_h) * r[1]) right = canvas_width - (left + orig_w) bottom = canvas_height - (top + orig_h) if torch.jit.is_scripting(): fill = 0 else: fill = self._get_fill_value(F._is_pil_image(image)) image = F.pad(image, [left, top, right, bottom], fill=fill) if isinstance(image, torch.Tensor): # PyTorch's pad supports only integers on fill. So we need to overwrite the colour v = torch.tensor(self.fill, device=image.device, dtype=image.dtype).view(-1, 1, 1) image[..., :top, :] = image[..., :, :left] = image[..., (top + orig_h) :, :] = image[ ..., :, (left + orig_w) : ] = v if target is not None: target["boxes"][:, 0::2] += left target["boxes"][:, 1::2] += top return image, target class RandomPhotometricDistort(nn.Module): def __init__( self, contrast: Tuple[float, float] = (0.5, 1.5), saturation: Tuple[float, float] = (0.5, 1.5), hue: Tuple[float, float] = (-0.05, 0.05), brightness: Tuple[float, float] = (0.875, 1.125), p: float = 0.5, ): super().__init__() self._brightness = T.ColorJitter(brightness=brightness) self._contrast = T.ColorJitter(contrast=contrast) self._hue = T.ColorJitter(hue=hue) self._saturation = T.ColorJitter(saturation=saturation) self.p = p def forward( self, image: Tensor, target: Optional[Dict[str, Tensor]] = None ) -> Tuple[Tensor, Optional[Dict[str, Tensor]]]: if isinstance(image, torch.Tensor): if image.ndimension() not in {2, 3}: raise ValueError(f"image should be 2/3 dimensional. Got {image.ndimension()} dimensions.") elif image.ndimension() == 2: image = image.unsqueeze(0) r = torch.rand(7) if r[0] < self.p: image = self._brightness(image) contrast_before = r[1] < 0.5 if contrast_before: if r[2] < self.p: image = self._contrast(image) if r[3] < self.p: image = self._saturation(image) if r[4] < self.p: image = self._hue(image) if not contrast_before: if r[5] < self.p: image = self._contrast(image) if r[6] < self.p: channels, _, _ = F.get_dimensions(image) permutation = torch.randperm(channels) is_pil = F._is_pil_image(image) if is_pil: image = F.pil_to_tensor(image) image = F.convert_image_dtype(image) image = image[..., permutation, :, :] if is_pil: image = F.to_pil_image(image) return image, target class ScaleJitter(nn.Module): """Randomly resizes the image and its bounding boxes within the specified scale range. The class implements the Scale Jitter augmentation as described in the paper `"Simple Copy-Paste is a Strong Data Augmentation Method for Instance Segmentation" `_. Args: target_size (tuple of ints): The target size for the transform provided in (height, weight) format. scale_range (tuple of ints): scaling factor interval, e.g (a, b), then scale is randomly sampled from the range a <= scale <= b. interpolation (InterpolationMode): Desired interpolation enum defined by :class:`torchvision.transforms.InterpolationMode`. Default is ``InterpolationMode.BILINEAR``. """ def __init__( self, target_size: Tuple[int, int], scale_range: Tuple[float, float] = (0.1, 2.0), interpolation: InterpolationMode = InterpolationMode.BILINEAR, antialias=True, ): super().__init__() self.target_size = target_size self.scale_range = scale_range self.interpolation = interpolation self.antialias = antialias def forward( self, image: Tensor, target: Optional[Dict[str, Tensor]] = None ) -> Tuple[Tensor, Optional[Dict[str, Tensor]]]: if isinstance(image, torch.Tensor): if image.ndimension() not in {2, 3}: raise ValueError(f"image should be 2/3 dimensional. Got {image.ndimension()} dimensions.") elif image.ndimension() == 2: image = image.unsqueeze(0) _, orig_height, orig_width = F.get_dimensions(image) scale = self.scale_range[0] + torch.rand(1) * (self.scale_range[1] - self.scale_range[0]) r = min(self.target_size[1] / orig_height, self.target_size[0] / orig_width) * scale new_width = int(orig_width * r) new_height = int(orig_height * r) image = F.resize(image, [new_height, new_width], interpolation=self.interpolation, antialias=self.antialias) if target is not None: target["boxes"][:, 0::2] *= new_width / orig_width target["boxes"][:, 1::2] *= new_height / orig_height if "masks" in target: target["masks"] = F.resize( target["masks"], [new_height, new_width], interpolation=InterpolationMode.NEAREST, antialias=self.antialias, ) return image, target class FixedSizeCrop(nn.Module): def __init__(self, size, fill=0, padding_mode="constant"): super().__init__() size = tuple(T._setup_size(size, error_msg="Please provide only two dimensions (h, w) for size.")) self.crop_height = size[0] self.crop_width = size[1] self.fill = fill # TODO: Fill is currently respected only on PIL. Apply tensor patch. self.padding_mode = padding_mode def _pad(self, img, target, padding): # Taken from the functional_tensor.py pad if isinstance(padding, int): pad_left = pad_right = pad_top = pad_bottom = padding elif len(padding) == 1: pad_left = pad_right = pad_top = pad_bottom = padding[0] elif len(padding) == 2: pad_left = pad_right = padding[0] pad_top = pad_bottom = padding[1] else: pad_left = padding[0] pad_top = padding[1] pad_right = padding[2] pad_bottom = padding[3] padding = [pad_left, pad_top, pad_right, pad_bottom] img = F.pad(img, padding, self.fill, self.padding_mode) if target is not None: target["boxes"][:, 0::2] += pad_left target["boxes"][:, 1::2] += pad_top if "masks" in target: target["masks"] = F.pad(target["masks"], padding, 0, "constant") return img, target def _crop(self, img, target, top, left, height, width): img = F.crop(img, top, left, height, width) if target is not None: boxes = target["boxes"] boxes[:, 0::2] -= left boxes[:, 1::2] -= top boxes[:, 0::2].clamp_(min=0, max=width) boxes[:, 1::2].clamp_(min=0, max=height) is_valid = (boxes[:, 0] < boxes[:, 2]) & (boxes[:, 1] < boxes[:, 3]) target["boxes"] = boxes[is_valid] target["labels"] = target["labels"][is_valid] if "masks" in target: target["masks"] = F.crop(target["masks"][is_valid], top, left, height, width) return img, target def forward(self, img, target=None): _, height, width = F.get_dimensions(img) new_height = min(height, self.crop_height) new_width = min(width, self.crop_width) if new_height != height or new_width != width: offset_height = max(height - self.crop_height, 0) offset_width = max(width - self.crop_width, 0) r = torch.rand(1) top = int(offset_height * r) left = int(offset_width * r) img, target = self._crop(img, target, top, left, new_height, new_width) pad_bottom = max(self.crop_height - new_height, 0) pad_right = max(self.crop_width - new_width, 0) if pad_bottom != 0 or pad_right != 0: img, target = self._pad(img, target, [0, 0, pad_right, pad_bottom]) return img, target class RandomShortestSize(nn.Module): def __init__( self, min_size: Union[List[int], Tuple[int], int], max_size: int, interpolation: InterpolationMode = InterpolationMode.BILINEAR, ): super().__init__() self.min_size = [min_size] if isinstance(min_size, int) else list(min_size) self.max_size = max_size self.interpolation = interpolation def forward( self, image: Tensor, target: Optional[Dict[str, Tensor]] = None ) -> Tuple[Tensor, Optional[Dict[str, Tensor]]]: _, orig_height, orig_width = F.get_dimensions(image) min_size = self.min_size[torch.randint(len(self.min_size), (1,)).item()] r = min(min_size / min(orig_height, orig_width), self.max_size / max(orig_height, orig_width)) new_width = int(orig_width * r) new_height = int(orig_height * r) image = F.resize(image, [new_height, new_width], interpolation=self.interpolation) if target is not None: target["boxes"][:, 0::2] *= new_width / orig_width target["boxes"][:, 1::2] *= new_height / orig_height if "masks" in target: target["masks"] = F.resize( target["masks"], [new_height, new_width], interpolation=InterpolationMode.NEAREST ) return image, target def _copy_paste( image: torch.Tensor, target: Dict[str, Tensor], paste_image: torch.Tensor, paste_target: Dict[str, Tensor], blending: bool = True, resize_interpolation: F.InterpolationMode = F.InterpolationMode.BILINEAR, ) -> Tuple[torch.Tensor, Dict[str, Tensor]]: # Random paste targets selection: num_masks = len(paste_target["masks"]) if num_masks < 1: # Such degerante case with num_masks=0 can happen with LSJ # Let's just return (image, target) return image, target # We have to please torch script by explicitly specifying dtype as torch.long random_selection = torch.randint(0, num_masks, (num_masks,), device=paste_image.device) random_selection = torch.unique(random_selection).to(torch.long) paste_masks = paste_target["masks"][random_selection] paste_boxes = paste_target["boxes"][random_selection] paste_labels = paste_target["labels"][random_selection] masks = target["masks"] # We resize source and paste data if they have different sizes # This is something we introduced here as originally the algorithm works # on equal-sized data (for example, coming from LSJ data augmentations) size1 = image.shape[-2:] size2 = paste_image.shape[-2:] if size1 != size2: paste_image = F.resize(paste_image, size1, interpolation=resize_interpolation) paste_masks = F.resize(paste_masks, size1, interpolation=F.InterpolationMode.NEAREST) # resize bboxes: ratios = torch.tensor((size1[1] / size2[1], size1[0] / size2[0]), device=paste_boxes.device) paste_boxes = paste_boxes.view(-1, 2, 2).mul(ratios).view(paste_boxes.shape) paste_alpha_mask = paste_masks.sum(dim=0) > 0 if blending: paste_alpha_mask = F.gaussian_blur( paste_alpha_mask.unsqueeze(0), kernel_size=(5, 5), sigma=[ 2.0, ], ) # Copy-paste images: image = (image * (~paste_alpha_mask)) + (paste_image * paste_alpha_mask) # Copy-paste masks: masks = masks * (~paste_alpha_mask) non_all_zero_masks = masks.sum((-1, -2)) > 0 masks = masks[non_all_zero_masks] # Do a shallow copy of the target dict out_target = {k: v for k, v in target.items()} out_target["masks"] = torch.cat([masks, paste_masks]) # Copy-paste boxes and labels boxes = ops.masks_to_boxes(masks) out_target["boxes"] = torch.cat([boxes, paste_boxes]) labels = target["labels"][non_all_zero_masks] out_target["labels"] = torch.cat([labels, paste_labels]) # Update additional optional keys: area and iscrowd if exist if "area" in target: out_target["area"] = out_target["masks"].sum((-1, -2)).to(torch.float32) if "iscrowd" in target and "iscrowd" in paste_target: # target['iscrowd'] size can be differ from mask size (non_all_zero_masks) # For example, if previous transforms geometrically modifies masks/boxes/labels but # does not update "iscrowd" if len(target["iscrowd"]) == len(non_all_zero_masks): iscrowd = target["iscrowd"][non_all_zero_masks] paste_iscrowd = paste_target["iscrowd"][random_selection] out_target["iscrowd"] = torch.cat([iscrowd, paste_iscrowd]) # Check for degenerated boxes and remove them boxes = out_target["boxes"] degenerate_boxes = boxes[:, 2:] <= boxes[:, :2] if degenerate_boxes.any(): valid_targets = ~degenerate_boxes.any(dim=1) out_target["boxes"] = boxes[valid_targets] out_target["masks"] = out_target["masks"][valid_targets] out_target["labels"] = out_target["labels"][valid_targets] if "area" in out_target: out_target["area"] = out_target["area"][valid_targets] if "iscrowd" in out_target and len(out_target["iscrowd"]) == len(valid_targets): out_target["iscrowd"] = out_target["iscrowd"][valid_targets] return image, out_target class SimpleCopyPaste(torch.nn.Module): def __init__(self, blending=True, resize_interpolation=F.InterpolationMode.BILINEAR): super().__init__() self.resize_interpolation = resize_interpolation self.blending = blending def forward( self, images: List[torch.Tensor], targets: List[Dict[str, Tensor]] ) -> Tuple[List[torch.Tensor], List[Dict[str, Tensor]]]: torch._assert( isinstance(images, (list, tuple)) and all([isinstance(v, torch.Tensor) for v in images]), "images should be a list of tensors", ) torch._assert( isinstance(targets, (list, tuple)) and len(images) == len(targets), "targets should be a list of the same size as images", ) for target in targets: # Can not check for instance type dict with inside torch.jit.script # torch._assert(isinstance(target, dict), "targets item should be a dict") for k in ["masks", "boxes", "labels"]: torch._assert(k in target, f"Key {k} should be present in targets") torch._assert(isinstance(target[k], torch.Tensor), f"Value for the key {k} should be a tensor") # images = [t1, t2, ..., tN] # Let's define paste_images as shifted list of input images # paste_images = [t2, t3, ..., tN, t1] # FYI: in TF they mix data on the dataset level images_rolled = images[-1:] + images[:-1] targets_rolled = targets[-1:] + targets[:-1] output_images: List[torch.Tensor] = [] output_targets: List[Dict[str, Tensor]] = [] for image, target, paste_image, paste_target in zip(images, targets, images_rolled, targets_rolled): output_image, output_data = _copy_paste( image, target, paste_image, paste_target, blending=self.blending, resize_interpolation=self.resize_interpolation, ) output_images.append(output_image) output_targets.append(output_data) return output_images, output_targets def __repr__(self) -> str: s = f"{self.__class__.__name__}(blending={self.blending}, resize_interpolation={self.resize_interpolation})" return s vision-0.19.1/references/detection/utils.py000066400000000000000000000203041466211133600207240ustar00rootroot00000000000000import datetime import errno import os import time from collections import defaultdict, deque import torch import torch.distributed as dist class SmoothedValue: """Track a series of values and provide access to smoothed values over a window or the global series average. """ def __init__(self, window_size=20, fmt=None): if fmt is None: fmt = "{median:.4f} ({global_avg:.4f})" self.deque = deque(maxlen=window_size) self.total = 0.0 self.count = 0 self.fmt = fmt def update(self, value, n=1): self.deque.append(value) self.count += n self.total += value * n def synchronize_between_processes(self): """ Warning: does not synchronize the deque! """ if not is_dist_avail_and_initialized(): return t = torch.tensor([self.count, self.total], dtype=torch.float64, device="cuda") dist.barrier() dist.all_reduce(t) t = t.tolist() self.count = int(t[0]) self.total = t[1] @property def median(self): d = torch.tensor(list(self.deque)) return d.median().item() @property def avg(self): d = torch.tensor(list(self.deque), dtype=torch.float32) return d.mean().item() @property def global_avg(self): return self.total / self.count @property def max(self): return max(self.deque) @property def value(self): return self.deque[-1] def __str__(self): return self.fmt.format( median=self.median, avg=self.avg, global_avg=self.global_avg, max=self.max, value=self.value ) def all_gather(data): """ Run all_gather on arbitrary picklable data (not necessarily tensors) Args: data: any picklable object Returns: list[data]: list of data gathered from each rank """ world_size = get_world_size() if world_size == 1: return [data] data_list = [None] * world_size dist.all_gather_object(data_list, data) return data_list def reduce_dict(input_dict, average=True): """ Args: input_dict (dict): all the values will be reduced average (bool): whether to do average or sum Reduce the values in the dictionary from all processes so that all processes have the averaged results. Returns a dict with the same fields as input_dict, after reduction. """ world_size = get_world_size() if world_size < 2: return input_dict with torch.inference_mode(): names = [] values = [] # sort the keys so that they are consistent across processes for k in sorted(input_dict.keys()): names.append(k) values.append(input_dict[k]) values = torch.stack(values, dim=0) dist.all_reduce(values) if average: values /= world_size reduced_dict = {k: v for k, v in zip(names, values)} return reduced_dict class MetricLogger: def __init__(self, delimiter="\t"): self.meters = defaultdict(SmoothedValue) self.delimiter = delimiter def update(self, **kwargs): for k, v in kwargs.items(): if isinstance(v, torch.Tensor): v = v.item() assert isinstance(v, (float, int)) self.meters[k].update(v) def __getattr__(self, attr): if attr in self.meters: return self.meters[attr] if attr in self.__dict__: return self.__dict__[attr] raise AttributeError(f"'{type(self).__name__}' object has no attribute '{attr}'") def __str__(self): loss_str = [] for name, meter in self.meters.items(): loss_str.append(f"{name}: {str(meter)}") return self.delimiter.join(loss_str) def synchronize_between_processes(self): for meter in self.meters.values(): meter.synchronize_between_processes() def add_meter(self, name, meter): self.meters[name] = meter def log_every(self, iterable, print_freq, header=None): i = 0 if not header: header = "" start_time = time.time() end = time.time() iter_time = SmoothedValue(fmt="{avg:.4f}") data_time = SmoothedValue(fmt="{avg:.4f}") space_fmt = ":" + str(len(str(len(iterable)))) + "d" if torch.cuda.is_available(): log_msg = self.delimiter.join( [ header, "[{0" + space_fmt + "}/{1}]", "eta: {eta}", "{meters}", "time: {time}", "data: {data}", "max mem: {memory:.0f}", ] ) else: log_msg = self.delimiter.join( [header, "[{0" + space_fmt + "}/{1}]", "eta: {eta}", "{meters}", "time: {time}", "data: {data}"] ) MB = 1024.0 * 1024.0 for obj in iterable: data_time.update(time.time() - end) yield obj iter_time.update(time.time() - end) if i % print_freq == 0 or i == len(iterable) - 1: eta_seconds = iter_time.global_avg * (len(iterable) - i) eta_string = str(datetime.timedelta(seconds=int(eta_seconds))) if torch.cuda.is_available(): print( log_msg.format( i, len(iterable), eta=eta_string, meters=str(self), time=str(iter_time), data=str(data_time), memory=torch.cuda.max_memory_allocated() / MB, ) ) else: print( log_msg.format( i, len(iterable), eta=eta_string, meters=str(self), time=str(iter_time), data=str(data_time) ) ) i += 1 end = time.time() total_time = time.time() - start_time total_time_str = str(datetime.timedelta(seconds=int(total_time))) print(f"{header} Total time: {total_time_str} ({total_time / len(iterable):.4f} s / it)") def collate_fn(batch): return tuple(zip(*batch)) def mkdir(path): try: os.makedirs(path) except OSError as e: if e.errno != errno.EEXIST: raise def setup_for_distributed(is_master): """ This function disables printing when not in master process """ import builtins as __builtin__ builtin_print = __builtin__.print def print(*args, **kwargs): force = kwargs.pop("force", False) if is_master or force: builtin_print(*args, **kwargs) __builtin__.print = print def is_dist_avail_and_initialized(): if not dist.is_available(): return False if not dist.is_initialized(): return False return True def get_world_size(): if not is_dist_avail_and_initialized(): return 1 return dist.get_world_size() def get_rank(): if not is_dist_avail_and_initialized(): return 0 return dist.get_rank() def is_main_process(): return get_rank() == 0 def save_on_master(*args, **kwargs): if is_main_process(): torch.save(*args, **kwargs) def init_distributed_mode(args): if "RANK" in os.environ and "WORLD_SIZE" in os.environ: args.rank = int(os.environ["RANK"]) args.world_size = int(os.environ["WORLD_SIZE"]) args.gpu = int(os.environ["LOCAL_RANK"]) elif "SLURM_PROCID" in os.environ: args.rank = int(os.environ["SLURM_PROCID"]) args.gpu = args.rank % torch.cuda.device_count() else: print("Not using distributed mode") args.distributed = False return args.distributed = True torch.cuda.set_device(args.gpu) args.dist_backend = "nccl" print(f"| distributed init (rank {args.rank}): {args.dist_url}", flush=True) torch.distributed.init_process_group( backend=args.dist_backend, init_method=args.dist_url, world_size=args.world_size, rank=args.rank ) torch.distributed.barrier() setup_for_distributed(args.rank == 0) vision-0.19.1/references/optical_flow/000077500000000000000000000000001466211133600177175ustar00rootroot00000000000000vision-0.19.1/references/optical_flow/README.md000066400000000000000000000046241466211133600212040ustar00rootroot00000000000000# Optical flow reference training scripts This folder contains reference training scripts for optical flow. They serve as a log of how to train specific models, so as to provide baseline training and evaluation scripts to quickly bootstrap research. ### RAFT Large The RAFT large model was trained on Flying Chairs and then on Flying Things. Both used 8 A100 GPUs and a batch size of 2 (so effective batch size is 16). The rest of the hyper-parameters are exactly the same as the original RAFT training recipe from https://github.com/princeton-vl/RAFT. The original recipe trains for 100000 updates (or steps) on each dataset - this corresponds to about 72 and 20 epochs on Chairs and Things respectively: ``` num_epochs = ceil(num_steps / number_of_steps_per_epoch) = ceil(num_steps / (num_samples / effective_batch_size)) ``` ``` torchrun --nproc_per_node 8 --nnodes 1 train.py \ --dataset-root $dataset_root \ --name $name_chairs \ --model raft_large \ --train-dataset chairs \ --batch-size 2 \ --lr 0.0004 \ --weight-decay 0.0001 \ --epochs 72 \ --output-dir $chairs_dir ``` ``` torchrun --nproc_per_node 8 --nnodes 1 train.py \ --dataset-root $dataset_root \ --name $name_things \ --model raft_large \ --train-dataset things \ --batch-size 2 \ --lr 0.000125 \ --weight-decay 0.0001 \ --epochs 20 \ --freeze-batch-norm \ --output-dir $things_dir\ --resume $chairs_dir/$name_chairs.pth ``` ### Evaluation ``` torchrun --nproc_per_node 1 --nnodes 1 train.py --val-dataset sintel --batch-size 1 --dataset-root $dataset_root --model raft_large --weights Raft_Large_Weights.C_T_SKHT_V2 ``` This should give an epe of about 1.3822 on the clean pass and 2.7161 on the final pass of Sintel-train. Results may vary slightly depending on the batch size and the number of GPUs. For the most accurate results use 1 GPU and `--batch-size 1`: ``` Sintel val clean epe: 1.3822 1px: 0.9028 3px: 0.9573 5px: 0.9697 per_image_epe: 1.3822 f1: 4.0248 Sintel val final epe: 2.7161 1px: 0.8528 3px: 0.9204 5px: 0.9392 per_image_epe: 2.7161 f1: 7.5964 ``` You can also evaluate on Kitti train: ``` torchrun --nproc_per_node 1 --nnodes 1 train.py --val-dataset kitti --batch-size 1 --dataset-root $dataset_root --model raft_large --weights Raft_Large_Weights.C_T_SKHT_V2 Kitti val epe: 4.7968 1px: 0.6388 3px: 0.8197 5px: 0.8661 per_image_epe: 4.5118 f1: 16.0679 ``` vision-0.19.1/references/optical_flow/presets.py000066400000000000000000000035641466211133600217660ustar00rootroot00000000000000import torch import transforms as T class OpticalFlowPresetEval(torch.nn.Module): def __init__(self): super().__init__() self.transforms = T.Compose( [ T.PILToTensor(), T.ConvertImageDtype(torch.float32), T.Normalize(mean=0.5, std=0.5), # map [0, 1] into [-1, 1] T.ValidateModelInput(), ] ) def forward(self, img1, img2, flow, valid): return self.transforms(img1, img2, flow, valid) class OpticalFlowPresetTrain(torch.nn.Module): def __init__( self, *, # RandomResizeAndCrop params crop_size, min_scale=-0.2, max_scale=0.5, stretch_prob=0.8, # AsymmetricColorJitter params brightness=0.4, contrast=0.4, saturation=0.4, hue=0.5 / 3.14, # Random[H,V]Flip params asymmetric_jitter_prob=0.2, do_flip=True, ): super().__init__() transforms = [ T.PILToTensor(), T.AsymmetricColorJitter( brightness=brightness, contrast=contrast, saturation=saturation, hue=hue, p=asymmetric_jitter_prob ), T.RandomResizeAndCrop( crop_size=crop_size, min_scale=min_scale, max_scale=max_scale, stretch_prob=stretch_prob ), ] if do_flip: transforms += [T.RandomHorizontalFlip(p=0.5), T.RandomVerticalFlip(p=0.1)] transforms += [ T.ConvertImageDtype(torch.float32), T.Normalize(mean=0.5, std=0.5), # map [0, 1] into [-1, 1] T.RandomErasing(max_erase=2), T.MakeValidFlowMask(), T.ValidateModelInput(), ] self.transforms = T.Compose(transforms) def forward(self, img1, img2, flow, valid): return self.transforms(img1, img2, flow, valid) vision-0.19.1/references/optical_flow/train.py000066400000000000000000000362421466211133600214150ustar00rootroot00000000000000import argparse import warnings from math import ceil from pathlib import Path import torch import torchvision.models.optical_flow import utils from presets import OpticalFlowPresetEval, OpticalFlowPresetTrain from torchvision.datasets import FlyingChairs, FlyingThings3D, HD1K, KittiFlow, Sintel def get_train_dataset(stage, dataset_root): if stage == "chairs": transforms = OpticalFlowPresetTrain(crop_size=(368, 496), min_scale=0.1, max_scale=1.0, do_flip=True) return FlyingChairs(root=dataset_root, split="train", transforms=transforms) elif stage == "things": transforms = OpticalFlowPresetTrain(crop_size=(400, 720), min_scale=-0.4, max_scale=0.8, do_flip=True) return FlyingThings3D(root=dataset_root, split="train", pass_name="both", transforms=transforms) elif stage == "sintel_SKH": # S + K + H as from paper crop_size = (368, 768) transforms = OpticalFlowPresetTrain(crop_size=crop_size, min_scale=-0.2, max_scale=0.6, do_flip=True) things_clean = FlyingThings3D(root=dataset_root, split="train", pass_name="clean", transforms=transforms) sintel = Sintel(root=dataset_root, split="train", pass_name="both", transforms=transforms) kitti_transforms = OpticalFlowPresetTrain(crop_size=crop_size, min_scale=-0.3, max_scale=0.5, do_flip=True) kitti = KittiFlow(root=dataset_root, split="train", transforms=kitti_transforms) hd1k_transforms = OpticalFlowPresetTrain(crop_size=crop_size, min_scale=-0.5, max_scale=0.2, do_flip=True) hd1k = HD1K(root=dataset_root, split="train", transforms=hd1k_transforms) # As future improvement, we could probably be using a distributed sampler here # The distribution is S(.71), T(.135), K(.135), H(.02) return 100 * sintel + 200 * kitti + 5 * hd1k + things_clean elif stage == "kitti": transforms = OpticalFlowPresetTrain( # resize and crop params crop_size=(288, 960), min_scale=-0.2, max_scale=0.4, stretch_prob=0, # flip params do_flip=False, # jitter params brightness=0.3, contrast=0.3, saturation=0.3, hue=0.3 / 3.14, asymmetric_jitter_prob=0, ) return KittiFlow(root=dataset_root, split="train", transforms=transforms) else: raise ValueError(f"Unknown stage {stage}") @torch.no_grad() def _evaluate(model, args, val_dataset, *, padder_mode, num_flow_updates=None, batch_size=None, header=None): """Helper function to compute various metrics (epe, etc.) for a model on a given dataset. We process as many samples as possible with ddp, and process the rest on a single worker. """ batch_size = batch_size or args.batch_size device = torch.device(args.device) model.eval() if args.distributed: sampler = torch.utils.data.distributed.DistributedSampler(val_dataset, shuffle=False, drop_last=True) else: sampler = torch.utils.data.SequentialSampler(val_dataset) val_loader = torch.utils.data.DataLoader( val_dataset, sampler=sampler, batch_size=batch_size, pin_memory=True, num_workers=args.workers, ) num_flow_updates = num_flow_updates or args.num_flow_updates def inner_loop(blob): if blob[0].dim() == 3: # input is not batched, so we add an extra dim for consistency blob = [x[None, :, :, :] if x is not None else None for x in blob] image1, image2, flow_gt = blob[:3] valid_flow_mask = None if len(blob) == 3 else blob[-1] image1, image2 = image1.to(device), image2.to(device) padder = utils.InputPadder(image1.shape, mode=padder_mode) image1, image2 = padder.pad(image1, image2) flow_predictions = model(image1, image2, num_flow_updates=num_flow_updates) flow_pred = flow_predictions[-1] flow_pred = padder.unpad(flow_pred).cpu() metrics, num_pixels_tot = utils.compute_metrics(flow_pred, flow_gt, valid_flow_mask) # We compute per-pixel epe (epe) and per-image epe (called f1-epe in RAFT paper). # per-pixel epe: average epe of all pixels of all images # per-image epe: average epe on each image independently, then average over images for name in ("epe", "1px", "3px", "5px", "f1"): # f1 is called f1-all in paper logger.meters[name].update(metrics[name], n=num_pixels_tot) logger.meters["per_image_epe"].update(metrics["epe"], n=batch_size) logger = utils.MetricLogger() for meter_name in ("epe", "1px", "3px", "5px", "per_image_epe", "f1"): logger.add_meter(meter_name, fmt="{global_avg:.4f}") num_processed_samples = 0 for blob in logger.log_every(val_loader, header=header, print_freq=None): inner_loop(blob) num_processed_samples += blob[0].shape[0] # batch size if args.distributed: num_processed_samples = utils.reduce_across_processes(num_processed_samples) print( f"Batch-processed {num_processed_samples} / {len(val_dataset)} samples. " "Going to process the remaining samples individually, if any." ) if args.rank == 0: # we only need to process the rest on a single worker for i in range(num_processed_samples, len(val_dataset)): inner_loop(val_dataset[i]) logger.synchronize_between_processes() print(header, logger) def evaluate(model, args): val_datasets = args.val_dataset or [] if args.weights and args.test_only: weights = torchvision.models.get_weight(args.weights) trans = weights.transforms() def preprocessing(img1, img2, flow, valid_flow_mask): img1, img2 = trans(img1, img2) if flow is not None and not isinstance(flow, torch.Tensor): flow = torch.from_numpy(flow) if valid_flow_mask is not None and not isinstance(valid_flow_mask, torch.Tensor): valid_flow_mask = torch.from_numpy(valid_flow_mask) return img1, img2, flow, valid_flow_mask else: preprocessing = OpticalFlowPresetEval() for name in val_datasets: if name == "kitti": # Kitti has different image sizes, so we need to individually pad them, we can't batch. # see comment in InputPadder if args.batch_size != 1 and (not args.distributed or args.rank == 0): warnings.warn( f"Batch-size={args.batch_size} was passed. For technical reasons, evaluating on Kitti can only be done with a batch-size of 1." ) val_dataset = KittiFlow(root=args.dataset_root, split="train", transforms=preprocessing) _evaluate( model, args, val_dataset, num_flow_updates=24, padder_mode="kitti", header="Kitti val", batch_size=1 ) elif name == "sintel": for pass_name in ("clean", "final"): val_dataset = Sintel( root=args.dataset_root, split="train", pass_name=pass_name, transforms=preprocessing ) _evaluate( model, args, val_dataset, num_flow_updates=32, padder_mode="sintel", header=f"Sintel val {pass_name}", ) else: warnings.warn(f"Can't validate on {val_dataset}, skipping.") def train_one_epoch(model, optimizer, scheduler, train_loader, logger, args): device = torch.device(args.device) for data_blob in logger.log_every(train_loader): optimizer.zero_grad() image1, image2, flow_gt, valid_flow_mask = (x.to(device) for x in data_blob) flow_predictions = model(image1, image2, num_flow_updates=args.num_flow_updates) loss = utils.sequence_loss(flow_predictions, flow_gt, valid_flow_mask, args.gamma) metrics, _ = utils.compute_metrics(flow_predictions[-1], flow_gt, valid_flow_mask) metrics.pop("f1") logger.update(loss=loss, **metrics) loss.backward() torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1) optimizer.step() scheduler.step() def main(args): utils.setup_ddp(args) args.test_only = args.train_dataset is None if args.distributed and args.device == "cpu": raise ValueError("The device must be cuda if we want to run in distributed mode using torchrun") device = torch.device(args.device) if args.use_deterministic_algorithms: torch.backends.cudnn.benchmark = False torch.use_deterministic_algorithms(True) else: torch.backends.cudnn.benchmark = True model = torchvision.models.get_model(args.model, weights=args.weights) if args.distributed: model = model.to(args.local_rank) model = torch.nn.parallel.DistributedDataParallel(model, device_ids=[args.local_rank]) model_without_ddp = model.module else: model.to(device) model_without_ddp = model if args.resume is not None: checkpoint = torch.load(args.resume, map_location="cpu", weights_only=True) model_without_ddp.load_state_dict(checkpoint["model"]) if args.test_only: # Set deterministic CUDNN algorithms, since they can affect epe a fair bit. torch.backends.cudnn.benchmark = False torch.backends.cudnn.deterministic = True evaluate(model, args) return print(f"Parameter Count: {sum(p.numel() for p in model.parameters() if p.requires_grad)}") train_dataset = get_train_dataset(args.train_dataset, args.dataset_root) optimizer = torch.optim.AdamW(model.parameters(), lr=args.lr, weight_decay=args.weight_decay, eps=args.adamw_eps) scheduler = torch.optim.lr_scheduler.OneCycleLR( optimizer=optimizer, max_lr=args.lr, epochs=args.epochs, steps_per_epoch=ceil(len(train_dataset) / (args.world_size * args.batch_size)), pct_start=0.05, cycle_momentum=False, anneal_strategy="linear", ) if args.resume is not None: optimizer.load_state_dict(checkpoint["optimizer"]) scheduler.load_state_dict(checkpoint["scheduler"]) args.start_epoch = checkpoint["epoch"] + 1 else: args.start_epoch = 0 torch.backends.cudnn.benchmark = True model.train() if args.freeze_batch_norm: utils.freeze_batch_norm(model.module) if args.distributed: sampler = torch.utils.data.distributed.DistributedSampler(train_dataset, shuffle=True, drop_last=True) else: sampler = torch.utils.data.RandomSampler(train_dataset) train_loader = torch.utils.data.DataLoader( train_dataset, sampler=sampler, batch_size=args.batch_size, pin_memory=True, num_workers=args.workers, ) logger = utils.MetricLogger() done = False for epoch in range(args.start_epoch, args.epochs): print(f"EPOCH {epoch}") if args.distributed: # needed on distributed mode, otherwise the data loading order would be the same for all epochs sampler.set_epoch(epoch) train_one_epoch( model=model, optimizer=optimizer, scheduler=scheduler, train_loader=train_loader, logger=logger, args=args, ) # Note: we don't sync the SmoothedValues across processes, so the printed metrics are just those of rank 0 print(f"Epoch {epoch} done. ", logger) if not args.distributed or args.rank == 0: checkpoint = { "model": model_without_ddp.state_dict(), "optimizer": optimizer.state_dict(), "scheduler": scheduler.state_dict(), "epoch": epoch, "args": args, } torch.save(checkpoint, Path(args.output_dir) / f"{args.name}_{epoch}.pth") torch.save(checkpoint, Path(args.output_dir) / f"{args.name}.pth") if epoch % args.val_freq == 0 or done: evaluate(model, args) model.train() if args.freeze_batch_norm: utils.freeze_batch_norm(model.module) def get_args_parser(add_help=True): parser = argparse.ArgumentParser(add_help=add_help, description="Train or evaluate an optical-flow model.") parser.add_argument( "--name", default="raft", type=str, help="The name of the experiment - determines the name of the files where weights are saved.", ) parser.add_argument("--output-dir", default=".", type=str, help="Output dir where checkpoints will be stored.") parser.add_argument( "--resume", type=str, help="A path to previously saved weights. Used to re-start training from, or evaluate a pre-saved model.", ) parser.add_argument("--workers", type=int, default=12, help="Number of workers for the data loading part.") parser.add_argument( "--train-dataset", type=str, help="The dataset to use for training. If not passed, only validation is performed (and you probably want to pass --resume).", ) parser.add_argument("--val-dataset", type=str, nargs="+", help="The dataset(s) to use for validation.") parser.add_argument("--val-freq", type=int, default=2, help="Validate every X epochs") parser.add_argument("--epochs", type=int, default=20, help="The total number of epochs to train.") parser.add_argument("--batch-size", type=int, default=2) parser.add_argument("--lr", type=float, default=0.00002, help="Learning rate for AdamW optimizer") parser.add_argument("--weight-decay", type=float, default=0.00005, help="Weight decay for AdamW optimizer") parser.add_argument("--adamw-eps", type=float, default=1e-8, help="eps value for AdamW optimizer") parser.add_argument( "--freeze-batch-norm", action="store_true", help="Set BatchNorm modules of the model in eval mode." ) parser.add_argument( "--model", type=str, default="raft_large", help="The name of the model to use - either raft_large or raft_small" ) # TODO: resume and weights should be in an exclusive arg group parser.add_argument( "--num_flow_updates", type=int, default=12, help="number of updates (or 'iters') in the update operator of the model.", ) parser.add_argument("--gamma", type=float, default=0.8, help="exponential weighting for loss. Must be < 1.") parser.add_argument("--dist-url", default="env://", help="URL used to set up distributed training") parser.add_argument( "--dataset-root", help="Root folder where the datasets are stored. Will be passed as the 'root' parameter of the datasets.", required=True, ) parser.add_argument("--weights", default=None, type=str, help="the weights enum name to load.") parser.add_argument("--device", default="cuda", type=str, help="device (Use cuda or cpu, Default: cuda)") parser.add_argument( "--use-deterministic-algorithms", action="store_true", help="Forces the use of deterministic algorithms only." ) return parser if __name__ == "__main__": args = get_args_parser().parse_args() Path(args.output_dir).mkdir(exist_ok=True) main(args) vision-0.19.1/references/optical_flow/transforms.py000066400000000000000000000272551466211133600225020ustar00rootroot00000000000000import torch import torchvision.transforms as T import torchvision.transforms.functional as F class ValidateModelInput(torch.nn.Module): # Pass-through transform that checks the shape and dtypes to make sure the model gets what it expects def forward(self, img1, img2, flow, valid_flow_mask): if not all(isinstance(arg, torch.Tensor) for arg in (img1, img2, flow, valid_flow_mask) if arg is not None): raise TypeError("This method expects all input arguments to be of type torch.Tensor.") if not all(arg.dtype == torch.float32 for arg in (img1, img2, flow) if arg is not None): raise TypeError("This method expects the tensors img1, img2 and flow of be of dtype torch.float32.") if img1.shape != img2.shape: raise ValueError("img1 and img2 should have the same shape.") h, w = img1.shape[-2:] if flow is not None and flow.shape != (2, h, w): raise ValueError(f"flow.shape should be (2, {h}, {w}) instead of {flow.shape}") if valid_flow_mask is not None: if valid_flow_mask.shape != (h, w): raise ValueError(f"valid_flow_mask.shape should be ({h}, {w}) instead of {valid_flow_mask.shape}") if valid_flow_mask.dtype != torch.bool: raise TypeError("valid_flow_mask should be of dtype torch.bool instead of {valid_flow_mask.dtype}") return img1, img2, flow, valid_flow_mask class MakeValidFlowMask(torch.nn.Module): # This transform generates a valid_flow_mask if it doesn't exist. # The flow is considered valid if ||flow||_inf < threshold # This is a noop for Kitti and HD1K which already come with a built-in flow mask. def __init__(self, threshold=1000): super().__init__() self.threshold = threshold def forward(self, img1, img2, flow, valid_flow_mask): if flow is not None and valid_flow_mask is None: valid_flow_mask = (flow.abs() < self.threshold).all(axis=0) return img1, img2, flow, valid_flow_mask class ConvertImageDtype(torch.nn.Module): def __init__(self, dtype): super().__init__() self.dtype = dtype def forward(self, img1, img2, flow, valid_flow_mask): img1 = F.convert_image_dtype(img1, dtype=self.dtype) img2 = F.convert_image_dtype(img2, dtype=self.dtype) img1 = img1.contiguous() img2 = img2.contiguous() return img1, img2, flow, valid_flow_mask class Normalize(torch.nn.Module): def __init__(self, mean, std): super().__init__() self.mean = mean self.std = std def forward(self, img1, img2, flow, valid_flow_mask): img1 = F.normalize(img1, mean=self.mean, std=self.std) img2 = F.normalize(img2, mean=self.mean, std=self.std) return img1, img2, flow, valid_flow_mask class PILToTensor(torch.nn.Module): # Converts all inputs to tensors # Technically the flow and the valid mask are numpy arrays, not PIL images, but we keep that naming # for consistency with the rest, e.g. the segmentation reference. def forward(self, img1, img2, flow, valid_flow_mask): img1 = F.pil_to_tensor(img1) img2 = F.pil_to_tensor(img2) if flow is not None: flow = torch.from_numpy(flow) if valid_flow_mask is not None: valid_flow_mask = torch.from_numpy(valid_flow_mask) return img1, img2, flow, valid_flow_mask class AsymmetricColorJitter(T.ColorJitter): # p determines the proba of doing asymmertric vs symmetric color jittering def __init__(self, brightness=0, contrast=0, saturation=0, hue=0, p=0.2): super().__init__(brightness=brightness, contrast=contrast, saturation=saturation, hue=hue) self.p = p def forward(self, img1, img2, flow, valid_flow_mask): if torch.rand(1) < self.p: # asymmetric: different transform for img1 and img2 img1 = super().forward(img1) img2 = super().forward(img2) else: # symmetric: same transform for img1 and img2 batch = torch.stack([img1, img2]) batch = super().forward(batch) img1, img2 = batch[0], batch[1] return img1, img2, flow, valid_flow_mask class RandomErasing(T.RandomErasing): # This only erases img2, and with an extra max_erase param # This max_erase is needed because in the RAFT training ref does: # 0 erasing with .5 proba # 1 erase with .25 proba # 2 erase with .25 proba # and there's no accurate way to achieve this otherwise. def __init__(self, p=0.5, scale=(0.02, 0.33), ratio=(0.3, 3.3), value=0, inplace=False, max_erase=1): super().__init__(p=p, scale=scale, ratio=ratio, value=value, inplace=inplace) self.max_erase = max_erase if self.max_erase <= 0: raise ValueError("max_raise should be greater than 0") def forward(self, img1, img2, flow, valid_flow_mask): if torch.rand(1) > self.p: return img1, img2, flow, valid_flow_mask for _ in range(torch.randint(self.max_erase, size=(1,)).item()): x, y, h, w, v = self.get_params(img2, scale=self.scale, ratio=self.ratio, value=[self.value]) img2 = F.erase(img2, x, y, h, w, v, self.inplace) return img1, img2, flow, valid_flow_mask class RandomHorizontalFlip(T.RandomHorizontalFlip): def forward(self, img1, img2, flow, valid_flow_mask): if torch.rand(1) > self.p: return img1, img2, flow, valid_flow_mask img1 = F.hflip(img1) img2 = F.hflip(img2) flow = F.hflip(flow) * torch.tensor([-1, 1])[:, None, None] if valid_flow_mask is not None: valid_flow_mask = F.hflip(valid_flow_mask) return img1, img2, flow, valid_flow_mask class RandomVerticalFlip(T.RandomVerticalFlip): def forward(self, img1, img2, flow, valid_flow_mask): if torch.rand(1) > self.p: return img1, img2, flow, valid_flow_mask img1 = F.vflip(img1) img2 = F.vflip(img2) flow = F.vflip(flow) * torch.tensor([1, -1])[:, None, None] if valid_flow_mask is not None: valid_flow_mask = F.vflip(valid_flow_mask) return img1, img2, flow, valid_flow_mask class RandomResizeAndCrop(torch.nn.Module): # This transform will resize the input with a given proba, and then crop it. # These are the reversed operations of the built-in RandomResizedCrop, # although the order of the operations doesn't matter too much: resizing a # crop would give the same result as cropping a resized image, up to # interpolation artifact at the borders of the output. # # The reason we don't rely on RandomResizedCrop is because of a significant # difference in the parametrization of both transforms, in particular, # because of the way the random parameters are sampled in both transforms, # which leads to fairly different results (and different epe). For more details see # https://github.com/pytorch/vision/pull/5026/files#r762932579 def __init__(self, crop_size, min_scale=-0.2, max_scale=0.5, stretch_prob=0.8): super().__init__() self.crop_size = crop_size self.min_scale = min_scale self.max_scale = max_scale self.stretch_prob = stretch_prob self.resize_prob = 0.8 self.max_stretch = 0.2 def forward(self, img1, img2, flow, valid_flow_mask): # randomly sample scale h, w = img1.shape[-2:] # Note: in original code, they use + 1 instead of + 8 for sparse datasets (e.g. Kitti) # It shouldn't matter much min_scale = max((self.crop_size[0] + 8) / h, (self.crop_size[1] + 8) / w) scale = 2 ** torch.empty(1, dtype=torch.float32).uniform_(self.min_scale, self.max_scale).item() scale_x = scale scale_y = scale if torch.rand(1) < self.stretch_prob: scale_x *= 2 ** torch.empty(1, dtype=torch.float32).uniform_(-self.max_stretch, self.max_stretch).item() scale_y *= 2 ** torch.empty(1, dtype=torch.float32).uniform_(-self.max_stretch, self.max_stretch).item() scale_x = max(scale_x, min_scale) scale_y = max(scale_y, min_scale) new_h, new_w = round(h * scale_y), round(w * scale_x) if torch.rand(1).item() < self.resize_prob: # rescale the images # We hard-code antialias=False to preserve results after we changed # its default from None to True (see # https://github.com/pytorch/vision/pull/7160) # TODO: we could re-train the OF models with antialias=True? img1 = F.resize(img1, size=(new_h, new_w), antialias=False) img2 = F.resize(img2, size=(new_h, new_w), antialias=False) if valid_flow_mask is None: flow = F.resize(flow, size=(new_h, new_w)) flow = flow * torch.tensor([scale_x, scale_y])[:, None, None] else: flow, valid_flow_mask = self._resize_sparse_flow( flow, valid_flow_mask, scale_x=scale_x, scale_y=scale_y ) # Note: For sparse datasets (Kitti), the original code uses a "margin" # See e.g. https://github.com/princeton-vl/RAFT/blob/master/core/utils/augmentor.py#L220:L220 # We don't, not sure if it matters much y0 = torch.randint(0, img1.shape[1] - self.crop_size[0], size=(1,)).item() x0 = torch.randint(0, img1.shape[2] - self.crop_size[1], size=(1,)).item() img1 = F.crop(img1, y0, x0, self.crop_size[0], self.crop_size[1]) img2 = F.crop(img2, y0, x0, self.crop_size[0], self.crop_size[1]) flow = F.crop(flow, y0, x0, self.crop_size[0], self.crop_size[1]) if valid_flow_mask is not None: valid_flow_mask = F.crop(valid_flow_mask, y0, x0, self.crop_size[0], self.crop_size[1]) return img1, img2, flow, valid_flow_mask def _resize_sparse_flow(self, flow, valid_flow_mask, scale_x=1.0, scale_y=1.0): # This resizes both the flow and the valid_flow_mask mask (which is assumed to be reasonably sparse) # There are as-many non-zero values in the original flow as in the resized flow (up to OOB) # So for example if scale_x = scale_y = 2, the sparsity of the output flow is multiplied by 4 h, w = flow.shape[-2:] h_new = int(round(h * scale_y)) w_new = int(round(w * scale_x)) flow_new = torch.zeros(size=[2, h_new, w_new], dtype=flow.dtype) valid_new = torch.zeros(size=[h_new, w_new], dtype=valid_flow_mask.dtype) jj, ii = torch.meshgrid(torch.arange(w), torch.arange(h), indexing="xy") ii_valid, jj_valid = ii[valid_flow_mask], jj[valid_flow_mask] ii_valid_new = torch.round(ii_valid.to(float) * scale_y).to(torch.long) jj_valid_new = torch.round(jj_valid.to(float) * scale_x).to(torch.long) within_bounds_mask = (0 <= ii_valid_new) & (ii_valid_new < h_new) & (0 <= jj_valid_new) & (jj_valid_new < w_new) ii_valid = ii_valid[within_bounds_mask] jj_valid = jj_valid[within_bounds_mask] ii_valid_new = ii_valid_new[within_bounds_mask] jj_valid_new = jj_valid_new[within_bounds_mask] valid_flow_new = flow[:, ii_valid, jj_valid] valid_flow_new[0] *= scale_x valid_flow_new[1] *= scale_y flow_new[:, ii_valid_new, jj_valid_new] = valid_flow_new valid_new[ii_valid_new, jj_valid_new] = 1 return flow_new, valid_new class Compose(torch.nn.Module): def __init__(self, transforms): super().__init__() self.transforms = transforms def forward(self, img1, img2, flow, valid_flow_mask): for t in self.transforms: img1, img2, flow, valid_flow_mask = t(img1, img2, flow, valid_flow_mask) return img1, img2, flow, valid_flow_mask vision-0.19.1/references/optical_flow/utils.py000066400000000000000000000226111466211133600214330ustar00rootroot00000000000000import datetime import os import time from collections import defaultdict, deque import torch import torch.distributed as dist import torch.nn.functional as F class SmoothedValue: """Track a series of values and provide access to smoothed values over a window or the global series average. """ def __init__(self, window_size=20, fmt="{median:.4f} ({global_avg:.4f})"): self.deque = deque(maxlen=window_size) self.total = 0.0 self.count = 0 self.fmt = fmt def update(self, value, n=1): self.deque.append(value) self.count += n self.total += value * n def synchronize_between_processes(self): """ Warning: does not synchronize the deque! """ t = reduce_across_processes([self.count, self.total]) t = t.tolist() self.count = int(t[0]) self.total = t[1] @property def median(self): d = torch.tensor(list(self.deque)) return d.median().item() @property def avg(self): d = torch.tensor(list(self.deque), dtype=torch.float32) return d.mean().item() @property def global_avg(self): return self.total / self.count @property def max(self): return max(self.deque) @property def value(self): return self.deque[-1] def __str__(self): return self.fmt.format( median=self.median, avg=self.avg, global_avg=self.global_avg, max=self.max, value=self.value ) class MetricLogger: def __init__(self, delimiter="\t"): self.meters = defaultdict(SmoothedValue) self.delimiter = delimiter def update(self, **kwargs): for k, v in kwargs.items(): if isinstance(v, torch.Tensor): v = v.item() if not isinstance(v, (float, int)): raise TypeError( f"This method expects the value of the input arguments to be of type float or int, instead got {type(v)}" ) self.meters[k].update(v) def __getattr__(self, attr): if attr in self.meters: return self.meters[attr] if attr in self.__dict__: return self.__dict__[attr] raise AttributeError(f"'{type(self).__name__}' object has no attribute '{attr}'") def __str__(self): loss_str = [] for name, meter in self.meters.items(): loss_str.append(f"{name}: {str(meter)}") return self.delimiter.join(loss_str) def synchronize_between_processes(self): for meter in self.meters.values(): meter.synchronize_between_processes() def add_meter(self, name, **kwargs): self.meters[name] = SmoothedValue(**kwargs) def log_every(self, iterable, print_freq=5, header=None): i = 0 if not header: header = "" start_time = time.time() end = time.time() iter_time = SmoothedValue(fmt="{avg:.4f}") data_time = SmoothedValue(fmt="{avg:.4f}") space_fmt = ":" + str(len(str(len(iterable)))) + "d" if torch.cuda.is_available(): log_msg = self.delimiter.join( [ header, "[{0" + space_fmt + "}/{1}]", "eta: {eta}", "{meters}", "time: {time}", "data: {data}", "max mem: {memory:.0f}", ] ) else: log_msg = self.delimiter.join( [header, "[{0" + space_fmt + "}/{1}]", "eta: {eta}", "{meters}", "time: {time}", "data: {data}"] ) MB = 1024.0 * 1024.0 for obj in iterable: data_time.update(time.time() - end) yield obj iter_time.update(time.time() - end) if print_freq is not None and i % print_freq == 0: eta_seconds = iter_time.global_avg * (len(iterable) - i) eta_string = str(datetime.timedelta(seconds=int(eta_seconds))) if torch.cuda.is_available(): print( log_msg.format( i, len(iterable), eta=eta_string, meters=str(self), time=str(iter_time), data=str(data_time), memory=torch.cuda.max_memory_allocated() / MB, ) ) else: print( log_msg.format( i, len(iterable), eta=eta_string, meters=str(self), time=str(iter_time), data=str(data_time) ) ) i += 1 end = time.time() total_time = time.time() - start_time total_time_str = str(datetime.timedelta(seconds=int(total_time))) print(f"{header} Total time: {total_time_str}") def compute_metrics(flow_pred, flow_gt, valid_flow_mask=None): epe = ((flow_pred - flow_gt) ** 2).sum(dim=1).sqrt() flow_norm = (flow_gt**2).sum(dim=1).sqrt() if valid_flow_mask is not None: epe = epe[valid_flow_mask] flow_norm = flow_norm[valid_flow_mask] relative_epe = epe / flow_norm metrics = { "epe": epe.mean().item(), "1px": (epe < 1).float().mean().item(), "3px": (epe < 3).float().mean().item(), "5px": (epe < 5).float().mean().item(), "f1": ((epe > 3) & (relative_epe > 0.05)).float().mean().item() * 100, } return metrics, epe.numel() def sequence_loss(flow_preds, flow_gt, valid_flow_mask, gamma=0.8, max_flow=400): """Loss function defined over sequence of flow predictions""" if gamma > 1: raise ValueError(f"Gamma should be < 1, got {gamma}.") # exclude invalid pixels and extremely large diplacements flow_norm = torch.sum(flow_gt**2, dim=1).sqrt() valid_flow_mask = valid_flow_mask & (flow_norm < max_flow) valid_flow_mask = valid_flow_mask[:, None, :, :] flow_preds = torch.stack(flow_preds) # shape = (num_flow_updates, batch_size, 2, H, W) abs_diff = (flow_preds - flow_gt).abs() abs_diff = (abs_diff * valid_flow_mask).mean(axis=(1, 2, 3, 4)) num_predictions = flow_preds.shape[0] weights = gamma ** torch.arange(num_predictions - 1, -1, -1).to(flow_gt.device) flow_loss = (abs_diff * weights).sum() return flow_loss class InputPadder: """Pads images such that dimensions are divisible by 8""" # TODO: Ideally, this should be part of the eval transforms preset, instead # of being part of the validation code. It's not obvious what a good # solution would be, because we need to unpad the predicted flows according # to the input images' size, and in some datasets (Kitti) images can have # variable sizes. def __init__(self, dims, mode="sintel"): self.ht, self.wd = dims[-2:] pad_ht = (((self.ht // 8) + 1) * 8 - self.ht) % 8 pad_wd = (((self.wd // 8) + 1) * 8 - self.wd) % 8 if mode == "sintel": self._pad = [pad_wd // 2, pad_wd - pad_wd // 2, pad_ht // 2, pad_ht - pad_ht // 2] else: self._pad = [pad_wd // 2, pad_wd - pad_wd // 2, 0, pad_ht] def pad(self, *inputs): return [F.pad(x, self._pad, mode="replicate") for x in inputs] def unpad(self, x): ht, wd = x.shape[-2:] c = [self._pad[2], ht - self._pad[3], self._pad[0], wd - self._pad[1]] return x[..., c[0] : c[1], c[2] : c[3]] def _redefine_print(is_main): """disables printing when not in main process""" import builtins as __builtin__ builtin_print = __builtin__.print def print(*args, **kwargs): force = kwargs.pop("force", False) if is_main or force: builtin_print(*args, **kwargs) __builtin__.print = print def setup_ddp(args): # Set the local_rank, rank, and world_size values as args fields # This is done differently depending on how we're running the script. We # currently support either torchrun or the custom run_with_submitit.py # If you're confused (like I was), this might help a bit # https://discuss.pytorch.org/t/what-is-the-difference-between-rank-and-local-rank/61940/2 if all(key in os.environ for key in ("LOCAL_RANK", "RANK", "WORLD_SIZE")): # if we're here, the script was called with torchrun. Otherwise, # these args will be set already by the run_with_submitit script args.local_rank = int(os.environ["LOCAL_RANK"]) args.rank = int(os.environ["RANK"]) args.world_size = int(os.environ["WORLD_SIZE"]) elif "gpu" in args: # if we're here, the script was called by run_with_submitit.py args.local_rank = args.gpu else: print("Not using distributed mode!") args.distributed = False args.world_size = 1 return args.distributed = True _redefine_print(is_main=(args.rank == 0)) torch.cuda.set_device(args.local_rank) dist.init_process_group( backend="nccl", rank=args.rank, world_size=args.world_size, init_method=args.dist_url, ) torch.distributed.barrier() def reduce_across_processes(val): t = torch.tensor(val, device="cuda") dist.barrier() dist.all_reduce(t) return t def freeze_batch_norm(model): for m in model.modules(): if isinstance(m, torch.nn.BatchNorm2d): m.eval() vision-0.19.1/references/segmentation/000077500000000000000000000000001466211133600177325ustar00rootroot00000000000000vision-0.19.1/references/segmentation/README.md000066400000000000000000000030501466211133600212070ustar00rootroot00000000000000# Semantic segmentation reference training scripts This folder contains reference training scripts for semantic segmentation. They serve as a log of how to train specific models and provide baseline training and evaluation scripts to quickly bootstrap research. All models have been trained on 8x V100 GPUs. You must modify the following flags: `--data-path=/path/to/dataset` `--nproc_per_node=` ## fcn_resnet50 ``` torchrun --nproc_per_node=8 train.py --lr 0.02 --dataset coco -b 4 --model fcn_resnet50 --aux-loss --weights-backbone ResNet50_Weights.IMAGENET1K_V1 ``` ## fcn_resnet101 ``` torchrun --nproc_per_node=8 train.py --lr 0.02 --dataset coco -b 4 --model fcn_resnet101 --aux-loss --weights-backbone ResNet101_Weights.IMAGENET1K_V1 ``` ## deeplabv3_resnet50 ``` torchrun --nproc_per_node=8 train.py --lr 0.02 --dataset coco -b 4 --model deeplabv3_resnet50 --aux-loss --weights-backbone ResNet50_Weights.IMAGENET1K_V1 ``` ## deeplabv3_resnet101 ``` torchrun --nproc_per_node=8 train.py --lr 0.02 --dataset coco -b 4 --model deeplabv3_resnet101 --aux-loss --weights-backbone ResNet101_Weights.IMAGENET1K_V1 ``` ## deeplabv3_mobilenet_v3_large ``` torchrun --nproc_per_node=8 train.py --dataset coco -b 4 --model deeplabv3_mobilenet_v3_large --aux-loss --wd 0.000001 --weights-backbone MobileNet_V3_Large_Weights.IMAGENET1K_V1 ``` ## lraspp_mobilenet_v3_large ``` torchrun --nproc_per_node=8 train.py --dataset coco -b 4 --model lraspp_mobilenet_v3_large --wd 0.000001 --weights-backbone MobileNet_V3_Large_Weights.IMAGENET1K_V1 ``` vision-0.19.1/references/segmentation/coco_utils.py000066400000000000000000000103451466211133600224520ustar00rootroot00000000000000import copy import os import torch import torch.utils.data import torchvision from PIL import Image from pycocotools import mask as coco_mask from transforms import Compose class FilterAndRemapCocoCategories: def __init__(self, categories, remap=True): self.categories = categories self.remap = remap def __call__(self, image, anno): anno = [obj for obj in anno if obj["category_id"] in self.categories] if not self.remap: return image, anno anno = copy.deepcopy(anno) for obj in anno: obj["category_id"] = self.categories.index(obj["category_id"]) return image, anno def convert_coco_poly_to_mask(segmentations, height, width): masks = [] for polygons in segmentations: rles = coco_mask.frPyObjects(polygons, height, width) mask = coco_mask.decode(rles) if len(mask.shape) < 3: mask = mask[..., None] mask = torch.as_tensor(mask, dtype=torch.uint8) mask = mask.any(dim=2) masks.append(mask) if masks: masks = torch.stack(masks, dim=0) else: masks = torch.zeros((0, height, width), dtype=torch.uint8) return masks class ConvertCocoPolysToMask: def __call__(self, image, anno): w, h = image.size segmentations = [obj["segmentation"] for obj in anno] cats = [obj["category_id"] for obj in anno] if segmentations: masks = convert_coco_poly_to_mask(segmentations, h, w) cats = torch.as_tensor(cats, dtype=masks.dtype) # merge all instance masks into a single segmentation map # with its corresponding categories target, _ = (masks * cats[:, None, None]).max(dim=0) # discard overlapping instances target[masks.sum(0) > 1] = 255 else: target = torch.zeros((h, w), dtype=torch.uint8) target = Image.fromarray(target.numpy()) return image, target def _coco_remove_images_without_annotations(dataset, cat_list=None): def _has_valid_annotation(anno): # if it's empty, there is no annotation if len(anno) == 0: return False # if more than 1k pixels occupied in the image return sum(obj["area"] for obj in anno) > 1000 ids = [] for ds_idx, img_id in enumerate(dataset.ids): ann_ids = dataset.coco.getAnnIds(imgIds=img_id, iscrowd=None) anno = dataset.coco.loadAnns(ann_ids) if cat_list: anno = [obj for obj in anno if obj["category_id"] in cat_list] if _has_valid_annotation(anno): ids.append(ds_idx) dataset = torch.utils.data.Subset(dataset, ids) return dataset def get_coco(root, image_set, transforms, use_v2=False): PATHS = { "train": ("train2017", os.path.join("annotations", "instances_train2017.json")), "val": ("val2017", os.path.join("annotations", "instances_val2017.json")), # "train": ("val2017", os.path.join("annotations", "instances_val2017.json")) } CAT_LIST = [0, 5, 2, 16, 9, 44, 6, 3, 17, 62, 21, 67, 18, 19, 4, 1, 64, 20, 63, 7, 72] img_folder, ann_file = PATHS[image_set] img_folder = os.path.join(root, img_folder) ann_file = os.path.join(root, ann_file) # The 2 "Compose" below achieve the same thing: converting coco detection # samples into segmentation-compatible samples. They just do it with # slightly different implementations. We could refactor and unify, but # keeping them separate helps keeping the v2 version clean if use_v2: import v2_extras from torchvision.datasets import wrap_dataset_for_transforms_v2 transforms = Compose([v2_extras.CocoDetectionToVOCSegmentation(), transforms]) dataset = torchvision.datasets.CocoDetection(img_folder, ann_file, transforms=transforms) dataset = wrap_dataset_for_transforms_v2(dataset, target_keys={"masks", "labels"}) else: transforms = Compose([FilterAndRemapCocoCategories(CAT_LIST, remap=True), ConvertCocoPolysToMask(), transforms]) dataset = torchvision.datasets.CocoDetection(img_folder, ann_file, transforms=transforms) if image_set == "train": dataset = _coco_remove_images_without_annotations(dataset, CAT_LIST) return dataset vision-0.19.1/references/segmentation/presets.py000066400000000000000000000070041466211133600217720ustar00rootroot00000000000000import torch def get_modules(use_v2): # We need a protected import to avoid the V2 warning in case just V1 is used if use_v2: import torchvision.transforms.v2 import torchvision.tv_tensors import v2_extras return torchvision.transforms.v2, torchvision.tv_tensors, v2_extras else: import transforms return transforms, None, None class SegmentationPresetTrain: def __init__( self, *, base_size, crop_size, hflip_prob=0.5, mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225), backend="pil", use_v2=False, ): T, tv_tensors, v2_extras = get_modules(use_v2) transforms = [] backend = backend.lower() if backend == "tv_tensor": transforms.append(T.ToImage()) elif backend == "tensor": transforms.append(T.PILToTensor()) elif backend != "pil": raise ValueError(f"backend can be 'tv_tensor', 'tensor' or 'pil', but got {backend}") transforms += [T.RandomResize(min_size=int(0.5 * base_size), max_size=int(2.0 * base_size))] if hflip_prob > 0: transforms += [T.RandomHorizontalFlip(hflip_prob)] if use_v2: # We need a custom pad transform here, since the padding we want to perform here is fundamentally # different from the padding in `RandomCrop` if `pad_if_needed=True`. transforms += [v2_extras.PadIfSmaller(crop_size, fill={tv_tensors.Mask: 255, "others": 0})] transforms += [T.RandomCrop(crop_size)] if backend == "pil": transforms += [T.PILToTensor()] if use_v2: img_type = tv_tensors.Image if backend == "tv_tensor" else torch.Tensor transforms += [ T.ToDtype(dtype={img_type: torch.float32, tv_tensors.Mask: torch.int64, "others": None}, scale=True) ] else: # No need to explicitly convert masks as they're magically int64 already transforms += [T.ToDtype(torch.float, scale=True)] transforms += [T.Normalize(mean=mean, std=std)] if use_v2: transforms += [T.ToPureTensor()] self.transforms = T.Compose(transforms) def __call__(self, img, target): return self.transforms(img, target) class SegmentationPresetEval: def __init__( self, *, base_size, mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225), backend="pil", use_v2=False ): T, _, _ = get_modules(use_v2) transforms = [] backend = backend.lower() if backend == "tensor": transforms += [T.PILToTensor()] elif backend == "tv_tensor": transforms += [T.ToImage()] elif backend != "pil": raise ValueError(f"backend can be 'tv_tensor', 'tensor' or 'pil', but got {backend}") if use_v2: transforms += [T.Resize(size=(base_size, base_size))] else: transforms += [T.RandomResize(min_size=base_size, max_size=base_size)] if backend == "pil": # Note: we could just convert to pure tensors even in v2? transforms += [T.ToImage() if use_v2 else T.PILToTensor()] transforms += [ T.ToDtype(torch.float, scale=True), T.Normalize(mean=mean, std=std), ] if use_v2: transforms += [T.ToPureTensor()] self.transforms = T.Compose(transforms) def __call__(self, img, target): return self.transforms(img, target) vision-0.19.1/references/segmentation/train.py000066400000000000000000000321571466211133600214310ustar00rootroot00000000000000import datetime import os import time import warnings import presets import torch import torch.utils.data import torchvision import utils from coco_utils import get_coco from torch import nn from torch.optim.lr_scheduler import PolynomialLR from torchvision.transforms import functional as F, InterpolationMode def get_dataset(args, is_train): def sbd(*args, **kwargs): kwargs.pop("use_v2") return torchvision.datasets.SBDataset(*args, mode="segmentation", **kwargs) def voc(*args, **kwargs): kwargs.pop("use_v2") return torchvision.datasets.VOCSegmentation(*args, **kwargs) paths = { "voc": (args.data_path, voc, 21), "voc_aug": (args.data_path, sbd, 21), "coco": (args.data_path, get_coco, 21), } p, ds_fn, num_classes = paths[args.dataset] image_set = "train" if is_train else "val" ds = ds_fn(p, image_set=image_set, transforms=get_transform(is_train, args), use_v2=args.use_v2) return ds, num_classes def get_transform(is_train, args): if is_train: return presets.SegmentationPresetTrain(base_size=520, crop_size=480, backend=args.backend, use_v2=args.use_v2) elif args.weights and args.test_only: weights = torchvision.models.get_weight(args.weights) trans = weights.transforms() def preprocessing(img, target): img = trans(img) size = F.get_dimensions(img)[1:] target = F.resize(target, size, interpolation=InterpolationMode.NEAREST) return img, F.pil_to_tensor(target) return preprocessing else: return presets.SegmentationPresetEval(base_size=520, backend=args.backend, use_v2=args.use_v2) def criterion(inputs, target): losses = {} for name, x in inputs.items(): losses[name] = nn.functional.cross_entropy(x, target, ignore_index=255) if len(losses) == 1: return losses["out"] return losses["out"] + 0.5 * losses["aux"] def evaluate(model, data_loader, device, num_classes): model.eval() confmat = utils.ConfusionMatrix(num_classes) metric_logger = utils.MetricLogger(delimiter=" ") header = "Test:" num_processed_samples = 0 with torch.inference_mode(): for image, target in metric_logger.log_every(data_loader, 100, header): image, target = image.to(device), target.to(device) output = model(image) output = output["out"] confmat.update(target.flatten(), output.argmax(1).flatten()) # FIXME need to take into account that the datasets # could have been padded in distributed setup num_processed_samples += image.shape[0] confmat.reduce_from_all_processes() num_processed_samples = utils.reduce_across_processes(num_processed_samples) if ( hasattr(data_loader.dataset, "__len__") and len(data_loader.dataset) != num_processed_samples and torch.distributed.get_rank() == 0 ): # See FIXME above warnings.warn( f"It looks like the dataset has {len(data_loader.dataset)} samples, but {num_processed_samples} " "samples were used for the validation, which might bias the results. " "Try adjusting the batch size and / or the world size. " "Setting the world size to 1 is always a safe bet." ) return confmat def train_one_epoch(model, criterion, optimizer, data_loader, lr_scheduler, device, epoch, print_freq, scaler=None): model.train() metric_logger = utils.MetricLogger(delimiter=" ") metric_logger.add_meter("lr", utils.SmoothedValue(window_size=1, fmt="{value}")) header = f"Epoch: [{epoch}]" for image, target in metric_logger.log_every(data_loader, print_freq, header): image, target = image.to(device), target.to(device) with torch.cuda.amp.autocast(enabled=scaler is not None): output = model(image) loss = criterion(output, target) optimizer.zero_grad() if scaler is not None: scaler.scale(loss).backward() scaler.step(optimizer) scaler.update() else: loss.backward() optimizer.step() lr_scheduler.step() metric_logger.update(loss=loss.item(), lr=optimizer.param_groups[0]["lr"]) def main(args): if args.backend.lower() != "pil" and not args.use_v2: # TODO: Support tensor backend in V1? raise ValueError("Use --use-v2 if you want to use the tv_tensor or tensor backend.") if args.use_v2 and args.dataset != "coco": raise ValueError("v2 is only support supported for coco dataset for now.") if args.output_dir: utils.mkdir(args.output_dir) utils.init_distributed_mode(args) print(args) device = torch.device(args.device) if args.use_deterministic_algorithms: torch.backends.cudnn.benchmark = False torch.use_deterministic_algorithms(True) else: torch.backends.cudnn.benchmark = True dataset, num_classes = get_dataset(args, is_train=True) dataset_test, _ = get_dataset(args, is_train=False) if args.distributed: train_sampler = torch.utils.data.distributed.DistributedSampler(dataset) test_sampler = torch.utils.data.distributed.DistributedSampler(dataset_test, shuffle=False) else: train_sampler = torch.utils.data.RandomSampler(dataset) test_sampler = torch.utils.data.SequentialSampler(dataset_test) data_loader = torch.utils.data.DataLoader( dataset, batch_size=args.batch_size, sampler=train_sampler, num_workers=args.workers, collate_fn=utils.collate_fn, drop_last=True, ) data_loader_test = torch.utils.data.DataLoader( dataset_test, batch_size=1, sampler=test_sampler, num_workers=args.workers, collate_fn=utils.collate_fn ) model = torchvision.models.get_model( args.model, weights=args.weights, weights_backbone=args.weights_backbone, num_classes=num_classes, aux_loss=args.aux_loss, ) model.to(device) if args.distributed: model = torch.nn.SyncBatchNorm.convert_sync_batchnorm(model) model_without_ddp = model if args.distributed: model = torch.nn.parallel.DistributedDataParallel(model, device_ids=[args.gpu]) model_without_ddp = model.module params_to_optimize = [ {"params": [p for p in model_without_ddp.backbone.parameters() if p.requires_grad]}, {"params": [p for p in model_without_ddp.classifier.parameters() if p.requires_grad]}, ] if args.aux_loss: params = [p for p in model_without_ddp.aux_classifier.parameters() if p.requires_grad] params_to_optimize.append({"params": params, "lr": args.lr * 10}) optimizer = torch.optim.SGD(params_to_optimize, lr=args.lr, momentum=args.momentum, weight_decay=args.weight_decay) scaler = torch.cuda.amp.GradScaler() if args.amp else None iters_per_epoch = len(data_loader) main_lr_scheduler = PolynomialLR( optimizer, total_iters=iters_per_epoch * (args.epochs - args.lr_warmup_epochs), power=0.9 ) if args.lr_warmup_epochs > 0: warmup_iters = iters_per_epoch * args.lr_warmup_epochs args.lr_warmup_method = args.lr_warmup_method.lower() if args.lr_warmup_method == "linear": warmup_lr_scheduler = torch.optim.lr_scheduler.LinearLR( optimizer, start_factor=args.lr_warmup_decay, total_iters=warmup_iters ) elif args.lr_warmup_method == "constant": warmup_lr_scheduler = torch.optim.lr_scheduler.ConstantLR( optimizer, factor=args.lr_warmup_decay, total_iters=warmup_iters ) else: raise RuntimeError( f"Invalid warmup lr method '{args.lr_warmup_method}'. Only linear and constant are supported." ) lr_scheduler = torch.optim.lr_scheduler.SequentialLR( optimizer, schedulers=[warmup_lr_scheduler, main_lr_scheduler], milestones=[warmup_iters] ) else: lr_scheduler = main_lr_scheduler if args.resume: checkpoint = torch.load(args.resume, map_location="cpu", weights_only=True) model_without_ddp.load_state_dict(checkpoint["model"], strict=not args.test_only) if not args.test_only: optimizer.load_state_dict(checkpoint["optimizer"]) lr_scheduler.load_state_dict(checkpoint["lr_scheduler"]) args.start_epoch = checkpoint["epoch"] + 1 if args.amp: scaler.load_state_dict(checkpoint["scaler"]) if args.test_only: # We disable the cudnn benchmarking because it can noticeably affect the accuracy torch.backends.cudnn.benchmark = False torch.backends.cudnn.deterministic = True confmat = evaluate(model, data_loader_test, device=device, num_classes=num_classes) print(confmat) return start_time = time.time() for epoch in range(args.start_epoch, args.epochs): if args.distributed: train_sampler.set_epoch(epoch) train_one_epoch(model, criterion, optimizer, data_loader, lr_scheduler, device, epoch, args.print_freq, scaler) confmat = evaluate(model, data_loader_test, device=device, num_classes=num_classes) print(confmat) checkpoint = { "model": model_without_ddp.state_dict(), "optimizer": optimizer.state_dict(), "lr_scheduler": lr_scheduler.state_dict(), "epoch": epoch, "args": args, } if args.amp: checkpoint["scaler"] = scaler.state_dict() utils.save_on_master(checkpoint, os.path.join(args.output_dir, f"model_{epoch}.pth")) utils.save_on_master(checkpoint, os.path.join(args.output_dir, "checkpoint.pth")) total_time = time.time() - start_time total_time_str = str(datetime.timedelta(seconds=int(total_time))) print(f"Training time {total_time_str}") def get_args_parser(add_help=True): import argparse parser = argparse.ArgumentParser(description="PyTorch Segmentation Training", add_help=add_help) parser.add_argument("--data-path", default="/datasets01/COCO/022719/", type=str, help="dataset path") parser.add_argument("--dataset", default="coco", type=str, help="dataset name") parser.add_argument("--model", default="fcn_resnet101", type=str, help="model name") parser.add_argument("--aux-loss", action="store_true", help="auxiliary loss") parser.add_argument("--device", default="cuda", type=str, help="device (Use cuda or cpu Default: cuda)") parser.add_argument( "-b", "--batch-size", default=8, type=int, help="images per gpu, the total batch size is $NGPU x batch_size" ) parser.add_argument("--epochs", default=30, type=int, metavar="N", help="number of total epochs to run") parser.add_argument( "-j", "--workers", default=16, type=int, metavar="N", help="number of data loading workers (default: 16)" ) parser.add_argument("--lr", default=0.01, type=float, help="initial learning rate") parser.add_argument("--momentum", default=0.9, type=float, metavar="M", help="momentum") parser.add_argument( "--wd", "--weight-decay", default=1e-4, type=float, metavar="W", help="weight decay (default: 1e-4)", dest="weight_decay", ) parser.add_argument("--lr-warmup-epochs", default=0, type=int, help="the number of epochs to warmup (default: 0)") parser.add_argument("--lr-warmup-method", default="linear", type=str, help="the warmup method (default: linear)") parser.add_argument("--lr-warmup-decay", default=0.01, type=float, help="the decay for lr") parser.add_argument("--print-freq", default=10, type=int, help="print frequency") parser.add_argument("--output-dir", default=".", type=str, help="path to save outputs") parser.add_argument("--resume", default="", type=str, help="path of checkpoint") parser.add_argument("--start-epoch", default=0, type=int, metavar="N", help="start epoch") parser.add_argument( "--test-only", dest="test_only", help="Only test the model", action="store_true", ) parser.add_argument( "--use-deterministic-algorithms", action="store_true", help="Forces the use of deterministic algorithms only." ) # distributed training parameters parser.add_argument("--world-size", default=1, type=int, help="number of distributed processes") parser.add_argument("--dist-url", default="env://", type=str, help="url used to set up distributed training") parser.add_argument("--weights", default=None, type=str, help="the weights enum name to load") parser.add_argument("--weights-backbone", default=None, type=str, help="the backbone weights enum name to load") # Mixed precision training parameters parser.add_argument("--amp", action="store_true", help="Use torch.cuda.amp for mixed precision training") parser.add_argument("--backend", default="PIL", type=str.lower, help="PIL or tensor - case insensitive") parser.add_argument("--use-v2", action="store_true", help="Use V2 transforms") return parser if __name__ == "__main__": args = get_args_parser().parse_args() main(args) vision-0.19.1/references/segmentation/transforms.py000066400000000000000000000054121466211133600225040ustar00rootroot00000000000000import random import numpy as np import torch from torchvision import transforms as T from torchvision.transforms import functional as F def pad_if_smaller(img, size, fill=0): min_size = min(img.size) if min_size < size: ow, oh = img.size padh = size - oh if oh < size else 0 padw = size - ow if ow < size else 0 img = F.pad(img, (0, 0, padw, padh), fill=fill) return img class Compose: def __init__(self, transforms): self.transforms = transforms def __call__(self, image, target): for t in self.transforms: image, target = t(image, target) return image, target class RandomResize: def __init__(self, min_size, max_size=None): self.min_size = min_size if max_size is None: max_size = min_size self.max_size = max_size def __call__(self, image, target): size = random.randint(self.min_size, self.max_size) image = F.resize(image, size, antialias=True) target = F.resize(target, size, interpolation=T.InterpolationMode.NEAREST) return image, target class RandomHorizontalFlip: def __init__(self, flip_prob): self.flip_prob = flip_prob def __call__(self, image, target): if random.random() < self.flip_prob: image = F.hflip(image) target = F.hflip(target) return image, target class RandomCrop: def __init__(self, size): self.size = size def __call__(self, image, target): image = pad_if_smaller(image, self.size) target = pad_if_smaller(target, self.size, fill=255) crop_params = T.RandomCrop.get_params(image, (self.size, self.size)) image = F.crop(image, *crop_params) target = F.crop(target, *crop_params) return image, target class CenterCrop: def __init__(self, size): self.size = size def __call__(self, image, target): image = F.center_crop(image, self.size) target = F.center_crop(target, self.size) return image, target class PILToTensor: def __call__(self, image, target): image = F.pil_to_tensor(image) target = torch.as_tensor(np.array(target), dtype=torch.int64) return image, target class ToDtype: def __init__(self, dtype, scale=False): self.dtype = dtype self.scale = scale def __call__(self, image, target): if not self.scale: return image.to(dtype=self.dtype), target image = F.convert_image_dtype(image, self.dtype) return image, target class Normalize: def __init__(self, mean, std): self.mean = mean self.std = std def __call__(self, image, target): image = F.normalize(image, mean=self.mean, std=self.std) return image, target vision-0.19.1/references/segmentation/utils.py000066400000000000000000000217211466211133600214470ustar00rootroot00000000000000import datetime import errno import os import time from collections import defaultdict, deque import torch import torch.distributed as dist class SmoothedValue: """Track a series of values and provide access to smoothed values over a window or the global series average. """ def __init__(self, window_size=20, fmt=None): if fmt is None: fmt = "{median:.4f} ({global_avg:.4f})" self.deque = deque(maxlen=window_size) self.total = 0.0 self.count = 0 self.fmt = fmt def update(self, value, n=1): self.deque.append(value) self.count += n self.total += value * n def synchronize_between_processes(self): """ Warning: does not synchronize the deque! """ t = reduce_across_processes([self.count, self.total]) t = t.tolist() self.count = int(t[0]) self.total = t[1] @property def median(self): d = torch.tensor(list(self.deque)) return d.median().item() @property def avg(self): d = torch.tensor(list(self.deque), dtype=torch.float32) return d.mean().item() @property def global_avg(self): return self.total / self.count @property def max(self): return max(self.deque) @property def value(self): return self.deque[-1] def __str__(self): return self.fmt.format( median=self.median, avg=self.avg, global_avg=self.global_avg, max=self.max, value=self.value ) class ConfusionMatrix: def __init__(self, num_classes): self.num_classes = num_classes self.mat = None def update(self, a, b): n = self.num_classes if self.mat is None: self.mat = torch.zeros((n, n), dtype=torch.int64, device=a.device) with torch.inference_mode(): k = (a >= 0) & (a < n) inds = n * a[k].to(torch.int64) + b[k] self.mat += torch.bincount(inds, minlength=n**2).reshape(n, n) def reset(self): self.mat.zero_() def compute(self): h = self.mat.float() acc_global = torch.diag(h).sum() / h.sum() acc = torch.diag(h) / h.sum(1) iu = torch.diag(h) / (h.sum(1) + h.sum(0) - torch.diag(h)) return acc_global, acc, iu def reduce_from_all_processes(self): self.mat = reduce_across_processes(self.mat).to(torch.int64) def __str__(self): acc_global, acc, iu = self.compute() return ("global correct: {:.1f}\naverage row correct: {}\nIoU: {}\nmean IoU: {:.1f}").format( acc_global.item() * 100, [f"{i:.1f}" for i in (acc * 100).tolist()], [f"{i:.1f}" for i in (iu * 100).tolist()], iu.mean().item() * 100, ) class MetricLogger: def __init__(self, delimiter="\t"): self.meters = defaultdict(SmoothedValue) self.delimiter = delimiter def update(self, **kwargs): for k, v in kwargs.items(): if isinstance(v, torch.Tensor): v = v.item() if not isinstance(v, (float, int)): raise TypeError( f"This method expects the value of the input arguments to be of type float or int, instead got {type(v)}" ) self.meters[k].update(v) def __getattr__(self, attr): if attr in self.meters: return self.meters[attr] if attr in self.__dict__: return self.__dict__[attr] raise AttributeError(f"'{type(self).__name__}' object has no attribute '{attr}'") def __str__(self): loss_str = [] for name, meter in self.meters.items(): loss_str.append(f"{name}: {str(meter)}") return self.delimiter.join(loss_str) def synchronize_between_processes(self): for meter in self.meters.values(): meter.synchronize_between_processes() def add_meter(self, name, meter): self.meters[name] = meter def log_every(self, iterable, print_freq, header=None): i = 0 if not header: header = "" start_time = time.time() end = time.time() iter_time = SmoothedValue(fmt="{avg:.4f}") data_time = SmoothedValue(fmt="{avg:.4f}") space_fmt = ":" + str(len(str(len(iterable)))) + "d" if torch.cuda.is_available(): log_msg = self.delimiter.join( [ header, "[{0" + space_fmt + "}/{1}]", "eta: {eta}", "{meters}", "time: {time}", "data: {data}", "max mem: {memory:.0f}", ] ) else: log_msg = self.delimiter.join( [header, "[{0" + space_fmt + "}/{1}]", "eta: {eta}", "{meters}", "time: {time}", "data: {data}"] ) MB = 1024.0 * 1024.0 for obj in iterable: data_time.update(time.time() - end) yield obj iter_time.update(time.time() - end) if i % print_freq == 0: eta_seconds = iter_time.global_avg * (len(iterable) - i) eta_string = str(datetime.timedelta(seconds=int(eta_seconds))) if torch.cuda.is_available(): print( log_msg.format( i, len(iterable), eta=eta_string, meters=str(self), time=str(iter_time), data=str(data_time), memory=torch.cuda.max_memory_allocated() / MB, ) ) else: print( log_msg.format( i, len(iterable), eta=eta_string, meters=str(self), time=str(iter_time), data=str(data_time) ) ) i += 1 end = time.time() total_time = time.time() - start_time total_time_str = str(datetime.timedelta(seconds=int(total_time))) print(f"{header} Total time: {total_time_str}") def cat_list(images, fill_value=0): max_size = tuple(max(s) for s in zip(*[img.shape for img in images])) batch_shape = (len(images),) + max_size batched_imgs = images[0].new(*batch_shape).fill_(fill_value) for img, pad_img in zip(images, batched_imgs): pad_img[..., : img.shape[-2], : img.shape[-1]].copy_(img) return batched_imgs def collate_fn(batch): images, targets = list(zip(*batch)) batched_imgs = cat_list(images, fill_value=0) batched_targets = cat_list(targets, fill_value=255) return batched_imgs, batched_targets def mkdir(path): try: os.makedirs(path) except OSError as e: if e.errno != errno.EEXIST: raise def setup_for_distributed(is_master): """ This function disables printing when not in master process """ import builtins as __builtin__ builtin_print = __builtin__.print def print(*args, **kwargs): force = kwargs.pop("force", False) if is_master or force: builtin_print(*args, **kwargs) __builtin__.print = print def is_dist_avail_and_initialized(): if not dist.is_available(): return False if not dist.is_initialized(): return False return True def get_world_size(): if not is_dist_avail_and_initialized(): return 1 return dist.get_world_size() def get_rank(): if not is_dist_avail_and_initialized(): return 0 return dist.get_rank() def is_main_process(): return get_rank() == 0 def save_on_master(*args, **kwargs): if is_main_process(): torch.save(*args, **kwargs) def init_distributed_mode(args): if "RANK" in os.environ and "WORLD_SIZE" in os.environ: args.rank = int(os.environ["RANK"]) args.world_size = int(os.environ["WORLD_SIZE"]) args.gpu = int(os.environ["LOCAL_RANK"]) # elif "SLURM_PROCID" in os.environ: # args.rank = int(os.environ["SLURM_PROCID"]) # args.gpu = args.rank % torch.cuda.device_count() elif hasattr(args, "rank"): pass else: print("Not using distributed mode") args.distributed = False return args.distributed = True torch.cuda.set_device(args.gpu) args.dist_backend = "nccl" print(f"| distributed init (rank {args.rank}): {args.dist_url}", flush=True) torch.distributed.init_process_group( backend=args.dist_backend, init_method=args.dist_url, world_size=args.world_size, rank=args.rank ) torch.distributed.barrier() setup_for_distributed(args.rank == 0) def reduce_across_processes(val): if not is_dist_avail_and_initialized(): # nothing to sync, but we still convert to tensor for consistency with the distributed case. return torch.tensor(val) t = torch.tensor(val, device="cuda") dist.barrier() dist.all_reduce(t) return t vision-0.19.1/references/segmentation/v2_extras.py000066400000000000000000000067761466211133600222410ustar00rootroot00000000000000"""This file only exists to be lazy-imported and avoid V2-related import warnings when just using V1.""" import torch from torchvision import tv_tensors from torchvision.transforms import v2 class PadIfSmaller(v2.Transform): def __init__(self, size, fill=0): super().__init__() self.size = size self.fill = v2._utils._setup_fill_arg(fill) def _get_params(self, sample): _, height, width = v2._utils.query_chw(sample) padding = [0, 0, max(self.size - width, 0), max(self.size - height, 0)] needs_padding = any(padding) return dict(padding=padding, needs_padding=needs_padding) def _transform(self, inpt, params): if not params["needs_padding"]: return inpt fill = v2._utils._get_fill(self.fill, type(inpt)) fill = v2._utils._convert_fill_arg(fill) return v2.functional.pad(inpt, padding=params["padding"], fill=fill) class CocoDetectionToVOCSegmentation(v2.Transform): """Turn samples from datasets.CocoDetection into the same format as VOCSegmentation. This is achieved in two steps: 1. COCO differentiates between 91 categories while VOC only supports 21, including background for both. Fortunately, the COCO categories are a superset of the VOC ones and thus can be mapped. Instances of the 70 categories not present in VOC are dropped and replaced by background. 2. COCO only offers detection masks, i.e. a (N, H, W) bool-ish tensor, where the truthy values in each individual mask denote the instance. However, a segmentation mask is a (H, W) integer tensor (typically torch.uint8), where the value of each pixel denotes the category it belongs to. The detection masks are merged into one segmentation mask while pixels that belong to multiple detection masks are marked as invalid. """ COCO_TO_VOC_LABEL_MAP = dict( zip( [0, 5, 2, 16, 9, 44, 6, 3, 17, 62, 21, 67, 18, 19, 4, 1, 64, 20, 63, 7, 72], range(21), ) ) INVALID_VALUE = 255 def _coco_detection_masks_to_voc_segmentation_mask(self, target): if "masks" not in target: return None instance_masks, instance_labels_coco = target["masks"], target["labels"] valid_labels_voc = [ (idx, label_voc) for idx, label_coco in enumerate(instance_labels_coco.tolist()) if (label_voc := self.COCO_TO_VOC_LABEL_MAP.get(label_coco)) is not None ] if not valid_labels_voc: return None valid_voc_category_idcs, instance_labels_voc = zip(*valid_labels_voc) instance_masks = instance_masks[list(valid_voc_category_idcs)].to(torch.uint8) instance_labels_voc = torch.tensor(instance_labels_voc, dtype=torch.uint8) # Calling `.max()` on the stacked detection masks works fine to separate background from foreground as long as # there is at most a single instance per pixel. Overlapping instances will be filtered out in the next step. segmentation_mask, _ = (instance_masks * instance_labels_voc.reshape(-1, 1, 1)).max(dim=0) segmentation_mask[instance_masks.sum(dim=0) > 1] = self.INVALID_VALUE return segmentation_mask def forward(self, image, target): segmentation_mask = self._coco_detection_masks_to_voc_segmentation_mask(target) if segmentation_mask is None: segmentation_mask = torch.zeros(v2.functional.get_size(image), dtype=torch.uint8) return image, tv_tensors.Mask(segmentation_mask) vision-0.19.1/references/similarity/000077500000000000000000000000001466211133600174235ustar00rootroot00000000000000vision-0.19.1/references/similarity/README.md000066400000000000000000000056411466211133600207100ustar00rootroot00000000000000# Similarity Learning Using Triplet Loss # In this reference, we use triplet loss to learn embeddings which can be used to differentiate images. This learning technique was popularized by [FaceNet: A Unified Embedding for Face Recognition and Clustering](https://arxiv.org/abs/1503.03832) and has been quite effective in learning embeddings to differentiate between faces. This reference can be directly applied to the following use cases: * You have an unknown number of classes and would like to train a model to learn how to differentiate between them. * You want to train a model to learn a distance-based metric between samples. For example, learning a distance-based similarity measure between faces. ### Training ### By default, the training script trains ResNet50 on the FashionMNIST Dataset to learn image embeddings which can be used to differentiate between images by measuring the euclidean distance between embeddings. This can be changed as per your requirements. Image embeddings of the same class should be 'close' to each other, while image embeddings between different classes should be 'far' away. To run the training script: ```bash python train.py -h # Lists all optional arguments python train.py # Runs training script with default args ``` Running the training script as is should yield 97% accuracy on the FMNIST test set within 10 epochs. ### Loss ### `TripletMarginLoss` is a loss function which takes in a triplet of samples. A valid triplet has an: 1. Anchor: a sample from the dataset 2. Positive: another sample with the same label/group as the anchor (Generally, positive != anchor) 3. Negative: a sample with a different label/group from the anchor `TripletMarginLoss` (refer to `loss.py`) does the following: ```python loss = max(dist(anchor, positive) - dist(anchor, negative) + margin, 0) ``` Where `dist` is a distance function. Minimizing this function effectively leads to minimizing `dist(anchor, positive)` and maximizing `dist(anchor, negative)`. The FaceNet paper describe this loss in more detail. ### Sampler ### In order to generate valid triplets from a batch of samples, we need to make sure that each batch has multiple samples with the same label. We do this using `PKSampler` (refer to `sampler.py`), which ensures that each batch of size `p * k` will have samples from exactly `p` classes and `k` samples per class. ### Triplet Mining ### `TripletMarginLoss` currently supports the following mining techniques: * `batch_all`: Generates all possible triplets from a batch and excludes the triplets which are 'easy' (which have `loss = 0`) before passing it through the loss function. * `batch_hard`: For every anchor, `batch_hard` creates a triplet with the 'hardest' positive (farthest positive) and negative (closest negative). These mining strategies usually speed up training. This [webpage](https://omoindrot.github.io/triplet-loss) describes the sampling and mining strategies in more detail. vision-0.19.1/references/similarity/loss.py000066400000000000000000000072071466211133600207630ustar00rootroot00000000000000""" Pytorch adaptation of https://omoindrot.github.io/triplet-loss https://github.com/omoindrot/tensorflow-triplet-loss """ import torch import torch.nn as nn class TripletMarginLoss(nn.Module): def __init__(self, margin=1.0, p=2.0, mining="batch_all"): super().__init__() self.margin = margin self.p = p self.mining = mining if mining == "batch_all": self.loss_fn = batch_all_triplet_loss if mining == "batch_hard": self.loss_fn = batch_hard_triplet_loss def forward(self, embeddings, labels): return self.loss_fn(labels, embeddings, self.margin, self.p) def batch_hard_triplet_loss(labels, embeddings, margin, p): pairwise_dist = torch.cdist(embeddings, embeddings, p=p) mask_anchor_positive = _get_anchor_positive_triplet_mask(labels).float() anchor_positive_dist = mask_anchor_positive * pairwise_dist # hardest positive for every anchor hardest_positive_dist, _ = anchor_positive_dist.max(1, keepdim=True) mask_anchor_negative = _get_anchor_negative_triplet_mask(labels).float() # Add max value in each row to invalid negatives max_anchor_negative_dist, _ = pairwise_dist.max(1, keepdim=True) anchor_negative_dist = pairwise_dist + max_anchor_negative_dist * (1.0 - mask_anchor_negative) # hardest negative for every anchor hardest_negative_dist, _ = anchor_negative_dist.min(1, keepdim=True) triplet_loss = hardest_positive_dist - hardest_negative_dist + margin triplet_loss[triplet_loss < 0] = 0 triplet_loss = triplet_loss.mean() return triplet_loss, -1 def batch_all_triplet_loss(labels, embeddings, margin, p): pairwise_dist = torch.cdist(embeddings, embeddings, p=p) anchor_positive_dist = pairwise_dist.unsqueeze(2) anchor_negative_dist = pairwise_dist.unsqueeze(1) triplet_loss = anchor_positive_dist - anchor_negative_dist + margin mask = _get_triplet_mask(labels) triplet_loss = mask.float() * triplet_loss # Remove negative losses (easy triplets) triplet_loss[triplet_loss < 0] = 0 # Count number of positive triplets (where triplet_loss > 0) valid_triplets = triplet_loss[triplet_loss > 1e-16] num_positive_triplets = valid_triplets.size(0) num_valid_triplets = mask.sum() fraction_positive_triplets = num_positive_triplets / (num_valid_triplets.float() + 1e-16) # Get final mean triplet loss over the positive valid triplets triplet_loss = triplet_loss.sum() / (num_positive_triplets + 1e-16) return triplet_loss, fraction_positive_triplets def _get_triplet_mask(labels): # Check that i, j and k are distinct indices_equal = torch.eye(labels.size(0), dtype=torch.bool, device=labels.device) indices_not_equal = ~indices_equal i_not_equal_j = indices_not_equal.unsqueeze(2) i_not_equal_k = indices_not_equal.unsqueeze(1) j_not_equal_k = indices_not_equal.unsqueeze(0) distinct_indices = (i_not_equal_j & i_not_equal_k) & j_not_equal_k label_equal = labels.unsqueeze(0) == labels.unsqueeze(1) i_equal_j = label_equal.unsqueeze(2) i_equal_k = label_equal.unsqueeze(1) valid_labels = ~i_equal_k & i_equal_j return valid_labels & distinct_indices def _get_anchor_positive_triplet_mask(labels): # Check that i and j are distinct indices_equal = torch.eye(labels.size(0), dtype=torch.bool, device=labels.device) indices_not_equal = ~indices_equal # Check if labels[i] == labels[j] labels_equal = labels.unsqueeze(0) == labels.unsqueeze(1) return labels_equal & indices_not_equal def _get_anchor_negative_triplet_mask(labels): return labels.unsqueeze(0) != labels.unsqueeze(1) vision-0.19.1/references/similarity/model.py000066400000000000000000000006131466211133600210750ustar00rootroot00000000000000import torch.nn as nn import torchvision.models as models class EmbeddingNet(nn.Module): def __init__(self, backbone=None): super().__init__() if backbone is None: backbone = models.resnet50(num_classes=128) self.backbone = backbone def forward(self, x): x = self.backbone(x) x = nn.functional.normalize(x, dim=1) return x vision-0.19.1/references/similarity/sampler.py000066400000000000000000000054011466211133600214400ustar00rootroot00000000000000import random from collections import defaultdict import torch from torch.utils.data.sampler import Sampler def create_groups(groups, k): """Bins sample indices with respect to groups, remove bins with less than k samples Args: groups (list[int]): where ith index stores ith sample's group id Returns: defaultdict[list]: Bins of sample indices, binned by group_idx """ group_samples = defaultdict(list) for sample_idx, group_idx in enumerate(groups): group_samples[group_idx].append(sample_idx) keys_to_remove = [] for key in group_samples: if len(group_samples[key]) < k: keys_to_remove.append(key) continue for key in keys_to_remove: group_samples.pop(key) return group_samples class PKSampler(Sampler): """ Randomly samples from a dataset while ensuring that each batch (of size p * k) includes samples from exactly p labels, with k samples for each label. Args: groups (list[int]): List where the ith entry is the group_id/label of the ith sample in the dataset. p (int): Number of labels/groups to be sampled from in a batch k (int): Number of samples for each label/group in a batch """ def __init__(self, groups, p, k): self.p = p self.k = k self.groups = create_groups(groups, self.k) # Ensures there are enough classes to sample from if len(self.groups) < p: raise ValueError("There are not enough classes to sample from") def __iter__(self): # Shuffle samples within groups for key in self.groups: random.shuffle(self.groups[key]) # Keep track of the number of samples left for each group group_samples_remaining = {} for key in self.groups: group_samples_remaining[key] = len(self.groups[key]) while len(group_samples_remaining) > self.p: # Select p groups at random from valid/remaining groups group_ids = list(group_samples_remaining.keys()) selected_group_idxs = torch.multinomial(torch.ones(len(group_ids)), self.p).tolist() for i in selected_group_idxs: group_id = group_ids[i] group = self.groups[group_id] for _ in range(self.k): # No need to pick samples at random since group samples are shuffled sample_idx = len(group) - group_samples_remaining[group_id] yield group[sample_idx] group_samples_remaining[group_id] -= 1 # Don't sample from group if it has less than k samples remaining if group_samples_remaining[group_id] < self.k: group_samples_remaining.pop(group_id) vision-0.19.1/references/similarity/test.py000066400000000000000000000027541466211133600207640ustar00rootroot00000000000000import unittest from collections import defaultdict import torch import torchvision.transforms as transforms from sampler import PKSampler from torch.utils.data import DataLoader from torchvision.datasets import FakeData class Tester(unittest.TestCase): def test_pksampler(self): p, k = 16, 4 # Ensure sampler does not allow p to be greater than num_classes dataset = FakeData(size=100, num_classes=10, image_size=(3, 1, 1)) targets = [target.item() for _, target in dataset] self.assertRaises(AssertionError, PKSampler, targets, p, k) # Ensure p, k constraints on batch trans = transforms.Compose( [ transforms.PILToTensor(), transforms.ConvertImageDtype(torch.float), ] ) dataset = FakeData(size=1000, num_classes=100, image_size=(3, 1, 1), transform=trans) targets = [target.item() for _, target in dataset] sampler = PKSampler(targets, p, k) loader = DataLoader(dataset, batch_size=p * k, sampler=sampler) for _, labels in loader: bins = defaultdict(int) for label in labels.tolist(): bins[label] += 1 # Ensure that each batch has samples from exactly p classes self.assertEqual(len(bins), p) # Ensure that there are k samples from each class for b in bins: self.assertEqual(bins[b], k) if __name__ == "__main__": unittest.main() vision-0.19.1/references/similarity/train.py000066400000000000000000000151251466211133600211160ustar00rootroot00000000000000import os import torch import torchvision.transforms as transforms from loss import TripletMarginLoss from model import EmbeddingNet from sampler import PKSampler from torch.optim import Adam from torch.utils.data import DataLoader from torchvision.datasets import FashionMNIST def train_epoch(model, optimizer, criterion, data_loader, device, epoch, print_freq): model.train() running_loss = 0 running_frac_pos_triplets = 0 for i, data in enumerate(data_loader): optimizer.zero_grad() samples, targets = data[0].to(device), data[1].to(device) embeddings = model(samples) loss, frac_pos_triplets = criterion(embeddings, targets) loss.backward() optimizer.step() running_loss += loss.item() running_frac_pos_triplets += float(frac_pos_triplets) if i % print_freq == print_freq - 1: i += 1 avg_loss = running_loss / print_freq avg_trip = 100.0 * running_frac_pos_triplets / print_freq print(f"[{epoch:d}, {i:d}] | loss: {avg_loss:.4f} | % avg hard triplets: {avg_trip:.2f}%") running_loss = 0 running_frac_pos_triplets = 0 def find_best_threshold(dists, targets, device): best_thresh = 0.01 best_correct = 0 for thresh in torch.arange(0.0, 1.51, 0.01): predictions = dists <= thresh.to(device) correct = torch.sum(predictions == targets.to(device)).item() if correct > best_correct: best_thresh = thresh best_correct = correct accuracy = 100.0 * best_correct / dists.size(0) return best_thresh, accuracy @torch.inference_mode() def evaluate(model, loader, device): model.eval() embeds, labels = [], [] dists, targets = None, None for data in loader: samples, _labels = data[0].to(device), data[1] out = model(samples) embeds.append(out) labels.append(_labels) embeds = torch.cat(embeds, dim=0) labels = torch.cat(labels, dim=0) dists = torch.cdist(embeds, embeds) labels = labels.unsqueeze(0) targets = labels == labels.t() mask = torch.ones(dists.size()).triu() - torch.eye(dists.size(0)) dists = dists[mask == 1] targets = targets[mask == 1] threshold, accuracy = find_best_threshold(dists, targets, device) print(f"accuracy: {accuracy:.3f}%, threshold: {threshold:.2f}") def save(model, epoch, save_dir, file_name): file_name = "epoch_" + str(epoch) + "__" + file_name save_path = os.path.join(save_dir, file_name) torch.save(model.state_dict(), save_path) def main(args): device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") if args.use_deterministic_algorithms: torch.backends.cudnn.benchmark = False torch.use_deterministic_algorithms(True) else: torch.backends.cudnn.benchmark = True p = args.labels_per_batch k = args.samples_per_label batch_size = p * k model = EmbeddingNet() if args.resume: model.load_state_dict(torch.load(args.resume, weights_only=True)) model.to(device) criterion = TripletMarginLoss(margin=args.margin) optimizer = Adam(model.parameters(), lr=args.lr) transform = transforms.Compose( [ transforms.Lambda(lambda image: image.convert("RGB")), transforms.Resize((224, 224)), transforms.PILToTensor(), transforms.ConvertImageDtype(torch.float), ] ) # Using FMNIST to demonstrate embedding learning using triplet loss. This dataset can # be replaced with any classification dataset. train_dataset = FashionMNIST(args.dataset_dir, train=True, transform=transform, download=True) test_dataset = FashionMNIST(args.dataset_dir, train=False, transform=transform, download=True) # targets is a list where the i_th element corresponds to the label of i_th dataset element. # This is required for PKSampler to randomly sample from exactly p classes. You will need to # construct targets while building your dataset. Some datasets (such as ImageFolder) have a # targets attribute with the same format. targets = train_dataset.targets.tolist() train_loader = DataLoader( train_dataset, batch_size=batch_size, sampler=PKSampler(targets, p, k), num_workers=args.workers ) test_loader = DataLoader(test_dataset, batch_size=args.eval_batch_size, shuffle=False, num_workers=args.workers) if args.test_only: # We disable the cudnn benchmarking because it can noticeably affect the accuracy torch.backends.cudnn.benchmark = False torch.backends.cudnn.deterministic = True evaluate(model, test_loader, device) return for epoch in range(1, args.epochs + 1): print("Training...") train_epoch(model, optimizer, criterion, train_loader, device, epoch, args.print_freq) print("Evaluating...") evaluate(model, test_loader, device) print("Saving...") save(model, epoch, args.save_dir, "ckpt.pth") def parse_args(): import argparse parser = argparse.ArgumentParser(description="PyTorch Embedding Learning") parser.add_argument("--dataset-dir", default="/tmp/fmnist/", type=str, help="FashionMNIST dataset directory path") parser.add_argument( "-p", "--labels-per-batch", default=8, type=int, help="Number of unique labels/classes per batch" ) parser.add_argument("-k", "--samples-per-label", default=8, type=int, help="Number of samples per label in a batch") parser.add_argument("--eval-batch-size", default=512, type=int, help="batch size for evaluation") parser.add_argument("--epochs", default=10, type=int, metavar="N", help="number of total epochs to run") parser.add_argument("-j", "--workers", default=4, type=int, metavar="N", help="number of data loading workers") parser.add_argument("--lr", default=0.0001, type=float, help="initial learning rate") parser.add_argument("--margin", default=0.2, type=float, help="Triplet loss margin") parser.add_argument("--print-freq", default=20, type=int, help="print frequency") parser.add_argument("--save-dir", default=".", type=str, help="Model save directory") parser.add_argument("--resume", default="", type=str, help="path of checkpoint") parser.add_argument( "--test-only", dest="test_only", help="Only test the model", action="store_true", ) parser.add_argument( "--use-deterministic-algorithms", action="store_true", help="Forces the use of deterministic algorithms only." ) return parser.parse_args() if __name__ == "__main__": args = parse_args() main(args) vision-0.19.1/references/video_classification/000077500000000000000000000000001466211133600214165ustar00rootroot00000000000000vision-0.19.1/references/video_classification/README.md000066400000000000000000000134151466211133600227010ustar00rootroot00000000000000# Video Classification We present a simple training script that can be used for replicating the result of [resenet-based video models](https://research.fb.com/wp-content/uploads/2018/04/a-closer-look-at-spatiotemporal-convolutions-for-action-recognition.pdf). All models are trained on [Kinetics400 dataset](https://deepmind.com/research/open-source/kinetics), a benchmark dataset for human-action recognition. The accuracy is reported on the traditional validation split. ## Data preparation If you already have downloaded [Kinetics400 dataset](https://deepmind.com/research/open-source/kinetics), please proceed directly to the next section. To download videos, one can use https://github.com/Showmax/kinetics-downloader. Please note that the dataset can take up upwards of 400GB, depending on the quality setting during download. ## Training We assume the training and validation AVI videos are stored at `/data/kinectics400/train` and `/data/kinectics400/val`. For training we suggest starting with the hyperparameters reported in the [paper](https://research.fb.com/wp-content/uploads/2018/04/a-closer-look-at-spatiotemporal-convolutions-for-action-recognition.pdf), in order to match the performance of said models. Clip sampling strategy is a particularly important parameter during training, and we suggest using random temporal jittering during training - in other words sampling multiple training clips from each video with random start times during at every epoch. This functionality is built into our training script, and optimal hyperparameters are set by default. ### Multiple GPUs Run the training on a single node with 8 GPUs: ```bash torchrun --nproc_per_node=8 train.py --data-path=/data/kinectics400 --kinetics-version="400" --lr 0.08 --cache-dataset --sync-bn --amp ``` **Note:** all our models were trained on 8 nodes with 8 V100 GPUs each for a total of 64 GPUs. Expected training time for 64 GPUs is 24 hours, depending on the storage solution. **Note 2:** hyperparameters for exact replication of our training can be found on the section below. Some hyperparameters such as learning rate must be scaled linearly in proportion to the number of GPUs. The default values assume 64 GPUs. ### Single GPU **Note:** training on a single gpu can be extremely slow. ```bash python train.py --data-path=/data/kinectics400 --kinetics-version="400" --batch-size=8 --cache-dataset ``` ### Additional Kinetics versions Since the original release, additional versions of Kinetics dataset became available (Kinetics 600). Our training scripts support these versions of dataset as well by setting the `--kinetics-version` parameter to `"600"`. **Note:** training on Kinetics 600 requires a different set of hyperparameters for optimal performance. We do not provide Kinetics 600 pretrained models. ## Video classification models Starting with version `0.4.0` we have introduced support for basic video tasks and video classification modelling. For more information about the available models check [here](https://pytorch.org/docs/stable/torchvision/models.html#video-classification). ### Video ResNet models See reference training script [here](https://github.com/pytorch/vision/blob/main/references/video_classification/train.py): - input space: RGB - resize size: [128, 171] - crop size: [112, 112] - mean: [0.43216, 0.394666, 0.37645] - std: [0.22803, 0.22145, 0.216989] - number of classes: 400 Input data augmentations at training time (with optional parameters): 1. ConvertImageDtype 2. Resize (resize size value above) 3. Random horizontal flip (0.5) 4. Normalization (mean, std, see values above) 5. Random Crop (crop size value above) 6. Convert BCHW to CBHW Input data augmentations at validation time (with optional parameters): 1. ConvertImageDtype 2. Resize (resize size value above) 3. Normalization (mean, std, see values above) 4. Center Crop (crop size value above) 5. Convert BCHW to CBHW This translates in the following set of command-line arguments. Please note that `--batch-size` parameter controls the batch size per GPU. Moreover, note that our default `--lr` is configured for 64 GPUs which is how many we used for the Video resnet models: ``` # number of frames per clip --clip_len 16 \ --frame-rate 15 \ # allow for temporal jittering --clips_per_video 5 \ --batch-size 24 \ --epochs 45 \ --lr 0.64 \ # we use 10 epochs for linear warmup --lr-warmup-epochs 10 \ # learning rate is decayed at 20, 30, and 40 epoch by a factor of 10 --lr-milestones 20, 30, 40 \ --lr-gamma 0.1 \ --train-resize-size 128 171 \ --train-crop-size 112 112 \ --val-resize-size 128 171 \ --val-crop-size 112 112 ``` ### S3D The S3D model was trained similarly to the above but with the following changes on the default configuration: ``` --batch-size=12 --lr 0.2 --clip-len 64 --clips-per-video 5 --sync-bn \ --train-resize-size 256 256 --train-crop-size 224 224 --val-resize-size 256 256 --val-crop-size 224 224 ``` We used 64 GPUs to train the architecture. To estimate the validation statistics of the model, we run the reference script with the following configuration: ``` --batch-size=16 --test-only --clip-len 128 --clips-per-video 1 ``` ### Additional video modelling resources - [Video Model Zoo](https://github.com/facebookresearch/VMZ) - [PySlowFast](https://github.com/facebookresearch/SlowFast) ### References [0] _D. Tran, H. Wang, L. Torresani, J. Ray, Y. LeCun and M. Paluri_: A Closer Look at Spatiotemporal Convolutions for Action Recognition. _CVPR 2018_ ([paper](https://research.fb.com/wp-content/uploads/2018/04/a-closer-look-at-spatiotemporal-convolutions-for-action-recognition.pdf)) [1] _W. Kay, J. Carreira, K. Simonyan, B. Zhang, C. Hillier, S. Vijayanarasimhan, F. Viola, T. Green, T. Back, P. Natsev, M. Suleyman, A. Zisserman_: The Kinetics Human Action Video Dataset ([paper](https://arxiv.org/abs/1705.06950)) vision-0.19.1/references/video_classification/datasets.py000066400000000000000000000006701466211133600236030ustar00rootroot00000000000000from typing import Tuple import torchvision from torch import Tensor class KineticsWithVideoId(torchvision.datasets.Kinetics): def __getitem__(self, idx: int) -> Tuple[Tensor, Tensor, int]: video, audio, info, video_idx = self.video_clips.get_clip(idx) label = self.samples[video_idx][1] if self.transform is not None: video = self.transform(video) return video, audio, label, video_idx vision-0.19.1/references/video_classification/presets.py000066400000000000000000000036201466211133600234560ustar00rootroot00000000000000import torch from torchvision.transforms import transforms from transforms import ConvertBCHWtoCBHW class VideoClassificationPresetTrain: def __init__( self, *, crop_size, resize_size, mean=(0.43216, 0.394666, 0.37645), std=(0.22803, 0.22145, 0.216989), hflip_prob=0.5, ): trans = [ transforms.ConvertImageDtype(torch.float32), # We hard-code antialias=False to preserve results after we changed # its default from None to True (see # https://github.com/pytorch/vision/pull/7160) # TODO: we could re-train the video models with antialias=True? transforms.Resize(resize_size, antialias=False), ] if hflip_prob > 0: trans.append(transforms.RandomHorizontalFlip(hflip_prob)) trans.extend([transforms.Normalize(mean=mean, std=std), transforms.RandomCrop(crop_size), ConvertBCHWtoCBHW()]) self.transforms = transforms.Compose(trans) def __call__(self, x): return self.transforms(x) class VideoClassificationPresetEval: def __init__(self, *, crop_size, resize_size, mean=(0.43216, 0.394666, 0.37645), std=(0.22803, 0.22145, 0.216989)): self.transforms = transforms.Compose( [ transforms.ConvertImageDtype(torch.float32), # We hard-code antialias=False to preserve results after we changed # its default from None to True (see # https://github.com/pytorch/vision/pull/7160) # TODO: we could re-train the video models with antialias=True? transforms.Resize(resize_size, antialias=False), transforms.Normalize(mean=mean, std=std), transforms.CenterCrop(crop_size), ConvertBCHWtoCBHW(), ] ) def __call__(self, x): return self.transforms(x) vision-0.19.1/references/video_classification/train.py000066400000000000000000000435761466211133600231240ustar00rootroot00000000000000import datetime import os import time import warnings import datasets import presets import torch import torch.utils.data import torchvision import torchvision.datasets.video_utils import utils from torch import nn from torch.utils.data.dataloader import default_collate from torchvision.datasets.samplers import DistributedSampler, RandomClipSampler, UniformClipSampler def train_one_epoch(model, criterion, optimizer, lr_scheduler, data_loader, device, epoch, print_freq, scaler=None): model.train() metric_logger = utils.MetricLogger(delimiter=" ") metric_logger.add_meter("lr", utils.SmoothedValue(window_size=1, fmt="{value}")) metric_logger.add_meter("clips/s", utils.SmoothedValue(window_size=10, fmt="{value:.3f}")) header = f"Epoch: [{epoch}]" for video, target, _ in metric_logger.log_every(data_loader, print_freq, header): start_time = time.time() video, target = video.to(device), target.to(device) with torch.cuda.amp.autocast(enabled=scaler is not None): output = model(video) loss = criterion(output, target) optimizer.zero_grad() if scaler is not None: scaler.scale(loss).backward() scaler.step(optimizer) scaler.update() else: loss.backward() optimizer.step() acc1, acc5 = utils.accuracy(output, target, topk=(1, 5)) batch_size = video.shape[0] metric_logger.update(loss=loss.item(), lr=optimizer.param_groups[0]["lr"]) metric_logger.meters["acc1"].update(acc1.item(), n=batch_size) metric_logger.meters["acc5"].update(acc5.item(), n=batch_size) metric_logger.meters["clips/s"].update(batch_size / (time.time() - start_time)) lr_scheduler.step() def evaluate(model, criterion, data_loader, device): model.eval() metric_logger = utils.MetricLogger(delimiter=" ") header = "Test:" num_processed_samples = 0 # Group and aggregate output of a video num_videos = len(data_loader.dataset.samples) num_classes = len(data_loader.dataset.classes) agg_preds = torch.zeros((num_videos, num_classes), dtype=torch.float32, device=device) agg_targets = torch.zeros((num_videos), dtype=torch.int32, device=device) with torch.inference_mode(): for video, target, video_idx in metric_logger.log_every(data_loader, 100, header): video = video.to(device, non_blocking=True) target = target.to(device, non_blocking=True) output = model(video) loss = criterion(output, target) # Use softmax to convert output into prediction probability preds = torch.softmax(output, dim=1) for b in range(video.size(0)): idx = video_idx[b].item() agg_preds[idx] += preds[b].detach() agg_targets[idx] = target[b].detach().item() acc1, acc5 = utils.accuracy(output, target, topk=(1, 5)) # FIXME need to take into account that the datasets # could have been padded in distributed setup batch_size = video.shape[0] metric_logger.update(loss=loss.item()) metric_logger.meters["acc1"].update(acc1.item(), n=batch_size) metric_logger.meters["acc5"].update(acc5.item(), n=batch_size) num_processed_samples += batch_size # gather the stats from all processes num_processed_samples = utils.reduce_across_processes(num_processed_samples) if isinstance(data_loader.sampler, DistributedSampler): # Get the len of UniformClipSampler inside DistributedSampler num_data_from_sampler = len(data_loader.sampler.dataset) else: num_data_from_sampler = len(data_loader.sampler) if ( hasattr(data_loader.dataset, "__len__") and num_data_from_sampler != num_processed_samples and torch.distributed.get_rank() == 0 ): # See FIXME above warnings.warn( f"It looks like the sampler has {num_data_from_sampler} samples, but {num_processed_samples} " "samples were used for the validation, which might bias the results. " "Try adjusting the batch size and / or the world size. " "Setting the world size to 1 is always a safe bet." ) metric_logger.synchronize_between_processes() print( " * Clip Acc@1 {top1.global_avg:.3f} Clip Acc@5 {top5.global_avg:.3f}".format( top1=metric_logger.acc1, top5=metric_logger.acc5 ) ) # Reduce the agg_preds and agg_targets from all gpu and show result agg_preds = utils.reduce_across_processes(agg_preds) agg_targets = utils.reduce_across_processes(agg_targets, op=torch.distributed.ReduceOp.MAX) agg_acc1, agg_acc5 = utils.accuracy(agg_preds, agg_targets, topk=(1, 5)) print(" * Video Acc@1 {acc1:.3f} Video Acc@5 {acc5:.3f}".format(acc1=agg_acc1, acc5=agg_acc5)) return metric_logger.acc1.global_avg def _get_cache_path(filepath, args): import hashlib value = f"{filepath}-{args.clip_len}-{args.kinetics_version}-{args.frame_rate}" h = hashlib.sha1(value.encode()).hexdigest() cache_path = os.path.join("~", ".torch", "vision", "datasets", "kinetics", h[:10] + ".pt") cache_path = os.path.expanduser(cache_path) return cache_path def collate_fn(batch): # remove audio from the batch batch = [(d[0], d[2], d[3]) for d in batch] return default_collate(batch) def main(args): if args.output_dir: utils.mkdir(args.output_dir) utils.init_distributed_mode(args) print(args) device = torch.device(args.device) if args.use_deterministic_algorithms: torch.backends.cudnn.benchmark = False torch.use_deterministic_algorithms(True) else: torch.backends.cudnn.benchmark = True # Data loading code print("Loading data") val_resize_size = tuple(args.val_resize_size) val_crop_size = tuple(args.val_crop_size) train_resize_size = tuple(args.train_resize_size) train_crop_size = tuple(args.train_crop_size) traindir = os.path.join(args.data_path, "train") valdir = os.path.join(args.data_path, "val") print("Loading training data") st = time.time() cache_path = _get_cache_path(traindir, args) transform_train = presets.VideoClassificationPresetTrain(crop_size=train_crop_size, resize_size=train_resize_size) if args.cache_dataset and os.path.exists(cache_path): print(f"Loading dataset_train from {cache_path}") dataset, _ = torch.load(cache_path, weights_only=True) dataset.transform = transform_train else: if args.distributed: print("It is recommended to pre-compute the dataset cache on a single-gpu first, as it will be faster") dataset = datasets.KineticsWithVideoId( args.data_path, frames_per_clip=args.clip_len, num_classes=args.kinetics_version, split="train", step_between_clips=1, transform=transform_train, frame_rate=args.frame_rate, extensions=( "avi", "mp4", ), output_format="TCHW", ) if args.cache_dataset: print(f"Saving dataset_train to {cache_path}") utils.mkdir(os.path.dirname(cache_path)) utils.save_on_master((dataset, traindir), cache_path) print("Took", time.time() - st) print("Loading validation data") cache_path = _get_cache_path(valdir, args) if args.weights and args.test_only: weights = torchvision.models.get_weight(args.weights) transform_test = weights.transforms() else: transform_test = presets.VideoClassificationPresetEval(crop_size=val_crop_size, resize_size=val_resize_size) if args.cache_dataset and os.path.exists(cache_path): print(f"Loading dataset_test from {cache_path}") dataset_test, _ = torch.load(cache_path, weights_only=True) dataset_test.transform = transform_test else: if args.distributed: print("It is recommended to pre-compute the dataset cache on a single-gpu first, as it will be faster") dataset_test = datasets.KineticsWithVideoId( args.data_path, frames_per_clip=args.clip_len, num_classes=args.kinetics_version, split="val", step_between_clips=1, transform=transform_test, frame_rate=args.frame_rate, extensions=( "avi", "mp4", ), output_format="TCHW", ) if args.cache_dataset: print(f"Saving dataset_test to {cache_path}") utils.mkdir(os.path.dirname(cache_path)) utils.save_on_master((dataset_test, valdir), cache_path) print("Creating data loaders") train_sampler = RandomClipSampler(dataset.video_clips, args.clips_per_video) test_sampler = UniformClipSampler(dataset_test.video_clips, args.clips_per_video) if args.distributed: train_sampler = DistributedSampler(train_sampler) test_sampler = DistributedSampler(test_sampler, shuffle=False) data_loader = torch.utils.data.DataLoader( dataset, batch_size=args.batch_size, sampler=train_sampler, num_workers=args.workers, pin_memory=True, collate_fn=collate_fn, ) data_loader_test = torch.utils.data.DataLoader( dataset_test, batch_size=args.batch_size, sampler=test_sampler, num_workers=args.workers, pin_memory=True, collate_fn=collate_fn, ) print("Creating model") model = torchvision.models.get_model(args.model, weights=args.weights) model.to(device) if args.distributed and args.sync_bn: model = torch.nn.SyncBatchNorm.convert_sync_batchnorm(model) criterion = nn.CrossEntropyLoss() optimizer = torch.optim.SGD(model.parameters(), lr=args.lr, momentum=args.momentum, weight_decay=args.weight_decay) scaler = torch.cuda.amp.GradScaler() if args.amp else None # convert scheduler to be per iteration, not per epoch, for warmup that lasts # between different epochs iters_per_epoch = len(data_loader) lr_milestones = [iters_per_epoch * (m - args.lr_warmup_epochs) for m in args.lr_milestones] main_lr_scheduler = torch.optim.lr_scheduler.MultiStepLR(optimizer, milestones=lr_milestones, gamma=args.lr_gamma) if args.lr_warmup_epochs > 0: warmup_iters = iters_per_epoch * args.lr_warmup_epochs args.lr_warmup_method = args.lr_warmup_method.lower() if args.lr_warmup_method == "linear": warmup_lr_scheduler = torch.optim.lr_scheduler.LinearLR( optimizer, start_factor=args.lr_warmup_decay, total_iters=warmup_iters ) elif args.lr_warmup_method == "constant": warmup_lr_scheduler = torch.optim.lr_scheduler.ConstantLR( optimizer, factor=args.lr_warmup_decay, total_iters=warmup_iters ) else: raise RuntimeError( f"Invalid warmup lr method '{args.lr_warmup_method}'. Only linear and constant are supported." ) lr_scheduler = torch.optim.lr_scheduler.SequentialLR( optimizer, schedulers=[warmup_lr_scheduler, main_lr_scheduler], milestones=[warmup_iters] ) else: lr_scheduler = main_lr_scheduler model_without_ddp = model if args.distributed: model = torch.nn.parallel.DistributedDataParallel(model, device_ids=[args.gpu]) model_without_ddp = model.module if args.resume: checkpoint = torch.load(args.resume, map_location="cpu", weights_only=True) model_without_ddp.load_state_dict(checkpoint["model"]) optimizer.load_state_dict(checkpoint["optimizer"]) lr_scheduler.load_state_dict(checkpoint["lr_scheduler"]) args.start_epoch = checkpoint["epoch"] + 1 if args.amp: scaler.load_state_dict(checkpoint["scaler"]) if args.test_only: # We disable the cudnn benchmarking because it can noticeably affect the accuracy torch.backends.cudnn.benchmark = False torch.backends.cudnn.deterministic = True evaluate(model, criterion, data_loader_test, device=device) return print("Start training") start_time = time.time() for epoch in range(args.start_epoch, args.epochs): if args.distributed: train_sampler.set_epoch(epoch) train_one_epoch(model, criterion, optimizer, lr_scheduler, data_loader, device, epoch, args.print_freq, scaler) evaluate(model, criterion, data_loader_test, device=device) if args.output_dir: checkpoint = { "model": model_without_ddp.state_dict(), "optimizer": optimizer.state_dict(), "lr_scheduler": lr_scheduler.state_dict(), "epoch": epoch, "args": args, } if args.amp: checkpoint["scaler"] = scaler.state_dict() utils.save_on_master(checkpoint, os.path.join(args.output_dir, f"model_{epoch}.pth")) utils.save_on_master(checkpoint, os.path.join(args.output_dir, "checkpoint.pth")) total_time = time.time() - start_time total_time_str = str(datetime.timedelta(seconds=int(total_time))) print(f"Training time {total_time_str}") def get_args_parser(add_help=True): import argparse parser = argparse.ArgumentParser(description="PyTorch Video Classification Training", add_help=add_help) parser.add_argument("--data-path", default="/datasets01_101/kinetics/070618/", type=str, help="dataset path") parser.add_argument( "--kinetics-version", default="400", type=str, choices=["400", "600"], help="Select kinetics version" ) parser.add_argument("--model", default="r2plus1d_18", type=str, help="model name") parser.add_argument("--device", default="cuda", type=str, help="device (Use cuda or cpu Default: cuda)") parser.add_argument("--clip-len", default=16, type=int, metavar="N", help="number of frames per clip") parser.add_argument("--frame-rate", default=15, type=int, metavar="N", help="the frame rate") parser.add_argument( "--clips-per-video", default=5, type=int, metavar="N", help="maximum number of clips per video to consider" ) parser.add_argument( "-b", "--batch-size", default=24, type=int, help="images per gpu, the total batch size is $NGPU x batch_size" ) parser.add_argument("--epochs", default=45, type=int, metavar="N", help="number of total epochs to run") parser.add_argument( "-j", "--workers", default=10, type=int, metavar="N", help="number of data loading workers (default: 10)" ) parser.add_argument("--lr", default=0.64, type=float, help="initial learning rate") parser.add_argument("--momentum", default=0.9, type=float, metavar="M", help="momentum") parser.add_argument( "--wd", "--weight-decay", default=1e-4, type=float, metavar="W", help="weight decay (default: 1e-4)", dest="weight_decay", ) parser.add_argument("--lr-milestones", nargs="+", default=[20, 30, 40], type=int, help="decrease lr on milestones") parser.add_argument("--lr-gamma", default=0.1, type=float, help="decrease lr by a factor of lr-gamma") parser.add_argument("--lr-warmup-epochs", default=10, type=int, help="the number of epochs to warmup (default: 10)") parser.add_argument("--lr-warmup-method", default="linear", type=str, help="the warmup method (default: linear)") parser.add_argument("--lr-warmup-decay", default=0.001, type=float, help="the decay for lr") parser.add_argument("--print-freq", default=10, type=int, help="print frequency") parser.add_argument("--output-dir", default=".", type=str, help="path to save outputs") parser.add_argument("--resume", default="", type=str, help="path of checkpoint") parser.add_argument("--start-epoch", default=0, type=int, metavar="N", help="start epoch") parser.add_argument( "--cache-dataset", dest="cache_dataset", help="Cache the datasets for quicker initialization. It also serializes the transforms", action="store_true", ) parser.add_argument( "--sync-bn", dest="sync_bn", help="Use sync batch norm", action="store_true", ) parser.add_argument( "--test-only", dest="test_only", help="Only test the model", action="store_true", ) parser.add_argument( "--use-deterministic-algorithms", action="store_true", help="Forces the use of deterministic algorithms only." ) # distributed training parameters parser.add_argument("--world-size", default=1, type=int, help="number of distributed processes") parser.add_argument("--dist-url", default="env://", type=str, help="url used to set up distributed training") parser.add_argument( "--val-resize-size", default=(128, 171), nargs="+", type=int, help="the resize size used for validation (default: (128, 171))", ) parser.add_argument( "--val-crop-size", default=(112, 112), nargs="+", type=int, help="the central crop size used for validation (default: (112, 112))", ) parser.add_argument( "--train-resize-size", default=(128, 171), nargs="+", type=int, help="the resize size used for training (default: (128, 171))", ) parser.add_argument( "--train-crop-size", default=(112, 112), nargs="+", type=int, help="the random crop size used for training (default: (112, 112))", ) parser.add_argument("--weights", default=None, type=str, help="the weights enum name to load") # Mixed precision training parameters parser.add_argument("--amp", action="store_true", help="Use torch.cuda.amp for mixed precision training") return parser if __name__ == "__main__": args = get_args_parser().parse_args() main(args) vision-0.19.1/references/video_classification/transforms.py000066400000000000000000000003461466211133600241710ustar00rootroot00000000000000import torch import torch.nn as nn class ConvertBCHWtoCBHW(nn.Module): """Convert tensor from (B, C, H, W) to (C, B, H, W)""" def forward(self, vid: torch.Tensor) -> torch.Tensor: return vid.permute(1, 0, 2, 3) vision-0.19.1/references/video_classification/utils.py000066400000000000000000000173231466211133600231360ustar00rootroot00000000000000import datetime import errno import os import time from collections import defaultdict, deque import torch import torch.distributed as dist class SmoothedValue: """Track a series of values and provide access to smoothed values over a window or the global series average. """ def __init__(self, window_size=20, fmt=None): if fmt is None: fmt = "{median:.4f} ({global_avg:.4f})" self.deque = deque(maxlen=window_size) self.total = 0.0 self.count = 0 self.fmt = fmt def update(self, value, n=1): self.deque.append(value) self.count += n self.total += value * n def synchronize_between_processes(self): """ Warning: does not synchronize the deque! """ t = reduce_across_processes([self.count, self.total]) t = t.tolist() self.count = int(t[0]) self.total = t[1] @property def median(self): d = torch.tensor(list(self.deque)) return d.median().item() @property def avg(self): d = torch.tensor(list(self.deque), dtype=torch.float32) return d.mean().item() @property def global_avg(self): return self.total / self.count @property def max(self): return max(self.deque) @property def value(self): return self.deque[-1] def __str__(self): return self.fmt.format( median=self.median, avg=self.avg, global_avg=self.global_avg, max=self.max, value=self.value ) class MetricLogger: def __init__(self, delimiter="\t"): self.meters = defaultdict(SmoothedValue) self.delimiter = delimiter def update(self, **kwargs): for k, v in kwargs.items(): if isinstance(v, torch.Tensor): v = v.item() if not isinstance(v, (float, int)): raise TypeError( f"This method expects the value of the input arguments to be of type float or int, instead got {type(v)}" ) self.meters[k].update(v) def __getattr__(self, attr): if attr in self.meters: return self.meters[attr] if attr in self.__dict__: return self.__dict__[attr] raise AttributeError(f"'{type(self).__name__}' object has no attribute '{attr}'") def __str__(self): loss_str = [] for name, meter in self.meters.items(): loss_str.append(f"{name}: {str(meter)}") return self.delimiter.join(loss_str) def synchronize_between_processes(self): for meter in self.meters.values(): meter.synchronize_between_processes() def add_meter(self, name, meter): self.meters[name] = meter def log_every(self, iterable, print_freq, header=None): i = 0 if not header: header = "" start_time = time.time() end = time.time() iter_time = SmoothedValue(fmt="{avg:.4f}") data_time = SmoothedValue(fmt="{avg:.4f}") space_fmt = ":" + str(len(str(len(iterable)))) + "d" if torch.cuda.is_available(): log_msg = self.delimiter.join( [ header, "[{0" + space_fmt + "}/{1}]", "eta: {eta}", "{meters}", "time: {time}", "data: {data}", "max mem: {memory:.0f}", ] ) else: log_msg = self.delimiter.join( [header, "[{0" + space_fmt + "}/{1}]", "eta: {eta}", "{meters}", "time: {time}", "data: {data}"] ) MB = 1024.0 * 1024.0 for obj in iterable: data_time.update(time.time() - end) yield obj iter_time.update(time.time() - end) if i % print_freq == 0: eta_seconds = iter_time.global_avg * (len(iterable) - i) eta_string = str(datetime.timedelta(seconds=int(eta_seconds))) if torch.cuda.is_available(): print( log_msg.format( i, len(iterable), eta=eta_string, meters=str(self), time=str(iter_time), data=str(data_time), memory=torch.cuda.max_memory_allocated() / MB, ) ) else: print( log_msg.format( i, len(iterable), eta=eta_string, meters=str(self), time=str(iter_time), data=str(data_time) ) ) i += 1 end = time.time() total_time = time.time() - start_time total_time_str = str(datetime.timedelta(seconds=int(total_time))) print(f"{header} Total time: {total_time_str}") def accuracy(output, target, topk=(1,)): """Computes the accuracy over the k top predictions for the specified values of k""" with torch.inference_mode(): maxk = max(topk) batch_size = target.size(0) _, pred = output.topk(maxk, 1, True, True) pred = pred.t() correct = pred.eq(target[None]) res = [] for k in topk: correct_k = correct[:k].flatten().sum(dtype=torch.float32) res.append(correct_k * (100.0 / batch_size)) return res def mkdir(path): try: os.makedirs(path) except OSError as e: if e.errno != errno.EEXIST: raise def setup_for_distributed(is_master): """ This function disables printing when not in master process """ import builtins as __builtin__ builtin_print = __builtin__.print def print(*args, **kwargs): force = kwargs.pop("force", False) if is_master or force: builtin_print(*args, **kwargs) __builtin__.print = print def is_dist_avail_and_initialized(): if not dist.is_available(): return False if not dist.is_initialized(): return False return True def get_world_size(): if not is_dist_avail_and_initialized(): return 1 return dist.get_world_size() def get_rank(): if not is_dist_avail_and_initialized(): return 0 return dist.get_rank() def is_main_process(): return get_rank() == 0 def save_on_master(*args, **kwargs): if is_main_process(): torch.save(*args, **kwargs) def init_distributed_mode(args): if "RANK" in os.environ and "WORLD_SIZE" in os.environ: args.rank = int(os.environ["RANK"]) args.world_size = int(os.environ["WORLD_SIZE"]) args.gpu = int(os.environ["LOCAL_RANK"]) elif "SLURM_PROCID" in os.environ: args.rank = int(os.environ["SLURM_PROCID"]) args.gpu = args.rank % torch.cuda.device_count() elif hasattr(args, "rank"): pass else: print("Not using distributed mode") args.distributed = False return args.distributed = True torch.cuda.set_device(args.gpu) args.dist_backend = "nccl" print(f"| distributed init (rank {args.rank}): {args.dist_url}", flush=True) torch.distributed.init_process_group( backend=args.dist_backend, init_method=args.dist_url, world_size=args.world_size, rank=args.rank ) torch.distributed.barrier() setup_for_distributed(args.rank == 0) def reduce_across_processes(val, op=dist.ReduceOp.SUM): if not is_dist_avail_and_initialized(): # nothing to sync, but we still convert to tensor for consistency with the distributed case. return torch.tensor(val) t = torch.tensor(val, device="cuda") dist.barrier() dist.all_reduce(t, op=op) return t vision-0.19.1/scripts/000077500000000000000000000000001466211133600146035ustar00rootroot00000000000000vision-0.19.1/scripts/README.rst000066400000000000000000000015201466211133600162700ustar00rootroot00000000000000Utility scripts =============== * `fbcode_to_main_sync.sh` This shell script is used to synchronise internal changes with the main repository. To run this script: .. code:: bash chmod +x fbcode_to_main_sync.sh ./fbcode_to_main_sync.sh where ``commit_hash`` represents the commit hash in fbsync branch from where we should start the sync. ``fork_name`` is the name of the remote corresponding to your fork, you can check it by doing `"git remote -v"`. ``fork_main_branch`` (optional) is the name of the main branch on your fork(default="main"). This script will create PRs corresponding to the commits in fbsync. Please review these, add the [FBcode->GH] prefix on the title and publish them. Most importantly, add the [FBcode->GH] prefix at the beginning of the merge message as well. vision-0.19.1/scripts/collect_model_urls.py000066400000000000000000000007441466211133600210340ustar00rootroot00000000000000import pathlib import re import sys MODEL_URL_PATTERN = re.compile(r"https://download[.]pytorch[.]org/models/.+?[.]pth") def main(*roots): model_urls = set() for root in roots: for path in pathlib.Path(root).rglob("*.py"): with open(path, "r") as file: for line in file: model_urls.update(MODEL_URL_PATTERN.findall(line)) print("\n".join(sorted(model_urls))) if __name__ == "__main__": main(*sys.argv[1:]) vision-0.19.1/scripts/download_model_urls.py000066400000000000000000000025461466211133600212200ustar00rootroot00000000000000import asyncio import sys from pathlib import Path from time import perf_counter from urllib.parse import urlsplit import aiofiles import aiohttp from torchvision import models from tqdm.asyncio import tqdm async def main(download_root): download_root.mkdir(parents=True, exist_ok=True) urls = {weight.url for name in models.list_models() for weight in iter(models.get_model_weights(name))} async with aiohttp.ClientSession(timeout=aiohttp.ClientTimeout(total=None)) as session: await tqdm.gather(*[download(download_root, session, url) for url in urls]) async def download(download_root, session, url): response = await session.get(url, params=dict(source="ci")) assert response.ok file_name = Path(urlsplit(url).path).name async with aiofiles.open(download_root / file_name, "wb") as f: async for data in response.content.iter_any(): await f.write(data) if __name__ == "__main__": download_root = ( (Path(sys.argv[1]) if len(sys.argv) > 1 else Path("~/.cache/torch/hub/checkpoints")).expanduser().resolve() ) print(f"Downloading model weights to {download_root}") start = perf_counter() asyncio.get_event_loop().run_until_complete(main(download_root)) stop = perf_counter() minutes, seconds = divmod(stop - start, 60) print(f"Download took {minutes:2.0f}m {seconds:2.0f}s") vision-0.19.1/scripts/fbcode_to_main_sync.sh000077500000000000000000000021731466211133600211310ustar00rootroot00000000000000#!/bin/bash if [ -z $1 ] then echo "Commit hash is required to be passed when running this script." echo "./fbcode_to_main_sync.sh " exit 1 fi commit_hash=$1 if [ -z $2 ] then echo "Fork name is required to be passed when running this script." echo "./fbcode_to_main_sync.sh " exit 1 fi fork_name=$2 if [ -z $3 ] then fork_main_branch="main" else fork_main_branch=$3 fi from_branch="fbsync" git stash git checkout $from_branch git pull # Add random prefix in the new branch name to keep it unique per run prefix=$RANDOM IFS=' ' for line in $(git log --pretty=oneline "$commit_hash"..HEAD) do if [[ $line != *\[fbsync\]* ]] then echo "Parsing $line" hash=$(echo $line | cut -f1 -d' ') git checkout $fork_main_branch git checkout -B cherrypick_${prefix}_${hash} git cherry-pick -x "$hash" git push $fork_name cherrypick_${prefix}_${hash} git checkout $from_branch fi done echo "Please review the PRs, add [FBCode->GH] prefix in the title and publish them." vision-0.19.1/scripts/release_notes/000077500000000000000000000000001466211133600174335ustar00rootroot00000000000000vision-0.19.1/scripts/release_notes/classify_prs.py000066400000000000000000000072351466211133600225150ustar00rootroot00000000000000# In[1]: import pandas as pd # In[2]: data_filename = "data.json" df = pd.read_json(data_filename).T df.tail() # In[3]: all_labels = {lbl for labels in df["labels"] for lbl in labels} all_labels # In[4]: # Add one column per label for label in all_labels: df[label] = df["labels"].apply(lambda labels_list: label in labels_list) df.head() # In[5]: # Add a clean "module" column. It contains tuples since PRs can have more than one module. # Maybe we should include "topics" in that column as well? all_modules = { # mapping: full name -> clean name label: "".join(label.split(" ")[1:]) for label in all_labels if label.startswith("module") } # We use an ugly loop, but whatever ¯\_(ツ)_/¯ df["module"] = [[] for _ in range(len(df))] for i, row in df.iterrows(): for full_name, clean_name in all_modules.items(): if full_name in row["labels"]: row["module"].append(clean_name) df["module"] = df.module.apply(tuple) df.head() # In[6]: mod_df = df.set_index("module").sort_index() mod_df.tail() # In[7]: # All improvement PRs mod_df[mod_df["enhancement"]].head() # In[8]: # improvement f module # note: don't filter module name on the index as the index contain tuples with non-exclusive values # Use the boolean column instead mod_df[mod_df["enhancement"] & mod_df["module: transforms"]] # In[9]: def format_prs(mod_df, exclude_prototype=True): out = [] for idx, row in mod_df.iterrows(): if exclude_prototype and "prototype" in row and row["prototype"]: continue modules = idx # Put "documentation" and "tests" first for sorting to be dece for last_module in ("documentation", "tests"): if last_module in modules: modules = [m for m in modules if m != last_module] + [last_module] module = f"[{', '.join(modules)}]" module = module.replace("referencescripts", "reference scripts") module = module.replace("code", "reference scripts") out.append(f"{module} {row['title']}") return "\n".join(out) # In[10]: included_prs = pd.DataFrame() # If labels are accurate, this shouhld generate most of the release notes already # We keep track of the included PRs to figure out which ones are missing for section_title, module_idx in ( ("Backward-incompatible changes", "bc-breaking"), ("Deprecations", "deprecation"), ("New Features", "new feature"), ("Improvements", "enhancement"), ("Bug Fixes", "bug"), ("Code Quality", "code quality"), ): if module_idx in mod_df: print(f"## {section_title}") print() tmp_df = mod_df[mod_df[module_idx]] included_prs = pd.concat([included_prs, tmp_df]) print(format_prs(tmp_df)) print() # In[11]: # Missing PRs are these ones... classify them manually missing_prs = pd.concat([mod_df, included_prs]).drop_duplicates(subset="pr_number", keep=False) print(format_prs(missing_prs)) # In[12]: # Generate list of contributors print() print("## Contributors") previous_release = "c35d3855ccbfa6a36e6ae6337a1f2c721c1f1e78" current_release = "5181a854d8b127cf465cd22a67c1b5aaf6ccae05" print( f"{{ git shortlog -s {previous_release}..{current_release} | cut -f2- & git log -s {previous_release}..{current_release} | grep Co-authored | cut -f2- -d: | cut -f1 -d\\< | sed 's/^ *//;s/ *//' ; }} | sort --ignore-case | uniq | tr '\\n' ';' | sed 's/;/, /g;s/,//' | fold -s" ) # In[13]: # Utility to extract PR numbers only from multiple lines, useful to bundle all # the docs changes for example: import re s = """ [] Remove unnecessary dependency from macOS/Conda binaries (#8077) [rocm] [ROCm] remove HCC references (#8070) """ print(", ".join(re.findall("(#\\d+)", s))) vision-0.19.1/scripts/release_notes/retrieve_prs_data.py000066400000000000000000000135551466211133600235200ustar00rootroot00000000000000import json import locale import os import re import subprocess from collections import namedtuple from os.path import expanduser import requests Features = namedtuple( "Features", [ "title", "body", "pr_number", "files_changed", "labels", ], ) def dict_to_features(dct): return Features( title=dct["title"], body=dct["body"], pr_number=dct["pr_number"], files_changed=dct["files_changed"], labels=dct["labels"], ) def features_to_dict(features): return dict(features._asdict()) def run(command): """Returns (return-code, stdout, stderr)""" p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) output, err = p.communicate() rc = p.returncode enc = locale.getpreferredencoding() output = output.decode(enc) err = err.decode(enc) return rc, output.strip(), err.strip() def commit_body(commit_hash): cmd = f"git log -n 1 --pretty=format:%b {commit_hash}" ret, out, err = run(cmd) return out if ret == 0 else None def commit_title(commit_hash): cmd = f"git log -n 1 --pretty=format:%s {commit_hash}" ret, out, err = run(cmd) return out if ret == 0 else None def commit_files_changed(commit_hash): cmd = f"git diff-tree --no-commit-id --name-only -r {commit_hash}" ret, out, err = run(cmd) return out.split("\n") if ret == 0 else None def parse_pr_number(body, commit_hash, title): regex = r"(#[0-9]+)" matches = re.findall(regex, title) if len(matches) == 0: if "revert" not in title.lower() and "updating submodules" not in title.lower(): print(f"[{commit_hash}: {title}] Could not parse PR number, ignoring PR") return None if len(matches) > 1: print(f"[{commit_hash}: {title}] Got two PR numbers, using the last one") return matches[-1][1:] return matches[0][1:] def get_ghstack_token(): pattern = "github_oauth = (.*)" with open(expanduser("~/.ghstackrc"), "r+") as f: config = f.read() matches = re.findall(pattern, config) if len(matches) == 0: raise RuntimeError("Can't find a github oauth token") return matches[0] token = get_ghstack_token() headers = {"Authorization": f"token {token}"} def run_query(query): request = requests.post("https://api.github.com/graphql", json={"query": query}, headers=headers) if request.status_code == 200: return request.json() else: raise Exception(f"Query failed to run by returning code of {request.status_code}. {query}") def gh_labels(pr_number): query = f""" {{ repository(owner: "pytorch", name: "vision") {{ pullRequest(number: {pr_number}) {{ labels(first: 10) {{ edges {{ node {{ name }} }} }} }} }} }} """ query = run_query(query) edges = query["data"]["repository"]["pullRequest"]["labels"]["edges"] return [edge["node"]["name"] for edge in edges] def get_features(commit_hash, return_dict=False): title, body, files_changed = ( commit_title(commit_hash), commit_body(commit_hash), commit_files_changed(commit_hash), ) pr_number = parse_pr_number(body, commit_hash, title) labels = [] if pr_number is not None: labels = gh_labels(pr_number) result = Features(title, body, pr_number, files_changed, labels) if return_dict: return features_to_dict(result) return result class CommitDataCache: def __init__(self, path="results/data.json"): self.path = path self.data = {} if os.path.exists(path): self.data = self.read_from_disk() def get(self, commit): if commit not in self.data.keys(): # Fetch and cache the data self.data[commit] = get_features(commit) self.write_to_disk() return self.data[commit] def read_from_disk(self): with open(self.path) as f: data = json.load(f) data = {commit: dict_to_features(dct) for commit, dct in data.items()} return data def write_to_disk(self): data = {commit: features._asdict() for commit, features in self.data.items()} with open(self.path, "w") as f: json.dump(data, f) def get_commits_between(base_version, new_version): cmd = f"git merge-base {base_version} {new_version}" rc, merge_base, _ = run(cmd) assert rc == 0 # Returns a list of something like # b33e38ec47 Allow a higher-precision step type for Vec256::arange (#34555) cmd = f"git log --reverse --oneline {merge_base}..{new_version}" rc, commits, _ = run(cmd) assert rc == 0 log_lines = commits.split("\n") hashes, titles = zip(*[log_line.split(" ", 1) for log_line in log_lines]) return hashes, titles def convert_to_dataframes(feature_list): import pandas as pd df = pd.DataFrame.from_records(feature_list, columns=Features._fields) return df def main(base_version, new_version): hashes, titles = get_commits_between(base_version, new_version) cdc = CommitDataCache("data.json") for idx, commit in enumerate(hashes): if idx % 10 == 0: print(f"{idx} / {len(hashes)}") cdc.get(commit) return cdc if __name__ == "__main__": # d = get_features('2ab93592529243862ce8ad5b6acf2628ef8d0dc8') # print(d) # hashes, titles = get_commits_between("tags/v0.9.0", "fc852f3b39fe25dd8bf1dedee8f19ea04aa84c15") # Usage: change the tags below accordingly to the current release, then save the json with # cdc.write_to_disk(). # Then you can use classify_prs.py (as a notebook) # to open the json and generate the release notes semi-automatically. cdc = main("tags/v0.9.0", "fc852f3b39fe25dd8bf1dedee8f19ea04aa84c15") from IPython import embed embed() vision-0.19.1/setup.cfg000066400000000000000000000010721466211133600147350ustar00rootroot00000000000000[bdist_wheel] universal=1 [metadata] license_files = LICENSE [pep8] max-line-length = 120 [flake8] # note: we ignore all 501s (line too long) anyway as they're taken care of by black max-line-length = 120 ignore = E203, E402, W503, W504, F821, E501, B, C4, EXE per-file-ignores = __init__.py: F401, F403, F405 ./hubconf.py: F401 torchvision/models/mobilenet.py: F401, F403 torchvision/models/quantization/mobilenet.py: F401, F403 test/smoke_test.py: F401 exclude = venv [pydocstyle] select = D417 # Missing argument descriptions in the docstring vision-0.19.1/setup.py000066400000000000000000000533301466211133600146320ustar00rootroot00000000000000import distutils.command.clean import distutils.spawn import glob import os import shutil import subprocess import sys import torch from pkg_resources import DistributionNotFound, get_distribution, parse_version from setuptools import find_packages, setup from torch.utils.cpp_extension import BuildExtension, CppExtension, CUDA_HOME, CUDAExtension def read(*names, **kwargs): with open(os.path.join(os.path.dirname(__file__), *names), encoding=kwargs.get("encoding", "utf8")) as fp: return fp.read() def get_dist(pkgname): try: return get_distribution(pkgname) except DistributionNotFound: return None cwd = os.path.dirname(os.path.abspath(__file__)) version_txt = os.path.join(cwd, "version.txt") with open(version_txt) as f: version = f.readline().strip() sha = "Unknown" package_name = "torchvision" try: sha = subprocess.check_output(["git", "rev-parse", "HEAD"], cwd=cwd).decode("ascii").strip() except Exception: pass if os.getenv("BUILD_VERSION"): version = os.getenv("BUILD_VERSION") elif sha != "Unknown": version += "+" + sha[:7] def write_version_file(): version_path = os.path.join(cwd, "torchvision", "version.py") with open(version_path, "w") as f: f.write(f"__version__ = '{version}'\n") f.write(f"git_version = {repr(sha)}\n") f.write("from torchvision.extension import _check_cuda_version\n") f.write("if _check_cuda_version() > 0:\n") f.write(" cuda = _check_cuda_version()\n") pytorch_dep = "torch" if os.getenv("PYTORCH_VERSION"): pytorch_dep += "==" + os.getenv("PYTORCH_VERSION") requirements = [ "numpy", pytorch_dep, ] # Excluding 8.3.* because of https://github.com/pytorch/vision/issues/4934 pillow_ver = " >= 5.3.0, !=8.3.*" pillow_req = "pillow-simd" if get_dist("pillow-simd") is not None else "pillow" requirements.append(pillow_req + pillow_ver) def find_library(name, vision_include): this_dir = os.path.dirname(os.path.abspath(__file__)) build_prefix = os.environ.get("BUILD_PREFIX", None) is_conda_build = build_prefix is not None library_found = False conda_installed = False lib_folder = None include_folder = None library_header = f"{name}.h" # Lookup in TORCHVISION_INCLUDE or in the package file package_path = [os.path.join(this_dir, "torchvision")] for folder in vision_include + package_path: candidate_path = os.path.join(folder, library_header) library_found = os.path.exists(candidate_path) if library_found: break if not library_found: print(f"Running build on conda-build: {is_conda_build}") if is_conda_build: # Add conda headers/libraries if os.name == "nt": build_prefix = os.path.join(build_prefix, "Library") include_folder = os.path.join(build_prefix, "include") lib_folder = os.path.join(build_prefix, "lib") library_header_path = os.path.join(include_folder, library_header) library_found = os.path.isfile(library_header_path) conda_installed = library_found else: # Check if using Anaconda to produce wheels conda = shutil.which("conda") is_conda = conda is not None print(f"Running build on conda: {is_conda}") if is_conda: python_executable = sys.executable py_folder = os.path.dirname(python_executable) if os.name == "nt": env_path = os.path.join(py_folder, "Library") else: env_path = os.path.dirname(py_folder) lib_folder = os.path.join(env_path, "lib") include_folder = os.path.join(env_path, "include") library_header_path = os.path.join(include_folder, library_header) library_found = os.path.isfile(library_header_path) conda_installed = library_found if not library_found: if sys.platform == "linux": library_found = os.path.exists(f"/usr/include/{library_header}") library_found = library_found or os.path.exists(f"/usr/local/include/{library_header}") return library_found, conda_installed, include_folder, lib_folder def get_extensions(): this_dir = os.path.dirname(os.path.abspath(__file__)) extensions_dir = os.path.join(this_dir, "torchvision", "csrc") main_file = ( glob.glob(os.path.join(extensions_dir, "*.cpp")) + glob.glob(os.path.join(extensions_dir, "ops", "*.cpp")) + glob.glob(os.path.join(extensions_dir, "ops", "autocast", "*.cpp")) ) source_cpu = ( glob.glob(os.path.join(extensions_dir, "ops", "autograd", "*.cpp")) + glob.glob(os.path.join(extensions_dir, "ops", "cpu", "*.cpp")) + glob.glob(os.path.join(extensions_dir, "ops", "quantized", "cpu", "*.cpp")) ) source_mps = glob.glob(os.path.join(extensions_dir, "ops", "mps", "*.mm")) print("Compiling extensions with following flags:") force_cuda = os.getenv("FORCE_CUDA", "0") == "1" print(f" FORCE_CUDA: {force_cuda}") force_mps = os.getenv("FORCE_MPS", "0") == "1" print(f" FORCE_MPS: {force_mps}") debug_mode = os.getenv("DEBUG", "0") == "1" print(f" DEBUG: {debug_mode}") use_png = os.getenv("TORCHVISION_USE_PNG", "1") == "1" print(f" TORCHVISION_USE_PNG: {use_png}") use_jpeg = os.getenv("TORCHVISION_USE_JPEG", "1") == "1" print(f" TORCHVISION_USE_JPEG: {use_jpeg}") use_nvjpeg = os.getenv("TORCHVISION_USE_NVJPEG", "1") == "1" print(f" TORCHVISION_USE_NVJPEG: {use_nvjpeg}") use_ffmpeg = os.getenv("TORCHVISION_USE_FFMPEG", "1") == "1" print(f" TORCHVISION_USE_FFMPEG: {use_ffmpeg}") use_video_codec = os.getenv("TORCHVISION_USE_VIDEO_CODEC", "1") == "1" print(f" TORCHVISION_USE_VIDEO_CODEC: {use_video_codec}") nvcc_flags = os.getenv("NVCC_FLAGS", "") print(f" NVCC_FLAGS: {nvcc_flags}") is_rocm_pytorch = False if torch.__version__ >= "1.5": from torch.utils.cpp_extension import ROCM_HOME is_rocm_pytorch = (torch.version.hip is not None) and (ROCM_HOME is not None) if is_rocm_pytorch: from torch.utils.hipify import hipify_python hipify_python.hipify( project_directory=this_dir, output_directory=this_dir, includes="torchvision/csrc/ops/cuda/*", show_detailed=True, is_pytorch_extension=True, ) source_cuda = glob.glob(os.path.join(extensions_dir, "ops", "hip", "*.hip")) # Copy over additional files for file in glob.glob(r"torchvision/csrc/ops/cuda/*.h"): shutil.copy(file, "torchvision/csrc/ops/hip") else: source_cuda = glob.glob(os.path.join(extensions_dir, "ops", "cuda", "*.cu")) sources = main_file + source_cpu extension = CppExtension define_macros = [] extra_compile_args = {"cxx": []} if (torch.cuda.is_available() and ((CUDA_HOME is not None) or is_rocm_pytorch)) or force_cuda: extension = CUDAExtension sources += source_cuda if not is_rocm_pytorch: define_macros += [("WITH_CUDA", None)] if nvcc_flags == "": nvcc_flags = [] else: nvcc_flags = nvcc_flags.split(" ") else: define_macros += [("WITH_HIP", None)] nvcc_flags = [] extra_compile_args["nvcc"] = nvcc_flags elif torch.backends.mps.is_available() or force_mps: sources += source_mps if sys.platform == "win32": define_macros += [("torchvision_EXPORTS", None)] extra_compile_args["cxx"].append("/MP") if debug_mode: print("Compiling in debug mode") extra_compile_args["cxx"].append("-g") extra_compile_args["cxx"].append("-O0") if "nvcc" in extra_compile_args: # we have to remove "-OX" and "-g" flag if exists and append nvcc_flags = extra_compile_args["nvcc"] extra_compile_args["nvcc"] = [f for f in nvcc_flags if not ("-O" in f or "-g" in f)] extra_compile_args["nvcc"].append("-O0") extra_compile_args["nvcc"].append("-g") else: print("Compiling with debug mode OFF") extra_compile_args["cxx"].append("-g0") sources = [os.path.join(extensions_dir, s) for s in sources] include_dirs = [extensions_dir] ext_modules = [ extension( "torchvision._C", sorted(sources), include_dirs=include_dirs, define_macros=define_macros, extra_compile_args=extra_compile_args, ) ] # ------------------- Torchvision extra extensions ------------------------ vision_include = os.environ.get("TORCHVISION_INCLUDE", None) vision_library = os.environ.get("TORCHVISION_LIBRARY", None) vision_include = vision_include.split(os.pathsep) if vision_include is not None else [] vision_library = vision_library.split(os.pathsep) if vision_library is not None else [] include_dirs += vision_include library_dirs = vision_library # Image reading extension image_macros = [] image_include = [extensions_dir] image_library = [] image_link_flags = [] # Locating libPNG libpng = shutil.which("libpng-config") pngfix = shutil.which("pngfix") png_found = libpng is not None or pngfix is not None use_png = use_png and png_found if use_png: print("Found PNG library") if libpng is not None: # Linux / Mac min_version = "1.6.0" png_version = subprocess.run([libpng, "--version"], stdout=subprocess.PIPE) png_version = png_version.stdout.strip().decode("utf-8") png_version = parse_version(png_version) if png_version >= parse_version(min_version): print("Building torchvision with PNG image support") png_lib = subprocess.run([libpng, "--libdir"], stdout=subprocess.PIPE) png_lib = png_lib.stdout.strip().decode("utf-8") if "disabled" not in png_lib: image_library += [png_lib] png_include = subprocess.run([libpng, "--I_opts"], stdout=subprocess.PIPE) png_include = png_include.stdout.strip().decode("utf-8") _, png_include = png_include.split("-I") image_include += [png_include] image_link_flags.append("png") print(f" libpng version: {png_version}") print(f" libpng include path: {png_include}") else: print("Could not add PNG image support to torchvision:") print(f" libpng minimum version {min_version}, found {png_version}") use_png = False else: # Windows png_lib = os.path.join(os.path.dirname(os.path.dirname(pngfix)), "lib") png_include = os.path.join(os.path.dirname(os.path.dirname(pngfix)), "include", "libpng16") image_library += [png_lib] image_include += [png_include] image_link_flags.append("libpng") else: print("Building torchvision without PNG image support") image_macros += [("PNG_FOUND", str(int(use_png)))] # Locating libjpeg (jpeg_found, jpeg_conda, jpeg_include, jpeg_lib) = find_library("jpeglib", vision_include) use_jpeg = use_jpeg and jpeg_found if use_jpeg: print("Building torchvision with JPEG image support") print(f" libjpeg include path: {jpeg_include}") print(f" libjpeg lib path: {jpeg_lib}") image_link_flags.append("jpeg") if jpeg_conda: image_library += [jpeg_lib] image_include += [jpeg_include] else: print("Building torchvision without JPEG image support") image_macros += [("JPEG_FOUND", str(int(use_jpeg)))] # Locating nvjpeg # Should be included in CUDA_HOME for CUDA >= 10.1, which is the minimum version we have in the CI nvjpeg_found = ( extension is CUDAExtension and CUDA_HOME is not None and os.path.exists(os.path.join(CUDA_HOME, "include", "nvjpeg.h")) ) use_nvjpeg = use_nvjpeg and nvjpeg_found if use_nvjpeg: print("Building torchvision with NVJPEG image support") image_link_flags.append("nvjpeg") else: print("Building torchvision without NVJPEG image support") image_macros += [("NVJPEG_FOUND", str(int(use_nvjpeg)))] image_path = os.path.join(extensions_dir, "io", "image") image_src = ( glob.glob(os.path.join(image_path, "*.cpp")) + glob.glob(os.path.join(image_path, "cpu", "*.cpp")) + glob.glob(os.path.join(image_path, "cpu", "giflib", "*.c")) ) if is_rocm_pytorch: image_src += glob.glob(os.path.join(image_path, "hip", "*.cpp")) # we need to exclude this in favor of the hipified source image_src.remove(os.path.join(image_path, "image.cpp")) else: image_src += glob.glob(os.path.join(image_path, "cuda", "*.cpp")) ext_modules.append( extension( "torchvision.image", image_src, include_dirs=image_include + include_dirs + [image_path], library_dirs=image_library + library_dirs, define_macros=image_macros, libraries=image_link_flags, extra_compile_args=extra_compile_args, ) ) # Locating ffmpeg ffmpeg_exe = shutil.which("ffmpeg") has_ffmpeg = ffmpeg_exe is not None ffmpeg_version = None # FIXME: Building torchvision with ffmpeg on MacOS or with Python 3.9 # FIXME: causes crash. See the following GitHub issues for more details. # FIXME: https://github.com/pytorch/pytorch/issues/65000 # FIXME: https://github.com/pytorch/vision/issues/3367 if sys.platform != "linux" or (sys.version_info.major == 3 and sys.version_info.minor == 9): has_ffmpeg = False if has_ffmpeg: try: # This is to check if ffmpeg is installed properly. ffmpeg_version = subprocess.check_output(["ffmpeg", "-version"]) except subprocess.CalledProcessError: print("Building torchvision without ffmpeg support") print(" Error fetching ffmpeg version, ignoring ffmpeg.") has_ffmpeg = False use_ffmpeg = use_ffmpeg and has_ffmpeg if use_ffmpeg: ffmpeg_libraries = {"libavcodec", "libavformat", "libavutil", "libswresample", "libswscale"} ffmpeg_bin = os.path.dirname(ffmpeg_exe) ffmpeg_root = os.path.dirname(ffmpeg_bin) ffmpeg_include_dir = os.path.join(ffmpeg_root, "include") ffmpeg_library_dir = os.path.join(ffmpeg_root, "lib") gcc = os.environ.get("CC", shutil.which("gcc")) platform_tag = subprocess.run([gcc, "-print-multiarch"], stdout=subprocess.PIPE) platform_tag = platform_tag.stdout.strip().decode("utf-8") if platform_tag: # Most probably a Debian-based distribution ffmpeg_include_dir = [ffmpeg_include_dir, os.path.join(ffmpeg_include_dir, platform_tag)] ffmpeg_library_dir = [ffmpeg_library_dir, os.path.join(ffmpeg_library_dir, platform_tag)] else: ffmpeg_include_dir = [ffmpeg_include_dir] ffmpeg_library_dir = [ffmpeg_library_dir] for library in ffmpeg_libraries: library_found = False for search_path in ffmpeg_include_dir + include_dirs: full_path = os.path.join(search_path, library, "*.h") library_found |= len(glob.glob(full_path)) > 0 if not library_found: print("Building torchvision without ffmpeg support") print(f" {library} header files were not found, disabling ffmpeg support") use_ffmpeg = False else: print("Building torchvision without ffmpeg support") if use_ffmpeg: print("Building torchvision with ffmpeg support") print(f" ffmpeg version: {ffmpeg_version}") print(f" ffmpeg include path: {ffmpeg_include_dir}") print(f" ffmpeg library_dir: {ffmpeg_library_dir}") # TorchVision base decoder + video reader video_reader_src_dir = os.path.join(this_dir, "torchvision", "csrc", "io", "video_reader") video_reader_src = glob.glob(os.path.join(video_reader_src_dir, "*.cpp")) base_decoder_src_dir = os.path.join(this_dir, "torchvision", "csrc", "io", "decoder") base_decoder_src = glob.glob(os.path.join(base_decoder_src_dir, "*.cpp")) # Torchvision video API videoapi_src_dir = os.path.join(this_dir, "torchvision", "csrc", "io", "video") videoapi_src = glob.glob(os.path.join(videoapi_src_dir, "*.cpp")) # exclude tests base_decoder_src = [x for x in base_decoder_src if "_test.cpp" not in x] combined_src = video_reader_src + base_decoder_src + videoapi_src ext_modules.append( CppExtension( "torchvision.video_reader", combined_src, include_dirs=[ base_decoder_src_dir, video_reader_src_dir, videoapi_src_dir, extensions_dir, *ffmpeg_include_dir, *include_dirs, ], library_dirs=ffmpeg_library_dir + library_dirs, libraries=[ "avcodec", "avformat", "avutil", "swresample", "swscale", ], extra_compile_args=["-std=c++17"] if os.name != "nt" else ["/std:c++17", "/MP"], extra_link_args=["-std=c++17" if os.name != "nt" else "/std:c++17"], ) ) # Locating video codec # CUDA_HOME should be set to the cuda root directory. # TORCHVISION_INCLUDE and TORCHVISION_LIBRARY should include the location to # video codec header files and libraries respectively. video_codec_found = ( extension is CUDAExtension and CUDA_HOME is not None and any([os.path.exists(os.path.join(folder, "cuviddec.h")) for folder in vision_include]) and any([os.path.exists(os.path.join(folder, "nvcuvid.h")) for folder in vision_include]) and any([os.path.exists(os.path.join(folder, "libnvcuvid.so")) for folder in library_dirs]) ) use_video_codec = use_video_codec and video_codec_found if ( use_video_codec and use_ffmpeg and any([os.path.exists(os.path.join(folder, "libavcodec", "bsf.h")) for folder in ffmpeg_include_dir]) ): print("Building torchvision with video codec support") gpu_decoder_path = os.path.join(extensions_dir, "io", "decoder", "gpu") gpu_decoder_src = glob.glob(os.path.join(gpu_decoder_path, "*.cpp")) cuda_libs = os.path.join(CUDA_HOME, "lib64") cuda_inc = os.path.join(CUDA_HOME, "include") ext_modules.append( extension( "torchvision.Decoder", gpu_decoder_src, include_dirs=include_dirs + [gpu_decoder_path] + [cuda_inc] + ffmpeg_include_dir, library_dirs=ffmpeg_library_dir + library_dirs + [cuda_libs], libraries=[ "avcodec", "avformat", "avutil", "swresample", "swscale", "nvcuvid", "cuda", "cudart", "z", "pthread", "dl", "nppicc", ], extra_compile_args=extra_compile_args, ) ) else: print("Building torchvision without video codec support") if ( use_video_codec and use_ffmpeg and not any([os.path.exists(os.path.join(folder, "libavcodec", "bsf.h")) for folder in ffmpeg_include_dir]) ): print( " The installed version of ffmpeg is missing the header file 'bsf.h' which is " " required for GPU video decoding. Please install the latest ffmpeg from conda-forge channel:" " `conda install -c conda-forge ffmpeg`." ) return ext_modules class clean(distutils.command.clean.clean): def run(self): with open(".gitignore") as f: ignores = f.read() for wildcard in filter(None, ignores.split("\n")): for filename in glob.glob(wildcard): try: os.remove(filename) except OSError: shutil.rmtree(filename, ignore_errors=True) # It's an old-style class in Python 2.7... distutils.command.clean.clean.run(self) if __name__ == "__main__": print(f"Building wheel {package_name}-{version}") write_version_file() with open("README.md") as f: readme = f.read() setup( # Metadata name=package_name, version=version, author="PyTorch Core Team", author_email="soumith@pytorch.org", url="https://github.com/pytorch/vision", description="image and video datasets and models for torch deep learning", long_description=readme, long_description_content_type="text/markdown", license="BSD", # Package info packages=find_packages(exclude=("test",)), package_data={package_name: ["*.dll", "*.dylib", "*.so"]}, zip_safe=False, install_requires=requirements, extras_require={ "gdown": ["gdown>=4.7.3"], "scipy": ["scipy"], }, ext_modules=get_extensions(), python_requires=">=3.8", cmdclass={ "build_ext": BuildExtension.with_options(no_python_abi_suffix=True), "clean": clean, }, ) vision-0.19.1/test/000077500000000000000000000000001466211133600140735ustar00rootroot00000000000000vision-0.19.1/test/_utils_internal.py000066400000000000000000000003171466211133600176410ustar00rootroot00000000000000import os # Get relative file path # this returns relative path from current file. def get_relative_path(curr_file, *path_components): return os.path.join(os.path.dirname(curr_file), *path_components) vision-0.19.1/test/assets/000077500000000000000000000000001466211133600153755ustar00rootroot00000000000000vision-0.19.1/test/assets/damaged_jpeg/000077500000000000000000000000001466211133600177645ustar00rootroot00000000000000vision-0.19.1/test/assets/damaged_jpeg/TensorFlow-LICENSE000066400000000000000000000011501466211133600230660ustar00rootroot00000000000000 Copyright 2019 The TensorFlow Authors. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. vision-0.19.1/test/assets/damaged_jpeg/bad_huffman.jpg000066400000000000000000000360701466211133600227260ustar00rootroot00000000000000JFIF  !"$"$"  4!1AaQq"2#RBb%!1A"Qaq ?, ________________________________________________________________________________________________________________________________________________________________________________________________HJI !& @ )$d  JH R~ B@O4E_q3 unުDEqb)DN&ghG5EQw\_kEcIO[buv,vnYd;[kQU1rTۙnbb3vkrxxUb׋j)SE:-1]1O|f5Z[ތՉ.g=>I^;~:Ez>kg16:}Vtonl: hioQc^ݪDf"i6> uO_{btr*g\8kىDS5gy㼣.h>VoWf9LO--3r1N319|S~j[i|}Dv@3662|&LiFѾ<_X~HӆM(=)2X4?xR]8JӢA  ʮM_b*?D^&EsO嵗uv)fiwns1\yvy SsrswѴN"gў"^>ES;/6%Lhl_mLSb1|,iiE\yfK-].hm^ګQV(t:iE-UG܊fqkS|ez-|f)"6̹vX;2FAֵk|SV"#1 .Y~SUUW\ܙ"w9+3]3Tc?e=?4iӯ^7=WO'<]h_n4L{g]qMĀ@$ $m$e \yFA PJ Kҁr2XvXl]E, 6"Q1DZUj#Gso=F[Wmf)v_\ff"13?<.xFSʪ*3]Tӈ3?o]SV*soEUMu4Dq3ۖ"*iqE118Vuwj7ޢni;Wk,Y#Un&M5LLgt]=SbtjtmE5S'eƋZ=oS\6#86r'.6q\= ;  '2h!K2@CMIA8Z@'`{A < @-.Hr"H_$ȉ z 8t@#ė@JQ)#%MTP2hEu^b*O%z=5{[0DDF"66bIJv3nUU338g~UMtTUS;*'|9?#~ǖxfIy^QrmWU5U⨟9O>{XƫW"+ZlGSyL\ESU5>:MVnj".\9gnF8z}L}/$"API""$`h iI;T$ tL?D2 H  #$4 F@z!rF ̎@(+KLː$\T.$ J"IP DE11@$ 2HN h'#h;@h*&Gd$dfrti,G@g| >Bdg#2;RP#QG.$6 * H)*) ( @2@Sd 4vO3$4Rd&4I d 2_Q` $A `v2 ̌%' v Hr@FttP^$`;) G )UBX% CMDɦђdd ~$4؀IA4Qd 2\2@~dd3X'% B @PQc#|ܕ )y.IP2DPT`d؁4;AђL;Bhnɱ @&4&IiH&A$?  @)22@eȁXȁTPH(8#̐`@%BܰJ).T`drDE$$ 472@$ʂ # TnO> 0& @PG"@1<aAcp"X) P 8G$),bKp!Ip@ ; 4y)h3"y&M2Oz!IMrIi@(Ď@ 2dFAK x;@0z# I F@P JI%@`*L$ Bp0APLdERo q4 $d#< M$ɕ)&FHp*@d Hd@A N 68(0(( F PR@܎B\TtBKP&DIA dI`?FA$d n'L4x)h  2NyIIAAId(  @) Y`@ @2c@% H,,dXȀX*.$x *RNB( ;h$IPBMNGE`ʂ i2@$H$ ?E @" 9 70X!BbJ.q%읔`PvXTXT pd!d4"I?Ll MHI'I?M ೀDPNL&FD-, `D0 #@@`p| F p ]  JJJ$$ p*Q\&JN:&MiE&v4$  Nd @ $@$)2 r$P90`B$#9)* (K 8)UX!IPdg@3$($M4Q:/d8 Њ'&r: ?DI)$); v$( 2\%I<Ĕq#) RQ`G" G$(A8*P\,rS`U ^A.0Ąy,II$4RH4PI)4E&Dp$G?D HR $D L H@rBF"Jl 2R1"`F\ e#X pAg@ ,XA`A,%B  HHI9&g%sgGD)2ei' ?&D8Lv:'D$A?E'  I ?&L"$ )7NNpbD ; `nXN >dBlB` JpH)*: (\~J A JI $S;I;K`'1r8Da0 LAfFK<0X$DD{b " rX6s4Nyܚ!D($H"I $ 8IؐYc"#`'#q">}p`ܸۑ$ 8xP& `D#0Q9%Hp0 `m\ڊgNYi#X&=}udr$rRQLbg%i$T:,Dp0 6) 2" "} "vP`&7(0x  iC(!  nMzsOfs97kh{4{{Ny*<~jx϶as[]736o8'g4v^.j㲙M̞w<@ @"'   d'c zɍ:2m۪~\jʽ&'zf=^xmAjh5~a4}-YkKT[L6co0rmSTULUIPhgQ:kskJvnL J$@121% c  f(]hWF͋jDh*tȪηWTݽnk:1~qW&yDIKdOgQvf?Ǐl(0,` #vcq8HZ~R?fESDQ1fi{]\\G]@9 X{LYL3̢HT4S\cx cSFjMyܟz8fcxz,jWbhiZ%{]^ϭ9zk"g5r낟οAFnLN:AY~.ۦgz`+54Fj*D@~(ʦc3ߚoibmL3DX"fq<µzz4'Qbs5N*ob 'k}WWǴg.>Guy,/^:Zfbk333^AY~k^ӈv;0 SU^CwUFDی&";,5UT~`)kX>.z~QkQoֽ>f'ҹMN][fio뙝-z w+^tWcwT>W65+4ǽ5bjwZz}MGٹMqO3L+Q𷿝fyz56ҍ,bggt/_o]uXfǽLGJo~~_~65֣[[_)9goG77mU1zxܘ>yjB>6fڻQ\S1#&sKKyU}e%w%-16#w9Ƕo?5֢׍ɢu5ǽH>ULy_y~gKjtzTD5LOso1:Cb/SzJ.\bbci9^::߼߮"10˿dkj7=Ocr?vision-0.19.1/test/assets/damaged_jpeg/corrupt.jpg000066400000000000000000000030201466211133600221570ustar00rootroot00000000000000JFIFddDuckyOAdobed       Zxy 1!AQ2aq"BR#3ӄғT ?S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Ag,ʸmth _ٷHq#A߇k?=3Ph o~ q||1c ugWf,W܂dY1. n3S"?cmu n1i͐GM\ˈ$v#{ts\*Ayqf-$Sgᐴ҃å@pkf=`r SXg]m[=4A?lk r:qA.!m%tW,toxL? Y)v&lqjI gyi\kuV6ߔm'&XVzY(+bwPWh2C\e6'T0ཽaqvqEkpǝP,:qAYdt₾[ۆO7O "-1Z;-ž9~~ 是 Xֲݼ˛۶ZFʁW8R@Oj \>K pL? q#n>$"+~v͹Ցު߽)"S׷My1Ӕѡu6}sFs{J)F368t⃋#CDU wsLW >7y)uqm PN8nyIg) =ʂWuNĞ

    yd8NS8WȂ`SS^>ЗT@^icDT}$@)BZ6@xvPB -̛͏n}?އ?<=8ZMgk݊X~kM5Hek}/w(=8}avE,b0h->r![Gj0 -e}`EU)J04M>zF!Yȗ:(YI,wmJ"5c~|xz|)r_^K4r2F`ut4ix~߆#Pcb]BeLgചh0c2!GSl8JPTE7py@mh,Z='z0-]wfA6(k4 x4oxh F PLd@c|'$h=;?o Bl#z[N5xыu?PB6@kOa.W[%&l*h6u\ %\ p{9 S!dZ߇:J#o}Tnq ߟN=|[6Đ2ќ=PT x=n(bz=FzɍM6dr eYY,jxwuvLFVsOHBdl,эkmBL8SQ%ڼfT rW!lDL= WN4<ϋg')s6*{klF2(K&l6/&=9 v{Y]~RZXR V463$q#<T3!565g1:sIfqFGp_*KclsKǠ'`/*CnWA.#@Ώ{=[߮0d/8kṖG$ #@$(b_lrpz3pxp9.@ NЫbz4~QΓ Z:|78GD6﹮eWwN9HC9 tĈf54RTj`pq衊TŔh|WE@/v[yx<988'<wHi9Q QnJs677xCGepdwIJ--Ұ8W5VȤ5Etf?p}ݪ- Udke<_?^{y?^{Ni:e2.l)t(&$ *CND4?uW98vw-nn|Rmۆ QbK6%RYp([ .!8Y̽p*|>^^|sːT,Y+G4zf.D"'7) e9, x/~%]Y4]a)Rk\5[mM1EIrz#6`qmiɥ&ij5Q?C$@/dqvǸoQI4\.aw; ~տbw6T @AbEa_)b9[0,,; V Mp_>Z8>)n+-d^օlز۫Z°K9,zC˲Ul݁* }E!YꪒWr<5 fϹit{.9$ó1,m4!@WKI3-T b/ t6c<.,`_zquCth\6FAܴ1 n Eiʏׯm"t:I|ף0EaCߡa?bVRVrvt (^z=cD7 @%kM#a"LsD 7VPiYWkԩeKJ#(*g2!+REJ5)v6PnvTd^8f&B4ڍ~k7^l]6} a[ERO"^&_4ɃP !@{r N@(VW^2{m8 [Kڱsi*C"U:˨usSsyeq?'arsFnGꁷ|4fKW^ g?雇7]ygp v"eóoͷȮlll A;"<碻i,zHպ4@#B蔠> Bv-jN'&"qPMyR$|ye .-8]x NrN"M/ Qs']Մ?Cĩh?xQjޕa74@3  K\x@Y@Ÿv(yD18BwZF1FlkҬv[Ux%44) WLSl Qe$ |n8olo߭bӽ2z4ҳa:&Y4<;NG''oh8Px==g&UdUbtO~o?}4$ ߵۮ5O읡׳'/sO.3H"|J}k{YIgD16\ffvzF/ <#7_e1N>zCz8)k#jqqֶ~t1L ^8]r5,Kφ[na;6T"$M YkwEP$M^wbQ8bv. Ua"-i7Xz87.Mc3s ?Eevgs<+30Ǜ֎/dVwmr:K Qz.~g 升'5\&f\vgCmIiܹoY;[·U_8(#ZBʔtq }(`M.ipK/ZæR)ضu\xa6~"l\sjv7gok,2-}o+%$1>fKWY 4AdijWh~?{hՓ m4톥Xԡ_; ?0t6m8P p[@ٍ68ːhSB({wOaPt$G[QVAc8 N|eH&y7Yxy*RV|:[LgZ0! 㕗E5*U㳣Gϼ_g~H\O3 yz}2?@nA%oR$i04CmpyB*^U_lIi\1Ou;"쪵j%TqFV9g_r@`=D1f ;߽>9p2}tzh49dzaOd^=9f3<=-b'!Hp9.a5 &·gsc~ֻ(sX;m!\& %$+σ:o[Pipk,ݦtI fc^J"BVD=DrcWapdQsto1^,fyuWj6,f 4k(~a ՒX%w4Qj"8?{|2\Y(lVj:ON!O\ HX!>Q6QH~y'1@n6 Xs)[mN9GL Ou;b_6Mm9 axpc1wlVfAپԿqsi˰5ּW/&UGRʵ}s+~x>~=zgoGn{IwտL~rNj3t ? a݁-=oo}y-ڵ*H8V4ם@,恞JA`0u#G!q*-2`x#hD4n4RSϫJ5JiVe5@7rqeAq2Q;e(΂77=vz2yW?=!w_o|ӳãAGzkCl+_׾[``c86g<2kvjP!r-IA暃%##@~DL-O!ZT)rBMnzHI{>ӟ{8~"Z-aKtw C3ykP]R"qLiiQq1wNqñ( yr'? Sظqկ";&֐hݖ4Nnn(rc6M?:-g''??{*ↁ H+rꦚrTʄ y`PHy&ck)~~yWʮۖP%l%A4ƵkfNUyiA7 9" &j( xZV'VbbAG$Z< fj8-o|/N}u[YgADF[ڦ۶ܶ4KXh:H2&4/B2emu@a& PJ lŴ) {ޑɍZsm|QH٢??yem6p".\#:G9 γ>UD@Nsksjûy9:.')C-+EJ"s?x՛?4>Rgປ ªZTJg^_UQ/0^+ӟK VQg;dfN'g'g0B }hvr;vۍ\ѧp<]A0Lg4Zא(Vp<2Yjp*W85קu6*l8Ԇ;ld.8ѷw]wg{[,KX:QLz$Iama˶\H_ʓˤs='WQ- ^< 'Q Y2GGm^<sɔO(8LG69yGs:Vk^& o2_?, {!3dBzWp>=gllʹd*g)8aÍFsks :L*$pޢ$ͩ8RIENDB`vision-0.19.1/gallery/assets/visualization_utils_thumbnail2.png000066400000000000000000011125641466211133600250430ustar00rootroot00000000000000PNG  IHDRu,M+sBIT|dtEXtSoftwaregnome-screenshot> IDATxˮ%Iv-3s}9*@B & j$HI7Kp™4 @=hRJ 23\li9YjfUȈo_UUVXbŊ+VXbŊ+VO`Ŋ+VXbŊ+VXbVXbŊ+VXbſ,SX_jsiΊ+VXbŊ+VI}+VA%J˿lW+VXbŊ+VXbŊ *uVXbŊ+VXbO7n#ħO|ιvvȻAco|::R>|[^ob]w>%D{䗿`ݒ4}*// |~YbŊ+VXbŊ?9a`WD\:XއЖnr<q\QURJ1[Xb !|Ɖ(+n?>p"x߲ndUId%t)/ y:S\"p(oӕ]G@']Oon kL)q>1lw]/:H:w;;#L sVM_FK_Bwvݻ}e2)%+;Xm'FZa_Mk##Bծx>1^΄2c%uVXbŊ+VXbO͉i9ynnp b$\./Ft~m8):gۿ ڕ7 0p8J#d7שts>swn`KپOU9^[;ӱ5@{>YzHC )'3 9nwйnm|ƋƈnW-P!`&>} NΙbK%QBj ] 9g^__ۻFP"d+4|􉔍x||뺅{? !"گ#D'2E{v̩o 1yy}~Q\eYbŊ+VXbŊ?9T3ӁYon7{”p)grFx|cl߃~twG4Msn,B];3/Ϧ 1R9/3i!WU nI ,m x$sSvvE1ԨO){^M-3l?<E8YUy}~n ݳ)}Ӷ@pty~ιlojk(?#RQD===q\ZBtϹl Iyfa 4vݽSݪ(3O?S{;>OQ *`*F~JXΙ秧Ff9縿g۵m3AKv@^lA93Çѫ439%nnnMկVXbŊ+VXbŊ+⟤9+c[bŊ/׿~@}fskŊQP?3 ֹ֊+i,ܺ~R]b3sSosK$kUxDU[ZP[ v]]kԫ):8r<EgKvbj*yg\LΑ[/so=ϗR̜npFYJpzSM[6ï/e);_S#ϥ}ۛ|mR) ֦7w8TZoǭS// 9nvvޫ}?8^Ѫ>n9a*7|777mW;z 1y46͛\m\QƧO̘y| `??bŊ+{zbŊ gϭ+Vtc=b$# ]Irr`1*)P`i:~Yyk3"LabŪv)5+pG燐s鉔cImK}[ƻ"|V4+}xz5oߗFRk%B5S*6WRwݯ α/}#8Nyxۨ'6\FPx wJD`qk!62&ӧ6B|h_?ԩ _7l@<~s׿)'Ng+%#? a!8.~< 'y^fBR.jxސOLz+to;M 3{o\  ! 31m[IV./m뜀:\%0g4've?%'$fZ` "mDA#>;G=>ݱ?'w8K~t:srַ(8'$Y[ app~9'9HR(#Ob~LLŀ۲y2e26*wv%Ɍ~y:'nn7m]ƙ|5Ĝ"8nk̀&e33.FR52.=|+/߿v-ܱ6l8qfΙ/{n~al}Gt d91 qBvЅ2F}f31))SyH/gӄ^l9E2J;6:4ᷖ/s{!q}@?+e!2?yf?/n JIt"Ήnozs#qPt<bLQQq#"V))8#C16#fAQh|:1vv-q;R2;ybꛋy|o˳fq9-ڙ^m'<7޻{op f͍qբo6@o{7d[?<21") 9Q<>s:Z\w{{]Oy~~"Dlo>E}R ߴ/#pnʧOxyO"un6x~'2B|f_; b$8F; U İ <6;#&‡ # \S+ۖ  22cC`Hz\Q[@G2]!2)N:drr8"(}gMBbLgC߷Qr L{թC#!9zSDv\ 0gv' ƊjH3DqAHY l@|; L2蒝۝wñ'>[{to%'%Lcv|z6}5wG&6lYЩ# ߗIM`Cn{;n tl[}lc D31BT\{A+O4%:5s=}K+ 8qKNw31Ό(~\B?&B 8㖱qk/~h\#V+VG⏕ U@(A0.R2tZEα ӣNH)OT4q c.`H`$X!RP 2_"Uf|{URɡ,U2Y+5 VwZVqKzFT B`.҈fr .K!|JW׫5ޟeΫ28JdK%sxIK 6wb,38B a6l\4#QQϲb-`sί+?@\I^J/kFeGeUrT4.A \sVL8҇NyĻZ;{؜ҏb/;ռUeg9 ˾}=:k *Zb*Kuة DEjh r;HrCq&B5I#z$ؽ XLo}ί+C596%vt5U 3röuRZU߃ix}}m1hp|%C)qYԡdJ(HyxxǏH*%XzsBB{aϭ_W_pbw{2L|1.)m?6RV)鉔&BnSږ \w}!qBՈ]| es'O^=gᥔMm=_}՛?:O³vǟ$q#vnHH958ESaM{cv77@GOH]O >83$ -7:GtΖ R;^c9MyNt_V:[!\f()e$ ~v9Tn^9˸6dT>4;z膎Cx\JMj`@78udF9t9Av~NТXCĝ %@5s#DBzlζJΙ1Ms{QTh/¼3nXƗJζ٫CvgP0F B9 f"ž1Uu)n:bSy)\F wsPVgSd*;)N` Γm;f Ʉ)%ĜDT^Cp_\ޓ'a0bŊ+~B8A6B&'L:w}ĦSQLDqh "RE94\&IL1(QV,y, egYF5@KYj!4sY eG\k᠚Du"jb*(mBԎSB'%4ȑ0Ufj!S A5ul*y$zTuF^ї`QUiה)GeʑΫ)DhZl|zqRhㄫvi( (j?z'+\e[>YXD(xdQF2V W BN6ίQ5uZIIWʸmvfQh9]XYj@|Gv 3_ wy|D8NM1SSMBᝒBUyyRhvsy$(n:e<*Ocj-)'y.؎Qy#9V@xQ#O4l2kqoۙ4H:a|fxGt&!l\tq>0EQ}\br: LhE='#itT_Ѳ)F+,T;b*-Q\\"^HL|w= cѮyOƍЅμ¤ c{JBh:dt8@[ymEm%Eͫ\ɏEɒsEXURHd_4A7r%3<2+VW=q0*n $H1V3yLMBZdSוLI3Ro[{DKq9_̩N(hrܶ\Sk.ϦxƤޛ΢ʢNEtE]@GAc)W+j#ɦsMi3s̋[Ii}Z=o$M E,nQ3gSt2H̖J喕pqbL^χMwA6y*2/1U+};_L]3 8'W BWulߩ'b*^5e>8׼N9Kp%)jԮeK? T_$U4nZ:[gL<(**6/SpM7xVUb%Őg3d\2*<4(\3τ)W˅-оcܯ>Y¡e/=7Tl!5t't]'{pƱRj)VxdɨO6H^sferI]pOW/@@sWXb%5gsԡL*&sLhʄЙ)o%Kb1F:5e%[dܢp-Fl)3h%pԬ-)HvA-DM1sVcƽ@udQlZgB/ЫԔz8,&73D [ZZpţ123F"Zʵ69و.stidjមs˄TkY gdB(*Fh# "SKQRRu!H$ڹʳ:k֒%MHJs-Sf/9 QE4ۇhnΖ"R%\5G\ڣ ,4SkC)Ԍ,C]^|K*ԼSԓ$Y tUX#*])RD:DKB%b,:ސ]H+]b|K[+i\`s:ťɅhtjDfyCW)grO 7?HU㼼q^44soK/Rֳo1>}dg+Q]u\#ó }smhΗ~Uy0.6#߳߼!TgGinww,4T\JB9OQ7?$xe~wvmm{ h5n{wGxW꽜upTʪtSfGbb;[ǛopDN% h&DB9PRwlDg^ҁqr"] 1dbLKj&lmr1M MeHj6\*8+sr0ebQht>{OD4<H"$5w9to/E頻աt,+fy$O3r3V;.PZ{%O3 l77\3D7䣋I7xJh7<zXZ t}@Ԫ ^шa:nױ+5]ϜxٔV]rXnҠt*`\&iYXVΑN 8RȗDdb]h3wŽ~ʦ8*qss!5+]n+& }@1vgƦs*08MoG.J[-?f]yŗAlT'\ Htynġ }H7V!{Kmg}<8ـ ^ЮNYν ?ЙqS׶h "dQ531eԻ>H7Э+VXH{&妲q5IMubzCA Y p.pf X%Y +*Jg'Mh`]m7J7I#2\s.  WՋJUHdxͫH>5é+r 굤_$bM/t%hjf)EJ_eQ4%rw*7a7xU)J`V4CXI 2W)$sѴ&NګYT6w`Fncȗ+ a1𭤚[:BFׁgdPb Q/Z.iAeӢJ\ee&5J+A1CأIsv6_tbL51H!Mi|N 斑ەJE3:9ץA׸O^~pgĕ.7K;c,>{rK)k J9l*]H$݆k U /ӹ[7YHy{bBW麮UUX*e1m}_ku,__'!u6-S)Ux^ |pVZ|S%_frL4J9'1 8OD*fR΄IE)G7!:i1sLPyG11UՑ}-i3qy8f3Nqn;ڝc.[gv.gF)`초jMZ&;<ȥ819I8YT%LqHvd&.g8]5]HQle4+.%garv3h&#^ ɳl@z$DFȢl+Giļ8T"ǯ}G'& s<3(v.(Nl_ LTVH]to<:̌s oy˅fLm)axɊ+#m jS+'x| .շjڇoHL%C %zE,ܗ(VV;^c%T9 =,,ȕ4<}T 恡Pͩ:_}3FP|.*{||{J*OgFD<lJK9/f 0 wn=e+VXbŊ+VXbŊI:bzIĘB(, @eb'U^wّq8#M;IFbUw¦qB+8Ĕq6&)7C[}ʗh+N*x)ILQx;}yF0Μ.E#n[:SSA9tV|03r L2r:0M3\5Ҳ\uA#Fi^KO4c!e${6!*Lωif?*]ým qfcG8MG_ Y:%K*(kvseM{vŽJr\_NQqdh&%@a_sH13Rn'l1J!q&̬ks󲉩wics`>e%-3#Օj>tKz_< 'SQ >kYtJ)TrTj ,sLҞ{7SK]Llfmbwuv4xL[f,:,c2A:x+VX %$ޱŤ5{d9EHu-E׽ *M'XSi"$ӊ2lB(uS *9SH6MSR^L=UI9[XqQr5Lew}1G t}M;NDߠ/QK*dgi3RT^ kW1UEtOvOL$I@C̩(S騪rqI*!̳Qb%+)xz586U2*a-vv uN$b1KyA)x $QBڻ5uLީi`ޤ ^+5jK^\gij$nߧH6uTS[zɱzc7Wl+te'QU|Z+K_\HsDvREg.lV%̯єrpcʈvSTF5!}:R|ya3,c꺮>\2!;S'UAd_˷0֜yx&{vWFRӮ8)GWys$B9XNCSq{{3Ϥ딫7:;'rNhőT☖:b15fF+ҿ"4M|cIAT_8)IH58Fq‹'] Cn;&-Oe&N3)yUI35[bz8ĔM6A&{j?{pr2d)+]vvb</飢9'D*~=)_Is{<.yu!p/LY'`q@ttNb!HQ'^.OL&'y!*8r'RjfT2s![vwie9gDh3fiî#uL# aeK:^>.%ƌf+л=^{Hq6I3ϳ UF)3Figf z0.ez!H*U*ce&d!)W/K+cl%% o/m~t׬&f.[zOvjNxJS_ПfFl!MIgWmŗ>s{_YB!c!Y*M%)Q ds5M2IYd֎S:9ųBNoTm+y9ތ27)[5C%J[LJGsh^R,r[&dg]Yx FնҬ|c<@cTA#SRvy(^irr1qd2)I̲+Av˘M1Cj?[7}O>87^KKmYl֬8]A4zXy.bܝlwb)r@օnZC9FݛϏc#|Hrn͵Es&Jժ8o|SkAߝ q >x=<3vt5uzGBU.ll]Ws"FlK3vuųy鼾>#NQk%I!FUkBj)ՁQnnwoH/C%>}BUٖ>yxxR=j-q Nc-z?>DXl;xA]IJNS3~xx`_Z}!/[W4Μ1sxOE2'&]֘. R»EA"̗|I%G+<<3gL͒1jq:&&QZ{KKx:vJUW5վhD"ܼzs_ 9Ng<(o q K71—|iRe'i$dʽtf>g·;Kә!VQΓ ;bȧLG x#[`dF)52Z*3qʈd+Y #Df;V<l6swK̤1!qN;1MѪd;3O#/JI2#YHyf7:vAˢ*z軎·ַiN!s!$xrURV'|',+ g=ҩӓ)]DM`朙t ˍ7&"3]hp'HyIL:|HBי*/ &o٧f'8j4V5Ir:<.e誋dRjp-1f1s걤?9&t03Թ69j2ph&StVI)?5m,1 -26R5TXbŊi\h F|gq[wβcZUU朙d T5HS^JHUSJM&eXLhs-EaޑNp W¹% Vgj!BKq~ȇ^Vg+ ]YԢjєɣ:m^K!Rypk世,"b_xG OFH.XvΩEQt{ُ'β9CqM$F.٣k~#5cd4}$vˊ$9%QۅCKJmkhmaK7UГRK% !N -"ݬVR ZrWPto r8sd/ڟ{OO.n,#|Ƕ\ z&y[(̅/?)8m۳Pf8EͫJy1Tif"K`)ocTdqLC $h̔h3[]@1 IDATKdʪ[j%${aH+ɬrvp 40p'0XʖRP t(X:gq@fcG*HXGyYY/LYxSAnn,ikZ}ZlleE pͧӑFTBRՉD:"c$ aL3kd BHq":r),絿ܧdUyjɬ.GTMJW:$f=,aKV(گIT%,ʥ &)S@&T d"kA!¸sIeP{բdؒt;Z*ȋe5J-ZJ\\ɢ%S1q i=cI-};bRѵ2ZD먯uk]Z^%Xjh"Xɵ+}vho&R#ҒtOB<| } N@wY'Œ^ͅj.hi'ڗJ GH .`d`jlRLNC&_ aHq ɀ4S4{[Rj[|ΗAl̎7pؒZ C_5,k663aolE"u\V$1I'fይb~:O|*{my3~tNp x,6;<mhVcb/>J]dJj#1){uY S%ajL_5jYO i)k^9g^__?|>hu- xCibZ|yy9,*b\fJh5QhPgUn?%0MGN7cayzzbqۊ#εj,ge!A'Ul'ck|!);@B<[shPO?;퍍OS_Q9g~|7o31%~쾾{kWXk]Z׺ֵuk]Z׺ֵuk_yy9GQ/ )n:6 9\&m A!ôCL%)A)$w i#ֲr:90R4 '0Py{)1Ȁz#aP"EeiŊBJF fH@(11ECBc ѨT/y]|wj. yɶ좼dtΐ+"y, oǁ1pw7@)K^X6V `R3he. SEndh8qͼ!CJ )"q40F.hI8Bpip$ԑpnt:ZV;zDRvTԍ訿TK]ȋY`UZ|01XlLvēpG0p[.J2O;< O92B)ae)HaӃgqPr]YK^J)JZ0:yHU\3k^ܶ Y((r= )Ւ"Ս%bʚIֵuk}u]Kc2%d&b;%q}>٨jmvOq0j!$p#]W8uDqv,eIM*TرwL,84+力{5FD,7viQAd0}ͥ(MPK%W( idahK uaвC) }"1N.$bǣ*)!!ϝQd蝷SlPyƄ!!,nW+z43_3u/]^ "}dQ/llĪM56&gE4F: Y|@X(]7T v ^ dO!]?l;)q&:JGՒgʺ2N>^Nrtݝ쎯0J;񛛛 i^:!9g>n!Z}d×Rݘ\ӓgGZ;+&n{K }cIq#0~ffi:n޻T 'ߘ_3O)[o:#(&l}Jxk`Áo(lhi?^^_8_.wxwa:n1Fp鉪8M<<ҽ3:n-"q<6O?Z-k%*ed0(}6oq⸗u#k)T1YvT1DL~UkŘ^7;^Yd1I"CďC7.Um6ڽ1lhD3n\oo#L^qWE)avb@w[qF^+(͵F²TlpʁJ0(qϠT-h>@~7j5Qko[]X͵7ي'5*t}&#5@,[ڵ؎߮I~w.31%^^y$p{{ K}Ev4iQ[LÁ6:ɧy~qﷹ3J% &+:LOmr h4 @u_o͛ퟎ/ɵ76L+lP h'N2 #؎uC777wAӓIStP壣CJہ8kdlQ?;S독\Jwȼ.UAaxp8re [ڃVQAqbh,_d5Rqy!ˬA,ȫ$(F 1ʚK[QgCkH͐eث\"&Z |!bݫvAaXƑ<&N M:$X 1U'%ZQY̐*be81ML&Am*\!DlrXJvM0`n12&c q8pI *"2%K ? nmqVwL=;(kcACDw'v:Rl R&nƆ)T'xΒ) 81*.|[شW$ }Ԁ@ fԂ!dX b`Sx03?c4:n?iTmwv_DX}-T ֈG̣A E,ws/B66yh.#!ۣ5W'*.VoV5P]/Vucf =ѭlj,v6gZ?6RRO@#u?D=+|(0zڕ}׾^6O O^Z|vq\8ϟ@< qF..AY.g.Knnn8ۆ3Y qH<<yR80Jdb4c̺.NO\nM}*n_0kfY3fST EVf% #WR y=sz4*fDºPϊJf)1No܌wZAU1 oFڍULJ(Z Jua0^)< ⬛M M`sq6ReaՊ6`X- +@n&Ǘ²dsfl%e5˚IJE"L'}Gv*T8OQjȔڮ1TrkWE|k]Z\Zؤ%! e`}[܇#!B j'{D]ו4F$ %q `K[dVTJ7[E]ə#CctxUѺ;ętvjRn+٢_xxwZ?'ԥOĠjUjɮ22X U *?[ ~HI"ã_{= GcRɧ-P'EH=Fn#ÐXp4K^EVd".Q1t.R[&H&Z- * G ĉR-1ji4qН:*R)se( ԮS9S炔Dr)(!Fp ALB@\2~,RX/m՘lF Z`蒐8|aswwiۅԓjQO괯" T*|FFMD\WCXׅeU`vg㉴+ FT Y"o`^g~ ]!À.B(k:#* %Tr#le%f(ga1}bSEɡ Mʯuk]ZvE&1R.8e̷" ܰkB{ ;Bt3"m:Wg"}CK-* ;?&@[6BuH4Gv0,m#n>-&] ]b gT6?(X:CʢmS !19Pb5zXDbd 530j8/ԮCT SeJ_?)R %mqD c !gl]JRH]6^P}G.l u=QFD VV /B P.}!4՚Ac]cCj\@_m\jށEۆ%3TuFN6_50N7i]vܚwbNj,Nj(jLZ^5g$)wbI#}{^ GU#0pHVrL.q^&dW-ɩR~ik;ǧl.jȦ(BMӯn`G|q8t94mmU6[7>]Oϼ<=/~ǏoQ4 '`k=|B{unϤ3 R~IㇱlӞg@0M;)1t˯uk]Z׺ֵuk]Z׺ֵ?T Sg. +" 9*1nnLJ 2w08&{W滪)NCBFJ>@!T8 -M,&AH(ɐQE7#L2"%\Vn&]ը\tyk!0ƉtX"pw.c5u ;s)IF ڧ xLTcb %AZXU YIcՂijyUXkRa3w&YVe{UUШ]QU+htIܯRk]Z׺WHڳ|gtFڽPSJecdv0i?%v9죱^= By7$5[uM17rKc.k.&Uu㪥M#;\(ZIR9l}XJ"|*ߑQJ)l &q 潲k7Uzh#IЧ S#Ϧ˻1=z<3bmQK*(vn= 6*)%DKum,͙>ipFwcgXi`7Z6/%b'ڧU qՃwZs} X~a4P#Vyg n;oKA -Vq>^ $|buXxy1OcjO<_UKz}}%tsC'yK+q+N)KXlMxܟѧ㉇/A?-89/1 jsZ""ڟR!ٟA1Gq:q2Myg[#5i5w3$1zR c8u ȋY92X=/;<>r@;&Ą#qSf-&.T-Y*T6Dʫ;:EQܙ,0+9W[ kfӹ\7n2P+*b>~ ZN ].%K55h^UD?Quk]Z_VR3?R;M}ZVT=Zn TKvڥLk_$ &q iT{\]&m+{Od4Rw v"H+}j%l˟pݵAkݽZyC+qJ CHr Xc@b2~tdt ]'C @,uVmz ת)<+'>j)m~RTCP}R*b;P%uYD @u.6Z. vF{53 ׽FJ 2/.kJ!ꛝ ~-t[Rv w &,q933I+].iW$*G77>N wfTnno}3z#ԠtHvb_Jq⹘+xjϋvl7Vq[ |t7oLn*J)qɟكQ/98k"|||]3V^ksΙ'r,1c `^lg.wD7LoRdmT3.*4oĔv@?WY@fßa'Nw>z^-f{IF Ab3\U9O͑H NU 6ГRD5D!EbH>X&q`1! HaKީUV?+}e ΅sk)f Ol-.`;9ͩRii~eya, VLH9gRn++4=;+˺X49 D܁m5T[$7g$AWgz }h+U韋Yv~?7c=(}lֶW__Ѫښ֟;h\O___r:pw?s^c[qJߟ@9_Q狵eG YAwtq \X:8tӪ Luz1X Ce!^T mEÝ[9>ޒ' n\bCla3z),z@&{AUgy= HY= !ke !bod&q)1R e-PIaYDHhNeikbƣtTh;&9 9mI2@"hwۋ 0FSj3) f;8 dEoCo+iH5FG% T E.yR LցrY Y9CC4¿No;_>8}$[(EVy+LȦӉbR B^ d쮤ѣR0.&ǽc@HhVgH(Q_X.eYzG7㋁y=69B( G!ސZ E y P@MBJ*k[ݵuk]O+Hh ;uV&l1◰- ?%] !;*&SHrٌE,;[ ,ZVƂmR[uN$"wBtLWc$Հ8;r0)s ~j'i q`syەoSKܨٲIqk-kbv$j7i}A8vTZg5ώ~̚ڷM4AvVI[i3⣶yZ&[1JYњ7O) #AB5AC@k!oa-%B", CBir`>lа s=d"Mu3ԕ@OXk~]#{~]*hsowǜ*7.K +hw:3n ZAt{BS°Ie/\~Wb{RV}GLnce[Zb b~4{|Fp^ksclsxsA1&:vtS75̿UWk]Z׺ֵuk]Z׺ֵu /a5#m$3y&\\jq`[0\@jn`- u<02lԨwHh$q 3Kyd8 U)Bp&ȥЦ4)t'5g3s6`8Df+\ jR$)p:$Ա2Cmb֢v(NĈ~@n1*蹰Ns E+s^(sYkPCaɟ 9,բ;Eͨ1(sA>bGR|EFZyc_Ĥ)Zr*j1;ލ0|Gr$FB 4?ֽZ,Νbw;$(Z:ŢcEId.c5T֥K!25\Il>d~d h;6YVqۇfAHld_"S<ɽsOp)5za> hUwv NGSn,j_RLORJBjUf3(XCvG3nҩÁϵ~~e=w3pآQQX \'Nnf[a٠[Rx}<;n1D3l2=1seUl=mH y.O7?mhv/?X1Xm_g{om˴74pp883t~bZx}P[c)@ήxd1r=CD֚y~κx(Qmvjl3lҩI~b{cvLU%Β3C3 J BiO3.v徭 YzYKaB%(/;Áu 11]y̒Bj%&RXH H$($ ]gNۍPI>H#QxȡVhcJ_&NMM͙R, Y! Q&MBJ4ERtϷr nBJKD$3ߝLE%l/LI`~N12@@z\ s^P1Or9%UȖ53.q!'vw_#L _x}{ě=oIrYY֕1J,m+ݫ:k hZ=0,6ئuwOq̪Z~|Zt,_l#lopڍ0o3"]RL6z;R\_11!^*af;ݼ]aL%G$h/UDMf #!&/:;a<ܝ2πj:ۍ0JcM~;ac"rs80ʼnK_gjU֥ 5z _BDbL _JB"串 큧bRΚPlYJC^0"7xcI)!#KfQ?Q뢕*78Qx~L)ϗ ռB,He[Je^. '%!T3y^\ FLTRY )),rX cqY\qƪ*D8vRۄ0TRkY)K-ܘ|\T`Gd1J2Wx Lh׺ֵu,xѽT6,y]lAU:Ћ:*kZ?zB͖+ZPyH 6h(DY.fO& 3wRXLNܕ`'BWI}2[y~z" ..Cq'6tGvRt:v;{ݮծ%-/OdvY IDATΗq1펱o8<=}ǚoھߪ 6=: y!ׅ']1pes&0’ >5bD:gX"Z%$`"N įCf70C3e!ϑ2*%UzPE2':z]05+C3 '"?og 1]Ų' ,LqRvn.0Lthn$)ı32 FQes_׀_ bhZyL*yϡI3m\ W@MKp:N=<<펴OGZ +8۾[vzʽDnχޱCj\/kUOO z輻ڊ^_98snb{ c]W/R{>~0 He!Η}~٭nu[Vխnu[Vխ]N5S5_V`^7*nab.3ĉ˒p*G3o'3AXrfTN1(1f 51*548fdFcTpq,ʢԨAኙ\U.{z7Ec'$qA$ Ng-!-[]})l:mkHӅ_.]"53HrND%znc;^s\⥞[`p l݆2d+zi^lŷ/$5\əԌZJ62!@c` |1!ۜN?#j{GuK>/:R?2 ;TN%|L 8G}?:XHdAWx FO͖XQڨ3K^b}^"T \\x>wdhgU鬔($Q 9Y8Y=D LX!1[˧3Lbt!R1Y]Lި`p$s[Vץfډ1IetdҐLԢH3.YEMN;C6Ytc8/88RRjG4jiZqYɮ4&dL#5m89V9x=sfЦ>\I EosJ +Ҙ"^;66K;;V:>UVkɟU"ݡkieIR}4-|"H@}O7ձԂ!5tV1^J_\Yۉ5TX F&Qfc,Y1EQb3WvEab{ð̸tՏ7=J?Nʊk mhˍA(*V?LIi0K+K?o|  ?}Ħg͖^+~ј6ߟg3nﵿ7+q%s?VOl3ΑƉ* C2L"jL9Zx4~USM߳sEzWU2+[AD/&cҼI,?WrmZ}x-懶c$2Nҩa1_$H=F(~ו=5a5'SfIWHUnq&Αc="j~L6Tռ_PLw5y4Tqm \ Ȱ;Gc`b:Q,y)92T$H%R޴߈a=2xʩ.b[uo-DJ]!+\2-v[\pկJMKC`œ x +Ţ,#lFIKF=MU6t1V:F2 I-*g2Ĥ -I.%,3za <**IhUg^lpɲ% kb c 䲰DCo|y^Iʲ’s+[l QPt֞E- Ir*y2W-M&=kI&n R n n`ne]T*pZ#8r$&&\qD=yw&~UWeZN/-N 8<䢉||rD΅wϐBj VV[MI-CKC-! @f>TOΞ Lz%[VQ&Y晥.c {ib|WjӀk1PSڢt:noT;񅢙0WkϢ3ssRxdLƻQgNĉJYL{- T H^A{oWǮ`]Kyz~"d)L-uj(>3TrJ)͑a! |([KFΙquoj+oWp`w*-\=r~w?>7 04)&>|V qFnxА%0YLOI%+Zda sﶅxf5p_uw?Os&c8/f:\:_:AX"qjBb a\כ(YpiE(B !ԗ]wGJ^#b qu. a2IpYRgLpxq` j>#9Hsیm#E3Y3j(1Gf*9KhoKM!{d}:eY.ڵ93Ir;Xjд(=[Ճ='c̈́=2ȴ7LJ :G~?N[v-O3x tNj((YI)\GN0Q Wyl[3<3 9r}qclıvmcis~s`\sK}j"B!׍b YZ *BZ% wxE~=4?jz͗o;r6 g2s9qn oQ-+:--hY,e۳+(_3+Z9O@swwXA8s9p޳ݛ`smn=Oԯf^ 㧍WMT عj/U_F*0]yգ GgΧ"vV|޺/Ҷz_0|RaG5Bcsb|yܯۻ!T?ᄎd]2_ps7_{B~$ӥn֮QJӧO?Wu6nS"b,,Ns&.a`7^ QIִÆi8]f*a9n)w% Sr۝(8xFĠz~~}d3m5+'%)Qv͞G͖>C'~Ga?T ??/Dҵlr^,BΌ:e{\fÖ١0rT@:)3Pӯ&p׭nu[[J1%xqu [P1ۂLb5i2WoG$Ů.~$FĶ+J:GN"7DxPUPL~R uMoiFI}[OiYRIbj8Wzʤ\}o+uZS&-Ɯ m{5Pj 5u8s)B 0g$7,aulo h;3B6 JڮYj{(c:gЂ>.H.$(2Qo笀8.Q%t.Z;BolkU۬j-XN6r}0!Lxg2MY¦QPC0 u͓lAuO FQkLUed~E?XZISĞw}KPkWY&ߣoUE 2s}S"].h u*AR {vUҀ|#1FTmi_s59xm۱( |҇It2~}_:Bō6ɡ Ygxw}-)N Zsd7w}(|w#|:E%qumK]#}el6xR\tCμ*k!"􄈰gI?D4@'ԁ]1et\^/jrNr\0gd,8pGUфMeB\uW'=))4S*:ꋰ9'D\A8 MS(3cp4Ճ4D \9Qr&KlgHg.%qeHF 0Prf iH6v@p (r%gb6sAvP_ʉAꤤ~سwR CEzCÄ&2&Lə +;w')g_3_`F:BW>:LqakظdewG6x<_yl*M(h8'wQ_{;MӐqLJxO qOjeO?8Ɲoӷխnu:T-ծlƔ2助(RzoqӦC릌H׶XYPպUhKR\ fAKDqUޤҖ$vKXPZĠImKgg m%Tkk Դwds3vTߓh{&m[YG#JZTrR#[^F;L)"e kQڱۦ[Zh@O"H̉! Xdy"n;wJ#kjm=LI tCjP!,FM9W9CvgC`RzZۤqdxlA*<1`Q˫blR;ߎ-D1@E&T \'2*rP%HWmF띿U)YYN> qW,@@JW@VkwzYfގ]Z=ZC:ι2f^_^(՚# vշk?Zx~y&ôo*-neߨHU3@ oUT }VuFfQ<ϼ|ILxyxx4߻~#fru2f%T&އW䄯R|)FOf=7]K;K ^r`Oŕ&z~M_[rsk%l6|_OWR;Ǐ\كb#޿;?lkuVTխnu[Vխnu[V\ȋ!S1Et+N1CܘbEޖ9R~xziĬa=A+9ȼԣVTv2R:[c^"ef䰯2͖t@&DC=}vAH 2&wF ~ J1Dur2=qۑJߌ%/t)Ī1}r$|9_ N>GAP`p/ ̥R4&F y1t6ę0M3? jEAwy0dM*dNyft89dY.gK$%WniIpN /=: v{~`lrO2P F}~asoN1&2J9,{Brkj\䋲`(|{d3 l$gxjk!BJapuMa9n<ã.s)GNjT8}n%>Oqt"dxQ\*M[>7Vjkwyɪk)UX<.UM3Ecx(hğael,S.0(E wlOIovdWl }RZ&sɼX[3vi$U唫(EQMU  5Խ0ט߅iSR IDATaLn\Œ'S3RDzJbr7d)dṖ(}Wy"vQzuº6?И3fl3Eΰ,Qt8h=@ܿ޷CR4 oL.aTMVY˸eNOGbt%2\Mq/dR)% )]^W=46]T05moU3L{Bc.ӮZhiW_USz$EuDLGe:ÇC7NKu<yy{&8&IpTv=[/w%+dʚ2vϕ8֍s;ܥ/6}y~fs=iƚ6):> +\;pvB ;9vZNZ{(K})[CҩwiND13s<<<0֏ ~/:ixLsMr!֗_qǑ/1cq]6#4Fr?d~3: )$,ʼ,sdbc!N4L΅4n8G%3ǝ.Q qI8Cb/8v՗g&%gQ5L̑K|fY.JOE ͯ g-ogF1p„qTQ\{XdRrxyEgsfnNjR|DpZ\2eatR 8.X\ ZX ˜9>7 L~K +:~w #)RxJbM H91>y-͆>2/a۟?-9PdqioXa6"56{ d $T\؄F{~fr)ya i>vq[vL/Ş/~O8bT [0RQR= 1e<$4qB봔[VoV{Vs10UQ:JMn.cJ*>AXsE7YBZ3Gy8Lֲz T[%1m Na7"kᶏnVp\i}QڙhB2,uNlacU&%^4a0~Y% < PM;J*)B;k]%-DVΎ@fyߕc-8тAFݸB̕+88vuaDmlQmE3""UV.GED&j}5Wv&30[I} % R7Gɛ:EIWEΏ#;o}~P[:f[Z&M+t$ȩ/6|}l& 3WOn-w25 7~~v,@qqn^cmR/ 8?|V"R2//_̧p8u~x|E6[I$H-BNO~vǑ?~*N:*KEKh]ǒI($e,Eqx\L\"rN[psQ 9#g;|a""ԓhK$G_2x Q͸`)lw"!%g$gJJ0'1fm T V}}~0Ý 8C"fh1x Kbӿ <8W͏(i=],1r|AceR3x.ԸЅC %bOK;r*Lt쒔 lgRHcKAfAOJ坎[V&c@ g0Z-;Ho_jQ";K9Ew}S#vuT7ZpbתͿ`FwR(KZ7-,ġ_ 5@Zӽqw¼-Jgv>tϞ$fww?J}iyNɥ㳔(1!&Z19 uӭݨ׼qyԶwb:G{93mƉP:El|9\.-qC5[qy]tuW-L2:eNSlkWn4@VL)jFѹ2jTTuƌ}Jk|=~AQ?:q W /1x:{V1 9ߪV@ݙ!l8ɷˋXX#}_΍ٱ} |Vp|{%?xe@\qJ1^x^(%s;0 ƫ\9ƧOӿ,Ebf̳_++3Od5/@e9cLLHs~j2ϼ>7o0Nyif ͩb᥂\!1GW_}_kȶ:{CzWeG9ۣ ɾ<}FKfFa/WmfPR_~sm>o꼽{f zL+:WN$T,}_QJLT9ם93{خ C&Uz4eΑRGBv*J)ba)Rʥދ3cKW7^7 sL̀l?ʯrg\pLա_Pf! w]:&r5+w*E ,3L6Cd՞TX$jnyw[V˕R\rl&Ryc'x]1]MhcjUm.\%J~jttג%ҧو-E+Hc\*W݆cX󐵠mQ2ijN@YQay` Sl^jf+%K1@3KMҭ0@,16nV%'.A. 9'b}Ѐ %RmPAnx3R',M֦%_Zqb3}1hjq s [~⒖>" S'ҭ@MVl8,p]K3'TPo_ɫoK!IHԱ+]$Mzqr*zLmDž[:a&oCAi,g. C`M[ӉRW]1VHK`j3W pl1ct:@ nM":Nqu/|3cg!润c߭&-WM5FD:vuh_MaI|GD*fgk^kOsLJ|a$]^ Dz}}EUl+6NVfr8!qU3 =[+fιRι\ֆ)%s<><}9E/<=)WS%Vխnu[Vխnu[G S'.+7e3CH\P EUcRU4ms.uMvtI@!4T)raA৉2(ad?K!/*بa둠hd+ӖkT`N8AeDP|a6}d[ |eVȤ~9s* TĽ,ltˠFyˈI3Kb/L?]c+۶YNF~ťжh<0 W}fj[խnu\9.JodJctI&n&+@LrNІmS4&ֹPFd4jKQ2 Hj"wƕPD+}~Fy=ir% Z%cTY uy]jT7έ-\`9bkw窬yňڵCJ2{sU<M񵝥3X&h7 4K3.5\+H1RWE 0,R3B5pD<I_rƙcJ0PRȹ\ɤg_n2e2\8/y9[3;azyƋmVƾo돭\M U#."}? 8ZUIUr9)$MtI՘ ~]#~H:n}wEW n:T-ZTEyꃒXM{}! {:%ql 6 /Bykcڗ_ڥ0m'G65Ǻ̻0pw~\R% y"JWjPsNCt>9va}(/(;{W'E|=yd~3~ZөɽoxD߰T9|~ "~wLV:j cz\5XIGę$iXBζw> |#R (՜UvGz  4GTvd[_F6YH8j` \ߞFdJA(YJhf]qavd Wft-WcgAnY Ew>?ǒpU@#A=qGUW)%:I<3{B`°~9.l7͝\a;l()sJv_ݢ ɽ?Oofdv 2AP!x @AhS*miKzPRGwl`Ms"7N=JoZ'B###yM[y Cv< :UK1Ns$N3R2ް Tً❧P̳)-}#%l.TZ/*I]Z3@@!&4ҚyR~RsW9+1+ٲ-쭙|lPyjMKhww}:Վ!: 7Z\cZ1"UJM2px!0qF)L~um\ZWZs<܁=t#e γc >8Q4|R=ݒvRx1%\OWaWC{q Ч_vOjIww{v]|TA@9g^^(BrW]c\H-Ķ B8m8<<=M&kH|>xa?Gh/LB*0#_#T2xkv;蕿u]' 1&iˇz?*N@"w1lGF(O}b$`9eJ}tH(Ncm3lYKJH" •Qb2=*}djFj}La"Ll~01Tt*IBބ#RTӶqv̲RgY}&+hhoO^")F d~`w*S'981BYl8-},^iIYjfK 씔O Ò"8LlTbˑ LRn(ձ"Ē.qWj^ΔYf0f}S+fBbݱs&SㅥrGagA&`7|_9-ޜK= waCnPǙ{ ԦHPgI n`[q傪<=:ˈY9L[K ħWm$Ehܠ)ѽ}h{%3''ARUĬf!7ŨHLB{׭nu[/W{^I,K" op`W\ 4'Q1lA&.=N`wnns=GR+\ 1X"RtPEh;q &j!H}u7i|` ,n"ڔEY7IԊux`uNuUꇦ,Г1+5!Q申x>h辚(K%8CSvFp Ĵ RWƚ̴$_H5I@UQRO⦱gV,96A"N27k<R[elg1nbImII g$.樦%x c+503j $cc;k[cSsarK(i]Kt}#, iU2&1Ve{p!sn[@ն~DAFҴ36{WLq7wu] cDNO:mQʌ9\\6a:m@]eYեơmPݸחOυmM|0wX9_./2ݸm6s///Ca}inFЋWuz|C*:2nJѨp[<Fȫ) IDAT`g,!nW:10ωyIdWm/-)rL"ddt}W%FD0%ÀV%"EɤPQ2AHkĊXHt5/d:J0ѐ%+VGvnʚԱ*)Sd+D,= W^PL$OFmցd-)Ecl`a}>2<9EbONt u^Xct}BX#,{`5һM(|0M Eebc"&&캱L?j@?t}֗(h`鱦DL"whsбpwQ?&0_/:wEE 9*WTpdxds2&|zsYup\ RE8`ǁVtkULxV)aq|:gKBh,ڎ溠J䊀 65Dh9bPZeتhkbrd9%Wq{B3-i/ueLjTf/b0j 62yS3ٖ&H8lF2PYJKPl8& ڻe~CUY6M9 E*$SVzzei9hU>0T%O'iF$q8ؗ17s[c'vל2әKp87&P=V|Nrr>̱(Q t[Si=ycR[ԭ_1Cʍ/:d,~财%m] tp]YKҵLpi Z&@y)[{Bu2V%@AtZZbt^H93DiSΑda7E899NP\RN/0͘/F~C..)gʰ)7N:5,a٢`~D{±Nrb$<|}tzA`֍oΒIzNӍvs0 Joj%c{k-5cu/=q{χƈRXE&f%HLDEA+>SPӇAE %FkLlaQܸeTfJJV[kp5Δ)GR7Tt\gU3d)m\(UTTQE))Y5sqlneQ_)b 밽%hvNQͤl2ݖl)(㶍sLjP:}\l ?KRNk'coʲNڃe32{]#0N譳Db7ȉzegؗz3]}H'wGR8:2֮5x,Rwj|C0n !yr)8'4D/x [_cHVwݏfBIedQ*gNۮ#Zef--N_ÑnWyfvԽZ-ɾ\葜9K#0MWd$OT[H.^WR7,nbzhnScXLG*7A6ӕ-]y\}~RuoX?̧_8Cs^OHᡁYnh0WNS vG?\ ü,3َG*[a_,xǞ!+13t| ;&&WX#c%"˙7efYk8>>w8s,Kcp{=q{=qsWaJ1*gL~i!#>Zb |-.I\VXn6 ?*%ΒS:l_8_$T~r~`ݶXqH,Kɱ,QouC7i[saŷ kmμqt'+LO8 [;>~k\Q51ĮE 7ZQj_S~bf$Kcvv_l vG\ħoT܍>R K). EhL0 UE)r"e[8їߩL&f/^<1&ЗDY]rW{-w:i-Dgp&4+kd L6 S dbE*_)`#X o&Ƙ15$X> W9u19zMe+-b 9)Pޑei#m6ΐ!E:e벰zj(k\X4K$TD :q@ͽ#Ow\IcunT&ib- Z2*c/ʧaz^4+xOX=Ϗβ:3K=qY B.IPro\/gS9].y=.z /iY`s( p //o+ca9/kv9eCB.tq3X$$BR5 (H"1SÐmM0}6c_I 1zQ)dֳgy owP=?Ehj@-6R pqA^rDoֹi["}S?M!aMucg2L$cZkWhkYQB,bTиoXIv7Qoڴ%)%G񲍖߄ŐTd9RF@J&Օ Tmz͍>J2}/ 9vkԬk;Fn0IVwɤ7]ɢѣJkk!W"V,=1[["4 ]`c\L\O78tu}Y׾_ޘCBC`8r$ ]Ǯ߷#Ng "Euf7CB-j{f%kܶQF͍3O.K,C^ |ɔKk[cH`jqddӜz!a( ϵ~e5NQL:5 ҄ϧ3~]qeW\rqZ"\R|uW+1\L {i{wOGCY? k"&i3bg ހl`IJ/6s<]iESΙ:aYeMqwC~滧"9$- 9Ծp<8VYc'cշ`2ϼvOT7~s{!u9Jw ձL__Ku޴fTUE- :2CoJڬ 1RD:-Aw0 M| P T: ұYݡ.tfī.Da艅ޒ@pen=~?p˱|گa UH8U S_Y&.rѺ0I]0`%eqJ5\[H B(V|ޙ鍎e-0_ӘЕjLL +d(6y=EzHk3pb/\l GD~mc3׉}L6'K{[g3k.әiK;9שgކ?!8w_~;IZ'{z~2_uӋ8쇁Xza?uG?|aJ_+?Kk\u9;?}|s<Ď_L]\™"q ̨& PIԕtQ$}- Y0^k%8M0 CX%=q{/G9Qd3gLHR-:M/2+%*ES)Ӓt*rEB"ܮFݵjjIVݕKRa lKS*!fVqΙo4gD5.Veo􁤀d LhX3b XUCR}of,t&L E a`0d1f`ҎW_Ηn{8]\qx۷t:T0y815E1|PQʹ)sOK}d+W2+ɧOqѷZ'/\܏)7sx9h_y}J(8b OEPjTtph=<<|a~/y*:h?vRI)#D okK~c d )CE]uQ`!H^cL JKBQ'qu ~7wN)c&-eM^?Ct/3u/.`j8-=ơC =䌏#}ơSdbpS. \:J(/̗S,$ >|69JUC=om$Zݱ1e8KU @Lt~3Nt+RX N\N/\/oue:-ݡW)E8DOH%.Yii鍷ODžKT, v*:t oԚ}gރpkvtщŗD|2$fHsX[3"e}b`\ m&<p)ZӎK7inlOJ2Ba$zoH{;NI],]Q `JiAe/l}~X |>cFXVB j"`]ϰm-%neY1ͭ :7U#SLJͱ ~_f^gOo,vo(UlMk*8_LN8HI'lqKwY8ϯ7br{øIDTX/BY˳yz}!@+hI0[N|/.\x}}%@g-O_ݫl-H'Bӛ拫_H? s̹HʲL-~8>ݰlFm|Ap8Yk?0S+%+?G~?o3uB=q{=q{񁵈Zd⨡`F9fFKHop1qG};ӴC/09/VSsO&0G|g GsxJF731􃃮kvB-1 "n! HH!gY6z^X&e9GhFnhQ Bc$ҩcTEINYm2ZXVH`„+hc i`cw؛OunpM'a =}%Rnhy31,r0!9֕X_2 U%`/zpIH8v~si;[Jg:FcBVZ0ຎ^qZ]d'b>:`vΚb&HrC8wOG,? ah1%1?N 5B$ IDAT :\*DZm!ЗgV |ZBsB)\;g)UӠ5g_j˽=q{܄O` #D"`Vo$Dj3DDM-ʄѮv*ݜMB+艵0_bē &Y\y}w):K4RTm쉘CvY9oࢧS>jV|,Ni8Uءjk 6ڒU3qcMݰ(v3IE!Ɗ1"H1Rtju8g=g-bO}SdRڦ)fJaQQUMj&bN=M'H_ ($XzSf!NXt1ČZLiy8,sT㼵B6`ebz}1~fmOe e'd6,qB}dRĢalU!(i݌n%rL1o,3묶LJx_ӁO߹02M [t"fmC(;=m96VHxx|*+WsHׯJJ'8]poC::E/2],!ՠ=# xqtl4X t1&m `Z4%vُNk AܻRoPK9>}n 5ɗ8ץϟ7Z {M6V|XchLoHjtY'vCIkm T=t&ӳip*pen~v|P'-9E!9TV( awc{ybtq;< BWA k,D3bT $MU=(5- f6AI;E&!߈B3^J SڤM^WOjeR1^&%MV)J q{ȇB #!s)=Ǘӕ~bUΪ:dX{֛i5Ѝad k/aj1 ::9 O:ɆLBe~Zf XuШK +1Y۽FC,2 a/$R]륁VK $=ic1)3 5WFZ~ g#哊SEsiױ9 ]rK\$|~w  PDGg\뵀Yʏ?'rafrAJonD$sXaJY O^ ~.NL*ڰK$a!%aw8`yW{_t+tAbN.d]pCQzwɔY&LE+ Th(SV 3R;mJMBĂSJc5E?/nOd7"1ɇ3,hŷCPkQo+Q8'mR7Urmot]ot$\ڟjkn_87S [t{j%i M|9GLU_~7jz\ )R-&!ܶ:سح- $8R ! J"J+š|"؄2^ÈHƏuԛuq]r)U{;$4HJװMXˣIQ܀$-R^U zbڱiTê,E3Mk9Ԥ\fvK6#AkFk Fh!Ԣ2s>^#)`?~ۂSr'ĮHYt]b׾/",zi0<>>~r g|;MOS\xzzb> 븮{Ė{L 1)@"d-cnLF^i@;v8 _?saJc8W[j+[iw|r>sn:2(h.E|xS7kpegd_ݞÃ>`1IsWRJ 񱌯i{{K#ϟ1"Zz~'~L'_ jB!օCHHԇ4@Iq?27d syeAsf ~K :=dT8KຮaH+_r H=b8,=7p,H;;`r&-Y-H-K4%QI*#'FK_QV ) qjoRpݸ-l$Ik ̥|LCGtj:e 1'l9GCFK/0{GK7Z Hw~9τªUO,.g^~`^b, ;sؾ#U!g yg=^Rxb%Xreu|&v9hY3NsYT5%]z{,R*.M":L1 HENYl, aĒtQE$ƦZM BFԘ}\4n4t`2ʺ郅p.’iܚW4mSZ7j*Z$ԅ,yu?.)д u56aYr15Q3 ϫ#Z$idau}b$%R$ MȹIbb k5Xɕ!m)5쒚$ipLFk &jɖYcpXZRR`ʈZB_ .h|XcqczvfALDէ(Tţtel3&hN }sdA4EtQŪRiYUʦ`6V/OObk2 ƤʨPZ4X{Ky/ܫC"ӀU YsXbZ$Wצ %ŏI\7i"4=*`Q6*YH-3h),  L,8o|e&%y2 uݮw`ʹ:'åV oce*z89F+O X۩8<==ҙq:SfzOj oسdi8x~=+_~% ~o]Y6!z:SnhJjkkrv=f@զ|^oYS*#aM1zr \UVQmi Y.]n5}q**ËKZy}S  JH`)z:g62qk=sD^rbcrklמ51D9c*GYVVZuȹyShaJa+ 7Tu)o'"e*{F[I9}6n39#ֵxdaʷN/².Xc9a_ۮ~ͮZe!ĕg7_y>H y-.Rc,MZ^:9'Qnx^__?*?>֥*+M/²X#D9rμol$1n,go([@ bNx?+x0NL͙6*Ny˅(1kaRؤST@9Fi! 4:þYJcD5cNxр+3!67`tQ4Or2]g5*QQƏC$W$,DBN^hR9RFcp=P~b2Cmi^z~tݳ"Ȱsk1C@!Ȳ.R ) m{t͈5ݴ^% bڊ*[}/̥i#1}{#K"`؍~1"K.̉կN!m/0yA/ ,dYkLǨH )D4oC X;t&87xU[fMteYbcޜ.'cҗ1›Y'W}GpWG݁O.b ٍO߳-|Q4[?^xBhpR[y @n+u4k nG`<ܻ ^./߮q{"O&JlaݕsBk샘`zMFnš .N]"ڬ(]6awLTra|=[mbDj4Jm3-[{S|)+Qnگ Anz aA, gw}q hm#E*)IA lD@-3jʚ3:Z3حMwbMs@WTIN(}bd2CRF~bPn1xw;\ׅnTsWcgG:N;ƤQuK361.L\ xp*X 9ݮ|6w?u{U(TSG]-s!uˆɦٔ5MźV``*ۦ:utJri77آ0gm!S}oàz'[/ usISiI$,գvk7sQ)T[5{KYîck9vwf Fi4w)cY#zUwJѢƴJ,1yb4iKmeNa3ۺ2ĸ9e_!2fT2P_Id;KnUݳ^ A ^dW7idzr_GVl̈t8c9bF`K`:5V S'H2h^n:G? f )ΫǍ %0{FyVhnLQYY1$hZ|ps%Ft)o+l%J5-ְآ,bfݝo7 yldJur]5EA]lv`͝!u,Ӽܘ4@u7Tz~aNJiƪҀ2Jv;_ epĭ ~RMˍGR1sR˥u NM~lOʲGt:s,!r$H7ys&w?[$_vrMV:n6ldTFp>Zz)y>^mٱx$p9]Ol|px;؋}3 K;qP̱v9~BW|opƿ 5bV/>~ 8lx-}ywoFif&N|HissF#a03 xkH;OBM0u nYyPMZSZiuMc9C78rL6rdn>(Nk ]M'u'_Qَ#]5޼,Rb~zFߑmf5KI-/^%E6U韛MIfe53{i}W,VXw ~HRy]IyFpF UW 1x16M'X‰ű]Ж0=G)[~8{TSEsZ:Y Zֲ8Mi;.PqC.dG70+H4|`7#Gp;hÇ7]|g ?~:`=#_޲){nTYad,F:Ʊ/i*'nB3x \/pbLRHB'nL3f|W +Y𵽶9DSKʶi񰦚eI I~O/jM. ua"?Yv;MU"4ZcѕZlD#XN!܊0*s{j\R~g MZ?l< ZV"uR P7A׺5+2ViXф&k-X]rRK1 ~liaJ_$3Ha:ɮ5lL >"R!;,`̪r1@Y>f L*D*ӫzr!$fχY3򻻖Mi6ۑ~j_J2F,m?! jOGD2xxlr:6+MK7YeK<OÅ~d;v}߯%/Ɣr+ o/K<\KwGlO)fT;K7^廊MJ8)}Q ƯBT#7xo;x/u: ]yxkjf_YSKtLț޲mǼ^~By;{'|U6z'Ҝ\1ݱ[Fx6r ]~߱:5eB9<;+nH%]0gyXӜlmOXbKZ,7BLt넶L3᪃=mM?slKBPM{?-AkNM̅5gXbIή`z7^}!ecuۑH́Lj c 0 Ppc< lZvI,$^!Ōus|]Ǟazuw]2]#q^0Cד3JYqfZ",,NGbL˂ɫy:e 98]U'am7c520I1GN}9||z<%ķ?GmSlDeq! :~$6;g_߭q=l>ҋ5 A:"gBImf,HӅ˦& +XdEZK>=zmVZ CZ7vlgtYP,e;p9Qמ] p5-́Ѫ'L(,@έfJyf9p PP ˦ # B ZXb x뵈K[!^ @Iajt7J^)T fl)Śb K3$p5#b0518oqtoQwk;gQvu]nrl;#lyE} I7zj^nY,5/')gNtw>@Ȑ۳"1Ks_Eu.ܧޘa˜gfWl{dʄRmj=y]eGa30P>3t#uBM yeh& eltkFA4ʖu/G`wjhCUZ4qz:|5"564睦+|#LWXQvT>[*o-D0?<[k>em\. 9pn4?)(R|= B?R[RjAc|9 Vۙt[ސd[J¶a:%te39b<0%ՀTq7qh)n2τ`e/5 AS'MJ1͛~xqHLVϩGb x|H?1wO@WalvR?68>=q5xx|d@N)qw߿|r}>mPgMيJX7qZ'Bεz5fKJ8szDR+]/8o qö']ŖHd?$+  βIYBqA@șLIW"2e"so5hmrY6`K, #qݙє+kQ#s,KX^@ icKFXĭqtǻ g ۜ_i̚UX?Rx[LT4z)αl;;riس\&'p_) \v#fG5iXb"b4́7ps|$2erV0&RL_FlANI""'v⵽^?%r[GgX`ԍd‚G"( \w1H6$" X"xB+Xg﬛~fe>X(jl P)f2 y9Aʘbc5^ 2,%-ːclFh V͒j[?r$cE-X?b-z{6Ka(T>WMZRI "O^wi^e"ʞ6x֢ ~<[JV$Ш8/wF~&Ş]J-5B=H&+eYNyr튤hRL(KNx14q+ҍj>tKK2Rjr4[@m8GȆa\Pt* 16[ bzҶzFb% ܁UrԞ"\1 UU@GN=BV6 &bL85k|>SdIkuF Q0@VfO.a OVβ,ĸ`p]u¿}FǭyJMmfذά jX~:{y5.- ,c,2mlTH\t]vZVVt:q]Z_˾2JաgIM3;ƍn"l [J0X̍m6=2^rd]fb=s9YGlVvKٝQ$7.s۴<<Ť+Eڻw|x,\/zǏܯ~/Q$Φ1ErBHΘY,Q0t9ǾiSL@Lr|$,qV:h]gXKy5Ca@ztFo\u2'SFwbFDfc[:O_zf<+p216S=W"7ea-+uש,9(K\[!_"+f%I92Mk Ÿ7ڶstxz`E)arjBFL`b,,DvY\E35"޻nzG XouSǞAO$39ޖD´%}Xp * qV29,q> |xFO1]'/~"HJ:. S0pm!u &%Rh3YqLׅF}Z>Kz?=4eygu?ߦ D yޗƬVp00ny=o)z LH#aU]@fy8(3b^_e$.WNԑ}\ n*g K`&>~xOȶV}ߗK璉"ʏ?|O?2iA2x󛯷^k{m^k{mߴS)2h9$ɐ3ҪRNI6C,[k &Eed4u ';! 3ΪxdQymQo;v]nڮ5t%v: XW7=0W49Χ 92y1= |8#@̪ɼNi;|iJJ9)vs)2*$!HJ]a%ݭiZy{GgG' 9~y4c+C xѩ{M. =uiRSR%91Ģ30@X&홗^ )EmI3HL[rrnt޲ 3k&jf~|%^ʵtpC,$|9KxлFz;x xou,O?3:yᇎy8űj27qǞ邩[bH `TslG] j!^kAwO L{Q2!%R=>'“< mVN0]ajt{P5VS ~/ 3EvBrP^]Z96UT ]l[{o|FYK&k2V )iTj.R,TRNf2l뮱1ʲfe$XgAihUd{u !&[FBY!wfxeHؕjT(')H|r4_L[3+LDXB;gg>'fw,<=lly|FQ^O{9 iF޼U;Ͱq>_a~o`&y4~y8 79l5~~/Ntl$scVKZS:K$"iYHbuq7NEMME$q̴,lls 7K s4 K%(ꀓ0Ǻ%b:z-sRHtJz4#f$:IR qV53X Ⳃ[18 ۂn-O힀D(1ER';?Hλo͝LvIWܯg~LcT|F7vdny$ٗ_?˱=5y2\U01V.)Ebb\nX)[ݽS@iZ**ɨFr(Y9?I\;ܚO$/c&\UCaUVYHe__R`@n7v]ݬ~/> T%}ju*r TArITD%fH뫷E/nO1!9;Oli* P1@Tɨ*!Ij}LyTm DMXB*ѐ4VYr&5m t*C:K6 ZUd?¼UVg~j:T}ʠoN@Ϥ?,:6 {v-q/u_|Ij,&7/AIIr%D3/xYSb[o\r25t;9ˮФn,g1IivAgk1+1ZBn*33l6j{8vb*@Eθ_Xͻ?mmԃ~>3a Xx(F0y98>= i[/]g#?=co?Vh93r{>m/Pc;N#a\q~϶HlH{u\߭)?8BdX&qqGbb4 P2_b"F.F.]=z6lC:;@t4/˭ݯ;Fy"aZYFwCX4sq>pzKlznӵw=)~J, *cKAY3FabR Iwp1 UzzB7@!/<+xΓ }gYB’ E-~1ą;\ޜ<"ArP@ gflgŒ!Ē+#*#)[+Ւ1VC_vł椃uaQ_,2tea3Cr@&DE2uf\g^ps?gL7:X\3#W/8WIFr|9L6D-xxvLj2P~ A2ג{]`ݱ8;O\feؕq{/3#f- )=[165_V\g 0wኙ=:R!]Qb(ͦ>Mu7C|v{{εs_Y/MZČW )%xud[[DMb2׊G%_nISXAwl;`IMûJ)e&8Y"L_D|+X6t1簐vz &l̚kg VڅDƪq&#* k%X&^4J]=O,q6݈14kk Vz{5|>c{vܭ&9K,n6{(OEӹHB9p`Uz̔"e8LUVvJds FX0-kɭ://w]Q,3=s9Dw<%qcmrVutVe,6[)Jg22/׌%7vXֈc8zal[=^W\D=v7v3՝9eβ+\=9'YəL%R;Kf/r0ŧ^~Z!d}h\VۀL3M ƒwż[uw Fn:kCDT$ ߯;u,ʹdT.fk+#*bb A͵ʳf JQg=CQvd.%]´(Kf W.'I9p DHYM'C[Q1d~0-9AXR@wzL3Hui&_*gqE_ MK΋Rqn3au_ˢ2;e!eo9/_?*=nOCRu\Be&YkƏ+׭f^k'[VnbCZT[~$ńs |Q:or[H/{udBEt)5\U3teb\n3|WWX Xa,&9ŘLXaĒ' Əjz MQ>gv+n9C.7-%M(g؏M/ ӫIn(rpĔ1ʠBFfM2bl&J N%,9Gb{>]I8p(0:p)c\(`]xX VZu71ΑIĘux,6ak`{HI ;yuU->lly"BGXk;5-3U2/Rl p"AbJlUp9qׄ肯w {~>̻LIϿ_ٟrIN 8lj2)B_$f" }uH^X"$hN`ľz꼶^?b`3n!uB۶1m-B- K+n|ZURNִb϶r{Yopǭ~u} ĥjZe]k6[%6$Nݙs)6DtWicM䭣 *Fw Z˺O1vE2VN5I+jVm_VƬgP%4]Diܺ%YS4/-s/u(R1oqq dʞAS7-@Uʵ^_T EV/XWLY`Q锘'r1:N1p:=N-s$Ge.h]ǃՂ~Yf#I"aum6 i[RF]#z@ jz'\w{|D*hʿ T#9eqlCqDRit3k`g,Cs?| xQx-7d-~1W.ƅ}wߏtjYfg70g5!|}|Sh:yJ>^!NAt7^[P0zcyw<1C[ńH<7Tr U*"x0IZ;1o|K{t= gcЛNә!n5Y(%GnR7EbAwNz caM3pec%gBض2A) \][ #ע{6jI(yg޶d/ (+ D1tӉKHnsv-]u~112其Uzv0t۱+2/,!p]7|n6EҀ]=|gdM?o<~m.rt]+fPm*B ,^wج@jXQzͨӭz5dv{~bzsƍŗC&n!smFsvG2Go9OzdvΩ~`;n8+TqguTMDr_qY^k{mt 9sdĈǼ`=Zt33Nohm)w3PcLY_fFN͝G5ЯD %!V3>rFJM}yŻ1`$C3\p,zyQ_?l+Gf-:ǭQˉ?W% Ml#S΢J :dئr.}IF P*CZGiXfe *%5JI#HI뎹f &6\^ˤ hf` 8Vr՘)abDUS한 >Ik|9XK$G޳L6 1G湄[tNe k +E"N]t}z:M1Uw^E>i+UxDWzb}=/gn~1 z^cwu'융>t*h.GB88M >Oq%L/i>LOzɜ-Sv_) Ƈᅱ6E'-IK e1+BXGzexPfηL?3fؔN/+ȶ~r=H{lv;e 3И˙{߯Sw>[u+51Ty^ v:]o8yثss"IW4ݻo;N'RPOK{D4z6~X@M䚒w|TK/8xaٖwq}x<Jz\ԇ!3sy֝#a,C1ׄ,Ŭ1A0+OIi:~_P03]XGZd˙?k퀵W CɖTY9Iw6dQ4^k{mS^M^v(5H.u_#9tSU Lȋc]5ʥ_=,Ŵ2] P It͘H(氵Yq/+|PU?k2k(w_& \aȚ*F#d]t[9&e#I׊Fr&[bӔ.ePFe9ZH3"k,z:WbjWy[VC>&ǔ"ɂi}Q6 3Ӭ2 ']v*xE{Ϊku Xy1Am Ǩ)vBjcIyPz*v]DJdf*,abg1 ha{۔/eZMkȥ?0%9eK"jka+g;-PAt, QZ1ѮGTҲ, ͸iEma|*8q. /?zr0X%i?4XFc9ypl~?y[Qi$_tB,aDd_ǿ_ u,gRR#KyCMxW-j컎G5I}jaoOd#v8<0/%TL C{frMӱ0S4i=u:1ְy3*x ~-wLJbt>s:>#RI0a2l/{o{YwtG^VoW2* D! 0F XL !@m,نK6Ɣ*W33⽌ssv`G{@wIqig7 klZy|)T&HCqd x c`!Y@R({Qۄ-bMfQTtI/,\꼀 K s Oyس^t+i2gkٙ6ZU<ZUH4Ir);]2bl0@8ͅZSRU&8۰4k֧})- .Lkmiiƞnl[ݩjLIV@7V1B@42 B,bc "J;rrEZe_l#_;I[, {bNmU=BCcX)jC[CBqn}fZO$2;q!r:zl_AT{Z`lF\鉽Og6wIJ+p`3t܉!tc>?-og-|/%?!~~5_F6x ꢫqΒLg Dہͷ-nqwB02vesc•5X 3m>5eHC}'9f!܋ |&9gx̕V/sbF "mbDf_c"LX~XNG]/#: ְ`u-P71QK~WK*J6.S/7F5nJj<5f4έiѓݍRhW:ɹV 6Z w 8MK{Cђ1h6)6*@r$S <深J$]!e.SFP 1O]gs I2/3)5t"83ɳ8Zp5؟,X@~b=dS[O5ED5 9U yu~d39\rf1 aWJv{ +@@ ٰ$4MLAN: /ՙ0R.so ^B7tlv[_퇬-oX^g1lF'/O.|l; ^*\:Tu?85R3)-e#lv+wB٥wg{v}y:)?<~ޞ_ozv/^"J-ҞCcNJKv}^=oǁ~Lա0ݳJ:?>'o|~}KqJ-) #ݴaֈضG2Y(Jv~v潟-nq[-nq[:+h9E0eúk4Z s bkp"}he]ƀeflu=QFd ]@Y2YY\3*4$rCrа g\KDF;9"z+Erg+͆#%Ex VPj)Ӎ3GTX#KlD OĹ3yDeoPL٣!RJqSjEa~RzmA 5;|ɂ-zX.Eh6S-N(אweOCfO!fQ>'7U X!E]/ttwZOb 1&.lKVEGfI6؀3R2 J\R8?|WMU(HRT IDAT_c~9դq/*0ޅLaF"ggcOAu@[VS-nq[MjBlNjΔ9ZSJ{:HYȜb"u(="M5!I $}BǤeC 㺼T<9>cH1B"=ZszqBWHwjN3_WU7b\֥dm-kS˴ 9g-Z®/bAPS(%_T؋ )Yъ Ѕb$mvZe7ZC0ϕ c1D⥭]]*_>wƠ Q`!V^V1" ( LI+Zy"!#LscJSV:V]d#rb6Lr)} -J3Һx9}Ӳ9O)ez>I'Uat1Q:AcRJch][gB㚴%_lu,={BMdT&p(v3R4H6w&REQ sxv;eZ}mM)׻ŋYUJsqF{>&~wO(z\ҿ/1:]NܡumTaP:ǜ8xb"Af(,$2?X Cqj2"[1$T!QL)%ӅD %F5NRBh!(%\&AzG78l ZB82 :VWv: f.]|}MP.,g~౫BUskLE-I)(UgENՆ 5.lЧg3N*&WįcqֵKxrnqg~^xyrƹ9C#c=&;0hXg1_[9d0;ð)nT&K_.Bkn DR"E^Ǹ`%jaw/0 `i: v6ڗRӒ9`)A"b{`:N=]:3p*a1gK$H7X'ə.fZupt3kSYfKnq[a\+WqvY؆#JnM pؘښ9%YXvrY६61%L e=s%"L]y)ŨAJ !*lm`BdkQ-r\JF׃͕Բ\4]Ĕf0KsW)'RcjM߹z^YU\JɊoQ'ZJ&fUb6G PC @"EɑVǫ~m6 OE|ۓ;\smPC-CGIYJQIR4  m,85+ "g3tENA!%=gmR~4yLvݏ\K\kLJK#坩/b.: j<H sMdQ0iGqU(_[ck1E>*SϾY1bXr>c4YmۻUKo<=>2 Dz}7,7}rVt',^dw=&Oo'q_^m~$d7֗:V]!* ŋ;ضn#گra@Naz8/xl Vk֛-ou=ñ%^Qec1 gl;+wvw;EoSòͷxc5q,rZàa\_47\_ΖjteR̨qW_B 䔽P%1Kno 2_"UЭLn]g 13{ωTL I [}R12XVE)̛L#~YKL[>%_+dha9Dm߆Uu0B68 'v-8X^hMdaxotQt^"d"%-w=cr#K)]Hbq Ugg,Ӫc*`Cqa;]׼^QTX\k:WMIe 'Ug(ݖ~9㠋5A%ZoՎ7mҏ=nȈ- uAf$U24X^E隳IG*u![cF vNu@J* B5+GӾdE#a~JX> ]wtS48#ͮJ3wrN\o%_7Ft9s+~@,#4ͬ`Đ",Z*D u[a@KGΗ-2eɢ\^ fn0ZQ*@[kH,D ٲjsl(hJlA2"@C?COj.*i;8ۀ0F[ cg-8#û\S6R5 Ap 1થo60u}a"\TMGOhQMú6Pfg<J,#RU,*W'\jZ۶uklz}%bO` vLMVQݖd\s Rڪ>$\Oɤ0JWB0h !bi$%*ڪmj&5|Vϔ>V,!^+dѾ]y Xs*4 D7ۡ߮AeSy]M)SO~UQusGʭ+/K}DcT92}Rd :ޯ৾ Tx< j`ܔzu,3|lH.qJ/L?88{,2]VY'$:ݽsatV'4Zq;:!bF.W }Ƥ@XIt6D?s|T_K>CXxz%3,2GXp.wYjZ3^1LEu-nq[|r)ZzGaPJmT$DeX$B߉ҼluO r.1CR`1rnכvLV0Գ[ ޓ`+L2)H1vU;vsY(bGSdtÂMiSqeI*+ Y9T&t/Re+ [By3K2.SzuDJo?#8pb :ApYQ|n181tI-ٖPY1ӑd-)5D^B181sc 9jI]̩9t #~(SŶ4b躕-V_6&:[m7)RdЌz?#9f]cxuXDM/he$_D&p -IwPp<8JB]D4p[ Ku7[Y[_[xWgO %lT&i[=~?ecQyc+>b8%SM#t=/ &/C5??|*O?4\n00<7Ajzk"㓂2`nweUK1F>n!]g}%iLJR}׮Hָ ̞ǧ67}v{|}/ xN7O?-<<>>^uC׏݊1:1v::6Sꉬ`MX3e+as.e(,͢O:9xI'$Qjq"怵$1 OLO^ N6,ӉÙܲ]3lstc,e>%9?S 'smgY Evj%qfF+2 z31IOUAB&;1ډET)Zgv\BZ15`"຦S2}b^Iװ8Ekհ A=, Z_`e5N>G^wEU"+|?aSrY eB,4xYZ̓s[VV݉j4i*C_ *iV *::8){:j}m~Iĩ^2Bumsq .Css(#ZН: ;'1`-coqNZR.J-q N CuѿVz 9 ^r|[i 'aIs3&YkYcā$LHYd(S8e DETVW$)&l2Pָzr*ўKyn0 0WlɺWpuhh rRXBW uhcOI}  RY끤>T׀ HZRHm:]Z/M3)EkFbRK{J~\5Ux{[d'̃ލwHe%Cbk\ewA9W+]E=˲Rd}& iTz],Wm;pͿGZ;:??>0) (y =':/}|jxp4NTο&9|Zˮ8 )@P#rN۷ei@n{S`Lj۷o3/_|i( S VȫׯOxg8y8Ocx/O2exߥ[-nq[-nq[|rʯ=@?9Rc9UsI/'N|JR:jPSie\*KJEEEYU^[EYˬNFr,ÑinBnfr>y\Ad'QBLD3 _&͐"XSO#KFF)c[L:bR6JuJYK|)ljAkmgq}O*l3>f"RۭfUǯV.B$31a^\l^ og-K;cvpk0LU4tXF;ʃe!h*XmW,3uLfÜeuԶđ{E#E3(6L=+H{e ghfMȐ7`Jzi.}CR2iB$%ͲtI whq\aeQ*O sQv~f s8g*r s+e`$>Բ 4 k[)Rs&wU-nEeA%#g$\$;sѧ ^31IDeـtZ؝r&UMM&փ7I5{ bNR$%" c2!M31F-yi8!URΗR&D,sb5L YL)nP- ύ5t:WWlNu=ԕ&Le""jP*mnl )7z]Bd 7120DuT;aʈZB-E7l#估^0,XZ1Vb, KLd5ٹl[yͥ(,&F$aJfTS3t[kA˧u~:qk.bԒ07mobJ\&ta՟{\%`"ʀ)lŔ+r Jz$b\I\DkغesH2䒮$Xڐ;~'f{yn)r8TKywx7rΜ342ƠRX,oH[V|2ka2"|z:b`'ĵWib&,em\C?⛟~u=?ܭW|pa~6[|g:_ٹIPpP@klZN:63VkcӉdq`SJn~ ծY 3WVvy:=s ,L ~^xtEe-1dHP|%!sd98 +n0Dz?kDq.XvZ^1zn3^mXr9,îhVwfl:FR$tE@F33Ti=Pʞ:gqF"&Fg#:e#1g v|S@ %Co,9f%3tZc嚗İWJuD!@B6aedK@ k5 9!1Bh!{們TA9n01>s ?d[ A"(}8ImOZn:-n$j+v]5Z(16 .&Q7,6 X\ Zޭ%Z!IѨ&2rJDh.1hIX@eҒq)-NWRyH$> ILԵS,.גRnhDs`^oFuZlrntjYcH4LVo9cդRSnsq-8\o#,M#aCĴ_,(rSȬ `%gI!+RiBܵ uղEk5ȱD-m:TR̐U>W` &@%NT 97ݥgѣM土3@%Ҝs+ s@$_ڬEvcLk2Um I;9^>nʰ2<>5%APFVnKRAT\5כ icTTr\oe+)yxF2w ˣƷ=" gNecoPb_-|]" \ttw]ҹ*wď+/o_'?s{jaϟӟ| ?Q? ȿo */OOM0~bǺ_^ߖBK欎c-7Tc r~b(/_lOZK ݮiwW9Eg_<<<<4iZqw5XW'<>=Cqzz|$q\35Fndܫ\ŗE >}b*ȲnF%ľt9e妤Pi,nrA`:GoF" {Yí\M ]u ܈@yd7п\!k$Gp3)uaoVnúa*n`GEjq8wG؇%rxTvQ#]lM2Z]ǁ й\yO'c9-&S,$jt*c> _kLnaA*ZrL<@(̪DM\D a 2 ҒE" [OHPM S0`0mWt+=`WL% [gewB?:;\yWUC4: K&;.ɶkaX?*~)Br1Fêlw=֪_$̹V-~XL&:X OP 1&gj'\ZcVn1Qd.,Wlf΁+7C@72H:jmxmXF0()l\cp[`6Dc;D]sY7\Dyh:Nqq2;?t# /2bxd|**j2J)I!CudrcytS=U@)S?eekQ6'"|sq૑IH*k*%7# ǨZT[r7n15UR~4 뢂bslccFla\`Ispʅy ݱ 0ϭ ^I/~ ~n<&*xFֽQWDoL*{60Tf W Ob 4)}r.ˢCX6:8-9 6]_Vh}+ o _}9՟+?9o#=a`Y;~~/w,D5 1[o麁$bT HM _BgkSe'N'U6va&tolOG2cl~үS/Ix|6 cn0{rɉH 'A/ԩW\w8yJ?5?IIèI VFt~.$v[-nq[-nqrfE{%SzƩ*fu(L}DJr+}oԌLFQDQ RR3K.Kk*jLˆ4:r)鉫 ^YB#;G zi@ؚ)WH,"Xb,N )YUYY$ 1)f?NGDZHhɓ݅Hdɉh`LM]5/[E{]ػY֑c=(6ӉþE%&|4a,pN\%\*kC!t,"| DT:gz8| *8\~5 E) 8ɾalɔLf]İiIlw?U6}˨PQnpvB_{:,hRuVEkgۓLf 9b}4 \GCG?\XX2)VQ*/KaEZ;7NK 2BU!-nq[Q<͆F͹GBa$s]Eá:UvC(@.YЈ JNoV و6d U9NX~iI30K5cXK,rBbJ%s,J0YRM3ژgT#%FQ!NjE<ɨ8sUuBI+z(b npH_k!,U\45' }UisI0}cزc]qzvr,n H,U'@2ʺIIbl+H"ڴxJ Z/KzV;Kz%ehT3U1r,Ce \G-|sQ#&CN#ñ=qܽ`=۞c&=W7.iH /MiCF=i?iDg8Z 6jIJhN]nØuuH)ę~(w_O28E~I?0Nu?vSg;9ܿLc_^ ۉ̀#uv_`Ք?\R韞ZǑv]vƆGN=9ô0]۽;nc٬7Lm V<>>}~j_g}x>[3y͛ϴ4ab\1^ۼkuk[]_u e(R'@9-iIĜqv08h: ސDavVa΁3lr gd8Ts$ȉTxœ ( :gOzqLD9{ìoN}b]cĐY|DŽcDH$ .'-992}nݳ{i`*9zbLtY|0Y$qә]HqF Cb7(MKlUѷtW:-|l=K$kp톮sSI2uzʄ&TEy&. M:C jdznI˙R;mFy>Rh޵;g:XV5suQn(hAň3ut΋s޲.pG"6 xѪ 1JLK$zٔu18&v:,AYR+~rPQ>^SR纺MZc"ȂGO gmߍ>\{ N `i'urFK!Fu(0FKCi&^$YMc䦝f%Ho2VLBY7QDIΤ1du|*1qd9% ` )6 0@Hk.TJR0e,4Qe:61ݨW'smSNEX(r"&].UGΗު^&˯;^K(kDɿ?3q\VBT))Chtdi䨛ޭRS~MUTtUN%f*c-9EEmP_RRǖ˺un/u-&mҬ3uE?+zEU[%uNˮL-{RӧMŗkek97**kAQݪSXՄ4E= \ڎ&VU#LH V՞7^fY<W4v_ d)%Ycé ӉSq2FG+$ ~Hw;@5Sedf?s>1Wί=ү$fX~o|7eY?qa|w|!~,43w' P\"jzsz8Ei*ۻ:Α!g?)2 S#x>^GCz}81vz}"0ZSgg>3>c>gya޿e^V"0nW\qҾS\ZTA>eܮ{$\/XbWI`>"6 Z:+rGaVpY 2/MbSCH>B4d:d`-.lT1 [$@>E2Pn|X63ĄapX!"DbAi]g{vk}@c[{Gs·DŝtbbLgϩ Z j]QRN,a^c==3\]Yt:CBh!pvzL[@ť[V>]3ug, j|Gf$=?˶c\a$ci6]pXrLʨpF)L8]cZ1η&BѪKXe19zV1'P{E\<y'aܮ۹Jq4퓶%3d̬ wq Q~L[tKBP`b 0HeNUOLF 5M<~iZGJ^lXr5:}_aIbbb u.YOVgo.E{ qh~9Eb)PT@ # ^hq>,r]g|Ufo( e&:?x?sbI)%lրFQSךb"G4FI){b_-A{lxBҲC&8&M5[Z|]L2>W&& ɑd Bbg5l?r]9ho׼G6H:ٿ(I1ҲŌ<>O? 7odձ)zռ?\S U^+}w_9`fe 8hYk7Uz_zF08Þc'ѓ$Nhj`4*2uIC"cx(d k q `MB P1c;CesOOl]!NH}&Tv`=NI֌zk]SAC3DCE?6t Y*qv!}XWRSNMG*x <|+z}[kZZ8){2A؁EߵwC rr%ny͚eP77]M1SW<腷|({>ާ1ٌeĭzn݃Wi[LVei-d`g|kIO1¾Y6 AVSJsT+ibdQ3wWw>} Wx7HnimW9"Kx.ڧh#y-c Θ1h VFmtvTf`o0Uj w'[JLau_FFC XAጾnH.yD+[)c1VEE*+tBc2hԨ6,mzT/ . I!BM* 1ſ'ood Ԃ z/koP"H"qzaUN(if;)-He47R"E 5Naa:T䳨O^r4֩-V}Fb(}VZd} 9cy$`+F,b @#sXLYR|ԟ)1#'RY@ ( deFc1v:),i\eUv12}U+ף_'rFؽu簙®I{sװZFHYo}PY}ߓ3L;O}v:6 Z& CUܶ\.ŗ}rEdH_6-Y>~^:&u'\> f=nw>;y)َ볳3YbqĬ0n*9przBJnjKƢ7"zstOsrzBGօu t|/ayFi}?g?+4{kòg4 b]^yΎ]v.Eh]v.Eh$L -lo!5t0ּapB_ѩ$ )DP;H.vdkL@b®҈8*C?3 !Fi{dΟRFRUlY )EV}I"o<ҭYk{ގr٤ňq>X-BXKc, )hJ?/86 Z][b~`B ka8Nt"jg\HH.`DC{~}:O2izǮb]̵[y#rו^{!2!9veN z9>яqٛV.uw=ƭ}L;j}V$YK]ޒ&qtU|*И kֳ֪> @nn?_yW Vu\|YŦ 8ꥻ'x';Ǿn-_<T||rb oN 2*#h*Uٶ!E(LY2].*ju)IVƪ,I!V9ogϧUR(l5h_y7^G{O|O}?^ˏɯT yOyowB; #cg6R Fѕ}[)xA`5(gyQ`2hE20QSt6\^s,ބHE܎wj[ޒl.-Wa@a_O? 0Z jIPpSllruJ)E4eD[:NDb$|D6N02Ι|;GJ0팢3ܸq[nD6廮2-&k3&p zA^!j òEЇ-(5Pg~ÝKcuI0HCse1"@@pP #UB &=D:3*#2.L_5ΰI4iSOq]%A6nv՚n3ilFjndfjW-ll'ܼeѷmL6MZpYrxCyrrk4a-NdMj G]@NBeaF /<;z\tE5s9%I)oM#?'߮ȝ/eMoGyoxd-|nzEmڝo Ef){hJd̀RLSX@p~')!k73 ~ b^/>({(dsď" Dx@͑՘0Ve/q,9ԈYLM޾'ȹ!f)CWUޝ$S|rb 2&UY#o FQAM!}Yf?s_zz8ҝb^\[pUX"5t`y *-}O=z\qos4USj4h1*}R1h&(;/)e0tU6U/XF:'+:29FrCvhDణgV !۝1/`ik6wL38X!GM ㍅+i_uJ_'M@ am-3LJGDZ rD P13&ɸ0gj[ c\(qvV y#L5:s}Wy>E +Y8 _5o+ ?/Ţ$5{6cGY}y;']Όv)>v-vsdr>jDoYɺْ o#2 x{4ReP7-4JYv%016-GG%jaƶ[ٮq΍X gOv5 7ngJRuBnx壯ed2%eY:=, A=T.њbgߢL ~/AcNӉg2LYC ! ~`Yh&#ش3)\θHlcf;|1ݚD7;G".M7bkd/ƼۈY খl-XՉ\]9ͣfT򶧏\Q̃-/L'o--ʹK\= O,/z $H餘D1S*_Eg!!tuUC$qe6pNha(}L%ȐKBUfM b2u:Ex8;ɤƒ Fg(`26TaבѾGL475V>-`lvbu:+QDrD z-ddb=\wx9Wla8FVд䩐Lup^rsmrnG]u3'/GxO^:S `,YeV9Ab{_pe!n3xl7ơ OT|{5lm NaQ</𢦳0PH&J$eLɢ%e1&C+>,ƌ $k S0iO;+hӮߨTfE# P"=u"eQo&# (?W_Ko"";c첽2$t{]8հư|O?o~Y9~?QeyPpLp5R(^L)i;|޵C&!ĒfbyG]b&?],ao9.kgP3SA!MC}N9B-z5 \}l5c [Lr2)}YWP 7g0C3=)ƮKϴ2Nb{^xпu+(%Nx%ctm7I͂y3myջycwS>nX0֫%"3FU\5z~Rpzꎮ+łvk=]ZkH['魑%eh_S3 ")m[U͑orʜr5<˕!FNOO1ʦ|Wp=V9 jrn[fĎ5y۟8^digk4XNB?4&h|]LsrHf”G\ql =$eLqEZ4cq-'8g f8dVXlCXce"˾gI4QB# k ^o6{aNƻAdӮs]fSf7Rbcj\ЇȐ2S04,#w ˻{N',چu pQVl1zMxGMAcL~` [o(d[h4*Q JCG;d{@/&tF#g0 a"6 { `Rܒ蘯Yǘ:)QQNؔ>];63tl!L4W9(ufKxQͶ# WJMmr:hU>t k~ 5WlO<$10=s|Y{؆X6!cBOjnot'[RBr v;oz"f}~7K? W?CD/o4>~3ɗtW.ڿm\ :_${,p>!<5:E'A`PfoTBՙR4JJA2n cC"<T蕥S%SCxe0/UZcE&Qeo)M1awNlvŐT$:j@ Gc HaHm*i;۔> pP/'K?]~:ҳ_yzKʤ 10F "AMfng4duLw_S&,e?`Zg=f1gTlEvKR\&c6R$^ׁ]UI۫~1y՚_Υ˿G j8cbY֧C7 ֲ8Z}Ns9/=DSLzVTvףTu])IRCoUݕsly0#ptV8ڶמ{_.: ,.WK^<=JSrüqWqʱ rdS߸^CbځBa{tLM3w_2P& #b-!u@*h2?q_&BHnxϢ֒$7'IC&x~3B)ߑ"UG5R iёxm&ofqszNgҞ㴤Tuہns4q~kfBƂɪu5"͓#GjĦ3C6;vXIak$2CDDpECfk=lY( g'kkq"˺|t5 C8 },F5d7,Yn8x^چUdjkhql<& 8lyo6>ѣ ʠƖ}ϸUg$%r l !ЦZe$I^b"m#z@H&H ;< !)ǽW9DFPTfq=c8UF':)%z}=l#) 1 iH$SYEY{coz6͜s >i|`>1 D,A(w/;p.]M[7??2k/ɾX<|)Ó;?/E-Xh(X}P]FqR @~ZC댋ZŊ r1df!%Mp22uj5 "mII;(}HY%)'w8ݶsF۠"bGU ,y8O䬅3 ظ,kZ I{cޤ}uvdbL)ɓ^}1svgpVEn»"}ZD }Ɛن2)-KLrq3``*r9?v?|#puy ^kx {fNIY~oW)ڿu0F7#ARGAA=32u22Ai&%e,*˙*Թ}V (eQI)!!%|n3 >mm;Oawx7.nIAJ2ק~ҕuV_A, '"cfX-W˗"vt79?\0ް IDATDeaaU/ƀsK#p+fOfZ1 "! #F7뎳kՙlG>Mu-xR;#~S&n! ͙!WOl67t=Bx|G>ƓR} x֫%$.RΝx*:;;%-.t3tKۦXf2|̲]o,LpOvޗjM=^k!OsMI5`½W}S'aجtVA>s93m\kv.Eh]v.Eh]0u0f45kej&O?;}1XV1ںg4gR^UvZH .{I)=ela\2 Sk.bXfd Ŵ״)qżJmIjwxQrEN9gZ| Y6Yg'z,6 OہY5ߢ[TJo鑕I̐b;fb1&Fa%c`!aKf.PO[O Y@37UbW,!$MO.sh)0t* drMld(ۘ,P|U@rl}D=0kV״Ga &1Z,R" C$LW(jah.pkk1Ev\?"Y?Ӱchg !IRP/}F$D2"_OV?jE4͚!{)i:c2 !46K Cf{+(bdJsrm)8kY{*b#`s2F:imFLy~/GyՓE=)$"UG je`QITV/Lȱ0DT :ҹ/&]]_"RCy'Mrbqƍc85HUrR[ }yt&"r}ez ~n:Rd^wjNX à6eUfIN c`~pyq{{/2e4 a@p΍}NUgv̼xL9`Th<~X8~OLU>-o[~sGpaXLW7uůsxXOy򩎷?[3?KY\&͔ãAkxi[1,E~e?Q<"nN5կ~8>F:2'h:%Km[X: k),ÃCfwDvˍ*zy&5ݭ3,:X ^8ZsfPMkS,aO<ߝw1*GgT,O:ԶbbDNYQ$KcԜcMdCRD"6Z- b3ā-4(i21aAy(6e a-S_"g*5XI<Ы&VBYARqіvҐx@ViL{xb8]kU?n&3i2g'p"-Yu>-ӓ4U,; $' LDoڀ;h)L}fX "acMfua- No}CO VϭLJгYo 6qJò$ݤ+t5:?xe\+ Yͬζ؜I):9?^H)BX:qkpLҊjƝ$2ގidI^eK*IsJ!DRvxB aqLC?&HFBBz}4 gŔ ׁ#OtIH!s$DBA,M=xbi%rx,0+w'RN~@}{QZQ0MR`Z }>G~/x?} y*֜|9=$>E5)֘sn2(0W6O1V-.5ҿJ>0فKVn;zxL/Oc + V2< ũM.^*6opΎMTRY`Pq j%90F+a2)ƣvRBS,6%X_`=kfioo뷙 >`1PHy$,Dw}U~̪wNw%(U"nOxo0Ց:WԝGCdnC鶄*J!=9Ԟ,o.m+lٗ8#$5E͌49r21E^&)(c)V1r.Cu!ZBFϫQ4*#F#imo_)g窉 x7e}vbzp8J jqp0?]um`(L^#"89݀o\Zkk$; ,7g`T2v3-dё&^ݓn5}+o%>Ԛۿoʯ}/ ιz:K?#5-=gH,p-_~X&% k}eL- yu.YeP7bR<Χ3+!4Ŕpst|y$.|V%Ya5dfYĔ899ڳ* q$r82ܸ)'K]nd /P4z}=G1JkQZF`^Pv>p\P0Yvj]Q";Mv_Ri4n#JG#qhC)s࠙"dafz>SB93d uM4fȥǴ?Dov֨os2=L26)E' ]DFwq'ILAn!6g&YvTO4u$o0tZvդSkSLI'8%_2|9dl:N3B0t8qy:V})SwqưaCI1- d ހ-qqa2qCVB*g ^FJ+ ) =`v@IUS@7D 9XXRd]Bє=Y zַ|Q2!4@_\0`&gt Z.Xo wAH]" XS vNXH9InjEֹRbIJ;݋v>`u^~Orwͯz-$OI'_OOնk`]Of&xMa978eL\@ ^S{(@Jp5cɐl1#g!'RjeFA :'*8;/tu\e1k,֕9:A27Yi+~!DbЀ[*&)ϿR4rd:hUSR@Xs8Ę.`7Ȉx-s{I:{XԕD͹v#{d$e Ris=,K FCR* CO+sI^K$70zu`"4NsM~Jɂ{m l;fm?v<za$-~Ozz άx^w,O_cz$5bM24Ʊxk_.ݖn_+zg7tSpM_65Ҙ-_W欗^:>[ė};lxwy?kza? >?eQ@|fUŲlpi NjK8븽E*d $1;XpxP@.;r0m`iA%~?>jCӶ_RC㺾YpRL"bi~pO}2Cev8{{cqNr$;M_Pqe`-ahy !14NUXpb&gPRR)̐!Uv긷LJ6Dr52:ĘR$`"ms-Vm!4Bhb4;k%*7tt?VN,igq;lIƃF׋@l8\pN ڀܲe3-VДμmi1᫝yL<yWbs u9Ƈ%|~$4S^yW+.@,ZRf`s\{&S:UMEzzsL SLy:E=MAbf  +RBb"viLjkV\*03VK82BSX{+E_$3E]7}/9[ 9QM$ Y" u"2]s &tWXVLA6=Bw߂綀復vmyS|w!(ƎU_Ǩb^GPP7$=>RUl&F,P%8qb\%@!ȅ\"YX0s@1dGB [)+$%r g83=}ZUywCIi*99N[~b3b-g? !a ?#yyo|>|ӟg~^p_EG:> _/\&%꿺}CRv[y?A\)O `b xRbQexFGe13ڽ u{,oyhqv/gK^d=1)Jk+GBU4w;wk>uC?7W':WGU,yLzQs =]R{6Qڶ¾0YEoRbw!3Q [kf]{ŃKw,J#A;HMU!Lׁ JkGG6lH[9S=}IE"="l[.U6Շnc_dwq[puNl0J)xXhtT:弆AGkF ❝tu]2_|c m^gʟL%~uj7śeeH؟PgmB1 A lPؙ9\6xede4gIb7}E8dkG |%c9ւ1$<+]F5ANP*K T=#qgn+1DٜF/!;z锡0>y4{Ѩчx.ݓi=9naټ[lk_6tس0͖xL=ā)dr1Ll1L?iwu㴭kzRwa?pʎcITI}prd?`3\d RvsHsb ]!WA(GcLA tK 1ÕDe+hBQJffrPtx {xZUyO7B߁fnz̻ KcA!;*=V6 2gIO{k5UdbyrDOuyf_`\y{%vݯyS+ďg+? s o)7~z>J/cŎWv7~]-aZڮH{l<Xby|kZNnꏽceWyӑe2ۍὲtȐx҆>ţ1)1WB1Farդ0]K $@d/'7bڌbA!wL~sK^kz{ ﺎˋ5՚̘Ҹ!@n$c Ŝ|qr8m۲n1c9$-a&8l֣aӣcj,>ꚮ_o^P9G2'G얆)F}|tHgFn~V hk!?q_;wpj!.֛q79 ł6BΉ꒶$cQ@@z /j" q'I>:eulc9k*poz.7Of%ǏqC.7~!!`%G,*G.a;)Nbzq|Fd$rt=<>P'D)F640=L}߫Ȩuf`[7r`'6䳊ed] \k%.ڛ>iH|}OjicaRqލ ܙ5ʱ/>-]}"mߓr%S̘s >Ѷ$JzS75UICr8X[{KNBg03ol9s7!SU6EM9GM-wjMeJזe#1!XTi9xŸ, D`=͉g")>s2ٲ>H qŻ aS+۶ݖ"ˢ@_5ڧ/_I Isy)>K5Յ(.qä3,'#fM1a2Y9d9D4 W̵.sBԦ5`'q*O oo 1GĀ!qJ23eN@u_9bJ|)OVr ]qMb8g5JRYLbT|DTB5eQM+*%vK~b} )A΂MI))25uJ^e$M#.Xy@0X nZ[=Ū뚮4DO39 Rkݮ:H N[gd~{lׄ^׬GG%dpv }o-fs >aO0 :\35'o>?ԳzBHg ͌w^ Tru~9ouy^8R/+,[U=kٯ>ƓGF(ςfMΙ񜞝i;conx- GK=?yz/>isZ_*g G4b.WAß1hlNpAv+{Kזɒui[osvkkJWuİc#{fif8gyXx3gI4<2)rDF'H-1?Y h @׸%g}doI!JӪiRNʪ*43.c `$顳rDl2,x$)N]Ė٤/q"T|xNHO]eXv!҅^'R҆9 Nrv.PUzCeXkT朡rnb+scXxk>Snti nbg]LBݘq 53Ii|q՚oA&k.~ɲl9X $+m$ļHɎg`2FH/9ѰK&}*3os|Fl-n Sō ^hc` qB$0I8,׫EKQP3!e–Ϧ ;LH;BloX]7edюь:)]8Cp4 KhȲLJu]ןZן{s:5KDJAx#Iqʙ>%$bpqr$;EM(]#[[Z(&@d 5X  vz2mM>TL-8*!ʐ*! IX$v%e*2dB]D SKPfh9c*,Coᯂ:zdW$-, B() .4 3.;݃m a^bc?N*C]jƐ*J78jw b.bbV˘ lP Aa(YȀ0F*K ,Г##"qt<u9씅15:JqZLYTf͘Y24(Ca BTh1eR(9g+/Ĥ3 <"BXz\qhFc9ʁ0YS@iϴHc(kֽ`ܦBd-!f`̏s"H ojDDlUе-YGl4H@aumnq7?^`0DXoHw?d>Ό3~Iw/x|b"_ڱz&ׅ$,gL_ONns|rn׿m>#y_xsqqMNo+vҵsSΧa4Q5΂6VS X-Y̖{Lke FgjAfCW^>1cxh'Fg87+aJB#il9EBԐjrvV#]CK=bUx>PnU^–c$ S}H&; l8ЁgcJrE[h1"y. >= :5l ;߫d, 4QycWdO۬nP'n$SOR ak.&}h97!z8r5ЕEF*t#]`3}K61j;;V<nXr:|]S|QML%HON-֝P&cG>1%NGcOaYہfzNT9 ;B{Wt)r|ZqΌfo79[N=M8+r!YavWJ gnSVvL ( X@+NoD22%T 1k.@ء4ƃ~VV<@vyCU$94XQ9N*l09]Hzcˈ2rʃe h{mdВHYOBL!eutZo{t:llQ C(Y*3OZ"tmK=7tCfu=Z/|ck[vkr4ޱ8Zs ViYr{Jj[{?C>ϟc_݇ׄ6\ѻ*v?N:3"9Kvܼ,YTtjg8/L?r~ܺ~eW!u`;n%Du |]`!t]jUriNO$ha={K]s*htk-n7Gf~'KXxwʖq~8Fq8;|̂%Vdo\b'BzNs"T?m?u]u]u]u]u]u]u]u]]NU+4ME妎P ~]$!+Y ݋Ea,M|gHANacRYDRgtZWh0,OH-X,GLmϦOCKt5TM-_=Xxg4 i=D5o4rvfN;a}HatmKH1E3.:JW@N(Ku-?is.s%!x@t_Z3)uTH;!1RGΙ)5'^b#~ñ#z./Hm5_|E"n3K_D' v}zV輢&W4]&La.<~i}@@+4tal>9[z5en̝6i*sc}t,˽P-uEa1w3fP0X;9S͠_,$k8ue u]QuD=[Mޒ ;hIES-9rx3Ev]ճ+?{w\ן2Q~e`rA:cRYHb~bBFpnb8&J 6}jNʺQG=^$}oJƌ$DaDMΪl2S&I㜝(<ôQC2 ƖpLBrǤφciXK]MD,2H-̟<6$H|g jW iA1)2+)iQOpBIV=5>n 9Uz緾M=8Ir;qQtw+#{9 &;d4|{.0+?k9ے!%ͳ Đ@ Lq8+^ ('GJg mB09c$ jx_㨫Ypx./hc$}H-^#QN~/dǒ:1ˀtpgC]Ķ(JƩJd%0B3B(jgvlv>A.r4yj2dޗ2 q#sK:͙#oN mXJS)j D'HG]zg!r}ŞGbYuUa+d&ٔ$+8~3W-(23Pn+\J0N%>:0 X**y+ZNwt0}:>.:Ηқ̮A3|8c}*Ȇ9R&5Xր1c !h@UeS@/Mk(S^FYPO?(YQ$D l 5`acjB&/&o?vj x3\ +COLكĥ3<̎cv.N:LiɄ2ɪOQ2SD IC҇+ ]#Eb7Hg{Ο)%!ÔsiPnT㔦\T k25I s,!2Եg{*Z{[Ke L:0ypj169g1cHJ76ЖߗrwǬW!41{LC%PP\oH)qtd>[>(N$c1u:W%X(|ٌ[:i}wX6f[hE w޽fb|u ycUe=\FHpqHk:C#@2)wľ@. +cd}(NE*TX[X.}iv@Q;g,F|";z1';w8<230! f^4 Hݸ?v &Um譌,,}40)F Þt'B3h>Xfֹj,n}9y꼥3<ºD+K]̛w-!7݀l[x鎥qk2ݰ)eմ7:T(cǺcɘYH=-)RZ4|?Bd_1 = hzLYd"Ú̩ML4%~QZZ_vQ^,ffgYG8%0  3gesO0jGVYM2bVDI MZ,ȋogGwxPE |{1PWCGQg1`)Bc uPiB1ìxoO{Ga'gOu_f'g @V] N S3,2Tt`3@k e9xL#aIWLe84Mʓb1y- gDŽ%^B2 2d2(L(l7 IDATb Ә|@DvYĀ2ͭ1aM2 Wc4ex7ݿqDa2cmgٙ&hNOu񟊁7| w"2O[QK9,Ә 3edCaˊ,Ye![Ce4ե*J]xY1raU#cd. HXu/sHcZciA M2&,7 Cc\|Mh~[oޣ %9FAvkL1fNSM|ٻs^Y@ GoآШj8m 䩙d}(4l!g ;ZR941ʤL-v:'W Ze5 /їf.<բ YyBcp$ `EHb*CtT"D;C7*L6#&@^e!n+CIEkSi}lRE) t]&D Jk;\23Ĩ}yrxi!9/<- la?YO"qV,HNzHά0a0qi%`fD1m2h8+,B7P̟@%H6*=_dc|?[®L"쳦QdtmQZ拚^8th*  ِ͊DX İ e8db }_n'iMSIN W$WCGʄΕɼ3/`]1pS1ɢwQ"k=HL8JZL68cs55+n.=I"s(*' OƕqsNfVκRR6C̗dѹGeǏzUB p^"d+crqgNzMכsĔFs9lty˅.ڤՃX&a<>N8i;umu;ܿ) S,{wVX''rT6eaw=},*0-rd& R{Y+,E/w z(z6kB׏2_Uu4q;BzȮN7{爋MϦp峯,y-5uj>;&^yyy#I}L#Fh/ [u#2gX脯!Ͻq|}stq`1H׬Fct!zuA*k=g7Ψzpw%JwK<0GfH6ېIuU9n2C67^%'y;/җ]`/Y=>Ws5uL} {Lpmg1 LMg aj }7NCnZB'cw[}JYv.تā/fe J0tJlV9ZΙD)Yfկg^ĤIU8cp8laӸX!KҾ҇*e&* maK(W"/=o=?q)ZuS,Y_\ꗾOq33)q[4ɑu!qؗmq8l+\ɜ9=,.ʍC$Ǘ_FpƳ# ƃW H"f]|*LΝtH.e}fΆBn!ׂ;^c/C:9/DY@XLyp.hzcH*;QqMԉjS K1`b,)B"1]9𔵛eE%si^1x@稁 !'Sh\7g <=9,~L8JDvIi SY~mt>m7rZ1ājt eE-P{:;*$gHCleigQX!&!F+}-w02]$q3%v=#MYp@ǐ02alɒYi'1a;%ҶԅM0eag=00?9zP=.dO'x$&Fgq9:R|l7 Y++p(BuN'z\v$eeU`()R*y\5~P~KyJY(v xǍH"|9<ec B84){%%STΪ _F+ʚ c_o,O?<ĞP"]Q%Hf3lf!tW~.v+t]yNΔD.%0VbALӡ(ж-vAtB@7n{眝4_?xkuoZs=hc7myuE*L5'n.{BW7|>ƒ kRΑ05"l7kݨ9==c>_(oK/ ĘXo.DZjrΦ%qD}UiUs/ؼ:Ƒ?\|'Xo6[\^Z %~/Zߟ$`,̌5Ieus_۝ph0b7cu]u]u]u]u]u]u]u]u}_%|@t];9D4*WDMb*r?%.#4Q$TXi#LΓתvVȫ^)efPh}}`֩+02 &a\qL2L q?f'Iȭ2xZ9 h`ESEfx/^r¦^:6h$dB(L؇bVj4;^8=+bV4;wΟ<}jd[=ij]ܕ7#o+`~֫9ǴܺwL{M n#߬{>ڪe#p^q=15y 't ֵL~xd ݄M3m֯Fqd=N 91U:: 4$R^[!&ms*Vh3ԶT~\z Xܪ,Yn)#BI X8Ӌ.ӹgU󏁭)6$0E%gq&SU@oh >bik % ,†S]0m`SmIm4Nf!*U7ž^2ݮI__y]Y- ?3_⭍]/~ML-hA,[m^/qn@$줂*C_cjtg)S.yεXNƌzhz(3(T$c0:ϽյPA8/j1^ֽS5u%yw'u4uFғf۫FMqn@7:+d)iao"OEg e {{4I>%_ ױz{5u$JktgǏpj݇ӳB}㙗9`:41}~g{ϾsNV߃Xҋ ==~I&L?** }0lA m?8ڞ%'"",KYzppd2Pǽ&|kbmѵ\zPׯ|l;^c7[?>f^9A5vUPqw˘ou9`fb͚jM^8åR,Mdb;`ĝ0,$4TIkC|T`DDe#5~e C 7[UT ZqF ПR)ҐRe! u iE;lW4=\M9<1S͛/m^§v\Up8}W?5^,o|U|I8}e僁u{3ppxDEG`&!;jdti-&x+_m]g^WyKW!w5s]ܾx'ǜ-_!Z`cQ~aZǟb1CЯGiZ=kj "0:N)T%Ę"aЋo#Oez[)uO WZ`\ukHF'Rq5JHFHa|Dq2##n!Vb.V UY&EZެn Gneq¤,u-5q@kb`F> rKZ{l~єgO|4 l3YnY.6IgFvPX=S-'Kq1 1'_UOoiX┄0qLe2|'|>A &mƈe7_{e`V.yavէ4 [jf>aq׮_[GLl` ۯLˇZ2 F68ҺKA۝9G "Qv{umkZig-JdHe$1 dJ/c8J b xbN-hřXSJ !& &J!FZk81.rQ(I(|(L!cW)ƃHCϼ nE\;K!?KChR(a bMO+ IDAT^&/0AI39\}vmt )u$ i[CD͸b 2~2! B)XHCn\M-m4?(yAڎ 8d6s},($ $ k%'{(A[k`s7^{+TS`WA_^7+SZB݃Yv:jU)>He )e F[ð|>ERo=9ixre-Zh2>bL!1R@L"o23nj;sF:/b  8(V9]%e脘0DlI2[. 0cBb`6x PbtJgnF6e!nzwNۇю#''a庯GNYP.Tجi' B̳]3J9;[V.XX.KXlNy꺮A\- }v+tOb_/yS&{3Y~9Hqlw7˥7[1=_~|/(ǫ{,+AObXTˈ??T+s]b>M|IAֺu-n}qAZ\}_d:ǤRܻ;9~|fӳX0$ګifj6}O&U }߾nq<6`GlsB(".".".".".".".".`CLK3d,MO4D#h1k &.R 'j'FZSL`L"fa`KM|p%Hga@jqZB!6}fkhS1C ^T,?TK+dkzRl`"]8II.G& eŴgE`*BD88RDp=Sj J1k a[+M;CyXDš 7'1mkrnF;=6 13*v+ E$eű%a}K\nZo\K~ CV!mx+cħ Ykh(?&r)Z6kS$C!QqbA# ŷ> !T^E}w{/t꿭ҧ~ݗFJPQ2g !& LJ Fլ-] mwTp@%D|Ѯ(­Q[8hXLՙէ)="&D.$3qZ]q~V4| Q,km4"FEg[URbJԩdn*grW-pBeʦd3}S9Jpi\RQ~aLsWkp2rBOMA JWN@6`6|/ܭFOD '\lC͹D,[۳cbl:όNvSsT8s9_J#a Rڱ@Oio*T!(#FQj\09``E򸪅|=&^66]9}s|`΋(դ YP&PHu|rj{-#.{10b5`=1XtmZ,Y`@۠`Iuw͒=uWe*䞻*{{so*կy7_")xGp\~s 65\~G=>ϵ O3?پ?|7=G7t? }/~}ߢ_Xg8~m|+cI ijlYݙ g{+<|>J7obrti/uzܿuG]XV?>tlyY&#U}7vYXA:]<.6`3YCFJj >ݤh}$}hDH.2X0yN )5xH iĴ6-GJ!& &f׃:'-n[b9a]ֺhDylvNS}^|t}1ط]=/44^romo"*:pB~)ɇ4E)&d? <(uk&MN QE7LܑPrbGZl>i1&'VqI]GL`NxC"xXl`3'-Bh7Jn3~1nդ Tԙ"#PIZc@]gamnfl"3t9WEy(Ơ:Y@ymԤIE\;?n:㿢 ŏ]:eoLN4s;Oi<I Fk^kft#dQd'A)%61yD20 ]<Đ|8L3Q v m ]Ss4s.<؜_H)V'j@!W dXXtJ*V@nJX#4V z ԧ]#j˜1yߪW^0}3 3 `>a|&s[^pME1`^I9z$BAd]~ j¥HzIsA/}jN<&H<fј(QZ'RϐCMK$wN$PqY KwuNh1Or!!綬uR7[1"#D0f|-?Ǵf\T.bYb6 gZ|}Ved\.A\,Y,XX7yGU7byA|6֚4՚~39\cM }ym)X/O8nmˤc[ݏfIYsr$= ðSc_ESTw.1; ՘֝6kkU8Jk4CG)N !Hu)&FEK^ŏe:4F֚btr-LOAY:)sM:@YC}z`y"F# ;KWiX*keab3ty'(ׁKt?k8:&s줥z6 g-IG%ux="b,_xE86$`'ϗ /^poOl)Rjj 땫ɍ39o?id S1*~d"Xrr!&|FMXgf/+̮VbiQ'E*)ElKLm>n[@: DH&V0ͮ*Ǒ#Bc,āqQhQ"{W{0~)‘"@uJ! BсBq=nRQ3햓35Em:/$;OӝC\ϓ4ۙP4හtogSb<~x73͘Φ4:Vv[C$MFs0xQ%_H11aZu"' & ZVF*CF$h|b=&LmR١`Z+4N6&BlZd A"QM iHؤ~>iCorI L HAk6REzجaOAMfh;a6tajDa1̦@Ck MÎ&RcZW)d^0<3D79$ɔdq`R* ^㼽vAh_^}qWiϳZt׳Znϱ8CLK̉;˳XSSC %XU7Zbv)&m,fV4(PYELV`0p:`ȹ: 4>`Rڍu=}TMFS CMcڶQXmbJ#AX4$=fk ֔ 3ר0vϤK{ 1/:q7 ~E3CnLZ}/̐Nd!lS])Et~;YVt3$puID` qXbsUUPGf ZȌ8.^(.@( `mTZIi?h 51:9BԕmG;ZIvTsݤ\1j^\ ԙN8 S6RfmyNV1gR>l`_.º׵QI6و0 jVrLrK Ju5;sr&fDlZJ+y&v*OX!Du<%նCR}Ak'} !Q2.%1ZLe Iy\ɿKaZk޻XH1biΕ"#7}5MH,ٞz3 m7,Rq(H0αğd9[b:ao_"iMFX,ΰLxWϞK3 j|]@o:}~!_Q}E$zx䁮fGx}pJ~L ҵ\yZ| oO<3:N9zyk4*+X:{gڸÃZkp&2ϺfA,T+w|#sxFކ{-]#ګq4_f_X)BZ3v>T&hʏyd6!1r;X re$5] [05Ҥkq;b\C7pN3q<΅,3k ΀:ƌl&FY:kh?w21 MNFhIX/{=3)3OpMFhc M>bɌxL^/hedW+Bp:aILuDoHw Co!F97j{-$P&_nYlc2`jVJ#@Gl3$A~+Hj.O~1%b4 1$B 0!#L~ELwd b=6]ĆnKmYo3ERꃿ :ALf7{nr yW3,TwcӇA)R|П_#hj*| )hm$1B qCv*0$6}by? d٘D[΂2բDOd)Qۓb7);h=„wiаStqL G$F$-*F1OM H]x)aB551UavIY39ۂ=$uY/afx$biDj = fVw[EuP@~,edIn<(z>s04ܑ 8aNښo?;} ΏҌ;tEa-={8?łzfSe$} ~uv準E`,1# }II3Gp=N.~Oώ35ؼmN[¸i}gvܿOuJfiv]HhョMو{62cF+UIGG <^ٔޜXT۹xG@mk2Zs:I~ ց09LkhMs>%ujmP !$Hm< j5AFˆ+4m[2;G,ڠ )$#- 4:]kx荩 DPC3l$e+7XbU`bh-LɉT7D?t@)V[D@Ox8PܠeLwmϻev0eb޸1ÒB*uklfZ+$%%)Lr?dq,sT; 31"2kj&'P1B8 Hkv.8" Pw!`^!jGA\^fld3D2ib"HT2,s{RPm$-%K!E,$[g2L-S$sVO]*BJ4b5(n)"8g ao}ҰPH/"~Dk2,4-ބsTlpZz6'ʒۏA5rK>S>㉄!y/ڊSAFas$G;##y넚uTtIR,YR`R(wR^T c6N^ǤNջ++z YFIZ$-è,Nj\A(M TU">Y؝w_j|{|4k,([JLn rNdyEZRváMܓ2!m3OUDŽAm/ITDa~*Pcv*X qhF$0s#*]]pRJQ}=Ǣd PLnOez68S"5Ow k,q)okĘl{|c +6-Cwae evqt6GVy_2|Yu_ }q:cY4skH=ܿ}Vwan7֗K?y_'0aKھƦ^fj$vT` u 7p]{ L#皆=}ƱE =NT֝;{׵YnAp׌R+ȾL}K?;oLk\ǞdK]V8xLCI>Ul/]N8}ǣ۷xxG@nGcŘ|1 SC2D[]fnb11R$H"NU% V31 FBl]:SSFϠpZ}⟀cuoKl9.'ֲ#MDvД$?!1Dȕ.'yg2B,Kz6U˿^N&4--0V"Y,Xih|j\bOL8q)vԁa2}lz|fa/~<(_W0 QQCkUƀj'.A\9 >ʖAd")HwVr[&/}(5 )2!kZvD}֢h0čۊLJl)\Ȑ"1l 0 lLj zgS 6赵À&ƩLb)Nmu~ޑo9s0U ʨcHqm}lJQ <dr~fGSaZJ(P,z5-,#G;rnL# F".eֱ&jQaW(Y7uk`.3d ZN4GR<6օp$t_@%B"IXe96E@ٮo{PYi[ͱcXm #f(3ڑu0ґ }y]aRk?Z4!{J,iʴzUd,B[O;r ek#}M&2BTc'_Se"FBY14gTED:0dIֲRʮI uע,8nTkĨ-UEEuW]e`gsX[B{X, })&ܶ*#pf3nzUαU Vkit7Tfs@Mk=|K:˪֯;>'4Wz[oO~ڱpWr:p85`ˁo-Gt;]ex[t>G_?u~iZ|Ygk°l}z}C=uO ҸvdO{!zNώWŝݾz&lzS@qXa΅Z)nYXL7X޹ёY?lh0?<%[w^>ۙAvR;zRj)^o:F x`ĥ<)GJ>ӎ2bOrCKkq@&A5}j Y._<5.ߔ17_[^*"ⶇm-t-khLu4D94N99\ ,%XlC & nDݝSʈJEWہX ,v7qL[ìk231 !UWW$DZ60!^/KkR6mõoù~rclw;h 7TQGb^ O+ vt:Sv< +`B)!$ a굁|ϽWElEzDZ+EI 1Y^*ԾJ'Bb VC>fl>Sm2^Qz0% A=Ɛ-$&-Z"sbEa*H}fk"&_Tǐ>ΘbG=k&7~'߼;qF,esm &u Ǽv9pV(Iz.ݶ`]JeS8[Q$28Nd$`"I^f1ƘHA+4וB.E[UYq!2b'ňPʊSq|T6jT653d[s% ~ ک֏᫷mɪ10[Pf.2[p3K\mr!R ӿuTެDF4OTbaCL:F VHH &pPO4q%ةa27&b$u M: ZX+"&ML8OIۊv*CaRcv;> O[mMf䷶PxckW쌾 !0h{jv"L&3emBlk$?ڦc_=4?'0 \egh7qOWo*~畩b:XpoS#oydz9EzO>wNxsܿ_?p]gc8 $3?w>n߾۷^?7~|w#mL>|y;*9}A5w !0>~\z6 f[aTۍ&dg 0Zby{ws[tq{Ζ E7XL;q78~owϜ}!@RE-\PʱH&qlET+rǮD˥eĉ]J%DUI,G("b"@owvstwx{\\j3H筺7gNOOt>Qa }4>G,Ͳ䩾Ҏ jhF,,;LX΄^Gt6!HH&cy9>2lX zƳlu!kֱucX:ֱucX:5 SLjF@8,QmTtΈX|i}8]nO-VZi1 _1we/xG1`8͸Ta+a1%~g6,!cڈ؄6Rª_,Ubȸ( ){)-=FČBGu/.|bHet9ÑQր,h2O:-gi8;kv&鰀#FV o肧m>IL:hC02XQO&ɞ͌-~xhspKSvaR$3V l3 3r}eB-"]ZcR4r!5p{a7:"g! 'wK.Co7$$ 倀ےC[^#R~ǴtC_6Y:w>D$5 >$~ts&^nI~KHK}FArJǫ\da 1&WS!B4eb饱SYlu¡Yи $ =/Ekjt:-:гQ)hNll`+#Fc!=I=o~3|i|ÛI8_cжJ>)g|a6wvhO,8U6[<> -|?h6+O|2}ozJnv%70NL[oWγ<Ǚn` tη5lh1'O#y) }'B^zgs-1p{8s6UB7KRsM{a1[ryE*K/".GKfbW" f4&Ho1+W;ʞ* (婢DK(>RڑW?ݶYB*(TpfJ ;'<[3!p~8f#'by1k^>,{]ˎ2$-(#1 #L;xt@kC=E Ax*TBfq]]X-I7lt-,F +"&kn(#X,&= qrA~@+P8c ڢ}u)8vٱ\ y.^DjkG51|g>ߨyFc$:xIƄ-8.u;M;.\>H8Ll UEk[^:c8h._K5`!@fBㄑ5EY79/1]El޷y_؈U:9gBhD.Pa>3 <{U"Ϻ){+p3O&`A@pANz- `,1xe#i:|ԗ'괹c02%CsJK-LY܊X#Z2ulqM3D3ce mN^ȵ)Xǟ&UxX:H!:n@K< @lD 8v<Ďyb.2ISM[ۃJJR :E;O݊lJ{%b]HR\!ǗG&_ "lns1|N{?=7w'|~QOSaq1=ͷomQ̓C-ر 9=? ~oȕ]->;j=T9|UvgoG6*zZ7D|J,cBkGS5}Bש6;WM btO2I_%4) $PVJ_C|vN$tGC|Y.Z'&U`ޕ`6q)発+b]:Q:&2UiLB5x0ݢ G\Ln1š,p&}~lUqlcr')O=JtSM~IQKc-RTGcBc+hH|ـ2ƔcuSnBH>+ƮmЄF~`T5D[)«N%w4ıZˮ`U۬NmYifB&9E-cE:s;>! ^Y.>pKa'9u$eӚh^S?'O< ~AL01">,6&#dd)`jƦ7vAf%Lr麎(#orO[BDl_r@H^cK10H4SczvK$gZ#| ;1ImEXnNTׂmgsD2 Lj&alsJokIrS#LT+9dn].3hFjQ#zP'~ys IDAT凵w$1\ʚȨQ|L_-67T$ܤU$8hZt'2'%/Hv˵8%' ⤣) YP 6TLyMꓐX:'9+jk [(i] C71!*&=-sʚIkpvx~P@xNJz43-ڦ&̢ä|}<gNL&8nW ,Tɥq}Q'g{ǧ;|O+q[›mdwV2z+ W^xw>¹-v7OO/qCo3/8:bkG=|6oR ?;;k?tT~L5cǏ32k&]/1rx8j˹+s.ӻpoNgTOO'YQ'GFm9J@M,0kVpTcQ`G( UopBd_(کp/cwtEW4YwV/}&뉦$!{fg۶ ]F._ փx]@qՆQm#eG|:(Ga@ႀPHM "*>`aZո0ډiJVJhY=: H)yNv{|Bs_؄b('[IGcqÌ6Zt޳1N~0k"LGک!4@+UFbǩi48slr,D5UͨYSEVqOEQ hz3\-'3O>m>1T_8xCp9y:olnRonSJ?" L'"؊ 9bT/#ĀI^0J``=ιbfW$Uc2"9OVm˜<|X"F:]1jD1i.2v;ilBUlNح Lh.iJRqtGgpQ5&8p.zƯ']'H,DL J,j.-,,s5#g >0d)SǪ9lDYtBOr? l᎓p~OzAo=Џr8/]H@P(re,jҟQ|/ɋekLMQO^HzzO̜|HJS oAr1FK Aʺ,!6gHFۑ=&1z3%댂P?V1ʹA`Uwu7Kӟ%%\C^&ቪ$t<1UEX~ɅOa#P%,O@sjRY#UU4zIybgG1_x.GO)n| Ҙ[my!|3\=o};^y?v)N^}en%vfl%;︗.~ ~}'Cnl xϕ+ؽ_pϦ={M<_dtx^;P |eӓIr3X7t?sLϐ,76Qߴ]><rm BUoP%16o{Q/8:~klUJx[F6YmNo]~]@[nfs#LU4A:"7MZ}@jQEڌ+=vFc-z:.KZ*SO[Mg ):i)lkT+],5JQ0uQ z/k(K K 2Tƍ1ˤnEQE%{Eԉ6j[JzMt&XՉOeQ6<?h+eWez<ީxVb{w6.1JZٕK< \ǻfTuʍ1! !iM5L+L:hzj2m;y?{ ~w.ժ".ק O .t_U'&=S'?ХC.&MT6ӿsߋ!TB@D'в1F!#Z.(lSU-V0ֶ3+cZL]U.JA0AΈ`cdTU^$qc]Ǥvs͒n ! F2z/uOS5Xr6j_1UTEeR"!3:KUeGD@$gjzB!b&J@AzQլ&]ЍWy' IlPaIc,RU6{RTBoqkL՗YoYȜ|pzGIzΤB 2ͩm')7=)Պ_ȌMT_&|x8V/ 7jjY[34+?O%{?QDz` z^ȗf`Rh$a=&+NJ`b2`dǙ  b(eTɰM+>'"y@}E^<:D zE۴<۾zU! }ֳw!SWtjJVl6+@1-.Cڮ9;8uC͕W.bn>Bg;R">"ԯp{y٧8~ <9\7],sC97g֜V^ξ2=7ϓ/xϻG^ivNk537Jut;nԉ]:7qo|;}:R[sؔnK;orlg]|pe~gG<&2)bB}bU?F1TP5u󾥋1 b Pi%QV |ϝ1Fbtit٪ƹD }]?ŨE:ǥfٱ1f1Rbp99v +\:ֱucX:ֱucX+^lNDdV%@6MUJeSaXxlpRiU`cր#c+FC#OQu +26%|2c"[*Ic 9&FEF1Ɛ-bhʤъ\H]Y" &@ j%PYDC\DH:7;qzFIR#1x5+Y,Ia*? b4 R407xӧ['vATb*w?'oʾ1 LˆdiaNLD$Nǔtϻ?38_Nvd\R&e "XLY7bHI$y-0}5 jg- UKbRI<cL/R_md:Hh\׸|j2I\9kN6:6fm7sG鋼_o9Ns{-|9$?Ɲ X.7rsppxrqe}o|[\8♧_⋟jT[nMvq^687x7y7O}.p}oe!,yO3;Yc]?D h_0B `n bMYLE]sCl Hq:"YʡshQMg&jT5 ]:wr%ߖDA[洍gm'TU^ e{ͦ..PC6X1NM`:05Еwd,D[b[dV!Db6[W}EQHh:E?ڶQ{bt` Őo ]rBZb\*NU~SN)o+e"1:X6sK6Q^CꋞjS]hDOcP1c<*Ī"-}lD)UmG[3RztsږE8dw.ĭڡlmm pqW0Ր9ûX{16辛gs4{m!sruTpNKXEk$vځ,4| JB1K}1ZbvJ%S[`XoSV'a''alH|oHC V(QQcKH0$.uA"(j9UzXa4růPQӘӭ}_cw\|Wş`׻9 w++{_gPdCK,֪DR-V!e=mPOHofhB9iu3$AJu#y=Se@wI# ޙ%:f7:n,b,d,1mL  ~7ߗTΑ}=l.F>lH%~s*zͩy4\a3l쟓=t独.o J}v;8&|-|Betm!f8gpo?%p\Ẁ]Ӹ(`Oc԰8 _nR*HSMEj??R,R{9 947(ajXW+#: 3R DS| $; @ ҿrA6_eiu9JKUJe;]9OExSc66!:gl?(y\؛uGG/Zg S/ ` &Sg۽.y=e~& NSM{NLLNvTt],Uܳ1i/VG _ڡ3|`'zڶi]ޯWjs#u ROZu gU .)67't5OoYt_*_ @ X#T"6]P }tGm 2}GC$jl@z-͕'u4\]HI DGB ENڎ։yoR嗺ۚT*3)"+@f-RX6"V+,&K a6" #Z 5 k-HaM ̈jø>IeDts},Ͻ|ofyzӛ8y3OLA;O ,msȸ2:Oc >L%YQ8D: Ϧbǀ:b9"htK7R c|rjcٛ>bY}^&fY ME)7ҵmy9YG4h{Mj^85[6i!RKl2f0Cױ?jop |m?G#׻I%o^ x=#`A4Wȥхkf  ,gT7+ۮ´>fV-\2XB~"[RZ1L})-B\,፡i״Nns,PheP. *`BCUp>7у:t W v-$pfLl^UX2<޶2oR9r1|;OG.`Y3nE{dzVI}<aKVC@:K1ľ'ncb}8ɽ6y-5jz# &C220$o!rQ!pzx2]gX2R#4݊H+RG#G4!)ӒWCڶEDLFu-yk67#<=2o`caS;{ 74 =/̺@X.9ջV-S*eŤ('&mjQ`bR C+^5)x }RNߵt߶lWAyzI,󍏱C'yjF-;, BQeOIs &jw9AB%rjYѪJ&\ N obtc_1b\+Zh[[(JZC8P=1L&zǀ唖W9KdMtӝ E5bu3$+buR4R*u誂Z "i\X4-a:v%z57%u<֘n`Z}_yQ##^cK66"7v#y3ۭDbKZ& d| oқF9K{0PQ`-/{}+pH@:yW cTJ^D?"ؔ] &~ ^'[j<&wKeDǭQ,ew j0m5,9]M ("*9WW4AVsjc&zbhVت 81+LpTפc1f{wCaBq:C26rU61m H~++%b9PG3 +`D8F6 &DMmM?Ϭ^n{fW>R@{-/$kϋ"kIob}U,Λ\= %RU}J"Qoz^6\+V2=lFmN-w>wW&!Ē|̛l#% 2QGy]߯n`dГ3N{"fI4J/W+rf>1g 2lP4z/Կe-aHzbGIj2Qs8WU*jVG"FX.f>?wX;d|Ŝl1xj|5S`6/ʽN7ؘn`̙&{p+^`_eRſƶ*p/}g @hJ;-:7&6ODwk~pco;bK_x'9t V7v7.G,qmiyS}ËO4L'eϕFiowE2Npք IDAT7{"6ѿp73?/>v9]\~]#(#2'@"~\c0ѱ>)dTBC* L|D8HH쓶[z-*}_єhmYq%A{ܷ'\RM2MN5fđCԡYi* eRW*.AW%NhFN߸AɱS71Mv]dT݆t!BZ8gM+5˱oc X҈(gRɞGgZP*ֱcHJ18s2ͬM^MA։Z12N9:"Rq)VUL M ]w=r VT?u1/tGuq>-Ex$M< h]!٧Ry+PJ坲$c}Rgb2ܸ5cYn)<ܻJYkfY) ޕkϋG*AtM"z | 5] t55I! эEy ܛ/Y~sf$< ht}icǒDuZCMx\+6%mm߭,ۏ])},XqAVU:ܭoi" cf. H6$&k{1Fl,<dV$r|X2 -d6.gAgR B"ʌ*A0b 4yu=ъ@2Tk k>C9 =NF#ѦDq:z6R*)ī mfKŨmH(3,㘭9u#n\Gi2[˓}0V9]R2,yQOع.q;8#[}夹rTnSpOrn6^mNY ȕG kX.ry/p[NpO?t;3oof&`w<6d~g07eHV߯$襾$"2׷ `՘*y8Y " yܕX>`bH8UP+\:ֱucX:ֱucX+^NXei*31-=TBPvM0 T Dw7QIZ|`ɔ!1A }HNJeh4*R{O5mA4Ng{RLIUOrZJZǔR'1jL_j[kՉ:9)E52"jcA3P;@#1߇%b94wGsKTrd}P Q5tW8i؝ߍp<^[T}|j:bsQ5ŦvE Ƿ/#2X=lldtۙ]x*$4Diz?cnc r_l!,VES VLN7Em$iS63sH2Gc͋;NXQ1e}D}aZoC51We؞kޘҶ-U{̠zZ#⽶7-]%^s폡NU+t-1:׻/}~ϽȂ ׵M:_efI7)Yh絈$n(l,YpܦC@SW&IJ俘3b*{4`RH돌sQN%nEQ 5}tE=~7@㲎2fמ1`ɮP9Yari34 l`dVN@[)CE *ʫLo7cצ\ CYD̄7i$ ~~E׶1fP;=?&sME5Tr22rVB_aXLmgC,LT>EVY\Ֆ4.Ga++ k5"Jv]`E1ppp~_)1dXy98< sdE٬hx{^n}zp7!\>N~FeY;'n{&vAk5evȢeRt0`a1? Oܛs&|7'˓O/L-OAO1;¬Uѳ3泴M/eZk(Mǹҏ9uV:0Y̝|}*Q{ Lnb{{ eSŜlN\ttm1[a\#Ĩ"B%zO~D} Oi#K(^iz^ǷK>b1z2(`αoS`:'$k,S Am:esD~r%H}~_PGu#0xCe1#D|:NhoUmI$KmN:!=b DMӉ6l쪚!}olDR1ml뵥JNE68[O uU`D7ޥdxT+H v*M&QtPx?1 s&tL=m1#u+}⒜M||Ry`w5INtAa ق8ůpZ`gK_nMtDUIq jlU46TqA7]`MMPA(얮{5ImUKyXM3sDg2^GXDTe֕zvU:,X<}3!MPbD+&^!leԠ,B x?ZU+}.sdj Z~yq/zҿkKx/~=7GwJs6l-&GrITԶ&L$hH-B?;T'oLKaȆc?􉵞<`RRq<:䅬QeEqJCJ6Q gѪIY5wNOc8^%Y(Y*C#ePv͢C95[W^6)|S_j &M.RIsgOЃs{o_=ECUCz-q1W8\";ho 繗__ OӶePĈJtn!srO׏@b躥VJ ujEG )8x& B4dғ!Iz`^M3E{(S1 vuǎ+3X%F~{@"6ZlE#òi\ѭV#Jd6DQPDL_Ҽ`]zM$_1fk "[klB+^+z"22F @;$hN\iG|OӋ2x]}`Ly +}c+&z_(<2mW@uڥ,8W/zsԓ q9:BDՆck U]3;^D5XGpc$im8, ]ls$zI/^HM~+^~{HmZ[8yoYWXv-ǎ#^5a~H[Y$`1: X<+pw;ZxWG)//8~f:tnٚp]M#X5cva`os;b^_o7Lo_l>zm&u jw`E=_y|qe~+.q&: 2'9OޯM8J7-[/]SpcʳbUWe/ Hz]@c(D"[XS2J] SH^Ԯ"Y.Dը^a!4Q ]CLh*1{e]b)s;)W^[ )'+׸d/'9+.[vޛW M33aݚw!ы\>X:{MظbCTԇ&xI q}vDm A;;z7 P]]?pFr' (zURhgZl,4B Q>tR8jn|5ל˯b~؉"qn4ۇ845ʶJA3ip7'1k7%j"w8ܵ]DW]NP(1}'ow5:φ-~|֮aoMMҤ4 ۦۄ,HbP>cTp.v1V.Hg%.";ER)"%Y;3Dm,::L!ɑkj)`lIrNdG˩a͚X27&q ePg9G-/Ty877`'(%͒*L]Z,@^(m V{]ne_cͱiZ.Sx, goqm|,&@)T0qTC?e; Xӝɞ'xN*,+33Z$_K^B;1-+q||ӗM[OVN\9<h|dL;včeUlGh,8)V6h,3bF^SBH8Ub}ꑨ-xM%u8TbYł23|FӔze'uhT&$B8Pq[HtJ ha&uJYЛIٶ tF‹̖`~n9w+.]QXq%>ŽrS4H2IIK}7 in+yL-C"if_e+|n%EaXmV,ϯ5&܆3$O;Yg۲|PbVY&7VdYWι`OEX24&V{_oP"ؖ7ՖXW.Ȱ`R]־4k**)^Y>h!n$D؍"Ϊy>u-1ƿ^ؾ<<Y^ouNPps.TQ2JGd1Kh$Zː:sTQZɆ H1n gUMH:iB j%183Li`5(c$CY H‘~D&Vu?mddi1O(z-2R6-؍z3% OK<7}ewסi|!_oly>7ԗ~( tJӥZ+f9ܲ]y\KG}4(o`2x!:ǔ<<.+^ص0zFFmW#Lf$Fq]L0/>9ZH)?9칺.{4Já t~z[GDmjO۶8q$nEVw~+}ukj-'mIl?899a.3{c`ɉUBh'&f/4-}lś>H{}raZG' {?x1.?8;|+_k=R]q9;sO/wv7?}Ou; k+1;?~wq%~ ~{yI=eEt|ky,Mb? ?srv }~<'gk{wy|ס{vxΥhq #oLYfiH3kS-;+g6t̫+ΣdܱYKJ\*YXSݹzOGg*ײ?Mf=/eBb.\ ǩGO蛚%n|8uа5Ł@4/Xs,b$bETѢ MR̺IĹ楊M~'QK~ר* ]5b`M޸R߼.R`\?ϥO@H)1$kjDM&nhBDyfׅhz(ExIO&&|5l6HEak{|B{&uv Ǥ{-7ãs,Zfr~G} 4s$H@f{mm>?" }VfȜMhx|?$"_f[Ѵ  Yĵ^~? IDATH%q8XaF;@)$@g`L5* x882'!*3#SU` 18-TdF1cUoe0|}EnYX z1J=(-^F}>vk)V末|'/ ݵ]۵ߣxw|w._"o9kau- L/$r#+%?%J"ߒ9'U ѱV|UĄPNS-aOkuvEղh.YrxV61VZ]CӠ(jc;8_dz/!'* D.؎6tszUԗtdt09*%:ޗW(},rRҌIZX^Z!cN^HjfGĔpno{KqÒݰF$q0c% >YDԂXzhU|ə3g[bo6G)&}5[߻*]ȥ;GK.sMqݐr@(~ټ!G3x̦uV2vgyɽ3>?E'o:Rby=+;7nEouq.]מb9$/uIkb}|xc۹|߷KѤulG<%za26qU׶5Fc2_0 XC{*L 6DRQi4۱/Ğ@lȱAeLud5yX-]PG'XڶF'c,zx(gW&Bu2X@:%edB1=vZZpr&==:K9Ux MR{]WZ҄ Tfnjfeq5Ar</D6ևFqg1?8{Gpp%75C4oP:+ssgG@g޲zzOIYyay}/]|O0k_Gć&Nㅐzuжᑧ Ch93o׿/Ϧq%\WNN~m77s^J>?pt#' \|W]g+!CFx oaE>a<g].}YFPYDjzm}/ٌ-xOo`2 DȎmɎc^ġcHU0_ mM(l4*\ ,AWs@НC[<=/NLJ/ ퟉5[*-TslAX"l }·}L dz a( O>/F`/^#]ib9Hԇ>ꆮAk WG1a.P\GZoXJ)U>&B#]q¬3S YJnաC"x6E8;2e iS|4Y䰔YVOeAANڮk>_՗pg8O{a;kڰEiF-Pё5ma,*U?Un- T2 g`E}9ٱj Lkg[P5K5*Z&s'®KjN@@4#5}s,n}lt#^fɪGF@d^#/K".n*J:u$;jɄa ``IOUcP9"j\NɶB=Yjc#/m^L;J~Mwg|Ji$;#oVX5ţZ{o/l/XWo!:آ~25nQ+S<}+!,k>-#,9Ѻx͋ҥ [P$u{1Zd6sv y.3:k߸Ɋ3](Hvr|LJ ;gr _P/es;bm3'V ~_~7EǸį6h\q]gIY{x==õktGG<߇t4%/K,VÌYǙ.rEBw>~Уywk};B08r/H]bu"D],ÉdBCdgGpR≩ՌOK#Ce0 u73z )qfE_pm"kh&_ y$OB)cff \?D+EcD|Kc|,:f̱{LS"Zr+F~XOfވ+XY}LzA3މDž9hBĀkB}\SzN ڮ=mpM/~w%YZ JKu; 󐭬h:O 9`ނc^N3ԥD%g'+cK,2UW7 L'U]q}TΓl`SeL"R8L4.to8d2~ Q2d]wⶓ8X]&aܧtEJ)\P7[|6ƞ#RJPVTeubKPQo(/Tk'a%p|m%1/[_~I^#df:㧒t/%Sm??1ôTUpo jq-QלWrΕѩhdEgx +G)lu/)A^{!mr )TT0tҟNSQjeeW=2!$cba̸޾蕅8:yx1n y>CU_yȿy|Nl.K0o_/+vr|>ycc:H?_o{iy}<*AqtA0' 1'c#TyD78:3murlj;Qwιs8圶 meUs{4M\?>b<*D)9eCY18+ݓZA"0QGMMe͖$שcHc-&cZ`c15TЀG=ͬEal/0tkkkkkkkkk6ya8*Ru=MӠ)Ne3COLFe6LʹRg\pxFز4ŧJ,h}Ӛd$oH\Ȁ":X2ǐ"RõTVNh gbMFcWZ~: x (Z \SlXf"s J##+DgkBumYQ=+oCpM#M*:2"~V}&y>N@6RCr+BaΤ(B%jnu9Eph->,"g 1E\mUfY\@!%D',iD!JO8g 8$ =eF%H))[U &IvӘQO_M'h.IZ%/ ;N3[򳍞Qu1MRgI)Xeazi,d)$OilHݵ]۵OE;}3k1}ڵ6\^)&Lq1[3a>q>NQrMh([?&얢{4& rUˬ,srMI\:\ujOr"J3*uqI߂YJ[26$f ,9n),¾)LGӰlNCRKq3+>U,?tl+IތQ\S>/l52cx9o>y̴*Jx'|+W'-q m`Hw|#nϖ/>X2=EzcU!B,imG+ISR\)!=<4o;.qvK,L_k9 =k2k[4Z˓O]#Nܭ&3Iq=qiSGlߍѨH4`.B־ajz G%Ξ=s8{yv3, fm> ;XHj Ӷ -;:O[A[_d- DDps`6X(M>YIBYPrTkۘ !{ q,MD"fWO8cs)[>yy'Aю`x gݱe'IpZ޻jOCLfeUIhnز #Qb1"aHhg[\SgO5q$j}BJ3qD8*:<+#K9hOfyS._2M7E|O'j>ѰO^`֩G$ }59x!J~|;X܆/I:fAů %PLT*Û7>:ptrd&2[4"?2O HmxaKB W;=3fX1_Bͷ]wk_H&!4(85LRkH)SdFh\ IDAT)%eS6&VwǘUV:4u_yx1)1|[q, g q/dBqxq(lŅ8e&3mgrMl2ps0 M}޸ASAx'F.ţNJߪgj$"D7EIt7*ʢN&xHh왂;gL)DH1K[kⶬ7Y4i|. Jy .wtM\ WWͱ^ϖAqH"ņ5D| ;T6ن}} [bMbGB©39d)6spv!қxrXIrs\$v> eRR~{H!&sKэ$[[&R)3!dtPIVL~ԀFM,p) o_jO Uz/D]Ƈ &bqڮD{Ay[k{-]tm.v^L [y5eJ)'036z캘G赬7]3RY/[ Us!P$Q .4GVn\jB~ϣ|\n"S :m,~S'+@&NδPNޓՅR:t`J_ ##if\,*~㐤Ir*k/2[mz 5_\ Y{>?'_>A:%l~rZYy!7M}P8S`TEvʋ`7rE2#4IMnȉԼ瀌^|L#/T5 [ O@R7І^1 tT> OɚDrBl6,2sFC~N-pYqxʞRJ{{{'rj,_GѮZidܨ_y/<8'>cyj&~,Ϝc,xM4휻_J{o )Oj" 0'f"M7t9)0.1JTim=6Ep4kԈD s0MjH))LArw |kjo#c#R{BI"$7fS#1`)uBPf!SмiD  $XDBE_-M;czTd|Bxx&$rZQ]3 +mRBe`Ĥ蛐)aC`j٥Fim3'G&\ȋN3P+RNq~[;DBHz&Pq$: :ƚ`;p uē S r&IO;_ 17o30 aq/n\Kבt 3k9\b\ S {sfzŲ_gОaѦ% ;uk8fF5hKcmLi=n\&Q4jq]R=˽ФHcV z89c',?NB{w[EW8% (FWvQm,pi-b%} ,/ ⳳC~.`A*@]T6׿j{o V/lvwm"Ruq NEi2EJc2^ 9g6e 1+.XmdS&sZtjIeMԖ˃u A:_8`{8qY>ԡn\[" ddMί[)Բ ^uS#S~.@abس1!}7vXnUV:!_arIȨ?m[ xNA Y!ǣ @e-j2-. J 2]컴W$娅5?[󛞆=L:e7:d䥋J(;Hf>yY+1kcт4VH@cǎ͛7@m9BTLV`®`='G%gF]; 8X !;#7~mI]_r]=djcß#_8Nr7)&"mAk-?ݵ]۵]۵]۵]۵]۵]۵]۵]۵O0u9nf46f ƎE9W"'h"$T֦@FY-hCc(u{BCh!!TT0J6_{LETR >'):KJ j_[8R,{$DvH [*JOьW04n4-{dddW95)$^׺-1\?÷-YL{lam̥HU칳q6K{䂓TϿz&-M886GGl6*/qp&(eΐWp|rfozB/Zm ?{G8O-mܸ|5 .qu%ش z,mX8ޜn\JH|׊[*2׼+^ƵC~=_?nu9EX1/祯0N}jt3UPsnq{c[?mBS@}ky׈e93[{8!^9,ˬ,̌4E% (ʻ;ʠF (=4*a qJXRv"xDҞd[au|k.;*P-bZJc/#ܹ\ xEuҔVhQ#QHMt5c>(Nvhi /u۳zEhH 7 @YRn9!ԛ9 ]2 d٫ƁDX]eR?FYH]2&4FR쐼_X \6{!OZ>W Dh>=X:\9n2 M98oO}d'cZT_3dZi494qH@=s@F+V1k38R8 1/630@[ׁ^ z,2P}jۙk f׶ۣ S_V_c|5.Kc%.84u9wn."6`PvF~RK@Gж-Mp%mRp ة0JҬ\/Ez"Շ>&5Rl/g<\JZp12>&a0G1h=?Wм(cɵ gj *Hpo E~. ݆Yq|xe {RtIy"-MӢ9s;^ukw4 2hq@ʢwxo ef7R3? pLl$,NJ"26aݫ5ƗҢ$HK% XJD_ qSփ4 >:qU+dAnXkl/˧{Kk~V.}|5G@z݋oaof|afʼYEʙk..8s&j{΋U1&Ӳmt1麔WDH>ԏLT5 I\!S0b>!i1 V9?VL PM 0*PLUIBK! s7WX)IaLa=1ҾyraTfdY9./M7ٶ<ss0Q婀|`<OIx5z~-4DdL&ab1(j@UrdM(Nwb缍ՍUF0%Ii\nCT]_X6yE{tGDXN~hBG78::aubu 9&l:n0W!)σqylsB9{fXr{eFQsEDp8r\:֝% ~`z֫ )79i=DtPVxC7>>dsAf#pxryi3Ym685Я24eX}gX}w݅S\yu\}H@h÷/aB~dkl&&^}n\y:fem[̭TK`0Q489s`zT7h nbv(fΤB8HJo|>Be{Cē,a49rޱ í-'Pg3hc?rtKw:E7vnuek>9B 1w$@%f9aȁLOΏNDE~9 r6  [|vkj\0 QciQpٜTPp>/ .kTu/4̦gPzI8X(کKLuke焘ڀ9Ι.R8%d. K&d&"m0&0 D1m;w[՚aẁ~a6kv]bJEZJIϰ`ݭIqɥ9,H#fK@ҭiD[W A`X}brHZ4Le00W8hX5.HA2 Zc4g$o|Vz6@Htj)h:0tx;iT*qX^zY\ u2P9pA1o-3?=֖-+9gU>G߾}tqq[;q eG6ّb8FD`I1Q@8ƊlK<,'B`0#<961tCwCJy tXXS;^s۱mc=|3+<#ԡ[i{&:%6&exf|])jj], ,LV{[>BM>3vaYכ $TRc~o"v=}5>ku %g)E]ҵ&( ܥ(<|x³3 vLAd8u ] Qw>$ȔGwCM.Qmb!B^YyBx?mywoDT4v3G$;E}#=J=)gDH9A=z粀Dlqy34TRJsS.K!\Q䅵Ju-†b Z}d)m_}Uwuv-c$ן2w`+kq#|7q7q7q7q7q7q7q7I'0#wPFeJɄZ[UB!OjF&AcU \lɫ/C'WTT4JYp ҚR՝@iPs \09g3niS.EäЇPT W*4~{,P*0"NH1R#T2eT*VJ.S" Qٟgo'Um͝kGьHB(T ե q|E_wB΅iIT:u `3]PL݄N~~]?".S?cH(})UTdL[U朙@,gv͔[0ifwpC߻U@5d}B+=ʼnzu}1iBϻ"{sXx]0B!Y"+K#1{&nM\w[}zooi^_e7:deʼYѽ%ᄒ-%ړfv4[}R5`ymfJ&8۬5>}!Whx]%l!9 Α*+Tz5xĤѝ(KkKÕqu)ץ=~_׿N[#V<?9O IDAT양y/u۵Ezy;|ʹiju(rZ~~eXVz1XCd]Xb;}o?CiRaf3uMԮxYFeq0`Ju~U@Q$*rE3TpHGEjlzwCkXo [ 2Hq停 2E 2s8.&HLiYݎqҊ 絖6"91ߢ f*!5{3#W-{/\?<ჯ}yn7ѥDqѼXi- ӎ?2AuQλHəD03|zkSk_W||>"Kqzg|piJj*nU\Y|XV/=/eJ[2rkd[ј\.\Q.Uf l-s&+V̶W;6Wb{~eZi~+B X갩ӽH$Tږ ڀo[{$/3t FlRbJulW)>mfWa::wC4 ELrQYJsZbuz@1W^mё¤{fDxQT):Q>LaaYe.Xfo_)S`LBNЪU #X!4Z*[tm$i~M2$fc˪Rl_`|L d0 *dB>bh݉2. 旰Tb %ILs$%V6R(HD/ωi?ua=Eu4ҝ<9hgSۿ=&O=xߤnT2$`ts %4㞩[ #.\X =€4–V]tϠTB`M>F;pNȩ Lܴ_^ǿ>q'I|U|hZ[eq *[Skm/ڢEŮֆ {$X ɓ/ s; N ͙_v]ݮՓW$6/%(")9@-nZ>TZ2W%|M9w}hFlV! V"oƅ;9~9Wn y7;baX f<:2.V-0ߝ;T=A:ZJ;,ŷMV?o*ߢ].6 }@G5:.'*ny8pRKMD(\ZDVhT߄D[{ZYP$KYm 謹QX%mMf:!78R ދ܀t PPnZ&q@Bo$?X]#n;|C}C\}/rv!ŞmLc&Rl-_\I3k}.Rd0vit'8#?{u,(}³o}/_D~滊HY~p "LWs"T޷MCi^4Mg+}:_o + ˎX3lm1R(qG|jgl0uL;37[ 4x4&wjNT#nq#a0 Ŵ \/W6LbARWQБpQc?M`F]m\'3K[$c E"GT*Fws(}:_VY쥁&DT)TG30 ji&#QN{O6mh{>ˁ@4Mu$X>2ggԊA᠑!K9$!#}Z^] !=nW8V'2M~:WAC!HF;0>zU^G~-bXL@Ni9 Ն9]JZ̴DHə Zc0#A-ٗ:fRbX-Ƽ{0(YgP =B 7q BQ>qFN[o%TQ:qt~ӻhePCO:::zԇ)hɈLc0cr5Ma>a_/> ix\+p~jy1Fwll" [sbE!b.-+HEes֌]W]* vZ{fZqAu*Rj 2jδ.W+" c^b4̃?Z׬ v~*VZ5%-A$J&:3׭tml[(d~O}nkjVk>ΜY@u00Lc Q:2mȴVY;e=* Vu꘩+,:Zo}ߗ}C(QkS.}ɾ&u6=IuA-4PN *:3xNJ}:"]egY6y?^.nrK/& 0T +z=]o6Lydo՝y3  l7l6=1><8}b7l1+W+t]R.uSLP#gooiIcQg+<1~'B[<#'OzfT 'kW@G?#8)cYPwsˇ\Y}SɄhQˋMLuHwG_]bP<1&/ q r+XD eVb<Օ sݓS_ 2TKpɥuqvkHx*} wy?o~G/<Ζ!:q=Ub;Ueq0AT)%ŭ%{ Lh=샚 >A.aeN4cwР1YXjr-ug,Cey`6Zq N1ZܹTIafN.\J@Ѐ`vMMMMMMMMM S'X"6[oɇj|J[b )q_GML UX""olzo!,u"EsgA"HrtH#%YM=Bc1P验;o$Dt*r U@ 6ZdLs~G(&k/]pfztP4Q򈪒-6HL)Fd֑*SJRG.]V!L2WRhQz1nj*&b1IcOE!bIOѧOO]; fC)F52wcR[8RGP#R%Q _RvN:nn cPJ+l%{ͭ'@·ajĐHP;5,zjS~ɝ16#wQlnPT\Qrl 4="쬔0"L}nGXse3nP1рU͔]*炔aY R!넩BGlsl6Mqq/}(ͷ_Zoso`mV6:Ҭ, 몲&Nwk%P[[$pi/*eJŅ ޲aag4Fg.NO7)Hp=DI2 {v6;Ok/;fiv'jy vjmZkZ64 ꢫ.LZvQZ)^&!#NcJmLI/Vfޅz2umcNkS397e=[dINWYp5Cu][fasmʴYb~ !:}֟\mw|oKױ1 Q%,vY9 IZr_{BU!DR[ 5U8*IeI4:<=5Ehf"*WtyG])[[Haֽ,Oyۧv3`n w_K}˳kl+V ^9 dvsfGRDj>Hw5Nwa/kZx~r\Ej[֊rr fVJ=>M>qY$ >ghW1w/?s͋D8·ЃD}/T.꜕cqHlyRԙpWvbe`2͙W X>]@lSQ&]BSJ }vHlko6Nll6XſU v; *|0'P nx$#m8>5mQ$L <$Ԁ5[ C@/z(g_Z\+EEgHh.it8 K"sw?;ri&`hij~D hmM4߀L5I> Ea4@@ L흟_-DջرCvm:3SYhZOœy{2q6.P &z~guڝ %7T׳: E*kF,ca;oI궄Ӿ.x2y@+$ہ:ץPBsxpwC z y),:$DQX5xL8?DD=b鲀gW1BlodbtZsd;hP:o aޣX'lʖҬ7dBd3Ԅױj]7C&[k7c_i`ӆBap7F}[8E~Xľ|/:DEevK$-iN'm؈ + ޏ?V Fώg L5cG uZܷ/L3֘r}5G5۲h Z"׶,-_+]O7I(<ڞe^. jJ %گdb; .!b1 +&3}_s2\cܙsW_:8jbn| !?e{J-9M07?}/ ئSnΛt~x|[;iim;R8FIl7mS.Zu(fDI~qthez߳)EoJ pgH-n|*gIPRf1kkGӁtA "0]sa:kțfiGL#vĖݝ#ag",|%gj6/nYHĮ_gc"u[R?0@j:Æi ݒhRqm90_c!T6(\}*k +6@ %XuКQwqd(!r| IDATHRF_x[bYJq$T̅(ҧ߉r$`[BԔ.leAUO] W-㢂V)Lmnm1N8̖FȘwT4Yaަyq4/7B$uJɗe ӡSshcJKm,OnRrk>c1jwwE)R ce{M;GGWace} z6pY ,l)kPfHm­vPd!UM#Cb dWhc*{G}M|»9|[|o}ϻ;oTh:*hh3aeɡ-,w,"Y掠.m+!V+P%/9ք#cտaR'Ez\:i+襲k*Ւ;W޺(m}QE/MWkaeM,S<3]Z'g3&I+UQ, `,bajZɘ+{q%ձ%sT*Mc3qΧ:|Lsz'y+s݇~%+ܹd=>tI{hK/n}IqLB"[l<M1q/!NwSZ!Iָ{QT(6JB;t7x>TgS՟]7E~ ?T8tOtٽ׮(^=O圖;poͭ`E{9;=~Edrm7q|f0 ImBlJcWp %]X9!RLvY a,AUg:{A DU+quv L 21|1QҖ^<ۍ#KD21E6=Ę/ R_%Х3Ip1tyyVO|<15P}=bx[vR}=U⯊Zvw&afn/TXoJki fp.ʣq-h0 e^Ke݈e0[S%([TdϓZ.hi(YV5*x+Ê^@_;̭K*&f`͜*h%؊Yb@Q |}S\M`(A9t3L|FA/Xڡ֢ml"O-]yUzW۞w=~g^/{fixZȥr-nNX܉#b|o[ڃ 1UGLn։u$ NIeqYq+0w%!]Z8?;Je03KB] 9 /yعȱE#Gyw~;k{޴9!>?^:N9~]qϮY=sm[j).#R?sLV!n~XVve|۷/,0*\?@=b<{ęGcQAJ {w//w|䅗{.݁~9|.η߮N3?_wfx }H | Ѳ^IyAH¾BB>#f{B_;1$w2#j8^PK`uBZzr0fR.8$ߤ'b`vNM;L RǾ8xsy۷!nn@{_'CqV7H)i/.bMBcm] &~]anW񵒿$%:`Fancd30jaGRx/>XaoCjEM1gT!&7#ާ4Oҳ S| AMptc"yfO ' `Eu]V-I^K@T=ňi!bKkR&GB瘈JElrCJ2{HW=A:$b?mDNj{(_aSHstKUAf3B%s@j @JwZ28i:wfhɔݍqV0_4̋@E/CWEDMe(h:OvGbrv)Զt5h- 4. 4&D=>jTi/gݡ(ZA.g;H1խK_/ԙckkd֦ᙟ;pgQ) 2sKY=[ʒ͜\zt Du޼^ۆv YN5w5`ՆzK 0~OxWJj55$. Pkqq TAl|I!"^,su? 4s& `$TU21gʮyZ@k]׿8c>2˥q52O>X7-skءxIKd~`ˁ/zS^}yw+392i7ffղG|_;{[R8SYQ" sd׀ tb"9x_|ݟZ~'o/c\^gG>&cmu^-oHkxx?~#8 ,բ[ AA 8չO#nu5Y4y{gk!d1s+ KGUzn&n&n&n&n&n&n&n&n Sg{;o`EƁ4XTsS䜹w%"O0[ `/8I=RL6q牧0KT5d0 %хXycBɬQ?~wey_l4s ֓M8\QvH>[jkKl !~ʘHC@mBsRgb5.-=A VD:Ă;B56L4H&$&ĴAf"G+(~Ta)RV9$ ̕4;4}1el%H]QqA*.l)­wٻ0Haޜܦ?I;~l%fJ>'-!"kHI &d9+k(yG %y:k9v\iPn2B,#X" E"wsugT{_vOV )HJ.֪>nsbOZqn i`J#ĔQWNqc!ń?ڏ;Bw`a~}^yLxƘkQ715:;i9e̪?ie}( ŚkpP4RߑuĻ7?3}k'ϱ)k<χ|w_+o:M;$ u6t}bӝȦqO' Lqp$s2/]J z]]7LŁtĮ:*B/Xaڂ$p 80 a^@Tm[&B2%ZӴ C"zr䲝˳89["\/>L 1BaKC[h(i$U SdwopBf"C+f($ˡ Al`J&c ;^*TmiCpE'kR ) N:J[Ȧ->*"D);1"U3{H@f Lm@rݝ7>|.?"57-X _7',j; E"4ij.z %grq9˼#%5 vnY"za$͠R{F)eWއtOiJ0(F^*Gj<!ͅ EP% 32Xsr*H4+DЬs'*ߥd6n^~p}! +wJ .p+(ʗm\"I'tL{sP]bceo,l` 7)W޳P\omfh_KHgoy?eg۠%ocS}s>ogkf0дP'լ vncMfvkUGk6Vsٜ R%vHkM&3lպXڱ=J?`ڧ_˺+@πsCϾ3ɿ) ^{gr_D>ZF9u9nN 2"EM֠c(AرBCfUT}sO.^ޝkcLy!_ >=#lCO)3]ܿ+|n2m<;n6H] )1 Je45xc1WglOJ"C3]nQ|8'LNBwk};Jou\JuU+5#4҈DU *Lz VfNH)>"sUX&nj, (Y2Q/vf >}ZAPcF rɔ Vs{RE܎;< Ƹ~PG/ݞ!EOn1#Ďta;3T !%RwB?MƎ ~|?>q'y|W| _p/=R&rwtCBԒ\ y DRкDVl3iVCf!PٔtC*c"[5>!,|mp78h!IsXBt9<1i^ؽ4)2 d%0fFXm1[7h=3cӗ ,bu%PL.8z>V:IФ. ^ j57/ST}'tw|/3}.ձuI{X]nU]ҧmng q ; HA@b b  NȊAd `!1۱6/߭֍?Ut1thR>v}UWj} ɨo3*SYqʾq wP؃8~AgMMA~ɱUŔvX|M Gf|ϼ9FXm"MޏEWeY W1UHӃ4j}fa|+%Ljq5-:9itBɽE^hIi?J.U|kt kZ1{xcΏMDXq _6^|6FkNΫ$Nm6m3x5`-9_dY\ @e.b嚴N 7'.小s.fpnFc͘jGhl0h<_?z[G7Q4uŚ^c}j͙6:6J8.L)7=giSJiLJ>zjб3zuUtY9$1I7\*[9_ߎ@F5l}FBpvx%X2otm5\J^h?IJ}nFKܹ F7ܼrfNs3k)R/Dlٙ ؞`{V7nO9U c)tG[Ѣyx50k/ٞ'ǧ׮˳mh g>;bq퀰PE)x1TP43{v9< L ͲS5 NV6e)[PuV{3)$`w]~Ou{6FLЅ>}f^bʥ&eLOj%Z6ĵIX_j*fcJњ rXQ=K8kz^iTGr ʧP#:*OK?ʿ3Cw7-??;'plk >#btv2N{|Y[IAH]ygٹ`FVR2lƄ U)c_ ӹ8c$3ƺ}wЍ\0bL %d제kt;W5ugEʒKu4*Pn IDAT&=}VVYstY`?"-!(l+ ?*aR@>*r\)C$"]IXrv?W4{'!..؃+R#ULVl2FeaDg.(ag ФR0./{@gZBkw!,2.-6*"9m:ȣ+" GeFaљaXLF6Z26Tdf0HQMudY|S=~E0&.,ܩG(:j ]c|gw|guܽ{C$%^u%J?O2iVTGAƚ/U"\ tp{9ZSU~~HiKtabqElR$qUOo}w; 5\?f@/kQaM.;1(xip5ʋd)42\,RGkaIjYW pN%J'cOm'w L/M@>2P2@4n˫we-Lq]w I6"OwXD*G4BH]cA;[kvmpM;~HVakG;!ysD;ș2bNJmSUtW4k Ҏkמ55VlckiÎUz g1v-oٞdR$$n%;AQ4JV$6-6fj}vaJa 6V "f#֑6zb[aUuݎ̜J+ꜾR ˉԎ*Gr H_JjK]cyRUĢcV31v!+}5}+B9w LJQӑΒYL}ҾfO$U0vvjPP}QHsB<9qc4dR> F46].N{Zo1&YKvbU*6g@G,3;*b!nsL-U"\BLJ(}Q Z@OG*:bOH])c]w]UN7K.jFʆ)t` T9Q%tۑ!-1*:GʾIJBwxk|-_x譮NXߓqo9^" 59BWiXBҾhK5/,!ºã EޗchEK:lgK/~_?g~O3"7"y _^ӣ~|?"WGI 1U'E3Ḧ́b=!Dzi//æq h~n(+a遽pܱLR-?G!7kw, v W7;ka}U8i; m^[yӪh1qmKb$/>vb1~)QVc mI>סF ׌Z|m{:#v kSaj3ҒKS2[J|Gj[5sAvQV+%dQzȳ?jf2dR\V(Q>쩮) 2;jD/ =}<1H u(ZBc!u-x<_ݼsXo֣{c,'C␘7xl\CRf;\-%,\R k6QHDcOFaSh1F =8R9L& 0uq̚sjPd0iX]4b$a.pʠzﶕE%!|>mY}{NKAf[d<۰ <#JۉESPgڞBgP>Ib Sk96\[ +89O&/=U=!g\qM1cm⠩fض1JSUV>qF" Af1)QeJ_bB3`݄H/oUwUsT9."L5h}଀Z<)%uUqXtsƍL"c }l C&HiSb>?[/1M62(怕>,9L9Ea]KO#9nc[2mYtWCX+( Lm-MnvGقLvlÙ˓!wVsFEdR#ƹѺݞrl~zAH̤? aiѲ#La"RX=>h-;V+.c!~TZ& fD&xsj/,){톐?`9$.Xj1y,oJާJi8 `""\ڜ$u,褓8Sn(  nV'zΙt0u '}O0siѷ[!f&K$RG-(k,!E5:)S`s/HOEt|>%1 ] w%jadSz 0S䶙|InI 0_؟ 'oz^'y(}tz5ma{R?kdh~2[n1ţøUUܯ'SʩԨ33vȤ;^yCY@帺1DR1vKhS <%= M]O s?sS7r1͏؏|o_'6s3ޯ䕗E|:KBC 1黢/ -j?O~#%S"Dp~}eYhŷ\7eSPc)쁮5 o c9͢ZG>ڭ[[nOq|Vv+bq]͙fvYȾnKLDBJ8r"ڵןZ®dgayU(Փr:Ut:t6pPȲzki8qZȰ]KYv*+$sJqqFVʞ7+匣uR+lfiE|B%57beb}(LJE)3juį5'oAi NM ~t۲ȃ!LJmf*GDVњ_yxQL3n3A}L<ɘ$: *PJiV$B)E(U!#4O &* -#29pJ籾%قHgv3l_)`JstC&ƹvv~V=[77 gV]Q3N6~J4! mVgT|;;CkGJguqU*Cgs4w_G=w1_QOb?uWoc̫$SU\Z8>ԓxƐ”5)bJguRP2)e*$q!f+Nf*tq kkRNF wDo:LUBwR@Ԅ)39E%HƢfwVqTܽ| hm]7L΁8PҤRITY ̕f= ~HDY|x RJ { )EL>ÑK_%XdgLAL0J>+k)RZ! Ut 50Y_.~Z_U. c8IJ0vz>\|m,D3@_KR/HV 텒 c ,Dl?n YkRxߑKYƠA+.ac3JޡHY) A`\g\X'EFoVrD*-oڳx5Iq˫w'jLp'7f<= c&lU_J%`m`]EHۃD@;Rۏ ;jŐ<¬#LI@qRdHMqßE>~1䃿:Ysp~Eܧ/2`Tޏa9AE,{(Yʌr"WzbDXv9t羼iZΔ\5e=utwc t$=&D~37/x@kO<-1oY?]跚:@ϢY=l|7=E$9l- U]7J+BT3'Gk7nc͌Z,jÓOptpvsf'@͝WyRՄ-MamlDۚ \Hl,5RA7j\fypB7XDÚg~ֻ:5tjzM;jNЇia놃kJYacG62Y(h[bgX25tGTh9r*g킫wcTq~7Ӎ" f|I~Ή=FjI4])L&LmҠ7#V,,XE;b,Zd¤HL _ ͼ+KvݎcDĔ;P]UЗRu]NcY6]/lk*J8ٜ00vH^%T9˼l;8V2}J9b)0ӒZ| ,8!*!\ `%}y5#EG^/)%6O .? ̴I sܕP(g9]؛+֑eͰ@LX ŘR5;SpiҤ}13PvrHF$w@7YNp]<]SO0!@lK/_ ͅ7ܑoU]fiB5'b$@"4Qel6N}+ۻSG'~(Xoyi0>uLpX/IehS~s#cN"{rCdA) f\|Ўwa#3K]8ߏ+.ilKw` U\U\U\U\U\U\U\U\a-L{̵d/#nxخ1FћGO9fzH؟ = +hlrN? 0_d <\? O~Qa:>liLͦ[NY3Ӑ9DFIZi8xU{Ʃ_;Rm8v8W(W]׳n#USL~VwޣϿB_:rT:Th1UdiO}lKil3ҦOU \R5F ݨsR@ɪ\E8f:Ovt|sl0YfΠ87ұsg h T[4gB U, ] }KAA|,"!ߕꨵ-be fU ,n~C>=!`hjj&*735]Pʳ=;@sV#jE9n7/MDp5rd0VG.Lۨ:Q87-i֠aqtGurl58 \U}| ;.W|_x%o1%iMf s} W0KKXhq}BTƖ:~e|'4؏%RVR"YZ(&9GVF1{$!MVBj7KFfVȠ$>ZYTF0A"(nܑcAdC';yQqd)GUdiAggxRƄ3Z$Ol>SB% }:MS4c9肖COL%bw~)&)ONRF[UM&{M+2YI 1#x㍻n(eMdZ?/c8\͒Uo[z3_~d·l{?5ώi0V17nrXp-Akj9fD'9VCg4i| D#Mv|jӌ]G߁3-ݚk.'<eXo" o6+7(p]ׂPhj9'ٶnhN:hM47xp>$w'syA5f|vH#/BU::z۳;-}$UIWYmV\QEׇMvE.[G7vήݱ:{IY֢0,ѤSY2sGV+pN@5,QZhwsk vQU,}N8 P64J-=[Rh=%mOq'}G*Xerxx#3o9?> fO,C`H1rt]N03+f,QyU[EzK@HqMmO=S[QeQFQBJvPZ' C<B#`+s\ِ8d%4UJ6YPPCT@&B9; h J)54LJސrF۠RO^Ҩ2 ͌4uq[oNYՓ5m[r߾vj@`8kDKi{j; Aq8.Q۶d@kA4|Nȥʣ)[FON If =ZkZ G==q.ZB"Wj?H擔ԣKi\3fe?ܞ˞./ Ǵg d 3DD.82WF, %wM#ȣ/?-R1|t^S@]%rϚ9Z[rPhgE]#fro̫=Vy"JJNEpfZ8:9MJdAg R*4?.FiEc~C]8 oؓXޑ_(B2*QT !جO芾kFsr![> q. {M5(!-9 &/{4⾞MƎRr0RsIxrc<y\|3 h޸X,np|wyu{pp^Fbs4lw1V8* ~˸S`,?@FMͺҹ2P׉􄹃0lmnF΢aԒmTE9Bنٵ͟=ƧK)'NNz&<<9bqD+h6ked~w c6?8ΫO<8IDu+/ꀬdi"̺dr&&˯|ES+W/Kv-]Ccƛo`TC vnH疙*n6T4 %Fi_n7>2@wj+eR!`PR=XU9hiZ#xBjHzFz3HJ㴁YYaL aP!Ȍ0~`lAi&k((YjT-[G^!o>@"%K7ZOL&b|$@@#bEˣR t݊]yY4!ؚۢTrV9[fΑߡM `6"r$igY|z:H%$KE)'28Ӏj[KFΐ`j3xuFKr([ 4xqE5O'ߑR{֦szhS@ƃV,u9KaO)rv*)ٍ蘃Xїb ]"SP`WueH(`+¦( ),(^4i`0$lT {mQKR({J) 3ٞ3!DB9n=Ni=:im)51ES9%g" ValkބSo^|i?;|ݮgqRF~7YtvR;_`TV 'ch[0gE'^ Faq&aL<ŷkߌ{?|?J߅.V6L4XѪ-F;kHvGCtu1;ŌB N/o@Lg43S)<j Pc&o m/2hf4\Щ,d(<1!A1\S22'NׁQDܝ0ֱLP i<# r>,b=yHv!}Qƻiz{'%qʽ}W'KR r76\,zb4.Nu k~1Dz_QC_ jiq&p<]c~8BrB4 %-b>dkImzخ 3 cLLTqRѡH&_,#2(1CJ{ 39~+e i ^.Z_l3 `#X)uZY\lٔ ;~oGM0[`ƖG7^%D%@M9ƷU v$n S_5wph沀5fM [}вt*)r{r4-~*lFxQyV=j vAiRF+CsMXDCɣ,n>Orco6Y[fԷhytjXoEC]Hm\%)R>?C@v~D@מ$5ijw48IY'e/O|~jy[Ͽ~oZJ| |//JUlvqj w+!.D'1s֮֐ ~#mn81',b BRB VXN $0[Dk"줌t1{邧6hQnFLNZd  dBP Sar:{nvM]7>$lא3Y=Nd+ ۳3L15F >-\Cn%&rpuڑTo0i:R Znú T$^)WqGm[w-_ !I)TRKIFa#& 7vMcmq)g#KVH3}#h͚1C[9>cJd6Xk֍ de~G>hӐr"L$\90#V"UM5T 9|YĴ䀲3TIt^2u5U Zls,:xv.Fń>JC3DCJʂV ~bdKÖEk Ƣ,zd麢}LQR#Qe4P6$S_f j\f(񪼗:u:wKFVNV S"몝3/uq[6C1;|+P>L mnRc&RZC*ym G{URSX:U+ξt_YRRm+:0ڍ%zJ)B d4fť[zvLybAI&+ח /pyߋkr}'X=8֠p_1YCt LA<JM|FrΥP^j'}"MX~hMO9/~8L`:.EsR覀qo7篼c|>Q{K gY̮a{q-ciX5RMMwh4ELܨd, Æ]ǑӘh1%0(1_Cˮkp\].]'Թ/_n********S-L]xX >n5ƪGSe=έbuvy%vYOc Gu- tن :rcJӟbgtS7vg'̋z6[يfy@U(v.Fl=g`P7v 3bÛ&3K=_a\K>!B8/l~uJUYVY|Pי<(vH;B]O;ĺS1 t'BՌg7b* ǖ7~dX?o]U9LC_#BU@$KƱI@+n u9(!p--AiUKbА1Bu3V(ĽiP kk19srX LV[SB%O_4ֶ4Zkgֽ5tWnncI8DDa)A 6JdM$Rb ! lǎvw|ϰ5wϭeGk^C_sUq(YNnƐuc :2/P0[R1gPi@#F>Hg]>Si9>yut/xz*œi܂jqL6W<=f B c)$A}N7 6W"%YfgbV@p8°糪nI8ٽۺ߲&gx7&:}[]ʸzt1^FɒBfǖVg!ySgkRh cG$6"RQlA}EV{hSasѤ} W^U:[ !wjc㸐:bOX%cGCO~ )!$ h(BߐP()U cS;ɣ0,ry'^=C9kaaMim*SB+;n(̘FY{ cXʱgnjҥiJLPFf j[bja LTD߻7e`f/:{y*s`_}P>QŌV*TVb |0ՠb@!HU|ai{LF.S"a(g]aSѨX2>S yJiaO8>dLϽyӚTjG}u cm;E_Ô&FMꃗ g|-D&{P$)>8@8Yļxɔ|`uO'J˻AGtov_߈Ql31?>QM՚{c)uP+Oĺٴm~nF; )u0D}`'E2/$A10O?À'N=x<}-Ϝө^ yן29ܿqÿn>/Gn. 4Ts9mJ,j^tI '1[Ϙ;\Bh# {c*>f+ppз뎶+UFYƲ[ăɻZD^nͥ)6g۰]oett|v꺣cZ;#yL~a2lW,NNxM@%÷1#혟</r~1js*wZ-@gQw֗r-:1Ůt|7nƬ %Qey[g >`Tn0`tS謅^7 c@YCAY7%L&/$ϞLBi;-k!\5XMуkɶBq4m߂i1iO_:̌w]sz9)ǹ9;e:R~<*' ':Qv6s|@V Wg C+ՒeTfGv q>'ߠ-t]Gu[_'H?T_?u1]Ie(k=Fq 1ĥuR2A4P5Kȉahn-g5L "P=߹ ;ꦹ eÀ2 JBdtNd#~6>0ɖ!td,9"H#{qvn+ҋ"a! )ce$M UtAޭ^dӌ4)t!qr uE5Zi̠($2 A[UbL u ,JG̸lH1&e1u8]Ac1Jt6č4S̃ w4R9ȫbBt w^40JFv^|Fp4\wKz'c̐HfI8WTu[/9ahKslu IDAT&m6s!$)kz(2! SmdC CĚ8?>X_(,mՊj`f w\\/kjǗy|Ƕ-M΂helDC}8>9|ʵa~77_G(4-ORZ;t(b= ??0R&piwߑ#CEaS#G'99~|o 9sp.wᮦ>HkA n0 ~f:xyH rӳ{ܟA$y's>>#u|a))8M>xR_OQAQRLlhY]=%PX/)iUah4ϰ}#9KC\o6̏e?k`~|=Kv/>rÝ;a[w;*g حv̖Ǭ%Ucص$m+үWc-GEKV37 SU˕+5U1^ jm\S5씚pr*WQQCKyγkNgbq]~v ٵ}}hb''2*ᬰsvUޭ}N_'OςP`Q.;staF˶K .^\koN裆}B:@[@+YJ ]3F})m<^JѸ:5S[aFMr51:I)134P ,/fuNX_RۊUݻɽtےŽեD=w>DجxeQ6rpûSv fkC5X]n ޗkً$Sˠ$"lQsb٢mo|?x?_?Gk>֭dO} _){0vAT'L;$E.>@8O % GL%C1uUI' _ޏX nbif3.~:cGULǖXWC1j`ضzjI)xb: ;Q#}@8~Cºq ,3ڤ8YMRz 1)D+FLUX)eԡ #) 9# Tż&_jL1Gc9bc1|iRïo=>{uaAW9;wN"$Ǫ07oa})yU] +|i9 ihFr+oqbB>P]͊Y`[+\-ܯ5m7iHXUlю:J&) ' !byf]jQnբ|&8g1Zs|+WG 9Q W:I9b*=Q'3ʀL Bq1fiIGT='Uv`C7^?'+ŚgdJG.Zm :%=9*IJwaPhG0z\UF*{B&C"դ cAPN ˸:+yH*%0sU2AqR[Nֽqî0WZHwk\NQnYQ$c+'eαa)􅂙sl_}̛gg}̶D^>fuMg'ryT<} nmn27(I@A-&o65_g7ί1F(mS%1:SsQ7q(I:1gAe`rZeƒ&Vd]ǐn,\x偰`\S]Q[k|?UR艥g-m拳_8~Ϝ@S=),kQqr1Cj4,jjn&p.8XƗ-#:J2{su~O9H@26LL 2=XWM(eJ@hFyk-@VϚۭ45T"!,TS! SzwuWMρ^52Pg9m]ݵ|/Zآ'W5OO"IVcSx]d\/V0!x>>|}_nox !@l|.^ᚬsm2:%9[stM_x}bJC 1:ªIgRUa]C]lCY=@ )f2};)̘HsH/t[R>i>3ԵU8hE Ic$4*ߔZM'犈$9/L=i}$xSB]%ԹQmmmmmmmm}GԹyOp{tez)]j6 6NNObUߧO+|ӊu$l>g iهR{r{'" LGBL?[pW~g ,΀N-]aAd跉j^Ԭ r~lY1t-ca@f]VBos~#w^9|Z:fZlц^mUS3jb=*^<~b.z#w 9:Waʉy+͚~a9_2oTSJ}Ul)8'75MƥeZ+{ϫ/W /g$GL3w_{eH|.Q:[Eeb ,{i !C"vE~E**r2hDCOں1=e-hX`"9EbCߚJ|&"hKhBL*U5)ȯbP$c+)] )$BZ9W;bluȮun fG*K]]p5C@%c6S=KsTY{vs[qȽV/3I+'ɩ 6g'|b;)u[HKw8L>bW}`o?`=gSOR1"g|/3ũmݖO ߣ)gT.ɬ7'ZLǞ FX-q̹qBdmPj/HC+J XGzL1kT|th%,4v7cj]m5771մIlgPYO3gN΄jFN%^iCKbՎ!$vEb΃{\^n8*?Ymqҙh-Ȋ^ +D’b`uu=[rcl U7ʠM!ٛhv田1ԋИT9 F+R-zĺ2wļsr/'zH7% oJLwϾ?Lu>YϟlYMW(Rj1ghal"V0h$sUy:T=1Ebd1i PcHTGhճem*gI* nGTf6`Eb z!dJ{Ur&8 nY0x ()QM9FLH3!uTl6=zf2lEx\%SAQ`"5#(dƠtLjUu":h͙ B [1o C+f9CoWByi+vqW̗OI Hg<üLT6G[ѿPoLpl0ʱ7Ar~G6S:!f&SlM(%"0~3J$)^vB5*>iB;9#J<~.>E{D=2Ưj۟3{63/ӭW yG> @w41Sp``@nG?땚|tYz200kOs 0ӵeƯߗ1J6d h]AmN3W3 ģsTN,Er_dv*t)/J'?}λ,9_2zLqnlfb^j#'5 ;gg\KL+6;^<ݲ<.~> U_e]=6n7)mo> io?X_B1$u}woP)Q$wb78Bm*טjre $qdn`q Ug2feg`z6T'Ohb (`DjL\:8JN)읜n){1`>`L'\HDAɓ7b:bh#ڎj>FfH=!+McP̨Tk*۔*D2PJZN"HƑ˘ø#9c9 غ!ҥVVA|/&,_KxLƠJ#B4,Z)h]@# )h՘ZWNN#CbLHx GUApLml/YDA^v'H'Kr9?~UT -}86~Vް}ZyWψ]Xdn;N{Eeõ O^a~xHB}ӓc'GGse97\<~՚Q($vC(*5 Eߕ8뙣 R/uBPǯnX?=U*cwͷhBGifKm9b򲰀Si0m}Shтvl.WS׭;Úg4xwh^<'TŒٲB믓ŽF=Fhٵk/䓯0pJ'/8}ܽ'F(0Î1c_~sm7h%[+Xk|w}'?/2? ɷT!tJQO_ 'IPzLU1aHxn"Ͱ i͒= /^iHВ"Pa댩ǁpe䡧XБtڶQd ƉR/Ʀ$DOFpIRbTVL$0W1KX IDATlfjҼ )B?/CVeuj!1*k|ג=e NQo 41M8L))‘S=cIkZejP)2gYaYT,%T$M6Gg䚷ڲR%Z 1%,?e}ZPČr/06\|wOҷ.0 #7C "t$;2u$d C?%VS&!#:w2an|ON;ڢ\}9M#c@ J1N`] ԏ1S֑sF'2N'qr1޳S6TYW>Oi@p2艹9@B'.ބ$sA#W}syx}°PJ䖩0|ƍΉYQ)E~R9Ƿ~̓_(c1M落<JG?$@J9S 11-J*_7]z5@ҊvJVźlp*͂E@ ʹjg4Jk$T$V"sԎn99n|~TGOL*χqY-s( h5kePY?[#ue @q5˳%V xvG_iK}5?#=yL$0m$.2wNvaI":xRm2m^<>;#4; yȾ~:];nIk&LNtk,GsABםϗ(s!'e$)P42)1$Wˆ؍hpU%&jDkAS`=rAyn *r|DYfKt/j޾"Xsor;T⽧>ϙy<JAуs:_"Oe߯wk rJG'ޯRU-1CϬc6oTP<?ԏç s(;>AҟX'_IQO,?5-LPC'ښl58T4hW2乭UEZșad)m%st*dQ%q tw-)vľ1g"񶚹-dg91;*LT2!xtJ1-[ "&Fab$ɄÔ4ɬ9^ ]SBDKd^7 r@x>& ۭHmOqN F&Scbl%`Cv`$,@+J$-kc$9gQ:a8z: 3%wbJU3qGU&J6hYXNwh@G؂%!$jO'fk\wo s͋O/ȵ+drcB2שּׂ Ɠ8RΕb ﺞxMǃtN%< 6kba51|5jh"{X9j> NNH 5tfՒХ<"6<{=%a"zAڞ\q9y.YΫ<AܬIЗ\4'KǤs532䬨jAW{Ү)ޫ (Ca@.0,)GtAO^j >bOUE7G=" 9fVQ1>gsTtk? @Պѫ\̧z:ZRX0/]*ėѱkWxS:\Ѯa%T;bײw=>y ,/V+1Y+v u|՘7Rubl A%wͻZz6 |ꚧ>Zf;챪Y=zwE}x( ]GG5??z۲hjkM53"Yr4fPW 72k\t# YT((Rh;[/gꑳ-p`Wa^h5,ΤWh.YZT>:RmʁyڒvYM-j_%/.83/.w[u[q%6.l~={^2a|y^~Wş/E1$]k{C-Sc3ϋqH_7>_ s{ 7b[U5ZcIDΓG[1X^v(nV$'zŘqD2@'ƕsN+mQV፼˔1"OȖuߨLrEj,@S$*EB*ƺZ 4$Y*ftV"?B{9ɼAiK$ǯ1eQҮ&NZO|Mx4y<1-˔ï58"M1  'Ǽf}~FT?EyKY?KS%Hj`x3_MZ>+9,)*K[BPdJ:˅QX0KV0] y {=x̷ ~W 9V+}6~/yN#S@ g @ Ԩ:TR"YVb$ )%ajم1pϼqI^v/B0Ɛ,ucY޲ٮܱ_ S39@ǸRS2˱e yFwޗǧi0NZ?A_?}U_8)3:/_P_孲n_lVX_zGt0ph)%׸qYdĮ0C0fưw-74fs(}[ O>ԛh,7B@{pz#?15'n*|s۱i·V݇+|Mko7W:׾Aސqz5_SGb1s^=d (V1~ͻSGfؖ[7{}oG4B~?P0-FOTOfp&>$:#]y۴TB¦zK2T^۬832qĔӁ_TD Te!S&=o I1uT3v=[01rMO2MqU}<(%"I8 #m0Rm70ܒVR`7ldb8_r,Ub?ew>h} Y7kea)H lz!>ۑ݇H[O;H;b91MlBO7xQ^ikؽ>́!+VޒR(Yh*,]:*tSYV6ƒtn{E8Yںr^PĶ+a:1^)vjE#)(}mo>!;/"&FlcgS֑4E퉥ӾH,z Loa n aOnUH*; {5z|Nn?&H JqjgmY^'|7ǜv^˟| }<1nr^O?[bIO>ͪ![ߡnV͚GiZ5{ HE~|6 3_!a8=ؽ{{c7ϰF?o?W XjS=S=Sy-2bRpX ۵ 41wA3ˣup ԰,)Q(D>uѵ-qN08N0aaΐ 4Ul2*0Tr&r)4}CUwL VE*Cdw6 qU~Ӳx|TsJjj+аC5zq+,&(ͥr^vZ2 FXY,:5i09XJK3:a ز4z6zgwk5}גC GoL XjcԘ̑ )!bddV*sۨu)R\ZBz8XB))KR29 ٧L1)Bu~aEAT13M]DtT)\5 ~r6#|D©F;GnV>)JzG)oX]՟J+6֫kLcHbȵ1F)d’pvַrM09AM2X(e}WMi|WŀJ<9=!"dmk Y 9fbIgYP(yR"*:ĩRz%ٞ?ID.eAll5MΤ+;E d b 圱"4څ!"D1<5Hmwixd$W m:|e8x c@)E2c))px 鳰 '17*龿񞇇2ib>4XϪ_E|vjr UC=<稷9oՠ1oh IDAT.ȴJ T fpID zxdr*#`Kb@Uw *,ɗR>p^TJ=%?S=S=S=S=S=S=S=S#Rµk)p:L껲t+ g J}fz1Ud2Ɔl5VBf=_'a<B QuiQuz1fKO{ef8N+l[e{s+Xq/4h>c XMG 7_ b]`x *S#+1!{º_e;$TdKΎ1ܭᓗ[xbZږH9:v{? '3Q/Y#'%Ǒ&?/?M좏nnp69~)!چwon?8j Ww׫h韭xEsrGe=)w3I77<0I;oÞwo\5+6[e=S=S=_I{JЕhg7-)eI|чuU3rfRrqkJkO5z8q+,礲q<0Tp:8(i+{﷬V ûs_y徘jo@], 꿆>_$3h_ke͂zP0.y 䙅3`1>'ٲr9/Ǔ):Wͺ6@8gU}m^L׬ίջ=퉏~;@9h?E\:GငL{6"z˪Q/ڞ?# /)v#~"=bڿ%?;0kN579pc`nQos91;Jԉ9END8fݩIkn-Ū1[ayf)2=ev_ čFa ݷ7#1OHkr\x%;@[}|BLK:cؿ#t|j{M\4RL$ kEðtWc>>'IR W7H!/dx:.&xҶ7wtmKS# b0 ΐa)yO$ٯ}aGG)&aҭ6晚8v_.g @m峞|ǔ>Cd!Z7xfu|Yݎ0TyYOOTOTO7d4FmTncqFHmEwL ܢ4"f!&Lr l%s30B#k:x1B;ֶ B&k IƑ_ÖDJ%fs0E4 %eL $rvFNYf^J^Wm(d"!1:6b@jJ^դs9DifsiEX/M5SbgY&B)eޘv;uU.! P$$`6tC~ 7i( akB 'lcs 9GrV@pndRb\|O$G8<\<'ϲ3c )өf&@IҬ)4`-[!b5aՔLд"1c4~3}cL[ ΁K4t|_H+mg8<)({d;[qyOqpU{z e=dҜ+*&բ8YBE}`]HPl{qR8Zl+YÒ#*%_9{)}q>+l}7A$5k`MJe9gT| vIb_WJt۾Y,BʔI9jX܁e(hJ)xO[g[˜kpΞLHI[/mB>T車sfy1ҒkS0eI*Sjh&.g&9MM5ʈH)Um;s1>̲ y8e~e}-γ/p@.b-;?x1o#J}]^! #q:V=kԶ+݁㸧qK 4kF_MgݑA %fCxcik8ʼnGְ\_soÉ7jH5#9ޝA-w| S=I a?ઉ0`cdOʲ % P߶+D`GߤPV-8B$ho#M~kԛvެ-ͺc<&N':s<Ҵ"{e8 [W v㘦: y8u.Y`>~eȱa25| 0O׷̯.$B:-]SvTus!&5b\+e&J #KrODUq^b]uzOL#PD^i:Wi;C-f߬Pn+~gެH_|;578o"p8ֱzzNX\Okuyਫ਼꩞j;{āN:N q2|׽0>tx`9bAHz4R.F0!R*b'`sK:KL3'-@QXjH&I)DL6xR28QF!PrILf8,]5̓)!Bј)FCIg J uCR 8le:iVyZո]Qff:V9g6M1q11C-_B!qdIv9v^4F@gCZ,8o!eUW%|,R2Rre.5qhsWf lnBJ,%%*!Vhm&~HCWXjyJ؏9}+*M} 0Ӭ4lNĐ6e8˄m (j S]y(8Mxp3)Ͳվ9ʯ(9Lj,{|f?~xgfYޖ]D(V#+^ .Ee/9 D!XB3SQjx5zvXƌ}_8Y9nn?./h+qÛt3Ո+sq>y(5n,|~}Š"fR:[B 4q:pMs(\5=f4.wu97:f6πj!|?*JT"eaDⲍjbl|-lbձ FA3 >߳S$[P js6#||_;MA^Ak GeLo{éd\vrOH1z|s60VѶw|kQ0$G|J _͖ 7/9/iӸgzy>|uuԉaAIͳOHLi)Cĸ ãn__ qJ4ܰ:Hxf" #4AȰ ܭk#C}^]Ӵ-*g}z}h[2w3* g3N W b|9E DG"okZ :iJyb8JZn+B G逵=\Q"UK?>AK=ƸZ簶+SX5V9n! j0"#LcЕ2c#;FF޾@ L&Z50DpzLtMǀ1 oau)2uZiMYo!RpUKc f{Mt?L Ƿ Jn0"lfyN/ǟz`k?XD+꩞꩞ѳ9G aM5h(Jb4~K1ḯ+B,jC9nٝ3Ee Ys5wRsbx"qHBh@ڦtR]|K)AL0\XRIH̖)hږJ㔰&SɹAk7 œ]]Xa:qn^YF%'HJ*|.P۶Xc!b(9\SXAFVreXH)_K9\"ژ9(9Ol۹.[;'HbG @r @,scUiنnAsz~W) \YP7V b=9<>ffV$*039:g[)rNPu 01;rMBfU4\Yj9C`5"E벾GgkJϷ1^56wo<F8fn?hP_.a7<{q݇[M#4ѮٖXZYZ8Ьp'c6=8t/Ӂr,qGǧz0ҭVtWW~+oƍERT K럳+f3z[)ӈ7RyNq`}1nbzo@*#-\MƷoETlb&oHpLK#FWdW &V@%) ^dĜHw9_ci \]i2DY]osۜԗC%6ʊz ɉT9z,҉l"zR\.45T5&%R+%Bb?bJ-FEf=YYTbzV4Yg4;r6%D=qi չ1$cTOɉ9YH53蔈Eөfm!$wSƈ6V$"3*Y*z>B)K<7 KdsC'32flmzWJh97J9&R8 BZM0Zk8_)=m0Œc^X33AiHnrGLgo+jwX.I΂yrW q;8 uHI}R :jI\ERw#O>G=?>׷^|{PR?oOTOTOVV:o Ft 9Ni!BYA[7-[x{{}/\]w\mHi)t: Ոk9!bCI_<ў\LkڈETFNBM_R,Lq piJ&-Fa\Jye8%))AsgٟzP,*:q9rB5kC 1٩ 0]D7`*@L׮|)E s Dl[Nʦwb0^W?9*wRy1#"e=&bV=GY.`2z *+= ߊeG*}; =ܦ;$d, Iu^Y?lHzq)a$@*) d/Q*0/ 294PrXXc:ul(X1tk:RM=Fdw&M0+,kڝ9-([\kϫlje IDATJ\R.Y3KR3"+;lS-^"OZ / yseSE 3Lfq؅= z|牎jX>)z* ೟}F׶Hem?{be -liz~1 P;;E1 uk1u.%q9+(<^k@Z K)z'5A,ɁGՋHIY}2-c̅{8edϹsߙ #+|c,>OՍ T?/LPf,ʉ (cQ&y Wkun}P5zqxx &8z 7Wlڐޏ'R_|Rt"?.1b9mMg:||tR[!L$S:,6YCئɤ1c_PΒƌ58b]cg jž&8Q,#)WjXnq=|7)pՉgH85{Rktmcb@4bs04w+ݿPU-q[V+Eky1 LrtW>7ifχ]s8(ȹZr62"Av 'FŝljLw!VKSKz%a%5MS8Y &d+(,S\!'JKh N^jVO*etS Q;%r/Ț+N (uJf=uYJ&2͍BO$tQ96F"Af/Da;=nN=3q`pN ]׫wVx:%C^E甈d%_Q2Toʢe5ε6r=3{T' ,֞!W%21sռ 34hn &pxXԫKJrópeTPH^@/>2Zj67^@Mg^^O>$y:B\ #N=7)%5P=F|-ޝ19rMpɷU/(b{Vl\.&΋a-B|]b4]&<20Z5.gO ޘN3#TpJlm10KGbc8ҵ\YGWo&|ck9M#}4<|m"C(_Aosַ@8GJyՖHa-ns_VA@toho> Ti-KRDź0% =xtpHEHk; ~+5 a|eG5yQ;[eDuq:ݲ׆mˏ ܼXz{uGOTOTO估$rNu:mCX-$e _vɤp8ԕy!gPohy=Tum) ).)^H~VfXAr1,l&'Vp xc1qEĦH}_V?K0#J8{okM2wz߷kfS$-4%X6@Z% âAZ^^WV €W ÆIIlXUx3ܪ&! egSo{ιygFX9ݿgt5] RGɔ;۝Z'`-V8d~%VYd@0QbhCG _7xd /.$?OmwyvUv3|a=ݫYX سr"o7f!*>HJ{li>*Q-,FW778+F":KJT /74,yYaÖuaw=<ܿ`H=_$/#CcQ wqyB&*nb޲ܬ ʌH`=b=L?tngs}jYcg<9ds1&N#1 ]M_3j%ۅGƞ!K) ckasI$p]q꩞eznP ı'">F-ҧ8(C㧁Ϩ%1=3za8/@3Y 12y]mp#w)q1djv@ }7;Y =wv15jmN:J ĺ̺(03vN!Rb\N<-ʭGHa.l($qL`bzG@Y (!c? iD )(:IihwHmP6"'YС0 M df ]ue0sk"oa%;.@Z\UCѱT21UI9EA%dEH$NUPJeP!R\[,WDLR-B* Ͳ>瑠lٸۈaU),3!+sJ~1f0Ӥ;_?VpkMa̓&#0E&fcFd3C T:ZFZοRM3F5'q)W!H,uʉ1I%?˛#PxOs&eJi60 19 kmy#Ff%4*n6QclñQ*?2k^WN,/wJ_WF0)޳ o1lÞ1kB{6'z;jmݫXvi̴Po7wXT5ڷ &7^ݿE߾f1F3ݪ?*xG#JvĖ㫝Cc`ł)-i_,f7~SՖvòȯ.3Kƪh }5KbQ z/-yP9vTu{DalSr7wfU.wGyaA~mj ;:qwHfYᬡ@LcTٰ\_ܾ}X6szgYPB9ޱ\.!:C:Ҭ/9c[>?+7D I3#-q.UѠ4F\S޳( wV8m^$'S~ S@4,|v@ߕzhnI%#n#:S=S=S%fj_ȱi̩$&RV@_|b7[vN}@1Zl'GP9}IEpf 2+Oʍ@qša,DwOI(2r92E#1e/ț =X?W4>N.˘[ hb#bZGSo{@Jp<ʧDf_1ΡVHVIaZLMjFs.a6Q7[Ԉ8BO ZaD5/yc-D iO)!E\)Kdc@,}"YLYK+h2kK:, A À4SkSǥk1Yi8^'Ă]X!S||7|fΗ{"6YٜzVa3pDDEOfg專{Z!{š'zW⦅O~q3 W[%q'Øs:jft]Ǜwh<cԫ GU AFMĬ%iBgOQd+rǾH^(I" L 39K 58hk9O)^"2K&P/G?ÙghaQ:sc:~ү꩞꩞꩞꩞꩞꩞꩞5SG~ڑPgo ~EA ^ :>ٖgsҒ{/h{lej_dxxrG?]O/%׋ |~̘'TՒX| {KtUW+vOTՂX1Xl,r+:'^{}O̻wºy}R1J}p {R1VkGܪ1p<7XD{CS r);s޽L/nn8ZMyؑT|{XBI}w*_} F,=Жqv\/C%4kuXA ZW C?bw-1%n\.7H[ci{vb1D#Ic'X øm;3IeՒHa oȼ;0 #9a:?#dߢk2ޠǎÎ˟<.?D LvN;#,i" =l]9PQWжXgoW/RݴԦYg9Hf:;GKRXvqf8RG2sG, r siS꩞꩞quH'J[L[u()a+?Ň0Kc^xȖULa*92=1 f5Ko@,|ELq64_'xDǀ1W/qŇqv+آ8dvS][ED)$aJLr1mOH4hI)0# 瘩)l ,J0+H{/rp@}7cTH #Ĉ]*ͺҳaDޘUm1ʬ0tSeId5.W 1̲X#fڍ;INrkI)wT1_U {L%FYg̱3_)4K94 L)Ef@Hʈ.e ]6g>XcAL~/0=@"~ƕZgIg>#i`3Jm 3#Jʸ"""93CJPfHȬPr<1 uE0GR;eCD`l `*Ijf_Vy_]MKT'$I10g<`AY"XSjNc3ESw" #H|fߔ$*sf2+YA_d(}y:?('J8"~E~ߧj"&fj/Lx 3c_aw`?B?{Y+*ΠAqɓ싔Nc:+ͤe:`K|.:U]G<0A9 #?5vMą-$%RG%ָDž:7|k? /C`zI_b>%q1޲^Z=cV5i:rط8ﹸt=/6+b1^Yl຾";׳nҼG4efXDZ=< xUM]oxx'a:5|Yvǁd^fU{"6 XywË"D2e%Rap}HG(rc;xONp*FC 8[\!><8T]woA4$; }~Sdm}q_:Ed)Bٿ|Ml7Ehk @.dc8nڗ߿C)dkDO4/Aazc2ڨH11p|Xd'E#詞꩞$̉JΚv wX.V!#cˬnnQaio}epF%:$bHsL1ɐƐ}U*\UaE; ; .e}&nGү9f?Sdr(l aj&oDhVB 6#J(*YE *Nas>kʿ+b 9(fYdO6ncc(2s{WD:*)бv!&hiňXøQӛEfJY]l󎇗U=]nvݶ|VHqy=H \>qaEH1am~ob.^d}š`[׼${77Wi.7t ݁~g]$g0"gC" --!l+PndY\ㇿ .\f =ϮyU6# #ơc;C%oTuC}qE[vn{E?^¡687,22~;eXn8ƞd,ɸ9&! tS/@F]]R Y#Ic0!y׬q#}-D]-ID Tgy(ءg, * ͒)_!~0X'ŔQI[ xNXdDj,c~<21ض>}傾voe؆F e,RT#4!̍qG.el˾)Q]CbvP@jX5|UaZpICf̨Hn0J8Ǹ>*Vn qc_ۖF4٧jpgCȍF)esSJl6IikIs1ٻD%XK‘HyfTuYLoHa$O:ĈeRWqˌacgVF9 d8f0h8k3?CUt4MHtql!xo'eeH*nzeFO>&3䉔"X[u6 Ub߆qІ6Jk]\{?Պ$-'1?trz59%f[y51a"kgds\=K"MY4Y\TpaT2rO j DJ)IwΙ8ܵk1))U)ٟ;9Poo50Hl8{ o_/H"KdJ:7kϽx?1fYcHX<~"V7c?_ $ʕOJĄBK3N>Xg f&)Fz2|܇s<:|p 9d}bjEjdˁw28#Gү>?.0v`4ew Mi6]/VT}3'/#Ģ07W CK.FzIQ],)ap0jIIQe > O?E;5xDZ3U ݑ!,j|0:LEp4%\={N7Gwxzy㑋j*{ vYjrÛWk/cPCH^vo)&2c‹RdLt} ;#ȧTU5ӕ,?"Z;Ꜷl@Ω@͞P$YwoEEG[Y.iہM[AjB]45Wǻ<mh` =]~c꽯%D{7,C,yCǺBu}D?<U9T#Y\N1QmW#a&qFQỿp|bUql!䱈]N~ bJ"\2AjͨJr(79Y.o!UE8<׮1F` +6&ӂl^W_ЦCT Y8[OTOTOa x) |;L;Gnh}^x]flk [hƾ)A染<SqSTto4`>oN0qb^fJ!SCc(&>3;&fM1C?/8rLu F rH尝2j,Y"0PMri<(U~آ(K,c*ɔjcK6U&hGa1ͥ3.;_T5#pKgFUѐS19vj-)BX@:co-CH1a,)ߔ䥆=EcYr%-6[,Xس/4˵Lؙq"%)Fq΀Q0 8NUU an>d`$ۏ3:?O븹0zɯگ/7w;Њz[oo:A3gb1Mttu~p8C@TTMwf4";tC1 /! H)j#yn|O1{G% O̧Sy2"'$DҗLʲӜs%ǩ 49%9e8Wk s}zzzzzzzz'y ^@:l/,u,.:YXpq޲[C*6Ix鏀?Ygfc:~FZ;k]&j w_{y~wپ@ ְ2F ֓SayGsĔw[Ʋ=yn,8<"Vy@ƁWbpuՏY=3D;cMI[ H[X/]w`EңC[|'G]ru"i5g[*n"4irY+>~{1=3p&L-DTv.{ kSaG[[9>^-E*TpuYs5NJ@rG'z111v*/bc9C8Z]d}:z$~2=x`_7jT$B r5ZQi-Dhiܸڻ#U9f0F(tW|蒿Z]#}89#NPzgl#f=DNf#[4]_OTOTODcc}$ǑPLOa.yT?peijb!} 81`Ss-a}wjJ*R,2ƀnp>FFيG!goTPt! ^q*d_$:Sa6EJ&Bv B1lV yn:@H>"Fpe P/쉓lo0{Ա#dșiǡlDLxx<֧3,df'ViH쭧{ ŪZ;)I sYnXvwKڷ؏JWQݛз,Ϯ{`s,.^hng-cu5vbccߧ/FƮ5 9ily+X'wqo~/`lw\T5mitkz[J:-j,/'Mlri]1lBܿ!h1=))]߳ږ8ksm>o_r莰ذ dZ4ҷǼ8Ҕx_r{\ܰ/͸]xڱc{BP$#$@m78iǀV lwd ~[?pd bw/lb:さL&G8v4uñ>?S=S=՟_ fFBkqĶG s+b tJja0%ݨZ?] Hf^+#cT1aE$):)b,U704#X`W)^C#T5QYQ$$c1_/NqCZG7iE h)b*l#ۧTCI #V8}RkS^[uSd3~ !0 MYK>'C$3 v)"FR;U)uZbߣ&qaWxaWL_iMFBw@ 0dj*$X1SJU͊svfHlΎ1{ZLls _m'R̀L9aL2R`xWC9%vl;SS20%cГ63RL1o-I!qZ3*jfR5?ODKa])fqtbD*yl l5Ac_JOpb̦MU>$<&vt}r)L9fR$9zt5VHQ-8 tw_yߤo{q7y??OV F'0a1"ibcq_B=%bk#a#.vFҙJޘB6bs2~L YMdg0nMcL翈 O^n2'M:#q+"WHB"f{x`>rG<`\`cbse[cN.!ph  TdHZ`삡KWT ob7_` Ua@([qoQsU 46 jx޽ĬPe0h{*z/BI7{qsĔx<v;lKX])", ' ^H$a1RU5Lr)%#;Y*b [=Z+$&z'UaXX8|Y^W~(NG5zdQ6-}PxN 큮lV0%v,3xT,]I}LRPkX/!˗[X[c0f@lFL44KO兺 zݎf bVWkpծV&NF KR1P5|Qs4`c`c2k2k A{6$bYW7T-3bh.C7k+:@fBwm7ZVŤDUUX X-I[]Oߵ4%%JEV- 0H ak2UBzkl, hB/.+ĭQ[]ہR/.{sT2Ӄl#݊j:3g݀8./<ƭ60׋k["u_{o+Ky}dwxc3#NKUzQD !B_a $`tSjʊ̌{ gb;f/:hDȈkn1`c((+aKL1IoYzBTgcϝ;5Qe0޶„!^ZklÕk*3æ+rXޕ[n>'[2L%%},¸Z^r,!*ks՝T:թrYc&k [aX3)kIP˯eF.Sq%DM\jCsd軙4I4Ҡt$%5 8I\ڢ{E@.;- }hLa:`*MFRJF<`f18]VDf4neœSTz‹Q! l+ ;rTisSwTI13mg^[&ԠjJ* dęPƒIJؙ5{]%-PID*l^('ޔiΐDeV 1jbhH)&FsYu%EJbȕĆ{N\dR1b!mNb.@|'+[QR$)!MR9I3vT)c/-K8b̒)u!.Za~m :O%H:ce*_q9%4G -4$x Qō1{DzmzGle}{<~BÇT ,x'?_Sda ݆ڊ;FPh›FBU2o=)bbeXu] {͓/COUiLU F9s`!=͊nP)̈j3%X{Rы{~G5nY5Ԕ |hZC]'ïO,׏0x7iEZힳ{9_SxJͅ5Z|Xoɷ0&rq!&o=O{bj!ўS_Mdy^Vݶ;-00>@5K\ҀH}w8vXYe~آr2F}U *hwYyQV7 !Y?[n_>cZ;DzP7Ѳ}¹j̢ZA%2t [9_/F%Bg5XF2ԌqDU K+6nwhc8_^MOuSoJEC<4"֤ I鍠Ai:'rEbijG1tDLҚZoigEY )sJVF#Bb~IS/Ĕc<5i%*a 1RhclZ wp[M#oh!hfD@b$2eMI)?]'>>M\_BUw_1v;U}??G{g?Ӷ+s(^J#;5,Zvb ;qj6TJT\79HR%W64HT eߔ> _N0S U='7l Ej+noh;w}OIVK2|b|/~L-cŃ[n[^o^1ƞE|UazbP}uCl[ԲaL+F^Sn;$ViVWnV~ݻiV-#yN{# zh~~5*g UQHˊ5]1u ;w7{OUaDUTF3P),v~ɥ'Y9 q)Y䪭mlnY.kBMWU~+/ES 3y4- BWc`#Je8%eA^o^2DMՊ6ˇf2_cLoS4PU 5r܍]!  0{uVǪ6GyUK$*}!E7+czA0UMe[rR1Xyp)hpU#ﶤ02;yL:vPD4(Ozx6h:d L(a 9b+?H۱<_!|*K%SS\b&74YV#>gRE{STqL;Ő* gJ*\P6a+ðY/K\ϐIÞalWcTŲR F" [F+->&a2õeNGRĘGCa<){yW)9z@yDyқUª >-MGIEڢ">I%͠ P5I@(f9x;,>srIZx~ Aϲ}4)JEJH#(e*%RRYQRbHbY"iXQ%}8`gC+Κ!+K̵je"aQzd VG~r[qHujٿf~jN( 2_"ӉNJN bx8d4#rAQ@#LJfryo曨ŐZrmR$" )?r/IphI=(m:Erd=os΄ɸ{'S|POAiQ>9 OP,K{V<]yW6zG?*:_~Ū,-޹iKjgyy51>>w5ZRЩu[rޢ Z/YVni+vS_|O>{b $Z?(j)?;?ŵ??eH◟/>嫯$}Gw@L)Dt0XFKN8, !wVp^lJϛF&>&9SIw As[ {x=J#Loh ]g6vN 4eCs!L`5ۛgq {21ICry!qq{}mt~?w[P|PfZ/)!rbP[@9 b6w޼]oQWEuϾzA?~٣ 鸻[ԐI.bIfGזvlonE/ " !`gCWDx! aĈ1/*wTk]eSo &vÎ~ҬP%k#k3zdR8v78uǟr1w>r/t[y;ar ޟ+({_{lx+Ϟa[,ߺ+q$YC;bbö9ImPb͊<jXTPݿnܑY4$b匑Dc]=C'd5U[N9enc{-eբYC=o5FZ1IRQ" ­U pB'}Kc*ZbaK./m X\v|dуT:թNuI3l\C&w֐g *3=1mܴ8bǁO M) , Gi[ aߛʻP)Rd.W3] 3 ǃgPVTfM(,I)Ivyq`$-c,DҼh!30,h Bx!=idyU an&H[ޱ8 (? 9vD!9*(~FJ\2nu[.ʠI!<~$J>ZϋAh~Yc'BsqFLG(M0GC$b|Z@8c"61@bkJCtWˆNIXJ9#3+̗Qk,*È9E cb/>cIQRfsPʼ-8\Ӑ25FA*Vf*VLh IJ8M y|Hoi J^LMّGN%~:'?twě7_Q~_ɑٸ;4u8B̮u  &[~_=ϸX}g/suicuj%}kt~Ǡlq`>Uܫjlν' xvwb80 ! ,΄@qԮogpth9Ҷ59Lf|C [0̧~7\b̜RgmΓ) bTxMjU)1y./ʸأ$MVYn|1Ǝ3c *MA*9>(19VO;$~?2uoޏ~'}\;>CBgE>֙>r67e`Ϯ^lqFPTiף6lp1C\~òώVBmۗJ^Wh4.$lN=m09\T!ָ%ق /V\?{>W3ARDМ/-"]9^CgES&%bq_4c cTE7uE"r؜Z}?`&[mmL}FMQ%C%!yR{FY]ma%8;Crٻ]4,W@aUJĄā0rTuݫz+MMa`-Uƕ d[RHrsBVF*@L/I`*2pmk4*`]EŸW̪RqXAǾP>k80 _^lMD7XffW SNĜH~ zy, *1*l"h`6'֩NuSEy޼&ETKygU%H?&ύD6a,`EL wVhȁ8`^V @&D_&U]ʪ wpKa)HAX S.,fw@YdO,4PNUh 9<)ll[!eVHGY-A#Is0w&-. " 0lIsiJqS-')IU 1FKdAa֑\Jw LJ᰽jo 5"%8.*5h]KFV2%` y2ҤQc5Y@J:ȝ@%QҳN%1*U(ҁ. Z>PY+a &lj(=?+,͌)Xc_UaF1Ǘ ȔNQFFFAdL-ևo >uR@L$RpbM#()5ܡ41'QQS59cFߎ㚘> i#U}F cbn,ir>Ð>{PBH욛+ȉnw8U-hz] fU~j۾㳯^\]Bo4X6!3F!R%'5v[rɻ<alY"Ɓ(`{tGGwhKVETakGK/_>UW_p_/َ[I׈Y~XL̐ ).b3H50Y"盯,x,*cbkMY a,?8~ɭ^P)77x+ivC!wX2]:ݫސEܚ1lnw>}FʑKgY-gIО5ZG[P2n 70e`մ؆=CəC%Z:˻h%Ǐ#qsi kӐ% IDAT5_}byF!z/MZ`41lIc|Ae&iMZZDl9*kRJ|$ݞj US]%tdv)j o^ Sf`V=v+-m%7]WPWThcЕDmn&00_Sbuo^B.V$7Mu}F9Ym.ӐxM[^owC uf1VVg3' _פ xS5-.9ْ5UePɣt=O, t-]hŒ --[pa2}GW${a]1)TvF[Ce[yؕmh&4XettQ[셰cMdcMcg@YQJN$e0G4zOK!(WcO!}H FȘ&"cٌJ)ͱ p}" eR Z)&5q5fg2ST~G#RyV ]0uJ2L,iRdz,{әrblIN#X\v\__eB&g,V(KZ||Fe,L >qG[ח4Z~'wu-'}]3=;[R5s}ypɟf j>m3x#)T:թNuST:թNuSo`F:3~hX_iӧ{͆/zn|]t{3ZUoKIZ^HRV]e.k&jٍ./Y\.pcm`}sa;ԫ헟O%w/Ϲd[/2, k= {&(albizAAvÂj?+ޏ^0lZ\Aê՚ݕwWU6AztP|[-ł=g\;$ߓ+fc?aSNv[6k<ְ\I.S%*tSYRHQ7yc0cP4ż0KYBVFFMiYQ-ePVI6 ^QkʱdI)DzoZQ%b hrT.CדSO21FXH)$U̮hq:ƒž SG@[U4VL=U`ZMHe)Bnk,UdEj{{K~JnoeE4nWeZUrZb|iV-g:C ~ؒdlR54lȅ\Uèl-&+eR1@]_6T:թެ͆*khEّVcf|&FZbn[8غX|$D]UʒL[amJҏ Br]WT%\;G#iXe+/~ğ&tIaFB25I9bbT RHg@դ1!`-$E ƄL◡S$ꬔP6$ŌU%%}SI*@YgrJ .4ˮT 2iBpKZILCQaj;['G/IT"/Il焱B\ t,Hc;KTIMn1KUw9DraldQQf%"*R>Z#)xҨfك܎ϲEHU"Ô( 3iQEU10O<(a-d`bqr*UU_q0stƵ0&Vr❔16DT~*gIYQĿs }fNbO5'Bl[>}@bV~Uלm?MA8_r~\{_=!HsRp[b֞_?3hz"n-qA)1D;U;ԫ5b 1j3^?&J{vA 5ܾውIw=ȋ%&~ڑ܂77hY] >;rFӕ^󿒗TDUfeQ?anQdaJm,PpU:r~y1?hi؏B94)T2PC,h*a;z9ia`ߢT@Lyv=еcwN9E2fRb<]Q/NCrb;\w bnjF)Hili ~u=$@qD1@0!&Ӽ֐pLJK =7/jgMiER]\>wsR~ rβ<1\/QJ&ji.X8FIMG~/_iܲȍ!KZgxx )jBaZ%i*t:թNunonqc+l$L lJN䡇'v{ljT1*Cf{+s8͢>dVBBI(LÈ[hcH8Q-Ą~mg2hҨ}[7 Y+bB)ң&f Z*g|iܓE ; TJoUu[$FUSR/M&#8XN `!7G>ZalT ;?9N*gϟh٦AVϏŔ *1(I=xN@+LV"S B*5ʸA9ch+iLb9XL}m"㏨Q֠^pʢK{─!>E^xDNDnY1 =MvDzaZh'SX?QNI{f95U8~nTeP()&GKcDbkD/,r4椊GlDҩLYD#+ N% yr?t3Bsh1PjzIM1u#!%LJ|M'K&-83 S5@`"#~ddl7VJqsVD%cq}+G?$Du?2Nr/j%fی `X<[4KYkhU¹|Dz$> >dm JՉ.5Κ^V(sR7 ڨ%@gy哏Hn>jWCO+1bqtM%iPɒ1F#0Xb7}g/YDo?@x$C ׋ eM3أ{)FE{OzF@mO>?[\sW_pB.B{vƗ_~_|3_"6sesF[ݳ^ޢ w⋯]Iӕ'_=_+#vIznnm,ڱ+5׬V+87R//ЭF]ELaiqF&+ {aޱ3޺'Gl^)ܔ3|ƣPVVvnUAs՞K~sIwk}s`}*qEx,]M<7O_ʱs7 azܠbI=FU>&7TD 8SQ%2#MaӸ!gC#!xRy T"D<{X[LMƵܜt1#6Zvhrؖ^̩ IiqhRf,8VRTƒ, a1RŞ}gNH<~8ơ'Zqݒ&U lh"KҰ^ʃ&w+\(c^C[FU%[&Fq )*Γ=Paɹ>Dr u1iL i$w{b͚T:ߔ D6f=8-n]}w˸A&@Qcbj*kHx}:}ϪmvDFia#@ڐee^H<81\ CCƧqnv1$̖i~b.~0Q2'M0U _~L2.ґ"PXƠepʛH(f6`&]q`*/>~9g&R8dTYG4 1Vuq *Ta'Qt^ H/GL"1Y:_l$lVgQ#bI,I:Cª}FL~h71v &Wuҳf֐ bfSc@DŽAΙ!LS37JC9m  zF@lA<tA}@\={eIih䎰Jx[X'w?)b+myO3U o^ h45ye1w/-*E(_}#mTMIrgU;8̦s\7dTFBJ V8c%"UQ%J) *2!$r+jqʲϐh2.Bfta5gR27+5 W^]bs4R1dxqbd؀Fܲ&}UUa@*扙3@H ̩,75_7.:dȕ7$H|q[ #GM (d0y( 0b|&$+&B ܔmcboyx)7.RWZ2-J`:nGG?KSS@+2yZ3POGZs^RT6G MLMI JFyMrSc1ņ3T}Oy' f],W13TX@qF~+Ux:f䜅Wul#HEc1 uD|6Ao|MHk $0ˎ߬QNuST:թNuST:0uJqHF?ej ESwNvcgwW\-l˛=k,[n^ `}]͎Ͽ|Eq[o[9JU,vg/p]L.ψ%wיּ8op~Z >`TƬMs~X. Mb{,ky"֖aXF6|-mLyw=DZViݏH!`ϠDgk]|K|Fyg1`9{,/ކw0eQ.%r}~V8Egm*1-4m{11X{9Pe?3=Zvr`kslV5'rYuӈ32aԮ/;jŏ.tnÖM%@m*H6FWwȐ0*r)j5Àz[6O嫍-–{ ɪcbX컞-iQ!cfu!$0B5M0}]z)A:t8ci$_V~' W-cv[L-9KʙS?EkPأQ\6EST:թuJ+DvCʙPэ1Y!< P5/7$~YYgRk!JZHAOP$CUVÝ&-ߛE o @JrcHOn-nۑc<0HBTc42Ȧ 4i̲3\2S _Xb%W%cCbrY2NTC^vC[H=&yQIy\ JBL7YUJf2q*@̐"!Gb5a-le) 8ulE'XLP!g|-1g8RLy6*ѾI瀔jni\_ 1N4 oO!0Z;>x`|Ԅ<ןl4kSƱ"g?:+o;n_tn]L4z{̫gănH>(Um@zmy19ƚhU$}7t7Oea5IE8ΘJ-|p_ R4U8(p%Vbݎ2X2&vFSK~t'Nn6G8>!b[fk~d٧٫/0㙇wGr&>ÉzM_. du}m 8@.Qzs9L U"CB΁xf2BѾ~ٽߒ3?Qc`ݐS~DhB4Đ \^~!5X"X -}`GՆO?'M5mH' s9nZ/e-%mH8S8-T%@=l4ey"td܀zr"dñ빞빞_ᤓ纹`[J0,W۴4M7x5|B ӓΫ)3ffr7m U9dȉ:0sv4{XՃJ@%KM@66T'Y2M:KFn5U+FL D1eـtM@iZ=ל!ʜ]AӛfjheR AKIj,s]3  2c7"--TuF\<$'M'JJX`m,4J%;]MoMH Ūo @H d4 oDfpz>z"SL,"|ϒ"u8$AHɉiȯt=k(% zu[מ:>KJrxvm0{έU b,eHLBbŪ|@Q}?A܇}S,C1F!8EsSj,?q>yo攣LJb]*/.䙤!$5"] REԸ8ܼx6{r'f6P/0{Jf`RmfPaE.^' pd)JcR=ϊH45SD=Z6i0}]`HT8u:6-m/&&}!Wgn2ضXQ_di)~!3Pݣ uNA9OT[~MyV۶gyo;^HRW>vs<^ݾdȞr|;!kw cp&~Zj{ <|]Bmax`zm:۷a翠XC =xF{> 3S wwt^R$S̔T'aekoQIJ:L}9!ۆt4ܓҬrq"puR@Lnn+ɵiH@|8Ñ֯V)H4=R#OO?<`OYo%s7o)3'[qS74ְ{q7;K^0y~H&ķH'/"L\B Y{lwK{s=XA=n6z c]Ԥڷe|׶{<ڐTT-^ o5L#D3 M:JmDl!l.AۢV$::l3Mzժ 64e9i\b=tDœ\\\j%;i-Z-Cfjڬ*CYbJӴ/5|V/R1H1:wTaP)U6H!<|b]A\d4_2DWYJ x=CZk2uT0'Kx+FlH=7H :L)Ĵ_qe)1!&N0^W_ہq1O)`Aq" va0 `\DF3kAaaDJW b80D@%Ib)Q"%1W`TAr?^\ό2`Q|]/粳/P6ƵJ6x,qSk8(?ajfWܽv9SR\ I@YJQ_FרFYT9S]7ꌓQ˒} ӊH,^(EY,3h>NJgb邌nNg>t5O з7%vxhCfkhwܽR6͋p3]t-$'^׬8'><>q ToU] %aD2&d]e%?ЧfKw/+*f"rd:OKdb nsG^/>G޾|8?I}%SmU^0L] ׍vWz-Ù&NxԛĮ}amnkzE_tǷ[LyZv|ېl>nYA,ux f TmAԁVcw b`<(Qwbq27 b'錄=w8nkzl p Yc-`:7Oz='/XQWxqqlW[4v?ŭ*'Nqx #<@^-;y2Ho_D;jNF4v ݣέ1;t <1'?,}xr)Luwl"T1,_-y<hop4Ə+lQfĜ)bI)1k2S}7X&DYJ}idLd$g5\O#y b)rBBM2123y$HLZx6u3$kRLu]6f,bQx:Ʀ1-JtJI.cp]it!hPܜ53R ˎ=)J<8Vlp:.J.j"k(UA^g)Xm)b)z8P)-dx>"5=jX*a$,vb)1f^2'LLeTUN.5Ffy&~x1AZ`=eK3sx6^&eFG T%G¤se}-4q 8ʩ+bXYp ̆ѥ.g+g18ֿ^)i); r^!JDX` tIWtj\~elfYjY_\y0Yf|_{fU \2#振əh[k]߬#Hk/C9eL\X\*#ifKKh({dJ@+0<_F`1Enc)wKm!bNgVONxH+?W\;O,Ut} ʲpa 6XEkth(YڿhC RєI28XqL0J' 81'_9Ǐ7 pFmyx ۲֋FuNL>ǼErG} m>yz%&O4pOwi8ks<ʜy!I?=a|CJ;ud E]Ĺe}L`2QBm+\YR1[wئe8SmHe iM}0wy|Gm4PLBG(~B8yݟ8TY~Kl"y.p au7C)ɤqcݍ߃:|AE`v/5~Xu֫6$nFv`zeMNp8gS&p$==p^j u 㑯 OK> t+P*Kk(kbrP~ba*T#)&B C{\\漏eg.mIX+H&MOzU1Ń/P7_|rxwI Q7J*u u'8CROBZ<&),!LtmK@'9%JKRS.b!BJλޚӈXhFNՏ6gIĨIVֹL@q mc,83A]Ԉ,Pbe"YcnЊbga(Brre)UIYc,7 ®&%]XD(j{LS=?t=^R@Rn)θ3 uq.낦W%ֻ2tRi]]Bpg*?l+K({U9G)EYkz΅""*iq58*yjpWfON SHTi"alCuoDt/2fyH)B5ն uY̗ДsML ǒH8tB1p\ gFdtR}t@AM1L8fLc". 3c.5V姕uYtqwy~]]}?Xjj gԐE=f(5I.1JN}?l0! 8٢@踀2ƴ˵);|t5 k~*P'嚐fإ=,3FDб,/1\眖qTz_ӯ빞빞빞빞빞빞빞߄JQH9>:EV\p)3Gg݄e3ܮU@~{Ɂ<(3z^ }6-b,1ƅ1M)IS5_V Zr E 8H+NpzlG}k ^u]Bmif)p:>7/K'RoJ r0bȕ kt8Qwiw#8{%eƸ'=B^ܚfm`c…E@5J-RmfeCʄ'Jغ(DL!˃c5PJWzubI!JV(nIbJp1„Vmٖs/F\\@U4bR4;4%MKS?B qJM1SYb[q1&89|c1riD#""qqS:w1j0[G| v(iBRP#àT?_(0nV$?(1!)Swld[P_c,:nKe5-]\2))B.ɷPWDe.]7ՁV(\Xu3%TbFH.fbN~ϗ,*/+/f@ϳ!4 Y(h9/<\Yasc4 T:tLLy>R$v^dz~@\ʕta)FY^b0{>?i1J|ӣ-WTBPpD2P!I֋̩^)[UHF#^,ٌ8Ťc4oNfDje`̅16=niX"k0 3YGl+츏L,m\Y'3;Žk&&Im׏UYjӥ ;gr1u/ʈ[W(9Pgg[}k' k=w_G&=plϾx='i&0ܿ{//oӷBf拟/' MA(LŴ>+o{ݟy} g<%G;=Fg42FOHOW#3wtz7_kjT"du>D~7 |U^Sa@66v5́o@113TH-$lcqQÙIu 4RFp+Y[#ɑӞ0@+=ljt>L1TIE+,bO31< -ct5a:l:Kʑ"Ü1(oy:qQ9!Vጝu])OwQi01=#=e}B2p♲%W`S#iO|1Vw;b:k6(#זb%R*2Jq[]}l>68.:oSXS9`c)i;4P NStnׯKn_Œn\\\z,8E|0 yNٕ#A#b[VGݤJ^ihC SW&'LLq( 7LÁ0Mwk"9BEd8ÔB=jf\ئu'g1G f0b<2 ~"PO43lk: fٸ*yn<]Cvalu18,}G;拴'9A+7t|Oz W[;>ye+R]6>cп|W_0ozv!,@O_rW?R$'޳2뾦4 wϫ_ цlw7aςYsjk'ܿ7ۯW?+OO6iĢO@o\.nj F-R. 0Xo1%'Ĺ&539MPbN{q\&03"B=MWXhtªYI9 0+ec4۵ˀC1bIez7fŴW [:g (Ӂo;G: #'e~˟{HH8}"z챶'bZL%f\I/CZ0Mtkmmۮp磂YM@ů'#c8/s)> : ܼۛmϊ5!TWCD b\e#5]CJ B\L=D0fI"NCYR)lH$6ƹ3S8CƉ?빞빞/WIbLtAUJ^X͒!G}0kTuV̜ @I9̄.iHjRNlqMZ&sʒ(ߊ(bJ!\3 C$aVea|l=FGQT]\Yd bHPߒ#acg~,iA3a])F͊.=.fZJ1nSU|19I] #q%٭8YA_PŨy|~+hmүJ #@ y6Gv~dN9ܫqMMrݪ.ߟFcLW%Nl}8w2{] Wsbh5T_~[O?!N?~wնW8#9Ke| mH1+HA t勆݆vuHӇċ^X5!L'$J xfwX(1{ J+c %V1 Lۭq1FRJaNPޱ]y A׶ cd:u% [rq'8p>9<)}[ (dn?Ul@E,$G랦kS„3"[mS}M-dyt Ti$m*9KoXCq:vSi`c1Nfxj޼&8?q#"4h9и:a{@"~1l7I )dvL[bCe9ʀ5BxpWc8 كȺU8} Xz&G8vJ)13DIa٬ itۤL3[fW@]xbh^4P$jQ8 H\IjQ%דwXR5s"D brGJy8ؚ4'Ԥ*sG(bFQME2R9T.(N#v!B"Y,A9a_;b UWJYZR*`w>yVY|"lge#] (s(uqE4u-H9gY% hRN4")iW0k?RP%MYBʹg"i''G@k.i2UIPe $\dd9J1d~BȤ*r.3kpVS4m!U 33Lʚdg`e@-2HaF;ԩR+T|\##eR9WYzIQBϠ!6f{RV{@0^hY*H:M]J|jY¯Fef2c砠O=c9יlTV5siT"wͬ!B /;B#lzEv/w?;Ckw헟c/iΑ)lOG?x;Xh7=}e6=g7Fĺ[b՗_;1S_rNAՊ V|/o^uPR!ה7 ` ~R#f164UJLt02F1zXw#8.t17_J&0x\Z!MX ÙeKFlĶ Y8r:=פJK Gi F@!p]d6u4nK0H0mx8p ;"0>2z7b12Q¨7uZK^Xu`!i^0ei,@8jbs=s=s%tL.֓.MMJ1Cye)Vi_I '!T3SRxǷ0FBj̰ǯztr:GNv5ʽaŭ,Ϋ0q>NFWh cpq̺p3Z[kiR\q~(u-΀=&I 7[lYr6/.",IL#)MDFJEUc$)#UF_R$Fep,%*+gR8c!@@cYX/Jxo7 r*@I)* .:S@c2ck}\Ѵk5~>FI k=Ě%1Ӱƨ󂻶]Wq^\eq#)V#lTFhIE㎍1xgpuHI5MF%xb*"D<1$ZI弮͹&sa|”%l\MHA'J弰?)Eɨo>(! XA4Enf\̴Y S QТV^yȉYaTilU՟R5MD{~[B%OY;H!-}Jv+F=[)M^1r)$InVA3X'+>/T @udaXg+@RȮI#f;YWcN0<*g220fa,(q=|?3s\=%!՟iZ\Y_\c(¬sc0W챿&rxNzzzzzzzzwXWu5o8pvh?]Yq!p~,ߒpkO0oq8-v늺=oVey^t4^pmϪмPxsO+xH~a n>76/^~raXի0)*jL<V S3[os&nv47)clo683ϔÙn^v\BD 7ЬtG)LwJ<'[_ڽg8I8o01f:!Hx/p 1&6QpE&rukV=MӐxD깹fC<>ɄdR!UԺ!yo=s=s(׶k8!eUM*1Z Z L):7S)|jŒHH5IMJM1oc4 |[MFe N7s %%BeR 1(s7z i[lHiۊbqPsCDpb2om5;1B)00H-j;G\w{{sJ1+ d.S(2{|$@cUe䈲@W}g+ Y &KrRn]Ω\Kdž]B) 7{وpI$UR đXJPV؋ )BL,Kr1 %%rRI:E2L($rHb-%#9QڋQ)59UDcՏ`WC4Q0u„5&.ҌRII.ꡒRUb]5˼N,D5dPR$忲ߨ~o tYSfJ.45`F!SD("wtSJj\|2klϒ]AυTk:nT6;\_J?~ͫ.1DNՆ0_q&ڛ;\a5b 9xU}QLo WxY#9V^@`tdU^gΒɠUy=Dsz\!%X&imIxm%@2Zm(i-{ -,֛yVP&] cŢ2 g/{I6[}_ORמsU ,^O䕒\2V5.%%ӮZ[jyB((A6\0V'V F^5kZn(ԔQyrX?VbRN@JjΥLAVk_3m*qSnPdg疫%Ǡ|O-LeU 1\̤${vi}+.Ujo/:_}H_6h1vCpfy-J@gm4q|8ˊ@5y!|bBs0B^S%_?N1p#~Wtx\i۪tVtpaX%Oa z:O\^_>a:uîyS<=|G#@8?L?\`]&%<2\\O1p˱$ULIN1B$?̞Ȕ4A{i҆:;1fO El_,>OwacGR`@=cdI9v4pJ9t.| lN&-#xwPVw7۷1wG]ɏ 8!b ^Fi_=\C4RazM=sH(6s9_hf?3N#6xdw\<;]߰uyf {.;LaY1MB-#ٌӲbaÆ ~m0KܒW'1ɍR-@6QHw~\sR5eþ!n[/Vx&JȤ,W<91Oh:9R&P, ǕĔ}O7/ơBīy-PB'ZcuSFqHk՚Qj@L,GL#&J'MIr$eZU$'TBJHj@tNZWNJ U2屉"N[&4րR8I0p ITr0QdUȔ]1%Ϣܷ$/ FD:%VCJۘ1bJvf?8L)ry" r`wb"$Ǥʔ2U])42,*!bUL(QaL^flt(LgD}Cl9.)IŠYHEiCq;.5?Ն Zǵd?l IDATZyUVP\ %7!\4@BX|"kdZ9,cGgY/BYVXbº[VBhT+S;k˛HkZ C%ϳe1疅F!bi1iS"PU +{ͩ_e$+5j'(ū")!? mK-&"ۤi ,oWʝ}+ŬFTs]^@K<WuAWmXH/(Nv2iJ O%Wnhӄ ]R(\ˎ=ݥ<Fϙp޿_`p =H:yy|zfiOx`_YC?0='v(kR HUs OLNWؑHw;>]5C-;1|ҟډ.!fxİoP|$Gr+rh3:U9DR 93{|qdwuE?BHP$ݝz`lI1N3݀-p~8<WT/o#鞬.8dβE'M#1 dZ\ \wCwO>cՀbe 9r7*bLG\9&8k.ss.=C/ ߣg:y95;沲@ s"y$0OѪAQ4֪z.%(vY+TsN w}$2ʈj*6aر?H֕v8&aB?Sx$HZnÆ 60F$9&t2-t%kviOhg#z#y*گg(c6Ru=+va&Vi3ÞrXD KCsSA\T!9m#q yOAw4V&bƕUjO5v1jTuVX B|,Q}h֑X~D-: .%'>3)zPH@2L P9''brqh2s 6)OJjZXI.-X+b$|,E@*.k+2v%&:QJ9 O\Msdܖ*aT'IS& em1Nηz[jIb@\Z#%r!|%$ *ZwLR@{CkH%uKʅH i!/ڡ̭ gBT& UK:z}-jp2֯O^xhu}廿~e[TR+Y{kw%SSbq(T^M!5S^QB`|JkjK{l\뱫u<7+?#rΠdߗkGUO%ܹGS {B yVXBZQJ\EE͔jiTlG7lذaÆ 6lذaÆ 6EXV:1s}1p? W{[~|6@f"TgtC+>awOGd@'?ݻw>nEp?cw\pu̳֠r^* 7ѐ.?\w0`ZNV:y<k 5`C əǻ}x÷Z7\\Q}kjt_J:G#vAVNg4cF|*qq}5zZCNyLvPB1%ygw9c&KaX:+aF@~WO3uRqz~C75 z*@8jỲ5= )g WO[;gtR 'RݑlEGg:VlDN BSWF;Y=2'y|DbsӮm1)ab.K9Lԩ1o+Xy:26DjȦ[Qt()5cs0x|'}M'R39p<{n>´ٯ6lذk:ݘ3MqܗJszNǙ'nYUV&'G-%6 P߾ø m560#1Lt+naÆ%bP9Is$K7 vg4 M6+uEԲ^9$R($.qp3~[rwXZl3*2}2!" ZG( LҬ4YԿ)f<%1hrK2Nl.Ui$[#HIwB0TϷKN3ܟ\j1xT$ZxW*MS]LDc\nJ94)ł([-RGD(eeZܪZV g1Ĕ[$MeJ66ڐSHTT?"&Q-P~KIb<CQIK 7EUYUaf"lO〱[Ov((OskRJu$PXbq3J]eMNP}‹Y$ j',_uZ*_GΪ(:R4Ԟr#Ik]~,9kZq>Fb+zn٩2`Ê}DQ[sI«^lP?GT홅V,5Qzq8hT&9>\sakaI C d ܨ=Q8v;ٷ,'v=WF=EO1JU_Hf$9GZ ]y&v\^r*}d.J%6ʱ]|:; <+IH!=x|tvohyz"s|2bWZ[^N׏)d\Ð3nҴ~Y*Z޳fǫ.EgRu)eaECP#,P#zVoKR|F6PUDӂ)c/߫0֓ܚ^Ǯe ebN;z}Ւ|,̝yfsym|xTz{aRfmymPT5hE[2f3Y ^>v=ע.Wb\09>{–n7`{n.ΰ/7л7|{x-($Kwm!pOlt<=:8=3.<}ǮM{7p8\aJ0g /t'MKa%([x,YIsśK8ȾTT#:%Þ||4${۽i)9sVRĐO#qI}bgҎB8 َN;T;830zx$>>B\~*Ҕۯr*}ٿLW<M59<&Z1`+T_PmI+2(ZD!z{ ce_:ai v &6뢒ⶂE -HXBOgzmʤX>Xlo1{ U >X#I",  g:ga*/yY1Iq)Q)|Ui d m f<1L<{(4M&sTYJEԒIHJ5Ŗ;j%IWE;l)F&#[0 R?KPYiX$B& p aq O%gI4r21֢Ήq&ĸ@^gt:*d*AzMgR3Li{[BM!IDIE?=V(LWDVKnJ 0)T^xst!K"BnY+4A/ɑ29B@4>C!7IIJRy5&<,i%dYsRH$H[@*DmaAtQŅ&U8$H)}kQ)VǺlk۬{+1|j یdI:A3~#ןݟm)lPo~2C>e?&qpJ{>mb:ɅWWq͞_׮]?Os!`Վן_s+2&w0aoz J#3IItqC]V9AU1^)n mئ`FPɜ2Qڬ_˄3Fh9 $2)D^,(vVQH S_[ɕz\hQv5r\mX)?_uw,jkulwE㥪%c$ VGTpĦ VGDirNom[ϫRÏBtV1僾}w~Hoo(&^^A:02z3o~LJbo=ƙw$oWd1Ή0} Z48=jD~zRI),"CYKK[n&(wWX5IqJF'бxa|'vqy}IR2_7xf:ƺ=~m\hTt4#ugY[?\c npÞI?L>ߊ2%[ɊX|^9qeP߽蝐jկѦ'Х4?N'}!\Ϡ; {Yq ]R~ p~<HNۛrtxx/063O>aŒ`cWN -8qW=|OOט'[PR<Èv3籐H(Y90=1Fٟ Lމl1#ݷhsGs??mv؋[(qKHg6lذa?Z !3=N8p41=pbzi%P)' @n)0=ه4{ҢOܘ=YkbMd1HWEQhq+l6i/ %jrTY،s(]l2ɀ"mҭbZiUܧ<eڔVIJJj %mT˞QIY,( ȉfUmS$3}#Rb%ޖ n&ɏ=('L(*!d!GE1QIlF\&=xQUՌHit=djkFHde6M{0h;.%"kƐ_jK7a$ZÉHׯ';L9FaN#W͘Dt&⇇;&쫷)Xrϱ` v %Dgl]I"|>3O(t qaؼx~Lg!T%R\/0E%f 3)dՔAFpZ(qyVIDATt0/VnG<=FfvQ-TCO@"KPJxqaVJ0rt|Òĺvo 3* 1ΠE Δ7|r~P<=<k~=qNLHg-4O^%s}%*;=]sTƇ=@ ՙZR}b{[!#%ec!'Vڔb zf9)D+M$c$.NCҘ^2jMb >3LL0+YX ؎ubJ0JR`(JeJ;ʉEł6t$%?jmSyjYusDAQ//Q˳K 9T߷]T"fkmHYcǢȥEB؛QdO颴YoUHC˺yBIbZ+g*u3R%;F)RiيYِ <Q;djQ鹲gm[lg5JeX}QZRQrS ~\lk[VqH]~Z8eZz?{@zi;ꭵls;/:)g|ҼTl-pիO/0%[,S%a/>%=䢫sb3&kaķݯ|&J)'r%Ewi)q$ r\p0K'NŖ2?9?=puy뛛rd"{S&ƨJT?O5:˶99(&/LJÄp7bFcÆ ~)l 'YfkqCe,1Y4J2iw+LQZe% r!$F! rKSʚ A$/wӉU<7HB%Po* BiɲG6E`TZ3fJ)/bh_s eJKfC)(T@,dͪŨiPY+Nede)'s"F$du':G]K>m謰Z[ h-P3[ g0I34ui턘,>%L(h`e"R&@h!CL 7Nan#ce $[le VUф;`JDF۽ѦhETy,;'L(2 nSTZU˗r?4:i|Ol!XF~ Lex=],H>=h׆֜YUo舵ilhA$+&Jʧ*f2h6g,;k,מZoK.S fq1 !kkxA6ZKp gT˘AVo XĖUvXbĜr4*KẢʉy hk,9zɤ3?`-9Db{wU{?|jM?~ҦBY<(5FB3"FiC`$XSޡ4Bp{,kGRXa%i$*Jn3m!u)GV"ňZm}b:I9Id]~cLL* _V͢ÄtɽI)IB4S&*(WJ.9!Ji&`{ *BBsJُhhL!'|$wJFHFmNS~":sN?-* aŹ,ߋ*ArgJf 9Yb'Nu$L*%$+ٷzߞQ0̍Un(\=3DEfB^dO@1&5U?H,$bc(* -5r%%7&;To B5<'nB(CV|=.BX'ȶd~Q^1 <6/&o{7JA]^_lJRVQIJYXʿ !GmK3پ#:j!MWOyWx9dyEru&3M!t\C~` eBJ,FwcJ3)F !UpjJT%Y-C{@rWYSܪg:H_/ ?l/\__?_aÆ)Ys7ڰa?mT׭5RL#ah 6!t!W5+T@|RV MUB} 91pj[+ʢS)uYqK}3* PETzJG-(F)**$ Y5,Yku]C(E|MV#yB"a}\Umʪr,tjGEk-d{ZokQnNic!㫪Gji#TFv,WQd)U0rtvg33CVVfy7(Z͊)͢KȸZ>r{VŦU8א娯[s4B{#jmBXzmqk}Vd Ĭ 6lذaÆ 6lOmڰaz₾!FlذaÆ 6lذaÆ 6"%oذaÆ 6lذaÆ 6:6lذaÆ 6lذaÆ @lΆ 6lذaÆ 6lذa/aÆ 6lذaÆ 6l FlذaÆ 6lذaÆ 6:6lذaÆ 6lذaÆ @lΆ 6lذaÆ 6lذa/aÆ 6lذaÆ 6l FlذaÆ 6lذaÆ 6/FIENDB`vision-0.19.1/gallery/others/000077500000000000000000000000001466211133600160575ustar00rootroot00000000000000vision-0.19.1/gallery/others/README.rst000066400000000000000000000000161466211133600175430ustar00rootroot00000000000000Others ------ vision-0.19.1/gallery/others/plot_optical_flow.py000066400000000000000000000201251466211133600221510ustar00rootroot00000000000000""" ===================================================== Optical Flow: Predicting movement with the RAFT model ===================================================== .. note:: Try on `collab `_ or :ref:`go to the end ` to download the full example code. Optical flow is the task of predicting movement between two images, usually two consecutive frames of a video. Optical flow models take two images as input, and predict a flow: the flow indicates the displacement of every single pixel in the first image, and maps it to its corresponding pixel in the second image. Flows are (2, H, W)-dimensional tensors, where the first axis corresponds to the predicted horizontal and vertical displacements. The following example illustrates how torchvision can be used to predict flows using our implementation of the RAFT model. We will also see how to convert the predicted flows to RGB images for visualization. """ import numpy as np import torch import matplotlib.pyplot as plt import torchvision.transforms.functional as F plt.rcParams["savefig.bbox"] = "tight" # sphinx_gallery_thumbnail_number = 2 def plot(imgs, **imshow_kwargs): if not isinstance(imgs[0], list): # Make a 2d grid even if there's just 1 row imgs = [imgs] num_rows = len(imgs) num_cols = len(imgs[0]) _, axs = plt.subplots(nrows=num_rows, ncols=num_cols, squeeze=False) for row_idx, row in enumerate(imgs): for col_idx, img in enumerate(row): ax = axs[row_idx, col_idx] img = F.to_pil_image(img.to("cpu")) ax.imshow(np.asarray(img), **imshow_kwargs) ax.set(xticklabels=[], yticklabels=[], xticks=[], yticks=[]) plt.tight_layout() # %% # Reading Videos Using Torchvision # -------------------------------- # We will first read a video using :func:`~torchvision.io.read_video`. # Alternatively one can use the new :class:`~torchvision.io.VideoReader` API (if # torchvision is built from source). # The video we will use here is free of use from `pexels.com # `_, # credits go to `Pavel Danilyuk `_. import tempfile from pathlib import Path from urllib.request import urlretrieve video_url = "https://download.pytorch.org/tutorial/pexelscom_pavel_danilyuk_basketball_hd.mp4" video_path = Path(tempfile.mkdtemp()) / "basketball.mp4" _ = urlretrieve(video_url, video_path) # %% # :func:`~torchvision.io.read_video` returns the video frames, audio frames and # the metadata associated with the video. In our case, we only need the video # frames. # # Here we will just make 2 predictions between 2 pre-selected pairs of frames, # namely frames (100, 101) and (150, 151). Each of these pairs corresponds to a # single model input. from torchvision.io import read_video frames, _, _ = read_video(str(video_path), output_format="TCHW") img1_batch = torch.stack([frames[100], frames[150]]) img2_batch = torch.stack([frames[101], frames[151]]) plot(img1_batch) # %% # The RAFT model accepts RGB images. We first get the frames from # :func:`~torchvision.io.read_video` and resize them to ensure their dimensions # are divisible by 8. Note that we explicitly use ``antialias=False``, because # this is how those models were trained. Then we use the transforms bundled into # the weights in order to preprocess the input and rescale its values to the # required ``[-1, 1]`` interval. from torchvision.models.optical_flow import Raft_Large_Weights weights = Raft_Large_Weights.DEFAULT transforms = weights.transforms() def preprocess(img1_batch, img2_batch): img1_batch = F.resize(img1_batch, size=[520, 960], antialias=False) img2_batch = F.resize(img2_batch, size=[520, 960], antialias=False) return transforms(img1_batch, img2_batch) img1_batch, img2_batch = preprocess(img1_batch, img2_batch) print(f"shape = {img1_batch.shape}, dtype = {img1_batch.dtype}") # %% # Estimating Optical flow using RAFT # ---------------------------------- # We will use our RAFT implementation from # :func:`~torchvision.models.optical_flow.raft_large`, which follows the same # architecture as the one described in the `original paper `_. # We also provide the :func:`~torchvision.models.optical_flow.raft_small` model # builder, which is smaller and faster to run, sacrificing a bit of accuracy. from torchvision.models.optical_flow import raft_large # If you can, run this example on a GPU, it will be a lot faster. device = "cuda" if torch.cuda.is_available() else "cpu" model = raft_large(weights=Raft_Large_Weights.DEFAULT, progress=False).to(device) model = model.eval() list_of_flows = model(img1_batch.to(device), img2_batch.to(device)) print(f"type = {type(list_of_flows)}") print(f"length = {len(list_of_flows)} = number of iterations of the model") # %% # The RAFT model outputs lists of predicted flows where each entry is a # (N, 2, H, W) batch of predicted flows that corresponds to a given "iteration" # in the model. For more details on the iterative nature of the model, please # refer to the `original paper `_. Here, we # are only interested in the final predicted flows (they are the most accurate # ones), so we will just retrieve the last item in the list. # # As described above, a flow is a tensor with dimensions (2, H, W) (or (N, 2, H, # W) for batches of flows) where each entry corresponds to the horizontal and # vertical displacement of each pixel from the first image to the second image. # Note that the predicted flows are in "pixel" unit, they are not normalized # w.r.t. the dimensions of the images. predicted_flows = list_of_flows[-1] print(f"dtype = {predicted_flows.dtype}") print(f"shape = {predicted_flows.shape} = (N, 2, H, W)") print(f"min = {predicted_flows.min()}, max = {predicted_flows.max()}") # %% # Visualizing predicted flows # --------------------------- # Torchvision provides the :func:`~torchvision.utils.flow_to_image` utility to # convert a flow into an RGB image. It also supports batches of flows. # each "direction" in the flow will be mapped to a given RGB color. In the # images below, pixels with similar colors are assumed by the model to be moving # in similar directions. The model is properly able to predict the movement of # the ball and the player. Note in particular the different predicted direction # of the ball in the first image (going to the left) and in the second image # (going up). from torchvision.utils import flow_to_image flow_imgs = flow_to_image(predicted_flows) # The images have been mapped into [-1, 1] but for plotting we want them in [0, 1] img1_batch = [(img1 + 1) / 2 for img1 in img1_batch] grid = [[img1, flow_img] for (img1, flow_img) in zip(img1_batch, flow_imgs)] plot(grid) # %% # Bonus: Creating GIFs of predicted flows # --------------------------------------- # In the example above we have only shown the predicted flows of 2 pairs of # frames. A fun way to apply the Optical Flow models is to run the model on an # entire video, and create a new video from all the predicted flows. Below is a # snippet that can get you started with this. We comment out the code, because # this example is being rendered on a machine without a GPU, and it would take # too long to run it. # from torchvision.io import write_jpeg # for i, (img1, img2) in enumerate(zip(frames, frames[1:])): # # Note: it would be faster to predict batches of flows instead of individual flows # img1, img2 = preprocess(img1, img2) # list_of_flows = model(img1.to(device), img2.to(device)) # predicted_flow = list_of_flows[-1][0] # flow_img = flow_to_image(predicted_flow).to("cpu") # output_folder = "/tmp/" # Update this to the folder of your choice # write_jpeg(flow_img, output_folder + f"predicted_flow_{i}.jpg") # %% # Once the .jpg flow images are saved, you can convert them into a video or a # GIF using ffmpeg with e.g.: # # ffmpeg -f image2 -framerate 30 -i predicted_flow_%d.jpg -loop -1 flow.gif vision-0.19.1/gallery/others/plot_repurposing_annotations.py000066400000000000000000000165231466211133600244700ustar00rootroot00000000000000""" ===================================== Repurposing masks into bounding boxes ===================================== .. note:: Try on `collab `_ or :ref:`go to the end ` to download the full example code. The following example illustrates the operations available the :ref:`torchvision.ops ` module for repurposing segmentation masks into object localization annotations for different tasks (e.g. transforming masks used by instance and panoptic segmentation methods into bounding boxes used by object detection methods). """ # sphinx_gallery_thumbnail_path = "../../gallery/assets/repurposing_annotations_thumbnail.png" import os import numpy as np import torch import matplotlib.pyplot as plt import torchvision.transforms.functional as F ASSETS_DIRECTORY = "../assets" plt.rcParams["savefig.bbox"] = "tight" def show(imgs): if not isinstance(imgs, list): imgs = [imgs] fix, axs = plt.subplots(ncols=len(imgs), squeeze=False) for i, img in enumerate(imgs): img = img.detach() img = F.to_pil_image(img) axs[0, i].imshow(np.asarray(img)) axs[0, i].set(xticklabels=[], yticklabels=[], xticks=[], yticks=[]) # %% # Masks # ----- # In tasks like instance and panoptic segmentation, masks are commonly defined, and are defined by this package, # as a multi-dimensional array (e.g. a NumPy array or a PyTorch tensor) with the following shape: # # (num_objects, height, width) # # Where num_objects is the number of annotated objects in the image. Each (height, width) object corresponds to exactly # one object. For example, if your input image has the dimensions 224 x 224 and has four annotated objects the shape # of your masks annotation has the following shape: # # (4, 224, 224). # # A nice property of masks is that they can be easily repurposed to be used in methods to solve a variety of object # localization tasks. # %% # Converting Masks to Bounding Boxes # ----------------------------------------------- # For example, the :func:`~torchvision.ops.masks_to_boxes` operation can be used to # transform masks into bounding boxes that can be # used as input to detection models such as FasterRCNN and RetinaNet. # We will take images and masks from the `PenFudan Dataset `_. from torchvision.io import read_image img_path = os.path.join(ASSETS_DIRECTORY, "FudanPed00054.png") mask_path = os.path.join(ASSETS_DIRECTORY, "FudanPed00054_mask.png") img = read_image(img_path) mask = read_image(mask_path) # %% # Here the masks are represented as a PNG Image, with floating point values. # Each pixel is encoded as different colors, with 0 being background. # Notice that the spatial dimensions of image and mask match. print(mask.size()) print(img.size()) print(mask) # %% # We get the unique colors, as these would be the object ids. obj_ids = torch.unique(mask) # first id is the background, so remove it. obj_ids = obj_ids[1:] # split the color-encoded mask into a set of boolean masks. # Note that this snippet would work as well if the masks were float values instead of ints. masks = mask == obj_ids[:, None, None] # %% # Now the masks are a boolean tensor. # The first dimension in this case 3 and denotes the number of instances: there are 3 people in the image. # The other two dimensions are height and width, which are equal to the dimensions of the image. # For each instance, the boolean tensors represent if the particular pixel # belongs to the segmentation mask of the image. print(masks.size()) print(masks) # %% # Let us visualize an image and plot its corresponding segmentation masks. # We will use the :func:`~torchvision.utils.draw_segmentation_masks` to draw the segmentation masks. from torchvision.utils import draw_segmentation_masks drawn_masks = [] for mask in masks: drawn_masks.append(draw_segmentation_masks(img, mask, alpha=0.8, colors="blue")) show(drawn_masks) # %% # To convert the boolean masks into bounding boxes. # We will use the :func:`~torchvision.ops.masks_to_boxes` from the torchvision.ops module # It returns the boxes in ``(xmin, ymin, xmax, ymax)`` format. from torchvision.ops import masks_to_boxes boxes = masks_to_boxes(masks) print(boxes.size()) print(boxes) # %% # As the shape denotes, there are 3 boxes and in ``(xmin, ymin, xmax, ymax)`` format. # These can be visualized very easily with :func:`~torchvision.utils.draw_bounding_boxes` utility # provided in :ref:`torchvision.utils `. from torchvision.utils import draw_bounding_boxes drawn_boxes = draw_bounding_boxes(img, boxes, colors="red") show(drawn_boxes) # %% # These boxes can now directly be used by detection models in torchvision. # Here is demo with a Faster R-CNN model loaded from # :func:`~torchvision.models.detection.fasterrcnn_resnet50_fpn` from torchvision.models.detection import fasterrcnn_resnet50_fpn, FasterRCNN_ResNet50_FPN_Weights weights = FasterRCNN_ResNet50_FPN_Weights.DEFAULT model = fasterrcnn_resnet50_fpn(weights=weights, progress=False) print(img.size()) tranforms = weights.transforms() img = tranforms(img) target = {} target["boxes"] = boxes target["labels"] = labels = torch.ones((masks.size(0),), dtype=torch.int64) detection_outputs = model(img.unsqueeze(0), [target]) # %% # Converting Segmentation Dataset to Detection Dataset # ---------------------------------------------------- # # With this utility it becomes very simple to convert a segmentation dataset to a detection dataset. # With this we can now use a segmentation dataset to train a detection model. # One can similarly convert panoptic dataset to detection dataset. # Here is an example where we re-purpose the dataset from the # `PenFudan Detection Tutorial `_. class SegmentationToDetectionDataset(torch.utils.data.Dataset): def __init__(self, root, transforms): self.root = root self.transforms = transforms # load all image files, sorting them to # ensure that they are aligned self.imgs = list(sorted(os.listdir(os.path.join(root, "PNGImages")))) self.masks = list(sorted(os.listdir(os.path.join(root, "PedMasks")))) def __getitem__(self, idx): # load images and masks img_path = os.path.join(self.root, "PNGImages", self.imgs[idx]) mask_path = os.path.join(self.root, "PedMasks", self.masks[idx]) img = read_image(img_path) mask = read_image(mask_path) img = F.convert_image_dtype(img, dtype=torch.float) mask = F.convert_image_dtype(mask, dtype=torch.float) # We get the unique colors, as these would be the object ids. obj_ids = torch.unique(mask) # first id is the background, so remove it. obj_ids = obj_ids[1:] # split the color-encoded mask into a set of boolean masks. masks = mask == obj_ids[:, None, None] boxes = masks_to_boxes(masks) # there is only one class labels = torch.ones((masks.shape[0],), dtype=torch.int64) target = {} target["boxes"] = boxes target["labels"] = labels if self.transforms is not None: img, target = self.transforms(img, target) return img, target vision-0.19.1/gallery/others/plot_scripted_tensor_transforms.py000066400000000000000000000102751466211133600251610ustar00rootroot00000000000000""" =================== Torchscript support =================== .. note:: Try on `collab `_ or :ref:`go to the end ` to download the full example code. This example illustrates `torchscript `_ support of the torchvision :ref:`transforms ` on Tensor images. """ # %% from pathlib import Path import matplotlib.pyplot as plt import torch import torch.nn as nn import torchvision.transforms as v1 from torchvision.io import read_image plt.rcParams["savefig.bbox"] = 'tight' torch.manual_seed(1) # If you're trying to run that on collab, you can download the assets and the # helpers from https://github.com/pytorch/vision/tree/main/gallery/ import sys sys.path += ["../transforms"] from helpers import plot ASSETS_PATH = Path('../assets') # %% # Most transforms support torchscript. For composing transforms, we use # :class:`torch.nn.Sequential` instead of # :class:`~torchvision.transforms.v2.Compose`: dog1 = read_image(str(ASSETS_PATH / 'dog1.jpg')) dog2 = read_image(str(ASSETS_PATH / 'dog2.jpg')) transforms = torch.nn.Sequential( v1.RandomCrop(224), v1.RandomHorizontalFlip(p=0.3), ) scripted_transforms = torch.jit.script(transforms) plot([dog1, scripted_transforms(dog1), dog2, scripted_transforms(dog2)]) # %% # .. warning:: # # Above we have used transforms from the ``torchvision.transforms`` # namespace, i.e. the "v1" transforms. The v2 transforms from the # ``torchvision.transforms.v2`` namespace are the :ref:`recommended # ` way to use transforms in your code. # # The v2 transforms also support torchscript, but if you call # ``torch.jit.script()`` on a v2 **class** transform, you'll actually end up # with its (scripted) v1 equivalent. This may lead to slightly different # results between the scripted and eager executions due to implementation # differences between v1 and v2. # # If you really need torchscript support for the v2 transforms, **we # recommend scripting the functionals** from the # ``torchvision.transforms.v2.functional`` namespace to avoid surprises. # # Below we now show how to combine image transformations and a model forward # pass, while using ``torch.jit.script`` to obtain a single scripted module. # # Let's define a ``Predictor`` module that transforms the input tensor and then # applies an ImageNet model on it. from torchvision.models import resnet18, ResNet18_Weights class Predictor(nn.Module): def __init__(self): super().__init__() weights = ResNet18_Weights.DEFAULT self.resnet18 = resnet18(weights=weights, progress=False).eval() self.transforms = weights.transforms(antialias=True) def forward(self, x: torch.Tensor) -> torch.Tensor: with torch.no_grad(): x = self.transforms(x) y_pred = self.resnet18(x) return y_pred.argmax(dim=1) # %% # Now, let's define scripted and non-scripted instances of ``Predictor`` and # apply it on multiple tensor images of the same size device = "cuda" if torch.cuda.is_available() else "cpu" predictor = Predictor().to(device) scripted_predictor = torch.jit.script(predictor).to(device) batch = torch.stack([dog1, dog2]).to(device) res = predictor(batch) res_scripted = scripted_predictor(batch) # %% # We can verify that the prediction of the scripted and non-scripted models are # the same: import json with open(Path('../assets') / 'imagenet_class_index.json') as labels_file: labels = json.load(labels_file) for i, (pred, pred_scripted) in enumerate(zip(res, res_scripted)): assert pred == pred_scripted print(f"Prediction for Dog {i + 1}: {labels[str(pred.item())]}") # %% # Since the model is scripted, it can be easily dumped on disk and re-used import tempfile with tempfile.NamedTemporaryFile() as f: scripted_predictor.save(f.name) dumped_scripted_predictor = torch.jit.load(f.name) res_scripted_dumped = dumped_scripted_predictor(batch) assert (res_scripted_dumped == res_scripted).all() # %% vision-0.19.1/gallery/others/plot_video_api.py000066400000000000000000000267361466211133600214440ustar00rootroot00000000000000""" ========= Video API ========= .. note:: Try on `collab `_ or :ref:`go to the end ` to download the full example code. This example illustrates some of the APIs that torchvision offers for videos, together with the examples on how to build datasets and more. """ # %% # 1. Introduction: building a new video object and examining the properties # ------------------------------------------------------------------------- # First we select a video to test the object out. For the sake of argument # we're using one from kinetics400 dataset. # To create it, we need to define the path and the stream we want to use. # %% # Chosen video statistics: # # - WUzgd7C1pWA.mp4 # - source: # - kinetics-400 # - video: # - H-264 # - MPEG-4 AVC (part 10) (avc1) # - fps: 29.97 # - audio: # - MPEG AAC audio (mp4a) # - sample rate: 48K Hz # import torch import torchvision from torchvision.datasets.utils import download_url torchvision.set_video_backend("video_reader") # Download the sample video download_url( "https://github.com/pytorch/vision/blob/main/test/assets/videos/WUzgd7C1pWA.mp4?raw=true", ".", "WUzgd7C1pWA.mp4" ) video_path = "./WUzgd7C1pWA.mp4" # %% # Streams are defined in a similar fashion as torch devices. We encode them as strings in a form # of ``stream_type:stream_id`` where ``stream_type`` is a string and ``stream_id`` a long int. # The constructor accepts passing a ``stream_type`` only, in which case the stream is auto-discovered. # Firstly, let's get the metadata for our particular video: stream = "video" video = torchvision.io.VideoReader(video_path, stream) video.get_metadata() # %% # Here we can see that video has two streams - a video and an audio stream. # Currently available stream types include ['video', 'audio']. # Each descriptor consists of two parts: stream type (e.g. 'video') and a unique stream id # (which are determined by video encoding). # In this way, if the video container contains multiple streams of the same type, # users can access the one they want. # If only stream type is passed, the decoder auto-detects first stream of that type and returns it. # %% # Let's read all the frames from the video stream. By default, the return value of # ``next(video_reader)`` is a dict containing the following fields. # # The return fields are: # # - ``data``: containing a torch.tensor # - ``pts``: containing a float timestamp of this particular frame metadata = video.get_metadata() video.set_current_stream("audio") frames = [] # we are going to save the frames here. ptss = [] # pts is a presentation timestamp in seconds (float) of each frame for frame in video: frames.append(frame['data']) ptss.append(frame['pts']) print("PTS for first five frames ", ptss[:5]) print("Total number of frames: ", len(frames)) approx_nf = metadata['audio']['duration'][0] * metadata['audio']['framerate'][0] print("Approx total number of datapoints we can expect: ", approx_nf) print("Read data size: ", frames[0].size(0) * len(frames)) # %% # But what if we only want to read certain time segment of the video? # That can be done easily using the combination of our ``seek`` function, and the fact that each call # to next returns the presentation timestamp of the returned frame in seconds. # # Given that our implementation relies on python iterators, # we can leverage itertools to simplify the process and make it more pythonic. # # For example, if we wanted to read ten frames from second second: import itertools video.set_current_stream("video") frames = [] # we are going to save the frames here. # We seek into a second second of the video and use islice to get 10 frames since for frame, pts in itertools.islice(video.seek(2), 10): frames.append(frame) print("Total number of frames: ", len(frames)) # %% # Or if we wanted to read from 2nd to 5th second, # We seek into a second second of the video, # then we utilize the itertools takewhile to get the # correct number of frames: video.set_current_stream("video") frames = [] # we are going to save the frames here. video = video.seek(2) for frame in itertools.takewhile(lambda x: x['pts'] <= 5, video): frames.append(frame['data']) print("Total number of frames: ", len(frames)) approx_nf = (5 - 2) * video.get_metadata()['video']['fps'][0] print("We can expect approx: ", approx_nf) print("Tensor size: ", frames[0].size()) # %% # 2. Building a sample read_video function # ---------------------------------------------------------------------------------------- # We can utilize the methods above to build the read video function that follows # the same API to the existing ``read_video`` function. def example_read_video(video_object, start=0, end=None, read_video=True, read_audio=True): if end is None: end = float("inf") if end < start: raise ValueError( "end time should be larger than start time, got " f"start time={start} and end time={end}" ) video_frames = torch.empty(0) video_pts = [] if read_video: video_object.set_current_stream("video") frames = [] for frame in itertools.takewhile(lambda x: x['pts'] <= end, video_object.seek(start)): frames.append(frame['data']) video_pts.append(frame['pts']) if len(frames) > 0: video_frames = torch.stack(frames, 0) audio_frames = torch.empty(0) audio_pts = [] if read_audio: video_object.set_current_stream("audio") frames = [] for frame in itertools.takewhile(lambda x: x['pts'] <= end, video_object.seek(start)): frames.append(frame['data']) audio_pts.append(frame['pts']) if len(frames) > 0: audio_frames = torch.cat(frames, 0) return video_frames, audio_frames, (video_pts, audio_pts), video_object.get_metadata() # Total number of frames should be 327 for video and 523264 datapoints for audio vf, af, info, meta = example_read_video(video) print(vf.size(), af.size()) # %% # 3. Building an example randomly sampled dataset (can be applied to training dataset of kinetics400) # ------------------------------------------------------------------------------------------------------- # Cool, so now we can use the same principle to make the sample dataset. # We suggest trying out iterable dataset for this purpose. # Here, we are going to build an example dataset that reads randomly selected 10 frames of video. # %% # Make sample dataset import os os.makedirs("./dataset", exist_ok=True) os.makedirs("./dataset/1", exist_ok=True) os.makedirs("./dataset/2", exist_ok=True) # %% # Download the videos from torchvision.datasets.utils import download_url download_url( "https://github.com/pytorch/vision/blob/main/test/assets/videos/WUzgd7C1pWA.mp4?raw=true", "./dataset/1", "WUzgd7C1pWA.mp4" ) download_url( "https://github.com/pytorch/vision/blob/main/test/assets/videos/RATRACE_wave_f_nm_np1_fr_goo_37.avi?raw=true", "./dataset/1", "RATRACE_wave_f_nm_np1_fr_goo_37.avi" ) download_url( "https://github.com/pytorch/vision/blob/main/test/assets/videos/SOX5yA1l24A.mp4?raw=true", "./dataset/2", "SOX5yA1l24A.mp4" ) download_url( "https://github.com/pytorch/vision/blob/main/test/assets/videos/v_SoccerJuggling_g23_c01.avi?raw=true", "./dataset/2", "v_SoccerJuggling_g23_c01.avi" ) download_url( "https://github.com/pytorch/vision/blob/main/test/assets/videos/v_SoccerJuggling_g24_c01.avi?raw=true", "./dataset/2", "v_SoccerJuggling_g24_c01.avi" ) # %% # Housekeeping and utilities import os import random from torchvision.datasets.folder import make_dataset from torchvision import transforms as t def _find_classes(dir): classes = [d.name for d in os.scandir(dir) if d.is_dir()] classes.sort() class_to_idx = {cls_name: i for i, cls_name in enumerate(classes)} return classes, class_to_idx def get_samples(root, extensions=(".mp4", ".avi")): _, class_to_idx = _find_classes(root) return make_dataset(root, class_to_idx, extensions=extensions) # %% # We are going to define the dataset and some basic arguments. # We assume the structure of the FolderDataset, and add the following parameters: # # - ``clip_len``: length of a clip in frames # - ``frame_transform``: transform for every frame individually # - ``video_transform``: transform on a video sequence # # .. note:: # We actually add epoch size as using :func:`~torch.utils.data.IterableDataset` # class allows us to naturally oversample clips or images from each video if needed. class RandomDataset(torch.utils.data.IterableDataset): def __init__(self, root, epoch_size=None, frame_transform=None, video_transform=None, clip_len=16): super(RandomDataset).__init__() self.samples = get_samples(root) # Allow for temporal jittering if epoch_size is None: epoch_size = len(self.samples) self.epoch_size = epoch_size self.clip_len = clip_len self.frame_transform = frame_transform self.video_transform = video_transform def __iter__(self): for i in range(self.epoch_size): # Get random sample path, target = random.choice(self.samples) # Get video object vid = torchvision.io.VideoReader(path, "video") metadata = vid.get_metadata() video_frames = [] # video frame buffer # Seek and return frames max_seek = metadata["video"]['duration'][0] - (self.clip_len / metadata["video"]['fps'][0]) start = random.uniform(0., max_seek) for frame in itertools.islice(vid.seek(start), self.clip_len): video_frames.append(self.frame_transform(frame['data'])) current_pts = frame['pts'] # Stack it into a tensor video = torch.stack(video_frames, 0) if self.video_transform: video = self.video_transform(video) output = { 'path': path, 'video': video, 'target': target, 'start': start, 'end': current_pts} yield output # %% # Given a path of videos in a folder structure, i.e: # # - dataset # - class 1 # - file 0 # - file 1 # - ... # - class 2 # - file 0 # - file 1 # - ... # - ... # # We can generate a dataloader and test the dataset. transforms = [t.Resize((112, 112))] frame_transform = t.Compose(transforms) dataset = RandomDataset("./dataset", epoch_size=None, frame_transform=frame_transform) # %% from torch.utils.data import DataLoader loader = DataLoader(dataset, batch_size=12) data = {"video": [], 'start': [], 'end': [], 'tensorsize': []} for batch in loader: for i in range(len(batch['path'])): data['video'].append(batch['path'][i]) data['start'].append(batch['start'][i].item()) data['end'].append(batch['end'][i].item()) data['tensorsize'].append(batch['video'][i].size()) print(data) # %% # 4. Data Visualization # ---------------------------------- # Example of visualized video import matplotlib.pyplot as plt plt.figure(figsize=(12, 12)) for i in range(16): plt.subplot(4, 4, i + 1) plt.imshow(batch["video"][0, i, ...].permute(1, 2, 0)) plt.axis("off") # %% # Cleanup the video and dataset: import os import shutil os.remove("./WUzgd7C1pWA.mp4") shutil.rmtree("./dataset") vision-0.19.1/gallery/others/plot_visualization_utils.py000066400000000000000000000464311466211133600236200ustar00rootroot00000000000000""" ======================= Visualization utilities ======================= .. note:: Try on `collab `_ or :ref:`go to the end ` to download the full example code. This example illustrates some of the utilities that torchvision offers for visualizing images, bounding boxes, segmentation masks and keypoints. """ # sphinx_gallery_thumbnail_path = "../../gallery/assets/visualization_utils_thumbnail2.png" import torch import numpy as np import matplotlib.pyplot as plt import torchvision.transforms.functional as F plt.rcParams["savefig.bbox"] = 'tight' def show(imgs): if not isinstance(imgs, list): imgs = [imgs] fig, axs = plt.subplots(ncols=len(imgs), squeeze=False) for i, img in enumerate(imgs): img = img.detach() img = F.to_pil_image(img) axs[0, i].imshow(np.asarray(img)) axs[0, i].set(xticklabels=[], yticklabels=[], xticks=[], yticks=[]) # %% # Visualizing a grid of images # ---------------------------- # The :func:`~torchvision.utils.make_grid` function can be used to create a # tensor that represents multiple images in a grid. This util requires a single # image of dtype ``uint8`` as input. from torchvision.utils import make_grid from torchvision.io import read_image from pathlib import Path dog1_int = read_image(str(Path('../assets') / 'dog1.jpg')) dog2_int = read_image(str(Path('../assets') / 'dog2.jpg')) dog_list = [dog1_int, dog2_int] grid = make_grid(dog_list) show(grid) # %% # Visualizing bounding boxes # -------------------------- # We can use :func:`~torchvision.utils.draw_bounding_boxes` to draw boxes on an # image. We can set the colors, labels, width as well as font and font size. # The boxes are in ``(xmin, ymin, xmax, ymax)`` format. from torchvision.utils import draw_bounding_boxes boxes = torch.tensor([[50, 50, 100, 200], [210, 150, 350, 430]], dtype=torch.float) colors = ["blue", "yellow"] result = draw_bounding_boxes(dog1_int, boxes, colors=colors, width=5) show(result) # %% # Naturally, we can also plot bounding boxes produced by torchvision detection # models. Here is a demo with a Faster R-CNN model loaded from # :func:`~torchvision.models.detection.fasterrcnn_resnet50_fpn` # model. For more details on the output of such models, you may # refer to :ref:`instance_seg_output`. from torchvision.models.detection import fasterrcnn_resnet50_fpn, FasterRCNN_ResNet50_FPN_Weights weights = FasterRCNN_ResNet50_FPN_Weights.DEFAULT transforms = weights.transforms() images = [transforms(d) for d in dog_list] model = fasterrcnn_resnet50_fpn(weights=weights, progress=False) model = model.eval() outputs = model(images) print(outputs) # %% # Let's plot the boxes detected by our model. We will only plot the boxes with a # score greater than a given threshold. score_threshold = .8 dogs_with_boxes = [ draw_bounding_boxes(dog_int, boxes=output['boxes'][output['scores'] > score_threshold], width=4) for dog_int, output in zip(dog_list, outputs) ] show(dogs_with_boxes) # %% # Visualizing segmentation masks # ------------------------------ # The :func:`~torchvision.utils.draw_segmentation_masks` function can be used to # draw segmentation masks on images. Semantic segmentation and instance # segmentation models have different outputs, so we will treat each # independently. # # .. _semantic_seg_output: # # Semantic segmentation models # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # We will see how to use it with torchvision's FCN Resnet-50, loaded with # :func:`~torchvision.models.segmentation.fcn_resnet50`. Let's start by looking # at the output of the model. from torchvision.models.segmentation import fcn_resnet50, FCN_ResNet50_Weights weights = FCN_ResNet50_Weights.DEFAULT transforms = weights.transforms(resize_size=None) model = fcn_resnet50(weights=weights, progress=False) model = model.eval() batch = torch.stack([transforms(d) for d in dog_list]) output = model(batch)['out'] print(output.shape, output.min().item(), output.max().item()) # %% # As we can see above, the output of the segmentation model is a tensor of shape # ``(batch_size, num_classes, H, W)``. Each value is a non-normalized score, and # we can normalize them into ``[0, 1]`` by using a softmax. After the softmax, # we can interpret each value as a probability indicating how likely a given # pixel is to belong to a given class. # # Let's plot the masks that have been detected for the dog class and for the # boat class: sem_class_to_idx = {cls: idx for (idx, cls) in enumerate(weights.meta["categories"])} normalized_masks = torch.nn.functional.softmax(output, dim=1) dog_and_boat_masks = [ normalized_masks[img_idx, sem_class_to_idx[cls]] for img_idx in range(len(dog_list)) for cls in ('dog', 'boat') ] show(dog_and_boat_masks) # %% # As expected, the model is confident about the dog class, but not so much for # the boat class. # # The :func:`~torchvision.utils.draw_segmentation_masks` function can be used to # plots those masks on top of the original image. This function expects the # masks to be boolean masks, but our masks above contain probabilities in ``[0, # 1]``. To get boolean masks, we can do the following: class_dim = 1 boolean_dog_masks = (normalized_masks.argmax(class_dim) == sem_class_to_idx['dog']) print(f"shape = {boolean_dog_masks.shape}, dtype = {boolean_dog_masks.dtype}") show([m.float() for m in boolean_dog_masks]) # %% # The line above where we define ``boolean_dog_masks`` is a bit cryptic, but you # can read it as the following query: "For which pixels is 'dog' the most likely # class?" # # .. note:: # While we're using the ``normalized_masks`` here, we would have # gotten the same result by using the non-normalized scores of the model # directly (as the softmax operation preserves the order). # # Now that we have boolean masks, we can use them with # :func:`~torchvision.utils.draw_segmentation_masks` to plot them on top of the # original images: from torchvision.utils import draw_segmentation_masks dogs_with_masks = [ draw_segmentation_masks(img, masks=mask, alpha=0.7) for img, mask in zip(dog_list, boolean_dog_masks) ] show(dogs_with_masks) # %% # We can plot more than one mask per image! Remember that the model returned as # many masks as there are classes. Let's ask the same query as above, but this # time for *all* classes, not just the dog class: "For each pixel and each class # C, is class C the most likely class?" # # This one is a bit more involved, so we'll first show how to do it with a # single image, and then we'll generalize to the batch num_classes = normalized_masks.shape[1] dog1_masks = normalized_masks[0] class_dim = 0 dog1_all_classes_masks = dog1_masks.argmax(class_dim) == torch.arange(num_classes)[:, None, None] print(f"dog1_masks shape = {dog1_masks.shape}, dtype = {dog1_masks.dtype}") print(f"dog1_all_classes_masks = {dog1_all_classes_masks.shape}, dtype = {dog1_all_classes_masks.dtype}") dog_with_all_masks = draw_segmentation_masks(dog1_int, masks=dog1_all_classes_masks, alpha=.6) show(dog_with_all_masks) # %% # We can see in the image above that only 2 masks were drawn: the mask for the # background and the mask for the dog. This is because the model thinks that # only these 2 classes are the most likely ones across all the pixels. If the # model had detected another class as the most likely among other pixels, we # would have seen its mask above. # # Removing the background mask is as simple as passing # ``masks=dog1_all_classes_masks[1:]``, because the background class is the # class with index 0. # # Let's now do the same but for an entire batch of images. The code is similar # but involves a bit more juggling with the dimensions. class_dim = 1 all_classes_masks = normalized_masks.argmax(class_dim) == torch.arange(num_classes)[:, None, None, None] print(f"shape = {all_classes_masks.shape}, dtype = {all_classes_masks.dtype}") # The first dimension is the classes now, so we need to swap it all_classes_masks = all_classes_masks.swapaxes(0, 1) dogs_with_masks = [ draw_segmentation_masks(img, masks=mask, alpha=.6) for img, mask in zip(dog_list, all_classes_masks) ] show(dogs_with_masks) # %% # .. _instance_seg_output: # # Instance segmentation models # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Instance segmentation models have a significantly different output from the # semantic segmentation models. We will see here how to plot the masks for such # models. Let's start by analyzing the output of a Mask-RCNN model. Note that # these models don't require the images to be normalized, so we don't need to # use the normalized batch. # # .. note:: # # We will here describe the output of a Mask-RCNN model. The models in # :ref:`object_det_inst_seg_pers_keypoint_det` all have a similar output # format, but some of them may have extra info like keypoints for # :func:`~torchvision.models.detection.keypointrcnn_resnet50_fpn`, and some # of them may not have masks, like # :func:`~torchvision.models.detection.fasterrcnn_resnet50_fpn`. from torchvision.models.detection import maskrcnn_resnet50_fpn, MaskRCNN_ResNet50_FPN_Weights weights = MaskRCNN_ResNet50_FPN_Weights.DEFAULT transforms = weights.transforms() images = [transforms(d) for d in dog_list] model = maskrcnn_resnet50_fpn(weights=weights, progress=False) model = model.eval() output = model(images) print(output) # %% # Let's break this down. For each image in the batch, the model outputs some # detections (or instances). The number of detections varies for each input # image. Each instance is described by its bounding box, its label, its score # and its mask. # # The way the output is organized is as follows: the output is a list of length # ``batch_size``. Each entry in the list corresponds to an input image, and it # is a dict with keys 'boxes', 'labels', 'scores', and 'masks'. Each value # associated to those keys has ``num_instances`` elements in it. In our case # above there are 3 instances detected in the first image, and 2 instances in # the second one. # # The boxes can be plotted with :func:`~torchvision.utils.draw_bounding_boxes` # as above, but here we're more interested in the masks. These masks are quite # different from the masks that we saw above for the semantic segmentation # models. dog1_output = output[0] dog1_masks = dog1_output['masks'] print(f"shape = {dog1_masks.shape}, dtype = {dog1_masks.dtype}, " f"min = {dog1_masks.min()}, max = {dog1_masks.max()}") # %% # Here the masks correspond to probabilities indicating, for each pixel, how # likely it is to belong to the predicted label of that instance. Those # predicted labels correspond to the 'labels' element in the same output dict. # Let's see which labels were predicted for the instances of the first image. print("For the first dog, the following instances were detected:") print([weights.meta["categories"][label] for label in dog1_output['labels']]) # %% # Interestingly, the model detects two persons in the image. Let's go ahead and # plot those masks. Since :func:`~torchvision.utils.draw_segmentation_masks` # expects boolean masks, we need to convert those probabilities into boolean # values. Remember that the semantic of those masks is "How likely is this pixel # to belong to the predicted class?". As a result, a natural way of converting # those masks into boolean values is to threshold them with the 0.5 probability # (one could also choose a different threshold). proba_threshold = 0.5 dog1_bool_masks = dog1_output['masks'] > proba_threshold print(f"shape = {dog1_bool_masks.shape}, dtype = {dog1_bool_masks.dtype}") # There's an extra dimension (1) to the masks. We need to remove it dog1_bool_masks = dog1_bool_masks.squeeze(1) show(draw_segmentation_masks(dog1_int, dog1_bool_masks, alpha=0.9)) # %% # The model seems to have properly detected the dog, but it also confused trees # with people. Looking more closely at the scores will help us plot more # relevant masks: print(dog1_output['scores']) # %% # Clearly the model is more confident about the dog detection than it is about # the people detections. That's good news. When plotting the masks, we can ask # for only those that have a good score. Let's use a score threshold of .75 # here, and also plot the masks of the second dog. score_threshold = .75 boolean_masks = [ out['masks'][out['scores'] > score_threshold] > proba_threshold for out in output ] dogs_with_masks = [ draw_segmentation_masks(img, mask.squeeze(1)) for img, mask in zip(dog_list, boolean_masks) ] show(dogs_with_masks) # %% # The two 'people' masks in the first image where not selected because they have # a lower score than the score threshold. Similarly, in the second image, the # instance with class 15 (which corresponds to 'bench') was not selected. # %% # .. _keypoint_output: # # Visualizing keypoints # ------------------------------ # The :func:`~torchvision.utils.draw_keypoints` function can be used to # draw keypoints on images. We will see how to use it with # torchvision's KeypointRCNN loaded with :func:`~torchvision.models.detection.keypointrcnn_resnet50_fpn`. # We will first have a look at output of the model. # from torchvision.models.detection import keypointrcnn_resnet50_fpn, KeypointRCNN_ResNet50_FPN_Weights from torchvision.io import read_image person_int = read_image(str(Path("../assets") / "person1.jpg")) weights = KeypointRCNN_ResNet50_FPN_Weights.DEFAULT transforms = weights.transforms() person_float = transforms(person_int) model = keypointrcnn_resnet50_fpn(weights=weights, progress=False) model = model.eval() outputs = model([person_float]) print(outputs) # %% # As we see the output contains a list of dictionaries. # The output list is of length batch_size. # We currently have just a single image so length of list is 1. # Each entry in the list corresponds to an input image, # and it is a dict with keys `boxes`, `labels`, `scores`, `keypoints` and `keypoint_scores`. # Each value associated to those keys has `num_instances` elements in it. # In our case above there are 2 instances detected in the image. kpts = outputs[0]['keypoints'] scores = outputs[0]['scores'] print(kpts) print(scores) # %% # The KeypointRCNN model detects there are two instances in the image. # If you plot the boxes by using :func:`~draw_bounding_boxes` # you would recognize they are the person and the surfboard. # If we look at the scores, we will realize that the model is much more confident about the person than surfboard. # We could now set a threshold confidence and plot instances which we are confident enough. # Let us set a threshold of 0.75 and filter out the keypoints corresponding to the person. detect_threshold = 0.75 idx = torch.where(scores > detect_threshold) keypoints = kpts[idx] print(keypoints) # %% # Great, now we have the keypoints corresponding to the person. # Each keypoint is represented by x, y coordinates and the visibility. # We can now use the :func:`~torchvision.utils.draw_keypoints` function to draw keypoints. # Note that the utility expects uint8 images. from torchvision.utils import draw_keypoints res = draw_keypoints(person_int, keypoints, colors="blue", radius=3) show(res) # %% # As we see, the keypoints appear as colored circles over the image. # The coco keypoints for a person are ordered and represent the following list.\ coco_keypoints = [ "nose", "left_eye", "right_eye", "left_ear", "right_ear", "left_shoulder", "right_shoulder", "left_elbow", "right_elbow", "left_wrist", "right_wrist", "left_hip", "right_hip", "left_knee", "right_knee", "left_ankle", "right_ankle", ] # %% # What if we are interested in joining the keypoints? # This is especially useful in creating pose detection or action recognition. # We can join the keypoints easily using the `connectivity` parameter. # A close observation would reveal that we would need to join the points in below # order to construct human skeleton. # # nose -> left_eye -> left_ear. (0, 1), (1, 3) # # nose -> right_eye -> right_ear. (0, 2), (2, 4) # # nose -> left_shoulder -> left_elbow -> left_wrist. (0, 5), (5, 7), (7, 9) # # nose -> right_shoulder -> right_elbow -> right_wrist. (0, 6), (6, 8), (8, 10) # # left_shoulder -> left_hip -> left_knee -> left_ankle. (5, 11), (11, 13), (13, 15) # # right_shoulder -> right_hip -> right_knee -> right_ankle. (6, 12), (12, 14), (14, 16) # # We will create a list containing these keypoint ids to be connected. connect_skeleton = [ (0, 1), (0, 2), (1, 3), (2, 4), (0, 5), (0, 6), (5, 7), (6, 8), (7, 9), (8, 10), (5, 11), (6, 12), (11, 13), (12, 14), (13, 15), (14, 16) ] # %% # We pass the above list to the connectivity parameter to connect the keypoints. # res = draw_keypoints(person_int, keypoints, connectivity=connect_skeleton, colors="blue", radius=4, width=3) show(res) # %% # That looks pretty good. # # .. _draw_keypoints_with_visibility: # # Drawing Keypoints with Visibility # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # Let's have a look at the results, another keypoint prediction module produced, and show the connectivity: prediction = torch.tensor( [[[208.0176, 214.2409, 1.0000], [000.0000, 000.0000, 0.0000], [197.8246, 210.6392, 1.0000], [000.0000, 000.0000, 0.0000], [178.6378, 217.8425, 1.0000], [221.2086, 253.8591, 1.0000], [160.6502, 269.4662, 1.0000], [243.9929, 304.2822, 1.0000], [138.4654, 328.8935, 1.0000], [277.5698, 340.8990, 1.0000], [153.4551, 374.5145, 1.0000], [000.0000, 000.0000, 0.0000], [226.0053, 370.3125, 1.0000], [221.8081, 455.5516, 1.0000], [273.9723, 448.9486, 1.0000], [193.6275, 546.1933, 1.0000], [273.3727, 545.5930, 1.0000]]] ) res = draw_keypoints(person_int, prediction, connectivity=connect_skeleton, colors="blue", radius=4, width=3) show(res) # %% # What happened there? # The model, which predicted the new keypoints, # can't detect the three points that are hidden on the upper left body of the skateboarder. # More precisely, the model predicted that `(x, y, vis) = (0, 0, 0)` for the left_eye, left_ear, and left_hip. # So we definitely don't want to display those keypoints and connections, and you don't have to. # Looking at the parameters of :func:`~torchvision.utils.draw_keypoints`, # we can see that we can pass a visibility tensor as an additional argument. # Given the models' prediction, we have the visibility as the third keypoint dimension, we just need to extract it. # Let's split the ``prediction`` into the keypoint coordinates and their respective visibility, # and pass both of them as arguments to :func:`~torchvision.utils.draw_keypoints`. coordinates, visibility = prediction.split([2, 1], dim=-1) visibility = visibility.bool() res = draw_keypoints( person_int, coordinates, visibility=visibility, connectivity=connect_skeleton, colors="blue", radius=4, width=3 ) show(res) # %% # We can see that the undetected keypoints are not draw and the invisible keypoint connections were skipped. # This can reduce the noise on images with multiple detections, or in cases like ours, # when the keypoint-prediction model missed some detections. # Most torch keypoint-prediction models return the visibility for every prediction, ready for you to use it. # The :func:`~torchvision.models.detection.keypointrcnn_resnet50_fpn` model, # which we used in the first case, does so too. vision-0.19.1/gallery/transforms/000077500000000000000000000000001466211133600167515ustar00rootroot00000000000000vision-0.19.1/gallery/transforms/README.rst000066400000000000000000000000571466211133600204420ustar00rootroot00000000000000.. _transforms_gallery: Transforms ---------- vision-0.19.1/gallery/transforms/helpers.py000066400000000000000000000037461466211133600207770ustar00rootroot00000000000000import matplotlib.pyplot as plt import torch from torchvision.utils import draw_bounding_boxes, draw_segmentation_masks from torchvision import tv_tensors from torchvision.transforms.v2 import functional as F def plot(imgs, row_title=None, **imshow_kwargs): if not isinstance(imgs[0], list): # Make a 2d grid even if there's just 1 row imgs = [imgs] num_rows = len(imgs) num_cols = len(imgs[0]) _, axs = plt.subplots(nrows=num_rows, ncols=num_cols, squeeze=False) for row_idx, row in enumerate(imgs): for col_idx, img in enumerate(row): boxes = None masks = None if isinstance(img, tuple): img, target = img if isinstance(target, dict): boxes = target.get("boxes") masks = target.get("masks") elif isinstance(target, tv_tensors.BoundingBoxes): boxes = target else: raise ValueError(f"Unexpected target type: {type(target)}") img = F.to_image(img) if img.dtype.is_floating_point and img.min() < 0: # Poor man's re-normalization for the colors to be OK-ish. This # is useful for images coming out of Normalize() img -= img.min() img /= img.max() img = F.to_dtype(img, torch.uint8, scale=True) if boxes is not None: img = draw_bounding_boxes(img, boxes, colors="yellow", width=3) if masks is not None: img = draw_segmentation_masks(img, masks.to(torch.bool), colors=["green"] * masks.shape[0], alpha=.65) ax = axs[row_idx, col_idx] ax.imshow(img.permute(1, 2, 0).numpy(), **imshow_kwargs) ax.set(xticklabels=[], yticklabels=[], xticks=[], yticks=[]) if row_title is not None: for row_idx in range(num_rows): axs[row_idx, 0].set(ylabel=row_title[row_idx]) plt.tight_layout() vision-0.19.1/gallery/transforms/plot_custom_transforms.py000066400000000000000000000113271466211133600241550ustar00rootroot00000000000000""" =================================== How to write your own v2 transforms =================================== .. note:: Try on `collab `_ or :ref:`go to the end ` to download the full example code. This guide explains how to write transforms that are compatible with the torchvision transforms V2 API. """ # %% import torch from torchvision import tv_tensors from torchvision.transforms import v2 # %% # Just create a ``nn.Module`` and override the ``forward`` method # =============================================================== # # In most cases, this is all you're going to need, as long as you already know # the structure of the input that your transform will expect. For example if # you're just doing image classification, your transform will typically accept a # single image as input, or a ``(img, label)`` input. So you can just hard-code # your ``forward`` method to accept just that, e.g. # # .. code:: python # # class MyCustomTransform(torch.nn.Module): # def forward(self, img, label): # # Do some transformations # return new_img, new_label # # .. note:: # # This means that if you have a custom transform that is already compatible # with the V1 transforms (those in ``torchvision.transforms``), it will # still work with the V2 transforms without any change! # # We will illustrate this more completely below with a typical detection case, # where our samples are just images, bounding boxes and labels: class MyCustomTransform(torch.nn.Module): def forward(self, img, bboxes, label): # we assume inputs are always structured like this print( f"I'm transforming an image of shape {img.shape} " f"with bboxes = {bboxes}\n{label = }" ) # Do some transformations. Here, we're just passing though the input return img, bboxes, label transforms = v2.Compose([ MyCustomTransform(), v2.RandomResizedCrop((224, 224), antialias=True), v2.RandomHorizontalFlip(p=1), v2.Normalize(mean=[0, 0, 0], std=[1, 1, 1]) ]) H, W = 256, 256 img = torch.rand(3, H, W) bboxes = tv_tensors.BoundingBoxes( torch.tensor([[0, 10, 10, 20], [50, 50, 70, 70]]), format="XYXY", canvas_size=(H, W) ) label = 3 out_img, out_bboxes, out_label = transforms(img, bboxes, label) # %% print(f"Output image shape: {out_img.shape}\nout_bboxes = {out_bboxes}\n{out_label = }") # %% # .. note:: # While working with TVTensor classes in your code, make sure to # familiarize yourself with this section: # :ref:`tv_tensor_unwrapping_behaviour` # # Supporting arbitrary input structures # ===================================== # # In the section above, we have assumed that you already know the structure of # your inputs and that you're OK with hard-coding this expected structure in # your code. If you want your custom transforms to be as flexible as possible, # this can be a bit limiting. # # A key feature of the builtin Torchvision V2 transforms is that they can accept # arbitrary input structure and return the same structure as output (with # transformed entries). For example, transforms can accept a single image, or a # tuple of ``(img, label)``, or an arbitrary nested dictionary as input: structured_input = { "img": img, "annotations": (bboxes, label), "something_that_will_be_ignored": (1, "hello") } structured_output = v2.RandomHorizontalFlip(p=1)(structured_input) assert isinstance(structured_output, dict) assert structured_output["something_that_will_be_ignored"] == (1, "hello") print(f"The transformed bboxes are:\n{structured_output['annotations'][0]}") # %% # If you want to reproduce this behavior in your own transform, we invite you to # look at our `code # `_ # and adapt it to your needs. # # In brief, the core logic is to unpack the input into a flat list using `pytree # `_, and # then transform only the entries that can be transformed (the decision is made # based on the **class** of the entries, as all TVTensors are # tensor-subclasses) plus some custom logic that is out of score here - check the # code for details. The (potentially transformed) entries are then repacked and # returned, in the same structure as the input. # # We do not provide public dev-facing tools to achieve that at this time, but if # this is something that would be valuable to you, please let us know by opening # an issue on our `GitHub repo `_. vision-0.19.1/gallery/transforms/plot_custom_tv_tensors.py000066400000000000000000000111311466211133600241560ustar00rootroot00000000000000""" ==================================== How to write your own TVTensor class ==================================== .. note:: Try on `collab `_ or :ref:`go to the end ` to download the full example code. This guide is intended for advanced users and downstream library maintainers. We explain how to write your own TVTensor class, and how to make it compatible with the built-in Torchvision v2 transforms. Before continuing, make sure you have read :ref:`sphx_glr_auto_examples_transforms_plot_tv_tensors.py`. """ # %% import torch from torchvision import tv_tensors from torchvision.transforms import v2 # %% # We will create a very simple class that just inherits from the base # :class:`~torchvision.tv_tensors.TVTensor` class. It will be enough to cover # what you need to know to implement your more elaborate uses-cases. If you need # to create a class that carries meta-data, take a look at how the # :class:`~torchvision.tv_tensors.BoundingBoxes` class is `implemented # `_. class MyTVTensor(tv_tensors.TVTensor): pass my_dp = MyTVTensor([1, 2, 3]) my_dp # %% # Now that we have defined our custom TVTensor class, we want it to be # compatible with the built-in torchvision transforms, and the functional API. # For that, we need to implement a kernel which performs the core of the # transformation, and then "hook" it to the functional that we want to support # via :func:`~torchvision.transforms.v2.functional.register_kernel`. # # We illustrate this process below: we create a kernel for the "horizontal flip" # operation of our MyTVTensor class, and register it to the functional API. from torchvision.transforms.v2 import functional as F @F.register_kernel(functional="hflip", tv_tensor_cls=MyTVTensor) def hflip_my_tv_tensor(my_dp, *args, **kwargs): print("Flipping!") out = my_dp.flip(-1) return tv_tensors.wrap(out, like=my_dp) # %% # To understand why :func:`~torchvision.tv_tensors.wrap` is used, see # :ref:`tv_tensor_unwrapping_behaviour`. Ignore the ``*args, **kwargs`` for now, # we will explain it below in :ref:`param_forwarding`. # # .. note:: # # In our call to ``register_kernel`` above we used a string # ``functional="hflip"`` to refer to the functional we want to hook into. We # could also have used the functional *itself*, i.e. # ``@register_kernel(functional=F.hflip, ...)``. # # Now that we have registered our kernel, we can call the functional API on a # ``MyTVTensor`` instance: my_dp = MyTVTensor(torch.rand(3, 256, 256)) _ = F.hflip(my_dp) # %% # And we can also use the # :class:`~torchvision.transforms.v2.RandomHorizontalFlip` transform, since it relies on :func:`~torchvision.transforms.v2.functional.hflip` internally: t = v2.RandomHorizontalFlip(p=1) _ = t(my_dp) # %% # .. note:: # # We cannot register a kernel for a transform class, we can only register a # kernel for a **functional**. The reason we can't register a transform # class is because one transform may internally rely on more than one # functional, so in general we can't register a single kernel for a given # class. # # .. _param_forwarding: # # Parameter forwarding, and ensuring future compatibility of your kernels # ----------------------------------------------------------------------- # # The functional API that you're hooking into is public and therefore # **backward** compatible: we guarantee that the parameters of these functionals # won't be removed or renamed without a proper deprecation cycle. However, we # don't guarantee **forward** compatibility, and we may add new parameters in # the future. # # Imagine that in a future version, Torchvision adds a new ``inplace`` parameter # to its :func:`~torchvision.transforms.v2.functional.hflip` functional. If you # already defined and registered your own kernel as def hflip_my_tv_tensor(my_dp): # noqa print("Flipping!") out = my_dp.flip(-1) return tv_tensors.wrap(out, like=my_dp) # %% # then calling ``F.hflip(my_dp)`` will **fail**, because ``hflip`` will try to # pass the new ``inplace`` parameter to your kernel, but your kernel doesn't # accept it. # # For this reason, we recommend to always define your kernels with # ``*args, **kwargs`` in their signature, as done above. This way, your kernel # will be able to accept any new parameter that we may add in the future. # (Technically, adding `**kwargs` only should be enough). vision-0.19.1/gallery/transforms/plot_cutmix_mixup.py000066400000000000000000000117571466211133600231270ustar00rootroot00000000000000 """ =========================== How to use CutMix and MixUp =========================== .. note:: Try on `collab `_ or :ref:`go to the end ` to download the full example code. :class:`~torchvision.transforms.v2.CutMix` and :class:`~torchvision.transforms.v2.MixUp` are popular augmentation strategies that can improve classification accuracy. These transforms are slightly different from the rest of the Torchvision transforms, because they expect **batches** of samples as input, not individual images. In this example we'll explain how to use them: after the ``DataLoader``, or as part of a collation function. """ # %% import torch from torchvision.datasets import FakeData from torchvision.transforms import v2 NUM_CLASSES = 100 # %% # Pre-processing pipeline # ----------------------- # # We'll use a simple but typical image classification pipeline: preproc = v2.Compose([ v2.PILToTensor(), v2.RandomResizedCrop(size=(224, 224), antialias=True), v2.RandomHorizontalFlip(p=0.5), v2.ToDtype(torch.float32, scale=True), # to float32 in [0, 1] v2.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225)), # typically from ImageNet ]) dataset = FakeData(size=1000, num_classes=NUM_CLASSES, transform=preproc) img, label = dataset[0] print(f"{type(img) = }, {img.dtype = }, {img.shape = }, {label = }") # %% # # One important thing to note is that neither CutMix nor MixUp are part of this # pre-processing pipeline. We'll add them a bit later once we define the # DataLoader. Just as a refresher, this is what the DataLoader and training loop # would look like if we weren't using CutMix or MixUp: from torch.utils.data import DataLoader dataloader = DataLoader(dataset, batch_size=4, shuffle=True) for images, labels in dataloader: print(f"{images.shape = }, {labels.shape = }") print(labels.dtype) # break # %% # %% # Where to use MixUp and CutMix # ----------------------------- # # After the DataLoader # ^^^^^^^^^^^^^^^^^^^^ # # Now let's add CutMix and MixUp. The simplest way to do this right after the # DataLoader: the Dataloader has already batched the images and labels for us, # and this is exactly what these transforms expect as input: dataloader = DataLoader(dataset, batch_size=4, shuffle=True) cutmix = v2.CutMix(num_classes=NUM_CLASSES) mixup = v2.MixUp(num_classes=NUM_CLASSES) cutmix_or_mixup = v2.RandomChoice([cutmix, mixup]) for images, labels in dataloader: print(f"Before CutMix/MixUp: {images.shape = }, {labels.shape = }") images, labels = cutmix_or_mixup(images, labels) print(f"After CutMix/MixUp: {images.shape = }, {labels.shape = }") # break # %% # # Note how the labels were also transformed: we went from a batched label of # shape (batch_size,) to a tensor of shape (batch_size, num_classes). The # transformed labels can still be passed as-is to a loss function like # :func:`torch.nn.functional.cross_entropy`. # # As part of the collation function # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Passing the transforms after the DataLoader is the simplest way to use CutMix # and MixUp, but one disadvantage is that it does not take advantage of the # DataLoader multi-processing. For that, we can pass those transforms as part of # the collation function (refer to the `PyTorch docs # `_ to learn # more about collation). from torch.utils.data import default_collate def collate_fn(batch): return cutmix_or_mixup(*default_collate(batch)) dataloader = DataLoader(dataset, batch_size=4, shuffle=True, num_workers=2, collate_fn=collate_fn) for images, labels in dataloader: print(f"{images.shape = }, {labels.shape = }") # No need to call cutmix_or_mixup, it's already been called as part of the DataLoader! # break # %% # Non-standard input format # ------------------------- # # So far we've used a typical sample structure where we pass ``(images, # labels)`` as inputs. MixUp and CutMix will magically work by default with most # common sample structures: tuples where the second parameter is a tensor label, # or dict with a "label[s]" key. Look at the documentation of the # ``labels_getter`` parameter for more details. # # If your samples have a different structure, you can still use CutMix and MixUp # by passing a callable to the ``labels_getter`` parameter. For example: batch = { "imgs": torch.rand(4, 3, 224, 224), "target": { "classes": torch.randint(0, NUM_CLASSES, size=(4,)), "some_other_key": "this is going to be passed-through" } } def labels_getter(batch): return batch["target"]["classes"] out = v2.CutMix(num_classes=NUM_CLASSES, labels_getter=labels_getter)(batch) print(f"{out['imgs'].shape = }, {out['target']['classes'].shape = }") vision-0.19.1/gallery/transforms/plot_transforms_e2e.py000066400000000000000000000156131466211133600233200ustar00rootroot00000000000000""" =============================================================== Transforms v2: End-to-end object detection/segmentation example =============================================================== .. note:: Try on `collab `_ or :ref:`go to the end ` to download the full example code. Object detection and segmentation tasks are natively supported: ``torchvision.transforms.v2`` enables jointly transforming images, videos, bounding boxes, and masks. This example showcases an end-to-end instance segmentation training case using Torchvision utils from ``torchvision.datasets``, ``torchvision.models`` and ``torchvision.transforms.v2``. Everything covered here can be applied similarly to object detection or semantic segmentation tasks. """ # %% import pathlib import torch import torch.utils.data from torchvision import models, datasets, tv_tensors from torchvision.transforms import v2 torch.manual_seed(0) # This loads fake data for illustration purposes of this example. In practice, you'll have # to replace this with the proper data. # If you're trying to run that on collab, you can download the assets and the # helpers from https://github.com/pytorch/vision/tree/main/gallery/ ROOT = pathlib.Path("../assets") / "coco" IMAGES_PATH = str(ROOT / "images") ANNOTATIONS_PATH = str(ROOT / "instances.json") from helpers import plot # %% # Dataset preparation # ------------------- # # We start off by loading the :class:`~torchvision.datasets.CocoDetection` dataset to have a look at what it currently # returns. dataset = datasets.CocoDetection(IMAGES_PATH, ANNOTATIONS_PATH) sample = dataset[0] img, target = sample print(f"{type(img) = }\n{type(target) = }\n{type(target[0]) = }\n{target[0].keys() = }") # %% # Torchvision datasets preserve the data structure and types as it was intended # by the datasets authors. So by default, the output structure may not always be # compatible with the models or the transforms. # # To overcome that, we can use the # :func:`~torchvision.datasets.wrap_dataset_for_transforms_v2` function. For # :class:`~torchvision.datasets.CocoDetection`, this changes the target # structure to a single dictionary of lists: dataset = datasets.wrap_dataset_for_transforms_v2(dataset, target_keys=("boxes", "labels", "masks")) sample = dataset[0] img, target = sample print(f"{type(img) = }\n{type(target) = }\n{target.keys() = }") print(f"{type(target['boxes']) = }\n{type(target['labels']) = }\n{type(target['masks']) = }") # %% # We used the ``target_keys`` parameter to specify the kind of output we're # interested in. Our dataset now returns a target which is dict where the values # are :ref:`TVTensors ` (all are :class:`torch.Tensor` # subclasses). We're dropped all unncessary keys from the previous output, but # if you need any of the original keys e.g. "image_id", you can still ask for # it. # # .. note:: # # If you just want to do detection, you don't need and shouldn't pass # "masks" in ``target_keys``: if masks are present in the sample, they will # be transformed, slowing down your transformations unnecessarily. # # As baseline, let's have a look at a sample without transformations: plot([dataset[0], dataset[1]]) # %% # Transforms # ---------- # # Let's now define our pre-processing transforms. All the transforms know how # to handle images, bounding boxes and masks when relevant. # # Transforms are typically passed as the ``transforms`` parameter of the # dataset so that they can leverage multi-processing from the # :class:`torch.utils.data.DataLoader`. transforms = v2.Compose( [ v2.ToImage(), v2.RandomPhotometricDistort(p=1), v2.RandomZoomOut(fill={tv_tensors.Image: (123, 117, 104), "others": 0}), v2.RandomIoUCrop(), v2.RandomHorizontalFlip(p=1), v2.SanitizeBoundingBoxes(), v2.ToDtype(torch.float32, scale=True), ] ) dataset = datasets.CocoDetection(IMAGES_PATH, ANNOTATIONS_PATH, transforms=transforms) dataset = datasets.wrap_dataset_for_transforms_v2(dataset, target_keys=["boxes", "labels", "masks"]) # %% # A few things are worth noting here: # # - We're converting the PIL image into a # :class:`~torchvision.transforms.v2.Image` object. This isn't strictly # necessary, but relying on Tensors (here: a Tensor subclass) will # :ref:`generally be faster `. # - We are calling :class:`~torchvision.transforms.v2.SanitizeBoundingBoxes` to # make sure we remove degenerate bounding boxes, as well as their # corresponding labels and masks. # :class:`~torchvision.transforms.v2.SanitizeBoundingBoxes` should be placed # at least once at the end of a detection pipeline; it is particularly # critical if :class:`~torchvision.transforms.v2.RandomIoUCrop` was used. # # Let's look how the sample looks like with our augmentation pipeline in place: # sphinx_gallery_thumbnail_number = 2 plot([dataset[0], dataset[1]]) # %% # We can see that the color of the images were distorted, zoomed in or out, and flipped. # The bounding boxes and the masks were transformed accordingly. And without any further ado, we can start training. # # Data loading and training loop # ------------------------------ # # Below we're using Mask-RCNN which is an instance segmentation model, but # everything we've covered in this tutorial also applies to object detection and # semantic segmentation tasks. data_loader = torch.utils.data.DataLoader( dataset, batch_size=2, # We need a custom collation function here, since the object detection # models expect a sequence of images and target dictionaries. The default # collation function tries to torch.stack() the individual elements, # which fails in general for object detection, because the number of bounding # boxes varies between the images of the same batch. collate_fn=lambda batch: tuple(zip(*batch)), ) model = models.get_model("maskrcnn_resnet50_fpn_v2", weights=None, weights_backbone=None).train() for imgs, targets in data_loader: loss_dict = model(imgs, targets) # Put your training logic here print(f"{[img.shape for img in imgs] = }") print(f"{[type(target) for target in targets] = }") for name, loss_val in loss_dict.items(): print(f"{name:<20}{loss_val:.3f}") # %% # Training References # ------------------- # # From there, you can check out the `torchvision references # `_ where you'll find # the actual training scripts we use to train our models. # # **Disclaimer** The code in our references is more complex than what you'll # need for your own use-cases: this is because we're supporting different # backends (PIL, tensors, TVTensors) and different transforms namespaces (v1 and # v2). So don't be afraid to simplify and only keep what you need. vision-0.19.1/gallery/transforms/plot_transforms_getting_started.py000066400000000000000000000240471466211133600260350ustar00rootroot00000000000000""" ================================== Getting started with transforms v2 ================================== .. note:: Try on `collab `_ or :ref:`go to the end ` to download the full example code. This example illustrates all of what you need to know to get started with the new :mod:`torchvision.transforms.v2` API. We'll cover simple tasks like image classification, and more advanced ones like object detection / segmentation. """ # %% # First, a bit of setup from pathlib import Path import torch import matplotlib.pyplot as plt plt.rcParams["savefig.bbox"] = 'tight' from torchvision.transforms import v2 from torchvision.io import read_image torch.manual_seed(1) # If you're trying to run that on collab, you can download the assets and the # helpers from https://github.com/pytorch/vision/tree/main/gallery/ from helpers import plot img = read_image(str(Path('../assets') / 'astronaut.jpg')) print(f"{type(img) = }, {img.dtype = }, {img.shape = }") # %% # The basics # ---------- # # The Torchvision transforms behave like a regular :class:`torch.nn.Module` (in # fact, most of them are): instantiate a transform, pass an input, get a # transformed output: transform = v2.RandomCrop(size=(224, 224)) out = transform(img) plot([img, out]) # %% # I just want to do image classification # -------------------------------------- # # If you just care about image classification, things are very simple. A basic # classification pipeline may look like this: transforms = v2.Compose([ v2.RandomResizedCrop(size=(224, 224), antialias=True), v2.RandomHorizontalFlip(p=0.5), v2.ToDtype(torch.float32, scale=True), v2.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]), ]) out = transforms(img) plot([img, out]) # %% # Such transformation pipeline is typically passed as the ``transform`` argument # to the :ref:`Datasets `, e.g. ``ImageNet(..., # transform=transforms)``. # # That's pretty much all there is. From there, read through our :ref:`main docs # ` to learn more about recommended practices and conventions, or # explore more :ref:`examples ` e.g. how to use augmentation # transforms like :ref:`CutMix and MixUp # `. # # .. note:: # # If you're already relying on the ``torchvision.transforms`` v1 API, # we recommend to :ref:`switch to the new v2 transforms`. It's # very easy: the v2 transforms are fully compatible with the v1 API, so you # only need to change the import! # # Detection, Segmentation, Videos # ------------------------------- # # The new Torchvision transforms in the ``torchvision.transforms.v2`` namespace # support tasks beyond image classification: they can also transform bounding # boxes, segmentation / detection masks, or videos. # # Let's briefly look at a detection example with bounding boxes. from torchvision import tv_tensors # we'll describe this a bit later, bare with us boxes = tv_tensors.BoundingBoxes( [ [15, 10, 370, 510], [275, 340, 510, 510], [130, 345, 210, 425] ], format="XYXY", canvas_size=img.shape[-2:]) transforms = v2.Compose([ v2.RandomResizedCrop(size=(224, 224), antialias=True), v2.RandomPhotometricDistort(p=1), v2.RandomHorizontalFlip(p=1), ]) out_img, out_boxes = transforms(img, boxes) print(type(boxes), type(out_boxes)) plot([(img, boxes), (out_img, out_boxes)]) # %% # # The example above focuses on object detection. But if we had masks # (:class:`torchvision.tv_tensors.Mask`) for object segmentation or semantic # segmentation, or videos (:class:`torchvision.tv_tensors.Video`), we could have # passed them to the transforms in exactly the same way. # # By now you likely have a few questions: what are these TVTensors, how do we # use them, and what is the expected input/output of those transforms? We'll # answer these in the next sections. # %% # # .. _what_are_tv_tensors: # # What are TVTensors? # -------------------- # # TVTensors are :class:`torch.Tensor` subclasses. The available TVTensors are # :class:`~torchvision.tv_tensors.Image`, # :class:`~torchvision.tv_tensors.BoundingBoxes`, # :class:`~torchvision.tv_tensors.Mask`, and # :class:`~torchvision.tv_tensors.Video`. # # TVTensors look and feel just like regular tensors - they **are** tensors. # Everything that is supported on a plain :class:`torch.Tensor` like ``.sum()`` # or any ``torch.*`` operator will also work on a TVTensor: img_dp = tv_tensors.Image(torch.randint(0, 256, (3, 256, 256), dtype=torch.uint8)) print(f"{isinstance(img_dp, torch.Tensor) = }") print(f"{img_dp.dtype = }, {img_dp.shape = }, {img_dp.sum() = }") # %% # These TVTensor classes are at the core of the transforms: in order to # transform a given input, the transforms first look at the **class** of the # object, and dispatch to the appropriate implementation accordingly. # # You don't need to know much more about TVTensors at this point, but advanced # users who want to learn more can refer to # :ref:`sphx_glr_auto_examples_transforms_plot_tv_tensors.py`. # # What do I pass as input? # ------------------------ # # Above, we've seen two examples: one where we passed a single image as input # i.e. ``out = transforms(img)``, and one where we passed both an image and # bounding boxes, i.e. ``out_img, out_boxes = transforms(img, boxes)``. # # In fact, transforms support **arbitrary input structures**. The input can be a # single image, a tuple, an arbitrarily nested dictionary... pretty much # anything. The same structure will be returned as output. Below, we use the # same detection transforms, but pass a tuple (image, target_dict) as input and # we're getting the same structure as output: target = { "boxes": boxes, "labels": torch.arange(boxes.shape[0]), "this_is_ignored": ("arbitrary", {"structure": "!"}) } # Re-using the transforms and definitions from above. out_img, out_target = transforms(img, target) # sphinx_gallery_thumbnail_number = 4 plot([(img, target["boxes"]), (out_img, out_target["boxes"])]) print(f"{out_target['this_is_ignored']}") # %% # We passed a tuple so we get a tuple back, and the second element is the # tranformed target dict. Transforms don't really care about the structure of # the input; as mentioned above, they only care about the **type** of the # objects and transforms them accordingly. # # *Foreign* objects like strings or ints are simply passed-through. This can be # useful e.g. if you want to associate a path with every single sample when # debugging! # # .. _passthrough_heuristic: # # .. note:: # # **Disclaimer** This note is slightly advanced and can be safely skipped on # a first read. # # Pure :class:`torch.Tensor` objects are, in general, treated as images (or # as videos for video-specific transforms). Indeed, you may have noticed # that in the code above we haven't used the # :class:`~torchvision.tv_tensors.Image` class at all, and yet our images # got transformed properly. Transforms follow the following logic to # determine whether a pure Tensor should be treated as an image (or video), # or just ignored: # # * If there is an :class:`~torchvision.tv_tensors.Image`, # :class:`~torchvision.tv_tensors.Video`, # or :class:`PIL.Image.Image` instance in the input, all other pure # tensors are passed-through. # * If there is no :class:`~torchvision.tv_tensors.Image` or # :class:`~torchvision.tv_tensors.Video` instance, only the first pure # :class:`torch.Tensor` will be transformed as image or video, while all # others will be passed-through. Here "first" means "first in a depth-wise # traversal". # # This is what happened in the detection example above: the first pure # tensor was the image so it got transformed properly, and all other pure # tensor instances like the ``labels`` were passed-through (although labels # can still be transformed by some transforms like # :class:`~torchvision.transforms.v2.SanitizeBoundingBoxes`!). # # .. _transforms_datasets_intercompatibility: # # Transforms and Datasets intercompatibility # ------------------------------------------ # # Roughly speaking, the output of the datasets must correspond to the input of # the transforms. How to do that depends on whether you're using the torchvision # :ref:`built-in datatsets `, or your own custom datasets. # # Using built-in datasets # ^^^^^^^^^^^^^^^^^^^^^^^ # # If you're just doing image classification, you don't need to do anything. Just # use ``transform`` argument of the dataset e.g. ``ImageNet(..., # transform=transforms)`` and you're good to go. # # Torchvision also supports datasets for object detection or segmentation like # :class:`torchvision.datasets.CocoDetection`. Those datasets predate # the existence of the :mod:`torchvision.transforms.v2` module and of the # TVTensors, so they don't return TVTensors out of the box. # # An easy way to force those datasets to return TVTensors and to make them # compatible with v2 transforms is to use the # :func:`torchvision.datasets.wrap_dataset_for_transforms_v2` function: # # .. code-block:: python # # from torchvision.datasets import CocoDetection, wrap_dataset_for_transforms_v2 # # dataset = CocoDetection(..., transforms=my_transforms) # dataset = wrap_dataset_for_transforms_v2(dataset) # # Now the dataset returns TVTensors! # # Using your own datasets # ^^^^^^^^^^^^^^^^^^^^^^^ # # If you have a custom dataset, then you'll need to convert your objects into # the appropriate TVTensor classes. Creating TVTensor instances is very easy, # refer to :ref:`tv_tensor_creation` for more details. # # There are two main places where you can implement that conversion logic: # # - At the end of the datasets's ``__getitem__`` method, before returning the # sample (or by sub-classing the dataset). # - As the very first step of your transforms pipeline # # Either way, the logic will depend on your specific dataset. vision-0.19.1/gallery/transforms/plot_transforms_illustrations.py000066400000000000000000000300451466211133600255550ustar00rootroot00000000000000""" ========================== Illustration of transforms ========================== .. note:: Try on `collab `_ or :ref:`go to the end ` to download the full example code. This example illustrates some of the various transforms available in :ref:`the torchvision.transforms.v2 module `. """ # %% # sphinx_gallery_thumbnail_path = "../../gallery/assets/transforms_thumbnail.png" from PIL import Image from pathlib import Path import matplotlib.pyplot as plt import torch from torchvision.transforms import v2 plt.rcParams["savefig.bbox"] = 'tight' # if you change the seed, make sure that the randomly-applied transforms # properly show that the image can be both transformed and *not* transformed! torch.manual_seed(0) # If you're trying to run that on collab, you can download the assets and the # helpers from https://github.com/pytorch/vision/tree/main/gallery/ from helpers import plot orig_img = Image.open(Path('../assets') / 'astronaut.jpg') # %% # Geometric Transforms # -------------------- # Geometric image transformation refers to the process of altering the geometric properties of an image, # such as its shape, size, orientation, or position. # It involves applying mathematical operations to the image pixels or coordinates to achieve the desired transformation. # # Pad # ~~~ # The :class:`~torchvision.transforms.Pad` transform # (see also :func:`~torchvision.transforms.functional.pad`) # pads all image borders with some pixel values. padded_imgs = [v2.Pad(padding=padding)(orig_img) for padding in (3, 10, 30, 50)] plot([orig_img] + padded_imgs) # %% # Resize # ~~~~~~ # The :class:`~torchvision.transforms.Resize` transform # (see also :func:`~torchvision.transforms.functional.resize`) # resizes an image. resized_imgs = [v2.Resize(size=size)(orig_img) for size in (30, 50, 100, orig_img.size)] plot([orig_img] + resized_imgs) # %% # CenterCrop # ~~~~~~~~~~ # The :class:`~torchvision.transforms.CenterCrop` transform # (see also :func:`~torchvision.transforms.functional.center_crop`) # crops the given image at the center. center_crops = [v2.CenterCrop(size=size)(orig_img) for size in (30, 50, 100, orig_img.size)] plot([orig_img] + center_crops) # %% # FiveCrop # ~~~~~~~~ # The :class:`~torchvision.transforms.FiveCrop` transform # (see also :func:`~torchvision.transforms.functional.five_crop`) # crops the given image into four corners and the central crop. (top_left, top_right, bottom_left, bottom_right, center) = v2.FiveCrop(size=(100, 100))(orig_img) plot([orig_img] + [top_left, top_right, bottom_left, bottom_right, center]) # %% # RandomPerspective # ~~~~~~~~~~~~~~~~~ # The :class:`~torchvision.transforms.RandomPerspective` transform # (see also :func:`~torchvision.transforms.functional.perspective`) # performs random perspective transform on an image. perspective_transformer = v2.RandomPerspective(distortion_scale=0.6, p=1.0) perspective_imgs = [perspective_transformer(orig_img) for _ in range(4)] plot([orig_img] + perspective_imgs) # %% # RandomRotation # ~~~~~~~~~~~~~~ # The :class:`~torchvision.transforms.RandomRotation` transform # (see also :func:`~torchvision.transforms.functional.rotate`) # rotates an image with random angle. rotater = v2.RandomRotation(degrees=(0, 180)) rotated_imgs = [rotater(orig_img) for _ in range(4)] plot([orig_img] + rotated_imgs) # %% # RandomAffine # ~~~~~~~~~~~~ # The :class:`~torchvision.transforms.RandomAffine` transform # (see also :func:`~torchvision.transforms.functional.affine`) # performs random affine transform on an image. affine_transfomer = v2.RandomAffine(degrees=(30, 70), translate=(0.1, 0.3), scale=(0.5, 0.75)) affine_imgs = [affine_transfomer(orig_img) for _ in range(4)] plot([orig_img] + affine_imgs) # %% # ElasticTransform # ~~~~~~~~~~~~~~~~ # The :class:`~torchvision.transforms.ElasticTransform` transform # (see also :func:`~torchvision.transforms.functional.elastic_transform`) # Randomly transforms the morphology of objects in images and produces a # see-through-water-like effect. elastic_transformer = v2.ElasticTransform(alpha=250.0) transformed_imgs = [elastic_transformer(orig_img) for _ in range(2)] plot([orig_img] + transformed_imgs) # %% # RandomCrop # ~~~~~~~~~~ # The :class:`~torchvision.transforms.RandomCrop` transform # (see also :func:`~torchvision.transforms.functional.crop`) # crops an image at a random location. cropper = v2.RandomCrop(size=(128, 128)) crops = [cropper(orig_img) for _ in range(4)] plot([orig_img] + crops) # %% # RandomResizedCrop # ~~~~~~~~~~~~~~~~~ # The :class:`~torchvision.transforms.RandomResizedCrop` transform # (see also :func:`~torchvision.transforms.functional.resized_crop`) # crops an image at a random location, and then resizes the crop to a given # size. resize_cropper = v2.RandomResizedCrop(size=(32, 32)) resized_crops = [resize_cropper(orig_img) for _ in range(4)] plot([orig_img] + resized_crops) # %% # Photometric Transforms # ---------------------- # Photometric image transformation refers to the process of modifying the photometric properties of an image, # such as its brightness, contrast, color, or tone. # These transformations are applied to change the visual appearance of an image # while preserving its geometric structure. # # Except :class:`~torchvision.transforms.Grayscale`, the following transforms are random, # which means that the same transform # instance will produce different result each time it transforms a given image. # # Grayscale # ~~~~~~~~~ # The :class:`~torchvision.transforms.Grayscale` transform # (see also :func:`~torchvision.transforms.functional.to_grayscale`) # converts an image to grayscale gray_img = v2.Grayscale()(orig_img) plot([orig_img, gray_img], cmap='gray') # %% # ColorJitter # ~~~~~~~~~~~ # The :class:`~torchvision.transforms.ColorJitter` transform # randomly changes the brightness, contrast, saturation, hue, and other properties of an image. jitter = v2.ColorJitter(brightness=.5, hue=.3) jittered_imgs = [jitter(orig_img) for _ in range(4)] plot([orig_img] + jittered_imgs) # %% # GaussianBlur # ~~~~~~~~~~~~ # The :class:`~torchvision.transforms.GaussianBlur` transform # (see also :func:`~torchvision.transforms.functional.gaussian_blur`) # performs gaussian blur transform on an image. blurrer = v2.GaussianBlur(kernel_size=(5, 9), sigma=(0.1, 5.)) blurred_imgs = [blurrer(orig_img) for _ in range(4)] plot([orig_img] + blurred_imgs) # %% # RandomInvert # ~~~~~~~~~~~~ # The :class:`~torchvision.transforms.RandomInvert` transform # (see also :func:`~torchvision.transforms.functional.invert`) # randomly inverts the colors of the given image. inverter = v2.RandomInvert() invertered_imgs = [inverter(orig_img) for _ in range(4)] plot([orig_img] + invertered_imgs) # %% # RandomPosterize # ~~~~~~~~~~~~~~~ # The :class:`~torchvision.transforms.RandomPosterize` transform # (see also :func:`~torchvision.transforms.functional.posterize`) # randomly posterizes the image by reducing the number of bits # of each color channel. posterizer = v2.RandomPosterize(bits=2) posterized_imgs = [posterizer(orig_img) for _ in range(4)] plot([orig_img] + posterized_imgs) # %% # RandomSolarize # ~~~~~~~~~~~~~~ # The :class:`~torchvision.transforms.RandomSolarize` transform # (see also :func:`~torchvision.transforms.functional.solarize`) # randomly solarizes the image by inverting all pixel values above # the threshold. solarizer = v2.RandomSolarize(threshold=192.0) solarized_imgs = [solarizer(orig_img) for _ in range(4)] plot([orig_img] + solarized_imgs) # %% # RandomAdjustSharpness # ~~~~~~~~~~~~~~~~~~~~~ # The :class:`~torchvision.transforms.RandomAdjustSharpness` transform # (see also :func:`~torchvision.transforms.functional.adjust_sharpness`) # randomly adjusts the sharpness of the given image. sharpness_adjuster = v2.RandomAdjustSharpness(sharpness_factor=2) sharpened_imgs = [sharpness_adjuster(orig_img) for _ in range(4)] plot([orig_img] + sharpened_imgs) # %% # RandomAutocontrast # ~~~~~~~~~~~~~~~~~~ # The :class:`~torchvision.transforms.RandomAutocontrast` transform # (see also :func:`~torchvision.transforms.functional.autocontrast`) # randomly applies autocontrast to the given image. autocontraster = v2.RandomAutocontrast() autocontrasted_imgs = [autocontraster(orig_img) for _ in range(4)] plot([orig_img] + autocontrasted_imgs) # %% # RandomEqualize # ~~~~~~~~~~~~~~ # The :class:`~torchvision.transforms.RandomEqualize` transform # (see also :func:`~torchvision.transforms.functional.equalize`) # randomly equalizes the histogram of the given image. equalizer = v2.RandomEqualize() equalized_imgs = [equalizer(orig_img) for _ in range(4)] plot([orig_img] + equalized_imgs) # %% # JPEG # ~~~~~~~~~~~~~~ # The :class:`~torchvision.transforms.v2.JPEG` transform # (see also :func:`~torchvision.transforms.v2.functional.jpeg`) # applies JPEG compression to the given image with random # degree of compression. jpeg = v2.JPEG((5, 50)) jpeg_imgs = [jpeg(orig_img) for _ in range(4)] plot([orig_img] + jpeg_imgs) # %% # Augmentation Transforms # ----------------------- # The following transforms are combinations of multiple transforms, # either geometric or photometric, or both. # # AutoAugment # ~~~~~~~~~~~ # The :class:`~torchvision.transforms.AutoAugment` transform # automatically augments data based on a given auto-augmentation policy. # See :class:`~torchvision.transforms.AutoAugmentPolicy` for the available policies. policies = [v2.AutoAugmentPolicy.CIFAR10, v2.AutoAugmentPolicy.IMAGENET, v2.AutoAugmentPolicy.SVHN] augmenters = [v2.AutoAugment(policy) for policy in policies] imgs = [ [augmenter(orig_img) for _ in range(4)] for augmenter in augmenters ] row_title = [str(policy).split('.')[-1] for policy in policies] plot([[orig_img] + row for row in imgs], row_title=row_title) # %% # RandAugment # ~~~~~~~~~~~ # The :class:`~torchvision.transforms.RandAugment` is an alternate version of AutoAugment. augmenter = v2.RandAugment() imgs = [augmenter(orig_img) for _ in range(4)] plot([orig_img] + imgs) # %% # TrivialAugmentWide # ~~~~~~~~~~~~~~~~~~ # The :class:`~torchvision.transforms.TrivialAugmentWide` is an alternate implementation of AutoAugment. # However, instead of transforming an image multiple times, it transforms an image only once # using a random transform from a given list with a random strength number. augmenter = v2.TrivialAugmentWide() imgs = [augmenter(orig_img) for _ in range(4)] plot([orig_img] + imgs) # %% # AugMix # ~~~~~~ # The :class:`~torchvision.transforms.AugMix` transform interpolates between augmented versions of an image. augmenter = v2.AugMix() imgs = [augmenter(orig_img) for _ in range(4)] plot([orig_img] + imgs) # %% # Randomly-applied Transforms # --------------------------- # # The following transforms are randomly-applied given a probability ``p``. That is, given ``p = 0.5``, # there is a 50% chance to return the original image, and a 50% chance to return the transformed image, # even when called with the same transform instance! # # RandomHorizontalFlip # ~~~~~~~~~~~~~~~~~~~~ # The :class:`~torchvision.transforms.RandomHorizontalFlip` transform # (see also :func:`~torchvision.transforms.functional.hflip`) # performs horizontal flip of an image, with a given probability. hflipper = v2.RandomHorizontalFlip(p=0.5) transformed_imgs = [hflipper(orig_img) for _ in range(4)] plot([orig_img] + transformed_imgs) # %% # RandomVerticalFlip # ~~~~~~~~~~~~~~~~~~ # The :class:`~torchvision.transforms.RandomVerticalFlip` transform # (see also :func:`~torchvision.transforms.functional.vflip`) # performs vertical flip of an image, with a given probability. vflipper = v2.RandomVerticalFlip(p=0.5) transformed_imgs = [vflipper(orig_img) for _ in range(4)] plot([orig_img] + transformed_imgs) # %% # RandomApply # ~~~~~~~~~~~ # The :class:`~torchvision.transforms.RandomApply` transform # randomly applies a list of transforms, with a given probability. applier = v2.RandomApply(transforms=[v2.RandomCrop(size=(64, 64))], p=0.5) transformed_imgs = [applier(orig_img) for _ in range(4)] plot([orig_img] + transformed_imgs) vision-0.19.1/gallery/transforms/plot_tv_tensors.py000066400000000000000000000173771466211133600226060ustar00rootroot00000000000000""" ============= TVTensors FAQ ============= .. note:: Try on `collab `_ or :ref:`go to the end ` to download the full example code. TVTensors are Tensor subclasses introduced together with ``torchvision.transforms.v2``. This example showcases what these TVTensors are and how they behave. .. warning:: **Intended Audience** Unless you're writing your own transforms or your own TVTensors, you probably do not need to read this guide. This is a fairly low-level topic that most users will not need to worry about: you do not need to understand the internals of TVTensors to efficiently rely on ``torchvision.transforms.v2``. It may however be useful for advanced users trying to implement their own datasets, transforms, or work directly with the TVTensors. """ # %% import PIL.Image import torch from torchvision import tv_tensors # %% # What are TVTensors? # ------------------- # # TVTensors are zero-copy tensor subclasses: tensor = torch.rand(3, 256, 256) image = tv_tensors.Image(tensor) assert isinstance(image, torch.Tensor) assert image.data_ptr() == tensor.data_ptr() # %% # Under the hood, they are needed in :mod:`torchvision.transforms.v2` to correctly dispatch to the appropriate function # for the input data. # # :mod:`torchvision.tv_tensors` supports four types of TVTensors: # # * :class:`~torchvision.tv_tensors.Image` # * :class:`~torchvision.tv_tensors.Video` # * :class:`~torchvision.tv_tensors.BoundingBoxes` # * :class:`~torchvision.tv_tensors.Mask` # # What can I do with a TVTensor? # ------------------------------ # # TVTensors look and feel just like regular tensors - they **are** tensors. # Everything that is supported on a plain :class:`torch.Tensor` like ``.sum()`` or # any ``torch.*`` operator will also work on TVTensors. See # :ref:`tv_tensor_unwrapping_behaviour` for a few gotchas. # %% # .. _tv_tensor_creation: # # How do I construct a TVTensor? # ------------------------------ # # Using the constructor # ^^^^^^^^^^^^^^^^^^^^^ # # Each TVTensor class takes any tensor-like data that can be turned into a :class:`~torch.Tensor` image = tv_tensors.Image([[[[0, 1], [1, 0]]]]) print(image) # %% # Similar to other PyTorch creations ops, the constructor also takes the ``dtype``, ``device``, and ``requires_grad`` # parameters. float_image = tv_tensors.Image([[[0, 1], [1, 0]]], dtype=torch.float32, requires_grad=True) print(float_image) # %% # In addition, :class:`~torchvision.tv_tensors.Image` and :class:`~torchvision.tv_tensors.Mask` can also take a # :class:`PIL.Image.Image` directly: image = tv_tensors.Image(PIL.Image.open("../assets/astronaut.jpg")) print(image.shape, image.dtype) # %% # Some TVTensors require additional metadata to be passed in ordered to be constructed. For example, # :class:`~torchvision.tv_tensors.BoundingBoxes` requires the coordinate format as well as the size of the # corresponding image (``canvas_size``) alongside the actual values. These # metadata are required to properly transform the bounding boxes. bboxes = tv_tensors.BoundingBoxes( [[17, 16, 344, 495], [0, 10, 0, 10]], format=tv_tensors.BoundingBoxFormat.XYXY, canvas_size=image.shape[-2:] ) print(bboxes) # %% # Using ``tv_tensors.wrap()`` # ^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # You can also use the :func:`~torchvision.tv_tensors.wrap` function to wrap a tensor object # into a TVTensor. This is useful when you already have an object of the # desired type, which typically happens when writing transforms: you just want # to wrap the output like the input. new_bboxes = torch.tensor([0, 20, 30, 40]) new_bboxes = tv_tensors.wrap(new_bboxes, like=bboxes) assert isinstance(new_bboxes, tv_tensors.BoundingBoxes) assert new_bboxes.canvas_size == bboxes.canvas_size # %% # The metadata of ``new_bboxes`` is the same as ``bboxes``, but you could pass # it as a parameter to override it. # # .. _tv_tensor_unwrapping_behaviour: # # I had a TVTensor but now I have a Tensor. Help! # ----------------------------------------------- # # By default, operations on :class:`~torchvision.tv_tensors.TVTensor` objects # will return a pure Tensor: assert isinstance(bboxes, tv_tensors.BoundingBoxes) # Shift bboxes by 3 pixels in both H and W new_bboxes = bboxes + 3 assert isinstance(new_bboxes, torch.Tensor) assert not isinstance(new_bboxes, tv_tensors.BoundingBoxes) # %% # .. note:: # # This behavior only affects native ``torch`` operations. If you are using # the built-in ``torchvision`` transforms or functionals, you will always get # as output the same type that you passed as input (pure ``Tensor`` or # ``TVTensor``). # %% # But I want a TVTensor back! # ^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # You can re-wrap a pure tensor into a TVTensor by just calling the TVTensor # constructor, or by using the :func:`~torchvision.tv_tensors.wrap` function # (see more details above in :ref:`tv_tensor_creation`): new_bboxes = bboxes + 3 new_bboxes = tv_tensors.wrap(new_bboxes, like=bboxes) assert isinstance(new_bboxes, tv_tensors.BoundingBoxes) # %% # Alternatively, you can use the :func:`~torchvision.tv_tensors.set_return_type` # as a global config setting for the whole program, or as a context manager # (read its docs to learn more about caveats): with tv_tensors.set_return_type("TVTensor"): new_bboxes = bboxes + 3 assert isinstance(new_bboxes, tv_tensors.BoundingBoxes) # %% # Why is this happening? # ^^^^^^^^^^^^^^^^^^^^^^ # # **For performance reasons**. :class:`~torchvision.tv_tensors.TVTensor` # classes are Tensor subclasses, so any operation involving a # :class:`~torchvision.tv_tensors.TVTensor` object will go through the # `__torch_function__ # `_ # protocol. This induces a small overhead, which we want to avoid when possible. # This doesn't matter for built-in ``torchvision`` transforms because we can # avoid the overhead there, but it could be a problem in your model's # ``forward``. # # **The alternative isn't much better anyway.** For every operation where # preserving the :class:`~torchvision.tv_tensors.TVTensor` type makes # sense, there are just as many operations where returning a pure Tensor is # preferable: for example, is ``img.sum()`` still an :class:`~torchvision.tv_tensors.Image`? # If we were to preserve :class:`~torchvision.tv_tensors.TVTensor` types all # the way, even model's logits or the output of the loss function would end up # being of type :class:`~torchvision.tv_tensors.Image`, and surely that's not # desirable. # # .. note:: # # This behaviour is something we're actively seeking feedback on. If you find this surprising or if you # have any suggestions on how to better support your use-cases, please reach out to us via this issue: # https://github.com/pytorch/vision/issues/7319 # # Exceptions # ^^^^^^^^^^ # # There are a few exceptions to this "unwrapping" rule: # :meth:`~torch.Tensor.clone`, :meth:`~torch.Tensor.to`, # :meth:`torch.Tensor.detach`, and :meth:`~torch.Tensor.requires_grad_` retain # the TVTensor type. # # Inplace operations on TVTensors like ``obj.add_()`` will preserve the type of # ``obj``. However, the **returned** value of inplace operations will be a pure # tensor: image = tv_tensors.Image([[[0, 1], [1, 0]]]) new_image = image.add_(1).mul_(2) # image got transformed in-place and is still a TVTensor Image, but new_image # is a Tensor. They share the same underlying data and they're equal, just # different classes. assert isinstance(image, tv_tensors.Image) print(image) assert isinstance(new_image, torch.Tensor) and not isinstance(new_image, tv_tensors.Image) assert (new_image == image).all() assert new_image.data_ptr() == image.data_ptr() vision-0.19.1/hubconf.py000066400000000000000000000047651466211133600151260ustar00rootroot00000000000000# Optional list of dependencies required by the package dependencies = ["torch"] from torchvision.models import get_model_weights, get_weight from torchvision.models.alexnet import alexnet from torchvision.models.convnext import convnext_base, convnext_large, convnext_small, convnext_tiny from torchvision.models.densenet import densenet121, densenet161, densenet169, densenet201 from torchvision.models.efficientnet import ( efficientnet_b0, efficientnet_b1, efficientnet_b2, efficientnet_b3, efficientnet_b4, efficientnet_b5, efficientnet_b6, efficientnet_b7, efficientnet_v2_l, efficientnet_v2_m, efficientnet_v2_s, ) from torchvision.models.googlenet import googlenet from torchvision.models.inception import inception_v3 from torchvision.models.maxvit import maxvit_t from torchvision.models.mnasnet import mnasnet0_5, mnasnet0_75, mnasnet1_0, mnasnet1_3 from torchvision.models.mobilenetv2 import mobilenet_v2 from torchvision.models.mobilenetv3 import mobilenet_v3_large, mobilenet_v3_small from torchvision.models.optical_flow import raft_large, raft_small from torchvision.models.regnet import ( regnet_x_16gf, regnet_x_1_6gf, regnet_x_32gf, regnet_x_3_2gf, regnet_x_400mf, regnet_x_800mf, regnet_x_8gf, regnet_y_128gf, regnet_y_16gf, regnet_y_1_6gf, regnet_y_32gf, regnet_y_3_2gf, regnet_y_400mf, regnet_y_800mf, regnet_y_8gf, ) from torchvision.models.resnet import ( resnet101, resnet152, resnet18, resnet34, resnet50, resnext101_32x8d, resnext101_64x4d, resnext50_32x4d, wide_resnet101_2, wide_resnet50_2, ) from torchvision.models.segmentation import ( deeplabv3_mobilenet_v3_large, deeplabv3_resnet101, deeplabv3_resnet50, fcn_resnet101, fcn_resnet50, lraspp_mobilenet_v3_large, ) from torchvision.models.shufflenetv2 import ( shufflenet_v2_x0_5, shufflenet_v2_x1_0, shufflenet_v2_x1_5, shufflenet_v2_x2_0, ) from torchvision.models.squeezenet import squeezenet1_0, squeezenet1_1 from torchvision.models.swin_transformer import swin_b, swin_s, swin_t, swin_v2_b, swin_v2_s, swin_v2_t from torchvision.models.vgg import vgg11, vgg11_bn, vgg13, vgg13_bn, vgg16, vgg16_bn, vgg19, vgg19_bn from torchvision.models.video import ( mc3_18, mvit_v1_b, mvit_v2_s, r2plus1d_18, r3d_18, s3d, swin3d_b, swin3d_s, swin3d_t, ) from torchvision.models.vision_transformer import vit_b_16, vit_b_32, vit_h_14, vit_l_16, vit_l_32 vision-0.19.1/ios/000077500000000000000000000000001466211133600137065ustar00rootroot00000000000000vision-0.19.1/ios/CMakeLists.txt000066400000000000000000000012001466211133600164370ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.4.1) set(TARGET torchvision_ops) project(${TARGET} CXX) set(CMAKE_CXX_STANDARD 17) set(LIBTORCH_HEADER_ROOT ${LIBTORCH_HEADER_ROOT}) set(LIBRARY_OUTPUT_PATH ../lib) file(GLOB VISION_SRCS ../torchvision/csrc/ops/cpu/*.h ../torchvision/csrc/ops/cpu/*.cpp ../torchvision/csrc/ops/*.h ../torchvision/csrc/ops/*.cpp) add_library(${TARGET} STATIC ${VISION_SRCS} ) file(GLOB PYTORCH_HEADERS "${LIBTORCH_HEADER_ROOT}") file(GLOB PYTORCH_HEADERS_CSRC "${LIBTORCH_HEADER_ROOT}/torch/csrc/api/include") target_include_directories(${TARGET} PRIVATE ${PYTORCH_HEADERS} ${PYTORCH_HEADERS_CSRC} ) vision-0.19.1/ios/LibTorchvision.podspec000066400000000000000000000020751466211133600202270ustar00rootroot00000000000000pytorch_version = '2.0.0' Pod::Spec.new do |s| s.name = 'LibTorchvision' s.version = '0.15.1' s.authors = 'PyTorch Team' s.license = { :type => 'BSD' } s.homepage = 'https://github.com/pytorch/vision' s.source = { :http => "https://ossci-ios.s3.amazonaws.com/libtorchvision_ops_ios_#{s.version}.zip" } s.summary = '"The C++ library of TorchVision ops for iOS' s.description = <<-DESC The C++ library of TorchVision ops for iOS. This version (#{s.version}) requires the installation of LibTorch #{pytorch_version} or LibTorch-Lite #{pytorch_version}. DESC s.ios.deployment_target = '12.0' s.vendored_libraries = 'install/lib/*.a' s.user_target_xcconfig = { 'VALID_ARCHS' => 'x86_64 arm64', 'OTHER_LDFLAGS' => '$(inherited) -force_load "$(PODS_ROOT)/LibTorchvision/install/lib/libtorchvision_ops.a"', 'CLANG_CXX_LANGUAGE_STANDARD' => 'c++14', 'CLANG_CXX_LIBRARY' => 'libc++' } s.library = ['c++', 'stdc++'] end vision-0.19.1/ios/README.md000066400000000000000000000001431466211133600151630ustar00rootroot00000000000000## Status The iOS demo of TorchVision is currently unmaintained, untested and likely out-of-date. vision-0.19.1/ios/VisionTestApp/000077500000000000000000000000001466211133600164565ustar00rootroot00000000000000vision-0.19.1/ios/VisionTestApp/VisionTestApp.xcodeproj/000077500000000000000000000000001466211133600232225ustar00rootroot00000000000000vision-0.19.1/ios/VisionTestApp/VisionTestApp.xcodeproj/project.pbxproj000066400000000000000000000410051466211133600262760ustar00rootroot00000000000000// !$*UTF8*$! { archiveVersion = 1; classes = { }; objectVersion = 50; objects = { /* Begin PBXBuildFile section */ 0C12EF7626163B7600B66C86 /* frcnn_mnetv3.pt in Resources */ = {isa = PBXBuildFile; fileRef = 0C12EF7526163B7600B66C86 /* frcnn_mnetv3.pt */; }; 0CDCAE46274ED8FA006F9077 /* CoreML.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0CDCAE45274ED8FA006F9077 /* CoreML.framework */; }; 0CDCAE48274ED902006F9077 /* MetalPerformanceShaders.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0CDCAE47274ED902006F9077 /* MetalPerformanceShaders.framework */; }; 0CDCAE4A274ED909006F9077 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0CDCAE49274ED909006F9077 /* Accelerate.framework */; }; 0CEB0AC026151A8800F1F7D5 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CEB0ABF26151A8800F1F7D5 /* AppDelegate.m */; }; 0CEB0AC626151A8800F1F7D5 /* ViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0CEB0AC526151A8800F1F7D5 /* ViewController.mm */; }; 0CEB0AC926151A8800F1F7D5 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0CEB0AC726151A8800F1F7D5 /* Main.storyboard */; }; 0CEB0ACB26151A8900F1F7D5 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0CEB0ACA26151A8900F1F7D5 /* Assets.xcassets */; }; 0CEB0ACE26151A8900F1F7D5 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0CEB0ACC26151A8900F1F7D5 /* LaunchScreen.storyboard */; }; 0CEB0AD126151A8900F1F7D5 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CEB0AD026151A8900F1F7D5 /* main.m */; }; 0CEB0B3A26152ED900F1F7D5 /* ModelRunner.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0CEB0B3926152ED900F1F7D5 /* ModelRunner.mm */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ 0C12EF7526163B7600B66C86 /* frcnn_mnetv3.pt */ = {isa = PBXFileReference; lastKnownFileType = file; path = frcnn_mnetv3.pt; sourceTree = ""; }; 0CDCAE45274ED8FA006F9077 /* CoreML.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreML.framework; path = System/Library/Frameworks/CoreML.framework; sourceTree = SDKROOT; }; 0CDCAE47274ED902006F9077 /* MetalPerformanceShaders.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MetalPerformanceShaders.framework; path = System/Library/Frameworks/MetalPerformanceShaders.framework; sourceTree = SDKROOT; }; 0CDCAE49274ED909006F9077 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; 0CEB0ABB26151A8800F1F7D5 /* VisionTestApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = VisionTestApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; 0CEB0ABE26151A8800F1F7D5 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 0CEB0ABF26151A8800F1F7D5 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 0CEB0AC426151A8800F1F7D5 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; 0CEB0AC526151A8800F1F7D5 /* ViewController.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = ViewController.mm; sourceTree = ""; }; 0CEB0AC826151A8800F1F7D5 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 0CEB0ACA26151A8900F1F7D5 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 0CEB0ACD26151A8900F1F7D5 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 0CEB0ACF26151A8900F1F7D5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 0CEB0AD026151A8900F1F7D5 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 0CEB0B3826152ED900F1F7D5 /* ModelRunner.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ModelRunner.h; sourceTree = ""; }; 0CEB0B3926152ED900F1F7D5 /* ModelRunner.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = ModelRunner.mm; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ 0CEB0AB826151A8800F1F7D5 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( 0CDCAE4A274ED909006F9077 /* Accelerate.framework in Frameworks */, 0CDCAE48274ED902006F9077 /* MetalPerformanceShaders.framework in Frameworks */, 0CDCAE46274ED8FA006F9077 /* CoreML.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ 0C12EF6F26163A4C00B66C86 /* Frameworks */ = { isa = PBXGroup; children = ( 0CDCAE49274ED909006F9077 /* Accelerate.framework */, 0CDCAE47274ED902006F9077 /* MetalPerformanceShaders.framework */, 0CDCAE45274ED8FA006F9077 /* CoreML.framework */, ); name = Frameworks; sourceTree = ""; }; 0CEB0AB226151A8800F1F7D5 = { isa = PBXGroup; children = ( 0CEB0ABD26151A8800F1F7D5 /* VisionTestApp */, 0CEB0ABC26151A8800F1F7D5 /* Products */, 0C12EF6F26163A4C00B66C86 /* Frameworks */, ); sourceTree = ""; }; 0CEB0ABC26151A8800F1F7D5 /* Products */ = { isa = PBXGroup; children = ( 0CEB0ABB26151A8800F1F7D5 /* VisionTestApp.app */, ); name = Products; sourceTree = ""; }; 0CEB0ABD26151A8800F1F7D5 /* VisionTestApp */ = { isa = PBXGroup; children = ( 0CEB0B3826152ED900F1F7D5 /* ModelRunner.h */, 0CEB0B3926152ED900F1F7D5 /* ModelRunner.mm */, 0CEB0ABE26151A8800F1F7D5 /* AppDelegate.h */, 0CEB0ABF26151A8800F1F7D5 /* AppDelegate.m */, 0CEB0AC426151A8800F1F7D5 /* ViewController.h */, 0CEB0AC526151A8800F1F7D5 /* ViewController.mm */, 0CEB0AC726151A8800F1F7D5 /* Main.storyboard */, 0CEB0ACA26151A8900F1F7D5 /* Assets.xcassets */, 0CEB0ACC26151A8900F1F7D5 /* LaunchScreen.storyboard */, 0CEB0ACF26151A8900F1F7D5 /* Info.plist */, 0CEB0AD026151A8900F1F7D5 /* main.m */, 0C12EF7526163B7600B66C86 /* frcnn_mnetv3.pt */, ); path = VisionTestApp; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ 0CEB0ABA26151A8800F1F7D5 /* VisionTestApp */ = { isa = PBXNativeTarget; buildConfigurationList = 0CEB0AEA26151A8900F1F7D5 /* Build configuration list for PBXNativeTarget "VisionTestApp" */; buildPhases = ( 0CEB0AB726151A8800F1F7D5 /* Sources */, 0CEB0AB826151A8800F1F7D5 /* Frameworks */, 0CEB0AB926151A8800F1F7D5 /* Resources */, ); buildRules = ( ); dependencies = ( ); name = VisionTestApp; productName = VisionTestApp; productReference = 0CEB0ABB26151A8800F1F7D5 /* VisionTestApp.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ 0CEB0AB326151A8800F1F7D5 /* Project object */ = { isa = PBXProject; attributes = { LastUpgradeCheck = 1240; TargetAttributes = { 0CEB0ABA26151A8800F1F7D5 = { CreatedOnToolsVersion = 12.4; }; }; }; buildConfigurationList = 0CEB0AB626151A8800F1F7D5 /* Build configuration list for PBXProject "VisionTestApp" */; compatibilityVersion = "Xcode 9.3"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, Base, ); mainGroup = 0CEB0AB226151A8800F1F7D5; productRefGroup = 0CEB0ABC26151A8800F1F7D5 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( 0CEB0ABA26151A8800F1F7D5 /* VisionTestApp */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ 0CEB0AB926151A8800F1F7D5 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( 0CEB0ACE26151A8900F1F7D5 /* LaunchScreen.storyboard in Resources */, 0C12EF7626163B7600B66C86 /* frcnn_mnetv3.pt in Resources */, 0CEB0ACB26151A8900F1F7D5 /* Assets.xcassets in Resources */, 0CEB0AC926151A8800F1F7D5 /* Main.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ 0CEB0AB726151A8800F1F7D5 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 0CEB0AC626151A8800F1F7D5 /* ViewController.mm in Sources */, 0CEB0AC026151A8800F1F7D5 /* AppDelegate.m in Sources */, 0CEB0AD126151A8900F1F7D5 /* main.m in Sources */, 0CEB0B3A26152ED900F1F7D5 /* ModelRunner.mm in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXVariantGroup section */ 0CEB0AC726151A8800F1F7D5 /* Main.storyboard */ = { isa = PBXVariantGroup; children = ( 0CEB0AC826151A8800F1F7D5 /* Base */, ); name = Main.storyboard; sourceTree = ""; }; 0CEB0ACC26151A8900F1F7D5 /* LaunchScreen.storyboard */ = { isa = PBXVariantGroup; children = ( 0CEB0ACD26151A8900F1F7D5 /* Base */, ); name = LaunchScreen.storyboard; sourceTree = ""; }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ 0CEB0AE826151A8900F1F7D5 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_BITCODE = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ""; IPHONEOS_DEPLOYMENT_TARGET = 13.0; LIBRARY_SEARCH_PATHS = ""; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; OTHER_LDFLAGS = ""; SDKROOT = iphoneos; }; name = Debug; }; 0CEB0AE926151A8900F1F7D5 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_BITCODE = NO; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ""; IPHONEOS_DEPLOYMENT_TARGET = 13.0; LIBRARY_SEARCH_PATHS = ""; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; OTHER_LDFLAGS = ""; SDKROOT = iphoneos; VALIDATE_PRODUCT = YES; }; name = Release; }; 0CEB0AEB26151A8900F1F7D5 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; ENABLE_BITCODE = NO; HEADER_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/install/include", ); INFOPLIST_FILE = VisionTestApp/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/VisionTestApp", "$(PROJECT_DIR)", "$(PROJECT_DIR)/install/lib", ); OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", "-all_load", ); PRODUCT_BUNDLE_IDENTIFIER = com.pytorch.ios.VisionTestApp.VisionTestApp; PRODUCT_NAME = "$(TARGET_NAME)"; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; 0CEB0AEC26151A8900F1F7D5 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; ENABLE_BITCODE = NO; HEADER_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/install/include", ); INFOPLIST_FILE = VisionTestApp/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/VisionTestApp", "$(PROJECT_DIR)", "$(PROJECT_DIR)/install/lib", ); OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", "-all_load", ); PRODUCT_BUNDLE_IDENTIFIER = com.pytorch.ios.VisionTestApp.VisionTestApp; PRODUCT_NAME = "$(TARGET_NAME)"; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ 0CEB0AB626151A8800F1F7D5 /* Build configuration list for PBXProject "VisionTestApp" */ = { isa = XCConfigurationList; buildConfigurations = ( 0CEB0AE826151A8900F1F7D5 /* Debug */, 0CEB0AE926151A8900F1F7D5 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 0CEB0AEA26151A8900F1F7D5 /* Build configuration list for PBXNativeTarget "VisionTestApp" */ = { isa = XCConfigurationList; buildConfigurations = ( 0CEB0AEB26151A8900F1F7D5 /* Debug */, 0CEB0AEC26151A8900F1F7D5 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; rootObject = 0CEB0AB326151A8800F1F7D5 /* Project object */; } vision-0.19.1/ios/VisionTestApp/VisionTestApp.xcodeproj/project.xcworkspace/000077500000000000000000000000001466211133600272205ustar00rootroot00000000000000vision-0.19.1/ios/VisionTestApp/VisionTestApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata000066400000000000000000000002071466211133600341610ustar00rootroot00000000000000 vision-0.19.1/ios/VisionTestApp/VisionTestApp.xcodeproj/project.xcworkspace/xcshareddata/000077500000000000000000000000001466211133600316535ustar00rootroot00000000000000IDEWorkspaceChecks.plist000066400000000000000000000003561466211133600362560ustar00rootroot00000000000000vision-0.19.1/ios/VisionTestApp/VisionTestApp.xcodeproj/project.xcworkspace/xcshareddata IDEDidComputeMac32BitWarning vision-0.19.1/ios/VisionTestApp/VisionTestApp/000077500000000000000000000000001466211133600212265ustar00rootroot00000000000000vision-0.19.1/ios/VisionTestApp/VisionTestApp/AppDelegate.h000066400000000000000000000002141466211133600235470ustar00rootroot00000000000000#import @interface AppDelegate : UIResponder @property(strong, nonatomic) UIWindow *window; @end vision-0.19.1/ios/VisionTestApp/VisionTestApp/AppDelegate.m000066400000000000000000000035621466211133600235650ustar00rootroot00000000000000 #import "AppDelegate.h" @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. return YES; } - (void)applicationWillResignActive:(UIApplication *)application { // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. } - (void)applicationDidEnterBackground:(UIApplication *)application { // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. } - (void)applicationWillEnterForeground:(UIApplication *)application { // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. } - (void)applicationDidBecomeActive:(UIApplication *)application { // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. } - (void)applicationWillTerminate:(UIApplication *)application { // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. } @end vision-0.19.1/ios/VisionTestApp/VisionTestApp/Assets.xcassets/000077500000000000000000000000001466211133600243245ustar00rootroot00000000000000vision-0.19.1/ios/VisionTestApp/VisionTestApp/Assets.xcassets/AccentColor.colorset/000077500000000000000000000000001466211133600303515ustar00rootroot00000000000000vision-0.19.1/ios/VisionTestApp/VisionTestApp/Assets.xcassets/AccentColor.colorset/Contents.json000066400000000000000000000001731466211133600330420ustar00rootroot00000000000000{ "colors" : [ { "idiom" : "universal" } ], "info" : { "author" : "xcode", "version" : 1 } } vision-0.19.1/ios/VisionTestApp/VisionTestApp/Assets.xcassets/AppIcon.appiconset/000077500000000000000000000000001466211133600300215ustar00rootroot00000000000000vision-0.19.1/ios/VisionTestApp/VisionTestApp/Assets.xcassets/AppIcon.appiconset/Contents.json000066400000000000000000000030671466211133600325170ustar00rootroot00000000000000{ "images" : [ { "idiom" : "iphone", "scale" : "2x", "size" : "20x20" }, { "idiom" : "iphone", "scale" : "3x", "size" : "20x20" }, { "idiom" : "iphone", "scale" : "2x", "size" : "29x29" }, { "idiom" : "iphone", "scale" : "3x", "size" : "29x29" }, { "idiom" : "iphone", "scale" : "2x", "size" : "40x40" }, { "idiom" : "iphone", "scale" : "3x", "size" : "40x40" }, { "idiom" : "iphone", "scale" : "2x", "size" : "60x60" }, { "idiom" : "iphone", "scale" : "3x", "size" : "60x60" }, { "idiom" : "ipad", "scale" : "1x", "size" : "20x20" }, { "idiom" : "ipad", "scale" : "2x", "size" : "20x20" }, { "idiom" : "ipad", "scale" : "1x", "size" : "29x29" }, { "idiom" : "ipad", "scale" : "2x", "size" : "29x29" }, { "idiom" : "ipad", "scale" : "1x", "size" : "40x40" }, { "idiom" : "ipad", "scale" : "2x", "size" : "40x40" }, { "idiom" : "ipad", "scale" : "1x", "size" : "76x76" }, { "idiom" : "ipad", "scale" : "2x", "size" : "76x76" }, { "idiom" : "ipad", "scale" : "2x", "size" : "83.5x83.5" }, { "idiom" : "ios-marketing", "scale" : "1x", "size" : "1024x1024" } ], "info" : { "author" : "xcode", "version" : 1 } } vision-0.19.1/ios/VisionTestApp/VisionTestApp/Assets.xcassets/Contents.json000066400000000000000000000000771466211133600270200ustar00rootroot00000000000000{ "info" : { "author" : "xcode", "version" : 1 } } vision-0.19.1/ios/VisionTestApp/VisionTestApp/Base.lproj/000077500000000000000000000000001466211133600232255ustar00rootroot00000000000000vision-0.19.1/ios/VisionTestApp/VisionTestApp/Base.lproj/LaunchScreen.storyboard000066400000000000000000000037251466211133600277200ustar00rootroot00000000000000 vision-0.19.1/ios/VisionTestApp/VisionTestApp/Base.lproj/Main.storyboard000066400000000000000000000125231466211133600262260ustar00rootroot00000000000000 vision-0.19.1/ios/VisionTestApp/VisionTestApp/Info.plist000066400000000000000000000026401466211133600232000ustar00rootroot00000000000000 CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName $(PRODUCT_NAME) CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString 1.0 CFBundleVersion 1 LSRequiresIPhoneOS UIApplicationSupportsIndirectInputEvents UILaunchStoryboardName LaunchScreen UIMainStoryboardFile Main UIRequiredDeviceCapabilities armv7 UISupportedInterfaceOrientations UIInterfaceOrientationPortrait UISupportedInterfaceOrientations~ipad UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight vision-0.19.1/ios/VisionTestApp/VisionTestApp/ModelRunner.h000066400000000000000000000002371466211133600236330ustar00rootroot00000000000000 #import NS_ASSUME_NONNULL_BEGIN @interface ModelRunner : NSObject + (NSString* )run; + (BOOL)setUp; @end NS_ASSUME_NONNULL_END vision-0.19.1/ios/VisionTestApp/VisionTestApp/ModelRunner.mm000066400000000000000000000043521466211133600240170ustar00rootroot00000000000000 #import "ModelRunner.h" #include #include #include "ATen/ATen.h" #include "caffe2/core/timer.h" #include "caffe2/utils/string_utils.h" #include "torch/csrc/autograd/grad_mode.h" #include "torch/csrc/jit/serialization/import.h" #include "torch/script.h" static NSString *model_name = @"frcnn_mnetv3"; static NSString *model_suffix = @"pt"; static NSString *model_path = nil; static int warmup = 5; static int iter = 20; @implementation ModelRunner + (NSString *)run { std::vector logs; #define UI_LOG(fmt, ...) \ { \ NSString* log = [NSString stringWithFormat:fmt, __VA_ARGS__]; \ NSLog(@"%@", log); \ logs.push_back(log.UTF8String); \ } auto module = torch::jit::load(std::string(model_path.UTF8String)); module.eval(); std::vector inputs; auto img_tensor = torch::ones({3, 224, 224}, at::ScalarType::Float); inputs.push_back(c10::List(img_tensor)); torch::autograd::AutoGradMode guard(false); at::InferenceMode nonVarTypeModeGuard(true); UI_LOG(@"Running warmup runs...", nil); for (int i = 0; i < warmup; ++i) { module.forward(inputs); } UI_LOG(@"Warmup runs finished.\nMain runs...", nil); caffe2::Timer timer; auto millis = timer.MilliSeconds(); for (int i = 0; i < iter; ++i) { module.forward(inputs); } millis = timer.MilliSeconds(); UI_LOG(@"Main run finished. \nMilliseconds per iter: %.3f", millis / iter, nil); UI_LOG(@"Iters per second: : %.3f", 1000.0 * iter / millis, nil); UI_LOG(@"Done.", nil); std::cout << module.forward(inputs) << std::endl; NSString* log_text = @""; for (auto& msg : logs) { log_text = [log_text stringByAppendingString:[NSString stringWithUTF8String:msg.c_str()]]; log_text = [log_text stringByAppendingString:@"\n"]; } return log_text; } + (BOOL)setUp { model_path = [[NSBundle mainBundle] pathForResource:model_name ofType:model_suffix]; if (![[NSFileManager defaultManager] fileExistsAtPath:model_path]) { NSLog(@"Invalid model path!"); model_path = nil; return NO; } return YES; } @end vision-0.19.1/ios/VisionTestApp/VisionTestApp/ViewController.h000066400000000000000000000001161466211133600243530ustar00rootroot00000000000000 #import @interface ViewController : UIViewController @end vision-0.19.1/ios/VisionTestApp/VisionTestApp/ViewController.mm000066400000000000000000000017521466211133600245440ustar00rootroot00000000000000 #import "ViewController.h" #include #import "ModelRunner.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UITextView *textView; @end static NSString const *config_error_msg = @"Wrong model configurations... Please fix and click \"Redo\""; @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; if ([ModelRunner setUp]) { [self testModel]; } else { self.textView.text = [config_error_msg copy]; } } - (IBAction)rerun:(id)sender { self.textView.text = @""; if (![ModelRunner setUp]) { self.textView.text = [config_error_msg copy]; return; } dispatch_async(dispatch_get_main_queue(), ^{ [self testModel]; }); } - (void)testModel { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSString *text = [ModelRunner run]; dispatch_async(dispatch_get_main_queue(), ^{ self.textView.text = [self.textView.text stringByAppendingString:text]; }); }); } @end vision-0.19.1/ios/VisionTestApp/VisionTestApp/main.m000066400000000000000000000006601466211133600223320ustar00rootroot00000000000000// // main.m // VisionTestApp // // Created by Yuchen Huang on 3/31/21. // #import #import "AppDelegate.h" int main(int argc, char * argv[]) { NSString * appDelegateClassName; @autoreleasepool { // Setup code that might create autoreleased objects goes here. appDelegateClassName = NSStringFromClass([AppDelegate class]); } return UIApplicationMain(argc, argv, nil, appDelegateClassName); } vision-0.19.1/ios/VisionTestApp/clean.sh000077500000000000000000000002071466211133600200760ustar00rootroot00000000000000#!/bin/bash set -ex -o pipefail TEST_APP_PATH=$(dirname $(realpath $0)) cd ${TEST_APP_PATH} rm -rf ./install rm ./VisionTestApp/*.pt vision-0.19.1/ios/VisionTestApp/make_assets.py000066400000000000000000000011721466211133600213300ustar00rootroot00000000000000import torch from torch.utils.mobile_optimizer import optimize_for_mobile from torchvision.models.detection import ( fasterrcnn_mobilenet_v3_large_320_fpn, FasterRCNN_MobileNet_V3_Large_320_FPN_Weights, ) print(torch.__version__) model = fasterrcnn_mobilenet_v3_large_320_fpn( weights=FasterRCNN_MobileNet_V3_Large_320_FPN_Weights.DEFAULT, box_score_thresh=0.7, rpn_post_nms_top_n_test=100, rpn_score_thresh=0.4, rpn_pre_nms_top_n_test=150, ) model.eval() script_model = torch.jit.script(model) opt_script_model = optimize_for_mobile(script_model) opt_script_model.save("VisionTestApp/frcnn_mnetv3.pt") vision-0.19.1/ios/VisionTestApp/setup.sh000077500000000000000000000015531466211133600201610ustar00rootroot00000000000000#!/bin/bash set -ex -o pipefail echo "" echo "DIR: $(pwd)" TEST_APP_PATH=$(dirname $(realpath $0)) cd ${TEST_APP_PATH} PYTORCH_IOS_NIGHTLY_NAME=libtorch_ios_nightly_build.zip VISION_IOS_NIGHTLY_NAME=libtorchvision_ops_ios_nightly_build.zip echo "Downloading torch libs and vision libs..." wget https://ossci-ios-build.s3.amazonaws.com/${PYTORCH_IOS_NIGHTLY_NAME} wget https://ossci-ios-build.s3.amazonaws.com/${VISION_IOS_NIGHTLY_NAME} mkdir -p ./library/torch mkdir -p ./library/vision echo "Unziping torch libs and vision libs..." unzip -d ./library/torch ./${PYTORCH_IOS_NIGHTLY_NAME} unzip -d ./library/vision ./${VISION_IOS_NIGHTLY_NAME} cp ./library/vision/install/lib/*.a ./library/torch/install/lib cp -r ./library/torch/install . rm -rf ./library rm -rf ./*.zip echo "Generating the vision model..." python ./make_assets.py echo "Finished project setups." vision-0.19.1/ios/build_ios.sh000077500000000000000000000013251466211133600162170ustar00rootroot00000000000000#!/bin/bash set -ex -o pipefail echo "" echo "DIR: $(pwd)" VISION_IOS_ROOT=$(dirname $(realpath $0)) if ! [ -n "${LIBTORCH_HEADER_ROOT:-}" ]; then echo "Missing parameter: LIBTORCH_HEADER_ROOT" exit 1 fi if [ -n "${IOS_ARCH:-}" ]; then if [ "${IOS_ARCH:-}" == "arm64" ]; then IOS_PLATFORM="OS" elif [ "${IOS_ARCH:-}" == "x86_64" ]; then IOS_PLATFORM="SIMULATOR" fi fi mkdir -p ${VISION_IOS_ROOT}/lib mkdir -p ${VISION_IOS_ROOT}/build cd ${VISION_IOS_ROOT}/build cmake -DLIBTORCH_HEADER_ROOT=${LIBTORCH_HEADER_ROOT} \ -DCMAKE_TOOLCHAIN_FILE=${VISION_IOS_ROOT}/../cmake/iOS.cmake \ -DIOS_ARCH=${IOS_ARCH} \ -DIOS_PLATFORM=${IOS_PLATFORM} \ .. make rm -rf ${VISION_IOS_ROOT}/build vision-0.19.1/maintainer_guide.md000066400000000000000000000075071466211133600167530ustar00rootroot00000000000000# Torchvision maintainers guide This document aims at documenting user-facing policies / principles used when developing and maintaining torchvision. Other maintainer info (e.g. release process) can be found in the meta-internal wiki. ### What is public and what is private? For the Python API, torchvision largely follows the [PyTorch policy](https://github.com/pytorch/pytorch/wiki/Public-API-definition-and-documentation) which is consistent with other major packages ([numpy](https://numpy.org/neps/nep-0023-backwards-compatibility.html), [scikit-learn](https://scikit-learn.org/dev/glossary.html#term-API) etc.). We recognize that his policy is somewhat imperfect for some edge cases, and that it's difficult to come up with an accurate technical definition. In broad terms, which are usually well understood by users, the policy is that: - modules that can be accessed without leading underscore are public - objects in a public file that don't have a leading underscore are public - class attributes are public iff they have no leading underscore - the rest of the modules / objects / class attributes are considered private The public API has backward-compatible (BC) guarantees defined in our deprecation policy (see below). The private API has not BC guarantees. For C++, code is private. For Meta employees: if a C++ change breaks fbcode, fix fbcode or revert the change. We should be careful about models running in production and relying on torchvision ops. The `test` folder is not importable and is **private.** Even meta-internal projects should *not* rely on it (it has happened in the past and is now programmatically impossible). The training references do not have BC guarantees. Breaking changes are possible, but we should make sure that the tutorials are still running properly, and that their intended narrative is preserved (by e.g. checking outputs, etc.). The rest of the folders (build, android, ios, etc.) are private and have no BC guarantees. ### Deprecation policy. Because they're disruptive, **deprecations should only be used sparingly**. We largely follow the [PyTorch policy](https://github.com/pytorch/pytorch/wiki/PyTorch's-Python-Frontend-Backward-and-Forward-Compatibility-Policy): breaking changes require a deprecation period of at least 2 versions. Deprecations should clearly indicate their deadline in the docs and warning messages. Avoid not committing to a deadline, or keeping deprecated APIs for too long: it gives no incentive for users to update their code, sends conflicting messages ("why was this API removed while this other one is still around?"), and accumulates debt in the project. ### Should this attribute be public? Should this function be private? When designing an API it’s not always obvious what should be exposed as public, and what should be kept as a private implementation detail. The following guidelines can be useful: * Functional consistency throughout the library is a top priority, for users and developers’ sake. In doubt and unless it’s clearly wrong, expose what other similar classes expose. * Think really hard about the users and their use-cases, and try to expose what they would need to address those use-cases. Aggressively keep everything else private. Remember that the “private -> public” direction is way smoother than the “public -> private” one: in doubt, keep it private. * When thinking about use-cases, the general API motto applies: make what’s simple and common easy, and make what’s complex possible (80% / 20% rule). There might be a ~1% left that’s not addressed: that’s OK. Also, **make what’s wrong very hard**, if not impossible. As a good practice, always create new files and even classes with a leading underscore in their name. This way, everything is private by default and the only public surface is explicitly present in an `__init__.py` file. vision-0.19.1/mypy.ini000066400000000000000000000034511466211133600146160ustar00rootroot00000000000000[mypy] files = torchvision show_error_codes = True pretty = True allow_redefinition = True no_implicit_optional = True warn_redundant_casts = True [mypy-torchvision.io.image.*] ignore_errors = True [mypy-torchvision.io.video.*] ignore_errors = True [mypy-torchvision.io.video_reader] ignore_errors = True [mypy-torchvision.models.densenet.*] ignore_errors=True [mypy-torchvision.models.detection.anchor_utils] ignore_errors = True [mypy-torchvision.models.detection.transform] ignore_errors = True [mypy-torchvision.models.detection.roi_heads] ignore_errors = True [mypy-torchvision.models.detection.faster_rcnn] ignore_errors = True [mypy-torchvision.models.detection.mask_rcnn] ignore_errors = True [mypy-torchvision.models.detection.keypoint_rcnn] ignore_errors = True [mypy-torchvision.models.detection.retinanet] ignore_errors = True [mypy-torchvision.models.detection.ssd] ignore_errors = True [mypy-torchvision.models.detection.ssdlite] ignore_errors = True [mypy-torchvision.models.detection.fcos] ignore_errors = True [mypy-torchvision.ops.*] ignore_errors = True [mypy-torchvision.transforms._functional_pil] ignore_errors = True [mypy-torchvision.transforms.functional.*] ignore_errors = True [mypy-torchvision.transforms.transforms.*] ignore_errors = True [mypy-PIL.*] ignore_missing_imports = True [mypy-numpy.*] ignore_missing_imports = True [mypy-scipy.*] ignore_missing_imports = True [mypy-pycocotools.*] ignore_missing_imports = True [mypy-lmdb.*] ignore_missing_imports = True [mypy-accimage.*] ignore_missing_imports = True [mypy-av.*] ignore_missing_imports = True [mypy-defusedxml.*] ignore_missing_imports = True [mypy-torchdata.*] ignore_missing_imports = True [mypy-h5py.*] ignore_missing_imports = True [mypy-gdown.*] ignore_missing_imports = True vision-0.19.1/packaging/000077500000000000000000000000001466211133600150405ustar00rootroot00000000000000vision-0.19.1/packaging/cut_release.sh000077500000000000000000000022761466211133600177010ustar00rootroot00000000000000#!/usr/bin/env bash # # Usage (run from root of project): # TEST_INFRA_BRANCH=release/2.1 RELEASE_BRANCH=release/2.1 RELEASE_VERSION=2.1.0 packaging/cut_release.sh # # TEST_INFRA_BRANCH: The release branch of test-infra that houses all reusable # workflows # # RELEASE_BRANCH: The name of the release branch for this repo # # RELEASE_VERSION: Version of this current release set -eou pipefail # Create and Check out to Release Branch git checkout -b "${RELEASE_BRANCH}" # Change all GitHub Actions to reference the test-infra release branch # as opposed to main. for i in .github/workflows/*.yml; do if [[ "$OSTYPE" == "darwin"* ]]; then sed -i '' -e s#@main#@"${TEST_INFRA_BRANCH}"# $i; sed -i '' -e s#test-infra-ref:[[:space:]]main#"test-infra-ref: ${TEST_INFRA_BRANCH}"# $i; else sed -i -e s#@main#@"${TEST_INFRA_BRANCH}"# $i; sed -i -e s#test-infra-ref:[[:space:]]main#"test-infra-ref: ${TEST_INFRA_BRANCH}"# $i; fi done # Update the Release Version in version.txt echo "${RELEASE_VERSION}" >version.txt # Optional # git add ./github/workflows/*.yml version.txt # git commit -m "[RELEASE-ONLY CHANGES] Branch Cut for Release {RELEASE_VERSION}" # git push origin "${RELEASE_BRANCH}" vision-0.19.1/packaging/post_build_script.sh000066400000000000000000000001621466211133600211230ustar00rootroot00000000000000#!/bin/bash LD_LIBRARY_PATH="/usr/local/lib:$CUDA_HOME/lib64:$LD_LIBRARY_PATH" python packaging/wheel/relocate.py vision-0.19.1/packaging/pre_build_script.sh000066400000000000000000000027561466211133600207370ustar00rootroot00000000000000#!/bin/bash if [[ "$(uname)" == Darwin ]]; then # Uninstall Conflicting jpeg brew formulae jpeg_packages=$(brew list | grep jpeg) echo "Existing Jpeg-related Brew libraries" echo $jpeg_packages for pkg in $jpeg_packages; do brew uninstall --ignore-dependencies --force $pkg || true done conda install -yq wget fi if [[ "$(uname)" == Darwin || "$OSTYPE" == "msys" ]]; then # Install libpng from Anaconda (defaults) conda install libpng -yq conda install -yq ffmpeg=4.2 libjpeg-turbo -c pytorch # Copy binaries to be included in the wheel distribution if [[ "$OSTYPE" == "msys" ]]; then python_exec="$(which python)" bin_path=$(dirname $python_exec) cp "$bin_path/Library/bin/libjpeg.dll" torchvision fi else if [[ "$ARCH" == "aarch64" ]]; then conda install libpng -yq conda install -yq ffmpeg=4.2 libjpeg-turbo -c pytorch-nightly fi # Install native CentOS libJPEG, freetype and GnuTLS yum install -y libjpeg-turbo-devel freetype gnutls # Download all the dependencies required to compile image and video_reader # extensions mkdir -p ext_libraries pushd ext_libraries popd export PATH="$(pwd)/ext_libraries/bin:$PATH" pip install auditwheel # Point to custom libraries export LD_LIBRARY_PATH=$(pwd)/ext_libraries/lib:$LD_LIBRARY_PATH export TORCHVISION_INCLUDE=$(pwd)/ext_libraries/include export TORCHVISION_LIBRARY=$(pwd)/ext_libraries/lib fi pip install numpy pyyaml future ninja pip install --upgrade setuptools==72.1.0 vision-0.19.1/packaging/torchvision/000077500000000000000000000000001466211133600174075ustar00rootroot00000000000000vision-0.19.1/packaging/torchvision/conda_build_config.yaml000066400000000000000000000014441466211133600240660ustar00rootroot00000000000000channel_sources: - pytorch-nightly,pytorch,defaults blas_impl: - mkl # [x86_64] c_compiler: - vs2017 # [win] cxx_compiler: - vs2017 # [win] python: - 3.8 # This differs from target_platform in that it determines what subdir the compiler # will target, not what subdir the compiler package will be itself. # For example, we need a win-64 vs2008_win-32 package, so that we compile win-32 # code on win-64 miniconda. cross_compiler_target_platform: - win-64 # [win] target_platform: - win-64 # [win] vc: - 14 zip_keys: - # [win] - vc # [win] - c_compiler # [win] - cxx_compiler # [win] vision-0.19.1/packaging/torchvision/meta.yaml000066400000000000000000000032661466211133600212300ustar00rootroot00000000000000{% set build_variant = environ.get('CONDA_BUILD_VARIANT', 'cpu') %} package: name: torchvision version: "{{ environ.get('BUILD_VERSION') }}" source: path: "{{ environ.get('SOURCE_ROOT_DIR') }}" requirements: build: - {{ compiler('c') }} # [win] - libpng - libjpeg-turbo - ffmpeg >=4.2.2, <5.0.0 # [linux] host: - python - setuptools - pytorch-mutex 1.0 {{ build_variant }} # [not osx ] {{ environ.get('CONDA_PYTORCH_BUILD_CONSTRAINT', 'pytorch') }} {{ environ.get('CONDA_CUDATOOLKIT_CONSTRAINT', '') }} run: - python - defaults::numpy >=1.11 # [py <= 310] - numpy >=1.23.5 # [py >= 311] - requests - libpng - ffmpeg >=4.2.2, <5.0.0 # [linux] - libjpeg-turbo - pillow >=5.3.0, !=8.3.* - pytorch-mutex 1.0 {{ build_variant }} # [not osx ] {{ environ.get('CONDA_PYTORCH_CONSTRAINT', 'pytorch') }} {{ environ.get('CONDA_CUDATOOLKIT_CONSTRAINT', '') }} {% if build_variant == 'cpu' %} run_constrained: - cpuonly {% elif not osx %} run_constrained: - cpuonly <0 {% endif %} build: string: py{{py}}_{{ environ['CU_VERSION'] }} script: python setup.py install --single-version-externally-managed --record=record.txt script_env: - CUDA_HOME - FORCE_CUDA - BUILD_VERSION - TORCH_CUDA_ARCH_LIST - MACOSX_DEPLOYMENT_TARGET test: imports: - torchvision - torchvision.datasets - torchvision.transforms source_files: - test requires: - pytest - scipy - libjpeg-turbo - ca-certificates about: home: https://github.com/pytorch/vision license: BSD license_file: LICENSE summary: 'image and video datasets and models for torch deep learning' vision-0.19.1/packaging/vs2019/000077500000000000000000000000001466211133600160045ustar00rootroot00000000000000vision-0.19.1/packaging/vs2019/activate.bat000066400000000000000000000022631466211133600202770ustar00rootroot00000000000000:: Set env vars that tell distutils to use the compiler that we put on path SET DISTUTILS_USE_SDK=1 SET MSSdk=1 SET "VS_VERSION=16.0" SET "VS_MAJOR=16" SET "VS_YEAR=2019" set "MSYS2_ARG_CONV_EXCL=/AI;/AL;/OUT;/out" set "MSYS2_ENV_CONV_EXCL=CL" :: For Python 3.5+, ensure that we link with the dynamic runtime. See :: http://stevedower.id.au/blog/building-for-python-3-5-part-two/ for more info set "PY_VCRUNTIME_REDIST=%PREFIX%\\bin\\vcruntime140.dll" for /f "usebackq tokens=*" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -legacy -products * -version [16^,17^) -property installationPath`) do ( if exist "%%i" if exist "%%i\VC\Auxiliary\Build\vcvarsall.bat" ( set "VSINSTALLDIR=%%i\" goto :vswhere ) ) :vswhere :: Shorten PATH to avoid the `input line too long` error. SET MyPath=%PATH% setlocal EnableDelayedExpansion SET TempPath="%MyPath:;=";"%" SET var= FOR %%a IN (%TempPath%) DO ( IF EXIST %%~sa ( SET "var=!var!;%%~sa" ) ) set "TempPath=!var:~1!" endlocal & set "PATH=%TempPath%" :: Shorten current directory too FOR %%A IN (.) DO CD "%%~sA" :: other things added by install_activate.bat at package build time vision-0.19.1/packaging/vs2019/conda_build_config.yaml000066400000000000000000000013561466211133600224650ustar00rootroot00000000000000blas_impl: - mkl # [x86_64] c_compiler: - vs2019 # [win] cxx_compiler: - vs2019 # [win] python: - 3.8 # This differs from target_platform in that it determines what subdir the compiler # will target, not what subdir the compiler package will be itself. # For example, we need a win-64 vs2008_win-32 package, so that we compile win-32 # code on win-64 miniconda. cross_compiler_target_platform: - win-64 # [win] target_platform: - win-64 # [win] vc: - 14 zip_keys: - # [win] - vc # [win] - c_compiler # [win] - cxx_compiler # [win] vision-0.19.1/packaging/vs2019/install_activate.bat000066400000000000000000000034101466211133600220200ustar00rootroot00000000000000set YEAR=2019 set VER=16 mkdir "%PREFIX%\etc\conda\activate.d" COPY "%RECIPE_DIR%\activate.bat" "%PREFIX%\etc\conda\activate.d\vs%YEAR%_compiler_vars.bat" IF "%cross_compiler_target_platform%" == "win-64" ( set "target_platform=amd64" echo SET "CMAKE_GENERATOR=Visual Studio %VER% %YEAR% Win64" >> "%PREFIX%\etc\conda\activate.d\vs%YEAR%_compiler_vars.bat" echo pushd "%%VSINSTALLDIR%%" >> "%PREFIX%\etc\conda\activate.d\vs%YEAR%_compiler_vars.bat" IF "%VSDEVCMD_ARGS%" == "" ( echo CALL "VC\Auxiliary\Build\vcvarsall.bat" x64 >> "%PREFIX%\etc\conda\activate.d\vs%YEAR%_compiler_vars.bat" echo popd >> "%PREFIX%\etc\conda\activate.d\vs%YEAR%_compiler_vars.bat" echo pushd "%%VSINSTALLDIR%%" >> "%PREFIX%\etc\conda\activate.d\vs%YEAR%_compiler_vars.bat" echo CALL "VC\Auxiliary\Build\vcvarsall.bat" x86_amd64 >> "%PREFIX%\etc\conda\activate.d\vs%YEAR%_compiler_vars.bat" ) ELSE ( echo CALL "VC\Auxiliary\Build\vcvarsall.bat" x64 %VSDEVCMD_ARGS% >> "%PREFIX%\etc\conda\activate.d\vs%YEAR%_compiler_vars.bat" echo popd >> "%PREFIX%\etc\conda\activate.d\vs%YEAR%_compiler_vars.bat" echo pushd "%%VSINSTALLDIR%%" >> "%PREFIX%\etc\conda\activate.d\vs%YEAR%_compiler_vars.bat" echo CALL "VC\Auxiliary\Build\vcvarsall.bat" x86_amd64 %VSDEVCMD_ARGS% >> "%PREFIX%\etc\conda\activate.d\vs%YEAR%_compiler_vars.bat" ) echo popd >> "%PREFIX%\etc\conda\activate.d\vs%YEAR%_compiler_vars.bat" ) else ( set "target_platform=x86" echo SET "CMAKE_GENERATOR=Visual Studio %VER% %YEAR%" >> "%PREFIX%\etc\conda\activate.d\vs%YEAR%_compiler_vars.bat" echo pushd "%%VSINSTALLDIR%%" >> "%PREFIX%\etc\conda\activate.d\vs%YEAR%_compiler_vars.bat" echo CALL "VC\Auxiliary\Build\vcvars32.bat" >> "%PREFIX%\etc\conda\activate.d\vs%YEAR%_compiler_vars.bat" echo popd ) vision-0.19.1/packaging/vs2019/meta.yaml000066400000000000000000000011741466211133600176210ustar00rootroot00000000000000{% set vcver="14.2" %} {% set vcfeature="14" %} {% set vsyear="2019" %} {% set fullver="15.4.27004.2010" %} package: name: vs{{ vsyear }} version: {{ fullver }} build: skip: True [not win] script_env: - VSDEVCMD_ARGS # [win] outputs: - name: vs{{ vsyear }}_{{ cross_compiler_target_platform }} script: install_activate.bat track_features: # VS 2019 is binary-compatible with VS 2017/vc 14.1 and 2015/vc14. Tools are "v142". strong: - vc{{ vcfeature }} about: summary: Activation and version verification of MSVC {{ vcver }} (VS {{ vsyear }}) compiler license: BSD 3-clause vision-0.19.1/packaging/wheel/000077500000000000000000000000001466211133600161445ustar00rootroot00000000000000vision-0.19.1/packaging/wheel/relocate.py000066400000000000000000000304371466211133600203230ustar00rootroot00000000000000"""Helper script to package wheels and relocate binaries.""" import glob import hashlib # Standard library imports import os import os.path as osp import platform import shutil import subprocess import sys import zipfile from base64 import urlsafe_b64encode # Third party imports if sys.platform == "linux": from auditwheel.lddtree import lddtree ALLOWLIST = { "libgcc_s.so.1", "libstdc++.so.6", "libm.so.6", "libdl.so.2", "librt.so.1", "libc.so.6", "libnsl.so.1", "libutil.so.1", "libpthread.so.0", "libresolv.so.2", "libX11.so.6", "libXext.so.6", "libXrender.so.1", "libICE.so.6", "libSM.so.6", "libGL.so.1", "libgobject-2.0.so.0", "libgthread-2.0.so.0", "libglib-2.0.so.0", "ld-linux-x86-64.so.2", "ld-2.17.so", } WINDOWS_ALLOWLIST = { "MSVCP140.dll", "KERNEL32.dll", "VCRUNTIME140_1.dll", "VCRUNTIME140.dll", "api-ms-win-crt-heap-l1-1-0.dll", "api-ms-win-crt-runtime-l1-1-0.dll", "api-ms-win-crt-stdio-l1-1-0.dll", "api-ms-win-crt-filesystem-l1-1-0.dll", "api-ms-win-crt-string-l1-1-0.dll", "api-ms-win-crt-environment-l1-1-0.dll", "api-ms-win-crt-math-l1-1-0.dll", "api-ms-win-crt-convert-l1-1-0.dll", } HERE = osp.dirname(osp.abspath(__file__)) PACKAGE_ROOT = osp.dirname(osp.dirname(HERE)) PLATFORM_ARCH = platform.machine() PYTHON_VERSION = sys.version_info def rehash(path, blocksize=1 << 20): """Return (hash, length) for path using hashlib.sha256()""" h = hashlib.sha256() length = 0 with open(path, "rb") as f: while block := f.read(blocksize): length += len(block) h.update(block) digest = "sha256=" + urlsafe_b64encode(h.digest()).decode("latin1").rstrip("=") # unicode/str python2 issues return (digest, str(length)) # type: ignore def unzip_file(file, dest): """Decompress zip `file` into directory `dest`.""" with zipfile.ZipFile(file, "r") as zip_ref: zip_ref.extractall(dest) def is_program_installed(basename): """ Return program absolute path if installed in PATH. Otherwise, return None On macOS systems, a .app is considered installed if it exists. """ if sys.platform == "darwin" and basename.endswith(".app") and osp.exists(basename): return basename for path in os.environ["PATH"].split(os.pathsep): abspath = osp.join(path, basename) if osp.isfile(abspath): return abspath def find_program(basename): """ Find program in PATH and return absolute path Try adding .exe or .bat to basename on Windows platforms (return None if not found) """ names = [basename] if os.name == "nt": # Windows platforms extensions = (".exe", ".bat", ".cmd", ".dll") if not basename.endswith(extensions): names = [basename + ext for ext in extensions] + [basename] for name in names: path = is_program_installed(name) if path: return path def patch_new_path(library_path, new_dir): library = osp.basename(library_path) name, *rest = library.split(".") rest = ".".join(rest) hash_id = hashlib.sha256(library_path.encode("utf-8")).hexdigest()[:8] new_name = ".".join([name, hash_id, rest]) return osp.join(new_dir, new_name) def find_dll_dependencies(dumpbin, binary): out = subprocess.run([dumpbin, "/dependents", binary], stdout=subprocess.PIPE) out = out.stdout.strip().decode("utf-8") start_index = out.find("dependencies:") + len("dependencies:") end_index = out.find("Summary") dlls = out[start_index:end_index].strip() dlls = dlls.split(os.linesep) dlls = [dll.strip() for dll in dlls] return dlls def relocate_elf_library(patchelf, output_dir, output_library, binary): """ Relocate an ELF shared library to be packaged on a wheel. Given a shared library, find the transitive closure of its dependencies, rename and copy them into the wheel while updating their respective rpaths. """ print(f"Relocating {binary}") binary_path = osp.join(output_library, binary) ld_tree = lddtree(binary_path) tree_libs = ld_tree["libs"] binary_queue = [(n, binary) for n in ld_tree["needed"]] binary_paths = {binary: binary_path} binary_dependencies = {} while binary_queue != []: library, parent = binary_queue.pop(0) library_info = tree_libs[library] print(library) if library_info["path"] is None: print(f"Omitting {library}") continue if library in ALLOWLIST: # Omit glibc/gcc/system libraries print(f"Omitting {library}") continue parent_dependencies = binary_dependencies.get(parent, []) parent_dependencies.append(library) binary_dependencies[parent] = parent_dependencies if library in binary_paths: continue binary_paths[library] = library_info["path"] binary_queue += [(n, library) for n in library_info["needed"]] print("Copying dependencies to wheel directory") new_libraries_path = osp.join(output_dir, "torchvision.libs") os.makedirs(new_libraries_path, exist_ok=True) new_names = {binary: binary_path} for library in binary_paths: if library != binary: library_path = binary_paths[library] new_library_path = patch_new_path(library_path, new_libraries_path) print(f"{library} -> {new_library_path}") shutil.copyfile(library_path, new_library_path) new_names[library] = new_library_path print("Updating dependency names by new files") for library in binary_paths: if library != binary: if library not in binary_dependencies: continue library_dependencies = binary_dependencies[library] new_library_name = new_names[library] for dep in library_dependencies: new_dep = osp.basename(new_names[dep]) print(f"{library}: {dep} -> {new_dep}") subprocess.check_output( [patchelf, "--replace-needed", dep, new_dep, new_library_name], cwd=new_libraries_path ) print("Updating library rpath") subprocess.check_output([patchelf, "--set-rpath", "$ORIGIN", new_library_name], cwd=new_libraries_path) subprocess.check_output([patchelf, "--print-rpath", new_library_name], cwd=new_libraries_path) print("Update library dependencies") library_dependencies = binary_dependencies[binary] for dep in library_dependencies: new_dep = osp.basename(new_names[dep]) print(f"{binary}: {dep} -> {new_dep}") subprocess.check_output([patchelf, "--replace-needed", dep, new_dep, binary], cwd=output_library) print("Update library rpath") subprocess.check_output( [patchelf, "--set-rpath", "$ORIGIN:$ORIGIN/../torchvision.libs", binary_path], cwd=output_library ) def relocate_dll_library(dumpbin, output_dir, output_library, binary): """ Relocate a DLL/PE shared library to be packaged on a wheel. Given a shared library, find the transitive closure of its dependencies, rename and copy them into the wheel. """ print(f"Relocating {binary}") binary_path = osp.join(output_library, binary) library_dlls = find_dll_dependencies(dumpbin, binary_path) binary_queue = [(dll, binary) for dll in library_dlls] binary_paths = {binary: binary_path} binary_dependencies = {} while binary_queue != []: library, parent = binary_queue.pop(0) if library in WINDOWS_ALLOWLIST or library.startswith("api-ms-win"): print(f"Omitting {library}") continue library_path = find_program(library) if library_path is None: print(f"{library} not found") continue if osp.basename(osp.dirname(library_path)) == "system32": continue print(f"{library}: {library_path}") parent_dependencies = binary_dependencies.get(parent, []) parent_dependencies.append(library) binary_dependencies[parent] = parent_dependencies if library in binary_paths: continue binary_paths[library] = library_path downstream_dlls = find_dll_dependencies(dumpbin, library_path) binary_queue += [(n, library) for n in downstream_dlls] print("Copying dependencies to wheel directory") package_dir = osp.join(output_dir, "torchvision") for library in binary_paths: if library != binary: library_path = binary_paths[library] new_library_path = osp.join(package_dir, library) print(f"{library} -> {new_library_path}") shutil.copyfile(library_path, new_library_path) def compress_wheel(output_dir, wheel, wheel_dir, wheel_name): """Create RECORD file and compress wheel distribution.""" print("Update RECORD file in wheel") dist_info = glob.glob(osp.join(output_dir, "*.dist-info"))[0] record_file = osp.join(dist_info, "RECORD") with open(record_file, "w") as f: for root, _, files in os.walk(output_dir): for this_file in files: full_file = osp.join(root, this_file) rel_file = osp.relpath(full_file, output_dir) if full_file == record_file: f.write(f"{rel_file},,\n") else: digest, size = rehash(full_file) f.write(f"{rel_file},{digest},{size}\n") print("Compressing wheel") base_wheel_name = osp.join(wheel_dir, wheel_name) shutil.make_archive(base_wheel_name, "zip", output_dir) os.remove(wheel) shutil.move(f"{base_wheel_name}.zip", wheel) shutil.rmtree(output_dir) def patch_linux(): # Get patchelf location patchelf = find_program("patchelf") if patchelf is None: raise FileNotFoundError("Patchelf was not found in the system, please make sure that is available on the PATH.") # Find wheel print("Finding wheels...") wheels = glob.glob(osp.join(PACKAGE_ROOT, "dist", "*.whl")) output_dir = osp.join(PACKAGE_ROOT, "dist", ".wheel-process") image_binary = "image.so" video_binary = "video_reader.so" torchvision_binaries = [image_binary, video_binary] for wheel in wheels: if osp.exists(output_dir): shutil.rmtree(output_dir) os.makedirs(output_dir) print("Unzipping wheel...") wheel_file = osp.basename(wheel) wheel_dir = osp.dirname(wheel) print(f"{wheel_file}") wheel_name, _ = osp.splitext(wheel_file) unzip_file(wheel, output_dir) print("Finding ELF dependencies...") output_library = osp.join(output_dir, "torchvision") for binary in torchvision_binaries: if osp.exists(osp.join(output_library, binary)): relocate_elf_library(patchelf, output_dir, output_library, binary) compress_wheel(output_dir, wheel, wheel_dir, wheel_name) def patch_win(): # Get dumpbin location dumpbin = find_program("dumpbin") if dumpbin is None: raise FileNotFoundError("Dumpbin was not found in the system, please make sure that is available on the PATH.") # Find wheel print("Finding wheels...") wheels = glob.glob(osp.join(PACKAGE_ROOT, "dist", "*.whl")) output_dir = osp.join(PACKAGE_ROOT, "dist", ".wheel-process") image_binary = "image.pyd" video_binary = "video_reader.pyd" torchvision_binaries = [image_binary, video_binary] for wheel in wheels: if osp.exists(output_dir): shutil.rmtree(output_dir) os.makedirs(output_dir) print("Unzipping wheel...") wheel_file = osp.basename(wheel) wheel_dir = osp.dirname(wheel) print(f"{wheel_file}") wheel_name, _ = osp.splitext(wheel_file) unzip_file(wheel, output_dir) print("Finding DLL/PE dependencies...") output_library = osp.join(output_dir, "torchvision") for binary in torchvision_binaries: if osp.exists(osp.join(output_library, binary)): relocate_dll_library(dumpbin, output_dir, output_library, binary) compress_wheel(output_dir, wheel, wheel_dir, wheel_name) if __name__ == "__main__": if sys.platform == "linux": patch_linux() elif sys.platform == "win32": patch_win() vision-0.19.1/packaging/windows/000077500000000000000000000000001466211133600165325ustar00rootroot00000000000000vision-0.19.1/packaging/windows/internal/000077500000000000000000000000001466211133600203465ustar00rootroot00000000000000vision-0.19.1/packaging/windows/internal/build_cmake.bat000066400000000000000000000004651466211133600233020ustar00rootroot00000000000000@echo on msbuild "-p:Configuration=Release" "-p:BuildInParallel=true" "-p:MultiProcessorCompilation=true" "-p:CL_MPCount=%1" torchvision.vcxproj -maxcpucount:%1 msbuild "-p:Configuration=Release" "-p:BuildInParallel=true" "-p:MultiProcessorCompilation=true" "-p:CL_MPCount=%1" INSTALL.vcxproj -maxcpucount:%1 vision-0.19.1/packaging/windows/internal/build_cpp_example.bat000066400000000000000000000003251466211133600245120ustar00rootroot00000000000000@echo on set CL=/I"C:\Program Files (x86)\torchvision\include" msbuild "-p:Configuration=Release" "-p:BuildInParallel=true" "-p:MultiProcessorCompilation=true" "-p:CL_MPCount=%1" run_model.vcxproj -maxcpucount:%1 vision-0.19.1/packaging/windows/internal/vc_env_helper.bat000066400000000000000000000020411466211133600236520ustar00rootroot00000000000000@echo on set VC_VERSION_LOWER=17 set VC_VERSION_UPPER=18 if "%VC_YEAR%" == "2019" ( set VC_VERSION_LOWER=16 set VC_VERSION_UPPER=17 ) if "%VC_YEAR%" == "2017" ( set VC_VERSION_LOWER=15 set VC_VERSION_UPPER=16 ) for /f "usebackq tokens=*" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -legacy -products * -version [%VC_VERSION_LOWER%^,%VC_VERSION_UPPER%^) -property installationPath`) do ( if exist "%%i" if exist "%%i\VC\Auxiliary\Build\vcvarsall.bat" ( set "VS15INSTALLDIR=%%i" set "VS15VCVARSALL=%%i\VC\Auxiliary\Build\vcvarsall.bat" goto vswhere ) ) :vswhere if "%VSDEVCMD_ARGS%" == "" ( call "%VS15VCVARSALL%" x64 || exit /b 1 ) else ( call "%VS15VCVARSALL%" x64 %VSDEVCMD_ARGS% || exit /b 1 ) @echo on set DISTUTILS_USE_SDK=1 set args=%1 shift :start if [%1] == [] goto done set args=%args% %1 shift goto start :done if "%args%" == "" ( echo Usage: vc_env_helper.bat [command] [args] echo e.g. vc_env_helper.bat cl /c test.cpp ) %args% || exit /b 1 vision-0.19.1/pyproject.toml000066400000000000000000000003201466211133600160230ustar00rootroot00000000000000[tool.usort] first_party_detection = false [tool.black] line-length = 120 target-version = ["py38"] [tool.ufmt] excludes = [ "gallery", ] [build-system] requires = ["setuptools", "torch", "wheel"] vision-0.19.1/pytest.ini000066400000000000000000000004611466211133600151460ustar00rootroot00000000000000[pytest] addopts = # show tests that (f)ailed, (E)rror, or (X)passed in the summary -rfEX # Make tracebacks shorter --tb=short # enable all warnings -Wd --ignore=test/test_datasets_download.py --ignore-glob=test/test_prototype_*.py testpaths = test xfail_strict = True vision-0.19.1/references/000077500000000000000000000000001466211133600152355ustar00rootroot00000000000000vision-0.19.1/references/classification/000077500000000000000000000000001466211133600202305ustar00rootroot00000000000000vision-0.19.1/references/classification/README.md000066400000000000000000000404151466211133600215130ustar00rootroot00000000000000# Image classification reference training scripts This folder contains reference training scripts for image classification. They serve as a log of how to train specific models, as provide baseline training and evaluation scripts to quickly bootstrap research. Except otherwise noted, all models have been trained on 8x V100 GPUs with the following parameters: | Parameter | value | | ------------------------ | ------ | | `--batch_size` | `32` | | `--epochs` | `90` | | `--lr` | `0.1` | | `--momentum` | `0.9` | | `--wd`, `--weight-decay` | `1e-4` | | `--lr-step-size` | `30` | | `--lr-gamma` | `0.1` | ### AlexNet and VGG Since `AlexNet` and the original `VGG` architectures do not include batch normalization, the default initial learning rate `--lr 0.1` is too high. ``` torchrun --nproc_per_node=8 train.py\ --model $MODEL --lr 1e-2 ``` Here `$MODEL` is one of `alexnet`, `vgg11`, `vgg13`, `vgg16` or `vgg19`. Note that `vgg11_bn`, `vgg13_bn`, `vgg16_bn`, and `vgg19_bn` include batch normalization and thus are trained with the default parameters. ### GoogLeNet The weights of the GoogLeNet model are ported from the original paper rather than trained from scratch. ### Inception V3 The weights of the Inception V3 model are ported from the original paper rather than trained from scratch. Since it expects tensors with a size of N x 3 x 299 x 299, to validate the model use the following command: ``` torchrun --nproc_per_node=8 train.py --model inception_v3\ --test-only --weights Inception_V3_Weights.IMAGENET1K_V1 ``` ### ResNet ``` torchrun --nproc_per_node=8 train.py --model $MODEL ``` Here `$MODEL` is one of `resnet18`, `resnet34`, `resnet50`, `resnet101` or `resnet152`. ### ResNext ``` torchrun --nproc_per_node=8 train.py\ --model $MODEL --epochs 100 ``` Here `$MODEL` is one of `resnext50_32x4d` or `resnext101_32x8d`. Note that the above command corresponds to a single node with 8 GPUs. If you use a different number of GPUs and/or a different batch size, then the learning rate should be scaled accordingly. For example, the pretrained model provided by `torchvision` was trained on 8 nodes, each with 8 GPUs (for a total of 64 GPUs), with `--batch_size 16` and `--lr 0.4`, instead of the current defaults which are respectively batch_size=32 and lr=0.1 ### MobileNetV2 ``` torchrun --nproc_per_node=8 train.py\ --model mobilenet_v2 --epochs 300 --lr 0.045 --wd 0.00004\ --lr-step-size 1 --lr-gamma 0.98 ``` ### MobileNetV3 Large & Small ``` torchrun --nproc_per_node=8 train.py\ --model $MODEL --epochs 600 --opt rmsprop --batch-size 128 --lr 0.064\ --wd 0.00001 --lr-step-size 2 --lr-gamma 0.973 --auto-augment imagenet --random-erase 0.2 ``` Here `$MODEL` is one of `mobilenet_v3_large` or `mobilenet_v3_small`. Then we averaged the parameters of the last 3 checkpoints that improved the Acc@1. See [#3182](https://github.com/pytorch/vision/pull/3182) and [#3354](https://github.com/pytorch/vision/pull/3354) for details. ### EfficientNet-V1 The weights of the B0-B4 variants are ported from Ross Wightman's [timm repo](https://github.com/rwightman/pytorch-image-models/blob/01cb46a9a50e3ba4be167965b5764e9702f09b30/timm/models/efficientnet.py#L95-L108). The weights of the B5-B7 variants are ported from Luke Melas' [EfficientNet-PyTorch repo](https://github.com/lukemelas/EfficientNet-PyTorch/blob/1039e009545d9329ea026c9f7541341439712b96/efficientnet_pytorch/utils.py#L562-L564). All models were trained using Bicubic interpolation and each have custom crop and resize sizes. To validate the models use the following commands: ``` torchrun --nproc_per_node=8 train.py --model efficientnet_b0 --test-only --weights EfficientNet_B0_Weights.IMAGENET1K_V1 torchrun --nproc_per_node=8 train.py --model efficientnet_b1 --test-only --weights EfficientNet_B1_Weights.IMAGENET1K_V1 torchrun --nproc_per_node=8 train.py --model efficientnet_b2 --test-only --weights EfficientNet_B2_Weights.IMAGENET1K_V1 torchrun --nproc_per_node=8 train.py --model efficientnet_b3 --test-only --weights EfficientNet_B3_Weights.IMAGENET1K_V1 torchrun --nproc_per_node=8 train.py --model efficientnet_b4 --test-only --weights EfficientNet_B4_Weights.IMAGENET1K_V1 torchrun --nproc_per_node=8 train.py --model efficientnet_b5 --test-only --weights EfficientNet_B5_Weights.IMAGENET1K_V1 torchrun --nproc_per_node=8 train.py --model efficientnet_b6 --test-only --weights EfficientNet_B6_Weights.IMAGENET1K_V1 torchrun --nproc_per_node=8 train.py --model efficientnet_b7 --test-only --weights EfficientNet_B7_Weights.IMAGENET1K_V1 ``` ### EfficientNet-V2 ``` torchrun --nproc_per_node=8 train.py \ --model $MODEL --batch-size 128 --lr 0.5 --lr-scheduler cosineannealinglr \ --lr-warmup-epochs 5 --lr-warmup-method linear --auto-augment ta_wide --epochs 600 --random-erase 0.1 \ --label-smoothing 0.1 --mixup-alpha 0.2 --cutmix-alpha 1.0 --weight-decay 0.00002 --norm-weight-decay 0.0 \ --train-crop-size $TRAIN_SIZE --model-ema --val-crop-size $EVAL_SIZE --val-resize-size $EVAL_SIZE \ --ra-sampler --ra-reps 4 ``` Here `$MODEL` is one of `efficientnet_v2_s` and `efficientnet_v2_m`. Note that the Small variant had a `$TRAIN_SIZE` of `300` and a `$EVAL_SIZE` of `384`, while the Medium `384` and `480` respectively. Note that the above command corresponds to training on a single node with 8 GPUs. For generating the pre-trained weights, we trained with 4 nodes, each with 8 GPUs (for a total of 32 GPUs), and `--batch_size 32`. The weights of the Large variant are ported from the original paper rather than trained from scratch. See the `EfficientNet_V2_L_Weights` entry for their exact preprocessing transforms. ### RegNet #### Small models ``` torchrun --nproc_per_node=8 train.py\ --model $MODEL --epochs 100 --batch-size 128 --wd 0.00005 --lr=0.8\ --lr-scheduler=cosineannealinglr --lr-warmup-method=linear\ --lr-warmup-epochs=5 --lr-warmup-decay=0.1 ``` Here `$MODEL` is one of `regnet_x_400mf`, `regnet_x_800mf`, `regnet_x_1_6gf`, `regnet_y_400mf`, `regnet_y_800mf` and `regnet_y_1_6gf`. Please note we used learning rate 0.4 for `regent_y_400mf` to get the same Acc@1 as [the paper)(https://arxiv.org/abs/2003.13678). #### Medium models ``` torchrun --nproc_per_node=8 train.py\ --model $MODEL --epochs 100 --batch-size 64 --wd 0.00005 --lr=0.4\ --lr-scheduler=cosineannealinglr --lr-warmup-method=linear\ --lr-warmup-epochs=5 --lr-warmup-decay=0.1 ``` Here `$MODEL` is one of `regnet_x_3_2gf`, `regnet_x_8gf`, `regnet_x_16gf`, `regnet_y_3_2gf` and `regnet_y_8gf`. #### Large models ``` torchrun --nproc_per_node=8 train.py\ --model $MODEL --epochs 100 --batch-size 32 --wd 0.00005 --lr=0.2\ --lr-scheduler=cosineannealinglr --lr-warmup-method=linear\ --lr-warmup-epochs=5 --lr-warmup-decay=0.1 ``` Here `$MODEL` is one of `regnet_x_32gf`, `regnet_y_16gf` and `regnet_y_32gf`. ### Vision Transformer #### vit_b_16 ``` torchrun --nproc_per_node=8 train.py\ --model vit_b_16 --epochs 300 --batch-size 512 --opt adamw --lr 0.003 --wd 0.3\ --lr-scheduler cosineannealinglr --lr-warmup-method linear --lr-warmup-epochs 30\ --lr-warmup-decay 0.033 --amp --label-smoothing 0.11 --mixup-alpha 0.2 --auto-augment ra\ --clip-grad-norm 1 --ra-sampler --cutmix-alpha 1.0 --model-ema ``` Note that the above command corresponds to training on a single node with 8 GPUs. For generating the pre-trained weights, we trained with 8 nodes, each with 8 GPUs (for a total of 64 GPUs), and `--batch_size 64`. #### vit_b_32 ``` torchrun --nproc_per_node=8 train.py\ --model vit_b_32 --epochs 300 --batch-size 512 --opt adamw --lr 0.003 --wd 0.3\ --lr-scheduler cosineannealinglr --lr-warmup-method linear --lr-warmup-epochs 30\ --lr-warmup-decay 0.033 --amp --label-smoothing 0.11 --mixup-alpha 0.2 --auto-augment imagenet\ --clip-grad-norm 1 --ra-sampler --cutmix-alpha 1.0 --model-ema ``` Note that the above command corresponds to training on a single node with 8 GPUs. For generating the pre-trained weights, we trained with 2 nodes, each with 8 GPUs (for a total of 16 GPUs), and `--batch_size 256`. #### vit_l_16 ``` torchrun --nproc_per_node=8 train.py\ --model vit_l_16 --epochs 600 --batch-size 128 --lr 0.5 --lr-scheduler cosineannealinglr\ --lr-warmup-method linear --lr-warmup-epochs 5 --label-smoothing 0.1 --mixup-alpha 0.2\ --auto-augment ta_wide --random-erase 0.1 --weight-decay 0.00002 --norm-weight-decay 0.0\ --clip-grad-norm 1 --ra-sampler --cutmix-alpha 1.0 --model-ema --val-resize-size 232 ``` Note that the above command corresponds to training on a single node with 8 GPUs. For generating the pre-trained weights, we trained with 2 nodes, each with 8 GPUs (for a total of 16 GPUs), and `--batch_size 64`. #### vit_l_32 ``` torchrun --nproc_per_node=8 train.py\ --model vit_l_32 --epochs 300 --batch-size 512 --opt adamw --lr 0.003 --wd 0.3\ --lr-scheduler cosineannealinglr --lr-warmup-method linear --lr-warmup-epochs 30\ --lr-warmup-decay 0.033 --amp --label-smoothing 0.11 --mixup-alpha 0.2 --auto-augment ra\ --clip-grad-norm 1 --ra-sampler --cutmix-alpha 1.0 --model-ema ``` Note that the above command corresponds to training on a single node with 8 GPUs. For generating the pre-trained weights, we trained with 8 nodes, each with 8 GPUs (for a total of 64 GPUs), and `--batch_size 64`. ### ConvNeXt ``` torchrun --nproc_per_node=8 train.py\ --model $MODEL --batch-size 128 --opt adamw --lr 1e-3 --lr-scheduler cosineannealinglr \ --lr-warmup-epochs 5 --lr-warmup-method linear --auto-augment ta_wide --epochs 600 --random-erase 0.1 \ --label-smoothing 0.1 --mixup-alpha 0.2 --cutmix-alpha 1.0 --weight-decay 0.05 --norm-weight-decay 0.0 \ --train-crop-size 176 --model-ema --val-resize-size 232 --ra-sampler --ra-reps 4 ``` Here `$MODEL` is one of `convnext_tiny`, `convnext_small`, `convnext_base` and `convnext_large`. Note that each variant had its `--val-resize-size` optimized in a post-training step, see their `Weights` entry for their exact value. Note that the above command corresponds to training on a single node with 8 GPUs. For generating the pre-trained weights, we trained with 2 nodes, each with 8 GPUs (for a total of 16 GPUs), and `--batch_size 64`. ### SwinTransformer ``` torchrun --nproc_per_node=8 train.py\ --model $MODEL --epochs 300 --batch-size 128 --opt adamw --lr 0.001 --weight-decay 0.05 --norm-weight-decay 0.0 --bias-weight-decay 0.0 --transformer-embedding-decay 0.0 --lr-scheduler cosineannealinglr --lr-min 0.00001 --lr-warmup-method linear --lr-warmup-epochs 20 --lr-warmup-decay 0.01 --amp --label-smoothing 0.1 --mixup-alpha 0.8 --clip-grad-norm 5.0 --cutmix-alpha 1.0 --random-erase 0.25 --interpolation bicubic --auto-augment ta_wide --model-ema --ra-sampler --ra-reps 4 --val-resize-size 224 ``` Here `$MODEL` is one of `swin_t`, `swin_s` or `swin_b`. Note that `--val-resize-size` was optimized in a post-training step, see their `Weights` entry for the exact value. ### SwinTransformer V2 ``` torchrun --nproc_per_node=8 train.py\ --model $MODEL --epochs 300 --batch-size 128 --opt adamw --lr 0.001 --weight-decay 0.05 --norm-weight-decay 0.0 --bias-weight-decay 0.0 --transformer-embedding-decay 0.0 --lr-scheduler cosineannealinglr --lr-min 0.00001 --lr-warmup-method linear --lr-warmup-epochs 20 --lr-warmup-decay 0.01 --amp --label-smoothing 0.1 --mixup-alpha 0.8 --clip-grad-norm 5.0 --cutmix-alpha 1.0 --random-erase 0.25 --interpolation bicubic --auto-augment ta_wide --model-ema --ra-sampler --ra-reps 4 --val-resize-size 256 --val-crop-size 256 --train-crop-size 256 ``` Here `$MODEL` is one of `swin_v2_t`, `swin_v2_s` or `swin_v2_b`. Note that `--val-resize-size` was optimized in a post-training step, see their `Weights` entry for the exact value. ### MaxViT ``` torchrun --nproc_per_node=8 --n_nodes=4 train.py\ --model $MODEL --epochs 400 --batch-size 128 --opt adamw --lr 3e-3 --weight-decay 0.05 --lr-scheduler cosineannealinglr --lr-min 1e-5 --lr-warmup-method linear --lr-warmup-epochs 32 --label-smoothing 0.1 --mixup-alpha 0.8 --clip-grad-norm 1.0 --interpolation bicubic --auto-augment ta_wide --policy-magnitude 15 --model-ema --val-resize-size 224\ --val-crop-size 224 --train-crop-size 224 --amp --model-ema-steps 32 --transformer-embedding-decay 0 --sync-bn ``` Here `$MODEL` is `maxvit_t`. Note that `--val-resize-size` was not optimized in a post-training step. ### ShuffleNet V2 ``` torchrun --nproc_per_node=8 train.py \ --batch-size=128 \ --lr=0.5 --lr-scheduler=cosineannealinglr --lr-warmup-epochs=5 --lr-warmup-method=linear \ --auto-augment=ta_wide --epochs=600 --random-erase=0.1 --weight-decay=0.00002 \ --norm-weight-decay=0.0 --label-smoothing=0.1 --mixup-alpha=0.2 --cutmix-alpha=1.0 \ --train-crop-size=176 --model-ema --val-resize-size=232 --ra-sampler --ra-reps=4 ``` Here `$MODEL` is either `shufflenet_v2_x1_5` or `shufflenet_v2_x2_0`. The models `shufflenet_v2_x0_5` and `shufflenet_v2_x1_0` were contributed by the community. See [PR-849](https://github.com/pytorch/vision/pull/849#issuecomment-483391686) for details. ## Mixed precision training Automatic Mixed Precision (AMP) training on GPU for Pytorch can be enabled with the [torch.cuda.amp](https://pytorch.org/docs/stable/amp.html?highlight=amp#module-torch.cuda.amp). Mixed precision training makes use of both FP32 and FP16 precisions where appropriate. FP16 operations can leverage the Tensor cores on NVIDIA GPUs (Volta, Turing or newer architectures) for improved throughput, generally without loss in model accuracy. Mixed precision training also often allows larger batch sizes. GPU automatic mixed precision training for Pytorch Vision can be enabled via the flag value `--amp=True`. ``` torchrun --nproc_per_node=8 train.py\ --model resnext50_32x4d --epochs 100 --amp ``` ## Quantized ### Post training quantized models For all post training quantized models, the settings are: 1. num_calibration_batches: 32 2. num_workers: 16 3. batch_size: 32 4. eval_batch_size: 128 5. qbackend: 'fbgemm' ``` python train_quantization.py --device='cpu' --post-training-quantize --qbackend='fbgemm' --model='$MODEL' ``` Here `$MODEL` is one of `googlenet`, `inception_v3`, `resnet18`, `resnet50`, `resnext101_32x8d`, `shufflenet_v2_x0_5` and `shufflenet_v2_x1_0`. ### Quantized ShuffleNet V2 Here are commands that we use to quantize the `shufflenet_v2_x1_5` and `shufflenet_v2_x2_0` models. ``` # For shufflenet_v2_x1_5 python train_quantization.py --device='cpu' --post-training-quantize --qbackend='fbgemm' \ --model=shufflenet_v2_x1_5 --weights="ShuffleNet_V2_X1_5_Weights.IMAGENET1K_V1" \ --train-crop-size 176 --val-resize-size 232 --data-path /datasets01_ontap/imagenet_full_size/061417/ # For shufflenet_v2_x2_0 python train_quantization.py --device='cpu' --post-training-quantize --qbackend='fbgemm' \ --model=shufflenet_v2_x2_0 --weights="ShuffleNet_V2_X2_0_Weights.IMAGENET1K_V1" \ --train-crop-size 176 --val-resize-size 232 --data-path /datasets01_ontap/imagenet_full_size/061417/ ``` ### QAT MobileNetV2 For Mobilenet-v2, the model was trained with quantization aware training, the settings used are: 1. num_workers: 16 2. batch_size: 32 3. eval_batch_size: 128 4. qbackend: 'qnnpack' 5. learning-rate: 0.0001 6. num_epochs: 90 7. num_observer_update_epochs:4 8. num_batch_norm_update_epochs:3 9. momentum: 0.9 10. lr_step_size:30 11. lr_gamma: 0.1 12. weight-decay: 0.0001 ``` torchrun --nproc_per_node=8 train_quantization.py --model='mobilenet_v2' ``` Training converges at about 10 epochs. ### QAT MobileNetV3 For Mobilenet-v3 Large, the model was trained with quantization aware training, the settings used are: 1. num_workers: 16 2. batch_size: 32 3. eval_batch_size: 128 4. qbackend: 'qnnpack' 5. learning-rate: 0.001 6. num_epochs: 90 7. num_observer_update_epochs:4 8. num_batch_norm_update_epochs:3 9. momentum: 0.9 10. lr_step_size:30 11. lr_gamma: 0.1 12. weight-decay: 0.00001 ``` torchrun --nproc_per_node=8 train_quantization.py --model='mobilenet_v3_large' \ --wd 0.00001 --lr 0.001 ``` For post training quant, device is set to CPU. For training, the device is set to CUDA. ### Command to evaluate quantized models using the pre-trained weights: ``` python train_quantization.py --device='cpu' --test-only --qbackend='' --model='' ``` For inception_v3 you need to pass the following extra parameters: ``` --val-resize-size 342 --val-crop-size 299 --train-crop-size 299 ``` vision-0.19.1/references/classification/presets.py000066400000000000000000000074551466211133600223020ustar00rootroot00000000000000import torch from torchvision.transforms.functional import InterpolationMode def get_module(use_v2): # We need a protected import to avoid the V2 warning in case just V1 is used if use_v2: import torchvision.transforms.v2 return torchvision.transforms.v2 else: import torchvision.transforms return torchvision.transforms class ClassificationPresetTrain: # Note: this transform assumes that the input to forward() are always PIL # images, regardless of the backend parameter. We may change that in the # future though, if we change the output type from the dataset. def __init__( self, *, crop_size, mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225), interpolation=InterpolationMode.BILINEAR, hflip_prob=0.5, auto_augment_policy=None, ra_magnitude=9, augmix_severity=3, random_erase_prob=0.0, backend="pil", use_v2=False, ): T = get_module(use_v2) transforms = [] backend = backend.lower() if backend == "tensor": transforms.append(T.PILToTensor()) elif backend != "pil": raise ValueError(f"backend can be 'tensor' or 'pil', but got {backend}") transforms.append(T.RandomResizedCrop(crop_size, interpolation=interpolation, antialias=True)) if hflip_prob > 0: transforms.append(T.RandomHorizontalFlip(hflip_prob)) if auto_augment_policy is not None: if auto_augment_policy == "ra": transforms.append(T.RandAugment(interpolation=interpolation, magnitude=ra_magnitude)) elif auto_augment_policy == "ta_wide": transforms.append(T.TrivialAugmentWide(interpolation=interpolation)) elif auto_augment_policy == "augmix": transforms.append(T.AugMix(interpolation=interpolation, severity=augmix_severity)) else: aa_policy = T.AutoAugmentPolicy(auto_augment_policy) transforms.append(T.AutoAugment(policy=aa_policy, interpolation=interpolation)) if backend == "pil": transforms.append(T.PILToTensor()) transforms.extend( [ T.ToDtype(torch.float, scale=True) if use_v2 else T.ConvertImageDtype(torch.float), T.Normalize(mean=mean, std=std), ] ) if random_erase_prob > 0: transforms.append(T.RandomErasing(p=random_erase_prob)) if use_v2: transforms.append(T.ToPureTensor()) self.transforms = T.Compose(transforms) def __call__(self, img): return self.transforms(img) class ClassificationPresetEval: def __init__( self, *, crop_size, resize_size=256, mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225), interpolation=InterpolationMode.BILINEAR, backend="pil", use_v2=False, ): T = get_module(use_v2) transforms = [] backend = backend.lower() if backend == "tensor": transforms.append(T.PILToTensor()) elif backend != "pil": raise ValueError(f"backend can be 'tensor' or 'pil', but got {backend}") transforms += [ T.Resize(resize_size, interpolation=interpolation, antialias=True), T.CenterCrop(crop_size), ] if backend == "pil": transforms.append(T.PILToTensor()) transforms += [ T.ToDtype(torch.float, scale=True) if use_v2 else T.ConvertImageDtype(torch.float), T.Normalize(mean=mean, std=std), ] if use_v2: transforms.append(T.ToPureTensor()) self.transforms = T.Compose(transforms) def __call__(self, img): return self.transforms(img) vision-0.19.1/references/classification/sampler.py000066400000000000000000000045331466211133600222520ustar00rootroot00000000000000import math import torch import torch.distributed as dist class RASampler(torch.utils.data.Sampler): """Sampler that restricts data loading to a subset of the dataset for distributed, with repeated augmentation. It ensures that different each augmented version of a sample will be visible to a different process (GPU). Heavily based on 'torch.utils.data.DistributedSampler'. This is borrowed from the DeiT Repo: https://github.com/facebookresearch/deit/blob/main/samplers.py """ def __init__(self, dataset, num_replicas=None, rank=None, shuffle=True, seed=0, repetitions=3): if num_replicas is None: if not dist.is_available(): raise RuntimeError("Requires distributed package to be available!") num_replicas = dist.get_world_size() if rank is None: if not dist.is_available(): raise RuntimeError("Requires distributed package to be available!") rank = dist.get_rank() self.dataset = dataset self.num_replicas = num_replicas self.rank = rank self.epoch = 0 self.num_samples = int(math.ceil(len(self.dataset) * float(repetitions) / self.num_replicas)) self.total_size = self.num_samples * self.num_replicas self.num_selected_samples = int(math.floor(len(self.dataset) // 256 * 256 / self.num_replicas)) self.shuffle = shuffle self.seed = seed self.repetitions = repetitions def __iter__(self): if self.shuffle: # Deterministically shuffle based on epoch g = torch.Generator() g.manual_seed(self.seed + self.epoch) indices = torch.randperm(len(self.dataset), generator=g).tolist() else: indices = list(range(len(self.dataset))) # Add extra samples to make it evenly divisible indices = [ele for ele in indices for i in range(self.repetitions)] indices += indices[: (self.total_size - len(indices))] assert len(indices) == self.total_size # Subsample indices = indices[self.rank : self.total_size : self.num_replicas] assert len(indices) == self.num_samples return iter(indices[: self.num_selected_samples]) def __len__(self): return self.num_selected_samples def set_epoch(self, epoch): self.epoch = epoch vision-0.19.1/references/classification/train.py000066400000000000000000000554341466211133600217320ustar00rootroot00000000000000import datetime import os import time import warnings import presets import torch import torch.utils.data import torchvision import torchvision.transforms import utils from sampler import RASampler from torch import nn from torch.utils.data.dataloader import default_collate from torchvision.transforms.functional import InterpolationMode from transforms import get_mixup_cutmix def train_one_epoch(model, criterion, optimizer, data_loader, device, epoch, args, model_ema=None, scaler=None): model.train() metric_logger = utils.MetricLogger(delimiter=" ") metric_logger.add_meter("lr", utils.SmoothedValue(window_size=1, fmt="{value}")) metric_logger.add_meter("img/s", utils.SmoothedValue(window_size=10, fmt="{value}")) header = f"Epoch: [{epoch}]" for i, (image, target) in enumerate(metric_logger.log_every(data_loader, args.print_freq, header)): start_time = time.time() image, target = image.to(device), target.to(device) with torch.cuda.amp.autocast(enabled=scaler is not None): output = model(image) loss = criterion(output, target) optimizer.zero_grad() if scaler is not None: scaler.scale(loss).backward() if args.clip_grad_norm is not None: # we should unscale the gradients of optimizer's assigned params if do gradient clipping scaler.unscale_(optimizer) nn.utils.clip_grad_norm_(model.parameters(), args.clip_grad_norm) scaler.step(optimizer) scaler.update() else: loss.backward() if args.clip_grad_norm is not None: nn.utils.clip_grad_norm_(model.parameters(), args.clip_grad_norm) optimizer.step() if model_ema and i % args.model_ema_steps == 0: model_ema.update_parameters(model) if epoch < args.lr_warmup_epochs: # Reset ema buffer to keep copying weights during warmup period model_ema.n_averaged.fill_(0) acc1, acc5 = utils.accuracy(output, target, topk=(1, 5)) batch_size = image.shape[0] metric_logger.update(loss=loss.item(), lr=optimizer.param_groups[0]["lr"]) metric_logger.meters["acc1"].update(acc1.item(), n=batch_size) metric_logger.meters["acc5"].update(acc5.item(), n=batch_size) metric_logger.meters["img/s"].update(batch_size / (time.time() - start_time)) def evaluate(model, criterion, data_loader, device, print_freq=100, log_suffix=""): model.eval() metric_logger = utils.MetricLogger(delimiter=" ") header = f"Test: {log_suffix}" num_processed_samples = 0 with torch.inference_mode(): for image, target in metric_logger.log_every(data_loader, print_freq, header): image = image.to(device, non_blocking=True) target = target.to(device, non_blocking=True) output = model(image) loss = criterion(output, target) acc1, acc5 = utils.accuracy(output, target, topk=(1, 5)) # FIXME need to take into account that the datasets # could have been padded in distributed setup batch_size = image.shape[0] metric_logger.update(loss=loss.item()) metric_logger.meters["acc1"].update(acc1.item(), n=batch_size) metric_logger.meters["acc5"].update(acc5.item(), n=batch_size) num_processed_samples += batch_size # gather the stats from all processes num_processed_samples = utils.reduce_across_processes(num_processed_samples) if ( hasattr(data_loader.dataset, "__len__") and len(data_loader.dataset) != num_processed_samples and torch.distributed.get_rank() == 0 ): # See FIXME above warnings.warn( f"It looks like the dataset has {len(data_loader.dataset)} samples, but {num_processed_samples} " "samples were used for the validation, which might bias the results. " "Try adjusting the batch size and / or the world size. " "Setting the world size to 1 is always a safe bet." ) metric_logger.synchronize_between_processes() print(f"{header} Acc@1 {metric_logger.acc1.global_avg:.3f} Acc@5 {metric_logger.acc5.global_avg:.3f}") return metric_logger.acc1.global_avg def _get_cache_path(filepath): import hashlib h = hashlib.sha1(filepath.encode()).hexdigest() cache_path = os.path.join("~", ".torch", "vision", "datasets", "imagefolder", h[:10] + ".pt") cache_path = os.path.expanduser(cache_path) return cache_path def load_data(traindir, valdir, args): # Data loading code print("Loading data") val_resize_size, val_crop_size, train_crop_size = ( args.val_resize_size, args.val_crop_size, args.train_crop_size, ) interpolation = InterpolationMode(args.interpolation) print("Loading training data") st = time.time() cache_path = _get_cache_path(traindir) if args.cache_dataset and os.path.exists(cache_path): # Attention, as the transforms are also cached! print(f"Loading dataset_train from {cache_path}") # TODO: this could probably be weights_only=True dataset, _ = torch.load(cache_path, weights_only=False) else: # We need a default value for the variables below because args may come # from train_quantization.py which doesn't define them. auto_augment_policy = getattr(args, "auto_augment", None) random_erase_prob = getattr(args, "random_erase", 0.0) ra_magnitude = getattr(args, "ra_magnitude", None) augmix_severity = getattr(args, "augmix_severity", None) dataset = torchvision.datasets.ImageFolder( traindir, presets.ClassificationPresetTrain( crop_size=train_crop_size, interpolation=interpolation, auto_augment_policy=auto_augment_policy, random_erase_prob=random_erase_prob, ra_magnitude=ra_magnitude, augmix_severity=augmix_severity, backend=args.backend, use_v2=args.use_v2, ), ) if args.cache_dataset: print(f"Saving dataset_train to {cache_path}") utils.mkdir(os.path.dirname(cache_path)) utils.save_on_master((dataset, traindir), cache_path) print("Took", time.time() - st) print("Loading validation data") cache_path = _get_cache_path(valdir) if args.cache_dataset and os.path.exists(cache_path): # Attention, as the transforms are also cached! print(f"Loading dataset_test from {cache_path}") # TODO: this could probably be weights_only=True dataset_test, _ = torch.load(cache_path, weights_only=False) else: if args.weights and args.test_only: weights = torchvision.models.get_weight(args.weights) preprocessing = weights.transforms(antialias=True) if args.backend == "tensor": preprocessing = torchvision.transforms.Compose([torchvision.transforms.PILToTensor(), preprocessing]) else: preprocessing = presets.ClassificationPresetEval( crop_size=val_crop_size, resize_size=val_resize_size, interpolation=interpolation, backend=args.backend, use_v2=args.use_v2, ) dataset_test = torchvision.datasets.ImageFolder( valdir, preprocessing, ) if args.cache_dataset: print(f"Saving dataset_test to {cache_path}") utils.mkdir(os.path.dirname(cache_path)) utils.save_on_master((dataset_test, valdir), cache_path) print("Creating data loaders") if args.distributed: if hasattr(args, "ra_sampler") and args.ra_sampler: train_sampler = RASampler(dataset, shuffle=True, repetitions=args.ra_reps) else: train_sampler = torch.utils.data.distributed.DistributedSampler(dataset) test_sampler = torch.utils.data.distributed.DistributedSampler(dataset_test, shuffle=False) else: train_sampler = torch.utils.data.RandomSampler(dataset) test_sampler = torch.utils.data.SequentialSampler(dataset_test) return dataset, dataset_test, train_sampler, test_sampler def main(args): if args.output_dir: utils.mkdir(args.output_dir) utils.init_distributed_mode(args) print(args) device = torch.device(args.device) if args.use_deterministic_algorithms: torch.backends.cudnn.benchmark = False torch.use_deterministic_algorithms(True) else: torch.backends.cudnn.benchmark = True train_dir = os.path.join(args.data_path, "train") val_dir = os.path.join(args.data_path, "val") dataset, dataset_test, train_sampler, test_sampler = load_data(train_dir, val_dir, args) num_classes = len(dataset.classes) mixup_cutmix = get_mixup_cutmix( mixup_alpha=args.mixup_alpha, cutmix_alpha=args.cutmix_alpha, num_classes=num_classes, use_v2=args.use_v2 ) if mixup_cutmix is not None: def collate_fn(batch): return mixup_cutmix(*default_collate(batch)) else: collate_fn = default_collate data_loader = torch.utils.data.DataLoader( dataset, batch_size=args.batch_size, sampler=train_sampler, num_workers=args.workers, pin_memory=True, collate_fn=collate_fn, ) data_loader_test = torch.utils.data.DataLoader( dataset_test, batch_size=args.batch_size, sampler=test_sampler, num_workers=args.workers, pin_memory=True ) print("Creating model") model = torchvision.models.get_model(args.model, weights=args.weights, num_classes=num_classes) model.to(device) if args.distributed and args.sync_bn: model = torch.nn.SyncBatchNorm.convert_sync_batchnorm(model) criterion = nn.CrossEntropyLoss(label_smoothing=args.label_smoothing) custom_keys_weight_decay = [] if args.bias_weight_decay is not None: custom_keys_weight_decay.append(("bias", args.bias_weight_decay)) if args.transformer_embedding_decay is not None: for key in ["class_token", "position_embedding", "relative_position_bias_table"]: custom_keys_weight_decay.append((key, args.transformer_embedding_decay)) parameters = utils.set_weight_decay( model, args.weight_decay, norm_weight_decay=args.norm_weight_decay, custom_keys_weight_decay=custom_keys_weight_decay if len(custom_keys_weight_decay) > 0 else None, ) opt_name = args.opt.lower() if opt_name.startswith("sgd"): optimizer = torch.optim.SGD( parameters, lr=args.lr, momentum=args.momentum, weight_decay=args.weight_decay, nesterov="nesterov" in opt_name, ) elif opt_name == "rmsprop": optimizer = torch.optim.RMSprop( parameters, lr=args.lr, momentum=args.momentum, weight_decay=args.weight_decay, eps=0.0316, alpha=0.9 ) elif opt_name == "adamw": optimizer = torch.optim.AdamW(parameters, lr=args.lr, weight_decay=args.weight_decay) else: raise RuntimeError(f"Invalid optimizer {args.opt}. Only SGD, RMSprop and AdamW are supported.") scaler = torch.cuda.amp.GradScaler() if args.amp else None args.lr_scheduler = args.lr_scheduler.lower() if args.lr_scheduler == "steplr": main_lr_scheduler = torch.optim.lr_scheduler.StepLR(optimizer, step_size=args.lr_step_size, gamma=args.lr_gamma) elif args.lr_scheduler == "cosineannealinglr": main_lr_scheduler = torch.optim.lr_scheduler.CosineAnnealingLR( optimizer, T_max=args.epochs - args.lr_warmup_epochs, eta_min=args.lr_min ) elif args.lr_scheduler == "exponentiallr": main_lr_scheduler = torch.optim.lr_scheduler.ExponentialLR(optimizer, gamma=args.lr_gamma) else: raise RuntimeError( f"Invalid lr scheduler '{args.lr_scheduler}'. Only StepLR, CosineAnnealingLR and ExponentialLR " "are supported." ) if args.lr_warmup_epochs > 0: if args.lr_warmup_method == "linear": warmup_lr_scheduler = torch.optim.lr_scheduler.LinearLR( optimizer, start_factor=args.lr_warmup_decay, total_iters=args.lr_warmup_epochs ) elif args.lr_warmup_method == "constant": warmup_lr_scheduler = torch.optim.lr_scheduler.ConstantLR( optimizer, factor=args.lr_warmup_decay, total_iters=args.lr_warmup_epochs ) else: raise RuntimeError( f"Invalid warmup lr method '{args.lr_warmup_method}'. Only linear and constant are supported." ) lr_scheduler = torch.optim.lr_scheduler.SequentialLR( optimizer, schedulers=[warmup_lr_scheduler, main_lr_scheduler], milestones=[args.lr_warmup_epochs] ) else: lr_scheduler = main_lr_scheduler model_without_ddp = model if args.distributed: model = torch.nn.parallel.DistributedDataParallel(model, device_ids=[args.gpu]) model_without_ddp = model.module model_ema = None if args.model_ema: # Decay adjustment that aims to keep the decay independent of other hyper-parameters originally proposed at: # https://github.com/facebookresearch/pycls/blob/f8cd9627/pycls/core/net.py#L123 # # total_ema_updates = (Dataset_size / n_GPUs) * epochs / (batch_size_per_gpu * EMA_steps) # We consider constant = Dataset_size for a given dataset/setup and omit it. Thus: # adjust = 1 / total_ema_updates ~= n_GPUs * batch_size_per_gpu * EMA_steps / epochs adjust = args.world_size * args.batch_size * args.model_ema_steps / args.epochs alpha = 1.0 - args.model_ema_decay alpha = min(1.0, alpha * adjust) model_ema = utils.ExponentialMovingAverage(model_without_ddp, device=device, decay=1.0 - alpha) if args.resume: checkpoint = torch.load(args.resume, map_location="cpu", weights_only=True) model_without_ddp.load_state_dict(checkpoint["model"]) if not args.test_only: optimizer.load_state_dict(checkpoint["optimizer"]) lr_scheduler.load_state_dict(checkpoint["lr_scheduler"]) args.start_epoch = checkpoint["epoch"] + 1 if model_ema: model_ema.load_state_dict(checkpoint["model_ema"]) if scaler: scaler.load_state_dict(checkpoint["scaler"]) if args.test_only: # We disable the cudnn benchmarking because it can noticeably affect the accuracy torch.backends.cudnn.benchmark = False torch.backends.cudnn.deterministic = True if model_ema: evaluate(model_ema, criterion, data_loader_test, device=device, log_suffix="EMA") else: evaluate(model, criterion, data_loader_test, device=device) return print("Start training") start_time = time.time() for epoch in range(args.start_epoch, args.epochs): if args.distributed: train_sampler.set_epoch(epoch) train_one_epoch(model, criterion, optimizer, data_loader, device, epoch, args, model_ema, scaler) lr_scheduler.step() evaluate(model, criterion, data_loader_test, device=device) if model_ema: evaluate(model_ema, criterion, data_loader_test, device=device, log_suffix="EMA") if args.output_dir: checkpoint = { "model": model_without_ddp.state_dict(), "optimizer": optimizer.state_dict(), "lr_scheduler": lr_scheduler.state_dict(), "epoch": epoch, "args": args, } if model_ema: checkpoint["model_ema"] = model_ema.state_dict() if scaler: checkpoint["scaler"] = scaler.state_dict() utils.save_on_master(checkpoint, os.path.join(args.output_dir, f"model_{epoch}.pth")) utils.save_on_master(checkpoint, os.path.join(args.output_dir, "checkpoint.pth")) total_time = time.time() - start_time total_time_str = str(datetime.timedelta(seconds=int(total_time))) print(f"Training time {total_time_str}") def get_args_parser(add_help=True): import argparse parser = argparse.ArgumentParser(description="PyTorch Classification Training", add_help=add_help) parser.add_argument("--data-path", default="/datasets01/imagenet_full_size/061417/", type=str, help="dataset path") parser.add_argument("--model", default="resnet18", type=str, help="model name") parser.add_argument("--device", default="cuda", type=str, help="device (Use cuda or cpu Default: cuda)") parser.add_argument( "-b", "--batch-size", default=32, type=int, help="images per gpu, the total batch size is $NGPU x batch_size" ) parser.add_argument("--epochs", default=90, type=int, metavar="N", help="number of total epochs to run") parser.add_argument( "-j", "--workers", default=16, type=int, metavar="N", help="number of data loading workers (default: 16)" ) parser.add_argument("--opt", default="sgd", type=str, help="optimizer") parser.add_argument("--lr", default=0.1, type=float, help="initial learning rate") parser.add_argument("--momentum", default=0.9, type=float, metavar="M", help="momentum") parser.add_argument( "--wd", "--weight-decay", default=1e-4, type=float, metavar="W", help="weight decay (default: 1e-4)", dest="weight_decay", ) parser.add_argument( "--norm-weight-decay", default=None, type=float, help="weight decay for Normalization layers (default: None, same value as --wd)", ) parser.add_argument( "--bias-weight-decay", default=None, type=float, help="weight decay for bias parameters of all layers (default: None, same value as --wd)", ) parser.add_argument( "--transformer-embedding-decay", default=None, type=float, help="weight decay for embedding parameters for vision transformer models (default: None, same value as --wd)", ) parser.add_argument( "--label-smoothing", default=0.0, type=float, help="label smoothing (default: 0.0)", dest="label_smoothing" ) parser.add_argument("--mixup-alpha", default=0.0, type=float, help="mixup alpha (default: 0.0)") parser.add_argument("--cutmix-alpha", default=0.0, type=float, help="cutmix alpha (default: 0.0)") parser.add_argument("--lr-scheduler", default="steplr", type=str, help="the lr scheduler (default: steplr)") parser.add_argument("--lr-warmup-epochs", default=0, type=int, help="the number of epochs to warmup (default: 0)") parser.add_argument( "--lr-warmup-method", default="constant", type=str, help="the warmup method (default: constant)" ) parser.add_argument("--lr-warmup-decay", default=0.01, type=float, help="the decay for lr") parser.add_argument("--lr-step-size", default=30, type=int, help="decrease lr every step-size epochs") parser.add_argument("--lr-gamma", default=0.1, type=float, help="decrease lr by a factor of lr-gamma") parser.add_argument("--lr-min", default=0.0, type=float, help="minimum lr of lr schedule (default: 0.0)") parser.add_argument("--print-freq", default=10, type=int, help="print frequency") parser.add_argument("--output-dir", default=".", type=str, help="path to save outputs") parser.add_argument("--resume", default="", type=str, help="path of checkpoint") parser.add_argument("--start-epoch", default=0, type=int, metavar="N", help="start epoch") parser.add_argument( "--cache-dataset", dest="cache_dataset", help="Cache the datasets for quicker initialization. It also serializes the transforms", action="store_true", ) parser.add_argument( "--sync-bn", dest="sync_bn", help="Use sync batch norm", action="store_true", ) parser.add_argument( "--test-only", dest="test_only", help="Only test the model", action="store_true", ) parser.add_argument("--auto-augment", default=None, type=str, help="auto augment policy (default: None)") parser.add_argument("--ra-magnitude", default=9, type=int, help="magnitude of auto augment policy") parser.add_argument("--augmix-severity", default=3, type=int, help="severity of augmix policy") parser.add_argument("--random-erase", default=0.0, type=float, help="random erasing probability (default: 0.0)") # Mixed precision training parameters parser.add_argument("--amp", action="store_true", help="Use torch.cuda.amp for mixed precision training") # distributed training parameters parser.add_argument("--world-size", default=1, type=int, help="number of distributed processes") parser.add_argument("--dist-url", default="env://", type=str, help="url used to set up distributed training") parser.add_argument( "--model-ema", action="store_true", help="enable tracking Exponential Moving Average of model parameters" ) parser.add_argument( "--model-ema-steps", type=int, default=32, help="the number of iterations that controls how often to update the EMA model (default: 32)", ) parser.add_argument( "--model-ema-decay", type=float, default=0.99998, help="decay factor for Exponential Moving Average of model parameters (default: 0.99998)", ) parser.add_argument( "--use-deterministic-algorithms", action="store_true", help="Forces the use of deterministic algorithms only." ) parser.add_argument( "--interpolation", default="bilinear", type=str, help="the interpolation method (default: bilinear)" ) parser.add_argument( "--val-resize-size", default=256, type=int, help="the resize size used for validation (default: 256)" ) parser.add_argument( "--val-crop-size", default=224, type=int, help="the central crop size used for validation (default: 224)" ) parser.add_argument( "--train-crop-size", default=224, type=int, help="the random crop size used for training (default: 224)" ) parser.add_argument("--clip-grad-norm", default=None, type=float, help="the maximum gradient norm (default None)") parser.add_argument("--ra-sampler", action="store_true", help="whether to use Repeated Augmentation in training") parser.add_argument( "--ra-reps", default=3, type=int, help="number of repetitions for Repeated Augmentation (default: 3)" ) parser.add_argument("--weights", default=None, type=str, help="the weights enum name to load") parser.add_argument("--backend", default="PIL", type=str.lower, help="PIL or tensor - case insensitive") parser.add_argument("--use-v2", action="store_true", help="Use V2 transforms") return parser if __name__ == "__main__": args = get_args_parser().parse_args() main(args) vision-0.19.1/references/classification/train_quantization.py000066400000000000000000000265771466211133600245460ustar00rootroot00000000000000import copy import datetime import os import time import torch import torch.ao.quantization import torch.utils.data import torchvision import utils from torch import nn from train import evaluate, load_data, train_one_epoch def main(args): if args.output_dir: utils.mkdir(args.output_dir) utils.init_distributed_mode(args) print(args) if args.post_training_quantize and args.distributed: raise RuntimeError("Post training quantization example should not be performed on distributed mode") # Set backend engine to ensure that quantized model runs on the correct kernels if args.qbackend not in torch.backends.quantized.supported_engines: raise RuntimeError("Quantized backend not supported: " + str(args.qbackend)) torch.backends.quantized.engine = args.qbackend device = torch.device(args.device) torch.backends.cudnn.benchmark = True # Data loading code print("Loading data") train_dir = os.path.join(args.data_path, "train") val_dir = os.path.join(args.data_path, "val") dataset, dataset_test, train_sampler, test_sampler = load_data(train_dir, val_dir, args) data_loader = torch.utils.data.DataLoader( dataset, batch_size=args.batch_size, sampler=train_sampler, num_workers=args.workers, pin_memory=True ) data_loader_test = torch.utils.data.DataLoader( dataset_test, batch_size=args.eval_batch_size, sampler=test_sampler, num_workers=args.workers, pin_memory=True ) print("Creating model", args.model) # when training quantized models, we always start from a pre-trained fp32 reference model prefix = "quantized_" model_name = args.model if not model_name.startswith(prefix): model_name = prefix + model_name model = torchvision.models.get_model(model_name, weights=args.weights, quantize=args.test_only) model.to(device) if not (args.test_only or args.post_training_quantize): model.fuse_model(is_qat=True) model.qconfig = torch.ao.quantization.get_default_qat_qconfig(args.qbackend) torch.ao.quantization.prepare_qat(model, inplace=True) if args.distributed and args.sync_bn: model = torch.nn.SyncBatchNorm.convert_sync_batchnorm(model) optimizer = torch.optim.SGD( model.parameters(), lr=args.lr, momentum=args.momentum, weight_decay=args.weight_decay ) lr_scheduler = torch.optim.lr_scheduler.StepLR(optimizer, step_size=args.lr_step_size, gamma=args.lr_gamma) criterion = nn.CrossEntropyLoss() model_without_ddp = model if args.distributed: model = torch.nn.parallel.DistributedDataParallel(model, device_ids=[args.gpu]) model_without_ddp = model.module if args.resume: checkpoint = torch.load(args.resume, map_location="cpu", weights_only=True) model_without_ddp.load_state_dict(checkpoint["model"]) optimizer.load_state_dict(checkpoint["optimizer"]) lr_scheduler.load_state_dict(checkpoint["lr_scheduler"]) args.start_epoch = checkpoint["epoch"] + 1 if args.post_training_quantize: # perform calibration on a subset of the training dataset # for that, create a subset of the training dataset ds = torch.utils.data.Subset(dataset, indices=list(range(args.batch_size * args.num_calibration_batches))) data_loader_calibration = torch.utils.data.DataLoader( ds, batch_size=args.batch_size, shuffle=False, num_workers=args.workers, pin_memory=True ) model.eval() model.fuse_model(is_qat=False) model.qconfig = torch.ao.quantization.get_default_qconfig(args.qbackend) torch.ao.quantization.prepare(model, inplace=True) # Calibrate first print("Calibrating") evaluate(model, criterion, data_loader_calibration, device=device, print_freq=1) torch.ao.quantization.convert(model, inplace=True) if args.output_dir: print("Saving quantized model") if utils.is_main_process(): torch.save(model.state_dict(), os.path.join(args.output_dir, "quantized_post_train_model.pth")) print("Evaluating post-training quantized model") evaluate(model, criterion, data_loader_test, device=device) return if args.test_only: evaluate(model, criterion, data_loader_test, device=device) return model.apply(torch.ao.quantization.enable_observer) model.apply(torch.ao.quantization.enable_fake_quant) start_time = time.time() for epoch in range(args.start_epoch, args.epochs): if args.distributed: train_sampler.set_epoch(epoch) print("Starting training for epoch", epoch) train_one_epoch(model, criterion, optimizer, data_loader, device, epoch, args) lr_scheduler.step() with torch.inference_mode(): if epoch >= args.num_observer_update_epochs: print("Disabling observer for subseq epochs, epoch = ", epoch) model.apply(torch.ao.quantization.disable_observer) if epoch >= args.num_batch_norm_update_epochs: print("Freezing BN for subseq epochs, epoch = ", epoch) model.apply(torch.nn.intrinsic.qat.freeze_bn_stats) print("Evaluate QAT model") evaluate(model, criterion, data_loader_test, device=device, log_suffix="QAT") quantized_eval_model = copy.deepcopy(model_without_ddp) quantized_eval_model.eval() quantized_eval_model.to(torch.device("cpu")) torch.ao.quantization.convert(quantized_eval_model, inplace=True) print("Evaluate Quantized model") evaluate(quantized_eval_model, criterion, data_loader_test, device=torch.device("cpu")) model.train() if args.output_dir: checkpoint = { "model": model_without_ddp.state_dict(), "eval_model": quantized_eval_model.state_dict(), "optimizer": optimizer.state_dict(), "lr_scheduler": lr_scheduler.state_dict(), "epoch": epoch, "args": args, } utils.save_on_master(checkpoint, os.path.join(args.output_dir, f"model_{epoch}.pth")) utils.save_on_master(checkpoint, os.path.join(args.output_dir, "checkpoint.pth")) print("Saving models after epoch ", epoch) total_time = time.time() - start_time total_time_str = str(datetime.timedelta(seconds=int(total_time))) print(f"Training time {total_time_str}") def get_args_parser(add_help=True): import argparse parser = argparse.ArgumentParser(description="PyTorch Quantized Classification Training", add_help=add_help) parser.add_argument("--data-path", default="/datasets01/imagenet_full_size/061417/", type=str, help="dataset path") parser.add_argument("--model", default="mobilenet_v2", type=str, help="model name") parser.add_argument("--qbackend", default="qnnpack", type=str, help="Quantized backend: fbgemm or qnnpack") parser.add_argument("--device", default="cuda", type=str, help="device (Use cuda or cpu Default: cuda)") parser.add_argument( "-b", "--batch-size", default=32, type=int, help="images per gpu, the total batch size is $NGPU x batch_size" ) parser.add_argument("--eval-batch-size", default=128, type=int, help="batch size for evaluation") parser.add_argument("--epochs", default=90, type=int, metavar="N", help="number of total epochs to run") parser.add_argument( "--num-observer-update-epochs", default=4, type=int, metavar="N", help="number of total epochs to update observers", ) parser.add_argument( "--num-batch-norm-update-epochs", default=3, type=int, metavar="N", help="number of total epochs to update batch norm stats", ) parser.add_argument( "--num-calibration-batches", default=32, type=int, metavar="N", help="number of batches of training set for \ observer calibration ", ) parser.add_argument( "-j", "--workers", default=16, type=int, metavar="N", help="number of data loading workers (default: 16)" ) parser.add_argument("--lr", default=0.0001, type=float, help="initial learning rate") parser.add_argument("--momentum", default=0.9, type=float, metavar="M", help="momentum") parser.add_argument( "--wd", "--weight-decay", default=1e-4, type=float, metavar="W", help="weight decay (default: 1e-4)", dest="weight_decay", ) parser.add_argument("--lr-step-size", default=30, type=int, help="decrease lr every step-size epochs") parser.add_argument("--lr-gamma", default=0.1, type=float, help="decrease lr by a factor of lr-gamma") parser.add_argument("--print-freq", default=10, type=int, help="print frequency") parser.add_argument("--output-dir", default=".", type=str, help="path to save outputs") parser.add_argument("--resume", default="", type=str, help="path of checkpoint") parser.add_argument("--start-epoch", default=0, type=int, metavar="N", help="start epoch") parser.add_argument( "--cache-dataset", dest="cache_dataset", help="Cache the datasets for quicker initialization. \ It also serializes the transforms", action="store_true", ) parser.add_argument( "--sync-bn", dest="sync_bn", help="Use sync batch norm", action="store_true", ) parser.add_argument( "--test-only", dest="test_only", help="Only test the model", action="store_true", ) parser.add_argument( "--post-training-quantize", dest="post_training_quantize", help="Post training quantize the model", action="store_true", ) # distributed training parameters parser.add_argument("--world-size", default=1, type=int, help="number of distributed processes") parser.add_argument("--dist-url", default="env://", type=str, help="url used to set up distributed training") parser.add_argument( "--interpolation", default="bilinear", type=str, help="the interpolation method (default: bilinear)" ) parser.add_argument( "--val-resize-size", default=256, type=int, help="the resize size used for validation (default: 256)" ) parser.add_argument( "--val-crop-size", default=224, type=int, help="the central crop size used for validation (default: 224)" ) parser.add_argument( "--train-crop-size", default=224, type=int, help="the random crop size used for training (default: 224)" ) parser.add_argument("--clip-grad-norm", default=None, type=float, help="the maximum gradient norm (default None)") parser.add_argument("--weights", default=None, type=str, help="the weights enum name to load") parser.add_argument("--backend", default="PIL", type=str.lower, help="PIL or tensor - case insensitive") parser.add_argument("--use-v2", action="store_true", help="Use V2 transforms") return parser if __name__ == "__main__": args = get_args_parser().parse_args() if args.backend in ("fbgemm", "qnnpack"): raise ValueError( "The --backend parameter has been re-purposed to specify the backend of the transforms (PIL or Tensor) " "instead of the quantized backend. Please use the --qbackend parameter to specify the quantized backend." ) main(args) vision-0.19.1/references/classification/transforms.py000066400000000000000000000165751466211133600230160ustar00rootroot00000000000000import math from typing import Tuple import torch from presets import get_module from torch import Tensor from torchvision.transforms import functional as F def get_mixup_cutmix(*, mixup_alpha, cutmix_alpha, num_classes, use_v2): transforms_module = get_module(use_v2) mixup_cutmix = [] if mixup_alpha > 0: mixup_cutmix.append( transforms_module.MixUp(alpha=mixup_alpha, num_classes=num_classes) if use_v2 else RandomMixUp(num_classes=num_classes, p=1.0, alpha=mixup_alpha) ) if cutmix_alpha > 0: mixup_cutmix.append( transforms_module.CutMix(alpha=cutmix_alpha, num_classes=num_classes) if use_v2 else RandomCutMix(num_classes=num_classes, p=1.0, alpha=cutmix_alpha) ) if not mixup_cutmix: return None return transforms_module.RandomChoice(mixup_cutmix) class RandomMixUp(torch.nn.Module): """Randomly apply MixUp to the provided batch and targets. The class implements the data augmentations as described in the paper `"mixup: Beyond Empirical Risk Minimization" `_. Args: num_classes (int): number of classes used for one-hot encoding. p (float): probability of the batch being transformed. Default value is 0.5. alpha (float): hyperparameter of the Beta distribution used for mixup. Default value is 1.0. inplace (bool): boolean to make this transform inplace. Default set to False. """ def __init__(self, num_classes: int, p: float = 0.5, alpha: float = 1.0, inplace: bool = False) -> None: super().__init__() if num_classes < 1: raise ValueError( f"Please provide a valid positive value for the num_classes. Got num_classes={num_classes}" ) if alpha <= 0: raise ValueError("Alpha param can't be zero.") self.num_classes = num_classes self.p = p self.alpha = alpha self.inplace = inplace def forward(self, batch: Tensor, target: Tensor) -> Tuple[Tensor, Tensor]: """ Args: batch (Tensor): Float tensor of size (B, C, H, W) target (Tensor): Integer tensor of size (B, ) Returns: Tensor: Randomly transformed batch. """ if batch.ndim != 4: raise ValueError(f"Batch ndim should be 4. Got {batch.ndim}") if target.ndim != 1: raise ValueError(f"Target ndim should be 1. Got {target.ndim}") if not batch.is_floating_point(): raise TypeError(f"Batch dtype should be a float tensor. Got {batch.dtype}.") if target.dtype != torch.int64: raise TypeError(f"Target dtype should be torch.int64. Got {target.dtype}") if not self.inplace: batch = batch.clone() target = target.clone() if target.ndim == 1: target = torch.nn.functional.one_hot(target, num_classes=self.num_classes).to(dtype=batch.dtype) if torch.rand(1).item() >= self.p: return batch, target # It's faster to roll the batch by one instead of shuffling it to create image pairs batch_rolled = batch.roll(1, 0) target_rolled = target.roll(1, 0) # Implemented as on mixup paper, page 3. lambda_param = float(torch._sample_dirichlet(torch.tensor([self.alpha, self.alpha]))[0]) batch_rolled.mul_(1.0 - lambda_param) batch.mul_(lambda_param).add_(batch_rolled) target_rolled.mul_(1.0 - lambda_param) target.mul_(lambda_param).add_(target_rolled) return batch, target def __repr__(self) -> str: s = ( f"{self.__class__.__name__}(" f"num_classes={self.num_classes}" f", p={self.p}" f", alpha={self.alpha}" f", inplace={self.inplace}" f")" ) return s class RandomCutMix(torch.nn.Module): """Randomly apply CutMix to the provided batch and targets. The class implements the data augmentations as described in the paper `"CutMix: Regularization Strategy to Train Strong Classifiers with Localizable Features" `_. Args: num_classes (int): number of classes used for one-hot encoding. p (float): probability of the batch being transformed. Default value is 0.5. alpha (float): hyperparameter of the Beta distribution used for cutmix. Default value is 1.0. inplace (bool): boolean to make this transform inplace. Default set to False. """ def __init__(self, num_classes: int, p: float = 0.5, alpha: float = 1.0, inplace: bool = False) -> None: super().__init__() if num_classes < 1: raise ValueError("Please provide a valid positive value for the num_classes.") if alpha <= 0: raise ValueError("Alpha param can't be zero.") self.num_classes = num_classes self.p = p self.alpha = alpha self.inplace = inplace def forward(self, batch: Tensor, target: Tensor) -> Tuple[Tensor, Tensor]: """ Args: batch (Tensor): Float tensor of size (B, C, H, W) target (Tensor): Integer tensor of size (B, ) Returns: Tensor: Randomly transformed batch. """ if batch.ndim != 4: raise ValueError(f"Batch ndim should be 4. Got {batch.ndim}") if target.ndim != 1: raise ValueError(f"Target ndim should be 1. Got {target.ndim}") if not batch.is_floating_point(): raise TypeError(f"Batch dtype should be a float tensor. Got {batch.dtype}.") if target.dtype != torch.int64: raise TypeError(f"Target dtype should be torch.int64. Got {target.dtype}") if not self.inplace: batch = batch.clone() target = target.clone() if target.ndim == 1: target = torch.nn.functional.one_hot(target, num_classes=self.num_classes).to(dtype=batch.dtype) if torch.rand(1).item() >= self.p: return batch, target # It's faster to roll the batch by one instead of shuffling it to create image pairs batch_rolled = batch.roll(1, 0) target_rolled = target.roll(1, 0) # Implemented as on cutmix paper, page 12 (with minor corrections on typos). lambda_param = float(torch._sample_dirichlet(torch.tensor([self.alpha, self.alpha]))[0]) _, H, W = F.get_dimensions(batch) r_x = torch.randint(W, (1,)) r_y = torch.randint(H, (1,)) r = 0.5 * math.sqrt(1.0 - lambda_param) r_w_half = int(r * W) r_h_half = int(r * H) x1 = int(torch.clamp(r_x - r_w_half, min=0)) y1 = int(torch.clamp(r_y - r_h_half, min=0)) x2 = int(torch.clamp(r_x + r_w_half, max=W)) y2 = int(torch.clamp(r_y + r_h_half, max=H)) batch[:, :, y1:y2, x1:x2] = batch_rolled[:, :, y1:y2, x1:x2] lambda_param = float(1.0 - (x2 - x1) * (y2 - y1) / (W * H)) target_rolled.mul_(1.0 - lambda_param) target.mul_(lambda_param).add_(target_rolled) return batch, target def __repr__(self) -> str: s = ( f"{self.__class__.__name__}(" f"num_classes={self.num_classes}" f", p={self.p}" f", alpha={self.alpha}" f", inplace={self.inplace}" f")" ) return s vision-0.19.1/references/classification/utils.py000066400000000000000000000366571466211133600217630ustar00rootroot00000000000000import copy import datetime import errno import hashlib import os import time from collections import defaultdict, deque, OrderedDict from typing import List, Optional, Tuple import torch import torch.distributed as dist class SmoothedValue: """Track a series of values and provide access to smoothed values over a window or the global series average. """ def __init__(self, window_size=20, fmt=None): if fmt is None: fmt = "{median:.4f} ({global_avg:.4f})" self.deque = deque(maxlen=window_size) self.total = 0.0 self.count = 0 self.fmt = fmt def update(self, value, n=1): self.deque.append(value) self.count += n self.total += value * n def synchronize_between_processes(self): """ Warning: does not synchronize the deque! """ t = reduce_across_processes([self.count, self.total]) t = t.tolist() self.count = int(t[0]) self.total = t[1] @property def median(self): d = torch.tensor(list(self.deque)) return d.median().item() @property def avg(self): d = torch.tensor(list(self.deque), dtype=torch.float32) return d.mean().item() @property def global_avg(self): return self.total / self.count @property def max(self): return max(self.deque) @property def value(self): return self.deque[-1] def __str__(self): return self.fmt.format( median=self.median, avg=self.avg, global_avg=self.global_avg, max=self.max, value=self.value ) class MetricLogger: def __init__(self, delimiter="\t"): self.meters = defaultdict(SmoothedValue) self.delimiter = delimiter def update(self, **kwargs): for k, v in kwargs.items(): if isinstance(v, torch.Tensor): v = v.item() assert isinstance(v, (float, int)) self.meters[k].update(v) def __getattr__(self, attr): if attr in self.meters: return self.meters[attr] if attr in self.__dict__: return self.__dict__[attr] raise AttributeError(f"'{type(self).__name__}' object has no attribute '{attr}'") def __str__(self): loss_str = [] for name, meter in self.meters.items(): loss_str.append(f"{name}: {str(meter)}") return self.delimiter.join(loss_str) def synchronize_between_processes(self): for meter in self.meters.values(): meter.synchronize_between_processes() def add_meter(self, name, meter): self.meters[name] = meter def log_every(self, iterable, print_freq, header=None): i = 0 if not header: header = "" start_time = time.time() end = time.time() iter_time = SmoothedValue(fmt="{avg:.4f}") data_time = SmoothedValue(fmt="{avg:.4f}") space_fmt = ":" + str(len(str(len(iterable)))) + "d" if torch.cuda.is_available(): log_msg = self.delimiter.join( [ header, "[{0" + space_fmt + "}/{1}]", "eta: {eta}", "{meters}", "time: {time}", "data: {data}", "max mem: {memory:.0f}", ] ) else: log_msg = self.delimiter.join( [header, "[{0" + space_fmt + "}/{1}]", "eta: {eta}", "{meters}", "time: {time}", "data: {data}"] ) MB = 1024.0 * 1024.0 for obj in iterable: data_time.update(time.time() - end) yield obj iter_time.update(time.time() - end) if i % print_freq == 0: eta_seconds = iter_time.global_avg * (len(iterable) - i) eta_string = str(datetime.timedelta(seconds=int(eta_seconds))) if torch.cuda.is_available(): print( log_msg.format( i, len(iterable), eta=eta_string, meters=str(self), time=str(iter_time), data=str(data_time), memory=torch.cuda.max_memory_allocated() / MB, ) ) else: print( log_msg.format( i, len(iterable), eta=eta_string, meters=str(self), time=str(iter_time), data=str(data_time) ) ) i += 1 end = time.time() total_time = time.time() - start_time total_time_str = str(datetime.timedelta(seconds=int(total_time))) print(f"{header} Total time: {total_time_str}") class ExponentialMovingAverage(torch.optim.swa_utils.AveragedModel): """Maintains moving averages of model parameters using an exponential decay. ``ema_avg = decay * avg_model_param + (1 - decay) * model_param`` `torch.optim.swa_utils.AveragedModel `_ is used to compute the EMA. """ def __init__(self, model, decay, device="cpu"): def ema_avg(avg_model_param, model_param, num_averaged): return decay * avg_model_param + (1 - decay) * model_param super().__init__(model, device, ema_avg, use_buffers=True) def accuracy(output, target, topk=(1,)): """Computes the accuracy over the k top predictions for the specified values of k""" with torch.inference_mode(): maxk = max(topk) batch_size = target.size(0) if target.ndim == 2: target = target.max(dim=1)[1] _, pred = output.topk(maxk, 1, True, True) pred = pred.t() correct = pred.eq(target[None]) res = [] for k in topk: correct_k = correct[:k].flatten().sum(dtype=torch.float32) res.append(correct_k * (100.0 / batch_size)) return res def mkdir(path): try: os.makedirs(path) except OSError as e: if e.errno != errno.EEXIST: raise def setup_for_distributed(is_master): """ This function disables printing when not in master process """ import builtins as __builtin__ builtin_print = __builtin__.print def print(*args, **kwargs): force = kwargs.pop("force", False) if is_master or force: builtin_print(*args, **kwargs) __builtin__.print = print def is_dist_avail_and_initialized(): if not dist.is_available(): return False if not dist.is_initialized(): return False return True def get_world_size(): if not is_dist_avail_and_initialized(): return 1 return dist.get_world_size() def get_rank(): if not is_dist_avail_and_initialized(): return 0 return dist.get_rank() def is_main_process(): return get_rank() == 0 def save_on_master(*args, **kwargs): if is_main_process(): torch.save(*args, **kwargs) def init_distributed_mode(args): if "RANK" in os.environ and "WORLD_SIZE" in os.environ: args.rank = int(os.environ["RANK"]) args.world_size = int(os.environ["WORLD_SIZE"]) args.gpu = int(os.environ["LOCAL_RANK"]) elif "SLURM_PROCID" in os.environ: args.rank = int(os.environ["SLURM_PROCID"]) args.gpu = args.rank % torch.cuda.device_count() elif hasattr(args, "rank"): pass else: print("Not using distributed mode") args.distributed = False return args.distributed = True torch.cuda.set_device(args.gpu) args.dist_backend = "nccl" print(f"| distributed init (rank {args.rank}): {args.dist_url}", flush=True) torch.distributed.init_process_group( backend=args.dist_backend, init_method=args.dist_url, world_size=args.world_size, rank=args.rank ) torch.distributed.barrier() setup_for_distributed(args.rank == 0) def average_checkpoints(inputs): """Loads checkpoints from inputs and returns a model with averaged weights. Original implementation taken from: https://github.com/pytorch/fairseq/blob/a48f235636557b8d3bc4922a6fa90f3a0fa57955/scripts/average_checkpoints.py#L16 Args: inputs (List[str]): An iterable of string paths of checkpoints to load from. Returns: A dict of string keys mapping to various values. The 'model' key from the returned dict should correspond to an OrderedDict mapping string parameter names to torch Tensors. """ params_dict = OrderedDict() params_keys = None new_state = None num_models = len(inputs) for fpath in inputs: with open(fpath, "rb") as f: state = torch.load( f, map_location=(lambda s, _: torch.serialization.default_restore_location(s, "cpu")), weights_only=True ) # Copies over the settings from the first checkpoint if new_state is None: new_state = state model_params = state["model"] model_params_keys = list(model_params.keys()) if params_keys is None: params_keys = model_params_keys elif params_keys != model_params_keys: raise KeyError( f"For checkpoint {f}, expected list of params: {params_keys}, but found: {model_params_keys}" ) for k in params_keys: p = model_params[k] if isinstance(p, torch.HalfTensor): p = p.float() if k not in params_dict: params_dict[k] = p.clone() # NOTE: clone() is needed in case of p is a shared parameter else: params_dict[k] += p averaged_params = OrderedDict() for k, v in params_dict.items(): averaged_params[k] = v if averaged_params[k].is_floating_point(): averaged_params[k].div_(num_models) else: averaged_params[k] //= num_models new_state["model"] = averaged_params return new_state def store_model_weights(model, checkpoint_path, checkpoint_key="model", strict=True): """ This method can be used to prepare weights files for new models. It receives as input a model architecture and a checkpoint from the training script and produces a file with the weights ready for release. Examples: from torchvision import models as M # Classification model = M.mobilenet_v3_large(weights=None) print(store_model_weights(model, './class.pth')) # Quantized Classification model = M.quantization.mobilenet_v3_large(weights=None, quantize=False) model.fuse_model(is_qat=True) model.qconfig = torch.ao.quantization.get_default_qat_qconfig('qnnpack') _ = torch.ao.quantization.prepare_qat(model, inplace=True) print(store_model_weights(model, './qat.pth')) # Object Detection model = M.detection.fasterrcnn_mobilenet_v3_large_fpn(weights=None, weights_backbone=None) print(store_model_weights(model, './obj.pth')) # Segmentation model = M.segmentation.deeplabv3_mobilenet_v3_large(weights=None, weights_backbone=None, aux_loss=True) print(store_model_weights(model, './segm.pth', strict=False)) Args: model (pytorch.nn.Module): The model on which the weights will be loaded for validation purposes. checkpoint_path (str): The path of the checkpoint we will load. checkpoint_key (str, optional): The key of the checkpoint where the model weights are stored. Default: "model". strict (bool): whether to strictly enforce that the keys in :attr:`state_dict` match the keys returned by this module's :meth:`~torch.nn.Module.state_dict` function. Default: ``True`` Returns: output_path (str): The location where the weights are saved. """ # Store the new model next to the checkpoint_path checkpoint_path = os.path.abspath(checkpoint_path) output_dir = os.path.dirname(checkpoint_path) # Deep copy to avoid side effects on the model object. model = copy.deepcopy(model) checkpoint = torch.load(checkpoint_path, map_location="cpu", weights_only=True) # Load the weights to the model to validate that everything works # and remove unnecessary weights (such as auxiliaries, etc.) if checkpoint_key == "model_ema": del checkpoint[checkpoint_key]["n_averaged"] torch.nn.modules.utils.consume_prefix_in_state_dict_if_present(checkpoint[checkpoint_key], "module.") model.load_state_dict(checkpoint[checkpoint_key], strict=strict) tmp_path = os.path.join(output_dir, str(model.__hash__())) torch.save(model.state_dict(), tmp_path) sha256_hash = hashlib.sha256() with open(tmp_path, "rb") as f: # Read and update hash string value in blocks of 4K for byte_block in iter(lambda: f.read(4096), b""): sha256_hash.update(byte_block) hh = sha256_hash.hexdigest() output_path = os.path.join(output_dir, "weights-" + str(hh[:8]) + ".pth") os.replace(tmp_path, output_path) return output_path def reduce_across_processes(val): if not is_dist_avail_and_initialized(): # nothing to sync, but we still convert to tensor for consistency with the distributed case. return torch.tensor(val) t = torch.tensor(val, device="cuda") dist.barrier() dist.all_reduce(t) return t def set_weight_decay( model: torch.nn.Module, weight_decay: float, norm_weight_decay: Optional[float] = None, norm_classes: Optional[List[type]] = None, custom_keys_weight_decay: Optional[List[Tuple[str, float]]] = None, ): if not norm_classes: norm_classes = [ torch.nn.modules.batchnorm._BatchNorm, torch.nn.LayerNorm, torch.nn.GroupNorm, torch.nn.modules.instancenorm._InstanceNorm, torch.nn.LocalResponseNorm, ] norm_classes = tuple(norm_classes) params = { "other": [], "norm": [], } params_weight_decay = { "other": weight_decay, "norm": norm_weight_decay, } custom_keys = [] if custom_keys_weight_decay is not None: for key, weight_decay in custom_keys_weight_decay: params[key] = [] params_weight_decay[key] = weight_decay custom_keys.append(key) def _add_params(module, prefix=""): for name, p in module.named_parameters(recurse=False): if not p.requires_grad: continue is_custom_key = False for key in custom_keys: target_name = f"{prefix}.{name}" if prefix != "" and "." in key else name if key == target_name: params[key].append(p) is_custom_key = True break if not is_custom_key: if norm_weight_decay is not None and isinstance(module, norm_classes): params["norm"].append(p) else: params["other"].append(p) for child_name, child_module in module.named_children(): child_prefix = f"{prefix}.{child_name}" if prefix != "" else child_name _add_params(child_module, prefix=child_prefix) _add_params(model) param_groups = [] for key in params: if len(params[key]) > 0: param_groups.append({"params": params[key], "weight_decay": params_weight_decay[key]}) return param_groups vision-0.19.1/references/depth/000077500000000000000000000000001466211133600163415ustar00rootroot00000000000000vision-0.19.1/references/depth/stereo/000077500000000000000000000000001466211133600176425ustar00rootroot00000000000000vision-0.19.1/references/depth/stereo/README.md000066400000000000000000000234001466211133600211200ustar00rootroot00000000000000# Stereo Matching reference training scripts This folder contains reference training scripts for Stereo Matching. They serve as a log of how to train specific models, so as to provide baseline training and evaluation scripts to quickly bootstrap research. ### CREStereo The CREStereo model was trained on a dataset mixture between **CREStereo**, **ETH3D** and the additional split from **Middlebury2014**. A ratio of **88-6-6** was used in order to train a baseline weight set. We provide multi-set variant as well. Both used 8 A100 GPUs and a batch size of 2 (so effective batch size is 16). The rest of the hyper-parameters loosely follow the recipe from https://github.com/megvii-research/CREStereo. The original recipe trains for **300000** updates (or steps) on the dataset mixture. We modify the learning rate schedule to one that starts decaying the weight much sooner. Throughout the experiments we found that this reduces overfitting during evaluation time and gradient clip help stabilize the loss during a pre-mature learning rate change. ``` torchrun --nproc_per_node 8 --nnodes 1 train.py \ --dataset-root $dataset_root \ --name $name_cre \ --model crestereo_base \ --train-datasets crestereo eth3d-train middlebury2014-other \ --dataset-steps 264000 18000 18000 --batch-size 2 \ --lr 0.0004 \ --min-lr 0.00002 \ --lr-decay-method cosine \ --warmup-steps 6000 \ --decay-after-steps 30000 \ --clip-grad-norm 1.0 \ ``` We employ a multi-set fine-tuning stage where we uniformly sample from multiple datasets. Given hat some of these datasets have extremely large images (``2048x2048`` or more) we opt for a very aggressive scale-range ``[0.2 - 0.8]`` such that as much of the original frame composition is captured inside the ``384x512`` crop. ``` torchrun --nproc_per_node 8 --nnodes 1 train.py \ --dataset-root $dataset_root \ --name $name_things \ --model crestereo_base \ --train-datasets crestereo eth3d-train middlebury2014-other instereo2k fallingthings carla-highres sintel sceneflow-monkaa sceneflow-driving \ --dataset-steps 12000 12000 12000 12000 12000 12000 12000 12000 12000 --batch-size 2 \ --scale-range 0.2 0.8 \ --lr 0.0004 \ --lr-decay-method cosine \ --decay-after-steps 0 \ --warmup-steps 0 \ --min-lr 0.00002 \ --resume-path $checkpoint_dir/$name_cre.pth ``` ### Evaluation Evaluating the base weights ``` torchrun --nproc_per_node 1 --nnodes 1 cascade_evaluation.py --dataset middlebury2014-train --batch-size 1 --dataset-root $dataset_root --model crestereo_base --weights CREStereo_Base_Weights.CRESTEREO_ETH_MBL_V1 ``` This should give an **mae of about 1.416** on the train set of `Middlebury2014`. Results may vary slightly depending on the batch size and the number of GPUs. For the most accurate results use 1 GPU and `--batch-size 1`. The created log file should look like this, where the first key is the number of cascades and the nested key is the number of recursive iterations: ``` Dataset: middlebury2014-train @size: [384, 512]: { 1: { 2: {'mae': 2.363, 'rmse': 4.352, '1px': 0.611, '3px': 0.828, '5px': 0.891, 'relepe': 0.176, 'fl-all': 64.511} 5: {'mae': 1.618, 'rmse': 3.71, '1px': 0.761, '3px': 0.879, '5px': 0.918, 'relepe': 0.154, 'fl-all': 77.128} 10: {'mae': 1.416, 'rmse': 3.53, '1px': 0.777, '3px': 0.896, '5px': 0.933, 'relepe': 0.148, 'fl-all': 78.388} 20: {'mae': 1.448, 'rmse': 3.583, '1px': 0.771, '3px': 0.893, '5px': 0.931, 'relepe': 0.145, 'fl-all': 77.7} }, } { 2: { 2: {'mae': 1.972, 'rmse': 4.125, '1px': 0.73, '3px': 0.865, '5px': 0.908, 'relepe': 0.169, 'fl-all': 74.396} 5: {'mae': 1.403, 'rmse': 3.448, '1px': 0.793, '3px': 0.905, '5px': 0.937, 'relepe': 0.151, 'fl-all': 80.186} 10: {'mae': 1.312, 'rmse': 3.368, '1px': 0.799, '3px': 0.912, '5px': 0.943, 'relepe': 0.148, 'fl-all': 80.379} 20: {'mae': 1.376, 'rmse': 3.542, '1px': 0.796, '3px': 0.91, '5px': 0.942, 'relepe': 0.149, 'fl-all': 80.054} }, } ``` You can also evaluate the Finetuned weights: ``` torchrun --nproc_per_node 1 --nnodes 1 cascade_evaluation.py --dataset middlebury2014-train --batch-size 1 --dataset-root $dataset_root --model crestereo_base --weights CREStereo_Base_Weights.CRESTEREO_FINETUNE_MULTI_V1 ``` ``` Dataset: middlebury2014-train @size: [384, 512]: { 1: { 2: {'mae': 1.85, 'rmse': 3.797, '1px': 0.673, '3px': 0.862, '5px': 0.917, 'relepe': 0.171, 'fl-all': 69.736} 5: {'mae': 1.111, 'rmse': 3.166, '1px': 0.838, '3px': 0.93, '5px': 0.957, 'relepe': 0.134, 'fl-all': 84.596} 10: {'mae': 1.02, 'rmse': 3.073, '1px': 0.854, '3px': 0.938, '5px': 0.96, 'relepe': 0.129, 'fl-all': 86.042} 20: {'mae': 0.993, 'rmse': 3.059, '1px': 0.855, '3px': 0.942, '5px': 0.967, 'relepe': 0.126, 'fl-all': 85.784} }, } { 2: { 2: {'mae': 1.667, 'rmse': 3.867, '1px': 0.78, '3px': 0.891, '5px': 0.922, 'relepe': 0.165, 'fl-all': 78.89} 5: {'mae': 1.158, 'rmse': 3.278, '1px': 0.843, '3px': 0.926, '5px': 0.955, 'relepe': 0.135, 'fl-all': 84.556} 10: {'mae': 1.046, 'rmse': 3.13, '1px': 0.85, '3px': 0.934, '5px': 0.96, 'relepe': 0.13, 'fl-all': 85.464} 20: {'mae': 1.021, 'rmse': 3.102, '1px': 0.85, '3px': 0.935, '5px': 0.963, 'relepe': 0.129, 'fl-all': 85.417} }, } ``` Evaluating the author provided weights: ``` torchrun --nproc_per_node 1 --nnodes 1 cascade_evaluation.py --dataset middlebury2014-train --batch-size 1 --dataset-root $dataset_root --model crestereo_base --weights CREStereo_Base_Weights.MEGVII_V1 ``` ``` Dataset: middlebury2014-train @size: [384, 512]: { 1: { 2: {'mae': 1.704, 'rmse': 3.738, '1px': 0.738, '3px': 0.896, '5px': 0.933, 'relepe': 0.157, 'fl-all': 76.464} 5: {'mae': 0.956, 'rmse': 2.963, '1px': 0.88, '3px': 0.948, '5px': 0.965, 'relepe': 0.124, 'fl-all': 88.186} 10: {'mae': 0.792, 'rmse': 2.765, '1px': 0.905, '3px': 0.958, '5px': 0.97, 'relepe': 0.114, 'fl-all': 90.429} 20: {'mae': 0.749, 'rmse': 2.706, '1px': 0.907, '3px': 0.961, '5px': 0.972, 'relepe': 0.113, 'fl-all': 90.807} }, } { 2: { 2: {'mae': 1.702, 'rmse': 3.784, '1px': 0.784, '3px': 0.894, '5px': 0.924, 'relepe': 0.172, 'fl-all': 80.313} 5: {'mae': 0.932, 'rmse': 2.907, '1px': 0.877, '3px': 0.944, '5px': 0.963, 'relepe': 0.125, 'fl-all': 87.979} 10: {'mae': 0.773, 'rmse': 2.768, '1px': 0.901, '3px': 0.958, '5px': 0.972, 'relepe': 0.117, 'fl-all': 90.43} 20: {'mae': 0.854, 'rmse': 2.971, '1px': 0.9, '3px': 0.957, '5px': 0.97, 'relepe': 0.122, 'fl-all': 90.269} }, } ``` # Concerns when training We encourage users to be aware of the **aspect-ratio** and **disparity scale** they are targeting when doing any sort of training or fine-tuning. The model is highly sensitive to these two factors, as a consequence of naive multi-set fine-tuning one can achieve `0.2 mae` relatively fast. We recommend that users pay close attention to how they **balance dataset sizing** when training such networks. Ideally, dataset scaling should be trated at an individual level and a thorough **EDA** of the disparity distribution in random crops at the desired training / inference size should be performed prior to any large compute investments. ### Disparity scaling ##### Sample A The top row contains a sample from `Sintel` whereas the bottom row one from `Middlebury`. ![Disparity1](assets/disparity-domain-drift.jpg) From left to right (`left_image`, `right_image`, `valid_mask`, `valid_mask & ground_truth`, `prediction`). **Darker is further away, lighter is closer**. In the case of `Sintel` which is more closely aligned to the original distribution of `CREStereo` we notice that the model accurately predicts the background scale whereas in the case of `Middlebury2014` it cannot correctly estimate the continuous disparity. Notice that the frame composition is similar for both examples. The blue skybox in the `Sintel` scene behaves similarly to the `Middlebury` black background. However, because the `Middlebury` samples comes from an extremely large scene the crop size of `384x512` does not correctly capture the general training distribution. ##### Sample B The top row contains a scene from `Sceneflow` using the `Monkaa` split whilst the bottom row is a scene from `Middlebury`. This sample exhibits the same issues when it comes to **background estimation**. Given the exaggerated size of the `Middlebury` samples the model **colapses the smooth background** of the sample to what it considers to be a mean background disparity value. ![Disparity2](assets/disparity-background-mode-collapse.jpg) For more detail on why this behaviour occurs based on the training distribution proportions you can read more about the network at: https://github.com/pytorch/vision/pull/6629#discussion_r978160493 ### Metric overfitting ##### Learning is critical in the beginning We also advise users to make user of faster training schedules, as the performance gain over long periods time is marginal. Here we exhibit a difference between a faster decay schedule and later decay schedule. ![Loss1](assets/Loss.jpg) In **grey** we set the lr decay to begin after `30000` steps whilst in **orange** we opt for a very late learning rate decay at around `180000` steps. Although exhibiting stronger variance, we can notice that unfreezing the learning rate earlier whilst employing `gradient-norm` out-performs the default configuration. ##### Gradient norm saves time ![Loss2](assets/gradient-norm-removal.jpg) In **grey** we keep ``gradient norm`` enabled whilst in **orange** we do not. We can notice that remvoing the gradient norm exacerbates the performance decrease in the early stages whilst also showcasing an almost complete collapse around the `60000` steps mark where we started decaying the lr for **orange**. Although both runs ahieve an improvement of about ``0.1`` mae after the lr decay start, the benefits of it are observable much faster when ``gradient norm`` is employed as the recovery period is no longer accounted for. vision-0.19.1/references/depth/stereo/__init__.py000066400000000000000000000000001466211133600217410ustar00rootroot00000000000000vision-0.19.1/references/depth/stereo/assets/000077500000000000000000000000001466211133600211445ustar00rootroot00000000000000vision-0.19.1/references/depth/stereo/assets/Loss.jpg000066400000000000000000010251601466211133600225730ustar00rootroot00000000000000PNG  IHDR >B~8 >iCCPICC ProfileHWXS[@ Л RH ^! J b/ ],`CWE; v"bAAY vM 躯||̹s@?ɓHrQMҸ@T&)  8vLL$6p}]uk@8]σ x%_"-(-&H6# B@3Rӕx'!q3j<4Z䙅LAY,3!˛(8 b[#XJA'o郚<^ VEajA|I.oYmyְidIsu31B5 GEC @1Jɒ%*Q#~> A,E@lq87*RŧgB C@$eH9l'Uĕz Id_g *}V 1bBQR4s#T>#8Q>RY<K@>V! S۔%F0e}f>O? &t#"+u ʼn*8X"ɍQP9o[~aj,TRϐ$(ċy1| p@`l`"֞x < @UdEA1"!BdGG-TO! ^ăђȈ w H#ȤxA0b7p<`sY<  Ds?e9 t@U-n 5@Ce\7adwrTy˫Io3nd<@y$͞>"Q>Xo`9?T_?{b 9v;&vkZcr<(V@8E>9PGxwV^|n/ʾa 8%S̬&~L4|}U|7?=;~}?eO:eB%' ` < D:` J@X Vu`#v`?G)p\m: WO'xz;ABEbX! B`$CR4$#2d2)C#H59B. m!ҍF>ƨ5:el4M@ǡ$.FנU.=^B :a `X*IX)VUaX#Wq q>> /;:?{o*@&p ɄB9a |: Dц b6q*qq=q$G" H$_R4G* ֒vN:IL\BRjsvWL3YlE&G)%Fer'3EbC$P))k(3{7^"YkWQC[^1VCXcIoT55J-.VSOSP?4'&ͤUhWh/dMO//{4ɚ֚M Ú75Z#iԺեMҶhޢ}Z1cX08 >c.c+ Sc)٭Ӫӫ릛[[{LCӳ-ۯwC!!! 2P}~ 9  713g(hCFFqFSK613 06Yirܤ۔ag*2]iz9Sf20fFfaf2ffm1oA`YdXh4e9Ͳيee{kd]66\b{T[IUv,vm}}eAޡ}a0a75َ5"8;n97-\<#~Bw K&&Ic'%/O=|їR SD) Ԥm}cǬ9}ll0p|cxҒv}Ex}^>B X) ef,\ٝU#։^eeo~=?79wOZ^Za8G?iٴNgO<>iy3;g12;gs,vnyf{K/5%i>7..t]vRA2/.:5/XܺcɆĥ7/۱\ky+F[\Y .o\MY-[ݱ&rMZ˵K~YzE`ŞJʅ _vƲ66ʺ| qKᖧ[[6me۾noڳz%5h{]mv7:nޣl/+|_ھ#7`=huPiR7>!pFCGl?jv%)?Q|dϩS&4==3gΟ 9{܉^p"b%Ku--~wPGke m^m#ۏ_rjճ׸.]~#ƭcov꺝{՝;κGWz_~Uãà-}I/R?3}Vu;/$/>gKۗ wto+׋mS_L߃wy>/`aGs?=< ˚v_E|ן/Iy_ 64#3OarϪ@?aQaws[ C m`Wʍb祃c=y|rU7_{-|\2eXIfMM*>F(iNx >BASCIIScreenshot4h pHYs%%IR$iTXtXML:com.adobe.xmp 1346 2878 Screenshot k-niDOT(f֖@IDATxyNUURTRBRҝ1CРH3MB4T2KRP"DiP4JdDQTB^wߺpιgxǃks{=N:餝          b=>á!           LG@@@@@@@@@@@\/@9_"@@@@@@@@@@>@@@@@@@@@@@ |D@@@@@@@@@@@@@@@@@@@@s%@@@@@@@@@@@3}@@@@@@@@@@r\8@@@@@@@@@@@ L@@@@@@@@@@@\/@9_"@@@@@@@@@@>@@@@@@@@@@@ |D@@@@@@@@@@@@@@@@@@@@s%@@@@@@@@@@@3}@@@@@@@@@@r\8@@@@@@@@@@@ L@@@@@@@@@@@\/@9_"@@@@@@@@@@>@@@@@@@@@@@ |D@@@@@@@@@@@@@@@@@@@@s%@@@@@@@@@@@3}@@@@@@@@@@r\8@@@@@@@@@@@ L@@@@@@@@@@@\/@9_"@@@@@@@@@@>@@@@@@@@@@@ |D@@@@@@@@@@@@@@@@@@@@s%@@@@@@@@@@@3}@@@@@@@@@@r\8@@@@@@@@@@@ L3￿iӦMp+V03fƳ;pǚyw͗_~:4mԍ>,X J*zyw̢Eq@';zF@@@@@@@@ |οvn6ol ;03mڴ`f2ݺu Ƴ;pf~a3nܸ` ?1wffȐ!xNwyW^nzm^z` (Qq_~1￳Qo xQr͚5fƍ@bŌ]6?f8+V4V2;v!       3<|.TSQFnݺ2y'c۷o7Æ 3CM|%u`CE1W]u9SM卂ɮ)nyn:7+Ͻ۴mTZըbwҥu'tR[g5[n egJ*ٸqcӡCxl.r݃> 4ϵ;#R_P?jӾ}{Spa3o_ښ5k̘1chg-lg73g[O@@@@@@@@++υ 2uԱUJ6*\p"&W̸M˖-ͯj b~:0$uilL!#F+Wڊz6rM~ٳyWI1쳏yW͡L_dyꩧ̗_~ibŊ*UۛO<1XNg]gG '`iҤ9-f;8qQpˉs=gUf͚€^С)^4iy'ac,g5檫 ƣ|-2xE        @ 7`TH"F!B5ϑLjHD5V?~)]t1UY~77h`E o޼9(@رc`_|an-j+CתU+X~ё)b_,mf~w[MNw3\p|' #9|̰#&dKsb>^>H|FE@@@@@@@+"n߾ݼ;^YlYkJ9t'|~ NjVoر裏Sfbj0U>#;wf͚~_$fXUUqz7nh5jjg}f3f0;w &3uM>; >|8v@@@@@@@@,ϪҳkSL!0 ']|ٿ ~aӸq`C^~}0oK/5=zf?FíbŊf„ ?8Zt0#4ЧOӠA`*LkpsL6w+2+^DY`YtiݺuoyXsx:        @U͛7o6;;ҥKc=XsqǙ#8,_|fʕUV^FF)tjԉڞ{i9昘ET-~ʈ–/_>XTM6|=/[͆ ̲e|ܴ\:ul%J괫V.k֬ o |~Øsu?xj_YdI೎M^~ Kۗڹk1 ǎ7.w ĩb:իWǽ6nL|c=QGe*WlO?d՝aZo``i}Y7|~F|Q5p˩s.]L۶mmf.bOj|.Wٵ?yI=u3OwW^1={ ƣT{,Zlr,X H*P>UVU]S;452 ESpux}̛7/G믿>7PvmsT2s̱a,m_m]5k֭y5ט*&VkȑFssZW_mT7ffĈA8jx?ze߶BZxncBn@B-\=QիgàO?t 6lhvafΜKO0hxnG˺{VW6:WSo-Saʱchr{DǨH޽~1CM|=Ћ񚮩*_'k/}!A),u) gkA{kֳCapST}cN4meѬY=cps8~J=VJc*1;UxMAw=㒽̓j]vSNt"Yӽkc>YX13wx0]YH%1uWJz#cK&?5rKK/wCV^80        (PgUKm7Q]dj/QWMA+|nOCzkJ H8F3K*OkmL5vJɶ|@@@@@@@@'PbV5gVָ~|ժU6j@^kyZƪkW&jM6 6:>K!O?Ԇ ;LΝЩB * t衇0m%bQn)f 6U|VWAp͒%KL|7(jF{'QP͒%KG|_{cŊff֭ 꺆[8JѪv kx! i&nyWOj.;|Ӿ}Ui )ZIS /vTѣGUHvMzuϥ|w}AϦ . bIw bT([-'Ϫ_l?F>gC{$Q?￿QxD/BUbu\'tR@]ECY >/]VwϏ,z&;bŊxSA@@@@@@@5.,yUݻQHk 2駟&.]1QhhРA6PEeO93d駟lLapmgfرFYgm+qEZ6F1q]SxX0\STXpLYAI&VѯtuԱp7rǤ@jϞ=ݨTZsT(\!ɨj̏<򈵌ȿ# ~)@k +7]OIU.uMU Fp͐6nӿVb>weX!}OADUSǭಪ_7j(uq~@YSN1{qB&_WU^:+jiz3|VU^xӧOr"l{9SZ`šznk3w(=•zT_~Sl=3Ta5FvxAHyGLVh۴Mҫ{Qդu-T5;tF'lFLӰ55j԰W/A(ꚾO]+6\SWqQ-|NW|>kPkzG}LEUr?8_P_njc}Q fh[@}VA_~M}Xl.ȾH,        @(pgT8*+ κ~>]UǏu6olUNM^z)rq _*Qgi;uJ_Oʏ9ҍfرcLJ{,r >+t{9Pf<3M~q+ >*WU]5XUo >jĉJ u v+0[L;M}IF[Ts6/B.T͛7 i5/`|L0!1cFP[v uRn|e蠠vM}Fac5UlKWYET]t]U_+g\={vU/^tыգ4BW\q}mT@yܸqAt˖-F4]w W-[ow𳪄2k/L}^Ƴ> y&jZR`Vܹsg0-<˪ڼy2t|ֱ+@*ثt?UMUNEUu?axA!} /reyh~`J9J ֦Mh"7Oꁪ.[,ve۷0S_}'6lذn>Uم^/aUWpMq[>T3's2Eˆk]v5ɚQ_qM[7j?gUgob /^Vuww^P!       -qW%[o̍W-バ*)+Xʛ) WNvӳs Ϟ=;!(HQEpK⳪r6oA@V9}n >W\Vxu۞9s޽M9|pJjQ!pw楗^JM7S?WSOP!sWS}AzA/$W8OT4?ѣM2ed#]dq~>S4ꥍT @oVv˖-1(W60oa@@@@@@@@+@9J5e]YX`K}^V`ZN̜9sMGc `jղA#wML%Ɵ}m&`: yl^}ոg(rرN u֭workYOеۻQp_QVpóҊ)bT=jժ 2Z^>s9N{ƒ @g)hur3桇j_Pl j 20ڧ~j*7g?T\]{benzԧB=zf)p`\PkT^gkn]xM_'(UfT]3}wh"F^ >OT9zV b@Y*෬ d% U3!       - *8J֭[Mڵ,mlV!O>9f9UIUjӦM1ӳ3~(T&O"G0L} ^jeUoԨQd'N4˗1ǐl]73\p5 *ثhWn ȯgU+.4>x->\Uw~:uj0)W:'prD6_:/cjC5p0       ( .PgqFDݺuͯG (ࢫ8eIo6ೂV肄K,@1<-sR /`Tx:ϷviӦM~2;Q/"X-;K.~9,Sٺ~#GOp 毿 %3f9"4oK?6l`>lvJ >?æqv?:VZkog]+wmnw}Qosʕmc!|>묳l?NГO>i} K(X6-Z̞=>v^(Jtwٔ,Y2bB9dNu=_ڶk )|JKgG1noq+W-N9\Vү0lf̘X0|Ӿ}{ SZ̶[n\}j|7o%Ph=/\S?Ӎ&Te?V^N73pU^HԺtbwCFAqvؑ[6 >.]<1Z~mW_7 㚦^{يCA1/d٥J k,_ؾ}f*Ub^9|?GYT?:@h@uϹwg'        P>'毽)S]7uI1 N0ԩ3gNYW:W^yyPkԨQJ 9u>};ht/rӵk` Ӿxv|޽iݺu{Pf೎O`vT 6^x{ߥ^jTQ<3M(ښ5k̕W^i~g7)p]P׭[t]=;͛,_md%}Z}RRMJ)8iҤЮ>ѣGVLp_4ܫ@oo+ya̙Fl~AϞ7|3j+UdƎ̓l~v6 ~qP|y{wm3@nz6D5@k&gJ"*/[v팾]QFUըQ#1tLuKrby=W~>[ońյIY@@@@@@@ȷ\=|AebU}, nժU+X?B l2i`$y9Йgj LUaTϺn({% LgY\?Lʹ>**(Zƍݨs9<1k_+gHPLwի3+gm}g*tMQi~]b~s{>h_&o\wunݺJ|>(S > *dWRj W >r        @ 皖-[L2%]ܹs0hժ뮻ɪG\jѭ೜嚆/_F~|ʪ.[ߊj{ggigKgt_0mڴ@vǏ*ڪ:ifѧOӠA`k׮ ƣT͵ kƍY whѢZ>ҥ L{vj֬in͛7 Yi +DZ[.{?PVŋ_ЃϪ,)gGJY'ځ^PNw=7t`zQ#,o߾,_?^|HM*^}fOsN_w6l0M4I{X*$ݾ}{ w/s~ٲe梋.r@@@@@@@@ |sl۶m07} r'LTTP /46mիw̙3'@^>nt=8^z;7j76}͜937೪Λ7φt?U>g:ѣG'ljՌ**hvb6 s+:UyV [MUdzj;?s1b Pp O?Mj +ɚ~Tl?de*]; L0AaaEUnjbN|W^pz)RVGv$y)gNtѼ;x: !zIDM/+~9d/isbŊiиv$u1jڰab|KT9's2~{zS%ziDv=Uƍ1|`@@@@@@@(P.CUMo?o}ܹ 7 dfĉvB F?Ӯ~WSU!DU,Ig+xsV__on7|tՍ5j0 W_/܍F~F]GyČ;6V۵T>+U+*(>OnWPBu "~njB={ O[VjԮ];& ͮ?*WdɒvqUUew}7.3`T3D>:/ԧ]5R=#U/-+-߭[k,XN˧^/(lE\*s~ ѪRYN/Tfѳ:YSu֙/"٢6P^l<@լYnCHֽ-Q^V}7|vշTfϞm+ЇkG]V^>)X?TTT~ohj~iٲes3UY-%T|K2       =|Vo[X6jذap5l@8$\ :M:}nv>rY'L _vm~P'x"kDeСf͚T_~qCW7x :+;ೂ'OBvBps=Lr8ԩLT?; mf͌B&+Ĩ}*XN83Ϙ8 g^Np` thXˑ#GtT@=-uTܨGA>WZW^}0+-JӦMdH*p%z]/aTw 8)Mo_KgO>i<t_襞g[HPpZ/$j+V^f˖-;8-/Ĭw_sTT1cƘG}T1-Հ)T]_E[Uԏjt ZW\9fvT9`ƌCukh}UynѢEW_}~ vi;U5\SAm೓@@@@@@@(x.KPBj*{U|FjժiQ &@Ҳ Ma_~ٔ)S&ܩS'V &dr UuCUK.1W\qELP' >>kyU1bYdIP㏷*U8 ƍUZܹsm(pdsI'`_T^z,u֩;cÚ dO_pM6n1P>3͍h=UEWr>S{o\lYn׮]P-gGAy)(ݡD~)R 2TZ5ФBYi7nyA3Ekۺ E#UAn1X۟9|馛*I˗/β{$s:GzV^fP8S׏?h׻q3}/VTXwY^xd-[fdeŭsOjuMԤIM5*ҪB*:p"Rfk Y/b-U[4 >t=מ{9Kz*/dE!oݯghz@*|;Ҽyswr-(!       C50ױS]QFJn}*h7h 긮[VԩctnYWA_Mg^>dFSQUP )]D`X R^-QY󣂱m6*ƪr*|ֶUEe˖n7͛m[Q!C=4U[psѢEFU] J kp[NUբeo\]|VT`?V%_֭[3lz6`tRS\ڪ?_)S25߂QZ zF=JY+bq.]oUk*O?=tډU W}#?p k3g4ݻwwq?+횂z>f;yU/W# ڧz)aڵIAY믿ކiQ.P%:+lu݊-3O# Cngހ5/kt/^CYBaDV udgm/@n}:2 /,6Xn][TaT*eT89T5J*txxMϞ=3WxRUR]_8rNT5h-O>:XLU9bY~T>O f͚T!3ffo֬YL6ц*VUnz{u_o,gϺـ*ia\V-[M|>}oTy>+.ڦz kQ4]'xs<#       _UyW~nѢ9b.W_ÇUj ?>&ԹsgoG-LSI&ez`@~ > UeGBjjݯJP2೶PW_m")RDl۱cYb M>VTϵtMUUUVUz9ت;p#g8|6[|$se^ hp~TENU~wmY;UT祶 vSSTNձݵ/_|Lysg޼yffʕ h9{%dIWmXϢnݺ?Mz&^>ǟy=3fСn4̫g^3^zB *@E^{$  ހj#G4&T8y*Me˖]==\j[Vܯj5k|3/0?Yj ߣေ,Ή>ݪʬqeE/Y9 }HI߿O7XF9@@@@@@@@+'OQ Q:Tvҥ6`}nUpÆ fɒ%f˖-YXhMTY7KVxw4t, |uLnSPwٸqYhQdGUx}n:$L%`}deY>lBrKV6KQW^hUŋ_K#LUIm[b=Iuq8wsK@M㈷/uossu5]A6olA S}R n·^5տxΫFh= 0c        Kl(8 Κ5+zw۪G3E@@@@@@@@@` |.XכE mtŞ%ׯ_r"         d ф) {o+ҥK#:uQg         _rfK4lОΝ;E]d/_/ϗB@@@@@@@@@ |' @s=ͅ^h *dʔ)c4ib=gΜiw3         SsFpfwߙ+/         Gs R ^yժUcǎf9)@@@@@@@@@Fʕ+g=zhq` 2 0+V4;w4+V07nٱcG>x@@@@@@@@@&ibC           >6zv           |NU@@@@@@@@@@@` |m@@@@@@@@@@R !          n 1          *@9U)C@@@@@@@@@@&@yѳ(Pvm3`{۶m3j6èQLժUv|IlSN1C viW3?#?Rlȑ#ӽ dI`W?t        q>ǥɽ3 .lF^z[ރGV\9ӹsgs!#FYfe>g/߬|Ǜu˛ŋάZ,ZL<ر#w};8SR%~,Y3gٰaCۋZlٲ3ׯ7&LZ$KӮjsau7mdy,m'/ThQӵkW2ic.hgX,        @ S@-(ԨaӦMmPRǥ͛s!\`맟~276OϓsŊŊ3riٲs=㞓}5s΍qU>ݤ 7n4ݻw7 ,0/;'|c=̋/h{D<~W[*(s1<@p+VH@A >߇"        g.B+۽*hti֬ s1sN֭6׬YcΝ;Y+|fرdɒ߶ҳ^^PoyԩQxO4O+>qtUAK.a+\믿e^z6sE!u˗Ǒϙ|ٍ9)@@@@@@@@@ *|^kW*駟n.SNSPҤeBm۶qƙ?<[%-<gu=? 8Ќ3l߾=8/U;/bZje~``Ag-… ˗7>h֭[M&Moop/7͛77"+|/}+:u۬}y$7k/Ӻuk[M{̙_oX#        >>{>|^z2/[]#$'q}k͂ qjժfȑf= f /bkԨa4OMU_bSgm\rvrO=T3xڮq|JǪ2VЂ1،|%@@@@@@@@](@ybgfW.~z3m4k˗ /ls@'>˔ӧiРݮ+>zm+3kw}r-LÆ )SUP.RӣG;~U]1|}̞=ۨ:O>ihSdI>JIx;Sз~k>೎J*-YGeT%XMg}6w_{ *~=X\l*Wl+y*5ȭV)\/̖-[Z*}߶m)sֺukӽ{w7ngo>+bFJ(a+7/2#駟n~g5ܹsgsW+tRsw}{W^y%8}(~4RJtʭl_2e~TڿGEcp/BUIU>fvX}ܿUu%MO-RY'<uMt:;ZH{|z믿ߝQˆ)^z8c3;kn        $mI&U#|Gرc#kڴ ЦM̐!CleTBW ss=f͚f 6?6Xa^zPeN_nڪjlY >+Щصjղ`w g}fk׺_on`k1 . 'Ol宽 f:nʹiN~O(qt r&˼AyZ F %++i1 3ت>+T׮];[yW}5WZ5^ u|:t!O?m[0#4J^xJds ZիQUzzV{}K/}fԩxԀ!+6c d8k֬RPWzM?[Xֽ)d\bESsIx̼tU|KoA-칥#@yVb;jD{׮]Yz4AWMu }oo=XG ZB^P_TB~Uh߶fz.e﫧zʌ7.Sxǧ'xy =ZG6K9u*ӱcG=2_T}W5xUq5ݫBY%;>]zJ߹͛7z3= gq}k]z!;o-X~F@@@@@@@@ J O0֭[d0*| P)ᅦg *ϔ*U*PeB!k*$*Lp_} A೎[n1w ?;&UEVXM$ѣmWS)`B_|m'|VV!K.$'NAuVUDMBZgr<â6c)ZŒ dʸvTV}BWnghwň]I ~P2ꪚ{i V]E >4h n:7 UeR5 k0r.]l:B7xct 4Lֆj_rz)u'[7g=; w}U[oe.袴T|j0>+* =-|>CmWdMajZ*T~R_N\>2So^ZG/WWWϷ_2гLM#F,+s"ݿ[ڿSc~e5U :~YUu뮻,Z("LG@@@@@@@@ Bqg+ ֺ6o޼ 9 D M~h~gjguSۄ>}4L?~+~ګFרQ(\hQ+^ڬJx!S>+PFU*{I'] h7|&OYudTSG@*;e gwܺ QrLƍcº I*y+ʕ+Og׺uk[4|Rԯ駟*|1DgU7nfy[vR_UUTTu/rM 7?)$w 2oʱcƌq9|V`ߝv.z(ܭ๪i^rUkذ]Ǯw!AU3ou ^PLe t~ |Vunүೞ.8{ļt畮3gδ>;UO~}@MUk&emhZsU\eT_vg*T~񨲼Yۍ7k,B*զd|v/իߴ?= QR5׽WҀ:j6Q9dA%;T/Dl= @/TV]jꃪଐ}g]sWzӯI;E>Qj`u!        H`:L^$b9v̰\ )LաC0Y?yWp+jr=QG^J ֮]۟lD M!\ /3-g]29-\3^N? )$5\a_~ g-}m֬[.fC9 8TX1fg}f+WڲJT5NV{"v?OͯΫo} .l_7^YWUrv\Tn)80yY >+V̨Rvɒ%.jVXN5iV5VkӦM̋ 55.{U]fF{Eb]Wޗr2(*MJowܫڠAlOwϴeMu} C`k߾2-Z0VrJj~RUuf+Īږd 3G5UT5Z[li+iFomӟde>BQy6US}H3 š ƫڠA۷]jk׮A\| ?z̧}͍73jU3JSL BQ~9|VVe{/?}O_|^q@@@@@@@@-'|r.\bEPe82*`G=X.]l`MTM{if iy5_~; ʭ~^mȑ\ ߘت0Qj=jԨ :>+pT|AdQAiU >*" )@XTY7uȬ^TnvJ****d+c/< kV~ M8Ux/؅"S@XǢ0,AOj|֋W^y&'l+>`[دϪ񮝂UT Uvxx@xܳgOlYR=1p5x낧rнʾB +_[nս~>깣珞C5jd~`wg٨JO<9묳&ǏSO{|vu ¡Өg}l K|r~UDaUuLeˌ }ʯBv$%.UjeܸO4ɍUN:v jx R|>ѣ&VnݘPqԶsȳ|×SA%JiݺQ`5?BB2[NS9>g͚eT[MƴiC4c"Ǽ`^pyݶ9fsqM<{ n>3s?)Dꚪū}f[x 'ZB kU vCoйsgoYUV҈+zg˪yϙ9T2ӿ1 Ez~Y8{xWTzoDu        Pp|YՉ`UU!;1U9UMAeIբ ;}v~>} /`Wmڴ h_}j )7/RrJrS 2e)[ ]kGqQ5UVo~>2_?L8є/_N{J1 y#ɂ O?dzGf7W]nQ8YS`wt(ZfZGK5T=۵|qUT5U4W!]?N7|gΜiǣ+租~V99hX-Ydɒ -`hv)SѰ\;JY f~*^ +T|r7ҧ7l.~{Q |e_5ؗ_X/ (귁_i>g9d' >+~IAf͚qkU 2|VUWp[nnS|"        A vVyFd-*{EUw4\Wiz6mdׯoRypEUv2󙛃 ASxlܹ O/Y2;vHڪnٯڝTk3]LPS+_veFZn>{)ԯAmkvZs9wg~B U2dH~ꪸ)LԦNjdu?8^|Epl&|j cǎ ೾rW(p7!|hrP*xuZUp]U|{F!8VyV߼y \yQ;U9|N-rIgY!c]3 `'$ŌaÆdU>'c        @dYU,Π¤R@Wj©ЕZ8~h鿫|'cLY`%(*RmE-պUVZX3njS+{Vj:ZQVTP@B !^|ޜ9Lr򗿼X 8 EUO'$8y. CaquѥvnºwwMNm>`;ڗ16ӟt;^$g?[[NQԻ;W$wHԝtIh׼5KG>a^WWgqFOe)umycXu!~2&>NS-6ж;><Ē;wVn;K̊9.`v!% _zW˿Ku6f>J=zI|W{j6\sM>>OЇ>g%:0+ G?1SIfw~w-[e}YzV}o~s TN<ow(U~۴!v|ST#XnGT}[J&5nC PT1Nd73}s?n |iq @ @ @ @ 0$>=ؚ{yI4+Rk_[}#/9?qʭ_ʚxSMSq0q UgN8ڌWg5 ~kNK<*xD%~4[{ 'Kv|>*tl77szZwݖڭ[vw_ /lg;~??VGuTE?^~ˬvqUd st;շvw-umϱ4?[ں66#8b??/͢9׿nJhnu]mgժU5;NhM!-Ӧ~7 CQzA` 9w>Pp@ @ @ @ 03%|V;Kktl_u=$E>kG?5 ^᎝ڙU;FڎW\qE?iO^ډyQ)~MTwRKI0^;F =~ ?X%zyRlw}С~8֬YS/fH.gg.A@ @ @ @ ):hjaυ;Jpg?Oe~‹P=c9EJJNkx/矿tHԤ`u{;Y-o"6$g?Y} W%:vD]ywv.reM;>PwxP"5y[ߺ>ubSK3ookS?)O^UoUss\ua^>?Ϭqk_x8K/Ͻ$@SO?$4U֩wih X?6gգիW'I9YN/ySɵ%Iah>9yNKqP}}o|Ҏ櫩m_؞vP?C@ȵy}|~m[h\R={c[6 7 a}{޳gSۿңX{yjS::mLE'_Ї9;K#|q @ @ @ @ 0(>k3݁`JЬR?/r%_WWo* Bnݺ??j oXm7s* 'SNnq !|nz.5I&A_뫏~v "9q.nڅχ~x-/sbҗtIqzmOG=\† \s5#JGnw'Ի;zBMV%>sQ{챵8^e"BNQ9$,lɡuhnw6\ [yv׮=֑2z+_Y޼ys]f^=?qG>RK kD=[NN(_}pZh%Vꪫ꺘fKZl:6R'lO>>^Qە?uQYgV_j;kr垛%u&V"JmCaC[N]RT#TfǗ>.~g# @ @ @ @`Bkkv,5'?gKG կ.Ln۶m[]$ЇV$z|;ӟ%v?'>QQ;!J$QRg(ѐvԧ> 4xڜ!|Vz|#kv&ĕ]V;I<Ώ$`}^_^qvݾ}=.>NY Z`[T~i_=ϱZ;3z/Au>K]KcE]TyW$p[ݪޡW5"BM3 %p brGַ%WIPb-EWÏ#$4jZ%?d/_D;-$ҵڥK_Rgbg] %ڲeK]h%H4QBN tb'v@ {ւSO=3%|@裏(5yE;q(᳌RywyGKvJ@8 k贛$lQZ lGO~cm,UUyXYuHboygL/?Au1TV7t]ϊCʾ>NSK(ApJ;PSUV~/_z->餓$6'},g=WysAVp/oRо&!e1'vWpZя~T?vYn4Mk_LS6a e??BToT'U̵>޿-oYO^veu]TmO\jk{[S(Q>1I̫Oe/wu0wsW=7 ʟ_2K sB7RsxgE0Eqz'wD0e*'YH/VO|C @ @ @ @`hS!|VR;A~KDP!v@Ki4+]dFif<+AnZ |pK,|^fM-6DRK; !|QzT-.J;G?$?_/,K4'9ŧrifA.yN>1qqN8Tw[Sh~pYH231c*M'aJ;.Kx|~sM*֯__ n{z^ᩍp (X t\g<=?M|έhsNuE cfQ|iջZF8$>pxãy{;>xSzjĿy{^RfDɼ϶a%}~Xfu{U)<8#K}YgUlRQ[JwYKܬ>B>8Qߪ~0>p @ @ @ @`(S#|֟Z}첼g=H^OK/EiW"aWz_:QU>Ys]<%̼ӝTyug^T{jv?{uIk6jw\sckΗGv] Q7o޼tN$3ѹD~?W9הּҔHS Y>+?5v6cǎsΩJ(guIIiO{Z]$D?yQ>H(W8Eu[ذan-9{եKP?Q~vfCX.KxLk<ַVgmKB,;eڞ=F)|Vjc'R.wɜ؅^X}cwm(|V;>PhYT|SR[j\pA7ޡ]ՖTOUgǚ+ir;ۜFũw]vt/qxHbs95N斶+}PԮQk_ں5fYbRRKW[ _ hi_>"|6!@ @ @ @FA`jϖuջAjR;7nܘݡT;wqupFTkiGګ?O+ %X w03횜rQK0-q4YQIL+qp..Njա.z7իkꔄ{%N d6xN\qwȍs@ @ @ @  X SDrDgϳ`?6B`tIK_R;4ه- @ @ @[@IDAT @ y%JxF+r·umՙg4e uN?:/{˪|3% @ @ @ @ >?YϪT[lwn~_WUzЃg۷oGWW]u x4 6"SO=:묳ۯ38nŬ`3 @ @ @ @ @`,y}wUw낻뫯|+yW}߭>㏯W6lX*W'>i?A<%}J@}1Swu{UvZu[ݪ6 oxC~pZM.@ @ @ @ @XhJsڵ՛gctM{o~siyJ[f}s3\a7y{^u7x @ @ @ @ @FC`φa{X'=?U?3qy& #@J}zK_Zرc -$@ @ @ @ @@G]8j׮]_\]tE5\}ݷ:Ӗ ]m߾}@ M`Æ Jƍs=׿]@ @ @ @ @FJH9 @ @ @ @ @ 0CP$@ @ @ @ @ @`>/C @ @ @ @ @C@<E @ @ @ @ @FJH9 @ @ @ @ @ 0CP$@ @ @ @ @ @`>/C @ @ @ @ @C@<E @ @ @ @ @FJH9 @ @ @ @ @ 0CP$@ @ @ @ @ @`>/C @ @ @ @ @C@<E @ @ @ @ @FJH9 @ @ @ @ @ 0CP$@ @ @ @ @ @`>/C @ @ @ @ @C@<E @ @ @ @ @FJH9 @ @ @ @ @ 0CP$@ @ @ @ @ @`>/C @ @ @ @ @C@<E @ @ @ @ @FJH9 @ @ @ @ @ 0CP$@ @ @ @ @ @`>/C @ @ @ @ @C@<E @ @ @ @ @FJH9 @ @ @ @ @ 0CP$@ @ @ @ @ @`>/C @ @ @ @ @C@<E @ @ @ @ @FJH9 @ @ @ @ @ 0CP$@ @ @ @ @ @`>/C @ @ @ @ @C@<E)UVUgyf4;N/|s 0nu[Ueϯ6nܸ p  @"pv ˗Pp@ I#͛={$qL`ڵ5No }5TA@Z^~xWW;wL{. T_JXqX>?!i.wK7pC'?:@Xk֬8eY=s/x=. @tВEU  Hrݮ~(e]]@ _"q%,s@+ hig35A`[:Vͭ[ t%^SN3^@ivX5t9},cǎGB@u!T`JXq8 <|zugWǙdĝ'wL CU7mڴ>7 Еk/&E.`wצ=r6>LT%ynA@<0P/b2 H0 X$ 0$8/R Ж,2ϋ\hKs[b@ x @>S #/|CMb?@ܞ! %yq~^rˏgF@`q |^ܲxf+z9 І6 ,:ϋ^? І6  @L5 Ўv ,6ϋ]hOs{fV_{q$G@!υ6>CuCA;@# >/lѓq@9stx@`/{Yp@J p @ |nkWZU_ڹsg}q$I@!υ6֮][40xtߖ,2ϋ\hKs[b@ x @>S #/|CMb?@ܞ(CH|W믯&,1x᳋ | @EO!>wF | >e K(->S #Qּ_ 7=K# 0>OA!`B/Mg>酗.!d | Ks_E)i  EP$X# 0$Cիu֭`ݻW 0'ÝT#pGg#CÖ>w@` |^'@K[; |n"s@@LM Ўv ,6ϋ]hOs{fC8C=4֭[;w&q?gNh>tMƍM-z2t 4@ K=ϣ"K@w@`a |^آ'@G;# >/di@= * *۸۷W&O _8#`iDB A @L5 PNs9+|B"Lx P!|@hGs;^.r'=!$6謭۵kWuUW @`>*QGYZ1;vTW_}u?<@&B< ,8 Ds!C%-XX8 Б,$ YdAsx-]w]sΤ0o6m25C yTs\>袤+(' | >/ 9:<@;@# >/di@=X8,|mw^2'@?kzպuV f(/ٳ",7 @<^ޤ6}ݷąR@##}@+ |^Ʉ;<=2܇@G;# p>/\a@'=X(,|֟޼yB7()'o馑}؀y|hڵnɩ/OՁڵkWk@`>8 F WR\z饩܃@+[3 >/x @+[3 |nf@"z@xXl*|>C=ڡ &O$ƍG)#D5k֬W< 06dž&wKׯ/s1*g] |B0"@N!>>GX@`,Y;nذꫯvرhN~!07<28*U?Rn֭Ν;۫W֭[{QW\>7 @<^ޤ6/9|P~)ϥ@>S @\ (" 3u@K[; Q*ѳ8@`6 )>=OVZUy+26]W$ @%EÃ)'f(15J)ST@ Ms w! |NQz@A!" Ud  0M ta:S7o\޽{H%hVX\vG^QՁdb܄>'psxx㍕~CŎ$ ]XT7 Ѕ. 8< @@@M0jWX*M@={TvQ\Ncby(xN}֭Ν; 02GGL`Æ I><W}JpCszE+q !=B As $ |N@ 8< X$իuE/Ţ+pSLCww}{UWUvbˇ5*òDlgOcǎJ;p Ї>*}lg5$AW4u]Wm۶-5Z@ !'y+هZ@ !Ls3#|@@ |n bXġڵMMPԄfvJ" ⋃@HۅpD79v^d&|: oܸq_~=]ݼy܀@Imy/ f@n o?b} |C@h%N~!>>GX$ |N@  (܂ !9G""|rđ27ȝfKl]Kq xxզMBs}~G.:vJ Gt>vYfEGyx2O]z+ E[nx({!|R1HmJ/Gs ,'y9  |:@A $y!LC= |XsNߵkW&r6J9vY1_~%|ժUI!DAڱw(0>{vL9ue2ipNtQsV1wÏ1\99=>nI\ϳWf}- \%KE yJ2hh( |,|NoʍJ|J˽kVrCU*=Otׯ; vC8n@ܗ ?=rVh7ظqxM,"==xY3=b +,-,Qg0;cGN@<X xg…J3kBn!ID~)7*f*-o'\v#>ǜ(YKˎ;vTr(QX+ YKsÐ!*It=ir=L?+wx{:4}LR頋9st!Ũ~'Er>/jɓo@ ]3px@ 9)  hM@/$7m4ӻz91,f [Xv>i'}M;Z8.( VYƢ]vvΉ\o0dZak?fSl޼95sOLՇlƚYJ^j;H@$}dOgj |nWJzwgϞvȷL\|0aC@}.٩܆ 9[CszE*m  A xx¿8^9Ѣ--TƢJ-3er^2{Z|g@Ioz;Ă 7T}JPiY|:\y -|Υ6\,ޮ|.2/Dܣ#*28kxٸus+wX3>[}ݬ:FO8[Nk}ߛ:)ϳ^q& y!LB@<D*n2 ȉf}q;%|:$]:se뮻ڶm[7퍦<$CIN=ð(9tԎG&}Hc o.6 T:e嬏~h7K,?+k _kǓ =MF< *ϳZr=>Om` 0e>OY` 0>O}a f@N f%)snáEp>bעrd99؞~$.aؾ( ZGO,d~JEAJ_gGyM>r s(!mvT:mŽ%v5117 ^Y9qA@JڇeI>O!!hXn]u]q|7#f*,L&JD8 0> b_Bb"\C`/ybe]VuQ{3 W]r%ܐT޽ ӕ&UkwNvswSxnڟ++~' Ϻ uдwn61jo:צ<;ý\#~Tg O7 ǒ?%kȫ$9i,7\9}4};Ӛ_.CXIJ&܁@/{#0 @>/PaU@`=PX<^1}Ņ$+lz-5-oP (.L-jQU:kNγ7L+0WտreL㽓;ꫯvju^R74KP"5AQpI 9 Vmwr ߋ߻EYR<;x>2 ~NA%e6>x#ѦZ:.pmzk-C<8sO|08 !9G>'E<$N!ڍyꪫ* fg-}EnKZ&LoJO,*GؖT\e^w^]P7nc]ARo+ -.q%;+ԇaV6f~p(DϞ@lJq衇Vs9VqUI?b~h7Xmڴ)+:""nL#N~gڡ_vy;+}5kքf-;ed œԇNj3<zMsx3lָa0>9~Ϫ35׉sf~z~ sEsr OLq |^ @!bQ@Ms"x$^t ċ1x<~>ױY*JNگ|mٲVAc&K󼌀W = lU;r&]*5.lնB!j(;'  3JrM;-+L]jsy(r/-ҾGց04=(̂a~^r}Ϭy fΒ q>d6V#|LH>y8<^#ygSv0+kSkki %:t ϲM有%s~Jʢ)>{tO]zP1AJR)s/D~5Iq t4mo GoMy KYGsm۶Z /\2c^"&0y0Ե>tלoΝCE9Ŀ GwV |N@` |R"y@#$ypK-)',S?~Ym?Y ÚPy-ᨭh>]K7u{r}cl[0i]uSJ>X=خG}%ҫعzԜ9(˷WxS=RgzJ{^!|גM+¬ o~1XB4K[, ڝ䞔t~?/e"k^KyzRJ䰝%7 >/v@<D %sYd !yB !˧S&o;̍ޛP,vkrCڭG;s\[Ѣŋ^!ܳ#d(^sR\b_{GkN<;qJ0_őib8>+֭ \q>cƉykosRu]W4>^{oIՍj[N ǔTQԻ0Y=WߢuAU\s+˕a.奄"?*RPqӦMnR=\+/9+}7?]*oLaNbN#pCs1O"t~7,PwP:ϣ&L<@kɒ/@`>*q.4 ]dhAs Xx ئ]vUQ':}E|Sũ@'Q M.vMڡ W.y}\v(2>}EM9ƹ瞰ŘLWoP_˃zmrGo)1 ajc^|L;zbbSYZ)=z Z`V4j?c%)c8מR\;N^}1tx1Q}~A-rsJ—5k֬w.浍߫ \pD7>FԾa(ν~ 5+[=my$#={}2iWNn%Uo_,uo>wάA<+%45պ /ps'<I c"yLIyg 0fZL2s/uwJueg( ~'v,y@)C-RbL/5n"ySN՛v)ƷWwU ZJDjv[SQ;.%{Wa]=x·Ag[uɕ vxr0LҫC&}^hgӹgC)G]{v*CMy1K_oq+߾s1Tdȍ%XKxDҘsI\aq7-^OE"qVcm]]Ž;4sy+FX_dud~?J[%/MK^zDZs\ @ :@  $y ,Ch᳏0'ŷ'.&eTC3X"|H-\W*j#>h[TNG|vI =wQK4iO!)W slǣe0GҔIk 8M eCJ@qmuiSaS-|mה_Ok}'*OgCP*ncQ=;8fɵʛչ09!v<8Lp>O[ƞyRNX-V7@jk87os~rFsߧYyNzXdsm{K/kpۿr3ImMq2I'7LE7l)4nGQ%n@` |%?'yE@<#P-ȱbA w #ftg\z~fg-(J04Ns? 9.fyߤvEEOGdK_ջؙ("u7%m{۴'Z5a^WQm)Ok[O/oꨣ.]Č%gXҮCgJ~2oMӫ#V=QeWƇ6O(3Θ&2cyLc5kn+/AoϞ=չk9RW1׫#]86GwyK5BiEx''>ƛ$M9b8؜h>nufYj^1m~IQڛrn>eÝy,Y}$< H>/Riױ@<$sPd+g-,3V/%7-)C AYlmfqAg+^xJ>yrsº8\bWV[4™DMԮT{ejGu_=k.Tz]šMq{ұ)[4~'VnʃǢb+_(RQ"*͔W͊Y5\S 81|y8i϶[ssT l3L]{MX1u OF{kh,ާu;<+1Ҟ1fulJޡS~ۥ~ |g-$-@` hnݺ /kV9ok$1@<&$<3_d3gOx0/N1W?C'UM= OoxbOp5ô*3k&&B$yI{. |b%S |T暀P b䜷h> r=oڅ'0m!)nLCmU.jsv9ʿvMo>Omi]s^Xra"U2;CVc,wJo/lܞ=㾟 )>lڴ I3Yb9}>CxkZ~O1<x0drqslQ;=sx@`9yp>FH@ M6!>^z[;r)[X)7`)c_oq[}qk/\=īS/. '\Ks7b[.OCIo(Y|VqZ^:zJ¦Y>c ۴.xs7vM9W7b=S)fC.#!ːAkgaq;OiH0^öWKmʏ_۸1DZ:˩lR*R;$l#6mgqQ]ӿq#ۨnH;ǚmQ1x=w/ڽi\zZ)f^oSrl3K_~sJs9Q٥rh0rs:.43iU uDy ]q \_y啭q7>S<xcwSjX< gO^п?e^;^ٰ~yO~[C>Ux|Uoss@ P>>GX@` |^&? !e$Ls_+Z\)]8yq>e?%ZJD0.Z9jBbHeSo<с-ӽpor~g(*>Hr8֡6vzu0~uݶHS;AyLRs?^޵<8mRc!WXL,J]: -.6O@ř4-(xr6u0, S/Oͩ6>{9'^PoϱMk,>'nBr,aska)RSAsrItyR׵KOS޻n($PmZBu֭O"n(ӌoeo; s1ט:y鍋7/xcgzhiw=m9.fpu.e厱ˇߛ+/o.2ozbO={޻Y e~345;R}v>%.qu%GK[I :=8qj|чj?99 gم^9oqD@<$  3Xh L@᳷hdhZ2r_xOuFZA $ZK@' 9msLuݮ6+vh2Klw0Pޗ[Om}o2W}]ռś0^mmcJJ6ΔoV~춚J=x8cAWT*-<=a-)vZy}{mM-PfOuWs[FXxj_^xy1K^%񘟜pkڢ~ EhqOcXJa[=롎^]Ra~'|.*7zcxΆ0M{y8|<&O{ޜkþktJeՑm۶ȿuS*/u>J+uOڋl?<<%=:͑yhj/4qc0cK;L3~QaaZC"߾>ޖ-[V}mV<е{s|uywa%^OJWS='s*a+1ŭ~Iu7t}ۺNP.As uǪ=iC}}pKۛcs;E]Tq# ,'>r&\AϽX * 0B^:PӋBwZ=K^g BB=S ї5vߎ]T~\G{-PuQu8.{FjÅE.ͮvztu"VڎZX+7]%xnYJorB\yZQsq4.z"R) IE8޵':lx6yVK_'oAՇ+fBEng y1Ya/oD؇y4ǣ3'@. uԳ^؆kMo'M,w^ysz5$SJұ:)]YqToP/$uL=@N@s6^J7S>Tqa, 0A'!${Q 2Prxy|I=KC򠴭~{ 8YʵYv ){ugO;qz(^akOw%fu; ЌXޒGC֗0.n֔^IgqX]i>{\<L&z"a`ꃙm)m{:,[%&+uMc'(lOþ 5ϸ+I6m&NKM4CQ1U=oyB{}=ױkzq|!Zh%Gˡʷix1KaTgϔKS{%cN*l _o>hs]o߄vzRv8){&/ۖmiz?[?+kiw}/>Pyi<{soqPߩ>#rsǩri4ׯwq'\E8v-w_j@`hLAhN~GJH9 0G>Qa@`,^EgN Y_߾/8gl _xYfx{>:ˆYk+> fa SM-sW[<9O/2YM Ԟh}@fQ)Ǡw[C}=f)/{G<=M6Ttz2G0C^{HK#gG$K,6ǡ^U5Ql?M3vp!;gϚm^/~gC[-8Ki&ja7 0)zA9-t섶LyӋX=bZ+^@-so xmR/E$^VJZL n[@ݩE7:o]q%23ĵW⸽>e7ӻBySɫ]JqFu.λ޼R-6sIO5M|z|b}65Vڎq|Mfow^_6{4]> n޸B qZkg~!a\{l84.J7֔~WR}WvpQ26a)oΣ8ڜ{٥na>0/ s0T_M}|M}yʵ8rqKdzoI:D*^TxJӦM+ſ,xUӮ_i۷2lG1OO/^^>YRO*RʟWV)m>E\_L)^]^ئǣk~~Uzrج}Xsϭ> q@Ig0z |6@` |@`hH/䴀2x/|] Ny.eӖR{R/,[[ K_7^]bC7 e Hd\rI(R!t.z>ѵ]"Np) }/nXv+0.//mw<ƋtҺI?vOuvoǰ|n, .=%]F\^n~mN>[:oikalɵ) -vt]ލs"RQEIUjoj%+N:1bJMk~qD'^ؾcgڜ\}+\!yc<-RO5!gXm:6 }szkkCOf[cbsxOHxmiiysTK,hl J?bV[Uz:u|[>m9[G>MmJ=ۖk|17G+y1]s/+~?Χ7Jb~!5/>A>M͔-VJ9ETr埲K7y㲥屶M7vM{nGq߿:S, }y7H\D@`Dž^xXMOf"'q@<.Ҥ:ϳ^J Ԣp|ν0ɡY?-'Ɲ_oRv4-yN#Eż(]0>BZ(b^|iy}G/K%\C!=S q\ε0,E1oVWk:6-)|7/f7a:ob\\Mb8R=Mū~",;ƯlYMjcWǼ:oiwcQ{baj{;^4ǮWǢMaeϔmMyu v=o{xzkqx{nGolmxᬝ[]}&](_鷑*`(+wo7']5'W9:υQO㸚>V_ĶzI[ۚҗ6~Ŷ9fzB!'K˃թx̏K(}FͧmpnNRmlIhs7X9^7HսJók9ye/b絏ԜrIb-9gucW U;|ys\ޔ~_ S)MSqD^~R«:dSø<{C?y;(.?= 2e]Vo$." 0k>Za@ʦM=X...K8\=RsWծSk~Jϼ9Rv'j ڽJUc?7SX|أSsMx ?)ewM/!{Nڔ`.KtqH'ڿIyƽ\}oJV\ɎO*ێ:dmKx"W\S.7xRѥצKa}R:^[ǜ\uJk~s;*חm^y) sɼi>4BgA a\]_\\㔚ƅ\5 ya׮nX{ݫ}k^=uYct  WsGx@AXIJ&܁ #{٧92%_nڮ챝 (M/-Y<7z?)q=m&iM[c4 <QWpܐ_+^/ނ7xlĮcT"Br*_.oLJ$TԽ>u._[ _]8MI5]}/1‡yxxeKC=6$8e'l$>YvR\"ht74&q˃Cr6yu2  뼾Es8Qظ٩v^=me~/NT$dOv~6g.(Ͱv(%F+3[qK+oX+yBQrHn,!{B?f_1.W~a\> o= [R&a޹+s=c8? Wt̵T{d]߫ұkjGں>K;m6?쳫OMx@`hDRia+ 0 "V/r 8%/p0x-Ƕ,xaK_QH.? tŭZu#-({Y൭Lh^;bo&'pŕj߸ Z* IQo-;DE+o\,զDh?-yedKW%Kkʏc#)-Ī˭]ti7^K?xޮ|W#6w鿽z>d'̿'*3JWi}:O+I}I<*u7^=yvԵSy߷`l->kwCU? ^]+9m>Vvl*gO9/ZsGEz^2  McόBӜ+[ Sh>;n.~nFضm[>"Bi1#їpqHy&{q c.R;0ca}X9xŌ%h:'[Vo?a33镅ZvQ Y+GovoaЯ2uݹD]=c6&gFl3v5Æ콿BtC{ {% _LsvҶ)1^gFjk_֩s5x?|߷י)[C5$ O[(!ï%>3J׽vϺ6euZsooG6>0jsSW֞?ٙG_a~<emy>vb|j%>yfs'Vo4Rqwć`easƬgX>60X0u [v[h{ʁ` kkHsYQO>mWWg{rG>^0֫a'S8!Q+^ !90y]DW&D|ަT^);y y/Q2xC Qgf`-^+tjɚRVCFf"?KɌo(X*&P(Pקvog%zYor>>d3=YR_0H}Q+k$wYo@!aa5;]˵O"oaj oo͈\(3{FEYX=myai2?qkil}OA,f)Lgm֗9V,+=caf2Kuy X20q͈J1ljd}7KKiY][3&w1B;QaDUsCUkyYigVmQY99qeg崮.LawvdaR=D=B.{ b37f}[`Ծ>YbX1=d@na0vq .à뿀a+E~s6=~%닀Çm5va^fb2G=B氖dZ}ѣGWQA+J\ D8fv$TYDJ kHugFngf`@Zc6`Qӿŀ[1}KY w`Nb&Ɍ^֙.32H=c:cZI=Q }楗^Ny;ped~FP}FG_-~)9fJ:N}dX4bY{xh-o u}z|^/gxf}kX.} o)iz"O죇6?\k}g'{c>C0#aYw>8pHQ~bPªׂձ\gY//b4X^2Brez.<!ޑ#GVOCo qm :]~PO╯| )! ya"u67 ! A@ypV*B@l~od ?1TΔqӾ7ƑFKg C'|\vݯrgn'E0uf|Gh%Mc[ڽ363ΣɈ\j;y_}_>+Y6F4`8̰d2ӃՋZ ӓY={xEa Y0@@Xh/u`jfAL=3 |{⻖gFs\Çi8bcXn?1 u 52?FOko\Y)}[x XYв^0%YҼ !̯T/[ugR:cD81YF8Ŗx?CPT1__f_B`y׾YQ8pرӳĄL<JFG@/Be@h%>{JxgIa/ӱŐ[ׯB0OJāNI[?ʜ/#3ޛP&WO<|ݻgeۋ|FDe6|3&ME,+2t d'Ўw!8#SGY1/3#L:j`  WVY<D.ֿ@>b- c?з81߳zYG<}}kdJOA\VHc>Џ|沶fs<3:Wڏ}| m>yaYV&^v4>Lo;gs?gp9u:ya(Y[ZY:}1fة 3I$w o> 1 'B`>}Cچ(B@^ؚB^)̱! G@gu`4Ab-f!0;f Cx=7h5l!E3z$f؞d~}S!T&՟v}!XPO8 ږ/3޳>"L nJvOF0c_}1tfeP"-w RD7UeZz,^J׈ه1_{fu&ƋxQ/eDPϼumcgNߖ|>e}o#Zfysχ ־Obuŗ/؞[~5)d kZa9Y1'ת#B'ߞX}k!LpalK[v{Z׿+{S! #q82v>u؈Jby1E!EX8">/Cؗ9lEנ}fHgF,^Ïd%BX|flŦ-nt%L ;33GFf۷as?[k WF(#@0Mw0"2!y2ҽꪫ,Wsv ;^xai[2CKߺ)ݳV?jDB!cdE+Cfk%]F|=KFN")++m>E rex>Eð:Ė2,}Ta풕/ #` ˯K>lv8B+fkKR>26k2 KZOw"s$.EB@bY}5>!䲹£o!lkOn{8.~+J2[ҫc^'6! 66gqpי}|G1,aC|6nS3=E]F꫻׾Ȓ! !`땹S7HfD|nJqD| !l6}0zghMyό5|ԉɉ7<0S1eD${{eaE;FngV7tn|3"X6#P?VQ6 ';"$YGy9K0d՟>C5 5U=em'3v ?FbMbZ9G< 'I0¸J*Z=t|)`qQ&YpcVMVcbe'ptk@eWYYey8> kv8O7/ŻEguaWX;vټXWIV;/3Xb1EwfyV?}ޣa>ıKV aNakI"<.renw^y 7]q1ғJYfs~r3Oymc췾͈W>Ǐθzb%pHk|_/A stͲ w y9rd8|" ]2u H(# ʈGr θfB`@{=՘ 4X`cS~1zCN<ڇR `~l}tgw}}iEYabs!q8 nF6^Z|Lsʼn8yL)YB@A~M;">ρD|ؕXhRYQ[YBވ6KF~g=l|29Lhe6ߗK1#,{o$/<a.ģ%_a`MCt%Q9{\$EFH} m.3 Q(]/)p<0K.f&KR色B9wՑ,^_+YV}Ӱǰ>hW$x}ڋ+co=WW+cg8e}o>؞YʍEc䭈}N!2ٳaD 3Bjl,~_W&x~~d-c^w gcz&}7>AJB_"Ҍv>ol?!:8SB~wz16bwAtrs Ebma3vw <#Aޡpa+>Cx9K7pg[sW_1/AkqsV`{OacD&|!|{:œ;|ԩyWHm?҇q]u,<{F,5[+A^WǶ5$%rA9u] 묯ؚ㉹ !i[ܸ.6!??ρD|ؕXhRY:/o<{Gll#AX Iv ws5n\?}Z௥Ljκ[ H9Ԧ $%2q[2s1آ}'1 H,ewǾHR000sgzv yWXV3fuLCKLϓ";o2}zd"~x"YLُp09:Z +/ԧ0DewgǮS߱|DjeX!3YCGa_w;~Kc瞵ub2YXF6g_^~-aI:batX@"9+[y"{! .#utgt;ʼn'd`0pc K_LkD 5f*l Ͽ{Nh[0B^hI0oÉXWF0Ӹ=?5>gX{]ǢkJ"5:ھCiCD6q1Jy3_rpbX{a visqO:'_J#[ g2_W>OMWX+_J7){%?!  2:">υB`yKP !06[l$lş̅-ό5,|,>_gD bpeF*[2rizRyǰ}?wvk-~>32 7#+KǷ]j1}3-V%>[]0y5cʡf0e1}fvMm}Ȱ}1k _ǫPGP 83,2‚HcN|xlbkS--_6[ËY]mnų~%Q ]3]3}|f si܎d>e^=yd(p @_8_7]8fbۋ'3uHCW! v#2# 8I a>s0_8ft9O5s3c|z{}llXL'̇P('쩑@IDATd޿=;ak]旭0?EyZ2]c0S]Ok-]\N56³4M6(ǩoZ9Yn\K},KjYZ+=Ox҃jjq_bַ5ݻj0B@mAcj_<6D|^LQH!  / '$6ݽ%KؽȇèÌ6Sn@Uaqט}n9bDlf A]Bة6s[7[ tйT,O<27q-;+׾Y&K FBTF|f!KOރ? ku>}|_7ddF.W ^2x댌ljWowۥXXܳ:TZd/= ^8FgIF6:Yݵ½Yt{B@$.:)">O !EE!Ќ3@@Ɔ[tLp GyS>3]fFXcdq+3"y"yͿ+ݳ Mܳ4[PIϬy80o`uQߗY2^/ǸX6duZLҵNX\G fpo{YۊP#4N"rYҌveڳE7S[ЮSL7I.B{\]!Lv=9l_ׯTV%|/5կo|'nƙgɑߴ\>R,f} ޷&{qmlJw׻޵_7MX|;q B@]C@]+qwrD|b%  !@/BjF OfHJl~? 5̐Ղ˓Kn橥cy{nf-cd_"E`3Fb Y!/ xRΜגhE$0LxggԿ +Oc-ѵXQYs~ůGӃ}RP?j'dz0Lx Oy=0weuaѐ1|@uzӉ23Ǧ>su>X=A_ꉑVL]c3`qݰ0Lή^un{` tC3}1=[Dyx`#Fønˆ] q5And>9,aƨl풵E?"?1<#d#habZ F>}z6uHDϥ}, 4vV"M7ݴcpEy~"3]MCa>̙3c,l1ǣHoa|)^::rNJk#F/4ϧ &1\Xo3 5=m6¿>he 'gn5iJ/Kg,?n,N_rXy09oz`acE\1l-><[0'5 3k;aXg5}| ! v=XsT8v-+R\!+I! 67ؤk P2 C'dxc7f~LW䧕4'yM+22M]7 u>p[jcQQv [}>#^FU`R20gft~MϞ'bmJ&ZN`k|Q!]&a3 d0!^t JfeBfC<Y:~qkW-ϱ|eV?MȌž˶~:kHl.S,=FL^-:dm}7&-rfY`5ӌK9®^֐1/Y|;4YY[cD3yz޷;pqҿ}ײַ57=+>1ku$k1Aol`s8g(y{5 ټ|{)1?xocN)Kgxfֺ],>/<^Oa־%7\aY^ɷ8{)K}t)?x8&1=Ւ 㜣Ϝ%0V؁'rB@!#96yl$" ,vlCRp3j!P3XtxfB6#d |,~L(/+Klgu镌vVG^c<Y)1ʙ-c\y/1kOLk:߳gKo~vny:fQϣc*p ,#Ÿz^.FdIF8k Ǟ1>NqOְg}G?YR(}gqm]A?9ȲH_jJ|q_Sc<2#2|g2Y}`}Ogl,/`4ꨍή}[^mo/7Y\V [[R>6cRcd{6] &|_?SMl]_*wq͓űs62/L7۫p =m9(Ú \'2EL#"zB@pg!{CB@(">h+B`nAM73xc-[Qy 3 &gkxgaOh@h0Ɲe{] ?frbWy&rFj1 :6=ih:c& >}9ѡ r}x=g+D:uJ|Ό2Hu22CoGfhp߷k}F~23tl5,:׀葑Y>+'}d剰=0});Ft!;a`}OSzfe?%}~:~w_ƅL/[pYSV o$b{2=Xx!g|9g@p̮&wW<< |]ޒOoqUP3ڡG>qmqo6ߴ< ƽRKlN~cҺ">ϻKϬ`uq3@'op%90R-_3NtY~·oiϬ̙csf6Ako;8[u7[Cn M(5$N4EzS:˩Ӝ"?W/?orr_gPj-1s>i0">0B@"Ϫ B`DD|LB`yWB Ao'׈Ph4tԁb1KS/cl`#ӊ>>3sXa~g#Obڈ%YZ[OYaudz|慬iڇ~>Gz"O;|*I nig׳IáCV4E/4xKwۮǏ_e uN4056b~z PfC}{ןW]uU[uzqzZrCZIf.##OY?֮JcMO 1#l߅^">C6KtKܯ;n2ǡ^}gxPƘa.[w_L~\a3"s6粴KsZeʫiM! ϨS;Q-v7ucgkqȏuuX)u3}jCm }-p}R8;c:NWzB@l2c{LscNϕs" h+-! 67C`DUU3vbH˙!oL\љ3mgWF#;K/ʩGFŤSmBFQ4Xpe0Clr`|xFt#k޸]'>mP9e ,ˈ D|fyC~0=7zvځ?&f^gzĴYc|du^7H8{Oem\$:ߵ,<bn]Ke0F#bK׮]Y{|f8:hqel$E>lv2ھX7Y\OoqEkdcú:dzxŰ7?34Opՙ?k;W_vgYsY]+Y=F=c"2exӉc6X~\e_$)y T%SmEcN|Uv%*" TB`0-$̚4`d;fr7Ãm[z} tcq jF~Z>XN]geb|b:M 3h{]T'Y=e4rf4z^?[ҕ}8gx2#ahF)/ akY>卥Avݗ0U5vmmވeqqӗ!|Vvmэ>1:#'g'A3ʰ D1Xl zXLF<%'IϬ[21_#{OXv{vOY!owWW̟wa :kfcuFVckX9O!})p\6~ٻ)/I{L Ԇk؏~פֿ9=w7#ul^<%y pe.ᴮ}l\\,Ӂ,Kc@Էeď/m{ֆ_x9Kg{ ޵civ縇N7ٱ5Ald{bonqX׶9.=?s'܈+=! 6 D|C@B`ЂZB@L@Pb 6!R8#"X\\fv$=> {3|1 KJi%V-Rf~rɈWV|4B[+[oG^QlW7YM1ZD7.2پ,X3X;|ߌ)݁s9g=6ӧOڇެ- Εՙhn Wœ|aŋzz{֧r,ctG}ɦCY;4v\kL#Xҏr6#P+<-C}Cg:Xx->,89:ȁg1f-pdވ/OFǓ|X ktѧ"On_ٵl^97tA_CͯZ>r}.#!ǺQwJ$!67b<3޲6R5ZYt=[g>PV'Ϭorj8^vEޡ:u7?eoC=ܶ fcg6ѧ/[ǩmS#'OTYq)4z!8 D|> y<;B`y[`K8ԌR.10!.CHX޵TZxlXO33y8%'Z|=;1 ;İO$3gd6#A %=x/oNz-,ko>^דb>jjmJ'>38ұ>ծYݍaxfDXOXuS {@ 3өu(, JqX],7gy2,g|esϒOY{uetial@S6)''AfFfWϽ'x?l6.+?r=Wkua?iWݳ9OKLƐ+D?ڸ֍l +~Y7L yf,eFA}K>-Z[8V~} ~ Gf5]q$*ˀaped9#c0}VA<8ֆQ ʿŕp(阥?&AئXy_@/}e啵S2bOl`/#3`F? \ ,9L{ݷ5w[ؘ1i-Kijuu1A?yO?~|u]K'LV|D&D-86[y?G\a1 B R78H^{-fEɸ6_)қ6߿[>p-Km~Up>o}>+/–cXCۏߥvڅ{|xߕ~}_>:%6-MA mD@m,UIK'>O$">d+B@ @@)7LԌ0Y(9aZH,/-c!,L7Ld͏P)+2(ͱ"5eSm,,0jb@#3t?3k?Y(ݧ=0M]c}f? 81$&]Y\`&#vv2Yѯ/Qƺ>^'z5͔%FڀCa;Yea͏}ZP&oX^'NŵR~]p!_+FY@x=o1>oNb ;kSػFc8+~.;y %D\$wޱ9 iq9F?_,-~i1Fa.Fa>yK1m\gcy+ls!j02֞=u2=c˧UZ3D͍uN1>K~a$C:>Lv׻uKI7pjOgrw l}lgo;! K) !& =y7 B`y @ !0 d_K:D0V#>8}6Ki2cѦEv)w,}xYo`aJƑ;Ai ^egu2#}H^>mړǽ~>zH /C<Փd\mZIL6ND{CZ:aj8!LM'y`G_Ww~֯"O}v+%Ұ)a<kYHXæelC|ua%Ƿa3=Ň_ ,:1pz\Ў2#СC0`}kDaDA|{։~ D8wqߍ}ȋ1ml=ƒˬ",&߷wm m8#x%5u_4}x2g8}Cm6NȺ}jilܫe wKT,ZU鴤+ڪ1#i -R-ȑ#(`%9zw&l^yƣÇ4IaX ">/(PHRqyK !+e! C&̵k,niD|.m3k!1lȈt-Mu̐dfeÖ} ~vRhbua gg2c93D}Xg$L'Dc1W2l Zp2H`uDccya;n,sh>:v`7,Fs9gO? !>X`/?~kV<$lilm>N֯ϭg{{\kW/62g^U?qS6ў+S96Ofs>_?xs.}@u]j#"c4g1;YsleX{siOz0g9φW?.Ei˰o&Qg= ]C@]+qWuyW$"/! @ (B`=-0(1W2r8%B(40x{F2-cZCtg$fdbcByNkZVF:yotE/֕ۚ~k8Ke[f߱0ve{ƺ۵f+23\pJHgF|1]<ƾp[wY]im}b}6䠎^Kۏ[>g03YX2g\z3bq͟z _x;EZe st 4x+o a^1i9G,2?`v09c^f>.W7ѱ%/F`cIk|"BFYm:cd6V5'z3ys%a톍یHWZs e.P9wxGJq&X0b7NK]{R">縬c(Ơ薶ӳ]'jB۱RH!ЄM0)B`ӹOx@xw嗟! 0# ; 3XhaQx1=3y- >m^>aեbZ oaFf/tҴ'8Y>>ј0mV=;hl~>,+!R=9 1]zf$hIюrMy8'-o3ffvPj>:!,)^~i->w|}ukI]} ,%t\92#mv_=G7YB pR(! Y@#*qB@l-">om*cB`gFRFt`F D|n!c =J+33;k2Ǻ2@i٢ded@`4X݄{Dl3Þ 5>,  |,%\z >R߁pekPKYX;C4>g& zwJeE1!>g}X}kk>HVjy{Ohjs /x|\ܷďq|>zhwȑWm&7ON\YZle=YYss4=E^KOKz maNw."[a#~5vG_+xȏH}8FXӓֲ$^A ̭ؼ0P[/E]Xڈ?>͞Ilɐ_?Xu1">+|hi)# +! , B Bj!xD|^|IA! *D,LIlÖX^k.3y٩> 3X3%ݐxfVi&F`D>p硲xޏYYxdŒkvZOc[&?^A@{QJ 6cȯYYӛg2H%,ktue3yDXϬ)geTޕ>r8qYu5e]kLƾmg}v?[fa@ M?o;]jW8KtȏTa<}61/n]}fkxx\+Ԉ%O[죕,UW3T'*i#>cN/i'! 0KC@+sXl1d'N!qA4`%sA1Rٺ,_2\=3ʚ!eA/ +adzz{Fn'ܣlfbeQ# Z"3Qzfq Nc'eku8!cQ8qqleiصvgs)_FF?0O.s02Vgw2 &kǬ_%t(-L,N)-뮻nHů9̗Nܣ^es~ ?0Mr=O#ue?~n+LM.7tn=3cnq깍-GFtih/'9Imm::E5b=olls87qd9Sk1P10|®{e}_32}2u|Ժ`J_l 1i5B@~>c*zB`9&B@,E|^~9I B@ *,*" ¯ąoP8e%cg]#xeҎkqdidG]>t,J'sR 3C1-a ԾlFlF8Cf)ɌiԞ!SQ.Satf\JHTB]HH(_lghGXԳ̡NBF3YW1Kg)`G;z:!n)KoXc#Ü"kl2˛#PZkymںpcy^7=k7~>i6 zz~@Yjiϻ[0B`D|=踯2VJA!<5B`WyWK^ 'V2D|޲Uv"PŒ8j0ɼڵD|f@o59v,WoLpbeied];ƕ fiygıx r_2ķ0X?mF4)^jSVv-—Z E XΩCbfD3|OOybZ^Q@HKC_P,9^?yn,Lb0f{t)u鬛 #ǴJsvȳHa1 {Sgmd'9{b/a l'/NRqsV`I\1/0~ S>mƨmd +6l0朒!e"+d}9ydwWwJ?96yo{ؾ5,5nbn]ϗj^ F@K ۋپUe 2AZ!`7 B`yߋ@ !&FHe@w瞥7`ŗFށ$ưtJWa疍xK'j߮-y`dњlKcT&%qVfH]:ͳUトLn$ַpit5 ;a,5>lJr$ :eіkW./u%gDd&~YX">"]A8!ʮS.~w1{qzCd}AWSİC<ҭaiqwưNp6r'Udqa5_s5+Fv*ͱ#jP&dLl`_[oeR Xչø9O_>[v5oy[e.Y[%~5 [Q!0~9JG6oKc! XHJϻP<+JL F@ .<. f2x`Fsf-~ 8O|fD22TFMÅ/b㵄iqOcĵp >Cf :Cmtpd7d5>l}T1/sK#oݰO['!IK꣈φ8WV&=:W} :uj1MqY^۬c#ٸfiuSft7=q+ȹy? 5,- 6zپzR$Aݳ1vV0Ρp X+/[/!܉' S`mF.c_<m/]i-&{@0=R /,MCBW!lD|^vH;! u;vzYPH!0">!e mG;kc[aNe cf:6!fYe p3X%Yx7ѐȏ[/ad.Q{nia[ A 0垹XY+'#*o{VJyAoNR1bSI]N,l,bKpScїVi5b2M7ݴjOA C!ٓq}s܃>8 뮻n% Ƃ}pco`d2|6 #E)?@F30W88\i1t*]Y{u ~A^oW7Nzfe+6FutWB " sDdu4KGS„rD|VG@1WB@l&">ofIk! nAyK[`qĥJ<Za(C8`ưUȦ&n0]PoX3֕&6Mit5ԯ| a՟hgJu%Z ?K'Hx|[]VY99/:Fԍe<3D"c°6ۦ 3BOmY/boué,X81=#Rc=Qf=Y_RSas[9Ǐ_m~e9^R">>H$yc_k=+Q[x\r#`L3s66<׵qVIAA)wb<^Zu[ ]hHSA@pkDKGW! C@Sl! v wy[[Qʄiq !~t%R#>5t1#ZI>dFO*I-P|-xmI՟h`D1 G/3س7WD7V-=kthG;3R6\rq1">%cHԥ3Rp  f ^ƈɐY3H>L'*h }uL_/t,pᵆOk 0qPgD,~.fq6ɯdC>_XazFZ*#%5ݔgw5׬ X`5ڦcN=E|h=d !sgn}-H89#_a&VDeܦ%nUPO|sw[Cț#L/_wɌ~-wX_b}yOt\(w=)OA-D|\دN)!PC@Bz/oBwB`D|F B`y YY[3@ղMfFZT&ϓ`Z,Sn3r_Kx \Clf$pB9ѱZkH1bpk.5k#aRqkO52}KYN OTZ ,] _t8o޽KxasN"'z8v#mjKo_W>%eܚ.@n\T6VRݖOcbxFwKr,s5 mYѬ?X yz4!l:&JA!<5B`WyWK^ ek@IDAT'V2D|޲Uv"H%(l<4K|n1޳<uI %<4YY06_;43|آqN>>v lY%؆/Ε%t{B]mc7TK%1: tf8Nߑ#GV!,ѧ;~I1es2hssz3b^N{V2I6g3́샦H|TK1ԩS N[pv.>{u/E?۟ >hB`2B@,SdKyK RB`rD|b%  !JY|v2#>3l`nJ#qFɐ>X8tQةf,h)[vן1 ѦϺ!ğU$꾴=ӦX;4ɓ'H&tD|.w =ϊVΊP8z- 89[ .;~41?:F̐L6oC 6Wf lN?dṙW9z4vZpXTGFvƼs鄶wۥj레/u0y5 >bD#7-qLk3M !ЊϭH)BD|ޑZ._''{+c_}K_.sZH{{k-_|ĖL3̽Sm_կ޳<< JD-@@-(DeA0 !6V_l5#;=Kg'!a{#&}_,g8,ןBj:ܗ! ScL>8}/:OoJxrm3 pũNV#>4@ߌz] c?6bq~lwfl":OqGb{At=}vgK}Wf,@# &>/*#&;{,-wHl>e{O_.">_6qIϯRB">AKauD|ށpܥ{k^@:~^7^t{Lܠc+8+.6>}=V=AɛD|c v vr!vyl86`V<9 jKCQ+ w,dߗq답tT FA]CD~+phh)ڑH_D|Ւ_/lʈA`k1uIo3HFL=R:uʢ@ܲyY!m`ޅuKÚ,njcGig苏806cݹO Z{e؞M߽%tMD|ޟrwlu4SB@񹄎 ! D@3غ+^!w]6ȸ}=Y;SndAF_w{ܣ袋:>=.I?啯|e&zbcXYY`V"B@l">oA!* B``T3±7==qʈGLg5#Zg]?F*cr<8;322h',y?ܳ0.,^'/0䙥S w}ːen=C}Ӷ`8V>D| 픃1gA!D =;q +ruR3Cu}n3R3Ӗ m$N\e봜^D|o>e 35g]{5GS|igܳѶƣj=Y3[bX:g!5^X׷K{s!(IB`ypWB@l&">of5i #0DgGvo|;_w~`e/Ї4}{wo}[/| 4̒O~r7tؠy#[N^b;yd]Ѓ'=giy9e!MX6">/|eͱӢ씢hcFFZgN>'kŌ}d m|-xF|<]KXx5#U&W5l 95:V?b!ϱl"Yd.boa)qC.aNKuNoi*?c89r;sa~+{7 말f̔Hz~lZƲs$B}xOgʰ{'Z{e`?XoUpzs"5mpCqp< u#䄀 D|ތrB@,Qh==_\J Ov{V'QDjv'ҽ^`y1E!EX8">/EZI OhewF,@eF?ЭnuQ~ѓ`Z^5;-O I3^5Nꄁ'woÌuZ7Y?]V;N|njɡ0Ztf]wX5gq?|oMLzom:{.rihs;Qge+[0">Y R6-%'cϛQNRe 2at-wSiO{k?VdlR 7@=XX׾{L-先K) !y%$(!ЇHkhPbs=+FV23>ZDMևxw'BVtS0=!v0k^ vY[)߬~d$gW߉=^=JO_4T5sj,P?G@ސP=X=Es+i(ӱNüUN1">Z_A&y9N~1|P1h׳OD|Oˁo(u!B@:X`)K؊\Bgwx#EG?~v{'zS!`>:7~7Vw{}3)];Q RB @@ ($(E>xqFBH8 8ca&(Jp1/D)}fHHߘ]diFxeu cލq(Dv=ҕշ>Qgv ߖ܂4aЏ 3Hx^;~J-Eĩx ~sYO55?ýݏƐ֏;C=2D|s8/诰䄀G">{ֻgkL.1>">g5D~KE@祖B`RNB@,Z2k'?{3"2h?Fy74zԣս/h&e]rt|#+p |+ɓ'R'T|D|2T.#Зta.-.c{]Fr6oMIiwV?ZS"F+#>[~A/S2`$HcI8?E#I 20N5un'b.\Y]hm8))T}өy63 Nz|ZNa>mRƢSV?1/,G@嗑4B`9U=yc}m7I66s>v򐇜u\J ,t\pA'>Pu'VdgGwxV:0d]|__OFE|.wB@[,t'! O}8H Ao;.)^e,#eM.#{ܦCٴ:# kN L;5: -_LVTdmڮ1|=߂Ϸ`1Np6_ EyiUG6e) 7_S@2E@q4! 6oN a~lIs~}~G))">{! -| B@0;܇88vrz?կ~uYпۿ |`WK'=IU |3#:կ~Ww'~b`6N>qDUTD| YB`yJT#E1E!h$`{+6xìcK6}ʰg-vڰɶkFe?#4G"*kīLj%2#xzvf ?Bx͕ 4ŚR޳vZ~{p\!.qiO\܇GpZ3~߈cojKv700l<:(m~vv X">Ws]gc%b{X~rKM:! K+#8f{/SkRWOtg=>VE?__%+sG=j%Sԧ =<JH G@ /@/v#D">g|g' {<3m)ǖDŽA zX 貰ҎDT&f) lgf[Jr,W:<##^ĵ&k޳vU"{ X[ԩS> ">`~_8e$lcLj8l͋޶|m%!0%">. չmo{4kEJD@9VZB@l:">oz J! D@9ў1%AxqXC%v8~wo{Vd<9G>Rމ<,! #v[a9O{?F̌yp ·7*3=Z*ic?S,3*w,N&c( >,Nvu 3nu:U2Z&ae[+n{D,-a 13}HY_bweuܼdDWBhckE@-;i.<l uG|ϭ-M  BZ!  <!0f?UJW'>Oϯzի>_x$$?+r#Ig]tQo 鍊nZ>я~ EB@ \_vtK|DL迟Ϭ<šhwV/jذ>uM|U9%/;$>8tЊ<ȑU?6?ڣG"J}σoW1O"?amnB`\m{e를[,qtuwd.2ʹBl7B#y˿^!~ы^ԁ׼⋛Sé8!yȨU,߮Hk6> |Xx@w 74= oxCn~QiB@AĶ__>#8~zB@, >q#ʃ B_J'O@d8&#N.:0O:xL]Kl |ͫʖ>ߣlA,!u$ow Sf'xC~JrvoϘ#ַǽ+֘c|'poЮp -L@]~8|1sy=HEQv-~k'yo3cc*9B@l+>rį`=)7 vuՊ᥵!!A.֋ap.B@O`o M䄀B G}SL+D??~w~{'?OSl[0/x G=Qݛ}5G>FO|/| <:EB@4!M[R ! ~Ay,#0׈0\ɒ2̈`D2ŏ I--# w<; "s^Kp:lc6p]j=/~ۉt;8yj@r36Kux&=D|ކRT CuRm{׊mm8(?ϛ]~^y@y1WjB@l.O-TG? Gw~X|{&_t_e3?3E]Խ86$|`?({RpB@,8}+8OB@!Tv)}=rHk+"$pF:" i.#Z~% K9CF;o+]?g^o b5+[{KN+ć-e!3֊89Rl0N9w*07oa=>qa,_W⮻pgc*cm7fƆg!\x{_߻׍B@6g<Maνvu=ԊЏ{'JD`_Bkk1C,B@l( me! FCnr嗏&EN|nAi08A5yM~{S$~线/uzӟ=)Ou/| [/;=>я%kHG6>w|;Q! #r3~sI A!ЀH(q?? 85F.lv~0f!Lt<.xF|>>;3K;|N8>scOa'@×axu#j~q)N)A0syˏ "\z??W_MB.'w{v4u]ve׾=2%>>5Se|s䄀B#p;qLqUW̡aᗕv͵MKmOdװS~ֲS/G9i"XeN8q/a.L]#W`=Wv9ybz׻j,j|dRǵMﱈ81yLS<_W}3ف> T{<'sK))B[-D|VMB`.pBMU=5rhW'''Rap2's õf0Wͱ-(̸< CutF84ѩDDϛH| 0 LC=g8~xqYhb؇ѽ$D|ޤҒB@7">[-s]HmOdR4!ЎX)B@g! @;">cQ!a'>{ӛ޴:AUzUoowysOӞ8>~_GG'?I*G~闚ҩ">Nф9t2,fC~~r':v*Ov_#">~ ?I0f]y啣N2.pRʧ^;Aϗ§v_#VDt^?+_iO/؇hS>{;="7hg-c9`ZtrkdX%6 6 \<.-s/'0n˗ւrurW5yWK^B`">AMqUD|ӟ=)OpbNIweC:%0oe!D#y{??KBSH [u˙D| h%## 2 #BٱJ-dVpZdى>o JDbv{/yNUψ^~_iu,/;Nw){u`vv*8kW ~IglP>ƮsT%\r!>RǚWxB`yctK+.]>Ҏlc8= ynĕϛ\z]yngL?~p"0e/uz׻Y~ Pe/կv~{G;;s~wa<"oc"g=>ٝϳCPD|ЂB`Hc[ʭ0Ȳc}`+VU Z ˨&-'8X܂ ;IM\dm^<khMglXze`mfw7[0]o3{^_.lWCCE> o">oC)*B@̅"]l׉-sSgn`#9;?\b[d[q -ԅ R.P*Dh@V B 7T)))W(rԢ:C@)Qj'}r|g|vqfg癷}yyyy>q#"! a  1  bϛfW[e-oy0/ K8kVy~ի^y䑆cs\O YuwukԻ./;.iV~M/ꫯVk_ڦc@*iu \ 2~Ѕ eEONyV~ԅhoV M󋪄.p % w|}ӸVlд-kܳTQ— ׄ#ijQ&u-ݎ| >tLo6OE)2/ ^-Ys@jŊ'}u9_5I|--&|6 "@.b `gPnu뭷zWy衇}%oCzֳW\͚7NtzJ[zӛyy{?}Qu 7 .rػ< h˸~W~ś|)umyuN"\"] (3Dr] V.Ę'o*`(n`7RYV0JӸc ?zUHo}spx$_=7>sqgyV^X[Yh Wfgge2#}>~|#`g*x@dV')|+ף7$G~>Cs;Թ&Us]+Ǹ@ۡކk^wuoV|3췟V}?kRg>g~;mG?^('>{lڝr7~7lgΜQ??<+' PS5-FpRQByP>E6Qoԗ>5-HOcuDz"ik៣ _j8|^Ե|\ϙp Mҽ-?KHMȈ+ fYsssr'NnU^3+?x>0M uM@6y~rg4ߛU7!Ss;6Ms*x@۩߆kW_}F,+2giJV~E.u!cAG|q㢬y)Is-x2QCCC@n<" >/GHE>n s_(z\|V}piMA>[k#U\('_[S>Zƅ& |6* L ljeWm>׶t * \18C7v+m2 bj7[}؟c0/0<뼃!l~ߊ MmT___ ]=*t:695(n}me ƅRj"),oʋbr+_s~0՛ϖ`eEӧOs3Q[F ,R~!PG@zEC |٣{=+r I~_"P"5 l l{)@HMB < @t9q. …cT]*nLn LTHH%췸JMQsp~ƺ:}3tpp02_ŠrT7}1nqܦ >ˋ`G/X9QjVSSSފv /?-u \ 2~Rsںv4Kpkg*x@d&W!iM㩽ڗ @E+2X@WʲRu-ۮ{)o*`9x~0sm սq(oȪZ}^};"{9ٳgե^=Ÿ< W_}?66?=[[[ԩS lW7q#c خqr] \&}!u*^' u lN- /@1B0G9`$|LJ \:1@qTݛ9ñgcԽ7{/++0?Q4/\j>* ~uύ+>܏{ 9`癴_ĕzó,g?[,O}b%,+v>}Zrvv6Cj"3`r[^y8\ \lՃwDυmI;pkgjˆ@\ֆ!yͫ ##@e+BV , OBfN\HCw?V _ptd22_Ь_I+^~}o*~5ui]6sEV>* g\+ \ 3A >[PD@q祥%/dBp wi%{JAgΜQ?px-?7"$nzӞ>D"IЍ!mmM lw1'{FRyr| y /lE=nβxju!/[BJP;nV`իÁB8 LWԸqϋ }Cs@kHԱy!.קEHyff$YŹUQ_$.fg\@Uϭ 69ܹs'~ss-ͩ #A3>YFf |6.k\< |!Y@񃧙;qM/**,6JXI5SSB}'?QON{%/8`;;;JV[syN7?T.?vww7y7˘hdHܓYiʱ=44䅜kQde穩)5==]帆ej6~~ZP2Т9 \|u%Gzs$Nko|v |* gK \ +"-,*SJ@,ꍔΆo7jq~x6-}Mt}jsgYuVƣ[9X|yo$P,oDp We@k_B&`@~W'<J~$4g޸ՙwvv—IX枼i%so"Y\\,eg5b#܂oD>,s0wvT`Yw̙p7IϗVڋ'sHD}.@LюQ/,iEquuU \~#uUWy~!E@{YXL lru&@/F(y'5G`vIa|6~Y>gXp]_I, liaq-WƋ r8lbR!tVVf|ͽ&2wYk_4`x9ip:; 7W~|4׬>II'*I{Ȉt85Pr{Y6uQB+-uBuL)N"@[I缯se' Cs4NAg>;[z&9>@>xJSC4OUaФk8t(߼+| ejG~]$RJYV7#Ioƅօ>qs"8ہАvsssn ?u]<Mi|H(NVrYV䙋jkk[Y\g]u2lO+y+mM cBS>Z{%+bUކ| \4A>PE`g`@`9/ݳKb φCGY0] %Ki*2r][Es"|qOHsN\\c_nWQn|7؋%<;;+87V8-Kh&@ٶ2(Ss%&O|ɰ&T1 @]>ץRL lBU*'A>K(\UϜ9Ov80bowvvҒ0խM<U/ܵT+GV 6wn8 3_xh[ Soll/} }Wu6j2###jll԰OA2V&Ua!zz aa-Z <[Ws}k@z՛sE֎*@0,0Nq%a@ x4:Y2֬нɔ'pJ/\ Kh酭5Yqod\]Y;yjIA]!p544urS'6Ą_d %,+:W>W%u@϶Ty @PAϏ1Y_*>W5@϶Ty @PN |vLZ "P@\T.]ś)q+SugYU?mVV|6]7)OOM:lg Je7d #Îd'u7GҴiΉ i J Zm\nGqR^yffF" |jp*^r*^j\>Ք!@y˳gO}5eFm pyڔ:(:͔1HYg](Y|^8?XPnuuVyKsp,F\ve^:jqoJ >˱Q`8͸iϲΓZ:JQmKX~ee%GeU͋~zddD]yr/׸%,^Y~yD>Zƅ |62 L lbU4د M lru&@Aw@IDATٴ00Yal \˲1hh6sIR ȋӵ*in^yGVd e}cȄೄt%uϋ"WiN >c> 30~],5Z EMSSSjzzs<>G  `g{@  9|vZ ܺ!= ;ݩ53HsE\j/@%d $M >ollx!`)E\(YB 7YWB}ini 'G/xܗp]Ϻ7sJVN K×1 q#DxR9211$,fffL^9i؏4 |n '@9N}e ^k!\8%@(IA>PeE |.J~g  @:8 v$jxR | nN|t{ n|qI𹫫 *86ߟ,?Yur|| ;Gj-/|Z-@dF} nu5"YM B>XƄ |62k[: |!R@µZkiêq}K39?|ֽ,+*%, f#|}mg]ݟvu[DeU+2|P|KVtRUxq E($@٥j3WhUsG@ZKV\s(Bs|v \"}  . #@9]Q M7TҌA.^Μ9i%u,sIF+eK| |͸Qm8§7<& s\_.r9Wz+VWuHZz|  \,"mspvwwÛy1)A|A"#@٘R0[>RIe |.['Օ3 :u~~;.) ;w[4tZ+/gYzggs-KXypp0 >(K_9"P#&.'yomm):5;;}} g+@h? @@/.G?~1[4{@>]f>ghp[g%|..@JVIY &+Kȴf .uHKXjjooo.awt`W2 J>Gg +pwr ~pcϿeffft^]]GO"\ 2~ZKKj}u \1^h@uW~\-@c Pj(2SDB>H'.&tlR&%,/Go%eOՠwmi~.V/"r@yNAg 9cé)Å>' h?FцG @XsX ^ކ= @XsX ^ކ= @A)B_I/1,%j$&a衡Se3g4mϺs\I7 `gKk*f^Z!Ӳ]]]/Se"7ȸ!MYVzÐ/Siy-c *0::$%F\mkkKI9N>d4ZV_]] sq 8-@3y(@9##.?G3q88-@32>J `gʜl0!v -AA F|ܹZ' ɲ|tp႒dpi>sif<nJBK E6 1zg?\" L)` PuD>Pƀu \J1N0A U`  Pu㬍ڔ"@>\+.--UK%,Pro` VVV^#|~iuR QR]lCpym|| ;g]=n02VjӪvj_sk @:Ys%א @uJ P!30Laa8 `gcK8xUz4 Jp']CNJ]6u9ii2.~\q!&Wm!PFؙs8sG=d& P#@ٞZ2(_s\ lO-! )@>_"蠀 g$,.G5 y&+5K@8mVkKPZvYȕuv$+XtA#@agOU"@>\$@Nb nG: |S+[s+ l]I$@$XE]7ˬ>pۗuUa)]:5";bn\(VsҜd2' G//d韠s-%lv}'@ټ0"0W೹ad `gjˆ@\ֆ!yͫ ##@e+B8t萒4MV.,+fY񹣣钲-O(ypp0p< <ƶsYϡV̨i5;;$LCud P@S?  a  1  a  1- |n@ΔHsOOmR;wHp6??2mii[ :$u8-Aa:,Ax>ki# jttT]~1GZXXPJBDO}5eF Pr} lW= +@\_zG>UOf |.ח `љ2 (U*mЪ.|-ד@ >K?sk:RF29"9922Ƽ۾Ԕ3+;f͉kS*|6 j!@eb `gC 0@kQ&|6 Ԓ @wd > +++y.{N\YVEβsPrFq\HXV"cqkP!AgY93iy8ud P@.̕@ |a2Ms0Ps Ɛ@mFυm lke-@hQCuٙ#Yxyy9ձYՖep;{ӴVƗš೬Ss<N4D_Yέ,}vg @6ټ8 v=d ͋@mnן#@6ټ8DωDxy" `@܊Ѷ,|[uZB tN/&A䥥܏pwTkkkjwwvg]=e*6Eg,"SZ]]r*Z*@2-(Msit |L J \-#-,*SB>FKǮ |v |*/%\tן.(.-ӴMЦc<\puEؠ+ ǶZ Hȑ#jbb尳L|ffFMMMZ90>o@.vՓ @wK]d6 Pr} lW= (C@Z|ECPCCCM3M;0??mUeee $׽zqsΓVfd?$<>>rynn :KY~Ɂ@(!zz aa#zz aa#zz Ks.6NB>;Xtlnc ʾVFY\KΎ[psjsm[Y/+$칰:U|Kfp1/w[[[^yvv[ᙰs^I#V-.@uCz@w>Skf |nݐ@Ԛ"@[7>7p |Ұ!,0`tmmmMmll7~ӣz{{co5\\~8o5եs syll ;a`̌xC?8|sK]d6 Pr} lW= +@\_zG>UOfcg@kQ&鐀.+K(Zdᶴvvv›s?֭,Ǵe%Um+:[Yź+>XƊpZ"~YVv.r5j%)M@|K' @ل*0Tq" Mc@|Kgm>צT ,@t[ JxU>­pq?]HVr-iK"688UUٟ?g_[822$$%yWvSJΛ&L1X"@ْB2 Lse\, lAT&@2j.|L* \5rE+f ЪV9bz{{nu >/..t2=v Ktee+>wttx+Y;:x++rݸ_GGGCyh[ \$ +]4D">H gW*<@E("@ٕJ3>WFͅ@k^@on%e J :jgW oW<_KjI$R}}}>/٩$8|E/-æN`4,29711ᅞ|%A'OTI> gΔ@ t |vLr |Mlj gΔ \/#=%3C@|pe5pՠ壨[8x11|б4/>I9,6>>9O{} 9+<iqn |v |oǙ gjΌ@ v |v |oǙD |da# $@𹉄 U`ppPIH,ܖ|Q2"mKaӟ kddDyVa$<==YUM#@9 ]>sGq<,@3w*@9#]>s/Es)t |LÑ㗕u,Wb<9^tV:o:&a{{[9-}ݘ"V2.Y86XƄ |62 L lbU*@0 |m8T,@bp.@nUc?؜?L$|-p ,tS筯+|G~?v옷s+JΓJBτ*r^z Pwu G*>W͵@^AƏU |Rk!@>׽8ƕ! - rR )جۿ 3;?/^:z xlmmi/̟"DZ|6"R5Ɖ .yu \Ǫ1fhvs]:V1-@080HA`( :tHGmll5o.l%85t-BmgU=o\g?<33$!W-Fs1|vZ ܺ!= ;ݩ53E>nH gwjL+ \4A |} Esp䴡VX^JV5:, ?;vLgf0,+<E-d P窤 @ن*2JsU\l lCT%@*iggJD@E-r:  >KYᶳ6|VJ .[U̓JmSSS^yuu5)@->ײl (@\j'@v%c Fm P;ϵ+F6 |n#>SೝueV PMii{}9sd#%<>>:𼵵&'' pA Uf P"5 l l{)@HMB>^aE |.RxB3O@ tN@sGGGӥn獍 0۰gJ*y+?;v < Vl lcU)@L]F>VQe |.S@6϶U @ԥo'>;Yv&9>@Jy~~~.XAV|^__Wlաm<ܚ)eza籱L {o!."@ِB0 ڔ" (C@|M( @ـ"0ڔEs]*8@]SiYO^ >+/̺#k% ?{}}}>55N-L |vLr | i, 쨥e &Nٳ ;::`Ν;gm*n׶;ܜx&vn |v |Y g7ά@ |nn |v̺D%5X%@٪r2 jyyyfE8$&וjwwW>|۶ݑ1XMJ'66UU~ S###ms5qA Uf P"5 l l{)@HMB>^aE |.RxB3O@ tN@Ֆ-|R}}}T{{{UOOgy\V~7a& "YY>>ҎsZ)sU೫g Ws^9C>Xuy><pQೋUg Ws^9C@#@Yf@ $@9C$v%+C릡 63gΨ ⢷"t_]gϞUϟncV|wMoQCEYg&''թSj9>;Un&G-G@ lom/@xSzD{>[[f |.ޔ #@jϩ8R >KYBhQmmmMɊQm~~>jw|ggg>kggi >׳RG333jss3w?K]6sE">H gW*<@E("@ٕJ3O(Bs@@s @v!P@tE olloouw.^ E>\xL~UVyem,+@x|ay>QpQೋUg& >|XI9ܖvf]x9M8YwnBBh >קU4ii555A+>k`،h߷#4@g {@@g {@hQs|vLp*J^$x-lړ~&H}dg|pfff[gԊ"ͨ@z|G%!@ٌ:0 zԉQ"ͨHEd* PRy³mqqQ6l֭ڜⳬ(-묍sFSIH<|Ioeմqd C@'>4@ |Noő g @z8 s> Jw `gkKj&%<88$HnQ!1yϛjee%ؕ >S~yFΣ/=ܣMC>gK `g;ʬ@+)@κ2+(Gs9v |̪ۈϥ@VkU.k,/hO |n3|aa <ζw"\G>;Rh |.@)"@a #p@Ef P('>L@ |NQ)[YBfC)>7|n⑘9r[9w߭dgT'@:kv| \3WA;>QGf|ƙ #0HA`( `g0=666F4 >'u|1/U599777vy SsN8NCg>;[z&9>@pVೳg Cs4NAg>;[z&^dl l[EOT*\YYiRooiڞ2seiY} eui/𼰰Ph>ki؁D |da# )@9 @H6"#Y؈D |da#>LpK[ff ɺ sY>|Xᶷ:::›|ާ|n(˽³eu癙EV/@9g"ݬ;F|q)@ͺ3k'@9g!ݬ;.QstV |LYYYtsΩn[ύ$=Zy$oHgdd K `g+ʤ)@\$@Nb V|cps\S|`@"ᴨ6??m[+yǽs___;b$"@-\j,@c Pɹ Xs@rϕsA)@̺0*0Oy5aD @{ \1b>^ |6 av%ѡス=}\xѻ _;\.E9[eug <]YF99G#`gX@P%ƈ|6 @Ub `gS*8@P%X+ϵ*E6 |n#>FgCVo 3+:7n ˳֖>677Ksh@_F \Z1Rh׀ @}>קV/@5` |LJ \-#Z`xx8X] _9$9uɪgΜ oq'v_zo#JyvvVMOOEو-Ms*x@]u \j1VhvW#@>שZ-@ |LJ \,"A kYzNU3LÙC >K-oHYҶ/,g!]'A>o@Ԓ @7  `g{jL@|s>;Vp>D ȳz\s!:!6>>nTU555&''Y9X#@ٚR2HsE\ lET$@"h.V|L* \4qG;f К8V,/TKh:nxR}}}M777Jv6>7HybbyGhO<酞Cx |L J \-#-,*SB>FK `g ʔ@4ϥұ]>|XɹᶼÛաCu%Ǐ6FܛSN"a&l l{-@hQC>\]E |.Z@f6W!@?>;R |N a\yggG5B e###JB9+xz<q N)#@GzA7>Qgf|.Ƒ^@ nԙY"@1q>Sp N2 Vb>{:|S766Zut+>r -gycDB qԶԉ'taC>[^` ך-:Dl lS5 -@laG>TMe |.[ \ə0  * ypuA$JY9>>9siuuUqjaa! g t@e-8$@١b3UhYs˄t |vLZ 2! (@уG NNZyy>QpU೫g Gs5A Fs @whQJQ-k9)ӣz{{.u9ڴ]|ӱl-,oz|-eI%g  > ,@9و#@_/- ,@9و#@_/- ,@9و#$@9#.>S/\ .[9).`M>ol쬚][SJ&|K 5)%A >W% V- ߎ3 :tHɇE,/8wtt4vww>|9*`M,+:KY@4(q  @3  a  1  a  1- |n@ΔV 'w%,gݱU+%|SǏW2<99I9  )@9 Vೖ @&6 ZZv MH؀h>ki'۫~[گU}}}PIxXO}Sm I|nj. |v̵l0Ғq >*buT , >ooo.#P)!ݓdEg ;̨9 |ɰ V@ Js @h.lE>G  Z}CRCCCQ/^TJ~G>ot77/~qsjr>`xs >N@ϖi!pa%!c]٩}ݙ3g M| ^೼!~A2le'N4s  (@9@ <@b>h @ Vs,;@ o}+ m/}IY5\n6oWYO/xυ0 8 @ف"3{'YYVɺơC|Zx3L>7txNF9~V6c Ws^9CW>Zyy>QpU೫g Gs5AW>Z7 򕯨?JVtUv+Yy=y?uX)믿 ?k)Hs@'>L@8]ٿ|֭0X6^ೌѣjbb"~{:yf/@q&)@ͺ3k'@9g!ݬ;F|q)@ͺ 7׾}o>~ejoo/"vM_җԣ>d>Ck"@>ױjDء===sΥZu_I5Ξ=Ο?>E!wL >KYBQυ wqZXXH: @.Ϲ8  p:d @a#@fϙ8 pNR\szw%\deA-oy׿wx!JV>K"@>׭bTͭӞ6 +%sqקl̞u s@> gjΌ@ v |v |oǙ gjk"wtY… uSz ;[9+؏?zы^{Vk\-q28$@١b3R$ +㸶I\?!t'чV7Mq%<˛Y<;;[Y8 |+y gW+ϼ@ 򑏨)u-:'AvSy ap@EfBC@wwwښhޠ[e:|a#,?,OӶԩS,gi8 \(!m0C">I_ `g+@HEj.@ 4%~׾/"U\s뮻ӧ:'A򗿬z{{Ս7]/O?EC(IA>^aW@ޞ@j S ߆#/jwtt,--!) >KE/=s=q,"@V:E>[\\ |.@b!@ 'CX-rj}k՟ٟyA@ɓ'ŋ-A2_rw#S(q}|%E>sMsڜ GNc";ac@Q5116ͩᄏ!`: @+b `@Y f@>gK `gjʌ@<3'@پ2m'?%\;$HSt/JկV?D>g&pTೣgڅ B -,,"ࠒ@XeY9M­=.3,+;=zTeˎ3 0II`, PucDS>R Ɓu \*1F0E)` Puc|{ޣnS\ ݮZ|@?Pyk>Wsq8(@3Rtł9 >?X#744> _}aӅ,PtY;r䈒s䤒榅L .@d PŹYs@jUs=:W#@L >q~z[ߪ?]FA @ >נH sx~ Y|$×QkkkjccC=j¡Cv{ >?Oo/G}i;$nkkK-..&q뮻.bO&߯+y@:H罡?O0lƈM~C^tR7@IDAT @|)oJ3M @U.yz\4[@O@ХɂF @ ZWI><9y>~YKcX~%s}o|D@f MLL4LQV]XXh + }v9/;ggg[9M_rX-pycE*~sA|^ZZR5E3uIiz&3Vgϕ@~_WW7p  @ Z@ !FJw[%/QЇԧ>=~UرcI󫮺J}_TS@\sq qA?{Pt9)@-/tww7 G6$ | ˋ^"u饗&^GSSSvl8 @9"O|i ފ#@<@[q$ @@*??W'N%+-i߷-~7ӻMs^cwꓟ?Hn|Iuu)}-s 뮻a?3 "<@ ^@Q⨳dUou+͆K.Dɟ܊jnl|Zv >24vi??j~~>P# HY4YY. @@/0<<)D ȊϑJlD3LV|晁~~n}gϲⳞ= ڳTϕr~WoWݦqddD}W>:zhSR#/YI/~+:ձկ__*2A% (Wauh _?(+&&IC>`8"x%{zzyԉF677U?A~M7X-u 5=={;@: ȟ%M~G+ P//_svvv>w@~~A9~{h|[@D@^ϔ5& @ Z@.MICD__L0vĄЇ>`׽.8穏WG4 oPrҗw9c>W@k\׶t $@M\j)@ec &m PKϵ,F6 |n|.g<[X4'Ne/{7M794HCVeʏ?|4Uz JXsЍu,z%f]zee[೮ > ={ɓY  /C>W |68  l\I,@040Nq%1s@ZWeSN%?|@y睉ǧ9__VzkS*?s\j*@𹦅cF guaeY9J̽^9 =ommygh@3@ V|9 ފ#@<R oPrw-t萒p؈ Dq JG.|NzBϛ @>רX  lDDsM 0@FA @M>פP  lD1>|"~O]wusۿn{^xE+;se\j.@dmn;;;^Xnn_uc~!cUiiB']@ |Y.]sK@FkT,m 0"@>fW3oy[Է \z^8kVy~ի^y䑆c/}Ks\OZ=f]wݥw[MZ{`w|ns<FsmJ@  ːˑai9>J̺1HSmjHRo =&@pHCf PB H&"@F:AG>;Rh|.ѭNnu뭷z~衇}%6}llL=YRW\qFG{'ؿo7M穏GU7ppႿ˸[ƕ! - ê@OOms?d+Y9 $Guŋ̙3ؘ,|7߬dҳN `g@ e'*@2/(Cs |  \}^wu^|UӟTw}ުkkkێ|F=P՝wtLpG?Q@'>.|6$   lhaVm$bp4ݾr|m%N ϣرcza'X,@25(Es)t |L J \ +"--,BR>NFW_<ȜeJV%| \.} EYjв|n;;;_oOiUS1iSb=l l{-@hQC>\]E |.Z@f6W!@?>;R |N ahtcEPlVɺvی|~ _چ (!K]6sE">H gW*<@E("@ٕJ3O(Bs@@s @v!B`pp0r楥%ёp:#M[__WA. 痾OTsOq,@27(Cs |  \*}"m,B2>JN |vL2|΀šD GlUj~~^8p@ Eڸ֢v%nQS15$!Ǐ} [[[;PG dٙ4 @;Wr&-|nS@9Ε #@ [T>G h l ȊqT4]0:VL%dMK/p7f @م*3G(Rs | \&}!m0C">I_gppZg QsF0G>;]~&>gp>' xR3 \~媿`JiٳgyLڐ5HGUǎkްN8䖆 (@уG @$!#O |~ʂ{ @$!#O |~ʂ{ @$!#QsF0Gg>;[z&^C|ƆZ[[6g >HT0Kj^':Ą`{REt(@'>;Yv&-|nS@9Ε #@ [TpNs%g Ђ8(Q*lC>7i"tj 9mz~~^.G HD]pA}P?+=pVೳg SsN8NC'>;Yv&9>4pR೓eg SsN8NC@'@Y'v@Qs"  GG]gqqQFJM~Nz{jc½G;꼰p@w>[{f>s,pS೛ug Os>7B7>Ywf>s,4@>7pLsp,Viu2!|M7ݔzǧ֖7 mnn'? @h"::#M؂>d؎4 |n6a   a;9>4pNs%g ȋM=WnU1QZ $wuu%\,K05<77>ϪU%5%3#@Zi8xR3@ V|9 ފ#@<(Xst |LȫT2tRky4"Tг'''~ >SpH H @ cy؉4|n +@9 @ к  FePCCCMiIdY}_i`?Put}a{֖t>ysx^"G  V@ Js @h.lE>G >ǩ gd źÉ:/?kmllYu\RyuuUIyffFmnnjNYK@Is @Xϱ7p N@As@Xϱ5 |a/  >|..@ NI p!%,TkQwa%QZQo"C2?&V1!M BS>Zƅ& |6* L lje(@Ī0&0U೩a\ \1pXs\^4`qRY::tOUeuiof eg\Ͼ @d#@]ggg  ! #@9] @Hs @v!Gs5A>Xu\.̼.;6xښnu_Y}6J8u-OY"e; ,@ل- @8!=x |a (@уG @8!Cs4NA'>;Yv&].,NZYu^a7z >@Qs@8q:C hN |vL^$Pװ/if9@rRyqqQ6Ϧccc㥅ŊMe |.[@6϶U @ԥoMme> P2ul l[EO> j"@&b McQ.uߒ%ٲ#+V;% m p;Y\Eb,0-]Caf_hڕLgJR,L'0Ki)4uEq,˖eYwG>W˾KCCCvСrE:\& A >s!@sm( sןC@|!|@|3{@6ϵ4*@|\@)yvv9Jk<88h3ldd$j|Ў;֐">7#@9!f@ >7 % A9 Ef@ >7 % A9 Ef@ >7 % A@+@uD) l޼YŋܹsEv53)> h*%fG˥鸒<33c6E{nTB|nIځ@9!F@|n$MڂN9+ F@|n$MڂN9+ F@|n$Mڂ#e@:qLh0=Ν;㲃F ɥ~JNE'GF|n  ϙXF&s a zϩ_B&s a zϩ_B&s aU> >c% vkgH #088h===E?{MMM+s\DjI6>>;4eJ<>x𠅥GFF-[1s(sWC=qD=MP@n >f(  H@n >f(  H@|`@iϥpl۶ͺNTJV٬Eb$~K%IsMOO*|52 39[p  #9Zl  #9Zl V@|^̓#@ >"C>J(YRlrĄA*O@hz[VY#D|.N &> +3 Oٓ` @2ʌ(@@|$BL2#J@&50 c9^|^p6a6syҾ}lݗ3cwI PseF &> , 00 !'\g! >i@|nDrA9$H9fggmtt4rgz%8*{={ ك>hӡ">7+B$ueV@ >7--C#5eF@ >7--C#5eF@ >7--sNiC5@|rN׶nZDa-XKݢA'4Cb^@x~$СC57,BY$UeN@3 >7.mCY#e>@3 >7.mCY#e>@3 >7.ms.ICu@|UrM`-r\hZY@aaC(O<B@|` 4s.I6ԩSEdسg)ҳriff>;qDb-?rtsCm!t sJaCm!t sJaCm!teY^]4s#iV Hx("6哱z뭶k׮'bСC6==sYO@ >k- ~_Fsz֊B'5`@z >g) ~_F1[P4sp 499ilC$ps @s(  >WB  6;;[ EFK¥xؑ#Gرc$*ωZ$sA#%a@@ >'xq 8ω[$sA#%a@i'd@ >4dMW4!>GX ;8phɇJUd&@)ϥȐ@ s<r!@|B x\ȅ G9 y >s!u@|!@|ق35عsglfCtEz \.)>XH"!>'rY P ]$sbA $EaH@b >'vi @ \$sbsZWqC&jV]]]m۶/--*ZqQ<33cw8q9p@ hֱ'@ ӿhֱ'@ ӿhֱ@|B3M@`׌rBf;;;kEy̨Fz~СC6==ZDϩ]:s% jϩ^>s jϩ^>s jϩ^>DI\$@玎S^$͛/ڹsQ|Q;rH >~  B-MW@& >gb "-M7@& >gb "-M7@& >gbD >'i5  dY%& 煅[ZZJr03=IזyN3>]C#%c@ >>]C#%cI'b|@RdM|7Vq穩)p-..&e GJ ZOOOhlzz(?z۷v]vY5QI@ > +" +(؁ PsED By;*@|sm( @gɈzS%R pm۬z[ڻwٳ'KaY57 @<|8 @ J9Jc@ >f@QQ"C(M4@@|k$FTrC D-[ئMj^y;{iK@9;w==22b&k.[l֭EYF| By;"\& A >s!@s( @k@gEITE*L `i{zz(ϒjMVmjj&qv5rxx86?kˁ,,b̌>|؆JIu>sC-&bt@'R?&@I!@|ڊ2@I!@|ڊ2@|n0@ %,>͛Fŋv\Em7$~pph6::Z }(~+MwmՄՕe^@3 >7*mBY&en@ >7(AY&en@ >7(AY&enm!t @Z箮.۶m[E⒙;::6={6Vl!k[n-g)ѣv1,',.sMDi:笯0I4i :笯0I4i :笯0k9#C@ *>aaaΝ;gȫi6m "DK.lbb&''\ѤDj'O?9Uy!>i@<|8 @ J9Jc@ >f@QQ"C(M4@@|k$FTrC Áu,Us\ڼys V-%ۉklеk.3+W#='NDd9 @|n0P2O9K!@|n L2O9K!@|n L2O9K[MH+ϥ"JzZ)uuu֭[Mri~~Ξ=kڒK`ppeU!@|ݒ3f@|n6aڇB k"=QMR-[ئMWhSSSeq2v;g}cϥ5SRn TR硡R3%f@ >7&MA ef@ >7$@ ef@ >7$@ ef$J@ZRxVAM"ttE;I&@)yxx8S $Y߿ª">Wi@!!Bs(@`3 >Wϊ TOzV@UD!@5yttfggk^Nꪫly;sLtODhҵsESy۷v]vy >{l!T&\%  >i@<|8 @ L9L}@ >Y@aaC& \H}vHMQ%֛lӦMe+ĄMNN-l:00P4 Ӟk{1ͳ\BzL2 T"\!&G@|.GsV@|^̓#@ >9@ >Lyi ;w]Z2{{{:::V[XX詩8n}}}G4I|fx׮]v-֭[+y5"<8 Ps9: PL 9J@|.E|@@Rdȇ PL 9X52 #VJ0-VI#P* ~둶$i[o5$bJLȁ Ps)2C'υ\@q㨐@ s<r!@|B x\ȅ@FGE@ g(>`JI@~P-[ئMjBiXU= %5]s4:::]Mn433c?^h#>nə0 kGU@ sLss.ICu@| \@|3f@|n&]چD KcɨN7o"Ec4⓴}vM88mϞ=ѣvر@/[0'sLs]بsC5@| @|3u@f5# c9^|J@Q|.%"+XS+"a3h ^՘%+i_IWvQÏOd۝;wƢOZ>>pi[)۹s*y\/?j$\#0C'K@ kEQ@ s s ( s/4s UiLh0=$WZKIݶm[pdd(?IƮ]l޽rc2g.@@|%!3 >Wϊ TOzV 5@|n0P2K s)s4B|}򵏮Ӷ`J|%;כ6}zڕ`z43Jlv@V188X4tE-ogd믿>ݺukU9vX =WUBg.@@|%!3 >Wϊ TOzV 5@|n0P2K D8AW"V&ɲ"riKѦsssp$jd+m$1K.%M/.$h9EINBRDgEv׵$СCvĉZQ@|2 P=YQ >s@s( @k@gEI@\h09@ ׾c7lذ"8N^{O& Ys*7==D[]<nԂI9ά! >ǍZ@> >sݙ5 PQ % >D @Q|tWghv[%@ks;;;WmXN;ѽPX,"U۾_>|؆B1PȂ Ps 0dC(A!@|B K!@ (dA(A!P/zQ4;w]f6CQ5煅\7mڔ$dEV<9<1,1`%N7%[޽{mϞ=u?22bw;wTL2 T"\!&G@|.GsV@|^̓#@ >9@ >Lyi ϊ|5ĮNI,gJ),0z>aӺKK^HhqBm^%ekmAg $'N'OkJ2 !T \! >` @ 8 @ D9]@ >WiJVbJ md咤( H"Wh1\-z,..VHdXV"m͛7$Jbuhk<5JY g圢9Kt~ǂ$sR >7)-B%ݵef@s >7+B$ueV@s >7+B$ueV@s >7+sC5@| D@vwww %KԎVe$vW$<u}Tl/Gl${}w;:c > Q4'9\i&l+Gyli)3Gyli)3Gyli9sL@羾>#&''q5qv ̊,-9.Ib "GK&IA9jW山 ?$=K-fffرcvȑREo&@I@ 3L h&Y@ 3L h&Y@ 3L h&@|3s@6Y%A@)-YZQ%>W|Ŧ_kkovӇѥPY"6[˛ t@|N1z@[Ϝ!@|N1r@[Ϝ!@|N1r@[Ϝ3N9 H7MWi||JZQczC9;kL @|n gzA9, @|n gzK`Kw^u{acѩy;1>m9;c_n*dDI`i6@ASh)zo>H ۞={J%sϘ @|Z2@5[Ù^ l@|:2 @5[Ù^ _??7h_|r>w|Ų yYi2-CMG@ M|޶muuuQG|.BBF ޽8Pr>;vyNsk8  XGfsX ~_CfsX 7_uӀmZ_\t~>~hb* Yϙ]Z&."O@M|޹sg,⑑[ZZ=G&@@<.9ԡ!;tPhֱ'@ ӿh-7@ ӽ~h-7@ >{Oo{ .NЙ۠" ,@|*2D@|Nr0@ ">'2C@y"=1gHڣ!@i#c'%b@BI|"r6::ZOL@-,6D;33DzLJ#O9k!dĉ 0 [ظz;3_dz,^JSL ho6{Ɔt&AH 紬L ,L MdÁB|nED5Ї0m%EzFv(G=Ý^!t@|N1j@}Ǟ!@|Nߚ1b@{;;lS9H~D%詘M]l{ĥ酥 y6-.W\mn6l|Y8eA~#ӱn]| n0bgt@IDAT\.VVK Fu#>Q%WJ~}U.Tߋ\t}m/m#&&&L@`ݶ~<[*)C㥊FmO@ >n0 fm^2egq!Wsᵄ$e%IqrC]:'3;w-62\i97xՠl ;:zfgg<%K.¥@& MFKlY$^m\4)>, 坘[kcKI:Z)e5wa.kmۏ1O@u's] L\F$sr׆sf83̆r[HV$+;&fnNcU+,10qȫ@gQ ==]Tfx6;SkYf](uZZM*jQ0v=FuPRs R'ntbD8u)|cB٬p*(׋G P7q)6!)N|cb8zjM=c'Uոg Ռ1:o݋}:(p9OP埇qs.!an![^ב/4.?7w޺!V4vS[u׶njFz殠fO.=>֌i@ >'zy\ >q3 ibѳgT;'JEvYlH9 @|N00@ 0 %:I%N;Y(NS/<;GaUM^Ub0,qIL%4%#\6/GX$% mjenڗV#ycw9SO‚?հm y!.X\]k~}˕t 蹨kkak]nIsSj]V zGd7pqqcW}]"Êk0Q\CϗrRb\=͹GQPu\*+Pib%QR|TSZ3*߬$˭g6@st$fuV#G;ٱ[)sӭ\s =K4)3x P| [V֪^2Rz7m eoY"s K9 s @ASl=b YphI~]{5رcT! s:׍QC#^6k;JQ3*! d= w-%I(Ya)Q؟OVF99:NYNg=mr m AF۪$hM6.*VG˔ت}Wߖ;%?7"l5Nzuچz'#v~fnU zȰB5hZ&>*Zt'aM̶:ZYo}=_['W4Ilu6/MZuh1v-cnrdѰ1ԑth̫I.*vN7Il 4۴|g|ԁ S 08 s 7s > iong瞳h6h9[Clhh:ng@ }f;y\ 't(]/)H;JAINѶIc$B8ɩthXdD?CG\Y}{5 9鞌q_VĶRZ[Kpy,{Dr^B_;M+:7qIu*Iq֚md(ѽ6>J}u]$JxUO$R9I~1x_׾`NEß>)[t"+ 8*~ΨQN=߮O2]VTO%hpZe; _ ®35'IKC}kkhR}_vT1=Ww ؊  DI\s+(G >j, iw;a= ̖صkz&)433cw}T[r E`@jdA|f>AQ$PTY0+1Qj@\U.$K7;BY!ʠڔ\3.m)H?i. ',!ѭo{5hFkWyV#ib11_}K]וOhY5@ZUF?jb&u*]p%G=&q6j=HYKt,h1'KVs]|dWmݽ%,F֨@utPEB&eXי$r׳fkTX=#xm5'[1=JIk!9n縲P5:.:WX/R3Exڱ<4>x0 Ih5-ơ7ڂ @"9}K@r >'wmYJ >t6 r-GN$w^۷o_3{t( XF@%YR$It!4:`: 酬u&jyQ`dZkvew]ut=ݜKEulkܭ Of,/}̭Df&Yj\fu._MjTlf2,N8]oJ)~" #}ᠰ6ϯG6r#I8kpֳ֤k[s+>)ɯw%5Zc$FwQKz-16,Ju/Mc870vU),v%vnX @ ًo=_h4F=@ ">`2s=WOZA@mCv(5ST '  kx峰(quQy'ORqT•1ҭk;<@@tF,Ri)A7|xTRc4ȑ+!TZ4VGҨkT} JJD @s5QU7)Iה_ q뚗;:7hG8VA];zO-9#kIn+3?FŅ/"y,{'|U[~h9Xcsџ%fϫA Hum!m! %BZ\Y @gKUmL}{\9 !w=:x/ChjSw!A $ޣZKϛt<>{ҿwҚ5ܖLǚiMz]XsgxM[_o/ݺ)gON4m dI^ƖJϩ\6 @Y۳mtrߥ"Izk˲8v=ze)$s֋B O+?`u{ԎR"UU6?;v4~iΞ>>]v_z1l 쫱knQM?@Hֵ$_n*vEֶhIXRc%}3}lH`rncKDj[~ޕ W(F#ݞ{-DutcU_͓@J`:7 B7%޵=|~"reh3_ֻ__t),;ы^5V%u%V^ n{wl M۳S MiF!$sWs*ACm 񹷷׶nZDhzzƊ`>=?VKQԴ8^Hx޻w:n333va;M^ >cݼ{!A&K%G4m볮1Pkgʽ|T[>W"}H˪+GjW3vvkt`NU/>7s\ @ 8zj Nuy%UԜ:]/#ږ_me0 RnwՏSHij@b\trM:'鳃K )Ҟ_UWYOOǁynO, ko-c, $/kz7t(_hw~@] Jc@j >fhZ >e' niLh0=$('K̵>T/EO}n#&j\")Z@+{1ZkkƯũڨF\0/D>&װg0 Jzn{^G{kIU Wo>rQkyM$Z1КyA.iPB\f5ru(XRIg4(X *U|@K@M>6xKWI+r{FP~>A?n~^ wۄ׿u b%1Ȥ >VP <>v>3|q2g@E@|n0P2K -sm޼h%>m S$PFIe1~t=$k=PDnER螣^0_S\"J !c׀+2Аh@ >qs >'zy iϰk` 7[h+d`_hJq%((*$8EԬV26H&L0OF>E-CR)$PN|s߅%󵜤֌iV%YI:ֽdqrQ~^yr}U7,*׭h=f[dbq_)~)AU2ދ՚^L$uoT=닄f/Z)׶a=e\?>/,R[KRtA-X^/5hrNn 9ўWW%j_K V:{;~'@{׿q6/H1/[9Խ꽄Ri\z_Rh˸=˓۪$ϱ _a]z)[XXhp@ >n0 dymkӏ}?_ST vi_AƟ8ω[$@Qm] E4F$wzlfI_} :+sz#Gرcm"1$HWr2k(K z58Y2V1N^*azAY%n鏸(.hgM@J ;&$y6 ƉSxY ߲?\½R_*|!B}JK~Y%18~\xޭFEˋ[ݗp-*Q{XskD@2ksh6$t椱;bZqc^ @ Z;9 jkiG]~Wz5ɽqb73ut:ޣ"^#N[uxg]]u" +ӹ? G/^F9C-9n6f}@ +">C⢏g=[ }ݙ"ZƕW? *yqVҧOȯ$H$r/_V5\c^puuz+'Yi9J.b:ZDw SϷ*ok?"蚑?>Wt;glj4q@ t/ Պ^SRm)Xuk^|C'*$+ϷKk$_vۏIrv^qY1~. Pv(Aүۗ+W s%S4VKb ߪz럏+1WB*z^GI׮^пƱ\.K_!A h$FҤ-@ K$>EApjuܬُwTS22O9K\`/ggn ě}>hIxWҮ:ꪫI}{_UqaÆʪŋ|# ">7&mAY&y0]hV]ǒd]_á"-ŭXl?JᨷjYe$hio䬨΍óh,J¸$p_/ocK뿖$օ)u(jK2*ڞp@=4W[VIpH I p9 ^?^e$ǟVmn;].iD`]K^xj5µ2 ?~}9[Zlߺ/ IJOe߇b+WTS>JtսT~quNuǣcBNr/~0y{kX"/KXb_/ݺQ1}NSc v/̸ m JU dU|][z=K܍d9/xRWs(%i.x_eWL{ru9dsטB#8dkg&ueO hYYoMߞhDuP]XXI ӽklK91[nnvر'|^ׯʋ;υ=#MgϞo -P4d@gEzևrqQ4I]\U J7>IPOS%1YnN4 8"O*maqd) ^5hwl7ڥuYul;)w,m/=Rztu:쒶;wΎ9b}\duh}ptkWPꚐ#c{9WU+?j%Kŀ 68xUgvu0m}R=QY㒏^k=u/Է8U_zkz]1k8R/"Gd(%sb2Ѥ<=|;^V9~~5ۏJL}C_ѱX<1XյF;$zkXwX2ƺUoE[k%s6wqA,>ϗ@b辩{xW[8.W{ r][|Vc W%\@[TV9}:qe @1c@`Ȇ C;`&WuĩQ97S,@_x+c_x~`.B񲗽ؖ-[J\C\}k׮Ǐ??ɓ'W}+_1 ?P h~_W*Bύ&J{@V A|q`uft1Vo뎕碁1Vy%\R}?=+ ZrQYj3Sgl=ؙ4;N d,ϒ֙>\WOq%J86%ͳT X^p:|IéܼLw\p[8i6Ja6Em+ڱE!'c X'F $s2ցQ@ JCW:}]p!g@ [ե~UUW]e謨qI?~=bŸb50Dy>| @?C5 %/OӁ4g'vإa`@ >"6^ۻ>vek%!IB2/ipW^8w<2EUTI+= ݕ*V<3>3Nves#)nK^~s'Ꞣ96TNU{J .ߠ4oɴAۯmtm)I qeӔyI+8MsXWbw=₀Z ^ݓ@{Y:vbq(oj/2K/oK\K]UDuuUO%JB^ô_*V)D.U|4s36 5Y[Q4s36 5Y[Q4s3鶹׾&GmeGvwSO=eoxlDci >?lGmllo"=quӪϭ"M?@ A|3=ŋ/Dk=޾q9 8$L-D3u,E]K$gҶ;v 睵sь$ Hҷ'4[T+FٶR3>hWV1NB b;ܫ2^վO^問0:M9Ɓ$D=^ݓKWdW&*K:.HN/MKm4/$D^^*xX>{2gy2"jPyq8d!II@mkEi@ sm( sןC@|WJs |Ar/ŒM^T~[oz 8p~>ﯩVTF|ne@ Ą鱖$ &NM/F, ^Vٮ kA6ռ-[zvX⼓jJGmTYbi%[ %_ByE!gjߪJ?w:>J7pь E8)Wٗ'r<^r$pNBKĮ~T_WDdWWm]>.^2k7 l'K|il'K|illÇ)k޽677rmfx;졇}C/| ޷9AO~O}*m-Vt@gQڴiSq,ʯ%C9$h>>Qu;ZhMwewni1;c8bgWPe ;*eg)A$3_3SS“(=QId~ʝN8V咄I'lU+JRV{K"iER啯BsU$I%EwrH?U4X u6lm۷YH4H7~`%#Hߏݾ ?G7a9qbN)quD>bq)C! s:׍QC! s:׍QC!M/s=~ַV+_J?cUՉzk^cwy}K_u_L2? *u]s a ji ]JHUgRTɓvĉSO=/{IK `'yaV~ߗph}ٸOmWqu-9KJ6)Is|%B+21R˘}SKՖݸq㊰?==m##ղ\<QXܪUTY[:M_Q]%0^pt_/D, 5TWP~+aN8va6ύsm^nkPT Z׀R&@ >7$@y Uf@ >7$@y Uf@ >7dڹ[#_jt?3?cg׽uUՉ˿K{ ^`ozӛ{^t]'bx+oGy6ZY 񹕴 H3's]Z9R'ov±N<"yx.YB,7/C"d6@s >7/C"\~[퓟}SZ/iַl}hE__~Z%I?';w\镼}k,o|/R0ƕnGm{~vM"Zz%G=@ o,>i]o]Th[S l+{nӗ֒~B{`;== @|n8ҚQ/QY_fy/ ڒA`E0Vtc'K.qabE=."z_*ͻ/{q=\ >f@q㨐@ s<r!@|B x\ȅ G9J~w~^]we^:::fYKGGvaտ";0@ WvmOve<Ȋ(ҏ?x7xm۶-/q[2jWB|nyF ^K"=} }ᬕE[\\wadg=$֛CCC輖uAϵZ]VB',KR"*H. [\uAp/nv0Tp\ V"/,\d|Yf,}Rz >w9 N@: >s5 N@: >s5 ^!>ʯ}ﳹ@|={bzUWϙ"?oFl9+_ dy睁-o=aÆ jdv%v_@ m.>`ٚ!܈ׇ}||b($}zY֛|W"y@ > r W@9pjϫydwao~Ї졇*S2H,,:."MѨ˥K돛?;zh)_^oڗh!@شir-X(O<*]2MQ={(ڌ:l%;=Kd(+?g^җƝ*E* F/H333sϥn|C[n۷E}Egv3DECs[ G*?^< 1$A A;-,,3<1@#_驧l!@ gg&  L}3&  (466fɅ ۲eK|;i)u??O&"o7|}ߵU~g_|gUuR7M6<<\$ӕwNww7G>@'>a{oս)rGG۷FGG'Uz=Uս馛3LCDeu7^4_%ToB| TG .gE i?-)C}$I5)"Kvң| 4K|vݟ$1DɉWw^ RF0W}8xf}zYX.,]eDAS B@ NC@|`@q@s*@|(}$>W5>{mii)9ymkI^|;//m~~z =zoy[-{N_eNoڗbA=L-ܲ#<H2tpWD!6==Ϊz XppN[u))!Qoqgj~#kFY~R? TThڼ~q{iovΫ֍{g&  L}3&  uЕ%rr2  `rL|;-A&~h+_J믿޾/?wj*}^?O:W_z½~O~RhU ~-:AM!@y#o_o^5m77 ipp0V|/"Sl]WtNmM-S|`_ؽ{w,rΝ ~}L@W ڶwљ/[]q]iVRicv~n&:a9W^h}駟N- O8 xg / >3"'_/*W ,c @ "qO>_2'@@lݺZY&s?EL'>aַn{MoN",/}K8|>{谛oΞ=[l'^y{{k]mC|nJ2N W"9vVչvąp%;#< ³>$%A KXiݝ=ج{Ė.ﶛݱ)_ۼ'ɒ;isjV$e',KVH^hy /Zof  Ykf  Ykf &EASNk^t7Qo6k//]we>mo ^˿K[\\4KNZ';ŋS%?OʯJ[">\N@XE Ⳣ ?t.ҹ%a,G8.o1 >cO@ >o1 >cԞ{zzl˖-AgE~AŏvW*^t~ǎC~BVJu{}{/]ﲇ~|4C7D~ի^U,mg-LjkG]@ O,> ҦMcvv񹚤(Ntt :iB8)9ɓ'_L@; (BsX^VA kG.rf>2"2/)BfvIZA,&sMلi,&sMلi,fd.{{n?rv>9|)W.\@GwygaK_}.[þ/>}3)*k@.*P}O_">3@'TYO ..={֦Nt3 VJ bąJR}^Y#GLIh6//df ̓B9IQKb0{Y06 $sWAI$UaL@R >'ue DI\$sRWqAI$UiИnj_W~7~#y;;;ox~w7XUy۷o7I]]]#%q7^wu/|KA7lz#Ǿկ׊ VP@ *>o޼/--fmHϥ·.Yp~V7nh93sV*Ee3;yc 8yry:)y%< s /}';, @ >gmE l&L@ >gi5  l&L@ >gi5  l&w[;nՈ$/(o~駟^U(^2?m?}v~|I 뮻_Ufݺuvm"^U&| )?lccc}*|:WhGmEeZ*@Rm۶_xbõHϊh3c{5դ;v}[*˸(OW:yygo=osܴ>ؿ?oSWsi ̢=}^S{ʨ2yW@f\j#\/JC&g@mkE?4F@IDATi@ smRYoOw{l׮]җԶlbÁOQѣ=jۻr>u{] 4+ S㏛> R;w hʟ}[A?~ hk\7xcЦ0~0_ƚ|ɀi $qIq.l4p)ggL3!>>}Ci"DYo6mTqaETu5qi0\,QbdL ϻwjzUa]:'8+Rh:纤@d '-hg#23u|9-W@9  4@|Nj1V@۽sVB&@ MӴZ w 7)r3gjjU2ŋkŠϟ?Dj>{lm {oΝ'N5&^ύ&J{@V $Q|pO4A;\YE-'=/v\%?f5ٳD4GJEf~n'3sC ]%9M;QYҲ"èuMKjv_p͎+AI#a<@ >'} $IZ $sWAI"`,@ >'}_ >n0 &I{{{m֭4FFFli鲼gɚDMI?8t2v-ԛ_l!;rHjS&V+m{HrCQ 5;ڗܼ"9I +@@ >i+ IXsZVqBI U` @Z >e' IXƐ)ϙZN&4@A)|ew]MJڊ该ov~-QO#C99kH @|N1B@ 9$#3Lh:$۷o71Eifz'2&씋2$[o]vUɓ'(###Rv8z'5hK,]IrAf.͊<:w7quyIIMi*P.ޭUxmO7]f[u{Wq}jEBUƇERJҴi2Idf?hJ:dΙss>&ss޿YioL&jy'  |ފ+@%@ 쭸 {^sV\|=-e:.g$7u;/%SfqQAM6lKD"w^Q;=s'zlNϪϑjY`nJݚG&D}~E}= Eg3;qۜ1E'>;ϳ@5jF>;%s@5jF>;%s@5jZ8H@PuuA46.Á xaO|zjY~kQ<ߗP(4\`yÂ@"]L8^+3Ga ng"@ 7dg"@ 7dg"@ 7dN |/@:KKKE})NN%cy7`5\#Vʸ vyS2Y2agx.џةpbgp~1tV]9 l+"7>{  l-3#>{ l-3#>{ l-3TOϲ@ g555`Cx\GDpLǍI\8aX}OO޽]3*YRDyJYTYfC̨͇;7O$wpɡ?Hs 6|)@=Z6 | i@=V6 | i@=V6 | i+@ٿg gzV#<6&#䎶hjjYW!^ ,S&_Bs1.] ٹyzbOKNsvN\(ϼ@>goŕ g @J !C9 J `  ؔIzcڵnݺˊD"&x's(+9ݜծ ss(;'v/x2̯*|41ơg}{Ce gzBE gCu gA5 gCu gA5 gCu. ¦Q28"@vC.jLGOO޽[BP8srq}R*lqhdThp%0-@d gߴ"E-dg_E"E-dg_E"E-d>OK,CY}íPc0Q PnڴIAC3]¹,V[M/JUwYL3%ɩ?gPt'D=>@|vO |#@=Rp^=pgJ]"@%Lp\@sccCWG&?:iwۀF9S9H[[߿mӦ ;9_x5X%gTX^Hbgҕ9??4.NX&G>_=BK^[:K^[:K^|@YEsYY,]԰x<.c >o2U2 dӓM.oI%U\*vWG&Agv>ȡk |WY-&@0?F |_Y1/@9;D |_Y1/@9;D |_Ymfz@ `FENdaZuلUعU_%BΗ$>Vj#Dc"|23>r W#y  |ފ+@ϼ@>goŕ gX,@bPC |%ј>&)턞 ?}Jtq-񱴪Nʓ''"28>YlE^*kB>%˼ U^,B;>ۡʜ U^,B;>ۡʜ U^,rLc<\&t𹶶VG122"&F=|&ё =zZ4n\JV/sJ| g#Gñ\z |YY.$@ >nF |aY2-@9o:nD |aY2-@9o:nD |aYeva?L9s[[ݞ9Nx*ygC̫(<oǝ ?9+F> /7E> /7E>>H@L>744 ĤǎJR|&l>໖V'Η;.0vW:?v<,E3\)  \w#>߬  \!3 >׬  \!3 >׬  \!3 p8xp:hZ@o4VqN3gӶ|ÂF$BU奧s@(*1rKs^l܄> Ƴl[st܈> æd[st܈> æd[st܈gsF@Tñ)92: ^PMD}#1&N{r>P&;[VWƩ]/Éd^p|.D{@oq֋ |.T@Om֊ |.T@Om֊ |.TH K@ @ `PĄ3 gz-|a]Y%UYIlpT:"ݝ9+8.MmL $U`%l}#n R?Ss1y];H PLY 6H@@s4ЀV8<^d{z/^Z#{v[;gzYLl1YQ%#@Y^P /@YQ!#@Y^P /@YQ!#@Y^PG>{,lp2\SS# ,0qttTJdž|LJtpWק-y̓Y+cġdy_ψ4lk>{Ǭ l%3!?>Ϭ l# ?>Ϭ l# ?>Ϭͣ@NkkkE}RuUyժUaÆԥz!^{틅sDy9C1i<N.EθTpgw@9dpg@9dpg@9d |hcYX.dYv}N=TjbLj甦Y}pӦMfǁdf\?xn75RQ[YGNCO;|SY+*@PAG |[Y/"@=E |[Y/"@=E |[Ym' '`PAOen1H=XpS*yM7I]]i ===*᰷v2^^]!e)Č? DG/˯{f% ^Q)8/@PK೻E ggy:K೻E ggy:K೻E. &Q"h!@6g`zlHDnv B3]uCbxB9#:9%Hrw箓9&@YP,@YP(0]]]:HM 6i >I|֦. &Q>_T 8|nll4]%r(5~ydBTVcղ~zRTy׮]ⅣT6@D_;q[׃ODY8|Fk@? |杀&@97/F |wY=&@97/F |wY=&@97/F`Vϳq 1-͟cڡ-X}PfG[[tvvrߝ]+׾v3KY g&@ke= `g;u(@ً]eM `gd(@ً]eM `gd(@ً]eM |v# >WTTȒ%K RXLz{{>o޼Y7 ͎}޽{Nj]KҪ~DX$ F pguz@INlpg7v@)N\pg7v@)N\pg7v u{(4p*$ $ѨsjyzjCjGsns"9A ;>a=vκp.D yq Vo[@ OyqR/΢@ OyqR/΢@ Oyq>a8] ן^L >ڸp86%GF' s@zӦMD"rK(2=༊R.˺Go=?(Ox ]/@-d PDEQ Ϟh#@" |.4AO|DYIsy xB'"t S7tp*\[[+#؈gv馛.붶64=Ϭ@T9qi}n@ds9 )Ϟj'A>  9Ϟk) B>ۈ 9Ϟk) B>ۈ 9Ϟk) rZ Qߎ6lUV{ns: `USUjgo&vx~,3~ γnGs>j܃~ vUsb\~ vUsb\~ v[>ʤ A`PA_R_Yf8ƥ/3cIMDEy+J$_BpϨLeq= e^.kC>[-| u^0C+>[\ u^0C+>[\ u^0+碓@pn羾>i?2)ɢK?m޼YThmm.SZe\tbIܬo>{N1/>, '!o>,  o>,  o>,.v2/xMsCC Lq1-k|V;=͎ioo7;XUy|,{kcr3vf" :D |vm( YZgWW5Q g];C] gBM g];C] gBM Q<Qs `0hXe4;>;$͆:}d޽t@b2xV@9sH OO07tfD""ppN Ie "'_|<51ʗ Is&! |>݃W lg< W- MlBG^ _! |M(@9G0.G 8|zࠜ7NM\n]t궶64=9:Lojm?dq5n Q78!@ un Q;[syY೛G Ply fnk)@Y˶Ph(SyxxXԇgjܲeϩG(J:Ee儢Ғ~}wθN"g@U].E >kJ@|vM(4 A(\#@5P@Mo |V?Y 'DYڰ(DxTά0t8;>777KSS5*]]]R>wb(XqQ ظ |*@٧g |(@هMg |(@هMg s."N]lrBS˔plJNƭPۼy]vsrRZĩ4$x.$-@9o:nD |aY2$@ >nF |YY.$@ >nF |YY.$@ >nF(@h `&Dyɒ%RQaYMdgH(9%󍯯=6c';><x'@ ;9q >>@rQPnj@^2;xK೷j@^2;xK೷j4 A(\!D𹱱Ԧ[jJ\#nX>WZ%6l0CM91(+o We|r"2:N"@J@3@ 7Ϲyq5[೿@ 7Ϲyq5[೿@ 7Ϲyq5 | @n@WӟG nٲE ώD"v{1yQMKdż9Z_o<z |@}d |@=` |@=` |!̻N犊 YdX,&T𹩩I uӳYsK.tl{ױLp '!/>,  \">,  \">,  \"`&@L1@(Ps `0h($J__+eap7m$3<]@(J Ү&n@=` |@=` |`g @>WUUI]]p8,B斗wd,7[1~fG[[tvv*%NeFSuɧ l-3#>{ l/#>{ l/#>{ l/P}ty ;\[[+#D𹹹YRK]v{~ǒ*qq杞 F峝d83+@^_fGo |V?Y /@~c ^_<#@;d% `gy>,(vyRSScw:|fML5kg[QazX*gؘ|>ŧUA}~9 |@}r ">- @9,.E |[>[-| Ubg__DQ9o95иxׯիWD""ppX*/siI'5$|> -'eBg7!-maeRg6e!-maeRg6e!-maeR? |sY;" /nٲECv|v|il{S0w$vyьp l)3"w>{  l+"7>{  l+"7>{  l+X೏@ 'b7JKK 5=zT&''YlvݞC!gvRDyiwzO''ۍ̌1"@/f `g+$@Of PB$@Of PB$@OfE \f(v𹱱T[Kp>:9%/L P=씶6x1P%rⴏOtG^ W೽̎ ~_<#@;d% `gyxGwzJ@~ |YY.-PsYY,]Pk<plJZ|njjfC-jUL9xJ[HEicTӏʁP< Pq) #@ |.5OB |vYOsy_{ @xg͓|"@'f P@1ρ@@h4*}}}E >oڴIf@yʮ]_9s+,eH"BEB L:CN |@f=Չ;[}Gt S7t {t S7t {u]2 Ft >ʤ ƥ/3;~fG[[tvvm쌪rj"0~c,wLbg3(b<pg7w@ NLpgv@ NLpgv@ NLO |t{YX(PsmmcddD%]?2)~,MMMCPa祉18>)ci@Hpg׶@!XpgW@!XpgW@!X |noYX+CyxxXG1][n5Eloosv V&vzn1^ǎʡ "3q NU#s >#s >#s Ʋ,\zQc``@Į57a<ի F"nppΎ[ +MO?WD>;gϓ@}3*Fg>;@]/Eg>;@]/Eg>;=(@كMeI `@1`Pa}}}Feyu-/1؊cǎkӳXǭ/K>Oǎ= pNs<'@}=bpVೳ<%@]ZpVೳ<%@]ZpVೳ<݃=T3 *z+j*ٰaC㓯[ZZ$ z9g|iS}Ѵ9 |v֟#>_T |vT ^Q)8/@PG{zE g{@ 챆MFutww'Ϟ7G*J<2!)Gpׁd݆q;޼h|˒SN{ g{@ "U ;>OTz|֣T >Q%!@Y>P>{,l)|9k}~ht<;v ,mmmٙ:lEew,twi|:m |QY*,@`B&@ |YY.$@ >nF |YY.$@ >nF |YY7  bUPހ611!ǎK|^jlذ|5}v æl Iek|&s!7eFg!=qeVgoU!=qeVgoU!=qeV |qY:$Ps0@ `-J__T* S"/sss455?p޽0nͫN;8>)  O/!@}JC} pgw*@@z*@'tg5R@Qbdҥ1*/r5ؔ0:cQaԣM:;;S-}EsƦ3Q "~ ! ! U! U! U! U! UXೋG PTbt +곝gӳ9D""p8eW̛#.]lһ^>iv1T೦,Rೖm(X͡4Nv- X͡4Nv- X͡4w |vgߨ/`w9nâ>QSQ*gTٳƍeʕ\ӳٮCo?C5K=mOxE>˴ IϞl+B>ۈ 9Ϟk) B>ۈ 9Ϟk) B>ۈ Ͼj]smm'۳:W(2eINƳP;v^gٿ9+[%S<9.H9@@oz@@/zj@@ @@J@@ @@J@@ ]&@e \pLsii444zJ(:5lW𹩩IO=gH$"۶m~iw/[.\d:h,.%B1 "!^ "> "> LF 皚Y`ڎ=*,c@7n(+W4)mmmq+T۫IMq=j1<Q́|vG"k>u |v"+>m |v"+>m |vzWw{@Z;jgvI=6B斗6^td,Cr> 'ر={M:7/KWN]Dw|vG G#@=Rp^=pgJ@y @=+*ug42@qUUURWWg>F#$ͧ=GD"m6øjƠT1Wd<>ezApgw*@@z*@=+*E>;*@|vO |#@=R|vI(+d0OU9#qFYre꣤S ,S&\LKMoo D>kC>kA>k" D>k JA>k" D>k JA>k" tguz@);ρ@@A]dll̰1% U0qǎsٳGoz%rIp<,w=3`zApgwj@Ytpg@9dpg@9dpg5 y(#B*zb1MNN|~~hW^-ׯ7\Dd۶mB._Z-d>Ɇ_"$ -@rϖ2!xXೇ@϶2)xTG˲@϶2)xTG˲@϶2>r:\VV&K.5-!nbϛ7oԣCS z=T{Yfǧ~sTfC |va( =F |vi( ;E |vi( ;E |vi([_@@/5ՆEns(+3k*Re"qK'sYհuV|j;s~\`\/WwjC >kJBm>k CM>kB->kBM>kB->kBM>krg@V7JK;0;Kp*#V^-ׯ7\ 0^;TɎNq4t") ";>oT|vƝ"{>wT \|s Q9_sy"W{{G |ִ1 X|nll4]ѣGerr7ʕ+ vx%%/o@a u9*CQ9@?G |.7OC |vYOsy_{ @xg͓@CVgB9 @i )\cxxx<.]s=vizKkktuug/4Ci n#@q>כ!>'@x< /@=d P<ųI ~!+Lf V.[rUyOdRDސT?$޴it$m۶(ォ1Q{a\+T>s >{ l.s#>{  l,">{  l,">{Qώppg,ħG>uڵk 8p@vmwg՚핧"D |vYOsyxC7*@8S@GV \g > >k JA|O0Qj/<)v|eŊۥ0@re]_XX>rDKE g-@ ".j"o >Y |v. fQ;Ώ#IDAT>OT X|%KŤWΛ?p.@hLbLܹ01=\XPe->%"F& @|N/Y /@~c ~W೽̎ ~W೽̎ ~ >kJ@WX|  F2r9xrd"Iñj*ٰaH$"۶m33mKMo#'M1 ^_<%@[d5 `g{}%@[d5 `g{}%@[d5|֠ (V9:/ snɡ OeBX~^pgggϐsk;We O3- >Y |v. 첆Q.8*@Q~. 첆Q.8*@Q~. 첆Q" >LJ̰DY1Q<zl޼Y7RzVBswV~aP`~pg4@@ڴB@%](D->k@|vI( E(\"@%L|vO(VrlP斗&;v0̯ZZZ$ vDs2].ESu5p!@Y>PC;D g}zA% g{D g}zA% g{D g}zA% F ]Xʌј yժUa { l-3#7>{  l+"7>{  l+"7>{jwK7ʕ+N{9ygS|Ik8o,_\-Z$pXn۟;>&y@VkjjD)Sc/%777KSS꿇mmm\K7zyER*@٫e] `g;T,@em `gE,@em `gE,@ݵimsu]tb`ٷm%/|'͙())+RnYlSr!ꪫNsg'y&Qsmmc%: <ǖ-[(u.zVB@6k t9Ԁqm<{@@oz@@/zj@@ @@J@@ @@J@@H /RٹsTUU}'>DQQiӟ̟?_:::_[,S,VJ߿_?O} :EPDI D±)92:au@Aj֭m߾=LOf95e2տ ?u33 :V೵̆ BNū BNū [BCßh"Q;:]͎+VHkkA e9ۿ[r硡dib]LX<.P؈̟3P ǥ73:$͆zzz;02pk|yy "m !5l %!n!f5k n!f5k n^ŽM|I2w%Ȯ]_Zx3,)){W?|կ~%祿?-#(?G #HM|LJt`-zVCփ_''^( s t=y0x_{ @:Y2C?*@82 C?*@82 C?l*%[nMiRVwQtysk֬/}Krak$fG#,sI{4&cQδ-[n{zlhm7>zT3 |. @G}l|I@'}h|I@'}h|o<2<<,k׮Y} 7ȍ7(=l߾}.(--{.jVXs0@ `XmؐTLC/\76olz^86=K󇁈lg6%!mmebg6e!-maeRg6e!-maeRg6e_O?-7njrwKgg\Yݓz{[o5 >kB | J٤; vQ,8,@xpgW˹bJٱc?|3Yr=yW+ԋ~Yg%gI=kZ@@C)yyd`V\ig߾}w^xymq W} 2. fQ*8.@PLF gGy8LF gGy8LT]w|HwܙU`0bvY7} v<211!jhN.ǪUɓʟ'ydj8,Tyd".=ceqV ߪC^7VWȞw.N^19E_::@ V(2I೟Z@Pυ r?I೟Z@Pυ r?I೟]Zl"\s|_o}[YTVV&?Ⱥu뤯//RlY|$V*$ NmsѨy\sdRom޼tl3͟`pJ_f c>n>KG>L  s>|IsN\\> 7G> s>d/| WNٳgOO(jg{'rg믗dnC,+/&l&s! >c244\ 4\L <T೥L <T೥L [<'[nd_w}KZh|K_7v~?nz]1 >Cg  >766=yBJshLbޜao+Vhoox6׿n ZEw5&f\'@u-`pPೃ<\)@ٕmhpHC<\)@ٕmhpHC<\)@ٕm+~Nofkݾ};3@>Woǝ O;F>] O;F>] O{Ϋv"vp^f<ӲqƬjԧ>%GO~Yݓ ٶm[iUO}qZN ~P>3G9/fGɾӆS"#Sv 3omm5g3dܤe3 ?SOhTN8!ҥKb1vE|'07)uwwn,E!J=G\nZ@WPT@0P!Ɂ3Q@d>scUMozSav!W^yu]o;k'xBJKKeݺu93կ;iii/g\R漪Cwڕ/mEsp# e|^ziKܿ^;&OO,"uH\xIe9 K/5s!~ff`IYPns6^A@>Tg~?,5"y %K܄xT@7}󛌦3  #8vg?45"@gLySr#@`RUU\ g%"@ӛvtt?Iw|[wR{oϪZկ~%x\$?gu_.>vm0[g>K.3೙ c uNc%*p/\^ :;;E}zfJ>qF"mrl;T&&'B_ |eY4)@9O8nC |mY8!@94nA |mY8!@94nA |ms[֭[?is6wXB~9qℬ]6[NfrUW @[:\S6}o|K/]X'o V}/"a0W@tDN׿,v[|y"B?IE!pgZH>=u3_ >PΜY9Sy@\`ҥRY矁J86Q@dFI ]}}}222  @E.\(=\+fg{\mur]w?.7pCVy[*_g~Y3}Cyfy[oy**FJKKe͚520P>+z?Az9Y@k4DjUJ''r,tݣ1|޹sisNP`'oʤRZ2=˫o]?_!Tyz'>7 r߿%@ *rg&P  k_S]]] @k^Q?R/LH pJ@}?S}_SD|@@f3tu?~\Ngoŕ g @J@3>_/?d˖-Sy~w޿~nK0ȭޚ񙥥r_|x]' >%˼ 5bñ)92:QcsssNo>ٻwopo`Fv{V>s 3>k@ >ER>H/@9 g@Tϩ"F |No@ Us OizmYYYF>iii1.Q犊 Qio> r ~J{'>۩ %bG&3+p͢IzJWWWpן}cP֜Qm|wÍ >{,, l!&S!/>,, l$ />,, l$ />-R>I4oY̙#_/O|ÇOfUW]%_||;ߑ^xaz#|򓟔x<.wys=]SRR"7p|g?YO~r5|A< ,`UY R9:5,x;wo۷oOc.O5eNi۞3jg {^sV\(ϼ@>goŕ g @J@3zKSOɱcdժUr󥻻;V>tj}IiiWn+"h^ٿ⋢ؘ F@Lv.*\[[+#Jb۳9CxӦMCPοgʧPg+29%aO1|=d/@9{+Dg @J@3@ {[q% @@^k֬ 6^:QSg!|X,udڵݻ 3dżW9}mr|FN |/@3p0|60  Aು@ 4@  $ "~x9H}}goŕ g @J@3, l1(!g|Hl‚[l:C?Z[[0nক5 NȆ_bg <-g@`vϳq 0SL F2 |Y@`|d ه L35 >[ bñ)Q|6ܱc۷op8lz.upNi<^#e%d׳rKÆq@i|Ff <W 3>k@ >Ef | @fϙ}8  @9Gs>j܃~* %cR69 OJh|pM֭k.?p޽0nK…ӏO73 H/@9 g@Tϩ"F@r;FјMyƍrJCo'{5 4VWw޹cD>OK]F\ g, 0SL F 2B%>?-[0Akktuu>||é\a*>ä '>{, l l,"g>{, l l*S"g>{, l l*S"g>{,)N\p@1ͣ;v0M,IrY0lp붗kφ SEx ކ3 g3@s."fTC>0 |6Sa >ǭ +bñ)92:M B!iii1 Rnk)W tR@=V6 | i@=Z6|)@=Z6|)@=Zgy.M%K°)dx<.|֭k.?p޽0n6 @>0 |6waH'@9  Qф@ t2#FFF@t0@6UFSǓIN^ƍeʕK'{5k˼S?t@>0 |6waH'@9  Qф@ t2#FFF@t0@6@=c1e3*]]]ԁ-޼8uXbSS}G$<mI@O |t{YX,@bPC ||Y X(@BLB ||Y X(@BLB 8|Q7Yl@IDAT |]uOF[Ҧ -MhEŚtF V86@F[m+"$ g0 A lZ-)]H4ݲo{7={>̽sons>~@>%\"===w]%@ {;N⊤oI^2X}nݿv?^֭[vkJ{{{s8H>4{R{dohpt '8ijjJs%@G`̘12o޼Fwwl߾@!N>نg> sΕ؉m۶~?ȼ  #c@z7yyy2{lӢ_&gW]u̟?XVjjjzj;̐ΘZ7wߨS@ <@d! |N [߲ 08%@- >! |Nd(@9C0.G |.(("s{e\[K6UИQuu444ssdLNrW#Oo7@>9@ YsG p< , '@y8!#o |~˂O p< |@ ڃNpݺuivZio:|ӌtɥm~@`HCpH  0aH|NPVD\$>'( +@yX".@ 3ϙyq5DWsgol;=*d7}WXa$6l0ꩅϛ%gOZvXnNNpBG @| o |W 0r#J@3@ |W"0"#b"@@>ˎʤԘT}}lڴɨ,L'.#9%/t9C Z>E |g@`xq  ^F\>%xG <W 猸",=|UW m޼Yߝ4YxFR^YN(q  g~%  |̋@ =v |̋@ =v |̋VD\>O0A ̀q^OlyժUi׮!o̖O)0N(q  g~%  |̋@ =v |̋@ =v |̋VD\>OT@*@2 W#@>G{2 W#@>G{2 W#0a h>;b cRMMMa>SN:xK>DQTH ̯@ Sϙq=DYs@ Sϙq=DYs@ Sϙq=| _>7wJsgoeeeRZZjW__/6m2 η=;-6J-sX󈩸5d(@9C0.GH |<d(@9C0.GH |<d(@9C0.G`8 qxS@sڼyxOB0}#;e_GOR@ ϙhq-D]`̘12o޼Cwwl߾=$R'qp )@yHN"I88@ <$'\sf܁|^j/,?u,?ej0񾥥S|@F#@y4j܃Q ɳoqDQsΞ@`G+} EQ:{F |!0A`(#)n8qb"c;˘i^P'XnݺTTTNj?~l9cjA0~ˋͲy1@| @T>GuF+@yr܇Q ũgqDQsΞ@`G+} "@y @碢")(0m%kT Sijj 6xaR~s%'^~C;`Wf | 0r#J@ ̯@`Gnŕ g~ # k> r Z粲2)--5eӦMF=^򍳋⇉G'|@F+@yr܇Q ũgFs6z܋Q _Fs6z܋Q _Fs6z܋@iP(!i>l푶4OT^^.%%%7o:/|I[KK|@F+@yr܇Q ũgFs6z܋Q _Fs6z܋Q _Fs6z܋@iP(!i׭['N0U]]- ϑcOgyGF-@yt܈ eJsV|܌ ]JsV|܌ ]JsV|܌)@4|vhڕuxqc'?8/.;/@ [ r?DIs^@ n(DEsT&>@ n(DEsT&>@ n(># 0gfSm^#m=} ,˗dÆ F=^L㇉$d#@9=E |/d+@9[AG( |Ҵ+d+@9[AG( |Ҵ+d+@9[AG Es  nӮ>X=sYYk͛zpqr@}p @6^M"@~(M"@~(M"@~R>p "Gyn\^^.%%%ƉM6I}}Qw r7؛7d{kQFhԸ*@9g 0Zϣ>(N=#h>V@ 8u r+C[N`akÆ ԔZ_0ct ܾ^YNqDQsΞ@ q/DMs&~@ q/DMs&~@ q/i>A|vhi:H[wϟ&Kg-F 0Zϣ>(N=#@6^M"@6^M"@6^|NB H#-`Y|iccTUUxaEsh\^0gJݞ1@l>g+ %Q6{E7> Q4D7> Q4D7>  < e̙rze|ߴʡ.`2)--5N͛S(/w\xqXm|#@GVAh|Ɯ%'@=KVB |!'@=KVB |!'@=KVB &@_  >HQQng|.//cM6I}}Qw Λ,_>8S򿻌:@ q/DMs&~@ [ r?DIs^@ [ r?DIs^@ [ r?)S@8D:'ȿyݺu S_6lrx™"^=(wv0=@ |!@>Gq "@>Gm "@>Gm "FsJ @=;͓͒󃷕+W'U***ssҹ⼧]ҡ2 @Vf "@&d "@&d "@&d>'{p &)pBYljccTUUupδRyLc_5n~ @ ;q7DKsn@ {DGstfN@ {DGstfN@ {I88@|^t,Z赮N6olԝŠ/z#Z3@l>g+ %Q6{E7> Q4D7> Q4D7>  < 'M$SN50Mv~mOW(//ԦMި;x 8j)  |V@ J4mn|vC5@ *2in|vC5@ *2in|vC5 @y@! >O'{y[en+W|OfxTcqH| 3(m\HQq DVsdG@`G m Iϑ;FQ |%!@$>GrlF)@yp܆`$ x|nyy…lٲ566JUUQw |W|`D[IK-F g7Y"@9*f g$Y @9 Sf g$Y @9 Sf g$Y | 02-KʢEkkkƨseR~q=LsQ!@ E@|ʤ'%@-IA(|”#%@-IA(|”#%@-IAL@K𹼼\JJJ7n([l1M+`;{oku  [ݒd(L="d-O!d-O!d- | 02lӦM'*h?$y=+͝J֯_/---ƹ;Nr4vYUǨS@ $ @>Ga &k!@>} &k!@>} &k!pL3 @ d|.**am%kDgn+W45kuE&~JpȨS@ $ @>Ga &k!@>} &k!@>} &k!pL3 @ x|nj둣}C6pBYlqMccTUUu |sQ%@-IA(|”#)@MMB |)@MMB |)@MMBg~ #:Gz>/]T-Zd4\[[+555F}\sz_ŵۤ^ G=eYPM!=eiЍ !=eiЍ !=eh |5d.!\^^.%%%F7n-[ g#]':@Mnj]s'@mnYs@mnYs@mn^>G 0B UVIaaquu4448u\qT~#[:@Mnj]s'@mnYs@mnYs@mn^>G 0Bli4~ɑ>#m=}i++++**͔s&޿;&x!@ UD |dx%@+YE0 |Tx%@+YE0 |Tx%@+Y֍Ȏ#@^'dö+W]덺StLk&z˨S@ &k!@>} (!@>y  (!@>y  (E^s #:ʡ ,˗666JUUQ?iRlщF_>RMS@W>b r!0C>Nʂ b!.[C>Nʂ b!.[C>NʂQ _F*t𹬬LJKKvdF#œwL75w O6@>-z fa.{C/>{ʚ Va,B/>{ʚ Va,B/>{ʚ y@ ed…FǵRSScoX0M.sQE!WZ:@mnYs@ ^&UsX'˾@ ^&UsX'˾@ ^f>Gzl2:\^^.%%%F`丱Fm3@>-z fa.{C/>{ʚ Va,B/>{ʚ Va,B/>{ʚ y@ sAAOqmo~+ ֭'DZ~$sA^_:OrsRrGvl22/;Z +V盚dÆ Fէo*7=ϨS@ *k"@X>u  ,"@>q  ,"@>q  ,FVsdG@ C .e˖766JUUQr F9 ~بS@ *k"@X>u  ,"@>q  ,"@>q  ,FVsdG@ C eeeRZZjt\[[+555F?ϕ)csu%>i) ^|B5@ :Y^ |Ju@ 8U^ |Ju@ 8U^ |Ju#+@9g @竮Jϟoti&O?F~⤚s/yp{8I@, Ѳ1HG, ʱ)HG, ʱ)HG,]ѝ=;G >OyըS@ ,"@>q  .k#@>m .k#@>m .kGRs$Φ@`A]bqccTUU%/+{vʮ!U:z@l>g+ %Q6{E7> Q4D7> Q4D7>  < A-Z$K.5:M6%hl< 91@ |0 x.@sb5Q8E d|:uL4xt~gwJsG4w睂zvϩZI*3 jןk) ^ |R@ l6Q^ |Z@ L4M^ |Z@ L4M^ |Z#'@9r#g 0JlEEERPP`m 0#@>i 0#@>i 0GNsFΆ@`^wᮾZJ oq{`?&T{ 6a(A>{- &a&{A>{- &a&{A>{- a睭=֓>\YY㊊&>kxG (!@>y  *k"@X>u  *k"@X>u  *kFZs@  V\it"ׯOog$՜mGsuou  f}0M P a$@?>3@ ,2I~|CgDJsf@ ,˗]766JUUURӏϔLI9<*o) ^ |Z@ L4M~|Cg @X>e 2@|$!@e)ϑ7E, >Ϝ9S󍧏k= }=GzeeeRZZjdIϟ%gK97oiv1@>{- &a&{A?>3@ ,2I~|Cg @X>e 2ψH"@>y‘`e˖… {kkk&seR~nR9Mx˨S@ 0#@>i 2@|$!@ea IC<#R#5n6Yx|z[˥ĨWWWKCCC>uljz|F| 5B|*@Wn || |!- #}aQ )GpC+#u ֯_/---; Ɇg%竏}3/@ ALU೭oJsP<l l 85zF>%sC+@9ec ಀg'0ӽ***ʗ=NVΟTs*znQ!@ea IK_< @9 Sd gyAs@/~I|̨(d)wM+V]755Ɇ _:P>q䤚spkWu  P a$@>%s@ 0E~ |K @>a 4ωȌ"@ >2/m̯2N/\P-[f*sgʹ'՜POjj5@?>3@ ,2I~ |K @>a 4A0|%@/iϑ5E,F|.(("鹽2%VO|.++RZI2cspfڸ gPYB+@9ec g`YB)@9ceS g`YB)@9ceS g`Y6;{v x|mGf*?Qߴi'9y[>@G_>â @9 Sf W~jW\)R_А(:ygݙ y `gG  y&*@7!@9u |urA|BgZs@Eϕi_v'->a|EW?]<, lh ;EK>[:8F@>C@Rϖ@ ρ0 |t)gիWm"N+NTs}/:@/~I0L= Y `g'H g?y.@ ?)@Om ϑ3DF|0atJA!iI]bER9hll7U$51lxY~Q%@/ia )S೟< l l 6B>>AG?>ͳ"!@9cf hϓ'OW~gw >/ZH.]z˦M?[t4)?|rpèS@ 4A0|)@Om |}~ |Sg!m #Y 1IpAsKgI =;Wmm$ʹ9"5KN=uC;`Wojc@7ϾQ  - }a `gH g_yX.@>*@WnQ2{D7 >7wJsgr@\JJJ7n([lIԋ'8h헋kyG ;EK>[:8F>Fσ@B@ 0ρ`P೅CeLs`<8:Yn |^j[Dsf$^l/! @ a `gKG y0X(@¡2&@90z |ph |UsX'˾@m?ϕiۯHd\{I5GO:@O~j,][<l l 8C><=zG>-B/@9#f hοL8bla!ٛ8PmʕY~}0OgM9qRR9~EzȨS@ 6B>>AG>-@f6O@o~<Yӣw[;yb FJ轳̩_fao[ҵ ~ |[!m#@P `g['G  y&*@7!@99uT?(gy̟?_ _?R__/>]p 2nܸ*rˠ׻ޠrgY"!Uygk% ʤ4qoӦMed|^NR9comF g?y.@ ?-@oq6 |yz~ |[!m#yrz2{{zzѣ℡nM~I_[AL'386Zŋ=zibೋ,:\[[+555 ‚<>4'q/K?Ls`<, lh (?G>[60E@>@2ϖ v@ Pρ{ .@*++e„ r=#/tvv?2wˍ7(SL箮5k<"GC=ZK]d)_r)))1,o{v9:{8Y#]rMc> A |J"m=#@ `g&F  y6&@ٶ/)@9H}&@>}8|s"馛{Mwوkx;;?OrW.t{V[a:!tqrivʷ?Ls`<, lh (?G>[60E@>@2ϖ v@ Pρ{/8d~gꫯay{Jm&]v yP'/^~Xnᆡ.9Csx܊m Kkf=?ǜ? k? ~gʥ&wvPn{` @P `gF  y6&@ٶ/)@9H} |mbA |Rgu]rgիc|XJKKkا^{R^^.odڵ^?]w]~.qFQ^Hyp܆*ʡ+ ۦ&ٰaCR}Esh\^R9wM4.$@'h 1 Q೏<  l(@Gl |~l| #:󥺺Z^xꪫF}Hk=.gq¿k֬}tk2^&͵G= E ύRUU`+Mm7H<=zG>-.Yn=3ΐKx G?:{]X.7l>.ɨz=|| @$>T຺:ټys|`v8aO{|ѝC@@>@2ϖ v@ pρ@" V@ pρ@" V@ pρjbA=HjjjGo}s=r)e]&[nSʜ9sOÇ+"OmcA. $ @ >G.=azaէ$)@9H} |mbA |z<l lӴ x>$@٦i+-@9 xUVɧ>)(?F@2ϖ v@ pρ@" V@ pρ@" V@ pρn&[n'53<#{Fz[:'O&kcAyi9Ao|w?L+YE &\PP ΟPqm-/АX[!fNH?lxY~Hw@ PρpLe]\s#HEâU\s#HEâU\s#𦁠?xXx|;s.?Oȍ7(ƍ}^zI>"gAYB+E𹽧_vv'*++~Xv'J-:QMO?|rp#~; @y8X&@ٲ..@9X$@٢a*.@9X$@٢a*.@9x@Pgg7/q=zv;ڴ^ڇ):6[E\T袋G}Qկ~t@7&M$˖-KxW_M ߱c m# ijnݚ@SL7οoBH/0{ؗ9gwޝ4DW(9'G.;G:uj,/ss>c=/ >g'[/rٹs\r%ܚZ7sUUUi3bggٳGz{͟-Fه#g:?t^3kBH/> b'<(mmm/ Ο2UWWg׭[ zrmiη4JYYY񍣼v<|ʑ#GFқF ^oZdч7oNϞ/S&@IDAT_:Vu|@ x>$@٦i+h a |eR>k= -m}"A_Wsyr7 'O{Lsύ,/ӧ˕W^)ӟ\Mĭ5k2'T]]]Ooی@ NyI[}cȝ5 qLW9DCCC3@Ls9k۶mμ  #{ zz뭱okG;O]?_>{ܸn>[***\vdt3z^i썑6n([lI)?W-~; G@ `gE Bೊ1X"@ْA& b 4|dP*>Mzꩱov(׏|#?C.ط.?裲raOw-"ƍnAZ[[]bGfΜ)ot{=>{ʒ J?ߌ::lxIg{Ch6@>%s@F6N@ HAlMm_Rs<l l .((|PL"7>?>'?,\Pnf;>Nϗ믿^{t$՜>Knn7np>{˲ :ϕi͜?a V'|hN0/Kܖ8 Aೆ)"@ٖI'h e6|aJZ>k} m="Z&A_kWZ5׿vYd9rd;{8y钫h2@ >ϳ@6϶M~@ hAO#Mm"@G>4-zE>=_XX(<@ _җ>{,^XY~}FR3g}2vX03ƍ [;塇2z<(|%@ ^߰]b(UUU'_9sZ8ݭyGT|V1@K>[2(D5ՌF@ @@g5@CEP#@Y(idʕrWJggp .AN@\tEoy+dIod~-wq\oJssTVVʃ>h\sI'Νr)W_m\/^|] >{%˺ 6M&N/U~Hz:Gvɂ d婗Ij3 岓&AՃF  y6&@ٶ/-@9 |IMӢWZs `gE ')//=i֭˞={b:KL";w/믧Z͕{Lŋ~_~e_ T;vi<租~Z֬Y'~owK jݒdhEEERPP`.#m=}RVV&u?jjj9w,n>y5q@ 5L@϶L>@@g-A SG"@Y$l lÔ|2 Xxq/O?tq9ڻwxpotϿ/SOrwƗݹos9G۽{u]\ vz=':l"eyҥh"259R4.QM_]z˸  y6&@ٶ/-@9 |IMӢWZs `gE ';Sdڴi|3`ĉښ7`:,..yIKK444d&^on|&"k @ >;AIIX]]sb|^_6׸)=MzF]" gPYB+@9ec g`YB)@9ceS g`YB)@9ceS g`Y6;{v x|^j >}Jkv?ӨS@ x>$@٦i+h a |eR>k= -m}"@ qPseee+**%'N5=qԾvZ! jFA# `g D J೪q ( |@> rD{ J೪qL>a".2xYzu- >_s)uwo=,/0@>=6 |iZ>k= -m}"@ `g[&E Aೆ)C>jl<"ʡ.q~vŊF獍RUU~Gㇼ#j> --"*ϪA3 \ j4>+!*ϪA3a )C… eٲeRw~XN0Ƹ??4@>=6 |iZ>k= -m}"@ `g[&E Aೆ)C>jl<*\VV&F絵RSS͑)'ތ5ۥϨS@ x>$@٦i+h a |eR>k= -m}"@ qP`4M87VPW۞o}N} >?!9+N @Yl lˤ|2 @>0%zD-L>@6L@@g-|(x,U𹼼\JJJ!VhDYsvqsrS:@@g SE-O"@Y$l lÔ|2 @>0%zD-L>B#@94d# ీ~-VB 6HSSSԩ5fN @Yl lˤ|2 @>0%zD-L>@6L@@g-|(x,U𹲲2mccGR#*>M %-m"jFA# `g D F೚QX @ق!" f4a$@>;IV^m!k֬I丱|j<?P%@Y8h |V> CuՍ@@gá5P'@YHh |V<ZCuՍl l"1'D=̂N@@g3C#@Y, |?#:D=̂NB"@9$d เgS-[f/O̗;.<Ѹ_.f) Z>k} m="&ϚA/ ] h i>k!&ϚA/ 1 A>YIii}mm̘ 73øŖN2@-L>@6L@@gMӠ.@Y4 |4 zAO@@gMӠP| v𹹣W>񿓅 o޼YbϔLkN?޸G_4u  Z&A `gD I೦i h }B>k v'D I೦iK(>bl|4+ȌWL8OZ)))1.XkgM'Tt@zبS@|2 @>0%zDM5M^@@g?$@Y4 |>!CM5M^B!@9cd @炂)**2:qm-o L}mذAb`}JA%=ԾvN"@Y$l lÔ4 |4 zAO@@gMӠ.@Y4 |4 z PM ^vwv^QQ_6O$>N?P'@YHh |V<ZCU@@g-P)@YXh  |V:BUl lp;k fϚCo M೶h y:>kX/@IęsYat(UUU_Νi\ʡ.Y&N$@Y4 |>!CmM~@@gӡ7&@YD4 |<zCmM~ l$vy;ϓ%|_o=VIKg6~N$@Y4 |>!CmM~@@gӡ7&@YD4 |<zCmM~ l$v/.1X}irɜk~JpȨS@4 |4 zAO@@gm,@Yt  |6A5O@@gm>[?B6> |Ǘi 2ߴi규?K*g\ٽĞ6N$@Y4 |>!CmM~@@gӡ7&@YD4 |<zCmM~ l$vyɧSN3X?ϕ)csk?h6@M5M^@@g?&@YD4 |<zCmM~@@gӡ7&@YDz֏ On_U;i륥E&}xq_yh y:>k v'D I೦i h }B>k v'D |nd4 d|0aݎ?78_QQq2ο~[ N&@YD4 |<zC5N@@g/(@YT  |:B5N lh|4[=>G >O++֤>|_=^ &ϚA/ ] h m">k!6&B? Yh m"cgG@'7oqUF獍RUU˹3e57=Oj) >k fϚCo QƩh u2>k =!VZ'C_ QƩГ#~yQ7h#]F M೶h y:>k =!VZ'C_ QƩh u2>k =Y-@<(gy|^_67&=}iQD4 |4 zAO@@gm,@Yt  |6A5O@@gm>[?B6> |>$_o]NR U6ο#}lQh q*Z>k }!VZ'C_ QƩh u2>k =!VZ'C_ |vt4> |>]sJ/6vP[[+555Rv$YӍ&_fQh q*Z>k }!VZ'C_ QƩh u2>k =!VZ'C_ |vt4> |3%Sߗ[:@@gS'*@Yd  |:B5N@@g/(@YT  |:V೵qY=C7sq M!RJC[ Rʱ( t0eg{gG ீ23 8=E'vȧi) Z>k }!FBO Yh m">k!6&B? YЛM#@n?ugpn '[96F >o.***oN$tt\GqQh u2>k =!fϚCo M೶h y:>k fϚCoV |rl4|O;/}ŨS@ |:B5N@@gӡ7&@YD4 |<zCmM~@@gӡ7+>[96F >Btdc?F Uh q*>k!6&B? Yh m">kY)@ʱ4 VhL,`b.ZZZd!Κt9]F Uh q*>k!6&B? Yh m">kY)@ʱ4 VIr>mJ~2c?[xèS@ |:B5N@@gӡ7&@YD4 |<zCmM~@@gӡ7+>[96F2 >Ϝ9SN >2{+Cvvu  VZ'C_ QƩh y:>k fϚCo M೶h y:fg+F @]6e|޼Ptkf1H67@N@@gS',@Yt  |6A5O@@gm,@YtJV@ _"g_7F𹮮Ny>k铏n7@5O@@gm.@Y4 |4 zAO@@gMӠ.@Y:֍@ ϵhpgk\F Yh m">k!&ϚA/ ] h i>kY'@ٺ0$Gy3ϛeF Yh m">k!&ϚA/ ] U}/a!SPzDj*'XV JOZV-/RWE*T \EE *wAs#!$L.{͞${yZ;<ϳ˧`c>bP|)  s /9"30 U?4Li8I=wzͭXѴn1 (>ǜM@9DC@ϱ'd>bP|)  s cJ,.{BKN@9 L@EcU|>G_{MK.$ap!/m:_V7[ @@1c6bP|- s cJ,.{B#@ &0  (>ǞP|N.2 P@?eMM'k¿{ibP|9 slcO|$Sf!@ v21 (>ǔY]@9̗sr(>Gt%- @ f1 (>ǖy]@9G@L1abP|=! sLicO| (>' H`}leBOI/:7vω 7gݽ4ܿu Y@9tF@lϱ%bbP|=! sLicO|$Sf!@ v2_rEf`*hǖy]@9G@L1abP|=! sLicO| (>' Hsoookt|v?u@8a\} ÆM s阍cK<.{B#@ &0  (>ǞI@94B@ϱ'dT$Pt>ڣo:m¬4[ @@ϱ'd>bP|)  s )XcI BJf$@ X0)(>P|N*. PXop13>yɒ%ᪿ8\vԦ>pnZ@cO|$Sf!@ R2#(>ǒ9HA@9H@,ϱ$aRP|N!%3&%T\%@B,>?a çկ~KW;65O㙡 @ d2((>GHJ@9 K@`{P|N*. Ps؞˰)(> A`,wk8R. ~]z/>{!@@ )dFbP|% s s*IcH "JR$@ R0(>9P|N&* PX~a}SoMނuGW7[ @@ϱ'd>bP|)  s )XcI BJf$@ X0)(>P|N*. PX|_sHSn .'NOXg- @ v21 (>ǔYHA@9H@,ϱ$aRP|N!%3 s,ISHɌI (>'a PfήM'~2ܰxCӺ.{B#@ &0 )(> E@9$A@ )dFbP|% s s )1)2, ]|?kb b0wsM s cJ, BJf$@ X0)(> E@9$A@ )dƤ˰T(Nyv SLio~w>a} ?pg4ϟ. ZibP|=! sLiSHɌ"K @ R2#(>ǒ9HA@9̘sRq )>O<9zx1}/m*>_r% ^2ŷoYnҴn (>ǞI@94B@ )dFbP|% s s )XcI BJfLJ@9 K@Ejs6ozÂ' sx$!FN$@ 8r0i(>) C@9LA@idʄ ˨T*PdK!η-]-jZ@SHɌ"K @ T2'1(>ǐHE@9I@ 1`RP|N%)s&#LT%@b(>} =65;_buSjov |g4[ @@ )dFbP|% s s*IcH "JR$@ R0(>9P|N&* P@5k.'@@gϝP|ܝ;s''};1 (>wnNO@2wb:P|ΝFP|",>׾>zM{GV5[ @@ )dFbP|% s s*IcH "JR$@ R0(>9P|N&* PhϽO?гicظo> +G ɵᲧ6[ @@ )dFbP|% s s*IcH "JR$@ R0(>9P|N&* PhӦM >Ä-ISO_*qUa݆׆^ëuI (>'a X@lO@rEf`*P|$'\d&@B mM@rEfcO|"Pd{뷚.w.شn)(> E@9$A@*ϩ$eNbP|!3 s*IcH "JRLF@9 J@BoooĵO|>z9gK/Դn)(> E@9$A@*ϩ$eNbP|!3 s*IcH "JRLF@9 J@->~a￶~pҪ;=Nx⭋ª-M s )XcI"JR$@ R0(>9 A@9@@*ϩ$edʠT,03)^X|妛't~߮j} @ ES33U (>W%o_RP|N59s Ps$@ UT37U(>WnORP|N59sG+m4#@ 2wvK8sM]OzO|ETSMT!\= HY@9N@eۏSN-\HY@9s*>?[i5uw,iZ@TSIʜ C f @ %2+U (>W HI@9J@U'`RP|N)-&!DL$@ O8ʗZ? ɫks,z;P|N.2 Ps&@ I$c34 (>Wo[P|N26C PsE%@ I$c3t1c6b(,oMG—Zٴn(>9 A@9@@J)eVP|: sJiN$RZfMB@9 I@E^IkN/O |yB T@9`E@Qb("P|8 st#hD']$"@ b1Zifjm@l)XsM8~=*\~;bP|=! sLiSHɌ"K @ R2#(>ǒ9HA@9̘sRq )>>a9s愉kB7._}O5.@H# XD)e,"@ b1 (>GX@9pF@tEb "P|8)fn&@|vӦMkV|~E:k6.Mןy3ѵM s*IcH $RZf%@j?) (>Y Z@O@J)e$ɐD 0V=æ7\2aЋò6 (>' P@B|[ s+-I (>' H@"x s:f11 N:'>2) Z?5k0nκaAؼm?D4ɔ!G @ t2) (>W HG@9LJ@g`P|N'+&"HP$@rMfϞT|^4^x~tu[o^شn) (>Y Z@O@jϩ%f^P|R&Zb%@J*M@jϩ%fȀD"PDyy_6NHNn t&ܙNݩ \@s;w }ݗ йsv$@/s'&@sI`DY, @IE[i{W>ΙiRP|N)- Ps ؟SK̼T)\ HM@9K@UۛSK̼ (>G D`43fӧIW]&]Zp 7_|eӺ$RZf%@j? (>y R@J}{ sj*Է7 (>yP|>" @$?o:ճXӴn) (>Y Z@O@jϩ%f^P|R&Zb%@J*M@jϩ%fȀD"PDyÃ? ~- @ %2+U (>W HM@9K@UۛSK̼T)\ HM@9sHZ->O0!~ S}=$V0ˤ0ػk[-G+oZ@SJˬT-\u'@ 53/U (>WooRP|N-1 Ps&@ 53oGd@"h>vݸG D~w}7N3M'|⍃M sJiN&Zb%@J*M@jϩ%f^P|R&Zb^@9 H@$E_u5N8amM sJiN&Zb%@J*M@jϩ%f^P|R&Zb^@9 H@$)>qaKƇލk.`Sg]_pnZذ RP|N153 PsU%@ UT37U(>WnORP|N59s Ps$@ UT3wFc0"MyΜ9a–~锋~)MZ @@ϑd<P|* s!h $ @HF$@ h0 (>'R#N2%-o ~asOG}4s=ӱ:0qĖ.– RӳY`-zT#X|]Kst6D@KvLD@yL=.P|Q (>". Q  =.P|tP袋~W͛Æ B =u饗/8lݺuh===ᮻ ƍkW3glPy,5=:->38cwV|p+rt6D@KvLD@yL=.P|Q (>". Q  =.P|Gyd ¤Iu]㏇P-gczӦMz} _}XfMҳjr--];)> @iӦٳg7YzM\W[u HM@9K@UۛSLT%\} HQ@9L@UUۗSLkҰV@{Ck<ׁ.;pWtYkyke]zp)|_U*>W%o_R҅Gϗ<&\9xK&& خvi# (>b# (>b# (>b# (>b# (>bq$c=^di6%k3f_ n:v_̜9IϷzk8묳ڽK'! Z|m”)SO9/\e`C4%l.__7K7/z;P|N6: Ps$@ i3<% (> n;P|N:> Ps#@ i+w+"zSTwq$@IDATµ^jCVV;z׻>O|;1ݧ\H\ɓCߋf͚zCϦ 2.V=? *jr&@ *I@)gvP|.[~,rzf'@lG@)WĹkºuG6mڴO?8|gvz.830կ~5|eѬ+>GA\sO>}zSy' /ⰨiRP|N-1 Ps&@ ES33U (>W%o_RP|N153 PsU%@ ES`ZK. >`xo|_~{F賟l=HtMLk1ab^;|ܦ# M sj*Է7) (> J@*y s/) (>Z3mo 79眖&8CW\/^;颯}k# gqF뮻F$50  uyysyw7x ömM sr +ķ5I (>' H@"x s+-I (>'[Cvi3Ϭ/ 7xcؼys}b֭}UW]:pLJy)SeaԩaݺuEXreK3qs @ Nϵ =g00iJ2'Ôjز-sゆ5o sə*P') (> ([@lq s陝) (>^ |;Wo~'LΝƍf͚VX}/nkO<1uQg5kքK/4|`hK@7 tZ|>ˋ o]԰ RP|N59s Ps$@ e3;e (>-n?RP|N9= Ps#@ e+q;/{ / ַZ{ Ǐ߻dɒ'u]ESO ֋p@8>SV?/_>ҿ+>NnC(0ǍeDMZP|nʕ (>u@[r% @@ϭ[~ $PU7믿^zCϞ=;}aĉO>_|IiK tZ|>餓B___h[;>z3K)WZP|nʕ (>u@[r% @@ϭ[~ $PU6\j _~y͏ᦛn;YӦ9昝^ 9PkӦM; ^{/~-뮻m O7o^nj }zCv3l?!q׆.೛~RG~C?-[qNBj70u7oS@ pzC_ ,z; P?o־jYM_ 0@3kY~f5} @{wߡ~jժaÆ/Ja=SL <@^m+uGJs;>OO?tSԮ{v 'o¯_=aɒ% kP䡯ڧ׾&n\o w﫿|qό!@@aϚE# L0a?Q/_>V  @.P$u  @?j7T|lق#Pk־jY}M_ 0@ߋO4õk׆7|U?eO~R5KfE.(\z-?)Ǐf +VhN/CP ׯQ˹ Q|ɳe[KU.{B#@ &0 )(> E@9$A@ )dFbP|% s s )E0_+|_~yWD'O~{غukxPҍ覛n ?SN =PO}1rHiӦpwkg 뮻6}:]w͛p=3.v-﬿~'>o4lߟZMk@@?GC־j$dS| @O䵯'>r_ }8` ,~4 9skYM_ 0@3kY~f5} @Sߡ׾jaÆ/Ja=`(U'>=NN>.׽.s9oG 綸\L@ ey`p>:X I@94|rP|-Q!@H"u=sKy(R@H]&@ 7-d)0{_|eq? I (>' H@"x s +@% (>' @@t[ sѕ;xoooc'>>yg_~?|+_ _~.\rI>}z?px ksg? ǏozӛZ.K}=kϚ8qbl]>;r-l1(>9 X'>6I~ǒԺMM s/ (> B@ u{ sə*P' (>\Esy8S@8묳w0I',\ᚡ7Od~_.O-7}*Z*\p?a5/?;蠃}N;kZP|.K>.jy} ===Θ1#L>zb0~q0ɻ«59'txfԩO_h]@u+W @&ZP|nʕP|k (>nJ(>5ж?~߼y<-[~~/ {Gxß韆ڧGtMaog6uC_O{^=[ss=>нeW|.[~*jyڴiG<ԩS'_Q^+>O x úCo}'@@IgxJP|.v$/|@@%bۊ(Q@Dl[ sVs3g}C OyZ|yvڡW*]˛yBڳ>;qa„ ?^ti+¿˿m۶57eۏTƲ&]D1BӲ$)dl&@"mK@Fgp*P|ݖ$+lt'@ mI@FxA+>yʕm 뮻Y8 Y&lmmŊm/쾦癫S Ps1J@yT#\ s:UۚƢuBOx~Ҕ0Ryp⭋21,v$#?#@@swؙ΄P|Wؙ΄P|Wؙ΄@m(0ǍݵN@Y$\mF@9(K@(>g Ps ȶ @ ltXcI.IyΜ9ǚ~EÄ?xl@4yCSN-\H]@9O@ejۋSO)\H]@9stHƲ|ĭ_k:=+ iRP|N59s Ps$@ e3;e (>-n?RP|N9= Ps#@ e3{Qb("(|WDxr# @3E@w (>wgNM@ϝ۹P|̝;s''};1 (>wnN# (>bME[>ë@TSMT!\= HY@9N@eۏSN-\HY@9sZ)>O0!~ϙ3z-Wz󓦄#n5C/.\꡷ @ y#tJP|.Vd!EA@I%Aۆ,!(I@$h s1:DL1abhǘ6mZ={v-wzy›~Q/}rmM sə*P') (> ([@lq s陝) (>٣P|2C X].hsV_ɍD;ss)ܝ;5 (>wnNO@2wb:P|Νtset.ܹ; (<"E4 Uya#2pu HU@9M@UۓSN-\HY@9N@eۏSNQ (>GP`mX~g[~lc'7:P|]tswt.ܹ; >܉ \@s;w }ݗ йsv$0,  $n/a;s&l ׆z@iz^X|Ӻ*jr&@ *I@)gvP|.[~,rzf'@lG@)g(PD(nyƌa=[|o OcIxjݦu HU@9M@UۓSN-\HY@9N@eۏSNQ (>GP`,ϛ{&Et“o:naʔ):p_dsa {;/*>lqA6:P|΍tsJ@yT|n&@,p%@`Tϣs3]&e;.P| 4 (>7X!@H'OjվN80u랁гicGo Y\_?o]4wd!EA@I%AۆlA(A@d[ s6Q:%(>l P|&JE@9$A@E  3 9~#  Њs+J!@ (>@[r% @@ϭ[@K-1ckG|2P|*N!@`炁=ԁ(P@@\&@ ;"u  P|.ף N@9Hj?Y|gssBaN$ PP|  (>j[@wzP|ntsw'ܞ T@yD. @@]I' M.A^&mX٠zW4yCSO)\A@9˒9(>琢3 PsY!@ Rt0D,nyΜ9çyawЋ𪡷 @ ,btJP|. 6d#MB@ % ۂlA(A@d[ s6Q:H,ϱ$ab(|uWN`>% r.-6b. h[@m27 ] жsdn c),>_pSkY(>gC PsIж!@ ltJP|.d#MB@ % ۂlAbP|% s @[;]#@@[mq.P|_O@m.P|&s],;:m (>M;P|ޱ @`Hs___ kO=ԡ[čk-arC/N,!(I@$h s6Q:%(>l P|&J!@mA@6D (>ǒ9]iٳ4T|~Cx?^z.8wd!EA@I%AۆlA(A@d[ s6Q:%(>l P|&JE@9$A@cQ|޴?Gk:^X|Ӻ,rzf'@lG@ϩ'h~P|.S^.z'@L2E@ϩ'h@D*0<\|K“6Ezrc @3E@w (>wgNM@ϝ۹P|̝;s''};1 (>wnN# (>bMcQ|p6==?lܴn) (> ([@lq s 2Զ (> (S@Lm{ s ?:"1 S|>CìYO2q0~`xIGo^z[g7mz;P|"F @$璠mC@6D  \-F@9(K@(>g"K @ vv3fӧO>Py 3omz;P|#G @rB@>d$/\G@9,7(>瓥D"I @ z(>Ouyl ܸ  (>+zY@wv:P|D=ts&t"܉{VnM޹ D@5؁p/(j`K8E/K!GNA@98ۅ|I(^@xc; s>Y:  (>olP|'K'D@9 A@wP+̘1#L>}Lׄ[7>ya`x_rP|%I @ 2A@N9,-\ sNi: E (>-$Ss1Z)>O6~>:կ>դ+Y@s/k/[;>z3 k @ RtP|.K>"KA@e(ۃ\sI9(C@ e{ s.I:G4Da"h| 'Sh'v[dx➕υ]ְ rP|!Eg @,粤C@.Ϲ$!\=E@9$2P(>璤sD#M!@ rϷ/??:r @-綸\L@ (>w/'@m@@ (>wqN@m.P|&s (>O  0$PTEl P|*N!@`炁=a(X@``'@ +tcH  0iO4vIq.\5o s):e (>%mrP|%I @ 2A@.Ϲ$!\=E@9$#h0 S|>3Boo&_Qʇ<~x'׆˟Z۰ rP|!Eg @,粤C@.Ϲ$!\=E@9$2P(>璤sD#M!@ rvsi8PйW6\- @ u4?e (>m/rP|!Eg @,粤C@9 %\}A@9!*0  U|>+oF#@@gϝP|ܝ;s''};1 (>wnNO@2wb:P|ΝFP|"*>66g (> (S@Lm{ s):e (>%mrP|!Eg @,粤C@9 Q (>GaX`g瞞>O0gΜᓌۺ%VC^9>cw/ z~F@9(K@Y (>g PsO@VY0,\0 sVq:L 1`RY񹷷7:餓4a`ݸ6~C8 K“6 (>g Ps ȶ @ +t P|. J@98 xP|*NA@9@@ MfϞ=|sϳAЋtXq[  s6Q:%(>l P|*N!@`炁=a(X@``'@ +tcH  0s﯋P|~- ó@`F% r.-6b. h[@m27 ] жsdn c)F[|nE8ۆ7} ömo @@6D  \-J@98 xP|*N!@`炁=abP|!3 hϻ_wiM@Go'x@?<uQ÷N2z7 {.Egn]԰ rP|%I @ 2A@N9,-\ sNi: E (>-$Ss1Z->Ϙ1#L>}DC?<2^{0Njּ!@@.Ϲ$!\=I@94|rP|)Mg!@h碅=sJYP|"C @ǟ3 ވh_@}3w нݛ Йsgn"@;3w&@3E@w (>wgNM@gϝvKhmyg C ϼws᜹ּ!@@.Ϲ$!\=I@94|rP|)Mg!@h碅=sJYP|"C Ίϓ'Of̘O>|lz.2!.>|xshX(>璤s Ps @ 'tP|.Z I@94|rP|)MgB@9 A@O80u M_&^4^{qݢo^հ rP|%I @ 2A@N9,-\ sNi: E (>-$Ss1F[|î5y%nX(>璤s Ps @ 'tP|.Z I@94|rP|)MgB@9 A@E/}rm ވh_@}3w нݛ Йsgn"@;3w&@3E@w (>wgNM@gϝvKh(|cwk"KA@e(ۃsJY(Z@ha'@ 'tP|.Z I@94% (b0 Q|>+oHF$@@훹P|읜;ss)ܝ;5 (>w.S@;swj:P|]+]? @@@9s43z6m 0a˦}66yC\sI9(C@ e{ sNi: E (>-$SB@E {>9 (>甦D!E @ {e)?v- @ RtP|.K>"KA@e(ۃ\sI9(C@ e{ s.I:G4Da"(;'5~ t #@@-SA/'ܞ n hO@=/W ݝ Оs{^&SuLvm0gΜгicsa {C\sI9(C@ e{ sNi: E (>-$SB@E {>9 (>甦D!E @ BoooSyƵaeaxvNoD/ܾ;^ L@37w НݙS Йsgn"@;3w&@3E`ۥ4R|ٳg7W+>fI8kof0?lִlY(>gC PsIж!@ ltJP|.d#MB@ % ۂlAbP|% s hϻ]tsJ@yT|n&,lb# uyp­FP|"F @$璠mC@6D  \-F@9(K@(>g"K @ v.>/ ؏m>t,1 B. ݑ L@ (>wYKGfL@w\F%<*>7hP|n6BZ)>կw\7 ]ǟ3 k @ 'tP|.Z M@9D"lrP|-Q!@H"u=sKy*P|< @+?? ӧOo8Q }KiXws᜹ּ!@@N9,-\ sn:E (>&[C@Ez6 (>疨T.\y @ .>߾?|ޘh_@}3w нݛ Йsgn"@;3w&@3E@w (>wgNM@gϝvKhʆ=!@@N9,-\ sn:E (>&[C@Ez6 (>疨T.\y @ w7)L>Dׄ^`[HUօ?a$SB@E {> (>疨 PsM@nϹ%<)\g sn:OϕG`Yyڴiᨣ ~xÉ&_^HS\.{jmõ @ 'tP|.Z M@9D"lrP|-Q!@H"u=sKy*P|< @+N8!L:DO(nyŏߝa$SB@E {> (>疨 PsM@nϹ%<)\g sn:OϕG`?_~xC"7&P|ntsft&ܙNݩ L@37w НݙS Йsgn"]ƺ.ذ7I@94|rP|-Q!@H"u=sKy(R@H]&@ 7u+$"0ݽ4&Opߤ++1LܸaCw, O԰ rP|)Mg!@h碅=sKy(R@H]&@ 7uP|.R׳ M@9Dr#0R|3gNijC^ٴ۟K6nnZ@\sI9(C@ e{ sNi: E (>-$SB@E {>9 (>甦D!E @ .>㖅M[8  Йsgn"@;3w&@sI@ (>w_NL@ϝ۹P|̝;s'GdH&.>ϼa~ضi F@9(K@Y (>g PsO@VY0,\0 sVq:L 1`RQ񹧧'>aΜ9 GuKйW6lqAÚ7M@9D"lrP|1Ug"@(d=sLՙ(J@(Y%@ GSuJ+9 %(cD@QEz.9 (>瘪3U*\) HH`g?<̞=D˞ ?~[/nX (>疨 PsM@9L%\ s:E (>%(cTs6'@ !,>?@ϞIF%@@훹P|읜;ss)ܝ;5 (>w.S@;swj:P|]+]? @@X]\8g{CsKy(R@H]&@ GSu&P|.Js Q@9T\rP|1UgT@R~ Xo_>wNoT/ܾ;^ L@37w НݙS Йsgn"@;3w&@3E`ۥ4|QGYf53a`ߙwwʆ5o sn:E (>(cD@QEz.9 (>瘪3 PsQK@9L (>WosYmo{[>}zÉjO<Ұ~ռu돯nX (>疨 PsM@9L%\ s:E (>%(cTs6'@ !,>keOMF%@@훹P|읜;ss)ܝ;5 (>w.S@;swj:P|]+]? @@Xpu  (>疨 PsM@9L%\ s:E (>%(cTs6'@ !'Of͚Op߼o# Ȫּ!@@nϹ%<)\g s:E (>%(cD@QEz.9 (>瘪3U*\) HH`gO>9x 'xGaּ!@@nϹ%<)\g s:E (>%(cD@QEz.9 (>瘪3U*\) HH`gSO=5L:D+Auݿ"ܾa&[C@Ez69 (>瘪3 PsQK@9L%\ s:SϕۜƲ.w.ߘJ7s+ܽ;9 (>w.S@;swj:P|]tswt&ܙ[rwM2%-o ~asOG}4s=+L{W83]s5guV8qN?\xCoK\*HX`,g߽4ܷ5N (>P| (>*: @@ϭ[~  @u֭ ]tQogؼysذaC.p[-_r9sf~pp]wqpu%@IDAT{p׊e(ۃƲ|τG خviMM$ C!8!@whP|n;P|!O?<#\&MpUW< x_>{'כ6m*f [)>k֬ t+_r-\:(>9 ΊCooo{ás =66~ǒԺհ7H@"x s +ķ5 (>' P@B|[ sr +/zڿ{PDڧ>uK.$;/\}#]6/ڳwe|W"R|~k^.CSN9es碅=\vV|>sZ+>nZ?NjM sNi: E (>-&[C@Ez6 (>疨 PsM@nϹ%{"}N;3׿`pLJ[6_4ʕ'=>+_Jx[RV3gά:QNQہ<Ʋ۞˟ߜS @`;ہLG@D(>Ǐ "xK(>Ǐ "xK(>']qC ԧ7.\{?bQyʔ)?ų2!ox9㖅Mc4md (>WokP|N.2 Ps؞˰T,\q'@ )2, (>W@Q~k ֭ G}tشiN:Ç??|3^{:ԾtI' Or3ϬbWo~m+N2z }}}xӉ&n\o7s0e[Ӻ$SB@E {> (>疨 PsM@nϹ%<)\g sn>}zKƒ>t7/sO?=\/})s1F}=?φZsϭ*u+{Vys&@ %;᠟_tz5 M@9D"lrP|1Ug"@(d=sLՙ(J@(Y%@ GSosNKk_ Gyd83]wݵ-+sDvT|>#»GnlXߴu[.hX9 (>瘪3 PsQK@Ϲ&\!\g s:E(>*ivZ83E .So1l޼9>1z֭-ݷ&O{GUW]:pLJy)SeaԩaݺuEXr~\u'@ *>慩ۜX@c:7 Ѕ]# 0*Q.P|Q (>tsJ@yT|O~2 _W7͖0aB;wn7n\5kVXbEKm/| OKE]pY;n^vOwaL@ӹ.P|4;/{ / ַZ>Ə_wɒ%- 7~@%{zz]w5\t O=TXpa}>8>׊۟+s"@ e*>??N)N[br~! @=\M@w (>wwNO@{yP|J*ϵ"ۿۿ;zlrk\__/c}_bΞ=;}aĉO>_|IiK =ol:~3ono {ngY IBH H RDXZ0\(~T/@eSRo O:ʿW\qE:snusMn֧QW*]~/7?뮻nˋLo~f̽k={L|C*KɚK@T稛%T$@ sE@ f U@9fU|>Cҗ4o޼tqǥ+V +Iy8l} '0>zWwUy#H|o3f=C =Tyc0-]tC/a\6tAugC9'@@^;=cCz?k}ӯoNzxvT:Z`ԩCZx1e"@@VVy…YBO[r_ a'ׂ 7L'̵g*>{S @`[o=t%K7L'*>>osa}C~wyӶvtM75k֤׽uCmsQӑ=ءߍxks]w]6mZ:餓/~_H?T|I #[{xο1M߾tTpz(!@ sȵ E@!B V@9j#@sT# + ϙA#@ @pw\'?暡qvKW]uUz'G-9>yŊxZlٺ 5{g-ܲ9sװ)_/^צV[VףZx'C?_no~]Kj&N?A>uE{oi]_t/Z7(FZnݭ?N /vi臭>G) $zu h >s'>> @`xYfO˗/B 0Qj;עE6ڽBFZvm゙2܇zh:ӭޚN=ԶvA.(s=Nh략]veկ~ogow}K/4h7iV77s1裏n!]y݌q ˫O~|'͘1#XoHsNM,|՜gҗݴ?- lP|KI(/\%k PV@񹬯P|Oi(+\tb (>4ƍKI>Ӂ;toM%\8Ox _Ol78=:Aeϝhrx/~fJ D@EI@, PsEMP|dBH@eJ& (>o2T$x)ZO|bĤߤ꫇h:n[9o|3#fh)Ӝ9s^_f Q W+^D2 @`=8|CGC4$ A  ؠi I)Skf(>tm n̘1sIgN_g=u9->N+L[nez{޳ 6~vo>򑏤}{9_r۳ۦr! T|>sy _n_'ӕ=8w@h6*%KM@D[Rϥd%@ sĭD@)R Q@9V+iN:餴rt駧G4T(>?Oy>ܹs׻f7OP>e]]skɟI/N"ܵ^x_;H'|r^(>Jst\/rqzA  QQP|nEP|F @@[h_@}SNI{^C=뮴`/M4)͛7/}Ls6gӣ4ztM7^a'w=K{PAsϡO|[әg9ג:ܢ U WDΣˢ2Eu(P|(  z!@#!P|^7Q@yD?$@zqf]zWz+_9)k.\0y睩K,Y{k}-_btri5|#鵯}m3fz{W\կ_|q^{*>>FkV߻gZ?ƹDP|Qy()\Rl" (>GܪLP|.%k.#nU&J (>5:Bֿ}ԩSS듓xnh„ g[.keq.쒞z5ok56,sO%837yM8?' k; @@4h%u&@ sĭD@)R Q@9Ve"@s)Ys (q2U@N lGܪL}P|+ 0@*>>O3fH_\FRgӾH[槻Z8w@h6*%KM@D[Rϥd%@ sĭD@)R Q@9Veꫀs_=P[b1i1C5Ʈ_oY[%@@X簫P$@ s G@f̠ Z@9z#@ sfP-zC@I tZ|mfnE#4 M@9F!@sI] (q2 PJ@񹔬DP|U(%\J\" (>GܪL}P|+ 0@~4Oݯw8/-\w}OpV* M@HkBυ`%@ sȵ E@!B R@9Z꧀s?=A|fmƎnD<{%^h; @@4h%u&@ sĭD@)R Q@9Ve"@s)Ys (q2U@N tZ|Ҹѣ ݹi k M@9F!@sI] (q2 PJ@񹔬DP|U(%\J\" (>GܪL}P|+ 0@/5Q7+%KI@T稛%T$@ s7{0&IyHf?|l{N@;7w Ps{s' (>׷s ^@{;w Ps};s'aeqH@']&n>ߴƌ_=2 Q@9Ve"@s)Ys *ur PB@񹄪DP|Y(!\BL (>Gݬ\}P| 0`v\:}ߩ?{rE:=8w@*KɚK@T稛%T$@ sE@ f U@9fꛀs={Oi$ܶq#nU&J (>5Q7+%KI@T稛%T$@ s7{0&Iy){_,>psSw,^.P|])\ޥ&@{I@}\bP|Ν'\%&@{I`XaY @!Ii[sƌ{6Es(q2 PJ@񹔬DP|Y(!\BL (>Gݬ\P|.j&QnV (>ރ 0N0cB: 㑥^8w@*KɚK@T稛%T$@ sE@ f U@9fꛀs=|̉mH9Ϥ/d" (>GܪLP|.%k.QnV.J(>P5Q7+%KI@T稛o}`LQ/޶K|:]|S%@@wݹ:ܻt/ܽ; O@񹾝KL@۹۹t/ܽ; +<,C4:)>umR/I%{{P|V($\X (>]`P|.j$aîV0 (>@5aW+X% @'c_#_WOӿ{{P|V($\X (>]`P|.j$aîV0 (>@5aW+X% @;]&MƌJuR:lքFy24 @ sĭD@)R U@9f"@s U3 *ur PB@񹄪DP|Y&7z&@`)>9iˡT}rz[7'55 @ sĭD@)R U@9f"@s U3 *ur PB@񹄪DP|Y&7z&@`:)>ۥoHٻ?8w@*KɚK@T稛%T$@ sE@ f U@9fꛀs=WMIOH;.xq#nU&J (>5Q7+%KI@T稛%T$@ s7{0&IC{OM{OH[۞X8w@*KɚK@T稛%T$@ sE@ f U@9fꛀs=|nHW<~ԊƹDP|U(%\J\ (>Gݬ\P|.j&QnV.J(>P5Q7+WF @'O7-2Y|~K~zՀ%r  Нswn"@N:.5 (>woNP|o нsv$@>v.1 (>woN (> Nϟ[4fG˞o; @@D[Rϥd%@ sE@ f U@9f"@s U3 *urM@oL tR|kgi4p4ƹDP|U(%\J\ (>Gݬ\P|.j&QnV.J(>P5Q7+WF @'?pfvэz#驕/4 @ sĭD@)R U@9f"@s U3 *ur PB@񹄪DP|Y&7z&@`:)>31[[f{N@;7w Ps{s' (>׷s ^@{;w Ps};s'aeqH@'/4fԨƌ#3'bB (>\PP|.k,aîV0 (>@5aW+ I@X簫_\Mss!;4y^*>"@@-ϵlZNr(>P4kڶl kڶl kڶ=P|  @1^?k[8w@Q7+%KI@dەϹE#@ sF@nܢ Y@9ve닀s_=XyܘQic6[I4/?ƹDP|Y(!\BL" (>GޮlP|-j#oW6r (>5ϑ+[_ Ɗ[o1:8a4enH5 @ sE@ f Y@9ve#@ snQ,y [@9yDP|]"v%@`->j7,>?^2P|])\ޥ&@{I@}\bP|Ν'\%&@{I`XaY @!ny c'_3q^ U@9f"@s U3 ,y [@9yDP|]-[<" (>Gޮl}P|  0wf\ȫ6nyqQnV.J(>P5ϑ+sG@dەϹE#@ s羰{((ny_='ݺqQnV.J(>P5ϑ+sG@dەϹE#@ s羰{((nyƧ,>hs;`r/ (>w.P|sR нsv$@>v.1 (>woNP|o нsv$0,  hi[ܮq MkQ (>Gݬ\P|.j&#oW6r (>5ϑ+sG@dە/}aPP!oN}r#5sD (>Gݬ\P|.j&#oW6r (>5ϑ+sG@dە/}aPPa3'w6^οgq (>Gݬ\P|.j&#oW6r (>5ϑ+sG@dە/}aPP;LLm CO~T (>Gݬ\P|.j&#oW6r (>5ϑ+sG@dە/}aPPw&4^%I (>Gݬ\P|.j&#oW6r (>5ϑ+sG@dە/}aPPv6T>8w@Q7+%KI@dەϹE#@ sF@nܢ Y@9ve닀s_=XyiHI;Lh$ҽOoyqQnV.J(>P5ϑ+sG@dەϹE#@ s羰{((qcc u#?ܽ8#K U@9f"@s U3 ,y [@9yDP|]-[<" (>Gޮl}P|  0߽?[L% @;E@u]jP|Ν'\%&@{I@}\bP|ΝP|!O}t掅5 @ sE@ f Y@9ve#@ snQ,y [@9yDP|]"v%@`->pi5.Z8w@Q7+%KI@dەϹE#@ sF@nܢ Y@9ve닀s_=hNK{ne#i'W4 @ sE@ f Y@9ve#@ snQ,y [@9yDP|]"v%@`->Ү4W`r/ (>w.P|sR нsv$@>v.1 (>woNP|o нsv$0,  h|˶۸>ZqQnV.J(>P5ϑ+sG@dەϹE#@ s羰{((nfǏi$s4iэHZƹDP|Y(!\BL" (>GޮlP|-j#oW6r (>5ϑ+[_ @8hfEM˞_3ɽdt'ܝS@νKM@۹۹t/ܽ; O@񹾝KL@۹ò8$@@C?<+=qQ>_b (>Gݬ\P|.j&#oW6r (>5ϑ+sG@dە/}aPP0l7^3gs*ur PB@񹄪DP|]-[<" (>GޮlP|-j#oW(>C @vϳ"'>׊^Loÿ{{P|^,8 (>_dP|ΈiïX@2 (>g4W,`{-y Ɗ;TzlD|z՚m; @@dەϹE#@ s G@N眚f ]@9#@ sNM.}\@H lӄe[Mg}#;n8w@ϑ+sG@t95"@ s G@N眚f ]@9빀s=hıG}>hr/ (>w.P|sR нsv$@>v.1 (>woNP|o нsv$0,  h-޸gVƹDP|]-[< (>G߰|P|ΩioX>r (>47,_{N @;}&KoZ#/Z>xƹDP|]-[< (>G߰|P|ΩioX>r (>47,_{N @;O3+G~x" (>GޮlP|-joX>r (>47,9sjE@t='@To޿הFŸ,|.qƹDP|]-[< (>G߰|P|ΩioX>r (>47,_{N @;7: ol:Es,y [@9yDP|a)S, (>G߰|P|ΩioX (> Pvo5!kɍytY?8w@ϑ+sG@t95"@ s G@N眚f ]@9빀s=h|ԎMj$s/rq" (>GޮlP|-joX>r (>47,9sjE@t='@T[w&붍_tl; @@dەϹE#@ s G@N眚f ]@9#@ sNM.}\@H S|>ۤcvn%+/^6P|])\ޥ&@{I@}\bP|Ν'\%&@{I`XaY @!NMJoqbK~TO7 @ sF@nܢ ]@9#@ sNM.} S@9YDP|az.sr$@`@6V|et+&;Lh$O<8w@ϑ+sG@t95"@ s G@N眚f ]@9빀s=XyI[wp֍.m; @@dەϹE#@ s G@N眚f ]@9#@ sNM.}\@H S|~o,>O>l@{N@;7w Ps{s' (>׷s ^@{;w Ps};s'aeqH@;S_]:`V{Eǟm; @@dەϹE#@ s G@N眚f ]@9#@ sNM.}\@H S|~o$m -7 @ sF@nܢ ]@9#@ sNM.} S@9YDP|az.sr$@`@)>xiUl$>Zq#oW6r (>57,9sjE@t95"@ s s瞓{ *NcvۦY|˟O,Y9ɽlt'ܝS@νKM@۹۹t/ܽ; O@񹾝KL@۹ò8$@@Cv0q)?|,=tU" (>GޮlP|-joX>r (>47,9sjE@t='@TY}~- Oi޳7 @ sF@nܢ ]@9#@ sNM.} S@9YDP|az.sr$@`@)>}4e1ohƹDP|]-[< (>G߰|P|ΩioX>r (>47,_{N @;Ͽnf8vt#1MK_8w@ϑ+sG@t95"@ s G@N眚f ]@9빀s=h|ҖG5/8w@ϑ+sG@t95"@ s G@N眚f ]@9빀s=h|!; !" (>GޮlP|-joX>r (>47,9sjE@t='@T`c}&KZg_M@񹶍K(>o{ Q@ƭL@ʹkܺt+ܭQ@ƭ\T@(`[o1:>h$\?8w@7,9sjE@ 5lYFr (>4kزP|%i5(>װe{*Sn#@`6V|>`t7{tm; @@t95"@,#sIC@ 5lYFr (>4kز=P|) 0+>4}7>tU?|qoX>r (>4kزP|%i5(>װe %KjP|a2T@F l|茭Hxϒ/2q<@IDAToX>r (>4kزP|%i5(>װe %KjP|a2T@F lY_;+_ƹDP|a)S,jP|a2 K@99 \Öe$@ s.IsA@-Sr{,Q/>F[-OmA (>G߰|P|Ωi5(>װe %KjP|a2 K@99 \Öe쩀sO=XwN}e|Ϧs'  Нswn"@N:.5 (>woNP|o нsv$@>v.1 (>woW'ONvX{>쓦Lt=n-q=:ujz{;:}={pR|N+>.ۦw9qu.KO4 @ s G@N眚f Ps [\Ϲ$!@,#sIC@ 5l9sw=i֬YCW^-[Ze_^ziҗ֬Y_?ϧٳg?3ҷbjgs;J!@@J+>cIWLjP#K?޽qoX>r (>4kزP|%i5(>װe %KjP|a3r!sM[ou=WJ+WLh9G>4iҤt7zժU_ivݶ9Ϥ/d (>G߰|P|Ωi5(>װe %KjP|a2 K@99 \Ö3elKk&M6->ѹ}n /LӧOOgUW]5e|zfoi…i]wMϛjz&{NNoۥY|OK~T^ @`sP|\6u 0σ%I@ysچB.o#@`sP|ޜ (>o؜7ml-oyP;H'|N\pAzӱ֬Y3IϭO|>a6iӊHX.ym/+^ƹDP|a)S,jP|a2 K@99 \Öe$@ s.IsA@-gxW+}Ǝ5*}[J9 70l|{;ϊ+r (>4kزP|%i5(>װe %KjP|a2O^xa~oxҗtmSN9{ڹNozӛE]4Z(>#l^+>tGm^a@@A@0 (>c!bB #A{ !CQz$#AG:tק~mkW\}ַ{6va17~96??ߴi[5^Yw-J7qoX>r (>4kزP|%i5(>װe %KjP|a2|//{n[OիW'FY6tѶn4eʔw3s=.U|^GzoF3n_~ƹDP|a)S,jP|a2 K@99 \Öe$@ s.IsA@-gO|"ٟY|cƌIzk5jT:#ӢEںoC}3K/4]o 0+>uiY> ]@9#@ sNMA@-H@.\ Ps [\Ϲ$!@!g?%} _Ho==z{~C=to?N  @`w譯Ee˖Q!@ L<9w(sg4*XЇ>w/ǜ"@Zj}sEq"@ ̜9s'>ϟ?'>oO 0k?>ٛn>$uœO>7L'I&'==wq铟dkv-]uU'HGqD;N\pAZbE?-[gu͞{.t-dΜ9C38c>/VotWAh"'xz/74uܘ?)ޏy5sN P@?YI|˗/O ."] ]ve>͝;Yn$@@ x+|/ @);cW9!@@3[j~f5} @?Y[_ .LK.B ZȔ)SR/Sy|zh:>SOmtA颋.JsO:ںgE]vYz_ۮzgo]͍ݨF*>E65/}xJZl&[l&๕[l&๕[ywcO.nѰo~Ӌ/A{l:3Ӎ7ޘN;^iڴi}47-vM7|pݵ^{';/{mL>&}Ok8 @ *,$3AC@5լZP2(>g@4jYdP|΀h(>WM :nܸ*O4)>[o/8xK_~Fߔ .t~|n=vju#sA@-H@.\ Ps-9 @Z6-'9s(A@-ϵl:CSNIw'>'~ꫯN˗/OGuTZto7UHO?hfEnu:ysA@-H@.\ Ps-9 @Z6-'9s(A@-ϵl:C)Skfh>tm ;u̘1sIgN_g=u9sjET|>xVg4^VwXjP|a2 K@99"\˦$@ sE3E@MI@f Ps-ΔNK'tRZre:ӏ~&os\:Ç>OLs]߼moKp@߿*>w&U`Μ>{ϬLƹ \Öe$@ s.IsE@MI@f Ps-9 @Z61) M|衇]wݕ,Xwߴ~I&y~iΜ9>]w]=zt馛҇?akP]) @`<{t/OHusA@-H@.\ Ps-9 @Z6-'9s(A@-ϵl:sٳgw]镯|ej}گ ;sS,YVk_Zc=t7@- @`'Y|飷.<x豀s=P|yA@I (>p t$@``vu^8}P|zGENOto„ gc9&}inHW^y>E`MS K  Ps [\Ϲ$!@Z6-'9s(A@-ϵlZNr(>P4Zkٴ=P| 0#{}{Mi$gR|n8 @ *,$3AC@5լZP2(>g@4jYdP|΀h(>WjA{%+i!@`F*>I=kDv޲t/:C @`@tq^6}P|  0 `^N@{N /K<7ϽxUl~#߽v靻Oj9wi/7 @,#sIC@-ϵlZNr(>P4ZkٴP|Ρh(>ײi9{&3j"@`F*>USwݶsI' Ps [\Ϲ$!@Z6-'9s(A@-ϵlZNr(>P4Zkٴ=P| 0#?]=tO xr/ (>w.P|sR нsv$@>v.1 (>woNP|o нsv$0,  |S[vڦq%^ƹ \Öe$@ s.IsE@MI@f Ps-9 @Z6-g{FA H35{{xijP|a2 K@99"\˦$@ sE3E@MI@f Ps-g= \`Yl`֍tͼesA@-H@.\ Ps-9 @Z6-'9s(A@-ϵlZΞ (>ڃpϟ;pF:hVkQasA@-H@.\ Ps-9 @Z6-'9s(A@-ϵlZΞ (>ڃp~fF3X~ƹ \Öe$@ s.IsE@MI@f Ps-9 @Z6-g{FA H:xVgquAsA@-H@.\ Ps-9 @Z6-'9s(A@-ϵlZΞ (>ڃpaǶ[6-_װe %KjP|er C@9"\˦$@ sE3E@M3Q{.0R+^>Y|~K~zՀ'  Нswn"@N:.5 (>woNP|o нsv$@>v.1 (>woN (> _[oѸ7?^|jP|a2 K@99"\˦$@ sE3E@MI@f Ps-g= \`HxW7 @,#sIC@-ϵlZNr(>P4ZkٴP|Ρh(>ײi9{&3j"@`F*>wNH7P|])\ޥ&@{I@}\bP|Ν'\%&@{I`XaY @!0RG풶=qΜƱT!\Ś$@ s&HcF@U J@ F Ps5  @jV-h{%9 HF^*<RjP|ur Ѝs7j!@f皷/; (>w*zjP|y Щsb'@f皷/{" P`C&}sN+^XݹsE@MI@f PsMۖMP|TA PsMۖMP|TA PsMۖ'=al۱U/?#sE@MI@f PsMۖMP|TA PsMۖMP|TA PsMۖ'=alӥpъۿ܀q@@5լZP2(>g@4Zl&Zl&ZP|g A`C?.|=:xӼƹ"\˦$@ sE3I@mJ (>o I@mJ (>o I@m0{6T|pN:Ys>⇏6 @Z6-'9s(A@M5m[V6U@ySO@M5m[V6U@ySO@M5m[֞(>C }ݗ=*Ʒ~Ũ)̪E @@wݹ:ܻt/ܽ; O@񹾝KL@۹۹t/ܽ; +<,C4F*>7.v@Iٛ (>oJ оsV$@P|nʕP| Y@93qP|Z($\XB (>\PP|.k4íT  (>5pV* ]s{;7su (>׽ L@3/W @@{ (>oJ(>{ @}\Ig3G@X簫Bυ`%@ sȵ E@A炸F N@9J"@sA\ 'n PP@ u (>׹w \@s3w Ps;r5 оsV$@P|nʕP| Y@93qP|Z($\XB (>\PP|.k4íT  (>5pV* ]s{;7su (>׽ L@3/W @@{ (>oJ(>{ @}\Ig3G@X簫Bυ`%@ sȵ E@A炸F N@9J"@sA\ 'n PP@ u (>׹w \@s3w Ps;r5 оsV$@P|nʕP| Y@93qP|Z($\XB (>\PP|.k4íT  (>5pV* ]s{;7su (>׽ L@3/W @@{ (>oJ(>{ @}\Ig3G@X簫Bυ`%@ sȵ E@A炸F N@9J"@sA\ 'n PP@ u (>׹w \@s3w Ps;r5 оsV$@P|nʕP| Y@93qP|Z($\XB (>\PP|.k4íT  (>5pV* ]s{;7su (>׽ L@3/W @@{ (>oJ(>{ @}\Ig3G@X簫Bυ`%@ sȵ E@A炸F N@9J"@sA\ 'n PP@ u (>׹w \@s3w Ps;r5 оsV$@P|nʕP| Y@93qP|Z($\XB (>\PP|.k4íT  (>5pV* ]s{;7su (>׽ L@3/W @@{ (>oJ(>{ @}\Ig3G@X簫Bυ`%@ sȵ E@A炸F N@9J"@sA\ 'n PP@ u (>׹w \@s3w Ps;r5 оsV$@P|nʕP| Y@93qP|Z($\XB (>\PP|.k4íT  (>5pV* ]s{;7su (>׽ L@3/W @@{ (>oJ(>{ @}\Ig3G@X簫Bυ`%@ sȵ E@A炸F N@9J"@sA\ 'n PP@ u (>׹w \@s3w Ps;r5 оsV$@P|nʕP| Y@93qP|Z($\XB (>\PP|.k4íT  (>5pV* ]s{;7su (>׽ L@3/W @@{ (>oJ(>{ @}\Ig3G@X簫Bυ`%@ sȵ E@A炸F N@9J"@sA\ 'n PP@ u (>׹w \@s3w Ps;r5 оsV$@P|nʕP| Y@93qP|Z($\XB (>\PP|.k4íT  (>5pV* ]s{;7su (>׽ L@3/W @@{ (>oJ(>{ @}\Ig3G@X簫Bυ`%@ sȵ E@A炸F N@9J"@sA\ 'n PP@ u (>׹w \@s3w Ps;r5 оsV$@P|nʕP| Y@93qP|Z($\XB (>\PP|.k4íT  (>5pV* ]s{;7su (>׽ L@3/W @@{ (>oJ(>{ @}\Ig3G@X簫Bυ`%@ sȵ E@A炸F N@9J"@sA\ 'n PP@ u (>׹w \@s3w Ps;r5 оsV$@P|nʕP| Y@93qP|Z($\XB (>\PP|.k4íT  (>5pV* ]s{;7su (>׽ L@3/W @@{ (>oJ(>{ @}\Ig3G@X簫Bυ`%@ sȵ E@A炸F N@9J"@sA\ 'n PP@ u (>׹w \@s3w Ps;r5 оsV$@P|nʕP| Y@93qP|Z($\XB (>\PP|.k4íT  (>5pV* ]s{;7su (>׽ L@3/W @@{ (>oJ_{&KQ %HTI *G J $Q%(p%( Dɒ<$%onnyypf{kSLg >%j|TqV@Mb4$ b hs+UhP@A\E :5  Рs&@uϭkR"@AqݟjM@uf @՞jռlMg >%(/ \ʖ|vY@fP Z6 АsC%@ϭlV"@AqM@[פ*D@ * >IUUt >g5ك|W{ >W5(/ \ʖ|v @sy+[ @@9@fAG@k[۴*F@C *V >YUU4|n] >7hZ' ܺ&U!|nW) ܟT|nf[@_ & \|v @sy+[ @@9@lIgkU|nmӪ >7XZ) fU)|nWN@uMB4( hsThP@A\EsZ P]@𹺙=on'@s5/[ @@9@lIg >%j|TqV@Mb4$ b hs+UhP@A\E :5  Рs&@uϭkR"@AqݟjM@uf @՞jռlMg >%(/ \ʖ|vY@fP Z6 АsC%@ϭlV"@AqM@[פ*D@ * >IUUt >g5ك|W{ >W5(/ \ʖ|v @sy+[ @@9@fAG@k[۴*F@C *V >YUU4|n] >7hZ' ܺ&U!|nW) ܟT|nf[@_ & \|v @sy+[ @@9@lIgkU|nmӪ >7XZ) fU)|nWN@uMB4( hsThP@A\EsZ P]@𹺙=on'@s5/[ @@9@lIg >%j|TqV@Mb4$ b hs+UhP@A\E :5  Рs&@uϭkR"@AqݟjM@uf @՞jռlMg >%(/ \ʖ|vY@fP Z6 АsC%@ϭlV"@AqM@[פ*D@ * >IUUt >g5ك|W{ >W5(/ \ʖ|v @sy+[ @@9@fAG@k[۴*F@C *V >YUU4|n] >7hZ' ܺ&U!|nW) ܟT|nf[@_ & \|v @sy+[ @@9@lIgkU|nmӪ >7XZ) fU)|nWN@uMB4( hsThP@A\EsZ P]@𹺙=on'@s5/[ @@9@lIg >%j|TqV@Mb4$ b hs+UhP@A\E :5  Рs&@uϭkR"@AqݟjM@uf @՞jռlMg >%(/ \ʖ|vY@fP Z6 АsC%@ϭlV"@AqM@[פ*D@ * >IUUt >g5ك|W{ >W5(/ \ʖ|v @sy+[ @@9@fAG@k[۴*F@C *V >YUU4|n] >7hZ' ܺ&U!|nW) ܟT|nf[@_ & \|v @sy+[ @@9@lIgkU|nmӪ >7XZ) fU)|nWN@uMB4( hsThP@A\EsZ P]@𹺙=on'@s5/[ @@9@lIg >%j|TqV@Mb4$ b hs+UhP@A\E :5  Рs&@uϭkR"@AqݟjM@uf @՞jռlMg >%(/ \ʖ|vY@fP Z6 АsC%@ϭlV"@AqM@[פ*D@ * >IUUt >g5ك|W{ >W5(/ \ʖ|v @sy+[ @@9@fAG@k[۴*F@C *V >YUU4|n] >7hZ' ܺ&U!|nW) ܟT|nf[@_ & \|v @sy+[ @@9@lIgkU|nmӪ >7XZ) fU)|nWN@uMB4( hsThP@A\EsZ P]@𹺙=on'@s5/[ @@9@lIg >%j|TqV@Mb4$ b hs+UhP@A\E :5  Рs&@uϭkR"@AqݟjM@uf @՞jռlMg >%(/ \ʖ|vY@fP Z6 АsC%@ϭlV"@AqM@[פ*D@ * >IUUt >g5ك|W{ >W5(/ \ʖ|v @sy+[ @@9@`*jü:EY$j8qb;+c:<@z':WyN'!g1+g}  #79<^{-=li5,2O< K|Όϛ.g񻦅 L?)ϧ^z @@vi{UM&Lxތ@E>uQ9 @ @ @ @ @@ni)[y& k-x @ @ @ @ @) >;  J^!6IDATj6h.");- П;o?+?qt7'Z @Ϟ]vټc={ل)0tӥUVY%W>KB  PR`5x  XySLC%\^xᅡYCY ~ό5c3wM tqw@eHP\(.T&}$2ˤ78kI|^U  PM yV  GqQu5~G;GWUT8vw_,xcO 0No4siI9L=4,~ό5- ] Xy\? @@w"-M&Lx!YK`| -= >7ohs{RMh^@yc@@՞jC@*v >=ՆfU:(2jWyTqo`Cxkƅh&I@>HC8 ƅh&I@ >Pc8z^@ C=|&r@|Fq([G|m h^@yc@@{ӖjB@{% ܮT|nWK@]64+ ܬ h@|nW(PC|~[ 0.E39HzD@Ga 0.E39HzH@á =D|p(s7$@s5C?nKGO@{# ܞT|n; .v ЬsJ'@]jO!@Yf}N@sUm@Uޚq! <.A #=q! <.A C=|&rs5C!@{ =$Pd4{Q(QE-w[:z|n;  мsށv >=ՆfU:|nW{  >7t%Pd4ծj  qL|p qL|p(s7$@{1 =/ M !")CPƷ@*j!< мsށ>-Մ7K@]64+ ܬ hsSmhV@Y_ .")ܮvU7PG 6&@`\>frs4 @`\>frs5C!@{ =$ CPyo"H@ Mj2TQ ݖ7G@=m&4/ ܼw @]jO!@Yf}N@՞jC@*v Mvڼ?87!5B@y\4$@G{!B@y\4$@{1 =/ M !j B@ >|9@zHh >P8 @ @ @ @ @zCM&Lx7Q @ @ @ @ @ @swk  @ @ @ @ @!j B @ @ @ @ @@w. @ @ @ @ @ C= @ @ @ @ @]%@ @ @ @ @ @{1  @ @ @ @ @XK @ @ @ @ @@ >Pc8 @ @ @ @ @ >ww @ @ @ @ @|p( @ @ @ @ @t|b- @ @ @ @ @=$ CP @ @ @ @ @. Z @ @ @ @ @zH@á @ @ @ @ @ ]@𹻋 @]MozSrJzGk @;-i]vI_|q?3J 3KSِo:무^{!@#x?3{Ok֠WI >&u bw]ieI.hZlkntm+2M8ŵW5.RKW^R5/?i}rʴ+>3/w}[ү~ܗWp2 xߜ\~~W'/u'7X%09}sΙ6dJE3Hˇ>|G|_dEt=>_vegiNjT>r饗Nԧ;ַ5=kpy顇PbJ ~-Oo @};쐦z҇SO?|'>sD^/ PQ`J'߷myukR ~-Oy  PM@𹚗  @@k>O=c{.E ou|ӮYE/+_JJn3Ϝ1*_==ci9ʣFm|b.1~5HzyoeuoXWyB| P@}fh|GT:=Oeo 7p<-oISL1E^am&_h}  0&:xiG K/~򓟤?>u{RWW]WyB|G&G>siI]w]CzspfNz ĵS,>lϖ6[*Dlm|:|ك{6,}k_Kjw{ケ^q +b!N8q_g @s<gnR1<0dy'2o9}1FӛeY>[^8>#C|Bb DnUẂ>q#¢u'Wz$@`r38>O}{}:sJZ|6I[]]SٕJ*Mw\@/K:蠃R̂ߑ#p<\si}){Ypf=e3}{tA>R //u]3gv嵒 noϖq3q̴72L3;ΛC묳Ns+ʯ`$@@ uQpܫ2N,YiiZ\(nvXZ|y睗C.|,oa[n4TS巹S$z|/,\gyB|G"DDZ&*M+>qzivJ=P|#;^flaÉ'Z+k7dzKJ.![A.ޠ6hόcD?_rɣY׌ݍ%@;o1smFb~3L{wR}\A >wm2+  PZ@4  @@;bu*{숕nq1#F @`< ď] ,@1zriUVq%eidWxsB#M 9?yzGc״1hs}aD >7}F)@3 w9oti+?.Ѭ"L} 7X'bdo~.>sTb0>o#.CtMl[wWwyB|C *go+<0]z)ByH99-a_c;f\Gs̾9w+5Sټ>. W1:kќrʴjn_;k_c*O=T˞ @A4D#w. \ @` ?ʴ6۔ '>//Jc#L3MK/d%\b_?vmwGv T9F^ꫯ6 @@ .J/ &[ @`8EY߆n?+?7|餓NurH1ocM>s PA >C]{ZkQao~].j/^rb~ 7M׿ Ab.u_3g%G@ĬE_(o)+ݾ/]^sJsfSFs4* @B`G?ʡbH1ueL6?^#@@s=w ĉӚk9⧚j6KW^yeԲfy_kJ9B2GuTxǎ6 @@!ºˋ: 6lcI .`SK/a }*Pds<h3.u7yY_|[׻}駧ZkZM:(wvXy,hK{uԻJ+|].l/{Yz衴馛~xh,sO}*X]kFM`:b駟>=xe?;'ٰ>c4v)im2$D@OZ5  @@i5?Ÿy晥P6x[WT6"@@ 7pCco5\s.(]b}cKOuRˎZd}aEF o#GsmLiQKjY2,/O>hZeUyyMo{RQG*qSG>Q/޿?A:Q9 ?hX By;s>ɻ]^h!aˣY?i6KBϓ4? 0RYL l ~s3'|2yy }=>u4%tn1H9x+|p u/bfmf(mTO㩵+L>;pFoTiGӡ/~s+ F zyگccW^#BԐM%HҮ暴[vۤ뺟iEM1h8P,㇮svt _G%P5Ww_Xwy2Ro{=7|+̡B2U̢̅Z(ϜtwHb6X׹912l.,߬72]b)8`ps9'#vm[}\⋛R]a Bϓ4?(0ZYW\G8+wи3x ` pꩧm>u4!^|}ty y-|%Jl T s4j @O#BpBqa5`mg=zI ~o[k/yT:ň\Pl>XzADLjW)S?LL3M?G4!P5Ww_Xwya4\/FWя~GObZH&*eh@>XfeLy4H"7r!)n\bԾZvbl)F{kQ9 ?hP`w̳']tEw8B|{68qb9~{ @`Eu]Wo u1H|~]dER|Kl}c=6OkFB#Mg[,}L뮻n-tP>.os|A\z ~?@_ Oe Wwg> Ym>?~y6,7g?ټ[E&B|IA@CK/tzobՐǺ]p-"}_͡wݐYA) >;  @@ Tq&79#}l#ĴrKp 'p^sLDENx@: ./L"#=Ljϗ_~y=EKe ~}f|͗/y睝<Ϡm]ӟt>H@SwH34SvmS̼m8!=wOosƵeguw;\=[c#ƬvK׌ P@ dsd?TSbcVs9'tI||Ϻ|.fozR#m!@]%@ Y+T=<.y -P<~ѢG: ⫻/ tMy=WJ;SznR> T3"AN;--SOM@1M Ѐ 3̐Cv ,@:#hýM}\qwcd=H#l=\'@@!P,뮻uY'/I뮻$}H9 ?Y >iϟYd|׾twy|.Fz[o=-C*lL@\u  @blyd21zQGSY Fv-E?q:C#}{KoM/$(b:Kg9B{gnַ4Ŷ  Д@_}aS;g֨c,g}vkcg-.zk7ߜ6hb{t)n#hWv7dt);}f)Sqi%L/ h#_wWwyqE/n*K_HugWhƍ_|q`3h=!@aM74=i5L=$ZwWwy :o%!@]%@8ދ_eUWMokRLc!@@_;reemoCS~Ǹ :JW3z~Cl :F,J@cYxO?tφ}u]?o~sgvjxN@]}7n9{o>jUwWwyaSϙ1`|wyqUgV}4L3cb>HC fO:co1ױ;]^|~饗R ϧ[o5=Gyp{ }. ' @@ (O1*"Wfp vm,h@‹ 1cao)n)\}iOZzGv >kiΣF# @n!º "/_ToAb=/N'tRڈXbEX/~Kv>sMԧw1z7ɻ]^|c{'\pW\Lj* < Z0G9cBUڰc.Gz*69{|%tMӟE]4m믟d[}$ @x]wMvhJߤo]wWwyE/FHdM3Y!?F%=3b1}L<~饎|y/~عӯSvB -7u+$t8}с 1r 'b> Kξ0TwyEo]vI_|SL>3~[>wiMo}zJ!^~iYfٰkFRa#ѿ ^{0[M:B1B? []^|Zk5IŖ^ztYo+rA) >;  @@ H1b| 82L3K.$Ŕ1 w=^#@@O,y[n%m).Ķ1~߹ďK1^9Η>S?fesl7a„#O9A='@@c F.o_Wbt93qi}K9TS1-e)/|-n҈ϒ˗6ۤ9`Z1U|?OCM:"b1Q7@F}\M~n/8J uO,s[ouo~3܌3Θ?r/F >G=ϵ>l~i o 9Xs=w:#T1=A3hꪫH#g?P{WLRK-CϏ>XدĺPlc:ۘys3tM>O'v<g9#Mu7g7cbfmfB|I1t"c!@`(w7O7 1ShFmoN;z7d:3ZA@o}[iuhZMf>>.F >~D{r̍ձ  @C`WL|pr7By1To}k:S St~yk6m喓Lo6]1"@_N;--C!ߊ/~h4j+|}|3~Eck8:-Eᘆ}M6< {q /E裏 O>pӉ'geZs5c=6dv!p<Wl+b]zZzLJlBbfezoΜTTg]gy+"< 38 r)B,Pw}o|7lt 7 +矟oRjW_=d:3ZA@LuYgUc=Lg}{Οb 70_C}\]gye1pOlק.957A@ZY  @@@|;餓Ң.u1C=ԱEJs5WP[n%A:@cĥ9n 0FH w>CXnҎ;{tG)C6׊:(='~7m-'~jmu%@'0ӧ}' /[o5 &Pt<.^`Gq'B :(;X`b ;SǴbчF`.B_҂ ._|4sc:󫮺kYeϱs̑*F?úi% LNx*l/.NyiʣbE(eQS;sW`ra/>F7wK{o?ƈM4C=4w/f czgӟ_|nj~nrG"[E.MgmuqEuW6-կ&Gy8@S}fpF00Mv'NL>{E^o1\[fNz,џĵcߥc}g@F8>C] >.~{Ƶz믟gvsz @=yO^#ȑFxܷ/XwuWQWizE>zq @ r4<Ϛ{<9&̘qG|#<ڱ]hu_gg @ @ @ @ @=/ M  @ @ @ @ @|v @ @ @ @ @ =D @ @ @ @ @g @ @ @ @ @=/ M  @ @ @ @ @|v @ @ @ @ @ =D @ @ @ @ @-N<'\S_IENDB`vision-0.19.1/references/depth/stereo/assets/disparity-background-mode-collapse.jpg000066400000000000000000050775041466211133600305370ustar00rootroot00000000000000PNG  IHDR Z.{\L >iCCPICC ProfileHWXS[@ Л RH ^! J b/ ],`CWE; v"bAAY vM 躯||̹s@?ɓHrQMҸ@T&)  8vLL$6p}]uk@8]σ x%_"-(-&H6# B@3Rӕx'!q3j<4Z䙅LAY,3!˛(8 b[#XJA'o郚<^ VEajA|I.oYmyְidIsu31B5 GEC @1Jɒ%*Q#~> A,E@lq87*RŧgB C@$eH9l'Uĕz Id_g *}V 1bBQR4s#T>#8Q>RY<K@>V! S۔%F0e}f>O? &t#"+u ʼn*8X"ɍQP9o[~aj,TRϐ$(ċy1| p@`l`"֞x < @UdEA1"!BdGG-TO! ^ăђȈ w H#ȤxA0b7p<`sY<  Ds?e9 t@U-n 5@Ce\7adwrTy˫Io3nd<@y$͞>"Q>Xo`9?T_?{b 9v;&vkZcr<(V@8E>9PGxwV^|n/ʾa 8%S̬&~L4|}U|7?=;~}?eO:eB%' ` < D:` J@X Vu`#v`?G)p\m: WO'xz;ABEbX! B`$CR4$#2d2)C#H59B. m!ҍF>ƨ5:el4M@ǡ$.FנU.=^B :a `X*IX)VUaX#Wq q>> /;:?{o*@&p ɄB9a |: Dц b6q*qq=q$G" H$_R4G* ֒vN:IL\BRjsvWL3YlE&G)%Fer'3EbC$P))k(3{7^"YkWQC[^1VCXcIoT55J-.VSOSP?4'&ͤUhWh/dMO//{4ɚ֚M Ú75Z#iԺեMҶhޢ}Z1cX08 >c.c+ Sc)٭Ӫӫ릛[[{LCӳ-ۯwC!!! 2P}~ 9  713g(hCFFqFSK613 06Yirܤ۔ag*2]iz9Sf20fFfaf2ffm1oA`YdXh4e9Ͳيee{kd]66\b{T[IUv,vm}}eAޡ}a0a75َ5"8;n97-\<#~Bw K&&Ic'%/O=|їR SD) Ԥm}cǬ9}ll0p|cxҒv}Ex}^>B X) ef,\ٝU#։^eeo~=?79wOZ^Za8G?iٴNgO<>iy3;g12;gs,vnyf{K/5%i>7..t]vRA2/.:5/XܺcɆĥ7/۱\ky+F[\Y .o\MY-[ݱ&rMZ˵K~YzE`ŞJʅ _vƲ66ʺ| qKᖧ[[6me۾noڳz%5h{]mv7:nޣl/+|_ھ#7`=huPiR7>!pFCGl?jv%)?Q|dϩS&4==3gΟ 9{܉^p"b%Ku--~wPGke m^m#ۏ_rjճ׸.]~#ƭcov꺝{՝;κGWz_~Uãà-}I/R?3}Vu;/$/>gKۗ wto+׋mS_L߃wy>/`aGs?=< ˚v_E|ן/Iy_ 64#3OarϪ@?aQaws[ C m`Wʍb祃c=y|rU7_{-|\2eXIfMM*>F(iNx Z.ASCIIScreenshotμ pHYs%%IR$iTXtXML:com.adobe.xmp 814 2650 Screenshot B 6iDOT( Ĉ @IDATxieU.wVj5[1<$O"$&z" CA䰍 ;?X<0$ a,=& yhkUus̵w<{<{sϭZ\s~{Ȭur/80 C0 C0 C0 C0 C0 C0 C0 C0 C0 C A`mKL@!`!`!`!`!`!`!`!`!`!`D-:0 C0 C0 C0 C0 C0 C0 C0 C0 C0 CKȆ!`!`!`!`!`!`!`!`!`!`X]!`!`!`!`!`!`!`!`!`!`T `0 C0 C0 C0 C0 C0 C0 C0 C0 C0 Kk0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ,Ѳ#!`!`!`!`!`!`!`!`!`!`v !`!`!`!`!`!`!`!`!`!P%ZVcdC0 C0 C0 C0 C0 C0 C0 C0 C0 C0,ҮC0 C0 C0 C0 C0 C0 C0 C0 C0 C0*D `l!`!`!`!`!`!`!`!`!`%Z5`!`!`!`!`!`!`!`!`!`@hY C0 C0 C0 C0 C0 C0 C0 C0 C0 CDK C0 C0 C0 C0 C0 C0 C0 C0 C0 C@`Dg?0݋9CAF"I@|)ry4(1//kia--@)S'=6?_#ll[nswvww߽=B(Xkťe_˨6T|D|iF;∃z; [;n=|v1;y๐yN#sM0_X\aEdGna+*z&Т/?!35#DOW=(S&IJƣ6$N>2Xgl~;Z6k zF.WYmgDGb̥¾_uᕪ̀u>f{R6q<AGnԆ9 z0ZӲ>Vw\Jݷg㖍b!`@=oy[[0 R\9*0 CGwN5i}oooSN܆Q).Ν;F# _֛@? ~n6c7C?7:zShUu8nR*Rc$Z>A(ExgK.&HuG|fO]A ~i%|Hr%)2e$3Hep#nr$0q Wh >lh~H-8KLی =[>n{+Vo(E =[TL;\%IBa]*7 #2㜁\/ yrX,JR%~>2g ?#Fv7MѲje:|?mSĨF6>ͧk;SFyr~B~) e1eLvzZvU*F[+ZB1%6ۅdK Li) |_kczÏ1JQOϙvwS*. q;w*g1BV7 C0 #p-B1eHfh\v]xq=3!`pXe%(<ȉ?.\py~гL7ބGHo6cF蛞Mx.{++ W7x#MR`dДrN`#Ќ$M}hzH L$ %%0a<')ɒ̧U7d+uV $ɖdAwՒݪX_f%| {e׺⡡0f-dbj)Ubx!N,N#OcɣMѨnѧvVL44+>P@.7 wm `֟7*6f+R3\1"?Ϯ4PnZR-w@SFKV%&Z?x't]nv1ކqO" h"c?!:||q :(d A᠇7:}ʍN=|hDKG(g;^_ݖ,/{s{7$ZdKKmʐl"uHChhXcmn>k ]upvlJ%;dAkBO[~TXK!ʆ3(,[9pE:{˻*3q誣U*`)أ;T;S#fvؽR/BL{B55ajOLδD&4o!`C#pP-M ?*7i$~zR,r"L0 C`8\Jcӧ?#U.W\4 4ef]c늏l_6oz^4=D˶}*i` $!Btw rv =u1] &azDJc%+sT $_bWII]Œb w/};TmK>-ױvkho"'BD쿼BI1E۽^Ldjfic[¬A -pZYMx]"m1ZE4JMU Qвtjs Vֺ]IfJuKM&.Z+~[;^%f'ǰ`:u<}*xz'Z~9gޣJնjKJd- $?`_cK)/zhY.=AWMz+q+#7@+o ߃^LsYt׈UN͸P5-T$&3uyaer3pGloOd0(S*x<8Gn0i \}ޱا[\9?IR~ζp{99aGK|u5|f~H&t"8!>|qč CqnoKR3ye0C*';}kXk >>7ک\>B`'m!lc/#"mc"5-שU#*%E^n(_MSˬيË~LB&X`ZY[UieL@cJr^ xu%RF2 C0 C`zDKQf0Jh9f0 CFG]zW4SOeꓛQ={vjs7{!ki=p8ofizWx͛|zw_%ZWK5hX]DAKd]p?a0SxЊO.BH м6Y gh &('VD &?>`̛|v'W׷Kծ1Cbc>^)XȰ}R0nUJׂAy4R]LVr v?>)0!4榠|Չb\{@(c? r,N-~aS$%ZA? ]Ȉ ~!ɖpg/ql?sQ zdEz^ō^oݞtw,lOiVܛ%s 7Kkm-;eUXeIv &43:}=a@z-ۘ~r QFвQaLlҮOB杚qdebJiRa4SbriWUA˜'j,S]0P,עQfZiD!`!` AMT 8ݷ=5Wqڎ}Ϛ!`hwPO'gΜ{ LH5-߷_G5&3K)ľ+(Jյ 1yBCMI =roP1q:[{ὒ! +7&4R,'Zՠh ƛGf XݭS'擏$OH`%wB{;Z"r)|%"):Nw\`d{~[ZXY :TG O?R{N_jU*//)R9uNk!y7G7cvt{]4KyޮEUșT~+O\S&62ByTȆ:*#.Ǔ.Ǟ;Z2RG5y7?.ё'YU;c Q" m4flg z! swd,+ܱR1s^%Zj%Әī=F'p;ZJҤDK0;^su$\^c%h鼀8S8o&}^\u/nwqA0ʱK<ْdhĤLD賋HDd]yoʾ̏SnЭ.ꓻeLv_plFP^2s-VCIdz4 a睖hMS5 C0 I8艖sbPW\dfuX嬐6?!`C!PhyWOȣئbL׾x-Ⱥ "@|wPDѷx]ah7D˳?'b(&A1BX(yH2^4Y! 2 U.IL0Wdz ƄFdg(pL䉐2Ia %dK&TJȚ\JeWKMYʁ6ѳOvgۣ=ђ3N%faJf{h脺vBmnnh1pf`0EB47j  EyzDU%E%XTL9~."^%ղU'Շ>>^}7Fh +%Z]IXvGMmd0d-y &h6Ymmr?r~>p=q se2^8a $b2SP"U! 䴄s]8'/q$ђ:8v.]vUq-`'~"F\[ۻ\1?28Ht Qԝ>}%q o_:L2z{h'y3s7>2&D9$ȹkk;RpGTURreؚt-s4vyQ 4Z1q}Lp2LO O}l㈠Rə$h*5_0q2ZH]XekL0 C0BFHT(tMCۓNu/qL!`D*ђk<Of,[?~|*Oq ΌpP;n.x^z~sҥ.Xͣlzwc%Z?.s ]JUObbs d)yH PHM*y;w A(YE/@F.fLKf} e|Uh6vŽ/]$Xn1rgBW\ L EĊ4|F%\89bt(th<4".zit,9Ԋ.;)tJ|TOydihܾR+q<-EJi݄Ө:(Q!g\)d$׍Jw͌< < =2&hJ&[\ %2`Cb_6vܽr l$Q"Fli3<?.Hd&>Ld@vG>bKp1 pQGA{ѣkyh\|^E7h(]X@"V>} aI`>2a$( - 0~C=PHTLɿ{*d2N`'Oϸ| ('e$J=JrXa%ٔFѱ;n{ɷXCMˈUYepUF-+vކzcQs{*{~}B=Pu)O-FPV)kM 'Š:`I.ӆVGzhy;Z?yHfw XW!t Gq/0 71/=߁&skùõOfD2/@LH#&<|@OK+,{L3;_۲m4~s"!AH^ͬDgwї-7a)*?'y*XWVcÔd>-a44id?է_;I=W$otx;^};Ez4%Z'4V"CIbpH]ڔb&yy#|GH'OĻYEyUj *`x%h;Z"F00S)4+xF<>8,wUdy}KUIBdUǟpcoi?C-H/|.SWerRI(eFRMMDhkoHv t ȿXA^ߒ,Aa/J}7"M;"!P&7xa)~HkGy}:ƔV(mm6)ӔNӔN9>_Ͽi_9E_|~B 'Ry;KʹTCc VzKWsCWHSW bވ0l0@4k24taOZ* &ZA%pӱ_+<@i~LV 5 \oѐNb`-Vi3|hG(Yafh!ڰ2?,4&tTDlqK!V|Df%?LL ^BTs{ }Jp1?w )y:zlf,tW_)ؒY)vJbuV2z0t_-폖PH4եx wP.9蘲D}3kN&YQdPuuqMӾLۤϙ&iz3ΡhWy䟲eXO!ْQ;Iz (xWNkj_-Z8}J%KLHlLčA~uă's{W/w3cCz,pۻ 4( 8ׅ5S68! 47;)>`_sް|v+`?ͣuMв?{-$K#OxQMI0F=%e.\]Ty֛oI(52KoR۬zTێ9*&Y+;(`\dWn\ah=JYɨdfR&9?~W+r%ZXX0 C0f͐hI$[&JpgYh9 ͇!`PIF]{T]'Na{{۝;w)>LM|}j<1/ǺjF,[%3$)WS|T^1SQj#Ս涚Ƭ}4ޤvVfsh4?t7`._?]•OYDJ-dld 'Qɒ;#@qqyL!4-u2 "QluUʗjYBbD7o9-}k)Vĵ.j=Iu ;kI& PjlMTnR`XBjeuRV#މG|G`~x#<؈K35эB #f 'y>jI,f4DK%-[Sx34&BR%,Dˍ]סpDK${ " O9g?əh9ZL}cղ3LDE aFre@# ER F${:xmED9k=[l<F'Wt 7~ u9]$V).A;Jq7&ֽ3>m(@6-!C&O{*IώbRQ"JBUR4x52e#֍N_(ɸRZ`spI# Tbt1TYh\slk_&@&LAD+Y>R~s f#QGˬ`OWʼnm=  $'.n:_ _zQw\F'cM$Xo?h#rCB8'. 0)Z= \ag`/;,e:Y!)^s#|m:52?1蚮:6N \P|'J4OчOLR?J^ lZ}U[9BR:إX"[e^ lLzl7٩4!mK3S?3m7+_̧^Ki,؎%^&پ5?("0DO3Q" n9JYhP J_%/b/lCʷ*D1E^G*Т c3("g_JpngPyjkD%<.R5.[MC5Ym9E39b08bحc.Ԩ)IOĎ2?Ca%,4A2+U)Z`66GJU9`"3Wrqa.ga>ȗƖhc]|F0y9c}8Gv It(IC_k?k #v9ڝvV&5Z;a/oLzx*m+-25h5>XNdi'=.%89dwWRKJ~Udjvٮr<"貊_NE6/z8%sROsC-k~y-#6rMdm,Ѳ-X&g!`C!p3&Zb|؃(aBj C0<$Zkm04?䓅oF;? eO,u~ &#]& I@U(vΞq׮eqx#`H|4ti՟øU&p Vp{CHhJYܤ_c<BDYȩNu'>KK iےDŽPlCׯͣGŅewwuT{Bjʱ`H \o>>V(iz}?iv :h-Cf?SG[:iD)Ṓ.`=PJ4 W푬mx c6ha:Ly?pa_QIZ~,Ё'+=dMA-94גx][rȝ VLATp?et'bTɱ㞗'ACz:9K[U~Mk6S~T9h42/ce62*JE9=Iq2]zC6@~R}̐4ȿVKܑUh%ӲIkOz^c>v-g~YCC0 CGfOPoK.{n&׉h9IG7ɟt;.^Q CFE-g6Kpp<;*TBL;g`m;V84 q!lF׸?T?1ILyq{iI[7O}Sݣ>8nr&|R|~[{}h맫PwAcfWI3전Mvb"?(]ILdU rX$]"rCI~Awb2ߕAr% S/ds␤J(E<vO `'l I[~G*>bQmDow!Dva5iZCJ]jK<L7 ]zS0r`#;קޡQς^v[ry_ז܅g/<`p/Z4Z*3UH{i45.=Wfʰ."Nc-1^KJ|ͱ߅.;]cn  5K{$w2?D jͭ@[xg6YG2i<ݸv QX?HjPb_Y<$%c `H?pydvd9É3}!^>$KM)P>;`TrPmթXyڻ:_jo[_yt[ݙ$n,j#DUžLW&?mòj@I`MگQO0I꾷k7ؤdzmCa0 C0}Ou0nTǏSgAiD>1ԩSg~gn C"ДhlMehOOݔÉ'*W 60hٳx 1MR]IӍ)IbLR<ɋi$ֽ>H%m0st%~&mc,'d;tVv9K4%Br;# ڦ71{U)'ZྱjwyVo)|dbXP;ZRLJP"o*QQdB/rWݵۻ^+7­zčpIe YK"y xG#_>W =/6aq,V^,%u|kZ ~Cq<-Z-.L]} Uh/b˛/=9zy{绅esW'/{$60q}t>CW-#*f:NKs%ŦL?v%B%ޡ6&Z>Ot@G8CF3#xc':Y`Z^)u_Y yސbWW{`KȜ #D?)gwۻA&-x,% ?ؤD[+(G366S>lG)l'B,ђx$=#6%C8M깎UI賶yLҟTg}}][eE9grOji|~;wH.I`o65&Mx562}m~i0=MMY99JZXLJ wB%$e4]ɪ콮11Bj$u32$,X҅/IK"/%3@gObDE4Pkŋ̊4$}" 2%N0"~%&Y0]qn1`)xNU*w1]Zq;3KzCt8bME 8mvP/zF_.a6˿%*wAtk}[&[2O\c: FaO\-jݳE)o?,B)NV=4bvIة.YH4{s!]1lZdI膑<9Pc1?g{s~_pA6dzkWOU?;k#\E{:Kp'N8DD0$ s]'}^r^wԜQ`'yaӔr݌<<`1ս/rx-/{[<6nǞN^Xw[H-\}uʙ:y?>;FXk6QRҗD1 D C{j+CkY倠)C0 Ch@Y%ĜU'R p̙ Լ~JR Phc.-r&Üs-:ko9k{w E1d<1wc+[ i+Ɨw]$=]+ӾM{lnnC.ZTSOJ_,lNԟi|m">>fhylGxQE(X#$xIB˪| ūDٲ/tGHgԡRP.ؖ*$F~IV(BTk^v57:N#E* %iDkx('F;n]3v׎<."ٲMڍKI!6!і/%7E9m(Xz;r⊌yni1soShڅa_9} W>YsGVܑe$["Ȋ{7{ݽ~}UZJy-ed u3̴YS|!6ezYQ#Pމ':Pܠ}p%DlL|qx6CAycQ{$^s$8"w &:}(h667%N#%D v2V&Z7}ir=/l %(2@vm}ȍWGݗNb8;9ѐ6|u=ڹ7?sk1v^[]tw>6Л^^or {UϺm$H;贳Kr=;o%gIJbZ,;I\2lNԟi|m">>fh8 nl5PF h\/0-Y"IV"&%itB@H(eSHJ/Qy&g. R>:O`;Q60=2H(9Pr,vօ*t܈9dG˄M4ύ}¦O)] |?a§$r[׻ùJǚQ {V IC_q#6"K NW'?]wК;deZ]qnonwwƭ޲к>l|[ j+Knr>ƺ^PzZrSWM+ p,G0Vm[iuC0 C0 ДhIbnަpG˳gNh%ZEf@DKwn)wo0nlhIf9LWi׹4kqEΙujxs_jsvS|$ܭmnc?cĉMI"}bn2VF*}GfRmL|mO1AL0Jq1VQ;&(1@hEj]icKmrI_p>v8K W/&ƫH:-q/u*wwsk++8 K449b!_{/QSʠ/?bcLD1<{hMVݳ^6V)C(YCU^KvN˔R@$q???syҭ;V"~;<~ӫ+~u=55K㺳WwV/~ZY2-Ƀ9kk!F`ډLHCmh>}2ERKч) i;)o~~]7 cU.C܏.HS{C֐;thm5+K+n }Yc(:W{M\S?_< zQi9?7}%Om9a(fZ{2LU{'Z> u@\>x A*J䫾$X~1[Bq8h#ד:yU fZ].> 5AJTKR?0"E 9XHʞy9AF[v/]Xؗo?ϰ?̆VQ#ߎdh"~_|ܭy?pp6yxi;^=7v]+Wݵ쯜p{o(gnj%B:ހK!d=/lĦR4TvVFtVtXTrJHDΐ!`!`DK%]'UhYot|Aۿo|cmWg-/Vޘ!p-l2-c]sǏFlG1MuKrB_%_*mOک7˟x%WVVKej?ieIé^U{TiW]_Sům1,r@b\ZX,L"r ?l&h)$| )%8/';$%eP4M^!(.ZYC y!#B2%%Y>q +>{ /˫@I yJv®|0R#y(v"nS#i-bqw:3ܷTnGZ=Iy=̆QZQӓHgq_عUbylmcGJb֎;#ݭv7[z}m' F5֧ǚdPGѲ>z3I!Uxda߫?7I81/&'I"X6dE::Y>#4T^AAΕu/|-(40 )a^ o0S5YEN{]^3h̪=3FgːW ^)F.<}}?|-bknkw O%줺5w{ý;^6n?|D:fvg2ߞm\~@ÚJŊWVnff FghWgBޣDH4dHv\YeU C0 C`&tMdPs?Gr;xɓ''Nbhh)%LΖ<~ܽv/CFGFMyg]ϣO<1T~U_8:٦b&:e|Ix5<n\z(雲mmm7͎;v9R]t~6%4yiǸǼgqYO}PrXYe)B#+H p$l_32"H}(M8W 1PBV) M~2 ?uʄdJ/Ig/O}3_t\>pxcdJILD%JrKIK,StDžY㠉6GieS~H_2HrmL>~] wcn?^u+x>>r7媻σ+~vz)L_ov Bt"7ze?@(tZz]Ɉ$kh#@ƃ0 $jbnW0Xc.Aa Т4 &r{ƔYxR0d*dYBp_:?Lha.{w0sWꠎ1Ym"\kB 4hs}]z w57BE\NG1um~Q6w׫^N]_u[ǃWg1bL?9i)]=ǣ@+Ѽ@$,hid[(V[Gw6Vfa4C0 C$r@SO=eaifqeY颸>^ז0nhϐib=y'ab6u\򨋱):IbL mOެӥ/e=ϑv-WO1ђ/½-LHcI9/ (nt+%Z>Pd5SJYF JBrOZTy 1=^$Yzg&뺊Ƈ<@cJ'CmnҎAE1J'*"F)3!Vv 6>'w IR%HgdK&Zp._vYE!S$[<wy"m֨SM4dr&%}̘w[ˑAjwYm>->Y?;t-nЮ΂;ב-.{}׿~wG]Op&P{oNcM]Y赂\B++)[ň*oƗ+Ï, ZtmKk6l̈.xP6R m)%{o;:~+_w=q׆s6(Y@@wi?|!akƓ%r!sy/~(=Z*]ⓧ0C\6n/o-[/n5r=zȍFly ~q _{ٝ_ݝ]+[4[=cx|nkE]RMJgPE=)G~~j}@ywv4 C0 C-}- b$7Dˡwj 6O_wȑ6s-[eBD`d}S_??δȧK.ٲ7h[z=EDT=ޙ@=57>R=_~ݽo-\jOeTfm4y-S5443Kcr"QJй }_LR&jҥL&"$s+MyN~n:^4zCrc_ ˭,#hs-rv/7/uXq׷K) ;"XBd?ril}hӭL&VB=[e>A-{*U/5R 7Qڿ gp SXi:8cyA-E#2~/Cmslx‚\CF#ʒb c|PHhs~ {\=y}_^x;,/wh%; _aku]+ ξP:B =|a C<-~kќ"fmZ֪s*8S+a¾VnYu76[;r[[]t[-øv{;7o^<<x]?&1!c!H:"SqzMF\lQ$z։ _:y$aw0XL!`!0Md<:&0<9a 5ƴ}L!l3y _[+[g߽ б.7hY9Ȓ;M=Gٳ5NLNpɴqV_,XFϯҴT=(v'"oSZz,_%wwBf[cvc~x-Ħ6:7LihђmId`%>ripQ6QgB&KHO0)ɜˋnuB'.2$A R6d$V=(l[L^·I RQd(G4*t;WDMInn|if xU(H2Yex!$^ ) hm_%/C:Kn\g` kI;+|bk=ūGb=`A9qc L7x`Ip  |&BX'"7ۄFc׻rjoY"_]w_ߺKx­\qaaiL1\?HEawʪ{+p7gWp>x%? s)vl:~6iMbtp ev[zL,:K|V)JWBX7W"+ZR(4aҀ=jq< 91;;/$X,%4T,!1R~WOOeRuS1 M?xvݓ^u*i-Y1KjF)۴adž@GH`eGF0 rO ?nCee "T>e.,eЃqՕJ}\6)]1=VhD5&^"b I}b";sL`6+ 3 )E"/PJ^'mD)7IVf}-84SތK]U Q^/3d! .@f[J t ~gBMi!V1q+{o+\@% Bb)dr+m{k^^qO6w5'}*!S q[F E}m G?8fOBD:ɡ2-,<>21ZV;-X!`M%ZNvoGme2~Ek; >wo{2eB%Z !p Дhwς6ϋXg^CUCW5^^QFI-zSѣGG>wm SZ>~YGe_oUz'u|Uq+=j^cϸX?65D8c|hxi˯@e'K)ŧH$F vXSQsuA?LؐdFaDKR%+X" cu!t 3HP . 4JQ?+ /bcя'_//*3E&O15>x*(;2ai1q E1N\ l0S+|>v𫦭wu?^򰻈ׇCpc6{T/ʨlz͇jjۛHcJ7O@}L/!$ +EhYߊ{j?$AA_2e9gHt~$U2ET(=Y*ky~V`Hb'J]2W t# 0eN„L0:v|XG϶,g=gB[&%4#RNe|}=Z4lh32a[sNio_5 b;lKqrXr>{ûˍx6v5XꭰߧEn;ƕjd>2g~>wPհJc(EG\/ QZvP%Zfsb!`C%ZҤidL<)aA+C?-%}{GJ$d.m8of4bjsqSܓO>~ ILW&^M_s?sk :yOv|0)8io#ѾŴ񨜶c(N9jC"^MxS%% $T!P|DKE<(B>с4! f!ZHڤ@N[#;[#IH\]- hLdK&_DU5r] ɖLD֥w9TQq1K*/X v)A\ ߹SGvO}$|[zb.tCp׿t\G6{;Myv$8ڔȝ_DŎ6F[݉d]-N}$p8wX0ic{- Q gM$;rSYY]ZRKjd hx A?6 f{0 }g?66OmIZhW{wYY{nF޺UeUWwΌ'N87nDT@[]2`ҵIv:9@5oĂSÄH/bW4W)&ް!Dl]%WC f:kWO]ՒW hQH7^n)yk`Zλ/#YPnՃآ kf}u/~kzNйsd֍/YKךK|>'V'9B=ifV¯2KO`_XpB]Ko6QzC-Сo>_3=%nxd/}NcJK!WtGZ3{˥?,GX.[Eޖk%+ƐU,ԱqUfjWeVkS!*EbXcHba=$ϦX։nz7F r M,X @bjZ Z4ͪ z r6L$N{7~7bQA-g$$H,pXbZ{M_F7; r{fO߉}^c4! j>7~|XVӍتF~xM|oBkش68qYUɭ/JU ,)?,!~<.ZC˭LY#E>'Ax' !m2t҆6پĺMЌ^< A!R8אe# \U1y-Gb=bܓ!<%@QW\fylf)l zWnr|p]!LX;upǟ{^K1LokrL,tKq1%[2eX^o2f+RwejWe^IrSBlXb ABnBK$۴UkشIhfm\kZ[8X @b D--i_CXK/$G ~i̟p?핑 /,,TV xt?A[GSJk0eh=Bʛ՞G8?YmP>ν0A^+ox䪫xх LOOG'xBsss,ƙ%-oU`9u_UٟYmϘǏE /o=~#iygn@ȹ'O 'P(]{h~-7{P*az#@deW c~^m3qL *-R Ī1 t^:S[zb9ߔ#Bl~Ki픗Êϼ6<#PLuF_: D UUACa{U OJtuCr\#7q,+QD_L6'i='=:VNSR8;%en{p-f3kuw1 Uް ivIm{X SJ Qrt.uc?( ~#i\F:f5hZ3ׄկdzZcep1)>,:*K1م<.uI/`\~4z<׶VQ x>Cҍ3/LzN KefO&C(f1vQ!_YV+kO(imb R+D#٦XV/ cia#E,۪*< 姫DQ&Za $H,X @M hF7ƚ ^D=x] ;wo1M7$w}w&?l6+_ע,-?)Lp]w)p'@bov-zQӱzDJls<6[oV9 y l ׼5ۿ μxd=ħ?i9yd@4O%xRڲM'|R!*eF,n?o4d}ˎk[G^ӽȞ}VkduZ{"NF"t4F*(>Z٥R F!M~cK;z`Al`{^.uӼ+05$hƵum`@ ؒH|oG  /I6U{%RWj&C FklY.kGe '%w,\Wʅ|As2?9# U=^ɤ$}C286(C[F{x@dž`t.;'^%uWp(<+#!{wx ng፫ RC7n[M iZ"X3v˦^I0PAOa ޻yS27(3Tǧ]^+ Mkl/j˹RXv# odVec}:Mh6*g-ZR'zBKܛn#t}ttW:ҘwAH D׮;Tq"csH\`NM9Mt(k>tGyv/]py# CD)]QX5Myā-9cAV<.8.WlPP"^}") 9ٿz|Uk5M-Fp(x١^HHaXpާ91.ؗԛ( @IDATRrؿ-Lb- Ooʩ;MMJ8pP.bh1_X~j-wɑYyU'.?Qi,OW-/j</DKX޷U AUtDODɴؓdmzML뮾4Zކ $H,X5 $@*jlF в6n[\k׮0Mou'/L x'zz>HX8M,-@KZa#vUڭSZ7Wc[o寧~I @H%_x^g~Vn^/^oZcbq$Y4q>d<dD4˯¬:nd[ X{ғ$i0lCЃS lIe?c~P_$@KV9b0 В1q%$E ֩J ]'`B68) Iכ 39&P"hlsX!YL㛍1y߬Z3X!Gk2_\5 @4`$6){9 gds 9ᑰ%$u=.ҙLǃS%Kpه70Qd ?>"]8l$x& p\{~XX9 PȂ(a;%-)v` E"6*#=pG6e*-C,|:=7/>9#Vq{'+cyY܀%^mbio*TҠ˴P*LfZx;]3>ZFR6߭`1PFVdt%TA|efWעW0'M9 >n4Q%t|Z{Li.e3ie @ls|e!JWSs1m‚| C#ahˮmtɓZNw MB@Z6^#@}8Yw<Cq.+ NܩI=|B^=һiDzt 8/C-#sZ&%/=<2=4:A /C~{ǟMϗzԑWġ ,;gdKFNdi x "Gm5c fxxC5N.Z9k*U,\17%˥ECՔ)k>Oѭ%捾8ZւI $H,XU h++ͅǿl-W7v[TEq M_l߾ f=.孷*x;K'?X @,p1-iEaѕZIFRft'yeI~-@{]v LhDWhiEc9rB>+(>iL3n*|;x:Z{i ~ oטz<L~ny_y$qYLR+@t5-UOp(Aas\@_i,40N3&P䂖@\+z_aSl@H*d+DU"]$Zr}J}p5'`ZgѲlŀ   u ڃL$wZ{jh id.b'#̀;=+j2X-) DPa[$h/_tXnIY<|TNJcQ XOxr Njo5!naN1q|NJ5qtzGsc K O}FN>KNKG[CrɭI0yUW3r1#{dzu{he pOiBpiq 2?7'S8rC vʛdgVjbW+V͚V}uIQl05tka0Qdi ;ZU?p@uy\_uAI.GFRƤms/^h! Tiz)batb̠k'Η*s'x1L4~/:4mV/Y*wHYFAAقB(JNԹ$^!zw5, vWEq9JFL%ku2}zJ3uxj/Hd$5ާ=%Nxq;Xݺ.O왐2&X#C҅bnQ?6oK%Pմi<(}> Es3`̠?.{d&Kў:Ir`f{^oSC_ TQ%x+YqL#>biph\qħ[d_šS9.1ox}kZ4nT_d~鱙Ee'@IJ $H,X @b[ ZߦQ;Kho_{l~_b3<'N*&z,hlK^+X{6Wܶm'Pn[T ?˿,SSSߎX @,^@KjlH_vY+Ө׾L~}Gt+%œv|Aٟ^2OShޞl<0`D`H0Çoo{JTޫ_j})2-Ph;toVϓ8g!8xަu~ ?֎S?P.gt2@y֮}_W_b?qYuZV3p'% |>\|׼jMoN1nQ_N8f^ٽyP2`Є/YƑ"R[fWFJ=)'Or:zVrҷ }5zIYiULZ^+Uf>OooϏV : +satwc057iMQ _Py (=h)4Mlo)|АzP=Z2M%Y2t2] W_7S*#h{Ofv2kɁku}鎚5ɼ0RCg-R^G<쓇7In }C/0K:8]JHztz222/#:i۸}[e`\,,pDø:SO ~^tb[.9>8 2r+evR;.a<ؗQx>R7q8DvjNOO#G%/M[pt9~d en*7(YvI`VT9/Y~٣J[FPMVȒ}*f_@>,ZVnS 4Gequis4^GfHx $H,X @boIok#% в%sm(v-!mɞ%ޮ1ܹ3<ݎ6oEoʷ{AcS{FM' `Z}܂Jƺ*UqZSO$NCt^nE/'Iq׃O~r 73(ϓϿ&h[d3YF"}ߕ-1 Z<>?__}{ڔշroٲE>O޽{cx џR3yIH콶J~@/ m=q$+V>ǣiF4MGlIWR#ge x~T./py# Ye.O"vK0햩9Z0[w>i9% s_¹8>.w1)mͻo_`K~61 Fp` = <0}z?rBrkIÛ ,^[dtߵ2]1z_zeqV]2;Zǽ>׬ t;dh C.h­}Ҕi2۬|4d)+wԍ!h!Ȱ}PHD.Ge7R7U@_V:k=b]+s4T+K,=*P}~IuNݠ4W;"v4vvIK-].de즛2xA"_sMHY`?.'X :qXc Lxs/щ3 /I/fH|Cc2e^.d˕ͲdsX~L3d6_RC=o~ǔJ=>y"6xˤHǒx<=߇9WQƋ]83c2 ` k#=#ykq,IA(GEo|2r߾}qLLw[/1[ƦM#|Z(>Gi>_WeѺIH~֓݀}@K IǿF9Y*Ư? ڈ!afP9"p4IHЁ UǤ Tj{Ax!'f`͇\l'߿".w$9> rqqn^NNIޘSXGUM^x`0hI#T.'vmKe{ddbpNĺ/:tgRF{T9þxMu <\srŁec? lGyz`G_*=nAȑ;qZ?_?AI33Ӳ"<\smrݯbfTFZЅ [UjWZEv|Vș*uްFFAkF!88}ʭvY, ^u,ME힤 $H,X @b@\+c?[\\ԣקI+Ȉ|SzlFcK[*qfQ9<@U<H3X hkkrۭ>f" a2"Ҍnh[(I'h[jsW3Z%N{._)3:׷"N }u=~䮻R˿˿p$Q3믿^^%!h,'_4m:b?-__ʗe_hIѽ 6oG|F. W_rL/aJǗO93^XhfyVC$^{ uXhOn@/NBa`UY i"(TUd_M4evJBH\ wJN4&b#TlaBWt@ 7($^^<'c &e+,v K)pWTvdv N j9] *N߃)+|fMЃѵ# e+"}jk?90:qjʤ 4&/>bzF,;-/IcCŇ4zTْm3b߃e]MoE<^8V+0OfP_)>Im`C3s2slRr XߗG5 * 0jK~wd;Gd=*"nvm'fS-FQƁK±^ql5%醢ba^`Bk `WZE֨dXq-~,/-͎IX @b XWo~󛵊+XU5oV!~?7-oq+rW%hIL>rbbBk#dzI-` \hO52:WО5Z o"#ݏ>hռ{__+=z=h^c̃Gu$C<&s'<뮓{G L6#&@볟|k_)^WPR4Q'~'={q^zX2Vnyai|iiI~i?SyꩧjS/}$|]yM7k[Ӳ *&\¥9@SYJxyHse$\e}$PO2WPI()Q; 4bUFh#%*" bd9,ׁρ7ȬX#J˓tc`az Vn&#N8Z#Cٳ2? e7xtHo_L܊#KwɎ.={Qy˟$[JW&O\d%C#wʥ{&/#o(<<ؓr_cʜRB8y8r8u "ټU6tepldn5KWSVj_,ӲZ-6Ae2Nψ ڒ"m`6 W#d}0ZE+_d$[~y>MsDN#!hyK +![*yA9 o Gּ,¢ $@(])J3+#[de;dⲝ2eLG$5(s=tT!g!}=x~Ağ[z$u<66Vs|q,smelcv1,ۜZ9W4Gy ,\PZ8i9Z\Ef+O0M1a9y8bexYq]]/NP|jB]Al茵cJ :(S[hGgD_A60:%GyPoLWH[ Ӭ,[Y:U5^Ź }ol8 d~\s҂X;4og-3Hj#<4ih1KjU'Y=uR|a~jZ?=zT?pxÚ؇|Pv#\{@um쑌#BᗿV{ҭ_5l7د ùy)W ~޶U\/x. lc ybS4uvI ?]%*,`r=UڗiA| q d0S /vAӒZT9թ+d.3ZkX.kb!$@ˋJ'L,X @b rFx -z-hiǕx$8;B0ɌƟe׮] t'[qGQKj|vrWd% a71@ ˒tk8@K6n>ײVek(w$q,`ȧ5Fǁ/|K644$퓷m ˶ˣ-P6`kh3>䙡ÌӧeϞ=!!m<1@~ 8Qԅ ˌ+Oh.pqkc^88^1XB,[w>p1xZy y[.3@mpr9WZ-p=HDA#ҙeC NnPUB9XĊAQ?."`'"tv]h(͋hNI+B*Iu]=qಅ{X/' md4ZfUdh.Z`8hLx< 2cK9z~)#Ekx]wJGpĽQ. kzI6ӥ}ggwK^HeLBא^c:[V낪-/˙t&@b XK% P]0ǚ*l-y72vmmq=":|WxGѣ}$}qX`x%^gzz[RhI5꯺x-\mgsp-9=j%vLx4?jς-N0^*=ޫ%QV^R-M&Yی ڤ,Iciэǃ}CPU hi&I|n-G<ٸիh{;r]+ʼn-qea& M; ك3WTOvWNɉ5i]E ˻X q`V"Qޠ* *4FTqȷu#PH0W[)~50 QhGV\c7QNN%֢O9~Mq1[ĕL!,cТ%IUݝ2:-=8h.,f'~<52[ǎcب}d6ɽr-226FbP:#KŒ 'NpM2i b1%%[K 8b5UU2nWҀVj^KS؊.hh4NZ88vPDiFH'=EKijy՞ >B:m)xi>@0^Yfeh$ф/(ztկXвTEi?ЁqjjJ'OԣKM/ ='5?{>9)[Vč--9hdVnSO=G=[>7V~i$O:}Z>  xk~}Vech8+~le3OϕǏ'5O'Չkç%sg48㇠JJ?m8=е1WB*^@*] 2W߉#VJd4cty~Ǚd+ɏu"ov2WZobu6۴6fcA[lN$.#&n0εk8 B=35)_^ _YFF%;;'|a⅊AW)TJv_*^sͯW_%Wt{9">x;|0^Gxai7C!Q&d/n^G{`Pzc.5/y9[AEb ڭiKl^hu?_8(I/X $xQ(7%xNwgdd_z!}B2)w/="%%#v١enhw#s&-7ItK,X @b^ʳmZ{E'qbߎ9zc~[y["7tSl?.ʪóWG>'>w}gP-@#8FkW0@NZFZOkگ{^ܕԉ@=9ps=gqRzX|-~uyäciπ {ԓ%P,ou(Ǘ:qc.f2L~\(-Ϟ=+=<0c3<#tY8"Փ5k^_4j{mToeJq=>΅^7~jy *D!HA ˹Wk*[@^AWhbCH=pcF |E?29ib2[]6(9(r#V jLPh8lT'c9Cq^R{^'2q9OU.e\-yQVZKWj*&kj-20Z/Qy/:ϐ%,ޝ8޻6p'zq{h|)ӥ6 qg4qi5YƃsD/X](@?3'HgAg&ڮ7ܠxEM^(Ҧq4hܵN09`Dׂw$]Z~ ^0k m?&@SFig%f)IZC~x["؜;*3ke' !xcU8fKo ݣ2?x,C{4W{`OԮqy﫡]&r\ו\de,i܅+O6O!CpoQ'"z .`]c.Vާ9'X\@t +4ym3v[R2yU\jv7WS^ɅJ]ǺMZGQS҃U+3XYȲ5PXG^^606;9g h9Z{t/` {NfԮCl,^!:UlE4+K^;$@vX1X @b bZR{C+Z] kgMY^$в/tF{ku3 Ɩ6oV&OSVI8-~ h٨K6E $U@TŖW'i_ԉ]O=z:h/ccOOLճxs `{rQ[K⵷]k)z}Θe< `YK7'4sEmu -_вLдAO9PRDZhid>0"hu)='F,A)34W$iVc hbNLU^ZEd^#\K/eѼՏ5] cqZzuhd;:kL?]V\iI~1 ~Kz)U~H(DH~ʗe19,6m&@[ ?G^7 OG4()z ~͢`^]`_3ŀ!2QFOʳGfXOy5 jlkK07C2 E0Z~_ Wmk$YZq6֓Y !Hv6+ A5 C= /kxkCV:›%Ylx}Q pl"@IDATd.MAc/H3OV=hK(س S3tG?@KzӾn*0p(u@ty^`sS&`,ȇu?#Mt󤻤 Q4y&߫᳇d:r@lãiӦEݎ@않%VSθN|9b|a*፲ye#[Z7vO8.c7WZ-EA>7{pkEd^)c1Qq$D@vX܏&6NE,>a?;'Kx!"!بP^ 6i52˪e7)lM6߇.g'cyIC%ePkQvuHLIҬs.@%4:ޗ1F{;߻8{NX12Z08_8x/f`@1 h̹/WKq`=B=w\yqu8mb $H,p--T~X|#/}IC AUz bD4ah}[z&@ĉ*~G'f5>z2KBsP64SלZZԉjUO|0ouZn~D-Y<u]?25 \ik3nTh>|t Zb4hE}L6RH/'{2݌7oke/_e '_3Z569b)2Uy\R%hepIMi9Kǣe I dՁOn v`qЁtj>YD7T&$OJjaЗkv liXj$|\8Vhiiqrr?Kj[ZtT3^Ll OVO>cEftjRfgdgU+.uXV@B̔Ep|h~a=(n K?SLOw^9nski+tTdc :Su-x9!>+_Aہ/r< we41p 8zrZ,EYiDY܀eEj:ŴGnXreΏthjK%fqKWVvg/genfA/b R+k7ӍR{ y:cy bE$*$8p_!};\l_d!Z^d__W%~ۊYl}(-y~Fcgh=Ǖ|~+gO>){hO] ~XJFrz4jcm${##;|^&*eLdNZ$ a>HX!CWT2!QD%2/4hSpVsp*_AD8J+NJRM7h /RRɚ +%TTJb+r>M:}"`de4G"_&b+fB#}VRYV%Gs5\)ޜ<8f6/@AVX_R/f2׬۲UƷ8De8S8j O<ɞ+t~ӺYmI n00Nψ 3z.=/t#"`:;ezңٯZѽ%j|6-7s;Y2=x=.]GcG$2R9my,q8aXav 4v47H.xq`8a٩)9p$X1tS .#-.98Go};Z6,lJ֌WWXUWnU}y+\?/kgKBn(X).DF\XuUㅙT6 PǾKG2uڨ-%)Y5a(u[p4B0Q)KţBoqcn=;)Ga rكK 6]:XS_Y7.Pc)S_ XWsdzԁ:%~af'hǚ'rs<XfF!Lژ 5\hu# D>giJo.h.݊92.X*+rc*ExM{ o!ݙR.>1/ًZfb.]2RoǏ~x1exu'x^u[#}r|gR%Vz8$@%'H,X @bi.M^si zy衇ZU9?,@pM7$|;ettT5!YƦ"uVn1ɴV,?_+6X{^}Q9tP'd`~ꍡfl -- LOBm k%5ښmZ+N-sp-hγ"Lhò}G>ن99?ד7F?X8N4O9q8Fh9>}Z>g?Yx-ff.I~elh_;Ql{ZZQzrڕ?7@K^E!یqJƈ Ѫ=T1-@>|HkK)|XC.v((4㠦._w[7'\B%SM7JQcN>/oz~|\ZѲ(yS*8)B@8+NǵU65j͝<֯mruYnmT1Ƈ›3eWN Xeq2"Fs2utCmt<' yԲ?P[~ץ+UЫ^u݊ VQ)3^o &"Ў}LlҧCKw[tA{|X?~85+NguW0}/I241pd,h{Cl/<#ExQUO,7K z1z8JCU\$@RGx!@s@Te:\Ñ9luȒojF3љ9(w ,`]|7uFw}>-&6>,Amhx` sa5YP9{EnGN |adpWv:>,aI_Eb[~Mȴ>`uQ2W&#ۑpJIɪ,s,L=2x+X:ǺO{ EkpH9}/d,>y\f [4 \?m3? 0M8y 6<xL;ZsyD`}Cav^|M&ϵ9 '&9Eή}R%nFmvY[a^D#QMur 468ZS;eT^s$W~,^/F c:=d -0ubOcՋy((p€c019Nc/ftaŞA_̀:Wx!^ Q)nFJ}|8]/-/t1@b l0 $@ssAVZ%@˵Ɛ_vޭ@9Tn~W_o8%çJ>Vn#<"T$ZHjEvȈG%I@ e\Idι3';7Fs^Xͳ>Ѓ%|I4kָr~Zith88et?meFclǏ?q77de_ [j~xm<R3AlVeDDiU~T^W˿L'/[ i.`Ҫ˵1T #dJPٵŵk(L8$+}?M#f+ Ty*:F$X'ڞ2Fb-ϓS-.]\';cxLj RBuNoG V\fq4cr謳V0X>hNRh;'T L?#}ho|3zJРO=/V%ϼxHxPO=(ۇF!};Ij>^6Y!k?VfEp -XH7zlƛ.W\OvB29w< p~x*BF |Jvt[YKL3VƤ2Vhy!ٴ__#hpOFq;0v ? ,HqGP "A*(g%0 (FcI33،ϝ7@WK6[K 2 _;nn0ƶU\Hhy!]ͤ/ $H,Xz-imRsehWɦ;Co^yut=M:fy?m2h,ok5Σr-6=-6:GJƒk`AX3Ɛ7CF\; 2*-+yBY]j5VS״ASO=%Sx: |百CLLLT͵ƍ ~Zi[1mr/W+oQiL[ޏ=}.N˜,h2ض^ڬUV`KLV3֒˩dzeh=Eڠ!V <˰ ͐X¤!]cBp.a!Sk oTUrFC ^Ѥ@G׿I:&o^k0$I^zƼ/7Q9~͸z4_-?IdL͓ncr\sOweOw-e9Iѣuf)95 -_hqv+lfmX 5+`ؓ}VƊg$x@^xQiMG/~Vq!4.R(RY&epᶌK?@S'O&dϕ"l8,CcأGnQfR'@ϏP9hOyժԼSoP*)H*R5 W"rTdn.oJ{i2XqxMJPc,V TZv8}) IBKj >y6 f hVw-b;q-/'[F,u}`9s'^AȮԵN%c0-߇{v.@OYe\@~\~gM#;ѣVk_FHf/3cc `|%–ƒG&|/y!%/vw{xD'p7ƺ%z5H.:Laj5)9}56ȺFECDtz@?[>R1\BU4yTH.Y0ƛi}Vr7/aU&_ҷG`2y=R#*Gp4U UV8o8E̤%Qe XŌa1#1B::}KakR{Le?}ז"N%~r)؈%4c.--/&@PB 4-/]Jۋj={V?%E A`巾-e Mct*㱠 ?n}n/zt7=(ܪX8 Hj8W*Ҷ~pp/-@`ǒtb5A2H;tЊ_.rv5` ߤ9 `i2>|)*_SHr0e㶜 :i6̼ƠŸ?,G PܛGcn96ͥ Sg_ܠ#=\2۲3m_z&M@0L`r_ސTi/Fd6ii"i"#~X#2JL0)[D/#O1m&5(\%0-S,sa+q,91 I&24gݫuij*U]Q* d)G;(G#6LBϼҶtZ,pV~PpcJt#QۜTe̗<򺏽SwFxSY`rkeq25XHZTgqBҒ6(ԩp 5χd/1 Nc/|_@\ӦV)k#'xQK GsnX@!>x*2X`mu_(R (@Km7tE9*eK! cT>dSgI#$ESE *]:Xy~RMېi j.x4(8feOSe\O)Ui,X @FgNef 촎7.9y4JYb)LPhQc_refZcaP-U0Aa9kBHyGϞyRF[frg)#RΝy3 8nxBv>lyU6\I-Jة|ۉP~_ϰ>'=18?S;{ ,2(Y1EVߴHb@٦Oɚx0>?Jec=׹o ![ŪO-P")QĢ •/5^FN!߈*+)Ѿ.=|X ,iD9pa -Gׂvfq&zq3Zk.ʆ 5j @P.9 @ wKS.s[h9.viUbșl-{XTGMgIJjq嵴\~P -~LA Xh6>?po|# ϵ&rH鶍ﶛdžj '/k/VŐ$c *0/FNYVR|{FX"d}PeNܐ hiv>m. t Gemr!¿%]uD;6(kjtA )@cotҲ8_@UXDc[LM\aI Hmu|I9f0df;p ʱ^Ѡ/Ң=17(-3i0eĝ`- VZqÖ߭lee*זz);Jplxٚrl&IгxBjt~y'rV[հƋc45xL#G$9ʪH)9'9geOo7%ۖIt1Gӻɶ#;'r5eY<)-xC_@̃I ' Ǚk9º0H ?h$ ^<6.сS:>y?:b|`NnY@k]mR,wk~X{zPz ,WCކٺbS[ZO&'$R2wxhX.<`dYu8c\+krZ\M X3G,:&XK8r8a=g@rsMXF:2yo\0/eNXLZEiUS>k+By_Z5j @KYs ߛ/eٶ h >˒%KhioݰMwLa0O&^Wö_F[-ߟFf]ߦ'ВGX^ВOGD.4В>(V]!g2c۷oC9٦wݛnIAU0`vNE|ğ/-~lIwa.݆3> {Ϟ=|DƳ YY3gJNe!Ws_,`? |[ȶ;_@Kpl&/HƽtuRI[ rhato{q# xeFڢ7l%+07Xv1I6V޶Ƌsǟҹ1]r-&uVx<ܲܰ}Mc:ޤ4Kw<3P`i<4D`4~Q3uC~G) >#phЀl:i^4 QJ)ÊϠ\8wTH},he(/UX۱Gw.Y&/8 ZӚ±<zhhPNm#m-m2o29#Y{vK7mCMޘ${E`tO_CiZ&M[df;X++66$u˗O %}"8I.}uHǜ\6464i@T+R[qq_a J>%Ȍp0pe5Hs'&q.">Z 6E 9SŽь($$F˙ޕ-PG M oDbͧfw0IIɀnCIKOdyNN6;T? #OdYZ^SD_H1{~zb 1Х Hi /F[o eM{A>bINki")[Jv3ǥZTmjY/9`³ eyI u꒦zi\!U ${f-$E?'[~x9~Y+>1=qKm IJS2+> H@@K|7(᭾*ߜU~N mݲ%U,Kaݳ}JA 3(9( y٭dS,ߪ<~^+uD|;-"C9Ir20mL²Yr̀bq-+r JZa^e25_,`b# zb \1.g/-ʆ \1"?%J/K6.%n<~@NҍC?# xUV:^S_^HoLXPB 5p k Z^؛-a-N,__m7c\A@ k}7?>Z|V~P7-(liAMF`L*~>[4}%俔xBeݴF:؅lqO.Q, N(W߂9ꗍMsVec7ϕ/W:efe4';vd-'FmN+I_jstl[T h:/!W=F~E߻uMt+Bx ϡtO2XLXPgdEՓmdWW 0<\"eߌ V^gUqs 1- FZa<MJoP:;ZeѪe YtH+C?pnB_v  e A-7{eO?}RN<%-7?{8F0C}׽Lv HeRI_(K#ιV)ehZ-Ec a4"<H*@9EK69ZZ;VS ]H9f۲eKr\,uabi ۸4ZW^\7[%e*3OelyQY Ym[ʵKЇd׮]ieZYs'[+R [q`ps-[ZelhY3hPϱ:׎ R`**Vũ ɘGgܡ'݉hnEÐƀǢ`$*VILĄ(1ԌIIHE $*$ն'ziTl_µ1ʤRgb-3d*7=_{sMyUqITcrE׌k=Ƴ\;.ǷCui9㨬y&y˟_Z5ɜ!9}$܆ftlt]O?'{)G^>o{eӵ֦T KR;^j[쒽Onخ8},bT_%sqs 䝊hSh+R~T')O@#VVTGd>K6IrW˲6K][OwuJ/2lb#5H˃%X>gs@S>K$ox)tfcl7Gc~E$eeRMC A9^I`!Vq ИKD,-U}]'`r^O>r .CG4TRR,/sSzuҚl؊2tZh5kd8Z D2dr5QٜK˧\:VLFLt#A{~cGoR$3́д㙛!l228$I6 ɫǯ}')! xs>c| cS QgZ[mn~UV.db#t͑W6J7 ,` Pi/qik6xA1G3,x)({1ߜ9r\;'65^!<<㿻`e닺M ̾Cr=ѭr)Y?z/Z!|kĸy,b?&ͭ iq\ a=SՊ%3y܀>.-׬׾{)g!2iU,ذD^^V\a~.) @; Ũ:/gp85jSJyfG-fze-GT|rrJai򊑗9 蟴* .RxpC8~8Cǁ5/SE`J5"O#q|:փAke jh~ XNYf*#[>=쳯>?y~rf{8 _;c\qöA4fl<2ѭ ߶'(-?Sz>t?[a:2O w,-"DGۑbߖOk|(_Wzct[|I>GC!rxuIZڜ-ןM l n?b.?<43/̢~${qx0/1M`83-MI043H<ȵ4UKSf-IitktDU6YbvKbc6ʻtd:3]%y |[$Rɣ q'lf*X[^P#0ƴπ۲`K!;*Ŧĉ^9uyٿt,8-%~m"lVOM ɁqgNj,ڗ/U@$-nM9#M A_m?''XEFFJTK H Q[p9?d/BXS[qFiܼV`FhE216g裼VG 90 ^Ki5@0UIX_&AⰜtQkߖC<ͫˊnT^9+('HǨJeT>FS:,{n:kJ ǁ F/ `Mns2(:-kl?`.yn<#Zymy_umȶYHB*l?VHvd<)0uzϕ j 5&#k $s=L>~&ԅfr7lFXnn\wz&:7JiBf]XPytX.[ҳb95˹Gj9wLJX>ky~ŋ ;䚻(u`dy1Y.O ȗ [v?,NS{OJۍmnY~ ;prgF׮C?# t@*M{% 0>+I/^h\VQ-!Q9n}Cp寿V^/NlI^аg3q H=3#gƤQui2Q\@B%lRo|QJ2x@2ssqP0#-\[p v]9XVWakhs ֯bhiMUUT8j$GGo{5o~r3qhA~lJ1?uVN}eXl\R޴IWv` s51< Kap<$nӼQ^&n G'>TI iD8L n9m<ݟKCaU,X@K-Wa# 6{ύFg{^@R@JYiηǟ6WwX<Ts h5݈ފa>{@QZ5b2 ݱ iXط[:k V-ϫHC9 X:|8׃!R$WEJ`0>eJ( 8IyFf@5Kn_T+ ں1oxyjh?qV|Ru8ƾ6yc{řo H!"&q!W -Of6'5:; 8Q\< O>aY=dA@Sxɀ=c2xAy񇿔mGdڵ "ݛ)̯DblZc ;vL`O(:x%{d/C߹O9*M˂Kd㍛doPش9y"{*8DZ`&9g˕ϙfҜy*SJ0CشH!Y`=Vr4 w2/+:r,F8hX4Y)mx9(ʹkDr9!c2x+ZkʙH\Ot~h t4_nֹᣜ29fzuJXQع1QZ)W٪Ej9Ԅ)K9/˔PyFZ[?d5j @P5p!Isp^U -;;;_Uz~4,i&-8f}릹43~/Ӎ[^҂d®,Oimؕ写~eKW19—26 %jr!2n?ҹNJ%P9cǎEF[mYzuRαv>+me4 >Wgϧ$#>˷49G0N嗿eϴ+==Ů?˧Q둯B)a'rw΀?WKݦacҸw3Cg|h隬tr,ȶ4/e¦./PfpHS<<ғQLNu+raP &`ž+Ǵ1Ħhg&[l.3©nu%/F ieHkXO'!6s2WRJQ^\YfZ-%F.6V[)6tLHwXʖ4\4G'exI93MXE<4c]n; Cɼcxr{yط_FF wUZ.^t:sb$&'{$**#=GO˖k;6/ w&-ȬaC£ďtʁǶKTeoF(e89A˓0Yiֶ<۰X;]pCZi {F*aX:tg8PSC$u?)?H%x54ϓw}M(8vΓIɚs`=N3N9}ŎpOY2W'Ue)< F,C9Y `3ñIG?1\W)uG|NL\ |r-_&%2' 9XD|0W :?a|z_g(~SZE0#ܒ2TX歖x$tgN;- |UoG(U4bfy4gf=$,f4,)CfJsfΥ05R03em%+Y (d׌9.,ϱ6d Y5ef"U70iN-k݈Vl_CVI_.q9O˙d5]w!/ƍi$+s'NٮsR?^\+fyv/‹/: q呟>"GݰdB~Sq-űá7kp2SI /bl{I9tVYW^w\VN# x9@̪`g PդcէK`M÷@oR>]K޽G~7*] ^'oLnV[ }Oʮs3}Z+E<\Ϟ'}|%̜ꍆ7dSJL `R[O6vbcѯ&3h):A# |I=p˭7%L*IF~a1EB$!mu l0@x/RQ%_|~KRô~iμ'Di"d ^Yg [%} NqUfѩ(!Kh2v´PB 5j|h Z.3Rxޙ3ϳi&ַE$6l} "=(-t{TcP-o6m.hKmAm`?e۶mA,!ͧWВM&fppPG>S+6-o]y"'/>,qbM. p&pobvZv[ݰ3dyWYF.LAt?[#tv?,O Os|u?<Ů?˧W Вe"o4)~7g@˗%<|RUt2&2ExR18$FEY1I FR!\j |LJMg8fxl@dm3%t~I sTxk-uQ^^RSN <~Y ӀVtVXܸU;q @j 5|=r={vA/FaiQ՗-+%㾁[D+qǟ} r_ږ-Q@a3=#RdG3scyާwȑI+x/ZymW4]%`ɒ*Q)IGaU0?3r٦uRgǖeV<` 5^2)f0VD҈,%Z `-TuB ;zS< e~{_[/e]$%ٖ||Sl!OgVuX3a#Sm) ކĸ,!%Kz6>^ Z"-,X CcmTwPǽT~K` L O3oZ5k:P3q6ɴz@[5~w(%dZD u 6#J2ZP-[v >W{}&~J,|]#p%&d`q9KS[I\S"h5apN-9 ɹ^9ˆ.* <Nϗ:a g~+9riiܴXeFiB3Xg<&;^|YNeZYj, XҢȨ$`i Wl'6L*s H} 4it>Iu:8 D4ѼD呯'g*Yieh>m0/LZY|\1ˇ ΜO֥ުidʌ*'E1},ދW4nT X Mb:1k+p48u-N-`#;\sTDd~d VOQ \>>wOA<$8^B/zkoKڵ9 *f.1̕If  X|X^%Mkh @WM j @P.1 @ˋ㆚d.!rtoId|ޅL {lPMi4KgsVil~k}7 Jwyg*'2\ Շi| -[)ȡUW7)/]P/|ʇ'}Q#b@\P/V3isGdz;eq OΦ^s/ۉ[Iv>:Vsnx{hй:p$0Mb!kYš6 9a@~Wjj952GQ pqS d.9x1.AcJͻ:( |@vNvɖ-*ʇ $,~r2pꌔꑍB Z#KKhYqa))b>` `KQ<đ⴪E&Z!Z+ߖsێKNJr_+_w57V"[n湄<,{.:ʹTGd.,jr @_$6&1 MH/!1KN\B,{UrW+U1v&Ɓa8rsր CKxuHX1fZoP8uwY~*By ^^/cuKl>qřّ>w-F IKHW /<g#D5k^͂K7d#KmKU9lm"iA1~le$X}%&lt Ŵ=ɧtZn3v٘jeRFggLc #U\k&iqƝe̙ݓcrm姏]d`pea]#ѻ y$O}Nw.Xܱs7 u^\YI((+8pWv)~X<+qX~!]w444JY6?if{1gb]2#= IXPr4\Ǘ,mjP&t2|,XFj0'5'gGq*{,]DnݷK[BfIutɖ}$yB!:B%O~֧br nxIc8@dlOWEqT 좴:-`F 21~0_'D/2hsy!k3y1CGnF݉Kֱ^zwJĠA& Df7(o2Y݂6?㶌] j @P.m \(%~~i8͵.Be^eΘhSTp7-7B;e}BʾXBe;iȜczʅlZ\ -օB5,_~;۲-_ڴLt-I7O&>?g=8i4;~OTyAzeZʰLt:5hmmm^m=_W.[,gQ%Xrl ]pgFzk76|8M!~tN1 9č"!nƧҘ3`&?njd&$ es`^FiUMnFń) [9Z OYg`ZaLa{V +.^SoYyG(4c7 fJâ`b֤,Jύܷ~"-CGNTk%66Xw. ^6 a)%ʍyr~ǤV6Rb1%Uv6'h]lLt?i4\X ,&E.}4ӟ>7xN/~rmpEoؼ^*d.OS䐡<^y{ʟi4ESV@b XDu&i`Vǂo!"i pN\=(*旪NLci=gOKi}0ePA`|4;G%~P/)l=eeấ*Jԟ-r׿|hK#&xN9LCLD Ϭxl\s΃& 4)JnH2AhZ*/iA)s' [g)8GT^߲:#WsÜ&Jp\)(ë?Wyf%b*V[ڼJ*68e%}a=R07V|DŽ?#]2 1d 6,ϞGn % > X;~}RBOr2,|ΦG+O4ƕr䅟>(}QN9-]_lv 01]aF1t 3 3J߼^(|I;^HJ|NcNs`q0?0#8ǟWꅗD2:Z@x&&0yq)~?똵9ieE ?<щBK2g^8V+6)ԡF+,G_K>X ^eaT!9j/"ZĦU2 3Μ/[`$ %5@C>ɇ')<@!2Yb;qx7g@~aUkǰop !cSR#LM#P|dB:!jԔRJ43a0ٹL#]}\Lb:ITGV^xKGJK$ÔdYWp[TRbek^#@`͇D@yб$)A2l:T!/l2t\!Z,xNUQ",ZuIZ-8?{Nq~lq̿JZ҈'im{IP+X,(ڰIՑR^Rmmɮ,xF,Èn*ǣ,:km-!+6.wfu.Γ2 樟r(w}7uugoZ 06rVFp8@ ZvQ!Cd),`~q-^% CI{ `#cJXJLZ"0E12u\ t` jgg4vĠ{%K, (ϸ &PX"T*bHn@˃;mk3s/0vzh)vQd\\g9uSb?eT~QNY'S%0WCf+iΗbcOFUi|d))l~~ .&/| (դ1YgԛA:p|H,c:=F+]kQָH8%C7MKoU հ:G |&t|P^|~l +&aQw >#ze >$wP*[l܋ xKhÚG{0?$QiZ"gї~L 4,F0àGOgvI9'OˎG^GyUn|e>>9y)ۦ4Ǻbl%qb4&۟}^vqYR ^w4J4'1<@l9CHXZp$X` ދyGbMxY"#KVgv&gˏeX.l;?vYydJ ۲Z= YgL?7Y+Y:f͙=/5#Lh__Иbjs<ߍ X`<0-MR1` DD-Zsk>mM@&!-Zc 19>Z怗`K 7[ >F:1f\r߭ɇ24o%g@V@ˋu 5j @PBs6+wa9u~2rk@ƻ[>O$;$/@ ta7k鿍ٜ2zXn23c ɇq6L F|_O%~ϧ?Bd{\h)\Zɞ+v h|<0N2d17Jއ[CsItI/ vcpt2#ҩHUV€, @H1_xC:Y,})PQ_j#O8%T)~[ M9VGck=-`s.V:yFIP՟qH>aư78}1M+8őG/+d GgMӻ> ۶?ۍ/8}~0yyoAxD'S&Ȍ~.;ƴBvl){țnM)lPGp$BtA Ŏsq<]~ߑ8,.Kn^'P,Jc|-So^TT.TV>d = 11XhGDTVrш~iqTjXivXúXtaʮQՙm;{ey5JRL;:(m>뱡{a5 #8vjϲgt ~1gd}/ɕ\nR#s@ M)neI8|XjbIW b:X/=\+U1x7HOXT߸:'W]|]PT ƩG"8kX9⇞7:d|&dpI.@2ԔL^ϮI,-H3yoR%ؚXZJ>yx1i&/@Z ֳ>p$oଙσG^yy(3Ig(xmAjz;|Ai#5rRXoK |9!C/?)v3}C2ݽ;+UKr7]A|0֧/DRs?[t=(!PU "3_=X:-}Cm oYVhnk֛ȘM;q3cAUtVT tɡSkH:a#27Gc݁Gc>^hp0p<}\sRCX'h-56ǣkރ0HUz/_ҽ㤬ݼZn]Ҹn9QX}fG)O1ޣ'77gQyg)9U/Je_Aks(/OLpoI^ uxoV!#iyaG'hkJ~џـCC?`젍]\QyztK=M"]`@%UÓ 2\BX/ؕMhy1ݍ.B 5jա {C9[9׺x.IONE_D 8/:gp*gs\҃A@bbȰM$+q[]Aڏ~#򗿬F!R[ Aϯ;Z2!w3g߀P25y֔-Zk͸e&mli' o\ysт&nîox{. K- q|d"|΄/+[\"ʫ1&HЀB1,oWɶӅ>ѝH'itOtU i0Qd&!^ IɆH5\"tS 9}`<: #b3Z5arѪ%f%^Y.m~&;dx:dRxBYr3%65ѻhMx=7@kۥJ /Rɳ]5*NIͲYi7ʕoƦ|- *fPT*ֽԏprY)+52 ,dIb:iR-R$t>q?}HscXRTXBC'z%b엑!nl[dGu5ȋ c̹1=D8"2ZD=>]=Nֱ֣H*dS[o"XzMoŗE1qS"85 +lXʠ%ELDY5S/=M˛>pڻ _<由-C;'.y󺒼Lpc5DZqA# " \U9Ec-AqTAL1 e>'uvA(Oʧ12c8P7,S{rKpW 88mhXu_J0n@y6Lo7V^mH=yLu8[~UK ҏg6A _!+$GHKb7f$ $Q)R@ MS^ƕ&͔5dR$\lQc3}{FO^Z*gMk.M)KХk*oWै(ߑ*x)Oa0Ƙaa|sg@z\{MrJMÂ{D/ds;e G[%\xTxy$Բ/-MHĨ̿j7HssFiZ(eӱ0&0.E plc.  bA:B`c Ҳ^ihnBJa4đMq̸;ɳ=}8;.VI-c954!M :"XM>w7` ^r=rW-T4U(?ߺS`}^GxkqQV!dddɞwMYe{ZJds%^җ. -_ErR>(^ 3$#ޝ(} GV͋X:o_EP9^вL,VP; @7(Řy~r` y9$'UcX}-@hyj @P^7k빩S=g*co6C3y,ߚg)=ݕo3/XrlyAhlKwÔeַ4]䓟$s4-SIuJ\*\݋ٖ;n;g*ͷe˖iٺnyaL+7oVAs7icK|mǦetggϦeDE˕Yh0?=|ӟ^^.|K-NRC}YPՂYy8[2jϜ-;ZmO…|E@o\;$NN=OMp!3if@fJ1n4*Pe<->i,_,Vy-= rTRF'h:.ޤtK1 )2x-mtM7QtÊ+u@НpV- nt!J6)t6٫SH5I 4&CZ.2-nE6Xt<+O([|A8@CWwmzt,_,.$QB"bbhOl<#=<gzC/ʟ'wxq2mBΓhCµo3;Q~-ZΚɮcGcdw ׭&IBY7g`YI w O1EEX,)B[c>96)O~>yJ~%Wq܏-t!(!Sw~: emvcG5KZO: D0 ~ES"YRZk͂%JzZ:խ@ ]8RҺ_ΐOBpy.Q?.jTDOKZ ?zծ(JQ (3hz@T: 'ni :~9,kff^xJD0SB yl^zRv +J# c 2;9a^ٷDJ32Hg T'>⭡'aϔn<u^ s!Yx[d]9KJxv7,/͵5?ݥ'_>uzXكsgd}^s,\Xp1q7; {xꅽw&v샌n#VI)]%C-^#1!-;28'5kۮ֖Vi_.RҌ78 / ԛ뉤c)Q1 kѧekÐ$%exiB 纥Nb +G\0)F] =*] YyZ qVR Qڀ9 79Kվ;Z#2K1f<'e7k~8%u8Xc|K͗_l2_2'k)yf)c/kAXucl-J]+D8~ob0 1`IkK?1?qKLaZVxA@^]^Tn,}p~8:sG1\`^aoHUxb/e\u6"-B 5j @ d*kϥ.B,Ew}m#ߵ9n}oatӂdܼLwyG]yn9nyܸ[KwÔmuM6W}~sW).Op1d*X鶟кi^y.mos\~}MƋw!wygFvLo,݆syܴLBy\نgClfO|&]]ط@l/GWo, Grg΀Ci'm{0M|.3CqiF,$%7| cs? `%QG1?`MX# 1i1t^mX6YV|٘}=՗".&ix=)!kU#J3n(rMA )D5`4ӤU8iȻGnh19 {'ȼOMrx_ُsK^]UH<C >q9v?@N?#}cr@ɶ 4ze3 @IpDۀprx',X %f֦Pd `q@8& VherтRdAk  ,0sĽ=!_+,OnhCc ӇoTy׳ Oۼe;+AZ|8|]r`> ˛ OzbϔQIL02 1('6<&m9ACjRuBV dʘiʲi^Bj}[~O=@0@68fvx\j q@e %Ľ(`1kP"IP %@<ZQ @K(:#1XBq _.wsLW wQ(TXU J`9G:J>X&8^,C%MM\g _M{h?bUG_r_3sk9 LYdOan#Il7;Oa,Up-!iɌ馯{jh\MG0''>lȆ OfԆZgn-]}ҔZ3>Kݍ,IƚV2Br< ,juZNCeK{ч3ހ M;~,YG@IDAT9=Rr>KS' 9KrǤ {k?i^m㥇~)q-wj 8V}$q__{S^H#X9uuIݛ0@:?S1zzdu.Xug=:4堗s,G9m`5c쌗ga`vF,K$KSxz9}nuWݯIF:uTթUկ{w )u ~&y3[ ]N= y 9HD!<х;D5} moY>v ?OfYM-,V|1bH֋҉Zd 1s'{zoWnxR>IúU%12 |6RRxݒ7u|lEN*sGRMU!Uu4 C'Gƻ bkb܄츟`Й=Q{hg1W>b0;)N4_3Lǒ_{#2l< v4q>L<֨f2tH%{2Ȯ(/s$&d$h>RaN-0 δy ̈́6p&:> ZU#y0Nx~i(+6 MRR PYsqM5,>{)wc85m4yϗnekV>CNXvzno*e@%bz<'mIvuHk,,[#eMRjR?]n߫˲@\:!FȔ54\\b<Rz]Wq?_Ǿy{/oU4ɫ^BI5, 8_>"2 \F2Җmr7*Z-g\~QXu<@CQ7p%zGTK @>': W` R_zm-`g)8]L9@I/dO@6#Ɩ_˥%:eb\`XjNo#  j1_Ohyt,RhW%due pz0x gBK,q&SY7jXE8fP]# B V @>xEd͒d<6rTw35_ha4H=׶aV 6>lLI^D 8kU@>H\sTT\-U/#!m<'lٱGz{fÒrL.Jy~8J;"E~`!|lŵ]̎m 43x1VfXq5}Ե0ZrΞ)%}d[ @zX(:2V]#2nB2tf 3cK̝}^Ƶݩag> ă2H/r)L Jb t:vC##W/n){\׭U3'`H[ ("印Hryhm''NAɁ 4hT@wZaOKT_׳~l6K>Zɕז]^FLMʥRʘ.n jga7ny\߆-_kk-oa4p@!e(Uq%r/sN%#Ziw(-j~s/g%)k\uulذAfllptmJ˱y&9n /ON]t4q?Mh{N0Ce)ΎR-U։3A#_jz7C5 ,[lim\-sL>jܓH7yqd䓗4ƪhc4}1O<>/Axƽ/Fótb:c`>7W['7İFZFm aD}?)R̠@"ĂLܤ1El>JDBϒ@en&5>¥&:#O-lͮw|mz\i_'X^A`L=%!U =/lq:rX`34,k.>S.zEreRl\ `Ҏ#]o="Q'hVȓ@mU8 .5LCz+Pmh0՚r`MC܉G>%o_*a8@:97JMq].O_+5n-G򫯐V,]dViًWoZҢB_a.55I}#X  fLp1#;LJALrbBF82n9qJS4] yq+?c^P i*b=fip%bP>tKTL13T +lِTrL+GyŸI"ٹZĺu~{EReࢥhf)X=:PyI *v#{Kәs[̞PgxU2WZ>uH9LBAX$t * IiָZ7u L.1#ݺA[aoCZ`b>E?>Ґޱ}l2w|Yykl 6:ꪋu_΍?dq1Z^pYkq:GGb-mˉQ0V#$wԉ \ {Wq㿋tȕoHT  cU\R+'WQyI 9OR.iy#34>u (8L|c"1q2C#}v^eKxU;Y&G9 NXVr:ozNǽ+xA }ư+ۗ3kJX9af*UMhyh @@Nq @KvM 㥋hi5~YfCY~}B 31l rn7S(x~vӧ|,?KtO9vm|wAS92Tdf!" >=02 #[ib1)̃̃4,KWlyKbFdyt qօ< QBtJ #yyF@~DLx|ꙶb2NXA`+j&Y}։k;1^hu %?s*51.Ys/i+ˢڭWsHu%8#kZQmL* ` ݼu3vSZg P zCڥs()fUnKU[k!;4t2C3~+Ma}146POaOmOx%7:% X #ȗ5@bf X!JڅXf`;J;%ΖzEo_{H;pL{A8K0'X6'iG Ws:]<.w|ci#m-go}V+qݷZtWxbMR|96= 0g׀l \=K 2<ӕ봫]!kQ l/Cߑw2e_H CF`)ۡۥoaaY `eJjW/gx!7nKT\X]G%SH4S9 `}gU'6}_6`{>!3,|};/]Սr:Jz*&Y #xJȂy9LQO/P'M !XtV->k6.y8h5=(_H}b|(>RueTb0^:c؏KF[ ;>rS$y#׶YbX&:3v7J386cO8k  Z K%zN{rk4h @@Kxiry=O▅? }2g 5ڿnxi# S׊#%z6r+gMo?F*I+42N^x8W 3J˕j󨛞+?88(6mbsӳȤ4o{ӟ9u&[ܼhxrf]<6=_J1lKsv43z`~[hVAb`l䘠`F8-$aUL@=Yl+61=_i p?4#5Y)4ЂOXcŅv2;Q !n,'!+dgY+ksl5Jy)v2c6|n|?+KM8{qq\ Oz>CzX>)o|Mz Yj {Xjr1C'Q(-Rw$^sCaHa9WZfϒjXo$C8?q¶99vX!X(Ï=Uּ fw1nN+9Pk3P:|Jd^C,p]:k58yнLʖ.RbI9 ^Pxa>'X 0l)YKdpJM*}U/^$s"Y|S^Fkɂ=ZxQ(@r+(W'N0C7e0LFb| WR tB}˽FgHkd{+hJ\1bS /ENc`G\!Ȍhy.HB92`4H \SyJZL`G cNk_Dc3"|HQ`C.ש@ʴ?z{>5R=Lt~XrO\L޷LeĹ1ӹ^s\̺ 8^{ݳi[F>4{11&e4G3 +8h @@ @`0Uٸqusɥ 'o1\2m^7P[,0:?<'_.6Daۏ[֗em1__q1CFrOO+ l-K&|RZN=nVn[VƵo50@diȰnǥ.-_.ZB| 9^*W9. unaئYa֪1l{4+!^YY8cNf_ۗd/L$-ϴ|$\5g&Pц KFF eu0P`L |8u#ǣ[53e^́V  Hs>̫d &Ot:ex L[Y>xM]X$A@zf;R+1?O_%N< ;CjA@ʨûʃ>(*9>nmͫʟ}YxĐ~<\ )C7[b ͕*q~b|AW 290$Z@\ODt|\+I+6a=9]xW6x@=ܲw[ZBg2P#V79Y"Wj9(,9@ bj6\WE'Gu~hyiRtT\ du8hA\]z4Aq굥0&QqpISZ:XunO* xTU&>?hĬ==m7)W䒍@eiU`q̉ 0-82*NNab8 0xDRT Ix \ αk$VˤO|g`4.}qXnsV jk/뭠Az? @55GA?:~)O%( dv;35UrVnH`5$j]E&6K":O:!;M' t;bL>/7<,[7+liϰoذAS@z/spJn-_;7#?tb)㏿"i~M)\6˿YvL:o6fpùh~y+M5dk'ۥaW[Mc84K30Z>(˴k A\* Mf4۔L㔊4%4F{&9A3KedJ&-A܂Iz6S̉uT0+^z枞[mDHH3bY1 :D\xhJ1\{] (XzzpX}kP~qӺW>򷟒m?̻` @ɺO -Ж藲E$l6dxi@ܬc ̓;i1T /,5@sJ dE0l8 l HSDg uvѮNy్cNjrť.~H 7k_x+K5cpZAz׵S3QPnw?̓*Yb,:s={TZrl!X,iU eW @yzЍkÓv H01?꥿[p̪eƢysj.X4F.ʜ. =[f?f`R0^I0BSPMHPb ֧•JS -` B~l?@Z&`r( _#(V+Fa1Iu%x; $y!/6zR4'ؒ @{pW+oa<شpmLM  K],LT,!P=h1]_SZ~WLf_ufIa^О0X3| "Ţv_͠`hw20%!4a{ [qMXiʌĘ| Hd-*(д>׆.3x!%CKʞ+7ր3X|Φ.|AeYY1,^) +]}Ѹ}#귾sRN r<slk=**cHz8b(^cĤN`*-]BymOʫzTNƵGe6.uBNQrbK);~{ZɭJ ʾ0?`𷉾YL{OQ [Iydе1Pex9# ++6Zp1jO[a/+z\k%Ƴ 2]0󾩳A[K>y%UX-iݒ/dDLD5̞s/)oPih^, DJN;@  4h @ixrz5@h48WZ>^ҋqnSu+6ܰKcei6 o|hղFNUWSS#Yݕ*d˛|Z, 'h%41Z*yl0CLS28?$‡o1 ʓ0.:x([pI3y숛zJ3X%#=ڄ'e!//s4C% d)P !L-_IX9|Hvڋ3'pbu ꏅ´E%ǵwLX 'g$ ׆&ze`˽G^9g:y_@ |% (Otx ]A |VVW-mdl"Y~;wnmEAXjA JƗZ ,50Dcx.GQQohSכ2Pe(C~c]B!`jFgV̓KW;Dyy@q3[v.kPc@Βkgxi&a1G 6;[ҼN^8d|k`$ :mOl(Des|! G醐g哦@[> HTu1j6ex*'q GyKZR}kl|t~"}jI SSO~oUoR"X 2] LtOa<03>){V{o]d;ɻ>Yl)*$1G\N FD'pBq}#_UڳG{ddpH6ϒ&X6yw~K-=Gi9эtJ/,olo_rM.{뤽qt!ԛ9SnT}T'S2Ol3P,(0T 5J9tX_z<ޗ8d-@%pk : dz}:{aesH~֛0,urKp%v>GIl)/g0`mY-u)8hyh @@ didZbo㡋hy?tMZhoxY~4K~1y,O<6m&|uYl DqL 6n}?; K-Oe-'GJdvвޱsCqqMag}diŵ.ܵϼkӟJe^<ńrsIsGwy򅧒וY̸dJ4S' 3>W:u*eƥw2yKa/dؗ6JmqZ/a*âq4h҇P&:xe~|ӵIf $U Q2gҽ&AFla`Ħ復iL7uO 8!S6\g2L6Nߓ(BLUx:ɰJMgZ 3lm8e^JrRN%TxRYG :q@c钝=);QֿROWb3bVT;R&X̂J^u̓ZX"p-9Fg TeT(PU=xK?p5mj6Ul[ 'ҰRNA8 ]/Uϑ~4Cshw9fFZ>DSWzIz:-iR'O??5~taC-n .=WZV-h}@5*UUoūi%S6'Hdd.8: ַh2\7>Gi#h[)emJ'T4Qc{V$"*ʲǦ䰦>`y)yzbܔ" O#pmz;@K&i5T8`B`3 kC]TŠ mF}QiϹӼ`k4(Ƿqm9 Tl4#`04 xh94xGQ&hAƨlplcހrSZpU66V &k(+hjМ>ttϲrY`Nlǰ߼`Чt(ֱnl#< ~702$(i/C\JJOT,9H'҂RJHmDLjTzq kRN,Ej  'Ȓ.5‚n+'oVzeR~yMrUr΁uiXz6nR WWbw\!\3N`d\SZ oqqSm,]Da1Yi>Sot,v`llI։\ kŽeObN{u,\]wOZJg8FD^% Vk=,C`S/I]d"T\V?C֮uK /JPb /Df7A' Hb LHSDۥ5 yWʜCE"(JT\+OVTg d2ga@ܧa3J j}½e ( (r?Taw)x`K+X_ٟl@0S69! . jkCc % ~g< "ØGQG8q3Cɵ>= mn*0!RWԑ`K?->=ع뾃[QN-UnU3hM;ZN.I 4h @qDqM\:@b4t?͟8].Bt4W>d˙\hO|r]fEq[y+li=7,?Sgh97S g~'K!&O8@K詓i+k*A0iMpo9f;|pCoR@ 8D2P?Ȫ^T=!dzfU7[o/84Q6|u'0BQk#l۬biY2 MPߴ` &c:jL r|ZCY# tꂿXSVW6/w S'; Jdˡj\y&o)~F9/xylvo3^&}}Ҽxce(^(ݛHtaie &H]@VgPa0уDa- 0yănZ R EP^Ljg<;AR)k(@vO?%5rəA"8$&+*'C*a :^o•N׫`,\ctA>SdXVF7zQS2Ky엯\,]^GfZxEA J Z{d`Rx>(x /|6D4`y pm5r}Rˉ}#AXX|i 7e=:=U/F>1X=ylx[0G"s`Sd!cu пv@V 2zD` b, Ьf}&̀.3ڙ֬5~hɗ0ZvkG{FݼYh9yGPC5"p]߁VK.OwWB8@;޿~)˛sd;]j-DQnlZ @e[`)Ajj2@IDATbiy5أl{Q9}ƹJ[gI]:` }}L rd\,\*?ћLI:0 qgߋa75-`G֗aWebǵ/fcxA^)91Q$xF ЄZ5ҹ_dӇhd9ܱN۵s q̯Yp-@Fe~,< *J@OZ1s0Eˈ~'2õZT*g#'g@Tn :@@ ȩhS-' Q>1َ  ?yy;^ \]5l^LDuVK_x9tmxrYY|;CկZyRUκr8sE.9EvF^F:N"-댙9UaM\aelY/]|aM5./Ɵj|ewpeuvxrԜwK2㵼!D7]Ŗ"a=._U\m8q@K#=X)qm׺Lz?:I|z%>(B%`4Kcl*90ĕ͸^ku@Ebb,?dR_QgRN;s/h?qa~Y^% E"\V, L ROQXL\')^g]@?Z5!lfqYLKgOB bEc* cFy;@:q!?Ctw7p&\9;PI@V!! KpQw\ۡ(aq (#z+ĂѪ!-aWb ABEXe#tg3hOItQJ= -)uzT}s6Պsb>{8׈+2A# 4%3JGM@ʋch*AGaC=ugL i棭 Sob[ 0uA,^]X cBbԷ0tj9MKVWEBFRޚM* oRxCX#wTgyg,w Ұ` ̗2M1}Q&R_a8%Qlk$Py97 م_`(^`>2fL괾?"N^ccS1/C#vJ3dޫc-|#80:o}uĚxx/dxr`uü=hC?nG :]O`I˖2\؃tJּC[!YzD`~V1tXF ^H{a/-쭪x)mчA>cY6R_*:g$* 3JΑER3҆qs]7v#В%aõ_-k:gK E5sp1|qwZpUBWsL^PƂ548W\8$@I3TR90iӬ#LTaB5tIA[Բ&tC%LdWh['=zS}4_ruH 4h @@ kdZ]ẟ 3 >S*O62R# 8++k,7Xߟn[>ןL7?؏pvyrm~y~>*GK.ǕF0TAk|X7:[X pb,u0-?qϫb$X'\נrq5&B +B:a7AÃ(YT0G~UU]жe}+^yK-E>֠y;$`D`KZ:Xߴ!:$8uWWnf/;rL= Ս RzD7o_QjˤAjqz=޼9crYyr$hUu@}+FDHt#&:9R}ը"Kl?')ϭrVÒE5.}R@g/ގ~tFSZ,[ݐ³0-S:.PJx1iX0Je^R @1Z EBXa u %d/V= 05YN@.*Ȭ{KU9p7~,iú}>%]]R븿_ -@3>MIq<עO Y0DJT5d{9 kc!"?gdRUV! W%KN_.UB<9ډ+1"xzGٞAi~HQa Oz9yl2$`KZWseMcq+X>R?+OVĕ\\8+'~Fx 2S/_`zHKa0+E-c|}h/htlA_}/-i*B $L#/20h!= rhm(0ԉu2.#u0_#b}}/ٗ ot-q2uyMX+Sx Ì|@Qk 4@@ (hY@9'IRf: ӯ|o&Y/Y> A>>sy2si7c!Ǚϥ1\?-/\a~ؾNBS42W붫 [9h鯚}%~<7eMUT?t+9qE]a\|a*P?*Sf&sɛ(O3)X}U\i. ۲,~*OF [k<"Yu=f#YgKm+W=y)?ͣ@KTXYqf6ZqMx{p(gH>x)) _8ҌH̞dU!kZ֗NJgmdie 3K>b"ҧ\{&HƽR)S8փY}@V{4ȗH`<歓u nrZg|C4s"mji2͜TiFX!,3*c綾.)I~>! xThu 1΂j?<(o]>?g+QXzrj#m2Zr В գ, )XR6j^ :P,*p:&a2uXJuJ?vp({e_bHR,!W:- ),z%1Ug;dt8vWz+LJ ꎠ -ۺȮ=ȘFc^ch#;%mwg>i*J _c-jqrn4f9yasTOXEmHj Rw'a0vΛ"QZ7`չϕ7a<3YM/ǥQye1\я;7?CA1E OF3q?1KVd>b*#AAX 7x}$0`"pU(ji>3!> IQW^]Fz UK6Kϸ>8vye"XNbT-̂2Z%3? D xH=JrSZY: 31%u)M㚈v!lvln& F4&2}LKWϙ.VKUQYH5$-07k hX:CcDjA:qǪ{}A^,F&8S{1٪_uoy3R Q[ r[ > fUJ4\ZLVP}' jKGܿG6o"}I:vI_zsEĚǵkN(kvX^pgXa1\h|<7ng^ $Pn8Z@Kz<ZN]V}Fm|(o:dNE>3SF}^gJ jNoi:&ٝ"l^Q=[!?V۟hn RH=h_v%7xd%*+E"V)ZUI:Կ/uĬ<--%FK5-۹LEycl\|ee*-fH rDk>M>ܰ7.;m vKWgur> ssR# We VOrHvQn(pjkq @ ,@-7긂^ZRxRE˖8ֹjS &ڥVpK ^h9zTSۇP|4w_'e+qg#Ma)@V=G P%hj؀۾C:arEp>QF-55p^ߞ#rO~&)Gd^}#pJXU\$Z!K^! k` Hg%s` ^tb̕`qxM$MHο^WAi&^0K2s"׷Je V=ɀI+Sz<-z1Øʭ57-g鉏,b+cŸ0(EeR |Za0(ЏL յkalN*Ip~9H8± C $N{d.:;S+0Lz૪hlI-DirSZk6SFhEȰi/п1<I9 ٔmyX[tJ3qP}[YY>eTK~[;Yb]?m F^M|teda Z<@@"M4b u蔫uUDj7B狹MuЙի}c 2TW)]$1 ՁƳ7uk8GE/ǎtʁvᅈm]Ҿ勤߾AM0Wjkr_d!^yC=c&dYr5:S/CS0kJrEe u'ΫDt),8rtR55ZÚH!GXE?Z<&">Տ!8JC~񓟒R!h^N tl# K 㥃 -8~^;L'-ݝ]R, ?$%6I=_+ΕUkJR3Nb؏ud܉ɗ9 ¦C@z86DA%e]IͲ2+qR_Su%:oM(^"{tWJI.n6 ò%̵o\ :_[z$vثEggQB{4T$ގsƵq"CpOC۾~7u7 j a+O,Ul\Ԋ}__szƗ%%d%h&!& y5Uw9H9C&-IOz̹h9s $4h @@5p2-YSrԠΤ.̎!,?;NJ4;^XLw[42W~+ϛ/nt/ 7_.t--W6eL0?o)9rUOV(Kץ*a:dZ-9?Y8zWL3UӑGϧ3oJɧ>) [ۏil6Q.zLF5v7·73 YB-srLegRrIa!ŇGЇCC:keN7 ^A KZ.h" QX"5QEae-p'azࡱ1azUZ./3XV~Vqcj@j N E6/I.`  `9@zbM}&D iQ{s+NMh1&QO$^y㍺0mv?!S`W~1_ݲh3/c뉺곍%iZ!fhXÖn*u11u%ƼWUWKy!A Y1m+iiAwIv[13{MWZ su+˥@;]P.h`IƜ!{vZCvCr_W_FDV5שZ'\=,%SOXfbKI9 \sôĈ=2ı4gX&Sۄy6aOx}73X^<.`!@|=sIZP7L_-??ʣlMen}URby2BrW9f~ou%!ŖeNΫ;|Ԓ $ xyw%5=k{3@U2?_̨8l`!TF0^^;x@Xד( E$'|Z3@e%ly"#Ev6Ʉoصh31՗9HrVZ,\ e mڈoj ҁT<6r@i 1@@ (hYX?'Kj*\h9 eҞݦYQ6_>?-/_ ohLgwG'?qKo|6lZۿG?r'ߵm6~ǫ~3UTNG{NaGv>Mkhw-8s>-x|N/M+lB2KM+f4m=M|ַ-m?_vejԀKit^.nOɹXR8meZ`q.eg n87rJ_rDr9z,_4_4"8( l{oeqy̗Wef֒J-ɒdyÆs94tn8afLk ydYe$$Uj_RUo/W^neɼz/7"n/72h"dPM `2zkphK !x2\`pح\H{VR?e_muّ԰EfG[#V;O| l-iB…+6=7Zcv {G7?*YyKm&zƸ0{[s5ryXO302Mpf5Rk$e4Ikc-eJ봀Ŝ8l jj-q;qNGc.hj[M|SvV.`;b!0s! [ҀYV m;ģ5[ﱳϻXgֵkaM)d(@dO=V4Z`J.Ƶl=ֵhbNu%/[Ej9Z5o,ޥͬ۬#bʶ_wJk~V$Cvڹ%P \hT%k14f4`Hkʇڨ l a5UPX-h) Z[]X}h缫e\\(wO)ZSXV>G MgqyI$_0ED-r皻VYsHg,SSAnGZ5%3ҾېInv:IH%@+Ͷ{r= YSZ.X L (H  (H` S*NJ/~0=.~ǵv2 !]>d\HZr榝'GgJ䓌.\482$fs->(/}K?`KVt&W_ri=@/!F)on٦熉W2,NƒQC3YH嘫['矉W2LtG z\\v;!^}IO'BuCS+Y8"5[b;R9:Αkw为6>B ֵx e@LcG|΂?6Σ`MT)?GNIfEkr~ "|%L)Ng _w(D\$_up]-(bŗ85Xe_󘍕Oink͕N<6rȻⶕA1F@~?h-5@>}Gۮ{mG6,/>x}g>kVs ¤ytqyM%ܚ}˞3%=wأ[ڳ[jk[ݚv1>$L aōrKS B{oPYX8PB5&VOSSֵQ#笷̚Zڬ+UN>QZ3Mk<+~h-HgVy&Q۱}[߱6jyVNYRxmۿգu>{WPvjTZ2hlj*[orhJwnjeT_㚵neʳvĺ>|3$s"%!u})0YZcQ&5 b.󴄧і֩qhjoyV!K \+}>]* };$&mT5c";%m2K?E*0n^!%H[X~'`S9;,L[I(O臈'e̤ Qa*'qp&گ^$?MצGȓ_Q xs{T^Ov &zQ$4hEqH>D~5’TA MTK)=R"ѥZLpʥp&MuzRr7d<>rw"9P2x6@s̍Jl£xY> F+[^ZXx˒/{ e5N AQ9 xp9Dxbua-W~+}]Rjivm՗N8?Ռc4 hu){ouv)ؽGo+,wmtz+Y^ ,ѱ^_s*FXSm\eʟg}BH@Ki xXēOdԚχVT?qƎ:`{Gak\̪Ѣ~U8}?gw'>'>h轂a+Vm."cU{кOZڕgOӾ&]_ YeVZqd\H';6It'C/La|Q> ++t q;M%7;'[`{~~Gz$!t&)hf _ N/-E\\r[|w1ҟ={^3MWqFz\\yVߙq7w~〖~PJ*/*FpEatP0R Uďd0S9":<]C|D؞o+w1٢BݲNUM8RQW_҈ tN0䎼#VJ=3.fǎY_9mseBC7Jb&T%> /&^ITQ}kh gq̂ꛝ%`Ҫ,&nS_l8@aPiDr)}6egD(:7)rVWBrGlS%☥D0'X\[Py?V6 3q"ɊڠG}PQҢd1]Jc9"'\%28jOSv~_QU0qqo9VZIC_լoz wN۷_262?{¶ǭ箃0M)~5Vev5ꩿ7l-?yV[aYS-쯘2C\`nd}X2496 uB] Z-~Ư "֬.};p%CkelWGMkWڑ{⧬m:K5\KLh)<^욱i8={+1iGlմ svIGM55y[޹N} ն뜽<>hhĬ.*ʱܶ/CTsk}o`"*%u8ha.L" kڡ9Y{k߶]vrH'2HaLΐاC %Y7gM3+ATM{ }3ۀ#ӴW5tЈ iK6hEei4ڋ'mMEUU,2u"l5`|eL<QҹbCr#ڭ4.(%Qp?iEVId8)d36h(lg-t{s’4!>m` (H  (H &zeNjXoʕݿ9臂2ɼC{d@ aNO%݁6=W|i'Z v2~rewH!2.;; ~h)#SO=ůriZ̕B?,(RCi/\`x!3gjS9 @k女T=o} EbS?@IDATL=i?hhLtK^2L7Fl-tI;׭0}گگgmn}M(f96ѳD:2k3dr,fϻV߈;p!Iрt@+ :+d姟]:_vw":n%%y$ @i:'5D_'.@5 S೾g3؉Yn-м3<=j&8_ IKi~2N 8B) +@WЮgqA2uxɎܳ`r~rx*K-C7uiOfIw܄Vz:L~ܧ{H<9΀)γK4zFum߱5Uwe{>kj19b#WV2Rh:V[ZT$l=<{J*(g h=7YSS%iCàeCq@r c/4Wߴ_j]ZSӱ~=tҎqOw]:kjZe*{Wzu?[Pĥx_ڵct-2AKQ[A+W_Α?mVYBhi< .mEvu,_a##۾{@eQߨ,BDcet4ڦ{n<^T15?xkԡ_ @U).@/͗WxC'O]{6D\)q}O|=6Mq_O'3(rvN%3OΙ~\;3GL8M >*$ZVrs%R k}>~AcZƮumj?o>q[ߢɍq|4Ѫ5`= aKSk^#3Xiqssw1~}`gd/T ZO^F 4Q9D =;kX".RʞK<>*< $P@A $x'-Uy;KݑRɢ\h1M62١vi]2.%Gt6I󡝎L|Ix%B١!,I'wϵ]6_|aiw׿ůA bYh9ndrqi)Y ᡴz9_ef#@lw}2n\MҞWnKq `]g+,|R> O_SPP)S̵]j9lf k31dr,fʩ9]+ףA^,4: <@~ +Y~T49)r)?XWmt!Uizo6Wywýl* ĊO\vVTP Zޤ4}ׁ/*;>%#ݺ&9=e(Bπ\+ L@-͗;)J#z\J#!iQ?LkiUJYK6W@l \-)#E2 LJ4W5dj ͊L#:uWw"t`fvK^(LZc̢-%87nA'#p_B㉋ |;E(eZb)1HJJ[zhݏi͢8o,(KnP|"\d7.j(ADPN4JW~:H[~OŗY0r3^jg7\SO rMeQn+xvۑq7 8>3VZ[{x^~n?;ܡQ;}}>gߺm]\6SÃh'Z)l玷XAFu\~?`W/.ٲj߶*\,.:zO2\)m3Ӭi.C3'D1`BbY2_lxK 'o94<bE<VغU;JxZL`.6\GZNmHsuд Э(*J=vmctmhoC14ǹ QVRc/mFyZ֌r/BDPUi\ׁVuֲ,:AeN8-eȶ<&YYCZ:m خB+ۦ_UF":3Vf&g9 g TTKшm.9hV+F G~ i;1Qhjߙjd&Ƌ'w*{ARjc2>/5t]+M ꏧ NtfXHGcM׏q}h8vk d|YuAGϢOQZiϞ?<=SrjnZ}R,Me_ 2pGu'n--i)H  (H *{ʂ\͠Z 񵵵Wkl'9GI^ _.x$fs||k (K L돒f˻hl7LKb_o'NT́M xA/;Nl|ɰ|?מ->I?dt/E't'mCU`l_ErL\ד\E4Z΅6_7]|y,T.ɼʭ2pg1aO?5#I Qaj؄q a&U9d8rW<4(ETJFCE= :?}QOx$'j,+ICiCBg0S,f 'B|kKp)whl kՋ h~ cOdY@BJ4^s%ni  gg;Sg".ge*B[$+mUgmݶ ϦwU֠zףQYK Z~EnY^^Z;mϼwA4!ط4ryKmwXeb4ZN/.Vj](A0Fh1Qi2Vw2x߲C~g |zH5O'siM?:;U롟si-d6a?|*>AVFl֢u>\$%-fW[~]5Ӿ֢#M  цx6Md"41N;vNO-e+g+ eZ5v1z# }[Kp 5VHPYcՋ'Ӻ"(s4KC'v5SL#P Ma<Hd*$wa}%٫h4\$P@A $P(-;16+-O[l??緃~?臎~\a9WH6+l,CH3/gK򚭌ⓤ|gJh問OM'I!,KKs$w_+k&R?S\.K-Te_aP? .;P`ei&IyJI\1v-r^a2,E822À/l1Rg@jਂ!j*l2BC'ʺ d#@:3+Nnwz^dUgI w&-pO͸ ڜFb&VPS#LpMPJV*qRk H ĩ1 NJVv*K`=2 Z/budu't1v*0vcyvO6,&f8y)UF 4N B{~G7+ndA!D/XD FID:sq_ ò.d%$cZV2^e"a)Hif)0%ܺH%b0`?##"]CuWl}4;eʟ&H=!oGy{/9e ;gCGvEyT? 0,T=@D@җmqzGWn?ͷ=KV[}mjj@eEژCCkv x(@B08&&G8CD7YܣNtYȑv2_(5,Y֠)nAf 2z/{~E;@Kʆ&A Q ?W8!"zGֵ۱y=\H38`/J]bڵ!:4׸K߷^PYYѭyߏjS5T騥DXDxO767`α!kXfh|O}G2 r]sluz>\O/iZlT]AVښ:.?2L&cku!{yFVxY=!T3R,Т Bf%b3B?ʰU0=X:>03@чAiK^A}KQ\(S[|]QC{85iqP=:F28::z9/yMVZu1K }+ݽI.-I6 $P@A $0g ӁH83s~ Bu{>r}>'dB|vg3S}s)m>Z'-^Iw.d|.;G; Z{]&ә|m2tc:,F''"y%ZB.RhB&>r䈗cRgݜ/.4%7dGGCeAvrфdϞ \h^̰(l4Vݒ.wxA~u|BB-\W:"k'd^כ~Iy#*0],sÀ;H` Vt +rULV%ASиg*D)DZdԙ<,A|CTdk5t98q%'Ht'^N*C aS!P#8#Rx0o^#<8tS\(L"MEp23E<=y R"$8$7vu3`-&*r]PAsI%I|-Tbч\ *Fk@(~ iPă~¶ܺJ_#@'ڨR#4Yڡv8v˗{XZ8ٗ_TwmDѹZy 8Ud;LɔaO@H4@Uӈ~pĤ9w \mRKnJPl_]@q;k*'Pe3!hiyסyGO^ZniYi{M`Y%-LTn)o9g<Ɍy9ә>~UsOx߀kh{G?<Q!u蘝\loXKHOs`q}Ɇ^`d֌6[}u18==& Jqktˮvb%t}VӨUǽ1(Bp' `gOX<\ƉBhJ;PJ٢YUD~5dt*B__xuő;c8I^1a]6 c; $L &ǹRi#_rT{F;Ѿ֓lD,x{D)SVȩʦ 'BJq_O p<_4V!i/,B#)."/ vOs u\4QRQcylϘzێnԺ V8sl‹;i[x̚VsDXuCӼv̵q/|DiFȩ3y[a7iv鋪޾q߷ݯiVزrykz߭Yoh8\k:Wp#&Gr|Q@<9tȮZcU_RͿY`OFz|ΉaL4WƉ4klnhVsPLeL%PBdKL2iMV -9X}k>YǸ KCBHIqޗR5v.wT# 7ٰUﴉ/%o/qJQm BNPp37م;j,R1𦌙'ݒXs<:p M%lWn% O%ǶtS=dY}Z=;Om܋NZԶ@;Q愞2F#deyIU@ * Xx{;oiNtj4a5ۦ+3?50 ګhh7^sj Bz^xƾӶZ0޶jZ-3ĚPSY 0rM J}S`qNqIu@)[sV3>FU}j:q40T2o'2u`uh,Kv,G}OOwSbd]Bqb_? @N*&8higP!o_7k"=Y!qP%~p{7jL8bdҨXF\LTN{q,X` OmUYq-b҄tW#S!UH6< i"ʩt5<#+V Gfz_QE 'EwJC^2L*r'嗉hWD>ʟLۙr@Ḭ~Eȅq.D|;Ƽlb Z6؝S[fKm0DMw !u|2#9C`x;P rj{:2μ}.{}n[9QjZ۬-hB'GR6h.c?Q mɚ7$I8kόO`\/% 5'N2^:}ɺIO]dg߶HKJ*luGݴʤmm\G?~.i,^.%pi}gފۙ\s{ٟllU}mo;7l]r:zK!nNuZs(u+}}lp@e3ו,]N} P @@uֲ֔ SBf=9}m<~.]:Zڹiki#3vHd1}Q̇^󡏋Y$Em]\`)9wХ IJ;5oI4!.!>.lX[g+pf Iإ45+"u:ɋ23=gcՕo&83%JItF{]&)a^-SWE؝Yk35rIZ`Z@A $P@A3HT3SRB@˾9Q{h%|/=T?ڄjw}wHߒy1%מNBX2MnL";'=4\3- isx)>I_vc6>&آ \;WPh$:?;_ΏûZmhxmqR IGͫYOƪ/^MqHFg~g\e2*͑_e;;7.ٳR-E9B?k!<ן no+glkG`򻞶J^:^s=y6HW2RQ]Z\7 h&G=nAT&U{KMHI9~?tE_?NgTsD"̺BQ˦񬠇<8WɈ;94xW&E"2qmF"uNVXp71Y68$A^^ʯ*!rRApF  Mc]ibns|TKRg2ciTZ n(b0S߱o3ևaA+_sVQEkMxr1^K ֣Eg?.;밝h,x(od.0u?&[ e[>ʳlѹth\3N-}*z$(@- "v | Mm\"܉V2rwwkc5n^پz^>lc)-X}Goq5N#4qڧ^go8hϽ^ pjjn}?n7߾ѵow>o?r[nWwBZ+˅/_D_E9cD*in[kF"6{±_o EZ0E4˅bG5hQ`ĨKM>3@ hS~kmoIcKcuY˵t3eykĕ1VەYe},)-[~ $P@A $0 @$ΌkYh|" &7M ~?br3K!M.\\\B呯lB`'3S\2>xm2<;ڹ@3g?].<tMXZ.l\\r[|{!iUːԩS3jΝ':D: KLrJ.8$Iwvn\?g->ϥ[r~>Sy4k!݇_~oڪ5Zv,kUrˏQe-pݴwᇭ}yRO =/2+8DxbdIt!>cMy}0[-9A$Cw;"ϔ_dJ祍dK93PDlʵZO@:.T{^-vvКk-n'0zUO4}llb͇6k͕64hӿ }$sm.ƤV_bVͥR: t=O~}/E|4RH~$5kߠBt"Z2|J7f9_76ѾEfv '3b9%A(#3^ )p :}?r~I#'N60 R|\)-KlD $P@A $  1̋i @˅Is˖-QB?#&}kO[2M i+<_M7S'{tIܹ-_zMNa3T\2~:&!_n}ry 4 %e_w/h)ɇ1Nh]o!|#mOOU\Ӷ4?FعZ0~w~fH2M>w vr\ O|hg+k)KUd-n\Vڤ;J' Tn[n ,FKz=M1 m̡MgY8A,7 hRZa}V,|Y&]z|bJe3~O\թBpg:b~!e)M(+&w$9x2P\NMD=zAtJ9R^[\(%WyrnF犡.A s# 7ج667w&UM(Ȩ iO}3:0w9@G='uۑ^{v q;ܨ}?kur个e@ 4LB#M(okb ŀ9/ڮo` G[⅁^"=mٸgS`_Okrr3{mvw*ۂǕmց֬F#m~z(ڲzf5h HH`5,3'/ءnT-s칺zI&Zx& -A#d&vO$;v3-Y{'+[f T uj̪`O۱mi:[gO:ei@>Mv !B v%!v^5I|J#m9@@hi~&Iz5P6o`<3<>+x&Cˠ,A^x;Ih#!mW))[:*E3";e|VQf#U4:kSkDsy:&.0PC ~xhc7F\շKO%"b,XbQ{ Qgʄ(^I:[0~8EuZE SbQv 8/}).$@!6Fz@Gƥ3C.JvaM.;2EJ! xp#[{C54ZsGΝaV+[Y]@c,w6vۉsgO|lƕl=튀6Y߾p|jL-M6-G+vMS1&r2K !8OjNpa3e9K9m'Nçy.CUYڷWWG u˗Fzv~;vMXM+gShd=M0*_-{WGYFlGmvt.v_}G>WۆmOOZcS#[u!ƭsѤgqJ.epy_~kAe-ۚl3_{+fS&}jRUu)qwvڕJqN\jZ~h}3._D)N!Ӓ_O1FtsM%5j[/ 6f0G# i'w R]ha8y1\J/ p,mV u~\n(緎xy}l+PY_4\ngRЈѐ Na8E3q*;*06qA|I, Z\ {=&XnAtvjQsS  (H OjgWw5ŖEhۿO$m I;)[tIw>r`O?]xH7;Gn٦{:>_hNOM:IOQZJ>Jb'j^Ag^c?lr,U~ i9{5;Nyuww~}F+Qs׾5[7oѺh[qIw.ml>Ki/e}7qIp[i+ܲ\.nco6K snOp@ªx|Ow'ȫm;RL! ;O~N<@.k:ȃ[`P2@Uhr-b4N]0*dƳ͊ M@]8%2u`,1>9:a]D|"X5qj^,Tҵ]TF%"y"t SNd, jeiиg@9@SnZ t9ZdnFYЮXn iz5M›-.~U.+fϹW0 OZ 9n(8cZNF#hMFZN} ex!Ңp'A3@?À#mKC3Z&ܶ?h e^b9~&F'1;>jò=LH $Dӟ^{W>.^6.T3+{@<)dF5 7βk~` ,k$mabΜh2Ęu`2 ŘFSto f2 h^ O}`wk"DMGZC̡su| )5i\?_9lG:<2d'.ȧf};vѦq 3 Q|s;'hj@쵎hWǭYm6@CEIEpf}FNZ35?C9Eŏ: v/p|˜Oۤ`6.flKZR\+ZzҜ(K,(K`=(-#&x}@ˍ,xo;c: G4z^/Mb\sOh"hJKX-Οj1>~_/_qxia~V8,^Rå+&n@KnLbJ[~(EVfX[9,ܨ>xw-،:=}yQ}VJb$W, (OO\#M唎OczڏtJ4 _:c8jo:۟aO7t=?|nv_8h[6G4Ѷ\/n#wua@˧>TV5`K ꧗o0c,AVCZO;T%pȿJ/&_hVv& Bzq"#7Q@?)}u\[]dFqFS< _s:@?;9!'Wi@8$^y0Z1ﵱp>>M8wߴϿf~=CB6m8glvKvwc-Y5`0ùJq4sҗ7ulv4Nno 0۳c`8iދ9upˡGlflֹ hlXڎ@́A"m7 P`u-r>߇ΜC Z-ik?a5qЏi@6͜ZzYgD،k47?RM*zytqqM)r* OEM\ZЧ 3rp@_NIae-gKho>(5hr`,?Q0SY64a<@VJ h?8_ HXJ0Q[K 3&?`*^^W=*zX erA0 44+EkǦraP0K+NJX0:65IsE(7dJSqNqEHiQ%* \ޞ)-}9&" Bd Di>Hx):E .͇PCE&*.ƹSs 2 iΉ8*K=/i%:֗R/AMbҗV!yz ڄgזf&uZ.n7nֻmh9g\4`){lb~u޺~~9uڬZ{Ŋf;v~`˝]-Ѿʼn:A"ڮ_%U54M3,*__x& ɳv۸a-y*x6ZO{u [sZsU_JXNkeYVNM򙷤Xi`qΘ1^x766bCvIjyu6XkdF+ZEz;b@{qTNC3wNa/]|u>74Y'4OwtQ&*UŇBpţ?9bMV[0)}v;vMMZyK>K/v罜A2|yթ7B7OXcuS}{8}UJKFxgo8g1XIHF=Dy2$gK3LP s9CcOXs-,="*5 &kva.U3.H0Z~N:~Xǫ͗ڵV kVKk Z&MR`^&9IjchKͮ!Rӓ()8hBC[Jse/>(xYN9wEcգ!f@Cǰdžg);CeVn}%.%rdry&2 r/ʗ-E:5.a/EzBCڇ8nFsFpzM01Xt$q;#O {~1ae{:f_/١S <>?}'>ImF4>UlBNvwV1-nPǪuk+O} 56֭F`[ђC@KQ%4M1 ͕$.9[1]ZGK$٬:~8 ~|<*\AÚ)kq]NˡI&?ƶZˢi*#`=8 A@ P yzz%T_& >Z,HxΡM,Ѫ6029'#83>刏毠}J"p>ҘfwE5|yuD a| kXәWczs,UBH Nlv]c<d4JwO|HpU)H|oI(O@Rr>r__C1qL\o:ƊG.g/pB=xQpc/E|b%Kd&%h' f\,Ƌx(& 8mΡ|$@,O=M,Tgх@ai4yf3>J7Ӊ,ǿ{k+k,;wn=iǿ=~.GL,a}e]1{GY{0Y60IS"i4@WԴůٷmdѥ=eJ@cXFw<ÚPm/>]?3G-fnv`R4&>LZCtn>u0>c'NEt7N7=ZkömZ.0TjˌFOڥy{kߴɌ:Úwp[f{z1/S4&Qgbo݃v11==f#SvQ..Cta>&M_Zlend Z2Y?Ybt%;x{>.C\5Z ګ[n\`,W~T+[=ˣ;;36eN_Ws썴mŬ{uFcVzpn~䑒o花=fn=4b^t%֛Gt[s+{іko Ӭ' 5v2"%OsdPIC iTJS Zt8'lZ{m_UOԂ-ox'C~P-̅8ʉڤJ?YuCGZt}Y@SjOsKvpf[vr~R}ӹV>e,(K,6C7RmF<6[H%Tu:Azy,t=== h~HVkSL_+O)#hbZ]^TY3.nOoR.ͷ8_81\o:-}nt} ,%U 6ZcfKO\ e:Tڍ_Z;v.J+1j0w n3LᒆΠg3ˏaѤ<1\엢/)Z>ŧW*[nRn.ū&яϥ1N>q/ԧ>e#ۛW hy5ZZαC{hTͻ?W[F$$ubҎiN/z.9 _ 2 {+6PK1I?x]ѩFy_/D'=IYJN,0aϣg"O ?&;/ګC7N\Na!sjQlT$PhWtJʼnzDr-JVP#=`ݴ- My߮8{ux/+0-f쥧b_1>7mh4ཁ^f?fi^ɾa={j!2d+/?}0y´\W=G푻lx /`@doIgï}+věv=܊6F4mWZz08~X 4XQ,ͅSv>Iܱ߭m"\抁ȱZ T&Mޡi{Zx#@KL hŧEsKԭʦZ@*ُ9^yxN D֍v{މ] r!6nic[6!mS蟰eLL`a4t}kkS5c =V` ni bVvpnʞ=sfrtͳ>*`ԅ9{SƚW('ǚGqZ_Ų)JpI{ rf }#'yѪ"HPv N!Ѽ'P<Jb)-PŢI*oŗqB!4_=̃?a%5O/QFH|O">#e-Iej<+́9λ?h1 z69\ gNd6(ϼq'^zyGbnze{NRX]L呀OKdd%BT(iwCY#M(/ƧJ'Je]!eDL("WYo;A"t q8\ O yғ"^W4NJZD|Aфx|^W/'iz/%zMc05G3Z>k+QR*JuRћ\b~8fg|Ҳ=m6vqꬃ,B945`{_YXf]]5h@ޝT mxh5}o~:F@|v́ e Taן?o.;wn]w[5 6Mh]`+E^iZ=PaG^Ad>914MNր=] ufh r۸yv90b5M:L /^`>gѐ9&S'Є8 :f]싚uF,efy <}=12aΟNVah8[/gsU^>Q9"F huԸ DΡMZآ+trж@[X42Њ7z6D+p[= vȦ)sa USClovwp؁N-4աQ -kBTqsvn͋cp)+9$;z,ZPJ̽ l)`!`ỵ}y1f @-i|9췾j/;oYyfos 0'VVhb}64Ig5.6M]Nh. xCwoVE Bfip@2˭>zI-a}V:/B`z̨Зb|YWk2h W9.,XThz ڶmٶ-aҜC5hVO64L"I$7&ߧ+})L sbuwx̒6Z`ζV Z&lNa`@K'3kuy翁&&kCj zqVwE,nG07tȷ]@ݸ24Фsn~Z!{#ֶЏV2`)- 3\.i}q`W2F2*305!ie"]З`ύ0yoKYK_H5o? f߁!SV'riX~A>ڈ''*.fU*<մ%H8h93h1B1t`Nڥ16|{|7Vu}S#2Vh)9]Ye %P@Ye H l@K&FJ[fʢ x?KI  w*]Gȭ8]"UFOi5eqybi?r̕$zFnΔ8tz~#ZvZJnQƛ-w3x^+?q 7e_}Sݻ꯸B'dX|$1mH#K-Zzf5=-5XL~ڰTn~~J7峬H ffYVKQڏ"-ux=PySc >lI6@:Y8qJU|uGJJWQA;j*f4 @Ә0!ӲUԘ[g*: 1 pDL@8^]݀7;0  FwٲwA(*4P s2|`-.Mp͘_}l6gMԪb1(cRGNi%{ݧYOg}nwvutZyUsTmI<,b65`erzتkQ*<6piN_Ĵ9Z>uЮtbfzO` u4w6[U3mC^g`je/~^%jBe6Ōe i] ŹJTjY9UUxomd!`P KiI@K ;PfZ6&W {E!I>8^^nBܑ P,`5fn:|y Y S>fƸ|>zDBaB)@$y9܌yι q S}YKyy*Y16 |zߒ~fj%0X/źtTksRbXhRɾ#)_s=2 C3;%lKˈ:E>< qO_$5Gx2z6Od؄Ԑ+D:Ehd%]|K2,\` Deb)ڴ\DHc{,iP~G 8UCKWfM*4 .oݭ_D#&R=g?iMlS_$S6Z6AS/Ck=6x꼵no/6`.}/O8WG}v{NC3V~ #V[Z5-`:{{W^`dw aU.Xفm[ - \8QG<" VI .Ph&Gۉs}6VM_!X+kS˚)-Rr~~-؛ȯ7l7s{c5[: bnG;b-ڻ1MȜ4CGqn -W@Fcezz]gz/emol:4Cg3gzaβnJQp4qa SwddO[zG ukaf"ef aF1G;='ղ捬5MML[#w}?is%Wr_)S*/3)H .(2n#z۾Gx/}@]3̳u )W DBx *#jdyac`F{vAj. e,k;WiyLR2OF]кC82LzN4i .m: سy҈ NQ.Wȫ}㔱W'^92(4{R ܾx/̩l #hޜMXt=1] cX @KI(K,(KJ ny@ˍ P9R`7eGz8y駝FoSϕ1)AO+zĩ썖nO1']4tHV\Vyyn@f.r[nzZ[e(,ZWsjf᥵}?!QVzN1>Ƹ_LN[+|[mvo:ӥ6|;ǥuI767zo=׋Fu، Zp$/Ey$N+>9 GsXij,P>i,L (#B sE />A)q/9xFy>$B a7<.^$%rT/d\q6R\axHE+Čz[}2wnֶǪp!@F>kcg$ĸ}ͪО4ǿ/1Ӏ71@'gz}V6#@IDAT,Jn s~/yͦmk:@w`t3"G_V0I܄> /R8E[#5Mr~&ȼ8>8B[洝}6 Svj0uYS-b&}k8{ʾ0XoOkm5ਂĢ?k-[/PzJHǯ3+2!G1>/ӈB1%W)hXfUMIc`"cL ̿;@u98ЃL/>喈Vf*M`G400*i(Q!QEjx]N 0׈6JO >RS1o0pxxI3rY{Nja(sU-}U!@a^gxȄ]~lN%ZXA*~e'>pʈ >5Zg #Cs! }B1S|HKJ^\ )$D˴X$=(*W]BB@OTY%Q?E=M1q SVI9D!S`^DN`]syo'QGԳnMv`6۩V~jөg9@M[?^k\]gG_|;惧D<= ˁ9|A/}nkАmf`8<4\rke;rMpamKh9랻q.`45 0Z1] y`Fs~^8zІG] .YemE-۷ZV]5) u jsũ~xZڹQ7Qj|~R!jE0R_iNY/12|BFeVVh2w:|dMYmwp%cSp(7 eCäܡY]z1a>o>i]@gpJ`VriN-xwLiV.f;9ilU=bAv>҇ M'"~sTP߱*ETZQ%P@Ye %P@hyc|=K J%l:|=@/:PVMpsWZ|XYnt#ˍzHIr]ͥyDӣ|~>әSO=eۿM_Z^ck3Z۷F((Yf ~ʣEhY݈r9{#n(㎎?Y uXCϟhH\WEbRzhJqk_+-~FļyR~)tՆOQJUkDYD|6RU܆tgcs;)owÁ A#6/|Q/N 73cIC*'a[ LH Fph頞C a |'P*ߡ^(~&DFY%!ɤ Ph e.%5AIR&(. Pf 9j"N'4t `򧭤$]È`@,avzKv~`0 A裏khyCŧ# .粓 =w'0&rzHJn-};a?vuv@{LkvqwP"&.]6O AW_};m*Q `r؆G6Pu0?TJNڨdq 0 `Zkwwy SR?m"GFl VҠC?AOځ|r"@_FMr DEE#ÌY@Qxgv9tZ#h};ߊ6kAY@d`W,q?A|in@Ch iqdfvyPhu̬GYL5 tplžSV i Ѧj4`rp^y}ּry4?(3G/'#2bbl)-q1.Sq ñc>Tvync`k[9&Sᰪ!JYƆLiJ+LWȴx3@< dit`" IJR,Р!vk*uMAƍ?@T&MEyڬr݇T[_ 7UwȵUQYyZP:CUoQGi5N{׃r+GmR^ل+ NUPE(QN{'QQJ]R?. | Q1Tb\C|@hH'Fo\N!O\KQ<SI Q<{4}g#$1 ʠR|=~:fƧ3T|Gu_Bq|"z&SݙU켗=O*vs_3,Ybyֺ} s}M/~ԦX0.#36Q7>[[SOlmviLK /×0=|{駟`j@he=|]hU\؏Y%XgsQ=ӓ6yp`3F9oٓ~݉[Z= rvgM\|X\ԡ>svݖ v~pp`W֘ qcos)i4dw -̯3ME4mӽ;t}kO۞-V h0Ͳg'_7HBW0?\AvN1'ԩ)zG)( %~aw#6q.CMtCHO((K,(KJfZJ_-}xy#R"c_oYQmKO\8>>ˏaLeKitXtg@˴2hxlܷ }[I,@˫~ë}yw-|r#No@+j_51? RO9.my5?TFJ*x'ZużWR4鸫 ,#DzuG5y35I1 FF{U?WYYEA5 (lِs:iu*%I"~IpH0)d*1DNI~Q\HRֳsf S C8Z. sN,m[`4Pq,Bm&# ΢雯~^=-}fB@r/؞N_ , Sv  Sɀ]d}ֶkw[s{ #f9В^L:Rs&@K2aNҾ~{ㅗm>kͶX *84"Bg{=F|n-X@3 y5ы=w<⠕V(@lΙ*AK&O'VZh :F 9坭bjʆWYآmilq4(%;-_MM]ore̾x/5twxa4荋ʷDQ1G7?_7GI"/8@ì7@ <@JiR22;).as͓B8 ط󘭝,f2k1)VZ\*y@Ngn.Mv_1.Z8ˤFihgϵq $>g垰pІxRd૎Qռ#qmPՔ&_N^&io MZ8az@W..M]4K $ A)HB,{!*: (DxA򜖳)CT?$WDSZf\+XXo!Ҩ=V-h@mc5ڜg-Wǜ\^"tjk~blNq"6 `4lZE=g{wsѤf RZ0Sߵ2>v58ϞJPCxh608j}XRm-FІ8=2vY܋<?ͥki"y]Jh/k\*}YbeZ<jin^ҷWL]LD  gUgxʠ=gBO$~ +jΕ5hd+ً1-rl~.JȞAj y0ofVj}W אJuGO@J}mOܒ!p\>TwվWZ|j?SCwPOy_đ#6{V;rW0Jx5ZF(K,q(-ogI~vrS6坪ȏ Y@Ƀ~]+rUf8YvxNeo|+~V_gbRo:-yxw;ZeeTVNToXA?+-N>:+smk#.kli Nqo~\ + q݋~Iz΋b_"qWg-~8bReK_)Zu.O?I]MXyyñ|ŽO|n6_}'Fff[O{b߮v3hT nIHum]197:i3wPɾ׬v=zvώۭ `K N`B ^O,sss`E4ǻ?Вt@:8_Df%j0Mֳ'/sY`u Gec=&Fw!EWclܲK͊Oz?~!0/r J/EN5yU~x8` H?3*c>*cLLFЏdg ɌиMb>M2]M*,c@;Yi0]N\X2blsyQ#R1;(oL`c|>Ђ2y P]IGѵIU*+UhWENϽy4f6y˓$]f4@NG Lހ~Hio|%%ļE.BL*zVxXYL2%'8àA~J<](Hi1||=NPȌkd#Maoa Zk0sKȋlII!)-\;\,ߞqudpCZ֛96f>N8!1 3In߾}qLz"j2RjVL~Zq=C)tՄ_PQXO , Ngp2Q}6ڞ4S]{-e0g786 puxAzq6-TXgC#C'^_rp?]ӗ1HuH ! 6PrIjzzHS#A!#RiQ6)'Y0\2eI$_,< EUF=, kkAAk@TCv@H*FJ)p"^<[NerRҡzH m)ሔ^ܣ1|;5s%;ߟKCn|`b5M޲emQC”)ҠR,&uV;{ѽ8b%ȟ|]gk>HRoK/nM! c`BC`C+fbv2PZ&?]8gG'_G}]Zevah1ksrKIQ4kL@7X1۽v̜vP5^窖[6||]YD9*ƛELxU\lgu7X3@j4Xՠ-S9%"`q@fl#Թ0"&Au(|g/2l?Z⒢6];W埔[D< L=9MB=m`Yy:+")FEGkDj8].GZ?D=8 q,^tYrBX . 2lJ:RA{lC?"= J勰pPp~P?}I?.h wԾ/T>oN3gy'Yg?CHG'pc4 xmV? -??j]Ғ77hv -S1=e]nl;ok~}kySK3z-3`?̗O`;oC'OoF~vu`#5d}uz\6bW[43G[ uL"Ix6X 비QW&q\ڇk3 I/-*`:sZ8=1>nGa}'2L9UiYT/s۷odA{{9~AA}߁mߖ=\hdВ KMQ'iM64JDkMў ѺT[֯hTxO[}׍t[7f*jg8R Z~?_++K+\ShLx_SVN|+h2N~ibA.T@Gxq&oU_W=iЭRy\_1dNt4+"bO} +dA@vz#~|TQ?JicqxZˀ j`nǻmf)oou#vb105bhB޻'7vI$O0dwbMNuuwYe:_(ܳvm݂06?`ҷl 7{mݺú:[w'o)9TqmO;p`wbb Qӻ'ٌ5ݕhܵ X_.H4aui1Oxfضۛ?œQP >sKK$\\kShrjB/f!NARl [^"C]xV$?rAT->տa\(cZB(2UK䢽ƫ\ D\?#֒aU^  >VP/4\}[gKGZS@i}>{;@}zQ@˳ЌM(m΃nWg΢?ؽwy|Wڳ/jkS 6 u64Vcg;\=Ϛ4O/RV_k<_i8_vŜV.^14Y_I. YQņj@` K0.ǘ4š;8x;>`[ u-I436M e'fK_kI>y&\#dC#w׵SY-E6SȚ~nSϳ#\è n{9o").ȇz**]Gr\`В2>r "rgGK@uFWY@ {X ^ Xov,@'ްgmivh@C.ٞfpKs\U:=6VV]_>P{,>H3̀ϱVk~Ԝɥ,_e+h..%@sq9#}4ٟ^ɘg9( a}8ćd&|U&0;dǜ㔪OS .̰_3@md}x }dcU1vkј_>= {OYa#-T7nKRƲރߺL^%P@Ye %P@Y7@e  *zeW'03VN?s  D~<ż[G>WRztW G~ѿ@ؾtb^hD_*^qm)e)z{ꩧ@Kix^jtko iq RV鶼e=<7_6['O :s:;XҟH^ G^p̗f >cX~W GeDڴ?ҍ'xbC]q} UX䒶Xf<7ˏxhur;I=ӓ]82Q8>"JC̃SwKrG6twUxv FbB GB Dc*1JTRh!F%Mxq1ɓ< @t?OL +xÞ~ݟ2W/l^<_1[L~Pg_6,dls@[ƞz0LF^@ bRgXvomo]t&_gCc6:6fNNJI^HSw' %sE]5iW`y2e?O0cvtцZs 2)26UޙXiUPmoHn2OJ,kCв:hv#*W|h,h`E.j>F@LZrs:aˀ_8f$}2ԙKtNOtr[iT_C(]CՑ/H-{kZAK_ d6VɻOPŵ5Ni $&:yh>9{,"[&af!JD֧6l+{mp:㻘6Vm~u2]6~4\.XHHs0z-5~{=yǧ ؉ Ͽ^ F?Wk/}70[+>A;l +dec`!Tϰ^d\g^b!$=:S2@\kR svgj~]Y?ua]C%P/z K^+Ghw Ry4,@{}hFqMGG(K?P]rr۴nai{Ե^2ѓy/{3W:bZl{Z= ~GG{ZF-cI۬{xIQh`7]GQSΘ׃yC256~/1bBlǐKo@fܢ{,ʹL:\=MiuUi;ɦݢ={4czO(}@.n2ņJyc|G+|f&ϲϩa+1G Fe[m - mVjE;?`"i%";A7kcUD0>!lM~!ui)OeVWh  (Zɧ|b^ӁOTs-*rD!b^,նʂ=r/ eٙ,*6;K(g'bIREJ*AȮ+lH_݅ g=OObCe9c>qUU<ߦS7m+4䜝x{?a{](xc`˕6rr;uƦT!Jl-J skh;q4\6`+\9u}h?\^lA]=p%ˀդ}aJvF +:[?-rm#ګ,XyjS9} us +CeY:6[e}GՂ0e4X_{-Zw?I@lӕ\ݞ0Ml\y^ 1EDƶeTlm!okak:;IJZ&eg~O۹SΒգ>4l߶N=m{G>mSrAGjLtPBR᪂l )@Y5_i#"t@XW =56`b+6 T[mz(Ks\OonڬCTfPJܜmR'/qM`1[ q10Zeڧ06 Ũ8h\W ק]1B%\Tyb|_##HLq]c?g!n} pm7{-7v4ީ@IDAT 'b[}7*WjEMx2`lPzb uUu^+i%>wH>J{Š_6v,9ek vKI aLZJpM,oZo3eZ+4hʪ-NE@<";s YtP{W!|+@v-/-kP ۅGj X:U`NMq` 6˥U9ǵmI5WolО}g ^qӾWX900\?8<ġa{nr~eVh @ek\'iߺ|Ŧ[^6@Ͻ`c#&`xm&A0.Ǹ);׾OZ @.N4%̽% j9?9`@9p,Rsnan[v`̚]aЂ95(60D<5?n1G92Ko&X)K_\ZdѥIe]^7Xٺ!õ_Pfb.Dzsjnݹ!KeklCls9`2eqԌ3)$|L=v)$ca ]&id|s ʾn4|I 2(Z/d /&ʳun7ĉ:׳^;a;ιu^=l%P/z K^):0&~:S=Pbgv,wO4h]znfZN:j%sP]w{qFs7.۴[ˬՕN{Zn'/G&S7_p.hpj/+Ŧ6}ߩhyOB. t{rr˔~Ͻ~k] d(Kv2Nvґv_{:ﴮHANihf,6e-C덏~<31i(:;J]Q6c8L< {<4IaLg0љzB\>^ wkH?|0fH..K6%UD@+]Mr+?dwwidqU:Qh\b6yCc썅M2ek[K+\>//׺-QL f^~Ǿ!V:<a{sߨ/y0$w(*%̕ l/FyG?b?6@˕Yysvfk- 3c}u V6̬vlfm&ısvb_'z ?fIر`*q D=5e-Ŗuֺ9aμu9i#0:.:K "W.+ƭunhedD*ܨt>఍VpQycC X-+Fsʰ@oy~x\kֹQL@Rp@reiϯشX}W'Ip e;W6ruP eh475a%KY?o׸O4msIn~ysA81LW_%;?|zW@ \zzN"*r{[#rדO+qn=0PG{g l[`QKf].)a! m+)5B2@u'[ ﱌS 8|E|E[018&ObB)2sPX J=(J+]!`nm2|TQJJHiP'3Ž_ hB_!#DgYYm]}>ב-KIsU(3I7͌U*j©rh5>+LVV3 PrKь+*>]^}s\Y%iDJ>Pi x/~j_#2] tM(ѽ#o,mE-< 2@-˰ڻ3_cŐG ǡu?$ܧɗ^V!eǏ `e,.@Ͻ-,,R "\ʘdx٧)&Bhou6k&ccgapq;{lrtgZVa5{UZ b?}?f'Od^~a"Wwr衅yML+KRCX0' M9n (n[8fˌMhgxGAR>Gsv[a]ϰt2̈q@?q˵[vÀ,+hҰb-yu@{36Z#GZalRkMMiPPBgte-bބmmMvp(,-wuxuk >DJ>kv{4atŶ6?W34} Ţ̌Xʮ"W[G,6hM5пC6{(PCpE:ݮ~e=Y%vi ME1*KԃZ85/_T4VqUu}ub3JCN,2'Vʪ @rS08\)ף=5; ց;Kݱ^@%P/Xu,jqR`>ueaߍjjĿ{ƿI^vME=ue4ws2Ӻ#LZ&'<ҷeWjn'Sch Vԁ%~!>vTZmh5W=8Nz}>?~^ }z$Μ9c[x8维2|trєn~dv tݏy[&ךiZ?{[/}ߨ̣sUAvq?᰺~|KC*.ט?*n!N/[D+!"w ?J5 $v|CJdS &vI5)(gp;5jG !!wv8V mȺS %&[.\,%G!֗[gHKN @Km6hs "WRr坕rcOr戝<Cc`CXհm16- բM͖6|&aؼв0զ?hOzz`t("\,Y+샳k]xo`wgmxx g3;f[,X/C&O[Dpͪq ڑ+7y4stL^+LDܟ¦t+Lp,u4bdaj*ع; ڕY4o'4ϰA>yҳF7{{(v7[`,#CB7{Ni0: b0h[&=Y›v\5"GmǓ{ZʞQ6F8uD3Yb.U"R Vcc|`}K\!ԅE׿6%`Tm JU r6?C_i6lU` E`ԫdC\G>:+kLT6U+Ft6w>ĆN !S\q;8NL5.:!֪'\Bo %[kW~ M4h=Dj%JC'&D ?]r. '\M6ȈO{"G:wOm⟪jU¦ã7%,S^^1iչv.rv"]^@?dw2ȄT mdu歜@PV'uMsMQM'q`^FIe}-od~'~†]vs˛WhyY ކW#\k3cy3fs^urnծb?~p%,6A<,vX[[1NKonɵ0O$_6;u9D̗]]_jx3G6{{w_tԜ F3Yo}^}T":-l_I;vfq[M}^,8n8hIc+-VhˆTl.]a^W%,j*r۝w|.~n;&{Z^>=Q_KٴѮ9ʌ6˺Ө,]8ڱu%QPތ=gY+ve΂Xݯ|hMm`mЊN@9"؞^gqNcM'eճ}eK@K@04)_HTKP}Dgo QB$ /YFkcET+?)S"+sk0ϳ5KaRTm-]Fuz K^@uJ-GQEhwhH>;-neX{>yY&ךiZ?O=ES2;cpW:$(h'"m>rMbpuSH%ZYFk`hiqʺD]L; J\bJW2;mfɽ>)œ$cT#׻UJUM8Gv%AUS 㛶{e6. kD^?JLw +gKyTT$zd]X?y(ewAaa;P_Ϸ2`zk/ٍ, r׍6`=Wlִ>7ms0Q?_/-ˡq7/,nJSl+fa=}NtpߠZ6Z8,Fgp@ 8Gݶ-ZޘxbNێ?f",ue|^@Yzk߀yYQ m3Ԗ,eZ!j;o]=ͩV0ll`[N&wYY0prvfJWon!":bb|`S};`d!@: R'X\=s Fd9+&v,0֋0h饞t #Ƭk`XIakvt7rezcQ 8D\@'nݴ?§m;ZvZ{Kv{g~F{Z7>v9m9(2P=;Vr U7FS\>&ئ1Qy}2%d2pե _4>( &6Օ~$z%v0:@/Cxc.'tJ/`Q&y@y[L j(Ky$bJq:tgNf M*p6U eF -̕O} -?I%V4jjY4zq֜^+B E.]zdTȮ'3.I˨Wur$^r5valkXVVvK܅@XKY)Rݓ~2h/P`t9L.u?b#ϽZrxr\鼼bs0H~c5n s[z;&[^ ༖Ό 2oA1$07p`B7u9s6ٵ>K1;uyFT#f+ۋ5ٍ;0*kvTО<}4Q`W&N/^62$~omFG8ȡ`,چ_ 9S|)vC:4Pd_MeX5J1U3 85I^e'4@TsuN[A@:\X0Vvv`%V:|"[2Knls4 Rc/q*} =z{TEvwb{υiɴ=jNf.~S(?|%o -ҮVu0Y\]ޟC[ ?""sg[1戠~vGI,~@C]=`%P/z K^,:],]0I-.??6j;"~v@1{ֹyI˥/G]MNJ>it픏i{#nwJ<@6gS[~:`hy.ۣ\vqjJw'v]VҾm-_"{=jL91n73ݣ̝Nu_>:l_ kM/햶GQ.g?k'*{ڵE8sPt{lWzD&< h~ёC*/;C3laqxAUKoH63~k?q1D- $q.WD| ɉǮ/-1}qOLq;Ar$LJ^6@ .LSIBƈ=>1f7JUJMQ=5Z1 lPoا_|YbX=ڜ<:Ǔr ooۛM鋰#qE'.?GVx6,SKhykq7loȯJ1`'ƭC!Xui%abcf ?cŌOe^OFHHjߜfu-$,B]pyW}L-ίM WleކzfmݺNv~` ΈlL{P"IXN꺒@Y؄1kqiV߼dÙn-:f'l#ƫ2WU T\'nXq-sW./N:%. KT(DŽDK7izӠ16/9&%~Х U6ˉU}Du7pJ!#a. Q_ťCAYrCt ZO}Oÿ怌õoqu}qhxl~NDe/?(;Gi(3ʬg8J}r a I=#rWԮ*F?J-F=Üw hTP $'J 8` ysS}X  ZĵB! bx*W`_DSM68`k]i{['@ Y=tMKl~vr̆/'-r+eyؖo/Log b;} f[Hh9~ vV-U$[l&Y[S0gO=!ɱD l @ d{`b\`hvmh9}ej:}޺anZlCwO/653kW^`nSY3#/zv՘KZ-nk +m\,Pcs %\(uvXq2,$c+ƲTv| %~-ǴMc k ^@K >VfNQ #N:!'o:-h}S%i8}iGl=K` -%_K^@%0J|p8߱b  TM~-{{yw̦~Fw_"hO˞ZWnit؏| +t6/n'{͝d4jækInni=[DZ3k/#yԁ=dws? ~c;T{P"?|]-fu\G D+WjU.Z;h~!o;Uk|c]ʹ=j-ʤ(v; 轟i?Nano'[L/!Lۣbn8LAe=ArXCZi`ͦK힪6𠯅] hUesl$HB +-n"/V`*tHU{ZMd*)aC.""p7ThNmGgO BM~J]OHSpлeXtG367?[Ƶo24F\->y]al:ejsOeǏ6Sk d۵+6ڶjߚ,= 6s3Ĉ3O^h+J30P²ܒˣ<&fK-eZnp]ڒ]d&x=q،(2\O'>"TK,tOtMpW\Z߰M36O[]`,`5jԵ4YYK<[eq `2u틯ɡvB@!XIo̢ 5M ȓ/7@6\}++aEXovnͤxz[)ִN)݃0{ӭkv}bR26@ faL״kݶzqM!Ӏ ȯLɁn(G'8aʨM+[IAX䧸4ɇ# hhdܕJ2 @QBc`*N_zӶciqhx:`VQx=Z9?oc?d[*:qv@˯_VTP3fD;kҬ_"9$?ˋvPqXg|k_TqW(+X٣68WJʍN|O ,܂\d̈́,haJE1"PIGzf T<6b2Rz1) LP:=m@#&LsKÿ , m3ogN}+ӗW8qմء:aX>_d4PCcmdFF]|Rd)uVgD.tY؜奌ݞ +H&lqUm_TvS6zlVNrcZ/zXd3.Mݙ7Y{ ;>P`B[8xu{cq֯Ao8ު\|ݬLsGqz{{%[tI q(_NJ,ؒk'MAEOJkX-[a׸ɂ: E-lyZUB8%׌<`eJCr:!Uc+ߌ f_' ءI^CxPz6 Q)I}4WspHkF!m)S\ qC@Aؖ;GbF1^Z%P/z K^x;-UAYo-:r&o~o(-cȌan{b7=iڏRgڴX.ewsK '՚QFiNCrz>Ooo:h9f 9eG\'6lX)[ʀ;"l&=]b,o\7 ll]f1Wl;9' ^+S֟ՆaZ6;;`z,bbXiTxFXz`*F""-MrZ_ My]ȏxv5}e@ga\S";-h.ƨ=:٘nnm0[J%E] fy{掽u=6rN Yx&E!L[+f~p:DJ]Vg/~Öܰ>zKV;VY~=>xC5}|'eN;StdzM>;Fɳ6Yq6&Se> &4|,`IztT_/cRM :nPM, a!5s \J^ l4>K$ȹ0_!J@3@I6?AFQQ_xWPeRxBy a5:"K34qh}mݶ1x.I{>Z{1rQ<:ӃJ6y{UDz3)x*q(dУ2n*obhy)]7Ra=@%&~3":SU:RmSsH(҃Hأ%U|śvΜU1|VxI<߉. a=5@ݯI޷(o-{#HfWl?__Ӏ'mUO5>KK+̷g!8 f7[ve6[έ|~?cOM~;1o%h,ϵ- qK@%[\h[K6Ϛbje.>Z :h;(%`ѕs\U5 )-}:a䑹.P0@K*-0׬5>H2$ `kۦ sg(lQ.E@4/0lrb-kXCCSp Z\:A0ZfӍکYƢͮٗCcvm0F6^,b݄i dNfm0yj pk{Șd-S0 Kf9@Q^]]N&$i , %y^XX/}/-\\CO3~MF ԳoiD^ 2?r-q ՖQvdj5|l65E]`-/0/G)S;e@RGdBd.К`3:+4y A ߍKz`T<+X@)zz K^@SuaJ?LeOI-.LK+O;W7L{MݻQ]Fi2vt؏Rg# <ֆ?Nk㨕{e$я~CM{@ˇ[em):h>]Gqg-GQ)/y1Z4_nfwٳ1!xg,8nj2nX&iܢQ;y/ ΃Ih(Wt=ʥZ{ vW__:̄,ً8@:*=~bߏtX;4\e%ؿ/>(h\{KzWE7s7O$[pc͓[㕼J"8+pozIGos?OܕbOk01'>!=Iy6Wؑ sE`*Gi^~JN"H}G~i]O@vuf͠?ƢT($7 {~zTIIQ6S|j~NmkrP/Œ܋_LW)7Vm `ǹOZ_/W`"Ɇ-GxhlkXy[E"y@|k5P$P^4в  zZalykDM6;?'ah9X̌]_;a-waN* txmgbsw-wN4]~bT :i,/-%K& }6be3Hr=w`,aX"]ks\*V u9Uj[mk+@yNk8@k̯6 X@_#2 П_\0 腩ST6p)*V<1l,/Ni'`<cpm6 h۶qXwRR?Oނr'qUWPXw.ehyp`Jh4G¼h~t*yfZ (jبc'3- ?N"veC5̳/"SYy+bwI%sVM*(Jl"x]O4"tL`a\>G'Y2QnHs$Z~]p'p-&ըJ=gڞߗ5x"+ֵWܱM+kw"wgEƄTo\/6-/ڝ/fM+U{ꉧ812^O?L0Z*QInoh7I;yP$,ML#6H}yف_jaNd5%mY`m^ܛ`Jc6oOK|_up ˁh\}:wF^@0> .fH<779*i`s]S*ڑ7Tr0CiSiMJKV"=dC@@IDATzX#םٲ Xܹ?%B0gδE- }Fi+BdRUvz2j0ǟe*V-%P/z K^8x ]ʹ]E q?emHss.參wZ~3v,7/p5oo.{|l|n_fmOt؏JgtwZ0u k@wr~reNi.v:2f}\bS\[||ka9j}z8n_vzQMoGm_`A7F U<:]^T&Ac4kp/MAyھ\: 0f #}.//A(Nww?ݫn>-sz]{pO0zO${@ɦ6gb) .3)TaVCeE}Un A&Y00!S?<%qHnU2+NӨP$@EW9ŭKz,| 8u۵3]Q'௝4mmҺSIiʚį*R)RX_t^=O~&F_gmDOLw ǰ=db_d7uAk90-"l f[V֎|׹-[A_ĵ keH;" ̚9q`>(sbWlqPAٮnXZ4 YZ``qik{y첝u-6䠮ahڂ%+m^!ag麝m {&Yf#R+Ye\"Sk'm5? f*-aljk5RljR=M5&,Q,@ʢͼ 5u[aZO98ɞ%;;?F6駗7ֹݺ5VuruP;m]8bM}_LY8_;` {lh7ji0^q8l f0ZB@K][*60|,3MߞBmNݱŜ?PsֻF-)>š*F/=-12YnQexg f`T2@TJ  >&4Ah pk@?Cvڼ>bR-焙/<Y8[$u5{TPyX46&]> PZyl*ţhl4) q +SՏ-V%%ȵ pP%4l`Xۖ@ q®VJ*jw?Z߬qvR܏%d"洤LBZA)Oz94r+ r7w!u^u K uxLOD3yfԧɮ͝ ۞78k\1e_}kckEY;{V%hO\3 (mZɼڿD.i50o09б|}Πܯ X(+6O8W:Ҷ{6KJ`{N mks/TuZmٴmS Bͼj=)/7hr63];`| Ab!4cq⤳@uΡ(t$fخGh[[;]3"SurPqㆷ֩.=??_񷍜ΝsK>rP3L ֵ^n(tz0ajuWGlLKN 5+||ߏezV;ԧs_CR+=F͏H@˽zT~'(uELүv6s hyaψN,mğT>2ʔ6U%B[Lt6m"Sd }ILKY^-QTb-s;/z` ADaK?->4z(&=)z Dop~FSTVc<{LJ#(T:"7dp欽 Òa$kݢ|{U|_;9R u]} NlU7>.6PMLc%0P坕17bC59Ȥ5oQ9\2lS (Sv,sNв&Cˀuek .!&q]қvsZvrm2P\% ˰ZX:EkV[/0I'wŠYJAh3Yb{V߾5N,ZOG7`ek=5bcnZvyfآI+(\aj[X?LW0nHbSA`*, 3RZaK7ߴo1{lpJET_W_ǎ,Ͱ~n@*y0-u෯ކYk \U[׿'?,,( eQ2l3-NP&[bl/9N"tQk̊/S":i? w%`ZI`d$4 E8RZ7o;Xqjv ieP`"!MeƜ%e 8ढ@H}jb!I~?&<.Sa 0T)m>f$RB%5S^3g3fA6[{-'g~;QQeGWRX^IL1Pv/e]~>Q]zM`F1C}]}ޓ?i)CIU%]uL䪌Ǖ?Ξ,%b'o7J=.IHXvyIǾD.-w ,O6`mbpO:5>Dpr1w˓r_ l붸d;{~od`-f> h+"45(@`uCh^k+}lt؆Z3NJ1 mPɔ[hɹ599cf0]Y= iV =%>;̛l,/IIdu'/1,۬:Gļ-tAs4劬Mpx:94ͦeċu[ ,̑:Lߜ53650hZ^2$!z`cChöC()'W^k f,S!>Yǔ860v[a9`=}\\N[ZC nQ?s~r޺zyt::ϏO象Sca^"<+*MYf],3k#2P^z l*,3i3Ör{8[>GR)@ʵ*^c 2K+qۣynh˓[F UrrE B׊:>?r!cm_s 1-뀆K1?13T,#AN|95|/}iT"v(¨>hY*AS;UD ZN : WHWEq$:U^K;y`key֛Bm;e#(]jf?:r{I%P/z K^x%PZ>":`?kk;,DG?9G-G3QW1vs`٩M'\Z~G3ꉦV.t8ӲNoK=t|k_-[XXOV9-z^~Gc/_l_JܭlMA'qu*)gHS'=܏l Cw] /M8dJc{LwtOejei{tRk 0;ŭb'Mݏ><{7QwC@t{-= hyv; k~kk ľ|DQvqd`:n-k/#X=7 fQ+pwӸ-A&'oAEMghT:ly&BrGҘ|$=xxI}+1ڪM۝۟>\–[壽I֏"Q2jﵦ4$Snztv :2%<$h>'?koYtinָr0D+la¤nY.;HQ}Hl%tMp^@3n#͕mVb}6f@b܀ igVm=?l'1am0}('g'қoа?kpX 7hfCN]czuYҜm-cݧlȶj:%r +vGĦfdz]eADnUKRH1`B!eP]I0S B@p||V$)H4BP" Fts<&(`#Ƀ ڛYx8mqAu8+T4nL7=iJG`LȌ}*k tTn~f9Ufd>-_o\U{2c/OwdvLoOWZR;}#֡-=T* Bl8y\_'Uijux):>j?N 6RDȣZF|[DţDՌ*6%AHfH~vp6>INOEztJ*t#~^G~csiQ<(ƘK_M& eXz)lO=b6\P Cki`f6ؑ,s? #w1V@9L\+#-€weifkmub&oڱэf.?e}b{]%j^ %k`^ʃS0/3.ìD+Bbdn0 SBlcW`SByQZtU7&FK]v\`(:?1i7@ҥ9mq@۞''Gknc`Ͻʸǹػ}k:&\*E;8׆h9hG??z[23qnONrhb hA[sնgLۭwll~v2Oݿn䌟b],{g9Luk_v C4Mb5E &$lkC9=Ϛ>`˙Qksb) uRwY/ՠ;Ѻh'z6iMX'}ζ :`G&@/3mB:|2. C6j9 śrRZs`vvδ~w_":z򾽭Kcp2{!~i-u(C@iSk-NF4KF {T`Ewm<-cz K^?{od{rw^EZFͦ,@-Dc<1DŽrŒ a;,X,B-!^뽷nխ|Oέ_޽[|Nw[jaNtaʉfnR8)ڿ6&u,O}b4-Ǐ>_W1_Ѯe&.^Q<mx}Y UFY:ʟֆ(o/uay4;.:lڃ3ա|wxp@o,S\&N=@{(ҩ\P)W${ޯL.% $k6 >T:.Mjٕ&_Ei{3f!B !-IO~d)YaU'I)-!D*Ja]/5f>ޡ~I7q򠲒 W䑯3OYYp*Uʼ8u^|-Zb P ?(ZrdZдO@KVpC}e* أ+BX^a=XԺq \)W>-9Ej~m8WLs-]z@n{si֌x@+M}udrU /?LWgΜ<-..cGy9%Nu֦ 봞ѝM@S 6'musvUVY;0[ek7~|uzeզۣcMSWpS+`4q܆u]CuY\Gz޴3C)0趍؅%kj9fWb w5cW}j\= u ,eoz^z)PpucL. x1Ї~e5ةۍm )5i-=)і_N~˜sZ22<Y|T&Kj,RwdnX/Jn}~ӝ&m_yZWP4hq0Uux6ˌvC {$zYYŃw6S0eחm#jT_s< ļYb@KMaڣ5Hqµ0۫8Rfo.ƜU7fϠ]?~+ې)󔼯ꨝ@[m 5@[_m[cM-U2yꯡ;h)EA<-hCh4A_zдQO~ >%|26k[-G](b9f+-ΉD/G[o-|Yكvmi؏mwW>Stnr-'e̥źH~~GCGQNf|Z Y~׌>xЪQE/۸╯GDX?1%!k-i_~ͻZС7CއSY#wx`@ۿoibų.84'kq:o|=9pt$'%En43?#}UV~pjPD<HEϏNG=MXG^&T(sp; 66@*U8;t*_ ;: TR9OI ,Ԟ.ZwkaLC`NϏ#ϷBR*@wCVW 4't:.pA*'`$.e)VQ:VrdN"HiO#żu/blMzgKn -ФkvimJ6*9rJ:\x yÌ%.l^v(={1hs"ܞ\D{+u]CID⺟ei/GqpQCGJMjPydB/;_E4qQ$$WIJT*2*Zh&kd|/Z ##h*$&~rڟ׼\') oL.}>/GJoSn[_a^fztQJ̏m36Xl^KXRsW| ]Xcx^j hrEm@SYer@Xw]tܪO/3e:\^{DS\@noX۷;i3\rxrӪ _e>/Lc>iC'UetWoj+;{׋ovk5~~ڠkv wh÷:G~<IZؿė}# ^~k;dU5'衅<Qa_-ZFeg($zBi@"zI/zTMZҼeF/x4w̼/ף~]F8˘Pj$ojϐګJ2K|C9_uGO;[i/~Ok]C}dRYr ZGb])B#Gok-kkhk@hy:F# pT hYFn?K ?\E~3V,~&pm \3fiUVym" jG"7+zj+? f haYv}ty9ZZ<{8Y M/h8?҃x+_77]ey胯8˿]y_ٟm;z _oooo#]ֈ+WJ݌AO_}2>~n~=0el Urp-!AmE0SyA4j# rSy9~ 7XeC/뾇%jQ$D? VR\1;UYdN KFyu:+֐ $\҇ޞ(tڑ4^`pzN-3 FM줋]<{*|չfs'QS3b^ht V>P8ZiTO_lej h/.GĄ^WmllFFGTs`-N-\#FĵGj=t=xWXsZ'}eyɭU pM5@X2,nuDYb/~Ġc6,g0UhWe)ꀉ-@{e/זC m7 o "pA*$&dn2&%!M5+mkT,Y8@ _L'ul%# _Eb*] JG' Yg U;Ȥ~Rϝ*/@,z,mluEWs3/)ˀWJN+=̞cPe)|@3bH#&[OҤ *Ui!QГ5՞Huz'Kr[yEt.iVY>/Y2I4僽jpd5#SG.Q{JS,´4zR,zT8ޘYZ0qIbGSIO`"\'x`'fnw~N|tMtu8/D}}Iص¥~;}fv#.@WLIFѴy \g]9oK-YXGA^8b.^Ƣ&O +O_!Y:j]W[j^P]uEuhYEZ`M&?e]eY7apl}b֡ ^NҼ͞@ r/XՋ%5Y^l,`=vֆ v't}Xg"MkI~{;C}] h)K>RZWY̕_yy`y,Zs ~^BѼP8?s^zUxg[M'QW,ΞƥkXթS'ǞxYOr{DkxɆ jE~`/$yXUVt]/JiҖ;C4Pc{T>YX4n{;sno@p k6z<&e~UFi : w ;>O}@V~6y!VF$.MAmbzsu,ч/JN,GcL{O/fϳ{d+ƥ+x>=h^9~t,Dgfhkhk4Z9MoqGՇݦ0qئo7]Q4E#"?pi kXhF,-ʵ+,~/e__~7+x1XI.rA'2e\\;[x6彃pPb?Vu ,V탖FU\x1'WVV|n;.#Ãi6}S+H<}Ӌ|F3W:C/sT|Äcg!C#-|4̧)/lX&_y^^]gM>$Vø|{C}9_7~p@˗%M db,!~kyn3O/;J<-L&jluJ&eDك,[ gfmQ$ѿG>K)d K@ /CXy |y3^YS d]|2.'#e#!M8qx++ /h-Si1+|ei2ȋ(yQG3?hv_-p@ e-WE{'} e6d\+=1ytYҵ~*Z آ>j֖RPOv[n41@M[X\tP @ ]XuQŊd׸2t=3:c\=>Ct`ĵ˧ ,XpkW7wj0x3 7 Η7.,W]=bJW9l+ZwןZ/V7A«$`5I4^]m 5eJwݲ'v4<թWgR`.TY?Sc I&ˢ3!} F*fe;7~&rKX}VgҾxl}6:4l]xN\82Ffh[mL/*TԡjbM@>BuJ RrS !A|oϕ8AXߩ~INT6PanhBϭ.kLW|X_,ZYYDAKā&2VUWɇɿ/2S${ҏYퟣ[6SՐ_߿+02+ձ]b.^6]+Wk[_}~C-'\륟:e6h~y}̈́s-OE{I(ڇȚ]y2sO}2hۏ}NEz:k\U2~5o_bQXizGkwzBv |yݓ_~jؤu>;X`h=a#X0g/$MPW,O: I= ޺=En^ RFpQK 8/ r$V@Km:IY Re7GZ*o+YWyRXU|N/g$ u,K:\Z5ilꩌ W~+@{ʭ l}"r8o{H=Y\\Zk-%pahkhkk :}qQEy@RUFяE^y woxo׊Yzfyz[\ۊoDתV}ZS*+"#-+fs%Cefgg`GΖ;rUbQv؊6{z7n>A<#_@Kquh GÖ{1U@]A~EJgJqe|Y]^KyRfC'#ӣ5⍀ٽ^Y{7@!^4dT:ve8}FP=ۿx[{wjDa/EzW~e4|Sↀ[@ˍa~{֧yW?}>}>Лkt.= um~@o!KXoSndd EYsXM<ڿH=;U1b*Ze 3֒B -u,ۻ^ ^Lċ\,˿ؕ [Z[Yאajq./9\#_ yPW˚o p:XdxsCY,:;q͞ةS>~1E:kNיfe{i@;0~}wc"׻XG_6eC˺g합~['Q|YAǝ97tvY?;ȓvmi^ݲWo%=g;mMT!e!Q`%5>'s.^9U hVsk]G!..Y*졼`Kn!6.}{f${}=\Mm5cwï`G8bJ Fm\Y&'-e%Ra)W x-`}ľCZa֧+//3Hb.۝Ј >M\O\|KBז33f~>N()}W+C+5B^Ґ4:CIc0{y$&s;^/?lb}> }UZ%Tw)_W8>)-_:RtJ*doh35DcAcO~r*2K|w}A"wv-vy,N~Mjc[yb8/Wr{?~)2Ex^ż<|X|ϧ 8O+ɞ_Na#d)[ vCCPgϷ5'ﻓUk ad~`@_<:TJCT]],+tT)YzP~Jczn5TzV\,E'=RȔKW9?A˳ajS/8»m=_t:ȓx 63}r?+{\2*ɧS0no|֏E;!HE|H+SnR^Z4 ̑EO|dꋿ9y׫Xrg~ÆF'uEΔvy-t/vXd,@[VW: d!noaq@-P?uhY Kl +\ոyq(ganDyc޷R'snnc  PȪ>2u/f׻IXR \i-ij]Zz4.Faurf7ɂ#A@ko0YͲbE{n膝Qe-"V9.\w\eWe+ayחcj t \'GX8__ɚ)ZX,aaɡK6x;jX);w\X?%zԗ޲[7n|۶+]}{'dC.-j%nA !eny }6 he6X.fsZ}YC#݂QF@R'`!G>~,8$|dlI!c7\҇ʡ|AT5І2ؔ iL r <;畺oº:MsʷʤEFL  2dAٕXw\ғnX5vFn0byEiWe i09U iyIhS@Ʌ "+". E#Kbk܅S+=${k$2|je X% "%cX (-*ܞu67Qz)I"GdSJ*]N33 X EN)xBSJ֜mp .e&DXpISaxrID|lbkWcZlob}'[X;Vry.\nF31565E ^6 }.\?X$5,6j~ʢiZ3/Ca /t;xQbㆽ{lʆOWL"MNreV֙Jeaz@=CEmh vvhiZZ횃,7ѫ^8`iw>cة6c^QMSy'Iس4c'yڥ~Jg5i/9L/r0=SLG{.tm/+/'0hͳe UFgկڃ e:S X%CZg&ȗWז7l}wT'\> 9d]6OVbvCwy#-lYa.ݓ? uωZFamhkh-:߲/^hyx]h)n7ݿmM+ j|ңoEG>*;p+F[i_ byߐ<"'ϷRuE ?A;6Ak=#2l@K鲨qY}ȿq7V2]c|7@CW!$$g__u[A~PƒM kvML^~` 4(E`pW6/oj۰N]3C#Û>k0ֽ@Xq`dwȚ EQY&^2n q +@~JxP-%m..c̏e)pF; aj+b:p $eAqvqu%)  ꐾOvܲ 7q]YAyiX;^|p.ۓ7eGm+`䌟Xm@[vJ\~㢭R+>xurrM} q r}tq(+y..Շe<,ajikE=W ߳9N%mj9P",8iPkn&9#Я@iΒHj"H#xF:EK'TT|֧Ű:Q!~OB>ChD Y:C%k-h§1'G3= :#i` zV?ggS\Fl[&Ԁ׺5'D)Y|5Z/CƇkZ\2`AQCCCXq:2:VG9^g&v&{᫗:X뵫'B7=1u=XENhAO0**֯:M bѰʕ'3x x_@v֘.]/-Y[/zX6u5륎zmɞ.ݰC6:9Mыh,o `[UKДxe,Z2y`k7iHx=2p>[ܾe_d}eΝ`h)CXߴ ]*]hInMаa5q$k鬙=H8ws.^l tuTooeR:-^LCN:|6YcVAhN8ի[Ϗ@Zkb=鹁иk_U'od-ʇ\ A;zrtsJOiε)z=dU,j-fL8H2V;h%.I՚mѲn9m 5@[m 5p<h-Go5=\GZU٦}Tk ݩuZЇjDbG^!˧EyGax΃hSOؖb~>^YY Q,+ES~1@˨ҥK?~lLׯ_猉ۃrmzvZb߫+sk؟Axla'jO?mKoYXi^cEz>Oˇ^; M3\Wqlyڣ'^P,mϧ5 GZ3__ˋ'tJ,# zve13SV@ˢ"]_f WQ~]B\m W-LTqp)-H? zD# x1ľqbk+O#ɣ JϷ%E~cEZFLF\nYANekF^`0(Y4R!_>m_4?.k'Xp|v[?4&?׶Qhe"Mk9wstgv^v *V>|l~=ɡ~^miq+Dj7ݢnk}ppŌ"[que?8s 0*R@KYŲ溮.] \x p5g?JF=YFPB}ufОܴZ<\ ^ " ٖq+*lp Д. :D`8(Չkɻ|Ii I:ڥ:@M=ut8+X fScHMq0\T:d2s 9d"%<2kbO \=EL-V]XldOX-{}j~ ݃6ɕ?XvwB?{]rʖ]=x2Y C; yvT(:4GӡՃMYJ@K,[rүr@#o(:hSdE@°'Rz+yw*c7;yu؁vqdFIin F3m+F  %>Y#L/:dx&P@:ĶR{dP"Q<P{v E,i8X>kIr@_\-(4,H{8ϲj&p '//k(m8)}H&,::5f,J2ĝ$}֡xQ( swkT;(' *Ibvk~ƣxJE/OV`^VӲk{l"n09xM"]l~3h+!ʌFitn}GVN煅E8Eԏ9_I.v`7!u:rI2؀ zvn 2}b+nrfi=}rXzd)"_iٱviq~=\-}5b͍6wˋKȨ%Ż Hr4K )hr =#*NY,[oke=9its*j[eZ؟BO9lcu /Qt'˒ š峣o@//k8dESvjl&Ʊh9Kv- =ΞhźyO Mo|UE>;s~+ŏ>gwY'`-b {==]t~5H(4F<`HqC[7o]wtZ}Yj} Ux,`UWf,[O%)(jRDLFBjiϕ0B,Xzw:%6Rr< bґ7 E_W^QcH.R{ ҕ{kvζ|ev=@7t/Ko:G6D\zi:ynJդʒ +θNsQtYB1&|L{TF%j-`zzs׺G=^#J1x}uxhkhk85 8}T](!MbAξ4/;; )#-*_"_rxJ3=?ۏG~[z%x)/__>ܪ\fQ^ySUww/~!QvOb`IϢS>nev_6`Qw_Էol.W<7E\7uP}sip1h|>p[*yy|8h?A/efiR]}||^>Y8b eS9(!6WxmGDZt'e.GQA8*|,j-^G@:NQ8hvD\~V V R%d<WYr#X}*!9Uvwd`o[ %?#ߛH(r'vD;U&Mf 20y# yu'q+KL'hRMEn29Jv.\$Hv;>lESixGE Vw$`7“.ҫdZW s%iVW_/Bш$t-75DdՀG1s $LgF|K7Vt1cR+?K ŔT}&dW4o5I'=پyk$dz#6pq'ԧ>~VʊmY^$BIHJ]@Sz葜`THR rFN(:moS>4|y|Sq',9x[(♟Ql9׿t6hY 9fjo8Ļ?hO?I9syGG=y?蓯g+S{_vsʜ3;l?tgO"%J\-kȲQcP(@8Nׁ.X68V{츹|aYaǀ^f^Wy ʕZyM{$o?u1T 7G = b/c '{u r=ڵ\w,\e5a)aQZ/):q]O̜r{m뼏X_֠YY+{ܧ'xh¨gvYdѲVX5I1N;Zn ]nLh5XiÁVƢuE^eKX}ͬbu{j.{--czV6>:f c~*rgG gW^j^zw騇=jW cke1V\a(}HU>5dzX` ziܯyKzW_ 꺪Pݭu}i?pue`KIR"|dj}6>@K3eϖO?LkA` 6 A{qpކƚ{.ig*%NӠ|>vNX}NJV 邳ϼ5e;$Q's|՜e::rz͜4K֯b rpj@pGU])oɇ<?+&ȋ~?jyϷ3 N<ɠ|ʋxX'']3A/;ߪ?$+r6wMZ޵`@{Rw_'έ[Րhc^(`f߷7QߞmCM 䛫H.k,-_ǽ[9 ,lL5K+yX9ū'^z"h +/ ~?_~N>\eȲ_٣ep[ַ7Q^At#_K/ c\[sq'/Ie.1ac.#|9YbC;=jTtHQ^_WHbeˮ"IR#Qg;dcqm,eeRdQF~>, V<ׇkrrvJfmhWIĖtT0f)J|zDg57ܓ}{J{=X Qlr%U쇾ĉ1.vԙ YI+sr6#{Z9gk+\A=8׍r5g th2@?H4Tn;Ƨ*u 8-YS ~,`u .sf_cI @T%움\U(Y Cu' NŅ1y @=JrYt ؜SXY۶I,o"Uu#*4KvmnǍMW#]Nz5/]( 'A6@Rtlm\ 8{z4ٶ?T?Ƶ\Szb=ȣV=M-/{O߲=;r& suעƛ-j$w\{qh2!q(7 \ޕ5$k r}3rQ[U\8T@1y~]~,~}x|цxaTYٜS^ $V+/%Jq1{Z/t!{ϩ=r<:\&kklg6@G|zf=ZWTQaEE(r[XGb{(&PuEQpUM7l5#Z4HӺ:ܭ"krn\a=e>}{ .Mc 5$sG"֝Mۍ-[)FhlxȟZ*|Gmtx}Q?=ƕgYcaW_S]Oٹz:C.igu?lH>^WeћREB2x;OFkԞPʗUndb% .ǯn^JPدgg_5,]ϰ(:jd8~0IXjLw' ڇ6 қ&Ԯ35|:Mkt4ӺIҏO< /e8o+mоA/KvzCuŌ"k2 ȨGkʆnN}A>1RDq^ JjZ_fL__RO:Ss5(.B WT;OCF/rn>*X΄cϥv586 7YD4|@hS;@[m 5@[Fm[VWaZ~eV0ry?.9qm7=AO;|["yJ"H+*y_=6l&ׯ5@I$rZkV|^'?ouE}y}+;̢|P/hGf.hA_W韶~ }B?Ÿ#o>~w+^iUVG)k*[+m?wP]⧱+ȻU<,i[N~|f?q eAj uRtH?߈:rKy9BEko5R7hvZ+!\"W1+Ht P_T1u+@Vr)D}6+jgJ 1"ወp*0o5H .a"q94\5;/]P\@đAx>wwdl71:ooýUqX8x mX/Š#*W].֖%x@֜.tghjX~X2a7[DVX\q 9UnJ֩X >k5;̨68D.s9`Zg]:WO# d:)M>,bnz\@K ڽ8eKVWf6(e9]݀#zi ]17lzt>m'쑥-'ӱf\9`-hycb/\1r`@g3:U'N,vݶGK7^~| )Erm@^,R&?xcվ2%R-ϟucZy^5^r+=?<,i`zB].p[]h%kXdS]ǘqp Y``i PWG*ϖ[.uv7&qlR-?XE1 3 PZ?%P\&2Ĉ/6,X:#| Qw4/(WEK&D'lC*K n\(͗-cm}O{ d,UYY#[_5@'~FϜ@;r]#/u,W5a1̩!?cg4a#tIifϱ&_&WQݸt.Ru5U\Π&C|êJNy;[#"0fZ6{!=X~ˣ^"՘9RDmq~xNé:gĝʫn^i׿sx˖̩<7i]Huz>Sx(g_GPq/O빷nz}<_x ŦSkZ*jkhkofDoJ6]R:ߗ[㣤+żظ,-E/⑧֓[e<żԥ2poF/u3_z%_|;Q}[F`KeGnoe3C/u?(s~E}O/_ܘGr_G|׍=@^gB}/-&o[_4+=O}>A.Gc?Op"On]r?yyKmי?LXVp7b_s>htmx+=Jo^D}'d-qn"ZqTD#=]‡OLdE<JIe{SZCa saҔm!FɥC3Q"/plHH++ߝHmY:5*!r==_.˓SrE,!UmΧ8JLO!;~qQ*+#!'E)6{ otHWPx] } /32P6dosbg3=օe+t BOkY!\rU*mz5^c>u@IDATS=c~/??̕jc)"32 h)pUcyX\]Y^h;k5(IucUȩB7=SvnlȆR^Ԛ#:kֱ+N?Ȣ%b/ x/ *rǠw ;ҥKa'jFX.uT&it7!uJi{P:^K:?y1CTgzILQ鿡4O?H@I9;կe?VGf/eT=Ȫ ԗԥ=}:] iL!x=R)\׮^gVDz6N #[S;['?d>nkhk]m屫-U)QhyHEAOO.8|?#~}4r._&'x? =L2rz#sЌzTP+EXw>_aYv ?{`ˏ뾯߾/X$.&EѤ6)Q,J8reSr-X**v$+)"QQ0=_{w0 A̽>}tNm-3wIlߏߝ̷C=Zz"{pT8N<9Coa^%Jf\'?i]*AhOa]hK[5WN*$*< %U\w[.e{XT6dU .DMۑ^R[ #Η?AR+pQmǃKϿ~_JZf[,W~cKYXc\ս„0}FAOEh8@eq="S3iC׮Jo|豸t-,Nm%ײkXZ%%rLY9B~쒩Cq ^h8n8A a6I'6fnz(8fk > J#!{j#PI| [*Y5?E;7r  pȘ٤݂^cOh'A:)AW$Ŵ&uV?FA wVAB!(aQ4y0dfժc+[ h tA5,":}S |w:Fw8~**Rywhie!`SŤUz|#JN|jIU0IR Ve@Ò oy+I%\|iZRU)'MI3\A3]3qjrum9=v{y)k\-@˫\ 4,6O^cXWYPftɚ:`Vz~|zHCCǛYۂ,h3n֣N@,h/:G}AY= |²\G.r@XJ 3X 6H[ @I֒*@e@kXx6J*ksᬗ݃kk 4y Içâk* k֏ KG{f?7)rZXNlZb= Wf'='㽂1@؁n7ݛM _M bk}otDssx|^x)-cy<^pxfg %k"2õd-q/x}ŗ%܋ye/^:N_:\HmEƋ,[Zjk\h'c`g` Kj4=c)/pF4ց+yGգt>t?bXs p!$b*/}Abayg94:<3\Xꋰ_+:WdeBj4nb>n> g̭TE箏L|}hIhgYjEȠw/4-+y~=вoK Kn~qP|}?~3*؞w[;,rpXɅtuf>]SX ;-qfpKL0^ 9UǢT}\ ]\ډz)`d Kd!,eNcC~y/_dCx }aen5MJ, h99~bz~tXխ3w/C[OǼFV?זM`?ώ 1o^, 5m]Xy@3& (J90Եz4DY:^8W2*g ׇFe o(霓9'wdY'T7`Ț$ >6Eg}n>r]:8$!9r7 ڔ~R2:퇼VӌԷ,c ßt cs+\m0-2r~01Q6 T%u'iGW_g]rň lrZSQU/WOU{;N/?{.=sf{`a%5/}/ށtsb2 qѣkZfbYyu \L=qzdnf8tzv PKqZfq Ю~d¡Η VYІ諓3 ,=IF XVpDžt&v @#2 c g:@8 U`i=BĒ/:\ˉ}#өK9SsNy`A d he_5*fӯXO? C^-t,cgF:Bc''akS\EV\ ou]8 _I[ܢg*./B< gN# 9]*:~kU3|a+<}qG ٷ K;~C,xdu#iy쁴={p핿o$j~F+o7j?@VY5#&1שHz؛bӄ+㦃LVQio,Ne/me^̨ Q/p`=E`*i2QEK˻>ħ*J{3Xz}zf[uh{`;T#gp3wւ:だן;os:˾j[ ')+ҫ5ʹm 5@[m 5p/4Z -(WO%zJ݀EEoGsNcp$T_J~ ُAeޏnz,vSf~%^KOY}e|7-I<,|Je|gQ-ߺ6в^Ejz] @KUv64?ދNwu E6pps(i%/u>(evs-v/\!MIo?hAFWoޡU|yp) )lQx֮w+_G⋇Y\wsE׻{Q_W}: 3f~WvSCd^.#GR*fFj %x OnII/rPH>][KDא2F8o|&}@Z4rkOyr5ֳ.tVgNߟ`;bTǣlI&-_h98i`t(- 6ԢczZ-j-kikzs7ѭs's7V9tK)TIfx%V9_C虶@Kt- 60Zt8`mJI^a 8@,3 1DYzˮ =XP,#/auc^{.Eym: E@7*׈> r(ӼUN'R= *amq=ENgӦ\^^I_~@zGOO=UĜ\=6[qxu·౲!|&rj @>sz{dE/j1PY/H_yc[ik,MuMwnٷXb?t<Рg*hAS^I89FQbQP“ȋ+՜ji09,r% (m*:lIAHEBbXHŶٶg%׵S^LVi3S43LnSr2 i#|d/90/_N7'rdoFi#i{xӞe:["]ԆFKC3I ~ ai'(مL͉eלWvTUK*ky1JyThxG72~=}XuccPV\oC&P^om \!c5<Y ]묳u @SiXZUvg`+MG |`h:N#cQW^b56eGX Zuulj(m k!N\^Ycj,'~YEXA|"ʋujݷH?\ƚ遡/y^ ظO{:c.&οiwv#éTKkJ`TO/ Z6)mkhk65W!az^o~Ge{(J<&ɿoWcV饿[7K_/{p+Eރ?m:v]G=[4tuZ]jNJwh)V򘾛k й9nI,}P&{= 2o|՟`s@ w.gsd_af0=݉'`W^o.}.W׾:p>=Dh\ё~ KRVoލNfתk=l [\~4za˹whU*|B+c^/r6?,}srueV|߈3zzW{um``;ATu*ᡘ}oВsp^pI/G0%*lnԳ lkc `f7rd:: M`Xdl|ox.LP&O=ȶ )-RLNqe,Ѯ+k׏}#ǎկ7+?(z[Nh[(sQg#ieZTϜ#26@rZF'=6,,ERw ^-Ndn ՎI*K] /^+:#CC*E\P*S H.Ӱ&cҷh:w18R0a\>3;ʼ=1E?%ϗYw&qk[C6&1qA~t(KutVȋ|1q`qOFyjJKe& uex=i o#֢ p9Xn8;ΌF5%I4Jb^y;e4R}=TېIsSVW:]hz!֯Ȣ3\3 &Wuz$V}gfZ5#W>9~K/6f _0Gi#OjS4|HhT[~$֛LǿQdZX6չK !}Xɼ2ܻFrXwM+ϥwJ'G:X߸ /),Fwaֽ8l؋Eg/pEwF+/CļGvCL;^ܱkfxK72-?K)\HǺ>1W;W6> 6;"!x餧5f4IZޘO_(Vݓ@c=\skiP 9[/^HztNb_յF 1Gb:Z^Ntkg:h9|d|~#}~bNwyKkR}f=.Cٲ" ݱ,ͧK\Gݢ,@,[ bn$VF;\157cԁUStwt (r +nE`gXVDO}r^cuuW,4bMi8MrrXg#k֒s Fd-TPJE> to!DqEkvwLgթ\&E' `ex2&YJ$!5ъ0e?$_!}lb,2'ovL-|?qT+F;soȃ]<'Z5uv4 )UUb= i2\% ,hm 5@[m 5p4zZ+9. |=-/| -{_{E&+V斴z2BSRJ9忚2{SyM{k%{F\o.iůky ϧ__5[ލߩ2.}s###o4{dn[)Jh玽%nWmjpww9wGa }饗 KW~һ*p.,a%l^_g؊û{+^yv&kдosl?ų[6|򕯄EKie17wP-W[_zc̳ĵf *nn_7U~w"q-[%EU,hIw,X>ɳƌŠC< -ԔvǡWGy2(~<"AnN*_hLĺ +zK Po+R5›Z@kKKˀU [4 ``H%@, @X042c0WmbzE\A/Z UX{2WNam c'HF{ u5e.0Mqt8E˳iVVM3PzO毼#kAg0 hA6Rói ݠ_5ѐe9sePS.rkn=v:hW} ;`xOjARFГ- ʪe( XBz^Z Hs <Hy'ϛØ%R#f5[t aKz.@ihi7:/ x3>6C7i_jNR}kK_9`;Jsu۵h:2"ZuW黕%q^#\[(JfzB]%@&G3PmaH^-WiG),|42i\<ꉖȮS>ƴU"_~| $9%!)<'iU=;u_ȫ nUkG3|})b5s>]jz;?FFGÂb<}$ #++ОNi盬ӗ@_~)ߔ;m22s"o-]N_II'ֱ:=2’ډYesNcs/C6jA[F ´MZ<4-׆;t Lg槗 o`:ϜH2ם[IwjzyP(uY , Ym==|\ /20A3NƜNXJcg~Zt2Bґcլk]kXL ss X:yx:{L;u̯7ɱWҳ7;f|1si-嵱;w +Je̍kdd֕ Fr PWxG5Q $M^b/Z>Rƪ=ytcZ{ xa0@88A8*0( /$|W _LWJ7WY撫/qż\ye&}h/! hߐƽ{%x muc0o.[X2A'++ݧOObݑ⊐h?:( \ԩePbmucWh6>}"`Sf)ս5۰~|I#w.]<ï\&]Z=ƟxkڮS#s+"@[m 5@[m = wOeq^xᅃ5h@݁ܿ#ߚg?bpShR,Z~ /e~.~!ӔAx=5YK}~.Ȳ-?hYh~{Q7/"/ OY}hzIfsw%e|/(VIu cܹs{-9SG//6uUg数~ӛxnfz{嵢izv{?߬y8-4-/e ^%O_?gafw+lWA5iŋ-d}Cs{{v'Y׆fG7YAg@ݿKL$hK= 3?tϾr~=`%ٸ^eE}U\we(du*Ϊ\uc&~q\UK/Ffɪ|ˢ6DmE~;-gYc[" ª}x(4Akl24+G3Y]N|b^4L+*eDo5]= E{W߫(rKlzƪ绛X%8B:6r P"^=Ͼ+&ˊ@[ԍ^75u7-/ܼ뉧[gR?ׇ{xW_X $$'Kgo7< oīGhثX%.ܪ+ЃeFXa XsTkђAťM@^?%AlwXMEx\dѾ4q@j,ю3/ZqGtA2B VM泸֝cq W81&eT탿Z~$Ȃ@E, u1Z@}ʵI.̬?8t?.}7ɱtnj ЍHy.2(ُgysCWwQh|XjB,vH @ L29 |i[%)d~,G rIòV51dWz (P^@C+ @HDn^UOUhZ8u/}58bS((`} X|]^0%(c %&,!*S1-7]W}f|B _Iu\UcdW.y0A=jReXt+|YLc :,04ܶ!SC w hYm@ hmgO#^L]jU/k'匼q%(ZFd[ܝviN+dD)늼 xƪjys{i Vyx=vy|ίe#C+%_Niѷ9HĊNf^~S?O>A;apim)MH_\;;{3ͦNJ=XINRU4N\.qՉibn"}oKeQ@r,װU˕OL]Mc_Ko:5!,W&2ѧYϵ5^i C˵%is% '-#jzB\wF (h]7= rn kE?4N K ][F{_(19-XiCr/68טkg^\A>ޣrz3X^ Xxt}c,RHO9Epn-k49^f̵tm~<>y ?-s{\Oc+/Lx1bm?Rq,7ƺV;'Ku]rv[7>dTnkSX8|GG;kZBw GWeȦNsm2֞ :h~uQq ]7 ~G hZtGKNsh+v=ӷ*,ns=%tП{udۭ3>gMf}B=:-Ƌ |h+R0 tE{4/f,,̝'ɺEf(sC77EJNcɱ6'ΡZIwC^|b ~6DO̸yᷥ#_%4 ny]vWW_=u{L~@xn]éZI;@[m 5@[Bmk؛@6J9s&}򓟬lp M=oESO;lsrCߪ-_=.[ '}~^ᒧ4A7|&ʯ:!kdނygI@h٤oBomf9tnf)OZ)sC7w-l77x˦.FI/LJ~=^/Wқ˕o/~^_/߼˙VůíK5OcOa"a]ͱݿJ׊Aԓ8aivkο[oVhT@K -g |xֵxHt? D&H< e8(@=/(JBU=濩q Uj4 ~.yki9ҫ2xAuYJXPOG#mOEzIL T*NT%")Uj%\͖y*4 }H@.Aq8(]5HXįJ$1M^L gja*}ޒa-p+~NZL=z - [M7/y%]y [3_O~t:{(N]yj_XL9(:2,9YN 8Tw1@c\>W  ZDΊ ]`Xl#`^C6AX A(uLO9V`"%,Y9r Cfaj->@~0GGe.P֓=/Qv+4֟O|( g*В864! ­(A GL+U)Җ@r&XXT4Pͼ626v*<\ zkؿ\*P )]ot!{/9#fE { J߂`U@BWl ݌m!HE E2y(m4-,`rkQЏoJX #<¯A2A0Df]6o$rq «Q((=6*%K~_ۧ-OXd?rsiu{GS܀~6-ZN4\*s<vfW2Jog_Ԋ$y t kemIURN;D n,PScde%ݤlMk1HTPJ,~é*zyJ!jh-Y_K&VYVUTV:{ӱώzCb*f~S_?>:= K+XŪK7/w}8/·iL>h8|Q"/_Kצop-D>s6wA,ZvNܫW-r~tt֓y`Uo?-/!̳:۹V){/e/sBqJ:bQ̼kY7 9(E˥yMr "Gח!x 4(]7Wx`5y6~+ax33 !ő"|멥R mױnAxwǺNؗI|P}r$/G~ h9>OtGәc'ұrl:޿]J1.7ޗG>>ЛD_T?(7{}TV).čo b̳2 ,|5E=efφ$g}Yfʃ[Qv_;r\9-4$ŇLvx a~1~(͡A'ٶ"+ym?<;*9-j.+@IDATgGX2gu鏟y.`WH:Bӯ;- kb`Bm;U֎5@[m 5h&[ <\o _wT~ZY)[o6)4T֔P4%GuiL) mR"V y56Y,۶4iGC4Þm' r} \*؞>d2ɫk/~_M#PkRCh+c]e+ Xd<j' QU+ina=<ֆM#\!(3{-f-qM^L3ifyQ; c޸ZWsoBdHTx߼z48 :ZZ_ob45%xN3x"M-?o+(uC+` UW6/j> P1ɈhnSI x.u%nWak%)Cdv]Yd<+c_5yY֯)@9eiDs[1j* F愠V.¹0NPMV9LW/s(TJS#OSOYD:V?˿^s̑-̧i^x~w|(w *w_8}t:s>Al Zhy5]nLLSa%co'b~u-r/s2{7_L:_J2Xx_P\\CrX ^ UñFo?;z[̟|`~!MКSX籔u@"F _tHUk}6_bzyr?DZaZe/Veރ9vl2ѻ"2 ew 2V t@cgF{]f??s#=79 xam[bXIOO۾G7FӋmE:ԇ)GKa_M Dw՟:-Ǝ@F&Vg^fjI|q:U K&P,<x^`Ph7uc}9cAp&{(eA^H[YȎbc'_2:gom`Ƥ˭b ~?/w9ޏ`E|/@{)@[m 5@[wAm]P؟#khZdcK? NտE]RF"#~+ȫ~EFTű V d`)4rCօ(e_#D;ɮ'._K_/3NB9{=y.=Ob"WO_MLo?ևN~XX -_pK􎇆ӑXX|C^*I#\$0dZZZXK<Hr rU5ABT}wk8nO=9<>S_Z18.hmqWlUav`Q@b<`xݸVK]6,YUB țEhlr͡rIAYsH%XvwZ⬀ xu:_MӴgp Wv,N\mǜ{%KYG>C??dqQ _n8AeFŽܒo*s[+L/mTgukUt}LS B*.ti"xdW HozMiPzY&:/q4֤X&({ݢ/amp+Υ@p뗾 5ك̧Z-15^{?`yZ+Q^24-3}uBo|-crjb1-ap\4(sr`A(u4K_n Uf&SFG:A;[e9gKAZ JaǞЗ!+2L`eނ}Q1ǒ˫S7puDZ־Y:Յ叾d\[Ȑ~0q>p+Ux|e--۷>(|e}d (;@wW8Wm/Ih{ j/F\Z~jb/ȯ7`X Zzkz 7$I\q?Xbb =V!3(|kq'AP#_|y3}9ljSfŗ3VOv\@URr[-E[j:= $dO}ZF(%_'h|#skkd~ 9pI9]oc:8UH`.Cj0i]GxkqToЯʿ`{xޭ;P>feKj..矍[v+;V`r3)ߚ>Z6mkhkR]nmnk h-ߏ-[S+kwJo͆~D*}VNv v-j_4eoN?hp]!hѲ^? ̴,S/*ܪVt%۫`=`>sX<[>Uo@ZEhjhվWvk9t}waH{…AﵵvPeO9,K/j2%O}E]uzNcKЕntuywLnWf RCn(\ w'r6Ĉʼn$ՉfBWi"`^+l=;r6AcFO&$*G8T" FR㕅 q}brpACf-?w|40rkkUOF}T_twa'X:eXΌLWͦ7XMo8hƴqMkq8a9ݘ}6sa@Z@K>.#y=a맽BR %W #B}Rhu27fg2|PK p#i qjG30\* ○$PI rRśT@: op 0 nkkibZhV>7;ڑ+'nũw9}cGQα9i;~Ep <"T( z?q6>珝M%omݒQW6vsX_t 73,VR/E9@z+˓L'J .̧+ -R=w+8>w֙/\nLv eiʗ<)37ZB,%byx/3x@/7Vkb#_ 旰 Gt/b_/)nbza ${nd+zgrZE tπ΍s%fW0&;zNXR{Y*k^YNNC;tyye @K=0pu$}PO ,1(dkQǵ6'^kZclƇxvj܎>5d_~hlOb(' N'IxyG0uX NϲyGXxoALn@]썜/\J_e&g>뽒FXiV@Z @!W/N)f?#A {W1FY/@[~ӦcŴrj~1CE96 CdgJM bAPq3-NW}[AH"adO>kyNHǘfĘY_XN.OY0sxq-,gBTRN]'&R(Nםm5@[m 5@[w]m]Wk/R݃dG@7nH{=F?~Z6oܺ򻰕_yZ.k/xW^ֶ7/y%\k,K!ǁ2Ex[M{%Uww[ג9ލVa8-վ}Z?877{fW.˚VӯӔzZ7n u_ ms-#_(qE'c$p-s&Z2֨-9Xs>}vG ]- xj羙eimq#=rWGz 3Q@5,h w WbaKVo:@Gߞ}DkTb{6ZgX# D|*9 GZ<|yvhQpD?nDg1FM|cxe,n AYT g6]zSؑԃ*> <>1ܰWu;f#[8w ) %`>F} C\IuZ;/UQB@TO ssv.ޘm/ˋێb'7X Ak,V 5 jQ&J[OMK\݂i;ahal :}|էRлY#XO.b x`寧޵tfx`IguuCn\hq]QB:Գ/D' dZF^  +9Xc{]е #}BL@@W7gϽ Na0&y*ҲA+Hz :BrfBDê*4ylU:(upE@+*K`:ƞ籑ͫi{]s7ӣO<~Ǿukŵ3bp@lb^ٱ>9Moa_HXۑ3?.J _iRVǁ J-v&E\<,LdDkI>gƵ/b=וw*/tWdo qu}!ܴЂn;HQ:o[L_>ÝL?L(印{'r1JD "G-n܌pSk<ҶboGw;Z=X䓊#7AovKL bvE ~=^aɾ7ıO{x9C+CgfiʹKxo/{WԪ/|ߌʧGY[ɼ[ڽ(_mnHoZnfW߭zna/r`˃:YSFz:?>OSNE2\wzm3@ӗ(W+7˵ڋfV%MspkϦ2zaW,:2 _"qVW**Yuh~,QiS.-| Eu赘$% p#=gļV>idUY/#imҨ¤9|> ]TeKzoU^GD,KDKeJfE2oXȗ΀p=J%mŎvF Op=ZD/ 8io+CZZ~3A ЪW-ON|z,+q xlta;ơ?3s,/мj|xtb|IVN+VXP*مԹ|.\V7 e1TJ WraqOyKZn=Z5 -to7H%.pP* 9\^4z]UQUAcuck%@, %,?t#ǎ#i`q~2W*2m К2)폷flt\MX: #75%(A\{uAZ ~d!#_0 +KJzthBo2JlN̻&(oXP 3c)|f^ܜ^=88Gqf9Rc 6aK+Z"i国kW~#g29ɕqhKR"!-Rnqזo3G7Am@!԰ I0-*li671:&Qq.'mJY+m+Yjr> `E0}! ԲL` KvlY0x8N(-0cdU߸2}˼K;U}Xo 2[ӯk2tYw20O 3Ozu E}7oΨXd { )i8x`Шu~e Q z&ztF؇Os:󻡅p/^6OE#;y>{F`/^rnǸW<5ʹԇnMNTר\btډEXdL&BO./f3A Co}KcO:"_`?5ڶ(Z\Lj37X6r;5,LU&T62AUQ[nu,ʼ4bLWKS<'QI V-ٷv/J#|WϤbeNKxw ]7휶hk;x-b:6wꯦoo}*/pR^%J;-wlnKDGSRb~62ފ痴Ö9,U ܯ {}JwY>lY-y}A7yugϦ_7<9}^{Em!@Cfsrsbl'BbsHX-"`@Fh6͢o}<;wE3[[SO=T=8W\+?[^ M+umoz͵+6F$V/%o&AlMV~U^=mt2x4VAm_kE֬ϭhvujU>lWuZN?OOx_ r ocqA1t <gzXAx:~,yh%p( ?85nՁ~vTX^VMV;k(%u%?<Qp|'cjrB\Au@FrmFSk< 𾰌iLXG'^+ 1:O*9f:F nLSXnJ,-nϲXX\H3SgM}/Xni}TRf~a?d})C]{`HuZ pïz2$끠C_XKL$3ZJ9LLHÒ=Xvq9|Rey"V'ŊtწXhg-s_* dL-O0Mx3ciiѺe/xmjdɆw'Xh.C:i3(,ގ-Ǘo#M:Ng4ƺ{\cz&-LWSYE dJXsuDa),< T:o; /%][Hcq.XT&ı t5>yE~8;Z*qGK/_⥒h]ϵDp㫪fكmAd6@dygbXfU^ ^A eԲgZm-`kEm=A|hb8bPȇ g)G&_W:KNe;uxU O^#Pv(c |//2 %I_ dtu-)y[*t[1*嶲jYwLͼ.'o溷kViqeN~Gv/b ZҮ-s S3ϼBP7$ak-]WlkU۵J^Ny~=ȹ… ;I{f:#l^|lX4_J//Z5,[ROݯ˔ Ms~_./u[jJk³_|g kͥlc'rh[|x=&VI{iۦ(ZCei5jlZ:wsh-iQG2J@Nya'Le.eΑ h2[*I-Gzr@GbJ|4)2Ex#l6eKy#xΓMJWDȣXQ5L&\1ɞL,'؛xTjVgF(k_i#>t CHsZwͺF=mYZ _#b}C9Lێ"vˑ4<W:S7B.ϝNg. +[7N вjgzvF@TStY\)3Obj-1EHZl6,Q v ̳.` RtZ{ kZrH(mpLN̥)O?nݟڑ\O +QEu:} #clkKݝ-q^4O?88W<0 ai@`ŐW>chtvrA[:`C#\م%@K >@αOz:d@^~k:߉4έR6:#QD!zS;:qFխõս.J*PN> 7.v9(t ڹ3ChYu8y V`pӋB?tȱ=*֩k?JxUHgp V) &c)"DXxXU!}_3tL{:)E_e,52EE reS4gbv|JzO _՜F ~x=W_RY:jvKs/:heh0pGDHgk(V AoJv}eXgJnF竔 q"{D.?8iM/"ϢaRM9i㻢QV sON&BVI+ -\K>m> fjj-TW߭S/<@,H_O?=t֔wje:pgZmNˀ`u9,vvB+ZO!4s[^˼|}FfN7 _LX_ڰ}'gY{)byz'g3fb㢗*,~EcY3XZjr5(v]xa93s6/`yqMTM~emӮ5ro{*bEx!:+ќV;X#" O}Ju:1V/^M/AudLXnS!Ի2 spk8oOҋ 1{"Y3SMw@b?uԱa`|o7Hc57^d^᪘ RX'Q}\Dx<.X1ʲFk&c= 9KZt$/Π80q~ ]뼪>Տ&)̆/hWtUfP^;|Oz:5k!w!u1Am}ݩ}$WTxNWY v֧urPwď=d a:u~}lYȟu_D ?<}1i }Oݾc'^BXE.l]}I␤>w7­@K- 4@K- 4p=4Z^-6"(f-\nΝ; D) [**K_:%jc/z][j.f߃paeEc=Iܦ]"ףNuxO< )ЇCim2뻹9^ްzqV}v^"\e]Wr:/ k[@ˍ|wZRΨOם_/i6BέiVy4l/+WwUV'i`E,^' ߑ&{,ߦI,eqm3zvl^ZHOΝ_>s:]A,@IDAT#A,i!O_9Ƶ; -[p{M0Dʼn4 Xak= QyZKeXԺ 䒏@NZzh1}kD ^uEq/Vܙ'|_cxUP&hy[[/7`KX\jn̕\úӗ'ҝ\;~CWR #ȒCjͳe,,"&w3/NϟsʑA`{-49ά~.CˡwOrXŢe@#1P?LcNG'tҘ$:O@,Zs Eܧ x2{5k'^[  bu- bB}& C H<#kgHyf}ZLާGeSk"֛Rhro >'3h@nXiQxjVX/:Lɿz.̎(В,gDB_겯u?* o8C?G6Ч1³mydTVXW͔ 9J[ @OzXu:߅%r[|~-Rꯞwz.Ԫ*ьp M5.D:WRiBfR0t2#:Ŷalj@"P@!22M0FƇ/in_b vj Z,\Q c;>ԩtr`34b o}e誓UHV𞔎zWU8Zs |W۴uf>|aC|MǟJkQ:ǚ XĚ4V^}b/bRw//*t\dWdZ&c+c=20{_nKukq5x[$5u6  iCf XDnt'~B>W_ .6^WW;wԆl\9}* 74CϡU SF}E m5IOS28l>8nEH0`+5NyB!ؽΗW)G(y'  Z  +{DC3KXZX%P#@&6,\KP;88}\ ~_:^^ѱ_E?yqZy8)Y-K K3|(dl4X={Z@ˢ@K- 4@KGߊ@K5~GǯZG hyew[__N>`zIMo ?m(~3RXywk.Ӝ_~nng[vkVmoKNyi_Ӭ§9}7`fKf~WZ7c| lLw׺kͿYΫr.]ʷ6 -ϒ_~9j||AJJ<Σ̱Sh{4So[ɰSvy?/[ð{^xJ{eKW\~=eįITkJT5$FQtT,i%z,$WY25-'ӒTGT&zq|`s|u5PU U<'e&˵oRDTɪdTd^6?ȹF^.Xmx hU\=y>Y"կusXK* jF+alTU$0pD)|+"E.a| bLރ{ ٱYXtz?>w{>4v4ri`p+FXziڸN2q??1Ig.43C!uXH?Ƥ4<ȡt4!i a,N ]+AR($@>x-=#s VXN 2t=Wo0D!ϐ 8OZ,zqu8YbœoOٗ?ٴ=E˛GA(U霢DPC 2gPA 9ucf i= aѥ׆JmԚs 2i+PzN6AݜϙS&ugzˇ+};! :ypP;+YPTF(wxXܲE0Ȳ)b\% 7O\!O˚aI L 3 BMf ˗'Uj܁&,ZvA0kD" X1B ˣ@gl'TVگ؅ *Nf.V1"}E+Rk|GeɛX :&t}<3闐XT-Y,Q֢_VX^J8Ϧ\S}x௥YMU5H}5Gqz M,7OC˶Z0 &)9) F2#`#pkYg,A~A.]nN$Sж\=bR>X5FPɬ|W|"L*} 3ْbҙ.sF.Nʘc4t۳RބJL߫[a',Ӡ]ذϧ ~*|ۍD:G;aĩy1e6wAFK~8ɳgW'-ѡ8uTMcYtp?ia,`- (q97mbJ>$#^>9>֝s/I#k{p'q{ V%6uuSӬZ^FGsX:]NS,##MÃXO٧2ቜClֳK!md9yi>:7r0/ By;/wY^J.j] :j<<_>>.eGwiz3_`u,0 l3/x}ҹ t5o]δ%Q^\k{Z"_X\RK*|k~aNT`V"'u;>VK_@ZTݼc*NRO({+xTnLq?nʺ-QA{I*$uľAЗj=mR*fWOhim#n_We?i0@q 6ʣr-maoHFfDU܊78e!`bVeWx}iᛣhYt 'м-eH뻥ZhiZ@v=,-sԵ\J^K?? uo(}P–kN7lJ:?:/].^x;.9٢-ͼw7ߴQoVxb:vW:+2I2KoەQ/RZM66}fMךWR^JsɆuսFfQe?pg5pu裏ٟ 0c'>VA1>Ԭ.y!"&BSi&?4?idX >yn0^O7-O{%:M-qe9/,bϧ>AXt |+;fz/ZhׅN8:1U6o{8?ӓXn{-O~-5})ۢ.;)ca=/o{_zϝ܂9[hKg}񩴊Ѽ<}4‹/X7W|a)=P<coRϸ߂,& S1@cneDMUben g'efa>Ss.gaŏ**{ƃ -uXñ<>XDQN`SYjkz\oaJcma S6kKkX\2E}"5 ZE3X]buh c:u6u3K.LRYX1<9a>+|ubC+{H\ %Ry]&q`2e-:}17dbNlRC`qWc4TAy@C.-c1Fec @^yn0}1 Gc.z*"2s]q\2 9 W},W>/CЧWc}i*d7YJi[hiZhiZk[h^cw:ΐ.>۫d999Woz:n9wM??UЊb2~_VfZ`R]%eK=,=畸ҦLu{Iۊ%[XjFkTǎ3ܖ)z٩'N4@z6*nV}Zn+NJW̴ZUW[^IwƋ{)7==-5?tȑXsby`lZC̳c%Жx铭4[嗲Lo+4;4i.'x=.Jx'߼eG>4^x5OIoWSf'~%qԩS,ަqq{EjN9&Z13:oF=9LJKg#<+rUe!MkMGZ Mk*\6xgJd(rQߒo0 dpH ]yVb\ؒ9/@Trqr{٣,ѺXU6'lC# z<6qχs{$n~4=de̹!9[__[,Kkdž8k:LrAr?m4g2rp(X " W:@h_ASK=]XȢ f?ztzˑoi h2|9N'ZUx򖡪f  SZv YIMGfө/1']C3/Hlj2mD's3ܳ^^I˕ sp|P-ZDvn@v,s= t1M8 n Fid?WYpdHs}Cip: إI)]O7y{z~E"@R|@h}Ro>?N-;X] *@kjpawM `mǕX[`h@c;ReK] 8V3J3sk+/)[&ϣםstA,Rl<]Z1:# M4_Au=ZmKOK|YܕnfHad0 bղ eWZB>^Z:K&.bA\i><P˕bN@atkG5ˌ֏}^%~tzD${?}1츎z_g>$y1Alm%[Wzmn&3_HXcNC(|{P"I,^P] @m4c+,][7Q=ct6/Gtm<]KQWXtɫR蒵ַ2;x=^!҃ F#],Mfb~b:q0t!~q͇Ztu^DjR-dE@kwek_8)\K|_pDԪha~LBfBs:ޗfFƚi23JԿh{UKvS4m*ܚDVh"ۗQ]6Y3sEd ϱXJO~T 2;4zϛscîUE-ZhiZh-B_W۹s皓TOOVcX? 4~(~P5[l P3xfRBjSn?FZw…4::hvuzzަzz ??ܩ}N4y2hYis{{㛅f|= "F~u]:ytCRιtff.|(nX^6(g//mu9n}cWx57r%ٯ)\vx_3vyzZVKG?_η.vKoފVtӸ}K6{8?Zpv,]-ٛuv^)en@ŪMNi8>h|L ?jZ1OqK(@'L(6*젊+ד6w 2tN4U۳pOnQ xz2R3ATjٜW~p) ꇊD W!o,ĩ >RT2~ A4ImNT.]WoZ?t0-<⫝>a4Aޗ6 зs&WCsjލ|cPi,X>CXڿ=р?|㣫EKס<;'$'o+_KmoiG{O{_8n[I]Z̔Qʿ&AXa?5ݿŧSzavX뗀TauL-Nq}W'NKs Ӌ,XLpTA..PWF/0tAq}NMYHӷt0k.&h Ren  dExu4gNF|;XTʷRz2| .=6>?8>TMLxĽ\ߊ0$>x? - OpA'%V9,]3h"&΍=躟7G.cd:$o{.2"̤(u ܐBYF@bq3q曱~!/>8 U9BO .(ZHdΐ3>|mBGIOq=|Tfce._F4 CD-^ZQۨ^.bX~e3!Wtcɳh/N#T@$"՛Ĝ^z"5[QA. RETlm2)_U\.Rk׵ Ugi١ξtz[趡ҔR]o[`׌6,J.0/ |n3WOs_dYcZJ`#ӑ鎃ηbe}ۏ6r_;k_Rg`Na]c6ȶȺ7ZhgoX* <`κeCG|z\8S@K[S 3 髓ޓg2 ˶N3^ZX\ϕczەf,@GNN=v*u!tw֒`r=k>Zĩ.B;=u\euu@0Wkɺu j+ @ü`0{A zt'0LV߁\7%&^=-}z%(kI`ߎk-]ً҅ub0fA]xckI]-x^tGz|M%o|c%=okL+E T`_ 2jIx u8ۍ|icXe" gNv595|S2?Y:CMC7= rXVP| W >};ώ3/\1-w2?=\܃Z$- 4@K- 4pU5Z^UumoA-V+-3'2~W߷kn*UMMU~ 7M7E ˈT1rmxeTFFF6cۜf9_O/[O _+TovP[d|z:~xE[4gOIWZ~O|m7>| 8Z5z-kߵjS3Yv^i}7ҥKS] .@77k̇/,q JzcPe/a^=ozhKH%^S] 2{S>S/װzE«/KcyQηF =n"yd^Cm,䅛M_H*l{e3 k/.g<)atE4MHGg.Hr0H?F9KDz5> G3$2&*ߦE8r6瀙.Sт*((yTo|αfacjlWT4ӷpU64l1\-* mhD-oSE9b{KTm}f>tJF>&܂k'i7ms_1=\UPCfE/^3y㡡E 6/cgW@&@U\3l \Ũ,OiygD@P.;qL A߫Hg xlzd\::Os|b>K0(B AIWߚʕҷϝ9ک9-E+#gd (MHM$hM~oC1, yME,}tJ'Z+]c%zFH'Ats%ڳT 4T +YF[5@gw6mioG!7 -iA[!6!OTvyN˰"T_*x4נ#l3iEtm|J"W Jz2eW~衩%nEk@u+ UK-6ңGÏ@HR_9חeXEsةó'n\Ĺ\*͢7ʚ2p}+`^ ~NeZH,PV 5q, +=Y*OS"MTKwmq{ƗVA/`/q}y9!2$fLy[m#i(fɜyXI Xp,=}j<=2q&7 ?TzݡyNAma>Pn}~ּŶ|=N\:tO`&UZzu0 u/RD?}}ɵؽ0~2\7KcSu0V/!,@^_`UX\0 p\zrbN =~Chú` >YlN,H:\Ѿ\9ʵO:$+W{Gv7< E@Kuʳϯrl:{7A\/!,~j)l|Ai@`אj>HPl-ـ׀`c1 褞\:+ 1lc~\G<  fĘYiSD5l+c [ [Jz m`E,R_jK_8Usimb=kv{ 2 WO&yc ȼa~^VaϞk~|}w`řum} AXu^|pї|_Fgs8kM똿ޯ(E?׊ȑRvx49D!^=qLJ*ty?bQ{Ťez2!?FR$F9t9|HYT*\QCж7zJ[h8JD:Lr~E3 yӐ"x# 7^C!\ Coέt`=cd 9 XÛqpe/[|qgzP/OR^{]OX0^XLOpU'R P_,6gׇNMƕ@}}L˳(tļUd׾'ϜoX~f^fa'sOPjs\7,o^k i+86A\w~v22:/p,B5au#Oe, @IDAT.\Lx5wiQ,YށuD-Rvï45;^epZuzYh_*g2-](zn""!ɾ^.ųO}gMb j{{ wI>{޴вm)cݩ)S1q;yZ,?/8:j(5HGg!i?HB ~|tM)eف\E k!c*_m?S\ ÎX\ trw0\! ǴֶCO9@yX|h,Cc-cLVʩx=~i=}il-^fZ|S̛;}㱆\Өu/R{ b3#pT%LRS\.QR8 c_+s4 kb F nTpJ3R>۷) yD;'QZUT-DXxCMA8j. VO#r<UyGz ;e=xfTRsHMh-kj[hiZhihܼW.J WYr>uN~Ψ>ֽS&MmN+q߽sHx-A@ P᫏"7_ۯ [KwKkOtB1-t҉!Ea't(#21&,8^e,+f-Rԗ/s\5piߚ_ΉfZ{J-2F)J'}2"_`to2)rl0wٱBcեF]F^eePx4zkI+DwSR_> xf^ Z"˲W4THܹ)X.yƃUW[pK +SA)YYCS.W#1>JZiKc/`۲Hpu@旂[]I*H Tfb]s<_:>|H\gڲO"5t7t:æ}m@묧3O}>-=Yׄ^2j cR.OǧӉsur̽^~hA uAWD*}Sq%X,]sy91gLRX>'RE?%׾~~MMmJEv)bOWk2%>}oOB]#oE?רiWF:u,q<8٢|0F<1=j L,I#3'C.BsTDq 0. EAQ ZJV$U^!5KB 6oE[Sz: , \Ǭ:4ϵG blw{ M5YlG£h:%)^4|IA˜0Ěuvr&ѣp@_zptvP /OLgi k-^ޛ0(tfLXQ>bͲ;^2Xav=1@so{+Q/^@?\\#y3tsk#oM3f 4 ,s@Q'm] e-e3&pԵҵvp&Omu5PWYJ-ٌ?X]dn]K=毶0jS]f2\7X|{kjTFs\t},p AL__ͫ `X*uGq˕◲5vyB^,hYBt~\)~)SKVY~QG_!G)_V?u3^&zْV-٫/igc>ܫ|WYjcxy_!CVv)14?JXipzL97^@XATɡmo:@Hmq5E@vV8]}ԉzx~K^!G^Ykv2ULUĚ=\Y,x|  c #:wOa J`W`!>eΛ{pˊ{y{{n膦DGc|>Ę7cI>FMTaaowyVuξ{ԽԴjժU{S6J{'m1>[t`*^[MS }Mֱ(+ƃ7~rmoy˵7mk>6՛ڣ{se,z6 $E*mz=ik^* ̆]6(Y/4[~ZJmn} efʁ ~I@Hҙ,"MUwzJt+U(=R`akH@%:Bsȏ%-hr~,s%eHXVFX RОضzhQX"Dk@@{S(Hy PK#  {PWR+'퉱</n|֘ j2=MGh! . 5cJeS=YS,/@ĪIqxugM ӂN:];)Ks/ %љ)=EQ9݄~ Rؼއ%y/ʎd3n\7߉ӽudribpYRу6YLM "gtO|cU;yR9ѣiy󔘤I{+4 {藏Elaj>hX~|~TJ%E9엨 hS_^kc]ҏ,jf.p>Xت.ESݨ9^@!c3mk}m#;ҏZԷmJ Q`+0}?y^}nV/|V^=]y>{o} SJ(=OCxt&ϔ_)}>n:&:D2g~t;gd{VlL%w9qCɥ}1-ُ0lPFz4iWFqTdiDE\v?Ab9JQyQȅWM$jH `8&`b?˒{|nJru{,,$s=An5?ڛRhuv[}Yd iv^)VZ e6ɪe8|q^ ]׎ThN^G -`ڦ;moNn~v.vlF'˚^*C[ʯա6CcP ?qYb&%+^4o,Y-ZEمWۜ[pQ:|+h$H<}vےeKmF"kuXܬCj֋$mrtv;&}뵡Nxwڟ}cֶh, $tM+M yzE9װ^þC!A9T[<{Ɓ:0 @q-g\{OL.Yڱ[v}UU_49A=χ<ƊXurQ ڐIQ ˑ,-zswVϳjY^n]KI؁H9 DrcƊdlcV}R'U% pV/ 䏨ZuS-Zgޖ,; HCh@E4s u+A>YI<@D':=eU> Iؒ΂ _[{\ $7S4͵gB j ܅gÿGAMNyI=ɫc.<3(rGqԞdž"ܣy>MDϗ$YCFiSF22r痥Aف@7QF,F0/~;KsU BBbH8>{0pr{+Ӄ:W51>R`TWXdĪ흶t\}<̀!!%vK}77lf߲=φ6ql~VG,O〔Wi36W{6 l-u=ݶB>[zTN|zQGh}+#|=V~۞.Z /i?4t9qUxB !:k5ʯӚ&c ?`ɞ~ =Tಐ:YT?f5WT+Xڇbs +(0S pyPPq7>_a4*}P׵[<}nR{7|Uxݖm`F5_c&ixs iA9NJ"WF$ωԾ+x#$ SB߈'ҵsƼw^*@gەW^Yx}f_Q}(w!)xHw;K-FiKÀ DYs3Z;<mi<ÇOk В E)|xG?%K<<02@? GC#ʇރWaXDp+6Fxҕ(>zeayfȏ<~6ΤdwR]b6=Bf" E9sFqy%N<##  9rB`%-A$f )||SF]$V,t*rN V3RbV#$ BXT*z.%xb$DJ>GO#B/`AnӁsk>J?Ě 9Gq.bVL򌃾HmWZj8W 6^}-`v)Vͷ|Oy5#ٲ㎱Y|߱v!蜜7"I݌>zDfv j٠MNNzZd}jMzK^}l,VɈ5 h9*@saiP*b/yyv/~&?ڧ7U~֫UW:6lUt~o_a\֤ז|J~ɾXKkŭ~ )n lPW6*ov"e2;%'h"K8fXS4xʏ{*׆X=?z@yR},8-GA(P?բ*d Ѕz@ XWn~del&B6^J}Ўz}` !-KL`iVAj5ZJ?DJhGjTW^mI򇐴l,Z֫6xeenu[jz }.wDӜtHs۹K~,Y)?6!6 ᪦yvCE@VLѲ`5(kU,.neol]}z;dJ/*;t[$gС=@Z6/,o߳ۚ8F ˣ;ƴnX~Q:,425kO2E6pɈwӆ֡uWg/{-1&a^IDag%hV_NZ|Z`M۲EBRXhsYl]$s 3&\t8iQe%.ӸoP,.{&4yʂ>jeٳF?9JWR_;fxx!<0!RCCtM@F9s.dQ@!'Z+3J>㏻|ͼUKrZع뮻'_^sˇULd@^.\Lo~;@_]w]Giљ)}^re+@˼r=߁ю'kkO׭՞Co0|%A5(?xۿ[ZU4Q&xO[s`5A~|\Xd{3r6]߯|+/}iAQo<_^ 2wa#dԕߢ~O*Kk~)S.48s@Wުs?`z6Gݑȏl%`##+y3qw48 h1R &grݑFPYxG Gq/ Q fi/g.ӑAIBX!v\2>hD/7.W$^!)eӏeiJʔV$}"v>%JUSVuzJ_tY.&sz𰀖KOEVsj.hnzI@JSֲtzBށZeJ 9^wUܽL:f:޾lKO<^؂!`4&f-з_C RHT^}-ǰTcmdJ 7,CF2u-a1Uv€* (8W` -̒4;XB-oB\`h՚߾n vmWo^&;  /~}?csu(McͲmo2v' #Qq I̅!8t~N"mK%Y!D`n=#s2Xmr !{** 00HF@M_-`[s>q2o!"{Tk75ԩؤac.: p.&$}W>Ɂ}5{c e`[ *mx@OX׍qhJC ݲ] -Y S+PG{Wٔ|$'>nLӁ,C56Ȥaa ^_v9UN9Xv(NR~CO42Wq'rr@ˇ+w; Yq.u5.%g2o@K25\ ". d.|F%%Su.Kd>yY{讐ы#t{,1*(%&f  DMydEY ΒB峝d9h.P=ʌh~پBl|N($j}ze͓KptsдWV/gw_Y˂E_ߎmXZkpKs% -87b76JGαNi CUݍzBm @c,;":%[vc[6۹/ښ5Aѫl^܍^ѯ@ˈv5zvVZUנ,c/ߴlj^Ϋ43yshm;;θb;We֬{{9AoӾFT Iޠ]WQds h~A o&p})lR%nݰ(?L=<{[CN@Kw=]Wsh/LVo' RұWx:u^5Bthli<@/G`Lw813v[:\dK\uEYzԤ4#e?ȃ|`b&B*,}pP124%$mL% (9A ̥MDI¥*pO]Oiy"'- a\TX8Y/qc:a8s49識EXcՕ=g1q:|,Z =;[jP4X]V8zBkt:ི!Vy}g{G|97_UQ+7>+?GX` ݈-z&P%A`F2 +yh(!&j!2HS+ .[qÂ,ԁA$2ɰjis  B㽶rI!*{w>E+"|.$畤>D b[6Be&0*ʨL"s*NTEcx&(ˊxA"Чƶ<,T~EˉA\gcuCz.-ŵZ{! y.9Ma:ާ/0k7qJL2G{mӏg=*ˎzvX֚: mZ_5Y!4١ηnzm36j?eb;a@ h96F3zaӦ=C 7^_ns.1}}V4Km P[mzeo߳VmZ'X<ͮ.=1Gu4%ILm/jeP9xVn'b+4)c7RT'%k, I٣l z$IS,(Xu96Æn ~YD^A$ I={~؉w%n"q:h^qhH8#ΝWS^DbcG${F{rxeN2g^kWc[SBua'$џF J`~Am*mAԾVof9_&,_[`o8LATN1^賴_ N+z^ЁI3CUP UPVd0 Bz %~^Nd>҃xI[c׫T,;|k^rh,h% 2R+h*h`i,j >Gh ]|}%}W }!iaG-"p&,\yCwzxp2wM^@!KRSrk~zY%mDY@ުsL.@v67y{q%@WZ_?L>7neR%$q_O2 t>m/nڼ&kL`ʍe4N!ohY^[3ђj'3 lɺ\>BٟB<qG…E5 %jE:^#!Gwy}[zP9Sb^V+ 7`?O'o"/_f|Lri3-m̗) |ͧuWvߗh?߿T4s@IDAT8$ѡdr,GqF3CMWȩ×e0B&PAljK켜TJ2`&Q,ΙD8ě:y% YIkge0Tg1NTȃhKJ81':aQQ  & B#Q`X,I>FX~^v렝Cas@+TПcۺv,If-˂9\ef?_߃:v}&W]oi[[lyR#˖鵟zhu >X{emsu/)ocOM?u-[;U@N;.Y3dk~p,K4[Qc=.Q HS'4. Hzl qppnNk]߲C9aT_o؃wkWj-cuvt3,]b֬4!J*dv=}߳EdI-:ho%!^_^Z-Ob[[~nÛ6XBv_6ppyn U新,UH;+ џjGT͚\~^ڢyZ>5>ihL;?-7c~21w\c9~va\71i:AMsJkeԗɺU+h,uFer/8=e< nr =$,P΁k1ٿê'4Mؠ=>g'@(t%U>t8[7')bkYu-:˜_|Qp ?]x$B!/ڟMAD5TCjԔx&"V~1MR^ f {3!TMϊJ[ d?7(^ckӎN"X:,Lpj m *ӽԾ,ŢBs`QQҒg0nF4v6eYc'}nkt.Y|wΐ5*`!> ; >&n CÛ74{uOSۇ τMI^7D*㠺,j3rةQLaEKyGݼ G&- )t?A~ț%L{~ _(xl4gS` Kdn"NV&^>ʷہr23Yۃf_ͿTU߁Oş}&Q_ _1Dr{ʣ B/ ^QW3LA,W7OO\6h:5*;餓u\Wz x@Êf쏂x2'*rӡvaxw Rރv}̶(0tCwu&̃73qp3c5q/^q8ׁJPI^O(-Bd̅*Ie&呩|a0P6 "+">yGgVu'ީ|$bnKt7gﺦ(rFPUXKN+e(dɢ9&% kW5[OŰ$P,"򨞳ia_ 9W<7fD~^ҫ{6ͲG` Zl|Y$Hgd=z}6Z^WꍯU t|"ؾa=E&1dSv?|5{]{,b^]wtu1}ÚښVY#Bxu^~]a4(0o vUy$o3XTe1Sֵ7h-" Jj,6@s]|O5dx]&L}uϦ\N0y:I%h(,^\u7.^aKN8 8AG#ߨ䙁P2 >E@ RQ鷤z=-uBu7LHU4<).C^Rq S/*"(/O' :0mG(Gppe[נ7ƇojbRs5{U{Zzu,Zǹ>Zp5~x:og֧m;5_Vيz B+]ӱ3b 0FfUc P]&4ޣ/6by5M>ksUEg.(Y{y![d̠2X)k'l\ \k/Ia2 ,\j/2?ZQfX.!|ڗ!@NXblufyi4'~voû=ß~u0\23M R+t_։}_iH-31zU{7ɯUߺKdiW[(u'y^ CQ:=wȉXs2ĎPzZ1Rݏd,(kKj.'ɮk,J8Gmݥl 4_8QOUPR*h*@0cy}hv1|3nْZW&"= ?ߧbWJq&@W < r6C@˼LXȃ̋U+o@dg; ߁3A[dIhDS϶L͔T| ,RY*5\_Wd.ll//+򇎵1a|p8-#֛qaK81y8>.<2G3TQntA??[>"h/꜉ʕioAM}-Cөo鎜uO\ װA1X'*Hx s, A5087  Q_\ =/&>3R0 sey)To!!'")}ϼ2qV>$D9he|y*ˈV-SM/Xz :R/b:$]vHOT34"x,Gdщm?lb7ʢR8զ&vh!g6zĽضAoȖr9dR^%pnk%!^H$ضλmfL}h)hS$ lO}'v,a rtn>Z՞c\me׸-Y(d,-7ΖpX,=e\-?!&(I   @EmzƶnisHh ]bcO_b;Fֶw;6<-;\Ql^&JA6ۭ`q`.BC,`rW%@hs6( lP. :8I'!i6k8O@KWy[bXYbAr`%#uo:?U~U@!8ܒAnَ,a#>UP>.j22R> sz>BYY"LTS ф*!ˍ,bpI3sU# CxAuGhبTh'#],m9qLVX؇f܎ (Cz^zvTL%("u'YiLm\g{u}жuz%siCODHj ֗޹g\b/z?^YOhn~vm6n,A6t)~yl=`mڕxoVZkZJ|F8n>rxO٣Ð85ΰZvU7Ț2Rlwٷ߯)νbk\;tL{Ύ=ֺxay]nfWؠ957h}!*Z-3Yq )d#٬-d_k.k;jrc2}0fvٶEZk:ܞ[d<<|{ڂfXC6(_.FI*'@_ gR3~FY :<ԯu ;׸c)p@gKK,]KΦeNV9WvްCB8w-=|sLMTh*h?|mm8Ub8 Sp ̊;p ox&."? yI|%a,[b鉲Ȑab,<~߬^Pu#[V.|ǁ,ܟY~4q""ekժUNv]wyG.[ rіpzhr"(:qʄ*@sOTܣeVL2}]Wڒgϵy^_ɘf^ffNܕ+S.ʆ:B'J\iqb/~6_۱6Z?tN_ PbN8C^Y/j6gRȒIZi;gя~p^^r-RyO ٱruG؛ 4dA~R.]OϖOrO=DՕ CLf?T,uNb2Sl׆[g `,pU4cj 7_IJH's H]HCwqI2_,i4RąBicGT}˧C(  )Ȋ(DRQFBf'9Ϗ&gy{^\"E:( >iq)HK <% kARay! v{zF>t>K/h':E=yA[ ݲzI{g?nӶwl&r`AҘ?ꈤ_:QOV2~l;eR@ pUvٻ*돍~~5,ޕU{,ɪ|UZmP/\]j/岼w0P$kspx/_ni4}9E7(] ) ^{NndR+Os V"nim('چП|ST0Vk#UrвS#ٱ(kʲUyn,^"K0#o[8+DQ2.H4׎ "@KM6t"cȞz-1I@+ZŒt+*¡3J]TT;Qs_oku˹/d-Ks. 9W!TP6pDGq6$N Pe %!yGm.|MVI'P-cKNPGE/dD@%C&Z"YBɑC.qɼr#ŝFa1Xhz"# Qk:3 Q?yX3h2Kp^ÉIOi~8iGqypG:(eA?֥IKx9C̛7Wro6)CnL}YdDȏ|#G\(Iz9҃?`^${,"/rp^i'㑧*<[>#'/yf|لF}y]k}y^ilʰn txsR#S">}qPsdՒKanlqvХjDu}>)āqU0 =:wr'?呛>%M&S\ vI@]ڑ$6MrTKetsaɪ~u;L;\TgBUtЎWϸjAVaip0D<|Ŵr:L>eJ)Ӡ'_+OKuqzdR:(:e sD֫9(8I*N8=_nY벻z]R^3kP^:,i᥇j/%6O1i'hMl,`l^ ~]ڮ;K}v@n-Ё2&o~¶˺`U| w-l[`oy;s885%] )(Xq)?ds?޺5t6pPV}evoz,clEy<6Zѥ qZ@ ^{t"sI7̩/IT+9Wt?7 X ?Ň1 W{cKk] 02 k[WkӼ,J5:=p{jt tByCr3YYkV%ӫv}ɸ%Yc,9Wί h5?<_Rr({7. \Ii)kADCI?+OFz@uC\$AriJ*x*lsQ ;i.x~*LC<}B ΑN UV8esB@~ݡp ~бFFr x˥5wHDICW ʂ#_ԓ4WXE ʹ%KŌICzmm?gnwk#stbi7˴p+{i^ K~}={lW.ImꐲhrH͚:kͨu #UV#=x۝{bOm-iT `fYjcM?~YzFV{~UX]uc|}sm)Yϯ[lMAJK7FeRuh-9S+hXiV;y.$_`KD:pDz8cԜc`p%>r=ׇ+E2U^^#fMugO"^||_̧Ϳd||z>.xi\=X,MrlslϴL2ΗNJD ;C}!\!WIG_CnpA^]zuQ=y۷ow+5*;#㞑}ľ!dǒ%2>C&s߱#N۰͞|;\s=#ry2i"<(S reI{J-)?`_+7vϤC9Ÿ.?9 I%Xq@)㢃ց C$I4?@R<y2!sXYt"L^x(8.ˏYrّ~(IFC6IdNR HV {JGCq] ̼eJ*mdg飄 'm+apVkҗ;.4l"^fJ'h#MǴHBzuPlcl$PsT8Oa\P_C:up8 Yb@mQzPG뢟r)se&)\?ڵ_uN=zvaP*[j";>qIXnWz;lER;]ݛw؝a7Mֱҳ.Xj]>iKVyE8JFM(:pCh?tfR8HMMzu};\?PtQ-g\ڲÖ|-;EV;gnj?8G*͵xCȪ Lr\1 t:/ ~ /5XSݤU^?1^!G|d j@&wf>-Տh;:,k3.j6GQW!E|ӮpRkk`X16}"#}Dd\t !b.ЉFQcb.t?*ݳ`>Ql إ+>( ҧ<.wTȞ\07'%+a+x={!L4"WXN+J` ʼnԧOn=J35)-G vcmV|-Weƹ3iQ 9zQ)89^dm.Kڇ%pF'\%ZkQS?gAynE^c̐!{DG>8?bAPɹa]0֝ST+lEg %qaHx&%yY4/DNO1Aм\}[ceusxHfwvR~baO x'mA 2?RT/P/d,RxNֺݶߵٲ lakGͷgd},V' K PO?ݾQs3:v^aki'=291v)g`g{)-2cX+He-ƛ9YO2dnYֈ*w"!/[l]xyVx}. ,TV O'TVa1=3 M&ҶĆ6{T@zkU.xCOG/|R pg-YSXQuGN@ub ݷDdvҝpQ%P+Х6xؓ6}G{"V1HV.Q|ʺSxW( @K H:XIZ#^+p.na,2cKcpa~ST,[,$F\W23Ry}uk8]ُl00tH2EjZW|A;8׃GK(oN,eỴow5/:L*Oih*hq{Qs.wNc-sqX K{8Ax{kk֬}oԅަZRד/w/mﷀ2ɫjYwtڵkˑN2LH ERGyx%mLo E|lϴL˵#xTEL$k}'Mzh9M\f9w>Ys꣞G9? o3&>qCEdZ3*V:+$ַ."yw8h!xwN {yx10x^k7t|)WR<+VÅB?a]}T uT<h?IUxw)_h墮}J}:Wg(YPH|ox^0/ܗŌ>+DOo\bj6ؠAspgA_,G:kxְ߭dGIqMD_@l\l hgqѡ#mc\ 'Ln7o4%1'ṛ` +o!T } 0! JMj7=(̝ILW%m6k)NQYEzIuD0gGI7)QWq*1,[+#c_=Az⡱:& بMjO"asK? hگR>Ү ZyVYWrIz VVkWZi[ԄtH6Vvq9wXTZA?nLO~pthY;Cgܴ,N =] c3R\es \d8gG(t8 Y{Y6YA:$1 dzcl}>a4~LUymAX{g={0URK޹G^O0aBƕ*h*h` TS| )5tDE^>m_¯\Y9;%Kh#*O;4+i|s#@K9n@g4-ZFyh% V˖-q>-kT_'8 "vL@b?QW~@_WmegXn U&/ ˹0c_/H3SO۩9̌@l429L۳7g/A,*JX˞AKoذ 원%/{O|#R `GLM&^Pia@IDAT+A52mX.ywC"Ch JsKlE{Jyo-H]!jvNQtiٹq傰Hޛٶ\;ߧ7=IB K$mFG8AG@a@nlDH&v#@4F`hX&7OyvwNթ:y9\kܙy*;wu­H*J-Ik:ٮvEa19٭ 0?~.g9cw{X'/dLcfbzIT>9]Z; tN̶^ܶm9x|fw Uk$\k&8Z*'w{ǻ'>QO# jkKRp;{zw?oz}20fl>g"h*~J__nQUە*^fxjy8( tMX|H8mW;s@dU^RN_NDNHV7ONO0>W9r)~9̇􇦟MW/2?Y?]ЭC[.&MLHbd+Ꮼ<7Ʒ2\071@: @ڹNDKuž<)xD7iN䅔 h9OO| ;gFb.oM+iRz{궟&/)ReNͰ6E)tu? |*A%<%t 5UZ:/9>Yױ5CYu;~{jMմԟ%BK',qm\>r! [CyTi249u?/f@K_xQPmҲ΅9jW4v[ Vle%n C7Z`jZ`jI-0ZT;ϿfNFk47:7^};;vUwwڕ6io .@>um _f?<Zn<Z vߍ.?!d\]@q?}?`7[gtGINJwXo03噦\K9iNo+ f(AMo鼾k&Kþ w+δ\~!4t~[:5KKKݯگE h7|gp]>ÿQ|¢8z(A6X+Q6M@fqZ%d@"6v -gro&a uOt/l&u6Z x0H3۶uI̡h<'Dau7rvնTl.Pß cO#9Թ{,,\hNu8-Ab@e>u*cwn;-\ ^l:=hwQi60r<-i-,iNsYCU-)Se C#O~^'VIVX"xFX:-qbQ47T@+u쥜hc:vYT1WO 0:,_jJ-I *)"@Q,1UG@䡔i398ڙD) Ut(CHvJ1*_X7wc+6 SH HC~bG/ *}YcJO: ^v3]#^rJHWѺhs_EnB- O&}@4IIX$77Д8,gUmj\ ߸U^\%يɣx 訖ţOCH(mN)@Gp,dVEܠj5ˋjV2vgF[RmɃJ6f"t𕇟]yÛ,F?kNV~%0m 7]Z՞5]^"<=o;v9W0nLl^/0A`٢c&m0ǜ7Pru f}fÛ6i:O%/—sNR`2GGUYS*U')њ\(7eoӷf d^{;.8g/_0on> 4)zG_tyIH;s6yίc|C}p#S7` b{1 h>< 3 aN"7 _`;orx[|C[XmcÑTd\Hڼ%u2R6ik)vֶ-z6\;؉b?~-se>s]VD3m^Y֌Ȝdy[>}M>|)W6NeU(|6UǗ/VS{my Tl [t0VUNGoAXx,%c)kD@LOj9bSH7_b}t&}n!Wt"%-H!l_|_ȋZq6%p1lte"ܵ6Yu|/dKI)E+8{SZ7] _M۸N+:Ӧ@˘bzZ`jZ`j[hTA7Mn\Mв_Ӯ7|#y0L㜿;tw_>8l,=j?7 >FgB{sjU 8n8N/O>H { Bt0p\~nm%ѹQϕKqcjKw zؙtlmJhx?iy|!e*<.:í~~|_tߛS, O[|\/O_zy0}~O?I%g/*z˸7=O;Y Mf7쓽 A_cj¹Y^h-';*"O6g A1m[a+F Peu#D@X8ENnʇۄ19eleoMQ>q^Db!a#RȢ0ǖvEy$:]#@JmhЗi_y˺#w<[ Y̷Ӯ}Ro&*1:^r/WSFs=d8h4ٵgQ<ó\' ^E< -ͩ@49疥#ysѷ Mw$"'+_e\ %]F=sxQ[3/F'Mi;fV/=Eywv$QBVNW,7y1ʉcW}ͷt_͏u$.tJmS#cG+"Sw],0[)g3<'Ǵ>{_Xu,퇂m+ /zYm Q& (<%2 &@O=g#!OBc;iژ\dk%S?].к;^-}}% 6dO?wC;WBNGd.*RJ9A,,W|umޠA^Y86O~u-͟\\RN~# XriY33;3[Wi/=]S10 S.4K_;P[zt^YIKY/\;s.]=k &dիɩwSbFvScw~2|Tѳ}1BUƪ? vŽjUJxۏ|q=w!k܉ۺ<=v:_lZ`jZ`j&h9HeOg|[h9la0ƕ7θ'ez¤|a*熍?"7{_I|ѿ7Fd5^}_z2OO IHf/C)X{$ە}.E(,|nֆ򸞲}>{Zێ=7ڽ-o,oP{H z3eLV`/ ܏f`CMBh'9.8}T NsY=~)chW~kȑ#Za57.3L?oϗ{{B4h|~g~&FO뇇 ~6O3iӏJ 0Ulƭem4m7Rall+nnzv :skݞ_|`Ce`˜4 ;t96IwS.HMō\)c[?ntZz`9_.69JP];J`FX~Tm,ߢME'"^^.M)7} TU!.LZ  *S-5lϲG/L>6V_{ |IA2sS1~L -`z g'e_e醝|}ة4=ӕpj-" J KO nDCgp{^`W8Yg.Ox`pxvyzKbLuN\CM>lt"kХ1t@-tΜSHK9ss{0` @Ɣ+B Ҹ2'.ͧ> XJonΥGr{6 Y'bE|iv4fV4ɫamEG<|.[}xd7xy[]޵]xmb &5-To2 Oß_\'Fy>`+tRZA~I}B Ꞧ[l? wEF+Ϗ9c@K 5[E~N=`e|:nI[-͊T\go?hCZWcݱpY*(z@XMm:[@]$Z,Q&[/2^--Kn< :V1lJQ$@Z\;OԌ5^yo0"ͨNi=}nPP+* ú_b;f=!kAWQI{ BW 'cN0)k Ök^fq͗ΰαܰJ4mZ~ʓr˨ ((EƩnv̝ ! CF٤ ΩO 3 g-8_@:ݥ~>{.U=ٗ.| !1p3s۠+v7DDi ,Г%<`cMG_b -]8.?M`696,!)t!qmNBrm\pbw;aKϻrw*/b/DܔRŜ/0 v˜ؓnMDV ݊\^yn'XR}IG^BIT4헗pXx'8myGı`u˜ksξ5rXJ4\Hsn~(wk~[:q D?7W_2iCJB9~#c^ ?rmfִ~[Z3M?!޳@_\_Fk5ic=TlK&ώ?cDG`9wO DJB ͙?ISjAZ~U$4o(۵<5{ŬUcЗWw<sgh{dߨNjYԌIW?|Atw_*ո@ƦZ`jZ[TZ[͗ ajݭ= f_sZ>M:l~^SnگDɟvR&uu{]]]#u^ObO^}W!?E# $cJ> ÔQa5[퇵lom2&8^S^9|~yX7og/l$z4sߏA[-[Lm%(ʫ['=;ws{{{}tL}ixS/TP-5^h?W|iGţ\+Eo}39t].7ŸF'y#VV,})n?]wDpx )^s7gK**Y )S˰T6̄.`lӮ`@^9A lf+Y1e6|906`wtAwUrcm?-|(n@g8;s[t?٘&?tS6.{qv/hsiI.6Vi;l7L0 }44GL MWϝ~~{ * >_G 뺿ַuufd I< L.gp)I +fZb||ln=u.P?u? O]:xQö1;,;iq{lB?R':l0Tr/m¸B掝Il*P!r-_gS[N|.IʥXnwl?У*ׯ:c/yMx.c}h?Cp%n;F}. .N3JԘsEWWbuh"0S~"cZN(UP(;0&sչ_WI P/pv%q-hXY?D 򩹓ggwNVnŌP7>=z w 11V!Fk|exd[?ϟ>Q^\غ̏y^p^`]gƭs)i<Ȟ)fa12zkDnV żs?|(s[ۗtW.].^3y"˅kt l*V(^9 uPq.&͹ p_|#LIs_/mw+{k3]NWV+ o1jEl|*ؑc@Po9 LA]-'_^ 6ir-zY 4^+I:>y7у#|6re䩐pY:;Ֆt}y'--mvR7}ѹñRUyZϵ!ɚ^~ŲT?L=F IpgIWW} @+][.0/1/_>6zs2Nh(؁2|A]Y~:2dt^YPLlR>вi򬲁8#i4š)z=WZͭ) UoikWY] ȒӯY7m(~Ef URuj\4O<$Áox۠aNa=ݛ'ZiiS L-0S x L{4&7 h7ͶX^k@aZ79t('/})? ͢U0oOh%_%ku}{}Ha MJ7Jqͨ~a>!IӞ} g r쨼q<&'FʚDh\?\A= hG]e 1K ]O2 mtΰW6{_ҷ3CAG4_ZRNkng[\2T)[bj0/9"1s=ou؝ԕT{)ʲ,l L͵Ymf3)$KO?`̩; pw  6Ć4NxvۈMX{駶=i ENa]0G9yY ةi${8;'ec? Dw):Qo.DŴ$-ۂz"Y)EGl<@X (8m2R j^hWOG!=m#},^7{79 A1Z5/$TAW/u݅<9N,3q@O 8O 2SImVvO> 쵧uk8#6u5xR`jDs̈́z%mgd(^6<6ޤ,WvKw<_:?)|yOUX:Kc`K:d:.?!C(%~PID]-'Y7$Տ5he7JH$99Y76!51J(d ZvU\J-ZĒTD. }}$Y n±ɻ;8{GrL@ي\3̩_ H(/V3[@]ƦPر۸8`6M-ؕn 'qd~b~D[x",G2)gσp33w_s|%͹wqypұ qr1Ķt;T+d_m+ozn48A*tg.u9NШ/J2o!L+@57fǑcXkܙKsp9/[;Mym[mQ/OK܃zx|r,=Y: \j`LNضe}LƩ% ׀Jd꟰:k_ OmI,m:ufz9JXNc e6$Lt"&1nG=,P囗 :Y]y]s)i)h7tMޭp2Zl!@#B s7cV_u5b]W6},GhH \x-9Yl(}b6!<۳^ڙvmΩk;\AQJTڻv(fd&yLb;zZV,oߡO_[2lsgh䳫|6au6B'DVN4c}NDSpjaJNލ}ȥLM/jh x^~y(_qS^[ B_nsZsCûry­iBnhe#?'5;)1+{JRđ;SN<ڝ8)mɃ֓)C7Ou/ľe)5Oc%9X-RyΘ Y'eZWNuzc(?G?v7vO%C&'d:jdz5,rͱ>y_wO'Z`!i +ԝ>ozRL5e|//EfuÊ[NvWz,kv@JRo͛zJzr϶@z΍%u)*|as5@ˬnr-EO`r++~cXDwڇ!N]+%̤'f1~d~xA_k_6پ` /s2TY~OCƵK {p'o]][ x<]U\GOF%4p]I;tJunrZ'a }<ٳ< DR^\u3\\1Jv,Zn[ 0">iWsy7ƪdFIʌiжGoIi'kѿۿ=/i>p8jdRIFhiڦMaʨa"A/7@L?S@u#0b7{k[Tty7.fȾ<'{eǯM~Z~?uP~QeO¾sa_0Q:Dž7^W$ڕ?Vv#z jze6{ v}2(fʀ[6%㕰?c~'-:+覹%Wླྀhq vhE;_BX?_oEV8`Zh5JVK;~˯8# ,F5UHO62Im$5ucxVP4˾o/ɖ)smg.ot̉N Q?Μ9q) E٘ UҬ(XG>!)ӓ؀tw}rF# W9@+piT؄Dmk$rHlf^R?~L%]k.D7m\\-~,D:NiE^ɓسVn'9閩'WbrAݴTui69X`>o|[bᗓ5LjL .=4-bـ!<(@zv m1o;|D[8r/|k]QLhuPw ʪ}L5ύQҖ%9eE ,Ā7bV'y7=k/rl`}#v*iL,Knoac׾mm{@<3WA'Sln{V=NNR%A[mP&Bg+)GMMN|4Fѷ~IW'9ƩMUo]Ys.t[49ƒ1PڽH{jm8hR0'|nc#E5h@a?W};žfTHz4z"81'g8Tϳu 8ՒE~ưYMo|Nw4\1^ԠE/n O09l'P.S8vF%&XTt2(mtmbr|ܕXZZɍxQ~g97q*cn2?}͹3k ۗCE2ي ˉTu Hùw $_xExz2 e>9oSόhk 6ҀsK珢W[S]'6VNT .6a"[MK e`X#"EF'faUw-̇5S6tTI_i?[Qy[`^ӒG6kYYv/>QO)(>ϭ` 5`@=dz閮]c{ڑny{g ֮ef}) R.kd8᜖-a#mL;7a(m\oxtSYun/쎾mSe1>S L-0Sn)Swapon0|&-~Nj cI,~G~hO{{DE;NIk\y0eSO~[H5D/whon,.ma[h9 hy7߰{o-c?~<m?ʏ˿|c2?-_9}edleUnT̏؏ҹϾ?Aq7ZO3*<.O&SbK@IDAT}7nxg9R5~{{59S-Z~@2qw|c*b4=Pe8] MK.d{;(%dvYZB[Ҥ/e,Op84,UƧ)B@}Feٖ |l"xJAaaOp:II+T >20XB66i w[WvƩ~>I 0V AN>O1PgOȐmsOi=oSKKXIomhV)tԇ: Ojaw8jla^ez-ݴ=p{O=(MJ@xX<ݷ|w'ꛒV7}_h/F-|Ɔ}}jf XlBj_&~yu91eŘ,Bg&Qk}B/Tx/[h_` p˾}9u@%Y'͓uf=g27*iw2Cf+t-ky 2?. |}F2Yz,}n\y9&k?t-3t]3 hP'gwn6Se=.qC:Oe~/ m ]| x33CL3!&g$LyKo~Wuw,V+,༣ScBur~QcSxЬ-4u:Y:?Mtrru`PQ2ZG]R{z cClZ5aYRX4U- Ne޶O`rd%/N2quVbQt~a]_e/`رu57q6K[]:}3x^dc@IO*cf:YU sn]ϱy.ڡaڻQM&ڿ(g縟l)WN[:rbON).цa[eG:WW%@tޱq,}ukOPwV"QW.>؋BX(jP{^Z`jZ`j[`)r#5tZí͖qϸ2 hY~/3>[Ow=Sb?Ot~G|P"3zX\O?tmO~}hyMF/ 6ZrۯM7OW SIh& 7Ͷ~h2Ƕ2}orZѴ?/ }xw}%o5֏e/wl?%zh-{ò5\n?07">,ø}*_4>Ls#co,97B %ntb7IW9N^SLgn@ތ}{I|掲ó26ARmF_ VKYJnqNۑQJ:ya:;wڤiҦcx)OP ;eild>O<74"[:6]VIm8rJRwVLppOP'V-rb<@|0uﶛMl>e3 MNSuA |,qR*~M6#=yB=s T, y%@GQx沧4==&8+850rcp= o6Y=ahτC$(&egg H!=@W%x.'<(|0%uܔ}Z흾@vgP.'j (8am#7mc\aʦ/a' @)hl哛*M >Wi;kn/`˅'}_W?uQ'vL1 # ursO5nV]fJ.3z0 YҏȗUh-0$\l%6—A"ԑ]Љ44کS3:qjvc57ke2Pc+G9\q}'`?I.pm6 ÄuWU]a'rNWΜ.GcSԟS&*>؂.Dk~p+.m_LVsUгMYjomjPMz [8h3g Nv'ŗŜg]牖/ޝnp~ij}FjTU=ؗZ[-`/i99δ֥ 4gYiH &jtE^aЇIweԫr%Bl%N:ՔN@E!NrˎM' A%:fvKLoh|ӗGle}b<2k\sJ5c sf) ݏ% @.d\ =m9GEatuna>|,x2>1"S&o+#OM75k(41X/apj#y˞·i征P,OOuKcjj;]*5HA[Ws Iwb,rgݱqidW@]FZ`jZ[`Rm-t5/aj6r|U6rnhe V6g|gwmԬCPogS]iAga\OY;vw߸89'8q?S[t?d%nܛŷj?r?Ƴ[?[pxWkC}[Zv8MWɟ0ݝwpt7kr7>-}AMƨ2*;*m>(- ^a ?ArX0pgJ Io[Gɟϭ?Q\M;s'gV,~ D`/(3ʾFfOU% /EF:R]rq ;wm3+%JVS>rw*^;rk xTO;tq;iġtA8W]%ʓKC<[ Zr=R^WcWR?s,#Q Y?mrj 6lO?֝:y"@Oi*p~>Br>)q6Xr]ON<.(oAF*B' ʍĜ7mILZ>ojWt7!Fv5jE:7oeFg6 [泋Zwm M\$"6Zify D>%+l o񊌚}+s)Aʓy$C+ ĥNͲO Ioue#plF Ѷ0 ~¶9 *.#xqhq |զ9ܽD 4Dti?]=β\&u>3' R s1j{Y+ZYly6Ihl(J^ -vi>\ݦ yRJ}qjൟ #4vg_bڏ7^~lwU<:pzq>ٹz%e걨`-o]Ь}^)ˤaf.nL ȩ%]] tD%+m1˗$I d;ss,s5/]9r[I+_>ŗ/{ᅒG=e1+':V^F;5;]) ǜ(@]1Pmڰ%/ƶm"٦ņ|'3ʨv~2מe ߴ纟Xo(Fsrk+wӽJEW:02?X"9YL#m?MSC$6E2Hix=q66Udx]|nEZO[(*J)U' Q& Y+Dy/\Ud[)ص=,g}I>kGm($B-FVڊ0eJtg OrI/ex ZI+t ԛy^9y_yXz>/o,A\CKeoىx[Y7Zi A%*e{@wX $*avyzt4٭4 em%]pE קfAVś_da6SMU |7U!k^>/zJNݢd 4OV˷"7ЯVDlJ?cݳn;ٝ:u;q܈B1/*XHycҹV桏N0TtfzaH`- d`@z׳2d ⩫ui ;okY03|*'_6[ZnIb VCw#w3d$p!a#Een#[r⤀CzO4O*nc/`ɱ5tno M`A{7a?ԃ2,km9aL[._~=ylOرzC _cENt[˧9jè8mx}LkmюltN" ɪ5Kbo]i6qȒ @<;ZS0YOZXEOCKjO;9,f܅T$ә/ݰkiΡ3]M┡kl]._8igUN|If\⤺ӌaN502][ƵNk6WXvkh+׺Ky@ŋ jsd6ǎt<8&i|mcEr7܅KSOq]+Vs('T-<_wh Uܠxa*ngi)Vfƫi!ME/%&V>_yJVDR+GtZ9I/u 4˜ȚҖ Sp`dz冧2TD̯ƚ ҏdUZK3R<ΩGu'O XѼ| wY`?.60^ui䪘*Fjccc#·*J0 k\#b{"p6 Kk%{- 6NS02\y#s0:]5 a<͜q5/Y/tYs?K7Ye,Z7 t67͡yӟd Vخbe] ?N]x8e=NyA9\O+ֵG{l7OZiR<sLy9Z;srZdb")8rWS^f-puuqi;)h'nˬYCFY/auB_L_JQK/ZŦ-ȿl{O~W yؗ<3=`CA FxgNxɧ9O3rZ; dZSizXL3Z`jZX`Ri;#sgmmU׫~[^1N~$}RF=4>o6N0i`qLw$(V,ݐ=||yÀ@bsMe6J4p3 6ؚdLAM"+-^6LOj`''%ZtR PENz|jehݸïg<}-?QB,}:[^A'Soh[47hݦV:2xXFM%S'М5"ָHw(@g:՝Z&9aQ-ϴU٠;*)/, @5 }pF  `e- a(5˦ -ʶA[Ȥۆ< ߒ&uy߇wim➜$KӜ@K vb]ܨɝlnk-@[zgg8ka #35@=m,HƦ}Pl9}l8<|=K@E9-J.XRξlLMT7A1Nh"'*` ZH٠.m3;?O1u/lGl$Mi?YC1dqCnԝJ6--ghsmFړxNPIj0.Ŕٿ\9vLYOځ}l#y~ojK㲬l^*҇;. FN ΔgެX3]ަᰉWlYy>駄9{U@_ r.+U;O lU٘Ik|{Gh-W[|N;VNtaR|X<6$UA $H7Yvq>ʬܢ<9X,}/vl׸ lf/LNSw%<pqdwBQ8$4ja}B-\(M6whQ4ie|MRGZ^| %"96'\pRmFrtȲI7?tEJ;1ӆTJ9jĝ/M³8I:Z9v;ԩmO`98$pҎ>c8{SWݺc*z05%_^9803P<7+p \yf^.|i0^W Sq-8]ǭGv72GcfGl{~I~\حYo/`-/sPM=gs7Yoyε9NC􇹟ؚw˵ :mR ='0Kp,@Y\&qޣ9%xX4}1\O<ЗlǞ.D.7oN.Tv4`u03s yq´(Ɇw|6 cu-N q}yzCOД/k>ZGӾJ[l:S;gI<'.۱-\c{Kex=KҶ>& oy&'_쮝9}EisJ΋'ﺝ9WV{?vs|CEu)8[w2ad)2Ô,/hpüȄV fl|}v*cLԙˉݑp}YxsȰv#ٷ} w2Z`jZX` m8y?n1ջvY2n4o\ wǴp׽uavŭ;s̟RnLdT;5ү^s&cPhDGe[ȍZR^}z77iϟü)˦7\~x_(׿ǹgT;lȿY-)23x~RG< $y!ٕ<?thCxwwߙ+~~|/??=Ù[a?=ŇuG7/{Ӈ6w~9֧9lZ?h4]-sfكgU;*Md͆l:55+hv#es)AI]%rr+%ǻil:`Moa}ix)opܴ8˧NMfSҽC+/2 lRNҘАv$ =Z|g妙~ru ۴JdjP$0mg= xw['c`OQMP±K]Ξo`fʲoLj,.NNzHVS[sh78INUH^%z'yx" A@c/:seӟ1RgP PDm滾ѥKZWDže롑~t!'f-/nw}ѫݽ'P_O @ǝv8%(E%v>*U T'CmY?1IrDHQ<o4B/\yD0~yv\>38J晷M81rvq$ ypl>X y ٟ@yS܌Nݑgjypt:UƎk| ݪ ND%U3V`^t9@.~g_JsZyoi;Ӝ0xw{}m@ m*t(‡s 6VA{.zAiqɱdlb֖d%ZK,3U@ DJ 3>ojS<$ښQt_|\Xv (eo-P!3N恫3[-)yY [IqEgxmqÄk 4ʦ'822O£b~7St6/,yU i[73wj+q2n~ߥО +0 d<]7ω _oa#F] ifYyrʪVwKMK͖ ,,6fl|pa&2A 02`@%FLjzꪮ}e~͛og=t9=10C"Br^VRdLbBF;<>I +_Bd9y,}5M>֑{xm[^X9@ p}51_ڥmֽ[6EѶ7M^ƀFez^(p:/bt;7O]k|֎B=cc=:6jTޱ4x2~%e.G\(C.کjzZ?[V2 'Gy{|eѡcwTJ4|>efQ]ј"}d0&l;>sH~x5A%]NK^m5-\ӧm6#%A^|gx{2>i~,wRA}|YX:ܠ)»  s+_ q֯1Wh |`q ntϳϴEi2]3:wΝCgC;vh9uѩ273^Wk{nO{4= > -7}~5dh9J[[E{7FG龟ٲ-/o"rkr?9Nڤ,ߛ-fŤ{С;p+Зʹo:EͺVvRW:Q W*_KQtsZnTٵF4;-9jp#ת7*}7iVNIݵlVڶQuFmN6~6Cc3ea+u-o קu6[mRedj>7Xƽߵʬ{0v[~KoqO<[5}<R+ό}z-o+N귺 g-v[Zݝ䷺ymZKQc=n;>/8.j;~~ m{gÂpu6 ג/Í0P@ є#4Tul81tH;W$\}&J'T7MSl^RTSj~NUSor>g_7g]R/3w_VI,@;u 'yHw<:ͳL>\v3%!!l, iuѸƄ|PwSgtyIE*oXK3 |4% R7DcssTS!ܐfr,`/MP7Y,񨟍|pY'^в\,(:@ Lnz36s&u~%.AJ!qBptT֚rd+mYΰܸ֫G G:4^.?k?Q/zH)UYm}Kyy7^o(X/пZjvk1}"\'+X]=ŗ^*^~ke?cw;xAԱg;Əqx--aQq`)klt;|_r|t꙲x8SQ)t@?%4s-`|-̗zȮsAPǒ4ԚK鼍4BC8"u\GGh_Rbu(-} Sz", P-QYb=P-cձ班Y/Tka~@% Zg޴` Cmε#8c7O}*FWw;>vmaNgL0׮(kBZh#W\%]@{ wȿ km&S?Gw)>oԏ~u^)n4kV7ZRpuUȼZo劻J֦B2x_Jd-=) Uѱ O\q-<<4nV v6/κ;OefF0>m_.gO/N[bf$@+#EYI S.oCi6ưs'gMI[t%gyuy Rk7>U\{xƠ ܬ3Ўm1AH2Pdyvuzx2xei;by-G>,V8Om.õ a6/w7x4<*>,2w*}6ݤݑhfPV>?#=J|2{"#JH|ӛķ~ޔۗeZԧʳ>[>ϴ޺I a'|7Zۥzq}81rtZ4 vcZ;VԹWR1vEmzҶZcy4WN;ߗ(zKnx(ǚh]K3'O,?C?g~^ Vv3~^? . /3Fqnβ솿]ڭ|Vc+ l^>V_kđ9+dh?ÆZ>`7MWlGl`/7KG5n nF&\-gnKu3p-Ct\9GС娠졹 `lRM H4h\.n-aMwGV,`Y?}K9oWK3ߴ3Žix aMXXջ5:~9y@Rױ@7Xu-tM;d N[ZGfߒұ ۭVtpT}gz)nj)5^N_n1?qTc]jI,KƮc#@u.vʮ?Zҟ}%lKOֲ8t#c i߮+|wox;ao ԆJvX\Xw%GvRF\ߋ/(//>G_7UG1en `6”e\% 1*rc3fe@I ?UrwIx[xeᩧ*i(WU6m@_>V<,|ᆼkcaf.6J5rsl1h|ꠣ50#5es\ 0m;߹6eQ* :F0-ҥ9sYyU/[ g"w:W/V+1*~K}FoS2 n\jyum\y߭S;O9S꽕 x *1E_|qH}J~@IDATw%R_ָXvMJZ c?#叞|yv@ӬSI,2}joxwٯ7e6-ju/ݚL".rz8ŕg%47›s'MF)BK׾ 13GA']g9Cw1._>S.^z9[K>?`ݒ~Yp,rt闑 zל"b#loI'\5lA4 iV c!mvk~{ s1܂]y&@\c;黎=TnBG/5TFF֜|Xǽ8 ֨" @ޮȌENky&@'rll=d+NZ^+?O?:.>.\Pه$>׻飺~fhln*ʏ2/66/"X{_~TDq6 `V0휡C!ѫA,]+ճ(u#rҺuj&%`6LM%mo'OϏp1^|r#Ag'D^{]9JJr58֫ycϞ;u`n(b#\eSqqb=G)GXrȾlY|Yw|Q0/ ~lH`H 㷂䯮=TR9L!@e9)B&oYS=]u#kOzoߙ*ƝE8ru'rIݰn83ҫcG岌(AϮS%/Gn%%. C+c9}lK-{|8._@Gϱd:RyR7/档Z{ʬ'WugA-fThVd\K7W֨eD4lk9Jk,.J.w *0a\'(D$g~] b-M\ȶxOTҵsX>@?uH*/ f\֕p8 &e, x)MQImg2` {֦t߭+zi9usi@n#ރ/b=ܽ_^MsLb&͟yag)9Kݘ2Apx4k )demEy׫^@`^EKq/~?Xd^ _l9Kso hgvb5S_ai{}^zߢ$Iq|&?RU0zՙK\'ӥвn})۳y*@dmaslrv=@~O}f`l<O<8^EkuBw]b8#R2.R*<_%0DŽE_y=;O*Ť~ReD>؟奲Ce{q}VjU'/UA\KG .ǽ!sM.b Յj!712q_%,2XY<|26Vux]NQq܄ڇD^Te4= i`O{ؑ6{Tլeh9I7ܽݤ[83ofI+e?VJԯOkm4,J^X:|MyE?mp{{[:71Ʉַ/inZwNe)ꯗZv&g? >n ϖ/_ N3ɘ/MpAܶ"uRYXᱍ-.Qۈ"?GoI#VV7U8'(T2!K/??VlˋnjV-^* /?(v`]I?aC,@֊e5P!:T|EdS{x̽-e㼧y nPCcLeh{I_DZEkr'f|ky:4.T ʖe/績e\fIr|wi6Y[?@7-`\[B̏p6 sAXW m ɹS'3Xc3^=XXz?bE ~;p_EK Tl[E5 |wieƑWkAQ4`nUJ=TWZۂYR#"#\ɮ 7%ŏ^dlS[8 Qa¾koƏEvUͷy)·h]5uge&SJKۥNZ ^lQY`ŠԹϼ̐ÇCsʱ;*4DZ'42XPxEfin,& %p4s<{O4Dq}pmy5]At`K_X\geWʵXq^pPS;+>ۇaSŤI}}{׉'g]]kt(S<7{^%@]W  jZ>,/_O3O9 R_2jEʜGC>gS7պ.§ 7Xރ$4ZGER+']Zd)ѡ1}p9Ԝ a'g P)>^(n\Kϯ]VN:Xo U6xq$?/{ ehse/䙴wlH[>arOXEuT~֊FBe=:ʢndc%{f iV\ ,fJzx(_{dɽ5/0&gɺ^=JO{C7@Cܬ4U-hC?km|,6 P427|ig߸F*c^znX\)/0+X>:' ^TESǼfBwTjsw.~z0`*Ə<.~Ϙ[tK=YZmpkJlyoVhiݯ{= i`O{4p+5Ye!ϝ-*_ͺvnn7RhRȨ{PVΆ)-[r}]կ~uTћ,%^[E][IN 6Kr-߬;+[[=JW6m?J= /wRs=_6ڰAi[f}7f[M=1#\kH?Go[b2Vjufv݊vjo웭7\np{oϯwRcmDW"Sr쥶K\|vDTA[*V+: /'[$~ۤJz v~ 6>*o+i=^;SկT:y(K+N)4%?Q7j~R8q Y"5+-h9٬\ lwNd` g*[r(W "/klTqZ:|( (:^|..ҵ u5VL:rUaY J sݸ :~Rj tr2& 뷸k+Պ#kՙqjJZxP!`r(7lj|zQckv~lǚ7iA/h j:#MSMҀ iȁSǁcB9e<7*d. %d- /Hv8mT]E_K_'?p,;g@?;Y{M[_/>" -]'D],R?'(ҥrجqHyMeNhь͞~[1ggʳ=rWf:b9u9VBAKXaQr{}_y2{Z)y(k ?ȯֲH3Lzyd c QW[@S92NT8T]oDz*1|2$0;y땖*/>شXѥ4.:k9vhB|Pv D2.Y;9k!K+І@ y92v Sc_Ǻu~&q!Yaٖ{?!Mu&α#b^ͧL!lիڈI=>\Zomֻ.҄EqoZ -nQ$$c.;ziMOg4fS_@,NgB)2OU~|HBGPLg'wj2@zA ?0c~8qb2(P:z!c#$d;`wΔ@@`ȖN0k2F-kܼv\cƀ\Y vrBXc)5o: VmF:ts4qUe\eyߋODg:\2 x 5ǾQG\^yQ,[Wx˳e@?Mg3ZdNGG^RV|p\cp]tO.ȨQDKiaeeO`<7tOۛi1D3g^rpppb|"3@Ro hX>^ yl87<=Vsu\NtNܴNh[VA9vNh# mIe>OS yK]##2w7b%aKgy;>:@G]okz2G~Tٱ9^k$dзcZʧ|WxwgoWr9~eg$ו,M&nr6~Kޚ9ܞ4= i`O{*R}y|%7jօwKݠj݄7#8?<#7Ӱ?ptGZz!玕κ)--M]KT&mh98"]Ftn4ֱn-wfyn ^v 6ύ j z2)Qm߈VЯ›?,p<d<??й1FFW_[^;g?>)?"-p?iy^??^Vo=w;mo=YVlT~>ϛ);\f8m6-[&Jcnxu5g.)#[0FFj;Pt7@X$nV C+W[Lƛ]nD/ldNQ▋3R5ޥVy-(o ,mK~ 4}yobyfk֨~U<6,Y4KGY@Ջ毾֬[`K*sTC|; Hƞ CA|0>/WUa`KR7E~a *b;6%0#mD-᭜-$jk/alig(N6hmtE*qʥkrON;}cȵ^sKZ䦬%P|psmv@h V e0eu F또J~6\7]^~7wQ HgJUuwX̠-Q@G{D>,f7Y^w-kK-KǫߪA$A"e[X}zIzY0Zєkm;˵-ezngНd)9btO|7h͍MSZǁi--~]]JM7]㩒YE& >䄰uj=dhG@Gz/o|v_֘p~{%SNУxWuu"6eO k,rdNz[KeBd5e9^T<@CcG8ޞcusd6J^aV+ضmggB6B`Xu 6y 2 |f ܈&HWFu3NY92MΚ3,=]+/SG̵70)m5/ˬ# t)a}_Gkp؞/g^8Qοt&uDEt\BG]3G9g3q ~5KNǖEO}we+dI[ZCw}'-(F*mivN Ūc)cYU q)X]" T~PsG73c>gHz:R>_.]9_%8< `Rr뀌/[yΑ3X*bƝw݇Ub(fHd^|͸Q%6~phwƨyg^Ƈ%򒦢ԓÃZYhWݎOU3/ҵCO-ԾjնC g|^m lzs}59,aʸ [xl3ig G%jv h}ozzl*/\|4'k4Ƙ+jJ㹟^Xik/= i`O{6-\[l?^(Gmw N冷0|)r8˺)ٲ-g[)^;S|s#wKhG?Z~% [)+\p/kIy-|poaGVܪ-D[_Д@,~jklv[}GUjQ4L-:}f+i6+ mMM+6Sv3e6w-6mQ۷:,|7}M_^xtȏ^|l|Ƕ=Zer~pB=[mH&տWrx;fW\6ӯQfnovmTo8 _–GR/})?@#"Ѷҟwxlʤ9YjuW­%ְmW۩m%-ǗV-xHvbC.E^`nJֺ¦vnp_^*2:ՏgFҴ6H x m˦iɆ "7 H}^b3;&n-U9͗Y,[)8,lyL` {j0PnJ]N 7zSvm>:16T =Śdz:n6zY6kazGF}e!aȤerͦcYٷqx)Ѕ=Ђt)Jri~f=-3-k99.I׋6:qlts"Ÿruϔ8t]sUd[݀vI*du e! 6tcldIQu)/Fuac-@G Ǡ`ˣio)ZzGtG sq3m-3r$ @S=qgsbX5}ڥrc_>}\x;2S /XR`ֿ7[!SvS>qȃ嵯}Ky[^^n V2:2&<op \teL8."6|yә~b_0%.'E9* ZTWZ[Ie=ٽQI\9_-D)=&mm7 CI]l8Sul_S;zZ /g[o2mUd@Wʍ;qƓg; j(]8!% $ƪ㑰Ӷ<;cp&ع>閦^h㔦׫A|,3\ ] YMB#IMɬщ8~Mܴπׯk>DB:~@vIiu=eXO|"Y j㧞;Sf_y8vkz% (\sR'H Q xyd՛kBx.+%w>;+sMg^LOˤ" %0e^Y{geKmxdܳחTV}6!xSGě~zT82\@29@1=xRp_q 7J­ 䘿~|*_1Ŭ{>Ӽ13}z<ȟ-# &߲gtxa緼yG9&#8vS &e곯b r"njD3溾]5JεbK7}2VcfӔ \IW9?MmOd£U5_EL:WӬ _8"!dQQ.^|t4.82͚OwC)޴ c7,J÷pƄ/+NQl [ ۿ=G 8t_FSZ/^/{]H˖li;vi\ıavI6wn*V'ܬ#mRkk$ĭzSt7i5ⷂh+EQwr+eq\>ѽrFşi3?[Z_ƚo?ߊ}}"FlcwrAN߸o[c~o[6맵tſ]RlW{5o1,f)JYJʮ7Rߪ|gBEYQ _nVB+SkBpUޚ+LSiYWɬ0.MZm,⭴]̞9gI9#]Z|DvCe[+ KJ9tu,ˆk[h6 t{o!)[d_9*oB#D,EXa L(g3qjѽGbւV@ʈPrr& s6cuMCFZM Č7Їt\md:@״c@>/+rK,s $ 9KI6sL*3lm6ӷ6Dn|Dl: +.^-3@k%6_߆D L&RFHARdUkv>"69kJЂ< |e @fT`LLv~D^bSkDkkn?Ѥ?Wih- 2x;Pԟr KOM~0C]{t><'-&F$cuhk-oy.ױ/pEʭc).3[` ģBł /~| c^8їyDzUꇦT ե!kc{.>NP}-'+'/Y):!淍p+?)3(!zM'؎Ay9Nt>s$4n0/P _m2ĵh\@iߪZ,R6|$ҭ)(qHˋ:riNwY:EXo,p]-X*kǂժ)2~[)_ɧ}dyrʉ:V/"6.p=2 /cs *в,KXB||Pvա)L^VUZMcN?[=FiMVn^2U&,{7Nz_'BM\L%mp?Ҭ?(;${wT>ȓ{:Y t9_=:c)S5óe?ǏX>r#lg!~s߂)ZR]S w֋1U+Ru%;xLp]5eggQj/erިg^^ 9#L\g@);T!Y=ZVy\]\ؔQ7XGM~6ױzss8^ZBvՅqƖ&f>-ԾX~ĊO~}HMc{>=e}y7[/&qOcX 86363K;Z>c o +ycH>(V|"_;ϝ %Vy:}T9(/p?%Δk\yckjz:/\ҒeO<|r7^`\zrSe(8/c*uV4=#OI\- > I #vscLƕ:>"ZfYW2ɸ{sF~r,Of:;v*2HX!c u5Q~ޚn5kΐwk24x#G̟qe?~xc=ծkWxɷ-śh/Ӷ\ .,Saime[p>oL?W??#eէphpkOsVvm5-?J_A&ΰ9S4'`1CUK|5 (nsparSJ ҨƯgscJ%!iـ(ذ$uO||G06V;n' |*_2 JFZ֭Z4TX3 g W $LNZfcKj5b_Vlk  7Χ>& M㚏 f8ٺɜ%S@0* SEGKEإHB$n"OW e\,Jl6..~Xty2 UW-gܣ7(jEj _b0`Xр8Q,P0XA<L\*r*qynd+\n{ 9AͺFuXIW)FӴ H)7KY-. |Q*;eGAwnWOدOwQ}|8ܡM0m}_9@Ųt ,+ڳ?cD&L̘'ï:ȱp Ce?1W}X|r\u,Up\\.\8hŀ2:uzUR 'Σ!ի󑊵'3v3rD}.zǻV̦yc!n8z6{|_b ƶ:Y qBY`|#)Ph r}M{(sP0yq*%֪䗪QAY2߫N'&p=ȃ\ir@ Gҕ' 's6zkO4som;'6-h{ VkNo"boMG1 M 8%'DZ^"}j]Z#ɡP?QK(mK1#cX/Y9gUX-عFh[e1p5Xɦw+.*<+Ns4=5‹R9۵$B h /kCjy18NXE ^ X*^"/kkQ7ԭt([6G)jy+} 7w@$X uҵ+Z#^^5,yu}K ;F\#}9$}$atԹNW)~-UG@Ț;}ꂴZ6c[.m1|UZ(Ǻ©']>m@0M3c$_ּf)ssU|JYu\AH9Tqͯk\ ʰ<"[>39{_-n mv(vslnE٭Д͖{kJt*g,4uoM1XzTxsopz|i ~ ɲekn 5Z6#[έjV)Qoв|-o4vZ^ fwؿmmew\՗o+ foNyuEm|waLz{S_kٿ6.G|򕯔gcSr0_c=V;;&~nlEЛ5]iQs~@/$9LVYp?R`RL>pjg G_ elyݣ*oz{ʽ=T>r6Z Q6Cˤ/zS|Ë`K.pӼyđ3"+_./ ᳨KX7N PqD7׭jzMwAtZ:prDZ˟X^Q~pjƸ@ŀy,sz92}Thi\3p_<򉯕-ƴ:wh9Ǫ3?zڌ- h#S(;p:VQOSMi7\e}ВPDH gж$m`B`, @`;ӘCya5.-]_eb._p<49cq07@Y7y9@̐,u -^0iƑkt 0|cǘk<쥫]|1E`ʌL_zBPyIJ7̺=̣o m-^]zךTS_˳'N-^"a ެeK-POt#(^wwJ2/T5,'Bg7db}TYV:0@UIt}yT\|9?p|D^TΜ=7ߟ-'N>SΜ{rW:E -[? ^}AZtMu3u~R{7Hʑ;(?ߘD["V{31H}x-|*xJNt꾣y]XЗc=sw(gIMYgAҮy>l'>.d=A0?G`ж]|4pã֕)}""q](K|y9ƭB7Vq=2>^抅Px1y6̋ 9u'iӮʷBcL<`\.1=F}q{}5R˦Ώ }>`nf:|( atZʅ5Kgz"1JΚw } {{4= ivi`7<ȫB9@ݖ{'Svqzl6M5͖*w~֐fEgMwO|\׺lx;?3-oy˪~pz~^ 7_-Qi|G?zشeJxjٗg+mWvGs[+ҁNkݦ{7twjr7yYVJ?mZ~< Z_n77~7~~ 7)S꾉Z{s/i싑gQ@^|lkm7O=TViӳ@˾ >~x7iݠ|Q6?TyqFVno%q"'JuE/@mP চ &tKrn&pOEqHLgDDAvL:U W6ƟVKҩe[8dќAYīmZ_YM%|2ѺRѠZLk- ='G2!kf#FYpLEgh -\# բ z;HqMnڌ,OQ`#;$ID6nT ,F ~Y2O\ v@,2&$ t9Fu@u2E0k1|\Ӈ*W& kȦc熨V RlHpSh?<R 4NuC^Z%I&PDt!(7UY^*:zvY#fα \A ˹g}61Ϧ{uOv CYyUU,iղ6\QzUqL4F-Ϧ==Vzݟ)<)K+8:XIhc#cǭ%R}'˩S'iktuO< nW=u}"y_DsNߨd+s] Pl>jX˾#Mwy뛿_X1sW/M< 0>jxbp@@a›䭶]+A1d9ޏ?PFU7nF/+ǯs?iQFp|4C#'|r:nVal;FF},; NR}#/$ee*|tAv e+y`i-?IɧI5n7"6mIJ <6~Kst9Vro?"ډ ؚɶ lcUR@+l}٠$ ZbC\K۝ kLs1N.ːr]IylyaWF*@{QFvUS3ցN)~RK݅wC82%;ƵXZ8<#0^cᚹZ̅ԥkbqxKIkWL G FӇos %ȗsO3^zPV?˼K.>wq@=Rw >t !_9}}WQh[fe~YWo\xoiM0,h9l>%'VYٶk,]rϺrRY:˗;dP h)|sʅR vy>ge '~nrARe]I,G_?df]}Z,\Z'A=/?cYjc2qXdڗ31 }^pZxwNLs2꽈X-f<zL%p\d%YoyсɜsDd ڊ|UȼoHt!w8yId5q'MuũB\~kCnLumFhDeכ%Mʋ/Ě/mqcPT|8ۮE,Z;u ^{}o4WgO{4= l[ |67*Ztoj]mM=lVmov'oe}oxw8,}gϖoM + ,WJ}קiVm'(++_@?HF`;4rTsۡ7pڭoVq+nO<soVGotݦm[Viۯz|mVolq:[yV˷o?W_^EO1pzw zӧ~:"kǁkձ+}}~P-4r:~^KȷΉ'7Ck2_cv}h|lUVoSZVبg?QjX3fQ,2TMa݄oA/1Sf'X}6IwӐϺ)g\n $>$eW_ *Y%A `8柛HnYuahu4 FV~hEGV'=T<$!U=PSPp㵹~gݿ_jY"ms4tЏgĚЁY[f#rA@6@f ӹrgl̦}ɏ5$v?\ &sX-"<{uڂ6=Xe,GX^ni)C.?V:X&9&iXB+nNPg6!./c O[FOp¦ }/bOD[uõm4S %٤W77B ~N ǐ Ud v!V7nH1r^MGbR9Aio|G? t@*,Ս|hH7;~*w<` 7ٌF+ _~<УG|8њ_{r)`N/>W.^x"@S(*@Y5Lښc\ >- " u4B쪱rk[{O}M Ljn_@d X9#PU9yt'yu?ִ97Zp@+ aSx&ݍqґVASV",^ƛ}gWkǼ@Ҳl}LU`}@Bxn4OXmæC]'7Z.s-{-s]Z*`5;c<:i/îa)wL/V}XD|-%Quv2"YYF[I%3iNn&Yg-KFNs' "9azJ%>/+ў(ϛ~PeYeD_ytD=YlN:L{8'\Su?2q$kF#(} g/so{^ 85cZ!پ==Z˕@ėbr:Am=㆐V#!Ϗ__`}喙)}?cK7:@V*'g'fS"`V wyTD2l<'Tztl_tLy} |TsX߾I>azI˞S~#H+}-ݏbr=!,63(kU&ҔEK/0~%B.^./T|\YtH_ԓr;uv92>JSݪ'$|}}3os葃e??s _Syf7?k {SƊCUuڌkK>v?X/`3|ƣϠ;7}q1j\gWI,nls#'GƨVg!:|126îDӬΦ_0d:~vOIS!͙}%/NAK-jlz' :6k~@G 4k/`n6Ou6sٶms.I#:#Lj*'Z=[Oe#K4= i`Oh`6վ&ՠ #,Pb7]Z[w˷ɰvwVo=V MyJVV˶9,c_W-apx8/77^/my~*s='q-ŷoeN>jߊ|*Mw-zh%fNG6xl}~jdnn[)L)Vv_ݪnI8m4wR~K?'$Kk~ `K]e=>FQ0mxk~+ߏ-Z~joƗֹs:m}afn v0_-U( h?;GDxr͕ve ̖Mo& D' KY "BMm6.ƜlñAYd5t| /,Ixx3a1 ?7Wݓ2*\˸_ XM, !e¡I)❿"բ--u#l3=EO)([|y{V^X5=TR+(Տ{: b kC~+XB6D>J`@O}Bp>̫V^:ٲyaHVuH-Th_b*ꑢz8do_Gv_t+H0 |-opxo ;w*)/f.J#lV/aJp+fzt]'&tHc2u#Y kjQ\ pSPqA%Ix4iPZ?r㔋]p8^i3q]^nFwʦC_l[> 6wC6T5uEKr[/_:W~7s@ YR7/,F;;電+>ra] +kX -3:}ig'+ŭsN3g^(Wj̣lXQN.͋!I06i Z}4V 4U5;ao1ȚV;-qG(=m:e73;;Odqm[[KVkċ"EFb# F~` HLbi,I,NؒՖ,ɊVw&Y$p>yϭWŪ[{=U=s}C;zf h&LeNt|YOB^cy5@<$tfږ_e ~ `DFg/8HskU3pVvVUuEUxZPܵV\@'kG9 OE<ү;۱Em˿r@eZW-ebP391Vbӻo(yѷk!<ٕN6چk|ս-xv06isha >c`+h{/{7,6Mj9VuEٓS~-m7p64w_<5֡ T* Lqshuotq45Sv7@Y~vүf[olK`,K`,(Z~PxԶoN$mAwQӎz$NlO|r`˴%Ҍ5]~Zܰwkw~w-q씆s)<;-{'7 klxhQk>-ݯwz{;vjvSN+QnwY6 ?<~wp^ou}Pi<+RGZ:߉847n~mfZI?^OIYJU4nvV<^ߊSۥ.o|9iG;1)CK) 8ɑb5,~cziНɀ_ǕCFU Z=qyxhN,%?5245G6Q10aT? &aVA }ȶI\=X߁|HX]ӆ O(U9HUI /$bV =~+US'%֭œzg$QRxy\I<xv65xZ9D˃UOm,6hFvR`\R_r|\iծZ9M uJLYZ^.4[>t-<|-NHDWY$Rm^'Хmf;qWSe8W 5 cI 1)P򮬪&s }& L;2wWlxKoiZTle@ z k2mEKu:HLZ\K?Us!Ɩe Qgxc1^5u@ah0`s HAhr1]F Ĺ=-Ĕtj5rGQvi;#=Xג8S*k x&$ڶ#=eWrV Si721}[^ħ@TԇYp,&2N:nX%37}lxdCW߮4ukjL 1wZE%y~uZpGpk+{v;u8'S_d-Y,!\u˿rnn _c=orMj$,s_>-&PmqqrukIP?QA+~m޼3m?Ig~)u&Wӯ_z\xǼ<ݲpB*+֩li)xi El}/Peؾ,9"۱iVuղ]m<2@v{?/<:1[˫nhq= U3w2lݣ:J>3~4Ky*uPǐcj8Ŝy}_*o΀$#Ǖ,j>Zq<(hI(dF͘$ YfttiWA̋,*vgI4 򐚱#܁ܛBۤZ!g0u\C4@Hid`võ5$蓮]C lu 0G}>~g9<4V񞼕 g~9ǽJ~+MN9Mk :mPsy1Sw*swr96نM뮲R ,SEc.s8鸯x|L_@C?{q `mq6m]+JA7] Y\9 h A9 Dy b%A rVl vֲ$$-yS2Ws_< @2 ˗hsZflsTPXW![Ў-t#uR)ڥfv J?T7,ugϐ^PivopLu4nPns|7,thp0-}2S."#|pʃV%=2ƫ, cQ5KQOdv0S*1iC5=؇s4'ؘH5G&ii:1<YF6(Z.\iZ{Z"3MdjG@6WY^ קZ.q{ZY[/ Yi e1c([Ƅ2Fkha.Ν; 5 E hs9M*`k tq/u-y4201'Ό,Y_NƂ9ՎzˍLd?/YK0y\~L2w*3w~&F/`d.S4{iCjf X/e<5޾\!k'"B䚾7 ?yoU_Xa.snsngl@Kc`fvTNcpw{I{99X90xby.rہtqy;/@V* 鉙:t=m uȩ _/87TtG7{5 uuHMu< {YuC-. 9=GZy2?{#thhN!)4f3F:1S{M+55"3SgJz٦֕>D?xu=} zJ@(Bq+U6ӀUt}V.E;䩂 "GB(;[5ExՆfGeI378NmgM[v, ԺOP;]mUh2oߟ-I0wy: t2H壌lucx' sn27xKyas6u_r#-K`,K`,nh*о7U=~ovCk'y*m2.8y37MزEl5VG ߪ_0oC<52Nn{͖dNhfh9\Nh 罕 hZA}=~-[د+oi~kt7CnyiBonlFg/F4[`x{S[KV~s}kƴ[fxᰭƹ7p9sQy;p#lA%}(E:4ͿY0/\ſrGȲ[SySsVG/:e1WN_oEdœ?$'C<`a:_ KMK &K9XT942,Jq''+m t(͡Ѿu9,#p1+V'tL3@& Iߴ8ECf-Gp ^>uib0ti9H1uc77Ԇ*HMj={`p|&܈jzyl}U4=-wr]sOa H7˥t, Gִ{58jQz U<SGt\<00mߴm<4Oz<G;4!oԬ0W[pZh[pK8kwLq&`y/_L~b@:j)k~ɴONg5s(.qkO?MBYpJ\%V$LM~L[F}V+KK@V =- ?3mo;H*:fJ +!md+ eÃDyϻ?\G.zLetЮ+u@C^;iM |G4^D )+9$wE}?K'Z7hj:Z'H#_JsF]P5Сi <]{oVNȧw *-W-Ԧt|#^37ľ@k5K1 , ve’:WX sHC:CTLc7oddyjZ|*(kQ4ΗS.z.i}Zi[֯P1 Ӱqu yA#8c_}il \FL%q4A x>!s`d\`].\eo^F{/&z81:ft\!܏oq5Wۋz.^9wQ :Lsu3"@jjf~t/c=~ɍ|m/|Ą[ _Wʿ,/-F3hhjƖh8aq? OqwťkQz"_ ׳D|aIᑺ"/,]̺]5S+U$z 2TȮ f%wgZH9|I8d[`'{k<c?7ZD`(8 :'E)_jbo.WmLYl->c)n75qFıMSK`,K`,Z{jƢf߽nA{4FM?jSwۉ]>ǨZh}VwM?l;vR.f-l߼}Ps |(S~xs7Zq[?Oi~"`TS݃$QUnuVfFg-]1#얿Q-QWQ1jFt\nŇ}=ûV72mp4}?Ooao7{|sFFVyRf47~o~wVynKg#O0=jˊ3Cᐇ[(9<,i;<04uvEHqfyS8KUvo0ӣ?ipE~(Y-<4.C8yhbU:KnpF"ZȢU71Do]Վs&)p-/ jͭXm[S J 0h<ǹF|47jOd`dCV`@c4Ur|MI6!{&c˻HTmE^IpS99lX˗8 jk淮^l[68ႢNy<߀%+x zD!151yHkW :CqF{r X~A>[(9t@19xЙZZRZ0y`O])Clq7@IC {x=L"\vő'RrJzoqWO}~|%SiSL&9ϜC^z%}y[ƓhCly=~>VAsf\a>o->5B:U|$t@IDATzŗSuҬ`:7Q̛uVߘ'RWiSOly{=YQ)ׯ vR TS*@?*NUj3Co. x ⢉6ܥ:\+pmS> jzBa{`l(# b  "Ph+L?O@i]}VӂS ][ ^N (Γv5RPgЂ#0CP@4mx9--͑szPX"+2cK{h+s=eS'"N!<&wAʋgϥ/LY)3@;>aKV s_دk#\{ +2t)D퍃DGi+{UO=߷~k["2rE\w+7~PџXdy vl N`lAb "|o}_iʏglSkӖ *r{Ce+9AҾb'5Ef'a@iUn~,MGӵ:9SbEݬkd6e8u讃ku:Uv:ʋsn< fMhvK_Rns}v^l_;Fs(0xڭOԊa)_G.7/S-2\ j@ht[9EN9;͝7{i7:{Z/Ml睦0<{/K앗m)mӻi~{uwٻU5]?N;;Gn)8Q%`ެF[|r}9wLϗ__=\V }y5s__)qQ@2l'>G}z=pf9l(y77jA?Nj>oZ>c2 OO.yh5x#rC6rxrfUh!rd ݓ8J6ou14W7)$< w*  YzqU&[m 㸕zcU&f~UFi ,"n%W0<I3a2 Õ7gS1ʥZN=t )W8_F %`y;NV`r:$ u 7Y9r`G8$xjh}ϫ9׉E_YIr2;˽Ghӧt8O4JҢz4nh_<˯w*$.h̏F[AHOmc~|/?@y.A?rt I_?,~[7*}X"-@ ]\}':;Ж$ھhOx6n2|6Mmʧ>j pKc~jGP5Q׸µXV"mh?R7 mPg XRY?4湦U`Xe!g a~4YNr^̟|_U 6.)f<]y(ҹ+#Bj+>!YI~xK;mj|`mlFC#yԄ܏?;؟)D>u@@RY:z`g>uu,tIo'J: ;"3kot3pZVs錧N-y  ׺'/M6g_X?zl x;(3{ھvdGR!+Ual -W'/eOi[ VDŽ8 ]d>`g\̮p?K)~ \_ _ aZgc5|}!_ hF7g`ښ7 /yG! R9jF݄O6hǬՖ my0Ugn8 ҅ 1/x5U.ڷZʏ/$Ǟ̇vH mylpNLg7x}vԐțTG˝'N"{+'\,P<ԟq ̘W˗= 4u8Y)ٺq|J-fGcly.yCN#*&٫VbM# 8s5w^e]A|`;JZ2^XWѪ:{d_P۵hJeԺpi2U{ /_P1chQ>+.4FZ4HC=,}IPWq >Ds'Z݇6Ӯi_X:T6;y0߅9f> ~ȅ= /c/?< ?Yc)Be@w]CIc~aou~rWcZM{8HB&8aq8ʑC?2DkP?d[N>ܕ^y-3N*U 0w &QFa{ x$zF*-"RM]@j;7 4G*eeDWSlƬg͂+Pd}bqaIOWur .]Y*֝@B? z,f @J "t˸eMy*Һ&9vҒ3uem&,:7rT5yr&5\Ds"b|yk= Fh Md,0sCzB]0N{ϝy /v˗.bpLx=j===!u9|xTYxց?@ަvY,x4QޟH# }*ۣKlc.GQ}<PGP+^xvo9qa,4$RCdSH\˽O{wM[_[Nj˟rzɣ}&ՆgddRc{l Lx'O~<?P=S.uN6 m/Waɜ䜙kY~ZPlG+ֺQ ޴$pm}SԞ*+WmCM }#: =c2܍S) 9!E4;ƵwBGbM ز RZ3/U!"oH"%7jydT^rf<;iCs1.tfY Xgf-^c҅/5x%UuWК@жeUlݧ'ǎ.aΣ9!_Iv^vMחYPļD]su.GxwUCx-?Jc Ίejj@l<) =YCtp\yq4PyG]hUԎ!Pc? mܯ-Ծ̐h3^+o//`9ڮZ &k-[.Mv-sy!'{}i@1S~WHQozM6cq%G)6ALǵu-l;;s/M p^C2~5T>mrÚ^/hnpQI{?i݊fZ*b/4코oݘVeSG5;?*[F_tf5vi6wa]7&khit\?1=7-߰ߤ=ַUկFsei2[Yvy4 |5g .O7n_o826 ke~FwۀAhI ?=K0A=<4L@݃OZԀ7?)[1AG5wj|f4Ceq3&w^^|#*V`@ A^!R6rCD y j);jtU^d&~4w`[~i_M oWJ:nOߦzjI] 'vY1؇!]@C0_uckD\q&kդFd7L|lsl8qv$0ɇej^uB2z7P.T1,(l1xmD4jnc3̻d rvƩL*Iaf؍~6#{g^D(x(k)mV@]5ҹXheʜ?`۵q'ÓU5Lt:p*{_-=U[g\R6h9}1_ O )XNoEF4o-X}]w[>r4wG|(Y"!bfN~>Dyo+叟jxecFj>oIdu˫W.'kB򼫼-(׾ ʭֿO#th[ݵ< AImd=}Ƚs[wdtkCί,k.EP:?+0ʐ>ĺHoE>k]2]'>]M!҅SMsKcVfW>;oݐPu斫hke_*Sʲ \F8X98wLu.@V++{1m~ X2cE{'U56t3چv2^a:'}cc3Xc %0Xc N @Kng_eYa=Z+5~˲{(ftz=G7oFa97MxtR/g Cm$qu _(7U>ͭ;]NxێVOIw+{'e7rx.~v{W^n>2vC?ݔ+Y hn/տݞc5..}i΍xQ;qeۗo?^ JO?t\^z饬-p~Y|Y'?O(lFo8l8~k_Z瑎6 7oFIO;^iwqM Tcdr0k@n=t([T#2Шu` 8RR!O%f:!}9ܻ);JXoR `d]$\i=\" N˪?հCWiuu/to](C) $aYW"s`GGBPk=v 1Q4YƦ~ͤ 뗑HK@. \t^'@`@3NG< DVjbjLA) 3{>9HDd󠰂al :ڧ8#T@Vz`_.g!g5EtyGtƪ U~RcXZ/`JQ+Z6(cAxNJMW.B= QS-Z /R9y@WX0'"`N#AmNj|(Lθkr@(QqPzkچ\@b쁲I$?4RuǶxI@u\S6MƵmR\@:6W0s]8e\Uʵ6)J֧ Kϕ)< ,=Yjڍ>1XQ,?^g"I& .s`5<$aEsSd MyO䅇:uuA^ 9bQ+GGa`> !|[oMKt~A1Oߴ|閞v{nj&&RxWw X~ȷ)>jz\yǕ/!OJia>.Ys֟9?hu}s1`BMsOgP mhԱ}$XYQ:*Fä?ᒯv꫷Tf KڍF$\4(fKFu~R:'`/SxN-R \n!k{#ǔ{Oh$2gs2KmȌOmfX gx9}&djSfM Ǹh_W_dt-Nw:R.huT ׇɲ[Aw%3̳@YL,U>GΤ_}Hou]w^ͩ * ;6̫/~U*]սA|vhy28W}'>Pz?z\})>XYwsɓUV:Ȇc~YWKu?`%jy]A'1s9dLy3??V~{IKY5ѨF=O%u>,:F%1ܽDˋnˑvUڝKuqľ`y=mVw,;ٓ:bF+V}m,`[-3|_Q,/iW/Okִ0mLdMZ_eayDZLeO;1?u|۴X&qS'gK`,K`,klk~3:n|IQҎi'i3=~3}G?Q^|O~W/-gΜ)YG}!}K'r5ZFu(_yM[Qn怽w+#n{=S;CݱɎ翟%z9t0fWcx9 eoͬ7Yg9Mz6 bweZν$7̃6Hq *_zaIh:qp8d=GKzA`P*ȯ`BzșGqGRdI%yߢ욀4A]YIP3>uՑVUu֏N}>n=8w3Ni[ I=.Ye?욷xwmwD^g~5eP%z2;v|ujW/2&\Z.P]X.-}?~]#Ji)k宲DRg}(~A]PmU $AMN?H#[:B-;96krq8Y"֬@)1; QS2=:˾m42.g+v9x\1]}Wuͽ51^,_>/Gj߰FLƠ$e#x!*^'>R|/I{d#nsL"]oM]\#cޱkm隯dm|_M]gO;.-Zpn=ON6t>#|9vX=6\xy}ɤIGmM'؍\7:O\&~e@YKrY{[gK`,K`,k xMdw;^~ QVo5͔}oΥZJSMv-k=5 |8/s;2#6~v,2~-!s3t;gI˺7QcWe?SZ;Mxn^7:IOe}2`m8Ao~;ɳ]RϜ3͝*mkg;+0`%8FAK+coO~Zt05F/~;ӳ><4:|-~ط۽|m*gE+C^fexs zL= 䐞2s*JAYḡ_R=PGT\ e ڶ20 `mSkkAj:EgvMƚU0v+^-Xw4H"SC\֮˰ G3&QT(Ozk>?~O<G8Sg,f.h<|]əWddTWVnf!,cIa}T0oL]:Y:g oz eWWZv2mS,*~>,>.ryYf{5dj@Yj hZR2m!XE&E zy'ˑϧTp bu]!}&z9q_2&l.Lr>5naچ4 pp,jyV> Q \)p0cq i1γZ4^c[l25ɓ1*\ZRÛk˞[xaZy6N:|cMKW}5nIsؘ F1qf}Tvݛ+CYe:% y4\ۂW\jhC1Me/uss-1 [S9s~~ uZid GS鷡0s~9]$\te(:gt|wpR̽+Էj,tn7 NnqNПNҋvviq&hjYe!Ϛ|ZIlھ%$c4[-~⍑e^:o/dX*r/p?P Zl-(E$_4KI]w iNXXݸVCo?=w0gi)'_UkeI;ko^pL_㵾*ӂ.} #x剣vG^5]l e]_|?_qǵ/ue xfockouMI/le]ڮ#?AwKl߭MVv uISwflU^|)r'ֵG[zGukՑ\`KdrUQ 붜G/Vڗ2Akݨ'dȔc=-]4Ez;a:|ܗXc~pŧiAlp,ADAڨ1f`yZ{Nwuo<{L'}!},}^"IRru/1}{lK`,K`,'no__%e1>HFI7J&ҭ-9ɓ'E͕YvJ~<rVt~4wh4Fw+e?N{/:z>|KK#ek}1S:;Mi^7:ozn~+ٷ*Z6x٭{GM_6[wv[׃7 in;Uxo{akc+{]ߠ6NR3a#}-/׆5_+0Ϳ-~]^ m@/r6ġo(Fcp@C79| Cn[F:1 [G :UbF>5 *吙 WF`R e<:7n–çn|%C|J>KLU(C,d웇s@p ⵥM6 -+D<2Mfܚ#IZ]夈i,j95P67,DcnKj"\49G[ڜ{UG3@IS1`,kx Z%WڞKC_T | `} -0z=$ OmZc&HI!1?(G4, hmdis+ws hq^at)"1kZwMmQ7z{*w :VRs4kPG!^Θ 5[OpZm!^;6W|"{fJ5_#|]GR+e…;FsɡCM‹7K˹shf_XB9=^Ϯ"35mʾd2YZu('ВFmGvk=ͮ Q(Nݞ-iyH9|e)JUS9~ЍXmԕm6fl>Ꮦ{牰OTW۴&q5(i\[%ڮ ጱ@aڧOoWcRnvI%Gs-Ҁj?vyR%kYV}#Pcukrp~^4#O kj4>SvLd@2">ne76c %0Xc %0mh٪~?FE-ꠚ eڣnaxݯz^[y4~W6au@nV>4f4lP%)FZ k@$27&c.MxM>m+$?%H'i#_\} VUW bAq~d{ 5j@NUAy?ݓK8^zة^7i_`ߧvq!rise@>21g_ q1մXJ`i+ɼ;(r.-gVicr78u?}I[ί3tnџ Xbly1i]AQ2GJើMI79%G VQSԤk+aC`TZm;hܼUuv(.W.^a6>'͋̕Y j1qiahxB3 <^#~rⓘ*w}Lg;k _s?S<21gH6_ rs}vv$;} ~uJe!rYweAt<1 zj0c=>!@+_!G 3F~4c~nyu7g8itܮwlQ4aF_6~YYNt{twKo|﷼B5ϭ*]|KwP6܌3?3hmZx xt/|<9jiO-n;GZo$~ᵦwۀrZYVq@n=: zxF)9K^(CJ5Vیڇ)$>rr'QU.VCCރIu\#K뼬rq1HCU fzKȫKѦ#IJ7jZ@OpX^8g&9#AGoCcSg~V[`^b'sћv`?sT TYڀvSvtyGA W@D]zh*ƭ %wF-l CWyxʀf#+u|v}`ʵsY3ڴV=}lvt)N4tB/`_~|Ok!P'X3Ī+NJn{K!zҧMCzTםmSSDxI` p>}RfMd6ĔSnSD6šԆr+^(;eµf{Vm]J_i-w Աrϫv;l^X i339|s/-@5xZÖ`K?sϸgī`'y<˾?S>^(k/q1Gu &(c2"%gW2kBEA=|bc,}z~B;DH1WBOo`R%Uu1 ]9SĸnZpOszW<Els]o9#r=1f璫*iP^k0t q{;6j'\!eT7Aw::\^\a_c~P"a_;[ W*<{:}TŷuiܫEkՁRTN/{PU-- 2&CF6 [5GcmJ?cf\{s 5`}UZHK:d;B\alY'CWj]6.m[|.φs/r eEGEi‡g7u1 8$ӟk؍Q|u=l<}!e~LE^ȱ̦ ߽{)d{ ^F9W]x<p^3 xvbvV 6U:L{]=r/Ket"=ZYvv鼆S*eE@}ƱԢFRSxѳddh@o>4&#I_)F4O/鳮(r{JJo7 -2ϤkMFk?rAjG OK;W-~y}TtK64KWχwqH|{[Gz5zuaW,vNTK 9)²OMY%ti6-oj:Rr tMhIsR5Xf}t01k풲FlK(i\y6`kwm~9gNS\;xGٜkoN&'vyV#:FnV`?ۜ5}AJiC`biۡeQ,>{)-ḾJKP6E9%9r՛x[,7*/_[Ky>eIcs|rY8geaVy^y/p`,0NTOod$}Z@"-,&OK֢騶$uGsQ64QG+s]"QZr9m}X83]sO&{cc)eu`]f̻_:kf@"q*q pS{گZ =8|_{wPp*}ofOdO4I޽例ϖUy2;>/K 6ze-MCJlY@yWoGZSMt\D7kC41 JjR@Nj|Lդ ƺ~6C ILOtf3S~3J"\l(D^f}vfLI~|U٬Q f/S&tr2P,1ǧ+8]eϝqml7毄ezSWC^)s xq0%[s-Oؚ{ T zyf*H ^2g7r"L}Y $\P.-sL977d##+#1b[ٗ;ח@=&Wi9j}ai@>6뎛JGyQѦR>٣kJ]ILKB7H?W?rQ+ ky5hy{`ӬwUۻNmُy̋u\l"PU5{sr#R;';Aoޓgtͧij}5PQk^!ysc>THK(DŻ5bE\ϛO70@O,wNϞ%^8Eƿc˼3:w Ƽo=]QD}6[T1Ǝ2sasq׺3+!B+_umEA9Y}7ҷS X\^eMsGs> ޣ=ɞz{AN a? էKsI^oa[~.'<`Sʇgc?[{c}?\"`>;8̨ LWhqH"ߔږu[SH]#xhgg?rSm`y(Bt+\vϱ>`oՋ3Fڗ H^ycw@N`4$bmp[ {P%E_$y>Ų<>7<LOãlDt=)c1tw G39Q9*a釡_߻vNީöЇ>T>.h&[+ը ~^hSȴSô={7 ?5?*N<o2>LA^-<}\|ܭ=3타y6}>,aCMVG rf:ޯ(6 AyvCi!gprvj/^-rfoͿ)xe=(r>R7(AxE۝[/ F YԃuN68 h)APYlWd!S zp<ƻez8}xwhsp!=l=gs!Ox}k |=dï iV"8^QZH^%l`ڱ2i5ss//䓡- qod+'Z(3 qkkv=0xp@;(4 b]z kƕVI\}^{yN3oL8pމkC{f<^gjz;ź~Ȁ^ྴ43؃{CeU]<9I dcIY]UUJ}ͤkŚ 6!gGuo qsO˯^xs`iϝ- @C,|w=xޕ'91$d2^bSďءYY\ ?v:3^45i?`ˏj(kb4r mb6q=;Oac%k`8Q <Gޟϰw2koqMQ7*a菊f/خӴwaa[KoLݧ?uzcÔկ~|0Lk~_?)0"0i0m%ۀchr4X~ô_QI˼cGwvseǩ6Ȼ|j;sLݭ~A'kG-^Uwt/ tM>|?~yK~monZ'Nm,;EQ?,/!G [)c$쨂a%]j6 z+O.F`z8@N"М@;@~PByYρ(Ȉ7xjiPmej+MN= 8-}COpۖ]ŧ+`kncqx5u|".Vc5oYU S'^<(㮑qZCM۸Yoyen6YVۓ&*!@e&UV5UR^|ᅵy$ &Dͦ'Σ , L>~n6-#0z;m3D&V/Lsž:d%R!ΟW;WqYeliދ 9f@OYm;66-Is 1vB֛64<ܵK]˔Nk8 wyd3cs#JEv6tF$/W>w^Ҡ'[W:*o.hzizs؝,m فv+X.GQ\uY aν/nq:V'ܐ 혭O7-[Z%ÎTy̧֭,\|!t<ޢJ=Z3skƚbn{|4?q[\xT*6b׆ϪYKH(oxх_Ye 2FƎʁX Z@K+9\_zmM il -_s}F:ȿcKrYfo\3: _PX`ghAПvl?9|WY]\9> Tzr `̹Di ][qLڇx_)m} xV9z7ų!MkeBմ4>^bLmi{Ee|"LՓk1*2/ ϵtWV/\q.n<]RӀI~O<  %n?,b?޳|NmڎYN5㮒=y^й=EI=>2WggxJ E^j˅q7N'i={gxν̕ˍ3}aBN[%`߫'kӤp>SB׿Q&c]ô!rդV|zdڪ&x6U] ?oSBoy{c࿣cWҦ'B>5ڐ+sL¼ ̛(WWQ Q⥝`L5.1ž2>']cr{k`xx7G>G3 04hX6e4T'~D00~9LNihnZ%(cڋO; ôm?36~?9vP?,QC; M} q\|iz_d>I{\}0퇡GGZ=~o KXݯ }3|=8 ꥿,loN|IkQ0O h9`9iéz˜h rA!QCqA^Frhk.OO>#11u6-Y]g >%iS.O*V=wr˼PӅn ltsL U5O;>}8K!BzMض+z`w! ^a2Cx <2kD"  0@aP־Ĵq^[lpoZسM,o5rۼQoGϰI̋Y13gtw0GÉ*XstiDճjEͻX+,8 vxp㾣K-M@(|w}yfU]y*;֮vů*R>=g_=hCa+>7&BQw'a;,}p?汾z1Hj*&~+BAW e Y&9X!C}'@K\En?C{e: dڥ`k ^'Eַ.T/p9/ pXSg|:5[Μn揿l ӭs#B.om ZEOH^l3@\C_$^Ufa`QJHCRUYؽ|t61Qa׀,$\CMsi'/?W7nxīs |hٮ-=e9|?\>~Z>2OFǶs>?o2Nۋ[Ob*͹$>FV&W<]|#彿[)5] Qe=qIۚltN9Z`֓/0:R=6ٌ`_;#͢gu6~y<$6}Ay"b>4Xnej~gm# sz/rgKcflocc 50Xc 50x'wÎ"r7Æ;5;ja臡QoCNqOs|^*wN2 4вXqٯ}(yg=̭ۗQA^sGax~mgXQ~ڣa\p|K_'ćMZ^GOrnGG=ߏ~< fJx7YO=FjR~)0zwX8<yQlq(8 r h:ҰлONDpOʻJy4[l]K^?rM< 3iʰɡں1NOlE=$I톴cS9۲_q >< o22~0bSӏR{搈S K:B3 7 ?STC񭥪;ۭ {$6q6Hht}UjxCrNfyٗˏ/ƣigt=~:3x^29s=ÃoLIR4HSҏsn949%JlP`%m iw=Е4dl_AW&1|̗5ԯN:^J~b7V#2YCzl! p yk[bCOpIGDyEdl@i0H{j7^Y\:C3iNP`K zi lhZ6 M?˞2y,rx kK~v\ ƶ8 1˯{Ӄr78~/B1}xg3h,4s{꾷793?_5k3З0pVp X4oobښ "ر!Л槷Tz6l46t/e׆!k9/b#rG<Φ`9Vy[xi[[x\r5^7\7f.F `VɆiu}Iӆ8NjYqIH $cCz~,ũ+jɡ"|T02?yG2@?RYM`K?)*}1),s:Jpg"H L M Y+<2QV7nKx\w3>/Z-7nT@ k(+K^ڧ1ݘ[{VƹK@ =-p͇OևwGX`JE[$6d$.L$;gu٫Qqx&<#g>ȡ:|・,oyc Ҿ~ɮR}+Eh2_[('_/^\y)s˩ӧ\s\>1{=R˕?Slzws~է4u 7ÕTwkE mi7:wV}2{K_O;v^閷L͵d,о\9ً|gB}{G}Q{ |XޞD.^^xVSH?1,#z{h2Iy#{u"Y֟'{[?/qFP37#޻6x6XqIogWmD9dz[~2s7uhqS>Oo'嚼u[6>y-88V~rG_yb@^M@P{)y3ɹ <^Aႈ^x8dy/i )1-EvJ]YcL+_mmF(]?߉ei[}vCV'mZ'wKszE8ϩNzH |54+[!Ru3|׃gh<ҎV+?)[W^gڑ`%0T@:k4m{ XtT:G|38u-J [*7ڛ&Q * /:e o'hP+(7ģaľt*`dR/=)zr[nZ㰥 ?a3 x«չ2'ٳV zE_:qc;}ƧYOuX\u`W9OKk0mot%@ү~c𡶅 uǡd?"oe/mzlc&3zRuOϜw* MFlɩ̇ cTg֏yZ=)kӋ- F;Al>LNm\8ܧ?_or70{,AG&;k^^f`~5ΕCnwL^3M=8hVҎ޽2/^P-{W3W>ruczD(DPe{SnLMg ^qwMk]pOfM1VUN:zU89]p/p3$)r#Mm-WKsЎ6[[|U:~ƷWc;o7Wu_){j<H/~SRPz ,,Oa_zgqN܋|Gyl^k* 5̓B@}Hyi =-[hMj馘z ezۋGU΍pLXH3{RDMI%QmdK,[Rg ܯ7Ozo*eZBxoUB8][^z[3]jN[C^N^YT3Y@IDATdx:jjQ۪Ǻ >9Mdmќpi_FDHH"{FF|M8Ⱦ3 ϩ3` uF311D!$v~pGy6RV}% GR{uՒ=/meOyYx5ww潾X5>3 _n =E;2z ZoMhZ-}i#г\^eշXS+yYfh}ъYG 9Uҳ ܲf@3Ą)x?WV쥭h: y?ޭYCAR9 &}ü6 .oύ%x n2捶W#~ں=L|7΀+}gnx{S@OUٰ.@ @yc| }2W~|-6!}lL4kI+o^ˁiE-b%3J5t3XWnU7mis|^/^tr9iT3K׹ LTeBEFF׍e [;e:Xmhb6敵^߇<ڜKke<[\Uس<{/QkV؟_YS։'TdճnVI `nbƵBآbuͬ+Srmȏ>bZ~^F[[+Wj=^^a%h'j+_ b{\-32_'ܪn~~=zՓqj#y?m Zv_^܇eF27}|+/ k+$s={,gJ2K2W̫zg /s%dTGy#XTev}tfSzdH\o*6 *[oSs]H$j1E`4*/ xGFl^N}=w:UeuB@,=յNjP$/pܕ{[߻+k`k`#^@ݺڭdORk-ޭr1(I-[;ǭʆ]eX:x3ˣ^-W~{;Mt߶sssw~wLk^@Aay[ga;*Z8>__=+~i|[y=?_~;ԍWk{X_q,_G'2̌6Wxx!Y匧4aS,3e0ߝ$ʌŋW0->ӻ~^g 5R? ?c88^Z׋Jva1t"@! \yY zM:$C=\Dހ1qz.t?TCsf/pm搹0MY1MIb7TܭHJ/m\CB:"bL 2_P'FpwC6 545X!e< D:utX6<*ճOm ڲLp߅*fJCI4e*T` Ye}Gj;mpL76 ևOoڡhtʆ#`J73ƀ(iζ9gu^߶8"MAhZ.DV`ezfLҫh]{Yvxɲ~չx_9sN}Ic9ɧu:{ܪFlҼrXY.6Q*mU`_CҎړhnArc}*Gdm0?*`öe,LtNғMKSβ3׌FPD N9&6_//~}[/7`U^w'+ _!.X>ϖ#\~J襫>39*c(Ő&-YN@!.A*%%VoQiiO0SJ`(,^/wPu4˙lȊNƳ{uMy"^'ODQo9{e杯(qRm̾/,V1{{xW`Oi{&{WWMS_^88X8y@b3c놐2[VA발;D33l޵SM̑xöOV&.kZg6vBpk l-Ikf CY>Hh@WdcB0!mJM|@IJs/܅selp',qJq@GWwݙ7XΉ5/댭k[}c}W5>e{Ie'i'1K֕{ kCGO]]AT>F/-A}B;XRvuql] <%^$LîW Y<H!Vfu(CRݻC/v+G?ӜR}AÎG_kCJnoO_汦mKE'mAƽ9u |B<^-sfzk7)2@K,g3{c{{x~;@tQ ӠlW.?|A۴xQ_co:\&ygA/+2ΕIX{"Es"N4y^8u,Ox6}ginhf{~ fRij6* }|NrʛޏH/B6=n…BG.?qk`k`NRZ&_{>ޭ$OBcXM ʬlyS0NaW> Gl/RϖopNy7-2?8ޝh ecQƾ߻h?d6}7Fahv~߉(e_>Cfs%߰::}^~9FIڏ2hϝ;W~;.Zʍ[x/忬g]^W׀ja rkxI;i*{`A:u5_ꡲP#62=+\|rSpeӻ ̽;+<7&D6OIYgq1; Bpz ;vn'y( 쨇O }#͸(/M?p*Ɂ$ax`[2n\B7rS;;)XI %Ix0jzr 0=?PkYw(afS' كPPねu'ĔO{<_Μ?OW&iD>Z=SRcuHxX`zMLhuC6vS`]Eփ}זaoK3oK ez,PbϬk- /Xҙm9ՏJYTzWYZy9@K/ZO̧rf#?_WJ@2}hX=k3W{2 žE+*Tb D,bz0^N ԟ3g秆]9Ʊ&ZyR'H^_u<h=({6>\u.b/mAR 㑙fS,]ӌmJgd뻳* <+ ~ؚU^оf8c;x 5cV\o=M-#zi L#Ľ=h}B|N\7h_Pz\]Ǭ $__vg*Us9%MA+Y剒oeNtƖi3Zbu-Xe^֙oq{>49mKum\Hϱ%hN`Noi;%Gbk~bZO) \d^⥠+W~P^IA:{ԤFn:vA ?ͅ2Қ )HJӴƂBJmS`JМ4ڻѳA鞂)h4ևq7>%2egF.v^*j)rx9X%]G]BL {O|wkO}\KeٽӶ塴W$O@a}6H*v$mMZ}}}ge҃]QuD#es1U@7_$XsON!,gO^'\5Sp!<4S>3x%Jyy`8_yھeΊG3Tqy>.v uކLXM2$@Fa9r}b:Ynù[(MWBc 50Xc 50k({I!EpBu)qV=w ;rɶ_N|9(Q K;,]~]eX:yh~>,~KּЗ' ^o~oŠ5ţn<*jw'Fqڃ>hlmڝگ0mic݋v0qqf'a9l#~^W5*>*9?adߏ0<?,?pܾwǦnr/;Ì𦏁5k_HctǓCJ~6w }ݘ쑑I1P0! =X3(׋yqhqO(iѠ<\CĪP&s`Uv0<g`!Mb $pS" ޕ\?ɼ̛fsK7\b%0Bo2dBb?['@+"LkݏOֱ'mIސNT ԮIYC:(<)!WP׮2Jyr4ZZ`G8\D~ƾZڎ2\Jp ^7/Mk?,/νTnZ OoL*:7^ݹ}k\{Ų'z2fydU%2DZz>D?]&~\\ XBo~cߗ5bh|kJS5r5?6~75e v +.IW_\X-?QvX[ڣu`,vYSk |СmŻ m9T捽,3̵wLrz:+h= Pt<7(n@So&'AI b8e%ZN9][z5/Y̗\v7LZP^Q ۦ9*ȦҦWD_ Dʏ*q+HM(=$WڻGn-S#/ZΤGg̖K|.sxensuEOʕ:W N<+dwjTv9W4^h4^`ګ6X=_y d-Xz`be!8r$PuU KJoyd/##ʽA‹x f/vm-Z[~lƹaH/iO@ a 3gXZr8Ny r?"4Yucaӗ]M\x3F'54K/YKWd{J_<6U[]u,Tsoo{jrgU m*ϫK.u/k634?[lNϜ.  wO-!1RТ&Ǿ)(w{4mzmvI6ZkR-~,k\SDcg=mܺ[Ecl/4`//jNŽ- V>^ Pek|][2uo¦=}OqXc 50Xc 5pt8)N!v;ɲ;~rwxJͰЍ{_5aN7~q(:o6O=T߷=fO"*h_']?^vNU~;4tiw"v0eGi7 M^{յqspZA~G?}?OR}{>Xcկo|9S0ۘMW;NL'GK<1t@[irX8T9Pe* 9# @И?i\gMNE$ش|2õI?+`Chāl>M_ʛ0<(^~bV;(C?XeJ`4ǘO{H...Օ םCivgdcntsHĢū_U@s~VhGP VE&ۇS)M@_K@o|@+f[y'0S!3A^0? | 1dBj2tWjlkyV@di<-/^}XQOvx:Ѡ@jjl5C`6,KsxF,pƴ@n4uZO\,|>~bf<˺j:g:{~r ݇`߫ĂB6}]~<죻2WSxG=yA/}>#wsaO/*&߹\ʖ|ӿI;A6~av-4/!NYi$яs睗JWgӡH%A2 btw)Uz'u9˼G,g=ct8}n#Vv;s-IXˤԥQ_@؏536y{[Vfj 2*O?*+`/+&W5f#WK3wd(s. H .|RĈшj](Z0~*UO5\)hl/?;Vfxy߯͵w&xqJ3L?zK}b]5_|9n! A֕e@k !~ܙ裏|뙞"[5Ȧ ׃i :u#[>{U}0謺O,`볰 ^3}[}4/ l6J\ӎ50Xc 50X>4ѷd9n?ɾva@A>;xͰtv'Q~OF>vʎǗ^FM^z{vK6շ%u{>G^W_6 skk5?epvu~|ߣkT~^uʵ_}QQ:XFmwra7^<8Ɠ}Ow˷m'sD_88%<ĸkkRAOhLN8=1c<z 0Xëbz\k xH z(^A9'N{yHO}sx&pw!I!Or&ۥ=Ir,7A^O@Qmqk5В+FSorif=uVv]t灴3w=K,1즂Fnq̈#3|q y>xsl dpޅ02c 2 \ &M쁴sRLT9l窠lKJG9mRvx: /1M~4QxZ%"2P'F]3!P`ڀ^QFfk`KՂ2ӆ~Ԙ1G>FԢ DId XòƓA^n,Gm7kˋr94^O1ksOa?~fRp)GSmbO`X@[|W<1J^pM[ʭW^9 {iA7 95!5>㴰&5ٙx .xSN:ެډ͚g~O>Z>0 y(Mcc@_YM5.'#8tU7AETYn[3mOJ&'v/q?ǧX~9Rr7'On\-s3_-WGrs,AݓNPw1}\zrKuߐP^}|w?+WۂMVg½?Y<]8ۻÓ{N nWy6X |I~6U.<쑥^#77k`k`}syn wZ(y6G'n}T<ީp8Li;JQhGQ~y3?4qFѥ2Rϖ6(ߨhZ 7>e8ös K?;#{5f.٫ߨrB^uǭ;<}1hӭ~vwkYQwt4ô{3М|ڼ7nUش냌G^rP&gôsIwylfZAiㄿL?RxkYR=HJN1 %WA P rS=+lxSp: z`Fޔ`ς ~- qu2ot:zQp RiIv3 4Ժ=2x@OS-k`SyvcNOpu~1x!>+`];σm{K뇫$wךeש`enj/-<{ena,v t]F\j% B:Zly?[~e? [unX@-v! {Kԑ˻[}Xu4Р ockF^{o|ʵ/딹OVG?ו[6 ßlDyUp٩*(u}́By?--tW pU~|4 +L~;m0&/0Lb?~ s$(HLkV#U@[|1G OX=}[{pPPݎz ۗEswZ>焎rL2n356liЯ٦oow1 9ǵIy&r/]U^Q٣nk9Xʌci[t"g3EO?NIwrzs/K=cͳ*Mm.gd8[ue#*+1(`'s5ipĔ{zm>3ANR֜4Q&]^}ɣT^-Hk0/?m癵1ImA>4Iuskų hm&/Lx^"/8חYo煵( zy u.7w/~[4\_=[/zԞS7.J"1íUεbyFa7ziEۖ6 f>;ƴ=Mɀ5@.AxОde[f8 aS6j (: HYw4l^GU./+vɳ~E]RGyӧEz|5f_d?m19ʷ F;_.og6qktk^=so`K|s,ܸƋsx zxYg w,ög((aNН>򑏔 36G~w7[yu8Mƃ<,jr r?:XA/ttg16/=ԎB*.s@8H`C|1XnbC$El/Gqe D9pɓv P(F#%4;p^и5;=X +87k$;#Zz 6 !)G# )3"428`z/ dIlj #;( [P]{.=έ73{3 ]9ǏLGzl6_?&G^Ԇb8mk7h[,$2cyX^+YʋN&oY_ytp`Nb].+?j,xφ4+I'؀Iwy"'ԪxnD>u{m|m'G=Йuӵ9׭Oze;r P NW ) mdr&5 TҿzƷtxt~fւXm#]QzI4poaoq1*Dz*c d-f͍IaʭW}nwp-wX^/Ӧ'Zrō}pzj[} /Qϋ?idpOyr [/u}]#ݑYyǴCƈQj#h}G?{_|1NݽHqOԝ] 1󒡝>zPR kJwd~5]Xz}s)uWjXý;ӕ@!XSrsM=-瞽u=g}]'~!,SxY'Z7Z̗nUSUY*b u'I_*x& 3!O}o{"[JNDנsDcz2aӋ>{}@BmPݷfm>ܾG掽4QGy hߴ'M߾~m`r16/}ju$+ }ד3OXkX;׺k*y`Mӎu3b5ozܰ$X3in/n1޸ّ<մBݗ/d|7zءkc~?ۨ;~3uW^x7ezs9rߺ4wCq-\/Y;ovzۄc'q3|ySl{~V7Fw~|-zVӉ `~v)dD=ր][ﺆL r0.2π+~. GyVqcΚB̺zT.K ,-K ,-pv'>PaYrC)R@IDATye~n7QGI>n'9kYgI5,nx\z?ͧP~>-td~@qz7k+=Ṇ̀,(]e{O׺gK7 )3uڼ6)OrHNZle%d6+ۇKxMI%2~DІvVV*ݾb/84l[?IKve0#?>'e;N)7m3`[ntu_{Z{_3O)rY60g>M~C ]JoG ڟ˃wGͿ HQ A] *+8bU|Q(`dԉh7o4[  0 ߾mɉ3V;j:bH䞬qvO; D ț>k JhW9l/+Onxm˲|z;T8E>/HIlM{cKypK^_gCT1,iPx +JZ,2kᛞmXP2a5@ּ(͛R=<{>e^ukRtV0&pNHǙC*?9^2)ZFl8\?NݼxrN vX l&Xzf폍}|0H>5Lc.ebaʴh[Ww]kS> s5]y]N^ͳ=|zn[gdl|BpK |Oطq⻬Ͼ觕{Zw[uCޡ{)+J;Dܠi:=zć2i?2~?$\ yMQ e^} ;g_Jch;=|o|(F5=`K|:{///׿ c "*:NyE,6-qt՗+!l5=ì?K=O[֬gq__JSM"/88|rP/$'i3-ye[7i,~X5K7BfSYUhYj2*FO|mLh4:l!D %k{nP^@7Qs 8)O pC+-IV>. `㦩ɠkSݕwW{},[`=,76TlkLʖ|.$u/&*=}5 ,0MZ7>=&mm6_@Q=o}f!` eՁzș7.lL7ON#6/%]tPN U6NW5S;{,OY{pfYPOtOz <2;[æn>gG趺nuqb!iovSvẶUh?ڱmlabԖdl8O֏\Kj[SrD&P*zs==O҄O> FHx}P/7֡O}sv 3'[ PXŘmNғv׻ Iyh!@KAmO\>޷}[:#(TU9N i0]%pz{$)kcfv ѧ)Ka|o~֛L>oySjyAނ\@S۞zϽ==v ^ܛǓu7jn9'rׯ 1s42gI*{O#>ޏS1q2T?z euD+ХΤ}lr`ls έ|w&ݹN:Ejrڠ~Y34ҙA,M]S|i\8l;es0c0((c?aZ3Ϝ*b];l5cy[W2~,NzyղjSۡ!c鲮0'qg?Wˉym$s6gw{ѯe~H:s~}Q,irrო(ˣ&,NqI|B% 26|`ذ1s̩/: Ow"}=QrAI|kOdot_u_?7yV% 2՞[jgfg oΘ{?/+/vyN/a\9g Ofih#Nho:c~P?aӠsX/3A<*8]7aiXZ`i8; |8;aHRЊOSyy~ ?,ZN~6OCL(vZ.^އG='׷!?ӏ8'z؟I*;nϒ K?i-KacsXy&^&oeNZ~Ytv\Iinڲ?Iyrf1+$U6q]f?N?;Ot1L&=+{aofտ⫯b=k|O coXݒ.c.oto*X~g+gW[35 kX{I즒M&Lvz2/'voBO9 ᦑ`b a i@u"@"Nȴ:)aTL=v2cr7̈-AXLK?)9*H?5U`U۸hޘ|;$T+]=Zِ3~ rSo[|B8geSܫ V}‛<@%mE6=v)[^{>^` `6!&ppQd]&2ّN[CGʆ&~+gCh7^KJVn`[(}fZrkhDQ @/_T~]ƍUqy%2>x*` ްSˉ5|o )πpڍ}_ G= 0ӹC|Vwn,NZߺkt'\l" ؿTEyll#gASN#}'m 5H9Z8 iiOA3>D?LۤWGo|OВF̕S3# [Ii6']˷86X/go|vSJ!$1iԟ)@}ob竗7ŕy]], }kC᧫c .O35\{u>]F| ĞR9(??_)K~[_Z;?WI }agabV@ ؛O0GW.._}g~<]rDgtYO{ hk[3~|gŏ>3>6%srUη煵B 6`Cqppp OQ%ʻ@3oyv85;8zc?_պ2 spQO<O"r}v|RgU~{ϫTWZ8~̕.m jfֵ=A.gx9`}@N8sSagdk={V&#iFLi^7{&}U'07<]x lU|W:M~JN{sΣM]NQ߾u{jf¹n vdvg~͋x|5?聼8U{{{{vM0mgxƠ\[ SX`k`=0޹2Rzc83{D4UK ,-K ,-D ||M聢G"umOn$sR<2m{$mgm3 $Y~yشʟY|l:a@Kֿq^&0=qa/џ~K=qz19Iq y~)s&j^_W?O~ާA+套^>O~ha|_awX#fXNH0wBt1k_>p ۙ,Ӷ>8xR7a 1 7K;l&M>?GⰗo pL37iæOv]!4؎Y.n qHeM5kly?d3]67ZʱHЀ"%MQL`_܉Ek 3zmef0vN;4~$Ƃ:zd7櫝1VyMkO Fގ[VB0Q`ل:m ƀK'Inc#۷saNH uۀ4tK8c)< cVVT=rsBg ڭqO&6q>o@~~ ݭґB$Y(бvs m+@Pg{œt0󳖻:~bUOhm$瀡+ˠoKɆD駞(f+p<W i?<:~_൅MM=x"ys`K$'ܰyLMN w9朞h n) cTo jl2x<#alI$`s$#"me5@[dA5AH(W !.A~fS.?O P.})5)L7i?y7Iʢ+R[bl{R%cizLos(rO`imcBx_#@KV>@4 6ϭvK%, }f)/\~@MeNt3,&^O[4>"tś 9x |Bw`իڽ3-/AٝGu=k%h\,Yr#smr*\`zAwv b])cN~=l xO =ϧSw`v*GO-- C6qvdn/A@l2Kv~JYԾa&K21<4|޸_Cw$;-x(e o/rm% m䳀A ƥMejoZmقy둑X]R鸬3gModBw&7fNgO33S>-+k镮Dk٠0DLuOݹ˜xۏʺ}5h+ 2Ӿ^`LiwN6Fi^hsbms> yNgsYb각>/0=4MXr2e<[ĶMH_0e |)zOҾ {< ,xұdy:y;6F =n&+2`Ҝ~mYc wx3;N޾0|&?w4/M},#\70%s=c^Z-2 t)ׄC{?-a \3sAL&cyKygNJ}G~{H?̡܃K _Ng k-m/ug׾:H<8/oϴ/ݬ"gxg ڮtRe!| !ʡ tsN+a[Zׯ{<^p|MwD'>-sE9xu`%2G3Qd;hYK ,-K ,@XwRۢu8)n7?Mӟ0'7kӦ?ggZigZYm6y0ЇKrO$^3t$&~\٤~fyuÿ?y 09|Ԑ44Ciҧ.,ˍ,x!Rm/B@]!d+ϊbEłmRѓ,/PTM蘠+?U*R@'ire QYSE>d+hE gN{Zё.zS@{?śx)@$\6B}t?.@:B|y_xΡ+zwXw#狀Zq 7/w_dy[@kT=gm|Ӯ{˼x< @{} `c:/JN8v:GdӍQbuju3k8=ԓG )CRJvhy2lTOdg.JF@- &cM"~ H+&MasxC"-7HCڮq}tmuځvM"s&z˺܏Mp;Սs-},# ?I3/{lp_K_]\ל7Ў+INB9}|Kd,Zy r `mo,~unL;/H]2OPXη!" iZ;ȇ}y߂hWx `/y&M]d/?KϽ=Wz_8]}೤g9dA|_bg_R}9UY/8At> NqDBO^y{ϻk3E?\yڗ>c\Ê?Mx+2-CwC(^ǐzQCuU7?<ؗ__;pB/'KOMnfGXv+?l()m 7C%!ӄ1=Ie:PfpSBnOIO6إW T4Y&(|6/DDЎ4AR4ϖ#׊x#6SU݄@؆B7HQ$FvmC:~9E;6ef424>͛ яMR8rmwٚ]\4L.=@C¾#Q A $A; TI>K^AB> lw' >`pHYoϜwGt>+ؑH^ sk ˰d>fyCjgߚ]] C'W  ٹmqݺ~ɩh7zwEmkhF02TRM )ed%=:tLϐR~hg8~Lq/9z|yG[咋,vie iK}wr:@1*'WWvg~[owZbHp.؞#zmY@ˋ\O?uXW}A0 rՏNXY%N7/]b~p27C غ͝w1 OM[͜/- S؜炖dؕohJ9qlϭњF?D:'C|YIqtl!2&!y{I C%hp}~rCjƺ@'A -]n\6Bĥ71A~NCM5>!8Gt<١QGұҩJp|>Θ51 7\,2|÷͈}<'#Fɇ ح0Y2L۝ߥ5eD pp #i2*#; %HK_ѱٰ'- u}yoۂHלz۵1|H2mb'_v~~%?e+v =yO yQx]u{5N 9N[iˊ(Np0 sxI_n[}(|.Mm ͘Ң=Kx_HӠ`{i1u 2{㳁+]x0"~Ãy W?YuFmL#evO3|S&>79?]57sAR]7/0\!h&پ x:;}B{O"k5Зp Kzub _iF2 |EٮY)r;ӣZx{j1WESQX2%xm7{owmK} O0y_w5^Np6S/]0oOnzbi@tΉ|0y'\_݅ dscW{Re;:CȺOH`.BE;Of]ǃڠ<9͒O,NXL% `GGGEK ,-K ,-߄JaZe=JyƠqRdyR9q1o&d?ɡE䥐y,ڌp^ uZt,eHً50?yu9qg㸌I]Hz_e`ɁLDŽj;N~K_{~ c;PNSQcQ>sCp P~@K7ݬr6I&X&Mv)hSbE:Qnfl mCŶ5onn4iI'bLҥ% ofvMt9FGd D9QPN 䦜l `#9 a; ^@x o7{5 DC9u" ,D)H[ɋ2_.E6;*Od!;;lVlMz ĐW2XN Yl:}I+J'a5Pu= P .a{jIW\C`fg69qɤf`|W 6H3FpO=רeihVʧ/#gI-9n{g_(C1R>U_Q&*s`R]n:0u 66ʻwm7[_J{AͿZbA9Ұ25T mo6OAk_ t%&NSFt.ilK7Lk5mσ跭?. 'aOܸ cuRuJzokk@wvnvS׻[ ^$Ǡ|'0Zyǯ~#?ȕw7ss3ᡉ}Xv D TDyrʧ8Ѳ9b`I0&{s!TĶ/ƖWſ/I I@Yr?s tpf7=_A |@Qp )_~>\ e>r~+^ S80}UO͹i('|U8XPGG?6[1d=pgNoii8\[ #g|=OxNk7hOEV2QK)?5>AsP?HPN[ނøiTk}~dE䨃cdlX&^2fm_q>C{mi5g=dVc{?ŭm=po S55A⒇՞Y/m.Z+@˘|#`pddCKXS-i0ZCRS?T [=mL/y0 YƬP/64&h9{3>>{Y's>x`xzn' Yk77jwv813#1*fK>&M-2S4>@Ss5>Hs"_X`Ɨ1_#O=Y`l>B=IMm${b2f~B{Q_h'IoVܼqRuNSR^,AA$To ͜_)hށ Z $z/:/gLԷG|N=5q{\#'ϡ .>8/|N^?I)|?}~8U̗XZ`iXZJ OD΍f((sgnGSBOC<|w[zߛԷy?>Qe_ua| {__kVyD֬mf??~>/qyk~gǍIu:O*3~~{g^x{볟l\siYcD_dyԸ& mCmti٤&unܸkUt5nf){I`$!lnFIG\$ܰ7ddvN`e0/*nJXʳQ<X9 5?Z^Z4GN祉n^(7I >~6oGVtFTS;Y MQشa{3b985ߦf獍Y9fkl_W>FqN/|7[gܐ8{[HHNҗN8OڦVh=XO=6t [ [s&o=Au&Onⷖg?L@ƀYk@m$ W@B к\&['{ﰁ?[Z@>ғKr/+WOZCC~{rStpB.~x(H qNwWT# 8 _hx'h!P!~}̈;t%gTjY:.|cIK9 \ W[=%'+^;㍨U}Љ'Y\@`U$)7"|> o.\EoR< NoyſlM^3_'<,اvm}:u:i ͷZdX&5tWmru6 Mz宀;/w [Wy Aeu@X&zYZ@A?G 6@]J% t^b{7[wu(l1|"8cMY~8/u;Hw`oS\p[ uͷN\]g[y 0sF۔6sY̛q:7қ6L{vA}1ͯwL|J26 +9|&|_\ljvk37a纓#*8m<_I9 Zڤ5Of8;8e~iXZ`i8- _=?zim1oE)~ߍr$mgm3+c3ʹLKӠf 8ot rVix.f$m7=XbB8i-U1;nBW5~lVy5FSnx^Ў~XmGI&{9yӶ5o7~7 yK ?C?J]':^Gawc+;D}MpͧʻԤ F!`#6NBV6È`HdRYDlGL6nB6}HGl8+WZUnelqO"Mar'ptÎH~{U24$"& B2LB&_z7Y<K+l%}?,PHv#yAp9A O˦3D]AWyYh2i2ĎiضSe$:.9e;\rMk} nƅP4JˁTFv)$,@IDATtPg3Sҩ'X?4,]D@zRCCzùCk_k[7v[nm7#:h#HD.tO}ཙj+E| 9^0OWԫmE>}?syxO" \?-!b5ֆ->-gGD{cZ Q@5Vek=̠eC=%h66P.䝁f lX9^v ӫ%ؒSV{?W6/ ? H W@'yTp#6ĻZ2iWYڛzimFy̺#[Vq_lŬ>2OW=ji>~ >4`ec&`>/3?+dU&ed,ޮ~zxb41 t ڹ0ϔ@Ӌ D6:U=Wר]d?ڴ5"s)벿,JIk-L֧ r4wqM;i; OCZ!h = ^ld<|A@85^ ]r#=l[W~ryV}12}1ozV [lFsf]k'q%OIhSVbiZ.7p] )swO=}~弭9Qz岶 0漟}N_=w{?Yply[\x2+Ri༼=_ gmUsb%rߴky0y^9>k(}Yg͗XCsoyvDACZV_2Q9K ,-K ,-p8 hy}"xc4xN3,;-;Y۞6ǥӠTQZEh%Ӗfעҋ3M$m~y^"y@ˡ^яlyR}뭷/E#Oʧڕ@*/EƧɻ< %x\1 =awyI񐀖NAU3Uo _9fto^RΦԆP=$6H%()OA  2dP22X%C*n6(sp,tl⫝̸<:i ]7-MDɦZrƳe)0k2 %Gﲆu08~_l`$^?gbkONQӾ]8?MĮ,:͚1kִddC_Xx `p}^ m=reS`<Ǐį֮<,^F ~&7ʓ|)O]Pu7'65:%m*i]> gUߗ3v7vsʵ2 nk5Ya䷴?ˆyd8#Bk0gyS:+޼}0f,Gi1<'\j#Ǖq/}5(~y^u O>陮OYW B_stwn^ѽvim*ޓD%^G2ud~F;x_Sg澎L|.~a l}!ALan{Z@1Ak3VԳ~S?nU֎F-K^~R{ϵyNwFր{{>v]ypbzeE\?OSIYGy}~;H߫~?_>X:ZAΛvh9K6& A=t7fs9>}6<~Nk>O,i`iXZ`i-/"x8ċ3.,Byx,mf0=aӠ]D?qTٟlkYl }^4RJFauOvHgꏟtZ/b214~ʪQuE3K<+Yemy?/YJ|;^?+WeG-_|?*U'y޸qk0kq{h9Nw\G7m 몬nqjҥŋ38Gh9enƴIGMڨrߔrgϦtjЊ^2ㆭ:ҫ6dRTF=kնX=fi hR)¶)U"ڮ#uxe3 Zmh ź4/ ̀OcjB; ]д^ \lQpR Mё-Izbc*D Elʕ6im~,3TLal}'_|yȧH|,O]2]ۙv"Q5; n9ڦ.'|/lݺ|nm7X,ɟꍎk :)i@D~g @@FfɜпGCWu慴Պ߂AZZM2'pdF|$Klktݗ/D˛[|B\ZV m{pGk_XA%$'֟zɣ֓^ܑr$T;[?E\R. {iҳwqa{۳r"`NƘ ~D2M:KU:)x7kB^W˼k[ǞHG-w֕j}}}Ca)m훠!s>Uc׻:皺8ڂ=OaNU/b8`*^;Z!H~.XpT@O.?k=EaE*Ty.mS6aT{z˼h~=rc^Z_+7},/r_CdGX0L3^0NW~#t}J&K2}P'9^.v!5JAfu =.v-?rwڵn&!s7)R '.W׮J?S|5':|۹퉳&k?{7t-%2z&eKOςE.@'GXKc ISm 5o_ַ}W̶߱yVt6?ym0z 5t'~`>1=Zл>Š/^p*c_ s' }l Wtw{ ׮>{"iFK ,-K ,-I-(]'e1w-$8k%QS_^ů{IIhi۵߅GǧA;Giv<>Ow @m@Ky_e9\>GՍ˙vYg/O`A%a^h99~kRzC5yV_NJ"x,PIE;Y4dv9LlkxLaݐiMǽHuz;Nrn߾Ύ{һI܎DX٢wX~y'YNCZpi6q?4HM˧xVWLQɱM6 P6PtIDB4qc0mja<:GuF1!7z٭&dFc>/xx8MG[~CA:XEP`LaģV{OiYnFg2(XV IXn{JdL6QƆʛVt%üAٞ&oWz=OrҌU2+`3ҿ}.OzSseOqc{?/ypnݭw_޽uX#'!@{ 7Ok:Aݤ곅Lc ёk/s{y'=Z6<R6/ØR*͐S2a"Ϝ0 ӲA;]^޽ym}:@K?u0ϯn ׺>D>ݕMʕ:-3SVp 6ֿJwp] /<߽=vVũveB69@k\57\K _muHu?#)c ̼@a>(@2yQAYyȻY,EC`gEd/u9zINQ%A'{,6\ym` ;D{ Ʈ}9}Ih޵N}a0,VNA~q/.4Ygͤ܌`sfxkbPtX% 3I>j/>_G>nDu \ /G_>5,N=vP?ʮ}KU: V>^Ʋ m{5C6m-|=Xf$QDU)9>[ʆ:zw@gЦ78\NZ7 <vy&Cgڮ'iÍڊ'mvcwT{iii-}t[4RdWl\}OnI򳌓!rROhY:fʫaIy/ϼzͤ<^?9xc=fzfݻZO }\$*vj7r\zz@E78k(* rݢ,h\?ntY5 f~<6mvq!$9y-sVФ()Ap"&"e٠DoWeMڍNin&"L!`xfHX>v3 7:Dz+EPu4C|MMPu'ɕnԥwN tt`ڤ`S'vܷEΫld9Λzi'p|64d{hU!ͧ&oݸ]87ܺml?HvZ+<7Pє( FR,$ڤ̕Ip:$-j2Jf++!B2C6E[峹=ɚG׿7{[]p ;k"2Yo9Kއ}'?ͧ9g@y׻1@G+AzhDY/>]eYϳC8o/ih`4C'=\@9#9TMsր|1gl\=m}Q&s0̣61'Fnϓr䃔~5;1, 1[T0_e7{6vC:i umxȯA#9 yH[.%늾Rd]p[dumZ+p#b,g.L*n(X^]|:ljײ/DXζ]@aF*ƴK<|֑5q;9yүT)\wn/g}Alr~(jx"_P-GYWƃq -XB[y/Ԉ~ugKe2[B O<z#i6o|\8Iy$,[YyJ?IE(}q\_G'TVvuw~<XqY,=*/xŸA}w{v )r[? Yh=N38Rٕ+W!8I3ZzMP'Us Qwa݈h7+kpru7&]W}t֓& Ԑ=ֺM [餎n'U IX\C/FpC/K:99De$uT*2= n'eE2O^\fMn+j]1s\fCNAL`lS Xۀ0شt-@w79y/oL6=)z0=?ۨl>{\ UdΦ}~K/@Sqi^Os*Ay~x[pa35%uOoov;c@˒[AwuMۼLpITƿEv)Zf0*e#V0 ^@`i!7ְ.\8pTym3y9V׊P‰ A|}52v2WSyOR^:*_Tkx_N/S.0u 誟:j:Cч=e]bs b[q?m󜄥DaXqILz4t_MT[6`]Eà =%Ӆ0b;yܛ{D L>a=S:d U z8\*,o茽*PZO83w8/sO뚠JHr^9"cȘXa;Lɮ|ZCڢtհh3c^?xKz^7mYVϪ6%MTz4=]etИ/Dwy\n͜?Z{oa^{+=^~~MNmLҷz3/\dݞ_-qJ}i྽< 0kk'0z:OuOyn'yeOrr/Dwx 9Ww[CVV s`.u|GJ|mkl0O˭@>rZ _֌<7+W/>INa <c+Ɓq:{w/BK ,-K ,-0ZN-c}X/Z"-עiUi~E\$E*NS.BqV@K5O_fi; a4tOsZSKaҟ5вt>a/}TQzT~Ӗ~m9N&sR~;MMj[u?ԡ-?gi?{P_|_w7F ,<_GUY$1 MrVjvվE` Si!6jƏNeg6d4{0L-`Ma[Ӗ˪Uћ ~c(W4Wz1Ӈ%nPO7Wb1_ 1'>wϓhJf ¾` HU77SF5` aMܴ3fnI6<زwxOHOB ).plHOB`(BQqUT<+q?Rqb&R% Bb4`P\Xb(&ӛz~kw}νgI׽Z~asWFj atMb#! q'3wM=m S_ܸv\z˚>Y:5͍qyn>oШZW@|ƹkOXDvv9 ( L^E](kk*KV8 <پL=qQ:~sw_5S'Z.ᷴDK K|$25|ΫB)JN ٫i! [ڦp\tH v R>" NU b-^3KxN׍K{̳M,+<`~H((CC[>Ɠ$Y:-@9:mS'nʁr7 %!uAM:6⻬G×5-RMztMAng*s:!t]MuLfe.&ζsƁm˟-dɨ4IgC%hCp (u6-xҏ. \rwKmǭA{1%Vc9ˤy|`Bl\G5g xp% 2sqdt/, g`F@vLV2oKO9ؒ|FhJXvF'B =Vy|N8ƃ}ڵ7O<~ݸ:d_U,>cr/cBl4 RƇ®^ͬo_Ac!o{['a޾nm67_ovnĭf3)=.cS4ܣJ~ 1Z(Nwt7*ܢJy52^u$L}5s|YXU0@xF:%s< ߇'/ %nƱI %ZvϾgëW L\) .Evi^9 _Yݻʉl}F龱H{`{`?~=.c$[14장YȚx"3IFI!8 L+sgim=Џ۾Q^>m6ƏhvqkYO"We|3ǥA餲&囅 =+9i,BF%= }|d> >dC˗/ }A4SF: I//5Ga㧕3*QtGD 7ٸ)XaK|SS%T2C9A69 4^8ojPQOR&6$6NY³`8L^NP\`\FA>ES`jӛl ^XҦJ\&PNC}8 i)Qh. .dž@ {gm(PMȧ݁Md,ie2  {*T2>vv'ۈXyd'J~G ܱ'):~mb//tхxIKz><TWO}l _R\ -Bq4FrU }RRdJNFӬ坴OzRG~?= }n׬|JD0ikɚ4вVSj槕; Q4ᇵw\arF .ml}.6[[Rv_%´D$藧i4};&)YꚥoNkGi~a Xnܸ<:7fVR-o@K?2mMrGMUQtm|.gQiN/RY9]ًa;1JP[lf3 `@BLd]yL)E6ŗ&7g'2Ceb錓^dVՋc<-ʀ \FC˛ژMJ/0wotU4WAVo>d#P l׫ f#XvQ+6.)԰i!^tA& 1:ceબ錬}\a@.K[>fc]>2 tЇ|M]t Ag]pI#/Ȁ+თ6~"'ѓrBb[ Z.:b 2#;)z|s/2d̹PlJmSa{O OgF[ D'y]vF;6sÒZ [\Joa'*/w~N\ɍ{ljCG9UQژ?Ii+ ׌:8CU`SqW%9>"b;FOr]t8xV֋/yNo6hy[ZܾhI9j_X_IgV_ 1')!:e;L' vwm1')ئL[ʡ  ڌssȋ_.l&Bw D2& ]+G,]ZZZ^*mO?pPN7tNAM613=7ݧ%AM#󥗿R.$x6ҙNԃ/,wMƕ>r e9aSsu]6/K&v`)U{&)D(}sYY$1eD}- s=d3׽ڃ <#x"a=^s3g&ssƈڋXOcKoR)o9QNkۂNfH1Y|"kJ<vU 9Og莓' c!`G<ԓǥƻ  5?DubO'rMRG: CdЉ,\[ |`g|v3&-..s$u\V!Ll5mZ6mJt}M=TJ? V7V垥1QƸ][Z˹]?m=:2MWT]K;c9@?}nGHk[cҗoY+˘l/}SCd EC D '.nQxQ"bOD]ΖnúC #e#6+2Nw_ՁG,m' 户L%|1g]{ \'?ȧ7Ks϶a4Fuߥo*Q )l+í=KP(7^ss`n@;W[ɚs{`{`NZcm#ޏ6Z,B,dGIȌuz}?tm(yޜ? uO3U珲iRݝ-8mIqҷ5 YZI:*(ԽP;N#{AԸ]9*6Qպdž}{R06^җz_0I>eҧzyg}% -)Ԍ5G% ͠@˾}!ޮhI@i zR_IS?i:kGV7 ?m0NyeQq8(;%c浲Q; <زii_)E6tyslNy=؄z?N[f:7\ l"ЛÆ|> aWYWMh5) A Nd7ԒbH0Ki-'urQj>~b3mp?c -\wwo{3B}LAυ_ZΧ.8U>KYhxA*$SЦlL习 >8 rIc+KںrJAX;ZgT:Nd}a:MΕ_{w`ZXoZhyk@K%rl@E,{\PPmAVE#k75_8N=.kqü6y}̃<m譤WN e. ui|/x-g)~Gٯzӎ9N+gH ā/$kOepm9{fUo!7q!GH5 :ץT)y(xO_+ c_6.%/rR^iTbqkN[\h{&8lO#(S\@WͮQdڔx Gwl/kf򑉌>@@PzxSV2S<n3mRPSв|w& '\6r z.f\;$~3hLy uբ}x ƚeWh G/a)e*v%B+#5VZfK:r򹂫npԇ2m%ޔ~ОoTw腇9@IDAT |tTi0c >f JSU̱h1vEܓʳl'OzC=ZK xm P$; )kf3D8:D ׹Y\Y5njV7.ok j~_,Lso~[v}~.`R@Ƚ<8ʡQ'Q$qSROVR܊-HTCٴre}-|q ǽrnt_.'}?KOSmʳ *^~C&?a<]e=y)ڗ>slZ`:Ի[J ;uJ zQHnf~nnGx5}g, <{`{`No}[) V*AcFɚ=u_ZS:kL%騀\>я2#h(=Bag@#DwU9efRG  GՍģq^{ק}a3j{ ZƸ_ƕ7.}+YȈ~:iW>m}}{NBI=|ҺOZv~_Wm.MuΤT'%xOJWvz8LskJ)򒆆@՟;w[6]ZyOTsծ}/IGF7?7]ܹsiS <ے 4m %0ܤ*sAT}5+C0Rڀ) ŅUp(傢LΩXQ|;?.SR1KuLSbG}.%2!1*̮P*VRX%uJZ?Z 9KofcW%v>G+yCh  ~]kFRh'1}~}m y.|>d i8.p\ϓ0éfc"s7$IPE~6'6#uc[Rhl,h'kmdi(' Wڷ4&!8tbάF@$ K-!^)Zкx}5["}F?XiN?F?7=Bo0kyoNi St0gAJԑ}W˜ziYY6|0xK/YLyEN>ԏ.u,ln߸\v>IXWl{𲞯cU4V9uxA?{#13pK]hαi}7s,y~.:œ Kx6٩GC.K osa,s{`{`N-G1߶Rd=hr6iO&iӦԓ"m2tȌP.$Xk@إ#' YUPG|ʫ[mʘ.vFuj9iuۢ_:h>U: (` 6>ԧjotX$Ӟva8,62Hִi̜8^Tה7') f]ڌnn_6/~IyJW= >fkך3:`׋nĢO{˚3gׯ6g6,m`vnT:/vo+>dyTMaLzp%`{~9޸ mЦ +Zk_{;7>y}u֯滿:cbw.?  >c]2}o'GI^YCo:Һ~; }-~[}2/'W/N=Gk2iudSL>H 'ߚ x;#5vurN~=nC?8f~K7Ͳ*;u^tys/XL2J]w<;5b%l2/.z6x2xJ^qIK 6MEΓbG.h%fCl#[7ll#Vr@ŶlʹA 0HPWӧ΄-mhCڧ਋= ԑ6ȣOTM?=P8W0PO"/up6٬Tz!(;ȇQ%pSp8LlX҇M ^Y~[*n]I%Nl\HCz G+ r_SM_D[ Ly29ii~}|699]mthvضujfwk')s 8Pݚ^_ɗΝmVwM{7o(,~_:K.4+g8y3- ݴqL"sZy]ƑTDW~h~}-u^ëwtޞPmD 7*ӆ^&,m5N߮є>'#]6Hr*-5hq/wn&Pٔ<-ƵN<#l[9AӁպQq[x1bմk] 86Vcƾ Ƃ"Ӗ"qvVpZk_ɘO,B(ܙ-9'ɸQm&XEe&fz@4'&V[TfdMƪ/i|(|熨 -y/ԥGxR eCy 2Snmc"RY'P&\tO~Z6(k { 62kuYӃ&#tQS]hћ4POLT-V?ku d!kDy^[8G?WbwO)_ސ];ɟħnKuCg9":U<+)@KShf3YVY F`7WmDg}[ z^ׄh^w~!-Ogmk5$Tya|["*\oqWnD:rRCT8{|}}3g8tA APj 8.[y>.rO>v(;DC-k~x]N䙀qxl9sDD$'ea[r=Sp%';r?Yׅ'NG`ˤ#4 /5.6s ͌7_rs=0s=0yGieӤϧ ? Ȉ?faOdZ^-ΟZ8ݾqҧmkz$H,w(}g\> 8o}h~{4в}AB2&8a9>IZFQ 80yʘRav+o\azR =? lC_= I͞As_{Akk=rOp__ާ>:PAu@%7|7tk+)E7ol~~C ԑƍwT;-T.~N~EBmDZ_i x|鋬:&|gt*nD/et<]Br:2ވ:Y׆x x9/?P`ھ6]h^գClsr6+d^d:dyTAKi'ma~<.$Ġ|j܁2n/TҫjQ[ lqB =4KW1C[6޽7OЄ|.6Ed02$&#`իB}ҏ6]~_m߾- z3z)9ŮqկzfGPg V`0W2{Fpa8+eǬ-~$'{$hz`mpyWX maM~HpxWۆ־4hm~? @Y|t&?u0" }H>'#H(AENЗRb3X;B}v<2ui\MmA'9#u#]Чi _ɥL!*n?sE`8C |G;粞8'^~tbH.$=dYij?'`,Z%PbӂE{ƹNfg]t%uY҆=;ѿL,-_y?+ %ݽ+|ߎ憟 bXBy_MI._ְC%=yݦot2dC>o@!ENW_ $vUϚ+:aSodȤIgAh?Orğ?r>-3ʤO^%K-9=0s=0)z+++7$ͳ5i,dRNoge__q8P]*imD΋_UzU'*::ĈA6ü|#3<3̓AGZb`>$\cXOҼIuoWlL|T: mv qTݑJT9 o-{\9׺姕7-ߦY˫B,d6:}2;LIxvK:h qE^6x6q5mGwMQi_e{ʯJ^\W\iwዎ~9k׸wApŋ7H4Zz~{&~ k <8ԱyD9ƍ0r6''\RU(8Aqe׾a/~"f =FiCM|R 4yh;eA'gC7'WwT$mZ:AǂɅ޸gsUpt-TSMzOZgIlA&$m]69`(F1D`/r¢^R/QZˆo[yfc x{}Bukl*sJQwj8]zHQh]=׷A8+mUǛ+_ kzE5lyK'U4v4ˌk \^[WzmYԃYclo7l07.\jn޸.uO|y#7}Ƌόo@ʅ)rH@ƹ.8y$`Um6?NqZbC +b߾yvM\n?5yXbNygq;e(4ƹ?hk:rAZtGiDA8̭C[#҉Fb Cj{jf?aW mNlSh㛚Gi{ҏCÕ:e;*A[eT#y C;j!pucwM]@4e| .D.<~L.yVH<|~L>tu(Oh;ZGDS }ݚ,cE[rV22>faOdӓ5iy{*E֤v6Qm!`u{Occ_߳zRQLӗ%_%}wZ?v$q8XXuf:m%62N;2:Gq,ORVdܓ]!lKt JOKibq_.rtԶ=kNG?z\EqVhkG/i.~l3?3]t=~⧵m\SߜQ i)Z2 zS\ԕ[n)-ݭƮ}f|жгGe))N *S8NZA)w'Nqݞ3^x6ٴ)m@ml!rnjFNxS+wKmwkO=^@xSap~$k㞅sQEGd#!JJ@z I|"y_F8YG*i^/ok i^@, s_q, 8AZmك|.[ 22WOwͧw?%^~S@媂)umlo4tه.*cEV^XמWJ-Q(]|#k^͍+5 `s_l\3@Z籑 \e-m/*qJ`3V RXr]??S:r@KlC Q=ͱmh :|h|0D<`RtCA)HOu ޔ`^knYw Uv./~?>]ʅUv-e7VtFܡdK,5l]Ҧ׸B^:Zp% ~ҔeQ@]-237w/d RU7m ]OROOӷ8'?t ]@RRqԮz>鲿 OФ oֲ0xm5I}Bu<NP ? gU~d5hN5/Y{Qֳ W[cZ*tfz~6t<+"LsWꃵEy^ ,ḶyV=z:^2 NTWNĖl螭y"v/?+jE W,ߺ~Alf[m&͙g}ߦVכ??1ǿpGmJbd'x.(ds?sw9>Io_5ikd=.]]Y@QKCF6بQ Fʺa{rLbu~ҍ/Oh Pە6 M(s|vj#ش& xE] V"0qK 6d&by/66]efk)4!ӚD@A'30 U;Jԗj!_6X nf^w5lL{t\єQMFFV eENp2?xU'&Ԥf|Kīp!A0_mLe ^oS9Bi1l&%2B;I(G^dr}A;+(\yՔ>f[W_Иⵥ+ڠ_W:b{Y1\r,Jy9œ,6t|#4۷nϯ7xkmM9'˼gјDr5bsُ6?=\ko'Zh4]Rt*ryki>_kߔӍbHؖ=p@l'9x=n<1 0)2'T`iMl,dSOK&R>Re95lJI jSԧ<]m^RoAy0F>AmEYXd# XX4e[m '8<k>0yRH]. i)?i7Wam\Ykщd #"#~.`EA=&ȋHsGIc!?)vT?p#k U8=;& עG` y8NVWK}j M8ź2S@kΊ x( rcq|uiy) J?~:zI_N!GeG)nzS G?c?yŕ@Kb I#;.ʤqLJ<61$5N׾0oM?MqHy~P=O'O3KD!T|:7k?=wҺZ'O'GAM]8O@˾_N|\_Ν;wq8Z~{g+_q}' iL;Hg!k2fmS-}ǕO['O}ǕY`W7rQY~CrN?̆Eo>_r=]>2Ar'~{hjN` @gwQxBs?_`6gj` eo͢n|v|Z -6vM[m\]ƬhT^)PZ wRʛj Y[EX=8!K"d:" "ptr^*zh^@0Py21`.6WR'.XlIZ/ «iCZ6S$6Wuj!!`[ڄ_͋%BvH{c־1&'$o¯;/7K Rav`/kQ/cyɌRP IS\A*1yoNf J|i['oAL9#v4ػ}yOɏ|ԸTʽFMjN-eyZ]/hμj6?vݔL#!t)'y绾Ǟm+N~ҫ4 V$ AJz6'Z.6~3y^X4ph(N*:%2h?AQ:RLIOc< t+k_N"~]EfN8[W2$gxA?9U<+;Bjo7{:5ƩMN`|I{+<%xҿ2/K^)kPBu^Q>8i i|ץY'?ho3k4>|}  C}ONzN@ 8gq$xZʱ<czcKT'o:bL޶#'ު^ccꪡ^6m ܎gni(ˏ2Xw8 Wj6AX@*99i@*о55'*-͜l5Fp%|Ctp5?~]?w!}z-%`~FVa* ܪf.>_1T9eۼ_6ׯh/ݎ)+ dw(u`]/Ϟ}Y4=ts}{1=po%E>) ϾDS(ifjjn`ɬeLtfl+ Xٞ ?a>.qOQb|jy؊3(A/<*ק =Y{pg7o^B^ Kɟ`tڭlw{ $|˗>ȝ=0s=0~)ϰ~#%b2'BñښN?rfaK-kP~?+_E/zQ:;%6}hj|Z*jrC33{j࿵Ԉc2rYG"kJ˜IdMoC]Od)Zj ,LlPK62MhC,ȧ2S" '~"/R$@ E'\@ ˦F T/0 m:ϯoDlJKHVI zR7%ӟg G:K6P f`vl2eT=B]M'ީM9RtL(5Exb4y:>>,50}JΠ216)A.і8_Tz i)Op肧t)G$&'m9D_-@t:с"m4A қ\>c֯ZdF7Շ ƶKE9e^ ZNW+}5-i\^|`N֩{:͒@/'^ƩWjDz^#zS-juY9~rsN7UA^M[: \miL*À].߄kv?^ ~{KW5?32i.R}f&'!&I?Y>:R$BcAai-Q09q wFi`6{d;mwIhhBX=q2%~, s2& %ǖUkYU6s n>O& ?q/UCMe:}'DV~1MU>@95\<_=guCA͌Q zfM|c dL88% 0y>n6 (g)[&xYX5*}Z^=m(N⿋)Meθ04G_>Jh_H"ec p&Lĥ萛KYa\<6?RVʤ@I$[ %Wh,Ƿȉ-He26t]llzZ]!@*`  GZ(%xzlVj.dQЇ1_h/Ø\,Z(b)W sOԩ5O=TsUׄk~Mv3W#Aω 8U>pvivwersAYx:w!7f޼l޸޼\zgiF}6cE.p -oϚ?u--SJKhm,ʷ}ɗ6mRmS *ҁCUN#PBH꥾,VI/3e iUsm,&EnX_!+LWg0w UL$3h_dO{PoRv- XE(}/G~5RX>-?9j$ZCKPǻ Tc>1?z'3YAsHBh}ZҜ*H}g|[A3KdSѰz)7h==J}{4/Z+54l-tLj0Fנd9@IDAT*2gb.Ns\Ɖ1JH^kuUXjOUO}l+(qtu9[тGfRxM'um c\NHu \eݚgeNd ;ckQK}e0g%Ëp^a@?1h9_اZor<`>xGuI 㽜_RNp*e}I藏lYH5Zseٰ+lc{`8-|WLT!lB;QȚw_Ob_hȘֆZN??+r2jP3;7+p^:>cǎQh@KԎvt,@a}?C @Y!&B/?(~O*2/q\}aqxY-mavIƵoY8+9}Ƭa q?O@C}%2t_Ow}y[ a{ (%_gm:N^yf(FpMfG&t":6"+i x#TK Tc O!tp>r r]w_&IOpK>eC :J8BfG7ƺc37Zdjlw^Ӽ tbo9PydY`dSg#@z<)Y%r,W 8/m:A)j(uno^24Ɛi]h9Aǚ.ty>T}Fq`m\޸{S|O(]+=Etb{І~uO{j~כ(7U}N/8PL=³|~Sk@ ~.9d0VxF#R8?/,zӮ99JBCK4N GyHy6e06Y]"хW%|gw}2)yRzE|ŏ~s+^KN[Mz >$/d'bK{`{`<5_5c2go\9ҧ)4}"Wפ<$|񀿓8Χ?6g#<Ҽe/+߻N}|e@˾^XuO̮i>Z~w|P{8nlO[rjZ0Ky;OBiȎNϴ'Ѿ$e׾s >~c=\xqC62K:чtW?A}k\"7>toorA$ ]ʃRdpOO67o޼K؆ٷ_E C82#.FH>tDΠt Mc<@\ڌ)[>-.*f2A#s2>9G`Wڀq%l\4=L?@  6ΐ4z܁lܳ@ -l3Y@6&t8C4 Po"RF8}.G"M9O!J]IrRp5PW(fZl 7̆gX 䣈%#&w9aL,&ষ *y'#tPD3>B@ Ll ƨV$GA;i}8dLvٲظecTr؈֘cszD)G4'ʫomJn *wĩ:PƘTBpv^Yx t)?pQf)Q'5ڋ=Vko8UV܅KK/Lwm] pÔ.xge @NھѼ~˟hkn)^ɝ_4Ovl6_e_|ۿ>ٗ $N~AOyCBLFD:*8) :R)fZ, F?N KzΗE_JҌцВOȭꢏ| P)VOGh=p(hX*yN<мkZVg!4Vujr:h YGYRZ2>%T+>_ůoS7r_@{ B+ߍE݋B|;^T`K'cH/e)Tn8D57XmZWxxTl"3~./+7RN2<А悆24!T`6tK Y$ܣhp;Pe(s%d#peڒKYniL"l)uᏼȉ' m|sm"p tI9e?$$¹N'Tj^>֢YƷR#2l܋MOoRi%}_"B>C >ᢍ±9<@lQ°KmFAq.4d lگDQڝwK@qxJ cs(#B0AL&Vgs@k ],¦,&&26) %#[Ey.+EA'v>O'\lO?,)mWoD  ԯ@tqh^]Չ?+zm*lyF5(В5?LjzE2Qq mHZ?i>?bZp 墍as{6i|-Z4m:ϢGR~pnm/[r?FCw@eO}^Ϋۅ( O$9:YB:CU0#?HN |3mژ1v̶B+=2lgKw*h ɨ@Kʤ, fg_i6/?\ׯomnihEnMyMʠ`seieMWNGx|}<S)x8韞w=?i]g1 y$}܆p颧 d\Ul.qdiF>~$twMrx0kC[TCj͏/s__VZu*7|Zs(^?ʠ yjV<в? {`8Y|~L!3YWƃFD};}g%'W:Me8zOφx_C՘qx鏟'В` `Jo~]m=ZA c|5$ /?(~ȋj }9;5Mw>3x>X|*gtY:Ҿ_TԻEc1:yqـЀF3x)L[>GF6"[:>>=|AS߷g̓lKάW[=zhQ7F  2l@41h [{13?&bFZ`Y F#B I %{{7t4Ku}j_ﭬ|Uߞ̓y -uOnyd\ v5$lOV` 0sSȹxES )59 6YΦ?USD|**;cSNq: ]grྀt\ #69j2 AL J9M]Tbd@0d95rn8n+y]ntY¯A>wh4fj,6F8<, Ydl32SeD(G#]/í*rx='fb"ϧ r"MC>l89--^?P׿f̫/m8c ru@­4']EWh οT.ިWUӦkݴ:#hs:/#2?HG>q&E|9 .,}W6ӓǿ>| |0]X\Q^DK[8OOQ?0t;r(k{yO6 _D)W҇lʓ8)Ĩo9X"\"P~) >ڜeoA~Ru eX vb %̶d'VX44f%-4'P920y>@L|PD9_\ɖrE6toD@ 2E25.^ oF́%3m&mwOX\Swb"d^e_3} ݤ!{Y\nñ2med' Fs2 4j'kWc+NWd{^7U!cjVcyU")ȏ]2Լ PBJNkSV;X cAd%2ՖNB'!=s^X;q|_Libpq)z.(X}%aU3agl99wP:v3Ar_^_&l#AOYMSa|!߄ e#ux6ИWJnx#g!Wq% e~lw4m0Ϝ9>>y'm.y(Gw?e>$K0G+m@K& Q({3Sl q -f3HGބ ̛ 0r.-粊Qvn}mu`HK"w2ȯuI.V#VHІ7L<dq*elQUy+0~v_È]<98溊A-ǥhOuDALY68 W@>ȶmI)p.ˮg r+"\ SQ+G(lABYi"?9A:TmDQ8/)H?M@D36` %+p[t'jXf%4$BQ)]Y` 9 з9`p"xa3ڡuZ:rAK`[4F&q|:3-㦣ڷKC' Iu~-6qxt#0By~)|~\N j&XE߆s9qkq:Dhǒt`~9eR&L*[I W$qy=b/:B~Q=n)}"PFz)|-=o ~lF ;M;:9>_5Hшl:/:b$#7z-p|m:ζXgH;dnnR'y Onm1+Hc/ Q3Nj# 'K="c#8 ZVc6>oys'r&~tq50n<3vEvs_fȶijF}9v2.;zwHDk#m\6LRGtp5ȈQ3Ⱥ/L">яIZIyw=pP]e3 }nZNoy?5YVw;hyu촼;-^jn֟1,}mϸc^W,s(͓mږAeݹsgG@ؤ6} 9_3c߷}̨N^!P#.UN:ٻ7I1gțG*v6( _]&'!iɸ9e#snuAo9YBO8 N v#Kū&a#lig4='P&\N>ӭؐcM+I=\ x6K .DX 0l!/6_C DD;b*뮃P}!ި\.؎bAҤ_5 'N[ڠS~@B)N{H)jd.ya[:?#pPeʌ| 8]ZTE5чO^hvR'cE7rt2}OϜ]SPen^!tNTųK&Y]VC֬׌yEtWk#Z Jszٯ׍FӴ鼸,'NW(=9m>c%SN0+̻TZucxwO>tҲ-ud*3hǬsS7\ MYwfBWKN+px6㕠џp$5L mS& ƒ|f u0BO8rN۫WlkϖP.ھqyBk#qߨ"R4;[@l1Tƫ|Bd7Fd#~nn.6n+L ~"7Sr/9rs^{0#5>gMeCLm^Ӗ J=Nme`\cg9Cc%kN$cnLc+/\\FI165:h1cmFtgC@bGd~EؠNq #"IatZ :s`rm8$MI囖q iC~f=4m9@]p@+gWs? ,~hZ,A# sϕۑ'Fh#H hGiy勵㏤SOHjZ3ũ:9S~l?P^< 9d ?|MxprM',Ij<#AsZ!|tV㙁c ׇ:$P9T9tI38v$1@}?`U%66T腆zCȍ%eNT?u_ϴLGbj1zfTUx#7< 4$%g=N)W~ė!3OL khc⁉&x`⁉&+T0s0 ]hǑ3 !MO?}(3~X66ߦc'dr-ѣ\V [f?+:30яhkk657>ŷ*md 5mo^g'u줬F= Og,ay~#-a˥62ׇ?#^ώaXC:|&6Ku}X:ɫg?;??J$#ݜStClFM)oT#pM;upC2xXH&m >,K؋]dʵAR{5٠X%ڀ˯qVP6M x$Q%gerlhl ?e2 kPweAtDЍ;"Itu!(s2Mia%/umlv }uׁwP;l%}G ~nz2Rة: CѧjS便. gxͯ~=hqgCI+dV^Szd'-tJT|IAkh0W[= 6bCz]PH9]G~ztzQzïS5sDT}F>]qYp8r-O3 ًiYk\l" _hy@o}-קK2=gK@ ;|@ (r>=}؊)dLyVrpn3 )#k[⺊W]rK \L1Өd hU3 ~ ~UL/)W8W[' u0o} m 拾xeweҿ桏#n>p#2zlU,!dٲt_}jۨmSRFi+#to(3F'Zc0 ܠ+3gSAl!F.鄭\Lv"x6WeLPWNA" QN dqLO)RW<dV#{'D : hq̇3:ema|lrBamK(8qU:kz+^f(5Yx iӊ>tb2Z.Kהh91@K~$ tjĬiA\Z/ h~ǡ<m'|5k̴TWS3[tklo9_rAe[z/z`jʌ $y_d}IcqP'WPEͷH׽yMNh]'R[̹jn+՞AJc~<5u!6N^ZptImK]- ƙÉElBGVt[%L%ukڞJwڞ;%UNa|{= ΨMdYl"Y/l̪tybj`Tf][ y7`$xH[sQLS1R 3S-ò'/KN64īl\ؤ+ƉS 1lF %H'OqߢWt R#``(48$O>u x[SmlRsɾ3h[F Fo]x>MEjSNT@XjcAD:TDe-OMY'ynQ18.œӧ?o}G`7U%m**(m_u eEC&0 ې>OlvG`<ðSd*ZRej@N\ K響)@G$tKvSk"O2unZtIAٽ|1}s6CM/HJ|/*I Tu`~#س]A-y=*#EO&C=\6uyL#~ G*ոM,'S,tE<ŦθYV^HdIC@ 8 {sDЫډ(Ը#s  8 :;gZU<-0R9Sj/ݯ9/c.G' un gc t(s _J]}}W$yȡo;c uS&AO0FB/iC'"k&Cc vt e$u9#~#~D6enxaUm8Tp$cYdkgMa21XG _ӏKZ5d}Zќ9?kdhu@bh) ^S)[uM)iE7 pkN :5RCI˵٠2۾ijRg6/uf%.MgK~P3B]*r]*ϫG8@}xӭ7ρD]3ȝtvy]xl Q GV*ReN,S>IL<0L<0y`@Q ܩq»< /ϵȰ+9 mݞQy[^U72\F|7^9'Qq"V 4%0v}_FDZNanug>رcý?mVA$^ޛ~~}e:7mo{Mj1VtC WVF7wKnuv[\-y}/]MĖAh2F >HܗoAdKS_Z>}::u3'ֶ@˒G_umc6ywo~;M[k7hAe\IԹ-Y\&nKqʵJ\2OAs±70ӦM 8DRy# ;Ǜr@nxnz62"ч~`\NZ=g} wnYKKMKypU;퀆MQhHC#+6>U&@# Ӑ7ȕ8Q_:/Pu8US/y%K[n.〻Ӕ5N:{t,$D^+,ة xӳ:HzJهӧ?N&i⁉&x`⁉&;Moꫬ=c_3(3|z`~vyθAut{j9cA6? ۋM1*뼗%k;d={nPu<<X<;;@6)aeSTWt%<x֫zڴKoW*~x4iyݔݭ]WBg-1=ѦϰZfmf޽̻ >mJOo?9~7Ǐp__)'N茩Z*Y{|r64??ֵ2jek?95Oٞely~mQRp`\us' M 7>tkc2|!sG?k7؂E!w=o6})<|Y&2YZe94,hls62AeP/i-eMD CAN`+p`&i0uƖNn^pe\HnK{I5|dzē遇N;'qʜ=^M S!'|NrcL٦_52a1>.XWGY`fYD;8E/CLNЇ.ʦQ51Qmx7 |E. $) !  q-qOe" x(QLʮeȖn׍4l't#aS[Mfy5/kGGNR!aD-z)DzmKheeeoN.E=uSIsomYQƺTyRh&F1ClK]Qwp.Y9pӀX/aWl:.vԍw^JerIӯl_6ynƥ:Aqbm%yT8Nlf@IDAT62(mپt{?WOZd IԜIP~,\Ii^)(ВUPve^2'i7X݃@;Ck$Ɔf\DNܷ)sy,F̨UH:=g)"-0Zn$Jjtď-NN+(Iij ُpHPyvkT@)ZR`x~Is8RT1NQFKx6^ ?\6d"edLL<0LAj<Ͳnr ?AȺu]]q f!p)aK^wBe-;!q7{^F7{3I3^-ZAvgG/^~rVFMVQ]0ݎݙZKxGއ+ʫG%: ptZN]/eeN$0d\n}M[ s %}A!7M7;ʶ@[ֻ:-[·>!a7edCfb nf\v(ӷi(vzɀ|xߛ FVnmސ~pƫ-#>dCpGԃrA MBnB~gf)}H<r; k˱iewYemx }Qd'YmoC+\)kJGzUm*@LIQ-i+z '\6I#cG ?m0ĨI{j_~岮Muڧ(>.]ZT0Ŋsdc̜P9%P8hQT})bU4\ L> 39%׏s%Ig}ZqB*R觵&Nz^Z06$$ٲtlZ^\JH9-^Nz";MyP]Cޯ'.O*o'N?eL[ہbÉsڔ?0Fa3J^+߇QNӛIt̝}ʫrCpSGx(C.ub# xj6^&d?X'rHSg[\索ee傣}(CkfRc Ae,[s(ܲIz96`)n/(Ef*@ ۼ6NA# \n&|&ݠl{ )sQv#'IF'g>䐜@AۑK*e~mfˋA#>N[l9u"$Ӓ?]g`SG_šeHc̃́ _|)=cS=sjpWÿ1:~؍|َFoǟԹHкLͦ-Ipmh,?5}}@'L<0L<0^y`-Jtw&g'`mӋnTeE^I]dž6X/g 2JQGdo=X{!Q/ZvS}nt/| PH7O< 9s&={%.,T/?Jߋ צJ>ҍh\|)Yu_R~6i|| ?-.˪_>*_7mv-OG/|/\imX y߯^뵤ĎQi ?X%m.WЇN.~׽.jں^ʠ i8ђWHhYYA6ڽfQe4.]w@%2nd{v-i~~e8vHʝv\bnlƲ 圚f:*\ J֋9g2X =$v9|ԛ ŏ}b'YwEB rQgnn}=,fC^Sll##6$oM@Ai"Ռ'#yc2񗅣(.`VNKqZb9Ed@POd/:x\$]gmKb;N r dٛ Ht8YO&wC|ot8K>!%6))R67:S  oyU5^#x6V7W ҺN+t\}WU $zo9 U߼fJrNkqIvnt'ԯx-J1#qómY<DQ%]K+ 4t:峧L/O.NDc>bҴ^Ns ˉ,xFOW'pq ~_KfrX4e} zvU a}`F(F.n6`c!62;]ԹhOS8.*p$\kB[%}+ek:.7/t#8_n6zGs 5 M8W"G2 ͘yJWjmC7:Dvj٥?~I߿[qҪb2 T];s\`g\HVSKn,x^CnZx[}1h/$°ɼ5flըmn1>s4b@i!qeie,j ^]d&#\iȱ 9 xk;y5܋Ϯ Z2K|LM])O L<0L<0^xR¼SrG3 ^QtE{ݔuw[N/Ɨy7| %])_Lx4eٲkX]y(4;SˠN`h]ַ 8n;-ҍYNq<ލߢbnv #j'do9|e=m%j(ˌ/݄vF/yml?=֭ka}-?hWwj:3H^exz-S&9yN7(K6[kA?pѴ)N"õfq9zhz+^JߍaɟEŒ"~9AqPS76CS#YvOC/;eLNӒG_ڍ&n7V8^g[Ikmt mO6$+D+MWp € ăPW>>$0R:WL>uhd!H8Nepe߻7%kKmC&rp`bӉp4gݲ&.[WBS_^Z'NdžSEk|0Q0il+6`m}@N67n^E}܏:ݛjSsFAMνct'&-l6 Yǒ4R>2dJ|7rmB,}K:x_}'?^H5D*[Y<|H 9NH%X_XN\yx1=m3&U >tqWcXc8IrE,{dz^`J7cNƃ :/4&7 h֘}@ gxg{4ҜETR5S v3FOǰa.\Q,\7~'sZ6acͱ\xS3 .9C9=6s =ѡEn <"QEv:Np.V譇G>S!k1PFW'n'0.RQu`#x@siNY)sP'L#AClbQm.-w*Ht:TPIKR Trg~'VΘ_Z9z98(͍郿tQ85׆Kֳ\N~_bMɫA|^ 6ޖ3H'/wƦCБ'9g^{=|:Nj,yгMʋ+iAϿDNq $n$ExHڢ򑏴}`Z^8 ") cGM?m=];M~i J~ZniG66hkY~SҕZO\-Tuw dCA4xgr`i<\/5%`KKK9 8z!yJn/M6_VVCFX:wh)#w/V4%-ep-浏j} -٤i6h"sAq2dV%69!PSxc6肏B)Ͱx%J_xro4ˮH97nƎTseS HnX q%霃F[ްGb0嚸6| J[UND"\MPצNc,l#C@;6]37'WCr#`J嚬äCQ MȽ ߒ|_Q]S'N?8kاOrMq{Zl#*r31:'R}O4`1))$`D{yj&,:fsOK/_LL{ AN"`J k 6WXjqc.E#+E'CETiUyM8 VA^1tOKe biĨKΧC^+ \Ns |vk޻p+S/?7=z|1]\ң'Ia:x.+|L%)h|F(z|zߐwȃ?~^I<[=B7m1D;sh鶹nc/h}E9ɼ[¬ǦC<2 7se:utoipSsѦCHs5c[hC0ݱ<)`eݗ#c n7::˾Vx ;D1sq#K Ҙs:pٖsu SIoZp%ܴΑvNۣ -\Wc>ש˝xQz͏ 3u_:y*4>Y.*t=x3~8Rw'_j! >]&//U;tI%{2Lhe7Y$#M}P\r(`F&cJ EpAAvqj%"Nr5ۦ![s҅HΝIy(m\:t> R:ml#@eA:(0.DJ-9%LN\RZ`TN3ߧ 6 椩k'A%@f?o#׊'od'|$%Z.fxoIO<񄦙tzcīя( SH_?3rKԙ3'Ox(x*hzA=|7<;8~楯Iߖ.S)uȱ:sM xcYD&_#//ƙqrԶz Ÿ8lz `wD@C0)N :9 C**8()1 R Xz?\yx`⁉&x`ⁿ9h9Nc8-TQ8gKY{Z)&emtƵCS3oغb\)Z&xySMWI׆/a:в,ʃ<Ա߁tc?uD@K䔼m>%S+p]YhQ2|mA:Le{e87đb&ڲ\/6WM[9%_e-^ӏ['~\{,k jGMOx\&Lz)rY7}׹qkykx@+MOgrknueu s_\nKJ|?xwݹe5k^탯cEw뭷~K;vl;,~^1/^4I3,/^ߌM /yKbxr: K䗿x)-LK%:0~m%-5/5nxhKz׭uuھO/K]7mM?OTޡZ@L#<6XSN̉( N&V컂PHl2TAATM(,P"%3x0j=6T m̱^\u~VR_*FD; phYpxQv*E0íz(rJ~Y&t+i-ܦv`: -aCGYr8YP)V{T1<0>/>DyeҪgBWo/N_?B<`1'`GsO%? X=O|DBF>JU~Wt7tkw^Oʪ?]i \TR,dz ܓ Q(D: c :%J>sә Kz}ēu-/)Rr#3vxmȫkL|zN7,IIsA.Ǯ^ WѣqOedg߀]6_6)WBφ=&xG;p45*V[e c\~Ae0 ~hMM]'iƦXeaHC%ڮu*s@p6:9j{u'.p>ϚO.!A?J@#&!@VsʜPt5Al*ilZ>f|'m̫<Nc7WҊ^\q̻f,o5*>NX$0?GӔlun+Uڦnm@>c9W<~sYN+n¦,?^țUՌK`sU#Ss^!KtM+ 6dԙg{2*8==4}_DK[K~qI'y xH4[h<t gcMnj5jUfӬg^%$ ׾nT://Km01$Sւč9m#9sِ9M#Z( NPe i\D09P@}46cP=ւ0'۔OyE'pɼO{A:R#ϰ<'om~푸'Hm̸t&ua6t% em]92'i⁉&x`⁉&;-ocGN55Gq;/,li(mcgYsnmyny5K}6V5#Я4rķ٨՟ncaИvrtܹ_&{n G@Fg܁Fξ&i_VסVWӸަb{ |H;m|[5oK2Gk WWN?HRm΁#?wi˼l0k zYk]e0-0snyƗ:/oE^+ijY%_^2Kz[)}+sʬU$` 8@F>R2oTvnp:%ځ\v[i)k\[ {¯5 JxOH>śE[m*e ko:rhQXamup[57=9/mm z V.׻%1AdCf_ ,iVٛAyנЎi6\y%[lj@ +h*XS'q+w"EflMGTl8#zoHQra,Td> ( r#_:Nj6m͓_\<]h)-4W^wh*ߞ|~ܺtbn~tA|Y'k9g=+igY݇}zU7c3kMC<^2c3un|xi8$X :5}s&slpGY?koJ8$p.zE"h뚀NB'# ,6xΪ qvڨVqiE F[S10TkSe)4JɲY^sOyEecs ܏T3N{X*S'_gǭN֏2}9;}FZ3^Bk#O&x`⁉&x`⁽;.cx;-{Tyv:Xr6Mƕbi˃1 ;A3>۶/m֗09{⦛n)^UJ !H:RX;%_:t#H)ƖʝftU> #CVXIg>daJbl}MvPd{Sk̹X9=rC}E ̾9'(v_GF: Y{VC^ ߧ:Q=/95Aq"TlAP+Ҋd--QiA"r2fk*o9ܟQyv~:p6tckc^KGMϝX.+e_PjTFĿ׬8zXXeAY.nHz8tS |\ghyJ:9%/6B-qTz߹+~JmQjߓ64WeSŒhWpy5פ^f]}Jk7Cfu](F`.TIЕ:Y- @muF]izGi f@^?6\A=M*seW)G_<@?@gD)$qel`Ha+WOnz)u.15].i 3shoVr`u2'tkt飘Dאr"Gu鲙i ijS=n=c# Tv_tƾedLr\YYmfN4%0h`H; ^|,8u"ƪGMk= ӏ%gϗ׾~1?tD1l ?֦ Q>~8_Ve;0YɦM>zo~V11oMkx<4F]ќ{ڠb _=AD'S1c9yii ̼ 'V}FtCx'bK$M<0L<0Cy`'-Q<Hʹ;%9前%]K-}g0m.yƕeLF͑UON7ݖQ 'sPAX~T@^)o󹗌qqv;uuC7lemC-|a.ʃҕm<5%,m2{ѶїzqӻޥﱆHu"V~y_)~6{ WwZ~]f;zM__¬0s9(%4oZ]w^)򰧦1/9k0K.2Jpƛy)G^8ëBIØ$+T^Ւ/>oʾ7sHOΜ[I.:^/~qB:{^*?Oe>xu^_'f=zA;WOӺ`԰CP8S'51 -Zsym#Ϡl:(q=G`#d6Ѳv\ ^V^6 :Ak u?E%]Fӛ__ܯJ@tjJ'e.rE4܆p( Cd`j~hlGudDg6Ѵ}?: [3:Wr '&̦Us?HP.̉L1d OCX&~Ym)ж%syla8[ҏiqMĚNjk&ڰqYp*}k_M[׏ sr¬N֗3\M_DU=ヲ1x׾H>d[ ӪÆY+DJ9ʺ#1YuAsz^c>'_:=-8E,`! 'i⁉&x`⁉&3o[ajQaD7 l B7M h=}MpƢqKF>MF?{,ϱcǶo2erMs%n+˲miG>LeVh m`mryw^m%O?|IV2~őw=Sx'Ev^6˨ 7]5F}Ylװcm]FXZMWMu5}]7y/\I2y]7Mwe:CN_rð&^vn9ԍ闛]޼Nd\g\ +ϝwީsP*x9/a% '-KZ%=em7<_Ҕr ok:׭:oo0S[_I׫\YbR7r :9ɗ=yOY[fݖ qGʍ#F$u]4t4(l2yǛQhސVӂcjHn91IuБ* Ϡ{1D7K4ޚ@$AOTg궻,mƙup^hM*FnMQʤR_OK~ߗmu=KȟrƄE sEи̘_+ӊREBK04$Wb0NsGm(.mmۏ <- $8Xc9G0E,ܗӚg^tDҙ k:r->ר._L/+ϧK:  1D&r;^+R:~nt>7)Fg<@I *g#~ө4T}L8xamKۈ asW l&kr8c壧5gt9i6re6Q&qeR!>`0FH0hBr`*jZ "k|ac|͙V@IDATT" f`G],tk*k\Yv ſtj#pZ/hCs5tQ`z'1҆#Zp`zu?c?rHm 0ȤM(St*nZ[hWl6'Y2[i|QOSg)]Ǯ1]:{&h]P`%ϼt~ȩerS)gŗi|_ڿe'K \Wyt^O?ӯ 4^$2}[ruE!xpL.w5ns37h+cPaz:t%Li$MstP3xhcT9R2"|wqD ntω&x`⁉&x`<m#O/}v4i{;% 86N\Y7 9|lׇ7,mo[VfKۆ^t%m90-ur^^f_/۶~t-W~hԏt^)ǘaM7\78mczoAL_=/вeKM;H7z]޲(w7J&:k|7uzzAkzmƕku_ү^kWJ~puW5@_˧^J^[_׻ɯ,^wz`ܴm7-Vkn)aS 6c@*Sh! (SI**Pa!4Փӛ<~{o u)_ҨzemM˕,UN{|>[[z.m{Z9'Zw\b߸u)mLf)_ڛdǾ c;].eZ}x Lۮu~~"3LDžq*j,԰0Ӭ%^h(M><":u-B| cл cc@R'u 3cR&Z$ -q>+t2DhئN{4qd_ZfJl'4t۴/ti鶉ƳcК&dW!GUd<+vgWŸeڄTӇѺ}ʘ_8*/I `:$x7B\|v u_bGFr\u+_U)bGJv!ٱOs_\ܘj}}T;j]|^GH?VϺ.( c~׬˦/ng fаipۦ9nnr_-|+cA\ֵQXaCs}l}Сյ_s<Uh$} 57rf/RǶm!cy@p\[#)M§F>G6$r2F1.3&qAaG}J :G91J=8_y"x |fvc3Zs_>Eh@r\;x8T yY#vFs >/>H^6Π9!,Z=Y[^z^.ثeKVJk>ӱ%fukO>\]Bu%ky^$hiw5vq. /?3,xUb Ɨ:-$$ZZ9l2ā>4_o 8%1,︉=9Of$Yb-Љ96u-c!C "0D`Eo~5,+<2k"]̟_y]DvUYEcE}EoIz+:kh_^ 0 f$>^},eݲ}E}Ůef)ww^mx<)mBRgI,|gӪl q󎃦>\x0)&٣iم^7KY'ﲝd]+9ee{Y4yt&l߶]" .*;eJ<>yQկ~u$ˀzW[%tW򕘋ee|L1(\Kurz3^ښfz6f.yui=׭?Fg*UD فI5*Yl {c}w@E!~r[`$Qf+gi/ ۧ4no%Ég_e/S/9t| ~1G>@'h|28} J|27VWI^~nẃ5O` ~R=6ԁ`t,~ 98G/|/>ǿOӧ7n<0賫:n_ַcߊW~VkK٩~ݿU}_ RI<¨˼Kg,# GTThC:e;-`Y4ݞd~kve1o/|]Oϱtl6 vo}x]<֗B_1TsM~r5㸎:;sdsE>bCi袙78gU\Gn0DϺ\/e Ke=l϶%,4th(6Ⱥ)({1s@> kX8NsInY2~&PY“Lh)z;_DK&i3p7PyAAsLhPR&_H<?R'}E v>wruYV]'qPoh ڽLWD/bhk#KKu!zйq")ų=w9919|0϶4[Ҩ?_>:^Kur6]\FwvHxk^Ӫ,. k+˭Ydk^f[].$y\NҷLYNI}.;LwyR)5o1D޶Jdtx,3K_cLݮ97LҦهi%?m;rۓpOv?2g z21O]MO҇f?M#՞vIe)y๞m/ğ-I<TYfZ,$ҟϒ̧^ʔ|dflMӟ>6ks! Y:c^ .,{ $$BZdbhk걀,*XV <\/Ke` k^b> tl~۠7]#fģ =]tАϑ!ә# ^`%mxN m'(9@`:G ]M*^)=۴@w:*-A7cKɸych%h$r:$t\-״31xS<>6^zj(vJ$|:F$ P'14NxB~Qx ?+Ж|js>X]ϪO窯> rFXTjn<ϡ^PV:yFcpI|KvįU^k52btb#2⹪5ayL,3=S2x7R-t1ScS3bgDbIs qz\>T z=f٦aN>uhW0 ~l\x6R=>9-ڄMB>cRGN˸|Ad54h}@|'y=SƟ$J1Jqbϔ%Wyk7"o#<3/F4-?R&axtkN'|sqSv'8#?{^U{߫t2j{#vd<յgN7" ]_ϿzūQ u u4}MI2Z9~džbZC?Ј_%tup1R?d4/bBss4 ߟD].K^(@e<sXx?׉#@45m4 q!C "0D`E`DK;4޽RzIM\Nwߓj ]lwѧGw&%K^4N^E&ɛ%mx)ye}VYQ3oPNic:Oe|!$Z>6YvŭSL~.]>}4ov;12 羹_;;k<}-i;殻=9xQIȔK\ϸ-må˺eYʹ}r}|K[Өg''}Neq˹4}ZYz/e.^I2Yqݺe9o;^_׿ 5x%[6}-/K~iwgZ)?^ɟVm.O>ɿE+GjfU'˚G,6#=s;bh8ETXE#㒅hpi>%9yA{?^c`gxcb~7caƭOI#Q@We3u>1E#c\H,ZY)88=6ԁf~[lqg, y̠g=5%rOdl[R4&a"4YUzktueZ0T-}u|`QOHx< BzvCXUlת7 /VhycjkBAꭺxV?xrϥ3ս׫oh緄'tJ{Edf PoN8}p=9Gɀ-az.۳ r}XR4BS"z6_b.k; 1Fô lX>%<8Ǫ]1׉w}Kh<Sp mtpLΘa r mvmzclg[F 0n߲>CבuƵXrd`ϛcRhqI ]ixZ?bT_%::߾qg6] mcvX=T?fujWk+C*gcv ^WV>~OuNo;H6nlu!0CG;P%ܦpBv3zҀW`)lPk10P8(2yrC9D`!C 8ȏD,V YvL[DlʎZćruwJg[VY6ӻ2-.3n^[&mZӱrY.?']J_z)f=i9dm_n|& oxCی[œhO̥Kq³= Lgoo;ιuV7贝y9VJ5|Yv|e[e2% NDKzY?^\~6ʺ.ۓe_4_322usԳ˒W?uI+Mkcz~5/]򜫼AY򩗴>xgloow?Jy-r>n9gz/K-Kڙ_Kgv&j4~QB+k*,n9Id z$RxŋUaP,p4r1G%uڥeD hnƃx+?q=кE_q?ڵ=Qs2g 8=؏uӟډw˶IرO,WIEFs!f%ތ)b 1bScj)8ӗ7ML7+?uLƲƱ62 {Ƒ7x !-Ճ9I;lU?ǿ^+rsPߪ6څX.÷7-ߊʳ: |:|a7~Wn5c~\7.q0z$iXãN?)FOq4RMq0߱6}9A>C۴ rh;'P\""Z>x>FL(9ynulvc☋<ǍOYy\[x56}qG8Sb2 iϋqrV468&4{C$I;ӃXdz1JhF=&֮x"^[z|-wd6k:5͹>h~P)ꓜID(jj̣kܟHdE#uڤ5%Z~GM?} 5VQ1XznxNP" |˺d[Y4t<ܦlmﶭGݶf݌ۖnM$(v@"0D`!CT򖷄i%D\G1J[(U-myt&vJڼu R7粔/Wf=^|,0\.w}ѲN}v&ŧ3U8 ԉ,Hh+D`Qf(L" N nA˼(^p};ڧN?}8uYf];asnJ2U o*,81cbv|V"Ƃmj*h<c@_L?\7['e(&i}X2scbU p6..AxJeluJ?=v̇gDoΧoĠQ WϱR'YsU%ת/>gÏ>Ym펪sk_;Znf]uί׮?QQYƧÕh2%Z~U7:icMݴƿ68g^.3=/cszf?bw`6>%`پz wm\Ney[il"KOĉ{AhЈtǑk㋞ +ǃObN~hzW,;ޔ(4l2ח^ I֑fۊ,hup'<46\;0cƪͧ:I#"ø:ʖ`T4ݥHKѦ=(x6U\)Dnd)."< u|Xz/iOU[#SmlloyPoܨ_6}] <=vrqVoycwpf*"M<r)z eњx oxF.XS9~"8rn>@ 4o7ݶR^)_\ֵ;>,߿ w!C "0D`ID~n37>mz }ǟe213%r]..>ZWM+ڞ@>_Uذ?eJ"YHx̩g-MO>9Dyn/l{:z'۶]4)oNZOY|r׾u|fu]z(777Gy$X[Y2yse{cG0]a<ޑTƧ`YT+^<,7'XBx d,Rw{n3;uآnY8E6Jdiڞ?ز퉂A>R擫=qV]JY$)OGΫdcLsFR%b":MD?wEC4q`l>qD@WHrcv q`/Qr@c,89 Ē18z>@LGk ۜW* }G|f\c,^P/]sq v g|)Xh3]$f#@rFrN~e\^xNs ;';.M4ӱY(]O6b@w!Ǿ&ɐ$gk;4%GdiBAٸJ\7ݽ3zQ٫n*ɒOY˧ѯ߼DKE}x9JTeuIr|az_-?O]Bz\83|18<ؙF<tx娻|@i}v[A(,+ۅe|vmC si*/O F?dsC;hk "0D`!CN!o}[jeٿ{FWi+WֲvNC.z/y yYt˺\2=fﳅ$^ig;nW/iEi|dKòs.v%Zv["-^΢%Eft~M/T>5o 2=xm̲4{%q2GXޥ*]fٌgƻv3/nͼien+)1fl#ng9_e\fL4'`/nSxe\ !]4y Yoyᇏѳ.6NoX&ƥn}CsU3DK-o%^&-I/`ʂJ% ,mk~IŴn͋>țg_\.AKEE!:<샛&4 :-W 0.um Yp=PN5W"/)0|VQ cTz#.ѧr1.\jBX÷/ƅ Ϸɛ5a638F`\~#7*td,؇mU'D1K&xhSwȆ1!2hrD8n=bzfƥ_70qU۠N.RdSЁ5Qr?\Ox%X`=Lm/}ھSɧi3JXvq[]lK%iΆ6;To)qcCb_aF彗wz4ݦd##o}-ۑY$hIJ1q/ ys;Tj?}it)^p4u88!õAfԉ=au }'ڴc`LjM=9}U~sjWU},xs bܛt, mR7N';xV֣; l%$\d Lkm5dZp::~Rrc\9'lw;Yf;x۷}۱so~1nܸQ}k_ 'IvOymB~>޼tXNOd̲hqvhilM2%JGud`.8᧔sݥU% .mSNOG$tϔJ/CkISN.`Ӻ:iC4JG#lg̩ǧIDñDlv`3tsNF#hoCrĚ:~Ye5}mY.:l_-%%5&NH0jp̨Atpۂ\:;qA@`zOVW\UvFs\77p}bt-)qշwX9Jܔrw-%v_X}˲S}șWꠋLԔ-_6BD|!GI*{'x8?@!q&\;ɹۜIfk "1.>5?T(Ƶh2V맽>g_aPl>mR4%4d)gl#3۷l 3 Z;Wr$TKaTPFNE%7]kLFgskmd~/[wA]&1L귯w72՟|bfWW[]l|KU=UɸL=J (w;_؟^e,J{o ,2:5hBTi޽DXd9(@^/ߞȉ:FY,7\;Q:*9CEnIS`պFK:AR~8)&LHѳI;C*۝~'|a9}BboBF[7?OaToz~4+̋r15 (W:&2惛R\7n>ue];3,g_6տ+J2w;Ѝ:|Pinl/?gy%QRBkg76#Ic}F$^ފ$Jfw9+OD+/b}^f.5ӧuWCs s(T걌k@ Wc'BuBv"AZ)x}4$&|k7P\pV{!q\s4shoq' nRkK@q>z\jL`.0N.4 6]zv-) 1X؇Y8H"TƇmT}- 3CH~?M ^ݤq2sk\+W=c6DŐgW  *NLY h9l ug82,<NI0 3MmN>rǓe/si\huv7.;[^۴}ܨyO/>jsḲT[jC׮=NܵMN,#H<_/Q r+ߪ~Ϳ\'7K8Xd9rL+Ҧ]QW,[B8?ur-;&R9wѡ Nq"Q;ಮ\2m(ux^A~!C "X~'~b.~^994ENW=ӺpӺJ<9/eZ*pۘASdYN/"")ƋDK*hfw*ج_Yug>i__˝r}{;鞛}: .boI-cKu|1-]u'XlĩMh_&r^M/gYKzc'ڮi#ou)̢8g,7Irxy'eJIg{$X><袙GidGGy3/˛y4ˮĶ}^VvK{}w3,57 nF}PgQebYh\3 Z@bXIvJ'F2.P,XzYm`tXf$'X(]>>KL?|z$uH[u%ߜU@ ϙ_h!Dcg9tojvw')1΢-s $mϖo$T>"3iG% TG[,.N$qndf;&03 ~g`3Ґ2|Juphl'/~]"G-+d_|~){O^Ňgp%Z?wΞKv~zu5liJ.K>~Cv׎kU3De\'yPk]$ L=G-DJH2kE9"36Y_d3n`*a47Xit? ;Bs'ƽ;\أ`<,g\ $sSO(JP٣ =_'=MCU7|E?eܺZ pKuǎNҼ摉X8,7Ņm%MճzvxIڎ&SyLl?~>V9d1D8wR':72= #9gy#-&W' ׋cKB3]]} ymZ&ծkF|F0]Dmkju>8R:r9/>2jG 􏃘 `;3 Lq\^r̺L'ݭUڝnGz:{%XTWo\gķc7jvdwji;÷oڙڡvܬ/hɎN.пUv&Ngp7.:`h8?yNEv0y?=6*9z9] 8Gz# 4t4>x,hL@{]H{P"0D`!Cm+-q9?iOzm4J敥.S9G<]ZΥez'ə%,H1ayt@٦njoQm>cQOBկ~uu'VyuXwͥi:We;}:}ty8OWo}wmas6۟޼-ҷ]ݒF݇}rBҼ\8 l^!iZorUٙ΋#4xov]d7}7E2=n6ѲO=rU~V]7n,O$m<&TncM&>ZbJrPgC8wh$Sp&yT; s$B ^DN7hZRVM+#'; +r 푨pƟĞE6 i'CǾCbJY7A Z|]#YEX<<3}%fvvbF;킽豐xQ CDBƩ%@j3=U? zMUj]ɔ1-3IJɑ\cx,$Z>f5~K2N\"Hda !Jr$!Ob 4ԟHA]+c!!XTmK3:/o|"rMQ"28Tk;M<4 yI#X-x"]dqmڎy!ZYq> l@?5;|}bYX>lr߭qur| }\eU|GNV:g$JΎߚ%iJ,^ShY^P$ZYpFF nq-_bs 58ͮޱHũu G`kw,>Bܩ4UmR%yxf=iE;/d{X@%+߃6>(yШG\xN1Ap\Ә[Ҝ OYǺ!1o \-r蛆 :86fYI&#BJК];M X$sN$aDl$2!+wSIC`T@ DrE*<~q^B8s #وu?"^ߚML"%s$bɡY[T;P%:&Z?A(`p t?olՓ]<tWzꦦy%`WRkJ8+ⓣJ.JW2ס 1qAuf|b95;1Gg 22н<2H 2q*15Tp+I^S"(Gkh7)Z}M|j9yt>y>% :5~4A|}K+gt <+xk0ruybqثayl" G|78'},qJ:|lA2eYp @ ہg_ !͛<^LϪeXԺs}ƺ>uUM٭z7>'{+u$ZEnV߯D01ulTz7*⅊#/j3\ _12\SV$]s.^O$1 eĔ$A霈MHI\;1B/,뇱A`hu06"0D`!C3H-/rR9؝Gw>'ʹn2D'c.K}˗e֟UgzGH&x$:wQ^͕hq4H|iv0`zm^ŽӢݜWOĢ.OOM՟424~[ud7#ۥ_fWzƱ]/4uKnߡJ~kKEKsL1ls4y^ȭJl4|yh9K̇s#d׼58kmdi8G}y =m;_ӆ(9f}1<,%w2Yv,ij 6Jh* O"isLmviڤ /p/up7RhK6U+ڏ{^m-uˡeQ'Z$OcaKr? S$*6QcR |[b2tD"pvY =.MbD$c0xф` Y/ʯX Jyq?AQ\N?'., -6)u@ib&LƤt=K.TC]1װC(%n<'З-&m5qR2$p8F !rA|&On$"Jm`" hIdJnqUC[aS?ʘ71E 3ZNU"b| l!D*a!5mAMYo_;+d04cxs7JM?}xgP;ZSnRyKJT(=vUHծ7HwuS\njg] 8JHnV/lV}?7ђ1P qaRIwlui/Kbh(6h]bXuMHl>Fi#扮Oi'Z=u$@SiYј̟x|`nmO#g> GxZríG܈]1Qv2s4>/ }Ni02O-1R=TG؀.;́|\P3evX<:aPXڅC\o`oSg| cz^8P[2 \?vVHDA T%"a Q6;D;7ԛs:Lqɿvna(K]yuو2{>7.Ū=THb<@=+&6!<{X-K_:G1Ux{H<2Z6dd+aG§ vd!\1/7.sppSY')FMI@XAtXsH4hɺ]& |P_H&?+ @ a/p5nO|r$y[%,k]ӗ,u}OVU]Δr Z0pu֎rvc[]Huk;>~V}oW @4qai띪- 5sCetspS aUe1ēm'fNjsc} n3qx(^8ie~>H4Zڀ"+7"0D`!CL3|\d̠4Y'ֵޅgd,e/Rƺ]<]]I6K__ !w(m-'a{nIc o}}X$y#pZ񝥝wD??hit`^Mg[d+_]x$TJ.^K˒:md$oK,szY7ǹ?'y? "3ɗU|0#S96лh*=IEK-v4sLSL$jД,֓Afؑɋ͍-򍎅L/z =uVl;,z]S5-%򶁬y}jWJW;nf??vNu^,[[|J]g3s>"8>^v5Xv8<;f"$Z?XĀp]|47xL)҈e3?|xq:um:8SԭvSfUۘ f7z;TC +eǐS5|TT#ɥhɡo^'qvM$$1?M3d@ba>=<ۆ&]w\2.4j|ۄoe6y?՗OG\]nB ީ66HԵD,V/+Ov܈Ol)ISչ]}fo;cX6x5o*Si5ε`Z^6a 1Z$1' HIRS !c] yD8bMl Kw 8y_fsFTg0pYd-gOY]W+%G#~@sPn鶅qPOflf.4@GwE$8hWJvd|ZwO{$ /W ڪxcpWJlLK- qb$? P'ZV rCG]w\\}$ CQl`OM,Ao KhN$߶ѵY]:DL%S:9Rq#@ kOvmohI@퇰\hPd8G[PO=u0l2O}ЎՑ6gA }v@\onB; '&V!{~P N<dPA$e$_sI%hi~ |>:N(gG3_|{&/;"YbOY(Y ts;P׎Z/1wĿ^}_ϴH9z0<@ho̱xFCyn Q6!^#3'{r ~^ A ?mF@ 6YCeTmmXH{1y2*cmB7|bErbZVHLH`qE-tt!z|.\>t[ǻ$j@*I"#B jXxgXV{ 0@DۊE:h6 1&ު@.|وc>͏y*63Btm?`<ַ-WOO]Q}}ܭ^Dcc5+Օ+x.*|';;7ԛ=#7CL75%ByR#.107*NfBt &# OFy"Hƍd !‰<#vĠ=HĠQ_h贀sys~rugu ǁ~(_ƅjD->/Nj_cqnp_2i:z.mog}ø\-5ޮgԫ%} @2e=?cv3e=%f֛E5)}|.ibj 59@/aDSpՇРU+99ǚ:gic p;Bs&|.:KmDȻh@2N+icpD؃Bgȵ9U]#5H،4]clPp%M˸6vm/qwL"=oC!>%m]ljG:)8|$KepѸPw̅{ -hꋟ'ѩ~E/;Tکr TJX&}vԸ\pQؕZ[XC*`K׃՛Vs.,}gPrFg818UrTO]/k,/Zq]y#ypڊiky\Dg l<3P PsuT~ {Ф5'ǮYiXY_(r8 п:Q >td29?|6ɱ\y*pMA~!C "0D`E`D˓zfYymLOe>xYgtMs҄Kh3$=*d~j@{іY #;$q_mO7ϺSXshbb?P7uZzyYv_(N}>Ea?";L9 _=6}>NkZWy=T?s#%hFd1nܨzU]mFƾϟ?_]|> N-%rٳ?HYfzoK9wbW\{bIvT)dH7OSGHoQ_EO3u2E*JV]B#Hx%rc'DN?*Yŋ Lx?p> 7J$l~@wa{\ߛZ-c%9&ĖcmL)$qأmX d@.$ܬ乿 ^Pڡ8n9 >խs"^rV*D P 0Px~]*ڄc|Ǫqāp1\79YɁOC:r7: :u,G-z.5:ֳnmRw.z?)s|3z65>YG%]ixIO7vƌ1|ꐀ~o6JHd=u)чտVmE3=[mk`qf5)/_]hW[녉]ef%^ӋT{rz ՛.89~Vjp5ʎ MRA#N}WeE"[ci bDCV;|<f??DK5Ke.zKyMmN[-m~]?mV~N-9;,ölwN4,Ӈ[@β5olWz1e<y9fmbky@]>K9ױ]=䓝]-qӢz||WLᕚ%sSS`Jv |&qҾGC+ux'=b:`5z.zMh 2̝we-Fqdy'|e9'YdScf9u㴓z%Ͷ%`},_?o<_j]Hx UO?sU;]Ζ[ՍDV.^kspX;qP8k_I6o]]tD?EKhx0†H$-1I&Nb6qtm t1A"gGGr#e/ҷP8G7;3 ~ JM۹ Y@ = O5'|]; cD=u!C(wȶcہ{>Sk_صoCSVJUys_rE";P|kO}7/Wh~ID:'e!aA΁fQ<(q 'C1i7N k:uYs6< xEܥжrZ\,'h ߶# b#eu| \؞j*~7RRS]vzN;Ss- _t)vQm ^Ҏ;ת7>`o)%Z1XaŸJ\+<\.H<@FUd%5[M: !CF"UC_+:\d{a*4SZj:% SCU;{aݏZθ؉Ik u%t% d"0D`!ClM\zY&u2m2} Pi\fܱ2z^fRϲgѝW&σ}GZʹr_~Rv|8)K~cZ@s}ɾ沋?&ZPp"|d|C:|DŽT2rg2>~/f: ,ﲋf^. q=%gYd&?'4Xlϴi>?,2G9|]~i/ח-i1y_M qʺ},q'x"'9oVL>;6}{;R:UP]gK IXa'&de,lѼ#t3UIDiqcc6zճ<,hӋU/d޹v9sBv" #^XX$TYE%2(c4ecQi;MI7t-]&ñ\3CN(cG0ьW|dяX!Ӊ@_o'xG0%4D|ݦHm>y0`~e/M3n^qEa{JP<.h^sӣ7nެ66˕+#jmϺ)ycSu}vOўO %jZT? ĉq8qh,yXk$pQHT>`q R8:W#19G$C{\A'H 8v `qz/8>.OoI˺OpJ(9#?0|=6zLs@\čtm>rgg{z]1=Jzh}= /3ӹk/s䷞S4x5/IeRHtvP$P(wl>S~'#xGqtt9܇Y~˘8.>-VX1cxDy)9z < fP;m湅 Ԑq<ݥ;~z\ !O>ptnKt8q w8)^ֺp!iKu/x.:2o\,:˞t9d28`\.YtյKRC#s{u|w<6]Կy]F7ۙwqSgW\-qF7,ϧI/]/ :|{3^K FB >"vS@4kA0DN\a !.|6fQdO춋TD9FFGؑ/dAx?{ocٖ"5@Q1شۍ.iF44ElhvSP ?vR`76f0UCQUo|/322cs7Ww{#22Yskk3%(9pnٹwUbV~aT(rĊ JЂ!B =9b'OiB%Uv븰rȪh~gIdmd?Gj$uj촪M+Y,VWw5fJ iL+y[-I&Hs2^a9_!z!iOBI2s}.+q8AɱkpYt&9" df>d>Yu|o /D˗_-ljJJr6crn$T*hM%j=5uwwC3}@Ot }/TEcG"yHpŹU /ēssMvTXGķ#8(yZ:cЎt"joAml/x%rcbD db徆ocK'YՉPLJ) Ë);?x#Rձ =>䡃]c_}ڭO\q\~\~U2T$r/!1L}?~X!]ΖLh$*.cE t80ǿj3)Zo4csNog=8<95Eas_,nV=V6u^& >sύ+େzq̓Ѻ/ѝ]YaOfL7i=M {ӧi:-WPX#y1ϴ"d%h,vi5JcE", QD`e@)ŞQe)[Xj҄j&)`g*)iimn sV;O:PӚd}3&ƹds6%]w\Z3cf7G .w \rS7<|ߕ[w+ޙrsrY1Qݻ,5[㲮%ߓ}s{2{zҷ?S>}?W._ N3ǝ:R-kx I&DY$OVEN֒ "bGJ!xd>Ї$U*q3bZcSR@p]IgyN u_'Џ?l!3ey^b!C "0D`E#ȉؚ{m|]pi+$A.n;ZvG͓\o|]q;b=~dZgf׵t?6yA8^N~>ڮ\nՍ\(iNUxS8:~ N~L_ƏY=4q 1}poj#+4\o%q` $q>@l8Fӣ:AN<d's0Yur ㇶ!XGz6b[/hqǵ9Us]B? [/?,5sBvrV$Yn[ -^yzyj-})dn$Zݼ\~W})Qc[p (ԎyՌ][#S߹',?@eХ|EN߷A4y>n5_hB0@c)|ZXvϞG*MCρ]J9-+pK_Cۖu}g. 7ÆiMq!C "0D`E`Dyȝko6iq7h8vw%Vf\N@o.0Ͷh}z]UXmd^yZs=nҥKǝl m--sNw8OOOLcHI~BakyD7҇)Nƹ?5-cY@s}\ƓqW}ono_}q[_e\̬'cG<W$jN^ g/z62@&@fܽ@>&J^UZg5PuiiTkๆd*?׶^ׅh}tuv+wC DKUG6 t$Џ*v_r\WZFH?bxzΨ>$\cAO#8W `T%Y6I5e[?%`ԱK!_r{~uYO{kÁv}⁒*˥ [TvI.r`O?3[[٫hiJ4ݯwHy#G?>RXEJ"YY/q^V_<8JI}Iew)lzNr+] PU%:10qZc o#&ƫu/4vg\ξZ<~[V@36o~a2OߥA_!C "0D`ݑy&Ft $Ce1xMogܶ\.7mfݮOa."uI,Vԓc}cs;M*7M8I~LM;RΩ6sٴED;wdӟ韞(ߜnSnͶ1_]ߜ # Y.8x|gJ4]b?ozY? 'ɶѦ3}Ҹ}Nso߬soFW;ϺsyN1r8MhK/i:YPǩ%WM_N0:v,p"Ӎg1hMК{tG'P@좶ݪ=%V rBN@ccUC?Mq8ֹ1|ʇւ.;0"ģ*;PV bneƎĉX"l]I{ .yp1M< "pW$\ătOA+5dE\HO54j?N=H;^>?*r{sJUR$Z+с v|鲒-n|XV#$n\N]%k,뺨PvW_y_@.]ɑ꣒7#\J"c\Xu9IQ$D?Ff*?ȼY15}qߍ';-tq1{?xmbMIU*ge]%VE9N ܷl>ϴ&>ZD=cdtչ;l*R<}Zc@pxsn|!Js I@}Xҏhwճ@@ _r^xYU&}|_׷}~([lnhW[vrͦcAg]=hN^>;V+x8H57vZ#YS8<jG!@PzM'rA}d-mA q9i֑^x)Gqo,Pi> "0D`!#0O.}x3.{rJpv̋n&mN7m,k\l4Ew_">jy<*7)rGͧEkat2]+W7nǼ);k}gVOf<؏Յ9"ȜX87cl:)}LfyC_sPeLl1cЇ֔EMn7g[LN&q_]df'Y?cK;qx˵{GxGۥߗK,|XpY, T6 d:N+9-JENݐץ?Swie<}6?<֓~6O ªc.nk2۠yM!^I`g,GnTd uȩ[+Z8^:T+01QBql,*RT&yF׫u>HWkJ<ՎGissS;_)L9%2+lWI̱Uϗo,Z4'OH3  xǐ.qz'VDY_sj)",>,-D`%>]@Nвh84x%?VM4R_ۣyDH~N}N/"s? #j6M4uAs[10QMbb37Ҫ#BDinhKZ=8AU99m8|1oINxv9 H¢] r]PvJqRTTU]@{uP?d5ؑO[Q@[׹HTe'4x,,H` U㣍P'-6dȸΘKvlx7o p=׀%Vd܎,0Yz嚦vt-ѮR _Dܿ[xgۜ>pp_0p}T[H D$sV!V`*~TtJ/z*zpt3!?a@%r GuFtJK1NuSoxiI#'J/&8G8яyN!C "DD~E$&mR4J AJJ(u' lÛ/M^OugnI!1di3ۦ/\y#c=xc^rLO;mosd+M6-QZ\wgO~ϦVU'&0e)DV-LDm}h֗qm:.+?rV6xc46׿6_ƽMn\S۔Ǘ6پodѭg\98ߴwcurESB%4gIЉA3$|;.CP/o۫>W_^^a LyaǼ,Yi!pgv p+^c" ꤉ AT(*^@7'mP4ӛ>y*!nP,F|$*1F%yDK.N^I.WŮ7$aiY>$QR mSЧ:zG,h * r1֓R9ԮU^y[/64Wt,G>Ɩ4vLU66s>[w tlxWk-J+,rFi] 2 ߑ}:(p_U}0#py09D`!C<>ֻhg0Iu3k24zm+9I"MNь$>}X>6g>2}x8=m>>~cW{޹l7߸8+hj^38'ק#d5o N0|O^Brj䒅7mTPíʧTy%eEuIdq*L= hÙV`+/e=Mۀuuﴕ[v QC("#(wIQGJpEo`pdP_pJ"d0t̑|n'ԕNG}oP^x5=X]nJ_|Ζ//R>rJ0/U_*W._(_ϾzGQsL?Wx9ϼ.}. >wiC󸣇:$|pĽx| 숩ZS^}M=h IןM/+ǝLO٘)q񉹺?G?|aR|y.mZS6I=塛K^2?utg.eLLeW,z}jvu}ԧ<=.6Yw_~u-eoe:q~ꫯFeSwZ]bs6O[Y?ýDSz^9W-śK&|.u*AY֯<˲+@,F.vat \@/l%9,ju5Ud='Dsp%XzU14zHz j%`>l DD|3-$6\f\PĎK'b@ ږԝ*~i8qhe 0:jY%S gZ]u0 tpB8R SGw. m /mRE~,~RlXDRx88W$cjEk+lDڜ35Ktg>L3㰟6M 14ב့:hqW˟}ߗՍrG{{bGC%?ӛJ} -8M|ݴ1?6;Im<24gNO-G/> _|&;9KO?=ReJ.ө[o-5庶җw}ZTN0ҋj,t/uNJ!=k?YSuxXT?ˢ@;TNmv3vB*}dsF&4Μ uܶڮ uM(G$(ƎIn3Fa9|0 ^1:âHRW+I!;R7޴hNruJ;`Ib-i [\wj_} " :.MGsPIty>HI,ai~ݪέh4%V^`瘨:vP\|x4Kx8ǔx2^_ǜq<ŦHk$Gq>/5K++ |`Y&#^&S+{9A;g/ݽk;}^^x^ur|ɻޭ]}eksܻZ޸z$d.랶/_r{kCrhypQo噿m $sOݐ:gyxNC8U~xQctϗLuMdlGrwvGnJ_xt &zײG<7 zĽ;Ye\PPhsVs2es#>?^ ^ "0D`!S~G~dfw<=>LNbqNp]t;*5m_[fim޶Y[Y|!feoE,2,}dگYd=iy|3Uk׮] 5mט6m+&rsssg88xtΛhc8{6̵<~ms 4@۲m:I\nr}Yr.Ms{Q8;n*gv~E;}O_<f|i^:1m|fTQlL7Mvq}^.˴c~Ro._WuF.2,E,<&hު(h,6Io}ꆼ`ep2=ߤ8zk=@Lǰ9Lo+˺q,b6ǜ#N223Yj4dJ6e0ÃN'жO8T`kc$DZכֿ۹7C-ԯ,wӮ;eG[\nllj.O7nQ.wh@aq"=#}%^K[V/=)m\4o QWM]0!C "8D`ZeqMNYx&UK;Yd۾;Fomk^E"Ի~6u6%NlpU.8NO~ZY|_|NRlzhNLS.Pa>ӛmY>13G7i}~wM+$lteߢY|BUOW|>2xѳ]g򩧞y?ܼ4_fT=Γǭz>`WnFˋf^n]:"#% ld #୏: Qbz8GDOk3ϓ\wG2zy1dS~,HA m:Ї^U5GJ&d vRCcG,< ,SsmB)m׺EzˁXlY#qS[/g])g4yOɖJkDTrY~AӮYJz| Wyu8;e1C5///*\}u2cw'Yq.|>A}(B]M$؍dڅ6^Yj9Y\ءz-r$}nI;YU2J"2$q_"vp9J'1hsdo>tGՎ}Vqp=Uk:U~Pπ,z /ęyHp8x S=2vgzz 2I:b˳P-Ϝ\CgFg:$x-YT.굍>Xt^.18@5qv%~jW^rek/3׫C cͭijڕ駟).]鹯7sջwCZ{Vv~*>Tg5ߺ02ΌSD=x!mP;@9ȵ'\IrԽ<^5/9KG ųځA^2\׉aWj ]-(Hk 媌~D!\\lr_K@12zJ`Sҍ!C "0D1,;ZM{ftvzg#"N4ކ|}-lI]uTqVWf;\y"E Oq}R~c'˺>k?g]Er}mk@kezI=XU;Z Yo]Ǎ|/?^,o@'XZ?|S,Mk|!,ћn=7fkݶY~,~ֻHά"[Y<>"W^?1 gy&ҧ4*?ٖ.>]uڏfd~x:(CgT m_UgYLy^ez`]Œ䄋(Erj  #;tb ^^ 5P#1 b_[{qc?^|v<,6v^|G׮jEN$X>x@IrK_D)r_ѯCG嫯}\x;uygG"˪t?}~@oq5(}3mPj6xy7$VB :d!* ʚ(^%郝bgP"%Oz"!;v u/5;lO3u9ųihUtھ2WlcBșs |Y/  } Tszw_׀3uߌׅ߿{N.W߸q]?^/-{Ow(rnEŋep˗VʷWsσ|9A5!sZ;z$H}p ? <<3 RrܹZ_Ez+Gĩ R"Ӆ'8Ưq f7v|M0~.'՛~Uv-M_tlgSw=(}OX</@Bl,b3vCncko75ǎyه 3|>x|<h7/sxx\i{U=~ڮØg?v\seS;X(x%ܹS._R.x 3^3zwl(׈p()@"wZ:oQ}_q'4SZzt0^b}KFR#U_'sIh$Auuq2G$nz 7%4zm\'|jFG5:U 7jH>3Kᱏ>@z>ж <oc9˲Y816QW~z-chg]jzďRNKqDLCIt>R"[1}iӡC"x܉4 ~[5VU}oW^S`bIgo}|[?hݍݨ\$KqtCVn3ulyo^D_.kwwo)anqn{(svWmG۲Ƶyc>p:|pnZdC\q/6#|)"R^m;F^[t5{%RS۠qS5!tcC?BK\c v(DDK꾖W/UL~HbutUNG1#!C "E軰f2Qn޼9K:߫!gYx2gqI:p8NQ7E_;'S.q׽Eqc\&~W5k[,C=?W2M0 -of2okg75i>˽iqEg9GgS~[n"諣irYW*ucǎa>_]nhA!gݧlxOsd?|:4쳣 'L-~* WZeJER]+E%^<a۵:G/_ :Fsn3^ +mdO\co^ltU|βegOI*ohZ/Wuʍ7b5%a W_dKR;X*a׋߸~iLv9y~<3P9q4vh{@".<ğch e;080D`!C`| yfKsQ|L^3EO#Ӈq"Ӆ(>}7q$f9kLz.zDfԎ7Q'}+0k6zvhel2Cs,.녞Yxr=RGWӿzOwꋌ9|OFׇYw?uc۔g~Y'֧z*MӤ[G5MwYz3?"|˶fĚ+:Ά ~_x ^3>8慱rcY2m2}Xm@? ږU5䁚_cbPQ^ͫ*qR%!@Wrj$5^wVIBWXX:uFG2r y&%Q"k,'\Ws,prOxM,pMX:#8qǀy 0Ftd=ZxJ9/m1:3_ ֩ݯ(X4זVڃr&h>-kk;|ܾ}[ǭm.=\yFǾί4͗ j+ջJ丣tU|W/V{>oߛu1%^X"&,oNO%@+ZPc'b0:7=4:֛?g)_䌷}َۣmP*q#JLJ8:v:47/;@{37x<.YmP5 7Otr.Cn7zNfyď&jYJhpDz O$T-}(}y`vۭJP)8_'v^G'>CՀZ> uQDya`2#y<oxNՀj>ݻ՗RQsKY.gU?g;wVs+/w_׼?P2慲rϕ.j^A~V[[ʽ[R>?_WtY<oڎu-@i~APW3$=E܎7(uYU0mUB?|tT1J3B1 ((=?x@k[#>{G5oDz,F9yN!C "dDԑL& ܣ#(췅gQ~̢qwݕϱ߅  eWYqjr}}̲mEqF9w:_ǰl0 }G[[[Dtǖv|D߈8NsXX5<Ͷl͟&ߢã-ڿy+?k,W= q#ׇ<]t|#i[]IrMzs<.y{믿YN'bx[~x?*7jW\m8 L@۴BUW^Tv&1gi7=bTtW Q+|ůXu[4+ IdEӥsz0xu#NO#G,|`p^t ?ad 'Ʊ.۔oJMǞ몎ҴG\*eʧ>]*\TE+zꫯig7ѝnJ^Wou^ɗ׵y횵-ozUu~ip!k?kT:mB:1qs:mmε)E@y\f>pR#<uѶhn 9օhhM~Cǥi??dN_+u uj x)2VZwͺ?gpЛд98rugLBe=\\ 6ӥpW|J^?w_)Js$lǃs$DIB2q<PZ@ ~Җ4CnWsQp|&zniot Wə{,z(}/e}M_NomcWϛ:aܶ/,w7D`!C 'J_&g}R6q<]״46EyشŹ ws|%KSvm:R5i8}]cL:}4)G;џ4KL\}G>2<"|}ui!ǵw7eS'UNogQhW~\B?6U+~mk4zS_=[ҥrpa\u4鮓 ֭6N8`}d h!}@IDATPK6kAoLk+d#^N[ ϱvB+NlZdW ZFPiKJƌ$̺ P ! Q_XLXp(# !b 14bς?}7p[^jB$\3󹄿/4em mmRY}/|Y(73喒**ar?:[գ[Jc PT]t_{n %\U׹@%=Ζ|gYfGQH *T3gߛm@::S2_r?l+˘%2 .zJ⏬;5z|D ^KY5%AieuZ CJӲ\[]y!>d]#oz'!`?I,bjI UD/%@DyxI$fY&8B(kd1nV9ɔ0q1vŬdB=UcmVY$zsl5(3S="B;"21 ^wۥcFΉMwUmh߸}hto}вʯ+Z^zЖȟP._e];bk^CɍׅČ$ tE w-o苈rAI:})qA;޻Fw?WZΜ;}myR74qqa^+=Wl;֏>td<~d8neE:2N?rUOxzᬒ9Jyyt !y\4T#R(Ny.$jĔumgС$dgzֈDx.}]zm/+2HOtҀmPNsoǚ҃N\p?:G X. 4y.mVYm.lDzBTxsV>+egw~~vg+O?W?Pؕo޼ɔg4wwWݝ8guoyln`~oʿO'9F8f?]g_)19]1r i[u Wzugm9G;:4i}6/CU:LXcg;I9k^xنy /h^a|yU~"0D`!Cd~w~"|G,'!FW>&ɢy<qCe_g eYn^ūgMHQhLkoh?@q3!!͛hG:8-sKRo Be'9֕oL[~z#p}d}닶U_Wf= |oho˲5qiTsa똵A8^>!Ƕu7:|[daOZ״|~o/K@V/nPXr.MۦQ6;.Ƣ}X'IN"#A@8 'VS;?*)dExW$*RGÝy1vidXȩ {?! |$G )00^ bT yK;Rt-5!Qqc$gX٨d+voGdE$.ā覬k}#F1V%%}*2P'VG@yL-1IjVة:tҼ䠎ztLl^P5X۔>,}gm?Ϳ_S\^Sw״v9rUBreG׆]%6]v|fse{g[ߊ/9H(o( ZvY$jī0WJZ~?[>:6A7 6uތxhv#0xtYsh۳kT;!hg}Mq#%8HadA}_ϥ+Qq:fI\OC9kQj|#~ C%-3dF+q~ 8ɒbJͳ cJg?)?O37~(H>C}ߎ'cor̠Ye<mxڶGxun[Vk'(k9dPEi~d @כ2Zfi|Nsȫ57y:;b,2C "0D`c@NXwͅyt"Yt"0.zن못+_ׅߺeNM5՟EuMxz7e\er9|]hLh^_>343I2yʓC\!#}-;M͘7:nE۟Iۿ"tϫc^yo=tϪ\^du)losωYvz֏.=i/ǖǣ׾vMݏ8ҋH-]5)_Ԉ?#)o*͂YЏ 6U d@yEΣ6$hi 3AW] N+S.H :(_ISR_vH14uռYj!clT!c7'U;3«X:,+4E".B_׍/u'CaAy HT^kjMp, +ʈh`!TPl(Cn%Hܨ:/ ^qCn" > Kw΍}y&Xj RV9~f#)Nk0r D9g+ė8rP0&\"%ylb9薁n~UGP|=gtZ/\n@psiէ/|l흉W^x\NrS {Zyfx/;T v]VҲ plmn[oջ]m圮}Vy7|SDj 1dMG&7e;82 }n~;:|G8x~2Y491suhy :>]atՙC ϪueDz=ĭC#z^Ig0e\+U;0U3B6@# aЇaq0yJGБKDŽu5yi#%88JubY}Ksi \{3@m~#9l tC4d?t_``?lA/A3_aLx ;ZFP!C "0D#%Fob c zYGIbL.<ķ+_袳+ ~x5NEj|]9 >Yw_~҇EZ<3߯_%a&46I6hYE-~?)y-H(h 8B{nwh{]-oZڛE[E5Yd\.B"td*ەe_پævZ׸:xo9_zxX?-=ֿi6>+|^$TPH*4]'UrT0>8XhZb~w7vFb$)bg\xv^W睨T'ʼn:3aCpdZ7jDV/%Vf^px?䈲"X ,W_3t<3B5>J(@2fzZ"Ҏ aN2[$5 e0ꏏ,+FcRɎ"Kb$b c5Wb(8(z8)EN%F'*^@ob$,z1ɡ' <3y)#/Tg^QfDuxۏAO>duV?S`m뵢;:E+^z=7pC<МUBƁvAuv$.rWZX'|6L0d@6 vԟk'` SBՃNbwC'4q6ݗxu:) xu>\E*Y"TsCdþ W_T6Wuɉfн6v&tZl긇Z>ɍUjK3\#Cj:⌀qN~3QB{nR~# hC5AvmoD E+95!"6q: @c~Ш;洛NMhvA3m󁃗F0"K=Mn[o%Zn>_+er{xɑ\gپ@wÛ`f8\'jeGwtD=9#"!g޷@w3Bt2Uq}ȮyB;J/4??10]ܱ9Z|Wj^=|0[]]n߹r9v=©Lvލc?]x~cojvB=ut: |3qp~!c0Y뀆,|șN<pԑ|m'!c066c mh#F@#6U^liQz1DOMtOGaJG˨l\c}?,?n͟J6ԗǏkbF(PWi7QO4}$M3>=z>P #!/ϻ73T<|tf,۫/m_/Uћ+MV?کTeS{/s{Xib pT)l*_Ye}ƛ:8NŲeӲlZg:JSR WK*&g{v{+roKk-G uI +*oi!%uƮDC2nK-Yv¹!GDNc9 Ea \$/";$ [$@ 6H&,-0 ׋^wR5{ėd}T]*,yRErH$A9|"#vZ ]P |V.KbdoCtIpSD$9  *w[6"ё1xq$@ 8WAJΈNCA\WzXtπ%X:-葝H?D'v|1:łb(CXPQ xA \o[6bA&>^dGc7؆J.yёpPGri9x 9~VȾK?dl)%ESXv ٕdӳڱrCV^/3q y 2t.8Jݏ3|3P/ ^`JCֱJEtJU @8.z᷿o֓;6Czv}T?47A,C\ uwlLYQݵ'Z5JPOFǃ>17~qaaވkIJ򘃄Qiua>ckׁ+MC0?bh9(Nա#HdI0g>ŀ>=E-;FBW΍(M"U4)8 S\e_>.&W/T% LQO#bÏ{x1i#/OO1v;~}D,W3L3la+}4gt8 ՟4ԉ1uUMcfyL,u{<;IK]^SSs[gYtg(tهl?C%Z]b5:?IzZ +40Ws_Y;S*9|ye)[[;J܎OZ̖.>'/4@I?h`|8v7_>S09W_}PxvzR| zr/uqƛ%ItcCØX}UTWʗ ~ڎu:E*%#jBwYG?,ˮKooX|UUGzOٿ&4ᵝ2MmN9J݃#S'kSTzS*~1i~RzZ_snO鍳ssO?ߋr.vS[[[li޷sY7Mc0j}c3LYm߶WC2u#>Z) 1dX,@@ N@vc2x;v5˥$hf2O~Cwf"EE&q@&"Q2v9HSbɐ!"9/[f*zz|!)d5ДJdH4@\IN$89WG*Iď%kmF[?Ȑ0AEOd#f&9Y],9c9>c8FnoyLv|9dol*9tvH\і+T "icG :?+k[ {rM%?# SGs<>;/|8?sE>}r8۪vdWyq)TO0md>I;S+XDرM%<1Ggʂysm2Ӣ 5<|@$s$oϸ ;ɵ_.qs`~MJ%{ѡ[C1w96cޢJ]oHH ~ N`gT[o/c* {҇tie}К)p^'CP*Ž%<TZWsjUaRq Џ1b|.b^V+hQ&C|G&▷cM,I_8A⸖mU)ÞX3eP'sF%DI:Pg,-C5 09['%vZG_8t0ަ:fy⋀mQ1/]A>F3ݤg'OW~/fw׫*Pąq?0MxG=]to θuln4kNLnfߔ.oOh Y9\704txnƽቝt ǐ7|Ad,7SSزm >;K2~h#F@6G?`!Mm4ZSMSudG=\z@UtVTѫt +ﮏBO*zU_*}UtAZM}a䆕M}pDi}& dZ7e/|ʓt{iiIo u"4ut5ϰOt+d(2JU~=oeZʏv?ϋ_qH&U׼^懖9nS;:I$[!UlrM,VVVjWQb#,mSMK+›ӟJVMzGţ{YP^t(*oh(ݤu{b AD9b <,lIJEqL р'NNXVD1EX$_ɯ|7^_z3NJd ٌ"5!pJRb$TOQ \؁ztN%u "scg\{@xxӲ6| 4>P W{;>'cljDN>=N:I1QSu+S{j=6rR㚸";Mr(UsZ&}[yB(GJx׵,>]&24mj1Eo3J6cg^yIZzEWWW" WN755-Ksٯ٩i_tfRZ'%t uU$89=)"$<,<|Mz:uC&!)Ou1缕c[.cy憳[0aG"]Ε(uc3OI0o#:Vcβ'$]zErَ:r՜ A/pGu': *Ӑ>=Ìƅ$9yÆHyGx` ^-.^'4B+.p}gӇ77U8U)D?{-B|]$} =Q7` !E̊xQ&|`cNؑ'/R#/sy"Q5d'h r)٪#c0>wh 'ǂ~:F<1<q<nC3ObUq~q 8%4-xa -cُWz7ׂ̎/W~vmc;^yg6}mm]\DcJ<aWx=,dK5&"1 6 ^13}W~Y=.;unKjNI>jO #gfaO?˘<贼e: ڂ@c mY?4|No_رu@[6x;7QO>"n08x3=Ա9۲@6mh#p(31E< }ք>|ulqz[> U6u|⩲QEG?PϨuPǜ;n*ӔIҥKPݻAtPQ&Zbҟtz^|*aSBW*z?er >7iK1F65[.uf'I'V|u}mJFE_LnnHq:Gv&Qc Oٿrۺ>I,@'t>׌GT}Q)Pn؃ߩ-v iԌTxqSy?mËa)?XTJ@@ vÛޖy<pBxhęqIca>b @St.fl[Nl6cD~͐c7ܯG{57?J׿-)%Zҡ=Gٮc糅E|+W\q/nil:c7;qlN~W?D >ǂEߺ{1JC3GG ^hm6xl/|pS:ypx|+yAþc>Q:>>>lj~p2t,m1H;D6mh#F"P~g?^\ӄ,յ_ۣ⩲We^y񡊧*U*Ё:zRW8W|[Onw˲+2LC>a;~Xe/n6aW˟d$c//r__ȗ햏5)(Dwq,_nwu2A6ODVkhl)b*uXo^d۴ަz+{re}k$LdZ!6RGNݦCvm8Yv۱޺)[O)Srut<8ձY)S?OQ}^ԍwJ#!X4LEXƮKZ uBUj,׉ɘx)JfMKpC^챰_8$' 󈡰J0 w@-3?NIb, +mOe$%vWTQ_c Z$XĮMPjQ,*xQCI bl- @_]OZ%YSSX &\DWn:Ñ.`Tq-Gݲ)^oaPKGM& 3:iw}X$1ܻs;nǔd 57KzZrks3;>?馄p!܅ v?8׮S1R:'{ޣm\hGٵ7-X|1[[;YOْǤc'v?;w>;}׎Y;ǵײ۷oeoff:/_kF%oЖNMe?Ӿ8#{`|.m>}sR72<8ۦcE]DheR0Pv|q?} 4p|qg~X2{ɜZ$捓ԧv/WtI4E+9?{Sn3>1/ 5OVT >v}żR ?X"aQ/yر)s_3aH&F@ ]*%zq?q>]`2܈baS၇HIq½NPİcQ>鑿<@H$F¬h6-cnffp-!ܧn/Sݲ.w1ACP2nAFR5tT!}#r%x!oߵ"tS\>Ət^pNLhhd~\MXf^_yf^,gv~vMe3'*ar?[V}_[_{G\|9G~ٽ{wcǎgEz49'~%8vZxL,8‡*ulӔ}xݿroN.;*;ђ5m:w4^x*˾%+" O@72™DAF(b7%.axe @rYbA3,Hс}H(vRxE:BQ2chW~y?Ħt]"%DM*_0cC׈W< yre$7Jg~qoQ6[ o#|d$Bj}]"o1x( `#vLаO=Bs=<]C跜amx8@O7L5{#-l\/BG R})Gř3]wuNJλ {,=ݽw_pk1X̌yڋ _KrvGo0dggΉrvA9Ǻwnm?>˿-9 !:1M_) U">L}$>|iKAD'=m?p֓otA'g͋_tea}?ep?ws'2m+ځ:r`H;{jnmh#F@:՟?zvS&uxcub3qXUU]FxDȤΝ99bu=8o=o6&kG%ځEъNI>Gv:x3ex'.|屇wt%?&C@gJGOUFIy`L.l>"ؾieylݑ\%zPD2ǹ%=a[PIMJ6x4P$;Ir//bǸ "h[42T_86*;&|\d$Xgnm<3 ;@>.yo81Uk#Nŋ}Ka:~?,J8m=βDH&lx?uUհ=|xR>MG<o%<0qn~}c}ƕuw#18ɜ̵̇<$q]ILh~>D*HW'O- ة#gcrH|<:/It$QWlJX Vgͯȩc3a-%IvROcOծg|';y٪ ]Of_x1;](m8}R+G>%>C/8[$q'ϲ}`<y'pk9m[yҶyN)ᵬy-]Gg >[Υe\eНxuBlvR^tÛzSqE9jWDzrJXЫVG0;y.}t1 b$M Yšb$" /vdIh)H"ySr}@u)ltH*s>8V66LKK>fYxE.q *bU-ZsisP󑤬&y"kI8|'=c$`'3VD)@_\;r?S]Nc=&,#Z~ u#A<'\wFm ׹=X^3H|?u*0H~$1IXIc^}+v|饗dWVHXM W>V&ˍ75$q+3ūD zMIݰ&OdS#bbʇqNO|trBui>-ob| \' ^ӓr19̟h$ d %r&mx'poӶ_P7 >i}B߀X6u?7=8j~ Sf/>{|q0F17M%?kN-#]u#qs qGB.S_z2+6̗;~,P dI9%GØzpv|mmoe lQs`)tñC-&UGn9 *,+Ax6q[lgn}3+7wPzv˚Jp=xW;UOy=&I_VuHxsV,i'm1bE7W^9971,c}ǃ6uz̄y(`><>~ t1No:5'CЃ.>]țǺ#~`9xҺKџihAh-6mh#F#}.~ohb)]+7 [癯oU<06[aV?S#Tm|.Co]"r۲Qv8J.$M^Qh;4r1u_O˘ޭog ]/}6/cGC&}^-mWNy][Oݲ:<ׄ*ae>Q˹D&2}تӫOUe:f,لRSnWM?2Თ#z/ںr-ҝ4Noe߽WZG?Ai;0:zjWz՗ kQ]N|Hdbw)ڬ/Ws;Bx%A`=邒p)͸l#pT(8~)L\ZcX@Ϣ~Ʃ9.$'1E%;ɗA @aZtBoK¾$Xu{N xU/ut2Oas- #Hc_lbZ6R3$OtSJ6d݇i7{٥_~XQÄv֛S"$J|dv"qKxe٦&fvZ[߈L0rJ zH8d %:2h$TLNM>uITv$QsMnkwnƓ) IxfWd/'ޢvO~l\__SBHR_w)EafL}|xbbS>˺zt˙I# /gmCx>G`yJv5K:˲eƗy=.(-jccwn7-1&Sߜ_!i4$95WGtŶO~` ٠'fI(6֗[7~uljzN'eCұ&&&U$N>!È_ y|kk3y3'yxbSx1Ww f60Wcj)tL=&v>ƐAOjtV5|o*>u˥\8 κ R>x+۠AXGʿ-uT+F@6m8|Nu5 2\]u]WgQT^a#_0:vP+>,+(P^T.粊nne>y܎D;7/:Ԕ^U<ӳaD/ˍo{0oٲ;uuU K/UnWoT_Y]G_ۏfy**zTAa~x0n纸r&oZ_?Ls%XÓn4QXCFշPF݇gcˏ^xL}jVGj k&+Bv^,>T ~B =iBK߭Ӳ61v~:QvzY:W&Z:.mF@6mU>5兙L% 2D0eWuU=k^~Wə^a?+٪>WWG]_5/k P)%kr۱GKIp 6ɤS5fGٷPWIzSX6aReoXzOzToTgUJ_xѺV_EOuÓ>u4mk岎:~LUzsʴb)NTF2ڑUMGY2VXz%^7q 0Z7uӶnQRt\k&8z9Y`#^=-ѠLkxC] cکg7H(hAH@cY+jcklJ"#?%8q:3ՙJF yA"K%ݓCQ3U:YUhG/pAc#X\>xEߕhhwKjĴ7x#vk|WdwWmݧf6}{˖3gNg/^c 8+BDzm%Ul*ɂo+isWcя},;w5;W.+$3g1-?᝙J!cC<;.,+YRpjg 3%_wwM|OrWD>gϝpB ( +Ϝ>׫FDkX.]z1;'!X_;#g>7z|ƊF mx,o A/=>r\|tq!?/c|7 I('xb=[fB:wǧ*MnZz΍:y#@ hs8NK*GWXݏs\߻5kyS̿04{HƔx n<8tiPEx%T y9cA8C}*S>_7ᇏuU^9.HǧT JWi@?ͷz^<0ؙ2o^,c ^Pb;8+)qX ;WsVyݘ$[Ҽpb>v1*s1F=CqhOB!coc#,Ki,{[< ՑG'KSqo8Ǐ6|ۺ)xr-,͋>~x(S x([zl >'RHqdN; t0Q mh#F@# 2Dn&5bzt K~6U0etK**zuy9GomVʿՖuY^I:Ӱ1 Hu7M,9,ۣ''vw__ȥBFSj:R~⚶;JkVV KrJ?UFS:l:JY71)GF߶FsǤKd}NqKϕs!|7=C>ss ~Mż#<810gzYsb$o'#|*0].c`'ZJ-r<¦ ܧk;4c.g,^a3!< KM:} ".{q`9(GQ (RönHJ-v׮K~vVi'Iwn(a=}_$FշΒ[ٔ^`W$7r$<\=͟S~?ni>ƭ%%N2{]QH2kA׆3FQʙvT"l45MkK%Zv|3*rEMsq׮_†beǕ|:>^o#|tB>o=?By<D_C4ȥsu ݑqf=QjPGLԾ KncS># zT:t1 `jMn_R?\7uH>Yk-#W6mh#pthY0] ";RWYlW>lUdӰUhMMy`^o'@mJ/uxR~ubۋ/-IdJ~K)Cg*W+Ew릫.y?~C_jȏXVOyx5MD:<il=ݯ^WO?^^nTVѭs|M\_6i›pJ k*VbHpкZ[ٔ?Aߐe|Ȕ'a%HdÌOgX]/e1,˺wo۫+}S^ U,pxa^p?]S— |\08Jdat u .{lǺLJGmC*k<8t>xp[Ҳm͊; N^_EH-s>)/-CGd>m' xvױC#t5(Eczmx$H]z~ÐdL &I7h9'n&\|OcLCso5>7},>bT6Tj@'0_GЙPs@pki=p[Ee>OSv,5٤>ǎ:ve3vAU8~ƛ}׌:uR 4F鎒Cy,^7ݻ7ϫcҭ˿7uu~WGvp^; >>(ӺQ7/u9Nq5lxH@@.&tgXz72X^{^쾦;.ĸ [ !oeF@6m8|_l+ZN5Y._utVB ԑ~U7ЙSw L*|@`95/>S~5mWt,$HDm%O.9d+->QtWJR!ɘ!Gm,wHbkĜ>~ Wđ2^7*Tu ZaJI_>BnleJDx&N(yݦn(i[XʫfǎK^͏x׊H'.7ǎw)^.UkJإjUInI]2yE73Iޔۓy%pv⇔_+O*SvIIbG$(ݳԈ$x;@.^pŰ duկ=[&E 'ɝK?Ix.33JTjΖ<޿e ^ θs8)>H1S@9+6tLSOYCf|[7&*xx;&Ǡ-ڮS@}\|̂4AqlxF >3`׼W8mh6}BKw.?CU]gy"C3$L|>A5׸mqo$eJ}zɚyCNt.tJ/uK)''tt(* !fYJlL֗tk>Uz{.ey]6yXUx@`=ܜN7oވ.wrUI<1wX$\"s굘I}!M͐>#ʎƫommn:B.I;N^ַ30)˱7+ĉمqav!h{''#I^v8}0O,s-fI&1P Ƴ zdqq!Wd]y9cxcD=J%i@󘃠ug̟s꓂?uǺL69Cqm?\1|A8]W;2mF@6mM/24 "Nl]uΰtOǠa#*uxGC'ȓ{^:@'0oiz3ߘiiuJ>tٲzJQǗ>>>RV@%Hq!TgSo7⭢ߺ|wY%WE&\ZO?ZUUM,:}6oS~*U~[/,VNiُ_=5z^4-S[ƥm<ᜌT ~KZw]}zGKuO~ZWj1Lvս/ 99u/y(ځ} K,fz0~Rԑ7n_4< <֏oCRᘸGd-OzU @@_Kt%vr"><1G O<4"'T2," ?:H&%4wj"v>HF rT2A NYҽ'ɏMv"~]%cI!+ b@Gr9c$uUOd$Y<| Na4) ߞ:Vtĕ "HXUߋr>} U*o?Ⱦ=jZ7.,.fgΝwRD:#WU%) $4*aIzsc]'"E%Y,(IjN73$Zif+&;B̅Ff4|c#%;b0I#q"r}e5WRĕ_Ѯ1cN& Qx8ܹ}xSPXc^_~套 .eکrMX%>u\ah*yemmUcn_㑰Ӳ$ars$Mvd'Nwٟ_yi>-Eޘ}:q!8qc~Ij\.eਛ:t@;9`ߡ HD<mS5<&tہ /loiαQ5a>J YJ9υ. 'yy6m ̣j'HV9]*5 sTD<6{ %F&0rGslk9_c'K1gx8+>쏱;3Ƙt>4"q,7Y$;9-C;BG-<i@#\`@g_ &z;qrJ{~f|@}F|3|C0/\wvḋwxCr[S3{Jv<-W47$`ɏ<"ޛzbԢv;O.Q)}j-½_t)}=Ō}QpȞ&]8aBw{J%ͼ F܃C5`Wc?wD]\,;zC),A cTz)S5ttI2šǧ;D[90>3F>`J6mh#F("/A@.~o0M *[%WEwۗ*]M~a#ϧ~*҇=}*?򄲚ry7˦ueh)ߨ oK|·OR|7?Sk'ro n{T>J(|K: &Z{_.ҭ=Q5U[E'FuxŲl]݃5=&tw9heYحk>w[bouUh@Ynw 䫛LB]>QMG7lYt^/׉))ϊq057j~w~[7zXjBӋ~ XR^#] r8\"g^JxHB",VRz!ʼ~]K@{|@<ԻЍPM۴RxmHz#%qcK'P#wdoeJ~=y^ &ɓAsځ Wْ W^\O^AJb$|w#z.t9w6b޾MNgxǫڭr^6w!Xǵs涒 -](o+i'Ni)F$9N)idSKH\_]׈s~QIBt];w^Wu%iؕRH=e%ݭ Hd74'Z޼y]Is^yC΅aZ ذZGI?pM8ѩM끪Euc^E}̯{]A~ߥ^$E=q>\8}L@%f D+GjfEzWx{J#m[s=?NǙ_gԎ~kJܕ ͟$<ϋ﬒7 ЮcRbKT.?' Q]5ߺ~]._y)^#HdSgNg뚫ody¥vWd,-b82ߓ7> r"cgP'-J#<Gw>LC:4xh#C1rq)r Q/ƒ1rcyn#F@6mQK gp1MÃuN?ц;l?ѪlVч=,~U:c]@^y oizMƸ~e/=do]%(eRXI-Rd = ЁM1??ڕk_ZmԏReX=UU;O5WK/;X)}uxv*M[v/Lw9jzeSUX' װ|v/dӍOF!քʴTw7qT݃:cE>T鮢cO7_Ux$2]t18/ưPCҋo^pKX.bi XBދvƣZ_CY ?|.)[|v7KU =AXo{D ONNq[>]f-G ^ej-x=Nԭ =@&=QbF'D)9-늠xd]r:zaGH$ia+c_: bJ4d  JsL ;\2W| b$Z\Id%mDW.x AB9j`Vh+Iiq옹-oK >L>#۴Ζ)6|N~gQy9$ޮ1wƥ?r6;%}>kuOYG6yGG_l^t c->@xАIy्lJS3e2/\;m/TڔjcH`$i`\|9cFɎ:=\<8#i@Be1O3J.]]{5B4ǼO>L1|\/ ` BCyA_0@ 8b#yUABq#=xSB&Ѓ-t5{׳IΎēWe?R,&lo1ϒT8K2fޥۛZɢńoW9w1-fe/r$Q4c.0֫Jx$ْ9tFyMY=05sYe?~P5[7n@zh{S_` kPP@IDATԯQHԧʨF}}LeCFl>պ^Z**m?*z_GF+toOݶ\VWѭ rMl4?XJ>\~IhOQ!7t>$[Ѝ\CyQ}kX:]%ov?uOխᜏ/y]0_׋^ eu~P3>|^h ݋zeAmAu21.GOܖ^tu>[j#o^U;}eKQLQ;Ƌ=FO ݀b>΀ 6m۱^}C'TmTTFr!1@8nׂk7;|[}JTIcS'8ѭ::hk<.΂}$/()"vĶ^Gx}>J&O>MkJ{&$XEt)^$h.~bȫOU#;ub#|U@чhS7/ڌ,IO8A*fv[a뾗(`ZI$hle'trRIpEmڨIuZI+J$oHƜx7O5lIuc=M˗}d v$a^ͮWr1H^+Fy]T4uͫ;)$_.?x9'q~#9IWzU8RN+qǜS^SzҥX6α"c}֕t1d (gS  R$N!dҥ凒ZJT!zEOG%v@ՍIU9G|s 9L籪h򾦘20OxxR2)mI6e/Y۶}y~mY;Y>m<x>Δz03Zxm ]cźn7TKH2'kndH qtӤ hol]mhDׄ.ӷ{V4/nu:\~Ӑutm6|m<w^5?ΕVϭZzd? ы&QƗW[ŹoǮI^A=-(H S6 7eRR67Lk:iFuo ò 0RZ>ꆙ^,òm4ċہLӉ77lr);e`y$,rϜx[էh;f͗%0בM6}P/S:2t$#ۏL:cy䆩B∀#jXḈCΕ$UrЈF"^!19g+ըJ =YBt[0P*w&8AhWW;<x$w$ҼY!HQP&8Ir0l:r!+UhrB89s81ys|D:?qFQrD#gt"p|ܒ⼜\.v9wȉraqI?(^pXXZc:qpxW4EJNP6C;prR"i&9;:n "brd16u8pVt%?7e9r xزN7Eibs?<+>ϟAցLs^hҳW zd~r Ev`mӚ~R~YUO,Y%SNvOr=؀nBNsÉnI KdWrThn`$t4^i> Ԑ|MxÑg^j4t"0x,C.CP0uGr':<^BDp~;Z'7|ҺpEyOk 捈VyʵXw;ݙNtxp"F/?Z}7N Kq|> jƌݸq#Fi_чD$b;wy+h!}0k.H~x]D|@ \hm??yA~EۼҷQhUT!Ttx(yQx?1z{̬%9n?=+g3'cd~&{RHVD$G#9Oi2x#'C9 sF"k/TL( n_r&5"k¥:nU=skAcُ6S&UF~+#9=K8&#K'GKUe&˶G::0BE26^Yg}ԡE^2×8M/8tmut~vXyeX.6QfLg": *c5miQ~,qDDqDd$cTBԋ/>ðû"rubٍ,-X.Xw;hWs(>U->H},R9#Q,"wY4u.(d8ȁyT rR\qo'Ow7_{s8qZ;ȉ.IDi>N > 4"+:{͠YSi ` N{AΓDvZQ[:֛5ݻ 2+Fno|>X./0@k?.礋w ,y'pA[6]#9I8i䂢fr9a{/0q$4[3+zoԴmNP~HM١~g򧊥KL~=zя`` }:)y=7dz`F=0g;˨n }PAm 6 Ʈ64mu?OYmt k:᭓,pY6ODqv4mU:Ք>$Wo:iuޯq*;(#0o4îpP1萗zS?pC7TJrB&G 6@^Z`t[#Au`Д񴈾,:SuūFDq\ @.x$UpP`Р3 M:qхs$NZ.~lEtpHB/?̑P)rɶA]\`ODLd8О$88Jcba~p c/ R-6uAjcββi~T/xSNz #_wiATF'`ў8'N3rWeH9dDIXh-9]lS1_Ŝ"`?cq떎,(8zp美eqؔ$k8UH v8m衋^8rL-銡>:9*ږ{iWǗɑ䱮e:-%G/ >6PL/!Dp,a4P)JN?/޿]Ld^Ѵ.vG 9Q>gTc?e~62!%60IcRIGi]dp.>Mt+؂vAf'BʦC?e+pЧizmsMM ө8r.a>(-rd]xEqr>Mmf9VhHn#ygsz{DF.z[Ź2W ԡB89egƋ\Ytm(@ @|:< >S*Η bm&A d=ywpj=O1kǴj "9t>u]ğ/޸^۷^QD<ͼohdīHZʞEEzjD>Qxt_il+%\$LٴnDfDZwbbr6Ł>͡ahػO~ŅWF0ѹ?$ʧG!h ƕ(bz`F=zFֳFϳi# ֆy4x> {mODqv4M[?i7. n^9W* 6VSN Khٶlq7(}>|z&յ/}K]Nǰ.рAOK?(Ss3-2Кo~u6y:|ZyMgaimҖ_{92# xXng^nC[rrXL J9}{mE VD߄^y?~\FmD[ҠN@L?9Ӭ(o?؄aӅMVOЕ6_N3H}sU> ɮ7>Gr4,pqı:~ܥKŒ"VȑHRD,p %΍D""^r$:{h\Sr zQqڵGM,Ƙmf.9H XQԈ, ͤqN,DԘ^Ht' pb]+}M΋ւ>2*ּS9nXZX~)q<Ҽ|ؐ}9Klݏ/FH!wnVE:xfvuEǷ S΢P3gƋ2e839U&ε$2gIM;Ѭ. uhO[*v0Q&Wx8dt\nKnCvIU /e݆G fp脾 )y)r]One ܵm Hԡ]侰Jf}*F^mVf-wF>em~ ml~hd."@?1ۓ5E=؏u+z 9=z1r||!">st8} E9M^|Ikެ!I.'L8WED|(8vqvp;rdG/_NG%n޸! :0"o?7 5]S.0y@d WN2&g+?zcXe9vrxLl S.+3OO9{Lq2"=:m̗6itϦ=Ƴ&/wpKNLÎ|=iٶxFpw=5=ӻ)FF=0Qz`x=OVEiUK9 MmЕm΂IFԆg['Yل?ڄͤ:ѴFIw,`z?:ëT+r{Uaꆓw~ɴSg.i2?>>MtM6Ax~w~)=rG*vTVZg7AVF/^ad$r>6?pIWHSlI=/u%ì̎aҡHAG9wZ}$68.;n~ʶ׼ 8m/8Du.va;b/Q_M*Å ch$W6)x8JpTʎ" EV&G|܁؍ErP]2aR ]rp~$#Vzٔ'JpFz8yAC:QH~2cQ+b_/8Jy5,GA49sy*'y!5<8];:|B}4phkZƖ %8+nSl9pLŮsrj8dG!Ƽ1_<ДT1+!ڴ87|t60c&=O&]$hMN[29:H30dȍO0gbeXcz]~ <0ӛ:U|*Nis8el#w?6uLb7ȰN䐨k:׫%M8ԣg#ND$=2#묞AX! IJk s6E.I hCDdxߣ]kmF]ӳ2s !3O6#S7OQ|Lc= }L:Xw`-m{rH]}CŌDؾuV8v.飏kW/+ t-&5GbZΙ3ܻn~;w >`ݞ_D훔&LL}xqel=(3<'s: }55>!Ep?Q_w*kFsƳhcmsY/4\qLDƳW 6> (z`F=0gBYueP ^|isV4wYmȪd_rt{:E;6\ҿLr50VhLrimߋ f|7N/,}myе۶m~V/˭y7WMMs}mhrzM~nVs0,:i¾Ɇ*m^U>О WuTͨsKW[~4_;&>iKgj^UzSKXE>qox7d\.O1fJRq\28=҉"pΔNrw萭NzD\hX[#N!QljRL3]/d }}$bEYǴFE*3pKf@'zX?wx:6r'pC=x$Ӧ`6\-YIpL.8(u6#9k9/կNC5}HG r{ZYIr#')È2yu!4>ӱDْh&`9"cRkcs#{N L[> 6I;o8;rr$Ғ>z'Ь [_,.b_ܽ8J=1Μ|pA$Xbg{xnq8H;bN.VVյbbN&ĸR}˸1'Ǖ:e5Ѐ'yN)%{k{/#1x?s]o >i) _+yTQ2m^M\6^uHܒ"LD E4Qz`F={$7 o:\]?/i*wT˜ֲ94EOogUۆc5v ēO[>6|ge tt8,lƐ \츰C7~TR&Ac7A.r,fE,gAG8.hM t6AOZȹv=6E.Ln9hEϦ<09$9+)RrD G+=fБ=U^RnjD~晤x˶svx#_Y$E^..ι΁[ Ln5ێK*Fr?w2 s^Ç..p6ӕgzqP'n\13c '9ʺ0.-cfcU)uaC_ZKcf6X+˲p,=cF'6)e|H6'O 6xcc ;Z/oLCΞ vXJCdɃ1uxJtrRLe>.)#+T%@pi|X7-/ȉ>svNNK(`V\.O#;#*$.&0uw^|xQ޼Yx Ih~GfcnGw⃍?p l}?zp\8Q&o.mPy_t᰹/ỊD}$'rLNI`Ӗ"jo)WZ|pX(V bb_u|(A4M Y景+.srjKƏdq1(﹕ u-ym 9O prC(͌<)vɞR+HW0-~"v6 !luR0Y?Iv@<`\]g847# 9Аle𦥎\"7$t[\7`1ǸW >`ʸI|hlLFT)DfprJ=8Zb.rpAe8Z1CBQSFd,쓃@bRF,Cݥ"`^e"S#*9Vr6mۡ$t} GML=I_ry2Os 1L0.ݹ{.K0CpgOtˉGW D[>N}㨯 7ac cqWsn*)9 cZ/*D\c"Q|e#Ĥ:t' j1GJkQl Hl$gd)#E\/6U*`Qy8Q"Jűެ?"TB1V]gx_ Q!#yrʏ9cLJMN8[&ORB K t[m3$6l}CmtANUتy OXK4掟ha2,[o`$dE4O <$7^+_:֙qAzB; VǸԿ*F2'OS`VkcND%NMu9(:Gzz$j4Z=Z66' .^Vk NAcYpGD "TӎmGo?Z~c״vD>,X߷,g6>Gy:Hr}HGNDL'xAM\ Ŵnksǟ: 0'ày^$ie'l2,B:3ehHY^{ y9Akm7460,c3`JZxciz&Bϻ65 mDel9F{f<>'r\dx,YFw%p\$dEZ$8HF."cf  c7(q::]t͑:nGY9Bp)x0D9@E*G)t58~!RqTÇGlNJ@IDAT?)k\Η(8al^^\aq=}"'va:Q+'Gu9p\BqYǪ>.^WB=E9{,qrQ@}sA+g₎_]]vN!I9js6ϵf}<'5~jCLpdc.1wLl|(.C9= OJ٬%]8ds?ф#_X 9!QFu)Y)lSE*S*ǚQS/my\96l C坎xvqDAJK(kOg}3XIgjV)p%dcOH8<7"hTXƙzS \5xp$`NG&pa8E peyN Өâ4|(gp\ɩPNe1>r\Cи"Tw$zs'JkfHVk}HiK:|plcهywS :Cqb¹~QزJnj=1.}ԑi8ճ*s 5T Z:!ȟ=?h e>R#%# XyKhW˟/eD<ֽ|{nBOWzjdsˊby%KAyZF4>BXYUGGrP$krPZk"Ɓ.C#}D}EC,.\u}>>X%Bh9=8drmCE>gA涜3߹yCk򻒱,s gM~#lPh"s+%qΤGZщwj>X╏|D:8MLG;ccܿ)pPշ5U_Gsj"kpbmu%h;Ęf|= :sW Q"UzM4X77LnJmȫړ~?'J-cAEkMK4'ϋ/F%⧎h/<7`.x'5C4Ӻ csx 'pXuDp¢:6>tF=0Qz`s;ZJu5hH!C(S}OlJrȍW+6bmOn<>UīAf˺.҈Ma&k'NW<&-q.K멈E {j83呜Di R{].K}ȖcCL}H/P~5/{~G叉fADG%a̫?f#^uSoܸ[LC%k~8|tMs 0{8>)Ґw<#gRupGypYt{:m"C&u"2yK=O%Gr2| [pb34 ey0z0w~p֧,0s t)|)H8},Dv1ҿ *GQF=0Qz`ϱ>%h@ 48ZwomMpW>LަO-m,ǻLߎȖdu97hypZ76&acDO|"'}`s-Օ::mx{іμm54¦&sVN76o3=r8<9m׵UqΑI}nVq۴^tmWU]U*z*_Oҙ/bT[g$[jz FBI.Pi7ĦXz0$Ӫ%YlUy-ӛ;֓f Xwn#6K&`b*᠂c泙U !/&K` YHbIFn}Q&O L2e__NU0$!xrI6&1q 1ӘMK㲮MÈNc-V%ʔ#+6q W`-= #b,Tƶ*S:vc$[ʢ/ptR(VlRG~p<e)TE|j{:(LrTtBn~ ?|?EhD9cRN-8Glmo)ㆢP/<_lsvDqr\ xfjZ8I+oVqέ⥗_-B޽{9XmB/!sr Hp0%/\2钮D:VcEX1GSr$R ?p)88KW\-G.Ն EVbl~ ;^R1#knhbCRjp^4%-Vtà.ePH&n$30BiZ.s%;d8ZP>|fL5[|$aC4Ikr< Q|$28ߺy/gy}а%z(ӏGˣbO8M?O*BOxh]p}^~sʃbCΖ0܂"W}FbB׸_ \`~SC*x^*F9, ̥ab~P"7)v)OagUe,$$!8O|8tUeheȠ_,sUocQ/Ɋw(@<qCu4M?ykKa$CxӂbC78 }A, 76vYQF=0Qz`ϯ>뵅wӧa 7 [8 o[6tmh iq|oWpu; R]_vGs+Wqԝrêy* >DV/*xM UGK2,[&&Ee0ʼ?jӾaxv*}Vzŵ]\m__Vy;Ҋ)O1jh9p`86&S9P:mBlYy \7eCNR$Kّmr6]f"u~(XfDDLh]Q } aJ:yllX%S"\G$!xzHp0>1sd%\d^׫x~'HGJ6F966`Y]hf!cH"8$X]a,/cQѴb\kdзzȆcf <|kcQ$LqP9M VͲ G˰; 9#$KFH`r L6@=~38QkL=Q&aIn'Q'yqSAOh<g16zv8N6Ƙx\|,mE͑6Y,(Idq#6 "\ї)^TT+׊s/ʉr"#yv_J9,'cq8c^zh}{)t6N8LB;.;qXXґr8v8t\Ա/]p'K(邈[D®"Vڑš8gt:8ѥj֣žl@N$9PuS,≓$G8bIm 7ߊ/\Ы/W"g']1 79QZ|Nό9HKPܟq?!{Oc|wc@R.kݗgQla)80tTzƋ!c#29 6[U mNpz!(x#A$<3@㔢RKk|4ua~_~\T6&F9+ɦ4(]ҵ_2o3rV@- ,. FDNj[r,u1Iۅy4yvTd$GKqL|+ 1@r<'bWZvEMu\/X}}{X8Ick狅´ԬiXYs8Pv.D\y,F>@ƪy)9|CLJC t֛DZ?#8ᢜ(ip𜖳"!ZO'h&]N+傢sÞ[av>xzXSi)͑ؔw-Nl^)[1߿wyK?/^ȕkzQGŋW. qhr_Ɯsa(oAOJqS2gD }w>R ʙG.@ԃ)ʩq FH,KdijsVuxB>0h}o Y\Ё#';t;G>sSS'axpsߵ%ow-/y^oΙ*G?KWaG$j/mP 9RFD7F=0Qz`ϩp4U7[wX>lwmдmSYM4u:\ϊNn?\?i0< o%W46%o UV-wןuԷUX^UE >uiuYϰ2Nd_'__uq_/[m~|kS֭~y[k# D^'O/eʛliv56-TiyѲ3᭓&e亞qćpPA魷_>&*^J_Wuu\N].ru|ިV9oݭV%Q::NGVr_C&Ys8R^! S9 Jx8-ЗYԝ+c2%h16eK(LU:ڌ G1NP:E7Gظ$U8rXl4KcfNghj 6 ;N{Q4lt#+@pl \p$J&NBx5 b42s29*wܥ1/9<\E(A&ڮxU<ӑCqʏ'ӡ+=VQ'cs&4pXm/}ou4)㱦ҏN gΘVs&)ebU=/9f=b^1{ic{XUƣ'hD,Rwڣ{L. Oc8}Qp#'ݯL)se0yN&ژ/ $;2+2 pd<o=1]t+(N蜠#gh,'Y, mhbOX[ԕAS<@iLBʹuiSiRuB09!pW&4dUFJi9Q#k7Na0Ez\9V RzL =3@#jἉSώXJ:pN{~S90p,%昞m1Ba9|.)3[ѕM8Cfjk.:"z++IWqEad<r(O 9C1rt?8uCXڧq8s^?犢85HKq|$C~"Q6xTQ4j"RNQq8H+=GI`B 3aUGǑZ⽃}E~~JW?N))>\lnz'Їzc G7F/"T/@$I𱯵xYTl`Jޣ1#4h%喢R#)FIPkc9s3xTMɩ'yLk{7JuXt-Yjczrj1~Y\Y(=9̻)]Ɩ{+=_q|8s 8'@QxDsgxվa .)aO]HZ $x!BBD¸ 120?/C7)PuehY&pr9l-'T.v}/cF>}%YZuLd=6U&&!ԅ|6&#[r`'U/P!yqsS"7zj`+] |[ֆ1ΞyQgɘ◣M0IHA_q1H7;elrT $8E߫o/{4.4pqDsgK}EH G0 {z Em!ǚbaVvhpx?A`cFT8]p(XC$g 2NI zU8V%{$G٪3.:!@D$d@@Oʻ e.RғrNE2ySW#zPhMg.:(Ɓ\q#W,-snC=cM {$1贍z llG#.-uAY`!C.sBj\~v TRN=_ȴW 2(C +']~ÁYe'b],E da:ZոFZKX܋!I#IpJ=' oSzѝ=Ph9oA*ÃFGu4u2pMɭ~ip/Q߳o$&爿3 \v8/'UY/\k*ʏu9_zSmnix{ 7Ἆ7˿f*7k3r^e󺽮ք%}/Y`UMMxnCDӄ.M`G?(2.nXe;Ӗ d][9t[~! ˖gl0(ޯ9epxH> w_?V)UA4WMA*z/^^`?3? Gҗ]bagƛNFLIY* 2r5Л7(ؗS5x' H/n@FӮjc8W&q\ᖏ.oB:m maiT)#+8fe]e4К򭣤sh6C';ͻRtA#f+J]LrcBNr  &7#cGl?O&"8mG*xh7irlByW:ZRMNe_`ײd6$?cEFp(N&YGqNx8I&)%3zaRpᄱh8X..ʑS6o(SPOrSQ18ɵY)Οrh b挜:eD[S„<ͽHpq"xxpw-c-8PtU9gݟCqwl5GՓ}ILcLD z3ڕ^$Sehhc7]8wB(srs`2{ Zp1ij<"Y4$錳ux.nىfllYS::}˩j\I+Ǣ4f9u)hMNelQvY\4!5 >'8 :'演7{$9nf^[Wo`78!@ A` Ph8&٘LW= qk=Rw<-Y Hw61]W1C2"0$;[325_3goY:qDHv9Os&/Gi/._1~,xG\⤦lKsQhk}9Rxxߙ~u=Gkw+/nvpy$_{g7^[ɳ 69-4Nrd(9t&xsԪ+zHѠةڹ6@biHq-7X0Vs>`>o!2ɂaX >zʵe$.erdShhEƁ$uj|E6c>POBvjৌ>ȅ>s|G5вDdsuXG`u_OdߍV+,iכ!ako!!޲vl[-1)|dHCq,d",Щ-ؒ -ym')9zs]'{]6o^;Jl~o1CeyK6$OE ?)K;\TL~ϐ޲ٌu\|cm~ȇxS5dg710ɍTOC-KWrC^OWڹhL;nz_,>ΐ\׮->^{{8)=+("tuu?Ş< .m6tR`EX8b9r΃stW-mO;vDgE&j۱x YCj=ʑ.1Т=C-Nt#WCʱz;I-Sbۀ2̂T%. z#xl*O~ /PUnV`JgXdFFGqvM7`ڂ }fUFTiP!Tzęz*Solz8cKQVٙqO='hw_ԮY{P T{]i&Ļ-p@|7pԟC%6MX J>׽/惏 qݬ?kjl??֮Xܗv#vdST;f=fW ao ގ)@gbώƛߞᇊ?-5qh)1ڦ ЄO8?2@*;!#WTr1Ak'\m|`W,|rc\qsZ96N $sp-A}zJD[&,#h+ ~=#- y:jr+;T*@˨b?@\Cj2ΤsY 5r':@N}4rdD 6cISSO9`#-r褝ΘRG} ]ŧ|ٴ:v 2CUo[rd@5'BO| fH>tJf'1AzjnJ9X#D*4}7 aA{ftOtY ¹O 4[lQܮ\e<~}NS8DjQU! 24:LͯWG\)|fd'iŐOlcGE5FSg`cKqrtxOd xU٦3vT.k+ &0Co?-S>nv;Tvf^v`K/yfڙ]צl}v\;@#sϮπK腅#NԌ)O4*gi`Ws6Pt=6c9 -mṅ߲ァ1g|<6`wּ_`~?׋-wE-9wԇ}oWcgM9ݘ}#rK_| m/>^skw(y[HGZ }~t6s=3c'#YvRX5V'5s/?p]yާkD #F8ߛԼdCVWOTB69TQVdGJԞ-} q#u؄G]s%v_=W.G&>c## ^oN#:#~1mc\TnYg7!fcVҽnu{V}.i(NE\Tߋ,yM@%WSmG~{c;G>v9j~h}5.wŮ;v^-3tawHfvo֢g->GGodk9[oE ^]N=6̑!sv(g.&uTM ,(^He%_|>KfQpE!9eA]\t p;nX:­Тt]5RQ]EcH_ӆjVA$W/5#`1 "e+7% '̔g4I}06CGIJ G̥>|R /iN@EIKfEb7*By! ;_i7,Tu&޵JXܗ{+o/fxh\cٲaCa%N1 Qvo+7[<p۟%#;ErJ`m}6;Z M@ Z(Oe?8 0(vK/ؘnoiܟ/^Pt8}2(Ln:څΛ4U@΃vJE}H/_+8/ASVcױA }FquOlx-eqf v(@"4[YJ OƟ(|.+s?{u^. ky94tSιg_?d tOllۈܴWe ?Nrtd' F>rīCD:tRbL> ^&Ո@IDATl19|Ary^C\4=b@g:E=*/ *kDF}Zq,R]%Dds=mG L@D> gWmKlG_øA<(F22部%1\|F;uċD{r$iL3 /ͧN=<:.պ¥se9plԼƽP/`F@Ď ص܏Rl4pz]5c$sEԐTz>iGv7R{? Q{zYOeNکrS0'ƑO-onL9;ԼiJg=2ɋ̛<e v<|s.;Y^ҋvdŔ]+T9d|VHsX/[j'jMy[;i^4ٽj|txW 2?^NԷkgeX-ewi땶wgyV+׍1sC.]Qn{vsOs2煒AΜ' 763#OWvyȻ(s5-uhHԴ9׭yc':neh9=2\B >?7`+MC>A_b<܏D't#v~7=K}c%*봎:#:<t-i^y"zSdK_1;Ceyc/ky 5Կ!!6IC2}>z8ls1bKߏ}Y(EryV[<fl^׻ʡsZ޲Ec4$Ń{L6dOEgO>ע aaZ!YӆS[˧)mttѺCn)dxȶ16]uhE}#7EfܘgOzȷȴ =ZgV?-:uz]y'g}5jlHW_!^dlcߦG>y=].Zlx6~:Zfe$+µ@ђQH1U L8r`'ȓh^ۍ,p/خYGSt@'= S:zۦlCڀF<Зdq ⋊NIc:D]ɱYۋ,!GBѩm}x$l+j 6jpb.!dĠ^_d>xeɀp؁_L6Z1+Sމ6ŷ>tKfӮ}iLzq?M\[t_hD}*66]0>ю}/pMa 44$G\Q8rn/A}vN9:<:$mG4vuT}QiTݫ?XHxm6ePbŽX,E o[43w;9#;-n !`;WNR|6O Kʮ`;i8hǟv}|] ;Uy2`CV8Y桫ݬr=q aaJ[7J_I\ylA&Wan{yZrČc'or2O{t)C;)C xȣ~tѫj| =ꙟULж R|?jLC'ѧG衡@Glܟc rE]I^lrrt#/;A"V~ٴS@}=&4Gpݫ*Xnij7Mo-mؼhr M$ v_$:GG2F!v$뱇^z5wj2}"4GfIsovO؅p./0/8>j {6sN˜̿,&c._ʜLUb[}wLIJs5<'w9p3y{Mͥٷ4Io~q8^`NԙW|%A_j~o^O^xW57n%v?<3|Cp.%b@Uv>~x(RSXx¡Ѽ)K đgm:PNea_P"vK_\K$EIsyY\פd8b9?/e.<0?xK^ FнSKrmoNMV<gm'>=mq. uА+)4ח{J7ʹFN]R&9G&?*6 ^lJwa:#:#"ggy:Ҫv_F'}]Tw뒡/ako!!޳fy1cSȐ)Rr-mn}*?rS'ӦCsjڲzc>![}mw颡4Gя~ե\J/Jc?vɏc'u_|)r]2]N߮铏ȏEk#VOeҗ/ߖ^6[r?4.ٚl9vSlk^]22C9km%2;yC]ײ)/3&o1_[ץE_SX6Su}kRRExD#fۋF膏=!$?ߵ'f. v_tdã @BMZjxd׌)/*?l0A3)X?\)cxWK8ܩv<ߒQ4.Z8aYXO2x h__||vwf .Kщ m#y))@A?ˍx4'] nEcvW$>Ƽ `>x>`& Pv:@O jS= O&<Y',SlSjpI+} ȑ]m,i *oϷ0a;!m( EɊ i$16JrsqEzR1_sٽ'ɝS{Yc#OGIBN0*~ϟ}unMLIuQaT4}v͎_D&ɣǹ@\r?0k>է2vf;\~}3$Brv0ۢI办)DL\|Xuv ^1W0&.,s-2\JcQ|OfiSڄ'B--Q@747ߞ LN64ߖo^`b.Ӌ-*uc[gy[gzzyH/G|AmLJ?{_~aP翨w~1`.&=jr_xÏf'? V vI]N1Q{-oiӍǼ3~H~n{_`[_MT=D1Ֆq^s8lŵcMK$r Q#ޓjZƏuS%Ӧ2bOјܲ!.^-!i:]\}~/ťZJ/J9S!^-WtVmuC!>iC]1ߺ~utx}_j?ڟ|jO>E{j2v‹vKfH6e򮶇L[fzd9uaR3EKFmX{[~ K[Cѩy]Y|-ӧK&XUE&9F>9~GRz׺:y(c|hc7 g|)ȑb[hċX^M*>JnˮUbO!"Ԣگo8+F:ķy-:ذ,͂4ݲ\ex!ߌ!aŘ 6ضdP7CE8m7P1؂3\4 oCt;E kʲ~P" ץaFD*^&~ \#FR@&+1څ]PB` {:xW'5  $H5.O|RT\δk#z 8H @{]P L^ (I6ol)6ޭI(Hpťv˒߄]kG] /0@1)}?bOvNbg0!Ţ㛱|OZos5ζҶ@ӣ C}BT>[ϊ 4.|NT;Q>OP6eg,ȟgg)XW/`@OU|O,%c9`״?>Rp3O,?V);pR_\9YrZ^ sȘa|a}sE#D&)e$쨳ENru5fyAeWWIX3VQAYZL2MlzCꤴQs Oɑlr~rR:r|6?C?97) ?|tc+m&Rm6Io;T5TAf>RA t p$z#$Ч4Z M0Me@7Ԯ,4lI>jнq-y^ϫs|c;Z^C?\|۩(|m5b3圁 WLyG]mxNsQms(m`'G'%0K]"G=VW!@ l|.vT[ nx\CB IxܸhlxdhbOW>CxB̼!;tČ96xQ)@KњEy||5RфZrߥSKA͟e'j@oliq+%nn1xycgwϾ$@W21K+6&ͳ۳;mģ%//BJP<#݁{h3鮇Ae%<$ @D}[~K< *;irJYSJ;z!Bx%YL|Gaό @gI%m_Ce'߰m29-C9ϱÈc:KB5-b/B~J ۼ2p~XG9b_S&$(#ǵ|XG`uXG`.墭*uȯbgY7!ekU;CoicSȐbR$H͑rWn~D /y-Z!^dE>.^W[*ij}>:uѧкdE;j6EOww۬?G8`KMOo˥>fw?NTMY.%^W>&cvu)Sژj']T~<:OU uv[]6jZ[ܖYٮ j=z-ح6=}Lj!ibZI+{*! R |D:EDפ -7^վt\Ǹ4z[oS:e sS+ LJU >l`/* 8uC6vGt?4'ّq>U$5P./hYEqb/?  Uy~W`Ol.>0Eqa.]Y3J#Ԟҹм ~߱|:pcK۳ʀWy%j{?SyQݎU~@}m㳝.e Ώ}:5<{\h/1B_kv ճHe#*sFb]wb(ok~{O;J+!Hx[/@K5;X+`%sG}ŗ_qwIv7߲n6}):FYpvā]F#0OOҋ($E?/ -uCΣ2I,yFzl@dyWn l?kuܢk%@XGƐiǘ?j*4|('Jk3^G8uS\5}εqK*͹FpftTz 'l~-:-W/ ![uXG`uXG"L$tisa ؚ"7dg7fӦ;ϧJ\1fw LCdw5ԻdjgU.^VS[ mLg!.!t}YEnvlg] ?a-pelM %|)jsڗKBrn1Euzavw٬imٺNYJ:Fba.)Y\E;tc tr葍o9?v뾠yh0"Wa}Xe2aO6v0F+g`&ERN6_7HUuZm9?5Kz7˨>>h?ex#^.+ n7XkЄڃ03Dd)+9qSq PpH&ѤiYW,rHcCGǙǒy HX }:,Yɑc"x-'P lۤ|jR  aT'eC*1+8F%>]~|<{{CǙ4;&cfGAqʻkB $b /`tj7'>+ Mbuplj.>- %pjW,@;;쀵#P&p-hb֣ٱvb3Dv+OlN)%vl)./"ldBLNWZ hOJM;g?Ͼoc`vi?<QXĉs Xf jv<6`i\A?)k,-= yآ -zSjDU u)MuzZ% &u:rSGZȶeb+^·&m@K{0ra7-i:ŲNUڄGJ9HHpx|!9pEcpgo.+Ly>6}ߖ80K`M9|t_a4%[^\M(p\ҖW9~!h sfoᚠ/؍BOFF68M-${*i2R4x RG'4*eKc-<"ڦ 9ю~@qzZ'P ?99QOqifպzZ@|̝RռSB" >vS!_xWBƏ9%աyF$ۘHjxV/JHA{zIB;Nr;1r0c3XeΓ5oJs:&ҥ}7>g1/Aj X]$%>{jGvԤGh✗=$g*0>OʋNousFn΃/w׿5=_yCЮ-.3b/Qr bwnL8n@&7esXI~3S _Xq0f63: (;[bUxȬE1(c[K8)2ЊL~uXG`uXGYF//  \EН)2 TS 0?ݧG_ާMY3f>i(Ee,K)V?^ y}.^M*V-q]UfH7Se}2m9I}:mz>~>#[oN솘-v>o˷}}mԧڝ*M>E11~ʇl,ş!2cv} -zO^ߟRN%3D֍|1~#Q֮nM*΍pGg8LOyct-Go˵K_gm'S|VD:ccifhbIaT/Acfte. z,AK@ ÁC@)6crl /B'NzmAӇF"Biʽ #eX7 f'PXg=e} Eݲ?ffbA׋ؐ ka`.hPzsijMU@ovJrM2x z;l/#$]2g&hCuxWNbND1/WA 0E',s9NH,-- `e\ev:9ZXHZ)'1E/,⟝ x~(ÑQZ^$@=؇x7 &؃xgr4S6QiAy@%ʑ@>xG:+Hgؕc|γؤ'qwo(AzXh]nz7 x|OI X{|^T9;C|;z(v$m}jT2&g,[rbT>~]>d'p-!bli@, @ĚzO7KNpq (Gڶ«mr^^:#k-R~Fƕc r8d:HRϔZ]v#&< _ƒN=)29HQ-CKV)sW?~<))n~1|n 7'}5d0T(Lu/-/;yrkܞ&Swc_/=A\=t2~ó@l|Uj;2"96sǞE'q E~ ?7AcG6 $BEl#gyJ]W'k^,`l,;P@v,Μu;H,>P~CXz4/Jz#75ʨ\cxՅYդny^2i;|̱:l9_rx'iБyӾҶGC㙯=r/C>x`_s//Meÿe)uzN}OzsCdkC-d[g'ϺuXG`uXG@ {B«t"mONːeyS_2zds_tI 2=i,ec;:}1zmͧ>֯.ІtۼU̔4 v=J*..ZlOKZt~" ?%SBUe_8&*VmOѝ"!ey]!|">Y]?}k>*v\䓏m(r5.ohCtxI]»mujZW9ѩiΧ{\lww"Ouhm=ꤩSՏӟ*?67HqRΊ&IWBWWTRec"WSͱł!) aybKi' gYzBMʵo#Gb#~eGOE'V@ZOBfMыHԑ26D2=6O9yh&%f'Q&1۫u$cʵ[*mn{7J/P ʺZLPX  mՋ6)?6KǫOnJUʅ b`r#4b[,:G+IM_lY@$zEll[2= +bMIm"'|ExOmx}q>K C- O @V'-TW Q>[In%MRfЀZM;xAN:2*Y HeXh-5ɞϴn]8;2;lj-TmC_}S4/iTkݮSZX(OA xsiGً~N}.[;ه듪?T}O`<;zP`K4vĖc]H8*9dXgJbW|to}?e+9)wtsBC>{U툖hLC\gg'B#hrꑯpӲ{{u<~]9WaƗ`2_2/U a'92!9rġ=I_tv:GRqb1yyLSNsE3b!`P11%4S7KLK5SN̴3d_G_? D:~!˜$4~^*P@_ e'l^a+QҤQ|^X<r2o Kɱ>魗Ýw4Ay%GJ@˸yB}cO之O^xL` 薗#v4'ȇ]K|6/H96D? yMOG@~3(mkvBK>ENj}] rhr]\Ш#W?9ȓ:p^cKDS vN?"CrЏI;udЉ2%OLwbJ N Ȣ E+<b @@c[ iB?8mYA옕8 lHdӖA~ҝۢߪ(7gKXn9@- ŀob}|RB "xӤRVkcPܴR Ο VD8 h] (?.?Nz7)5q2O>mnħEY'Q%靰 V? @AAL V| #4؉@L*Sfxa3HD{6?脗do'4!4朗q5RDv@>-zO;=1` 9`L@1 $. /-y{H<RƼ|"1ca8@ -)R{f`z c'S\j[~?g+7t_S(9wA1prK΅M!db?N|+ש#V.E'G/@K柌 ehk=UΑLȑ2S@|dmt벪C>(ߡ)~6,ԣddryD!vV|ڹ?n e^$Y] 򼋝VϹwyH_Gzն-խ/m2%.kWgz\7qhԘo x)Q1]$xΖ"|eOty^h(u7?d^&od53ga341Dtɧ3d><;0J;L.ْ!3_g#%y ՄK3@(G g.5O; c䘨^?+s /E0'` HK0?3|BL/v< j >_dr:,cA} X1uZ^.`޿y{v@vn6uubwv=c7>/#˯dOӖK;]5Fjº))i:#:ێ__;0י*6>)]bhۋO}rc=+*vtCc;ސeyCC>K"'K)9Sm9I~h|L[gJ֯]s-ҿ1>~?x]>>zm2}i葦кdt>]H}>z*?t}6p__֩rNִ|nkz.*cޘwb(=v"^'N;_Dov;w7Ұ%u>U֙RA-x'oˇ<}.>yj^]퓟jKnͶn;CИRk%cB]Og?\xV9eR,ԋo)y=%WG 2mpG62$:yRk[@~mEE'#16s_$Ic'2] txem3vMB,p{ӏȴA/rE'2MENE& Q9AxBӂxc!Yt/0IsIU)SZW+:1X.F,[&op Bl)t[>Wh Ed @"ktx!>@,#'!6MOL pdɧCvq'%{tOZBTT>p+R\ `݊]|򓛛':[B7P@9J4RlZiZO8;TG џծQǏ X`Z>[Be)N*Wp= "vProW,.{9=BQ \-o޾%P?|Jך|>?? h 0 &/ħ c(R(\E$@fwf_o^n^Xs`gp(Yr 17$ ^dsPαKD}z;";O i5B#$rwu%mayel6l~O^pFL vȹ1ȱ.: %؍M̧1؎RG؃&knև4h+g)sSa$|jp_!c{:M HHtH +KvgBA]rl8S#<3!{+"+~Ű +/~yl3W3W;>:1 eXy ט /4gҡb;0f74@IDATqyȐʽ{U3n&<9;LÅg 8PcDpӎ~~6ga"946$~9O|[>o./ChyC;%0mͣ;'k_|Uq[ڡu.#jH͓Ch Ki6.Z}Q%MbGpdI/^}7un6z:g_ z>:7k9񯸿zs{\V TS/cPB'sQ':*zYPv[><$^:#:@e#3uU|RhjS}!!?'oɳJcS$ /3%G'5-6:}zmeC}.6wC#O9븅VcuhZ%IѺ|exMыL/5w6i/˅ݘ{L%Ek"SulvҦ]dcv O޲muv-#W,Rnǣ]mBOޥū(wŤ6E-vmZC|"_jO>m~om)c\׿^WGˬp-ׂ%Q)rR d!,a ZۭLȡ],ŷȒV]kІrK-׶ӮGz_[#ȥ*,.ec'z,O)NNB l<+RP@wrePZ\ tU.GqWOVn/,$  |6T,@(}A]|dĀ2]j@lP7$.(g3bh~8<Pipb)% s'j섄A|B\a@ "voSxk4l@FyxX^SVn!D`M)ز m<}޻C*%CS CBfli'~c;\v@ί:w>_XbHpm8uS2'3\{-2%5ؒ2c-K<9ʩhK,%'`_g{ Ν۷nΖ;w]Ẏ6W9&8'sr"C"gKJec7ru*q_ǔ:ewʼn&1V9>Fܨew1R9=mKJ{i/F?rb8‹N>9)>DG9}u79*oU-K{iYǪ!gAKnCޕLB3K7Cpcʍ Z (6 ~^F y c}:Sg}'՚~1Y A g Ӧ μy>ۖ|DIq.6#}Қ#P/J0Rf#;P3?xR34 h̻ #:L.!2yn943>[<|CF}egK&̻~PgV(Ibjjc;Q߾[k%폄@okgvfj:T/q0;~9YPJvg.h.mb~xf@u(wŎm=k @''/:oo1җ06 QvԜg s7{:m1ZQO'h$ɗ[y"cv6~ziP?"XiH:ysoI>?:_G`uXG`uFoo&;uU-^>)93gewYC,7ds7o?.rEZ57'r%Z\͛o/S{M)EcڥcEu٘*7Um]NR׮G.yE:曵N>1~ސoQ[_"OޘJc6uCt׾Ff9l^v/Go^.{Ma\!{dn]_Fm]O-z}ГGV)wVFw%ۦ-ZO[WՏ׾WR:<(I,q@cQ]IDS/4(wɋ<_dA؃.CuL'n+fe{sǘ DYBm Ez$ZFV㔖 XD'0tC1oSD(CzY|h)͒P.ޜKMUg]l&(;/ 6#vE[ Bxb@$Kr|)G6^Ǥ R70O_gB%)w`P,d73#+P4`C9;ARd!/'gJ@#U42֎> P02#h)Î&:@ԋ.W]MY~o 4>b_U3] ؟<>|(;BhIŏ>y*@G6BQ.p*c-Jhsɟ?7uSWeM/߶>)چ3Hu]*F\sHu~;OA9)؁:j"VĉXp$vL$N'7:Ƒ@ }cC ݏ2v=t 'Hu/;yegݗ)~[]s74Kzjd @1.)<}6$arę^TvyWH $dNQH6 ߩm`Kg>ho#/p;esS&ɽ~/ے ]omk> (͘>hTcnz϶h[9L;b8*qƪ/H#nG?HRvxa~xRNR}y _|Wfq[= gw^H92I(:5В3"E!l QLlHď33vѭyt/WlwF!'FބF-봎:#:<SoySi񽖯'-Kң.zmȧ>;C1{Stc;NKoޢu/bo: u?doWǤ<;EOCNv{zl魪;?Z.1#|QyI{}>zet@/dv=ɻEC[u'E.~M}Cml)CG#կ~5rV?BZ 𓅠,`>G|XāN:9GObG"Vu y⫢S\d>2)gLyv9xeFOQu@&;(Z Sz(x A13Y@3YHFV U:OvJրYI`9.U;#Os!C/ƒ:P!ii[6=k-ǞT\n=;&@ p[>m`, ز. 89ᢩ/|Dsaܸ|\AP`> c T]t> 1w6<S@eG-I(}wn]Q Gy<~c!k7}gwh`:àQT!q YzhrQ;'7w!(~yȟlAibĈDp@^!c۳;/ qE}w=&x xoO ,7`c_f/L6>0`\DNT)s8W <]֍,;`n57w{/w,ХOtķ7v<{!/ PnRYsMI>s{=_3q D 3?X^93RZS_g<{vޑ=Ag -;@D$fc3g{7KTad 75mkwMvjV;D@Kw<8/GHݻeipv8;?wh?HWR}`!}*TҶyF47|s6Ry"X-.[o^} _}mK/njNnqRs{wu.7waWm_nɏA ӜǦ1r$r|%B ږٔV0ČBKspN$G^g쐇<c]xeSn_mxAuZG`uXG`u_@E[wL0-}m/jsT9*{]rcvς76?i>?;"2DR]֮CXz7wWlje]z]4ښB"3deelS:}6P˵m}[ߪ _ ,rbڛ"7E11~^];&3O{crcʇtx}YUKvxc2r?1k'|mt*?d}f "iC>\ܘ~Lվܥ;ӧ.~kz]Um]kKMkc2cc^Rmm`HjL-GWHYTC?ytXA?PiԳ[m9di<IJ^QYhC @7xآe(1cN,8/ӎl,ƴEEtrn >E|` 4yȚW1]1W-@@P{2hB~.* Oll6@HM1%A1ß Y<նeTvtW>bwdzC}Se qy.iQ}eWC5DMʻ\6ʎzd,x @LB0wm{/;+q N,0>ͪ qr|8ڥP .\1cW2xXF@G` P@Ɏݲ#ė8_e쐈77I -<.@r[@NvIjJ}&uv1&Kuv(tW` |+?v)`Q@7 }6uS` 7JWs/)^өãRnS}V~o97ʉ*1F.ud'ĕ:$x",vG666|~o{Zg>I_9㺌x@qGZRƊcW K=6klrd⫊o17oJ(_ 7&% լLcה(dJl]&#,66a=yWM&*]ewȓYi 2g}؆lW)̍jϾ W|1^~CgӼyB^jWD^Sv} ">'p!@S!seQ%dݍqkgHܶׄ @*#ɵy[9e#d&K^3Ӷc!=yV)wbnOm4ew?=ɡuC*KU, lk9U;"CSgƆ2/k̩Lr s4>g3я=ҳvVu8δMi?/7lNԊY9`T<|v|qv[s9;WBsh9$xMv wCRoeﴒ[sýu2сW)dg)xo2KrdSݔ#`,t<葁6ShǗol(:#:#:/w7םu١ikU{S}u}7!O y1T7X}H=F-_lǣ-?-B".)L>%>C:}E}]*m21iWΘcjٔ h(}}vOcj[CTrikQyLש*|O1rCѦK KvxC>ROɧr֣<~$l>,d* )!|u:@q`ҕݚ֥-(9cłXŨ:G,?è&968hzҞHNinHsA(  PwVq[ G-k4b!@ (@UD@lb.Wļ@8ll^$xq*`EO}=C?~S}E'd@g)#Fhڣ?m9}SeqOCҳc}Ε\5;ObDӭM %6*h$V:n nJ.1UGLcm s` &;Da~~W'IϭBvtxX T')jNIcl``% Y [~o ChGA(TiMXrO n5޾vgLs_v&rO rW@K>zG}y]-Yml3)ӌ'Sm7ab?4yzȓs~Ɔ^6tvKakxiVat /<2fM1E7㶮pnL~_嬕8%lNQTS.Hu(8qg&O{'88`]3LD4D:k oY{3iO6KT/8tFMM z)g޷ ?𶆶wyl_vsz9Nimeې~ez6.u*zZZ_pj}ڟTjeJKN֚Z>=k!Xx:E oot3!xI!c#Z [.N\J! [Ҷ' gŵ*ؒ6%=3|}x.yY%4j4j 2ht]}Ji>~TJABYNĆǏIӜB2c<}'z&Ph.ՖZ}O~>{*N3C reS zt$-K s;90SN_S| '? ,4*LU3.Av<} m%@v={yoosNyny2 RO6#(,:5>wYOsv͵\׫-[qcw [+Md>E[}ʾ??BЃzK]5"qyCF>>zXl$G~l6 N}]srej;aH Dw0.d~U閐,ZrIt#T]6Z7Ym y ]Vo 7Jx:p7߾oiL/!>5iZA}E0@nP@v@p8K0OgYk$9 d'q!RU'P \Isv7;AH0sy%ebc;m =!gT*Q^)7|̓_}JbrB}͚C`%u5'C>p&bmx>-ys=_yvRtCvI#}n^JFM ;W307:7/b ^^hrpت-XǩfH޶q}³ CǧLjI \CkNiTM/0ϱ;2Z[Ll5~jr?hIsh@EVnS&%w$`\ۡ#< oo5M걉r 2tGvb4(Gt)P-=={`ZocB s;ݒscq 9޻ŸsX9ys#?i-]k^S*B2 M͗菵o ^mJy6hzx_9s1y6/ÍpS£S2*__/Y~54s - ^E'³LL(-x(pH zYDI :dani [ '"l>}hd58%NE3nψ3/ue>+Z-}:tg= K6'؃Z#ؤ> 0x.0 z8pqK% qkL B&} f:t` tp8Kؘ 2I"%@ /W/P/ yS_$Z!qBaG6#؆'F7V|O~+π>1'Q SKNl-}PD*_tldLZוqsN'>;叞)R$UNɺ3j\)(yɌڇD뒚mOԬsAC@ Ç3ơ/ȹr06yeCh@K;?>K9 x')7:q!ﳶHT8_uN"Md4zmmkOT`څ>oC]ɔ4oi{*+A\ن kz[s&0opxtj1>eNFhlm68`ire ռ)ZUDA4z)̳zA oXĨ5Kd:e7oS_gRA_Iou78ku^6 5hylG'm}?NlNhOe N~fUuӠ'؞TٺL6 kUk}NLJ YW?.>'Ȕ^F76AoL*6t+ˠDjm$O -ҋzl)WZYԧЋ_~`HbDi Iɡ&'aA[46П ~T; cKBOt_e !'s3)nOv={`O灿TMbOCܥ޲s:عEZsaZk5'oƖ柳Xs|w><9GT.[hT9KvMcz ng l T{޾>מ-srp<9:~\^ \X]TЯ }%%9kd.k"{șq>khB[o^y)=~ ͔)xc-]үiCdo=+Ӿ*{yOrp`蝂9:ig k=nxH8^Fd㬯ٟ&uwd#'iӅlĨ{ `}JulUx蒇zR o6B< ୶F/=WUOpgSQz.a h D6TC V٥wR-<|~)zcډHh򌗼r4X=$)NTAA_+NzN90i7 2DCc]t @3dr#䖓$ B$z ixJ)S< Q&@""geuT&h8Ӳ))Rf^(&PZt+XEUM8A[HԻ BӈZ'Un ?I*4 #r>AS0OIplw[:sWik}rh = Ik_<:e-gėYjc=NAz OSO^iJQ =Q&;ɑ .w̟k<4O? s"'YM?N`g=|q`BFÏ\+je!:DNZ& t;XchOQv`]Ia/"H>1rMB)շZ_i ˗/ Knh|N\|S5.""09`R(5/WDqj ͣL@C\I@\"3zѝ55ڋl8V*0A(鵞>_|[Ń:F/Csc^YYyA#4F('[eu[Ԛ@̫6> ],4Z'P钏>^fRPυWf*uhAf\ 2%R6\+`5#i ZM_iͥtS;]ےmsbYJpU<̕,p%HYC'8H9p#|xWI9yhс]ynVLO?v={`O偹@SmgN[򝛎.X+3uN%Y7~?sv㙲aM,]fɎ%|ںW9[OSkR[sL;7юѝ6&kx?kgys[KWe_ee\MAǼJNA Hpf&gr*&u> >E.8fx&'l^)PܥL6v,W~;|t9Eu4[-.ϐ*HN$28 PP3>?鳥 Tƅ//. r`8jYh8`"Div|B}]5PГ'Oʊ I Є=EjU?>>;^Ι~C?3Ex×I^~'c KF&19%ձ\b#ehSc+W! )-woL9UkOv>BЇ`)tV{-<*^W h PK >eVw*=Z}/D^S9}߼JF8Ndp0 ^ Oߧ)`XY5'BJt2_+=d:a m턵a0feE&/!`I9YY<7ۃ?n`{%Y)6?T%u.|x%75`:62r7vvWr ՚u:iOyBZ}&|zqB=pp($,ScTg,:1_r]ǩwІ'!gmhM72zN@)zO1aNxҎ#uTdv={`Oⁿ?Jwr%s54-l坳k9nwmtl/scem554Sm?gZѸ9cpS<[ck`c41SaSS1MÏBOZQ~Yj >h*WUн$꣼\tk1199{ dZsO]O%³.}~*v҅D_ | -y[5*cNΒ=*k&t| _iה'캬M#^[zx@n(`t)A ɧ?A `$@@B"I='Dc䍝 /iA-0l`4 A&e!t 0<'?rӫl #XBd]qڔhK imGv!xL:G;ia$QnH-ȅ*WC`pb&hѧ:: O*SW_|g(R#,uqo/ycha(Sw =J< 6/Tp%awe-o{fEv׉:/G[=P p/eZr8JAds>ɏ|^N*pzi zH>G/ ~V}m2Ct(FZ{i72 >幄@L^xGOKϞTSϾzRu]e ߇f#j?vRoo=F۩9\.%1WV\|܃I9ks")p>N+sQc>xSGxXuGoa~Um_({{`v$ɿ'@P. w峵}z OwNnM?N='w 7?֎9ykd:#iI_ScSxiwcrpO§d}}-)tktѠ3i 6zO|ܟfޗ[g $T|/YKV%/zغD Ϙ1X/LU)zȜ㍜%SKk;kFnІ/kU1[˻=7rdzR=z{51܊+]-ٿ+=ea\y?ӟn]wN6171 䡋HRXtc+w*Y6Ɇe.u}lЅ Vy";ȆZ䒓(_Ա36C& xݴDVx)36UɔڼvڬNWpZ*9`G~Pq vi>h"T66ghf[r_S  r? @IDATȡL / Ht+()[/`R\V']~;@ |N[oO"9[ڄ \Z) >'eї-IY'Yi;@s w'r*h'T:)PFaM=uRH Q`2 azṶ.^'o(SM6)vjx1HcSTga)5VyhP':k17=M՟Mfq 9hmxKփ0 dd'P;hJ_$ Y1LNŰaShDg9_Ze˯Hp[szE;kZ`!j'jްaCVox!@, Y#zJ&ȳ,"O$ҭEFEFu`E}|~qBtIn?u]HlOpXяNmMb82?gNv={`XAS r]+cآk mu,_d?{,xw;%w >g1 mnl NR".tZ'73oMaJ`uq8EV!+&$N)A>A>["u3.@k t*8Ϥ*8"`"]- H-'`2ж ltA+ͺ5BDާ\*'!X'zyc(p]srNϞSO'OtnU|Emg^撿R/A ՃS-9srKXrz>y,f]'Uy-RMut๼J~ˤoZC:Z@N]E69&d(krX_0g (͠caE])۫v =;pRQ!)=i>E 8uu\k8T)Zu峯t+puR6ʹDyZ{zF;#h+h\xdRc ƞ_)4b;Ǿv@5, "vv={`&?&ccxO w!skX>oKť⛂}XceKhl4)/[}[~ {X_{x_?_)=:3{xYsts8d?6l*rI~ >o~ 9K[d,ўctSu<%g ~*KЌ-n MhSeKsK9s1[{S^˕ WX-OфǯWZ>F^ez<: g'{c4;lʆlnծa 4h(I.eQ<]^SMtllav&ꁅ-e@.RcSA+‰`& m^x)S@C .|"tLaÜ&Rr0GhLG`O=0|ec\u0GhZc) * Dr}E0| <1\c@~N%}6O)+>No \KL6}ZK I: &$BU:$y[P>uJ̐;Rvό9N0-O4a! dKvF3 ހrhOTlԨ8=K" ʐHAU[9t-YWGKP lE`#b>J@c脫+T^~_(PAEDגHd\?;k̝''{|ŃFh8r$=>1!+ќJ=swq~Jʽv7>1M0.`TtN##| 1A08K}E_p<<NrhOfF~aK ^ d!M*y%5(Iy)p'5:mru:8|\'6ryJxo3~IRg `6*>c z#OJ1޿ :uF^7/}+\i_r巪j^#@ ~jOkY3v ]/:Y<|h6ˠuy+{#=Osu.܀ (;($4M@O!u9e]y@pet!}Dl{ ?"YG #/B/Ih=W%kW?O?3N䥑GErKBiR~94 -%AGbT |ΟЄLE^6T)O9}7cov=y韎ʖ{nb=V]c?7)8Ɩsr*][#?KtS)%𓟛vjXyIuӱ$k _uAky걧 | o$o "ϣ#{ +W%|]Sa;d7X[ݥ3xf[:I>ϕ'jyRm [2$fONb 9ES4AC0ਓF&QO:FC2F!x#h_*}FggZ߽P@,_듦|`SE:e|T>-MyO*p p3mXFAiFoH3Ug^g>2|cs$w^5+a jr ]_Efo\(> _P8@g:ꑂ'?S0%~φ*8N|S8J|Z2yTUHts1n݁C S`<`i|{_}aꊞ95H5I& $gYUJn !+(+@\Zd-߾TK}fo}:5'Q ܻhJ鵒uFsVy'=RV?S&xAKʷK xF/؂/7:Aw)p Fx?3MԂ;ST_ѳk1nъH#N@)/B 헁/J,Tp44×Ov+Z'U*O?~F |+/ɺO#,A4j*s|@2^ˇ'I ^^! rq/#^̃.ëkr){v={`9y>ƻ}6}ji99\nIX'Mo#?S#Kq|/ь`}hԧccakhe#r䯅Ŏ)9D3gM#-$[?R6RYw*WU}/$T|տ$+kB~ܞM}~.19cÅKscps<ծүCneޫʗhS씾%%|=c=:23?4ՆV;oCT5 }??jUΎ;BSxϚX9lhlqe=ٜq0Aȟ 6SG6? *@<*D6t;PrQ?,pEn4u, )&pr+pI }:DUn|!~Nϲ彂YgYWh \Sit.Nϔ0"LZN"8FA$(⓸,M |71A ;qaN;̽t)s_L? Tels˸ 3\OAOweB64)c~5y[#78'O{(,p"32I hh#Km:D n19 2炗I@56Sל U_>\s_K҃e{{8vO$Ѧ4A) Sv#r1UNbDF~%$I_s~.%=w˭NĿon^  SSGNGnmo%5Z/Bp*p -'Wu59W 4^dp0rdd2|ӍH),:Nwt4+l3W1 bol|E&A ]0(H?KO@ J#Jk^'yIϕ2䝞ox}<ͨ0x88q=G<#*OVΏ! :]I!20K')S=={`>-?)]Ovqk;G>X:x,X1,nN),pciNVOWSVo5h{XLklMя+\|Vi#2Ÿ'rkp~.z/.#g*_ÿ&h`-Nя`?VnK2*Z=OKNob\[x+`i~|V}kd";S^W##u{|ra-.,g +_ 笠*V~DC> +lymh.c.fu.6CON4lphؐ𫛯##2 d}MiK N9ڼ=N`G54)vIlzsV8r6 Lp[D@),;.X}#]} p'h #OyrIOD%u&J B9I PKu>*l»M>kftUk?ƻN2ƒ|6<4Y)CO)cWVnX"SxAYN*g9Uxap |%BC.{ޣSNrߪ t->/$.S4Y8ONXzO_ t+*=5c+ ('N`+I9-U*x:*mN:ŝ~k'ܢk<eS߫?91 c2t^&0Ku:)t-=: 6wF˟s=|Au<ѡݱCX.0$  4A&I|s:1xtGn:D=6'Z=@,m(Θ$ pP/4i?Ȗ4%:JEcܗV7-s'uNJ=^oY[6ȓM5E&F%e:10xs_C'61 ]h†oԋ w d$`kw_=gɵ&hVB 9:vBK;Wa)dkxq2kccյ`o|d;-^E:}0Ϳc~IP$x8g-K05Z6L#r@ (_>QpOTXk5'O_+ς?z.\>sօ>Nq;y>WCH ڙ{v!igLA7ckx.:|yqI?r\$"1'iN}~Xc={`vT˿K~g}=S>+c9dm1F;흣EΩ4ss8gt}})T>lEFϟ |/xt˞C7NE[ )-pZ7i];6@Yz.x`K>3jSq*$o+[ZJ} 5,)iҦ?fZ{O9tzS)cx{v𞷇U|-GfO %4=>K%{} uUNESof!na/j4py6ťխ##rCC!]0hIlLrq^󔅾WTЎ0 )sf)xѳy CفK3ڬe>Nj'%d0Kn䖡`?)8U\& 'Wׯ_Y")9鋓5 dJU#8ZyiO $~Z>kS3PyklcN_`!x.\IHFRߖmԡI<`-ԅ9AS`!7 ПU] ׷σ뾢o ~$Rln tʼ`h(غ~ΥGe3XߒhߓsU:2AN*=4{$xǀR^.y;Mx'?=v΂G6_s =8'][Óu p5қ&' sg }.[es56vmZ;|F' 9};f elÍt[)~'exs tL®A/Mb_J. ~AuHs%OYEË#*ݾ {N%szQB`1Fu&SNs,k =Ͻ'[.|#AɲNk>Nz#{)B?o:'S^j'h"{JkWzفuN|%8#N#pJP{BAZOkeRiq KXºJ`hSy/25,uFV@_Q]dy?k\LRJJܞOy);|v=0Bm2֛tlxַx*X)=79ܩiJ|)[s>x{z[k*ھ)S4c1r§xON>`|Jnlx("_x_M`GD3OGNS}=~[/tSy/[Ÿ~%S>ʛ⛂G>tOM#ϗ𑷖X)z7r͗?ߘZm;Wq}?LC|N~OTe[f?[~*V*JRqgyؑfna/m޵ZJ6mSV8$pgx`"z) o6yR|Rǟ}CG;~^T+7 Ыx2' _JDŽhS1"lFe6^QBpt<\AdF'H@7ƺ>$6x ^G0UNb6 (Fcil>KG;L# ,6AӶz&bŠMk 7}`zڭu;KLcz{YSUP18u(e?J. xdF^pS93ŹvmDAui\shK5X?n$gG鞰T' Y9/oӂ*elZ# $6[ $'%Sg(Y?YgL$s K-7R*Յ#EyQuἆtY>I(y ]\<ϊrV/\x1N%ͶHZBP&m.$Ƈ˳j^,1^͜DUu~=x}zڌ|@ƣNa5pCVz#o@1SO,Rd, ! H? ɼ`׺>Щ=?{,SFӨNsx!V,]~A}3 =gr&#:dyiW^٤:ώR'&Yt[v~zHjg<1qkNpKq0{H0%Uπiǯ/hANJJ\| %mS5Jl{Q.xjD{]u>.vc`pY_[ p0Ɖ\t{Sw={`o6넻Ĭ7wDa8"=Sp[=~IƘcc,O ~Ss8*7CGc*ݜ^F_|.}0F7ex!?Y9ܜ8ޭ/_Ly`_<>tKOvmDZ_*"In|+꟣^S^w&?Wct]_Gڼʙs5S4cp`o ;p=k9}} 6%|t$OK?|Sy/[}}~e>@Ҍ"{CF ]5}j+|6BO֡Kbd-z0N`S^ꁩC=УꥪShSoy_/WMHK4fVigILe6( ROtXFM"Lj^Um"{" [m{NҲgC][ƒP|ԛX)^>AIh6soaELpJ-8Ll(CiD07*TN4$#ER%A"-Xیvנ:"O/ELCۈn?L5ߚCU *4tGfLC^&9  ~]ldP}: ~I^dDȎࠉm_K /)mjƅO!8E+y^phKr?ە(1 8 ʡM0 )iE4#7hO|g 3펌1rZU<ܣ}π)q:pR; ?<5<[ssǴ|f׽cd|>>|Oe{`vnx`)>{!FjXhcK9Ϧ|}tcG|zO;nw*~NɎ)Y[SKk{T-廐EZ~ov<Mу'`c&NcȺ Ьѽӟѝ@˪ǎ=2==-tzԗ䟊m;_|IΩ`蜂/zV5kh왃XY:ry ~g >eGO_뵼O{{1$O7/ɫ|c/>:V=/~=ꫯ&a ekh d`ܛ^7$r6I[|6TLʦ\iMTպ XiMY~9mh#ãj %AJԧK;ތeQ.PYV!!!g#eC`EoFmx)@`H(C\lHh ^`&Ud?̱m0rllNC\h-De|RplK7tCZ@ap0 ~3 #Wre`M.ra)y\eT4;l1J="{ ԃ)-RSH:/g}̩i>-պڧ`\G}/%Dݠs@,|&+?ʤbW|;ti"/z2?8LחrM^is}N .iW梴XKNUa:C#y\,])-hE=]-F^ 䐐1ۍ5ZYhhzNȆ7@}~#_0FǺNPأmTXEv9Z{P4Ȗ-Ӡ6Ikn&le֋-mmO^5mEep5~hh0yavVËԑY@9>1~G&9W:('eɳ}hȣ3 Z"o\xck%8حHecr5ZxM"+䑟| \ĻGvO}~s&~WwS~q6ޚ<6ѨF3H_TTX>rCבmo||U>|)x:l CWݩG"g!Oz \xT)e۹BCnQ0KI9ji_~'}A L4o>lXTrPazۂ/po[4!&ED(xB*hBv0\%&NKNzmE fmZ#yÚ-}Ŝ8n0?N}>; /2:!/#Pvo9nç΁m]K?OtNħ̥3(qcBHtZ=<1X">%Az:eh==ݴo1䐐27֥vv={`;B:!GTP[ma n619p~*6J*wiK/C6G=׳_z{/ۊzoooJhAwmKKsՄ7`%xImqХp =d~p>'`i7` oҀցW-Golh, io}2]sƨ2ddx~(ǘw |^,>ЇW) p]@!Wɟ R[WC$!d~C嚰q*Mxj'|T`Ic^fhҹ$T17*@{ ^iA]x&D7qCpzql2 ͚="ޓispKP|ޛ>\}kTSDV*C0;&>>ITq˽<.W~A`B8}=WYWhY+; +=Ipok-jϴ3/dݣ.<PoMF"5I!>@!h0$i&u+` m=y7LJM$Fp5k.ԋ6=NZ;Sta~, CG0:o}}Bڧ ul8z?fl":reAk -0#Q&AO#C&j vU}?/2>Ev|,6h 9Sk\1G0&.OώGg2޹%5?zF8߯Q7ݾoϠ,~̚$s#v_L=\/7x`[mo5<;v={,q"φ>}oiZYkBslv윞ReW,cWŧcc\1do?)í\3G n <[%z_/-=f8s}nT|L[}}JϱvmB/rW5iz|*7W_55=>9̵ctsW=nJ~6E3%%ԓW}Pz/W7VJS|͡'J5Bl_g=<Ϟ=UyvPVWސ2'6qHu&=lmGl6r6+,KO^"‘Gb"P>hn?I1MԹiYAG9~_q~2|xer"^#< =4Wi5IDATsz [)XuZ!@ 'ج& Me%]p]l`ÌlN+hDtK#ϰ.v4i-=z[2 tAkT?Ig:!6Ct"-:]E:(N%B98#2$N: U|쿟 RE?ї̡\pRZc{SW7SwO_q V>mjd/`=L9OD3qũYAZ9a~ [Iomm)e63/ tբT<5` :#:ÄqRm:2WP ?yϼ:r1]߻T?˸F8hO$I n2`D9dK}_k]q%a. m}QP4yC-8Ĩ,]AuRtZ2#$&@y@ 4fW5|H&a탔5~8@Lz_(B\ :I]<|Lۡ` O>ZV&gUy~NhI{,a{IX;D' c)Or|E+kN9EwT6lܒx*cShNdLK5ʷ@h# jy`|=Zmc&Ln/ݗsJؓf3E'Y{1x%JtC>x^'cas_imEF7] g *g$?S8]v={`K̟3Rg>;~W"-Фwվ%-~I~xO=iN?pck`s2pc1W\;[뱋{ŸMÍ2SOtTT m/GZ^==T^^_]+lMKdU[hЄw=VYCO5-C>n,_Kk+ε0t/o/OU}vޱZ5M{8 K9M/`CҎҍnWyc>rsc]ﴟ[un}~NZ{tӟԋx憎n|ywGG2|RFv, .:"/9xR>IȠUm 8 _-*߷DҦj 6kmIi i=*0MP v[ۧM̆20u_K'QX\se jNbکE:!Xoհ5#1Xm/&s )Il8麸&  C(UOʸ#0S\'S{uLU^Ro_Ǵ;嚧ዌ:B=&WShnGpOޠ^'SUhZMk|! [h8|p0PsԐ}vqN2Am/&#GB#^|NQ#U/78hv-a]{!x-X9(Jh0QN}M7h/f.|Ӈ Sp7=5Pz5$nnk/4xz#L乓@eS1)>%B۹hrMEHnC'(>l/A t5w!{ׁEOepwc|;v={XױﮟZ]CS寥_ClQOW)W~yNe >&g.p[l8V?:x ek}EGhU훒h_`KS1)0㏽=.~ ~W|KvqBIctލMG=z{S#o}khB;%ʨwr/KO,Ï"/))1xr14[kMRmJ.tccV{+Zs=꽍`ʷB{\, mN{xUx_}ףuz|ˡz~2{##OOhYizg3ff4yXbbal:tԇ2"7QSNzlA9xT<P/I}SIӞ)*a~Xu ֮_ flnVI;u@` \kZ oZ[ ;},b& /)dJJS)^.1k^垤PMm*!)ӧ 2x'CNL9kCKb9tyLjܗDIi=u5{ XhAsࠡ/QEa$hIdE`p-0W43PWO{l:8cS6y 8 ns6~IS=?o"LB[+c%GelM{+O~S$2~J{$ʡ2'>M)>CG"XATRo4o_us85o)k2KH&YΌt[:-2<)y в63TʢP:C5`fa>2t x! ~`ЏTji:H=dT@NbY ?. R)匫%܉zBogퟛkܪvF.:>.s-UxliMs+L>}q \cς ._k?e,rR+~ljg$Au<mJ` }cnrp$ँߧ j?\D~=O<*RF `ad=N{`v8}':9d-Ү;g?tl\sw 1Xc <1dU]KK6,l_Z5[3G7aXhd`7~ΦJ3W^? uٳY@Kh{;j`SO/s*V}rz|M O{GyIT*o~ K ]rdU9Vzxx=W[dtS%S|э/>K4K]|NZȘ9|F~*X_]<`Z;%m$J~;Ff.׭:_CyvYR^Wlְ ?lĐ"O7s:I|uWNBT6_6'm$Zu!;RVS3W~0IQNr;𱘀` RlXf:;(7^uDٲq][co!e~E.۾/c mK]1\:Yޛݧ h{#zltZZX⼽´7q{+G lހq_dpMʙ?9. 9ySp; >jsfMԯOzϰnbʟ}z֧ ɘWS92<' 'al?&h]h),u_ꔙ:;sy% [tn'<5_^ۿGsƛ^=(鉟|A%_卷sgr/"HSO}p|}۸sV߿>?*hüѹʖ1 ~u.}{v+nvZ6jjNtF*sfo{.?~M|mnXs$$2kMk!mE^u2ƱxD3dCy~@ٕgD[֧e}Vùu|s!ea_ӿԿׄn(Xk vJX` rZ׮z/AͳUץ#ui- H@>|b/yl@/ǭq"ϙ|[IgGgq+Wt56>ꜭ۪y#6Kg%~V#_GZ͑VmSeٚgk2:gL7rl|ECՔެӾWB$ 8R)U~vOiWq3j#0mkLӎ:zho+ԟN絍>z19Q+k/Q'܎-ϔ P?݁YGwgDpX}fp@K~k3'mcnݪ~sҸ'ʜșS1޵5] +jS :${>,|^ bmo,Q֟}ok{)_C_H^n`Gg@Dp'ӪQf<#?u+hqݟŴ]*yGj?1ԗrMtZpǔaT[\݋yW`%Q=k[[ %xeYk9>[yki8qU?K\Q5'Si?1J}^j񳴵]A V'k̝IGrw,ح%  H@8 -]#:L>~=VzϻdR[c=q1=^|?s*߷k64dc{Ogէ|E7WlN٬t|Wy3#gD3=6/[Cc4'>OO=g=٪w|6ȱdgzy~Oy=[}=lO}^~rc\EڨO9#_mo?tҖה:>o~%8+f$  H@$  H@$  H@$  H@$  H@&-'$  H@$  H@$  H@$  H@$  H`'`$  H@$  H@$  H@$  H@$  H@8 `%  H@$  H@$  H@$  H@$  H@$  H@$  H@$  H@$  H@$  H`l$  H@$  H@$  H@$  H@$  H@Zz H@$  H@$  H@$  H@$  H@$ ZY$  H@$  H@$  H@$  H@$  @IDATz$Iv3"MZ4Ґ5x$|"k(v%-,=N nf=">}zk)B))k222222222222222222222222222222222222222@V+++++++++++++++++++++++++++++++++++++++g2 -$fWVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV+++++++++++++++++++++++++++++++++++++++g2 -$fWVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV+++++++++++++++++++++++++++++++++++++++g2 -$fWVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV\h3U~!֢yfⷀ-Ӽ~:{z#]T}c7N:fZI_&vT>oW[2VU<́|)Def1Ev&[Tft_d:G* ,?Í6 x܃D}cn%ѾК5}`h9s;g`٧B'm6gfH/e/b(??eV 5z@?=Ó{ .hq)a×p~+I=> @*THWhyZJrs${&hd\m]a M|566XœF,0W\s VGi}%V;yr!Ub[~<=>9ז_2V25sX\'b֞e؇B(C\"o%gt^,:[8u6H"k\ȉ>ou4L]o"E)Xm=LoCII}{jkAPXƾI:<>|%5L>ӧZ4!*46ωc͹&yg9vYC*AUTɽ @o6~{}ǵ_a5ъ ]\¾[8%\1=j7=tyO(dǨȦ#zۦ9 %:(D)Okl01s_'XKo98yx7[$^8 \Oh?cl :p*^'OO/\s;F[r>-oteݑw$ ΉК| \[5M5wl:}_;7eFGg5{޾Wons;5}?;׿WkٯY~_ÿƿf{f21qcδ废?[lq`kgrƿEeGefyr^ƛk3ap-Rz-δ_o%kzlq]& 97A6U|bua: 'M?~A/dB+{2/G*m@D>EHKeY w ?!6n`Js%y{ "h0)k n_g TE8Be"\2a |'1@2$1LL%Î}V/nuaHVsI60j_^{˻PU{ҔI!}iO?vC^DW>D@_(ɚQFyߥR#G'C\?ne߷*k /ƋYO=c?x_-$#$EO~A=`s6T5۲*?fGYh|c㖽?G1}ϣfв侏r50Lo9xPb"6(ȋD$ ڦWG1 }hEH6rG1᥶hlЊmk;Q]]oQ-v_7ʹ-^_n:AjJBDbn --=. DФfp'[MQ4se|o`aQ^gАƧJFD(Zqږpц@d@!>g?,f3\t,%UtCB; 5(4 $)F1/{*d|S>/W906Z1ȩ}*M| ٭c}<!uU A,>y4QxQ5bϊ?Ql'N!M4z{uBs9sp,]hY]:pщKyj~y/hY0x2bUbaB E<;|t<.xqG]z/aYpN}Hocf/xQ.O*G`V $cb㴃D" Osx%kz.Ewp5r@ ( NLyYzhalɝs\|8Nh#8~،I%ԡ##F)䀧Q^ 7c(lY&f㣲B!'sdj(W~1Ǿqo1wg?IKr?!%TL&&r'/XEB|l@=lj1& >0Oj5Ua4`DEs4):f؇˓! g/,Yc𐭐Ւs 9Qu p`Аtaޟt~k<;E2Ӄ} >o93%~xyk# ϯW%Yme`e`e`e`e`e 5N%Wi>~󇲸5kޚS[xSk2=-t# -o~<#֭?t%_K:;kGvg7s83qnѿEEHožUnk83~oz#q|hGx-K?ˏ8'zh;bl gSR]/Lt175I[ k>,܆X6 IN󢕍\Tv7ÉPݵ|-X;l)Y~_A<7J 붯WfAORFO "TΡ+2ͥ(Ѵ✯֬dDd EfX1#:4"F0/]b)zz{K,3Z,W}^է`T_*VPw17EJ{އu~sɲ6)vCWL|R1"X⧔y!:d;n)@r1|sf=I씼ʖ):]w쭀8|H?'%Q9&JRM(ʲm)KUfiRTsyѣmH+e]LJQBvi$]^,!:lkK\S<9 O ~:g| _߲P s -9?=.BX>{|8S_r1!:Q3UX5{춗#u~i񛼲'lFp=hH1rb#pZ˂J%G1jC9 ;9Odk,K+{[z6Y'bb q|1jâȶR<#4쩳_Y4YMa^\ǂ%rVe'7ȊMn-1V}Jȟgy0^=[.*Au \gZ^uXXXXXX9fIpZN c 1Ң~t|tFݛs :ϗ3R.W>߶:r;H?ВX=:>cW3KoȎo=}sYv7YܼqnGk?GGY{m:=1ޥuۏG30z}u?g~ozGG{Z#?hC?Giuf=o:->xwK<7t?f잏퍴q ,??Cխ7An({TAE@Qm@:BŶ.Mktbi̎< 7(%(1tfm[+b72 iI $lyt%}hk,N>pqܟ%dP(Lo1oBMTc1j)=/BE8Ó&9P߶:/f0 1S$MMƵ:^.HdQS|t^v>b+pm4ƣ؈K)vxb\a8-IrcC/CB+Q@„~v^\L=f}=VO􎦐e|9Yβ}5|(ZYZ;l{a=yf/ʮxo')q.{rĩe4_4KZTٳOڿ϶З&z()VQ> f1ipL|J9 V1ƺ?Y$-^$y3yQ'5rţjd A@ F "Hlm}ھP3=j0|S^6["{_g?;Vʓ$e0b/ߋ~v;/ 4xuШMcAeܲdCFv 'y]^x[Gt޶web"C65R':^GvL\<L/r8vΏFg /_/ H(~޹Δ +~h|ſ\_*?_>݂d ̹KY~Gd-fo8~*GY՛s|)myioߜ2Z?i'ds>G:{ ޹y簏3qk|߿jaۤYßu~v e~ƿ6xG;7u[}rUrʑ&cs_DCa:MZ;`8LMNG&C z-=H vXmp=OgT6*) Z=!]dX@t#}Lzǩ} H r6)lʓx!{PJ'|Cx@F{ 0&A\Oҍ<BKfL}kNŕN=M_\0XMOY=%4v\|@jzM519([8F N#/Xй5AyGKFףs %-Nqd,WIӱɩ&d- ϓv=km4_WY'YC˵}xT~Sl=Gv=gwS[s}hO2Z֜/-krƷ}houފ?~Rbg#k:3ƚ6Hy?[Zg~G!r8ys>G7ruy=fof9}37}[o?Go}[imkoG#Q?z#Kk~fy#Z~y cx7m~{<95z>bcu8+zow{x3 ;Gѧk.bG,3ag;K+E?߹}l6Ɍ(-'zeDnGj-I tAؖo+v["'Zdؤ51d9fn./6\'v{F*"fl YN~gfVb1Eԓ|Zס+ cz;M&Iyv)(>A?7eu  -52f;1fߐ?k f)gO7H\\qY咡ئ_& &֘d yk OTQ .4[۾>HExmN q|Zx`>d k^rkEOzHZC o)bkq)ymNKV@e]7s] }Ky ?S|0F܋2&Y k:@s\h=Ұ`癒= rz"d -xs,V^"y sfΏ(ę+v0Dx?ƭrO Z?9=l zY_;.|kL^d@8!U<")]LH?W8r({ち](w@{@Ɛf_561bDS! ۥl[l%+,Bw5uApDg$f_R>l6d;LNC? ۮo {-GvMu%INT5j,xъXr61_g'K\9SpșUv=ؘ{Q93EAh rrcW4 |=(|&/\Z*D/y&]1dw,{3R\XXXXXeio|^:[t߳K /_Zqb?ϥ62=1kZv܏BKb4}ƭL돴#ݙz-;^-Jxo[rm?o=#3Ӈwf#s#;gk_֘.afvhOx1fwM}ё;i7ޏǴicZl_ dKu{h$ '141ȵ?M4q#-jl >8Ga㴯ѷj pZ"I,F4{ 0Q,j>6o42UJrɉNEsN |HH$vwd(s<\?vzom^_P*"tiF~ 50頸g; }CtK]]NOG`/WA)_˚|Ȑ>3 `|5qHoG&骭j=_XGMbK:r{=Q8duXLa qx]pxjVGPV'=ӜJKWB9Uw"$a/!/_+8cw d~ -l"Ŭ1%7 Ac qsJ_:HJl灤qS)&'9Pu|/HA[OX"{2䇟x)ZZ vQafNH1Ic͟g"ġ7m덺Kme`e`e`e`e`e৙>s\ -A~o> ^?')?XƵ>}~?}mXrqG*dgBK7{뾚b79zrsz\[n75ΟwM?ѝo?Z6HZv=xGq|mƜn~Y^QqӸoz3129}xGm?ָݷu3ȿK.}?6<'Fкmܣ19XH 3틭5ݤXhSǷi@:!Ffan FK247Y: zoP85h6]5[--wo(C. ,;XW9>8SZe5Ͷu+wzVo D'7x▪ŒQ.8`8м~ak5SrRnG߹VRF6-vouHb5J^7Zg΋"ttz۪yo oJ\n竼E_|@}n.ǯӕlQ ̚Ț.vOF"?6 m9't𖇪)Ayռsa)p&Mn'Wҥ$WaFܵL D֑`x2ӫR㧪<rl-xvԼG҅d.bJ),ຣ/<<*gɪ 'n}]WK(eo\/;_=p<&et큡{6x 8WEdZ?PVw}oL.h&PVUdB+%:et]H#(bkVP;<ݴת@)قO?8oFwONİ l\ Lc'%{Ho@j4ƱBZA&1mj4߅I!Y,H~./R Pxs1R) @/Z/|pJDuhNzPnpwQh]7iuS.LYʦF%z¦ӧϟuYEc6|#bcɉO5Mu"O%y!.>Dj鲟فO@CK9 I?RA֔r)l諶SL(4D^)s d,Ӹ{<ªC+Mkʗeċ󪞵Lz#|FD޼X\5ho5~P0~pllhg *l<$c յF?P4c[Kײzsƥa_ÿƺGȧ#mIZ^ˏdZd%y{~o~ߧ5ec>E˝Bf_ǒs^˽Wqg\x3ms亮w(s23`g{oϘlCwNVٗ[ٝfόw|ƿ?ۿ?]?ѝ!?#<f޹%Ksx`1_elGq<1Cq_u8'j2| 7Xpb\aAi {f(kN->QYN&C6+=M\ŽvgP~lI8ͨ1ńqsPP^916=ڇ1Yؐـ}6e75d>lP5 V -_>:rQRag,'> |YwXw3#66VyrL98<03S&HK Q Kfl}-i +Ugim&xS4^> |-c7\Pg2DnZ!<)>ub%5tQρpԪ$9( W|9 8!n5 ;{7ftMd}ZB|Ղ#6MGQ:8/S`Bk_|Y[?g4p0x'ǹye<)o[/vQK9>{$|‘}&}͕qxuҋF*S al2 Ѽ݌)M|'} ^CV0b8QHWᚡU$T'Z47/YH_]``N9&%| ZscT˅ (wDPb wwzfEssa5# "D9z"4ݸ9~$5H Yg}@Xa (qlʏH'PbCCc Nи|6O>f_b?|Q9?@0|ǞLPiEn%LV϶xBK9cH+*Hn(c}Y azR"ns AT-hZMR1zqɔjZkD)RfD?ShIE* Ft<9/9*5"M@IDATSbcә|W1k= EN>Lo7g"OO̓n$Tm+9,1% DydOnMr>v0=_c'i[IhBUVmO~o\#xbV1W M ɑt&{@ ]3[G82" jdIK~WxѤR@ώ&0˕E\o趗X\sR+$|8kDq4y,Mےl"N?3iK{2sN%+\S/r|-%v>#}cu L?UhLg[~ Ed`Ϗ`θc]Kײ{}U1}s\{k4o__BKy&c$r̼#y>fڈ53./a^k{~amL#mow|xkss[ӿf]ӿo[ݪwo|r?~ƿ3ۿ?]?ѝ/፲-7Fs;ǟgK[/Ͳ?c]x=oвop߅rlP&8h䖅vi7<'2L 6NaoBE\hMX뎌hy8;UnP(cCMۛ[[C7G[o`0Tf6QLV˨ `MX]6#I"_]T7IG]31/' HL/5@*U<ś$+D~>~6hP7o%k17tSaeQh͑q]P(&IJn83M[< -?-čgE*vd7ŽM+Y&ӀaԁEȑk*l󊢤O7V1nUV>JiOA{{ʭtsp1u8z=i/ջD+u$?5/bi??qn[Ծ"KhkbG2׼GJ(3JVƆ܃>[[ps?kpsdm 갮' VTD]0Z<(@M _·jeBwhA+u`o;AcgC!ЖM s'C:LJˋIOvJDuECPf-)ݖKyegm?zfKk v[z|ڑE~vL}u$@zR$sVK t׆bYkdJax($EV%KкI*f|(: ^cTd"ĄB*,=I?8u8GGӗT9D%[b(*C }^\-@X]T<;~xQ,O }ח-;#EQPtut$c X5I=#1V(QXƄC37- }ks Xe덣 $f}ok}恂ĠUZyztgP|W |j g;!$H48ZΓ4DC2})zپמN6' \C~h5_YwYVW~ -;_XXXXX-|vyOZ{\7e`4N$; 5[fWmO3jc2𑅖Q?w:[yn՟ν60?c8f\3msGٿYs+Y{gQh<ۻ <۴kx-7;ܪ7;77gJoC__ ;ίrdKˍk:[Z|O3Y~7ϼstfl|a -}sO7~R152n 4\#MV{nqgi\cb܉rE/&([MV|A[^U&S8=52i.MP XY6d;fKf}e;ٰ& $Ӹk 984,gBadp ^ÊsTa'nzާnH0Mj~f) `۰.*R+֫n[8ңw.l?-X<+-Tdܤp#F4)`/ #07FFqqJ87m*Lb& 0n0Ne 88Ml%HuoAHҶ}1+t=ІBLjT @51cP`:g-V,AsdO.>јUy=k~5'xqB bދrAdݳd&Մo"#$9kY.5k?09!IW!W}vX^љ An|> !`樃$!d,'(\$c'x"ŋ(аkBwxٯI·$l^}6-PmO-#Pֵv>E%;@~<;Jl5R^#qé0CfЪn5a̾Ks,vDu^DŽ9:FxS9CڂAfw/_thHS`عDИVe++++++f?#*?X -s_k{dnaI| eέ[ELof'-oܣ9"xtclNa*(Wˌys}rmy7B-) 326 J~=l+9z#k,K~ ?f[C06:h֊l֣ FaiSɶ]\>Qµ x E [B/$.a84r`dQ;$lv䲄w@S U4t95)zWOI4₃[4v">@Chd7:+Px.҂2ˈgM6 \eC`C{גNq E7KƘqx<Ѧ!cfdZx\v0`\_P%hz)kV#A'̾Vx>}W;222222p{Xko-g%ߋ}/?[yE璗{Y^18׭*w.f˼qVkpyŹ1-˿S;gٟkY~mm3֎0/̾AƞGfڬQG\̛6?X%_})r %%vf7QqpڝKX#߼ cme6}\bf53+ą֠ʉ_Q} 3 QooۆlYo0$~.Dy&] !T hvᩥS\ְ€76$d 8 P2'$,L?#:HdmsCxe'+ҡ@8D|h""9hFvܳFjqD=>tx/K&E.N mk3r7 ̶֭XӛIGT>x[Džx?eHvHb%=n n›97i(ZX ,Ge&MIm593Q}& eO(qaF,O.X7e:8~#QEMH>$2WVZ@}5AN.ؐwyg4f9潯ZODg6;*R[v|.!v!u=ʮbN,3>J%q}ӆMHbWb_ Ŀ2I$&z7R"tӵөA=C3} j~gIO眐ĎG1S7je>x[c>D#ĢhO\AOl4xMoΩp$?Ժʦ ǧ+>t1R _J#>! m~T =Q)u#q4KVAHt?Z":E} "&_ZpsA/. F?iS{.->eJK݄-e~m^ l#HeUG(Q&1ʅ|tQ{r/d9 EhD>,:GѼ\uFj2QbG#{d90.k 롏NES1S̷=@ULeMrؖ_"c[sh[xH'bEM0:g+Sϵ"OL`?A1}'  .mLǺFQks3cbFNװGM76 N|s]H @cI>Ye [z圖qŢf\ME<ϭ` $c[ +%NJ[0ҫϹfAiFh1i ?g|0 7okџ-Kse`e`e`e`e`eৗ3[r}xKvZook׀yh?:26Ko__wYhIbw5skٺŷQ(#{}#;UoG,ƳkgkkC'B1Y5#:G2xf_gK {?cg{G2߂6mZ~f˵o7]dCdJ7sd \m< 5-g|2=p{-35y5E©#u"n `+]16Q1D]s[rwޠ{>RHqܨzgsEdpC]kBٵvL>. 9yKܶfrM_}cv7u+CہMRK:8eͅ%@dX7K^7KEqY+N%0h ?eferIORrLj[o7p_wE1)&:jB'WPT.̑mbsqɽm)eGeЍa[57!K'm Zk Vm2`S'AtS mrhmqmOVcW?Z?ΘS>]N#?g$=R6 ;\?M\k+}>uQKϣ߱ xÐ@5׭¬i#5?sDSx~#Z04b{EP^T__\U6ήcu9ë] [1l&PaOaG(%a^}{4;-瞮gڄxGQhqּV 'óT9mlIOien;](wM#9a%4bu1m Yp%5"GɀMP䉅|V~Um6 G+],h%}!b7M,Y;}$?cǬͨ=Wm!|kȧ֐X/N;o)V6͈y֘}cٮAGCβA2/\UH㰥VyUBzrR^s"ן;eςZϺ|<~Zӟ;ҕ~կ4NܼQy $3ksњk->:?Zo&߬ur Z?r! z|Ӽo9c{둍1b|=>Ͳs>w,^VYo]7Nߖ~oz-wk?|6b95}ֿf{7ƥ~ƿ${gqֿ3|7ˌdgko_ӿ?$?ggY{eݐ͔& 2kfNo5<0ކI-3BM j!OGn" pmDSO jURܰaRW4}8wJj;7s-Ѷ]/qPFiMuِ+&4.~!+(u{h3O= uonl<߹<ْG! &) jܠ ?,kBP+㚀=pc7ruo>})&ƱxC<^'3o򖮟ult#^ݦ| Qłѫʍb[roH*.x2rBSk -]vJ.0AD=Ǧd6 ipNjfRgRDaAR#tjOU4rGo%ɓ8n#H]?PWZa~OutC:٫OW7>28 $)To $ ~ Yj(J_7ltrR5ݽ`\ R2]4uC.x }t.&06#JB?~_Sb!+,JFΝRtԍS؁pX),@DGB`x5tp0e2e83Fw)%o@l]ts,:e=Bhr >m }B'2z3OE4|XJDK^E?SCU>}QC^a{Ij${i|(vY{=?OF$_e¹T4=PA.aqHފ ( VaDyH0FRDa&myjzd`ٱk/y͹W&OyTb`iDLȓמRMuggw~DD&,h=nٖcx-lܮEhJn|~+Wo>rľ(OB;:,v2|A&U<9gh[3=}bhh??򁹸]h7O}۴72brC6eϠ`дn؅'Rk_knn䵿^`x^Br [1sO=f^.lY_7}@PE vGe;> lVy8C@91ag"}Fx $Jgߪ|5D\X2Ϝ.Fhľ'TgDxVwa!% d3Z6wJ]t r4*SS֚^noGt 7T@Śc1 l$ohl}j'Lʹ:aySBڂF^y_#JNז‡(96'7`15QQ]n_M -]u-u罗B h&H (re'sɉuD9;IKBߐⅺĤٿYкYkX)99W{1qzMbu?aŃ) ^{[TE_8քEG̅%7I#:_M feֵ6n'a!<ׁk_$7O2vQkK E} =UFXOpKAe2OsQcGS~NϲtE`+oҞ u$b 0JI4y"1c^9b9^;] z\qc3ȃ\$&(C"F> -)SٟujPֺC_@ 㻗IXLjϲ~btb1^1n99>"3}?]X?~W[/&9ÆĴ׫bf-Q|Ag' ZBƹ'9ǦcYeXF9jJcl=6`aW4i7&ґ ~fb{?X$ez # y$YG̟Z Y5"L.w'j?bJ^PS/^sv1+@t5?8bݽ83 g3T+ H+<~ ӸI¾kO5Yد4ˑ$9f fBxEd_g|ʌDT [R .Pe_Uo|r#Įg`={ |c۝rq{s}mƾ>g_~yϹz{yB ض`J\?8.u3XNǯ--ǵ^k[{՟u-cy`uL{Kp|]Ho֟9-?c|A~i#;6wp.򤟁x@Pm$ŁUehY˩Ԡ<.Bૅg\-|gԗ|3XGWS0-yvfLj!*VWDO:FE/\Mx5B!0CօXN}B˖h 4@"uyJ=G -׌EPgE9b/L'i*A*L4=!LIM{rŁ.,~[pJqT|, \שrFqG{XSr} -dHEy| ~Ӻ }~.*Z0 w ҍ9r֢TvU(>[)8}~)8b2͐Z֯#H HS;j hE'~Z7[ϴkJ0޻=pPtGZL)XԈ V,c:Grml.x#S<>QTb|A,]26_˓Cm&jR`Cegd&]5扖LO(k ws9]3lG%C%D_͑aD^\6PTeHבɎ>kacOqj{| oHP ?O2< Rz(?EFz?-i!{Hl_Ljk]YU~֔ 5mWXw:+}H)+ ysL8w}n`X.JԘ}K$seuQY"!$C~ yY֚d(BKqڴ`sfqYkj~ZTߌ[p lnhU|Nw]DbemtQ$ .7&V2QbSEy2feXTW` x#b -K>.$;K\XYs&vX;Xwt |ֈ|^L5S}PX_H˧E- {-qXk'=ɓ YGPF,L~&=0Uد^V-2)Ƕ ;F-Z 1gi˲f2sOR,M7 |bΞH.%9 %i|F5}AS@6TSt7_9 Upu'RDDs/.AWt\.E_0"b-MCUWIju=jQ Zy^J*EϿ?m|Bֺ&/⚵@zʟgSjM_f!Y\ jpr3-w\٠V _9=#Gc]BEx叡"AŖ:SC$;iѱ 8m,yW{+;31_qV< B_1aFv7.8bPbg&(߹߉E{KQ\T~E 04y>, a{ ן:jy/P!sܨ}XP͘5cYϷ<6_~в#=$ G]^.w"Tjrrq){r#Nެ7>#OƣPJ՞r?.Esk/x嫋b5)podVE&ĕI=k~x攢-ׄ$׉O`+yFtxɟ$ʊh2qM_#]pj}lhN0%LKlgrQJ6(߸UlKiv>qﲠBPo~ƹs|g`={ |^hyG&ؔ4b \>(G`޻?1g1G>eKx/uqm -GZۚK[cνXlmѮ--~s\zε[[kZys|[x y 21`?(@46HQ~e\"?Uұ6 eOV/CÆ]D! 1BY5TdY >k,ɫ}59զ'[ O^L?:*03 R90g4r쵩w9Į/µ_k"Ko߭+!{>) w\sn%L}9rJj?Vi x閸q#,dLeHL.~,o?-2߆s&:hGi\Vk$wĔkέz@T3n_vPrb2nqb,,Hs6YT<w?!kn<֕;d>J&Pn r4B]ď%Z¦غmfﶒu%WGwo\yy-S%iBqVE:Q ^`fֱ /5{[W2홊Df/R0ł~ !GvS|G;)>fUDHk8CN8B"E33c0OF`xc)K{epPGb' >c>*'t;.S.s(v'\ׅ֞X$F0"jHh3KME[U s<km)jX9A6~!<6B,]r.D2L#\x0.[^S.XVklpp?~^@FB5`E)RT { <>uu +}G_ֵq8Z_Ìtqf0;#q |ed!:^$#D&; sam%3u3/0f)!\N"A>o ^*ƨu9j>Q:#kr^:xgcBFRvnx}r>kҫ!0iNZ`łQ'5{'*^ц˚,A5`).l1ǟ=#Y#7e,#.*FH؆GDuql.:Ƌv:_kJ0,(DZTTM3Ot . 6I^f |cGĈG1(@|ϡ x)1Ko97 hyx ndä ӕi) G^t T5 BU&Vy&Fua}+5|Pk1,8sr֐gS0aR+"x% RʃY{z`_vb^#if)?i9Vyy8žEn=gu`5Q`y.F :R*'!0lq ~iB>?!ȐAⳲ' >'&'? v .P-0=.o}_FF{+޷B1B:97?-ތuG<{^Kl|h{oceKokY9ǟ×-3gg#]wJ1=o91ZGތ?Ǧ š Ip0N:cM9 Ӈ5zDl9'@h&Bny` JT[.aW a 0V-Qni}  n)|xڍE9.x"(v4FX:3x段Aʡ 6Ƶ(NteA/Ol􍅼}Եi(ヾD~_ Sr qzVENG{! 匧KJ>xJ 4աA2Z]rPb~:i6)|*d#7IFrkY YA/ q4QP6|1qͶ-rbM O(O*eJLqp;:O\koު @Z3 i\\J8F6~)Is]hmizWS'9"Ğ-囵ɓi*nuF>d]U6qk Bo $di5ף,U7m^PTmUtA/%F^¨ud)cc E} _Z|Ϟ( }@Q Є_>䀗=(gX#s Ş& (cL䭓#Z7 (ȡO-0p#;w͵ɚC }'A*)mw+b F'1nPn?ʅ-:4ɷ~KeNQx7z$~%O eu".ۯ`m#~@b80|G~FLk^?NmA6ŀvmQ's%-$P%w0m#i?#(Ž䊧Y{ ȮuXt5?qBXﳱcq-& )5?l ׃VK}(fbzI,3w؈UzlO>WaaIXs^O,YֺAwBI} jXʪoab]H Y|?c|اiJ"+m)IQFt 5(_`B1x;H;,$],:C,c'.TΗȂ2F>Y&+1;zUrsl!9 Xd7'xq0}$&0 4ǜ`zHyXw¢LI]ޜ]f|CYMJ'Z_~{ōڞ={ 3 f nwThyҹ=ӻ#2#y>wlR=6{l7r$ޯoɏs^߲В͹:74}%?@?;?f{? ڿWGߋ/G[;,?ƻ7/}o̟|~u|Ꝓ?OaBU1lϳ\cAy[V3$'ВÝn4(tx!ckRj#clD-cbZ?KF>+)?FOʖqr[ 2\랼@/Zq@4)m949SüB) LZKD&#cB0HM`?\CG=a{<]mG–B r@•wU\iy 40ם2ZYKLmGx F1r+};ّlZ j27tłWL̗FOHOKd(TjSROHp[rW(vpt{C(վH|HEeM׺~8k[6hYJN @}=)H;Jhs QW )G|bzN*S]n%X=^4 ҉X$~Bg}a{9Z#Fjd;X?" )^|ME%>xKy}SWy ʚכ)tUGF) {Uh WȵQpn;^U>ܜ_Ԅ ƴ̹!>^DEt $1ȅ>m"rPۀH5DCSar :{6nt^) DKGMʺ7_g̗čzPYr%8d #4nj;8F%IlΫz),m x68-iXlM#[A?%]܋},( q fڨG$1S u~e |5ֽgJ8Y^햋-n*xCuoo۰},xJPsne /J΋ˉi 2טbqE{%Ucm{HڹoRB~g`={ |{XFsѽ1?1sMˆu.SeNa|p8kn_8?~J|Ba_{qz n#Y~o{]{}4x[|x[wo-fYfȟy[`^5zdOvf>v 5pNfSr}uch_҇?@,dKEC tdHAVz"`PgjQu$ٟͅ/G4TwbwϹ[Qb<wz[/6l9T5&4Id0t>WT4DLJti1yrR-I^as vRƀ@DC"䱃BEV}D|i #99hnT a s"EBK wJ,r+GGֺ:dOranKq8ܕ #dX\)XnV!X剖sPh].?NAgɵ}ssn!w]V8tN S$Ozb%xf^wV@Ytz=hv<0C)qUTBnuE|V9Ɩ8_nИ@stU޸ueA^]ܒwFPgX "XCbds4XeOʫ=ag?3&b(\w\zPMVeP uJںǼfC^kh?CyTAbCTӰWXKܧGzj {E$a}^ɚ Y*T#]O$GR;FcSIn\ь[ /(6/Tq4}j>o<3*63Lr#)ECCؐ#ʱxd?q(vh?p'ޒwp,?@s^5s>4F*%Q+IqEF<d6l9viBrlTKP{_; "8u)vn^_}C'Hk{K=iHX;^skvٶRH,9QҬ Z ZwI ]},9䩌1>yN:"Ni4o;hx">t| в.+VkNsL:_ CMRP&[@؆H?vfx;.Œ[E B"׎:8d}6OD$ROR4K]{}4O[c|'ND _c!xȲ&knQHQ  qV}Ks,o(P~U@qD&G4gD3'N|oM'"Ow}┬/*A!7A9' ||KJqLXo{yJ{){'xb#c|]TxI1 -؉#aʎc ;F|PdSwW1`Kj77f]q={ 3?n[)ܿ:ßWy5z7oژ1"emc>nٺ\9d`uy -9c\&~E#ޣx[g^s{|4x[|x[wo-fYf|ŻVZY~g?ş38D^";bӿD ~6pP|JU>|axY&z * =Tո:Y0Ж\ #+E$IkquS0 nx#YhLi+KO -|}a>Qo"ڀwK%/=#qx :k/ K pPcТS^Pt)h|@=P`2S^m,)FPΕ(U,8g`˕Sd gJzmBBZw 4f.[嚙}ʈ{!' UOz%+g1>ө܆j~yQ],9#PD/yו:(׫m拧!Wʚʥ`[>G:[{=Lʣm_f6oFU87%]תE_qQEb %쇺|`B]DMc70hPu?XOC8ƷTXxnt5B#`>~ 6i?ZwSQ~##cYj\_X)ݯ~Zv^랁={ 3pY}2cR_c;}nMͲwf*< sxF =?BK2º^+[ocؼFX|Ү%?agYl5g[[kg.q_%dq3+koٟ[Vh*8SqavxO+Pm$E _Qj|>Gf]Չ\(-æ,4Q]cQlC %.Pj!>?gjbR#OgNXߥ jn)W}DX=v'n(rDcG"kY7!`Sqll!l{ &G răMU3,8͉uK_]}?&/k{UKreX<,6a&"'b:] !TcQ9Dk{/ [~t-,,tN9OӲoҪB$%MS߫睪 h6as!D5&L5Ĥ5U#[@K\|mqrZ-Y̞WAJ!u}-Nu ?nG<*d+AO/1(lK,?XuLqĦyHqX4;s,lȵlV쑛/|j^׈6,btU:SÓY 4C?y#” ۵W򙼵?(َެ^t/-6뛙y@!\sXhqшNY$gXO"Q+W. \cM$ayRh-u"2o}ZW>M1a*'yX@CYPJ;yc\t̺-"!h]}^a7U?ӓN||M2Υ0 As%%ݸT K`Lv7-BPl^0c(Ǵ^]Ζ&7[ l_ ;m]@&W_],-/, Mw>'}zO/?2UYw՛۲nnF 3g`o-BɍFjǩ5uw*Ǘ:\"S&G\|{+|BKo>ϙ3z|gG>s~m~xf,?ͼ-[[6fxag+O .F4U-Eb Wr`by8eKH Bn'mL89mP.gXvV0рQX[*Vc2 s[PΒ"\dQigaH8{t=u\n1O> ąfо8]8Env,΋{)0j:],HE2H"XLrO_?f8Qsx}Lwx©8N 6k)ёoZx'%z@;E"ΏǢqNy޽{炇:.@`~X6blv͜ :S! 'P<.Oe nƏq&UFf @{aL$D޴ kz=C?KGC: 0ֵSCV@r zVlZls25L)&y,[Rd`Ȼzؓ^ݾeA=#du[+c cH e$i'6I׬e䙖)D8^uY7۾O;?eSF-,S%"~ 9jLF%rU17~O<q}3xoP) *i^i)䆧|gGQ4z4kKZ%ž$v1O~M~V& g>%53إcsgd+yKU?՜QYD\U^m3cbUN6Oʎ_ uTcY}IJ<:x"Epi!籑UlZ1>(RdɥӠRl `Q7˽{/M:@xVa{Ůqyf{DB8ayxN@5ޏ&:j%\^P{A8e{׳Hr`O̕usױ\vYe}qE0TrY>G y,9GTXP\3 s˼N)zj(iE~i 3ajMAdK.? wbH\`шٞ1#݀=lbmkIх||{2?;1͑B[uo{ 3g`O+c~B;DZ5u-[-b۱<9o1kwjο,{/R[HSv#YnW(iz|g5Ɵ[1*5ss-:|Zyln1_/mٚ1NɟבvN}|Fuu+N<&Z9%!5u؈D'PY|#IJk$mDl9눉x=&V'E{pZjݲqϡ;c1}L߅Q}C@pÚ-ur8[@;R ( ˇܬ*=?KW_,8(ܗc1 E"8^SPNp<[}x11ynP/<ЇۖV_(5ih1?V-ihɅmOC_ O,gm{c=h9U.>+u`募T$ 9MkL᪁XB {o^nlpӰ Vk!\VȲ?Qm驵E3dǵ*Amђt |Sbt˄X(SE dZ!]_e Qԥz MhփbOC-!Y%`bNjDGc xY,ؑEONT/PЖFr}|d%chތѣ.Tﵕ|DR؁GrYWO Ķ'pK#?zj\'ɂ8baUM EB8\P5 v H=Q2읶1.M4 YY<뼠&{jfU/b TKaÙZ!ك:۟А ax~j$4:CȔ sZy%Axd}IOҼ0K~k0ϼOzm#"SAQrOa3g(}9!HK%sj/;c֫\%G·uhz9P`+O,gϖ1&r9>IYv5s[cBK9s(i95bkVNa Uz-}X%/jz/gOh|Wi#'L;2}FD{r/VNn'YwgCrN&{-Llɹ)5U7 Y_p\gO!(uehigqPL- _|rvŚ&\J͚0w b4/>Jc yzas+cCZ,Wћmsq yHy1ڇQ:U9;(iXv dQC:פ.WK0P:?1I3 *R^N2Js*.J@y὆! 4`q>YeI5dBqVf_]Ff;-4@Km.JF*)̩mWZκ bkz+tVTIA^//3BG1*Rk} 'ֹI^O<\cX7#)׽7vԸ (DH 4?fUy_sCzSپrD58>| FVɼǡ5kEy]ǩ*-wgC짘I 9e-&#29&"bp=柶YhvBbP=,7֫ :.Lb:poy)\s0)ؼ$3='2z1;I;i Mk$2!Q,<֧fvjpN;ֵd!d(0>¼IF>XS: c~/AZ' jYfNcxaźM n+9AFʈ^=DvZKaK[6!q_bS G(YCupi']YCFCmC V}Xa3uv1IJ`$^ ڥA_x |SDfHl!QnśȞߺ]2 gU;X O8|qrLh޲$QQiI=r66Y44E aSN!<4skN _j>LnN `ع/Y{ֿfJ&1:s}055f*[߃Ȉ:W!jd$Nx}T:>0.jGT[i{}吶ek 9X/-1sun|!z9 ^".2em8p"h[W<ُR69m?G0_ň?sژXkaO٣-'5fF`>Bԡ$2rEgƓ%˼pۀdG FV.%EΨE %8"ySi) .m9x4QA̛%X`W%ZTÓP萁%J)”wA PG9#sƋTYj >tFcXϺO̩%![n*)_?Kq aY_P Ɓ'ˎ<[h9l}$)iPر2}i:?5`P x>:6uޛ{xmYχr9S|׶{7jrIjҭ5^[ ;AEiG5l,I_.ͨ-h)Zv뺱w厼ԬJY繋$&ŨK g]95zh|ԕ[O^op`S5Gl6}T<}'eXMϺ O҄MkȢOˮu"D58z&6| AL/dBrwHtahܛSsd䶑X@nr<#bZ"p ߥs!G|HJ.yX}I1I+~J)v&м^HQ;{觢JPQò^O*\}+"3|ҨKnjM\99{ŸZX򺢯ALx -OD 'fj!Cc.fޚt |>}Jy8{&ށ2W~|K'MҼbkUNyOHֻ 7h9>>q˿c;koD9'q[۽Uy3g`={ [[Uw+3pϑ7Żlkeo?3x99g޼?y<[xFZQZ99sK\1vߋ1w~z?4?ZOLE(n|v9i>dZ!=eV?IJ5Ɩ n-35uq2K8u(BdCr@kM|BղsY. @&0L@:[KeeƍCj+}% BqszzVD\`P#zGž#lG40I(9LEc=&,^PbQ8t7سZ)0>PQⷿOy+chtd`f`"'# [߫^`U !סk$_cȅCި7૑aT:_-)g{%A;]B7ZbR |( ; K&$^d?kEY4y:DK -WjrIޑ./s|HNc>P3{K+pA^-d$ϗ$0k(9:0\P,3SHIԡhҲdCbn_heۇ\ff7ϘSu|pm|ņC:Niys\%s|Pw ђ|##Oa!] M1%5hR97 Q: л '|5s-t9o~V |R>X·Յ ? +NZ,XrX6l YR(J1 XT9Y!迾N$9ohj3c%~>ze@سg@JH3/֪'=Mc9`T,7H7&7Dy%ǖc |R}=EU[g'L2Q~:Xc$z 3#rjOcngS{"^t5xC>ֻ[u(;7%G=hTpk?j:w,\LKkU3yb1.0Wt%6*\G֦rl9 ZM`11aqH$B-iʔw9>vlϟDOo=o-^h[yNψw cCl sլKl]"s--s۲{-^?m떽)<7o͟Ogy<7ƧOѷ[q-?f,?c{2[^c{=F6ZhI|\/j5C@Ƣ3] >n2}`r`~Ч9]Qӛx@^\o l;+_XG8cӸ0/JiڜOmnl瞒ղP=ڋl,uiOrxf PmUxgKߤ\^trH Cq*Hu`cK~VTD+~i=.E(,y!sdEВv0Cط7E.y4T#0&'.1;I4KGo(@U-Xrr l*- h.8Ѭ7J$s#ާ0?7/r2"<]H)}du(QCU*msP0>{<,$&lthzpZt"LE7Eރ$,7~xYr!hG:nxVQ<:65ìZ&krYOr9^@E{ 7j=`ޒɷ\ï=c.w{ / ?tFMiqy\?K׺0jXіO{h ]֚F%V3E eepEAr̫A*=Z3V4s޳Wgk(r!Un'ǂ"EataH3ŝFouo1k)*l#@wlT0lW}~bz 2A<3fCZlvr(,(}>RLޏ|*LU%~Ze@D"̥-) >~gɫ2mO ?Cm -IMnEOyz-~zvdfZcH4d1a:~񈊏^D H"*bti²#K䬙')`H$q7C-9$L,Ħ~ )Eo:.#O_݊Yw]B <'ܿ'ˍx`w2"!&%09Ǘpy_8L0n|0<1$nO3c&X#)Uk>CW/y–>1#f|g"f! d۽ ߺem־x.!2 ;O{=IH^1Dd{GVgV}9/A<UtbO[AOCGY$/jD}b"8L:Bvu96wZZڃ3䜧ZI%Og`={ \*{A:6w㇡@dҹ8v/]{?uc9>6t 4{?#(_s^ߪвcSYnk3}e[km<׽`mal;?ʵ[\/cy?+ڵ^*qcvsG¸6[x7ۺFve|Lauެxm -9Dqル:1[( `m>DtE@+;ٖY1 ~7NuyQZ_êd,@$q#(gZ-&K\,``% x'i>PU`D)pqV4q&YF{J9rxC@OFpMJhICf-M:H-O~ Oڛ y0Hl>>֘Hdˡ*n>9I4pV"[֌EPy0f8N7!L_\ r5'l]9ŋ~"T8xu|ˋEZ6Wۧ<+w$j{KPA땔Udsk(+P2l)%beJ+\t28\ǯAP@TjG9V1lB0TaTIxdqwq%x'~k?r02V7F52X 58h/bhXOBo%M $_d_'O CνVX~ @x8Xx}}݅0wVk^çOCLP6ezRZO0pIqĤhs@@Hk]"^?_\}=.~#"`bJ Ygd_$dnrN!R*U D[ bf/DGߙUnyQ zbC}3)"'Eqy0Th'l+ "g[9Q3PCcB?Tc }$vD^ObB_HD|$׊Lx`7 =;"SącG:I347i"톉GZ:|ѡ>7: |: buZvRƤs!Q:ًSEv aEkF;kUEFps6ٚATk|_ ?h:n므2 9L,kE)Oa>CDk0(tMvk:bS mk5ZůĖn<- Pt C@M xdd{H{OjurV4 օ~mݢ%۶wyZ/QהD.k|!pr%E'ʋC/@r8@9waAMF/ȃ+kHThɘ`!cA/{>EE1R"V̀.RGi`u,iN?8W5!nYtIM -áh28|-9fź"n[\C(r Ǽv88+KY7`4{$$x,"Ү8^BEγ#%>p;oэ?SWz 6]Xj:/~gml=䛷 9"K۶u,Ű.] Y%Ɛm(` uOaL]S+B wEK !F?1O@r2:Grɞd#f7BOC_frʥ<}`POi}>j$+rC|T.Qb׻L `)uQ|7?{g]gNڀ%~ 4lB;BRh5zGv|ܛH(A#+ʼùCf%@e|3ȹfDr|U/~ 1yf^l_ 1Rʅev*/$OeOvJJl!+AcD(W.*o'Gڸ_+R;7;x]s">|G7\Va?Y0=:z% C3/.֋p t'HYMw}69ua|XX$'IO9)~2~PsѶkѴF}UŁO`8}Ӣ7k7GQ5W(d:{ 6fd'4W֛>H^c5KPM 6:yf-> #MiU1YNy$؞m 0"FbwU`;2 ђm<[ډ f#'@xXGE\rRy_R,ΫL@t7hLAO'34Y'e<V]U!;dzg˞Oz/}!WG;2pd#G~ l_QhZ5#;y̛C 965K_QxG^w|?Zh#ܧzB4o׽d={?*7c_IK6o5}o <ӽĿǯ%۾]d»W~=6Vu7_VUՏuϟW+ÒZ8LC? \=Fn Ѽ:}kymi<0,*,8rvoYM:V6&#Iy j:\VɷECX2\~KBka JCY ڲh˼OXUhcC|pZq12Rԍ8t^p,WP1P?c;OT-S= 0asݶ#R%yQ{sgBp6%l {޹Zֶp "FT ?3-ɡxxZ<*4",dߘlf^2t:V K!\#18j^OUh (OlSCŅ?\K2&̼s_lTBv.N$N| t#FlS~yc|О[w`@tQo2"BZNİ2&Dg>.~yhy? ϮdkFlM)DFƳ 镽] [WO..O/V K{-OZ"xՕlI^b=hq7A+6 +xROCSƷ+"b<3t<} ߴ,BN0k"\D]bī?~~$n8Sr^_Y 3t+7fon%YU'JhD9?vILSabQq@fWx|^:/RN10A.8fFhP5xw-vǓ^ F*!|V`ӟMI7OgNXoq; ^2_ p82pd#]\H -/}Vz$0Y\>_:?~~r}ntfg{fj|8W8WoK{/4K5={*)+}K{/4?g[n:cs[o9 m]ǗV[gƹ+ƞOͿN˯vz;wGv=՗uϗW-Фgn9RyLD}F>iQB-?$[71 Rr!*Loatm[DF@ F#/1O'm!Q εD `@ya :|9뫿8mHshCq;yT06𮷶af}D SckoJ|1Y}A&O>:O:2zgu|±>-(H4|M!m8)0+qX>Ǐb}ii>:$)`BN-iQ00mz _ԉT?_rطLcX"~`_. W1Kts/ O[=,Iz)[FSϝĽˣ:d*=ߵIWxX>y.\J*׺pJ#{bWcG -@@bv9%/XӐVqW,:.O.P"|96IOZd"M4sD5.V+#EL=wij{)%& Ku)os3єL5CW,DJJ(HOu%cABc}%xشf+Yc=d>L~oO#&>'~_X?5zvd#G |<Z\.`~H[s{n^Hح?drbG޿br/@9o=͗.a涗=uO^K+vͯ{dʻ%K[Zr{~y~~X[^K8oRyqc-Krw'&rM!CBǏ09ι2'|]=ѝl|w^N"@lK`>_c`#K_5.~JL"Τ΄jM}imhOLA!B'c&ɕA$Wܢ9o0$l| : KKj>·;ǹ!l[y>;$*"%9h7VOm)[|kB֔ht3+gOU{EuW$ Tp"hEJa.u|.=;J)*=!Ev YXdr|i%@*D=5 "g"}u="|FO˲%nkk։|gM<9\/&knoiӋZgEdK)L旿k~ҍ=/"qvkB}O?V~HP:2pd#G ̟W_o"3+?~IGQ_C\~kqo+ʿn_oG+:Ͻ[m7%%:^㭹XeۯUn2+,{w~+Rh᎛}r/+rCf™4ApM4΀q| ts Xc)aS#.#2ްN/X ^P45M92Ct14LE-Q;ǁG^Ip 7r>T3-ZJ1J7)9vEjOg^/wAI3GGڌg*.>W.P3>%rƗ=f2L;gYbp.n^Sh&Y)}`: -e*c6ѕr~Uߢm&WAڥQ'Ϻ&{:lj2Ygvoc\ZovBm2qiQ2dόgp߸.0R%p[aGaGb9E:z=W5gB']{ʳϽ^<=HO,<]S;> ))kCڷ).+*A!3Tht,#j䩰7+q& vA Z-)1ԽŐ`6e^!'uf'Jdt?dzeyhb7D4qUE@\ST t!Js~rz)Z08V*E yh?,!i'Ɣ ;?r]g=?O ~m+E,\'5,~IQѰdIߍxByab>HT ~JxOzQźQuhͫѓI8 7 օ1\$;~bElb.E|хp>My({K錇ΗC01BK'y9̳:&rn|9g$LօrBi9r΅.G!z0 >5O{?yS7q+Ơ Z•O{/DhdMk I< 3i_-W^)$c(0i+,1}6ܿ4Lď͟CKA#W Иx-dovּijxJbVگ b٣]"-ՠƉ4;M(n ,xEPDb/GBKM\ݲտ,ssh_Ou ^|mw?'G[mm~{ܸ\Y3oUkzTϞ[+:Ͻ[m7%%:^AoUv\_/W~\u{Bˏ˛2Ԏ WW>6JŨc1u|mNN_;~kn#љ飰e!IPPCekud*хoD#nü42cˇt5Ӊ瀼pEڦe8E~I7 M*[)`ht,c'AEFn\O~!閠bP܄?'̣yٚ$CN\"r=޸K9EkqNs:vDrmC'%̜J 23@h$c./~F! YQ^X836M58jceJA/}Q~Ø$ kkظ)s"F6Ac -Xc"ʆ-%+]p"GO?#ac-h~'q@Jqu{ih`-ƀ9@{ ORyqN hS0Vg1)fRLKa Wnyސ|B f^9RwlCa\bST xAR-pED8T, |H姟Q_tYO͕H, OPVYsLYYI/b6e=d f Tm5M[ d^;5Md#سݫ<|ScaɁrc1Hc/|&vDBhSjLM7t/E.sK*W~LKpze.}.ɿ nLI&~e~ƴ+y yIk+/y%~a,K.{<_IZDs(b᲋@fmn*0⍤y##Z:AqQJAiȞ|!&$ @u^fڤ k_QZZ$l\Ic"L9=>JNA[Wi12̕W=ߋlecmJK e٬!Nj?hp k~{kIW+EG;2pd#G@>Gݡ~녖ykq~:z|9{1]{gڏ^h7{Tko_+KǍ;k`-+ٓ[f{/3}Zܭ=淝7:nk4ՇV~}-nۣk6͘sx.ٺOc\7%%:zxhmc_3m__¿~ U -}hqkN}sBDtuΑ,WS–kg05J79E=YSdSS',7tQGy{}e@^Zb!\\uЉ^9ʵ͵-R )J^ "ΥؠmY|gEzYn dE⧝pdzyf駟jxA / a -7us9ƪ8`9'\TO *4RL}}#G$YDnn$ Hy 2 7*Hqeol({Qw4?k_:n/e̬5= qpp_e-qaf& cPS)AoV؃-B"=]B1J/m\Ӿ:o_;5k{ sֻX"oZPP7>{Pt[-p 4Cj.Ӏ~P)X$0#qIru*$xLGkJibBs'Bj41|;>J?@l|~O&}U̎OݴOO[) g\m;lJn<XrcK12"O#/.v8403&X˗V o V<5P紎 2MP^¬xօ:㻠Ѻd?.Lނź)^D[;*`I/׬!Y* tx$N u l3LVڈ5;,)&ϚQ?)b'@IDATD'Ax*qq|`/Y@OywźZɯoa~Qp=.I{+zKtilbQdE>ԅ"aSaEgxu |ʞӛ?xe%82pd#7fg߼fe}9Y:8l9~י9ϗ7fOf~ {X{k_g%|y޺X+:?yʞÛ]q\k_W>IZ˯KtVhjcu{s&.rr}c _g(ne_x!5,ۉ.\9nۧTٷCZHwh#!cFːēo8|s"2~#am&dr=eGr@݇\Z32t+Gn×- ɂJ0h7GNjЇzF;`84QX݈-`{⬅~ OJ: 󄼘EgeMHl?)6"D ȩܒ1ęF)X dy0lW؅"b9 IFg;.o=_H\/hGZb5Q%bo|@n%Y-:C(+-^m1ڳQ폓&cPJ<#\w!Qj=b)$C0QD<{xPu5LGFPfV{b5Nq&׬Wi6)vˆzu^煨Xh}Пs10? <PQE#Cj ,{c bd.¤ HO -D2Wʡ (AȈ,'|$Gy"/^u>ݣ_ O"&?w'T#VwӘ 5#BLa/c֯tZ]lSJK=r8Wz8OK/d+jJn0`AV 5f ĀT3~< 4ٙ(Tk(q9_UtX%p?R.o~^cwP`[""d!<'B"-ሏk6O,# LLWIW=S'4F(H2W|'3%>.C3%#㰅({⡰ 1->h0 OJ|Þi~ E׆1y!kØ}9$v>x.탼s׸ { K+(.]D+#/@>߅s"jkD҉}tA|fb ˲|H1W~[q^Z x9 +?!F'x65?xBɽDd97!gݚ/z۔?x;?a Lgd! - 82V|k]8"}D曹_teWűIrX‘` qĞ'KBjlAg78o͓^C1'V >7W'#^j9T@vl,)7X/RC#G .3<xBK9|Ua~wsZ>N}H7xi9k9 -;5osοm_¿Di\ӿk/(}{ڻW~^{ʿ?[5kxﶷ]k?Gk=xl\5zηKؙu9-<|_W5_2_C0[[ _D9a|e`;΢胝3@gH/g&f=ct (+GlUC-6rQda8 vF>:H \~r%ŻmE \jX:s!<#A}0Vh}Xml0hO-#o/Fl)=42^'|#>[yh>뤨cK}.ÍԱr\ ~5A;rLj)S_~冱(!_ ? ¸Õʑ}yۿBw䀡l> !sm-t2dž[tô-9c6\ijΓnW4;VN3 hr\[s[˚^>dOas.eQN >/:5qO @S*BNNG&KBRԔ3r`#ˎHXرA:m/s" cV)\WCyUJ$ shRRyZJ/_}/(诒n^_,Y B<昹zOU^t -IsT93 d!9tS(\K_TyXB/ejlʉ?,k]v_3soW=^`ۄ o(Q#-QoQ:G(#й \ьΖA\nB;(ԸQEG̅E(9˦ME{ Qߺ_\Vת{Dz羠3 )RvQ3Ea492I :$0|4t?K3ώQR 6cbCc($o+o'!| OR𚱞^[^+H{|c1\(ECo)p! g԰:ԑK\crŏI|fpO3Ϲ\&:4%/82%e=%].hػ\h=ܤX_ J7ZT^*nu ̶bU>OT1Q{YS( Y2>:pqn x{scZ-dV.(0AF b;(*5Sl}rKXq\1d |ŃJ}"uah6.m5?[ʎ+F`-p' {Px v.'eﳢy?|']ɓ󭣵OcÒLJю 82pd;2Gڭ[~||aKpaȴs9^Ym iԾz,̃S?rc2L}rܘV Pf 8IFG{ iQS٦ƈMF92Gk2PbPQC'Inp`.:ǏDG;/Ho-29La Rl!sNQ:/@])!t7J`k2vW?,@tE؉ZImB\'J[FKX>E _5ǹ)1j&3]w\lE#g-kt庨wЛ%P| .j3\<w[WdW^tzmLÈPL'>r-WzQ`S,cOz  qA2l`9շ^A$ђ:D<*ܸoѥi z[wrLvP4h!NH䉵OxAc~u/kǶ9!L㢏 |?! Ҹ@|IÓmd00k_4٦^" 7@O$~/BŁ$]HP3(SW  e Z5l/4irvů泪K@- ;!5#*0,k.z[qp}@[/- = H)DCqbwi}&/#:>-MG#kCIxFuc# _ѫ٩罯>s 9GkHo?W#vOcn|aD}kȓ9^ 82pd;2 wȯ{U ܛk~/Ō(֊o3y&k]޶2p)\1_z?]_R={/lc]yI[35x3ƹUnwO+LfoVk|dW~|E~GwϲٗVqUoZrƁʈ™Z:UlC!?/ƀ8BuL3Kab;f\ рePQEc%mrp,yJZEM.ۨ2Ʒ<_{,2c5 6/nV t^XQZ\$=q78X|/yxi\9t(3DKq|jjBDG OE#K|sV $&!j>aK }iٞ ae#/x-XWu>֡st7<5Vb=;P|1>YﶝDSr|MK⳶WvD!Fޅ)Y26NA7`Ȝi{\E4ǥx:gМ#؊9,Vq+MEgXkhptIOB͈^{ ,nbbA1;> B(pSFNFbgxb:f~ѶSCBmmj] \_6TbV7f˜Qz4w~uM0B|&nw"QC"e@1"#Oym;c}ej И{c2^ʛ;u$U=Q(@*>2\|&o$`F-H>P,ŔOS'/DlC]^=dw$v^VU!7h=,ݛcIkc_t O%yh(TKAPE| qgډe iXNԬ/AtYԕ)Rue@ǯu?a}?.̃ɦa lqbqIt-$64UtQ0VHh6"2p4+<Njn`j~ ==>J9bEgdM@%^ ERAv$*|G,1S,0)̥NF_hʿ*طzGHbG|G 쀩?O][oy "I0vgrB=KɓUDAB 8dX7/K֨6`CHq]傧+2; Lq4y@.1k,qtȬ vIz4Dvr {YH?"?yy#g$GIt) s\IUxyO.޾rd'k/ E5OYs4X?=T:14r5Oͺ/}I_}82pd#c垟+<>S6ߊ{ӌǟٙ;Gqw֗/xuų9=Ξ,K2{U~}}ʯͿz{9누#9Rb1Li\oo=%yDm(CC')icXzy36z N|hy(Yдt<ͳ5P㵼DǾ!,Q2Y J7K\l^,ǜFi>VvHm}0i~z~#&k["ILAZema; BdjN0q/,ⷮ|%λQF0yypM`tRȼ)8?}P0Y}l.քxD"v*y9RmNW_#'BZw 1O:JPvi!T0۾ }e-[1m7a}^y<%]Qtˑ 0a9O7_c[3T=e{5ar*ODd R%[11r3_Qғ IYN r}/Z&Έ8+7[]ܠЫ]X )x˓4ҥ`(-3ٶ[2!{7|OEEXAon, -o{7;{;- {IXĩn`WK7S:?ۤ' L@ShО*:)yǥ͛CZ97`yhء4@s@fG3~ג -9uO>h(^o[B}+.>ĤɅoԼTD;(~`k[W\ض?sc1*S,Ð+#:{I?_9t35F?vӶ'AK(.XDN L9|ל4i&"B>¡ i^zID((6%)y>Ϛ#c+s}! wD 鳆>֛_LWW ,;o$"t@-Ǣc3B^ܓ1d2m]dy?Grue}pas? p=ʁM78T tL$8Ӈ\~-%!(rv(و"E @#7t$S dctBfF)72(%T88C>xRC<K Y, Hcyn>-"+vZΒQɭ(ө٬rЍ<],ȦI*EU}FlّK1=I UT781Vc/>չ1>E͎m̡>Dx^,5M/"4(HB Js:C1i.| @F_D7~E#ёO>k/xzsmE'1c#FA>Tw 2Ľ֎Wd7wOerTyVb :4MrٟFp%! Nn}7&^-y2 ;,YcOZ e:}`" 1vP7#- 5⤁&6{I[eӔ #43"?ySMNh< )ya}c6˂BFX.3Cj~B<fuT$cYf.`ڼ^ [*}(&%>r%ǙZ}~dt4ETRDEQ  )L 3|SA1z{OoU?&CHQ2.w?t3) -%ނs*fʥkF4N.$興kA6yFOMo ;N?6|!:!k.ީ0c(?gA%ߍS }@EB^>iLP G]3AEdz|k&΋=I+ee`V#6Bȱc[2@KknAy=,搕OEQ?ޒlw7,O<`0e"%IjBAx/em")ܩ.AzS7OLnU+hE橲ĤACkؓO0*xI&Wy߳n F%>WET`ыxu/7<OZ])>&^Ϧ8b 6bC#G 2GQhH..{1'_wN.{%ٯ -TϹVڼ忴\^j%o{h_Gѽׯ{{{_lsg[]-^"[+xfm=Bk5-Nѧis?+>kWZhɿu-ci070h|9H}J^7ۛҘ4H%b?YD}(rp]hG䲓<#ү QyYsӼzتl3SW:[9\$lje;-$Fi|Mj̞ެ+$j1o㰶RSl #k^S(9z@]\W-mq: K  CfKmba~iȧSAa ?1j/4aagóuX(baI'H;fئ\elf6ŦōF!ium: XNidȩsiSF@SPD^wZ $$ SqCf7Vr- ^-|́?A5~ͯҠp!~㭱놠@"sU9 pϓL@rWaP+XGtr8\~\k!\p~H$zbn~vד$6BMn6Y:#I u$M'+ ?S'1?5O;O+}}W[TrÞcƑ Ĩ *̨ĕ2y*Y?Вa̹ 6cl"WC)|3z$n)WOU.(abcc ? 뾕+H-O#"\[!׮\,e y5iVZ"s?ӈ "9.ĝY!][D֐ހ.~kUW2BKRs][  "|o;Zb_ݯb(7w fY ~㩘դr:睫s*ʟ$#ُ7hL|.*}b%}qS Oy?VNT(A '%4d7ʼ>^luy*9Ď/Y\Q4G~]h~kI<0=S_MQ(¥UG4O{jo|j &tp4;XBAc5TKtGKh7zp-䑭}9{z5# iJ,{UFLibn/E$:4Ϻ^&,Kb/~:I,9 g{, >BJ|E며?I {"6)' aLY̕p'kY-$'âr M<^7؃("ON/q<^gKT/Rq2Am{_oƾ_Ƙ~Fo}#_ s)sX<:\i8ڑ#G 82pG*'Geџ;9ujmfc^ WyO&^͹ͪwMkZ׼\K*ʷ^_o7QYsN5ib_lts%KD璟{X{5KvV[qo[ύ_uk<콄[+湘Z^ޞ[䠝}ȩ?|+ܾ6E -qps,3Vsಶe.%͡o"ol36T69BNbmd~ 6W)%ǑnY%50]cH&׫m#V.U41 ҝбŦ G<OMZp@ﮆwx5<ӄ" ZL/6h⬡> h><9sj%qM#ILyM_.8赃it* U.*Er!~Z|i0tP@3]d =it_qsܨQr &r/W}Dbߣɧ fcn'`1K`! g=mN<Ⱥh.ZQz.,.ABE1%sEULJ\I%*kHaggac‡bt)H c&7)pM Q=ê4s -ȴO]"4)VAY@WQ}{aqݤqPT#GLsG kCj{G=ɱrh|`nJ3>h.$h]a}OYE"-9].x+~Y$M%?=Q:%tM~3gMh yjk#183=y.I_g5SXt dQ;) M>Y>1 kDٔ}W39/QS!suM͑bh)rmy]BӺ=eq1 ++D7,*Ԝgu@`L'(c=@yG hdCkp5VD㑫1$E6lWybBz"ޗD&{KCE> 𱟬?==z^bV>M>5A+1'@I??as~GkiXn;+^a|agel}!( .e25:7=9tF 4GeTn_eēo3JHMKi4t:`~& 5K/rϻr$$F6.*'V;yD(Jю 82pd;2ПP9= -H'Ks{ s 1Of/>rn&疼'"5ޱ/o#xoo_}^Wܓg/չW~y~˭k+nW%#+6W{ǭKܗ¹d7W312Mh0^\m=k^9t{nn>sk{ßeK>rr}]zVW?ov ,>+*Vw~w316>" mR*-oQnИ|s}d2X:#7j]쑑=p?\OKHv<8  LJ>S&z 9#` .bJVEFx&@q^">CgY\|ӯ= ,D$+}Niէ28Q4H9!bJ^Cw_2>.? {Vv2j{ằ9$->2a-L MDFU<x|34⮣`ډDl:Wc΢a :@,;mXb?Ua[=9hWydb3dX,$' yrm (4!_U`p'nltɗCVk0:ʟuD *px\˼#4 ^d:5VK 7/50"mVZiX*8H|FLͳ?XKdTb1kLxEBLC)Q)a-+XJK%i/}::sG u@;H^ت<- '94Ġ+l-+O ͮqv&PEՆXY{|a͑\m}]0(z})Y(6YI q8<.) h䊮K%g;5ۏ$Ak͟\ >Vi` J)cc!ߤP, ћ)careL:Ȍ+;DӅfJf?E) qULԡG i?͜j* iJ^?=~!OOT 4a#~eH'%?s|ʐLh?)q\L h?pMc]9 }ky@g9xkUb 7^Yp{V !N!ՎDJ'h1rl?{q\# C~m+o?65/%]ۤ b"Eo/9yjuxMXxKEay~߱~bk\< {BEE# ^ϊ[?SV3fN:{sL@o0ܽ|Rs:`sέ6B˽[suM^;ʷݫvFoKW5Ɨ|Dק/vWKm"3#Ӵv#^_S/=6NM5+}ܭח~Kܞ?WXj9g2ust+jpxTMg+J^c|IHgI3,y*S$| uC,";-qp"l$Xn*YH8죧em] 2Gq)ѴKU9-l8rH2\Y ivN'(u93"jAcYq嫘ч/iՔR4mrI:'<_|N vě?XHWuɑS+OutaEMd[24.<7ޘ)JT_Z/? erEovzH4>`ՌaMA,I3(*:pQ6?9RӹI$ %%oc-ij "$WDS1kt;l5DFq2mvދ{)i \EYl|N֮%vn:Loa0/.qΤq$&U":jaݒrQL%cX7Io_z"jS^0oPʛƲ`T%!B%x 3\1$w>iibOP|c{"G͢Q}ޫ1sc=d3I,?f@2jSP-,'//6[6 TZ ѱ:NPl>s.fABpC.&ҡc{>`\dcEwTdKnQqtM|O,n5邇 yAkwrj;|Le>y' _X#] 3}|5TjbWz~6j{,VsM +/xO`OPf`{~rvǚTIic,fiVuٔ3Y鱂"cAx~1y(]?@L_ w*#G 82pd s Qh$ZzY.\\}C1eR# _-[kZޚkrxV%_Ga]55#:}}D[[nO۟_x׸Zo^Ynx+ݪpn6Ʒ|5[ns\xm\s+q_g5f?Gky΅=V{W^вv8Oq`V^o]Eg9(;NrYeCJF@Mh 8UYĚM/hm8seS,Zv(G4za]`lx@IDATpdEƪv\VpvX s1,GO1)`+ aQdzʱJ a+L4!KEJFPg -CkAr|.4_q(Ifmذk{qy-_$!$Đ`~%:OAO-zY+=6퉃`JQ, %o. ?࣊*蓃k!gE)\.PX*tu}?Uokf̖ B-<R ')Zx$|1ʔ~ɿumhY$#kpiqG|YJƘO~szrٺtyp~@sD s]~RPº3"&4 u0n47m+9}V_o/ -1>^cv.tO4 ʙYLρK*k5J> Į)5 gn-]zKh>˱ׂ{m$)6(0{eQү1bNgjcD夓9ړbKeJp.++ǥ_GEVh+زzo@I;q/2<ͽ&Fq-]ăve!x _eOyκΕpN랹>ïFŚO_̻a1A7,B1 WmCb~DvQo8\7F8ԫ{j"9m?죀Ь̛$Yv㞋7u1M/9 VZhĪԏ 1jXUZ5jS^2G+UžFJ?N\+9鹰wRT'L*|%VlQ[:){DZS.1#'6v4-i?hD 'e/N 5$gotܸMqa,`=@?Rp=D<1_(dx3]DKmuiQbҏ= !AOx:.[gx2D.1Ɏ=RZ#e B5-;.Y(yYRT1/rH@y0ŎXBD>s _[bK+W \f?Jg;xin.0GBسK({Ĝ1Rrօ^w_gkxs_mWw_ɯU}cYKxY1Vjgc *p߂qܑkknڣ=cHl~jg~3up|yʿHmЕS<샥[ ~9%1kI9<6lWӺԍV7681WK'@Ķe*q kvp 8i+bBiTKUtj򧘃BGm<"_u /Hh}Ќ| -Rc;^S>--*|la:Wv/ "oSE\#uڇ9͜uV4H#0#WF 6|=A9(#Z16EIM+otXݔTG: W<)ؽ֘oĚ5z%"`:ׅO9wpS֏G|b#Gy傧'" y xO߱REk9w+~wmSFn1$cugUb.4\{T׍ăp6t>2[۱T|$ܿyW_PEY|X2rXOuWb}ItHK ζ0Ӆu&L/Љ= T!xJ}0x+ C [q4_3MϾrףJBF#Gd<9E͖j9M yچ"(Sz"GmtEYšiɅ{֖۶)} >E 8"Yy5Y{Wb~a%$h:K'q!A IyЕ{J]~o]͇\]YwAF''WÞעy(Z7g{yʻ/~|p,#0@EAH@qB[9z8( !1= mֹ.Drkǘ^Al 2mCT)bp?b? I81i iv}s k 5dP[qc0 [䠣gTEtc `m,G,S_1BESr;80Qa/ȗFB!w4>傈H#|g3=]Y?뾥W̕a4p>}}!3sHx^IA60\T/sDiy3;G >yɱxzʡZ{?+/fMHR2pe+W~+/uPhy3̣xin.5?o˷B2ν{rY/1W#+9׮û猿:xg}tюW:F{+3V:^3{_;^?;o~wٸoYMz79˜G8GW}HgqgAmƶJ:k/MY,{L`xg@%m`ccCܜCFY#(|H oG*&$|8j7A*%<@}` MQBQ߄ߖbYPY.$~g(?N _a8Vpv`BZ)̦<'R~?叹&M]#aL+5 Jk`N)s^#<b $,${dkrkFyeXt#:hլg:cY5Ob#IJbI:rT@ݼ4:~?)@625-ܢu [}&qT?!M+e_g^.JZUT8v\'HL#.o]='ϽM.ȏd? C7!FM9|bդV2Ga/)(k"}pXPj|؇/Sz ]i=!Fh9F,Zl*,(6cG;XebG^#\芶;tU(]xĚȠ+ly\j$x`%"˜?qc7c|:omW{{~,י?gʜ{-333~yhuOovUusz]+#3u:^mx-ϴ^ѝٓq -+bT ‹ak?p>Y{ݚc0x !Xvk݈;En~khg4vcĸ\{ȹpPޘ~<%'oRCu `a:7 Sb+9BݼKDXxs)_zv[˲uب} $fsU.1rƇᰅt԰(QYy7piw D3+Uвʀ/iGo 6zgPg^JAH_ -t`͉Qڴpwd'+)-d*y+YUh=:Pݲ#4lF$$T,gš~C\\#5)#+Tx}/}xM`y?(sYiF %˲3(Vɹa~}:?tP2b[4>qvq:=qm -Eː_)b.BޏJ{X|9W3I RL}~ž"ė1\%;.cBWrI^O`L<МG'z:h%K#* PTzF7USr ʢ v P˽}|Mu+]Kq'>gVrйc٬ Zu|Er|^18z! %k 6G)9 TzrU17^\d'} fi{}mdLjז Qܩ`+y!f~L&wƁt 6r8:OSu*s4WP'yZI6-Γ^EE!w<tPx^Xf^GGpˊ点g.yڅ%9 W~)Pdퟋq f?KMOS.R3BmD, -/: ]k? rWd˼`w@|,xYI'O4WA3׿bK_x)we+W 2״QYϏW7G{k7w2pk~NS \vswo:4Wkkyw$;#^BnkJo#w|~ڏu{r^gWɟg5֙w?94};YvpZn_-WGfGvǟis}~VhW9??puO 7``2G7f7 ' Gﱥ'lND0`*r# 4 R)r/"ضDlypCC>, h(h8x'"Q(,4yV4ݘW7%Ӛ5KУ+谱>ے߾BgLu>r>pm Ƶ98Lt9Ƥg37H=OX_N&^3 L$%#.T'Y|@g߉Vu I4)<'z ޾?wϞJOkl9j5v{ lO/3"Ak Ng)A23|/3u.>R Wa[+,HPƞc>U_]b'0TAKqD<%?ƓВ>,7I?0>p q "ԼY`U}c_[7:xGe"jε<2 avklmoVʠ{xSk;}Z9/Z/ )!clSNSSBvТ(Mz_FC+=EH|iA2>=2GWs 'w?twl'ዌ0vyj\3gܣm9 'bZWs8]B4WwhTZn~_}7ƞ#,.Rg_X)-cɟO3ܙ=Onh}b2E^A :YΑ4fyja< :K۸L|5(k+O27S/֑{fΝX3 OjUaM Ջ R?&/q\st!>diftS+-E\iD# q'a+sk=hd`Y\x:>Ɣϟ>]G% tLpk = t$e+avגˋHy>aUɺȯEՔIZWzqaF?~0lj2o"{;w,`}؟sb"|#U}(T?H _5aB¦yCهjRȚ!W!{'[^< zk3]_\+W \x"g'Ԇ.aA:{\i7px Ѽ齑{Le˗Bh-!;8[q~oUhٹG3p}=[;kyތO,xO o_Ǐ<{?cwh[__bgy$U8W#[GU6~kgzu9[g{c:xg2kH+o% d;W;/??=;d8 ɠ<9 q$(V.}XAO4$/:AwkKIk,#>cΛ|&tcg_Zn@6+wSEi24O7Il{}IhDQ%fp`;KNG~8 (kir o{\d0L7)Nk>gR$%!r('k(~SkO(3}&fsƇхO;4@<өT.7O9qUcM9 !OG <Æ`AF(^_xD؅}v}*~z_sq /35~:ZpxGop81--9U}FL)h޻*ֈZZJʉIMy¼faTew (]H;*7m])I~aR7`c{_ ȣEXz} ;DQ .cLxF9$s)E"(%h  Էt^(! I[逧*yUs6D-9 :<Ր!7 ~dhV*YvG*eܗSR D⒤+&foI}W܁}0_qKyz/MOX*ZtY 5C/#gvebU5VW`5 GTr'oI7^E4掕}3@w2/HBvOt5qFz.jֈ9xcicJ|\OFeaE-om a%aǛr*W@3sHQ{尴Ida{ rk^a}ŀ8%!rD?Dβ$lĆ~wEC28}ڑ>{ 3'+>>$L"<YkR> e49Ɇ&}jn=aMs!L$3WGb|sf$VZM(*m7M\)ظ#[I= ?)?3"|ϩ#59{߬9w~) DBpaC.OY†dqƠU * "lRw;'@Q@n_I"$:7 -+W \x8ׂ߲ҟE6yQ^5n]ok> ?5OKGa={z3/_^k9{r3mOn6뽵dv^ΌH.g=3ϳjog3vW6VG_u :uD__:n?[=ܣy꼬W8guܸG3{+y?ko<3dv$gW^ߢ̣gkq4TJ,|j'=G5$77f'+ 3v=O>4d~Y)> Z|BljѶ@Gr+aP, HZR](|ezr W'p]s: 8"U`[HY Gaٍ_@ >~TN9/W,Zk!p q ُɧ#~>hص}DX|h0.8E6:m8?9lUCb5mgȗ QαՎoi")k<4[zfdYSq3/xX+qaz@i<IP "k,֓'Q.U$SfMYi?OR'JZD˅>n %Yieb-s'jE<:Œ}%Vm )b5^ mlHqa#Y%| 3, O4G6fJ:@/^Px5&yj1 ڱr0T̝g!Y\$_/2yǏd2QmK , ?5CYW׾E#/hʍZ% qm7+^?<'>D?aPG`!KQ3p* >k&y?ɞ%3C@1BtJ#(Ao~sZ]2pe+gGiuzP{@Lp.gDk=k2Y.Lo1љ#rCZq/t0uzɾ6x Ιv?ʯώW{=߳bޞ=ڌuO#G߳}/{rF{ xFwk~ZYz?Wܣ񙽕<_e9,3|q՟g9s -q-qо_#aO7ԦZD[l˷ai&:!؍Cʇ9 h&Cpk>_?l҉ǛZ2o-Ti6n+I9'/ Zh\o &\,G#j 0ӣR$́Y Tr0ʩa|_h օ`aȏU$ȴ6c˞+4W%3s()|=;]7)a1!,{{օ" Hg]g:rLDm9qS dnÏ)-QɋT&%6C%Qn7an-G(z~\qZ2+)J/Xqzց5K~"g)BL /9ﹰ[m7hͱ=Ha zx0^ji"k#q7a@"-䂧UxӜ4D=8sǝik."FAz9 +n-]]؛۾APMf\{FԷ/KQq -CTʄ2|a7~0MyyiT0z}},0}e!XD\nX*W lzmL_29A6o߾ yi/KVP+7qO^o#S{xFtOz~PvxoImҽkE۱K#jW;*`x^ y2E-W$2d;eʍE+˧Y1-M;5VxHjgB3SEC7x+JR?*"JFMx~ϱ$EEߊIvb4 -O$f3Tvk*(,8^+.!@07^1l+~fa]Vy+փ~g;1'gG Tʜfh"4b/7tIs,|wir?K*vѷRG$ѶuDq"x]}!k<5x4f}V5VWfJrzȷRSLr VIhѥ!dIzOH`1ك*XQW}g3jdX!7]^ %\F 4DnNڑ#w~Ec|c]$Kbi-ܝ HBLr\l':|V{w?Uk|穕Q [s|˟μVg3/YU={ku~,3xu{TV՟zoqo=7γo[ 3jϬۣ:k?h<ӟ{Wu۴M?>*gpF˙fG/䰆Vg4q/Uf߂k*T".hfXnЋm{/5C}=ʓ9t:4/r;cƂQdv[":/n+oT Jsr+x_l۱&9L-Cxl~9S|hD~jĪ?[Nsb^:ϕQ/:YrUGanbS:א+UdێJ*Y5/NEr.s] F'>Bsb(yd~5'aF{*TcX<|TBkJONv/4XfDǶ4+s%Ce]"!x/hrW6A11D>9QIsM|[PRg7lbmZr/Scqqʨ rp_.ym"ȹkF8=.,G9ydx.f!𷵆܆T՜J eݰs^г4Y&no;Uzڿ;ܯf0W`GWFA2L/(xa,#(+Rl/7tnc&(UĤ yaQJ1S4.Xd 8XuTÞ{UC5a춠if'cݞ1$&"lo:G$  O]2Ob,ocT_LQMJ~yQPc͡u>jۈWYQ0"#}NmF$ 2~hFCmW \5Lo^L|uWkGPuJ|xgZ¸0,D)Cc=!z`2V*wP$N̬_!źN*a'=1%~AG^w|&d>4P{u}N ı>13脇3:˟%%KWq3 ~= 臡+_A|޹k<URr*}5f^%Y &8nXD_`_ 16iJke'^q?m r)YA<.HŠ!_~@t85o(~-X5Syֲ4 !XIc{vR߯ Su_/WX6Nq1{uq~֓*%L4V8Z[>H6P kb~^![<;N}"] #OfWtX?PuG+G/%X~ېI]2pe+ sc+>S<Ѽta,ߏ'p~ب~\kGrmey>fۓ{BKWgէU~s7N_d^CyYg}<_Y{{obu{z2Wߐn-Vg1*oKxVYgx?+̿Uh8}''Gc}=sD?s$iz+h(}CyʵiZf߲8Q#oDc%쵶! kܬ~;Tw)Οq@S:nό;OԈYJC,2:.ΆJ1I2m>Na5қp̉,qt6WL{ba7RP}AZ&9t[' ?9|t@CX-|Y&rM14*=1et V!:%@qЯ-b@IDATVD+hzgv(=܁ed.iHFK+W09'_Յ Z5?k׺s%յn6e$9mr Ρdтb)anzH(%FIP eχ z/,2bjXB%r@>gL_SH [)U"o`Lgn㓸qʞm$$'SȈ7)V.E%V[99#uʙ9=&SB޵!6iTYıu ;8 U"vxa_8Z -' yo1#wVr2ޱܸ׋$?Y.\x, l$2-! zG,Ŗq{?%5~ "@zХ%Y+"{ OCDns&XߚmJg,Ʀ >"'_>fH}WC{,٧'CWnuQp(x 2>W`Jbr0^E KaOQМ/r g^S;%$Bߙv1~8^ P|굂5Ε8.(FyRkX=wL&H9%cxmП b-lXu\k) vc0Zb5FwAM$#Y. ;D@h#@ӇE?.0ü&V3 id>zkmw߬0ve+W 2П+^uZ^#{s>o7/GyO[xagܼsy_ɾԇ_޽ιsrOg; -s_gx<3du,0pʜ2=+z<O=ln}l*,^_W?g:;9[q_G;svУuOuxGUG) 'A>ZX$㚒Z>;g" 3ۍNq=Ԋ3(gMp/]8\Bㆨ4 WzH12[2hu5r.m, CwasmK큨Hu (ʸk!qDC;Jj\%y㢡CC@kཊ% PsG>)08Cq),*Q:8Ԥ fࣛ p_t1a / =zȴx=̑آӱ%wV;$=GE(# gapiƼ%Y/C} mSvb:9lLì Թ?W.Q9O"N׾g&wc`I2OeoanMV;zřRVo )4uuG\cmϤ\~Ȅ %{I`q5Ҹeuƚ^i|8\Y|50qj.XaVҌ)J~/v!x Ze17jYY,]5oTIK b'Z&Ɨ ,OǼLYwƙq`XwkDoBp\qwHR|f;:kb+ω5Ls7$XkEY[1Ei5 }(+RwZ-"BKވbHs!~ uO2G~N"Oxgܰ=_+dKNc{.HyIL?2Tmȣ,z32*$J)zlU%9i#"&Ϩ!Y׻&ɠ_k-]V1Pr@ߚ-H$~KsjX(jY:th/uD<%{E߲4ck""LgY WfSa=$Q#iD:o v)D ~!ם|l2 ֑a^SLG~|`$ld2GNJÞ qrI|AE/oc5lz)s1r G=! S_'oE|+cA^9ks chi_xwOS|L<]săk^+:+F>\{v:uMɸ Pɽ eu$/|,Xyb7b=CƱψyspuոy*lA`&%Lbz%ɸڕ+W \2T瞧6=4Ǒ, \|:ٓi̻_guaoWozUhy|^=ʯ%`<׳8mVoi[bU$Ku=z_3W_g{r{4xz=hGvtΪ`?8 >H4ng;~D^[ 5o,]Q) ۍ7/SPi r=@st|^= ԍ;E71So&:Fn79@`r}V)P1F>H39yJ/6pc, p@>$\ R<{IH([A.p|%^eqtXct v󔳲ܐn7k<2I,։08D@%/Kq:픺4o:1:p.JVU#bJbS74W_:!n|IAW- 9D;O00}Ԙ"hbPUH,( Gss&'zF9)nA1G-$NY`ے9~ N ¤@r担x:J c*^ @0SE6H}5pÜlE뽨.JN G>IY4~bR~I_~ {==^3>z<W˿\ [Xt>1ȃixx}ɡy-q4"GQF?=qO* zvc11܆W蒜pӰ ;)2>s<@plbs뫄C%x/ܱA ʍO9)k;UR _J nX瞏Co%NBXoEGZC"۔:> },!+磊?cmh0TַfY]';\A]r}`HP68I*q䓋4 *'YrgTcL&b nhH`:_.t%2aAæly] K|EixO$z L@Rh^DP t/`H:}^r >pעkN?Y5K2bmj]ė7$rda1 ^cU^ᆈ nkL?WKeLRMyD4 jStwƊKS>1fcWт PrC7~}";uzƞvZmWn3#'T{u#yO+㗋; @Rgf|U*$wWW:˕+W \2`A=r/+igk~*3qw{^~Is9z{9[Ξ|]׷O%?d#12lV?~ Dwy ֑}xg_=L8oq%[ Ƴ<+?稿U?3ދmvHg}Ξ,44x{5R'(j9q㽗:qӝq|#:֙08ztʍ>ހڮ$~ϖYs WIvK"ʡZ(os\9f>( q`) (`VgrZqk=:pu8XmX %x@`:~1 Dӭ_*3/sQJ-a:QE ,CMy%gD T#+L_#]:XH>GV Ӆ Q|=!o 8DzDvC، u=+m06a x7+1U`aZM%/ЃECp{͂^B7/{nⰺ}AS2NGbAjn< -bF,~G 9qrO^eOwK׏=2(ވU &_<@af E*eͱB;{-̫ ` |!ך }T-:C4pr+EBo_@#| d@,bz $dqbwY^qT;] +:%__%{3Ek b~N4gWqQ⑃l.Bd"=2fу彡["|d, 2.ad;ycȰ)y_*wjΧxcFBnf9`Y{-X &e*vY//P;P֛&0$BG/@-̚`x~ ?ΎGZdr‘GoIiMc>``KJ3g2oHv96W]A!5?0FZ'{?grL"2'k~p${{V} zGѓ4nagN?DY7Z~-S=Sȑ6]8g!w獵D;%l55!`^>sGS:>g3S9`rL69C<5l(hxBAPm/5L((!Enˉ?ƧHU5o5W7^8:ˆPZ¤4T vHnxӾ97{:-@S|!2ZCx{qFʧk-Euqs+ҰW-] C>YP):9 }R:9~YvvFqa)/)DɽWqcS?%ׁYj<}Vq~5œBčZIYK,+|\˖m 1'/-{^>p u24/F6,/s=4vy}̠k -lXDߺӐf{qXyeKJĝI Yf|;훭E3>{t۞1NQsMXZ2)Z:cs$/cu'&5Hh.M9hr}H&Ί6EgJȓvN/b欠*% P)m;w=Ky&+}q/{ǯ'C;+j";*(54?햔:`Iw pfTO?z.QpMllϐPU2ɦq~M#\W \2pe-ri祗5?皧GsttTm86u=O=?BˣzDfo8WZ]W#UnY gs1g>ӊ̞#o}+[{<" 힍{gln3Y?Wjog=674|ؓ{5cYv?\e .4Xr_[:A7n 6!R,̯.Bi hph$ ~yb>_堊'܌}^kyl\0D(q , bU/c`NRH@xl^*4qڀjqP8bχ,!/Ȓ? -B‘pX}xaTТ %*b+ntz~^wF[G3/7 v[kȧ|u+@KOK1Zi`|pi"'2a~iU I<:%$-K)䩃7zhWwebӢ|h.ޥ)"PҘo0'^\(dO%0>}'1}ϑ]m{t.u@ɰXEK 9O GQX4# N?jMкŰ׮{;#tj*/+W \2pe瘁 RIg_g-zFAؔs0?5ޏZ ;Ϲ}Df뼿 G}a0#>>#s3XȮxv-kkڽ늽댿ʿd|=޳_i*?W{x?7>_,}Gx?_g칿?Z 8|~(q'8~:F9ݶ ]Xs#($a9 ΜdlJq^V̵u%q%5pWJZ7W},H$b+;D?m%~E!ۋ鏒{o0vs8KDߦ E+ BqWz8Nd 5G>l䄁I_χ GÌ[3vHv=' ,YyʷF Py E_HYq3 B_1M@(p9HZiwM2+Y1_k= ׈#[2Yw$n:%l[B~YG1Coswhԇݔ_$l8A >t]-brdf/$!L½f)SvE胗e<7v\Ld6/Uu ȪR뙢D ?ߔ%_I:# ]k j%8ϔXWs7{in)ψ_cQ9]d3sʜHN5Ե9L'(%4ZɎׅ8G0 X qYc;§B:&V on0Ϧjڧ\]RdJ!>Hh5BLG{Mb Nw|峗]΋`O`~^=S* 4{59lֽXW0 u8>|<6|WwX7)cvDcyQm08;ZǙ𬈬l8]~вr] \2pe2״5ٻteg 3pݛ׊O0gO!m?B{y#g9nۏ~:G~~ﳸ+ު_g9_Ǚ˪W3* 5?W{x?7>_,毸Gۻ?뷭b\s| -a ACҼ#@n\7: F///8>U:JQevx ^ugeM3 _y1"-9⼡j `o(HLp 'âIY/6X!B a0ܒ98a48;A?S2KxhsP -pQڦ[9QrD.6:KŹ.K Kמc5rnd08k1 |59=|][(<цP N@J#3cž` 8XP`$wY1V,kqf>}iR63o7%TJGfa$E&~Q=!^k|A*co6lf'K~B@?-~Uz"} XdQɏtA k:'ז FKq=ODu 9E(ղsi?O yė'_19{TIM10'9M.#ߣM9伓D׊jCmSw?`+wka{鐄G~̍J#Ĥხy /x|xyU\wk#ϗN #NJ|R~Tħ)Q DUdNc=x}"KD _ٟK~ &G/0RT wT%Os*y $g1yu$ GBϽl({3%qpK59TFuu`'ҧذZp4u x}uL gE}ԎE%W V2 ܋1Ȝ?zEϕ"xdl{R8yDB M@W KT 4"/)0)d$x(),ä { _4$4$"1l:ag1{[6Ň,f>QMxi܊4]eʧ!z)wF~0{ۊMy&s ^ݦuݬw8*MZ/-#}O=)(߫}2C%9X-kO+>^ y#1g5$6ZoVjlh9N1ŷ'7W+W2pe+Ww'&ҟ'>Ӫw-7o7>=u$lrGH#> fy"<_ ?."3?Hh4 up8 O. ށ'Vܜt9ǎ]!nչgʱ:'zD#m8w SLOJv<™jMldg!b9"_L!]aã!PXm Kvrz3yj~}Awl!y uRACk%G]\l c۫llwkg3KH3jV R$z (я$q= #hQuK?ӑCBws"4](6,KX_X U<]>ѾZcMDMVyN>J'B|3d# jLJ]" 1u;9eDPW/o󢡿߼iE%3fs .~!F1❘HCr>F;P[8w3h$C hOj8ilfOfj.RL#/,w@-u n@V9}B:^Ă\CiWױ k[1Aa^ET ţk\#C2^ԅ6j?`."81od\Vj6P Յ8.;x42)Z:m389IEo|ḇ?&{F|W ?>'mKۦaM?/ IyO16 eɲ|csn,@!oy@̥Cx/yH8"pD#s%Zo=Cc| հusY~w-b3ǑbG,hxn|vnk <*ջWou[|m}_~.]?7/N,t5};Ǿgڵg?dz,W ڷ^쵱l,s?׿?ˮ8{uy\%*3GՁɸɡPw!'_4H!s ;Dq ?Z rwPu byJ'́ٮd|&98vЯC:׉Vl`7shoj1^,ev3Bg\ۤ!X@7v8 lIX3:\ԂM~td-KUSNu'M}WL}o.-CayOEbzǗ:Eg to#S+K!?~K;KLFղzn$U: ;./`89OI:t6@Ȥ~75zbJ<~i*&%#O&4]$ą.  mF^Ѵ:^D:BW !xECb`G93u9`7 >Y$g "sf)[W| 0F hS{CբtT'<_[$i`b#~<hgOɛ߶_ٵnl'ZC; :q'sȗnb?rN24WoRK\ Uo,ɒ3~eoL׃u>Ee!(E竚8bGL_đ*$5-Ҭ~,Us\z.<<"pD#G~q;3H<<3b_1?\/V_fD,#H|.~{sh`h}O}jO/-߼k}ϽVU[mufk>k}|Y[goųYګ6Xзbe־[ζKs}xsf/QOso g._S(],Sw%٬=+CBAֈ#Y*0:ls}،x"pEC/`FRÆzJӲÛ@tD[\rgTv:]z.o g ;gݔjCkz~fO1" v{m]*+dpRwuXO#: :Ԝ@H,(Nhea̼!|g:OwopQluqRߞf#B;qBu'iBCv#ƧԆ>R֜d h@<} 5 cz{uO+4)o{| m QqŮxV31X]|>BFsY92`ۏ 0oŒ(jo{wH_@ĉ8hC&vy䲤~Tc(;H2D'i$ 3t]{:o).k @6p8;IcUF=h?88j&7u2wP=aْHta[ƠI޺d׉*pD= y#'iqɤq$9bO>άOaNkWk Y>F]!*c-x+iatOb$ޒV+1+5s*>uGq/&-Vb'|"TXFd/] NxŸ%jcO]H sqM|;ujty~J7cКuͯEͤDEP͘uʺ¶ ,'<_ .3?~R`歇_O_dPive_>*²zy;0swwB稾 .Ju&fSdEc>X7Ñh#G8"pDډ|9Gbc:"u sLAu8}ۯYnu5~[D{%mQs;=6W|}=`\yWk?Wh\86xC˟5Ӯ{o3g_g޽%]3Uڷ^寵/eV7^yo;'s6~9*[V̫|΋6/hɛ1O 9B;Yt3;ơ 3]8TCc =XՇ0EU4RL٪@i@̽jZS;RW: B:r,gۜ?%q6s.]d DyȲ0Cn ܛޘ+>Tg" l Ra}0dϙm.~~sYɗ-@j2襢Ϻ "Surբ9+5 chcFuJѥiK.ԁ&Cglrȩ\oL.kLAS]̡8r':R0\(IѡV$"wX@|*hh7gIZ!5ZB#m>dY-CO$q(DL9H&ed ԡuMRhO2x צzaPK 'e%L?"~Œfl)pNxI%:CAg$+@hي57?Kl4i$/)I2 D[BʞAM;:6#b1Dn+׼oߋW -@y޶,@<7Zrw< ޏt4~91&y3x[cP?Hgl3I'0K<uo1Fm-;OeӜJbX0w(fԑVYyJ/⩫rD&}($hI\z2GIDuq 'NhJmY;Xar&td?,-)l%vk"n~HV4'enÎK2h't g~'Js@J*ٗ,;QiFDa"&A\.ocdG[[v,Qkag*(0LT_kroVFZx)|oaӥFcGƝh$ʺdʑ=#S _clHiD *m𪮖~uMu4Aϟ s@IW[(ȴ.)'Qb>ic&*f ,.b(J# VNnpo;FzY}E'WN=˜:߇ja0~* ",<ȳ'|G>ԇ?3Ir6b.7L3]f$I"$-,`#s|ot/NLfSσC>w4$Iġ3Ǚ>}+1^W)᭽^fYp 8-rD#GGe}}c`G,?=Gczi>Y<脑 ԫ9B7]90Im`wW;h CR?Kp7gOorgu!ɴ\&N&pLoXJ#:xgu%',JL\upRKi[GhImTtr;{:PTG8@%"DW|.* gNH]LA-X(P1`+y"}1u| Ilނv&o:ej3}؊"XZ`|}șD|ꨫj2L,}8_LֽS|0@P:;ܺ8P1"w☓F GAMx@1߆:ZKz&QlM\&~fd& -b[ɚlߍ9~veE{C'g]W\˥"ƶZ:cOw<e&0$gd4UE9(6J ?מ=vCe]~C'7N&z87&.M_5_zk2W>xJ3EE@!^&$5/,Jf*plcd0$:N9z6?jtHq7 B8-}c$!qe"yl;~g=˘ҁ,IIŞ!:ݎ.OUbls?~p5FGO'( :4d+Ә`E+sϧA'fBnѝXW7za@'z*ojEt^*@9AFV/:!5uyA$9w{sA6=h>0X hl85cLI3!nU/c?[- ?)&EMkm^4澹Pl!650ߙҥ W-*# )U;{Go߼ ?!Z^?}󌹇z7y<5~8.U`EWǻCdnEw )pӓ$/Nؒ<&z/npEO(:o$J.wṷ#*pw{zT;"pD#G~y;3-}f3"psj #5$q&V[y$Zͼָ?;gɟ]¿ǻILu{w^qk{MWӿ/s %.l=*zߋg޵_Z{%zп}}]}+/h4pb`Dx}Duh\TSL3"0dEnp FjL\wO DR tD٥j`Mfr~;Gx_qSH6n8d۰$6tbv&8>x THqO~OHV \-+sN8ʑaP%~TmA,~B2!&=8Lę4} ]<6^[&R1AZ)lk'l5q=3/.,08#ZL*9܆RYF'Ikd$|yգ)|14O7K2*xjV`ǭpHvH̉;ӒcN~r2Aax))A@SM.8EoO-jU/?tUdO\ܲɆ;w..TZE 5D%Esq|~:=5 c'% 57M55q|XV dZdձ)c듪a1t_cJr`3aY~:qⓇJ`bF$$㑘s6Jnફ0DRSz2rw :I|zn9IGf5u3UK}\ac&y%1xld[ 埆O>DG @ ~YHdz=I80IT-_ |F+v[98SYJ3Ba(Y_ foq1FMJy6HieT2KJt5`%u0qH~Ky#')ᏌhyC(8KbT$\35د9AxE>|p\mҐV[2If1l]VYU4əg;c&{n s ZGVQp{X<"pD#G~{3__?d_)W sYO3fΒ{DYqǯ{O=˟-q?Ӊj25V'K=[i/[v^_﫝=_?36ywm?js۳ݙD^ҳϹ7s;wW+_kϲs}Dy뿦g_DKN)\(\o d~w Źvp ĉZr$IdN4,[`4ۂJg WK 2MQ|A5Dથt牮uB.r 5!8 e-ʈxҶTWT$D!"R鋦ȧ#Yj(V>ȁ'zIJM[Din׀$꧅D\Y7[~Wuy'h|,!%)&-2bS) N>딌BB(88,V+z,C߄1 &IBEWS0myV2ozӓ&|%kENbh)lIRcY bƝpƧh ZH5jä:w*?M/d,tfF{GO9%Y(i$A޹+cJ|@`c[%zx0ߡ}߄ÒN0V% 1|Y'< >228Cxү^0. ^<YK̽$|1F\d~}J^%ur u&0Xu%ibNGjb(`^d'N`/zAoF>ZƐ T[jA{1k)c lc=od֯֫dHbN;^bl9F~E¦woD)il(^P?Ptvc]ʄ'qcy"uH"*t'"'i'X "v+oyK?'E%3LA®gU=d2,vy2'!3W"+}@ќ"Z$ÎW )R,xƁA .Ldyl.֐>a!R=Oot.u#شz78cBրtNJj(Z"-߂1]BaM;'`+?-d}V]o&(au#׉떸3 PdŚ@!>,QgZKσ#G8"pD(#=&w|_{,n%un<YS܂[ޢsc|^o|h\#σָ7{/_cZ_=-3W 9ڬ3c[e~V[ݞρ^_}u+*wsc:ۚzu߹%/n[-U}gަ? BXP>`.&bXpCkEƷqéA?Dk0g1$Z y5BmiV\tM\P'b[TPVi`^ X\Ď5S8;ǠJ=_2GN=Gz~qh!{I~,*o3p .C)}ynbhmc[|v='6c!0cp;o@k7utx%跉vI֌DD9|o郻q/`SFb'Mʦ D&`-A]8oB|:u%>9=Vfb2)$L~PABoJ&x#{`}{LEMG$.l3л;Lwgr}FHJWo@g=(yb҃XV7'&i}׉,$wG֚I*zߙCm4 UXn{-D۟HJWt"b" ѐY (:'7~[DNآ^ ,.S8O&Fze))HxNlV߉Hz.K1ao{HA ±1H-AZI/ ~;͇z} \a++/m("Fg8\X\B<;ny\@ b|Ӵ9^1^y}%O4)ɞq&VYC7YĚ!lK$3>~PaذnL7,4~ۮ +~;"u!L_֗R J̈$b?'ZZx2o$ϔ3 U:Nk ?Ƈ=>8"pD_dˏ?-5;ٵ|=}uuMk̏2HD[y>V=ݲm۫{][ӆ`;GNgMtYUzEc# Tao$K G ";Gܔ&6C$pJ7pr@&#~(摍ɝ mLR;t⟘m;J!C1D:$&q$~{GRjLkzc"s[v9EҺǀ!NG6m3d3RE:Ƒ8΢8`J¼ӠcOE'ƚyN"(nwtz2dS( 4-:7:5_lF7 dW:2_&b]Fv'[7't(Flu"=NJ/MV"_iq6 ce+u w]o07Ũi<#V9U#ʲqNxO#: 1GT{߂l'nV2ZW|[)M¼R}+;NƉ8j{aQydTpᱰCiaւdp^6J=`П}GJt\`H Ar&qm뙢e[Y0>d2Y!c0[`c Uvb 36x& Z1l^2oo4*IY' 5-912FZ\ҏ]O╰׷zT*g{(``k'UҲ? ؊щ_i>H$DgeO4bs%)PW>J-}U|NćXXV]J͡)U=zn z.ÊeQ=<#k X{jzE/Nѐ2$SC!˵QJc?,6tq&%9Щyf}7KZ^8caBTś}ZKUޱ&|ĒKYH6`]vu_ZWc&W$f1G:HTrD#G=H\SqH\K~:clHG_!O|f[_%{,/1ñ {,̊oUϣ|yT*M{?+mm|]_~IV/q쮛yt&/?r`LTE8{8zr#BXr8?rpFỉ6$USG.9fRTie;%0޼hCs>%9bnr1\L6"bBRn$qbwSqFݴjS0XQw`X`QnAJp" ~S03:ͺuIV] HmRLfE0՟0|l>$jďbk*35(1'Zwb/LYZ)St۪921`#F%nlj0ĈXx2LCqAx|H矀M9#aJXDU6GZ%s| zX'Ə:AfPSX9v.a1)[)I8N+lV<5M쩑^ kAb{!BNω&>'SC$Y]B5J v }-Qhm/}G_ɨ?LHٵ-f>4{K kT][{ާ?z6ba!sE- OU$$8EsVBI98x'G1HRwĄ y8;)Xݫ~['Y7?-.J^x`;5{{f/ ~^'Cҝu%O$7i?;i ^ØV _hD(! =c1NoQsle#YB`q);j(-g)?QIrD[hCKџ@>o^3^O,hx:"}x"’HtbÞ8vFi@#'Sƅ8e_0cw 5$;:c}"̤~QMױq{s Uc 3P];rcnms c|Nc[(G0K#5)$kE(x2bM!|_^|'j^<(E 6bene5D8^|zQjAi[w$K1:TM03,HQW$>8܃=|J W6@aϺ%QJ)J3_10FyNLJՍL\ԯH_[|Y1]+fyd-&B~pok7\) C6uݾuoAs.\$ג茅. at?ıʜVoxWu<^Q8"pDVL9-G5Z=1Gyg=M;ckhOgϳc{3%zouyG1"w{m{mƶeʬ[z_o=ʯ~7zW|k{_gLs}廵}Mǵ[{1c^Ê Ѳ}vfAQA9yo'PnT#1- 3RsY8SZ_Std`3gU1E/ _kC(tu032@Oık; J ҕtj94Ą.Ow쇥UwFUDhw+\nP9,ə#~j*2*ZXl#F|R2$P:) ]_ubGOkG!>xN}V^uXmL'#\(&p gk+[HFd S?8m#>s CS|ndRv3jV:xϚljiĢJfN(͑i{M;`i|vG}8얬À.*rX&3U|5! |40e`X=Ɍ vPsRM&1ɔX-jOdX{`OJ=GaFUgV6И9~ ?*]D$m9*!>cU^#+I_Llee[x1c%۝#at _|D ;q̺~to2"zd _#sI?v'RT,o9oz{->0.1~Yےc %C7Q E RU/zq (&̦ `Ni H4 8;.҉t},sAT獤! b+a]ؒF@5= {֯짠)] !NeMSuw(7ĚTӉ c S,X@~9 +,s{1Q/k0o'9αyhdރ-7d.7L)կoi%cԠn4Y.~jeDžqb~>LCFp-R5O5X D.ٺ@+szt9[$KeYh ?H_3j] dgySuMgiT'gZnX]Cpۢf=4ϡ*9u$EByuxl<:|By:oсHpl ?ZUyGBtKW@ujt*C{zъԓ:l;x!YmCN{S~R zOID,`"ke~Ss#])F'xq,;8b|-lc qa17+DN)峉Jb+VG.f/t\T3K͹$AL @$ϱTU+9 ޓdgBHX4$;E $ $@"D]wA;]$4XP_U6tN6g ьN+.B{F+5;d_ء+[[U?7Շ7@c zh;'6#sLqhn9R֠/#2QKtlVAb=F,'?:3CDKG ttd׾&lQY3I1y8|O ?[2P <,'"~#$3ƥjaT}u«(N?Dyl{:#G8"pD(R]Yֱg_a`oܚF`:&smkl??^"ʹ`}\]]{ϞKx#l|{UϹxϴU^{{{ð׿gcڷZl}MZxέ}5szZik^{kߊ㒞U~mr{U%2H!̑, bI%>P9[7uhis3j5"B5 A\<'ik6:J<MU698/Nh.[e̶ɐ:4X"%e!2(@W2h(4*b_|-Hj4K<$ḳꟺfZjG0W[Wܡf5\P: dai'}$ G0ўrFl7M*;uE'M4•=-wR'1Cy5^ۃ&^ڝ"ӬKpI.ԅ ,?%ǔ0>QS m>s1cu6Ľ"6¦brŸklV& +#"8+#ѲѦxSs! R6/{! ;OsgN4@BB=C 򁦀չ1 kYh.5g.s١Su]b/tBB{О)j]4rɲӧV壧b`fh$1 Ag C!kG}W=Qؙg˗_7f|HCOV\xq#R-oC=+!H:s}][Wv)PT=z:a%&$"2w:Kj2N+PU[;AՓEK񹎔Ri"+@IDAT3NI돘RGFx <c2P5O࡞B WoC̄c-c2XyNZ so2"yN>w,6;'ߘ!`5,s"lc!flGzuGR#b_!SJ`nGʳEwNְU#gi<UsA2wb` DޚZf.hfgHxE/{yp-|J89ր`dž;k%AqKm6$-mc(lh^TDS+SIZx.ΜfZ%ذ?ȪE0 [=_ﳎ3'$d4E_7ӆuL*` (mL'/ݧ/e{a{$xz@y/=? - #W=ٟ`cEs汆O!>9/z6gpZ10Ϳԉ".(G8"pD=̼D~ve̮[JyrZ־|~-=- ΃GoogskW]GL`Y݊au\3:ł~k1]wk8{F%z˭~[==^_}Xy^ھis,s?SscW:DK1(ωM$Gx]GU;ݰfMx0f:bUGuP%  ^arg'-TeT =!:HkdPLYX9ģ.IrK4Gsq݇|>59F뫵V\6Nj[ hߨ&.\to\M'9lw^g׉i$&RZ|w<ˍ }ɊqiEYND3BTVk4ɠlA_:3VуX<Т{I3cmT"~ݱI *Oc0Y pG4sF&&Z۟Cw|p:mޔgS< )h'z &/N WZMmH}˪m"HG.II!)g̟w2|6PVe[=԰ Wz t(m5i\ACZE7z%(xBuJ!c62~ۭ&T|$/-$H€HD!?@[FWo/.kƞEFi$%v73뤰?tér o˘Sc @vlnG_'=I/ID*(>컎#V\oOXIRZn_R|Vq\B; UxX:Lub_C8&o3hZ4%&$lߋ$J'{0cæ!i1G7.0:',/qlSlaU&PRIM7wUd J0oJy[(NiV1*?bO{6[p'E@̚hO:ܫyVtUcC>=Pᱤ7[ͱ-{+g[p=*[m>÷Kz9~xxtRG->g3*u=fްPl, H4GprXmQ{ܑvt1FnjKu*Rm X 6,%M[SoY.k%jw +ĊC f]s27 [`jJFp4RGmBbncäH[O`ɽc &m[2M4PCXj A-(ؕ Pz&x\XBW&:Q9uxo>9HK'a:ZVM\SlX,7=ͬF!ict ];Сb; XȱP8pƤHJRO{vNӝ3$hRdoMc[>zdr@/emI"YϴgwZ~#Q̿N&djZc@Ζ>CLی($;vJzIfd t{t$cU'Ki M)^] llyd9Mw% m'ŸOx֒QU+cHޏ>}I_kRH"$׵mH:3:_Y7I-c/pI"⬻od|/9}\%(ID)H>Q~9d GqUs\r56UY% 8>`yAu 9 '0g $L*]< #Vglo#`.yLVDa@nX1\T[ IKЪZxNa }Xk EmhW@rq^ (y2(cAw*0f|\ d3Di4›Dat,ՌWѰmƼO_LDY6D0'kbVv{7awqY[cw=57XGEOadeٗ@ ZY`'-?-9D߿gn EL>JV[u%a&7X>i=uL|30M6)~_H)l$C?d˲{?:?h BA8y=r̛0?\2G8"pD/0ʃ wg{v_s1`vcגK[\/kI1lu4}ORxxo;{[{sk=͋3Vfydz=眞E׷msG6W^{ᚎUvm_9{bm=v}9^yق%Z7)9j}(:/'6[Oӑq`Ќtig@b$!4p07ЙG@:L6 W3wQE:wHcs9(FcAW94upvK$},˝:M4 PКB9qY+6Mݐ-ą6v6RlZr5j=FU;Bv;F`+LmI;r#YlLhd yeQMNxWjnds$ g5'b$N0b[p4#^M87tLYZIm;@~G+赿43xɢ^b;b9[O˼]%`אn#>d"Xݒx |  PwsB[1*huG\_ o<2Y{6O66mNˀ̂ʧ̭x;1rL܌MG}$fgTh<&Ɍ9lQf4I,LldKGGSgjr2Gx v B\Bo>y>ŀ1 Kt#LZw&`ɾI#˫3;ZŋoixZAVv8Zz ?5xxw T 7tO 2L_PG-Dɕ `>ɥ)?uKb9maJ k@c݉F 3_^1 @>@mϩ~J?\=p bŗqb_@q{~f[Koo$FwM=B~-E6\R+̬ 0g~'@Ȋ&T}x;8+|%#GmE 5s'ZGsk<Ƭ{Ők+l]8uZ\su1}Mayƾ}-[ȣlPtCe *29#f[*wK<`K8^[k,ZεWk/v{{{Zm_1]]w92_Y΍5W{KN94⼃">#%7qB)!J")0Z, TMa l-jے{RPdUN_r ~N$ t46 rL4&+1!~S '^*9+L:8ul[ '8t6"Gr"W@"D˫j AUZB*>(Vd v?0glu9J#LЄ59qBꞱ.s8wY\&ݶ+'37f:upfYHZ_)vx:(i3K2CW'y}bYc-]n2+V<ԓS׺~ IG.=36WQC޼2s69ʈ,9 n[{|ч[x:2N mhhDVk墢S2DOzI\qLߗZg~.kpi@EbI7P W,g_l+9Ӊh@YcNlVwYwdfu5ƅݰ鴑$QE 6`&y&k}[JKy%V",?Uӓ@FKS%J3O?6\=1{r4Ϙ$HG.]NL/ sx>0~T+c~&ay]m|*= C.RO]G!(c]#32}!þ/q #{y..Y}" s/z:V=R롟Ս@| )VȊ8"445V:uH8F"ڕu#RSTxk/uW)Uڜmyӊkm6#ʹ4D5kPYs’ε֎]||HbnWY#TKMxS(9 ߁W۳9+xe(磈]p$NY\UT $ѷ cS.y3c躅ێM<4!GlVd9CF5GkL?_!lKnGY R jz8's v0MτS^-]`/]/_}#G @ - -g󿧹Gnɂ1qN٣}ל%o4mZ8h=G8oYh׳qe mϗsz#kdF̱#2Zv~|if=c c}5tސg֟{8Yo?q/Zf<ٿĿmUؾ{mܚ{2ۚ1^%]lv fwvjJ!>achiC7z{f WFPHJ66#d!p?:g;-з0"Qv`P. T]N|DTc0eY@P ,lcfk4aV1/TJĆ節ڎf%gxMF,IS2*kΕ'l{g2~ds D)-( :/qFѼ+\H4 .rqCTn3aE0" J5>&x.ycتG h^)͑V)e9y`*ƹbF^&sب_VWlk>c~CQmKZQ8Gɡu,Fƺcw]?eOd. _=k[HD׮6dQ$"w+gƒgfq@[|.@G' 99CN;|!>5=86.sME7X> (<(t;r&]G2)ґDJ\ |傋!av8gF]ٍngE{WT^AS+o|dL'p!z__5=<,8 -OmS.pNkǸ.FyTDo9\r guZ{2*Q No{"yzU K1o9' WkYڸ9р"Z:ƵY|{d,j?\|;;.@_,uO=kq&wo~C#G 3xx W^{+\[-GlK㖘fg1>7?My׶qm|o)7c\%53gx{Y~%%lϣ6g<ܢŰU -]ZNlDfiA2N 84HRH;Gs] !4ڛm6߰W8,(G`ƯLpS$m }hώ_)0$o|^Tg-]oBr|d#ohi:9ޢΩ'!|-.\l?}BƛD͖c\uÝ"[н4/y&(\ iE5"7N$[ -ǵeLQOGMc\Ȣ E vub=" Z%Q@9y%^%)=_̣hlauodC+ o3/yN2º,a%xfS\&.k1yiɈ9t]aȞޮDqhNGZr.sh'a/%c̹dܷ+ٰQi2i!Xש_e\;pc B6Q*5(tѧ 7Sà (Y‰Y@x$#uLd %5@&ù)p |-j ?{0ΰ݅gM[seP52`SUB_^0-h\$S`#yZ ˽5_[].|>w΃sػ9Q$kƵ\QhG(\V!Og"GXƆDj^YC#.bhCP˛t^ !ðl̳.bCEzӚYj&V S# gX֜g !P_Zo`(juN>SHs~7m kÙrR /QI.SUB#>7G:e$!YX{Ix:(:"0\[;d԰b7'#O;k $䎟)]h)]~>Ȁ|>hs&*IGlj: %N $_'BG 많k1r "Ԣ?֐w#~Ob>ϨEOZfySԷCX1]{pMrz= iزV=4 Ukhu/r0^YỎvÂK-'yu`c lxM͵{-]h%A_"[BqLZq̧Cz,=GBO֔cPOH:4ξOOr"7wm*yi0ɳ$.}w#~st9>DOA: М E@87*]~a [>)ħ'\xNǀXɕqx38j_ _D?~:\):ڑ#G 82pCdch;|M! ͛_{Dt*]̃nIt~ˍ4dƆyCª-)jR4mC%gV"Y[yR߬`O6Iً!޻ِĠ iPUn~ю"MzlБ,BKvYϹGM5 B7bC[.=)_?HT@Lj~m6X%,XbĖ@9k̐ c>o&w`ǑY}tYsSȭ V6w͒>Xob/;/.a Y}wM4n"zWC  6kvy{wql gCGTHKC^K(,ݥUɉ7'] /Z\giaI I"h5,`9V8žzo5~"8A- j5_TlB 6e7P<p='cl`RkҡӇmG@ 9 GƲjuI t4q,0ZP|-e)}T wn{]t]_?bWڔ#q棐6X 'G#VR,uŴQx5Ǘ`rX-.[@1L#DG?*.0t^>$k@ז)}*RuEqLG>` dcac5G.o]Pֺֿl'~Ue1[#0>w p|K4bYJD|,?ힰ@T@CN )Yl`/QV}8UD~gDtp$8k? ?sڧ dVQy01;>MD̒m46[F %0cOdr=@$Pz=a\5[V!+țXvOi_ljMW&}]+%.:G"2}_%P}n**3Q86͠>ؖѠd8sR8^9di0ro!jWYD^ۭre7 }d -煐Jɐ+-$J4bs). Kcirc:L%^D=Cø+Y 0^\C8]yXm]u?oe=:Nl#\ ɦQ}+?Bk2_ GPP3O2u]s \9B%٥ hcH/ 䀷Һw[>(6*.O)kϚ<ėW9o y_k1:mX9%dWVrŧ Wt_Hք?[-CC[K.#Ƌ\ Ďj5o$" 7EJA )lNH|e~O.s*65 ց,`˸W3FK:W"lc8K X ,q7ĝoFV]!@ѧY-okۗ;#oyPzhPR ceAĀfDPR-lS]ێ|"b!j<% u;g f#_ojVu!6Z("eS5)Xp}T3QF^ޞ$B\@sEbvHΗ '"=#7I\h ɴ8otF,U\s[>-wxEE2a"qVЌ6\a 9G -BK A䛵oX-Dc_̒REgd8k3/59zOɉ׌l͓?.JQ>_fWL;iK#uC%YC5Q94!V,XN?Mú+Ls^ -y+ XXiokWTIĄMA-=:'?!,GC ]m֑(N ɐT&w2j(!/ d"gZJ3N *w2 1mlQiMQKI_Q7G_mWbC*n@|ajhiizuF'r\G>_oq,k cuֺhs\#dMzm#{tpNlPX+fzR ĶlJ& Ke"i3Sy?,6Wrg1CjS2=jI=U+_cp< rzlq]|< /9Q͡!׈5;ʚe5왆W~{Y¸ X:v1ͪ,df}>C#G 3!zoy'̵tmaoU䯕?hgyܼsVxmx$pIO(/{e f[a̘klG_폘}Ojݑwv e#on[hog=Mls<^=k:_a6[袳ӭ=s~v,wKf3}Z3ޜ)O{J;XM搬CZَ_¢!9&IaMbzord~A o]}1H'vGVt ՗7tt,%/~.QlʇMHm%C$m%@ C{*\K/yپdx(٣+^CD7K^l5XZ)unc q0݉s0TfՅBPqIt7̍o,mh4-R| AZ|9$_=w d-|{#Vi8lw#\ƄiY/Ml{duӹȆSZ }~{."z9cLikFd+fX?!.nSW3W$a.i'&6C gvmrsn8@HoEPJo'WUռ$yvL'L/|n8d+mfI <[$T{Phɒvsɏ&,*h|+⋎caer|$ʪ3SЊ!wj[%4>d$'2RQAqk"q豍M)#<*ľw=ǎIǤ^1N^+b+Ez!b|uNK" ޘfiB^wOHjcD<{ES otI7'!kY]xbAמ=EApm@IDAT9oe1a(3a!C~ y5HGƼKa|L34#kL IP.m,uG P޾Ѐ: /E|K9"\=QOHj1pH$iukI>/:/]D4x"V(s>&D$,E$vE<يdQ)2} ־Q<"<O`Dg0 ^K@ lab+$l{:)  ] Ef8&Fr#9̺ds>(F;W`z7!zK(F` 2"ߓ*G!;s1Erkw#)ׄj{b[ϫ5}pTXoLr h#ӻQh$_G 82pdyvZ>}~<7OG:$Dn1_b -e<@=[B˿y<+?ocy=8|۲u {XG-Z/Z[baoZ~{^|s>=vc,{}VKqeo{>y}Wd/oٻDK`9ٿyzg3W-qMQlh' 6?DVL-X 0tlzd '{?`K‰+a̞# W&[9mC]ڇ-o$ƒOYef#by.)?*-7>5 elק&la c3>Նc-mH|AE.=H6xqUa_a˜F畊Ltd|KW I)@Ɇ?=q 1%S,w<{{෍EJ$ͣڏwCgCƇk ApV߻l=&hilRJ&.Qt flM4Uͱpp, .e3# tF(t-8O8HN–2?u=.&5\0P>iʢCfM8 Fs(|2F&WS: >qt*/J8lԫ,ӈMA<拷3)KіbhO^RPX]X@u5I4SLmOW͞"RBGQQ9{2$smLt Or" ,@ʟ°=Wqvӟu3U2֍5|)1PEk+ЖpYrhHaZF0MA_&@u!zE9бDfZKOv/PDDuJ. ~z]}LQ > ?ajAH :?|W:NĠs`d \U,b7~ɢcБ EWwZp 1OZ+S`)b@ ~<!Jn 2r?<i[ނ)-t+D4!s+vfQe^Ľ$^ 36 08YkۉZ;Vb2Yk!9^MHs'|7 rAXD$tKkFz}<ؔ]:cۑQ OpV6~ٕT܂W|<&f}-P@XjuRBG]BIQ1Q+(/s_G~ uf Pٹ3?~tΐɳ">j/z+BwDk>N]|B3Sk8\< B儞wr*(Z28ZtXoenXw7|:ڑ#G 82<Qhyg{;#%Y}n8wxsGp 㬁c8yoo.[}-y\9s>=i%Kkoyk{y-3h y3  =-IQfy|=y>09s񝣟i-[[q,?oߊ -ȆK.:afL˦\8H8AL[I9%W^ 6w%DZmDb3 YK_uS$4` 7ԡj"1~GKW! l2G[Őm*x 1qẽ2Mr,xcp_-Cla70cVdiCXŽR ђDl8B|;t0fodI[|(^y+GM:d3_ K7:!7(46Yl\ ޾5#H̳ՊZ9jN&c=N1ym`S, D_6P|%5P~FA ސf>Pu򰭳k5o,~RʎD8ȕOL#Q{'g0f#eD-USDa,Z Ւ/s,tu>h>W9/>DZibk\Up^w9m"s:"$D}97fogTȲ65)=yUӡ׸p㕯wJ VFᅋ&ׅ rFט4m"2m%nVA_[Cu"]g.tޢ<Бw3C;MԖyc2ć_i]"/gF3b.K$5A)!Ǟ79:^ :_=LQ\㟹@-@Gq%dNmA`:w\q}q2LB:)C4ED+]k´+PK=Pk!?q:dD183(G^1AI.Bz\d{ kq|䭖k,O'$sQIbTYu8m<=qT14uVC BEdJQ˳]~ ʓ} Tma ]G#mu _x,P "deY _moD)dR).<:LhقnD/0sقH3?J!#h>'}5GoQ哗ɚ]:&KkyX>t΅s5=kSɇQG׿f ; ޑW>w0|3 }!9FA0YsyvM|>b0\W Җ#XPKΥ9$J8grM~5>Ք|Iޅ5QȳޜÏof'O:]=@~@k||/>uJcRt~ZMF?axDkg{MaA?G%]]Ww%:wCG 82pd7~N4s瞧9S 觐{?>lOgֶ'oz'{:x[r]Ug i{X{ƹxVk%]r[x9cmٛuu.=[2=n޹=;oVfy3|tyυ>{"rBiĦp6QQHM<6`Fu4`[R9"ok%x|f7z)n)ah-őQo6>|C1c $>ƒW l5>//|a |G/2 ͬXH4̩G.H1/vl%-H^XoDU @ *~m*| k5lb/yCTh9{z&X_i/}kƓO䍓F1tၵF!{ sV> 7ۅOɎd|~;d=s@h|Qk,l>k%x-0JY|d^N yOM a?ͦ́)ߖqI~i w%Jc/~'?~dCLJ|=oH ;X2G}4 G QHD+E7̇0"wc{+7vY oÓ ~>KIz8h]7>6zǣ8n3} ^Rh }͟ޕ#уLY4"&}Kƹ 8/S~R189bh–>Qm1"Cj][y0O#F7KT^]K;iӶ%UM(B˼.x,oI]ɔ~CemL*Fj/b{^2|x~3 α#|"^X qXsxq:>EGMzv6Z$4'YOzh뼀@`Ò rel]|p}?@Y.'fHIDUϾzD_boȭ(mt&~8o8sQtpuƚ.I_2sʺy IUsV&$Ɉnc~pŚ⠇[ؒ}0i6y4 \ '37\?YP9AN< HנpIy,=c+җG=? UG-"$&~|gy&5`9AOh*=Wg[> _»qfyr[@ۣ)=3l<{x_;9%]52X̟{7gK|x_wvETG;xdDCcK@W?[I ƒy.͑1P7HF< [4߳y6P ޴eSQkP_L 24`\mpf&ش&Cd[4Ƞ@Mrnw"jM56@_Z#Q2,/穄>ixt[ȱEF5175bUBx#ǖoLh5y7GK0~sMfiby] DGz KDdTygJP$$gAB(sf5Si@646gUf-B; lXԪ7+Rze0i5GNI KK2r"'v,5g QnX'BКB!|e > ^\zn.eLaPOE!j/c!fy!dX.o{6-?2xyjUMli\덼7eRH:M;&6֖B0gˇDӳ k],XKc%D% `9:'PtɟISke_ "%oWs784My-] CzQU["b=(KS>r 3w-bɾкm~YOF5f}$땋if/ѓ,c"'?q} #XBbKycG^|Vd4AlO+;:Nn|Ę\C3VbtE֧1H?^^j8%&/sM&q|JI[9Jc!۟":(CXC+EaOg&,p{ <7hXv:IRJ$]u,w|@a! 3/(kTm) yb]7&ep"zGk_(j7 p>j.SLp`>վZ뤔yԐ I=LINl!,eϓhZ.:-N'] )9ώgCyC;Ѧ(uW 969 V/zB9gGN9^Z470όwQhDG 82pdr腖Fz>#U3p1wK``]?xoc>6poӛue}Zn_'ڿVZᝣ_{[:/Vxe9_ wk?fy<t<5XʏĂ^L{s_523Gb枯3̟gl+Z9(ZdK NC<,JW{4n>9l밡lQq𳱅[fN 2gH%PȑmlV;[gay9FތV9}bS\v[]ph`,Ϧ#crG$7m.6Y}R"}qGgj7J%aҴ*Ko.1BhfoƳu" )ȴoF! 0Tf7Dl` jMm9,,ͅFb{Dz-qKuxg'%zc0Ci>UPM`o8*rc0oJ~1l? Ip,6P,;Auر`f5WMW'$JP+>sdb1o 9_ DgKf(b'"-1awټ$dyS/ @UŸuP#ɡ \@SUC%E*bKݘG/y3BrZ`=oe,0\rIS(Ď`cm-e2 %s΢~|u`Crυ?Xh*zmbC18ݘRhsɵ-J.£%EG%" AslŪ0.}$ȹ4#oOX_)&T~"R(@Ͻ%P. +-ɉ.sqF//L8DW63O>a0fF Fl8Od f#B;,h L5CF06x6+O135q rą`c+6>HgݻJUu׭Cb& sO ,P8ƃkѡoQ!|\U:;8L+_$BHQۢ=y5^E "<!ޱ8v8˅ʬyىu8Fdg$afȓzh N.@Sܒ7xEЭf4>* 5@ ]P;v;& 4*n\f,.ȓ_2em=c6TGӐ12 Q6|E܅:o< c>]''1$dx4.HmY@`.P2clw$*Jj#yN᫊)qɇ|Fyn߬+? uh'"Ûe9< ?Z[?~679o )PW1:wp,߽nHM댷]T :zF@`wZG 82pdN -g;WTe΁[bצ;7yl~ߜ==dTKZz^g{x<?6%ϴ=Y~?xoxoc?ފV0Fڌ70Gݷ쿕==,?gߣ=[ln?bRLg%x[>lѮZ]_E{%z 6Q؜ru;t).Nl(EP[G1ڂԾ~U+oF?iF)lD' 1&裁^X87eMlBVxFOL7j;S"ЉkkCPӇBϺ@-Yۅej<\񞢇 m :,G lDž\>t󅵜9۟MrBl r@r]3'Bq5Sƽʐ]eM`{TXƎl2h6#}׹[D$W{&ZFaVL,BG!ũCPRj9A>g'QS}dǺDCFZDy౞f+RޘF>`kB7 "`)S|897҂RL,"a Ste}3% /|ֳ v%\bDYm"aŦbǓ@$Nq6\[9 w!I]7].3 C ׋|a?ĉ0+)=yu ,dyD䍒U GKӍϧ\UurX$wYM}|tX;c97^GFYn}G -ov 9WZDv;(VY~?Ϟloڽ?lo-0/{gYw֭laoa揺sYǷϺZKr[7H-gf[=sGevs~oآm~0h5c6~tVh*h]rg}͎"Nn 7c@G5\X`a0fl$ ++7ɹLA ǛeN,`Cq6^;ɥ$A(& HWDN_47|وxPcϩcYr6aHm!ӛF'L$?$Ēx._sN.䳙Ǝ;>620% 7ul.EeWDXq)f{A9w>jiL@Ix1ItQ|^<]" 5f?x7`&_#BB.MoȄ o}OZ)dfێhץFWz->ԍIHG\JIW&)̰;DLKwsyӚGs 'XLO;ɃZn\0#}N[Qh)IL)9ɖklMCb&?޸|RrLiU':+.rMFAXN^_ބ==f u1 \Xq¹Mb(Q[V tJ z/ZRFhE72gPXe/ԍ\8<`Q^~;OU$ r=#gbȈcYK3qLdc>Oc/?Vm1r;gsrηB˭?\>2Ookl^¹kkdZvxݓo|xoq[x2v>6gu՟;w|oֿ9=t>a?Zvx9k{s~k~G}ZBn[:5 ԲO}`G2lDrc /*G9VF-K[ו:˛a:HZ`1?~lyk?j(36X/6:ƨqR\Mhв72EbS,4?@gmxYSK aIlH;LJ"pv,l.lG22~nb) +ČX.&6V:"3Ez-Fvi|sN?TujDg]M'זD,.p13ߚϓ Ǻׅ/} p`j8W ZPR9 ΀i[>8+}m3P~Zdqw/o벝$$wx1@WNnBiRFp"Zu5F=؂/}6v *\ts\Oԗ>M~P!uaoc"<+>KBa㻆]h韃mIl! YV9DH᎟$JNS4pwE?'JDsH"!'')-\zy7:^;w"WD0 k#I$f cp]X>h)3slH%Oțoj~wK NN/JrD к$\ @-EɁxI? ~_^}|!3 >rujePA$.DttA|X'6#{.b/~+':a%#sdiΜO,~vAutJ6eaXs U8>>jl+Q"\6kxFq4(ZυtQRJ1deιŞs%Lp!. L!h̃wuP%<}Vg.zfy  ?irڎ\'^>a`52tl>Ϥǿ" Y1o&7ٕm}K/sy$>WN\08 ˅˞$^K ;C?0P<6?9^j$C\"|ޯ~h82pd#`^B{YXŹ7W~d---dgk.x[=w-ӝ~bsw{k9:X[[h=ɷ{xV{|/oGl{OKiqKo>46-<ٸN(y5 6@x}Z̀gZSs>5U]hAд4+E<#T NV)M˧0gB±[n val"-(]ggԠs9G-5H`5_9x^G7=7E Ui:Dxle+`ЖD_,&φx>E׈N}s_Q5`yF>!>0PMΟ4\U7a ߰ɜ:SFIqf۸֗`kh0ŵm1bap;FbDdY(z. " ^ /C>N 9Uuo(LcF첆Diu$%Lc~>)גʳ71*fH<x]I\ y'租9?^~cgkc?mT6yRtgo̫eg;hOvtVv4BKYm=5p udJ;B_IKHoHcnܢ2%lSd?C 2x^ -,qR6:t4-s^Qv[\{:.yuR+E4@5b'EMD'_kNd3xP;+-5:)'Ŷi7EbRͅdLkWzFf6 4i.K]Q2vw6yۓ JX|2D۰{7)p_Y4G" c|H%:Hk<F hx@a %"ٹ)]#[>ch.+9MӟQq;ۯ~k\jhsђu(Ѿg.EˇO% Z ?gmRHVVRhI.7pNőƚq1ET3:_Z=6b(tm^^Oy<|QN!?}ֽpȴu\s]f擊:sAWX# (H-Ü?tD9o"q/>?͉?Ϯ#) p?9ǻ4>7`XR"S%r-kXPNr<%Š|/+kKxͺa؝Ix@<A,&+4#t44ڄ60^r \eTR5_4h)BU%~3I U41$[::hyE /'I_VN0I>k@IDATQGh-$h|53r"º k&.s-ʍgݱ`VRuC0$a 0,=Qq>i:bA!?[e%9\c(`l8z0hv) wVTr)yq50\'^~[s͐빈כ7.qI|-l˴ƺ3ȧw5ɯ?Zɜ>)Gz\kP?5|i [T^gjBssb<=[[BWkPf\ke%?_m|m,s8HkI>/7Z:ב#G 82pujIkZYi2~ ,[wmlaθ{zʷq/G5Zw(?9ٛG|uoVh؀ɂgcmEl0I h .tȥߎK0}w/\}oiwKD`Sw&w,lnMd{qyĢ k YIO 8kqh]Kc̰NએW?}ǖH3y4 3 g,lֳy-S|Z/|W ~<xlE˵f~kj'r.|ɠ$pEFNXvRjr5[?eSB17+h8 /,5o:R lK9ϧ~$̼J}W-6\Tr㸈c9W#$7Gyj׼߽V9~"(3mk,Gɂ7o?^qD1[tɧOA%o\ SU9 CA:aeɽIFj.1K22(_Ҋۗo܃^(< =s:["*\0לkQ5i>vX]ʼnxt2Oqz)Ê@, e_Pwp45C֛ De(M:FІoh`d(F|Qx~9XC3M2ؠxM)~g, NM]uv]"b1DLs/j8KE^:$sLdHXAuvcOlI[ }se[s+_(D[$:~N wqi z^uϤ|c>,_Hx8'Dt(0^Hy ֚&LޚRv՟)1^ t| Fo-y?#E(t` #铊uMY:P1e7dq-В89m_3皣{hҲV` lJrNu9#/&drby|O^?)/üI"x1|y7" fH~P^t~ŏ{#G 82pd[@Bc˗ |49Q=;r_ϗ9y';cޢ}1B{k{o7v ,33{x3}=ٿk0F_fkpBk}k{{x{9=325=Z?nſ\\{f<~ -Oh\Zoeo50y M ○ B# (Jv>5Ga';_1 1u4b $y_ZUhY]E[?K#8ƦX!DaH޿dL|KJoAk57ET<&#dJQKzEp[`r]EHOME?-Q䂶=v_#v%̶-.ATQ#r԰ۡظ0#x ֕ޠQ;|W>=tN46r-H YK`Yyd^]$T!ow/9OXyB>@>%iGvOsׁءHZ6C^AC_Eelbt{"A-$o^>`cI /84es'}A)} U .zkFzGrs +p̬.7S{J! _\HXD5"qNq@Z$!/Y՛Ƥ҃<\C6HF4~Y=ѥos B"B/ ztnc: |kU/_ݳ`e^%w_Qvp]̱Lc,ZFe|j$%~)m P'Z rEV8&]6KX"o'/7@]iةiۡ[EA ?xXpEt_owIKL; 'ݫcNvS,XCu|>+zIY02Úҷ| V;h9κ*WcWБ>Rm樱k[YYGuWLȐ4d RbݿMg;#pF3g~]/?#<k/g8g!yR 'zm.^߄ZlB>W[4/k{DsVcCw(˻?ߒ5}{{eЩ}.Gc25=>Cc $6|kG[o?hFy 0tA Jg;:Yll+(刈CMPL:m%ـO[>9Q%)d#@Q|F_*6-!(Az 8)੦#e#!ZM^9C]SL^a"4F{OD)G{2ˈYfՅ*^Xbڈ`˯ j\#/q_6P98_}Rvˁ@e8N:ӄ9$`K Yi-?t,T ^O -!"DKm0\9C{苔)~zK>hW=N.C"RGJbZl՞P-Ѽ87>QhiX)ꈕV_S"ٙ)y{SɅ! \g)[SPVU_AM7y!̹dzb@cN殓sBybY.df4|1%㡕Ou ZF[pcr0G6ԉ-z}ٗ]?)kOmf,#nN~cs>{ f!]r?|/zx!Ic1Vtگ|_c1Ry(slPeC "wc$mJ9MqX (T̛:΅{򫭾!Qy+Cw-TGAZ3sh!gZɍn}.G'Xy03FC)%k`Fs$tWƎE=J #)Mk8hޟA hn)5W \wG޺wn4NOzEU`'g㢝5䵤]l7fc41h1(.WŐv%wmU&5{jm3S{d>h|"}x_T^m>]Mh>2xFGWrn ,Ur@.GiYBL#ݵ/|1/q‰Z}_]9G+/x_1; -8#pF3G:oiBKYlG`c,sʽܟcC_#sȽzm:ϸ~y?{{o.&N_|;u}k*6%Ҏ6l 7H3r`"}!N= 9[mt8L~<bH͒b;3,ܛV{YvUԑ|٠D}]arI|/FV[T#QY98/aR>ʏfjQ~䂲AG 1rz1bKZ'xEiڥ x/wsd)sQD4kvLˌu⳯p?p+lhGN !|  Ogl*p;xpD2YIwLi{D=W={r$|u -˦ơcWlKCӦg>,"S8a{8G DkGnTUqouD(֦aqd۰NJKyy~7t{Ok5ŘТxsL?[DcHp7Ur J|6DQ** Ĕl )B-` cT۴}r"zWߍV+8k;)z?%O'U)EFWt T&&enCMغn [Gﶵt# yM@KN rɼC@+e7Mȃ qE~:62 ;,ίW P=\c$4Y"C[ؤ 8+ H'Nҥp,@\Mj@)>d&]?yopn^)9ΤQeV?zy)ȫ R[L̀_#/hJ9ý:7BJg,G>%$n~ rnq?.sSPw E%5rի6th|)iX(*5,j) e7Anmi_^kv~{TlDj'C y )q9x@la$rs%[^iǷ=_nGw[G{f<}K{Q[G[˿[oϣ?jϑ޳#l#Z!UxA -)=X*(pm}EiJM`P $zcRڂDYkC>5媎^v =ȒW>adlCz'j2ka*-Zx T CeX`O= ',K 6; f¼P_[wb>TñT7VGPnN-+ZxQF˓mn/0' I. 5W_~f5dbl;s?ܕҦ9}e݉ז'H箮ۢ#cQh)rLm˘(@C6(uHޯ rgޢX]ꝍ4O%[=wTp+lˏ9;A cMd Z~ ISd[@AmPˁ% BE+r;0UB̫T+ʯU")E8*YbBeiU Bs|1"bP KTlo|\˓YuC$S'112jB`dV:b.DrBLz֕LZJԩ&5Ҷu,;f E%UdR()/ (֒'9Td^k-bo壩4Q}5W,-Rf E5-@fUɯjZ%ujn{oĨ82/cf~n|nIcN;bjs?3uΔ$ +~%#nlȨ=E~^sz9·o}+@N4+wiCY}R6[7`q4߯K$M"he0~֐CIAx㪒iE.r'blNiQy#h^^z\O6 D{l5Kcc8%J_hUkec'̙ WqLg8#pFkk? -_|}{i~y*¿,3:y/?2sHB=14x$k^#5[#O>~>gs[~(FQ-{G=={4?Jwkxܒ[[?3|3~N-o)ohN ܿ[)޽z@ g3z 5mjS(͉H~@Hkny ˇs@rSC>=L 9(mϽdZ 25vh#\)ubYP ;Z|]m= GP׉{8V0röJJ`r9Bt +vcVPl5zCtj{EqR-=8h_oAr2uޚOz^7pN_=U/<1k!aj-]FXfľS=fK WSxњ8Ez|F"`Π-/Vf"y>񣚴h j 1!k_XYҞ@Q=Op[Oo]eq<ѯq*{*He`R(}#sn? m*3] 1)ht,7uK0^fuIjyZ{ 8-92w'Դ=Umj!4wۣH5Y]bmWs^,2K {cf4y[g\02@yO],`2hnm4vȳSp iOt0w'?WYT}_еιj`DRYʉIgXh[|lӌ#&A,xqs|)"LCzejjbxewf2e A-*zc)\"}c AE1zC ՟Kw$Ly)1C0~]-D2S*~&6" cֱwZ4*F}FGZ2HNY 7 2C"-Cl ^m˜5){|O5?܃" ̻Y^T{tr~igߧ{w~ AȢе'Rj5ݟc?ct[Kxz^dPMbg}>>z-ڴi6irb3Cb#W%ȪrZ;gǽ0ɛX)-&fvq4&r1_o1)O9է3b>9nrBs^󈽿YhivF3g,O(B'٠gHv[9/ht́3/2ge {d~>gsom5zvq˺H(G}oK~ vMݲ ?ΣKznr ?33߭?y(9B3Θúa<<'Ö oׂ-}҉<>*wGZO$ Yskt{#+ٹ䁗8xhbhDs:'zƿX_umPZWd vy54я"-q1[b nuUDF,#3{H'gܥn5(!eŀuxј]p/UX8QױݚHBGc>ˊm}ykKOB Қ;mއ- Z%BSכ%@|⣹6/0۷Xm2b)n<,~(Ԙ#f4മ#u48+I urx^ij+#rM[vAXEjBLmI"2 |Hd\f_8Ր^-;Ӳ:AUO&\tjbiZ%qUѾ|HFn0DXقFE;>^Q=EsW')c46q`@5(]/LkGu0Gb8)Z|BK\ՌؕB׹v wyӧmoW Z8y!\-ƪl%L,a8K׽<)̌"/QVJNj1@5I>)X%QH_ej6M9+}y"3śZڠNZ/D-R/O Lj,H$aM0^}cD`j'{ }_?5O:]ߙ9mx1B Y>t̢,E5ߢCh}I&ယj=̾?V0~ X*S/ Y)368UMjخP;lx<9Q'VҍĈC("{⚊muHU$Tv1.KHf ԯŏ9?k^Ll1.wT,8 Ʉ|z 26X,c$/ڋ/#ܔUa&!6QK-\K?}دjiS1ncq|ʫ9'0l7|OAHx>4\3q׎Ր7.!s /N)iK ͏h!ϝ>5͞*Se}~OU߬) %D~̿!D &1\l75ڞ?Ơc<ƮtN՜|`~iO~ŷZ* ,t_tY}= XJ3;@[<S#3OS#>\j\ܹPW"^&>p28#pF3vs[Yhy޷,o!b{kyk?9gX9R1o9ֱޅs/4/C9##{dCuU[[}8=Q{~K-s|G_ܢ˓^Ǒw8cܟ{~3s=Gq|O? ]uq`ءl +>BLOGDS`hKK )gP#J8d@Wh7uWQ kR޳VXV{T9r_#mi/`ldҾz 칇E rQFyDG3hV2=So!u(y1l|D9r&ĩbR,mS;Bkfha1’TB4RgŴD?BEy/Zt8Pg3SM>ٞ\\j}OgLe?-ϧMK2K -1>S<˷(/+Ymi'\1s$43g!FςTS?bw&lPW`3*j]Fk6ٴJ5nEPy?f۷mJ>q-ҤWʦc9-`!ƾS^d QاZl91oHndjrgMrVDg 7?4鯼۾&[DJvFЧ>u|< v)F>Ч /2p], :i]Q H}Q]HXy"27WGhrʵ*XlmT׼ϥunb+3>M7/O (KY= ?7y%?LjM;|+o%B=g,sT[34ll P ԥQplf9VsWe[2ΰk$J[Ii\fgfV<qpTtho,^K|X*KbBLj*+!]s䘲B:74^[D[_4{_}P}"I) #nϰ#-u!bd2%mlc) 7N-^|՗qΗ~O)fUuWM,}@TxfZ]'2fdƒ r^si y?dh~`s<]^;>gy{_k:a o㍩s0$6S>'\yXξBeu:vd;#pF3g #05_kYhȝ^A|rh_svcRzR%#g:8~J}9ܯ|h[򾦬ܗΗ[>/7| [>(=:nɼIǑKow佦Hs_޹qo?j[tyǏ??w?55Qq|~́LL溧Qai {X&Xs#b kEA#} Y`=\<@-,XX/sp" /X<vlڥ7l'\QbSJ~k3r} S'/X~R";K)LyPE_9ssPaDBeS V\p{ Rõ|/6[g*(Ӗ>69RB ^i?0+Eΐpyh('>:3֦:%Q-ahkz q{!km>m>!L;}z] ψgTݤ7ҿGΪ0AhL,/l S8@{KoÇaa}rc,>q1w6 AէpLyYuњҸ*7_rs隂oMKE1=k5{هf<+e,[3wI|bm<} G3-Zb='[5%]'73 Ž$TFEl\O,=jA͡8b_a"w fdYإP?56ϙ5D3F[Bn.3jĝ1gpx3eceC%'6k.E\0vJ;O! R|yfJY6kzNb SՎm]ژ\&RLf]QЏE OT[_O"6%51 ɏCKx@nD B HCFc ϟ|83a$pr'U u9\1O, 9ֹ?sAαkYq|u7I_ea8^ K#b'9!+˫cHQ]1 ZWչ)fחi)%:<•x⣲]%ΉsVm֟RC _k?VX@՛vy O?8#pF?,Zސ4KpWVyWW:yپZ:eͽ]hz\q }G}-9#/^^COGW]/_c[xݒQ[#ty<dz"Ȼ3#q@Z$!g4Xnw9<&r 8si:3 EPE#,,3Aey7˿5/B^y"Nd ^ƍч-j백Bvf2\|U[qfp&ByL(c{?֒Mct5Pf.HbʳfOaOɧ|!@J2n1#' Ƀw_yC-e䕲D#vo;*gxņa| 86(?mcFA1+ qF 0^c}XT;\8\’K8 3%-se5y1R[6-\eأ^$ qnAOʽąw!Ҝȡe֩W_G Mv}#:^{GY cBHW=DW-*ȢP N)scJFro{U bw l?Wbӻ&3GZ82Py D\ "x,06x5A[|o3y^h6Yme{ 8=_!.: m#{7TiRv~ɗ|^W^\|@GWtM6yK5b"6+umF2g_HX{=!\LOy RdQ\d1#q4Br' Wzli2:^<鷊K .!VL؟u@ns2 w}%بyߌ~8ԙ".Ac\esS&"T8͋U.Њ뎦_ycnax1W.{|mQcRw.;[z7(]( M8X4J -Ry}9 7 %_RTy-aR\?xkYigkɫ ן*lr_wq΃pUxEB0N?@IDAT[c?^l?_m; 3SV#KYyYW9AGSj1 g 5P\^Y? *e>>Kqm--101\dsQb#6*WVFÏE%$n6۬[edhlfP o_>l'ږ-&h ?PЮY jۿ7\_O3g8#pF/~~K; -{DϸupרcbK|:Ӑoޯ z{B -'2x  K2^#ͣ?+ZrFޭw˞ɷpo>"ko#|ߊ=/u2G9Gx6F+>ICtڰo߻[…(6Km#'m{"I.M)I3A@eͤl a}!AٞpY#9|k;r|yY096f6i;ZCr^:QR Y/5譼@e"9J)QWM ]m~AV0:+59xfRZ-825r;+,s*Ǘ!B˿oOelONɹlD$^'.;I e|g1 [[$_JRXvb c 0M)Grv%Qf7 MX-.asHs$CVo!GtZ k$ oq3b> 3bZ>vhɁM |tP5E ,aS<(+՛!`c~ /i| gH׶>Q,/5DD< /2Wi7oy7+6xjs<ᓌY'^-EQU;77ʉ峠9MܛMkZ.ȹ6Z 4t5ќ^ Bsdqn ᳅0qhLBcjx~>m@:]?}\WEދ3ئTMukHa=M[YX(!$hѦ ?:Қ~k]ΣEy_[c.PCiwE_,5y'? orޥȞ`N-ڷXgR r}pA('& Ku^z]'w!fR:?$7בJ3g3y㕶%Z^,t->^Eoد o(✟}x*|ɯpz -[5ts~3[xD#,Q?ܫ[me6<*hϣmxTWٷoo鿅?{Vf5޶[={klzT?4߲x+n|hţxԅM8 IA4@zFRudItq iRxc8z3Z@TEɛ?P+x7r+ ;sȵj$$ Ќ;u#yy[yPyЖ‹`.6ӗ[q@SY!Vn(z\}zH\Sa!Ce_aׂ ǁyF.0ZYV)#G^F6#x6i.|aq=0DO{8O\uBo>oGCu*½hn!uF}k< *} terC5s0hNb=uȂxUo|fiM!T3.4Km)|sO}«WzS&}Acڌu?1b.FBA,PA&_"K kXܙLgltP}W;l ̞(w/AJҶ_/vLʈ}@)F}12Trx(v'E;V0KV;:hdP:b./m)H`&zkY3zg PxB:-ȫם\hs^Wg꥾u'"J,v2tr+̡Őx`Xl H|%WQ gU6]ya\)LJ0 4ia$"î}!â/W-{7JX(1AA"FmvO)coXX5F$OH"5bSP RM!%-tPI}ε8~Ql?4oḏ(+<)rӍf/Ũ"~-O h񝜑^k'tMi WQUaXsub^=jE 1 ~˜.khO^.k9@+`ҙuyʠs_ڟ^l ٨@ot~30W`.7Il 掓{?Z M?Nj:B>Ocb21ֽƯ~B9f}g_:gr䳲׸2M1Tҋui0:“?j@/\,W/kqNo;a,S4u/kW]7f<ݦKQUSA>BKs]xsڜ)̝fcSBRW]+'Ce?Kx=),f3d}(46C|B؜="c$ɀA5еa| Ti'[Ƣᇿ k/|g8#pF_sk-S(9o6&'}9G^='97/֏h:hG{+qFK?| -%?=.ovޢ?gNǾ#~sK[Z 2o_;rGzDіGuD?v|KTu}=av;]!##У{DK`)=LJ,:א[,[ أ}ω2bWx>rpTbexTaIޥO:w"Uhc;j ~/I .- ZX-xxV{%RMӮ %{ B2w?exQ+?o3`;4γ>ygJO - ";V_>5 F?mFڞS| {Xۡx3k\ z4O( %eOiչA KI<&H VW|GV-%~(em=%+b^CcNQO;E8kں?!1tnNuD@\bD':xQxh.4&-2} Wflэ61+8]be̝=3_>/VV)_*E(<Hʊ-:C"5ga<^<.[짫j$+ýX0I񛝊",}<6JQdF 2q 2Wڲnf/~/Tf+3A>$vz['Ak ?Y1֕pk5)ޞB'1fP2;4j%*ħp>j &96Q𢥱D`1-`4}~c/sle .k1a=ZX%&%G+A Ok xZpQ^'Ǝl|ǹS7sGq S#{`@( Ș zqiŔ5LsP2'jguM&0_kb'ph9D(y8L:Օ]j"F?=xW맰w N^M< DT$[꿶5lU :WIY3_P]agG΋UW0փ{AfV\Y%,f(MqpjI,S =-v*v͹fu2(̵7Wu-Y5.?Ϲ/u1 O1<_*~: -YD/\3o{{}t=l;/yQGtw:1:pq1v aY3a!@$W(l>ZrfT~̿oh'n\U/[ S1. ɭZ)2Э=чwJ0 k/8#pF_Wsk -r^{>8GK(99N97>4<z暼v;s?#^ޡSBK}#8[Goǜ8=ʟ32h sGmyNkcǷԡ]Ƨ#?tݏG[x9}nG9z v{͞g7}eG޷tMkl~4߯'z♋uB'G-O#ψy̆@)4;(ͣ Wm8.J6wڕae\7q-%<jHc +(A̹9*$Cd,ᗎ8Stȯl;4,bo4Gg phUN\UmhD Witüzjj:lR!:Ҙy*^Sf>&{B\^9M1WdN"Oj?[Em7#qz["&ݢWϦҧ\:Ёb[sX0C zG{qht|/i2b!-VOFƜǶ)x]l()OwIeJn6Pnj藑BWbpTY_?e*'^ݓ/_c®ulSoKB?2nz<)D2A0\ZKm:pYi;r$'H[/-ZSm˗EIOw'UDYy\a- JWg> LJNe0-j`=-O }98~> :i\1N\44.yZîU8 #UIع3݅+#9}_bxJ XX$AG/\DgYWBkO֏+*܍c`< _B`qbVzTgMOh _Mζ/|0SE(|grr~9fU}%IwI2'OG 8|cf@'`SĔi @&hўKRS04HD`D>==ټ~m2{0eEzf~~5@"5άO'@TF{bM_:g-*\mD3d"r>ђp3gx(~n{KV|vh|%{#p+9&5}"pQ˽qwmK{q/i~텖8Ys[G=6ݢ5'9#znjǷ}l+(Qn9Cs;~ďܗxvqkgw#s=oѩnZzか/HaerrEb#i G>Î4jo3u>&+"/<8A:%{»U9W=aC,랢o-F 0هb,4r<2+I1:3TJ5ʘk뢑_*ol;ST O2vKbKRr ȗ/E5ntEdLRG`PKq,0v(^wv 0oMrʽkeQG/sCY`UCDlI,eHM-ŵG^Zb6h5+I.>]5S8sdLlF*TbngPyanwy`~%Szק1&G!XS)CNՉFO'FOe-Z3.bUoE7%JaN$f Wc;Ņ8?)$&$Kc2ERHan5̑ic5^\ iYe+k@i)lQّo:Txx$QݥW#B Al[ZdQO3N-*7;vpC:ֆBFM&;=_k CLC{t4Oa%.T6K:X [Y 2Up_B(+.$`;}rThn{ɔ=A![ny]&0RI~GUHnaNbuN]$g'.C 2x)ːtV)&Î<=6g;'87_oZ m6j)v-~/@㍕myNbH2k.\nګݓo33}]r tYȭ@'\#;Rip"Fe^j2#0zͳ$J,2Zv_bXE3S|]R30S`P>-F8e.<h`~"߳V:׉Y׍WrvTy-P[gC jM '3-[pŦQDc76;ҧ̷Ӕkwk%k]W=A/6Fmܷ,s$T0s?mEm$)כDȈ}6[օﵙ7 9 W>{@LLwiȜ eyfwPY۽DB^iK(@J|NGicKH#މU 9>0q>JaXX5%/}_iKm}a67:&=1FÙ< Юq)bOʈ,^b*.s75zlO Ԓv=̰dc5[̍],H/}!qvq5{1WCCujiu9.䍠 5r3Ȕ{BVǙ&'>-͝"O1R Ҽc|>>f޹.oM5}}mqUQD ދ"䎔er7JsN^y:s\A|X- ~߳\9O1k_y@_})܏͵.f%.8hޯQtpd}2.D^1g)G1NҿsQ+XO3g8#pF4Oo;?o< /:8ŭfQ5Gyz){isq|)zߟV1:Vhyk޿5VԿ[nz V?Jko%ӧ{#9rT۵aRX, R8f"s%x 8 =yXWi^)Իo>$'/!D!\)ц>[K\a@U 4%\"ݡzPsۓ lh3YU9Uj#ZWqIjg'#*jL N5BGcK{G6' ܪ%I/pdqCleaEঊr z xVc|q~xkE7W=PVO2=9ݻb $?:?Ec` {003}" n ap=AVڀ6gѯ=ܑ'MɝxH &W5OC(Ӹۢg/q b IqhJE[IJ7ۣT$/x6)!+mm>r8޸"':S}c˂ :X{!@+}/iz='|@}7gF>s 2}R9nH.AIrL\!ȭp&o7FD5avKcP[ejoE Lt082_W*mCRJݣUbSe&hZH3w]Y*tJUzISqP2Rޑ׽=eɜ>29eK']YsЯNo}c'`J"Sd 5?-Z浠Pz_\O7bL0]m؇  ]z3G8<46"xF:D*k{ʺ{\E@|߇EEad]~gFײSg~Ox7 \U)jPUE\O[I8㯣'()n΁ԻxCWÆ3՛u0b:N}֡Avoh vO| s9C6!_dr.N}%pl$vC>aT>gMhZMл7(sg|7r3s)hptEFO[ha͢xm:wQKJ_?k׽5n-:52tEWQMKV| @?{ ̄h1|q<3g8#p鏔Znf? 9-sq ݌=}<7ϷO k yDV,_bu\q{ D`b*TXp?74du]kF-=#>|e#5{ʸe?gO/ន|o#|_v{ΎK+gN?B?Ph9m;%>sl-ċcvAWGO=4槴\Ү38Z Ty{fyp`Wx!\lF"G{~!皁ʠtu[uϯoedPLHDdХ/7h2GA,y.1򆼇zEr$_%fG zŢ^ɢ)+}uwrZhr,d6W9YoJE_tKR@,W)7*FvwE@e|WpU@O.&`Y7/~Y80 7EyrdOVhT-KWd1DKBs3g8#pF9-Xhk2 tE`k1&}s #ND៏y';6򞱾DVݿwW~?lp{[_%ȺEs ?r(=z=gז?sov[cm{"(I@oKO)lHɊb3 _֧ AvkzRj%gٔBKլ!ʹ- sw̓MX-bKӎLsN RaʻP풞`!B?5,NK}kHQdK^ՄD`{0?1󨊋`c_*}c*29l&N.ɞ*[[,_$wWnv+nkM_>eΐ5k_3,}rѰk*йGSo ,2&΋|fwAxݯ 2d|5=&)А EtT;0yϞ42kAw>Ys`,#xx45}H9{NǼaY: c?22/E_YBXҗWH56ʖ_:%/i✃,6yapb㖮Ҍj[X5-?T{%B2әSk#Eʿtg o] kr}'Cr#As}[>k5yl2C, 1ߒk΋й2⢨M!SQO?nu?|uE}Q%)t{6Xݜvm@yQ2*oB ,B%v}LpBY '鿱hQu QvZhI|[>!wGTkC<İP\_ 4[}e.v0H|eBq^8#pF#}漛)BK)r)9?_3~3/_S9Wgfm]|5v1xۻ7fߪ8~nf] sG#5y5{,G$;3#"k 9={s9z{;`wsxݫb0GfE&0UQ+}PFxM4l'pN lrTFiOASl#ω$ӳdO5]'Ǝ#SZ:ʞlW9|}9)8Ppa$vW 1`ROëi!: s_?ʄemqܡ8KeWB\Aäf&>ThI"ҾVIuu [2]; 7_2n;_N VI ̥cj^O,eCNaΛ"սH>26R2~0?|/&_DKì׹ܙ=UD73|ҙa]VF!;<.pL JrfUwd|Ѝs}8_M'kHb`Ȟ Œq&1WHsosޞkOy=D"Xߵi):eۛ~G?4vb;2g-"/pX tKڵ%}duǯ/Np5UJ٪ebҧu5 e]ߧئIfiվqW>w+SaTCر 6+KH|&0<1+ʞ|rZ{ ٵ+ 9i|"scG;$<ן/$g\'+)2I|9{8^)j~'Fxt~l%~.e~jsWr܏B{amwi>Aik~h.DKҽ>G/{-џ='Nבv?_ߟޢ}̗q~O9^߹=w˞DWnokd/ٳߋ}і}.:w5/hOPrY(4sHƸz˒CTa{rpCuAGJv g9]v< ,?=ao[8TJr!b[fxƙIz՟pY[xiO聜cM XRbl [%:m%3 I. .9$O4(ɝּ$8a]HkiOc/Uor}hD>,XK` +*2L4T-婿&ñ϶Nr+`sɂobgm3dy\󔝝h>6JwEU5mybIX-vX(i{ks ˜NB6vb~ӌeD l\UxM,=.[w1^kR  #~u poӭ $r*"KRJ/ǧb8rg(]f Kε(o+k2|`,;ku keY+l+InF]{Dhl ˾JX7 Fwi=bol;^ cI-kLmZ2s<{Kwړ&201J{fzvn' 嵉kNҎ9p?y)g9vfDl}>ĵS6F&/3+gؾUޟ!hhmvoc\OÔ1|GR)^i>8&0[rk,zobѶ}g 5raO$ nd :`v.ޱjCAX&J;r F}'Τ,՟p83 'g<fw)08X &MV.zSK![0Wk"Kq\7 Bu5u?0 kc+4^n76> -&Ӕ9(sĘj] xFkO% ou$A=W>ٞ`]:)Aiǥ1Ŷc`bwluy.JGr'ZvF<xDGxDY5hy{(\xͷ﷏5}̏_}5G}xmlfh=6yct.K?ۗ|Ӿ>r-q_-06b~vInG%up^7r;uH?w?w&#sGH?;ܥQ%c׭G}#/?⼴ׯqQ9}/)hec /X~92urd"Ɏ՞뼉i'h{␞)xeg_Nj?Zo<=*ldҷ-$ALI<σPLQ_9ZDjM[PKK_Ԗz_= vyf- ,HAvթhxߧE:2RKgBSh%;2NS#S-'&'=Ef@sSzbw:N)Z tAjb'5NI"xx2 Dxѧy~ /cv(g|;Rf5+s9^ $>:%8 ǁv OxD[&/nmSGY8`Y]Thm~(hƒe'yH&1%^vk!5yw;[g_ X?l8>6J/vv/sikAZ),8'rD?A=͒=kLw6L-x4߶D=6tұi;11bcU&*R"rڳگ,*Ѧޡ(`:_gƀw&e񫈛عwx+O/bӳ+RRjjq tJsR^LRb2܃b{18~I2P?kl2GMlb8oG%O~cв&Su%Z$DK Gƺ [mv陿6!28$FY$tZ^cW:wT]u͆w ɞk Ķtn+oM̳OȮ݆;V ̝أ 9O O$4ǣѕ\5WS9m`U 6(=({ ůCǹ~/?yxDLM}I4.땗_ŗoēнw=U.r:usRޅ?:C!;v僨ѧ}J4MX^%X!#<"#b+ $Z>-X޺f[[RՂZ@'_c~鹾^Kt_ֿǕc]9_+G߽|s:뻄q9ߚh9rGnw~^9[c\(9ڭc׭tƹ0^s%><\K-Cr|A) O="LpJo$xXc@lrV^:r*DJ$0l9B,IznO.R=:Rlq{ZȰU#V/sјZ>V)cO~̤ 4:O 0gjeh0gkgH%½J}r8֛4_-}&g'X_%N`uRlԖzx8ATVtV%櫿O̾ nI ]pl͙uffmm²T >_D( 18MBs _uS ;>]q?$j،u3l,iuv͞ - %wbu ZNj«u2*ޔ$hK0{|5^hZIlq5 p`Oj6ϝ`2N.KO\F,Qtd<̏] `n#lfUJ@lIר]9$?P'.NֈJdZE{fZ`ZkyWѾ߮57iE"\7_6~ nE/6s>u/k\U1#c=OF3#3$$gMb~b\I.&יܷ3[r5{%q:U]xt+ꌨMJAFX9M|e2S N%_$D{I,A`^ȸM ٩lZ&Bv|,Gm-ŖJcb|R#}2K3Z?W1՟)3-bdתל )b%&Ƃ$9w̒@JM %>p {1syw>Ia?ƹkyQix&scx}p3A`<(NIxz{-oMi#g)sK!|PPF`57&*$UB'F9zGJ>\+FJ HC`tp r^ q^OKcUwI$Zd|#RsÈu$O+Bś}BB'69KxyV~.rdFg~S|$2c!\r#dr/#9`Н/1R[x28#YsRCZy9k\͘ ԰(3g@ԓF o["ծτO&9R}B"}'uҦ}iykܴ>ra(Eԡ5 -At^eQ߄V"ڗeWqldwS7J1fN_hD${, ‘hB1+UC;ؖ}?[{hJd(k7_A"ƴV16mQ2%'5Oe=m6BR*8*vm{"wrÌ}ܯlCӄD-L"}Q}D[UY$$Q# ٿؐC3uz|FR|q9zsclsI5p.?b,SbckY`lXaD1?[Q5K3[/ޘhcI41+{t~}XjGbP>cś1[+isC[}NdOw8|Ȁŭb7$ lF8.]Kj|J9p˯cvOlXW2]٣dA@u?:bS/ӏ&IMb8- qzWSBC˚ WNQuL?D8rI?αv0Ź؋y9U&Ώ{:33sL*Lxgvnye9lḆcǃ&&fqgAȟyP=QCݠL8=C;T)\BX0dKP43y7ᅲnȡ'w&c2eMhKF]`&dNO ~6Y0Y&FjǏS-XM{0*MK&:FQ"Sx;Džs,r0 !颋-̓K{fTf#x9ܛ1"Z:k\@UV_9"iNzQV[q sBQ5zU'Y ]+.-}2ڊjo A{$CɸFX XMkF.8;&8жkVZt}"d 1ѺQ(a-6űlTG"OpZ>Ɏ-Ql,.g]ۗG{֘:|"@3Fk d9#> ~b*IZt]~4޽?BP}c~1,ۚX z 1' k\TnBDfbŠ(Oe/m|JWiwmA=J^e::4b۵4'5^f:J2k3Mǿzmg|B;ݮ35K^M~]o݊;->=D~=Bfbo(ӫ:&hk+e$tߜ9{NJ8'g= ~'qAD6&ˬ>4;vI^7sʧ ^b2s;T* wB'̋`]mgiHWxdfW#Wf)YAO65e dk0udά'F@y]ÿS@d0Q2v;w!Xc˘~J>D{9;ec QbkI&p ~^ё:b+vKH+]̳ٓ,e7~&-)hϨc~gr c<؞YA ~"@2[]ϘHqŎ̫>OPDʲB~>8آWl^v_7yg]-av'pta3lu_9=u; b?AE3[˯wgB\]2>-ا*\`d64yJ#IsžkX3/>OiQ&S(@ݩ2WӋ$~E#xw]g2sOgnƀU>}zp99ט&XO״hwgi(_]]=h|0c(eXD/zRT}A˿Zcz#Lp^c\N{K4)6AݟƢ,/.{`2ѵD3cиE8nhO mo8m OcL?=:؈X[,z4q$wmƑ\bT3;aagDL [>_`lSV9gX#)3ڌkD_.QqmIXJNMĤQ+ 3V@ۅ>(+|q\֎8U_>ys +M,N'k&f*_g57iѾw2S\e)KO=mnB7Fb31:bp5zJAUF.jvkOJ~g >51q'p9N2E'15Ia)E:5& 11wXÛɸ:?TV ƅOBƭ H`u#G/'1ʮ"y?o> ?oHXxY3B# 2ӯ_{)+O7zN1N|6޾"ρM܋AvHJ =xpx//ybq6W~o:^^7\!#<"#^Z&Z>>trb Yr.:?>gϹNW$=?ֵr{_W󟟬ϣǶޜ]=Zl(}=Gkxm߫oo]ۯ(?ѾcK#k?{[l3{\u>俷}M~kxk]Xf>bW{u]`'.Qq`l=glV*!$TakojRVUWXzpwe< HlMw7AP)ldR~q<*}g<ʁuq.est)? oh7Ǡ^*%IN܉ZN>3Ib2t02`ȽaK/Yߓ *zk+((G)[L^:>#}drcZ?slcK>eW¨Cl[I3F'|H)0O$m?דP=#<=Ф'y_#ȗ)j:h?uͶ񟲩Ύ8ƒ-`{ bWxI˸ k磐YWBޕ&:N>,[[e)Ă9{{ۯ1aLow._+:UKQfL[;MOR]N6&J[/'.#t;^W_\}B !rڳJv$ő,@;(U bc傷Z U r؞\#:TIMd6эHr|ypy>Mȉ/xq7K/y2nz+ i*ҷ2?MRp X 깿XcF.@Ozy2>.c_>o:&JKך&IX2oLco$4T7IarAc凵2,ޱ_UFYgjW~nڕOܳvR2^?xJ{ZI{mrFeq$"6cFCl9.7Fga1C/4vmJ==Cε80Y$y; wI$W&)ʜG~ ?@kaɀrA&W{+v"I3Or6h1 Zp4vN[x螱YQB"IT i /? M#<#<"#o-r>_=q"po*;c/c{G}ߋB7GCuR pI~m1Gc-Q<׷.qɟ s}ó?#w#s:XeyN\O}5kohuex[_"s -8ɮE|ikٓom׺^]GB+C ŃAmhzJt_۵Pw{LPp<[ʇIzR4!Y89R@Vm!c@mxi"IjpO}']$MepE7NW4E-٪IuŻ`!8{[^K{hʅ0wytA?$ [,< .Can^ofEԚ͜,YrW6شIERp98 73$خ4W$. 䡮׵N;/8{|KH 6S>' bm 腡5FtՃ / ":úy;^K$?:1G˵*MjQ\;tcUX'@_K`׹m]l},ɝ{d j{!GWqAyy &m]+:==|52Y 5pQǂQ@7z2OaM'5گZk65 .ǵ(ak~ˉ)bԏe<;'D(_f*M k8vmG%'jf6l-C89`&%ongf$19d2'_#4,ɚfMm{ǖ] R8/s탮 KR`kp]gqHpP7VѫO(z~җFn 5)AbXGVSk19RYuPR)?ZEߓ@5#>`'pag-ˌߘ,l-ܣ<"#<" wY2Ѳ>b[M܏پ1}o78r?aiװ.Ik>ǹw층hQޑZKsM߱q?~Ns}`csX V[uv+ޑu}ۯŻWў״s{k99{_,4?qZm%9;ȓkiqωafAAVX=t֐!.I l”Daj0OVN|m>@y Q8XL/{+/ fW䐎= f3"glF vp:xcFK1"yt=慂&4@, u>{g{+Ԅ;v c 8<`L 9|Rסy-NLEɉ@"$z$8Kߧܦ4WKyXW^1@'eTYDm 4ݑ?:W|}gbb':$/|АU2w,Ҽxzd w0!O&"vҀk0Čo@HOfGDv\bMrGCl҆5}mƆ_Kt#het(+Fk4Q` ,ItJmGwJqiU/FO2vF*w桽C>[$S|Bd''`fc`biK.'*Ѳ@ZzHD;k-3'dN`ɾX RgPCuTxǪQSa^]ԍ`0dJ x#u2}QT_hIyyb@ԡV5i#>?~ zOafnhu_W|:⚓'Ctd4.{^þ;^I :LLK }!$I2ȫ'eo;I񚫤ʨOs/5.ƯO9E@^q^%$~2񛆖ڥFګ /{wim [s9Odsw֡3;Oh+ƢbaBܟI<2w2oE] Cx}@cL>cujLZfVFTUVJD6 lh*NEm]W1h+H$hĸd3`_8#m5fIň|tFHe7vejV3uvÙ1vt@u)F8bGliЭ`Ϲ13{ֿ⊛t,2NF͘:!ƇA@9mܳ`)Ҕ;\H_fm0>!7{ɊkMm_AܓG6kZnVuH̯$NsQ:au7ⵢFֱit֖a>S֧zׯQTlȽo~"AY1a|]^dl`Gebx{DGxD#ה&Zk6E5 st[ùEs}Ds o=ݾޑw[rӾ$.V#sz ~Mؿc=6~ [/as:;ۑ8c9{uܭv\¿Dw8w/t}-޽G/u/}츆\_-zc $Hgd"2:ězHnm=80k;:45H>@9bȷ!Ѓ)}} _r}vu'u>99T\C_g.z҄uES_{ՖDZ"œ).MtEo:f=*#u@i;Ńؙӷ$uV-qԚpm֕ŷ5(3&gBQӊ@1m4)cK<:h\NZhB^ec"s1pXZe,oCIbi!ů56+I Z(Ek \Y9֭hof۲Z!,g?Kof2)s̤Z{ވ9+^_O޹2aTTT}Cv!ngrux #m\.$+a fϜmCyXd߬ԵBmE.g`掆I[셒2/i|&Tia2B WqBȊ}AlMbM^zs +8J(N,Q8H.}}#ҷ'h-J-k[jY|2~oYtɇ?ιf}J%]D51iaҦsjڱ4V&)%Q2MF2@oie dm%1DArjZvkS[\M#'ђF̷yilb;qjצ닖>@MB4;f,6Cg榕pUmEqbw+ DFK}iWsb$\m=FĮ!S0Kbפer~ugGq t2ֺ.4UhSUŹ_z?#o Iy ӏC1b/.QȌ/!2:?YmJ-.#t>[HxVY>WDbOH )4BIKאϫ_'rw!ً['Oфvjçs9@P۔to~_ֶZiN574h9!|\xDGxD,7DK?Ǽy "pmf,oAu oKxRd~?7d~Z1m\DXmܷsnD7o1ź&c[_^[–#ƽ%|#}ki{}{[u_c?G;'q}?g[`݋q9np Z:x%Zs/SXp8O<]Ef(ʴAbH9}$-i}dKE[m,x*=83@ǁmn?R;>ӱ=Q#]V&Rmsg#C~%'}B'Zzf\{SMu}V<Wo=:'TҲ V8LWЏtNAINfJ@IDATN6'_S`O_L1%r;_OKYe5qd׻I|^0Aś4).3Z2\naM>N-'XYIO)ڧN^[A`Q]Ɗv3(W,qkfQzdD1_|$k=1*Z rb.O[yy8 /[޸>_&ߞc1;%zmk;kz(}<&Feoy5v嵱{ix_W9F-<{/~-#{o/;t#^޿#[^V8G5^u>׾}m(}o7v{`{ ޑZ,G{G{=wI#߱%:5uxF\=Ws}h[ž:~#T|qȲrӗyhc#IhS}a8zguyu.qQ8@4 (IBb+_}ۛ$>YF"I1kd )=1)F`/(؞o z5vWu%(lUTmO; ~2XK|A4!86}uWOℾ#0qmoiړ\h][$,ɇrh±h ?3uի̻7NmWWm^B}{3J[+ʬf.-1çgi@%YOc{U-TR~`?ٕV)cc ;@`N Џhծ΁M0i}=_ku8n}lvj&~E ׉Yllg:$ZYE,*iÆ|Q5c>4oQe Vw ̮e܃ǀbL} `p_(ʚOYdDжMa<\]T5C>05f?yoܷ6v:65؎c(rCPO# @ZpG6~msYhk,p|v鋷<{}CBY"LJ%x$v"QI@ꏤ|Q3TԎ_ {')ۼvݩ(SVܧQt yuJ)9'H־Y9`ro`sQC8&R|<%&8u.!0TyӏCհ34TCcfUeI?1'X,DTܑ+/}WW3,| 7O[\i£Jqueo_,hQs__S~36~ڃ٧J˸ˇn}SBVCB3l>E7Dˉ#<"#E)|~9A#0qṁhsrdE\̟sa{~ke,a\r^%#}9DEZ9i/y޺~{u #s;^cٳx9KK< k\kԎq.GkEs<'oo9cўc9{h.ѯa=OKx3:#=ҕٷD?P){s'+aB!"WKCr%~K=#Zî@hkH[EAp-8A s/{!bWba}yWrH טp.ӗ@nayh6,a=\~9p;=[ eo[+`8k9 =&.ozsZRr&ҫR{TW(D *}D/513QxcUޱȷw6mOE&E 42*ro16aB6f#)( s.fұ}_%93+!#{`o7ߪ5׏JbFȯUwv*Ͷ/5Z߂D@:Ұa.uCޛ9O’XTOS372Wd 7w;GBW|GF1>RW<+y(&[sgG#^moX7;X Gy6L+W ׸ؖI-NyUO{Oc.u,ۂۉ s V}clW`֊6?Azu93}Lq·HڨLUi32}OYc,>_+6d}K=k-s-rH~X+?o4G*J%)oS-H9Qʾ<cehyC \%Mb<C21^$]q9|2z3t Ѩ _14Jy}'j_zxZ:OĉPRb}ɹ;菉|Zmv^xYVMR/: G9Q:27243{L،sr^XX,2MmgkhU%tHiGa%w?}8kόQ9͘R;LI).;K9{^La~Bd5O K`˜$3dqm'yʱYo+(`"鐉{mmrT{8=SC ')qm5Ej};/!K#Oi~#Ѳx?"#<"8~tF-/3}mk\\sczI%Kz#po.ɽ8?](djz.EhX_.Ϳo}<\w߾o/s~/=qf{ߢcxvt}m8~#sl}s9俷}->={/]lߢK/SEV[%?Ny ŞhyWn$oPhT%gGsB8 A9䇨m1-9@*E 9Br]iPHi A];*qvPDlm,z)[oKacc>Lz2~e`NJk02=tsiw0eld0 a6'RhhE{9]'ń&+J< LΓm;'[P'Y׆<';q σ)M+=w|VKe=k<9yP'P?ꡭ~5* K)>m;VYCm6S-Uߏ%1QKߵ&"Gbܹ.&Z`1/I|jEbNxm=0CGPg.3LpLCNDX]JJr*$f}HkC =>)zpu#!ڍ:U_m;UXdԍkfYQvƺukC[\5d$(ͧ0ZPڶXQv_ζN3'Bߍc\֣;^h£}ْc WEyn$!;^snW&r@}uEVIX_G>)vDVЫ/ $G募`CK#Ixw{NL,Q2jvI=*2cT$vW2 @Ŏt.5K{Ce6b*Con@bqqT HJQV O-,G'4 /AɟC@|y#X$)\ԑԩEv A_2vۀ1~ D\imWGأzD%x/YUz΅1}q/,fotƎRts3Tʲ;%w=Z'YYC >qSd1 vlG~7/L{"8WV.q6n9rduGjaO, #3K:}'0½m&1(IDQ ̯Reٳp?8vK~hXKr?x02A1T3OC_#N-2'KQΪNmU$Mf$?bk?=VK}*-IKNr킯zޡ3ђ(掣/QwObD<"#<"E`%?-_y>oo#piY˗0[j~\8ƴu?>'x_r-sϞ ܵ{eᝣ s}{?Tn{=sy?֏־k_߱z-5V9ۯͽkغow9hG}=;ڻ{oʍ#?oe /hs 9ZBSLoEIzj>Jb8+!gHZ"Ke4Zo_їGh8E>uMu#djhyOEOؔN)5ˉj߸bCMeoPiJ$6B>١2*'R<0R{:N[A3JǗ,]طyٞlG/O;fZb0Աnl_*rdWǎ9e\r{ҩo~>c*gn1ϒ2Ö#mR'NcyOP˫_YL6$<Ҷ.qLϺ#es`Af<=PlLQɡg@W_\qhUNlWoeI$Z&I*[Ysi/8)yH;ȞiqŏśyIϞ5רpre|W@hXɤȝOIG&7h::IlZr8ZZǦs; !R=V ~1uܡXXW?s p? 7XN$h{26KϨ_M>S6iղZm91Nm(vEV]ָx&et`aX1-Ck6{ҷyţR+uTTP&90%i$D%C4DK>螜dXUcx_<+Ve+]o)I8PY1cMRO6c8*GHR^ a/9OSѥt'o6JTFr迴)ZVU1t`\7dxT >hc9ybFjMx^}2G4ce/z g4>}2ڛJ b;A7}_xflbEo??`%c#h1Ҟa>%%2`kэ˴fJ,ިǠVqGc:WZhC^hYnV:,fgKQhOV]`X1ΓTQ{4I$k&gi|Y(.o\xe |y¥`(viO> Ҷ诿kuoݯ07 R/fNΔש;-[ ]*TYW\ =|w_aMa~N^> #_ۍj{Թ$WL|k%l&&z3fƐ|&FQxDGxD5h轍l? uxn,^֞[{ X{k;~~mtoo_~D`O9rl8[{=7| K/v-5-:߂gr_{xùw 5=֞h˱Q/;c_-.aH/\^}C{=qN0z57qDu!ڴwr-$෦80Y<bxpd}1%ҭ{o؛"m],9ɯ!rOQQb+  upiY}z@>`uKY6ʓ.Nѷvl;,O>JJ04] 衠-Jr(Z- 6 أ`I$δ?* iIoIg"&`Ibt8iLt=\yIϔ}jv _p&f{!灯g&Q$49\5obρr N&f?d#MɡLE65Ol3QHy+jbbu.Mci3I 5luGk_bVәXuMY3G羼'?s$\5;yժB&vzl`Q֑dc =c?vmRyAm2['pRfjFƢ&^m)*Ѿmy!&9zkhJ|Sffߗ&$4?L\Tt0'@E@|5,8MĴ~lGzOkiW&!@?23T v&AmsA }I1;|a *6Lԭا$ KߌP~d6vOj 5=#/m?1k{PʦL)Iƺ:F:KVkxc2# к0liB|W}ox[<W^VU1̨3+,Ə!Lgex.#fc;=0EwH㇑@p6̎Q'Q=$~ƍB Z ]4b^(hK?]qkL]qiDGĮDKCmGc֓sK~qoX $kbVd1I/ {n{)HI[Bb瓹2SG֜A7Ҁ='nқ0ol] Ygv?k7g31zv}>pj/-[M{'Ti1;h=xDGxD95h.τ?8:>[^>=m#>qznFH\sc;*?=!^k\CaD~_RWǽG^+_=kx5ng} }0GێvGs1v9K!YtՄ6QT֎Ȗf}5Bv㼚$LyVh]+]sx{bWӓfKCmkrIڼyud qz'2c F[cq7hk:FfVA:]gx/ bSM;6tcKR;^Zq%,R y;{1گm3^,DcU1.$ir\gC1'xthtbrcPL[JF8k`n7%dI0BL뽌\Iډ*q5Ш l- j6;Z=U gƥW?}_iӳWDcWFYDs> ;,랠Fߊ'^I=T#HtuOK*%\ x0kt9gНi@X`}8ţ ̮1gZOz놸 Q)f), @sw0nC JŲ855 ULG+>xCzPl]cq[3A5wTsa*L4tFo&{$Q~8wt"ʙk6{-9亳 9Ԯaͼ \lI!u/(^OGfF~TBf۷{F"!y^ B#~F]^# 7B"yTX4#VBW2UХA$+, A@8kܫ֦,Fq!{5 nׄHw9'm"'v&?yNOAd0|w&Jqtx)A{\gmNZB.L:|! 5DQZZ~5h5 0?(ϽjҞo)&N0EmhLzc~AmŲ!nIA_]v&c Gy {Ⱥb7sH]g^hIG`={\"t/<ǫ {W z\;Oke_d*pʿ-f[cqceñyԋ_Jzn/\rl.R?%'zk.u-d^5ͽ>˿ǖ-,aZyw:k39x˂攼本m՞{?cccx^:>oSq9缽?c/rNrӧ>;>cg8U4ѻ/3 p,;dpGe9GKgU&d2P@EcZTS(𬓼FHIt)fkU$Rɰo>`~O sPV8a f$WShbaOt>|J=6y7ӆxjsICR+>`ŀ--` vĊh4j8E &> Hۋ#eȰUh .RP>vwDĢс-:"A(#_; LT4DShZ(tYH#$4z+?9l{T@!YY :N?Vtǖ#~rΏ\Q#K̑o-xhӅ`&Ch1cID 0P [+kO®7閸b߰\$P?d:tǔB_x>숌$eIe f{K41Hd]HZGwiXƊ!=hȨޑш\OvkZ 6Mt!?97û:^E0Il Qhi -UWMA"<e.QUx ZXM+ ʓ~=']WZ=c uV_쪹`5২m.j+|Տ`ѳ+P9v:dbν:4‹)G(fZrwsC.EZ\mf4E?-'I}DE{3Oa@||j\ w[|B" |;1H>wOz6A&V)2|ݟMv>?3!N?UJ9_ďE'P%u}-DWG!zaJaPe`E ݽhRұʛG>hL): ^/F?*=9rs%ู58D&q'%{0=*x˅ ƼWܙ_9V^M(Gn88OtˏO(TJPѠ,ٗ.c>O}6@._½.XBI.g?[y ^J| G,cy=+\ RxF7BK;%cjhD6/56"-vu\=أô?I^C^-m={"] ThnS w3{hBzp,sfc<3 YΥ|d`{~3~j^*߿W NZxm9ypmϱ)c6g[-.iq|#[-Ö-yʛk˛_:R9[t[zf瘼cNţ}=% ?g96tf{F]9 E+'Z kay:0vM8A@`[d@/Z4#OЧ#qO~ZHAۢŬu)u4NH7|9`[xZCK oZ}X'5j͹4PζDPa_"!J&sM8;?gP|<&kR?q@kʧKE4y:7>AWJosWHDms?cg*ӪMca%AS(Hk~Hq%b3<|‰8?uRPϯ1JhGve*ujmOOOE["a9!jGB@_m4yÅt,L7Ot΀U/F?ޅuuLY#[Z9s4,̡ OM":o 락 efk\]0/EhD> U8l}*<@LW]lNt9J }j&ؓ#m˓p::/ضS` #E4_n3Ek3.~=ΫQGqY.V^9H:,r:2v?1*ShN5@+:;|@xδy= ո%c6K"<1ޫ0\.uzzGWF1f;WskF ";.4"QA& =!0Rt6#F]9PyUvE 8wسE7a\H|x_)wY*]1nh ?z$(u|W K ĒPoqEO1@Zn2!))^@}3$ TH]̺(f5=|g#'5TgP+Aychi-۳dCh<+,1\#ȕs."O fq'_EO-ŕE_70:\LJW|/zy_.}Acw-R:Y7$V!r[&|x~YVύW$[b햍.n쐈gC-ŬIw[}g#G`={; -h[cZc1c~c]+c?1SxvF`5sLG}q_ok|_ce߶4͌oLx;okϽg9߮e~K~Z\goߒ?gy[-~٢ulQ-LYȥ gJȂP*N-E@&\h|%|u\8D8UȊL8|+T!Ct2@>mF ͇:,y"~# %:irmm@!]+rׇRv!.VB:N"0[d2xY:$ ي + 4K7P”Q|A_ ML5jБ:'E +=\[8n5_Lx'g2 \XW⇆cRؑFlI{A-b8xWp+ֺ)ebgr}3B#g]̩W ` H.a_ 9 ܦ&Dۋ9G/Sf_O@5ʕC<_I<qMJLJVn$2,y+qE (ٍx@}*R8U ѴH7&X7~ɃҦt <R} $'ac 1'V/PZC;jrU.n;:UyCJXDXK_ɶ1Yq$MYdFM, gzoʟb2G2/H/zv#lZ! 9G|l~Z[Z<ӟ*CޥrٷwџĈzѾ"F-7boW zTI5RɃdU^ Ì9Fby.-9b5`t+@G78eÈ>I7@)z?m.I܄^ܲr}ep"ڲH. "&W[hQDPTfvde #-ю5!H70 ιC|T+] ő%95)"iچSe1G^O#mHm(<b[6\}Cx#D2dfPSb*˞48ò d_ݶNS+i!!hHjko0K݄{U%<k) 0'$<̒ sh 'cGD/?Cn#Wd>B_]y?EvVot*!"~=̓Pt!f✱}Y& o xcH#IY^rؐ c ~8Xʄ@+x;^{:LvH' B -.E/s"9bR={#pE텖DۼĿO$zK4Gc˼tsu̸s<3>.cl{݌ԯ_k.^T|ErNΒ}LeH H a_!&|ͫA֧.ZrenY}m jء+/+$o|]j]k| 9Yakǡ3'Y<kEIL1ݬT$TFr\NRJ_7 9ęrDXӾP4ဒJDA=#J1z|XcPGcf̈́@xK11_В\] yKo"21Q1!s>dB)bK0 ei=q0}8z"QhM.-[4/_J4&CNcc1f1#|bRB?e2vqgaa^ISƟxcT`-Bw16KbMbK.2ߠٙ- ^c>#j}@&m**1wd74[7HX$DpPy5q^x †'y]g #p0ܲ.ɫj7{ #ܶzs䲺LSU^_kO.Wk+\sOnw#2`ހngYd]4IO{{4xp}[/Ağ+r]D(Ø"=%#H^L(nzo3Ďd_ >$Vߩ`_yɴ@G t5P_y/~ƈSH /clKѪ㋽ȑ 맧wxlLßBKEoo{#G`5=5 Zhՙcr'=ܞF9};n5>/8noe޺вϺ_Ռ}{Y8q\#=K\Jw-Ț^_bk_+{---,w_+o_kO;zfϴ?˹?Ítou[uq 6˟9gx˦S3cFXZ|u~9Q{LsSM>S?C\U8 G:$YNPZҰLHC_ԃEP 醘Ǩ..|&y|F "\B(?}hl94hϩ܂c3_4DǀZ Lp i{#mx@ak :Uf"mzDQ@IAY><| ~)nX`WzY&3D]sBWQI:?x$RÙ.)ChЄ4aF:=h}ʑf x^|CRp hÄx,XfٙqV%Xy{6˶@Xt "HqxW1yn|@~̀&Y:T_#3b-5GLJq SЛb‚U{|l TKn8%}.4.veok>w+P+ %LGG\gSkŢbUL\]]sshg?ؠKluեR! (sW}]˅9l="H!Zd CwwZ:ӝĊ]}awσB1kyt FA`b9CfZW@s ~ RmjPHU,䉺/oXdlP|l 1_CޥKuh:Y&OUTc)qZI'yo& ,oKN+REG[(J<%h& s> -A&ZMUbM77I <,/:^3dW$ĚoϦh~yMU"y` < .lRzqL=J+?<7uMm+_NJ#(|ҀlsQVzuzВN2=5,d>  |9&]߈FjA1\)Ű!b k7/*U = |;={#F 5Z:kq{N޲}Kr^{<ݙy_׺ߟ1FB@3%Yn3nk|}~u7~?k-H{KR]jC˛ʙ}ktn{-~Z-۷ogx5ϲfݗd\mqxK(k_+8k>%sJ~:?wÇ}ѕSNBn?a < $Pi|TpQt88 z=Gc3&F F':3Zy2}8@Jpc7)Xk9|: =t8hY}hՇ_MŹ`HƁc#Cu|)>?:c{:.KS#O^!nPJ.'9 #:!qGvhڷFe}E${D1'+=itO`aD0QYfKxI$S+hh<8f "-i9pd4:Z>DָX k6T)|ZBIB[Q`KƖLo `H.Ys9 o8FGo!6BoWƜܶ2"D_Ir#6"ť!̘.X5zkiH?EYod`?0?{EAO?ev. <6"v8Wc-9/d*I31WuqEHde5ZzM0 1WGmҴ؀UH/s=@zܠiBi}jW`Ϡ7 Y^(@ԕ06]!tP"k.Ym01,j/ÝO+(*^~~/azPճfC<2I8b«4\w4A.~:#G}5sJ;VjxޒuJg#jz:O*VW}8^7=~s`׏EbW~Yv9'؈'B(W4.5.)~˷lG_co,2;!0K3R1a󈆯M+Lyz|3e9r/ -9}g#G`={,7kZ-7Nدvns\>[:=_~};Ƨтa_cB?/Vlg) ?5>%}gy|n r kKB;5[l~YO( ӏ#Bgԕb>F^#C;c8WP9it8Շz+G8df[$-v3.cBX][X$:Zqˁ19̲C8 *a,mV9)( S;bG ycǤ~/ze4D!^WI %/PR@L3Gh7r(D\Z2Ɓo4HIjIdlCi>)xy̱.aCrU:~*{%bM'Ԉ\ d.~?T$AR*~gy$mlze6Np>ֈ[%m̙\UzP@Ņbֱ*"XmҰ)G 7΋B=taVG6OtklR"Y9F.P ݂#Xk6M4.ɉ 916F$KV)bUO/%k6ų2g>k( b6Y-2[|Mg&#ƐL9rZr*f2'k/dx\tc_5˴\a$<)0fi@.9@48JOAFj䃇m˺4qK0ʉx0t3,"=&nHMlCgXmE΅X/q@|_p[Z\ܷ@{{:nN@b\؅zMm^IgV$V,וؐr@ *sr$?]s3IrY@r> #׊3E_(>j="6PyGj5gY>BCTѼy\$E/yl5LcUj!HY[(Yb,qM1yx?EX{me?cSjS;H ʓ4f|+E bW-'^o~o<Üsxmo[w={#GૌI -;&7zkeQw1>c܎7#css婘ߑܯ9_вc7Xܚq[k}=o|GxGKʙ?Ef=o-Ϭ-v 9_K9Nw kpŻ}ݢ?ۻ5[gq<7KeS6v,}#=:qp؛Z*즳Ϛ[84F7 ѕÙQ -yrrh.gEj8<Z.,><+P ~!< zDr9ce,i(5fDHׇ~Qx0FlB>L?؂jH: 9HƂ xjب2DlK@߇604a(:dD6CCE `L)j+;ϾUweD`bPu"6FFh@4P#OQ/є"lD/.nY#+P1 R3XC U$&E; Zib%]E_Kcf֭@aWAh[\ARQ { ;ib2e9 wO2xZrm/8"'5zM[) [|E~L}zݱv07Q^h{#G`}ȥG^вW9"~}w>87{MEؼ?cydu Okkhי-Dy؎gn8;۰SsrNkum}-o˧|]jk˻Tt;o,RKl·cvhΰk8gYYޖ7par-g=uGƇv~3駏9Fe8|1i9lgd)66F50pD&-t@-htٗp"a$zAoyd9XK£CLc,Rbn'TQ:JNN2JNB/uMS2p_\RDD ؓ+틈}H Jxa8]#xNm\Str(׮[edqpA$vч}F1WVm<,5Pbj?G6gz"X*bcC2~]jlBAKDBg7/+&M땧GJ ?UI4 E슔67=pקX-9#|(at,|v5Gc2Ydxa&qPtGS3-k%[, V,%FN٪d6:M.!Ué=0> DgՇXYM2aIjC&Gp`v%XٔCsSEk" rqq!0#T]ēL );nЧ0#/ž˗K"3:[=qϧ164̲[@xw\zWXJmf܍̹"IWSc^ ~\̃ ,2|ˆV8Cj1iA|  !pFB)vV(G9kK`HLY<%7}+-I[& ~p=a`@F٬;[xg>S4ze /'}ȇ!"Eo4 KVcXmW}b{⫬N |z3DfE˕3ޡ)L3:EzLsӦ܏`Y i̟)D+kdJF: \k$ɀ*b1o(Zϡ AVuM^W<\&F!|DZlp3x/'m7g+EXoìɃK)X?"+J,A͍h?a5,5x9sAyRg^);skEz=?zѩW}κq[X҉>c;Ʃ?s|@!k[֗YEL%S@ňl؋H(ӈL8٭'|R)~~WcK,y% %W*.wPOi^XrJTk[zo#G`/}vZFz.ɉcr״kԽYw_.~%d'i.q7sf[Hw?Z;Oiῆkp]V_*k|u_"i{ 6tfY-6[v.wy|-д-uͰQ?q -w,lx=Wh ݏ?8o9KIzPR9QE(.FC"0L:B]O#EeӌafP@r90F#Q>3-40GGea%JQFWgZ.L`Ť"@.a+؂֡6sPlo 4ȴቊLKQXtJǞ^F!7 G- w| L%0ҔA,AQwi9t|T#_|_6XQ};'ֲkۼ@SVҝ=>F|PO\ؒ[0s8ޅ.oh'1s3 ZL"]G7[>}b| e8B/m[y 0!Sˤk@ӊ<J]}xnHSנh!oت<SƆ,0q sfHy s@c?DqCtK}̩M6O+vAaFR~ lt:>,IFd^\`غxƽv[qB;$cXk$O8s'6B!SD;Sedo+ږ9Xb(_ x*]lj$۪qbYö3jŷAYKXgU, 'P Wk~O"D)uY.qT3g˜{EWM|)FL'24l"m613'S#dKty2(0'ϓ U9v^F.t5JAM9 r8+DTNlwhb D_aAPھ"/‹,,gH./k}bχ_W i?G̾0OpiLQfb!&Ojٻ/Օm)%~P\#/?W;Uppk>+B~t=ڟhm={"}osBKP/%sڴDN_"io?|:sﱺ꟒ 9%Kiۖ[iG>yo{g7i/_?ұE?g{g9hg%?o~ L%19Eo Jn9qNh@sL1Y/f(kwY5Hg[m{ѕ"GnZC(l9àqׁF^8qT(&ИA,t+r%XFSF rP>؇OC@钤\AcF%4\}6FE%%vPcz O>2'YW~Z i-& JA+S LBݢsCCe(gAPrhK!=1Jm.dh)Q' aLW:{*3~d/hh`ޔ85ŔlfO4tʙ9@M2+kHZ6lbA۴oU30X7"5!jD 9'QqH̉aJ&1qW+4F@N]hZ4o9[9- k%/kK^@>֛'. 6۱ɓ8DgX i)@%rh;(pI[jc0BrlYgc RB8H|A혱+ߚVj(Rj ||}}R/+fg~͑j}&hq* ۇȊp^J amwM;ʫڒ F==5x>m!30[OvQ7ɱ _Rm#SM +Yc>/k(֑ꉟ"ۢgeV`4Z葡<`5|vyӺ+ozW‹˲Fk><_21᫣i#@ ko$Qun𫋠8ͲvUYcXه>j5;FNK2o]ȣȚq[956w(u1U0LUIA>ă5)5큆^IfDp B~ O}rYXG,"C4Cd8r]F&..M]4twui6 _v7-Aw U.S/*q$ G=+^|JSL!$,LEA"|_)$xx $z5/,MK/ƞ s!˭ Jc9-eS*e]!lZƚ$Q,O -m={8 ??M}xk|*kFd)9#ݵ2G޽"tnNYt,1'*y춸6[(āSZktJ9;[9K[N_5]_or.StzOkNxgبFX]gY[3sY9/֟--V<[N䶝3 Ŋu: T\_L>ld.Ml["gA:@lmBȆ1՗ :\>QbXKG͚+`w?ӓb(\I<~ (E]h2'utl jI\B:dμHIO_/JmrZ<).D<{z ~HpNl g;6kf+;ǦCw@C]DœGAmq[:j vD1Z۾"VdlX`[b&J*sͼ 1?.V-zK@Jv\߲`y0oFj>m3fB]!F\He_f1z)1R|P^6HA b/=n3iЌz5+q.%LQyNfY -򗿸)Ϻ#ﻩ>W2"Ď~,|tJB ?5~T2:?d]ThZ"q¾^ z(o2[x8h"YrɅ' PZ6c]e9)VB3ENfGJ?˘~'o7kTK6,bD>Gp0:.'x#mglhY5{ s)uȣ$4ҰD_b+w= lz6@ EP1g&OēbNq*y^%MMxcW@#2%͢ODjzRBdB(ġucnBPT}-tvFϡh•" `td%o&dف ߕ|Xv٠f-ѧӘKz=:3B{b71:h\?ȤxzZ@ 3c`ai% #| 6-P& 6D4S e\qNr$ YKqDqP}=-_mú@Lϯ)PZWTW~ AxGGY2W;XE#XA XԧU$jN7Bv̝85ݶGjaCы|Y[FaeP](v)>0;:Kwϯ1WVt1%..htI{xӵw={#Gૌ@j^hyktc99%E`kθsr~O1.a#>h|#nFT}~K\hjXn4Oxx3l9;|ߒ{زm{t_"l[3K`ʙoɞ/ճ%[-gr7~KTkmo;fk%޶hNsID(gwYtnf|Z>|EW\D9Zh _g〧h~1*yU$܂83~t4;7"!|D#5Z>B6i It$o7u9>< smZ-/'b^eS˵mt!o۶f!:~˧ 8`2 ȴ8\#ȱl&0Tu(a KFqL$> lvtx֪cfr^tퟎuIq3`x.ݬcM(kMcr_8Ԅ.>+hSy.áw&h?flPHhwP*اטk=ؙH ]BKSْDqIFkⓁ<5:7?<EOYp|#\}mױa27b@HG=UC|7@`RC&Ji: 8EE$tykސ[Y6` 69Ҋ=Q4 Jm'W!Ѳ2D@;k-H}:V+,BHj~5m>i/ wO{kDhFGog.y,,toftDQzo'~%`rcOb ~aAz̯XvqgW;3 C*3?Oy)2;&~tXeibYj}k&MEΛ?#%bk|&~ЅG^ǧ:NI<>R 1DwQPΕq1rZk?Ļ2Xٖ:1¡2qN]?aɅ_$8VSЙjK /{@ !I׸c39oAN87)&^1Z93"W\)08b- /3Ҫ!_m/ k.[9EW4-@y%J,,~/7ٞ)< {Q 1;&읊^O$R_|~KHD`rOϽK=eKHAgb i 3Ws\-xj F#AW߽ט@h4r(_}ɽިE<,/y_5{H. R @IDATOOЃĉcHN3{R,?]OI.Z6'Yh`+xbOA=~. @?p*k1Dl#G`={.xq1@Z&\߆-.óyFYE;#pj);+=ӳ榝K~8o}=@0ؒ3ϰV{ ~ \#[ܰ{x_SFzkxήKs[kgf?_k׶^VNߒ ??1)#>fw;gݍ@3<> cbO_?b%G8:qH'8fF E0l'͇}%z0ǸhBwF[$VġU /-{P(7_VQbh42qoyUc@HyXy oĦQEQ)2҇R4EWYAS  9h.c:JGMNp"ʶeG&X^>UL8vPk]H4{z0yOυOɟSׅw#ihV O7 5+/\$j䀢 ~esP{,«>m6ikW2Soh)(D˛$f!ՒBh!psybka EBK}/9m VL^aO q1{e>YydYY_V%20,.u#~ibY$)Q5q hm8~`DOZKR̎j^]>vi[̚B]Dl͕RAq$cĈB;C{S`)EoIGv:FRu9/md+29g Z~/_~-),E*E=!dejFu͈nOak$ʟ+7^p\EZWjV|c5X߀*8" |/&$:~<=5`ͯ<<).eea}-V:~+Ε#2z~£|ͱ {)Ag/QJu>=e=bt xclg^J6S25 O%ϑ~7 &J*Ml<`/Nf|Ip#A<WGYWqyρ^ yn9w0P5+@A}XEրdkDiG.3B=[n?<ٗbypA@9N\hxVb%'_ "rhwyU犺]p?j&;݀M Q73=O0v{7?'Z}E 3K~. ɛמ-dx>+[BS>#l/#?e'MdHZMtJ>k}*0 *O2[F%?͓#˿C;u7,#KmZW?-Z1now>H_AES_zz#G`={psO -t3;l8H٢?i\=D61s^đaD؟c\:W?1aBK! ldo_ߢ?fsEƽm[^k~c;7.ge~m=ᯭxԁ}iouKso)9u J)3YX 5Ƿ}3sm[xJM7 E730YR%vE7_ںkzT>.?-spWǙ>`ד(=\[f_&<}a:F9zWԚxl* :H hsx#3 LdN uյl:NY0d˵Ʊ爎L4Yy,M"`Tk:Em,pg09F1C,>WLVxOmkWK4lcIߔK,MFDz/c\iҒ@J6y?Ft![ȥmlj8GZӌHۡ*{Ea;O'B;s x}H4we~*F̟{0Xv̩Kd=™4kxk_0kLIhYɣ`9: (s]̧>4?S[1 ԰} [$?)N$HZHk\gH^ӡJ%0") PX ԆI>;"dX0}il\Ž_8V-CDEԗ8@G17~Pź;̣Q,4͢-`r(2ͼ?@Jq_E[&KL3Mk 9DOHb3&ǐ هZ!(Q d߮Lݟ6s`II&? tQmL}W7|^~%G:~ G?PGü-9*T%$?< Qt~ )=ydjuV0" %3MKDd0t=z2f#{ʞ%Q(̅\ͩB>B:Gҕ|蓊9Zm8?Ra"e杢mY{+tN-g9#NQ{ld=[O[֒]zG\}k}{ӕBK=[SgvR|ӝnɟoκ=ȹ-_^ǽm3{gZ3hﵲь?ʞjn;ϲ5iM?-|37|sg\ug9g#~5Ӟ|cW,T#-NvA|1ZZ@gfE +Bq66]bX}h'\ S![m'CwN먘&ĖdMk@҇G{\̳+!d@> 7T8qC%J~ GXY18fx*]lC&2Rc0 $EG hr~`)LL>0t܋gXqIz!KIϾ̃zJ}JڇjGVQ>71=ua K;tݎ=-07+r‚Լ/\ Vr'l&qP{Gj:Q] _\W PsP_y$XpV">'&CCsѪ@-J#L;U0 \$Ґ^%{1m,Y}fY":+`>En@])h1C>7`N+5bʳzCƷO 3hw&`Cbyք<~ZH\NI?Jr5zkuz/9$Rس2G.IM\T0{Dedi.<4DKmb/L ^HL8?bpnQ/K=͌y^y阙 ڏz >%|վa'ːDŏrZM( $sR1^$y:Hq`vk-]-E8ɤ3"JC#ۂNTW9NHvᇚ%^$EL-}Ihᓼ8~8"(K3,cpAXՒE*98)J<˨IxL&=\:KMʄ'&@+6P|睃vll8dJس.5\^3LM1?x}bD0A;&'Eb=Ι>Z&?T~EAy=᫯3z/;T{5p_*}Grk!mHL2@bLul49$>! dOQS֥(<66Ew.\%ID}EѱM?l|bClD; +j‹-kWۓØ3N8dcr'/?Jc'gb~v9+9ؘ|6QX?%nf#G`0=΍ -{1;Fq{=-j0|Ӹñ|Y5s0W?Cwo-6[f\fTq;9ߒ?m_ߢ{xs/h[Zկ{Gf-622gkea}Iv ?{6G1{a[Y֑oC?~B|u8,pc":j>ՇgEF,-9aև|AOހ[`e _98^ue7(4I1{H9trcq.jl>ܔ逓}DL700l/t@a\鉡\rhJIq ؈Qc a4}] &% t@.2Dz`%,+PxV> &>i Ts̿88m`s|!ۢF1@vVW:$w$0zgJaZ Ċd~.rOΕ{o'G\a}jG y7iYo7#5CODQ]@1tDf2Kd"BR;'oPvz8y?ѓQbwY2*)':p]]u`n`ht?!]؆0Wza^@,f4P?(#ևcBK[ ;A72ֵ%axnڒ;/I'2[0߉/^O tޮbYG1~~"7KTkh {f IF0 X ܜüW U!J_w~0R+=z I#cA|cl;YJIoM[Kz[&&d6_"$>}~t,)?$B(%mc0ߐӎ"SS~ǣo88h< h .[tǙqr&foRE3AN~5#gߪ 8[:/D==IےqĜ5N NdWA]S4'vն? ٛwM075/^G8"pDW>=RD#q9YK=g9ރ"pçX;]߾}{$-og\Hs庅Es=7,}=8̼N>ڿe#Z>_qukkcl}l9]]/TOonzm;iޖX=svlsY,sڕ-pm:,GM1[|X$R"ID$xhL  Gf琎"F\D:g"y2tNr HuIGWt,> T"pr`Q7knaUDI!ф5Z{&pDiJO5JN/ye~btK$aSϱggTvtmլ7xpsa*(XݒMIe4fsmh3)y>U/w<p`P8N4bd0%Mtk_۶]F 'j@+jz<2$'{=u Ekqo|+hA5PG*9Ğym7)^׍87ۨ$9zT27ٗZ ynER`)_M>f]gg4I⳯uIk{[TKEUY>8PbƮ&*;E~;MWĦW7yu|D$>G8"pDq_z7}Nxr#@{lb}P?';={>M14q{vV_%}ۇDKutl6ʌַtlſdg麅w}-qǾ-[[xu}s^dgfu<";Z?uv?q۷^g;ŻF~y͗ڲ'ɗ-G]g_L-<"Eg/*taŇҩn4p#DߥϞҬ 5q /<.XӐ# _7$bye@4uʬ3-ad&aI|)aTЂ(Mń:FJ 1?gV,e̟лձ5ؖb/T)81Y O"^` *a, ,=ƅ?2vѠX#\3AĴݐR>Z?XSygց5Y2s@=94Nb'6]~K>$1ODhg)V"_y, 7RP02UBOTg<^s;Z'Э:Ta0}n3PgIdoNpb/\=nBBGj} O0m/_]`0L$vAbHT A<ĻjAc<zNXv+nIlJ\dN:Ă`;981k1=K|m_c$%zDmqZ/y/a;k&\,+օR-;s_(R|`O7/AREn1U4Ǘ9EĚ*SX4nHca[-H;0H\rd λ]6(Qܯr-XULϲzYD0Qc*&@Lj1.jj?\uD'U==;%&$4@XWVKb $X[6/޽Gc!9ż ZP5#Iv_%K$%qL8hw?sM8Fc+؋$M~&VoJݗP$oG0,f a3\ 4{.HcIRBPa.UL_dډu3# $d" ;GR D-v3KgLkJ_+5Uwޞ,K U#@ګI}{D'.Nd7 )R]aaGIxs0'X?ľ9ve'{}#9ގ8"pD#П㯗8-evέK~_1c~Omg>Q9ޑO{~c5{8`/BԵ2o>-1\vln7sm}KZs|3^{ęyǾQdžKkcwƛ,3}`\}O+(9?϶EGs9v} =ۘݾ:֨άosz{Ğ=ٽl s?o^o_-rt:|q>ɑ =?icUQu]^P>&*},B:p>괖vX=ճ[1"]ɥrh~!Pd~,#0۱?/Tmi{\dYxy-4;5Yj$ZrubGBL~$ӛqPC G췚$JxI܆%O?x%UUMxƚJqY_,[ZKB޶XsNX)KMR(+G (2DKq"<)Ӏ5>"!~{Ip06X CW>zzgjGy :m)$ܿ?h'l}֣m/[i2^y.1.$ pֶ‹};@mt}elq?ŕj@?V}l?#G8"}E?#hGp(7i\c^kd/{O{=Qߏqx,c}ZQZ_۷p$Z-*q_mc} }K^q]na簶R_]a\l߬k?)[hR_\sc249}ݿu=g=X[3qmss\#w Oټ}׽kv{3?s{OhDRK zXstNpt X*q@ 9`|trЄnuQZU_Moh!!?FѠsHINăM=8pR#U<[$P[|\,r4PwTyY,8hV`#!F!̏ODh&΁7gj ]hqLkm_ +lH ^=Qb*RK k|TwTZ%hyod C؎G1`rVR$ dwLte!E'+| gu+:v( m*KAg^DM"ޖv 6R MCw p/Q*N'KGeh.տ(=6)H3Ab3? ݗOBYkj d'%T(Y2ʛݳ7-< dLi&ºRGC` j,Ij58XIGCĺyD;k_%rU Н?!vG Sҟ3_t); =$DɋN\!iPIzHDRmJqOu_Ә0䳉 _#nEDY%  u3#Ɣ5$8I4aYk%4^`h CG\bI`~\KV]8?P.ԕ> ]zJ>$1V Ȣu #t^Z?PPQ-q_ %b KGWGY7~{/Va&Ac0CT[b|:(2R%lz왮%$̸=IxdO`:3#޲r:) |L=+!h \R7PSh2sڎ =$rCm1OqvD.;<{Y Ƹ<U7e.Kw'w bG8"pDW>feƦ}CqfF-ۧ/%fqsx{?hE\&!`:k^ m>\.{H@+c Hh9~q5Z#\&bXI&+H΁^Q 2NPp yѻK%{pxy 0ߢ{ Fn`бĶ~X1|-xN`clIr7)#~f]bOGo\=&ūp,LD[DY$ԴVz,!(U67k5Ec5ʋ`L9v ad-)o#ђCw㬈i9kt̨>54ߞaWTJTne_:a~30F Nx[i$%<08hi%o3LًWzj;H^yj]wZ6bw~(ZC45W@5MӛVH/놯G۰AF3 OCw&4a\99 Z KSFM%X梥Ar+Č&o6-uL|/RZ""5UW2SZ2Fb b]%&j8H"&$>'ɃDK%xd8իd='7/dV;մJaFGnP:/kW9DnrOc:,^o]=h_& S0}"s+LDFEut=Ɗ~ c|CBϞ Nl_'GP`s s6vN:J C[/LnҌ.k6? O}np;DX.o %C>/qn"$T-$q53\W 3!V1c {/g`wp؇JpUWIHKW kLcxKhd>1 'U|x>~H!-uc JPA_󢧹p'&'#~o$Z'=]cS !Sx"1Nu7oǀQ=s͛40=O@jǛ+t~DH+gzr{2'=/2V=.\bt^%*_Y\}_#@?kZy{XB#c W D:-|e))|Vm)]9q)Dq_fy q&%|~t§k?M~xI,}%>Ǿ #)0*_q E>3*ybf?p<:ގ8"pD#GVe>}zN9~FK|j;(3b?ѨwԿӍnKʯy+>[qģ-srȎ8_r۷a`kq*c =S7+f⃽AG`9>$`ȰZpIF$j-Ur3yº"Vp0O8 3OǬ@#ˁa4hes0# o:w'xvjΤmzdd"A`ˡiMb)ER84{I C K2ԸNkK0*m-*N YA%]/*kܳ!mfbioK١k}ϟXR>R6n[VsM?jq,mQdABw ?T;s5g XȠ`XĀϊTݑhG8"pDW.F}|;}c7VkpF-YAz"pn|yp[)@IDAT=[ZFxG~)Fr!Ƙ}!D\Gٱ>mxfs-ͻ7ϩzIR,7Gʍc_y.\c5<ƿEeH3y{پyKg][|l[:F;GޱvMy~xg-mq8ϴ:Evqmo#3@&ZnBHWuq,:Ʃ L1`:>vp r`T%rin} $qg6XeOe,^p#m,#z |rN %eIa)I*R,#$>XB{b~ƒ'Htoʡje<Knѕ];ȶu6I>/dQCcF$JtJNaCtx c>Z`rx"W\l=O)yR:\Ŗ aڢFֻimV@Wlu+]{J1bǣrn3ADp|:VD>dv$PܾBC{ T)BVLr"-푭֍OMѵug 8^?K\`[ v-1H6{xy# `e4h7&Jm ]v>()j9cIq@<.{H-$2J&:tsSWIg,_&btӚIU|eγ.Jꯆf^lIJ#f~8уq%|V%b?`1O=jj62'oyn§Zzğӂw{V">rK/qWɉ"~ٙ"yc{gt|XJ!1wS?vw2;Uc.WH\'(OTӲ ht*;s"1$<9Kf\DW$  IEe/I$FE'x#;-M?˙<֭.ւa-1L*tl{%u0o)xzSx7 ʕ#kbQt/G?A88Ut|hoG8"pD #DGtks~Sk0f7^GG>{Q»cKvKg]˿>U1?̋o>4=Dֱzo,3xѠe k?W$wنYgnr||esff=3omߪo*[6m[o_o|}N~{34}OYϭ?`hXGf=&Z+?S)>3jr$}&% ^ȝ'I`$*g@L0a&R뾰&0i,a~2Cx82b8.xBV'6Nd@g^%#]tpV :ȣ‹:'76(,Yǔit8!@E~nNZ=Z{64|$<DH"Pl8c1CXI >%>S xRcxzWU]#.c®g:6 e3_;8KuL@1&9|+\l-z07-zWU%>ⰿk̂F79|aӏmvOZf:) į$6,u3XY̳P>IvlqQCڬBkbs+c߈CsnbS€gۊ)=Aan[Rk2+2mtE'sy7XI,>'$\턽05OHH뒄f{,b-sc~trS1/ȋVQ1Rgx$E+Řΐ_['ʾcW@aAD$^$E ANNX{1Ҥ]딧e_9'VIтcx(qU$¨f,X]z@cG=FG81Bqg$S^$\~ڣ't74}3N|m!@xY(md3u҆?ɝt" f}O.^7Wď#)s3I}NR"C-YQOJ Y/C()nbY){ ۳]3?EbVE*(X1,QHPa-(`}c"B B{{)zSy~Wۓ=$A$-'q߱.F3J ER(mٗyXD7sH=t)OrCo[y!p>21K}bBL+0ks/epc=Gb589E=)c@0P?c?I&$)@T%a7Q' +&)Uװ={΃:v[21ur&'##K%;-H)_ UvZ{onK`?gkۍw {1}5?گr"'/ǿDK2;%vBdN\8t>e Ù E6<)` ,4]ŷ hXy UNBu)lg|raȶ(mh>ӕAvzIKҗ$鐫d'0qf5 Ɓ(^j/uhJ̬/͜tܦD㈒ɉ~Jo; x(Km˺}PZf =zxIsq0ی@^SJ%.N1dD SPF^@uANR5s{|N:FtVc^e. Iit2r4olfMZV KFfkQ]7?ॲ8əM|ؗtzRDDb\oby16&`Rg#6`3ĵ|2/u GK֪~,[&;K%띄z?;V%$QVeVhP/u|psԝST)@VƾPViq+i!/l]1Ԣ[#Р^Ts}3yP? p%y4`my Z7ҥnU&DUM@JțlDe'quoя Ы_t{#_<@PqГ_=%K:RZ+]Wgz|M ߽ӓl<,1{.I=r0x퉃< -!Bz[eV,hFKGl/cw/z\LxkPkg-|`߷D_/Nu~GPK2+.ԇC'ۈ;YH_9e^DF U# |/y1X'h-c`_#C^jcf: :`cY'~+/tڂh!*X/H_2ĔѱGcA3 ."3Eh?(99)[wPCr'2+Bv0S]Y"&S^E]zӸU|iL#yƈbbHą-x"zyze2;#~f ؂&|~-K_ D>{.¼$AAx눠䘾ݿy֘Վ7F}C)X|'f k쑈7@n Vݟb=u{zTCƇWq%):Ǹ %L1!8/(G8"pDqG彑^h{x B9?:kߺ/_/qIV=/7e{q2HLE{(1ڷ>|o wI,7tKk=GxZ_czoosut[g风K3ݢ[|]K~<*?xMkݞg>f[ڭZYl-O*u-8p>B;jy éH|X#&d pas*dJsͅsB6\%:VÇ'snT;Wj}Y/Q0}2ATr Ad s9C&C H-&^W#E M2R|9\Fk''&1.q!eĐ]>YrX b\DNT8apv hN5IoM$m6b`|&4VI`>x ~`:T˱/™3&LHµCcF?xf>/ (VrYs%y_Zn[qXJc: ]/DX{{p_&P7둤 %hq1>I)l+3b?~U0>v2Lϲ鋣e?6ߞ:,cM@Xh9>ƅP #kuH4хEl:}7<:_l3ELpi`LZ_eWZo~h̞^A#jR2an`N%rΡ"B}5@I#VMc'1*^\1dљ WƔ6>O׃D1xHc Q10X>`iS)8q_"_$ yd"6@2efG vWM"iO+%z "^*LB:h^Iy0c- B'y=;A\}M?=aLuABq /t2 YzD]QןCMY%9`d U8op3/yXyl9|^u/")J RY2qO žhkyIiR{5_I{~}'*O^sŜָ!FOzV9XG^_L*aYO `IŞ7"(ADw*F`iÓşuC>k1GHa³~/I20ֲ?-Ј%̿Bg/|S1^?_>)ɗA;ك`?s(X%YNMx9 &uׇ*AFwN<$]Չ R'FOl'>%¡/LO/n\ =LB<":'#R9#G8"pSy&S#43Xtl\ێ1{tn-ދw_Vq'7q8h.Aq?m8&.Qx F!^.ͭս\ro}*=M\ˋP;#yx bv,< KIqšZDaV9s,US4fs٘Zlρt! 2OoGyQr"F8?I3V8@pdlBϊGS "͇L[R S֧q& h:!%!vlw,#X Ug|7~f V8j-I-i>|ۢ]?@V$ O%B`{t/J b/݌\o>DFĖ_p"Qz*h\fWoØwCc{s26*Q]T~\®. ȬTtZ]KEl&h%kD E5vxw̬1!i6_ɸ&"U1BuUHOKC#?)\.>1%לU6m<fIY $*< I2mY,L%X̺ZdC*0P;_|C_ʣM@iI c};뉡\ԼɬMlM)q3U{W~Ƙnyx}JvoKE@S1}yROGYvc[jAj=~PD8vu\N<N&D6qe<' $cRG(j5lԟC0$BSU [iX>{C[wS;"pD#G,%H3p5ϖYyouDqqOg#x=9c})i_G1-k]#s [|[ن{#Xo-Z]s_},ƽ:onŹO_ci|iceh7_g4d6czε[\L?ߪGۋ%K_yqswCؾkonac}DW%':Sa 7U:88%%29iBBp|qJjNpʡJJ~ڠ'*rCD,W|"[8u~C~Y+#TZ&L=izAW@tGiiHXuiLgZ8+Z:1>d 5\փi\lZ;rh8[v9e:Ro!Aվ1g ǧnH] 뺨5$qt鹋)5tN)"$CiNz3UHHo܇w lK8 a,q3GqrL@ lcqƞ5=(1gaM~!djNyJ!>㋆ޟA b+2|1gADSh)Yp .Uu^'+EC</yy1 o (lںc x{H}'V@yP#iOcj{_%+ᦋty)L`) deZV/q5|Y%e)JS>KL( Q/ CUUz򩇁{ Ɏ-<0-eKL+{F\B<I -֪sb^tPyl-<}GS'XI[Fa8B5V$99vѾ#y@Y3!SGbI(|fg4鰏Ib3?_~gA' #zg^׾otg9H:?;SJ5r я[2L )|gYaO竲xXpm*}6 0C3>q%{C}.H9JHWow$#4xd,]%\6pPWzSDzB؝<$~%ṣ8"pD#Wy~DH_cqߛ?#j;b/Sۏ?ww"{sFĨkg<[r[--5x.kx-{\׶>{oc\>lemO-?㵞߻qp?o9g9upooK۲y6cL=]cèVQ>[(GTW : kRU"\x39ᩣkYaJާͰ@'\pc# bg;QލO$qɃHw)^_ȉR"DvNgrh JkuxMKCot5͵9~S{ꂰIX` X4%_J1W"]e8a DO2Fp$&SbSÕ4G~qN'.SH\ǎ,)^0xishK;~U2ׂ*TaNPr]DDQu]m\D_/+>ա0$b+/1زAasŘP<#|ŋer8~@aL1ڝwu VO Uڥv0j:"X9nEPDdAɾInbdC)|c2M Kdk zX[N礅E8U4)^ud-5t7եu𫃤8UuӸg5ޖc8/* ~ybڟ`GcJ??Sl-TŔU@l j&TKO?]WW''ΞD{%ݼ)djHFXgKwO4A*ti#PaZ0$ft(XHGq_C$^k20|JcYO%'녭&5!kj9BcZke^4ŸJX2`'LƐc[2=y C;Iqě |AqH}IPSϢ?\zϞZi#Vd-﹏ƞ@sclee&zsYE}ķ|p6!00&؀$ؑ;jb%yFW{78F({ܐ6@Ec*w=Kzᰟ ^XLLQGWF'}*f>0f, 50%i<liqIKS@j' ǚW9ۓ/~Q2b&j?#X s'#kkHE20/АNuo͟/73ɆٛUK]=&* $qSg,<6ślR=s|_;#G8"pD!)K9鞸z"piyt˳:z;ho&|1 hynL;{wzIR_]Ӽ\oWf%{ml{g{pnkK:Fۢ],g^nߋ7xg;מgsrg}[83%.؍y-({>㵞M,{3ޞYϭ\>=~%ZV@j9I1 7$㳘0%d g`pÁ膷eWIJG:E%qes}auۅ~WeroL_ug+ZJ+j%$%,L Z%)ZNv܍_C=(|mNMt3:GMᄣ%Mlq$Db͑"Ti>TAl뤕ȁEW&eN_H9|u"DلmO xiY653x_Έf{.4N܁C;8aj=D\ +gt,m:@8^~d5P >"|[1BWUQ .}`-@M8P@^_n+#/ A h5(X#aALu}VmHso8"$C%)eYk_ekwaWRgĊIRg ; V<3є^%ۗV币H\-nK F</"4ux CF505wxUqTAI&ް&-΢@id`%DDrO?$14&I&R sEScCIV?ߓ[O׹vg所@0m1BlUoEg=2m82&6xO!I2[ЃNy"6U|g C`gu/1ƺ cYQ:"ro=3rbTɕ8ł{==`#Tk[8X}Nj&Tey"&`]"~zoBȈ3sZIo+±#ᖔƲKql2a/mϽ|E/&xǟϺxE?c(#եNJx\C#F.U늭gC̕$cMՋ7QUdMh<̫Tpxk}F1aGOSR'%v14Kg56y h}%:{%<9s*{4klc>X35%jϾֽMOY)]yj$1O*b|LHJ7SG'IZ(97Oe,Z*7.4.4V61x8՗l(DC bk=/^8.#G8"F 77[O |ڙc{?>k'Z^s|{A9'wx{wzIR_]Ӽ\?5cGؖޖGw^XM:ûo=[gg{3={ośf=g^y (;?s8uoϞ={f vXWϖhN؈#>b EvjΪ, Vr}@҂OtU䀹xۨh+; NpΦ:“{xTjئ2I`XGW7VW'uq|dI@]eD]}ؐ GU\ t08DN˨aC,X $x Gqɡ` huphdAG{]dLksՇNj>ly`  -zZ"w`.|~4[Ĺu2$@W%cxR;W3yGS'6vOqΊd\\1=_EP}cKH65N,Ջ~S8Qk'U{EN"ҙ'.ېv.ʹGd!X8v'VskE%X*-'BkZ,Jīs2`rFͥ^Șˮ*~@YM|aCwŃ\DH?vωbT7Ll +]S%¯f1G+b:WE ΰL#Nc.@VZe/o'ZOdLHȰ*msUM[y|bCHd!nA,*\3ۼ[H7+L9Hqɽ#rzFb䴕r_ 5d1F]c$#5ITvS׮yBJO4(ȇo7VCvm7S# |})F˞ D h=OEW~xueOh9hW{$H*[ K7",4'KmHOw+V3>b({hR]< ^B(/3~BpYߗ ۪^vK]ZV!)~9'LO[@^+{cQWzf\/$ƚ:2 (3lv`_ x v?I¦ 'e ~) ik}a j<ށ䗞dH1@b\,SE$O E/vV|>1O]Ŏ) SQ {%M̢g3#7G͌:q$]$KwV$5ig72 Z132wG%A;#G8"pCDNXD~N#?Kރ#psqf:';[:b]+3c|#6f;ϭze?FR wI™u\yڳ{xm4ouQlό7{YVO߭{=j߬O^?x{6]9Y%ޞ={{6WgK~ΓJ0RVNVLJ>>9s8D}3gHN&쓧à ADkrE+Jmx])u(ZSd; vw#ay$@UCRE|+Av 12NBd>?U/E wPQ"jQQzrYTz Im@ZxjL7ǀ}H*`|{ BUaE_#~'FȞ΅tF}Eȡ~jՉ*k)\gSz~:LQnd7](OI|Bɸ_i׸;7]6#1dHشְ U™:"pՆA#I6:J|I6ޥ=QHR=GxcƿԑZb,|d-g$̨OoY+|P){%h$/aFUvY쑼SoRX܈[*"f] 뤝3B6峒43)ЍzaJ<_7^O/"Hũn&Zp<3LP zQF_ΈÆ ؽ~BǶ=G+ d]yOq|ZUo&n$OKGy/21; Tf "`3ijyaq^Hډizn'YIsLǟ,6-?is?Q+s1!rL/f.̹$˩OJ,aen[^ 7{V<˼*]IƇI98ިl`>O] 6?kxI?R:=Cr#?Ifx;X &A F,sb-vZμ$I㤸:?be2_cd]2,F"!֠F\<9a{ښD.ZH1`{6Q5x8:1y'I{G!iCK56;M{yƕ{AL$b0a$ϲ91מ8p:)̕Ir2>ji*IR_ahJ%a KNUBKRцVM|/~=ϓov/OR&le{6에d^'W' e(:&E>hׄkpxZcr2Sc|+ҭÊѕ8,* $ !X^袍?{&GgU ɦ8+`GCR桪Ҍ~d_~1OGdFD&$"Kx,=N#sh6,Օ+EZJ')tOSOq>[E|Pգ\m5\Rf<%9o!J+v`~^@Z8F}hUI _qf>mڀ7*/OmI,}ca$DƉex2)kA~iޮ[4xsxCOv}#/{9 Opmh8k#LoNUf|x#@y*i81틬9Af##vJ nrV7.+>Ro4~:kJ;=#p=| ԅs\;s]מ?WޝL\=~{{E9ޢxt_{8Ml蹆gh\qZk.ɽU%ypx:_;_7GK?Z%G._C{4G{n?$H=l?zVs}ѽ9>ɝC;ssGʕ~O_no/Z&yx5L_Z1I+|R^'iL&?ۤP(P 嵠^06FOM2W&PE O %2̧M&S \oW _R[\_oE%@2:*"rJW_!dz3֦ ]aj"S,e<=rP l09lMck_rtIثsoJRG(ֶ&(U)zI0o&!kr6P5fwB M4:WfS}+*Pk=xJX*0҄z_]c#ei330c;']&J$Ӽw&Lu\@9Dh)ؽm_) 9WCv4D–S^擫LJ-}xb|18uXTbӺv NSxK&e[^facm3¾jT!GYc/t7k4g~ތtm\ ~s >=YGV/h$aK=m"ԗA☡ - 4;"[th7VYЦmP3٧ͼh#ļ7?*}\#TkY69#ЅǶӺcokoB`񩴯ݯyQdM r~ ~zKĕ}A+ d S*$,K>Rbg1bpg0ޡ({j@5f(bգħD>@V ͞}peXl(![4|KsֽKԑU_i?̡egy93֢$.N-/̳OO\OKq$GŔ+[Ęy_r9r~ ͛׿9te>% \3ܯVs$&WHRL(;P?2Sir6wkwCBBw! dw?>YYK$__#x 5!ҳU|8qQf>J~c̙LlWEtVkSO{\;+@oN>tOB z=#p=WF`$%@klUl?9\iF; X6IG'^^J 7Һm OF ~䊑n% FFd"?KJM* pDsJ?B7 k.:DpS᪊T;f?<`cdxvm0B" d v/)J&G38sJKBz(ӥȫlY4rNG͸ ;he?DJp6ck QoŞKUܓ3k8|FΟR0%SOz 4fo.՜%˩~81ڂ71~xLfY&Y X C_K{y<"7Py;6TbC%NX|qik"Ѷ^sޑ,Mvԉ|ER=";zypƞr^1k-_ Ү{vZizW[9X1>p~ϕV/W"X,w.}WsOmMT631jGyN` YcْJPty3 {N/ ~%#kFK_?v]o)2^)xJd[DNe >Xo_D*mR_g?I-!|[׵gH?73_*EΑ_dI9XFd (ET}灡#wgS&o~C3+Ot f3Λ:-D% (U(, @CLbl픪-?$yvhJ08>G%RKu-r5ez2'zb#7X-אeT{wW_-/ v;5]}ORfwU+Ok{:S2}.y3L1GVvΫZ&.'Á$%u1wG)BK(r6!Kn.쉼BO4|t .2 =6(bOl7Y5e1=#;{\Ze; e&ªt\׶=t޻@W<MB!sti4 Azj1EЬ};<4ϒ?WEl62̾cW26h&KOܦZHav*|ڙde.iӎϫH -ý#p=#p-{[xSh=yCsM1ϕw;xj>s߮#p](;LX\#ޯ'_[?v1~q/)%kҜkh>kl;w`O?OuU5gUG{s>]¿GO5>tCs|{{c~ߥxޗ|=%l{=s*''$##_A[Yx7;SʻAbh3aI,Z2Xw6$Ya|2KBWg :Ij1t>-<,)Hi&$; ۀX`T2/,Ri'gE{ڣAh'tK#==)W_SN 3,ekӜ=?ZH *3=l2 2,ҁha+ WhY*C=)Z xy>w<"/-^1P̩!35#АĈ@^SZֆ{O@_h7~5|uZ/u y5]fmhPr8zp9)EZO+>eZ+G@[ZQ}#_sh zl\:kWm~\t?s;G (+;qVF2wI A!6tS t~XG|LAC[^YKY;',_{ _7mjMH-=csa]%/D[h9ۼꓵ]6_ٟ{6tmθ:4v潩}E^fv \g"ܦiQ}v=#p=D`n}e=}ED>_4>p9=wn\@}A.K(>j -/ͧ?О(=%O:?&1S>&Vdz)[} SwwuVϵtV{:~.w9~ѯ}򎰣Οbl$#%G{Gg{DdvvtqMgKZ Oi|梊.W;Γ~k#C_|5;O4̭qڵ)!ĬsM{c1kbh$SD!{v*{5䥉Pϊ`FbaZs5fSV~>W<W"?&+#6oάGy< _Cr9y~)_Y_nZ~Jbѵ7 Cc8S)O+þpU{&PB8e Go+2hS,"xdVx,n?iajy?*U qf A>,E~R %-,:W_{-3 FN2$DDѨ<΂25מ8N6(8]tM@A@}e 3 Կ竊ҍTΑ/ϡ|6ߐv;JgղkcmV4[/W_2gA>_M~ !hwtt_CQ82@9j2xI:5#a1QflRcq_@cWZ>QXbD?ez"!8kv 3gȱq}硟/0YOmXWJa-|'-"'<ӼOFqprY||;ۦ_mo'~gm?@#wY cS9F)r]ʫ>,Ĝ G֊z-K@"Њ6a. "gvƅmFSWT 2ޔKg"Os l!zx GB_2cx9;̾C@Zڎ(`=67}@ CyGy=#p~癮=UhLwi?Ӊf:sV`)8c O1xEqb|q|TsuOnu~`< 7>) wYk/ȝǾj-:n[/c}Is޽khny%vlUϧclGѯKx22WhGK>PФW9$Lִ}0*rȀ[I$h<6(DHMHkKcHG^[rr]U6 ,n&"^TEJrk bj)Io$ItM,5 Ī>dD3~PTJ\'Fn1DeDZ8H$<Z:Ik&0o*(ڤΦ/m\uj9y'M6ės' 2T$q/C96;X [6æѵcGQl2Jܴդ󼵰"GyIJlܵm&[mm41fCE/x[Ӻ1drIqiXcaׂ% UaRWmM{6'9>eaF3|SͿ93a{Y`~=M3Z-BtmvfFtĞӅ9hPl 'sG3mdAkj[bGh]c»ི5ܯO@ ^;7ABPA)[X~Y$|`/+Mtmnɤ 6Տ 2DI^ϐS,Mx^ڤPZⰀtޥ9Z+yQy kw)bR)_ow<7B"iTacYk7F\5 x ˽SgQ`℟r| +wv| c#G55و9LNsxqB{E2lŀ}5OۍQ0ZY^v/s. WAә-gx9]_ɑO` oXD&4} 1{9$tnE}~i'3{@B+MO)oqϋum*W?S%Ǻյ1iʛʥЇm _c6ȑ"k/Zø f]d LVGi.9TT( k\-jތ CKݴSW?$2FUWd7+ ޲gShXs?q8a=9Tɚ"?O=2e+w k=+ڷ@;~|ؔ>WM]+fj:~Ӵ-yf:FViR_UH?tj˽qU4Bçޏ]paaU?=|DB0^ ?\Ǚe*]ٗح^k; :y5dOZb'-7h djPΏiqùoaϺ{G{G+s\Bރ=swH,Kץ=ol251|c_Gi#)#ϗ>"lx#^I?n[}LcKd<$cΆ O{(c:<%>V{n^1Vx=1Gz/k1ۮ=W1>N>8:r.Oң׾0Q;IEb'PhJPN.SNex*sS2'a15TK#,jaGN_K~fRu 'ꇯD$lZx-n ,'iԬZG7|\Ԫ}I(\HiHM!]|+rB`ٚ9ښ[I#fnէc⧁15|OkEoʝB!jlMυ'#,5cA+Scڴ,$Zpuw~ *>s$5i9&  h˱[KD,zfkK&&F!cWsE -NgK:z4XS92x r#d>* ` K4-ZH%'&IPJϓ{tER^ -C)YLcۊ')>NwJ3m6)P[|Ѱ'>qhcXn 4@a]D I]1BRo;Uv.txunw>e9狸-mEχm鵶3!ȺA۵ƕfQOHSZ_~3ߗu_Pjw8)Z᪏h_c*b)e n'IhR>55+i*Hq*9AG^bǀnZˆ6x{˵?s(P5Gڴѳ QϬ ykkT>yy!AguHc 6^ w."p~ d)0N:mLaylvՙZGJhI9YZʪc}'%6 gh-+ ;7 Fei8:R&X@0uXOD,3Ϭ_תnE PM:- }bL^!xFߤϾ[mgEf3[ې (d('y&/I޲?O\ѳg!_@s 3oes0>g w L:fYR?Qgfb=tr_ZH]:P挌$k0?NBW?s{Cc4WhckBj#BBBᱫ.[ElH# Mo{_gP[J49(L-PUiAuL)h8{gGZx$C#KP%t\/T"}uԀZ>&{G{~8N<|^^ƕuϻ=c^G੹zl~V?%HX]CcX?y ?s;7'螖|^ZD};ե~?k计V-F\{-StOƶǮx/rs`^)bpGyJ{+:gQ9 {yh܏?%njϥx\OV?ב3=9^N6{A_um*҇DJF,29f0hyy]~mdŠ' ?AnM4[AHN8)[^CƪTiM\1} :NbӔ٧MiW-lQ:8/ ]2*1@ .<`#/~ΜrMw4|(Hm&MVI)cx5}VE—8Vű ՚Ur/W)pj:EĊ8].`oM: T7py\P>BN-!pvJwOgވ:оʱ'ZTk7[ ;ߺ!k$s-7بDba4[1s0&DžV!zSWY]K8! X}C6 ; l#ݼ }xݳ}"&uRXPgdXX9ZEjA&Y|a_\XZxGlv}$'rݟ-%eB70l<ŲZ2` s={=me} j ͞Np֫6\o%'쫐*U?&NQjOk lP_ԈU-gmSZwvּqe=;#q`I\z\ S ͫ_,9w Oݱ/\hs/ԡUr Gpw~!1'86h_~s):2]E)uz'䀔R-\\iMԍg˰uwW)W=S.+2,r\:@-oCxm4xEPC s`Wy 3ZFiдв^We%pHQ1"eAQݠs=,Y)Dcq*ORNU6xVcؗ9Pr(5FǦGFo{f/9Ϲ,KBa?8R0 _6/)bsOZā7.1.g*sVSEu_{vZ#Se_Q¡~[ri{;fPM(?QطBX2շ81>ݿW]3QzS׍=!O w*\д3A~W)E1'?}źƨ5t=iIuظvb/9%==__bs>MZ 1h|A;jw_ݣY(2Y#v߸wj?,H氣o5{RbFb4 ;1:a~\c-d#p=#p/2{s -՞/疹lO"ˈC/_#|%F 9?I=nDvnWu~Z/ow?ocsxe]C{>9%՗OR=uX(^%\K`/f\%1/_~:o?ups|D!icL 7:fTNjdٹB e&c֤&!x٢;{˯OmxK[WM]%V+X]K،m:iCdG{oPDw:1u\<>b]gY< /ĺreޠ %"g5IkUvPBk8'/URLLYҲ׉.|"pz[-7iN'Q P:qL;1P_<Sӗ%]י4~ȋeJ3912jLQk'\CߺG"^YtkSa,}Ue.6o7Fos?l~ZG}gov9s4N{jW/րt?ef݊ i_ vfςPCg\[o ~α0Ưk`lDI d0g#2XW>5o>  7ヘW;WN4u{C *H55,)ޥѽO1&I֟nw(%uU|x1"=Rv@{oXhU0_{c(/*W~g||s`&N_W{^'`d)Įf #خ)8gOy˄y^ ۱mF4 /PQ:%{s"l#p=# @_`^h9O/~ FiwffcȸVksi=xci -o%q._*HߪKs<`{=O} 72s,9km~L#s?u\<=pR)m[m$\<Vѿ#?㡟+7pH P),X &HkYi$[ :"n&$l$a0A4NFfkKl:1c~SKa*b3`M@') MC#9D|[Ir6Ibcs&lM,!Ơ0W5bԪ>%c gdj㾙k7iF{j Sr[_NƲ6MrqE9#9JKۻI0M}|C)(9Z A}B1K|* C-j d V鮌yvf"1BԤǧżaGOfC,x6`)tfX+%'pY516]I/AƖ? (& _in{$s>HRU޾9%Jqtw8mԨaKx,jmv1SᒧL "/ݡNvnɻpԞƢ|4~9yYi@IDATz}_&([{bm|[r<)RQ`؍6l,4APW:C5f~U {mȗα5WD:O4b}R!F6^2iƁ m]-_j3GW!0ʓyNLյ޹FY8eGCVa K?=x~m`#_5mg X~Eyt61u 9cW<‚bս4[qc}akM x XT̨ȬSN bܢ+Xtv.m hh>җ˲gV:aqd\f-"=WcPƧmX:tTRA#~gSi_$\ t$DNXX?c\/'ʝEܒ+QփU,iQy>5s_jw~ՋN>ui76, 4:mlTuHޒ <dy˞'-K5Me_~Yb1|<zCѤO3 +x>%avލcМeS,۹XkHVyfr&f8WY<tILfcgޡ]N} 띯Q?Xht+ւxޗ3Tk3ftHaFxlԠ?^sgSs8HJw)bOr᳞VyR/Z_رGhXo*ƦAk>4CtHRϡo~_$|O{gG{G_f -{8Þ|9k䜜?_q>؞sضT1Z>=/b| ~+l-O;/ɼ_Tgc6}:v9#l?F=sd]uǑ2KG}G[/w[&{cڽsk+$o~ s/ͯhjH̚ =IfΤ Zyp&2$AO&YFgp}3Q+zLt mPv} l5G}8j~ESÓ A|J_PU))Hq'6LPշSMU)cx|kD"/T[$&A#=c{Mwbypiqʐ%lI/j(I+e.bl2彧$E `5/a os$WL4,]nG86mٽӊlbI\釯O?3xL2ZrU)k,ئe3VN>JfMso@>l f } Yr-0~(ˆ~=R?IA/h9l{' LLt*ẓdt,r4B *=Pѷѕ|>9Ҏ ќg(s-_NsKdƍs7V\v1H|QAe}oZ+ ۲[S^Vhw`h gެ#Xl}ż y|h; _juYZR5o,s1,7h,p&u#WFZEj6U:Z/4 g>L, qjF·Wk;v0@2%kr-&S; اZmV)v;rΊֳ֗ه @S9룶"|~U_HHj0tWF(ͫ'i`RJ3!9_흿#S4m .sH;&P9]Ob|Y錎:4P`g>r^GwahµF܋>֩"s牖!LIKu6s<5TNb$S;`K ^+}!j .J??sF1{DkiYI\}j}{ !]Aؘ (D-kֲRuZU:Ӻ!в알-gO."X_ >Q"BCɫcq{E?zS1D|:GDD;z2%@uNu3kgmExw瑭'x(GxvMŅDp}N[\/R̞9W3ߍͽ#p=#pnNRT1io~<1z-ݵ{ >rקhe<qb2pc>?FzIߑ8#i|K/o?5r՞/~c|>{=Gwhf|4;V?Zns:?Zա[xBs(I(f$sg3 +I6x/ Ҍ 2tG19Ë*"(L&L %I-!^CLB|[(Ld#IS7I+tfi;#Tی76)$ɯi,UTKMa^\,B7oOJ4a=q:MO2W)>@I{:&J~MfU4&!]c6Io6G#^YX œQЧ25B}J %g8O6a.Q.p,k$Ò'i|ћ$)ĕIHf%%'(fio׭)=?gQ*V0}&]]{i~=}UB`X>}Q&wֻa*Ieh%%]c>ŕ<d2}WAf+T]$by-hvx,ndN ܯ؉ YHMY7S[ƒmWi;<<5ˎC,O{WF|'Z e1Z6Sbb|qR,!y=/\ mK~uN4kfp#0Qibo,wfXs65pW8q>ϮN~N0\Sl#8)uy} -ĎP&dY#KUeKB'+ \SnyИ%#4ﵼOq:BQ"OZ4E}o/rI ~gYc7,O ˵.uX ς_Mޓ3t~Y)!7mӈ:}5Ku2$ŪIgֆ/WO߳wև:rO|-9dK( :ŴٓJwA1bV=u INW6I  \;Vl|`x"ū?=a=f#0s)1np]lj$v9ñhG{G鏔_bޣq8ܣߏo#}_+qZϘǯ5/%%zfkscSZ-99cD{ ܁+z>528Ysƙ6- T}|J*$;gʏ|h^bKw2'Zw -3߱sD'K 0 R{!4rwZS7qa͛iT8AW44SVB?9i_h47& (|Ŭ#%UoO7tEmB-X4޵9㧟<3?}"eom&TjtC2Vڬi=[O9El7^ mµ<|VgsXe{|U(绯fJm-Hl|04UY :0"Oj1.{edOg;|e|LRfMұ69NFuث3 ̚yb1syl(&y]/2)"*s)}x DE܈*{sm/?XE:#B'@*tf9s]א}9/)/k\a̲rsD+ħ]bi̵d4/ \ټPc5@_Ɵ*3 v4f(8{''G>^mʱ!o(hM=30g{rjZ8kne64ѩ6$ N z)/HZ(-xV0T[y6{G{~%K)d|5˙\})c>>w>}lw)'9Pbʥ3'&NvM$BOsүCiƱC?Z&sgBPIIt KL&L&[Ɉp$lʓZ[1['Z6vm1И8lRM^zRʚ(V X6f}xRQWM߷@(nXP}0'Yګ]Y<˶ȶы)V ԶYOCҙV74G8P9J+e#9&|M2 ^=$ p&a\䩼Z&`R6'Wx4bI O$,qԘC&ht]\_9#G,3ev91EMۜ_$u+ֹ'Z#˜ ,7#<7.k jI J4r]9=][cSW:%"|d)k[ !>/yS]UcqJ*'krǹكљ5 W#s$j4r -*NQ9 Sc4mŶKG/P3Oh$.& LaR1}rg\WiZ*rFi="A">Ms% 3w|;_pѩ/JE OAC7J(t I5VIj$r9#/āoQh">]Zq[-95핧L7й; v`ϹW3<.+OB Mԍ@2U޲ZMS{3B9LJXIVmll?gNVLheiQ<1~)\2E&m摀B\o0.ORKB)們8m$nߔ9t2o^Ä́kc!O$Ηto+&O) 2⭢-d}%6G0cV0TǏ&:1AM']Į*X|b ,SzZczN=H\fgQNh@"׿?PhiXah-Q"Z|?9[Túܳ+=g=7e$̷DǖMjB^tA6GDY\:ge䖵*NɰP&= <{+hNGKԊ_oq-kͷ}34mA9mAs*FQ*Eޡ'|QK#z-O8P,kW{a@c:pL=H4 vw+t&^ [s`m7}m߾գ%ڂ"姶>\7K>d#q|N)BFmN{746AK?fe<Tx6d-2edpu ؙ\?f,uBN8<y4^Fu!hsxڌ* A 6kb;z0-Zr{'(GU2A' Tg cmt;*'yaT?4Eb zj8{5gHn XBZaa,\_]Ϲl+,E7d'uY(m~.yH_Wl*z{X렃x:0C͵S."mb cP+M/ N1 vH~JZ!ag-^"~_;Ϻ{G{G+s\?u|wGۗ?=9Fpt?ese_Nq"pqb7{ᜤ9^_r|?e幸=5/O&/?/黕1yo*qd_ ʆ#%6 Q[hnG{8eҍ#|/SGv叞Ou=)y^*c()]_wm?{;D_Vnd sŒɃdĦ3ucKbuߛOCbILl"Ld I<='b6%ti)fY ,dR y, @/X[6U|,dN=/cr NSn„7;ږ,2B[f.pP.k LX֗♲ԖERKx"JLG[I7Wr))G&%b"$?pC}c5J;5v( -:'[hM&Nմ7q !i쉒GwW B 0䴭i+kb[G](ՅqQU"Jջs^җnAM,c_['s bPe56N\P:%&TtIg~ὂxˬ3 VB=rWQk Eϳ*O%CӪ\׀-ї3'xwq@Y v!%\u@iD4Ltfɓv.FڶGԕBK/ߤ?P{ @ ׵Xs:$Ojq߃dҒ7uKڮ#A{|8:}U6X};~hMHdW =1T,]n.ԭ-E!؃9bKtO"o5!"}%֦I}CX`q B~WhmƗlXY򎧿sƢDYX<$t%8!mhL1,/ZESW -@ߵO5 ۚQ_2>K$YrЗ'U&9g潹Ra /E[*ibJ[ ϩ%39}i>VY5)?ևU\>lwO;Wx+#{܍,`u++.:'r-s\Oo)l0->BŋJC1:'ܷ1礪^&0"6) X Pp/pyQ&d11ΉKǻ_w*.`"BΛ U^ T)~h?0+?q=(wm}=w=#p=B= &+b뤿 >a:&N} ߕ1t}-21<35ɘ=>1~xyf|l~j^׹K쒾#%ss?s6]o9/]k9=c׵2N>??^=ͧq{ʿ=ݞSQǴ(Srp ϥx"\+h%KK|8oþZ_F+Y8*l S>E/5/U|E0. 1@cl&d}.Z&:dpG/uNM\W@BJI:R 4l'O*Uc}yQL0QZP񶰴b Z1xA9fMLP"B[ҼYL`8t02r+jDl/q`LŲ'X*42}t)A~:u+1/ ,61:3 l K cK袿 WWWQ 2/ebe jS9-K\Of '>yَMԘ:K\fGo_:O皐u؇dذ:u}lu&A*O15rIc~2E,=Gfx-s\`ʚpyn }AIc̲'l/?sQ-R ԧ- A': mĊPUrOv b?f&MSzH!J 5;Q8ReɷuR`azBT{ar^p|ytKD"$dX+ zR?lw/Ve@W=LR9K"b}pqat݉ipcf"r@וWIm}W׌3׬iքA~TgӚa̘<[3'j?;FKeEG?/#QNj(SF6ceil;K\ι7#ݎ]Sd+go6)pt iN۸e"c>U?!~aQWq)^>wX[F2GFzao9_I&[XBY"-P8;H*9/+H A& e>C S.qC|nzxo7|Y. > ("n֝)FtCgU`2>,]>22d]?B=Fh|/#-b|y8!sTfSz=KE, j9=;zti11di \#Vv d:yĂV1l돢 (6`|ؗŪ' >)G(= nZu"G' URW^C3BJt]xl$s ('VC#_ 6Ov"dbield ksQX .>u7m2 |2j}؃MzgRH7_:]eIFb 6gm N?{}i?1}?W+@~Mϻq߹G{GZ?^O̺[ɞsϽJ׭;},ns^ˇK"5cZNLz1ڑ11y)y|y.VyV}Ζ[9ynsG}G[[s_qh>&gO1G>icjíG;nկ#Qk:z)pI96^ZaeRIH~d4`wKq(SbY>OzQ^Ig2ȻX嗗|Wβ"K":❂&Tf}D:WWI$TQZJBO;?b _ Pz%xNIV`>Y˜vJnb}Il{EyJ劕MΛ0ܞTq=ĆUc|^Y\A;Wh'If>SA1R"44dq|S(,'~>Hx_1I󕳩gU5q愝 {GVR$2K8oJ_^?{o%rg-kݐ_k- 8U/ ߶̬:eEٶ=e;=ҥI -O;'A)'w9~k& `EЏH/8ē+ed-R.>2x;>*`f ?7>EXRQq uO1gI9XD?zٹד9 W LPg[W/\37m;gLAju8u|d_Ǭ4F.c`*gN(JbU$Z2vԹ92iV86M6 2a*7W62%*u U$Z*gRDV =m`-4&a-/_h?k}!2qDb+4b1IL >ȻGQ鴔v k1@Czs,|i!0D.^yjVB1u<>j$=qhgVcY9P(i_ڊ4d喤Fg29bi^u hH`7Psʘ[_jE'fb1 n7-~* F@&^j|^wy!?'yr+ɧQ{|=vW&!tEW> H"z[')IFB%C6ތ)v&1V^!UDA[|790&mW|Ʉ5hW;4OS7q|*bdFIZsQ;,P$ʻD"fwز4LlZЈI-^b8iM&f >|',PS0ҍo"\.hWαZsɺcmh|=>>glUhU4.z ޢjlܥ7 b|f+s ˄q$-~ƘψO*o91_կ <=zb9hc)--S|zX ߳KiԬo-.qzr ."HCH}\X1vs?~mX͝8m~X'"ԍc'JZ7ܺwkW}X&^įU]S'x-}$Lɩvy&c\qiA|JxR'Yn{|0UD2km3c"B'iÄw |I؍N]O⺭qĮ'K-Mp>披75I9ɝE۽7) kZyqvɷ 'Οg~[NC]C>~B+&e%3 xT}u KM\(nax6aI9gS5KkX{~N8t̘D0,ƈ, $ +WF[epxdF>2Tk=Mz_hO Z 3(9|HwJ0X[Jߒ=fÕ1~YtJrMHJoxy@qu|"(!=k9yMWܝOhݓAR&2eQ ou-}˶)lI-%DMut~֠diᏎ¶yR;~ח72,!ed 6:'[6XL}83tCH"a-SI-1Z|ݲ-,/`.mb{"|ޏ33vZ꘬Yr_U8e?bl deY&F_5ˤNo 6O;V`•ѣ̶&n`BTV)L_9b,`;?"fjşvmB5zRw]s+2Htg?aoj62w_v{F>kkLRذ=}+raW\le|uR`?UBz?Xe,6M4vu_}΍%m\$`N;YK}O̵WD7b>cڨWj3o21rʂo=6/Qlc ٮhYJګDq p~D.s#`63g:sMyFMΟeS [jbƛWJ푦er-X&~ʾc`lr-;Fx_E{G{GVy>?%OSog뵱o{q؏H]r&;R3y8c}=~*rE9+7(цx.Gxbmڷ|cSqUx{yck]üd%q/]}ѯZˏ{GGc}+5{n;s}?gϑ#ľ;OWh#gX%y"8x=]ʁPNȳ(f>!=zZP?h\-W\'s aOw@x[Z/̛$H8m2Fۙw?(CV&5. ҫ#H½MIh$|%Mi(Z+O0ۛ<?vBόV1G34ԹVy1ŒlIT]S h6S-sS.ZwpDa]0vAc_E*g#`tJҔD}l(r{\ԮduꊍĞ}?mbRecklBH]96f?<ٶ_Au}\fO.'V4!Fln5M`Gwڼk쏽1e%0d@IDAT':Uȧҩ&\o}Zb䗽eD:r;1_"Ͽ%ϯE2^,4ukB"fTr[5_bcqj*${}IG&D4cdewOiKLm^U$wMݬIshRq.|=]Q?hWh&d)r*yK$N75uRbJ FJkT}kR-(xRmJ_+M5Of,u_Y0c_LZu z!ӂ_m,Zɔ<*΃x{ֶ}u ng@?%h`=+hoNoaMG˗'2?ק-yW_| HIPiE^yϞ>b_$d{/ gp}ֿ em9ٌr◖?"L2lFZj;4l.,k,a2f} WG&J}7JOJ撺gfi}!ilVumPY|OcD:OI2]x(PYBeeɋWk=^XbR_&Kbâ؄.a,+V{ڧ(#_]Bא;m8~cN>g2ќ`Y>Qsc-PXvzZG,g}yޥyw{G{qF'/)D牗D:^˭8ӟKu)#wN~"p{oK-/"G2c0x=(:<%QǴ_V)xO[x(?>kZ׽}Oq·sKX݂q >C]ظ6>r=)8Gk2򋷷9lzooy~z=]L=O\xC7Lwx߇Uh\#Pd\"eJ48H= "#%} m UxhԏIpH<_i+awH4?bxeS_ Qނ1r቙ZĢi{ 20PqD356yXXN- WX儭o"jIƔ搨O7mHmOӧM—q,bOU?, !x[9 dʌw x=ȆmϷjJ0Z|[q/3>15'>gP*y3GO_cKOVM!297& X7K(3biAl=pF1"ښKT+A$tWzPɻ;ٔo)`y`U2:ΉPB{-N1<(jqi:dOj$81I6|a߶#p[H-Q `^L't* BE]tV)u1ٻ@=`$)I3”y%/QЭ$s~j[kcB&ԤOM-Io0GG^kbE?5?#?Ïk2pj\4FM:w1o&COe,8q[+]o O#.^JhD \j0aE{_NWbLE{@J\7"XDgbܨ2xE%WmNRW2̚C_<I &y+AAPE[+ʞsOf;m֙b(cc4>, VWIu`(O?Xz*ډbe+zN.^Ƕ$pb#t’e&.=1>SQ\lRw_3(Z</Q?a`J>cR})Ce\4#$!$j3Lr.Bcqu™|ҿ}4%w.4Fo9|"O3ͧƮ_1TDY> "o_E1,W}gy_sq!٨2YÒL ?Y6Sww 򉇟;>t\-ڛ*A?,Sˀes.gHy3؎.9at#c\=|I!c1'k7$_ *U,*$ɜ}J/OXbcBÇ-Xj1.7DKb|/#p=#pKL77/>1~.tFMR[z\}w~"p{\ח&Z_DZ'Z H4;^?_k_ûoycO/?g>Vϕ {w l~Ѷæ=5>G\6c|Ge>e#ޥ#ˣm;O!Xi`̃4l69ZtLg]M-6 kߩv.P]ZI !B=0./{/bofk<'`F2*ԜV_gF<(1'C>ԙr(ka0ؾ/"\jE}s(h33w+92#l?L :,tsErظtEYc,_Ao<51.ZhX(/\'qbsB\U> V}81vZUƆqp F w j}x3h[b,zqplR0NJŭov7Q17>L`1 ?PsJ$6MB)2FdI=蕦$Ns5&cm5Z@sx~9vxk8[;cMPNTzܮ4Vc OI\8BO8E[ًggdN6gRQ{mI%2[j8Z<= gؼh¼:u zҫCk>}&0}o[1kyx8c`:;lu緧6Dx_=;Gl2K:C+\yj{ٶxf dݽĬ^%Cp}wLzBFh{'O.|7踄N*ٓ lb1`ةdIT5҇M;ĂEe& kl.G uq絛vb;O}-aig>b݌7 ]̺zq c c,}F Ы5j6K JMw.<$ڙ^n;}N9-:+Iy3 bKoT,v@/B+}\=#p="p<\/Cߠ|1;' L"pi͗Krߓ?i؏۞sdϘ#ME-uxKs8_s6iߊnm_KrG}n?f߹sۇ:~a1)9ޢxs? l}Drr:h:\Y7::hf};/œ2Cܒi; ?P 7|ic6i*ot^:-04`ZWU_rGG *sʒ=8qmyThzņB֯Ƭ)˸nVhk[ց@-S6sH|UY%G c㱠^df&E0ک^푓BUF6F";}\F~ɖwY PqlP`~>FoďXG mZ@gBq Z7FmqzW£89:wE[v ;%]7؆9IFڢ me:L,sP_APuyUY x[BWY!Y3]_A"R;+sLpz>}m6uҁdЫlQ2!elݼ i̺Բ>ictuWSmFvwE7]e-Ԅ~. od\t^ s͹pT8[bhFd\Dj1x8=εJr>gDZ rlס$g̨n6I/gCΏw~ڣ>B-2nI2l+xLW6nM&&':"Sl9a-}ɅoHF7&#|ëoͽ,Tv8y>*Oa@%Iھkqq#uu90*4m_tlM^E£Ze`=i:T)SKV)͎; /O4KXw 㗾Nt9|}XU%JRJfk~G߸tGok [BT ݔ o2%FНF<ħѳEL5JR&ItiKLyg0pEi`޵ϗ{S*Dߢٞ6'?X_3sd V});*+=6|zpBBR,ce y VZ?qO*;)}*]#@O `oKeUK}{Roi_/{l\k?ϱ>9ڷ{.&cl %>}op^z+׶k}]wMǖ[wPⷷXc>9#1yKke^9R[/7ohuzC6|ȎS18z9 {u )PNkfN[_90'04(8ZϻFn,vXK$R !ԁA[D 8o8'b-nL-bx4S6\456ZYy4 zP'iPn;pAa0&}W>& 3Ciٮ|Z3iև)9?ΕCCbJ}Sc_\s5{?~M'68ʶ/3FIZ&$˔NW n4Zx8=uXcMt)vi]ZvFvm@rR O|3VF!!\&.迲Lo!Cd ƶbD7kY|e +n)z$io͝듈 cLFC l ъvl:{ɟFyMֽ:k͑/?C|[*>Ś:c/crJ7m[4P&xW2qB>ͦW4>~=1(ͧZO^')mHso 7}4#|bj43uf}F |Wla_ԫ5^ Q\^ޓ+OubɔuKPLe?&udSNL5w?*@`DX|FhJioqcK?֟:p,;0W2k}IFsE(8/>֪c]Aϼ=ɣ-F4mgk`6 K) =`m&e0zgtI9 6b#U<86]"|5 4E]IPI/k%ɰ\4 7L9hR- FK>gkoZ&ʼnPJQs~Ĝk"ۭBF1~=J\mS{Oȹ%u1~W sc\=#p="5/0hD9l;կK3wKX0:nS_>O9Krxscxɿsrx׋cq$Z>}=֥sd[xxqT#ߴ^Ie_Z~xI״ka1CV$l|ms:K{,c)6({{ܞgj1ny)9R;/7ohW{҃[C CD5`^܍!\mxc INzGE69=LjY0=ZgQt s$X*'OFi" IekHe 8*ցvPFOy[}Z>E 'Y*t?4vt 46ͻ/K]?ls_|29.K܃tWK<۹(CTp/ȼ| 78՛!A̩ưmk6f u|Ϲgܚ]ͯܯF]VKu'IvKBc`!9$W[QH<1G}קZY=if VnP]1a"{aq^ ,^~#)rxէf:䚞X'$!ak_${<̔9mr;"M_ 5 N\,S}U+ja-.T5QR_ ~Ҝjk66&SflX1YOżNqT,AQlRv^EMvi]f}MM^Z8:7LWwRHX9(?l"dܜcUܵiӗGK׿*H\3.$4fye=:$GT BU8G {Og[;< 3f&4K#=] :_;NfyȀ}ұ$պaOw:~-=hFMܻ 5RW99gΗ6qqNb\&6 / fbȻ-sJ3oΕDI&`,se}֑7cɟ27W#}~c؁׹&c(,v)ǑlM'<>D52҃ S扖<52QGڝphޗ >ygoR9d;  JLTy20ڙylQ_]xn5ީI@R=C%%ϸ:?ƌ_Wz}NቝfC |\+` Ҏsr ?e8& BSǡωhүU:o6"?Y E%D}䌓?YǨXaX8fwZc{7DS{G{xRIgg$?Sc=|_#4 \;s"-F;G{S)Osק?goUCvT=͆[/^{89i?g+7_:>={ٗȜ){3ɼ=9]ϡ]o,ЅA795Z0 ïkrHYL@{ I I =z!)-(AW+f^h$s]4۽+yU$a֍xN⪥[7,c\}RIbո?'Rm&N ~e۰_01AJ(Y>sp4\rU>O ~HD7f~x?|^q|i(`o;<(}3G޽+V<Jml,vho3M=X f%| Q..Pseв4F#ۋsm=tf@2*PꑒF0Sȫ,v%z-"Z%2uI,]ö':|[ŰR<&+ '|h3rE>ɤ.$&8PLqJ.}#Aeoc%G',`Ʃ)ڞ26?\O76-A넛|^ [ێ.~X|l` fv15;DeL|ڃiIsg'\FF9l49OO|_Yp-/[bj25Ѷ)%q0(욜JMΝS?lR^2T/"5jO˵NcXxŋC=yB^}{2">>Ĥ{,qF?}}+qE/^O8u ^BՅ,al:םoI>Aޕ)O.KB)MK39pͤ_Q 61zzj3_eUJsK,0AGεBsԏqGV q1<ʼN 7EvM^$od&Sa׵ QWR%K{~?}1VM'|?kqDKdpJǶ Rn\ kk; n ;6gn_oQOaWElM;֤aM,6^v S XM<Ͼ/'،M]OyM\'vcWƞFeQ׬ @Q*+;.}ĕI41Q%s0eM||D {G{n+^RGo>.y1E)|m=}|l ף6~m_;-{[x>wkߑ#5; O8sn忄Z?5q^bKdO|dпmzt2(,IfHӗCum܉7ZbձAPWRe٨=r{0DGlŃ"mPI<J[K90GYap"("IA[Ћt'#0&IXlc*B DʦzC1K8;{K#cNscزE_#oK^ўYi!no,QrnۃtΛ̒s3VZObV[ڽ!ȏ6ѧ-뒥R+)2-͑<5Q$L te;3ǧP*W&I6H uH'hB'exO Rx%[&lHX1k=W)K^##}W~%^cmmlsDێ'SxhD9uFeپ@/l?rbi`4A^8-]F`1-w_\47U*dl_֕ &^|øЗ\·h[zdk-k˛"}'g乨|Fk^1kϔ%u {헿?Y|cnd3}UϋUl#1UV0l)BO4yj#$î&[ϟHRZO>O38X[b|m{l8j&HV`[K&%pMhrM6v `kKd ]h*>{Hj4[%^.IR8']aQ~0bP]8)Zm.+f>R*Фslp =Yϡ(*XI}P _"_}ϿF_$q٣γ@<`czۂOr2 9 @&|8/.JE}XP_7P#Py3ѲxF" Db36H`#Y16P_ MHygԍm}{WK7N]ly (P>TG~)$! !p+çiɘ~i]531WY1Z\cu->X[gN5 ( +AU.61#ku*eP\Ft? Q ٱsl=W0ֱ>bDo /1,5;}WU>o׽/@GxcR-gX0vm+#>Ulaq8.?t5vOآN,\iMv献Ojf?MwMաpmeyɯFة9|+E7W>>.x=#p=?3 cL&z:/Yϙ7=Gj=cL/ܱ~^nqn+_hu<4sڣ߂n===k6^:XGݶӮ˾fkm(lv?}}zT?^iGkj߭_y;g)|̩M2W~ß=Q$e8J[=JT:C yԭu'|TT×$ZB+B^~鿭4ɢfm -zу>?Jdvx5Ń*>S(Q㢟rI|Į$%.->|-֣w#ݯ~~8˳wE>G@.ju&Bgk&8~^ZLFإQ4~_i}9+W0MQ1s(<%I\ae|z3&=Ǩķ$l*9A_Wz?tĉd!]ָ=^+ڰ⾕'(LҢ5?> a¥aK]ÄHٜe$jMԋ> ?~Sޙ9^d|/I:4:KwRv%϶OmRR ޡ7*sU"` [wx;UhrNs4;G#8TIQo?/P{%=7f|&Ȼ3!nVMHW*vcе֒e"U.ؕ{'Pg`%~-ʬx}q,`kZ%^meU}5s0Y̖1[$j6L蟵i@YXj @E9GMhgC`E;|a^tlPt ^ga%?sw{G{QF s L8n]G璞=UoK1;^\v[\͊\|q#?-ou4Kߥ5KrC&Q~?=ޥ5kG[^}u_1mcZѾ}zG?ҏrm%yKk(CkkԱh7K_|U<=k'cl$B?#'= ;_[sdTuAAS##5"eٓy ?d d!" C&Q0eC`.]{5'Y[e/hH|% ܛ娔C02ǿM<Ҋ|HHQ?|_,M/ܨxE0z*Dw=e#|ohT`ک"-EjfjG'1Ӛ2Mz\.Ti`Ɗ^:팱4|qrSjc˟ S'ϙ]Ɩ5"KA=p3#`vH\$2?c'JKdb|ع 㥴>/0@ä(7!`u9@x)As^oyGwݱS>Y/ˑ(e$Z.G, a4ߔԑ+fFmW K #Dz;bTKxƇyl⻜oWDuK+|%.6v$111Qdmt[X/^h-Ru:F_sZUA㢯tdxo@',򅎌|&&?9DKu풴ݏjݚ }~r^E(xkUPEK3'V/X57qf]s>gwk.' }"t煺M?Mt_197xKI&[!qqcDPxT,Q'?q Ĕԭ9A})R[Wvm6qH|~ _+c3sklI T wB6dYb3؄6]3nN?1'p2B?^>sƢ>5TjD= nWlȂCo_aeȝ C#0~ѧ^"ٽU9wMqdrwv<Ccw— -jr<}+::ӓ;#c"2ԵM#ٓmSզhe>}F.*t˟?so7c2iY?Z9kj?>-Z`Ԓ 2I>%UHxg*R.K^$w,lU&BjK>S՟$ʣ sp,c7|{D /?e~v #p=#p0>C>c33T\x꺸$K^?db%$s=򵩗>R׶kh[^?.]_5_ xƾ[ޗckſէ\z 5=S{o` 9+_?f=sIc}gw+^Xyxf5!Sx8s*xIθʗSɯ(=8`<(u24ϡ+yZZ'2n79ȉ&jԱ[1pկl*bg)SkӘā?jC%msx21 qJ ǜ̻qZF mM&j+=hc#P >$(4J'WŠYy8O#=j)aiB´B Vf{xQ_r]x.^7dǗDK{-^O}4(,GYqh|kԉ}OXi=@vNΈ(!Ǽ]DeASLs6d c,es4P5\l`z<Xފz&ffOvۄA@Xby8rF + =fpW2l籃]#o}JT6`kw -QzbPe0xq}Wgt.7vG_lhD)e)EzeR{ET@@IDATPk/iɺʆxU>HQ[hhP 9ڒ6ZsM0(g-ƹS%Ƣ7.Z'=oLAWy*=sxa&Ztک@d%t|moCR@6Ib&,%mPw?4a.& M9#OpQxgD.(n!v]hΉ؈Lj~ǿ$_#6ȏTIv]$`9˼v3}}(ub4c&Z:V{8*L^캳%G(IO)d$Ϗ$]34c 3 2q]t:Oѣ^| hӼs'c 4I0g|K{)1$o: $F:}a?S$ˣ"VfNKs7?+=3&O b; Yg%Şϛ|cYDY_m>'ѓ}X޽7Q~$]vbc)^ C« e,g5[/ʡnEm-1rp'T+<\}Z.p9rS6ԜQ7DS{G{xJN]]C|vw%sote.&ǸG5cx>oOz|k8~+rt_+V \v\XRMf|q,;2_gi=Gk˼[d1xS\7{Z5|x??(Ǿ#ؾ(Ckdkohb\E&cIY%[)9lJ?}Q/8wi#0%`߫hwi9߃fmHY'3U1BQjK5)p-%qOƦ,S`Dd_+}~%_\I0fW"g|.cc衭jfCy2 X` E=&Q!seu*v4~zGf-Cs⚔^&6'Nߩ"~)wF( Vݽ`qS)M]BZeGQQǂ$1g)gs6-Y9feO,G[l)n{"IbO[KASK{{[X,=};B#ɿ\d+ $bOCQ$1}!D$[D%$Ԇgҫj>eL$>Ӝߓ҄/WÔ1#}>ũ!4elj=_͛8X%O.C'M=T,I^^=X`c`5bk |M>o ܄iuQ‡p{GTko 38>YԯikӞ-\b| diI@ݫ4lq|GdI'&hAhɞ}0jMl`";Lg™9"e\-i`TKz{q]bɇK>&IqӪQ|m[ĵ?z#S<[ƭ3% Y7rVRj<Ŷ,|)5 ;"ҳh漯lm5Vg}Np=MD?b mWz4؆V_, r1S8ƃ=>T{Y9}q%^"D{bpiE;FVW 'T\ƓM?}@/OMa1YzVH_hy: F-I _Չk6֍-ں m?ycwS֦';?f@),k$5WmA*T*m+-c~ =WB;tu=c3 9ɦTCR_j'R&^GwJ}1}J@8,f^N>$zO/s#bF(]S4lXQhp@{G{~uhy|{E`}K܊w HWۧwvc+̂/ډX%>^⻆3Kox ^ނq ]HMٗ`zJ8"=#kϵXk&F}?|s?|/C^96&s_ƜџcIמOEm*!W3HA5>L"!ZXI_a'kv&[U'\JAkz#g\;OKBWN;V_ZETǂmufǒxI((Q/\DM9F:6U`]i+eK6cPڄeFXA19/}bKiiCyo>uM Ĭyrs5!"dh_m;MZ O1y,ͧD=odI:c$ם ikl\z6]9㊫%}P_Fǿ]bS8ջ>XiW,l,J} 1P."ޖ(%vh'3j /|k/R֏5\mcݍNcZ1F Ww[TJo_QEa:bZ7jĘ'SVgxlH+cELX-!ekr8oV_ĽN0&qR?OJ姟}!̤MjcdSXC7_]ӚIDCoR  3۔39-c 3C%H`7pmɚqͨW<G8fރ&$nɺ'fykUxG>S\Ía $ *=Fa 3pe%O\؈)0?p$~ G +5 Açq'.mgo(~Nݒ3o}|?Up޵{) }HbE§2G7!BRĜIB;Zá/|^jcϬ WebEdGl=DH)|;<F>{W~Q4k|>q5ٳ?8s3qQO=g#E@? е6~޴fwjvtՅ$BʌkSU4Ÿɍ%OӧNuml2ci݊m3κn M֎W鼔+'?;>㙧'u%oS;Vڔ9wwZbGk^W|w{G{F5o-/}zw׈6dn嚎sxO6q4&Sko\KrxO!~GS:1.5_}5=uR|ה} Ѯg>[\}# x 5_3K/ r6~״5F}/O/Goho _st!:k9)ʤ@24h90k=,J͠TAc1 7q|bL3v'Jג~<{ՃV.+^m5Ѳqx${~A_Ϭ%,d&x &ScCz/1 P~B fVqp<_1RطkWʡdDIvjGı% 8}I|jdM$A-5Қ&Z{w~贈!aVgyp[$(dJs(B2gǀFj"xE-IW^y%Bx45%2:G_Oc ?\5"dԿW^>Iǹx?gt`"o&sh)rb:3ȋOn~3\#ΫΡarRW޳tP?b悲zwH/uq?$N?Zw}z@Q ,ic4}Ba"}#o@d>ivS"U#&2&h"qc{\k}/ղj9^ OWLbNv$o,$q38v/_bsU%8m#9l7Rl=#p="3/z-#^赱?αk Q{=ӿ=Er<Hێ1޳hűZmP-c{sKSx{<)IXH?k`Y0Zlo}>S=mr4}h7opM@[ȃ7d$7ȧM9X/V)_7}ke27zHƄzLN[חHPYOtݘ$|'ݧ4v*Lذ(O676-,Q`ɶfcE0 ScqխC.& boMқ$`sݒZԢsp_ly%MM^"l6XiAy 'k)b뤡_9 eױy[:֡xxAۧYD;:7GrM>glH7+YW(s^4vA{4LVvӱ \ I۷]+jַp'3F njOh8͕/z_5q -(|zH `ӦARCX{] Iezm ~pؾ›chYUh$gML5blXcMٗ&2:;Ȳ S"z_tFL_Oy~otIb1)=)z˼P2i1to0D~4PS㈽x> _ɔiÿȬ?sƬ x5Ƽqq A$ьs. ,okI$SxsS!I:]FUBu.L]=(J%3|!rTg[泟D o/ƪcM ({jk UAI X#%q{SA/sMu2 aew0'QcV 5}%ʼn2㱚a6{1r8չmBL'q>Mx'ٍHK"brOx}˲I.h }jɻf!QϖR[̥,"Y}0 Oc:'pᛩg )KK#vod0ZGm+qRI ?3S I?>- ŧ x?7~&Fc3F4D/y*%==ѵ(E-PS/4 e_4yF.L:!=L^\F&㞦B;k΄[[;##"UR[}amZ+lеIY}ƄLKA$#F\  _::d4`MRI0F;8(' N 7d0R23d҆`ݼ _=$i8.A9,R#ѡ- 4`-ڴ3Y HP@tHL``n?cK&}j/w~vTeG-ZLX,Oպ9O Gu#}[{i!c7I0G6en@H S}K`:W6jv&Zf-Mk~9k}~FwM؄ᾳd7<j*3kL <:W>MDdn1VAqcnfOZ -|z1z( LJ ܻ{Obܧw>{{\5&oC7k^ӧMQ79 [tlDwiNSk V&ыϳ޽fR䲞![}}P"Aצ~9>r]|k4,Syd?O @y~ch*"H@BK-k|tYTsWЩ)H:Oify.THT5o9`A>mayQfwegNθ'{c&~t^|P |gN*\{8o-fDwM# $z;cG}Shiy ^:0]Xo ,7q૏skңv7y\g{8@t:# ,W~F&X|<](؄RQ~ #g3k?B ZB*|WDrV%M4 16_yDV`]/℣vG[ aDK7lFpυ?%WC_%rW \-p?- y*#_σqm\qԮ6K|||yv~DK:!{={ChG_nۿ۷ݎmM}Ov=6 z))S{.{Oo?~~<~\iO)} :?V Jy]s<>ۏO۫˿]noD֡;۷ti%c@Ԫ풽9-߉z 1psRA @lcCmP0%IP柁/+z@}^|}nz03Pi&fܐd _)b?~U ,#?c~ =:d5ph^ !?~˨Ρ:KeiytK1ᥟa%?Fk1I^{@jK:q;ENBȈ|%At*vIwXb掣R4Y+@P:Qz3a},ڈ e498T8s =r_߃FM@Ҥ^ M v\袏IVz؍ &JON4K`>ݾn ztpu[c wm2I eg?!:#6{nʮ_2QW15B`u 75HW&&tp$Ξ`ir囷jq΍cbrKp n} fdޢВUʃ׉r<9 ~,"qNs%{X82TG_'oc$^\tա?%YLzX6Qf^7eON@[(p4>(6FHW<-YIfk(Թ6r!CV=LA!C }?Ae i&@:s$K藤I!k#sTBY3\XG̽ChGI]XӮ̾ghReIZ|ds|mE5e ~o$Asj6YX2 3Re] ooJC}}(Yp@/O!re;n>FIq&c+rz~k1Ş.Ҭfk:jw‘APTD(]?ȺK-g𒆰 GysͽO] \-cc9w25#bBsH;_r$L*~骇p~I85y>4=y9tr՗N㳔̴;x`Rng=Ħ!SC(٩j_ z=V g+k.\ f;zR׈pE=g?ࢼrW \-p?- Y*_-a/MI|`G{GVm}ry:O7vݶ|l{[OQt4cvhl^Opoaodžzj| {[.o-o?E?~ ^}{o?~iRy. ~RtK;e߷O!S;<Rw].m>ۏO۫>[hyu4 'Č0"; }=$xH4xfg(f}_L{lX rMW(`nbl!W9j@)B:'kЖ _9iYoH0A̼nD#L 7b! Z% $ ݪ_`]֞+]n9BAm@GzPzȔAsv "i~#7`369 R;etO; =n"7 )HuK%_ۮO0! &tFy{jvTU0+*@WNJ!2eؔ&%&h;OGiWK 8y̺OJUX!!hP3^VKzy8 ݐ ɲ"TchW=.fId0)xiqj)kGM[c ű W g[7|UY,߇Y| Q[e|msKU*l#y~LF/ꟓyv`$7hG{OȄP7iҜCv($͕|srL>`H^CMrKy}?S H4a_OP|1ȏBJ|n.IGJu{#WiigIUydLH<:jh_5>3F$U ]L8&v@ɒ=^?pVb/$)X s$ChL_o-O,m (^4c7#He~f^~J2Zc_Gt Ol LIX hJD"G[ZYII~6U$&)PhEa5@>{r~fςRhQOJ%L; oq As\8"QWѠŒ{=1y-1sZ7.z7SzV"s}HAF:F:jT TbѨ%C4G:/t'rÕ{p"/p"k RgO@Ci\ZjZ ˿~|߾{nG6S4/gOo?~~<ߩ==R{S+y)Szj{\J=/Sӛz(݇3K{sl?>ml?iiaDT#X ؔ(EV;Vs2J6 dƐF4却5vf|$2X-V8@=*9ҕ' >5d$faש} à/>apJ5ěb0+:r;89A@y Iy]qBVz÷x1@ygi$BŒu( (bɜ&Zs'CjzZoizlPȌVG[K6#YTCYaQ_|0W 4h/oOߜr u`yKE;QҕW\,J tea[$2WGD-MP X:;vD, ]hVx~oLDW/"#S ×xD?t.=qLV{HF?ȆG}mJ>7e[)O>2c+D?=}ip{at;p33dJb8N'IҳD^mN7ngY4hpK5 ڢ|K@]c_"TU e{%:iISר{| 6n5HӘ7z 9:vPw|?$Ѳ}^~mQD/}6tM|js;ZY&QJ-?o思c$_Z sV{6cN6 py0dU!f&1]xR`>НKrHHŲN>BWP]TN` *EH2&gjy_$^7DJ:_k$7쳤@0f>L>3KZ.$#O%x킓LtpόВ¥Z,a t6r.<$Ֆ ,h9+Nw : rign&J;*x͐u;{W*?AjYFM5{/ݏ.x l%@ `IϧÞԱ MFt?|`m[ MF EO}u/.m;VW ־(7+K>e__y@+W \-pW |8<kñvH2fOXn2g NCg N^ވdi [.]iSiBUC|v䃭Y* Cݶ4[__2 =Ic>'6aԐ NGয]缼ߠuu; BqUא7pjϠ%4[z%g*\YKҕ$RGfoG4kLdXB }8Zoh$?&Kć],䠒y _c\W/ ³շj#}gEk-bH<{4#[Gb˰khݥ[|hC|2WDOSǬ+Dy=wOK>:,O4Bk!>$+xJ"QmdGd| Ntg<51x81YG?zׯOކ@\Q+OA&YuJ]k*&~5Ң'unygW(ݛ7&޾O#9<:7i ؞&Σ2׿Ő͹9Vv"m7Cql/ze{bLn@C2~7Tփ`I$XWo?W>(uMN:0=]I*H{Z ! MÂܐAyÓyw!iݕ*@1z ju1<& $^鈠 ^c]:Gxb&jNa8LQ'qJ^DVe0s|HH O^bh>ֶ# ?H'qN-AI''͚ ?Zӵ.\hxڣ>2fQ?:nN/ M9Ԓ:/gˉFCnjؖ OVFXxsN5LYw{/G{74fϨ Q_"- Et]" 9=w>| YV输A׶ /C_-]V}2D /Ϸ ^}DKE@N& yɄٳK gvr}1C>#{4MToqvB <Ǘa>{Ug7P̓xŭ\Q ^6rY; -m-^'*pڍu"Od)mCB({Q!6n ;j#~Oȃ5s/8E~k_^OU_W \-pW \-pLs> 3ɣ:w9;n*ב/9O=}ױ[`ks塜|J㧌wf΁)6ݵ6tv"a>ۏſm}տw_N?VK_/9۾K?L?ϕ\ݥ>7{=;T-@IDATKu S靣}0귇~>?^:۲__'@&rx ~G?~$2Dj˫V`x#,g2N0x X7s&t"\$] ©$VVk{SL|854 &o"n;$()eD(vٶ lEfu7c 4B O /i$dʩ@3 lNE^iYI:Дyd$k0KExip1o CCa hkuŹ5*L!C!RZg;[~s zԷڿzH[ގW7>/ˠhb@p;o AW ފx<(D-" ;{YYxA"Lh;_4`JZhMzc08A]}XL_x*Q:xc*|% tl|)~+7|"ㆶaXACAv9O-%pNFd HO`\{kRjW>m@OTq:P#K.Mzm{t:8عqOcڧAr*a0VXԲ'_)C8O9քoUoϫ %v%3H}ס'4?ݖ5: ^)a]sV ҄ 2Kd8!_cE SBzֿ{?>܂i؁#⤭TWa]?9{z:?S?'ђW6,I;N~)Uh%R~ 2Αb8̈́Ə>#^L>w}6kk1xc?ׄIOW!c~PZZap< 8Z\l&Y B);V*I[JXϬQC&Eڳ0ssu&9 @)g.#9h<].zSiμG>fj Ȓ Ag`}Bj@dg؀&L`rў{yDWI`kVT}&=IJrדf-^[E])!~J%t(+&9#:NΡ끋Yyt YiA8!Ixֵ[DGiB3*Lg+c)YK@4}I(o/Ol}d7aS\9gl'u >zTJBi2cf]#7B+#?9><"O3zK t^|}+z*"i OfTʎ"?ԃtjZj~Z1ǘhy3ctƷ5~6vn)hn﫟=5~s΁?g?N}O}c_w.?,=90w0-=tO]"s=w;90{zCs s)<[Z/mBsiok֖> /<۲3&Z!n@)hiWt=HlpdԚ1r $ [b`gOCyߌ8Y4LjI:6\=$#0ۓܼɉX3!svt:v yfOOT yl`UR!N ܕʖum-Z+|Y"ɔ b% K%mR0HTu9?ڋAic/Ҷ{j*SfBFwC%8c=K= K^}W=&Q~~ZLo:[ҏ_U!ԱH0$1)J?<:LBQt^Abc@¾DNbim _M3XMOָA+]sNh˖CU0B[$ I~ȋ'n~d!:Ԅ>9G'\?^Aa]MXб7Q}$H@۟u:rv"Kgb+pta;ޢ" [XG`[hNu-+-( [ܖR{D[P ]4:|(cRr*ք*@x[=ytKXnxmkN={ˑG$KLz7+gXPO6QޕS>K |etDKT&cΝ1Ht&C=yuzht8,x58F{i7$XlsRuhbBlL"Ǣ\Mf[ :n2C`?ϳ$9\^?MJW֢ OijHPV^t_l:e¤RR;a/{W$LLv{}K^%$ZFfD$Z*ZB4owMl.7]m~ZyMF[80* N{0gQBos/NwKʭ{qM ?agsyЖy IR銙 VPl zOWٲa/$<crhpJ־L~,ўr8+fl+|휸'YPr՗$Y^??Ao?YX-]R8= xs_&;Nyʖ7t-qc+Qؖ5p Wde[!or W4~H5ʵs t,'89N!85#҂GHd|N ]& Jž!5@tW^)R$|Ծ'ySQEsb4ґϸpɳKeO@K9΋\K+6r,s|esC14.c˝|Yss|:~| OѺkEm}[C {=))Xz[nX{OI!.Ź>aOEg=uG.{?[ݛI&aَPA^[oUƐ X]Z P< GaVI}bB4 G@ȈєU @%I{0liro61UabƖ߾J4%COik4NJ%Ɛk&]/qIDePjM0gPyv$_"9IhP+>&Yȑ>s<-ӳ$=`_@i'tN!@؇I1FC]ba.%IdE_%sy=^;2b[溚cF:#zWꌨF;|k}h,%a|0puG \sGA42vIQ;=$V<0 #Y{d hD_(2W*u9فS{튶h`{t@^[Dut\̬uN V7)Ӷ23RZC|K#W>1tJv)p;Sk3VȺ:mP~/YV/U3C˷:wSM;-̵it~YXzM MȜ(W+SXuq9꼱QxOGmR;Rǎ屉?~(S@G$$|cKv c0ʬQZ{i=i2?7,o=73upad嚵c)]&8ᱹ{2xs@wJ4&:l" _9o!Lf ޻} K?qovjΝ{m*_Zo>MW|=1exo5޿}& re]&T&3t% }C ($vWf[K= ~uD_)Hg eSY:*Ei/gعu^)_#/ױL  κ vFs r%ٴH|8EQ}ǥA9Qo&j)ɲ@ oZL,hRGsVQ$_Pה%I@uj<TvQKܽXutg4·:aLD\R!ϣ` mYOǦ'$ 8h Q'02YKz ' `Ć yf=2:4O1wJ;)ֺv䙁psn#olvue[dE haSD.DŎÏ6_jwla2mN[Xl IL.#6W?Dex&v:hxpS8d)Tt/>SC<90[OsW)z-%S6tOsOMoOIh=Υ?=̼uwzғמ߾-߼90K;XXOC1 b=3`diOiipciH 7"$eS|5 ,Qz9 ęI4r- PM;Nm - yQȑ(,MRP/HԖït4~)? Ɔl[j(yܴyʉj xN0W'@_N <81a{z,zJ%O%&00R/q|pf/4 b˫,i5I ՆWꏡ/V1 Mt[^ESK Yy_Z ?PlE#eR{~) sc?h\kUVp;bB(i]{㳐3R9X*.8cI\V\GY!륃+$,4U_l2W·S |.ɒ<m6rٙvlW-n(WP $F-GA z?REa]̤ L[]8G/@tbTE8FgNP}Fф9aWM9 ؕV>Eҕſtg!o) $ 6 g?*%n?\hu( *4u%Zl֏ D️o<7|%;,ym8X9 nC2W JFkAUHh|M/0>.V~9w(Bht/~*ed+=W/$1&IԷfh%|彞~.{Iva5&a9ɘֳ+4½[}Ж&KeP^(^tB쐎ACՖzz"XVƁO%#IKg3JlI.􁐌RR/T/葽wݔ6O i(?#pIU?B4/wݿOPËz|&bj>c`R߽ۿ]01- 3FXA ˢ/B<ai`yq`ځA.VyC?b1I&"NU- AUamW9ȱ &Z!Aׄ,=RZn}/$A9 [}^ ݶ4'SJD;ل ۚD] .ŌL!GOtB ާyuo4-Tl)im{9AmrUR6/R{ "Wz'3_euD5Lu_:t5{:GpG.齛8Ԍ5멕>p?}=}$'ђAaL4v+}92c&gdKprޣz1|\?:=WGom~y2)IHVc<nkyFi;uu[M9B{OՅnl_s9׍B/MKvT\OI*p?Oc>HW|P袶Z_}lAgkT~XPTf=k?/Jnx$g&9C޼X],n}"Z5g_aO\?E[ga#:`g191u`agҫ|/E'=F@R.{3{k e!m8k{X!d(6*ތ(zsC+n,G7?q^5+$e 98h- ʋL^yx{kD-_?$B[ u_I6dׄ}~{p~? N핯T\L;w,]hw {P?Q_Y3 cr}_-\9q wE[oC[Q}f ̫{?~mŻZjZj}N{ܟ;rW.{p,s!8ɻ7p{YnK~Jz_ms\[ <so-pO]'Zoym}տ<Rz[]=sj|5}l{z{4-ƶp-9΁|l>yG-mSҾ}>hZsCy2~P\l-?tA-1XB4>1a>#$~I' )DZ>Z|q%]nRhc8e58"d2`V XpV?7nC݀6R$h4um%F>&LQLAEo3`m nyD30J BݓpCFP&_Jy$d+N g2PQe} Gl <$poPS&mkAvhÏ4 䣱")p«/F v6GJG:QlGczY'AI60fsRMB䒘02wBDH[Yدw}6sI-ضX#bH?}bK;YXᢡNFkGXD.!yjiKdcV# tD'!A^ٛX_ӞFljetňkY#MIiXH0-2(Wi/4s4;}xВC6i޶ -6 GyFa(Q>M)m GїFt ŋ<2/PpA}["c(*O3!E7ahDGPRPB4Wb3SٓqT)#5ZO{NK]le\`Cg&]_Μ/{_Ǯ~ {:9%?639*^:p'?&x$6vyI9ْ$˷o|}8o~ioH"S AO_+6Ʒ}I8 IkdU_I>^>7+(ֻgT&pΑOYtRS$@<7AGAZWRFx츼h3<$X +s5W/׈)Ȅ59;\<-AvŷMfV]GMS?PHav$w d*~{1}ȡ'lֵMyi3z}s%{d&Dm6Ч3vA6JiZ[ք'zICy/|\e|'UeDjpiE N#juI>9wT> |!R֌oFo}bSvKXau>\dnc Gd}\ZByRl"Vl(Ӻ!UXfTm̘4uC/(Ȟm8՗nt~}C m Ibp(~Yڙja@ S O}T7y10 8U}^X1uNmRab-߻N@g꡵G!sӧ2D Y\w-991)_w uu0-C|vwuNRr10vO /{k'L_?6~8jZj> ̳C%=6z{s;sJ½ [}ܺt湼pW[g:O;_=DKm>{v6ƞ+S.O )\95g}q4o?>}y)y6Ӟ=s{ܞyS?-S뿷~Tq#^ϗh߰8 biېo5`d1%'5X` $eɅ3&0r~(1bmuTI8>8zt #Dz~ %I߿Jw$Zr2mF-,3V|yTV`1 )I -obY֦d{d^}$%T::MǵTtV/ܔ$kJ[0-6% m\jGNRhc2fIE=ضe2Gњ9I%JV[fdE3l-8gFit' ajeSj9.I`M_0Ah7p.Git"x6z|'0HpTi7Sl2#|9&w)?'OŊB%#^,ǗE< kеd B q,hPk xc TV (>odC"0``L@ QmKdVHD&̈́E?&ˆ8u^Ӧ6iM<`kxvHF%|K m({EF* 8򲳲v*Ed3P"7}5+chͫ?(B8~Y{Ԥ{;Oi/$] Α|H:ZZ ]$88rgEi&adPY$_^M~ޒe_/~F)u$9(kg& i'!%+{ F,كnLd귞joI|kŹC}kdmI3Ni'AGIб(:n'Ғh@b /}=>e U9{Up{l48Kt(ǐ(rF's393Ѥʗy3Izm%WO3W /Sm U-0fqsIJulD7{\V[C֗TPԈS4kO[_,yYz2>ВtNL4n< "OA X@&ݬEzXB\|1b+׋/p:8h=d`JK"P|_8RZF"^-pW \-pWhSh<c:msqۜi` o9EoKZa,pƮR>ǻ:v~L6Z-g`u}{n=U^|pN\SpO?}{/{}=m SO'=udShrHoi:om;xp/KQ X7bIHc,a0h\FLLUTZ]-H :TĚhHe(X$ X&[77o5IS`! `M!iep  U{9XVaR`cI(@Q@KT>^Rt@8c$`bʅylQ x$<0uu40-2|+HM+3x_&01J($t "zDfhNKYҌLI1-Hv2eNaGGxR|n6s* 9>rrS1-Eyn(O:#U@ $*\[c9}Ygb4sU')A41u@m %`K\MAUPSaX1Y!&[qWe —W\G/V"~>dYt`})®dt.FfdžO ͢B'R&H$$d\?AwZC{+N#@f.ZѱA>#I!qbX,SN$=3>8kG$@_GIJI'0)iR$M &d4A?k==eN DuPOاA/{opm4_\UZO(PL3s*j`_ ?IU{fV.xL ؙ E^bx6)~IX2i靧S}+pꥹ}$2)$3 |!s/@k^2&v'[՟d}x*@7%ii&OE#|s *`ڎ$m%hIg^Ԭ5DfW>'KS<ʮ|C (Fy-:Ov+26$}X:>sf}@N~fs}3Aw<`}6#Jk<ʚ✂z?-+&^&>̌~gA OX\{Rur̫mb\1Gx:2iEou/c$AcO,ٗM]Œ='vV>JcWdz+"vAUlFKiy2gHD'vƞh9?x178mlG?x2UEh*ʰt]>$@la=^]/RzҊ-><íE\f#xNBvI ?#6=;v]s$`dAvdŴ7s"z3|8|"+>?f![Ax0Iqȁ%Eгtd^Ar\?Hͯ:og>1-+m+ryʳV@S=-9yyh~_sI[#?x:0B'Z>y3-yOx_@m\LN $Q̽lS˺omJ|C MphK7PkB3P\d8ƺn~]t ^LC9y{Mt (%h8gI.Y(kDթʉKЁh!-\1?3 T#l{:M=h~ERs?;暒4??Dn~/s T.dWk=L|&9Z@pt|ZU:1I4~` k{IuT.VFJ_zt8.KdE}>&+QOg ~4c#`2irj֤;Qe _tI~h9g=H)xwÊ@=K|F2Or˳^l9QuY*r󣜕U94 m$z$X:"O:Ó>h8k=7r g϶06rY?Σz3nVEZ 07vƤ^d0K0~ϔY)]CjzDh)NQhXc[[|F? zA?P4<:j ?cCO_jqxOزMXuO4Ä˗&gh-? WSUb?b-p17^&-,s$k|M }7O_&;%s_3<t8o6-`,^412ӐdYT4{ cมՖ=/mZ(=LA^to߶GXL9[w堎OD@uE"/I s|2.8e)%΅U;@n- m떇Gפ{vU_t/QRnqn:"ZvDSS:B x<+^A1>v^ L-\I j[j#?ۺ@IDATnzeXOxG3PU85 @>!ɢ}DK`G/G\D& n’Iő^MxI$Yl]jΌXq(V#>S:# G\23H NY[OhOѥYh^Ҧ&lTPzrO5']:P'Y;`o}wޓiQZjCJޣVR{΃rm쏾Q_ f=zwڈ9ڶ婬>}SQ}QLɳ0Wl|Z+v[]S3+?/0>GyNn"02aOWw[MwYq%E'6؏F2s*>Chcڱw+YMd੮vzMr[櫴$dd^X))es!Շu'#:`*(7O-{6YzfjzXi'lBW12eK;WЮ+dD>1QVÙ KαmOWH2?WXMk>>,Tz6ºAnJ}tQG`q*ݠV#ߑ]>)%zaRVZ#MUy#\G-R ohxU_C B=vt5W%o忖ZjiYby-ᗈc|vts2oz\?ĶQzs}\zC߅sW}8Ѿol+p[Է{mt~(yΥ{ n?~Ju܇}kxӿneُ]ۏp./cd}ct-Ҽ?1-Wmx ұ j 7^JH: '<|4J|+NxQ[ujH%@Rp#`C wCbIޑdӰn~H¥#M)N4pau8 ܎|W::;؇kp^\$7sB†} 8 iU_&8Bx/ZySaM%`d $^~CIsdiuk Ag…{a`ڒ s~, Bdd>*%6(YO_QO@^mgj Ej; #ׅ;]of7}`Ȳ(fz>peσz}BNy=H)ڸ>v'2.ɧ!?Ixi$Du[d KNhӖup}ૈ*ѣf42'ۏO[8GHN}gD _GB h3/闯V~rJ6#\L(ݭܩ3W`'15@X ^]d.5?r- MdMJ9xr9nŽCV"@=^`|[)zE|ykE-andk aA(*p\B5Ml0i>I ǟh?{he תcUYǕwc pA$`WrV^IZI?0whodĹgI7Ҵ5w|y{Ntk%c%ngNJUAt v' s M/jЖ{#^$Zzdp5/*Uk)*^>Od^#J?{oH^r_7Km*erdrI,~ݠ7I]H=ZEL]Ͷ2P#-uH UHZyN4qha ;h .>ڌcOKaMs^?*KHF>IR^VITWumy]&JVg"am>sv}:O:'yqL`Wmʠ<Όjwz!U\4P$bvuK1mr o7Ϡ-=Ga]@K>vKo$=#\ud>nB4UNmʹZNdꤚevζ}O6A_4dC-71Ҳ߫ǽaOmǬUЧ|=Mc ȮJ?D^w_hk?SQA]F>\A#E+ѧ25r.jEO| z3~zDH{xD?JDȱ[w$݅pnzr]W \-pW ,gGb>\߅yWNaxi=p&&Z_4ʹp[tC߅sW))w}0 vz&97|(ܹ|Nogߧwuio:U]8?}Om }{j{<:\O\fp??.!pyw;6C<B\%JD$rI]aj`ku(M4qI{x (Nzgkdp?އUnjT"uJ3L&i%2tQqh 'L1j|H` `,Dw cP&rAI0X\O X%ܵsʕZMY- Mdt݄IM0PW\ 2LάL/Efc{'qi%JE(ƦhذZ?EV/=Dl rd T:4s3$xhz:Wή99)1hݖ/E:b(6H@Ƕ"#=կOE{w$T\ 3Kv\=]13 .!984%r㫃>_R@l-9p'faq]N Z8xf-È;UΥh'u]:kU?ThO2H=6{ ߭7]$74sϢa4=#Hi-]taZ[OԤĪ}8q̬ʪ ,Xm=iЈ/Y'$6' pPc`TzeUYQQX}'̻/|MQ]L$K=8kSF?!G Z;biN[9 C"t¿;LOE`Jk#0~˿e\Yd]m,>j'413'Yp'IIPBx/nYףo;pb5ɗ^= SID W:ZKu&gAdT%yd)ݕ ޱTrХQ%ѧx1ߋ*hŽ] f2AD[i&t>pJ8*O/y9x :$YTKyx&Iy}>? V\vIO5_2cv k[}o8J><&vگ:;(buM4ւ<˿ lSD98H̢nG7}.4S뙉ϙOΩY'A~5T~Ӄĝ' t^96{xNDN85n;.񓸐Zo㢌RcUl(4>+`W)WAÔ@eTxiB*>Rk`9ET@+$XupS-pZMuMήID)am3_Qx˸? e" GK12@&:wEQkzꁫzꁟ|xH&Z>{91ok5_cN|i<zޏV==Co[?2&{%n7Dk~Կ?վhnʿ K:ԷŻT󹋏s|;n]F{)z=%ⳗO،M}[ߤ}/v{ndk%:+`Rm,76u [@f; pϩY+gNeg \75y21c>dDK_3jrl-9nԛx)l65=>-XR_mq[mIY̢fl7]c6LDpKyɭ0&)^hrT#އrhhWwOܐv7p}=i2gi \2hW/^4ɣv >,.nfN^d7@Я6 {>J$2) ;~$3OS*ȇvqÓ}R9ٗ"²v7bW9m9c@Y;| I̗l^@Ʃc,Q@J;{{]'`=Q&yst1(v@[\E:OT֙Ҭ1''!Q:!;/ Zn)#?A\ <+$\!s F'1"|oi yb<C_,;8Ibn: U٪ljXnñ'nYwTXLkU6O`-0:5ZBJ-v5> lJQ6啩 O7S~!j8q5s =v§??\]_5j,czҨ^c~`^(01}+o߾%^h:s_1^~αcqU$8~q챏9d#ܤNOD8?C9&O>&R<$:`}lVʩ*Oĉ-sɚW7F>1ڷ @3aR. `ǟ)y{ضgwP}[?S;u-l[%ZWF Di>n08n gO|׵-@_)̍%TfZՍ@(ggJ v[]'⡔fs3ytlDw9*'ZÓh w3SZ!jRR1,VuB?tPσC xOR li _bDOIn*"ByD&AJIXe&xǭEjn6! \;=uFvu#OL̩Ygl=2_=i YqLtoў|ixY=v$6nJ_6MM1iɳCZdAf=p7-)+vf#LXSe?ૼvI˔f?8o.{=B짩=s %@#~-Z:A֑sŽt,]Vem8%VWFגR'Tk"@=Eczq|!eU7gzzw20сй6ȡv ^3#Kz_jSc|'8.,}8 ᵘ4_mie.'m㞙lSL(I5$60<1";wr~T{au؎h)iU;KߞVNY/]VtIAd gx pzOICS:;jR?r]M$WB &9!_ܳ o$wɩ] c/c%MUi֤hWa|/ n(g[7 գW^>nf$, T:XЗSprƩ1q s9 LƓ}Fh,!ҡcDTU~;g6'Ҁ^ 8_]OH^r$$X(2)zOĖg'L<ޘS&ɚ|$Z>{}98}{й;_s.vG22w, "qn?_YWx(2%θwmH3Ks9o֪󕱀Qֺ&?$1Y6>5".ף郐D:>_pbEwϸÎy~=kk>WI$_0?:%P_ 2|y}&Xg|})wE}@_sbwt*Ȏֺ23ko"DwB$)}:q2!V]E[?|O.T]{m]Q1Q6RAqҏփ d> (z+COMDPULyk/*[!tvJ2Z4G`_kezjF[sGrX]zOZ?[7̷@CSm Z}ow`g,:#=T&du@qS,˿sݻ۵\=pW\=pO}D} !{ys^µ⁛b7Pln<6Lߴ%-s9)K4CS}q_2O:\jqKxoi>.N))._ᝃ]1tw߾M}[KK|:Kx{m`{luz(9xoJ-ϩjs7]mKDoߕ^־-M̆EnDd߳ `vkIx1L[2nരٳ2R^kyw$xCZhnZ#֋&n>U߁۷z+Ix)+uO4䍃[| .W>*56C|$FSq}9aȦ=:SmSVdƙB-5䈴wc3R/|rҗ$r7n&YJFA,4 upե+L9ڳF9Ȫ(X3!A}a[,/n%1Y'Ǵŋ̐vopK + kZY%{}b$*Mxՙʱ<ݲ*YPhn%I_5ƔDc6cTEŎʈ-" :+'D6ݨ?KqPkW9)vET+j*ga%~8v /QkC1>?v.[ {͋r ފoy=f=㈶O7B7yb_\'ŗc mtsem~V `i=gYG'v;\27"Y= VMɜj8 B|hufhށ1it{'URW'EX 9!ꍥk[w?ܻ?k$%t^k'Ffb_q$y.xrd>R!Ov|78k,wnI%?>lk&mI50)J-I>fГPLpMLeɚ+4AhI`j¯&cvvTy&x#=ol.o?&S59aW;YstDjǶYDK,g:xpO}^p)S*8pهP>5{ru-}ki*mA9??ILCWf}qb/;S:{wJ 1V:Y[5M$̽վ|֘XyފC'9uxc20$7y=tyWy8۬yFEg\v+1 Ďy*wNd1i)sc(&`\/a|&[Q e}FWnIu<ʻ Aʳ Y3kq촂2lhcDQ8O;_w}oFW«zꁫj>?u LHo4&t)oo??~˶=wc{=}{/o߿o߄۷ھK4GSx`?׻c輞_~x)c9}ߵ$cxoھץ=C\|)UNmK{mel k{{}^߿o_¿$o8K߿ld0;)Q/0rᾌ-CKv]AKy NP3hkkjRx}(y%ԡG&[^hE-9]S,se.=MW״lCu7ܢK6jKjV]7ѨAgPYQ߂F׸=rD}.w /6rr;iUXZ 7j7ׅɗ׆OP*Ǐ}i=`v}$n 6/10L,j;V e]@]rF6 nNNcAb1Q}xr#P$!P>t P#іʋNW1!ݱk>Iů?8+f L sFjtZrM+]sE}Q͆ʍm^*#^l*C٘q1>˖R!2uPiћ81˿ōCgmHB粕QĬ܎zDqmW",6H'ͮ S|#ӷ$vǵ)IeTOLt *ugN O6Y_K Q2o*IkRʄXbκN ѱk!#OR@jb͖;SƤ.P'Z!>djbdEhYMB߮֋?-H$^I~;o~YtDߠ.?sl}HfI@mnY i9 %\'XDʓYť;a1^,@jb#IƏ]Y/r n$G#'&ZRLj ̃jI W'Os"s-y?x{:π'mLj21 8WӰ>h\#:TLџpݶ JB_v?5Su¥*[cE kR]-p\ACk`/6c-&rJvLƵI]I[sa Zh1^ȺCݜN#ұG.֦ʓ/Igi m\[0?02# ~)H4OIU}8Vg}Ol̿'N/C$zh+Ɖ-4' 4K47} :N=<10u^‡ة/gq߯w_+W\=pW|!hy޹gkSߎS?fl{->xo]lt_muʦ&ZɟIN,ܵ}Jǻ+oOw^}{۾߸a{/Կu lOci?\և{x)[Y7M?e퟾-ls}[Gs<*¿Һl:Uϥ⹅{ȶyp7$Z8ih{64b/Ȱ⦛%7 R0d7x %a VQKK7|ݸtf?yi" g>n,eU%:dSwϛ7nDs%'ּDK^96ɗQ.F0GlrzN]nH"/ut h[[RBq$Jj}l-I7+^X6&7݌vz[hiI|Ÿ+vv<#q=Vզ^JFUnxKʱxc"EZX56Һ@lsN|죑b 'Mqsxh%x`Uh ䷔V%Mhq;f[X7V1+Z\cAbJ|CB4l _-='uķ%& []v^T#^{ԩ,ڵ|J3N\'B$]֮纺/S}>HJy5yoℴz1:7c&Z3hSo]o{͵#mջU98Bھ#!\tJEI [<V?nzY%4Qap-ȚMݲu8"ǹjwK]*E)cZf:xc!M$Z١ITX;CcOU[kF] 1IRZhܳ߼^*?[^-W|ޑp&Xރg<59 <}lB>>Wד.2/zυǮwL˧TV4XkↈIq 1('@҇#OXuzcOڀ61.PSD>MwGBB{1W>D\dd]G"w!?7CK:phnY C+$HpW݉Ԝn ͕F[<)m7pl%+^AJ%f+M-U+beuNR, kʍ'a >I[|pX\=Z˷nvS|l}pËMw$l/_o㟶i`.dVld4Í&^i7X36OI6mvj J 0f/&Gl+gͽnڔF$J7'iY=ҤJOыM0yDK7$'2f.E(7#kQOcLlX|# ;)`5Bq'ZN,F?7HeWi 7^*A)L=O1&HϚPP2H@3X@Lq:AX2#a+ݔ^ܨ&YǾcm&nqT*Ha]}z8k(k *o&ժ4YX0to'1iߣhQbFp7[xOg~ME:fKqHraݨ9XB`TiWZ΍=Ct0/CuZp`Ϟ#Yۑz!25 ]2mtoWApd&4!{j pG_).v܋/~Gtܿt~}>8_9?%Z ~}}A`2w=d`N񕉖'߼4KO/-!V-o{|ʹxO5%I_?O4uvEtrMsg^z`WI)H}\>?!G^h֫7ǀN3ZpS>]eqm'ֲ!]OD䃠C8hV#p~V# N~+_x-M>&Di[;W9zHv>,|D}W_ì"< e!bA8޳$j1N'uպ Vm9>'EX"CC=ʧKΌYƂcCh4szv<ٔ:}صK5<\[,~GR3' ] oq#FX<'=.a23=IxÉuN&Jۘoղngh#TX]h'r!&MRs\kք)`!$x=MQ(׋ Pa!><3wsSs})/qY܍E!8Ysi?ˋX]Gc?=3kڬq:796uS5<tms\tn&;Uq5x(oX:.ӎ'4ΥO}C͌1)8#qY-~.7F|XWK2J#E/h8\iK[ǝBA/cg3V>tĶ[{IPqSEqķ{_ _}tW\=pW\=y ϭPK'Zz^y [Žm}w~<6Gï_~)^po+߷T{mߵ~?|N-OGcuw}}>{I}[S=OѾ–Oa}y:~zWEw9}.wz~n|n{{/ɻԿۗK{WXou#s6ԝݽU6\yc wt$#`"ٙ7LCsM\U;RXUޕ#WwȬowoA#D?U$1 ^ׯHHM/pscI|e3y##T\6N`ɶy)noqCT_gy<$O$,p7Yv%avK)n/B\i;uء59EnMʴ.&$ ^-ʉ/_z5DL0qKG 8_=@_I lNCҫY e$ Ֆ$ѿC]1Ǵ+X&0aIIP?EOc.;S{%^z / j%eN[ 6ۯ\%8ҨNUWd~ 4O+f2<8JgLb{r8o"7zwfݣ}iId1 NIK7 YL('c `l&yG.C uQ[xp:Rqi?y+'aK4 PLtԮ}&j]ՁP"]&is,y닞nq p:+ bέdMڑ5c9`DŽ<.XwR$οMl˔):뼶P&n#GP NjM!H.(xu4MR`f8xϺe} dЋk*F.^`[74I Z>JDC 4|3UDoDy1P)K?@.?i5D-zj}Dx :c \WEZSCwD =[N|{_'MGtZTNj:'^9e q3Tj -䯅8qAVX- uvfEq̿T~WE}/+W\=pW|ug*%-ozV1{9;\}.yJwwchsRl=pʟ%mksK&ZnmS|NFƾozNa6rn~N>-?{%z/ϑsιq^hwW??5~Jw w{_Ku_ٶۿ۶yNf"W7@}dhMG3W J;8-@cJ7 m6Ax?uln$Б)PEz7:8lEψj59 S|k2l:^E"'n\e>^ݑRFN] L;M&c^aSLCOpGDl<^|K B7wOnt=(N 7#SCU,G]`3# yBB2O2Nl|`֨nǚ@ Y8=/QS{NuƲR5x/pē*e;^v:E8$mgu]&%HzQ!…U[C] c`x.]‡=V+%9flL+IYM:6p|+Up=48lqsM<e[Te\S+e8}$AW0™IA_r{+|+dck4괝2 8'Z&35z}Y4%h|VkdhԑO'C^MhUДj)gk)}fx%1%_Zlx*I^0bx4-'ʀ}9`9axEN$v&LYj:4u Bh\rRȉk| sӎۡWKajc,)AW3QƝ5l4c%ISܛM0kbt{πjpO?xÛhNTK`?COYjbR#IJg\Oq72Hp`{)J#Gڥo*Rk'⥈tw M*5Q$J|?24R'7V2cUuDR2o(9f#WsPcmIR=GeH14F8Ec?xǍܼگ.^9% NЉWwx8GZ (EAUP_(3P{_rFRk$A6"Kzꁫzꁯ}_"S<>=K|vL{t#3:ީ=l>|h)^`TOa^Mv]ڶoK{M}#ks=C}mx߅ߞ%x幭ߕ)KJeM}*gP[m}7i_/ޖfCq=%+{ia_Dl~M7:r[/~lmI0n#/a{6ܬ>lHrc-v#_لl$JutCQܼꛝrBWEU6ߐhz%Z~>.&:Ĵ!~$dps-p~~mp?椟n ٫3M/hHxzBu)K2u= 6ϵ )v)*n ld{ z)ݻ&HχK)SѠ,l&WO|JS^>'b$1ä˞-#G */Eo7˫F^Vn3z񵊼pj^pck IA{n+iU?Tw?ۍU+-&?Rt*n[fY>$X>ҏv'xcF\ &ei1w܇2,yu@">o@ ;^ZmQֱ Fxd8/N+q,p86_7;=5R`eU]Ha:n⿡)|{WK`D!d2ۦ%AyI.^C/t8~2#\ĞӄM廬J8rܱ"o3KO%퉭cUuY.F jm|_1[{*=WSQm\˥󡒉TƝWpM_z5)2H0#6{H$ի׼:wI&@ S&Z:޻&yWgݕ !BpA\$\b7 t'WcbP}c`@c:dgS{I&N gs6:z);jO9 ISG?Y$[ՈJGza]xưCѷALiqSĞok,WSy\5JPp%4w q$8$X'hG=ARy5l;B|#A?Sn"oq/?a2 o1oXcGϟ\X}AX9`5 cgVC0+ɗmbK$X|' nlnrIq !y&V>ilIwb8gbdAtѰ;qE"?>;dlK|br^`3q8XVxy<{b0w$;t_|3ƨ:]01%{۽\ zꁫzW۷~Ύ/Esɾ}^zܷDzޗ=߭KhO4ַm߆F)W֞~^/x/hMDo6r"dl߸M%)6qv[C~Xfc,ڴ7zʨJDL)jxXfD7`%زϭSO Y7o+_=jg}w$_ ɠmu,x8ĖOuZ;nJF`n1+RY|zF;g[H3*Og nv(&,[|2@꩔(l_ WC*Dk]DrI6ȡE+Wp[n kƊ#ӿNScz=&|}T.:BA*>b'>Ln #>/M,i3p=!Rs[c$$K_} }64@_G+|*>I|@hU~hpc ʊlbzTJ{fX+^`ɺ!!d40og_iǖkc}zyF:%Hġw>+Fm]b !N>_0/ci{Μx#`IۡPIjk#~KG1Zxdi 'uW`NmG,6$9n9Y:q4n=mEI45mL#<ȯ\1e]?|/lĎ-+U d+-C4]0BTRM,i=4{>d驖~᯾)޾3HF L,]NV`Xw\GT.(G{oǽWOqS W@ & "GVrmGs Z%Zm)2v%)rrql(>&1YNMzrg$+ߐd~ I=DqWxF0FIB'OuˌoMӦqI4#)#9pAS=,13g`Kqe e" u@Nb63M Ȏ|Efh)gIASi2]JV>CgHzዬڄ_Sw/Lr11[IViY.2'{kw.r_t=6l֠ |wEU#j2Mlmc8 /~5F> (J5Ze<ο b7%lBp:ћI,jO(I$ׇGܚ<rVMO:Gx:2Q=5fTl_k *ʌmRdTD]!%#2U{q׉G:|cR$Mz 3&#?ޒ8:مk&\<;1iBXQnS~QFԗ,g\sǁD`|@P^oTϫWǔ!.2| \22L Exu_Z߻dlޛJxW\=p_Ds%Z^K M͘[&>t9s{*^/JyW\%f;ѲcS~RD+ީ=l~7/9oi=w?>Ss&]~Xf l5$`A\?7ҿpRMnJUHوxn)zlhڎ^/:&V nw9$:L G+#ntMSrz$kx׌rճɉG(~1kb_bI04'vt?lZKC]vm2c%;ϢHZgx fٖr@|PŨ+##n&`lߖ߶>c[gd,Sg",$:la= ]++#oڴC,N~Z=c4Mq, qKu0*8`mlA>E `^RvF@7:G{N=6c l>p')`"{KK"f[otf'IXjYSRT 5f8NuI ͡q~$ Y&hur$0<].#U+rpEOzWFtu B>&-yo.y׷&d,?FVE)dlT[6E=9ҹ:v'L7b2+7yӨ_dݷt|{RmJI(9e"~߮מPXU%}nR ;v@r2VDD( 9a ]:&D<=>\H?2h[^MtI>nҤt$L/|I77fQ9emV{b2<}hQO9ô'PY>?4)` ïh+kӧ0[Ӝ# ԧO_eLjƠcvQ~ׯY^0uW@ckO ۱cLᑹ E/ulҞ.FqbI jK6xbxR%#sE/,ÔI,kGjsZ:&Gb3]$۫qIl^x/ @ 34f\N |oTWHY?>zӵSpzꁫzꁯs_o@^球kΰۥ7{~V51hy1w.۹w;Nu7 s8[>t{{nKwҟ?-Om9;~Wyl~wU]ݷoS[oeo8)o М)yq9CuW^{~~?{V-[N6)E}kMkkarEa{SɄ9wl~'7"eSorO ϩ@tC :J"1q(bImP%,8j nh_'QK -^3a9 e^lP:_mЂaf4?#ru#Ubh$ ˄3׶<?qlTǺ;ئKft2]Sfn^őw:L[̕j: `i'$Ӱm־e[\>.u ;FIYIYzƧ&8ΪѺZ$P0qyiOΥ&(s-,)ZpUg\_]}5-muX~yk lWLF~AP)3v#Kuœʡ57'N'-MbSp`_VXFc'f}I ɖ6~+$1 \[6oW}N䵤Sa'Y*ܧ.λ!O"3qlM3AuˌR$oDbD0:QIޑ=vXS+1[ [O0i$Jz˩ǭc%}/g{D˗=KMN^KUwaoQ$E %veil9dVOCE;gt5s/ "=mW:A_"I8 Wb|T#ΫɊsoٱ籎9ZylPs̳[nE£O ꃅO)y˺&Z^ )s_ܻ3ύsmN}cP=QLUOG@ǽOHRG!U.δ}N[&o~_Z]^ӎ+1<:y>rcm:Q<34̜ShNg SrX)p=W~_FQ_.xfƔO32%^q˜і[eOW9TyWLD0 #lAl)EZ!Rs+RJ_}ayd!ȉ:kCr\:?sx\ԺTASQ9n' ՚Y 86Nt`\b_~n|x_E}Ҧ{]=pW\=pyVDKyܕ㾞q]61i /ɷjqV)otK?uO۞_iDS߰؎mK<_wx t7>woM:wޟ go⻷oTr]NKc}_]7xׇ|kOwmbw֍Yr~[n& 뵃M&Xzb0(nS -&-XmKl{NxiWx~ )Jt qTN;3Y O>Xl5`ccؤ~-Ϝ%ڳTyPjK?}|"߫[|U&=ڿ7<ƥxI ݌#AKǧ ҷ!\& 3p#F42Ls +_iOz2IT/H|ɩ&dxzS-wd&hW[mFv:݊[> =gkWOT(H!WB(RYddV1o;Tgǎ eQ|dU)оwczұņ2HvP~R2u}$I\cߙp*FqDoY[E:LTM=ں\e,n_Ǎ=Lӷ!Hv1EX4UFRQʋ@[X4tiT!SYv<jJrȦ˫sf kA҇zKrtpp#zKY+Y;3%MIܒ( [܎*-m8 J)XU$ѳZ{ųn׾7ⷖ?Bx35q42DZ*ʡՎ\ʀGLBm߆^#/eUcV}ao^~ r5g}mOߒT鉖&ZzOO%ߛȅ&):0OS8qGMc%_`y0{{s4&sRH3JNQs1 ,NY@dl[Tf~ w'}y紩w I){Dms}{6z8N|I7/}x d:FR~[Kqt6l/,} Z-;')ñf"f{P<_ґ"Kqձe:mb37]Z\2VYV\~;GVPu/`\[ᚥ^9uy0vwjwWqK%78"ht{Sm=oy[DͷQnð@L ?ELټi/[5ݲ۾WO馦 c]lDFAEnHSm5*˶ xb7I&e4 o%'\K+F ݴvqs0?nUek ⫗ueS0Hynx;'k6c\U'iK$"d)?<ş $8= $Eh BtuH$[΍S0z$ O1JFODK^? $*#<N^pL8qXm`ʈ*O+5m""Fco QV񠎀gؚ%?ѥ-jg,@`2^ #xxv$!a[:Fݤ߄P֟V0IL.cm&ٔv |_xd;2Q:0_ #:yB7i`[~O?=Ɔhx,?tJc&Qe1բ#lngy?KtPJ6+:`%:oi4s I9Bѷ:"'k xy @ؓ猾>:V %6i/NL;6R7qETfmtu3G>s8?b9U̺,ƕ]ʷ1aDy XAv>}(q?E H"=GlE5QE:] VK^+O/T?_sv sJͿ-3}_՟}R_zꁫzk@sm-ptScgQ*n9_ݺ{6mGp73fYqb !12⡈?\'Wܐ㓲wbu?$0Lxa%-'[I#4Fo3#!Dgu'ldu3[:ܸr ܼ| q ii‰:AfZ&/pQ lzR\f\60MW 53L̩ݱ%}$ -M^IHb%Ib$ D$_&$̕'X[f,QXtvczj'DQ\tEik QmAˑU731 3'PD>">-K_H;ݓGIfI _Da.cnƸ79 j~ThDz˚qf|_)8 SA^kmf䢞3s))U?j AK^O_Ԅ(/GƤ fs}8*ʼ r7ɒ{8?xʓ,IdK.I|yO"s/= >?DtSi ̫ԓ[߽wꚙgΚW{u̿k(Xv5~Qo$ƹryoRsoE2p_%G>4)gsg=⁑ׄ<<'YpLc$Zd?ù'YS#m/bfjҗ!XpvL> \ચO.vQ8hB}~,Rۍ Jw__Kn /2=<1A)'9'1(P4S؈S%{9h&6hڰ|U[$,)H߳ςsg8!Nـ˽lKaw?Dط9˘߻GstӿOo_wo[OQ?. -){}{Oǽk{-)O Lsrׇdϥ{~?.?D{طos)]=}9{t-7 8tZ.*%$pUvsȍlO4uQ>b.j*l6NQF/䣥d>J)^pCS)ݸ]̆lgY$+lj]M yK1xꦜߍ1T~^?n** jY:|p^H,c։I|lz¦־r) nܕa^wѕ%KgKH`? 4l`CsH ^<48}nU;j׾TʌX+"t$tIİ Wㆲ~$k4 [:Hգ$jtikO^F> ,[雱Fҷ d/ )VbyEۏA^4C`(0bAPvNEnk[mngaxDګ ιOlk5{U#. l|,2r?%q8YK+YW-p?6 _G%7f ۏ^5Ŗyf_X*w*L`U/1j7چmm҂vYRB3, X:w6ǞdHIȈm _̾Z:$ F̭:fNZ$7OJYjgVCs┓\MHɆz@މ&xWi&ZnoӤmѷG~KҦH uk>9pXzqp,"巌ϭjB\b`(*s녅GhW$۳u㜨|t֯)}k,)a,k뻯k]ǿr%Z~ɖMI6Z~j.fy9:\\d0z]>48-~չdu֔\ cJ9)\͸m+ pى1RiF<&A>5Ƣi#<)Wr)YKO'sY]iϺxyOU-߾}ׇ?Κ/capOZ<=6 iAŷX${&uvL_cP袜bj}g:hg7xNEя_ bGd3Y?;5tMJ\D|74#|E4hI[F)Iq<}Ck~v"Ӵ/XxK?]Ob(!)H,$LD_Qڅ}^]ʾ,S6%[OlJ>17|-F>w@8S'Ml1ū w~P'9Tn'8@IDATɘ}U(K?; 2ز_id WPŹJ(c29id͟oc]L~S/f*7%x#?x{ߤ=>vߖK_o}ks9?/ hsmS?`nu\}轞j~ڽ~勇s_* y\B{Tȿ 68={N;2ŝSxm=~鶲tMSp~IO].Nx_{w>TupoŃwAp1[nҸc307[ M nknfFDA6uF7.uH Kgo?|ȜC 5$ZP5'`z||U'\ w#nɃtyNC,yU(ٲx^u ]vgVW}iFW"X+bP~6{ڑWϗ4XKܣd5dFha6cdkT'$WJOn+3ɕo9'ZɫF&'g)OrFMIv~0ߍ@ ؔl =<pyח %/Ձ<UCbרU^稒35;> s >ʬE~P-nA^{.p|^ʲ5_"i$Z Za{+شTǶ|ؤK7{X:6i~=Aƒ9rt>%9dIx<(V pAM F)ޗL eo&6LCul b*f=CoQV/Ü^ #;_٪52g&,("5QRLpl8MnxeX(R;`eډd-Fe>'eƤl4-G۟{ߊy3b')D9:LI㳟w>__kR0~o]|+W%Gq<d]t9 k2̚IJO|g',I$wh<~鑣~ "?~e)>D1rڝ>Yh@Ox9ry# <7L?;uVπ]c|pξ?3+_)_>)cnŕ>h0rƃN2ρd5'Zh5pBɳ@H+) b/jL0$&!o%٦>W4K|?} 9]4c&zbBznחg<bD[ kPhMsB+>:s;?QvY3ejb{q&ȃ]z QkG Ѕ:ID2>Q z9g݇DcQ%kƐM81FflL)ɕGOƬ17?mǐ]'O!T g\%;2U= 7^d.JJLJCKB%UC!JBgó27I =ƶvۯ`}wNe/EUɷq4w8ISen6 j]7Iyhg|J"ҍ>|1IsC̖}(pʳ:"84$!zv Wv=ZWCھdmbG`m}zG'"%}FWa^|9Te\ՙr&zRO\MS4>%=os9ٟ=N=)y ~m6׻s=/NT9h{Ch)Sm۸>_3:ΞK8kKs~x=v#g߷^߽~*;.G^o]\r/R \|Sw.] |%bl`bIb+++S-эdշ+ӢssĘ$+轁I&0ƍLa֭(6zi\:WNVWXf,zS#T@8:A`B7QIĠxRKL[䅻|kSQ1y%aswdNgePf{5nmWe,9vMn@Fh` ǿ0r;I;g_NÉ* 3䗈j$ Z9U# Ap6OiaQ1q-m p>4:f֩lD6CS;1(c$$xR 5:lΝGx9K/M>'~$oLp2~uЭt׭YYs}Lo(Mz-Z,N}z"=Fi9u240Y>#q?LH*ghhG\麆{rw_&Z~e'\3ђ_..O@drA uzkx|bD'S;8a]7CDNh)Sste$Znh=oI$\~Ct1Ir4ͽX5y t-A{A ^ $1#>O__·?ڀMxk.0ÅnDE3_ң[.dNS+~tnb㧯 {sQxMCWʂ|r. ۮU[I~s}d-ĕJ<Nyڢ>*ݵ(*_tcY;k44}­'{5'v9PکPi9n U¤RǣU$ '2)Gsb̆1^mFwNXQ:>0ǧ&Oh [rZGokPǚjM=a.H];m?y cQNkR5 ꢏpOHm)/㟫<,] ʩHAWRkOݍ*"7Y\V<0!u!m/GV(ȈۗEl2N;~Usuu tW\=pW\=@=/~GP_Iogm]½M܎ ڼe\o?G.垒=m~~loo{~y=;նnms籯\/rg̽6\ػ^1<{{F-w[hN<x8h.^}|._>|y ?4_6Z?Lܸe%cֲ͗aS6←Dn۞$>饄9d䊛DC%{< x) _6K&m$sDv_7)Q+Mx&eyGE*ss>D=žMm$W6Q6T2-m^e&$ hk0KOJ!!pcL l}fa%Q6jݘ㵽وMl7#$r'D&&&qҋkr7yR>9Mj$ N|kG9k^otWIBEяm6?VZ -C'A)~LȥI +.nמ; |#7)ko?$cotHI%B5)fLB&k,mDU@Ka^k+~h'}yoh)Q[TkkJoc`/;4c!6EHںa QǔMHyE)ΠiLq}Gt[Ww۬^TS8"g md[KoȷGݢ>c_|yʉ0v{^=a`b$NVcepǍ<М׽e& BhOA&9{őQ?_]G]M QmIM!kTfz|-T?KBOA$TN csl[;;?}d@Y'snZfn]^ںƆAjIOt~?ƖÒ|<}G|长y]8ɕpiK@"r=1)B<91, o:T&9Wjs;HrUIYj׆;;qd*;bܘP1ڝ8aqt3G\d$?'|:Wɔq(+ڼωԬo޼&~ŏ8-k $! Q4͆vn%߶Ox#(آ9'ck~xYü$i//.i y>yryG=ԷJoS[cPнU .ZxyY,fBׁeD+30ǽ}gt JKFIo%z1|JݾQv>_ӄMXs<90:#G&DV5нxAVZMosc 5<]UU òT?xhd&V-(EXN_MM"t"YosC:t~Q x+U W yX}Ui.SJQy9"R~@T?~q1*1XQ2 Dqjbi.}S|Q~mm؉Y|T~BPNQ\W/Yp6EծQ~i ĈH;cg-%*xi*aXmX^ڥOw~ѧqג5|o UoIR-wrX8ꁫzꁫ~5asø_+ Sw)?SxJ8k9|a8\}8=otT᳟}d~7x~߾}_>]-1=}޴߯}To58>):u}louضmO6{KCYKw%sʽ|KXni{ ?{W ۳#.+-# GxuK-@U&nƸIRNŀln&Z娪Cc8pe3em)X2F`t lʁK$ZH&92nzx^! &C8晛*%:E jKmhM]PT?MG`O\B^A Q ": ;R8476!nP"ʒ=Y!q'm 2 #qa-L =EoXӬl'n ˇ )ZѠp*k7$e~K b%|_z nqFZ׸DTw:ʇ4 …?!ΩMWUMcmki$cIjOWHpgĵ]ظɿhqƫ qG=ފ&Z0> >\{FW$d:f3s1b@~15<[䞒&}y-ܻJ>剔1,ZqH17oswZ/U8IQHDX~hrZt%_-.?__/Md=O%&Z~3tnI'As8CnJd䊯V3 Q<:+B &t{ Z>>C/XG(4-sݴt@mr%(:H!%Rx= ^?Ik4+!ױߪchF`|}DOBm`E&:fE9ʤ\ָ+">]b~ǽg_t9?qg"0&;տ!A*$ϡ[LMK_DKp[dN\C8 ]Qs"`ӹWA\J.wK("i\EnhGc%esr᪜`[\*-^i˜ن;G@G t%? 3&siG,"SR=AUd?r| E qXqII(|W1\$az:ξKgѦ՗*OQDܤP5V0eCo@dڭ#$n:8^[EѾ{ڈI7:5&1WናU2u' Z}K#[Liܧ{Y&A71Sd0ΏA;>s Eƹˤ>s3=g2A9QM^o@N??%}`+W\=pW=G(~MgX;c8g}x_uNƵ闻⍄Kw>W>oOEuOhqX7i:ڶ_0\#~N lk{ >ms}h{N9ڇ=x%[\//=ߦv%^?>{ڽwCh"GU˝{oKw^%[oOq_{}}oSxp;o??܅nZxldZvcxqflpu AT pdɑY.K6L1M#ޫ7L{6'DzV2L䵣h:qszVeȶ|ZSluSFSeBfl 1B}Z:kiԿ-q-_KN,2k}ws>*!IN@NN 5K̤oUÆ5k7L\y|dLl|^6$ 6_6I,p^M׍nv/_M]Ư_|E{4q Pc-qk' F>2hehxHb+>חsc"nt _+kt 2P@V͏)w?J[# ځ ss/\oVeOH"'$9}X˗γ]UvS(BT^B-\Mfj'!#kO2wgl-?Ѻ-oE*5(m&Tv:1LEDEO)&gv%-K?(S>qRtY&5}si7-I|-&TruOKrJO/9py߽cړ,e`&|vz^xF>9t#DZJr?IڄɆ4ŒÜL-}͸+G9C=@O;Wemf=hb6'<"S_z 3jgs*%&I&V5YǻK+-閯+Lk׼$[&CY$hDQ>l3ĴKڧ%y6Їؠ*‡k"AC۠ OE(%(Aqf !}m7# mF,|:%R ֘||32L)_5;Z-Xנ3y8`N+~C(jbH=M8lpp)y]jϨo~5PJ{ڣ199٢N|TH+M܋G?LD6~-d,=.긟 cmҗ? -cQM-ZsU49JlS?CnАRW,%l9? 9 $~G_f 9vu+NB_%D8?>G{HV-*߱X6>CfiƵuFU2c|]ŭK3nz^M6qO4ݐqNգ.RGe˭7FpU--Y:^Qk>@ZƜp$r=,!ߕ}^hvXe ƸZ#GˆO+J|#,iIJ6uWy,DA׉_zꁫz5SSgw/w9;4[^{X._ 9{/:ow.o}R[KۿDK_MWce6rHfզnyU&jkΞ$_G/o HH ̷qr2[4R74=}zOʇMd|ʞliǜ%|NJ"$RssΏ|Q[0R ﳩFo`rm#սI[}ູ]/śkO $ |듄}F[)ؼKW&Yrۓ J{^= M|ӯaDW$i$-?(”_tkF_nBjtb_td($oDYܹKn.Vaie+)D[a]cOA=%hwzdrW&z9Pwe}ji ٦"c6wqrO&DDe#}mi#P븙XyS$ȧ#[l6g^mb7u͍}ٯWMO(f 3q!7U},FB|Du=::zUxP58cs✉&fJpXk|䢺)ɘH> +x%Z2F(d%j\+mu2[dĽs)Iih Ÿnk]:m0W:B 㧯mlo҇&NX>[|"O;DG/W̔&{> ;| XJnDҹΆV־z1NH'-W9͒Pd+c{a<3M^ kdxFZf?lKZI@I&x][JCI܈Bo|k_?{k7?ʉlihQCSiTxƙb5]J\뚜DuL"g ) 5y6nA Ptbx檜^4vEEwt)as}?sFg^e/Pފ(e5S3KR=|~\Y]F`kJ;5|S_[L>̨~3z>y&fX૎7Zbzp=i؋deIWQG#MrTsMicFt₫?"OrX,!ŸAhPt@ϗoWltz76mr] L, rgGBuPCda }e/$9/el  itI(/Nbl"K >9|RLv$&UAp]-(|SAXDXcT&;Sb1-{L {pPO X64p|\00v`<30v6?q@/dho=RA04N?Oz~1N]{3߀?A Wzꁫy`oSYQ{H^/oV~{O?D˽տ{9C_O.|.GS\ny\+m`2>zW}sw;ݗ۩+^~?%sW)>~xWoٷs?{~^7'nrc3lq<-&Y9*Zi|s:}U@1n*,zu64{.JP A+XQaI;gnRIu[^(pFO5 תUύ*]ز6٭;9mK!#6n/|Ktr= #iZux{-LM܄犪Z{95jqkڪyQcH0*Y"o\k~Jd(~o{1 3WB,ځOJѪ7sgר[EZyTByD%װgxKޫ$A$o4ƌ_%fg*DBZkx$yQzyFM#36Ke  ^ F5MXT;20{FƴqaڜPjs/6;#A#˚Qר.ػU{|b?, x}cmu@u̩݋^/7/w?Q?>~8ꁫzꁫ~x狇jhy}>zhd|ӯcx~/O{J>&Wn|D˛1xiַCT׻+^趰oaӶ>}?w{{{p.[y۶JBq_߷Ssڧ!:ٷ?oX]{eMpvJ6UIRgkǭ;65U?gXٕnPQoͦhl$ڥ/nnc_}&Y#׉L೑c6²g*9ܰvc-+.7)nRAIKrP0@y->q톫rcv t=~tSɓHGn%¤IW9=&p96./}^5~I$l$$"keu&rP03v-/mp7e 8ðCn | k8ՃxDP\NzgQ6))/c4a6ac!,+~gpXZOo7Lm?Oґ·5[F2MKQ]epd2/H0k3XQk.|.oƍ"c;W'ok: ׇCe%a%V>Ҧ9MPoGH)%~r.o"$ e`ѬQ锡۠ی ͍OIeo;MN+-'9 {?u0ǹ:¢;z|LGM+)ܤӫ~ϒIcq\ _Zu#__2׸7|Q.l7|\N8V]rMXӥ1x.<6=IJ0BՑ2lb{_t}Z-Ys~#&'ђxu8If-7Ѳ'Tr^+.c%tC}Fl)4>y5Ay$[.u1B6> SK sm>0EH DIJz#3hX,t@uYc9ivwI$ZNFd~͏%LLjDKOo-ʏoU^mJ#mHI&ƌUZ}GLb9e=xD+b iƷ:$VW]Mb==lFVLel84#IV<{gڃEtn#\_.y O0s19*fa gd^)> vX$>D8uPI. u*]))ۙA[G[*[̖e(2N>*5%.ԾH5Ch5[2/ר{AZukcTYClx˿16n|/\.9]U5t[i@ :qg N̽v_JwzsOcը2>$1ϼ`;E03j7D+fZt9sL3(4Ŷ []1 z}e܄꧲ ~[/_3^(5RoƣzOUd84E m6MuߙBL2&kKS.?:\^W\=pWw/n?weOrNp oKsS6枊oRgc|-v?~Z1pi;&Z7m%8 F't{[|/?ն#j۷Q;~_t}_9pc,}}{=_w.8xWmw}ޗ.ۿ=s/Н^⷇knyg<oݰ l'fav8k+ظ.>QB7 aO l dͰ@yN9 RǓ,+ma-,U9-$J7B5&QR 7Qr̡>iW&4Y aOL6VL.p// 4)yQ+=1D 9wNyF79uOOL192\t%X&p Z.ss]zIppMB*+$L0-xIȉ,:FPtFj3eO $9z- Kj4O{& u&HRI,:/ L0e+{a.~D <2#43N¶6^u7ړ{1J5ؾ S]O FaSWg;W_|c>}Z@t (oe$Clij`qiKp㓤Tg.^:61 a PUξv\JkC_~. 1]vڡ&cb>EMG׸>-4:NE]y(imOUNT\DJi4*4;? g>rYl6eyjʼnarW_X̌u~T{-/ѳ }%Sf^6E\ g^nNL>h!=)MhLi{qۿ K{d53~75K/+iK "";_1ڼ~, >+Ѳ?k]Q&$ӈ^'hOT.oyU8\pO{-6ec8OVirOW+G\Y?M4Fۮd-Na[\ssIsxc(?x'Q/H|m%'c1ْSN ]U@k>1p$)mDŽ&2:c=~ Oʱ3̛L{H/N?^Y)/DG'O.>|V~$\铜D}Z'Y0@<XqۘYC XB}eF_ 'Fi1Ƹ,}R]5|8%a#i{^νTǍUq z%R4 Qj~U>& V;X+Li]X?ʒs OAIVc}H>) c xNU4*P?T/N }+G9Rcyp)$-_>S/!ŘH*̳ R&o=[LWr(`EcYmOPs4||q~V܂s~oЈWѰ~ubAWzꁫAzL@D3;Q@@IDAT7lw-o{Sy|]O끫ߟƟw6J4ޏS'ZmT~oON~\}o[{9{9y,߻?x{y~gz_c맽}_.t 6gp?uo^=s}poO_=~%Z }q3%levo,tI$9wH+f-Bڍ8^nVvNB O1K>(IfA[NuˏŘg-y嗾f,{ +#SG-Ф n ;nXx \]n([uƛrnlz5)p6Ju3̺&3P73{7}gұh2gi0^M pNL$*$LD˷oL$vDtCIK^7ۘU::zۺyq6Ex0#tiVh6s/A,e'@w} ix膦2@((RB#_Tw,i#Ob^TKXUQ?&p͘'V& -F}$^ۤSL϶wggFS#6>t#R?iZ0uZCI&8|q!y*R$h@ s-%גwo-RԬy%pYV~i0dp)b6MhpOA\?PSO_drV2mNRs:O_(8t&Jvr}P-o]'Q}7:)sU)4/L1oxyH7[Tf%^c|@-5}^5,QLO$ԥtLl o^p5=&{%'Z~ׇhMt='p\]G ^_.zK7ǞKBI8BhgrRE_u>Xnm@'678VF: OxZ4#k#ИeBql|&y2'R'2\c^wGސhɺ:$y:R>bFA䪞/Mz6V}S9t2t:ɡhoC{]tܦ&擘Jl|!mϩvPQ\K7ѠWH%\ׄ Z,I$TZQ R*? ɼ VoGƚɁhp-lZ=J܄j:*'03#STcW, P*IxVE>խկlLg޷O$͌ DyǘW z!18.OX^״̚qukHIExEjwC ~ˊė9^](+UI&aC|w)ڐ";u?$L}%zꁫz\pͷ%kxy`b.8{4{xca;a[/K6~Ns{=TI }.}N?߷?5}~j{./ÿD]XW|6p1$r'6'NJ^ȐY``d|l`nҞdP<Ĕ_7);6>rR @nuN$K_! pS_k7 \On)KDPj{V7WWWjf}}] S@! 6OO7 eiBCN!n* 2LL2"nNz"o/M\hzWA31 طj90^|E'bA6tF79\O3"E Hbj ґֳ>f׶[`BSG&LY }"~P1 TGOm?njnj[1zopV`h[(Fc[}SΪ<'7RO^~c2X"1qLJJKqrJBQsѲEO.qPeދ"1o[4شT&@r"bK~6qhNlhbL۵ectHԑ~MfJo*3Vߑ,2:!9 ȃyMja\wc$-9d_JMfN|+2NJe !u5&ƨLTK?6+wjGGF 6n[ζmTHd=k'OW_Bw"k IսD |Uy}m}WG|M!E_,UFZ 3&Is:ON6jQd&=A7\4-UV<4$xG89Lo|쀱^:Ƣ,gTrg@q-3K9p堚k Wc]\"ByV\^}ISNÍCO\#YW)Ӧ86i#n~ F~M-r[?&΄T~*?Eb[V8A#&ϣ+peS+*s=n4>;>s4jVƗ 1[y}*OKFl} ѯ$6K4HfWt:Q/So|uI-#vL&f|8)nZ:ϸNC*'V_8*m+^Ϝ"[ULD̍no# 7 8PλѺK`_y]K mb?2ϧQxnnR3%MUWYZUVXР`dpaMOBuN߹9~$t]?DzdeOUw-W\=pW\=S1WN=;7NxKNj7N^}N1[MmIX֍}}gd=yJީ+&6?ۖ߅C{(]t+~ey_^~-m_/7}k?Z+s6^4M촸K;i37 %лmM%q9Uoḡ3%cupSOT՞mG$k$.}$i_ql|W`C|/ۖO=|5)CE&4ݱˆ|i櫯~Æ5YDJU !LlGYxU3L*ExInر_71 yx꽉pC\7rth{*2$1E>'r#& 0o7K,M24p|j'b`'gIVF۹ kR8GUp8p"e# zj7+(fPC~'zۧMvBp~)륏Xg:|Se ih_lMl$dl%#0[Wp3N_l "%}ll6׶ڏ ]-*jlc{ʑ[ÒmZS:6vÝ3&>5oK0zb*>1I&ՙf" [bRdi2fƜh~0S}u)jV˟Xy2Ux۹d|&0Hu`@^^Y&{n$EDfl^IjӳǾ:WۢbuyNZj}@Y׾',zc^ S&p,@ȻwM+N\9# =ti$5,Y# 0S.$IŇ 4Fy4#p- |{o?2!$MMLI+$+1k9~n]6Q1])o|IA]_H@)ԌO \{bkN|)o^}Mtrc=x1>szDRCEǾMe9Ljln+#W䳢m:;^rWޙ%q=\ 'σeDB /hߎX_?j(F6t0 3LuF L  xxQ`P OKbmp56(KbϪzob=IP4e_+xg{&|h3VQbqui]g (.V/Rdž">dGp& FS Amƾ:f ( a=ro>'+:/'ja䆙uc$I0|S_/lp?ZYWbbu˝z$@b.4Hx\ﻞU'FqqY[dG0TM_ȟWVOOna.kJ忆 ]QrS(Se!cՒ *Ŷ ΁̟t/M$vޘn).1b!D*#yƱ}h@*"M5RKS$kWW-4V+od@]]%O?1`+W\=pW=c51x)nzSk__s~up&Amd_8{m=[۲oaOqad>-?zy T)}Jsϩ{|级y*\|{?._%=ok6m۶Wy<ſ=볯|o=uaW)Գmߊr$ٴe_d,`<{7?M (GX†ŒKgFqi5VelU?sey/E .c}w=8$)ڕ%  -jGG=8ɶ|<hoIS⼖SMxD+>{{n㹅|/O?u}Sd%^o{mKrI/XCl6i{ o.='N-=}i-Iݜ{͘nuGCnH!{XZwdd3Oa;;>&77Wn3pVmI>k+Μn&Uhir_e}LDj"Q.s#O]t>Mpc +qPtnMoS(˦($-rkMݵEW6RtA +io6@̆6ibI78qx+]:_SJSJ}cyѸ)_w5hԡ_v3\&"^uCއ@\[A ~aW~jsVnة?a<'wSb荜^ƵIE^&I0a´u(e3:m=m9[oiOm19ä+VxT~6xpZ=?MW3L2b~xհ~sM|jqPG6&#?? C7!˦|ch5$ ~L_8k2յYOG_vO&Zv} |E 'v͉>$Y ]\į!n 4 Α^1(k,P0ske +OGM,AQOF÷?Y\c9NL|ӧ_{"$Y-d& aRg_QNwMKfD3} o:\__Ƈu`ϓ곆Ix9>&_F2JX]Ӕş=?DM/C'2C5(%[V.#cJuܡZZP J8ڙRÞOGcXlp fUt'cߢ E ـ&|+^?~ژSvYY޶*v(} c#&Q!/d[}\Y%eЙ̳sGpoKU!L`(OeJ1mS/+Wzꁫ|&zL&Z>{iGy!g)yG+M}_ݤY;EZO?=i^o/N|lYmm]?d*.O>ն5st~!<ќkt-}o6>ç]Szj ۷&={~}=vwK:=~NծtkOoiKs۴o_so=%Z$ZfXYVA7fs?Gqٚ$DƩ뤛4>Dnpu]6aË| n^u╫6q$0rԱ{(Z"dK"%Ih_Wze-Mr]&"MF"jÒ9[S[LX RXW]iG}f__5Mdn!)bc6 R|ߏٰBQN~soEW zO1|Ʈ$>,Խ ,5= pLտw&`;\0j9E76ԃ<2zJo82M7u771?e0oN _6 `UPj_nVLB; ~&rڱs{ U-dl2rLC PfXSI@Imsԧc3IkHHX06,^q^ixf!1]u׾}Q6+x+[>TunCi4:ғr16|ӟUտ[r 8i&Ц+sRW3U!hK4ҵ|NU`wb /I }<~$6\5=k븳z6AzC896֖ƹ`+(w%]?ha~3MSzǏ%`#Ϋ .לDڕd^?7YďH|N|+0&|^prg@OOəԠįh`=ҀObP_dbހ1,u%&"/)+dh6'\n} MڦeS${_=|4Y[徽y $<=S%#A$5R~iׇz]cϸX/x{Ʃꪼ&BP0xy1ez[ayPU7;,cBۑ,OyZ+*E];&''kC;!)ḥ y -{<}]hc㫰@1z-r/wO0K+TSnsL*ezTKq n?n#qZ>ځ\K-^%r$|h<2sXigΠE\epg^Gh+>p!!=8hi&yVv n{u?s>%d%yzI/X9;>WKf,/|om߾g~[ُo/?1'62KB2 dދ&lkJ7pl4;t=%Ь;0qRnvqqfC5r—nd-IX_'7aIp78,@%{۲Lk3sK@;mނ:P7{`@pC]@uBBPEQe$Ie O`Kxu1;f+9{ĜڹX| ̔ޒ0*=s̺)*B&=szsm{G@xgӂ 4rb 'Mz(^̓Gɕ^Q_ 6_K'\_iϐ ҧEouOϊ T+F{;J4F~A N~>Z z[9Hw-Ѐ%p"{;HvPf-/+BM;eb5XƻocHf=*_4 5Q FF6Uժ_"52Π\]V "\0VkSm 3:ɜ,RF N 2՗fUo[hh7H7$ |x%dDP 'Z֖3L-6|%C8&'!IP/'<-[ܢ a"o\ ɳ5֐s8mhݎU+x-5a iS跟7lY6HtFV.2 ,Z!8+QIr!@?$Q &o+x|?A.ylEUMn'5yIt)p&}t,9-g *{M+N$ђ{ؠ=LΙtSx{O"6{Na 4N@YݸCpD/O0s~~Q$5I͒Ȃq>H=ybHҎPz=X&Z|r=?x=\'}oz?KOd/H43C{||^$NbCѼOr\M+_L@vqϳvGc#M\O`ra6)2最 ^mS ߸o"=ws+ң337_E%6 ;|WoG$,3E^$g29 ×$">{+ g!yD"+_bȦ-1%zT>__O@aI<Ǣ?K1W$C6נ';,'"mgOɕ&F/R2ʿy6DӾR"- G4|ƽҏ,h^1E Qj 'k%{K 9C/B\CZ*YW֦K::b֢sui),5 ` 'y:%peIa%W blݢsր|T]@gh#g]?v7 ,p?@ '-qvdwSi'mYyk>xkn0nlzڸH񩉖_GG=7.qH8~lk~nc)ϷHӱ?_jc9G翏O?{lgKw׼a׽qWas-.\/pi|蜻m0#)kh]4>r_;'}](5pfע]wO)4"WТ7M3/6XFND *]IF/@kAh1v*~\cBSZ]e#׫-/AaGF3B}؋>{ܠ8>vsZ! |diХj?it.2t_$yZ)9Q=xϐJA =V1f5< RBuMt [0)kK&@WL+?008}HdC@DbcNvuif2nJ_NӶ_l wb r蛎ԿG?PI`C$;SeۑO lȵ LdG#CC}~vW\8Haח/ds3SL"Z|Kj}+,/8+ _D~kg?/~6y&ݎnBsxQt^;?|ѱLQ{%9\`Os NOhRy wЂ7.E_ i7w F{}&EhXY^y,!Y:ɫه͜Թ%L68Li3?>DoLIš%EӓxQ7Mv}A]R}A=8&H+څ&~dt,`̹H%bfoWK3<N%~_) :DvJakKIF>pw\#+L|SN+: 4kQK.p?ߩ)PА&cȒU& A lzHD'UV}5rwݞˏs?kt~ :ỵwY-= sGw-ξg?~#Ǵ=8O纞>OQs [e4>psåsz8({Zwtx,=ki\¹4~-OTy.b%Zh"{O4Bp2FI.4ze4L(E&`Wx]EؼfoQ00fdžx X*qƞ,d hio= ER'`%xN2 Mdb&%05HfYDDcN 2Rj[&OLs oBkOpCí';ZyrN+& (pm I/'QIM%!IP)8WQ3^$KN2N0A7:MQL+j4CzmdI6X2o;jPqn4suݕ?Ep͹#FH~XhCG?jE(eKv*[7D+?&\蕗P&0G{98\b 5}U%lX)Q״4ZJ+Z-:(_vf>G ;u&ϓ/)^@kKT:Ay[zS_9ãPN _aN"g~%ٖQ']$hL^]N"% }O2C]d">{E۠MŢ6ZmjyůDmRR)>ӹBET$2;#/?}0~ ><*VhG| 9uf4t)↾詍 g^|t^4 )$R*(k.̕~Bu ]25ym9p^/ښJ>nzrw#~60-Cip |h:oCK}BZ#U og@y6fm2K+(a&u c {k 6B _X<پ̘nV?ΗΪ'teXoܵ ȵ|@c41 ųocs+7 ,p7 ,<m{{Ob};Re:1a/ s_ӳg=#~~8o~-KpƇc_]!tc4k|c.q>=.ri84~NZe{ 箾=ίT.ޗϖhC܄I p6fi((-U7 8= E EO|7~YV) Z"F}x@IDATI%\m*ϾׇS+_k$w.|&H\1nk mY@[o GeKKZh0]%M``CP7 PVg ɋ1as 4 p&XNDK3ma>B枎%]TZ`ԓ|櫼2ׅ\SHkM0MJg*g!\Ttr|SP9nesf~_ .o]RC9.(/?cJ$Z&*`{qn~D>!|Y8@m_5>˟7ə1xW.M)GJ 0F?Hm#I3aqm~ܑޓ eV3kP!cXW|v} t[EZ?>V>[-ڵv%B/>;ˎo+0k8;$?Oq=t邕YVnc6髬k {;?ϗM0m%9Et+ȧ$Y*wRD9͞AW>9jYoY^$ZfA+4=k}N&.F$ATJl_-KDwټ|onX?SJ ڀ6'Վ?~^Ip<LR.}^$-ұ<ђW?$w#AmL&(<_P 2&وW=#$+% o{ hH/[:&Z%F~S$$2Gn`Q~ivwl \%{P #՗LkĿ'jL24AEN7$YLABKy̐ v?xN~#%&(/LT6e42E춇OWXIjO>+d.p0c],m^>9zI|\e32 <1nKNW'i;2OD. /ͳs/ u|>H_֔t_%LGVbg2e*~ S<Я_R7ѺͮP{!K5!:3=pv"cma)r& 8l w] )]NT&eA[u; (xHh짬A2X'Iښ!!8&oڧ:O3"^ʉAD޾>e:q!zeh[⾡^ʦDž( 7N>+&$0)930X3giwuۊFs0kլؿ~ |۾E+ؒiC-*>jtO%wOZnw.VfꬍFF2wĤdh/VO@gǖ\hWuЍ(i'+v,s( -*7 ,p7 \i;Jػ~, wOVaZy='0Ó6?9Sۼ}v}s6o:;tWqo{z 0;?{3v/=}qaQ=qcy?u1:}8t4~%/G{?^G:.`O8׽lGKϖhg_& a ܥ᣺FnTi[uzb%IHPH DI01O&m bOIV o$GtpFɕqOj1ɕ~L4=tWqGR3< K7DK{O< U jiQ>M&X `'qfG:$)5"}2Mk6zlʒ}NM0iIpX4 _׆ׇTK/M)3jϏt$iD^h|m7N RSMQG!(>x-:QmrꮜBK-B<>}h77_Y/q(( 5ixjV1Y82Z 8Q$UzGqKkdPŒ)jN ɿ1[~qI ·Xji(siuޅrћ2"[_hK>?O^,J~vt~NjɢE l2:u74N} 5)h7zJD6DK[vRlVm~C%v6? =򉐽!zoEI8J ~;GʜjO}`l%)YOTvKN֊Uuu],!fTfYOS{BKH@ғ=;g+^s4q2J[#|y&}Ϸ^_p>}uI`NBV(x2sGNmy*$ZdM -98&ϸ؂$轷̵[J.ܦk M&YLcx?Y+II +>v= bJk/08Kd^GOSKe- $§|OH>gx랦)0`h!]3}a&pB\\K8]/V3_->2Z%zDզ˵kνEx.;?בꔜh<Gm\8UI[`^CK6 ҢOIqFc >߻3K=4ַ'D/F ~gNjg;-[YfnYf -/=]%'-0suiNe;X_ns+0'byOdkD˟|n5p,v;=k^%#/פ%/Cgg|;|}wy}(2Gpq|1Ĺcߞ9z/՟Jf|oK籲霓HZs._?G#~/_޾x˿K$?G4şhMfO*1Aޔ ^"a-{o,. 5E@~4Tޒ qo # ctir'J0|p)&7J_~V{h:EJۢrrm~/ѵ Mt/֠ -u$f(#i;_5piN ̌XF@"C~ n\K<&wZ3kHc}8v+3rSHd,/LPVWi[`q ^8 \D𵉑ؘ>ܒ`w㱄6X?2 d^D AA9Om'>7c'!aÒ)߭p" 2*$g9;k!4Zޡp)rYݻKfFa9n2}76He m.g#T4G6Z" |ӗe웱ȵ突6ьYBi;6QB||guF맮+Ⱦ"/%)SsO^0.C(^_iZ2FTZ`Ȥ7_\Yd(mGOI}&'Peheov iǖe :#6חM&{ =%)Ԟ,Q01Z;UaBȠ)UYOcq0ļZ o9e>m-_hH_}8H{Yϱw7*5C6,AbÆowʟ~[NNң{u/-P=ġ%|>x*:8VwF|d{xb]gty="ֵIO3x6זz'njq@\#Y YgOS dړFchQZ} ]Ή'[&ͳ&40,XGuXwSao];Xf؎n Յ1"b=H|.>js &HR9'kFMV^8gxU"` ԨDv:O%jlrU_/2jޗ{ (ҭ|la:*fz=Kxzͼ-GVA~pݳ*6ޝ\i9_Aݸmnlr ƚ4I\:P]#B.G*f߮>oG(̭(G(l'$m2q-A@=uwXֽFBߐ fg7[s|+7 ,p7 ,<=V_D˧>mTz-pns:mstϭ>܁1_dϱo/]?E}2#/y?>sw_:O}?~̞w?6w=^}qW9_}i)}q| ܹ;yt%?T#==v$CLJ9.;*:Gmgke]>H#]C }0M~-gRasVf \'%Xd 'D"q3KO Rb'7( A!Xa2>DNnXep-OO`Ir'Y~KJpCn V $$Idl E2䌼j/C@7dxK#J@84Lh<ػJ9;eҶ@ $^m2MPdH5jF|e+^%jbƛ7$c|*MJC)_~K}&@Y?I,M[ɔ8_Mz̗_<1臘W{L߻v3HfӞC~4s*S[SV.|S際Au_bz/ 2< m WҺtwj{- eZ6,&)t5z՟nw푖?M+joC˩"ZԄ߀L[Uktv*}KdFٹ!/P??[ ?Judvv*V*iao%9$@ 3}0=#wy& ?ȏ'48W gu,0J׽Kxw+!zS3+BSio&h;JpnX(>ܻ|fPCq^1&"*^sdlvx4eNLM?)SC^&cdjM&𯞽(L|{EStxiҐ~z#,)$@F v7Ig `LDh[$!x؋ b6Q,B$Z~Aԙ3oi1Mo^|gC._CMT)|+PgNT}2 ?^itЗ6/&LZ\~Ů* ;!1AϚPv^ki >ꕅW~j?Qj iI# \{lEleh8X09:te]?ys03 (W #- Bɉ{=s86t.?PN~,Ȉ/Hm2 HXfA:kw2glQ] pMõuv>;}$ fnYf~)凜hy{yq}?|kkpfvka-pζ|D˽ʽO܏u36/v<8x:Oo̞w?6w}쿋y.y%KK4~\?t ݇^Ny='ϥsxOEH%i|α>tJ\m^9_w?o?[` e 6g9%$嘆 6SL\d/YM1c0Go^2R' ܍rL|DRߒ\WnB\Q͆E*DFzn9 A%1J $UV_+kn#j|L0 :ӠWM 5&j0!8TLB@ -h 1|3LK0|x=q'F ʱ dQgm&ht܀"v4NV]C#+kjO@ѫLϊaђh8ЕDA-륛sn z >U+Ho'Pgx' 4}L}ol};r#ɶן>6=|$k< Nx-oIiݾѪk}ũ5J~1yXv>Z]"YnR}o xEchn)Gv KeN2}<Mx.(P6ٷNQ缍WxjcM [յZASYCy4oJ RMV쾺f܁>~Oֶg]76AP$M@dZNSMa= .[FI./t>*kϹGtOZs9t=#K Z5jd}ThE;SFR".:t ౳adž/i}s_, (Oj"I#KToILW+N^sx`2iJxo#įJ̬ )>@VMfoc)< :sEuCysISL :Ijj2>_H!hgdJ_q 5IٗN?x$\6!{w*&e}M ,9aqQr *#DÜ}OLӤ!D.0K{jѾNAxOkduT3ᴁ1Sn[ߚ|<UNB[A]dײ>k#?z(`^đ?>͓ܷd.2#!͚ OK:.}\3/X $Pu%mi@Ԡ9 9=TvϬ&>kvit؄7]5̇2e=dyJҤC]3I懬Wi<؛ħYԷK 7d2Tp^Qbs^n;zdM7Mxt6̄8t@T~V]єX$ /g'0ٳ-g'>?M}fiQOH>=Vg`p+ Bܨ%#o'6@ R> ]yw~ 1a~ǧO.(j76QUSQl @>6*ԏɯڻbxY_&9!΄e *l(P|+0fϺ~f*>%}[:7 ,p7 ,']'ZO*^=}~ޞ{ZG=' ݎ9:}*sל\qW_Gd2Rh?W2vWte랆n_K7.wzwR9:/ѻvKK4>|zcGz;\cK5~ӽᮭjzޥ%j>/?7~C{Ds~D\h`O5ęA%&I8| yQ1i -b?y޿'xO.@$+IHkxEXQ1by2 #YA@opjI$F#3<_aRLPᏘi|JEo@zv W])[`|Mիzjg^g1 :G/"y0 [?1 1Tj8ӗ0DKpE;W% gLxJ+កI$ZLӣ#.x2l! ywvH0!6Ap# ^v;6Ag;RkOkk.`M;mD[p!btqHoׂ2й&P m.DFo98&mAp65W':W)_]sVx}r]H#˄'zUջ+? 3v׾FC2Uǯ7.w~GXbikEeVS#J ;;ڂ(&Ug*=TpJO4Z-B༟7sW~H7}noҡ</ÓO{Iҥ'S&0s6j' /ڴD5,2 F!cKNJ]|5Zz=ջK0ޖy/_QYuƖ]}%@ =e]m=P/Ϭg/F{FLwh¶6>̑-fmef`)[WO]J|wQo:DƢ=s2?ʙxS kvV>TqmytƵS`. XA=_Z,rp_*[eLtYfnYfXv@8~D<'^jܗpNz`/񼍟]<呻hu -iKZأ,k\y]=7{)ۏWOq_s6ޥ9`&Z?W4.=o\9kq|<}i|>C)ϑCC( !t ?خc8?O4w}d88v#_CP{//Js\Ə&n11ի\y%=O pL UBEY+dF5ػ'`eD 5  xo-#OhPg`Q@|ָa*+h}O_N$j卞ڻrV<:9A sNT 'k* S{wITA;KNΏvNz  Zf|!)Oru^Y)D @, M}]! Z̳d\56īl׆s2ּ6y՟pNR("ʇ 8اWƜcl_,<LWФP֧b >Y̕|ˑR50|NtP .;L/~j* PIWxs)`{W9װLV׭E+X5B&-ldLRT֕'0  _Oh{\q=c׬^Kcr$|+P eBF+bJ9j#jglKcJ[}xJ%ce+~ QJ\c鵴N2k(1AyY }4߮׀'{`C"q]f{28Ѳ4W*Soneu*k>嵪R9UM$2o>\ ~֚>I(=<ڀgח-aoIOンsy>WNz}}A˜iXƧ&9UbzRtҚ6D<)\Z7D^{~0'gw+5=3>l{KkNoC0~v3ZɎ+_>pC?G$cLΑ,]s)H{%\{7Na"gWOh8w꛼6K^/u,_K-PGbh~,^^M|~G^kZǦKY[mx3AKR</^|.Տ R+xnnr:^KE[#vן4$OoJRl-MeT~>:v3<}$4ceg__.$9M0s6]mac{5]7TtNe3-4@^ stɩ=]91'>z3MYWd>|@ި&\IQ|-8gBk@q yޢn&ѻ ;rRojGݫW5 >/ 3DGRIQKX,Hҗf1Hht/ʋ^ іvL\KL2cx7QJ-騟t-ZTYwO(lYeF~6'z<Y6W{s=3؆km~qǾ~W Xby;rB .<*>j,Bp\#E8$]C`rIx5fnYfjh9h5~o._=g=9>?}8G6v~>5x{>l=s iR<S&ZQ JޞwɴT~Ӿ:0c_:zq|q>;t.8g=ǎxi_#C}_`j}4tfl3>]`c ݧ}]½.s}wG㾱s2gǢ\}-ZQ\bhaS|dAt4"&X@ 9% Ae2BkN -\C& mA`I8Cc-WBA7 cC10K]>j'#}N2ɖC~@J<$2j` g:Z@6=B ' XS^YC8F$dL; isJnVs5$$7&Y6WpՏ ,LLnb)V2dAwkKN:e^s) DN.H#,`f蚧8Vfwrm,$?Xb/_9X> ꜷ(gj촏_ O vk#c\G,idzG29 ^~"QՁMG[?0Q[;'?v_aDJ$l'h#ܠk'<.{A$q aBX&}XFIun7㎆b x u*B|\8RI'Pu,&e~#zp}^_D&Jk?.(O}[EQ-i"ˆ2Gayj}(|rN= Pj~_ [.ar{O}^{xoRއ4rƔ&]X{5L&AioUt|_\Bi^~#&1,kCkɉs-&UX=Qz9 Zkg&@Bq^ $/|#Bih8E眘GR %C,!gW$LU᯿?C/z2+DKO^ZIR#rUBh6.=ıs Yhr HX-} ǘJ9!ƴ ômX*S_u*IZ6^3l^ܑٓ_'8{bgDy2S>$V|wiD'g]Ʉsda1RyU;4Mz\|N~$]u)+v 3cœO{jsfpc\U?{ ?#< rIf;:&_`p>:D 7&jSVH QHNB^}S]G̭>}G U4/ŷot(O}+I e]dJāWN4`Yk5D*: O`un>Yu':7P!`m9~̧2a/K:;`6dyй3#wt$%͑ƱP/HCǏ .gBmCXGx̍+ *0x51$$Hi2z0HTՓt4F>hh4l :hբo@2(ע4KdYpl| ̡C^K:CG|ļU›\-)=06P <+Cݺ21$'g SdKO&ZapDK^o _z*B߄ IdȄ,^ "g'ICU7Y :I5S! [/$n|sm%Yȶf$)]`-M8> o-au +?P[ԇ:f}\_>7mR-\:.-}LZ{ BOo}Fe+z0%SVφr%#ǐpOqfv]Lq/JAyup$ɚ +`.Ġ}B,[u%iΩm!eT-"?D1bS cn0KgIYhm7"%H3֑{Mr0.<%CS=rldW'yhX ¨&踂~6( kxCCڻ}Z0{{P)mnk=PoϞh9٘,&\&Ys{R:{ zY|kDL.|w$G zxA7N0ޓ. K[VdSvncLWWչ/ɜMTDfq;J(d%bCpI)}I0L&;u/byެ>ÿxcϾDK/M4K]NCS4]Ϙɝ@NCs&=-g? MH+,G&Nz pY/*/HJ.€ot^k>ʌȽNqDy&̘mlo{:;\#>75@:s@ E?.:=2:~7U6b?EkCj)+ʂZ̠&ѕ|dIX Otgfmnj7X* ]{gALJ-ML&ϜD~mؔ_η6!j^`;<#\w-В;s_/x< /Q+cwhTXq]ߡT*jk0` }jmox< 5x7nR86O1fnYf`>=z_πkk]kf9amy:gs{HsohOh>M<9g;GmaWߑ紏)c9344~|9~C;4?cwՏ.?fc/}c%}m}O)tyG:Xs?5#OMHl?\ Z LhS{mAGu"V ǞӍB@?we#i7} i Ŷ@?g$ZDz+tSOTj*c".D`UqXe7W P4dOKS^IR|&'.L(@J!H^NOs1k6$U!.}dӏ^siNy 5`f0@IDAT^DK-W4jaвx Ȁ=H| \2O8flVZRM.Iz/*}|g5*|dKGAd #J掙MH؃gFN l^E1>ʟZIKHӹ Y!rhCЗ,yw<δ4^ 3: N@su[ vڔ7]  jku?(H3(S~aLj¢}kNet{Td&F8$@yHazXF_d]'?xXX1\KbSeYkI_ m*A%iCAja6v}O{*}'K6RjlCؓ I:ѮiϹUFenבp ,?I )Ol,Ջrm[5au zY5$$4I+LTkZR4Y_= >$2jޚTFFDt>4~Ǟ朽eQ?W(W^%΀i>? Y}B98Vý-1ŹCMfMq\J?/2wtU'~^WmҤ⹮u=8NyNy'[/y}TK>)W /&m cj$f\obcC8UާrMwEJo|smӒ*0pn5#/Ds<28\{x<}~29m|D dI:W?k1stRWA^!?V.h&kMઋ:׏+; yޞ}ȉ6,ڰAToIvg@Kcuα#%8ڰ{)5̾ʪhֱ}gbhSȾ@}ٽOG[jd|Uy3_%"%G:)Oa|f&Epʷ-3A6Dkh` ˫v*4οECK֔ɓ4db̐_@C%Y;=Xfpdk/̽z:I1&@~gFz9}, fnYf~ȳ$?'`P?sCpZnsc~i服v9126lIi0_D %FP:2A5m'4qp\k\G^oֹP`ZMf!P[/|o0Ѧ^YOvH v투-v;{ bN_33I90*EЂ&藧Rz:&Ne;rb "Z%}*EM"H ^9v !Y'u2Qz= ZR+"mƇ66W(mcT(^0s7ْW~͉c {㸼й@ 5GN=^_ZyРUیp ΁I&K#k}g 갑=o|8-U>;X-=t`Ҋ {@q~x*{_+<F_Y~Iϣ„:r-I7=7栞>;E7?ؓZc +z(͞mᴷzu &-/y]}V.99T MpoFuD50NDySyr1*FϏ2'֓WLm(v߀gxNJ>I/m9EVgػv0fJ-SxO\VvAe3Y;vxAm3O &ecH)\tʜ>.]';'kZR__rgon^c>xB 1N81jX\jbtS3{JCQ xgB+g_Ra!dw^O?"vֿGtL@)k!$܀[t/R&/G@j/As̹ͽ8hFW;%o徕nYfnqY #OPhP #ʹKs=~ND΃sx-͐5S}?G}G `#}UGb Бww-஑=KRs|>u|Hy};|lu!69?}|]nƯs-C} \+p{>O :|;ޯ?[Gΐfol=5$3X7[+@$I8 ɸ$-`1J:FjW.mt3F  BMh M*Xnh?M^{k':A*I:NN^l I_t1fQ ,H|>/BS>&n M0`8h 2@ y=ՒHLb% II&"b4 j0zK%F5ؗ- ;:lE?<{G'mZB!I` kK5{ R[evG Uqs-Ŵ8Këo闇푭;1F+keGn4W\Ž Ou"5#-)ಫUF/t"Xut?zf4z.eg _yGBwqOȮ=}.-x#^F֗[" gͩ0cw 苖O,147hٓ M[$K{ g)Tzte<{SZNx+OJK|0>=i 8 ئ*uU,/M{N>^U)ujۏ^\IZV9E?\j wٵ87񂌹 >1ÚK1nw_\C_5-6<7[ɸv[~HN r4Ė7D֢>BG|*s/gjC(!'jg6klnxOj6 n%*DʣG9k;?vֽ;W~LY@] 0/~1-1*v0S}-tBO9ɗbc4'O/'ђ7_dөKD˹WKK~y﷭ʣoC,]IRGl Ͼu?g'IrSN8|=8Zʔ{@~,y2<9I{y=EPQٓ\+- M*64?C"}ߌbS"lՒTZȿ 6HL),뻴S;S.sWZ27|eB6vJ״o'gg,}ޠRMC90֥hU k0Ҷ biqU/}XĞw >գoH7 ,p7 ,Cs\|?5K9ҹxl!26HD4'ʚ'51d@ƀ՜ZWP#Hs) pP)KPVc)'B8uciF`&-2:pUXrOy%`o\pU,]B&H1cXׂc Kʔ^Zƞ)&򒉱3ĸ-T '== f3A/eE&H!cFO'ЉkBe0z2VN┪WR< Ɉ@S_qړ}%Z“BG= Xto֣LP&+~NbT S"A"H[XD* ȞmDh!ėu}B g+3\UnA IJJjOm>DeW곡!4sg܎E_/C|^zQS4H_I)~[zW,BL2>kK, ύFo1"~S'L|]< ~ڌ_l cvdR!!S<D ˾b+X?WzAj kk.St+`bkqmi[2|l-! [/ڶ>>ǑLIrIbTn-;Ȑ[ 7a_\t,6~^#1#3-ubϕ)6~^PѤ%tPiy\狯2Yh$Z*~'0fԼ_x[Oܧi #ȧړ`1*~i:F~5L9qR5wYOpQ8"W6Z]Ui%Zffga|tşjT&y4?tjOg7'?ֵLDEn`C8I K%Kv ӱa]X&W'{tDs^#=ep>bĒ)_19gRr ġ=t4c׳<;d6%=->\q^&~5Md}1s`+꣼]DK#:׭%1$<5 ctE S_n+>?#G-2/> -ʮN>צ9:Ƚ1pŕF d]/43Nd q(-1UjL_W55kUa'ø~l׀ JJlr.whBUx0WD/20IsmT\T;hJd-d'ݵ&οgl"K|/6?{o$[g>}`F\H 4!F` C $!,]B2wmeVfV9=ݓ_u~ϻjv39= !*8˿ͨK3όOZ5ηNBꥆ3i9ꈏ@?z&/Ƿ,i˷w=pw\>]K'gkdhuJ-|^|Sؽy/s~>y%V9 D[ík5}Gtsׯ} %K[YKu|iϿ2_Oa>շa?~2^RYg%{._Z:m{ ÞZ=ϥ;ﹲ{m.ۏ?S)5ḅA뿾I\=n.Wu9IggB 5d+ Ɣ{-'FWAe-k%|+c58dЩ*Ox|9 i2*dLH2.omB[ |zo K{ ZHrLMQp$F, x XүO %A0Ѡg7!tHdBoY JO@ǫUzG"A$J2`ozHGnetY `JBo xWJl1Mش&0 p!^l iA|ka }"kEM#ƨ.* q;O7&T+JE]k wʠ. |mB]R8'덚#r}\JW{±OEQNУK" Zc~L#)vh;ԯG2S8Z[1)&j1´թnT==$#)ڨg٣yoq>>:>BޒEã _KA6+@Nޤ uTb<(QkCRy]opv/;s.8kXLUJ6cьMCk/tW? ^k򐛯cѲD$r24݇d'+{R*Sl?Κ`({ mI9{Gmܷ}KhJD|&^645hϤ:Wl; yͽ{i>)<_|oPl㛅;ۯTS7]`hS[ WлQ,~":]$[ƿ3 ]I6E|S[wo{H&%0bca9~kx4)S>lu+sԷo\ג{m_{-|ʹn-2o-zI~|{N%>Ȼۏ?շ.ߪ~oxDߩs[Z:-/2|6y&c4(R.(1G رl]'J5 zj@EG-a4p.a t\\sLKtЈ׈*)tLH!TuSڠsӆ>n0 rh 9? t`u*0$\o\GsnG9aſMV$NgYsO : Uᩛ$?|&Uq} fդ!oDI8boǤ_e#c>:n$oLzpR8*M+ eZ=)`iS9ʰHѾltd9WUˊDc"gd~+kH%;ڷ< 4P*%_Hr'cc; qh!WfjvۢE!E?!kF;G!O[0(äprfxϙKG^]mj0ء3T@S<-Zf|/VK|YCeoovfߒ]K-m}^$k}=!>ł\֓ZY?vق5R3Rn^Q/rsUW*s%Pv$-l"oz??f/yvd8zWJ8k) @e&Xc#tɤ vlIt?GhrٜR54F~11&kULXZ>PNOWv:Tם#3]&dFmrTgP4|Mvb6/Rzf RjLJ=}%FzηWxLfMGe &VyRޚ&!/ ۼ2V%qKma%9ay6'oOfa+Y˸4s3#I9~{r:gO|TEroUN‡ y\xgZ,ft;`@,J}]U5wڙ7ή3;Kp{[QssV5m ˒`p9I7ReR4}6REoתxugK]:1 I"?#[F'ZGtpXͿWvl T˪>Ĥ>1L=ao2Y9vTKE'[zSxhJ4{^4ՙ}xfI;kS|Wsveb0Py4?Ww{^z` hys<[mAm{4"oxr#cdݯ=0>4#v;-ys?}[mr\Sskx_)Zދ^m߶.Gi[+ӿ?:rTKsNk:K3~)<ה}=sװuV{}{{SNL{^^.?W/+=K{ %k/ɽ4>z]{wnX<0ZK1CfCjYC? $ 76o,ְ@vW~c@s!3VNf𺞤(2ڂC0{_^~3zu;oǖ=m1HnJLͪ4g}L_BmY)йG{lR˖_ \;b{ vt>:Q$ol.9P+߷uݬ[,>4aӴ#]4l2{ u߬=S"]Sz"d!_jӏY;, BcRcI #zǭ+l?h3N/m/!RKӖSzu9'+U!P!m<.`$mnI7&|MRq0 .zErJG>?}a?A`9;Z<_|qs߄x\Oh={gp{8Gc&[r/J ?6i3uL'"-x-4t u>LMzr?nq+;s$C{_q\b$˫F!?>XܧKrMFFY̸V`=Mrݸ l,H uyL|H=IB$@>}%|)M߀WL?(n ,};~>~y+j|cKF%b:J$ٱ|uUQGrHyM13, W}ٓV Q\ocn3]:.YSEht 1qYqх j1 9D:,rI).i{F!țءɜ좌\[&L&׉ѡq:m_g^bޒKg% FudѯcHwNndT7%IPp#:7ʈHet<~3B<QQ)8gTdgdʸd[iJ5M_O[ f$Y^ '̩ 0c&&ke"7纲ch5q94=[K{Džn=i%5&8fЕ7'_YqvW*=[vm^`-9n{{3~_R=/񚲶ro_S}^+of\~)^.{Dzo1mD߷uT^ϴflh^rc߾o+Ks9s?w|%yC?Kg;w]C_D˿`6Pꀋ B/p1e<,E!m02thEhbG^cJ{jjҙ.ԯx#"ǥāɀ!\&0e1JDB%C҆5GrR:BMz@d@AUG]נ* ռEIDmB@|LA6@n*[ ,'I :&j3Dbb8:_$$ t*Vo__0Fro41)d]o4ݻ`B?-b(# &,*ߺ5:6'(@!J-9K?߇e04F*etw.*Q\_ CnJW|[{B/],:>]sE\I#EE{%>_nfngߥ]^wKk_b.9 ^u&[($]t04o씾#gA #cG[$oK5 Kx$, (>db=yseoL{!3TNLIyƒ/C>n1(u`o1l (Һ#|vl~vP/ Oħ5N` ϔVxὯ:?{>2}=9'\˵:s3Ao_h/hg徲r89GdI:bP% &#x [‰p20$%ї ^ Ṅǖ~<{o2?crF 1gI4)KXˈML ޭ,>uebR ?.7f .y3c"/vD*-&d(q0iށG\[&O Act&hM+&Y['Ngܳ7_"?lrd?6q!Syu#*I߻~:,162΅ƬxY_I> kgި W!}ɸIu1od\ߒە3P i? qe6oHQ8%Soz&A񋳥M7@|)ld>C:?h}&md%/+IV}䛯a>ڵ| 雰HRXrC2>r*"ҏp3-yd׷$O׻=U|9v-hX+2L}˼֯A^u֪Gl_Yo>B, kI]&AO+#n#V;`Kt]Wu%58}9fx lvM\t}#Qha W)>F͏o|8"??d-Ó^^/\5mIꫨ\mlD>}GC2$Y_5h `s{k}=oB+ ]D|€␰B>Bz"Bh!7tBP]\ rw=pZm'Zޟ6~Ȝc]^sqmwџSR)%{y =OnwϷ{!rs~;R_גZr>ἵ8;E]w{s𜓵4r훺|[srdϾoջ۷/}[S}3м_{ ) ݩ[#ϥs|ݘѺ/hMxÍ 1a&cBL^ q"nl( 5'BFQleR7`fLy0JrAnQE^+:P -5k`$oov3mXӶ|%dH@~AH9ob8K_6\5 V:o`CxJ@2FADpC֝ N3, &3&m΀+E m]$]Yit3I &a"'{>~[|78m8ʼrtGnźJmƩN]ɗᘾ=ש#@{JCՂ_QT)kh]\_k%o0Z>8816⥿o@) ;sR[iWI@q-W #zDR.mږ3~e9Xr5֪hMR}6v١U)2jLWFDĨE:G={ert).Z(Y@2fӁ+Wه@ĕ3oJju_ hg`+iή_YO^A gJmѿʍV5q@+<֏W~HU1g%Z*kf ^VdSO2zIPO"u]={Kڤ> CWosg?i㙿?'@u}{mMrѓ>{RӖy}{V=ZK?[ԫlŠx2 }!:$~g~3tޑ1Dd/?Cðm@ʒuE!$Ү;_ޛs;ImJՇTv.M:sˢ s_nS9ʾs#o\a==ZόU޺_#$b*L6*oԌYf׼!9M$>`.ш%)_<-񌮉O۵县J/&fH>kJ~eOIZD>0Wl%t:sARtT=5(6ךc5s#p i#<F'{.T|0QK#e#%.`xg\څ,IJg<,gO/R?TgGC{QJpֶ`oχŦ$P6kۜIW~xauD꫈s)(la@GQî z _yLhW=gƻ':m`pa?HR^o75i IiXg^K ֕)N;&6 ?o$5aΰXLԆ}xg?"S,%G8I4 ?ٙ¢[Yz{P-E_?t}]%/K))k_h?cc߶mݩ}߶-io{ozi|Ok{gϿmwƳ}//=R{}c/%Z 8 Ɨ{?"7^sG<Aj)R^2c@D%j@H~=.P}&T8-ɒ5-{xRN{gaTMPM,2!HIQFǕiUh$Gϧ&Wi@F!ozᣟ?>xNDְPy]14x$ 354 rRҴ0Ns#:fPeXZI%5 u-$0^;|@򇺉MIoY|F<$Et o$O&Gu2~5'^ڙliE3)G>ߙ<P~a;M|3F1]S ׾o 6kxoϺ,CmZ87jQW8Gu YFCڏ BIA5xvvՙSJ:Oյ9T9)jqE:;K2W\kD> YX}qçmb˙ؕunq+,޼ç&VBS &}`eZ-޾")R_AMlCLȍ"ȭ_!}Yk,<[XF-y]t`Ո=jA9;Bs'eUK4C6FuhdY0U|uf+$>;~t'ߔ§%P>gv 6Azv8 нW4+qa3`7ڍĬl#1e2j#SF0k[U\խCrU*y:>x^g #oz.Sܹg"^ګ -b:m[ӵxJ_RkHjk?`9.3xcg6op}~9|wλ{~y k/]%Z^zny]d]w/޺w7_Ȅz>_/sݏ*/l_qo/5/Mя~t}5.ǥOߎF}U}SS_#key sec.[N_Cs-=~5񼆬==ss4?K껄ds\kR{}ZCu?-ͿL1@de2@cۀ @@hҀR֌"疹om5seP*~ dC"bL & Ag̀/0#lW/~ZbmZD])S-藦o*mǣqYÏ+~W"Tgv151z74U `yYE+/ zPPďe1_&@T/n?2KVyИ ~o!@ՖIz7ZE_WvʧM N9I_g]' ;|[ws+@#]װO1hyy[DNYգ d{]ǵRiيj҈g]^:TxM4\M?TW}tEoP2wr{vo)o޸xJK:ToH:m1jКpބ;L[,g/63}&nN{1ƃ%ɎLҹW|[m2XquTu)8+AC((.\}?IeRYi)YEۈp~VUkUD8LQɢM!0nŔaܡB>{} f5Wq>vgd;fg/KDPu|L߳V.ד$5H#@`}G9PIjQi}ͯIm+PGLuҡtފ%=:yV0sHg]PH2 u0?ROIuw7KA{PN9{Xd6!^lD#U$N۩V8Gy#s1pMUiKsb3o0޴6c_%0鯀< ˏ/im>d9Aܷ\'/6tV".SO$v֜^r>;~SG.u6zl5FN9zp\EI⹡ e:Gs/ҩd`oou#-s7^ \,Z#τ8oO#z&2.85yW՝l]\s/Tt}ty-~nTUb+x3E'sD LJkCj҇)ގBْk}عմPaw[_K9r GQ? ,C|ssyr뚃~91&[=ӯрh 氃 $2XPyYI}p Eo!CN74Υ0CǾoY]>O%9]|Vg؅|w׆ έ lsxqtJ?zr(TKO>yP=y;w=pw|<׮[h}"W S-L2>OjIE,oIPvIusRQv}})>./4͆?#~ǘ5-ҵF¾ElC_֜ D.o2C ]˥meֈ}f$qgˣ}Q\I,Ci}el<-$5q;KJ|KBN&? Xt _ d1sE~15Eؤ!r!fFQbHeL|YUg yqA~E r6Aq6\)ǑFoL}#sc%k0q{20c#[u*UWŜ{|kI>lq?E`\:kK}"l>-Gz;刳H \aSC9sMvﳱUޝ?@}<=_l9_!&[*Nl)}p#|?zoB93ܡ.N 60&:u՟h,{[E7:kƵ~"p_Cu?{d4 ?}st1gCb@<ƳGڮ_@ǥaGP 6x~x}>Z} 8(Fte|t{i,oCj¥\!ð@OY-DAq܅2A_܇^|r=WNOGd~sR|Z$З=neX>W~b'yʏ:gʴqw=pw\yaGDKp|)Ea_v\Jb~s\9wzϗY{=d\zK-?i;ޟuCoO\گ}s}y 9ܷʼ}ؾo>gs-qq-)O݂chG9\3>{}^`s}.ܽ}V{z؏D??56CQ1fE!lӀ ]dٔp?-BàIxe 4} 9Q w;&$P=P"SW`x{ IzW,&{'!?i Ț`C_k<FVy5ሄ k.2(S|3hJE$-%[IM /Eo"m*%k?gIpYħJM®\]G^˥DK+16hUۊ(@>u6}נ(]EyiA 26aD*RhsZ4o('1DO+={/5, va Yԙe3Hc{@+I*Y.v>&Cv)5=c=m` Bf)!Rˈ ⠝1%,0n06#[󫬸ѹ&U5oGJg_]zrȡSe ls#>lil啠:u^؜OZ)8 c=fȠ}νe2O^H#U;υQ\&ZMϼ1XYf)n`vXL01*KS<_h~>,}Oݸ˷Rz̥ c &xe+^1.W:qϗlXi ɫ_#ӗ:QAa#| `i雴y] =PKϞ>(gszEԮ%i<;􎥾#] vJItL£܂&4DQdIî{}N׹N|óJ̽KBɛ.]{#+9`F;?uQXDJc/5Yko()&w=[JKSjst*S&;jAexFgm?|`$[>SFJ%6 Ǔ=zB'f>^zW7b[K:آSyߜs0eP+SM#\@K7/lEZ˗Va6ճ)LY(_}q]y v-=W&?2Tl꺐Dtli3}ktK{)s|hByW,(E+3 Yla)FyQ9X$z%k;6~mrmY$G) MїvX.FhԷZfP)fdI:'&+~֬T9{9 ksէݘ$'-o7rw=p{ϋ)oM<>%?4lun~nݾ< ~O5Ӝq ^k_hm9gڿ\ ^~=}+k_5ۧ5[x]{S-=v컪Kx_bSFSssVS2}`][)[Tޮ[/oۻ^޾77{' ?PSA&5|2)#o$ڕK֏ВA`A-D=,ivY@0jD4m @3R!;IRlٮV=XNoDFx I@:Mh_6x~pls|u| /Яπ1^"+v@gJ׷ N&fn8-A8&tAMbnE)}y'a"ڍH AUArI.&+4hi-md͗&WJ 4cf7\vwu9܇_f[3Ykkg &ӹfR7$G1oS}MBVM;=ʞI 3b9Y^˼![WI5DYi#>4sܯl9a`:_۱-v>7׉txǶ=MzjMC/z3:˷OYK`:e#炤ߓpJq~$.τJS/^:?q9sGVԌ]_-u'Hi5nTXWy6\V oR u=:ؽ:9e=$mlu\ ib&u7MO48o+z<&KK-d0µmoS/}=24 O5N[{-9|^q%ݐx۵'NZJwQ @pzʎ T#{X=*&eVV.Et\| nu{[ly'h~ sk"'DPz ^d,a+"%ؒs7E'N<.&ZXMd[,޼ >} !}553iC;Jrrݲ L:2y(3sXž֝ []{^}'Q}o{12k)kA7îbJhs shf;gR}͙93>>?dAW޼ $jOsW5,Dc%>}WgOO)^CEz]LmqdM&B9x6'Ȧϧ,6CKRF)g*}LP̈$ sDSvԚXyUڂJ#I fvth|srZo&{Cݏ&5{F:ѾVOY^Wt,kYl ]&B;\YkqΧGfNs'Wڶ> o03Y \Q {ѓپ+b"d g뙧Ƅ;FǼ_oY-碂\:yЎ{ZiC^3dT^SQ("rErw=pZZ}KY^~Kk_=y||io]B8r.ǯ)>5GOi˸[\c\M}{޽Sldž~ױk鯥\{|=?ϽDsx/^Kǟs\#%_R?ױK/?oO{MV[K/hɿJPOPFv'xFY-Aa`Odג5`k WZi3m` 6{۱<i\p#y4yoDKSifgqa”c 9NOH9dϢCd7ǖ 59 p6S7ݻ0b5;Z3:$4Z}JtGrv8Gqf 欥߱~DF=&6sĬIvv4wmH-ML~orD\ $kG+;ȵrpG}$Df֟&9C$M>7@ڪs?yAщc vu#>>h[m1&rvw?„;`649>5V?T"C}^Q.6X-[| ۇwk.Ee}cIUnկ֛i+! 9Ϝ'˃v-jq?xF &[Md'ْí_N"÷XMyPŻd3 a&#^@Mp>Ky`]&|S hz,KIs@4(Z<GOk ⦣{@ 7=W@{|e̠COr4E@s:TԳjRYdͻ o&5g(=l!7>ɐb֢DyKCj8LG&Nf9EIу"y{cZ*m.uc)բ2z^*YK¢%):N)eO,^|Q}- W+ _ 2kRB;5-hX΍R{ʿ#)\vMڪ\$Ԗ^ȗ^4'l3C YJ m[ʲ?q4^ Ϳ{W$Βu냔ȡU߹Vb7}&s<$`9/ZKo$T̅=0ܩo.O[c+_=Ow=pwc^RLKy(xj-<֞f}ξ=9d_9s5}_:ro;?|+gK=5{} =°۷qoo4sgVKx{y/%ot+ks[hOVk?go]i|d)}CsVdTޞo~|{y^K?) #* ` 5O`x;F2`@s37%BOFFLqt6tR'sog<(qQOiyĚD%a&Zw3KAU&cG~hRTϷO;y3I\}*cSʛ@z@'oM~1* A1؋Y$1:{Ii&}eO.2$#[Gh ]<@ЕRbp mXɛC[||L4/湐Ù@m_} ʴzD#E +9֏Qb|:n%q?1t=/}>L}*7{%ڛ~yyu:X, hR[-M:G_J0׵`}G3H3g[{FEuZ]8&EWI gx3o/gHX5G_w؏|x#&2!>ιSAyc;W”_K9Ilx seބΊ}>8A =[Z<NiK3=pɷ<!Rb˙3=ݴ/k\%`?sd[J?7 Sc{9{O;E~w߮;gNSx^S״oIKx^:oD??To\1c|aom#(k; ٿhP1HH oI]&Bر+8weEsŒ;pA!mZCTKACV+M~AW*~E*rx ZOnD9ʟE`Lh 5M^ jpNj1(WyifT~mò0ȨL 4oW㗼ʺhO 1&٠$|̏oRJ@M` kZ*J\K 7 )7EgżJ$wM45oʛ.%6?ߘ䈌 *_&MWh97Ef#5mo$h`tWPylqѶw}5zƠ΅qbFƀ xUmXHV#1&tZ+DoM|nOņ(%bF[2&YWk]Eݣ%zyG lSh ?q$QM}ڴo:`D PtkBwnP匞D˷뼩 홧7z+m$*T?ni&i}|#!`EZNgb@.^ nb]!ie(aԒ1Ao,ѓ_K'+呝bK>F)kDIM$gszpp~q]iKWO/{LL "LUP~ wN:+ BהJzB}AZV_3rv?_co֔*.2S ؕZ 6'C˸5iF&D|SP<$?.Frņ㳘ot1zoj@K^.=RuyFtp?rB'N׃TmHqϐxP?ֱ/H|X}E#Z7V,5_?bYiRW7 '9 34'= g߆ ʋڭCeV]C^%g1 +ގ"_oOn=;MbO(Nj iUyJ[X/]ҵhydk#̷HQ_O'v EvCgE 89'O2=w!bWyI[\ z^vvW L1P8w10!p~u\Oww=pK_3-_)_3@ÿMoB{!S~xt| )?>un.N]4~'9w)hz՟il+S}{}S:N^CsT%Om{ מ~O8\Sn=E]# S>.>oynKqlm⼕3Fk<Ͻ/hwEc6d3BG%u@(A 7l3Axk@j͕X~ z,+{a28<~b(c#I"z/ϱPMnGƀBnbH<诏MP+$%^↍*Bjj1оsK^y;n"Tur!WIl y|,_AtKj^m3i̭',l;K 7p'?KFT "| hZo rd&c&gxMrEpWI|o!aYіOyڢ@ $UO'8 hB5kLmG5㸥lt9i>iɣ'{+ ·a,\\ǯkxH;7Yh\)2_{ _mua'mwA#[:f0:ܨL~O2*mV%#7nl*'I|2qޮ;nh_[(2Cn;oVjn1:q$4gi":EgQcjSd؁|} U=m"oSGgu#WEqXrs.)N1F3:ЃP>U|/u{Oݧp0k^;Y9l;|KIpU,2]%@(~snܘ7fi;"Vؾ6-h(kz眍oQz)#gCYYM[h% |܋)>IIskFGhNS̄ts1C__n]ҹwt0 1s>Q.rQ:35 oq ٜ'HA|#W+kL>1{oέ)s?C1P{}g86(2ڣca\]+=ya6trfr{;m`&m櫏ׁ8k mJ|;ײ\<``1꫟o_r{{ycJϙh<\d_.k)s[[{l3?w;~\Kym1;mp?s2ony繺~^{Ǿ\h_alvnῆb7&=aP'A*2 1TR%b8Q#S ׁ83 ,t6 hI/ u? @ЊM7i׉Di 0YqJ]߄lG;UUA5+RooVv-Z15ܒxB'IԀ0ɋc>; զ6_~%2{&8#O 6gT .n ׾MhXV݈~`}(Ł锵[/"^wD4+lM0!A?C[v o [EaNm2AQ=p˪A04d'pRو99,OYH,TE)C'@ΊgW}WV6 mWa^}2([#V#x#oMu[9cӕ-J뾔pX ~i]s*_`~y/5,G}vv: f>3EƔv* 4NSL֣COD‡_@@532ʙj0f4"K'%}bs.ZH.%]r7JAʌ?S[J=$DKisޮB9Tˬ.a٧XFک"E 䍏y3TǢKuMmqN Ex| o7j:7y1d8QY6h\}F/L{kuV~|P 4v <4P>a}<}jz<@|Tk!Onu)Kw!!@?:?+\|s4zo\ؔW<4,̝:2YivAVY9,kOv g72I |z#o@#LgJv*1I5շx{ k1YǶHhԨ$ZR61xŽڤ=Z^0M /.|l7G$ZB=3ow^R#WȘgڮsOr̤E.Lvu䪒C}eՕ,QEzh2KVHP=Ev׻Tك)kPcZi')ƷgF0\?+A@IDAT뭣,hjz?̾;TVbd>ͷkB^r/ڜ\q75u!\آ׾!Ě !ߟ7$ۢ8ϒt-]wƻ{zN~O|yf{~uk->ߟ÷~y~4>ni/9ųU[o.Ș)S}C?soNai./x.?7~ھS){myk/~DKx90{m ҘIk%EU}i5gecBJNbo k$iݯ%[X&e3o0)15ȉD$yTx k::1hCY#i4rgd#'.I*aNkp0Q(oKQ*ΣLF5"X( ږfxBa>*CK2up 8Ϛ&I 5燤霈^dӉu.Ih =mh%UزugnF=#>Y< @ #ry't[aQ1Jk4K\.pGd\JBeX@y8;@|bnV3V}y_ aY`/s LeRWV;c&Rb2qoA.qü+RX7Uki1{X^hw [؁ TaJJγZ|^M0(x]Ձ(D=ze=?P S䐀d ǥd+W|+A몁+gxVBQA\DϚ ;aƖz=s{P /%:}ѩq+>y?KSZLO2d\ jzț+X6s)bEfFS]ijL{kPx]߼&>,"q=[&}qGC@&.z">SɃoÑiocef.|MCFMG ̙s_:uA(T-cbٍ *ZağyESF&ғA_SYgv̚_cozXXMݽXV6j`!9Uq,}ݫIdIr׵qѴn30 B4w 3 Hm$DdZ  @WUy7<ԙܾ32O|U3e,N[Ƅd}ŵW~[ (P]Qd3h|5 Cj-u3 v F~K'Xj;b,P.X$Z640%BoikE//OHP*-E=~|"G1W-8/yDK匬?m}ok;׮Oկɻֿ+W})}9N=~:w=ط_j}_vB,%ʨ?ͭ$PIVU6}G>gSlJ"Nu53*o# M4u-\ڱuN$fh5>kϝK靆ySƫ׋ΑΧwvj|/ (7Np> (Y2OYz_W>"+cPxEX_~CU}CaEudI% O5[>ME!Cհ2ifK?_&IC\Y{kVtP(D*`E?$5>xʖ"$=Q>(43)͔**tWd(iX Ni!WR|%4 Xd_-D$f?بxQ":gt(YKVƾ,-~ c?T\[qbf.UOǰ8[Ae?'_jY~|`9~[u /C.^i߇k2Ooac؏O~lԷ8L{){ӿCpϞfǩ=lx}^璵m{.;^-oxu9=޾k[J\J;xs73՛D젰WGĦ'V lj&7TNݏNۍ0e r&IzJpS>32D'S=Q1BFh5i] <'t+.uji'\оM,U]?ʨTToS-j'9x0VόS=8rbZT&]v3U !lj wo6mc=S ,v̦$vhG,6KO[<0::i>8߉L^U|vFvTGwqb FBw67 Dٳ tMWw$HFoĭpyZQuTc;-)4HPQA$"Еm"W%YrJT!=||no/|Ex,"OyA:u:8;Y^ c]cQGYXOS+;2Xk`u@ -wݱ(OVo?z Ai76>.k-:c>U^|j/ö"Y1Õ]jX sW8to/T|y$K IYO}n6q2 8');Ǯ/'EC00eW%MDb"#}zUV'Ѷ]M^Lx-gVjt>ZVxKND#;Bh`oB?H#SFv8'~#a`.)Rs17xYP@ДJ oL_p5hW/h￁s%ZasU/|+{[[.)8[5y}1?sCd?ƶsq^h^[o9=5=:wVo䍜iJ ossCw<>}B֕-f 'l}ܠI7 ԵyqrP-! O*ru3D^ | 8q R~X^|K*n6'fqC2x`dHBWy F`nPE@55Ok[b~0H!VF!uF<sCOKy!`sM*j="^idC 0yt:P6O f& \ ,** 31p@t$8X"fޕ%,|GN53eu_$\} _ g,܀E\uix>0I'hhIboHhSdF_e%5׷W 﨨j1Qom#M~K8np92 Σt/_8$KNIBAO"#m?M; }@qwg\n+<G{#W,~`|x,if~菱\^j˞ZU;+qEg/i4qY8/'$Zu"?J1pVtk1֋u&c'Z*#Vh@*ɡX]SƛEwֲlK/+o|`rAJ\7-*G]%V:|vS`\.jơ;ۇTuj2?qhdl~,'HkbMu;Y_| #Wid͈雟`<bnO9+ΝD*-'9s/&$nx2+)ܗS;[ jSgz;V"Q< CeyTxDt S'Eӷ|VfFRVHk^ 9L^ ~o"'yn1MY$x?l|i!Auˆ(>ڑ{q&L|yf}"|b+2̼jlW,}+S>ד6z H^̲KtT'r/:'_UWm[_hOrR2:dMG_*n/#~`xP^ćۡ0 |* b,/,B FG]amlBfMNö$z^ > +ɘKcOё_Z Z< ysӇ>#[KYƃdmd[gҖ裟i :BCΌg.ꡜT?T.|S9@zWa3a3?.j3m1 w n|k ( GMB ui򕑷YRRP M5LG\kD:tX)\:kGY+Gc?ᐺ TZt&g'hf{D :ƔW\X!/2e(w"NJ۽RWG&#dw=pw=zϨWhy橶ntN8[93>1{&)<T,8O/a볭/Y?s_ss$Z^T.Jw-omt]Է)s{<ȕs>߇{] {kӌ 9y)mVҝ}K=KJ}{v -ζϘhfۓӺJvYMF칸a3[1s $36[A >CJM_a;I'rbU R_ԪNKAׂ!D3_K9 pSQmsbnO`vlqmX6rϐ|SρiAգ 1z/yGW푆5@XX: 4]BncZb`7-j{ TQvؗytmte렪G+@Q^]K 4~޿Nop3ˍGKHY~8do,1)yf~@ұʘқ{{z8ҊeYGBO‡ ƃ u=dm҇|Cq]rw,"&jSw^ߧNџx|+o[~^ў?=:oz"ξo߾U{*y}C{}G|nS_SK|Og+캄}ݢsux ߽{ǿ];P=^k9-kgKoMj^fNc e "\ܠF()96{fsh*n0x|& H &wM ,NcJ;6&_mp.fоDwI@sSȔd$A>^+lȅ//< φ㢭`P.)ݑ HXEf)fq!I!&<߫ƭn-l.ڏ#K~$)ak)>b%&E퉼2TE s6}S\}#ɛan_. 4KM׭MP7U4L ْd$uaJ6I;$'Gy6(v[TC$-M= ~>SL##s0U\\:9gj ]1.Wߙs[_E^ȨfW3}ӱh% D9XI[ul)a0@=[ǺoN\#Q=aY!ZJ3rY+b낙TW8.c9MȶŒu06U/E锩#UCZwK[O|ژ*CdhikkD6X [C:(Gcvp'MFJ6sڐ|c!U>jŅj|`ہFun倮|/')~m5+ "GĒC)'V48YWo~$tկ?˰~arq6 YmzecS}2c'SNՆpgre-rdotr4sq[]3+%}X_L%_¡M*ң* 2|ME;ǎ5MZeɋ݁& RJz c1>1\FJBE9f|B"!:' ?*}spqO'tۧRڥ*~i(. wlXnGʫs>uߵ[>^@ 8ၞNKlkE4Fd~Iʗw藖J18Jҡ`iI}؅xb<}*JqNJ/w8s\cYi90ڥ) mW_5W#<:##"VY9>3i1ЇlČ{-|QF;l 8|Y*xPOQ+|AGST^9>P-o}d<;3C Ws{C+>K%_oOMpI{X~ӵ:\rTSOw߾VoO~S;{B?:Oy |ҿۿQ嶺[Wh& (M08wkҝ0onǸ-DY&3qZ6u6ě+^j70Aʫl~>Tgə'?7j?Jp3Xڜ^Mas/&9V7*`RMTڝ=7#pɼ%ķ8B{ 2SWmVF4׫:!ӇـFlNC6gc_nȦ/,IBIJtI$]D&$TGC7G7mʍ vxDeRz$hdjIk5ɖ8 Iौl>3BKp6 S%`Sqh5,_ UHL?+8SNpч.IpYM~|DtC6۩g&-" ymRDg΁ p)HndwVwsܶ(%퍤UwJ.M]:,@#->xUDu! yO^}'] c%}S0u֫Mh>CmoeA {R+܇UE }R1F_e6)*5\ie`o뷜Ru0peO| b h{AU9FP8ibOmXVkq 5? ,;^;^k4uy $4I"?HyVy4HԪc#~='9+~|䲗 mVCLg衆²C2N#E%)$9*LStAE>9]Ӿ8z{f+yZe]Д@}"Ir(5:p7Xc)4Ɣ4a27>=e| ((0)|b2ڤ}ҦX8>Zm dLB.}uX>wHed;ntN_hjK_k,0F~lտWʋ12c8r-/}DNGiQ@gx?lChѱ!] nSO W?Irhw»{V/#򒍗SύԬQ9[[x]3|eoy?D-ݵ%36pFO%-޹S=Ny^ޞZ9; xO?ϽO}}6 ޞ!}\]"o|(u| 9Fsl Ă9na݇7@/&S@Sd92$C&»- [>͠^6LUf%n8*ԷVk^`njb7ݞOʆߍ$AFaD]/U<=nDZŸ }c#nndfSb؈G}tow<+QR*ٸ|h U{~VAFWCGm*u[H|Wړ-CmNIx 6tв$OY=MPNg`>5+/'DZq*o!ơIW~`2YȦx)$Gq|llm(/UL J/)\IGd2?PC96)hPY,O4ΣHKh:?g?I_4Q.Ɋp%K.@^s319ҳ2]*8q>,~1_ޔa_,6yAS"c5r"rܓ/HrOlTMLƒmwE$?Mq/ 3&[L2(j"M{b&;+$ÓXn9&iB۴q͙hl;ȕucG%`r9C,7O?,6yJm:'QJ jPN#>tFD+L雤/{ɠd͂Ppw\C*nwakkGtoc hJMfJz‡/tq mҌ RW D5qGk]؉}u=Ds=zbB3:[ eR7MpRnP#xFXj.[%&O,_H"84X=/Rs"ns|!|,o+Y#M4Ѳɖ۟Oso6S.=;_O{s?7xG>ul3Es|'}nM&i(E>(SSTCQx$k|2W7u:JUizҫ?MRwݞ"|!ky.-Mޓ2G\c4m7ث6Z&ej𫼽>u~w\GK_zo.г+s^fDiq"Fև3&XO jg3kl!y&N'3%t@QIHĮH™gA_ TX@tZ "_[GdPwrdW~H .[O![N7rX3+G]WqJ8#\Zx略*aӯ4|SL1Mܫ/ݨ"·{ev{{=g S'ZMM;Gs1sx:pp/\Vvx<87<~\?>G|s?tS3}][r9K|/ =74CK|eFOuwJ-8.>O{I[jo7g\6>#8=5ko;z%ZqD!TݲY.6ك۲ &Qf1؆@lFe눍lIO,Zf"sGZȶAIc̟Vl ltl DywMPSw^J>$`0JIO~nI3fɦv)$ׂ"C).F},oĩoph-J\9 EvQ~.;$d:nW~QVl 3Dǘb3{SVTD xqJq| I hSJ vHMH@ Jƒ"qw$9T&xp{?;ϊD 2sT?3D#K4jP51$-Aьlꔃ/c] qtFQ ';᡾1+$g6R\Yx2?~\#2nrޑp?ā?k#92tXEy219ѡvz Lk:&MJF$PF`-⫧k\:cXLlc,SƷdʳ9ᖱCOcÒd'*f-I ׌/3?P/oC&em ۟5Wv^tL<.gm0ne"xW,m-oMa<@_Rc;@I!]&R~Cˆ`K'͂/.Z(d"g"뫝uT^Sp1,}B}%¾6e5$k}|rqWe]2$"K d>7cxhoҼI PV׬MB!) 0N+pүQdd3d'έӇ^'|-Yk7@IDATDsl??1Ca(W+c, 1&YZqUtd |)w=pwR:\c~Cp~X\ňknq91==9=ݽ}_+R}`s}h )lh)S}{-_9n{%g[O(}j=s׽^]ݢ"!3qcq&o|`<}a8-ȯ֥R@'nPb㦭*f 7헿on{-Nz5W9ASU@^DKOT&fx$Xr_mR'fE7h#_)µvr2OSdo0^i0Gqj H.B֦o;gCUcqZl ێmV6mŌCk6 =^eRXrTpbw L}㒸憴'7@iD(zk7b-kII >pw3wMq:{i_͝n])X 6e'Ȁؤ&jl#nѽW?Xi^, u xʒ4֧O ;[%Y=EۨdS2I.=g0~!8d!8@dB#v [Lt+U)j%&2!ؙwVXIyT_/-+$5=엿D)1ڞ{kDvk[M8y|.|a`t8a-4`:Ͻ uUHޝs /Vq+0#g_uhh {kJ=l:@?mXćtmׇ-GƷ(N\Q޳O&vCGoN@Dx?4ӄK{͚ޮ?*JBv`Re+ S@ o|"|?6$HmlXsOD˷?Y?+_NtPDr{ozM б`G812)J6Ov_OOk6s d }Ǎt\۵\#bdh"~~ݟBG'Vm#ŵdU&3*!&th"_A8Bb#Њ~ :婽;Io, yY}ypϠdX1 "'U%E/!7uJlI)wjAe8Lrزu!>j;)aL"p<ɱr }Yv֕\^eѱ4URs2&娯oE;[ SYKGs"k**Tuq-ӦĚ\wd,>#52cDAwc0ϔCNmU=7h[ f(.E1y9#C_|\#c \~^{{vv=$Z\~>+ȻDq?1ޏ٩q04KS-ӟ^K>wS<:o{K}}I-[=}{{~Rcc K2s?ߪw?ߧdOٻy\j_v~}>-§8׾Dso쮸֖1ٴ&Éi}YgF|7kAF:\J%Pw( kgd_$Z6fЍpD|ٲwz3" ڍ3Hl.KZF9"0&dJM7:[MƌvB>˫|07e#W"K]t0]*Gd'.~2MP6p><-Y #& ꕭDUǨVQB5x' #\;7/_L 6L€_Q6QN-S;z8QFޡ:sts}OQ?mGmu?G,6Ggin^3s0oJ66X5bN#d, ewOY‘῵^Q2nxBx'i 4#*HHP7tAOTco&8V\I=غعQL:O|c?Q9Mj/1F9ysnt]O困Ё?i.D(V|zU>}ay-hweh#>Q/ ,3vQƨ]$YCV€kfrk#K IJTbWyv~^7m}R!YT\ksA6:,U2,0e-Ler_ߒ{ :W6Rp, ?LRg_= \}_g왤$N+w57 喥~? kꦝ[rb}Y'V`"D-_!^jzY`̌w( _#{U#>$rTm/%N@e~֓k25@e׌A\kl/бIl6(=8cgiſkPcW|N1!Y|,L0>5ɪLvaQW{/w=pw=@o>_=7^k_/d]pmNٹ? S<,}h3ni. zMNko]|=K}d c=ߞ׾}+st^o^}K%5tEƗ3a߿C{{z^[V[zM[myۃw=}gK_f&١Zr,n*foc2ſlq &-@#]N,Dl'W8nf>OnJ]) twR}MFT l|L|d"< K6F<7C&c^UuH .$[;~ݘ+BxQ_[ OiuETo.I0W"-+#x6Lӎ9ѧn?6tTvD'&ʥ _]Eu, ۃ&ёo_+dG}x(WTo߾nlZrOk&\a%d89qJɤʎ5AˉZ >v,[lUY,3C=,nJ|nO(Bh"7Y Ǻensn._qDG&s" ճ^u$(|c3 Ksבs*螉'o'0M!b>x_0!,L3H+'cs%,W9uޗss_|5mkW/q$LSxiBOpƋ]e=X>rm?d4ޟ\zF[TpŊ6_p΃sSXv³&/Hrזq(C(Vజ8Nۻ^wM?bpOmmޓ=Yn:V9O $2ɖt7<pMf옪@_8fGo\FآG/s=ǰ:rYqF"]>чڞvD{_}H>aS%;3*$יimQ:S#c]{ ?.C6:c^)%H5VXamTcl q!AEhT?xddyz~{ ǥC4fǓ|]xYe$5VLiS#W^#jY@ލ5,oaI ]ʘƶ壚#f ^c7˛-d,Aw~#GM??oOU9sV12,Wxwn7x@_xi*-1 @V}Fpkcy;dŻjC#w:G[3#/Q} šV~NjGw=pw=z iOh}/`q}ZpjI聽3a3vElq}>yy ˗p/˥sk%Y:ӿoe ~}n]C\׽-_ukclsr/ޞ{b{oc|wZa%.%Z{2MWnl’Ž;-k=".t6b6\lԺc2mKofSwkɷ; ,Yd]lfuYݴkg9iĈ9% AnVgsIlpf6H{5'䟍e 4R OăƯ4.i6sMU6ݜ^nS/Ӣn+ Hhibm1Vym_2U8PC /^;ժzC&/W(I]/-_U?#6 idL&-Xli6k砀Nzm@XZ%!ޖȀV;) (նi*:ɬaˆnCxD=qAꬓwLLc(|i ~&Qm~SH8e|~:O~_vWyI (P8i$1:Ul8H K$Q )&)- V}kTQcܱ_55 d*sQ(Wٯ=zo[ZnpڗXA,gS̀`(/%$9|A*(`mA8Ja}>HIBIBG'9̉Ȇn{LtlS-y_6g-3)6 z}|ho9Ijz '믿ꯓ`O3 75v)IvdGw:j,]0Cg (sLg+:kCR9X5WdgMeJ+ P#kʃhIm8۸':svQg&سl+[4FՒ>R|[i{'rcC¬# `yA0B9eW?%x=~_}K^{W \RlKKr.]1hBw[o۱1~tx(ۼS}{?q~[Ȱ-蹵c`^^Us]-`ϤondM T &6z 7ٔqӷ_ex*vz$>39pWoIcd~I>l!ƆEnrͩСQrαKZ_tq;JN&yjsFUV) `}}XXK<Ŧ^rOG⃞'~imO|mQGJ{6 1qnMWmE$0ѥ⥖aN$wDj?}$8K6뭂3C},M$dEL F_fCUZLT͗$fx&^/n9*z.j>v{7So-sUZ\:'p*]7c[+#Rv㣟, Ԡ&xa}tG(|CcOarEɺ)6#i9 R_Me#49Aq U{$1QvT T01~LO&~Obc.jb<7?#^awߝs]JR >iX~V%NtLR14JR.0M?'` sҋhA8/h}&&ȑVfF?_U9oS}#~w:Z:WbA ?-/PtG [7 oT]qm`.#MdCPtSYEMPƧ0\78<_t vt-PBL>qklLddR!H|WM7tNr #/0e>pH(˸$n j2:(OOKN^;V}aӱ]D4ueFenGn_Imn[#$K+,⅓m{XdcY%T*>?2$1>n>S|I$DZ1Ym>^Du >=&)r=j[};[4+-+Wos?.F2njc I|`c1z_@ @SDoҋBDT^y̬ x/OE ؒ92c'i2Ɉl8Yƒc:f۪r#=]@.6 lKW_e纴? K\ǜeZB{PÆꥇ|vj;i'ÿA)gSsz)zJ+su'.$]8\o:Q[m<gqI#>uұ~snZ("#(BNDyN]r(KO+l$@ڐSwI+2IѿKyU&Q1LJ|^Yz&Z(~tWC#XP_-?_Z޽66eHqW܂̙ߑC|ۇ~M*D /~ƣKȣw=pw=zHt̖N!v;W<.y[y\%䣇ط;{~}>}=Tjoo욟3fɻ)y^ֶ߾}zDsN9%^; -C>+S>w{/ڳTz_ZKaC)y{Selٻmy^OUSC|Ⱦ{Tܿ<DK7zXlܸlu':M25Pfétڠe`~͍ɶS7jq]Ig.(nqvL-DKqB*bM^V{1W&0XMi-Isu#\ ɵZ7הU^\ l'qضћ5i 0fЏ-Q zOupjZ4@}lgܣ' cu3ɔ$ET[fVpئ?#m$ _q㦿|ErrxOl"ڝiW*L\*%Ѕ?{Q믭s6aS҄$NzON[7uBǶv |P+N#͎r@I0闃弸9wcEF"`ukiAΥ]xX-JR'>*"B^k[K pGGHWOK>/ 57%>bH n٫NbJ4? ni\l;\bS[mG8?+n1F,6+ηoNpʰCSh%|++N*#1Zd$Ե5XYK&WhsΏ.ճm|LWqb |l<7 :iyۿuJ1 V`؊0n ~!^Y/Zd`1zhEo_Vg-_T^=0zt7VCJ$3}'9)ާ~J'O8H)>D0!&-o4F51d8c!L,.5RNάzHY˾TMtu[:tXU>>Dk~?o2wu5LwVV)W8T&%d,))"ҷrM-4!1& ~M+7z܏g.L i5x6{LZkdqibgN۔?}zoy[n)~5tֵIY5g ˈ VX4'uƄq6i++LOaq'c`uL,\Ӳ*>jk_^ihm+}iڬ;I3:;g7-:g #W)!(էu]:?Y-ʗ+7ЖL0|VgTIY,[#G[CO)\tCx}OywZ}ܞhӟ4S=zQ<~MX{Y?CoK8U?v+ݭx^i?uu[8{>wq }PyO͵ʿ$ows12x=gcu}n~&ޯϖh? >o6< l?Dvϑl솓5[bl[p lbT $v~LH\9A)ն݇qP'{gܜ"r3]am; ZO Q؟47Φ&z6FI: 1  0ptO6:$#MR0D2oԳơ%,=s<ȏ\ldm++1r+Md&-U=f/pH^c?*_9ՇI6@iuO՟O%ZBW$}& ehٓdP$#ބwg,4Sz 4%>bޫ'c'`W&Xenum)R ߏft=b&Az-x blVvg)qFuN@|aTV4GKcRV5ˆ>hRS:ɫL&-׍7ێ$4flR)_!iHSjc]0P,6СpZqA iuWciNYg36ƧD:΄ދ"k NEɑE\%mxǘQ>V l߳pf=)~ (o] ׀V`I\,K|̥bJ~ğ?5V./f|Ew\h^+рI<¯xIϘ{?ٚJ"}\n|q"6Z K>kR8/YKzw8>`؞4$+c,,1;C^р~S=5[8 dգ&Gư:ƓLX#QH<~5>h(UKI-hO~O\?'R(w\:uQ'9n->aRBWD!WN@Cz`*x"t|Zzs!WW5G[?}<\aiŊSWհ551U=Tp1Mt͝>3'in[gV pؖOyx#)oBYnX'cg[Fn˙-c ]zՆ/?5{~\sL'Z>yWHfW=wsikΞ*9u=1|Nal?[;;{>O=>rد-u!74Ps ;׾3[ S{y~(=S=1Cw }{~{}%~Ȱؿ9xy^k*޵Uq?[_nӸfm1Uvv&Fn2'=U '7|a0\soe y=ܘYt nu\dR_'cXc-X؈Ђ#و-n"Bۤ.*lGIH*7 *?8+%m7 q@Ol^6'’0eߩ 8`,/qO)R&H*>,;y\ (+ +%mZ'ZڭWo'9 ]E>IL@F-Ѓ'?K֚d;*Ii WGoda()x\,nwzr;hk2FE7[2g#[܊$(:B:ֶNj.60фy+VD>`(÷|?|.lD%Ó⯜hWWj[uF7-Ƀ؛{:{=x162jm*99vHÑ Cܠ&PM2^c얂^Ҁљ$$iBK-Z-όKZ1!G:W\Ć:dY?OE+ΟSg'W_Pbh-h*d!y ta-7 2jcYY Gn qL}'DScl==E-_ݥ2 Ǣ/pR@_$~ >s ?h)MsuS/dW*8IƄ#7!*Mkp)0˛>(X#㐮@>4tDC[U$hS3{L&W-.&'*Ǝ(9¥~';Om)iwcwJTB/Iu]{}JN[m^$UL@7;b;c¬k ֪I jAk4BwJjʪn)f[G?1I 4 /Wp!/czЙXddCwX{`oY5"_3M61L-4uWE_ \̀>o`pW4?騜{{{?.ߟh=Ѳ>J_J!xl :¾o8χ`zcO?w^k6kD}֟VG|V۷VsN*wCm[^B{ clk{~Nތ)m𜢽}w )}^:[m&Ln'ZYG+v9_d{dGZi^Ө:Hִ 6'9'v"V!A0UDK׉ʫ)1l&;TGG$ |U;.yCti_~18dTwBCd b2Y)*Ԃ8(VOwR2Rդ-OSZb'EZqJ"JVu-^+i#)%NP8"UzO*:T" 6O^Ʈ#cm`Emzmbې96sGydD XgQ5>OaUc9?IY ?:?]mpe[ѯx"?vTFz8k4d`9E{?#rW|q-qJƟ7Oӎ2>UN~`Ft'l" $\9*ZK'g]?/Ä$J!m-MTqGd8`YJQ#*'չ~ǽ|@0t& Iⲁc|d 8Ρvt3CS$: .ѱʢh?ÜGKSyT%kd VO"1Z]j:&ڛ9D<Әxpu #wU5A'}o[ss9oJǹ)w3 ۬ZObƁF0eP>G0kjlz-ДB5lrN2^j?wwCM }1>Z)a +V m"pMh}m|H'ezV?O "Y] }}/.Ƭ?9 Y b/OYrw=pWx WIX-sws1SQ 0 8K{ [-N_'!y/]?'\%6m89 C/q\C:۞cy)ٗ_J^_n9%{38OݾS÷?ny} {>a<Y<&}~|jP6]Ô{#Wn]/Zٲ3n2qj4TNI~zavHq>wѤX/Rdy: `WJM:D _"{{n:1I~ō&і"x҇lacVmrs>ϳ8twDw@IDATkpBܠrXS<-z7nJ_zALZ [7LDc `;:)! ' Dlf&fccGHXO 6VC$H0㒯1c do{LgyV6 pޘ-mlFB86=I6U=2 [+dDlql_7c$t=4gK]ۥ\ِI|:2 J?{ Ɗvb#刬&6 A6hZڥ7k-"7hW͉0%ùLg#"=F%[FBϳ~Ac2E&u| }FSL(Ӥec$$YWU-"`1ߎFяFF6.kunf++kcҢ<'2RkC \1^-ف$#$vɚ. q[GIw9=rtQ OȯX7Hs9ί~)59`|fC@’P%%7'ZDˬ>!hjGҐ'ւ㨱յP ږN=߸@,4E+M;]V׹>szQZPɴMP9"G~@GXGb$s׹.ޒ Q% uEVgK3myh_EH> ױ/ idfzF_&:ЍA>3G<Pce?[ߢ;AU}OʫCk|bF`4Ѳx- h&̽ySt>L-2Ux';6!``GhpG/3FzO&zbSro8!^G^`K(8>YQiG:tIM o&1+z՚z5*?v?;% Mg|+-vH¸y2Q}  )jJ+x+~77!]OL26L옿b}Τdnnb=~JSRC_kp~o=sx}ϮŻok9%|D剖AVܚ(weleFܴIS`ccjݍ:uo-֎n&)#Q7s^X il=POQܜߣұ V[_NF4I`mnӶ G*KW7?+OZXzS~Y?džX/f^  n.RSlE!FeILh_pVf8MWxhSAzhI#ߠӰsUpJ6DSuI$1A3]~r I4yyi*U7F$oeDVG LЧuDXBTĉ._TO fFD]aɨe6bݖ:3-dV|H`C!zv:}C>ϔ]А3s۾[Xfk0xT@Ħտ뼰]Yّ︐xWMe'Iam>h+:~G] O蝱Aure)z:׻寗\l{Z1: ?xtç&wJX7ob=?/QKta2zOߧQ\R۽O'}"5 o|Z6h dq\6QO6QUWOO;6l.5pkK:f9 kqޫlENTS6YON3-v~ա81u |*U fe15՟7>OD?}ܰUET0XG`Tql:m*ڧaQ!7GKqD[%.zUXw:*1t˜CO,R N |"ubGh(ay:R"|iP5F8XQdx1 ޺c1͚[~eDŧGs=_[P91\ cN$sZ);/F"gu=Gm.)yp:C\H5'N?U/=r9~{{ =  CK̽vޛ~؏ۭq{ئKiOa<ԾK?$6~!{m6={KTY-Pcmw%lioc 9k㥲Oa㿵\a_{\%lc%z\*cw{SrR9?s\g_K^(P۠3C~X/:mva.?{2vJ@q)OWrdAnS$ p{M*7)$A0J;C>$@A NRyI?&$#ebmQj6hF܈Wd6F7} v+D"J`:dɚK0/mу$#> EJ7:~IdPiO5/*3O| _ǴzdDI vdi|ӯ{H>IMW$>ړD m7ؐ'q1i}`҅S))G I)Xo BPkCೌQٟؔr*հ?0ڷ-Fl~Ma D;;6v1I%{h> Z}8ntyl"?mLT]+$qL.SseiGv7סW$t^1gb; n[[j! '^6AD[JJT/x:u-t߄>qcPZbTpUѭ1V?c[G}q#r2סN ^E=c{e;eb1fOFPKncuL?[܎-?o>q^\HWCx5)Z6oFES2$QGͽcSFkΉ3h"ދ:h eOBRV;t-VUS Z4}r=,<` *ks.c,=!gvA7_h?{{b= ;¯h{BgN> +y`?qU=xwM8c/ǐ[-ݿw-[mti_zyH޶O5zx+9[Os!x΍C8۶0c#K򯕳om+cϿŹ^dϟ?׎˥Vsz^~߿0`OfI,ͲO/>L[7nt8lvtCƍ1v6Ts̷=37B[6s Hܠ& ѵ6BG %%g3*$M?] +ui_IB1-0$D]y7ջne'sd.mni݈S.O?Z@eqkMtAujsGɗMnw~2T3NGԎinu7@ nnF3OJk.z1! IO{ۤGM0ܴ8ȓ8XVaF>H(X$K$|&\T$^"'[  ,uy ƃF[7I6$q(͌:Fn2fT9FP cŹȌSGڌMKגqFK'vzs`>ƾuL3|yr/'?p8W`;F8] d[VVl9Ə}GŅ-ѳz0w(Yn8O|.5P5VEZB;V"J>JWZ铎 (ts~xnjG8Hm<@G}ˡr[.w'IԹ`G0pٛҡc@P&Bo^.!OCH)o>^劵_#O`Y[ƬSl(Q|.%4uNdF| obk$% 0橙:d{|vPIIY&gh٧T7/~kʪQ])$(boir^26$,4'V= =umNōlA@7 9E/?嚠d2ݧ Zl&u$˦{ ;ʯ@Folf]*[R6y6*'Ka Mԧ~nc |" r)Res-Jrؐ|*Ѳ(7mmaQϚ''Tf==t/~2pwM.]yuF4Ϛ|bGL޹6qW[iZ!fck|%qFZթҮYR$4ՙ3,<^øŸ;aIOY)rv> (I D4eWdڇu&RumE$+KRqXƏscZ#PDҵP ~hgTg3<_O[P&뮬aOQ͹_d}%$aA%X@w*ś{u*4(1L7^G36Zptd :*=Yenw ~ Ih6SuTL:JKA]Ҏν|EfB$D7_M[w df,_K*Nf(('GQ:4ʢ?ŐNy1+.Ek0u/95!ELT^so1J8SdK$-DKt0APz1/L)E1ӷ|31vu+O_¹'Zgǻ{7tDK*{9⽷=N>ֆ{Kh|y|fۿ罟?~^ފc/hyO0ucPs+9;}s72B 6)}HⴃD:c(iNa Kݜ$;h}hB]ED67&QQl"H05yҥZNyJdߘ䌷>7IOKμ򉜖4~ZM5͉HQvlF)&%(ja4EU7U[, ^4$cMo,I{:\jbqaOSN:'>2DK:l4S e !OG9gȮ! 5R7v`fmx8v̑ t:JkO?Ki]߹v9T|GʓįC$L|װ.Gf#㴕5 Vvccz R5V<=ċEͨmH}x>;`alHl JVII4~0T;w6vvǘxVBW寣:&'cN6t?rOqn91s@$cѭ&puzd9rF(nΌi қ\BKcG?pƖYLlۇ|IĐWJ*K<|bVwIc현Y?c5fE?qM5d=B_KgvރhIlm4aSS{n^c@_g-_nX!.NQ{m>A tU|=&x扖tx-o47$i潍%?M3z(镢-z5?dLgxScc7{liJ9~!Oe6&h%/0n9fM6~yR&O8/7q 6O`G9Q~Kß10%'X/ġ68zNU*2^[ [:!x=~Y /e-X)ֵ؍TYm7Z+kq@փ>ejW^ _be:#񤂈~/MD^b%Ivخ3|bd;.e T֦ rcEcڼ)FSkV=jKpNjTt0]{t>%n?ߗRv=sG^OſZsz{O?w޾%Ze&bύ< ʛl_Jڳ5Xl+1MlH0K+| ,@Z>}I,y4W71f\6#s q;JRxC9x/ `-EZjB]Eu"?II5>6/mkO+ʚhE6S󓨂@v̟O'6V_ f F lXq}3ylj{#|(P1hoH$Qn=g;9%ɚa4[4^iZu[}usl}vKIa88e, m^&QYIIj9 jduNXbs?Ġ?IB%.}M[}!,>_YKfZ0֔&9e}p<1MŽ ;#f426AR|)ۮnGOGZ;, 1V ݜu͠Oao2u7i`)$9&铨F!Tc49T-c1\E1b8Ϭvn&E{bjR=YL`\; 0'KkJ=ftG^@++^>1KUj':u33p~|_ /q/V QuIbYt?qJieL=yTwN@"M@z}#jYXϠSBتǛYa{.&K'Xu^2rPƨ'QBZ_$?u5\\w]c2: Z %h 㺛5>dĎˍCpVf7/o5$S~cK<ڿ,7& Vcr=S1)4Cb9z2iv !ǽonɽ~`xzQX5Ax7vDwcXh Y,9/=dE쉍0pL5 k-ia_lC[lLԾNX{qs-窳Jwلev_07R.1<۳l++kxvi[փ_:Q{sOr9oy/ϕ}L_scp$vlsg%c-'&ToYi}U[\9֩S{ƶ}T^VKd^Kw[hVY?}{y_^e]Nkk1;sg-ﳙ'fc)l$rMl=^Z7ܴ竓 tni{RnrvTݴg@([Ќs"O==Uźah]l&m1 nnјm- C "B ?2߳Ab=XclS{@?ѯbOld/XI>ZC9cc Ķ(94S%&*N)|*z}4>Cr !67H~i$BnJ~d$SI´->z*8]p6G&vo7GߐDKxON,Qin3*fCMXq"Rz&g6oR#kƚPEKd4~ؾr88g ݡq[YYc'cY!ҲɤUƷ;c9O[n\ -aAx| z]|g2 ɮHg2-5ђﺻxVbǡ I:1u.@V_9&T)czha~!MhCm8#O3TiSoqJAFvt$ip -IDZ\D]4EK\$/<AO}H˟pBX~;&Bhp>̾R'RwVO8#2uƪI9@(H1㶇CH˵B׎Vj˅mbܞhWw+4#/4UC{dS$y6XgmD@X19_ۛ-\Gd']O;C=_NoskSO~RJfBlKʧ_$ZQ&Z ,j5}f4S`%hjCxCb<uh:/Js1Ԥ^K9SXs|r>Poڥ$XB`^&!/z_Jf"(8-  :_WbG\0!pY{L_ℾ%-" Be(r9BSm~aJ2^õm Un$ErCZŗ2G^Pyx.z|_q'@8ɬ`EYW\;BPVzq)/UB^r=EcL%Nk牏b#6|Xq:)jAK;ц6ׄd5e}ҤX?gGMxI=+jdl^}ìhӢ!~~{~}ӕ'Z>woxǗa\7z@їe?uߚh9jQ]-ݶ~3^ksٷ:t?v~ϟs}Sr/幔n/gi߾= 1,e^s_Zss cdxo7B[s=9Sϥsጞ?ci}}>۳h+O K[|ϕEx H! We$\ҍEd.jE|p-K'zTj&~UטҨMjv M}0rL3 )M`ʽP92Y+Bk!qzh"ڑLgkz`m]9[J`rE=ހ̏ kws~D(Nז"z/&$r!0_I8փkz2O|U:9Yp}1b|yqc=qG{iBA$0L/fk I8a"e߹FAׄ$14.ڴ>u޵&1TJ9~EtSڡN$鼚dN|۹>\2:|y~1'Asd|U<ĥŸV7AWSdKJ3&%\s-gqO9D$qA$kSuyhimdC;qX#6҆, |*ɔ_Dw>'ZuITF^8W[_L3 _׼q<[}U&& ? YpT" eWOt~SyIhӡyMv(bL:<6.ޮll 63?Zh(& 9H1GStfޗmh剿~}S~P~u:+]oj$r3|#Ȃ儫P>Vm%wЕ0R٤ib*p&4PXQO w]s CXZi%vp{~آUTW/fEWuBtS~fӧfT8 m֊)oS? Uzt}6"nlE9BE˳W|=,2)6e8QQ 'kS%˩oJk18ƱABdяZcn4szi=chBGl^mQԬe~˶2j[}u.ob{,[M/VGK"'0)Lʮ_X|Bfȧo铦̩((b 6Ag1z񣌭13PcV%|&-ԀT$@ډy)r;(06aijӘ+q?6kNK91OoIۘPW"%s3x/W- `qdbO_Wu=]e @IDAT jc|ȸ!ҕz*fμ5XЗF!EIAzX6ΗQGs8Xį]Y6DD/8h7QҤrsκ5n&&A3g]'4э H}P:ec~>'Z,']wzUNHUF?l.cRkLdAhSՌ/~] T}̜,W@t'>;Ki@ @ H>mJ] (_j*h[^F;`ǐqHۑ"QvkSF^6tUG_b=9K[FdJ[X)NGApZ0=%P@%A0u}L 臣;P!N:}Z/ 2ѿrȀ&~!Zd̋i2~һch{KEȺ>Lؙ_}r_=xw=p?9S'Z>s?%x%8?UKSa+N_[?^óŹNsn|y9]L[m}`ڮg{qdߊs\'޿{߷!-c8Noq~ <ҏ9|{1~0on{y{Ӿ?y~)CʹEVR[{hU[iv -í{h?Ǧl S2easgcm6PrЭcsܙa#lL6H_b6a`PV7!LQ"pdMĤՍ$'<>)B88$mkl.lV'ݡPnB*?X H`N6@"֦kȢ&&-_&$qB^28"$,M?50vde٠HIIR>?r}؍X'L iNIo0c &Uϔ*+⋕Ni.5xc"у>d `iOV}e~6UءWDՀ|!>4$ގRI;{E3enq&ҺcZ5v.#XoXac.m'e3n;ɒtÆś4AΙ لxceI%}b4R69)y/>N/J#yڥg :sZI{ƍz:uY6ѹ,舕Vf'v8EƯPDT^ͨ5as I[(%L7i=0ϦV} cK_ykɖч߸-_&T?Ǜn1V^A^U^gE֗|kGUjȑ$64|y5>3קm{5 >Ih{gTŋ[-_GI=kWg*m2T>5uɖڕ3g}*aD4%s7z >y8k!C5ӌoH{3җ<` T0ik&L+r:N"G=~:MK1w X"= HL]&SR DѮ@!sHƠJdʒ.:\g;j:g1kb+86q4i-5auWU\}5 'T{MD˷>|T6ĨF#YV$Ո&yE^%h39HT L>Nh<<:$TkaWB<.|Bs]MlT^u\W'wμkdtYK\u/8E?60"BS'&9*3?-r͐b_bkGO}3B\R zj]8&Y_)Q7Zǁ/CGV+R/zxJ9e.USGҌzcqΣVJH"Bl>K;:Rւ'v'g'Q]VE"ů2t;w=pw<{k}O|1xLZ؏XЪ=Ou1e?nKh}K=_g/;?8㥸[YV~zZx V?C}ʻ!۶[ֳt? 9"nd-s{btGhi&%newlZH[ A gD7OFaX7>͢N@taK`HE}xm}z#3?ݠ+;\q0~O]JUEQr҂_GV Mf]6=#~ۆ6 ̃YOZҧUtI9(ڟ*!'i LcqLҐYyU4S$\s>ye2 SceJ]-aȧ8KӖvF8>v ּ.lp!նTv[-u2_8f'vZ/:(auFG jU{ݬNSW:30'}7&JRH'[R@\"T<#Ǘou[tUA ~ c(efn*ZAM&h Ix'/AfqK@f?M fݞ`ZZDX}dLNw?x'ZYÓܑ^klGזesGDdl=7&j|)o[6}hrCǺm~q]iri.ǰ[M}o>û9l?m?*zKKu, kqJo!r&΄K)F#1#~]]i>OM؅ϧȗJ>&2 PҗU~ڐ|Yxwɒַ"Ǿ{>%]m3Ǵs|aiT?ٟѕޫK?6cYq}ԵĐ3ZEVl['H^y6'*F9v^cI%ä&Zڎw҂t˹'UA~e}͵uK IĔD9\}'YRo9~n=ђk[-ߪ:a_#˷$Zhk*2h9c nqDR ܕn̉]%ϊ-^ ԥ!>|%tM|MȹszխLGRMb~d!xQ]ƪ_>~!*jMd%) GcJb8uO~iO5ܯg8,ҮOeUvHj䷁7]{9\;խVŃ|by+#\iXW~, {C$Ȋ_8(br_ ԧ8U7;COQW\ct*\_9uXx$~@v@EGc!ڬy5(vB#3r|yKP|:<Y!fݸw!d^2BȂ^ݫ]"C5% b H,iaãbhͽ),:ʿJJCH=fcdǓK|2{~8܇>Q{yǝzl ~VZu4>5[>iw߾sOt1:~^~s?y>Vȭ'0ussJ-5i<ľD޹Kdli1l{kCr~>SroVZ}ɿo<{ S#^SM>7~CT2Ѓ>Ѧ ie1lJpqhlIH{TQf7Д6v. *GpL}$iR:&2&fUl"%}n^Luy'fO~ oO^)Tc?֟%}ݒ,蓴!?Iob4I(jl忷$R;?+S|¦O1EB՞ȘZeĢy_Ɩqf4@&w_VMHѦ:?-Jfli_MݰAq/D|i ^&YOrsQI}uu:4NIzXw_X3n}xߓX?RE>A9'ɒfmn$e.B+LVwi$}(ks[|7ѰhTߢ8SL΁s\Bx{jKbL!JD {l0kL0EՄvNl4ظ)3>6:T_`Qo:̂ p|+!NO]-3%~,&&Jg\ӯ,+zvŶ/~1:y1 2׊JZ4YI 4φI+V$$G9i׹dWЁ}Zk]N G 2/Dc$Ig<&$qzҷTh/ |ͬiC)O,YR8T#")+S^Yšite<`K &GKMenCV`6()z:(-u}aDᑷ9Zb[07{|VgjT߰F+}^o_$>QZz!PAN eq'y;͵sNm y9 pF OAI`F\^5!akZslxݎ[0]Aqo5 Dn0f C֘8OLvwӇO=作g3  a A=}gh=~~IKZdM&#rXl8 >ɜWrc>zP`5g6uDDwcl)4U:tʽ2iN\"3Ͼ_B )i4h<rM>xZQ>_"\cr}Bga^H >~M]kױ=<ٛ؎^bJq,5+Koޞu0y{8R>1τ3\}Zt!84& V:^쬻ާ?;){dȐ#M)D)J|xXMq7^*P=i24P|:BjbEC" /0hX >SJNDeL~r !k1 YMBUo\ƋOڌ.?ROw=pw\]A''Z=Sp)%24_<5{-|/>iN?388^)?>bi"GMfK܏CcU`O{~-C1Yџ?wyjVKɹh\5z챯ڽ>~=*)܇jOL5LJ<˳]MZ_+oo{+qjOlQ Or#ԍ78n%Í)7Vsh=Q(IEl gt }Q7IX,I>VDVgu寓O(We'lt3}549T-OeM@tCTʋ(Lя)hbtrv囟uMDa5ѷ@DZ<xX3x#Typ`[fYK j+?2J)iC&l'1Dk{C͆Jp L6%'tñұ#P8Vw==ep^OR&BI0{xaԠ~*2R Zf q?u|jW%7Q^c" ӎdu\O_䘔3g)-cŁN+Z'4E_4@!qF{F#u5+h(y"fY+d}Ƞn/~Zn;_1d>X% أϨ{tQkuރ^޿okS1`\}h\oMz49]]ͺ%k>|B,8:jI_ڶemc Khr$*k-&Ah#3 ,5F> P 8$AD)ԗOzlӮ赓~y j^d~JaSlj Y ;zۣ7 uݺF.+]5:OF'r7}O~/O`>$NڽNA]ez1s scݼvn)N}!aK2l>Z͸6;t=Щ9g}yPfA@pQFpE^]I襘,Z\Y&+IND$jyw/z5VUycFDU^af[7|&ʝlG;_Zֹ @ J׷kVDD`y Q DKu/w=pw=pz}9hHnZ[~l85qHS|ўjρuJjg˽{}{>F7{>?Z_NxkDs`sXO%D(\:Yўs~\??%w_zm.ӝ;?%㔞H[.y+)?\*V._/ژɾ uͫlV1 X1JM٠snMvKqzeS<#6]5۪K7遧xYZ\ #+W"ņQ6%׆*dJES=(KBnwOoQڛ'a[wk6#aAL drrݳDD 5rs9 9v _ShIBH;ЃwtM_M^8|b0n OD"D3-/&B&͓QxUC ' s])W$[Jcj4 L1΄^K:۾RK0i '@:8=':m#WH,L_k{s)9H:s]׸cϜ]jH?%k`%uۣӘHML$VM 1&SGBObNL8"IrZ _'&'VCg:O+G/K9vAH̵* Ϝ0ѦPSbwO%8tjߡh`8Vo)1O"_Gxo5" '6jJGoa59o`w|Ѩz2r8N"EEϹd^B:A8'yTD#.jm~[-KPrsV1aU9q1i0K¹Ŝ P~b7]r:VDRF8 S$yb{Ԣg]IܮKV5t$98ȹtHJ$^rܐQ@̪ꆣ0{DazfswB5סܣ~k0v\ղN٨V+۸ >{+'Jl?cw?ע36^kOW7(y9y8ځnʔ?X4^#q1>R^ڥMx\-,[zNQ:/Sh51řP. "1,ݽ/Pse.=sͤU.Zl`1 ?WC36ŗ8~GFH_~#h|3|^ ;!PyH *EG-y$ւ9@׾ڇ ;ũ@co@VQFx5v+C Lc8,\@f³ż2,INɼ?8^+/&9ΝD/piC;j˻jF2y 1c-^r%s{cOt-j^Ν|h=y<ݽ3iiA@{v;"J^c >덺:=wڸ6 ~iJ[$ 8G>VT܋ށ?jO:ƽf8VA џ9QZ;clk 绅RйpRNLDea~匝賶Z!3ҁgBxKdP-4恛ny恛F  -|3בv{^:┯9k[]ߵn[n}[n}_nz?^|(ڰ}wokOsR{=r=was?KfCS?߇2˾Ks1}{qϥ{sקd=緗/usܧ_+oTO볿s4m?_-:G1a%nH%bRL2!%$z KzCFI\5!O)~~v>3E#ETwޑ'ǵ<uv/-gJXA2nA4p֤W:|ڕя _haF [ݵҎtuL5o8[~>GHb:D="c1 5fNPi9K{ V-L Qf9,Ԭ(rز|E&^L-rbD;meau\ݳ~;4I__yzKzԮikl[?<^Bxa!HUЧ^auy|l8`U[ "[p{p⽿,5sϬ]H>W}kztKh3Gc:G P^NGȡZsU+Uu'5>r|}磈i eaV) 94*C -ru>3xTė0 %]ӈ|pp~+c[ܫ t`װpkK{_IBn k/%bMƯhiI=A6CH*KoDžՏso+@YnbСi]oogFz!6u*}璨}c {T|sð{CL}֟s?{xDH'/\ s-m&qGѤa>7x~?~Gl|i#);i#M3/ hvs:4Nd Xq }s-e]?yK; Sg66l|Ygsc1[QgY4avD1Q/ McWcΚB ʍDyN[R;'d>I/_8]W>*177;/K0+ T_pxZ8VhKxv|w-̭'Z~{^_k?g?;S?USgo^==klOwsRjF\G#idV.@pɤphr KR8h ǤJ֨ٗ& /IB[ܓ7YW\%a,EEʧd{L`JKD 8ͶGE y 1k(6 ]qon2%r|`{Y#? }ip9q,_R^\D&y'c*ᑹDax& }xm1JweK&\S\%i+S81`Dlr)?ׂ\HQ hgIx.+vL@l!>9qNF,t׫Vr?izx#& 9:mK)..c^' ȴ~% qV݂%`dyO"M_H8vEg:gFsto-.pu$ߖ_f} m\snsbۂF&ANwNЏNH;[$ڷk}(бyOَG8~k U[Ab+T rK3'4͂Hc)tQ=ˀ{^M, /\rcg4Uvbu0E9YDF.e5k\Ӧ8GĬ^ĶQ&UnޟTuDU'ťa:;#όs2dpئt'=tʦ }\3 X<h.(J˙F(Q[]EÉ4}[jq2|oY|zK{Ǧ,R_18YD*kA_).=YCxY[th[}GO#"!Iv:f@ nc>E۴+8 tv枺 [6W &譌ƪzFhs7?>d8z}td&q j!;w3]KFw7Fs)9y)S~{5/Vh/6[b- j";J&YI$MM4ɣ)vAis1M O(6&r;%+/KQNzMi5cJTZHIO$e,3}HTM8Rb0$JKQy<}6I4"rm 8+"8L1_M'^0 %x)Yx~w:@Ģ!mń6wD{z $|=*ͤޱ˱gh;"J8Nd;X=MֶHEKGqe;;/%9ILp|ܵR$w <ҷ -RwH 6kk/W@@l--=v.lGI"j .) +y[< (43ҔX", \iW$?V)cxc܄?(>wלjT?1a1LRp ´cvmG7/K BʤE\(1 &\յy/?EOޝWLQR86A?@(f@=5vק7C=F@tf~p㨷@ScL.u9 }EPA.Va}8O)ЪOk=SAk.:!~pu9:=Fu/\K ̇86]1;&+Yc4_羯pZU}Cf]j]): dy!"xgtplxenX/13JLdlZx*4%LCk;Ϡvp}S1J]T<0cs`?m<4?m9ҝZ>[x 9=߯k!q<{ ysǧОt\9J1%t{績DSr=O>x~Mknnoޞs{s{~{}o;\z\|FI/Whٔ$h7^hIR$C>XAUEo+ٙ0˕qdoN@kx<,'9Ba4cv)/Bkw7ԑa$8ݣɩ`(ナgux $=32A4>L8ώ-I' Z!v@L)6ث͇W1$Uy3l% sn*}8rmbɠ諮%Fڰ@CکVCU~knz d/ݕ*"8_ *:?y(]ONE?;Y](@ݑX:Vc[c'*qM*TڙV9/7-;tqZ\!+(+֢BK<$*w.r!a Y'gm^[~H?䞯3 ټNluDfmKe kAؘBאN^Q ޜ+/sԱ]nSzzZ n8q7pwD3Y,(/:~_(NGMba:ׯ9U=;R[pI7啟˗.^ Nvka bk ľ b0~Z~SkƮ൯J41%+nxC\uQh)1sKvwzJ͞*#\:bV;AxG1rGTF-AwT\zH@IDAT!c N <&CT9W_Qc"Q"B7Tp*ć[iu@ȥ.-kC Ħ+AC&}WM1й\Hm~ͻ ge8}gno{+X-hC>m0y)hsĬPxE15+'cG^Z<5s+1tkGτSx>j 9d 4 ]y>/,Tv-sz8‘v¿:Vay62~mGK]tk7m>s^/=?FvsZ)m̝x<%!y:?ξs} 8/㟓Kh~N8ܾg^߽={y箏t<-Υ[^s>ɍ/VhZf4ɴ!L$S+9::`2"RhI6#k:DI$wd-rB#$.)$0^Uז|:?k2av(5F@J"M< Rokmb&Irn/&H5A*96W+@pHkzJ3@s'')W~jrm r}:|-IE4g@-Kg"QJWZǠrLۆYX,GWiY5?)13UݑV$\;;Yӡ= 7)-鷸#?NRriB? zL}&M/yIű%ˎLX\! 5>ib1C=[mjS/,ǎb9:N+= ΘL0]|eF٘@ӗa_OI7Lj"K$Mj9vI8+|Ӝ30ؠ Zg9 }tBjz h魟^|| x'0Ph^] U;Є}(E?i|5@Q,WMNZ1Rh׉,;sԶJ,Xҍ^A,<,PSc:1*ʶPy>2S9jhZΑiն3ߵchĜ~,mS';KhڬmpPփ8ёorf'Z~Řyڹ$)Tޏ5ʜB_Nf_**e&04{-;Y(@@=;%xƁ~N%r1۵VwSp]_H9?)Ο637䇼Ĩ;Uș>k1Xu+ 2 38)Χ5*7*nq2\x,4vicR!EEzĿdZtO?|rϫ:K<ڵ~w|%.EPlτ[dP -_QH9?~G!f ^ޜ[t=LY^Fǎvg<gq^O[3VB9όx9#3]q rZ*5o%9fd a~@n.V6+5zbWa8+cmJDĿ\.@ 9KXCWi=B wNwR M}R J17}qRV'N"Z:Vsht8c3LҐol6ƴ?$,~В eo.O9_k|]k(ATƸ:~FH}XNƯ8kU(k~9冘4ZGwU4JqNdL|-\"8znq恛ny恛.;/3_)͜oᵥ^wϼ{1rC3iύqO?9 b.oQ?8B"arč BTG .wGd vkЙHM,^:ʲi\5M:y:MmI6G^a^j+V#L2ћB$&f6i< ked.Le@S3(?Oд-5yF? XM{Mgu`@3ynG;z'r3s ı-OP~m8X/-mٕ\ZЀԣ%)(H׌śZ@ŠxPЛ@[vJ_RXI9͢ >/pOǦ1 >2y=Wf-. z7QD- x:[{ ڀwǶE/4u5'4r+?#Q_/o,c)y8YthO tD0휦-UHıQxm m9tO~*IZʡQ¼y/GS^:7/G࣎BG32ꕵI8:u _orQ4ѫ=3GF)7(jɵx?6:Iy;`׵9{' pm;lݹ0fXP-)"]6 j>U}!kl^IхL>(c(K܋\_z2%{O=9U\٧`pn{,ދK&r_+Eo([gJނv{'ϲ3igT1곩8ܺQ;lA(bAUlNEe^ Ǡg\Dg_~Lrg d:e8=΋;Ʊ}C!KK ][JY' /e/H|*V{>q=P~2,_(#^7~@%/_ˤc)$!D P +0 [ y.>jx z~/3Ni} ]ޕṱ,ý]JOj)EcDY5S, *NxH`;6壅; ^ϸw~R$5Ms=Y:d'cS^<`h=tkkxRX{xF'1:.`F%2b[MƮ=~TNӡpܤDð.|aF6 +h9WZcϛny恛nw)9 -lg|Ez` 1OٿT|=s?n~>_>Uh9z1tswd⿇>|qx.yZG3O9Z=o>^+$bH8q@,bHʄY`e~oUL&߼iAF~jTzY ]R ݨLRWy]ہIV- Oh<ٵ S$rhKeȒ +7xd/Ť7]DSŽc9,m7R. e8{8 O[)YiTk;bqHѡI7"?mpefG akzN; n&a!.m[g8b⤠^/Bօ ̧(j֘y+#G#dm%ق,Wn׫r<:xXAljKkQ|D E(V9 s}?mr1AWEpnFZϸ@W5鵟]6Ш^`1V*bX޶-?;թc~U \v?ӂOjcg,p וi/ 171t»Cxa誤|sB148X"r哵#m@1r9fJE9a^deFif.Z -=o_7}-Hߤy-X0ayxbfYO㧃O}n``k)`E_|\uׯ9ޟK"7=޼IkXB y}E^_q;&-k0)6qv1_Xz!.ؖ^׽-g%D2\w81Dj:T&NY=۲WQtɎ';6n9B-bdߏk4Ȩ2ļqN9_P])"N \S7zc'oƛs74"Y jÿ~ ` ;u_iKW?-ݾޱcW{޳󼿎 P}ytC4YK=fCxho%y06T$m2;S6G==%Rg[=x(>:0rOq߉覮v7}:C b)4sui>Q*U]g=ϽwEei>IیkZ:8F(e']9$ ,9De؟e7kQi ^erXIGsX\Ĥۆָ%BZdڠ"d5 2Q?\#07K4mu~х>ĜM]7f ߑ;4!8;WGs;zRh ށN#,U_Lŕޫ_/ k~*{_xKvᎳ<'mklQ^V՗ rq~cS˳s[|]_b!~=ʱrw(! jtw܌7IdQ=eeG3N4^ߞȃp8"G<;hz6Swyiyޏ2WJ3 h6G*>ig\o:!\ ;c`pf|Xt[F\Wq_([y恛ny_V -o䗣;6FO;&k)Kz_ )_nbIOb;6{nc}(<v-=t?uKⳇ=|{Ssϖ~{\]c;s>&cs sO8CrC3B [c6mGxfۿ?<'^=[_Kw-^9ma}- W+$?h'ΞG[&,TIs7M,$ U5dR1!ٷ4BKP X:jLɄoC1HGJ $SO46$7_ p#<-?;WqV5^g ɨ'ltR? 1/V > RJÁ~Ӧ(q6!;`SM|^I;tYys b3V U9E40؃c, 'oTF#-ۣ+,C5M'k(K| Os@/ll[ũSmaZtڥg[ƕ-mp+pVgm퀋 ڡN|袅/@ڽ(lnn Ar3NbBU!cbT<}) -ڦ Su^EցE+tG Ҿ@nW.@i3!K|a۽'*SxoO[Gގ(dcAz#Ss }\Ŷr W1X,f5wQNJ+a;U*?K49{N(w'KeV}]4>sܜs"N)x%d@+B4qDq} C^{U:'&3rV9fγ *N4_"JN;w}h/yjQ?@8Kk|ׂ^ pr)e\]#'wX>‹Z8:zO"˷|{{wgK #;`eyqV\%x(lAdpS%;Mmҁy{%5AᣱS q9-T/Q>pQb;h$clѥ >Y[e8fQXWI-gx M@tzQME(ȵxׁ+w$z>}:Xa`K{Шa O0y;]|5(Mrp誥vf8qb/GKg,^xRz|h#oiԨv r5Ƹ昢Chs!9* ҜY@n`XϘG3=gyd^?\?V?ۧm,]E2%[-WaݝNTVwz[>ǧ|,ciO[~u,7VϨxYǂKOj'ϫw+Cv7ړ=ɊL>'ϟ۟լ=wCo '='49}2p\ez%b縗t >x4tsM*CL\^<X!AI0R[TͦNc{o!#ͯVhヒ q[먫G=ѥk],0*BԾ_h"g}gA^wgt D(E]{eR]d3ǣx!Py'^.Wy߉c:}0Dxƫ2|[z{)(eGyL=%ꃿJ^S!_zqZB&rAE᮲uI{ h, pGUdž+zZh6 ^0~Kl6v/ZQ91?ķ$>@岺G,^36xяseWI`1I4MU0d"*ͅU&u/x5k&A7S:oyW#puqOlCCzPZ7sϖNʦ"DRX5B9YKK0]cejf^:dK-Kl<72]}2X)wqOAӏ-Ux6&dpNMꗿ*E"\ E6-c亦_E^_wmt|_o5҇O?1~N>S*C;c.Ƕd>yh߿H 'UeǼ _ v&c3ɓ(sBKG^V"D1V~D>O6lrФ|7ZRt>(; Bj"jO{'Ib/wdLNV W&8M yeGM4i-PVbM:}CN<1V[yI) QC>㯎iٕko&L˻:䩑x9Ƅ*4I?L)kSߒˢ$7m&'56 ?9,xIgS_Su"9 'Y,)n" -"l(HLqF[)3S _=K]]Mb7f3&1 ~IlV*m{Ocg,aBe'3mqa &.qk@ba\9+mo*Sw#FG |S ,Kj,~R&xg@#maPv M98KfǠ? ;cdԗ.$P]=Rg*7ޘH7cyؑ^⼢` B"D =ϴV'~X,ZOd{ݱ-oE"Zb4;tfG˻d}rO twԮe>X؉O!sQ1xc ,`xkϪgQ'[{ҁVƥsY84Ӑi;Ɛ_6U2&؝u -. plK8Ԏ B,:vD%;+$G , t۵?Mv<_(*vhY~>C%BKt&:Pm{('!tf( $p0hW Wt;t-gK]^\xggQ6 k+,x\}'@?h k~]kyR0@I{.vBVښyc/v(񌣗%{tlĸT2{QNu u|&zK6uʺ1x,恛ny恛>l1^4sfd~.H7>z`x<$}OOkw{f?|B]9G ~sDʿRKt=X[^C}?G7x{>s)^1^R=.1>'Kܶ K_\ s}ʏŽozƧ~n<0f|BaGR*`r.$mrƣٴt 1'tz&*"rڴ;jbH(&T"Ae,( $cR键I0?WAXL BNt 7Y",4Q-F]:=}%]z_Goo6 ?'vrJ,o.LhN3!œE&̝^l^{uPo_br xvkW.4sb`7ʘFj72,"VD."B/ߢ㏉RW*r\5\ 3d0c=te:IvGpVA]+FX2=)*tDvE{0ɩW8_\S$,cH.UboZ֡X(\ATjbr\46>o3kG%dy_1ewYK syw6BtIgc76JZm)ndfX2~yz^h?NG)㢼JUcǎCv c~-y98ӹѰ51ޮ"Jۊqs])ǟ9.Uy10piZ\Ol:T[<9l,~>]O.&`cfWtK~6 Orl?{Z(/-|غ77;?oƱWlշF٥ r|zذsuvsI8#; ;ny10Y#4 ıc+j`a~AbQl/+*6 }~>W3>/Eb ї׆A#֯2,#pO:i34fIܩʑz8c =N߱yT$K;A*ʱt^c1m ҅pTqNBv] m9ڡΎȀ<!6Fw7C9>D7[->ǎ[m[Kϕ9_ߟ>4C?n׹9sZ}Wm|˾-w4y%<{ʿ{;{-|/>qocixK{^s )^KtD;:*yH5}W}\9/k9~Ⱥ?Ώ\tc/g= -Sh7-,EwMΐ*mK&:U?h97f1m&xiH &%M6ajF~/Ħ'!l;Y q;WkQ-Ұ `3*鮥jf1[~v F_mg_;YYΣiO9zz_M{!!5׃eSWʟ^__:&7NΛ 0>ΕFؠ]#})>k]-j 8@Qm\{^DqiIid-ZEC@Qv @3t5؄8s>+1^1Π?QxD H=˷ߢox~+87l]/2Q%$gAm|YnȇCx'~ǧkpCbOo|҂LBGGEcvFoaU_;xxCfi7Duv<p8[N].oAxmjʼnRt16:WNYVX̺Km⫿uuOQ#:yob\;JYgyGte22?ZB!oRO!a w亜hn3-2z l "KCW} u(:[|YA5Y9BQߑz/n}Zba20Ldwg~ͷOuv.\@ ҷ]b~#,{$Ɲ:ۢLݡ#x7±R4ȹPxu^*[uqɵ$Kqb!6 !c9vBa {,B1>_!_FܾL_9qa.E5V~m1w=pȴ(8i4o;[b2')ԣ,֎)|!!{@W#Z^YI F`^3_Z8*M:{|MZx(<~`nLk.T?qM'D}1>^##Us_߱x[?C}#cg|3s90{[/isr?\^w4מ?cv{TޞRѝTΥxOo/_hI%#D􌩴&VLv6t7$yX6|_+Br$$B=-r(^# Kr8N>&}єXH4qb: 1*:BY2-/_i]LR)XSw"Ink?%M9)Vcto_DFZ_ 1BݷxDA3o]$ٽ,=$D?#5 ?Ǻ~u?0Du}CoLFJ䧁eIу򥹋/M"bBS` kF G|Ε5 |R0)|ͷ~KEwhW)gݻ6-2>q|h'~Q;QpK19> ZNv/x[hiŖX=/Nxt8Or\qxռìmDvrzS>'NxZf6fwl{:^/h 1 *Yg6}#O x͘闥N|93pbJz|3fSN碶޸yj4^{uۦ-rևcKo_N!iM/to!KTZD-Ky-)FʵZ 6 On h0Iμf`/m)LDtLwpJT#(pB{ViުCƚڤ=UJ~y*7@yҡSʑʹ_xC_v6f0pB$WpYlq#}$FuA_J,`vkaNh+V]Aa1n|npz~D':WDv`jٿUlSM:{1zۙ]~<!1 Rx=rMwudFtif;nROs<cPsȿx  //s|W}wIp3Ooz==vSxs>k?&}.?y s[:׿5crky̮m\+K:Gw_M /!/;((LJ!`RX)HwcH=6HMw·-k|9檗1uk}\O#˜m[|:bQmK;urD9T̒Cl,E-,mDHnIޏ3R˱MVq]zqRAulxEm/&#'N_r] uQ;=WqХZ+ 6S_¿Fm3 ez7tt.FF٪x.q6m9} s]xWZ繂:}TY]mjk=xc724<˥ε֍P[L֙ċ>#u5ҌR`ތcDJrCyN˾~Ĩ.ݚ_ ڨ$}E'/{@ -FdQt("5k }.LcF{- z'½._Y|sOdʼn;wk|.IݹFtR)Zbڢ%ABVFBpl~Ccc"Nv Z.?Zce3j_ױX~1O}'R >y\^/ 0gr#mx%nRc ' xâIn2>h똵_߼/МOOܐ6ϐ[EY m0O_ 7YO #?|b=[y恛ny_xBs:Ox8}|񗆿1l[S8[z6yKSI*Wz~i19Fc`qv=Sxe=9Nr 1[/aڢ [cxO+c\6?V{n=omisH;cvy=I,>Qb 8eܝ%-&k>M_,/7r3lI%$nمE|޶hX{.;O{xsʛ$t95ݽ2cXNjە t=:J眜-$ޛ4IeyMYcBh@\&`0MH&!:DSNhSU/;}Zg߼##"_{xvs{#8t1NA<ШVH* }9A#! i 0#]`/L_؞u1[cF&XS ']Twٝ:q(7O`ʒC©iXL`2S\W{)j&c. \͝u֪vtve ƀd8&PԶKu/O߈ 03΀Ojֱ.Z/3k佪q#YB $}œd&y}Ky8XaB:t3}-Kpx:*8Ru:.h wO%6ŌB(,Wg~rA ev)с;2l!c?_\Wo`S&M Sʍ޵^<{eo@YG]dSz yr^'PRvk?9xC0-N(^'BzaoXcGl\e^@V&]sz9]# M~V%&`L:VjH>e C VI޿oXVCE}ُ- TڷcCeY4vMm2 }Ŷ#y(:v4E|e-L|ك,)S1mWsShBQ:lɂD6 ,#Ŋ(}DviIGU4և飺6~-{Is5dDVɏ1CuI^,770n9?(O?hCׅi}aT{_į\Ҹx sLwnu>b7>V!k&P' {o2@22ةbp1G<A>{%}>: `{Ǡ߯dsA{.CMl͏| 19cs-:ϼЖqHoبg{G'zꁫ~yH큖}y?*.}K=Ҟ[jFsqW_8p]>u+sa5~ʏwisj~]%sן{T]z=)OO}u>YÏ`ܧ×2FSv{=߾}_?90v➳SxN]:O谿k?Ty{s ?lYcbǏ?Ҟcfs6oRm& ?M-lMi}sIn2D@KXisM& Q 9턊lnQ74DV%#:zn&iFuR斳vQ09GѺv:Y؍>lg/гwGމ[9ԯ&4O\?w. G6c^uvwriѲ@ hUeIҍ\+L"7ؕ SZ^!}T7  48S^`<\Qd4$ <ۥW[MZ;\0iFUS f ' V|8nxX)q3\6ڸqbT/K6(20q<ݐuFFa ϗR$0هZE~0|ȂG:ca< es vb`ld90G~mT(<&Y,ڐ;ξ-䣳>?r )Woo`aj}V]D@^дcӞ=kODvoiCE?qh&hck dxT ~dneLv, >QC0贃J52Vtv s±"/ώztw-Q?_U?i٢wsG~LK\pq@d|xOt7 ̇X_^>Kh^!*>2S?Zd^dn}A^%gvAK+i0~IDwȾԧEg X|׷q)kgix~zlޥ%y ]=0>4k-֜¾Sfio[Z֖.-}4[^O{`SO g}-?ׯ-')<%8М>WP܇%s ?/➪y}9mҏ{sC^9>k޾ϻZ~*w)_~/g߾=׾?W~*Veewٽ^5Ss-?qeȎy?ܰFK )VN6jPneh,%9?72SZ& jF6 GA1}#F$&ܜ#(tO'&)ڴE}Su%Ý`I_}׎.xaQAtI|7 %eÎ[`ȫ6G}ߘбt,w]ԇ`B_jRE+gN;TEш?xэf'I \[ju `_Zn0$6JN?-:5^[N}MЅWNE_+1<`˛;\j_lv" D$ؒfٷDLnV"V(}6 *&suN,7ʦܤM|<YڰVi[mth9Rѩ~̰,mRc:-Oo(**PT eE4֪6rHp /\WE3yH.>ҙl(;^r1חI!R׻ QM冣NTHyO=t 3sJpK&+iŞqr!51Bq'yz {.r[{bYPcph]7}/1JۯNoۈ9;Lݪoƚx0ץc;XI4puP_F?+.PNSj! xgBLW esx_,ZxEU5u?%Py'pZ92oF[ C!`]Az~|=O,ޟhӶY&՜187VUz/V! Tc.—+{r2 +`@KJV2{YzB5?9ݒ{KN˗+o L/uϘOgqO)9v/ze?,/f,P?36'efJkI]t}mhI\Xn16Oh_A!gF Am̐_R>?>3oE3uIoyUI }xk9cX96WdքNNƝV^A)|r_}/~*2"AD;4`!=Rz<1@7?~]G~ڇtW\=p/|t*r)XFc9ϻw)2{=%秼e}pjߗc?>o{]ꗻڶ6g۞ynzwٺ廋f_h7`\B=W~(C9`ie1OYIRKd>fGϡL>|eUX|O.w{9=ι=Sٯ0*ccl ڱ`v4k-T M7v_ݤsSƔlɴ6ݔ#^T+fn׍8G$TV6ʑFZM^DB6W 2=,NXVє`@=і݀K>t &t ?vqL6eI9*i.vC2Thei `"SI._Xx[ 5u?ՠE{NXo#~@IXE~ t*(zrn$Js bx|r 92YAA/o׉V$EP6E#nB>#U+NՏ*3h0/o36\q^K%z/N>VuZ'(r9e#ДP Xu<S񀖵MyG_T|1mJU[-aSvI;aÜ +⽱–!~~hROݒ9iP`|suO9pG'yhjW_[y+~QMc;ng$9Y+v doE 򄠼% HA鉅4©~̽I}z-I?CYݱz>yAfb-/[\w;D],u+WOqy}}ȫ|J5gm![^@:+ɱ''/e''mǤӚIۋ&7T?>,ޕCk/W$kc i)~4$}H-iWۅV)00D|qJɲIk<3dM-; &]iK0ߒ',ZaOi%guh[K9q1&/m2tN⠯Ck[Ihm4wFvIhS4@josۑ{ѷUՑK3hJ..\dǹGP!<2cSuE-Г23ƨP3WϛB0]Ch&43xjiOL<%-{}MCw?G]l=GWڧ{`~#omw]}ʟv_gvo~2ҷI۶/M|@˽-c\vmݷߞ\|[K0.b?X#g۟iΕGΥ=)KhN}κ=gO>٧h>g^ω-ޞc=F`ܥ]kܱ÷T~Ooc\Ҿcl𶴧dglӞ~_Қx(پTxԎ_hiԔ{R1wdճ=\ndv7ls)(2KϦEJc_,lA&@  o6GzQAt9KnGr}`˝&M%c Цyxd|ɷzN1ChsT1jU {& 5jE(kBlW ]CDմ/< Cc4LS|ofbF?`:|hF$˜JqyTɸT'X|glVO`tN=W;.Y]ň cWF@jYVo{NճV][ؓR7ksX TQsRA8PKX *vSl&/Mk f[!&z.(6o발 eCdYCσ68EgZӡ, fm`el7ձKaǏk:Ψ\ 4Wή"/|VNM ZWOq] yy.LDd2.GY:FE{߰Xty5x6I ޯpBhBдa[=r#J@}ޏS 'fah?O| q>g/1OTxR. m",t? ]C-mVKpt9/<{i7n}!*0ԯBM}!UIPZUVVg[[IQҧ!Rl)2IZ`K,mzzߥ+2\#qѠKt-χ VC gDT}b:mW~uAYH%60h4[xm@;*Rou.S{(l}9Ar60A p&Ɂ#svR֯tw*&K9ܾSkKK`Y~9p|FV)7k,,kYe矮: { ֬}c lKQuSMyR۶䍾я~Ͻy*3l$0>Y`,֮ O /n}"^OWДT]c"ϱͩJ]ah|T@l,ոJ/[INduF,|&&=/m}?~}f}Vn~h?ꁫzꁫ>}?c?1p:Eݳ~9/MR}j?ڹۇo/>o %4[sK.;'o'Ͼos2NsK|;cO.wP@L,ͯ:}}Xyʜ&[cȕ,Ͽe>Kz?rп6;b`&WZ+AZ.gA/Lέ["מY+Sڤ>q-EUD?Qch 89r rCmxJpxT~ :mf Xի[I+|a3^xʍ&tNf\w^ϤddOR13rgA+,Q{Js1U*$k㡱u@ ?xRm |aʺ/)3ŠIcߙ?_yOm}JqO.JEOrc'eUlSYQ78o1h_:mIz"4P?O}^`Ź`Ō%}x/oɫS+mΏ髥V{,g$aˉA؄IaHղ^==;jÓ{}*&TsVwdA/ܖCfG6xbk-+QODzs0>/):+Zr2 4o~ٛ7oSn@ۜZ-_ .bk'ML}S'4:eIqC$J6͵R8t5T*þ+~/sMFςᷣt{)D fCm\B*z64[AejYz"wAX6ھ93jEk}58/(wdo2[ro<'3e/ymC񧤱*v9 ~)wL"y-f7u>}KY}`H( ._[/QϞ 4oMR`9&YCLb|Gm㕵~3 (~ (U54AbKRSVlOXwBʮ'y#yM}|a/kz=`8))>=E cUhdT;,^aksi\4,.Mx3ASW\=pW\=@A>>Sn刻]]K|K)m5y<]q=ޞov{-͟{}jvn]ſź$?6p{9U7 C{}!XО?׾9ݩz\r~^c۶O[=S4{S4_nF9{,]❢9U'][P%^/#rsoqߣ[.O1@y |gh[*xMPeFfveshAC׆W~߇D! b8rM[6)YIj 'B.zc6\h:[}QVL6g JvWӻpM`&Q`6Pq7P??'}ţJYOg%˦ xՌ~UJ 1D stC_7 a`svR"W^n֞djA6tn!R]I#m\VL '  lp 8uυ'G9"Z/?(ף{x9:rWݟ}Xw|rGPR1bfݧ`eޢ }*]^ *Vԥ_ ԓϢA 1Okx52>')r(Kx]0lȍ轘A]34=M?+#~_RaBQA>I2Aua"k[o7?^5?neN Jd^ ]|.OBntZ گ^u$t@EHGkZ>b׫Yr-X~rq[xVrUڞTX\<ɺ҄/~s.h)VxK(!4oFm*kǔdemjXVQldv:`ơZ:VrZ5!0 OiVd _zY֟wlР11:ނEmmzm5N>QE0ͯr!vؘH̱"36?-(,-͎JZaOdEt-qaۇ mh=LJPOJxJҐ22#i2W磹W\=pW\=]oG*@1O-X[Y>hm\OaT܇}=?oyo1?]rDV]޶} ]F?z|훺msY|@tIoyflmaOxnD64`]B{\dSt9 W@IDATsy;}Go۞{Ss2ϭ})6~S9U/meO&i7kwۿX_?Nٸfelmp<[W藵EIBgvq)-&tI&C q0#/$3npB#  v+6",LHÜhe|7Ҵ;vz@y`ŮEtnduǯu}m[ac'm2t'<5$pݨ\}ԓt|ϫl3#s#0uLsߐؿ=p@l^&;KllR(DOe7֖&KOjRG[q,R8PI'/\ij{p2ʅ.eF@=E~/P ! RIŻȕuxi~`r>/.zC"=O1)8l3 D/ .']; *QwF15%:J:uM}y+H{M7/ +~Fتb|i`_{#@B kJ/ͨ|e+mX{p@V u/9xy#^y~:2_mgT)[؎ؗK`&ۖͅi_Y Qpc]KX4X+ &|bYvH.Ǟ>T_j }J-$&Sk8GIrtBfSݩNPu CH)9{< u>l cVڮeHuh~>%pa&l*䀁R\p}QGǾ~Uѯ_x:KYWAeuU渌/m0'E2pTMz0T^lq)6)d_&(I;mm!cj\g%*)ZtV[% rgoCǼ D2]\Gc '>A9虿 ׾̽7z雮п'3Y 񢮾LAHd;t~iBiBvb֝v,HvdIi^6b%:cǏq9q~+ǵ C0NXMAº*H~y%{g#lW\=pW\=@=yyJ/l>/j's{ZS}u͞~9w~z<֏{1}9^?Ox=|wKZ%qoSs:s{s=޾|ϵwN9?Ewn/8~gS>qpm|aMݹ~W.9{T>?{1rsO/uύwN^޾bO' ݼq#eml7"iAn-rߍl?Upde'ݐ~OJ(rn,l4VNТ[d |D'>]"BEysX&2I|Pe\={`?S`$6sL:67e$Ͼ$2ݨs#=k„g?7v@Cn1{7}mfԍn.eb3@kN|>h . S6ڍs/zT}E! M/o8ŒKZp)S7\),qPxnghtVE/O}fJ/ex=8ˍ\S9tC v(}z! یwi# F̴FA֦߱6ia8fզEjP^0ÁkOi1}e)GN־#sm6=UD'{%`0W~vHÆN?f= 4`ֶ\_ʬXfz2d[D9Nl*,u2OOԗZz cZYݐZ穗GqUݺ6D>lE8l3oJ?f|r+ۮp p'3 71r_o ,}ymNj$9gcuik~7]bmҿ/=kqCݗ>G ǐq.rVeQ+~8qQyа&Rj"G>0\BL(NrL',X#[ 1\K5KsN7NP'=ϟC"r + ȜH&,})I` Z /,:^E6{-ڧN7!*+>^ ~:zAǦ)G%k(^Nbc~= n[H?u,+'&ꅬyoK_rj˗oyφ7^ sP/G+gXkhg&-Ggl5 |tt1RZvhdp,PӺ3\lS^t%og;b;!&GR ֗-ZgS풔/p\>#>51&ϾY3 m׺J:mw6%DhWW;Ĕ5]︫"jUa*oebi6u͏B*>B]=c& ~a]bkZOսmٵ':G6#\,J K3Go=1sE27+xtFWu?=^s:OՇZsA*7mBF֓^[?^c>eu=)#Zvm= >U$~뉖qꁫzꁫ.@.:C׭<ͳa>5ݰ}c٭>?K=1Wl7sݮ)9_-S}1m\m:o6}Oۗ?>FSu0oʧm)su0εcמ筼}CPg׾oumY?>)xԯC7=]{{>7]r~/o_~~_}E\! yNvgaK>؀q7IZ7ֹMzh D֍ eclW8NeJR6M)7}ܤLϹ#9upnZa6uo+D~dT=hEVpbЀ=ݨNil6o Mk0|)by8X 7*3ٿ8ePT6!䱚^.?#H GJZXrJ :O`e7Ecb'Ryh_6*^SŰ?ϊA`eYr"+N6VǜNT_q엞g0&&:ѧCKiGzO:'ؠᑭnFLDd{?GENi̎~E'WŠ&Q*lˆstֶ6wBGYN:9\hZ%qՠrEiҿԲQbqun4cQtp>ʦm5<]/#=Ds>shixN5z1:Om7k]edhm p**Mڠ.BâgVAcGXPv+{ڐ[-~ J:7u%N6b"Ax#9 ^uڷh,)@&>Œ6Mٺ#Zo!xWY*_\ _=xb2k0a{{5NisRgPw謐k M 2ԥA^}@#*c2j(Rj@rU-j.IDK z?-p;x/i Nzȁ FCg vg `ǤK@(S9.-yX .$U3:}"u>@{|5\7cy ]U\@n +T"Xy(|gi>'bA*ܠUCO3q[44b+EtٶcڰEYpt8;G;6,dkDr.DbOQh 4;IϨA~͉~U e%`\Efuy[ec_H3:n^~dhzd-u_fnXVaj}Mй<̩Lȏ ߌ#e;]Vi!RPMяzZ\)^)]zI%̷ze3h!$y襡(Nf+/s/NgȸV~yD]K>UbGSsV4TDMTО~,hYl=20I?Ed|ohLG"uyW\=p{h9~_}FߧScݞsG2͏muũW|\_הZO?:m~s|]tYs+}N۷6۶|[SO;9yOanu<>CwN׭7)KȸTxεoy.Kqr7\y޾kئ+ijnH|Amy_., cA1͖^}A#xeş\ZjD]6aC}11-@+O歡uK%΍:sQݠ8Nj('e哶zmsWl z8 `g7f0Dc 2aԿ&?MUl7GlZlOuԫ lT%S=^ -hEBF%e<ȰaQy9% x+! /=,Z+`le(8TyC 'Zze~:?nKq.()w~Z~LIU>6XA:nrt)]}[#[= )#[ ~ fl+AL۲ǰv%_-w@.!B"rjG/ e%9RcwDO9zleuB'|_ΓbQth$~G!YG!+w=y:2PV`1'E~ݤɧM6$h>=ٲ90Չ䧺j&օֲHNvp!ҧ+_IMi͵4r@a>Q<2dX!Eo5+Dcw,GVt+kdO32NE`JyHe[^%cٗ~9$0`U޻u(i:R:=A1X 3IZ|j  Kg=7렾ayWߋSd 'O`;|*}/u2rGL뻌L2hyxmt^ hfrsUǮ?A oϞl}tL y憌v0^Ih>%.ZheꡤErS-.BPg6o%C HhlSՉQlUR$qmPHɱ簵v-t?Fjm 6iˏ9 f zvC]սzW<_l[m+X&B`L^=}C|ݪL7pQvU~֏iXVYŢM.xL"*u8 SORKe|,ՇY,z/rp> 0_vh@ASf]%bgϠ(&y3 ׶r=TV,$J1Fs๷<!eW+_3TʒXe[r%GH@ r©~ZN/P׶PT7T9j] D*ON6 %.絧}Ҷ>t?G{oJ9}K.mϗ[x?O{c޺=]tS_=}<8?KZ zN?G[)ڻ4V㡼{nxH.}!2˧4[mu[m9'o.ﶬN{ڷSu~<>c)Su÷ξCOa?Wϕ6ݷ8>$R<2_;\@% 0[`<ވ8mqzLܤ \85녛er:=IȚ: h4qs01'`s/ ty϶{UN",o97`-doanBt|nyCժ,l{.n}վ%b8DՌ{r☗>±}{ȉ=ncuν*Gs>h4:ʖiL:#_`ӑFݐ]g(ZG <(Nn-K},q춇#1~Ӈ}s:v"\1ۋIX2fa $ zctD.b>1Y-A Aױ -u[=ȏ?Cb ֬[8! MXB~- 8Z zK*Blx|#-ydM0=>Rs^7/kюY&G,s5!PV1m3PhY|xP7#=ܵIcʸX6Hl;t4No }yLp3jaē DU(~/`CC}Rc"帆0V|G]gwƻ$fx{v@'>?->@ei%ԁ | l>>CG։Qd.X y>gt;ymj.e@ xmI}tKӉ*sMQ$ˋodP4׶0l~Icv)/(yLץ3f>s=G&Y6P4~\#ihH<>`$DOZXC֤(x<}> oFotO [ϫñVzɔ>[?z_%yyOB9uP5]=pW\=p,X?gcuzV ]:eh=y>70ݠ5ﶓ?)K7lEڦ蕟v73]+dt&~uS/ٴ'>:p u?-5F馟z]~uSajW;~+`Uy&d_$&0A^d*QI?F?SfE@VLInoJ8Y$XIWZpI_Y'|#O&CGPKZcKY?~qGe}kڤONk+v&89zȩZM0)EVvX ҁIC_{ZOőz\ɧHߏmGyj[+ڑiARVNUR*Tvp%3eR3|#}PgN5r|-nw'.]hF*y{Ug,HX yc ~cuJ4*%(%p $e5C Yfabд0d$8Z9z*u8vs5aM`'@N&gRfq#1u|wݱ7@"2 uH[9rQa1 ֥ޢй-?,|93TLטh"XF)pRȿ|Y737PnYVFYDl{mr3dɺ 7*G iXG#6PTc"!Fa~6[л6U[*#&"x<;_C*`0sP@;B#b/4SË-c3v蛞Zө_e 미j:MD!t*\tQS1<}lV76졃L$>gigAn$Iogiiv 3ѷb lά`Txd? ʏ@$gmZ&?,DϸˮPC#h\cE'u3>IoK}TC8v?h˺7.k'IP}yI|MzؗYh뢳U/ߪ[ǹ1Xa|zȏu;F'?d[Z 5Q\ ohWT65^҈B^ty}C?c->Z_"ԯ/-VitRODsR0x2.Is;}oU褗\uDޓ8]g|\ʪǸ$ǁyݕD_9I6emRUVzOFw+}fz8O Z}5CSʫu'ZVmJSvǦvKcʀ`x}w24y9{oaO#\9zꁫzIO=Gc2俋R\1IMG}34t)k=p·-S}]){ݶ?&l5ا6~#GL2F%-w\{|~9y;}}!I=_>ſۻm;{nw\)}*cK où-w1oK_s?~s{m.}0nk6{}yC9{=޾;Wm1!m0͏rllmvR3ZƤ3nQr|iM%y^:l}"t܈Nܰ ngƵ HGH0;797O'OF'ȏvT):# .vSdnf`Y?PSggBN.[wb>іW}#BBŜ?p JC-lc$D,Ê{"+"jݠXك5WnPQ}hw㲺PL0[P^n@Hʜhe6`Ct |E@g/ |goG_x! #"C^ ̆2BB2M}N m9MhJn~xa# d2M3B>m {-E#XA4@G}]ms+(c9eFI?Įρ*e$0ʔ1ES&ʶ6$^y}"#ᇀ~n< B:OAA}'ߑ\!I4BQu0DmߨXf'6d3b Y x)Vjza>zs\2J/]:"zIvq@)k̝Ԡ=r{ҭ &lʰc S#VfԇͬGokCE%21XR'uTL;4R/^goQ _qu~ǧtkgobzW^޹ZEUUV·5%Wg= Ց 8 -"%֧G5+2i&ތA^}{ '4IVD`1La@H8w^`qG'"_-{8AW AU˽G?emnA^}ES٫A |5.ߨȖ`Cr=nEH6>!縨R7̥IBFYGʺ\堷)r8g}H[$Եae@B Yil.Ɂ.k%Y V(cZG9ydL`74i赱o3(/*;q7|*)± Kd \|9:Y 70?~TK+X Rr=Q(5Q> t o"i/kgjBޕ=YL)[j]u[}b3z[XZ~Dc_NZ7y-pcf~ez,ӾMmn~kߑ?{Z>'+oo/.Cw>Ü]K|Obmq'.u}l?g9}^S{iN՝םww~m{cϿoOyn/O\to~@}=Z;}ƴX1 g H7h|HM*6] f&C mfClGqX70&x u6 Q>Cl=77Z4 m%%9>=g<Ѱ&(&xlԋ4 ٍld19A]\X 1SsJ ^Mu 2[$pb2S.M|GH>) {ge.*{q|4LL_z?W. 狗2>ÍIPDpc7)k&X&@|SM N|Oy4 4K~b?%k8^qdUM@Sj1-mUBPΣB.ڰ'ދT7 Ī NV~ϡ};lHcK5őUZ98*cJ :)c`P|Vo68ǶSDg*Z j|Ds:wja~wFSNb⳶FC4I )]9iģ[\MY'>MqB ޶3\7"X[/i0nO4jl]Y;|jMNm+hIJQ3 /*qP_|| T&C{Ɲd6'0k9(@&bV.a1hP43(̛ Egk),]kW(amЄ' ?G :`PSRK{ [{|O>6.{ɻo ۯkZg]~omx9#0BYO3*J؜9y|^[CƑ,] ;W2,\**~U͸u2/Y c- )Cgd!@4n~kض6B`DŽM 2u<(IBcy>Tlǔq: ξ.cd#5D>*%=!qCNbʇv%HA4׷~1":VIRYV}?xha0={}j=[I k!HrR_T>V['r3hU~2Q"J`pMP^$@#GFl+ǦCCbO(饎qMPRE2Vؠֹ'HAM ڵ BQpj`9u5r_q`nҲ?Mc^4UvTtCiu TsÒRRoT޶+Ѷ ba|8΅74λ^+GpA˧#HEc%exOME/ƭs_أ=~1:y*LaO0kȕj{x&:ԇt \y,0CZd_>>׼ƒȋ? |g4\|aM>c2l.;5ZN޷o nnȹ}cl꫟>O{c{/ArϚ!ܓ_6?=uz=(o/}< 6\o}A3COOo~|tW\=p~Lv }&~ʟҿۿ]ϝ|N㏜^*}SWYMm=K9[Naȸfh+Wm:?[mV]_Jϭ/%)rNTT=}tcWb?? O))ďO'o u ŧHHSku߾ݷ7=C{ʿs=^}_{wUξ{)y,^Δ^Ws=P/g3>~O];o϶=߷-oyc_hڷO T__|?//?_%eoo*[ӽ$?I?QH tKOS;Vu?Kl P9HZ_ndS7= U9H^ .ZcPM,.kM,qFi6M/a{Y&݈ʦӒF 2f `x/m1v@=E:eޚ'yeR*IiS&yL$7("rr*Wğ'@LP+~ PgNYꫧGGXޔK!w >v6sBkw LN,.%`ye-pz>_zE{rMlp:7cZ&*^:F>Xzuc([H&m](M4?p`mtWjg:N]z:Z3rKֱM;x @8*dorQ}R ٜVoP;M Y껳zHqWZvCm_kc|, 2E"):ʵk[>6oZANeeɈnYj%uw-&qZ6bY6fT?e [Z!(ƐZ]>ؚ&,P3Q6ט,^G_L0+Eo``gyc{$mKx Zp޿-+"rۛ+TѥSrkFDuDbͯxhxK0#>xT&r9g@0O'&!_q N$eLc"kGJhd:z1>i XgȮ]sk~%$׉ Ou^usơGvJr3?AjKbE\VyAJʒiU N,?طS>U$fwRg6UvbJ)_$6𠪯Ƨ [0[^!GkZY/dH볆r/e>TUL-{Ҥ Y{͗鞞Z>p`#[1xs QlA[\!("B_@\bc&H$)BQ9x#oۜ6Zkg4Z3d]zTz]Otnw/JKnp_ηvX3&2p fU@[aQ%'n"}`0Tā8x-9sgwV,$J)㼪452%o^Շw$CC/8M|#LjlLiu12',L>'bhSl;hU[@IDAT/!A1=Lyj">J)u%랧 Wa\+mJT29|M *b=SKAy1Ըӕ^K){WߞXuV<;Ҭd)lH ؟.ԓEvyhI_;O@(WH$]9<#DFDY(ogP}SY dsأ27` Y[`c!ɟz;^]~~)=9S,p9bM~oW޽?8DC}0L}rHk'|aB, {Wȅi/y`?@˧>tyWW,pe+ ,pzI ӓkZg=< go6#'UggͰʣ]βӶIƳ.˿?)xC4io<7/*e{x1Ι~'~"j:V8Vm礴 [?rZa&Mۼ7Fxۼy2Mg.7gf߄#fwDJ]37w~Gt_۷=f3S?SX>;?N/6^.l%ѼZyo5l[m}6z H-Z+Lm,DA2 nvj+Aǫ; k=JЦ4E!6ÚFUPV#2hY^;%hb+D }iHk!T K_|^"Cv&+, 7XEWl;R 4!N@_+\M\+3Gi'1kRm 0bXUT~bhk7Mu^%f]0:2Ayw2QԖaIlxRaPi~-2ɔ`fB >Vy|Ţi]$p7 kkqGj< IƟuԇXAuH6(5ׂ.~ŷjO[g@R+:'W辈. ){BKSOW55^ ߂ӶrWG)[W I.pr+~hG1|nb[i<]5# K% SsF^r|N V=|< 5sc9#_zkh4ʝ5X[FV: V I 3׊[ԩ}bQ.tճ"?Jvg)VGODTXo*۲&8ҵ]!@fl͓on{eN+&'VrZ]g?;VN4yb׵g#^NqXʤNySg KR|Y\mLeI<=5AO(A@:"N 3w#QdQeu|8OL%`=K-|ʑ%0ѿwbN w5 [ڤk.v2,돾IG-;3 X n]6Q46sWQ?oOe;‡v/+WZשTey PR>(C*[?':t_-@Vģ(k*u>X@$L16*4(#6Tw7QrOǜTGWҶ %N]{x+5|x'Khp EsdKVOf ?|ɥw~Iy?g%h pETdߘ/O4z7izC_r{>_t8rq@`s/[=' crBAg]Kȶ\KoC枠}=͛PyVEClsn~6)ޅ `k",ёMzWN?P{ҕ,pe+ \Y,П.hyY:WxWx,wXNަqutβOi"΂<ӤyQ&|z=)tӐgNc:0Ea};w4XqZx 7SR??#c햻tW7uWutdaFڒr؟O#5?/Ϧg˝o~^>6o67޶Igl㷭}~V>t9D!4?yLr΄?b^DB 7-k#UfC hJvF:--=nq|qW d6Et.B5x4(&_roC\lpbG D[ hX.PD.&_@+=>2{:T6}XSkڑ,Z<)GX6*VWhGY3!7<JY>ɦ퀣-\^@Kf6l+Xѯiq1RB#AqsC*ŁVԉVhh˶]N, ܡ|Ľ B71l#b$(AH.+9svRy+@KO<\= ВXOK{=Z/L.?_9f2@C3΁&@rNVG/ K3h/˺ Җ"q)fxGmd4dDsҚÕG}!XC?&ʓTǝ7"&jToSanp 𥫍1Q< =[6fƮ'mD_]7>P0*q"%K v&" \K OL9DgK˾0|CGzNw;kTqSY}.;+,rI eERI W|т}8ZLV nOOӯVR3-$mpʒ@\db}I)EnDZt#H- 992o drB)3DCZMg.ǓGۑ[ @$ 穰}nDa%ESEz/mzN=fK`!e]B䝛H;B`yttqeƒOZ.;Ƽ0=|Spyiy8W_: D猬aFc{*do9i<ȮaI+z! _e-lg5 >02W9h4 M*=7׀ Y`m_"]m%]D_WǓɗ#\Nƺk (~5%!mc*|ulp"s/0@3^7`K=]:Qwy9AA{/87S+y1iX_iӇȧ : v$=dTw 4GC5W7-Oz%YyMқ|..@?S18/źTҕ,pe+ \Y@=E<NA̦@3s2Y`|z['ڌ ~WKWuz_sOYFg<ɛӦ{*[yXa΂5N;iَ ?l0lWi 3KKQl*ۿ=}'٧_1e[՗D˖gvcX(xmצ1[|>.,\Tħu]7әˍw|oguu3u姅wY:-6}4f83sZ7kLsp,]۔g#Y߳`>~Ӡuo}[6~to>:́#]ƺ~ķ~r6 ?W:my>Tȣ/O٠koy[V??՛;6pr6 mX'}YP$ʦ9(KV$+J{-J[' J7Z Ѓ\Sba(ʎr쥗2yW`Q0S1@EfOL+ #駾SR-;ƶUQe;QH)񊥋뙥KtYZ!AUδ'շ^4B'4mXt*\y|О*;~),xY}f? 0P( Z0P_u<`t#OCRL8yO"`+3 plڌ, + Xk<6Ҁ72iʕ1/苙Ϙ. ȸe`79͒{=4Ǫi~E)>X=8|*|#cO /͏ի9N'I/oW63i|#n:𒖖kdYMN:tZ.y<;YD '% ,[Ex+-ug!@ȟȦGQ!;SĮQߣ9'V iG x8$5:N1%_gKޒ4~?2-zB}R8g+^RxD/]DhNscuЮ1q5&'qX޺ͺim p/Tz#.HUq>s*6KUx<@Cj;@gdsi[̍vg9' N,3~\!syty3`SR 3'Zjm{=Oxs:ꈬm wu`:aƇpjȚ Ϝԛ*;%ҾE2D֍< e DK>ϴlv#-VAvr? 貦?a Lt} fE:՟NEYO^E;kwdJmY_G@SI}e=Cȣ-KV2Y>Sp\[Lӈ^s_cR:w`~MA_pbn: \-Au[R`C={}i,gdTE˶緜hy`Kg i0Ac{"x6:y3m txǞ-i_NsH`dif.eC- Sѯ0,pe+ \YWX,gˬghz&y΢ g?3,$ߣOny&7c/yom]HG)i_D`:;i[nud,ye]Zw*S1j/J6]{Ìm oEA;A)(6^6|&SܑyĔ}%APPU-9ISI<:^x$^q^s["_ݘaj Fd4\FKrQBntj!,*x-tjT/b~J mG?ANqcUQ]Xakdd<[}*DM{e4#sqq۵֨[#h{W#B7 4N)9s\|ه,8שs^4BsKuEh; % / 0Priͽ /zj< H;p<m֫Lyu.癇?"P=})G빔,]3CNj B32r(SDqʧCO*o1|mer_}Fk"o[ 55~ Ls##GBԖ=ѯƈ5yjHF"!>?Rl uV[|(puqkM%Wǫ?Em_@3-smJga:(m>)L|5Ql9^;z*4 x?x2Җڛ[D.[,jhAꋂ96} KSQttvM dEC^{GpAj ~5~scOu\]"Ip$ ^\>P> T#N<;ʚ.)Gr.5 ߄GIlXr ه5J$'ZLg%A}{K?#3}'m:<&ڥs~3?wy;1»?)eװF4&@L>s='? oHVoW__Ї> }Yhg%̝;VmHS~}zvoǺ.{uڻo.7L?+ui΅(sJ}C?lc, Ƞ=]`0'A#|$r_HlEچJ(IT/2$|j67Q:]6Y= eCO9Jm+~4=e$6g6\^ۍKg0 `g;6RM^Kn :|(0  [rqlY\e'H(}&jzeXL!R֎ =d>K 02A Ƥ$_1evat!_R('7-;s+,sC18&@cu7! rj6~9` Mp|rY̦i!h&mt=AU΍IB'b @t%)x *酎X& ٜQ-i\t.<+?{(k[s$@㩜 /RBVN+ 3^&@) ˇY X~_ӗXf3plEA LUNuLXڡ4Ra@*)ccvƒe]`2!6*/#cJT@DZ+AXHEI׾ZS8>N3:f'Xl@\x`pC?HA,ˎ5BO9>B w`^>p,9bd7S:13kpqB* h:qcJ9kʝ+:ɧEV $!_ڃ&h+6R!:8&Tz7lg$g2d?=;KX$x+Gj 4 e?.B;Et=.YyjK\\AŽbNdWڵ+lz3uל :1̆=?%?Nؒqt#Js< r.s+sXpU N:>03Pj9'iZi._b|Ž oS8V1ҿtF⌗ X)G#Pz/c,J_:)U`#!j]&HQ`z@?s|X{`еESv݁pj+<Ŝ^A# @Ȝ6*'8>[[w y|sX(yMj}O<g-6kx[sA~r;áV=T̥x}`g_?Jl Y߽O\~>I- >A| ]q5l}>ARi.NKSB,pe+ |yZ_*5<7]'6pƺ<;9Χ06GIm}Q{(Ey5϶]g$(:mom_w?ҸhτuoSy,{.<{ұۚ0-[0]K@}.Z_-?ӪOtg`'IozӛNm,l~k|umE<⍴mkZ 7⯃o8X7m~ם d(˃Dm`@9ȱ`K1j(7uhaƍ*61h@87z(ʎ<%8+;FnK P.S7lN0ݙ 899/^X7h}"HMi73h,#XN|C9ҵ"]s3T> GUR xEʺj؂| 76>tqEFJԥH.++ &-78Qv%4u)u @rk&iGt`z封zT\Kqe4r1^nDw(_gݾVlV!rOy П!νv˩:tـTO9qCp]&l+j׌Xfc1{ױ{N!:!gd`O‚ )bԐ _> Qߜ$}Q ~z$FOl$&66o06s xvE/-yZ}QRYiE!n$ωVǀQrJuF/vG=MwSB_ۜN9^N#wK{5iB]Vw9] lї-k ,G(z_-V]@aă A}u7vG:` _]ħptpP6#A 4f9s-cp7&!fSY˜Bmw'\w=;(amldM6K$e[8V@98c0B_ KiuҠd{䅏~B- Xu]vNѦa]oVX}P {(qLǔ{D*0}!?5NJgjX>_}󲣲A^6q *.J_kGO򜄪,:KC}w Ns[gmQ+[9lT=Gd@δts36 `ё8y^M5y%a'?WC'<۲D#X75~pz"Oͽ-r.#汌  tF k<~-τ;N#a 38ݍOGli $mg/|9yFC#z/]qPiwd2^kGV[G<-?.cΝ[?eN #^}˗H?D<1NjƎ"ȟ+%JW,peWgW|]kG]#uc{og&7q}^M֖\9t B= YאMWI5ثTѶlNgl_ Vu7N]gy^^77&~~SӰ~]4ʗYvi;N<㵉E`mKzC{=;Ao 4$Y)$گZ<5W{\U+a|fhY6wT@Nes6%aoX[WmgMevv׫߈3o׸}~lngݘֵux3<>(yfwoM[gnۜ]wV.8ǓsGyn|.n>#]1u[37t4jkM;3]~Ɵ]~c}g}ƗƘfk?s?Wqo\ux&h>c~ ?ӛ ?O3Xt߸Œp/[wØ!6j%[|rtq#f71\惓 8鸱l@gu !l0f\6Ց#6ugf[Z5!Mn';O$H@S&eU 7Ѳ l0Į@lXVx&0ͪOj|} `v@bMȍKss0`Dr5.>.M:?.:>9.OMz$~CY֍#/e^&mg^Y}Mn*].h䉀N%%h@J {]䢧?l"-i!|=/-yekgf8TA5ggx7=`dL`*$xKӈEw_&#GtoX6W+sipOz>dM"}q{KГ^ʑM>FJ10P?*ŕFW%=LUp n^$dFo -i7(sRuIU|M7锇RO>)K8i<%˜z?91<(? B!9 %c/M$cdbl:^ b:d̰Den:Ӵ<8Gs!09'kOit"`Ѩi'^'J/u\:3u=3Nw+|U{erwWpWJcoGQK[х9pނ~<KP4G~q cm6H_DM@(95OYf^>Nڬ-iW,:*gCI [C]=dJݚN;>Y-4|Ib0T,l*e_OQ-toȯK 3 %NF%u`dVޙ˄z4S>)4 OcDFTX<)_nmy>$HW8`;UPe^b9!J|Vίm"*'Xal70RFX \6TV_?ۻ*H= 5XVUO˚̷">z{ӏg='8ZlTgĕ_K-sʴ}u}rf?nww=殝y.&ng>:O"8/_RZǎPpC[\zu9vGYqMzɳ+o>;Wq*E:2P"mdqNPl xЪ%?Y'R_{ao[={"=& {~>eyy@nf̻#|[O2 ڱ-%>g\>c'4žwK2]\Y |dx%l~{fّ\oyl,mx#m/Wק<_w[[s@|6"e 1is_5//(|*}ڲ8۶ڳ>nM<#n7| l!__XϢ=2t{odۅsvqYnutl:q|^Ü_ؑY8gςigHᚶK56oOɵ_++%˿/=/PۿKex#~M`ދ]?g?U_җG^-meRsnu40fLՆsnjX:0)5ؾmy{l@IDATśqֵ7ﲰ5:z\3\Gw6e麋䳼V9/"Cv>T0{qgnv}@16NJcy7ͫg}OًV[}cXkz>ǥuq*{'Iqj&듟d?'>Oa٥\c{_qץ~VQ>a3m4stNp۷7ܦmeaƟۻ?Z޹}o{<>콹~gV*5v06W޺~]HNҚu#ؾ~iM3wlzv\h{w3v<{*lb 㦋] Xɡ 2O/׏|-u@gf2dB8gTTXejP\1fs}EEZkpd KcWOTˮA:Rr,đO^ʕ5E:ky%YZGَȜI p+k[EB`Lǹ\'Ϋυ~u2d#9x5X+ -ic؟Z?2 ~OSGz]DsƚtkP&#kR3WL/mKR\`JV{JM&ԥ/3Dgb(cS; -P@Mp_82+b"Yߞ*kWIU0 @?-RCD嵿q,7̜w#}\¸l/҃  2R}2z3w`|3C񳬵O\+ K*EǗSphhYKCL@zJB=M`YF7k9u_fGϠ_PHmL*p U*ծ~B.cО`K}^1{ȧA‘+) |+8VGW׏ 挆R@[*Rח*Pk6婑v;3WpwY_=ou^}ipNJk2Mw$E[Ň;8oD*c%4X3cB3N4!j$PX~1X(AStUR 5+sd['K~s~ʹA~xѿ)Y{#Qttq}ItP]Ʀ_6 ~y#?PN3|:Jk 2<,Zۜ&3BY_!8? /1k}OYy|09`nFs]hYbx9DA5.^gO/r隵Y֠-O^ON•^}xcg#OXjIh]^Y`e}M6<&ϋEǍ o}[Sw3Soj|F%W>/ۻFX7 0Iz\5ݻ+_>&V|pz^ }5/k=Ǽ#<Z.>ea.MgƟ#8#mcymc f[,H<灟afx@[}{^Oށ~հ3MyZ'2e뚇s>˲H8JܺwXux=ޚXv|l򷜎1mou 7ֹ4#b[ՏȏJ|}Sަy8]ޔK;m } guݏ{a=y:6Լf w_*7zݐr!s[G^'l0c# 7aݔNHf5q:9Cu6ӲkȆ`d;M.J\;H!,HGRA  ZAw`E&Zv֔ 1'~_7| a[摛M؁lI\3ȯ0&NLh('m KOE1থ]9?f5@CX}@x;@Vlu/iG_j0FIkZ<}x+-`2ro8O^vQh[?xC0 < n;~ H+Ç }<pHƯ}ƇKW&/~?}[rZ ɉ%p7<dGʰ V[-o ᩖpdmbQA@Wnj< `ڐPjcחauȩ ғ-qll' 6Bp.27A_19B;k}4F}JsMuofЯ/Ga~u:g `[:n3n ׈S\>kZk_[E"&*6MdMJۜ\C)K \^xJs쉃21iӿ `/Qˢp` 3eMvA\^Á*3:gvBvY'H#/s.b}ZZ@qu57Ra &M5Ɍ!cU>d~>_]]aG@yfP 9Ȗg<ڀ2ʝ%h0>~ AeQxx(uD6ɏƢ~$%{i:fs WnƋr}u2WsHfQ:4&6Ywg {Ĝ`Ba[ȅ,57&!!Oi d}og?gxmvyG?9@/-I7kp\VV=Q9P՟Iƍ5E/kcLѯnZzuψ/|=F -2a%mZ|!CRŜe J#6k(z7?ZYq 0B uy8v~pK`Ϫ9Yh>I]`sVWss>ϺGShgt Na[{xsMƦ8Nh0c)1 Ee f}6ĬZ_c5VW]ca|-_걟0 QG|a\c_@qSm %˜ - #Ywk2r>v>>2yzfd6TU0}M\ZpG9`;wnK'7cvyz}x 5|<5z! M;C/㋤w1΃?<~#,^osU+ïE+^b2_fL~5/mn /ɺ@Kiz'/}wEl dh5Phf,jkϼ>+ʯq[/mm^t>:^Z^cͳ7߆{^E+Sí+I|_y~QW:qp?b%o~_{^uOeirmq^-喷@g{ru{Z2_JpE<}&Z|,cq;ayÏ07cjpEgMDlPc4=Ml`E&HۍOm{|VS륅ec{d7|%.?.e!2@d ssr34'X@mr_oW:|,?& ˀ2O;G99Iy"J_ڇk NVHӍy7=J/g8N:0{/ <VPu\pC #w!>?^1%A7AЀEi9 u% M'|P;[ Z_|xӴz"4;IGNW=Tۨkbp <&'GAHKqlADKzrU f%nQQZ! NNVj&#zIC_l`|F@Jl@ybb-ҟhCny"keWwS[4--3#j/W9}__LjBB$$ E, ѳMT[:aQ+:$yxJk1XC4}wH5ծy̧ z'ta9^Y3ߞɔ$)%Y9е> |}>)Etf7 ^2>Kc(>._'HNa ꄙX=T?8=~.]-|&͉0xƜ7 =C9G'ڕ&kI` d}6u^0w nI$]׺b2|qb}Œ[?a󦡇>s_'cɿ%؞{_ꟾZgǪ~LY.j{uk&@ݛc#r _;DGve/h;@A.uYP4^@Cp\l s (+Wi ]vC 6u:s5JF@[Z}}fBu2<'K詖Α~K!UEu_ TgNly/[9c#'sbݻj3sޅ`/#1 ZdP|}qyA˗7Rm/㯥T$/^k~RIi^'ˏ?~{Zci[I8_/^߻lyuyDmfQx;5Lsbum:m#~w5=ۼLωD͍ 7g4ƶmgmܖO;m5#߱( M]*R+яO$wS"~k te6͑uM[7H>6xؙEgYviw7Ƙz~\x? Fv~G>}Yo^04s[yms]\~]涹<ß6X7Kc.twUgOC\΄Z>eChUysTKpA f":4[FI'$_1iPD (6?@Ip>ecύ? (CxRJ'XNtPBSznh1)HKوT "D)<@)Z S JW&X\R:rAmuS!lPcj?i7Ktg+G˵a~\]|bJ;PH;~6i)өˆ|L?Ogpdۦ-وtG$Fl!K>V>[AR g3z7n}C6ȫ NzĮd^MDIJڬ6ӳBC/51٢AAn/#Pش} !v. \vMyepxngM_M)-IR <Eyoh><8.ذo@Xct{{s.OP5m6yhme6oafRÝ|d%K yߠI08Tu ]P|MZA{QH7w&ew7PNԬKhM& S^w9=N&ЎZF ?(@By<?[m=~!B"cvi`25Ntm2[ya\t\Ct;*^L\s>,Stz.c]йCj~*Ŀå&m( 7kBkHEm\ ks:|-{Qd>͵S˧~`dSEl+_;c6R b{lqCCDZsgz/o]-QVFRF`טkw|d> h g[?R P7P]}iQǬӋLBrL8 #l~L=Gh5vб_ k:J~|i8ðo=9x)ܝ׏slTӎ?Uʎ9zL'5KvpͭW<\Rz5s=f =|/;X=V/|>Zr"9+SY4f~g}EJhFTZi4Q6@8cF%/:J;;xO'|aou:uH@cQ>Lghw=>K^畈 1Fx3 m?:|x?}QwczyLގ]mfQ}ϏҾgh9KR0*/? ŸQſMxS-_w)D:|Y>Ut]s5gE>]>¯O>#97>~d_ן+ijz9ZkYײo^O˧/jz_<oIfخ|,ۨxHi禷m/Z*|iU˳ ?LM{賭ϼQٰi0#=iڏc_]nO3nenl{^xlHT/E5~˷|XzaӲ8Vg;Rg|t[M--׍Yi73ßZ>%pR= |{ߛ{/+ iSֱ-r*uz>G>ұ]Z_+o$1sN#OmbQա0\7M žƸ[;p6 ˳]6oaS8]xuƺiL0]xh_i1ۥ~v8m>S/~+ם3_GwΛyO_|/*Omylv{Ïvư||ggWo~_4 ]m7w{iӽc>7 ?+da~]m5Ex?Ҙ;dx>'}ߛ Yx7DhU6|H-nrf?M]^fАˌ9 PsL"X~彗I24[ SMu^5@Ёj"I%oT*𒤥 [btC./ byRmFG#%Gv2HwLyZg_]vRv?c'pf;$}v)[Al-4Qq{7Jp#4N[:yk0#H$4`FF2UT2Ny8{{LF9i%ACZ⳾w{x5 -6Z)Qh.Tn{J.6B[81ө|Dp#S`зYҟJ!`@nljXᗀRL*8VՒR/_1)9n _t{hio7T},aY#mL{ s!@PN ٍ\u`iOf#Q/'wӯSv~+ğk`xݭyU1u|ݱ'p}x'I A0Sz3Yo;fXJ}z[Gao ev?ʣɝUf\HG%O$S2ePbAC).4S>~ JwbT#57 z>9ؓ#9A:zt%se`:fT[ a;ۇ5fU5jԨf1sZapBmWnw^H`}d?S-@6ƣE1.s*i?e\x2ƍY"hx Ynj-ipV(m_;[ ~]<16SAi^-C2NMiV>ـC:3wItB"Vsnʑa69Ƹ#AX@hkA\JQkd<]k[4\w㦽_VWzClCN PDs,ڏ@ym(/y$kB%և52 }۹赍5zPuĬKyBfPYJȣrp6qV=jQ7 }fנL"G/h V%}'m/ތqhWwv~^`~TKZUnFa[;RjȪ^ae>"ٿ OZQ;VȌO/Ѯ;p  Ӌ09_ @q3ckCd^Dw,7>^~Op{#> k ?l) ^M-4;4]RrLweTzRF}[+iKyҳðDPew&q/=|Khep-}2Ƌ9;V7%|"|ryD/Ϭ;|{׵}cIСOlP5}Y"k<^W6/ƺLLɽ{7]YXg_YTm`r_8֚x]3خ]anX8{lAz l smjVwyd{:ƃ^b#Y ^dm!=N^LRph3Ni6.u863R3 ."=MČ8?'8ԋ(}3/{ڤz)>m5 x; w7 U~c޴!Z-PR{Z7Ycşy1dXs,סy*+ұmϕpPY XOڶnyYzni쫷Cױ@/\:7=TFgi~3S33/IUrx8>^~=H/$߲__Ml@<afViח럋2EkZӊG|%kww1Փ޵f]]v4MRr=?˳b*e`z_L7Lœ3CR2%ߓUeJZ-u-;ϻhdv?1_GK_-.g<6G7h{ӞF~cJS2ˍ4}^=g󪞢im__s ښ!S~f}L>=Q%缰M/%PFP|O-{WqC/-cXzϖ-4Ers/dW8Ӎ-yQŷYOT׿ɧ?鉿Wi 빊uyꘗ?_ǂ{0Oű}cZU1T6[{Ksl[%{W*އ}^= -Wys+pl<}z^=G|vf鉯ppp]pK;[ip$.h# &Osa:$fxqῼCO }jF6 -&`5I#;(`WJQ`:dxā'e#*6>ϜCizc3p0l-.#}Kб{p69MF Զd~ 7gقZnyzһ0fN-I!1m֯=a,(|ĝ uskڂ~Sa@GOWB11&J1_KƱEg,YguZۏNȥ|Yh?͆vX!PpmCn|}gprMJf[q:9qg{|VST|9yԕ e r8'38/r}y9#i5Υ g]'\+vzv.+y mTajvh.v4ǫ.uCgCEI1hNj%@XlE =I mYPH$UE_a t|ET{~3 eMQ;ޞ\f=IIx"z^.7`?dK=ah>a}(3{nNߩ)M%ڙm“yG/w6&m|F/3~z1l336x{CE{'TG#7hd1Fj:@qxΩ9Se^v`p6D\RG%u<~Q^7ZK,DŽw^M>֛EԵr_:hWr{@;۬;;i 3. ǛT#X+_98Y#s<'ؒ#exqMLsL_z.r)xهŁpv&VЉaX޾d}#M;x-sVuR/­l*{)pWoG{m4}1C>ű:/D)A$eZ^Lg̓|Wcj8ǞO\R'/\tnR9)Ssem̓^Vj"ty5U_O!zn[wNϪ9okLO۟_/ce8K>zf_y*gz=WX/^g-?y٨W^ JR>w9x@@HWɨ<,WyM*-d?xR Xӿͳrx?ΜߕW9.eyw4#}{;ñNnngiH=U2T^7 ,+oͫ˿n,y[eceu⋗e_O}* co,_*3Wc{±}co -oZ}٫kۼ/"KEkX)WXI~&WcW{l@IDATi|.>V*W_ ~e2fK|>UyVܴz^Ǵ>>x>KV8X\/O&8d{wCy(.{D?=Q0ݩO4pP4p^@i"RN9;pwgjayMGcRxmvMPS=lXS\gy2!<@Jã&`{0@KQ_Sq UB!y$+$֙O8Br%K3XdGnRT'?ȗ 2R刏F98E_ W5>rWI:Le( z 9D#Cd`zrv`L{݀ZhWZҫzL?vyM ,ͧf㖶xbs Z:qSW> Q js,Q@K(\ڐ5dcҴ>8^T? FݤP:ږ@xx9KwK`l18ޜgԙSgloIއliP*rD[ !gAҫ;\bC/RQY\fadf)㛇BG59% JPs$ݹ; `֌hO2oK9 "m6c@^JD vd\+ W~igoӜv!WqZp$8̾2!QNN63{Bh_Q.26Č3TzĀ,w{]ߗJMk$v곙֙_RUWktb51gi\nǼϵmVyƅ1a%XZK@8Po_B$Ez?RK[wm|Y40ƼJLL;ܼ?T|ul2ysmc/\5>Ǟ/<1sV]_W2'G_e,=Β񱆽 O~r.w?]Uv {0E[iʯp]]XX/T#HΫg9z\ʞM}ɟɟ$K`O(ي7}VZϣ>(nNzeWoi_ע;I'Qzݻw/I}~=<2/{.ޗ\7iiUjV4g<ѣg%UW9*a+vU<] _U~_U髝?+>\_fWTXgޞ2^+؃z6j/`uu@?IG +e;?PZ??Ӛqy^+&'{,#鯊4֢mwcCUªx+±l1*#MzESyUv^(z>~s9r-_E[ J7^U{sJ<1z#Cx2A]xexhCRуs |b0 O%g; zBp1p~rrH$;í~k MlkЀSW`V@,Yz)Dm![0)ni N9(frʡT+eIj?.4iWZwP)-fv`YCCr<ʒZ| qM<%Zirz킺<̆J<s7 1mȝ' M!)idpJ+Ys@ ]*)HrgP``9Ѵb "tC*FD?>M=xωpp.R9넁"p0D[ ؂$' DS޼R`% V3z9g7'qe41t86ҍ ζ6f\-dr8l`v[n96Y꓀=! W=M $!5G&ڣE9dnҷmN>xz>Dv|g3qc`ud*}!UcJE}ʢ<^j', Mޒ%?,BX`*yj P@Eoa%+-.x# NByOo6fh[4.2S{ȟ:Z1]ޱS7O^{7^{ ɮ K|>c|(ղ \d> 7#+`1c?w|>J>Q+?_!C@Ltx{ Ko/-Ig(B=aDEDIثEgdEM[SG峪zӫ%d =O[??:2 b~>BV\{| XȘI I ;ne7E|ϳ;>j` '!Hb%$ @jh4!n[ 0.ϴl(CJhFyVÔDe@q i1͒%u4IC!2Rkir5R3NapN~޼ytk,3?n)GL%j1/s0-[\}0g*rDÚp~{bo:Ɣ;G!?tkDjش^/y/byΘ9q|8?e ŦYZaZZ֓5G'ړ/K;{I_e ^|l2GKh6|B z`7c4Γ~GQ_2hyٗo׌;G/OP`.eѣ/UEsOqfqE3ErU.Y];x|+ym`V2o揶2NfV޷LComç)M#'CcyǤ+\9=Y2V0)@E_ 2#2A~!ØW|,[4wF 폾^>Ye*mRc}̣Yy\MӰ7W kgq>(Wf_̳h\i?c?~S R\@>xWZ+4+, WOo'Z=Enڣai\a׊v.ų+^*^}\a]ɬXipweFyxp^uK[T8_>yJ_uȣ:_{J\=[_K_J֥GJm¸t.5OU|lV-\>ѢwaXYi?i+*z,Sg/LO/9*Wzqo׳}Qq?nuǴYg>?_/JycLyrHsY^%S=˰eklcH[_}KKX2ןWdsV݆ڨw= ujeZʏ_t~pW楛?ϟ{E9+tth ЅϷr{Pa(C-p̹.T%C|̓INz P@NqDY j֎erQxsw1ϐg:ɜMDb<4\$R!Sx('oZ# Ѹr¶NW(5zSfgF~j<ڣ'9W@7 'ߖg=<'2(' 1ۥw;̪'T xxHIy wt@NTG XPz-sF N-ם!CsDRcm >!2[z\pm`@->IyΎ?`m Ǜ-n0iۺ &aR0Suڳ,`@`z՝zsG9419fƂ,3XEd`ȯ?S0*:Ϡ:Ǿi2/dO8vNw1* tEIxVE=oePq86-=4"p΃E{SBH]  ߶>y1%. 9`CSi@S{ d0@DB]l`[mQ#0bDWG쐌t0i܂(- |ՕѤqG>s@l)g[CL x>2$|27\H//ƆxCw?y R/xq=k=@9 sBsѭ$R[@6#e.w/[Yf ų@K[i5CuMkoJ=lj`GA?d>=e>"Coc;v 5i6Tgo|nX ƀ+vL҂+3WW#:pN:`GcxfF Qbb]iK-eېcɸ@jihho훱#35N:s$~Vog+;#yF<;ǩ?ZzQ7m[Wov=B?!֤qmt/1np;69{Y\N#ϻN%W84m"u#'GCO>Guy(l9soz}qmMULlW>$.\{JYsӺ6[eC։KG:P}-gTMkdfk@5@\֥}@D?KgWF4+ {Tz JSW.'t~S<.>6s<;Sڍ2 k1gdV)h%Ʒr ۮwy9!T<:,Ѐ:WϏ`f@Fh)`2~vZ/Y$O]1HjњK uNr;(Z>Jg=&i=/er]mv3KPɄ.rs܄ imor~ըEsz빦t7#^ǻ Œx+XXa ){6 e,8(uQ̺ٟ~8 wx5 yW7oG[|kHh?WkĴ?L=.1]s=PPg>!^aCrիag?#%c6MJ1э:2WneF" i6ni6f4iӛcD;aYP_zq:ϖOL;t ]վ>&\y|=2[[v1P^sp">.f[+`]-a]k7qx3W4fAnVy+UO/7}%7^KYyi40_1R}#.fy{twFӖgZy[Uj|-⣭4Oc{%e)~=royKz*uҗ;;B//k_ċI_O5vV>>iG.T}.W^ȟ{s2Ea=MXzv]}畩.˟7+4xi~7=o-h,8tT@.Wa^*Kg=lxT[-ʨwOi{9**Wq٧ϳʍ4Wş(O7K2g3MڧZNQn9%Sه=;=>s?|̘_+WO**髞y#}V^ô>^h+B*[hLU\ooZUWZU*~}E+]l7-{(4.}||[^?-]9>WU>Wůyl7aWPOCoiUU+.}UzuW>{?*Yדۿ˪U{GUzLy,YƺJcEKa_uTә-gWa__'?ſOgy1^e*rE;K3+)ųzϳ59o27@qȣ12T%׽=XӳH@XsrW5s),Nn8S- F>!960AUBrR"9Ф\hИO![ O(FZ)9ÁCJ)s+ %djv<<˝=lLQ+`TrMdj{Wa`%ꮪ.3aPQp[``c4^psD:=Dβ%41ӻ'J|xўכض+hJ*K= XZ*]^`z8졯mMsh'T/>ψ  t*ma\!Ra5=zu,36pXOr jSRjx9n>R_У|ښQwE596#Y0oxgOe4Gz*yR6~m&u'(U/Z7[ 3pXYБz3z7[9%WGgj2(;Hgs_ UiEm!Q+b.d`;3N> p>O3*]1ϱ♹1\ѿiBGfp%xXNPg5b"Qq. ((iex6)`Fk/ Kv5ڹٹ2v<եcJ*roaϘCG Ps(H *0ci{'izW!c<^YCˍ^)BRirC1Q?#"q!د2>x/OtR:_Ħ%=ԳBy)D=aSk/'m [_⅖xg:/K)cǣ6d74ūy"Dk7gu.uAmu4>cb$Hr&lՆMƬkc,w4+MD'k!-[z-Sx/'_b nZ9/>-=炾⩗o$MdWef[ jVo. S&;o_ţy^`j߼:s)yr4os@zf/z?WCP^;D*x/%W.Y>5iESV9J3ϯT^t}zݧ{cyu> x,q\%4~iO}SQoS;Z {Mh+瞟ycaޘ?Gc7͊5v̯ O+>+ JzpL(>@Fy@*U(|X߆w_OK31ݸwxz*kh{ ׳~[KZxO{j_YiU_ьQe*,ϒsVK[\~saO;򪼞hJE罝ϣ^h/^aʯasnXm8޵?*ze׼>*/?W:=z1I2><ţ7ouy\bY[=vro3@8`<[,LzMO9Tҋ.`R=!= qx}G 7KNyj,{~dc9jʙNj,9æhN\aCg~/ 9Vu/g/XߒTOѠ;y59IP˃5/  S5Y=ht{@zX%Tfa1VKv(Si)R?œX'[`]\dvb…+C9dm:Wv%a)/ 0pԆp%P -8z~( K DuHZ@f#;( @=[r8O3mL2n< =SGȵAAn+nOVi`N gLssL?zdN93~^KF^oOѕ齓UBCЃ-S0Ⴖ?`x9Cp:(gSeFC9C=;7,r8.rhg 'Os 8gD~5lE>iNto* *xqDs _ K*9!\ʱl9=x5J:U!JNL^^= Ihz<3j>Ae3j; pWOuߟ&ZZn>|]06$yrks I ,m'X^l(vPmn! _ wgl*tz:O<Kgw9?iw nNcSH(c@""Ю K;[6Sz Ox>E߸ ¤?2Om_M"@Ij~v,J2WfN`?炎RԎhz[4FP .A10\K%4%8byHL%0]3.7tß}=HυشXCAAl^aڶ]%#e?6Z٬eP=5Z%ښ> Qo^0\]v.,M5U6Lm""YoX~ḗBc=RZ¨'MIy6.O͘W4aCћj^V:'܅յ"`عm.UY≑ǜ}'5 jT [@X84`홱'rw-Tdٺ`MVS.~K2sk2o#3 2 h ޢm A=fvO K/ WPik^`69~vjw!GS عL+9 ;kJ^aEリ`ݎM3'[kގi OV[_IZ:q_Ns n7> [b'^h\ʗZM\=OO*?.@SZWSzu 6PJl!@KˠvC C5Z$Ih# /7H)߬Ô ǡsmҫiʓP^5yjo:ұ@_ eCl5R=/˙oc޹u,,[jچrnpL8}i*wm?В>p]z_`҇;۬Bw 2TuaW 9ՅSK&e3`K:ݪO=SƢ/6bnRcv0c=6+g>3ߦ짖j?`?u}.~(gQ=:.]'< ƆTG{݃ tV;NUd%VA~sK;a}΍JE9T=y6+Oäc+yIYƓlydm1vE;rǿߙl"F1CTqƼpH1SMiE_2=_Vxe*ݰi|Y|׼:ꘗ7/]7TO:chgh}s5N?c bkv}K˕>G_~sW]aUU*WDL㝨i븉#ceUrʻ뢫:G{^#o#W?G}Y׉l_kolXK׳y#ed/'fUQ#^?c|׮k;k_^W{j}I/rO|CR<ĤWJzqXg?K# sx]9# :arμZǃTPTr0rC7I=ha2]x$)IGހ4zO39Ƴ)EYH:!zzNo1Ne:[G7E>t4Ýh%)z9P&\$HhOLs7@=;&3^^ҀW04Vxy-) ;E>q!8ちrH)CY\>k甕 .g@[<}P/9;y`z,B6cLdS ۣ83 ~#aV3'g:u9t|YCS"Rzz\]egՇ.8vI PSt<$U] U5Z PBk]3@Ke(L:׎m@`IAUfz;,wh6aԋd)UYD)i=[OAy]x ϧO%N'x{Do`'6Y1^eVWPZ4ִ1M`n 4ZGŰ?z҆\4R ZW딵?rNX/<H@0>9sZ}\<]1"uϐ>xυk_xclAf]6kLNFUڙObԮ 4jykgaǚF{梣Sj2yOY77\>3-g4]gder [ hsԋMmzs ?W˓ClV}ra SAP3gX2Gm]Ois!]K2-/Zf3~VfK<}aCYοxF]/Z5('oAzg-'-qmLY_?{ۛ g ѧ;MKv;w Iѹ^Uɣ ιo:HTb UtNEϩ蓺QW+O$pN!j_ԮViL$ qa’N౭~wGF"612V҇.?Ilͤ 6pq"s^Oч uL#mڽi7v 'I CQ˩}ikyAdQ0xkF^f'M}w dA9e̚^w=ƶk^"d;6J 2wѱ1j-tA0W{z֛"=S϶_Y5nA.C"f׎Щ'c|||2ZlS\S?R)2sLEX4j jb&M;G7 {Hpn>! HV{$1螖z2?'{QEچs;~zL{滛xu !ceol !{0=;|B; l4-m4C3 6+qFx5dxӵ_ ߽zZWv">D-8q^wV0noRy3F."mگ4<{m6O /}vP^fmͣ1]ޖ[2y[֭Nn54PM}_N'3dJU/3/\=+_ o§dJL'y"ϒ@ʬQuKfЇ>B{Wϣꨰ?3/ =Ye fCՑ},We/|U]WrU2>хܵi7*cX=Ϸz.L~~Z2ku@Up3x=mauO*Si7 oRe\OzeOWY=3uZ̋Wzccyʯr/JWG~#Uc/>c▯ū-?zˎ|/K\t}Tzcy]}hzVzec\>}Zok }x{*PyVOi<~V*}a@IDAT|N;WOߧc{[LEw:^t<LyVK^_h,]MOWt^}zGJi.g]Zӗujwюi~S}X g=K[i2}=MCԓC` 2y]DnAҳ:05HR=;l&u-ZB:pG;.%^.9ۤ8|Z;41(S9Knv`ho~ل ԔCJ9=b"x?|=sOv}I)0jO0>Փ遼m0>9p.+~oUGVOI܎Y <ڼu 3ޤF- @' {tCV.pe[iG(ֹaGWfZ09$>>CN`ؓ`E3X O&{VC; ^۶&ǃ6!6 &0Fi|.m@C֠}NVX dA6rqL F/vb^xq p~֟xxoLO^} FVOR> 0 Mn52K dlLP#OCpA,-_vCzH ҃'iª e *n>si:b.LN)] Ѻ1% >E +-eOzs, c.Q@u(0,2EҢk)x|8(׺hKU璬 ]7joS_>-+:@WEf.bO34mEt+R+I*q>s -PئsY|-mBl2Y0Y.@MS䙤!EP3tg2ӇڞrL FIv':ZA،I\ɍ0CEu a\;tbxm5)z^f,iauGf*u¾L_//N>Ͽ]Ok&<~F?m {ދ=T7z*|*\_VݗߢyWC+>ܬYiUv^^?W /˓ϟX]+t5~4;^H#Wxr[9=x T xгXXx=t顚,$4  h49\S:TنxԥFh'kǓoYΟࡨ P^t\R:FO؀axyFVTD|)=OՐ""R x@s6yAݑIyիza,e<Pq[s O+(,cw[vLr،LAvT'n[(C"pf|m= <9@Nhs_);Km^`ໆ.`7(듂g!,)b=s3Ԁ0_ ,8xC)X`{z0:y^0)FcWls8M]w98!dJZr."6Bn!]pI8[ F9pn:PwA&@oʰ!NH _<h ƫW~B}P`%t}'hS;L;(*|ᴟJ6l^lNJ1: w[ Ctk@e<|n@K>{GcQ`st|>yHeulۖ`$Ȳ3]#}ϧD%nػ^DQ% ČBUoO|@b/%i̫pit\C \h8CmNUhn4 j]U>%J\28]P^)u^_y,^3#0EX2DFl;Vp%:9g3_`O'd7ً/kl|9Ë!A;d}AHP4M+i Գ)OWAΣx,hjS-n^mNRP/i[vev4<Жd mFclmL;ZR寁zlu4-,(vxH1 2-Q :<k +a ϜX@ȳ[S̻K@ve'xC짒)=jֻU[@^Յޯj]Z4Ok،Q5/YPsks<;&]QWm `d:|{wM;D}S&@o9C T]8/%1 <>]Ybke2q Ի|kƔ8.X=DZ~V_2!`JSEx շSN }x~sNe9æ3֝0G{=1Kuoh‰`H|yPgoOO/ver|HfAڬ*/pۤ7xe_û{*ǾP@hX1JRO,Ӕqԍ{xungp?zB=a=f:6Ё8sѯŖNcO@;g`]Lhb/+*gQy%N!MwBH[`8^_Tqo},Ͼʬ k0=+<3N&ɭOeP!$F1YܾϞȗ=v-/ ĮX-P$MW_w{jVEs/`xZ~:❬:2<~z^%:-y_Y4ב:4xK+~5Tpw˜{E_t*4iUf^X|ӽ@M?YʯEu"X!W=Wr>.K˯Yt+oFy^.k-WtxK[__u~MޞUUksьe*n|Lזy6oJeƼğ'ѷgOkYWWţjKW|1,?ӧStYuhfiXߓĥcO1>^4V^s'Vډ/<|k_*J~2Ƽǘ:N ?ݻwʯ2Vևlz6d󪾢9+’grݧV]c|VJ2e<+>%'kōN,~;t=v994v9YZ9`9`Z~jhJpExZ@yk9q9ۃ"vpxs<_ =2 cg<|JD\ ϣIm(!C牘ybNeA_/. q8R;M>66@JehqR#6C%CpaX9AoBe /f}u[o EXBe3xP֤Gϊ+Jғl-8χfz,<Kˆ#Z>JsOf L't7|`.֯C?gP8x}¾}3z:u Q]W92〼lkv%zm.Izx=b5<(>8WRn/U1e=T=CZm k^9!{:/[nx"Aei ?4q=w㽩-O&o5/^>.8{qg\b h &SZb{2^MY:/|i纤{%6ɶ'4&. >01-1}!y[fKKx2D9:? ۟{87&މ'@D AI>aNֳ\[իwK&O 06`0\c:P~B?%>%~XgNVENhåӺ 1*uޑ҉ /uwD+a[h.p&s]c!qw^exBZ:q;I-19ߞ+~@4ZBzFPZnplq^+NZ`&g3j~G72rWđ.^ n44`>fޔπ7=u&lw"/FZ. LU\t݉|cCkNe4z̖ )ҺԪͽ ve'] PD{;/bЕmEz!$`<26nuaA![SHǶ2emtJ:p|y}Oz.SCe=[2 uCzՓkvWXDLjkX:x)@= `f QȘ_ؓfXH93p+,k(FՈ661>խ&Mr:ٽBu|ؽ6EBN/z\kxsGڨ{uGZ/ЗhF *Zh'/'p YdȘ_FQ%K0}@-n^pꧯB.]_zרokkv>~U@4nIӖbaR8\U^|^TNUԊVZ r=/7ʢ'#[ۗ9'o X'WМq~s̷9QZv m>S_]c|nqbAw/po daKޥxA*7=+υO_דe=YJٰ +U,iG}ϒkYykue~Z\.兵/M+ۮp}yJE˳ҋ+U| W=c~|.Ǻ'߲#1WggyU|lz*_c8ҏ*~O?wU|視FYi=ͼʍ=zzgO~2{i>r;1y'j<&=`܎k, f-/]^0kzxD3.dS)5%Z?<;R(xz&׺A0bKu,\ 䤑ES *$#CcZjA sʇ/sן́u¹dA`^x%:m@kKO1Zni}hsMFбdvQWaS(Gk:=`UʧWj)k9 k>[P39hk?J&F=@KdA4fF^`\ fuKf˷XR;%m<@@6]}}3PWDz)H/V~+^ I@qGZVwOOVNOcu Dd=hI~|Zzj]8މrA0nGֈC#nˣ/c2ru"X@sB1o_Yq?9&C )=i/\Vm.d1Qd@Z06fS03@ŕQ{a kK+y/5>sX`%ıM $oÔÓc2_4䕸N|ԁ9/yUMȞ:wU9 1' XԵEwЎX=%du+A? =v{9+k$+m2#%Ҽ4D KCgÃ~ct"Dku͇hJ T,I5&݌\9t8~?jJiy-]Ρ6$DB>maFۤE+]Fl~Q4c1#ȪkQX>߭oxPp DVM>c!V a@uZ݄?x-Zr2jv7'm'w\\fI5yI p~>]=g\#.e?RV- 0Wmke#xvyC~ PהSF>(:Hx>mss~9^zռ1{mjVf wpP_8b}FWikd-7;\-ܵWZ~ƪ%Q_{GWF S\ޜ /pl&U q]ZuɶϜR3宿=v(yLFZ^rkp⁡lo~z)qӬ>nr;2/,_Ԉ%j*P9zlYzu' k-A$sb%nw1 LB/8nNj!WIüxm (K5[ׂlٳc^ cW(_/Mh7y֪pou+KDw]ăJs(x}HFKl븺Ы]/`KYJ.t]#8c~ (-:sШu?Uw-{;9BMH#5p`[iQJ/2ޗƼ>~*+_|Lo&3ٴ-'/0KN L L L L L |I '0-4Pghؗ}u-y?ݣ|SGg oV~{sx)zc{WZ}>7Gc7G-9cZ/ݛO/c*O+7me*c:/3k?;#вo}[&Of]T|ѫp_Ew??H*<;.>,ߗYF.}WXci4tnKTeq_ʽo?c}1icm1m,Wz2_~2_ʟɟ+'/+.+;Gooz*m~j/큖/Ӕg:pӻ)_}1|=OU-:Yzŕ[+ܻo1ӺoQ/U=8_9ԉ5Aڊ] Lk.K]>TE1ڃ"N=:pC!CrB"*ͫ:Lʈ{ꂐz&qYK3SxGUփ@&,~$@ 6>T|$s(IX֓~f~SB>bI#(۾JL4&pOyA9,nmK940cu9Q˗O3i s;vjP ˡ2HNWX u0u VLX,^u-xf$,3@g\YT!P*V#QpB⣾\xs0ZaN@Z앐bA 9Xٟ! 'zEiꡮ\7HYN[us@GT}TM_6m/=+m#{`-}= zۄ<-<U iCqe,9 z'@:ԱL[}f=tXPu1],l a‡usBIüjh0c5&y@m ?H7'y ic[|`E=tWo,Լ~0R+0`J85B2.Wn4녂2Կ oW?|rE7||%[*@KzX v[(w-6&FBYL+v ii- ӔAwciS/ؚX\/*}~ 0цqmG}oMc3I/_)IQ952$J=n'-.j~~x0"in×㮥ȸh{ZuWq݀!1e~kOY& [=/ޖ3p^5mʦX{]w6+4F{+njzk՗k(Ԍo@O;_=Yeg=acܻ&%Hsrs.~.ٴ5ɢgƵ,5gg*Tۺ=+Js8SW냀I_$kd$-tcēS* !uvEt>U*(M 9]_(nאw K۷ F^`[{C{Zϝ)_+ct7@G&niѦ^/`.{/f_8hɋ|!E#hi3`2c Ӗuȕ/?nn󾠔3.nݭvl /%)zޚܛ/(ٽt/\k3v>Z\ {c_"M>Gl^@ℭDZչC.i=K+q,;~\Se3N.֩2ot,2 ;j"gKTX[{xWyYm,|$}9MJjUx-|Gm=I3bJ * Z橯c/ecFѼ-ǕXslAsMu~7!x8hܧ.}]1K\xFy-ox_wUЗ^OSI9]?һKw鍼XvEJ_FOɿ}z}_yo]ᢱ,o6nU_L |?c/#ˀy1Rg聕wJ͵*8_~U۫X/{•Wq+h/~"KmO^W3phs"PCrux(7ܨ[<`uR$?hgi<@C]SmZ K0yH vaTS"C;"N^]>!l%olr|$,ʾ$_9\K'&xkUrUO&Q=ft \W +R~ `c]zR( LKg٦WzkaE / v!:t>9 E-A17i dZRN'|"GB^ipƮטn*e>Ztjr;`}(q޲=COKj߶DZ @%DƇre&}K]3'ө)$=yZ VgX|{r @ˣoWudr,k- >xqȴ,%^)ꦼNK'V SZFuy3xQ:`&-J @Y|eR,pu_ӕbRVڄe "3D2BX}Dy.oQXnܱ\U\} D cAP9WB f:_ @FsVמT|iZ.v4y)S2QOA1s@ Вbۀ-cKVWY"n~=(=C<|z:e)H5ks 6e'^ eR]zW+cɇP1iĢ`ܣ RMew)XuI}<5Z,$22 sĻ}ư8QcW*=4N-4YsFue--gVym|;6Q +x4sSPZZ{͞P#\Y&m)(\˘[.|An2@99 WZ~"w,:!/.`]bY7YOvYWw> j}];!)hL&׿^8' N[A>;_K2_ wda_xp߽fZ-0{L \[@<g #` m6<@z} {AAZ<Ž]&תlgC9uC_˗ȣ~PGFK!xxleL~Q]s,`1cSO[{} [)NjO2E+EDzFPOghT_ծS^'y=^9`ϝXiOяL L L L |:$54s|Ibz=~e=}yh[gzѐS|U_i}M~WVTL=Ֆ-O塧SefS_VOT}7ѻ)oogyR]s_/ta ݿ+6lOZ;kz/>}gاPo\Y>i1muߖVy>MnY0{,O7%;q]yߖf1} +\^+~'ncl}hWDkY/%骻cOUub{_X{\`,[zi]~z&!5lx8i@V8L  PʃOxD[LG@E2EuJЕRɴ"+ r=F~;n,3#QlV "=!jVN,->p|Q+].{cR`<'9HTdFn0 yndf;XM _ bsJ9ȫ:b)Wv^i o/ؓS jd$Aқ _m!i [nz LY0z㡭 Tߵ! qB4%0= (& g6W~h?@\^⏴@8ywS*'sTvu&8ۉBW\#=-D+ BiQO˚Ȳ|U۸cuh],6[5p%֚E,臇𤅳 sm@K, 7phhOOk bh#[S䫥3,cy6[% X8>bj܅0&.-(52ʸO(לgtI\ xڷicY\=ZH cpi%Dp@!e PIu~pY]9zsr  Dʇ>@h\EFZkhVn-F? ž̵h5|lP6@ ii2 J#S$E\Z| W-wV^1w/ckd;oNW+LqAȏт+nPb w)>fUm5!G,X]BT}%?g&cʫc6|mBShւ{Vz MMV$}VSڜJO-I6e$dII@IDAT!ju[4uR DCEX5#1mZfI))=cF/8XJO)ŚjIwl+5@f ;$쑗Lɱn sΛ׸b}zt_e G}#8)XdE^9еXYkm.;d EѝglW뉕I|yEAky n*mV*gAw1;3 ߂cmv*pZk[D=K y<ٶq!ιv^Jhe~mcp<\%Vt˦onHߺR_?hJ 4OӵQw7 o_ak%ݽ=SSf8&$(Oo%舳#|Hw}#`WLD E2&Z&|Gk\ZI|HC >^mG&U>~P]!%[ą)-֞ BO.}ƗrݕWx)FKվt5X`K^ x‹icX@:It|ûGV}Qf}K&;#sťj\_fobvk!uX0SHef\{ԐqI&H4{ꏜ@Wr8wʷ{"pJL >o@kd}ud":h|dg 5`n'ټ<W9a/""xL+}q ? Alj[UưrKNJ ',ϙCkkU@K~bK׷U|Wt౅g))))g@ONSi#e-Z>}'oߖ*=S~}ު/_CD!oUCiY1e}NZE&᮲ӿ;X~LO>g;ocq߮mݕ&?~EOOȯ꯾+zWFmOO+_??/oܾ\Qi_"cq?)|ݛ?$~1|uqWe|<h![u{6S/}|2_ՖrkV6Fzcϻ_,K[7w-;_c7ҫc|_!o]1؟c7Ӟ?4{7,Eo>t1mi7]Er/6/+gM}ZG}۬V~~-8*d҇6:xm>=Ί-,/d?bkӇ/1i筴r7A幯}Z/z+^*_[:+o-i[1߲2}ߔVIr+w?/`Q`Õ3LxsP&a@13{@U \p9l"2nۤE]9z⠏H6qRE9n=<;ypԢw8m3z)CLY!91t AÔ(VO6G/_|{<,9 ( 7 p9v>"c- OD&%B&P 0]2Xa.`KiLu`T_@[Y> DU/ TSRl`ۥ^@+,qm*`U&EUA(zةW8XG%J_[fh7\%/g9[=L +Dͦ}6V8߱9]xV%'\!}'|ι]*lRfltW_rmh;u~>زȡ蟔 DJ$Oz7r4F=2?q( $Ku;g|蜠K@go K?ty$AVy `q kE9UWee (T dI/s~ n(x&hیAv*ڧ"kEZ~UWm-O B?Z~ZX|}tTvMky;m%ט+("eȣ,"}|gӲ4.+躀_lWŅqֳh nǚx-]ShHc5U:v,I{ uib|iׯnU(%}**c!]?uA,g;JYŽc۷@S)cG]B/Eq31d9y|(sɣcflx)*Hs,YoKJ>FCyڬc)Zx' k XC -:l2ԫ/% #Kb"s**<$0.ZL㠣U,«U^zDsZk_ڗ0Pk/ z8 bXӂv1ڿ`?}CZ @my{/iӖWgUNy |o^i$5KKi9/S_Fls1򠎨uάԢ Z/m`K{Fܨ6̭l@uw*aY3]߲>;gɗmcn,hÚ}I=Z Vg]KD^g/,?=e\-\@kE^&#o7yyL):)&'cn/w(t,Bӭʇ~=G-Kaș}`}4ptA?|s:}יks_['cIx9z//SsLwkvvfCO\K( 8k-zZzTW3g@Bwk=ݏ:`z-k?[S*u:+sQi/s/W47ڻ&%&X|z<:_lc3R 1NSW]ء_;#64_ӺXM+r>]^s!LL{yE0OToa_=))))ONzs3i|z%<OW,ۗ,m}Y)2q^#w,Ӿɿҹ-27pSm-sWMtIIoKi?hWG볬sUw{W~W]MOWkַk.}_:}[qq_>iSy{o WBލ!ˎ-GzwɦRchr]RҮtzHg yEo?ҳ7Y2c_V>qc{wW}<ȫt=}ʍil-6{:2ݾML>ʛ,_ UJo)k=sՎ9|+9{_nZisW VS}Vŋn{cMeJ/ tݢy,o_)W<ҧSukW: !koW9o"G<dA/}0)R3 G^cxLwhK'γ5^£`Cz=@ ]Z؋4FMV9@~7h1?ԝFTiZPXzZC2^!E;hU1?G/Kl<8E/V26Xb6њ` 2:vN"ݍ6rCZ|`yru-oү>{ p*ǟ׵3^PvtL36+Ɨ!a5z.Qczp2xκE?f] j?yf}~>:mݐ*Lހ:vY=AMҧ-x/J1w &6]|}ɠJ&imSqDWP+Ǎ)*\IUzE,*j/)V3 7|-9gO%eK+%\c;h>TL#)Ai,t]3 pfc[VQ4׮5&kʖ`AXe|Ԃ2ȵ6y} ZNk5lWP|]ўki| W(/DVTim~1֘w)O{Z+k@w:N& _G;o5S׌oB=:O )!$ocaB7m,оhNjlX9w^q41>//' 5<\;o K>~ M)ؼW_lZlWjo|3]jiY{mgt@>p6C-VQf oswZĬUKwۛM'ePq|@ZN{Gll3|iz= ]~v/>8g d6:=~ YvJ`J`JHٿdt0-?>1?'Ot&J_[~4t_TcU<+{ =:7\1O]>=RߔD.ܫ]iqhYm=pPig^;1How_ִ}eyN]etI-e|ޕw쟑*_[uݔYzѪ41n1O_߱|߷_,]ce濋FOO߿SLW|˭xouW~'+_?֭:[~#ob8/B֍=SΪλ8g[pōUo_7C_O>QV}1kck<$G>V􌵞f!p <6䶭y*w& ڑiukaQ5`U@Zqe'҅h&mu{Ρ"&4Z& Ast@ǮVYM 5=<D[NAVx5G5׹Z; HaFԅXa%2'|ִ'M%e]p0ꕝg2=ܾcR~@<%gO)k pU0YYPoq롼Wz5e#.>DJߛ,,yu`)RȍmBjVR=Ǔ)87,?:<^ 8|Wr}5 ʩֱ!J)y,(b ^ c Mls&Gpwx(Fy:=ts/#MsrܮԚ}e}2@#[$:CD(xO<`nZ}2GYW)C>Y@51pm,C i&+p"oeL A2?)x8Vb E )I@,~k&:c[(d9AkZ|߻X_e.Ų-ό#AGk s8Je?AdojәX!?xu!UDe "|? U~,#_.S15.Tp n3PH>=>pKsX2PwMmÚﶧQ0Hm]}?ri~QÎU(:F h˂i. ^~p` pnD^B1p"0o }XV\4' Yg֩ GiXXOvZnû .>k9Ousƾg5mhmtZ@l38`9g0)s~l &ukcc'/@l HWtpUks;䃾/6SW3 U.þ% >d鬹_'(yqc`/b# 4^N%#I?7[6%ZL۸Ňi/Aev t~f:<{ f-COT<ǡ/QdK_җ>2i{"-- e&^WO Tm>j#"(y$(,j݋#]#Mգ^"X~֗\L!"}/@\Lp܀99KU:qUBZi!lr %i@>`:mhq ߲_yA /@0rΞKGFVIB!F)EGh$a[+:k`WX3}.O5kfxjAs2/yƊ>2w_~?hr;W6-dn\^CYAhNG;cw-Fup006?qx9<ίevxFkfenPn7ƹtf{ZwBbQ9}!}b(3%0%0%o}t-M{*=MWSs 1ϲHSFOΑx)~,Wx35F_+WJʭܪ>e*oZ7ޱ%h|}-t׻Wy]*Bw+_c׽-мc1|z?ݏ hYpҰJWS:>C]_ߘw eGZc#>euU{*_}cܲ>(>>.eTܘ>yVŏ4p-U޷|rVcq:Cϲ2}\T+2z7_WY]Ǡ4o|ܾyW1,M?+~lҭk8_yzy3w{Vuy_i}o[uGceOq=nma*w{S?U=iN,?a'Xq3pΛ2PiAī9!5&`CZA9 d3 j6kъ#lE>,RYEX7*C5ɒuyHu(CJ0ᢼ@#AF,I/~?dT2izb:($&2$˷FL©o# 9HA7J>a\oyHjХl3(>%@#dDg.9D]ANV6[npDᾇp@xHk|Q\ 0m`?nZ!>9Dr1X =!˃S, i}3 mPx&(W. 0hcy&+۵ HVb-LŢ^q`bvxmtd=:e(O^ ^m }v- G\YupSܣc+S5B7%!k `KNwbYX˙\G|pyuW&_%kP7^kz%&/lc5iV:+Io:/Zk6Jzi=pӼ\9!m@eסH ۚX{|IN<eGgY\^ =ChE1!Q6eASqEpGC1ʩ%icYˠ{| #Iн%2,pָ^ 㜂q#_UZ֩+ =6mz @T@/Ao`fvBN Ssi3I{ vڗ>es1@m70WkD.ptp;?u H+ ͈3L8` /Z% e>=_$z /]j^ϑ@oHS@=֊w]MXxW#|ELњ=^ q^a{)DZH tuI1mNԏ@\Ո02KŵGwcVâ35K@UVZVJӗd׋˼z$@ϵʑl+J.+he]Xsl͉<|mn_ly^T`9pY/-=-Z:8=PW\~> {w-Bv;נ d_4\KըWm ؗyM7lel؃/zN!ʘpO)h=vmmƵ|8U`d| dBNr]0u |c,ݲD]%BK^1cq(GɲN;P7pВ3ϦYO3ܵ(_䏨{p=c[˔_%읝;/֓oZ1hٹ_N{>SSSߟpmmA=vsһL,K.=-J:>1>6Kmx~n2mo+gڲE>ybc ܾ84{m;c׾ie3I׹,n {^ϭ/;K\x~zp,z嚱>ҖU~z*_>&2Eche>l\5lEOy0/q~?9+xo )eqLO](*WY/3lYcOpJ6~-旗*_|Uʍ/-:>Ϙ^nrnUn+Lpݑ^t17cw} _B|tOwy#Ž8p[tA :`Gp\͕Rs#`.$pxւFp=7QlMqpPti ./@ueGozFX0rZ[@C@-Wrtƪ`m- RtC{H@yxm^.CcMS!hV84}Z;<˕D,u D=L6÷V/A9*m/`xk0pVN XNF9DXU`Sl/<`7 #ڿS(EK%z!C9j,T'0s& -zky58>#>1K@!%44{DޮsU&u20KV>b˖'\|,*}磃o+,fQ5vy \P5~W j }XTl&Wp4 PBQJ^l=(9x0A8$)OkZؓdVKpNx{,.SFygm^0UPE6lЀ~iNxo7^1_zQFX`Qdvn2Th]lȒ2AgA? lJ嶖^ժ@[ MM^SρG,8?` pDQQݡEUʢ!Qa:%h/ЁG 0Μv.~,mßA^!~|qa^+7`cOp (Y"yX5(SfZl[lI;F8heN-$2j5O+zKX>dG5" YV:(y5vmj}Bk5͌đ@ZlX4XgwLL)EJ5xډ=t ^e;~|hyŕ8:鋌Y+,hF]e#+"/hdLCCqqk/dC5r:`X'NYe-8#! [[#Ͼ'ϒSSSwp4}7жoդx| }?>>W]s~=[eއe4,n,F:Z7{Mu?Tye\4˭1<ӫWH[EgԿzk[t*q嚶+}\?/#scZ ʃ90׀XZqrS8)]@e5c ;K|9]rACpxg8D—kMhHcS7vva-3c@XJI'y(i@"86i6tYxMV'gyxP+v]r?A紞u %v1LWsI*~ib x) CH@mZ0;Xff C`TȷY>]B4ƓyfuPr+{:@͂\Md"#M0ġ03&e87l$J@Uˏ ^ [D@_+n 2;\CA` f;:) ǀ镫o9EF; 6Z/k2*{Ÿ8?xrk=:GPUaHGg:kIN Z2.!qhMQnV;m `l VB%ߡz!0s!)-<պh,[b8k-Kr@7=0{ +j*ұ--!ڜFx1`r09Xi/8Chڐ/pf3Wh2WS 820&#X$}#Ͳ&5o߀f" mx_p=Ǔ 3#Tb$qiboxφƵ-ssB;r5*B?d_}Pd%Ki2Fy6)J)}-(ZDl~'/&>_y˸=>_.3Ċ& gk]S2)5)=P5̽6kw%l+wOgv"@ ie 0,e&ʾOK)@9\cĵ30a2GXZbGȒG R.8ķp]g-QkAR^Q bmm,b?,"ҷU\q.,Zjo9맂1kהkӮGUڲI;ιŚ˼*At{Yg oh~x|ΕԾA}Ե9{ѸWԙyFOmaO$7*$qZrT2qiy ג(:{KK9/.x_rCZ1 Qx"ԛʕӎAƍgXЧ#}cmIIDATqkǫ{Wu5x®V6D2i]Z˖~|"cӵ K/ɲS7 L8INxkf#'9Tɧ:çch)v6Ys4>a݀g-IJ<3i/ۙ1̙Z=Z`[ UR+s5 @T`*Ǿrp X 7'IgJ`J`JNP{} t'ώ7oci\zX~nl"A~sz,+s얥w}|w؀Ӿ&nyܔ+O,L1}y6Y}mWҟVT}Y,^{2==gs*Oѩ*WX nT֑~JEܑ͛ؾƘ>=cxg Lmu{Z7ÑחeW\5U3_u_GݕU_ʭ]n\+Oc]___̺ngu[ު3WYez~;ϧ):5_[|7-Se?nU<XШ,Eϫ_žβr#?}x,[uu[_5f|߿cژnxsY3ai/(ƅ8K)Y\G?9?0I%EiQsεj$3gRA yQnQ]1N򠷋y?QseV jOofOGW=0"r9YGb(C㓥?,HꔑWl'"jryW`N>.r^L$a ځJ_qUٮ?'āckRO#@!AczH?VT'XZY:uY_})CrA9%28hZ5W34cPו?й7gwB B;m+AW'b [=@6xֺVE 7AV^{zNNrnӵQpAW[ǃ 7@YW琟v 6e ex௕GۥC/պh M`Т9h!b-iqk >n(ѡׁ"3x $TC۫j}9,~>Hc5`#hlrk@B|y#`~<9VEYn @' Yl_Tm(qZ+{kAQ@m+z@ZQ+pdB`/.\Ę7ϱL&ʱ@K\ʲ ^fRNĭqʠK;s8 SRcRڅ$S9U _Q #K-eϺ)k bL ك'?:VN50UX x-K6Kπ3w2hERB?@A -Y[n+,] k3kI˕41Vb{D#|Ȧ}K_2z |!vi&r:f>YZ-pZ>rfG?('urpQ4'C͗r]׌3Ӑ5QM.[rd -lp*l*uUM8GAgDpv WB,q̷߮zN(Xoq>G+,r mgӂtu-qʷk.`nbP+YKӮ˂#SuҬZ UzYQAPFHfC€KY˚ӯ-VE;@u~ W $26?.2?[ҌWyaA%]\1#h >d&X0k2s'T+S.h% / ]Z u^e|.n/4, O,R/1(KWssa$kQt5Z{ZgWmrQmN!\BG(}@dkA Y,I9I$>}!#fype^޹$l.Cөo"xd|XUʀZ-^] >1y 0S!7-3z(=R=KJ[~q-(vϗ\ֱl^*bZޱ~-KΩ#2!ͷꯜZ iw&ȏxQ+ݿPؿy5g9_!kr 3Yݑ t&+<+?\P U"pyYi4jN{aVPǰk@]bԧ3A֩86KA3M *٫9"im L꣜2#*if"T+}o}Kjۼ}9=f}$}k_M2ϔC$ZI>8xqi|^ >/+>n>K˹اyTײ1!(}$wWJ(/Uw+:_MWM/Ɨ|++_WDTr导J׭聵ٟ<[ZlSwo1O[*\ne>4heJUO8]ݔ绯_ZcwK{7вگ+ǫ[{yF,~?Jgzս,\tr R|my[}1pSO=#?}ڲ} e:]1<үS߇Sn_ig>HY*/+Ǖ_]=$oѪ\eGT|UeiZ-ݾ? 4<++_׾g>Fr|#QF~?+^J;v (Z՞Ȱ1lU'}ӖJ*_u^qc~@ˢQai-{Jr+XnLy2[):_~fUV_~{z73gL+%}3gRh٨))))))))))))))))))))))))))))))))))))))Z>'))))))))))))))))))))))))))))))))))))))Ϥ&3٭QSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS! |)NSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSI Lg[gChR4>@dFM L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L <&98iL L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L |&%0nx LsHo׎iw H(/2 @ @ @ @ @erV @ @ @ @ @CQ @ @ @ @ pLΪ @ @ @ @ p|( @ @ @ @ @x/7ԚIENDB`vision-0.19.1/references/depth/stereo/assets/disparity-domain-drift.jpg000066400000000000000000066271501466211133600262520ustar00rootroot00000000000000PNG  IHDR L&? >iCCPICC ProfileHWXS[@ Л RH ^! J b/ ],`CWE; v"bAAY vM 躯||̹s@?ɓHrQMҸ@T&)  8vLL$6p}]uk@8]σ x%_"-(-&H6# B@3Rӕx'!q3j<4Z䙅LAY,3!˛(8 b[#XJA'o郚<^ VEajA|I.oYmyְidIsu31B5 GEC @1Jɒ%*Q#~> A,E@lq87*RŧgB C@$eH9l'Uĕz Id_g *}V 1bBQR4s#T>#8Q>RY<K@>V! S۔%F0e}f>O? &t#"+u ʼn*8X"ɍQP9o[~aj,TRϐ$(ċy1| p@`l`"֞x < @UdEA1"!BdGG-TO! ^ăђȈ w H#ȤxA0b7p<`sY<  Ds?e9 t@U-n 5@Ce\7adwrTy˫Io3nd<@y$͞>"Q>Xo`9?T_?{b 9v;&vkZcr<(V@8E>9PGxwV^|n/ʾa 8%S̬&~L4|}U|7?=;~}?eO:eB%' ` < D:` J@X Vu`#v`?G)p\m: WO'xz;ABEbX! B`$CR4$#2d2)C#H59B. m!ҍF>ƨ5:el4M@ǡ$.FנU.=^B :a `X*IX)VUaX#Wq q>> /;:?{o*@&p ɄB9a |: Dц b6q*qq=q$G" H$_R4G* ֒vN:IL\BRjsvWL3YlE&G)%Fer'3EbC$P))k(3{7^"YkWQC[^1VCXcIoT55J-.VSOSP?4'&ͤUhWh/dMO//{4ɚ֚M Ú75Z#iԺեMҶhޢ}Z1cX08 >c.c+ Sc)٭Ӫӫ릛[[{LCӳ-ۯwC!!! 2P}~ 9  713g(hCFFqFSK613 06Yirܤ۔ag*2]iz9Sf20fFfaf2ffm1oA`YdXh4e9Ͳيee{kd]66\b{T[IUv,vm}}eAޡ}a0a75َ5"8;n97-\<#~Bw K&&Ic'%/O=|їR SD) Ԥm}cǬ9}ll0p|cxҒv}Ex}^>B X) ef,\ٝU#։^eeo~=?79wOZ^Za8G?iٴNgO<>iy3;g12;gs,vnyf{K/5%i>7..t]vRA2/.:5/XܺcɆĥ7/۱\ky+F[\Y .o\MY-[ݱ&rMZ˵K~YzE`ŞJʅ _vƲ66ʺ| qKᖧ[[6me۾noڳz%5h{]mv7:nޣl/+|_ھ#7`=huPiR7>!pFCGl?jv%)?Q|dϩS&4==3gΟ 9{܉^p"b%Ku--~wPGke m^m#ۏ_rjճ׸.]~#ƭcov꺝{՝;κGWz_~Uãà-}I/R?3}Vu;/$/>gKۗ wto+׋mS_L߃wy>/`aGs?=< ˚v_E|ן/Iy_ 64#3OarϪ@?aQaws[ C m`Wʍb祃c=y|rU7_{-|\2eXIfMM*>F(iNx L&ASCIIScreenshotM( pHYs%%IR$iTXtXML:com.adobe.xmp 806 2636 Screenshot 9^ZiDOT(Y@IDATx I$`>dNg]I @ XiH AXI+- YLu;L?3ȓM=2,}8~_T*@E"PT*@E"PT*@E"PT*@E"PT*@E"#:LX{PT*@E"PT*@E"PT*@E"PT*@E"PT*pp|*"PT*@E"PT*@E"PT*@E"PT*@E"PT*W0 bBE"PT*@E"PT*@E"PT*@E"PT*@E"PT*܊@E"PT*@E"PT*@E"PT*@E"PT*@E"PT^+0 @E"PT*@E"PT*@E"PT*@E"PT*@E"P G:Lǧr+@E"PT*@E"PT*@E"PT*@E"PT*@E"Px .T*@E"PT*@E"PT*@E"PT*@E"PT*@E"009ʭT*@E"PT*@E"PT*@E"PT*@E"PT*@E@:LXPT*@E"PT*@E"PT*@E"PT*@E"PT*pp|*"PT*@E"PT*@E"PT*@E"PT*@E"PT*W0 bBE"PT*@E"PT*@E"PT*@E"PT*@E"PT*܊@E"PT*@E"PT*@E"PT*@E"PT*@E"PT^+0 @E"PT*@E"PT*@E"PT*@E"PT*@E"P G:Lǧr+@E"PT*@E"PT*@E"PT*@E"PT*@E"Px0yXZYYMiva%-/oE,+`2@+dR0Q4M<[Hc+vr~zq`!=YY3<Ϝ#:sp0c֟ %LDž76ݯ>gkZztui)ݹeڿ6mv\v7=~<ĚOYKϞɾ؁}v2sIݣ&={J+ҡjN6j3ㅰa۰G MH)u3y2U[g sryļHh9ڒL穝:GtG Fc~r\烈{~zOl,/.wnkuiNg_C)0RMpѤ`f<茥,:P EE%` K{~ so 7Z)]S| AV!jG ~4Ԭa;4qzk;aGGonc;!Aw *)fVIFRH00H:hqDwDtXE-,B~ >p/'mŐ(4i q{2%aI&lc_LV^[Xȇμ@QlƢ d}֦q3[2>1aצC|x:yT:~t ?Ϥݿk^7lztN}(Ny۞5v&s:.}ON1AcczG;"_=b03Sl[YhE%=Kt`aZ]xݽ\ƣpz)Hg^#tTx?0n5a}j~OzaAZ1lOWXyV<=_'ɲeR}Xg*|Z^f% sݛ889ϸgb,MMjM8shuYZ^^њf5--본|T>:״aLX`|lN ܔ53i)u=Gv2=%הߗ}@EBߵ_^ٰ~>kyo,_#S}=^ ګJxQU?_"}a^]]K_~Syjθ˔Gk˗Kv|{E܍Vt|;~37(s((݊mEmgGd 8ݨL4jBaNحa0}a2( ţwz6v^T6۟]7'>(񃸽mejwڽ4uwC>Ґ ~%4Nsu>>>9>"%=k\Zヒ&A z83fQp)mj|]  myYQe58L,Cʘ9H>eO:.O~^3Oӵt4/'u6qt٣"{Z\8g?Y$.ډ޷mfh)Q0nW$7P+ C1KQ+Ґ$ZB"br'Яf_kG(rFs-E&F 1r=c&\+/xkO[չ-,(rFeq:YZ:I,|+6FXdr9H:"w<"LJCGQQNN Ԉ3I!i_)q1җM׿:N?H V}B]8C9 xH%؆s9@9pM2~4O]خt6.f'o,OQZ}}$gh扜ptL%Gx~(aNϗ| //L{~OfKrTXSâЩ‘Lóu>,|gH8>ÓQ10 g}| )uu5q1IU97!>7d$95kuJ&k =W8_NzyBNGc6㮁ԹuoAg;fXΤ7k mϝ7䤲ۯnOw%m (Ⱎl8Nk*,ޣhKl%n{֛-aG-вLF|D &0_cc#!\b\XP Neᆥ "ZI1. ^Ĝ!Pږ_rNC!ߕ5u%7,$u:3#R;f\4`mᜧӤ$r'_~̋ zvRJ? as3ߧ ^Ltq^m剃KD9qP9r61ܹO^2MkGsy`qް>U_wkys|:?=~ ]RZyn}E {BX?fNepP y^a1ZW=@(uߘi},-ٙOy/Q?Nڀ@e ^{/qN^ ȃeLrJ'I19DTvE\ ~X??8M~dD\*ZT^"]eyTeVdK;"߯~I HGr/b:_[Uv0>9NFkZxٽjdV?'_Kɭ`O׿XQ}xbG}d7|Ә>y=tSNSɟ8$ z7cS4l[jn}ߪ>ӵwQ":ƽ601Hvmʿhl?v Gv+mcT{0Ld)_5a9m $r] u&iY>@u y>Înd&?>ez`T +r[3NDZN0ޟH/bt:TV xUѻ0A@f@*gϿ>O~i:sa,/-{n*i23'Ϙfed +&"&9LХCA&&Qئ/CaG~e5m",`7;>0d2e,ƨI8lĐ ג*P4-z6*O ND`iiytmjY_$4p b0\2T,u \h FEokk94A f#a/h^6Lв [LFO#QdDr! !88`8yPΆr: H"zAP"9ǵt8qqF$_6]4nZot32~8Kzpr"P NfnE2[3ljuadX\fytX~VIbgf-A)8E6d9ZR8Yϳ9Q&s洷^ zb:S"B+)&Wgrhq - )4OlBOVoB s3Q}Q+4^[rݍhi\#JiZF2(4LiedJY ^G\:y_y9a?Z rD^JTg$YX|I9*zDd^&Z`T_c^BWœ2U}zu{~A,zMqW>ˋ [_] 6/eJR^6VP=]IkORZIϖ9E|4nܝK3)^8G[|{;Eu!_ϛ=yc*]4}̹#LWӝ;z㎢b=GtY'yOS2D\'Q$#ޑz|C7@D9rj4GBؗyVMhExv+)Q:*_+"Pxu*VnWⴙ|׾~vtezʼQ؊]ɲnS}^aP&Hv^U^k8I}^,1جn:Pn_uw% ]6Mӻd`%r{D{p;u$'Q~[NyφʹUΡl|3mko+zi]ۺHvmr`3 ۪=nWV߬ffpQiW_?n:=.?SJIh<{(,~߽}F9@"H)uACo/ˑtP~am|7ݲ;'Gˡ`,=C9m=3;4 U=*XInYS~m)&ウ}PpYYQdތS rL#Ehy{G? -ʃŹ9s`k+<G<\O &&G8 "ZAI=o*dNr%`HӖ#R7RqXs*)ܥE~iS/+gr)N#wFF.˘&#  ΀d>$PD>c2>ʦ fYvmQ־Q6|m db^("olAՓZ{^n(hT${R6Y'>oA*\ͨh 4o1IEhԵ-dGt :T|9<rY%I3q9I|YCUmdy)M?2爫~%'s)d+ta~Ecڪ3OVTL?%zqF?cfS@|~s@Q1qJMlo\mmɶͥ?VA(iw:'N}#>9Jԁm%*qH\rT?O1%L2=잍5C')}p2cr|IZa:Mdf$n[h(+\kZE︆2 [t60.a`+r-!:*zm*mdlaL0¦PT˧RAjvDծ\.EFڗPB> |YQ3%8L֪ L65c-:~ЪkuyO̤l/Uo27![/ |&Щk 9>SSqC>ܻ[ak}nK0rlW\8`͋a|w/~n]=12ӗ]rPg*^lVp0>dEΓDvP6@71~}V8f(l]`@4;vؼ\=SN Oy`eI钜%gVKO4-?=`6;|zN"h(Io^(a"S^Fn5 ogTg-lNwv5]zGU[+,-66͖GL"vwAPD%ǘ;Yo\<ț/8f/8/Ӎ+|CI-:{?}Us\^xQ]/kJa 1)cD~P,w3vpҥa͞ƞS:L>'k3,/E{+Α~tΒV_VΑ]fIx솓d{d?::9RnCN&~m[LbgGd#-i{^̥aT۴WG[ߕ={VuvmWEg3vfhtcTAvumW Aml|BHKf/mF>-Ӳ2_.d'_YOɶ|ȇeMݾ lmIx rySjR(~W[޲鉧̉JtzPjZ3r\|企 VheJ&l,[r٩N)etfm"xAaz89!IB}Gt굳0I'N;gR3&~}wHZ65QuhAƣ,ȆgAmv|Y7LĝWCML^Czx%Oz3]UsE*=J`6a~d~< A:BNΣYYe#P̀ROV餢N ՞)潵`(/э/֦lj+;8ÚkFCVؼBkm(1'/=Vzi8&`\+2 z"-#HiY9GE 'cQ}x@$NcD]n>IׯlS FB"N#]ӂ~0=_QnXdu=`#2BN/  W$$ ٮrBѱpP4I9xx4,:֞8.<-!@U9DfN8K8铛d>]?r8qt 8a ?:H~rqLH%_iZc.y=ݺly"[q\m>hS_WCipf[oqTN|p$$&44.E}cE)GaRo9G>6;6WZC Io=bx y+\ׄv0y@β~#/o~ɏӇ$v [bzpVuoI7^N6"-0q.T/Å*xJ_Odr]MJYsbt9fF3¶EFUu¾BZ!M 5հ`zjY++hDL+sr)G&! Q,H6릮uV#l[[l/d)ӣ[Die#3Uboe!_rצ&y4BDl#:Ғ[A>iG8vjK?I4Y#L&Uˆk֏ߥ`_ȄYo3pmfe 4O>h ]W_}>3>J9E<$\m%ة#NFdN'O3uCNmozէaӽWn6uKRNjh^*a}=r{jw?+"Oux,ygNAKѕEwG; ^(CfS'X:uۏn9MF Szh}!VT'zpzpz833`Βz(QԌgkfx.bۯFF 6THڒJ=x }ͨ)0IIz]}bGwҧ?‡1=cܣ{q1x~lDѤ>XɰO9ze^'+o&)G0+g.fY!䌧B-! [E W3j(ar:jsھzcԲ6!Yo2ecdRV<hʠmm+tXU}妾65حv[cPHG?z.yΚ :LFA<<&ön\ႃ5J!yv3et[ ]zpr[/csl7nX(9 >c9H>9E"9@ tЃy~x ,`36.s$M¥ym39=fQ򑜺9OʉrIrsEk!ǝ i,HT\sPO($ۈaD+k-[TCgPsv$e Ɂ뺡ӛ~ %9/_NGMt7ҔRlKPs0\v5n)Oͺ/|rө#IWWң9ֵHQD_~]#ۯHsƢNj cǏ"u\'6NBD)&yVc<М33s"qT'g([#4R#JI\cAg;u<<c盗<)؜~gj{t0yzL*>r<]>K?(6ݾXsk)Mߑ#򲢆n `)YgYD|ncВ5MXE1d 2Y"8 5h5<ͺҴvQǜ,b8Vͳl#` ެQ ١7MN;iy%oI.Z?iL(Ž1!b(NƂjΥٹ@5 V"XZ|AIH>1>RYKcSF&/r?J}6ϲ}/^Ͳ]^>wYQ? QMл~XmmRwP;iϾAm ({FȕNlﶾQ49 UxעWabp }X:%7?$G8IC˗Y0I('G9<;cG.#Mvrԋvto(L{1;i[D% v^0<^$;bK>ŘmE(>GW7V7s7ߏ6ͮ,ӭg'yu~?yhpWY>h][)Ny/"+gg?V.eF68L̥Gsi#D4 ("ytSD0ѹ$?\glNG2WRn!e<''2QRN<.?ocMwn\O׾6]+Ej)crN' sĉ4WyxZҠlPfsNBu#aN;{}xв2e-`3VCNԷhP:>˗DB*Ҭ ] d"gEEsd.kVȴ^ k3WmW6Gte޹|3{-{vr5 5I// ;FZ3= zTbKSm.g`<آiSځS#`HDl9uH[eA"Dim۶xgQ$q$An%F%s\VqжT4%^uiN$g?NsnIϟhj 6'j5sYgiVA ˣ9:3ܤQȶ8TLN蔜̤A$+%ytVѣp?7Ҟ e`V0>70[_*rLkq'y@@e\&ӻoJϟM 76l^ al-n㎣>abIEiҢNʡ-qx׎F3:8{>Yg궏 pl +&38]OƁw2&5MV'䉒V|я^לb{YicӼo5wzyBo>{[/T,~yj 8c뛈 :l=$a.o\) 5W QPvlU+Me2 #Kg&\`ӷNy&&bА(MDxzʅt-@|NDeGdfz:\\T,f ˫db3C=ҋPF"K}Z-dR{^ aJB۪. qZq/=k8[85zB[l6Q$ipPk RK8@8Ae}Oq2mnI9-#/(otz Q?uamڒ{8utn8KC)cvqB|ƛ>H)T4PѳYxemC-u919W49Oxj [9`[YkyE xM+3^bGK|9һeW,HFu);{wLAZΔZ38wttNh^s ͛)(Gƺ/V[Py9K4ep$ ^*e ^Da-HY=6,x_XNCv#b@U־ӿEIԶx;^zUo\lqu*-܍J}/s~Aw\a6t)f0;6N0|4I9'-tl؋9Lb[4y]yz/]q+F?lg7+?JnlNѷtDhEm6?qrNذ{(Qywm[%ߍp$JMCo3eԯCĿ_1nxۡ j/ځ/m |Ҩ_^fpx2is{.?ʑsGA9!#ww3Y+ꅞ z# 9c8LK|xFƽwL\Џͦ]&l:4u ;yTQ&"gQ!KO=GʅEm&>#?KˉɨttJ-eMj9<=1FhOE*q}tۮ*ICϨ6g^Cr>3slc&WS{.yB'M'Nі`~mmƲ;٪m64S خ'$E(1#%jqaY6\h >uwwpyJ? 3c_}&|@g4LLBy_Щ\ogx0$gt u~\y#m j-z~M(„ ^l#qhFQ"s ">jg08H ."/FZ`GIN "LEB9JJF{r+X8^؇l^qˍR"*u?kIŇ+8N$N~HOꅄ# xdr=RdF^Vu^X[ߟ(;K~oxc)P^WvlTZ ޗU?}ZJu_ZKׯMWQHEEݞfǧһoN8Nsx_4l]sAuvcNyH1q5EPNz$jG6;^.S[LS{H9Df'IR"y* yRfp;t\рo߹+6 O$ 'xAGvLe{]d\U4!'SLMh[RS9%۾Ttx\J^\nߟOo?Cēt@߹ֵ̹BƦfؗF^:blAά'K}tC9?hT9%,j{Uw̬i+_2F+Ǎ/QQ =2NqCu5lJX"k 5!jBO7*qB.FuKoWI-[#1]da!"m\w@Uɗz|ܠä)s: ->3< Vv$z12Nb4b&}= rf]su% Fj2xQf)4'qr^Sv˚;ȶNkc1/`UFpv֎kGK\WʃI?^lcS tzrQv帕vt˥Veݺm<ڌ$zJ'ޝ<ʿ/6S&B{ثs=Nj[lӽnTw㺺SDf뎒ć^:Hb '׋,-rػt'{ީ$[r3ߓl-KK(-/Q(LbUe*͍KWVO_;W$Πy=^~~dk-1 ;>ySѿ=~Qړ|ߓ(M>A*la~G:Lxtj\ۏQ䋣0Q9+B[-.>Q4E:C"NCAVţ3_G|6V'1M,o0,hnA2BUj%etr>s6G}s3%@J@[0-W͑IoONzt`śL09C!鈴7lHB11Z{zHSYx]ۈKY4ډDCH́ї8* C.&仕JcJWVW7A}s0(d4#f V/WgC3!z dmCjݠT󋬟=Fes6Q)Fgz5#&#G6ND¶̔SN|\cQcs29N[QxH'rdO8:,|9G|BH9E*G8q`J/R3DG9~ܲ>Z9LA^g #;'6YVrY_` "LɨOM;иO?s [|鏵5(] r{Ew!S W+ j9+75\<\YAuj ZmHC@`qa nF- z|PТeK &S46fBf!j#݌=*tܨei5^ȕPxقjM*-W%m .ajDVY xŸI@4nVym6^>8im0uD?gRΑ8QΑD5kxp]z Ik9Fs$}.s$=]ܤg=CnWk"Lz[+h>>-2d%lhdl"dFRF'|0)?5z(EWE¨?cu Ej/S:-=ҷ r#Gt|v<uoǵCB,٘oxR` ?2.RVʜ+~#˩oy"bKListz鶴x)QNeIozupg^=p$!T @,~[)5]vq9eQRec5Uӊ@E`w׏(ڰ^ AviOQ7,u6ӷoP-{60FvjfsϷUo7ϋWm ~`7"c,9Fr~`nߎQuJ>?]xVƍ}{A,dz_tIMQ}@7c'Q Gɒ[c6akw6A%/h5<]<7Ss+oGflxd׫VC'Q8ӽ!մV~-w O}joF}OȊ]߷v?bmF.c@2G.=?G:Lj)tT:'豦_r Yՠ;zDF[t7"MZIEBQٜ4ª"YْE#E\P'&4Q&y2bA#6'TMPv|O~.cmzL盬^1kO1'}Rd,'&aq*NzS@[I%k^uGQ.~E&ǎ6 PSp%5fMEY4dI҈e-lzFE2Q6B 9̥n唣`XԐԭiGlh¶dJ&kG60ЙLܘb*Lw~!":us䤶}QE>1%'=EQb\2&A:}c6B 86z M'qhP[HFf$pv /c5@doX#0YC?{@Έҍ+Wgծ _Մ:J"u5s|VNl:*pH[m y 'I9˜S%Jڷ0=?Lu9Cz/O)z'ΐv}P/_|~KNqD׆޽hQ&t3vS?y0:^u{wu.93 \k1fKယ׳FFiZTcw{ڜױFs|SX%JnU#^B^ {P_]ٮʨM|OAnL*kq*Q7(J@ԨaS)6ڛLPdmvsMKQd\9<8kUSj2*BSJ]ߏz8HIAD={Sl=1 )+t(ӬhFM;"qbѥXo8=#YR/+M?O__K+l 4UInьuoq k=mw.K~ƼU{\InٸMkҧZ`ɋ 4K6PTy J:~_rݥ}`Af)|+2'{0}nO[~s}y}iE ﭞã %[]-ىR狚/ڵE{ig?wҶ4Lo~/n ͋_Ow]PSCNaN;A֭G`'׻Sv4_kK-[ӯ~Fg}仙~z__tGYI2dX_pao,s|Β_'悴!-_z Bf@2q0.cN@'2 ٨2!E:]<7fqߪQmwت(J}k[K[^V0]ݵ.o7lݪV^?7|3U%R@~uz]}Iʋ@uq'qDt,A߯}^۳usGM`^8s>|F:LRh3'S0@~r2 M%m=VrΘc w0+W2=x& Q9o?iNаس2sLgin8^T$0},3z6zHJKkrb[W/+9&]-:Wӝ30!~ç&r;Ը@ن&7BUgV Ok;3 pܨ+Noic-P|Wm&Dh@/=U{VhuM_fo˞v̒M~unoAcAߊ8T@ե_Z݆R,fs̉id[!Q]ʙa|RNrz8('H>LB yCxƛsdzHAGF8x!07fޔ͍ܪ|L=-%HAiJ?qh"́Sa5 l;j"{WX$_/JzH8w9L۴jl c80GsTU$(a~8;=Xx$E[kZ,O+3[鞜!.[Q}sf;hlSMmZZ1Ӕx!޹lμv4]r+]|[bq'q䱃g+'apY/@}`mqmtCY{9-q1j Os=i9MirN3ڪ8JponΗ#?ۙr&3[fߙ$0Ps[\GXXs\|p9 5m:@%hY O){~> rks;g7h[ ;F(+W+/^ؗ$&KG5buG:M5\vުk؊d9ru܊^&?G?Hӷl3uCȝD>ڵk=A/ .XߵEsЮdl.6uČn~rxWAgNVH˃O:e#'dJw!i)F`k:;ѹXϞQ}(;mE~tweoa.o})ߐs?Omv|#WUU壭_<25!e}^z@YtQN2Ͱ~C!UЗ1IQYF#WtZi,j7$S46`(KT hM.萛|/WTݐ! 7|~/nP"B J{j{1 rDV'ڼжD~HoYd۞8al=}r| G":f >aECx"P~葊46J(slĹA76eh+2 go1HwQ)*c G JSO*M mV#_kMNK?Hli,Rߧ_kW58p6]e[t#Fn$@;}~ED"#8h,bND4='g8 *2dD#{&gɹ{iU߿n\#Gpa]p3ӯԎ@[7 nshS?3I[^߾E:2L_~uYpLݦFGϞ9y5i〃s(e{.s=}ΝH8_4 qe\ȓ82we;ۿ*R9JYbJqXe_&l#Ē饏8N. '{e&l ! v`4.|m `<v\@yJSVG|i:uN=8]ָa"L8yK&HX|1>!=+?s ٖg-/Z\[aS{BOl(MusV[N S[͠bnaOZ/Ti-!z3.1밹ЎUYA1̹RR(زK~Ҕ́Ebg,|>R^;u9gMVKe*HgI=r${qIw6=R?lLjX,GK}1r~<{Y+j"q$R$)"IG~5;DlMįDя?Lߧlk΢7үE_}!}E+\=^HwmϽnz[/T9/gI=}{7F\N ,Vj.wq:`֥4lV5^7m%dw`@9qI['?ԯҏ^׷nׯbN9s'_#$yh'3ZGQs$E䷻A]Y7y&M+ڟK`Q+y1;bV,_tڰa޿j_E`;tQt:u׹^ڵ6ϑv^~4Îyn]=t CWv||.ʥ$ܽ{qNmBǠc/tWAhWzE^zkMi3q>׿ufCzarlތd؇,8F~5epl:~0IeIʃaGډC=4rVc C9dJ5G/D`UJ cm6_|96۱s+ؖO۱eU,*Y,71t[xfRq:sLC+ fów@--)yF##dyψz/3 t_~ڈz+>ka^vD9J,K3j!4Nx:G}a%ZPl b{Z#fm܂"h`!Ń05({;zls.YR$4E>jJePh;.\Ha:sv6izG"p-'iR۝&}Ω=[RvgO Y%׵nj<6u֑cVfH@z& Ȯ@!. ~iVI_Ahój[{9}6&z(MD]+XͶ46̲\|7vy۠y-f #w -lȂeηk;#C7VeD4mLw!g4[hf#%{l{|Ú Ƕ$Ѡps$ l9F.+:9#1DǶCu9qG&{0!,iS=յd-}_tR:}1Qۯ/ߦ{s\ko] (7jRf(h+ Ad((aUugAwi{چF;ݸy߶|8u'Obʮay7^\1^>OsJ OY9ݿEz~Cwr4X5.(5_Nw<Ν9-`Im|q?& Ľ8(عNǜ9⎖39oɩLC:/-h.Z)9L,'q$弜(p';sOuq:0{?ΥD!'eoh~ox汰o`aBIwSY'8=v=WĥtƵ4(&qXoDκ:ia3YQ%pq'!Y%!GroIR[#r}Q\>ug5jRw,ȇ lcƔ۟]{XKhH_r Yȓ'@ܰɨ;:aT m˭ohg`8V`iL(3Q!'0(AKr}D&DD6>]K9?_9FzA&B~9kvڬX+؏c%cyMuk svj:SFݿЋiTp|xa7ߦq.=z4kl`ϼ(m5(1'N9O1ƣNr% Sr<1ն^iUcہZ"9^X[Itm3n*Ztެ^Gw.Z-g׵+"q'G>E(ltb6B';~{)M랧v33v[\\N _ƹ)m!.ӊ.y~sjj-=-1{ М90>V>f//Ůټ& ^Xo5m]uv6p",_ضq ʹڭU]~aܷ%n!9:<u6 Quw+___um.^رU]yXRנŋo|0#lw@d3,iir"пavRwn8L~esT\wmD… *=7oGk3[rw#HvîQa];ᡬ/˘O|נ:N>mѸ;Vk/Vuwޮms+uw*K;Vmyj<nKV(~WN[mnn)qPoACg-sp/af(2veqTv̿ߦ~Б Ջ-%};WmAđ+Z( T:)`h 5wxR_AgA!~5Dfτ)Qk42|DF{%#:.Ksd `\ߏꞝr7M_g r]U_u(]WewN]oxڤ!/P <ÿ{=2)us&Ξ˯| ]ztZk,^YYNSw剛W|~nƞ;O/9Co{n6Q֓PݠiOA,.ϧ$씉:j2_1ks]'EHQel, lU*Ҡ0FU]q4x"+5(\jɆ*"̧gdAwG!C+j@hUȋPB}*74S,3Fy1U>,En82%e+N{[~OZ >[$ wi9 GxFhKk^2xȼ"<'x'X~yUhk<{)TH{"y75N4+ƛnF* OʛW/"̕Ozݺ~;ns|^6[ٔj;)N%w#m QȘjFkl:@R ަyU IrT 7=IrGfÇzCTp?w#-MБ՛sXR/5TxSWm:0S=F(?swnkit :uaMsʺPA~`r"K#: fǰK R&5s1z햨mZodaٱZ3{[BYf ’x d_o* h\HHLd11G[?4||!L<>?J1<99m;Q'vEqdwaYϦc%@c^&O1y?c:$%غpoă2e5{,+Ʀ"(XRʳå b}D1ŌM!2QY^l7wU'uL1tN:W^MϽt99klԍk;[F\CCdپekLQ2#$2z/LFl3 y 5*&cTِЇTAacl!߅\na}5z+K!.4=[P2K͚5M@GFNŢI!dI5(Jfz]іވ&S(;3DUdjeٙ]BoWm۲?`xx qvWne.˃ի7nq6Ɨ E<Iyc@'/<r\U2(1 Yڈn;tcZ}(tJ% .HsK]zH=3^nfĀw{KtzuWt}I:wD,1FNkԥ"cV7^L:_٥wIuogthB /]覊G![>X'},OϬN{7փ(_/ZbE[ibZ9Sln`i1#3E܅~{uEw>|JG} {]&G>x@vuPKjb{ 0GXڏ4.HM _"ZfEL7 ܐ%jl"E K?~>?dwU!;60Pl=yěA஛3in~I7"܋T5wx‹$ޡNSy2Iҏ}*gXɞz[ w;L-yF%Re<>a`xVTFX&Jg%4sP ?"" <t%M]^ZI#Ǐ|tg- r:L- z>;wF5I Çn|V.P-hk+2ѿV $2h{*huh%^hX\H_FM~*=P;Q_n-xNu,=2yN]Sqƨ6U!'@IDATeeTl!h3p-l(Ol'JcO[ăBAYh.]7 /MsPP$|  y6]W}8DOz߫[i_#4BfҬTmgIm[ ꔬұւf&"ꏹloESݓBBDZ*N/l5LC>rW!"߮%]Nq4n !e} YP]e #ؕYrF<$'fYҞC95xIj?y2ֳ Lklü90$K ̻4k>D^К?0FPbG{nјzhBk5NH{1e;^[bGxtkҏ=q]l`Rs6}M޾w|/ݾ5#P۪vׄk7p MM4z-bު+zʶ%޹$MLq;ݽ3nNɳ=y=m/x܅KV%V4&9BY n_l: DsnS[w߹ͬyX^Y% FʋϝLqH:s\:sf %jS-eOlk1C</ F_c7(^0/ϓ pR/T$`5A^6b.%!o6͹Tص[1S^ey^yT yPX׳֩C:~ֱ hS7^ڏ[٠_r%CL^x; b'#}7vnO 8 f1XWgV=mm$m~ { U> $I~?O*tئGzrr2§ D} !v^ILM-6iIqvіØeNvw뇑6}w6O{ѫM7.tYo~ez:JY> /Rn2VL]\ehe99}3ސ;J5%-$A½hԃ8^gIt UڪM+kId¼GvG=ofO/Agg0qVqrh:?~")mlsq_x4oX0vC)#1 0ڸ alA86hѐBty:|sFYOTK-^|_ U&Ї7eb$k|hKd}o .YyuH['YQ~;/{ڢA !7ނh85d@4VɫΥ~%}S3@yӘf*`!ݸ9޻*/wf<7 VZ:^YO3e\G|@Racã#Zx)e ^ PqDo&2oOkjS噴)oɓTYHK+,yIȠY׽:ޜՈS] .]cxegEX.N{wNGo]Os7.7p,W::zLqjw܅ Z y$<[i?ۼZ[hjݡJƗ[6<SznR.oNj֕i\b7轢}9,dTk鐵/I臨K(Ci^Uigm(uov6Fukt?vevB^)ʕ+erC[v&y&ϟ?oYmdJ۶R&4 ֠÷mݎ~~]NR?ݾOK>jנ`Iʔ??-V \ } ɨ4nmdi_&wcf۹?fu*/_lkVmBoŧoadpPڠw+{@nn~O (mޖW6Sg[AtTNmE^mfk2Uʍ2~~ z"?@W2ǴEK=*ɜ܉:9B_=mfg?e:iKFpyn䏾8!O 9 *ᣇxPGss6 {-G0M!l3cyMեE!gkTGi7Dc>{2C*a"#lYJye~|Ȳ4Υd7i-vLtt酗Ig d%o&4j؍"M.fmE!R<(VhM|d E!eUyE/oI"?4,9H*ci]Կ1A>"f~S'k\yN!h.Seդ\1lYgt/Dl'oD2OHv 1K'8=yAxDd :>V6+$i}iH!C )y*o3uLJFR'Y{Xb!\7:մ/j*n]ˤ0o}9NpW5/,,YyIW4懎(DgI;T V6H}ހq[!_)&ynFJtY<Kg/=/ϒL^zy"ewU(- "JkUT2OݑwӹO[ZDHko8n<0rYG6p|pxI:.?!kGhEMf| xB<RˡQv`~{_W?‡Ӱ,BB Xcm @в^X 9o UԫlGx&8 g4L֡3yFyEMM<X94yLG 8=~ _uasbCI7ռwvj:zYSSцgE׶u6#ʕ+]æl/zX < 8._KdiE 8?+uI;LxAk;[F.6J?m"І]3w :I*ѿ>]o_y~* o4WXg'^N-y{[n؞v{_ٽDAxBE-7_#'4nA^!p`(i0&\<#*G< %C_pSO ۄvCd~ &? (9?/RZ‹#~2.&yMl23W mqlۨp$'ǎH RtƤyo*6m+o,gk _h1GdSYy&D2gѐ[Q2s6y6Ϟ52Ws OW1my\]YZ؃Cl2mvZ` w yK&h7\("?"tz@ŋ(MTM{Wڡ!Jv;]HuέuPKEߩF`'kfn(UK,%Z WA!-8( )&c!'<Dri*U"V[Pۈ ̤AWe==.#4,¨N2fb6n -Vb &oH?ql<$]ċ'uy] KoU/e *pyƒy4O:>S |L6~>^߄u(o!` EUyWIqXV~[~q\됼K0w0i"@S!JE W>xzqwфZ:N]K 0IW|J(jy)C& -/X_Yy:;1~\jIǘ9@nɞK;B 9.Sїxّ#È;R7$-k=,HH41 T0S)٢I7xy˨8>5WL '22K։.$f2%d(ښޖԾ^밝Z[WRr,KB)lUo(Rʦr x';Lڼ L /K5&0933 388{;7)n+` a^ncv݋{Uj=[+mbnUdm*nǙ@%o7wҍ)y6\Sg{h K렺Db> E 13^0:ܭwӓ4rpqC?W]~JϞ3tJsșs=2p1oǿ D+˒jƷv[p`f ǒ޽q-:ڶNG;~۱O};2(;99SĻvA˫`nI^6ێSgTF7$mX-wͺvSv ?c?6 <K Oﷹ="P^X}mOQ迕k|ɋ=ܟ]6⮳wW ճ~T}vlmy{f=+[iKzl}m%`g~glS]c|s{ړeM"9Z$Fة~>‹+۷oWI O6?lzPh^!z]u{&#c9y<{2{pt6;cm |v&[xZV]B]Ц0l蟬X, ڸ3eF4c͖ ^@('e˓˓ rюSxs`W96Oxmy7]b+7;;8O\}YQ}y5o0a/W4&ZaEI%exy x4O`Id K2(imT-]hɫ/Ln!漨VQ4Uaܚm@Jrl#ašܮ FUɬ)3xOaXCPSjR:y^.VzHeQX@Sucn]ΜrBUpy Z]jk+WTɕj AI>+_y[l8G m&=cuˏvXcaMC::SvD6g %k}uK7܍xzs[^!䥗.I%/>y# }_3y"JZe1z)q3~ƆVk)yMa@/(Psg8pjL:s^#{M5t.6O;AE[Vae2h- )1Xܳd`4(HOʩ+ I1#Yւ#r|-dn'AC- px}g CC!2㶆><;MԿ0|@҈ufv&Ͼ#/{Z[L^Z-mt|5BmuTxԱ:yvvQ㧼iuaPO2HR^~׌ɓIH'I~Զ Y+8xq1oaAMTH5qFx/&hKxϸaUW ҍg<E0.chOz5=t&Y^^~V.&u4{Jm=G{|NW6Ҏmǃ,jc`;mv;w].ۂm۩k-۾&''o{0n6hfڶv=ҝuN&;Yxj^y&v<m&ɟICN(˽h+w">Xz: ,e[Aevjrvv0ZtP#>؂Gur7lӖYy%-tFn蛩o'nY{ yxv-տ_{{?]oRg.N/uLOu+l׍RvGN&?ϙd؉\q7{^%98#i{JEmΝ;g0Ǎ,tS`roGݖYX6&ŗ愴5/A? 4>&/D"u Ulfq\9Ǐ1双9j)tFOtC icb^nՑU r->.7o)y㱑_lX^)e߄28WDB@<+o ؗc:c٨ -m]ɫ7)6aa@ b` J:mWL Ăh(l%A0Rff X 5Fzq nm5;u2LE˽nQ\JV6ӂ*1ǔ@NZ"eolc5!Yk!nQOciCF9QdϼA'qϷoZ\@c3n(`B]7'5z#/ҡMTYW2WePgJR颼эڼ?~׿ c u~rXqNKk$NHǭufx%V>B w3B+8[xWt K37my޻55udf|Glěhr^>\l[:g#L_hr%yd>ճ4/]~&FwͅU\I?vӫҙIfO_7StD&=1^2`l]~o 1ZC^E90U ~x0o&͢"+.џ++벵o|6k?+. K1$-.Zce>&ѸqK7M(s6@=phƵ#+&eߣmbiY4DW&jN=cۙ'ܾE+Fs=IGQ)tiQF.swa^TYOou=^hU?vxzsiBk!&'Ξ}}Ttભuڃ?;C#-Kͬ{Ts>sԷJG7>ZHwO^d3z}5-iK0{+T;ոt}竝6isovLڰ:-PƽYKWْw7e:[vuhO7K^uDwɞb rݎ'Vں2Q_f'ɎV&FBv-$;_̘ꫯVmiOUE9R y,W{otE{yoGGtۍ6ul0s@N?H|:i>A.܇qb6jˊm+euז)]NW{vݐ/hNlI6OɳY䕴nm:K@:p/\2SOg^xo|ÜLm$K}0i2HD! tzb"].dҦ:OjKuύgXQ%R =33y-Cư`(b"^P[봑bgU:o=֯eqD3mZj7eꤵ6ڦbUI*ۄ2^sҐQNz;&x,fA.+%ӽ̲he)UgnW<\NPq@Os;k鬎P; hۘj j>Nϴ\+cUue.eC/g>鴢9Kpc\' !^FI4<3,P`91|Z{-LS]1w6 ygIK;G|M\&r6Vt0׫C'K|c" ǂ!sʹ6s59u̼-ֱ ,8ikXϥQ>9*4`IL+a]>9> -P[g^POh!hB3GCG)M\`aimje!*_EܖIc:V 5xZ׋lAZaD}c?͛}ȁT&xL#\$˚zn7o8cPXԊZ-uQ1%5ak~f00w9{w.LN|UPX{~gn` z˰[~a@Yԩ e~PW~)gў^zGw>799WL a2Ja7@T<(pTr+J`}cvڴ ˾|TKf]ە]%k5`NF'/K| %vX%yW^O3,躗cn׵]K73ߛ|7m$ 췝;?9lvc?ݾ1dRWCn'Z+m6~wO5جg\#k+禗|,NWٸyW^ oÂrv:v:0bxl^#~Н9h]v~7a t< 0c ( .!m،N'ҩFWV2 0) q&~zg3s;7~DL=<{̲+FQyxƭMQm gFKC]ԡE(dnfZGtL7n]hrItotv\xכxfnUVH6kF[ӟ=frQC|"/de\HĢtSR-eZZjIٞ^CG`M+ĽQ%hEcEbpDZ2CGvWT; h6Uf3vBW,cTևKo_g_@|eIhF#j(es_X.gH;L/orlL\GJ@4]8W?7/yjT -<iPa< $t(5>֏ ;7ӹ,=XOSҲឹ#6̦; ),yE`s y&z3ꡎ/%rHFn.Tq:vrƻrxGsp~Nmv@$C!=^|@C'^$p\GXc6A/4_2Ѧ 1$R` DI_9ⷤ<LIb?5:A-2q_ 5i$V;%oO(ddDkC,_G%:] $I*Yy^cܓ$G7RkP`VWOL\447ͩG 50fXt^7&юu(L[au9:{M%4qv4 ,ҕW%Qq;BalTtrjݘ:6?Kr37NOoei;zYWg;2.6$L.a8 O&Xݫ@I뚋\b 'Zw"h:zߣJ (ӋTW/ςOVuX`,f5mNrBH?m}B̈́6vk~[WўnzOڦNFwGC-暜W&{%) 0{'[i^|ɰ^[VtnEAݱ^ߟl\o}k`@N-ꫯɞ.28HT,%wLG$zG{oJʕvj|&/^hstFKoeKuȆ#uwӷnvu-[)]S~/zguW?dz:Rڽ^_~v_Ѷib~?S?ecd/Uy,˖<;G~٦gI6F>ߩ;NAKYa4L6ڎW4uWG-ȁ 82|8]W3OjNy=ȳVkAm 6~V \rFE'DNlqfaΜ@I L+򂵖Lkkڼ1;\UjnNI<͋oJpOI- lFN;N9|׃r\Ezwvy3xrER6h3q)Z *R1MsF]+Ujs4U.zFޭ)wnu`rw? .j\u+e,NYlp*q͛s-XRRTB>=JhK 钧KβCcnȱ%#iD.I>~?bظߧo~Mmf?T諲yM3<]/BWT,<&7G/OY&?> 垠F ʼnz8̙utX5lG:%O 7Rl CdpY٪0(ID5y"&Y3>=.>wI&/sڸ[=gm}Z:`QPc VI]Bˣ%amzmo@._Ig͇Q5+dz^~i/I,Q-bzG>K~ˢ #lz(w r7y>_ϥ.,b#/ yxVu#fAvt$OY*eռO?WtW\Mx7M׫l6tmd^톻]v-7U>Q@'d_GO eBmYeֈE7,]ou\sWY5+->=%%wE&DÍToI%-D6 !hPs[Nnd J֭Gr"bmƶsOkM??ΝQ|3]}oZ>YR2ȯyk(b"|K;xrl@Mg/GeG/ 1`tMʻԼ6C&ϼK#}$ͣeX`E8ͳ }'xenQ:<:nGs qDB6.N2UQ+T:cY5-A:=D/ ϝ99Po\}ԟ>@IHh ^u=xmā1w{&?Si۱^&4&Rxpz\ LbU7$| }QEH{5*@&-, 8Ox>̌sr<q2f1-,҈fT*!y^_o+\(2sJD|!\{]Yo|Z0aa f?Gӯ2^siAhxl@ލ<煱+ĐƠaX+ƞ ڃ7#=,;J/,y_%,9wz#y\&K*/W ̕hݛH8uǔB/Җy ]xN>/& Y(fin&-^:ŚAs;Lw K.+|9E+f;%=;[IozʘGj͑xR #OGt!pӟ<胛jub'TlF4CN#dƙ v\&cI1 AѴ ϵSb8~洀+ 49tl6ws4D\jQny.cG5>䜼F]K3`m9+䱓Y+,yQ~fhhMWATwiw7FRVl>涣iVǞarIGk(,̃ϞLgysHp%ΐ%9>6vthV2'vqxFr~t1+,bs@IcnR9ć2u\ڲ(Ò>H<~7xl1.[68%$}P&WxHzL ;[G7˳bvV$FoHI2,^*aC _S noS XR^`xܩKyHǢ8nk]`&5ϒC|s\#i $A_ ^%Y;xY G, @x9AmZgPRv;N&9H_ojc&Wx.?\ I|WJF<@Aۿۦ ~dIn=`nc +BVpdc&ѓw񜰿2L|Nap||^z2F^mz/]L-/yۭ߯z?m{JMԡSv,˗Kzzɻx[~)q_7{m$ƗL̑zk?¨7ҌnjxOW;#JSߋ*a1͆>ק-&  ţ:q%,ɫ墼Z,Jq2@x" $@s Ic3l?YIVҵp;ai OG~ƽXiTtlrgXޡ!%9J@Ay/2ofm-~tRGQ?Ύ3xTȣFYs0 `PN:k5]^Z'I&E癵Ky9 Xlj9=#8E{Hs:7.&Gޝ<լV=<|{j{EeQO[,()zΆZ+ ?!*X^4tA֕[ۘ%x1~Xڵ;ZKw%dWPt:vHzi Zh=9j /S6u HsSٚA.|}]iDɚ_T,D ܷ&K;/X"ñѼxLGq/`y_Jo|$wƅ7BkP=[83nr\8iMSzlF^ǻJ٬l۳ޖnmG/mЏS~ $d߾a";ɅMJd gv^{nY z?/m,,ǟ6G{m7; Ǹ6׾=y?Uow,ߴJKd/ m)Qn/ݮ+hfË/Z]*tm2xOV򡞠!oGi`?Խ,S%ߠNAI߯|' ?كǷWӃK'}vC?"Wƍ֤RƜ^W7D H ZwQW ZcK_Rz;2m #0`,q8D>`P~?> m`nٍk JL_"Š+X!cnApC!jax1y1I^'S:.Fc37M#ay|M;LM0Xy\4:J6kN^XӱnhXVN䇁% s[q1wJk O<0ül6:-l JzB ͣ6&svQZ\r\ >Oִ,Y;!K6(4LASHO*R;Io滄/*7=7If$.-8<ߣwNt1p@AN4x")?XIJ)yλ5==רsB8XrBau#X{O^oM+u2FV#`-gc9ڴ?}{JwBNQ<њz ttYy9@/y)hw8.[c`;]bhZJ+#J*b]c^gs4oamMޢ@,GiV~ _ip|) n2)N 0ڬFk^u` zLN8I%[W6ja/ZH!Cya= zS+s,mԉ5=ڼ35޹&o J0c7ia4| 'WMX/sTϠXcĥHe;r֟0eJUu:P긷XvVpwvݳ2SUEȨq'r&T)o*q&UkچXT4&亄T<.X܉5ΡQf <185Ruؙ^VsֱfxU5OmWSN^2Þ'N OGG>tٴqn^^ӌ^xոX=0T.y笝BoD~f2(hF \L?P_H??>o7h|7S~tc1'ny ȣ5⪺{Ay ;ٌCctew1KZ#L|/ݾ*xt,˓v 76gf1QO"S eE5)#*)xMj/U[N]=8^H&w|GuzNE#K6#Ϯ+imw~Z.S.̳d`IBͩ  ~j`y͚aX/3үZ_6-/c oo/vTN'Nuө_ Xٱ@9l晏1'lqvSAetjG[[z^yگVDV70L0]xt0|& @^vשwq@;v,P>'ۑewJ~n|;I_h@bPpd7 ~HoKuQ^&K0a[hݼyMڷhc7K{,w=l0YzݶWSM%~eٙo*x^@!|a\L'5C/<(@0FwSҶg6S E;W)wT8g^7֞FȚ,3V6t,~YؚIm auI% Q`eq,G 3IrT$"$rSvI}™te@K+H(Ng^X8q:CPmYtb3hRyKCZpli#XDxK:$+KUSq\-s:$O}-tiY(=>۽ mͩB0xu@:\Yq#e [JKQJR{۳L[q?8XQ䋂u^hRp3oQ(l2o|A'Aڏt[7޷ZD˖4q}kXW?p^{ĤM 9s%8(`龬Fݽ{7ݓ%ōGitdpt¥4! !zaCˮ"otelxmiƫn+siw(G#lw`peUYf }M /ISScܗO4 =-TP[RhoqfѸuokorȔ6HH ;B`4&Q9T$uC:Ͳ,aQҬ\^m_W/ñqd9U ^?)uDʧkKvT1SqF _+X5I/$ʚdӍH뒞tD*xz l44>B 7X@4@#K Ў JA0Vx:0qzo[h(-\6O\f\R_'"up<>/AXVH&K o"Bnx["eD⒁z1ܭh-q`EWnVFʊpC *5RHβ7$v{4>=#}^?0|IcV{Kzj 5P}n fQ|imqkޘl8^X8qܩϾM{o޸-˸˩Oipd,J*FhKb_%+]G*hN7W~Pd9a)D9IK<XcdY5;wBG}iRj.^8X%+V?/'// *\`_ERۘק$+))0sò/v:6ޣ{֔P{9Fm-N( $ژ-{mB deI&o[Z3w]c|/X^(^`Zցz^^o򿧐_uGa=B~<Ӵ7 r崢{\5ݡۿ#,hiiV&]5?:u~"C+$M*(6Ikxьv?=~<ǥVcwޯzffz0կ~/R32;hj,0 ȳР 6mYq5[y;L6sIOLV{@܃5h(]3)g ?{\>&Iurqp:ɵۯ_y?my 立Ejzy?c|7}~\Q&nxp<\ƲGAeM~Q6Ƴfߦndqx$n#9K689^n怣^m}Tv Ͼ.eiUmpࡅe&T'!V&h1' #,ڰXÅ9jd Ɛ@Du'ʔU'-8L{fN UL"H]JNN;Kf)#zħO#ޑ)LN<'pb:0UfՋBP:4%IMxR ЅuW&]3`J_\>xo$H,d6raG\c LSjU xީP;z>S"2oIMǻNRU\qސĊ_\0J''zGEC6Z|%o8mT 5-{>򑵔Ȇ@--TzMOȋwg)-@܈(Y,( týN?Lϟ6PB~ou24(0`e- ,FFXLw*L@l6 `kpBQk3,[U Hz{Wӵw;b@~@id|Ja5~kL\W\7 *&{KvX{$3%-m:|W . 0-2gd QvAnC$CGU&zeJ:ROtm(u]X풹ʥ3Wp:v 'Ur ǻtD4 kV7 nKW}a)lAy34Y4e++k~UxWC:m}ɺؗiU@{ѣ㲦u\Gs$a,9n`rGW@Y{}V2oHG") 1$#Lnz>_<;~SщQ&g Yƺ%ZѪwdzᒁ(<͇'xBy?PzAކ}E_{ iWJU.󠵂-E4YQ2 Uą+jf))poYٍi4U(ZhUZN`ZDzi8gR"s=^/&*VWZibqE;ͨZ,1ch7=ZNb#$g˯\ui"ʲ^`f آ/kl`R~ G)ē5~ãUYu @:kA􂅯v̳҅'k8v6W{WoeK T|78ψ^'4>; MwUTLS5wϵͼCQ2hLEqF¬={_=ii^IgϳF8hD& <,Qn!W%Y၆Sd/)g[i4=9hMY3,- &3k9N ϚaX SEY+ö¼`I։_A%?) B_^-ПF-9ZМ=F<ۼ$^epnv0/ʒآ,.,_f:a _hf4!~y'GGaj45\GzoNTz]9]0SFIթ&gzuip`Y{$wIjrP 4{]u~z/}w/Ӟ/œ)Y[3y-Gk_kk9i+W4=M k*}Νfd\^NO˺${sQ&^bͧ/Wa.`>O\|꼉 C;W؛SV!.|#os5iFOV~?n&ӓ^ UfNߌt>ϟO)@&/t#7 s-n?P$$ek姬߮c2Ȁ < OfeRNKB~YRcC,6.$Ԧwh#c6eB2Xt:f-)E1}lL$^&O4qxe X[cFl`865),Q,@%7hI-(VQBn  %,Vj/G"d@< ][y~' LJ{5(Ïyx40ep^ile/ a_,s ].}G=`\PL r0ICd袬*LBȡmX{9eRɯ1GF\W).6"ߝqweq3DzEPgJQezDqL4!>qpUf@ LglA၅'{S @h:VP%  e!nQQSgYish}t=Jk:{%5 c:qlbB@1bxl\Fڨ&LJYeˀۼ: ?~^`$Y\S20g׺'5@N@&}-2N`WAq[gٔ!/?$FWlEpt;T϶c-yn:#Q8žf,XV:JguZ /$ke0GrwDw~OUֳTȳ~/:ﻩĒ,hq5}2IڟiKxӵdFBIǽW}({/wXu0 p%?b iqll.ʑ`0P;ESǧ7o0YA8uw(~Ǥӎ0]ІlnƷ[/p=Y >4Rԥn:oO0 !ǡOe\o~X1߇3a1/@dyf_qC'NE.2v6q7rw+Vtzzh17q ]uPU0S>ʂlmO. _&S:Jnr\V3<ѰШv6t$u86Cю+< 0153u@ȇ.hf8=XP#TXr@a{x"4`cP}%V^FE`d2` Ħ:F)ֱ8:TV`B Th:+ r+R61TTJ.}U(Չ b~CQ ` o\]6t]PAxD~rUPWr"]9\Z&< TQut)$WIߣܵ@Q'Wy F`@EW 0H2(G7!@3=E'[9Xc}`V"F.WTCfPknpc~+KL#qMrz!u9uºª(dCpzMQg) b&48MpF n]7ctoGܿ"D%_njg3MַMW޹ k2MNj7Kz&r\ ]6(&taC2d h=x$KɲM!ft^u,/k԰Rytڛi8-јW߻-6 5hSʠTtԔ-;ϴhTj|Lhc?k7~07* P$ .%~w Ǜ>n-ـBoVBjf-uDGc;XRHvcc~[xp?~~hm}eSz [Z[K`_\"S}E9үLk$GZt?#gVZt=$`sg>. {7j^JS/S/dyvuSΏ'\Ye2܏^<`<>֕xRk\noAkYU7yR[\WIhTx펉)2Q@R`!-aH W60OcyTp)r)!XFm%TBw<(-m<06 !hoeyeSԿ EkQN)_uˢݟwECS?}f2]X 7kMe)o /]x)0&Wc!HcQH4(>Yc q_432' ~ +NNt;on߸cu`n`$&G/C +ħ;~T%oy/cꉡ_s?>>/G^eIx~6-i0{z}{&Ӻj#g҅/ ,)˒67. 64V}YR`y=X/{TER(2_\g1uIcȝҵk* ˫zNs5%_<ΜּGvX'9W HKd(*l#)iW"5X~;Y;(f ?ϙ;c~5@5oZCYQֽ7puy1޼%U9o,v,c}̩g{zM?ٽkE܊U|+>w/>^<=s NyvkЉ yߪ>ժNU缮WJ;F@O?ee^$@G:Wo}[61&Czy,h"=",?4y}wX?Z0nYF]rM]z:t~qs#_;;;{(zz.umLGy0ɦ lke$OB [,r ,SpDZ'HEgAmXP|9 kkk%-:jlZ̞Ƕa`rcK;l&NȂ믞rc #INOS?OSpeXdsqF'F,QPc4: LzّGn LM'Ru-XȒ *bXԕˀI+w1mKlۖx|*/w^GN<$)K#Kz#!9Ь*,<+KB5$G^,d&"w=Od WҮ,&+>`GX!eJ/[w޲#.zôe˫fjr,xiQhyhYL.St9FO/@z5 떟xS&6+p{eW9R`c̺#x _Jz Іn8mmdC7Wr&jnԵ1އs?죶x-M `w7 oW8YiD?luix] iXjad/Rܛwk$cg]Y[/8軩ըj{*JBD9+=+_\`o!= xx׾bVNxbl(5L'NѱQ.D_\V-!OR[4,}cK麎^xW@Y&O}f;CVu/ֻ;@H8ݼ`3.X@l]"ጋAV朋p-D'yl-Ԑ@FΖo)vv4/KY3֘7Y3ҙ49)K=zbZXa]M<>h򒵁pqxЀx 떚_g/Œ6 Kk֟9l,YmFrceq!ݽy=ݟ'`-]:MF|Ze=ضeC~׎\ik{MƓf~yۥ4ʯi[ZՇ<Ҟ읖׵wݞV.:#90N>޽KЮVV&C9`!`2h">܈H GIyvH_N+B$Vuu$u{&דJ1FS7_?s~~as=P*5^;i:v{,rۊ=.rY#%V恢~*nh-2~-[P+teyCi4/'-IY^Nc ey堭A-M_͊gmALX[ţ0Q4guc@!kHE/"_'$pMT2,@x` 6^MM5ƻt]MzG tC??ymlzd a=E;=W.?O l >Y;wzLлg۲0yG ^NRS,N%4$z*Ũ$#NƸY_ܐը{{{ `ɳKR t4WB7Q^n^בŇ9Ȑ{}E'Xx񵙷ut:D?P.uf'uԻ^$Sa#פFZeIe4xyPob /`> ɵ9Vz^7̀5Ò9VZ,KZ󱖅Ў}Я蒁$ Uzbj#200r`R/Ql z"ORF_B5`籎Hq?F\E`Ջ'ǾYN7nIOj~;$%!`2#JCɵ{>ʎ@XZ3lcMZGs?u Ӷ\%J*<͋;/5q|P]R[?\zh殺AUȩ15Ћ(.=bS{ϋqN4hNHPFI]Ծ,H[3( ePb =J'6nLo 5f𲉳Z6&8P04[ibg<N -Z`Ֆj[}r]}lYuY(,)+<4T€vfh;\NLZX>f`I"Mbr;[3/{_4Gu%[׼*6U1S^Uν}eܭSR'%Kk).^fUZtԣ,#xu9<&03AzI~/[hu HTse2t86ut-YfeEW>Bwe#X~wVWM |U^3VqhD]~W~eϺ_^u^Kz}YlݽnvԀI*X|Vz|hhLX0-e7ÿnVfq!`~+qϺ۩iL:r@ay  ڎ>=9"`ĨbbJY(vLrlɪ}w.h+⹮ M^\ :#N>ń8i2WRisNtvTZmP7ͮJC{')6DxTl$:8KT\,Qm`uRQ1hp+G1RBpIX zlQ]K:HAV~RF2uiH'򰑷j(rZAq/_x'xh].-i, ըXmYF3@ ݁}b=BP FH` v lFKb6: $%v[:f-K1e  ̨r^7*S}9M=j$jZKL=7RUm,+MW})Yך:.=ȸ!0%w/bp"fYrCiͤiq_M5uSLԨMcZ2sԵv7 2ֽt}ld yXOǡOǤsE@Bm,Hh& ,ɕ UI]Kh7 ̙fJY(tO7 v~SsZbg~?U>W -^<<# jC鸎慉Gju1`lD/Rz>JKy :8)ov1-$uwfR?Jnyb:~ӀqU3|2%k~d=mp0I9q#ȟ_{W)w{aq Zs?f<:I^h?A'O=^^^'4S/Iܯw=_OW_>Vah:{SyM&l$I: 2c*Epc_mV\Xk'\7toSS I }3.,hZxzv|hLG(iGǀɟ̇Fma)5c` dJ+ki~AIYLB#!}rl `rJGMM>" mڐ1@6z*6љCQ`Bz&*EGGPX#M҃j)fYf~M6E~nOԯEGLX8cf@? G->zJ0"PtT @N7ldoP"g`KeS>}d&/siWY܏4쨼fa0>V>׮\Aɻs_I?/Ɋ%L -SQK"U^#w3wo~+ec`2IOKW9|oIa,nA@T_Y7qc]-anGˎ@^+YR²Kj^N'_8]N~66)+X¦?Gei(H4¤ȏې!E2X6X;/ʪzc-n @0 nM/x"?&jw=95)b&8uI"νhIHJ 4'2oAkQFQ;, hg[D8u(YO +L 2!q.ϧO=?7$OxRU؉QMJQjfˌzCgC ',f o5ScZhwyeH !ݒOzi^ 5ӷЋXMBaYՙ(ו؂ O#J*$NJw8a%%@iwx6U4Kn,P/R.A2 w}IFmy=>ԥTnQ"$,sq Ӎ(UEJ3VSamҗPqFRWd}E/T wo{zbI`AYl/CR`s|X7 k.4/氖#Ue#e ⹶6Wf^ҋ$5 :12G G?_#n+ZZz:a=s <@F\]iIOiG[ݫ'Qv]K_; $&DmuSiv\X#WwV~E|tG]a˫)KG\vu+)p]nh<49OE7O}fW'#.¸G?#(7;uT>PZNywߵAF+Ić?a+(kz< W:sy|GUuT0X}]l"'{Xa/ǀ+p[a[>`nL#n4YX7 `錎\OmNKZrG]Uc>%%`/IDWҋ8Ҍ…thhr>HY~tYi@P2A2 g,,.V"{&I.Np?k YJݛ3n}erIs;p 09#4np]#*Zrў7!H i3fŗȍ?wWC4'`2/Tܽ5­4+Ӭ:y&"`1Xyr7 L՗.I-wM}Z#(_3h5MyQ645>^xRz~c͠2\:k,ZcOL:<4/18>c$P8X %WJꃅUN[XwZ7 % ~%Q]*zIxYpsYϭ:=b{.饒v_}u?:]ć#Hi{YyS/7rf2to?V(O#^fmVǓَa".ONSO4L_]%XXxJh`2&u8(˨&|XdC[}9~wP?\>|?ZQ>eE> E>7S"`Xj ~+e7'ܜM'aqm]z?/ ZG# 7D\]&6K p?>ѦG]yVA.Dy+''dYP> >x cs/:mO:]|YOoo| /!7#x1USל_w17}(tRϗy~搘;Rz1`ӯ@6#0c[df@(6ꗗʤ6`agJV&ϝH4j#(i#hHInJ(ѷA4 6 0Ɇ*<8Eg6!@%V6e0O`DzZ7z<;Gel0VMLu74Mm'w}ItTl^mJI'7>W!e)/( qwV @UK(*=Qr+e_QyMߪZ򶦂q&$⌦/Em`"YvЬ! ^Ώ21oG f倦vKɡ>0:)td{3RY@iZ:qe*-VCN6mWYyd7cR ($@+KlUtkz׆:6%OL䀬J 4)K6YT]0 pg$=pRf%' mX\:;}Y6?OѤ=Umm1< U}WMH#cX[ԒuWo ,yKq_oCv4GxIh{ƑyYv 4z}S=H<}Rp%mW騖fiŽ+lLȳ+lQiʝ7'*L~`](t  L`T[Gԟ[\ I@4* 0C@ȁ1b*SrG 8{;jO}gC<~(#?=tz(r>X㓣Y< `r@I@k6T(~\^Gt)S>(`>S{C t $!n% ;Siih|T xmC>/ja}{$ՇfRɰ.)+vl7VҽۘEUUP!PErsD{a"]njƺ!2FW*Y,d(y5j<1QP5,j*=y!JzOG_S[H],A]G>yBv" }^<֤Z1ZhŽ-裬xd 3@΀x)67dAW/2dm;3gABŸc+p%K.. t{flXX/>y^Wɪ]Vg"x8J[ԝ4ߟߥKLDhClR4{^z=esB/M0?!"Ȁ^{Pttd5*D6\C&d,H*CGQ؜oMKh`&ݿy-6њؙs"Ԁ%9=6Y;J%u7Z  $92QXTQE'=sUѦK-u 7EWt,jZousӆ n0"Ho3~ʮ>py|=s m8I(eO}<.i>TrUYt7o<%Ol*E=CqQk׮^{ʈ=<ɤg^9L|MPo&a6qW^ o@aLɼGy\0/B5&W~uip<͟׿d$zx ,IYGUF.7JX;:f"{(30)+Bl婇;h(uzx?9}|Qt49}3>y:~>`.cHNip|.ܠ'. ȋ }@"/8a?6҃?t &/^heo~ӌ4Q~7ņ4."B2b7Ɣ ν.Wo?2X~O".~뉮|#x\Gs m5 xQLI'+B܂L`eR?!L Prbr܎zHIc69> ح p&4l aA}EQbumVz$ 6|g !,6}F.E`Jjl.TxpnG_+y¹t!m.i{twז5/=| p,yEk7%юnw VlJQlD;jBv#|*Ċz.dr"c1#:BQl dREOpQz>/]8XEjF4HڰdZ`~$8dYCcb3Ӏ^c%۠lmDiA~Q ;=A} 4 .An >ᒦ>#lJ:CH+6bE|" $i+MH5*"eEo{kCrkVu5@ۄ@696:h.4PO.bt$.'c4nX dPsҼ0ޖ'ė_ H߅?OZ\VЏ ~ƕtoԋf 4һd:zʍ76P @M!mX{ XRU4s Y,2H'7,$Qwu;inU n‹Ӆ^MNhßx)Y4rdZ䐱NW|S>atw~'u 2* :}Ĵ&Ê,'1r/֑֎F'I1uq3)FOa0ډ-DՇX*>K$֢> Pɚ y@vu(Yj(MnQRT+j2۸fb|%õ^_T/l*|m֟2++v^`d`6$,)7aՋa驿GmZA'; -bHZWx~4Nl4zidꔆz]aY|KoX!'/۠ERe(H>-kz[fn:8Zh vwQS0|K>͎;cߤZTFn*֤U)o"VNw0Ĭ뾔8?A[0-]Dzi=7AWT%CIUl0ҿm^yV}]P*5XU4VV0;L,2х+rU/QXXcfM/[CWt#hD[Ś­bWR@u^ѿzc4Nzu3^haT.}`&5ί;i^E)烅M?T/Chsq)eǡJ_0Ifn`:y"} Og^8/ǔՙx^n\mcǎ/da dދuIm?W#4ubE06E; ț;<;<ac~&~O/T\eٴ9X' Ӏ%G֎C֜Ϟ$Bۍ'q-6@ՐP+N:9 mEܾ6GMY&@mi^hX%X?f] g V6gEAڔw"}r%1^&֥O1ohMaSs†l%dW}z^@.gMPG%%mkM8aaoG;h!$"6ޛzVW+S.Ky^:]Ͽ}s :S$q,#|[EYs2>벇us43)wN:*>Y>}0I\aW:Gzf<,IZJh:QBz5%*O .(p$ +gЇQ=x.7v/}K_.Rȯ0L(X:h0 d:ϿP2n3`ƍAr 7_; sw!oZ{h+xA;8*!k\(Ne'4A?tE>qqo};n|픷M=\_Oˏp]<>O3O$ʭ As8_L.Crh?ʥ~OcP|2U_|%1BY&clt˼ Fݫ._=_#OOܺu޼O|~//YRuf+@YqV{v|'qihbZuV7u bh7TtG,K.޹f`Ag h…Kŗ_I(,r m49< dD楏@WY;7BHHUG+1M_zD:q|дt11-Ŋ/Ѿ):ub+S7Tt,<;qJ`9]65>\5g@\0*;9^0=zHMjQSݏƒ>h!Ԙ_$+N35&uЈ,IU`mKq肶RոûS_ѦkFoȜYTA]>ǡ3z⬎>op8h괯FmgyZc?ڄTG=Uq/mUgY/n4VyҭS.Pot֎X+̽A#;֠5jM>cNZlhM D)VerC[6991ڗz4.ۛteԺ?T+]Z'|SL'?iH-!qOUgB/[ B0->4>5>)'ʺ͛o]nۓZ_ NsDМ+kZ6Xto u M1noA>eBN@Z-\duGk[/ y=nJk>=N ӯSg 7am5~|)KW(Ll1fI/qEz9 Fyz]k更+j[UY؜gE`U} ttĤܗɺ$k>xiBmI}{|5c~R'RE{%Ģ$ȗd;E+XuXR֨yag@1*WMZ'< L?%׷iњYSYBŤU9<cD\еrui/ =z=pT:`2d~+_gƠd'W塗:(r6IWՆbM: wZ&W,K\(0l;`(0V7nn 323$6 `MPfߪ{#hr7触 <5}F\oE8y8qP~/}r^h_UuK篧9=c 43 !'rƅƏCBBޠ% ȃa]HCMҥKW^=弼o;_E)GķrV@9`a>':1\!/~1^:3ʃOԃ9(-|Q'YeP(]ڡ{<)]CCoxL^:.mկ ֶٲ'e7qJcs˲2)KX+iPGfԦ$)*tܐ#bc[:Rצ68rvnDq,Hf LE5Ʀ+`,YbFk\IYߢ.$x[%8%l.b{bS')2!nX m$ 7տisnC2^w\6.vpO/|e~}xTG?O _ SpMr:q rS~h@Z(wmNte%Qze}EY+g0laBPUDi9N+$FfJǺܴ.Ƨt+VaCXg")\iG9&&'ɳ̲7t%Є M<69OMJ%I Nl,:RJH\,`<~*"'hxxO_~ϼ(y//(]k3ܿNn &0P`biaSba[;,$VG  01`sPv ^kge7æ~9#w/t;vJvZHcڰ@7DvCHGcdN;ʽE%xt^'N MyVF-K,Ps ^+\j b%1s6Ϳߥ#{X|(rpTk,Baf["9L^By<8_ځs?eE,KЈx単^bO$}o5؅!@@bEG@O B)E?Ax R@.n{u歩{ٙTɓ'MI;[k^dK6_|iY}ZVdG۪ \IGJ봼Z< z|nyuL?{eux> _y87NiZe@ rE7K-^FhxyޝvYQ^Y9wXQe67)X_ֻVO݁N=11av8\⸺&)0~&օ -k)ISS"mvZOR^͆:kptKzAN4HIV$,Q 0๔$$)`ha&+mFvK0^6|l+wn,G9k7@Ak߽=Y"}䘆nA1k~hyp2ڰa~'i@^t/~KpC HGy ‰C$q3!ב].玞rN~.vʃ|`I/?i$r~HqY5Nf 7|-i&ljCd6YN`Lm77"k\:"؇AdJȶ6mʼ)VUV&m0pMMۢClPk{Zw,fl1.z2,GMb< >%.+fC:=GB,MV} ' #jY۝hy1Mcnp1yR};o٥uĀ4/٥$?7~ _׿aVlT[q7Љ6 %?&k%vy0@7#N"Z9a}`َqc[gǻ-S uG)mUxQܫaTCv"ʾ$oQnĽ&Ӓ6.2>1&$ąY|9w颬>%kQwe9Iw?q,ɲr3@β5*kQf0`d>߀֚C:Rc&yX0]uYh,0 Я:vV#l<ۗx`(&;Ϧ$eUruUYo]YSٚ~.}ݿo^uZ,jLojnK+8UY Y5]\ Sh XLܱDz郋 k@:GV&;4>tbRqv #]6Yl+\oZEŞ] ӱ}3El*рSAΌV K'zۚSe9o;Lxŏ)ɝVʉ++ʜs?j2he  fP#Or58*XnRL/cEl ؎'8(b1}#2C0 o*VבޝѸ/ʐ }=E#V #p]@a+RNCƯDP!w1k(굽Xv*GWv@8Oq?~Um͡p]Å_b"-]Yf.?HndƙcbzjV5Vh]uB/ t:K /Z'j]ЮEnjiCƚ-mK?S?1YC3[̢cñR-]DZɸUD;hvel U-mr7yAA3,5޾uO7Y%¦%C3jJEW}nX`ޞBC*&v6dXzq$}\%I897y;ό9d3LxWYZ7WHtl7?gNzcfÑ7 68>*VQ<)3ʶ.~[?|qN}XqS/[/ pƕ6ft( *M pW=Uɝm էVC'֮Wi 3 = 3c#_&'AEQBFTRjifnQy~/kiF}N?u?nףmOV&{9i=8x\R9xpxNZä/i]=}Z7+KqOʲ;w,)I/Dn0IZ6L--6s4)ߞc&dqZW0y6"`Vٻ)k{^@Ub]W\) ݭoG$J20=Kt0 >6p/`SP_=ITLz^Wo7rߋeIrŴ-M1O=Vby""b|~IҮ\·Sǥ,}:\x@<x9i~,4J _~9PfYҲq̄??sy=8oKN۳Rƒbyz2<5׳àWF(Ӳ422x]_z0yHmzP}6d!(,-5&´,MbU6iHG_6|9KI65mbjr !&U64:U 0}qϦ(08 lEQuެЎc:xѱq&M'o zz<d!uEugn [au[d.<>pU%\ZKƻ:LrW]֟04<~K.|P%_*PYLքV#ʮP ѤƝYIS[b-EfݛIvjёn"A)%k?5liCp OR>:3 +ZxRv٭hOI9uᵩ*LW߽%Km[aff.ܼ5r( u3gN3&]Q  4`qYxF"ہq4[zr*,ү@ё7P";B=h_Ƽ{t$JD-``urE`\(MZ@"冎e]G\wv@QL$(zuu{ B@Q'uojjYՑxݹs/ eْ^c_ϙ\/M^l `/]"{6ժ"nb Ŋ&u H~UX49'0⻵sPcX({dnǎy\]XcaRf;SdC׆;}7RB+őDI\NxKj_c6Ww5q,F!a -kғP+˚cf]rULk G3G[CA9~6/=Ԙq;@W(ftDE㟍,J }w/.. xܱ]tʜkhZͬHY%@/;:vYV\p|CsU@/~׾k&շ(~]YIVu|'$<<ԧ~ QָFFrݐeB$57ə4 c1ȏ6Hݮ~eV8٢~ٯ#Tj㹱Uy"(w++qp/{pDZR|1M`fY͕5歝vGYcT? ._]8^ oߚHGmvQʹY/'~бYG 0Z_Q=j܃>ZQ@U.Z-dlSu aLI͕11mX;HQ:2>%/j֖j[@YXfZi*e8u(ScܱdxWiВ1 2ȴ^a(5 QmȋM'^h@O4&tBEF7zDc,KFDcX,4'LbǶ|(OJXHRYXʂ'#N#/ShM1 pr 듲Bu+ <)=bm.=a}1#geevrݡԋgGpqLREQ(a,_&EVi==Mz~&h>a`e響) tXIAuL0UZv{a^fe@"OW+e\4ҎQgJ0YF:@^ 0|zZz-A^,0I_ϽlnNK,=*$eej܍\l7z! wއyQ/^v0Myf͘qDG>jT&w[oUE<}!/}wOøaoyjew9hsm1{]SF>ss#y뱟[|v[+>|D6dUuX!4#zdU jUI垜֑X: [K-+d[_6c,FM0S mmۑ"TOXTbmvFlf:%ulMug6uHPv.)/+=uz $4".+ٞ%v{{Ӻ7]qi,0,gYbeu~K.s%>W?z+L ,lqS+C.iIƢO}ڎ0d܈{: h($`X r1 (" q,"}P35m.]`MY@ha8$V @`72,LuX>9ivޭ.Mq&2(=kp8jLv թzOˡpH FokȀԑ$ˀ%h Cڈ~وGoy]]i{S XYq _i޻BWHѝ"=STX(\#We.%wey/؉KGFخqx-*vZYуʮC% R@ꓽ2 X # 4z"0,. l,>ZËE&6-cd،@,\P~됅K Dd v5-富_&MPQAj#ΰՉUVEUu`KX׾fo'ߖƃְ pʏwdU .DɯLf^~=9qvmkl`%F-߮IQ/,k\Q$?mJaQO^mirַē@9ڬ3OB,DO}w]C؍C>F,w#iÜ+NYסǕ\,^n{);M%FeMe]@v{iOS7JHʨoN7O#wYzxRY՝vnNikx\#w<8޸rZ@<y4LjДY)`ǕwXn,naׯ_?ԺV^xAiٮcinq16a|q~ډ}_(WF\I[VzIx4)H{E^d๩؟rOO>8ew3/YNb~ H4}6\N9E9;b9{ޡ~/F=ʲDkҗ7f:&?v?,hGES0Q,Q7J`chV|S-Bl%JC6,dm taa6Wcu ۜhIl$72DF=fJ&ydC6w=|"9#&i)i݊~Őy#tYkZ#mtn+lnY,tX]uɿ 7ޖEmY(;קë[zjQxVq~1ȯ'O_/g_077R4cPb>pX;t˜D l!o,q@^vRT@;3@;;l);bGJ#Z06jfbЦ5 ]&]ٖL NbU V˫o^ ŏި`X@tT8s\8yYd1-^ 1a.rSx\_VIS 2ISHXE xcq39llGk\S֛2+:"K 0 @DƌxQvVš,yN7)䒬"  .\ԱeX`I-n҇BR4eS% ׃!ŅDc~+ZbJ}=7=%0[a&!j2 t@RaQ4pTob06j ^ RTl;xs$6-z zu4us AW xTvhҸ۴)=lM WVkAxi-'.}7`C2bs^u[G-AiTPq240Xȍ#oj%C.fS pF;H|˸kV_*Jc}0M|EwA^w o(UVEG7ܣ#eWfZVdnɕĵ1/L_YS`bx Y>3 )<~/>`buJaB*$7įx[xu5.Yˀ4N I/U 鬽h![f-Z7"2Z6,kwj?t`S.2 yP!O xm^ D?*.^{'ջTeo!L^ Cʱ+k|&'M~@*!K>&,hxhtEL+kJ1;RLĐ4re+qq * [5Z2/Q%jsZ,%5h#@ KpX8uLA5b&yIojh&)d8EwS헕^X9[_.7x"֣Nf70*_M,}+̎ wM,)ཀK^ GJ~tJ鰲PQ)g$dUM1M^U*l0}=9 ,.L񫡳I־SWܶ9 Y/z52.Ӌz9IVGuL$֢ - />s'ޢcz5hS FDkI,WTXKfݫx(V`3T$ڤg&<\Z;/ ڑ^( PR'3X2>#ojM:?{_dzK|0I=:|c+OnkވXMN @gO4v#$ljR7'E @hJ e(g{.2{zzpOc :;Dis0av1zLgLJjk@X$]2 X۪:8O$u ~(@.`e9`wݝWXjk wd (`t^\O]vw|%hjh$թi= qpj zBǨv*CF)A9p۽Q5Rw*uw/7innpz}l 7L\WzS5 )w'Ís&HZ?:k=^i }(+*_8<hR}Ec18^а8x E>s$9z씕7{9dU.*PpnenY6Ծ:U,6 YSYwk,\ܺo۱N %ge{GϬ YŭZDQ3,;4cb3ʳ %vڍ_}U*y)6[!K*·UftXO:@<\)Gd$"xUuֳda߅޻%]E{AY$xh@t+Zbeg`,S8dʔQe}s\lF~Qb+FƲPg3OR}Kљ1]DUtdv!gU<.˚@x¥cQ$<ɛZ ܻ=~W#l 8&o !6`I@(7nܰMTüS(^-L>L4{ x;t +-&ۿ mr׿oߏ4d bޱG6~TT.e`ILjͷ=~L"mбw4)V~вn~lqi~I aMa^Ų) ePg0zK{SԁIOyT?Z`=9#+ n쵬-oײkyEzZ>"?rw3X2~>S|<3<^|EϠ)Mx+Wo}[92]GHh: \epw)߶{/++^PK+= wZ[ 8W_7AիAhWe ?ڹLֻ/L~CG klR .p[dDe,RhkKNO,mĦPY}a`P-iW;n ౥nmCdJvuǂ ,Dǭx,)4~oڎ:maHBx%@0zEd4YYYJ}]i-Сy)t,wM@epY:}Ja^V 9߻} +3mi3Mmt޺&]e7\ O}s_%7hrE[E&S D"2]RUZǔ<,D6l hUV´mN[JG6L)oK 5d1JqUKNX<-]v"ĕtTű4p1Y~YPL6DŽpMIOlu|t }vѱ"uCgehcE=DfM\D.OEZ:v c0" rxr'eT_dĪ#2xLsOz`,ߒ[9{vÛiҲM\, u|(AL#Q0)(#Id֦dc`auRhI,O)=>'ƚ!hM9ב#pLO]xQ`AxD̀l0GUŪifYZEQt4޲x,e2ql'<~36bMТv,Tbc}oVm-7Sca\ohܛ 3kz qY|N/φ3Ad򕓕#w'b@%>۰trB6NN<~d!~%+Ƶ,|vmѿbZ,ۄQsrGzd/qԀ,"h)*sZ$F QecWװ( PRf۝-)_8)VLWTV>HOPP:֢t1z0'0sXm(e'zX$G>'^} 9p{ZH?c}6%vdAQm%`좽d-ːvGx7•}_f͖j1M᭫[XԃsC_j8}B6F8~iL^M$rmAWYӜKQւ m9U@|ZlטRo 'pX/о(yS}}hS8H?VKVk7o޼`̧r1&~=:Nf^bmؙgQziGNP*3Wcԋ—7yaeihYC&Kˬ"G䎪<3P(DŽcrR>g^WOW^4f2- ݼnH`$Q tS/C4%wò&:: x,Wx>Y4٩9'66酇f';etXV_cTe\#  חd9P*)tYXrGG2ۥ[FF<Ga"ȃ%'oXsw"L-\ g.Ȳc[րXe18pIƃchw418WQ{@ UJj}is1FCI?ɃԬf^ -ZOE0==5Gqݞ>{锁085.o1&AI-өMjXõxѺU%"^H\7P#/.=]f`I{!Qb I̋%I؞šJϚ tXãȄvqy~p;q*V/Ӽ5AzFVzuqweuyN+qS$PC0n4S-F,/a,x*$eS& y#b}QVFhj$0Iـ%?8~']4Ij] `fnڛIIk$IxwuIm7h>tRwZnMY ?X&^>ꫯI&<{?4 az2isi1z>*/ﵸ"4?x4׉}|޴%=ӐnC)`B,|+P W ,.675.aPUmz4Iks_Z298om$:QvY!\%~mĉfC#k҆&Z(w.Kplfj& qY2PV;ԹU6z >x,Xߎ:4e/*C_몎^A:Ohؔ^0'pe54ejНpwNhRhޞqI%ѕmy/ :}_9ב鑨ipqPB'4p"?p\&BF s6A-%pr* v49;$֢-rHXXMʤNj@gl:`I;#mj3Q/l'X6suSkrG9'6"Mf7:-ad}o&ܺ3% 3 ih'.hGt -+dc m@ -ɾT&/5A#jbx.k&}"XӖ)O+2oYJ Mn K-w(0!HI.$EkOkr].&4X>K2E*+|Xx؅%G`lhc X=(QNԑΚe&B-kPʩ!Wm :N[s-NbY@82)cMl[S,Oz)6ʽaQGq߽Ȳ伎Hܳχ"=m6Ҷ+R# q4O=ɒfTҊ+a2%rJ>YdG8W42╴ɰp,6߽l,LN؇^b>S$raDۺ`Y2fL֋E7^CCZ ܩSk:ԁ+ &L DTo+YHV_n^KZlh9G Pģ7;CB}N/VDФYd]|YZ\=j3t5kд$m 2+P]܁ ϜԘ^+, 510 KbNZbeů)thpH%'>vl+AvƱq(Y+Hcxǝg˄&]dێ^Иda- Ш4dU-mG;' 1@i./Xbfm onP2:c,@Y?|߇{ENWF,L +0@W8}_/tKMj*@3 ֎Xw c4N[?SʵYZ図PqX(F$Arn#?wFɹ$W$TΛ;LX$}|߮3.jt,uϼ%eIҎVێ{tXN[=ڱ-JmX~@l==s>9uZcZF=@/ED :?2YJw;.+[;8-;k ^ Z?UKo7ŋ=[nee%' p8XR=PGn2MˋX8)GIƠꆮH͙ 婤=1VLeI/"wu^J<XrQkzpox"GBcȱ'v3׸`w1RCXAFW%4..Glq5cU3X<^IM{~f/s~w5}֭[|ᥗ^59<0{7EYCCCU^ua? D3ExOH/4ָ{XֵΡi}7.;tI۰aeW}M.Y,B! 8 $Ge'%`yr|' J*`ö6b4fR6n]`9Xa j6nbЂ,s5zLԆı=:FN^Ʒ1MW|"M.mauG:4Q !GR69qlgN>7cwz¬:ai,& 7w'tmtQT+W\bN>o%ƴ?'W~Cè}TLIlR#ViFI k\@^@F  `6xhF:>Uiפ+?КN@vic8v(=]M޻.XMNa]`oȼq ڔKʲ?yI6e{x8GXn#y}pbG`/oV#]0]S0(Jy*G1Mr%ؘ!#.g“0%Ksī/IJ~AM2e澝xWXm-5MKM ,"%r89?7~ɘ%kE6p3 * u;}fap7POxV`Y( - -|njј(Re.~E`=.;*}֦ʢYX.kv%-0WXx#+YcQrcKV+TɏΙ^ucqVt05q/ܕeE8v:L8qtDz@W]ԾV35-WP)iB{%EK.y*bnvT;w+ GtY:&yjnjAU)?5^|X0X\Kmcm6$bE<(*D;4BFO eWhu, (o]I,'s&@I~f@7X.&>QȾC&6ƨnh8cjZȋZlS.ɮW``, $+WM^Ym9С\$b݀&r#4ѱy$N[dIkX ziWl 7RNݼhU*[MK|J]!OՇhO')3zpѿ?ffl$k~We^HU롾p Ck[d`t4Zh_l߾*11:FZhWԭLB*&p_'ƅ2]db =+*// 7*]]^%ef̸z䷒k$9C>'Õw }7LOyqb^F`x^,MecG堭e'rƗ}Fv EZ#?φ~[X'kY2Dw wA!t̷HIH+:r%tYN}9,Kn5Yn = \/^2˒]KHuB*9V+zan>WU=+ #H*/z;aMzl56akUY_ұH̳y- mjK 8RغO5~znYѺ5֙d%:Jj^Zr|ɂxTE7Гf bEҳEV,Okܲu;u"#9bc0>v3Ljl _D߯b); w~gQOu:c+oE}Fx/=0p>F49r,MnFPn/ 0(KQլw'ձhAd+ӰLN[}.x#?-V9rIdҋP]P3./ g}&NEq$?8TFaliÔ a,?a8h_ώ-n2ePtȑn9uǬiw 2r6uOVPL@i4=^hݘ5\~;ݞ ˒XbN@2x,\8\zлe q0; D܃M{8fՎָE1ObU̙XC $ 4946b:ۇ޴:B_ފ1ۋsZ'M1Y6Uj@}7|YPg«MɊƅ;y^Cz^ ?(n%mC,y[ FX3vnr}-Mjϖ@2z/[4ߛSސP>^uȀOXCerq`I1Ԫ pܱ&7YInȢ2XLL? bkj_bx&{' P7'`_׆^hi ç =/+'Y dMX|3RqSF?zlZ.sn̑؇+S6+gYkbȽ{YlOOLC|+]9Ɔ2XԦ[7V=/%Yg1T͋SXeG6"/]Y =6N%ߑ.%Fv1`##DxᓟպU/4 y@]eZ[X5Ix~@F zfY]SE-%wZE+ ?F0gh DMˬX\ҽaNIYԋp]:[ S/QڽGsYKe gCti*CyQns7]=n Yo/X0-04VI?qJhpEcoic0yyź[Y@Wetà122buI;<2ߴ|'uVU4':Zܽʫ FxY&}C _ EuKXTq#˶M(bPV{Ȑ02Y'CvkpMX Vp\f qCkV: ,7- FAʳMU姎{z@v,Khy$ĚAEdmc.@lȋgkV X6˖3-L\Z49iuE}YB\MfkTUP@8dSV;/ө }0z`IBM9@&WZUH/Ё; rv|EЈ#K@$ƐR,2ڇuVpBGq9%h&- 9NoY6 vXcj{f߆@!Ew{8OG2A4مUQeAp!,P4@̧VXxĥpҋx67#(*o*9kS.ډV+? nH3wr)}'2w.7z܉jFV,4R'mtYca1mK+<ͬlWatr6䏈s67<8?OYY >e]ntaY 3bt% uh.-ZxI׾>я5- Ȼø 6N}F?u_c6E7Fk[cQ?o&XriVs3kFnBK؉v( {%$:i]Y$d4eRB^Vc,O̫E;/7M k^z ػl`w/ L3cfhMxМ ǎ*|3 }NA0WVS4C1+?* H;FSc"Nqk$"P#EѭuHZ);zNY#N%%dESc:&a~5KGNNXxn T0'"pe#cӴPxTkiS/K;Qdr=MMk-Y.o^9-%IQ*] y.|(KϚ8X,V.ˊ?}ׯjzEʑ&"a f9Hw8q_G"4i%Fu,^ұ-{]:ȕ22q\]+itsf Tܓl#?hMX+7zNGtń*N&Ί@9mȂxv`|zyqA%yAB-lFUJ vT'Gd _6[*ʒܑ#—4<™Kϼ(>_SZ3?+]/C<ӰK=[:Y m2c^?0AzV*k,[<2;Z?~;LMőeթk@G_ΝEcz.l]ysFo,Kơ'GY*SZ3@e*ܙꂹ=Y iO {Lh!Y]wp=YL7,?'kG Y՚_kf1s*/Y0_ɩKcb=9{Acqس/ h+6UIE)m|a\X5 /060^ Xr˚w7[ eI=r. $0&% u;}]{AkwɌno⭑+C^#u"^~-Jy{\9h>E:_-Z_WOGn#iʩWk+zeyZex޲byei~RR9&z2ʲti2ww[Ҵk[>/LŸwһIKAge /IL:wVvY~tp7VVny.OHUSK'{, `A>ޥnD@IDATi0>XAP)S@׿|u=7a>@< Wc9TN&T^^:,@e-0BmjU2Q& rpp% %a{-~K0R6$}{< d… 6.X18vZ<'&4i[o~%}%~qy.Ow8i=0?{;!t}s^?q\;aE|Wkp0IAvrf 6L`ӥGV#;6{ C[A%00gatG`#9kQbL|`IR0`öұM:I6-,ҦGZnR`R7ZuT?$+kR4ٍI#:h\ ;k3ڀZup6vWpEXa&u(cӫ׏ڱy%Ko0'@wfτ%mf_٥~EI+/3tT <$=d:JS/@CKeG$7;qēp}M4gUv\*%%M/z hҾJHsKݭkek`N::@-,qq!8k֤8tnqYGJ Kb5"sxe>0"Gm֞3V;yAů &LJ",H|,55e'D cpg5¯VTEO 9ʤ6˃t&&2ҤlyR)oF##BɂDF>uE,̍Qq0HGz%5Wʢ7"Vt,J(qSfYBOP.{pw#?kcdֆvxզ-%]g09`uՑƫXMGt16g̘ )B޳%!i~@̓O7Œ2]+LN|¢faѯԳ+GXtIZgDF eXVk}loU-*؈ɽW+KQ(06FawY 5(tCs-WLڂUZ=G"K-j>X^#-,--ewL өEzC"NI>hrU!5WaԥL}⊾d1(R6',AŮn u 4KgBȹ%K4 @:Wne}vo%73;EOe[m $H+XpaK kefeRi0n. ͡?X>> c/J[Y&1=>(1{4/dA@: `ED <<1UvTQn H&@meQy-*QfKv>~7&c~K?%dXu-=խZ^zZTۮ0̱g/"pxQԤv@ȤkYg ׬Vy\_[?tؽF.eA[6|qBųĴoa6/6~IW'x[V0%m|=q|w~?ުeԺ&,LB'$찠2NiG"ӫxjtpփUJ6:g)8~I9!~|?urدҮаˆs$}IҺ{W]n (No|2\)菜\0!*X,Y țv!$AQJJy&|n=n{Z=̓1_. Ȇ<;`Zhywzi>/' {ZQ7?a?~4_Qzg?YObJB#W^yE{*]'~;qKsStIVw㽻0sz̡鳞?׼<38Mr)/G-DEAܚZ?3CEITъ2 (]6) G܈F=` $ܾ&uT#l`%SVX/+R}Pi,igc]l8+:~dec7J+0?셥!MI|J9M` "@LGw@g0RC5=o!ߝ 7o g/υ @dBDo{>_Y[tUoܜ .*~rx͕<+ۦ|9|3_0#* ;12T6"㱕P?%!]!o,|FeqxT:&?q," 'QM-""lIjSʩMB56&iTCmtU[ڸU9 I Eu~7Elz$j#s$wm*rzBzWE#: f.OW\#0OgYåG,IƋWAڱ #&ZIzj~ qĥ䄔4H%^u=Tv9sǿRJIXf'~X[B`ɹ{ v]`&u+FxÎP9;T?u6xnᅗZ\m/M:]ܼ 2' nS%YLLG}Uo[FRUAXks%˒K3ad;-UpH]b`N)TbTʪZ@B,~}+Shk<-\<˄LmѰ9;*27nLXrUV8@<ċO gM6oAmn(Py]rC zfCƵ6Y1n20c?3̡ͩRa~koK%%9z[Iv4 hm-|Z 󒁶D8A!QbSTIzGV l%,!yg5~i cm{:nZBdid¤xY2w'>c["lK'6΋/*ݛ^x"pY%M-Lbe\H~j.FdPG{G4M; aw7:wfNShT=L3w~[0yC ATױuֽye6JCL,p_jf]݊z3mk:^Tr h!͔Gi!X7Nԭ_ڄ2@@Rd ydH_#DWen/{$fTʣ6VT:H|uqZ,QnآI[q0cXoWKxJɁ>Yheʦ>o .\ m]qm @* kv,v$#dv 3,C*1rfǤ4HY (3t,.eǫ͘.IIb&委8MO:x Xhr5>`~09v 1Dux' mK>uM{{t@ZObrvr<ܻq#l?4k_ ?j[I[wDGT[r7/5_0=5mZ4wtYoþ uXO^S]ceGXScͶ1?Nk©Ѳ%s˒t)$O/ c8F+bTR4L~+\3EH[X05֦o๹pGDzz[36,GXW/2,zM*֏MMR5>.4, @fւXnXE=_U`f,b`㋈ثsWlaV\,64sD .8VdR"F?Z|}z m^#4EV4Ci= y<ü ;0yY(MiOxK`?=CQ>Oy_ӴZyI{ahx+zdIu]⍌)x(K*<(MG0u\{s8,0`Imk8|/j竖.x/ 8n?ٟ̻|7$Ohb?K}.?k ɟ3;; 2oD={}g,@Wńu?y"롒IoSxbQ2H-C>}>~_kQ?NY-N#~#O~Ɓ6)mxpžigʇ{Q۝c9 0%~"&I=Kyگ4A 9*/^i_~ko)~(G>}i,zN%˄ N#9g_S`"̟~wYy=\~uvP?kÔK^ҟcӼ<蠯Mjw6ʯ~)9 @<`pB0=m7&'Pi|n=i˩6U6B.xskڨ*b1Kⷶ4[~AAc9Az2hFr{d6J`i }0,`2nȵ QDC7*xx'*1`N7QpvH(F6ŋ8,r_%X)Ê =)y[Ďm:.ȢH(k@X,*"V@Kh5]Y"/Aй~󉯲A`(Aq32TMs8'{kTlgZJ ',BNT'q0YB\$џR ܕGeHfj"qJNKt) =nrd캀XTqO/^*"նڄ O8)kLg Y]ўgGta̹ .~Cv/R]}~w[:*TMNK{@ޢwo \'S@64 .R|@7üל+a#p9t% x6%T"L%t2r_&[6C[}ߘ O OiPeD˰J:A<~0qFU +=*me 9!ފcn#lxӟXqƔ餧&Tm?eO !܀FӲAk 9 ?r5AT~k,A ܅J0E-R,S EKqNz;*6?$k1pVa-W˼7p9k%ʨYY;-+kbIC.0f룮pTW8%|SXask`}1]UW 0O៘Sa\`a^k#WdG9+OXR1ԂگN%SL$ƌxȉ?"m,*fsM-/ȊSzV'&h0/KcQ?Yo:.pƻa7ú>nyj0¿F2t~ea YcbU\)+ -4ɺYKWw#tۓ=}Ge: F\[:V|unX Sca + C1Y'p1 ʲ%3F𰂲 ɞ(HRdC DoAEmWTW37☞{qcMarIgmh̀Gٚ9507|՗7ŊcVEV%[C=Qۋ,׶~LV456hXGZ-uQ5QϞ(ɠB*VQy%?ܛwni-#;w?KĹ.IT,^>S8Ty~³9κy:N'-㢟Aݣ%]DIأ)kqAҧҼi8hy>O)t-+gʇi}Ii|z;kQ)&6Sr$:計#py狒{X|i<)h*LKRփ۷;Hb3!σ-kxOy$w@5a|ڮI̓&K+?C#eɼs+;%;֥epYvj&Sk,pAծ)H)Î<*hPKQaȖ}c{;x?Z|WG8 q+tRi}l%MsW=NJ~iSK(yLn 8;M_+2{JAh?q=.// 9ӟ`=^x!)+vʏĥ.!?+[5 #SIys4|>/|δm>aen4럦-~0K:n`6vwQؑM:X- У3ksE;J[;ڈ]%pٳ'+=,c`*Ⴌlli (Ҿ9d':μİ;(6uF0 0Mr&9*XF<L]FfӦ6?//Nla&uJﮆ_l; |΂m]9+wYOe.A~,7vЖ@YUMҘ(-ZF!ʩYmYrb# E0pw&X$fKX6ɽQa:&vX[Ò6QrdžY  b ^00O lcwg ͻMG,qqwܨ2X_Ps&_z:6erS`Ʈ : &&?dII=k9܎#Τ\J1RxRWBb t6$$*GmcZ1"--feX&Q4S> acx :S hJh#+Ԭ)Hk2 >0h#S@͕09da,,cV|Ua6/@3~P5DYh8pV=Htjmw0xBHmSL=Y[ /}gd<*F+,]?/|@Q&.95Ԇ!ԕKoD}_gm -A;0ScHšMŀ&fW|aVjP̣*Rxʇ"q"]Ѻm=}KVEܤoR[JzPN\Ǒ_ Ui}D0v`m9ܺ5nʪKLjB<>Hf4|/Ƞ)C7fPֱaX ,͑_76mwe;UAE48$I=_a$c7#ߕ.)b"m.Vb/{øV ˅\_K%}⭔%,ʡ pT7.dap]/gK >8)i0tڦ^_*wFŒt<={>u@gwBƲ3%/F$G@m\UTTdUKi%G#8o&),`? ߙeQFY `Ӑr,_JuDpMkwB֬SccS((QGY3 ^Yvi$93h/,ݪgb*hsvi݀eM5ٺA\=%7#ɏgVXZ.ctbZ;ZctC>hv <뺼b=y%ccy ŋ͕܌tzQT=#L AhΒfFy4}Zz0uq('_O"˵(.d4E"$GT=~ IqWa&Ny;L%)A d-dZ-/Ὠ]IX+yL'%j%9`Vj&k&c SQ0<Xu$2vdWCw1)<ߟP9xtծXO.y/iRpaQ:f_?6qZ䇯ajxڕ eѧ'y/a.1e@(";5,QD=ɖ0 8J'!fRj#23y7t3~4I+!۶S-/y7jz頛5/|]ê_3M9z5_%MZq`ֆ0AjÚ!Xo$f@ t.[[:húKIY26 TF4lև."dKnobzY: FIj76 iEr>FDĭ^~XjdAqq]h @@,M%F4fS I& 91c. 8߯~yYJhzmHl&_}s6ܵ):SAYv5Dd) 0wC9./ &C2v֕d^bC2)!fCfm1lJ޶8Dn!+` >V{uJ/*xsCe@F&îk)^mWe`@  &=Ivko{E͉ޭIY\[NJ Kti%sXY2~ $.c[uL~(SגX5ji7 !./x~޼²rl=Ss"QA*Ƣ?K&OC(,%г_#xSUܔ)#:44Ȫ $[ cىpgl<, |\eW߰iDNw^(.x DIW(qr&T']A.2ХeG2=!%V]kgCxhohu3mcU?X$P$%P3nԪ^_C(^-Hclu@lmug*NVEEMG ( ;|p\cɸ2TҼK骀gz3KY'H6oB===ʚꜬM`)_*{9>2 uuBEXS]Q(kfs?DtڴidV,Mjzlk?gk|PQѼ(hQwIM2Wjl+Ƣ,- z5t>Y`>`T7_?cмšt;άॲc5ڹS%?υ}m9xG01Q%Pd~# ub @ʺPЯ=qP $33ׇm;2z47gyh7,DK/5綋>k*6u_']\"{qC` їMIqD?uhfWy0ѥxg= PnUmxԱEh:A!nLj]--`U?N u{xu>F.^ڬ?kW'oED>T 9oe1|7!51`X*S[9|., Szg_K8OooeFJb("7f5tiK} 15~ǬH ȪݬGGC{޶c[2k]u׼~WKO ,m;=*_u%k{7²f񴫍=0Ovm\9QIӸ_,drOP/,Ƶlˈ6P? Xj K:[b &)&kխ0,[e| 4(ZFkU]Q[|㸯xUq& Ws7i R K6FAýWƳ8◆,<ǧ= Wa]2;HZiXrJ|]P,<~dI̽ozo~SJc3C *]^yO:na#~' ;IP~0# ФnC,Y8pIp$;`V`R֠`rkSǞꈻ)i|:l]V8Tg[YQhXG*8Ldm$CXH*&Y+ԦI\eEK%n(h[=Џ ~C$4*a:͒ e)dr Q6Ul^pNO7hV˺6}L޹LΫNeI1+k:7KZNV>t҆5Yf/u՗^=1 a],޶3v $_%r6A=ey-m'ʍY:ɓ+ȏ:qEFpCr*HRe$H~ZYգ3ڹ[ X(+Mޝ wn sKt4Ҳzl8Z>qX 1@yG 3%Cc t%\e!(fr'%_jTOגc}+ԋ,珬Kã.8stp[ l=:.EV }Ӓ ƸVU( rQizEZ _almh[Y] +VWDgS# ˈc7*RepzͲn%>*1XprB3u3ђ|<_+v4H,1ZE+|խmr .؄L'H: O@N7[qctLv>P)sT>S=s30{@mOޚL=SjLf~ pE:{x=}. zGA/^ѽ|򳯄16`m~4J?6ûm'aoS/%=#7䌬}t_D,ܫ^|%|뿬u/ ?4\psE ;eT*觹X,@ܒͅ8\5!?)C>tK7pӠ72hКcf%T;A>lviehs4mYV8,hy hfJ=:>~#QDoN_ܼ}O/  y)u^;}0:@imQ֙:ܵih;NpXC98bJ5#,f,͙ZGbarnFEe!ffJG zLhhYf\q |pTwwIrτ7~VXp(kgTc;{7T8wY {wnd9aȦXh9&hmMM I=w5ڤc\+ABi]gnG-)=7~3LՇ_ 2S/pU]C%[O& AdmoHP/V$Q ?W) *CM +SC>vEwLkM=[Hm-J x^{%)Yg`1ўtdn fԇ[] *Ǹu h;(˧5_su*4Kft`L@B̔yL'+8@}ooo> !ݥwiv=<MǕ}[}f+FVy|8uvX̾O4XC̗g:&>O}ɫq#fYZF6#KKfZ'a6ٺ k9v~iE6YҼ`&;^>I-ÔAkH">vӸ| .|nFp@B;rR^lzaI s[#kV`"\2c)@L*񝶩/xcaEy%{H_ID,Pс aK'T 0 6WH׼Y^׺'3id>E8WZ95mS5Gx09?+eLי{aceI`m^A&z+g¹rD7zmf7GzQI60v{4÷u;6tt6ï]00rFX.rky>̏< )S`8{i!.X)\NʚI$Z&I4n-$[<:6Phrp)Zk#[rW&N>s=4mN`΄̚9q9  5>`yrShy{2% M t:^Pɞ"n'g$~]HkeyM% 344df.ZX&(@j&)kQ%[#U_hi|Ld|2ށQd__' hؤ€?h ,FkSǎ2oa)0qoFTUYNɴO`ɾhhYA\:bT@eYּ57PA%-,PIFԞZ4G" 5oq=%Lk .Jh==apid9dYdA9/|.s$*}T!ɫuaIOm5ޚX O8@*yg!L?/K-c+oΊ/ɱ}VFͬ@60Vwc;@PY7nϞ2ߦ#ЪIsւL 4-}0NFox'qcQ[t~˺#zX4CSG)$4YVY<_u[d=~߽E%xM~@nd6Dݝ-@UuY顖7Qrpҥx21~[: ˁ]m xZ}gc3/]3+X%8& X0sB&o\nݸmzȗ&6,^uYG6nV]w'lybOGv5b¾IaӀ-z&aLYV]yݺeXֺ͇v -<-/-{,\#ȎYO|>q _DY&/WMs-AXU-$9L9ydZjV&4iYLdîrRj|{OAKͷM˭u=uɣQIj]Cjad$ϺO'ȝ$iKcE2^{R3<LVsE;>K%CʱIz|2FyZI="tEmY4/t_ PLRN5LreܦΙ|\_-{= ^.EDx\K<Ï؟"b_ƞ9L"oo_G=:$~24ItjIëuי{~vPg7x0=N===pyұ"'OýRT_ps%y+m|e@0٩#t,6" hP&- WD 0 MrX2?+D҃(, d73dGSrl)+*l|N@+Ѿm8ّ*eM[ц U쭈C˨' ^:T[~:LCU)("-Y8Bya؀Rn޲4/~/*4uòA Rڠ0|RsR޽5޾9k~"թ NJEΏr-\p)Ԃ~1obep6ĉ.pDmر!xE<?euMt%a(Qy X[>i@\21)@tCCba~]'m&rD7ző a&rˢBGkͷu8@u/Q]k O)KlT@QeM: zh}#&Kbq+(iH:*4>'=3}Ӣ\-Wav'&Eo+K8"Y}DaO z,D[ɉY5T3vτAxz (1/uX]p{0{!i,YPR+G 8(poL"/IpM_OJkKC]@fnѰb` K9jI -.+(Cc*֢/6dYY N-$dŗc554h>.dV%eMtE@%8xY`IZÃ]HUY-Ed夗$z$rK- ?>F[ &~t,OC^̙ĜfFJ: с,MNOuwP#!Dw8] H,T. N X&rK[en>hA7{S`݅0?aaͳV-[Ge]u,x͍Iӭ/%žj[S$}q}^xܹGo)%mE}Tqj`%Z ϯ+̕{|j{%z yKN7-Ah,uy[T&i\OTWKOxꜯ4a<LR&@ )occc$rZU+A0yP i8?;΅ ?o~^pyC/^ϱXe12?9XiR/ӴIk/oZQA-w/NO~igq&?g%v07dY u--iQPa8Slj`U%3 Р,w-Ȣms\/ mxʰlt81OGx6ƺv&ОjȪG i~@PMFp@ F"7 P LiKkv$ͬ'x5dUGWp#rr6 $|ԍc7ԠV:ISز(jS|^R6VhR4hYNE*0vGM*PڻNʰ#0UG&)+Q K0âōys8(;ړN,`D$ee¹pf@ےh4Ͻ.?|8FF>{Ob,[>FE.˔ϛZB. ({+GOS)%rJL>,hY6/IK WX\%pE< ~U5m`,}U~3 5|/SaҨ#5H/P*]?÷tZ-ploxaxdX:L'0ĂF0|E8F R;?KR&sfMw0wW5bHqiX> *8m43CKayB ׶]YFZ 7n՘b&17(<}Z`^kjC0f[G)wB,j*! gU@ʒ@XS\e6Rb,j'd( a4npN;7}h (׬(!W׌yâac:4&YXX 0]_cK 6#pfV-1`y)ݙ%XyJ}Mb R!,"%'l] XĪ($,`$03@g #,Pk0i&UV)ڨylzj'/ uK_r!̴"o};|o#~da[eOojn*CNJRݏ~?Y ֖@Sw5ϴ~9Q'ګ]V%~ ԀЂvj7Vma1|h5LS.hݶ*= Y$C1k}$Z,aU~kR#0)i.iH#•V,gYk7û 3KG.N 6-ۚ+< K9K-`C'̐*fUW,m7 /lc0q23wT}I#U1NίӼlG1dh߹ajZɅUe{Gc!;q'4ES,OvI@YjhA}`ФdlzyfJ%] |\x6Yֱ볣o6mn <v`rD|\֠ [;򜬏Z# }H~ص>j^\[]-vdenOao;44L>㣊&diIvyG};$?:XEL=W{l,tIZ4~T6kŝH17բRjhi?wZ^"Zz<8}dW8,\g /u(~O*%P-o%h:r1(o$E4 OkÜP\wO$yhZݜ\tq訞y&GYprG`r3L:P2{${vr tt`|8SW,yd\̧HEqy$t(%r*ßZZE`T+؟xz3~<i-"W+=X~ퟖQ4ntI5o_9x9,͇|L{c5]G'HBeO.ǡ+W_~\ ឲ֙(n0Lvԛfwh_G B,JlD/Y{reO :LTk˪7M|k{˧yj+H &1Q>( ¢hWRi!Esh{svT¸Lb9_j!Ƚ_ayi -{Ihٳ/ -Y%kf^kӧ>pU&_0SXYcPGcΌ+:ZpmP9B{T?:+ejr=wC41pi @4 1fPMiG ѪdtQ rEH=賀!E>kqG?hc, @6@v̹f ,Q`Z٘LibRmʺ,Ef{+[$;cվ-̶& ;T8{ƍ4٪yvvUN&!G%;9xDu4`˂@d?>-+ݽ{*@{e?ۣ6 Ӛ35yTYtLQ2 &]kGTjc[؊@hТU/*7%-Rk~WSߜ]4;4oqܬ76w3Ý_xŊ{lxs(eR^U`sZ9K5^ybM+r%4宼FfaA*%G0? lg`k SHDYDcUWoHL$@*PʢʢCݾne=<>gG?c/U;F[G3V.kNYx>ód^w9]@M} v`t8ulmYS_ln^yX9`CN\n֫yxNzՍm{ʾ6B[eB=MVYI)*W&_ s4.') < +KZWYś^p6'OIX279V }["}d"5+A#ʅS6Ъg>YdvlǏ,<˺cۙ*)HR=99ܓ4ziЈ>Uk3)10#B~YqZ4։WX$.ZZbAp1`_{Mzxo,7 4!)歕y팿Z}/Z?3#ӣYewXJrɴecu&Y6e]rvf6wZ`8tZU'V,5vvȖ&L,Mp eY sk gWWlAU),MTJ}ߎV'g?l /|#Il5aʢw;?xSkOW.IҸS {|s+daP_@*(+1ٜk2Rm fYVe= xo5 X'Kf(,6ZԎ.Ȏd}'v4@`:J.pÂOkjm@& ;bu)K*_÷tU@e6-))8x&0II&r" O KGd@1eZ pcai#v/}8tEM+PbWQ=}SJt(KsQ+1\N2=T$16h !Ʀ5q$7ЃU:ݓ6WLj%~ ԟ(cVJ$,]EXMT,R'㲫ߖH[.Q@$E,m7и^zrW>_<Vu,ǵ~f4v0a,Pi0S.׵>jNi_[޸H~̕<6sn5 aХ`ustg*۫jל*o?9& 2Q8^9;B!ᶲ] s *2f^˴%K[n_ S4,9&t9c )1>u_!Wؽpt_tRs丣vk^|Jf60?iaYQK* BU՜*ʝXM_ּoOs_GP:%wXTcs@zK834CL2a:-y2&1EGaXEM‹ 85@ Hhæ{@9$sS;1ƒ`ay=. *`]Gs@j-?=/ 5:1g!MQ|aKq՝ X:A(/*$){[$3O.t lj?>\uj{벘c,ڢY}CVӱ8Ɔ!MgN:+lUNbg]qXjSs}Vzdcݠ*\`/4Em˺fԎMad40IHyB-I̯ZϘS(sYo(23Ԣ0%2vYԖJӪ_'W-QXwXRy>5;cSmYS.0Voerpt.ޕңKRNUG/BgyWP&)8NW'q٭e_+ e%5o,\>j& b ͗r%'4XIM . 89~fx뇯g5|k / .`]Rc/)! 9FGEJBM}fakiZYWQJpduY~GhKSn)M?xa\e#&ƙ=ϭ9)\y6>9t ">":+kA,ɽ/h.+B_͏ m.$-&~ W466e=%|<sg j̐Q)n}[ֺgf`@Fe@;oBм)P&Vv״V5CH8u}Y؇Bg^T.N_7G[(\aڂvgEqX5=1&K3_R[;?v?ZQ')~$M'i=ӻ4]J+ %PM/VWZ뛇q%pm?kÖsם$xxZ&f ɢr_4>eAf? ԃvRףJ_j&sE4x7=pIqL]0yPwNE:w$7VS?c\LɃ&Jza9?k "EgV'k']C@^y:OS+{Ы9eZ?sgmm2ƀ@ؼyMzO|we 6zuڼ@E;J.Vg\fS"E8f!E|٧lаml ˲V ˼]`Kڋ,tQ(tY3lx74*}}uggp8вidZe2l6 zD=Aؐ(5,͞}ͽ*+w⋛_}uonU3ˉ'N,?NLIyCɼp&{Fd"67Χɖc[@G;4Rglv^~\~ҕvhH.) UЀ`(Ru( @ *YdBa m"-mz+F(\ב 2KBK( ljapj0hY/iZ^^)cq0:B-36H٧]sco٥Ko иji|'w#ٸFNTXa !oz}!!~8rO·ԭ\n3z5ߍx},_6띉khDŽ3Atom\x#Dq0m! rLCB97gmEve@k'VFdۊSzQzd-WEE|f\|w/}%g?n8yLlh |&o-?^[ Ns" 1'X¢{?(}p419?څ5_ˀ*p桸Fv0k Z+"R"gGMגO-a%>: P{A91u8a|A'V%ORFe4x~9f-.[`NDƆyKNֿys.ݸ5Pz N#GsaR/c%Qy KA)O#|}Wp7i艰5حI`Cn p U-#.y%U g=, Lͯ\\=JkX [^1ZҠV8g8E|d +3Wb.@^Àv1e5C49++jEPҊs`MӅB^JPq t ߮Ib]{GH94Iَo1SfKs08_}~r9ߺt-##wnXnjYfO:Kĺi+sWõ%IU=ecH`S?6`{ϵ вRVOt D]7xXC~lc%l9h'pxYLF P~ äXh?"yd6v`AqGb].r z}.:ulS 0D7ؒɡt˂c#T끡@X*d}ڣtko @ЮؚuMW>y5Rtzפ% ]3R1_$hAU0&IepyywvsY@Z N"}rR>g~jlxę@PcB0/t>~D:w$ ,;^,F D=<qC Jyc:7|ӯb=z"ΗL?~-cGtO\]+2^xe7s`Mr(_PoX`~ux.Wtt 2u}}9IFj5?mHnǶQZ@IkY;84GJR "mk+K)gŬ.օp+ws- Y< K/=XnzCǏN2::gkq~~f[6Jck@,ֲ6"ec֑! Z$uNu<Wf (l=A7 ĚH$Vߤ'hUAw󷯥{sMޝ]Z3ze[mW7JIg?ɦ]^OZ{ᓖ)۹I^UNɑ@iQѓz%l:|.3i7{Ne<܉K.ԵԡYvyJڏw<&-x妮ȡ\Xxy(/BSH/GWNc\:uCaY_޿N/H\Wq^)"p,ūϼy6W 61M02[Ms3~ GКYH ?v5VwÊcAZ[[$x%G(pMuJAO$* *jepIrLC:d\e,-J%]=B#Vs1Be΀р3iilQX5~KƙyFɳcadʹҢ< 3'1Οc@g1 ޺ujZŰ@1+ԏ$u ,K i1RNN0yzZrL~^Dn>`ipSO |IO [y(I%P X =sX^A~ \ (Hιlh'dHfoS`4-V݇ #Mpcsт& >\~,O|JWf'Skݣ/bg?X*/~Ò]:c%/ϥ9QOW=q~>uɟU@P6:H ;tmܝw+:h:ǹ.kY=$nuuc1OA |”kX Gh(fݦBP,hW ~<UܡQc--c<9O y+889^/{W:wfnhfkگX S&o![s/ԻN]X=kӰvn:ҎfSKn'gH)w7t]^/:{)q۹ve:S> `hdEyK>|xGv` i /=Kd_o%wʕ=<׮|~RỀ#K]|׈D`c=L~&-듰!٬ۋIiB;+!=vI-Ld]&,)@Hz7x{:|Re0YIҕ%;06]Sg7cS}*Qd_8>Ի kߊ ߅S~vwVv9|4;O3|; bS}mҼ |Rd^(Ok\ԟJԳHu/Oi_fi{_zΡ^;n|-,auVm/t,o2U|)4qe+4g)R^gO)ڧ}0O bez KenMh]g,˹a AXܖɀ6j dSM( +Z%n *2&ӓ\ H "^7^,(BKR^ټէZQS0Y;C(OSfQ e2x7_\-q'xu#WO>*N~wi;\+6=`ˋβT7o9<68WOU)6iG7nZn8+ga)'-IF# bXAdu47ֳ&';2\}k;u! I^1ŖJƳN(_;f"|dQy|tg`AVYNLI旧Y\鋾,oSv-[۲.bkȮkLAdiTI瓏ns?v:j0{'n\+>2n^ŅŴ47ο2i7i8twú'ZI_u, ;,rZ”P;F7)w|H$VpG]Xd<裰)yI&"cK{YfY6 @ `5sfJi䉳/`_}SʸS^#GϓՋiunt sˀ֖*NP._ N秸 !0qͺkqGiE^9uc}Ya|Y/.^J=q TQ!!,t.\˪mR5ݥ(uL>-`+:d*Q JӔ\-QcIsv .*fa j hqJݍ#cb+o.e׮ J!D]qr] =qZvm|ef::)nbf]=EsL_z덳ϾĚiEz~B~|c!}pu9 ZoΞ?u_H_~58LWFUȇƵK&yGԷYϼ:Zo qZOk#Z%'n[:εH7k6ґ2`PĜc.XZ`BLߤUO-k7XW΃Xz&=@{Wk{ȇ`qjSδ5uк!(Ј >fϸI=6Xӹ!D(|W^KX.Z4]yfaC}7_g+y{Qy̛MRD$^I.SEF>R۰ßx#>mkUZ<ѣ)SlP)|gRQ/K ro,FV"ܼV毧G0\p0qh"=q<ʖV{i{|+]Sa ]y9op=\clP9?_tz2/OV0gh {V܋g<ܺgԔ5AO\ݯv1qqs5BkqC#̎Igمdޢy%$U\|y/O۵xiI8m_ޠ>Z],u1|tLXaَdRǟ=δ2v9-!߃{ӝG7x큇%Vv\:xEIªlHs߇FJU^ r=,n-~ {-XjysVLi7瘗)C W ^b;K>:c㵝z2`2";{sO3-@uz%[ҟU~뷓tҨrA2 eӖz/qى^8qTf]utd+DG[|dKN7EJYПM)||lK+,y'mUz\Nezo[>LJ 8+S^ҤPFWwn0{VN*/aʨn]_%K(z[pP)>g&뮩|t%1ĵwgit^O N+se9OY-4]Ķ)LI*$hd $Go[XϢTm4@lOLq"B8IBJ.V&r* ^^WNӸnLs PZl)} {1z5D՚Y[Ecc#BЀ^n*7s4WjJ'0NJoq._?^a.! -GRHIF>s>}tC#RAӲ@֭"n`ED~1Pփ[Wkz%foqGLܼ/ 0@0%y.WHX$dhAҫitjf&>^ql4ef˴Ș>|tFɆB8Օ%in@FU[vR_Zj\Ô(`z4WʏD:m"+Ot7B([e:XbRb:jUMyCHO*"o5b-UX-c郥?P%2,FfzY9qNb^txZy-IU%0ւdj ._rW|e$Ig?2}+N*VFwBF&tٗ?3˯>܂=;fo_ ^c U@XԊW7xJegO HE3җ&GhXO>>&I쇇='[dXogu2dXlӇXe,J./Wk9kzss/N`0gtE OzrVsEU̐[?AZ`\ջBP7(Uyd|@cKWohq=82>42qmu~贏~^z‡i"5:dRr>@-<ϸ5VF@ZChh+,|ѐZ VS,&º+u1E(? i8,n9/`tG\\YS4=Ά°Wr;+yAnZP;oɟ ~.v9|h,MZT@ lw ~vyȲW &"AZÙTydLdrgR/W^>t}X/]|#vRzld\i+u,~ܕ;ѫqD<r/VDVieRuai9e!&gнq?cldn`ŹӕZ`Ĕ3 :֟%\aY4+ix]PRxzCP Zld|{e7]( @yns-uA@>,&wcʃ&uaQ!0 KY9k䶵Gb_a^:rAqBith:v\<ߞ^ĤWׇǹVi _;䭋燐WիX {Lʧ<;$;^cqlrq}ӵ Ƴ!AXSM75ꇽ.!4-2wr ljmNɫ<[葓'9;>ג՚tN8D},*f+;șei^(4'x<ܾqӿʹنߎR/Ni /t^fvy{3o't_vu{ּoʮ^g]%%<4uGAi,EU,^6[+q>뮩ƕu=ylw%w^M޼ɺ{z&u `Rq? d[+W ܏.s7ׁ ,i\;ool%M{ %:XYr^nof[%/[XSo?@^ߌo~Y&PX~eQ&ގaҕqҬjRy{Z|=krxl_& T~BGZZ7t]'97iu6KK/,j0wvNi>tO˻L B+:U^`+/:K :uc;3>E_Wu/5Nן{`^So ltwNvzN>CLy8)V%KyEgv+i>Χn ɟ~tl\jiq elhY6A~Wmc=^δ06Rn JV.9H33ϵZ;AvnJ竛{1azZ]9hwsetUF]~*(d+lWp9AJ.h- l<W:Ui Iڭu@C,UYQ,װ\wkfV0Vc\ RZ1 |Tnzv/`^C=b/bMImLҺ!%F.qi`I@$6U+\&2eiYrV I207*Zi[ۄԀ"p?)WtVJFtZRX6嬭 ZoF'&?rlP)d`vM']W ZAʱTTˣU' N<ZК kt!_19B3Ԣ=,"s%Ҫ@q5,ѱ4 h? PՐ/C0爐,u/Š>J>y{w?ca:s`EXvlÐ+t6A[ DѫY]um[1/Dcy@H>]/| ]gm%;CsEGE\}hj.NпdmQ*q3-m+[ :^Z'N(-V%74QAmQ!Wh'21/QPNT*ޒ'w՟ -¢ D_||b\TЭҗrsE7nbIz/OԸtE󜠜J|~H~* [,vlp:zh?,a:5.ѣu603]0z%qtc0ǑW>FrcNrp ~1z`a~ixcmfa=f@*&Fއ>Z}X`*뙏zAJ~u%Ŗ'Pר58hEIZ,}@UZO1tۅEm;&Yﱮn%㾔nrն,GAWa`w@M0y1< u [ܝpZzr75 "y |ǹx /JL9;V 0ziCq@+ ~/ SA17gE?[t/uwMڒx~RJwl7ߛ4e.Iy~&-ltM_L*;w$F[[4 p^9L]~I/u4ov[d]vcLP] @; 퀐 oi(i\ssnk" `[RVi&n;Ni v.-fd,4~1F^:;^^,Uj;-)$ۏ:k[VKd ~[c|mjf"َ%:_o1ԥ։:ӾﴌND)NW2|Jc{_G3|?巛& ~cڬycۭ#L'?y>u{Mvi 1TniQeagSYkBZϗ4-P][Lbk:V ARn/0)lC<8Im^77bn^EcND&<MEiӧtg74?t0#X/aVͥ; (L,z%ކVS%}7p=4aZSZ7`H }n(QxͱcAF1\-Q@I׋n9+gWy :V U Wk͙tlc%Op Tj&~mn?RZ ^=S] Z`=ί>`\sCCU~yP7ˮhku[ГlWgE+B&џSF@-0y|,\?'# U'UЊb$3 קKX|%[橄#֙ˋimtx@z镳Xc 1vС9{FRpg](=DWY{k3t#Ku/}Ё羒^X/[UZ)KVA "ckj2kckS 8zC= 5O072N&pºU?~ ؔ;Uȵ04emOC^kv$}Z{LA >yC#g8UԕU^ _.̰fJɑPx QL2cy?|gNNC^׬ϱ`p 2&ypΝ8)a T.10:9kX/?~f9,w'qBC]n",( 36GDQOGztoi>;ZA9Hwg_oGm͸\o.ӤF3K"GCuqN7҉:NJ{l%PٖǜRhgYϒݶekWNun7 f+?Kޝ/a?0iy 0L'`2ہ 'hr6.~ڥ f/Yb^x[|$@exig]r0iyCy&/POoZ6p& {{EM[qR~&K,Y,y@_@)y]^OSU~bDԞƙN}rm~ui7K/=uv_dcw^xqh^ûU%Կ=b;̌=)8stt\޷S^{;z:?~璖eww/O7n{GK9s%Ъ1̏W;ߖqf;L) Rr* Ƨ)efj^ItE>0޴{0&ZZYl$Me n댳)A`iapV|a3M1$q%tfrӫ7Lp醳. CXJQ\M] ľJf׊)85r$%o^n #X1&׃T(0XJ媼_W=4 A6p`7.bi9QQG ұX"A~WzUr}H0قf/F@,jvR^[_z0ŀ¿| 尀sغ p͸>W/(tVZ0'H8A1*/Al0HF0 y3LueaiR:&R^EDe&ݤ%A;5ɡ<h-JVT56ŵ5<:}yPv!Hg3_JǘH邃/R9Blgy䵖72D%myS'{Y6}{sޥĜ/3GMEzVx3iݤGyN'3o\rX&w'tӧFO}'鳧 ' NKTX7ΕG?<WxOg@<4raMwҟbg'_qWEXZN2xVVh q$Fn]iX$E(Oְv_ uno&p[P ;Ov B0K^x[q-F"T~ô>w!MpWq_*pW53G>c V#ޘ O>`'pU_y9@+uPRB=`Ir4`?|ISXL6uxV%d>0T̨k O%Jߕf_@y~ᛙwOUk|:^q#Xs?X马Z2.?CiZk>X/Wr@*{e D}ы&: ˖o7+EZ4W@V,YP~Y(e˱te a}sGX"QXuX3͵= *LgӅX+\DXg y-}泟NS΀cK6 a<#}j9{i5tCʔט;UmAӂ |y':tHK%VvÓ/AZ֬yV5*ᛵ|h_uč[X#z8|\Z7> zaiuH7IǘG\h#,R zknoyo~Xgr_+٬YK=t=E)K|~Z|?>y8;RZOU?qE6N^>:?֯ʯ\XUɿ_~y}:ߎucҳ<ϕrKʫǕt]+^+esz:Q/ƒmY:ۡʴ>6:Go['y5l\ U9ؐ)$M-NZn [ ? b5@3H#ApV%<ƳCXjxW6~ˋ86Ǝ,6sj}Jy 60wR)@ն5ܴu`aMJ޲ o4UE6*%CaŅz?Eӏ<n"ĩ+;Wn%T# +wȼy2پ#VoR{`@@ VrvT^!;SAl9paWx҉|N8Z@GlNy+։شfpeqA&)g80AeZ0[#VΞ9Ə-hC}puuEBWkM( jV!:15ztjijቈdVKx2O+GU`S]{D5ݖɪze? 7µ0GI[AFGC@\N pPA R2ELT d̄E՛1'9?-NtZJG#Wp:W9Mqg>}k7Lt!.Dcvwi(@tMZ0< 8+&ZfAG'IaNe.Ʀ":u5oHE]+3X.z&痼>q. oxi3VJnx6u@y,9E/@ ԊkA]19?{¶7VXDN6V&O_r(%˰F^> NG q1OTs<‰Q~Dxg5|+>|HIz|zsS%ߝK/#+}_`ֺ+{e侻"6,̟AO]it9ߢrrX){#g(,VnB<UՃ4 x+a +xT#ܨOV-gOo]xUH#7Յ;һ.}4}t:ext>r7C_g x-ݾ~{_:~,ƼeU[O_\]@tl1mI@\;^c}gK7Rgĺ+nV*% ̵7>"B׫c] x2N| HQ>Dš w g=*Ojurr/kߞ7:H=TqeX<λ2v,Ngaa~7Cq~{﵉A[zL[D?~*78kvRni̷Xr'&`K[N$?.d,YO oMB,\{E$*ऩFs}!H@1q|g-ky+.g|s4c2+7"`R@c\)SO|V-uFl `@FZ^kGkUzh{(@  ¬ )VrYJ3,FJ;H՝y_RA \nʯmV2 `4厍 szHX`$M?(D_4-ˊɐmt6>s~6%طXY-coJ%"27uSAEEe+­#BU|\P#=FۺB|NX"($S# Xr~U{i/,G^~B0yS ԾU\̏]Z{W铚}^ȼ)?U4 L@KAĂnKzXu7@FΤQ~8yeWszrdZV'zE8cPqrqW`bk $6D[P ^ Uy Kj:~&iuDCcwۢ%殾x?ntZ5K:)  {%`qO?}1y hWƤqؓtZiplyo%]z#]9 1(yxjk'0M-ǕC\9u(+@ULi$Q✓帼RT!%@kd K-B+/cOo/b8d%4^ # }̶PMa1ܧ8L`!,:ot8AНXĔs|a>TXJ@|/Mǐ%WoY'ҩWNmh1=7LqE|C~V)uX@n@ Al2}:T1waV ǡ/s|y2s)naܾ'K<.>Xd<:n:xj U,`ǼK $X7L5:\c'D^/DjCP!ewL*%8Ӷ?By!Xd0U0z}c:u_ۤ_CQ">?x^QoRV{!"g;]Z֣f]ghN&m:=eюfSF[U\Ӿfݖ,i'O>[vm"[@||yVx$S=`._= ^&KY~o,zZ~{yS_٬--:FXE.LY, zX`NF=l&_M峙fe8qbYvi_c?[TSs? n`p?TKO+睔i5.]g9Hl{=e :ң};[MB7㌉lV\8}.d\1ePVO-UU5 QX*cA,M9^kVd'{ ;L xjU |y`Im =W :Ũsq-u\K gd_7cA^{9{ilҙ0)QN#ʿqQ0\Bi@zS(`Lnp52"r?"x >iozz $@ᑰH X>0{f¤nYoAgMqZza~۔?WSw )(Y`_9.7 ޲6(3kZ(zy@9?18+,52|4} YO-p1SP`U9:ε.*w0zz&op¼a Cg \h̷Yfb`;'{x~,:~y}ej._rRo5S?E\[ ] Ca P~G/C0ۤ] +"hQ1٧_VKK#cS%_Ca=Kg+ɱT/\yV/VI:>Zr2]s^bi*IPRy2E;ԥQ +.98 S&sv p|7~|z3XE=qhvSOY[ ~9b6m-h{:fZ- f{7MNOE!=ȡXL\ՌEj{?8D6kQjPUq9Ͼ.cm` gSixLKC(Z^=pSWXQwgс1O}gaV.p a)xtSt˓'XP民 Tk ߟFơA,R_|#Q7XM&?r Ѯr >߱j 8ZG}FKKLț eh/PAhU6CC~%W%o^~U_Zž)|r2q'Gϖzi|u[]nN+Җϒæ4uzNxi5mY]~ДCU(zڅ˿fݖ6c?N&{m7I9%'׺[:/W`G :i%oRNt;@(\K=Eɿwn_^gISJPaoFK/dOyo}[|eT ^o8M Ͱ 54N$~z[K0YvW.yKtT݉])lejVWY1h*%ۜEq_DAF2L.E@$d4o)"SeI[dAd?>'"B3JmG/CL0] ,+94>L_;$^9l沺| /V.sMp1^sxcN )phQAs\}u 0"|A 2,ZyȄghc%a5, l\JvˈQkqOGO "NOI,_<q^͹R)e$42Y?Ad,eCoczŬ>%10eV5._wo!f-`2弯0ThhK`pu^`,Wq6[D!j|V. ]n5jBt7)΂FCb_ !\)P-֚耵Hw }x%]kG kG|(E *]pT/kS*ZQF}SL/S,f\倃) sM*z~1lVEvf:yYcz2sV(chZ>}{=uN] ̕cXLOF-89ӱb/q;V*Ywe-x(,-oK<ĸS6J@n/s2浂Uz`dd|*,9TA޾@Ъ?F1rѓ/JPָW|eX/yQTu %o]N:U,[ɠ{eujkЬwIN5iމFɿ<} v<8?ҝ`;3 XkqUǤe蔻4u-xa'^0ɠy厞`gͿLI lvnu[8*ɊgrdQ$s8̙/8cNrěd8Ǝ7%z|>Ouo6z.>&G`4EZ!;gz[Og{qj`sp-T^D_Y*fKu54ikcsn+MDˁ(˗qC~j!y#WkSs<6Hc3Wڴpkǚ\i.mKcn@9)'15Qw˫s37~3]vJ/;>dW1 _JʘܛgqkZ/kql3Й\A/~c:hqd?72P @,b9HPDGٸ^:INjV(5,Oz5sUKj-Be+R -u`Zp 68t`Z A3sRG [|\NG'+/_.~[LXϒqw:ÏF.%{ (Rױ2Zڽt5h]bj$c(,&ⲖH|=5K WϽ}1^e \F !Z-X6!O83Ƹ{-Lb^.A֓EñD Mȗ \{thk]KӳU`i"ic{anf;Ƣ={ch$H0,P ,i>S^ Hz ?b"bi+Gwxe~H`$<] 1|%7O|uca95|A.r;8&k!Hj>FZvYW&jmv[Z% ، voTY sPyZ.*5q~!4vR&i ۫ `^9L:1ɨsQ8?Νqp&bBHԉm |`a,eq)q j?Z/ޤti< ً&l|Y;d6_.^sȒmQ":;iƨɦnֈ[|:+w,C\={@O,>w^}H%eQ eK/M=y>GF: ,PktBjc":&g~ ~$BV[}![/Ej}QNKXÊz]6n-'=ȗ6ce^*qVza?9ԩK k zyl]1sԩG?]!miyCGˌ4E߳Wg/+i9}+\S Q\~Eyp P9|e9t"kµgsb4`R=7}\}?je{4;MxlW}7{\:v*mWt>dБ˓"p%t./. 2/ Swar߅m/e1/7 ;Y%zy }<<ʘ|kkHfzI֍ҷ?6nn_}WǕu}%FvlTgIoӿʔnk|w 4Y޼M{gcŸ^%KZ~;IAߋ>>pjݤcXz6mswGNd.clqhȦ.j)+ojN稟Mv='8Ї(+)ҫ LO[ӧWVnvS/Q~:@Χ{Lzuw~ӣOȼ._+N.ߘR6};sE=*8ؼZSF:_j2˩z#ϾY< ܥBMv^u\eN.jY rt.NBE<< p@aAXW@c& oes^;uGv0I1>Dc-t{ ÂN&\_*͙ԘMg_bhzτ.FC$/.exCrw)t뢯&H9Wl` æ:`0: qbmqPZd0VϬAݞc~6 ԭ%X{2P] [KQY ^g~_tI%EkG0`~n 9{EԠ.gѰ.9L>@H/!1o-*vs>z K3ǕyZÞ[W-S+ wbh5V@CaNε*o]\5\S h3M*q/w[N @IG4fӯr)ľ %،3ю 8EcL^ǒ#袱I,` ɂF~CEM:=lsßS>v]*\K!y"$)@j krDUN Z@tzv! Rjg)b骧18IWrsH3%_U>(g,M- )ʇM5 Wqz'^i2}pP{T:dWVs&Ň&I3=b}(PiZlgMutimzr\Bv*"X-񟡏p %rS2O 54ՕumS7mKyȒ?+:!k>_Iz< ҫy Z=w~KDtq" :L:}ǑW =Lz}7cY1uOGt8@D0:A],y"/_Kg^Mh(hPVGp5 7^X$'4d/s (zz`QԉK)-Uu%۫2st1!yMKX7`^HdRV2-a_Js|܏.] mWq<@ce4 b|P ,#!抽@ 7ZR>UE99HH[8|rjЫ%)hPO#~4N<ҫŮRWp 6ii~ɾX~!,܇|@S z5Ba `XX#f\}\2#uդZ]lΘZqV8w7APH@@:<5- w}{# Wf v!iX^+_^9W@|iBǷUsګ}qA+mY˨m)9 (3pC{{KIWf'CiK&SKln;.ʨ;*j-TZ*=w|Afn}@67S&lO|RL.VWrg=Zaa+髯Mv>wg7k?n]Vi_N?vp-xM;a%P:XF52Mk{ {"~gF7#ݜ@RMmxN(z,G\<y1rY㌰Q" ?洒3B{ r \{Mi W:~tUu^2ΜwWIOce_{L4/'`I=X[icŐ'ߑN=tX ⻑DCxn5_Mrx2Zyu/pO_a9/y L^Tu7W &QseC\MTLfbznp4䴺&3j;<SqmtH+ _Us]rm:Kŗbr>ַc' ${LZ4}6Gc/pB<zp`kWpꥳMe_E9! Mg^"}m w,cZ~`To2{u [x>ߏG~;syz281j,k>#m!*(|1~wluJخ|i|빚oE8˶=_kI B?(|+6 ~]c>(~ͣ(ym 4S?O~?ZK67Sf3y `q(`Im7?{`GPLA=xQD۰W^{E5ZIc#5XpKQAsm(3j5*[~o3_@6= V#0^Vq#q㡻։dD.Z*2娪 c4w~ :zNv tte/9~FKWyEk\tKA&<)%7쯖1]>܏ZP< HbzߏL2zR,H-a)V&?'6W$@y+ƹԙc~ cu5(;:+ ӿ+\ՅN>$eۅ i @QO{vkӮ!@} &B4eAG}_ I5 .YR]5[bwAue-GBt e1uh{Hkh_gʹ+lMSYͫmRO-tLMu=}nj?:1fSkEt VA_|B9!5A)1GCWyDZ8KCԽ ŇX:zkġ,L4iM&wM=dVЄ#hagbq&EtfYsv^bnZHW>l$(g\I/Dy3]~lܿGb_9^H 8(@._M.Lg/ƵZG )V[;J==oe,4PN0^7>jg~[z)~+9B+\ Dt C73иN0yFDgzmy*/X\W}j! 9a_05(vHGf?q2h})@X((,Ͷݵͮ.'R/x5)>GN>N>(/0j1yZu ~azҗ_K1^pM!v쟧t%ʽ%²uMWϣ;>B"&VG>e=jqVk\qe&/a=9н Vg?> bUr=0=T.@{㋼]Կ}~7Eɲ'xSۃ7vEJ_cْ]Oyzz/s{ŕ{ǁ^l$/u{m9i?yE;n۪Å:qxЫ\]~e,^m-SӳvzձK6`MCfMЧz*boTzrW@5-Zѝ?>Ez&ۀJ:yo1Ł~h|,rK{ZДsI/|.`Im]mk9Knp`Қ JD7Ife~OMuo"R_:걳~~ҍn^`z}#ky(|ԩ73;ߨޒ7ruٟ~߈6_HEw:gݚkvLmQxWmc9c^zreK{s}}|-C?[>9Wn^#_봚gq@\'>5~w~/:}nk2̍_]~;<;68뗖v;|.RWvhN3-Nr gmzۂ`p+!ٸVhijV֢.aMEQ@jA@qp\g C8%+pB䟺^x"`%ĵ&RZb%޼wpX>_uh(sy1Ƞ :zz IbITO\{gJo}4 kC{~:e VK]k\2Xpl/'"Zd^'PJq]J:xC M|sP{:$R>JGyݧ 划=&U)ꕥM:9q2dE#K.e#GpK9&l߶C a]l9S@L"iMDo]@V%OP`2CQ&~?_gN9U\0n/sjvz+g8vA8itjO:׹;ə+\ H Z̔GdMCay7+}P:8$ҧ%\Ò_0G(,Gr#`; \&5sZkd[,O(@$F@!8 5 ߋDMP?P-w3A ^s_C=¯n\T7op@>]Ka1InC:wJ] f/v,qMx IsÊcǴE{X ctx&EY ¤WrOLv'Y9`8NzݱR\2ߣ%jCA)y=w-aw  VXy*@I_apKsȽm*/c&KNLJ0aS_~12GoJL$w 켑n/޽5wrk<+/Ku5m&JU+|lnꔯG`AEM<*.9~{}gX4pX9i{:UX!Z&W8<aVQp=x-hI!`r9E?v~ǰZ Ցx t_ o_e,Jf \ORװ|eЎHba-+_YBFt}d-_} Me9AX ǣ_[0UG'ө@K]Ƌ+aik &*M}G]!tsN?N?c ㆞y< iZI:v·7I=&/^E}D8]c~Nu!rՕF>yfټ&Yy#& S,䏊/Ӳk?S_g>rHz[p-Ik]/Z>kroA' ȇqWY:LzXE%KAꤠ/Tr{=aqغ'to^UK7"t<]x6*]#xY"^r"֨/ԹA9蓛&omU^2w-O2WQ6n:0u4|I~"GncqS0ycif%@/ĞacO2XD0 `rcG'*i_+}w} W,2uK{xa">679wd$[/Jo@yu@4x}ou3ƾh/WOF8*|*uPEDl)x…omro־_/)͛vJ[mQ|>zvTZNJ߶_^͔nOc%_=/io=V/pk^ߏXum߽i[G#u(ًVn4܋_;,VYg |/A1w}cj2\s `-wǷtwmX^%#v}*@Guw0)ݺRO_FJ~:pp󓺌4lƵL:ϩS5?n^[3QWH*]yN+F*5uVy0Ww.I0Yvq[W`[uz~pI/ϟԧ0v2W:Jع3^*nQz)W|u/;WjUJnG:{i^y!_t땉 FۊX-!9+.P6$~ x4a7gq@2^9'Me籤!׶rUƇKN1!~p- X  +htV1յw=n2$8 irCh()&+mEvje͏i]黾}\w0(@q0Eq;]~ӿ&8}kv[M!,#dC8nӼ~3P'۴^?rEJMCMp:73HV!X, (+iNYҪc*02!Z7ە+k_Jau*c,\ QZ``$F W4/,u)Z6hzwx$4Bd .xaZk3}*zx3 ς_^o/؏;2| W!7;0/bpV,.b @qP vR;?oH7y8+SD0Pt: IK-h5:sAC#ZY7G.v{ۥλ=!B۵ld ^9*t7W⥗`xg@ksX:W^,4Mx xiO^:?\iY 8Z$5􇼑JzX_q{0vZ:9 kXKUk~(ܼ9[I?Z0֊{+ i{`:nt?[e~u#+I2Xҗ((>$# pIwXjYt\nwp+d,20 lM0@ȪsO\ T>]?+Yﰶ/9hax</ZPHpeo1O}QNUW-b Fe ԴUwq@G^ce]d>E~j/VLM^#Akِ{= r/U܏fA~CLpsY#$cSp- Bչvx-U"=S#a=\&>y4qh*EŲ_O%eD]Iwi2M|l\g̐:oKN]uG0vIn|5-͊!2-֓H3[Θv[hX>u0=dP]9}R:RXE:]]49{X:iv49O8|#Wt`+̯^#Xk5=Њ b֩Z(I_~G4)HL?c?c~zdn~Wy\[WI.ɺ+<ƻ0_|F^))9nXUmUm&l`qi]﹞[/m:JNѿ][Ikӣ:ߒgn֯21 w5?5(GBTUK%o˷p ƫ+ݏ&o*-+WkǮU^.oSs:7/K}Rp8ov9M@oKWyϕz6|[_-[x'OfSY>XG qF!F຺HeP0 Ci7yLX IBr+XZO9ˑ!' S׏qo 4VWaX".@i$]˃cp^=|r*}M/L8h KOm1KB}'_/S?<lA:[K6ZPLh?RKOqEL Kl'^=cYnj-z%I%e,M_jy,0Q^B5}ejy8c h^k-0D;|0[Z({,"n%9og ࠜQ<>x ]3fqˇY[i2Α#y.7{ҩǞ$YuqwCUbUmgE[t乐9Y`nhE彴tڋg]dr~ 1<ʙԝsZmGU&{"%ߍ3/g5}@)MΘW=B4*f}S bxsh+# +mPs}oO?CIS'N̄i:<,@I I낕Jn;gaE.Bup_W ƌ =݇)fr.E(Nl<=IoJSb% gA}BJg~ ǎI.G3o3 &r&Q͔|)oVQE A&Ka=PbR/R9 G+pͳ>jxȑ8?[Tw:wD}^ 󗰰8.+|8Zڞ fuM?'C&C^|'y<2-#Xޗ+z3O3ϼ55Yɷ-\w@ִjlJx\/UI~VhRlEp%kKZQ1rlp!&˷Eܮ?BşW!CtΎ1Z6D]rjkA*/~f#XWVaV0^sm<%Qy/&u~WjzWzt7%ʹ_V~w_Yf|2tt!]|tx _+R#Bװh}ϵCuwߣ^%C`'q?VW`qsӗogBԉtk9ךD]n8M5~F]~+-1/u(MM17ʒk"{b!_0e~+ D`9yt]y3Mcft\-S.Ғ0/^k&]fO1G9&G!ڄGtt )] 4g73DmXt^!q]E]1GC>{rm` \?\'i/}}w ,&,c١fiݖަG6KS~8KvN{/^}os~M/zR_6NѺzvݦc+҈,Yv.^0tfz_J'2@ 7Iַk X ]3Ǝ<5Ђ 8W3-Ըtޖhs'oɸcΖ))w}]| l՛?Eaξ|2&/ *py* c<؝^z\Zw'AH5]C}An` *Rv}^ c˜JH 5(k8;0?ȵ8/9p 7zeVͫYGOӂ%'X+Pc"S|Jx8dY :׶X뙯О +)~9#ɰU}3trc.7r^V#,5^@a38ή)Vdձn{3MoIo{3'H/]{V~AM}~ ׋/3gN#^7LulMWdc/Z8'N]1MP P/c%~dKXmyY?Q,B`{9ܲwp:y'O|B}Na}uVŊL&>A Tc]wlb55'h"?mԟwQxSO||N()]䷘"aAsreDزqFH-gXGNpzL?8@kT C#_&FXo-k6n-Mw@vԮP.$O~7͚%ҘD\qEVJAf; oK[*nx/[@}=eMݏ~Bx;[Vkm= uGk$_ Xno@:c$9X' Ük⡸<;C'_v3K%1˕ܗ M'/`[Xy`5 \a4nm8߹.ft IU /t*y~]B5r^xA]aut*SߺsyKiy߇hs.׷o֒E /JG7T]WKv\\Kcr7]/d;!< :wo6璿_|n[W͖ _f;Is?Z{ */5`X,xR{',KY-mKC åv\l8|Zr?5jpݠMuxߨ|%-YV-LʛJP*M5pй+yOuV5R_Q[pc%Jvu_IySOͫ^]Tx+'X8_otwx+4ǠO;u_W4i좟owEkިv[59s#wdУluÅ/oǗgeӟt|ɿ]٫ix*+twv_ܼ׮ݯ~S:K;[r~_oaleL6?cGu\9 ,+=pXʀ pH+`bz75q" š-^Gvq z jf"k]ea)[l͊` Yj-L.Ɓ.\ÕGơdϣ^uW$JnA^#ׯJO<{4e8-XOOE%:! DbUUW7Q. ]AZNzx Oȡ$F6q=,sf26l.ۏM.U$錰tdOWḐoŕ7 c ֣tE9}"! EF~S`@ !$M0+K V?J=L=󸉍3CXW-\Ǽ](%J;buF|2ok fx㐠f׸zPN0 >Gs_\ 8T=Ģ, D;099&,+08 pW^Vdhn,K.9]6@l $t/9,M>}D Z%Rwmn& &0=%w!"+YòB\:3M10`-E t7:unRKVu9[Uo~VmiXKP1eKp-8ɃeВַRd|U'/9S e9p|.7[Ùe>wtPX{/ i5q>TB49[k/nG:Eڐ}We{ =o;=$/Ur$`rnZ~/0O}*]㏝NNK2&uV~>CzF^+r7*]2!t< Kbln-;ohr%tqz>/PfVхML*:pqwp?K]X!َk՗]{%b畸ǎGO";~~IHe]1>46ĞON~:4۾ `pu[FtR]?p>uz85i,N۝XA1bP7dޒ?.Dz[WX|!>&yiah094dt r|%. eϕn`9߄ƕiŞj,+caR>߻x *Dʊ:`7}XԽb]|DzmtA+X1+/XLʿ^GXOLV6Ó27C9}3_:uo2u^yJNQ/zjz{Ыv\/? 6v]fc.4tu*\_EҗRwzʳFe꼛 Z6W&-Ӵ獌itʵwG>֮E <ҷw7,LBW;\{,ܸr{(j&7w__g'>8 ~mݫ|>ӷ US—/_.{I@LgI_|)on#d/0N%Wo}& si#.l;St^y٧h6ߥOgu_R}.c/=;m;HG`P8P&<ގh] 0Wy 0ȦƂxi-k/%y3p $׎ Ή08F$^\ y:E`y&s7&ќCxAfX)IXgɧ&/^QJxXF9>!Hb2z-@% M~3ߞN>ʑdVPm_A 1Lz`ˡ-@yn̦5;p>p[HPz ֻu5ӼJ]ijj0D:4a#!9y` &pۙBN;sԣ!M|yBF%ggKDwxBY3XCTyc@Yp!$'sSk,tuEJ Job,. a/~3&l0g?#֨dR^X "φH>9pzӏIĤNc^I +[_ Z@k|v[ Q%j]j``mRoCLpM x.-`Jb=/]t*g/k.V\S[=rQL#X{}+ %hJ;6 ;ML 6k4ǡvBZp}$ =-] `r_n(W]`R4h`Iu}Jgϥґ\'JĪ"W~Ъ`\=HrAx?y)w]#2!v&<ܷeL:`Qd |>1a, Dz5o;5US.Ha1Qc!uIZ,w*[CUB>̅N?w0-҂W\@a+׍$)5.>:=_#ngϾZX_KI{ qP x@B2+/0_K{x_履O/^K>=s<;:/ࡖ|@|IEyQ?iN+t,iVwA×,7u-Kbc+b) 3i}1ؼ |dyy2UqS׆SVs{AWY^ *ǺY W OKeP먊<>wy^JG$ֵL'>|4P+A{~|Mضyٳ#&9_/>ݔn(tb^/ÎE=e83T!ci7aTsɤǧ$Оx.m{5+o0&Ʀ1i^ˣθ)S~<B/6[f32 4?{ˇXyk9s|Zsvh|yBJ.0J.o? ڣQ?+}[?a9KZt/bֆ:x~rzuJ_\hN\[oGC|7\_?~zJ|Ld۩K(oF<)}o 09tڕ3"K$9s?YP< ClyBqFc|wa8kM$UKBLژ 2ۊ5n57__`_s2xuѫ/bL(m>zxp,=,kʙCo!Nk#`m p v mkEɁs'9s伒C5^ [QnZFPԵBYck VV\0c1ը4uNKs|y,xWo7^0ӭpUqWWiwL`U&5pUޱq Fg{j~Cwސ `ca4pLU K6VH|`:vp$ކN?t ,a%,u35"wYLd-`08G)"?b>Kn R"-T^:9ZPN'|_S}hDy/Oubfzẏ+E#+_U g}Ңb_l0@!sї0x)C1̣nAZ "ttx5H%x9l@m(XzaO?ced!Z(չ+^E^yCm۶ A҂>> Ԃ9!t<&k1%꼰0Gү'A_=0bLcuRAC+Edh6C"F4:1kJ\7@)@ ~A_]]lLvy|C~el&S≺ XqiZ֝ŋ { ׾eb%MN ܏>Z PA` t1{4~p*=y"t]8?7@,̡ϼ{>8@R@a +2ZCƩ<_iw񧿥dٖykx1,]PuZB#w2*2|!#"񍫣@`v/ʤ@K.v3a*6t1O/OtD+2N?t4~kzECM;F+ "dC倄j2qʦ!槊T+\K|pӺ@y y~9#I#^0ˌ*4 pB#طZMu Ӽ?,bAWs14bYQ,ͺ~RlH7Gσi|Jn/.r(NZEU aE\=M{FdzɷI,S%SLkmF-1~d2&sęOUT: [oB2LY"LMgf1wD/3q!dB_LϦŷ \Bڍ{Fgh3<s+av)Ґuw^ ;?t3[ P3e??+edٲ F :Ej-ScQr$QAEFwċO}-Ɔ/N_;}Ve IץJ f}"V ~&N0- r:x:\9^z1 ePWM^8h͝,Q _f[0o&ƶ-g/^@Mc&}^}!<5O}(C=Po @LKdy+xq*s  ժ̺ņTrX=}zt=튗}L2ZD.~Ɏ l3zÁO锑Aktby^ϿmTvˮGɿ^~ŗr{Á2wj{^/|*[>mg,6Sz<^헴;{j@wk `E<_[^y۠CurدkBvam5H2 5_w@ r}# 9W֋Jv>Lףc3y++pr׫p^ U:Ϻ;ލY=Lǝ b^+ [)^륩c\-`(m=FIFw2g7b(ֶ5]j9--̙3&{񨎫åPVm~'t~ɧ7qc?J%\,; 8^.W+Է2vޭe^u-N~yrn#]02CsacgEz7CHspɓ]Q/=*qoD<\> hdƋp2;aozSlzX`xV9T@2*| ,L> `ri<ᥖl UC|O˰&#^{}CKA앫XҌcs (Eph1ix^uGJGiPbT- XX?#[墭E u^.H!cX*}>ल# TB#|ɖ`k>z0͸|,hDUZN<0M`<)g}1l3E5cWkJЉkKB7_sRI-7@ݘnxm\_9#|tۓ8$/4@zӃ{AZ kym8Ϟ0܅+ЄuKѢ$@ ,] ᵞғ| NBҁ44~0ŤA`!BcD@s ~5֝<%ZmZ~+/1f&݃Xj%8F, {GF1^C*0{t FA_y˂N][`uӱ6PZ1k 4*ɶm!sщO/tc!Kd6Hq?C@'LG;6mq+]hsg^#Ӭ|/5/:v͞ y,}9hۓXOuq~AkZ<pI^{"vr Ŋ/?4C~D>’.7M+Yr?75b+BcqMCrLwO">]`~\EL[}븽{tK{xтkZW;q@賟k\QV5̓}ut_~lsb+ort5e@뉏>d|,jiuzv]apDɦ>>e&TԚ󠳇@xQKc7ջ`i-t{78X#s$NP5;r=_EeB-ea9vY B|5C];|:^{#|"X^WΧ Z\} \-`ry.^&qS CIcdCy3?{QoA^ 2DWs Vįawz=|xL$QێQmө3&_u U7ƇM穷_aǶ|x8w3n:Kv*eQ?KzҲ^_J+ @/Y֓nW%^W\F{^k\W?mڏvNmɭrl>nw0n$ًw*:{%<5a\T1,`r3`RoŁaݠX,?hɟ>odUa,k wi2kWGz+KGdW‚E}etkIR [18h*+%i~>޼y⇛w1>G8P3 =f!'L}0z`&`qrٍa`[\k)4|€1fD*|.W b`-= a]Z!9\0y:5dCO+*(T^ŵLJ\ ,qkN9 q8nyͦ<{\-zlGx735Ls 2iל>]nݦ'w$pCص@IpVqK3_jލ#MYaG}g">0ԆCX*ZƋW~zj39pxm(\ }ZAR2GJqW~YZ)hFe 0昴Ѩ:|cVk.Yd[X0)Z5=e+oG9K' /#*DW=A[:T<'hxu#\k9U#G!x1$prsR @8]oOp19Ǹm"XĚ}u*X0VAsXX䉸>\0p-,m}`lHIA'_RY@]X<))B]#S"0>{}ڏD=_={ƿuax۹&itVcl&nKx/T˘'K~iu|b~ {-m2@u7?Szc{qٍ1N2c[X0bMxP^˿ɷ]^)p Jێnǭ*w[Sg>mŻnz\ELO~Ε:}n5={WgW#i37.cs3n;ug6wZn|;my'@&IL{@(i]O*5=;3' 2ӷLʟ Y?Xu??[$)w}ro}WI] uSv(()to6/M߉{V'kyJ`d vÛ}β׮˯'jugx+C r2Yis~W[eaZ~4㓟ƫj3|$ߕW\O=^^{no͵s ҋGݸsr5o>_nEwn}VxNsene?<;\,I!>0Ƀ{Qry(]=0`,;w! _ʏZxhQ\!?< zP2`Kf"<8{8q HmYCKArY^=P(/x%^6gX " %Pk+G>jW_8тԮI[ C\AG Wvze_|._8c [\ޕq~fAty`L{<Lc=MkWX#MPY ԲT'^]|9vWjsoHO55L2`N5D]¯n*u+/b2@g,\/V@`.K u۱.;hKB?,& m`:^Lе?C\oJmvc2|rM^ǚ)2h%}l#V!2mYfse6 ʌT[]Odc<K~ h"\s:#tSxO.WvEgͯDh_9e{j˲G7b@纳űnp9`[s͹95ajQ+ ףߤ@< y|3SGƊG 1RߵxNUfH*/ɹ&Dg,'Y}bϹ|?O+x?CtInza:gmjZivx~6ȱگ7hs+*}/hث:6~!iǠkWn鲝|on{7m>}zֵؓVwi` m}]~LneQKwOvFu^'kidoܽ8PJ7ȭ\~n7$}N@~]_4iϝҵZv @IuS/p[j?tvg{-N|ެ=nnu歟~NWG7/$va;` I ~}z|7I˶Yﺻ؎4ui+aC鞖K+O^tq3~yV/|!3[cҞ4wL/˗sO2w+ߺOUKWCPp74n^]g#ڦIYg?:4{ 09qOk<SbA-e'kƒahaҳApx|m9v,S`ρxtkIdfZ[-ye@X[+p.]㐇J(_ #]ߦ8>l˃wu&'m|Kh^?p6a@vCk- @!y(CJ'X |MVΟn>fK$cXA`D pdNPiJ`|Q\ڣ?yRIQD\B(}r $ex@*h)i!rpMvsv/ Jc\8| ZS +mQl(#qT"W{E ?pm H5ZZ]8E-xʳ'Gcӣ@`q{f+o|>q=TdؖmqUnCh'.hhӒV69 K|)W_#"Iy\PNS .@F49Oથ3yrM7e6h 7ܼx^ 0MѩsGh x46^`xaGGߠ?=_$II m)kY.ͅ{ps` zb!Lszx?+Bcr0 C#1 <,8bX pzak-`ȱ (z3ʫak'ܾXE L&i:0 `@?{:JU}BsKS <ɫX,־a##À-DY/l#/km s-"\צ1ٰkg>FYYw?q2< Pk@3,FXe$$?FntY+m^\Qbm@fݎ5Z+Xyȵ5l)83?9}E1W3^XazSGcZGźi+]7+hJ;=|s͙Ss Wz=}&Sz,ֻZbo${Wo2g (8ҧ7vP^%/UL&[~KNbOy|]^G^} ]b_BC*DH=2O:/OogkrO"3S9sт2/U~NTʖ 9 2\꼣X2GfMmtNۨ5} PKy_fWNGɟp Mf3%07/wV ZvCec3@V`:Wus7V>Mhw'IV"eQߏ}soպ__|,m;[ѱ:6#@TiYwn3iZ-O?feji5`Ro'm׀ɔ麍:trͯ,q|)L|u,rYW]n~u%}[ۋ~M}ىKz= pNb;kԋf1;3ʳv|y|Hy.--ݖ_o>O=++\,3._?_mq~I}?]sIIiZrbR?lWyFaN]];L.8P1͏QC,0#5@ ۑ9\ CBe␛Cw"VFOft ٜZA(7NLE?[O\MtrDf_o-PykZW_^ AQhP8OV1iq @^ePPΉǚ|Bu7h' 4"иhFhUb*@yo{(棓AXts\;՞$,\VKfb}q6@GGxy"zC 7k( |?6#V7 ?Hz+G402wku2UY-sב_'1VWo6~誅.,ܺьzU 0CK#`;,5.ӷqu胇|03Dl=88Ɩ5(C9|Z+`-E*JWb(cV pyccwޏJ)R#JVQK 0i%7Kާ.Տ^PۮdضmBK7xh!@s=9֦X x_ҍWK+UwE>avFF̀o/_wa{ۧYx>Dx/V~׷}1^( p wO1KtyId9ºL+:5z5?^@>]ryu@NfurdP74n~}B]4 qЃZēǂPcpuZ%Akvkg ;ߤG빾Tq˳DZqZ](z<=gfBau<8095UP z/wrI%g&He\Ls7>*c1,zG\]uTU 'b.VҼ\]": mY뒬1^|y~оl!mFbú s/: F4*u}1;/V|ON$-?B<%V-5[,iv5n|FLazBW_H8Z׌StFX<4:~w;W{%F+'!.5o_j>Ɇd'k0.^XU^xa `I<`rkZ.FUcݺ]_ + _$v8Uݎ՚^Pѯ[]Z#hN5 {/]\`Xn>S[6+̭]ݷBx?Ҷoޢby~l7% onv͝/RY]zLwue_5Y/>l̻~MnId/l7v~2tou\܋=rnn.l۫۩3˙7˺:MqC{>oT&r;埴Ov^A~+SoykeZƥms!:9o;5KyO¯Kl?~t0 =XIqZв1{,ƅԃfc|ā@p%"^Zh.|7r,/eYF99}j:ѝIl;^o޹t eg8䓩1 Ē/^<w\}YLx IZDsXČct2y.}FALKGۮ#*f K9k/氌뺇aQ(PG8pӂ9/]8MXD P?$Z0 "(T2c!*϶ţWNLcqzMo{1[iF @c0@ra}Z&?u('CAa-L $bQzHu^rW Ouׯ5 :q iw'krУI'Lpaᑸ+5cmȔǭ]XV#drZ޵pz*Nc^G)lۃz&XY-f )ŅDsͲ#O6dJ  ShfV6 ~چKLGo旛_(ɖhaVXp3A"^,/T%R(8Pw"_ ^8|?sGy Ut>z,AP*X`! 4` 4EO`GcOZ) 뎄cьxpbuۋ\ hQUtF ^ҝ݋s?M`ҕyt}C0]0פ_p?3mjIs )= kɑa# 1^yN8yk9GEMn3k O :a2}͏Zyf"||XmzEϠ xW?ϥ 7/c 7@}`0jdı ! 1?sQ+`D'#@6*!>?4Ϗ}1fF_Myc{k}& f,\Zȟu+{tme] {DZ"@m|smnqx]OƔ{ѫ`}`zz`FFGied:^;|xjZu9@ʢv<_rC+-f A3 O4@.6k>'kjGLbZ+݇'.|ym&f~ukt k%hHzv)>~暶*u [Y71sLRXH4=?CW^d@IDAT5[Kh}Lݱ1(9yꝋnDų"&zlk Vrzr`d*SI膃.C#.ךCv<8Xld 0FR(גnXqh u+KX,޼ߥz?l>irXbρZ]JE3F"=mWK\_,5^?wzIn]G~m'W[Yo7mv/ݶvt~]f}ᬫۏpN7mW?2ʛt}ץc߮f)7eSӥ=ӗ:֍ϸPٌU'_z/Z՛e]f~]Zvޓ&%惖&k EMWK\ 0Y~/l]f'^mZ>yЫ˗//,f&`>x(KC>ǯ_7 z.='{M k-~[Vﺝmlg? Ms~ {qgl2\K3Rӟeҗ^^&kv1]ݓ%c/ql/oVβuyKnuQA*~w#_.^#?=N\}٧~~s/ݲOBGjO:~ONssu|7\,ӌ㭧~7|_m|/C嚞VtBUSn^u>?,in܊&GycqN0LpV2e=ÂIΨ<,GR%@,vB{tz((K"=WrS !<@PXbUnTSwp6s'SV?RkT㲄tF7 EJ[(`ִ+W/^j.2Ü0PGxF,*L'Ai$8ȅ9cQȖ WKKs|K< րg灀竇 pn 2N` /F@>HG`0,&f2I伲N`( KDGoZhY9gs<*D`=Ȟ戄 <Rɟtmq9Y5"_'3 .I߈kbl%`mAEj(;vz KXoFa=-L0=ӊuY)ge?/B87 ?5?}+WkLWt7B @$WUۀ%޿JOkܱ\C0/*`It.W4̼F !|l py]羺/!o#+xQ-;/iKg}xKW瘿>qwݓfO >Ru3E'^0w`T_#兊xnA=ZоcC%uz0QA92T¤V_-^? q5[Z@*xg~uVnj5c3|7Z᢫I{cyHҾ9pmCdE,γc{@+yw7leխW\ u*Y\SMYnmgkmg%MY^Iv>~}Ny6~POnvVUnܯ2IkcX'zg~5n/x]Wg履z6,ث/ۍv Muր9^湂nw2n+?fy;Iݙ3goP/{cv 4%M^{ v${qi&{N02_jߙ{RvZɝM[#gn;ԭG7?Kd/?qK8v]Ƕ}|[֝7ߐ턷uYs]|9K/5N9uy+e^>&/|W_mFOr<66ƏhMOO,N0O%淪c//J>Mz/~$9kf_κ[o[__y/_nv/v :%0fZ CtʴA,ot0<9<_A^l`A.Z&>+! 6`*+( Zq}.ySk-f|PAa^9{kPZffkPݣ܍;/KKRCisp@1@p##q4I@"]˓ S,׹^bH3s$;֢+`lbz=S8Knl%`pxx3u$4oI🠞W0;HmB\*k8AG!L|縪YS&]3$_9o04!e=BX@6}-[7@].uiT.^ `_޸qm;wh;\ozVF1,lY1E<<T( w vsu e6-i![,ư0<ȽJ3K+ʔv}:X+yFGI,#Y9syŞŀ} ^gZZ~< k`HEbW]o.j+-K1NGŊۀ݃ ,T&' BDGU%{ p\Lv.: ]n~ޕa ?9ȗ/X u}<=Byd"xI^dIFNrMz&dZji߼xBKy1btsoξJ3 `Hhl@fzU[˜6F)փkbIٸHOʗG5^ h?e =]~$Q7mek9Pc}뽈XncH>򥅰,uM’$zP`sx@GE,;^۾%i@GL 9 2{et0nf /JlްJ 0^"N~ڥ/i9MW7,Vcg'f+2`J'9Ь[JqiagI7oPKZg_ H0 ġQn_f ?Й SgBߗ+oqhlcy0Y&2cG<떖}N 0W/cFX򿏢e/tYS!x]!MҎq=}w+Z)| A@xAe="y+\3~h~kBZ1UGΟ^iZ]6fe:2ve5}-Yg]u|w>oծk6 o^7$uoVy@Wf?v"x]=Xȯ:OG^n8۪_u]ru5ѥKU̗>UT6]kk\J>ۿ5O>yN6Sq:l{3Un=iK:9ԯ]&2pТ\X˂BiGB4`Ü6VB !bA B/|b F)ڡM;X?:@*88H-Dq:SЧM+ =q0&Cƹ8ՉiRpa٨OǞ<Ѝn((T|.A +7o2*bqC<’)킅،<Pu<ٽCyA#yhG)u `?B8t#Fh3=8D$(T:ZټqJ0=dU踍AlWT1ǁ]!ed"F!b9,'O&\,h׼shJUKX&'t5 ^,uj2WE''h {\{jٰJ=a]$C1FʪOMlƽFsr=Cei?kC3qC.[xILV_=(o,Wxb">'si6ZNBY}/1~u/xmkDE8>}/1$/t`yP%K\Ϳ,`m'2:P+$^,۠#2 ʗt] "͙s^}ȧ̛_}!XJ-8OA_G x#'Ix} ,xVO +vH6;JG y|ׇU,E5LL l%-HXVw1MA:{6 I@_iN9 .LrE\kg2v`w+x}Ϝ7XeZF@3w OP?Zג1|˴ėw0BÀ)=^y-Ѥ&kze`X![V`i?xE}GOs@fbERZ~)pjg&hk%J>=wox, Vuy៵v?CYtA]F-u="`sOY`;ȅR&1ɟu똖ik:\8w cX\hֵQ'H˼/@2STy1븥×BXuI4U=qZ:jZ= uږ@UH/w\sCO6'Ѻ֮6 z4\I$ hul&C_\}rE^ܟ'!՛\MUTR9O:sE_ ߌ?eT/4r`ickߨX4|2Ҽ 1I6;7u-M8DOY- LNJ K GG=:DZv'P9Cq6la{q2Psכ^0 ٭\5_ZZĬ= Da>`H7Oi~n-pa'x:_o!lZOp~nEƶKMyhͿWk7cAs۽o Hz"ho[/i`?ʬrt=.4?z!LVlgwKױb<+aX $N.$*=Zԣ25tSs c'k{#3_`u){ t ضsEI!D`@Ou,"Z;/}Ev Zan`5ص9~GT(:^k8JP YكdlA`kn'VzE6u0Ox]7kCľ?jswf|O0i^̚F-.{%(V繒{:>ҾĞR%GY{c>V8' <gcV@䟮ˢ~U^ 0?12GuBP3xw밍n=u~4U|/:ݴnk'q${YC4z'h2<`_I_j꺤ݾ_r}L^w/κ\IW/d%ӗ ? `zd?6??l^rZϑLjs?a 2_훿WYtVkJ7fϮ?2~ h4}U:>u~~],)=$n/uo,cLN8yg8} V%z3O:gx&z)ACr)qơ"M:LXplC2s9+^&v'@~@X$8/@3!] }DIg]8:k `.x"%NAby'yHՓ3˩f+Gvya.]\I=UUe">21& %@*ʕ@q-n4ITK.Jp<*λW+0[EːۣbM^H5cuX0Y,l&9 T@#Nc5_H3sTX5''}\B)v8DfHOF~ ~=d "_g-CDKnҶ[`:;eX^\a=Pt-1G}~s:[p, fN]?k~W!;*E0oD 0\$O](Xj +{3>{vF XRTpJ ]y8 r-Szs;\<Ь[:^}OL:X`.,@3#B] wS%{VtARrHѹM~+b+^,/ \JDbWXxNЌbJbQNNď ^-MD)zIZ$EL`ranַ+vXf3"`rX{wU"s=S.`1T⸤ A>0bSdUJ`SGzݹ?EU@\c%Ϟ۾~SC퟿`RM~f\rlE,9ڒV&*:ɶɨ e/ wtʭK`Bw)ECl'Ht:a=~z{IJMl\Qhx} '"j".f:TawX\a?Đ4tE=wZ $kVAYϴp +lSvQ64Lʐcurfz0+׮,gX A#1t|سerAR6U>ê.r8D+Etc% `bu[˵E9Y }l]RoNaaSeSѐoM ݳ Ĵ^-S? wLxACS2)ItGIC1^n-n :2e":Jz u8U&9kXǺj(#OC:hZz!%">3un/kٍWx57~+^PoEWWJ!k$ !!2?ќd}e)Y'_onbeеeyk̡UbP[I-Νs\еsxs{{ caeVe[qwCeN *E-^x1~\+qtrb@D/U}Cs.|3m^;Yx7{c&G\@˷Io0K[]o78 cXww0@A,q |K]\.PvQ5=4V'߯!,ڏM@3`KAĺg'{7`94#nrC{)ZO'ΜЉ샺$pg 7 LHs\UYy3߫(vb> nK || `iΏſA=wm-_=^~wK^۪{^Cv{7qik'e̫ۉllV׭s2A@'@~]~.+֩{[eVҔyu|:|֛ym7uYvulI7d H:괧ߤY&C^m:t,ʓ}zR߸oVo/`mz>7L.+ Ij /oФg?t>~o|͞ƺdQ;f=?9+}'qsCrvk YG ̸EYoߏFQIRI'ɛKߏo7u];޸[~6uiu\\>oηpW䓼I׋LO_ZóSfmƃeg24%?n۬Ǣ_O3~<+fmg-eL[ֲ:\U9]u?֯%utܳw7teӷ 0mg~$_ĥԯip[??I&ozspQD"N +=,úI;[dS!ZPCyNB%N Gyveg9sw ~/6ߺx3curXY&  ^ :k8x *y5;\W (D+&+&SfD Pp 1W^Y끣asX{Y`(%,eBߏmxwxy,xM({ue%9ASVʧ*D`Gbu?&tNI:6ݺʜp\ScNh̻X۔iynjIlNRZ+V&Q o kvŪVՊ3#a̺shN' ?᠄'1ԖRD8Ö]l&dgkpܖO9<5hǖD%mmH֟G'mr)ƴlF6?|-mͼ;?j #LRw(x\KCAz\#|XzE.~`al`}0:}9~Y@^aA1h+282Ц~@ꄣikkeA;pK# @/>c$`uGZ{lss Z+Ӝ--ke67y܃2ƧO6g^~9qf9 0`x齻X(ɻX\Uˋ*V:PrQ?$=!}^ >l~* ½09E|āfi.D5XhT+E5mFw;u"@#) 9iOv@OeL?>N@\pk1~}3|ݻ??kc#@Wd[ x%r3A:AZ\)M42A9f1݂^W7?6/_w~X87a*MK@]ϣtxPozbp̀d:vrxnr{dp7XeS`\]vSm]AfЃQ4, ky,(孕x1i@u"7BC>[#ԤSKǎN4gO7X*VgK%ED=. \O% EVcGJzͶGZ`uI_zPBQc$Z&Vlْ>i}$zӼ2BX}Br.r VMw>u7^˸z,׆n2ktڔ6]jW~?܉uquؽ/ /~b*TS׎h8@8ɵص?_GBJ=:I|O~dκ>P'=^]ΡBZ=oZĴaZ`}y$QZ Ϲv__~RRޗ1TȂ"y@7f&"\[&aNjNr>ڶt9fŢu!*4Cͱ3 VЖybi~Ybz P0ײV7"EMby(pշ} b @4;O>KiC1#ڡɠaqrѐZ5J<{q#q4Ind^?FubA=T֘Ȏ=`N<~ ˚?XD\M~E?Lvr5Hg:Op\W2۷hi^{g[g]u=OެLK?>g|']u;sp a/nEwKw06>g,Y:ϼkM~Z Dm%WuS&/RN u. i$=hZjܕnf~+`2ҔV&7GM=;4 /b\'}0//?[zv/;)Rk>6Ou/ *2_fzɼ~mw/賎'lOg|ґ}6~8X'503mǷMiuuێ]Ի<[սc$ErPG 2Wk}'Ƀ`=l!_=0 ^1-qzRZiA\LAyȌ(R.H)t.ʗZP Ǜ@I'?I^ko7aC"pSپ C&WZj\IMXyt(q=I %ivz6,Քi4 2ā-or+k/)Iȴ[o_in/x_}rD㸕ӀL)k+ k\K:-=e$Or+i3 `X9vt: (AZҙiub)h/L`0rHםKzD2)róz5嶡J2ƭ?  |ۆiᖜuL~rOjj:o~YW26"3**͕mh >W뱙!`#X,9̻|!, p\DK`IļF#&耰|5 >EW2^P$@1MKxw8iQ%hڍy3bzZQo v| +u5EKwzi8V)xU@4SGO@;]`-I@{X\R*R*'yF'wX댇RP-O9B/LggFce뼇Dh3'OS,^IiNJ.uEI8N+<<؜EwQST&K$ p+i6W"HMG@{c'F=bwSx#ʕV͹GBkQ\3hFkQ0_iMA$bU% ސX ؠ{ц5y+'`RymT}X XW&cD sgIoa ;n4Ke<[| yaC֥M\LJZn<!\ @ovyXu؛3s`yr؉wv޵XV!‰c͋O6Okccֱ EF.^Ob G@hmNx_  = ;yM0w\5ΞL$XZ&&YV} x= HZssK 0:+>^@ HS2Mۂ'KNv|>qz  i /Ȋ5+q?8J3ND6U7.>җ Dߨ2mDXG\yo[yIk\>TҺZo5|߈qEu[u:5泠pTxs.4xf?CuF;$r?d^O9fpG_j?zk`43r<3OCe-#l_|/C/v?KA4t>u HhaۮCh#H ]^XdZ97hFڜ:u=7yq9-oP=R|'`3(8a +wybyݸ!ǼYk]vGN };40:|5;ֲ*5mB~#JĊkZ9Bg,`yzaEwH6P7Ł!S44[O%35_p~ppE~r^G_>Z՚`s}~$m=)/߫:wK~WbwJNhi[ﶝ}rOnYNȴz{ͣ{>F%}mZt96ތg,qY6<|{iGpOuғHvZg~͘0)XR>lFS7M'9ip=`Lɬk'~}!nʳd&^s"ӞϞ@vۡʳt[of 7Ku.yfkZd' %s7iW'2_^u='z}q4iCvyLYx W.moPRw@IDATm^tϵĸ,~I77z+|>ggwWYO~ٞ]?'K:vھooWj2lu7Sw/L?ULzR~Ieĩ x3ZP%,r8@9 `oklt>]KCKEAk.}?Uk%,/㯟kz_<X#=R~sO +gŁ%q8Hm?t=,aFx8" rZyp pMA:2!$uSzhTA DQʵZ(̫CNO4ǹrt++''rb4h k׵%`Q"&ڰc4y 4ODkR:|>vL \9Gۀ\NҊuJS6W ,_ t>$,gS'1L!5C 1'hK˗U f.PeNb1CX;!4.FKĚdIڲ9rrmN|&Og[g1:poUyI3g\Eh=ImjlI}zkL-kNZ~elXs\iS4^znsŐgyʪ];c`@<:1\z|4ϟC6q _q+0$ű ]MX lc m<$ZkPI˜r_X,Ȝb XzoueZEʇ|XG VJ:>y'Xk@4_}`f+6w :5ۂ'N.aY =,P> ]hi2^'_ xkGGWR t\}!GE_K.(׬KJy/0|k.A4/Js kǖ5hu^-PR20e/le3.b#JV_X]G_[+j1UCz( ^x4Zu r1j`WvSWySVeZz,CNYHk۵X](wK8w+/`$G_ "Xo^~On֐L&MB ~-t^cs v$@=^ϭ \ZX ,rZOlÚ# :jK p\ gױSW6S\cSYI@ʴ V7{7ksI'֞;} M@e@G5ŇitvK&] g͟:;V}Eaw"EJBkZ^G=і#lk121?Fn!iY,YE")RI؁ګP*~ιU}ޫ*  ʼDGR: d:9 {aF8 &4Bi;/}QW֝No*j\k]zzIq@$*f<S=c-_&%r=8BMYAd߀aL:-v?>DOj~^*nΊ'+$WT# Y"/x4` ?zJ6YiǤ99;)Kڧ`V*h%j\D:!K$ 3os=2:.dG8xZZxѦncov:P/ҘCLzɰ(~-χ?<>S.O$aL]+Wk_K}+_1z7 טـ@ ֱuߕVrYdY1 ]$_U67lo.e.y]Uqyz3VSUO*Z:я<ǜy[;y3&oeh :0RrFkޮrFרਫ਼(OZt#|m ?s2 89c,7A __o=; (׃Oh'G=9~y^`_Bt ?a26 З/hDv6?lz'}S~H$u`,L ̆uz!;%\Y1Rjj ž7;w",FVJ>t-yH% 0PH&͜ѕE>'dEP (d &KWҳϿ޾+tXXvE[8*"9Ҥ|@n,鐒kxeLp:ۡ394 4vω_` Ida weM\LxcK^P!&f1LWqeH;Lx`KN!`;&U;ExWFt QP[8ę,ugRfR]#Ey,r:A`ZX vU Xr!֫L9`PE,mj%iסc:$Mg#H0Q;KqyN%VF׋YY\V&'n-١7>Ȩ?ȈUsTT;SDy~haEcNhxȃHkEΜZ%zڥ_8W$hGӕӄ6r3>| }덷4'nܬ U޻۵gOzsiB=z<' Yy'MNͤ+u%eYGRΌ# ̉.+kO JG)t:@`+éXړ-D;[5rM7Vta " `!}+`VD8s  @ \ p5ۺdǀW.3vLRSg@Xqin`2'm`]bciHh+X\^A)@И:\\$Tm.|alnqsz}P wO""cvAu~XG^ [(+c`Lc]5oƓA$XdoP-k}ڟvb-4o{%Ws}"45@)?*^ 6AY0>v}t܀f6mLHrMU[U鴁=4( O^XAٞAgXGⴭ3 ;ueCxF-}y$R<ي2案n ߶GT*|{㖀\VGf %dHdQd*$?py=G[l')&Y3W!?24<>_ON֜%Se-?uw'?a_NTkt3vy~&}~'&9ܯ>SjZ`Ckw9 z>ó\o`/|zKOI,xJ1]A@R(]/pFeMܦΛ^g҅ d 4sxE# ?  )~x"چ^ˋix+O[ޛ=%+̤H-9IYa*d}Z^E-QuóY䷙GzήYW:09[F.w WMq2G){҃BOЛl c/I6xBmΤ|XFoBtMGxg\Uu_;` =c?qY3Jksg=i@ۚmFɡIa=hQwWjJi +0K>k+*#-3AՔiZyty\+rQ^|+r=G*HkoMy~eN1sx瓏 kSp^$(\GЬY 9#o!L;4'ˎWm,Y9oWU{_sxi|N~޽駟=B=W_}5kfԇtYYkΜ9l4A& cK/Y*O2FG(~ yLv#}D _pNp.,%sQw!s=%u_N_sNh7?T&\B 9 W0:  #:W" JejKG{AyF4??IF<_'ޢl?k?P"Kځw9H0.~ݫSf0af8B~X0ϗbq>!`6LjK:–:H{ Xa I lKa9Vs KN, vv%va&p0GӬ,ҍf)֭h7C\M  $5 qp_m:ͨ@\^ J}V@]W8<Ë4)WfC4>$x@V k򠅕I!5l|>9u-z2!G%X(R"Yon c_qJ ⨎E]_r>Rh* W RX˂zEۣt+a2/_yOȵW濦B#Gp6 7kWwZw|ˮdl:@uH]ɳKNN9mWȷi̙u%&x|KD\#8g/\L;:X,IG.SMICBԤwuԍ@(S%@@;j/\7~~.]π0[@:-:;5>g1Fkg@jZ qknAEL3n^N7'Śdik&2$S^ 5 nkP>۲=Mwe) q2Ɉ@TF%a`IDysFk?\;AԅI>7$@I YyK*/@UNj<~H(}4ح+.(dZkԵ:`ҴCԯ9Q8UƟXz}mC,y 8/+/''i4<'ږ>ȡcӀrfrB Ƣ.E0*+ӜQNIg $2b-C!~hi-t:^ujKm3E9žd:ơhP`/?:X6PmTOUnXl8  |өy1s2c'{yLg_0SQ>Xs AxG=,qE&~qYgڂSr'ќg $sP}k5A=ڟZnGy:zgD~a`@25'ʺkأiH]3꯷/2.'E|-kE>J=} i>ٺF)gxԂΗ=Z񤔢#>HOr _1}K{2N(#~H{T׹u :忤~6x 铟tto?Z}>G_z\zg?MtE\<]ýOZL}ccֳW:; CFWeL_u db0)EnԽxeؠ&WGM5*cC/|YIbav WYol:ݟv:ϱ38dgۗx''_1˓XԾ́:98/BB٧EjP)|=!}]nx@NmE/E(}Lοc{}ȬӤ+䖮B%Fh"}@]#<=̼t2asF=/8P], KnuXNJ({ E l}aG?.V|<|^t"֓fN~i[H9W=5K|QF!Oeϔ_).oO9_9xy_ D5b1RzV*SN~9A}'VeRȡVWovn!zto&JWVnCtʀfʳ]-sk&u6w=0{z}Kjȑ~kl!C3jQeYUY$OJH8sE@pz}ר|#O"U~_]]I*zU\X9x Yyj~XZ+7/Uu=W;׋NZ⛭U~OfDZ?yrFAg~^?4CF>GwYV,_z-^~kT͖:gnI=Umb\;w.=6m8~>0h{#0277--5[3UqÕ]O;~q#21e+m碞廗Lov 2aR: `89 g蚵q!=|pnoiwtNl lWx|l04SM` PCޞSgcC:($&s^H/n<* 'r#Q}< 2c:4@E=Bz:k3&*2n 09XN;,VY(&˖RjhD&͘8ؤg@RpGrk`\/uccv_!C;@?vh*ݺ1 r-:r8$n$z巫>: ࠮ׁ6LL= ^]Ǹ\ ޯ+6uepmK A]ꛢhHBH`1Օ%^fERRЀߪc]{x/ZL1p@IYEP/qƵk#GC)ΨmR@z-`IAFR]p`믧?NǎIEXV۷Ɖ,VwV֖ξfNm[diU\>f?b]pQ3p+ kf J9(#9g q[T]u3 kBx,Rr/ҡФL`zc;C8]lNAOOOylЦ]sƥe 4NOϥ Yl0,JǨ^ @dt!Wfwj-'G (;}hyes} nVY\-Ҙ*frs,eG0xiA:kvQu']wŵX*?i"xTg`|S WpaDF$yt? =oi_zFT `S,˖^VKWsd|<("+QI~s7}; <\gݯo?i3+[?K??d9aY>ؚܿeo]ɿwiOE7~^x>I`јh^ qOXޮ5mGG+G#?bFd韛ai6_v:4ja; cw% M5}vYl:ƋdLS4/ޖ%ə+}]/yi8WEz4_s\'.qxD/B^f:|2 ֋&ƚ>}oq ]='kԋ7ezH-%+[gMS}|a-޲Y jdI/~f=\MWn˶N4H}|{&KswiޝV`Ȭטo}Ht%4gz#+O^`7/^ OYc J.{,9j樾7jYM|chG[S.?W#h-Ӄ$rVZN*K"~)?GՓeUVV+{k_Uq6\f=ɥ:|hm54ꉸh$]t)=&/[9 \tڝ5 d0e0Iz>/"CK 4W$yshWo?? z` `I\X$ f噗빵6_ `L;PgWyr8<-y|n eV%Jlxڽ|vD|߈__z*<;^L'ʗS/_/V\9#KD|C gpbvp0Mj9uXraQܔFu|ME*|fϪgPmց06jr\b!,`1lV@hk@ ~aYMP:|V#iFa߆Ct=8֛^1Q$XRCL7*q'Y0c\;u5R{>)2+ۣMY,eѲWгIvgb; E+|~@8NҮ+6O=f;0h㌁p)2#ylPDYQ-9- YzE$}Hq`>Dͳ(DY#1RB%(D82 LmYZz=?Lov:qhz?^ Q׏ҍ{tvOʫ`/y'M /k|u/bW)C7]<㚕5%u+?EGWr68o<3FKIf^ܕ%ׁ]GӡSfBUS8mHE8g §9HzsWu#P-,Ip6 s SY^͒7r2%053<' ]+~;fuՀU;]!m@?֓i]9%9J3M1Pv ?ftܲo ]zzSV& E2,:b~\3%WDz+Vw|na@8%]3ԉد`dmH/ Hfu@Z,N $/V6ߥC[[lr/VB켾jw6 ;g&#k3 08I|y2r,i>ocPN[46 #0'm ş|J{IIеrO>^y?KG[zxU?t7 %R]l;>kz@cԾ25nm^07Y/xIAebIMJ}:1ln8Y뢶 |۬=Cm[&brs{ڿE EY=jZWlY[i:xt5۞AxdCIb砦g(Ҿ|#_מkBwmJݖ n*p˓.[QɅ\׭t]Pž;Hz'і]]t鐻gh8m>;@]ۦyW4N;hgpMu۳S߫(i{;ɍ>]z,Qo C8;ymϼak/;uzm/\DOD`=i,KZiWjZMxҎꧪVA^|SJ=qM^64p^^8Ky^5Z|si<^|[*~ǏMby_.s^OeAy6yLAxtvX? YyӦu'<$3`·z+.U㥷o^~3료᧤'p DYs<=O<4_"~oLvlC8l,?@XPr]d;p/^ -+א/p(XD.e3X21 MO.4!hm吗4Ф|w tgŇuu;Xĺ-u>)ȮJ՛9א4yC;5FƪhXs `E8h҇rL At8J!|9ȢԴ`@CO$r>Nu%6yA+1tGp\K# 3X'C@BL(ψ,@aDžD׮$V8A}\əqXg6A|\͵jBoOWG)hd@SkWYzt=+8joǚ|v խ`)ffX]:dSWlg\-:> ZLMN)&RgÜ WdqQ}&?_uي,EڼbLx{K@8 9pM7z;w_GӷiJILm;՘A`ąmٳ9h$w]}Bs+E( fY`cyXX2[w `htiMXts' X=1cXuiN 0s?JSΧ/+01'}RG2Щ}GStZ#ahp[#t_]=9v#m  Ѓx)l(՗|.9~ Hfv S.ploL;v2%< O/AkwӴ,-N=kHN^Yc oߤvz_oCNO}S6^|i#6g~+%]=r s$|)z O}t@@zy*txE^1(D{Mk"6xЂy ;^*TXdߡQzȊfh 0@+ۭۻò2y" dLqN>5Ob]ۭ+H=/ˡ{vJwJ ϶, o"/lت{M .8v}7} )7͒7/@]#6/[S3 1ٟiы7dMrZ}_|5W`!$ LvuJ/aŗ~ONq%ku6nDd=i*OZiW罨^\m;B|US|^^2?^r(GysUvyyv|U'OP\Fy{y62\%VoPdN\߃ &] Uɟ|P@žƼU৲|D2h :%ρ<.aJb͸z}. /[U/}KsVe=^|U4Wn, > zU#Z/Uz@ɠ}|[?[m_|Y- U*:Z*?qTUzkW+4V zu+W/>0} y]ȓFXxÍ^<Ӿ\UWjZZLo#[oN]U/s_ӟ{eGZ|$^x;Pٳgtȥ,ze\I0ZǼc]G B'܈3hCG^Wr+ zQ7?0Ӧ~% jGm/,Ա+T4`}E]vM "iYxA_50|t8;^o?EA`髰a/'蠴[\ݥ_gU+ L i/e5jX@q]zq& ]I@f@Sr;pnޫ+I(JJѬA,LE:46vƴh+h,SĚŸ@pݱtWkX;wq4K01J|nM]Q xҝ1c~3cIqeak+$:+\ y,5>>ͱ@[e cڃ@i(Yq{Xwbzz慄 iݱ_mCz!`[ \/:  `b$2  Vd p-c ;Sٺ-mYB,BOq$]dV) @ĀQȐE yvuH/;xH,Y~J8@IDATkLɓ1Cw0fSt\K&XݩgNCCŜa%13§ )A6t'K:5ˮǟHgN5 ۅyIJ{];{Ck /U-{<40h5tj$czRt= }дg@bk5c۩+w !b''Xq.[TZ뱚;-}3Umz˸m| *i8m5K%kV74daѧz{!\HrU^{UB>NK1_ mk]]Oltf蓧L+/L2̘WMv2`MV/~ d?пJ.B^KqIJz#j|ݕh`r#e>X,!}flԳYG@լlxhw{Fo|ܪ[S _tOϦtօ lM :|dDz˳Y6a/N9ˏp7fW7q x&jtB/GZ_ ozt#J=>@p:YYY^q" ЂYQY&o##,BM 0YjW=&J>X¥Y)&wpG(bىgywtu3 m$ijYaûӣ]I^Pj@:I4i$'WiCLMdti߱S? ەE#2JR.|RX* r5A0GK:8GiG\+kAZp{pV$EN20d88=c>K>婌|F?條q.o"ZhQΔ@o(ڕ|_GԌ,v//sw1]:VoLb<6m6x1[/Lc-eTVst 8Jv4|3h  MW`#:b-}I/]2k*{Q@CT}Ti-]EZVbeIۮ[@O*0I&3/V}7M\JޓPKz'8/w]B;m3pp YQuB_QdsuºHǤL ($ }ۮT IƼ f8/a|@[wt1O'h!79j9J֘vWWӲw}$z_@!PoeW˯@f%_%?A~-#rd1K):VP&ڌ6e>r5u{F֯gǾ-'[>t!yk<.h.Dj]za`[5;(YAn1_>IfRjZo,6:.KՀűr}xL_L35}i\cGar "`ݽ^ P6{ueL:=ӡX=}] k7`7WJ>Yd}gXK{^ذ>|LDAc!?w6n!^t:V獚iZ#̧M4tx'dZјYk"jtET|)O8)+oH|Ecx2;y2?t8 mzi!57_cM/D09UBڷQTuҞ}>++l҄~2ژeg+P]OmZl0M /"erb&:'yc+e4 [H0kE5H/*h㶾3ݹ{+Mho~ }S`e{JN|FuEd{ f[ںӮ'dqH{5;fC ` X1dUM^Kz, ب:y[/@;ʣ}:d|.ˑ1T ^> GMyF4٣ݼ9q^E뽾{#w4&WٱJePnJ $)oX>,۶w{RtvZR kLQ[[ƄH'͵q>veP~S'ڗe^yiЪ먗^/>/0_깪R/oU?>6dVYV^z~miWQ<}5~ D34tU$YO+kd@GFFL9XpZ@%+kLBfeJIx|heri+& 6V&c\n`rAɜqUa.ڵf٧AL`~_oΜ<*rV79A^H/۔Zl{rQa958e)<4w#4{f4SZXMr֛C~]?`o|2DzzdDB2yk&%f+qȆ˺Xր̍zh/ϜOHDoEѧO:zLzc'Xv.G|jFǯVM3p08*\eD3:,J R&* CU,-+ )1K |?D|?pGj CB ;Ƣyqruhp0w.]9 XZ*k2 7d}r^V?8l \㱞B9`2BSP+'f=IB k홅u&o(u*xGsXP:?o8bv+C@ I*ۦɄeIYhcN} WfmHM-1D΢L ?'b١"9.#OH06 YO&hA;tu@>ѓ~F"KWiPE)@WsL[ڱХK$GuU*0Cޝv-=쀓1fKZ?Ń)RZ(|A4~"}c>v<S/dc4E;Zh)\8B/oݚKcumj3$9ƌ򷱢y`T4‡Do~3}{ߞ;t7 (Qe0 q+N<^a*O`!L&èAJ3WT%us+ZEAL41Ea趔=}m4t؄@҄rQ.ܐua,TqB rDP42x1nKXdYŠm(&;D4_V;JG0M`t+1 @~a&&w䵋iLڻҡ'RO_VG?imex Ixuǯ0.?ӈXOԖ9/zCEmDQ <tuީ=ӟPy^^, `1~|(! hghBN^dAhR2l^~m9t^4]ӽ)C3+v`r΁CV+C[cm}蘬:s sЖF;|I*6d`{H5ͮ7πP_@w(}^,ľVQR{?nhMW/zb=‚Xȁar=O/Ð{DC?2'E.ɮSָ+, ߼`1ԯ 29v<V_#(ZT(_{R{rZHуh%p-7ˮV)òM/::gО%b-9N̄r>}5ϓO}*ٿX/K7t m=ŗh֤&(_ϝ+^{E;ra%?oQw`=I&|.a/0|Y|Fw~gW$پAm컡& m-$ۚ9EthM]g~kV`Qs.ڣ*yQfxcqk ao 9ӚفuS3hfMf_GTDBV!ue酪ыiYx\Ǿ}&Y侣F̈́0˵ڧS\1}}#k,Yѕ7Ћ|}p%`I^E9N&Umm:,s::ν Uf3Sɤz9~^jM V7 yDV*yíSneM929T&Ңμ~}?8~փ_~ry [A^F}u-^/qUi+ `WALI;.sIJG]XѠPI8qd han >x~c?í$t‡6qLU/z_r8te@2FϫPƘ( }шz顳B˷} &ij#eQ?[9~yx2ͤKvvY^^x~*-k Q&zyi%0V9қue/K~yA?nTZ#^Y|6Y:띯ܾ\3댗~;?njDWVU5K|&_UW8|gm眥J5QNy?D;KfGez+=C=K+oVoI]gGDÁ ]*vr%phI2Y-p=_~NeqD'OX+q8da%-<^z=+}/XUW;'U+W> P=XnrGZ!Oza1:g@ v]hPJb Y^ѓ8|Xl؋3"|µkcwI"{,u X#(Igrf!Oc@a OA)9:@5?ȋAx@n /k*ѓ9;vzU~Ϧsƍ־ 5b^޿#pkȤʹpp2oiOCN`YqLܲ ?⅏{혾xv^bG# gp-]K*eL0#h>GI5W3EL;CD!o"\,S3ӓ;oKϙa\8PY&yqϘp0Ɯ\иŒ 9p$h?dXJO&K^+xi]oLGI?woA02wsAO\Wr0`d20EPJoV%Z4Ƣzf<x`@90Wl-xʤ70,P@Xc(kWG5^_uLX\ 2YޏDR# r`wzHB-nޞIccSv`P`"tL:س?qm0xڪT(ZB_Ge:B_`%[P+^Zu^ S}@rd{t+״GD߄E8ސn=!dGKl/";>z(k3]t%/ GȅKGėQaz}i:Pө{ /޹8!Kihh@ NV&)%.!*z |X|VI{!@yi3.Siæm3:kOʒN&Y-=X\KiORl[K(>"=Z3ƠPscȷܢ+@-\%+Zc]9[srA}#cO %WϟZVA<?5H.´6z?LΤ=Ti@cNEiNHl[{ƍC0GS5o~cY>gO3#s[yaqns] $qh@J.-4|3E5I)u}eq|[T[M?/ ʋԺ$dUq@httsF%eI5D$+2EVۨ8 y6`ѡ>w k]ڪ=YZˋ 'jپS`Dno]O^޷!+]XԾڲF/j51t0rܮsx%p޾ݮ%خVAnf0[fYݢ6pHKfYRa;\c+`[X%/E $ ,R zlρcn S :-֓^N~[i뺥|s;䝷j 6zUUqyx@o0Z4**[:Zk5yseWl-oFm&<`ɠ~`^/\,Y^;Vh\re0a? $m \v[g!JDz=q(74F^?RtvR|9ON+Ok5 >z&'3ً񼒋WʻQix FuZ˖WQz)̀&tV[o_]gc Ky*y-W[orxf!{rYQU09?/[yh7~An?ӨrzYγom09FdpC 5>v 2Eip j 0)\q>*آkt pg~KL9 ϔS}ӟPH+x’~ 1r}LIPF@^3x\ųdγvvp&98GP>+H7$(@  tx҈욕e5hqh>“9q þ[MX+/Ӂ1>| ˜X^?G}ihG8kXȅC'ٗϦsֵٲ?E/gNKɚuw GϤ㧎٘]+ 6:b`pʼ5O=\˭Xwq{yŨ=$\+h4x4+CxS-|2_m!=#Qr+<ۿ<^^}yA:8T`K/l21́+%06nB ce|{Xg{6 $k ^UgNX4* v,eIm5kI&R .Cr@8ht @88"xG>>"DPZ%R. `rJ^,X-B{VlD|@! 5}?G?'^ai{]nđegVp%QЁQj#5fR@D!JLO_tcrLtL~] T6ڤ hnߑ(ѹ.1%ZX[ֈy*$KF"4xR>xN*w=l@x05;Y3`teWgb F>X+eyJen7R?S~?l?%dxM`@>PU1[ci qo'h!1Ǹa1nX3'wbd.<ҡ4E'O> p{+c[sR@WGbV Y~Ay-FG7TfN|1W}Ee5!XG1=2v:k,V3p@Y&M!0 .}10^E#|L@l;! B} rב7R\wȄʮ+N *0]Bpu@Dw퐕AYhՏT9~@ײombkG" `hxOyWʞ/w4;v݇NM7!TeNE)@8kz"#V鵠(""]Rakqq*:qbiO4`&c}l,h3O`$QWg?Gۘ'oIt>"jfz}<;#(8_bV7T`zr2s#MMN~-A; zE;D}s ^ȉI¼hen'g`=x(U;xBxAί:O^b=-K7\. L 0yW%5#*-xÑn5qՃ'~-*~15և=f[nԺ 'K(7% :>'u+fۑ6k0nߞ`7nn&a p9ms<]oxT? ylJzeFgo[>rKԼހ@97d0k,TN{ $Wz:j_޳_=O넜tя*ZeZ1zZ/z5@5ۮ_e9+6J.ʖ㚡9*-˲Q[[߈F2<(mVOݯr;ק͔WSU}+-Jq[U2/pATٸL̚QrZWЋqXRO @$.ܶ*ddVLRC$RXZ=^sVj1j,;WLF~uKJLt:fJy$d3ng7vGZm/kTT-'OU%oc *-+aSJ5XSm&uඵPv"`:4P,L*aOͲJrs"yE!Be DcnpG=fLqw`a! ;- 3'=n rh% JZ)Y+f@!ԯDmPI9Yv.A+;a&#(qRZ@uLjC`Ã2cM%%G& B6Ȅ+BV:π[zpިCK@8(>P#t8X|h+-Y˧+xboWXr@¤X]Lo?񯲰 X39)0DW_5QY$YYL8@KObKo]KW;ӟXs8AX*ڕںT,|5|9ąEz^HO͏xE,'l?V9 ﻂЃ%-/a/RdJ"Cr|ʅw~NkLhN@($A|a\%Haw#s^i}3RyO';ygz^'L%O|v \YelkZa=ZXKnU ̮0G ,C >Ik~A.@ McI,IUm]ϝW'1]I]>n\9/".dm?j&kɒ&YڵQe#M9p [t%הs%VPruw]=Φo&tpt488`l +7K @%ۚ "XԺaN)]=3>nVʘ`} &׊s6upa.]#Ф{,m[3ְ\SK?Wj'6ұûD=;z" J/gx__H62cR[6$('o#lR>ȶ(]Q6CKVt8!byfcmgj<"eO~IխPߔ҉i{^r kn 0z :i"8=<,N~ƺR [Րߑ .w,!bM2W|49NEteĀic@p<HRБ?A8q,?s ,Q{XW Ky~enGYU:Zu0xbH^2Ǹzv\ +whϠ+쁏 T|Rw.\Ot|M˺{h퓞8vYv5?ciAY3xNsRݢ`w.r]4Xڹ_e /~\Je vX"-7+G d\eH'-:QZ(,C +Kw^-]`X.u N9^`_`V^1TSk1m訮pI{4 cEyƬ(Ub墭XfrBz~=@ h/ǘdSh3z6gl}!4z,vgPf@v/k: 44xi{s^\+mVBqk@<|^` `=t&ZS/^Lz57=e/>_=1&?tg>þ$Oa  di/TؾԀ&{25J:lĖlX϶ϳ4=vGM}ғY֋[d]0$/I ao8*rw@ {??jm~mmzzK7r֝M/jm,RcU2?/,hMPr 3hN8rZ<bE'aw^xKt:ҩ{R^N۵Or _<}?5}"c1K}Zz-V[iWAC+oPB^QZVQJ6Lh?W?dj򫭷r:Ͷ#kUnUAN+ x >sfëL-9|p:{C .HGZ&nG_e|EU1 :0YE Yn[=dY~\_&:hësi%u}1WY\ӃvoSu/ J=WA_Nx0'qs]WZm+c]phc+< +?"o~^+fiG޾\m9h/Eyx"=W>DY4>񌏵o?9y|p^0tP.IzE8/&goQ>\c KVoX0ɕA?k\YAm:xԯp89v/~Vs78΋ ڳ|h lO,"C|!E,"oS&:!IMLH# ECD@YL ,\5S8FÚp+/%x.Ur/*>X19^48W6}{S3:$ۮݺZSWsft`% 82$9x >??{odqyFVge(R"%Jm$~yc6bK̛$3FH" R^Y72-TTq"<<<<֛?:8(uJo(gn s V)2Kbb`\,Y;jî|p@o.I?i:uup= {XcB Yf_@zy|R 4>`H:l]>|B犚Խ@=#Ox!$¤ǵWu/~c,X/>8ͬJ (_ @X}!(W!㐽EÁYR1u~$=Ll sgUw-jqͥ,ϡUttz酋&aFW*/Vt-S3 ĸ.+65Л-CYwnzpI|"U)S} x~ڋշ 0Up JV :VNdaU AjJn E_U[p"}sjt҉ӧ􇿡<cf]"z.RSXgPgfdIft=@oO- a5R+ (VN"41YzeL"L\lu"Λ Z+7Chj|%Wdb]ٍ$ۯ]htzGV ~N$,#{iKg\N;ZW.ϞH]}Q$5Ҋ@jwTK5ЛXi i|6v?]?|<s~Bo9#G6!3:| ?k՗x W=K_ _֞|YE~ųZ ;.h{!/6>!T;H=rˀ*gT{J2kLx@sMhD K%xo:hQ/@KTJKKc$uܶ^OC5Ѭsn{{Y@c5)e:G^+& =RL>X5 EI`?ɧwliKEX,yg^eV\+UV.~8hJv!ުÏtzOc@[Xr qX/)h @ep%tYV~:iaz\{Puh0hY %9YՇ}I^,I"#!=359BJ3ϥ3LXgzf~żx&璆.h񿊮ZյWV|+izZ5ï!{]\7Kگs#JR/7u_!o3yh",}̙HXĵ_ 3dC A{%<2˾z`2\G_7=qu:$ud^r;(x[Ku/0I?u2q6hc?R;ɇ1vKHUޒO|诌yiC<zD8H# oŜ}.~!hxF0|G{oO |C P٫ GMu=^_9 YB9G:un?GxcLsJ3~ox|tA|y"Oȝ(ݾV=x#0Y2ӡ 0@IDATkg`tkm r!VL, ܋2 ܦȦr*%E|p×>vtKid~q@3UsH^,L~ & Vt!Wrv&`ߘ5>G Qm[z&1Á(WQJWz[NV ց=VSNN+~wt&:mA,Y!$:Dʯ$iT#i9㱑416`CD^` s^Jcy]9VԯWߥ@,&b7%$@g! M~{KxIXY|&z1Py1?E7sՏ?J֖,Z~x # s $`,! @T4Y\i@ /ZF$3V[fŠZH}ʂvZF**DI<ָ9R7i ȓu}Q e]N֐ 2-,K x(k9 N< O;ҫs5Z.Hx0~4TzU!}TiDsiNin@iWC5*>2pi@9+IBc[͒b5Y+ c{lBePp8ULeEeY]u~JЅ~ <{qNWlf L ,o! X OIUgB8^:0ФļGvhYq2obNUV5˥, #KЌ'Z16@5^yk#^*S,ymOalYWberiyE yۇy~G@/Uؘs^vHPXyV}o=#0_c/V3Wؼ\ cŔnms@Q"9!+ԳWzD@[w%GҎ6*Ty֗]YgS?68o o\ K+ԁG}kZAa>8|@u '5F{T/ZA+jkӢM23<<~ ™okwA+h-Ѽ4!;Rͅ'Ljno&`wamf* mYXU_P[ICLgl)/acjy!#H*2D=;"+ y ,f/k'}x qQ|3߿ׯ|bt!'>?YTv3A6@l21iPt>*Uf&<=[S式K^+? үywi~6=ne{قuAqo^@ vrz[Y `ρY=cObqZʤMW~Aʎ,fy_uj|X3B.K=Zc,sش(޲V9t.U"~ti xig -ړvƨ|{2 ^!]=*K'' H>xHxE ~S@R{ (cXU7P*JV:}‚P\[1qeg6|MKFX1{;+lPrIkVKj-2 -LN0y1Mk?45{c,/Ag&`6`~v1c_9]'Ț特MJ-߃=2>7SW-m2e8//½<_{7 }GLCS[^AI"^Jd^J pYEpvt]Y&iMv۷JP)Q"Gί>%/SNO8d)iyz#:,r$<\ϤryC<.h rG:tg/"O/W]Z< +="$.|OaYמ_d=m }=yH;~ߎw4t1;_+ۯ8("@Ɔ&~ L(,T:X_zY@u0F81e(`;h2x\,2p|@!?%?N5{s9Y:@fKY960dm>VWBc7dԡiFQ/W%>J'm$`*(C:4LC<9ap谎&p|>x Յ=b ZfИPR#faQ~pȕ;tp=wDHUc?LM¤IpW߻0eBiӺY 4.Jr_CtFz~XLgdABƂ,p,i9!au56=~U>`W|R VX3Œ[t&oO4է1+rmܧ]=WA{|O{yo[ײog C.*Jb,B rYn؀T"ʊqBwЃ/ޏ\Ř0IL!:y, 2C /V! ?Ab]RC@V [FCh84\y p$û~JQlgE~qCW\xK|IJYh+m.LҘ r5e(adjJ-]H}U5da>,IJ_`lUm;c/3-kgD&xhkӅgeHseieФOJ._|;z/ÒN0I~8 ˖d2s_%b*##=sOo1|$25=4}JeI?9} Ǫq~ zXCWć9F 5d]wUh*(Ln:huRgP}tU!W|LB\o|g-{(R%`U WrwӰt9Y޾z0r&%Y[ՇFB?U*nJnN[wdurUǤWHj{ixۓe/.À;Ǧ% MVłaY`Ʌ5'5 =ց5uK͓faNNg_c7{ko9Zܷy&4Fկ"%¯]z+GߋLu?/>r#e2nxeyϞ;kˮC~|G'$kdT/Czne(tvŠA-з8ҲCL0`ϳ++Ohy"$G^u}9M%sys~9/‹ey`^|l:K'@u~YRuoonu|W#.W0דudp睒9ۼ%]'CI_>L[G +ys>#?rWﺱq%=e\> ?M8>usH4AWzoQg̡̉~)CHr7iQ}Nte~KZ\>Y x>:=v9!g]YQ/ΐ;N|r#:҈P:ԯ~tʕUúj ;p]sĵ*3ꞗO?GF|RZ_u#ȧ @>`VMYŚ.۪XLS'&қ^b08{1]|>_}0OѠ̹8 Ͷ0FN`o@꘳yO!pexZPtRm iEC>|+!Ǒh+bԷ[TRGc`4go=>My,>m* ] ?7huI@Z6^U(fJuErcTED\V5VX >3ُ:9yUs`Yd^79w*MMO3 nc/s@j ?0*㼠‹1yShcւJj"Z9һ 5RjJ8iq֣?{$ʉҔ! $KMZvr.}!hoj}-Ԡ=[,tC/!-{w].B`Z]Z+>|[G+^`n0 U])Y ȟ 1`) А<̾ۚ'߹_T׶oYCe/ea9LvVTZNGwӸ^QZ:,S?D,MX}Rsa3ޯj,!W̙/ԗXd[3dp[k^`WZwt;׊ˑ{ص7tڊ\-JÓ4-gy6d0X|# f/Tl,Lw~67/T`˔ڼ飷U ]M?CAA}oG?s؊U'=5jLr=;?hG!}IA'fNi^''mj&|p` eW.ڐ2-hr?軡%h;v|H?,׍LQV/r݄[p~>%] y3a\#1g_=i _SL:o?د ʯJ::; }յO+.lh\?:ԕmj LCKUz7(3">q&s{[Z|8tYXb\y'F:ZeYq74W6eį 4YГm>'d"i88VВO#Cz2pO`M,+Mx`~>|)]thuxxK@Ϯ5Km!,PHXmYR9\%?kP \2#sOsͥ:0u]<Sa9/"kp XЖPw>AuO[9gj舷qunYo>Օgw.GCWy]6ܳ4Jny@r#׋8K𬎖qa#DLmh8zL=`Mk4[w4&"pUmHm\M +?~:̧r{N<`N#ۡhL#w:<E@#բ}TabL̵-sm|0,>,R2tnԸ0}TkńďAQ@;On< RW6 @dIG;6fu'V$Uu_ZrMx岁6gΜK3y.}~E_7cQoqJ(߀7D ڇ3>ZS2f3܎mJ+*ÈA\ yU!x ]8 \qM~ƴ:@_{y/ @/UO: n-@Gl eam 8&Jkce&/stS zvXdnA(^y|FqX8u8u~qȕ}" %-}*d]sQ6+(G)K`[={AjLkcag zZ@_67>{{3E8tӻP{JXo 5Q#2==XE uYf2WRqz/Gc$UMC܊1hnJHnINˋ *9~ xAuʣֽ43#iMWrLX?<? 1?;`^/;ևtj^C>ƳFыH_k֚֯ڋ/؋wkܻ*G <_j x=rىV8q#gwא*YhF"Vm09#/L =*x*vԞ뾙/W4r=6b,m0I?V޲}{y8(yYSKwe["qq_5$TW 0Is`'0{[0qW׮u@ҊdI:O+Kdd(s@!(ǼG=GEB/ymeML e_9D/>4QnėH/ザW,[kylΆ׮]K/Z3"r1(sBYDRW^/MXsї,i! :37KꞡQf, dTYc $u%O_q/ݼupp(\I8RR|^X"vXZZ1K$Q?⑏g:0XA'hCO*p)=7.]Y2 i 1YpfZD{y֡9 G&BWM}ut#w8tm+xXZ( 8)Vd& ÿuë0レ.\Hzȳ7]]nLd-˘FF7b\qP_g@5j -LW}'U@4㯼(t/ؔ­U]+sk rp"K BVeIE#TV"Ѫ6KӂI iOO[OyJ"sXTևNNw5"Ͻ ! CR7i|h8Mt8c3bQrjzBjeiRTA .Y X ]_(ZǙhc x)@kZDlcaJˆ,NLW_{>͜ЕçJ f^ÿVg2{怈3>џtE :>e<>`pk/Kp٢l1^)Tg*4@@f'ӌ^Xl6+/Xko޹n TIe0~$:TOܹ`8 |gS R~J9Vɪ`k6b3vUYc9Xw=u&G=YS11wlZbe!}+ѓ9yE׉S U`|J>^09)$ag^0@ΟM|KwuMC]kGTsXrN5,` $2"@TXj;sD:{R=$VV} I@Q*l_G؏uM_/J f|4֪О:V+DQg_,YYτ5/H[0 m _x?ϲ؏K\N}+wdMz^IǴgP_Ѷy[ZOJz,h?r$5VM=ZzhO X뿻׾QsӮvh]W9X]\tE:o&U(EA-9J3;vm:3i;"Q;qTRd\msCZ~ShN׼9ߐ,/-(XvPmXr|lhYGk`@X^xRm~Sdk\8],-xcT:0==^;Ptg[V,} 3?F{.j}/t;Sp;pdڕUfTv;^rܮC]_N䈸:Yd,J<4K(SzN,ABz'u}s?rSJ:yzוQ걗=J$`Kb/t;#H;pLڦ<Ο?o<;}q%7k_+*-e}j+O\.{+neuN:R7ɨO'$taq/+rcprR/0jnj:ZgJ`d}IS7w勸?j 0ρ!oyZ4!7ߗ"ܭ9'.zt<p.!xG%lKCg8et­_(럗ۊGnL2NF]dݔJ2^ni<ڶA_49n/K5OVt`) Z-+5rE4tX$+K"IAb6x`/\;ivSWX #y-ءq(N5Ư䊬po vR= F:57X'}qTu@ B@t#Dz%F '#{e C`@2@Uj_2@3ԟڐjypMaq18+/k*eNIwXV?r3]jġa X|E^gZS2{|D;J>5Xz:|1w>߯=sg7էTW].̅j)_^ҋ N8g_2dS^|^sbΜӸQh_`{h)b^+p8ZY*ǧo<>a)v"h =w>k{k޽mZXrRoF6OZ>xW_RUŨ`#W%Cԇd5m>$ugO#,nX=Bp{j\=4Td<n%P}Gca @|g%o*u3,HҵRm!`0{@CfM(*ۓhדk`=QUoY}L5fs4mYB^{00-,[RȊ~G_tcU!+ti1cRz*t3xh7x6@&t%uѡA_s: zR߃̕#P1ߘSH /nל󚊔.͒Xmw*5/صݺ]WҮjsx53װD{m SztY/ɩz)쬮u+ݑG:m*avSn'NyM 24o^&{d,iKH/K m7tuy=_s܋E:y9z3Z@ݜUמ0IMuŮ1g@_4؊o+cΣMV}`^K @n%`ɩupap[":vAuk:` P%I\ɺ:WGqO ae;vy˺- O f cNʺY,:@3dhwnխ+۲̗W&~ʼ*rOnߊ_i^u㏱lrp)_>rDȃO|<yʤ.7CW^V_D, A??1b;o{ ̥d@KAsZ2FH*⇱M.TZ,d3ug|y8?w^ZM3œ6$pa6h\`|dHV |zcL|L 4YPQS` yЃY!]tP %]gL}LAǁљ!آhܹ+t0*PaSQI7X&r"IN5n~ktM_5!B z"s0 "n:K}¡ܙ%GDKu׀wJS;H} @)]r tkvtނY%+jB*FxY&)cF@'ɕW̊ب8ֳ:L@52 Dieœ+Gu5wD1mE}*mP7\Ɵ'&&B@L`a 0[dSx1dc)NB yqn^" WhC3Q+=eQ`" ~Cy7&H,O&UFa $'4ưtKL}ǰ[Eˡ_ c GyL֝vu}O24s,oVDofn+]'SJcC'^Kt iA@iƋ9 ]C{Fu y7iaae-є^$XҪ^tΛSПTr( k)TDHT& XC(K>j٨‡h}9}I,/Uc=&koޢ[D i Яd"i#'˘ "~+7JXRٌo2.J\tAV 7ާ"qOޤ,҉txyF>G_5"BİG (lֆzɂ6l2⽣5cG})Ry5\*{:M1y5/E \i 2׵oX^YJKoߒ;zb]/y/kz c^p˳UkP{LáDƜ;xB)9[-9y\}Yۙ{ (π榱Q]߭crr~Ck7?+LŀQe]{s}{Oе%k/05mƢl:\:\o 6cK˻HZ>SoԺc/bZ4=DN]'",!4ꦼVe,u~u*tS2~Cvdm%c'Ho9B%=_wW }Eܗ]7GwRwQ)2~Xr< {z8 =׵g^fp'$A׎`o*@IDATI:0c7 I 777ݔ_+A!Y}}vYZ;V(`2:>u+AМ%}v~/9LB9UmFOb|puST^S?E<.Amm3]'7lS+2gJ׮]Y^GOhY<󒙱UVe:rK V+'4e=J pbue ?p\OبR.", `D 9p"kH Q",dt/F XeӁV\pxF+ _`-4d:0|$|vVO7TxD-*4, $tM. rYd @-L*`CYҵ"*=.3 {Pm1k-*Eh-#&߼۬{H H9!,I^~7}v,cNP]&eieVS~Aw€ǦPcFWa Sd²IboXu+RfW"++0g/'W`CHUI "`XQ5 }471N&D~qz~V M#4Z̗wU#GIoyG|&qE^Iah~PR_Σm9sm o?^XܺCӿXN=fea#iFs 7EMz{/ ] y9R%;d /(Pk*zO5Efx [^Q)DͫڮV_з˂On xQ 4Oڛ{X(՚b~v+}rJP .`+sYX﹖5~R ׵;&񏮏K[+uzıPݻ7Z鋗*S ޴gQ}咗>6XNG,Dk-@1Yx֫No?4.zRW -:,-ӷHdiDR]al#02IP7vRZy!I_}b7_`r[eлwӧWdeRuZ~I/%ʹ6l~{@c uey}ijg4gN |ʾ t:\L1 Ԁ̀( J{H(=@jhUjh>}|SG]LkO}>ONE{m[?O#u1F6T2Wm<]0''\4~{#xB(Tjdv~_UG&cÊ: )u:&z6pu^ؒi^xub$D.zig,QNB} yc8!"ffC9X, R²Kڃ˺^:igU 5ThS1Ȉ ߟg,QD@Eȟ*FY%LUqfy#%KG M6O(',Pj/D\d I }woQP?Еݲ~D_790%j/W]MDY]} 4/M _{E~CqE\<~vC׉޹eY܊U|NAêW]!:ASvqTWvut![I_Җ)JД|W髢W/:%O+ZJ~%9/e^ǧ10uOd2 A'\ n ]+Vmwd[;54@V(S? WDv0X#,LL]J0-"?-yN:^q(A* 2Nc'K]BiEo]hI>E0LZ%I/[={nhXl5:%SLm8WoO @~E=I3puK8<[B=zLdy(>^ނO# |q%}?FVI!S^ZDO7JDS5Qq&2_-uh3~.Zi??c>< Ǽ׵`"hԝ8yZ/<0sGys|.mGY:¸Qv;(rL~ ;u;z(&rxxw7jpEX"s q"`BsI9-[$[ tFN o^x]U6CA46J>f+Q I֤( o,}aFCO XPk>OfqiYF6T];@XSrCge)'3exNV ʹ*@ֺ,XVJx~@^-LIڨHV>#-LM Kԁd4Xou\@ @'y~廿᭮(c,u95'$G,@ݑ5O?n렗x"r8VPL `^dR2Ҏ#1c `Q6,m_uc9sSF%AۭlZ`YLӑoDVmX.W3Z<\9+υs'G?J˲c"tq{K%0bӽ*ߤnF '} v?(?Hv|> ƾkߠOml @Z@5q's]I?$yQhy{LkƦ@v7κkpEt5٘~hsN|"1W9$d f·] ް}6Zҥ3yY=3dp޻^յ` i~چp It^h` a`{)~0:~ X)^X23k+C5@K7=j͂7|)flI z M/V\q:ZVX:}jF3 l*g R2qkf$ienR%@~Pq\%QErf>"(rU"&cճ";#0 *"h7xyT >>՘5ӗ|jZ(jj8+Ej7aep[cbkCYО9dX9ZA:?38*7L׀FK33myB|{Sφ֨%T/ZuItեi]:.P<q͎1{|M^OlijԤˢPRX{Sz-cErT՗V%0ܭ>~=o^z ɀM&^Vu+;OkW[?ҕokcz1^U'}80<.:YW1DTn^ |-?1W2v2\Qfvqu} ڒ_IE|xGU^~^Qv*qT2jڵQ/u-۳ z@T|"-]]e\-@*_$`::[;H84&ڭP 0 M$c*%(L,V&DY&wXhdOS[$O/땧J(T)(!Qyݎ_^Au\/hNN.^ Axi(puu;:9֞Vn떮u5tnK9K?$[:C_S%^ y{m;Q35P309?qp0{]}]\ cz|ctZ)C+#iC>|Y|B>B:W:E%h瞰0ٷI@$Tk`/L⪄v%tH8Ys8r@gC(Lӯ 8,)LT^#g>^r0C+dd鴬.ա-FvuxHf[051Ҡq1^d9A]u]@E84җZJaxT: b8 [+x㲎麬& A,.m5zMq*IF3`먣ϮCfM?y󘍯Q5O C'<Z;}/Z 8iIeu'F#ךx%ݔH@t+k 0G!ikk鎬L~vN}oٓv%[~{&@TҏvxB0Ƈ @J@n_`I,OSwhj?aH`J9j)a3+p֪}{ObO} %[[ I Lks9חX=PeppV>  SCuߙ`#PaoZMlD@̙xqvGyi5der%toYkϞIKuC#HN[F=kUp[GAE|߬z ե;{:ķ9ia΍. ʺvx9\SR?s.K7V&L&Go琋J/2R>4ٮ2+}Y^gaжNߊaɔe!\ʓO / &eNZt(.?WB(r8LPx]C\10IJ9!XE!0933m8~$coG` XM09E~ɧvMg_H3W=}腵RЧAqXR@}@Jڙt.B%kT}}=>ٵƊ-U 6vg-S{ 4! tqq1ƀ*qMq9|Ik|Uќ(lqo$*D ɠAHF;ID;Lˁl1=V_mLz`@2 & AS*u'}k̺6=ZmGdL5aZҕޫqK`bzLtntaկ'gͺ$W޻s/'L<:ޣRr49hiV=Y9Σ OHla   -Z ie(ICցH\#ߠOl7D|fMS7~೾\>JӋE˗_[d{zY*?;5YNCa|IU aCݡFYS7[gG\ H)Do^ꉩIFHxو;z\WVY,l|DeT Y[3F?B&ZrfgFeP?ܴxV_fX)Mƃܰs2jL D8~ @q6Aj|f{< %>X7D5{F{~(`a<1:&ӌSju fXr|o[0{1R0oE?<Sn߱}[ׯ~@$9S0 *Y ~{6< 2IȲoqѠ(mfVCW>O^V܍y@ǾЭӒCOjkt.NeMzeUk@ӳ꟧WbjK )?0o0 8bm8ڍ:o녉!/d%E Y|j,L>$&U?<{B?l>ymlWm 6@o͜?50D^+/OffjWڅ}YXV[⧽E3fj{AmPYe/7go`s7 .I>z413&O1evP/nߚ#g#䬣χ-K˝t-*s/Q^ *{(Ky;2tS.E%qݔ__Կ͗V!} &ϜWz9jYrFeZ\Y>Y Vh&_/ `2 !ĕm]&sdh_##~΢JG=:K 29 M9lE~S\ 0y-t{!a[䎾u&n i:mY9[y!_7V&uy 'j:9>y^J׫~2K^L!|}Yn'^ӫ"enU6Ԕ Amzye*sy8hg^`ܴ?SZh%uj֍>7UOL pLMAuUHB~0 p`C; s10YL>(7{> Y5LP\7^J/Ā(0Â׮tmq$A)6MgdUzaщ\IW~nH:0qZ~SǹiE1ǩ +rZXmq *`c*9 %^ X9,S:gRay?'P8> D^u"Z' E?aoݼ XP^X!].*iC<FPXY,=Q9Ã=NOpN`*YX=KDҘ2K~m2cJאfW:8V{%ɒLbȵ26Taehl LSHH_t3ż=hG1IMPiaM5_`.e~zG7iZ\`_͚DUl}*/힂& z) Oc?` V" օƈS 59‹Ndށ~`&UjK1 wkߚMߙӭ#a: hR/2x&πn#vS̢-!}D/QXmĘ\n}Y_o.%YfXϲ[xЊJ}guwP]]^a0qPTj%I5Pmr|a<6?9>0Y-0,42`:1]m&o$|?ܪyړshڮnQL"k''Y0$ݜ. u̳&Y$/Si'gCU*`QᏚ>a dՍ*h<ʛuGV>է`:XLu8_S^OP~8ҵ:o.ke%/"cT֊: `4Ӷt*$o@-&MebRaBeS`􌀅##GT`i;ԣvjI$s/V83~[VPdۻ҇Wn%>8 0L0Cd*ڊx{Ŋ`{I2R5KA,rך%]㸲&n_ݮwu$ᵘLEL/sERя龠᪅RkS#kdDkob1hx I$o ϶C r*ڮAb0)}q@\xrɫ:޼G,DbrG^rg;-I+X:n&NKo?.SPm_L)E4ч46}#,*AEK<1285&J&"1u>oRqF\|`FZ1 f!3B6v5Bڪ_2O_y!/b59:m,Op[В|<'"hĠ.3:m!K8b.q rDȰHl<Y,~?@gCXT[==RgJJ#onih-NLv)8?xP,z|>nucC/Q ,c]r[{7/z^ZgQQF0i"lת~MOS^@b_gG÷%X}$ոȄ*oSb5-˫9y> ^Jc}p}=u8@<Ika3~QtGQ٣J(3OG}ڮ9(*hs>>yʐ|`Iڽݜ.]^o}[d?X(Z"\>;5&]sAe>l$^+ +vKGeP%8 b/\L_n)UQ̘t}:@+Y8&kl !$Cˋ sۻ:`]t6bQLӣ&S*Sd̞`ouH\%#HQvp>nn~1]Y+eY|mS8XAcV&?Uݺhjlh01׍r8;3N ,6I`Ri\wm֞HƸV\u2iϐE}EWlO} DBM"A+a  VͤTZzo@Hy2>4r'֨@'ewLȜJ~C.mnK+zF\(˶[:`\UVR\8eY UYUb'VhcW~QB9?2 Q}j+8L\ڒŅ: d*:7u5bVeJ̭ m`7M!XWXUF6zԕk8 s_׺}m]:871-τ=/Kzguͥ[,FChYi7d@.|MqPy}_';meh*Kg-cW9&y_ 4p*È&>AW煦4]MfjC?GW#4c|͘gNռyQW/1Y%857dI#PjsJhs|tb?WauO_L[6G*KnZ: _zX!9$ӬQc!Qs%kud~0)^*XI -M5,73; V|ePE*)Z) 0ulh`Ͽv̯iWr(㽹%'BkNK/ >OY'wG)߸ ,tI&ϟf~5͛{4SXDn-zY| `>0k%qY~Yy O[{{ W6cJЋ [X RX4 ղL ^0%z=L?jVmEaUT/5ۛit܂T&ڇRaS쉬XwEϣK¾ők4ג}3x_M X$"D}{jfcW /О;;Z o{j?kC=oS/_Z`R:2 <ǚ)Wxy^*uO Anuh߉6&^6J fᖽ'Qe~fyq. d4YW{~0,Iqr䭂&;Lh:a9T`*Hlii)ga(#  KλZ*G yrd\}\֎02VeE=_Y$C5uPNVxༀV V&jCx7SM'Qh+\4,~ ((ܐ;XoU ? ?NҫeVUӏO曉itaeI@Sٞݳ$QS_o+^LNȚ[q%t?Po>v BLs#MeXS=wcvY)Q<^ L˪ڰsLZ G6\$E!m `׉8/,QQI]/yAm^`q#qJnaʭG@IDAT:C?!/VFtP:AK0&5i;I:^A&9HCOy[ N 5#P! ӑuqvq\ҥV7T.)pgo𗅅LW(xh58\Z/k%ȗ.ͦ/e.5@cF&`IVdr)}]]5-`ذò89=5FtK$ӸQ3A#WKiUC]i7{YV&u؄N=:mļy f@vq @Q;x"Wl}OVeaAfppDaɯA` S{6Ty%55l|%I&^@Y\_]IK+.kӗt*n3*ЬҫOAf:."O @a^,gF4 X_ó@-ҝRb/ޞR=-j y4֧+ː!W߈$ mX,wi<nJzԨ,N?r =̬=*LOX}>J~Lcai2 ^fNza`D:IsJÞ|Rȝ`ۈk(nP#@-VE*_hu58_.8v{dB uMzӜ\'Gʟќ$~!|sPVfvzR6S4y 2#涪&&O/UUyTVUz|a<Z lMݜNxQ/ހ73T(AWP?0,AV zs8XLRA&sYI>c$e>IyRK>˫t~iANŠ b|,*0^g7`=҆Kk&!spmĆg, ˫[vPi˥Mr ِSV ;F,Ma:倓eL ~ȤCTuVdIQQD2>9ݲ WcoVg@=fj|L$ r PcΪ/ʂnX(u+M 0_9 @){c*zPhNb%צLj\J Kd[\^7+\㽩+ Уv?\(̓R Am~c$_6,@,x+Ϭ: @0>ܯrKo?h*W\+Yq[i|w3]CJ)lK;]d /q%<,l; \18(+SpMh &cĂM7e%dsuSy{%K㲒WT XXk: x~ 4]z@ђ5zu8nP'$\b=O&\zIisYZ4ppݜ#d:O J3 &rz`#0KL#mXJ^HQDe<)xT }BhyڅGCg1}4K:5~0sƾ]K5]Y3\<*tyrTGEtwI֓?vWs,r븱jh=Gcʆ624'41Dx+H#/go*μ`2.C= ݌,PIƆu2S% @ 22'eqcP:UX Dj|`! \[}l|{]`Yb=-)Mt-B~qVɩ I 2=M&Y7E+zo kV42,S(hw(5+IX}R{ JkV)w 5^ =(SbshdLz*z GR# ~Йok?`= -,Sb@{P`Y/U,Zx!ȯf(=\ʊM2?qg0z_t WmK+*{dƩXH]#(o6cݱG{=#Q a/Ȝ5b,kP zv;f |mm٬L޸ 뒲ʾQ$~%ז:?B.W:gt]{ Ҡ2Ȓeٷ#Q̓YJ"TÍU%m FZQQވA; J]z9Дh'"Os|kiyOGg1_]˗/6?鳭UtJ$%OZ[S[;QE.ΆGa]X>jy3IueիG~,g~~t }?H dչZUu蛗}XgeO ?rw͏8BAnJRg} aO`f} |(+wlJ7YAKyPXC_<H`"9zp#lqE֝鍹Ƣ󵯼|)U]p_Ko uj<_?zXWu?ٯ[oo(_`~`mZԺՇ|˽4ysiEzL0Q߫O*Hv?ڼX $6Xuw+:*Ry`@!*u !&zCS:ױ;xBk9Lըa!vJЪDf5jIYXOKKvUܢ~ L)kF@jt*?15 F^ʖ[rk;^푞TEpK~􎮷}OVnK7oݓUta'vFMee+OhaO"{ h+ƱN*zcw^+R[ܵ+ T{j']u0ũ DtfVV^uə)[\J ~B5T_K qeSXZRT0Es%kŲg5kDtG*(.iECrPZPџ:IbY=,ye, VåQ:<+3``^Nc?mCl`j#{ \F Yi5兮|7Fŗe+rʪdGᅇ>  /P78&)Oo 4y׬R*Ͽz>}Ą,i.DFլTȻ%)k>4dś_~-ML˚Cqsίa=Ժ,W h\׾P8O;'LUÝq)|\7WB_OOVw1Z<揶QuZק]ޣg1_m˗/6?黭`e<.hj]S$-& ˙U+Nl{ZBuVx\2?ML>Ld ׏dV |z8~  `yCh<\{#w˚sC^qdM2~uX7NZ~[sGԱVi#?Gn<ռ_!tŞOϺ2eo7J pwq~GڕZ9pZ)|eSk>Fu0'eI ^wpc=řO^ sIRN+9E{#hBZ#R#C5Y7y8d*J|4$VW7Qh dEʯl5ɟaez"EXy$VdCP#"P7.e0p~xBGAb8@F KOrPl9` NYf%e+ Y{ҁ<FAҀ gL@+\_o`pL`Qۺf l, baRMN %>Pn-ŻitW;.u~I\߽)KKXuPpDaEZ`)dիo׬8Y `;ꧪ7 >\.@M7uuUYj}WpK^mfѭKϤgOI]= ?yu* {Զ|$=y+҈fo\`Y)x{SOl8%FZDž%<6[i%QЖFU Q-/iL|хϐyy(X#RaKA$y 5K2>xk9ґ!ڵs`Js(EWB@?v6 Fgs*"* s[ XdJ"zy*Vke88hdmmXQI?:<G?&N1A_OЧW^0 ߰,1OL$}QƆ^J]%,z׿y0u+VV[w(+׾0 0uX~?iA LL.U}t!k`ϰ^:5>$P\`zdl>j=u}(VnKCY ˞XXhg8*HUXTt6e~U6(pt=9s`հKOh3E!IqЗjThKa+X [+j5X!+@=^UťRkԽ)fp 9B2(l=4DT^@ 6.2՟.L*QGY֞kЇxI$/Gi~ +p^Zj?>nmn0NϞNgϝNӲcK1a\ ir9ˬbb{y5ݔuw4?A&ׇݹv6bOY}йp?}5AP+xߏyd^<@qeOŔp'=;x(Y@?ExX:R֓L'xj5~#vo'pum5otK&?nԵ*[5J/Geԩ>izv8 TpS|agi=CV~׍q4Ϻ۪}xYsCY#?pV0WQ>eƺDzp RM 4yTȂ'G\/N"O_5=Fw&xU#O?׿(㔕Ewׯ8wcy3N? =)Z> 얅C.0_uAqH:8GtǕAY`rDW:OJ[h@C., +/&+ _{#o1*=P&b14I;?L?凲>kot(%IJw!}-@.X&0VF?%b4{4y+kE^Au>`Z-]D7} D=J @c#;ERր^]㝺GT1x,sY 2ҞJEH!Iƞxz?6E_Lh{MVж 6w)OĢLp[MU; EIМ6JFc ЧKw4+ 鎮~87ҝ>wz800.qR6֥h ,yշy+Hn=CږyYff:5*$UWӝݴ;*&JWrY.pFL?~O~(ZE,8p'>8R%ΝD4m4:AU4e492d<_5zk %pC2&_ʱ5[Y(;.(1L=OY7H:?e兯9է9tȸvn 0arU AK-<>8CN+w()rs6EA$~x) ]wGsi$V`vQB OdL\uN,>>ٚe\ -|ln.y] 74%`} ')W,4\tx7j^޽y77n`MYnf5Kd侁ej5=xk`"MZ4beEP銠A5F(@}nv^̸ؕ@()lx 8%V(ĉEcCzaE Di-+PˤFNd!Yvw6sk8/y-j @C~R):?aO)EZInŇu_UOCju/9]5|RӃ#j͵,Ms68`==,w Ⱦgo;ub6iY{O窱4>1NΤ)Y) uJԉyɉ3 Yasum%ݝ_Norʆ;J.έE#ShӢ]U {(Uu5 Uë")mATҞ3eiη{9K%Q}r=UG8,iUy,KF=GM ޸ Hd; 7t>+rPӉ[4wN8 YXrPn[V(Fz9F 4q؏Mzq֫ݣp7`K ˂fkVv"SؐE7k (w[Sڶ]9T/MLufTV[ck_ Cw^_\7kԯX<Թk7r\\H˲2,@sc9U_ntfk34@[U/BG}[zd٬Go;J=4wdQ;拉MYZN峃IUNrg-J{N>1djrrԬ,,yϮ7F(xKqmGLK29GSi#Mo+sr u;D ,2S|!Gy?&`W.z[3IR*b}-h=Ay-y_%F>S?FX6DuTbQx&KھA ;k +?/O*^y\.O]d:euÌu+8}0gX%8N:ua}0.{ _NjԜV)Ӝ5*yZK7Cf1):.;{y-PRyYyp+JBv'^{]֟l|>\|Gs;x$ ZGΟL_W{aU+ݔޏ'7 u%/a&˂\gvkee%}\J3/g2R6/s#xDTPD́5o̭V^;A{ݰJgg T kdiQ5GҺ5"0@!eN,Pv hxˊP^VEVK6L{f-{]eqm>.K i\mdunV5F>$?FX-"3=|,t6N{Szd@-Yeu?Ck5-sC]"jYu_{ A ~Ӈѐ]53,`q`MŃ'?\i$AYA0)EKټҜSK| BBy">{!?HaHXd 8WX(¯*(gR5ˢ˴1MIȣ0E,C堌ڗ4kw! b.$ E+h`jMFg!JuA}|6՗ϧ^8k`B],DM;2e4ťUgOM˗Τ)({YDyەΜQ)X"`rC^Y@fؠtY[N,J?SdkFA^_<8B^g+t `&pf\d'H>~Wi}yހXUHg\WNLIYJ>ƅ%@&f˵Rȩ6qa,N֊,Jɥy_s@3u >Ш8/O/XGRm8TCJyabdKBY_k3ʸqw-btqS $1g^EY`^]˕;P^k:wYc.,I+ ˰#l #455*@`>+4b@K pUS7djJcYV$í[wgYKuI6[#2hr)&x4" GXQz6ʲIso3M_oAnÏH^{ѬoJzQo˵!T<&Bԥ9<)eV-2gQ& 4l#z/*JG /nZB B5&%rV㩇No-=6o@{`Tre۲B&(WGri-XȌ\6yndmKZ}`)*K+B6J'_r4~H$H}>\cMw2WsSOy۵4%KZҗ_[7oŊw @I4/#ˠ!|{[k]-+J{9f.NNoFEF^/U+lJ)75W#>>u X0oǬ ݺJ5R˪VeU|; #z1`XYOYo5תN<uz3vk1mm t=H ›kjɾco-m_\u說.Y UyyD/, M]=5YQCg{ӫĨh^RV;O{eO^Y#|R.k?{fBdZ./kӮzN G?0ҭxy9|[M֛w~S:6ݺ$j_>I[iantT#m^{>dDG?M$prtY˂_`qn'',E\[[;-@9/ӧ8alf7ae'x>va%D:hn~Դd׹'`:)+fB:s:Tr+J5.*9(^(ryy5p:=3)Z/[,9'ǭ2ߐ@mX0bc @ (85!tϧeb`e| ([/Fw0I?9ަ$ԝ7o~4hmBy) kX`11Ӳb8+Oͤ3tJ֏۵It @e4<n24h8xA{ON]- ⲮꔵMoX/%mXP6Dz\LWZ_Neݪ[ u,rиq{%т,>_:pmH7ҥ45+lhf@=BTЗmEtgq+-mKLOO2Dz RtnDf'U~mnm;[OOǀ R.&'F ggspˇ\M?InY3|U_ݚ܈e]4 u } 6h˧9TWUQ3֩4h"@e(M?YC~W_xn`kʠF ힼG%rJM>ALB mCX*1erC:@!7 jKg^ɗP_zJ*iYE"ܲ~MѭE2|2oz}sN`,Pj-TWx)* '8`(+[cC9dzDVG^lT@x2N(Y_۽XH>@-6ӪA/-j//T,Rk\}$(Jjv'wAIC۩_Wdwc]S?V,neM7V҂^12 z9Ըze^$^^#$†Kz1B/H,oU釱û҅ Ո@in+M5>>)?s } ?>Na us '~kQWjoq  c9qF/ܿpQϘry1ĭ ɼ G˩W-9T?1"6d۟?X*Kxx99eL:úcʷ|pBsvvE;i5np_5ϳ+Yi?mnǑiw'}izjV$sdoOdq u?䓔ykO"ڵ-0M& d#㩆y>> ~ۭ[:7ϓ/@ ':>?qFG KhE|"z~(p'QN7Zk%_k}TigeUy?11QDW]xeV#A<1n#=SM^jO9h3><r˜x zץGjZć{PzЅur"߲u:[Є_M<{ ?zԗuh7FE:Ai80ukƖxe1tK$d-֡O!:xzj1Oxg:*R 8Ġ=һI)Wu,K4[:zY:Nla7uDGMjE8~@IDAT/?f ГɰɊd-C Ѣ217 ǒh;#7)9"=<([,m8{}I/RZ)}DߡX/SgNp+9:\^XN b"E$0yUW3eB:$%9=#P~CnsE5 uِP \U:>s421)xQTxޅ䦓uWhZv8B^nđCn>BƵo8--i('*+qm$l&M̤IY8U)Nt}wϰ ^Ѩ_cu *(`:X0H%3' RW1+ݢ%2%-xeRpҕ[L'^O/M^sY}[m&*M. (ܛd cg̚Uٙ!ᴚNMˊHJe(~kK@tZ4+Wm6_6Gok {T] j5x5oDz[4Eu6QGuNi.Etiϕm"j d]xiY*x_9/P__:=;- Kn>.P^ Le1}uM_L.&fΘE*?i$u:9>ED53sS?`urGVٳ n\]Z{,O7::ƴvMN%415F'g/eQhP{~Xc@KVEX3=6De,N D9?}PŊwP p^M=)gId Oү,p(ɨf:54{yJ[n%N ,%4wdIzi@_1); iZ/5v6tNf*f-(YjcS/ɲ~x{Or[wL~ t=9Ԉ9_LiS{pgdh}}H 1^M'9kF:<~lTEyٍ9q9PsT YޜX$JdNI60Iiy|=MsM hDzU)$@]pi~WӂWa*M:>X{:9SXGꓷMUu֥'5PmSêg LDZխ&[ %NU:díj-L_LWLRfeɨ<ϴNA.:7d[U??桌a򇌇)Ysq6 B"hr}=캇 pC(;pͪ$WG|U'OVyz<:$ WF;G z0BU}^v9ho6`R}]8XOƳ] ˁI:LդMLξTx&] E-uҮ!%\T/~Ius,v+t':o\""etI Ȑ+G&$;W?0nT4@XH!6=I Ŕѐ0^ RvUL 0_i%iPo;uC" ĩOӬE>XM^6H+t&>;__(wqݼ -aXgr %]Iff&ҙSiTVu>jJLY0bP$eL Lӵ_HXSUU~ȿFy\:zcUebJ2>0?K+Nc`y:-;))8V7084Mž!#NO (q*r\@'$@i(Bn*"]~6Q/@\)PӖ@4)ː뺚sYYRoicz@Zp 'W  9=*IU\+Khâ~ftkUoHk he-QWD(R4@43;>)=)mzeIV4o~aڸICU8UZHg|ZVgh-ݮ4#kTgϿ ݏ6-bڏ &5؊)j5ѭ~EZ䩆#><5H6UZF0nQ_8ocN/y]ִ_K¥7̸Ej7+|++kb^Pҋ-z%_9݌ 99=^Foc}Ðt4ejڒf K.27""[L[6uAuvQ( {&z_"]|F,= <9)'Ԕ,PNŊ peRYݦ<'zaG/Uli_^~o'ij7sΖzY.ImYUGHefUp~b@VғXo/3,Oz9bnMXw2,I?{&њ}ݫifl/NKW.EY'eR~cu7Vv+>6T_^e5Y*j?ti?d R-bЧ׮wX{(ڌ>P41<.r7)Î7=tzjz=^-r`F"8Qs:q]/xo{xTXZdh.@u^WS ,[4,d9Nt<֕:e5V@IK,nh] ^03CR;90eV-JVD񄏚wӟɟXocț[}COr;&vyJ8pP&ɏ ONM".+i)'d+|䭣y!AkV]G!L_ suJ򅬤~-O:qE{DaOGk,0r j/tB ŵL/duYa.ٙ^ΟE=rV d.B/ >U}NC[$ڵ \v>cu 3<`Y-|d^qYb56j#۹^fPeKj ӣ~dApZnwM1t-W?o~~:d(Lx(PR9%pe8X T{q0]|a֮lCg9`+LzX"_@XT l}!9ȭqObL \Rˮz5}r$\CVxAkOІhB X!zg/Mn:\/"ؤ_P]}GyB)]GrBX20܊ [&+M+?'dhbL)\S ,+וkmLɊ xѫ+/_6PTT+RjݕqF=w6xeڲE> hG@$5G_} ~-IaiOh#2,^}UP S[Y`ci`hL>էh浵oZZVQ"J0сTMxAw^QZH+imi),iq]3ͮ(dU> HGw s栬Ga0W\n(햮YbO,qt_=;^0U \{U"eIoQYY=md^i4 7,Qna^Y|z̀ӧ ~^{Z<\7oI>HI J w4}rW,sN1( z]}{\V(ZZMjmi2}_34h%m_JL/fk'ˢpZ(h یi/ߚ6:wgBKGww^5 L 4kk}Y_Xq6{]YZbrE,{ޖ#qum6j>b2 `IXڕƭF6Ŭjae|$<mGz@I(f/JԓFTִ V&LLI֕ϼN]x%ɺbW+J4Y;֋guDZ׋KR}Ӹ^Խ־We]sUܝ%XhߵN4ΥTt3}"PhqO>\N>Rer\xtQAR"`,&¾;>͙bkx=͡*Tbƿ~U:T8Qy۶]'袜VWH;y_ "|GK'y:AN^O­e5Iz^*}5 -q~}bg&P^;f.su>oNdO;0\kܤWe:r i9sȨWATŁ9+ O׿,'y L"f:!4qXZ^X w& ,L>eY N6YH&deA6Ȉ5ţ:SUio5>&)wx藵:L03ήr'2ID)75$8uciHWCvn@ z;ue)`Rbv>sbЫ%?d}2W*Elt2c|4ܓSϢk=h3ѕPU2NXTsPs[n_&d%?i(K_A,ӛPʚ҈,, ]q.QY:*0jVJť,l,J s]U\ +3z3Ao2ljB0JsLj>ƆYjaf^֚”ݼ" y15Nc0˒٢~]gM֪Ǚ0&ĉ' ,9 }8L@V4R(m~u&]kkր~s1BK5Vl-!sX@uWo uX[bi(\Otɑ5>ͅnj:qXFa3hMVٚά'v茆f3 RBq2jh+K겱j;>y̦ZD;F/&nL8YG_$u=X@$uE/}%0yBiZ6|:h@𷽂83ܶq5xޥ?;fIax3d 5+Aݺ7lnY憮lle}:T200zR4j řX#{X ѷ|?:w]խ3Otkl~c^EW^Y6z=AOY8kaZzzQL*P׫:< 3~SX2"{UhUuaEyAbKu]}G/I7L!3`CgSN^H[IJΡЩdIzL/ }u֥KayYQzKpL:X SǡgpT% & ǖ4KKvY\zX%U8W>etTV.uuo$ܽ3e{fSc'Σݩ.[ZQL"a"u(z]k񩮟F3㝄ou-{V+h>yſI,['O]=zi^/V\琉,Y~x>ئhRݥ}OO}|ҡ=3m4 e5󔫞 e2^,OZ_Ӵ/~$r"lD(ziΠsP0,[.O4 `Ai L0% /3}>ɀf'HJOOO>O&Kջ^zT`@"֔LEФύyAOjUR=D~e*4G.Y8gM|y9HӲ6yLnniWoW*fyC˙g#[獡eQ>Vrl>Kc\^=q7`L!'q!{sKAțTMVd'X3L?ϗ_~٬L"OP,;w?3ǧq ?k(L>E(YJ-s|_vd 8oE0IDDpP4auLO63z~l9ԡtӒN?C,1>`ȱ"uT&)Y^N5XNJ 6uE)3FY3y;<𡕌A׿j vZXY>_8$ׯ RFQY2)\\l~`u\ N%Sd;&t[_זR&*С7HH \Y gt'k-* x&kkS5SxHL Vx]veQNA@/g`VdajGzJ#nH$&]q%1KM٥k u&/m#aap씀%4wW>icy`MtC`Um1G0. ~'Rߛfz۬c"&ք(ZbGr@E;`@vHWbrP`0+OEݭyQA Iy*ǾRs_O\_S XBzBCe'g&g[Ă6 ê sҲ;dMk\VF$:: /-*aC%ƺdXd^Ӏ]ƘC*Fվt-NF@^|M)~ DLSܯgPGD.e($dZʩ"6`uKy$X!餤 } wob^}"`RW |+뚗Y O$ܴK߫+XrU*bi3LJ·Km\S&,.|p)|ty"RabY>5zikx\qb^ 0v O٫eaqp#W\ÀeN Jkj[sz'b7EԡGc}2CliqH8q$?IxD'}g<`צ(?97H'*O6IY095,ئ|MjC//V,L*~mzur6yiGee/>7lH Oeczb[W0ˊ0{n3t-XƲ29cս퉈 @}WWY۵JzhГ}CI_|J87=.}YBT$ oYu'`݃I(2^`Ŋ~,P\i,3+vCuؙ/4|_,]IJre%l=1nOu?Tfb(][j> fky9xJR+Mp+tUߔ'~lb'1:*I]P(㟄g+uG[/M+OMZ# o2e4"f< ?^(q? `ܒzF@AO'RGg+ZW)@4HteIҊKKy?KWy tm=}u.k_\Mޏ=ϔ: :Mwq5U}r&<=--3MOSf\Qfv9'awzwE^Ļ>Rs%9fdʟ.K1R_^ty'YK?QGx󡏔(lo;^V*; .\Y%KSR-41rчm~9q_}U^g&/8s<dqeDOI_d:t` k\ePmtX,K)+P(o\)͇C2Q( 5t 89qd/\_'EZ _<՗C:n[`EjG,=N/4AJ$jۦɤ[|SlYFd"tkEo_b6Ï8-q:KF 2ąHq*D[@8]+ ڵpUr6Yb`.l.(d\>~q0 W7`y $P6 {{_:|'&qvm+cWeK9,L,X'WLc iokq@n Yat,l ,@Go_YBIݡꣲ5eY :$kQ=]Ocgχnxd(y!yT=ɞRZfo<*G@QY胫ȻdUK ҘC[|S:1ĖOgֿHOes4:q拚Ε噘WGLɷ0 dͣMgبM%8X[dS% `Lcx:ַ*5\UgBKiafNV?`NX6dZFjatud?G2 ?sbl(|kiOqۦ= ;Je@7ר^ Ĕ]%-1q*1@F[`kE&_qQс> C }jj/YdTl/3>Gd2GvJ`7'@(fՕo 0yT!~X7Һq5Ny |ڝruu[/k ͣ8Ld 8ڈ~ x+y@Ã"Y|W&T%[_S9zF 2?48]5*Z\ᘺTUl@ 7`+-T6&tyr=/[9HWߡh @C}zW/Ys{vr@ƲTTrX \pw⎊H5Z\ߥ<*xSpwr>\=n[qmW)oPWԕּdѩe'WxgPGIYʶܑpXDZ>[BbS&i|E*fni_9+?|9~VV;Ö֦`AVLɺ5ӹ#wK'?ybեK{Do6ő\PY1Iٞ8i=*=Dk}`)ARf!(ouZS,zQ8s׈hW(ozii9)~\ySE+t_,^7OJm:/XzVL/),2y]:%ǟetiy-Zσ]+=OOOYVK2-W^~@[L"W`:4[/^ZZt+`2G/)u[@=0O:eb7&GX[IMtI$;YuP$jӘ(`fˡ;nzhq>OI_hx+{i՟YလW6pFB/sṄ5$~b@Pٺlݬk`g?c+c 4ވ-C(}ey'L*ph[zbtpqwrux%w&j"1~3e(UpZ^x3vYҌ\98犽%M0Sᓋ r% Oe`RʋOmD (kGa,`mTY7~GyCNt'di/ǀ:l3ry|ܸy/ܸ=W_~, E,V8>UwuV eNX}C1@jqS&> @Dju+6Gƥ+i"W._t c.($険w'LӼa] `lE\K0g@Upq5O[PO/L2Rjt5HrNz}¢a=zR8Дf >N 5ò8tzOC?6G ~\#`Jq{6f> W. L:#rɮjndžqKcUQ^oK7fºOo@FKtY?;qbL et}6 ^Pwju˲ a@OA a-\Ļ==jۮu{Q^UUqz95!ư&Rb;=_:w2|khN`^9ڮ6)=ܓյ_I&ۇy" @ԧvic/!H&ӧ=CUpi.E{pRO{'Ȟ9=@uY{Up_~3Q (΁h?nY3kd,T7ϼτc]L-^@ZRcByr$i i+I@Ҿam6d_pKu܌^Dgk%Yy*2/5ޢS9TϬ괓Q+Vq.e(zxlL@1Yf9uPYgC9Yh,ܽI%̝]ٯi1z/ANq%NjLo+y+Q[a1{~E'yM%Ckbq?̞[#)OǓ`}7ZQ+saFrͫ\zGꅒC[W_XW`{9 R7̞,c M{׿~^0ʬLc/uKiT.Gm1irZi?.C@3y8& Q-OE_Nb]|YJD^4$8~5(薞] l^Jהd` =S^|+\zdG z,lE]3z,Lk#L 2e$N*+QX *EgO ,[/ࠬtqTc:!+CFt < AՁ aY0#dxQۣyb\syǪ[ZNwSHY.[XB,$` iļRbGJ$S0ג `)Xts=޿4!V=#-,ȧ/R_G'Y0K#PbdT1[7{R@ ADl2qV.{> Sw"u& UE "*ƺ葾 +spMV&?tW׾ j ɪ*䠬I ˺ԉQР@22f`Ku"nuh鳒h @a,WNLyfU􌮌 =AV"QWqJ[?cJ]!hmY^$HK\Z۽\i|d֖$ːxOSD_!Oy_w_Ͽ2$(uˀ5X `ǘGOzE,`SV&Yʹo\uਬGi|3>vu{ NM͆_KUWr@`F@^Fkcք@IDAT5`|SVl.]Э}{VtI=5b%½;| `5b/P빫:61Vtqȅ|F[L Xm׺~oF)6Ld²3{PPɠ,vk@^ڎF8@Z-syeLTřǷ<~BIkzihSV'La^/ l T5ۙKt 0U X?xhiEVG^}~p,Lb a,S2"LYXfRٚZWDcW@~LQs.Xoiq" kBJ }c)`U-B9ksVPv"5Ve}rxx@@!Y>$/0?9VeuH{ 4N ibNT#,?xnݚˢ='ȯKή0.3Ϟԏr!ph>ZY *Ch[u^{zՖ1~DL,L܇zgܮm.m^[X./a&P7;N^X{ߥ&\v!\ܡ#*Fg%4)F*n%\E1"M$"ZJl>K#r? 꺊>'4B3 0葹K+/=jw-YSZ7+cr ;?OU"hWl.\K^9˕FHyH(Oww9뮖VoR"2ȧ߬%cZA<4~8|IX ب~xAnAQXS55 tEPa-K fA.[>uk0Y_2*RIeI0I&ИU朦VzYZq+M~)]#?`I\^~Vv/M6,KAn}QO :_O쇇~uʧ,I9}}Zo:b]ѺC9é\.)sFҹ #'ke*o3U}=j-Sn]||8oQOxՑkh1_/ "M<ƍt!~_7SyizJ=ϓ,Ik1]I'xZ Zu 0) mD Q #":6jZfMs+:b{S"eH)]I:|jG&4]:NʿrTx뭗t,E [[ @Wuܝ;z?. Re$֕O&+d?/V ~O$ SQWx(/:dѵ7RXR;c+\9HiLrt< $Hۢ~_ %EmL.xjIŌ0@p! BW:4z6JfJA}v=\rGǧN ^~V;–v&rV)~u+kVSa޼ۻˆٻ7ㄶTV@?#ry,0w0z|<`S YQ6"d^b|š,-v[,Y$8ˑss``bh}R3òV*PWhZ}.wSFf2ʤ g=uQX,c){u5@# ا7{CW z-lX\.Pb@y @ sH`t6]z[*Gk0yDװ^ٻcP^P,[#xC)5@+. 96$ @ Uw[\*c}amYէz| YUKşUVk8!vn5-swN]ΎUM Ee,3{3"-ߚ<_?7 ek_t6^%BYcܮ!m*W_\UhXX)O:|ݩen_ynH!W oZxa@$щ]_yQK{hK(X=1Jk^fo)pLh{[;~LHm$Om31~*ӹ7=K%(F|_+緧E[jUrGY/:O8P»$*̙D-6ʉ&-= I$atzc?Od8(^f9-27oVFyP\EfgL_9S*ӥ|y=x㴵)]EeT9ɏ'q:p_)GeWlGl dM=~)}SA&)+@?,1S0`Ix5[26L!~SnJc\XN&14r5ح&w:Ip+x:8m-]3I pG2:x9 u,KoSKBh^nYW~)`2WixhTLeptOzur=qe"),8ϓО.@R@>"&22}gwY*,u: xꁮ敵9&.b;c+M*W'WόFcq°TEʥ0s熀!swmwT`ɕ)gmh>g!KPXOթRue鵲 9im-ZR,.O=Z[w_Y|rN,SA C+ti)b OO+!-Y#[7&&}9ޮMC]e@~EKxJ,k3 Kz0Lb%W羢ޖqe5ʬPkY[@LVY{NN_}t)\-&/0y)N -_g4P&,T^:?;Ν%cNGq-A%kCUA̋X䏔9m@ zf=ڑy}̚,inXsH`>qy/&Yӫ{XL`@J1bݷIu^5'kXuvNUI]oܼ>~PЕ`^T>mwg0ID9IǾ0ZeH2(`Y`uiyU0*|Xz<`q4"`$`4_P[H]L caXOõ),"YrudJOuY\if,$/Rww~<}x9 Oݝ,LRPYg=ֆfV ZDܤ'̾,ß^W#[{{Y^ M?>|`!T2 OnOLz=s<|7ZxkwkC {5,O+Ƣ@JcLf![ У>.I=m!NyYg^ט^XCoT~[Hz!,pudŘŲP ;Sp/v+Nl @d}{HOKKsTc]`RߘO5׽!緿aRE_v4 O<>=ݟiOJ=KJ yVxZ>H)o `弴LL6 yo8lި 0٨>`~ΦSzEb1p0)/+ƥy$Xge|_v$21az-ӦO.ʗ<u$F{<[K@I_yoX<.|j{PIa-*eqerբ{ݫ-~/Zs4{4*`(Sz|yzz<><ߏIj$w.7<_ԕ>b~uq]6[t-a>$!w_ިNf9-5I,D4ɧ萛0}sdddͼ$UE(/~aIsV]Vޗ9I_  9%;L`N X&&q:u h)*D. ;Cx0o $z]\ypo=Cڙ2"ª\Чh]a(CX(U#uU+oz؈5a СXm.k_\)"|ef`' *W(kwzJհ̛/>n ,Db\UUdVYj}X="˕{MOӑjxd7QJHfYni.ӵܺڝpU8Ĝ<3^ռ U.Oqi0qi|܌+S4Ҵ(-i1-=͂y_&:tR#׼g@Q?q=_eIXqOKneNGúʤLYR=\/UHhF 򑫘3Z+*oFƵQ5h/֌WtƆOZS _W' }W%yΝK2"/k[L*':AL Xׯs"Ve@q)Ԇ,//jT;k?sv~^䇅ID4{*|;_|ÈNj~kXzy ?eXs-yLccc9/ʞDgMu[7ݓӫ''sOȝc%,֘U4-Z6ם?L9Tc)?{ŵh1_ y8dkF.e4Ci<\6ⳟt=z9σ|֓bE*Fe>YO< x£z|rD{R秴__$j0I^sdk%7 ]z8[u>V2՟LRfeIC&jH~Mii8'Mp^#>In||aO'ڜߧyIåq s|Ÿ_YmD&?p)_< xba(k}r yU_V|2T>]2>HOkէHS /+?X{$~<9#amdr:M-9Ǖ+WĄ5ԃ%OY?Z==yw8c6/#*MxCo:@Emʵ;(NQgÅaqA?D.k:^%Ow[xY)Orٮaq#RuLֈC֯ătȣG־eһ#τϽ,B#(XLF5P_ܢ]U4tea prU'XÌ b:Oa dHFzDZ\ĕhҠWVX4 ;q> YTW3pp GTUwR?!<+Ou>b4k #V39~6%E4w0dsPۯ|>|_g^xGA sKe<]XN7]}-Yd23Y5-"b5k$+SaC.]-ܖ,:Uq @t3ܟE%ћ4 ORWd9MЙGi6Uy^O7TUj//]*,|pdyb(~S+衹C<`GXKi;x2IkzƑ[Znֈ2kPmE.cdN!e٬ѺۡkWo6|cheeY$pknxW4dv%Fti P X,sȈNKҩ*#3'4K{ЀgȔ6?k`es_{­ XuaY^7n͘uU 374@_fayGhG؇g +Xi~hㆿ}e>Wmik,˺y>66oN}K6)5GˍßsD&X151ȞC?223i ~޻[pG@ubX\ $`upRu%/ -w4\r[/*Q o`ǖ?T2f-r⯌jxO4P^HNLsWt:m]5Sݘ?9龞InG!/Lz|륥wHiydr*mZF~|.1[-byHQg?u)oTrfi{\Y=]~#ӈ^:O),OeVe?{|4j_+֬Y$`"8l 9k.0XjůO|YEzžVٞx6ˉR0_ϝ&={aq73HLeHC6,0#(#*`"&)qUWQ­Y;@Zuh2~D?EJz(,Ƿ^ZO'Q{F1]#K?N[|zbps@2H_]Ki9 /I/EYR +YVN8?p~-[28}':mgxG^[Ne|CbA+J:HΜ9i|8p5a6WeQqu-bJtp֓b4GCXTrt@k*\[3X.IV>ױ,|C 0)QrjQM$aXO[ҡ6Ѵ tӮ6%c0Z*@@nHKƘB?#ȇX*ggY[ Sڶ,zF7wtM{GP{d};~\-Q,<*GF/,8<>vyC;u2Bӵ?tJ/_ztu?Z46ծfQpQϾcT o,ԑ&WŵRTʫ6u!sݠ)K"PG=4Ii6gh\o}y6OBgI<4r9~]Wnh}rOr0w3N9zqPXDe+ZI`F}V:f^b5!X+Rū;$ $u_ɕ&m䵛LޜcRYo `nyO_]`6hj=5ɗϏ7^:ˢJh,g`^v+rHsm2>ɩp=iY]\ѵ›i0uRW0G|^`+613+W?]p^@>ݺhG² Fn];-*>̑x\s"Ӳ>ròL `Rhci6`*4q{i.-\%$a!' >ڴ:3V;[^K֚@~^1U{; 5g_>c"Fh|H [JWMc@G` Vbehɉ_ĬXӉfg1BX~>K6QM?=dXm XƊ8Ɏm`41@V]Yw$T/XYSgq65FvdU;h=vGN ? uVZCX[K/UnڷC$ہ.gx74f\ +` ]]?E3'2s,ah»T/_Qll}Կ&r Hq=\ο·y_(pY{BT笳y8q9-6vHPaŲ#O#oʪARS;1f ./0z[ZY^Z}1':xF m]~sYQZ-Zu,,oWOZe*ymY9ŸFbSX7׉xz4IkԮQF-w)k:<4j+֮Yd3}Y2Y0Z`FjVEY=O#zrǯ,o% M~^"r;jѥE4:)I!C(2{zjel +&6r'b]0IFK+A%J+kfҠil./PH^x1OOU5C[֯G/:<ݟEU4ōw䨧gZ\kDGH-1;͈k/β7| 3Ǻ 3wwzOdd]dZ E}ZƗ QTO>̙3Ш뷱SNr]=/ =:^7Ѕ?W^xB8u. Z?u68el X3)vag_ SV% @K%tIW9]Yԗ* |j5p(FƋ~e,-~pg6@ف6=ر[:&4 0-3hLZd@F<`&i/ | <|Q|6K7@lC] Xlax(%WD 8-jjqU|ԯ7ԳoKJKMG_̼Չ9oeaN23[ͩ3T ]>=3g`QdsτW_xtu5wŠ~]}Q:\ՏdъSb Z U4sQ<|%$%Q9yF>őEdO3L7Oߩ$+Os"l<ƒPUaP` Nhok,VqƥGI1mmgjAJ==ӊٝf)y=h NW1/"oԕ}%Y[AO]r3Ό^TK(} v[;Z75Ϲ$qYcahi %ti>dX(7 7U];ZJ㚬 `:%=ϝ+{@ 6&l~ż,|;.c䏡sm Gô/fIYΕܫ+ar`R S6K~ab=cOy0hԓLJÉamE}7/Ԑ'P%Wm몄.Y2y$C{,MEpJ$*zMwxABHPs:WI%U&77bhf|p;$򿆾ň z/:aw^i~ZXTsbh!BA#/1j+%_xN/FrČŹУ1Oh 3ƪ-XNߖ`ܮ>C':noJ[XF O2[_4Դ9YԞKXOɻºy^WY S*GSwżWQy S^CU6-I/Вg34dk<peW/O^OWt~/b>WiK+}ax#uJO\o}m8 oN@4z|2Ne닗nolz`<$eNh3hF4]xxOi Ŋ#~5N0|xIeP[,}Ӝ o/<# ]O1`Qk(jCWU~ɥ[T;.Y*a#y+Z2!is#p5'_E8(|}%Rԩ39YٴAZs5`p|-YV^Ձ}fv!|z͈븣XK蹪,Ev#wIsLv p:tӏXdP`C`R,}/"H ٱU(BЁK_W*OUm d5JodTҩʣN|C{u?V¥6侪k}S2U+:0v򴌒ʊ]C'{Y:aЩEkgCfLa[/&R}UeQ FӤqW"-8ՀYZ|ݟ8ܽu#+6GʵIXD0˘jUG)G++ X `}4,J)j76#a,&nc=bAd)r(Y< 0'b}+AEJbኖ3Y p$p@KL:Ե⒑>@@O5 YnfR_9ATnUƉ^67Pv rv~1ܞוK9믿06>"&CekM]`k=(s-@R9Peѫ}qBVɦHѧUR_RaYџREx$fOXM!C#yc۽GJ -wm2cŜQt?}=LkY1i럸Q| a|I@9; _{w"wh=9<X0X1@IDATjcJvu#\@tWI#|5teI降8jq~cc{h"a7u-]NwĹN/\i5)r}`fɋʝZCs2FԇcU YS0>Ώ_3)կ  { z~S?ҘIJ}&4GM&K%#k=e}IߝY kJ{4F[lb[_}9;y'㝽#/cݟ K0}gRWi⫢4+}|طlkϺ"ܒ6uot>q =,N/HgX,2 )GGo) րkno{8+vbyc޾J2rq XFpkFNkm'Zr֊Oep5+iDLۈ_|լ2ԩ2Z'YKEiQ^+}z~ϛӍt~Ezu:ꦌW̛2{9m*}fӲ> 4jIZEo9i0 FZe6G&\-w=)=~SKof2g LLS';$|Sa3T.@1NK_X)~Xt !Ry8M4uzB{KI/vK?y(zioex'ˈY/q+++UIXzo _җ,SUŧQz|"{Zi/t]'.^c]^ꈯ]Lϗʐ鳌߭oQZɔO*C_O\ݪV8z[Һ,|M{Y_W^<}HKܕ+W ^}4i=x1aP~Y1I|>usjd{l0/#0YXQfMQ\yy%`;̏]"cėwL7+ 0mU / ?w\9t~EK~\8wdEtamɼ+do8}02~Rkk}@!]ݡK%ϝ7W~<JϜڀX $Vzƶz&'n__œ|~ˠL)`yYpۤXd*[>,H4UaX {pg}P@GL~AU1=NC6VPI8y]ƥex8zZ9] F]dE6y;+NG|5*R\HN}9ܺ|1u3YtVbc[@?Jv8YaUv7BHD5%]<&/=,ȲTɼ~KހkLlh(A[~d@ },Y ~H?{oeqU7Ѝ 1,J,%}Vb;s+2+}o ^^k[E$ʢ <@]>sn4@F}]vϩ˃YJ=#i1f<]ńHHgxIťh;8,KgY\qLz}) ]25?}4䟼yV}^eq du Hדղf,1OdBɹo1OLYnJ2#^x&Jn`*d*j8R5]ϻ"1r5߫/9^~76N3*75K™St}sK1 {6euM7rc57dVeŕ;/Oz.?n/zI^ ,nhNdb4V TyѡA8z ,ǵWOטXwyvkct 'e ~I %(NaP0Z':V}]heWuԉQ(!dւ7> m-к 93.90p-Q31*˗YãuΞFIH"Wm-b&}Aϧ>|K WV }շ ]VMZd}^2Szqa=ڝ.>DEcJ|,Ioj=doKG*S4U׋ ZG¸e]rB֤e5t*G~CCa042=h=x0t 0 3͛aNL[~, `z@^ªgRVKk+)  ߑuՙY/7Ńq:?|:~kjZvz{s,2}Q.Wnh,3oEy 9h'[z*i=TU:Gj. bfe:m.SK xݚ\_Sai\챬#FS)@)xh/'gq& |Jz.JU;MK/ U-벸ZN2T*^>ί"CKelʼ9==~*cZ-j<]JӦ4iiS?ՍS=;4n'>V%b)^>nη|WY]z*w7r9OyOs?w;XQ^5s?Ym;:r׭5?/3G50`떴) 8_#_g뫖Y:to˔YO~/9g|iq:;Ș0>\=+a뾗R^/|—gkXg_ʆRy}i뫔Q6`rσ[OIXhJM%j79ےhPtFb]AiY&1'yޣ}{*ȑvb B%bI]MK}[68Tygs9C x%95h8`5G׮ [~%|bWjfH9S/M?qܵe`bM9._c)v=Yyl] }0: _&_h: @R ݝ-ڴqx7t֗5 P Ơ0eeY޹xZykC ` Ɏ8kwʟ5MX#R?nApڌ+%Ӭ7ʤܧ:|0d~I~IWS%{Bw+C*W %ȄTJzm-2v,KrzָޗM]HUTVjzvB [A8EGd&&=~]\++dz6fU`V#bm;.jS]]zuOaZ lC6ҕmh' zht}hm7٧ liVէd8VN[T_3%3/f@ # d2_(ڞ8??VpY;X { Kua-H’V`:Uc С:P=6dkEm,_僻+E1ڛY_\(FxR#})dO,~FKgEEK1`J +nMu@B{=Ơm]8*S4 iϞltVd@ekHO!Y0YbB_N3,G2Y'[z| oo-9xŕkig{f7o 1fBNfE{5Z`%D ك%c9m+'=ڱ>Wz@e_' ƴXN.Ҕє)SoaOϦs{LTKO0MctY|9+Lf"TlmT(ϱOoijZCts~tEW+lLJgCW/]Q9^j&w `Vy떕j5iWğ"y:t"E@ۀɼiԏ8p-Wނ7:~ea-zvTԺ$|ZVk&i˃R$yd>\$IŒI;'XP _-Ϧ| IKóL, ~)ɖsu|esE"jqy hIz_Ϻ_OҦeDm-</^,>7͓e\+?2! aD4ׯ_79gffKy9^OHz [etCi8z 4Jӟz-~)~l`hF$Tr]%d1YÿxN;:-eձj6/VVL$NЪC̓BIV@ͪOFpW 5־o`Dd@ܸ5k@'lR݇PXLʇA ~M2Mƀ31Z,Euu!0s]MTXe-:JԓCmu{]+4?Б.}N DStw1*-0O<_SrW Zb&z/ ZYpĕULE,)1>iCee;;|xTpL2 PCQ.#ʏ@9nIj:UC_c8l2b(co&23T,@&O^ 'N`R֑5?.+8Kg+7Faˇ̅.Ar$)%(HBI%ckӕ]~`8%0v%r f"/wWB&TF} ǦU7oNswM&.5VƄerqb\\k+`p-ؼh`}РY! (xQ{uۛIQφKj%ͅUG&%+  |s%Gݘ)¶ܨLk816${O/ݱ:T&[V⿴Pv6ʼnGC74zFg ^Y +ྖRnm+ȓ4kcʌ.d rgR V$4V¿p§B* 3hS?j_FeSVj t@g/Ih9m*>q)[c^(Q{5%eu0/I,.) +6ѿŖGy%u7M==]E&ŗS^kellZ裏B+dGSz1Y/,mDd-F2/ ٠J?u %Idmf^~u ɼG36}aFIXŰuhiZ q Yѹ;Se9vWT֥lFgi 9sL iUlD/Xό(wMz2 22f}Jt7cAU |WrStZTNUC&;OӴ4\+ikJw>YAKG9ۡ-+Kep*[>͗yOy{ܳW[xU>wדA0I|Q~♛nܸauxZuyLRsB[\(t@K$$/#!)&)2|=yI'nTO C5:Pwe9nIwz0;;~'˲" AނUJO+9ȗ?&naA]'$օD>L! !ҦأuYU0ߊ,>*HiXbr۷Ç_ѕ:HI/CW6W⢥x C J'|͂T1=e)p˙T+ zR?Q~t)\>ab6 1&!Mt:kA PÀ%B:Ű"F9H&}w{QҺ#J>iCOi߿aۈyѪQd%qKZ5~LJD }%e=U7KEsAe Z±#dY%εЯZ+ ~ppm֙*m'_PG >wRFz&]6?Jo‹'Faޘ`KV' z:كMױ5_$۳IY[60 KdD$ ɚKN=aiҬ6 |Ț94B0 6`a=:dsLOfK͑B^=4lWr`ZC~m@VVꈟqILڠL[8)PdugoJv+pRqJq5ǦG#&cnտdagmHO ,OJg Vsi*T'raaI#6ۏÝהD%ҍ!q(G}B:COrz@XO{qG.k[ѱe]Koֵ#ļYĜKBbc=Pf|M?`إG#ЭYֳ%k}iWݙgo.:)%'⚿:>4c}ݗiYm=/F;pXsG,nKS 2c_g099% YK,1ɬVS%p) }bs̜Z6[~yr+AW\;8O/ŗBE^/%=1sR7SQыq.]Q X{:1O;$y WUvW7}S^>#:z鼜zuySRzʣRyIig1׻R<: -O񻥣"ŻZuOrr<?~Ӛ:`_~<@;Iu nο_KF?t8@|$eWK@G~wݎtcj2-2)4o $>X 0%g9$)/-$yѢ?t^+Nji)]?Ly>mrR_4&O>hw?%+vhUXǒ+gseʵsw`s#inkH162xVٓ'z{2:YeɖKc^GUpuf4BٹYYjLqH!@/X>&-&Y9:k :GpA(M% |9M4tk:eYX֯CNȱ2l,Q2 u5yWr[1y!Ce:9u xx#;;q`d@4ݒȑ!_|q[z'4k~ /Xj dwcb1/"@w~aVW3TW@fı̸tRd ) = k}c^/xɢQ؛gU10'`)rٟ5yE&Mj;֯"4%>^:tMb}i&{'6`9eKQV,DbĴK.h/&`>*]ߣ)kG/번L^Z ׮k,,jo۬?™cKNx^hoN۳\Ƈ 1UHؔx/k4i[4<6P'/y||;e'd@dio>Xw/ՕiuzX:е)yCST ;Cb'?|;fW7C~5M2*y_ x۩4_gv괛q&k!s-?tCZEqRW:8,f"n_ Ͷ $ZIO-F\*nj9g0I 9`2j<[$>$KQ/)+unY#%y2s6> tR E~ t!jOYԩS24`gU+8|O;]|^&/|+{z%VJW@vpqXTv2g+<"]~)C}МK=( P8(h+#*r6 R*,iVzy\ Dž JWY2¤ ,L*#2b ;g}>bZ&ҩ/ԝϮ$!d9$ )>`b{eM  =shxSaXGS%@WkáFx %klsaCᕗo>X<u `2&YTf\@#!\I>"ZD;!'.SՏgb|tQׅN)M .yY4k7:xsBggNY4ہ"@;J>]-J6u51'@&nQޞ\+Vǎ|?GM:``XJ=z1m/8zذ=VCo,trJ'ХqY"6iQF.~1'yV8<}1=+RazeC }f 6av0ը{u9 uRsGhӦG`&hm~@5/ UK= x_ֵXnUI8aZaЄDӪmaQrpo압4z;էt (4ՓL6eer,Q$6@h(khk2'e uA֦Z{I& ~.-<ݐMkS 0\ @_sעBs3mU ,dMS֤qocٮ[@oC=507waoArQ?,HeYd~4N㜴yi+ǀ}fqec'62t>)=:eȞ4 sn_OYsĚ+Z jc>º{8*&̲3#L"a+"{1 OXt, K jE]h ^±~>3aQ54IZMӶ( XͽqvX^J_e)rܒ,5J4V~yKW[߶}yqރf&(W1W&ߙ4k@e`sC64 ͗@/2~k/eN]ސȘ8[ռk]]6ҏc3vmU}Iz uHn ϋ / J%'B1Út\IYRa *ozgޥb^|-ʰ,tleW~ 5Lr*UL)JtY~^4{I͆3j`23&Z.w P  V #/D`EN,Lʲ^r(Ǝ!ߔNjj&#}K5L$Xbi-8# G/%^pG4"ß={CȎ;pd>`pYCv}45>Ԭ^ ҞD/^%Gמ0&IT ň[3aJ}G`3~ct%RoO*'թe]_GQK8ED3JTqm|ɲDY>)|KI|eo9:ԭLVl wnnM^W]uE J}!Enc+t}ۿ},)c:^)>ӺEn8z9}ዃ2ڼ{Լ/SϢ8K'O䩦j4U$:9mQv)o<>ߓ/-T}b%GL,܉"^i7OoJ29%x[y9^^YK/ypE|$S+x|ܥ|<ȯLLrvpYǥ|7}P~E`I+]+t@Ix9XJj#@2u%qw,7/iViI;qDYJV)~;29ំӱi¼ ^H&)΀?V h* TVS ە5ⶫG7G{v^f8/KS*?n/<•tzG?TzXv# xK<(p>u-mO=HЂKjq_mŕ.F\a="@ }e4Gbc Ŀxt0|_#u%,I?ߜaűxD8ր"p!;!f|8,HÊFr뭗eEq2 (`]th~sYuUX c›8-R/?^ok*9mA:&ub% @X$\Mq86TxBKMd0t"r]@LJX{QYې55Yəaedj #:`# ozWupK g.9 tGottoY{@x_`x1.թtpP55@֧frAa̩"P*ſr T1d f}n G{@IDAT}h8xz\w,%Өk,2R3!~v o~Tx3GktsRXȥEࡩE"+R.`2_R">\E4[H/6S5s)'+^&\YZԀnzPc pԦZVcrq h41>2zJ?e6$J5FdC^Kc0&#2ɏ#'d/M@]CJ9TDFd)3\t#|UUTEΨKXF.mkghXƺLq’en8tH3b 7(hGw𸫹0+mœy:woʂb{}\bQaBL=0!0-s 2s=7{K_Nq@u}f5n~94v:;zGhim}+zR_[v96u9jH)9tUv eRL2x}c&i/˛?m׸*ˠ$@Q['k@rOh;C>y`^:yaBI:*k}kyI@_[ЋTjuuu\ftHu>٭}nup }i>l9ө1ȗw^xiMׄr`OtWeww5<(=G\KC;w x;#r!,Wb0NOlSG?ƌn὚{]k akYO%3@(U|2 WTB>acѐEFso6T@'eKl 㘌)=_~)#x8[L.#>jG+gCe!x)\zگ>ďS. 09-+ڳϗt)Hdoˊ%oVJKx!ߗX9P#rӺn4YsषBm?7S/=?6={6ۥgRiz֐zyԢKOo7wyryP=3cai\Sd4$,)cX S sު̺z7v✹lqm6;YߘVέzW,U ,ԣvzY\*l2;LXzgDѢrա5yOe5gtD@m6='KKcyV ݺ8C҇L,\J3Ģ0:Y;uKyRBE0 2 ?~\)˴Yl 8ҷ`c?+ӳ*?=X!tor(|3M3acr<<+ ];=5^ ~| eGYV :іJ<()mlH=mkMrVDNdCN?y%:?ZTg^]Yb^^> Mji-` uH[BI(vn`2baIĸ kОFe e_V'$L|bt` G.^ YI:x*_c^lVOJـUs2CcFU!hĸ5K |hwEn,ܸq'&5Z_7YԳ&5- (wCkBaUOsbc)2O,ֺMͩ X\rAbN{)ͣWhNm:zrXթ] }t=pX{n]0! $EC)}>V*JIԘ%%TSʺ҅$z-/k1$Jn\oGur!JFlD61N){̎VXu wW;>Z=ϸ=Z}'7 TƛhԄ慀5]A?}/IR,K- J,}0cO{ّ>YP@+kzQ|/^&җ/~} Y#׷Xf 0yQsX wl%V;֞ȱ[5%] /JJzAGbI=1P^`:pwa_V#В}9{%MدF5`&;$e%?/M`=_@wU`Cm%,e({87Jȩ6M72Ɨx3w\Nz<ΪQw[rdYrF*q6NYH<tg\?"b(i%Kq8:zc,|[gÁҋ^|)ZfǗ×Z%>ѱYbQ#ml&?c1(izt}#-[o-}y4MK/Q]Vut)M͗z^/#\+ӟ6Z=.y]ztEwʫ|u{2zOLs5W/vyeu}ގja8Rx7h]^~˻g0Ivr5ȟI@nn@ye\djU?IR+`Iž_ ?ϩiZ)Po $OX㪥EOK恒N]/ܺ]$*9p[a~[Ts&h+YiyH4zy~NyI $~Q%<_=NJOy3?=̗Ӣ\g0ym'יv]^עK8QO8-+OZtT 4i|p=y*x<>Zci}&&:1PNLõ_0sUO^?|9q|L1q(^3,J 1:mx9;" 1:9"jyb,l,J =3.s-#ఔCėOoq eˉԏW59rzx,מE/CH;KtEѢEX:B2] q}9Jo1,\Y @`R?Tgy]L^2eN G/Ÿ_qs:p(ِ( 8f5K#ZAH&3Wn ЃVR܀&9핅FLOB))pR$]>䒮7v 0ҋB@벪`rRW'c x%*IzfՠEt7>/^"Y"a3ã֗կ\ :!$V߀4zt%PZ T$ :Dz>Y˫m1 Y>$xMJ(KgXâ$UpCl吞#.W+@L~O}0'yL+֔e,ם`QKַxΜ0ԋ<|T6ٳ,ړ:aQmgGhw'kpO^7~gCȺC/-|Sz% +]|Ld]YLw_~(0֢bj"]Zg_OeQIS5= xvYgoyYba!-EY"e]5Ix`qa^?iBOOkr|A9`E׺\ \YkVgV:`86r^Z.Wؗ__|WV5N8?' y<,ȹ#̉W#>?osZ>Aǹ}au_54xa'/ž=Rq)r}q}dˁ!R%k2mG#˕'-=ΟQE-}lxШ}|{V>v~}2LZs&͙5ʂ0~`=T+'-?B^}@zh\yjrTKs~3#\̞+/3/ӥ4dHyx^g_o\i W#p}mQ|>[TߔG~OJN/w˫UߴÏoz9m;/= .yITr¹+O;6LۭMVMBc}xi]H-ǡNNyo4q&<ݭߐKV&>CD\ $Y0)sJW~4m+R$iy%eiEZ@IS(?uΣs)`w0e}kQKWS)ˣJ)(_Wa.ϟS>ԕ?B=`PSZ|z^>?γR# ?{wwޮSǟTi[L㞅pm_)TwOsF466fw/xM0gS+寗&ßw>W";yh8ځqιңM|ЗSFZ~Qy"g!._O%N|}˼ڏWɶvSYÕ0a*C(@]KAX8 v]FZt\;EԇtL8=2lVl(,XMa' QBH KN?06cm[j̗NY;u%7@/d7n֡0Rv&`6G+)>VehB X gb3*, h^ԏ>UY5(f:D{dɮ[%²cp@Vu˘4 Cj,=*K?:rZ唁h9oa}/-ZM6=xGtqRnth> @ es:Oo,HƤL4-kRYޘH |8>2J4N ZSu3"zG{2P EBW0Q,j}aQ?  q/6\چ@Y,)Ơ@5.5*PѠ\-p>'XULtkQ|e ͺ| ppаda kq ׺#i\Z68eevT K;}}"+m`up;-lN@dAnn N~ݗ~[X%0n2$ZE޼ƕz3 3Zo뚟iYZW~+.萬nEP's۸@ X\ű)G@ 6ĵԯNi%^ v;3ZEƹE Y)-״.^IYYmQm~1jSQBU7y틳}~{tz[/B|3׵9XZ!Gn·6y!oqR@W¯ԬEEgJXaɰfNN8KXn-4 ˴{@հ6AYՕmmsk6Ty]D'vyk\\C_d0 kE 09`>6V"ӱ#&w>4ÃݠdRsH>->8Ii.\m5W.ԦY_{4륊Us+:lTcݢ^6% #CcŔ:-FӣLKVR: Y mC//zÓӌ*Yԋ8Me&úvgC1`/#[}2CQqXb'o˚,8N,iM)+ Rq@{Q]uX-}d`#5j>\}qJ}:Z~qYW`/2 z!Δ^ڐyw_SUɬ7Y>v֢oktF^RTW3W,jOu^RHqlsd`V?g`Lcr&򒽼č̓xڼXաqק,;7^Q:ao0f\М*C1Gr2ڟ`uFƲd/m ,+ gȏ,nTp#%ޑpkYX+ b>S[{eɴ) 2 7w{[B^yk&UВ]ˍJ^=jFȆ] F!ϟ6w溩&:SMQyxWRɧW_>O5Zy>Nƥ<<>t8ogOOzܳޞQ7oIʘ$˭WwRC(6 ͢MlB@اGWVn޲͌^a8C H1(0+)'#W22+>Xrkabt;66j|M;>\vp(&6q Yi6VP@;LDކeI]ep7(+mPVy;ZClEM-mHxɔPt$DLunWj-X#_%p#*.-5i4a.jG iG #fB'IoC 4Ga >\i;ӁƤbɬuo>hC}C%Y_iIՏ|ꠢ%+06nוXIJWhRF;4F7/k,jfo]}T,E0*JR~6/P3v3*<(a2I:K0?+g,pJ0"@riP b@{##+{ФxiLŪT TcC*OY40Y:8:S:P ^3acFܢwUNf˺AWLfmbl"=ɢKMcȘfa3>K6gYJP=;GӿKh>Y0]K<'`՞ܠkQ GV755(N#)l ޜj%[T;$Ϭ ^1?K6sgOe(Jd"b;V]@V8 F]px+@&#+2ecnUr&˅K__, bRS\g:`Ԩd Y_j_d6r' PWb! f@4^MX/4i`IDp5mn9 EDxKs"`,i 6Ӌ$Ξx V,`(k$yCVy9*.aXsln/ҢSm󶀋x|za pnw^Yc{'=k^i;yYœ3+ټlC#}nk/Fk ˂Y%3k?Bbms_|[wC{HޭҥbtXg^r\6oe:uR$dpZ=E9q-u)\H+y#vR?15S/ۓ*w~^'ȹ<^zl埗4! s0 LZs`IݺuV0YzMAi?:}Q{Z>ϓ0 EIF:K24䣾4i+㜯$Yd]tRوڬL <8(,#|TK²4}~V(ZTKS__[t|I*Lzٕ|ʃn'&}-z^']-?wd-ZiVZ)2oq:}%Z䫇|<2ɴ4L=upfM$0YMW\/mgY=Ѧjɔ_^vM=ɯi9Ne\D i9)}~ O]8/8xTc_Qĩ{CYDʚM<\V:|4쾗~xOOZҫIKHXL{54 N}t@g7Ĺnܯr>Df&1}]dh}&|Iq(% 8[`2N\LhPMu vQLD R?NeE;3"GDG%[spp8yX I@*́J:vP,&(ED9qHʁ.蠍YpӬșE@,tQY+?|;(“`}1X]#9&@Ф:h\<80|Q`ɮE qȊ%/5b o2 :4|IIgkLޚ(&J. F&d|8렛+kf퐷[ݚXA[⠘ egV8uvkس]޺x5&'ڨ6;0ZDk ]L0KI҇U%:d.0It~-P92n!<dTtXѿ _\A\2P_Pa6<3Q>Ѣڈ':,/J(x+4CIQ{ Gld;{$~@aZ²7^~u@l: l7 n2wUjGCxΤ|' UV9A!ģQdQ_;֝~%: Bԏ,MkGP5x&dEU\_YKw#pHo_/`=mm_ ɜ9>97߾#ڗtA'6cƀ,jl0ekY@)]W>5S, ~cML#m3b㍨ RQqF#GK4/ "1ߌ9<,b谼Ǽi zwY.(GV:F|=6ejZUoP[4ȢoCR+]>Ϗ|;Ϭ?- >v~ +AR^h+9#j0#xYjc!hfL9tcHh0Ύ WN @5{F0W: YrU_\ՑUl0ey_Fv,YKji4E^xchMڡm gb.d=gk+7’%IMd:7OaYһtIt]ze^|:Zzdc_B?5+vqL4*=V@~Y='k^#ǰHm8UvbZ|<³2XzE@5l_uyMIx.fi @y3d7io ]OoȢrk[kQ_?կxaDqO4i-Tk}h˶}"O/d pz}ԓ8ihrQRD zPBV6x׮\ 0+`5nm0K]BR?E^ yI#Z=k+C34&}] >vobh,6< jn7 I)%kObrkoIYu74wwԇ}WVk/wfBҔs,w؎j퍰VbWQfS[/-ke`@Q.#gFYBW/xƜdDs=TvhөhUu ԡ6{ze?{oqݮ' (˒'),)$ Gv8y^޾^^xWX IhQ"Q)QI  kMՍFbvpɓ?OȚ$AT /ߝF1=>Jc0?|Ÿ䰄FEO26:|G(^X!G(|Y2BF3|77S~9o]gldH`gGM{Բ(~O)sY[VӷJt#_W/ҭ{7Y~㪮JjuZN9]5.VAUiwY9qU}6q|{ߡܫSY=_߿o4K& tw ;AƳ{ݰ3Յ^m7p4MlG^`6{!MggiR\NcAA?h4t-Hz2[+J=7 HSȅ[ֹrq&IBn&FeY r rL7E0MVZ5>{@[XN{n6^Ge˿i$w PwCټJ,. (;Fz-( ‹I-/@#h#℀ 6O7rPɓn,&7Bfٗp7a|AחOQjar0x[s3V8uCëa)0 |^G.P6XYh1z&}Զ F!b/4ցy Ze cgfa=sʤ.âA$U:i>n0?FxQ߽Rss}-(ãj9l_Ƶ.ٍYIe6('C,89KPSsidՙ=Xr  ~zIvzm +?T)!ʄzNx`5-z2a`Av/ GpPÚbaaj8 _t62hrl%9 q~Jصt* @=QҢ+όcu $A\oDx3ᇬ[CJs 9$&IjX* Rj%uP=;XI@Un3OSZ\YP^ѥ JS?nX,2~Op-ui [b X cUycԑpd9W`zEn,2/MʟO<5N7ҥ\iqMZơ@9cc|/cVG6V1xMZS"ߣr&mqU!t/D_ `|kI |Ťa (bsRPWJ H\erӫI0aF-/|$20ٱ.ߕo),P7$-Q;WBgԧ\'.`6q^{ \Yo @GHqM`g?༠KqudCuaHj4`webK%Kj1yuq\=:0caϵe wְ衆hltu/@FyJn775s$i䆷`XΩ@2ÛVP@IDAT9?֘mށO- Ǘ^M!Zv잞9AVNF>ZE)]zS\'픷הip 4P-́ 34Z=9mz$WtHyLy%-mh,_=Dz' tfn5(5֠Xa~ZZ9ײ֤^_GQw?|"r"c XE.nո5)r-@^u<|? @kMsa|`=T0s ]xC_ƚp ՛7Y۬]wƃNXPknveNzU7]>M*ųcm#ag1w%/5G|KaQz7Cd*k)e\~5*Q$;Y3Y\<Ү^'K%ש\j'mӍʴ[=wCݲ:KJjU׬rViՕ_-IWel^s|C<$kOgKe=jY7e:uaRW=N@`rX,i0/[̼rO` ?[욁6A9mٗ>MFtN,Yx+޾PLP2gi{o_N''#ns012sZl[hor^ZrG&x9 pcy©2/i~Bּb5)vĸd}t}t M |*|^cKDEEAq']z2;XV`F 3Xt#[ZIDxE$cDS@3CÒ߽y+v  h`j^1 ?^<I6胀9+!>V4QˊE'cms .q~ GwO Pvk·0 5 <ʢy(XiEjfz:,iꏯ\+n`k쵸vL[ bN[g @L}&`++5-'H|K:tfÅw''0OtF|OЛ9WtRW>7S.!Q!6ͣ q0sr.j br?WVGG, }N4!pz~ow^dV?x;͸嘨4ŃCn9j 1Ed,EOEȑ唚#J7u#<ES"v"ĜV6iICZt\6<;GX1\E`j`("OO  QvI\?+=7Wci)Sn?XT˚2}8 MoL:&8_2P}\} :@j.atHWs3F1V Tn3^h=Jq8 y!+0'/gO; 6?|эb*Vyu ,W &]p4P|xb}\g(OC\◷;r1 h}rf={`,0.@5SG#iPT3ڛwR뤿)a軑(^gv~C)bބ7=m/PJ'LEmIXIך$lyǹ+8G#F&s1p2<ޡby&6+Pc~}TE&B9ɜ?A)c=uU\Y^[+W#~𐐷qpg|WY-\bݱpRI+:vPqaT%QϖU|0 :9. nWNKc1m5Ǽ\oN=Odt==sf<,V&%uz\Jԗa7SHsueP-Qvm7eu[>ֱtǩkCޥ,(~Y9Q(y2VΏBL[Oi|(QuZf3~Uڽ7] RW,U]YDFwL>uer.}ʾSdMn]Ueᓲ0Y-t[*`2 +:Y Hi8)ߺ:IVrܸ2,f /oaql,]f Ϯxg+d]\^o:J{^]_u l, *r\+`2`r*ˬs+Zfy o]|+lj+kUj[N:{21o7!/sb&-h` +G j̥UzeX9 aEW^yk tHVe|0Xs5c0Y:榭s-6&oE%g拟ybv,֊÷aqM8OpyҞCR 8)6$|o m7z |y 8p{_HAS1??|o|'TT4Y?GDce*?Ya1 Mp=+ h;8Ziс}*] vOUfEѷn2[Z(PJw> ;x^1CO @H@_uFs\;`b^ݮUU}aFЂiZO€"QFׂj'^+c?N3GYD{U6:z5Gf起 s?> #/$ H H֒'cz(ou1꺱h3u^هu & ^nhS `uv}=O`Yz55s0&+X,nXBOnZ^*|:ӈR y?x V2f,⥭x0),'14-c͸K%3מ3hӇ HQ)w8>D댧aB $n!/ׄ춡Z|%[X ^ɚur1 BzXUSr1t0Q%6HP&Ɏ\ʾ yrT0y&ky0?`+X,'9zFa~'(:)_U ?QV@g|,mq؃ɏfM(rb&DDS-'s3a-\ղ-ym(Zӊosez=kQ-a P=H`b-R^xzrXp=L"ꢀt8.mA& `rV09U]WFñyNk!"|zj$$otzFаWYh҃8O3ZNI (0onܵm=S3sai]i{Zr&.9{.&Hy/z{3c/L:7.맀,G;'yA/gxp+O37X_v7W|c.r,A ~:7 J zweG]W9w9+~ӥ64c~¡+O g>8&UP9n9x\*Xe, Lv wXt?1,8D.mmbU?Z| +זoE?\#T\g~[Xe=)Ǻ2s4 w?u&&mY;c4tJ=݌F?y n,V3_e?}Nh'vrz?+бnyX`J{ԕYjX$^]eu" op)`|T~m9]vU3. 0)f4s2F8p5ʢZY,YUQqqUalM0PWj9.' IijBdvմ9\8qixjiյ¥կ~[f4?ϲauh&jW۽Wǯvz;>5O;zݼ]wViZzm%'еֱ P,v9UM]3Lk\W)E=c|trߧ['=yt }?>^2rZ&!lQ&BLo}iVs}9ׅ5ߎ֣Ɨy)??*N7+3^xTJMkynV+;̫r.>/S6j#XDzJ\=@ddC[0lPAL# @75b1`v?C?s̢yX:؊0N[A4WKH̫^6BhM.ЊƭLj[o9EM_~o7s򕵡r HrS9Y{ *M)*- pxyL\NymD,%ϔ<+6OqCn~Yflo.Ʉ.@r&<x2%h+:fl`IETVB\s? X9[\'ūV(,+\X, , @ĀG )Wd*FzҦ.#xRZNeEڃ}>?]qz3$6wz#N3>(B.S*ҿ0;X|y6 ai*6֢ *u6xAVTZXԶYLN p[F{@8]IX 8qJNs(]j@G+$IjB7= eu^^Y/g }ג᡾CayLOMFĩe!/o \죏h*aX 1#5Ƹ'Wq~ ~hآA@?^#%LW(Di_6UKβ?6%i K_?|}d?ZY=37SaJ@-t:X3]bҺֳЉ-C\N:>Ui$1cR rb.xspyW])IF`FXD6ke_LJb+J-ΞC9U^ljf8v;88+'_tЮ+!GM2ʿ$ݿ¤iNm"cD',,MQ)dzF IFI'q,qrRR"xhd/ŦLF kAy0,ܢ/;~ܽ;ɣ\V7~,)q,GsԵA$ Q<._Xf: DElSWe֊'O뒎NV s 4dm @zk*Kmw$9NNgFR㩲tdQ@l;XZePrZp;n&_Ƹ yP$G]]8@[& VJOYt S_~f0%\+3sH k3g\9W v?,k -hNVNd=06ެIjOV*N| kpvS߶i(Q c~Xf̽K>nh e<Юem~vM K?I:52òb|ЫӚζX<9}Sw1qL`&@+ǀqJz8Bda}{yu Xem$;y)/eZeŜ'ChUkˋqri)XW *f-c.XłxpmG1*i#A|Hq_Tn `<@nA\I7^sP>gږ6tl߃V\Nr!9IgEg= N{PO+k8={ c z,_/,a5{>zqHM\_bf'֙ԗP:̍Y3eXac9X5矙[D&Ki}4?zPuy5..C蚺K_?qaYd{ݧ] c2ƨwXk ɇ7x'{Ie$B~9 '̏},2g1'W+O3~+hiv|T n5g:vZnJ[W$-\Wc9L\~.-cAz2ua9O%r<秗Qyκi >itO:bvf5]/˵ kh,oiG׃_v-OuȰ.'&f`Ǻ+%eWL޼yN/ 0]p/`IÞ$`Roo~׿aed4iZڥyڌNN@ZOڤ Gj$Q< Lfu1J*nh֊vu4ZiWGi<;|7}EӺ__DJȉhƃtS-w˭sq\+dУuuϾzg2?LY9MӍ_.;+ӳ??g?өu5,Nϴq2G_koQց\N~4{/oVV4yפֿdygVqʦkdWZ7{2ҵ]^:b;1ȈcS7 `?,5.I&򛤗 ˟ Is$:9_b0UXq!J@w3RV7Wπ\M3l(>(gV2Gٍvnl]6L:T Ai HvnIq >'+ېagF.=pq6$$(Ꞁ7XzLnZz*^3|&kź/hk-qiMJssX (VW8)j*)g$EV.__*tCo~+3X)>0 /T̟-ʧ#OZ p`{< N؂J-%PN q*O @IZ  (тV)=3ozwP1>6%kU` -2gm/ OU(~d_xk:pʕ~` ~1't  |ĸ॥m+Cjvw-nlg"zp +fɚ$c&kWrrg^ߩW n./h%tj7xZRsKIIi8٦b1|#X5mųc=A 4+c3merZcX:Azbl N1ΧZwVdO^vsy3g3¯ktVږNKAZgn5O &ի A树؜Zv_r $,`u ǼǺmrb͂ϽT}bz``ZX>` |ȋףJt5f\p^ ۛ,/s13 L-L 'QvwmlwJ g/8.; &|CXdЧU^~tB(`W w̥pлss%iu '֣AFM_#+]XrAfν (VGiz-tk@Nۥ،#Of=1o}VRaq:._^|t*mdA\Zaar*SXӜz&K1/a}e{˪ʕtN:/TZI$g{ywD0e9`0\sg@) 'P-+~|6;Vr g,0[ r"+A xk'K>kۼF &=,qߏH= k׿~oіafK/7L4ѬVq.52:[Yzﴎy\ts9^sx se]irXL7=qV4WۊN]\7|aULS?QW~NKgueix}TY'R\M9XNJfsT ą_*Ʀf~:mF՛#bUIPk\Pdu^Pd(yf ;鼒S `@ܘ'mlgpSvY|[@nZ(:8^9,I*<FjxUE b|!}3? : F=ȕ,:cOY1qWHyך`7,^۸ Pa@dş{8wv&(^*>\U`'WNaU,`Yq ƍ+W*4s=?ynSu`U+60B6`mJ{W&bmRdKUdAŰ!K}%\M<8`RJʐo?  }6  C9 fms ﵷԯ}7ֹZuGR$?VhZLL{ T!~[Jg 1B&7{yFGWSGEp5>̵tirhw Hu PW'xXu,l= U0fdz,>cSSH| cdc:(kt$;,|ٳ,Ӏr{G';WpX[Nešd|6:\Ӕ}pk f".> H˯Z16:Թ#E+.v:(C7op74aJ}oS \^h966nXdbWLG\G"̕jӸ9Qݏ}bL! t`iOGfSΥF)󦵯[h'~~  >ƴUrXX/L/A9Ϗ #ji ju1<kC )KV: bN~`=Xt!C-Z$@h`tj:'{Ґu-`z̍L*FVꖱO\Z,*vYgX\|gWnXޛҞoG/\xxŗ=s ѾEA"zB:V|s%c(N v<y[gvzkX!X;wk0<;&0%cA~řvZ"莇vZ1t샢;8k}ƛ }ggF_W>B;h1AiIâ䙹X~Z&cuA_C1D_b鼿̼g|1HP*ON1Oj5UP),>6堇Wܻ`mqe̷uY\#y(u8@_= O?Lar4tC9m-,0%)<5 )泳qUNyhVxMxO7$wS'PݶO׉< Vi᭎ΓLçaeV'&3-ӓN9gʬ0wf ٯSLVtѲ3 )lAJ#( ,)h72@Lk_ڡHY rX[ř Yf橺vi[ŷ:u赲6,OO8u[]NMW T\vڤn*M*]۪~;Yy>([Cl4.ڠYY݄j_lkeRefYvUޫI0?<9nYkك%^|K.^}426 ?Nʼ /7 oESK5'ԟN:Y|XOAAZF `2*h:҄<(Y>pdȢ J:-Ӻ) '-m UA 馩VbLkU%"Aan6j(o˿ttT1q&0^^OI\\,$+Kr5fZ2NKTZt3׌Gx8`C t\(nSC&n6 z?u'[ͬDQhngKQ%''ZΒxI-  >* `m&zE"m]N/޼r7Q|B!e~P7m$O^c }9!Vrs%G\a9Q0 vRoELA:n& ! n6,cMl zk\}X83SگR<_)^]*0;PWK(u*!uԾt밮p")a:Bq]nlbIr ҽdmYdua3$)a|:D 2Cm_-Oo 9 vQ @wCR_AiμW@@/ߵVtp$kcvJ42` tWR~,?"ed!}9p y92] c`'KWX'qN,2 ACC,~@5Pusz479>M@)-җoX{cZHN" ݆NQhYRB!cԄV˸taZwf ?B{J˖M,`B,XQ r!`8m e)Yg0<!kԁȨGm5O:eIτ%osl4y2 }AǏ g&;< o]\G`DX2v#x֋αCIcASvde+7CJ˭o1W w va>qw9Az2G i $\7{eU be95L̈́KX;[{ť˗]Ojn=69cX!<6䕬hX.z Լ D7Rmr@Nh^`=s:|f7Kڊ9NK}@ԃ47I%_gVE6uFcQChƠ}!>q?@ƺ5,x3>ozcUjd;\<Ҩ@IDAT?m^kҀhGir5F5~z#NH lVƮV[c=%^okW Ivl8a3Og>Nf~B8{ͻaA9!?ד)K9+S.XTS堑OwsXq9ǟH}B?C Y8ob-8W`|vm{CWo,,2߳T.G8(u) 4=$`rk(ѻ {{8 ͧmU#[؇okGӳX.Lc0//A3 ~WKNj <%y`ܬz~&Jq-sT0|I@Q!Ckm#KaVsvX]^Ͱk?H硉K㜠?כ,8OgI[*ۢYljk'3m]rMWN_Y槓r;I4r}Zi*S W]Z:ۺݜ6/G+te]>g>m+-{f?.6If9O[ݻӒq:P׉l>j=|z{4rxo4]+`cfrMi|麱0Y)  Ɵ\f][}Zϟ`ҺҧnAY<3Rzis9Up0߫Xh4_vecY9 L`Zrs,J[9n\__ݸ/% UdZZWf3zs.mVqnͺ>*}_X_}.KUiֽ7*v#N>id};UVqʭ]|qv+UVqu0WNd%LfqWRO~IWku4u4]E.]pO"pN2΍^^~@.'+7e?SYv|`ext mpk꼺/d|#EeV&YiZѬV2OneodxKYzZ[-[ww͛lf`9@L?_,'kjXz\8wxaAj`Wf#=ZdÚ6%qk2>7ls(ER&['{S`qs׊|P|ΏvFWn&t3#h_Y+ޕ躖XP~g-yr a@.@e$M^/xИ\WT*`,Nцy3!o_{,_x.E'- $B.PPWl7e;yZ7j5YB@' R:%/ XYT"h:4td7բ0x"z+bZrc>z<A^E}^Ezڵ&31;ڕ׋N3{dyբD1~zVv_[\E"6^;?_(BXKbŲ ,E^~X.Y垥ό KH}⃥V4oSu!Z|fq\Y{C^ HR c zU~.aq+g4"~ŇCZ/HQl~q rݓ-< 0e. kC"u 8qMw<@Ifԁ~0LQ`Ѓ,5>xb11꿒y^Ժ, +(=\qj񙳓Y83d;8~_ySMQnǨN2 3@c>ck1@QcA}m3^g ~mcX6pl\|=[k, ÷ sOC? =n <@̳)ktEtxUÊ;Ʀ\C'yT/lmhuHDdK0Ti0#t~`J yV]Ơ-k7.S۬ x/T\UN*[o`R8_JpHbcX5 1cGcǾ ʞ?Q[-k˫2H3k95Z;U*WOpuKL2{ռs(G\5-Zr0"}}Qta$KQW/c9t }=Q0T}|{b V@<y1Mk<Ü2\85pݻzR$1K/rcX0k^{98=L 7=0вk9>?spee/ "7b}sA$d*Cs9!{s8яK-V~,0<:r|5LKYrn|ueú)\2rY>Oү㥮NU>|贊V9+W9]9Ms7i[_Ns5m5\n?N,Ͳ7K5iqt(ʪlny_ gs|&3ptU 8ëa/fyi|$`2A(Vm3iLku2X vhrF~uaUecۻdC$QINnn{\@Ii= Xur3\*.x8MYg+Yg0ܿ{"w,VA39DҟL9MA%73/v@ɜStN` 1ŵws{NxmUe|~ղZŷyZLd'ʀfi;lYKKYޜ|=NOBة52u,Ǚ't}F.C:؛`r\fWץ4U޺rYZ.>L4oWe]'c&۬,z;i&xR1=Ǝܫx_`muT8??V¤|d$.'dA칡j|)+Cy$|&A+#`Gngp|x~三K?yxnVh@\x/|1x~beXqEL^x0eq6ݹ ΃Wz4vf7&]He Q [roIJ%,+ի *KÒ$ݒ$OeG%l"r`nZzts;G\1V9ؤ~ZR&l z[[\ ;!6^,XMśouηqi~N䢳Kwo(.+V[>`?~vhrz'` _C>DDѡx Ug4`Ҕ0cO|9ޜG[m#g>rZM0嘳io'_,eVKۀGsT _DωJzi! (&9X9{C4&4\c ":}t,o)cYv.Agccq1DB s]"`ұ4.OIf>Oyt}WSszGEbo$6A@!A?hQ:&e6M}_t.i;^R_ c|' t'g ~9hY*K\e17c"Xq˯p7͵etkTq3\=:9/BNԮ47#O *hɼaoXO|ZOXB\Զ\Fv;>,K6K${hZJbqiL*^+u z.P{yn3jU*&lc ?\J Fa}䘇gAMƢkdMZjt$VW+jt2 3W\Y|5O t3Cm*h" H ( X hMڏ8Bj.mI-K3! r)zF/ɻ,._zev@gށt|Z+^:nHJV.C ϟ;HEha"RfZTo ~K3ͦ<[g חۛqVޡi3oŤn5[=@u yoiOp)ۧ5bpb iAaUƛc?ÁYQNkC'O=;I/ {^(/YȷtFh>/>~gIKо(ut']x?*}V}I^vL>̃q:3[^> Xuk4}yyYŵyl7gtoO4dUdZWts49S[|?n>󖟫eu`Au@fqץ4-)0m*&7dct_#::/:y[vvնO0rݸ\2h,OPFׁ&sTE:m~d:Jv;Jfm_:#??"~?u+_9|V%x4t9oL~*t贊+w+׭ٳI;mZt6.;V5O[zyKWW_}L;}\uao^-t|ft[fWy߻Lv:gWݷOQNS~n&6픟f4ۅ Li\:ky o;o/,,U|txҩ7 kWf|uʮK*,鷢.>~n[ndd._շf: oGҥK YzH;ҸGCOmQns..,ǕjLڍ;LZ ><|6k|W1|Ƥf/wsEƳL %P"_ݎqp29McqU-(65|l 77Zc]Z7s%4[ltͳ7lxɼyyδeIYe#+m@>MPAX8Ý_)+(5H|g%Nu${K2Zo+^P#L7Ou+>ƴlg:"BwX+MkHPyeC*0B,Kː^+֥sӰQvr42KXeYl\ ZRn0꧎/n1'`Wt{Ӹ {|q/F{mq Mbd9׮-bvX/>9Bqًdqpz3ϽXq-X"o,RҳܹKXu,mƸ pq/pnڠCo\(L ׫|'J 9)$LjG 8uۼp"mg_zv%(g^9)%mAۀ6 nruW%ՁstF I/\(ɿr1?;ɠ>B=W$kmJ@lgo.r}Q/BPԯ JY5 ʰf5 `=Zɒzu]N= q#`)@C~ZL1"rj`yI62'8,})ӫ[.vlՋk5ke;ŐWN5ǹ>ΉvZ0]E5i>Qh,a4 h#>Y +gH]vXH;!s Qʺ~ZpMm{}JiKM`&:. dc(3ɔWfڜ2q 2j4!|ߩ+%-׍RIG pԳkU}C#""I'BaL뒧ӀP a҄sM&}XcIWRYܹND&_XL?<#}+W)7.ÿ~+ȍqZVб;p'VO#6$G8}8ty4Қ'SΨ..5e%MGѾp2-$ N1BG;ώm rÂ3_`k\~dC"xd{.I"ũkT#iX}e~`.qztqnӸ(r޺}yv>4֫A7 2N#cAiw8 ix`2:ȀI㜯I ޷\PzfAzX5UZv-.poϾl1;3I[~ؾ?'s0`*̔AХ,u\k^>΁T+}̗@|׸ؼ"<[ K:\g+; ׵R*s.sȩu8w$|8/ӞqHHȁq@Ӏ<naι\1%Zܧ}.SB,o1 T g.9Z^[\/kJvVӶ]0-n˺5 P~plȭF&KR{}[{82~f95@b_|koEniYPeHK9)<ʷ0=191QLh6&Oq33br#49׊3:Mgfi˼4KS.3*שL#ʹ|/9Mr2rjxjqe9sx7䵜j~ˮ*r9YxƯMV)\~N/˼o:>J.M5}+n^*_^3]G tiaYx~0ǕÀe5Uցr\c[io"sN0)(w(ÚUct«&[[n>d ͬJv3doDuWpiG]|N+[&3`,iVe3oe݀%MiYҵo'ٕ9:웮Sf;J_o6 |l%@I_6iNhLեWijn~n<5 Ӓ&Dgh&2esd9 ?Uzw—{>t'}E:5}N[MoXIr ǻo-|9m#CO5^~: kfi).mrs'y[ŷ$iLfykގؗ*yϱg 8%qs3wr_MW4]&{ΟW-HHkV1jCƠ"ďDU'snƛ66 ; ܴJ~5 '7 >!)'BsKel:51AAZ,@L2Q {,{qR:iƦtpGz SIFn07J"?guݔ)y<4 j zm"]6"ڬV$!Ǔ^\9XN흸m]I&TSr \`9Y }#F0Y?:y>j=Bb)$y/tpVl ITWHaV#|-޸^|5@3ϼb˟+Μj™X0-_OX3fDLN<pr, r>~B_h!j˒6|e^x @l{ux{+Ma)mȺfVSVB^J2 f >'}xV1W^sE `B2:Xd\B7Iõ,@M&&æ—{w٘i7^8WگRY:ƼWRc_ pQu3NQ7.@exRPky%W T76NP70^5+n!?^:&>:@_+cֺ8b\g;xumO_= @6Dz-xR{+w0cIɫE7cF'pfc{'{>ەRn6}Յ`&b"hWY#@DEW?(zs$UUMiV7|ˍ`]#gQ޵Ǖ3gEqGxZTa zՏL]mkLM t6i׃30ԧjO- K0-L;01L,2on ^O:~9 `,iا\:ރIڞцnDr@0Y6%dōM&@D?`ߣ8~t~R-[:V6~;oV}2F~X}/V}`?wtG[^Ծ/+1Mgg&f_h6]ţrX(ƺ/=Xo$ \ށ-B6OӭcL2BI=0y ̠-CSb0#8: u GH ]e_&p94.@qnҦ"tHyp#!ECF#N·a[_l=9!*^pPwyܨp#?AXB :#3Ś8DumH\ rS,Lƺp5h>` Xo- 1e&2kqɱ9^(CbzW7n/V8cĥ+bpګXxM֕/\T>*Fa+U%EmZ8J@?+' /xl\[ۨnݸYc Z61i;dN$Hn.3X2DZڍx_?4u`d|t ?k/%lމ;I&wݲMP߁(8Xjo_aΟf8Q}t,c%`AiAbEQ6ml~GKvOz\+qxzAb~[2zw{ٟc7Oa}>-?qckӀ n5O_g 1>Kn%iz;-r݅(eл {+blHZlEU6m2I߾Z_^5,po6*۶z`mh'r)l(Ur?8=34I+}hg&|hz~DZ:$1 tf|"0AV /oX3Ҏle2v,l?a5`'7XsѮVFXg usgW]tb6X}zw52@tgY{x/Q ӐzX=Pb?/Lz/K~װ0(`o>VVKO`\ξjub`('Z}|VH?#6YK 2myvMt.]XM ۨ\Uf~noW\e:Ug=&kO6+³_7 k7ǯ_[0inM͵>l~2) vMvB-GyNP04̓c=;yv?Ц6 f[+0;Jǐ @hx#qͱ9O?TtHh}z~hz ꁝ!= [=+v ^G lgf/]5S}) qeQ5+Gf3cGy6ۧla8U62@-+/뗌Oeޢ!aBrşTe8uH]%FQG{j=FeMz;?BGJslʸ|1Pb~: { ҾͱU$KrJ[iXϽV}oW#^"oƙGwh_]o[#DJ 4}bВol73UED ?Ucc]Ccc wH,ҎWQ9iN1R4WǐjpUuLҞC98rL#`ra# 8{ ,I<>-eXP>U c.& P@gO&"IӰ$Z۴UZk*g,F; )9cS/T J${ :p)v]vێӕ/֌|]' 3WF c1L̆)U8fYhtqS;=iKFNv}R/Zn6McϏ{zjq"c* XApSa~j4!է|`r%'g`={ŊS]lѸT[uAP&KS#ᔇCm m_0AJ<2t|c~q| `/{bE~¬algu>+ݘ/wnZC qm'_ҕgr$1 mXd. {-n̉o~ tԹ[)%%so}6FuӶ-Z;̠e=ǡA4a3-^آ/1$`5$/`֩t1ºq9lXS7=V<%֎@3jc欝k#Gs@,/GBfx(GS_ΏD?uhV&4z (izq9\td2^`}Z`IRΛx{~n.qz/Fb}Z1:E^ F<e09Mr"cp`$ &*oJ&ʻHb7uD9pnKsK5|͒Jp3=jOR@49 َ (`!&3ލ\Mp"eXyV`HeqTyZv7eAL!6o$+N)ѣ&c{Z ^2i^ǰ'Y\:5 < 1PlW7p,3l4 =6~c W'yi .,d Q,Q??[?-öxB4]ڄ'rlpQkw$gii4\M#L[&䧞'8NOnxyq`~{G4hQWq#l RބG~`4Y,ծwEX56ilj-X9:{kP ;S&̹jl .p|䍏>>w6oú h6鬭OX]V@ԈOxoGȱý0P Cb\4y6;$k[@0qovzlf"٫s{Y.aDb*nmkS0F1jWrMDYYI۾ ESpr2 [`c]Gn X\f}/@ ېu,0q ;p8@IDATW5:%K6ey,@~Ozld3VOoyLvFjk}DZ50PJv> zw-?1^f}}#!kE xmdE喉QA}OS`NSl0ͲI04[h9kW.Wrlcy@ƛS|IDe}"Ǽ^z8M>ۛ0Qg+ǁ](ᱮ1ۧ'[t6VC^c9# 6\hCe!mcKGabWQm&2IĦrK"`IY mɠ%+o~^fy)qYک. m0m8mԶEЍlbx16gpFϏD7A~Y|vH;V` cZ W`Zs3..f`e~GЉ>pidD?cj#S{G 1HV'Rps|0L1L2:ѠIғ8շW&D[^ (^ȳ~td̽1n*s)t\/`\ͳ-3K/D;R*6⚗ibm/Za.R#Mj )_*,OjgݱX-=`祎{+̩+0.u>:g^tǽ9D7}8qlq˿|y~}/,i.W=6.NfrZU+Ye4ˣ,Ja;+中eNYFxg:fשWs2;]yws^eekUQ{Qh%(*M+fyw8lgFÚ]sfa_ֳ&9o}i!g2ۉh{לY_Vܹs'6&LM;^^4`Mm_ddI74O`R}I֕:INVF.2LR`Ìxvv%%sx'›v%1 zr_U}URSg V}l~ך~u{)W~ύ&,]h\)ñ:o,o|z,߷dM9H}]P`,ہ.南I ^u iz14[ZĔzzl^=Yݻw7nDe:}e2N}.kPw>m˜<\'Pvf׺~xрɺ u#GO,wΨEmXSΉߜ?>e4jV|e絙32Mtev2aIz>䶊wX,UNv8";]92Iҝw /ejS8yxZe9eX;~\?X9098vclMV}plXQ[=mEڟ|nBHĪğ7(=uW5BI7k/q5dt5MLTAl6k∛yK8+2*M`3CGƄȆ w `1ho <n$)&7,f$Uy+&jƳ&sLƖ<`#%QQpO,[rCPXUNY:֥¹6Ȏqtjop$Fa\m =uD *Gņ)6`/c0o-f dqϲgdkҽdN`>$F9AiKz'򉖔d6T  la-y#zxnYm`rXp .`K[a.X?؃^gaqC^?~ff26{M}@C@~'`΁atts=]l|@ݛV!m4z?m 8y#rqUbcwщ%քyx/vzs0`A1y`ױQ{nx[6ߟ8OawÀMKjuS҈[id!o\Vɵ8q 1X5+F1ή>{4HH2A&KT['sM)LK9> 5 ēNc$ gm2'j ~R v+1yomq<>@߉"Yf^ʫMz`őm5X6xY@)r3@sgLqs~SxukW7Q1ۀ c@J%Xrp6n _Z]|JSuΈyC5Yt8,J#Ldq &#sKfv `б>N%챏!FECW@(_cR7aK/a#B?dZaX~fIl!cȚPu<٪oj8F3>1y}KׂM;=UЊMY&j_&j$b 8qN/1<=:_a>求*CX?H^)<)m$1O8ƒjb _3'MGK L`ʘqSaʕa2L.{,l&ōs|k|i,s"Xgׂ8eX4$Y3PF̱䗒JҞ1lQuI_Yl/n}g>ڣɴSI:}jǥ= ڸb]b99e<綕*&i< g֏bƚ|sNxwA9gl:*JQBч-,WwW]Ν=H 2&gOgO?(bzr%~z#[`G8-VHK=3|fnbX[oFzڅζ}J=B{';Ubޢ/1*Irv c<͗ޱf<Vl^&O?}д s-.]3o۩mm_A{t,],'HfRe|{ YRf}L>}jd!CejZ=Śxuk-X]{Ĝ. {9S0҆yy:1<9##2/KϺz`tme@Io/WKγ^ /s,m3 ݁_{Ͽ]{5gz5آ-T|x}(guL%'(ߓbX+Sin7&z>ߔgQf4[#tl&[j'ׯexٵ3{rKV9nC4J/}aYVᝮdvJ,yJϝzg[gadtadȸ,*үn9Mx;tj=w~h]yV]r&ʜy?*#[J^3үYg9Œ @Iu+}neݸy0|V.[f4<36{.k̯vfu*ua5)2{3oׯ_fU}+Y2{oZ/r'O[`Z}$O]?uz6sey# KUPuʕ`KxSNhu_/ӔZvV[ҷVr,Ϫo|s{.o3G0%y؎=viJ:. hW(1WePkQ@dnzb%c0n)ʼn{8YҼ=<&"5'R].f}t)n70U|iu@r$e?{beb\rx]ni~N n6{iЙq [G6bn$ڀa-I<i!^D3/I)Mio4}d3!\qghV/3R]b`CDžΩk=M̉52|Npezzx= G>WcS0|{1& cLq`niXyQBVC>jX D߯&? u:}΋bWwe̷Z`kN\CuY%5~T#H V lk3CR W&K+l 9d{$1QtKHuX[LS޽T}ȋ$&xceQ=aSQxA g2XXs;ۯvb pN&d@Ey?G{Ԑ}z˜`9n߾ϑs5T29Qvwf߾d}ID`/G흭f&i߫0Kߩn=wq,M30}`+>=;]QǛ|AA[k@Zc묭]{ `aљaI'F,hW$sh(9N)/Vl,V s #et {gwLhzizLG''_6`flg7  >O?yd1maW޹X}+T_ XZ7z߈y_|fqid x;ORt\6+[Y c6?G.UVJms^9mx9N'y:x2M=8Q\Y6Tg]k,0rIcfz*:&g[K8ݎYۨ&N=ͳ&L}<;ga%X77;.֯=KxY̒Z˿/f,9k=zx64 4i8e ̮}v ,߫ zwK>+`菞m=s|㵺vJ)_OsYzaϫGߺܽ{1^19^+_[^ꮎ=n2+o!|trkiﺬ-MELelw4w.qi2Ycbq^ʞ0ur5ev/fisx:&ܺVMw԰Nyp[ƲG~;_[?t̙/>O2a^uǵ\}lT}15w)v_Sq[l@F7&싧)Nfp =",q(m8\#95jl"N1O"&;=Edݒ-HΕHN[k` =5" !Tɀ臍h_0Y\p 7nI#nK*xl K%JVfS}:Bb#6ԝnbgCHO#[_:7GOl &5"f[0F܏nܯlm(l6 J_ATl,[WX]]8Q6*WdtSv\\z=թ733Yu$`=7؄gZ|ۓ˞i/KK|uxv@Qt6hqQvh;ukrMӴ'cnM-@lsj n(NaCE'{8Lj@Uo:7uIuv. Su H26m>6' `y/`-ecǍv7gڙ(Ud@|.mV?xHwm@qHkKDb򸏁D( Ҵ.>2 dU1-eulGiH'ӧ`sq%\,(GBpSԟ.@Hpeo4a\T'hmpthT 0luҢ'[O >eonsԢo /œuZ3euA}j߳/ Ez"{C) EhsGUiQaD  8Ӧx$/z*_F`N\a_o*m1iєCOWfd 'Qxz=d0e=M2!ŘCֱ=ؓ T/v:*@\'F&[hHъd/ure&;s՝[wuOő:6=OK; yIa:D4og,w{ VuOF| PPrmĩG^ {_% ?h?NL ˊKW,}!?"fl[r1DŽ4;+KiE4T}wy8 >DlHҫҼe_>Z@gl09ѧʦqˈL]F<㩅2 Ld!`43Ǘ=@:$׸KL6'#ȰLpSD, Ac{$wΧ2<<2ň荮vtaW_'NO}X0I}%R!_M/Ih%Gr)CuԎ- a<6c[-o (!i^(;Sn^$JڑґQ(k ATw܅}S3+zŮ18Dp̛306ʛ$K`3a0ӮPqLɂfun0_\#y>Į{O0`sm"#/MPhQ0j?hv`Uoa {.G0m\]?q?01ONh'0 ʤc( #GtxD?- 6̎6fg`bH 0T-:7D :T$s*so/,f@7eԛgra%}&8u6-"z,8oߺ FRچW2.sҾ1gC&mK{,:йXDy |;yxcuI0xR6Stļ7W9Vc.17bL`;DZL-i{kH/ kjR0wcNMrܪnܽ_ݜ6)er٣5Y[ܽ/LpTGvL@Qvt- k2]q^4N}8S,:agN>YM0WN3OL1r /Xy|t.rr>8_|yZ>9~syr!'a=F:¾QЎDC%|f 1mCzG_dey,ĺf W<~aX{|izsi]G·֡s mmFn 6׫8 ->soѝIq:)^\g2ZR,gNnG]ft_',k3;0+&]]nҴ~2[uR}p}q(vtSKad56gROniWy/xR Z sUefiafaq|~рI~%edDOS dl>+QF-I:}+}|o'#FMׁYN,~Y;ͺ4LV嘘 Տ^:2ae|_w0`(tqJVt_WyI/@1nZq%gF~/}oejK3E:v \\\Z]'S8d-[f/Z*S2:5~=}0_g~\?DsX;Ѐὥ-)z*܀_r(OHW#$J{Oq|V7?eh A0Ŀ')C>6^I?7pdpc#\t†gc0 C97W]J<=kW`YgTF#p(C^HLEp1!ơ$)s6PF@]d%I֊0h/xD̶0 1mGT͹_?W!n†_ y.@[FVǖ(^8`g>p-JGSӣ@6I%x!I'lIUc>e i[-n0` @@(d}$0)wIa[Hٯ,4y>Nы;; wP2`] )"6yJ*dՊ1#HeNt8? Ѳ 'erxlq,NUGW<-]]R'1SMfr-x O1ӟd>}s̋ys @RE/{`4wELձZ ]0Ҙo@g_8 l\2 ]Սa t y,P;>H G:Aоa nVv7Mv`B:%a`ރMZC6D=8բJzmȳ_zaBN.l߈/˧W;oټ\iKsN7ڇ={YV`9_9 27@(XdNTG|!^`ѳ;i(aZFNG,[zpO`j\at {`blv"S oX~㋧XS9Wۮ\}@k|xu 15tǹQnėz,&vNƇOp<}o55rVEqĵ c \P œRv؟? |jIkM;=-Yn1ÜX2g <55R,9K< ˠr=scr(sʄdE[^X :0s2Xrg_&de qhsf =skOos2G _]MJn6UMvzz_c/N,NC_r#ﱌ̗=L`[!w/y/Zlu|yy?wvefϒ_֥uaѳFOw:힟5v[5SNQa{6Ldw:&˸6 gٿ~|,Nʣ 2m<"3iqhRv:v lֿڥ3,~iD *Ym']2:{7͖2PRY%ud%q@Fd5~{ڥmۅuJ[/˝agQ@Wg?%%G׍>B~Puw,J&ʭۺKERY:/?}']zvaxc?^79n?ϰRfng(V:aҼ+׼r6>]_D-c.KOY7O4lÍ#~Bdkο|nu,n2m;nr|m&]Xusy̿ߋ)U~96c,f(S~%߫`i;2_9{mfyeMxζ,SߛdZ;~ar|lքr lLO?gu2JZ+,l@(hvZrX3nMWLi8rc5[1@ҿSc@zVKJ]|`K65ǿ 5ƒ88m8@v*C')SlrLg|d[gkC u6`SK`9&~nںY*0I^0 z^v[vA:!#MRA6( t Bcq}khAr~F PK^/Au c֣cö'*@0%ӵ*d|qzuїTXbGA_-#293\{;t7e):ӏh +seP\1j1ˣds31'/chujи."s{}A\M57ڵsUH(m1O ;NZv7p7uՆ4&ۭ?]csr/`!a'O1OS/c [ޮBu:jNG|(VvnNWYR@ 9mw,yCYOc=pz`ӛ'3:GBm,@j黉3Uk|nWYK3c'ŋ-`o(ϋ oc:еccc><@R*,C|aF&KM%/ؔs P,ǎe1&_ ty^ !f{} \94R:nK{g'`ܢ?>6=ۀF2?rr ,pfr= ɺfC@Y˞9r㨝?w?~.Ӷ_x)>}$0_5ۓK,׀ d@̕&yM^LYK*k0Exk'LN J]6*nur|-*+|^׺>2n*aOַUf}06?ސe6yϛafV3=Vgx tYm;-娇`n]Jw޴\^Μ]39M8dl<*PRMx߭*,vۅKku)fr%l'+`2ڬ|9]؋L ^ 4a&;]t0K2t%SHۍ.9a>/d;rVWۺ^zxeX9Q*]zXa#9{Z󧿥s\_8dGIc,zd?ABn&(噇2];Yۭ]<^}]z^ .3?ajl7RFNiSI.] '4t^v[FnJ~ݿ)f;Nf+y,a^:ΰnh)%Ӿ>՗co>wq嘤?7SY|ue':6;> Dʱ\'icݹHM^ |ܧ8y0D`.&eD*d!H$\6zыqK|~dž׿|9ydSXd,`IAI(OD>T)7؋;&.6e=BV)AcdZ`]&;PjONi13܄ (e[4 + #} C-&#cH@~?<~3~᱄:W_HIon?߫w`.@<khOjW_\]z[x%L6߷.@^SՅ/byJ6>lv0Hq㏫O~kظk;2}*SL7N2LnWX&`kA`(Nk>R [׫|X=WCOuMqDSClpci Ѝ}%̜d4 Yd"8Xa~RWu豟sUاa# R]J`1g-~ښc?rAq,3,p{{+fqEPY#w7-U4>ug2e"`9PYNH3EYm[=~6O;>|zXq vÑ>طo&}@!>̱ h*2FMѦU8lo<A f L`r[s!&+W/ Ѧr})C`.`%72SQc|Zx5S>ǑoXG`xcms[v##do}(`s q\'lgB<HEz.E~dR[${)-smKle`<w !<8GaZa6#`+N$:;n<8;YGM$iˆmئ(ʼnQbOe:t0M qn`5Bhbu4Ma ,n&qd'Kc 2mZ/[Ӛ_MD@c(Vӌ=ba&B9 F 96s}4o~MVX8w7~Rɾd{0ݹYݯ.,޼p4vpnj?'Y9c縻KwWwNc@fK¿(,erı.MD{Iڵ@2 uL;f8vEo۸s 7u@1"j?+1ߓ/|8um vbYd^dHxdK8~,#<ᰁ }0at3 ;gƺ@"k2޾l)7UヮQV3&M2 b~cʼnglONv XG,m$ ~̃gwm1}>^/K}9!Nttӷ8|mss#]c=ּKC燵k.,e8VanУn@IdžElQ m۩NRi^lG2 a/ kV~ƀS}Tu4IP7i0 vydaK֮"eZfi{8t9u{syP_eO-B"c:=K HxfUGd- E$W='X HCP; 7urHv׆1N}$w1g}<.NA3yd k'Y>;˲cNUY\Ϋ'm_s>9_|_48?;.S2zZ~v>˼E.Ɏ/Nz0E~gyugաU^" ۅe]:)QovNZTwL]tꌕr< )Iv/0 \^K_'yu9kfVHRJ4deaޗ`I&$.ޕIM>ˬ規 ˷|ݫK6cY>exNs棹Ku=2lur9r/Rs=<ǫUx??7KeifVYf8G{to%0qkSX7Av>6Gt愩_ DU ϥ-{SnW=ejO>::.MұD]r>kÏ&-Z],ϓ{7Ls*Z'EMIvg2R5DXD8ƒ{2n<7M` 6 ?qtE 6{F?hWӰ](8s|А Id!L}P% 0b(6\j87f"] h2:qh򘲸)-SRUlfQn F;HGGdacA=<]&do kslk=GZ hic4yN yI\xFG& pF 4)ú#Ú*Z'&|[z6ޣ0RFy4b˶qɦLo]؆J,R{}#aKq )c3LpNY/m`?/`sl^z:u:Q ݃}_yjB؆MM_>?9 2X5c{)}KdIA&=ϑӫl]6K7!w&?N,"`LPv =7I'Pcӣ($1} zL=%#&WlR{ O,'<|}L˳ م'i3(Fdf{/.bwj[ ڹ3v'BTrd ^N1v\t:6Tc ^Z,7:h:T!xb!C8@36ؓVo GP)uKqXƒ0<^S0` Hp}GwNX~WzX=F':%m$i(2v ,8DuBJ%2qzd}7Ŀq$7ipi,@c'Hyym`Z;Nҳ7:qO ۸@G28 ^n3i'IȾ ӛ`8? QUkbަ?ԓeMV,)oMs v Q'{ 99M Lգ=K0½s쥜&I.rnӦ\N0w U>J%?(tڀQ34ó.N]=]}kرV}_>)e=2F_yĹ4Ɗ۰mFq!d8 8I @}<Ƕڂ-{6T϶0Iֲj[fФ+Ԭ,9 1]ܪyٺoodn==5`QOq:EJ}ޗ$af8θ<T^~-R>^r4{@I^*=~{ *{롷O6i+وq} i).G8 ړv\[߸ 6dtlR]M_ @2yۘc&"[By,.Dws~qG6U^p]>{q"e'2mۗ9yė#][6_ Y$;w9νzj:˦eY'߅XS4ʤyksgCvc +HhvC.\w#Ϻ˵"7uV`>{v:Oz2@vHyl(YC13۾[{Xkh}9b^5T'yfu8C&H (X8o4t 'ћ>Xr1a=ïV=So-%{x+smdqWip`zڵ {:O1g6W:n䕲#ݗe/2f[~zzzx)}]N6m';\]?+?˼>O~yzQnݳL??hBյx*ٍ:ލ1 ~or2 *QWva9Nk'iݻI/^LS~7o w/_`5ۯ_/:Z=L}'r 09,٩OU{c_{.,/ۮ<7o3Ю]e] +EQӶKR.aug?}Pҵөfy5{'n{~0ެ$_!-C} R鿢g;M 7薳c13z<3gn`pS6+++22|m8ʴ_&/Rd;NlxhEC0*JWy=v[SNY9-0yr^֡yr֭Wryo[vPiJS+dΟr{6[,W+մQΗՕ4*_No2_s9{i74?9IB.՗WKYN|VirWK7>K[|Բ6.[/+ziV^zqh<ҭXiQڞӏz-ϟվ%hR ֓Η5sV3}9g?ci*s4޲=Ū?–ó!x(I޷?|09|8?E|.& JWB!`fL\SF!NdE <Ti72UP$0ʷY @$%_s߹3'8&`<O=,4kD MA9 {U*rVp^b,n%xl0q1|B4=N\0H7>=VG~kД9D[qT!5??rPV>ffAdg(-Bkw4=iFZ!S /4*sd뵠 9#Sk?4P./_ *m<ݾIz1݌O`0|40<~D#=s3ݾ 48<^z%:wOxÛ]:~}Aqccn|9'<2rqb3]8ΟNxW^O$zcW.^x0!-ږ B^`IW C!Cb#?uc֣.Sx Gp%SţtB/4q#~!}#?v7}d@}ӀZ otr@ ;ss ۓ>~+$)x™, ckpynm3)=ѳ&87&\DG@xb8 ,Fy:O-/~l_t㱰D̤b=ix u9ȵbO)? xZ䵲*O #$=VVzG! У끧"L=B6JPgmBtOkܑGNrz%pPo\ (!\CO+S{[hB_ ROzaD;I];`)3k Š,>=9_1;zvweTлd ÜcBia sPl5|z&8*VVċ&v|PuMFUh+7l% /rZ<ӋP-*߼|:@7.~OB5X2 B>PIPjKA޽:eD8ꆙ{}{5mgK3 ,XN^آhzW^'CV=mǫ)$JQ1/덮V;W>{S^xv4](gyV]zrz_KsgXboqʪG,+]蒹Yt*|aiPyjrHk.2Iҹgx`qe;mw³~} ^ijrQ?@]d!s2͚ȵoHSɡ45{`xlsg!Z@ynds2<^ ~yQ<0k5z5fB6ozUTnPq< PFb_> z/ ؾM! Vr[]qqx3G.K Փ4yv?'Zc ~BΕnyC\;MmrLm0>>xV_CޏV Akn ޹ X:ėScxHl3xEw7ŋ*0~99K݀=/I,Ton2u}R /0OTܖ=ރwS0g̽^(3@Q/ӨSOH=L 4KXkhy=}{?=}v^\'ॢyn˂Y;'9}5mZ x j;k[ȑv2kwPbic}Q{R/@&b_x6m\ `ΥwQ4<;B~LUWTӛ݈Fer|j9Ϗzܾ̏*/ӧj_jO>Re?Ջ/ջ7=//2׻fe#-2?mu2{yW=Gc,=* jL=zĘ'8H- u[ܶ㔥r Oi3^l[QA!_kOKÛ&g%@w94.%@OF&Cvz0^>#'ͺ쵲k A,"+=ыZx`8Z@Vg,x*X~1PlIRĦvErf]1슑s镟}aR"SeOv7޾~ocS8ΧoO;vtw p,kop ^&16WW^∽}'i/2 "=toqdQv 1tϝpū6Gjtsc_9sOﬧv0%W`IXWS`tى籮GMc<P&p}_A7]lIEkUA ŀ%{W9.s)`yd+Fw %i:0g+vGǩ{ |P Xc.{c ֕nOl.P=eS^/A~(@ x @2!DKImb@VWɸ 瓺Nw3g SWqF7:(HD]wRsmǺ yW.{[!?1 ݓ@1+?x@Dc>3O(y8Gv.)Jwggo@|pc-R<$uP+o *$/e# d>QT[mN&wo;PGk#.@d7Y7n0n= Ͻc_ Fe1xGԋ3nV/x'2.7&"pL:$P8Ӝ Pes#uo>Kl4+PWNm2FEK/ lwjP'=U _ 2K"d|\u.S Wσxb [ֹO3iϱ%ɏeܣlo[\F[2OC\]1yq!'Z xXӫ|ID} z$E8dP(k:;5BFIOFQN/{ikA>4L'..s螑tjٽ[7?kuۅ˗WCiݳz~zy4_Ou7ݻq#ݼ#u;联<ɗ\E0xxc/=t?ޔWѹBԘ^=ݗ{L:{MX j5ų,YcO,QN7) }Qbb9&aJHeX9fAb'#?ʭi{Yϲ7i@A=g|Qm$7)KxO'GK$1Y݃eIwz+ b~E1/Oìz7K n=mW$d$Y@.u}R|٭B'# o}Ɨk>䅎bG"k~$%`ݹ&гq3FF淣eKgi{!>>ܩtqn.~L[5K/ ~aNrK7{>Mʑ}yK7SG]Oy/v0oS|GPWYe/~#!^8xu S{:=5bB?2`'oEGx\ƛm,Yj' kc52\`ys>Q_W,&ؗ5:}.WitzrFis94?jF5YS/: 7+63WlV~GmO4-%O^VY}n֏O׶_9?;w{dd67ȀZ |Y021BQ[뤝{p$iG5 Ķ@t$:4fJ5Rekz9 .6A4ɋOb=Ν?GhװE3(1?x,v1z]0^zH(RXR`{QK9J6{nd41ipCZL88AO/àqz[\6j- 4XASQCI`KCU`dޖ넞8d ក0:Oh7V^P^wchZ YTcc1ZlP\Ǿ <'52: ypR$D@Ah1m nW?ŋ!Ga0]7~;oe@Ac[GZ{u%wuV _Nԣ> @:`=Kh.ȑqݬꫭx@Gx5˽Haɫ;p/)8k/$ |Deb#;^+s_E}p rTLЯg]8ʚg57~ uux$UD]Z&,ͱڦ\𘼳7~kB QrOt^g]sib7An Y#5R/So MU+A5EӅ7'eQ//.(?C߶|o鳬gEzIw(87C~h xe$^t'c-?@N3' ã- (] ؍KerPm s'Ͽ:w/[}xšN3S9^zA4\M?Srso.Kyd7߳U"PDq/0&Ot.^rptN[0kt7@v$#_0qۃ_k [ 6e/?w~"Tg//9Q v6n5xƽs'IمwNEAlcNbw}6cRK7l#gK.>v Z^y㪡^QZVLoVQZzqoYfi׬gIkUjPnuPGm?wui9yTk4&9uY6sjc3Z6zFsڐ˕PSN7Ja)`I3͕O"HFTS`NF_~=鶝-K-817Id#xc6掠Ś /ak mŵDYh9G#IvQg4ul`cEGI*;yӕ\\'# y&6 Yz#?M%=<xuDxٳijz"Ω #,[$!/&ܝ_Af<BϹp/'}i@:Ǻ"=~@s5gFcS^^*jkbg+R;.)X:^buxD5B_q9sӋG^K/3 c}NR@`a u~y/ZhKppju<&ࡀI4jj`źN4uwDV,|w]s9d^8 ||IG/ckolF 7> }.}UMO-⥉ idrуGG?7rtP)^֘bf4@gC/p:P> ^هK(J[z>B"{ ^Ҁq1I{0 #_a~0oz}a~ҧ+^*z־tv:~~; __Cn'5qIW~Ha߉q܆7i"sw`L1ΛяR =Y)֞ǡ|y&-kU8?̼8;֛s_zGto^N CCiau9}gk;'y 0|Ɨ|Q—O(;<֗N"[/(_F+72KmjA|~jɏk`6;3=Y=@y@F\Jwnut>;C?t5&~hZZvkxC?l>:jFm׫'5FYƐ"/WkT3Mjޜ_.s|knyue2=ƿHlEWzq}S˖S`Y뮶U~~^u7o2-G? .t~VnӯG_oX/ 0i&[5&>oA dƵ? hɁ{ &&|%|N}|7Fl_/2&KU:=KgY=jYM+eU*&s's0iEzo6N%;纛%[zgLfz}釽6q|vs?qǩZU}ҍϟ TV_^-I7TW>zï'-p[fZvn7QQ]ahsz9Qr| =e;rb|W}M>7uJW_.,Yϳ\ߌfiک׬gIkUj>1^JCzxu>%w=wxq>wC9o7o.Wuӽ7OΗ=y\o{w>gza2gsu1"Oy]o#{)7msY:@Z>x5 9 y:cΦގ8y"u|nLä$=^-٢n)s:oEkek=b6&cp ޣOƟMs&FS`j=K"Nw5MPdn7htǣ{ `Xtm$q^ Jx؍0/'{~8u,)Y-5%WJ9Ctc4D~Ys%]0y*ױ|⍲G&;C״؇8kU^_G zw;CbXE 8>C ^CZC_S{tM`nw@4[rmv*%?ݣ"cc9;}Sxaz \G/<αG&G~~>3p \cS} ]duH|(g\(/p7wrbFIxstoD4chg,?IǿEQK/F[ird9#mrt6?F?]TﻦPRd7^Ɔ,`н{$/Q " < BZ' pgw7ҿ][<Ϻcp2Jlj^(>3gɩq^̥nzZ>z~RKz}tsźvyedƗ0Nώjf_ݼX_Q^?]dzKm5^ }y]M= ^@^z<@7\ͱܷ%̥ػP0 {{ <2n6hDD".LY9g4('xy :6Jcg!(hus˽M? ^QBĩ td0LIfĞ3Kۗ.|]<{/&&Ft?qxtOMd 2ʬ^Gx1dG^ xt$N<:~b m!Yմ5^^%VO'ON7y%=w/SI 9g_ B0wt ~qe}z8cƭ`ͽtO=~d@I<5o+y -R?^gL<\dUz)ٷV܊i|+z&s&qFs| >ODWn7{,it_.(Oëuף!ד2>zjy 2E6˓l 擎 wiA{9z4VZ__.kZ}^~zgFu=VNFi[ߪޜ^ږryuP6-˖yY7-?v~?r>ɶS1ꃬ(Tv r\nDz9'W}W0fb9Qn!_1FgmbRe\ڛ="ڊktIn^q}HL!j4Fk랆 @Jzh9.7^JgΜ 0ks!da' GQ]H9 t >P6j@Ø2,@A/@^gm ZWKa3Un`˸E`!ۺdЖ`lCkȦU #1` ztȃ xy1;,hHW"vw Z<< fy= #Ó$}@ A@N0UT@ZqCt::% _] =%HݺolAko -K?|] zX}7;wZ;D`tO%Kg8mX,`ˌ%shoJxH׏Ikuh,[=.m}όP*Og@/t>`Wd,E ]͂J J{(&*5 ]xB<"Ѿ^xF5'Os"@[d쯠&ANC2=x,H輤IOrQxdz t`Q`O=)I=ҁaA`"`E z O@ISO§qnǰnٶ .62E!C9N_@Aë.@ x鑷*n\0H]8{0F*#|x}+]Ļq z'dyN}x'd\Q!ԉgHdf#5͗!Xi6 uZe|ɽq,N }p wY' ^%? *` I)G %e~[f'ӹSz{nck6_ ҷ3ݗM`cw~yuMfQ;~Gkw%}I~D9KNMqFr"a[{G9t";)G /VUppJאw~ [}gگxnR^W)SE׊QfZ8^_;}2yL4ʗb^ADÚ/lO_>ߣ1߆Fua|uN5T/2Hr%f,=sv2C"|*_X-U @W ssSko.^:&B&ݐHlY0~)F?2OL٧{h||;[wʋL&^D8~{{)ƫ#*yY'5:՛4r1(4iѐCV ٨U4F˗N\zURE F1F(>uNՏ>Lwd+ I ЄǢ8T5 2 2W.M1|Iջ5=`{LD>ӕ\ 8dJC f0ǐc1ʓp՛ MLx7w@:Ǿy4` (5Pcy"hsi(& O"(b#A^1Ix!2ׄwxfYt%p0Jw8UC J)ǣ;5^:w` 8pfdO|&x <`zy]F~D,a_BWQ1xȊ^ӱUnDSx1 ȽzѺ"ilUŊ}|||,cL u C,dRG%ޮ`[0r,OY4nt} PϷQqm.zIz9-@KWM|@9A8y]PѸj_u+x<>MVȥYX>zqH4:/t6')7 Z!T_6~,鍷ϥ>< Xu Z ` e p2&kc~r.s,9> M`К9R0 X`'"^>Ô -Ir$6rǁUj3@$;xBB.ִoƑ#xavr?o!X2Tr*fum Xji1׮ᅐ1NAib1'yFfqL+/e$s y@)F'45ώw參_g l: EzQ0uyQpTz ' G:׆[F̋ePi:V!%ǀ^u9+Fut gu)<`Բ_pӀJ0FsqzsᚥG>Q' ґnI^- qrqQz'UjԻM޸K^zOoA}z2ӘMY{g'RI1)HC;O=,F8Ru'Q}<ʛ._ zL4!U+.^&rbwNҫr<ׯ.X]*%ς:t$F O€`l+(o" OV ^]G7nZ?}>ˤ4+qOdn4[cKk|[E-_8ϻM F2 ^/v2:3rb?0Ğ6V/yY>z}= 뼬C_f:9͋{g>qs2ͰFL:: I% 5w O ,/B:02[5$O6؇mWaӼp ίA%^={]{Bҧc]OO9Јbd%mbh {87rVfrVesUKGQճm6k+,O6":,MF;Lxe3}X2^mY <*?u-pX,-S6kU}s}͌^0)m@0iea/dV`2y<' MG HgL(zr| d+37ꯚzrYJM4)Qy<棷iV6K2ҤYҿ̲zdP po)߫ym,/6녜ϴV\>%@4Fף1^oX?8%r\ƫڟ,L涽j[f;]|>meb.o zh72&1(o?)O򂠧4޽86{ +*xVk<ԌW H1!( -AjlMz$GdphQ iG2*a(-p2Go{,>Nb ~ڭ>9xPfhcwVE( Yf(8mJOx@Lz#-lzBb ]G{OGc#<9 b1M@KxL(qx|y1q3}sW/7=f9@(RaB;*@xE\g=kɦ3Sa/r2͞ b &h `* |X2^;9˘@Ǩ΁q \1 Fc&4cY[cpsQr-{҇7z%:m+G;` ցxtVIxc'#h_"9_I'[33 `$2r\rP׹/F<1x<=G |./CܡyhjGE:5n&5Oxv1j] ^W@o+Wx~DOM(?98*W_pr=p-V8Q=ċ}y`N LY>/ְZQ=:l{+<(FY6ُ \_X&uW(|'uzx W'Y,)8cwe=U`x=?;9yCc,(=;BOv9OBֆ:J^Ge5[I,yzї*כWΛT˓VղF4[WqtXZ_d[bV2QI/[>6{45SN{2}/y^}z$[F[W/IqoTo5TkkO'Ԟ$psw3^:l3=UfoYXkz?*`\OOz Js9T +> h]]]d^æ>X6ldKֳ&Ⱥ7Uҿvm#a,ґ2 l֟\6󕯇L^,@a`|?q1:l?[g|Y&ysXUo^æZt5~<(P;1̟)u?#s^&sGy_9gX*|qأ二/ә'32c)ca|'_SmZ܆ύuP\fe,,y5y//V^ eڔMΛbsm9O.9G6oߣr=)F5(,S!>00I4KAãBy?E|.T$#Zx(bSah٤pT`ƞnZ,_C"uXFm Γœı/)@us|0djbԈ#w]OOW/`ԥ x ҈<{M 1}seXCx+G}} z7 o#(pL}z !6@6'@=Nx$`^MXVϋ`H8˜ >ZeL*`Rc Fq`T\xSF=,9[v>Bi$+z \I}vY_x_,PIt}0W箠Y^yIM.v0\謒> %Ъ8l+}̼n TKrGLQz 0 5޸H>O+m<rD GZa!/Wx4dr?{ᙷ/K0Vukޢ=r=j!{gy?&ӿv*=-nC~Zbp =^b PG^1~T`%|C_jzZ U֛;hrEpwn~/R( zE&;;̅ pqȩI@jSK!R_xD{%8M|?^kyt3&^O :\P]u! QVyk3";_Ś1{Q?Iػv$ cObR㶉n{ئJlgKJ o뜓x~#?{cԷ kYN6 =a ;Љ&@IDATh.^p4_bj2zw]R%]w},t/EGʪzpv>oC_ gvN:F @v伭YWk﫡^=9μ*&^TP,_5ͺ[Zz~4ȶ"xl,eZϋMfyZ*`Z+W/ڞϹoZ=K\aVۭ>VuV.?7/Y&{D;@gzI=4heU},pܱm wj($44 (2`}Q!*}hԏj oQFs84z~rYZGʯx$*,Y 4K?nZz[ڶ^&\U}cZ3zex\d+S*h%aOzP$Y/Q_/̗zofD^C}ـC̘AZUz-4?^M7\{|n2=NV\g}vO"H(^WQݹm|el/9ד۩>xz(w\6S.ouLMMŧXնϹ|=Jrfu7-67J_/͍7+sF4?NɡY9OrΥzt<^Gl<}:sڮ[n;Ӕ,_։/oKOuPSYY `oy^%Y90b5"XZ_V0b8>a< C7q" 4˧L^|> PK[_x0xt?ÿ{ԇXO;ZiQ> 1n٨ ϼs>ǰrZ y((xɽM[]qᥦc5jWՈrK.I9 `!(z—ΟN/t4}tzZĨ^7,'A|u  x'D=?tf zy/CTx !Lh\G(`JvLq  Gðξ`xǖ|t 'h T_ ?|zc53{]SJO18^ qۘ!TLj)|၅xGtA#1ڋqc;{8"Ci /83)رhB &QgLi3cG^!ٳ 0_;z 6LiRCb~ڹz4𝅵u J q^E|ȯ"/DyI$Z1y~r?nY1_xE\ǘKaަX\8VEe>Xm-$k >}ehg6A=軶Gpvz݀,3G(+1E^%Q PAqOu9hi·бx:Τ\'f?e<8& /DHC"5E$rߙL^{o\H=SDmmg~7̷-dWӻ?)++o-t窺Uu'=zq6|~#\-:eLٛKXe ոh0DUWXK6Oy2H:K' GVkۏޛ=]~  pd7٣{,&kUνv*XeRn=ŮJ%7<8Cٲ+Mn,ꖺ%<$@ D><<0ݒ݇a^{[߳6'3Y2Ỉ3o-c~?_3`y(ֱ`eE/@L:>ސ@v_`03<0Qm/X|@Q%-'Ss.6tzwZ'K#9|-:̿WZӗ7l,FJ/Yy2̱wIo> 6@s2H4Mp-S8N#=QM1RXkyx| , ƋW'G^00fXLU/+CIl<>ˏaL~~!zh^Tz+yg j!h bŮskz!G,4]!̟46%>KcƗ#|?8'Z_v=2 sknIkv W3zЎ5Z3x—9 hژSpde `+XCo}}1q9`b=Ƒ^՛g'7.B#._P铘. z `|{#y&^b[*(}0ϾhxtbE̥3čw]xk6XϏ{"tB$[oݪ1"@]cUkP4(s12m;Ot麀ux79bNvBUC]Kw2А"ExV%PVUVX?U:֌NewL2˩z_h-'lN5ikVW+yZ(U{__EW"z)GrWA*@fENQJ*gf*`8.%_NeZ끲U[M.,YhUn{5 ,%+M+勑<êѵ%ͳzK:bUJRzX繤G?]L{\#܇KIUogyfգcoVYi˩(-[tWi?otk׮;W˙s<:;/e+ih**m*Y|v<߮JVRJ,E%O գ ޗre؉j%7Տ|%,m*a׎iSU KNa_qsߛǸꞫM#LX0i;$&`9 sONj797 VrqX;sbPmL6^0 1Wz 05޷1޸R?(>zO%5aJõߗ=w/ȓ~@KlV, M 'I/|8ذ: %=N78v8+ŊwK[I<҇7)/$>YQgPߩ[~ /9= =>lz:3wIu_ I(J(uY')e@||C0a0_J>FTGNpW70~fXЊ'g#31n&G2n*\4*07. Xvpi1}cG@iAp13g<7'NAd{@@*'|_o'\Fƀb)=ucJId0vw&\ØGzrl!g ,/rx<s> L@sP.Env s6|bz/]e8!o|nYbO7r˵g\ndp|F)=3AWXW)뙳IXZvR2hVJ-k:,9~n%][^pT:g8ڃo9:AfKj#/+(ھc؃)hdqfbΉ>1ޫ X-"d-'ʹZh_q䬎ҿH!uW^|c>vwޣtu*:1ٛH-ePnv9 ד C8x~GK{ELFuq.+?q 9ĆQ8XKz..5 Wtvn@8;i_Pe(c+Jdtϱ!cK!6 8-"kO )[W7 TˇOgQ?' KHϵ ^c\NJne~Kw+%e5Q}d^{yK7$wxU8#-rtΜ<|h:K7X^N9SqeسAsϖ}#x$`n"²9tFɾ stY^Lad6q$pAy XǮn0.O!%pBRL/|t={B;A9@zT$3pgwܨR<üM+9句yn3+s7/nӼ}LkeXJSJ؎ xU#cOSʕjVkvo٥mV~%q] Q]JӆvZzLukstڗZזS;R][ R?϶rEid"m jg':׫lUO=_'ҍƷjZgA+LxiH>#W T @\j˥\UR<KJ];W&ݥ%@IyL4XҴvuvJWeWCw5<^je2Q,qSՈw&V^%o~eI%˵6-%Og $i3h*{ d|gU(KoFVL5ܗ^U^dYoy*OU>o;e-ߖw O%eGݰ)q\(GrW^[k#QS#ra> X2jiely%[e84 z0FLtxĀw-]/#bڷPCGٟvp|;GD obzWÃ4?B0Q9Lѕg(>rr n7aۇ!?{2`n$9 ^*mp`-Hs~PǶ]և<,=iT 6b07'd:C6^>]aRL:x(( GhlqSYLfDZaiOe@-ð~*T-`SXΏwc@s^ ׸Z_tʂ~X^] @ jeo!H Cy@0 =S0 5 xлF~ d$nGt߀7J/k;CL  ǧukF};`c1iC!*27Np"|O?@Ngύ:N^z$B6!RC/cCLD\N~5$tm#b]ҘɎAS Jfj]z2 7 zX/@9LĴM`-8KIt={ff#nd@ i7Hx>۠S׹hs@, Ճ& P8]9#PnO 41J:, !HI6oHwo›r@Yt=/{| -^h3M`.:km-ۅEv`#=cm==^y<^JW&E/ &#&'xkC a)X/(Se^.axcy#Gl_^$2<>u@{Qü$h*<ҩ̻yP-' g#1Np4@\{SG dY達aS->w~JU(6 :@rA9Պ\m5_#WImRqV~OqYogХVssO㡒 ?zsvs_z\K Xɛzz6Î%΍,)wƂuwo.GU27]߷3mh3x}݇4!g Tҁ\6Iob͢>_g]Gx @9@8| OR ֬'h^gͻxbz7N/);m{i$D %c枊&cZB]T֣+#g#o=8Oፏ#'s&/ereԭrt\&ld>?ARcybBm Д`iȭ7iz[u|,V҂ucn_~++Ð su5 żp1tlfNT(ʸ3/aBKC(7B&^8mz ߎ uG &}Or{7|;>p>M{8JQs<#GMS-& yvH0O 1'L0)Y,K |gǯW\LЇXʂc*w旧Ж{g"5wC 1W=nE6—Y`ZguDO>pW>OJx1ovAd;x46q@IEoؓ B{@a<5yP/ 0/w _1P͙4őyQ<.m%{xt2Epy7$NJIz [꒼D/η|hJ8Fs7->H]|.Rtf)[/NZv)Nَr*S]ݫM)KW+_G!wB]ZsX V<dӪ{{'T\ K<˩Zgӭ?f4Jfi8 %"4@P3IФw8)_'Xk]z_(WI/| 4+W,5K*^%%K[7 @IshZ~5jvjS;:5\&W5;,eJ{nd+oʔzd$Y.K#%սZ4uz5cNi*oM~J'y=*r_ºDŻkMAOվGtoy)Ү:W=m6+,_=N~=AuLlK,*<7M/۷jhsa^Zŷ*ի]yJo߮LUVh*v+I0ğjǗz[_}a(o'9n[RIq\\* ϝaahW[ t~ߣmvIܶ&o5?s].@ICb_4i$ C]&4&mƐš^۠kt&qB)Pc1Y׌Ӹ.B!N2/F5{l9@zi+^BW*@ßrz%ph,+W6 a8Î` h%=<@gڟfݽfd^銱ц&ݘ?|3F[#kZhR7daˤA3f2h;0`P)Hx/Ve5uJ_D ԇ\۵kSza?%dvp)q"m۱=}ӟ5qot}ƒ )muYZ};at7=~p,ܦWB  (`q6}Qkv@,9FqY(S%4،#W61q J`Ӣ/m75 H =ǘ{@ ~" p`c  +RoF OB=25@;X^" j\^eQn\(P A:7#oF{ԹC!< QS^H N0#1J8.aGsyT: S^p=#!eW۽V6߂_"^^zb:?%Jahns{N%rZ,ay2=kG8 n^4;@H~:jȑ}i;wE֬xfhakh{G7`D]iA[xgӫGf}kmzCޱ(ƵX/gz>bY\'(#PRp o Bo%d<l:w41f=R kKyS$C}cIihx !(uyvOao]`^a.dh{|kZw纯yx.wkfӑg~zN@Oqss wȳQylQ]|x~5MZó} hXjƹ6 #mүp@)]M, snY-'o;^N\ÕB'r{5i13Pv, >\g 0O^=գx;tN>z/cNǎ_LG8MKN#r{(ȂP$rʺv) <Uf SOW_Dv e<01l̫ۗX9m]$nsk 5Esknܼ5t͗&|!njSg}dMU2NK ]< <%㥅˓;ii<G= $b]۶޷(F5Q 38{slqWsEdy? <WP/ǐvuc74D%F;r o#!sT8 =*pϳ2v|T,ףHaٺscz=vC3n\=^@o2ƞs$|WҳZpOb_$ȈWg=B 5I}p:H?Tsdljg +ѻqɳݢw7xZ* yE{j9i>{ꇒ*OVQ2H$c\ZUCc9|:Sf9,7orj{~^y'Z:*V]hU6_ `Щ-Xg/[z;7є*f6+S+<Ҭ+ϭVKVƗ<rU0a3dՋtKsΕָ|1Cud[) c>3](a5qoViVTv@InjWo4U>Oʭ&^] ]ޮJ:5z]t)/| դUP+ \U%V˷JklF:|ţdi؊LVi&fq2x3e髡Us].#]3ޫqKz=,m(񭞍7-8q"~+Khl(zEcW烒xY3J|%t*^u /(N,Vihc=x`ȣO=lfqFVJ跊_Mf4ŵkSʬ4U]ˍTHN<缷8p4>S? ˽/e+p.( /v؁MG$SSʕzۦs|!˿)z{v'ltQOb2Ò͠3 C1a>w1bFHvPi0SYi8zEC2 %B(보ư-cIφVݷ#mܴcX/^\xsS`0Q^`nh \HOLv,y NogzSR!(ǭr}f"F[Y@-%*H2{HN=,c>QQ#s^zā' ΐjȥ!"| J=zJt B@BG#qH Ba{0B߷gSۮ8y i+XH<\CI^ ~#xtL\W< n4l;Hgm#*Ϝ= j&u9=eC?PmeibGS1Hztotc0 z] xNO'NoJz筷0%hO'N.y0ӹg$Ï2e |1߶q=&7s^ --F H;`d{4$G /M?;r`gȃY<$a^r̿-X>`4.{1bv3-#tg>i1k8L&xNF5caCȉ{A%9j ?y1?{lfcq_{oLwlHp8ypx+?}"09q1%o)Ǹ:~Mv-e Tm`:Qhe8қ9;g )-W>t?12:k<;,^hr>7/yh|c_`I`Wړ>'y Nn"ݬYov5DG\]襋~x-c~p8TO}|Оc[x5bV،G)=Nfx>>&W'`²nF{S꺠 jsDY`^׾cqucǞݟzi&־4'Ip CbmJ>)R CvcүO?6r mEEt:stz; I ,zR<:b *$vs=K?;'EX/ʘ8W.[(i&4.2}}1"ZH3w֗q|axMf=5Ļy 0,`ѣ|18~E9P n1y,s[9ѡL9X\^p#0^檬ii# `A;I؈^?7P^`X{3-:[_)BDfȧ1iKOzkuR0GH hGi`/,@~|zW3fCBjC?|}PY)lIO=)6Tǧ]!Eh;ޑ=1 (|NB}5&VV=n`| }ZDĺT 2\>OA=MtPݼN=T/BH}vNrd{9i6ئ/]˶pK.e\^ _x198QG[Kޘz\QF( R./]R ӮrD#]K)~ Tc1!A.(Wd˗k5bܱFP,-9= }#{#(K} OY#}%*¥֮RDɻzV_?w]M/%WSz2@LV*$,`j*`#'Kiھ];UK RJLy6KZަAj)eWq_JگZUiܑU(Yhiդ߫۩MhK[ /}Kߢ::iEMWo|+j\mSMJzK\UN Ii5J:Z0KtUBs5C+qK5x}?2Ma|,lLVU4&W[ѨY}oZdUdP4hoݿ!J|T=/'μ^u9u|IoWSZVz[T)UjK+ƗU]KM/fKM~퀱UdW’\ogTӣ7ouo=LsـəK|V+*+d Fi?6nR^ZG+7NCxF+|c >37zLOǤi3@?0xҨi XcojDզ_I_8/1KŶɸ@FG7; =}x VcGQ)+4^{̯knΤޝztw%<=iwB):eh\|6%Dr~2 ^FxOQk> Fb4x!Џ!Z@@!G:zsyྭiޭx|~,<٫I=Ea??> urs|5 ㋀{m zޜǓwO]"9A8rz|F#l<^9a\R#`~q3fV|?<}&GFQuyM_Lzz f2)Ϝt%6C#PLP Ųn 8-lh  Ǜ `IHteq»7}Р^cO"9yd LyR4aT0/Vs>=u#`o{`/ٓ戟h=hJBz^fV|`>nCˆĹ/_V s_D20 tTĂtc,P #MܓFnh6?z&L Ar2,k kϻlK̓'KCa"2lK8^N ('op'Utx >U(}on̼I-=K2ٰWY߷/b~^|-}(s\3r-~:7gj_p>n[XYGG5yI)v|S<G}> 5 x}-<}6`cr W{]=.\)dg5@qdA'mUO]%*<$- q훢cg8z;NJ Pk}/u,y^v-P=M!η&P+^T:;$m+^u;n*De6 'vn*)`H\&ĝ,@=8OÀu) ͛>  HЀ4Q[9!vyglt$m'C8EkM8E:uC`ZMM')LQ^7TY #¥odEP! $WB g- m!_ &4i ==%oGʼntcP/r4qnvؿgsa`#;ytN{@.!{7%@yL 8gۡ^k=Gs46]EO\Pttzȥ4>M Ox\A _S5=m-q y"nґF\<-p|g~}W>Ǥn (A1].:e;o}euTqA+~tx%Y+nq7Ӭ;ik XVWUӊ;+Qa i(7 i ă\8[/λG} QBo(=x۽#j|ڦ'+?dT`zrϺƧ66ExуM=-C~c]|1{ }&CӜuiU蔼Fͣ`mq\ {$D1aG0co#s2K6{hffl~=ۇӓm i@C0w*K3ezc5Ń󩳗<޲Gz"u u@zF0?W?y0?_J {Iּ˼H3W 9R%NoV]R77M}k_kHYmWU=߭>kF{)q}=Tf*i>{#ݰYRh… %Pr՟KaI<z,^&K|=,1/XrKLRWYd*,Ujj&/y1%իrx3d++-7dozە_iZzTSz;ҖJ-&8iTftJZnuz\=OUBLMn'dIxm1`*ƅ-WݗzXUҋ|&O<8N3⇾X^R-^#n2^mqORh2" 4c̫| Mc#!G-E1Z+ojp6Q }Xgdݷ1@zHZ.g1O̦fӹq8<##}}iG@u w~|"]gz16JYʻG#,+-mRo SF~WW/G 3-8w,]p{Ḳ*,hp^Xưǰ!Ƽ% .!q7ۣ>yds \L:\0/z(^NHm hNzTY]J4m9+mZ> pLͫgKsg/ds% ?e;I+ . ȣӕHG#|܀ Cz]0=Mv0^0`OA2`_̣?~ գ{'A뉴B77eNoA \0o"h]ГyhEaLQX.MZCƵYm]o>lkp< d?, `[1~ T>8運5,Y ^eDzz.`cx`>qꚞ18vmɕKZxٺr&~J:G׾u|~A]V7X{nx`{^|=}ϒ/֎7|ENl튦Lq{^&D0!Ʒ/F.@[Cx#^&{}:-8|H:pSH:/ixDsO cZ%H{r:\椼1Ќ})zC!֣9~xT/H;ddcP u3=- h痠i sͿr=<.ѷڻ8{? 孼pos|k#Gw%xge'eS\>|OcQWi l4GC2>i CCx;y_<- ;]_xPljGWAl/X3Iwnt:RqΧע~P|NbIDY3Mr[E#035R=?b,:t%y|T`-lߘ[0/49lyNZ{K7I'iؾT3nb]s*@c5ÑD xςB^|X;)gwON]G_X&ǥ)ɋ^oJBs8Q1μ #m-sutAAϵ>v}<n{.z}̟i~-^1Nv/P7k]y܎?=+ȵ2Ds8V9=&jQRGU$WxJ{ߑ`r+#ik+Ε)rZNyy.Jʗ<$Y\Fѯjgj|Lo)a;ޖRg9m(]>p9<^ϋ<˰s3g}OX}kJm\ͮ*fK+Yn;VgzJZUҍku_M3O'>t/.F7L6G6+DV {RS{Vn۶-Htۮ `.ft;&y*-/5yV^/6@aՎviUUdoW]WޮlNjhf*hRU%q6s\22]ˡ( $YmWG ,Uߖt*K_-v_mk{f4q_YոvfώqAN2++uZn]}M5{ >Ҩ.o5Qdecz|K7l/^J|y6՟学5UO]rݭvm)KW9}RE?L/5ުs)W6iq΢Øuu/_z=&oX0*0u?%5\hrp$lq`4e` ld摌*̛GIhD԰BڼPH_axǎiNxӣ\7, tM; 45/p -,Ni`90؆ ,/cJmKO JգGߠScy=EÖ8 W{~{\=rzW ^0YRWw>㋡β2GAʱ,b!S+s=n@ U<{Go bȥw) `;,n&gĠkmӆa &5k6ݛÏ0܉gm90ƑT攭: ?$e2@ 8񢓴˫xFY7-@&4gΓCllR]9ONN]0@ FI /pl'Noѣ[Fzӣ{Gi'Fk4襷Χ9FAk0=~*:IY9m-@K[0D 2.ԋ3="R`=!uYzDԠaYnI]:nt| 3C1+S=yP S\touL,Qu&Hu_vCC3 cÓ8Nt4a 'n4Bq9:ܙW>NZ9)gns=fvN L8n!n㟸7D&frʗc(FUzp=ƔZ&м]:,$76[҃]7,x >DN\@s乎b-QFbANz $k,WuW*t I q>`ѸWwUԋ_;8Qls0CQɦ13)S^idX]p[5yHb7эcMBސYf˼ \)@X/v<=|hoOt>{t/88VS^Jj1Am%{N<)@ nYa<)O6ו=#E xP_K$+fq}9߆< eo]I lNݺux΅7+^'lT=y`in\cܚ&~AN`cGRpQNY)'/Z^}b\`P4s|ES]p94c(=ZڇW?e1x0~:=o=`3,P:,I+G.lHLb^BӸr7d E JL%k1Woݗ3gb.FW/Or^ѕ2qtmQp}ҡxf- .|~y^,mN^PmQO8~vd2+:h4NkY|}jnr-Wi׹zaUҵ(`$hwߞM\ϧۯqFu̅ᵑ7x \zTdz"tr (H>ڏžYFwgM x!6t\ϳ֯)u&kh72u+2ۮCKy$G;u10`6yx(b耓*k _J]'3yOOsww_b{lkXG#c|E߇-XyسsG/r,[xȑ$qe P~Dzm>?CF:췯OyrX(|DF\ X?Z(k18a.^6_nwŋad32=F׾]_ *^_y.r_W[ݛ/aiCz|M6LJ?zK^a(Kf&XgvBWWKz_cr,e|/gϞ--fIkvvHvtJ/_KtN[MD]z4bz_ʚ]jn֩Ք] ۬ 0)^9%LG@جJrj}@w5vINm[.LKv|oQ?7q$fոr_gynzv8}t}/w?(h4__k5^%}z<=oJ׽Ԯ]Rʔk5ԸvKZ ,iۥl+Ujڲw6ݫU}-΁.\B{"WM׆12I}˼U&^llr}I+Gc@Je %"ĐAR䃟FHV2dףF4:*$,w"٩_/aЊ<٠dwږTH79 YE ų-Q>s1]pKz zc71&$M@ elHK kNEqå2р&xJifؿ+}>vߓ^G;z&.6Ta͒&)_,ގLOC%w%Jwip`Cl#pK㚀IA.^JN^~$2t&H40Tև9ƈl>/$;c?|c)_𖼫~)hQ4rp /CJLfyDߖ+&ڍL<"ˣ=X> ^D4C =GiDod_2=%_3-#(ef_!e&W-M=-6ڟn sTYmP?{"޼#ʸ|rˀʨk!(C/BlI[neܞIױ[@CΣط4ɣc-?zcNp\zӑ 019׋D;Π1cF#'>~yXs/&8N< `RњF?R(rRL>&Mr'E eN2DPܺecӅIދ<_hYyǧ/&OA<= {Y=^xBJ'O#}Ie/H] SxلJ/腠\~^'pt)T>QЮAq=:oM 4n;L?h('Qd\):7Q{.I_ 1W'bbosi0n_/m?k#oe tr,Fc%K0O_cͰ9ڻ)فN:}ȅQxpN8\b}N<q`|SgUrּQP?`Iט@ĠB'dzvIpzǘk gWe\س@.R}s@J혥OZ*% ΎxAй= ;:j`bub4 XkЍ9zv;u] 0`JEdM~`>DAȹ!<1 Cc?\ҍ߅PPBWy yOV^3 {#<8d>LƧ^0٩*sqCF~õ„Ո w1r'PH^gN%LF+kM/(mkf< t1~TO}9}IB]re;\DaLƗ#IBg}zk }s}5Fj_^i*Gp;y8) ֗Z|<XŐK{<fy :ߵs,[xp/ͮjS}n{#ZK_*%O/φ<%g}2oz>[ٌv3Jfih͸*wn;Z(܎Ӗ&BoZqZ^VZǭx{)g}[Iٺځ%` Hi*%;YT*SX \hU[˹^U^$υNkdՐj9?J-xҼ]CKx&K*pr)`fGq?sAݎvin*:`NN ;%KvtۥY~5ʶKTjʮvzW 4)^fW;^/qzIҗh4KַK ,%MoV\viLaӾ"(m/^5V64㵚g*l[,q===zZX6 -0~íbo1b7扄ƟVZuZ:`ـ ]0ozYm`3cٰ4rQɼ| o/s]$ۃ45rE3(E,&L0iH" 6[mށ+=!=*? xCt^$l h81r7hzSp'`Ү|̘kǡ|{g'.2 M4ю9M+S/=[F193! |Vd呞1^# uxS/k[G! q5ܰ40yx:[#weLS&- jOLu1iho|z! 6/O1~h-hճ)\zMMR^a}QXjVPƂU?َ-EV] 6艈gCWCf5" >Ґh[nJwpDoci\&gI>WNM%+xF" OЗ^0xtީ m"=zZ!筼4fyN`4&d=v߷'/MϿ.{˒֖Ծu)kFZK(lv˿Xٿ_00%JS 4GC;kʥxu{e̬R{o'N8/7N9=k8cc\ݧ߻;uQ|cZ@ӥ4Y.=309L2`3ݬ$2ɠӋL,]=Hy܎OVXcݵso5 Xj9H/ze{2y0Nt~>oFٺ VYwIӸۑ'e۱ȣ4X8;- c/..GSo?B'/M=ɫ$%VҲNyݴŇJ}c;3`i7Ƕ =BZ=K7@~&xL+'J ⩬B>a]#u<& 'ݍNzR>y/ ZRǹq zչj1ŵEn< vütIG}JsC@3=reOzYP@i7L1 TcGmzjtMw]B"KxkA2JݬuoOztJ-eҰo]mJc_PzD7i}<]c1UxO=W;~7u1'!%YJB|1/5WO"Eg+ߍ Pt1G>N b^IRJLzPG31ޝ7Kazb1ƵƆ #xg F6ؼHDNZm_h4y<4SRwyz x!zl%GlrJ.㽖s+5w$;A29=Y~˽wr+ǎ 8 豜f~>(ښѵ:BitW+49<ŗ)kVF5,2]*ӖӗZ;2t8Lu f9nŅת݆]9j$mKC _B˿= t^B֛&iK2U O`3aPn@y&LJ`SM<`)^Mp:( ש/qjSdD0Ge"Gzw^ 5 !I#}n8ԏ +lƋira00v 3d,矙«$G)Y4:;Hk>maNwqnp#OcV^ h]z9 ׋7޸Z|\]H{VjPԘ @}ҫ@>jL#x(hTBx@H.U|x.#oީey`^&)`myj dA[iu:z[^|%y#ÔFlh(h#B ye@zR$ l@ ՁǎkdEww7wA"`G]h}k ՙ3U&n#o%͉(Lq3^W%Sxj}`q'`҃:/٧C"R``I=P:h{US5(ksf3;—K~'ҙ>Kq|+LMCXlFvrx7zG3#|)yr 'x#YZņxU&OƑ%eAUz|usʍw8¦ }գ^qc-0./ :l+ `'XBo{w%iw 3{0w=)FFS\.GCA˝Ť$mڰ]$T v8A]{*6W/9|RRo{%|y @Sw٨]k](fmLd?9)Ԗ3b6eڲUI뤬\F?.V|j,,8g=^ߪrjy܃?]#UerrX5a?it}Ϳ?}AcJ)o>9W_͏{jeU Pl,q`\F=Ӓ-6?'1{ex0|%9ui'}z8;s啟srA!6mN_gzrx~,ru'U[kV[wZw]>l,O< 9Aר-ʃjy&&'ie2P{*i3\V9\/brq6=d+7%i4JCf"iF8nт{=&0˜;A"/@eI= *t6VLb4*&@ŗ7Ҳ4-}|/7d&F)#}xn\ hdt{҃Łs9:=OԨ+Eq0Ns-cL@? ū55`?H K"4KEx>G><ͷx|ғ^O*Vc0b \.(#aB8|  1Ipq`kC=H'b;ӫ'@UatW=ZU nj)Ǖ˫ jͯ'~tXҍg)ZO 4Xe P)i*<^OVp|foqrr0dpz.af#4 )WL-(=u #1J<ĤG|82>AFfD6,c^_&XJ@6&Zs> ݀ SQ -8+`&H`qyqS[ȰB| : xdPm])VuR9xKĂ$ 5}xxǟ1 0coN e )B:/xr`M-l+ܑȝr c{&FAA{PGr|ƚGRR6Mv=~zr,8> @!߫.l䩕~rD=T q$&Ӈ\H3Qz_ˬ Vө>̐zn/ǭ< 0|p tν; -7Qg!_ z0{w2a?a8HC?zHPtױ-Y[ 0 (q&bv2ZۻG= (?J Gz)*+i7^K@B3Gx}N}< iuʩSx-?uc#:Q^S;m_wL ('sK6<:g(wRg^@K|t $}a@6A4%?Y>U|?/˛" /[wClOцX"sQ8$,ʏzK뻴Zzm֧c4F;K"@N{+Wm&Ƶ4(2u:пD&]/ ?9FWpI`ӧF+&g8*z0r$f*I1IiMxVV|0xMj ^#0^CN~\Lt85n@TOL A:us28}:p *^  L:&%C'/ڄ'˝Bn(~9zszs$9.v#][CW[7y>q qm"&2p94 XYk/`jt7p;W<=e޴4C#]W8_uobcacr8OB"ÝeCpxK]/{GQ' `snܼULӨ@ 1$^v ^,='Xqx3OT`!b 1dp{xvރ0 ѐ䔾|2R- 31/t #/˘l5=6xF/19+s8?[5(Y(b09I(R<z!*gaa1@" i` CO?*L/S}ЅtO=^P5QJ9 t7}1>4} ;>ı]#x8'۪5C+WM<;A^CsgF$`r^:7 b8=h8 :<6n>Q+2n?r|³KA08.ӻF|nվ|7 Ns% 4º5oㅋPzxpz S(n=:8QX[ qsҩ_@I=ʂpņޅ>J ,P.8gZcbS`B<z{^Cx<z#'|/긖Hzqz.?DG/GxLi7|S( eE rx.۩lQ9AB A.Pm?<")XK u*x{];MίS0`<#葓ҬR賜9XW((lmPa7B:#xZ>AfK}P{<*iq/|Ϟ?SLr:X+hP g;^McՕb ћkK|x0_z_ZqTȐ)O_lЇ Lkȗ^g1:io768BX0);ˎCNAg[P!@Ӟs4ZA(xJWZ#$9oL ~Voq$^7\ ɳ 1&)0v Y/ &i2 0?zλx}w&vƱX+2r'(ryo_ 'ݴ3xc\.mler2 E>bSavi\DayiyẢEڗ1#MZl4A鱿?`k,|Yޮ5pVꌱ|6h} yz7dq6#Dε9xk׾ JraʋK^s܍xb&-M0 H8#c,Z+1Fn96.6) zb:Ku}E &c^bqmxbO`~z@VCK#uRU=P#0ީzU}z!}1;ŝ鹠(oSx3&{WkS]3.*o![ꆑ$z4F8Z9Iv!Z!Q]5u0ѻȚrb=<~"X#i)ӆ8!o?κ!J/ۢǗsKh8cq?D_v/^)bOQRHduscύ'|lNrkf#? Xrb?5 %.&.s =;J:*XvL~XWw^/e4u<қi+{ziOu2)ʺʲ۪$ aZ { XN$2}/'+~wxK/~$}/?WqtWW}U. ll+&syYTdV}e}Iih:Zm2sz@ɜ=L<8_]ڵ..z_.][W~$oΓYWp\[rڿ)>O\"J4K(IiVO^i`LOG*ڎ<7K6|/Ux0.^߿vw}ON㢂CjVaxi'<>Lc|U+SM[h.Z^xQ._s'[9v'+ߛm40,]V5r}68(cٛ+rX$|U5K$} |,Q  0REÒ2B"]/ 3i1D6 QQo(F3 aIpɬtҧl^%OM (i=2 ʒq:@aXG08ZZCTm۸~ ~x\ܻ[|kŭ[S0/ȕJFPqmHk aP,'~R(<\JW1wXϤKr]d\m^|ǐ'4''y0Sܹ7ʀL@Qo$0 _G6؏1z Dd_)^ЕbUm<09WA\FGw0iQs 09@)\=gNR/5J@Å8Nx)¸'`\m5hKFhA *`ROZ]^]Ζ6EOYޤ}z(ZH0C=. VPF Zz5x-DZ@ 8LYH`k(ia@9@*0h~XIڦ7N|kxI;o)KUb_uB?|T ԀE6! t#C9 |A,`p \Lex[ 0y^Գ-M=z <1,0mŋ{lgd:^B|Q@'(_wGtj<Єz2P$S7Mt Arԣ:SOmUPgڗ1]$IWC@n1LA_m Qp&3CQ]9xH}=_p>~)zз5 V~$qK5FY&=IhʫP_:F(ϲzz$xFx̡A;q#08G9 (nsYw@8 ΅p"7:>F{Pz_bs33idc̈Dk(K=5st20eE9xW~Qg>ěY\B=1/=L }tOgQ:L6J̠1`I>Fw/e:_%T,ht }_GO9G;+ }toOIqE(6:7Zgϝ{$}q޸;?t' 2Ob/}x91P)D{C<֣G,|.)pcrHk-!7~0 3(/}č +c)xαO&d+dRH^d8zC=|>*Gb>m[s z=*^pcgJhws`SrfϮ]ꞝq[@FXc.]ЭpܽFm8 32A\k <=ᙖ:MRRZ1׫C6`|CN^bu:Gyu^ cCWJ%_;70N\FƜo.+=OgfZj<,ѲcGhX-g򄘢ԫztԸQ'0La;¦nr2>̏c/w}vF3.%}ux$XdX^9m^uq1>!ivi:L.YpBLѰ+4ZO;!4ŝlJSz#'.-J1cwʕw~쏻4&>HЅax\pAQLN cl ޛ^~ (; &^V'ñ3 H<V_xR1`ݫS`3&i|:z'E/dH^$'“+,fJtԄ$e,^/HFN 'WqFdV^gL-=(C!V"T="H`ƥ|9oJ;ґLZs: mCB @%/tc}lV'^wج~i ,ΟD?јz9Np9-̏clp9 Lop0OuaTl:z=s\qX`M `9@ ƭ{>b Ź!٭<ܮ'^>g97+8EҮCVۋdmAH:@.ATlXWW[r}䨲ܪ/J`Alc1.`RY-Gt @̡%Лudtۭ'c 8X+@9F1ϮA0~w$CrgFώWO0f:b\Nun}ȼ.dezjAzFuInZ:nG?w~%*48wY&V7=2A.y ϲk,{+~^W_G0ڃ Cn-BWxDg/0q.GMU]< GN1zrEfWIU5jcx$|/PM@^ZpBi^` 3 qY+"sćNn)Ù M%3V{1=cɹ? a\[($Gbss#;ϯ P:&7rPl ^e'G2? dtakjmI=~' /c!ar5m= h0.o'_,>'YQL_;<|A71~IA4oNR>kj~XL[]UrD\z2U\Fì'Ɂ9Щ̵* .qXϻW_}}{-.}>PG_2_B`ɺuϮo:VUS~/?WӖuZŵjS\{M> dKO:w,l'v(Y`R_wM7>וiv2PҰ__ۮܺ8O|]޺z˻NћZ l.\tR\a[y>azzYp!둤LG5Oq{{URۿۑU{*2xQ)){߬"̫N+{9\/Uor)~۷ݷzuV/@N߅eڜ>qyjY9'9sL{iVnw.M'quyUAdh+mUު޺2ͭhoiڲ sݹ<>)]: ++-_z1뭾}7i}Yn=Lh2i,75jjc0lnBC"7 g.x];`Xo=HM eV0,} f8^zਠzG`ԅag/ !12#찄XD4SyK0jj%SyX.B8WaۤL+~*G.<C!lH|>=>KCϦnZx/+ 12AF.%OIR^Q4@ӧOAJ4Ώq8AS8jP'IrxF@#>`7X㟗m02Gr?(]~?=Gq&M-_o\0y3ʉ@9/^c^bx'},x G fd Noh;P`@Xu8mљ} ==xgnv4Vzb<`=j^a| H-*7#%'+PIV' 9p@qcQ@vfLM年0n":.ᛴhKL&x,o)xb cz7wT|l֤Kϗlx '?܆Fz(e09im{|r֋~kz`xhPP17KΝ e=T)u>G6 zvqoz1+!3CUw *gAu}=yU-ӭpN0Qs4?hfQwqb{4bTBƘ YƣԊƼ2,h ^ìo|/x 1&`w; 8Sż-;_?}5S, m$22Q& ǂ`GbC2a֕eq&p1<t Q(x!#' =G#[,i1)mT:bݳ瀻w^x1dcI. Y!34i~ hٗFe5^#H5F/1vwGwgBxv}wЋ/].>ʇX0 BOCQk;M8-R TӦ ']<]&-+yjxbs:(cQc&<~z ݧc=n 0MMTיOaAHx.P1";g)z2`p]P]s5roxVN$o&-PرEaBϖ짽nDH mhv-<+ %ϒ+0f~5mhڦ_C}t`?,+nLZ?@"g/a)MZ+Iho+;1gEA۴EvP%>@x6_7{ueZ=U\9.]8k˿rЮ`ʪxW3Uw݀& ;LV.ZN~뿜Fm]-WU.rm_WaIa]Wnz7k%.??5vȜ=W;<4kn\UdO03UwS^;Hp^@IDATtZS2:yn'^+?>{7zϚ(߷r_\FLe+z6mK|736𮫏I pFt=W:C| ڢ|y|1ы! 8B=w$oF rhpm``_B?@{o|`;c`a|  p/tGfTfI+`D`8|B.1I# Yt|뒾#V n[r-`pc~х'ӌFy* O%T.F Q2@Հ,We9yTHn:@[!G\DslNy1%^dD1)<zlzs';C"0RxQ.:W7*Peu8ҦyK4YCYSo Y9sj, @SG>#_'^  ϰ0F<6~L͋ sDom -z tlnޙ PG˦x.`KtWF l`KKϝy%t}-ĚB~ԃA 4[d3 H4hƞR#Jmn&P79yV}%V <~RV%7$kr̵2X&7 qtaC86:\dgpy&yR1e$G݋Ϟc*7?5hUd&f)xO]VZt\7A 9d68 S?Vp--pZOziĚXa:; y6h#|FݤWvs c.[62:M6 5]6]prLz ה/,^r8n! j=.1B) E#?>w1##4nb20:zwcpk0Mc6Y=/3A=9A={Z؆)XQ>));#7`փ"X;gQ6N87EZu9>^U{l~K ^9GcY?y == ۥ9^q1I#aJ]7\swl#}fn3/×Udh ֐'n}y e9H@8tmôoM%T_}c3u26]t_w!yqc<%`7||{Nn4պs~h鮆?AnG?(mδ=q aaLoMk{ʺreٗNi m_:dUYP~olVqtոf]庪*Y94*`2.;`rjjm:2 0YL_կ~g>Au<3s9\痿ꚁ%yw7V3~ʮ.]ʮ+UV*˄iWfrYenmf]&%3^ř.U\+:srPGLvDԏar{.=|/k*W9 yf׿uNĺ4]N׻ݱU2k+)_1U9]^.^}T۽O^+Y~.,Yy^'?*#{o.U\vʷz:)vq{5YXwY4z&4{^Y\f>7K,YVvSG9M{f??ȯML$NNWcC 0G<ԺN2,9K䊗k({tMt@G8 qs 4"M$44kZ l^f /hz^>8mZd'3h`a<Ka(R_ނQu#To|wg;o0F0DҐPo8aso~ыpC=S#m|4[1Ic&egC?-l}hc I C6<AUL X BV98`R04i$~Kwf9#KD6֛śL!,f[ǂ^9742*=-^8.跽 h4 ͙pe 1=3c[=No,yǑI&baiUQqmD*O뀣(} ^.l]2yJRc~\sqôq`Ix.`!HG hZ|z\ @KwfJ^Y 2GMtY8Zdko!4Kyz_mqd$#1@X!o<o ,% R /<ښ89 ri_bj8^ZvM0k+6p"&#x4 #@5kFgdon݀nmgG^??G0r.m>*q+hccy:`;z%O2G㙭 ='`R `M&'-:S@@0[ T\38 0c㮗)e!ɵ`4&ʱO*<49ZOC~3Nx"RRirgId#ayxRpFU8Һ\@ 8^TE/ EqԨ^:O!VCBQCw7qW~x$(a PEOإeb]0YJZkh= $%PBoSrM$!BzezwL~CM%m Fp/$WTf/KSzCJHkO\8ʱCq ГI 2\xKWKxD cYī.soWK=9/azp/by~8] O`uͳd*UVَKWGOe(6#S1p/gf~~O)fpXϼz~ݛ5@hʅ$+ bh^ӟxBszS_YaIBi^D: 70Jwl:sc&l@^`>+&y|(|B0 /z`m `6ux:#cCÉ^^><;fպ/՛aT4=˦< >~s|jbr4l I٤͹BOš" nDp\g/>x8 X2 ]=v=Fx͘zttZGuL^{mWY[OWv z[95k\=^ lA&t ,3?3meܦ|+צ~~jeqյ.0:;NkUn]Nʺ":졩rv7&P214JOֽg`HSV'|vrv9>-;?{fqtrr^85^&M*mγۻSvlr69սZ~NW 6]9yc2ղ2>J𺲪u[ՓŷkގV^WO'eՕ.xj*}kxzs=ʪ2T{3Z_.]yjެf1,fi<2'T8E0z?1fk'̀d\2<=`mɽ*z.Ic~xm5*yƄuɃQ @a@k(rO|"FF4[?~v^x<(0;֕&%Al#V]xP'xC+8ns^]|oqٰ<D T1%E'4p)ƌ\>N KeTlVKNzTGl`r12 v&PRDm k˴_ ԎT%x4 |O1L#g-aoaQ@f#?ύ9Z eNOQpth^ҳƝ|AH*xm 0Fg00h蜡=l P gw#c,P3%d`- X,v)Axf?٣Az׋4=ov~ FY٬NJ@8%?(>:xHW\Xy~x?\E/[h@io%< 6(66@$ȹwsD9yZ^Y&:)Y}%6NEy ^=ECz uJӸB44\% 8Қ>:zcfICJwL`M.>I!:#"c1G2Gxɔݞ̡\n+b׃XTN|z @w $JB ; }8msC_7T*S}1Ys;;}@+S`Cؼb{XGK { Nc3mxٓ4C0%wfgc|zԵ*zɓnwW:(xgDQ~ZS@k[~Xf5B)HR7Y&e׳((1N\лA bqv=YbM`rfQ1xTon@wDǬ}-,m= y}C/`ijx,{z9_zt5чv7R)q ]0knvv& |_=66#[ xHu1MǙb7nr=@'&lv`oU-Uk&MeW: <@]Qz|ڝg^MI2L \np,]2U|5sOs@I|vS٬qrV T&%pMO2#w?=ֿ/Y׊QWPp7 =^ְnӐw1BO؎O78)bM'w,y!fټ}Ǒ߮mJSW%;7ٚg5<+8A9=:4GxM,mq*h_׀!wX7c=ΚwOp-2)n;(-k*!7 {4xI6bf%#s~zg?:o, y)uneϴU.iBWެfi3DXV=oQd?cs}jVCfuY'W֫>vZF2Y7MVAkueϑ9nIW;Yv~1+$% oq@__lug[Wv]ug^;kUnJ.[KW''ůگtjUNCN˪Ʒz:OV !:0Y-?P Q{oׇf|5y9]ۖ>{4{a ;Ϧei^٦dxrV:|f`Dו*n{߬V%M2Vy*\:ZV]ܮVeowӦLAݫU^MtoMiYN,z;|8+4L*)X1K1̆%\$kUP+W8Rgd _T84`|_R7z94$3TFihttQqĨ38 qXGwhV-WCA O ǑQ?^@ ?<҃b:U/(k G <3/zhKMln`^ _*]*߿Jx!OW00>y{tI0fjd )(5v|7HGw@P6{F{=2s2?^g#쎇wLШIOU= z4!|H=hh]izxdGy/)ʣhSC *ţԿw8jHx,@K$yQ]䗟 dž ,G?Nc*FSsUL Xԃ`q9C4Vk]ӊAS-Ou1쇬l``-a#<\zE& УMzΌuf7\vNLOBx|wxP աH0f1?33Vqo_1|YVSϔP9:Zgϟ3/5u`#4eډc bF)"_D/P·J#|-HlG ”zBoa@O ;Az Rx.AAzI]X7(2)Eo =j2>>[]9ido89Z=GϮzq*rmȓhAz~I%K9|0)vOs;jIȈq`VH=ws͊8"e#z 0&2-'^*^O#g/R]_DGx"X`#o~;ק;q3G Wo:ns^`Iy*~W#1ݨq9^KABF>˵B?6 6&x`Κ*tXFhr>˻qva]n@=3;ws.: #}oQq|Pq층źqړFG[#O:VOoL%(KԬf&&K|U'9cN1>DWK8`L{r26O/2?du, Lg<1g<jǴt9Ǩ9vm}5l=Yv5mi7=|||g`Ȣzkzܰ CVFzhg1$)y"tzuP9{=ۭoЃK/]oGm@I'c[l&p6'hc3e/lWRez|93K QLj2} Y=tʧ?,K/J0upw) CٱQFnmP7;%\{vc5ٜ% 6_8,\dsc+fMGm:r5q1ml)ƬqbK>Μu]*ChƦe ̃`\NYTTuLcSD 64=H_WI ؗrMzu_xGGZ{4!X#!ba%t4`['ݨ{kA7v%j]bяk6҈:L@/:Ǐs?80s%vI7hu ~d=3Ϭ j~y+AU"RWtbo9ù0τgI`" scXX(wm1CC;;^O9u~j%9]ɛ%wzoVw2"U{ZwRg]YN~Gur҃kMA&;|U.#+&iϹjXrVϦm\9m9^ 00W|h2[ŵ*)HRdjUFWV` 4n?'oYa]mSݺW]|]\Yk%syu4+.ӸLo+>9ԕm>=dzՊj:>Ty{9s5n|/5{n)󤜧Y|Nk}klCN.VIvsv4ŷk^+?˻a^jߗwfeFEr9YX^*UxU9{uR^ʙo;piUV*OtzVf6 +9 8xm=3q|i9tc{Cd,xҾUgAz`^t׹1+op=h` 6 ~7wD(5 Xry%Ú)@*dOzƒzxbc9 x1fO3%,X,9;]'|G8mt+Wxq c;   rǵģ_xd/|*8yȱk pKso~wU_Gh^snkWysp=$z#Пuf I^Os:cC\򠮆>rXhEr_- rjj?ȣDͩsCZqO+_CH6e3 q*֦F3Q @o o e+.hTAczsw_Rd]qfK .kw{}ss%Ji Bgmc Yf]K?{2 Sp/KW mSWYN=?3m/tK}iplxIbƗw:ϮOs=T7KK}f6RП=֛0\No+5Kl nLGs]&'ܻ ^2sP\" <ὒx=ɕÏ!st5ws<|//f΄_/`RwxU>‹4h?W` T Y>[ ӡl+Cy6VwI"'/Q' o9>/Wcxܼ|;,2N]=M^'N.ZxGptmrl1 w c={Jںpo]z$_Л;/Efq=f7iliOgJ4¿{]vDO6 @{T˙ޮl lFc3>yиqyR_Գǥ:%Ԛ2F[hۿ-3lF\ײ$< ޷RzJ|Ӭ3,X<ʗ;MkGw3w(ynSC;ofzc+퀒6l{>ڌ~E8zcs~SiXݟ?߄wh_`2`p_#CN'$J!F.Im(d17y1*f"M/!2#@.T@ؗz))7N:q+2£!c6J;d*5`a(q|e0SD=%_lzHWҾzax~sw/P#B9NP^\4;xFr dRA 3x9wFtuz]u#ƒW{3l|iD:>Bʪl{=y> ꏆQhMDϝ~)c2< 0#wa4 8S(M0 PݣMZiG ĨKd7m㞅}:ѡEܼkw8ڇϮAJo{푙} 0 2(MexMbǃ(}CwӿtxZ,' =m ڐ!mS .h#Gy@HKGc~d=+8eb=17yK$Zѻd /b`_ 3b.Fg!rs59ZӯtS~u!LVo[~~7kl{v 1d9ybm5* 8{Q Ϝdӓ~ڻaz S~_UWlϮ'1g1(HStU%#pFĽ9ob&u0i2(q]cB#Ó4HZtwh u(Gӱ{bQU`K_Xݽt]c`=t 絙}q7ye A`7Ge=^;Q`?= Ng\0y>uᕑyt $ި/屻0cce ݵW=MݜK.оhX}i|vPS9S w)*Q#_bƓ4,{kBx>tP>`ƾ^p<cD^}י#޳Gwqo\]vv^ 9#;{Z:,t7җ_]Rء{mﰓ^᭘wm>ƞн^l(7ὐ'uƗ$֐]ٻgB}5_ F5s>ulYJ,[cn-g_ Wm5 x9OݘNUlo9 &Ge\DG:z7UK ?*@$^Bosv3/BS =p I/5G b<";_n|]Ƞ ܔ1ߙn%!5~r;^T}#Oyn/,S^eo-RmGY]ScYƱb}86})J%fٌUΑ|c_0gZP{s˾/DD=.2x?ዋԮm\HʖvW& Iz >PƑ}/;|n:k}$daDP/xc3Sܖ _1۫纏8q >L:VFؗ2PAŸ}{hKEA6*KK 8C}sx ʱ  q oM((O,F4wZEHI米=Գ pf+7a``s@3 +?/\N܈c)jG'>t@~P dӋ3.e #;(kx:P6crӛe5 5$_~- JO}]\}wuP6>ud\cDi|k_ Z( X2[olz4o:D(';Bq<}EqN+ql|5!XNU0uJ/OzEw/WI/mJq99ep[7^ER$L:{w.\^F [˚^%}p=JE>C8yP<2D~ȥ%e+iǚ|qh)G Rb@eK yp0yjlhcnG豶1XњǸ+H?Xmyo* Fs+C:ˑozKi\ 9kGrw=LAXsUIxskL>]#|%>7>{!kP Do򢆞 }IoAmrzt>)_³XL.sE< m]w+Izl<5K=e1zR>gyś4[ [LWn`2,z 1ĚK/bͧ^۟u1 \ lG7Zc+^HPgQ^ {p]P &P;ɯ0rk4w w}i>eR{ӽں^0__)[Ȼم3?s K,ͪa_8{j92;~lo%v }̙zpBw#so1?9+y E'#cG?~Riݹ,e>=mcBWlk^~%KG'rHY1^7+.QGEW&Ik+2-yVuw+%O;SMoUGZ,O5Ǹ;}K_l:rQ''m}e oEa+tqU="xL\>1ӪyZFj|5。^{f'մ W5 ?n0YhTܗk)W.Yoiu"{J+Z^[SS/tŵYZkUoV?BUVx{eյYZVQ߬yu%~vloۀ==eט$.I/E5h+.؈/FiZhW @<2 Ø/F&liPz8_ cLQ|èec"s0Qa{73Whh áݍ OTz#x`/`ɨZչ47u6o 6.^xT!@[|aLZ Si#@~XϾ+_O?|J8s?dgLφ1{(fhܣL X!(DM ̑\y^~̥YciV.WormCY e4Xg:x3r?Ga=2- Ccuc`4Ν~(#A3(&MyЍ 3Aѫm-2勬50qot,:0+ 6Ӏ@#fIj*` M9 %1Vb`]dZq3GziW]'KOs2P zT%uOL|"-2LP<*EO^iڐDY@Z),L |z۩G}{D)qÔ q!( x\O=Մpd\}:AGH(`Uo_4h$F"d%& }58i8'%>J[[\qd|Hz̷:Zr]&̱0C D2rìczFW/a.[&=oɌGy:K{hz&X\$ Ck@.VDY_-.<[wȃB3P%YiiZ}b8_?9Tcx;=~ћu)]:{%z|kW}/]Ow{A_xnd"Xr6-~f/-X}*޶yBkr=~~l^_ @4Lh_q}W3?s`cf]]/F4!hui tww_bw R{ǯ$o?aBt _@`AQ;rӘ#]G9:_p_ XR`I_"`oח=Dk'o wVyo-ݜYaYNw߶Ix"6ɭeW/+vKʣzv>a <@+vZ㗿-}zQgVy{:.fRJ|Vϭ-WMo'NôRng/0i]ڸ? >Id??h>UE=E7ro}sI+jz_UKY =T8 M m~n5YIz0A=aw#ԧK>%'qGq{\gFB/:+wn s~/oeQ`E]k(Krlj]O6Wk=!8ͱhk# ݘk L^nH8`Tj iMz:{& +yԦ NSͱ`ROeQLcT&KӭK=z9@Ïn~ՇQ<:Z R P:qHwp~R48AtsCjzT6CuƐ{бѦPE7@h/mQf(xT`m4<]J7i.ZNt^ 8qў:/00kѸzrI.eo=G 6 yoPH#!љVJZ/.ǵ ؅'=G"t, >CaQ /q>uGy½!{<@`AAA d/Р`fENu:@?XhGr`2=>{ÈE$xHhzWw6p$a &=0N{籲\Eym:.]CGBA+ֱLC;2_'<9\M|ɻ<Ⱦ Bٗ\<9?*8܆V@w,ҧk($w_/e+urc~y*K΁{k_񬧮4>Dݥ~By0ը6,KaQ`Ym{d@Ǜ F֔Si}hP,(KShv~n%Ü/7uڗ_XbuGfܳq^a]5{&or= ӆwUXC9m/ۤƓ~eق#[XC7@gcm.!K|a-ݚ]NQNBvZI'x pUvt^V:ʛ]zf[S-H66_r,JG1> >Y|l}wAPhkIj*r[IiW_-8Enok3BiK#e% PLV:]ZmoViKқ'[mWJیAʶft[*^:v;M˔wuƗVlrf.OZ]˼ uZzϛvGGarG Ue8/z_x(q͞KZܷ6S}=φRo~\[WDwzzSDVܗeUVyz2罒m7^2ޗϽϳ:RZWku5_t|V7+$PF[*UVZŷ*Vee:[:uf4kV6?Un'n>](l` `*y,Eډ#8a)dB̂.|fƼOi#v %-)_cD=fĸ{*^+JUn\ rwr9`l<1C#|2xBSom!=7xT!wGF2Ml\h6MCsӻgXhޢQOax?ұ<{b㥃Frojk#@7&^ <ڮ03zϤ8=/h.`2 DMwmf71 sĴ ؋ ؁={z q4$ {-yj_u P@9@oDƴ7 p!ݴ]@g˗_$R0EK@2 }bYJ~Le9+GQ b @r8 IT >UK("WoLd߇𴷋yN/ OD97}Gf6?m!h]5YR=%K?v||3ϟb;vQxu{S{_'}ti*d,a2ޗ9Zvyڡ>줃xϥY^x~/}.*iGUG~mE0D v oWѪw4TB1\qʿX2<˛, r`C3X:y$rpd؍E8` zovZCR%1pshTH{ 9qcϜ<ƻLv`NtlGcZrjxe3d8V61H&"ܡWhKg=L F̫ln:% 9NZCG3ϞH}ޱ.&goo>5G+DcrBxI|v)ArtЍXmJ!uN`[@xc/@pPG_zs~$v%L/<<2Ze.ى0$wYy7ˣ<+ҷd< ӛ9?Gi H guFIO{sɁs;=:!x򅂴F MbG|_[zCe^6XWr-C]̏'›o97}tRO?v%ҶS4dZ]hc- '.(|>6>}^ϲǂ't_򸅷]_p,K<=1@z*cq^ϵyxx,MLN0D,2<)fc{Ρu] ֌S ncLcR\o!A+cbnܛ\2D~N壷Ԩ<=} xJ3uff}u^xȨߪ%?Wٵr؇g3K<~WφK0bdxnϫ??ύ2}ԍ'ߚܕU5lGnұ|+/7WҪX-*OlKI'x"@u /7L>(V|Qѯ[)sJk+~_CZznoUUuӪ[N@u8{jj*6l $Y7Qɿj"{i~HzW7Mzŕ^[oW׿/ձY=ߣSڕیfKkF˸ڕ-ezmVJYVhWi.O4mnf|=կnmGȽ0Xk(q͞KZׯ[Mkw_Ok\+<}yMw\~r_411i\ʵN,/{w^\2%}4VSV M%.UZ+:(zsfʶlV;- ZmcVtZŷӪfm [SmfKzulx燎%;`ނAa<ԣH5*m&#)~L\ɴJYl+pCPhEeȫ2Lh8ҰQ'Kjd=KX `rݻSx yD=đ@G$0ueVӟ0W?w+%*`r7 [cFoArzY+Y&h_C8+:5bSjO!Wd 9=)G:&>DF"h\Oleo0`F4I1+?[ bd9oٹ7-|3=܈3!JD~혶=,x`|GC?(9\|+&JhewӫquR-+zsI rb.hYv.ckϮU|ǽJs(Bz'/}7]ZﳾhxKONH/wox9Gg'NBӼp>]0L[X pֻ['L_ҿ"B6 M74yu,PpmMF{X^8/ס(ɹϣ=]{8b]@4}AV}J袟=&PI0sksA(Nu1R]qȾXsajm<@hE^ˤkZ?!ʕz{p+<}`"l9@Y@Hx 9ϩ IS뼕uͽ`PF ۥ5ear9z˽^-65JUUKzY ܬ#K~؊|Y,9z-*/%ĕr5}ĵ[jnJ&qLk|Yn+cY1uPiO9rHkzfqVZUfyqRvە1S,?˴Ko*^;IkUUN)moEw V k+hUo ?ӊ{QuGI=zҰ{`.ߋ5Rg߳.F'nh$1 7i Q*@AqH*VhT&Xɝalֻ S |_z SGSi={ مWә>H+ -`ܾȱ=&D_x{3`\85$ѠnEzw[a5!i\:26 sϥK7UNFz! +ho )nƶ}Z+]#~zqW_?קH =}Q. D_ Ļ 2+Rv pr/`BXG`ULPtzT@=6zuW#~-Xy/*a;Hq]u(aMw/u/4 mAS~8)OI~(?eܔA&@(C(@%KGAE-ϘV32% Y>ygLDqJ-FqC`m@ G_`=BVY28!ܗ9,Ap$> 4 [k;+=|U6t?>6∷t tm/ΨL3s/se !`}K;pZ]wmόE[l0kE3]p.07:t O^M C'M_3OS/4t0(p$%w7^u :e`佂G%Ͱ~7Jy̅+'uU̼Q =LZv f%?8I;bn (38XCh][}x9ŵG_[ɧ>!1Ly5/\%Y̕ӳڵI'Az#pdxd=a45GBFdȸ@ Dգ3}D>O [Z0nG޳͢~ʲߝȂ㜩ø.^vxv_O2 X @$e߱mr\iAɀ=_*@gX1&xq_=)3 :Swg$]R^հVU5Sz_-Wtۣa <. 4+mT琝 `r+>}у̵[Y_zwfo^gYޒ^ZoV WZ:s5[Ӯʵ*۪\Vtv߮ivsw;1b [hC#G#:)Yyd_h\ P0{ :Ws)1I0n) 8F]4bK]GII32DCQ Xh Ko@IDATy;a. GK @ru &x!Vd{s/?\,/_'09E{߸f`&lrLFCPA)(d{."2.B?8"Q(M<'ɠA<:r`(}q25A^4*߆~zz/ D>9Gj0 -=GkUvs,݉B4VNF_WsxJ QI S Knr>!C3)+6m ^ncxoFgA[oL˧8W~t{92&"BKtҕab#=SAF=aC'|.&GiS\mIo@iT( h@ǜ<1>> L33ҹsxJW9.^ xJq&Y :A@c @y Eb8r@^0"CwWcVx#2U zm>QXA>\APXG7u/ˀUp42$& =TÿݕLN.,}鱗-ք.y"`+Uϓ5̬EϟLta8ɯFd0 Sik;i1 ^VsCLO7~.tRN1'A|t/Ǧ{-o>2G{hl{SQ ht<m0;E ČlD-VZ=Rv!a0m6kfdOZySBq0֩JCeP2oe!{& m^-Z'^-'=>%:&]ۭ\QzқÓlxFx,Xұx@9µ*7O<^ )/B_c>/BIwIǁsu +Rr\48$\0h(1<4lK'VP9* F^2I.ؤ~ dO5Xί#5ۚu/e87+4y(5^J׬f; ub=-:򵬞^M7S*8S[/~*B\ v[s`CQv{_1o_4[49Kآ,^xW1pufg( 3X< q2u O薘 o3 [VL_`t~$__8_#./EtxU3?#n/\u/{)-CoЩ%CHP@YH'Gkt?eI}W^Mr|_d}>r0Ǻ#/Mr>#{>~Pk7X.yǒ}["Ahđ_aGo/oǷܻO]pGo|)c8Gx1ޣ#HE g6u(kU\L p|9|==)ӏcɓ>9 @|$P$z? =&YJ{Q.Ǹ|5scN s(Ti+BQCvY6 1-nG#G@!֪]Âu˴[WoF}YzG\({BHߞNZ-&[˘;l[=_yﴞj>KPAQM[_j|𸕫ON[]gULn>}{Ud tdiv%-תVf/iZ/o{jėkNӴBcە{vB]kC; RԳ:Q6wBf:Kck_ZyܩLvPh;67Y0|saYWʔ<ղ%Oj|gCF~|ɷYf25f=%X޿KEbzF5z_W>|=fVWn^u>6k5ONz.OVINʴfyŵ]NhR\[]ҽn%O5[*kv-u6孫W/l09 ȏzA\Đ0F"O2 GaF/hkzXn> Oq Wi2y#."RcF%xղf-`KB=PMx¯N>{< pDt'7 a\<ξV~-]r#ovo 1ni,+|0&F#i@7>&~[FPΆWDYaaTid,e%GoB+iϥ'e@?Ӹ/E)+lg~'?HPC'bdd v3سx9|`:xhOm,I>(E<<Qʵ % Wzs/x HhG:Г>@xz"{ 4“C[ aB_^Ssȝq 89lf1 xh ɮ}@>O @\| ;mܼzZF#gM/zш:xjl!tyj6< [xI d~)/'1l:ȑ442 :髗yIΥk= ;Lp5“^>;`}R`2cyW*~6 Eg P qnFL%X"öidN7t(xe1SIn.@HR| 6am^ 6z7;=ru,;sՒ~PgTEh*UK7/2x1i84MOh2 @+zMl$a4,C;+09b8}qKz> m▯UdH0>nR? UJair)vCìq#iYO _kԷʩXXmAirt s -lX}XL~Y+/Jw`e #`Jp3]>{6g.'s5zaﻌzgϼ?RwW/џ|uN!t7HT:C&o '2Wj=F4LVX2-+wuu>1/(g2< 'ܺhn@#Y:A W^A;}D<˒οd ԥc\вG3#7?qr5A+tZӃm_: i# vAOzs=P_aP6 (7OZdn>BvqۺHs6k,n(N9`zA7qys7ӍINX\Bc%_s<թiXdЗoك ;u\/OAF WͷyJ]u[$'t f_\K^E?s ŋs,@z Y䐅{GX_`Eu^xv_(wY5o}5c<`ʨ5C5.yX'򰉽M}t{W,)2/5>\zo YGgq!Jc!ʵE־`=ƣ<9mD{icps=|GճA^ۤc%Ɯ^1ɠl{G6`ZK_&iw׹o߭0"|R/WNITC]g穖/U^(׭ЭU^?<6>DO$%PKvRۗvtڥ|vx)RG:-&mNQ&gggbPիi߾}QllVg%fۥ=lzꊗ Skx+$ڕmn iseZvRzJfkWAە-^oVկU%U\5~ﳡJ\OO߰MV8CI+NL11pyd4h#Ө@Ry?K[0+Lɉ9{KKLþY2m`ZbO!zx|?}W'^y>Mܟ8>XCP?L?>t%ų@0]T>=QaGF1"hT)~?JWNoY q#Aq5Ay -LnL{,Y:"=gf訟ɴ1ax CHZ-_h5@F2~~y:?:~s/OBm!}"M K&틹Wm<< ^ qT" .WWB"cFϝd< ţ{\x8ib|> @)Xu<&SJpZ:fs AӀatsMz׊j?V9C'O0gDaci|#V:r쩻[@= lt|IJ]<'p -`y$KI%Wӂ?d/ePv1fЈyeNFeoD:FCCNrZ ! *"gIX8  J`GZ|}Ib["ʒXs {U][c)(r+x>\k:=bȾ'Kx<1"H݀;_3k齷OoU`t.ul_@m z7>el2w^ɼVQw Txmrpx= h2/z9]~b ٤9G^~+]4ijy]y>]RDWoKʾU;O= O'<ƺFۻkgRyBҖsvc8I[^— tw*2>d׻(>"uv/=:H ][e2a盧;-Fcȷ[3Bx$?W/Í{뾷@3<͞[ek9y'ΓK~羽%:lFK{n9 1:ln@&yNծaժUUcOJG? F3nG.Ĕͱ,}KszZ>kAյ/^)@Զ?F=:J{ShWVWjBŶpVaJ΂1`j5} L I @Lh|isb9̓ F}$d wB4X~<@(sXMi7Шu: w+~'|~Xl>@rm_]O6ӞSb[ao[WRG]$SuusKNϝ-kZS*n M4)]iuˑU udբu I~ՀIy:AQw;ڍvqUMzM|4DMMn7[n+uv*^tvso#4ڕ|U[m[SyT;${)u4La&3[[ou)5H?uU7.:ʿ\o^-`r7=.2ߜμål RШw_'N݁qu:%_7rն6TUpSowK%JSnmWZo=ܔg3iMeT~u]]rlJoJCvWz w5_ɿ:J;+MuRG)oRFʕ]ᾏ}cwh(p  9K C.Ѱ9RuBBWNa@U&UDf`PDJ68wjl#6b!\G 8 2ϖP+Q9(~SO?'Τ}[`I rA7%ίR9Wqzȥ9ZIBYrukU(EV5~(IW] !GX ܻwL/`,1n-|7wz\,Hr% -Qz͠VL=\_;^{zi @l>-i ,Œ}l&)S{ ;r {@3(jgWhϭtȥi"(q-o _@ L ǐhe\1‚!N-,"*A ڄ}x5!?Zfu/ ?14^D8@w Q찈*'eK(?vn5jSkZUA·oock޻2]tv?utOzԡO)Opԡw Ug̵):j+gQ߂rs \l3l(/^J,Gף`1ƨO@8cs֡Jk&*C)q= <8O(OjY_> r7%U"ڦ{) ,>ۆG@$i@ 4I8} +#mr" |@tvaar`:?~OrA;\PZL񭺍jb瓀[ JZwWz~g8jh@da}=bv:;zzW| :Xn//b۫xFuJ:{?t]ScE~,oXP$PNOuE[UybKTzU~(PGEۏL1,41~ ()X>y`: x䕈#;XAI<4Wknpgve+XB"5;}fOSЗ*tE5qX[a0pb/l+c55O& e#Zoe[׬ɸʘk|i+0orږe>H'ɓi`K屷jz;禯kd2I_/Z {(Cx#^w"¥`!I^sX:zM?$|ٽ놬9s6hg]^vZa2 K.- L |WЮg i{+Eo۵uڱp~!EGYXLj92^`B$dYA^%AyDAX7iWؗF$ye\{0o z\9~hI&I x9 DZ8/~s93[a Rv4-Iy"|93sx%3W )w M Lř30%&ZEz1b@<G^;3S\'i#Oy5=I\|gb,U"39w.Xogxgۍ}%ǵRbٱw"&}ϖՅ|riMP6,׽X'+X׎F(tK\oW_=f ů)Ouv⣚g 6J'm['VχmNm^׀ɺ7Z^W|e&@vȪzQ0_/WrW.e_7|"CnLQ)ґn/7''lwTOSZ!wwwѭLSf䥩lMin:w㡗ti~^hjum%[^b&ku֟TO=0ѶwVc[Jp)ɯkorܹ/F{Up'_JZ5%K"h}9yd[| 3Mu7izMeup_KzKzyP>[N܉F ͔T[u*ۮLҞNtJz%_NS>-6BҮÛ]siCf5S]/4KNUit 7.e6 [Ȥ"j]p*gTTHآZO (*QQlTji R|帶s(Si)Dg"L5V}.;Hُ'O#dvv[-V/+o)0cp"l.XJnP`Ԣ^o:MŜO]^N_H? @Ґw]}(picuU)-b (̟YW\+,??Gˏ Vߗ}j>$*Ctdk`H1 (lgxz䩣a ?pXAQ5ƫ\<lU m ~0JdiHu4N /XuDIuO>Hڇ2jĢ)[-0AI-D-#8kT^ZXFz9ͼx= `O2cz8 jǶǑC0E} i 8km2W6NO7 0^ͣeՕ.14χO9h6)qr*UD-:jU:vo,u;@&_kY^+rX$O}}6ZRfA ?'@D+YV6 >SzinIl6"W3@m6,UZ<B}ʑޟOo\@UxV)=slJ d IU.dZ?mbE"yL3):HxINc];|wsoj=T~Ɩ Ax_= aK/1̴IG e!ٖC`^յ8σk2t0>:$I_#*ڷ $FIO+Vp3Oot+bѰ9>|tܬU^)S\(AΘ\G}Yq >$s'= 맨ѵV@}#R}b8WK3G!ם\=1;9}$&CXHOEn܎|firyCJ `s@iYU0@]䁸c f6!''D9Akkqk}ig=uF2c/2#Ef8oxC^v-)\3}Lqӗ#/Գ>@bĩ8''3r_` mr@$=7 (XA\GDU1Gn_@pNh.QmAe~aLsKJY\c $>`/Yhsue6b,h]8}CLՃ>X;oTkZ /J $#H8A"Q& jXg[ac uxc&9bI?bw2$kۼܟLM E%@> 0g9|7b]tHKUwrܶ_{Yg;8y+V_xݓ9v{o[\f[Wi=Tu.&a#V&I4JڍjލXf;zMuf(56I5Pw_/o~3x-ַ"_@=_5)nM5u-vSf6)ҫs<}K_jXu*_{%w+[ޞN%eڅu֟Kz}%Ruպ7_K._5_ʴ|ȸfå\'Zz>ˋX =JzUW?ÝK| V|j\`ɣG޵RJpSt%oݯ5=:J]uSz|YOztNy6_v*gzNMeuJoWW8BGa}L<պV[z~'>:J{]jWU WV;_TSچ&Q,Q)R'TV\el$FʦT tB'eG^BEE}% g8GBV*.닭 };3OI~я?F@z&7RQ||NS9JZLnu:d@:!gU'pӢ$ ɖPgU&GNb8 QV9Dȇu@kڀP^6WߚOK_aUFEޚ0Z-i93O4 3g$M^<}xw\;QK*37@z6Ƶ`HQ}hUh`Ra2@<̣,lYh*..+ڕ%" @ݱ\3#*'GOLINr*WpΤaYJJ9ɳX~Vmu pzNϫϦw?Ȁa 0llWa='APXk"1k9[D{Y•Jg- [-6޿;}ɇ1O=G~, W'cyo_FzxK^mhƬeg/hev,6r=rh_g?$eY?>d:H݀Ieuq 2& VC3='HgjY7=9TTy:8ؓٺ/ m\o;6wdڶڰ*=7M-R;f_Vw xy#Lf֯ݸ8 u1)ָݫHf,, ƤOrބ%Y ]xsu-9Ǿo?iM{hgOf !яol5&E!ƌGyzZd\uIƐWr//[h:{@O-1gl'"-1ؗ8#([< 2k. g PcyH~" RF!>c)҈s-c'z\הX ,`\"}"g sc6kz |lw87;hWu9z$qp4<>5#I?e,ug1a+.­xP<Ӷ[ZG;j!_Fݥⷓx N t[&J[=;X{uK&<ʭd(YHVi\ZX3H)U7%MzeaXY4^|'iv/Ty_c/ *ìU׳m6M:Me7mJ &z#M\7`9uUD+~SӔޔ֭lW߿WmjW[Rjwaz;z_o톬_K'"o ~U$7G>Jުϛ rj6\x ZPř^dh\=_hwzlˣÇǞ[.o=Ȣ]Ҟ—pynWĕ/n':lz;KI/eSNצNiBӲWD^ JZ+%ɧ.WnRF]i BΟqMm$fo0ٿx5Z<*ȹ?9k"EEҚЌBK`*tj:eٯ9n݊H(2GEae m~{ӧ>Hz晧#QoO@EҚL={_Nӹ.*v`Iƫ&L.5,ɏ7 (TUy'?T_ѽқϿUl!"~!ᒦl)xqQBZE]QE/=ȗ!B!ТDy>4?*p$ia=#CQ,ɨU+^*8iF^`@IDAT?hݸ~xS-!ߴL̟ +.h^VtTZ޲vS: k R*Z\UB PB*B/$uZ:JhAq&\8p}j¹jSrc\3'w \UXKCcPdpo\JG⫕Gϫm*5ݣvfL9gs$NT 宱"Ծ2w_?"FƙBp'q5g}ihr^a5\H?HFz7ҹW7s xZԾjXך ~^-X2u(=gxb=Morye1c"3)ŅhSq"K?3%1#%]W8e9 h^ )+ޜg)4\u$U݉=io&&Y7uλ.E 0YK?ǕsM_Yo"?\#am_(ڻJGB|qˑ%Si9|×fKUV.vϲ*d<<=:4Nǁ\e;9v˰M^ry XW=6AvL32f]Y˧ "KP@tٷ?eig?M>F_үFw\J4q  _L8oW:uPUfSO`Mٛ<1nundq]c3X4ߓ\-@\uNfk{=Bz&ѱ]5ǭgYZ*{vUNjw* Q=[0/bDR7b5(wX;}g5y--_'L:tW#[Z%M 8E]OW3"h0]aMNI=CVͶ=6`J"/xC:ip# $i֟{%r7OKc7'`r4R(y6юVz{=sRW56ZZ_wU|4YGJOWIWhT%_I3_յ㧗`Iiխjz5,(Qk }ٶuWUiw E'PJs3I:'.WةLxۤ떞sO{wnSZ.O^gBQR>omvŕQm}cw=毠0У)QERU>2qERhMP ].+ôŸV:TK+@s*Z#a9̅\"3߹srfEW+PsL/T>Rv'NrcGN=(&>rhaVn\x+=Oϧs%lvh p?ʺLns HeW[º \Q@i+BeAvFpllχO<\a Z?ҚV汊$@+ cj}Y\c<锏YTg1M@C<ۖCCaUR|VdζC*ܷm;WXW贲v(i ajLWR!I+:A9,iMq~;-<< @f Ì-dL[W̛(.d bEwݜD)0h۠?s0=P{V"B8WpZ&0DЄA7ZrO^PIkt/ X"QF#`R`BE\^e#0; >H-{E6c ky]st]#쳁6qQu&{`{Yg#ǩk=>bF#G9y kfЮuɬ5Z=ʵܳVNQ,!-L~*#\Yc'gL~O3' C} ҵtҋ/M/Vg6byܼ%޸՚pK2G6}>~ß~{_j~_|;8f-U-~Cso-r -_.ob@;FZ" ."2dKJj0x߱N&xgd+g\ǽs`3ySq_孌QÝ]B2X³W童qm,} ~XXo}9"=1OҋU6F@=tʏ?)~)x2 ,${e{XD 6g{ԵR VSD&y))^{k0%R~ ܑcV&>/Bݻμ.}^aP(m+ȯ\JWq7u |a1Ǚs6ʾ_T{Fxfڥ6V-2ikX8e9N 3` hڵk@VGVz9}\Zɾ2^J6(qׯ\M/_% ^[:iǸbc엃 3i1YݾxY8/@&qnoв{\7_I#}ǗVk߬r{Wp<Vkaҽ\^}{~ukQ ;1V=Ǯ2%2~_XJf薲j)m,t%~#~]}JhoϭѺߘISZ ֵ|{Ik3VNkf/BNgNϝK]^–Ljjj|=쳮*zYӿ HJyǠA^_UW0~`IiWu+v֮o}[QJ&SXȆ_hYy¬d] v*S247Y~+Me:THk7_r7 ,N@׺3ȼ{ޗ<%\MM/~{8+i^Kv.e*0c*&,VSr?J5T= ĢBV`8ifN2W"r .6\0cAXPV:~x2=؉Mcac7ɾd# 0 /~[/R q7 ZPqk~_X*#HNE WQ>_B:th:ڛkokhg  }ܔHϓvLG˽i|P%W rl*زT]@|ԡMW[Kt$ TYQiEMv?FݦNÌ^Rf1LhFdu&4*ҏK ono ҂%IURKXńcIke6ZL앍Z7Ӫ uמAd:NӷWN*xY֋+޹Cnj\O`IA7]_R^Y SX'sP!-Լ5. ڷ-+B0$M @/`4%2W ;_v|Da"a?Jd-\)!׺>]r;s^GHMH 9J#e Zxr2לyl^$;EÄZ~gҋo!?aL,4rSyW%[lEFSd.iS}3 GI{KV׿NkueІV??c4|.Ĕmwr$cÞ֩'Vuij~kJSVYƵ9b8 S* Ri젠`QìiXt:|뭀fhUfκ#\E|; k{Ywy55uӰpu_~ڝ^=;>6XPa%sK\/`<ӔZh^suNso_J||Xs1_,or(=|b2=Ё4ZM"_ٴw@v}&}eK\-]%oik%s= }X̜G{hd8kXŕsWfm^P8u խD3'9Foe=Y/²4łqB?--DzfXuZN| Iȣ{ *@aH`3@q^l:TB3^  tp9Ŵs_s^`s0sf0#fj6M_s/@ װU󴱌b_88K/O2Vsa=`=5(4˼ #N mWj+<9unN Ղᲅix.dwGV'9hUQtrXf\`vggTk|"'ӃRd7MWXuEdiVk{~ӹ;fb=C奬iL潟1N'# c7{u6ܶ>!\eqs8uP!,LVkqS-.cʤ kW]ڍvqWW-zѯ %ߕvA]=ʼ-70ѶwZ;h0M-Wd^ʖ(O:x.e~U/MUd_LցiKT:VEIݳ>~*V;d]M51SzSZқh7uTf3iMe*P:<WJ|M7YQUd/ej٪ZhTW}Fײ6>Ldm~~ڗ½+~|SZ5_S]\ӟ)0sl>W7[O)ߩzg&wɥQñ/z+TM? ($' 6z|ˠ<4^JX*dG*3-[RӯzT)[QQ鋒b* e|%])xbp_Kk_7N=t2hkIol&_mR~)UH 6 fxgb(yUP&*J@$WYR9eB3Kx*\2ԫ$@#H{n|͋2H\7UI`M'Cy:kf)n.|ĎtX\H @-2ٶ=ĕY @\M}(qL>ѽq=^M_$WJ\OF*$!޽ ' ~X%:[,vG=ii`4Mߛνs>5$+@[ˏs̑,h:K!5kP6|1f2m@Yi1s.Wc؏a;cur"ΪZ`cm;M{([` E;6 Me+ X0YɎK|9Hu+kY'sױ"/HSM>,FҙW],Lj18*;yx"=z+T¥^I7~&BmmbFѺr\ww<mMٵhy ! n-z%a9q<;[C[ eiژ"wT;Z/ WDZ@VҲ<%nJ{mN#f_Y/~`¦kz\K\՞IeaaRsu~0X~(=t{ƺ~2Qsb@o_a+bs%7֏EE^d:;a-CgQ0A/??4ucvmHؿ"O \N>LW9_v0aeVokݕu׼]c8FXg~6}ďOytD$ <6<֛azĶ(n"58Ya 󮩬a{KkUtgL(SZE{l@B-;Wr|M$JgT%]7h  `I:BZ~<+xuf7{kO';4aeapd](@X\зK9gR2u3m +0y3M'\a}C4jf7<ڿ+=t`W9+ KZcW: W1}ł4g 3݃FHi'=?yptJz(1>Ƞ:e -я}qpKF简x!42g<(/"> yg&2^,,PEnc iqP_J8+96}!2|ƞ=7pnk{Z>x_FÞ/{PXҗF'Caߠ/] ^@x{ \/c('LĒMP3y=4ħyGqMk'^K 9 d~/N;GqwM;8xMg1su:1l+Xqnł3^rn1\H缟ZEc"ҝ\$_p?BK M5y 8rDSX %>doqAA[WVʚܜ?!bKۋrZv5+1 [l|>LtUgu:;ɡS|^huKi{AG[3)elIޒVWTa{q& j*G WKlZ;u ;\KTo"w}W ݭ&YMJ))gnқ'z;ugro_xoJ]һtA^ޑ;"kUIU~;w^|/d}T6`ZnW/|TNO]vU9Vý+e~|SZ5_S]\W0aZ5l޺+z/wױ$X|%o/~S3\moIkWt|S%F RoumWi%ϋa,R4yTXB:bsX "U٤")QOG#.̀ς/}(ܣlj&orOOPVe'mZ?QVx G=nVAtEWn~̎e"ܮRmZUѰ0@'|W`qXtҪ`9YQq ڋ&ƹRYkO^)DEW)9>镳%nj?xb=M`,e,J]¹tEp5{O{4N<|2_^KGK߻>|e-ڷ8;gu Pvٟ$[ N@&B,ŮDؓA*\@DAz+.XC 5Qb Y^ L4~E?޾sXv0!*@V7T:1XZ@>Z2q!.c1ntjAM wS4)X?t" -JOg3䛾eI, pY%u8oJ;7mjώ&党:ttMqhCނH2b]"X3wy%Z2@W@t#E@%y9+ms̛?XmiuGxsXU[~E8ۊۊ}l}@Y-;x&Zɻ!I+ѯ5d\]*׶bi2yҜ}@Dn_kzvmuǾt3m(ӇG^$I}?zk'TʾxRzϦ:؎6Xr>i]ri;HQy4Ocǎ_H?O7t/rėO·GqC4r("*Ӝ*}z͓G,@"o\ >y I#rf$s1̺j?}A@4aUcDz9_v=j~(uyx^mhxtǔ82wsQ-Zd(;T-Ik{I7w=l+[bnی#e yrc9{:Nh_OϽvQpח 8g?:8P@>@w^z3]<J^8 Pc-y^|{:=ǫwj]~8yt2=r|_:5߯}a~E X~7hj[Ci{`Xf~w`sp:i oc-~52XGnLmK 1fܝwZt{]6Uiԗ$myڿ˜IbcQ/{}ْua39p@k,#LJ_Z龥o[}b+}rQǧg?(} :n&o 7K^ 0ۿJݜ kZ/u8Op;Eia3Ek&}Y{_&b-~mNr8W;HqM?Bq<ܵz\ 1}Zԕ>BW|[F`"gd{Ե1b9p @<[i- 6>e;vI2Þ?Ǟ=uI葷YZP0{ ,k ]1`?wȇ>gcܺ{e/[ m (9(,Ky}N7^ɠ:[jcJ[L%_}Id)vF;qfʴt&{y/ֈ+uڽY=y:[Sz\j*N_}g[M:ŗ|g*HW˶+,k=Up't:=Wi<%\w&LN e$EJZ5T'r.}:\)C(r 0e0;,-+3k$H̊ε꣌5PuI!l詘.xAe֣2'JxtҎqy EWϾ~;/R-XF(%lx_Œfڨ'ߣ+>ȱCWL 7XYZV:MY`~|IϾ1YŖ@"ijV*UٷR4W`9BRe(0xA#Md(j A*C\ϸK6(ht 'z2A"/{a5Eu:qu"cgKz^G(PN d,&敋..+2ؘ08us.j{o)ovop.JHP.~FPؽ#=1[(r+8M/N0 H.*nUU.󜻇4<|l0SJg>Hzo_993~žր]N}K`֐󅹷b &\y{n`j:xd}pW}@~mVH0fѽvnI,LbzXp~`z>u)>]tA/Xύ&f2OzCGL '>a]j@HϷӕskٷY+Fٱ_w/Mdu8;==}"}O/ݟ׮GZGpq~ yo.M(l.~mE@z0mq"_H/8&]gf9NgX'gl`fbmHjMYʒ v5)sZ-iϹ\}v]j}oOnA^NG UmrZE*7+v_sk.[cqEdjKR*؋4z{ @9zඡ,.c)KgqSX{+w.0ngkX%aCb0u7sϥ/Xt5lYeN1O.eC1[d|\"]0s.9Sbu &ϐoRIؓf_Ϲ|IKpW@@'Ϗ& b?rE]|}g:.`=O-Q@{â͗.rOHGb"e>1K %Θt<]!\?&G~ο}ļ@5~^lY`D>SXv湖~-^1F8[uNsT fHz-5kyڜjj8`7|1&xIǗ#W_uz.5< w=53u^yj.75t !vߏo5#}D+o.g@ g"wx,v2]svy;-)_W}nWO\/N ܿt]'K^]4t|?(V[LS+@/| k{y5 { vMi{Gd:`[٦4JzSNixL*n $hkUd'ZQIzJZMxbR;kWyDCٟ:Ѩ׾Y& }_$(y+0noEVղhg?=W.5~jp4uc'Lyjx#!LY"hŤVT<CKٜU 4>T~jRU!L%HiUD|6!,ޝ9u0=GG>X:vxQjYA~aꗯqE xbS+0p֡lGq*jOϧG'\z ulm2rL˃pޕO~\kNȢdS.%)ILu PH g "T<]S+E3sV?~8n}ڜW _Xڦu&D#TXt4w7kSo/Ƶ*wD?ge @h*P.վ+gzH` P2:r;nG+D16[&U/}zU ОJ@ na ^'V iݡtp|)4 r V-ܓO5KIp5UB %ѷN(5:2`<+%AS&Oۗ^=n2VX*jS`#d%}B`E m͇@IDAT ;zH^dkMOXZNo>"ׁҟ;|t#,]޺L^d4\u;@aY SmR=npk-mNbUu'!*btղgxMBZEKe],lMУܶLyn" 뵈k0EPQQ_Ca>.k*6[xi )i%e zF#2In<}{=AO0f~Z>uG-6_Baƥǐpq 1*|cߎ> `a,L>Sgҙ'N1_VX7?u5ǚݫgIΓaN`zYӵ+; v9z`zSIe޸~ӷr @,󊠃a3L9*h3[ECU^C,Yy.)y/u+H*Y+d(kϥtay{kP_cX~3#o\zZ$,MOګ[Xų@JAn^;&8)ަ Xdm~/v\ J<̝( [!ݱ!1ĦnE5gM݅ɁX/b% ,LNy62 s-ڷkGXJ{va-=P)wLXI@q^12K sgxYbK\x{O?:νrz4v5iX ":; P^L01%ߞoȾ_`,76ܱui Zm*_X#ufJVpV*S'Bǹ&IS6s/, DtokM}yz$ClOjnT+@>!=2[-^j;EWOR6yg rB>u]ZFȎm n׭&_ȸ||wlRn+mT$גvh+:%>n+cz\ooBgҺWR#[mo.a.\R鹚),NizsSzzq^-H8^q7dݪd_*v*YL}/}ْZVICm%ᕴ{ A__꽃u+67YfӻDSNk*stnJVJv9Ph)Ky&Y\Xz7 Aǥ.&oUr|;xjFhWdv5kZ5_ *-^ן4M+CQ]>(q֑u퉙G]kOӾt%9Dxy R7]ht)S|ηL6^kkk#gY@TIІ4Xz!@V)]*W4+DzͶA*nu.&POS{k]{C>=5~.q'+b5&p]*|lh} `V)Sƅ֔>{2n'Χ_ZNUm~-&jQhiQk(c+36(rn f ]O^:W8{bZڮ|}$O7huܾ_a銼OҐF3874 XdzzPg͞Jj03=d7['m_KͰPܸo7p-YeYr,&e^J-IvgpoΪݻTЃ9rx*{%<`(FX5 C^2?>зi ʮ\ú*Ğ0ho"L~i;*@#Vjmb*U8˾qY5z< _+n'L`T#x(VQD *XOcujz ڣN^U#QXI @ cHC9 䕻oyF  X C hXaNX@Qݫydehu/?d]?' mu/YI룛wJ[gQ bL0"){gSgږYAV֥I+l)kY,g_%SGy Ƽ1kw3qh)Oе: h5ZGW`O|>7{0ݸz3;%rOYBU=)Me3gU"S/Ty^pE!"*6'OE&кsI*y}VeXy<yX jVd+\H.qe:`9_>)νRZ,a@@A9B=k%жyh+c{O4%-UWg$xY@!h+~W*\0j:)k4@\E^<8ND*s=)@̌+*W{*߅ci<6tx<|ɵѭӼaX \XfZ~ cĺa`r?snCd}{wz)]<<6? :ժ0kkLPΰOWF@d[C#!;fU,U>K_IKn~QZ6gY`d-9K}Ci侇~\ ߶kN{EJ#,*&L`^hMh,߰]ӱ$xv$}ĭ=<ʉ<7G3 DQ^se˼L 1$G&_,8f}kVbIt $$!?6h#V8VL'_E>UL]KNHo|~0vY_WxQ!kBJb{LK*iIC\l'<\~zO(D-$fVO ŕ7i52j6Kal;+b.^@0~1S!eZ~ ~Ase; q 0k&WcP#;*kKiG8)Ny,/L8tseJ)u%N߸'SGǹZW<9:QYІjӹw#E")8i{3-d#Q9{(m=68,ܺF^Z~̞~X兇"CЋ$|9BZ4xi_݋Sx~^ш)gu$՟Kz~F;:VRW +[8`'?@;ve_c/ 3@s; |JnvBNmm~u⽛ɷnt 2>wZoN~!ʕ?hp7p[ZW,`P}&seͰquIN77*z܌Kz?QHKG[O$txoMW[LʯhM"c3OGmmioKoKVH+:h,IpSƣpIY-};iX$ٔ~g6Y[hk~ыNC|һŷ؋vin7߯_ڶrmy{=w-^zҺŷ`8xXKmUZ/қSSYV,xB>0BOrULho]1A{TdTQ~Yb|qdF|{ 8`8 .h8Q4+xÊAKZ5O_WV:՛ V%Ws=0Du9{ "J>g ٺ 5,Xr/k;un֜ LP#G LȪC /[?9,%kgiY3qI񶃀I)C.Q=0N&=yrb?WnǕ \+xk;ZcS,x AWp~TtA)y{} G%H3[`˹E՞o+Crg܃!-)݃L8}(Ot' )7x7~M@+?4֯U$u])P@g8>?9<7LOAr澳gӥ7.}CkiU', ?f n  8X,<sթr19D_D f=MTC֚@7!d^NJm.+:~rNKotIr! [qjΡI6skQq,@!n[ JԹ @vI@/Y`@=@7Ey9]%k܊+R%sZj7NR>UqV3fƙQ`bAQ".{L j'\.x{x(VhܷrC!,AX Xq[@._l%49=rk44uoP.9*:}Y=?tx*zZ9= E%/?txa*N+3`R'gQFvY:8 hQ3&SrE AS k&yG>u2 N00O<\入ЯqE @I_x<ٹ e.AN8SG |/\K{mrsԽZCSazɓoۨ8s9,Sf0mQ4$Ӻ ndYid*:GWѾ& C47n=lo^#+QL+69~@/? w\*˹q=*{{f; Z {չƵ>fe|gغ|840p`Yzo+s0}Vz Z<aX_)UG_L$,F;p=>ֱoǹ*wN'NW o [BE z{&͸h,Z̵.bAkQfk?Z%/I0"\ =Nm?+'9c#_@+Ծ+W*Sb xd#..V$/J{(.fKz{9dԊ"f0/h+6Y5ֺ5-?\ky1WueO֮e ߬T0NN·+y\cJ/<|m`W_Y*z*o#@s]0}3<9I߉g0ܬw_p>R+lj[ Z 16؛Mhvu_1 j$zԻA!VFdUer,*AltV7o?7}9}Cθmq@ag0 Ƀ2޵M; >o 8/˜o,V~Һ/~x=%jF3~5vK*Wk{ڔg?/S:i򐶟f|)ߖf+uuKY܍ QW[i\5&GB_Hl7Y7;%׋W/͝ШIno6`r$R)Zg 1iY" j  V8L&Z$vIڜo2B g$aY0+4TfE/! -q_ea W|%}믧gOq`9!pZ_/OtIVnf}+鄈 XrJ-կ`]53ot:Ԫ[UqG}5ɘQ=GjT;]uÚ]~z<ͪuWt>〳J٬g=uO+2=ӚD<2y$rq,Om/JzūR(3Z\=m5N^[=G^KvS^g"yKPy+kr!#C!y29|V?,rnjYo>MA h|@2չtɏ?~tX ,:`!ݟY `# [Pf;>(qd 񂾴XJ3~i!`s^Gih~OObi%(CUf *ZmյĻVzO>D ckO%,y- n}u<ݾ0}|pX0>.D{r*rk T<{?#l"ǐj ty n PW xEd@kx p<\Sw{aXTB?9G (%"B$s塣˽߾_>W9㷂yr܏MyM/.ydp~~ !Ə@8gB HT@`AEsk56!s~:Wl#DQ(rJwa X0Ak,|?`rV5A݂ )5+@7ōb4hP07PwRug &*TUt֟I> v_;cr< Ȁ36K3׮@6tyR]w^ ׿FzcG`9_JӞ=+*cƽ<:6'믜P}O~az8sҥ掃p_N/( hlxF֚o\j3 5؛ΰr&|7_57ָO/VcJoڧaXVdc?z탛ͧXy\Dy,/Kaї%KbA`:@U?Μ8|p0i\Ӽ;XvuxκyոvyG1%_1-K74Oޟ45u^Da4:κ`X fǹoY t6Нr>{͵@H^=e:$.bBƚ6ia~ׁSy'☏{MrB61m˞:=0O?{I`埁$&٧r*k:kkV6ki=W~P\}SS*s8B%S=UQ3]'Ҥ|Y(ʺȜeMbV&+YԡUMԓ@Wiv>-{~Vk1z :5l_sӜB~yJkҮ${~-K-6eaJR[}]O2*S\bX2BH"aAeetudu[9E/+tfƩ/A눞~}\-a +23*[Guϰg{۞![$k V~/;wH_>& W޼~fsR$sw*:vPR" t˻r}ùgW'9֗Ҋ d W}Jg^#~.*l$jqI6ʜ!yt%d7,S%<%*z*%7d-y)M |z:{ХPq٣ r{)U'X;^__NW?ܚpt%8x\:~x%@ 0ɚsԑtODiM>fâWn/SP4oC{.unqq>< 8S˜k kwx:8}:]Ī`[k0ƁDW|`9ssaq=>!&5 GM09⫯5_J/847tkӊ&dWn]kĭw:o*׈ %e˜m{J?&v\)-~ؕ<6M~,cпI?עP2Xrd\' -Y{c׎Ǭ#(!;X}E+-mDfoGQCQqQ0\Y3lڏ]KҚ]])^<a/^ +OШ{#1Ga ʽ(BJ ֕nScvW6zV~櫻:zzF7i5KJ/y+/.~e[|[]-hzGgM x_`g3^|P@$ReE=hwEX˖H<,aJi(A[y1A(ՃcK.)PϫO?%՗ϧNrk6w=7Bdo.Nw!] ƭ!2 7O~~B j`s8<LOSGRGg(+kd^Tc6_uiJ<|9hzW<Ų"<@!}0]pU=zЧN8Ia1mO(@ A3Sm;6rS;{^92 t 4pV5{}}rp%p,.We~j\%%޾e,P{j<#.SpOLG>c6=?"*JOD[6ӂk^g9eQF-eZ~F@O0crhpjo~Z$<G{G_h A?dBkX:C~*v>^Y&pAUκhoKJ"=D>B~7ݷv~t0ĚS'q7 K[˱S7AR9l:ZPyg !,DtTKSiv?z0~GXWQ ߠ?yzD%et=Ps'}R:{xeow}?MV6_9h)Uַc/+IV/n3:2 .QVNx3\CG`p-rpi_y*3ZCێm+0۶1~sX2/$<w飏c%05kY'-V#ةX|mQQIGX(sOҨ@IDATWB`]Ï劉bݷ>Mk)FdsrOHhQgX7.K"-mt1s?^;كi^lt~tu>X[0N]sKmISoOXa ^_뎮1ZpR}`/V⸟k! aNN: }c 1Zfmrvx^a};*k5zB!vd샧MI@jgDz=,֯gKiQz=|9f"DmbN/U ҈1MҜuyN*Ubr{ωC&C\ZeA4%}u|9ʒG2m.qvF;^=bTƶRGlo?}J0[Qޔ0a_La}5G+7l_h*/3.ˌeㅟʪoi@E]u5 05sv~<`.pv(gשNJ# 05|PL[hq Q7%8ZPm-phJ JeoݸXvCE/m|6Kno+ۭL?Ndu-m=tϟ&/4,4ndy21SLɝԵ9q'nJe|zIf~~lȶzZpK؏݀%M"4ꮀ&ʶuKʣSHw|*ܩ|T<ו܅_/+E;Ik7v+2ҫ\vvRSS7%N-~[yMW~įÿW7$K~[OZlWdVg lֵMf/s]WC>wӑ~wq-WW?:p3ӳq"kgffҭ[ q =cPwiӂO)qoMLL``<}ZR&j_kY6e-qn똅O_VNru2nvO3,_ۦuYX*r*rmiٖ-S|:^)ONu+-kpdx'聯?KMZMԟᦼmi?fOTN֍uzܑt467;^Žk_MsKSwL,po-nz%Z>x=4#8|}«Oǔ b+gүej ޚIsӋ\E܎A6B"=a*9TZ"b:W&u|aEtJΟZ4IҭnCCD鋑CJzX: *ohO2s? IG4Hchzu}fv&@d5$slOm|菖 ɷ n a?V]1jvaX/shHz0@ <`'OfȌ"Mm\ p.ϗ< @HږudAJ>;F̘t߹okv=EE>OynDZrtܵkP!q$_sXLrp+OK/N`]…XJu{AIdi*N(.IXk!R7߼,]$ÿ}?~LXD\ KsDYiV3lVn?3W".3\'Ӄg:f=oL։ȱ)ŗIӟ{k,Yн];}:>Uz>ʋOX]8]Z2{a-W.[ w3иL['#m Z<׾q9_ =z4@A; r cе e'_"γ/JԒك_uܙt4c &Cq *R%Vii {l`\rtSZvk߇=hXt-Eb{ `d&ܧXJ385cM-/eW-sO?A|1 # ѧG\(POeATRdoӀô#ġ.cGr8¡^j>׮ú$V8TsCLx3iY]{O,O 2S_{\z뫗ң3*:ݞK&9%u@|"8rKma8г&x$>͕Z*QX_o^8.>SG`mx}ŏ%N<PaWX9!,PJL%fēS0m]W=ВZ\!mL."^)yvڧT|xk*9/:ԇdKU#/}YLo3w醌e.>Ì/-7 *)d+sZӢނ <+~(5#3(K}(cT Э7`'vJ@{!~2]=G4z~Q1.../+ܾ5cXyCMԫs`I^J?sSؗOz%,֢XOQf;@҅Vw/c8oic74EJOZ& F[׸[A/"lQ 5_ao#3P̷3?GP?U++.{ظAv/? `ҵ!^D`mdžHc:3Fp%zk`tlw^\QJn8e-kOJ0V$ui4ׂ|}Lzsʙ1=~0/I5W}f (~1=WPU!Wܞ _ ƪr½/ #ijvԪ_,s96q/=/@/^P0pmRG~F@(y>5Y_FWl,ڷ|!>/w8^|棯 GQ}:6y̪^8iR4xT n &-C./h?@ВA1_רyQblDgl&_]on4w<,h>5nt=}FWi/ݍ~i^z2}cnxt 0ԓ?D-POzI㚠0)ߺ[~IK};}u]ITWe;%-gwKL_Fd7=tGtӫ>ss1Nd-0U'PRz*OytE޳pm@ŷQk;&og`#flV #:a]8xI\yUr  G%0_X|pZZJnI&e6Y<:BS9M\F9>~lt\Ңt,D'Zc-%u,ެ.-s(5ǎn`/e"VW:u6ӌA̓ڳ%B}EM+7̓1tҎ |K?:Y97ys)yHWҢ<#}Ez`4kzp|@xbu~~A~g.4Fti 6i+b), !{E2͘3| ,L0}X^9՜XxOGO8^7>賳s%גߜIcR۲sX]zrBc*~"qca2 랁FD71MQJ;0;ncסPp8i/"{ɨ߯С ulWF8:PK=/ q/RDZﲛ8Bipم|"<,|5J߂7<䱜_m ?̌g} EЯQ4Jo1`bbA(2>$h ?j-m={ͼ^:F˺q, ~!eǙI85+39DXhvJ.CilB/,C _~2(! jg6uBa'@NJn厗 xB A7~]6|0.>#?b  30O~Bjo0ƛ:6N)@U֫Nx_}fIШ;ǵ/`qIK'L?\xV.@[Kӝ{Q]T`~RB9`E1K\dzdLbi2ך V|e ѯ l\.Q/x-Z&A u˼14]:,Ap^;0:P*[52SWauP/0k=xռvgz'Lz~ٱk׾ROn܏uvq1Bձ˼^4}XWW;O:`H6̗`|dKGYL'ϞI,X | ']ջsf^ֆA@m =K% k: Ԫ2 3n&E };l :!LCbN Yoyʳ/Kr-7|I MZoGl^7WLZ5JTX2^]3UX,1Ex˞tl)KDSMj%> #R@FU<)Zv@̱Zj&/G^SIhO3oǽ.UR9'K3IPsE{$7k{Y2}6ߣ >;塼!T }m`_)F-$c [e+ U(?uGĬSs} :K-3٨E0/[]7sU/Mrg:Nz~vYֽYy[|uMc7v[^%ۭCNy&g5Gu⻝\)OvC,M S]zݞ7<|mvrm2f??H` ,@IUKvq5_LUܿ$-M 4&g~^4vޭL"k[z?i.45_muש%ݻw|1m)? ƫj 7۷)Wl3In|/ntJ"_7}. -&zn+m҉nSyRWҺ[-ݶ-zh+iۡ&c,"S u5v/kPJ/y<4:۩g׭^m&']>8)K]P)x`"dB$7KJ:cP&7GqHjz:,xp`՝dܷC# @'Lz(70sy,Ry%5i+&9J͏NtkX\[2Pɪc#zV~=M3,Lz-GP:T1S~^ ݬ ]W4_塛+ɠWj9_\ߕ#L -aI,*=\ zq0)2L_W?*CqMJ:x4}/qV*>xJQ/&`?|ȡq 1,fz%Ery`|=ԉǼa2.,uorv 5xfk^.byW8^zp\=n\ZἀJ>L-LMc}I |(ȣ&ku/[#r8,8}%7^;.v&\H+؃^~n hg{sȯ|R۾d :+/}QC0ח:zNOc _-,V/>֖/>( `LTXJA TpvXZGk]KǤLY cqk;m1Ʈ-_*q5=PG'8xW\9n|F@wǧ Uיo+L'#%xjm\Ӯe}4>HH6ݲ%4ly֙o'QV%s`o}c6rߴecAgSh1ns\W6Wc,>]>-9\Ch/t W YdH^1r]1H'vb:^SK[?0K21Iy 1LYwm&d|6+兩\QreUN*ڔY%ca(#Xw]~t9L R`RɬC/xe"yxz͋q=]usn}ٗFXwLko眓]H߀}X%^?._>Hqy)a)Kah9)!\0)Ϲ8O rZ2|P:~x,;u,;qq̋Fg ,_|| ֛U u2=4B$!mb+IػeO~@ eHJ_0{1br9R9lcO8dZ&(QuWzz/k1[4\񙞞2q^ti;:t(,LnQv§I[ 2*:YaL*u-5w댸T͜Һ[--[Zυw?~7n'omqv;嵝]tsx鵥uⷝB%m;v ^3mƒ[|9@-SfxK|p"Xkr% *yv t=̑g(كȊ;$8'M+aCW ժW=$`ѣy+F,%g%mfX `ʥd=]+yf%&FuH:sp]v'Տ~>rOqP(IXY3\Ě'6?o~.Kd7/aT`Ӭw㊋`a@eu+2nY&><Ӷ,4։Jd_ D ΤT8?+_(hO]Aת8p3 Z 5+au^*`2biоmI6Wܨ|ke`=KX:Kbq}Lz#ij߁t @k>+M =J|ɃC~LzUe\SRpYoSR'pU%SG6ZgUWϥ7- X\+z%pXf*#{X[""u6z廀>w M @W^;KqeSA,ajuKUh=t!rюfcҸ"Yoe !mA-4b(#Lm Z+uC(d@ @ӏ~4t{wH+D?ll]J CCV&iSE,Jz%@exDϔSƵuʤS]5t"}P~.eeV<6B0w_.i|78?8'D=Ta,Y7NXWrM `'ORR0Pw2Zq >˜"$dPGV}۴-Wߪ%|v,bz ōSb 9*):VN.Ae ^YL#y2*̞TD`D-FUHE2=%!#O90YH Kc+TpVjbzXsm۷crY7UӺA?(i29R ʦT lr.2#]Sevym:ҶTaz*f_XT_q;^`IQ6O_f0sK'tk {zy4~~n; ,{Շg`ɂⒼ+ `J$9DZf;q{~8-c ь> ?%}ҵX!%ZfZ%mkڪߧJ(^Xo cB{,o}?tawtc ssV=i̹}Jcymʼ4Cr.j;kN@-37WVFOᤝ_h`}Fٮ:3\_A͂{={Y꟢A+ަ}B' m,/AOXoI3a}kk!)} fa~955]bɘ p?E7.0YrQKT-@Σ2^ Z/} ^yȘ(cFբ>TS. /@0(p )b۩l;G\fswV/i˫Oext`S,wu@_'[sS+w}Y볿oꮍM'kktO4( lۉur败wJW-SZg~i.)y:)i£c 3tW7mmi3]:W0N`ֻ9:/ulu7N MS;7K&o/ϝ &Ҷ w*)^oYliֿ_yF_0yc@4MF#CHښC'#p7[DeSL;DCBD*Q^Ark*qwvPIbVLpjzȾtQWBhUXfNl{P 5P6PK)}]I6\Bf*%\["sK=VGR]DD%/s(yS=WY64> ʐ*y@@; 3s\sΦ'[J&ҷy)9oS#jJ<{u}lt+oPVYtHyfk>Z\V=ЈJz <"Q,*_A:֥* X鰼SE~4=uxif)##̩\?i\k1@0[_=Obm>]vuI{-0,ZH⟖|#&NZ`zQK;sMbRŢ'_?{(}CGaS&ƇdNh l>6~"W}nO!686z<:p<µ}>@w3L49-Q^ 7졳2zH=AcaMzg53ߩ?m-9o͓AoesE 8ȑQ*ʜ}HC׈/2rPvm&"-_ :uE?Aκ#Дqm_PWk˗#E WSX`@?JhWTƣC^5c,GBN9'ݪp.DfȪ˱zoc R3y}>lJ]`G#EW:ڪNAؗ(|}0z:1|%$MffP5"dO ]vJGJN`y%l8|s#4KA(} KC{W G/u好+.-`o裏8';gIt+ág UtC.$ 4`dS[** Z\y!KMUǏ n) ;N+9/TGoIpXa̭H2+y~#NnuT&Pn퇿C^|>5?򑷛p]y~/==׻nQOm]~]zm"mT6d(/͝^b⍼&O^S\n躡gS: w+C7r|rY&]}']ěnhicy_o/W-_u#CWpNc'+h&NWYY qHa`IWk` I.g:Rw$IH00+E<`_@, Lά@S9^uK:^ú3@!:3ۺN @::TZNM/>!ү@Ww^!,RZVa i҉gnJX}OQ6GG~A)mȋQ]"MpRaLIZACBp>Aj:1q(}K 09[svͤ8hę sm:vSVԧZ%łXRKlXSXqӡ==hzºbQV!XȖC]9B\H'g’Uǀ-k'0/*}Be` k~XbʼTU&D:##Nƀ i֥o_|6:}D@[wc@V-Gv51A\r\X[@m9u@IDATڱ.z@N*AǧW^8Ι'daL'OAQo|zjz7Ҝ,_EI7fKUm #&J4{ҧ\>+=O 8kNu(ЇL6u-, KֆicRW/H-7$VY0uMuIw8oLژo1IpLc3]VJ@oq|,,n|Xm$ۋQӋgzP܆msXl>jKrY֍Xsא@ (fERi>%`C?fLLmu [1dE-M']嵹PwЉkտ]G(H|Eؒ[_*b"M-JTQXs==ZrF㶨wB 5mi`5u*y 2g랃8&^`H<+99ZԚ x^ `08!bQTx5ؑ)⺑/r_z^%`\8v@YÇ!~HQ1T4D}.9+\y;,Pݺ^ v{CVoے,mn ̘ut(2Fo,iS1/:=0}D=3'!9B)5I9,/2~ [t/D唆l'bGĢ~8Y])>VLȜ=eq#V]VW䓣jLgf}>R܅o.h$=}r-ס2f2N<mc|J:h׷2+*CּCCǡ^@i}܌:D^ԯ.rPy?G!6)m^tԙօ]yr7%#q&;D~`& Qd>uMҢ U~U.qd+E^,Y Q/~7mWɗ?a%P2h .׏WM;$syvpnWMo[B_"x7:NeG^J<.yzB"=A :WyB|#uZǺ$V&#/p'^uuДAu墝yE|>3t5Ց%L۩Ws+g?yMenh?(]m yGEru254kGYg*xI-q)vX Dj\E@Ez~d8؁n:@}~@aVlEJ.@i} )W'Ӡ4oRmN uXȁ-`Q쀄6TAb%6sϜ5׆@ \˷?Ho{Et:Q-鵘8c?%Ñ+S-e6 Ht)epQBQo.%`EH1>VNfmrvD}rtiYZM|tn(z[ҕwteeQft -15(D[/ XIY9I, 7b:vY!$?֖}J⤱ݔ9îHP]Y}ss/=e=\ PWA/+96 # ޙ[5뒀;K5& /YkeP`<T@{2=ccdMo|y_`vQ d~Q<9]`oi4Ь?ۢ_MX},|t,y_5<5 $9s]}~LK drZz75]yH2- :"p8W$ Ç5,99ҙ%;H?Ab-,dIXQb68*PΪh]V8*KA*}]i\l:GT n6@3㳥*O֦'L8PXy/Yf+`5vH-kvVUE@[Q)Oz^R8+nAv%'khaa}zDjFP;T7cן,AN>c amtAK-ӢVyuKd1{&72J'm<m`.2wLI5<{LIL nUOrͰ[ dGөAdaR9'ۏNbtȝh,aE/ m_ X <_0Y2|V@tzV>LjWoet}YG]˳𢬤]:oq-vs@< S8""ĤBU >3OsN0$ ^s,KkNRE?"H;~L2&!a=w%;[>45` ҟ{H:qJ[ϞI,/s @҇z3gY ~5Yu݇x:1YXndY>cB2߱=P$/Bmo_{:@-%LW$ThsBa70i J8 R@׹v[CkK_rF:a>eǴl-Y^%_H> "*EX/T/ #bCCIR&M^~W *Zwk,2>׬SsR_R7 0wϩs⽌Ur|pmUe[&G*IKRY|}q7y||鷿>nd?Gǹϐ~păO/Wśh< <7]ӧe঑r_GkVJ/72Jr˒.ߔ]%w~uw/`ww*-ToSMLV"aǔRUŧ*-եw*,_^o*ijOy9ndKoߋ;)8S.m^]H_MUZG9e')T]EgXlee(W+#I~WTWEy#kH=G8~U&{fÜS=9madj:ң؈r#/o&]/kx?+磝err8ox0+V|8̵8q]~=,SS&/ڡ7uO^WQUhjl&u%Y'ZpfQ+\(`,`XLDX%ٙ)Mj ^6{~~-]`rYp!|3lp";ObqJgN:&Ăap7]^wZ,v"ThHZz*x`aXkhfKYoԆ-Y:utJS?X`-փ5MjUck5,yZbIjU 0N0AsŸe G0L\մ2,__WHکBy݃m68׻Ӯ#zᶮ<~3ϝGgNON7ʊt_/\%Y'g_9/$?x KjnNt/|>>km+yY+gqm=.@)h$^&YbM$̲f6^ZB=aћyž3K_x"=uNIY>2gq}Ú`[XL~p?}x0k SiE +;O错̠/SWRIQ-\ Cxio6,S/lfZ_3u4?!L G{BmJ 9[Jo]zE 3aW~kڤSϾV>)^+ muyա ˬE]FoQ{~#@ݭ1lVqjmó4iG7Ev90O+XRHsoƬKKK-d^sEVlffF@6*?)2<*BLC:2'eڜ&W:;7G3k*Ӕ<܉~?uK]Su~xD$\zMGlK}E}UZ.o߀IcbNoii)\WEGJ갊Yʛ!|4 |.aSPQiGE*Xs^ USHYKT#:nMpt|2r pq@|Sچ,XNr=zt&]:|ӁeYw;:09XE~AeY~Հ3k "=cʫym>J|,6H *ͱArfUIeTq1UA@6Sz{\`aFkH@U3ȓ͍u2+=L9 \ C?vݩ?@hs{6x@wd p40Pbeq5-:u[> 0Iag8qCCBo _{% 7ҭ Β$mu9f4s }TY  $D(ИO ޒ*ޒ,h:^~,LOGgMsO6~K EUWeyOw,-%af!kV$uYPYPr(V@at'ztkW8S!=A|H5Z5mlڜc|a w^E,֧J evcWE:axGW0L6ƻZkG[u[z%|k PE#ϼ5}']/)JQQE> Es,Lr]-R=0^ v^_YyЛ75.G<ʚ^ a^H5W/لHp:GtJb"ry;y+ef7)Z'd]R &gk Z@s:jr{ MJEf>~d2=!$ֺ}g.UnEGc|WMlw sJ"fǘa 2:SgmIc<+Cgu_b~d?%ѷY-k= ;yh 챬t-ыw/ ˺܊rB{&.Ӿ'ڰR۱졗P"'7=\ҸҫϦt\,@-Հ h`ə9Ei1۬L)3tX<J^7rŴ"Aź>1^yx:5sLNczvĸg.xg7ӯ/ y\g&=;t ޼$=w℮b0͇^ciz6QL76mi~nm%*+W"b`X5%e#WX,^WކkySf*q>&3(_GR ;|43GK,TK <-E#X] nz5SK( (ɾM}|9M~*Ğ-Z}{ \=fd(z "+ ?P O\:K>rWA^~K /"!/qC}ϼnXd`_eۄ폚Z췼 l}'`ۗmA < U#*~4<)W'!go]z'^e>M#K{zOͧ]Mk$'And؋{ɽTמ:񮓥*9S)GxyQgN[~tNLm믿h:r~nU2wlY&g̵mYɯ+ӔT&lc,D[Ϋ+52P26۔GNQG_([\oVVS6$Vb^MS~ǺknudSOwV99E-K8օͫ+_Wt\U Ԕח؝SuK?6YE{/o'=} Xp]&Ye2uQ))/Wr~u+Ns#)+OP,0rjR x`r 1_t>.Ȩ]{B6^x%'u3'J{_5"*ĎPyËv9\"_ yj-K},j>HosI;6q誜1heRZb>*x[f ==[/hi"š~z^О5r=ݲ%̸nioYm^yenqM n1Xc~u4`a4멄K_;v8/8p6W'j{da$Z< 9qC2ɥkyU3Zxnv< 'qɺ+5. 7tO/KHq{T2i(\~?$YZg-z_$*m[n—r%PiC s~ᥛuYuA{~$ bg|dDۜW輅*wT(2# S">?D۾4v,/91Jf|_TC9Qg7ߋ 勺U^7/d""l[/4%g,a "̶G]ˮ`AzBm2u)1|0y<yyzU*9m9\G]ᓏ+Ҫ)W[?(Wg-o\=.C`bWy8#Wryp `)::CI,M's$ :Re81 9#fmjT2KiE.P:;\TMe1gTC`"Y`(j.d*8`Ct1NX{ o~CV[mWiwhM#E $luJ+a<@Q.\ kɔg2R'j:'Q`DU $&2-xq.<d9vT@U]?_*ceW=pphC _50ͰV8:W-] d (+J 4Ft|D:u|v:G~D Ȫc'g?󴮢5]޸q/u\G~H\)$d~ps^Vm|`LSȅuCp߰b]RS2u\έj]9 i/\<>fҕ[@w А< amvRJDF V&W%΀h0aNV.Y5-!'CQaD<]<&4>- 7+K/\8&pܼRmRkGX֕*{^n@$j,S>x {e$ן#o#>WP"%15$x/ժClN@XZ\0DV? )$_ч\@ `#ՄJ 3/( -8 \߰|DY9(kTgO ~\0irHkm` +-*mj `_"-^m(E a2𭄥h-j,tzpAaN<'9u4=%'KїI^.ע-.ƪcw{dӒU7MbX۬}J ]*(Ok0FCU則# F6Q9RlOvl mc|w^x.9%[{tO/,iY zi⮬K.k8/L AyOӜPcrF5{֥R/7<2+]o |ު^LGWHkK7[#=441xȞxVЋ"c/8ye/|\E % M޴,⳧Q=7ȑi]~ĭTgmYunZtː<7 JfUVmdArHk[ fb;x ҳt5hK$.AiQ95[5zABR&{d^m\TxY 'ssq̇s0>u>KOjlTUU[GM:47b= yِ?A<&דGz@_]9E8Y~7<:t/יG̯uߋ_=1>"Dz]<˴y^~y[[tk?C,}_,W_}u_^5UG|G;eBIm76k@퇪(ފ UIsduA9xA& Ns& G>71F%V D> *o<+az#_~AWt x qgOKWߺ {E0vE##S.N%6m Yw]uvzYLA\l %Q*lD^8FZI#/:@8FpWƦfϞK_|?RHuʇI#f)C_;(xXc<-:%JU^T{ ҰV;ozƣVdLwGu唬-ApK`F4@?/t(sիӝ; a @8.>y\r W__LI/CBmr/IhAٔ5~ ` 0V.ܺ5>v'-J{[鞮} @]#–a`uiHmxK@m}XNiMwҼ,X^KLl|㲔&mtTxX2K#v%TEȲ.)s@$J sXZuҹeY3ܢzԯIFt3$ZۗHr=m7QS1s:p [%}+yQ g Hc OYrxֹ%muuĨwJµC9G~ =Z"PVz/HMAӹHr׎A9FSD/йKjZT=gk[򷘸v`!y(GWs$bE7Tuɸd1K\}y)߮`k&isa% s" Rm.X̀Y{H5morbLgueS&˜M]|--,->㲶G?!@H(͋Bs Xb~3nDH?l()IKDJο-hB&h J$Y)m@>ѽv`aҕAx[CMg.襉6w^X `γV* b.k4ċIyᄽ݀6}[~ މ\[.;^~Mf,[ߙ[^}P&֨_+h/5wִ3ڗx9zF01Ő5>ه'|L 1ͳ453﫺_;fz3 Yҳ!@I%}B&oXDvdUZm1 ڛY$^JQYRaR[~nh̒Z/+Ku!}UkWrk] c7W0a&A[B}=LJ|D˳|yf(xN)#TO't)?Gz7t݄^^"/\o *rkO'zznsYX[mu-;ÜolJ%`Rk [5xx,0\{*+w:Kizq`!Vrv+?pʁg3P[2wdfM`I@msdGAEI)DR$3К_+*i^Wq].`$:0I$HH#$`&hkeciF U~_nmL<嵳ɲ-e)%c4 gR~ȷ)٘ ?;& >R<}(kG2TF046eׯ/^H{  "VL˂EҀ+B]'fnLVdMk:`.r1nV!?h 4kh@@;B^?h`]͡0-Nv=8ZHgfҫ.@~'Ǻt|j tRwm.k2Ua] +vGdIҬp;q<-0N~<x0- 9$׿rzlm|o,' $5K=_`}jaEz&W^|"YaM}.^ߣz^D+*sd9\zѬMyY9ţNidX, -Ԓ컭Bc"4WVTYfc$4 "/g5| -HvD ,APrݬLR!IWiԞ`ҬV_ڿ @]?hE!YT{5s%^knN l>+ da씮L״6UYeLtqhvHq.75r>j|WDI(ޮӬ剾Uj,|8^4>]^}VP@IDAT!~  ogI xtϾL:zdž3 ,y=]+d}^ݫu{T:vl6mkФSn;Ӗd5As uZ ҵ\w= H̱AE^4wM=Ğydy{AI,HoE4<t@qqyY]̿2 nilT$a"Aߓh:P$&$2 AnIQ= (Gj,*n%BҢ)(,Ӗ[zQղ"Ru4t DkWܪTZ$BCۻh(3 }P)<6+ŵx+j>.@䏤]||aeCm 25[eó-ϐ[z#$O/z܏8٣M|T~$ײݮ򯓇•euay}b-~Q_Wi|sPDnGcqhN3Ns$>lN<~_zZ3gWMy9\Tߎ\h*WUgJ9*ڪ2}9^.C~ʖy >U #܃]q*#@_ƃno \EY2'䐘 J \Q PNvq^J/?>9/@mX|r:ABNH e2 kt tn[[tR-.$?͂Ɗ,K 샅GtL)Yn$,xQ)"!y]LGqN}]~[WaI_zTzԙ:~_]ؚU[|cP@u!#@bB #M4 PWX\WYW_޼-;Ғh1Z'\ Zz1Lv}ou+q@_NMi,*^S'ftnCrZn][ WM?iWa )+q<VIӥ^|U1'Y gYcw T-@nhXPkWf ZQct^&4iM(IRLVх̮_Oަ6]V1uGV+21hNk. qWۿ\\}?RRMۙ+XZ]XK+B5~KV.&cg^t4N GksڶAs:UiJc6_O a.*vL L~`N;FzUS"3XXQ4+z-Q_%CjZ+@ڶv7@F"Įk.~+Xf-xuUB3p ?  W=#%Y\Mߚ"!稬ً8P~և m[LvtmnQș t*SX^KV[yd0y4Et` ߇yK,OUk,ޕ%{z{fPEs|ٻҕ{7*o/hς̗A1f5}v\tK4/اYgfӍӵwe rM*xjIќKj9i`CW+B/ZcI\ Y!)=T4=zxuIOODeY۔eO~,9nzLS>>G S`kycֹ=|3z@o=nk (sK[sƹ,T#տҏ/bTd>}Y*aMy(&Ikpx7哇UI$gCu Di!Ҫr*<?m?hɫdWk~;*SN#Лoٸߦn2y8IeihK~ ^nz)_m^9r~;G^˼GZ-s~ǏpifL79,-~S^S~\9u\5Nt*_o~eu~~,w1&Iyeaa8i9ˆs+J.\I 1^(8D-!0ׁ=,;FDjd1_ƇCS ו E+D'lsGײ3ux-K|*K.rPaA;PL vmMW(ޑo:;*_A@!/^D @k1g$,E\QlVJhK/ٹ"àtcFL^ęi]}X2|uYvZ0 ޜ@X<5;x\zđt|//_}5]`֏+BaB RaaMa'mˋzzcr:;mI׎owEm+l>!?I]ݸ|F01{, ,9#ke]sBs+zp1sg3PLLMIZ}sijjBz*~\ ڗ/SGӇN7Yw^W`߸"k`l76&^<κXNj%& "zDvZ֮ہ=yTPdE'/9X+n^L?ɯE])>,nŊ3^`u+^/(F:"T,ps-X7ZW+WrUr@.녈5|ջEiYϼv,9 &-ѽ*'iUV,2 ?a/Jd}XE-YvF mOFa[G̲I]Em;x˙(o :Aj[G>ԋcDxQ&>V8Hz|s0Aӡگzd u+O~ҫ~G~T*w/u<;(~~q̝^6 m`J+&zwn(5͗ AK^$|X7ʮOS^;wo5nʃK&M|dAIJ{hst%|hdJێSŧ*^,uLs7ܕՍitP(te zUQWzʺG\vvR<r|/ibzqx Y؈n"ru9MUrr<ʓ 7L>:r^ux|CH/c9od눼N;wye^yy8"??O |-Ӆ(EZ_+ǫʐ-]]r~+\M|x1?4NX\&wo:lљZ _AM{FÁ8` : $dR o%s~:ɩi0+1 ȸ,7 ع<6^y9;%[o]IowCO$?к9;70G4NG`bphD2䲬%=wD}Y˟8[}8 @Jsoɀ-Uq麧NamC^פU{Xrdx7CYrE͗e}kJ=0N ,y\tRjON\5YL/00+ pX ;q0$Jl=)k`bU} }K( `S;9W Th1%u0PiSrFSTB>=1Gw|I-rHSrWͮS~E^>88 &҃"U|@l]m Dr>=<#el|](O1":ZT~Ŧ@7|k0!{V%э/k"崅u]+ӺV3XG4єe1 0)˴ D&b<-nX&Pola7*N1܇Dk5􄭉;[ZZNwֺ|n{]i'=)s A|"F*jۗ/ {xxsH ?'y /уpNLix;Ddzc~Zֳ?ԩt]oa]Z;z^Q'gL/OA?>~Vo-h.9Hr[(/ 5Ba{\/Jnw .c鍯\u{E @ ;ļC$l{Xxc 2FK`R@mj=iTtT gxVn x051^ў1{SgNY4ocg?tp'R{d|BVL=jQm#=I15ӬL=^j$Ӓ^X3^JqM*TBcu| qlPIJs=(S`aa!N.|d,}߲"|l.<Ƅ1[iP]zNCDKLa{/`-X*`;Ҽ (K^f28Sۢy"(}a1SS}^n: ^0+zΎ5y뇫$6Y,0 H3]AͻKv5 L)#&ӆ؊r++fUhY7u``NȒWXOOJ⪗Y3J2a%9Nib01/Kkx*@?/g9kG|,Mεn*6EHG聑8/t=+@\uM>d~_t=,o !뒷/ aY:[t7*WXc:UNk;g6ALHoGɣSv}96yn6IU(&g/M/?w&1k97kfar|b"ON[dirS;p]ܓG A2 %q|~ '"zLӀGͬ9VL,cYR@^jAb&VUl8Wg}̴1/Kx!7{748Uu96u"/@ ~BX%@TOsQuǦGu,jmYXXNnͥ7bUE G;HfEq)ƦVЈNDoZQ|YjQ+/diԏ`24?>!] I?{);9yKўsHW߶=ނ, u\S}tA>WE_z׬K=,jwև%Zz= 8|XV^{Ξ9 GEUY]]t|{EUٖuJdI=Cz`=FRcgyg]#ZC =>>^|.c?\͙ac;=?&Aal24 OP8A,9Z4:9od2H hJ,rC! _Sd! 5c#>0@%&2c P&Ǒ 䚮)@ڠRKUò|#p ="Dt'HCH*r*=4$=hٕʡLKkчC?* LaX#%t$* -!hT6_-ɮ ~6pDLNn¤>z!?{EYTyp (,{(ځ8HZaQrB!`5T/`J\=6|(u3SV|fJ9C{ 'Ox.+/RV[Xg벾U|N ;_g/?-9Wou5/u5wfZZXN =H 5I4J=ɩki^>^}YOIwܗMdqd'q%It.Cs0ӿ:<75&Z=m y /1;>tzt@kW 0ӳo0};j\[Z@9{$826$fAku $6ԗD xMV>"1QA}MMN0CI抆<_ Ql vnMA:5#%sf% wH}kFA[OfVl<3ضt|P0]S#c?Άa#I5-E'.1:UoX 5䱯iP#]L^q >&ڿGr_U٪_\ UHgXe]]| `Rs2َL'qt} 0`4fmG;Zu3}u-ն,M-ӶL˒1]E<zBuܲ-W(*zgyP 2?eXXv"e^Vf(55FV% -tO_oiOd?|t̬.}Y@H,('|ן%ޛؕ\gd2Lfrk5TirT.mÀa?Gw-پZ-\v@P,9ϙLk8{:d,)<'+VsWyƍ{Ou5{ʮ2?`W6{_KbFĪ"@emՋ(_ 9?>Ծ/zIdMszݞuŰ{6NmP{{'%ѕ̣#G0ͳVMN Ho<}g Y֋;,=<˪脻|9f1l󜈐ʲ. BGKD^0_ϊ+{Ái>}|<гZD?Ff$eǺa{TD!kѫT$|˹# FQwޛObu MV}UەT>}#e&X#h|3y.izP.:AfOpt%Txa~XT_?! <;Kj U"D#,:)~Sk׼*:}ݯtx.zӡRW|)WmO5Ն&$;h'_溟xo_<ۮtNWANq* 8}?Q'ں' DF(i9WDJ1(4YWo]^`Q˦C:i^X:d:+Aw7PE'`}ޞ*k_+yo[.$g;&晆sSSSirOT&C 0KW >28L~obqzp\m8+e)ٻvVyP}A80Lz=1~S>)MSCf)mu.QxXOy5.?eӺ]nyMqyKoNqhb1mKNw~q[p܆2YRڶ4mʕjL?M2gM4u}|X s3.:^mJ|`F8C Qcu0kAh>.Yy\<9`|(?[>E 0VKf SSv4 YgUj&Hu2QّGD{$@YCs 75@x5#aLCx7;kټ gxa欱فtCSvR<^WMrHq /K8 ;i]6r$Ca&9 `rlDvLW.egOOp|fjbqZ˧Q:#;X\]B1ưhL D5MY8|\jk*(\au^Z֛Մ}Ao3ͺ䔬IYhŅw#YkR\e GK/ _{7R]-ɟ;ٜ=@AK 9$v` V9%0W>5{+:?`r~ɬIeٜ,^- `rT2@舫uB+ f~R@- v)[ 5ooeKCZ\_:3$S^ɓOnյmm8̨>wk׮gmeGGyEV?/Q *# L^ a.@jϺ,y-45P@>Uw-c {!{U$$0<(eCW4NI V^a˃PΈxS5(Rڲ#4F孁^()NJ>_TӕrCH)()E]> I5ksQCc l/4`&kL+6,!HAm {+PW_IRB4kt6hy^O#CtMZq!ƴΎR.I}YX;XZc&TDLYϱG}qM 5kTY󻫗 B˝b׳8Sk`cc3Q~%\K^b9H4 :E!`ҕ쟞փxmf'ϾrQ۴Qwe]ԡy];dVegdxz¥Sfoe?{W/ {3X7U4$/0s@slK.dſ 0={]{EYY0sV: $UYIU3_wXYv.i_KgxI^c^ $ !7,$am|`|mH)O?HF,į%MY^rE@ K<lk:&6tB&RE%D}u\]cI"#]hR ϓo/,dW}(tςZy=LyGd [TE鲂 P8ZX8< |ƒbó%QQdd a "*03_&iptmɼGs~Sk a>mӿt(xXo ]:pi:)\?Ou?:د'I]qcRڦ~j0YOtizx^??.T03ohCe(R}zOO2}{B C[UJW/0IcKLMX{\IKoY[?ndrw5I{Js"i}e^M) R~Цωx͡mm< H2x˖fd#-q:|Rd؍0uy}?ۦu4KRZ&:yÊq0C p2·εi0|Ӹ'q=p92ӄpⰗk{[^e:ް#jgKy4q^qz?OgYוq6NM1mUq?KҸӦiܯʯJ\]u*#2a֭[ݻwm?G[燽[T8S)yˁ(j 一#r0ivh'c˒ Vlzae*ٵ:3*+B;k\&mQ8 `nWk[p7C&J YDzUWN_xV10\"~{_u6:kEB>m2EEaUטawca˶VFs$&@IdXk>`I',RD4,e T}pߐE X }ԱgѕnIIqw%6vsMtB"U5C)/~x r"T]/P>8^mhuzJt;@Ef{Jvb|GX\^n3,K!H/dW/}lV[-do Dx3|%GڨygZVy H$V?Q^~X\Ћ%WG۪J2d4cc8umWk L[71/r{׵Bq^&?Ẽ~\&-`>onb[]4u㊶qA[anq;M@.̯U-}:; O{ ?誟2\QZna -`ʃ6u}|.MI&꯲o}[.w=WEHD?czky IJT&C\,|ܫT{)S]>X^2N{2N~INxq ߻yy?ix]u~mi.=?{>;A/񝟧yyI<{~y#/< }0/iTe4Ui.KS@IDATr#WJvq~S~LK8**=-OR8pY~YZZmXMF_Fkm4ZkNi fU$>_HBN +A^G*Weß~./C|"4Ln\ِ~S#Dz`t@XTQ0>Oq=I8$c묚EM%5P˜ò*&fقuX 5w. HL xZQklko@!M'Xn윬'$ XSҽٻ eX._HA>+baUғBW/7?w9;'koy lduiX`7^N?([\\=P-mf˲PO+$^ϼ,o3?uߒ@•MSFo0ɄG#duW%Ba2pg"Q$Akwqfb^,,LFXIEJm%{Sy1Zu#7{6y2W0d٬zOe#/@DXk<GXύ:үui^Vi^/R?Uv:xAKU;67{:y?a煜NyAWeex8*a)xxzJƝ.iS+ڴ3Ѧ./{emQFc,-.C MZi>oܸ-//ۚGZ?hۚJaIh#%,Bp_z\3'pd>P{M″41t>QTYª@u s  G^m%@Out%dPQ&9|j ,Epbk;Xh @_XXUFGYecGu*ˁۖ. 0l] [ A\  t´]uቮ *ga',hЧ|t`]b5F>ݹHQ{%>7l++U`xgϟΟ=i q L`2)+c@ p2noWp1>WȭlV&ILr%+K:\_ @ 0&jǨ|309;IC7(Q1{HPY`Y\SLRұ:̍ ])p,!2W`+GUWk 4I=X["_~jegϝT C[/~q]fq ːCj껭G S׎k, k \,Tj; 6:X3 x0 na|+I x (kNfYIYLC@X;ub\ɞ0f/K>6lOMߚˮ}4m Ȭ.8x2XnW: Wo`U n_A*LR X5>c!ȗ0nB&-]nlY1f ` 0_ h6#p0&.šq,aK䔎xQKLVL d1̷ 5lMKcivIzt2Cyg!Bj2G70is HЎL^92zBJ wwPBOqM%gO<^#X3 Xˏe9 pIBsK@Uz,3-ONf?w.{gw@Gd+K˚zz `OeYV,^`gwJX29kk.5>#vfi#~'IݏcY9_qy˜:%)J'O&F票o\,{`U/oZW5EtvŢ32^|{9=4g=q( +[~X;y;.ybbuoWW(@yImg`MRkUb(Z>i< :dr!{/'ZZhqr U07? }R&{չv e5tG>-z8._yō(&=L?Q8w6pnE:H1[f/}[G8"p9.{~'ñl** u@s MQCp@X2#G:Uʉq;2В08\r,  aN숬!' \%a%ٞCZmYQJhwxGA@=X)oJL!h~%P3(_V|-!6s0>}PDUth~֊0)>"+G#l,*v_ǤQ&#&JuZWbu;zYo+>va Kh+.!?Y, 1cƖ+IX,%B 0u܌ۨ@ 쀥Rkƽ(+8,d>Z_j]478s[MY`;Zub%Wo 0!@dIׯpO~xS@DYTR.a㝍MwK7u:*K\ՇJkGmUeU@cQ)و˯_CgNN:>CwY`ߖE$9vU\d$Cȵ|\Cy NNVK~ lu.S||!sH ō.nh|r;}@4ć@<7 (-GُK{)|d5|\=ip`W^2y/!K@= `FnPK+&(i/b&g ,8\f5ڃ.g{@ccGm}7=,ITWEjnvNEcZGGhHD)DBoa\@Otȇv1"τ49xz8)-|FIeZ0 ޝ4թSs_櫇&TGgƦ.Y]sggf5tz굞sթ\&]& k?6ː\_͞((N^7]2/)Em [p}F*OLɊzȢrâ[. ?hճ&= 9}?X {>vj= |$H3#>`rveYwM֮mU=?|"]]>/]u5xe%=6Vʻ{R20U{~췡6ۮȒN܏p܏:Ѷzoж ZY-+_]4[.~,n_?sST7.*V'M.2iqҼ|`]$w)<:puSuEs~0$}3]G~\Sy`YeehSk\x:ynnnd;zۉzhjpX(0満sKVr<+`_\„4걖X8|~. J8ۇt(Nd&R ;x$@~AXmb 0!![r#e|px) TnrrCƣGR @ȒvkfLB,>#1ؠÀP7@k:\ZS 'dC 1Wbb5x糳娛wWXC%Yrbc X%-G9ʘ%V'ʷR^Qk=&_ݸ~Gl*J]$K+eTVj?SʋYdJ,,o|rhM*0 \v\r3[&-pB),unlbU7c~5~e,L @o]d hn GZnYi ;[fk[IkPa<0$8AO\c2;8= 7D#GzN2eD3m(XnB]Ķx0Txg.>9*Τ3l pq<ψh`qBƺRyI!9oȃ)[K3S6T:`* %QyYbY<8!Pkmi|,&%*[ǃ$Au^g], Xh#E ZaUʪ^kF̞u^…vp(i26v(LUV ÊHBdG40-`w^G$QAO]~Ubf“ϊ<۞;5tL6sbB{PwyAaլ'n*lЀU{ A/hocϋNMgo~)›g>wA=rG!/44j>i=4׋EKGn/l*\^NʺƢ=ļYHx~z( <;L9,WbXѤip1^r g^;{!;yd>x._]]nܔEsMgK',t\ksM/xy#&h]6泏|tO9dr)ݧ<י֦Mqy]$tzH>BCz4"L, dw"d-+Z1N3`1sWϝ#A 0pЬ%+B~]k7 [YG&aJ+`uw4B;.- ]4Ҋ9b%_cڏh7PB>i^ھ!XS1LZK4_&(O\7ywUL~]WG]no,uyOZOeTWW9`:x߶zlCgJq*^N8-]\.q׋Nsk!]lWżJ֪pM[$KDxlme]{Jo1e|ktZ/>u+;KB%|~Y}mxɚdb^-1޾o!ec~U{)2J:m.ťii e]?1vׁ0𽼗m)]], 7'e'thHsq?pbQ]U><1멢MӽI.qӸOzJy{)Ӗ,i2eiΫ*/Mq4uek&]݆jM;ȴ=ɕ7:&׀Ӊ @*ֳV|( &LXz`QkXɁmVp]6MN+9Htd4.$֨ \!IUoӵZQ&& iK`j ա0ugIoYO҂Ȯw<1i:@|q@*m燁QԂymyy v]B#QN:_dW,)x;}Tv k#t,1b1Ɯ3N  f@#6mީ5)o6rtb=UK;ԟX{X,q-GL1GsحdM~BIƳ> =5}VfnDk0#eYrd~€ FGUHA9>z,{kZ*_9 0qS۲29/Kwײ\GDUsWB6=9v1zSaB6$6*fJV087\`aYi\ySo~s\^ֳ3Ψ}φw]m06շwu)} Hc[ a1fRGy{'MX"i!i`eH)inя1 (lb-+Pe E ż`ɦaYlmB<#=Rڔ3CXeʦ֠5EGXa-d΄e u rKsXudQm]M2}`6\9s"x ӎd&_=i O2`n@&X,FN0Pf73{h%^?$#rG]Ƞo6~ԇXE/k1gQV;!A5ᡟ7AAҬCg‘OՈ.eY |Y&ԡNJG쯞D9EK10>&|ό]iyvβf.&flϯOϋx?Ds Y|ҘL( X–ATeϟȾg/¥ӾwC`ɏda֭l]&Aɫ" ۚ#gu7E(XP7h|?x(k\ӽʳm-Jb]gԮ,an ksy1+Bi~K7_MMN>MM<#,*M[_76:$ UIkֳ:cz"qa1NRgúDYos?B{QSYZcqc]MDz>ש/!5FD2@ yD I鄌GH xa k>p s}ӕK#c%W?jaPpIهX^\qO/3'< hRmu$!Iϳ@]Dl*~a[ muqه˜s Ǵ'>~\F:yxz4s 7'1ckm-kO]}uӵ |emV~9r6yZmlK=)r4ޏ?CoeIC1q[@?O/&C_ud&}z{@'`5$YGsA p\~_ W.>3v+S S+k.RU4yn.l;09, uCOX,2{/x1@ۑeEw;L޾ ?C o|`mj˼_w-d;q5a[%#N`k3<.lWb9 +w;)uŎQ'ۇ9 YX˚Dz/Xdc}]JsR's/n-gt]讄qkή5^|u Ր+Q'M%XqfNøbPtɅo#r$9aWb'C{HIY^<=M+=LEZ¸U'[KBÚBÚ\0 ŽO%˸)#G'OG,u%7hGaaV+X:}ݥB j,9]>H (: 9K`عF(N9-]M ch/@hŊ#{$Њ rKN k,,3ƘE]^f5auHf1=g9xr;xw. <@V3k:};wRŊ-`,ZE[Ƌ¹ƭ>RA{DY^Ѫ4}xe$OfBHmP^PynRYrpYĺ.uFfF/S/={.=/|]x2^xyãٶ(1=^6*z]ڔMY^U ˗TNefOKNd}[^x$҈e/J Xh5kyz)fvW`uw3j/^ȾgW'gY0sأlKV7kpL`PYΖEq^f0zL/GAȠ!ĖWb{lɔynO=!S1U,ԉs"R,I*f.rzˣ|]~]^ l1Aַ rX/|҈P:n׸oImLor`2Nz}^emۆ49(P&!`A]ʷW~mk\~9ţH Ѐ&CSuDMjgsDOxxYU.S(+[eҼ,ym1Mveys9'6=q044b,-'itGǵ-^vA}iC?( :bzh9䓺x]c)}M}1)4Z6[.@ެ5umz\mgC)`2 7©G5rb1}`RAfI&Px1!( |&;pk5X?4 ?\^v ,u8uk_!5*,|`OV[F+Z޽-]0[lJrr%:/5 Q@f\}zG{Mٴ3|EzKX֞̾l/AHVeOL&,FO؞  ɾF3%Ok'gXbކ>+ sqY" WѷS4baAE8ZyX9vK^Цϼh_+ٳ^{T 0+{u^Xnot3^1cN-,j_Ջ$L`yxyhH 2L,d>Ծ} Xu%Eǫ3{[JS !wP!GϝӐtg3Ͳ^:@0'M^ |Qޙל%K~+c+\\+(-5$>zcNÔ8OKϿbq s4$X }-JH;yFy~ws1snGs~`#>[)\(Q2e܇:Xś9o5) ?"H1%#H6XdeN 3Y#+жcuВ-ߏ"NJ͎;&=(N䙊|KX67ܴ *NmUE__c}Tn&CS]&'Ou9,w&͘6W;MqYUy^|^kSiRttJ}3OO)oxpne|SZU~\>CoXiz̫L&ҽey{ZJqty{^[J>:zPd*38ܫle?܇p{ݖXՔE N'/;6nmK|b7_&i|ׯy>oem{\M{+shPh'opPCp2@N 9 E;*sJd `a C?:,r㠌C3Q X1,Ku!ZS1C\0p ϰ*5x;"vs<Z_VM"$׌\J5k²׭bqTmPd M#?8<鼌r&̺Ѓ])Z>~+DI&|w4X)/OVFNxkp2@"0nZ%O8]~k8xCa:,Jn@6ߪ3$ҐvNKrF1@U >~tƜe0$`)@c+矹M5pϵ6u&>1ݚ_[ ]= I!Tf@I5??2{]#/r33H%Kj⢬G.,m"#tneڀ'"fuֱި#.@O+wrlQͱ#c֜UY`+A, \y%~,?R_C^UHcr6:2Ś}aHDHZ mI?Al sb,Ǫ*n,LJvd52M}!ZZm]:e`aOGX 1 0)sm1{#Ѐp2u],^JϬ9uhS?2p @#YVĨ2@M͝F-0mq'qJDА3X,v\ ׻5 yrvV/ef99LvCE^Ιњ+W3Ïdޘ p}cמ5J#IҶlYhD.,/L451󟹚9=%ve|'[[\wͯ؞ +y6J˗NUtҺ^PKc0I:ހj(ӓO>/I`Y$ɚ@yVٳf<-9OgOggOeK/uL륌쾬?dB^5$[\'uvڂ^[1S$zY'a7'E]eu;3N3\!@IDAT3jbsvgk 3.SRݱL̰+jˇr| D^x˞y~:q#!!W0v"v$[%О/OHxm`~`xdhvTvz&<#Ӑ~+c/ġzj;*奂9b(}bNNԥis}ܣЃ-2P/h?m{1r'QHU:&{RS%w̽zyoJ-O;u8}?u|YSOJ'O Oҷ_~T=kFeȊLɠxS?I6Yn+Mj%(I~ $Ji I`b%~o{Pmʧ:D\|10N/ )|x?N髱PB>ަqC:&CZ>&S=z'Θa2֫{x{8]ҥ\G׆ q>{~C /^_elyi^OS?5ΫJpziȃKӫ=}U vWG4e>2rcQ܋-7SU;w2z&?ӽoS4˵)29O==y.c6rq~*+~:|14,?cɅ*)?p-; '#AI$ƏGXTzcb5C\XtmퟏLN~Ia)>:,x @ _Ӳ:[6,L^zwbY,hO6C1O|a\(NNu%`r^WC5(2Ql~ H6|w14S&lIAZgSJ26E}{^Nb ܡ YDB~@*~!\=i&WNsȵ`u-!5n @ؕC|,,lGz`(,LrPdp-#@,qf1R+լ='S?04fd4za&k'5>Wde]M+;V7M] ~K@yYbaarDG8Kdr^ TqlN]p2;9; .[8eYLX 4D2N9)y6)zӖ6PPɠKPX^ˮ<֬t Y9(flH jVXs]ɹOsg7k9oojLHs],%ԊHsҜ*$|ugec$gii=h'ɽ\N ŌӼ+.a'2= n)t* u Bu**`eYy9`ĂW1aQ@KXs5>5!7 ڐaONNk;35& o+"ֺ,L.hN>XLyJVs':|%ۚ0\- $ AY_\t샅/@I|h(G#mSf$/2>v~΋d=B 疗|0=BeІa蜉?qɠ6X svWW`Odp);5̲ke+[6gcVc9(Kd Za)^8}~:Ϙ3E}\6/1̚{ⷢ&脞RlyW< ~9crg𿫗h]U›y'YEpalF&8e 8H`_K$wl,sJFjmW[ٜWWq|Zz4b^-8&EzTGJSVYDekm+2:\:ivrH(#'0=_YQW><J xw Ѽ01$ *Sŗ1Iq=LegΝΜg`y~hY%}x7qOjn P p9A!hLV񧎰Es#;Z|g&Zk~P#uQ#N/hO~&Z7sᗽ*wֱz ݠ~AVd=cSk8HFQihC2 !7 \ 8'owFX5,,:M 0؈w8i>Dko7Ax{8]ҥ\G׆ y=1hx]O * ɼ'RV>@4\g[:'+`@HD0e[4K@$QN +J Wr:CZ@*C"$21,ik JsU\f;"4JWڐS&fYKQg,"\ˌsOiɗj̩0N u! .۸, q3eI[\%!cq` `-ɀ2:#KXdYrsmUHԏ&d/i%LX^C0TĢebP.)7CGdd=Yr(Rcq wcc,L.g<2ϰxM*?'aYY:93e@^.X:*zvR @BHNIcެ}Rr ];j ܑk.tymǀ %X8רP~Cv8١3>1͎e7>]|&hs8Xַ`{V{dmu1e I x(҈ăix~'VK+ns'V{PmL h1*Ѥ*rP'H/ k ,U2M|+kh"}~g_AC`dU۰nekێCNwXIͳ1֩-!yf*?8 CX+qXqVe^_~r6CawEE)1NM6p E"h;>} G|.Ώ r# F L rN% 0WY'bvz4{9{yv})/%o bXRչ[z pK96?m5m(H徢%N % Y<-KzQbM{9kuɘ^m%KX G\/*48oj]酥춮׳=ks kMW2Sy{_& =li򼾢g{zxO&֣du}LTH|n!Ţ`w"=qIФ?UFkx3ŋNg/x;nچg"( <)=+\=71G17r ,wcN|ͬS/s+̵znoam6tqx?싀@@Q[{qF[L|~}q}to鰖5~R8Ɔ렪MMkۆtu *k__V>vUQAٸ=ކ~/rɟZ'xT奼ґI&S}8LUue\'^4m*dU6WrSd8˯0&%S, ?3]W|:.^Po5;+^ cd|W6mxޮ~Uu㣊@II41`2N'\6S~dIyN@B[^^ELR~9~]|8kctS_NyIO˸e4MU|V\^L2nu OI1A]v8uycNK~yuy1]U8?Wx! y\&|֎ׯgkkkvy^zZ k `87ʟJ;>~PGPK0Μ}8_>95}/gc,uX_ H̚rƚ3V (d})zQzܬI>Nʰw8srb\k. c{uKڨz!ߠct_aew;Q6'"Jyb$Oi9PǑH=|%IGoX{@!2FHfqY$YC=;y<|~6;Gwe]m?L̯ xi_Q=c@[^'c㳧Odd59]u p7}wvYBNwjrX@q =L:&Ɓ%n@[zZ(g++,Vj_s^X{fA6 >*49ź7RW2+X f 9]Ս==s'k{ zaC29<{=ydž#O LDyK͞~*V8.c|iη/4zIKj%`Wu4ݦ벺 iw4eqZao]En.4:M[OwiMg؊}ez'>:o>`W|LoBBLd1C˙LMTEQ~iRY[igEY3Q'ڹ;M+dQ sϐѡթOi,U^W'KK}ijϛ'A1z#of @ 5ѣ5n m0sf9RVzQbQW򖵾z0 7*|Cyxx'5OCڄec\1tK^C] y=u@e zq}h^kwf+ui8ۍFi%O>$|Ȟ5TgLZcʐ̠JCSoe^b ٹhѷ>zxz<.iO\+mmeA+o7u.KF+u>ha֧;^{Kn3t;nr}xv^o0YHfטF[&󭷇]Fv&l,4ʯuIܛoi~=:?rר̯~ [lD_!n3P/V!Z|Y2d&]2y=dofm[V%m;lyFx$ Ow2?ɹHtZ0y4 dFT:vr~+N=oOꕦatުpiZ)SFH}-Oqɴ<ƃF`TOס,Rei`BL4#af0YNo& SwxZghCq)rNoW<=4|=Ӕ~VyYg#sگ"ͨWqVBDm 8Щ,y*4ІFg?e![ة4ธbɕ,XP|9RWJ`1_=.\@v J/@/j >X?|bN% W1mPưH!؜Z`2Z3տ?:y: \m @#NikHg8Bp겐Ttc#Uwc4ɥ k&0:w;/ '2,FQ6F~su@IXNYyzB8JYocG3=$,R (+Qp-@&ڴSN 044+oݞ 0>뭯ˊ WiA+64scAե0=1m+-GGt~40ԵBfم~{ ù3cʳ+Qpҹk=Xu\1?C&9/48ZJ^?uȚ 3"\P)tͧé#~::߿feuJM&o>.$ P$oD'Mv>V JF4Yrьo-e^iY iyP>ɴ9I+* (25Ɋx< eE*@\,n Q~XYŤa$7 YmaPn; >ղeן0ˢ|!>?wJ1ͱ]ek> !cůI[ D>OEбVr=&y̞gT%]ʚiN4gxWs 9g_[|;2556NT ըwj a}랬mVB }~ugoV;.)0~Ml]/oޒZ2e/|rvoc5Dk4kyFżCr ٔ,-Y8Ҏ|;$BO9ˏGh!X!:8P#UPָjN وCBx(_ ﵗv4Fc.ƾh|zNcޞ5jfAϠzV`_P|]IbbJh?Żѡp \]Pr#ғPbMx!g,T1-\M8V+CϸcOQ <UYo_2w\ _ޘק5ݢ~ꗏq. ZYwēA:hRagT~FErk ǽ B_9xM$Q'-5!$X0-M(*9`츫`"vTG\o ,AkSpG OL:-N8W;vO_$L~{nl6[zcj#_7hIFL$-u\ZFtGR$$IAo^/թd:Sv#NO)4^'OWn䗥x4>ԙc\yq'\7/}e㴌{Lިi4p8a\v0\(z0ԡ sV@!Ҩ(Su~X$Wr : >\uhGPBYRUؑQk`zI8VdAX"Âa }`M@f tEnJ e-drv>Lp"Y7C$,|$aZ)?"1jiԢ<Gw|>1ⱪo*U@Ml?$xX`!tԿ=j>Yk 8>CE0I@/16K:\qƢOvDsQ5SR/΢ZL@Ox1j,·YjVtk7& PKu vXTtPB%ڮc<:+XaBI,0 {fa-|ykZhIu[G™c{ej% +k%\g'IYv`+ѩhBk.kStՇt5N<6_}\xA-[,dęP<X NSvݮ׼vN2۴C@dΡ )x2rҲ\R(ɬ#i%WLsdzz)"=]xԃoѻR1=ԭG[3aY`a}Y'Ȁ@ZSv._eǬfUt/=y2pаYǞGW+߰9"ip=4`Z{ 55Gh9  D9K}Z;5PȞeL2#ptc_ۑ_kr7O}3ڵv @V `Ԥ攓gʡ7X6đeKL{ޱOM-UY}r^<{"ۭu%Jn&"5L>*D'Ccg (:g>RmC"_l\D$bj,cMgzugy=4;Io^շZ֡]z&^ {jO^=4OJ ޗ /P /48}<<VgdA{Admz,K/Z[wb#X/= 0y萁8wcKzDÀ/IqYw ^jbh:kI"et!f(LYqs~U&Ŭ%!<Ò,fR̔rޒꥒEyy9J{`]Id<|RWM$UBoYd@rWe>ez^NkIGW+KnXY]% |j^t7+/ussj6\7ĉgc{*@%o?m~ij?/4֕Ȳl.Hs}O_  ^z LWtd,W*_%ҭP@EĞ={,9,+0͚c^.##zØzM,{8ů.=su%zINA/S"iN;& `THG}9So{/SNS[ר|yVuSK:?,z7[=,=%fNK7zBSvdzQ29o)W=˥v&z5/ʶ»Qy\`{Ӭd5/MLi~߷$iߤ wfeѥ? ~Րr5w#)q+TfZVh^eVG]WEIOoo˯'ӭ[5$,U3ڈL]4- {>>q`O73R>Fw:~ٺmùmO4J572I2ZOs^Xg8Woy>.q4?8 0&eiq~sdeR yG&eьC)>$|06MPYVԕ k˪'Cޣ \'B,p'FO sAwf1/Dg,a)0=?s!X ԪVHB|Oi;&{eيpQ:5._ &tM7':'/UL[{~EF%/Zx^6ŭ"J,"=J-5f Q[w9W/C9-=8|JۧZ2|3~YIil~mPWn +#&rGa0=5ŻO.ҕm0J0H H÷_}FV&.= Oo?*^崙-(G%WmdT3<&{"k ȶXr8)mWN&^Ez6:/sK^ZhcӹRBPͥ+J6Zb?Jo'<^"Ec=cz,a.I,F *=?U J[re#z8TYۑƎDZK|G qE۲ԗZq,i$-! w,L0ܿ{ѣ#al_;\~6+LN,6ߜ&ޫ6y}˰OE}aAgf4rI_ 5=[zxg\=aeYZi5/p|Jɟh^*鬉k8FbeY _҃%/ 3,{;+ zӝ?L.7'ÅX !=؛DkfE*򬛑J,%9h&*BR%T*>Urh=RS6EgyɭtWD9{yQnP/jeU$Nͥ^>XWķ&gÇw m ȺƳ-_~pƤёc' N2 %N/J cz&9wګd㧗^3& ۙX4(i{^qz{n?ҋr:/Ѣ߾ oIFe-2m~{0YicEs:/ӈ~ʷ:m\>x{۴äO֬~S]o>2|4ӵќiV6w9'>s=HkҲ%&7fޖWn}tOyf#2j#y=fce\+Ixm7hncd;FC[O3e}eVݮ'tՈYfx[=|nyj0BlkT.d= wˑo?Nfu}+v}Ѽ9|q2WrڨQULFW|29ط+LbWHZcD, h/”:@+QK``#swl&0ʤn5uIm_^L`I@1Ʒ&·*bP`aKV )ĝ=k 6ЇjFMh m3-߄ kY_@}%rƫ5LP1]ԟN"#)YS&tH`rUT {jB[dɒnXc+I:nr%J'd޾CY3,?Сi&4WudOKv!慮Ov)g,*ڣ:}SVoYY]=; Qٵp֔'8,q8NX9bӹ0kߜL U'$骢ַ34m(~g8׷ /?wZfDZnˋpD-qW[`mjI6r6SmE˪Z6aniS/ϬDa^1]IVWJ饔l\$,RKU XmU a[sK{Q/`;:|? >] ۵G 쑰G gO~f{,?knMr-Ohn75=+9zopuxƇlV x6()Zҁ J8˲OH&7I֖/D!|ki7gk^n*?lm:tW<` `IFVi\î{kΏI@SjXӱ޻$/@j5QT/uD1~l?>e{%k //g; K}w&<`K_޹ۛ߷{٬ٝ9s$iwWeu-Y=){F;Q1X;l13Nݙp*@IDATXd1?<1jɪtwO0oHYf3Dӥò,y8 dZ$(uy\>y^Ṉ^]Reќ9"AƠƋ =zEq띚 pά^HLӼ!pOx1$8$)'mթI))/D~l9YU- ωҧ</H%bNG&^X)vLv]8i7Mmƥ}̚iGtvw^^OV)&ynw]K2ߚ G~2pBw]uԉ skT>e 2* 珅CcÚ՗,ث?JGDnK[-g#ilUvN֬~ˎi5͛|s~7']^ΧrNظAtaxpJҤ䥴JƥepgM6 ͛,_4+94SZ¹<Â|Oߨ7\Lr\fm>:z};OQIuuK{ _|9bCJü9#׹]Z̙3O*3yg`Jt[0U*١}hWƚG8ł֞ªg,X@ęx*fvXtzntY?Z V/LbЋqܣ*pJ+#0ĚhDc*x* 0Y^;44hegάMOǬ:\YsHN3'…+\V>0@S36|IW5w>E0RH3' s@{Pyv<:JV5_U60\x3VG*Sw:n\>+0e.>e W[6Bq8FFRjU)E}aQ}y@oV"ӡ&[[&\CFwib% duJ+ ZM\tFCh&b#ҝ@a%dlj0FzdUsH.$d]WcޗÏ~vx:x,} `;V /8aX60\0 >Ռm$2gE?VHldF&`T@5,F|7tWr팱W;`+; =Tq-1*"&z5V4DѬjBeXē9_L =]{9a {Big>X c_z 리F @kԕ4jշ+4E}>OWxr1Jc@5^˫jEa)0~pqJܲjv50һ{Iʲ`rl@,Kz)p^XW֥ +VMW06xZj$a6v{A3ښߖi~ALN <~mScc}35;dYz^0 `RkXsJJ3롥1 x4=t{3[u^`)3 je&oܜWOɢl* XɛI,^tF/@L >g!;kNJO@. Ƥ"=3eP$ ^f4eE/tJOh6% 㤴DZu)QXh]-KĺO}X }>YNw2HjvAu]{?Wsw3Ĵ~30'2ңQ/WP8rhL mn}]QiO;Q_2׌f|瓧sLRϼ}my;ms<ތ6o<m|by= $=}\͝iq)f<(Hv&-ӻvhsYi~f=Y-z#뾗,Lz&o(f=} YI% q\r$ (J,x@X?V¤9Hb<%eao;[9ng~! \6tq|o ?D3>"Ym]E {>aK$ KH6=4/ 2d,-)lo ;`ph,g:+`\wTYPal@)]HPZ@BQ2q(^\0`eaFu@c+k1AU e4xp> `1{adGapvrr>\6#].,J_I5Ԥ,p,4#}U wI}gɓG=u +9 Ϟ5ۏM~oD&@ckϝޖe.fei C2(S+֯N*[tGLM5mEZѳJtן /=Ww |B3~9 65L]׹0LJMG!#,OuK#H|+hTclG ښ"iJ E"YS4 WX)`3bƫcN0gK_TNjiZCu@X?<ʼ|ЕcaxrۿfJ1]=ۊƵT }{bx(aVz>27;׷U۠~[Z&_>^4("qٌje]sNı`xw, pU-M\bR1{xAw }Daf\},C„>2ɋ#|xZ4 X2 KIv{|F2[6. :JSUl_ZSκM_JKF)DZJsC/B. ʎI` N`r0td }#I {wuE4!lm5H/#Y ˜xAV9`WW~,/{)httH{Y+N֌aZۺ^8гȤbrv$@d!`ժˠ8&TV$1x)No)L,FxpVzk.\\4]urUJ C; 5DGq2/xr~j*4E!' }h1j3znE`;Xd>,۲X|@MQߠ] X&s+pG'ݲ__^3ʨl##v{[G,/sFq`S:>}]F1.[bċ9Ht0Yi_` 0X+p9mFVtߴe:7/+i ݶN;<ƍoG/N2ZUdmD.er=OVUd;ۤY݌;tyY{laUСCVd,L6/dlQL?XפK:xNj;G+ , T 8!]nFoGvyBO[[.m͔O^վKuHÿ74rࠥo7`!~1_MʹF,L-R&^y8q qJ5B a0Y7"v"4ǗM,}R:|ux|ޞ z:$J"Nt!BW ">M 2׷ZjJqUR$[*,+8_:95x!PVWQv@=kjyӋqEdU`ŵ7:C鳽cI񞬸9q@Sw&ڡ#G\ wA,~%5uOP oLxէummb*/~0-ĩȠlXNr$JaH#i?o|X3B&" ܥdeqzBi>nY^bP HAy[>Ţ,[8遅I֌i3 w^ไvխ^赵{A)Zn]]kUٹ0*fKBiB+ &MR)]],QV& r b\TXm`[߫+y&=%%S/]3e0k<Ȟʋ7Zmy^`8g!_y\(ut֧V횛9]ly{5/„9 ͱ(˻\9 s$s$nݼ>-=?M.=|B\#M*di ?:FrYhi"Jyɏk社?-㼍$-b 1\XTLԛn3#ϯK{.@sȠ@ݢN۫f=ϯUC`~|s~eAε)͓]-98j@G^~4/hn3JZ=ٳG l,`c\t#{zy~, 俳"޶{|)nZVIUZ|Z&i?hz.+ex3Zdm]$rDZ˺O4tT7hSuܸ&ÀqtnF˷SVh:mLʣ]ʛp=nUxC5601-{ Qsy4qi<v|wi~ǡ-Kseyi49my--ɰǴYBȥ:]Y:yZJp.eihV.`0f|h'klV+(m;ÆRH/k{On])匁txÙ3gJe9}{gWJ\wSZ^Aa.eajUi&r5$")N.~X [6`Q YQHQ?4d!Vuݻ/80>0A5>9Y\Ђ%AuT6M#nOM6,|g;n 񕈵:צ#`':<{ ]\K$].|:䚼ȮF^Ꜧ;tksX]wc!Uhlu|.oWd2Mj֦$t6 Z+$bq;+l>* e`rX v@ŀ/W8~2oߑ @( CO5=`>qj"h w/>y*|[/eMVM؏}bsi*XH\4ʈi7-6T訸b5Vq'ʥ2u7_:irYKi'db?-Ykim}UZ#/?t $O/46~DA)>~0>ȳ {x@Y b}i,jW%bnbr:ߙ OqM-5\EzUsm1v~UXGZ[$ J*Dž"$˞7XHU`0iWL #ڣG{bz` JcM%ҰxfeDkχ!=쳴gY]=/k^opp8~h@dFj>E j=JXq59 hcD~ِNrŋ3>w2e}{nheMe?.ݘ 7e[P3 iw8c= |V䲬JZN/tDY4qZab[FNc]H6jւ2P֩dicd!7zI@FcG@A޴Qx`,GJr5`gykat,Ve/+5X_K=cyRاС_##'1Xm.% 3iɱpY7KftV~h^2p`AX|o6i~;a{BmC]:AEN2 ;Ioqm'łoYY;X3n+9ϭk>䯴ncr>Jeb^ܭՊ) 7+O~S;tLU/ӥLN4^1h6I( 4dHFy0&zu2e.&|y4.'V|+_/= ]V&[_Oj|2WU9z=R?4,PW *=55U^Ao 6Q0vX-Fj<lF_?>OiiҜ}x{iݥyNz=VPQT2~iٜy̗|jw[ū)b~A8@ԇunX!= n-)xsMhKF]S;c ~i&=CYŒU\7Eb)h:H3G>ܘi=&P8E>GsƤPS"I<%$rg|Yb9ƖC ֗06( $>9е{XC&y*$*9J27~O (IT`Ҁ*^?ڗj,Q_V{6TI% iu(dԕCwX`A}uj,$hhx(b\++_ix@@˵|>Եv}o'_\ :ژ̆- 3 ȋf~`:8]|[ 88D8ZK`ɮG׌6\ӝ'wkd$*n޵WxgN`̽:`O KwV`ߣ ck_j-sER˦]I%PÒTP>.=?s  G־ Z Oa1Qd)ң7X V6` Ÿwxc(%k;:1/NV4W4GO=aI]aA IN;[bҺ9'p2N=U8hŖuY#W~pkzښ5ELVr\Qh@rݥaO{|9{,QD0DWrXj_~9 U$:J+m`rYsuU녽0>JJb0i/g뿊ЖPoSUs @9rt5oEsh;05zGN{aJff hgdPƜn)E),j/ Ɛ ŔfENZB&q@P|.4b`tM(y.0w_yJnof~ߞUÁ!0qp80ї.6 )^O/'E♄5Z[0SGFK?zm,;{[1Db=ԉ#_ 󕛲h~/6cų ٳ+/TJ#5xhV3I@ǣ 05'KzFp,s0u&_{栬IַiY0yD$ڒ>L"ejF VJq^f<X5u*%e :f.("q-uSXM5Iu`Gܬ(\'l3Ң@ -FG#~X{/VL<'4ޯ_V>:;PD]#-wۄ,QF+Kx舮u0KQbWugO9}x(`qP:㠙aerLP`! Cԙ Mdz\(I#'ti@Gܥ > iКE0iUujSw VUdSmc|yyݻ~Q#Ltn' v?&q^݂, D[4uG}I).~muA@;oISs ˿/u4@, B@YЕ~&'et^eoU G^i]( $05 ` dNpx y[p@4_~T8tdzgHɠngO?yBWO_3YN[tT:2^çoWD %M&9((b->,ǦkkHRPKpupr"^Tŀa{\17T }[M%si{yF_ y4n*u̝X,bEM^Yb, bgEhgm`cNaև~1hspPW&͗GHg_K2FVki{70 \CY*܁>@$kŅ¿p}2^%[jNS &J*!P ߑK1wهEh6 JnevY ,\&š2U ]wѦbV5Os~qD"@੻ZaV,"LjsS/Jܢ4a 6<2U 8ަ(Z-6 H'vԱ626SH2Iyx`2mFwC#atd l G-/y,aMmud8s,+2`e@xO ވe>^8xfvsx Z{/OGО5'F ^RyT<#ۋzϕXNG_ltly KOL爯=s<y/xE)s &o˂ڒu!o[j Ws;6VJne,N.RV럋UiIs>tT+Y$^Dy: S .X"P8vYLx8 _tM{YD·[ 4D(EvW ),vZx+ ^llm'li*$}5yi8嗇x2)].&S6s "`cZ&.6+/K_9)hkSykYll><o'`Y\Yuv~.סZ e7;v6[F?HRGŁގppH4~K|RQyTW9.m+@묬^MMz>AYz\j_-LWHן<Ξ=fwX}= Ʋ腋7W'”,Lr8i5cWzdme}(_ j\"7JZz*:+K>oeFWRbYZs|wmbs *@K8#ȭCX'iNtvw.\9ɺ)$ZRR2Z@ XEenN];! OC: ,ySX^nVe*ڦQ-mYo\x㯞  Ț}𯺒m,Ǒ#˩TvMiևYoPԺE{a=ѝ'Rxɿ%XL_ۺ~e__,Qh2&mCrX|ob^;*/ݰdl}67hx3Bi[)y$|),JK[nNrǷ} ߭_.w+xsJy;o;d;U2q!HҼ|N 7Ki:a\<#n6Pn0$?2MBy_%YMW^z3eɲ6ov+霗,ao$SXLx4KR&;z-YE`&k%4<~8h2]&i4Gnܰ&s䗥y9kN^|9mm02||eiz)z4iy7LLz29OooVQ,:#pݒn[jZyiJi:?yYnַ)o\Ô>e<Vm&W'pꡣDfX$I,aƢrlJ@"?}뿊.P1p > Xh< d#.8|rTL hNaP ۵~h2*-݊S[vkEJX#DYY :XMLp01՗d DK)Q"qlUq$ǂIҥLAX<t ̀tMjѱmaA.2$V½YY\_[mtM#LH.T7J)t&0[[t^ a>@YG0hsMq =;Ñ!}ܭ8VNM:Z7ruyhl0 ~v=|$0b,ʚ`co!\>*0#­0/т5oteIFqG. +a#* ?hAPϾgGYo_YōpA^@?YR{ú9~!םV8IeJ8Pz>iNHs4 '+TV0ii:r\U0㛱UՄl[yi8#|D۱OlY8<3ʍ5^t5E `2`0SaDy =]0. +Yh|ތE"j Кgτ^{>86f{\yn?{CYr0ȷ&-oYhsը;PPUƅՋ/,`;LƙK5eQ>4yDpG9=x-Ly˯@IDAT17UV 5\#bEZZgjZCxPyF(ɵ0V%Z[iyZBV,hi1W!$Q@sh"gieliJtŬ1)~Etq?RHBK`[`[W9 kY f\ϋ{44ooN,[LVLѳ_@ GÓg~7oM?}v%ܼ3. +/xg\8K(/=N0>5o1y֞_99@K: 3DeӥceHAGJ9#c : GËϞL4sW~[?g/.ްk$ssY#]R*u0_M\GI˪ÇV.U,u^Y+W!F"8%ϾIu'^i tQ"Iz|ٛxa|.~< ˫ $Wq_L9~ꬮ?`sg<:.KK#u0 N=}j,pXn?~>|0t[uֶ wWyi,B"ŊAԭ5K@o'6miؕiR_+IlakBi56l볕'|vpfJgk\=}s:^xeym$`I@kE^JN=Vk_Yns^ߑ8V/󹃯<wӵ \RF#tOjbaJdnъ#=G(!S|`-(N~+m LaaHO4t$V sSeY0W:^A+p# / |~N 9\,]]Ѝgvl \A[J&j˴FTsAF˳jx+beoE&^yQGxGyp;-"5Kqd+47F Ngu)? +YwS`^AmX&d娧S Hs_Ձf#0|{k81(ScҾT2}b[vYEUe#{54g:;q>pHEYapY`EzsH ;:cc1'09 C(*vWv0|`~npeHO8sl0R#*C@}缔B8J@l((#G8dlVLW'vUyIǞg#}]ۭ}V5hpY?g5ZGÈ,LBu{*|qKGm %cֿV^=7<-G>=z]k6/Kz&//c5$q|UDm{D}MҼ{pxZCCa:ؙ5^ҘT]EiI:0 z-&F_i]tUt&Thle~UƯ1gR^hTMʥOj"gĄ;7;-1JgCagL,leOZ j"x5 /<4sKzs=017'¸¼{" l`E G~O*U f2Sn!2)OGsv] CaqYܓ&OҦs܅pLYWMz<).)ecɔħ᭼#,2&BNbuP%ij5-ScGUR_14yPKIN0 l8K򹁧`;` @XH#`:MVy,_ ,ݣ/4r%^|dVC@HmG';f}%Ybe޲z܅7rȋ^RkTǚL2 {C6i]gO0 l_"TZPH.L?Q[į$eަc^7;.`O6rx^:&yIb~Y=Wˢc؀${jrqPgirxO^Tkuwգe4[y)FV&Ϟ~)v%{iJK1VTV["L%i~_/W`Ց[P/9Jh<>FEZA%9~QfEn[&u*&uE~ dMȻ?+bNq7p^ij|km'ee9o?vQo^cO `[U7c&}DN'=AI{6r\]>`\թo"~I>>Η%=-߶_|MyK$e&x]_><-^&yUgp>O.y5Fqϟ)J+<.4EsUzy8Xqp8҈s>s9.xz^MLLqҘ?[(j\F&J|)(FӲQy/_ܔzCyy#ypҥ4W;0`rmyt/'Tve,`Kmfa2^mə&}DX lu⺦fX]繲ő%ֶpebdš3V`-ŞR_hE_ۮYњn^S]ҡ_.^ _ Ӌ/,O/ɟ7%-.yZ!+G V`kY.g%R<AV-,I_<9>+Jds 8!)7%3m) ~oYyhVb,J'if󐺵^]εQdס* ;DJWVdw;ZBg'砮~ێ_ w@9uKqԇ ? ,=9cЍ[5eYl/D1ytSO6UyUrDbUQv?!/te8Μ{6E2`It*W(뮵1/@*z}{ JPvR{ԗ7mKGvLn'}gZgZ&Ymxxj.e`g2^<$ +#2۞\v@AJZtqGJgG.Zh}0YVK-_wKY&=n{[ OtxxHV;3>no|pYVFĢ^6 XF_ֺNxwQXڲ^XZE 6hUX֊9SW5OLh0b֍EY~}l8u>IQspM0螺̪qeى:UC+<*׊LU%IfE_S]>`2jz'aY-KJ2j= !i|C*M dZva{E{A[/= COE8/+s4h"z =)J'r' ~OO΃8Spĉ066f`C߭?<ג+YV:p^4Kۦ/@SOy)/+ҽQFJiFjy\"vO˓'O3֩\qXd_C1Մ|NSOφ+gM? $nLkgeN-2ᇏWS gC` +!@H_#T ֨d$X`уɄh:l50kth| ؅2\v '\eLb"Rq a#?up x+٨7v wXuM `O, ݢ@SK:8y ~:>JoUqv(2Ɋ eWNz]UCQ Uy liN] iځhjDwF,(on68ң%@p_<a,td#7Uހ[Z &nY:Ekq-6 ufflĺ&ai*w4FFáC/tΎѡo{:zs_RǾ^0\|6od+Rƒw$6qԍper6\YXQM45'MӢ,A g#BcWᡓ̈j\.i9a@X y2%˙h-YU3hB煖 ļNbtB1Ja3%qw°9&-kkx~u' ᤨliЁqeNaҘ8 ҋs:vͤƿg cl*zM T<z,1vK]+XOH<vj~SU%YL]add(<~ ,j{U"\YY9/@]77Q8S< ɜhxR^zb8'gfIu9ʀIQ  ,բI̗u\hw0iywCdZӇ `Qd[AtO;GXZ1]XQz.\HH^Hl.nkIʵ\_Xd49EC~d7Yv+mCMċ6&~ hՇ6IiǺ2Z$I[( X F—Q-Ae7Xleo3O>ﯢG;կꝗ5Fd&O,bh~3Ked x"o~5+e!s,9?͹n[ǐ4wvWyWICI)J~Mz%D|#.c=yo4_W`'E|>jV*ZLΣZji&/2|5O}SyZ_?It껒?OG!v_vU|ޒrܽ=qgQ>jYWxqٟJ`2s}9>|cO(_{NyyRq:hRZFRԿRѨ4z#agt@|j8ΣxرKܔI:/Uz>ES+~9{>~<&uW>-~0=._ǧe4k$oJ|+t~nY+n|a-p1#<0/hs=/Y Z/|a&S`EaAA+ք?@mu~xEJ숅R}[t<Ҕ`Jw mh1gY1(P]H-$A^+&Aچ[Ӏ46xlt@:SQu0@:88 XWKda$.9'0 6T uP@՛:MYc-!*VuѺ; 0)~d ] 9k):0e/HozJ<8գTS|,d1ͪ ׈6+=X5"M%lJFg=hĢ)m_Y5ɲnj4H= mІ?=h׋_7u\c;K\ڭ.I`-0&/ j2`s:}th葱p뼵#.A,Jh13N͋'/(1텥>ouF\JAמhXQ祄VYk%;^VO=+3SHoj;JO>.RĕݖENB$3|1GYEa`R5-R%`1W.sF\[)BM:O8+DD\@\i{muwOF>04Z;?d!P_ڰăh w%XdmQE67e]ruUKq()$Kd>̪<;\ԙ~״ٚc_VO6aM3t8/qlLj ~e0_DoŠ,ﵔ?&PFB-~/ua͋#_rgu7JZtG9ozgu Wu4Nq7p^iN_l]ZR~Σo`2/r`IɢN~UzzɏKj<4N5Ig++5+Q@|6oU.9p7i}CiJ}_ޒ˿[µ,EuIˍl yVCγu|W 7B-9yY* |gEj5oI w`Ik&]Χ٧[ZܵPWjy+{S>TΩFI]Kt:kq&`X2oPE` I&U4' U8"rX9d-Pka9Ɗ tvkv_ M9`uarGf:$u?XIJV$P#>:XLټiA-Q;P$`gȢ={NuֶWVuNmSf 8yY5A8=%6ŠJ!u6C>JЗ]Xnp8 ]M 6S_s{t*JXCE]!iꌕ&O" 'ѿwF) 2(ˉ&MP'DXBi(*ֿiӘAm)=(rG7]n.F; ٲG`%nқ cáOmueuו8"@&O}«Wš,촷jd;K$n)'uUB__b~u?$feW\R9}}-8Ks"5EZ29hӱNnb@aږx5\;O&,O/[̵̩ޢ/hb@l^D'F q.y͹I6Gi}Ғˀf5ϊW||Tצzv x#ˊ.@e͓ڵMk5zz:`_Ow ٘?2&1ZGCt,0ᜮ\yKaU/P~:Ŋar@Vț*Q2dMIqCbY\`demhyy@Dl/r0> |~޼иeSzV,K\M }5P=& %!Vi&lh>?퇮_VGF0$ WtkQeSٶ_m-mYѺݩuȬPknjy^H`wdQ9 ^YpCL ƞ]}52:3н- ĵ>C)'?ii]Oݷ0iʨ>[<& Cߢk3p0\>}!'N>e/4pM0mh}8i$f}wf?M_+u[[7 ߪu88'%CU[OwgԾEI,WmuE`Kצ,?/ LisqIw?c~| [eZ7#h`r:fE}ex|oS>Ip*KZM0xYOnXsn9?/_.]ULR9]T//_ᴕI/JKR=S wJ֝|8Nڊ6_T瓦AK[^34ā{y )獗to8WKV:4%"W$tJȺ͙3gZ#u˗ID*tiK8`#H'W#[RZÀE0Q!G@QM|x$@@4 pTY^Ru"6ƎdWaZl2y])yD7ar6XENt4UEFB `rC;b2A#;`I&$JD5 o)!73 .2ze @ M/xDe P=,{u`@:m,urܺ\ؐI@]mvpS:nQupw꠾CCjn dyk}EWD`M IL Ydx%:iɰkOkXşX Zh6:1ĵA%PQLݺ YkT)TA`C0@t=XmTjV²2yu0١k[vs,b'ow@*R+5:TEhw5t񢾛ɭMMG,Bn}3R€յN]v Ȓr8h^'xM}plG&žήp;)پ#R j $,Gg÷?8%ڣ3FO`02+ggС0o_WN/\z=<^??N {^ F;cׇkti8*?NP!ϱxW?oenE2&$7T֔@g'œ!X{ϣ=|̟VSlkedLmڦyk6=o|=80>D=#Ai YR3 g|w-YX2b20[*XMeF-y{;ľn#²+@ (yd'| /^9n*1*/naUsf `}~C酗NF -=avZle+9襆á]/Oylo< 3n~h5I8bC{.^bYuĬE ЌrM^HJ㊹@0&ڇwhoBYl״_r]g9'ꣽȰuV%W~]-C=ч5 kC4F+e }Ncͳњm 5eZK,uG&|Yf֙rIN"lͼG7s1x!ȵ5X~@5(*o 4lDzբi<3 ya;}5wM=|x9OJ)zγ?hL">y=ʝHs#5Kz}#ج[+֬nҲ呗Q Ч*+yZl}RT+YxVL'oomۿ[~ wWww͛&0B=>},?ޒAH}J~h+'G>g]L"X/*YTJ6~ $U܄)7ՙ'>H%|KZ‡?Ȝ+~![T".|ڽLs|IѲ)״~nn[GQz=qۑz82o._Ek<70:)L`z; ZV0ȧ[-R}hkVi~zO:$S@dJO痏:Knas뺜z8Ҋ\>&OQ4<m499iV+ͧZ4:22<-+[)lҒn"ňDᄴ.o>%yj1k6_ZԛT_+r*OCSɔ3\ckT^ƌǣU|Ҋ>?`G"C(/;D@[LNx3:SX1Pk,=VU0 k1XzWD98`:T!ǯ>9pTu\#l2ʗN9l6+.:C5h8pPj`Ye2t>Y8Po{\TutVdi&YxJHeQeM!ziqUHܮ[K^mĄӳ7ksMzpQdzTNr@Kq #2;':]Un&NK98eNԉ :EeXnʪ.rYx[^uF@nmݷ_@EY*,`vuI"mg~Wu}@\h3p+?{*:o EnU+X2C:2%@w8tp4?q@f :S3pZr^9s5:7ec c swٮ#]`=ax_m[,JX!W2d-rb6I_0գel ү90VXduYcCp"DM![3qE-F;S-u(LO<3?E䪐̿yT2s\m6 >ߣy3-$|ce_@Od䡟83 5 ЀB>'Gmuj9:/PMYS2kMGDzƒ,՛$|im8qZEup%{KpkKXbLk$W"4|o9W#6T[un|0٪EZog-v%gyZ*a=KϽ%HmY!C0y/+Z[HiG7l@艵={ l#x]vuE+vomڨTYN-%Zh,PkZkft=q;j[ŋMkM]v2 5zaH-L&EWĖ84ܻpFyQK}X{0Ϳ=ixaU+ atL{^?})\+pek2IC7 D)K'f"UY|\k5Ro{j\y\AqA2wk|ҚwxIf~,K_53zAUY֝XsMUrw*#xOKx@W85eYVǬQON/ 0u *WLSɗLjf]<nE֭Tbk:B7 Zc5-̫+UPKH&"7 HH㷘 hsi~~iUMˊ^n ^:ZӾzŀ^^N=V  (&UU9Q ]Zuf%K̡]@xGdo+V pq LJXO[$ ~~õ`^²+/]h/h!et8.(b {^:  buL 33/5d,"IxҎ?D1:|ɚz֚bd<;?q͔l{U3/l9y~]Ƽ iio>ƻY~^^Qzw%>^<ןp#Eu\z}zKZ_իj,╖L"Eq˒Q-_>_O\ tФfXl>3W%??,nÇ%.뿶,5;;+9dy=>ԧ?n2<J<]^|ۿ5׮]#<0~t/zsQ(+IT__ $|y$4i]O Lӡ;C|= (߾okɚ/ҕQwݐ4^zt͟JE@3Ϥd['/S>%eK% |,LJdL`I~e&LAN3Fx;OOdϷ:ȧ-ERT1iq^̍X0x Og=p)mQ 0'=I:gpuuT?'iyWo+f^ׯG=켪i'}: Onvc(O~_! a|zyy)m?OOY&[7/<ϴji)|鳚t͔yS .k'ԩSwvJБ#GlLk_+L]L޸vtJQ09$ʮTa&ȡLdV X*oi:B%na=LX?˃ߝHMf +a\ Lx #1kKv' Lza#A$ ~!f5&xR7J }Gv=2V]"Ҡ1úץ6fEiQCϫU, @+ұHCln g "vӹݷ7d:$Ueq i\_>N/DjZ|^@ǫJ:9\y]Y] 0~c'á+\!NY FA>X?3l}@)8Fiv!~AxCFXSU!刬@ݖr$kҶ1^,q@k/}}N"#(v6~&R {xv! SSskW/N]ҵqLg׹G0ЁUU]i*G6X  0ԬB{=La 8.9#ߑo<5xZe>p*47,*cw9+ű~d5"p+0VAs[$7$q1߱>܄) #/lTeaƸA1h@,?Lߏ Xjp^[( wUtz 2(IY8Ң{(?.uE>x"' +WW_=#Ј,jfrz3#] \c ȴSzYǻj&G{0cipa۪͢8 $C2op=p,b)YuƒӲ2+s6t ĆTfz)\Nbt~?/j/&KLv b8'uM/6gv4}}]aNwzW{+bk ļ5ƀڌtߌ?|u7dw)+maTf]!|h8*zメUWZ/_+/IЧ՝jR@BNv rZ%ͻ aYy3. 09?P%a/O+87xZZmKlUb%rYi7|>^Y`#OzuY & 3w]\khwS6*f=L&Mc;$ɡy8d|_0Irоm{d0gno巏fd#?N_g]goL.ciSQ0 0 ٧(m <47dTI \ HJX۵e2 Qk"A>-Qatq@ѱe#;Ȓ AV WC/y, `o&yI K_Y_`PɧLR>}O}[Q&]MflͩLxlQxٮC/7 ;8N_=N?4jҺ+G%ݦCS<^>&W<zTO5)i)y~rAzuYR?_zyd*~RX/<]/v]__me ظmFu0@o)h[$;@ߺϧ_yH$us˶]$<( [-i\ۨsps?,oU5+|ybAӀIx2ߎlL{EO?'Qo(@ka~6wϢ4.{</8%keo4>ް =p>Oov8ԓ'$r&$io^/w mk/;MOR?|*GDKWIn[da2- F;T2>t;x°2lMy2UbەH`fŷ ̙s=gI_m9F.#l0Nð K?X1$9 "s<"9\:8(®Ӂ:d8ḃQ0d=eW:ɹpꌬΙX۫- uhdYgAxNj"fDt(`!מbMMVs0麷nL4%eIQ5p%7Gѡכ:\F8S&.Xjȁ}aXXP؍e^D]rne)&I:9i M:~X6dnRE@\^]}\;ܼ[`1 ^ U@2U_=Rm8mB5 }_w8rh_xN6φ@8 +N  ϾzELo)hsQ#I>ulSuص-NѷVxbjf%\[U-,kaqJK9(1YZ}a ~rx6F3-o-KhИTO3l~TH?Omݷp1=Hmü~˧kҏ4?jiMۘvU+SiCqdM1nuDyA`~䈎Bd *e-:|+`-_,EaX5@*4>uCZ'dQoH%>֩A؈U3ꇴZ8hNBcb"'MY ʈ%7znt(`m.m|K-oƌ ,>^hAdVY۱R95`%)Y%pԉ>RvDE!w㾅IEEമЩq|YV$ d"vj}2::{bYp|Kf>ۀ15Q}Krrp]/p5eIgbN85c"Vs^Z?ХO 밀4L 𹤗$f9N 0+8lXqW&S|+ ɒ}#k 3#/{"eKqЗCi!04h'+S]N])i\wwS[&%EsbXqiä^|du^F^ =9^ P u's'W|3'y7+Tha*^xt&j`߽~IvۼD4?m2چBudgq$哗IQdKf-LbGz?>HDל=] ?Rdje\3~eV7}QSjkF =`8|Y)HW5_@W\ߝd:f{<1g3ܫ'0i1JvD/p^޴.oo?LGYFqʪE=/Hw)h${z&ݪdޢd>B_˽ItA}k餖ECy&k8Mz;֒=^E|AK:%Ӽ/J,ϗ;iZDy>Q ܹsv&9M%<ѧ Jjez*G[c&g8HF<%tEhp.\R'ѯ"_9+ ]Trd|l6z9ߢ'eLYwig 3 9ټ"y*WxӧOI3zIy釺Mp?я䨥-u 'ƥ~o y4e.L/DE'?)db8-V$>TAa2@Ft|@FO0 p(yG48O8u8lU:8 6|8& %"w';>8:3tX `p#@KT EE](] 2ꕃCd o|[:p2˞rl)R;kQѫ+ DeR{X4lt\nE  <#Dz@B8z թxXe2dh2X:v(i(r40=J ؉Ү;ЅP:l*:UIeS1<TQFš"$S)O_&ѿE!N6(u3:8lۇt[TVg}C4(Vʸ{aaU %@ЃG}t|oD_xPOd0^*Zu5]//HoxR&za]+2hz-xs܋x.,Sk㲂{WLi0w?8jbmc "),L.nk;:+8x.++yv1.eHPP{bDŽ~ s]k:T*>pp<9z;lVeY0-!e1=zQ#D9I@·":/`ĘyG߱krN42VXS9@ifcRx!ۜOOJ|N ?νz>|? /e..yGcSbD.HGɬNc ^Pmd|SE5 !!%Iӓ{ڲzɧz" @k2t]o=s>D;X<7퐇 ֓iZ|*"?er 1B[>}FCRŶuQm:T+W"+|.7?ʍ̣?5bh~r$g^ƊUͿC/e-d/;Q=RO}bSZ͵ѯޖ]@Jn@6hɰW@`/P/EDZ^9!+}=po~&I^dh}dyqh%s;w0P:.K[eNIiii4FLJQ[uULK&?ҋ״߹}PSj\KbuUVV/\^ Z!`,6\eLqqe"g(fP/̌^yBkYiu^;s9@/X3YE^D!.KlLθ^K0_O 0yM/K,jo5Dw'rngK~sE4Uf⹡jm)Cm;Z8,FemZVC{di՞t}S3Lԟ4{s) nӕ>9|\llc2ΨS*nIV~h=ռ"vL,Kr] u]QO_hFnNfmLZ4 Vؗl܉>c'lo?j[/8/3?,*TYSXKЄUbr"32@O~CoG 䲇F8kfzU-Z|gQd4Zl_^B]sm.w?<]Ee9ˇxWz:Or=|y;Ϳ?_r8=|SK|zZFSxZ$w^?x5W\zvFdo?/E<*i#_ZI7 4l}mfu'OTzG 4,h\ _0YA E(ΙcMcauWAFn ˫L@S#Qr\C]?yT#ba x\/&O?%G"9~naKջV\-ФZ˴x:=??ݒc5j|_EHS~^洜4x'q^rlfg.^4 ҏ>1&w5y)6w^3B[~'w> ΟN~hR?0Nyf^)α4 ~9:7sex̴\xQ=g%]{~ϐ{Jda'Lެ`̬8e0;HS '1vxg]:KeC5am-N4!T!xMh0)bQD;˨.'^ v-q"p h[|x?'a6pdlCC' "I ]R Et*8(0Q`A+)p M|sC3t'iBeh^ +9 T?AN_d. 4)kiX W Kҩ|޼ˮ*ѽ:e@v3C5x >Ȉm,Lj&}++@@ڇܮNdMJ%QߤutX^uF|ciꒆdJ@a]/HN d0Ci;LV2Umǝ/^2p69=&;d D8ud4,BT]Z4 WϾx6xYl2cY|4?툓XRy&[Éc '<(돝au=+eeeYB6q_ߙRY o;1 ;*]CK^~\b!qga 5G>%JӢ?a ɢ*KS9 &m\vQF9}X;Y향>-ԂiC$yPrmesH`E?Y]sa$gL@,"E wT7U,ίdH.0j[@⌕`J@7&j 0Iqᑞ[ΰ _p6f{H?a `մ9A̰8D^hOl.d0 Rp%B<rxr)NAıtGz{uq#m|E&&Ic`@XbǺKg=;4Vɭ?s.:kIeaMc5e:R!],̉ŔMXѣZ[ `Q/EۼB~} (mH偷ْ1Xh?3^Pbjek#TXWXQ*ܥ1b/LH7xIe^]kS}ZB5/05H8.w^WO K~XNZ㸶{E``@5O!ItգgNiIj\ڼ,k7t/w HyX8&p;'>X }dRhRҀ,9j5ճzQfdև%N&(!~4Ŝj`6Š$=iOgK<_ >|aY*xX4.]^`״_[>H锕:3O!?YF(K/ӴodbuRF_/)˞ \30^VXE,+]˗uW\D? y]9}+6ЧG:NѺ']* KFrjzSKeR͇A"4ӯ Hh4t-NnZP^Rj&:[F_}M`NLr6z/@CbTZ (y* kƨ9Gumdei78B&_>6 CW 7H+=)TlXS=HVd0{x%G~0<2k+;aNV_~L^أ&tf߀ސzzrzKe﫦YrOQ3u|ch4]Õihv" ^p+{ysz2<Ͻ(y>ѥ뭒^L<]~e$sZӦq-e5"ލ5#GZo̔6L@T/& ɴmSڞi|w|xh򓟴ooX|G?kk)~xрI$)x~w^uf,'g@LAEe[^v/<.w•뉯Gj|?ϻH) wfm+Ç&4,Iz59UWQ{z&>K 5<Vg r[L5O#reߎ[{PQ':zYsW#VzLk=?ӴԟVw{$eD h~$_s PcjmdZ]\H]-~Г2W8Ru{&b X^\9#'AYZa8@ @W͆tQg_f,ۊ(A:XGp:Ёu]K=8έu-r˅Pv#u|(<$]87d5Mh!~RWoK]fdU1@]eOJ)qĜ'j#`)<әG6E@vGbX@5"Uy~Ap?zBKrWu57YJ>Ɓ~d 3ܔ,=@X6\ҦtcasK}\I]9CŚ A[36^ټ ƓoweoW義# w4o 737~(0WS' BT9v]s_s۫5gj#3]筧ՁH9d`1@ß p]Y;pna3Eb$<;Ç]pmM«^ܲ.k>,/&7M&ҘVc^ZCg645̷͝abcNitE}j4󦽜8pǾ%Wlćv>KÚ7OU}*y^:qXӚC6_ !4o?hb ^o/ 0Qʵө]CVWƊc0ɂ"xl'>[U8zEͥ3@4MuQSy̿s_GPI]=z}I߼4k,q NñukOЋ IY\R[GE]gay#^xP@[}5#Q7z2o1y>%a#NN$!zW8' X ^8se^e#MtȃlScúNC˸{'yIbU}W^$´@O1li\3QL#x9^Y 'y%o,ֲ7Ge rj;es mbD@>]>yՆZWԟ5/:9a/J*3zgͶ`~uZ&k^|jd|3y~=eKbMya`PB7Bf(~e[c$ >m%͝6gYmꪮMH sBWBw]/+Ag, Xb.  4ޛ2]]yNe2=#&Oei|'9dݏx.|Mz9kȲ.I(K>oVCYW${',+UMF.I$S'PM>9vm ^ɟ+y+ɦB7[gkmN[)M/ֹp0IO|H//J[y(ޟ᫖H>EY|Kmπ0q\W]]MǓ?L;y>IZ$]yeӸ4\Dxfa_ ="RI>-JOOӲ<$Omrz&kifGQvLy*CL@ɴnyeU{f<8&W¤ݯ& ,̓ʣ+w^k19gli7ĤԻxuLl8}ʥ~_0+ WW*lz*khdӲ7d0&ǥR;+S&@#}8 ңwFUg_e >mAmΟI˲XXYR]Rhy 'ۇΎşS+KM7͗OW R<(JKy'ԕ/Ny][9MyI:yҼRLQ8[~K'EzJۃn[i# {ie+ #[Ο}YߋN(&ZI :wpꍠ#E8Yr@IDAT L,OYBT[tMn 0 GrPeB*4 0)`[qphS'9`kQHc5 ٪qjM5Z@:th)c£$p5(+)t#E 884 ):*a5:ȚR&<#7s KH3L@:o̢>|>‖@䌬m0P'%lXVKNv覬I|IеF-@[D?Q|^U9ڽN-L Hc0)q%6?yx;k…+#ΨCVRtkV":1K,}I(G-n 86QBg$W駸a,JA*h L:&_>[XԣanIvmg/0cGv:]}%Y&k9[' &,MJo8UeϧAphwYڬko%px>*kZۄU=ZZr ޶ ? {z[CnIg&eS"h S}:*҉h᳀I'xmK=4YcR*<_6Y>x/UtEm! Fk.};`F ZƣzR'=P-kHRrE6|J;h=D^hlZf$j5˒XeްlP9Rz t)k,*^nP6@>k:)" "—e@GX{AcV#Z }@`Rc/Sx济 ,U7 lY<~N)+Lجu}WL 1 6d>gs$.v}{#CQWrko1+P^1 / `5FƦnIy@f.97ݐz0mظ9$w)@OTLd^YӾppN{IbS,xIbH.8ޔY>rY:v Tڨ= *YQˇ״VG%?8jobMƂcBzj*.WC"Zij'`QE6Q  7w -7n:^}J/j='W%OE3l^gޕ kA[%OI?aծ|:} ̫9%O4^Y|ZIiR٩V _K|r]%)o L-Xُx.L0INF6Ljtf@K~m!b{b"i7Ңh ح8={w&#X7e= a9(A ֗*Nj %F"Y?*$8?>rX{_Qte0ӲitH\_/ԛRxsms^VJ]lIVEy\E>Phaͱn&bkW$ȴj@1i EXQDDWzZʁzZ' xޝ9;Epjwm}YZ:d޻ehA?`[jWM7Ø# cLsH)OU"M8ŷLK~6zN(<={ Νۺ.NW/]m k0~oz8sɗe=_&:ڷmS8z_o== )fȥWupVt^ tb+G;öͲדHh@8<.Z#uW,0YlեaHҰO[RfrSdDόy&F{65u)u wdE kbI1  7N䝹Z4iOݣGko[㺢Cz=N8>.IfPq3Ђu]$wi;$uK߱vWWbfzHa⑗RźeRi%|B͐,Y T0@ߥhlBW.":uG>K!tBڙ lnѕCS nODl>I-]a]U}&*lfrS=/&7E"{㣹Cå;mrg.;,+=LEҔ[w$WN 0ysdT2Nnb٩>f52X/h.}#>Dg#~teB8EQ&\\>uLmKm}H#jڦ:U>47 -᳎KuψS؆[2D'fQTդzIDəaIVW)4#^@o!alipx_?]탴&"{}E䓾C9z,Z8b-W `ݚ 3\;9)kD7˂I2s{5l)9 Niom {e]6?6J_S .!YK8bW _FeG0 0L$ n?=M锔 K;7˲tV;NQt$pB&zIvWXߢb vm d/f/K%'`rd* M2gjKIc\.՛< QNIe_V2}A_,i $ph =PZpk49V9˱ޖ湹YkzK2w.{Y{*,t%7808J:oHn'ew[kQJФfcR" ǎ C<҅#^O}wx:ۡ'H $0<ٺT>m_-qι]vx=8/{N)tR>R5:o%ṃLy{rE>2,|QOOxW*y܇V^W<)-B7R+Ըjr^-y4Ӗ&hC|,_͇g)PJL>yju{Zyj~|⡗M>{Je4&gXPdaHEz9OJX%,l*'`*4=ɓ}Ne\}NzjLBwI.Yuij0 E&-Lk7jRԙKfbkVMSYPLeSk`I%+qLU)Np:Ҽt8˿?.jmm ۷oy`784\G, _'os?>7}NvQ3!@S\f=C/[A=L) (^}Kx}σ\8)^6` /`}IS4]^W;ӴJașͦQc4[_9[6Y3a8 nnnh!~& -'a&*@isupk Br)~) .OP8 b$y_&rDf 0Ԑ+c_ }XkX0]©ZYִ(g~ءkCÌHbpvz\uա3az^:! ~Vk:L 9W%=> +=O ywb"^ċċ}]ǽIVyZ!`n:Х>=ݻ{hBHDCƧuh*ÈuGu Y1&9FWAa 1NͰ8XV_VnW~_m:Bް3<=fWφz*Z9RaՐ!xXV7aI.E1091 qFV&ON_ \N#S{L}]mmh>2}k 'rc& M_}` #g4c!DnQ=gC˺("r*(meٸ,&`%p#A,>φ,ety vv*}$]UФy ' }n#[v 09Ο¿S<g8E@<}$:8k,Q++nB偛Yy }^3Fq qnW~j3v "ײբbB.}vgпgk8R I/ {byM swdavB 9O&N4T'"Tu~O lm1ўm[|пByG:FFO<$Rz/b>ůY=ZFX;P"WںF+zTS'FY{/}uSy͚,h( Z>,i]Ӿoh'4 ȼed;_I7≰K Q/Pi/( ʫ~zCq ~o{ [\k腏2`2=I7GLV"UN#KwڪGvFؽ_m .ΟK/ 3sX&EzNj_8%- ՚|ؼݜ W̰ZKƉ&~ZSN]yiđT"3I/Db`=d~ s/ba^`Bt" -a||<|]/\ >)%}[zz{dT}%].ۧ>ܳWt뤬͎ }>St?jzRDSwloѼ;xc\G0'u=^w(Xh7Oms-d\z?r=+B\-ɖM;4E,ݢN/lZ<ӲWzN/u-|j;/Ez__N__[1`\M~~ ĥC^s??}NÞȯ0GU"$Jq<?[W畔lϲeG1D禫\*X+W,֡RwȑqQ_L uLf_ļVdf{wQw 0ƒnO/Zz>Vw*or]]g"EO>Ѩ%O^ZdƥaxS# ҥKEt+0i:ϜO~~+NYeUKOMҰˋ/4V2px-WkFO>{<>iiҴ+QN^h[n[qEɺLCF>gyߥqyyWj%ڬ\GS>V:2q2_i|o)ƷmfsRʑ0s;<95ͻdԍkVy8YGavEB3>a;R 2SqBepBR<")8',8CyFR(>5蠱N8D<@[{|֡ϹZs|F%>K'|oECzM], 4yp`8ye4pgc2)=C.̫<t1W>(Y1֛贁0 gmߝk|>:+'h")rӰ%Vg.&/P@}kKvv΍a\VcuJ&9"$WxzWKZ@J^d͓O{wxǾ'}x';s!|%/'f 1+ZYy4³OluC@f0u\'%O{ML (ݹ)&U')^k=N~mul($~(G3BW|d珄0yEɯ}0" szcXQo{蟯Ueb# ]-%d~%&@;lt6_ZbB͕|<ԤhPwٚE{Kc6d3`rϾ wxۛgNsC 6{l\- |,wAUb/Xr<{w%"@Yrc´ˀ%TT1 HEC\͜Wu +mZɀvJI d_^Pxr[EQ뜭қ 7Р|nؚF`42UmN`\T'5.!ۺ 62Wmed|}p_ HV( u̿j]bo,Z^ x6-֏Zʞ\%}{N&5'33'U{96/}EUYF6MMulgر{{hzF6 ^zpniaԹk[xh_h׉K t8qCD@z@yb=mTm a558'-M W6^ڞSmf/e@h,IV>6lUa[umr[G[_tl,굁pV`饆~1\5̓@\9C2d GʏƳذ|,{ ܡos2ʕ/4mx^*J"+y姀Ih&ݚdNښl2ټiZ\,X-J΁liM`:ucV$y7lY4ygaBcA€&9/8v;:|06ȃ]v-+ұ">C=`Yh8?c>̋#ZJK =6yy\}M[`R'$RL"#_h~d1EX@ưFa$ΓJaF@W~uT(Qo Gz7") f(8B9Cp\9Qyܨ9,X/~7Z^KE~]c\"HMPWr%43ȆU:U@"%T T>^ *Ka7+aqFXj(D-PfBh0pP0b k\ X뜔[q[5dDJxN#`]@~- 3GvIqy_WevdWwK:8\cehJ@;j@4IAm!-B[>[`IQtV@k}XE:,DaU`md~߮wb@ p`&3!00W B3-PAPg|eSMЁ8r%@m[;ÓGiuwMd&=QkW… O^o\tȎ3Z@}ñ} m%Ɇʥk᤮<}a84"`)1-0C0wrOן#;ZЗOhI%kRIXL&.?=8f!C 4_( !@#$Jz"k ;u}RD @㺖uXֵFgBUh7 D]i:sYT.=KWsk,vu _y)݊W]G}ֈ{E Ɔ 1䀮>4n`fӢ 8j`/3k`-u1X'ڇe@@pETS2`\VFFS^]3O}M_a+g'5Dڭ(f:n ׫te6Trkd Ę 6olSwWZ:5!_fmr~υGלyT8wfcF&d`N硉axª'`A)w߲005/Z4$v$]ADqZgc}*p@,byfd?}0-P̬xVw I̕Co4`f-^?Q~Ϩs?rdf[;, *YeF*By +kr2({y,b <6*(_u5,6Ǣ1Vr ;|60gϞ L_7貹pv# @$c'EdC[m>`'&l)0};C@\;q:(y۵m%-i=ડQ‘֒µswvZ߮lH 9UWޒk=%#\O8g<3'"G[I^ ؀ehE$<'0YO_OE-~綮[{-o*Ѳ'wLe '…C8i/_`yxVrM)6rY\lO)lZ 󷔥!*Rv;;֕(zq!Wt=pDh-(Cb{Ok]hŋ:o%zqsvIXIu8_ɗiٴZ]%YBOLo D:>`-/Q4j]aۦ$͛ε0Y۷|g%~/{h5jm Og!Y輯ԇf۾dCSV` /}CK _V#L}}š7'=ۻ÷F8'kf`R\ۥ9lcH.qOF=/LpI}Ù܄ma\K^Ѩ2 ܓe9LB9B%㻎Tɿ] 's'ͧ)Xiyp9=|a ۅ,e.ԧUś!F]`Ӧ3@hh/X(xK߈V7.1@!ՠR>ϕvv>FM?M}}d)r+O]KQOb|6O8gg8]ϛdֽ⋋Iqn- MR'N⫹Z|x|-ӲEa8Ct@32?I`^z6.\ l<2ٸ3ykSTOˤrv6<o)TYZKyb@`y~?mK祧qN7[{^ҳqVWʟaG#O@޳{xxx9a#34)G8ݢճufN%9ejS? W'Ʋ-V 9q,4b>rtP*&4'49υOҳ{5Z?qD0˽^?ߩ=cu%xq ^+s85jC~鴑Qڏ.4KLN,mELYguJOu4؈^C=΁5BMIíסF Ձ)RFv_iY Vg8X%C NkTB4)?҉_ @c>m۠+Ӱ@,7rxS}9@ mVkP\1 :M;苆qHr1Xڨ:%!(od3E!',^" 4@6oO Ys9A[ 0+uWŠp'e9D `]؉)qM(>-,+z5H$NYk6n:ꄿihjZit-Bwtzh7:c]]O/Ī=,PewgSlt^эY] nLʲ\=*PƍQ/fJC>>#?3Kɏժfe6!1Xt]AͺR#O  zJu},䩕԰3 7{b8N|W@,xt3 kNp~Ϟ~&&K\-S)]ύU2Ѿ] =zeKhޙч5Q{M}5 VX2yjl[(hޢ 5,D[fp xh]+0A,107&wlv X`reM`QCet/l?KClPb֮^7w.Yz(?s\K`ےT ;' - px#\1}e\^QY0M1'1;6D"2?(@lL[|4suʣWE~CRݚF<=sU'pwNoZj"rk4f#xh3@5buM*Aq%$O*LTΚ8rTףEߌ3EK?L81˲ 0.4|˗iޙ6dg~G'Z:тq&,XQfX?^7``3??xuc&ol3>"#r-r Ƽ/+qOxU;(5Y Bt@8-)㏥(.yq[ڬ]S`5-Ry('KìYfiW::|Z@앴]ɘuBH5 ZnCY?Eƨxr~Ab"`uepfdNzBsW],(wԕ0.` 6_%=[{2=Vn<$06/"\I{Fҏ\K?ڰ[[Hk BYSXwÎZ[B'G¤dwrm0kȸ3IǘbOE-`dIc!+C IE_T|>:ٳYspжw[Xڭ5a/8q D$@j{[71D] eS/4޺) KkU5_M}Vhdҟ}/.ݐy=|9N 1udʏiv]rRI!~ee< J/|p`O^BʨD MЧqL*mksdg5_%\]w4_<#=&cqfz vgGy@w1?s)_H]?"3_gyuHs4}ynPCT/[Fs >%%=>1|F}O\6'/nypD/X4VVuge%x\ b}}P {j!Ğy9G#^,¿ԿRG߭AG+Җ'jJ^ՃW$~EVy弎Z{_I&NdSkB/j~R+UC<tKӋ^rg]˲_ytYdʋvދ<ɗ/qY4Oi>MO G>($e蕺rR-_+r2jL>Ӌ ^ZIʹ[3("$`I,P.4n&AV*}NL{h;|'˷絡ZV-mLiqq^~ZqzorOyN1jIzA<>i4wyigJpZoQ|0`4,ϖOC:{vJrvdg&|,494Wȕy]ٵkn&yT>>cZ=4)7O3`f*]M*XIՍړaш_"~4<maBcJoO^9*.etH "x-l7)Z!a8(3&/@JXR%`v֚(@rX(PќbDajlV-eun{9!>cɃGIܔJ/JeڔpF{=(iWVJD¿5@鰘 bP2`pȇU/,QC3ڃ ~Zq%YX9BG3V[++m!&$G,Q[Vj}.=@h3(լIM2m?|xOny6 &L (qGisuĸr,i0- a,LbklbZQY0#hׯVYۚ 7&ZV6Gt?&KV\@Pj #+FG{ź5r2,A,ɢ$T`m:*%;7E\,-ptx_XSߩXfuub]5ܟ8N5S{pqc<Rr8e@dir׮> bLuZM_h=I ׮.@ܨ Сua[o,R0=MjA]S{OW(_QӡNđ$4j^g}#^ۯo 7;)^;lƿ8x8Hm τppM&eK`+cuP߆4Xj| HUgܡpݚ75`-,N**#\Ƌ'2 $ȱ2Y"wvh-\r[`l,2>~11 GDs2Wƫou~$  b"]LFaNqN z:53 6JoQ5h$c+c3<4ڜ֥ԦsP UMk]c?7-md>Psk-š}6KV?Ȩ4ϲh` (i"y 6CKhX1/Y6iA{aMz[H2uß-cOs|m%[sTg29J8ڧ F @wz6%2m@>KSmvVG_ZħY؁1dzGJ Ʊf!j= SqF5r_;@ ;il z,j+6@#^]]/0"rcp$<1.;x5=lTܞ;#`R<lCx=߬ȯXƻ){{CT{]ky;Мʚ>1%˅ZO_Ǹe ?Ni:S<}K"7bif$"g'3wC;&z‹Oֻ-} >9p==y)|Sk7~t=Lj3<ŧDA槨o|)Aw䊠ma.Y}WFFF9'F%. Nx t۴?[E8 lШgl> ~Sb~[hS{\DܳHG8M66j; ?oqb!`ewBŊ-;¿V?)`kTkO=A9V߯ x*Ep ӾO7)qtO{d[f ȼ4A;y饣]Ctu1icqB~ԅ/T7ќ)$Uđy:I>,=Cm/g˦iЩ_%i=i:VRu_-ot%8 _۪Je}ko˷){6mX*`%ˑ+Rf<*Kˋ𫥧y {P;ħy<~;sׯx;c1K^^UY_%s6kWsVSZEi#3yy\|ΣpO6h6,i׾Օe˦”Ǽ\ۄq,:`8?R% ?kgq ?q~: N*Jyys6Gy(%[ii:uٳΑ:y׊y<}VH[Ϭ+LFSHa p?L ٣qńa4 te(Asi`jY(ᘮzhתé687g"@W7@dX@&r@eq0I bX9C[:òID28`RB%;S:pN5>9rs.AD `desP_ %d^x0!*q\SuXZDv"Pp$ X @"º/TY!ROTz8Tmf k;̀W^Ns K' 4)~huЍ"@קdaQ5s[rC@Kt7'`ڜ,Oqm$\5.:fD'`_jeɬU6FO`jBR;twg V~ujgV [$/~b L=%@:afuI"/ 쌬R Y&]bյE[(ɒ#'kuka3ᥗO۹pJj ABx!Eɝ@l;wjsloD3Xo< uO {5^e^W)kKvݜX[`Rѩ03D$ ̛./yNx< Vۘs,! 0錧Y Q!Kae [Oڰ.\($Y5l<G;]ԼL)Uke]J2ݡgKOXZdjJo":uVף_z] {%0s24`|t'?׮L PW}nbE[6Hmy 2&\ds!WjMŵȀ(=zl2pz\!X]G)]\V,mXUPlCViל$M+3*gd@ݾX[;DxoN0Iy("ol ?^کp{tT&Y ;t](Ih<(7_`J.9w˿??wlf\M>1_ vE¬M 6,5z0@3^d@Xbce.Qk .^i֬q2`0tUcU= :b]% ͓)ؓ#uA.Z8oKld*L48@{ܡKy& uPM `F7PW\!c,]Tm@(Oz=k/u:n YG SZ{C!cuZºik~BǰzsR}q|Qlw&gD{Xkk{$Hu &7s,Ci Xҋ:Yfhm"h!0%˸ZGe]vg5\E5@:/6׫oR@TwXת⯷3 {w5=~ 0@W0kĨ^Åτ~·qgJy ;ӤjW<9rE9یuG  *KoѺ=44^AM^oV! nԚs&Yƣ{]K'GCzAbP/HJ̣6>Dpjtݥa[ (KQx^F`ŕ.R2Ik4rBG>1s m[7_f^`&|K^$<_heR5T|OP[+ ȍ̴hDPNR%chC\| m-`$LuRmDgew+/} n $08 dd G,g8O}Hg{!{Yfh>0[^7kݥ|9z@xvaLo 黉^\:i߳pM-2&^r7@T xy}"W*cnJƥfV~\۶v˯F*X.ꇬ̜~Q~"[qڵqWI.y""ͫ<>+, ϗ'oyl|Zfg۰LJdyj?KQ,x2 ̶ݟrRەM.HMwYyg>'Gqoao(YN(RDy}C٬ɓV, J}x V됖9^Lq2~/bߟ8H]^y*#>Ç1ߨ47Ÿo.:v{jqrٴsQ>OijJmKe/}vjIpM=9c`u:A% t2seOO,9 V|,h֭6Zs̙rLJY @;m)իe>ټ^:p@Yija `2_jSO>xZ?^2`rBWrKu:^՟xHUTOP~#Šl;dny^3YCI26QMuqH! An  I^: 0 P!V)l5\l*l6\V1;4E68n@#9QL(x8k0:hM: tqp6 , $uQ PVm7"9uP/Zu]'R@>K9PS<h| Lt ~VD&J_(`ǁC M jM0懲)lsUXΤkd=\},3[2xۢ+2J::7y66bNtO ,/n(fJzq "0 OOԆ&.(dJZEV\=.87û҃qY򚔾TY;G+rE}{¾:K]Vu[Yu:z8\}c0V4Evp|tWphO]ݼwV;lBҍᛲ""ڲ)i|%[]FvE|5RMgf%:l]8تk.y X-^_0<xV&!1@3Xh_Q.ѶOb:c || 2V::"Pw:X|K13XWX洦AefmN<=T;YsK^Mf-@q2d_fmVUCyY>X`K_4*Mw·>*{- p }0IDyU=X+  ⧣S*VW/ uSUͭ'}Iٻɡ~m3 *.U-ҕ VoNY 0c^r`"I \p}Hb-7 X, mTѱ-'%ۺc3G¦{ڍ/ ͤ{\L+ _ƛۯMKY.3v0G>nYN#ILHJy|Kgs8/;#(wtXb3gJ8uo żO@'dS}0eT?C7oiq].KYyt9ezeoq䅓$Xy_sgu2>>/_x+?8m/0WOzÝ{p"#Ï 9L><~_QK72?x9@߮/-ԷXW6^, CmD^XdkEwfYz1}I=&4Y7c#g{ uv/lO8,<}_`_l2JI~wUE)vg>xdpU{xYסd\ q}}8| }I}z+U&dr _2ǽw%P Ki/w#oWY:͕yjFJ2i4"~t,=e~mt < : hCBJ]x˦eW(oEN㾷%}Ni4o@ a_!g+ѣg)_Jޔ_WSirgUYlZܼ|*Ӵ -u<L0u@iR|v91s}Y Nd=~,}y ."ޖCkSY1W K^7s09Pp&v9-|Ϯ (eӴ?9rE7tn"=mhO}+Si;f.K]Kv/MO˥&AK$Jb: 4C828ybmD!Xz$Vr+VB ])PXzA"V#uJj琖%,BWG\<M_`exݦD 2:,b WwvA%+(R،2!_1, 7dHx#ZxS1k#@J8WAFXoj",R (L O !~(Q j>or@gLD`&@q@tܦ:9zQ18LF[h-ɴ=[ACv,Ya +~u$,-fFҕ0!K-MBw&؆."loн-\UKt`?-t]1yRm]f:T K0VC %~i `[uiq -~)Yj*Qf%_^t $m 3X.O2$k[{aI`{Gf#[0ÓOȒWÀ, giChmovo5;Um^@@O_'sBrٿYUח;'S.5+9,9,䨵[5jLIz\vΌ?;F? 02κv[zȁ9bS,m08uG,I0CXauCFqu+Wn>s8?~BfS'd~@b3:cs, KLHWvPQ$ϱaM#"j'BGWҠfLC|EC0LC@uehqkc[CꠒƀQMMXb}`b#%z%IGKs ];/یDƘrQ:@SR5mF 덼xYnX#+oeQm3̻)Ӛ  JxU1pŦMJ#}?}၁!m^Ǣ-B7k>-a bD_06"J. $Gl\!hCnP>_ 29U!ݺ~G–c:Y{065μ%ܝ O^9KL8wŚ}&qΜL?^m`9yPmG+}#ˇvt؏vX嵚|&,YAr&8|oMO2qYn}otqm~eO-m]hy&*Jm]]u\2iOD$}_n~'2/}jޯV?ͧ@K_6}]l| W:A4~g:~rR9, 55˸ѣGǕ|E r4Yhr5IK깲n<[GFv" Ld ޖO;(Iyu&L 4La^ei5X2ڠI9 ˠ6Xdǀ'lq;oSP=n>$gW{=p@377H+Ǵ *#eH]cHkPɼUT7~nE0qg]k竟>Y9mNKzwj(8G- :eţLAvgwoMYLo/y8A:|uO4`<ғn^uC]=r}^-T؀Ʌ3'CEC G fGCq BA ]!vO"n* r$^PGH4jqK#EC\ P!<qV< a܍L=X%6ʭzZIAwԳxV,rW`:v\ȦYqct;n`%|nJ~PfnzĬ2/K0^,+AIKPm#qo9z=Jг*AT<3Ac2W- !xcM*(xDϒ:Խsvq XJs&cRzڨ׺1ǃ$6#*x>;=MƭNJ!ˍZ7cӇfv N[]\n -r耜(vc//dfL\ vݠՃ@Fivm[r𦵈'-u"NԴz `ctnv3!X8I@yKrROjІ/=`#VϿѼ;1O>T @O@Ͻ(^{ ^T ěH P_no`&xN:!eɫi}Ml4[8P=BAJ<7;0wrfĠM|>ٳRJ?H[)mZ YhE.Dh#h!ۧz N~7ܾG˭SxDyb ׎N@d/{ӣqB[6^CP xzo l;#wq2.irTfM"Q~Ak!]2O8nI g2#ݶ%9k$e}Ϗ <=_z٦pZxoä`In@+8@>|0("h+>#$_Rbӥq+ͅyg/ ;:F҃t6hLXHy_^Ȼ?_]Ri30:~;OY6! C`: Эu;LC^y$rǼ\蜢ni\8c=mm&S{VC)|'@}41 9[&SPnxl߶Qb)|h>SL|s+ᵔ s!c[o$̱Qo1[?bN&:TwXP_mQds>!j Q`-f_l/e^'qѹ!UYt)m|}u8nbQXyCfǏa5:(\y^ͱx[ۼi0^fig D熦^mZaʭSv0*uQ.wrݹ8xO~<^~1MwmNovy"|0Y)vxƦ9,.^ot˝]e'[i?'Ai_?nN_OO|3mu-|ڣ_tms֞ ~/q0+(=A]ᇂO5387Wv,^66G1fsvyf:כϞuz?ǼgZEU!Xcӻʲ,8=;l3_3ͯwv|,_xulizM}>GK8#?#PQary0~H6 &kdCjv=3 4^ BWL'p2x4^dW 0imoXR{w5y z#Mg[ 9+۲<]ȑ#+@>3o_ŷ_\|hW_hsgWzW\oXzMՕ֎k?Ҷ=wuŵ4w=>?~5@hۥΛq,׏]}5.cL?Mo]ƽQ&k>.7ek_=ձ3פk?g\Svj3Yׇ)cP^VYWo=#W ʘ]LkSg NN~{mA={Vx[] m7w|h o}[}OYuZf}?HU&ObDlC v^12Ɋ&7WF[C۰P|HFQXN 8 04=jqCͦx6۠r\^1Gnf׾1RC٤HoA* *7BEu4n"Ѩk-1(-E6A@oq:<`CÍ)u*ܔC&ݠc n&0 4i_dC>uAg3Ǽ@>=E27(@+Wx>q-,Sչ17UlLz3I ~՟NȆGrFzqRArmk75ؼiѭW̼ƻg$mC}왝h.roi.N[hQ8fzn$c^npo{ y)' M#ZPa,3.څ2lߝ;,֛۝8xX%W]nbScg9w =7{w{:\Ly:޼y:^ bFVr[}PݡxA(oJDJ4*1ܨnR+'۱P o, 5/)P@IDAT6 P9B[s.[AzP-#^耟:݄2Fe 0.suQqIz1@|˾,5Qv'R˻q.`%>f ,dU[$#I W@Lʿ_ڦLW7Y\/Y+5Ϲ%IxEۨRvt]:#Gʲw_vLiV&MӆX;͝6.&SO}Pk@'=қxm]0`&㹝z/~ x$/II듇Y*7_`R>{mkzĻ9nW{0dpOU cA-!}qKzt]Fa>*mp3wmsoO`ҩ+]7_ 6@f7s Gq\n~(sm|0XOMb_{5wmlQ䅛}S?}:,^Wxؼ΋Z?0jır~ӟ8L}U&F>xm1Ive:^Az;-ǢK101)~O6%\X$Hn/Lp1x54^mR^F#⭯',IVY!ՙ=N>Sut]~xwH/i{[ `Oy«NJ'Rqq/նQViѩiΏe(Ŝ+}a+E@iH }Gktۺ]:i3?Gֳ+-4ɬ0YZ?Lf1Mzv)8q>lZq@)k V5y1&yw5LǏϵ}&}{O?t_xe%ݠgܼ&6Mk.ғQ^+m8eMW?ktG;3jvK~>Hs}oz+OƵUX>5z :O؄.B2]SLsƏsyX%SIy?NЪ[=.=9*i˞7N^:zjءCjqխRv ~ӧyQlK5nޚg۵eZN}?\6(g>{3Ipz Ts'b@dQ6c#C#$K:=hn4  &ltF^sۍg7HI;7(0HRT,[ROpHuǺ ʸAlq1Kl T+Fn@c,53&/z7 _|u ?7Z!Wx_xN Ƞ`g BW<5zvt ]8#NRWTT5WLN"q"2cYX D>7`G6w3{=`7@"iG52K'8iM,ƞi`\lnACia}Xg#*ObSXYPnc:Gv.Jnf9zt:`H<-=?;@#$8v `r;77I0),neDPIliUy-ڽxz/.t"0E:=xPvop83M8Ӝ;a(՗n:r0EIzq幊=r3wٍm2H<{obl%3ִ7]Ҝ[\ =`¥m*NFm>cvP`=ٟgxeros ZxŘijzoa۷;xg^tz]_Y^d^r>7], a OotPFdQ3Z\@Rv_>sj*ِWG\ s%v0e^hcVuJ-< IPz:EիVLykq<6(Ǒ4,->ƼyczTΜQrIyWevooW*.4桏Q Ec<9vs-/=Qe[CW9fE>EB)2w+O αUW_c:/],@HYcL#a `iH_0Ƽ[9ٱjڢ6:B&uc9}SpCcZ<0 щ`߱~ڀ\Suaz X'hMA`-F\Jy)72 d X61 As "4ECԍ )1rأ~kL[gxBOǹW˺CcHefNf :M:v%Pz̋W9ޖrdI>s%^p`,G4Z\ ˼`gZ=4:7o`l]>ԛk5,a-qW~< /<OPs%_gz:e|Q'>=hRl۶&?%Âvѽ0K,xVGztӜӴ@ɝ<h2XT;LtLl[C`δϺư.$O KE=Lj?SxdZw0DZӯ>zsX ge4Vۂ m{i>YԙɩcjoX9x s<[ϿIQ;G܌5s1=_!'qfޣ;ءNm7?輊Eߔ*?ƻO jsPM v%cj1+ʜgffv{|f`lS=@ua˚+b/ W6lkl= I/x ֒ūkm~`\w>GY/8~y~wu9:-&/Bß߇A2<񸚻>xz>:W·/9GҴu6yvGUj'K?d9|ge#N^<ʵ]N]k$(dIS.q}2hǵeq]i]qkQ鱝]xKkǷ:E%tiN{wWY)(׶,]j~6/ӎ=c]GM^&/I{i_%uݏAɝu&Y DuI5h}W6À]`Ic{0`Ij9G<|/uZ{iwѩQɲ>LҟWǼx~Oqߝ I7}w+=>|λ=w֡WǏr?,i *c]~YΰtѮcG.ڮ6]^2$ڶ{joΕVݦM>I_?}^۶fsie|*//#-'.#k~NkҶyor,uƿ.Q+s(?배"ɺ嵖+.au1̑#GkO.ug? ooVU63τL*ӣ m{ǣvkːyGaΞU:znH7ZhgM= ㏛L<8p_(G[ >t3hʆWnqlฉ=2z 5l.. M\6AȯfLK10n*❲((Cv7XO>dr%XF&(y 8D`BȊ.c7L  S;d#Mh{98OZi]DηLݸ{{뮠u~H&{< k?d4'!!ƅۇa:(c4kp~Yx0y޺ )uvRw=VZlO 5xP7ԧבUITOkw܆w⇾loF>;~CWbF8ǼcwVa=(nг^ȅ $],9q<^`@2n9~mӬ[ Z_x؞Ң3&X E .t~Иՙ/qO /\'8 H4`7[i[RȢ\2đ[VxH'1|[JA9WF½iԎhSu ]\.ζ?)rFxrGy;5sqSpY[= Tw12cٝ=|3 =]|6fhS3u2g:>J<^_ТyX sKcGv,Xt#ؚ&/wWkYY9o M*kb~I)/m80pփ&|| ^,[[wwΜ;̦7K!.-qb3soy/ /rs/ټژvjsTw݀IhD8tv%D#򾌁[C'0Ps|~fAhٕX]Mgy!`sze|B()Q]z `WAz/7wߝx`C-m+VZqMv0= )Y0 = }a#֟~g+8aDYwg/Ǖ3 κ!LǤحidLp6ױ bsw^b(Nh?}>ɚ ͡sǟ^DZ_A/n#}~@1.:w4s Y_=ݾ֙KU{f C7?%?l.&sׂX󕼖/ 6 !~ Y"6tHt]:_ [0=$p $-D3vJ3_r)~L Imm >'4٨yWΖ@P_omz:U{tEI閙 |h`?Yg=<|kà>RۺAJ.])ˣ{G;u1I3j{kTkqxe3H̟I/>kN_٣uӭj?sYsL[+o%?Â$ s\]T}I?wIGr{!A>?56`Pad`r}ߌrjݤAO V5yyzA&WuGˠꏿ )c&M >ÏO=:.?Y?Yn^i:ׯu'wtqiŖ{Cxn:޽Y,hv}Ej].ia>yZ^2Ӡ tJF/ltOΨ`H @\ԡ b+_6}KWzsc\ @<':GCL 6{Ʀ‡): u9 ؐ+7{LE")C(ۼ֩A9xq3 ]%is3 Ln.4/@!nej7ЃPSS&2(Otꦯ2PS6$1&ύ?u6QMݻ&@M4DsSYv ʐ6Q)$Z/eKC=,uC3lHZ-!@K/4C02%Qωk#M[T(p^ i FQy GF/=,G7s ;q筓'ru e pZԷ' PKB0;ύE6+kئ.Mh.ؘ@J}cLs^oQ rM"%'. e/5ۚ86ةf )"'MR_8 V-}N783͑?'x 4<r- 8Զb.I̹Yu GH BjIT7"'0B=EE/aw(Yܹk.6u psm q0y"Bx´?o>ڪuM|;7O/`R[g֮|1‘i4Nq#p G,;雩ۖIwSۺK^L:]Dhca(~8 wc,x}{&qAYn_I,T[ã]-ņn6Wo_.|}Ezx:@1^ :H ^nڜuE]W}[~mܦW#@YƁ Y9Eߏ1&cV>ǜtwwMX7&HWA@^ז' H4ڼ#[/zୂˑ3@Cem ʖv YcstC0}@%L @*o92],K26x\ꜗozn;I 8/l|C'W1ZeWTjW1MX_fFҘOݬ|u': ;/j S[hp5<ԁEf[xĶ/lB}1:vkOa#8y9g)ʼn8B9%^`.tPĩ7M=/[̛oL_0wШmbzc]0GEO1Cީн:y ׈ƾK-_D#)MwCܕ(]bmTW\-ggwEug\h ۆ2Eu2U;Ak_01Ig>pBg(#̡!ıOx;9_gXCy>a]ƁkWSK@XuCʘUH{-eVɮZK:RPmP  ]ltėdI&oѿS|"MSgkvg> z1+X=J&tL.dԍm1 0;'`2L@b>{m045p+_JFw} , Xd>u< LJM]ې|`L,Cq^:nOӕ'}u]M.>8vٕW?m~u(6,]9۠&]p!`R5}:Xx~s;W߷Ν;iRז+ǩ|.@ `Cz\SkgڊY^:њ4VuSym*Ħf9AMtqzn=/G妹 N$=H>eˑcvJVn 8[.|Ai!?"jڒ*S|"WN0& "C}WIWNLo\.{A=er+~vd;%hLBKxjPDJ8Sg.n9ON⍋cXoUxc, @ײ\ˆ=xmxP%~sH}dTVW{(h`Ȳh tX4)pĘH%qAp )ǴZU; B[b!M0~w2/0{qx/?c$u9vM"Gr.A]o::X'Ř՛YUOIWy"o{>5\u@2n:~8nNA1[w*^C]163P+n0g Y>u'hR:KN̗ \6n~p@Z1}X/#~dYGvfוb&V.9Yx;sve7Ih"ahKJQ0kkINI^ %;磻 uv$XRS&Gz6}ZAI\]40/:^[_f P9س,ٮ>qQ7]g"&zp٠i dA0֖̈ z~;3<G 5 n6 &0gfA694 WnDݴe.FD%OE )&qyףODZkϞYߩOŰZz)ebGX-0M;2~a} I>/zܾғ}(cK*o ŘwCN wL _Fc0BZ a K)N_5/}tv4uaz6]o9?^@cA^ER@\/8XXZc3fp<4hˬz7~?Dju~0u~e1c ~6j|JLK0n:'][W7u%װm:3]n]f;- Ӓ~5eieóvY>B; MNZڀ(]]q)󠴤y/":LQ%}T JSQ JkE[dK&PRyLޏG|q2;y{r3=5M޷,;=z~줹ah2e2k}ꁨq]K_N QB1?($ :ɶ |*9ä3c޿jpG,zKg]6Q=DrAޣG)ŋQϺ=| 㻀.,{|v]}vՠ6lĩ+'?~<*wэë+qmgZs橯&/9 g9~m7njɟ7v7|2rFˍC0+2,+R(砖75GDArTO|J¡W+I Vg y."Fc 0̥7"̱!>͏Mrts^HsGTlޅlƙz#{<^&NteCT? ?7bC.czOc)ϱ}xB7Mue>~^џ)<68nEϲy$57D6<3i# #/E&2{`F;7W v옎s=Xl `(Q0]՟*2Sy;H?9 }&FJ? K M9:Wa W?=Mf`@; *^SRwsvpmc o|._|APl? ŦJҶlĸ| ʤI[c99iox$Cy.ʜ_lRݩ3HYl+kG (3T.xz5/0|O3vY`s] |Ut^s42 M\')zORבY[V_OXg]'û$.n£ ;%԰N= .z`'&y^w<6͛g/%z&rօl./V9x/!5ۜ_g8z3&dv[\O;x:`Z_9Z8!qn\s*?&)j?x]7L/$̓]s;zu9Mze<>@kި (v5=LbWџ>f͚ "Ҷ5zh2q0`x0-Hb j'?u_Ru Gls3trh(5QGEnU:*63t3XZIzwL =Al^ۅWF}?byy͓=k]f :ca1qu,FtV/gO}o>BQ{A d{պ6~~0xo4alamawէ_\`&m?^]Ϳ<]+/woZW|ʼLtm˚ϏgT~B; M_#ǽL&G Lyצ˯_,vq]#Jj8zD/++NyQij.u{?~?'tmrP{˯~/i]~~57&S>z ~>v%jdA&|7qCd[e.ʗ.YGrL IC4i~IkФ_y|Iwӣ#`Q ^㥶iٿ]}&?=U>G[it+]8Qߦo?g3뺚<]|A:g9Ư-GMW"2k%? ` Ǟ+e=y=f+ۋK"#Ņqݠ\֮Wt=Ԟ`R?x;F8zl FEnG]^&}7Gcü:A/nEO7oyj[>SƊS5r$E~M(\]A|{Cd4q }bzbq~(6`382|;\i  nLS-qp<e2BQiZgNKJEѡYƾS cO0&h=<顫 _}Kq Fc@IDAT9<~}M1/l@SF:|Ѿy%B2'a'O.۲2XIS&ec_6f/ ^/1K_^X9M(7^r/1)}G[ިL/q%;.v8gmTj(ehg̗6g^䗯 #oyt~>|:/b RT\^ nFۭKmu[ ¤U~ӳy؇Sʸtԟf!>،yM!6d_E;LQzE?Q`GT/' ė rqLd ]MX[met,v 4mN A\g:=`.e<ޣI/U6@3=A`|eqm ]dSvuV^YRYzs G{. yp_Zx+8C=^o @}@Zip &zSvr _]&**ma=W>f 1cN_c]9XllIdkԟacؒB{e]WU_c|99ѵ6*iv]ͻw {S'mI 5L D=SxuO6֡vHk_/I"k<Ǜ ka3盿W7y%Djd@Iƨ^ޒaK>}{>c}Pqxuסa ζYY)}񕇕ȋ1֜f] BF0"Y}\{6v{%7zՃx_FTRU T5`rt۪q#u\-qx5vdή:~teQҾ}b&;J]v~\~[n<]idh筟Ǖ;}ʴryae_ch&]dC>6L?jza]QJ k9:a]9!vܰۦ3>婿eQmO 8(5M5n?g|}_x<;z޽+w8oN8q(??dT7Q?>p_۔vϒ5 49I1jpO~>}N3oZ?FqC}iǵ'N_rs)l쿙f9שׂoM~^-矏}L*9$`rMW.AҤߐt]q]|_Zr; YnjA^\׵+Çm]Q I[!e- ub7v;(dhU69Aq-:oF?mcf E7bqMbitMrܲ!Mؔ)gܯ0,& X˨?^Hr Zq+)7:~N4yhKL^h=2ͩI%zjH]7W<^t+PHjz\דe(ϖ`#x$Ot,xd}^!k؋,8Z-P"~_reT\_tx]D8NXdَ 2iN't%/-{־vU{ XyNccMdy&Sܝf3ӌpJ^iC/%&`Jzumg0|޳~,˵ *g>scs k@ 8FoaFe>VXĜ'L%nؗxI-@LQ7K`I`Txf7V~znӖr<оJJ+?Yjܱ;]HBkRGcN}&_$yWyԓU 5Yco9 ǂ5?ls  G-_~'9>.q\r`^Gӫ+Ww/3\ Olp|1@M/%"2cѻ(-^6or[k6LAwXgP9ulC3> HLϨ'L̻ccmyfP?@%uGkmu_Y 8rmUM9jC;Y. #6NdG=;':lf>oW^&Bޗd WY?9o˳sc:<#K!e8Of{tRocyb$;~tM tPz.o/G`9.\c]* 1vr$wzK5 Xh~V_imeDl&W*E6ys Q]a{4_XPнޙNnBVAG<| )뮗wN_hɧw":-Pgh>C_-w܅5Nc5c2>ӽfymIuam^GMOY+]rҌޕ/ѕ6JjՂ'۲:,7 MMv;s:kՠɚhG lQVE}ߏ~:JYWj0/ɝtO7ݛ8u[d~o NA32axrfG~SJv+N3*6ݠvZW]4V֕W^~\ۋ†i}\'8Ӻ &^y^׮42d9^;'']5i;/Ҋ<2Ou|; C;OҴYF;<*vgt_tر)mz…X''ϸtQf8vXUQ^kY^̄gcʴQ˶y׸|G-Nו֎>`SXu徾qU*7l n 2і&#sДkƻ f63_в;A A٭KFPٴ*Ngq2b^eB|tIafd @`R@inE t%",qk9y^ea.;o/Nx \8u2 rl7ZW8&6Pʾb xNz8.@U[^̫~iKzrbn.%c`\d2@17 w[Aο_16 9T PDq;y(6/^ ^Z+PNk+ GB 8We#O93g {~)%Fq=:p~`dM I/fs`5賀틶vV'I{#e,h#O})C/Ђ /3?_ސ03g/QLxrjt Ck /Me+/V]O [$k&;>X6^|9海6/1Ge=݀ &iKxC2نњ>,&]7xqx3tuSSlO0"^Q=LΗD|A鑹Cs.<3Nl-2o;޼@} & 5d6 >26-ȉ2j|v?U,$þ}.] YսO߾2W_| N)TumZ~'`sK*ū״k+7vE6Լp/v72k&;$4X{\O=/87)ɯ8`h+"a78 Vݟ~9|x*}…Js60 r7?Uy׺8d^y ڕ^g<ɰqhI~a%O;2AQs,Zɫ};#{5 `yP]zԛveV(T'?Wx.r=0|{)F@q W.Q?S'O׮ j)ח0)R}QN^؎wL|6KG L@x:ߑW먕?d +~|MmǏܕwdֿ LQiэ6.}N]VSIdW{ *g߽eVײ L8q:RF랲~&ZLگZeY=NyЕ}>{wOͫu5`h?)S֡~dm/>ӽBS?}ci?g|^һVC32ѴSJ6,_dfÞۦI~]ۿ/.P\[V{3=:1`XfYǏ͛qQ;U~~GezF[;vt0^Z6mdWnK3&sdK9d4qAoPqe86i,8U&?޿RscZlQ,nѫAٜ׸ l)2+Kuu&6D!=ٌ=銱. dž ilER,aMlַSI*us\uDgH Vz 싣z M_lIv&ytf\!2ٓȡUF㕱E鑔qƟV϶s΍`E OoAQʻ 5|K9cdrc|\JW<Ȱ!g?S@!X LJ|zD h6kٔtQO*ڧ* nTn Znp+hkRz7Iѷ!㱬$orش('$wz x盿x; + ;xl1pc^}Y+x! m `BԅOg^a"Ǘ`us>}0=ayŪ?>ihhkP*nmqmԚkhyZFl\hҰ9n/k!I3K}꼑jMs t!(1有~)e97!>ѲzӾep_EZBJb.%Mȧ`Q9<cx.%1[^ fh %`L Iޑx ^BAPT:W{4c2ŜV՗uc] |vl{&]p<3 \v ^M|ǧ/rzIvYWo>@'5)]7xީ x;YgbGBz*&3gK(rst暻טG, :LVƸwi=M^磼|GbGYB؄zr".떶nי}v"j ПDŽ;x|ebs!>s9nM8%pYF2w֥C ̟W_(^SGy_;#}_M[t0yOAQCS~PAǰQ˗Y Ɠe"Ue]Qࣔ^ QآNbʅp 81q>{o=b||cxko("<#̃ʦM_YnsqR/9Y߭•^-ՑJ&I{I6ӣʵ lx0 OeCWLC/5ޱ[wҵ-1,d{~Fo[֤ܬJ閟0Y]f\_Zyxݶ>+__PyGLcR/}oC6+]/`rH~G^~.ǯ-;^+[6_ݷ2VuzCe#O81:qHZFUA0<і}[iE[[kuac]}tWnqUr}rq޷4`򹏓?Cn,Kl.n5nlvp vFNn80@ȟ* oFx I#dap"Bu\ּq ?>1 d#I %\2!7 ⣼~``D6&"`*&@ 7t B:T)n :PslFH|,s\ӛ 9<{ԹG{N ~H;n Un 9 _3W9ًō1>="!L^E%܍-Ukkx0)x6>ӛ֥KyEŪg`ʽx#hׯ{ਕ5ala{Dkc7x8/>06Dmk:T VAE8 1APIhvDM~i YHtzyVƑ"ϝ;6zzdcc6.@ȸIeǕr|hr\@"M?Ȇȁ wX;U/S8a3 zN0(@*mzƏy+~)Kth m#=Y`^AHбjs J\rcٱ.%طW=چ 'p60&_\*<|Fm:n*4'ගyUs 49̼;u:H!.l@x\ Uzy5&))ocz&KEt?:}ꌥRBb҂~'F:9?N,dȈ iu)dQC]0B8%&{>>u/V+!Hߑe25Z1˝Lt.$)yУw3&MzT_z(/>:G4+7Rㅆ}%X̕߶6D652$ID@;] @6Pmiڷ^ՏDvAyɽxe\X^v|!>`xVwIa.]5Z]9Or"6nmI5l"*<vN6 Up<5m+md(@bxK*ǏLS^.XQm|rAPk3ژW|!E;`Im/+\g=:rnpPGSqgBwp~>Fŗ_lO?]eԀ$gߡz|r= ~Nh@)h[n?d_m}%$O+K7^r䟕|}r˯ ]r~[sKgVJ/~\n|wֵhuKQuh6s ,٪~<[nFl{rΛhR=-gIE/}Vyfճ>6~ڍ6Wik7_޷ϭ|_ы/E$YEky/]лd'G2Wո;ZFZԵxO0]R.Y,hV\%m_}kW]Al[W\?ic[R#϶o[2_/XrtPu?m?8C=N\cFcݽ/ZmzŵYmmtl+y+n5}\_V-֧ʚ6?o-i?,0Lk\ۯ-oenCW_t޷y-K^i-[]:gU!ڥWyE{*ͷguWUUǾƙo3Λoa{^ҷsm!sKwމwiv;:*MR}4ۺT>M ;~'d !wͲTg 8)1wܟ7<[<d :f`:7|:q h\U1DWVq=f2,v˂/󺑜z7;l C=Q$6@*G':{4!7TsK}:D!_պU]O-ÍC20 6zrZ>x*#* w1o,zUs0YQna'_7!G|.XZr$&%M#^<``:ԍO7Vgm]ɔ8Gލ_DvHYe/>G"v l_Ƴ%+LJx&Fڃ2l' z6dmdYgcr hZz(q=,^zW=Ϧ7ᦩG5,a~њ9fޣNo\5e:$nnG`= \Օx&*q?%`@@C^ܤM/w\k.X ԙǓ 㔹 n~z(X@ #dhnnbX(XGrk[wZo<Lw#w}jz ^n\CCޤYx 燧/1ǟ}}iz8= t5CgR'_:ѱ1V溏my,@U ik&Znz~ >#u X^dǼc\,}g=6%kwЅϏEm rr0q A2+˷&1'q#f#r f5P]M-3Y}[_K1Aڢ;Xz8nBCVb_=Gŏ!(s@]i*b7BqwH"ڧusͶpk-4eث pń BLzΏCMyno̕9 SU34+^l] trBSns%d?iTY3>e_1󵶏(;]S (/}=U^ |';啷4 Nz'dvSO?ڧ@k𼞛n7rRgC'M^u~iƒ29N v=_dxDj|ѩύΞq}Lڃi %<&m:KMLT:.;mp/>+N_ϫsuz`\:M^P( U$o/JhFkÚc(h1$=I¶%Al. ,`бTvֵ읓G/[=b}y,-XIlE]&`2Q|B`kQ?S~@V6 @_N|x`<.D{Q0p‹T p;RG1З& /űծH1S_x4:H%m1z؆ 9^ElcxRɤ q/+5 G\,emL/wYg tptB2/M)۬=>ضI=6ume=^t.t}ئ0Oy݋ )"E1^0v`/ڠm e5_L x{s~c2!M(A58 ?rk2ctlWzw[Srmk;[gECyVۮ?/t4 ȐM͒dެrO:R2Sny i۽+fQokμա,U>~m<2 [LnVW[o;uq36`r3tCɿE浀ו}'7+O_qdq~\߽y+ɭ fLoz>~~F&+-2mϳTχ'OD B(Dl۵'$ 4d ln&lU0iFu[ fWg}%LWn4Y@ɺJkZxe;5u_usl1W^]ykXqkCiJ7<~*MZ(}6TWӼ=Kn+V(^^2Ǐ[uWy*O:^7o߳VwNdZiiJwΛޗ҆xLUyc҆+OkǾ8iO4ǘVvQriu+^h_q?L5ooW[cOˣhʫ*vs:To3ʤN[ձ۞UN9]C Zږ{LZ0iΪVvNoiviO^ޛeӕgӀK>Iwƍܻ)hqqPlK7R P)d5fg0&\J~xc1dU*+nW_,!9VW%d*@:r;)AgUϒW<3m`6XmSC/(-7 HLXI5@j)MXⱜ^0=egeyln W}N𮛠 y \f8 #OGX7A7OAP8P7I/=ᑉƇ(_=-D!(のи "s0sx1zxf7V_m]*3tl"V^`mtm7`H͗^ܹwt#/!G}z4^*yt);Q-:lAi #H=x].1:~d1<\ r>\iG %pr,5Іym)SЃ m׺G/ \ 6 ϋWVB.mMߑ#C3g.Dyfn .]Ԟ(}a1Pڇ<0 &#W xH{DǾ(]u&ǣIw(n?q53vF4SVzl}:G[Qhy*֨,ﱸO"EI!R1Z|1)mvx0ґaO@O4uW^-]O ",vl!H hlѪrlq~iu=jW\g./oݙ7犾1SV_"&g>A}$ [1#,H\s'R:}Aeg'@S6o܄z/c i~N;&oz.'Na0rQ9H7![߮^>/Ce+}6PiI͔yK>> Y2Sz mӻ2-OWGwzҙ\[3/y͓[?fӼrNsdz OCqCɿ˿"~~a''Co=<<rOʻdў,dGAz&Gs/?%KW'~'"Iar(o7x}V!]9/0.jl M+_z7 ;{?2_+Ǐi-=ӋOWk^[ަY^,L;j 6:-t[)S4,GL[oVyř}3gFLOVv>ڕ?\e}gW޺*Ud}.zw,\fޡydUyX4_}2V}'%{K{ x5^vӻr)/T y曱gYu0齟YEtyOWiOvq ֿk.q ̏mBҽhF>nSmd2ȔLnz-4c(Aafn2~k( s㭌rٕwm2oy쯱!7݀+Un/ G^6 o]YM4垈2f'/؋Sr+ 捿1>6ޡM(pc\/2;7S_ ] )@=7m۝LJ!;6D$~qtc{H_^6gnM?O汜#8L&o7aʤn+i .Wsؔt} 7O¥jH3\<&h٘dSV\}*ξ ^z'/@ohPs+z`9x0y pateV@z:qE9f:ڭܳ{x,'6C8%*p5;2iʦbJV〽bqd I,ؿ3>w27Kcm̙s17ߠQWoηMx%ěn)[Bcٜ׮Qrcoi%^(8zh/c<ܤheԅY^8>z_]`._7R\0-uzyg)Lj뼹\D ڔ96m,/=Lg<'#5zAe" } w%~ pu%]V Skh_ Do\ ̎%oMב1AKT|B/3mW>'p?*:Iiw&`2_0[I\ Bs\ lwGOq9`X\smWb8iߡZѧ4zX/>mWK4o&w\ss.zNf~ZyFk8(ʡ z5/) 6iҎ1wl7(^>ڈ޲KwXc\5A49&Nä<~hiWo=/^=AQVe08jqTsrI7NIxc,vFHMCghl1x&y &-%FoCe&|Kڴc:k([lo>b?ֶ[gQCu{eݮ?/y he e+R6n}YefzY{[璱L=_][ݸ iys_);Кdgikӷ"㼀[-mF>>"`Oέv`hzuw4OENetq-DŽH(|ͺLNҞ{L.//'N~zެxӏ>(vLtehr+_(m\䴼ݲ\-YRVdWWg9OV0*/m޸.]ojhSvޗSnO}Gl9 nlH}z|thD~l0I*IP gbg _lR8@TeCF!F7{ |6k"W𠀛?!&].&D&oRlb#Me7eo.zhnHؼ$ Ia3&% Aض072 0^ҝ2p3#LnJR?ʒ#?A_oV `C_ >alu=6P,z(s^2G' k[4 /AV\`=،.0г5< BMoAv`#tG[l R_tTXGrFVb3lއg\z:fʾr: 8h"z߹^G(X;Ⱥ/Y{x:qkw mǩc(Q` KA]Q؅{q2,nk4=h #n\X!_n ㉑E `m-(xUX9|h ջiя66-qm|pu60সmX /Q@8~F_hJ",)v5n,hhaiqt/[:EYkC KO{kBчѳ}A0DvtL  Pzs9lߤ|lnK̟eFʿ3DY,c|A:?f#: > _ys+atL2cΧ3Fx jtG~;[n3~u`*zJDCN3ڭ&8c9'auj3 쓖Kj/~wU-]ӖHXj`;|;TgQ@J6*~346Siz< )K%<:+?\n\Wyt̒/˻/O7n^rۑu;e[]f7n`r Jo^<)wփٶ}Wii[ז]}T|ߵ/o_\K7n *3O,nzZmҫ|^҆-M,`N@B5ϳ+/ _x-[qW>ٷ Jukץ?Ybg}:zuH6ZЫykIׇ2"(?FѠOzIl'}cK6Ӽ7W zgQ_CxD@e H7!2@AlL:a(TaY^y?F>yWOLБy+Xu2>n" <i] /3i 3`%@K {û>t'aGY -0ޭdžd/Z2kِ並E6ӤA}<RhU ̐89rp;as&=8 #KxGѣ|d+n?]| V4+zM `&n c]c%l؞M- xtpIQ2pz:r? H@i.p6 #:/u>ʱ  ?r t+XQY-opX ƿmGAXr}LlA m&Qz#%p`d&`-^^F7qD 27yC*S/=ozleBrO[Hg2EA.r:Nl?q<DKmhT0{/oBxl˒'*?%d"`#9Ȃ0+/"Xịܓ|m)P7?溵_cKxY|UN=GtI~qV4IW@G3wYNଢ଼:/h\nm#C˷ݕnLGUN@ )"`WQ.1lkyo(or?s`x&~pLQx9g$ȇW =v޵B̩9MEe mL~ϡEvϱ4;q-Ӿ-7H\ ϨB\ CA9 \&Sp/!8OVr]fH%gn oH&m$j_^ngf@.r,7//T`{= jsR?ٸPq$h{~TqCdMTmN Ybu4i{:qu5/Evua%8pN#&`/h x97U]WװO֝ @3xY0]eccyO(Eς|Wۭː-L|)i6ou䱵>-PM<,ӵ.Z\n S]mwu0хonZǾpG UϾ疮~;~_rm6K99s}k J;g_SYֶ=Z8wKd s}]z]_6{'SrU9*^zx1xTve7YϾC'}EOVnzѫx꣞+h*x,1uɆIGd `A %oG : I-KŮNzYMUM3?y/XƛNzorۍKx\\qWGB'KAi7؃<Mkl#F/Lm@!(Ny,;vű\xq7& 6U=Gٖ^ -ijK`XYVȶM{O{~8hٶAZNXVzGx}12 I@GD}!}rb8Qυ'k~qڅU@/^A"@MMB~@2\ 1tܥчo*mݪW{Zqt]ٲ[8zn @_EwxgEFǙ'1k=&8`R17ޗ\9IKfo:UF^jȿؕm;V}m#ܨ)X8.9q}{lzq-9.8R# s:5^b܎'hh{|z]]&/58_.K s #<5ouro1>Iú/SH05>Loi3Aյyirݫ\ P z\Ez2Kd σz&r9vӎ._kIyycZoV0!6@5& MRkXa2_YWq'׎zƅK&K$e`0i^ x}*8+@UABg^Pz㥰Ie2h~?8=Z7~'Gh=Y>Eu-ǤH'G΃MXs4Ap=~]GX, ZPGI;'٢q)EI_meix yn&=ܡ1I]u8j `~,}=k1ۡ[mOPݞUy>9[hҙY),)M=lEgUvH.%CwyVӐizo>-S#w&CiN.O0o~3ܪG]޷|7hO`?1J{smMO7-o_Z_ܼ*,'O^KZh|]>vs7K}}ny0fXҢyiȾj+p4ѻѴ2-y6 4շvVI@pI]}y,;x햮]l,9t,~O+]i|j?[ʦͧ囖& V[޻goqSv㳟 6oZjj(Yt[Y3X_^r)H;nV}nފ:-m֬W鹫>CyTY!Y'Om>=UeꫯN}G?4 4g8q" uiV^ݴ:6'yוy3-[6n[LZ0BZI4W4ɏLMM,!Iem@R7qv+|3뙜@6*ꑇe S=#G6d` fyD}u~\)iL)7ԋuk?=n^YVEp@TRYV5 njsM.WL6`Nml L{9 D=RlIcy=T=Z7BQY7W ;䯲܄V_<.+:Ť=䆲-Vi=E~nF]}=4ިV0 ЃK{9z;[䍙d=@ةMl> bclpc\ܣ]z|\=NqZx1$uRePw$|P^wh%XÀ&b5 l7t<+7GTl;- DA14ӣkn%a5:Ʊۯ<p.sDfM رB0Qkl_×&miqG'㟀9ƺU{@P(#5L$@(i܈s'7_eG?"&_>- F3P [!2Ӯ.qG嗠(|@tP:ŏ3+s|<…ˣsVF/c_El|Lh >|hyGn;'R+el5m*:}7/?? Ptx w%|r z61#R9f^j_Z+1~e%bLO~1P bmL@6`5HdG]iʤ7Uo-e'2xg@g}adK~A=u`` Y\zjt.Af[/zFƒ*㎶E=s:KR\aTKd(5 lBLyq,Tk4U%+S2WHζƇۍ;@xܽeÎlG x>aF2~0'UnبVU7gr:&~$ηry)@tZ7e˝Lꎝ9ooYul9º,xO/lmC=m"yp"\jꖠcm*p/dyXwyp:Y"o!-^&c "<"=jt^̇Bnzj|K 30yg&,A$"F(]] ~s[c/X73Ay`e󌻇p~0_x^-5`?|p)hpu?<>0&)J&1mRezP$D[hö lL |u =:e%ccŋ& '/6je=9UX?j# 99ֱd A4),q [&9m0Qƶ]i'/_9om6ݎuI~/y v 01dB]NxEݏ'Lo`rTUp @ط̸neMb]M/G_^.`\0D ؜ڛDOAz'`r4:7_{@^5&eT*!旾6o~Y!+ǮF7|9gYO:+籎Tϖmm4#yPFH@j7al1Ndǚ_,+H֒H׺`(Dݫ,Ԋqӱ̱5~~e&YUCxmgPkogHhPщ2Ci=ٟj47YO+PݞEY[?40d#JݖXTzyyYm0״Crtn4mZ_wSWi&0 C-#X["-ߛi9'E}q|myLɖƬ@k2ۗWUO:_Ktx-NU ][{uG6m "XPڴfy}_]VOc*Z8m`ѣUd30w')`O.߾<ѩ{コoٟjgߟULo!2.]je۩\`7`ߙj̩ߜ|ӂn}㽯gi:~>p,V֡|5tYmWyJ.u膒mz_CZڛ/~}z~~|Wz_`kuYq^+Pfgћ'}Y~N+W{_ܕ-mvo=t~ >jmH/M?\4jՓW^ ަM my߆xڥ,ףoֽҨ񫫫#׉Eh2NmeӦצ&#CmԆO=XqcJwH"6܌! f#yWѕbxޓܴt\GU=yDK~lIJ}  s 43Qp{=Gzk `%}<*Q(2hGMğvV'inqC/=eF)fI1܂4d }'6MǭMh̎շzo(} H@gY`#`fFl~(j6sS9:y좎,l!U]yY&"!eg{ܻfsƒyϼzQ q5 ިO&McWB"Gq='cxdSO`z`c>Ooe;.pRВ;A=lNe ac:=X=qkl8滞2g( }#eub@vXnA6`"0w^FozxKxK <}t#]]H8s &a`. 7iR!URc6u֫VL87 x"jM]O)=qy^ ²=AXUUP Ik]}H[),op ӫ:{g1KN(Ԯ9bRYZ9'O?SzTB@B ̖re%G$8I[}s? mz! kmёk$>x G8C>G@CvP$C_}>ek(UGnӦ_y+چ 1H&u5)OSEr9,HB.G+zs2B8$ XڕH Dj!XX~;VS_ߔԖ2Ž 8ApwЖp)9Ĺ5_($}ϣOc}3S8Fk~i};H!O\ӛe q1QV\a(e~"?&X]Cȫ@.lca:auHBҷ9.\e%%P3>8LJӣcϱ.@4iO^HW`y5SfbTȐ-%5/8dVK)k3s=xlbdCzx ;^ʫ}!7lrs:w\w=̼|6#l+Fۂ7%akbs4oEA0gĀgu} ֹ>6!@ELt?z e_,y 7Lz5/d1s/0! _|SgVyVp]{uan҆Lz x}"Gm8#=w`M7Urx[-.ԓdQ6Zy$`Ĭ`RoxB~U%dK5:sbp՘+O>]e˦;Wsf?/`J민I>X*w?] u_F'?j,ISB̺Dz a;4vyu^I&oW{_]ז2CLJiKW7k#|m(:m\U~+*]ZmZ~vA%6ü˿<׿߳~Wը-KZ%6-ͼ&tzFh$07^7MH\"lSF7OշO^㯏5_ycL\ a?$ע6- XEj Joqxe{AVWi匦.>fPmK5 {iB4f/gEЎΧH`oGȞm?nmvzk1G3eϗJ۝@~ X8K!y4$ror~T:{4ޗ !l[S9OK㮀I6.Zw6DPH15! j dt9:؇/9v"/(|K?v7YsX\MBJaHId(;L Ο1o!a\ѭ<Ӽe\WPe*=ެБHusr;.3/BCzP!/1N܋cntmD>"Ƞgs=K"*+P&Lq`1\ thzECЗr$8K 7z_x3&]}=\Ǽ7ݏ>o30n@A9t&mDG[?_:v(_xo&uv`棗;k;4ydO[*s1;l\WW,`_-h?;YWRVA{FCzӮvvl'XcKs0G2ucuU//<dq.w]d!_(bRd볒cqX}ig95ĕU7X݈y# Ic!7A~'_<6:>י~ɵQI#eU^۟ɸۈ>Gݭ8SUغR!%úD-iW pq{Xʋc`]}! c})'2LIyMqHwJ[&0GAf2ULwizw_z=kyܧiv2MN6Tu|Z2Oo|:MmZl,<7K+ߴ.OS!VP6x`q(Vg&427I*Rz\jOC|RxmR鞛LNf&dk7J^ SeUn3[)G2Yq ~KN4i\ }2޷yM`Z= zJxi`<2%`R0@Jq̳6lm}4O<}뭷&EfoXiu*YcCtF:q˫ӽЕFy[zz7vr61ޱǫc7 >w}tir(*~ˋW+giL m~b ~3;oĎ5W.g[_㔭??1B?m6iiݼyne٦Sz)^ԧIi;ū/o}};Vu-Z}iߗVqumiqvI&eMwXs޷4[^ 裏&Y5M iA[ ivZ: $[idpL_YIVL#&gQѹ+K,-_(ti5OZyht/^l?qIٍ0Pě t9_o?EY$fGj1.Ux^8PѼ2) POapQjoW7ܐs3&H'8Ӑ,f @ 2Lc#eh㌥{m#nzR 4/nr,9xƸ^A{Gʆ4b$ȃr[m6<C *Gs.I)'9j2j;&h#HSnr 4^P4_?j<޺ŬQ .vmYCum:6r >MzrY Wa'm(v`e,%s:%OC 6!^oS&>i Ɲ8Y xpؐ^Cʶ{, 2MHLd=͈O82ˣ^esxfetFM3WFN]}}c9dXm(N݌j9Hᵗ v95]yʄTKo,n_M%@Sb8!h>\v!ޜ&Uk>=z yQz ɦo5&AG0 \Ż*N=^v~7oN>~O]'3Ǜ  ay9\0F,OB >E(gY{K^UWw {6 $Dak~C2w0 2efBE $_^ )ʙ齫k_rʿ9Ϲs̬TTD8qĚ7 J<'&\᩵Ƿ߽ 0w5ʶ2V'gG'tuнnkcy葇XsQңSS˨Q6yI!"Y~)ڟʐg+s%i(qnW7g5N'REp}yum~^f8F-nܟi~>`'yx8>_Z5,0kZ`L-]:zcqs+mDzZd~G9$Rtfq9m^Wr/[8hԑ}*$Zj"\ C/؇Б}Q=Uق:7vΊnj}`O='oʵ>|OvnQ'J${״M:o8 \F+uiVgQVO4)FgU?:?K6qN4M~y;ݗmsIt{-Z]'qnyR`r[v T!mYm6fke.ݘUF˟^t}NŻϧ7phJkf't}`}7γ#gZ&{_. ,@Ni?+I܉u`->h~y-h |f_w3)o fV|8? d;1cYo80 0Tm賿*Rewݗq[Oedm*Ok+|o:*1SOwκEgqRxW٫o~͆x>M3.=ӷ6?)~^i= UPzZi4<'mqm/bi&cZ=uT|iuQ?qkl-p$qp~|3޺uk[R?o_DZ~[ew[$g&&=y~~ʼnL'f^dyg(qs`=?8ֺ8;תqȳ04ā1L f(=dƇHyeA9k}ūAW1 кN,t`Inq7y\) .Y coG^0 p=(k}<۷+%^ԗ: ҡQvAEs)@2Gl:B>-ZЀ)>ʡsT>*(G0Wx"yPyk]T? ̷#R_kJ"5ဟ! _GB #Ѿ`?ҺW?rySV +k^!?<<>'.prMX]Nx 4}K+u@,= ז<<xmd[2޽|CV\0a* |x qN\꼢šk9P϶EQq,ܳ]+St>ݻK= +gi ]T-0C>ߎ?+u.8p,&٧0ްnXڻqmJ3F)S3pNp>p~dW>s!& %t9 :1&̰9!e B&M?i1߁vvRkXP.ǜćz&.v|g {P@ A.C}Ձt&-СQެ[nz2g,+f|B%Ҫ,| btgߩ2bog]~/"0ϖУ`3Z( ,㰴8 ZIe2)7]DXcvhM+Ђ;\Ma` 8z+X=DSƜsZ-ޢK eorѣ!h@0VXk8h(ˬˋGhu1?XFR9 Luk Fu@Hܜ hk.]NNOfTxqq0,%"WEXFPvZX~l*[UoG'؋ $(!F\k[sA& PN*ŕ_V]0٭B yud)PrnTʵ j zb:sms{9RG9—&Ο +Cs-}9ro K_kE(bv^1#haw΋/xNWzF]^e *]= ?2E?2n3o+C_ߗծz0]a'e>--{v#Pw[Mӳ$^q̿;*i*i%ﴲvh/&!UnW_w˘DײuT5~ͫI: CeoPԸ89ϴmXS?SoMZF]m- 6桙t!4/UK_q@Eזц҇fiY}n170T|,3/X-+?h7 0ݳg%_Y˒4>!UN+Фr2kӪO~Ф ZSf\/𻐖 dgN磏r4K'ŷ4{ [j- ,VgH+['MofV~E՟*y_Im|d¤u%|ڰWſ6akcW˷O,}~KM?\uqP(հ&߱zƍ{_': ٖ[^dU*%/Nlі/4yhg$nՉ 4~LE;3g"c!c1:4f)2 1h!f䉸. 4X :NѺd\cᗝG+E`1'@e;Y,K%hA0@7hWy&HǍWzHGgCKOzpx kr|=V J< .Uz760MՐZ"EVc 0ah%9?Cc>9 ssV$Y)ZٟqQm> hJ= KPa9GIqV h@ 6²Of_>O< zh^1+Z<2@{ 5N<:n- ZDRBSǂslCGk\e3.]Yv^yE2Zϱm=}=L R!?2?bqի\cƃY@gS? +WmoV0(h[ ms` gRj4=7̵`.^X@khvXkS'ܩZu-.g1IׂFZ=֮9_ƮNV h=5< ŮVVZ7r>9P'?ܤ%)9!/BmNF@a;?|x}8Ap/T??3O<)H2w޸4kc2rZik1BJ y/x?\qody7V}wtY?t)9G\2+MXкzͭQWzC%m @VY@U N֪XFCA&o,?mRϒ,"9B3|%$f YK/58X]]t@nNncמ+։DkBƜD:,AiV :WWNVX^Nc9ĵ׏&t:3fڬD5uxkI֜ GXIw@'kq ǫeO]8W{)-Gv z׈(-)_*E=r5$n]<kt=>>v-o[iӬgK.2`t^b2}\2}0^AK 5tO#@nX|A:{3 OWa%뺗Y8H{)Yݏk>@k^NԷ{{k!p5ڗEBw+O-}SSyi}}I޺xmWF~u\5/?[\}7ƞtwws=/9hS Զj:Zr W\&liJ 1n+R-yvn)k޳{E0Qכ6>}2jVU}2.q-~f`ܓ`@d=2@t*S79n @o~mv0{Jٝwkm?q&uA!ϿaaSž> ~w{4t:{Zkts:yœ;@ zYv! ~>H>s賟|/N/<:o1z djY~_卡qa9r㉸XܲRK+Xv*RmF/zedt/?9z}gKɔ3kK8C1>Бy & k}PsYX}?YdK2ot-u,;t~ձ$ >ldɱSog>Z=Ten+׿>FgLֵU`[N֟+&2*+!$W4CCiCq4Oͷr wZpe7#pRWաr*|S7 7CC84n^}OӗmI}[\9Pg؏{E/Y_"#7]Z?>x)c ~2]W4K)-IMkEƵJ/(k`|Vn-={6k[M+Wo}zn!6}at r+Xf?,D+~h|硛F3-mV9Wߏ}Fnq{i-6oo5>KJ+߾ї_~}}h,ʓ^W򕠟TfϛCcoLJ׭Ws;ZO4d+d]kW{vc,Li}ħhKV}y>32銦?):y{]tUʯ_4W<+6~}g%,z >2vM0i\%U2!>}M{X>ur8y9}\P(a0΃}e@`~Cǐm !]紨肯5A6 Ԓʈ.(SgTvTP{HCZZK^j׸[o_{}maxTVHK݌;:zjJmMV&),Hr0p 2zeKRnt]z@>Gi]:}EGz`[Mg$@x•&6ŏ|e'K.g&h F;qy0`WiͷG_;q*W>6m)>JXBb4_ԃKCwiXq ƒaijmtMm<pV=*BmKkm*?bۅ޾qol1bqcDXg,,_ZE,adqm-2R ˊ٩(zӓjvcgP2kI~S?Dk194KY-r+/MQZdNv~a}rM2 tXN;+76[f7ئ.*=r*ӏ2^Dcr<|k2S\7} +?,AMYBh_ q!\w)->Q9ZX8BX^Tώw2to.Xw׺XGir-<ڙp[|@ФsnAc=q<LF[?ZjWT|U/H ?~اtƜu*[Ay/3 f?:_ 6|#JdZV̺A}YG ;q ̵\+h8{W7}ˣλX \v1koau,0;>Xybz4hG6ԕ{F;|b? &i,4@i(xueeUXjG譱 [-eH"F>w$Up1γǚ}1AGr9_)5~ÌUz7V[:I..2Z}\YQ>]O9rNaMSyܫ9'FţGzss׏X^sC}U}2S]٠q>G{ /B/*k+ko?4݈D#KnS1ɻҪi}vdwxIb×@wsZT_Wl) ^j<`'KGuukxV Z3"4Mq1.ܵD zє^?uY<"Ɨ"EO=at-Yii,ߗ\k%,FTDkM~k7n]s}'WVK;o;uӖiM׳(N~q4Lշ_6KoyT^x|x~Zf^OGT&$!m9+|Ӧ/2~`-wWe܆+gC6)`Rު6|ӴwPPPI'V|yUzֳrEs!d-h|ǵi=0?}_؏1?iH&&)0UiM= 4姡ro'?y[^>$9n^OL;[ۆ9L's+1>Ec\~Y->4wʫǺQ ~G4NW~ }ŕ櫸I|EWq\~VgES~Gl؏:bWm~Z[qUcN_Z7464N}kGx+~?}a<&zuTg3CӦ _YY2 0)kmŵePcYZv?h,>mז3+}}?0yCqsJBLڞRBG*0qb8$ພ}aEt]qáKF.s@'Op t"p1Ew`uoE 4,1N8f0}9ˇlau+9heѩ'JeU 1cM>K^rs~u,MQB"KPAX2dN=NCӎs@#` mIX;5 ZꌃeېZT,&* ke)m4z,N$ŀ8dJ}=W'擗鶱$-a,] gX$x!Q>ECG;z)ȴ~}L@C1h՗q0SNt|D,6Z-Rk\Sys[GWfRo RUd\x|7 *3@@\|'i z_$^-(D`*PG/൯y2_򋣗_z!tJW_Y~eE x _+ cA׬_eyi,I^.(V:>ѾqV,+ƙfZy\4_AX3c3s;YeG6OmB!ϻvXg|q @V -6{]Ϋ'2  sI3qHc:1zWuey9(A%O'VѸ9|?aaײ}5*団K2k[#[;S>KSi3 3`>$ $p}9y: З@Lz- <\l+W}v]L2D!ǹϨ$i9P.GC*M]zU:ďpB7l@k|vNk/uu(Ře~~&(RKɂ}uMX 0c>8_q.&Vͻ;Ɯ?;/?3FZt$J9 { у{aaa>92F]r!:BXO;{Gh|\ X/|o>WaK]/ƽvsyss}t}*/Ě1teDB_xرceLj(۷;/k;uW5ECe|>G˹/Ť :E r!ˬ﬌3Ԗ㉾\!>7x>u$cXC';xo[+s8B\0@IDAT9rKQR3׿c$XBhˣ͐r9W*W y2:W/lg+eT5džq;/#`2^{ϱ.kVUƭ/PD񩳘c|,]I֏ROme/쯓Gg_}j~Oog^OyxKE59ߞk~!Sv`/W^筽ӗky~n0ɟܖ^Zۭ}nÕC3,Jy-mpeǵom ]տE+uZ +;Tp/ӬHMHLimZl_n# M jv1>s˹Wyut\q=^+]ʵ] K}7Ƶ~^gi[Fuzf{/Jk+[_{MZ|ѦƿR6۫hsDo;wza}Y[mP^}ձ^|­|hM^Yjtu&WXz˷䖟}Y+\>VsgSK7M6Ͳ;UW-[Yl2"GڥƇ&A픇>ttq(?vpLdzJ ;rV!cOO_A~%#, R.SnH8pe-w= * Hu SzxWnS1y{t^%x:qh(U#ye;5,^\t*kVqGL֌2o=luǹZY7>`h)(&,gFI`mM1 CXʅه?qH@M%OeGQZ:B05f@h ҰWgSYC6_ +N-O u6ONR?N2F!A =(C+tǰ$ug`I| ,&mG^ ?A+ta=\Ԋ#6F?BruMW=߇=,;a%W! >yФv謤.[ݺOZ!OkDX8ՙ*C}/6kq(o~`@څWWOc>A U'Y< ]@(\_4%ER%Mƕkq]=]z?ɡQ a6oH^pO?́,׷O^6ta19iL+:%yOqab?gIcOwZ]8nL`@)e8jbEQj@߽<8%jn h?)!.T|+% p!6܄l{yx}RZ9\ }&":G\ŌXBЇ} @ [O~j)t(b[9Je*hMyNlsP6.2k-?Fr`/uz&41ܢn$ҥ[`}TIkԩiKv^:'0>a^tn@:KDVusK%o"L4Բo;XO0c-:~HN+2Gs.؂Wǻsmױ,&kp&|Јj~gkM2^.0?s}8g*>2Ew߱n2sk&CY?P[~;_\(s^NQd^;kG~:iMu:Elo~ieR %uڪecFk,A%cMF~bdȹ~h>e?q|SPeɽ:X{ WG n5:;?|A`*kv=?uDX@_?Ģ<1GJE#`R}Z)-Bkv1W'Gk-xzhm}t9z7Yo? Пxh0ˇuK+X7GWGkZDt 'AwL}ds=9ɜlfBcׅ]ifr#a#_îo,o3e9+DQ_9ok#~r]GCg5Lgu.-{*\Y#NQ?MYlNnT|)C(7FEthJhsyuED>B+Ud;n6'CY|u^W7xҎ!!.)\~qʑAo_xUsRs~$q3Oʵr&m|Ni&*gQޝ940~dxV*[n|v;L*g]=TS}s}oyhZ Om~EmZ˷gU-MtW\ևzg_OO|=녋&c ^.Os2`w fGj4E!q0AOFv<, 0W+U+E’ Lkk q]%x J@_<8P .]1z+4/zny+D RU_lu-"dvzU ` cK ڢ7iDN 9 C>GCA?OEi?Fq`+Xu7P~uik)SKya5J.=-R>t@XЯuŁ:+<އ13`iW~^xet뛵 x{Wר]t~z] -g;s|nmGcE뾹tJXRoZqURZ-آ7M E"9h DJ'ʼAo_ *ޙOȡ l=gÀ=q-2w ksK[Qz:}[cϬ[RE*Aڔo7s;K6m󙺋nc4KRiɽ[&ڽr#\pJн&:'(ćZrǴc RZ5 CCev~uCnoCq|IZ[}A`ݔyu߽xۀr&1)s&gdzfZts QWuv-z,_yk>G-ca =^5n>(`sA M3G2wu̺,/)獌h+i.,>8c:X^h~6_q VY7XC|,~gZ}uKaU:hY`ɛX v}ϫffgXct^]aEì'G'V+ܹOPM&!^kvLCedFhۮݮӋv-.\89hZ֯c噗neK^>/n/KGԋy25 e`\"u|/\~+iq`} tOgxǞRF^Qa!]zo \ *0}Uɵ RkVܺOf+ kT$UdGrVQMgV,2J+1$#fSRZtnC}.ּ(|&VQ˝ aF%s(@[[ip`r&/7 ˨K9ZLgq!_\5uǫ w rF=S\`] ?<ú{b'=vrv³LNxM[gìz`Rm0r̢S/(ґ2O,4-ii-ݬ4y'&M|ڳi>WzYU~|<MK?)-2_z0\4o } T\\o~8Ӿ퓿%p3dG^ҁi:-Kjɰ1ՆZV*{HJ+9Tƚ{Z1~8i`gap4&xؓl>qjCw8!(D|iq]=0S.AE _p2^Yi>˧{DgJ2l|S17HA8N5)PAaǬ8 j8㴲>y/PD ^רw/qK]Jn[:E>+[C8ʀ~#l$r)<Mj:\xA.G|J#rXϡ(ȍ$٦uZ-ymWTxW`ꗖATALf@b+C QGFa 8\Nr}3"$xj ,'q쵟*Oe9cejvl62y&ĕE9 ڭMK i-Xqsv!fֱF}~IHx "2Eڎ|x/Ξ^{1LRVV kWJiXD G<e 85Z Pu/sDWwK# ~Y?Uz1}DhI""ſCqsQ_tZ=S9A/Kh,ZFfL_)/?ҙǥdњ^:mw _ԋ1oEy3Tqd? 8eeX8X_ФVя\ % Vg =gU7`|%20`ϳ|3?LlHֿQYPEZDP%Y>4y*1.ʰ,p?ٿ+_W|:^10 9h;tUY#~?%/SvrbZi(sG9y(Si=R擣#&0yV]<Vk}Z+^,X-5HƏCGh|:wKk(c[X۾-GW~9JP Aֈ#i40yzoc>9<18Z6?^`wsi<5#輤Nnc#!j?u&p+϶=}u5|݁%/9N .`]y55"B7x]K-q [E.cNX|7f=p2$/mcN:r\3oNu =>C e$`d:ɘGx9>cό>9 z2 7nZ묫\}9z+6ti t_e჏yg籠XU 9Օs&@ag;o:*t"Rg|!~nm6ŵRW_D.Lk,Q@J]Zҟ`X;92s.:u4ļ٥HNlG\cE4݃Y[UJ :D(sMbP%uYn\13ʜ*3@TX]%q:ѫ1I)e!SYo\ Em=kTd94?5<_8GC[0⢬\㭟{u `L?V+r[evԐV0L?y<w?ᝏ.c>%gpF"l?S>E1cZGɮ^TOhl(s.^ 99B}E.>ibBt.ʺ~N%j]eSN|2>MIux$yYwSmųڭo,As?50Mfi/ɽng!yv7-:J/}Kc`ޟߍqmFۦ$< 4Y7M7h*4ߴg8YiNhJ&ʭ_Ƶ6V˿J6oV /mx?SkZ9m6Wmη~}My >Oil&InOwzWZÝf,Ei9]u9M3.M+^Lo \ѵeV0o>z N>֑qW'On(m(xNJkp[uTWO~ M=_yJ\yz.`t*I_JkhPNQRִ5Z)m|*qee%`fςniMT'~+AI^i!i:!8Ipw.rmFNPtoS*s?7.9Xy/[;)ҟ_W}LnS"|e{I zV3wRjD8DuPl8HX8 8P?Si4DxXq%$yq| w,π'j&y ә͎/,w4AdrV%_06W#^1,t$ȴ5ufJ}0 2m"ZkV^,w`yC߅0 uk\-}=D% bHɗ :lEGǁ}&C@xt '׬Z,m& @ɦ7{Z_b xKb%},Q O8o }@3XG lZú*I| ccfXz>p*V /nhjt ';Hpڟm. fp"2Ro8Z'Zoׄߥ| *ߺŏXղ ;F`0V&+8Vд*%|q^隲mh֜,8D脨ɰ$4Mo԰mi (b"oGP*V-"Y~C0U JV5 RA xnY@2*>S2gǃeA4_H(~,(ʰ. ":wcB, rQJ<[F&XQX_w0jK Ǚ3g:z蕮)GbgUsTQ't19cLB -h3.m-K j @t/0@mZJnfbA &_LặΚaw2z{[Wȃe)j%ZY\txqr,e*1G/^ pNwr1Fpѷ^ 0 _8Ѩ/=Z}n ?:Gw!ǙJmC._,)pR {ɞbc |sc=K%;h%]tA X~|!W&uᖞpoդV\JnŷkZʙqVyѽr˿Cr}y:12oj:ˊ@AF Eo>Qoe⺥1懠G^xVXĕL5z}MP<~> YCd}{_ N*GE-Y5!%j+(zG_Zr7<̿|MK v0ǯkǺ*RMߺ邽)7yZCyYi??yx++NKs뷲noZ?#8Zim}iiEկ~sw [o5XiɝxOO# U$^;]?$XF{q&[׮o/휷^{C 4yܹ&UF?}'h9)om#hԩSUגg]8u-نZ~\\!8 }mk+<^ifstm|+@Vī2`աez?ymo精ږv(o^2_+~,~?9ݱ8vlImq@>MJ&WqayW{`]sVڴ[׸t-;zm ZPʬ} rC9X^hBk0k9TФ4zsp r$` DN|_\כĂz#S'wh?֪6G*(L>ԲoᮍyU· %Ͳh@1hTXq|v[tr eQ>ؑdTg^P+#xt}z4/z(R?|T>6m4Aa,NU{SE9.c@.t(~B#y9fc)xF--*>> ƌ$QJas"cnՓlKDhJ/JuVݞ:LYu6xNt4}Ҷamw~1IL^ٗ,7~LjI0M?ϳ f(\ql=|/W'ywӾV7xcH@g^`^ym-\sKP0oveaRma?[gN~:iuC*Kt sG_UVK:gz?Sl}̙3Ymn\\zǯ<^;-W6>n}în鯩+o?<^i&׳vJeڬ֏ϯomS<y:U{Wy|w#C}VC>4Ϣ.˲]~KJnwS<*Ng_}ɛ&].Ѭ9{|*r|#Ni+hUqq(9 1i~dt%)V!`rCV >8ȡ:EkWƸJԃi e>MtOyYСZK ~(6Z:@yk 9׺SXeeUNyt!C/v^}+gM sҤWjMh}}stҕ5@vZщco[|469࿟CtXa$z mkuŦB$#)"L;U+ Q G<;g0<2c~4nbqk:oyEWz ZTEX]|5ϋX5{ ,CaG``5:woy sŽLrm ˪D$Z~2Y0zh<ЧWg?Usk=/xըO~۶}MQjot1&6Х@5@hajQ%嘍|>X1GinsW ##2)nV*U2_|.CD?~dVq-/,џ\L u.kiBL6f'g lٮ)yĚWj&gK+v~mH`r3S2 64@0:_rV frzsGk|k8e/T|DkE9#|!EЙw>$$΢hQ"LzMqLKF멕X$g?~4ԵJWUVj_f<0Uf&A~uznn[a]cnZhz[)oh,Z*nӶjqG.9h9/):~xt)@r&8hye}%@+m&sǵal1 t&u8yk,köm"e}>%So{ǵ#BZ; G` $kC%0H们U{ZoRC^M;._~( 7ُw@" ,emZeM kqX~ܵ b}?cNkrK=9Ǻ^wr/&3,7ja}/؀'NhK7͍Ogq/y.?qz 4 ܤ>^#z~u~92 cն6$22( |~@h}oho_l6"i3~$6ۨtz'pֺz113pw~LE*DǼi|ov~8.w\y%ShLεfq6'y3z / %鶤:k W@tW/Q]m2֫6+˺\{Bl2c["V8Ǔ.%2Grx%-E?vK<>'0i9/\8±h?Cr Em:Y*\ҸOzY"C(oKn]Xj}$t]"蠓>|JioZzf} e7B>kOU5yT<Ԁy!4֟PQü"&[|?~lCB/~Q2Yz$$yi%壅V/m m(CkirLmV6IUm;LՆ-209<ŷo|}i<3<|kx#@|^:hk_|9#O01C/7~7z1XПt5IWa-ĵ_|5'CJ#%Ϛ\Ci7ͼx U\W=~Ǹ~m-xeWoM)kKzijr$'̔+o?.~[♀C5~֦>6nu6īVZ˻®1#5*8ů˟_/mИg^~};y~W&}l;PNJb@X'⭴`y.y+1&%pLs`ag8LZŁi8Y&=6"'gVyt)MFx˶q}:P^ X H4{p!*;X{0l"Q;9.vh⺊6I]LzSĝ`,^0yh z6qZ0y򕐝}.P'%}oˠZ p<`#@aZ@P%|!`G?~jبjk GT}<3Q]G"7)'2ر#q>]J׈"۞b\r&!٢_ob!~2T|:Ouo!i.tEU!yT:z]RUyO H2Ʋz,-%g$1'%S,%jӫ $hq㕲)Ge (o Dn#9Z (RezdnV}1IC~CȜAHpQLUzݠutwΙ\I[>_7&@IDATە;ܳ#Գ]b\ɢ !{aT]\t֓OWemkwC@&/. ǣ̘|sL]i፿*]zB=\}i̹O:l~j\XkWU^l6!u&&8ugwǴc5&Ѷ2T[duw|z9N7hY˅G/0P}990֐7Yoqz~x,/fR1 -C\Zmǰ5ֺ\M[VZ![Z*ut؇lٿ.:SE$wrd<0>ι?½.X02`( J.!kXB$|@6 kg^>7Lk+] $cM``RݿG̭*^>lWb03"uVȳ@z58 |IB fП_́'ىG L#ճN?,ӈ2=XFĵyU|[2&&MU|`gJZ߿}[~glW* _GHoR|o~>vz=w>y7/~P\vy@YEojcXjnyx_ɚ׊W f}܉+?ix/ic~O>N>mLF-ӧpydG_U,J#az|Rz\fv^ &>O9 d\?̯E8ћxBO|/ ee ̳l𳋺Owd>>܋ۧE/>d߆7qcށe%=v$)C'WWLLjbݾȦ4}KP=&(=l0OmUXtJĮ4Q=)u\ +'7u*ަ1F<â63TlY̭(fa_T"-no suI#k ɻzkD;b,mDsLm@$ 04U[*E1ٙ۽ֵ_W1m_kg_SN%Uh7u&6%`ʀP 1_hVq\30CEX= ,pE@>OpDmd&lѩV;Җ ޜΧMpäă cj{o7ۿ%8 o `Clf#'G*N̻vB'2tRVZffm,>@d\} H28a@)k| JzӇtL@TM5k}`Rq=ԛVm%׶&sA ZNF}N|[kd-XtWNjݫZۿ^|:/;Xj{$#':dnGFڵ.YHO&N `[*pOc/]=yZ@< }H=`=&2vuuz Y>W_Ӓ2Wf /*Ǔs6K,{Q+}LF%mu@-|>W m]k!mY<$&#['>Co/C_uj?C?3;+>?h= oғGO'<>}~c:s8Mxw^y|c6=/y:]1P:~>ğ?̣}o/*2^xLN rbYҞ':ݬ õQSg>lhZ@Ji!a` Smήo|+[D=_)S ¨I6@FЗ7]G񛏨\єlhP&5@2?l0DA&uю@kw\'M3 S4 >1&'NAWu ] )dwwT<9g9鎨i*RVv[ڋFVĉIaGj3R Ca9BꣅN(OhlGIh+ %@>He9 Q*9]2Ʊi@v] IQ*\%ՑN +=i#$pM&?ۓϿqߺs>weNo|@7M-GFTJ QTe$U{a L$!` QNϷQ7#cETM:4APﲡGV**YV#bPd)D<ا!;N)io6'5ZENbEx/ lcWD ƙ1,}U30SnPR7b:"sL}ƧF PN\=F:'ȃp;a90Yk(_zf>sKL U=`C2:xX]i8PE `S:r7 |DjάylT{5@P$ /ILrYvN@Umͯ\+%$'B$W-!SEZuf,Yx/՞+yP?˿ Nez|(T&ݮɮ>NZ.wQg&z~A^`R2vfS\W"^HWJ!j^LBuAi#幦 H\#VtR:ue  }jd^Qgo>C? xk} P^{A |9)2dI~?.^NgI%]Ѯ9[8982=-8:>Ey>"]z^4@M]^ौ84XTsL{&/ 0zyW]='xx[Id׮NEۤ?%_ܼfɕ>]mLj{!y4چ7)Ug]狳~A^X/M<,4]q x3ӧg `Cw>/5hTO20P-xJQt0|2B4:ؼfc4̳qy0MOHw C\hO=0pyߧʪϲNyy9ؠXp}TXRi`TRemfΈ<΃4{)<fZ. 4xL}P$̱)줗}6P$xxu p2϶ oZuR:4ISyʗ.bc0(6"8sUD6r՛g6]).3%kA=N/Qiq]TJ9Hy+v_򿬁5z dx9W;g?T~*}/'M3 Q>F޴UAt\w_Җ&?ʞg|hM0 ~G*v%߇)SʅΤ>c.z޾a2+B}s>|'מ~;N]_䪲|UU xPo.~8|^nyv+8d9ESc_ߓ,q**^ 笜8I]&p>V3<&B M8V;;*-:z?6S.:eKSđiӇ<y.[ky:zCȌ{:fJu݉W[Ƴ(},·2ɾ̄SF^ϼk!}YZO }Ɲ/qwD_ϋ>ʇ/ C>1?|ҴLi3y5m^G^|ڦ6A0:6c<V#c>+¤\ #JK$kEΖ*l$MG6r~@6 q6r@B0х>r7-GGHph2gz4yC5ddY6u%m4)Ϋ} <.gBđk>6 ȡJ-(> l8iM9Im_L!bgYS9A HӦ󉀒Ż S0W)pB$'C o}w[tZ{w_ J@ZO8 SX^&Pغ:I2G'@r*؏D M P5 ȁSCq*W saMu_xL>wko[wtN=}덷x(*tӌ@3]s_iJ^Nբ0Nf=hFGNy JK5E OkMg:jbͷDicXz x02T6G %틝:[st eM~<2Ɖ&/QNd)Ѳt@ZfP8x=~ @R\ۀGu/jTE#~N h.3_j>y2k LD ,`aKgRΪuWmImPG,k6n1S~pVuӷ BQNCDڿ/-'vv3K羢^xkRP%+bƝsuyA*1[$4d %XmTk1}Mj49qk֨7..|eЇQ@#|Yuzy*`L,Ot5uEu:-&X-+'~upѼ CoA@G9] $ NZN3h;>r^Yg8 p.ڧK $DB>XrO/1GK(~NDNQ@ sW -`+8]m!HNTdO.4iC}ezna?=h>adnht7?yP+ym .}yOs@.eꍭɗ~᫓kaߡxX V{bCۊ{+*5Fі<{:ig"܇uz0g\ެiiP>\L:}g嫶4Xe530mv]۔tr[hi,COE `Ctu5NRWSpƏ>gY=OJhQuBá¬+ؠgZh%hi+c4{M8]Ju IG菌Iż<ĺM\5X,ލm&/j>aa> um ?. Ю4*?z$zo^@㖫t{fTwU[#&(;pKTavتrhÖ]`sӮ!Ա钳}yQ 4*_o~'BNjrcE|\[_TBYه{Y/k<8|Pc|l+=?)I5;OaLγg1ژ< >sN_}xʤ@tKGu@[0]%qUhC>p^gh|98&ԧ4z뉭hI=_&==mL} /B>O}-|r_6u_u ?N=ʻ OO(P%Y+>__iTdo1}+UCwׯϽ= e/s~om29MNI0/soq>UʺH>y3f%UlC{Ii#bCtYi^3۟X 0a|#6fht$}wax=@! kH~䚮ֵڤF8/e?IŭE_hxMMԾvgb&9o'He9%B"o69wN4'4S'bc2Wi]zz[›6Q6/ t >>-+9-I_P0B.RThAAul4oQIDd*Ӏ m| R|5 RI>mRJK>JW)~Fa_0~Jo:KgT0"`“]%MuGXTO\&( `CWzuܷnu;7޼#N҉@՚#GT=w8юe7u,)@o$ܗ_ N%S}nn 0\  oN$/{7;ӷдq l/6״^nG{MV@vT\/LjֳW]א>Ɯ/8%(Ϡ$6Fj rdc~ŠuTS\U4H]D'<\O1v{N*sM>VU<,N:j;cah'fo+T'>h [*呝6I$p8Y X%t Бh>=A2f:e00!Tp7IL?̸ЇS}:xW@=u|ɞ@v^Px/\]`R X  4m1E#+BWjALPmc>A0 $KO2kl^aMmW^ZtX˴1Yҡ1{F3ZYϨϬqڳUwh^x h =Wǚ$ 5 smLaJ]ݟ,;y>oND9 0K \g͜uNm@y 4P1({m!+Zc4tNoœFzIx~yC'9ykuUϼZgyo๯ R޼2_\V=2Z|A>]VW{>}ZeV&%O z6Չ;&U pX|)ئ[D 8<1 :Q~&u_c]`t}sgw[ĠIo@gY=+s=)_"C6?wNHA6P7XmJ Q9)0zT#h|H=ͬK|dHq:5+Kynh#*F+UL)sᲣյ|zH:l@q2/[wyi=0gpɫbC^~;O߰_v\:Eòɇ6y?u?&c*spZya`R&SjIt 66{ P<NW3+v:cɇtҶNcg 硼h4on=Rf]tt_reO3C'?+6𾯲8g_I_*6o IlI@rb%|W=eƞ[F|/ CU:k'[_xȦ*}*R)jNeުÒk|)Iz=@K]&7d%}.`6/ H}]DmMk*a+̩'v7!Oh {:er>It E.p\=bOw#k辮߾3<`I'֕\Nv[]se%N80Lޯ^b]SzH52 *JM |7$yӫTf&t:%szNO'ܝNݧ(oN:/P^TlRr-҃G5` T=HJjʎ(H5E{$/V4DTCZxԜCPbC_+ #Y^7? iGhR֩Ox"1꒼ک'X _%%J$:?s[~ˀ0Rj:!G[N՞ jK(>Y2P}lrt (w:B=}KE&kNl_ǪO3g]ͣ&Mi>&wmsMu. &x\U0N I-z)T?FHIj/uƇĩ xR{Q?HIڕg@Ɵ<h dŒ>g>#N{K wX\PVk#NC~ xL?ќ`%k&cKmSuJLt^b6`I5k&D4 xg4ƋOj@_8 W^tb "OS+ے0 -_ >aReޗ~9B}󖀢ܩ{Ay10WNu{ V1Wikk`Mswl|,~f^:䞞38r]0NS% 'M+^uOݕ 221Zއ@A蝒˲YL!:;u`͙Ɔuh5D_eQF8rRP9<֑*YՉ Hl!cI6,d"MV"-V7hySnXNj|2/s=t";>d }-s\k{2P@w93ք3LTN2r%Y$êw:Q%u(ktZgCƞ/c\U~6 ,J5yEo?r$Fk8^0\|8Zeʢ:|NEzQq_dzYE}Zdx=[/)CV/qV/B}۞<=` 0_M^҇Ev;Df-HYdt?iҨdlX6=>NCOfthzaq3>t}<+AK4I ߐ,k.Ê ^W4=o&SyN_iq& = D8ِ/4Ãn{KhOK]Fq1Lp!a^ȄpitsY:e稇4 2i*qxa C<>ėY#Gބ>-&ǎ6-J?nZ%};"7J+2y7c睧ٔ+>}yw u&߇7 c~xև7/oxh\'O[=3y ő+PwYzN}=?<|&ϸ#0-)؄ 06izW(W,|2^.Ln FN ބ6;:^%UG¤;OrNr-h7ͭNNf$h;:o 4)Vpm)Z!Z"41Mìujڴ}\{u5_@MMmDkSl5]7AU?QuNm:y-L)0 ,M|Y6Nȉ\:UƾA\ש|6L mM3|XCv;X:rb҆Oڕu }!v&W>dq5P]-ٝ|s}m鸻IV|K]/IP5٠F9nnHTqzII)'bרӫh֮ 熮Wav=gޚ|^=ث| lr/@uilF% \I0HT03fS$ G)#TR¤; u1E}Gy[^0}ͨ ϲ.Rei!YMnY'ԙdN,` 8biԛr̳Nvb?qMDU*ki_<&$6mXew%#NEjkV:=DR>hp`~ )3ء%;o`dsEɪ#v $f b+tE4l1@ŶFeDȚXOK٠0.>]v^XTwcyFqn=P_=㛥 E1r>7#5Fg6Ar騹gF`RZ'P4t'LESFTJҐJNnVH,-y6O}_m6۫?qJjH[iO|;B&8*&6 %,d-3IaK: J1̋<{|P_/1H-ٰrb$s㨞Ff?<\r3p_cU'((Hw~LrI3O么_XKeoi0>OO]ј/lleXjl\n /w+- uZ`z+qi@3a|,On(Nx`-:oO H_OZ^>4'>VE_^X>а(pIyziIoN.q>‰^.i'Lo^p[ȴ$㝶aؿT7{䪺WgNv_Tx,G4O|y~Qb~N>cG~A^qC7<@cmB0'?O<<=e35B>=ʚD>Dg|}x,>}Eۯ]C@O{{ w̘mvBf;xS\ ?L|B7c%?2'NZ>\?t#J =x^̿i:^O>rG1]cey" ϲ|wqm6',`O{R}]:>kl+D"Dgh8+0%N/jNl+U>'l*Ј[4\!]SlU,28%b$c pN:+@]wN6e5(4"O%FcsE9LC&W`s4 çHRx'zq،z9gƇ|FMk /M yIGÔj`j}:pNv4INxG4# АDI{&CGNtNov]+nVy tI𕓸T)Lw>O5yۓK:I @  0yMT҇(A~lrSqe:ze1˄Re-*H/^G io 9|e|z/3Π"5z\yXZ5@{֑o'2NZՊL}a=}.*Bit/pF}*Dzz)A/uXu~|Lomb$?|T"vߴo >*| /~&|rUk~]ǠzμB~Ia6iؠ3W&&TI:nF~R*^~0uH\!<<9ܧ> 4:|G?O7>iGF"%䲞com|esr]sO:M pI%e&(n+Td1r h$^[@vN?x$'88 >Qtœ|QaN|K/Y?kU;}Ƶ-->K]R>IO`i揇tb8 A'x5T78}=Wmx~| +7ޘzv\Qz\/\Ґ"S6 bJGT 蘿c9dIInx?: _IW=f&g *a>}MۥJ^Ia}u3SWiU-M=bPA)9 ߜ,}NcEV7`[}U9UgUumBu^4NEY`9XS?;?#HX{ k}"u(J .){ف(Ue $]8-^S|$Ąr%Syyلrv92W3?Smllx5P_[mNMɼz9ifk^[sQ_TٔҼ(ےKe8i sp i'3F[оE0؉߇-:|~kG=BTpHZ9|W_,&&yx^>Lߧ'X3+ysz8__æ\D?,zO+ȶUӖ!g^ p敭GU/>m-SEtF49qN=A}~" Xnm*n@fURPu2:U;&߼;Y'mPs'p:u];zQ~( t!Po'>l69[ _ȥ_>3d8sꑨ"q/ȢIS =P@ADL=׫?k*+:oK`u2I1PzgfX]f) Q׽~p~BT.NS= g>{^{uR!Iwueͽ=%.pߖqfqXg_)rY@:l]^Yhʸ/oKJ/Y1t5iZjRu2id"IzNy>o$H@ $)//g+ԋg?: @u3-cSL 09RNn % t#R&{:1=tmq# ]3M@ESXs;1+POb_O' ?FEgxŸx\|OclOOOl$.0>ԓ, #3FNCcݢJCfM\%[$;/v OR_`<L&7r)k/gXjSJ0P^K%E=%}㾢w6ΎUsb6XxgMY `mixLՐUPх=l)1Y4f1ad} $a3,ȅ_$=N) }]# hrG[lp!zla#ee$6mHDd*kSf[ (A]} X'jЦs)sb sZLKhW)hQ&4:Q@&+\UL v^\&ܛ<}W=hsh`a#@HC wu2#І$wpr[Wqִ}mTOh\N(dMxNH+ AmK.ɩ9n&eAc9}BaNdIbtҰ˦E֠>GlsB#ԯ#ceXT߬MʗaR>G7 ]TLwKu/p:KЅ6Q @K%Ĝ4tF%;bSf,m@qs83I+Xٌk#:S*J-!"fï25Օh9YI'I{*KiFZwQZBJ,zYџ_z )"@+擫/^yq$B2ȋ[ٕBwDtZȢ4ZfUwj3ռO./&99S4V{O'C[QXV}M2ʥ5M)7@P̅.k"(9nuM4G,U_%>#.O@, 4 @5SФV&9=Qe n^:X/5igƋ 699/@LO{NB&S37nk赜 >29}K ZWچLa9'`f<[[q\'~B5Wnu_zE\tШ=5{1B4|:"Gٱ .4:){*sC$ ,As9B0`s*q4OOʳ})oq:W曦N;!:/hL0ˋ<17Uȳfq|_+%9m{a|6cS_M.J8(3K1[7|06 鋮 a0=L[?I+NS7ͣF]c;,eMl^ۿۋ-L0I]t;rFv`2AE}C$mFNC?M2#hYu'LBU>/-k?a\zC=3dqc'ay"Zx÷mixI/^erC=cw=|y|é\I==C= -{$y ӱ(}QV_dO|8&gm>ʯ͗VK 3LʗAQ¦ y?u{ֵ~YH>;Ya-kب6<)ѼΠ46S|ZaUJʢ4dc\0qӏ!0c@(@66Mrۺ"vMWh)(6t[9ģa[e7"{ɲɖ6'_ݸ,:Pg|K>GC:AKx"i,INi:Urs%0ի:!9̧LP$F t #j`F7pC_ʱ*v%hp*Ԟ5ܷo,83h{ơ ?Gg`%bcuUuWtOfN O]l}| |Ci||W">UYu]lbppE#=6AE6'Tzm TUdEݸ XF?+R\ glש> =?kxNM]xG>Lt@Mscɹ-(hm3襕F͑@R.m q_2*IFáq_Θ`| 'K`CV^׈T3 W65CȎP#rSMJڿf2׶)&8I_aqщOYqnGd[J'S7d+g b U@#ت6T:@-k.8ӎO/V&̟KGJ 5@Wk4#N%l3u1R8OeNM:yP'4j-3h;f)*GEUZ|S"-Gɴx=#9j|ʤ@| rCeRֹU?hrM/83\ǝΙR//<8y;ypG//0yie>wQ]&{ *;t7޺듟 RXw}z4/0<|˳@j@Yaa-mpefmBpJZn9:c1?뙗˝[zy>xQo޼y}rk3ZByN:k]9gb`&NsM,=n4`7uN 1&i?!,kpbLk+tgSp؏*W+N^|pp2"s(E2ێqBD "jڏYJ&̜L;ҋ~Te8RIXc^YY\(?}H$m&xq1>}cOכVe }g:=ZViYE/d3Ebt[͇L?dZ6t/UlrٮciGy\2gǗ>PɎ2y4[퉇ycqEIx'r̓;VL~26舟sf۾&?3?'C; ~>,2q]%&8'q'+ƍўwZۚxțp\cqhc3 $WrScn.d7ϫ?~\/wtZ?Ǿeޡ?a<ɌѢ'cge4Z8`vXnE 2yC:Ox&8oL"88D8m:i9p cNӻZDH![M&\eCWCjqkK)eth>Je]T<'m$i` s(s䢼٬EcGnV +N=$@C\ѭ&ؽ7T-PV{ {׿}GlG(_>ה\ W'_pCWЉP 6d zl:,ln>UطN.tVUޢ8=. ~ФɒtҵkW'~SYׁ4!CW>`rowP'D@u_}Jl]hRNh:n6YHt 议ϕtukWvվJt;P"KW?ϺWX yS|9 #5> hR5ɦƙ1zal\%Uذ?3e@ە &gSyM/Sh RT A @iÜ7"%Ѕl' yp!wbB83wENɓ*ӗ/r!GUKPYi2 ; Mߴ\WKt8n0 y"3.6&9HI9vInh.)]Ktv ފ+Vy3c3t6g5Ydȷq@ԧ2'9zag" ٩twאd5%7j7֔W(KOcݗ8?뚮cR9fR΢SלU' 2 IRc`W~M$4p4\Q0>r {K 8Y'M 3i׼|Ou+m+䊀*ni1A/5i"זa2|-f7ާ(ya5wM#I%uzo+ZM^Ԛ|Vi~iAɵs0&cZ|?y|G//-0ŧZ"J}ŷ"Ky^\8:-@/1<ԩ EzdjuuHU'o5"2w\ 9Jԋ z~+nmp* Z{s#'1oٗTO,ٚ*/V'nfXt#O$oK=Rޤ'Cw h;oʄۧĉ5S"ٛ~ ӄ9 ezzb <N9k}O<ziOLQ=r jfPZ~!f=1ҥ>~gV5+ϸx]42.S[ؘgಱP׌; >ZIupR=aqݻiqm_Vayy{E6DeK{鿬5^;[,V߼X`I5i? L#鋀&q-rDfgj+<~w~RO|b&ޖ>>އix;ṁߌ=Y;.2t2ޞh2 a=. BzZO'Kza? Qq$:N#K~Ǒ_wUU_U[>Vw(}/*yoƼ?#?Riyɜ0rꢟ ek'LzOp5O}#g%=iȅ6!qEi̐/q|Dg҈'?mҗoBs%|)b9͡ f!qC#\t6& QۜREG6\+!dNt$4=L BTȡ:y{^q`I6I&}7x*eVWR0RPVשsՆD{)Ik. /)[WHtI[) Vǹ?1 @"~E̸dzlL :rS]=za) D?tZI8LM6@$zUvb(Jv_1Sakb!uĖWr:6XA4qG 'wQMR8# VOR]n< pʇpK*Ŵvbf&|4 OEo)iGtseտԝ:%`KÑT_h"qۮ1as>0.2z>i|җ9H#S5vxV+BU.@Vv+ ]М\0 eDO8<Ԝ_iW̆Rm7~ NõjTۮI] 'Lt {K@+MnZT)^yŠIJ&-_]//<=؛Nd=绻&u:#/0=NXS% <#$a~Sk>eRyUZ[̓Y}YpY_Gt>8=/%Ne: wd#?1p-1ϻlmlqO҇}WɛvJ'?hʢC#ȅf="L̞)$a 'A=ؕzo}"7PQz 5LGZŞ߳)'YeIKN[ 5Zҩ#0!ZiB`'829e譼eh3]*)F/w}9(-mڙbg Uz)qK7'?q)l<{m;]C/2wI__\ ViU^\I^^qk8!`2<='~;Ó%e1yҗ$;tNbĹІNbk3J"O~+i$mL|6& [*n@wܪw ?:z?ax\o{wc?c:ۿ<΅BKKzVeC=/]IsxcKǮ^.ȟF6[ql_S? ~+3GO&=`Z? #>tߗZGv1E:\}d] =4|t2`밝{^q}yO>pOC& BIe7/Ȭb*V9+! %Me]j+Fز9*hu uE7'Nn kzep&կtf\-ƛ:a򳯿5ysoN)W|䡯$m 7}6,V*?}|*DoU1uQ0@ ]Si@dFP*e E_2`⟂)'ё6jx c?* >%l::RU@tP.zq߲z;'q q[d פ*ᣈ;!MNУ씈uSowqI]=^sU'~)cGyR>Uu+ޘov`} JG!dYO9w҈󏅫nYA]>f܄9ZŦyi$ʶjik+ 2yPj'j}kCYZiG>ԥ)]3NOIjdiSNmOfЉKf,c'&jfK*,M0Z?Tb Lz(R[>5&_82~S.])0>wG'M>@q/|wc?nɒuuNd$gϋ?Aqߑ}䁝ߊ&^1Eo,:lt9sp71GTXIH@sB^I!9eN:|Qig /e&g^@8ԺZP_ 뗘Yclu{z!@'=kK w-$'L wub4k'wvPg ʮ/hzM-{| C=/{IMJ`^кXd^ޓ]*]yA<\4!ч&_sPCMbh娲as2ΔO TAe=JTr}NSbQ^>,ZcyqIOet٥T!ױJ /שdLVښrRe eXQ"cַQ㢕Ce+C*7!?x碔Gyڕ4ƥ^Եrj~R{=_B>ć2ꜗ#hCm52b:O7{: }i7iX8ȇ4X/ z4!mH 95')ޥbta&ӛrp+( ݒ8n՘[+~'jsusZeCy;Wh5U Ӫ?m֋zZQ;bvݒi6ǽ쥽r[zY$lOu3q9t 49`]Y{Pۀd(k> ym4V-ʲ$2z|d /q uda?A30I}򓟜dZjH% 2t%̲m[FeiGoMsY>wbV^gѝV~/y>$׊~%|Cꇰ碗O?et8~2xLW:pn/G^M w8b>L}$lП;t><0rRЧSNjꁝCy꒎CS82x&8bGHLJÛW7޲E{a^KφEtC_m)VpziK$2d|[Q:<&w8ƏpBU<VZ Z<1e3y%7#]Dt>DaVJ'PC'nn(}62n!@"-8tS^̄aC5KnwS[ )tG9K8ɘj;gV;3i3l+PhTJ}Hjȩ]9Mm*0Wd?nӍ5w\zE/Kaάvҷ}ǚW~}O-gNm#E1:u ==Pە+F~/ 91)4{CdbvvWmD(t4+9@e"J4) ܒGG4/|$NzNI}!5)D>63-x~a~%0YyhW0Ki|[[[r.^|^}ANs%9Mү8c{vHS[GBٛʕv=P'qJDЍ>G23=q6c^Ս6 ̹jmܢ!Ik*Cx&n.Տ%Ň\zjn/Vwy:Ơ4C7K8:3A֍`I˂cC݀߄O ٔ]ט%>"! SfUSij|TVUlqk_YR"{.*[%D#_&X-mXہH7*’PmbTe^= =~7{*B7BMR olWߺ\E(`.|D^d"I}+ 'C'tvAYvHo؊1p Q,dmWmhC|Uzskz]7wxzW!pJejB7TeTk4V( ۴ϋ]'o^w gݶ"kIO{U|{w4{}-i h`2L[칁$8GÛ'峮d$#s?i-3 nʿN=lf|;L?#)'L+VVf17/RÐe%qg $LIq aZ}_\tO8bdNzҫ:LiHύ{>soz ep~YV'E~h9#@IDATl]uw?edYH__}c}H|^g|pO+~Ve6qZGyu)GIC2C>!7Ft;^ 12!r '?V 8I0xbK;:0,0}p~[Kn]9iAYNvĄB=QDgֿ76y5n>S Gc:,-Y_U_RfS{HSGKvAC@h9eC!*!lW YӤ p8.猍Mm8y&k TQu%Jԗ;;](vh>1:qu],'9pիүQ* \+9ּ_굠Gt[%ƙZ9PB;ܔc|*f3\P6CpaUҚhdM[^V8A1U4vTc&I5c˿3zmY9h :M1=lsv"ؔi'g% ` rT` In q(eV[dl6n^_20?p]/FN=H}('Amd^8Rﺭ8a«>P%Ιl`At.ΔUKJ75(1B8vp(}AKڥuzxf i598P#ю6vr*[skD[f<cZM TQs r0pl[Ǡǣ@YPCӭ~ $٩qGUtPj;Ģ(g.ĆA@}[V5 ƆLi9-)μ`nh u~@Ol@)Vү85= ᄌ&qla9J>p~p\JOOlВrZ~pΐ+24MzE1zWWnGش6E|AC8V}aR1 k` 79ہM0^«y،%<*6䱝;nzwX@e{t9@ՇjDD?7$ CO9=~Ss!2UmQ{[mD`^7ho=ku烔CCc9HEi%6{ %_RbZNn2wx>φBP>l;j(vfr8̢_)~S!R0נJ :2Un7ӿ~O@#Nk5oajOϟ]1}4jn~VUDv*m?_ ^p`Wj8@|0 Ytgp~kX6OUv7gw57MNk_7p_ye򃠔%Fiie= {՛j?,Ij3 /b%uCScL'~˜^+{z2|Wǜq7JsYDcQ=\":Ȳ,LxZek9<å~<'!=y2bpz2SF r LʀMzih2 s[214<'O$5gΜ&}CV #2S?B… ^I#o]RNX'|fX5|\/t_7LC>]ʧ\o*L/S1A8N'/\6z\0'IH n`t:%#D^ǔӤ΁:uUSoN;.GW8]f,YeXt=[[e3v8}XΘO<Β4P8r`'\hRqW`qT)<ı!r8!'OʑrsC*r uDInB{Ir"C&^sZ8-Jn|饗G_7qNNuՖoȺWRWAx9L!(eK1i<}x*8 ::1a銾sp\>n9mbwp@yh9!AU9HiN8$о8R nK.͍>Vqmo/pXiKCӮ\`N8ŢkU $ek2Ψ+ʎ˫/y =|2hm $]h2|srmP%WT'|6H6Y"уa0`B gR'qIV裫hܖiMiGtлXD+[&SbTmLEa,TGI'X'ѨoRFG~s=.CZVmYӗ=wJ }鄣Vm&XgNQ8ɸt'IFbJR%5G rp;9nqfЋ)#MTJ+ϜruO1a~`G'jmeoL7_x7p;`6R_-];mC8ZLjdUn#Gܨ/*6ngOq9Q˙#Z@4܃S&wu3_u$FG+8}O5_S޾*y_-KF_Z|Ҷ)wG&Cll6cXݹ/s~dS{y;|ӥ81 ֿb3콨c}Q6k?_Ze?zP/w<5zz4I6'ʼkچ'DƧRgb`ΐ"a;%u9/'0IY(9SνT9{;I36k97HoKy|-2?6Lq:~@r>5Yr.qB^̫};-mj 97:BgL*9wa{)OGZ">ufp!dM־6M~W}k;{ ^PJfh$k47&OΗPT뒱򈆼'nH褩@/KyeȪ ?*ާc@wZk"\Ū:ێͷMR&r4٩٥KERQƅa O?uLZ噻؝%_훨 /W}*κZ=Nzoүxhൡ~XGf8LB}h~ﴹiZ 4Yeߪ{4yY77,!^=gyv|_tYppLzؗ yri@8Ou)g7L7aƟtk+> E᷈ݮ2ƒ-˜ؔeOA[Jo]>=uC˼&wɟW3Wb%y-4u"[!9O6Ho^a٢|oYH>p84Ms?SӧO|A#p?C; z9Lj" it+}p#mMSyƲQL(9K8rDrV nC*'@nBWusN8oC6@uꎜ%0)X6!׹Jā= &uY9LFu7ȁ[uu!yg689U z8ki5[IR#:٣z8~K_4 8LLE;[8.p}Ac>89F:Qs=տ89^-an‰06SڴzT%q':=qhKh9:B 18=ܺ6$p T 6ɑ 4ǖ !CDd*P6Ӈ|3^9•S B(1ˬ'Dx nM90-u |ȇPu1c2(]5 :EǺA0hNitBۑs09Ly<=j4u561ˈjpA6>$J㢮h±f~\ Jm (ɜ-t%%ojg8L2gUGj,g < 9,xSs/?L8;z.6tY^ex[ŚXOѵY F>,2~#eG`~5RDIt &wiRNGp̍Jm`ᔜ'~|5uU!ByXk, uQ[rOkώ&Y'.^2zQ7K~gGg_/li=]Jn\Yʶ5ϊmڧ_kf0YsWǃ`U8U UGׁlCN%tJ[ػo=ѷ`0joŪ^vLfhW~x2>Hʏ ~1g]DVv~[v~vyEtμ=!C9 VYWJ3bMȚd5X`[}xnF.چ=G LOQqni&Q85SY3i&8 [D MLf%p8bz^2zXe8ҿ0>3\KU[ \4r'蕶l̍ҵV#M Em(hb;+*h ]xoi <7JWţkιa<~!ܢ|L<^YC9#<ﺏǛ~H=iz)9"yO0}a>tő#rn)A_.]d/^HYe|#ĩ7-}z>:C}`]q?i˔ e]+~hKgUeᗁE4Z~H;XT>3ѧ{^~O|\~_+ii}D(9jɣ:0=.czp |:VC%}@h837aQr[@ 8c Gy}=s{H8NsxkN4`Iԇ..%̡X`RFK`&C)׸6 >HV\ǧe&y"J0nzPםlK#%uXuh+yS}'R)x%*Υ\:CXĩQvlC`$'r_>aFyCx>rlfϼ=lCO)bM4$vmuRTvJ?*zyTlN~ ې6IpmMȴ~GOzر`\b@82G`O b~3T:Ǎy|uOAtI[5UcmATo`gISYwMٶO۟*^_^8K/6x ߓq5ĉYWT4hUoݼ9QbqM8Q~S۞_k y8Z,X WÅ+lcdftDG]CH`K[WΒӿd>| B$z!ۆoi''e<Ʊ -GګM5m/=rF@unpMOx]d3еxY#oq%A^3TDʫq&A.šE ]mi58<鲧pgہi4*W`䪱H ۪ŷ~u70U6}ʄ!#T_!}r2k:MȍhE$2 —^ܛd3 ڲ:au};㬫Uur'j߁1U0xRc__67M+ <^gZy[CɡliPˇe9wܘwp4Sk{!|pt ~pUi.KH:)Oܗi7iO2m_"ꗑc/#ò0%,+p}*Ϊ=UҋnZDm Cq{.:|gϳ Sևiʂ3Må,:`Vy=c=s"`{xo8c?OC%|'N {Y#[ʈOBʉy4yqpgI|l`"cd O: > `Gb'OO__V _H>mS2ӘvGѪw dW,pEkVyTƋ.j"EY"ه ߏa:>'95a_2O1 ?ᐧN A}(-Qɠpz\``;r&ܐv|A_3QӚu`]ʉj2!Xqj-!XI}Z ;W؋ KD5x0[iR֣S = vP^Ъ`&scq&gcMo>+3'YBTWm&ȧ>gǜ ft ̇hs ymmR6$~-wgjg?Sϱ ʮJze؀ơ 9}0yob.v"lgIS/Nu+'K*B8 acC7;vpTs+yJ}pFO=~F8G8e>V?ts1H˨9SzUnj*v^-8LeU88WɎ (Nt pK7"+UVE7:i|̗_8[}N$|ѥ#7! ^suO;GvignZ5(nѢmNmB85Vi䅦@gEt(#/H!h7g};lnviC+ V{X5?_2GP\unJͿ =QbK;K/&c–Fo!8_-IfIű`62?5)nL<2(ss. >0V<D=H9Qu-5\}vK=Ioz#CX I6[؁~ ^&DљqXC 2 ߤ~`Z7f<̵X4ܼY҅ rG"5kA%H^#]鴚(6I_q2l&Q3r&ZG'|~wUK c=s1}i{A'M?ˈ ͻ*g49m?F}"lx8fZ ya?IRytQ80CbB|c- %{0blDU7/]>5^6Z G];N6N+5>E n[7ϳ⣪z٠ 8ZB5x&=u<5w z(+9 +u  :rظ( j!!\(}T,Ǝ3s,y#yJ3/#8.Jeq_wTbNl)@_%|UFfQnވ8eeވzmͫȔ:_eS7oͪ[FpҜyvwuӧz,tqLwuPNlfᶶnIɓo]|f.Zqwwlj?#zJkLW0>K^p"zC UyD??Lr8s{K@&^]gt裏˂|}Gyk(Y>1}zZ>V鬓WOXԣ>.erěwPʃ7l_$/ʒ0r`Ild(yPGqaggg;uȒgH#1y1.gMI䀉S9 :Z(  5>Vn3S/"mY:^ Q\:r[E?|X mD򥋻˩nW?PB3.ɢo;C"8nHvNݯՁv[_-,*5pe|x SI}zUhZ`AAC)'2]0R5,/::cEtc!mG`:~|C: ֆk4kTzd浔U/3ujT6W۳%o[>8.]n,n5it?'V:*8SvOA~x1f;Atƌf@Ir͸&WѥD^mZ^bc5cYq~(}Iae1ōpA)-Kg\Dȅs-86 doBtv ïml8CWr󥈩?8Fy9#/uWaɘ##z!xJF(`7$om|g-ɹo9y I}9l` q|"|[oFM p6E˷J_v`P!RgNeC^&% U.l^nU ؒ !" 0POt7=ÿzXIIF ^=ftzvTv}j"P/ DiM9 }VgݩxŎ얛O2jGdz6r">s#~ؕC)ekTTueF15!|`7[r|Qk*6,Ozډ$G\5 ( \|q䑂|d݄(yVN^v\H1׊܈u;5*aWrQR67:fInxZuKWH)J͓6483V=U64x|јth5󠧤-#032ۙgIW~yn}ǻ:z۟1˅ʰ{vR퍊Fj |MƱh9ly3G}K}{> &s\-/ְGʘ1M@6l^[]Uǂ`<՞G\& %@S7IDg} ܼm!R%[q䓬kUxoaJ^mzTT1XAƏ[qn.ҁmP|vr|Ͳtxf|Xwwd0t)@uOR?EBrfZw'ȩؐJv( zDםΠNbXM~ojO1ښ~o[r ]lST!M3zG.:<4``ډ\e.F3\K_Dde<2PD: z'}F1uzqa+W2QgT(fÇ?}|UiY=@ `sBh<}]e vw`3sP~ׯ/(yϴeyL5a-_ׄW_~;gg/mpG?Q}~j|Pye떅CvVziRFë!O}l_6+=)K}Y}ynV>=,仾$',)~]}_K XFZn?hͣ1n*\Uq!V<|%7$免@8`(gN)wZ|w唏/U5FG>ܴδtO#i'|+d(Oe}:*O:5b?fOmGC3\6cOOy.xOCIsYŋzeq9%Ggiu2D^o)/)O<,O>48.\ {Ez\xx؞!ECȯ38e3o^">pg޼yu_i CE/eo/ LOsQwwulsjd#a I/`,|V$px/`n#)Ob%8%HrI3@&::d)`ũUFXT KI+U?t[ځtXjCrH|ENv/n:>+UڬZ 0 z4º hCq Fp8J⨆3e9T/C<,:wz"^`e8O/';+DS Ɩc0Qa&2PtǷL;n*!Y K_8[ܜF &cҟ֔z=7*rT`[hQϵa!-?ٗ| s!m6\#7ፆَh")tDIr .ģg07/ozMXrhS/2:븅X )ڇ #3e_pl\}l3g, xy3v+VqnWQNrGI8éQ܊*_T8-{޽pUd^ʡʍRvbsF|$[㈁l%6vX<'?FOmkq.P:\eg" AF';JW`-i#V8/9ޔ,76qpLTN{jgJmAU6;ځ?6CO9XıL'@ d;j+Eߋ\ٱPT[* xf>r#U 迴 tܡ@pWw0yLJS/t T99qJK(k*:ܠqZ}ܜX4u~RܴZƱ<^2_a>s*KD%}_i_7P^ټIRSdTNQ Z؎)ʲw:Rkɢ 5.0Bq3SzEddg^ \?4Kn.<#܀*5i[08YWkGZB:Gbb̧؄їG{ WrS>#v@f[ +A[#/qW[Z{u$_4\پuˑRspu[qT0LBnu>-{5XzAozz1#\Li;nR6Zqc>.XJ3_%l_'Zl3­ysn/)`{cv m)ƣB-wpsXތa`$F kY4Xc 5Љe+vD^OD(↓"kӲ{9b{Ft Ȏl#YDF4kmgJA}su-rڇ7aWZzMEstR{C sPf<7 zp\ |ä* ER ` 6rl=Dk'J`bp:S-]e'nh|JvɈ,@{4@=!E?|W,<ȵD.`~\x@C /j֋,zo8,U}yQS=qz);ߘgޘ:h=4g]IC~|Oli؞Dzyr.>򑏌~~ӋZ/IbIiZqL(#Y{ ,Y塕a/yfCp{JY >O@Yt_zDGl{uY-#20OHyF^YK}<xXpaVc?csJd!B_9/,I b.s]t.ÁK|1>}]VY4OҦӧOy1j,xvty|Kpmְ>tӆ!^yg;ti{MC#"Ea<')O><|_|Ev<䓶1coo!^~Қuy/"Y|R,\xie=M q)#hK' ;_h U^C6u;8gzj'6ٰK@s#sa&˖{xvbu p̰rZ52Td@K8;Mq|1nnX&`vTFW&H&Qv\ sơdap-mN&Agd}_7oqf^%_>wIi/i-9XhEsƿ1f}PZE2tBhiԥvm&ӧ;}E?5جLOcEMO>(?E/iOU}':O`?~mݺu1A{g]<7*m\ڬ0^Wմ56A[ŗ:Ӵt]VcvŌgи-D'FL|<:*W!n}a_Bz . _Q+x5 0\<Vt UE~*KFw‹-D++mJaU-=߃t4;馷]{4^אg}vhE1uup L eF~ >yl0m:dyra>|}~8ex.8W =/熦I9q6Na>則Y2pЇ:LbqVO=^L}ٷC^kY 9μ:lh^:up[">5 WjNLO-0:k<00.є%|=.ë ;8` }pz(K>|Czw`} ;"kN˧ @mo{ucpxf?,O]bN>qt8oڎ$:gm) |hLyqf|&=gm |6 sAtn2XHJi{YqTw&SoS| nf nӁUƲFYGD:pg݄S<.{GzR±CWv*Cr h .*EzۃS-K>Mcr>M!;ܴ^ @n/>қp) 8pNӷũ" Kׇ7Z5.p 0NʹC g#;Fyl˱G%LcVaڸ1[=(хe$&-pMA;D*+l 0T|[d"zgy]}R|Ev`<2ԍQQS8LS =TsIPJŷѴMVt~-|K#JM>$*rEZhrB 5Rh}>PS!v1; i\ M}V+=eBKoGҏt%ZI!WjWm73;pzMr&1 c y8̫_Ϸf؆{QgςYT>~\=d}#miVzo8D{]Gk7 ק I#3?#?2)R904Ȱ%-Β?{imq7&Y0YӖĔ+NoHσ,E0}=\ډDžB_+xcVğ ݏ__agInT}e].^~YGP7O?]J2+)WEVC3$LɓN=>=^py!>ﷻ2'~fLxñxļf'̀thi8)[eGSo~2P}zڀMozzd NbpaX0^g)aIqȏ/j}7[B ].ߟP`WK`#oqH<|#W/eC^pci4rM3·#:AI+1 e`uY4V,YCoI~Q}$^>x~+ɩ9ŗ-mEh}EV S7'qmt5ыEu ȀGZkRK׆ヺ¥2 3r"/^IԩOѥI()r΀w?J8Krn+W Ong28uWܠCڇUdKenBB9 A*QȆym*Q tȷӧ`Ǐ&{? [ 74:,D0N&(Ɔ4mۛQ9'@8 @8˺qʶtä&/֫+;^Nq7%r@%H$GYSkYS<0z۟3r8WsPs_}uѻg4zLj }%ىqPт6Җrd׺?K*s61WA2}A?bCh=sm&jQǢsS"h>c29?~PΝ-INT_vQ ]vV*VZ?a^hkVmʘ󀃥PZfVGWq&=r W\bPk(1r k띊|@& w`mbLQ2wrz#4N"ߔmSIK_3ckVIy^ٕuM༡R {= ,hW2 a(]p(+FVREj3NܒsƤ)~U;4jē2N8_<ȍ.^]kU(lɡc&]qsmY:l& CS}btїzVLxlGNy;~˾PJ;ɡ[ 9ݫQuޏH6zO'/YxLy]13ԬϚwX}׊r|@TtLKr2>I?MXbc~zNq^ jc[=@GP;ʆ.;>'g&@ƁZ[Nwcز4Ə)Q:?N /ɸÑuklO?Z[_4CrZϫO֍J'h*ygFe}v>p䡯zfORA߱@^DլGnks$L>0>6|EӀ؆[ 2\}U{_?ta-h0~NUFk~9Jf^7>tb`tUKu{~ϿO)W @)'>wiq)vJY}>=H8Fvd,c"81Xo)eۿ,\ *_~E0g*_Fup?eu|3/ %nO>^h,ypNÇ*4=~gkؖix=}878nChzyO:7!^7zLyݨչ40ypp)q},IC7/"w٤ӢeIÃ%.d|3H(ݾoWwWbW;|V-?f^,}"E=-ҫ7sXt[~-IO,h#p -:krn @2|8P"AuIV4 BȂ-kڑ|`7'v^!p, 8NrR0X ,?sp.z` Ǒ:ܮ/ϏMO4PKehr _UYSF r +Iagސ;)ǃS􂣟`5 ZQ&/}nBh*qmq& +!69hVJV0='V?D/`:R ΒTO8*!+Ŗ7^zu]bvf)E"l2{8Y'É Sb:r r/!ѶtFHkֹ~HTwM? | kMyK㵞8i -- p9T9r$' UMenav֘ qB$S9m@6ax#;Wq3A<7hÃ/}}yh1: =^;(ߎpI[.Q:pϝB>3u#ZlI[FɉAm[ VȞ#-erd*[g;?o6~늱~1$:<-(_9%5T%7}dvF0$]<شs>#TaHP"w萮vq^>.jBiƉeغ1w364ZiR0Qg1fKFlŶ8AW4g^FIԘ3n[3YY%:،DŽdɟu[7Mflf m~82ѱo<˄j`OM{S'{s<;—1xYI㭏v7k=;ΎuPTK VY3SLpjmAic;UkqtE6b:֚qYZ*>eU<>^*_k/o ޏ(8ف^} ߲;鋕/e} jks&s:{4^6]l>[7N7DOKrCv[da]Fkpr[a\XGLHAt[o9?޺vM},5^UmjsBڇP8ZS#,t}ȓQ=I~ $ǔ[s}J?,h7JgIqn&) j:PԓX9MI_χ  켸ӧnU7/^U!4,VU վ_8^%ܮ?]T_x=4:y,XW g~:Bn,IeSxX{|tӳ`yuzҩ}5 ywކn߳&8gC71CJxGGO֙iS|(gã>y`=<1rI}t`2<:ٶO>[H{Iryv>1!+ zw_o-"z"E=U`7TMpWce2\F5ga!fjp>{SF3GoO|o8Lv/ݔ%8/ė_͕ڔp_{u'jQyK`1W8ȰA8ƐȪljN&jfpv@KS5:-q 0Nዓǻr'7,MPWP7#?šjV ЧL]IpC"YŘ)v]IѶ.s )8)&;äl<}l8 (r᜴&z9dU18?gWz0dsm+n@ox?Dr%&ژ`eLp@!AHE"]"uƸn]5ݝ:sSUi^{9?hCѮM ~@ F74$ɄIpxx?v"z)@ƺ\*"L=aF}cPl븐5JY5Bzi"`Z i'4|!"@}0&qE"GZ`Ќ_Ĉ D)bk;0lNe[ L~TwlMqBQ:U#+;qV>N /FIʩP!Vgp& آK?SG%e4Hd >y]c"2ѝzzNO06*NK]TQ~ʌCRr6e/G4e͟>m3P2Iys.Em^8,"'#<: >Su hRh?<ȼLSu]o(srhS/e3ߺ$5]״Wtg?VjovUk@*ig Ӓ=0x^}A:yMK>?I~FM {&x& \ }so[#,:Gaz5`7t'>R>mWB׫Ϙ$ ^+k\͋1!S|?1#>x84 G`DGeO>i#،s`ٜ2*#ݦ= -rsXNukOS绬u=d#{ |̉8hGnj|z4) A?0 ϰ#B~|?!Ek5@r Q#D=ƋAվQ:ulG,`mv9; 4p?548OV^ `qX?S64aA:p}ّt]^U=hP:O}#7*0<}| *C?E2-pϧOɟٟu~LӧF>~~~`K_ҔdYS7A(3~RqxoBڲHEdߤ&eVq}ɟH~G>)=mwҢvlSsWrϩfiҶGiL絯rewݓ}N3]ه󂃃ɹs&O>77 8߆;YIq<wYUU{O,UfVG'4qO4xCʨ8yE߻>>/\ia`:]m@C%կN ~ez10G_*ڱn0CDn$&esAۤSHRvYvE3NsSW_<'oN"DCU*>AfC|Mɬ r5 z_g9pxT(U~qM86 ۡ8V[>\Y bl1}&HK\LfK2.m \bú@h-qs~!­z#@&S 58rC囓/2${[Zoa( W/GŃ}!''?Ay jpgD5@or>mV NDsl2tnP/}#vSiI%pYu;.xlHfjTE53Y$ _Ṭ:IdcvV ɉJr cPi7nr#Zx`|ݲxI fYur\7)fKT$r*&Vzun!>Հ~wyXh;r<*^i;}]Dro[X}2Q,#c< 6a !ݣ?a L. '7C VrS6$ԧW%vp>eQ_XPif.2i;4tPƲQE)9ҾTC1cT lAi= 6ӆRoe3a<-{ ;s͞Z~Pk%A;umsy8ץ9ErZ/fW|G%ED6>N4@; }qtƍkK&EuUȡ}z}79fFȨI<-:/0s4G@{wIA63!kU߈]4I0kYxAopR6^s JA)3SCf D@yu#!n6.`9uY*'ټfĆ嘾 @9FNLMTSkl#9Gek>T|lϏ9b9ZsA6F۹8–1O:GreyO8nkҗюxi g $e??C'V{ 07\cl*#%5y*4UGyMyǨ҉s;{c>m-Xg[g~CYߡz;Nǫ X1^HSyi}xe߇+~8΁{WU CWU^qpK:wv~̾KrU7 ~,>1Wl3<'g/}>~jukYG*suqǶS~⻊vUn}Z rd;0Iϙ{ɢbZ(u@C6-"G̏+fshdfJvT+R,5I>PIa-Il)y&0i5g߇Б[8< Ŝ@HĘ[q*u+W&/~=Ao /r$84u:(JgxU4QrAnMtA'OՕ]Œ WtS9X1>Y8P:D ߱&@9V['{=BVp4b9؆;3I̠ lJ:At&p} ׭ / ҍ 覧/5׸J:2FĶqO{>PaO}@===d<~a_l=C,}08IlwR+Br>]Bhǡ.7k6!Nd.i_(ހ }REM7EY/`:7 S-8MQ[ ek~@%6A:z !@Mۃ_@:b>3>T/$Von|-`peȁSY?9`C_r}|J`F&9p܌?c#qݎp)5Go7kemj#2W|6WV*Ztΐvn{̫IeK~kv[ >{xkT&waФ#J>7\|U>uG2 9GߒgEvOhN"H;_LZIʪDkO%ʾMGSוM ~|Pt6ƾo)>cpzcyu+P{+h<>0ʋ qRyT+wҗ|xq?dȃ~-:_?%L2H?i"Ǔ>V|+b10ȨؾW<ĚḞ̱[ẈE[*yXpZ36C@|=U6 +זSd '?v|U]mboMܾh֜œJ؀@CK-c<, ˯1De/=$Ë6!#7Ϣò2_Z)Bxƫ_0Y+L]k9sXnMrس>-sD8'݀I雮:A_dp>k9[/F4nk}詋zDW :^E"z~D6gPS10Pp7PN/9U.5e C!"ӞI TfZy0e񷌕jKtg쾓w%TJu )OſVա0US'oƎzu)mo+*_ܦ^'Yzȶ+{4Pםުe70nʃq=x[敧]|UumdA ,|7[ī/ ?Ëh>lOsp®ɟIs}$׾֓lv^٨]NVUt\6)-~QqWu\~WC>Q6_#%=wUOʘ?ƫIc]_߮L,׻~HtU|")˭?o<9 __>+?-WzO8rT+L~J+[]_: vS?Q> ^!I'Nɜ08W[\A ye; X:4cQE=uh6/eŧ+>oڅIkgƓoiZ\o LT.8~S .2esG4>U;|xR~_ޱrgy6 @2 'oUAFm6JL Hn;СQpU@\*%,3|V&\6Ư›ַF|N ( t {JOyCMgJ. rw$-4r,.jTf{/M[h1EQ(Z>ͯpUCܻz $Is͡,9d4@}`K*M"nl^|AS=O D6o(\ƃu r[0;קfU/ (pǛen|T^O=20x=B h$=#Dk p+,׶J7*lx 0 7J\7E5m.>؄KUp[X_@zw;+dBϴ+ G%%t@IDAT 7q$K[SWG l4tyHy\tUux!I=! JC5%rmၮtߐ XC)#?dD7:\A.<$m-@.u/EKWd}DN$IuZje,eQD-@mh|h("2 }2:(M8]Ѭ;E,CG?{ItTR*lThs2%R ʤ-O1skN =<E(|+U_M|%qh N߾q}"د޸rUWE?,!gD="&?@Z֎Amog_,4AZWiaKyRfuӏv$A 0 LŌ/&v$^ŝNYnUd_jE \5dϫyPyɗ^Ѽͼ?/^>uR2K{9O=ׅ<~>7Bx? `\|IѽOJT&>8Ϻ^(cݰ Ɍ-ϭUBi?=Q5î/%L}Lz-@ؔ˥v:u6NGD1=g`R2k S_/ ~ 6HQY ͚h$z.«ZUgd-3{u: |Xˉ 55zSYz/yorT>Y|5'!o ˚#zq8=a<@C$E߱Wp }΁w ҟ|YRm^t~)  EvGY@3>=B'N}rvni'>?`v {N!K)te2*F6֊NT0'{Fy?aQt #`MAG<C8좰q;ˌfHK'_8e/sNӾݰmTů;viୡmבUGz-ڶiIV 0y`Ie><#oU2+ui:G /~U1D' ˶6mޛr/+(Ţ2#VRs}|?ByN9؞qx( u[XE>iQK?ȏ 9oyA&;/iYz04}ުp>L͐@s* I?W^UH<*҈ yuŋs~Ѓ&ɃG}ח)>Ёy Pu]Bq]o)˾)e|_YwQ[o̧ǴeyЭymBߗ?n]wЮ{^?>#9r$I`8yEI4GBx2fD5HVs@( ̡HAu^xCiQŜjPt<L$ (z9HEϾᨁL$sz-(a =LBs0 r.E[5&WJ)O7PgtN8ԀYhH)^֭`-= .u(cʇ={nd bs8nqr%Op@ ɗzK@wP-01.@ 1=0\|aZZlUݼ  In XҲ'%^MMBoeC_\-[ Bm'Xi;|M՜0r3t{#U%`ֹc o Ɖ/< vSN+zlh }ᑸl8@ l9HgG@!Nq6_u"}tKXE2xK; :Ӌ9E4ˠVM4ZRɰH}jv)XzhV䊒%<)E׭B'zi˃%xx:#x #k0J=w5ј܌&Zp{37+[&|A%gHK{1^^02O}>'7^E9ccYlB0i̐^R}blt6|^x#:^lžlӲ밝M4I AjtL=߶9CfBb׭'NW^m P]_m74w"+z tYXnH|¡^;77`WO|ܹ۟z|rӳWeMyR+ybsS`|90I;haˏ[ysѼB-GmCv[<C=&JH7^x! Wŏv _# O\8'`" Dz?m L]Kjzvk#GC;T'd.U]IHȦݜ( Gk_k+xOo}*nƞv0)]t$c @ #F^^)u?7tz.y\􉯢^S="a7YViuU͉5p\}pF}མi}dfXq a H C?I& ]uuxekq _ۘĦ^Yi/6h-%eU*_UF_ ogV*`ZM<{Qct e?{Eԧ/q LCx/ETEpϣO=ͼ4*> ??F䍼i^7(3Ǵ{1ǫ>+ }?N~O>m>0 %[Oo7>(Ç||f'I@_I9WBWnJur k'RLKd,ڪƺ5|͎+Ss0i^Hzrc>-2:Wœ 8}}S9D -&~+&D_~i|O$.bs@ JȞQ|Ou@f 6H-uց_!eAHrV45_o|j;u~F>+sh227pnpõۇ<ԿF8&lPfrZkidFE-5UR^8,l h򮁍ƟvpNM@:~ w Ha8}7`πH=hA_`G>VqP u48솖w @l|x/to7nUrcP "$>ġdA3 <2.@U܊ן ͚rY7YnA!+Lrk4jgp#$cö?BG\U p@lDCvnBϑGr!_/F\*mr`Cȉ!;d>ՁioƂ앿س)OqY-qD;i. j;zIpBv}zBܱi-mץ{i4w{0$ם>LeUElh*ei*<}UfU~O.:JO>򑏄`6,6濶 ;M+ٶ<>,#-qU> JTY7H^y7`I>UU>OUyT:|ձXm[~_tȱ uˮC؞uˬKWz{oo{+G'vB20Mij6'/KE8t1I(i]aU+QBKʞy 44}S%9n3X@,bvIJW5rH4&MDҘׇ}xJqre,Mo&jpY^a"q:pTtgt(0 荸PtየC i;^9ƴI:%7С:7K<<D<'C>E:73>%0tmHPFb=aebx95/v=!0戀p]-0<0-r[P#@ܷ>Igq /aX1zU!TY"WqEV >@_U!=Cl~5Odž 3@%?ug i 4A|uw7tۑe+X@ 58[n["/&I99 zrm-3:Qpch;m0qtJM$Iq'sKxA_>h AЩ1ScDSu7aSKh @@9#`rGe+yWms}~g@iE5b R$eodD(8z R">XaF)`,"M٧ndAN,Ɠ73FCo^^I~ [7OnS}G}8$=/0SnL䃿ߚvӯ}z򵂋7RiZ!ċ6y|ڶ>f4)ANNiqgˌoiwZ:>Eh{)ɨͨ&ZRme| ;Nt)LIh&ONxʆ҈U.lBpjEGQ#+LSힺfo3g4}׀0OYUǤU3|yw%LՌ/2s٤Hc'5مky1`ďWiG_zQ`< >l" 7= >5wy{ o̻"5\vSnjk1::?7X"ϓOIؔ2@iNn^stmEl.8 @[鐋[M c]DJ86q{=6'Au>Ix>#a}ARܷ.t/Fy_$7{a=ͱ^qx\Bd/}Qkfq%˒d8y!EntCy Wzݸ" -P}PճN; 4:}hgmV΍| yAuiUOUO[_">} U&z(?G-e^2>yڿ_~ݺ;@o*S5k\־M`IEeSԴsd8U#ȳ7k|U{O?sKZ}'q\]}{}},rЮ_h>\uiВ7/W{E3ϯ~//[ȯxє>(ڢ||p&y/TRz^З#x/Xip__)sG5p?ur\ǥ?ڒVշ,Y2ISn]EtczH n`Lj OqԤH0=9B42dUtdaJ|H]Pĺ, 35Iə[CcLr,%>Lt"u# 33h<—\|L_]-8ؒhz աq0rO> j샎8X4UJϟBKPJPKMG#|C 7`I^.)P$Lܓ>#߷ԦCCkR#j u!Tg9BH6OS WSXI"3x{grR4hPz|ri4k9`*@i76XGt ígk TM/X*rLT8g^GB]>8V?#'0ROl1t67F&ʛ_\|C ƛx n`@]:]&qvp.w 4 04ʕs, n~EnT1q͝s4Ƕ.^W#6B%ˀZ&[YûD&kV۔1]}3ElKhVZt?H K!8?ƭsڬ6k.]S8̧ !@>J$?܇j֭T/1#ZD~ brT+v\"q r 5Ϥ2B@.LXnXe@$ѻ?(?'qӧk <#u|9Ɗ/U^[=qv|?`b~.ލˌьWhJیS%MTy~'ߜ+18!51 (;WuJt?Xf-KcCn}MS̾v]k w5'ZUf)( Ќ=]s{hebv6]}K!0w dǼ@EͬsF#+Y# HU::ᄽIn<=5yz!M@菺̌?]cZsx=yryDaM p3U"<xZ?ΩLA-t>۰D-I.neMc'on/T_{^ 7ss 9֟)v,z 0_SТl[ÅF1IhZ۠hn*Oqc{߬RA]HmEqs•خg6[73C@_m5"mTGEJ{N|$ 7:q^dk~!Νj,su+N; U4Zy`u-W^f{>އ),*;0J[We~WWqrȇ<>SwzNWw([ܦmyl[~W^~&޳v/υZ9U$w]G. Lpƌ 4,oJtBY {o^єa𚹣1&I= pxF9tp[sL .AWŘ쩭9 adqYg&=QerX C:ܰAqg } |sR/z&*#py'.N 6NmsiTrH7j n풺JlqZ`bu*Vw&%l4Hyw=pM5'i4Ċ6chi(>0`-)J.y5'"7!SNrͫ5_Wg"pЯtzCv:n!@`e Fbu -hrljـ !pGd21O6@&=0벅^>y;\l;·UsO}OȠ Enqp3`}sz@胺Te[6S-[N "IU"52kzCv> !]`cLg~T% @vluʎ 2k>QԢp{Tg PKn op6޹]Qy(?P}d#i2D&ejc8 gnګ3EH~^{W}2Q0ngHv' idžio_db~*Pu4ay6bxSfݣi/ξ`\fű+l8|~=owa?+L\j>~K6$?'8ЕiA{e'uJ{|,)ʭa=x=$Jj|Ft:;Oɇ~FCڔ99qj>^U=qFgz>m<\Va=zN\IVodERC&Pu׸a5hݭի74~W=qZ( ogȲQ },G ,sKC]?se޴VN95n{$mOzeW"T>Пݬʰ\d{]R/j.`QBYx5găv|t45tH~9u~GDC&r´ɯ9Q&fd^4F!WM{ |$x\U!^є|]XZoKdޗk?ǫ L?Ǻ2}km>}ЏIa_5&i_gEk[?xn*;Zǽ;-cP9bCV쓶FY+ |IQڊH.R[ʾrѽndG1pci@{|L>r2X'yJ6޷>ʕxndl#d+>vF/OVgd_[GY "d>x҆KomnXvWl觇a+6=ؚw4AۮO??fh}q[ݭ#ooCvi.]tO_}=?x}ڢo+5Wӟ7yTx‘nF>f;~+O?=r+k?\yei^~\/?%>oE>+_}Ly\#h\2yg'm_UAճJE"-Rt)y~s9ɯ9I8)%GՔQ1s2hn":Bl-%G)uX4;)ARW.x1< JhFrAQ FNԷȇGdA5䠐>(z|ΰ|h!"ir:y[/Nt>2'&x8`N U~tmF\w4]l[MsJ+Kf\ĝ2!qAˣD4tʡ) C}@zU6$it,P}A ᴭ&H;Cvqof^ O $:>#dA+ɥʸۖ@v$@7y%>$VYrrJH'(OICq*!{Gw@sL8WnN{ỗ&zeZ|Dn0@Oq@Wv`<¸ĕ:qםM<$v߹IyM1Ѽ-o7ѭdTā5cv iXxP7}USz(>aO_JHVNQa~bxe9[ܠnnb#D+`aG^1(h+|x\+dN??LxP` ^_ p iov 2Tyf$?>t vtZ<\+ ~2 @^@ `~Q \67C(FEF\ݡ(}LML6%NqOJVɔ휮ph _"s\!Gi[[~f~_YЃ֑ZW=W~}owkMgE6nƂmЁxR]EGbK He/L׌tɲYf*@a4)N*z=OwkG lʳOe]hJ'i M[7bźi;'ܗj)g[e}zKyz7zXbŷ)y<$<~IZ`5zt^ X̫IZ\±wdݿw)Y]b(z)fN+#L2yBR]Iߠ*mt@H诵7J~-6d8k_{CݒM/|mKW(I`Tr/}^lߺi=zSM4k_h?ֺr*ҸO#}tZ s ۔r'Әf!׳Nz=JZEeY%R[؆xLZY? !g` 2oӇ99HI9{;I{%&;k7@NՃj{7HƒVeh,: Ol=#hx-L-kKiULMR,dpZlSz@o*c6dg>2:-S Z' N/뉧\9JHp%Kn+$4;%Ngo=Cbv0]> avx5 #oC!kצr{> AӶ m~/&LCW4</+U~_ջ}XIUo^˶c6ZUǢEԷ(o+5W++sI>+}n5-?VQJΊt3^uSǢf̯o̯sG$Os7*/=w9P^StUOx[7g>>Nx4Z/_7^tSx t{mxG[\ro{37T s*l>\a^IULv:V"U-*O_O_EG:VѮyg>3& ǯ`팤y:D9xEH+u3(gU\]R&^^-q9XJ8e [_% ,:^%9pa/s]0ot&m̮e93%`qW.]|>מ3j𞷟<`vp#qm8H)C4v :@ՃP7xqp{{LF,n*<9uCK|cPZo$= +->pztH-I+:/-@~CI-]4!k7[|r -v ib x.@pbcH7G$5JIZ_4yNn*`Ue 6ۗb378E$v؀4pÍ.t,nҧH_8 GGmfLAx^HN_f>`RJsUe;[۠$'6h@疈M|K͡Eڜ 7!/U22#sdzWNx@@H@ |IN EzU(7MELs fԏ,e7=0v z vt]#{yQv[G `2#Tؼ #@H0VfO< 4eWmi^+G<_Qׯ9{&I'gt۰oÜ&]1=a_ },y5 MRg}$ugt^1w[g1IVV133!d])QIФ19`)#)*X)!&34[o?gOF^}zӘ^072Eu9̷jnf^*J )F/pX|㙋P6  Z3_MY5DWgJ:j/L9II E*"~0¾נxYC_\kqۘ(պuUgh{Q@{Y/Ag<ڀ] ʾ~A2Kcgm U<BbO>}tA2RVY9< oaGEy8s^'zjQ[-C]l}cA8{O|V7Rw[C{#gLfڈj#|W*~75kO0ᘷs#l> cmjeyPO4/}X3-@iCʥn-H"ren#\őeN6C.nsZdZMb#w!]`}$&lnAnãއ&vu=K]Wշueq̘ev3 f727Rwi`7]>яI-$sM}DUGpЬ ?gyySh/UXkݶsN_I‹5pR:nqmsNX91w/J/EGͫyGS1W:\::<= ~_8ah;wkS,9˯'̙*{o~ ~Σ2׻/J֍/LMYNש Uu<5ҏU~U=l_/**Q>}U:)^.¿˿<&/L;W8pt2׵/6c|,QU))GFtDa, g>sJ?sڔǬi~IYʵ<ÇW@6yŝZ T9m8LSstrh'ԑ9&_YߥWqs: $#zIY~)VrN7 F,巀C-8(WH~ `M%4p<>kȃMIc qy@.mU!@IDATZ>ceM9ie,ɡkh7D3Zq>P+v <@kMr3с6qԫ `Ǫ +^sC_ v;,R@l:U97ㇲn啖e|A[/#q#@܌tnd}['7G8qC7¡Bz.XWjv˺NJNр1]mUBv.I{+>x n *+B9ǵu`Rkk560rn;ǼRzBC%ܤk䠩|1PM!9TJ6`[k䍬A"Wh7}n?S[hByEN23/dΫBi7kLvccVcq-ϻQIK>1a5oZYsyճm4i%/102 t~:5HxU;љlH/:D]y[9|9G~m@.yfHęo Y@y)D] F"3 'exopI;0nd+?fǏ&yA'~75yeǀ*(#=asֽ˲g-S^$ϲ^Yk]')鎿K Y{t嶊7=`ԍs_+뮥&7c)% zF̩֗h;Idu=NY<^wW6,mft]*bƜ~.{^΃MYG[ѻ9 ;c-Fޏ*e$rnɌFWv&JO68ubΏ͑\f•V*U'gz屌~Y^G3U| 3uB*O>1I;6OF]*~NJy}*j_fO I_%?4+~i><*)%O r6dX$#>tIcNʁ:D?+eO;`N.]2[`yc+}/ 0$/S!kJAo0W^Ӎ/JN$/vf$V$w, 鋺p~e<3?rQ+ 4̿ =7e6 G>2_NЗA4 -D|pCt@+35]hm8[MOq[ŹHǙ4r:ecINHå+-*cY5fC^ÍϜHVn^z4hjzݨW)_|f-z`T82Ҏ;WaFA Qm̷gYOeKXCYO}S3q=P7uѼȚY|W=֐G ) ɛ:&}B8 Є#Zŭ8LZ>E]Ϙ5I6Cea|1f 4i@H\L1=}R߰v~對3D#DbmC/mHUϿz/klDX7Kd}f>ňc ](`ԇI$ 0S%#s37g8tFo :=na˗y?t/}EjNA̱Ȉ樗54lDxMUFZRӯ=,WzYQ{˭[ PDHBJDKD7m>Pa䧟.r(nF;nkhS1||Nx4=s zžblਓg;\MO?<DzS/z <(;Ӕ{P:&w)s:6 M e~M[='`|acrTmE>25FQ9E'c&EyU*.6F*K*ޚb:lK7TP3NQm7+I=LnׇSodi`v-'>6t۶ݯm 29i?{_uѲǑ?fYڲ}ʖ,oeU2#"Ztt7R/_ݥ__WpclCDVnn(_EwR>uOWj}sGHk=WTʯ_ķE7Un2:#^7G{T-Jɧ\}UZ멧2p7W9-qeoxWz#>އW~iEEG>x,>+/(_u, ÃWt_o:Wpeʫ4lgtl`:F+^q6+Pf? !}pAxp3o:&tdTA2S8Cc QzY7_\|E:T~ߣYcM05m8uhCL_UovP[ RqPWxfMR&WX[W%k@t fVv@0{ѐAS'pVq˃-< C`asp+>:u>5 QJ x5([_niDXl@ /B( 5Ck5CFG0Y֢&sos@iЅS[/|&e u*dd_8 pFƵo;R:<9W! ҏV X ڥ.U[bdx]Oи7 ڄ-N wO fR/ܪ¶#R-  װJʫWo(01@D21?2Esl P ig(nT8mg9ԋ@67jpbnX|c]f(kfOylnmD[$+:-(zP6y+7B]rCʓСډ"H|f>ݚSiA#я9td,'j6Pۅ ,PlE R9RykdLMPOV×mԯ֖8ivMN SeP}[%K~i/4w.jh/>%s֯V[{KY˗c~ЍIi <)D#^ Sg!\2s1@B*nTJUMm&Ng֞tLj'}pk[DutJjz"MߢCI`̛veʸac\g~&NJcNtWQ'= k {u5da~Ȝ5@Fɣ\̼1q hܷQVj΋ s&s^^\4hhπ&O:DnUz,m` ͚w^˭R4<sd8/:n3 O^̓m6ZA˳mo(DgO< JpƱ_S.y ItIT{6>@P^w^1vc/_=AɠW[s{dK9$nk*~@B$W5Zf>$"l:/8X/Fqnc+퐿( b34u+DO%cPAGG%YOR !\ Lp+?6fj+9nDmQuKh\ۻ5EqGY9lpNїؓ_s٦w@=oH®o*i`v'?hEƭ7Rnґ;*ׇ{ˎU { <YZipOo}GzקW~o.Z|m8t6vc[6f 4myXʿRA ?*ݲ+HNK:ؤfQ&:Y2wN7Etr=v慳E"؏,HWR'MNBٛH| #׀;[GO NNУ4NWr]{5|Nfp ]2yk2=Of` SvnņG !|gBtߏtMW#<ڧy4DzE`f A6@6H[Z#]<#hL~tSҼL3޻Vetӆohjeۨ>%bJ21Wؒmk_W6Sf(eLQm)y+C0`I6ɠ]C~JNJ񺋶)7 7sRЇYz7z2#rK/Cl+0WJ78k|PD[ƴMdt WkTzz1]l>/aaqx=4]Q?e#>'>!ɕ*|`@%+GxgNM%Bm|ռӜF -%뽣耎K_1،oNZ~9 NUdn[NdO^7"]pA (bW>LϮ\iN- _|El3fn(Pffp ~c О !MBdJ=L^rYܻZ")'> vRKsd1@" iMV&oܴQ]ǺeLdc|S߄b>]h^>^j|!`A=?VNN%I57q{1'NȩPT!.Y)z/RlL>K t)#[W~$. SOj~)>Y2s55i?BHxB'Kkm|vIJ>dC(XOي9K%}ܣc[NAqUTE⋎%(۝R3 i>g^&&՜kYM %os~`ndk zUuBO".jW _IHTWS]$F8Jd[ Bkv+p#0.u:N̽N` ӝLZPsj̗OfsK?L{3IͫtqM?%kR Y޸q-/ PV׸O?<꙳{~yhP9?/5gG[՞{p:zN^g /Zx?,z): `2C^}$QWWy tr凵-yN׿p/z| k!tMl5+$ _*_^hК<;η/߿y'{}j})f/IeukN gql$p_6=:Y}=gnyg6fz=Gs4=wtK/_Ky{ir,.]{K_¿S5p& \v9Zg]X6կ~ϢifWi>4vO5myR-ÿGŖn_Ӊ54u#NE4iէs54̘8I?˶ڻ&~~:OL@9.R$/,u oФ=l6G믿뻁)퍠Y˶ngw[muZ҇hykY~{_ם2yguIC>5ɛk}d:am\[ne?߃ ͛7J=F/l*1g-'9ݷu6PCy^ߡ6Γ7OlCw|O+_6}ZO+h'=)P;hOך:>/ODdGd |̽vJR6|ua;KiU%͚&ԣ<=J12uU 2ڔ7`įFQ^ب|5Hș;Q`(z#IڱDdWM>ش_} ݻwweҾ}tvsJ:m҆K{w54VVkijq BGfc1"iWyH:| xu+z"@zS?z5ٴ-Ghh7أjc2@#EGym/ K30$%aTCUYDl|eѦ0|0Im׀Ou o͆(;_\~;<¿ndU'xeB 3J@NZ}-|3a6ptxF}vd-0Ӥn}Ч$_N _ *gK1os=?QeNFFS&v-ij>pƉFNsVˏL&)7_eNRIgws/chBxm̧N.ž4:H! P)[s6pV@wnݫ`Ǣ=GTxȄĥ Zs77y<͚0%5O% ?u;O| IhKnA}ڬ~ o0Fc cWFҏbU:{Zku~-3}G7o.63ԪWz5bb%LwFH{/{4Xs0_P_R >us)7;9 :?@x%`^.3~h.0&P(QeC^'J%O=/Jɻ8>O,>?SSF 0Gڙ`޴cÿ66iY37?tLD_{PjijO@w3፜Jhex e-ų^uR g^ f}},sq}2YXCǞעD~?/oGDn\GdZ[1{گUߒŷˢzl% ܏vBs' YW64hK@úVO@ʷuNgt%g"ϤmjnX㮗Bŷ;dn~'C%"MWP%z3'јOO5SLS*i1$q䓍)x_mO"pkϏxb<ݳy_|fje׆˞0ywY[y_GGQZk~2wvaΜExۙ'݇v'.LIIsouͶ|ݏᱽ~臎Nzگq$< yy<~ڙ~|;핚ӧۿ}ht0D2I;TeV~RO-?t';=o]ǡR?gS>iu)So5wʷuֲ驻_CSiL:.}Hku]'>u'ov]-6>Sn;Ф?o;ox ʹSckmzM;C4i9~}gm]&mc޶CΓ^zg{u!~uNOn&\|zٟى06-׎bdžr'y 6Klxp).:.<_Ome6q]vh%΂6ۖh^gTXo"a_[.U։ԏ8]|6lRy(*@`P. UgdXjE&Bz)X!+,epl!?G׮r`lZ:ȢRD@n/hr4aGPzķ$+ݿ׬ hi4ňz!-_}Zw^M~ H$,ЧNB zk5al{;OeFK_1I҇6Mu vwשDl߇Q?_U` :!3ӱ1ZDuWc@DtrNYDN MSG=TEHZL;|_"FlO/`S6"s6''9e2@M0^b1(q',ѹ6 8,_ yX|@qt܇1>Ig۩W@rCuR7Pr /{p^6W97 8Su^i +S";0zZJ99.J7JB^]֢ {!X a]6d7|z5^}_[{=4ӡLY_?}'Is6*Rftnީi}/yv68# /v0@537sq[U B>jJǿ嬭ؚRljkOBE^.ik&?C5d, „7VHƘD,w1ثHϏ=|P,ݚëo|+$ڗA䬹Zيo<|%k2(d[sU@YVZ SSN$w@72&CJitzn|= kk==h/kPrg6Z Yɤ^֤95avZqr% q qKߋ罜Y͚Mω>k^<1UϴGEggٖuym :l:_!Ac|l0m я۷o}ߨS(_&[mz]6N1<2ky\*?O^w~O?S?uRQ0)X&l{nNT WSlf^˩|w mrcLfS&^6}ep*% {3A' /D>#KxхM92` =wDA:!+$͢l-6pRo3S~"~$]yR/.˽V7S6-ӷd(͗ IMmqVmr/zgNaG=h\ tPJs6r9ݓ7,VaVCY8I/s 32L8C-]j/a%y6ZY=& d^{~)_`plʩQ)H*$7=.uky|ϛp+hm8Z%FՌ{£0r ҵ_l@_Dd:!K~6c{>ӧo4OwTvkPV0[!=2@79> EolXtgY3dʜ0'D( ^Y@3t4JkO% AHG-m$A'y}XW:歓m/*CKWsSpn޼[F&T"9;-c}Ȗ8 pg@Y G lG^vJ;'nUm}J#)^-@kwkkC,`|烣|.kmE{EV5EfSsZ'Ab׫y0[}*^u'k52usw)g>ūfCg1/2h3.ɭO| ckux+WwWxl/u"'}Buu׼k#ȩeci)I?Z)dLlo&cz41gshܼBLZc:msu:`.s?Tg7smimC[m9/BdžLݳ<|^$_}Vvy=m{{s*FILFD͟S<}E{qm'OQW:-ozʞv8$϶ʷ?Нl\ 4IM\NKU7Z6LFh?-RT&ku^T_ҷ-.tCd@d6>m(W/NBP&|ndW5ʱ^W>F9O&x Jc4R4IFC}!7]GyX~|ND=$0yݺQsj"˦M|UԶM!]S%XaGRS>ݽ^lnƌe|Ko Nq-?Fe Nc/V^y/tӼ戚#ūO@|f21> Vs @XDndY}.An <@_+sދw)is_꘹%S|o .*:ٰ7Dʻw(k,}^c T7[>S dv\镠8$y3| &J48(@si7FSчu@t-|k-_ , M5E?ivv;қyEuc#K[^ afn-~ᱴMFW}xяgU㝬xĭ,2 u [ Ut'z}^Nv^Ç\ZK;9^`,v cQKf0K1S+NQ|%6sku_} #yfd9*?.>GSʗ34\ҀA׌;@+ɛ9$ʉ^8ׇ̖RR{7]5|W۠%Zhw)[1BOeL~ʌynSgM652H[քVcR-a|\=t7@ gO&dzs{ 74-=X?5 c#ț6>cmsJHcP|Pxig5*`IDATJns wsB5|A~y1htȐVߌxϯ}!͝/uYtQc:@}'4[uV7SzW|UoSS_fLvxODŽnljmӇ= g σ #Yuߓd;)q9kNq'ɶ5S')gW򕳒>7tsӑL~W@,ɩwa5s&QN׾Ħ__>Pto}Ȭ@|ʛ&q4S>G?u8_???3uu\}u|WW'D"h=,.Sw%6C.>,³jG_V[?s?w)U#}w#?fjOm_soMY[ҏ9e.@ENS~O14kYlcC0; xw|n/7n u"Vi{uPuuֿO+WgMΟ|u|K?Ѯ|9^ к|߬-Cy7[&NuП i{>+-uYd[oyIog|52 鉯yLЯ?kMZa]].:>N?P]y??.L3'L~KypMꝲ\/4UuTWfGZzO"xd'4]UvlXŧۦ+R/yZ5Ii!Ң?:;7x)6{969կRoVbmUf<wJ¥O't?"q¦BۖTP=6mX@t@IMGouM7NVoNڋ_ghM^+u3qͺ[-&nGŀ<4$g ~9 n7 _ 7³՜^g# .-NLJޥFׇ|fMA/~L߀Rw:y5E pIƗ0w2i 3oGx >BLFjIр6Yw ѯ_lKi倜655a wͥ.x3_FlfWo*׏?E,}vD -ꤚ~)??_+_^4}ǫt3SB Za^ZEZ2~^ .^wr2~Z` 0@z\'Hvtq,Y?9, :}T"Yɜ&,k\-0cRcS>>9H&URuk(0k ao}<3c I-sW"vuH|a=+R *!WyKǙ_Nᶱ {˳Gi6YY$T7Cnj?)wy@Ire+=FKa̷ e'׏kcG@|`NwR /L/rՏB֏%j:7湏=cѐyGߤhOjk?A ssG|v=Z7U5& [F ]M^gO:@gcX"P^x2O։eQγy%~O,c؜7ZC"O=Fm[/kf5ߥ(ʫ$3W˵Nyz]z1^k-, ̲FG 0*6=Ky?RMODcgx;Y"b8ɶhNN|'BGv+<O\nH˴>EFuBds5kik`;~T,G N c'r\~6l"cMcȏ#4gV7ʔ)|\ϺY\TgO_ϓLOkϪ˶3?3k?De:l}`+~]8^[gʳMilIzX+&=}ڟ`NkOZ2δJ IvB嗾|ʫAso:>|Sgku6[[N|ʷi|)G<{밥h'O\-U=Gʔom:?y;f[~ZI/޶iҟ֏!:mm˷mg>sCwv|C?e?LJ 9XΫ~}t"?Pd ڝ zLN.gš-ͲEt\iL7v;'SF:aly06lz "9AmG٤b eGjZl[^3 `֠ iA֎6Bksđlm?hl7mJg%{eYWINIjsywTC!9'^&im<fj3x\. +W#ʎf0i"{*M?ߪC"_m,.+ LtZk1{9UTQ')˦|/ Y{`6D-<5s@0筀&9 ~6XRGE&Xg Si֑YyY y=]$gįEI9"M_۪k, OG1>QhxѿSP8@yYu%{ѵS[mᓱq؏ލOyhչsNO|%5?k/?1z oS~P*T!n-w+|uχ-T5kn8ē^#^j,[\Gٲ+L;ró\R/C<[J6y xnǪ768想*J=wћJ_|_Qs^+?P-fz`v/QiixM&D'摕Wy8|v笳=7j{nX{˳F¯zͳ}9qhщZm{fzxC /?gZk }Gw7gXuO,P2~x%:)N tZm=&L>?niǚ)+WeO~G eKd`<[b+%kU(4=̕lBk}#{ }ԗz]ط]jw@~mJsVt/o|Em~io`OZ?TzN 0~+/aU6#/?1>T#tGLC=Fyiy( =JEUp.\}40>q ϢC/Nӟݧ\w $綽mPuIw8zd_ۄ/+V[OKoVo)['ߦgݏoI0]v 5k`]v 5k`]v 5k`]v 5k`]v 5k`];`n]]v 5k`]v 5k`]v 5k`]v 5k`]v 5kT SU5k`]v 5k`]v 5k`]v 5k`]v 5k`]w ϻww 5k`]v 5k`]v 5k`]v 5k`]v 5k`S5[@IDATYeY9w3%%cc`$uLA0pWuQA@ c61-Tn}w|k͜Z_J9׾sX+ԧQ71*lG#t:@G#t:@G#t:@G#t:@G#t:>+=`߉݃@G#t:@G#t:@G#t:@G#t:@G#tGLOot:@G#t:@G#t:@G#t:@G#t:@G @L>]t:@G#t:@G#t:@G#t:@G#t:@Gxz֎@G#t:@G#t:@G#t:@G#t:@G#tzЉ݅@G#t:@G#t:@G#t:@G#t:@G#tGLOot:@G#t:@G#t:@G#t:@G#t:@G @L>]t:@G#t:@G#t:@G#t:@G#t:@Gxz֎@G#t:@G#t:@G#t:@G#t:@G#tzЉ݅@G#t:@G#t:@G#t:@G#t:@G#tGLOot:@G#t:@G#t:@G#t:@G#t:@G @L>]t:@G#t:@G#t:@G#t:@G#t:@Gx07 ʪ.c1ҏ])T+WP jCtM0 MU呵J wЙ+e5;U [}ׇ.o/\XFl;Rpj]wp({" C٥ycUƮ~cmuX+k Z8.b5ڰ6lbCȶ;?6rA0d`&H=X-Oڔž`I23شchk}"9֧jԭےK-96OPWǵaF5lvI>^5|r{m%"D1nQ%(ͭU[Rn oh(Q|b#͌U1D39^;]*A+T͍akk{)޸:9Y$A swHRFul[ؿf;D"O5Dk ߃!v!XQyT0i~h~0k,)D QHAwNmS(kY>n.ITICEcMZLaQbPːFUݤPHfL!+s*jx2cuMl C:x=i[cONxV}"E#lY=^e-̐1$#t8m5|^ ݶ";`q] AREL5=&t#x|q49`e.æl>Y~5U/9m:WT[Oo[D5Us`|nlCAҖԹʬVlVe|b|̲D]q)N،%Jб5` j1D)P@rShgLA*,W߀ܩ|;I@9*y:i?g>4_WST}z #IJKh/~ѿo` $`6NU?{ۦe_E8?,tq,>LiovZuOOy5C266mM0ZUNi:yG4mU>}@mo/]r~]{0517n;)}cڗޚNA3N}uASt2.%*W}ݧS;(>Wtuɍ#>P}XtGݧLL?s=7q*8ǵM圥JE#׈8PFve}J1s*$Al1FINCO=XP7Zf88*gW;^R= ɟ ˠ$Y;:ILн%S윔LV% bUeH48UE}݁`p RJ)/B.2S7ޑoqeWo)pmR${އʱ OU)/he)xXls O5 j"?ZGS1Ǣ@NX2Y|4z4:RqAm5n7sĩGO2uĐ燲/bXzmC+Uf*erG"-T":{8߄@ 3)Az)I(_}7? ߲ހ!ϪI#Ѿ9gXU8/BW#HMܖ0bԝc ?bJ˥0H@:}ZfNA/4y>XUV۟d+:K ́-[[ x=U>P7n*rWk]7iKF_ҳ~чgGmo{z^wZvOc/o-n^by#0f"Cvhhӳ硒!нf Xg~NޘCu.yV(a%'ѫv:0<_*xfޖm*rU=S7=zb y }EmogSTxXV| K$tgwٮʳ[&/]֦s-=]x+kÎ 1x|Rt8@T J`V|L"6'K5?mb@ZBOcEتtZ1'>:`#βc1Z}@E`OƠPt֔͘mȧ~f+[n ƪgq%WTrUC}n`sxՈg /qWIb̩JxT)ut93T' 4qLd{M{Z[2{f.hK%Vr  -Ǭ*fJ",6uc"TC+y[Iݡ|tN`/2G$Z x_0HBkV`ٌc7RyGH_;L4úQXBak32>Jt8C^xy +$%'E*OAjE*㴺G4>q,6i09'$n#\Yr^E2H_%#}_]DV*snQI * /؆QҲ֕Ϫr޴*`ҿcJ9N;J8?g}ӟэۊl1;M~,`~s>1M-+_v'eIsq4QtQ? Biq6ns4|ECHUougWVZ}q~b<+fPb|/=+}>_#J~*owzO+?:?y"|K7q|GSq;3(*G~GO~h{ב_D;Mˌ~Ç?ce O\unXl<OJ2òd]DYyJ_ ː1u1:1-2-@eacm,z :&8=elY76f/ԣ7CPgNdga[BM^՞'c:Y!H f#!wlQ%IhSm;tg2l'`&e_dCo*`&N̺˛ Tt 'L֎7߼:|]L~6ow`-Hz{NF#GF6xKvѰD5MK?~{&iW.H?P`Libc^@nl*e_+6 tj7![`0ъg ]{o#}\V^|BYo+ߴ藰"=%90>r |? ?yլWpPA$[{r񳴦/L4XD\,>xbܕ(.&Q'$:bӆma~qQ25jAM|kc=ÔxY| 5A[VR$5g_yg6R ioAR 8K"Ha O{o՘fޘ}Y9y&E7rr_h&)i-S?/j2h4Zu{E_-Gm(}\6fGO]gG#j=iT^L"k_ڙļ{W~"<wFݿ/GԾ)x$X~ @ '>{؞M唙UKR(&{gY,>׻":hѩ> (rƧCMN#kJS-n_{d!q8iޚ\6?ˏʦ(I?l'韶?nL;oy̳d[j}ESm`|Oۧq?;y!Xrsssh8(?fQ]?k*JƸ_U>ſhJ.*O4}eGU*`2ҏ X4Ż^h;+=XSj ob)OP A |2 aM>N"؍}1?.)胀IFVyWAnf)߾3:3imN6l 90-NeZՌ/oZTPT_!E* "ҝ9N2Y =#TylWIPװĵ(1QANl%U&M?WMe[iS= |*HEMTMI[!?p18-tQaTh_"fH0~,2r'{KG`2$t`U1O7,%jiIY(8rW`w,o)`-+zR$}}IOg 7P6cp4m͗<``"2?{dz;ޜ8?-5nwHzmB0=>=9JX] $c?=Fm :3;4`YQ2]P{Ac8q籍xoatN7ͺc7$A_r6y9[b,?73᣺L$ Xk^F2S-PPRwl2-(ÚG1f];.fC/ as`btkVͬNCc*]4`GykOMO}c*c^mU4:ELW1-e~)L~uw:'z< Ȓ}^q4_'V4`rN\wa~ݙ޲yz? ,Y, ci|T>Mai|T2<%oo?@Wkv,lqRtE>;ُLT^ѦA{x}U osMe%ozOuC;o?-/1?Ǽ GNO%6TQ2r%vw\QN[_r___0yZ4G0wEwQyg?+" u˔LYckʸq˟9`}G T쎴 mzqZ]ۛғ1=/4&w@/9Bw6N]˨,ac"':nNm=k3# )‰|,|"+lqxidLWۡ"_*|L,m|eSVf ;6 SR ORÿ}u΍Û hA6:j_l;wx@*/2xS{/D̅΋zorvφM [l>%)EW/o9FA1>R_ˁz{FUP_#…M>$uGaW vox5ulæ[6e8iC Ro,7HJeFJTC/[*l+rGˡG~W_yk[oG~0;$tлfsOUK^Tm$9%hU֝90 _.[BG-I^{JHMܜ\ -+rljLa*5H463g8455Gt6=sEP/ZlWXB?ÉI|/^ SW >Mؑq(mfυTXIAi00T7Ż4;u8HaԺpwMh)rcdeܧ-u<%<>,U\GoJCU޳LM4<~Dde ~ ;(\1 C/6DZ~?bY]tg#3z7~7(8EeTXSMa&cNb>Bm :" 5~CK?:G%`揧6\gp߉>4v?DJ`6NKv@;c~( 2/.ɣvF:YW<ʠ/j3&QY6B@B'5G0UQyzlqd/ƔFU:/^{-Qv?sМEvꇎo c}L@G8Yrqmn|%7r꫁[h;ɇ^zifXt)qLȒ2??~*IgW^Y s0ILo y fTq#L.#LdGESSY>t^|?,wb< GeE\4X? $;Ncyh.0S?S̵zNa sp86!]$kZw !)ݸ\4'MiR~fli>|=,6vl+|2'[֩J穮ڠ=}*oQyj#4UǝI?_|#0wJX%gYz˗eCd.qO|/V>Oye-88E=!m"D7R=6KD擤 s%^hξIŦԠaF>fo=&1evYzlуim_%mNqvd=mH+١~\ە>o^SemZmN[ ?E0 mA'T7us%<N Rञ:%iox}U}um𵧀 a_;2ܑp ?,'fQTEVEr ۬r\z^Fk^t#s'a |(HOO.)=Sx wDB"_ي?I7YE6^vMmץhx =Ä׾zT<@ᱯ;lCcjI₆0gTb6vM9e/R ~,jN+™^[ f߽zk n0>XU %_pRF#*a0ݽɎ1̘GEH#2Njy$MVvֆUC) @oԊFC,2II2҅??k9E}$y$߈O3Omm+7=Pы7 xN 4YuЏe|1//b]㵧q5V˩uAab#phݳ&4ׂp4xPPO+?e0K @zg`WH~]p_se'jq${A:y(}0z§V %K-J,r2Pf7ZO+O!;уUhzyU=ӛ\Ʀ4Bϔ,~#ys@LypmHL][WFuFJAݽ ؂T7gLI T6aljlm Һp ˊBgڴtE7%hWn4Ʈ-ۉOgz1VZe9~kP(-%E~W擀zog|\2nI(h5+76.d|;̌ Dy-jx^6Z˱ +I2? #x@~W1!us~F91~H%l ToUoRu՗cYW=~x\vt:Z~4'3 _t>Oڬ3go,*)YLg?y*ݳem\WyOdᨀ_$@|KWg,i.Hzqy42k1u!6VQuVHƘ0x b(>|zg2a?Nqej2 ϫ[9.O1#O}]JNN={_阆qicکGQ%cQ{a7'Xk_⣼ڧ),yfzʌӟ|]4wg.]Whߏ4dZK8IQe+4ǥڏ㭶SW0 >-z!*Ga0_e[4O?ny=sF0!8- `Cv浑@D-VTk27Ԇ1;:mԬiVg9А\uѲASs$pGp"uRL@[h= *WN`;%ƅi@,]ty#N$4ˌ6"7kBSbDl6`d_˭`m:׃jF}m4$yO搜vuݗwEC_Q=:oOFZ,s#3)؄UӇ-R|,'E׀nrS}d2&<" C8e} {l~hqpl㱌ƇF8Q6U$\5R G*#ؖf,Y*gC~B4r`l iP'%W:l#jE&F*D5jqSآDAf$,S1}LOSYo tCa (? :̦/k.BX}s$]mϒZCpEfyiзpB|D'989]JB7n\+OJ%/<7X/ _2߹q{x]Y $#gMK0h K^Ƀo)]5Rޖo^y_wf7|eH=UZnJRF@b Qp>&ܕTBZ)Kr}4q~d@ޕ9A$[|XCyZ k?՗xxi*+mZ'J?v[#g2VjW>kp&.M8 iIZ(ǎ=bjK&&7 ?8yS?VΒ'LuV^^iقCr{5D=zU&ztx0eXJD~cAvRqi'tb k/z䩞7kX%~Drp e'm]`}̋<'r1%$z57d`$>*RW n:hù1<)MpŮ y;WZw0"E9lfkvnd$Ŀ7] s(6w)ܽPRc@z/E#P MNÖNT4u%E<4I'E杻{gl8afv'KE3~j'%_(K$i=@IDATΙ$jO0~Gl]ҏMwW$<.^5(O@c |ԧ FFYMDY/%Hd 8L6GUBF$$&[1{Vu%HC(r~Yb D &z;PHvx|I㈯}E"S^HqMreb\fQzLPDTĮ`&':)k>@c=9Nm`d8K? OK!9h xkIrK<䌈))vO w|𨞶K2 *) 7<4L <DG^'*#KGlFl:Tyؚehh( 3ݾ7U}*Xphؚ85$ ,0.!nbN;RA@ӊ@wfxr}v:V4|g]UYb ~q:JwWx|BeiC ^@ $R#lDDM~]0rLA #r H _p~%)MlڥL٧_F7/w};7 7U,G `];_TD<%P'8:%ai$?< rWcF9\]Aw?O ub,dec58) &N`@5S5cnH`sZ޷;u:S66/L=0yuW_׳B,Dtc.4ArЩZzm=I:N W}遖*Jr:6= 1 {Nl= %EmoԥIa~.I祋2}D ):ȩ<gxF@7~Pv##P4fAcG?C`gfUC Xêndfa)Ӥɻ ]'ceȧoj`׿P/i@[}qњ5h׳qJp"T3lCF$hLYi~8.s},)[t#vQZO!xZawޑdxLԸ(}p0P2JWDVź+=*۬_f|אc~ /]0"qC9R z!/*`)X䐃oz+C "Lnln)`R_!zp=oӼ@AIN䞍7x aQ7 -;Mboܚ3ulUWd4ד fvmW_zу-$f{Ń>)cU_~,c2[KA> ea3wlo1bK^wMp`6(Aσ$WbWSe6Q_C )Syu$r:%loRȡC^שZ_ޛ?^3|`m`Uo1I{3gJ̰؁UrxD_џB'ɰLQghVM5QGFkR/Bexn(MoE#d8o7muN ġK(}z6A.lK k<Y輦0&WU9fn<+JµFC$Rz: +JgZjd`"g 9Qfq82f|0lRWׅϓV\kY댿_H]Տ] fR`gr= s+Y:\[ȲzpZhNb,:PY "b "Oblת"tPwƭq@ 1۔ M? ܗ+uͻ0I0˙& T8&9+]e%CB?`mk'xnuѶ )T?$,2̑c}¶d3R$ bs9R BXR/"?/K?J~܃&)ɥ BC7ӄ!$&g]h[lf\`-Y(20j~.j{0G+z``! FM$lx[d1_Cj:yeD\T2oa*pꑶԘ Avv Q[5k5M*M_K2kCGA cITZ!pIO6a^"m=N*onoT\-&S\zB{s:"хbFSe$J ߍ6g|Vt'6Uχy gk1z8.@hTZZ>Afd(IEV Tf @mדS oxJ6 6IQDV0VȬ4 b7$Q lE3l_MmNɍWWhW5v?xHʐ gD^p$1` m]蚌[-J3R+h]6ʱ5c(i:Axl|S8C1nˋ:hFzCY`T]#j#`9ƶT(=P[>ڽ˝QM;6 Dm3tj f%1OӭFv6@Lb#T=qqZ\"QsJѝf>}ri&?*Q>5O/Wo&n=!1C|z݅ȝ-݇-lXk͵Pu9Ac=e("0y;)g#?aM /`o5lWmWo޺~K,vS l3VUУT뢞<,N !A؂, ~Cb񢫞/Ϋ2 { FK>b%Pjv e/hicNV,*_Ț*)x BSpB5n)7W$O66tI*0JES]“Vxj4ZjN75)B@0Rs&OTR?4{ÿ*`0&wL^Tv\v<0cMeQce"+Ƒ:N#Fz>~Ld|3\&ЉTȖh.Uh'.d1&*gh6 c  V8rU$"a|^CSق s5\!Z0>BG1#㑀Vs4P` P`BM*9LCq$BUN߆N!JO}"s0J0[Πw@,51%?]F^zG( rg !2 )j'ƙݣ~(#ǎP>6{ h,)eưߕS2q?dmNcλX,~f,0f!Yϭmc"DC`!w V6zԙހ1$N ⹝c HIy5[;* v?y5QAZJ1kN2`\r'[Rva䦦W{d~`zCBw; aT?̀GO?N4E,ΛZ?jyKtI0kgg\.SC%l LeOߡ__-'<_Xєʏ4–eX~~=ʞGYрߘb9狩o^)]WIqOC[s.|ܓ~֭[~>ʈ46q,۟/( ƶL/x0%wKR1sQ]ǐ8#2CfYGU9`:xۛ-l*;۴o%޺Tep<_U@jy&؊\I#o C{~mК`^K,`i- }~8Պ 'xS#}E;>m L`oL>&70 7\ _|$dy3<Tt~n:IP=n)r5#~>XmjEH {J ReP~&U I"oMoX}i O@4ѥ#c0 +J4!ҩ%Gű5s[h*j~qT'&L=%#kΠ jXX2Ts9j8A>QӗFljcǜ#1d"Wd ?"R aCHФ'@2tWo7tZ}0dO3BX/4$ذUWܳ3ã%1yqlD1lػ#_L*6K٦~yjE`f%NT$>ƐW(7T]{&" D~$y'C1N T*O3PА MouGoc)ԋG7ɏ[F0VKUu8t$-p_odo]9|:YpObt>/"KguRF=V3Mmm7 *d Rjz$Wb1{QK/fH̜7f E4K6,g ؙ}R)_L,\T~Nl3DDq3OUW"5)*){%Twp[7M'ܧj߼ &Ͽ0]R/= Y՟ ^c;/Zh/2wW_8єʏ–eX~~=ʞGY&/tNOj~T>t]}>sU}_T2Nk穄=«T-9wSs??q;ԟqmGe˘m0)>%*&!F~Cl,`R"j-][ ̷o޸zc*WxeO?`6!{3֑;ͣ}YhlcWi3HjdBШtOe1շե  N?gi)\HvqYKǏꋯ9œW@#D}B ePST.~G}U"~p9VR'@$eT[åML^3|]'L~wPq_Y*"o =Lm{(K:Wȕ$e\$UJ D4 lÊs;!]}HVVin>'TT2v0]SN6 r|ʆ9r"kѓpA e:p66]2QmJr{k Sh>e  v5SI:h0l$ ގhb%h("?"}2{Z실^`,F1u -5 ׵yNX7#`RcCXՋ'f:$!uzq&ps<3çy㠼 5NN(G^>N|BM}T4\ZIQ:@2:s0SH_flu1<7'y,V0Wy@"mUP4€6vEj)쐝%8 Qk#Gb cWy:,h#[9FE DbR/ Wc .4 xڠHΔŎ|= Ֆq.|5=\4y&EO35>c8(lÖKQ kiMۋIiy*)}g6 Zߍ:&cD=kYv_Tq5SEsRQ|Ǘo[h>γsނ"2.[!s"=50wۆG"/Nmx]\pQ{hs* (@jӥ_ȣSɔl ńެ@K0 x ſ@;vWo^rcy,6AL6A)SɅ™V[<O?J΃THANxvVֿ0 AT+#`އF&jglڬh cxy%DxC>vJ{t*o#h&'IH= zl?cɿ`6}UPkl\6A|3P)"^-؇TնU餭U\ɯꄭ0#GBJ.ޜ22mܰG2!0'0Ul$.%qΚG!}#h@%-}P#ehXvTlsӋj HY>/> uFtmF; D2#YJ~ mܱivXˆ:|+\6Dd;^U/;l DX^p6ヨ+AarΝ~|l|m+:݌) YWhel#ln)c9Qn;)I95 VRA@8vj[_X80is.sh`ZWK\ *KJ% t ߰U!I!(Zмi$=jwp*ҡHC)ICPm#X`\[|-2A >ܺ7ӕW!`l 7ۈͪ@6CF?0w@a)b3I*2ּMDy;$fa dnX1Kp?Quy ~y 2.+dh5'ȩ6t#=BR8Ty$gkLLJw]%K{Q?cl˳mtS'6ߓZ,nPcfeuP/`وZ3`~w2] Ћ僲J u㏒j/W1]29&_ifiܿ֩ZO1Dm.wU|4&* F_wI%!|Pac#YgWhY+&wΌnlL=\#<kE9`rw:Y(2Sue{(wѬ';ôqGeE\/~\dY&ñm"?duDK;t{"]re}{_D=O*E(Z;(?Oo(Gk|O<;y8i\Uy块olEe\lK̒=OOm֌ >6ܫ% +D lʏKsĔͦHmj^teg.uaUirވoiBuB >6}ʖ 4.E z ?{o$Grj_4戒(ٌ^  M'r5('Au2ڽFJ4ހn 6}~"fVUDFrwH}>Ń!R!*Gr_a~h'> Wn >z;nu[L$zkLJ5.PabOUT]rL!=,cjSƃ󌍁 Ւ.Qkp$ h,3Y,D*Z>I&']4bC.P}a9MN9pztGN@I(> sZ d]>#/JJy_da}Мk䕓Ck7A&-}UUѶ^){IRȣ}_%xwl(]cSlwuV^" Q\_s؏c7 _}BAGP#4ֻ 2_|kjt ̈p&es,C@SV,gy9uIeH^=z6HWуv}"*ͻKnkV4{v'wm@`]SlQ$sE>@{Ait}Yɚy MxsEQM4'xH 1bSZFV:Ey{t=d< ,Nô&2>͌e%uꐷWrk<9 F|K!Jr6VVї)?Ӕh--\{cw_J?x ^\딝I7CUy·>v;WG?xՅ~²<,DJII6֌R 2V4RQ/ʾ.<U'ɵ cCl)ǠhnjR#XdM&ʘVvцn8vfaL"XvG)Z Nȍ4 5Ӭ cc$Lt?#/ƙU0\ W>Ao 5K \:3HL(\KGsop<8ܝ> ], "Iv-MY (f![9zy_ MvʇUzW^ <;{-8ڥi=֡֗G)ᗌhƠ&DrW*#/`Fvjel4dr)P.[?!9c&u?8l2RjgAI<߅z"F˴6GlfQ׎K>f/kuq31[RK9s=0+sĤ5`>;}]GsG8\z e7Iv}pqc#xwle=`r8^}:^Ҿkʙ8"=N6<Ax /N0?L&xe7Ieޮ|w eWzmQyqz=mbM74ug9懲m3L73IE͝YM,be$t%!Xl)~k7$AQGd<^l<&pX!e)9ڛMG tM'HG $tŨb,;׵yuc\_V0.tK_Uvp0NoBLi"wBGk 6ּMeGd! HІ Nci%ɬ` (7تJkcޔD0[ gW  .#v*bqFQ-֜1`q Tȧ(e]8>zT{ʒO=;.*`dEj-^˽ 6"`Rȕj]۰PUYJ3V^]'_lwGCX>Ͼ!FbnVHAt_^|P]" PӆC:zmG*ߠ8#V*,(`hAWi,e᝕ 7D >O iKÀ$qbIAA*` 5U6nՙ6 GПQJCohZj2{$.6+G 8&9`RMd@._ȎeEMiT_˭{ߒ&_H{OtwKi8[uJv~̏Sx%7cfïr_=' ۟o=~/ۯK%ѐ>s :D/ $Eik =$tr/<ƽm²;9hZYvbLuG;  #%/Av\ϚIwa]ӆ OC-BvtoQn5IxN3@'$$VJ2r gυج`$:I3L`C179`L`{ ƒvKK_|_B 4etMJ؆OԳT*Qvl?:1.'-sۍVmf@F88Ch]tWsK$ŗ'B&C!#3\jtVϔ3c_YpЧg<@njm.#(R}T1R3'6ƽQҏvʸs!~b;/;I0޼yi㢕WWuܤiwL~Ōk_p8^ u}K+q~z8̟=LְMp1`kq~-hGUI/-aMPat|xGAڵkvQڠ?0Iʎ:?~ۿ[w9t8~oRM: 8sT$+JͥJY XXq):*PNpp(G=a3y@UizlSHXgVhlpHѓB v#2 - `Y<.x,2)@ 0I;L0IB_Yh::)`v\V4+kL$ݺ{B/Yee [X8nKu\@hciDŎYO3Csn^0 YtZT.]bg}$o tAXZݪᵤf啰0` baF;@Ό/ x 8aqT%oSޡ Ы ac;0]&Wp\X?y-`r{!zdIx Œ?eM >^7|τ1S΢r#n[S dFxqϻW5؞}T(g)(z%Rԏh:ϸxFj5XV&}RH$dJ{ƺ*?I#ܔF©U1Kdu?|5F@16(U$eח"X P =Q?ւ26TKR9ǂ>B˸"=~8]$&{|-3޲Y7^ɽ&w@$v/>|3hou`:: 3Md$uxK9"4$׀J8Q չYFi`:!}kN$<5yjxyWb .SŘc*i0vٗz1&?>$p~x Cdwy<83&1llFFTv7V纰TԚ$΂>.\FZ$ԧlәt۬eFWWX26ƘsK=)`GeD[T>ӗ'ز\܏"Y0hWgB.7/ml5ICD2DQJ $. 4Hfѡ?.W>/^MH &?\ՏL߰!R4|/]/fjXS*CR&Ԝ-KE23x,roi)Z(+BcLoT;;&  F͜{`fO'~&' |{|;`rkmG,; "H"XlD D/gqYwu98̏=LְMpQ-`rZ ðˇW@IDAT Nw놼g&Ç| oo帶xϳu~ALϐqqVL7 ϸ^bL=p?Td: e^h͂.,bX!e5zF5mƋ7+w{u`k4dV- 74(AgGp(*YM+ʼBX3Hj˒h\i,jHࣇ>`?E=)A,3u{]^.[kݞnTw=>}{t[E*D7xq KoUi״]&͞Up/4gYэ_&&G$0߼|CXOH!e9,YjD '1>c3UMt`54F_xg2 jPb뼫 D%/>#-y{@ͼ4,ÎĪxPvdd9pRn :ZUB_ow{?o/t[+S#F 0~F[gP1kO`rzFFH65L6:ud*ƖO" t =2b 4(9 |/}7FaSAfukEI,lmpǝUd ꝲ1:xԙN s|4 / ڀpٝIF{ vh#qsI^`gtWc.B "򮕟_!+uy``{RUelhq@@7.=#uz*6{RJ%ф2 SVeZ󶊑?/F~B _dMB1#c&Nk[s"s~,K?-tʟ{}Ws?΁CNDK-_M^l`,3ڧ2ʼ+; Z/5Z$w@$wúe?2?p:~=ѕ@n׬0챴׷9^<~]&r#W09 ӂDD. ,: ?eK|5 > жB6Z};/\eU5tI]4rf̧y 6Aȑ=NwV5tS}Jnpjn?Tr?fLU6M m>Biȇ)"|Cx|QEac˜P:NE~{3=?~x[{`^>IncG<Գׇտa3/j>x֭CVm=O487n{'? g=q{Do8;az<{Ix2-ƴ8޼|gOТ(r `qE ,zR0hXT"}YgԳT* OdƢl3Fg" wNSj0b KИ-Uu:0yEEAŲR)ΰĺ7|ݒƚv\^)'>|ݓv]/fS߶~=" }3 TmfKj#t -&h#EAH?hV ^Elt]EƞhS@1?O zu5A fJM0ǚb I))UЄ*6톩c-^Oŕ' yWu>}?F;?tdfc|T/%p?lŇ߼1Յޏ[(S[[}PbQ %z<6l:ZG`ՠZ%ؒz$"D 44O`dlė:nQ;,b2Bo?7|d'"_/~tMhޅ"4{kI{$ckU8 *\$q4؂>LFPn3-4:x8p [ "-`V#e쑽nU_*_MGCL2Z~gw펻N%7t[W4=&o=}{4l<uƒ_U`_xW5J)pqdFJ} 2)LDnQ\H,[Dn@gߐq /&WvPKڨ~_VBh` T N?ZmlH#0%`E`ē{L^#ݦiN]Wi쬬&o!lG/u<~0ݹo+`J}ig{WJ<0]Ώ[TM 3ӡ3XxW$A̠ʌcG^YD]~8/tN?S7:XhKh%P'&^d |6S zM\75Oܦ 6hUAGL ;<:){9G{qk B/թX*`&&h؅ |@m[cg!Aܷ/L%L.Gh@AK5y'P2 ǮAb5Mi++G>e`F}mຎ # @V8eޔe76 9%}+ ]w'1͖C@ MY&$mdkϺ?hSgji-X騂OPjuUcjjS2GyfG}F=ElگqW-%sm'W>xJn9ϳ:dR9s=0ieXU&e0u^j,'A= $#&;P2[؃'TZԢvJZWՍnIAv[wwZ/,:7O$@"YYg8CPs)rDI &#Op.zcXAG!RyL)kXf-ЂEd6R>1e XU+, dWz%K׾lXC+{)6 ?N2"H ^ k+ Ѣ'; Oo>WȫZ\v3 i,kMluߠ,=j⬹@mG[?:~]7թKV\HK8uK,Ǩ%Jpm2^] >ѰOFuXT&CdÍT $ +nn-FUL2 gay0BsqiZ RGa:Q6=1؆rFPQ"Z\W\\5ȓ qAPʅuսtU Zhw$i"@4*<5ͪlrU'u $B7QmScw&zjnmni?嚑~al[$󂤉1OlӤ?c}RzSKd7vOA ʿ[ou=wKWꌠyEvgv8:qa&ƛAEWpj HqNeΝMمq&a?| :˜U5. 2.iM"P KuͭG3*͹@=t(I-cxڜJ,M4X~P¾+ t H_o0vdg݇ugOT=ՠ#+\[FA2$ۚ`i zZMtf^b>=ʋ59}Ɉ-=&$AgxDy[@?3J}p0)D+MԎ_&,ӛo3Z[KUIc7ՋtE>L:?\\ٺ1Q8[W*(~ Wo$JAulJlR9*vz>Uo_uyY owf_NIebF._m0f0!UUmvd-(xx {>gP|40pQ/8USk,~kP}%{!bav- .>ҩHR5N4!`I=@nI9k}oV](ˀ'bϙu, {U4iXBvR=x#G͂:r*,+hE"0Wr)`u?N?uW =~NoGprLe=$5FZF+z="=& 4_sW z|yEZT+Ä6[^Wi Z/x|+QG^ղE,eޣzTF\K~ܒ`Puy_trpyⵌ _^.L J'Z(#fW Cz?򔋾+Fю}%5!؍MQ?dC Hb_3F#܌eԂ8v0,GrAw 5HaߚGߺV8!>\Gl|ka|4+y,$X' wSA-C!?Iˮ1jͭ5_p=#7㺵=/)Ѹp6Mo3>x<ÍI72Wf=w?|=a0(\IV|m߻fAr9'|Q<(ȋt:؞2.JV2R/]1hz[ [-mM8}(Yx׺%CWŨ@{ t3aEyO>״yiƙXմDv*:'E9ru%TN5m2p[ј'ڙt](=c&?{D;~9I2ݳ^hM+&^Y~ʗZQFf8WMy?O@U:i\T`@/ Ԁ uMEJ]yقNuP}ح/~vd`~<0j KdVRWX|tBT|Hm\f.@n"U'*0XcA1ƴ}y&Da1 WџinEo?@@sF26Y툭|6u7#Q5F]|ӟ{H y1s[ruHY?n0yVϽ^YY`Wf=+yn0y''um/}Xi( XC}UBxIX cHsОa]Iٙzӳ"OYPYJ?5O3 P5=/&-Gs BTȨ,ʴbe$cZ؃‹[cD%&FkALz6 E.YDI\؄(sy+Mg`1z@CF<)s'̑`Sݰ_ej( g@sQ>J;8("3-%.4.`&cZULZBВYїq$vVBMLz& c fR%nW0 p[\Ӎu{bvX.Мr5B u,b]δ$tNͯ ׅGB}Uj]ӰħD+c__4f|g>yvz HNvq`!cARKꊂTU${ :L+7 {|]e.{,ڸ ˶PzڹDPOr?cU6~ir`[rY;Dv"}.O<^>ֳcYqXG9K`Ip}NZզ%AMd_Җܛoo}jf!rXS-aC8G둡b jRp}ml)~R\f|5"5˘OB&'"[Gifh%tyBl,+S6>H1s%2Z5Ԝy*a\'rzy@WaOe܁<}]]c|fO6>h}p\~t]l|=WF|uRY66uG-PT३Pωq߈0C9AN/  A~1س.gaS|,^~L1ŰS'"ϏCh^/G0Mc.SM]c铷dzsm9cR+`rR+ǽ*nV:㾩&q}dj??s };Mʝ!`|i: {V5g_r8NYC9&gO*)諎6'~VKߐ=|U ݆u,!Y^Y;ř%yzwhS U?NW|M/B1{߃3}zV֍`L{޺7;gL*M&պϵHhH'Zd$*C$y Y,U^ а`C&*f:ZX0Ck/B BZ`b]XTdj%D۪tb4ur uaU}ˤ67ZnQ$+kݝ'7t8UW#)I%iS|y+u C0Z=X_A 7068{aRlkjR\[ *|aU(TL(R.)Pdmc];zn*U/B ׌9GsӒQcdlYd:ScX8sO-ς4"֑s:(r& L;kPGv׺=0& ňZFU^(g#i?pPQlsV0dR6xDӍt `y1GZ(ZHYX։F-p>(ISx1>Z؅/ƔqT:OYZl5B%1x젿)S4hiAɳ&ǖ=ռDDw>?h>H EJW9*e6"c%yl⋞YٗJY-ГJ~ )X0qϭbAVLU סTlS7*بJyG5=$𩿾h3EtG}D'YwnoJRg.+_ \׏Vn[F}miɗ-98Ccw+6 *̭VuH>V&mj{[0LphB\aL#3zֽdnhsx9,LWsHW5.z4MV;KW7Vc\T!:rڬ>=ߪ= Gy`V ͡CRmT<|jʒI$,˿YY$sq#6*>S`g^v?ՏL~ybxq4F}t-QΗ w#v:>E9W`*Q'XJIؔ=P> G=sro' 7UUB(<ل __f.yl1^Hy̿2iꁚ3&m̡>#X'Ydd݃6S7,՞i3z'= ddv/y0yq{lcbWoRuʼ09Gu:/?7~Ry/!=]){wvq)C!@.LriaW}p'b>grBKL/T_퇝:v$ɿ˿9 $<ޡ?o&S ̟:Y0#Q,L%qfn`Yxa3JYpv> kOW:0Y7IE=M|lmIf%&֔Y|bjI , Uv8i[;5f!u97$*z4zD$3t8H2eП TƵ5Zwew~yTA;e#7w%޴Uape] jf ɰ; 2"k5vѫIx^9ov&)4If>mHNā ~;SGT /.+ | pyv}`7 T&p#4/6$7LX'l´t8@dIJQ\N#}s˨Z\V"Kuآzʡ],U\ڤRڵ\[4i7Hm6fv ڦoK_xN? j a/ P55?f< $i\0_(XՅ=uGW䮢%*nq}K8?|\c:ZĜqBsT9drv^]=%} 3?~8 @>RK7E旚˸/YQ__?s[Xܪg T %u O\=s+~/j_mYON122w(/]Jo /{a=[_C}t"_CbjYkHta\@Gg2fqq` FC'ӪqZ^p0Ȱzt8f4B&yASƆk1F -6@,.cA 2BZl| .4spaT L C`xG23aA /FuѹƭŮ4+Wcd_@SLu)^Jm?LiPR'CM%|YVt+K)"eTY#I8{MnPό9zkՔs k?yT>/‚?[#[v7@&y{`y)s=04ǵW@q2fV>sˏt8]y慹t}lac0?kfx;;L",diWbYځY5Gy*UI塟W/!汄4GqCP7?>_)Mauڊfx>+$gevd 48|<0kN? ϰ?ំwCp=p?|~5H"g8M+Yc$uY'>Ruݮ_ci'rdёEeX<3o`z0Q XР+xgɇ*6k1LUye^.~ҁo3֢XbQ6m,$ !wůMkS#Wo\{O>Ws=} $#(jyH 5ND׵fNh\JA1WhF0"Z(kdp- ؘE^sG^I(^ pl'x^~ZwK_޹1^u):28G2b]#M|r7`bE,LQ3q;7Jӻ>P4DG~ѢiFKfMwãm FK&m*b>ĩl`':~y)fMojܫU?=^>x0H_ce40mˢ;gܻ4oO"_?3IυXRi >߸>Xˮ,RNńx,C/0ngf5Nl _V@v&`EvXVa&uh0Njrz޳!x Ғ%UG>ά*V]v3~^Ҝ?l*vU=[lt^wkJP*9K"ܘޱ[(_O2N!L0U.|kNCQeaf#5O͞!xe<(A 9:]dҒTz0G/dSrܬLsG6Y/~|qeh@cΐYQՁrey9+#TE 2_`KSC'|# :v5-I_!`J'r܂}}R] ";5Q=ȺU*:d>@yWPrN|G3UvXi 2.b[p'* 8s#@Gh&zuq`lxD=} {}nw:M@-psgdF{1Ta~Ub#^_c)GL>scZRQ^ o*xi{ \R*5ȤSCm&X`T/>5NvBeOoGnQvϢ~Yxu9̇Ӥi&7fS>_ ΐWڞUߌB73h={yJanLA${ :g */K֣颺>YLUU{BiohOd˷}+ 'a._h @^uQ옴wwKݍnf ,HAϷwaGI&)hƩ婜S.!# aOJ0uPtظyms NuЖlr54N %=`SEv2&?3LjI}? =DkE?1nN 伨7|zy4h\T 8Ёr*lUX6r]>RIJYY50n=UƧ$Vc VI_7l˷uԴݖHs xҸb %MtG~Q:U0jDj3&`5NpMѵނ|K# T`D Z)JPkC'$ac_56kh6r3vS&p:(_g~R`Q{0i,Ӑ֟ݻlLnXulGKo5 }KBĩ~vu*`2ȨOJUjnWwM;njgw鮨Xo>ծ[g/ڸ8bV:}˨H׽tଊ hNjHv4J_7} rŃ qip]5 ;X!6WJ3^imk0ŭOv"[{!^X\^FΫ%kųnO|S&wC |SC6ݓb=(zEryf?GHo~`.sE_j/ռ5tY`c Ea ʙ+}V~!OnKPqn6Qbqpc VڊOFu^5z$oOr+U F\WY@ $7+`҄ {72(;60wE?F7~eެS]sU21 ѺsM4"#}. smpúk\ קm85a {WBwL]R0_nH EveY$}Js]oA9'0j2)dB'sU#i:G':Do&3p]j:W|EqQ0{`4i<`OΊy߬4]), g߼07zV~?Mԣ'h^<@IDAT1ԡl]<_m~,JYg_r8R,6LkQÛ6`ww5xC 7~YayUú!|{O:iÂӦN?C[nYnxk+ϖ^jut9> ͐;0G4Fܸ^&5)_:)|%wx>O!<&Tg[j\߄9Ku#YЅNtX2V,TbI"-1}_q^ Ӥ3ֲW,ܴM*^@pdmZ|F^,ufX6K'Zʼ]֯k_}[fݽ[[ݓOzhض?,Xޱ#]MEwpL@%cA>&2]o}o"lFHBl,:7 ]Spv@}Iݮv|v~%C%`f,DhT7v W{^ح#M蛾*ˁUxaxIcΚm\wA>|O4>>.t;Aݻׂ2JIUH vk:I |xC4n>3q)YE OM ܿ^]3Hx?`:`K2>4y~&jL?~&]5ƀ[WXGuleJ~Bqnp0W+ ,3Nnu_,0if8$v%0A̧VnؔcunXdF1Fc{"G~h\8sK8We*tQ6S6p-d)Gx]Evf}o-tK+AEz.l(~7M_m;\-8cMI~h4**> = 76ɠ}c'yT2 _ʋS;XVӍQ3GRW:2:=?UT"ȷ0^(NA8n*i*zj ZW̟ E%ct!PoD_zh-`x[8|6UhD60JBP}vwlCq,U >8SN/dKg1ƃM(+m\:~Lked "lNĿW-' (Z?SIoxr F*X6ꈎ\i'\nDg/jɢ]@4Ql)T=FxVTƸe`%& :ki&T?눎̏R }Z(_r`.{`>F.z{xb4095|8LְxY +`i&ΒC?c캈APߋWoYt¶yYg&ڮL}]wI`cba0ԃŅXi r`w 0 QJ1]?ufQN>nX,o+lBwhɎֵSk ۼN݀v/׏tw䃇Oϵ#񉢆i&g\v>IhwJ3'Rm#QƠSӁFSp䃕HGzZg2$tZ,IJE @e Joc0gD3[W+ۧW*fY+zzFwu 壇[ݎ|g]kf1ʽRʶrĶ>А!Ҷ|)2\\+6 Vpq]`!dۆ}T9w&{: { J{n-O+J(o tgs 0$IgNӆ~dJSq{E NkX^4M~WuOi@Tt+tÙ qpK:W3.5V|}ϲ@6 Qׂ;OՂ5TPaD?Ιme嬇|pa^gw:s8K@S*Ǘb8`pKfz,D'PCqc_lduJߦ;9C$is4ncvE9 Ը]#m%t柕&M=c\_%RP6AI6`FxFi0 >yJJɛl#Dc1)*=GPG/Q4c'Kc5lq96fz_Y? Dz;Lr>9o[5gxq&u˞{`^2MÞ#S)]iy2~$P;]%Iv6=/+g_rK]ywKavY밉Wr㻷Ѿa\f,_G_NL9pޣxN0ys}0,a/gǗoO.ɔg~go/xFj3a_g;@IxpHaYh0U= A8ޡ#Cq#A ^3 /N?)_ܖ9/qyd9`leE-dcR2|HuTU66R]Mn,y7+_ѕA+cmGupZz`bMJEEpWl(Pr]uK)Pro%}W5I%|Ӵ72R^@%}ty2m,9ݶqEA~ }K% d^M^}_A |e Tvcʡ0:K"KnTg~>p|@L*R13yS9!J,rVM'9/H[%\K݊pnntW5⬮jP[(]=|=W^J|;lž?[d=[F:f 1* /!P8pM1mӤ㥂Gx&#촵kIa3;Eבnk01x,zE&TUs[x[gyu_Qx30m tۃf&[/o@F l5X tk2MT/f%gOjus`tc22V]\8b+{YζZ.$ӌ,r6g7[lb`D84nQl8!W^d^d J lrjR(}BRYǼ]"6F\Ti4w4T5Wh? ػO'Z.:q]Wj ׾JQ&\X &Z^Mj*JƵ*uخ/S=~8Bp氫)]++JN?Y~ѳvX~ݞ5x }R Uv5,]Q0|7kF d(53&0F䓺+鬎}@aњDA,k@AK ߸Β׻wk  ~^\/^zl}윍DcNRF}10>y5nu6|XfL5G"sg"VY#<+C Rm)Ti&0yvZ6":H.cF٨ĞpABmH ΂W&`y&aeGU2zp =?O@<se%߯TTSϹ&IZGYJMT%Pwl`x,aMGhN] s?:=y~qZ|nce5V}iT*1[!X lp~5+9=j2,FU4?cX'N'rGiZ??eN/k15_NjqLϜ[8nH[Gҕaq!0ϰ OJַ'͛76vRէ4M\U~>zﳇ%0!P=7!OO.rw;%YYbYw,s\*3w:i&~Xm:Iqq8`yE3JЌˬӜ= >\5G=+83a_a8Es\[a yOC_|uo70C$l2;44ɠ0'>kLq9M<7;_?ę3L4DQeBIMؙ( XZ ਫ਼/Mif6 k ++:ț)~Q"K^,h ^ ,bJ/v\+yZ3-jmOAWb3(AB.ϒfg_֮]n. 8#N0 6P1'm(#1,A&9>шUv:mݞ`43+Fsd_v4ccNJA M]qs6?_c7ob4!t57 mr<f~43++9gMq0|X:[:}G֯יoS6`G}L<DeQ+3s3C]=7k Gbc_ XOS  cLTc=p{TkJ8cW# Vd^ou 6{+O{xp Ț_d P)H RVG}οdOC3bkObP&C 昚t{Eq9L;}%/uZe 1n8ш=NGLz}//I<:빧,𭸏.s{w|{!>ʗ 1~6*\.7'ُb]2tރZ=-a-  C.bkX٧η7pU׹]tλ~?TNc,9'=|vMxkfDfA2S o7;[ r1ᚶ:3AH5iTs:Vn<(yƄ'Lz{{D@C%3 A ?0O>wqWIxĉqDg*+/?~8Roϟ] J-v_joJL0[T,SgfhUͽ*tH%#zi 3>s ,-4!4/ť.XZΟƨ ACǴ!ʢS^0=\6JfOSrCE8"W>̎6A eԎ..ylV{'Y;sٖ9b cUǙ7؍ Ѥͪº(.*IkH376v)H1۬$uNLb^&&h&^,Ф~,۔iYW XT]aRg:1>D^76گָZ蜔`9 dX*Hy<#zս1b[1Ry,Ԇ'`=e_2Dѭ?(]~8sMck?r?|;u^:u{_ Xw~f9/m'b=^&w8_{wҏ6l sjv t7âTd&]'eu^ o Hw6m$'=cݟG&&gr $fHi`'L& NK䫜uo\O-s~XpڤO=!X#qbŃ~Gl?/LNӤreRlo<@4A_s`o[(7ydgٲɦ<|nX;T< mvY]=O%H@=%o!ՀI8eOoOq$?@ɇSv\{FME&e@V9W&T*S bJ+Óʎua(ҿ 7 0b2@w~~7؈~Idu'ƪLO}x v`6;4#zrVer;?dq%%佗o1lKToH#e; -gP»AZeN['gl(d iH }qhȭ,wsO=f2dvowßv N;7uT +pNזدM=[/U `P~^S\{C>;\)WL*KVbHCyR维.vZGk[fTzg_VDD Wr '26xGM&1?0y6`Rsaјi$Izi7y*߆{'~WuN ~+A>_x~izfdчw6AiEs~ @ЖyxPHAiuLQZF8v՛wZi{bNC@@P'p"5Ax61_ Yrq' 2\<! Y*֌F7+hK?6?}[dr$HwskDL{ /E=r_{p؅NXAGYjg@Or~LZn[d9RMV|LCMd k gWnQlʚSKi?: ' \}ʫOs^}FZϼPoc!w md) >*%8>Պأ]Ϩeߡ'ifӅqj&1LJ ʴpKk|MDn~L֖o-lf Xǿ^?8p L'PL__]«i_y;m?,8o&O ܤQq`uɿJm_@577??1;z~G^CIq<+C:,I{O,9#eOyNsT,Gxӧ+=.C2C+]-ۡy1\Gi =πIhNQ\wy@:Oy]_ϟԾN{T<2ʫ[?t?qQ?'FӟtU6LuixNCsh[_2K?է"xϣs}X]u=p_gG=$!z'02FNwr`37Tj7 k/lt DR醾<<47!~"\nڔV~6F! s͸NIDK7 L3iIb D:m.x&Ul8;ҞM ns6[9j@6D)oPs`8F^̧3ާ?O-3ӪDN5y7A$?U>?g+ӕO` _Cb%c'7XO*Ӂ\FFo>Ư@XNLshoXJ,Es7u?\)d rjAmslS3 /c(AFU;M!sVΞXjKU_GƔM*jnK鞫9<>͛[]_.?G78el(32yx}B}e1;&|@I}CL! N(6JF/+Qm(%=Ub' sG2+Z +&zA6 ]kTMﴯXbKZndД ke^SAeH: iQoʦCܡ-f"Vf:e]BޥW*Uҏ( Ox-DzomL*5)6dYpjCsF=rN]~Gf2gIu9w) FY-B}X&(9Zg,icɀ O_Y|d5ҁ&K #2|OMx} A i\=^>Wbq9te[<'TwO6-X-JUd{9xv6Qnhv}ԟS3DIľydXBko&_1~Q <0'߾?>x=-ދEt'+?|Ƚ$/@; W<sI9^J[{oes7~U°cq@2dvuݴ&OB?KK}+2`&na+<Y/?`=o-JxO Bi3wb#eo uz? `(A2u^8Yj4N?QS(%]7l^L6bcYXNr1"_UiT'Τ?|{ IR mZ誏KmiCg!wE8@Hcf߇ Y; ^F 埝bUz_IsZ'Cǔ*4* {*h ,ǧ;T=aRFSJ#DBC6}/ȩqf>U/Ne X,qυs"c$6o -IZu5ÒMH]ȼK*3z2}k};|2<ӟYe{`>Olg=2Za}Z?I]?"ڧދq6`A3sm>:Nxf~4pS(a=NuLuٮz_2@r_'&ul|']7F.n[L6ӶO|y:)cw=0Gݿ⧨ـfS1u>08yMhlfh8Uh[<17lуNYgeuݸ+UiV[OljÍ [ .NH0ʟ _S^ɟ4MbW"`V$P䀠pT4ҟ~~zOQ?zB8!q0 \>?MGQlD+ߌӮ]'~wd1(H>vt0(>KŹA~%u0~F$۷É3PS6}7ȗ=vvg&7 4h/ٲ0D^al2ZQJ+WǯL n NP08ƟE̍c}|ۜ0)dÀ #yZǖa6DNI3׬/S` +?l Edi46ࣴ .uOW {Od>r׏2WVu2]>b5Z` *&0z[HgNGE&lwG٤:ߣφ?Mƭ '-BS,Xr d|:d{ڦk{y1e-?9#Qݸ7yk>Q\mv|$WiFEVslVVxKQ cI#9viwL =QU" M]j [q~?ب y[a 14sN`xj9t¬}Rx+%R.|Qqy`;o4ݟōOM>L>tQg?α/N_K湄'=(3A`)\y\aП'|3JO_v]'J2^ Ȝ}/ \G'JO# u|yY/h&k]2,Vg|yٵeΥu 86 DGL?;^|!F Or~ɷ>X|s@&c+yaIQm,v9O5X:VZ4݁@*Vp 8/\ BBx3~L Rx:e`ʯ-x8ʈ0pjx{Xi.XG:FO`vEOiASオ@U09d<0_2i?Xivk, NvepӲ m`XBk_2e&XdevwKFġm&@1xRvt/@#%\* <>=HͿ ˗C\瘲M쥳C.R'<3_^)knt3"* N59(Hwb\_;:OS5._镕`VeGuF|1 ;4^:Fe hOH&d5Wcޖη=Nl[1vyJy`W ;\IO]'N}.Cَj:o>(ckKg؀5>ym7;c^gmQM:3?N˔6<~Ocyd(6uxH̄u퉁<q%t3oP?ZY'|I/&KamƿYwYZMq]k_kiUxv_}ѹo%g].69`~qF6biH0u 䦐z;S&|Ms-{M<`o}d!^ vPFj kn^1@ӟ'?߹MBI9<>k]{ }esNF|J'"f0 Fo$>OxK@S%Q\=1t*?Td؍F2Yˮ u|&d=Q3gs1B[yJ269\MnGrO!5g8I $`u#EaŤ~憫=L<5@xO |hZ?mCIt}UR%'x!ȣˡsXQ؜Zسb PԷ&>yQEFG/;[jɹ,|ꊣY4;a`Rvi Em'ERZ%Vkd<53o;—I &Y!~D?}1շ I!i璁0 =*\NE> eFatz\sew" / d~&ׂ h|NyWSþv feXϫ  %* ۥ\ D=Qʖ[OjdBo}ghHf+4 9kNrʫ]ZO[s@7P :Z[߮ Zeܝ?2 |f19YO/[h,@ӵ~XtGo+ [I$59GA?_nUY>R@V}d~x])hRW Io:.L @|͓fqQ[CL_1]㵙^Hj c\mb@LYFLEnm1&Yb9w-?8ݒ}ǶW-9}:de+׋u9s :Jl_9v*_VۗO2i,G77˷.gˇ:-x/iM&O˧qqY;e8fXwހ2,3׸usκMyϪEU鏓MyU>/_R4/ Ky~:my7a`[ m灳L*[Go wSCKyR )=hwCilP F'DrOɦ266W)#n2JD#7uMl2%@&PB$Mٓ1݌)r!t@IDAT:Gx]zWwYXҋ_+5䫬l~A v1o̐{[3$?WJ` )%̾pcN0/gjٿGd(ܜ&*'Y[_gC+/ (䦪 L'zN:e|x~\(fVjbhy?yJ`M{ۥh'hG.E#KʙIٖW}dP?Iz466#Cھ73` <ڿ ::OәSvB@fP8.%iq1~NK1D9N >里A+bc4X7mHԇOcJs.,1e)d_%TBkw[ S~%6szm'QT{Bh/z:а'Ҫ?2ҸQo*ox N,d`ɺzP f)K Yp8'yh?Ҹ@x ]?B&s]ž Zj+?S49IsP˿lFm >.H-Oڇe2e[15CoLc;U6d/8K=)+sKr:ƛ#KyO&Kqi~<|BELqeV+\ e67UKX+;=mږ3 I^Jtg|uxNWF~™9qұl+Z+Cyw$՗qO=EgNXA~8\%u8w8:^w2D\RNZgSps6u _gbq\v [8{_x{'k:s4b?>x.'~z>!<0oDsS?P#/Ulpc| I_KvAi }w`v8p0&yG-P(+"ySUcx9c1'wE|?t%3fT~P},+WiVu.O닊HQUO_p/5> HU]>V>,YӮCRD~1jrVgڔξ] @cBӌA<h26+Y4IܤpT/OWrf/oBj/4vҬ˩ΥQPIc:bwqj;Deas)9P;C1 JNXE;_^sl0V0OIiz瘘:дz_rCb!|Y~Xuvn-`ǸWYue@&XO'I|ɡTe.1[q >ou{oSή|>9`< dhn$Mՠ&Sv5{ni'!S<9M|Ota #wl*#()ފҢR6٬u`+;`4@ӣ (01t,=CZ_ʎ*^4D1YV YnpoҖbRfoe?QFz`'T`ts 1h΍=2GPAcD'g0fYז*nEPb6iw|>K 盬i<] lg"LJOf:rz$!{̾/ /yUO3H$p$^yVHSA(w4GXb>v~1!nO׎xS1y]L؅3h74MOK: knQԩ7&[ohg. **O|ef[*|BrsBpbM'hj km EWZ+>"2> K> #nI>ۧ3&@.N\~h' @g5˚0q@ Ȱ9 v f+uZʘ8#(S]sxbg ,Hi;+Ȏ!J}U(8A52ZDy:ՇIК}k4g LeIOҖSa^4؏m}zI7&p.SْWOyt_:]K~?}/=N9qӌ `?2E\< ^3u霮jsb_2i.KAg393P~0֞u^Yu\0B>0j]L שwgCtih6y^)LTeNDFlw_,!snOSg?9c9e_H}9x=I¥5ˊ4ؔq"TyҐ";|?Wo4` }w_-^O͜0;Fz@V)ϼK\6R6:6Ca$`EOM4kDا?E'9QٶYV62(%`v-]+Ҫ/,`mKPbmos}Te-Vu0B6%(Ţz^93\iJ}=H ʰc9~Bc> A$I=֫*Ìal1*'9x6 {Dfzo 9}OF)rD1Um*i?öwgRs+k?C# 39D)90MXV؄#BIuX .)jAG멸SviƜiEhc+ct*Oe&ΙӷK;*Q~pGL?q5\l~V%ˆA=4p>$:y\pqŴۂ~^:;Ɲvy`灝vx=0~X䶲>I|'rZzZmpHe__Hϥ{gmNw.<])s}/EK/ yI30y Xm'<&d\dݦmdGyxzxMX7x6uR&EcEmq,|-M9|FO7[ Km T=Pi@#='% @P38/FDTSS0B1)M2$Pe;fR#+ jߠWXNU'ش ~zz:}i xMf_N]bQ5CM!O1Lö3鿐U&J k;[jYoޱ^z>R3vY okG/s@'HM`Ň Og~HNzՊ &&(tYk'ǂ Ui{̗z%Y3u9174ڳ 1jMeU&(bi ?F.31s Қڕ]3Nc'bSW6:UǟQAq0GJq Ɯ Xzy3T^Gԙh.v b7)l#'m+֚11iAkux[]o'q:XG?GJ䫷M$hrGɯwo_yMN$!9C2ӘQُ5iclZ7ڧ6@30 gOM?4$Jy1fcTsT*ϝNLxihgH\Bfu3 3&$ >Kuҭ? g&W><$骔ӎpp]=mڧJ+cY>^/)~^hZfa5ovZD^2qȍ<5ča3h߾џV!>SlX}>}'A}eGZ6`8'KJ_~*dXږgHWGpz FI'h ~_Go{8ӟ0[cU6, ^2,Z\kCR<=xhrjE#au\}.6y'l~7y=0crN\uo똅iH.}~x[8x;<MIýw^.GG݇߿_7GO;j/}KV‹[3pLtS2tL|L]0yV[X|i}]uS6z+`< d>?'w|mǞ^wW'bچoc[;(9rw{ӏɟFq l?utleSL%MD[(fs*VEj~wNv#G9I0`vxM&^t4XUs3ML7`+S]m<8heGIj`C&ҙ(JRi?؟kHdCgpd %Qۖ m7ɱ Е”. Fl5G7 9HA5(zlI;Y;n?^p> Z5RG!UҖ%f236sgI\=E|$$|>8t _|!}nOϹo}6l4K,?' I&^j`P9."^$v T*3ޖbvQg]4~Xz| ΐ? yO:0!SТK V /t |v1 $6)vTA~K`O|2S} 6ƒ.i@>br5K%wց[p9$R>%_`bS4E|'4O1)xQᆴgR>&[e@3/h2+2uB(oqCka$RiHZ?Ŵ  J #Idj } =K';TI>]P0_+]B Bh'.\"MV}wsϥ%¯}ޔ6dG )68c6Α:>kp$c5̏i!Mz<Nufg&|=ěWӦ(F`c:sl+jdZ:^W.S0XANYf $Pr 32XGQTXwtT ]IKi)ˣh*Sg_uF\n4w |휮o/0=0Or,k޻xڔ 9RZ6H^,xcq!yꠢ)̺̾/7ֻRXX'xB>?D mNYe&W)P ~ Vէ :#IA0u*ʰñbk3Tb=y 6U9cl)B:;-bjݔqFep!? \پPFymuh[[қ!MoLR>pxi>*O1g?-KPnmbx"cКK^c&Cu—.ng(\$5 E.>OpJ#\}h`jDm޼grT'ql {&u߹F2=&'A )T}ɹF 'y~K#r [eݚ"0 1)T.W+f!&<ַ&V܊sǴ;</|9OLhɟ~/'@OTaj1eqt>)z.ێːyslǵM8Isu8Ӵm+o[`J4if¾(;'OO^熳a'd^uW-~? 92w5LD@KR^}SijE< L$Zk>bN A-X&Fz6h3@ĀInºvݟvM&?K?@(?*D)8ןO~MpQ4p+x"hRxraQ1 㶵W9l`?B &l%<*YKLa24tYemp~,Mjpn_ >|dBRez1kN4LiX[?/ޣ`x lo+E!x4ё1IVKyb+MBl'(R sJQk5;ϼp!+:9a@bwdSO=b4ǸЌ^pio? UN˶~Npu  4LVOq\l4U}-G q̀Iae}yYKbrXFA^ ނ?)ڕvN%+2UW#㍜ra_GraU1 S=uL@(qc^J 'Ҥ?\ԭ$չ䧔EqTXL<=WITPgy;Sj%6}xSG :N0r̨&Ni~`].#uN#8ck'eyUZGv㧜,ik][DYJSb43`O0Ma_\m y$lռ$yՄ }5'!29.eӭ<};O tk`ݸ R6LOƳEZ8KC>E#W.?96w>̾Ʀ$z.i?}.W4I-NW cNܻx@Ecg!)}g[b;_>l~5?]K'b]Y#! RҖ^D z`PX)V޲C\J]k2nĆ8/PVxg)ڌ54Qr-,)Nרe\!OJt-U KAQ>hl#icW䗦tZcSgx55Wut\C}n% |JSHhKPZ=b:3Ąi)?YrxqVƳƊu^39-#2ی1q"`;PZ?9@1'ʜŭ~(:\#k"(ˀIF9P[LY/h#]f+Y5׌qDn"GyXޡs5+G7>۳8wy yb7P/Gݾ γ~ 92w=FD.I,R (6 ̕: @2Ƶӯ`[o.n8%{o, ~`Iښh"j{mm6}1Χ%D9;;ThDxOk3Հ8FGܵ>2^V·#;XROnu#}ʘT#^d:>uSYi.|#W8RWٽVWӴ;qE0FRsXs .Za s|. YW"qfM1NR6OHˆB+ }g͑NC j)IZd,*"c礽(vDz)Dvvۗꉟ)Z#W׬ڵJbvԷϕ)4Ll!/1%N *On:7ܞ0b/NzAJRt:!cTTeI^rm!@zFpc_6P,^  S@ŜqEG їcRiW?%eܲ룹&4!| E_ 1agK qXuJ!A4.~H9jN>\'fhtDnlNV&h'L o)?zx) *?|kqc A'zG3hR~VQhK̥rL5FB>bO}>'brD f>3S81\ U$7":dV:/ȟT݈m MQGoOK/a1lb~e(Ec|1bmț R$T5,69 6*Cb.cX3niK)'>e"DS-dVX#=u?h8/s,[j1hς  pjԥF9?6^Z'>ݟd x}~yk^:dw|9l =Y>|6x<=ˀs#qDloiʕf`;3P峍3k뼰qҿ^5I<#)~=5XK:Ӥ/}Vx7UҜ1r,Yn~wb)v"i{ ?v;<\#;ePldyhy :7{v޺Uݗiúޗ ̾+&z6;6XYy`:JiZ~^'}n| }pUӶ8wVu2&׽31(u7MXß2L|G2t7^3]IrGlf'Ou6NL\synf ͡нH,nB f `YxfC*k-Ҙa;V\sJ2tS3+"if]6B)vhW)cmYɉNmsʍ3Obn-EӲlOuҗ #?|];2t"LVm\UVkX&h=i>%8˶{w V_ndVgu!<̵KBFOafi}`멗XU^P R48׶!V5\cNr+-No9bˆg?T pf,w4Ixy ^1psVo[ ?W^UzOSv_V>\2*O{nŧI ?̠?G@O 4s=yLK/k = }j 1SU^)Yȷ=n0kgE ׶#2s}qh# )_IwI2ǍfJVʵo:><)R/Zm"]̝Uup[TB=G\tq@jdX7Y Yv;h!lyȓyl\EP6;dYERM)7܄sS6VB-!2^lHr Ӝn.MkbnNuNR%v˿잚Dk~ Q ד+i2%2\]V2gߗs9} xF7l[&pC} L\ϦjpC^YAXcqyCd?di͊&<ѪvMc.herT1>$McEK Zl w ;()YcvrڔW{ClD;'5j̬PWL5r#uF'sY> P z @aډ?A#W)z_Jq%mO$ ۛO*O oy]Our7ps?³ )>2`8룾TWÄՎYu,ICs'gRڞ6u(JoVdloTc8ɏ**TK\qw5kwܶBćdS!:{5k)ȔI>pCYs'm1^zS=B~/`hk)?uO6q᳗I'e75~:DUl\K;AȔn~3T{Mz}fMHJ$g $Qg4/<{M|y{۝[ܮL>b7?,INSŊM?!#t[פ'@Y_dhqX/S;{'ue)iY:F?3+Xz'=3)u=ERA t:v h؎Uf3V>탎#ůV?-'iA픣'!죹N>%p3v09%m!/_Ptx%t/NA3qH9vȆW$Z҇No>ҀL >H.:.(8VITиf#. -OiyQ4;3S:iʷLZߒƼCȑ>[qF>tI OBXL5㻲[I KБgf S 0O:nz\\sRe,&TUp}d |e.[2Ǡsj*mxIgR?jX|[Niۏ߷y`+の!cM2v@vy*zLuB.oɫ*."<ɹFGI2 %͕4Qfk7SElǻ˥=}];τKnsrk}!©ƏYg"ci2_֠7nvANa {k?'L^gG_{/C$cpe9'O'keyЯ'g%(5[aF FN)ej]}נEFt9Y (z;ڟTXvhBz}ߛvIQ眅VcjTF5? @C%+ey[ҹA=ݱժeCaӴӻz&x9#?C&"y5$CFR~^;rHr>&:Vjz4/LJ5ȭ3蜭\uz\3:*?͒乄H%I:Sl+o[0yW L>@wŷ>~NjO)2gGLJTՏ>9oZO0.oJQBa_q@LwSR_=J:Бz+y>wO*5myΘ:o1di8Hl!F=LX_B MBkx2tLKs=)AWg>LJzOZd{/ASnb;5;#b=(_d%[cNlXg M^K]H w-Ѷ>﷿ss=T^vU P"K+\ xvr9ZwU -" RpTbeFUɸ@ސdIc^*}{31 Mn2;&uL'?ȶ"2CDyˏagj2oH&^.ұb[e%vIuIPq +L$0qs ۯ};$~Lvy`灝vy| ڳ+{[L/qae"g/`/}K/هb<Ӯr}^؎p^˔}/JqR.`32߼ĿI69 MMU&|VJV߿ۿW<+C2n3no_/Jκ]~;9`|f46H$6C<*Ӡ dIJ*n5cEyـIܾOD&`M>{!b[L`c0QɅ }d^V,J)v)4`'%maT>7!~lԔ@n%֧I>)G.d#M)ٔ`E:A ݔ&[sTUdqҙng#._1N,n~Y}=*yudh=;Ƕ<:,kȣ):);{f>>oIsM[ /եy(VG+ЕTc-z5ZV+VcL]}iĨ[13V38x\-f^+=~c9)`g|=IN=W@<@+6ѤnrsS=psg YpT[S]o4l ]S5~:̴i$ nrnc-iȰ ɁYgY#rF@%>(RM<*.k*Vq;b# k_<}0A@C:-}qP|:i*JAg~FP/hm::4AB 5u2NFYN^L{s2'8>W$݃#2'18.I]Z((ċ؀٘9r9cfin1dݫz WCqbmb6 |`>q,7>n= qMIu$7!Lk;:2 Q *LnR{ Fv̒lg}ڿ1BL]AƊ-yn5b5_ ^?6`emkNJ52ߍ?i؞!?d[3QXZv$]ݫ5M(%5}.!>6,ᖮ t>QёD>>:'ɰ+OW{9*Ҧ-&ub|W**ـTW=PghZOܱ->zt?yO'ܤE][M&%2_߼7x]6X8ٲvsG*yǺ㇐rU l^P>p\!el9 # ^R)j_F*Ydq.Cc5 }`uFDmHg_a,iW<ġRk˒AH9kf+~!͹-Ь9ic3m׏צzܺý x=#icg~J͇~y}kr*nEz;0(Ol^& ~7Gd\!R 6~YC+vwIw.ׯ0ǘGFS45m_Q3~yϒO&L8' } *Zյ<ϭ\ktYل)]ꝾCn7k @ˣ٬8ʨ}c`"ssӨ}X&Q, M]G^uMO;>rn^eGOI\Z6}h|}^y5y5.8" )Tku%WWcZʤەȚ y\}T֢}]\+nڜ!b"BNP{/QGO[CK>}`L_lG>7)ѩ?\sK?qZv,Hžcd,9}Gy#`^4"~{kǂn/)};9{ߎ?ɝ"p5ɒS^sر6>-aRkחIExԳ//7A^`ﳎ thcdƱƜk0OG f&ld0#kg6KyH톍ʺ-nSFBܖ)B6 N 9XJ{= ["-4fs,vՎh?6i1PlxyA)ek^\tC"́(Q{VMTf+;E*NbW!h](vG-'eYc#x@UHS7-}C͌@UuT4S0: JQG*vFߌ1 W f؏{zEM\>wġї"mOi0jXlbua+S{ٸjt܇6eLJ ѷm0y%}~??ya>ɕ;I+ F"%:ܬSQU{Q2g#1ЧFH97^=$U%;ի)mRrS z'דz$mZl0MUQ r{ Л8h]Fv>ʻ2vˑll,9.;5g~lTKXі |IZiG]B1ʾ &7(+YύE6Qwey~Sύ؊ 0 rhRtGbtVrϔƱn[~Oc5ƚpŪᖘ=kEbx ݑPGu ^嵙HMۧg;>݀)^<2V⡯@5^_{)ű|Ͻ?箥&9Xg]Gt<@Y_)&8VO߂bNbOp"; י\8&x&V62ZFlnlxySTv١ך5f"1!Q.Y]쫏KS))um_{ǚ\#͔Q( LBR4Q5$92ˏVdɆS^?\Wգ!{EcY;G,(Uɫ \%~w!m7GЂ5*wܾYdLC[|έ$O>`s7L~<{z_?<O8;tMAROO-1Yca~7!7N6Ag 3 st*mE(=7kKW}tC״S[D|3XF)`~]d-a$yC@f?搵&o=0k2\;bL]w}׿e(ЩOÓ7 X~[S˙axm@DN&ftȯ%&7FXY_gL`*_ޏlbg\sdvOsn $RQm3sGiѹ?g97@ -蚦9+P{|.]ɳ-KW[&Jŧ_9(G7\dXrF!H;O25:lq>~&WC G"u Y{キ7y td,>xGt]&Em>Ub&$ f%:&#n)lI OOF7Hܚl P8ByP~lD[yL[p/iJ֚SԀ%R}ǧz#qJ1Dc2K *.b9w.`uy:EbC]MOM`|7G8@7^"9Y?Al| _ޖ?3գ>:Ԗ9f>QM*[~h i>&)ejt[Z*}v&r3ZiGMٖPM_"b%`7ĽVNxjsYkdҭD,^5 ݒ;G6T!g>[)I'a_7;ѽDb1+V/\aL l7u>(51p ! ךK'8@Zv,pfDQ0 @<㗸{vbɪ=mw6([10غ7։3n>gx$Ĵqw]{Tf$|\c%#Oc !EMVҎkI-8oy_iR]ڥ-:v9sa/..fQPU*bz̏JQz3vd<en,J7-տ&G4(oqnNit;_6-.6uf9{.I&Q)σ^dּJ,$Ɍ[[sCc)ч3םP-͏+V3S/gG_9$F7k֨N1}+{/μ]QX>g˼.?G %p^ޯ0"Um35ΖS}(~$[I*^?y-'`A8qظ^ɍaڷyq;VGʟN8E剀k~yd)/s\/.SJ:.cߗQǏ<}<җ8?&olLTi/c`狲y}Vz8_D˞0y֘o_1z͇~>Gp1Ex,:aПǍ$1G|#{]VYa&ћِq2t˨pק5nMnl6P>[0l7{~f7b k);XEbmq*4磅n 6n,Iȑ-7E`nH_mW`O◽[8TH팖'45lFri8ymS/w5}J¸!"YBRTBJ%a[~mr׎*-gj) c]4}1ZQf~憂@63GEk۰qus ϜvV9nΊ7i$Li7n6oqc2&LZ&39ׯaD ݴ =qt-|Z^}?)ǫgUoc|ѿB2a H5W9yCmɵ,c0!W+ơ 5ؓ(X~dm?VY+q]CRm"rF'7F!b+D ;';>YkJuvך ;ŏzu]&5dB` ?lSl'r^C2PqiJ#5*q^Ϧ b1^(N .9c{Y^NBp.Kgkl߯L_YZk[+_yy=69>ÄR=Q?A&ձגAoqٟ(ƲJZd;חۘx-אNL2S4G)Xj\a>;^c/jcS>Y8Wߺ@")Yu)\&E61cƯ'eDl_.wݔ^gvW㶇#}Eԑ&oWۛр<ݻ=p`L+w<3fwM$~ZZ`k5:4:@vΚmFR\וIYDBhc4ERZ>@Ub~,\E zu],Ӓ)%"Nځ//48/c*xg'8x%kbpmkf?hU< `Yl\^&ڭ!҆e-;?[ b"x:/ԢG.,YbY'eg_Ԇ#d)8!9Q^:3NaQʺ*۹9k1ˣq[g5#ϵb xwZלq][0m_?k`Jٸa&m[" uxn0`פCK_[G (h ySTgקo?\Դ#ڊ>6 ##o EmƯ+l[R2sh)"p)|";hdg|׏GSe9'cʿ/ΊQ^L:/ʮYyOSדl"O _Q?+~wqExYyw6Gt td3Oez12cedc|xا#pɇof#ews;Zolv~²6`hCM)&~ ^ހCڼ+bK UtCfRIeN7s"NHƐ;Os{k4K#P13s)T=4Ԟ c+7lT[z}d(B؟1]eC1>~ͦ,QѾ$k`{SxJߤl(rr:co6 Д2j2GO6TObL NGəHistsIQ#oxKk)t3r뱜`07v}}y۵L MCWm}wEm47 'bm1;>?Md${-@"?H=KG$44Fi>㌙=wtƔe&Nwn^9+<\&Y ˢ)1/.IFd7#9U5vH:T(z+53stl@Dd H$BM /4J>F9֖kc`=2c:1j⟴])l6ׄ  T0F9-|}aqCaѳpƖJz1P~)913(мy#nƾAp^B/w 0~ʲ:4gN/~c\bk۴ʃͣK<w͋ب}z\ʉ) 7Vx=l%nx A72ywrb+/b4+5YIWd۔qSZ ~,w .1vcK^"˻Ra67^Z9ƥYCQ'L!ǴE^l]%|q $yU ko32ywol7/o]~'e]2Ϟ^e쇂;8&]d G&P%SMsTSq|m_ 7&r6v;XǸʤRvx{YaY"I,GxtbGĊ};.[;Z6t5̃}ŵ^I%H7H׾#nYˠt?[ ~_#{C++NOB~ŝɉv s{#3c?HQ*>UzW[C=G,{b\֮q%ZF1؁ć {li،k*d!0\.:7'8̦ƻ _}Μ9Tmߜ2%31dZ_!L29uXvڦO9gQ qv7E*g`. 2uF=sGgaoU)WqE|䱨!Oᴝ:o׳[ǿA`+|[UH)"p)|# ?OyȇsvN5_hb4wg}p<9p0dee{z<3E<]/;ϳNw?{>o}sq샃RZeA(maez:ɢvkC 0g>iG3U}+`\6rDRLV0JaRQcddWr8()u'ܺ*۷no>dSO6 om뽇_C5%d>-=8hZG\L)oϸHVGɓ=x[6&rʆy[;(+39vsxڴykoohk;bTU_?l CU Ky`OF_̸ ~7&aR9!:6ʉYD|ݣYc1.U6_`̨̾oC5u|7~C9bAfl3sZn,E Ci+c:6~%#of뮅3ڶ`C :{UeIR(sm[}C܇M$ ]Rf_ds{ ܠړ8gΛ K,^&ht |V˾aI 6(}C,)\bpV!k>S7F>>c%g糽i%8oSDsYdz @֜`_ s&}^Sv*k'F)3_ N+#7dL76wڝ[Wo߄.o4a=&d?}|''a,=ZooƂ\$CsۗܯWvHV=d3Hɴf\vՍ!γXB*tm֌XY<)[b%="ʓ ~V~;$sj m͘ ֮>j2z Ϻc_wzqbvISN8ES3_$ax->t*8+.|w!B'5aR^q}6=O}Wوvo aWNwShxo 6Bm/!Dk.^pu4Lݪ]Ypб+}J~xOҤoƔ^0D2$~<ŃbOVNGWWR6 Twl Ce'e?櫩*2"gpZ]dRJr.o[j5И/5qs.~%w3dl&ǎ)uT2AՒw鷕: r62umE4您$2jĖy4Gь/؝Ă Gy>V lA;8D̖N Gpӄ[M|ՄI޴16 [kw6f-fr5z:}4pۮ)ecHS*iLVc^q7^m扱xl\Mg;Vqn&9F&Ík_Rz̋eB$VYbuWۥeІ7k N8ӼBs=tZ, \C./RDA>P2lx+P:8V:*%F:cI8+?1kV!!+V=,g ][Ď X:5몆q|L/-JۯQw9OiCǐo2Ja܎xXm_霒E7-d{Ug khvQrHIۚTTUіb#?&4߬|WI䫹]ݽo|3&6oM6Pd+&m5S1~qǸvT9o_>z$x=tsg s\V+xŢ!B"Xj)7vWeoW.W{hmzo\F0ѿkCGG#Y}[_$y/7^)tCč.:nD#?فL ghn$QA Vx$rL] 6)sh c6ޓX٬es/ "Hdh3ƨz֩|jpe,𧉉/M|: m! 8ٔ/z:nص,)2Sv$!aCު9?RMl}SHB/pDD-Lo/}1Eg?wc=xQfm2\ rM:5E0H&0n>taoGdגIZWI+wHyѭͧ7n,4)W6ժ9:>* Wq:87eCqr]' ૢ_g]cnt;vR0IlAHvDryP:؎4}eɆWeWfd3μ[AIud3QNokme7ID&Ь"KM)o#s̊YbH(*- oHA'Ԏ%3̜qMX?׳sH9:>NiۯY^IT+@ SbUq69A*~oq}XuR[L`ka^;d;\ڶ&hI+֘\ i+'en97xT׌LKc9ZH{]J?l&+jy㍹}o}t\oZ\!&[g,2FXbZ39?7oU LRA% bj^bcۢw-7GHHO. /yF~'4iE0yvz&=ۈh!1aq. ,D]ƒ&,~[w0r_FGi mC,gȪ=&op>ܽw~8ow~o߼ \ Q6@c/G-I#%9,{%SsՔjpzoaf~v\ۯZf3A1 V^ѽ6_5ٙcBݘ}a˧<ضP"pZvXx.A3n3(Jy+6XQWy XXhd_Zp"<*Fۃ@]jQǴM=׽㈪lfmbމmC]KDDqtI6DK[9vaXLjG{*SS0%Ms(r[,}3<j3<3yd׽2ro5µ!KNqv2168$-sS.0w#^*Jм<}Nl+>o/JkΛ7T,K]p<3YR23W(сĎ>8ܖ^B{0˩r)"p)|?<&?>>>x\ܦt>͝/[۹ǝq}/"y:gy֘E?+&}]؏|gce??E=櫶Ix/Rl,u~_r-_=U("`#3tUb ||.0|l|t*(gC7P͝dOiA֏EU䕃NjN7^jO3ʰO͛M߆!|Tcq-6^ݠU޷}ՖzճrsuuCf M7( T`ed5aI%.7ͷu Py&^o,،^7x v|C"'=SjBI"K\XHSV[Vait5?|d9f4%Ά\gDFWlbbP sj%'sJu|̜(O8 ǎ۸g6(W?4ѱ@ OH jA9}Wٙ@2]{Λ?3Wnn8^'yR$_o>)m'qk>u yauog>kc#H3NRVMNY17Ñ,_W[?kUN)YVi) Hqco &n#a|ch{xێc7 (]״:qֳ݊\flu픽@IDAT絤G.Υk[Cۿ{t)o=a+ʡ]6C{Aö~گ"qە BoJ2buuC2$h@kI',ª#I~-W,sH.h뺇.%a[%L5@һ짎Jl e1ݩ/N 1QPZ>㖪Pj׬cRs# Ea;w6=k ]Aт*F$qTʒ{~ LK|'Ǔ-d'";NA36??Rc֠Mz*{} dT8Lю-M6i؆.O^:7M7H{(()~ 7LWreۯ-&~gn>[}w׏>|7L~rرfyGq\hFcJ2~vh q<_a,9{Ϋƿj{^Խ _ x <}rOC9,=cEZovhg}ljebtɋlFˇzq=Ɯk0O#p׍/?Ծ])-'+O<"Ll:e.wlgY&ΆlW'𻙔 %qb;\nt ky69Gvqp\ 2}5BQ+u*2+NGޘ @'pMӯf$>+_m~m-GۈT(Ҳ[*8-:܍;ڧfO3 :"Ve͸nyRlX.ѱ7NAYmQ z:.phQHXV`f6#~9sr֯M[yä w櫷o[o~;ol7lʝ͇2 &v#4<Նiw6:؍cïHt'}.Lk]ll9T۷Q_|zO1>vzUMK,߲niWQpl*xUNbJkַ?ء>#7e+FĩӴԶ<6U̸E`}>*)ȽP}0*V{Ŋ+zcd5U$QXHyQXCTٮ;C7v{tk0c6X̍;z2}0#I6M@NyPO&ۺVc sjcCg"kv|3G5ճV7Dio6Ƨv{B F"!op %s6sBZی jnv83vGV~*oGg,$Mt!2~0uҴ p1qF!qg Jo{MVOAyB>3^ovbe"efŵ4'-COws{X$_`Uro7eE'~ǡ}O?{aӳyWu>/4o26 e0U%L?Н%M{u|ϲP!C;wE:11MBmz%hƏ6אszn&љn-JM%6|FR4TNm?g6XauC0=cK;OTL'Qh[9l:wg.D\;}l$J6roK+*73:{qC/>Qx/-_uaŸq4M=+ȗ1k7 E/7~fjM"L0mhod/jcӿE~03@j]1+ (q|k+wHkIM`/$L~$< 8X1Z|ݹP;b g>kr^E? wz6%%dk^l\'!ңgu;>Pkq+]zhY!ؙ$xL\9Vcg- bt}#ƥkGK֪ -mpE&)d6 jł^%MIP~@'^ՎlCfכ$+=s%1,*326ZoJNmLU>e28C3(v2{j)ȄfZ[ut1}#&~#msc g]D0Q%_n~ɤ+;F3ؕXiۘe`͹o3jl}ʻ)om7( }Tjw 9 Q\VQ)`?r;m;I·n " ?/&{(2Ņ_?S~}/Eāx찌vg\2)&A5K,Ϣ 35"{%sD.v_K}X7L_#a&? Y>߻)yO7>:>qssLf=(ms64;?Lf"z.i{͇aG匕Ϙz{( sAVI@̺$\qmy"$G# FϣCY+g'eH װ@,iF6ci~n`!*giz)KaM,1d[F\ =x$_]Xŏ}9gь5FWDپ$MgƯ-jjTRMt"ĢY\k$ 5Dk}>vzޘz Xo-˨YSk>wog vs@YlC)v@굆Pֿ TYM+-hij>&c=zR@u=4a=Pw]m{)"p)?-JW0< ghrg__gC}}}}YϡCi7\V`׮g_ɗu|^]ZU_U\ږ5ic`#4[ɱ5iПf> M}߳  e:י26>`7?Ʈ|=r6c_ ^b0n%$gQ03'wo&f0p_t+ZSF8@669J:~Mũ_dIgm&!ʮVJ>->M69א3NcZ=dƣku7~rc$.&ˠOk(;[@(`A~w}h¤>{ Ǯ6V`~mT`ծģ`fo2߼f Av oXPuF/=9փױD2-O}IԳK|߲-]'/MB~=6؏f ?wAlŎԣ>j{U䳙$dko!1nO>c<^->>cucƘءmSGlH5sIq]dY988kSw9-ݹO(:FZ͙T7,u$lj")1KU{ޭ|^w3[$O~+&lE$&؉x>X$_N/coƐexڕ95LRZFE oucfxozj{)^筈j9[ֺFh/T&V rE :ԋb =Ʈ1 5jS25MeE{82HV37t>WTijqRg@̗L_wd'潖 ZL?`2no|~Eyq C|Y2nq8;Ѿ|kɣSN8EF_4Gcg%<>{'C?s?m_y(;cmXa~W~u7qH>}_2A<a?Ʈ'N:Ϋ¿*giYv?ɞ},y$ н55I__պ:6މw{8`ѭ];K{}Ѻv-ʎٗ;jΊØI~+igEe.ʿq=aҔ?%LFŵ7ƗcdƜk0OE I&  &%{p݆18!u6V9gMnA ^7zmC{m7̆u6"C N]&Is;ukf>DnF&ޙ,FMnz1聯u9;dEDM:Wq”hXm2$)&!~73>!O|]:I<}ay>M댛U`6m⦣2hupn%8B#fS_Mh5%q[4YivqzQgKXຑ&͛ESxSmPګGEOsq3'>9Z&BnkB٬$>-1ӹz=ozͫ$Lnxַx滯ܼg"ĴJF!eb8f1.dDZLE`p6@l4"Tfl nP1N xLyN9hUslJ?68ڗ>:\+QVvBR*[2 bZba_&Vؐ7yi\;#cӱd) .Cނ&pq uk*B W kNDª }kɜ& o/K}1F'#4c}d ꠁƬz_8;mۧUH3g[<W:<˶Bb>7a$Rnm5(Xzcst4掩%"h40s'НpXrFm5Dc_vW, ,&fvtrK^߮%}nRi+UZLD}M,S">|ђ'zŮ ))O5&^cJ56(ɲ惭 M::z1l7!meZw7mC18~dsƸoɧ^ qEsMBR-R@>E\ovϫ<}֭-2%Yh}?16aE^ ]6(c-.f ڲQ<7j80NѮ Vt͎)5(AH50W-f晢>k^߸y0908?vgOF`ilCrJח> "pDf=7Csy{2YIK?of~)mEwnG9,07&IZ~~!g3[69s.l~-~% kLJgeܳ}Y? Uw26x>,C}gQl2wj"K{ zͧ~{nO`￟{w1oڃ>icW_͘99瀉wqΝ;!s<]CПv8gg O "|scdƜk0OE o߰↉] /6Xǹ6\b{Oa[,nҲN!̸iFčn R]1Lֳpz3K55o`ʯ u&xvpU6^{W9擯:&d<+MA7[]&~Db~-M>Qd@6xԲ֛~hB'_["hoRtD> r6IKt,w?$^n2k_W g} }%|C.۳΃XlHSt5Яȩ9F%=X~1oL ͱ _#՜[878lKZ+,;ȹm윻9fӓ>N2B h /H? ~lfC\d:ו(!ï|Z_Wr"B7om^7G77PuOqe}~&*b:&&w%KȂ\~ K{u$n,9@[w.5}mBX]Q $!cեXd>9Z׿"NJ}7^v:eKK`^ɟp(Cī/BD\v :&^Vl e#8n[vfr5fvLuT0'+~ 'acu lyEKє{[SNeP˄xd189~VڎAZ Ԯ%Mw6j˅x`Lz8z}>_],uNebj\&.4ʸ,@GD HrG_kny^lzWxfIΆp7k Y1?Yϑ5a<׳w0豫. -}Knul7$1-^3vϮ7h50qu!!ECzDw|!cP3^ksib;GsjzYYt"͌y⡍ k?q F@LJj7{j-Q[?ԏѭ/ :XMoھlr/'YrVdu߭0ܗf g-eg|>Z)"pD`EIbE퐗3Ljg:1jѼL윸(7ǁ;oɟ|k?KD4E1Wo/ҏg2ؗ}c8ke=,C?K 3_e_Z/]~?&XO?IR^n[m|yqbo6}6/}[>~ }x&RO7??K? &Vibɳ;xCEu8&uw{>21rpk,KvԷ%,l$ys͎Ja+nRwwݘЛu5t3|\tqrsVx?y#L0 хM x* ?5w[)M-MwlUBQOcҖ6?)8:wIol˔ WicDܻy}y !G燾 *vc̀Y{SƩ҈Po gYLlL_ElgW$*),-֩G3w0yKFB6->}&QD$X_Wcڷp-_Mm1. ~ 0AuÜMMBRwVHl%EG@sE],7Iwx֫7I_ݾm~&E;=ch\M1{?7L+. ?J0SN2 *uPQ'~I$$ |eTO6C(}űw;C SZ.!y&Lf>j/H#QKKp3{|b?}3*&!L73lr? w m5׏$&DpT\>]G ,l|hVCVl⿼ν[^V]MnM8&Ȕѧ?4ѯp(iмj1$s9b޽]PE^[{E:1ǿL?K_"!XƸ'LO| cdwV뽌ФFA1(),雗.[/ #v,Q;t=z,eũ fsU>١kQE\#Yt]'8$ʜI`Mxnh7bO-M;~wHzeԌG7y5ۙfɺ-ڡҟt]y^ gŚ.uf'x c jM7Fzۇ _>Wn #xBؼs͟}y&}2|Оnޣsz+L& w~e8 $6Uuh":oLRo6w։.+5dn~ 7p]if9_v_lhm6}HLnzs}ZF4k:S{ j4K8GNc%uB5pQo]56YO4or<#%״"'3v%\m+Zltu?ՙYWhOU>DŽ9y)?? W5IxDw- %4yˡ]'^;X7M}X#|Rx5ׯ(1 ,>#/m Egne2Vhw}b ImYGP_Um`Sݳ&$ϥ-MULC/"Et@zB$ h[m_{eNTuWUVuW36朮jDA IS2z)j)taN6-)mR Rdsiލ[\%~ eh|f;ԩ B_T` $`@@ĦM?􉘵נt7 Zb?ͻV\Kad03w뗰w,}xj`_ߓe =O3[ӛ9a7"Pqu&C0غD]E0;xB8tȳ0 6[@`̡RqHmJpthcuarXײ^jwйORKSu~`P]ʶ v0q-HBt@E@bN~lZV~4LE7eaF4@K.ZjU8  bFe-Oii\_&00'Kd/j]A*]Q6x M䊖_NM5 +Ϸ;^B֒Hť(xN<tlNK_g/dEU>ʱ(^ qs`~TPhRᄋ($K8<\+j(Z,rj 'p|9j G׹)e wS0TA Mx t4pR[Sѡ>$$3'iBݷd"MH\{<n%2R;O]s@bL=!vHrU'gzG-.@s2zkaLN0k3dBxp{xJ2]DV W(K\S'-vdPb>sl1)c\l`:Fgfr~.Zj x'5vAk!:)KN"^ej%һ0? ːGdgK?{ Ps(렍:{,4i!cW$ݎs_9usAAjLdd8&M&=pr襁g}.oޙ^}5k,jGƹ 6^5 l<^!r<(E߶0-.]IУ8)~uu Q;ar3v-`rpS't| j(1+{]EqyU=;aN-0o|.;9ysy:I}}&juY< ?DAx߲֮KN\?끞&_{l=J.ԲPvsdlθib 4@Բ֓[8.<#Mo&HZEmeWD*. bXVimVAnj'9IvZ۷`CWs{'y*7G2hM{jfv?F9l+&0˓n|o0I t7c|C9Q&ԎX峻n6谿2yeInֹALbDaE7b?&7\G},i^|Y[pa^dC\`F ΐ;i&?5}WR?й잭'C^HI b_z_FtgOQdpgmB0Ŋjvk)>_.pt0%bt ꢫ41 O:8}5y|+O`[?~<|T^}U%/~2n垧ٜMTȥѦ~*L1&?|R~R^' ] rPYm򪲄W2q ڥP{+邰VMKII~i/aY>*Y!` Hy;j$S?K]ݶ/Gf.US50Z%vH2aGd)̾P wWYڵE2 CL_a6:կ}k)\9Ίϸx]i ]Qe>.Air>Ѯk9[4ٞ@'W?PLyggwc,:ǜHK~#2K^/'/pYw뜼x+ק0OMq/ILjcBQ-[P kk/5U0c6kҵReS=oE ɇJpPNe4\i0p~)zCH_5EL! -Y᎞r_e}#V#Ñ<ի:oy9Z[#ۯc. C*<:Js(_ (Xy1&SdҀL K6d P+=^Y0HLORXcFU/!>(zs!%ZC6bS,ڒ YX+|׶!%6_-QE ##V^ЄЅ}[Xvl%sC@DO-١ 7};k*2,LE ئ}N {r`I;3Lj㌱X`~mh~Ćv/ֽ4'1/ u$'JE(fnyёr)$G HG:=mKp\N[ SO Y.@ MI x0V$ABR__c, X1pY3cDଣTSTReF7u"IC¶WCM^8~b3mr&yΚb[ad9J\3o]k<`s=7U)~&ATr q۸mcXGw[nxp=e09M;Lv/s;u`Iu~&Z|i}Z;;u=P&GG09oħ9ULuqòiW*uX;{--+_'òy7vo6k7QciB^uJuOSo o;^T^ߪ._]/Au1˯Ðx6ם=[Lbn%6L _wڒɦRl *v{mTjc6}LaԸY^mH' Pۄ&xhwWR6 "3}C3lP'R'Jm7攧v1 ڽ1a|L2`!x _"@2qQ/|( I/yqCq6_9=vUV,֛QU<`S rWf.`M.'4De^Bi6S)w` B!7Bjbw6483| ..qԓl zrTNN'j5>-pa}f%T@.e4Ppl+hvd'P y/zl%5EҿW#jwؽ l1>OƝ_|o7p.j]olbG4!>,Gg-0Ysin*[W4ƲM0#'GPt g,RZ5=h#[ArƵi?d*\2]|i`Cw׋R3,Nh({vHV$DŽ3xb7cYAǍ5 /V˱y⑆J.ի mP$SRJ1?ڿ*PNt)XrԏBc{xeY(#LUY ,'O7ݐMKǖIp\@̋SU띲&Hqd:Otqbe$ O&Hb˯EݠƜJ!_'x%z;k^'tMqcx?|٭Lb3@BoDz:)c.A,"#ϫ%.tqFLV**N i;uC8̽zSnlp'f}L?l(0 N.KI5\%N}N3.3LeȢ! ~SQ:0^4J%ʉ⺦(˹,#b@e`1։ۦ}$"ϊ=J]t:ʾQB[ƈl[eD҆(RGggU9~#Ib(:Sc[TvCeS_g.?NHS]#4}iTp2*4du?xB ¼쌈Ed3a;L)Hĵl5N\ 'W cGHK95αQtpŴOU.!׏odWGA]x;]ͷ\/fsl}ͽڎ2`rwG}߻ ;qkLX|so tU1:QaL>J:Xa? {fX8V1&gj/V_*j~v3o^-sϭX~QqH9FE﷖2i N<(]{+|w} ?t{ͷν?(:NJcf|ssLg=0_g|`% 3?5L!e)%cumlθ V*R.[=nn@l(2X&AĜec**4IqPٛQ& 7^a ̴gTTI[h `ѯTgˮ%-@_A>9fsl&{E^[ 6^LE߂I|UA0 ƯA, @u:\$Vȏ- !8|UmRZN䔑u\!I >}mcS[;xo0yW1n܈ C6Tm MQ,s]US,PCn[;:gavO`W%5x/*6˷^M5֢;PAku^ɜF`Vwzm~^q!L#!FrϕvzcKJMa FX@9XJR_4S95h^"I5^?%ĔڨT3G#Ei63RQImW7l UpT?3v(wZL*ɦasp={l/yCSgȏ<|[i/b2q(|L$kOfV+gW:0@^2U-Hwx{| O3=3yƆ1[Y"2X[G>]QQ16`~= $II9Ωt!4D0!L/ctt>'}?ߜ/HI=9!d9&A><9,zM-:EEK%?+}, dkl\K>k2ڧGZmPE='ψ y.4* NŨTF"Gb;/JyÖFlG-_- }#{Es7Uߕ?0kDɖf5ު4v[TP)ρd[לK1ǵѷ0[u)}s{&~g>c]xTkeѸZcC1kҦtʸr u^Ժ'k|$6YY4QP-g9%L.y;Ö=u|uM mKxZpo|r=^KӇ~ ?8}|P wq1Ǵn?}vln~"|q/%y# tS6O0uflnyӛ3N89n`jcwQX6ӆמWD}E4Aps +N@to;3}T;U^6]#piZqcuHhФAgyKJ ^bQ=:";lmGKT`&B{zTuIf:"c[JlR8O}3/NA_3HW`?2_խ\4ؐ46Lc s |͂8 Ze[MWO|ħ^[U+eE¥'8_"T$c6ϜJp^_6 Wg#J?bk4K@P=#=?T8MV Jh"Fx_Id՗JS{6'ҍ 8o~ .#F"C|2< .E`N)@dg$O|UlN=[߽V* WTRc2j_y쵸6!FEWrm/JCwŨ3p5tnj'~Rl: viZ3Hb!11Fdz wz dkO.݇^h^fm*#$.*wޕO~9-!_j EhyWOX3]GUݘ+s{r16E؀Le%Q v'~ϱ`Ye{ħB~ %VMK_آa4@w}* RU:$AU u£]oIi"Wק8- ۏc>DXy_A,y\fPSYR`ךW}SA%3z>]hM՛6R^))_\|&S}͸@j\ѕ}OQH&odq.ZBd%BsK}5V*)/smZJS|x TR+#JK[  M1+2Kr7lֺTNLN;K9KQ*V_z#s/so~r'L}3=: }1a$9r;c?S*^M$| }jǜvU.o>wRsM/CWFQI ,Q.!kpyI8DE,sVc`<-Ǻ5DZ5-8ֶZbg\O=?C Qpd| DM() AoSN?[Oxw9~ G?3bP/q>?kW 8g.?_*5&gG>^ ֔mm,֌+w2+ڬXE+oʧjn.$$=flWyG^+\[q,+, ,t"*)2SPU]z^yGWG'6Լ)G}PN6YFz6ԥֆ/eϐd*C1Bfmԗ IT4:o[0ECߧ!Wy[cˊ|&ɽ8WLRL 8ճ!]Ua_'1Ү'/^ޤri>x1t>qqN=J+k4%mp!YݎeW |&⫲^fXn_plyw,.*?+ <Κ͚FlOX\ sxY`Hqmz׻@ gJ>;ݧB^(ܣU=*Gl6x`きg*`r8 _]uyCV:v?(\Kx}ςu;S&/VüaN:Q? ;fSՀI^|{WN#&/O>l~U9{-׊ړ?製0꼟>O?io~ۥ?ӾJ{kyz*?wKc^;t]%m}LKg ._rpFWƐ <??yD7ghrؐJp/`l=nbIN"1 O:kt.9eCq&d#Pen&xgza3u*[hxs,ހՂ`Oƅ>uB, eFZ`@ q g>Q;GQSBT0f;_UX5 ej-{/O-: Ls|`Q[eMfOHCDj I鬜YY#\{M TZ+q 7/6z/׌T$|,&IL!WL<5i/q)SUQ>X5Rj(g/F^Iհ+4RwhYXp黮q!fs#)TQPc$wZ ^F}SDZy"@Rk"M~}1yz'L\J_Vo5L?λ͎!ܓۀ*׽L[?%˽ A^3u_/&&Jvҩ(T+&[6įP'DKe~rΨ K;j*QLR=Y~:X(>X<`֙DQ~=eg7u,\Y*T^(#6I_ X%""z}AV='YU'9]{`IY+7 =>Éwx#'OsS_Gǫs*)f{pdJeaI'R JHY^j˲\7V֑>>GvqA\X t%v%m!e|uYL1p1ZC>$h{җ!}%-uAZ7 wVgfX+R2jN"D•Sd߉ӻf<;T W*TR+#N?5J6TQWآ.=򆎐Vr[HQCN4+WOD I5] !k) KX_"-!PMA%Ws(jwUO/ݥ|?B ȈË6{<Rἰq{eu_(JXE_A $gX6TT:,g,86k+c꫇JngܙY#/"Nd-"l<l;o}2uXrzxwo"'nPm/_idcO_u`"%E|gӅM67n}"/R(-rĕ0iRf~Wow;9}oa8sF,ͦ'х- 8&aɄC n&}bRl:ш(AhA{בKO "Ox ux|YL"%%SϦ$eSHލβ6Ab$F-7*C1+̒k-ƥ) 8UW%~u V'hNlSsl=3πɧ(o+#}JH_uA2y*i}_>sbz[j)3CbGE|NNv0TqǶśxD!o|44X`{u);8 d/~|y>7 36k˞X1O/ec-b$]ij&;d1C!}jɼᭈ'54&LD/+y0 M"v*8Ju''ZXY"H51^ebLylc,`X^sQ!s}Q0gVyyY'eG2F@f׬0 AddΏ9 /F+P̑3(7p (Au.VR֠db n Rj~bY1 ,Kfr/Ek{QJ3qQ0):寓6#d/H|c.ll<=p{\NAu\0tt%;浣_?sQWOPA~cT漼Tև?u9?evڏcAfbqE1v4Q< GϣuQܩ/{uW[ϯI0O1׿~W\Μo^X|77Ӎ7jn˳nUG*rw?}Wm$|Jߴצ;l9H/ _xuëwr7=pߢ6EQd-d{(EMSe en7E^LU٠ςߺ$2 L%mTT%kCos6v&٤z\87}#I74G]5وV=96π FM&>F6;ŪC'7!qo ԻS^L4nOJɫH_^.Q{[vAԲo14$fM%>lS떳 ΈpBE6*F%^J*(Yvԋ5E@ J՚wl$2#J$/lM;f*xβ#,~|l4GغO [*IʗE셳lrD*/҂ 0`;;K;1yIyϿKg9t7)͠MIיp)(k'.)zk<Lf ű w?`)kק|;N{u=3.ϣ^caxĪà_oNI$swq\FR.Sk'<?e[{eӊڥ1e(kevJJs.^Mu-RGX ^_X vA'9@CTݿGuӶn?ҞzI0`kjmZ|"xM}.2-ȌG "DП?ùJWfhKGʧ:Q)$1/"&dm(pn[3k @dʽ_ȶxވ" 2[0ddt߾k&~NM: mtאIH AF=UQeWG(ܚek£X_,uyۊ1B=F- ]DA<`5cm28: ֳnoCwi:O>#zm7 /ڑyJ{QA JlNcU@ۼZnrE˘H.-cG/j:{ձx`きpPl- Az?i^oݿ.] 3~>#d0LGJնkzmL#y?~\q>,\GX"X{NDVmݫVWZ}ELvd_gy&yݶk*\ܾO~NwնRwXrѥ_ǓO>9}K_k٫U0xl9a2gަ^V?|s{20K/ #jč7帕X&g(*jJl^!TlrKkg؈+|gG-E P*mRc"u!b:O³y9 <㮩δ˜:_G[w zO6I63`2J(G{gE]8-0y_t T@t - P`dsj<S148ܺmp"nPSV>$FP(e,^чVV,Vfy-rKҢ+#JLv@}5wl&F'3ޠu !`O9e͛ 5y:a@6,d~|7A -]<3xJi,U?\ N;2j\%'>h+L^9qג|{ 6W @WH\hzg}=4%X9N{^~}b6cpI*آF$d%B9)0ʿ3% L;Z<ޖ9ؿ~3P GxS$$Jٌxnj8>^`#oI]SkܖC| L")#hdp+ƻ}Ckh/A {oE/svx4tOJg>&O}!B֖`"힌9WS+*J,^V$xJ ܅.9TL9瑫,焲EFo #D>B TNcbXk"mP8oF4&ǁUY 49@/p?܍Uz=4)ݰ29{:k n /r¤0w0^Ic\;͹۾B]/Q(u^4nł"@IDATY{aQYȀ Q`>>##exS=B3;v<9=g| |{ G5]ۜtOͨZ_|M_W-j]cWPA*-u4]ʧ f⾽b9_^z-Ikok xIO]LƨneL\e!ťM|E[!ڕ=eBkeohmZc`\{-Əa3)y0ʶZ[.)`p1ʚW#Q5wƆ>#&}b_[|ENp*zw~c9dQկl$iwFAas ۬AUPORsa$w24ǔg.=Po9q4ϧ}~?IcgXZopDl1ⶽh- 3'D?~[lΘLuZy/5C3~gb|Qj4s/Px˾#̵ʒC lֵId}ozjb/C1jt5ܑq 7`!`g}Znr_inM^vMqo|l:`x`χz<5_I_?k?0}e#\fNW{ens>ia.mڣ&kL~~.{%xn={>.mڸjǣ`qޣ:6=N<zUۻ=}]&[[[wз]Wk믿>򗿌ytݫ}ǽhvC?>y*.}7ڟ}{lcUƢ>G}cUuLnXݭǧ.·Ϳu۔|]E q7b#%@n杛jtu%?Cem U&!t8ˍ>)\5ؠgGCԣ iE#<&RT$@qϲ.L(ϸ =;9]2S΍ /S"Ud XNUv [6lkӛL6; 'oƟ\lUo@ۢEk)I#@M6km^eyʳi,&!8xU ^OcvRcS>-O!%p,'fݙ Bс0 xr'q Wx uJ1| _`P lڃh  c,a4djc˙8@$WlIO5ΟgOʛӯ/_85}rI4?M] $l2}=\ <ƇUc `gGeDιO!.]pH KSvڐRuS}X1FL } ˯Fl&ed鸾D$ r:F7#FQ;$8)gq)\0ɫkBkOK̶?1c M,ALeGѧԨ^GՊhs<: 9J1UF,  :q'I=/): nWy?$z'\*Vȁz;i)7h 0 {_Wrߜ&{"Y;EJڏZ+~:f{|dd!}SW^[Pb֥2EW.Pȣb"6mX$pV;+ybNFA.(:JeXu^Y/R4M>!'L>=1d\w-*Ŋq5z nt![7 ͩ޲ՄLj>Օ)iyрOhg70)3~t'2WGzm:Qp&sqM?dg ͪTש*%r|]4eK[GTSP/.SF3 K@mH!XY^z:d<ʦSd$C_JG!`xS5~Qd+#oZ3*B4M*k$1>YzG^FX Ŭky )$/yv1K~^xEsvӵm.\Ϯ>_CC^۫ڎU~'ᇁy]ߔLm$wC&iKmm$ҽpWmYpumʖW(>o H18~l@эl~(}ys`3Md6$8qv^,f?x~z'=K}l&v,o0yWroSP']DJO4ox'}$7jԃve I} xhqC2v eptDwqm#MbW{>fFc:ez7˗s Al4W6+}-aAmm}V:SIR/9" Arb9aoyt:mL`^,[Ga!0(/>Lm5SJ^ guf[a+& RS) YGv921T1CC?e^_|zmzi&N(c8֞W]N*V ퟰ GwRӛ+ƣASҥUfH' 7uѐA_y?R;#rK2CM%5Ċ6b1\2&l7!YlP9}S:EZڳ⿴* ΢muFAF^,渋 gb[F>ܜ0t$g96ﮭZ7/v=Tmɦ~0<vԺ[7ﵼ㶞\6}~-><`r'xNM3;̀zԵcI~[ {m~nƶ[?ü~w:n4Ž86_I=6_\VW>?o c?{&%ҭ˰7ߜ~/E CfXIrvSx;U9<5__ w M߂ux!Mm\u_&~aa`?.2= Lsyy`׋ ;10Mښ |!ٴi2t w)xBKލ7Nxp@j9zdVBn@fKN{ ߯0i_f&&bAuԾsٱIMsD*,MP)w{߆#B~9aww,ꆹ!| d@%k~Oy-b>\j Oa~/j|mRkhAOZsl!fu.)JT#`]W@JWBKiYk>7蔭;5&% <)"Z}6E\WKb_8jF=, _-keKO0 ZHn}2L#asaZ8bJ`ᨰ+oxTCFp(S] dcV8_и|jkg6-BH)6U98ꏶUnJҦ_PتEK:MmpJ M ~6زShi>aD_KH!Z.0IUze3A&T $pw~tD[ۮ4rѸ]%fnǃz D(uyյ2LJ Ǡ?k9渖?Z.5НtѠůz*CwYѬȉPd;/˦>s\I/}E,,kOi1LT;Kzn!ʦ-/ E9L~? r"+,yt@O-k-kI$+)o/J[0?"( @"=W8ט-%еokq?5wG&_OMkGBAVBzgw*>, j26ѐҿS`2's!&5%4g?W,2O2GLgT-KI:?-_[kT!id5^2k1ǯ%e+Ӈ=a ɋ$yqlnܞ>ruR_~¹$oOald\G_\aM麋F!g)F D4f-E}[d7 :=*N\||1A-nu&| ߐL){Kq:1edf"y%x)ӸbͤBorі4KeGi4;wd'-uHw!F,I[b_*{LV9i?4»[$h2dy@dʿu:ccwK]}U~(^K>s ?|%[K[>fvCQZpsS:+z+} gip8[a9iƣXyG^1tXD%Ώ/L&͡M ݎ-U@2cʨT _XEIJXt|Ydwճ8(mQ=>9j67x`}yPI6~&T{ 0&wQsy߻/2w$uƒ1eVX; 0dWFLޏabg6:6tw{`/(LUvw4?H8uvEWBoqK5Աy5T(áGO{țEMzk`[mWJp"zne#P տ6_ ~*(6=-5N|)/r$m@>Mnu':N-_{0y~zqn6 xUUn]O p+~q!ېQSa%j MΰJ>ꠐ4]W`9I[L^!+ק|޻u]˒JOdߐ@k7 =<<@4 $9Ihp{|R%crK*5K{y1\4G5}?=]1{[J<VkqUGy7^]Hۗ@~@U$}mvR'ūVlυ߮'CXɮIǾ!1Xr yu'l0Ǐȭ~6>< Md0$KDQ]F1׷XG"W0՗XrT%:Mk?ݫ휃琶R^g^2OpB-(./] I[02)5ՊͻI jJ:XUIBoٝF4AS'÷5ǗjSbM%%zs,$hjUiLM2M+gn "~0imy^>C7&> r\%cCΥIf>dI2:777[&LJe#Ʉ_P)0v'LP6GֱݰIǵ-i niC)*4(ZZG@WJŘ>@K+l3(%2c!}/DŢ^IT 3y^ jn9GX[U ې{̟r n "-\J>`LRX7% ɨxl7n;m]kHHrŁ^#d*1 4uт9mS/Ukf&'ىM4g** q.̿Ъ9P* iYV24>g20D~a_ I!%j1fC}#DC$͂+0)wkU8Q暏͹=kwxS0B_,XfI<] cR,TF!fZt?Hé$ *qy|ǜg~G 4sl޲o3  hlhE`~kˤa}qbZu⠚v0E&u04wJl0tU,#avvD&%-_8d{@|25ϐ8؋_ɭVw[;.20<-V.p ~hꫯ>,]bc=Lk;O}Mz|jM+ߊ_;Vk2&L~-SeZE_,"-7|=)θƿnfsoZƆ!=xf6jۥ̌ SЩqb Tn2eOY[nVOHvg WS _4aSl*EMT&orJ&J,4nď$ e8%R4@-=, &9hkLWN e%6eGL:rsm:5J>nH"c@CjMA`S- eM$GI'nGw-\՛& fq36Ҥ^& &y6$zv'yK|~$L>OĺU1^6 ̼8?ԄO$y$r*zL ʞmkFb.xq/Lbk']Rop!T1U I$׈OwzgN{8H9 Z9ΒF]T1޸_/J*!s;ѯ^&QHm11iF>z G=W8ڙ&!Z o;&T¤t̸(Zbu &$I$|^\3bW~1Πd0X0_b C1%8Ҷ$}Z4 L>pз^̈MJ@;T]_v S ?kq2"+X͊5WŰ^nJCpW<Ό| u5tY^pi7[Tu}@Y2G$2%!حIZIHC/N;&QlUPT~SτI`*F*V4VI&pSe: h 땪nGoɀjɚ>Io0$Lgz6n% =E5Æu:-c$sa\v\zG1IX`Vy~Q,NZeJ[YҬ/Q%N[7@KуbeL~6j|<=?&L#Ǔc9 xŤn%vzWhKFOk? #8aCM$)r(ɫ$L޼E-gϮMgϭJ1FCcM5z7ʦjixP'E޳%o}E"p3! RLjq"W~›;|^B%v1/k%\ z,~mt(wkkN/o*L*|zPYnA-QQ04!1- p Jc.WGi V֫?db/Yd>3uk|;Nt̠=MD`9 / lhה{}򃿠*~ʟ0ҳhD~^~/wJ}{t# {$R~@۫_%Wr_;km1O%yrq) Hq2˸Bd7/S~@&Ė>vCgʗEݐFVSj$mg½Si_4/w le+Jh%$r2_Z2{U2^a7*g}%qd5&W5^~Ze&WH.}xy!yz׼)l`^Ty%W;_mڷeeW'+|QrUO)uWg=OM>/-q)GLSlW߯ZZ!dDJr`P|0{zdFPKJJEGĸ߄g>ift9 h(!/= Wѭ85VlSB˜T>F(ifԫ6w,;P}:ICtD KZQG_@Y`ΤKHnY ߤL3.a21r+ErZ(pGAfǐ߂iU{C\_C6: 3+p466AP뾩 J(2jYh$ƃ'Sks)8;C%mR_xHY ^<5'C_O*N4U¤2S'"66 3 +lI$xgL;~i.bv7|;.[u~Rd>J9GN,dZ׉JIN9}s{6O܃ڿTϏ? 1I~[d35q4qmM}~I t߾e'ڞ;a+_C9J$qd~T2<*>[m|޿$a29!r/Ц&Bzd ng [}8t֭ЗcYtQm>?A&wo^RЬz"~h񸈶%arQE]mYElzM亽\c}'L,)P) ѓ윌@=5Ɇ9x 21&|\K Jvl#-%,IvZ\3lg'yp96M<3&7C O#ɢI\==]d?6ϰQ5 n׆t˕:5&|ʭ{_0HDd&7mY4[cQ۳S3 4P"[@wM1qc_Vmf|m#Q9v{2m (=k=7ƣQ0X uQh  /Nq<Il fsv~_%+>M\Ϻ( yQ.b"}G7U3=mB?$?цZS& ;${$'pL&Mk{$.RJ$,:Y\#o;'^㦋>K%EE,1th<\s i 7lm Ix*5B$pQ2Sg4X1,ieҁwٰbghYIC\*|Lp0RFҳ:0֋f3uRe8cGAUN53X~X*?֕ T+rK1<@!Ez3dɬ|9VU4'RjGeL!R8sIRA9eL68T Q:%#i'(%ҩY'e/[*gjݮ~y)Ԃ^fQHb8.l MRϵ7D;p/]"YEREwoL( 'c,;+>&?x+L%8ʦJHt獷?Y ׂVqBd!?_nYliS`wvj67a4α< _>}&OB@o҅2k$aF69(.+MT]u=Cd+1IdF}^ӻvyݮOEѫc >/54M2GYLMc*ڱwHmfX6y1y*Gl%r{Q_s[W:Hxoٝf)5ze'y:jWR̦l wEt&w& O=ӗ{eGpޏ&dg\4/:=;Vx h@9HFZEs"UN8! y7;6Hʕi`<DqkOaS~@jGՑdY,̩Qm$&>)[_98rX$ ЧEnS^U0Ř3" ӵh+#t ` fFYsǴ~Vp]p,tjzPrd$n4{ $-Ou1|af{Z;үF N +ڵugl觌hɮFXvLUEqu IP ЀWE} Pۺuv?Y繆̂ë_7F _I0 "TQ15 emxf `ظpP[3;iJ"~\<.+<8]r?^q0Y2LzZlw L?T~|/ xdrUgeP.?ća_5HKd(峔KRhljXΥEt5sI<~:̡j f0h2#X:|,W&03:jIiss M?zY'g $㍵*8'AUт) RtܣQlKMAĴsֽuآEMxs@p6B}dY†1/r[Ow8:)~5} M/ ̂sqGt}Lݿ5;dGiVRqҺF S'KM="*@#ORO*%wz.Xζ܅UT #lt.==(=י# #P<)h˳ 6d摡dߦynJ~rA8I6 Y;9h?7%vo3 ie ݆]wM(|l%'ݯf'N,I@ջd­xގq^.]ԢzI&bl NzvG0y}v5#P$LG Q!al33U܏BG'N&1O#| g}?&L񆧭cp(o}k)˔%< Mn?G\޽.Kӂ!@IDAT>5t'd n[,7n=jST.bc1oY $xByX=Ϯlw?͕&m87FCR'LqMH:H2t $L#{&e^,lRW_*MwXW8ǿ:}xI!A@d핪DBv$Ohi-j7~%]) &q5'2=HJy]gSh#]?szΙVh#Y5&xn% ĸ62_D-:|ӛ_D&)a̸+9 lLoRKj&p0mgex 7*s}% $peEoO&a|*W*a-`6@B^ιOz_ tv!+@aӹ$rPs?@5o韢e_4n{\KKiN UJHwGBݶI; NIJ >/Jےi;y~<إƢ"n_%3uy( 7fN4OM1y¤62L%ɐ E(0}i23ѰS>ҡ\TA 8C!nəu^ od +s$(yG:1#SԋM*恠oa4CXsH_ms~1H'L&/DŽE, Jĕo,! 1@Lr' kݲUP'0=_[;;_)^'ug=}\?>msoqjr?6pmPiemu: quu cKL78Г+0\ /qf,btƱOTQ%Q qUJ _‹'zt'b8)ˆc ;[ǘ1zP\ܷ2.`ju4K5bxA?Dږ@g F>D1`h|q`)H[H>k╘F9 E7pY.;Yv>,PM#0>VbzJ* iznUm]2K2vE. SVJ9`SqG){pOd똗 s~/o_ɪ3vrʬ+s߼w)ֲV`93{wVhDw$>1ދe]ei{<:d8wb f^;wi|Fa0Ŀdz}y饗V`'~߼2׾6Mw'H8Xf I( (Y.{G]=╇,=0K\W_4)[6ŘS&n[qt19*0@l*hVQu3d `o@v$X!oa A(caeUt(tX)O/rG%|f/Qj](SN+eй*~6i&\AS/Lݜ0y4a <[#zY@8>dQ/M98--|,Bk4gj+gN9L$e+FWUqZȐf< nTFǏБydc@֥]+sͽl~lWJW,ȳPRC8Mc3fMFd⧀iz/TIɼ@7-eShSNl^NrX- cېG(@",Gԫajgʐ9&`X<Ǿtv";D֚L?,x6î>$1~U>ǥp[]aӼ`d $_qGaFvͬm̀TB tu\[Q:8$w'y)|~pV~X= `16޸s;'L&7C_z&7wx & ULpg8 >ֲ"93m-:552b.qeY얄Ih8N=O #-II|ḯ'/)NYD`"S֐I4Dj N_^hӢJ7{}5h,1 (אo׉U:Q` &\>ݾC4 6%bT$>`Zϳ/EHgc(ltS>Mae(Ǡ[I5Qʃ1b'- j;ʬHh 'r=ߦ(u -eTҁ@-I'<\W`R7Q|2rJn{S. џGZQE3#@`Fǔ8#AS1ksDJˏ}}*R<& h9&wĬ2l0c=-ǥCLh'm&Z ISrT$Q  ^kU\Nh~'u/0L?B,V Jŭ:T[Q"mZZG,ƦUv\ze)TjHTJS\P{ %S1\4tt"bZ+ f-g>w'1)%QAy&]&&:Jlۄ^ϻ>IMUgA@`C4C@=&{f1$uʞX@Bw~Ua&&Q$L~_=;0ǘկ~uڽK8&vnli=Z'=ar~qBG)ˣ(lIq0p/A~:a>۞f3|ll;{O~2Is4w4㤭WWW_|1-^ҥKۗxP-i~8]|yގkGu]6eGAQ:[}ɷz#=nͯ?q)fU7Tۍ*Z\P\{c/l˦n`<6A\@$T2{ʶ`"07p՟9%8E>/$Lj' W*9Wq_ɍsu%qz v+l{beSt7$ "g_uɒ+$%lL?x#&L9 pWr3!,tTZri435 zM(V+܈Ӯgg.;fFa,!k~2bgq>Kд#jګ)N@rr/1gܴ3t,/!aruzg7 F$ae\eRAmN}56x}u 9?UFx$4ͪd^Q$*Dd^K"@CvPlf#Wv¤ 0~tw^97:?#dkϦ4ñ6l*%06ÑbYlQ%5t\\A,@ -|fAP\Ѯy>$+#[~ _ 6#J'kq;[΀0[ BdR>aƀRj5f~R8<m* UMHxͩ}"C==Za6<"iw&Vsd|;fU$L{@#clKOv<=yYģI-}I}ZuT>{y-~mQ;vٮelsg^#dNbKO݃H<=P1d3r2a=OISJ\z H`cm][Y{Nk޸_Md} 0͍m(]>'eIkb)vǛ~<ĪvtIp\3OЩ i8. ɜ51?SF\ :IS6xZ)С^+&N:'L> gy.yɧy#IfdrJZ򵢾*&[P㚹)"|G3&&asǣݠ^k<\WH!ʍ$L$֧ӳ:';&ק$޾~G7yb64uk_Z ];Y:3EZl݈QW f xc>+A*1̾ai*=֧>N, GGr-RQ j1h+䉫̉FQ .~Ώ+^H} @z9uy@}I ا"YV#V'l xƳ\ V1[*zt@ ;<;aoU vt;HL>2|F ^i(Kɫ5op] +seQɤ]#QYқI2SOJ,Gi?(Gŀsk72PMsJ&͂atOC|;(z_ψ[M{̈́@;-|dVr*%8`c\RȠ0vhS"d"4h+b ̛oY@.?|ynϏg'{$h찾ξ{I@ȉ_oN$:q@Q$L5l?n^zi_wɃ*=&Ұo'ZG01Z}/ҥKsN6Iq'L*:Vvӯi$Lf卷͗GpKc+מ-z8/L4$׀V'PW@k+Гf"2qd@9(]TT|H^}}Q񇆂4E9a[6R뀛:] +Ja3'Ta8II?ɚ+\WKSYBTѡF+^K? Q^5@\(5?CU{Zm=\ٻ_L6c:Qx7YGoWul0cJW}Vb]']}DƦ; q7feS/&qz^4ac {aW7$] y%L AP&r3ejYGTNi/J 2`U5SvִׂZED R^}Wqm2!-Tҹ bB(~|~_YY>H\:pC)XOe2r7攁B)ob*mG,B5\K+ `*vA:f*1s$'HwXLH/.95s2y´\_^yNLRnnn9БuUهjtךyt.gLf2Ct٤ZdRJ+h(c9G(T0xZO'P/CK>珲$5V1p㣽B_ hjۗjEL fBwXI„AxڀV{MGK `PH4 ^UcAS&G1Pr nʸ#QeG'E臛uXTzSF.rC;Qg7=itŰ:+jEƒqLk-'ݷ˴  2Y`q8^wY'Lǵk1a.vܖzotElw ;<ǩq.]]k;uV-l?Ǫb봓N7N+_ئq̿UG)ףu$arnۺw~ivZ[ >7[[oy^{W__wn?V}9 (Ocj\#hOBGҥ_G|HD6%Y͕~76t JAe7T%N0,< ϯϑrV>nG4[X`@{0_'H(Iu$%$ !kR$Ɉ8*& G"MR[Y 'hPQm|˂ѽt+.3X3;F٠D CϞ?2T\ )Nhsڹ6 SRFĂWS_ʗͅtX?RԼ Yգ[:׆-$AYM,c[5y|Jxo|3rRbgUqJmf6ʫ@㓊Miq<ቝzd5eT:$#0Ma:ɢrjRJ(P'LΚ4iRލ N$aHU4?Px'LޙzDpPז$^3b⍝\0Cҫo#JdAE c1=(\X.sx8F<GC&6=|tG˯#[daH95 ?yj%LrR Aҏ{Sf~'Q#{; @Gw2#W؛RvRȽ<y 9!׸w߼ɫ{Z{ s$Mn֕ӏ8ߜs*6ĩ1kGK^+6r]F脢 ; 8i1*ƾqCOoC>O_B! >iگ<3Șh%:*fH|%8XX  ;TȰˬ֦5\SQ&mZ4 se[Ghx&/BfbI3R5A϶/u(e\KGZbTQGѢlV LJ튛MbgWq~@52BHOi͟U$ڊ>֑w7Oދ뗝,;O 5'RXGmOvJ[FQ~Pof~ ZEyEvE9K}1}tRDڿyE_&v2Mdeh~6q\ʓv8I*;m]&Lzگ-^?~=n8G9~PRe~z-iߣ =4.l&M| [7nx3!::mk7mY$ld(-zѯ 6-!>Nw{(g6^d фg-z_<,wGv+C򤟆펩.In؞J<3ӒAǎ^W:K\ >u_Uvf+aq ۸֟Fm&#n?M+IurF.1L= _cjaoWpƟɚGo^@W?zZ0լ|\k7K0k6'd^)A$kx;YtaB ^hN/%ճtX z|gM䬣\Oc#PZ)gb%ԥ %xgv<|7.|"hNC84c/ I_.b@W-ʗBe(X|7⃋\56F-[g>꽪) 󤉒>&9A!.jy&oml, 2y?9iM\Aw/O{'7wP4M#}&"0RzL]롶˄ϑGb]}vP{È43Q:ݷfeq'S,a?t,QJJ5JXGgd:sV)cN59:Wb|wyPcƐ$Y"lbIM]`;Z 8#V^ğkVyΧ.: CL?9C +(hYį1E՛ x>ǽʗZʠ?\U4?2(D#;? %$f!;®P)c86NT?[vXMGD4jж}G<|z #kl>%sʫn=5jn o)}F'XW0;a&0{@ yi[] O7~y|6_{?'5청(Q8\mbOOt<,>vrMT>8 'ω_L۝0u{0wf>.f{lҥK3j:a~w {֣ G= -"Lq\c;|[m8z<}>N&n!s¤/ro 2:˗/o ΣGEw'~ s=7}Sj[vf -6ڵ,7eql˦pcV;a7kT ¾HriDq#ɍ'1Fž^<+r|l6qq l C]er \6P>HkO:%!{<& \ Q~S>2]d# T>O걑M6ThdN$dmf2:g*k$ܞ0P-˷o^Nކ()f (vNv}6ƳqMC tsgv5sW:z$=fWJm*)mJARqSڥ+Љ z3l0}yI_ {b E3շp k\?I!nyJ{)(W*F*֐氿sd(l'n`J|X`=tkb yϓ)[W֦8Ԅ~tcS$'Y m7&>K1!xN茈@tN"_ t L8P_@?,ӷE̊ED-z (=6ЋY)gM*;I?\c?'k`ůuՖld'ƨpC :/&db+T</KvTO洧h 6u֌ KׇlЇdX_="xi D.izSSc4r.8zP2@Tl@YDGQ$ScӠ%)4цz؃`txr ˟.q=q-S?~/䌸m)z wCS/;lKtGSp0pv$䙔NRەs2I߾zf%LB* ;w?뇚l]i'S}G,%p_+ߩgPboa°PX|ī7'ml;5 D_WBS?k~^Q/t9#1 HC&$zg^`\d9x ?l TW]\] 8#<; uO OW&$ g}d@"yd W$ȝ1"h%L N.Gy8ueP+KQ=!1b?S:S*q/V SzG¤̳ECJ$3>J~ :S')IXnD_%c! (ź,HGYjK'?4b.[fA.@ 9ђDc>6~D+.:[DQڶ"E#_9}'9Fу/AM||luЭ⵬$bsgƽ}o67H|ieOͯĄکΕ !ufX [csNj t`)ďԝZzS;Y1sZo̭ eGl 0 7yJ*x T—Nui^$HM7Rfkr($%x.{V:`0WrW|އImf lAx.{<tq9j']Od9fu &-#YR9{dJ&aR:}k_8؉Id{&d~_uyB.?]vw}(S_җz%o_\lsͩGlY4ۈ7 HT!/Kq-@W͆$R@Q#:Vea)Ԧ\/JmLqD2"W~ $œ6f`nqnr 7H^ۍu>d;n4nCx链, [^+^W6NMqj 71P~1=PK{v0 S)zyzi/}Qm׆S$ |m0e|57'{ʟ(IƔؘ?̩X//_Ǧ+ Иe1 \>2aVOrSYgUq36f|, Ж,|0CX"6dj;P7Lj-_~Órf}Nyv V:}=&O[C(j< _E|K,4 e@F8pO-QĵZGe*1B&`e%cГGWû8=2)҄:Wi:ƺʣK_I0YJ$E"^  `+K5<& ʛcC&c=4ƾ\z$*VFCCO}6~aG}^28aD$:/O~T}`)fs`SơPX丰CuCOxQ2% r5ەl=X (.OWZ0e[姦wAl~-"'Y&l:}{'K,tW(tt6d{|JnN|Wu͊J݃$gnШ?l@( @Yhf> *RMSo>wPeo|⺖A(IoҞaU7٬J=JK6j=øY?ا{G|0.r*9OA-c8xƩ7Ԉj \R!~x=L^:}:gs|&W1Vwc4%6U:ճ~F!i7J:S 𢾘0\DRbŎg WrR/#|ۿ(g Rce^ 1 LTz9 WFO#[ҞY$N 4hÐK*xN*L١/q18s~)!FV0v_3\D%GɘSfȘ'Rϟz2o ;)1`\/ƿ5:-=aR1a,~K_a*/7?JUڭq&q?JWO:n^? b^,#i'LZn_05^~%L߷hz`I)S+YqMO;}m#g¤xwHo+C~mvD\| /DQ1r{.]t'i|ٯ[ot[GM8tTݣ}8-r 0z>X_x,H*ڟkv}!c1y694R|0*AJW lcIsks(Bq񨍣!r'a=0+;fm;NX2k3D n; &\U|M!n=hSV0"7sѕ_8Սx `7D?T\XZ/bn,AZ i$ۘml/E7 9aH78),4݄&&Y@ z* &F?`]>ruCO^pW>"u>D*E4SIv&&C ɄI2d.E,}PgV؛ Jk5Fif$WL! ^&"N*#׈O|8MĿJz7 v,9SYYNCh-rB{4 ze/k`pgYbC>"Wlk@'Ȗ83f%q~@_Ը^~ݱZ.st&#nš媾Ad YzkJly⤆̓M/x~ptWtoiI3wUL|b()$ҍI@4Wנ܏tN⊅E/bhA8k,%f%k|(,'(Ыm'`aR?hܞDB! )k}P/DJOabV_}@~=? 52 LΧs.Ei闶0|$R\swa&%C3x??E<Ux!v&8@ $e~q?Q*!S<; ':/1>>*=<6Zơ"ӖS)NLEo{/}k;}oY|gK0We/yF. OL5d ~KO%gUZ2Wk~f lb,S]Ե!|0P6׏OnLJY*MR^ '<"^ $ư`QX+X_5Tt:J-R'8b^?*~&k2qO˾N;碶s'ro}[M:ׇ;P/?MwI,TnrIQe/\ei[gl}I:kfF_;, 0ٶ&uo??O\;~0==3ײUQhyvgϞM¤c;N աm]yt-Qs棍mq-ЖHƾ&_7GqͺܼȜ"L6dC0^YM@H6ٯa6<1'`fVYu2ƪ\ͫ ӱ_%iQhwWI`|9'LId[_O*1fSd?2]Ԣ5&=E !8Mt,kdwN?|/4tnʐEr XЖ>D~!ޥL$t?M_mZ3aȱ17 Jg0 x'?x: `eWMsN|$c$A?`_<YN?0lM%:iF&|TV"_DQ]7!mR;*?lxqlK5vl8OLsn?$H;} jy>lK h "xTtE]+7aI$cs+yNX[$L4yn&=ٕ"x" L{ӿm9'콉\u{*dRDmxٷWG%{i-KԵ/eY,N0@߿#2Yʬtd>/L/28ˋ5Z_ΊbOxk>t|5$2f#qwtl]N.C /r.sLWx1XD?6tϤM)c?R/Gryo"6LxB;}˴ȣ9tt郸NHw:PWc9[OC/~q*ؚnEᡩDlyE4yԜ*uk2uJ}Gl){5b_4U}7 c(C>}.- A.߹"MMYn4Mmڑ ՏnaEHv+,Ucb~Ԓk^ᘹ,_4"-"JJşg5F38^ƭ߾y~?~—.i7:O,a8מuØgQt?U[q߱=p쁽@?1/QnH w&H1\$aRiSvѮ{e;[ .I|Q̇o6 csP+~m u/:߻&~?ٺq&}c|-JMN{vd]vCgä^y|Z&:&71~Md&{^+Ylr|2N|[L*FPMA\\Eoy]DB 2]|K`H"La\r/nRmHZHZ0 j@.].⨲h-qK'Y ? 6|}GrE<\b =;ݦWI(8NY&LG&h:XM nI>cׇ$, W7* w偼K13{OlsAQP3PjfW'9ӿ)<L:,rNm*kgAcYTVP$!l /ģ/cD|g =_HxxsA Uؚ,*V=l41B;dI&[Hs $1vEp5իMiև)Vb; =e:M$0aElXyp&B+ÿ֥vD$xqmu="Ӯ1:M|vۗ?~x} D;-r.]=6>]SF#Dz(#OAA<:ᰫzSkڰk>1?YmusPv`\zRo1l[lsZC>=VI$pbRZI^7^m&F;\S= /ѩH)ۻ+XxfLc?r#DU1:k4x=_vnbN[`1囚Mܾigɹ⋀4G F|"NTr FV<CsJ 1\fQ N嗴vت4%c^IiW=`O tIol_=/cGyʄ$y\kwg6ֽ5wodMʽuw7|$7<`$%PAͱ^I(o⃌%t;OX>Mr~;,{]w>c+ő4aYMu'ʍ܅si'nr7˸*8kއ|_b@-֐`bW鿚6?c ᇉQ1'$?lXUL\Ӊ(#~ Bzo(jZ;·nc]?UkI>*8Cx7jxIW]'NmZ8_bU{EΛb tE D|pxP¥͹Yg͗ǧ]M_{8ZG|īz \_VsC3mI.$ z*fǰ.,$L^2/Q0#}^;GVo%%L|e^8 w]ݳws0ˣ? uX9JcYO1՗/W[VQ uMb%C"Y˄!1ړ֦q]*΅%T!y^qO]->Mi+4PwU~J2g/Iz>1B~_T< u5&^l(>|Z!a4yMis =ƕvNNpI! ",ғ-wX F ]PTwyM+SAf( i r ۠|%xco$C=[?zZsfAv*Q70Wo޹&oo#AsJ>>Xa%IR5u-̕Ե_5<)3>1Hdq.,113:dy"#|ꐀq*&KrN<έs%{=)s$6u$_"~iw$NSM0WV]IcKk(8TTX$ Ho$CӘ$\w6'0[<\mn~>>ֵ2~mkL{)/eg\6];ƶ,0&l-x+7g. 犉7/Yli]/)#]ȩ&.J") >lbse#4γ5MW}# \M|ܧ&bY7VVHn5]$Imzhk7I)}\էO ,їf[1DG*$4g$\p6 %O){x$] \E<&i%u5I9/ [_E\\@m _!Q[goI$$2fj-#7,uz Twtxh|1xK[5^SuNe @eFn! τDR//禎I^mOY1Cѩ{q4Ҕ_xme2X(WT:h"[ѭȯ <ߩ˝&L?FKf3>JWۨO&Id=ARwm$$L2𹫬Z?o# ~ѣO[*, 6aߤo9Hb)]ʯ1֕}a{΍l]~P4 oL^{ G:z]JT o?oMۆVƞMj,CF)6 F)"E4D_EXL}3čM`D;&SX1?.tާmL3Xcltɹ~s_O@}s/.xM8F'hQFЁCHēWa{|ak(E[c(RUGg%#>CMu\`n#Р>Su^u,~".PVdStG3/_oZb )lq8p;.Q>wn6LnB݉Eb;vL3X9Ϛܰ]$Ln7YR,=aR~;Lz/Ms>^GΒy+[ SOv¤w2Sdf¤;΁:jxwz;7s8OXͻ<]ʔ'Yf'ݖSyٳ:O_>+ov/}n8+0x:??l[v gumo5… >7Kٹ_yg*aۿ'bz/i/dn6N{~Xm\{c/eU,b&/]|ZvQi-p$9aҜhq˒,$XUja>Warq=.XE֟Ÿ,|zKHW"'ۄ|}>;DYl9A6E,j}m|vPNE,Իk)0SpZ\c5DIwZeU?JMH);! ٵNŬ/7KL553C(XZ>.ף.WPw؁G$ Y_UQ<:VјQ}+A(:fy`yzquEjN+tqR+i6{ 6r6_CVJL%W._#}c8%RWz_tqQk7Gi7nw=Lʯy8\z&3rM5OEӾcmRVikj{pt^Kت޺Ѣ?!Vj?4e_ ZfLn50Ĥؠ>*5BEQ 4V 鬹H `*O^:4ar*[܃R @O7ԁMqcz V1MG~-$٪q~]YeUh߼5|xp6 Ķl79$aGs7$L[*K|].eP^9:"A@\cQhӝ3hZ&YWzXKԵs%+{36U,^]_/zqJVhmΩ*ě6&Ewh[sPoiq^%X/M(Cy墧uEVu7S?ꌊ7S*L5&{xK:rO H% JZj%:x"W5 {G񫁷 ,F`%(z$Jտi3歒%wgL~~rr9f0cČڱ1FPڥwdZyiN}W>׎xz yuM9@BbR<9SM\ݷB~VM>'-k蒔_Xե_1wv1XL_+X&;x3|wRH6Jiq@ulWcG~eC~rNiw$ʻEK}ُkvʢr#s/h19nc}߮c@1>8Fp>7,iIul7i($Ljgfjn$lm&{7[G!a_"0m/&g5WcLG Ac=hqq7ώ7"G.0c_|ŅΎO}>b3ړ~&MZf[cM n鋿{nn qԱgv9N̎ /,[ bI|. $K8$\D' -y\}?i}";2BU] /O"BQȉOBȎD_vZ?;| ; ڣY\2亻$eIŝdW NH $:;5 +gHD8Eb]߾~g ?㱑I#GA-|-m0=ײpu{w̅Rvv,YBPV$3Ydl2-E*Z4sv( 49ӗB`8bi>!0yrg!#?J{ zXC{&MܑcB;6HcbNh]$4tk_<$sk}K$1I8w!NH9:=qzv_={beI>bѓQAo2q!0R:-@H"(d|D"!Mmq:Co^, Y `$Gɰ}])`/NeKߓR*QBjc7\uʤzK6Z0FL @S2M4j|iꗂ~sm@) Cٔs!R«7._R}K~0d6:J5i sI9#5e;ᷫg!a=]c^ a1%}.)Muo ]Z O) O^l љףE r quHO\CI\Q<p>O(Ѧ%}J=d9f8M5pFD InW|O9KᣫpƢRTy{k.]=NeLր\; ,MM>iǑHFLM ~V2KOEqEhu"R{8sS&tw OuEYr5iP$]_kJӯr/{U!oWؖFS /`|SJwGҗ{_R~IxTL* !M+gچlvGEkܤ=BLFͱ6hpRaU`cT)sE(1;Y춅Џ ?D8{b?V=5FTq(5 }{oy}&vG!YR/p09;w;L[w^ߘ0x}v=HcvB{ g-arv\.{ԯ&ۭ<¯)ю.]~_L1gYeB~'Ln.5=. S~60)? =t5]MY{i:MHGsgH][%#duxOn oz*x$F&>6{ݰdu[[VDى(c{Q^?>C̏'>%& ڜ&'K@eB]`"|[Ӷ('_1/Jun916@.-$E*zn!Wq-vn{)e=|x͔m2j~/~׮PQ)|ם$aGr&GɭmMrUmέgIlS[v%LNf0`x|0KlJ8#~WfqqFI+di!toD/[=$r6Q.!I)Y|`˫sWqR˜Ik[Еr{|,[?w`[& ObWs`"Mʸ0=d6\$'* fgԃ.R~H@ p_:OmkN{\YsՕ>z}I:ե55~;c7ey?>:\zc[?{ÇNwxsъU̼ 5 wε>O9ڢz"q^"ݪ^}Bg}vvbWb1 .XҊMbm>FvYW56̍Áӄ$8ccs}E@oa~*VBto|8ecH#70SP+8F,!}DT|Əakt͏}bz?ݿw5BJp;NvDRa^zk|!c>/$ eQa^N?K_anWa*ƈbcʠMT9Q!tphE\ 5껕oZipԹhQ׆@Ro{`2^_K L){IS_J;^ѣrvŚ,̉34I{f;'LegYMbvt??XK[UgDz=YN%%.Y'Lg#=[v 0yÖ09d[ǣ0}o >#a__fycDa9*6nϼ9WGEp'L,z>}ǼM:qkÕ+qǸ}ĶpYq Sh 2m~'\eycOdݿ-v^vn8x0Fux쥮1rP6;?̎r .8+ޣWڢ` rI[&&rm} 8IKF݋QL4'?q*Sΰ0:'I&gt q0%l/ݏr:eHƌ<1 مT3&!8K|Gtw]mu&k82u43utL;ZNyjFɎAXCpH^O T8XJkOcxת3Ի5uAzXt!:(N*49h0&ɔ`xF"Da V+?2OcU _iiJEz?Ǧ4&D1n``Lo.}/ĄeJG͓mxZ؞SG^` ~\`kݖ$35|5G lqͻ-BYmK/XZ-sK"թXQcQRsmPsoP#".gAgWo>nh:kГ$^Lvp\o\:smv9 ݇E.W)&2@'j1a_9"@Zq'24 5Of^Rݼkջlx%vWQvVjxT׊nSZ*N+zK<:͡ܣ]|ˀ 6>8*KqX✏^C^<]O%A.2iZ)6&i;3; ʥA]ۥNu.Cz/A+E qˇ%Kv .KU/40B{1Ұ(- GiU:壎- p>iJh8)Qq(nK6pluF_o&^8Җ+_=]:2KKDI&G\ZqLcޡ>1n^Dn;22'Ϫ]{c,x`ɝ0Itq=0&L51w;&ڢ>ۂlo|cRI'L.':'LSYQ0a=LXv#qTl]q΢F_o0Xf¤cx֭Y.jf(~_/B]0ڶ݄I̓]Eu8p{n&ݔ>9*x z~R^ޏo}oY\rN|,UR Da,becƅ >lda>K}hc8rK@IDATkl\"\\uwB*,[ ,S+Y|닟J\|s,>O& [ irrR xEr}DMlSHx, z^.6F67߶8Iibg[̋4RtŻK^$wu$L~FK$xO8PURǬk I&K]&cYN41.7Ik1W^lo۠-wA_x:H.Yqk>cWUvںE.~0_Sۇ&0dæOPIaIjnQakB`gp51'4N]lj)H<7qKuZPk[Ŏ[Řxeu¦l gх%:~J '^~mh4s t F[Cmp[eğK} ebIΓ]EډUJDMTjSSY£,h5YI; ޴VgɒG;c*vI:To|)w6% EQ~Muќ5!.ۅ*3>z7L":$ϸPz#(ǢpjG,^}7&1H?=n/+ QQ;kҥ|}\# _T6D>s$c_.1n8eݻЯϢ/z<X:u쁣>7,uDYy=zvq"tq|YM~j)Ix&KVz¤XR徰GrdOڍϊ a²[VQwQ}>X1n ^&aҿs}\>wl-Ac[u,˿/9;Cn<-0yra?1|ӟ4*w n?ceb|R|v0we,x'ITN+.¦X`&ƒU ,Dj(xKrAj&1nvΰHsҤ:đH<@4\ C~bu>zߥ2>3Y2R~v:VT{ Ͷ5֭dOH\s.So+Ë8~=ІG.$ SGDﰘ鸪1sLhOJxatY(Huu_V=QmЈE.䇷k}(JiC9 fgׇ׆߰S֏~xnj Us#JrEID6x-@ࡏI0a?qxTž,,7]'KmHB\v ;lj'0kq_^/?~]#mL N4Leaַq>"x.*d B.;ښƊxj|ɱ(YXG׾;& m| T#Jŧ9qq?(C~ݕMuQgD0hDŽɮ9ɨ/RM#O+]5RtJ_r| !+Q H&F/GǦJoTH9 V['TR5v|SCA_;VZZ#Ť]b;|$&W^c6f|T:<7ܾ` y9&H{Q+|վt^".u哫Iʽw;Rx]ERn=;l}ۂ>qܿaw{Wo CUQ׫7tsjtϝ}S }!5Ưb'Xz3Ȅ91m+G[$Ǎ#AG Sl"O*1_>~@|"(X겺'͹V8NPnu˛me@ax15yTX!īom uW۔"ȧԚFV~>sі& g thXFXxŞA&z|&GM;R=l)Ǘp>˗kNܧK|(r;~ǷwoY|88Fq䁝K0m>N,O&t,r'Lv>;L~ѽeɿv+7?n%on&L+_D͢X&bw]~y.-xG?G a{l׳sftitGe0uf]uw?+WnzowbߟggmWvǽ];Gr/㿎ٝ*ϝ;kzdy6ucexu/kGuotX7+sɷz  $.d8n:y"5vcPI 7|EB0s,4,GZI)".;] I$[Sm."eUy$K0&J$Q(ɐhtSg[$1jB{N<9P%D6M\e@w2rI7d_{4|B v"2*]P/eb|Er}Ͼ2 n}׿ܘW\ث.Y~+쥏$S.\jҠI)c*cYxUק0u:3}A곍*K΃O~ɡ,OC>F!boN`*ﳫ$L.Y {ë2N}ģoSءR, R2B1bgM~dЙq"ФC+DqZF]575$tQz Wɲ ~4pm& DTm-4eȂO~"*$4K롮 v@g' ?:<&X׵V+3IMfߍʙO~4f4y&g1⪮& 8PLPpWd{@ynrݮ3զ%LBV|^>*۔kC% ⷡG1;b|~Tda, }'2(rsJv%jJK|ckHoX dk;]wD$W=}10y,?'CŷC^=ar x>Ý{I3\}7 ; ̽7#upkE4Ws4bQV4 -I/{$0-]YO 7Q16ÄI}%TSʗuxh*3XHIabKdFFѕ毢s~-F&?:]3r=]>|xZrbESpfwx4_o|L=b87;Q2cc0 0n ?Bq-`*+,/ɫ(;ƹߏ88MBG8-&[u8u:v{}'Ў њ"wcX _%cx}q!U6j ?xB{ *Ę%pw.+ՋhʩkVbb<+(# Eو:b O`.1jOSioE}J6g>\u{%OfA\_g#u,B'!?/3d>Ύ-,|cCى';i ǟ%+UW_% N[xjm72hzy8Ò"IcQ\eEyT{Hr,ȊS _q{91* F' #5zBhT0sZYbYTVվy܎-[V1߱=pc^^2~/O~ɤOO'\'-˞0w/%L귱vKخq}ܾY};2Ǽ/[*Xչ|=AҲo"6 WYZlE?se1`YR=3[z:߼YwlE+لɮclGs %ŪaOHZ1w~Tu_"/xFCMWFC^Ȱ2T v\>Ϲ hb0+{kUt 3?"ޒ$-6)#jiM"61APQ Βcs|I}#Z¾FäIkv̺Ε `ǬH̽{q4/qsGU]W8ơqRP&epZ5X؋ZZkxQ- }Ƀ& et,~'@Fsj3r6 QElsۑEeA?Mk(첝C4]NBE ;7iI`+1:Od 𡉌]ocXו,lQXO>*>KK3LfGgO},7Sp<@W}`lq\ I½JL=z@w!g9!'ojD )'.OQEw ԊiZ x'+du)X$"iX`> vq(eb5$gb\`nDD03#"*c[yi>$Jj=)S"hf>rl+kLlERM cgQxU~ZBIg$~^%]&߼Ǿm9MX[a*χ[n?O]92/Ɖb9 U-K*NiV!(S^c ~?~f새Ji2?*7q|܌g%MP據ᐊ"E)wtho3 zl:ƥ/o<鯹Y^!x} \J;}wXb6i7F uYUQ&«)v1ĭ̈́ HaMW ɥ;su 행Um< mI?4N/)byʎ ~M;=zbWwn(,>iO*7s9|[ɼo[8>1x9% #}WvجuQ_D1n_5ǣͯ##~`ucMei$9ח'1e522Q&Lmw~^q>ݎfy&–lGb$~=Ǒc8d.~Yt E]Ǹ&oلIeu}ׄ^lcoqH5Z,k1;uO}Oi]~>|?e/)Żp1mă:[v~i:6y4cg-0tԂ`̡V&PMM:&Z@\78ʞsecbY(e:t#eFɪRڤgV`G4d1JS,o+k÷*=En%)C,&3%aE)w߄ϴdU0fB:<㟏^%Kĝ y$L'[0y ]S=߬S3Dŭyw}IܶLgLbXQo X5),Q.{N0gH2sﭯÖ.63&} lN -U/_v_)Q=y!!bJ{;|$KdO4r&,#MH7QE[5vo/O@w~]v7?|θx) M,;jl?|FOO~,I)IGK?\ EKbꤱB]Zl]Y/L>NzGO$(Kk~YhKM@$1jH 2C/"5{_yg988ZʆTs틅^`ԶPV(\5ӄ_Jm{G*Z4I_)՚V?i ;_)VeݻÇXk7oy}ИLD5b,Ν.ͫV˷N/'_]5\!n~q &W}|GAM+vup@sݬ Q8;#%qDw?@S@1MЧ{6T >X\{8+>!6c[WwU}K&C-i_} Lc[|Ou+2JzkȖͮNhKpP/'NLMΛ ru͐\)-J O럒O~7WTq9dZG&+/Vއ1#2DAU JT_ۨlЅu&*}J? >}\Ynoןp2c JwX֜Yѹ$_Vfk͘~Np[ydhKś=X& i-ZlOXIB +EhT55hMH#QwNKaQgBQ'x~ M8 0 Jh76Y[wH0yH@ ,<zI]\?E2Cs 9?}&MՓk]dؚtĝG]6kg-3Wc/G#tHx+`֔LQFRxxLcƱ-q2RtP;͙2KǎlSJB1P|῞~{4 iM$AMJ6`nä oQT1oy-cHK Yl|^97 D mxG-]WT K~8kq'5vY%irέNK ?{籢> 7YtH#AD8#/ߚJ[(Ɖמ`qӞ[? E WN̆#J|9>id3U(KmnK b.~NT;}h1_휣"+&̼%uEvD^ڙxE~)-P5*cc@[4zNt)T9at $q[Æ%YLlT'?N&b!c! oQZ8G~ cK~(.đ 'l:&ҖJ"?)m&p. bNI1FYvt !y+6XisO&ȦbǮ0iiqB$ߤ;ɝ,^xTs'&s7a[9> 3!F8)x!WiZ|;O{ -囸iDuѮ|/qeWKvԯTmkOisڳ&GgH m &Gs] ~c*1c-6{x#WW$i4y;8{J8>/TO O~8*Gml~gB; UX1Є7RTf۾$ֽ5e%|5<(=z&tvu‹n;A|~{oW,g|3nf}~Slp{X}>^WلE&;ü8nlv|&C}1(__،gn0o{26w;zݬ{gY> K 8]&-݇|m߼#`\GՖÌ0c8aެm'edC<3,h?m1 .Lv|nP|xߐfΞocۊf ]׾nGHv?ct}[n ?'}]F?.Jvx0,kAcooq9Hyl3VtiDZR0j#|KIʍ.'8ұKs䯾KH%QV/'~>O wX7y> ;`yB!Uc5q{+BV hJ&~ȐiWDg#oBovDNSypBD)ykRI,~u/@ؚYԍ>x/++rJ$lh T+DoMIgThs{ iItrVHgNq4Fnܽɫ$q?&O&A-7o0xD{24fKz$6=ű=I77jZsB#dq3U=$Ly]oyrzݮՒo_ ؚ!'LgQn3cc9VzғC8GeaZ?悒iTWBO$_Z'eenj24iSJV0N$ y8M~Ox<gO/X}hls~G㽓4J$r66S+چ.V@5F;t%cI/_`j}lbtrj;ʓqzH aiqTp(a٨nLt)}  J|VNaC(#BS>R1#v򼏃tzkyb+&_q~x*Bp)G:0S;jwBm-cj[IDk&G#LhDsQDYv>LܶmM -%XڰMۻ䓺k5mt:+DЬ<}F]ioe&Sʘ80iX~h2 \|6Y]ᨰ;FBk-AyOQva0 e^QD%NzcB}N;wGp<3\]Lҧt,-d|"'{ehBVv0mwپ>[1߱> sK\Imʜ;I;I(S˿Y¤~NZg!aRŞl~{;=aR[ޱm=޾tS[[mt,e+z?Y6^{ƍ,QݶԞBNh][u]8a7`kA=]9@b $>K(?I胿S5pw5$S@j 3 VMIlzX->ZOho&+x%Ć>y|- jpPpQ Wm_kN#ym9[fMܟ޺rk޿2^}.͸F_xާ,NUe= @+aVcX^R5J [쯺'~ņGB8^QuUbv Ayu-Z(]^=a4&cA彊jT|(3c3ŕ Hrҹ5?*+qchp1tSloIꆏ9^B ?s-ɒ&MZ5RCA헸 /Y[zɰT1>1 "q"F_C;3hNvW^cz'!k/Ӗ|A Wy2ho/?`z]5CnM>8+| d-{Aympg]g_0y89_%4GΫ$$ y_kdI;ߛ.Cv|9ұ;LǶï$8Zkls,3V'<[S\^ȾrQS,Ls}I8sU'an\Z2lw֔Ol$fUd[u, '`N&ŭ{P܋)t_wFA{7MtK9s9:V?(kaq ^ }^gskkYvX>Evɋ@w*y~M1,I<׭4>9C)&Mߚ~tI'«cZ6Х ~ pf>;_߄׏:zĢhq/JDŽjq2p_a[τI] ;7V1q"׹ٮcH25s} ~~N򯨂1qWVoVe yNAwapqmAǑCr9#5щ렃Ra59JHQgK(!5?4>&N3`y,\U0F#chxd>։ Y>OOV9@ eU-_uݳY`/b[A7i{H{P2O5[ ʄu%8ܦ yU>HDl$]IG.%sKWTCOe;V"Rb6Jh%+*gu/xk@ҭh>ov; x$"w}?ս~-iXA{e1e2> &1|&l^xe? = pX|#{<,x災,i퓒0^y啸|u78&LZv3ྎw~wf lg䲾_"l/}jYlmVrgV8zoWvѯ_LԶճnaMχ]E}ǖNWٮiQlŶ[_ _ݯtL~*&O)Ǣ—s4{vi?l?y=>f+|kl/}E~7̫ݭ?hst~Z:<-{'MXc;_^I&w <,]a!6]qQ~#dߌ0? ՗1Id—6!, 8$"GYV|lj 𪚲ri$ϲ5v맦YC=L}=TvC3=n)&iw'"_N &LY]UYA.y{EVӿ0nWy랋дœ.7*e^/]S ԛk}kcÚp/ݾSj/^ ~v!ׄr {*un;)S?Nd0qYHߥ$@ԃ+&Lʮ$xy&L*;e1?1^~VmܨrmDk8Mm3Z=S54ucF"3ѯ-ДSE6;*@'6\9qQ$ W!z'ҤeC'A8Y&'VUd& 8KU"I1O2jњj* Jq'>Ft_@IDAT1NQȭ`6+I $B/gzVS9C=Zsncp㘈,N,ؕ:Iu^;>^Z%^ M54_i =CZ7NeO2Ex@b;#,䧩0J>(-GcIAN %1>WeX}CJܰQ@ Gtנȿԝ.\?r8i8lWr_vcBbdvHLoߞ~.}0]$YIO\} v0DX?P?\~q'I/.߼_0ʄ5&(@Uh] &:05AGF7V6CKlj$pNys RTae~a @JԇڨOXՅ(R|kV(EN[9.ijRs$ k=vgΞZ.Ię.y}z5vw39J2tgUVy|Sk ;Mj'E{0WvRE*^$6Ti G5@!g<"oYb',e.xkE8'mSY_sr?K31JR#q_JW+;8DZ ;Mr-O OI؉]ˆi3k!?3 &=پZB$u-EXb)c/jY* xgcR1KiG|;NeU9p kw = z+ڶy&}ߞ%a;d4߿;$'[bh>Lo |&]&oNoܷ?xϺIuvZ6a]^ߏ-+ar;;"&ܝ;wnۄֳ3ب'7Qo ip>6G>u4|V:Kyڭۮ}ד_};ϕ+Wwy'L^{vWO[nuXt}zTz/U:E,t6.xIYX굟cM+mf*Z ^(,x' }A_WL1&Da*:ʆ;)/ݟnݣρu@3@fo.8dp]ckzЧu W߁q!y>*6k69$\Vçs@[]Ro|ҨgQ}:UkPR9q6bȏ}µ!nH8 I uuԘi}'O^KVgdsa0FOuuذi?Qš8[:w* q} ̼8 #9'BD*Oͷ3mᶕy| 2+WJ'Ԋ-4d=5(ԤfhC" قP~&m^'* q;1Gy&i}5w3ުy>x'n~?ns&i#0š6qa}>K?/MGi㾩Rkl(JZfAne"d((J% ,I d, "üy)l\E/iWWd7#ʜx 'ތ%:fYdrùp[gP |Ϝ,nZV Lc\?W&;I4o'5}pt}#|r<9y+o,KR3m3lLaM%z/a [K^&N'Q_dn懭hNbgN&k^n77ۼ7ӡqv?_k??&ұ,v/{èfo[i%[6&voymz&ݑ oaO1aO]ʮ꾝l߯n_x|zy߮}^]ypגM4isT'iSww> :.a9o7n;yۖϷ:a46X +/dhH4FfYXaW/582yEKV_dﲝiZLkYHZq1PYlSǡK- miM"zT]< | +y󧑹q\&cHz/]2 TLtѨ_}3&  M^[8&!qރ`^3pX+{ūzl2F$6I >BW  ~"i }ّ+56JSf$_Y9E򃸒]YTmģ#|G3 HnSp?{db{c'~܁Yqe)]Tc(}Zdvm&NC幂j2B~@Ei.& h^[.^ix4\ww3֍C>KsϟϞD/\pzᅫCOHx9_8ܽ)c~^U<ZS~Q/ja 6.͠\?oqQozP0hI)ʖ%"o|\ iе$ֺM0jѿvKԱV0>*O7V[vN+zĢҳ[%.A k$6)I~i? 1^ [cfI9W%`HoZ.ɿ%i>wl'mcp ⑱dSߡm (Tq8?:WS-Cu?G=¸QSKS=5G٩1|lt3a$L—iQęc=W3Ih'yw0ywdI wO?&a'G̍+ 3s>rO/CidtIƂ*#~զ bv"?f^[--ڷEo[zyI:Q7zo_kމp^MrM6uH22?.__>O;LI=KBT u٤n 0' ؿ%W.krxb>A'"Ih兀ݱ4lc(P%yS&\o/} +׿OYx Ǿ3 d <ǥ_8R6fE4sޫH1EEYjwP:Q}*VUf߫f!Ŷ'/T)#mh)vlnً}^%OU4 '!@`W_uKƫ~ h,w) pE,0䂓ᤘp zczu&i >Auҫ nEe) `Psw'>27ea4rlcU2CDSM[_~,faӷCW}W|#>jhbo}3:Ic!7 ( x0{jz}*"&lnV}bFi(Ri^0Su Rߴ#@6*@XI;%6I #,L$ჁERڭ{ӻWnN?&a.^~|6;d]'n#>Z3V;;G&uşCjy%_,vX$xd(=LL(V4ѾmOMG|`xVjbxdwrF9\ڍ.c:PU!S:񝘬y˱x1aGC1#3d'TD `>xAG5R7nuxWH]=P ^*y*ai%ϰ 3~LURIR&īa |q%i S _>M争d;ޢNxRIj] ߵM+hV9qu5}Q6.F`42 ;Lӓ=WKKkOYwx͚(yݚO]ܧql.o[.^~o2z%Fż}2xCG /R:~rN8M:MUAe' wdbo/R2>z;%أCk\gi=tG4 S<ˢ#q,,%<d%ҹpJ:/ _п9s8#'I S~!O(P?ds[`2l`O͸1 Iogau1N]>-T_*1iR}Mxj/v+JOB;U<F\}pbl'{~? LDh1^)c@l?E?wEz- nm }0;LʷKc==ڲym+~S}2Zσ̓=(?9u}t=a/ɏ{f1iW_ /9<6]&?,Et_%;:Ɨ,ٱLE~9yq~kQϧQ*|{H ݡ7?~^ĶVm՟vWHwl9 ߉~^&ۏgx݇;M8%|nkYL~aIäK0Ժ=\Ly߉o}'tka]'L,qQ4 ?NYwAMˢXӰ#7<..xkOzl$yJ P\7#ZrAsy.ݸ\/%@2JJ%I EǾvbz;Oj+ I$:3x]v=v#49mڍDBLSx7h.޻v(ʫH_;zs:Oڍ, D:٢խ, h.ԥAu %̯,rٙ~Z-I` I}Sl_*6_ .VDMC46}[N2qSjIVba m/ґȎ&H䊉%Ƭq)7_x%mȮʼndJ}L0$XeS§B3fE S\5>esT/ }(pE˗Oc^v!֤Ic NYOo*K$-F>2CwzWt_uR k i? eI!.5h^k+AAiJpcq8XTE&u5s%[7eɍ<@EbX6sɠK´9*VU )G^Ej[٬eϦ(tI-hۍ xRL#VSZK#rWm!qNN^z.ln}o.Mt6K':͊Y/`cJlf* =EhsW#zO1miT cw~? ɡ3a.iNnΡ)2An67bkdaDv?IL¶*G;&c#w/rL${o0W*2]>&@BUvw\#|dwpt^|`_H+/>K;`kc (5F:tJ>c8-*B.svDQt+rk^iJ[| >3= sp5虫EM> ,bz%6VŨȆ(m~f«2eZJzQ~4rY,|P 'OmmŷtTzűK[(U à!u F/}g~|oUq›oێ<N_nce/<_~c-c 0}Y??NZxXߎ|^ff2a(arޓOA{X]]M£I탃J#٩֯m՟vO"nK٭yy Npy>E[F&Hݺu+z t7}{') 8t=dxJ| l4fLsY6:W_+&E,8ѝėTcqS5/(سJr ~1.\,k=;8̊6"7W2gCS;k4E qd$]l2zZM:KłCo_)s[ \ZcX]='_uQfqǺvFm2䃥`MЯj'q nY5FuGk˺ PD ţq^Ho$ۊ>seR x˕9/\B&W~&=X^pI+Ĉ.ϒ4&9Պ!XML'D)gU", p [v./~$?CM^[0=~]v1]yuUN5tٍnޞ3_a'c[~1XFE^8WەYtWrth8җA(eW&6 W+Ȫ~ewccU)C83k׸/S%,2&qY_fD?@P\+edu .~X7`Y/זMU1[Ơc %0 З\g)}:KB32q7}.WOȠ՟%+}5s'u^Npce}WÛ{3~CƮp`rvՇ,25"Ih$ta@[1&!lܤ1GEH%3N9. ;{RV`xEWX^eօ 6IԎӤLyz|V~7KIS >v˫FKpF-t\8}A(12L#thIiK|\㾝Ag=G(RI"1⎓t,ȓבXGdGT翊)G.|?(pOuy_QÚՑHJrv* {(̒[}uPKyKGd֮cP#B?Jᣝb}( WRN1`C= oW:ҔR<6O{#mMrW fIkesH얽<$l#>G8>ILg/㻗dwm{W6Uq&Im//cwcnod3iR=o}!oq1aRY}ֺ,;oy^.а/eoS,%~L|tΆnmgmGE{Zes :^3z~ۜj__{3;lGBo՟}isOΖE_,ڿ]VVo>z^|Vls?BHe?ۼ8&Hݾ};(k?&\Wuoqca0vuOv'tQƼB?o=$L~2]Hk1B{SXVɮo3]?]#FսK'I"8 !??LK&.G |vqw\Ju3R{%InTqs|!a$5nw>=ov._c]f|}YB89t&lj,C(0떎Qmf䬊֝o,(phfDbpCd>4a2v.gϭMkh>zc=M^g ZU +WRK>o-;MiɏH2|#v I0d;fyVYS m>7 <4qyԜR}&H9GlwȗS&>bbs) &l53}3H^ z6x|xK@93[JUڨu&orDR aQOE^Qx Q{J: OyyC%"d-/=sږo&vkagcn W5:V<'G,0vRHa_CGwM-qc(@-R4 t57TyzN= 188)6 OCǗjAnbCBpWX?-;:AZ(u6dLc!@O?1#cƵn}!>?IDЫ*{wr^O^|8q~>y#y0x`|¤sׄIgpI'L.=̈́y_.z *arQo~󛋠=&YL Ee/f􏣾0LGq>|Nntl]wr~V*fU~l9J|ԣ[Ō] Mᱛ yJGH\eQIm,gW}_/VGGex.v7nL.le?l|޽6<( OOa0vu:8+g^eɋ` "38eJj) .\U)T o.3KnUOܦCfɂL<%;+iˋ.WN ݿ:}9&uεX Y$'09njb]WraYW &0y& $Fu5^ P*[gGž&`HXhz#cΤ!HX6^Ĝt;% k^vѳt!w.3WH|dI2a2 ]}ODpT0@;L W_+/|BqŹbv7;yj=0bE,, ~Rx\0a.Hbmy.NaIϓq8;wH&bqpn;ޥ뷧/ߜ~|Ʉvե`u"B}&gxΎYerrT1RGI/q88K٬U]F)4QDVLc4Ø*1y.R^~"rs`Vm9UɄ,Iat|OHDa/=Lkѫ3cC#3JU`aJ_Kj1t#SAmTs DJKJqdo9$>㰃?F !ʏuηincJDt^q)-EU;qQgl z ۵%-ƕB4Dh\ `&fbYw#afqlӾµJ7&V2Ip4Io 8ys}~sMծ Q/@\k=ïs1bDr^}GL?fG˷Eu$Mxs˩. >¨X!xF:fh>0a*BPJ#XtGm @EZUlv1*N~׸Tplk=GA],f?!c|EPĮ[é'|p)@ttYp힣#lKߖ 98|y*\(X?ro8D8鐪)K$ K$ &q⎎jkh:RC#-?@px;n$Y3x9ؒ圿&pU+Y5zt2 Hׇ>sxrU3phDGd L5JLm!?ȀֱQ8)aj[v&Ϲ'(*x*[UxF `34!o/=cbvەea#]w`>!; }1SG[_6'HKF zES'_bg_yn987>cS޽˞4X.`B{$X>5" p^Qb}](B=ڔvmw$~Ũ#:67ô:w<5w]xuL>ܙ4'u$ߺ~gs.q`U6?O޿vt_~u("~mq!I𭙀ؤh;5v\)mYpAWb~ɮw]%;u~.Jܤ;{#ĵYgP[>8 \$.y׳c t{A>ǩ3WN~+ūv{t 3nj8䬩9C{qP[ $(q}Ҷ$ k̃e> aeg)*=WJ@i^ТX;j 8҇k*AhB:Yaw{tZJ_0Z"A: gڄH!FҡK!KOɆ7K{bIt iSǤY,kW d%KGyH⳥k&<Gŋg_E¤H^ ܍ىȤAf:U^|hlb;۾n}?"a5}[?tjINsT8~!M_ÂnUk\C {d'E82bt7 _}6 3s~@["x5\Pȴ} jV*Dz88)igR?w?9{Hl$:,y: w7}noV.a?h3h8;Rso=.I<}vm:kt{Eo\<OwLW7%BP?KlMs#gixrAq## SZѯp")3Gm$ vpuyWjc&v-(׆j~~*TUb]|PP[wcf$}o6@$nptP1G6~&OOX@!yOvP]=!2Pf%aȪB5wmFAm*O[£me%) RGDPElviN ʷ~P|^4KDGox4QV]{H0EO=ۅq'} @*7goK3}zYhȦv̯~> ;K39#;WTjEh=-"р⹒xV{pXBH>Abvەe+gOz¤~j3mroyOEмڄIy/ݜoLXۺ5e8 kܮ?sۻ,qRuo}U+ )󴻡 w&MZ߭qL޻)}{ }vG~3';~ӧ>G~X-\Hs@}Vbi E?n_V_M8zF6ߓzX/#+nn'$\H" ; v7̅۳)gVY\LB.YY3 c?&%)pkh](K^#$3#4X/BuͿge&a +t2STSc;y<_]t$ń?Bv'_vdwƻ0ykz>äRtLLIP8_EX8}rgi۸G1Ŏ'9J A%[ }k~b,sX}6x> Oӏ_aS?A wUJ,>&J$ ЄI74IgLZ9dh? .}s.".3x@%R7ʃ¢4dcɡ>j6o&,$I#gI}>:E:r#6,UQvDAyQRW/ty;Z\]~K#~vY&u9{txptoܩ5gcg o{Wmwq^'aWtY'kfgTvR}O/^~ʮo|܅ h]їZN-C[/f U^t֔tBV6~-7} V/yz8wЖ.INE F`Z]^ ^ |- Sa4<(^حNSFQJ~8.= Ѷ9s}j_՟!G`)!by~Vf &;RPc?01A[Ž-oԶ[,k]~=-?meai+}k{o= 6nOݾ[0+9w"#Vۧ[)?ѫ8+0.e6b홝O:(UW\H0BU59[wQ. y%7uwtg<= S)kwv:'Io7 k.euFkJO4 UOZ$DAwGM^}Z>/]j^L¤D^gWC"`0K?x.BAT;΋|7!ӟv \;~HLNĸJ/|`< C'}ÄwI`zźId`i8j8\'.p iM)ڔdOr!R./zbؑ0ƌFnI~qU[١' ƒL~Mܩar.a2k靐@8_Dj ] zVžm-'c H8џv~mںO( SGnHfzfE~_ 0f_ -kOKҢlKݰA}, ȻwWS;I)=+&m/N搗s}ȝE*'h[jx5Vֆvf9ԧ3GblJ930K<.g8tDn.5~V* {|v IcMEC6>ڙCT?=$JT=MԲ`SDMg s| &9bq#7j+6x->Jcʌ_RyQ ߐyLg$LlE_@| wPy!]-ƙg@@73gB~kr@: "e [wϞNNWwt|c\ *:xDBcd`w6n/9gu?=~D;db-BbFx-V"4(~0q!2#ArwiI/Lh4<,lEgZasƓ\6e '@gpx9\FǟGpgE {2/y6 A%gnezY0xFxe徒IAQ/U);`Jn>꫙G%}g˝> ,; :y7vovWyoy=q}uq䁟'߫M0FZLl޻Ml:&wÞY=L4&qt6פeɍ-cɈx{8&}ͺex= bٟYַzKI(OGvXNڟ{z̆ς}[ض{0կ~5Kdg.O.dv2k x⸳ v&NΗEž]l?ar{_?={wOKý^Pyqۋm*ƍ]ƻsev/۬?lsè2=uzXYNl{:-껨&_~}ӝWYĽ `RqDk n.PBo'xE٢7<fעLpJcLXQ4rwE},%!r~$tn&0ƝdW}2SOŝHmjCQE$I_Lg% |Z휢t?S1=d|%n uh7I $[Xkz[,Fz:FDFW9x JcoX~ɇ=?JWp \)0%{㣰_eI#}hl\4:ymqNňcTy8]Hd$z˅/|Sz'&x܏L*p<^*ףu*-iUTkn+,-aE.4SAlj?|\_m Zn=ܴ~t>;^pUTT:"~)4)$l*ncz ;Z81 ?65o~xmN,>}>? L= /b_ uvbY s>GC$d c 9JK? 9lR%ت; 3Y;U$ Gf(cǙ?m-7:_]-j- An?WX]Ք*~R-_WFm64NNdr1 ᣉJAh))Du ?i]*zU'HI/\A4TG_mt_#^x\W`٧zn 7cCCTCFƶEKY4\"MU35׼Z})U0 F%Ԭf: q.?eU)sLZdU85//6ca g)l(zhZtôH,Ö\vGAlۉ{Pu)nu[ILȯ?o={dϑ6@1nY|%w;;l=L lN&oj&M<8 +セ{'ɍMJ w[ݖI3a}70enlo??n&%&:?Mlfai3]wV1qެ{0o{$O'ea;^xᅏ%;ڶH &~饗>cVv%L{g+n3;jÛb?4|j.Eދ{nة.}7ti";wdٻMnO9Nߜ[YԹm|Һ?,;ogi^Ev0~Mߞp{ Z+&.)ě{]b>K-d%u̵h]@\籠P\4&U'+J.Xx)Y( 0#/R3Myhrew񲎄Bs*O & i}q%LȬ$I؉s@-I_&;l^v]l j%6IJ*f$ T ~I4lCXr"[VQ2 i}qw).Xl7 _Yc7,tETqD!|ӣmӠ; nhCvⳝ'FgִP>k*Ǎ bKΡGJ )!4 |n#LJUђIGL)ĭ$/ςx'8+`e_C`aH //D֟уL#k^͌]K~#~p:B[qH'K<#rhfL'i( eCݑj^m0 <;Ax#J:ZLa>/1{%_~ITg㔙;?"XiMϮEM˄Uv$DŽ$L%37 $MLq>?rgÊg @Ny 6S ij &ӉVU銒|;n :z:+UTuI5E6y'1g&@_œM/b YnJQs/\.J"oi-&0uMk{򈬞ClTl.R$8*,ɋ;78FL^G4y&-^v_o(xm?Segb^gGFbJL!+IstP&~Kb">sz>I41T:x|GZTBS;4ISx)xE+Hb mE^=̹U3GOU;bT\y,QB{Үyd:ϾQ[JT$sLh[V袀y}q~ɡtbz,I5^fz93!7&t!HD 7K[,7@QC4E@ ]K Aw "G  "gտdTs2z*2Ļ3ӭQ ǫj>kNE>< JӴU|;?LΝ;;svۭn8FhA>uvy,͙3g[2:Fgm"!g]sc]vԎ;ٶ_v5-W۷ONims\bj~Ӳ}۷6`q8?\v]&oKw=T/HwDm&{ ]wqj!΅%ar^& K梌? ]LL9-3'_\ rJ.: pGcÏr4S.=JZKl2_3 ̳PҴ"`SL޹+Y$} F)1Pa?D5,3F > \Lin;S*֪/>ZQq."mQ@m[m) Ҵʪ P~z~gN _9vh8cH}fa:!!b [5*`Ҷ㎡_m4Wx:K*.D"'%^A#+@.rq 7-.ڧ-/ GD_kCÜa3uٳ{+ i@qkOzQv8yj8 1 :]fY(sG[ug2QF]Aa7y.pؗI/Ƹ74>xzQy hKm8tb*/r7 gqBk@et|=䕻--g]Tʴ(=}*[],r!1_Gɒ6eN @U Āl)j{zi:U<7m^C\7+YȀ2S鏵KT-; 6~?'oqPl竍b #v$Q/(A=1pn_N_.#GVew֍[& w]&:]}\NGȜi,+-b,,`jg;yBRQ1`n{R[4)o8슎 ״SjvpPm-?Wۖ]I)~4_]u4O>X$wW %'&6oaꗹ}7:=Wroz7a?Y6&hs?6zb#VpZK=[2~,ک>j`݀vmpg6hS24>Ny .7nݯ>ĘF.'< ˜y 8=.@WSjyׁb ^7xŗ q=nrǗ>{w3 m!>R+zYo=T?H>aƲx_+s^2:srϚɬIomB@yS}FK#]~ yTz)R8Gg-/'.$Pre/TLt~^ dkDj],-0] XߴvɓtD2}t4 *ax *x 4)jbS$/9y/틦y&pTLOc<-V՛9ΙثF{{ר V[Ehiͼ.mRH]X@{2LO>?@m5OF[͙"rCoR܇d[RDjuOE>B]mH=KLs`cXKg~1\3DXud"i}vmɎJm*|ǫ(/s]7侯xc{׮&ğ3N>0ik~oiO|z1|e*sJ;-ҟ://Seu/A i#4y5bOM3wy_Wm˪-r0:YV;L+fn\<>'ӷW׊@W~c'Z;s9/x$݇Nin]lus1坖/K/ng!sOeӲ~̾Uyv[?ysL]<|kWyέe<hv{~8K8{I=((jȝ%oC[\MclԨ 35͵i]j3)RZ)qQA,d됆Tb<7."gPNv 2I~4)^).']|ʵ Xd&8P`7-UFE{d|7ѢQ(1qC؄b`8l[ۏŔ9(V-!N{\Dv< #qMPNar)'Oq3 ]O/||ith18Xdy$aa +{b]A7n?67[/1e'#j36Ka}XΘ`+a{91i"c,+Lce9q 0-S,;62L[۾)w#iAǿQNuT hھ:LV!PJIfΝ#DUPU|Gd`'4QVTnFpB +U~S\Jd0+A/D`.bC]%ҊEAk>$/^}]wwy(IPΒmn!}=)=S|-:owpư=7Id8g yU,㯝l_dfp!vN^rSiŤ'm zrTzȂ\l~O鍻6G{VTh] |$CYʮGq-`M\0y2IYx= 5ZB )uUm?d`g+aESп>}m/ߤui^p/`5&/^:ܢ'vXoGkKbʸnԔJuCG&;9NfIto>}χ;wo <{R/m?eK7}⢎H_Ñ2b(49z\6Տ+IbT~h_O¿~,CO-|0ispZiJ{)L}'sOyFt>yu0>X1;"Ԋ (v86Au15=oGҵ%y+^i#ƈgx/ 8woC3+c(%#GSl) TYG: 83(:\mޣvUC:,Pfx$/>sT{<KVey0i\Vkii۴׺g}I_D6E{Om2NN̶ʗɧiɟ_&_wúrPtjm:>#)Ӽw;\Dׯ_nݺݩo:m=uF5~oNz뭷arWZNj_9v̕ݏUry睥I5ݵx=~S^OAWs;Ed=;XV.,^v14|Yd~^MLwx;ܾusuL_Qȋxe=^ <4ƍí7Iߡ~kNhkWv1kɦ돸,[c>]#`\/6dY$rQ2`|^6 p7Xy;1-Qb0$8IҵPZɻ`wDnT "4< ̝ 0֣=?|p_]aA!jy@th =;8]hd]q01RZ-jr,Mv-n,(:i')1V4qW8dkg2j-,{LB븿:Qv><-h;_].d""msK:'U|w/;Q  sg4qx>ԡJ~X)WX7%/FP8.6=ayv@%]Of׫ӼrkgiWnvq(aWۏ8p w`mLw+7Mp%vB&ŬolxzĔ Yx@t1ȹ⁻j5L1> Ɉ-վr嗖30)RdͱNI!s;F-1 ,<TNHp7߾X rIRt3E}eeBI\0}-E͔3gm˲-{+MINQtrW ZQA9rA}M]Gjk &8{>8UH6G6=62&D^eit-Hھwt߲ɱ]:?iC'_#k`K&/'0]dL z@"=><]VѺw S1?TxUʘUtRVƓƣAzE_hHjY,.Fr|`}H&{idn*PV>gy?,OJD}n~@ ĜaL 93&i4c a̺hNG۶\vh[%[)7cu3W2K¨We{/;=kg0Ap^}y|pWsNB_׮5UnlȺm6 Ql6WLhc?|ɉ$ zia琏rtثGBM[(3|ȟO; oU_@`|H-!Qk@〕ZBO+m֣(c,* t̊CѶ {}=cgoUЩI~ ʲZZ}S葞Gqj[N8ZB~3H)Biڒ]zۜklhԣ1E_(nxz2&s/SRW{-ql^ ۼ"ژF-1NuԼyA: K W@!ԮƇ_LjƏ4ܢu("!'Mbs)-o\~*M CV>r֜gPUv6bdKoJu:< i}WQZ凾}}ހn'-ô~S-F{9*:V5}*v&Ӱy7{>+urlʀGrKp/dgW+ׯ_n߼:ܼ}-;PJ ';tJRZ L-Hd}kw~&1aT8"8,hI.hI)Iv|4l3YQ۽  Xr1OP-F:is<׆nR:7>{&E(T6Yw,w0O`. fG#WBq"7h>@g:(9g&`Ftkcx(3b:ܪbv|ƘiL~6q/EES)}$z <-eg-6Y0}`׉ myC.ޗiĄ6"Zbb\.ݥ$f  PGP Oh>(M:MMڋrs* @d<-#ƾ5,9aMy۪5)ә#}xSזk+aq CUUbj2+v?'Mc@IDATRN0~WttiSa:6sG5P{QS5J5bgӈ|b"dP_"mc @Og*Sّ8(&2&P Å LG\@mY7OOwM (0Ǩ u| hv7?`^dž tsle=d_6v|LvL;)^|W nIoԼ9h+4I=mʝU)C~D 6: ߠ鿀}oS&_R0n $1 @ Ĩ("Տg]qM^_#_U='!XXyͷ(q_8k,E|8E}5ŋW{sO <^FC[C%U_}ͼejzѮ}`w6)r{:ߋOʗ`k<_&}٧jվT?k`#h`~H^|9@=UKI ը\GKPcۀCchS>Y0S2<~Pq*Vm1uꁓlY5ȸ]ђ6ǫm<[@K,N:bV ph.l~@Y(Pvm:/UɖF͑D=^GYuTx`W̪Nl{T:ze6Zbb޺ěv|+?գOy̕0?#;_gP(Nڪ^:D l-(HTE[n,qt5(gxW{Cߪv}tӸc:1K:ֱq7ڽlڍ> [_q{*2Ɲd/l~U.w~'= PO[<_җ6*&9\G*>Ec T_ a/U+w|x6^YD,~~p6k[?pOQ~uY~7YFhӌӴrqiiٔ> 0ٱet}tzzk۪KP"vY]13Ab.xWp={՟Y_'ڳ_Z΋p]W4]D: 'N+ #."?<|Vy%7uUnWsh} LE+ϲ>T'H c ILN*t+H VVۮ]LtГyn9}r8k %#M#ǥ;t U71l<&< r8<u˷ (z݋w U}}SԾRao/#,_xE׻-%R`k ߾4jb:d](2TJH[I;2EF5Ubxv=`!-88\|tQ0qиC"zjnqCcsM](m4hBp:tH>F>9H-Y8cv4w3^c?vio ?4&]D4ݭ{vH̤>mUoݶ H}hj{tҕfk#PR0H#L@jH4`w&5oz;\= CGG|-7IhO\cC1C_5S)=eOU2>Hf :}<ѬHJ%V~$T9YMlrD؞ tX(}vsigMB_qjg9dh_Sa>+Ke&6Ru-_ҋ 1?Ʋj_<'_9kO8y4N6_?=ֽG܃夭B;op޹3\+[[Lp>NYcL#}kJFi"G2Ysӱ{+H7JXcEEk2dIʩZjNU̥ycAVFJ,c S}m]PaזȮw/CWodq}`<(҉Rc'CRE7KnLW4m*Za(H LS$b']&RR+T>#D49? hGL)3 0\B!%UG'zkα裣o}oţrAG&[.v8~e])-cڎ]2_11Ge̶_v~9'/^_5>%y[~j۫'L/UЉ&4(} v(-ׯ\.8ׯ ^;VWn s)z. o㗋3Ysa,`BtGؽ\rɓ?w} ߂nr(S7(($8ͧ}"))P&e|N ,B A{L~n{{ĥjF( PytYuq4m+=*`O) TdRp7Yeg뒚141͊hS=JZ8JB?.:Pɟ_GW a鍔 6tMg鳀5x=;Wn-En׆-v՝)(ߍc8nYkNru݇8Wo0O;v:+9KM@7h;玮EigbV--[1ތ3Ɨ_w״76Gmm5wrqpRaagM E"v G y J9LcLG!:*H댚)2PrǺ8xUAl2owɓ:hq~J]s.#28C|W&*UiߥDOx8 a1q1%I< RG;U[m0rucSlfW0yWҷjPXy9҄zHRK{&34rJm 2cbe;G WٷNξ?)޾ 8/ \—}x³}>u[j;F|h/ l dM'^z/ #xW_x~/x僫뜷xwj.6dEs:VPI[Ɣ4v!Vyr+5=> ԎRQ.B0 JBdu&svӳvx_,ViצUcw4YU>豳_/ɩ^[SyWu_=} oMgUy^vkWi/M*u~zA:gQ&Sޏ]NNAS}1No}+eO\~k9$e7?cBi׋f~Ye4zڀvmo.yw~w__OAm={]/| iBSs߭2w|xۦ)09[[VY/tUhnݭnE/`h1ϫ_=ʼvZp.] a /zVo2y[e峰}ϵ'}ws!$'9 B?f,dpq~{?5kou?ũ1)]agD*~Fuy*FZesT@KfQg7| `p]]wt%ѫBHrQ/y#7܁19N{ cDx9F{O1}oH:(xO_88>z-4\s6;- lD+IN!^cDڟFʏC%:Wr\όQ <jcEّ|eq%S >b3gO<3BbX^ʫ/_1e7+_9.( $ꘀj?xq a@V:t®pȹH6[wWQ+wo=nn栛}9.mu24Ylz=.bg@єiliGJܴ6.MC涽 5ɤXʰ~-+*rLJb-OA/ >sHa)}0QR2S!X6il~lLTNcWtiIߌeUF $c @oX#K%!P[6H@}URcQ94,}۞ =;9Tc:uHƎEGhDUþAĐk86I_H[e[0d 1itSr y IAw?N5 D>N0z.\d72e] lC&}]ʿώwG .vR0/|Lt;RG{8dlE`c,\XֽڤbTQ73_ Ԅ&H}O_%ʮnPƩm|hPƖk bO &vU1&_ҡn)/d${|5U S}di\=beb(#Rc<)K*+UJП4Imגei'һrO ^9[`7/ ն+*>-]jW>OUbV+=1)±Ny[NAbۢR^Tt>'Ϯ#AǥdIi z98޼ *O0 ՟M7ؑ ~?#DY)@f<\14&M&?vZI[QdSuc[ʕ>$3*/>Hq|s&t'~,i|#VFHCq|m,W&!Nd^]B.ԑrLElmʫ=K)F&il<[#G2cYPsڢs=fIc8h.$On ?Gb0U#o;չUlZg7_D`><""<|Mu{N3ϷN>6K4^×~O0پNmҮ tdzڰ`RUljPg2<򕯄i[UӤ6xZ2xUn)̏iHX{ݴLۖlyUvk7fYr>_&>]C2wѿle4}VɎi4/ϼo5}?[:[{/>vZD9]er&k_NtޕD:uܰv:=/sZq4]L4n;[W};Nˋn糲\޺ϊʡ?ӿ6@ *; ࣀM|+5TI0ݏv_6\{}Å bI@ yc&q7;P^W>E걃U'PWo ;e,:QV`47~0O,Az-f.H+^di|lp <Yms5p@aV|G \,'2jQ? atE_rex=ӎ#Ԏ\\`#N0]Ƹe͓rN|U)z+2ֺ!#錻~?[Pk|eF 7=CUmv<0y;@_wMnOGĠiSYSVR3hS/ҔeS65T|#4^; 2.꛶؏oY婨WL|mcMٳ&n`z_jほƢj TC[܅6O : eQb<toݾ.r7S@;yk } 임Q$YwWJ"]{x9bycQVCԺI.OmRma +|h#Yٱ>$x`§XMq TnKcoQ\ JIk@M]E9D/<`?jΪK2 /0S_Hj\ZaLH:2YǏWpB[9i<%=\/ua(#€J)2d|~Kj0}Q 0auvͻ%`RjN٠rdl9'{>W. /ulG1F#$-͌ {=mi{6H;pɏ=`M.i=8!m "cy2a&MpB>x-U/&?ijks}QU[$F*ȳfVXH]qϘX0{zNT=rQ9-*KxG< X4;,C*_+op_bE8fjKGC,72olɽjscq@~9F~]'7 (o5vkΘSE-qnL/ }4ݖ*os%v D.c$eš* )ӮOǞG8vKtS ]ݱ~sάZh*6-&8/ʌ]9ܣ VEGYrij(^3BbI;x,T_frYEq1NۊGFʱ2~"`.9{*;G"⎓uV>T-F8[G~ f,[' 0 *zI}ee,+2Wb3U2$c}Ԏ'I現Q$0J+)RIXw\Fc~9NpȭOQQzOzbk7q#G/HqPqF|Q GAdWǧiܖ_U#o/۬WN2Wg-}U*vv~4Ӳnteus7OmW'\ײUݫ,o89i ^>󵎩 x{۰ 8qWuvǿdbO>.KvNw*u4oldi-;?}5ol?onn09m9ؘFA|e,N4c(AwDsJLT6͋dz.oˬcm~?y&@zR#rCEgs( <1@S;=x~wGûQ,( e731 VzQ2}AbXqXp2˙fOG0a$m< 0]&7G,_ܗ8W7{(WI\}D$Nz_<Zx(;^G9 cCx>v9x`!xɭ{[DUcD~}y+):}ɂ3yM'M#q1N#(ݽ){ ~G ?AWVt>?q, ZŶS]_Sn|PnYx !A(A'+-Bw1zH9#uQn_\zo_2J+__ۭI.-3&3Ñ욀.aC~ 7#q =HEt. ҩJT uRD9=lĮgn#чx0FWzݹ<ԩbK4iOJ%%}uȩ.Ri C_O|-i[? &/ptȓ31?xZ5o`&B ćsֽN&8l>9x=WGƊ&_:h 5DLJ"i9 ߕ!E; :PleӇr|+R1ЖmQ6a(#4# 5'|I}P AmK̤ץZؒ#5gJ_ڛBA $͚=5JeR I>;)CqדO3|aԙQ/_s߸qsr'jbd;Q'ӣE\ki ;xԮ|_T:&`| ɓ̽| {uWeVw6c>w'i 0@Iy@i `ZOj'g+ش_Ġc|.|2)uXwruu۫exRhבA}O9Lsdk_P1DAfzR*ZԳ}ԱQ8}P.9/ F[3=e'vPNLMFq3 i Wq=o2|fn?$'y&=.5:1π3TyFuL}22ʱ:hWǪ ?9ԆNfGGU}P~VN}s6k\\\~]]SO+=k_a/_dFq$]%_<\e! 0)8!;Qz*ӝ7+.{Å W]`*; ^wdq<^Y@@hCU_)e.U,ܝ|lÀ3f!,啥PExx^ JRNu.E ܍O 8r1*k£y;k ${dc]ܥc7,tm,{`p{f;!w$!=Ҧ]"6AT ˢK d!*;9=,wQ5;(֔9|Li) U΅ZXBE#`Ҹ(@;E9ylQᰁwN1uшОȅj!V<{u%0 cl$uM uK}rdE/úmX=#Il J,}z=$Re)gH ri4ۓD3a'R.(8 %>!;LRf&jY T2Hu[}kt*X~`]"Q% z˪r,/ؒկdG6[@#SqewG LjU-];Ջή8Dy@D݅v/XOYPoS 1`.=pϾKl<1\VR}FrծO3|1$RN==JvNaaT3:\j2-iIW,FjKF}A:QyTVbC*\m>P~_}17zyEs4w=w`_nZk.{1;k=}}Pwt޸M4]v}wWz,.=nnV}`Y>ÎCBCyenn\ھʋeQF:q&ʎ\e6>BmLT7;uҩAV`>pꧯ]N&2g_f>~v? ]չ:v~vF1iGy(/S tcA hO"N<+%ŪVdllkĞϰ0&_&ϲ䙳&[/W(}`s^onC=#_t|}S=OGx>< ǹ?$iz;7s^z}x<G3P޿3: I[|ƿg[c/ `=$ z~̮Z9ާ$rθcyt"68ʹ:JOt|3'7CފxsTڝ6`>Jy՘ w} DoFX W*M%3ؗ~i khs6v{ĸZ751ksa*.YXw3o{-mǒJ-Ƙ5_rRSG*=mA] h]%L L QYLi 9/6jK#OGOY ,N\cĄL[4R"'%L}Bd9 ig>CvGH]u,%;~kW_VC25.5Vwue8?>+-F ;^H +czcMdYF;R$wm'yɶױGYæl~U*VeXַ e"oo۾[fu~~m{>k~W^te~twfwOY0ߑr fu~qɧq(k?i v({^c~Udq~Ue;%րɶnǼarhU~w8}gZigOӦ:0M.{mme}m^P]et7hsyg=#}~4PP 9neZƻL2=;_9oN}1Oy[fC~Ǣu,9z` Pe0,ӳSٿw. _WֺE:"1޻yy1Nw1sUn}x…ǚOeK;]5ocܮ)R9O^[n/^ǜ_ˤ1Lnݍn^~8Ms&wֳo6ntsYSynr^3m_7Y0u1҅Z"GG.0,r(ycah ǫosG?|! '_ca .7Cc3:$6,3c-eAP;R- (KnMN S\]r16@,U2T]J@8]:'>&}0ƯkTmHù"c47[<ūo~xi7 w(sѰ/lCXGf>3鰘jAЏ԰XQ^fzYéh))p(+S*u1_T5IА#*X 0}MOQ&1zNye(=.pԪ1cV Y<EJUhZ_xӿ1]gg @("&cg0\4*:*4Flo9vm]b.]#n>?<Ǥ/[Z]YEL=6OQOKܵL_uqӠ& [J1f=s} a~)F;5BGIC+}8("n?R,- R?vMgGk1FtG)O!.\m/ǣ;y죛͓4;+4髹%ݠIvɗ[ yse4!ݥXX_PhiM5F_|Kkţ{#ܣ %;3Q{\nW9/s>J1AKm\ӗs;j[9(+4K]Dxc)c-t\|'֜Vs~A %0{}H}"2Kn|qxquʌ(ǟ.3FF{g;'47Vv~W/mJ i?Ǥ"J95i_\#6a'Q`l{I2&)!3i~Lח%JZ?ETznUQeqٟkX5Z s$І.!/"Eɚv@IDATj;-5d J}5.!~^8vo'!DY`;W k"O9+\/IwiHGvňmy KF3-R,k{K=P12joM8} 25(i]U#M˖}U^E3|u yזLNWnty^}ӲeɩM;0ׯ^FXLʛt{]]>72]8qU2}UvƷIo6]w;Ѽ8t~>\&{YמW|}oy;3-hML{Jk~z⦵z'^,]4ܟsKц]Og=-{4n-yM׎fL\O릲,/χӪ]SdO^cM/pLI2^ov@]Xyp+g]^~of̝LJyv7>ϯ,iزgL1\}alY~']hS6ogo٢w;5vjjy#)۲7]s[mz4?TfruU|}w:1My^N[/k&0ZTx].pQ}]8pwDPABT)`IPǮ3X @(_b >åkYP\vtiP".`:BҭPqE]u_Dٗy, X]d0` ژ :S$Q' zXv]_ݼԵ"8yfI0 &znh'9]E'w>8ޭG7{j<PsŦU[Nwhw.7zQ|%W#TLB{•HlN8к_b$f&u&8\qgq 2/ֹD纼 YG6v}#;aOv.n,K8!PDZu9*'AFʅ GLmWAkRt">i尃%[TDԏDycYP:8"g^ؼiQyH:ūϜ=9<Ώ<=>|lbG /WU=yf/Q?7>inC+FP@pgR\ #Z#=rShDeQ_ahgf7cޒk&fl )#xk<;1c2-0oPZjXN1EU2&aPLdZv~|p 1H#"1&$W;w^>,CFf֤KHw$)%ɹUЉ&gv<iڹ[*[`Kqw8t4_-[<>K=,gvSo tS4L%"P^YPw=tRlutn1Ss5%x&T:tTt }}qފ\;9ΊI'mV֐̴0`0qx[]64ɧ }бtkweܓ1N~E&߿s"`.A'|AY8'`yEOĪڨD; `zH.zEJxqP\K"8MhvtJc{]%AqS|-0??KPCû&k `R{8.\>&PSu(Skm?MKD } H3q2& sO,sݏ ;MwW` PyE;M,, ;?#ȃK^a`.u;Fǖ :;6jviw^du {kly~*{%$.s;zwGJ+$\jvA3{J~{ y,mczσXJzserJMf~fGةKLsnΒtx>?_vҦ"ORo7=i7 d <&&ﳴ׀v ,ɑy4χW?dmaʌ|e!ʦ[_v&Z}$lg7F/Qsԟ5(W*2Lj*_PX*hIeG"Nc֜ʣ۱KʬM}XR<Ÿ+_$~rD}JXtOۢD%5 >6'.ԇ+=6Q J^$6aZ{sQ HW*:GuxJ1Gőy~E;V_ױg;6J?<K_i|"h'YSKry;NWMUw[l]6V?3-3s?sS+~j%:V?g7'M}Y٠ѦO?]J\8'|=oۋׁOwJwLֱgX巼9]tWXmlW}l^/ҰS;eι9ݼUG`Y^wf{Ni[^`'k [Z Eq`舋Ի 9~D+ V6] <#Ŵ heȭY$5**G'2F$B<'p mgx[R0Ǘ+E6:oXl7؊gʫ<~ʳ,Cyaef\Y2M< QRЋZ-yʬ8h3D q9Vrpt֢N݃$S,Ʋz#-M]QOҡ7O4rWsaIA6]0y5I[X9v@}-8 m^ifV5u>S!ς=9VCES"^mW گE.Dz/s='MRr'a"5+!WLB @!V11 j,#Ȍ N HWNz:qN뽹`I@ܬ+ 2~lۨ?9Ë@%,0R?ܥop=NĨ\McMDU X~8'սz ?{2Ę|z :>!; ,̽B*̙\J E^ښe+?u_\ձɼzi8 Q`#hܺ3vssfL c9' _<%<1y 7z?Yodݣt~>L'2eQq2޶ݖ!/scYӏbљ1BSUܫܸU;MWmk mms}.p*rFR*i޻Zeu~+.YEkjw?QXEn-$(ݶ/(@@Y]H~@ B0/QYss{X{KDdĞ1\sssA{蹗澎lvL+|xӯyVACg( C_ B>hg'DDۭFu8L݌,O?0 Y璮VRM(L j}+).a)8t kMuQ[6x@52'Zt1G:͒ ǻHBujp-1S84H6 < D:QU,tt =ciuzYZxۄ]"<'OZ'*T}aKx4H-{iKݎ ~= _ͪJBL$㋶j@ic18]z};ǿ`E-k&Yל 955;k~j!<\u4%*Bq?Zl:3[ϝ1L})aGa<{l5#U}JsZ\&4I6L1C:{u䬡A};БH#H$Iv hSpE da}Z a﷋΋*cG/xhqߺukaݗik"øu#~IdOi#g鱻yT(SxhSO)}Z#8 Rr 6{i?ӓ(~[Α=>V" B*^Q Dڎ$0J~Pbʊ8D#%;Q,JmB/EJr|Atw>xC-JuWjg'Z$钝K׵Ȼś5)H mR6E:WʒT_H"]*AO%@K$^H^5*wil}76VLgZ(~$SJZH>VXe(i$b,HR jAFL.fq o8 `)DlתzpA;;xizXpNXpҵ.1-}>h`|Fq!58"i w,vzG,`vBԭnCzE)>*ykGb;E*:kF.|xp :dkb;m9]Oρ*6U%G޺6c9tXտNʌ'>‹*E Qm_-F4,6AcudXaEz) aq;Y'0ԅ GjӄEA /̶44b:S&:;Ydr0vڸ7];qAZĐͼ>@;m(H0rU)grʻ^C- eiD_ۤc#nLb44Yb+& <ҍP.&MiW;&4̡$$~Cg/_xkI:bM8N˚nAw[ s;bPxGy>Jr4q$⻫Ŀ;s`HcHx F81Gㆱ(d z=WACbFѶ~ g:gpdy 3~%dE,%ʦ$I/2u⡔ "6$po>Gg!Fvt.ⲙսcGJ\Ql˲E58-iZiuk^s J9X D649ulFEiҗ I~} ZwnSM%MJޮ{luŁ=$V#DFF(1bBDi"Y/u uu/1AHNJ !돏4p}b$}9cƧH5>+-JES QI?1KHNq.R8lhӷ;TxVr},=;|1f,?7 d19qH<2GgfWsy'>VB]ýݞ>g 0~}0GOQ|L7$\/0qt]ql,/eG<`N==Po~ 81j!)16Am&+^"7m?\%Zl>ы}? F$H'9nZae - qStY8+n. YZ.]̮snDj|d׫h$;/6)>LkO_μ_iC9"&?ݗYuxߤI{ HႶIv%2 p4*5 $4\ʐ !Fb`! dR6 }Ihe 3Qd7H.͆$)@ %2iX#DHbNۻIc)2^A8ks-`we{& i0d?;S|${rۡH>c5v銿Ҽk=H?V(b‰2I܏u7v׌sJݟϼ)q|d#s)B:Bs5)ۺyT IA+H>n$P:i9nn[{GOy{Cwߗsĝ'N.`E@[O&U>ٺf\xhR|r%0A|=;aX}NkZ4)+G^K0ӠD\s0I$K%ܧ5Vn"ïh2v]W$ǘGohSdib7`UO"8S6IXQ/opcZx'HU%I6!=E3F"<2)n1+6/Olhɛ[γ^!vEֳAw/y\NbX)2T8UՒu6-^ 80Ϸ8̕6( eN<WFqxfdA4#Pe >zf [ڇ uJlmq_HZJ4&+~ʲYLe۬`Z%ж*(`:sèeŦ1/[a\OXW$CF~-| c$ZZ0yuAңōt442|_Rx0j{ Ʌ[6Nml2$:x.s)`!_3 dNͫսֻgb3|:fݫDcg9/7 Wv,Kcsy!Ǒ$Kx:}2q=y&gWad:xW~+oW}9W"=j}gYY7L,;K$~y+__wDJ!Gd05rY $ؕM}}UfOLB CsN ;A3(}]yi"vo$D~.>Gy~ 2a{3I3M_wHbV}Iy&H˶s8e?Kޤ>n~_v>ݴrfx^]Cݴ/Cf^>_z5'?W2.T,^:GӘPYf5kZTfל:ûdh8<WhYu,i=Gz%u~vns^wN(1RZ"atyY@"[KBkSg[%*^נJSs“1J5TheZ oyI>t)솒 6? 4~(H@NJ긥5ǫٱrOgʢb1TB! Cbl!$#Db6rdgٹF' ƫ) bX-;j]tޕQ IpXDII>HG4I8͂lc"Bˆa+$T}Q ZcgKcvbI0;+*S];@c@\ݒl~@19&)`<2,nB?(5ӘRIB`WpEI8y=^ͭnߺ]uג޿n[J3\+\aA/z3q+0c !ㄨ< -A5#E_=PrK6p_mxxdD?rm#}D-!M+d8`#9NԐЫ!r]F0Z5_~W/*g.$L:e~j.]=g0 aww[ {J>5∯-OxIŁ/+DxO' '== m}yG]zρ>JﳊB~,ŒpWTU*|%@ h1Icp瞠2q k l*ƆvN7J<>N[}ҪX`S􏕣_aQ8U#9Vg"rFg@Ɨ'm>9kbE6bcaP)S oU,k6-jS B_["HyBo0ã`A>DWrH,a-` qpO2ȹF #)M҅gplTddzKd. /˜:T2 ul2T1:6$Qcay֔" <5S"4ƫC%xD_/̝-:"[9TecGfjTq@zZ>Vv~VL $Gp魾t l, Zn'Իی7b&a_&"@ Ȼ)VK3UDOjI܁E乖s Oxg ڔ:0Y>껊ym?[!>8CЖ,,#@ooX'F; 7:UO:F{Xvw_IZ-.<YyY(=ȟ&QfϩN|gqjlg6̒eEP5Ye$Lm_~B[uhhommuw9yѣGѐ/}y}x?Z}^ߎ@v:B}ڡ>_Jķ譣~5lGا~>y>/iV]>ÄHhk+\v>$؏d<6o/f &)\4UiOUoC}zdۥcso؞$gQ}C}Cܤy e.*oCyC=e >0/~U "^rI͑h'iN,d D }C,"Bꊖx5-޶%|t;|{ݕmn}mOc-"b#IxvXf{ًhNa9q M&,' 6^pХIУC-N)I:Qlh:$@YHxunq=ᄥ.V|c1[q6rUrur6%fU M'`YzIUGY@Ƃ,?/36H]T"馒E>ݶҫ~q8ד~];u(`+8$yS۬X#춟2qq}1eW$YHCZFcX.qC ";UB q, m:MPEc9 J>L-plE BOtF~<8,($V*OKHsCHEh׶}0NxaۀG2ff09@iѱ#whdO1'27]u mfq 5z9 >d38#.sc8)툿߁ү?kOqM3ٗgahJd-Giegj\A0^ szSYRD9Rq$&%skd\ϹR]/5(r_gh_o.,#2#Pٔ) E1=4!nFVm|_eC2a˾iYtz+a_oiW=uu(~QJ4y4ix6N q}tϲKj;MO,/'˾y9q?E&g=˶6 Ewn߾nv6+arh߰=o6';v&B;7 VrI'Æ W>=0^LHU8/–.ڼbCkҊY9/Y^0>dBuN5楛"`/[E0O9EooCj\c Ϳ -+uF'JC$M%Qx,7v d]&)@A[aWE ^ IϴD<>x;yʝwz5G$bI:Y&Xr[g+X"%lIjcxE%d2I&p$IduZQJzbE f`]<2+Y^EC zؔf^4۱[9fxD(& '5=Eߔء:I XwBp+qZ`HI#~W $( 5"@N8Ah1k+, $k֕+ai,alIGg$vT16\7\ Q*-QgG p_h*) [-^+F%.M(1XXECf }n_$E~;Jm.|ah$+>oݺѭהDɠ;y|=|=xm)]cud.^!PXJ\O}WU|Ĩ8ދ ޘٱ ٽLu q4b)0wY k ]6hs7[ }UMLT,z-I<Fhc#`*aLȠnh8<* i g[~V &˃z@/5EHJ66o 8ӷ#7ix$|oa^*!*@ݞ9NS.OZp )`}\r1Pg䖿u6bcd` bUN`SOBqJXDq9Zۤy%\XpJ\G[UJ cm :a bIxbkv Wa' m}28SNlF#uhT!v.lt0bF]ò+ɭ %B B9ݡa}DCJ?2 R40dž57cQ,֡ >=^.0)ZlRsB8}](to;}Mmr\~H5櫙E!z<3mXL~ٝ sb]ggTNDžXBmhyP,#2s2)al1fx:>?/}K}/&;oHVlG$/cIz Ir֘NtLKK%{cp}X3%D`?KH]tPw!~ :Ib|;$>͎!|.}uˎG>p|8$Xɽw_?^⻬W~(~bԡt8I`7B^-ʙ$ZJD&wM m&;RjIή)60yok{/v'®dE6j$FݬEH4S\ˣ y׊̖8)x+K::ĴY$(V$5zɌEhˇViֽxnc[0Q]y}c${IPe#%I~qpeӋ-`l46qa+2tI"e8ɻ$4EPq( fҁ#Y*B>ԑm ,zw181INNnntѭlЎ9J<<5hxJF=bX 1"6->S"agJ팧)dTƓp *bN!0ʓi+^4AVIdO7U-u鳬"l~e"J3/65Z,jjn8]3E8:&lǨ7:z㒶 *U [m^xǭK'AD&i$?N$̀2V6hw1Ɖݏ0[@fb^@L6=F;Ns".Fpy 2D*, F&G]qJv0ssVL@IDATĭɒ^Z 4Y_p0PƉ~Ů}+EIv܇/fYNJB"4`w$7%JEWv}#%O4\ 5mP] fw?!c'C4@یA c: t[&V=нosS>6X+yi[_ys?֎GzV$i< hNSp[滚,rgl w~q,ApGd[*q'Ebñ5rmIizU_{Wy}GE<2EΈܿ&l+*B¸0럇|m 뵤Tl`Ķ#̈eYY0ɉou"npj4T|bж~!`k16 vt %D6ׁH?upM̥sΙM%&`eZ<fJn]&ᣭ+q[u$=o|'v)6/um V-iCf[{-{"Z,iJM׽0FsҿeXF`W%yF:5%LκMO!waݢjUg؆~Z9OM(yiñ77/| G5c68Ԅ!"C{/Z_ɟ$>/·O]q=nũBOO_..x_\,/["}u k1׫ >5E;Od"{8yikфI|v'=}e_g|uV?)4EXTEOP>4|߿]a⛅긨{Q\?=nv^aLh{WN !ai-#-v\բ̀ѓ^U-+)pC ˫J(4"w]yuvYek(LzE{VVwX/{.jLmO{MNǮg\p>N9p\CXG0jI#@M풵)ؑWafKH`p*$ݵH$]&Z䉲vbCiJvc]z|Dc,J` -ZHFvbJ|QC]*DmQLAX"GmiviԅOGt>ZdjsA({,pkK4 7?b>IB&X2C Gౣqk̋UDB%x+̒}Jo}ë%+2Hfu?m9\gBbdg3f=_XFyNQ=sQl&+)HM_xPl+0ёt[3@#(ټ<:VRŶջp~*"qK#ZU_tXYh"X gx3~'ل0}syVieJ.䏻[ݮ&5%Yh 1`WfRkIt~c>0`p|RQ[*= C<1d )i ҀCgd<=)jt@,EA_ >}5ܷ^=&SVIC2[A&G39^ba۬5MIJ|-ҚD N1G* iApD~SlXˁRLE-xwT 0$n9x^ͽOq='M>kEO6JѠ\2N3~q"boH@=JL։]ܚJ7WGrS)T%*fm1EWk޶N|\xi7h<ʤ G}pcGh|oڹQF_? ~ dF^i}>cF}aWeY[0?V@=0CУcLK);V6!=$i]!AvƸ ^&_{Qg\gF>*9#$?3M_'cB0߻u׮'iR {Q~{G_?v;K 4ϯCR&Q7/Z5#Uy>;ov*m]0߹}g.".~lĦ2d^Z,/#2{Ym{OKa~F6q]&IŦt,qG>>~>]=k&2j>4ḥo%|rz2d_&墡'9a  N;_(pV¤{zFI13icߊ6bI`(G|5GF *}{KoҍOh57ItoYiR_͒; Qr&~I-^+7s<PE/[EyV9/ڿE0A[$F9yu&,z]:{|Hhцc!P$GJLBvbn~^BtI;Qz/:>֫tL9<{{ww]Uɾ0E~K K XJRp` ,,pN<U-RH Sa ߜC0FڲJTdx08!nrj4.{Lv}U'*b);1:8O||ld>O! L)y9$MF5jO$l7U.үI<8'd2&oܼ{EnmBI#->xDj[JU(]ۧVH #NS3Sy]!Lf_9≲D$"Sq#FQVs])B#j27,6DC"/Z +{T MWS u,ύ(G(=AhՂ φ6%yQ % M*[щ B7Q68> {L &cN7e$K`2? ?Bk}5Hq3E#sW87-pdΊSݺ3_ebո*l@MgHSr;᫟,F4H)@ gnjYח/VA}%LѼuI mt7bwN)<8QRg|u*;~*ԍCkc#?;ΰC OIĨWF:jR2V ܵuOuoK7 Y#qR_]&lK5?ݏvv}%Q:Mj<RPWs7L;0D q HH4-#]/rW'D" Z-6֚@Y^oߏ/K^h& rYr/¶է:􇇇G=ƝE唼Y˒;K_ߗ=^lLiYe-0pP7,iq]X3؉DM~U1;{Iv(b:J.;JzBbk!v[[#=( Jf;~wtcwm2ԞFtoOP i^}с`%=E' g^]I ٓM%KP ִCwbxMށ֨_|ByMh@<ꚰ>^D(e V%٦yVJ^0-[}/Vd[|Ztd0>TM 4-$(CIwa';SnpDV 5i\p U~D!ؔ#BeYrGXZ -e4CA }dڗ>fGsYqp LR*en6'h}]vg^7WG;LvŋC&$fBH}l{8V-OmH1kצEodQÕPK|mr+SU p|`-9b@n;8Ps \זepIiF5iSMfzl kQ,A L6,Sxv}Ht#]KrDnRl>J/cm~/ci=i43সN[c<714YlhQ]CAUx@IMuQ#}MovN{OLnH_)N#b3e@ Ĝv}EQJ}^|MƛUsE|2/ҾeXF`/yF9_&O{ƘGwZ\I6~}}R'$5/uT$yl;#Yb>[710kJF?q`uG4tM3)I~,>߲~̊e'L7=ؗGUg]ϝu C۰Ne> ]G0.Q>h}9 "{Z\K/?? ϴ J׹.|Yr/ʾs>Y -oW"|5>6i ^jOeMco: ;-h!X-r 5; E&$|-Ol:uĩ"'^T$ RI^Αi?B;{QB$0E+Zdݲ/Y$«rj[D/&YL~5 uCI$a&욙im;Lϭ J^0)j^E݇ݶ&|Yj,QU-һ1)ڥN  +d81M&2]Qԓ+GYld"lo[(!]ؓX{4=_h %I" >$W^MWvUkJƳ> Ck2,I2%k"8N! L?$.[#cDFNy׋D4sɍ%`[ha3c18.qaV%DaLIЎ޺٭5W5I|k}_n9yda#ݣYR+tpݣE \%(v~=BmZ5]L/J#2sܘڱbDYͱW3päΣex&OU|˽ hxb"Q3]E U* ii2|-q^vRI5ތl)~]C猟U@gy:(<3myWuwݑ2 <x@2X%tw$Bf~.9E .;tso5K_4G~U|aD`>_' P)0~;u%Hnu,~s=ѳvhҗv44NXZq{b N*NwXh E3_4<[9RsԵ~)*5[\!ݗF!+3CCbLF6l9qnJG1'2,|.t&HkyMk Am_ /Zp[*l\WͲ|W_NݷC]/O_a̫bhƶ`oG 6Fzߨ.yy_&>/bv2/C<>-iXF`e޼p9O{4py~h}K_ɟt?3?3oʴ?c'LUd0 ~ C7=i Y"ќNK$Uݔ~ṡϴkrH7%դc9w7wQI2#0_Λ0s Ǭ1L`.gZt9~Z\^'M ~Mw~C wmkE5>c.b=}mЗEJyH˔=ɾa)U;VǮi|j׼_Ep,X|Q1ZD"v}hO_O -kA 5ZPώL\\#ոUd:m'NRKwXy^+W؃,vюx1\6czO}jБ=^G~$Ow{ue@!;Fc^\=њ*Lkq˛z }xeWȻ=)AX|IF>RYe!0 ^lL\􂱰F¦sD4Q`Ӝך\YX8PZFbBT$v(|F@K3=x7&'(iWHZ'mmm)aW $fS}mBlN=rQU]g`_dkVx,_B!u%>g\dt?F 'PMv5N}:[꒨pcܳ;u]MFb&6mk%DŽamo!U{nɅGHl:f,utXJE()c$dɨLe\?]ۭkhz XJ @utgb ͊QCHN|h!]=)߭5}nXRRdG@ u֕ue"`X j ~;8|.vU3j3s;2- Hhti7<~"j\SIz:i6p"<+jLRztc~g. CWv ڤlo{঒%׵ܧBn)J4Ag-H<耶8e*DMGqHtFb8>IB]jtWH%ğUNO- xU@gusnC>XE~M`W _i\h"3idIv_&:nN2H-)jj˅[&#A Pt `A:,e8v+Ʀ.فpFkz]&W|rUI,ycۼW}a`b{xplws| 52b6 =@^=t`EŃ^ ) l]*Qgb!ʵXcx%KJ˵<  1M!j#eS!l "6>G$LOH.sz D]Y&Lsz>w" RpbN1??KFÃtR>MNo@-u:A  p;"cEP*lQFn7dde\-Z~Ʈ;S/]t7ۏu~q}MP˪0[Ge9{F00N̈o+8-S@.bbMzM_M饟,#0@'y9; wQg:~d]ϙdIe%L"=$&|h!^_Tߋ#b/~T_8 +nu ӮIğwIuN/aNNWO%:&LVO1v7_kg(ṾQy ^Y[؍&5^I m06gCfg|Y6llltgGq/:E/[~;_'6; 6w{Ҝ?g,?gPb5TmXkdօF_;V5Ω$M ~z@Y zXFռS^`B B]sNF+uh>?]}Wr0X-<ם\8Dئ_5bah ^)xU,DXLI4,"IMbb":9cD_"}%GG.QsiT(oֶP\=$׷[7ꦮJYQ䕕UD;T I'\. dS?(8''8(we&MtN@>1o;,:[,1VÒW/Z%tk8`o*97xL/.J`Ga%L5m⧏,JC=Z7):#.% H =BgXچ1pML*{qBN5au/3B.(C GtV亠S OT0i7Р,T$F ~PZHO9o|l>5 oi/;?Z=4_bŦ0U%L%Ip\ vsS-ۚ>|WB51c9SKz\W[u}[t`LLYK6O49a|9ȓ%$ _(PB+Ab'5$",*vl٣:C权yիrxI¨GK,o4R942&->۹A + cZ Ha'A9JmWKB  ^l瞞:hK_$6 b44-mXw$Vkp0?dX+::ЌG\&Ls0I/ >#S:%9| m0R4f*}L'Wh&Fjv!^D{:MH>fUJ7u0T~2799I{&7ƚW[u<@-OС`x+͠9(".ol팭1V4 ՑuwޠIiCPh5 -^ұyV'%Lp`z/τ%wڂy&=);LBWvQ?Ke _)fm}i]Tǯ}_fccM.ϗO&i-I%ϳkIK4~s15<ilkIm҃~~hڟC0+]w \4}؋l|e,րW,(|> d4|ZeJ>=SMk uY*|d;ʼnBcx F(Z HeE`7B&7dl@|Mm<&7uE.%M:t}$&֢0Q$) o@7*U?yk:YReItCI?qNh~6đ E| ,E3<_d D'{L}j,JD[˄^`wISd(vd2M%U+)%9*1xK#|v,gQMBaqHQU!ETZC챠 "j rl$tD&}ыto4D[!-_͸hvR@eCآ ЕYIHr7aA3 U?_?t]Fob s5ꚾl.Y2>q dv_H1' P>'8ܳ_nH .{Vܾ^QMU|GtlM`fGjkB}$$^4d0¿{XQ3h8ᑧC422>4ɸ^3b+Ygeb{mkmvt<+Nga]+hAvqњ_6F?U pmmʈMMԅm);)T`/9ԌYJ؄/:jc\cZK/B#; 5=MO]wDr ֪/r~$Vસ4qO%gy R;p )\V8g6@=X,a-45B[7~ ?S%OU!oO-辺j>n[wn[~J_H AX1`r)vq7V>@svǾ)ğcίCeg_u{-#2|#=<+_ʈ}ֳ$$iϕ4 #'TWq׹>)>Y$tggNR :C';˧;??%sQi"4;^#ٱ8leP+ٲ\=+CXqc'Mgo.:3~?=DMϡ!NβcF\ e׍Y6¿[g>󙑺*g^ |9}]u#F;M_InU%VhW fKz!=DkpxE}w~nAwɞHdO*d!_T7b Uƒ/ -vㆮ}dI>H$|:u}HS4LbB|&H&ohW^=~UI#3]IE/ ?$VR 0MJA+E mF!,j^ت- ƻj-j!wEkzM.ac?CK Hl2ݚN @u&5wp&y=>N3u'Fow؃v4їO賈 $8f%.{~:$* |鱲 [H.U?#aTp={~45'EM[ښO$K*A;nU{zDs;ol%s[R ۸cEF B ME3.lz`؛~cz|s}ߞ;4йLH*vĬ\kB)Kk8_D0ҭg>V5Qu/\׼˗)H^~?$~x, I:@ȫ4%gJ*#b[ |ă>>+x"#I8R|LX+IWG!If\ .O0F <^`ktrg6򫦕ǗRl5?xʉddGOCE.tEcKb'Ln 0IIx?v$9zktCK>\hZ Y|ax~ =_ agvOczS_P$^8&qz־^խ/ 虖]*veMO"L4c!cxƘ8jp҆`LUGg>d&}t\Fx-AVx5&KQrF[Ӫaў,-b&~mƒ G|YҴ =."6=>x0I([;LO/?t8A(Z߹GݫozNp~m=f4G/e6J@l]Ӗ$p`rh4L,sКMѷKJk6lGz[7th}l/:J(/G(9:3U\Suw>{YO,iECY3 z}k+/<+JD$LVgɢ-+|\}'{oϙY$kRpMU}_Q]i׷g?p4{Q}/*K=Gq5֗_Yp~Ǻiq]p$Kj'#_+Z^Q҃YLk;O`GJ"GI^ &N2͐%qFVZ +!uȮ=+JڐN[?vݓ׭>[9z/K 9/~h"UoYmEƙBZaMDvy'&5d5}Hur͟/fqL#sS$LnujJ&݈D&߻9i e Gq)[IhjbnE)$pAL_xI JƵs8Rx<(#$ vq@lUpϔJL+M fCZE|54(UЮ'-v9t%HY 9Z%Ơu&KeZljuK" ^lR0DFIF`-]$[BV㏌ԮmT$40=66v*X$e,XgpMES~u5EO:#dA%s,.}2Ų.>b9Ez6JA)ۯjJ Cike+۳+)KF䎁HK4TY| x?hpqe R@IDATK|9;Zq ݾ=эcO#`Y;Śz{G《CK÷;zo+^)0 \|;722r"C9I<&`U0ژ%?Hb\isj-= Jk%R`wY pޢuܼ:gi.ʠyJC\)]ЖK٢hz "TjV'rr;lҟ;UXݙAXexhҬ9ڠXY#H|i/LYv6 {_Y jE&ew/]Iu]ӼŚ򟸇2dx*Fp]ٝFkz=Y*yZc)&A[Jzk1>81L 9@!_O?Y6p&9:gW=牽%?-`rڽ}8%L՜TʹaIi|=im^OCIr/r81__?WAOi¾7nLׯ__سAc/mYxఱq970 :^ vyu&&7Y;#?4؁j* nnQ|U4|W[l8L4O[קo1{w_Ln4,A+lKifL a?kH@[>G27W`_$@"~ 0PAG%fvWN$PE.]6)?4ߜx"Q~簩ujk83a-,FY/Oo9|t1 Rah0 TO7/N>@K״@"Q#?=tOԄ*I 5w flN/=*#DPlc`063M`7LK9s*Ob;L"ƮH\ SйGP+_T 8"aZo:=Y_@_mcOa-x6-^Yj;ܥpZmoKMл'5~p2h\#ܔ#1r|>Mcgq\եYVtY^}}akV-FuXf_1IZk~C=w9BWΜRmkK~>+vVO8㺘sEJLRa/GK4˪oXP( zuPVF -Q0#|):vVuu?8m0ʚ0 tڀɿS?rR~Bk뭁y0Yp`^\s?>IF}F`e> RD0g%} wrcO-WK j}W(U~yT|#z##p5oj+kx^\JJ@7a4]`{ϻnM^<y6'Nw,8|M*Q- %:><.[)HU2ef9) s4UڪxrɃ/+ܗz..mO*pTCm)hsg al_9EeUp2XW+%va^?*гt\9=mGP0O+zY`d0r,y٩G>˕P`oN#)ƌ-uL{}/<']*> ߷۰i}҅ӗXW^$ۋgw`BwstL;EՎk-=*9oˏcP; \93Z1ggfyg8gsN s]e4\4&~n2V8ճ4y{uǵklJ 1ߋiO?/i8jM5?ms/+Ҏe}ExaKnYmտbiN?wy?l.}vK\;?{N 8;z6pG-g=XydyD# ܥ-SٜrEn< TQn's6AU8'\@~tﻯOt#NܽF`mxF+ ?,ԅl#X~A0 B{>e׆"@k)y;29 mqN7޻6}Hw+YeGק/4 .,4ec 2KY%DJe*x4TC_X*uk5֩ERVA5.Zw!C̡R.mZ"9/)^qrs[ 5πɻ'z< @:/5QT[[t@pK weo/4_s":qU0Ƈ"9 S)5l4UaX@b0MyO4p28uz,'\ĭi<':NswyJ'`sˠam]{mDyRRm+L˛1KntvϯdYuQxto91?7GY=^3\N7"&A-~'̗ (VTSQpuDɯε*~tp kFK'-o?!X>>[.k_c8P֏ƎL ^kd> ;жèuj3p-ZqimOj2<]k_Q|7>:̎-0/~Ͻvgن Rgy?8Ov?3{09ypwz<2i`oo=ų}-sۚf/0[JsZsz[–<| Jw?h}0{?i?og~f8{?ǽ~y|rfXޟ`0?O"Gfnݯ6.6?']ls*$A BbWƍl  7Z X{D'UƳhl2G^x59?W|?U߷>t뛿;=yw7н]2]nj3!Va/mENC;MN/&>+|8hw<1^FOcV2S9rfWZQO y%%Jlr]dkצw`dWʇ,S&hsY@_ ہ:PhrܲfZG!(pPRt[G+em#UO#7U2DU[c$P:iW .eK )3:A"g;'ro'pYS*\D;Kd3*]ݲ4J[ OZ`!e [̲TDE|Av^BbK 5gPJMȣ*T@3`Ux󄕁& 48ǠI|pSNx%>&6+9yPۥ8qn jFonO0 *꒯k+tUhx| 5{Js-]NJ)Pw2_tGp.xK|@9%uROKgpmn%9H˸jЕEQ>"N[3PlSAv񼝑A| [ksa'ҿaڭȑF?Cjh.)eLD D"hQlKo0 um\ϡZk@:k>}DCҮqmXdl+U3wL/+Q1MkLPhLK QZW R8\&Ɛ h=:&7BU]!8\-6BBW@ 6eq]Ե#`Im6 f1q4__z%>[(71}_] 9fiS}1E=`?e|,M_|/R^}g00ʀ_} KҾis+Wx*^}KRuOz뭧h/H0;_|y}i˖{|`ϳOwǥ(>~yQrfXޛA0-⩒1:;"\ܹqO4Dls.xF5{O6S}OkfĜ9 %N=6"AZIl"]7{4}c6vyC[H  Vu[S)UɜQ02`vAFt*M(^6FPRWW«.͝.}wMRp!ڱP8&A*$TS/SӘՠӮVf)G 6}ϤO Lh(^;' "%5" u!byR\TI*:}OfSNg[^&3`ƇbmAmЗOC©Ͼ j(W)]ΉrVp"QÔ #0sB-Mf/[i„Yײup`TpY+-Uݞ6s# '=ǻNHB-In޺KC~ ʗJک&rzl?fY^^M8b4<)W> pȵ3}| JDL*ܱ P`m/kksrq09?RBNkvVV;!!|Tf>Dw'mГ `Qf* ,֒#S:0ڭV^!>5's` \*{E*k-OF#F/G.3,~JY ,-鲴 fUp]lk}of"N~+?== lQ<-0 J~S&Oܺ7e?d3>ڝn x'-Qzh)7ㄐGVCFqVއ~mxC\XK([sP ..fdb>*w(ɫojX=*發%1TI`c=8Zb)Sʅ$h.js0@xl1!ˠ.Cإ%1.s-"^Jc*_Ymyf?)TFE(z$',12>WegT ~9gύ~`۾38a*e^#֓c)Ԗq%yTk,lu]6H>]"5ŵ_ȳK||g藹//2>mNjOO?ژ>IsX?H&mWN;oy}^ ߰}cbyW~?ޣ=̾.i<ļf?~ƍzŷ/=/_{s=;&8E~ঊ7ܢqsȍȇvS' bۼfӍ `}=mdvYj L?nH:) >7׋;Ӄ3mp~|ܸVOMMmnF>܈5(S&i ؼHP6Ucn Йͻ4X_QtsAy#&XS&/^lmOywzozp7#z'BUo_m5ԚeӃUZ~Wfzta7p- SUub[:>UZJnʃ.GQ3!n`WF'4MʐOmJn ƤOl&x tf(\G;c(FP?" `?H+m+Tι*k +yRgF!cjpm+آ ǒK&OqL&h瑧M 8y-&; , @ɻnNbUқ a{sz;?0`YpckgzGh1pZ-}l.'=ݓmWؒT0weqAQ(޴U x,dM[aKM*egȣjR V> Bc m1=hꉧ}ƠasvIS씣ƞ$O8a,`y*cz}&tT}FĎ2K+ZdalQ8-\Ku)G]?$QwIu"(50 r[LBŷ+|w|cw9wnܝ~Σ'秛|ENcV_3i>XWGv< SgG@O2َrFw3ysr҆ݿwWQe5rx̿)>Vvj5~\9f?KԱ~g {$cdKDƳ6>kuynu?}^ٯOZ9eLl:@rGKy3=MWް[nM=!fO{_~i}Zi柹% X\.Zqދ;ZùjQ o_4YK^֏%[+ӎo[K~>(W_9!nWy/K28Y l,n \Xo0)8mIrj&g<t;L78e+E›ײ% =q/06iKYi+[^cySiԀoղU0D jD丑7c<RZ6b[W!$b#GQTW AnHR ^?q>3}9 s6[@Ef-C_xe#~Tr-m|wgr8s}m ^GV 1@hcY2B\j̉WZi~@Jp:YtŠof@%@zҵҲVbGbOvre˫iVl̯3j[JA%8=u`e95Sc&00djYpMc :R7b\ AZZbՔOb;AM~Jnxt{Ay8Fk֪0A`ƚ>sT*HaCYqR$`A b8_[kv !rY5S%=X2yXvؤ Nye%}5K;|O:?#óv|m֟~ؖNÅjL'*Roі"gqsY{ا~=yg8~sRiɖqA|{ᖰy}9wߵ4O/=KV)tCֵ): QdfU^u<+-$'y9/˾;jar?iYj~YΧ0}翣9M{}u_z׈0ȼ?sQ? W86D@KpI˘iop$FzKWD/Ǎd\QV ٘K--D0Sȿۇ%Z|g ;iQ䒮iD}߶֟q,+!_ ǁ7T]LPɋ~ 8L5 ґ\k;h#N>oU{;]JԜvjOڶў|{e'L4}´A҇J?Nk u֑XM-i=f2ƒV"cHStE{(#2!&sH\%ɕaOK Y|h,~rqGmgW]ڠj UDd@~S'fko8ȩ$iaN?hRʳ/`!Y+d`3TťH$#wPl9 fѦz_?g PmAT^yN>WrsOIOZ.x?0x>Tݹ7ݹI$,S'COlf٦s"jI;Q Hէq4 %!Lu%q>R|sLo=Wo_zd2kamat_4Q27~0>@gc{`/rNҗsKyGE{&yŻw}߽{wսe5]˗ /Uܟil/Zm!͇뾻aٯo㟧_c:Ovv,iwbyc,<ɟc0=`8'QT[mdo+ `FP q4e嵃,&7{`6|û{{}kzMn0m?)L_mMXE'`2s>`[]fMnPWӞTBi ?[`n㳋82\/$r銿xE^owÏčr@f0jT~o>g`H]UQSl+e3@ $MJWіDpQGm{ ka6KҖ`VX>e]/اp׹&nyRQbi\ {w &զ>xȫN=y*?݆aWKXN\sMTi{Xj< E#)pX &rۯ<2,AU᪓OWWq)_H"m8Xk|Dk-o=.JyR?k2<ɚk!>*=56VK?G\\ 97]s`Xc#o p%-^}*e\m&G-zQQ[e9 ji$}Ofj`WLp˼&AoLo[Ʈbd .M}6D.r=z@1m5*6|J۠$AclSm6s~^+b:Yk֫=*(Q-Z*-p6w5j^sF_7z,[`HeX5vˀO?{=㽘Y*k=A56j9ٲGgzM.8iФ'L2_̚;;2'6_!h2ǯp?}K/_eQٚ>yw|4~-O<9cAzz.&!5{Ar9 mIyOwhȉ1AVf`ik;3yӤ__^Y8lXoͿ{Fi)BV//Muj]?,?-P-`}e~0?7Xrc?O ~]>-ӶY?̷z+l/ּ??R~WWvXwI9/_{5>A9rMH2:ͣh%' .pE78a~凿<]6ȟlL}2}ͷ_w'^9l܏hS-*׆R'07kJeONþCmXm'(A9)~*3B=9ѓ1ȋ@ ~i?}؁B0=ZNm<: ؁Xu8lnwP R;LmID!` Fedlo*Uc+e R'(ȏ 1`$ 'iݾTAI!A`1£GgF:c ξH@ 6Xb?{}h'Gec=[KN5 s(8Mgחn4yagU[zOMY4 mI}|02brxHEN \Ι +r*&溔ڢ4: oUYYpRlSUVRK#_üWaXX?6  ^@B] y&g[O$eLX_Ud,xuWrW+E[s)J[ )E0ؕN/tW&"Ŧ[2{2I~4=&R_j{mQg` 1'SpiK+?y> |b׸sKԥU)Ê })cL?i\,!$DTDrɘFNdO6I[jv̡Wb/9SN< i$5J -zrVLP:@aTc}&~xcԶ*li ~CVJotұ✰*ԉ꾮|e$֭yVf-dx~0id'rÜ|)Whm\]خO:` \.8ιLTs?Sj̃YH3 H=UqP.6ֆ)p8V6luJ'QH}gq=pG:"'%UF\X/{\qfyC|L{d"Y$I#([ eNpqxq.c Oeky 3Җ&lXC|-'O^$2Lʉ/s2gP{M;Ns.uZv"OUjKkm^.lp_jLYC_z2a;M=ڂw}oY~3|=EY>۽|_6Da]_ק?'d#/?JTuhkG˿c'.?B?GO62y7ayw.e?6Zy˟_~u{yO2|Z(mj%(wOS~냴~g>_[^i`ٟ]ӀʏG-K4Kn}Iv9 4} ۯi- 9Ͳl?.O2yX]ʛ.󶒮w]^mû>s=oYv8KyO˿,ۻ-ϏȏLpAB~?O{w q0^qiy(Gas]wI4}F^;`_``쌰e{AC*I)J7 w yNqܙ!Py (i4\'}0AE"2hЀM6u7o>m|ִ Lރv`r-3;~Ƶs2ܾb!G EوS7ueF?;Ey&wA-m`_*wjN;) , (ψ+FTE,0e'a0q>nmcF W`ۗ U@M.mMM)ɒSʨ("i]:5VCU@_H|bT냠vRI/ThF}(l_Il!.9`9 Iեz&q^铜 {mGCñLSG1A F=[T 6Aۯ ءA\{_;eZ[^zoP, m/uIEs"/0ʗ^k+}߸3ߛ>xTZi4=M+AX#Y'ۮԩ7֫./ifE۷&ڛ>c['GBGQٮQb#'0,"pIq742/4&V%tѐ,Zak`׼M/PvЧ]6kgaNBi(5=sSNA$M1UKlBRQ)}p+9U!ˀJq Fmy|wM0xOcO%W/L޷q~<c{A~}ώvfq/ }u1%;ǠC3thGFG I!ҚISV%2,yxoRqi-ϷzjpiԭIƓJI@ֵjզP'?emm (g/w8wZ#A Թcm*<4A%;":L~3WrЊu~p&_6`5K\4aMOֽ]8oâLJmزrħ.*$0߲N 8%|;VNN~@w3l|3z~>ea oX>տWk8o\{WAu _~niZ>Cθ[Ky}AF/Yw)o; R~g)k?5t.St?o/xcN;;;g_ɷ{׏Qir=m}\z?Na>]\_unI{R&F%&)h@8B5 (fJ& 5T"HL`S S)8rʗy?6Kl)'r5j|PYGN:uŲk%Q/TJYNLDly{O!rA`f퍌4VWO4 x9aw1M~&V813? TNt@Z.A{"C:!U(Ե3c1p6Ͽ:_`)[&%!}-!̾;PtX8sɚ[MrLTMPy L 體\$lU%Ў\C։sV^ #ҜeE8XCj`VS;ıީ>TV-D閎QIW<0[M9gfl2W iyG2.K[ Kt}}I<'ȹmUFێO/_:[xQVgl~ϴvheۛ2WdپSfƪ|&6Wdԝ?*x~&?:K1`ԼA,nϹ0R{,y~$79@:s"K|>rHVgʦ O|G*SPZGx>syñiy6߭kH0Yվ~ŋ|vy-+Ws~<[OMof&Q 5_liUo5cz'O"8?ȽvJ+g_d+k[:_Y>zV6{LmiQx 0.hZׁ3/װǕmZ=jos}_y?ۛ~nK5@\k˼/|ٶhC}e{9nYu:?E ,+_Xy7'|4CwN3PlKJ,u؄snpuz֚dcԲmK ~Knɺ9&.;LrZ՗.OWyW_6 IPZw.\9ӛZ뷦kNbw: rOӜ @- 7'wnz%l7.lm'xf'=IOCrkҍ=7+yMZ?`@KD"tK`rb*Nvw <)k{d`ؔL ]q?}"B] TeOsy 0Wfd* 7ML ^dQlvV̡ YZop)6UIEYĺ/qRis 7: VrKo)N O y+]@@*j4*s\?*;4Y>| uRz(=eST7X3KqrsYGAE\͌[QbUZ d 3YV`h0qڟx뤴K^RpeI=bVǒb+9 ׎g;05Nyh gy]9 9M:L i1J2ƶ#׀0eTs]TVWcv;wc!mq`M] *k9Aw${ ōۜ6%HI".KdyӗYS5&aXQIn!*kk\+4OGSB$mEu>?7&iU LM9Y]/Kw<,y6'd= yu>>>t7ckd.ٮ& O Z|&qΏ;b8-ɫI?눳Lx>IQu֙D]6žtCvf>Cor<_ 6+Iꘌ[A:ڮ߬=y>с6tsο\Վ#Tc~ڒ飪|H[d{t]BO{v< i2Gl=5me;cML?BwDnӌPT9s"}f?~N~Moc0]nGX]K퍬䮧 : /ppA?f\y(2k)Pm G i$>ls/&/0?yGڢ8y'?آ]~i[18q#`S^ݭOnM_G~c2we37$y,^0>E7 Kxq9b繍'~{y/?O ?J~6q.*K^»>-z]&{~z؅LѴ+Wg>uy ^2k:sƍ?-|/Ӌ[_Ӛ/sܼ|ayY> vet(4M{y>-/=տ90.w~\[\u~'2OӴn{ &\^ti  x <ƲO9A+mOyuc쁯5Ϧ؄Fn9lf*4=aEO%IylvyzE#ӯnn;i0%\ZҠU/FVxgϾKE/81nN%jmXA lkLv0j4Z(q@T` ٬28hy#z+ NB_NA>6f{q V6oQ}c#N%T Wg+Hؠ%8Z2etl'\9:9dnUNDZrU|[*JJUQ;FٶfēDP2 Ui- A:i+ NSWA Zw;.;i0y }cx7:xOУxnvWs\c8q6?Ivawtw}5x#K|{՗A}" _>xI79yr޻=~!>0} =Q2慗RΏ}{P>|4xJ.ĹF2~F|:;rQ ;sYh}+pF>>O!A3?0(2mi6zE;\ b/Y6?{ocY睈̈ȡie!EYm %H I0`MH(~_@ SjS%A2a6)4nvwuuWWWUWהsD1GVNuwg5pQ%5=SX| ;cMFT"RxPu`7̿"iJ-jJ4C]"G%h߮L]3JMіaԕk3R.k} +?)}gܺhuI~5w~:wM{3PcZ2杽b:vm_Uc&eGܥQxgD`rGjN?yd|py| REvN^n/MG?yg[OW/lO\Wbgc(^u--HAW (3+p淊挟xD 3lIA~vm:3GO慓G日4bf伜жxև{ o~UzYP @?:Gf /d6Czn`K'>iAɞ$v&s"{O]>}yσO}vj&6qTrI9.1(s'X6g~gz>Ca1_cEpڄɹv良9cD_g/9;-^[c9lxyRܜ;wf?{- m[#?e,IGٖG[JyڵktƥK'94'4vb^\d%;ː.nqu.dG~dx t^N,]v`I`1VcdɌ,_^v zĖ*k,Ui,Y @aEP4ުc;tyj]/}#aA*5X1rDbU˝?5ttoّ$ȑD<,zW Ce (xڨ -qc!,]cچU= u'3@'_vL"OI{skۣ_'M\O$6*8$Z4>E^XQ0qdK9Cfrv6-3 Su^ ʓ&ٔ 9Id.NvyE9z{yu3"&.z/kȘ@8I ,qZd;M&4PuDꢘt}&3뿉 ov|D0=gLCm5.D>HM.M}_A̟&io"` KyG)>GMUUu+q?v}K$ML%xt]hos飏OkM(wacױ~_0GP!=G4yW?,>8wՒKĝ$Sܐ?0izMA VKh;\iӏIkWx&{:_!ИH+[e Q鸏ڥ/DD7IR&?U}bgJ+&O(8wItNǜ;_y{/"CzpcE[a:l6-IJ0  p ش, 5` 02?N;KEꏆ~CEN;zI!/bilK_M{q{/#1({ż:"Io_'}^^C.wav~4)]/ѯWz/!"Q}W~lM h;$y¤cE*Y{>>?sɌyƦϦ j(rc¤frziw|+k<]Wݛ~;ߛ~/L}rC;ԔMy|/q#oLjyz;utv k=g'c脵 #H㓜s|Nrv%{ .meIhNC9z<+J9*Aߚ>iOB$R0>ȏݎ p@$4=נ|1쬃h4/B粯o^5|;O}8'Ojz~.sm(!ŝ8;i ;a>]ͳ<Eu{~fw=w3]~}qF foiA9}Va37Gf~/7ʰL@˦3z{k>.]I/'7ܟe]v\C?C)2:.K}9YOBYz/`we wä$R4h$cĎHrV d/k5ŻȭB]Nqq6P&Yd  tWjҭ-^}mb4ʴ5'Mkk|w.I#Hy{u(9$LC v݄BQw9+ׁ2羉e~%`}5 I.A_irZ .gDq1iK/wI4 5=feOHNa\qB?@OvJt:Ƕ WGU<+o!@Qͦ I-r118䧒6-IuXG#ZuF[2E>fCّR*I|D H%4ֲ_i?RҞbؖde{-5eoKۉ!CjQc1l<dBҪ/m;9o&#]@(:Pvs%]zaIb0i}"3hMN/tŏH@m6a͒"/ lC ̋^@O.pl(4#J"@Cf 01AYN"gZ(&,׼}ݹħS^oxxď 6K޼ysq-~4@uA5y{'PKR*zD!n,ݖ$^b5!Hg=NI~<;׮AqQ|Dо@֤3Sϼ|Vf|sX?$ad.yA!qsC854-#mj T}a`܀)s 7Opژ2d0!3{lXJ,4 r[Dy=հ2:~P?/7REH,U"^dMo<\<ٱ(ƞ#׹}HgN7z=ol9Mi`ރz^}"&$Dsxo". 5C2EI=Np"Li|%#[ >#njl.Uߏ`%ƤIq}W^yyͷ߹ &ᯫ;a6bj/}< %vú>?X;HӮO8>Ο7M PI$UտW+hx5;u8|g <1o韥y\H=td')>>1'syL}pNrN[0e0~y> [aƇ~8}_M{AeiA9}V~܎%wP}Iɳ/[+aֺ|LD0uY᫵^C\294yOJyl|/r|o8{/i埖~o>KyK%=D;m{_2\X9]{dI&Y8G}t0w Ib'뛳?tL\%,gɥjt.09JIaքI}HBARI؄_M6;]ryK$M:oдצͫ.q$G޿s{M$'.SIX?+2ɖdId]LBO2-Mޑ$,VYr\XcvD1 E7@w49wVٿGxb wlVV#nL0Wj}*B6pJr8k;XK!Jm4Ҫ b"nʶ}CM_6$텿~:+2cm?`si)(Չ0O[0(@8 bWt9/}xmE 2mYP $\wuUj uE6`UcJgQ נ} A5XIBLi_\mD>&'.=PCטaۺK~;5$ؼT$.8Xpa@㿵k\pz1?>(QY6MxDܹLGmÆ$[+A%3^8Ȅd0%aӱ) [7s%hWL&|HP>[p5Fd9v68S'γ% 1x_S_|/Ů h3&;&QZO6hkϫ~Q}9,u6y;ʶ+yP1y}w|iKu s//Λ/#=ny/rL7ߖί}sA𖯌7ѥ׶Vޒ0=l>i{&+kAϓ" I{d@CV}CLC;IB F.tU9C&Ig vDwH";@g҂<ۅQw~bsN_Iv["@,bmޚ^tƻ;On8]%iMunlS.IS>"Ņ"-*&*4Yf )V ^h,rl b] d,Lh/}UF|=7"^}G6_z&Ia״$<$I䡉nz]AI|`B1$i>ߩe4,&h'i6/?8ˣeO9deR !4"g`/Ck;0T,0Tjn0@iЊ"ʩ{6*Z{}cQ),fQ?!/ZYy6 DܗSJH^}sKUZ]sD/?ĭQ<xAab{ow3@*w#~u^1?)Ep!sOV|>`3c1d4 0 rQװI[Q)*W1wcݹVШ pAh_K^ޚ^#a.O~뼥|p}ߝ;NwonM<*`FRV~UVs$NI^So9lkuXG`uxN#z8+r*-y2-wܥe'z9yo7\a9RVylj~)C2NkRޓn?M{'x^;nG\VޓwZ yRi^_u8yMw*H?קK$*xu-6LzI␋":Ⴅ a%>#=$ivittvL@ O$` wJ0aM%4>ovH+(/ mLvXy]%`r='I" 5V&ªz-|䂗b2a/U˼l}a!+"eM %ZI[$#'d^&qrwں@{2/_%tMcsI$JFhWsvvC:2⏝u\sawoN_M =1ar%:%0.Z۬$s,֩P 1ˡE.hja۝[dXWMm M''l:AЮ0)4?(-ȧmߎ`A%1kvc}]`\/=1hjfl->:EJTpKbaJ1a}drN\M>;YcbGu0Y''KNP7RbSы/i ذˊxy$#<^W8縀P k1`p0(mN0YQXcQ'|N'?)?!#o'kob@ !{k*1EUcegixǎ5賕X#= \JZ_C}A1Z,ªIŘ .VHb9k8.8[2PNtI$@*+ͫI9SmBsֹս-3թ0>Ëf#,*g8P{21]ş1>KYra@,>"qi+LW>ӥW?/!0yu7k1TcꉯrZI JI&$ x¤I/ 罓zG#ڝ>D~0h&o[~z:Mrqt4q$P&6{-dOL9x9Oj/>>{=h+.Ŷ8DD Q_QI8¯(UQqS0xcPfD.dZGmgr|]۸:#~>$LΟ=|Zާ w͒g֖}=j~ڸǽ=y[O科x>t׾>wjQ(yM4q9ihg.irھ%ݳ~}y"ymno_11'/e'8qzO8y[-kI䜄f)8}K{H5?0KA2 %Ju7kKs%;.P ?,P%.q pܰi5֤ ̫ nlK9۱|Xɒ.Jع`ڹgھ{}|'M3m`x&IP|^O.Belœ:,ZUJ,\*؅95p5h6Wr8NI FI&Pl[nEEmH/_.R,u[mD W+u1Y2hx HOÙ[<)x ݽ DV' T%^U94w, ~P7cγ=\L|̂/,Գ8I39eebNjnmd6GuN~vEP΀C0*E׊FXQwR.3$78*Ʊ:!W?msdhhh3Jo:kcP^@ʼ<\aՇ@bK>)[g- -֔)cF'5@VDĘS|NDfbM0RĚT.mWce F] 2#zv|y}XbeĽ&VYn m{l!sd<۶ WaD%T;f]PTaHrx/þ%o]_b(ѯBҩm)G'7,zu\d<'ATI_@'vG}Ɍ¤8Ў Tm-|<*H_AnT1@&L*#9U?#>~'^$V c$!ɱ;,f~0=5^}/O;$Qn_ ?;?kSu[#Q{ M챳 R45 >䓼<A;YZq;e~w.7i u0CGgЌ`jTGbcb-EZtT=ڥ_έddvU^n~m{ 9K H&~x#ʒ( ѵo5f/RѨԭ ͋{Ǡxz YmV4 TԮ*Ch(X6AX6I}xl'Vul/%}eKFhjl1\!M֊'sL bde쏺ׁ@?b/l*Z>[ң8t&skXG`uh;'ZG?sfa:zn [J䛷g=jY ?;V9Cȟ ѧL/oϊRdsa,$Ż׿.o[)1:u{y7]Q*gdq'Ӟ9i|Vϒϒ-O^8.?{>֥O[[8&蟩uEv̳ I˥tB2p\Wraŝ5XcaǤwp7I^͟ ':X(v-Jɉ}EHj=tA^KֶG% j&ɝ[2ya.I7x%L>y&nb@dj+Y$:xmmMgE>>`a0#ɡ-.Ic01aE؊$$EL8{InhxUpxbBYv~Ou!qIR A X^NEV*3;6x_ =d?KqAR Sǘd[`ȭuEpم*$I5ۏ0/ftrAWVx RQe+4G\ fY9fxӣ?d׋QStS%gꎃp e2*EfqSR& G@cLQq'%WώIƮb<͍ɑ%])? _IҩuVyRSlDנUs g9#i:@J5T@Z6!DLĩ 'YWP,EWƝ7Q5zw)M!rJO u%RFBSnc(!]vtaZ42F)zGEZ9gm#PR XU~;"aRjLqFo.t0VqS#s <.p`#0V(Upa&r+^=c'ǿk'udgD2nju&yPCXk-c$ge"Nk%bnmRKI #mj4*٭|ҚVqh]iYуoK ЗQE4R':SS*sbg*'~<~yrmY?OkkP O:C_QGX}™klP>i". Y<ԀbbDWI2YV0鏪{mXr?#eB#|Jod(.39|(&*F3V+͚GU&GmŐ]thVNyUІ,c.B(Q_7q}]=&UD:%x\;-c鑑9z̩sNΐم)9XP0x5. #$㗳uܩDe^S7i8, p~¯7~ AEvGIJ$QK2@{2H~TN wM7?{k}6ޫ 0 d0iooOׯxYl yk>ipM6|TtzE~\q|Vx\E΋l9_;?)Y^i{Wr?s,`"Վ&fbf͢tL..cRK4Xb/`cҤ {fn RsNrT`쮈!-Q-t[Գe $mq$Avl$[;m|i;OnO׌:)hX" 2Q^)#, Lä|%$lюÞwRm$ZY3)@ldu9 [Ƶ56YANH$xBϺb>u_kh{wJX 4VEwD}S6\CV'_L~8%Z KSdQ4|͈q n+ֹ^9C&YcoXE~ ev᫜g%],^) j%}M*ƲCwYڸLw4VF9wت'uMXي^*2U \@AnyN3A1s rEBU!RH?4Az'N+)[`h|CVޘHi;$g&Wx>Fq^GbeLhL"I 9X7ī9_cqH3brZrԡ}M)^d+"htnID yMˆd)uGWKUC,;>8}aȣx.2^Xu(LF2Id:O&v㒹<\ls֑Fw*/]-Ÿ¼РJTswY[ m&iG?FoMQ.aPABf[ܗ="ry.UoL=ν`䎁%ZaRhY%cKСhWssIws`A+HVg좖Ce^å5[s~0/pFev0:tahCdS -tl59> 3e<#+iQ$A!1*=P:71Zҕ-agPiMp닝)uSX*-;b#e ihJO|hAj_J?, 0%a1e/s6&inC}-fsZ^ܴWWaؠ> ->pc\:'Ad&JN֥JkEjcl+1UQ..a4-x$;Z8-~ݐYL߼C+ٿofɐfudTq=) ꙯g$Nw^Q};$*:iCB=vJ껧hv)H8 ~(/x1HZMC?/]dKM䗄.wߝ~K;ӻ$W?ckkXP dbpz[g:g>iuXG`usY?iY|2F,Az_EZ|+ӏl{Iw {{9J:nGEgYӋܯ o;G/= -q /|^sp]9l]7X~P!OK-~/R _s~m,{89arN#c.Yis/|bqD]]`6i" IRd5(I".?`G%iM1QkEꔋVC$N#aLL0׾\5W8xBt˂;)j}u4]p|m. <{wxM4z,[*uD3[LtWto`a$## Ț W;)v>gr]LF2!¤D%zX$14NkJHaHP@Mp10E֓4)eSf 5$@%/a-yxFI.&PBZ/&eK+Ea_Wcx`j&>К1}V`2$:F^* PLLWg"a= f+% "jyyO۳J :$IOS(>[6rM5g% ڂ8 (`y&յ}?Q6GHڗ^vX\"Box3jI:L:+)YkUPeh})CL9*zO2ٮ[Ť5c] <(*\⼧ sxVfOܰ?255ϒ+WrGsI@mHB%gkMp|w]Wzmc>nqcWs;J_4T@ c $ObO/|֏hX?jѩMcPgR* }/~g`{7&%Diѻkq!>r3Vt~x-wbR\=A$|^w?Si4 ;}NLrjw+ C_:WCsLQؗ5W&(U| ,tU;G3s>l5ZEj\Cgh23mʡ~)5 ?QnЖJȇOG*`'z/:SsE 5j׾'4kG[ŏA 73@H!L! 㩕Ҩh<"$y ;Nhwl%V6/jQ/UQ&c/QDH_a{T {̓`e=/Nȋ<;;hܽv <kA|d:3}X'7c^ H]i5F1Q09E2x]_b.qE芩TÇ8 5~̽Jsi3r+;Uϐ)?KWHܮ]&_Cr;ߛߙ+oOo܅{t$#sFxڷ1};IrT1NgDfuuuXG`:wV'?̈́={^{0NRЇ9]t$q__zDq韵IYӴgE͟}}k?vdyAKG9Î:M?P]߲->/ e.eڇ<.ci{|.qpMbGx%ϋyi?y~q<n`ϡJ._çp֪Rr.࢝}6. >0e ;HK?,@8„5#V )vút:#~/Wn o}X)--y%AGI+ UU7%HϞ-~Sj*tISGĄpI CYu\Hl-*;C\*5>e8w()!WA[0þ2ˡ>i1 kd>cק`o A{`pj΄}8DڢP:_ qDNZu~P@Ҧ5N&|WkuŶFUWʖ[ =qJzqe^ێjTacB5җ]5$,oC2"-ZsNJi$gƛԞ8=1.\Y(E=tˀYz fP"F.*Z6.Y$ȋƍt-m cAݽX lWYs\;R}s}Wad0 c=tW/hCNn9CPYsЀ1-82E8SѱIaCu]_SF:c9K'f&QW+9x;_W+;OnћӯNGoolM}gӮ1lהɼpm, w.y3Yy#:'SaޣYE\A#S׹?d~x? z|lznox=fNϺ}#.O'0a8|-g>c]YM?Gmy簮y?I[y˚ `xEw=]G$q'6=)=c<]G:Ni>x;u ݥ%A$jn&q$wXq&wf/oHc2()ɂU%uٱ`'1$*Iϛ6K|s^+8-"I*M"=N\2st2;iܸ1юwId ݻ>;m~wuu׸`uؠ,=]\kǎIrqit 11.iUV4.nAB c)DOUL Cvw=A& s.tiɅ,*Vw{S.W~SO&{1vFzHՌcG; tæ^4.pK >1V6IPÌ2)Yq(%!I 9JFJy8Rx @SJHr~g e91J/*!&9)<zQTmh0=e(H:ԇMȕݮ+@UO;<3bC ]1 AFo:g4qiqWu?UY(,^U'Vzx 1tԍ+(Ubnö G`^K!6Wm48JwÒYM+Y~:ʺl4 //T*dk90WIP& [ э،A*_x_`b'en Ω8=kB ^g|rLcPrF:mrG徦?[ /llO<68=OWlg60N Xi3Zr?%ee[{Mi@&sL lhp 5zKugE8e"ጠg-#9#K_=O(1=x `sl%Y8 a_(t$A_tז|_3Eu֘Q^GI'K>}aTc>}u zGjsֵmAXəĊ6`L)GHHHvD5cEʻcHֶAZd(FIԪB z ijʍ {=Ya|Fݿ̭F⸷[ Pwc"ޢv,h<)=vewQx!c(Z][q\P3숣TTPx XsEO"|5:&8dƈ}#80BS%tP0|/ 1AsPa\KB-d\0lX;mߑ}#؍E^dzӠWQ^}. owmo_&i!Ǐ_|ӗ?9IǼ.~+1QꞢ)zu6.zBcT匟3XG`uXG@=#ǝ0ٖ$ϟと}V\ּ޺4 vM׾&}nsڗs%^tY׋ҷ%F˧O8"|Ξǡ4](]$@b6;jܼE$6oJ2vo"'M^{oM4yC^]Id`:fj# QY"zGQ!!I@IDAT ~~hJpQ*p~O5TԠݖio=s#LLF"g-ОX bNRrx(pc+MD7krb3#;@[qΎA95.E@Ȁׂ N5M8/vTlQj5amC]z1LI= CG~+ˆΊTڀ,{h"A dIߋWcv,/|Zl Iхx~嘪ƾ.QZ>[>*@]"C  wQV\0d]IodfG[q-J$"sšΡWZ mm^h%7yh!/>d.{ZpErmTRs2dzЂ%NSC[:Wd 򧤲j|-:Z#LÃ}=CIYڭQbHOBڨ̮W/qq4*DnZUm- bqu|:L e(C9$ VM =I[GKtswҗ e3nG$F.at*7R ω#VkL$9rmg^bDaZB fDmA$>D؛bc"3~Hfcq0.wq $iy$ݜ![#d22Ƹ+?d@8٥;aAf~0wV߄M۝3~;[uk(.jnM ~6Q0^b|_5!}4o|{ǷoJN 3lːzp~܊gwߝYwjק\s#:#|8˄͟3f; -c~2m[<7u&|1=^_L>=>kq{Qmz;h4Agv}tY6CQ4'ճ;oGDifa;oRAma|7o۩ O$oLΝwycz=m^oxݏDj$^Y>W!# SBOےE=1&udEU<K@il#z9"Vz]M9lW;Z0s$!b"ԃuH>ˎA29l_5jZT)Vud0oƻHE|vH]FU>{[d `ROI!I剾Pd*߾!pP+~k;ӿPsnQ[ݦlC3dC^6߰-@jS~BC]1֕-E2S Yi-?nLLK:3/R\=(8}S)IPz 8 bb_ِe܆@`4`|5)Ɨc倷,U RSFGc$rŘۿ'iKCc⨍Rg[`3S 5ώ h >ir%uɊp/%A< 3;*VM.Ŗ(`ѤI5s/$Q@dBΟ!okIsG[Boіe.F팩h.Ȑo_t?ۂ7P bNsb_2R5fMڢ1Vhe˹b\b*0ኾgIW45&ZҴˆ\ tK{ ꗘ:;wX>I]璖l/cǪ!:d6Ҵ=ƕ}-fXBjJ eYua<w=|߲؆CJ P2QW"%YV`B'<%,Þ@cK/a=c!cq+:@1~&Y;auiF,c]nЏQ9lׇmhDbTe&gZT'c ꚭ lФ"ty#ط|< e$4hAZmC6çr=(=6}H\jLatnK.Xz<>Bq$%~0QHj7Ԉ(qW$g;> 8a+IqErߙ~eOxkOnMoi7߻1"&*7UuW|^fon8GsYXG`uXG@}8ݿzvC8OL2lw7<>=IKq8︘zQGdˣ^XԏZ,>k8x>Fۃr>̇ԾFӜ?l]_۷n^o֞{_WyC9J}8ty(ړ:>']ҜĖ_{V'I:u?I:.6GɖqqN#I%m;u&!Ib,llNܵ_^ʎO*Mc5eŝ$uwo7IܕcxvǂjmtNݡ\rԄG_vwer7 XqkﮋHk찝ņ-7-vbK\T2g ]^qD$O>uc}]&ici{7$O bLWL",8uGЌz%4/&R>Ie'3&9j ظ%JO:mR6?¢lq&DmkL*o; (w S%`(caP!/vI,Iх" ~Vʎx/dNVu\-Ȳd 3H,+SFİJ.|%mv1he3S.%O{ b[ X:D)a)=vu1 O)˨P;:\W:b <_Nc~%1Lj%`? :Di;" mx*BQPy"[iS\זQ'}*bRr[z$\Q)~q,b3lv7QI9R+c!?HjRQp%d.Υ|+!Aͳسx/1N7>Q^QF{ӊ4v>X8:K@8[/ukWrju,m8ۦa%n yٟ=iCv!]>mθTD}MJd_0iA^B/m[##k*Ϊ׿~KjDQ/AAAa1V:zeN}X?$\rQz݌G#%joL<Ž[9v]3q?lSn A`x %[4>:|y*/Jx!3KA؟4ln{oUB;̞-0HܠؘYR(Ga 3|g!}Re_[CԙA>&G^MՏa&ܯ}ߝ}Y?r<85Lgz3j;a!񫱂N=&Aeju,z/PK[#1;ug$-wq?;FaqnU;[|ngwGק۵$Ѿ{Ch5~Vb{YGkxxC{_{2~*'s\Q&c%asaGs;m\㧡}itX|lxŏdt|;6=9y}Y—:a0Xad/1]zi/OWL;2p/tYeu"K/F.\{:髶/.>,I;$*Z7o_筃,% |؉";g\z_T# ]ygd] %)_GvגѾ{&eloti?=|ӽޜ6>|{ھ ;R/:Y]\;p#;`D^Ș8 ʉ_tr'TYQz%XT۪A<%P|Dۣ16 ,2qYu+rYAuxRm1XW)m+2F@\bx Y֌+Z0dŸܿ0hoa}TW C_jUçUBJvMm+~Akr Pq2nYwkU ,*9*]q[~j qs./YcrfCWDO3yM%*2}*80y#&),`$y)}NOlpL=rh_б܆-2 nDc#':?Hq]Xqֶ8#3HjL\df'/:,|NZ_h:{|N>mF߃1yO^{{y$xrm0q&i2-vs)NX_XG`uXGZg&y&u]#/ hG]K|k q({׏gީOu+85\}]viσ ³/s^6aK_҉aωgD.-˘—K*sϯ|gE{KY^g{ 6QzNOڎC?O2>8[Jq>XWk-xja~[JbSBol> 77_k V6 3o\Sk;[w/_qY/֒~ $0(-Aؿ=˛2XP޹*cP,0pb*6Dz!u"h6YВf҆Wϕ>eQ3tN8cØ0)O>,>7i#ax '<7GR1c(YRFCbQ3Jo "O'^ڊ a[,XV.xP)o;c]EGϊ?\~8VV\WF"2|O@Kl`cx"VT*^\P(+{5 )rɽ[.(AYkI itVba;>chBV %JPFކݒ? %b".u[|Oc*EQzkL,JКzG%[s&xj"aŸ֟,C4VBhm٨vE˟O$M_''6h >ׄxGHP%*ldy ՎVRk->^t!(i;ԯY [P E"><8-m+nlZ"J^5df)YM$ȹZl \˚1]B_"]* i G;[|#֋^u¤\#xW1CUr/ ȻQgv^?qt@eo (GWX8g$LJi׸IuYJ#:@e,W_ `7,xs* 9owg'L7H1t *pR^sJ (:a~_G`uXG`Gࣟ+I }>K3RwjS>CٶO4~00e{ _wKsq pyQ>q|zzfû<_׏#arngWú}~:^\myyI?z_}4믿 _m~Rni1IX{V>9]䜦?O|z:}ܘޣd_\_+I(|gdGpM$_nܞvv6i@RIё#HPLbNJ {ldBdc8M_$krb;pIAfu%fRྏޛvsS%Mȴl7w`"Q&S rq;ޏ~Mmtdo਍&L~(K 1 Cm҅ pX>k)//,d͸:#:TsE^&L^VE8oǿuq״R~YQ}Q4MБu)N|4lxߞ?N=I'Lf|NF+'4k7BߒNcWk.D߸'NT&I¤^$G^'L&榧TMSM%@]}ɖ{$KnqdS4076I L9iL?zgz9e NtctcGsdɟMl&c3tѤlq~q!U99v*Zm 0n7Tyֵնo4'!Bm"*JoX^KyR6c<&[% f*+ȯ&ATEOiYӫwlEp+hWk/}%!GoJmJ+#' v"OUlI! ]˅b_*ա [ 9<뎱t o MPT2GBzc)5:v x|a ȫ|RSx?EcWSvotIceLb6JǾkQ#mzr=oDl98&[f$Kacᒤ/}T Oǯ|>bB?O,5y-r&֚)Nk}wk_bO(Jho{ӈb=BFQ8ռ߲[9O߇*јT!5$=hwh0c%2]SGTC16FCǂ8-h}D-ﭕdU}!O]?+YEwo ]_ Ku0{WHd|L0O͜RJ~qLL*0OĒʑ\äXcFJ+*|u5dȐ6‹pFyI_8N!("0dqM)@T!'u=ɟ7.G@ZZ*nx!jt4-T_awh)'2S ;y i>8/,I~me&HtB["FNڞXI}:Z7 igt_7cP@X$aU流mg_8I-G+[Q6;-hŠ?*2cAD|5Ft,8xȈ\_]m)x8AdFa]./|)}.?݌7F_z׉ܯMEܹ_%8cЮͺ5cBxJcYj:jMv*AZPŹD+*f}åݹ=7޼?6w^O$ߗ_LY osnѾj9_ rK~&v a]XG`uXG\bweD>jw &^gû /q}4lzƷx[ӞDiŭcs?˹8ŷŏyUW0s([[[OuYanھ6׿ur;hRǩ%^4gd.ivii쫥Mt,h]*ŏ'-菫Kϝ0ٿ9n5/LR~6Mq婍&'bQI)k$SGy>'A)ţ} qҍ].MpxdMpr!q'C72=&ӷ'ʩ&OڙDŽ{wxGL$MIgMhGw|`@g=6׍l"m @NC5ժM& 'v3OҜ i3 rR$愈Bb3hsb XKįB+eeVdk", #dn6H]F8ڋ5 :1 T*^f. Eu*K}EYOC&Poc0NuF W̽LRwWfe@?ĥ= 7bgQEP) ?IKi}=^%E?v6.>ԜѲ2hf Xo7CN `Z&9 O#0j9A9Zʪ f2[cH[SBSn<bA' ^b4-KCRI [;ZvԵ5^_[J_C7]uر] r9dS_COP糗 nCGcVP/^j~W5V#ku?w]./|%9w6>]RAí` _~qxwgcQO3fq@=.+@qrNy:$7tCF/ձ!%†Pv ^cmx_Ƈ-;gk~\ן3tuA3iqm'Wy⺎٢yl=uq>OY2zl䗿D' O(uiaX_W>Dt7}]»uIӸdvla4,_6~Kϝ0_刺^_˱ewo+!nP&}lmO !ҍCHY';H"#+4LInzh@:N 1r8a&4]xӥ aO G?HǏr2g1u}F5]^>RIIMRЍ~&$$Й/J- o(~`(ތ^쐖_\V9X7:K/ۆ1vC+He|,X6=ٷ:Ŭخ|Y8~KT]ׇ䷾/#%K]*ƶO8^s>˵|RZ$'ތy\G /$:C 4PKޕ q,d/c(i[N<4襯۷@SWՂbh$DLׁȇ.6`Rl`ܩ҈'P;̉q%InUo1gOM()Ӱd*xDs -ICU? }@rRCjK=OyʠpqkA+"\"NN? : OoA6?RK2ϔm)ؖ)' E߲]9/--e>-~''%=3,׻%dicO8bi߹&_vW>3/"@n Ip$jGY㸷y*_|$U1ى&xܡHh?Qu$$lL7(<~[};hs5@e"$Lucz`g9o}}3GHk7Y,j؛U2Ge@Cf&U3ZIȊZ^X*OQOqBǶЌKK=*_e僄Єt8c7|mO|Xwyi!¾zk>냗Vɛ1YtO*8زCz-/.]uXG`utE /HMqu79ԟڲk'=|ܸ6z|x0gw9Dy,>uYg٧g|~&|j^%ef@IDATua^lzGأb|^EsVX:qWy=q6,FO |OX9d̞Iqr,\}QA;awӫK/֎=|qFO"i:$)i < lxB$<[$1ɐ>{z6IGRicd&Knƕ5#boGm0O媽7w<n!W#@MΎu Ϧ?xpLNw(dKPU\YHAb)?I/K&Vr唵lɛ|a]X`;zܶPҔWe J\ux7'HiT•IaSDW k+4DT2_k|c1 I#2#JZ2]U&̍Gfأm،+Uɸ/|S<`p+qQ$59kl[bk6V?,Wq^Ea y*29-ㆨrzJ7yi,rHǗTV|g|3.-xi%陎ȉyMu9UWSU0Ѻ c6@-9q*q+؆ ^V>Xc/ PX?*8]y(SPJj@wyl cvMh)MK~JJ9Be+]LJDҡΚR d܅hڋt")W|yW*JҧLS^_Ot5lR^+C}~1A $L铥;k ow ]4!{i%x'kxc:ȒRjXGmw.07~$;":Z&tNVYy3!+ī!n*Mu^1`=%\H0 S,|ϸ=(2.#-bWb|oO\w_r0 ~8"I@KQ҈>ӏi#QyYU?\2fމRW, tlԡW/OgP:KL~"[}R \tGQF!he=2~ЇkUzZzbf P~I4W>VK9#y :xT&Z9Ay}+=9\ÛBCa*>iK5v҇鎖QvbS1".[,TϬl]=_~s1j{qA\X$/cB[sN`H.?gRUm` ?!){O+”!Qg¸ɘV^٨81xAUWg)T$Ln\v.O?L ߇wF5iʍu,ymj"EH |s0iDeuXG`uvvS^eemekig޽82iROutTG-鏢yaϛgY韥}zmY&v\X>/inUmկ~'|Xɲz^=_yM3E}|?)g}׾%g.坕tKΝ0W^nИբ٤$1^̴9 16)M68qk$MȣvJF>8Nu+/x}zD> &Rp Z79YrG ֦&\9sz+L|px={&I|ᅗ| F ;δ?6{Gs(ұrOmfUQd P 5t1Hb$ΦTRՙހ1*[ur3Q:j1yʸAyT(E˲aF0[6 ${ff#d˞sT^V+wb"2:a3pGTIT iggpKbmep)%A"UDR*{!uJm_dvMP8ϊ8(l43n*!<;B+> ZOEv0R5b 9q0¬ql6gP1JL(a.[(y^Vk4 TudGwN["M3&56lb*eGX|֦(03^Ir䑲 NOEIi`7y&pc mWIOB ~}!N[ס>vHb[udJ DWt@o~ؙ5{JtLO;Q5F(T* 8Ieiy 2>Zs\939ym6WHG*ADIBW!_okA.D݆&vcv:VީG2N[!O%LtMliSފr+VIl]Mx+roM:wθWC '.Zb픹m!x/3Yυ(kV:4 !(dpy>*UQbC6UDK1kIs#'ëFU05W(tN͔{ߪ_*O \? )fvq.~)QoOBrixfmh<{zQA*TQ9RP/{g["[d͇2͞+P+H +L8y+#QrF~A$רfZ_^ Dd[y{`H>ȼ+šSM`wW0u,s9bW#QCfF)U?V ec[ϕ$F*dNwAl&b||g aӷt{L߽-߆/z3+?ݟ%Pc~x# r$:#4#/S*av\Ƈ%w~w??\%k S&--+ʇ"0هYcr\(9eo.i?cx_ߚ, wZx9O<ڤiN/G5sKUoyK=mO75z\yL"kI3?Γ#oiqrJwyҮឹh<3o>|}N__/Ś6b<]lи鑛tקMw~8mNj;lz-=k s#˒ WIgOO= %N?|%JE\荌/7"9j@j4IE#RYb|BXmA0ƤKֶ-mSeYgLE]4Z PI賓a*圂xٷ lOa iI ժ/CEm)X"s-D WXIJJ' e y] Y ô! xK/UjoHi#|T1vGBSrchYwe}$C; vE&ȣ D12]’k)W@V1dQNՎY, !le2T"V𵙤$XYXy"̀ʮ0lFP諨Vg!8HlJ[ڡA$dv\  ߕMVd`20<8A}0Ϻ8Ryu$}K%ƠEG7!+ \hׄK)ҐzWuqӢJv-#!#>|jSh%*r _<,VKG pcЫH19 kjR5_B$:6Bc(YVY^i l} ?eBtE뀭AҶYס2^PM%E'*"#WhfsYUD|`%q"W=iҖUЋW|'JKӾ5/]B-4Q+wMC" ͬ͘!%@EۖyDat"c&<Jkrq">6=!tyJ(޽:bۊ+\Ug~V(ۙ}@> hfz䠇 {Ky-H҈CL )e5b]\a#}%}k^^ eGm*ƋC4Aw0?/v7o=}6? OUT:i=XT }護 :#:5YK&L^VҞ˶o;w7M_% w$tu/u콪6&oeOC?]ڱҤѮ'J4qҢ kc ]%_Ð.qU:rh>QV8wBbxɫ|;z=C>:1bs.Sת*5ΤmYS}QE2 QX J%0mI0LJM[Jtgd\i>j``7z_cn )?Jf׾ r?ʺfuRǚOX-"6t}gXSr_EWi6tWhFgI vxwm0$f}-* w`׺-,LrUG][JQ W1,pƉ?W'̲$W‡:J̭{66amYl dRu{]BPm0e\' {ȷ._b3ϱ5YR{ uhcdܷ2~ZitxVIJ.~6'CFs52UIKvaK=R/) WkK8GA^7^ ӽG9a&woLw'Ge0!SMH57rj zI]VS~m/.ya!kuXG`ux"pbf_&a򲺏*?}QJT`Wedg~}0M'KU畹?n픯gy4sE|{v>)W<~Ks\iEW-v\Y"~.¶җEcwԸ\ ?rYOµ)M%|ޖ_:\Q`sg+oyu,zN_7x_Vy/,El\Y}<*R&?/p'4np޴O҇VnNc^<}[/gD}co0ySd1S%_z%'o(ɩLmNܾ1 IJ7q@"#XN1)W^k%:r($oClF5O^z&I/M8aY eS&I|pʓ,='!0w}~{Gsw}N68 0NMS>TJ>;T" 0>=bи)C{~Fڐe?$ƃ䲜 •UA -&=@.rٰbmP8<%!.Fh_+̕H4rΊtuE4n]%$ CƒsSt!RceOP53bdd w,X9BxxJ~TF%Vw ~P_4F0EhrS%F ӾmWx-̖fux.&c[S>X3^L ʖ,8K7U$@*RKjk##..đ]ƺ;94^[xeiҰR Zw&>|G& 䯾WmlR~- >Z[/B盅 83'd*I*=%"-_&t&@mG`QW#/*[TKGo-*r߆@Ny+ϱ5/Z81ޥ餢~7RMmi{xIq3VU\ Ӵ?!^E]PpHb W6?$W+pzl!j__V,Fj0-ʞ\cr024$P XCbdB|:ijsmC2.u"G )??1|hS@PPĶ| 1\.c}$:8VC7A%mw50WV"ÊPEbx MЎyO|v)C_Ts.CthyjRuzs7f O @Bc2 /SZ+[XhCEh= V m޽n;'x`n 04HtEL-^]۶՘Ct@rJT`#Q4cVxyM[4|A!CnW/펥]ToOכּEzۖ=F•/7byFG98 F~c:i;AXY2 }1ݡƠ}]=^c %2cDŽ=uز>!>'p?EsŒzVcH_4_W&8zlK;'YoyM'Lk~#߽9> Qe'L"_Mrиe|R{u¤y% T:#^pQOSe}9K |ﱇk'LJ?/S8l1l,tns誹\${I{ʓ/Y%iQ."s!\͏[߹{B'}Mմn{mX4uQy夘\Ud8oz6iҟ_ѱq: ~ui{Uҧ4O{etOs~.'/q"&Kse]s'LnקI2|񅗒{gSLd4#HtY/z1vfiXﱑ);|̳q=ݼE$IIg2QLI༑ ΦN>lm{ޜni{>XK\Ljϭ#7AWݔY;n| ~ܲ6ø4x>3q>&JXrK" Wjn sE9p4B.;N/qG!GsUX,dacm䍫%U4qs>}ma䚲߸/ɲ( F°1}MxϫcA:vO7~Í㌝Ȑ&NMz#0P=жmС=;0[TKI;G#u2_UmFBx4_ }sxN+&#K:xvb?GRVO&q:^aU"ZK|zk#p&ӻ3J4PvPEq}νCijlVIfV2 kD><][^^ܓ707Fn޴Š_= @j~bj.mfO9I_?)^BumW.t1 : H(U J :ѝ0?S|CɭNK)U;:KbSi VFǽNcD'o/ [dKWP@,`b,C1i1#4ǧGH]YZu쫀Ƣ9h*aJ`d^{vNz*tNzOS)n4JFb%zv FwUݞœ5lҭemSaĪ}8ĸ N8!KU%+Zokߌ$"f&vI(Pi.P#>jW?%h?jZxYYЁSj nC jD!1A!UJL!PՂ4m]cpge C^UX/OOl!W1. [ck4x3N u}35f_ۿ>[{AiR ϠɘU> |Bo kUk)Gr:\˗ZeVbicʄ|WblNz7{ck5a?ώ>D/ZյKokzͷ֏{S}yr^}<<5΃?=-YG<- ci?YZ%?׎yqiuw1/Kkyݞz럄?ͧ'ǫNqtӖ'EnN&O Mdl!#viy!Ϙ\uä<|jC.XsEȨdXh duH?oS0b MJɌUl#&n[`$l\ 꿉n+g'?‹\$D l;}`?1ʧ6Dd}LOs4I?\M+ \(I=SeQ K?@$e.й'E ${$Xa%X7<]3PCdfx U^Ȓ"־7tÎO|7sk$geE:Hg>1J)(* Q1駡E=5ng%ӂ0%i\&ǃЈtUuq ݞZ%G;싚oa~oH_]^I)ڬ]Ơ,ݘ7Q"Qױ.z_&ZM_qsnUчWf6E U~4IqhW<|Qډx`.^E:/%_aʮ$Je ]ZaP3|WF>F}PJAS﹤2ZV}]ewW= [_ɶeK$\}ɭN[%Uj[~T\c08w6FIq5ްK^bt(j:7#cfsaʨcV,GSѡQ%W:|uQ?fKpBu#\JqA2yCש_*u]?EX*)Dʬ(2$.0P_b  sn}Quw֓Ċv5Q8يR["k/dwЗK^7 &O[ƌAtLicq6> ]i;.v;m˘Ú_Qw=NEg _G`G99> zon߾}j5^}}*b!hh?4&uKQI\ʘ[zX-a_ךCW17qCLs}mͯq1p^3'q#7~77fps{?B<0i1im݉-X/g}y}8uL}.'s{׺g޹p??慯H$&e{鏢[7xcַ-g9z,;˧>xyybT^IW_i7u1F,w˼04RF?_gޛܹۯY3&OVDK=]NW_]Zf7[b"<.tIAv4IeƜSK?VrXtBͲ4 5ldj^k#:@U䖷pi?YCR*s$LtIմM'iMp/ї/ IR4 aUɗLkO"vt0 \nm:G۫(S[##^qVn;Z|ܚW~Cv=+|e|Xp$}2 LP'm_~섺0<Cj!)qẢ@K$@*2&r~+KI?6 2}ؖ>6~XTɯ&"7=֫L9⦱edW{2\9\V,d:gG ГMnj}dI}CCiqV-0Mvy agdm΢wQIz dy ο$2JHxwrkLp?g-I_Wb.~}:hlJBW  (^˸[l,\'IC8PL}ثKk, 9.y#:6EPX1pϜDʕ>xy ^}(J*]-69O`KcbJڜUM:M%x2S-^J1-}{dJBka$PTqO,ᚫ]4t~Qx3 G%gX8 &mf!ܿg RKc[>2j :tǀҽlW}dL)C[گP9+2?BoM 1Fd?!%4jƽ5m8L5G=ewpuǕ~f0}ωt[?!a#߃a䎱 L1I#AJ(o\/ֱ(@﫰t=^"q}OSd{rgu.5?eb4$L^ܜO~v3ir^>ۖWna:ǵ¾wN;l:+oe6~$/"p9g>wUb"qMO:v&V,uo\k"zS=:*T3k]&Y~~)Wqg,Sl{a]*_U%LU9„ 5kt?NIKܲ=)94/l7q{= ͜~YovRw_4Knfisu:Mh/O#[8}O;,wy%^#MzoWmk-{~XNSn Ozr=K ""48%,ӟ4~ܾ.w<2i/>Ϧ?+1֥m9?27U<ѷ; 硻jKϝ0yO[&Nu &2Cp$kdEݸYY$#&Qx 06-Mָut#!!w{{ J.&ve0zƖŅGq$ͨ]$qݻH N2Հټ )kW8ɉN|$ɛYp>>l|0}=i}&7m<5o31dQlN>~ ] 8m7rn`j.l&V&3}2A;~Ȋ{$Ϲt$ܪy2@U{˭b~z{6615%% U?A c$qК⦢ iy 'v6H2 a.ɻ?M2˜+9AyX .(`2J{ԟfzDm2˗-!}j(LjS^XɘbBn #&BޫK̿$a:L06Zw--2'$y2Cb>W&A؋ioc|ոPw\hT"J&}6iZhd^/џɀ$X&~Hx^l"6dYA`]UV숉-X>8?B͠ж\0O4vuqZd+liy^YN9&#/ 2ƯR2oT>^5KNRSOא*L)' +\kރ >sHk _%h`_֘6fjTm IY}c\VgXL$;+YZ>V/ WIc_Km{ _7C 'gxmW i[?Tȅ˿Jr6_ȷh?)YtPK|xSNj.}?zt= hA|\J{N٢s5#Q,YHH((v|\b-?˧ edy:f۹d-7kI}j"r LvexVǽ6,1PB28MM16ULZ!>.#/ ! 'd%ǾP"=ISSCJă :L\ELtL4mV ys <;A a$88˺.U皟BsOu^zg9:?1D~_Clr䳵?OBÕ_]&tMf">} [p)"s_s7ZYн}hg^kdᔨf_I]O Tb :J)\I\?F#<}+/?(w&AM4 UGgu\3cLYw]77cӃM=c8+8"¹xW [?25vՏk5ṇp A=tx-giDD,XFJhFa}6-jOo&?' &Oo1 S$K @n@IDAT[9^*;v:a2޲e<|\FO}f $e"yx"^O캌u¤j\7!=-_*t}J|Nb1i廪O"a_;aݿKt_uIv\)ar \KY Gyx.K'ok޼Ϳ7>CqsZ(?zԵIr礼W\i\/zW/{aQ\Ǽ4']O?$7k+;1U&RXEp޺?_rXr/nutP-;:77-)zP2-H j@0f9<8uo.P;q9gZ{9ulo!u_7iAh=\[Fx8KYc~ï %NOO/c[k%tn(?^mfZ2|^=n۸(PO^+6L6p F;̢w~r-+Wt/_NF֎Cچ\]I7i\ ~]{> 6MY~7AtF3׮=ssW4?Ibe8??JݴOY24`6׌"y5n:gY`s&6I*!>k1B^}/<}d^E| s矩twkslnkn< ^+ݺ2@r#W{#@!u;Fs^]bNeWl۬'߬İC9|gj[ۯwGWltd38bfjQ# qnfγ:uNfHɎUaO-܆[ЛU)Oa~׍-vj%U*o?j a*?GYt iR ҿծ4eXF7v^%_o @0Iܬkn׀0KJ歸J=W{{DS质Wo4>ޱw`_J^ _d- õIT:EQ_[7-5AE`Idߐ_$3q)Cz^r#К* i?l&CVG>Nt_9=z‡ xƸ| *܌N3籴/3;1V+Ko*=_y }u\DwEn)cKSy_w d\gxsƳ\^8zm-=6cek>QzAZR?<(cUӐ*=:搮Ā$UM_?\gݬYtpyefz5.q-Ho;# u8h8ú8g MQh k<#;Rgdt3r7 ΏAGts&;_[,R2}wiθ#kL#zn<0v9HS<`4e}k!)6Gᵂ._9kZ [˶ƔCbUq$j@6 o8> 7pٴ͸,VAfT^ɪ+OdPRBq3A(TTA#-WVKG8Z8AOsK?׳E€_70xyZgoxجcE~ӧe|/۳mMŀfU>"onƋ.;W+#M}͑AsXGu|%e=ʕ ꇎF ;׮_~0ﴋ{kwvL^0y{ w; zw Su9Fs9-/]%ݟ|B,Pu|em85I=ˇyƞCدZзq?О8g^Gw2+^<2/۹G_Kخ[ g8ZkuVwcӡ%kdY?/ai8Qe Z4tf漵o;<V+M~4iar?~-4M6Y~m n1,cE`q{.p''E`?g@_}堼 &=1fq}ڼ i=E_su`WOw;d̫uQ3љ1PFӎxH?87=n>Ϙ̖뤽җ+k,{|=A~}{G6VwAAhUOIz 3}&efc.oo`>,Fon}C@GGA[Wd s>i<<&ɟXA΂~Hxx'Yz4gWk6o&Ͱ}|my=S[*mB*Q `fbZ_-qe`#*;l vkq0 j-(r}pN"-aP`knv뼊l86^\U=L)0dPI'$Z! p>+kY@f4s2;$Y&r7_}[auwPWW;lhy]d^[pъWn| m7ܺXp*/4!w*:w5jڍ:>@ը1`L#/u۞Z6𤧄4r̘F={k0)K^ WWl=eL,C& K_k)XwOqZ(][ԑiGwL#!uhͱ>d]HS'1Li*FfrMD,F,|'@V\+E3_{k*sD(WLiHlKuOEOyۘwcY Wg?}v{uW;'̆JclT[TS ?ի|V@<|1G'vajWƶ: Z"k_`~~_'{G3[hʀYY*d\}*0s-=}i]{,ZI,h\?0u/l$Y~S&'n$ >jKi-d&3'3^_^^'QlėŎ6R4]d8.Ҳjeڢ*W IA~3G/h|DƘ & &:M> 6ON`dx\wTbi$#*4#ۃIkJݘ":E'n| Ozܖ˿WqYWЯћ6zKY:C|V8}7$c-cd\ Z1[,$U%UW5@}]CdWIu*YաSXOQ\/umT}LT Zcm=WA\5O~d¨gBNsυ61W9=o ;)!Ǹv%0ys5 ?џ5S_aZl@'p/c߮fȋR8tW['εЦ i_/Cg 2뱕R?A"> `.#W-97 it 0uVɑ'(V"KQU[~FW n =?S AFjRZ}Z +sMisMfy dI,_CVJ<|NJ;ҏ$S'><(SWdM-}?iC2kOGge{22u`o(\?}j.q_.@e[;C)xZ/Pl6ï@`RZ~\s&"ZXg#Q79nƅ_qD ObR u@Gg&}Bc O-woVn Ska8zCDwvԯc?cI[{CܰS?~nT,p5帀6!yhL:p]m'[]ۤfl<q6^CXf11Ag&pPkYZ&Yt{\`rq6qQ3\ݾ}wY"p11yUc}g 6 |):,?|>hB33kp XkY7~y=oIۆ$(3X~:^x1 $"Nto}& oI3lo}6mZm;~ 0Y6{ڼc!@]Qd˄&1p.V6C1Ǎ{U-we,./v{@s'׻P =Op6$rSpG[\\Fkz`?gΐN=V UAl6IC&[7 ot?x[awj&`!ͤɸS0.|i5q(jӉ9T@J;wKz" rֱ6U#Ovwyr>^?ŧ.gKlv7,SX)[Dco2-\FIY~q5nWP; 䡦f,dt/y}my'`# #~Nq Hȸ^r=QnUsKm0k W A>.a}xj7#]lI?3Fs+mĆu𪛬vŧ9vڮ.Uh&Uf\ǀ-9>;H9fEoaPDIQ9R*xfTӈ=@e6Ki=y/{t+5pC$SYD7fؼ>@6ĜZA[`Y$L^E3X#J?.v` ,jZ~,ڞ,z.Y|w_^x`'kh^׌SeY%X58ՁN j#&c)JaHHgY[xóhBa7a[)Nb0ӸpXYR"U]9D_3X 3"skgꋲ:!Ǖ~\L.M^OKΜBa{x`lיcΩ+o}jn3{9&T FϮDn)EPV:zȽ)"vv眤18%.lWY Sh9>|pmf>ԔP2LB>4}GyI (T*xdfn_j1Pyq's|6 |z ^5+:sUGTOt+j~nԞ7u{KGftyHa'8[Fb+Z@m{\:Mf[Na{w(?D_|F[]~52!Ay*hǬM\/~RxnSWZ@H.3~%(Ifw5Wм$ NJ?boai#7Z!W18ON_L3, ?iSl/!k8qO{OOsgXvY/@Gq{cqi4cc}fOk,ZW 5? k7^1ֿ {@ 8}~ mc}g7 jނ/5K,^1;l}GϾhjXKgFRz>ož~˞?>}[7vl}{6i|7 __?Vcku[ۤXqYc7ˤIm?wO&wN 6>${f6_N9(1kL q2z9sLA[ۛ&nڬlV &.,F7ܴ'(Eftil5;lCrfde SH&6%M.\8M.4t/C[YB%U>3d nnnELuWju686>n +ВZC>U* nae6vƝ};װ>; lkpSppfjG-K^B[-!Q@ !B^leAv-EjRFa\GRA, 94Kk!^#׈-3B;ZۛaWB%M II|/;+`,r4ҡulC̐ Q_?K&G :CCDM%?4Qhf-} (`\ckAcHP(XtC:#ڕfh\#6c8&C;@2&c/3L kd ;*β/?}MlePL8|RWHveh[coa&$4|3΀۴yl̼L˖D*D5@e(w 'MtwIJyb DdG[ 1@9/ЍMyeg/nCᓬ҄VޙW ,ZܨtЧծ_fϨؠ?o5Աbkl#_2f'Uks\.:`v׷K}c_,PbsQC,{'ytlJ b@옰)QA:0VE\ ~%7w?ZW#_R Q>Їn5Ia[!!t_g܄?0u?LOaRfo: PEէڌ gFI4XQp4g>h y} dP9va\k9 %\m s9Y<hCJQ4cD꧜{ Mj$B)k_+)̶VTEȍ7Ț;ӯuAĆk婶so4ޑK R.L_?p?p?5YhsUS0׷GfF1C{UF1  ѕ>&$uƙ0+;F{_s4ʼ%@+qԵT >Ʀ2C1ED^H`ov'Œ sA^OgOq,/.h2}81~uksc? rQYǣy'ᲫJy[/Nцck}4s6M? O{$̶m6߳z5G`z0{Rs;ƿ~'5}│g:-g~oؿی>'9fݻ ѯ{w'5W}6-[k@,B83.?jmr 3OZfhqOgQܘyk|yGfqk4kbڃ_vk2qt9NTn׆'t㩢\Tb&;k7zY[ ' 0xAQiKWo듡sR,$!`R4]&Фǭ;.`R54nVyL6xyT:rкOxTt1u۟f{`rS[wfO [qV1ZI|˨䆶Ϭ&k|l|wݼUa۸wZa:j%ot\7뚯~gHx6<~ʕ+C~_?xXYfE@s] ]z^}dONͼ|Y|5e^_[tڿū 8oӎIկ~57y4]qO4cٷn/rwϺNh!mh[|/b 7nɆp8 3,nX1y7PƸæ MO̼F6Я%@a>+@ȌVe|o}5ٙ*3-(!VANdD^NڬkS׊v}Kn.s@ކy3t8^b4"RqVR#0/9٬Y`J(Cl:R -Sqۿj+6E͂HlYvF]ϝ[Heoװiz)NSX#@4ۤ:?VY縦 !Ȅ눁"b]_W<& Φ<ؑy ߛ~>X ]2~H|ݢ]ݻ2F|-<]T@YF;fS:c]&>ђyaQ_(3w]+XCw6bHĶzK1Nw[J_P Iy%7::[PI#SQrL.>}Z6XK#Sd dxf V&acz)NjDžm &$! X~li`7>t+ D_U"TT%-oXfSwk҆pl}iЀ{qhE_'rѷ #_5] tZ!c&h&9@9/Z:~FBKyN4~|Sx<>glI@#ՔLn cY%اU 2âQľZ=R-֊> 2Y8S[)K|i)N_Y 2%>3Y,G.gRo9ÊR9#20;{>Ub[0`WrO.I|yA/ڱjKtx*Q`iّM~})}3TGmAId;x+%Ms\ fLK5ܷӘ77COxa'xUۀv͒=i- g/r2y=L;lP??>CvCŹcIf- } /tJx8[Üw5{Emɟ̮_z~Gmgyf7`ʧ' LE$+neb(̶6e؄lpnJkv@:>."},H quu-!0yv7eM"ҭ%k{:g9 AHC* K^7Oj:K,>v;O~Uݾ,7t{L~Fqُsnl΍ .`ɷa} WfmhqTq h5Vr?G0ڸVznf7Ie;L}dAF{6Ayh͢uo3i< 4=0 0ܽy8pCvM713]0Iܝ&f ylÃOiTZͱ9 -p>ɳD,%^} zhqs`(; ~qyRUV}7@mrٛ|?^9=-~0Fҩ+fm@LU8گ-ac,.L٥ '[M[m{n-?fЯv] q>0،됌 WU:誡omIul+Nwbl[Qn=ڻvr(` yyy#W?ڰd1/̳ᄌڒvp2vEjk % 2% 6:B `,=aB{0ΨdG_yς]]]8w n PiS8ON~9uP`L]?bsF}A(G7`xFwL$uɫ5>tSJ!P_[c,At@)[ BWxFJ'o# բܳxXD2ך?>&`2&Z#N8uM݈{&N 7p~ 週SAi/Ԟ_< :kO͢4G_FNFlN,K"1'eu L^@x* : ō=\\hZt1i|A /N<= F!?¹Z |e] m޻6N,x@dחwO{Q>觎ɔk;ڃ\Lk[.T3?.} (/Olد.i|r#H~6S>4BOKyC—tP*cz/0i(Ka)[سOmid-vt<)[= e"_ZM!H?κX( bO4r\<Ln:|k9!~i}+rrel5VQ8RG%i @/a>Y ߇gTUg#gXA=őָ}gdI͜4tfK'γ `/ow w>)&Y[dy2+Yu#X9j~i\oe͓ i:o˓w>S?>IT󘳟އy5eI>>l6פtp>է lVNh&y&KyCY>0>C&C.?0d.f_l:'z <[N=l!`Rdk8kuTwҥ̞ik84rz=?gVA41V]YI2鳃6~Mΰ5a};o}t%dog?>7xXYu; ;mk?=\K/5O|>EpĊ`I <q{R1z`rXM<Ѭ>._|(&aMaw7lMs,irZ?e=4`/Qd&$!n{zf7. ~Ԣutik1ef&TmY %-f53S ԸW|E,٬02̥eCuN9"k;jv(K>s,:.٢na0P.}fm;wf;w~;priw[_nwɭݩM6mdM%z=Qd8d-͒x׿m_6'AjGamce ,Glkmdee`ܑws_F @Z^nRrd͍IK٧!/7RdIWD1xBX_Jcdr#z븿vzW:f|t^m7HAi/nLl "v5cن<{wVi"Uv9b=5$]'{;dE}`U=_!C|9_i@SiїPHo9P/;[emzGF GlB %Vӵqwc_(Z<aJg3۽} _\fOTn\KuduWKp^3.:ucʸ&_!#LuJ:jA` @䍍 __| aMfY|kЯ <ȩ đ1AUփ(\h~vF*"&q'%vۈ.6>hNce7?/3~0.`m`~ߌ+9!ןd[]e]AFVp9*K ZU qБ"/_?̏ il@ 'r̒G7nK^GZj\%C4SH([C.ݭVNQ_{?{s\yq088Id5S V:7Bzԯ_.UiU_;8ImqSџpLoWަmώc=Je+qGvk]zuM/1c< GW/?s9WʢE\&-.WNyT7eC9͢|x%<ِh=<,h31Ӥk"uďZd|ZY+i)}z:3h#Asw,y  m`N+Ae(\48#6@\ ОGA<7:@^V`7nr]UhvH#?Y>IɈyXG?\*.`<8,k sf>)_8>'ʦՇ>G&R0Khk1'^x? {A;A_cgJTJCq] ]ˉJ-|kdBTpW):8h!s4no0ǵY&MԷx$u4do1c1\ +cVAbN1. U~*I?#.,kNG[&_s4tkb\WeFe\d0w,m5ۏ44M)u\sc?ZdK̇5u?q&/\7Ln`>{=b}z;;'Jt<LzĔu|t9b\T{cY{=lL?n?4~^IՎ![ݛo{iؓ譳OqPQcMv58i6u?=*k>?nvnF=cľ? guJ-w1u33ieka @IDAT{C[9noO8F~e6.qFK6¹s纟Ia{yiSk׮uwv݊Aۛ>G}9Lvڜ9&O3l-@LiLas쎺@@_8垯el9f sAM-``.]t#wܟ\OPd]`pwWOx1Љ0T[le35kUPmr/;XE.=,b>l51?b9+eo-IـHK}i7\Ozx8Kcn(FW`6-ɶY5JFo)(Eh kN!Nމ=oŇQXU}xTL}җ{_~q|EN}?yg%ha|{'-)?GXoWq{s|.=#K}%c@U _.ҶKe=;sM@%3rD+<(b[S}(ئWDȉG(olЋ%?`&X8\/|_r?[+R1O|;1)2 (ީԿFb[ʮ.D9xga+NV[չh?X~ʶF%N \cc?Ơ+%rߓASʰNs){l9ŜX^EK}A^ͼ\c4+#BO/ƹZ\j:##CQ 5mj%͇6#ok\0Gz;] ~:cCawک|з@Qm&gSZ<>*zP螄N_;Iy[G?.h=LZg,8>1̺>(`rgY5q1w\}ƀItk/4Z804I?`Qtt-!cerf鯌x8> g8cjr*i&[qd<+`rɰ ۬?!Gy>gaeOgv9 `>_gҌM3@bL{o=sL8ܱmޮ=J+ncS>ƙu{]\w<dGfqЍ5G86Y cԦ ܘ&3+2h"]p6᠏p鮢"ya|")[=YD_S{ }{^# <Ohy :0y[qAҒ:#ܤ|]T2~BvY£mgĠTaCҌ1Kxߤdpylyubl 7)9F~^N|KAA? zEx'dA !zeD_[QzlڹDQ. u j$aTGdZUjqW^Eqԝ0rMQ<4Dkm4lI}-nhf56lG'xt9ӯ !d$fzhw,o~FdK`W5C}Gu>+=`#45_4 yocFdO tچI5fŢ Tt f+./8e OjQNrj{,$ {Âg<ss4:Vp&4CdeO/%QJ{I0ae3-6g̒L,L3-:IMv|9R*9E)㰟?[ru E9s5n_FrM0XgHnՕ:]"*#3F?Ͻ }n":,~=#8 8ٿgY 3ZO33!:Ѝ0Uy PmP `wȄ~{<vڸ>FǒėC^TYəvLȗSS2`yJn%1v1x#EsdgϿ0#|, _밒-z|fc/꾢m#hk@:R~}:wzľO8V&3M~?0ad=Y5Cy$ڿϺv>k,h[Ay7'lY0|mGSQ-WƠɃ$U9N3ol s)cL=#& 0yfjQ-o~ea9TY4Qϟ4s}2'͖&}ڵrƱ56KQ`R]h(rՏSvI3od?yϽ>Hg>??Ќvv~,ǃXbFeo{>{?>/繺X+%}Hs?s?vLk?3og/öY'̻M:gg|m==={.9oZme -@(i75 wnt>>7ofzܿ׷YQ'm-lt8++g.0Ҍn iCDA(M{ 23Y2䱹FJKf` ̀.p|zآIR "=afvqo +FNlAj0Zc䫖ظ XriL`PFФ6ON.sCZ(zNFf5x|y9͏|Ļ9ߺѝܾ-NtR@ٲJFEkFz]#nuX7$ # @>*QBA&t\PΆ jFs>|cChӺtW1-qt-Bʖ5c!uF'0$~_ IVʦ:Z+7YuN `Ҭ*N3}6úqɘK%2ut'76v.Io[j]5vm5<Ρb{&isԕq.MWDhkPטZ_Y_]ݠk (ylq +ϓa' -%COp:ֹk >NvV3M [p3<}a.>0§5Qc=]\aB_|3Xdyv7.I[LWG73t @ؖݑP5k֥)#'oo筣x`tB oy[f 7YEK^'CyvNzUrs_f y^RwZ8Ůb}C̬w.kz>Kf MlEC9Med~elD=Q8GƂ1U F77߾Eƴ®ne%0ZLYu^?ZnkƾOb?{-_+RiCJ{%*6 ; d$\΂@ w|&fy5Y_]Wʑ,}\ 5簟x+m37-|sy6(:K0Y }h ?KX.g&&됟֮M U'7;ͷ{*~K^YcDEݴPe,9z*tܟ:*G"4푫4&%~q~EpY料& dgOΫ^JrBfn,Uy5;mvrD= SСpĦZ)sFcyI\sާf2rp ur<ʭMAȔcٕs33iu>|W=_.]_uLF*3pyKqSmHE?~OVm1qP8_CZ9 9+rH_݋ҍy@v^9BQz mvÿxVovm[Ꮮ\s UA}ݯ=O§_"2C2Sqj0RRU۵׏HP;^s$A}MТtG ϪyFe^ȚN)E7t`ѻ13x_\VX}͋77JFF}hIN*3l6ڳ/;s 6SA[6#>N󴀱fyThq}x4fq9/}ǓhoVNwykcU=^e?n݇>.09au=,?JmGL{ )7}Vw͢]~09ֳ]OZTG|&]*MNh3ӲLŦ$}O l>?LʡtLǻ7hrXRUszr]%`RyqPS͢{=^t[/oojO2YG=˧/_nC6ߧ:Qخu LP{[ NРٸwWf|dThwfyyb+w6k Vl v4Kui/81:>ݦ֛oy $_dyLȀ %VV _P@]貺ƇO޵;5ߝZҝ{6G s8<.- * 6LƏ|_cJk=Ts*b]Nks#,㧧ds7(zڰ$~s327M8<^yMf:hj=:zt:^6mW^nl. <5ml)|Wɹ1*aLn[bHQ_)o O<\޸: @.|PQ/x5_d' ^ =TͨWq:VVm=VȂA?47| FxI @zA掕#`t?0ەvuo%) HN|/ػPgW78)Xl9z]*8Od+}7[o%[`;KY)cc.Y &-8'$6}X9Gۡ&+VUJptZnk4z>2i>4~MulvOa_Bg++ ϟ[뾴͹FIX( "Yxzm7ۼş1c=GfG笖<_^s&ʔ_,|m _aP{W#N>n\.$Ah$vgLejyOI+r+m@cӜ pY3`;ۥ__m9]-Karg{S䒀e|3ʫs`/^.ĵXfs^zE% | Y$1C?JWܟ`81ޏSڥȴH+>)*6qT"A=~vS+ȮHF:i˟D㉯G&iϙcb@C;GB^[L1:>sry嫹gsy<wc @Eh:B/ !3-4G1 3 { ^Jp:U}t}u) #>i$ه"];/ ^\ z~ƽ]wxa ;l:y$r|^(#2a(pReNP<} q՞iKjx˟e_ y3j͹'\,&/17?㲞XG<_ZsT61>ѫ'¿왈Ah5;fTWlqc c7vJZ9yzcm! Z֋f?=/_UǧGǾ2 r迼l@ !uZf}{.2}A| ^v@$X`n; 0}g()0rt4s42C-f#o3_T?yb>ָrO`R42ͳ"8-{m^qaoTF/Y\vYnjT_GKDQ7|.}v]10{\2jvt<6^|޶z~Kj}:oq~M5?mLއ@C10?GMKs`k`IaҺͬf!4?~z62Od~ym{יYWxn\Y0} ?v]΋wD^;ږ] :I,]^( `צۣ<0|%o\8=<,]'ut~]5`rljamoGQ7?1l7q?Ôn?&_KcqQ=Yzi+f4Ai~h髹gə4I}If~+'T7I$'NIbAj;޺ugyk~r%y(xrZi<ߩ3nS^dK3kmGÖI: yj>I|+[/oւ4;m^&ۛ|&3YBa]8s{d!%6Wj<#,P9H#(Mg7"ҭ6) |{mDn$ W*g{Ku+y w0ΰxr's`ݝ%Y8,n\6p'"^^N*>f#dczo_Wbm[`[D+^h٘ɕzA_P26֦m[yzEpnm8+=[jM~Ncl.( }m OJ0?5ww_54:p-6E<6.eyH1 XM Iu|n.;d?5v`fpaT̂Pf.~SE,Ktl_گ, !@6q"NkOwe,t'e1 FS#B.u,2&v?f(Q:5V!dM׽j3֬=Z(A|9J{Or ˰>$Of{N5cD/26/ ӖS;V@b9Js+f,[閣֦^H+7b; >ڏ%Ne_fx%dհ=RpNoxC?PP&`&kM'/ | [A79WZyeXbxFOX_z[>9*ٖgQ&c8ΧIhk{ȹΏ~o q}'}CEH"Aֈ2zןF_v }5Yzu1[]q8 }UY=x@+SmJjs]7zyw5sKu\ :^[mUkO&fmF:ɡ7sHI_[MeL{zW{TJV2Ȉ[pR^O)׏]_ v4^&2 L_5~\&Y`RWmA*~{ /mW" k[{qX6Pq˜ hb} G mgV.!ϵA&ZbޒXalG~TW?`yv)F)Ağ9MI=D8&{@ĝ %Ut9k^x!gվ!@6ei fl~`Ͻn3LvK/}_M8:9isZYͫ~|?>"aπ|r6B(lptގ`Ge |%#A RmB\7NJ7Zlkځե MqbVK0qof N `7O'BUMlUp4@"nZ(E ͵2-Y\X0 VVD&a,-,ȳoir[{;yWt\{[y̔؄v*`ɿ㻆/,m)!-dԩimġi R6ް`CԆs#78Rn:YI7im\BnvUeրvRooL砖O`_^?{tԛTƬ _*`rs_`4||UNŸݵHM̺)IE'\]{`}76*SO7C٦ [hMlk 86gj,QZ⣰ Sfh_v:W=R~+"UUqc2 bgΒaf@3@cq@W6p4%ubtLR֧s56Cz &@fu5SPs2kFwoT=@X浲fI+C~ Hd5:(C< =_8SIL?Z .?<O 댍3j)@[PhE^ꅿ)Gƃ952LTyb+,𹃰7KWr_&6Ⱥy.d܀`qh 69}q%e)v<`, ¯2 x~hk=ЕQ3_̀Uʽ,𥴛vfیyǗ{}eD^Rqf_ir챪 c.[s?/`L>С]ӖЫ*Ag^U}]ɇ>M ?ʪu|lVCKoS(~M>Y1?R=z2_*ecRNŃWu,;[9vPs{Y73 QL, 9|x` p5ojcZU #<w g< 0tuc'4{M99RY\fIbEz/4|{o;m<}2ں,^l&_{{U~3R:J'x5#\!o7Й7ӯ^|Ū[[oZsMWcfgޏ8xuۙe5T?5xP}ɣ^ւq|IusWqڍf'6n$vtҴ(TnG0|wc/I#}~aR~qf? \UD6q&ЇfmL5òf36*oVzV^ߙWu??!0en|Md }.2[_Q^{S G[y֏7veyrG 4{XQ- \^t٨MWzv;09*.\kn7)"&li':n!G%o_aR\lخ/m>Vu;9L8n匫foU>jQt\вA5~1;39;؈c7N&g욽~;ihھu#y\{}K_ڒՑO}SW/H/~8j`n=M@Ufˋ]@ ܹH]\&I7R&<>*[97ؒ$= w{njf)7L!>@If5 6fݨfCuDg8Q-sDu |4G{ BY6g]fV9Λ&&<9hr 8!zu<+)-?V wd>knr`2B[jA6ְkY25q/,B#ʭloJ )Sgئ}(ͳ&##oҎzAS0軏`;u(Y筭as%%W8 <P܂E2)ľ5o aTN!|G|,Q\^Yq|zR2GH&k]2JStw9֋NV /8OO0XKy`DUM ufzE,N~[nEN1،Q"~w:̑IhӫWs7Wf Kl ֜dN`.f c(٢OX|E7bL8i[K"CIX>GgcA֠w+in4LC98qWtIlN;ߡ|gʭ^UVUNJcE}\FKi޽^>>QB蜥Ì?9}Iʌ0aJ4(ƈͺ$5U}*EM3ΣEsOLi.rC_匬z6YE  y x ۷0_wgm qx^Ebdw|;sB(~D2$C@>v= cMC'ƹ_TmYTcJfyg[Q7KƘ߿ɏie?$9<<[ ,/sii9:_ ^=v LY_j1K*^27Pg wPB bOhkVy&u(?ywv%&RWTu=DE')R<)gx<v_8Á)::elyd>QR5u->FhJ_dvx ^{B DaOyi<ѮyX^dctgkeNb#1 '*?IˮX!ER6rR#mlm{_*I6{}"JR-ԏz><3Iֹv |,GXQ8ŧF}?^x!J諷'se۬:W9jQ@h)<e[!-WRh_j uJcK{O}^Z MmGD!Ε߅%gˠ_ETXq,oLk}ñs9Fo[)!,ǁP!kZ}WpӲ~xg7{䞁Nyc5I^|&K,2k0ƖIRʤ껨f;`IFBqҍ;^0\iN=;iP4O?o&_"3~*{-OX?rAڸgtk:qlC 1hQ}[ qLڷq9N FzlmS0Q7q+k&-oxyC<}I0|ϰ0j|T(7ʗ~f ??>8uʕ+3erh?.~4G[vWC<*Sot/9=&放n|}XZZZWaq`O^mvhLYziF#Ln׮@ˏ|#f'9\FލFj89s&>pm;{6;vhf~:q[h;9]\\UlW$ݸn'cX?7,othIqb[K9HF|,!vw$??[K[Z7F{mϭ6'Oi׀x$ %kl(3+̃ Xx2>1e:Zd(D\G~cq`M?V4JIeXt(i|m&!%9L@IDATCW &ɟ$Gr>}yQV8J)aH\ckDڃJX݈>呇n"|;&^{JZeiZVM@\{ [G%a,)!|L?Y3%# "XBLٳZ;k:Q,"=XC.Y:vK^(k`T(|i:9? s$7HuQ lH!뜊ɸ/ qLat)?K\FD)uz/0|Fbb(KQ|kDDtg>ͣze8c<Į>5G~(xna2-% !4}ܗV,j/x'臚GUWzЦ~,c$R)Y?({vf9uS 9Y6ڡ =ئ.%\j~o5Y1+-}w%KP^{:Yb0S&c+kG-d_CfHo4J31LDxWX 8 󤎻 IeGS瑯S8J~Y@|\Wx,#__"x.g6lvM:7:Αfߌg;r 09Y|,iNVlzP3.ꧭk=//TD6}浊ކW+*Sk؛͂؉2Z r;g6I617}I>^pr?|\RtMt:h7tUم2 jPynV&%YG+yWǓW*}tcrߧm|5k=I#c=|YTSN&1'=OHΗƦ/kyyWeP!3lۜaM<ʝ{<Ͻ4kqwsdh=wS%gU7xq2UK˺K{U{98w)4rC̏&0ws 5WY^)[{xw죏Ž/}ҋgl]t،f?4 q/zV hE[=ʺmf=Vq|XqGvω~~nz=I/߀Iyվ'#hGr ,VwfT~> &O0;vS 6{L*i{U5&^C톿kGr hcu?AگZTt.X^}_okm!`rhXڬ8_~9Gs۲?Hׯ_}nu)^Pľw}pZntVm={tiv?n~~~,7ۉ >K ?E'WugϞݲԹ|-yGeK㵑:jFumlA&2"u#k`kuTkm6 V\z3t~/m7]FGdiAtGKw9hn: q|2`GV_![!9\&܀?yp$eDL&r~ksj8^5* CD*4k='ws2Ұk ǚMc0Ȩ tkӧӧz27a"tF obMpf9YDSbclzL)F>q{<2nݑ7v t9Wa sDN;P'_kow [wD ״Ye W24I6f[ނ"LPɣ Lʐ_` ZT@ %Z.~|.^>qqrqRƂ/e#<^`˫PrH9zA.^߅)/e3/7:8F^&hƖzCl%0:m# #|j"gkO9b3aR'')0+P1Cߖ6򶽖O;"kDO hoal)hF~QT.F>#Pd m 7움` )2}yE4 LIP^EV:o:YdFR ]KȼqEFaAC*?KuLDP (c*Z[URڷFP1|iDsT}}&s{?r8c[m; Y6e\iٝS! PAei<-j#ƝsGtcddIkI( ^PaoVti9-,^C#ȴ#g$ G2Yd#.Om-ZZ"=\7t-v q.6)7yQmRRu$B6-Et19g-kkOPdgFG}g#:c_\Xb>L.w]ѼRg]bO9OW~$x-f ;EtG{\% c;ƹIAJCugi?f}rʛJG$M՟l48꽦L_n^}|&y+8kuHP+wxLqt:#yt`^c}-X_xu@囹X,D\}X 䒯J^ZF┕$yj0wֱaӲ8܆Թiu;ĘօcT'c)a&/_c!^2Qc&Y}Et=o՗-+՚2׫ 6 B>[%;'x:?&}^[xni%0t3oՄ| Zt+ J؊0iiA%U.?;ݳ>3YnE1g=kIh5vt0=Tkpbͷ9* EAvv3_FohGYlӲf=hT-j5Ѷi0ƵFcѲٟ Ho~'IJynUo~&7éi&m7Cd)FU&Gn[-}3zm qz]~nݴی߬z|'vlҶ_ fn[{w*OMʰիWLmZpЀIvL7F}طV]`13ק;Fq^|߮F?m ۿv,~(QȏnюȋN)Ozvv*//4w*g?*bHx}4}Ujd:lx?<,z ?] ;;ZuvO}wxΝ&/&].\!8[y$;?J_h?p$ &ٶ@u!LjvC#MQU̱-cȊ&ɿ+mX PMU"V `)`2A| ѽFC7?Mرr]NK2 pq/@{C+.IƘ[0 ʽ+՟λ Y@DZ;v*vʪVw7c?*YxQRBZ@^^58cPۂ k`6|;Z$0߻y8%6>KR X4,#{ Y@Im9@(F|U-wǽ<#OJG@偲3vQ?Z^ƓJ|h"P%<.K1!~>>đQx:8icUAJ 1eGb pH] qm}h]رFXn#~ U/ꀜiq|)tD#Gr_Z?g~ZiϼoMiCm<[3cDP^.e+Q_#ɹW{Ϗ䡰6 94Z\{80bKeZLQsVǵ_YS0d2(&>;s6Å5>:~?M$rpM!`l8yPQq ^|A?p8bl֯ǭ}N?^&i׋/vΝ42GǃQD#6|V}]{g[c~ݪOu;HTvxy/X}Zfz565FO~򓙯߬o#1qҍֵ6]wC;l?n!Gy? \gْ~cHУbwHWnXYb=|1ѥ5vĦ ̊*Il}tc5]丗$ז @YV=P C4UEd3@0׍L[@msc&3y KDͩ%yLNZ/ӭ)EF4Jo683'nh91]p{s& 683v+^4y{7F"G-:ȍl-V/Z|W:~ВrlnmQE3Sk~Oa ~q|D22P,6-*]L_-w#H8tcLX]Q[cI況n>+pc^o D X3M Oj˗=Fp\I%_9};7cq騧yIM"[O Qd. Yծƃe'8jRƈTA|-=?6MyiRZK׊ ِuSުiw^ +-?G'qē |?ӔyFilҴz& xU`#a)grd"L2(T'V v'#I՟lt\7牞2G>5" 3G˱9nuuk~ is<>D*:/e&}KTܷ1iNƼ߶Ml:^~FhpuG*q=GĶ!  JޕC?oA<(S&ɨWYnp'!t,ibP>-`}*)~Lv'&-jŻv0WWnЪvdsih C9繂ϱG.?ڋP @A* ]_t; U?*d*>B4_}x}\FsXO8YɳI$(:g_呿8\o)byn7OC ذG326Oi%-#X%K eׯqv$%5uz ef$JG ]&I{g#<4z#&>PE޺5U봅Xz0ڷze.A4COE">^d<<>A.Le[Wħ hPy%,Di٩dMf?k9@(9/g VJq?CKQǿ^sHV]k" ; (K0˻nq!n_ϵ;ͩK,D&y=zy*Y!a_y՟.GyWK~K+7b{">g·e몦GY)w}!ndQcܚYcE%_UJڣsl`Yѧ=i@Y+wXڪrPSuL ʵZjOW ؘO?zUdd"~q֡U =3S,|)c=o3߲(san `DKr)m1MPh.`Rr"gU|&?}÷?I\JGUOy#L?:ΝN l?BX~}o}ʦwm~3'*F~f?L WO A8NJQyFoRó$vmՏ֟G;^_g-F>p3\<{>Ooߓ3Hΰ޶nA{|4:6LO+6oYڲ&4dU&Shي^:"sCi~o+9M9k v{0LZm-IjOF@o/K]^?to!ޠ~~쥎2܏TKv?y 99F,G{.aG?L[@@;a6 4[{١=z\Ӝяv(|[c???qOQjySS@aRdԧ>qڷ!_5ͮݐn0yT}_ޒ1.\`e @ iԂ*#J2Fs+key[ 2 1d܀bi {  RR Ktwp(G$ܨwIؔʕL"MN7/J&W#*m‚7N#ФQE t!6INpr't<ם8Ihdf7ŦԽv[~zW]Yӽ Ht[` zݪW[ɦlJKSv4S`odKwo]f1ЮјI.mn潺tq/j>s?T}ٮJ3*8QAQ"|߉ "zd4`ZxPXp~9~%&(@s UȒ:S֭C.v͗^k^XxH$ʶky>_g:)xz.e.؏(j|—~,o=BKLtHZ^|;s3,d'K VP3QG6Dw3/ҧgy;ţbjW|y[r9M _>?,`8{u.e26ԡ|n/H:hTn:c7ot-uWdSm!9]?S|LzvIT—zI!T)Y=Tj6s੿v]٘6i*/H:8a6fqp̝fra>z;T s3uƀcvQ\YG3 & 0io5srpq|HW|0}]#|Ȑ._}Qe/썜ܳN=675SqJlGx9/~/ݭy%g˽6=:xᐿx0 WQ>;{yK_ڒI#LЎv)-B7u~8K.%^T d(pيI6؇%j$6! @c1Ƭwb@kl:eMlc*'ַظT57Lntfs-lP&}M2uLnQN;Ic SjM#'M0yYj(8@>|98`zff%Qn׻7]~Rws7;LN7ڐ~ ĴWt?n6j„S;SǢ6Y7˦ê]k'feOEo˲ŷtD\Ej"خo馡CYkÛq0MW.&14@]we۟%U=&J.004AuF%<8է|:9қ\4`ԽHHwݸս&&W-:Y$#>eQW;ǩӎ^X^>]c[eCd{/r-RykS5UMp#7~YW"an$O⿏d8~2q CDŽ7x625LtU+LϨ;  ӥo}l/ L ~F֯G~nr  u{kexKZRjnj=1Tp#ݍbמȉ/l2NNGSE|L^0 N2៾SmL~&g)0Yh?Dz:TfL0gq39.ݾ}#rf\@:sa|<)cHT9^-ւ|-#L ]c+%}M3);‡ۺ=}Nr̒,65Xt=Kh5 ֲ2Zir> _Eyif2i݈ JzY'N5rH=[O&Ov"*4kƤsGE W|jy).Ǿ2/][qshsN@2mW}U~RA֑WhզW^:ySQ*Kw ԣ>-ՂNU6X&?#ay^bu[uzE})I'ouG{u>b(P:.~|xGYy)kT*cѽ (u>`8"_"ZDY+P/1}"D+;d8SNF@x=j$%z4A̠NdS&QTK_m#v[[7K91h沚N5”yO>1T[ޠ[|>q-Z[K80w~ڝ̷~U懃X7hc|9֫﨎=RdY6QҖ;XbOhfO]7j,:;('!YsN5 u}Ym?N .-ߡ|N2#iv"7Ͽ$R,lRT}+i3g2nym;4{~:UouQyDaٺͧ~{enWC֖۫}"/`Q&MmH!}ӭյuL6`]lA&0q |;YC:cx?c091|'q&MFdӻOƏȏ۱{L{dU7fv?Z?~oouo?N "쥗^ z^xa;aCFJl7:. `ێxP?*gF-(]3xL+`r )ymca_6Vy# [6~;?Op "L6ޣ|O|ݓO>ᐿ;Lah~tnNG5ӹg5`G@R"N=6Cr\!J G/ p\bCգWWR!m5a-=ȑ37d66 o2~ܠd3l)嚽~Ճ=Oq*(H2ƿr8r}Maa(c @\[eMIm&PuXOET3#LNoy,hR`݌ i(L}=v1Om" 4*mwWvoG9ڒ`+;:c_' RTICI섞% 6j`裆+GM.$3?fqS8GO>3>K6VUE.492 wYD0^ޯ31oJ`wOA~|vEڽ0I>hP[S T~\&,,ti ETBV͸%tyNR_#yz!5ٯ_i˂huSc>k/U|;㊟Y,=J0J`qnF(Z8y_ɷQY; ?G͓052UKJ΅#>b+>j}h,/[:( e4Y\Jqty |h!~hce냖s7Ɨb>۫N[gi?N0k~jx?Am==w#L+-lUyX.64/vtm`Pv2}v:VǃLDIisi߫oW^}x/mM6mC&UfHͰ^+ lEiDGfa}ӮCVv٣=({WcV>6>)v>w] lotOoWnc3>46*Lа)wig m8k}C7K[޺uk3V>ڗ}c|ߙ3gⷝ`I燩kof?0e#ݔ e l60 WQ>71~<̖0шDT'{lLNvcc_\.9ҝU@KKx#LN**n, y$A,.*`2 ))֖ ,`FTNT}uVOh]n7hcm(kct-Ǐe4 &hǦP%3#Ovg>8r{Mu܋66?3{ Pt^~{k^Zwn~D4v<Orm+ вIFɩ-/6h ' o@D>~y)6p9>n۴Lxn<O@16_^wH H)12l)&$FL0 E.mP@_O#ӍHhI{3jӏnBxI>ּ|WnwW#؈\eՏ -L vo{.LЇhҧFmu:z%0(>H*T&N<0@./۾:LbWF7(<|}1x~wv̆{-f4<+яҧ&.h ]sjE{ǔTwl9j7D!E mS<‡E'\W9' & x01թDJ#.L I@: 0Iic-+StG@9b;cTXU_?ROISgM^F+/"@Me0Ep4SwSϺb,WeCoSۄʯB d$+(%h>Ҟɱ\ϳzxP|#COő6Fl ;;/,-0|בJb,+ z} ?݅^q5߸ܶm,6к#H|-Aj|aUnYGA^-64}J\טHzզ S[m pI,"λ^td;뜷X0In\jcד|\3 4 9$*4Z(b;u>&{w|2'|GBfZ2^@i]/$}Z@:jȱ\0|$3=0'E$G?>AI{kB>zʵ:ܲZF6);tI2u|&Ώrg$gɿ¨&/FBd@IDAT*B1.1J]{t>>=wk{n~@kĆ,sP|~%HٮHmN/4ڧL{d,<}c5ù![(3OZtv!wE&G-$g@c{FWeCWQCi,JY{_RF:4l M|P hG],vw's$ce:#Kn^_`<;<Fu-LJlS><` ZT=UOtɻYq ame0 0y…-nF׹p8S *o;7&[Mk׮]M0yVw9v(AtʕRB_Gx!+]2hKF@vbHс/y]"EYЍԻD-FǶ˦26iL~ͅslJDnj<6)9~wS)#>ְ[ݛ_^yR<9t3{r|9qDCM `ӎlkMGsL;k{i%bn2K+Hإ@:2u-l+H!Gn ӊ>$c;dEi6&UO_DvSݓAm{A+uJfGJ%c؈SD4\Qeӭ5v`bK}# `]Dy^t_ YusmM?}8F<% /_Aid*sW4V*"8e IlEC[eUHtJye3K!຋# `ϜHi9sGtܴ7h~f4,kd8ZyN,zQů'Xaq[5 `l tZ  aO_$2718jŗeB`P0}rKC;{Rzn{Kt/ IoŊWfgC5OIx 1º|Z^yg^&{Vgv33e"xd-Eb[sɈ&eH/1 C~G'JzyjPA XB^3eH/K4o {  ӮV3FV鷫J7CLuDE? |g}eeWUC݁+D ѮS,_*(\zxMk3ˤorGrKA9w=ǚ|%`^tӹeI|)qCy' Q5,uh䴑C~:԰cx2'QKTHn'Wҕ|>ԩi/d2B?`;W9cda9.aUu fYVxʛ2>['~&g0ںՈڊC_K|vo@9<4}S+{&CE½jEV]@^"sTu眑o$SS55ŒॼՃO᝼B^Y3ϐZ Xv-c[߾>7)8AHQ;?)3HKS%VP5TҵZKaw="q#LF=a20yF~83דQQ&# 1~P^Դ~ -vBoU3!`r?ڛowfES:e.>.FY%4//5S`:Ҷ˗/X׶. y6zd-0^<[o#ks{g?~Zts^m>_V6ⷾw\MO$s~YӽQnFx2!cmw=eH^v?ީ[鸗FTVkӽ&Gk_ɦcx} lϽim/,(߬]]}ۯ먼a1Z?,nHaN[oɍ{0E]kr%۹g +${6cP~F<{G77o{kﳟ{ qιF}v/*f駟;s37{b0 ߸M잤#nd8"Ա@D# `ҍLfL hkj'I!`1#`߉$w,2^}u_[`rޏ;ؐ͸udD6Iq}%+%,`|L6mL&Dm|2Gd礍HYzzZ1i>>}3'=ΐ>?#+ڗbE_Y3+{qwKzG7u&O}y&G^7fS*xJ8yL~ϛD]86Cd-/ >H ؟H1iKէOlH]"e~Lcya6. a\ڒ~赀QlW)NPogsj[ZW$lS)zyucD=`d3m;{O,r$z*u~pǪ$1٘֏=l|hzA|P-l:q;.wq׀n߽겑e)cvK?n=&"߶ =6EL^۶.͏˫oQF g#{+0;~u\m;~/w6FmV>JC0OKsL~5}5ݪn#*SiMc|֏Ҵ::aҚ߮~~6F2F51 WW:*Xgݎnخ=yq܂jqg7x=__`gNdk8^7z (v^wĀ_w~2iM:G7?Ծy"6̞h6]S]t1T`7v~.L:Ok>@5@ :MU[(n@EGh{8Fk<[&8o`$DؽǦkV$bn/э}މCG@ lyLZPI,t4c .x3"?a8^@F9v|#s,QgfOlVV0Ngyw3[N 4׽C׮^J׺۷Vn9",UtL \lQb?emK׈}4Lln7QF5^ue3lڗYmH|V@&; - ׿T^qLjrgIQPԩ_1-5}K^aGpm6W1@>o(Rxc'`A*lpNHh SОɯ/P0Ϣ)aq#̧+xʘ$p&vWj&4nH[ʌȑƟVWF 7ǿMWO8I9-eim\eE'!EzM 9= `r6)&_N^a>qG %7u_91ꌨ3;:tjz2A 4݁&f7Xo.ݸ}Y9x|& 5*o:gC)45m@{?;ƀZOW?srUO%$ǂ~L iH)O)l|S┯MhycfTHn~t&i}$: J3/==>2\wu :skD+~;|DSм~ CF 5*l7B9b KcsϿu(Kt- ^|zY6<T}riT(=D%!.>KqER3lA؝q@A쨴Jڭr%Ihʋvǧ]jw1x?3RgFO~W(+ʥZktX#j%V廀$WD]ց-} 7=۬+EO~ʾv\q[Z|^JfpZ} h<~pRٗ"Z?9yI)Gf!gFv֡q=/b u,FE*ϲ=h*Q N Lr&@ݫܥow׌ zk{~0Y&W&j61FzX M0'Tjfŏ >?k-.]o0'u]YǢk:"(xIZRjg&>Ox7>_fkܚ6,;{'<> z2m*{?oxDN-J=m|NdB,OQGo 4{ջ&>cq]uE.WSCq}BqmYNZiVG5rmi*0.;o0FaڋkGZ>с'h?$ѷ.rJIz'M[gFmw?<8Y{}|L'/}$k3Üf0iXzJqoFosZ~d$ǽ݊wFEIyw}sT y" [j;k=*<ƲoG_`tpm;~}q5/]ƕƇ6{k9便%m#;tPsh#׻:7^jy>m- ܫk~-ҏNLO:E{ojǹ6m8m0~0c~ °l({o0,&corؚ`dͣ>%.e7wr?~C81ma= ierTi}+)G~GE&UlLy'Ҏovh۵oNhWxez[!N@|3ݕ+WeG7o<6{siTl0sCP1__b\N e0o;#n, _~۩>Cjz)hޏS^{LOo"! 7ZhшKW%ur P]-fXZXEFwDQ< p-ddJ#pR0s I؀9> X(T&&u 1j:i51€R :!Puudy7>F;3F<ʦ"O0954%6S$F <]2r6-(P})L΃:ҕKOLHosD7Ǖi2rk AVzF 6=P ?7wߥm6rZɾ)?Նdm6:FVGWWA>փ}Wp7݌B}1^ޛh\*kdS\LIlِðM6Ay m0%4`00%)Ό ~MY%d"콫Z3++3knd޾eŠq#N8KDܛ<x|yq6Q&A6 ;d@FGWL 3q!ٸ0_ $b_^% ҍY66鬸<a?+ky4w&.F#0pѰtgL+ $QHi[W 61FL= hF~𱼾+O%9< bO֎֑̑U2ڛ,%)=%TߌT>o#>&Nx5T ]h๵K9݄N𭏀@f7@Ew59ZN/'"?F>,Yhe{ ~Vy]Hni/zձki(Xɣ 6? oԥFw޺~j[S\Ĝ! Cݽh YJvhLD2rI*7F&WvCW3oFyTŌS^}[E6o8*=Qq[=;6jm+Pr y9U8z/@w>sc0ɽkci7v9huWUio\FO,`28~2MuY'Z838T H*u#WM)J@^[K&|zS B/ǭ0i޳ <wL׃=Y;g)"9\A95h^2ՠ&cw#X;//3M 01mzLjsP;>smr 8Irwʏh: `I0AyLeq\O+ocݷk^[׭ iB7n7cߎüV~…_qh&ڌD]YGN=y lga؄Ac7䃴ܿ0p Smgsmo7Lט:LF&ކnF\ZZg]|\MOܹai'滥ۉA*62o+?Sۊpk'Udb2 s @klh;D:ΦN': rF@&^ri9綯s6ɵUP\cݺn@,dy.`[c"~1Q}q O ͿP Q4-ɓ#LQǎ[y-[؛qq|q-񐿑#S^(Au?jhj?J_f>? So̅e{y+E&Hq Я+|2x ~//u2W/^ǹ>ӞvV_l[;{oIokX(أ$͖)U{VD(IwNd\e8>cgg(&I4PhȨ%cQ@wC201˘I(0s#s(mz`α,j1Xe~ʞtًFZRx.7R&ܨƹ 0`j]oEgmt]]LLƾQ3ld0KVv;FT@(NcM#z9&)F=ˑw>\?>%뫀I ]0|0yg-d"[ ^o]Jh %MfW΍>%Q䊗6v>uꇺ6_ɱVre+z4L䩉,5էT.>ug3(,B |^/ f[i+cN8n%m -޷#<_v;k[K&U-dzwIKt!ݯ?qxb g 幉/ڮbw˵Tn?݋ %q%{I1S'H6wJoRT}:hTO*WzFƗmDG' 볿CX@gXߟ4~ŧyGU ;}\yi77//wPpuU0'z2WOoNF5ơ2fݬlCo`hOƍUέǫ#t(c$џ[Id;Ock˄d3קʸ T5 "wO뻮r4y&d\=k>5֏#$oQEIYC.Fhȸ!}H\`nwY$m"Z2.!NX\g:\>ɦxwCwfixm;MCoog{d6X4ӿ~M<9 4)|:_SqúiGss8zq 9v}ɯ՛?xn~ܯvO^OO$ԩScɾʾom Nnha^*6 %^n ӂ'YgC!/!Ml46n]Rޭ,M&! 0nnȻ'r`ˍxiKcԆ/lf5aa q ;=[bc& i-Dz]LHV|*8rD6YE\\`,+{=-=?|V6 bK Dm{7t<xP5\[+jͭ+w)p0S64'ד9x6)k?}L3|[l̮}DTGㆴId :U:F; (z{D$|α:[l\ަMtO7;Cq2hvոJS6, BǞrۆgl[=M6uu#Ti?)\Su9XZ+TK-"QFY6&|j{.I,c)[M! ^ E@V/~3RLqu]4Nt-DUѲRӗǸ ӂqDLye/\{50ynb3聊bl dѮ˲Vx|:{W!}) D+k1wy/`)駁_Ke=4_>|LD5@Ɵ!'gnAsW*C9jz.WĿ,w tR @0g :ں}YqiƊ {{yIq?)#_yP#,28:nTLoJA,ƥ$;Xb⊭kmp;{oO=慴)krR`@e0[}A *2{YW~!G>\QkLI u.A\\`đ{ϬUx KԽٯ1ny^Ы=#Jb m٧[ Oۿ;VڳLjƄT6^bV2xD)ߠ ogTF{z'}Ӷ!*WO ]5c=Xyq&:IGk':v /Rn*\3|x6@9y@Y;װ?LF[=Q䄏$&%Rc5ԯl>\uĔ 6>u2(ǻ t;*G +<Cr;;R,}xg3WֻLrN +Ƿ]w +Ra 22n"T 84d$jXڽ2 ^x\G{Ka|g]W夾ز~PVGE"#q r$7;M]`R)<8|X|];NZO=%W'PfqR؏YX92X.˷/w%¶&Zhy Sc]d*i/9^^c=?hW dhV[~mQkzOSs4>a+[oU~P\Io~m9 0xja~k&@L׃u)y5c6-7o~sLr(c=)1~~橽splۡ^]ÆI"QPWq>z;ک~LX{C[ 4i=&%Qlr Y[HeRSsݗ;}OC{in2>0W N"* ,5c)w- ^7tLRWwٙ\@6mV*=Ү-c[ȾW:ǒh3y)hX@厜}g_~жya[5KƊvH"v%kITeBSc !Yd?0i)8%H)tE F9 Z lL3f +|zao$F|3,QNԧyai>pkʱY@Dߦ毒3%Ȯ] :щ349>`@}պ.c 9Fb+ym3F忖l#ݛ?]KT m>dƂ?6م˳'^A'pCڏ}F( @ce~F@;}Oz5,:3Z˽>xajɬwlOH+h=>x_ǯA4ؿį32;'tyUsІgr !\rm%20|^X4_5沮8/I*v*s5k^iZ43>\?yQ6q@q$=i6 {0?M+&$y $c_"&LXl?tMoh٢eq\)UyeTV$/|ͩ0sOH$tW˛Mk9 /}q(O:O5aF@xH?Wh*=ӌ=?wuPdYgqgtuŗ~~2~Ϟg=U~ݣcS^-glda!3G(L;5eSՏ&R6idlt}[jcwؿmHCDѥ~^خW+J,3Oo ZCB9עF5ՂNR{=Ĝ>Œqf;[e> \hekuxW?yz&6~4*}LN=Bf|C KyM”qv^ޢV vNyo`\Vч|_q-5/!~MuJUFdƍ='ٷt$[W4R|](2yg(|#$2ꮎ54l4u~8 IޝUvvc\ۻUIeK[{vکF=9K=?yzI9}SmWNՎb['zDS᧭݋[s \<,CF>QaO:y}蒾0ɜ0;"@IDAT>Riηdq 5*I"L^Z/>OcRۙWJ=7lw{ywчM4UAInMvޭ=j[>]{4cǘM 4?M>.9}7o[TcWٽ_[#w^ڟU[~| _Քw):n~J]nX-i۱?Ol[&&:~/vo~GrwNНɨm]p~4Lzm~XyLj_&[6Y&ɹvLN:LnEPU5nGU^ ׾.DzGͤV֮~{?~ 1q۸~oqb襗^Ooe٘ߐnN^U Tt֙HnyM#=3ŋCܹsWKke:troG `RlNIW9Yիﳿ|g{}ݿw?Imec_{, 09~ȫwChu'8G XF{,$38o Ueci\CqM!wcVntuy "R?.(rD(ٔ~k=+ȒV@s.SYƙ1NN$I`ws<%`2ۛnZO/`8Q4EBa;~|5s2#MQn2s )֘bU>cZҞ Ȗ5 h{ՂU:bw(m}M'~M/|І>D s/n?j8B˝%Y820i Ya*L><;+ȼ:@s/ȅ%2@y/-=F|߽Nיg벀~`@Mqpd{B6k`u䔴xջ5`kI[8i|2/]U0˩sXŵJ5ZZgki4WaK6Uoc ]|[ZQ|>dE[lvw\.;v ˑg:_d7V7Gr܋D -wQU/k\zIH+5ǩD Z'gC/u=wI#Y{wZ LGkwCdY|z^#\5 om8eqN!|\/&tGrcn(`o̳ߌϴ>gZFI`6<"L^]ǿFu^gH929_++nE"7]U*/PYغegPeim)EE;j{e\q]w"Eݳ~|Egx.;@ͣ?;0Ҧγx cIumN]6\.S5_Xo=k2>(O$yn=-}IvVx?(۴>x`M{ܯ\a}X|ͧO~y09a7nؘqk[m7q?>u+Tq{w*S;y+ NI?LN0XR?0iI~A `~vc iO"sZ!][_ȯ~{#L7|[nMm'v,ooX!/en=r}?hn3- ߞUIq|~IO*k&ݏq17d׿;Lu&]OʌlgB4۵$نu5Ak6wӭLAl7m=`Q1߾ SkkmCV\OЮ9ΦX:0i@o}&b{~D;lؗW!}f$v42ϴg?4iH6lq1>F%Uv/]_- ûɍܟ3⦎wJTn $+V.ºL5ͱلc#MCFuz8oa\IS |ߋECnT lz[|"~N$56օ›otK.wׯ--_)ۄGYk#𣦺ōju#b7ZUOil [_ƊYt8c E7kOcY@MS1!!Jg@T# @#v_^0vP}+l%ݩSw-x$HR7arlD2nܸ>F 6=ouO/D^7"=) Rm 7 Ѱm#6nLA].akmqʢKiM۞e2>G@?}율~`b+_O6S1"AP_ `3&5>gFA)f:YW6 K+Ȳ!-h4i6O AMG+7D(J7!n̾`V(c< rIߗK *M= ,Cv xLXv֞ ~r{ >8L><>0_Gkϳv #Xq>MPsD6z.w?h̚wr~,d$'"YYƗ/h LS8'i7SYV;r)_[C뿒/_12KSZb:Ԛs$%<ʴk?^0y(v&b^]q &Ph' mM6qΐuf#M+it<6U(: GuP;;r2*dɚQdۓS1Neys g9=p {%G)d#T#$y,a3Fe_wu~7&`r{z.}Gr*?MoKBkٱX̿|Ȩ-G@Jg=?U)kc7z.>TTC}~L*znA'7|AѕlF'< ) LbLݚp\I_7E/evWk0FC7e͈?v;OFλ*c}k2]=UO: įtJ*Q^*alԗC`_2t*VğS&R@kZuT/w(̵|3UQOYZ/W<_yl|Y}^gG>qfDF7ZE0rF>&?ѕWb9J>ʤ.[u#KtWyG.$qXU^a..b<)Co>jŎ؈Li߯oˣo+OR;=M[7ֆ{}'fi< ><4mpm,u0iyhH5 d0F"4H~d vcO+W~Zre#' 8i[ryM0Pܓڵjwk$yegEwL[sKڙrO+5LZvxv Jצ6;vmjyF7Oz7i']IulP{T)_:tH|HI2RWfktO/?l0H'77⅌0pRˡ/4[G ?h]]N>i׆S;bvJ09Liay7c?vukOOC>~7<'|Xe;/N Ce3`ޝ>}*DMrad*Y1Q QLsry5@[l6FlD5x4z7XIՕDH/=6GP (r<'h6ݔOy Ҭ"@#27LXQdg߭"i"; n O#&_*gUWNf$\0%K@?l5%GJH{'z%P']8^^{ʵw8 :;@VGY9њ"hz*[ymg>cx &9ڄd9nS8Kܔ< 7鈓X?0DW# l3~J^[e,^{7ot@"rQ90C XA̲ YG8uнB4¿0G渁?xK$.ځj#EF7B9 $z\evAr3 >JЬVȕ/F]ӅC6 hmOKR෵v–:`zF'B(V+D&3/<%@Sr9"'}!J (IWXwWS/2dSScn(Q6Ǖ(3 *rp]gsUu'e>w/]hj'o6mKTc<#>HƮuq S{FY3 ~Dzk`z.JvW:@]r_G'Vs|=Ksm1h.MoSH_4d0y#edwe<|9,\ `2a3£MIhm]L."L>̳ 9"mYmŠnL|UhPX/"L%">:κy EX7d0GSy:FgrrE2߮p,Kf(E: LA 0dsOw95=qlg dvI|Cǁ v>t}5ڝF^"1Ɇ!Wcd2-B'w.Ys53GTU6sXƮ`.9vn.bPv[-}=6#˅?z Jޢ;7]ƤDԳ<\ZH6 HqMU*ja,溑Ug9$<㉞l a?6/N-lDF43i62/;}G23zC&+ I~t|4E>eC}NQw9e$ +Gח0ɸe47q"GV>%`;DZfN о'YǙőryq$<(N5A׀O&vMfmcX=B4Jzk&tϮf7WB-l :w\)\:x Eʺm͹I^ _!KӰn)֏u#YM$W6)' 95L::z$B`Rk-t?O?1LYXG{-Z&0)n͈+? (ݹAGu۴e>@'cM\m]RUD{?ohaMKѷJ?IίRޛR_UXr蠍[au,)4^1e%)clFkwT"]>G+gA:cG#Vt 蒂͝>#x@Ys 1PTY?[jt%!i_mގmHY/)j ihVI;zoYz׍)ȡKޞYYkY ,p-Z@;9|i_>żZ}Y,||=wANMKS椽?1D؆uk+LVw&|kʨl`s8EM룍ߗ6xV&cWx8.YvXtXzl!}g[ttO|, P3\O!/-u9%`e'n&wG``~t`7^cz;/}{k:5Y?^e¼\g\͸ΕM\Y㍶1ISu2Yl@3S4XRdD~krB%ޒP6tmQu^$uFdu{ x03t筿: 8L+3UO]k]C>IzG]]Ī5|`ss~O=oN7ۼkNNDlh3κ'FB=~9W·~ci<&ӯ{Rf]x׭ lkMfЗM>N-зq4m1N~O 09/No㗡C? ez~Za\jý̍g!Xòò??o;^kS"`'r"j| l<ƶƵe,A:(`Ҿx?MdK41~oƜZ^7)&T`v0¤DXx: *md!~|/úgH?.omnפvc{$òI&<&hÆa_o%4xǣ>''ꨱv$kOljWhH?ѼJ M*20{ u0N;5zeHw$:g4_$@l*}la+Ť_g7M Z)I5&OGѫڣ|w(Zj|}h}ɯWj 9ӫ%s?|?>8jAtRФ@eAt ;5FR]z}rV&a4}FbOlq|>.SBkʪN㙣m]\nyٷ6R_Ͷdry_>\eB̹g:ʪ66/(nv̡Sg1}>L*'eÊ[X:tu.|q}1ɍ 1jrmE XOK_IU&A5#2A;ɶw"ιIW JtF0#{d"#tַ&nS֎GG۳49Cax:U}LktX `eѹ hr?HW+;sl !RNxM=?돊X x?y^s?NM6)N%_{*Hcϟ`-öi8Ȫfc;|v2AىDZ~8Vw8hoC_~R|7MԾ{i?mU{L6*hd?S}IF4K̻a;d@[ e5?.||P]Hyߙ(nVImН<~kr6}i,A;ZC$&{viv`RyaR}<{0gP&ð~[h`Iup<$}k_h( 3ɞzSD3.7]-7?lu؊fX>^yMo\?I$;[I}l,Axc=׬ =fv`y\ۧ3pL7$Lz>~H7K''~~jP<߿wƀI8?7oIR$0v4l]7#ۺgw[`4U6L$hh#`v)6|IGbK7VK37;p%np:`u6ZWn_/Mf&<`cIf3-N]#dE\Jrc}"#K}PP\Q`?ʾ`NEa#F{GDY٤b)J796n _5L#9uަv  x]M+6ˇ`_}{G9얖/+6w9vU-gS\i@Λⲉ4؈{)(M=*-"mܱf ɀlG7P{qC۵c?vgu~iq#OvO`yAJLhnTָR>{m4Sl,Ů+۸馨#KnD)A׉ ɿxZ[NCբo*|(*;nZVWFf-T@10p֦`KybP2~O0y{`,V드-0@4ڧ dTtԽ J/NğYܘ^1j[0.*>` HY-݋ifoZ=eQv i[?a}YwPIo4wmKc>e.-QF5P> p8spY֡'"GX[$Z۵(`ʝqyyU'& `Mx\>c|*n8q`c/2F&t{`[lG8C ) }{EGr_ȡ"vG "yH D!؛r'}d~l^g5$γLYRfLڿ Zd| x 5YQHt ,R7Q~, +5m6()SI0qSg-#_Ct8NzԺGZ@+st>AX`坑sw=/3wGL vg[wؠKrt~ڀ;B9=R_H京K#ԅsqfeQÆ2*CcםK+WP[L ? LQPG*YI=|5%r/&!M@Yg#y5&ﳷ1*AC{qt(_عYM<#yC.֪4'hu/)s%>OCfu~":1EB"`2 SE!h&DMCFaWɳ~0'}7x{]$I/@O=D: APgroL5":uo2S~ [9?m^J?ZYDo(o1)~sic/J#łl+cP>4*Ӈ7ї̔׏ΈߏMz%hU#J3id+~{܁_&}fݴ&#)Ld"C@9Ja`PyeF;&=97wx{ak5Ӟfz̋-^u_p<p,vOm<=fn/N6_>NaKdǏӞC$wl}ڀotlcc8G[ޫTN{^-oot_׻ƦvWk3!++M\ ژ !~kuMv?k4&ثC 4y,n|#LGImC׶NMY3h[?+k&?Mffqyo0sgtI2 i^X?ݩ~Lm;շv;]||ߐN /Њ:P;Xjh +SZi<ǰggԆضaL =ANIwɏϵ>(M6^ `RVF4j(3IP+"3e3_:7*"(}@Uk6H͛i䡣GE 2_)72 `̰ E6g9N'8;ږ>P= lnWnt߻ؽq՗^yn{r1*J|A6I@sEu@LllM)@X(fo6YUpv#q2itA流,gXɟ|Ѿ, >&[+jd<\̻ؑB6Fc[0}9ov݄#N8 cG% [wCHc:-T}`ڶO7!K Ȇ>^*_-_[ `mgIY8#)ѯ8*U1Bf|Kl)ݚNusˀ]IA:saGʝ`8F`$^Y pP&SS iww  *0).\SWu/~2&`GT -SR錁l:CkEҚFѕ|kv~ PІ Iq$r=R8*q H]C_^#ّ&]7ahGp˰ LA290D#~zi{#Fd=b/ra(toOD8򯀁wT WrzZKpjo{*P崧F<欧wvDCJ޴`-)OsskPD hGm{ Ƶd3gu# 'E#L~@H L=ysTL^e dW%@'0s% 5 Bx ml"-©ǦiXV^:+/ԯM3-*Zd<=Hp _I1*MgCzb.j1"en%jYR=w`?d@IDATL>'xO? O#'n^SQ(Co;Q_2$2v'Wճu<^dg蟹*㞲rVy$*SϜn{(ֹjA»kqȪ*j(~pw%7r3< Ɵ߆\y5~rKs~WЎ-\Zw*^]?eCg]<8m\,ȑ1%>@duOօUYzkj\[ NAu߱Q#xg}q"s 613^v~ognV_Ӱu.aз69L6\^^n+5;t-bH+ka\m6_fapX7IV[dd `'`R9z=HYyƀm{(&u?mwA6g&b?GƙG]~&'ʚL0ILs l:&~+[s|elNTqvqCﺧzjX|&סv2b 0٣]??O1dJW~Cy'ɿ :<t7%ˎeIC^sj+);A؆~_I6Ew>0cNׯ}kr~Tcy] LDyvjmu;}lP׆u"Y#of 3#%>{Eu6^a;MDscIKpaǍ57W<󝣺MŦw(/FX҈D{LFXQ𬨔Fp3l6s##9~1!PʱilpIe} ]A.K'Ni ~A[D0 O[\ 6u(SOqs#O((c',G}ݸv{WW{7W,qDI?\s4ϐK{M7/)ۜʮJ ˥g;ʍDh~a& ?94l jJV%Ķ知F" ݗѧlg]:>bAxvѷv./G<$M0V;2-1I@Qe1p/K6 3.a40&i8D5sSoK]/JmvZ,ŰJ+HB)mT&ꄮ^zSwJ#6~-)[=汗+?yd1D1s<"%#%eC7܀r޽ɼK=CkbM%+y΂ym X8/ཫDֽB$+3Gh>5'`"mƛk:e_C-#wHBjιTP٫Oݪm,߲tGy2,FQPzmjS<J.eF!Q?0,O@"eFGpTÎdAU 3 s׉bF$7*{ ѷMi8N _x^g:5QD&| _\}ʽLggFfaeO5.($ hœ{c{sK,&,uNwqVchKv⣀|6ZB bY/F`25U /p̳ R<ak$5u7q{\|hÇZ.ם$Y+3_ޱIV[W]4ThtOƵ ?ֺt"``7gnr+4_KZ(z'µ@s|#o֛T1UVf)_sYR!-`\$/Gې"sIҲ;k8ub`}[XʭEM8h$~!|EDϪ(`?hǧGnx|~t+nֹG; Wot `e^wU'72gPCy%jsU_hTU"o3G.C]<4Gx/0|tyUZ#wTW:KX ͻ!_Y/f(py+V`/wO|fZa7Y[Ƹ@k엫{ݫou͕s_'h=AжڵXPii:-a]4ev?209OujmU|~"n;{(>nհ!Mi3lS~Nt84ci*qʹ۶Ӡ6`ҽW[u09qGi!??_#L|կϴCY>|g뷭vaII-o}56oS.hLZZǏ`r.[mI'xmHˏjr&յqq-ӵ[]nն_k/doZXYN`f l'Nڨގ~hBŋ3<]|إhd=l2٬׮fɊ#8.~אkȟn9d8U}ow#v+lpҥ di6/êWe@~l}}cYϜ9;V#NFo~|a LPL'8:Gh֩ncghcFr[eƣ^{ˮoww/}cSH%QELp2 <fL <%02`c'3LN^ci$ٺQ%&d{UwUuu3WS*)q:go ^M4 Hmm`vo|$FԖdD$#%Ml@5kl}w P$ ,PeMh+r @$]DrrݭQElN," j$jr( ,*0mtHobQc]i Ї`'m%>{76ĀLJ...uKD3KwX(Mⲍi!ʥU5;Y\eM r !_ѳkЭ"؆EŸ9~-<9|'`1Z} iP0}E ~&3=/޼}7bUƩ&R9>s`a6ϝk疕cދOy=inxQ'S:S!Zsvkgc*c{?v6}I[i(\eqS$;q|{߻tݍk/ubTAH><# ȳ;{<+} 2 WaZ۲s:_IxJ26}]O|"_Ж-},VIMJ(eK M&}l\P UKŅ 4R%hUgvַ!鱜G֣mPhRߦ$;Io!`ҼH3N/ͼ:>0G}R?{…;`\LSOYa;C^gLE= ~BKχv$6zjpqC{X7~jI_b-qCO*?bsO\)}&"E2t(OSɦx@_C.BkveȔFAvG> @,"$M$n~; aT8[5,ʌeù;٦{| x2{3-h2l (LC+^|]6P< ]t:i}--ЎQ\\R)8bcECO),""`A96 \ĖT=uʈ,pHZ^ZX_tO12[zmEė^y{;^~ݕdU;p2 X,jk-M[d Z_{ SJЄ9 `;MG$H~C2E8,"7_ ӀSw>(X.ZN"628 }E)P\=&]ė;:˩#9D_X|k_D7|mA$׭ܠmA8 2 \BmhdDВEM -U3V<̫+y+Q,Z&cT)nlϿ }aj[?HRpvv5=D3hg=A,%)@ykdʓ.BpEus͋DMBYteٝH^C0%@0`GkK|z-|ɢ/|n+i \+GjcA/-Fgx_|eQyNjҞ~˟7cONd ڝw_1I0F*9æ_hYq$N O1d"za-(p({FKF5gP G gʖסY!ڝ'3F\-VVB 83+'>AV}1޼}0y[Ͳ@S6d=(E4JFBfIYO-{W a/+ (BRnQNL~?YDO^p n }멱XWZጯfaμw7?f8L0) ]m/K{kW}เI}I{[@4}EAUw7w;}ؤA捪 x8֑J5 9}9~QT=QR4kmR,)h]-[孾圤iR+yZ ȡ?`+9;9u_d~E{>: b5[_=\uV2E3H*93ɳqHN/2j$Vbx^f)7.H}P>mdBNI10)(ӈ= t\h2(Wlp]:2 #=D,?rf+AS\p=CFm|){L95ڠS>T1-*}OIɻ{*_Y$HjXGYz! 3yHe`OqOg3Z26WSoy? ?@ .Y,>>dP?\>D M=4V:)%Q^Anu^zkXnp-)e7h i䕬d{]zMRh-ٔS5hpb:5G92y2=GtuJc9Gߌɡ7n`TكxZFҗ4,,1󐷕-ILjGo@ . MarE) DDyn"3Zx U bAmje2u; o @,Z\]Y[ln #-XJ Fmb. ӡâm_5b Vk" 4ٚ:VB `ƿFRz89_wA\IVzJ J4&c|=!vNu - |} jΰ;9<׸osOu_ ;$`&}_ > 1JYe7Wf4'7c(n6?J*98ցK^C~eDfͭ,3Dz Oa>{{!ld17PW_ 27Y*HGZ? dH0"wNṭw ]#wѶ7W]&\V?(lDЖ{18ƴp"_gh8b/%J'+NߠJUn݂)ic &?\W?H憶|ևe?sI8\(KEVXal3ss؎;&_p/h]z4Er)Il9*BGkt-Bo=Ҫ1Vy5@S$'ڔ4g yqjҘ(lCF#eK>6AVns6|$ xF Q&qfhh"L:y7VS%1Ǣc:%?Q>Ï 0u׍ X;Vj;G"Br(}sK 5jb#OVQAZJ^(Q>6=:&rK/=4&Tb⣗I>U֎MN)bxX@sH`0YjJ>>S+t>1>%T)AŖ̑QR9?>Gs<`r:?X&wW+DT+Uj<)6v.~+a6l~wäf8WthcJ;{H;ةQ=b(Чt?*{}J!.Xw?CZſ~6c;z=!o{&|Qy@gez~6mX1|\&/w($Ah15qvέ7LҶo}[͛7 *ᗽ+;f.s?*ZU=эeSGHhgǍG;K]ֵVǀ6tllZ~T  nޖ Mf0pYq+jl%ۻUP\/v )[[gEi3],8$.[aa}q7 ,Nҥi2;C$M0L$K#:nB{[pY R$ YFÜ}K!*uSҠ2 nFoL[,8&䖭l-hyv^sk8M-9\AEj)qiiGVL,gaͭSEsgh-kXko]};^|ۯwd}-MY-i݊Bxt/}E1wԂ ivY@^-NR\5<9kS'eX@!o: WV-YI--oyuǠ02U|?:L{ p73 `D%t|r0&L SGFrp[#ۈ¯@H,8Г&O$Non4}m*vیvZL.: zp@i vEɜa^25k6"9d?<)qy3̛H9Yl/-ghW]mK<=yeY6cH<[ꡏe`})/tՏ\Y@;lj8vS\)kq4u꘬M_) sX(Sr3poTWd)vUAe+N>!ӧ!o!Z)ʂ-Y^0I"+3Wntæ/}$XfJdNr/u<=FOIϧ>iYmv̥w9:LVWwhFԟ+D![_d`s}܈V} [$mx/W3e3)5z76"LLyqQL%"n jΜay 9P7/ vny7`R9}^F4b,wP^%wb{ !\BS0'Z)uEj-mJv&>o%W8py?!@MI~4qR1q^+-XGvMG6c[QfOqiQe;m0(d(QO~PIr606L-w*kFz2yl19&_-fe}a?iSԯ|+!/c^C4V\QFqL66AGŇ0cy;٤-tTp`F=mʔixӵty4F g>CIe<[ Y@tvG5e/a)M%ۘo'xM*/yRўvg&XVm(0damY8'Hw- ?-I:4鶻fQmpq׈̈,pĖ.neiֽ}~qJwHqi0U%1i'X/",x{uȕ::4,`i QAxX:JT$\lrE[a.@9&Y[Ĥ7Ze.( ڙc9ew[Ry뙙ylF ,|Ҏ%YznȞJ*7?z{|~M>߆/R#L&N.⧬0W3p٬ tE d=%$꺾ƹ6hr, BU:.j cK+I?ϖܟF34:͚݃RD[r9 ΈZYt g$` D<>'ꨀu:[AM!I-azj5!WV-NILu 1MV'9 #ti@K@j0q2:'gC**A}y[޲z:n|mgp'`cܞ֛k w ME|c}<ǀ`\[ +9(az> y~`nl$br.0Lu}_.?;1zR;G'+ypVnŕ ezpIH<_ VErl[]>\Ssp{aSuk!f.2&0 Id|yխ{LeIS~ + $'\5z[hilm&@靠O`ɯs>7x}>NM4T^2dz%XztTG{i}B3td8 e1A\Ki@9B1ZܛW/6hϝTDl}X~ò5jr?e.fnݒ'rϢ-#1 eHzf4/zS˞OC 48'\AҚ-yV$$|R%.B^ Z Pn^ijy M˷ י{Sm0iI%hOUVߌ16GMsgIksMrl<<РCImgFy|$? ,y0i;F5ʜЎ &s\{^-k*eyѮ *kJVتF*f@3Zӛxen\UZIyF0R{Gkx?,"m&x^'׾[R&+,<s6h6|>ܰΐ7û. `Iڮ~ (>ږ6)g|ULJDI1/s:vEdʽ@f= O*[b 8gnIUg8PGAgY%;Y%ei%r('BƋS<^`9wJo;Y<õO0$ޣ sk-stK|\nnHg~av([,کy:4'LsRW]}_ѽ\6.PN'GĎ5 {D^쯼ZA?8 c&O [m:NƴiQ8m78ylp7^{e=*iЯCa[vv؏l;&^eiMzʼ7üvL<c=qf<4'?= 8W ZJχmx~$[-}ѴmἛ=['`'|RR!:{kKZtMnӖ0ޮƀIFF[=<{a֞nT>LO|{'#LZ|o۬EnJG09s7^U$><ǽf1'SޘN{)kᄃJ+oc}Z^c~{Ep4-*$yysgC-[vT&vzU؞+`-e6+N{? K/Խ;8wdޭT_| Z^&pX0mFu[-`xmj4 0?6^}"{,z-,E-YYNSgFwN5%1[QK]bޕXt`I,,M1RV}GӲp%6+w@l 6AXкG Q>lY-#OiG-31㦀eFfYޗ|;Ţp˅Y®i33,p]l{ FEA+ hjH3o陳e"xzmί_ݼry;ot߼]~U.+-mHQqЈ2W-ꤶe\!!hUa گOj㼷9rN&=K]qμǧ`Et[O~i4Ɗ=]T6=Mdoǵ u L..eejq,2"`r!IAqqe%Diɶ.s< WdHShcCyd٥~׫ꩧ> %ݥwa->TnyPz;)BjSE}!J0XiU$i柳0%.P]@uـoFb qPDPbu@+7ֺU)|)crAKE$r`ה@IDAT+R.q|ݳD{J;M+A{715xY {/b0]?Iء/gWZ$U2d|rQֻ.4U]i+A>h Y?9"\>. TPN@T/^r  3Dz9m}៤<v Vo7}j9nȷ/}R <5jֱc%oi/*^ř9CqD|LnKx t>R9e6/KX $Sv)Lt <;ŦgvK_Ifn cZ O9ΌjrKuNIQ@4y W۠W@UYY#ؿSeCS6NGT+[%^ {uJǘ|s}ƥY5[1_];~MxQ`z@Ӵk5$o)lKvRFܪazjMz2NѶ4~&P[-׶;%RxxYƇs̋dm&RQWWwt-\0N`I[.0ݟ%2g苎$7IhL{( W^/~Fڇylc])_JxQs|տi2_qg m[%I$;NL{Ї֭[wOy~a&][v8Qug+'q?:5l7؞G0ۿqPY<-[[_}H_.&Lfevɲ]y+?&l>mcݮ`Iiog,Оukc{?I>ndC۵fvAC;`R?q0';M;_m:Iycy<ZoonHC'\M 9t`IAIҏILNyG&iii :lOqF۱巣"O?t8n}g˗/O_2݆ަCG}8T+`r=$[v4Ň".^*m ǧL+EIܲin$BǺgD6‡7^#NԤ6 ѨhYSN^ Xp7o—R{: gXE-V’ &| _4 ;lӍ03FBmMes(A[yii]B|MNtwsm~< $4hDj3yCmP9PY褑4 < lp\squvއϻDٚK/{&2& RllB0:QQ# ٠IőR}M=~×p T<Ir#m 5z),8&׉dn2qכf BQ6e #M¢I|/}/L~Pța2j 'me53Ly^Yyc'`1a3*^'q03@I|WA󀳚n0/o?Q%66I55=穔qE/>$}:ZBiRsoaFؤp })vY^ulo9QzK:?ӎr[7Lے~LqxOcKg> y$=3~LPh|^cRďqUP}$Jj.TJbp _3G_!յJ)?yza8ĨΗFnM#Kg_`|NzɷƫIXCT9/;>_q:fl-? N@Rlsy%S_Ƿ{6ߩ=>.=9w_9l՘#op3ͪw/OF7gyvu~B?0y62ܚQZ~'%Cu#d~,{~*h[_e/m.<Ǝ^z\ۭ탶{9*dM֏@qڻZ>ζZql8Lσ1^bk1o[Y[dk[ݽ^o7=z I#aگږ}[ųK`rNFk_k 7[IiZRx&yzC=Wo"L*w }r7d21ޒ{lxfUeQ[r˳_fv=| 'eG;_Lznu;ޮ0_Udh r79[vah>Oc uH 5A,Ͳ@~9 ]jQ'XY[NE ,e[i@ يpD9͹2^cY@+Wn""BxטD)c'S[WLn}$FxWb{4"ˑ,2[d J[r{XXs"; ,@gq̱ 2,MNv [ j<R@L[,=ֶP0SLe  rZ./rq--r^2ϒL -~ ':QDz:隐3&KގğQRƭkc%VR|- ـ45 Yh~Jn R+cO2D @h/H{0F_]Cv"ucFm'IxgC$:[Om"@Vy Nv`DjLnt]ͣ 6ǤF5Vu#z5) uZ ?hH@Gl7.;MZ =FL3%ضwξy׺o\ `Dw}|OiͱH;3}]p> ,Q1{lG?5kC \ r&U+dM9NT&BOȟVI stE GS4ϢcL5p&?u7Nx49u`I""<%ǛFW+F?&!6"_[Ӏp$H.җ]bV5gQDCwOٿTxf̀+SAz׾kY&sM*_WUӢ74Ɗ.uȝi:o&ac4tc3W7ȍ0)GSg ӌw 91`*n_F I5]cV_e#Grn1'}kT%CRuQ6rOFE%֫T`譫b슬L y-S :R[?c^s2H ,b]I]OpsϢAoC^B1u%xᣴO dgF^Kz5 gZۋMvmd55Ub#>>|svs<pɣwvx({Uû]Ph~MIr49Ly0 0)*;xy" Tqɱ;ÚgͶ-kc~֛hO~r˗-}4k yV&^=|8gghۘi[v&m-__ޒ|F__v+2V(_e1ncvSZvDqLn 봺uo{m/e˼7^ʔ |0RޤpL׮|~gqy%^ xO2Ncqʻ>%wK{hGdZȫ$wyԏu%[½Hy睇'aj pSO=½ꏏӝ Ga,q_7y=6dks߀ɿK5$b$ 8.h067#@@]a&*S,iIw-IH׿?~8 - R:8b來O Z?K#Lml~?$:˂+I rGaC IT%E)LH J`ges ; vz|P'`*(K] CW6"%~=oۑ7fB ͔ʁG F*{ y9:CFs z\nɽ&[r;|F57iY美]"}+ ί336!Vտ[yzJ՟9FV^QCgxsse,cȥ,I er91>OxݻWnhs| }WO3/,wYgG <<-2zOP?Ss:ѳ6&a!ɾnS-wL.xO;8R"+ugFNc=s<@uK^P&Bɒک p-1ݒ2\5 ӏ~HX#+_y͌⼒2y4g[1mWӋ},}y q޲:GEd;W[{i8-;*%ãn&p<*.ۡbAuNzA ^kq;GOC'?L6=| `p _~۷u뇭y^C&(E,57;hMbհlL/@ dtR eia;{f<"/VNB[瓣C^ZDσA&J+ޓ[^+ok֡{)_$<38ώ﵀*m?*,Xh[yL?i\mlL;I&o;i10c^_xM*?Hv2Uq7F^Q+W<4E?qv{>l?Ӈۋڧm_M^m\7_~-R\X"I.. ReFD[ D\\\m EwָGg2Big%nq;w|x\q#>kw`tp]fevwHa̹4D\ h&WXB.Jk,} otW~%vq <2o2yY`F{ݭ[ٞ+sl=wN$,@; sR>.%Qa iKKp[!VW \/eahkjt̍7xq2w\b"6s-3;oVgɐZNYVMC=RlIQ& qAՍv'e/JI5¤^y#{SL1M:""%t g%?A"- O D.Ki{v(/l>Yzn!ȑ4{7$)eN{㑧Ogd7zQLJ|Ai_ǧ}y@?v\ƋD@_`K9LG(68\h$f.<,'C^Y硟{A ,B 4iIv ڲeƕJ&}+]=C@eȿͣǤZG|bآJ'rY3J nlrTﶨ$'x9e+[ǜ~N^d~" +am%֞HIz߾,Q xsg 峞l[j}ʞ)c"B"5g[2i\FPyx=ɂgza ǭcFsmv̇]x^t+fn<ѫ4"r3(ꖲr)e"tK4}כ`&=OުOSG7/犨"#{×vB'SBVݎ{G#&{/Xh!{ݩov37fo_ٚ{©&N(`VJMij7jhĻф&_"j ];]E1WJa#AoH/z OJWr^`"RUSΤ[v#;uϵt2*b%׊2()+Eӳ[&12L%cH7ʳ??Hj56$,ِdxNjgx%i2?sfUY_"׽4=]ӋXQR ?y+`Ϻ Qf(m8, 0 'R׭/ :W2ڗ+me{Řfr3#uӆN3M?)9T.Տ*?mEK?N?|zK*`<`I%Em V%1s.㟹0o#sl67&JqII4|֖v?xj0:O߫Pg8e<9/M-ܞ'j-TʏGdDZ8K[QxH=oC;Įd1ܓҤ=[oe88v?n~CuTɡMlsx=0L>h>[] `R%[% m`]ҺG/yUiwJ7%W=f|<' ?;>ߍט~/oMv.L8}+7k;4Gd>.ƶ%+ieێ-qI)v~d[_gCٮ]6{gtKӧOY5NwbD_'xYLo r &@l̂ح+Y 0`Qhy){V\'cPKl;9˅g؉z-#k0jg0 `-DWWAuXuwAvȭTȬ8FScDP.W更:z, ,VnY =8ub$R!4?iA\N܈;T,ai `33$iR N\#^t }- o qzqcF\bz"chYFF`, ż=!*lvOt8:GJFNȣg3^ʟ~c Qf}}sAǟ d}ce3‘X\y5bdm ɋCDF 7s=M䓌#cMAKyL0l70y&02,?s+J t÷UTu~@ oߡ_0y%( kj W}vkҘ6O^G?~ԟ }?g9pBYUsIϷuo\#6S\ {eJڔsi=䊞oh_'$sWV6@Uʝ}F1K7Lutk&2| QMr_T$}?H~4QcXkUfx~?QؚO6PxU"4ˇǀ8k5}y L~>[ٷ%ё'aķgL>k1$h'+rÛ늜?1H& nsz=̯}VEQwOlmU5T%*;p)>ɋ3V6}d֔\2BuTEkJ_d-)Sj>R6dg$ԿeU^5ϸ RwOFOQjf8=xg0c=Ƽ[0)1G\bvϟh1$w'!`ңt{9/>qC;<{Ͻ8w5dn~h4+++c7c|chf; Gy)AyO̎=C0 ˶wX#IFfM (p3ӳ,d~Zf≓ V6KKgX9i"'իWM͛<@2, B BD@1$Ywi餳B\V8")T-p@o̹V7Y$RXg С-7] 6n'~:)+isFftAId, A_v10jmX#E5l?1*uxR6LFYnŹ~QF<{E:\7y.Eʭs[]ȡ,mk~qL! u.M˲ qڤÔؐ(+`9}Ȅ_:=b~hUu+&n#kܞ Uey 4"\^Y4"~|/^}[w6YA{ xxj%pa+[+D}7g=.BID_Iݒ'?O]3m>ٚ L82˵@LC`vjx(K$T4d s 9?C/$}Dž8wM`oo(5po!}n -ʒ[S7ݲ~Yxan0yb۠ c@>l6`ȣZRG]gznѩ:׎֒|A]uS&`/7pd}q{D_`QRrm[`"L:y--t/"A4]>cGtzEn9 ~ҹ@6Q&/X 4Od >F2uJ[Rl.O:bnZo>kί5@N ).3 kjf%7a'Yw0Oژ*/2fi_m%O!y-_dd /s}QELv]*tNmromݎ5y0Otșkn~rfy[x&8p|*& ҮoE?:}%'^\y߭:&9f~9T73vUyCo͇+t;g (ڟ{þs<(]5YxH[d XpvK8V2'x[O&kZH (,dxyԶcǑW9nHӈx^7f׈wʱHL}.v}{Н۬+J$ϑ|>Å铡Jzgۖa)}k.XIh)+ޓr&MZgkU˚VⓊ\Zv@r|%ya^yOf^&3<"iT9|Y&#k9ml&i+& +D{_ϲoUվ]jt("HQD$G |rr Dqy@HB~@2!`ۗv/՗׾_*kjo۷Zo5c˜s_oLFN6--E!/R](c&7`-+#Z^$_g{u0.4#I"aw욷,W)#6>_JBz L`43ؓgy-9Q%#ٚ`IOu3W{[2O`C_%b &N&[;;"`?Рa?EkI$} ]ʞap,ɗ/T1~_/I a;n|Եm%ڊZwQWO-W8l/)Ȼ)~ܑ<9@AW9N4 r|s?lfCi@3F~nRv\*FQ~IIYMݑë_zZ]խnh㵁vEq!G\OW_}EL_d =8 ]Ga}uwNv;j;(?jFhJEGVA({~>:eE>M&G>Ps\\Ox]_J[gyyaz+SD|&~}XR&-'r0) E{ E) K>@IDAT%4&~܉ǰ2v覇я]=ۓv]|J^{ v'wj7޸7Gu뎚?wwGL>fA#L}v^vح~3 47wz_KM q(4%^hNjۿm>G~yivણ}ףW%r]oW[r=h%Qշ;c~(yڧ< {TUAXW~]~eԾu_ n)x_;OP`vUp|sskRw5gj}k;ОbԒ/ۓ,湽Menw}[p9$ 3KDrgf$tk (s:<Qbb 'PJP.zP@(` ,I(5빸Hl5˛ȹ PpכMdEgMEޢ\>ŭtk3b&h1sD K{q݈8HАhI80r|8A9&so[+V'\pO}- t [|W]h.^܌hhNin`dId9yɼ #oֽ$J9-&Q-想SO}7 F4aE > ۾-ױ"}ED 0FtQEHuT"}$~3j _|ЯY mB+TL|CP!Wh@Z+lEZ-zEu5 QЬZ&3jEɯ˿z̯_$YW7aS"-2#L?0QP.Ŏ6T)@yAs+Z- 5`8*H~`_(>8>Sz@9|y qOgЦrYss(?e $εfJLn-^ipkIefI <^LJobE&-u&]C~ѧzj8¦I[QE5E$[Er#CT6 !n)qa>t ӈ/INr тtRQ;E I/h!46ڧHwÏ =1w1a2֦_dG[O$`rwUs~K%_`lM8,M!)c{-cnbCwt#xxYi^%! :$t.,G5"e[%f[S~H_V>N0?$ެnK ,I0 V]_lmy$Ll%m@awێVu6I{}['m%Z=Ѽ203bD };.㷹CB,]cʡS+UkZcCm-~1~ c\c6OVnbO`c&xXn;|Lj%fbBDĻ hΝ'8rK siCk fL."Y⏻czv̻@jFNڭ)`r (mAőhZ[Z4.77G9Gţ~sQivnotyPdzq-G}mS׽iz' hӃ`g P;F[y^w*f;3(үa&?h^ًʷ֩]{Uԧ>e1Hv]Uw@T.PƔ$dxjҾ/??Jt:>Pyu}ţ{G]]9Fَ[>7 ۮɊ0?>Ots~*wmsv^շwVgnizgM]7o/ߍ~d%ѣW|7>-eŇ<=Jޮ~wzڞ0ۍ+{ ]{>{lץVn^[>g}v= q'ÎNamW6U*%h7O0 r,]#yN8;(4[ƫ/7^Asƛ" >ȗqH1aIw-s)vPXT \Etbh\s1xrQp%'ilAuŭ ]XN L>8Nze@3ilWLݒHF3 Ѵ{J EH#oe'`r^CID\0G'2emõYCQ\fFe-|P8k5Ȉ,BkcJ-YKܭ> } q=(>9@c"ulg`mXj)uKn.> EKD~xзB>8?gׄնQx;&񻾝`u6_$>%SB$8Dd8yцP (џHj)eU{OJ<ӟ" 3^(! FjS{ѧB?RFB##RYix!YOb jwp|ڊ%]_@\yƘ6{7L21gYmݪiAF0Cu0[̒6h`z"L&ǚݎ2"i`BLM ofmmӑ}l=]y@!W3Kiu\l8#J`t]`LcHe8RVOۍ(jZ gqq0iX_'$ϑq@3ךӫ7S7Sk͉0yg7Fx9~.5_Z47([I CL_ sL)=蟐Ŝ)O`4H^eߩxwMUS^Ŀq[&y@"Ҫc)AG]BmuC!(.C+ Y2LG~ 5qO$ o;e`o  `Z?q=w<;c>'N轼*yu_&]?CT$lICrHٗ_yzh}P cN$FU91hR%??3eͥ,Q͝$_(G#p&O=yt089 |s OymMcn8>ҏ>rS%P99X/`rysg4*ǽm^2cT ˦6!]"lHd}P H)GA2})#/#fw9I$kZã([^砝{1|se(ATׯ$D{I,C]+2*E)K0?BxOwEkK;֥6m^4gsY;kUJ=ua_ZW~z;s |V^; QhXJ5Q:Lx-]*G6wX2v+}ޯWu-G׽[oCr<(ɮ{C^~˿;DO7{-~WkaLɮruTKg9 08MUo/Kv:6]^tזԲ~ͯʯyULjأl1|c\>:GarTKyoWoni}؉otOTU֭|yʕ{nyywAHڣ?Ȼ+wݮ=|XQ FsWaGvXy%g]tb{A(<ĝa&Ct Z,⨶tf;nmùf];9s&vŮ$nEcz&'*YdQL]\l "wz,H$pb#^eIѼkxX^%hv\s/+^Cv#KKފ,fMN^brQdcL.;8A|%26hs ۔CL(LM$d3r$*k_Ҽ˗.4ˀV8hni:'Z P.ǢZ% ~I @\aSW-wx_ g/%4Ֆ^4?  &vkѓR|YE@4F  K,(L_|RIlf1xT( Rkrcye#v2lDA|> LPsF{'Hq'3W' YNJ_ DӐ=v?}jy94mv7ȠhKFtB1glˌ>W%C嶲C Yj+RD4mhu"~aR:ju9B:GBbl= `&t0D}g,ߙ貍XPI~ $#a=_v UK&mC21㩢 >^oa%^F[Ǹyi<|5}L 6GqfD^L/7F[cɖ>FMR ,H31X-zFzǮ΋q*dlh_FMkr}~%XҶ; ?Iǐ ѩ[ceٴMt=/WDb./sfVɕ+ٵf(+u7D&Mqw`K <]r]Cn\GZ]vw-GA(i3mژj4eڴ=e(ܒ HI=(j|dz=#ȸ_ŲAjKx;uIrg830xl#*:{k߻?2$tvHAziR0O_0 X[ǛX@iw>μ83W^e|oKgaE"XB#䟶PbU8i8, 2|[7&)%MX6lCRy?#~PzW>$9fvmY/X'ȼIsNn3}DP0.,#)hP $sw^ѶpOUt=x:W~kK7 (*g6ꩶ!;gFf{όM2@,} d#e-! /D cm)_m=rG0v}䙲FýzZ"yJl%7xi09N[{L[rar9 }䏵r|ǦGJО"O8)Il'0sw'þ=5_0IKwx|wz;NE;G;M}ԑv"ʭ}^ےzUob؉T6^GmamG-nr.C>QLaϾ8*d5X.c:EۿģxԵCh3ow?k_hcϮ]&lhm;EOeӷy`Ҵ6yΰmLyʱWw=AZw箣L}u)aDwYn{F׭c[o7.mNŷ+~ҍ2Y;[e]}K{֥îcXQf&壃~PdQ}ѯ׿~^jz{}Kau>ӭO~hˤ[Q6Jt;x; #K}?l6]{8aGvXyʷ~G9 n~vPfYXKu/v]{v&:b<|/mm3[VsHve]3`?/up!@)|[Ӛ7o.@ڜ?/RH|] O$ٙ2`w6y&β'XdIS4SDi/Ahs@uڲe;\3@D&|:\b1ɭ!ZE_dm,Dd^bsnp[xX} (u6vvA>!ZW7Ôe(@lmDǐ_lS:ܦXg4I6]ͅj@[͛ҼvE@X _,>KH,roU2@^+/ t]@LQ&hr'n2u~P{\X8k,JڄBġ!ReZaFzT&7+`v`+}q(LMc9Dsa} L&eeLD, Z=-N1v4D K}+^Q7LH&=? 66+%L\ȶP#-!K$XV9UAl^J陈x.is`; ,閽570"cj )SY3X"6F05_\'b-(|~ =ߧw<%a8iK8(S1g֥jRI} hyx!Xʘ1+iYth|yF1{ YKI@>z杫R)f1%YЫ_f|9E@:C 3'g]pvDp l)mqh5֗7W67IܢړOhBHaA-|Ɔ*F I֜Ձ_ (b5j`k{Xd'ZǤSNZvY/l34[&3<8!ũ;D9~A$!oe[Wne߮J 0[g^? s Jba[Zk<jIuv) mRX15Fev6#W>jmˋrlѽL(J˲pGUQ4(Ktߟ}1g O g!4+y:;|4ض&mǚ ce=;&_u>uH? " #(r3砐R~fmW[K7[48`SP+d&}!s-GQd𪶢߶4rT4wLi[t&]| Ӽə_ۢguIY|`:gs? "3~|\ė0eYALuoS:E}lvH;7+GdaYF5|K=2Hm2_gdZ[flD]r&M*,9RgxEK9gv)-eWe`W`|< `(HOAhPVW;H{mUrFG N@4 C/p9&FdK7I˼%ξ|* mmG;dՍj)`-y7t,-ST $IiZք,aEҧ\)TQҾz[QŽ6{is+)KgnQ W'o12G ~wme.IBZO T&qYwjwU@vWڵD;`+!u׀̓A6| AٰAߏ~?@;ܵ0{}yWZݤ)]j9JΒJ}-{/;^Mo_Q&T}+0n:auU_n^UޭMWyawa糛ND&Ժ`RY_yI09ΣITJ{T 0)?}ZmT?vX~^U|:2G9vmlǿlFݍOWnLviMeһ%w覻GVjі|k?{mٿx7׿t_u~n^񫼺vU޿^}Z>\}W~ֵ7œ ymoɒ 4VavPS~oWGy$^m֕ڧ~zІ.+~Gm|%O>F1e]oomvyﻶRvϟ10Yb[=VӀ\x=gH`DiG;u&.97[FO~bhAg,ef3lfS 80 4g IX;QcQŪ hi`JIÈ^dn(w'x\'ygD`6|-e[%";($*'ݒ[۸&r:Iq:)sD׉i dq Z)DDq|8YOmB?F-=9C4N{!. d9>1E>Q&~q)R;ۦCך+o\h_}&!ҨI&v&O0$P2Ռ]xHF,!u ł2$$}Px Bqrh:llψQ20"Lr8nm-`h[ar 0mF^Hɭ eOAj!G.+!^֋XMgM[_ p-S׻d˙h[}R4ZR8nJm+{0Ӳ8}S"2s\&:臈01pj Z1Ud~\4\d0I`e1/`}J5hXn=|>o\|pKo &R.e֋8-lSA{wIM>} ;`SԊ-` &Hg4E)aKȦ`c6uci6RJhoz9 I,Eԡ YBlHqcj  R@ E" :69MS 0iTK#LֲݖԾ-ck&1eFK|.X[E1fjQxE*'I?ڏ("lؙ|*+fDI/<"%$9 Iʹ27ˎ\m=%t ig mB8ܧ"8 } e<.CCGZH1'Mb{W3kךo-67n6חLVE$rC>aAK[ڞSzDΰ(ؾRGQ)}#+J33O{Z'F2PxV e jȰI؎P\-Ŧ;sѷ$h3@~<;[0F>>c Χ%s[=qA$G} c}ű!C:4T;tw}Ӓ1,9_en 8} u~`g;PV# !ǣuCi[MzeyFmy$hAm#J/D>rx!o.o~d QF( hwU~dH$sz*+|:G ?B7|t&s . ^ >+A9zXg"lUѲ*QqU ϴ Ñl3s-Ic,~Ѿ%{Hoq2H>W6($~g ,hv[G1b>LJ`2}cXR$1*¤[rz(|*]zw 9'5Ֆʙ~1G&\JQthvצWh$O/A"ܠ W19V61~h]oʢLd6S֬m P_?M,|w}eFMV==wǘg0s8c0iO["m02t7MQgDXߓ,`[o^kz[rcN(X&+1Gkh2Itwڗa_mM_}`R<:펻vltٮZ˥; ;w ˹ou~}ܭMTuPY a&w;wԭV:|S~ʟzkD|C{ڦ~WjOS^~ݼwjgnێ0+:g |kT~ˋϧv4{0~ۇy_zÔ?dWJ\o]?TZ+ݵ#Jnkװ:;Xo~0uw<{۩i{ɒA۹k==mG(3^w!}=>٭NLc8nڰ_מ}Q幼W=y7AN44jUkk+{km6K D K&:IC9tD~!:F|)i4/'Ϝe8NGX/ 7_z1ψlj wZ <ƂnSoS(rUn=%NG}ZeHX$tzF$`B=L3F`IQ̹i^>]W5IG:6[!XT9wd鴳8Y=Fgc#BU]qP\x];h$J֜Y֜2z9v_ln, 罂A P^$g_@var]BYOnC{[3/|KyޅiAuK}j8GTf_,7-G_*>Z6&pIN4ю0!w + mTpi%qnV#]VT1~&'mc΋"+sܞƘuΜ%1J-`rws07HtFˎK';5l웩CK>0nwMcG]$y:RJV׶BMʴg؟cޙ6 eUQI [oO4<1rʢ)𝦱kw>AwgNx6SeO'b _^ sqyG؟NTeMJ-:^R"m(WwC:*N葽B[h=y4\NGBL nQ!$Qu̢9ÿs2w3ctA98rVL =IҎ=g|qLF;~ȱ :J/{cWiS?{߼x*@/,`&pv[U8%?+K7.vY9]>sG1;}Gv ^j%mپa'TvA*+TsP9ގ}|?O~:+E]"B> *n[X ׃ m[tƧv&wL0u}ɻSvczE>O=ףLޗ{9ٟ=T)Wٯu ˿`|M9Z.fOv;Yﷷ7<ꮭn;2{05._jlmY0"`$:a<Ñ=s* rB3=;Νln.,(v,l@RSD\YZnN(4X\h7`D'.ti"^A:dh.HU㱰8άaE2'*L G<]U&nm~cm5b M@+knɝ u".Qh#0A.;T¸N0Jc<{/RVʇWl[z &Ѯ6脂LδIcz 6EA$s&Xv{&xZ=]"*u](.Bn|0"mߤ4A\x7u2ˇ58V庢y 0qbzԵal"rӏd[<<$$VcID6?urm0'Tz[m-d;a+U yh&ͮl[}J>c_Nb Ѵx dT7͢Q(]`v?]o~|uбLyJg`hl>ܛ#2( =J繽oJ;cQٖ22hӡd$,܆f!92GYne Z&x۽x)*'C/d{ŏu]_i2#C^yZ &=)g/0Yd;'Ol P+emKEn! @Y7ss,Jg8 rO0 W|??(jΙ>ӧS|_͌ܒ:Ԇ)m q K@Ιa$g7GVG}sA cIA}Y ;HۛSICA*.b#ұ7,϶Dme`[,F=id3M[,:[I.%}kDӼ>>|R$C,ǣ51R~zzT_3L-XnaWo7WWcK0l?G'dM6>?TɔK O>ʿ0-GmwzԜ>ۘ7ЙaQgQɻ\]}*JƒE9*m[-W\va(Ԏ}mT,]e0ՖIu߿n'(%(GIS:%0L G?z`.]F.zuTy?{m`hkkEeEk 0m],(Tnzw $[[M-?Hɾ{].m7򭶻 KOt}2Nʽ&/6n=0mϯʋnAx2uvͯa>]n]޻VeO{c?6"!2ϵYG=jQ~|TA&gϞoGߗ09%GӾ蠂a-WYGa&ݿw?6u~ԩS]4[| //2H-">6,Nԩ8ͅ;" MO6Ȣ F$(ɶC]vfDLtl:gc8?OXcĆ@GVOІAQ" ]r"?AI<\Psrn9}$42Fg4ZZ\`jnj$c 7]DC.e@-\CO#jn ආL_`q%8 ,$rG s{UGE3qJvws;&\: W؆s.ٖ9aXHh: `;E6 7aڏ^j7ظ` }ŭHlCY݊c4ԴUn&5&H\[E4ƪ_X06&RڛǗjW冉H}Y<{ΤJ:FS>#(L>Ah/r|DK bY G$ܨ[9ͳv:eF_{U8[-F}x @ȞB|i1.C ^I'97s˳gOṡF杤 93@͡-D:}8&+VךZ.\JV* MѶvWWn U yKC*;{1QjG<3ͩJxo2цA;8sB_y-d9QN^տ7}|ԉ;D=ϟ4MRuΛePg[J.|j"|d+*^z\m5qk/2N! =eR>pe .XI,|=CQ+yɈG0:&}~X`W_k[L߻.e[cKcPw:2ޙk Y<NA # c5V֦̅n2fOej)g1Lad崈Q_'iԍWhRy:C(<1;}ctҧ!$=L 4tξqk<6խֳ/EoQ{mf?.:|5Y?L<L:gKkۥ~#~ow_uW~]w+/Fr PŜ<9İbs ZF3(%v_>n-ng~}{mmz;o:(y5774;3}sGaM>ϟ?.~~^:&MoW|#;Ns v?|:lO;+_YX_IW2,/0@,~rv "_XrJ IA,ТP+VH ] q./ $PQJ0yXL YH&Xt:,cYrdOuQ` R2WY7+b]83ټzv`<&kQ;$4ANʅ#hILrKnbsKn.ܠLOcks2Obovx[~-_`;HcORgay-MiI;hB6So fkb)Ny%A)cPv1 jH7Q,}*ti@~zKyVl3>nY|Bw]vkY=tYyGE?1aN^iѶd!C+@DߵKDhnpt3PhF6$ȺF4^R~y߼F$,}EkYŁ\ "!u93DZk؋1=S/YhtԵTOmRDm1W9Wىp`5|̏n>i 'f&`\"&IsVB4]wD+F;3%" (Ft=C3 .}/ȋ~@]wm^}ڍ+ƚELӶIS~V94hԴ4ʵH)CbCmyQ T~\!`a 8*?I=i?\V`& trP=|3zH0Ν53}ьnY duN>r 5 OGډspK~R|R׿5,Ai[psO$>DDiOkH^Oι~=$o(τ(6-Eջ6l\.u^THȎvi6v"usw1Os?~{dDO88Ic&mcg|B1ΌP;ͺ/y&uW|S u|t c[4e2V.iS3}Zi1og%9aX晨;@.UŐ.ӖѬ[>|~z>=B;!W0)Cۂ 9#K3nO3wSIƩ[CMi;uކiO?C@ay ~8'h:?楻+|WZ}7mg" 򬣮$: 0DGQhnKGگG#jRu/kfYGsw?-MT;9 :ܥ8Yt%Ct}쵓LU.LvZ%A}y\H<_4ݶʆ&wږtQ"mv;¤kf{WUVW8l~|X:-kiXNynTu۵펿ۭaRFe{0)g~7LtuP#V{~{Sw#mW4-~k7bD}OrAm͛F}@NqX׾n36廵r\^;HN0 4g*m'W09 ,{(VǷSV}{Uƿ輊;]&e?P5]*hkԺnꧼ]XPN~3`_f{uuY]\$z$"޹ts.ȵAL3ƂP\hur =rnU؏C#]j, s[ N(O[R!_d"Yb14I qU6rXdL0$g"0b O[Z@Pfe-mrOsY]Y`4bmDK:&eM-5"̄~XN]ЩH_KjjBФ1v5]]0#H;f>}r;R'_z\/pY[ټ7_/ܼTn(Y,Tutqΐ+q[?K>.2VtMnHbUq>C@@9e]FAWd{m :)lwخ _jMԞlɽlݾL dsB=saVHHVB+#l ٞtY=m23}/5H p֔@P+;[2q.Jl4%X >qeC_\%RՄiy8F y(X0_f NOA'FPԟD&a~vzˋDC#ut̴J(_Ỡbs޺M|CCd`v0Jt>/i<>I/57vyV"显ۦ?}!F0{ 9]K`!E9vdB,#ocV`O?^A|oˋ̳SA=s~(3rR&YnI܎2,1md؈\2`.f#-aRX*p0lGhcǰGI,3 8d},M%'sӈSڦp_w<9s6b+nYULŕ80/#rXY!}6IT druCIA›[)r+usי/nygZC~)h!mIird/l52|_>sɳ}6:6ɇIehڱk4'C+ YNlJbZ~K#oA[f^~/9֌-S/ :.O"z-@rΥS* k\U-1>-2%0-L/'0tO.K<5PW m{ / +u)%5~l̛LymgD?qj^nQ=UT~ 2| sOSSWxf-&+hj/wXL˧TYG̟ߛ_(xYlGnD<4ZlSf_Sˁ,xJj/%&C5v34U7 D堡cg94A5\.ȠqlײR}MyX8mϑ~?3=g|⻫M %`2U^ϫoA˗x_IՕmn~(4# y!Kwי~sV>{y rڏhH07$v?uKn#F4l)iso&'::eɸ-wxw+w8|wo^mrf?6̏ }6˓~cG>u;rUS IuKNLf~ߩ>ٮoz}w}u߭_yN;ҌR߶OpB?z}_ǚ!~-$¤2/~d~dar_dE0avN=E#"_Ϸ`r;{mX=PЫG^]Jږtdţ{?KvM"iֹ`R@NO*IL~_8 m>".z[f=aqHB2ptg TgU毺5қE#$c \ȽÂaXΨnX\k! ăvFF{4>@dɧʞ&o JW,֌LsQ˨Iy `-mJ i * ($Q&8K_xJ< ,D""i/Q׈~e9S^ OdQ߶`ClpzY1bf+`h"G ei6Yuե1&w84ecT:F[ *rj}T~*c!b1[)*!vyjZH>n=؍腂@S~cN@LN@-|y>3?lЎ[RQTN=ebzO# =U( _A~cmfCyAUUU?H w@=:3].7kO:F^Hf A{R~Ii}A"#ݖRyhf7obAFs+`"$`Dq+nܙ4gt 4|x y:GGMlmśgF-7כe b<7xmgP kØh *nKhl1Ǥv2 . e|v;<ҍ2OmFՌ(α`Yame'mZZNAwzw#ޑa)l67z"_cisލhL2|^ ىr 5py niyT |AMo-8@0WX(=kxWlqˑgtS֑ԑe6B VI ."j㾥 $L|DRHUb.AwF FM?i>k Ҝ=~ EfQ_8sE&J|q<{ eƞ?P[(QQ7-WU?.To\גǩ8,#eu|+2ۨ^sow&(BȖ}7s#>%cd;K='yΏ M$a1vpK 3g4O2o9&0p v4;'Jg- 'AS3\NW0 X}9*1?~ UW6/cNns…נ<\5pI`H[svҼSbmja<[y݋>]Է뇽VvmAG[G>`r'qtжwjke}ن/|#__lY󝻀]Ug KN ܫ ͣ0וEC~7>Eۗ>`R^{%wyzG?`[k>`3̡l]6~?,-N0&KڡE/[WA;~&ϨUҗtԯT<(Mw.Zɒ}y+~]wjn{D}{?Lnݣ(/;߲U'#k~ޥox{5ZӧNa&/| 9k]2#V;ק)Qd;(c{>2v&sL V7kvM.j>'o>5gΜ٭ɡw `R9lE *pD4  (5 t N]xr|%kDfrPU68Ĩ OWu\s .32ʸ6 Y̢{N͵fڕʥWٚfaERNO9]_/Pmt13=6X YP~|AdHNyA< ay 1E3B12%ۘ"[Z,b++.w3'v"0Le+Zã v7xhop@8}[G2vV@82)g~-ۮ]u܆^&i@0 2 !vl4 П [P'FlgÂw= `%dN,%ȎHI$oUw|oqj>{dSks95{LS#29Td.*dC-0˚/Y :c+7)хe୞w.e9MZRRKIܒM܆T_z ruig9D@&Db>!e4Ȏvȩ|Qfz"ELj󓕤zIcW>,8 վ҇Q+԰o bx=Ͱm7 m񅑮`,| ,)C?eW`@7>T^ >ֳ(P&`$<skۀڜs`lI'}v(*G g۬ yDZ=QȏvCo.Ct$%r _x-{Dy iD#4@|-MZAPUV/Q*ח@T( 4Ͱ̼ü\w4}g+ y 9ʽfWn=li]F<+ZI&~g[hr},1U9i>KSk*2 Yb-%gZgOC3mN߆08D.dF%d8ϔV/NIyLHeQ;v_X&s0?~GQcJ`A F!hDm|g;<9{pa9 6R`?|>κGpkX{]&f̿@АUAA-Iߗ1@KZ~Hnz8FaR._eD1j:>Xw|@d6NgȀj|N2wD- ت\5X]*/& sڇ;V{2=@eC<[VC6Zmre T[ ̡IW;L#SGVuOl'"'/OKC~èָ?x?`97ɿsa:˹)=DGzw >>fp_Immܛ3:/8o|V+k*!#⚂~9Iԟ9LAQ3<`܊[mk}jWO^T,V#A?9Xrj**`[ t±)w]`iEQWRx/z,G݁Rm,p8לm'?9.$|CO)wY8<<OILʯ ?yM} ܴޘ<.xeSmX?3C@-O_OR ;i?sN|^cN}m\1L"26qrΣz>NKgm}:Yy;m:Dޟr}8ꢀIAcz?5}Q9~ӝzZS?jk_Sdmڦw~_O*oET~כ^ߝ/SSԿ|~`_7os܌۷- !XwLYio,E=Kݳ.uY?v*>3m<5`Oy)?SޫPb]Tǣd3߀xGo8}9uyb_Q̫?OytYe6=ַ5#+??6+Yaq[,~}=F:81rTKD-H5n} +;, ~I`"Ղ=.v{ Ќ;XuAk)GQPXu, k i# @,\ m*yeoҞpĸj`FYgj#Q[#߽s6Qﳥ8$"[:H ̽]=}|ED^P hGK+(n-lBu*;;{ζv/Ȗ̵%;u4xI+A14,"V b6{ o˳ϣ+l,?l